jumpstart iot in java with osgi enroute · pdf file1 jumpstart iot in java with osgi enroute...

26
1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by for Peter Kirschner Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 - 12:15 to 13:00 printable version speaker notes

Upload: hakhue

Post on 15-Mar-2018

241 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

1

JUMPSTART IOT IN JAVA WITH OSGI ENROUTE

created by for Peter Kirschner Java Forum StuttgartA4, Schiller-Saal, July 07, 2016 - 12:15 to 13:00

printable versionspeaker notes

Page 2: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

2

ME, MYSELF AND Iname: Peter Kirschnerprofession: IT software engineercompany: Kirschners GmbHemail: [email protected]: github:

@peterkirpeterkir/jfs2016

Page 4: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

4 . 1

MOTIVATION

Page 5: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

4 . 2

WHY IOT IN JAVA WITH OSGI?"IoT is dealing with constant catastrophic failures"

"The Dynamic Module System for Java"

"Java and OSGi are industry robust and proventechnologies"

"continuous evolution - no revolution"

Page 6: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

5 . 1

TECHNOLOGY

Page 7: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

5 . 2

JAVA LANGUAGEJava SE 8 release in 2014Language feature improvements

Lambda expressionsStream API improvements

Java Mission Control

Page 8: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

5 . 3

OSGI MODULARITYDIVIDE AND CONQUER

Page 9: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

5 . 4

OSGI ARCHITECTUREMODULAR AND LAYERED ARCHITECTURE

Page 10: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

5 . 5

OSGI SERVICESDECLARATIVE SERVICES & CONFIGURATION

SERVICE REGISTRY VIA BROKER PATTERN

Page 11: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

5 . 6

Community you are invited

ProgrammingModel

best practice, µservice-based development model

Tool Chain OSGi programming model over all the stages ofdevelopment

Education tutorials and examples

Page 12: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

6 . 1

TOOLS

Page 13: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

6 . 2

ECLIPSEEclipse Equinox is OSGi reference implementationextremly ††exible and extensible plugin architectureDevelopment IDE à la carte

JDT - Java Development TookitJSDT - JavaScript Development ToolsGit, GitFlow, QuickRex, ...

Page 14: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

6 . 3

BNDTOOLS FEATURES 1/2 automated import package analysis including versioning

powerful OSGi bundle repository management

Page 15: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

6 . 4

BNDTOOLS FEATURES 2/2 instant Jar bundle creation

annotation based Declarative Service implementation

Page 16: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

7 . 1

SETUP RASPI

Page 17: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

7 . 2

ONE-TIME PREPARATIONlogin via ssh on your Raspi

pi@kipi3_01:~ $ java ­version java version "1.8.0_65" Java(TM) SE Runtime Environment (build 1.8.0_65­b17) Java HotSpot(TM) Client VM (build 25.65­b01, mixed mode) pi@kipi3_01:~ $ curl https://bndtools.ci.cloudbees.com\ > /job/bnd.master/719/artifact/dist/bundles/\ > biz.aQute.jpm.run/biz.aQute.jpm.run­3.0.0.jar >jpm.jar % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1680k 100 1680k 0 0 285k 0 0:00:05 0:00:05 ­­:­­:­­ 349k pi@kipi3_01:~ $ sudo java ­jar jpm.jar init Home dir /var/jpm Bin dir /usr/local/bin pi@kipi3_01:~ $ jpm version 3.0.0.201509101330 pi@kipi3_01:~ $ sudo jpm install ­f biz.aQute.remote.main pi@kipi3_01:~ $

Page 18: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

7 . 3

LAUNCH JPM AGENT FOR REMOTECONNECTION

pi@kipi3_01:~ $ sudo bndremote ­a Listening for transport dt_socket at address: 1044

Now we are ready to rumble!

Page 19: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

7 . 4

DEVELOPER PC SETUPdownload and install latest download and unzip

install inside Eclipse

Check-out

OR follow the

Java 8 SDKEclipse IDE

bndtools

github example repo

enRoute IoT tutorial

Page 20: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

7 . 5

IDEFIX INSTALLERUse with pre-con††gured product and

project setupsIDE††x installer

MIND THE GAP

Oracle JDK license forbids distribution by 3rd parties, sodownload and install it in advance!

Page 21: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

8 . 1

DEPLOYMENT

Page 22: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

8 . 2

DEPLOYMENTcomment the "remote" instruction indside bndrun ††le

export the jar from the bndrun ††le (top right)copy exported jar to Raspiexecute it with

#­runremote: \ # raspberry;\ # jdb=1044; \ # host=<ipAddress>; \ # shell=1 #­runpath

sudo java ­jar <all­in­one­bundle>

Page 23: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

9 . 1

? QUESTIONS ?AND WHERE TO GO FROM HERE ...

use the enRoute web-site for the full IoT tutorialuse the bnd usergroup to ask on problemsget in touch - have fun with your RasPi and IoT

Page 24: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

10 . 1

CREDITS FOR

OSGi Alliance

Neil Bartlett, BJ Hargrave, Peter Kriens, Tim Ward

and all other OSGi, bnd/bndtools commiter andcontributors

- HTML presentations by Hakim El HattabREVEAL.JS

Page 25: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

10 . 2

BND AND BNDTOOLS RESOURCESBNDUsergroupSource on GithubContinuous Builds from Cloudbeeswebsitebug reports/source code on GitHubcontinuous build on cloudbeesusergroup in GoogleGroups

Page 26: JUMPSTART IOT IN JAVA WITH OSGI ENROUTE · PDF file1 JUMPSTART IOT IN JAVA WITH OSGI ENROUTE created by Peter Kirschner for Java Forum Stuttgart A4, Schiller-Saal, July 07, 2016 -

10 . 3

STANDARD REFERENCES

OSGi speci††cations

LDAP search ††lter syntax

Semantic Versioning 2.0.0