SlideShare a Scribd company logo
© 2016 IBM Corporation
IoT Virtual Meetup
June 2nd 2016
Concierge – Bringing OSGi
(back) to Embedded Devices
Jan S. Rellermeyer
© 2016 IBM Corporation
Embedded Devices
Typically fixed-function devices
Limited user interface
ISA
OS
Software typically closely tied to the hardware
2
Image: www.eeweb.com
© 2016 IBM Corporation
Embedded Devices Are Evolving
We see a new class of embedded systems emerging
Advanced processors
Larger set of capabilities
Enhanced user interface / user experience
Open platforms for a software ecosystem
3
Image: www.apple.com
© 2016 IBM Corporation
OSGi
Dynamic Module System for the Java Runtime
Original domain: Home Gateway
Multiple software packages need to co-exist on the same machine
Long-running software
Periodic maintenance and updates requires
Ideally with minimal downtime and no interruption of unrelated software packages
6
• Java on the Embedded Device
• Pros:
• bridges heterogeneity
• can run the same code in the cloud or on the device
• Cons:
• updates and maintenance
© 2016 IBM Corporation
Module Management
Traditional Java: The mystical class path
java –cp commons‐X.jar:foo.jar:bar.jar my.application.MainClass
Which module contains the main class?
What are the dependencies between foo.jar and bar.jar?
What happens if bar.jar is upgraded to bar-1.01.jar?
7
© 2016 IBM Corporation
OSGi Module Layer
Modules are called Bundles
JAR files with additional metadata
Runtime system: The Framework
Lifecycle management
Bundles implement isolation and locality
Interaction between bundles is limited
Shared code through package imports
Every bundle is loaded through a separate classloader
Monitoring system state through events
8
© 2016 IBM Corporation
Concierge
Question: What is the (minimum) overhead of OSGi?
The “old” Concierge:
OSGi R3 core implementation developed during my PhD at ETH Zurich
optimized for mobile and embedded devices, has a footprint of only 86kB
People found the source code readable and understandable: 7 Java classes + 7
inner classes.
[J.S. Rellermeyer and G. Alonso: Concierge – A Service Platform for Resource-Constrained Devices. In: EuroSys 2007].
Image: http://www.linksys.com
13
© 2016 IBM Corporation
Eclipse Concierge
Goals:
 Full OSGi core R5 compatibility
 Keep a small footprint to work well on
embedded devices
 Remain “readable”
 Remain backwards-compatible
 Java 5
 Java 1.4?
 Being a sandbox for innovation around OSGi
