산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 사물 인터넷 기술

Eclipse Vorto:IoT 장치 통합의 다음 단계

알렉산더 에델만

你好(중국어 "Hello"), 저는 싱가포르에 거주하고 있으며 2006년부터 Robert Bosch의 소프트웨어 엔지니어로 일하고 있습니다. 저는 IoT에 열정적이며 다양한 IoT 플랫폼에서 장치 간의 성공적인 상호 작용을 결정하는 개방형 표준을 믿습니다. . 그렇기 때문에 클라우드 기반 도구를 제공하여 IoT 장치를 균일하게 설명하고 개방형 IoT 표준을 기반으로 다양한 IoT 플랫폼에 통합하는 것을 목표로 하는 Eclipse IoT Vorto 프로젝트에 적극적으로 기여하고 있습니다. IoT 괴짜와는 별개로 저는 젓가락 기술을 연습할 수 있는 아시아 요리를 즐깁니다. 코트에서 친구들과 테니스 공을 몇 개 치는 모습도 볼 수 있습니다.

스마트 팩토리, 홈 등의 사례를 보면 커넥티드 디바이스는 기업의 비용과 자원 효율성을 향상시킬 뿐만 아니라 생활의 안전성과 편의성도 높이고 있다. 수많은 장치 및 센서 제조업체로 인해 제조업체, 플랫폼 및 통합업체에 새로운 과제가 대두되고 있습니다.

주요 문제는 연결된 장치가 원활하게 통신할 수 있도록 하는 방법입니다. 다양한 제조업체, 기술 및 시스템에 관계없이 클라우드 플랫폼을 사용합니다. 과거에 개발자는 동일한 API를 가진 제한된 장치 집합을 위해 특별히 설계된 IoT 솔루션을 구축했습니다. 장치 유형을 변경하거나 장치 제조업체를 전환할 때 새 장치와 작동하려면 장치 통합에 시간이 많이 걸리는 리팩토링이 필요했습니다.

대규모 작물 농장에서 자산 추적을 위한 IoT 솔루션을 통합할 계획이라고 상상해 보십시오. 현재 위치뿐만 아니라 트랙터, 쟁기 및 기타 농업 장비의 온도와 가속도를 추적하고 싶을 것입니다.

올바른 IoT 장치를 선택할 때 다음 두 가지 질문이 나타납니다.

