이클립스 Vorto: 원활한 IoT 디바이스 통합 지원
알렉산더 에델만
안녕하세요, 저는 2006년부터 로버트 보쉬에서 소프트웨어 엔지니어로 일해온 알렉산더 에델만입니다. 싱가포르에 기반을 두고 있습니다. 제 열정은 IoT와 다양한 플랫폼에서 기기들이 서로 대화할 수 있게 하는 오픈 표준에 있습니다. 이클립스 IoT Vorto 프로젝트에 적극 기여하며, 오픈 IoT 표준을 따르는 모든 플랫폼에 IoT 디바이스의 통합과 통합된 설명을 위한 클라우드 기반 도구를 제공합니다. 코딩하지 않을 때는 아시아 요리, 테니스, 새로운 장소 탐험을 즐깁니다.
디바이스 통합이 중요한 이유
스마트 팩토리와 커넥티드 홈은 비용, 효율성, 안전, 편의성에 혁명을 일으키고 있습니다. 하지만 디바이스와 센서 제조사의 엄청난 수량이 핵심 과제를 제기합니다: 브랜드나 기술에 관계없이 모든 디바이스가 클라우드 플랫폼과 원활하게 통신하도록 보장하는 것. 역사적으로 개발자들은 동일한 API를 공유하는 제한된 디바이스 세트에 맞춤 솔루션을 구축했습니다. 디바이스 유형이나 벤더 전환은 고통스러운 리팩토링을 요구했습니다.
트랙터, 쟁기, 기타 장비를 추적하는 농업 작업을 상상해 보세요. 위치뿐만 아니라 온도, 가속도, 배터리 상태도 모니터링해야 합니다. 어떻게 필요에 맞는 디바이스를 선택하고, 비용이 많이 드는 재설계를 강제하는 경직된 결합을 피할 수 있을까요?
이클립스 Vorto 소개

이클립스 Vorto는 Vorto 정보 모델이라는 추상화 계층과 도메인 특화 언어(DSL)를 제공해 연결된 디바이스의 모든 메타 정보(속성, 기능, 관계)를 포착합니다. 디바이스를 플랫폼 독립적으로 정의함으로써 Vorto는 유사한 기능을 가진 이기종 하드웨어를 통합하는 일관된 인터페이스를 만듭니다.
이 프로젝트는 네 가지 핵심 구성요소로 구성됩니다:
- Vorto DSL - 추상 디바이스 모델 정의용 가독성 좋은 개발자 친화적 언어, 비개발자도 접근 가능
- 메타모델 - 정보 모델, 기능 블록, 데이터 타입 등 엔티티 간 관계 명시
- 코드 생성기 - DSL과 메타모델 정의를 선택한 IoT 플랫폼용 즉시 사용 가능한 소스 코드로 변환
- Vorto 리포지토리 - 정보 모델과 기능 블록을 관리, 공유, 배포하는 클라우드 기반 저장소로 재사용 지원
이클립스 Vorto는 보쉬 관리 하에 이클립스 IoT 워킹 그룹이 유지보수하는 완전 오픈소스입니다.
이클립스 Vorto 실전 활용
수확기, 트랙터 등 자산 사용을 추적하는 대형 농장을 고려해 보세요. 위치, 온도, 습도, 배터리 데이터 통합으로 운영자는 예측 정비와 도난 방지 조치를 구현할 수 있습니다. 보쉬 자산 추적 솔루션(TRACI)이 이 역량을 예시합니다.