14
Image: http://raspberrypi.org
© 2016 IBM Corporation
Experiments
Beaglebone Rev A5
• AM335x 720MHz ARM Cortex-A8
• 256 MiB DDR2 RAM
• 4 GiB microSD card
• Angstrom Linux
• Java SE Embedded 1.7.0_21-b11 and
• Java SE Embedded build 1.8.0_06-b23 compact1
Raspberry Pi B
• ARM1176JZF-S 700 MHz ARM 11
• 512 MiB SDRAM (shared with GPU)
• 8 GiB SDHD card
• Raspbian Linux
• Java SE build 1.8.0-b132
17
Image: http://beaglebone.org
© 2016 IBM Corporation
OSGi Frameworks
Eclipse Equinox
• version 3.10.101.v20150820-1432
• 1.3 MiB
• (R6 framework)
Apache Felix
• version 5.4.0
• 675 kiB
Knopflerfish
• version 7.2.0
• 609kiB / 320kiB compact
Concierge
• version 5.0.0
• 245kiB
18
© 2016 IBM Corporation
Resolver
24
Generate 1000 “random bundles”
• Can either import or export up to 5 packages
• Choice of 50 packages in total
• For exports: generate a random package version from [1.0.0-21.0.0)
• For import: generate a random import range from the interval.
Install all 1000 bundles
Resolve the bundles
Benchmark turned out to be rather volatile…
© 2016 IBM Corporation
Usability
What does Usability mean for an OSGi framework?
Don’t be annoying…
Stay close to the (core) standard
Every OSGi framework has some extra functionality
Concierge has a built-in log service
Discrepancies between compile time and run time behavior is what makes OSGi
challenging
Log service in the framework => correlate application behavior with framework events
27
© 2016 IBM Corporation
XargsFileLauncher
$ java -jar framework/org.eclipse.concierge-5.0.0.*.jar samples/demo.xargs
# demo.xargs
-Dorg.osgi.framework.system.packages.extra+=javax.xml.parsers
# -Drepo=http://www.us.apache.org/dist/felix
-Drepo=localRepo
# load bundles, use wildcard notation for local files, not for URLs
-istart bundles/org.eclipse.concierge.shell-5.0.0.*.jar
-istart bundles/org.eclipse.concierge.service.startlevel-5.0.0.*.jar
-istart bundles/org.eclipse.concierge.service.packageadmin-5.0.0.*.jar
-istart ${repo}/org.apache.felix.httplite.complete-0.1.4.jar
-istart ${repo}/org.apache.felix.webconsole-4.2.14-all.jar
• Concierge supports Knopflerfish styled xargs file for startup
• Enhanced property (variable replacement) and install notation (wildcard support)
• Supports start level in scripts (-level <n>)
28
© 2016 IBM Corporation
Remote Management
RESTful interface
• Exposing the framework and its internal state as resources
• Bundles
• Services
• Easy management of OSGi deployments through REST
• Command line tools
• Web interfaces
• Application-level
• REST service implementation will appear in Concierge 5.1
29
© 2016 IBM Corporation
What’s next?
Several work streams
• R6 compatibility
• More auxiliary bundles
• EventAdmin
• Remote services?
• Remote management based on REST interface
• Help other projects with transitioning to Concierge
© 2016 IBM Corporation32
Copyright and Trademarks
© IBM Corporation 2016. All Rights Reserved.
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International
Business Machines Corp., and registered in many jurisdictions worldwide.
Other product and service names might be trademarks of IBM or other companies.
A current list of IBM trademarks is available on the Web – see the IBM “Copyright and
trademark information” page at URL: www.ibm.com/legal/copytrade.shtml

More Related Content

What's hot

Java EE | Modular EJBs for Enterprise OSGi | Tim Ward
Java EE | Modular EJBs for Enterprise OSGi | Tim WardJava EE | Modular EJBs for Enterprise OSGi | Tim Ward
Java EE | Modular EJBs for Enterprise OSGi | Tim Ward
JAX London
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
Serdar Basegmez
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
Arun Gupta
 
An XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on DominoAn XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on Domino
Frank van der Linden
 
Understanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profitUnderstanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profit
Pascal Rapicault
 
The power of dots
The power of dotsThe power of dots
The power of dots
Frank van der Linden
 
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Arun Gupta
 
Jax london 2011
Jax london 2011Jax london 2011
Jax london 2011njbartlett
 
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)
Pavel Bucek
 
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
Arun Gupta
 
A Java Implementer's Guide to Better Apache Spark Performance
A Java Implementer's Guide to Better Apache Spark PerformanceA Java Implementer's Guide to Better Apache Spark Performance
A Java Implementer's Guide to Better Apache Spark Performance
Tim Ellison
 
OSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P KriensOSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P Kriens
mfrancis
 
#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?
Charlie Gracie
 
Running your Java EE applications in the Cloud
Running your Java EE applications in the CloudRunning your Java EE applications in the Cloud
Running your Java EE applications in the Cloud
Arun Gupta
 
Embrace Change - Embrace OSGi
Embrace Change - Embrace OSGiEmbrace Change - Embrace OSGi
Embrace Change - Embrace OSGi
Carsten Ziegeler
 
Discovering the p2 API
Discovering the p2 APIDiscovering the p2 API
Discovering the p2 API
Pascal Rapicault
 
Deploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse FabricDeploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse Fabric
dejanb
 
GlassFish & Java EE Business Update @ CEJUG
GlassFish & Java EE Business Update @ CEJUGGlassFish & Java EE Business Update @ CEJUG
GlassFish & Java EE Business Update @ CEJUG
Arun Gupta
 
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011
Arun Gupta
 
Single Sourcing RAP and RCP - Desktop and web clients from a single code base
Single Sourcing RAP and RCP - Desktop and web clients from a single code baseSingle Sourcing RAP and RCP - Desktop and web clients from a single code base
Single Sourcing RAP and RCP - Desktop and web clients from a single code base
Ralf Sternberg
 