<울>
  • 어떤 기기에 우리가 원하는 기능이 있는지 어떻게 알 수 있나요?
  • 너무 많은 리팩토링 없이 유사한 기기로 더 쉽게 전환할 수 있도록 특정 기기 간의 긴밀한 결합을 피하려면 어떻게 해야 하나요?
  • 여기에서 오픈 소스 Eclipse Vorto가 등장합니다.

    Eclipse Vorto 소개

    출처:이클립스 보토

    Eclipse Vorto는 Vorto Information Model이라는 추상화 계층과 연결된 장치의 속성 및 기능과 같은 모든 메타 정보를 설명하는 DSL(도메인 특정 언어)을 제공합니다.

    추상화 계층을 추가하여 유사한 기능을 가진 다양한 유형의 장치를 사용할 수 있는 일관된 인터페이스를 만듭니다.

    Eclipse Vorto 프로젝트는 4가지 주요 구성 요소를 기반으로 합니다.

    <울>
  • Vorto DSL: Vorto DSL은 비개발자도 사용할 수 있도록 특별히 설계된 읽기 쉽고 이해하기 쉬운 도메인별 언어입니다. 다양한 기기의 추상 모델을 만드는 데 사용됩니다.
  • 메타모델: 메타모델은 정보 모델, 기능 블록 및 데이터 유형과 같은 다양한 엔티티 간의 관계를 정의하는 데 사용됩니다.
  • 코드 생성기: DSL 및 메타모델을 기반으로 하는 코드 생성기는 정의된 IoT 장치를 IoT 솔루션 플랫폼과 편리하게 통합하기 위해 소스 코드를 생성하는 정교하지만 간단한 방법을 제공합니다.
  • Vorto 저장소: Repository는 생성된 Information Model과 Function Block을 재사용을 위해 저장, 관리, 배포하는데 사용됩니다.
  • Eclipse Vorto는 완전한 오픈 소스이며 Bosch의 관리 하에 Eclipse IoT Working Group 내에서 개발되었습니다.

    팀 그로스만

    독일 컴퓨터 공학 학생으로서 저는 지난 1년 반 동안 Bosch에서 3개의 다른 부서에서 과제를 수행했습니다. 저는 특히 오픈 소스와 EduTech 기술에 관심이 있습니다. IoT와 자동화는 사람들이 살고, 일하고, 삶을 즐기는 방식을 변화시키고 개선할 수 있는 엄청난 잠재력을 가지고 있다고 믿습니다. 열정적인 학습자이자 개발자인 저는 항상 새로운 기술과 도구를 배우고 싶어합니다. 정규 업무 외에도 Instagram을 위한 세계 최대의 무료 오픈 소스 자동화 봇을 구축하여 현재 유지하고 있습니다. 여가 시간에는 친구들과 등산, 해외 여행을 즐깁니다.

    Eclipse Vorto 실습

    이 추상화를 더 잘 이해하기 위해 더 구체적인 예를 살펴보겠습니다. 밀 작물을 수집하는 데 사용되는 차량과 자산을 추적하려는 농업 기업을 상상해 보십시오. 여러 수확기, 트랙터 및 기타 자산이 있는 대규모 농장에서 각 차량이 사용된 시간과 위치 기록을 알고 싶습니다.

    이러한 종류의 정보를 온도 및 습도 값과 결합하면 모든 차량 및 자산에 대한 스마트한 유지 관리 계획을 실행할 수 있습니다. 각 차량 및 자산의 위치는 도난 방지 기능도 제공합니다.

    이러한 기능을 제공하는 솔루션 중 하나는 Bosch의 TRACI(자산 추적 솔루션)입니다.

    출처:Bosch.IO

    이 특정 장치의 디지털 모델을 생성하려면 TRACI 정보 모델을 조립하는 데 사용할 몇 가지 기본 빌딩 블록이 필요합니다.

    추적 장치의 가장 중요한 구성 요소 중 하나는 배터리입니다. 각 장치의 배터리 상태를 모니터링할 수 있도록 기능 블록이라고 하는 상태를 설명할 수 있습니다.

    펑션 블록은 나중에 다른 장치 정보 모델에서 재사용할 수 있는 일반 모델입니다.

    다음과 같이 정의할 수 있습니다.

    네임스페이스 org.eclipse.vorto 버전 1.0.0 표시 이름 "배터리" 설명 "배터리용 펑션블록" 카테고리 주변기기 org.eclipse.vorto.Voltage 사용; 1.0.0 functionblock 배터리 확장 org.eclipse.vorto.Voltage { 상태 { float 으로 필수 남은 용량 } }

    여기에서는 기능 블록 에 대해 설명합니다. 0에서 100 사이의 필수 숫자 값을 포함하는 일부 엔터티를 추상적으로 설명합니다.

    우리의 상태는 백분율 값이기 때문에 이것을 다시 추상화하여 별개의 구성 요소를 재사용할 수 있도록 할 수 있습니다. 따라서 Datatype . 여기에서 0과 100 사이의 숫자 값과 동일한 제한이 있는 엔터티(이 경우 백분율)를 정의할 수 있습니다.

    네임스페이스 org.eclipse.vorto.types 버전 1.0.0 표시 이름 "백분율" 설명 "백분율 데이터 유형" 카테고리 단위 엔티티 비율 { float 과 같은 필수 값 }

    이 데이터 유형을 생성하면 배터리 기능 블록 내에서 가져와서 사용할 수 있으며 구체적인 구현을 대체합니다.

    네임스페이스 org.eclipse.vorto 버전 1.0.0 표시 이름 "배터리" 설명 "배터리용 펑션블록" 카테고리 주변기기 org.eclipse.vorto.types.Percentage 사용; 1.0.0 org.eclipse.vorto.Voltage 사용; 1.0.0 functionblock 배터리 확장 org.eclipse.vorto.Voltage { 상태 { 백분율로 표시된 필수 남은 용량 } }

    온도 센서와 같은 TRACI 장치에 통합된 모든 센서에 대해 이 프로세스를 반복할 수 있습니다. , GPS , 가속연결 모듈 . 그런 다음 모든 기능 블록을 Vorto 정보 모델에서 조합할 수 있습니다. 그러면 코드 생성기가 장치 통합 코드 스텁을 생성하는 시작점으로 사용할 수 있습니다.

    네임스페이스 com.bosch.ps 버전 1.0.0 표시 이름 "Traci" 설명 "Traci용 정보 모델" org.eclipse.vorto.Geolocation 사용; 1.0.0 org.eclipse.vorto.Acceleration 사용; 1.0.0 org.eclipse.vorto.MagneticStrength 사용; 1.0.0 org.eclipse.vorto.Temperature 사용; 1.0.0 org.eclipse.vorto.Battery 사용; 1.0.0 org.eclipse.vorto.Connectivity 사용; 1.0.0 정보 모델 Traci { 기능 블록 { 배터리로 배터리 지리적 위치로서의 위치 가속도로서의 가속도 온도로서의 온도 MagneticStrength를 MagneticStrength로 연결로서의 블루투스연결 연결성으로서의 lorawanConnectivity } }

    알겠습니다. 이 모든 작업을 무엇을 위해 합니까?

    이제 TRACI 장치와 유사한 기능을 가진 다른 제조업체의 장치를 사용하려고 한다고 가정해 보겠습니다. 우리는 이미 TRACI 장치를 통합하는 IoT 솔루션을 만들었으며 다른 제조업체의 장치와 작동하도록 시스템을 리팩토링하는 것은 큰 고통이 될 것입니다.

    기능 블록과 데이터 유형이 이미 정의되어 있으므로 TRACI 모델과 동일한 기능 블록을 사용하는 새 장치에 대한 새 정보 모델을 정의할 수 있습니다.

    TRACI 모델을 NimbeLink의 NL-AT2VS라는 비슷한 기능을 가진 제품과 비교해 보겠습니다.

    네임스페이스 com.nimbelink.nl 버전 1.0.0 표시 이름 "NLAT2VS" 설명 "NLAT2VS용 정보 모델" org.eclipse.vorto.Geolocation 사용; 1.0.0 org.eclipse.vorto.Battery 사용; 1.0.0 org.eclipse.vorto.Connectivity 사용; 1.0.0 org.eclipse.vorto.Temperature 사용; 1.0.0 org.eclipse.vorto.Humidity 사용; 1.0.0 org.eclipse.vorto.Acceleration 사용; 1.0.0 정보 모델 NLAT2VS { 기능 블록 { 배터리로 배터리 가속도로서의 가속도 지리적 위치로서의 위치 온도로서의 온도 습도로서의 습도 연결로서의 wifiConnectivity 연결로서의 cellularConnectivity } }

    이 모델에서는 연결 모듈도 다르지만 여전히 추상 연결 기능 블록을 사용하고 있음을 알 수 있습니다. 추상화를 통해 많은 통합 오버헤드 없이 유사한 기능을 가진 다른 장치를 교체하거나 결합할 수 있습니다.

    Eclipse Vorto는 누가 사용해야 하나요?

    IoT 솔루션의 제조, 통합 및 개발과 관련된 엔터티의 다양성을 고려할 때 Eclipse Vorto의 가장 큰 이점을 얻을 수 있는 엔터티는 다음과 같습니다.

    기기 제조업체

    Eclipse Vorto는 장치 제조업체가 기존 인프라의 다른 장치와 상호 운용성을 가능하게 하는 데 도움이 될 수 있습니다. 유연성은 통합할 장치를 선택할 때 고객에게 큰 이점입니다.

    기술 독립적인 정보 모델을 사용하여 장치 제조업체는 모든 종류의 대상 플랫폼에 대한 구현 방법을 생성하는 오버헤드를 방지합니다. 이렇게 하면 코드 생성기를 사용하여 구체적인 통합으로 변환할 수 있는 정보 모델을 게시하여 비용과 시간을 절약할 수 있습니다.

    Eclipse Vorto 사용의 가장 큰 장점은 장치 프로토콜 레이어의 추가 진화가 장치 컨트롤러 로직에서 분리된다는 것입니다.

    출처:Eclipse Vorto

    IoT 플랫폼

    IoT 플랫폼은 다양한 제조업체의 다양한 IoT 장치를 연결하고 다양한 프로토콜과 형식을 모두 지원해야 합니다. Eclipse Vorto의 코드 생성기를 사용하면 부분 또는 전체 소스 코드 생성을 통해 이러한 노력을 크게 줄일 수 있습니다.

    또한 Vorto Repository는 플랫폼이 장치 기능을 JSON 스키마로 검색할 수 있도록 하는 런타임 저장소 역할을 합니다. 그런 다음 이러한 스키마를 디지털 트윈에서 해석 및 검증하거나 통신용 커넥터를 부트스트랩하는 데 사용할 수 있습니다.

    이는 초기 개발 작업의 증가를 의미하지만 방대한 양의 장치와 IoT의 성장을 고려할 때 시간이 지남에 따라 보상을 받을 것입니다.

    솔루션 개발자

    연결된 장치와 스마트 센서를 IoT 솔루션에 통합할 때 개발자는 다양한 장치 API를 다루어야 하므로 엄청난 코딩 오버헤드가 발생합니다. Eclipse Vorto는 장치 통합을 단순화하는 일반 코드 스텁을 제공하는 코드 생성기를 제공하여 관련된 개발 작업의 양을 줄일 수 있습니다.

    출처:Eclipse Vorto

    IoT의 미래에 대한 전망

    장치에 대한 상호 운용성을 보장하고 인터페이스를 조화시킴으로써 Eclipse Vorto는 장치 제조업체, IoT 플랫폼 운영자 및 애플리케이션 개발자가 IoT 장치를 사용하는 방식을 변경할 수 있는 잠재력을 가지고 있습니다.

    제조업체의 개발 작업을 줄이고 플랫폼 제공업체 및 통합업체의 장치 통합을 용이하게 하는 동시에 IoT 개발의 언급된 많은 과제를 해결할 수 있습니다.

    프로젝트에 대해 더 자세히 알고 싶다면 GitHub 저장소를 확인하고 별표를 주세요.

    시도할 수도 있습니다. Vorto Repository에서 제공되는 장치 생성, 통합 및 시각화를 위한 정교한 자습서를 사용하십시오.


    사물 인터넷 기술

    1. Eclipse Hono의 X.509 기반 장치 인증
    2. 스마트 데이터:IoT의 차세대 개척자
    3. Wi-Fi 지원 IoT의 위협 증가
    4. 과대 광고를 믿지 마십시오:IoT가 정체되는 이유
    5. IoT 연결 – 협대역 기회
    6. 우리는 기업에서 IoT의 토대를 마련하고 있습니다
    7. 사물 인터넷이 여전히 직면하고 있는 5가지 과제
    8. Covid-19 기간 동안 의료 분야에서 IoT의 역할
    9. 직접 연결이 산업용 IoT의 다음 단계인 이유
    10. 팬데믹 이후 세상에서 IoT 사각지대 발견