Deploying and configuring one device to act as a node in the Internet of Things is relatively easy. Doing the same for hundreds or thousands of devices is not so easy though. This is where the new Eclipse project Kura comes in.
Kura is a Java/OSGi-based container for M2M applications running in service gateways.
Kura was contributed to Eclipse by Eurotech who developed the original technology to run on everything from general purpose devices, rugged mobile computers, wearable devices, service gateways and vehicle consoles, all the way down to the Raspberry Pi.
3. Kura Project
– Java/OSGi-based container for M2M applications
running in service gateways
– http://projects.eclipse.org/projects/technology.kura
– Kura code available since March 2014
– 12 committers
– Open source version of the Everyware Software
Framework (ESF)
– Most of the ESF codebase contributed to Kura. Some
parts waiting for IP approval
4. OSGi
on
IoT Gateway Software Stack
Linux
Hardware
Application
Java VM
Application
• Built-in OSGi Services for IoT Apps
• High-level Programming Language
• Software Modularity
• Configuration Management
• Application Management
• Shorter Time-to-Market
• Device Abstraction
• Application Portability
• Investment Protection
• Integrated Device Cloud features
Application
5. Functional Overview
Java VM
OSGi Application Container
Device Abstraction
Gateway Basic Services
Network Configuration
Network Management Field
Protocols
Connectivity and Delivery
AdministrationGUI
Operation&Management
Linux
Hardware
Multi-
Service
Gateway
App 1 App 2 App n. . . .
Applications
6. on
Java VM
OSGi Application Container
Field
Protocols
Connectivity and
Delivery
AdministrationGUI
Applications
Operation&Management
Gateway Basic Services
Network
ConfigurationNetwork Management
Device Abstraction
Device Abstraction
USB
javax.usb
OtherGPIO I2C
Ready to use OSGi bundles
exposing Java APIs for device
access and with the native code
dependencies pre-compiled.
Serial
javax.comm
Bluetooth
javax.bluetoothDevice Abstraction
7. Gateway Basic Services
on
Java VM
OSGi Application Container
Field
Protocols
Connectivity and
Delivery
AdministrationGUI
Applications
Operation&Management
Network
ConfigurationNetwork Management
Device Abstraction
Gateway Basic Services
Gateway Basic Services
Watchdog
Service
Clock
Service
GPS Position
Service
Embedded
Database
Service
Process
Service
Device Profile
Service
Configurable OSGi Services
available to the applications to
interact with the basic gateway
functionality.
Configuration Service
8. Network Management
Network Management
Link Monitor
Ethernet
on
Java VM
OSGi Application Container
Field
Protocols
Connectivity and
Delivery
AdministrationGUI
Applications
Operation&Management
Gateway Basic Services
Device Abstraction
Network
ConfigurationNetwork Management
WiFi Cellular
DHCP NAT DNS
Firewall
Configurable OSGi Services to
access the current network
configuration and administer it.
It interacts with the Linux system to
configure network interfaces
including WiFi access points and
PPP connections.
9. Connectivity and Delivery
on
Java VM
OSGi Application Container
Field
Protocols
AdministrationGUI
Applications
Operation&Management
Gateway Basic Services
Network
ConfigurationNetwork Configuration
Device Abstraction
Connectivity and
Delivery
Connectivity & Delivery
Eclipse Paho (MQTT) Other Client
Data Transport
Data Service
Cloud Service
Configurable OSGi Services which
greatly simplify the development of
telemetry M2M applications
interacting with a remote Cloud
server.
10. Operation & Management
on
Java VM
OSGi Application Container
Field
Protocols
Connectivity and
Delivery
AdministrationGUI
Applications
Gateway Basic Services
Network
ConfigurationNetwork Configuration
Device Abstraction
Operation&Management
Remote System Command
Remote Configuration Management
Operation & Management
Remote Software Updates
Remote Log Retrieval
Device Diagnostic Service
Remote VPN Access