What's hot (20)

Java EE | Modular EJBs for Enterprise OSGi | Tim Ward
Java EE | Modular EJBs for Enterprise OSGi | Tim WardJava EE | Modular EJBs for Enterprise OSGi | Tim Ward
Java EE | Modular EJBs for Enterprise OSGi | Tim Ward
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
 
An XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on DominoAn XPager's Guide to Process Server-Side Jobs on Domino
An XPager's Guide to Process Server-Side Jobs on Domino
 
Understanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profitUnderstanding and extending p2 for fun and profit
Understanding and extending p2 for fun and profit
 
The power of dots
The power of dotsThe power of dots
The power of dots
 
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
 
Jax london 2011
Jax london 2011Jax london 2011
Jax london 2011
 
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)
 
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
 
A Java Implementer's Guide to Better Apache Spark Performance
A Java Implementer's Guide to Better Apache Spark PerformanceA Java Implementer's Guide to Better Apache Spark Performance
A Java Implementer's Guide to Better Apache Spark Performance
 
OSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P KriensOSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P Kriens
 
#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?
 
Running your Java EE applications in the Cloud
Running your Java EE applications in the CloudRunning your Java EE applications in the Cloud
Running your Java EE applications in the Cloud
 
Embrace Change - Embrace OSGi
Embrace Change - Embrace OSGiEmbrace Change - Embrace OSGi
Embrace Change - Embrace OSGi
 
Discovering the p2 API
Discovering the p2 APIDiscovering the p2 API
Discovering the p2 API
 
Deploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse FabricDeploying FuseMQ with Fuse Fabric
Deploying FuseMQ with Fuse Fabric
 
GlassFish & Java EE Business Update @ CEJUG
GlassFish & Java EE Business Update @ CEJUGGlassFish & Java EE Business Update @ CEJUG
GlassFish & Java EE Business Update @ CEJUG
 
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011
 
Single Sourcing RAP and RCP - Desktop and web clients from a single code base
Single Sourcing RAP and RCP - Desktop and web clients from a single code baseSingle Sourcing RAP and RCP - Desktop and web clients from a single code base
Single Sourcing RAP and RCP - Desktop and web clients from a single code base
 

Viewers also liked

Prologue 2012 SDF
Prologue   2012 SDFPrologue   2012 SDF
Prologue 2012 SDF
Soko Guree
 
Modularity with OSGi
Modularity with OSGiModularity with OSGi
Modularity with OSGi
Peter Kriens
 
Introduction into OSGi
Introduction into OSGiIntroduction into OSGi
Introduction into OSGi
Peter Kriens
 
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
Teamlead
 
Modularity with OSGi
Modularity with OSGiModularity with OSGi
Modularity with OSGi
Peter Kriens
 
Компонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияКомпонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестирования
SQALab
 
Системы работы с информацией . Инструменты? Протезы? Тренажеры? Компьютерные ...
Системы работы с информацией. Инструменты? Протезы? Тренажеры? Компьютерные ...Системы работы с информацией. Инструменты? Протезы? Тренажеры? Компьютерные ...
Системы работы с информацией . Инструменты? Протезы? Тренажеры? Компьютерные ...
aivanoff
 
Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014
Miguel Pastor
 
Field injection, type safe configuration, and more new goodies in Declarative...
Field injection, type safe configuration, and more new goodies in Declarative...Field injection, type safe configuration, and more new goodies in Declarative...
Field injection, type safe configuration, and more new goodies in Declarative...
bjhargrave
 
How to manage software complexity with OSGi
How to manage software complexity with OSGiHow to manage software complexity with OSGi
How to manage software complexity with OSGi
Peter Kriens
 
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
mfrancis
 
OSGi toolchain from the ground up - Matteo Rulli
OSGi toolchain from the ground up - Matteo RulliOSGi toolchain from the ground up - Matteo Rulli
OSGi toolchain from the ground up - Matteo Rulli
mfrancis
 
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Milen Dyankov
 
Eclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia KissEclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia Kiss
mfrancis
 
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho DelchevWebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
mfrancis
 
