building iot mashups for industry 4.0 with eclipse kura and kura wires
TRANSCRIPT
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 Meetup 12 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
Industry 4.0
IoT Challenges
Fragmentation
Complexity
Lock-in
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
Lock-in
Hardware
Sensor(s)
Vertical Market
Protocol(s)
Internet /
TCP/IP
Sometimes M2M Solutions look simple …
Business
Application
Sensors,
Actuators,
Displays, …
Service
Gateway
Single or no special
application 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 business
logic 2G /
2.5G xDSL
Cable
... Geographically Dispersed …
Business
Applications
Sensors,
Actuators,
Displays, …
Multi-
Service
Gateway
?
Embracing IoT Complexity How to accelerate overall solution engineering process? How to include phased, incremental changes?
Business
Applications
Sensors,
Actuators,
Displays, …
?
@
11
IoT Challenges Addressing the Challenges
Fragmentation
Complexity
Lock-in
✔
✔
✔
Upwards Abstraction towards Business Tiers
Complexity tamed bottom up.
Business
Applications @
IoT Integration Platform Operational
Technologies
Cloud-side
@
Enterprise
Information
Technologies Data & Analytics Platform
Sensors, Actuators,
HMI, SCADA, PLC
Multi-Service
Gateway
13
Linux OS
Embedded App
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
Java/OSGi
M2M
gateways Smart
Sensors
Industrial
HW Open HW
• Raspberry PI
• BeagleBone
Black
Encapsulating complexity Increase productivity and decrease cultural barriers
OSGi
on
Linux
Hardware
Java VM
Code Code
Code
Kura helps customer
focusing on their core
business
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 Services
DB Service
Clock Service
Device Profile
Watchdog
Network Configuration Network Configuration
Field Protocols Connectivity and Delivery
Data Services MQTT Paho
Ad
min
istr
ati
on
GU
I
Applications
Your Application
Rem
ote
Man
ag
em
en
t
Con
fig
ura
tio
n
Ma
na
ge
me
nt
javax.usb
w/ udev access
Cloud Services
Your Application
Firewall, Port
Forwarding Link Monitors
Cellular, Wi-Fi,
Ethernet
GPS Position GPIO / SPI / PWM / I2C
jdk.dio
Modbus
CANBus
Custom Protocols
Upd
ate
s
Ma
na
ge
me
nt
Rem
ote
Acce
ss
Java HID APIs javax.bluetooth / BLE
...
Eclipse Open IoT Stack for Java
Add your
app
Add your
app
Agenda
• Kura Wires
– Dataflow Programming
– Terminologies
– Kura Asset Model
• Demo
• Recap
– Current Status
– Next Steps
18
Industrial
IoT Gateways
From Prototype to Production Efficient Development & Investment Protection
Software portability
across HW Platforms
Open Hardware
Open 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
Modbus OPC UA
S7
Asset Management
Asset
Java SE 7 / 8 (OpenJDK)
OSGi Application Container (Eclipse Equinox, Concierge)
Device Abstraction
javax.comm
Basic Gateway Services
DB Service
Clock Service
Device Profile
Watchdog
Network Configuration Network Configuration
Connectivity and Delivery
Data Services MQTT Paho
Ad
min
istr
ati
on
GU
I
Applications
Your Application
Rem
ote
Man
ag
em
en
t
Con
fig
ura
tio
n
Ma
na
ge
me
nt
javax.usb
w/ udev access
Cloud Services
Firewall, Port
Forwarding Link Monitors
Cellular, Wi-Fi,
Ethernet
GPS Position GPIO / SPI / PWM / I2C
jdk.dio
Custom Protocols
Upd
ate
s
Ma
na
ge
me
nt
Rem
ote
Acce
ss
Java HID APIs javax.bluetooth / BLE
Your Application
Kura Wires
...
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
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 • Enhanced Functional Architecture
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
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
Publisher
Subscribe
r
DB Store
DB Filter
Asset
Logger
Timer
Demo
An IIoT Use Case
33
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
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 Mondal https://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-approaches-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 Maiero
[email protected] [email protected]
https://github.com/eclipse/kura
Twitter: @eclipsekura
Thank You!