When I was first introduced to Java Enterprise Integration, the ServiceMix platform was transitioning to OSGi (ServiceMix Version 4.0). From its origins in embedded systems and mobile devices, the OSGi standard promoted many qualities that were advantageous to the Enterprise (flexible, modular, life cycle management, services, security) so under this umbrella the tenants of the stack Apache Camel, Apache ActiveMQ, and Apache CXF flourished.
“Apache ServiceMix is a flexible, open-source integration container that unifies the features and functionality of Apache ActiveMQ, Camel, CXF, and Karaf into a powerful runtime platform you can use to build your own integrations solutions. It provides a complete, enterprise ready ESB exclusively powered by OSGi.”
Fast forward a number of years, and now the Internet of Things (IoT) is proliferating across embedded devices. Small single-board computers such as the Raspberry Pi and BeagleBone have made the entry into building an IoT solution much more accessible because of their low cost, support in the open source community, and growing support for devices and sensors. At the same time, JBoss Fuse (with its ServiceMix and Fabric lineage) has become central to Enterprise Integration.
So now is the time for Enterprise Integration to go full circle and contribute back to these Embedded Systems. Apache Camel, an implementation of the Enterprise Integration Platterns, is a perfect choice to assist a developer in communicating with these devices and sensors. Out of the box, message mediation, routing, transformation, along with a set of patterns (throttling/sync/asynch) to implement on a message endpoint is possible. But to make this a full solution, Camel Components are required to interface with new standards such as Raspberry Pi GPIO, I2C, Tinkerforge, as well as support for gateway frameworks such as Eclipse Kura (OSGi based). And once the device/sensor information is available, this information needs to be communicated via a set of backend services through a protocol of your choice.
This is the premise behind Rhiot, which is now being rolled in Eclipse Kura and Eclipse Kapua.
Founded by Claus Ibsen, Rob Davies, Greg, and Henryk Konsek this project initially started as Camel IoT Labs, but as the scope went beyond just camel the project was renamed to Rhiot. The documentation for the project can found at gitbooks.
Continue reading “Getting started with Apache Camel and the Internet of Things”