It's beautiful enRoute - Paul Fraser
It's beautiful enRoute - Paul FraserIt's beautiful enRoute - Paul Fraser
It's beautiful enRoute - Paul Fraser
mfrancis
 
Microservices and OSGi: Better together?
Microservices and OSGi: Better together?Microservices and OSGi: Better together?
Microservices and OSGi: Better together?
Graham Charters
 
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
mfrancis
 
Moved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsidersMoved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsiders
Milen Dyankov
 
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
Anna Shymchenko
 

Viewers also liked (20)

Prologue 2012 SDF
Prologue   2012 SDFPrologue   2012 SDF
Prologue 2012 SDF
 
Modularity with OSGi
Modularity with OSGiModularity with OSGi
Modularity with OSGi
 
Introduction into OSGi
Introduction into OSGiIntroduction into OSGi
Introduction into OSGi
 
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
Application Developer Days 2011 - Teamlead - Писать плагины проще простого!
 
Modularity with OSGi
Modularity with OSGiModularity with OSGi
Modularity with OSGi
 
Компонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияКомпонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестирования
 
Системы работы с информацией . Инструменты? Протезы? Тренажеры? Компьютерные ...
Системы работы с информацией. Инструменты? Протезы? Тренажеры? Компьютерные ...Системы работы с информацией. Инструменты? Протезы? Тренажеры? Компьютерные ...
Системы работы с информацией . Инструменты? Протезы? Тренажеры? Компьютерные ...
 
Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014Liferay & Big Data Dev Con 2014
Liferay & Big Data Dev Con 2014
 
Field injection, type safe configuration, and more new goodies in Declarative...
Field injection, type safe configuration, and more new goodies in Declarative...Field injection, type safe configuration, and more new goodies in Declarative...
Field injection, type safe configuration, and more new goodies in Declarative...
 
How to manage software complexity with OSGi
How to manage software complexity with OSGiHow to manage software complexity with OSGi
How to manage software complexity with OSGi
 
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
Dynamically assembled REST Microservices using JAX-RS and... Microservices? -...
 
OSGi toolchain from the ground up - Matteo Rulli
OSGi toolchain from the ground up - Matteo RulliOSGi toolchain from the ground up - Matteo Rulli
OSGi toolchain from the ground up - Matteo Rulli
 
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
Moved to https://slidr.io/azzazzel/software-craftsmanship-in-the-era-of-softw...
 
Eclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia KissEclipse + Maven + OSGi has never been so easy - Atllia Kiss
Eclipse + Maven + OSGi has never been so easy - Atllia Kiss
 
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho DelchevWebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
 
It's beautiful enRoute - Paul Fraser
It's beautiful enRoute - Paul FraserIt's beautiful enRoute - Paul Fraser
It's beautiful enRoute - Paul Fraser
 
Microservices and OSGi: Better together?
Microservices and OSGi: Better together?Microservices and OSGi: Better together?
Microservices and OSGi: Better together?
 
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
Dockerizing apps for the Deployment Platform of the Month with OSGi - David B...
 
Moved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsidersMoved to https://slidr.io/azzazzel/osgi-for-outsiders
Moved to https://slidr.io/azzazzel/osgi-for-outsiders
 
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
Евгений Бова: "Modularity in Java: introduction to Jigsaw through the prism o...
 

Similar to Concierge - Bringing OSGi (back) to Embedded Devices

Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Enginecatherinewall
 
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaOSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 India
Arun Gupta
 
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil BartlettJava Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
JAX London
 
Think evo and use evo
Think evo and use evoThink evo and use evo
Think evo and use evo
Ram Prasad G S
 
MWLUG - Universal Java
MWLUG  -  Universal JavaMWLUG  -  Universal Java
MWLUG - Universal Java
Philippe Riand
 
Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009
Arun Gupta
 
Java on z overview 20161107
Java on z overview 20161107Java on z overview 20161107
Java on z overview 20161107
Marcel Mitran
 
Preparing your code for Java 9
Preparing your code for Java 9Preparing your code for Java 9
Preparing your code for Java 9
Deepu Xavier
 
Migrating to Java 11
Migrating to Java 11Migrating to Java 11
Migrating to Java 11
Arto Santala
 
