Connected devices are revolutionizing our lives and the ways we do business. From consumer electronics to entire production facilities and smart cities – individuals are benefiting from a better standard of living and increased convenience and safety, and companies from higher efficiency and lower costs. It’s now probably harder to imagine what things will not be connected in the future than what things will. Although the Internet of Things (IoT) has long since moved beyond being a mere theory, it still has a few challenges up its sleeve for device manufacturers, platform operators, and end users. One burning question is how to ensure seamless communication between connected devices, especially if they use different technologies and platforms. The answer lies in the open source Eclipse Vorto project that is looking to achieve interoperability through increased collaboration.
How Eclipse Vorto works
Eclipse Vorto is an open source project that aims to help compile and manage abstract device descriptions (information models). What’s special about this project is that it’s not an attempt to prescribe any one standard that encompasses all existing technologies. Instead, Eclipse Vorto takes a completely technology-independent approach – and this could eventually make it easier to implement standards.
To achieve interoperability for devices in the IoT, device manufactures and platform operators have to take into account all the various communication protocols, hardware environments, and programming languages, as well as their idiosyncrasies. Eclipse Vorto addresses these issues. What are known as information models provide an abstract description of device properties and functions. These information models can then be managed and made available through the Vorto Repository. This means device manufacturers can release information models for users to download; these can then use code generators to create platform-specific source code – so they can integrate their devices far more easily.
But what exactly does Eclipse Vorto offer in terms of added value? Eclipse Vorto is built on four main pillars: the IoT Toolset, a metamodel, the code generator infrastructure, and the Repository.
The IoT Toolset contains a domain-specific language (DSL) editor. What’s particularly good about this is that it uses simple language that can be easily read and understood even if you’re not a software developer – and yet it can still model all relevant aspects of a device interface.
Eclipse Vorto can also to be used to compile device descriptions based on information models. These models are based on the Vorto metamodel, which defines the relationships between data types, function blocks, and information models as well as how they are structured.
The code generator infrastructure offers a simple way of converting an information model into a different format.
The Vorto Repository serves as a central location for storing and managing device descriptions and making them available. In addition, the Repository allows users to add comments directly to a model, which makes it easier to discuss the model and streamlines communication concerning any potential improvements.
Who is Vorto aimed at?
With the above mentioned components, the Eclipse Vorto Toolset is ideal for all kinds of IoT development scenarios. Eclipse Vorto offers considerable added value to the following three target groups.
Eclipse Vorto makes it easier for device manufacturers to help their customers integrate the manufacturer’s devices into existing infrastructures. An end customer who decides to select a particular manufacturer’s smart home infrastructure, say, will still want as much flexibility as possible when it comes to choosing devices.
For this purpose, manufacturers typically provide documentation of the device’s technical characteristics; customers often receive this documentation as a PDF or in another established documentation format.
Using Eclipse Vorto, manufacturers can compile a technology-independent information model that they can use to describe the device in detail. The information that goes into this description can be fed into technical documentation as well as source code. This makes integration into the target platform considerably more straightforward. In addition to smart home frameworks such as Eclipse Smart Home, examples of target platforms may include IoT solutions and solutions in other domains.
The advantage of a technology-independent information model is that device manufacturers no longer have to generate ways of implementing their devices that cover all kinds of target platform. This saves them time and in turn money. Instead, they can publish technology-independent information models that users can than easily convert into artifacts for a given target platform using code generators.
Operators of IoT platforms and applications
IoT customers often want to combine vastly divergent devices, which means also dealing with vastly divergent communication protocols. So within any given platform, the full spectrum of the various devices and their specifics have to be represented. The integration of devices therefore entails a considerable amount of development work. Vorto code generators can help to drastically reduce the effort involved. Taking the manufacturer’s device descriptions, it is possible to generate the required source code, either in whole or in part.
This is why it makes sense for platform providers to implement suitable code generators. Although this does mean an increase in development work in the beginning, over the longer term it means that all devices described in the Vorto Repository can be integrated. Given the rapidly expanding diversity of IoT devices, this approach pays off extremely quickly.
Data models play a significant role in standardization. The specifications for these models have traditionally been prepared using text processing programs. However, working that way means that any subsequent changes to models are prone to error. Work then has to be carried out to correct mistakes; any time a specification is applied from then on, it also has to be implemented, which in turn leads to more development work. Eclipse Vorto provides a way to significantly reduce the amount of work involved.
When a model (for example a specialist data type) is specified in Eclipse Vorto, a review document can be generated and made available for discussion. Insights from this discussion are then fed into the Vorto model, after which a new review document can be generated. This process can be repeated any number of times until the data model is approved. Through the Vorto Repository, developers can also exchange ideas online and add comments directly to the model. Generating implementation is then just a matter of pressing a button.
This post is an edited extract from the article entitled “How devices are getting really smart – more intelligent device networking with Eclipse Vorto”, published in German in the fourth issue of JavaSPEKTRUM. The article was written by Olaf Weinmann in collaboration with Dr. Andreas Scharf, software developer at Yatta. An expert in user interfaces, Dr. Scharf also works on profiles for Eclipse and is actively involved in shaping the Eclipse environment as a committer.
The future in the Internet of Things
Eclipse Vorto is a tool for reducing the amount of development work – it does so by guaranteeing interoperability and the harmonization of interfaces for device abstraction, as well as by supporting collaboration among IoT players. Yatta profiles – another solution from the Eclipse ecosystem – provide another simple and straightforward way of installing the IoT Toolset for a variety of applications. In the future, device manufacturers, platform operators, and standardization organizations will be able to use Eclipse Vorto to tackle many of the key challenges in IoT development.