Eclipse Vorto: Memungkinkan Integrasi Perangkat IoT yang Lancar
Alexander Edelmann
Hi, saya Alexander Edelmann, insinyur perangkat lunak di Robert Bosch sejak 2006, bermarkas di Singapura. Minat saya terletak pada IoT dan standar terbuka yang memungkinkan perangkat untuk berbicara satu sama lain di seluruh platform yang beragam. Saya secara aktif berkontribusi pada proyek Eclipse IoT Vorto, yang menyediakan alat berbasis cloud untuk deskripsi seragam perangkat IoT dan integrasinya ke dalam setiap platform yang mengikuti standar IoT terbuka. Saat tidak coding, saya menikmati masakan Asia, tenis, dan menjelajahi tempat baru.
Mengapa Integrasi Perangkat Penting
Pabrik cerdas dan rumah terhubung sedang merevolusi biaya, efisiensi, keamanan, dan kenyamanan. Namun, volume besar produsen perangkat dan sensor memperkenalkan tantangan utama: memastikan setiap perangkat dapat berkomunikasi dengan lancar dengan platform cloud, terlepas dari merek atau teknologi. Secara historis, pengembang membangun solusi kustom untuk satu set perangkat terbatas yang berbagi API yang sama. Beralih jenis perangkat atau vendor memerlukan refactoring yang menyakitkan.
Bayangkan operasi pertanian yang melacak traktor, bajak, dan peralatan lainnya. Anda perlu memantau tidak hanya lokasi tetapi juga suhu, percepatan, dan kesehatan baterai. Bagaimana Anda memilih perangkat yang sesuai dengan kebutuhan Anda dan menghindari coupling yang kaku yang memaksa redesen yang mahal?
Mengenalkan Eclipse Vorto

Eclipse Vorto menyediakan lapisan abstraksi yang disebut Vorto Information Model dan bahasa spesifik domain (DSL) yang menangkap semua informasi meta—properti, fungsi, dan hubungan—dari perangkat terhubung. Dengan mendefinisikan perangkat secara platform-agnostic, Vorto menciptakan antarmuka yang konsisten yang menyatukan perangkat keras yang berbeda dengan fungsionalitas yang sama.
Proyek ini terdiri dari empat komponen inti:
- Vorto DSL – bahasa yang mudah dibaca dan ramah pengembang untuk mendefinisikan model perangkat abstrak, bahkan dapat diakses oleh non-pengembang.
- Metamodel – menentukan hubungan antara entitas seperti Information Models, Function Blocks, dan Datatypes.
- Code Generators – mentransformasi definisi DSL dan metamodel menjadi kode sumber yang siap pakai untuk platform IoT yang Anda pilih.
- Vorto Repository – toko berbasis cloud yang mengelola, berbagi, dan mendistribusikan Information Models dan Function Blocks untuk penggunaan kembali.
Eclipse Vorto sepenuhnya open source, dipelihara oleh Eclipse IoT Working Group di bawah pengawasan Bosch.
Eclipse Vorto dalam Praktik
Pertimbangkan pertanian besar yang melacak penggunaan mesin panen, traktor, dan aset lainnya. Dengan mengintegrasikan data lokasi, suhu, kelembaban, dan baterai, operator dapat menerapkan pemeliharaan prediktif dan tindakan anti-pencurian. Solusi Pelacakan Aset Bosch (TRACI) adalah contoh kemampuan ini.

Membuat digital twin perangkat TRACI dimulai dengan blok pembangun yang dapat digunakan kembali. Misalnya, Battery Function Block menggambarkan kondisi baterai sebagai persentase antara 0 dan 100. Blok ini dapat digunakan kembali di banyak perangkat.
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 <MIN 0, MAX 100> } }
Untuk mengabstraksi nilai numerik lebih lanjut, kami membuat Datatype untuk persentase:
namespace org.eclipse.vorto.types version 1.0.0 displayname "Percentage" description "Datatype for Percentage" category units entity Percentage { mandatory value as float <MIN 0, MAX 100> }
Datatype ini kemudian digabungkan ke dalam blok Battery, menghilangkan detail implementasi konkret.
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 } }
Mengulangi pola ini untuk suhu, GPS, percepatan, dan modul konektivitas menghasilkan Information Model yang komprehensif yang dapat diinput ke dalam code generator Vorto untuk menghasilkan stub integrasi.
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 } }
Misalnya produsen berbeda merilis perangkat dengan fitur serupa. Dengan menggunakan kembali Function Blocks dan Datatypes yang sama, Anda dapat mendefinisikan Information Model baru tanpa menulis ulang logika integrasi.
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 } }
Function Blocks yang dibagikan berarti perangkat baru dapat diintegrasikan dengan upaya minimal, menunjukkan kekuatan Vorto untuk melepas evolusi perangkat dari logika aplikasi.
Siapa yang Menguntungkan dari Eclipse Vorto?
Produsen Perangkat
Vorto memungkinkan produsen untuk menerbitkan Information Model yang independen platform, mengurangi kebutuhan akan beberapa implementasi spesifik target. Fleksibilitas ini menghemat waktu dan biaya sambil memastikan interoperabilitas di seluruh ekosistem. Pemisahan lapisan protokol dari kontroler perangkat memungkinkan evolusi perangkat berkelanjutan tanpa merusak integrasi yang ada.

Platform IoT
Platform dapat mengurangi overhead integrasi secara drastis dengan menggunakan code generator Vorto untuk pembuatan kode sumber parsial atau penuh. Vorto Repository berfungsi sebagai sumber runtime dari kemampuan perangkat melalui skema JSON, memudahkan penemuan dinamis, validasi, dan bootstrapping konektor.
Pengembang Solusi
Pengembang yang menghadapi API perangkat yang heterogen dapat mengandalkan stub kode generik dan model yang dapat digunakan kembali dari Vorto untuk memperpendek siklus pengembangan dan menghindari vendor lock-in.

Masa Depan IoT dengan Eclipse Vorto
Dengan menstandarisasi antarmuka perangkat dan memastikan interoperabilitas, Eclipse Vorto dapat mengubah cara produsen, operator platform, dan pengembang bekerja sama. Ini mengurangi upaya pengembangan, memudahkan integrasi, dan mengatasi tantangan skalabilitas yang inherent pada ekosistem IoT.
Jelajahi proyek di GitHub—beri bintang dan selami tutorial untuk pembuatan, integrasi, dan visualisasi perangkat.