Splunking the JVM
Splunking the JVMSplunking the JVM
Splunking the JVM
Damien Dallimore
 
JAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptxJAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptx
SuganthiDPSGRKCW
 
Building Content Applications with JCR and OSGi
Building Content Applications with JCR and OSGiBuilding Content Applications with JCR and OSGi
Building Content Applications with JCR and OSGi
Cédric Hüsler
 
Java session2
Java session2Java session2
Java session2
Jigarthacker
 
Java dev mar_2021_keynote
Java dev mar_2021_keynoteJava dev mar_2021_keynote
Java dev mar_2021_keynote
Suyash Joshi
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBayTony Ng
 
OSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesOSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesRob Davies
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
David Delabassee
 
World of Node.JS
World of Node.JSWorld of Node.JS
World of Node.JS
Alexander Shtuchkin
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
David Delabassee
 
JDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDKJDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDK
Wolfgang Weigend
 

Similar to Concierge - Bringing OSGi (back) to Embedded Devices (20)

Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaOSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 India
 
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil BartlettJava Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil Bartlett
 
Think evo and use evo
Think evo and use evoThink evo and use evo
Think evo and use evo
 
MWLUG - Universal Java
MWLUG  -  Universal JavaMWLUG  -  Universal Java
MWLUG - Universal Java
 
Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009
 
Java on z overview 20161107
Java on z overview 20161107Java on z overview 20161107
Java on z overview 20161107
 
Preparing your code for Java 9
Preparing your code for Java 9Preparing your code for Java 9
Preparing your code for Java 9
 
Migrating to Java 11
Migrating to Java 11Migrating to Java 11
Migrating to Java 11
 
Splunking the JVM
Splunking the JVMSplunking the JVM
Splunking the JVM
 
JAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptxJAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptx
 
Building Content Applications with JCR and OSGi
Building Content Applications with JCR and OSGiBuilding Content Applications with JCR and OSGi
Building Content Applications with JCR and OSGi
 
Java session2
Java session2Java session2
Java session2
 
Java dev mar_2021_keynote
Java dev mar_2021_keynoteJava dev mar_2021_keynote
Java dev mar_2021_keynote
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBay
 
OSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesOSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application Bundles
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
 
World of Node.JS
World of Node.JSWorld of Node.JS
World of Node.JS
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
 
JDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDKJDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDK
 

Recently uploaded

Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 

Recently uploaded (20)

Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 

