building iot mashups for industry 4.0 with eclipse kura and kura wires

36
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

Upload: eclipse-kura

Post on 23-Jan-2017

43 views

Category:

Engineering


2 download

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 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

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, …

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 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

Subscriber

DB Store

DB Filter

Asset

Logger

Timer

Demo

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!