Kura aims at offering a Java/OSGi-based container for M2M applications running in service gateways. Kura provides or, when available, aggregates open source implementations for the most common services needed by M2M applications. Kura components are designed as configurable OSGi Declarative Service exposing service API and raising events. While several Kura components are in pure Java, others are invoked through JNI and have a dependency on the Linux operating system.
Kura is currently planning this initial set of services:
- Serial port access through javax.comm 2.0 API or OSGi I/O connection
- USB access and events through javax.usb, HID API, custom extensions
- Bluetooth access through javax.bluetooth or OSGi I/O connection
- Position Service for GPS information from a NMEA stream
- Clock Service for the synchronization of the system clock
- Kura API for GPIO/PWM/I2C/SPI access
- Store and forward functionality for the telemetry data collected by the gateway and published to remote servers.
- Policy-driven publishing system, which abstracts the application developer from the complexity of the network layer and the publishing protocol used. Eclipse Paho and its MQTT client provides the default messaging library used.
- Easy to use API layer for M2M application to communicate with a remote server. In addition to simple publish/subscribe, the Cloud Service API simplifies the implementation of more complex interaction flows like request/response or remote resource management.
- Allow for a single connection to a remote server to be shared across more than one application in the gateway providing the necessary topic partitioning.
- Leverage the OSGi specifications ConfigurationAdmin and MetaType to provide a snapshot service to import/export the configuration of all registered services in the container.
- Allow for remote management of the M2M applications installed in Kura including their deployment, upgrade and configuration management. The Remote Management service relies on the Configuration Service and the Cloud Service.
- Provide API for introspects and configure the network interfaces available in the gateway like Ethernet, Wifi, and Cellular modems.
- Register critical components to the Watchdog Service, which will force a system reset through the hardware watchdog when a problem is detected.
Web administration interface
- Offer a web-based management console running within the Kura container to manage the gateway.
Kura will provide a pre-made build for popular open hardware platforms like the RaspberryPi.