Concierge - Bringing OSGi (back) to Embedded Devices

  • 1. © 2016 IBM Corporation IoT Virtual Meetup June 2nd 2016 Concierge – Bringing OSGi (back) to Embedded Devices Jan S. Rellermeyer
  • 2. © 2016 IBM Corporation Embedded Devices Typically fixed-function devices Limited user interface ISA OS Software typically closely tied to the hardware 2 Image: www.eeweb.com
  • 3. © 2016 IBM Corporation Embedded Devices Are Evolving We see a new class of embedded systems emerging Advanced processors Larger set of capabilities Enhanced user interface / user experience Open platforms for a software ecosystem 3 Image: www.apple.com
  • 4.
  • 5.
  • 6. © 2016 IBM Corporation OSGi Dynamic Module System for the Java Runtime Original domain: Home Gateway Multiple software packages need to co-exist on the same machine Long-running software Periodic maintenance and updates requires Ideally with minimal downtime and no interruption of unrelated software packages 6 • Java on the Embedded Device • Pros: • bridges heterogeneity • can run the same code in the cloud or on the device • Cons: • updates and maintenance
  • 7. © 2016 IBM Corporation Module Management Traditional Java: The mystical class path java –cp commons‐X.jar:foo.jar:bar.jar my.application.MainClass Which module contains the main class? What are the dependencies between foo.jar and bar.jar? What happens if bar.jar is upgraded to bar-1.01.jar? 7
  • 8. © 2016 IBM Corporation OSGi Module Layer Modules are called Bundles JAR files with additional metadata Runtime system: The Framework Lifecycle management Bundles implement isolation and locality Interaction between bundles is limited Shared code through package imports Every bundle is loaded through a separate classloader Monitoring system state through events 8
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. © 2016 IBM Corporation Concierge Question: What is the (minimum) overhead of OSGi? The “old” Concierge: OSGi R3 core implementation developed during my PhD at ETH Zurich optimized for mobile and embedded devices, has a footprint of only 86kB People found the source code readable and understandable: 7 Java classes + 7 inner classes. [J.S. Rellermeyer and G. Alonso: Concierge – A Service Platform for Resource-Constrained Devices. In: EuroSys 2007]. Image: http://www.linksys.com 13
  • 14. © 2016 IBM Corporation Eclipse Concierge Goals:  Full OSGi core R5 compatibility  Keep a small footprint to work well on embedded devices  Remain “readable”  Remain backwards-compatible  Java 5  Java 1.4?  Being a sandbox for innovation around OSGi 14 Image: http://raspberrypi.org
  • 15.
  • 16.
  • 17. © 2016 IBM Corporation Experiments Beaglebone Rev A5 • AM335x 720MHz ARM Cortex-A8 • 256 MiB DDR2 RAM • 4 GiB microSD card • Angstrom Linux • Java SE Embedded 1.7.0_21-b11 and • Java SE Embedded build 1.8.0_06-b23 compact1 Raspberry Pi B • ARM1176JZF-S 700 MHz ARM 11 • 512 MiB SDRAM (shared with GPU) • 8 GiB SDHD card • Raspbian Linux • Java SE build 1.8.0-b132 17 Image: http://beaglebone.org
  • 18. © 2016 IBM Corporation OSGi Frameworks Eclipse Equinox • version 3.10.101.v20150820-1432 • 1.3 MiB • (R6 framework) Apache Felix • version 5.4.0 • 675 kiB Knopflerfish • version 7.2.0 • 609kiB / 320kiB compact Concierge • version 5.0.0 • 245kiB 18
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. © 2016 IBM Corporation Resolver 24 Generate 1000 “random bundles” • Can either import or export up to 5 packages • Choice of 50 packages in total • For exports: generate a random package version from [1.0.0-21.0.0) • For import: generate a random import range from the interval. Install all 1000 bundles Resolve the bundles Benchmark turned out to be rather volatile…
  • 25.
  • 26.
  • 27. © 2016 IBM Corporation Usability What does Usability mean for an OSGi framework? Don’t be annoying… Stay close to the (core) standard Every OSGi framework has some extra functionality Concierge has a built-in log service Discrepancies between compile time and run time behavior is what makes OSGi challenging Log service in the framework => correlate application behavior with framework events 27
  • 28. © 2016 IBM Corporation XargsFileLauncher $ java -jar framework/org.eclipse.concierge-5.0.0.*.jar samples/demo.xargs # demo.xargs -Dorg.osgi.framework.system.packages.extra+=javax.xml.parsers # -Drepo=http://www.us.apache.org/dist/felix -Drepo=localRepo # load bundles, use wildcard notation for local files, not for URLs -istart bundles/org.eclipse.concierge.shell-5.0.0.*.jar -istart bundles/org.eclipse.concierge.service.startlevel-5.0.0.*.jar -istart bundles/org.eclipse.concierge.service.packageadmin-5.0.0.*.jar -istart ${repo}/org.apache.felix.httplite.complete-0.1.4.jar -istart ${repo}/org.apache.felix.webconsole-4.2.14-all.jar • Concierge supports Knopflerfish styled xargs file for startup • Enhanced property (variable replacement) and install notation (wildcard support) • Supports start level in scripts (-level <n>) 28
  • 29. © 2016 IBM Corporation Remote Management RESTful interface • Exposing the framework and its internal state as resources • Bundles • Services • Easy management of OSGi deployments through REST • Command line tools • Web interfaces • Application-level • REST service implementation will appear in Concierge 5.1 29
  • 30. © 2016 IBM Corporation What’s next? Several work streams • R6 compatibility • More auxiliary bundles • EventAdmin • Remote services? • Remote management based on REST interface • Help other projects with transitioning to Concierge
  • 31.
  • 32. © 2016 IBM Corporation32 Copyright and Trademarks © IBM Corporation 2016. All Rights Reserved. IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corp., and registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web – see the IBM “Copyright and trademark information” page at URL: www.ibm.com/legal/copytrade.shtml