Subscribe Find out first about new and important news

Your feedback: Eclipse IoT open source standardization project

Olaf Weinmann
Oct 7, 2014 11
iot eclipse.orgSource: fotolia/Qyzz

Many technologies are available today that allow for the interconnection of devices, the management of systems of devices, and consequently the realization of solutions in the Internet of Things (IoT). However, most of the software components related to the IoT are industry-specific implementations that provide individual abstraction layers for specific groups of devices. Because of the different approaches, there is often no interoperability between the mentioned components. This in particular leads to a variety of disparate implementations related to the connectivity of one and the same device.

Therefore, I think it makes sense to provide a means for standardizing just the abstractions of devices. A standard like this could harmonize the way code generators for different environments integrate devices into different IoT solutions.

That’s why we initiated the IoT Information Model Repository project (Vorto). The idea behind Vorto is to push the standardization of so-called information models. An information model is an abstraction of a device.

Chart of Eclipse Vorto: an information model abstracts the status, the properties, and the functionalities of a device Source: Bosch Software Innovations
An information model abstracts the status, the properties, and the functionalities of a device.

Information models are already regularly used for putting into practice the abstraction layers in the IoT context. To enable developers to push standardization in the above described way, Bosch Software Innovations has started implementing:

  • a meta information model
  • Eclipse platform-based tools that will allow the creation of new information models that are dependent on the given meta model
  • a server-based repository that can be used for management and provisioning, and thus for the standardization of information models
  • code generators that facilitate the creation of solutions based on different environments (e.g. Eclipse Smart Home, openHAB, OSGi-DAL)

Industry benefits of Vorto

Let’s assume vendor A creates a new Z-Wave smoke detector which can measure the temperature, retrieve battery status and also sound an alarm in the event of fire. Using the IoT tool set, vendor A creates a corresponding information model that describes the three functionalities. After creating the information model, vendor A publishes the model to the information model repository. Now user B, who bought one of the Z-Wave smoke detectors, wants to include it in his openHAB environment. Using the IoT tool set, he can browse the repository to find the information model created by vendor A. After downloading it, user B could create the openHAB representation of the device with the help of a specific code generator. In a final step, user B completes this representation by adding required Z-Wave configurations.

In another scenario, user C wants to access the smoke detector using an OSGi-device abstraction layer. User C also downloads the information model using the IoT tool set and creates an implementation skeleton using another OSGi-specific code generator. The specific code can then be added within the created skeleton.

Why open source?  And why Eclipse?

The main focus of the project is to push the standardization of information models. In order for this process to succeed, I believe a large number of stakeholders need to contribute their ideas and voice their requirements. So that a very large community of diverse stakeholders can influence the meta model, the tooling, and the functionalities of the repository, we decided to realize this in the context of an Eclipse open source project. On the one hand, the Vorto project could benefit from the experience and the visibility of the Eclipse IoT working group within the IoT sector. On the other, the project could be very interesting for the working group itself.  Since large parts of the initial contributions are based on Eclipse frameworks (e.g. Eclipse Platform, Eclipse EMF), the project can easily be enhanced by developers who are experienced with these technologies.

Next steps

I am looking forward to receiving your feedback and comments in the community. We aim to provide the initial source code contribution by the end of November 2014. The initial contribution will include:

  • a preliminary version of the described meta information model, based on Eclipse EMF
  • a set of plug-ins to support the information model language, including an integrated editor in the Eclipse IDE, auto completion, syntax highlighting, content assistance
  • a code generator extension point that allows for easy integration of third-party code generators for information models into the tool set

More information about Eclipse Vorto

You can find a detailed description covering the meta information model, code generators, the IoT tool set, and the information model repository on the project page on eclipse.org.

What have we achieved? Olaf´s review and ideas for the future after one year Eclipse Vorto.

Rapid IoT Prototyping with Eclipse Vorto: This Virtual IoT Meetup is going to give you a brief overview of the Eclipse Vorto features as well as give a live-demonstration, how Vorto helps to connect devices to the Bosch IoT Suite and rapidly develop IoT applications.

11 Comments

comments

Leave a Reply

