Kura Wires : Industry 4.0 with Eclipse Kura Amit Kumar Mondal (Technical University of Munich) Matteo Maiero (Eurotech S.p.A.)
Agenda Eurotech Overview IoT Challenges Brownfield Engineering Problems Eclipse Kura Introduction Encapsulating Complexity Architecture Kura Wires Dataflow Programming Terminologies Kura Asset Model Demo
Eurotech Overview One of the world top players in the global Embedded Computers market Behind the products & services of more than 20 Global 500 companies 20+ Years of experience in “M2M” and distributed systems 20+ Years experience in OT / embedded / gateway hardware & software 16 Years ago co-developed MQTT with IBM 10+ Years experience with Java in embedded 6+ Years history in M2M/IoT cloud platforms Strong vertical market competencies: Industrial & Logistics Transportation Defense & Security Healthcare & Medical
Eurotech Overview Some of Our IoT Activities Active in Eclipse IoT One of founding member companies http://iot.eclipse.org/ Contributors to Kura and Kapua Contributed the original code from ESF EDC https://www.eclipse.org/kura/ https://www.eclipse.org/kapua/ OSGi Alliance IoT Expert Group http://osgi.org
The IT/OT Challenge: Connecting Diverse Worlds DEVICES DATA Operational technology Information technology DEVICES DATA BUSINESS MODELS
IoT Challenges Fragmentation Complexity Lock-in
Fragmentation Sensor Protocols CANBus MODBus OPC-UA Bluetooth BLE DECT ZigBee Z-Wave Hardware ARM Intel Protocols to Cloud MQTT LWM2M CoAP AllSeen Standards oneM2M Thread AllSeen Industrial Internet Consortium IEEE
Maintenance and Lifecycle Management Complexity Security Sensors Data Network Reliability Store and forward Best Effort Guaranteed Network Management LAN WAN Cell Consumer Maintenance and Lifecycle Management Deployment/Install Upgrade Provisioning/Configuration Integration Heterogeneous environments
Lock-in Sensor(s) Hardware Protocol(s) Vertical Market
Embracing IoT Complexity How to accelerate overall solution engineering process? How to include phased, incremental changes? @ Business Applications ? Sensors, Actuators, Displays, …
OPEN, STANDARD, SOLID ARCHITECTURES IoT Challenges Addressing the Challenges ✔ Fragmentation ✔ OPEN, STANDARD, SOLID ARCHITECTURES Complexity ✔ Lock-in
Upwards Abstraction towards Business Tiers Complexity tamed bottom up. @ @ Business Applications Enterprise Information Technologies Data & Analytics Platform Operational Technologies Cloud-side IoT Integration Platform Sensors, Actuators, HMI, SCADA, PLC Multi-Service Gateway
Cohesive and integrated app environment Modular software components KURA is the open source Java and OSGi-based Application Framework for M2M Service Gateways in the Eclipse IoT Working Group. Purpose Simplify the design, deployment and remote management of embedded applications. It provides Cohesive and integrated app environment Modular software components HW abstraction layer Field protocol libraries Cloud connectivity Remote app and device management Local app and device management Development tools Embedded App Java/OSGi Linux OS Industrial HW Open HW Raspberry PI BeagleBone Black M2M gateways Smart Sensors
Encapsulating complexity Increase productivity and decrease cultural barriers Kura helps customer focusing on their core business Developer’s Productivity Code Code OSGi on Code Java VM Linux Hardware
OSGi Application Container (Eclipse Equinox, Concierge) Eclipse Open IoT Stack for Java Add your app Remote Management Applications Administration GUI Remote Access Your Application Your Application Connectivity and Delivery Field Protocols Management Updates Cloud Services Data Services MQTT Paho Modbus Network Configuration Network Configuration CANBus Cellular, Wi-Fi, Ethernet Firewall, Port Forwarding Link Monitors Configuration Management ... Basic Gateway Services DB Service Device Profile Custom Protocols Clock Service Watchdog Device Abstraction javax.comm javax.usb w/ udev access GPS Position GPIO / SPI / PWM / I2C jdk.dio Java HID APIs javax.bluetooth / BLE Add your app OSGi Application Container (Eclipse Equinox, Concierge) Java SE 7 / 8 (OpenJDK)
Agenda IoT Challenges Brownfield Engineering Problems Eclipse Kura Introduction Encapsulating Complexity Architecture Kura Wires Dataflow Programming Terminologies Kura Asset Model Demo
From Prototype to Production Efficient Development & Investment Protection Industrial IoT Gateways Software portability across HW Platforms Open Software Open Hardware
Different People Different Needs Oh no! I have to learn Java and OSGi! How can I build my PoC very easily using Eclipse Kura? Eclipse Kura seems powerful for my PoC
Solution Approach ... Dataflow Programming … Nodes - Application Logic is expressed as a directed graph Nodes - have inputs and/or outputs produce outputs consume inputs abstract underlying logics highly reusable and portable
Our Solution Eases developers task - without sacrificing much flexibility raises the abstraction level application logic is simplified to node connections extensible Eclipse Marketplace Integration
OSGi Application Container (Eclipse Equinox, Concierge) Kura + Wires Enhanced Functional Architecture Remote Management Applications Administration GUI Remote Access Your Application Your Application Kura Wires Connectivity and Delivery Asset Management Management Updates Cloud Services Data Services MQTT Paho Asset Network Configuration Network Configuration Drivers Cellular, Wi-Fi, Ethernet Firewall, Port Forwarding Link Monitors OPC UA Modbus Configuration Management CANbus S7 Basic Gateway Services ... DB Service Device Profile Clock Service Watchdog Custom Protocols Device Abstraction javax.comm javax.usb w/ udev access GPS Position GPIO / SPI / PWM / I2C jdk.dio Java HID APIs javax.bluetooth / BLE OSGi Application Container (Eclipse Equinox, Concierge) Java SE 7 / 8 (OpenJDK)
Terminologies - Wire Graph Kura Wires Dataflow Graph known as Wire Graph
Terminologies - Wire Component Each node in the Wire Graph is a Wire Component
Terminologies - Wire Component Wire Component can be a producer of data and/or a consumer of data 0..n 0..n Wire Component 0..n Inputs to a Wire Component 0..n Outputs from a Wire Component Wire Components don’t need to have context specific knowledge about each other
Terminologies - Asset Kura Asset Model Kura Wires Asset Driver Assets are special types of Wire Components that interact with transducers For example, Modbus PLC, S7 PLC or OPC-UA PLC etc. Device Driver
Terminologies - Wire Logical connections between the Wire Components are known as Wires
Terminologies - Wire Envelope Abstract data format decoupling Wire Components to have context specific knowledge
Preliminary Wire Components and Drivers Timer DB Store Asset Publisher DB Filter Subscriber Logger
Demo Show webUI, install dp, show how it works
An IIoT Use Case A newly installed part of a plant based on Modicon PLC running Modbus RTU, connected to an Industrial Service Gateway and pushing data to Cloud instance Control operator intends to monitor the Modbus Device connected sensors’ data and change the statuses of the connected actuators using a dashboard
Meet Eurotech at Booth #12 Thank You! Want to Explore More? Meet Eurotech at Booth #12
Questions?