Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires
Amit Kumar Mondal (Technical University of Munich, Germany)
Matteo Maiero (Eurotech S.p.A, Italy)
Virtual IoT Meetup12 January 2017
Agenda
• Industry 4.0 and IoT Challenges– Brownfield Engineering– Problems
• Eclipse Kura– Introduction– Encapsulating Complexity– Architecture
• Kura Wires– Dataflow Programming– Terminologies– Kura Asset Model
• Demo• Recap
– Current Status– Next Steps
Fragmentation
Protocols to Cloud– MQTT– LWM2M– CoAP– AllSeen
Sensor Protocols– CANBus– MODBus– OPC-UA– Bluetooth– BLE– DECT– ZigBee– Z-Wave
Hardware– ARM– Intel
Standards– oneM2M– Thread– AllSeen– Industrial Internet Consortium– IEEE
Complexity
Reliability– Store and
forward– Best Effort– Guaranteed
Maintenance and Lifecycle Management– Deployment/Install– Upgrade– Provisioning/Configuration
Security– Sensors– Data– Network
Network Management– LAN– WAN– Cell
Integration– Heterogeneous
environments
Internet / TCP/IP
Sometimes M2M Solutions look simple …
Business Application
Sensors, Actuators,Displays, …
ServiceGateway
Single or no specialapplication on gateway
A single application to communicate with
Only one type of Gateway HW & SW
Only one type of device / sensor
No connectivity options required
Embracing IoT Complexity
Internet / TCP/IP
Ethernet WiFi
3G / LTE Satellite
WiMAX Other
... but for some of them it gets complex
Business Application
Sensors, Actuators,Displays, …
• Multiple services on the gateway / edge node
• Different connectivity options
• Customer specific businesslogic 2G /
2.5GxDSLCable
... Geographically Dispersed …
Business Applications
Sensors, Actuators,Displays, …
Multi-ServiceGateway
?
Embracing IoT ComplexityHow to accelerate overall solution engineering process? How to include phased, incremental changes?
Business Applications
Sensors, Actuators,Displays, …
?
@
11
IoT ChallengesAddressing the Challenges
Fragmentation
Complexity
Lock-inOPEN, STANDARD, SOLID ARCHITECTURES✔
✔✔
Upwards Abstraction towards Business TiersComplexity tamed bottom up.
Business Applications@
IoT Integration Platform Operational Technologies Cloud-side
@
Enterprise Information Technologies
Data & Analytics Platform
Sensors, Actuators,HMI, SCADA, PLC
Multi-ServiceGateway
13
Linux OS
Embedded AppKURA is the open source Java and OSGi-based Application Framework for M2M Service Gateways in the Eclipse IoT Working Group.
PurposeSimplify 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
Java/OSGi
M2MgatewaysSmart
Sensors
Industrial HW Open HW
• Raspberry PI• BeagleBone
Black
Encapsulating complexityIncrease productivity and decrease cultural barriers
OSGi
on
LinuxHardware
Java VM
CodeCode
Code
Kura helps customer focusing on their core business
Developer’s
Productivity
Kura’s Benefits
Kura helps Customers focusing on their core competences (Customer‘s differentiators), by supplying highly integrated modular, common building blocks.
This approach provides partners with a competitive advantage by ensuring:
• Reduced development time → Shorter time to market• Less required resources → Reduced development costs• Hardware virtualization → Better investment protection• More deterministic project execution → In time market introduction• Focus on the application → Differentiate your offering and products• Portable, robust code → Higher quality software• Standard based → Future-proofed, Investments protection• Remote app management → Extended product lifecycle
Java SE 7 / 8 (OpenJDK)
OSGi Application Container (Eclipse Equinox, Concierge)
Device Abstraction
javax.comm
Basic Gateway ServicesDB Service
Clock Service
Device Profile
Watchdog
Network ConfigurationNetwork Configuration
Field ProtocolsConnectivity and Delivery
Data Services MQTT Paho
Adm
inis
trat
ion
GU
I
Applications
Your Application
Rem
ote
Man
agem
ent
Con
figur
atio
n M
anag
emen
t
javax.usb w/ udev access
Cloud Services
Your Application
Firewall, Port Forwarding Link MonitorsCellular, Wi-Fi,
Ethernet
GPS Position GPIO / SPI / PWM / I2Cjdk.dio
Modbus
CANBus
Custom Protocols
Upd
ates
Man
agem
ent
Rem
ote
Acc
ess
Java HID APIs javax.bluetooth / BLE
...
Eclipse Open IoT Stack for Java
Add your app
Add your app
Agenda
• Industry 4.0 and IoT Challenges– Brownfield Engineering– Problems
• Eclipse Kura– Introduction– Encapsulating Complexity– Architecture
• Kura Wires– Dataflow Programming– Terminologies– Kura Asset Model
• Demo• Recap
– Current Status– Next Steps
18
IndustrialIoT
Gateways
From Prototype to ProductionEfficient Development & Investment Protection
Software portability across HW Platforms
Open HardwareOpen Software
Eclipse Kura seems powerful for my PoC
How can I build my PoC very easily using Eclipse Kura?
Oh no! I have to learn Java and OSGi!
Different People Different Needs
Solution Approach... Dataflow
Programming …
• have inputs and/or outputs• produce outputs• consume inputs• abstract underlying logics• highly reusable and portable
Application Logic is expressed as a directed graph
Nodes -
Our Solution
• without sacrificing much flexibility• raises the abstraction level• application logic is simplified to node
connections• extensible• Eclipse Marketplace Integration
Eases developers task -
Kura + Wires• Enhanced Functional Architecture
Drivers
CANbus
ModbusOPC UA
S7
Asset Management
Asset
Java SE 7 / 8 (OpenJDK)
OSGi Application Container (Eclipse Equinox, Concierge)
Device Abstraction
javax.comm
Basic Gateway ServicesDB Service
Clock Service
Device Profile
Watchdog
Network ConfigurationNetwork Configuration
Connectivity and Delivery
Data Services MQTT Paho
Adm
inis
trat
ion
GU
I
ApplicationsYour Application
Rem
ote
Man
agem
ent
Con
figur
atio
n M
anag
emen
t
javax.usb w/ udev access
Cloud Services
Firewall, Port Forwarding Link MonitorsCellular, Wi-Fi,
Ethernet
GPS Position GPIO / SPI / PWM / I2Cjdk.dio
Custom Protocols
Upd
ates
Man
agem
ent
Rem
ote
Acc
ess
Java HID APIs javax.bluetooth / BLE
Your Application
Kura Wires
...
Terminologies - Wire Component
Wire Component can be a producer of data and/or a consumer of data
Wire Component
0..n 0..n
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
Assets are special types of Wire Components that interact with transducers
For example, Modbus PLC, S7 PLC or OPC-UA PLC etc.
Device Driver
Kura Asset Model
Driver
Asset
Kura Wires
Terminologies - Wire Envelope
Abstract data format decoupling Wire Components to have context specific knowledge
An IIoT Use CaseA 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
Current Status
• Contributed Kura Wires to the Kura repository– Available in the develop branch– Early access and testing
• https://hudson.eclipse.org/kura/job/kura-develop/lastSuccessfulBuild/artifact/kura/distrib/target/
• Master Thesis– Kura Wires: Design and Development of a Component for
managing Devices and Drivers in Eclipse Kura 2.0 by Amit Kumar Mondalhttps://osf.io/s3agq/
• Blog Posts– https://dzone.com/articles/kura-wires– https://dzone.com/articles/kura-wires-a-sneak-peek– https://dzone.com/articles/kura-wires-a-different-perspective-to
-develop-iiot– https://dzone.com/articles/different-dataflow-programming-appr
oaches-and-comp
Next Steps
– Milestone release by the end of January 2017
– Drivers publishing to Eclipse Marketplace• OPC-UA• Modbus
– More drivers– Improved documentation
Amit Kumar Mondal Matteo [email protected] [email protected]
https://github.com/eclipse/kuraTwitter: @eclipsekura
Thank You!
Top Related