Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
OSGi enRoute
The IoT Contest
Peter Kriens
Contents
• OSGi Relevancy
• OSGi enRoute
• OSGi Community Event IoT Contest
• The Architecture
• The Software
• The Hardwa...
OSGi IoT Requirements Workshop 25 May 2015
OSGi enRoute
OSGi enRoute
costofchange
functionality
dynamic
languages
Java &
OSGi
OSGi enRoute
costofchange
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
Conti...
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.sp...
<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
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Using OSGi enRoute for the OSGi Community Event IoT Cotest - Peter Kriens
Upcoming SlideShare
Loading in …5
×

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

575 views

Published on

OSGi Community Event 2015

OSGi enRoute simplifies the construction of well designed service based applications. It is a new open source project sponsored by the OSGi Alliance. Version 1.0 (based on Java 8 &amp; OSGi Release 6) was recently released. We used OSGi enRoute to develop the Community Event IoT contest this year. We focused the contest this year around trains. Participants could write a Track Manager bundle for the cloud or a Train Manager bundle in a controller (Raspberry Pi). The Track Manager receives events from the rail network and assigns tasks to the trains. The trains need then to plan their route, collaborating with the Track Manager to get the right switch settings and permissions. This is then all executed on an actual Lego train track which is present here at the Community Event.

For this contest, we (OSGi Alliance, Paremus, ProSyst &amp; iMinds) developed an SDK based on OSGi enRoute. This gave us a solid foundation to build an SDK that allowed the contestants to write their Track Manager bundle or a Train Manager bundle.

This presentation will show how we used OSGi enRoute to build the infrastructure, emulators, graphic user interfaces, and the example managers. We will dive into the architecture, problems encountered, and solutions found.

This presentation is of interest to people considering building applications on OSGi since it demonstrates the best practices by the people that developed the OSGi specifications. And, let's face it, who can ignore playing with trains?

Published in: Technology
  • Be the first to comment

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

  1. 1. OSGi enRoute The IoT Contest Peter Kriens
  2. 2. Contents • OSGi Relevancy • OSGi enRoute • OSGi Community Event IoT Contest • The Architecture • The Software • The Hardware • Experiences • Future Contest • Future OSGi • Future OSGi enRoute
  3. 3. OSGi IoT Requirements Workshop 25 May 2015 OSGi enRoute
  4. 4. OSGi enRoute costofchange functionality dynamic languages Java & OSGi
  5. 5. OSGi enRoute costofchange functionality dynamic languages Java & OSGi
  6. 6. Tools • OSGi R6 • bnd • Bndtools • Gradle • Github • Travis
  7. 7. Tutorials • Quick Start Tutorial – Takes you through the steps to get started with OSGi enRoute.
  8. 8. Tutorials • Base Tutorial – Teaches you how to work with API, Provider, Test, and Application projects in an IDE and Continuous Integration Environment.
  9. 9. Tutorials • IoT Tutorial – Develops a small program on the Raspberry Pi and teaches you remote debugging.
  10. 10. Tutorials • Distributed OSGi Tutorial (new!) – Develops a simple chat application using Distributed OSGi.
  11. 11. How To
  12. 12. Service Catalog
  13. 13. Patterns
  14. 14. IoT Contest
  15. 15. Rube Goldberg Contraption
  16. 16. clientbrowser server client browser client serverevent processor
  17. 17. Doing something simple in a complicated way? Not good marketing!
  18. 18. Racing? Too fast for positioning
  19. 19. [ { "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",
  20. 20. <sdk>
  21. 21. Pi1 Pi2 Pi3 Cloud Distributed OSGi • Prosyst mPRM • Paremus Service Fabric Hardware
  22. 22. Emulator Con- troller Hardware
  23. 23. The X-Ray Machine ate our RFID readers Burb!!
  24. 24. Q&A

×