TRACI 디바이스의 디지털 트윈 생성은 재사용 가능한 빌딩 블록으로 시작합니다. 예를 들어 배터리 기능 블록은 배터리 상태를 0-100% 백분율로 설명합니다. 이 블록은 많은 디바이스에서 재사용 가능합니다.
namespace org.eclipse.vorto version 1.0.0 displayname "Battery" description "Functionblock for Battery" category peripheral using org.eclipse.vorto.Voltage ; 1.0.0 functionblock Battery extends org.eclipse.vorto.Voltage { status { mandatory remainingCapacity as float } }
숫자 값을 더 추상화하기 위해 백분율용 데이터 타입을 생성합니다:
namespace org.eclipse.vorto.types version 1.0.0 displayname "Percentage" description "Datatype for Percentage" category units entity Percentage { mandatory value as float }
이 데이터 타입을 배터리 블록에 통합해 구체적 구현 세부사항을 제거합니다:
namespace org.eclipse.vorto version 1.0.0 displayname "Battery" description "Functionblock for Battery" category peripheral using org.eclipse.vorto.types.Percentage ; 1.0.0 using org.eclipse.vorto.Voltage ; 1.0.0 functionblock Battery extends org.eclipse.vorto.Voltage { status { mandatory remainingCapacity as Percentage } }
온도, GPS, 가속도, 연결 모듈에 이 패턴을 반복해 Vorto 코드 생성기에 입력할 포괄적 정보 모델을 얻습니다.
namespace com.bosch.ps version 1.0.0 displayname "Traci" description "Information Model for Traci" using org.eclipse.vorto.Geolocation; 1.0.0 using org.eclipse.vorto.Acceleration; 1.0.0 using org.eclipse.vorto.MagneticStrength; 1.0.0 using org.eclipse.vorto.Temperature; 1.0.0 using org.eclipse.vorto.Battery; 1.0.0 using org.eclipse.vorto.Connectivity; 1.0.0 infomodel Traci { functionblocks { battery as Battery location as Geolocation acceleration as Acceleration temperature as Temperature magneticStrength as MagneticStrength bluetoothConnectivity as Connectivity lorawanConnectivity as Connectivity } }
다른 제조사가 유사 기능의 디바이스를 출시한다고 가정해 봅시다. 동일한 기능 블록과 데이터 타입을 재사용해 통합 로직 재작성 없이 새 정보 모델을 정의할 수 있습니다.
namespace com.nimbelink.nl version 1.0.0 displayname "NLAT2VS" description "Information Model for NLAT2VS" using org.eclipse.vorto.Geolocation; 1.0.0 using org.eclipse.vorto.Battery; 1.0.0 using org.eclipse.vorto.Connectivity; 1.0.0 using org.eclipse.vorto.Temperature; 1.0.0 using org.eclipse.vorto.Humidity; 1.0.0 using org.eclipse.vorto.Acceleration; 1.0.0 infomodel NLAT2VS { functionblocks { battery as Battery acceleration as Acceleration location as Geolocation temperature as Temperature humidity as Humidity wifiConnectivity as Connectivity cellularConnectivity as Connectivity } }
공유 기능 블록 덕분에 새 디바이스를 최소 노력으로 통합할 수 있어, 디바이스 진화를 애플리케이션 로직에서 분리하는 Vorto의 힘을 보여줍니다.
이클립스 Vorto의 수혜자는 누구인가?
디바이스 제조사
Vorto는 제조사가 플랫폼 독립적 정보 모델을 게시하게 해 여러 타겟별 구현 필요성을 줄입니다. 이 유연성은 시간과 비용을 절약하면서 생태계 전반의 상호운용성을 보장합니다. 프로토콜 계층과 디바이스 컨트롤러 분리로 기존 통합을 깨지 않고 지속적 디바이스 진화가 가능합니다.

IoT 플랫폼
플랫폼은 Vorto 코드 생성기로 부분적 또는 전체 소스 코드 생성을 사용해 통합 오버헤드를 대폭 줄일 수 있습니다. Vorto 리포지토리는 JSON 스키마를 통해 런타임 시 디바이스 역량 소스 역할을 해 동적 발견, 검증, 커넥터 부트스트래핑을 용이하게 합니다.
솔루션 개발자
이기종 디바이스 API와 씨름하는 개발자는 Vorto의 제네릭 코드 스텁과 재사용 모델로 개발 주기를 단축하고 벤더 락인을 피할 수 있습니다.

이클립스 Vorto와 IoT의 미래
디바이스 인터페이스 표준화와 상호운용성 보장으로 이클립스 Vorto는 제조사, 플랫폼 운영자, 개발자 협업 방식을 재편할 수 있습니다. 개발 노력 감소, 통합 용이화, IoT 생태계 고유의 확장성 과제 해결.
GitHub에서 프로젝트 탐색 - 스타 누르고 디바이스 생성, 통합, 시각화 튜토리얼로 뛰어드세요.