The Wires feature aims to simplify the development of Edge Computing Applications leveraging reusable configurable components that can be wired together and which, eventually, allows configurable cooperation between these components.
In the dataflow programming model, the application logic is expressed as a directed graph (flow) where each node can have inputs, outputs, and independent processing units. There are nodes that only produce outputs and ones that only consume inputs, which usually represent the start and the end of the flow. The inner-graph nodes process the inputs and produce outputs for downstream nodes. The processing unit of a node executes independently and does not affect the execution of other nodes. Thus, the nodes 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 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 ESF Administrative Web UI.
The following components are distributed with ESF:
- Timer ticks every x seconds and starts 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 database (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 a field device through the associated Driver instance.
Additional information about 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
- Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires
- Industry 4.0 with Eclipse Kura