Meet Kapua: An Open Source End-to-End IoT Cloud Platform
Red Hat, Eclipse, and Eurotech have announced Eclipse Kapua — an end-to-end open source IOT cloud platform that combines and enhances several current solutions.
Join the DZone community and get the full member experience.Join For Free
Red Hat and Eurotech announced on June 30 that they were joining forces to create an open source end-to-end IoT cloud platform.
In any case, the platform will be called Eclipse Kapua, courtesy of the fact that the project is being run through the Eclipse Foundation.
"The co-sponsored project, Eclipse Kapua, combines with the existing Eclipse Kura project to offer IoT developers and end users an open platform for end-to-end IoT implementations, helping them to avoid costly proprietary lock-in and accelerate community-driven development," according to a press release.
Red Hat threw its fedora into the ring by helping sponsor the project. "By co-sponsoring Eclipse Kapua, we ... seek to build a flexible, stable base for future IoT innovation, a base powered by upstream communities and responsive to emerging needs around industrial IoT," said Red Hat Senior VP of Global Channel Sales and Alliances Mark Enzweiler.
Marco Carrer, Eurotech's CTO, thinks Kapua will provide "a critical piece of the fully open IoT cloud platform, enabling IoT developers to embrace the flexibility, scale, and reliability of open source for next-generation deployments.
It's currently under creation review until July 6, so if you want to lend a voice to the project, head on over and comment on it. So, without further ado, let's break it down.
Well, Red Hat and the Eclipse Foundation are involved, so of course it's going to be open source. Eclipse is allowing the use of its Kura project — an open source IoT gateway framework — to serve as the backbone of the new Kapua initiative. Kura will provide the Java/OSGi-based gateway management needed for Kapua, and Kapua will be able to natively manage Kura gateways.
But wait, there's more!
Kapua will also use Eclipse Hono (more info) for its messaging infrastructure, Eclipse hawkBit (more info), which provides the infrastructure for artifact repository and software distribution, Eclipse Leshan (more info) for the machine-to-machine protocol, and Eclipse Paho (more info) for the MQTT.
The scope of the project encompasses every step from development to the end user. "For example, an IoT App package could contain an Eclipse Kura deployment package and a web application developed over the Eclipse Kapua REST APIs," according to the project write-up. "It would be quite interesting to model an IoT app so that its provisioning can be fully automated including the distribution of the edge package to a Kura runtime on a remote gateway and the deployment of the web-application."
It's clear the project aims at being a sort of one-stop-shop for developing and implementing IoT apps while the open source aspect keeps it accessible to anyone who might want to participate.
The integration of the project is getting special focus in the initial write-ups. The platform will be "fully programmable via RESTful web services API," according to the Eclipse Foundation. All organizations involved seem to want to make Kapua as flexible as possible.
Eclipse also put out this diagram of how Kapua's architecture:
The device connectivity module will authenticate connections, enforce authorization, and maintain a device registry. According to the write-up, "The device registry stores the device profile, the device connection status, and the device connection log. It also enables device organization through custom attributes and tags."
The router takes care of sending messages on their respective paths. Whether a communication is supposed to go to device management, the archives, or elsewhere, the router tackles it and avoids the need for hard-coding a solution via behaviors.
This is what allows the platform to perform remote operations on a device. "The IoT platform exposes an open contract towards the devices being managed with no assumption on the device software stack," according to the Eclipse Foundation.
Ideally, this will allow the platform to:
- Introspect and manage the device configuration.
- Manage the device services including service start and stop operations.
- Manage the device applications including application install, update, and remove.
- Execute remote OS commands on the device.
- Get and set device attributes and resources.
- Provision initial configuration of the devices.
As we'll get to in the IoT segment, Kapua will be able to archive and create pipelines for telemetry data. This information will be put into persistent NoSQL storage. The data registry, which maintains topics and metrics, will also be in the data management module.
This model supports hierarchical access control for accounts, and Role-Based Access Control is the overriding philosophy for the platform itself. "User identities can be defined and associated with one or more permissions guaranteeing the principle of 'least privilege,'" according to Eclipse. "Devices connect to the platform using the credentials of one of these user identities or through SSL authentication."
As mentioned, Kapua will use a Web Services API based on REST. Not only will it open up the platforms functionality, but it will link to the MQTT broker to help route messages between applications and devices without a specific connection to said broker. Finally, "Technologies such as REST/Comet/WebSockets are included allowing real-time display of data published by the devices in web pages and mobile dashboards," according to Eclipse.
And then there's the administration console. Eclipse provided a screenshot of the current version of the console:
But the main focus of the project is IoT. Kapua is supposed to be a framework for developers to create for and communicate with the Internet of Things.
As mentioned, Kapua will support MQTT out of the box, but that's just the beginning. The teams will add AMQP, HTTP, and CoAP over time. If all goes according to plan, Kapua will set up pipelines for telemetry data (including data archival for dashboards or business intelligence applications as well as real-time analytics); accommodate multi-tenancy in account management, user management, permissions, and roles; and handle connectivity, including authentication and authorization.
All parties involved want to be able to collaborate with and integrate other IoT solutions, such as Apache Camel, ActiveMQ, and Drools.
Eurotech will also contribute the code from its Everyware Cloud (docs) to the project. Everyware serves as a cloud-based machine-to-machine integration platform. While Kapua will be deployable on-premise, it can also be set up in the cloud in the hopes of providing more flexibility.
Furthermore, the cloud-based philosophy of scalability is present within much of the initial documentation. Hono, for instance, is a highly scalable messaging infrastructure that will be a part of Kapua.
Opinions expressed by DZone contributors are their own.