At DevNation, Red Hat developer Henryk Konsek, gave a talk on an open source gateway for Internet of Things (IoT), using Apache Camel, Eclipse Kura, Much of the focus of the talk was on the scalability needed when IoT is really embraced by organizations. The key take away from the talk is that IoT in reality is all about messaging. Successful implementations will rely on the things we've already learned from Enterprise Integration Patterns (EIP).
The architecture presented for scalable IoT messaging uses AMQP, the open protocol messaging system. IoT endpoints might send messages using a number or protocols such as MQTT, LWM2M, web sockets, or other low level protocols which generally aren't very scalable. Many small IoT devices such as sensors might be too small to have a full IP stack and a full messaging system. Using a gateway between these devices and your messaging system addresses many of challenges of a real world IoT implementation. The gateway will translate what ever protocol your IoT devices are using into AMPQ, Then, you can use the full enterprise capabilities of AMQP for moving the messages to your backend services, with features such as content based routing, load balancing, throttling, and prioritization.
The two key components of the architecture are Eclipse Kura and Apace Camel:
- Apache Camel is an enterprise message routing framework, which can be used to orchestrate message flow. Camel has 200+ OSGi-ready connectors (JMS, REST, CoAP, AMQP, MQTT…).
- Eclipse Kura is an OSGi-based gateway for IoT devices out in the field. Eurotech and the Eclipse foundation have been working on Kura. Red Hat is now in a partnership with Eurotech.
Henryk said that the gateway would run on a device as small as the Raspberry Pi (RPi). While RPis might be good for prototyping, deployment requires more robust hardware. Eurotech builds a robust gateway device that runs Red Hat Enterprise Linux. Red Hat is working with EuroTech on open sourcing pieces of their platform.
On Tuesday night at DevNation there will be a hackathon for IoT, sponsored by EuroTech.