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

Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

Embed Size (px)

Citation preview

Page 1: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

Page 2: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

Page 3: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

Industry 4.0

Page 4: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

IoT Challenges

Fragmentation

Complexity

Lock-in

Page 5: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

Page 6: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

Page 7: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

Lock-in

Hardware

Sensor(s)

Vertical Market

Protocol(s)

Page 8: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

Page 9: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

Page 10: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

... Geographically Dispersed …

Business

Applications

Sensors,

Actuators,

Displays, …

Multi-

Service

Gateway

?

Page 11: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

Embracing IoT Complexity How to accelerate overall solution engineering process? How to include phased, incremental changes?

Business

Applications

Sensors,

Actuators,

Displays, …

?

@

11

Page 12: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

IoT Challenges Addressing the Challenges

Fragmentation

Complexity

Lock-in

Page 13: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

Page 14: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

Page 15: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

Page 16: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

Page 17: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

Page 18: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

Agenda

• Kura Wires

– Dataflow Programming

– Terminologies

– Kura Asset Model

• Demo

• Recap

– Current Status

– Next Steps

18

Page 19: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

Industrial

IoT Gateways

From Prototype to Production Efficient Development & Investment Protection

Software portability

across HW Platforms

Open Hardware

Open Software

Page 20: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

Page 21: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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 -

Page 22: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

Our Solution

• without sacrificing much flexibility

• raises the abstraction level

• application logic is simplified to node connections

• extensible

• Eclipse Marketplace Integration

Eases developers

task -

Page 23: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

...

Page 24: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

Terminologies - Wire Graph

Kura Wires Dataflow Graph known as Wire

Graph

Page 25: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

Terminologies - Wire Component

Each node in the Wire Graph is a Wire

Component

Page 26: Building IoT Mashups for Industry 4.0 with Eclipse Kura and 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

Page 27: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

Terminologies - Asset • Enhanced Functional Architecture

Page 28: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

Page 29: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

Terminologies - Wire

Logical connections between the Wire Components are known as

Wires

Page 30: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

Terminologies - Wire Envelope

Abstract data format decoupling Wire Components to have context

specific knowledge

Page 31: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

Preliminary Wire Components and Drivers

Publisher

Subscribe

r

DB Store

DB Filter

Asset

Logger

Timer

Page 32: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

Demo

Page 33: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

Page 34: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

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

Page 35: Building IoT Mashups for Industry 4.0 with Eclipse Kura and Kura Wires

Next Steps

– Milestone release by the end of January 2017

– Drivers publishing to Eclipse Marketplace

• OPC-UA

• Modbus

– More drivers

– Improved documentation