Eclipse Vorto: Nahtlose IoT-Device-Integration ermöglichen
Alexander Edelmann
Hi, ich bin Alexander Edelmann, Software Engineer bei Robert Bosch seit 2006, basiert in Singapur. Meine Leidenschaft gilt IoT und den offenen Standards, die Devices befähigen, über diverse Plattformen hinweg miteinander zu sprechen. Ich engagiere mich aktiv im Eclipse IoT Vorto Project, das Cloud-basierte Tools für eine einheitliche Beschreibung von IoT-Devices und ihre Integration in jede Plattform liefert, die offenen IoT-Standards folgt. Wenn ich nicht code, genieße ich asiatische Küche, Tennis und das Entdecken neuer Orte.
Warum Device-Integration wichtig ist
Smart Factories und Connected Homes revolutionieren Kosten, Effizienz, Sicherheit und Komfort. Doch die schiere Masse an Device- und Sensor-Herstellern bringt eine Kernherausforderung: Sicherzustellen, dass jedes Device nahtlos mit Cloud-Plattformen kommunizieren kann, unabhängig von Marke oder Technologie. Historisch bauten Entwickler Custom-Lösungen für limitierte Device-Sets mit gleicher API. Ein Wechsel von Device-Typen oder Vendors erforderte schmerzhaftes Refactoring.
Stellen Sie sich einen landwirtschaftlichen Betrieb vor, der Traktoren, Pflüge und weiteres Equipment trackt. Sie müssen nicht nur Location, sondern auch Temperatur, Acceleration und Battery Health monitoren. Wie wählen Sie Devices, die Ihre Bedürfnisse treffen, und vermeiden rigides Coupling, das kostspielige Redesigns erzwingt?
Eclipse Vorto vorgestellt
Eclipse Vorto bietet eine Abstraktionsschicht namens Vorto Information Model und eine Domain-Specific Language (DSL), die alle Meta-Informationen – Properties, Functions, Relationships – eines vernetzten Devices erfasst. Indem Devices plattformagnostisch definiert werden, schafft Vorto ein konsistentes Interface, das disparate Hardware mit ähnlicher Funktionalität vereint.
Das Projekt besteht aus vier Kernkomponenten:
- Vorto DSL – eine lesbare, developer-freundliche Sprache zur Definition abstrakter Device-Modelle, selbst für Non-Developers zugänglich.
- Metamodel – spezifiziert Beziehungen zwischen Entitäten wie Information Models, Function Blocks und Datatypes.
- Code Generators – transformieren DSL- und Metamodel-Definitionen in ready-to-use Source Code für Ihre gewählte IoT-Plattform.
- Vorto Repository – ein Cloud-basierter Store, der Information Models und Function Blocks verwaltet, teilt und für Wiederverwendung verteilt.
Eclipse Vorto ist vollständig Open Source, gewartet von der Eclipse IoT Working Group unter Boschs Stewardship.
Eclipse Vorto in der Praxis
Betrachten Sie einen großen Farm-Betrieb, der Harvester, Traktoren und weitere Assets trackt. Durch Integration von Location, Temperatur, Feuchtigkeit und Battery Data können Operatoren Predictive Maintenance und Diebstahlschutz implementieren. Die Bosch Asset Tracing Solution (TRACI) exemplifiziert diese Fähigkeit.
Das Erstellen eines Digital Twins des TRACI-Devices startet mit wiederverwendbaren Bausteinen. Beispielsweise beschreibt ein Battery Function Block den Batteriestatus als Prozentwert zwischen 0 und 100. Dieser Block kann über viele Devices hinweg wiederverwendet werden.
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 } }
Um den numerischen Wert weiter zu abstrahieren, erstellen wir einen Datatype für Prozentwerte:
namespace org.eclipse.vorto.types version 1.0.0 displayname "Percentage" description "Datatype for Percentage" category units entity Percentage { mandatory value as float }
Dieser Datatype wird dann in den Battery Block integriert, wodurch konkrete Implementierungsdetails eliminiert werden.
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 } }
Wiederholt man dieses Pattern für Temperatur, GPS, Acceleration und Connectivity Modules, entsteht ein umfassendes Information Model, das in Vortos Code Generators eingespeist werden kann, um Integration Stubs zu produzieren.
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 } }
Angenommen, ein anderer Hersteller bringt ein Device mit ähnlichen Features. Durch Wiederverwendung derselben Function Blocks und Datatypes können Sie ein neues Information Model definieren, ohne Integrationslogik neu zu schreiben.
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 } }
Die geteilten Function Blocks bedeuten, dass das neue Device mit minimalem Aufwand integriert werden kann – ein Beweis für Vortos Kraft, Device-Evolution von Applikationslogik zu entkoppeln.
Wer profitiert von Eclipse Vorto?
Device-Hersteller
Vorto befähigt Hersteller, plattformunabhängige Information Models zu publizieren, was den Bedarf an multiple target-spezifischen Implementierungen reduziert. Diese Flexibilität spart Zeit und Kosten und sichert Interoperabilität über Ökosysteme hinweg. Die Entkopplung von Protokoll-Layern von Device-Controllern erlaubt kontinuierliche Device-Evolution ohne Brechen bestehender Integrationen.
IoT-Plattformen
Plattformen können Integrations-Overhead drastisch reduzieren, indem sie Vortos Code Generators für partiellen oder vollständigen Source-Code-Generierung nutzen. Das Vorto Repository dient als Runtime-Source für Device Capabilities via JSON Schemas, was dynamische Discovery, Validierung und Connector Bootstrapping erleichtert.
Solution Developers
Entwickler, die mit heterogenen Device-APIs ringen, können auf Vortos generische Code Stubs und wiederverwendbare Modelle setzen, um Entwicklungszyklen zu verkürzen und Vendor Lock-in zu vermeiden.
Die Zukunft von IoT mit Eclipse Vorto
Durch Standardisierung von Device-Interfaces und Sicherstellung von Interoperabilität kann Eclipse Vorto reshape, wie Hersteller, Plattformbetreiber und Entwickler kollaborieren. Es reduziert Entwicklungsaufwand, erleichtert Integration und adressiert die Skalierbarkeitsherausforderungen, die IoT-Ökosysteme inhärent sind.
Projekt auf GitHub erkunden – Stern vergeben und in Tutorials zu Device Creation, Integration und Visualisierung eintauchen.
Internet der Dinge-Technologie
- Sichere Device-Authentifizierung mit X.509-Zertifikaten in Eclipse Hono
- Smart Data: Die nächste Frontier von IoT und Big Data navigieren
- Warum Wi-Fi-fähige IoT-Geräte eine wachsende Sicherheitsbedrohung darstellen
- IoT-Einführung stockt: Warum der Hype das Ziel verfehlt
- Wie Schmalband-Technologien die IoT-Revolution antreiben
- Das Fundament für Enterprise-IoT-Erfolg bauen
- 5 zentrale Herausforderungen für das Internet der Dinge heute
- Wie IoT Healthcare während der Covid-19-Pandemie revolutionierte
- Warum direkte Gerätekonnektivität der nächste Meilenstein im Industrial IoT ist
- Den IoT-Blinden Fleck in der post-pandemischen Welt schließen