Your email address will not be published. Required fields are marked *

  • Bill Mortimer 24. February 2016 at 18:41

    Hi,
    Why don’t the existing format is not used like json or yaml or just key value properties file? Why reinvent the wheel? Any specific reasons?

    Reply
    • Olaf Weinmann 26. February 2016 at 13:47

      Hi Bill,

      Of course we could have used Json Schema, XSD, or a comparable format for implementing our meta model. The reason why we didn’t do that is that we wanted to create a human readable, very easy to use language which is perfectly focused on describing devices. The combination of Eclipse XText and EMF made it easy to realize that. In addition these technologies allow to easily create code generators to transform our descriptions into other formats like XML, Json, Java, etc.

      Reply
  • Olaf Weinmann 13. March 2015 at 15:11

    Hello Marcus,

    That sounds very interesting! So far we have collected various requirements and we have also discussed possible architectures for the repository. We plan to release a first version of the repository in the coming months. If there are any specific requiremets on your side related to the “Vorto Information Model Repository Access” please do not hesitate to contact me.

    In any case I’ll keep you informed! Thanks for the comment!

    Reply
  • Marcus Munzert 13. March 2015 at 13:12

    Is there already an information model repository available for Vorto?

    We have a platform (“Virtual Developer”) that lets you execute code generators on a server (Java/OSGi) and are interested to develop a component that is capable of reading models from the Vorto information model repository. Any code generator that runs on our platform then could re-use that component (we would name it “Vorto Information Model Repository Access”).

    With such an access to your information model repository, we would be able to use code generators (written in Java) from within any IDE, including Visual Studio.

    Reply
  • Stefan Ferber 29. October 2014 at 18:50

    Please have a look at our slides on slideshare also: http://de.slideshare.net/stefferber/20141015-eclipse-webinarinfomodels

    Reply
  • Olaf Weinmann 27. October 2014 at 14:11

    Hi Amyas,

    Thank you very much for your comment! I totally agree that there exist a large variety of different object models. The examples that you mentioned are only a few of them. We also believe that a key criteria for the success of the project is that various different stakeholders work together.
    We decided to realize this as an open source project to enable and to invite specialists from various domains to collaborate. We believe that this will help us to minimize the number of “outsiders” that you mention.
    We appreciate any kind of input and feedback related to our meta model and we believe that the resulting one will cover as many requirements as possible. However it is intended to keep the meta model as simple as possible since very complex models require very experienced specialists whereas a meta model which is easy to use addresses a large community of potential users.

    Our approach for accessing the existing models is to realize code generators within the project that allow for generating appropriate representations out of our information model instances. So users that are familiar with a specific, already existing device abstraction can use the Vorto project (provided that an appropriate code generator already exists) to generate a corresponding representation and then work with this one.

    Reply
    • Adam Wynne 14. January 2015 at 17:31

      Olaf and Amyas,

      My response is a bit late to this thread, but I wanted to add that I think there are analogies here with the Power industry in terms of the number vendors and different models available. This kind of meta-modelling approach has worked well in that context as evidenced by the CIMTool efforts (http://wiki.cimtool.org/index.html). The CIM provides a rich vocabulary that developers can use via CIMTool to generate a wide range of different artifacts (uml, owl, java, xsd, wsdl, etc.) from the underlying EMF.

      Reply
  • Amyas Phillips 24. October 2014 at 18:57

    Hi Olaf

    For something as varied in its applications as the IoT, any attempt to centralise creation of object models would be doomed. There are simply too many! Also everyone on the ‘outside’ of the process will probably feel they have a better abstraction. It is very important for the success of the process that there are no ‘insiders’ and ‘outsiders’. It should be modeled on things like npm or GItHub, where anyone can create, fork, use, improve and share object models, and it is left up to enlightened self interest to converge on common models for similar objects, enabling interoperability. Even if there is not much convergence, at least the models used are public and uniquely identifiable.

    You could find the IoT Toolkit project interesting:
    http://iot-toolkit.com/

    Also Michael Koster’s blog on data models for IoT:
    http://iot-datamodels.blogspot.com/

    A very large number of object models already exist, in standards like KNX, ZigBee profiles, and Z-Wave. Brought into an object repo those could be available to the whole IoT.

    Maybe you are aware of the Smart Objects work being done by the IPSO Alliance?
    http://www.ipso-alliance.org/smart-object-guidelines
    So far it has defined a number of basic objects, using the LWM2M object model.

    It would be great to have a “GitHub of IoT object models” where all these efforts, and developers generally, could pool resources.

    How do you see these object models being accessed, by the way? What is the relationship between APIs (e.g. HyperCat’s time series query API http://wiki.1248.io/doku.php?id=openiotqueryv1) , object models and data formats (eg. SENML http://wiki.1248.io/doku.php?id=senml)?

    Not directly relevant BTW, but you might be interested in HyperCat. Shared object models let services speak the same language to one another. HyperCat is a simple catalogue API for services to discover the resources that speak their language. It came out of an ARM IoT labs project in Cambridge.
    http://wiki.1248.io/doku.php?id=hypercat
    http://www.hypercat.io/

    Reply
  • Stefan Meissner 14. October 2014 at 17:45

    I’m glad to see some progress on the tool support for IoT-related information models. During my research I also identified a strong need for information models on high abstraction level to achieve interoperability.

    I’d like to try Vorto with the device model I came up with capturing the characteristics of those IoT nodes and gateways deployed in my institute’s test bed.

    In case you are interested, I’ve published the model in a conference paper:
    Nati M, Gluhak A, Abangar H, Meissner S. (2012) ‘A Framework for Resource Selection in Internet of Things Testbeds’. Springer Berlin Heidelberg Thessaloniki, Greece: 8th International ICST Conference on Testbeds and Research Infrastructures for the Development of Networks and Communities, TRIDENTCOM 2012, pp. 224-239.
    doi: 10.1007/978-3-642-35576-9_20

    Reply
  • Fred Simkin 8. October 2014 at 14:59

    Very interesting approach particularly given the ubiquity of the Eclipse development environment.

    Two question; Will this be a code based model or a visual model (e.g. UML, DMN/TDM) and if it is to be a visual model is there a notation form in the works? My second question, is will the model support support the division of information into its two constituent types “Knowledege” and “Data”?

    Reply
    • Olaf Weinmann 9. October 2014 at 8:01

      Thank you very much, Fred, for your comment and your questions! We intend to define the meta model using Ecore (part of the Eclipse Modeling Framework). For the creation of information models we intend to provide a textual DSL editor and also a graphical environment. What exactly do you mean by “division of information into its two constituent types” in the context of the meta information model? Could you please provide an example? Thanks in advance!

      Reply
Important Cookie Information

This website uses cookies for reasons of functionality, comfort, and statistics. If you consent to this use of cookies, please click ”Ok“. Private Policy