Kura Wires overview
Eclipse Kura Wires provides in Kura environment an implementation of the Dataflow Programming model. The Application logic is expressed as a directed graph: The nodes in the graph have inputs and/or outputs, abstract the underlying logics and are highly reusable and portable.
In this way, the developer can easily prototype its solution without sacrificing flexibility and working at a high level of abstraction: the graph is made of nodes and connections that can be extended adding new nodes or drawing new connections. Furthermore, the developer can take advantage of the Eclipse Marketplace integration, being able to use open source or commercial building blocks into the final solution, by simply dragging and dropping a link to the Eclipse Marketplace in the Eclipse Kura Administrative Web UI.
Kura Wires is an application built on top of two new Kura features:
- Drivers, the low-level components responsible for the communication with the sensors and actuators;
- Assets, an abstraction on top of Kura Drivers that allow the interaction with the underneath drivers in an easy way, by simply specifying “channels”. The channel is a logical entity that eases the way to specify what has to be transferred to/from the driver.
Through the wires, the message flow is composed by Eclipse Kura Wire Envelopes.
The Wire Envelope is a composite envelope to be used as an abstract data to be transmitted between the Wire Emitter and the Wire Receiver.
Every Envelope transmitted is composed by an Emitter PID that univocally identifies the emitter of the envelope, and an unmodifiable list of Wire Records that effectively carries all the information shared between the Emitter and the Receiver.
Following, some references to the Envelopes code and structure:
Wire Components provided in Kura 3.0.0
The following components will be provided out of the box with the Kura 3.0.0 installer:
- Timer, tick every x seconds and start the graph;
- Publisher, publishes every message received from a Wire (Wire Message). It is configurable in order to use a specific Cloud Service;
- Subscriber, subscribes to a configurable topic via a specific Cloud Service. It receives a message from a Cloud Platform, wraps it as a Wire Message and sends it through the connected wires to the other components that are part of the Wire Graph;
- DB Store, allows the storage of Wire Messages into a specific DB table. It has rules for message cleanup and retention;
- DB Filter, allows the filtering of messages residing in a DB via a proper SQL query. The corresponding messages are sent as Wire Messages to the connected Wire Components;
- Logger, logs the received messages;
- Asset, allows the definition of Wire Channels that will be used to communicate with the associated driver instance.
Wire drivers will be made available in form of Deployment Packages (dp) in the Eclipse Marketplace, in order to ease the deployment in the final Kura devices. For some of them, the source code will be available in the Kura Github Repository.
As initial contributions, the following drivers are available in Eclipse Marketplace:
Additional information about Kura Wires is available at the following resources:
- Kura Wires Can Help Overcome Challenges of Industrial IoT
- Kura Wires: A Sneak Peek
- Kura Wires: A Different Perspective to Develop IIoT Applications
- Different Dataflow Programming Approaches and Comparison With Kura Wires
- Kura Wires: Design and Development of a Component for managing Devices and Drivers in Eclipse Kura 2.0 by Amit Kumar Mondal
Conferences and slides
- Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires
- Industry 4.0 with Eclipse Kura