Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens

Post on 17-Feb-2017

431 views 0 download

Transcript of Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens

OSGi enRouteThe IoT Contest

Peter Kriens

Contents• OSGi Relevancy

• OSGi enRoute

• OSGi Community Event IoT Contest

• The Architecture

• The Software

• The Hardware

• Experiences

• Future Contest

• Future OSGi

• Future OSGi enRoute

OSGi IoT Requirements Workshop 25 May 2015

OSGi enRoute

OSGi enRouteco

st o

f cha

nge

functionality

dynamic languages

Java & OSGi

OSGi enRouteco

st o

f cha

nge

functionality

dynamic languages

Java & OSGi

Tools• OSGi R6

• bnd

• Bndtools

• Gradle

• Github

• Travis

Tutorials

• Quick Start Tutorial – Takes you through the steps to get started with OSGi enRoute.

Tutorials

• Base Tutorial – Teaches you how to work with API, Provider, Test, and Application projects in an IDE and Continuous Integration Environment.

Tutorials

• IoT Tutorial – Develops a small program on the Raspberry Pi and teaches you remote debugging.

Tutorials

• Distributed OSGi Tutorial (new!) – Develops a simple chat application using Distributed OSGi.

How To

Service Catalog

Patterns

IoT Contest

Rube Goldberg Contraption

clientbrowser server

client

browser

client

serverevent processor

Doing something simple in a complicated way?

Not good marketing!

Racing?

Too fast for positioning

[ { "service.pid":"osgi.enroute.trains.emulator", "name.rfids":[ "DemoTrain:rfid1234" ], "rfid.probability": 500, "play.speed":0.5 }, { "service.pid":"osgi.enroute.trains.train.manager", "name": "DemoTrain", "rfid": "rfid1234", "TrainController.target" : "train.channel=1" }, { "service.pid":"osgi.enroute.trains.track.manager", "name": "main", "segments": [ "A00 : CURVED : 1 : -1 : A01", "A01 : CURVED : 1 : -1 : A02", "A02 : CURVED : 1 : -1 : A03", "A03 : CURVED : 1 : -1 : A04", "A04 : STRAIGHT : 1 : -1 : A05", "A05 : STRAIGHT : 1 : -1 : A06", "A06 : STRAIGHT : 1 : -1 : A07", "A07 : STRAIGHT : 1 : -1 : A07_L", "A07_L : LOCATOR : 0 : 1 : A08", "A08 : STRAIGHT : 1 : -1 : A09", "A09 : STRAIGHT : 1 : -1 : A10", "A10 : STRAIGHT : 1 : -1 : A11", "A11 : STRAIGHT : 1 : -1 : A12", "A12 : STRAIGHT : 1 : -1 : A13", "A13 : CURVED : 1 : -1 : A14", "A14 : CURVED : 1 : -1 : A15", "A15 : CURVED : 1 : -1 : A16_L", "A16_L : LOCATOR : 0 : 2 : A16", "A16 : CURVED : 1 : -1 : A16_S", "A16_S : SIGNAL : 0 : 3 : X01",

"A16_S : SIGNAL : 0 : 3 : X01",

"X01 : SWITCH : 1 : 4 : B00,C00",

"B00 : CURVED : 1 : -1 : B01", "B01 : CURVED : 1 : -1 : B02", "B02 : CURVED : 1 : -1 : B03", "B03 : CURVED : 1 : -1 : B04", "B04 : STRAIGHT : 1 : -1 : B05", "B05 : STRAIGHT : 1 : -1 : B06", "B06 : STRAIGHT : 1 : -1 : B07", "B07 : STRAIGHT : 1 : -1 : B07_L", "B07_L : LOCATOR : 0 : 5 : B08", "B08 : STRAIGHT : 1 : -1 : B09", "B09 : STRAIGHT : 1 : -1 : B10", "B10 : STRAIGHT : 1 : -1 : B11", "B11 : STRAIGHT : 1 : -1 : B12", "B12 : STRAIGHT : 1 : -1 : B13", "B13 : CURVED : 1 : -1 : B14", "B14 : CURVED : 1 : -1 : B15", "B15 : CURVED : 1 : -1 : B16_L", "B16_L : LOCATOR : 1 : 6 : B16", "B16 : CURVED : 1 : -1 : B16_S", "B16_S : SIGNAL : 1 : 7 : X04",

"C00 : CURVED : 1 : -1 : C01", "C01 : CURVED : 1 : -1 : C02", "C02 : CURVED : 1 : -1 : C03", "C03 : CURVED : 1 : -1 : C04", "C04 : CURVED : 1 : -1 : C05_L", "C05_L : LOCATOR : 0 : 8 : C05", "C05 : CURVED : 1 : -1 : C05_S", "C05_S : SIGNAL : 0 : 9 : X02",

"X02 : SWITCH : 1 : 10 : E00,D00",

"E00 : STRAIGHT : 1 : -1 : E01", "E01 : STRAIGHT : 1 : -1 : E02", "E02 : STRAIGHT : 1 : -1 : E03", "E03 : STRAIGHT : 1 : -1 : E04", "E04 : STRAIGHT : 1 : -1 : E05",

<sdk>

Pi1 Pi2 Pi3

Cloud

Distributed OSGi

• Prosyst mPRM • Paremus Service Fabric

Hardware

Emulator

Con- troller

Hardware

The X-Ray Machine ate our RFID readers

Burb!!

Q&A