SlideShare a Scribd company logo
© 2013 IBM Corporation
Concierge: Bringing OSGi (Back) to Embedded
Devices
Jan S. Rellermeyer, IBM Research
Jan S. Rellermeyer
24 Sep 2013
Embedded Devices
 Typically fixed-function devices
 Limited user interface
 ISA
 OS
 Software typically closely tied to the hardware
2
Image: www.eeweb.com
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
Mobile Transforms Embedded Systems
Image: www.honeywell.com
Image: www.nest.com
Image: www.nikon.com
Image: www.apple.com
Continuous Platform Experience
5
Cloud
SoftwareStack
Embedded Device
Image: http://www.raspberrypi.org
ESSC
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
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?
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
– Inter-bundle calls through services
– Monitoring system state through events
The Lifecycle of a Bundle
 Management: Install / Start / Stop /
Uninstall bundles at runtime.
 OSGi keeps track of dependencies
 What happens if a Bundle is
uninstalled?
From the OSGi Core Specifications
The OSGi Framework
OSGi Framework
BundleA
Package 1
Package 2
Package 3
BundleB
Package I
Package II
Exported Package Exported Package
Private Package
Import
Export-Package: Package 1 Export-Package: Package I, Package II
Import-Package: Package 1
• Packages can be versioned
• OSGi encourages semantic versioning of bundles and packages
OSGi Services: Reducing Coupling
 Modules allow for a compositional approach to building applications
 But: Package dependencies are explicit.
– Limits the modularity!
 Solution: Services
– Idea: Separate the interface from the implementation
Interface
Implementation
Module
Module Module Service Service
The Service Registry
 The OSGi framework maintains a central service registry
 Bundles can register their own services and retrieve services provided by other
bundles
 Services can be registered with a set of properties
– Additional description of the service, can be used to model constraints or do
“best fit matching”
 No runtime overhead for using services after lookup!
Registry
OSGi Services
 Composition at runtime
 Loosely-coupled interaction through services
 The system is dynamic
13
14
Concierge
 Question: What is the (minimum) overhead of OSGi?
 My answer: 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
15
Consistency across Platforms
iPAQ 3870
Linux Familiar 0.8
SA-1110 CPU
64 MB RAM
SableVM
Zaurus 5500G
Linux Embedix
SA-1110 CPU
64 MB RAM
Sun cvm
Nokia 9300i
SymbianOS
TI OMAP 1510 CPU
80 MB RAM
IBM J9
iPAQ 5550
Windows Mobile
PXA255 CPU
128 MB RAM
IBM J9
LinkSys NSLU2
Unslung
IXP420 CPU
32 MB RAM
JamVM
16
Performance influence of the final modifier
17
Evaluation (Small Devices)
Example: The BUG Platform
18
 Embedded Linux Device
 Runs Java (PhoneME) and OSGi
 Pluggable hardware
modules
 Registers OSGi services
 Applications are OSGi
bundles
Image: http://www.buglabs.com
OSGi R3
 OSGi R3: “unique” bundles and packages
19
my.bundle.one my.bundle.two
exports my.package
imports
OSGi R4
 OSGi R4: multiple versions, class spaces
 Fragments
 Require-Bundle
20
my.bundle.one 1.0 my.bundle.two
exports my.package; version 1.0
imports
my.bundle.one 2.0
exports my.package; version 2.0
OSGi R5
 OSGi R5: generic requirements and capabilities
 Many hooks into the framework to manipulate the observed state
21
my.bundle.one 1.0
my.bundle.two
Provide capability foo.bar{a=10, b=[1,2,3]}
Require capability foo.bar filter=(!(a>10))
Generic vs. Optimized
22
Packages Bundles
Generic
Capabilities
Concierge goes Eclipse
 Targets:
 Full OSGi core R5 compatibility
 Keep a small footprint to work well on embedded devices
– Currently < 350kB footprint
 Remain “readable”
– Currently 9 classes
 Remain backwards-compatible
 Being a sandbox for innovation around OSGi
23
Image: http://www.eclipse.org
Demo
 BeagleBone
 AM335x 720MHz ARM Cortex-A8
 256MB DDR2 RAM
 4GB microSD card
 runs Angstrom Linux Distribution
 Java SE Embedded 1.7.0_21-b11
 Concierge R5 alpha
24
Image: http://www.beaglebone.org
REST Interface
 Designed for the cloud
 Very useful for embedded systems as well
 Examples
– GET http://my_host/framework/bundles/representations
– POST http://my_host/framework/bundles
– GET http://my_host/framework/bundle/5/state
– GET http://my_host/framework/services/(objectClass=org.osgi.*)/representations/
 This is work in progress (RFC 182)
 http://www.osgi.org/download/osgi-early-draft-2013-03.pdf
25
Location Transparency: Remote Service Invocation
26
Juggle
 Model critical functionality as services
–Module with hardware-accelerated
service
–Co-Module with dynamically
accelerated service
 “Juggle” with the accelerators
27
Juggle Prototype System
 Xilinx Virtex-II Pro
 PPC 440 core, 300 MHz
 256 MB DDR SRAM
 Linux 2.6.35 (patched)
 JVM
–IcedTea Zero, IcedTea Cacao, or IBM J9
 OSGi Framework
– Concierge
 Juggle
– Adds support for loading and managing co-bundles
– Manages the FPGA and the reprogramming
28
Image: http://www.xilinx.com
Evaluation
 PRR of about 16% of the chip real estate
 Reprogramming time: 11 – 25 msec.
(Literature: max. 30 msec)
 Switching the socket bridge: 3 msec.
 Initial load time for a hardware accelerated bundle: ~ 100 msec.
 Initial load time for a co-bundle: < 1sec
29
Evaluation: Triple-DES
30
TDES with hardware acceleration
31
© Copyright IBM Corporation 2013. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind,
express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have
the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM
software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities
referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature
availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the International Business Machines
Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.
Legal Disclaimer
• © IBM Corporation 2013. All Rights Reserved.
• The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained
in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are
subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing
contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and
conditions of the applicable license agreement governing the use of IBM software.
• References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or
capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to
future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by
you will result in any specific sales, revenue growth or other results.
• Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will
experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage
configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.
• IBM and the IBM logo are trademarks of International Business Machines Corporation in the United States, other countries, or both.
• Java and all Java-based trademarks are trademarks of Oracle Corporation, Inc. in the United States, other countries, or both.
• Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.
• Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of
others.

More Related Content

What's hot (20)

ODP
Windows Debugging Tools - JavaOne 2013
MattKilner
 
PPT
IBM WebSphere Liberty and Docker Deep Dive
David Currie
 
PPTX
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
Rakuten Group, Inc.
 
PPTX
Taking the Application Server to Web Scale with Netflix Open Source Software
David Currie
 
PDF
QCon Shanghai: Trends in Application Development
Chris Bailey
 
PDF
JavaOne2013: Secure Engineering Practices for Java
Chris Bailey
 
PDF
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
Stephan H. Wissel
 
PDF
Under the Hood of the Testarossa JIT Compiler
Mark Stoodley
 
PPTX
Extending uBuild and uDeploy with Plugins
IBM UrbanCode Products
 
PDF
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
David Currie
 
PDF
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
Chris Bailey
 
PPTX
Overview
Joanne Scouler
 
PPT
Comparison Of Open Source App Servers
Rogue Wave Software
 
PDF
Helping Organizations Realize the Value of DevOps with Continuous Software De...
IBM UrbanCode Products
 
PDF
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
Stephan H. Wissel
 
PDF
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
Stephan H. Wissel
 
PDF
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
mfrancis
 
PPT
BP501 - Building and deploying custom IBM sametime connect client installatio...
Carl Tyler
 
PPTX
Strategic guidance
Roger Pence
 
PDF
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
Carl Tyler
 
Windows Debugging Tools - JavaOne 2013
MattKilner
 
IBM WebSphere Liberty and Docker Deep Dive
David Currie
 
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
Rakuten Group, Inc.
 
Taking the Application Server to Web Scale with Netflix Open Source Software
David Currie
 
QCon Shanghai: Trends in Application Development
Chris Bailey
 
JavaOne2013: Secure Engineering Practices for Java
Chris Bailey
 
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
Stephan H. Wissel
 
Under the Hood of the Testarossa JIT Compiler
Mark Stoodley
 
Extending uBuild and uDeploy with Plugins
IBM UrbanCode Products
 
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
David Currie
 
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
Chris Bailey
 
Overview
Joanne Scouler
 
Comparison Of Open Source App Servers
Rogue Wave Software
 
Helping Organizations Realize the Value of DevOps with Continuous Software De...
IBM UrbanCode Products
 
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
Stephan H. Wissel
 
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
Stephan H. Wissel
 
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
mfrancis
 
BP501 - Building and deploying custom IBM sametime connect client installatio...
Carl Tyler
 
Strategic guidance
Roger Pence
 
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
Carl Tyler
 

Viewers also liked (20)

PDF
Building Secure OSGi Applications
Marcel Offermans
 
ODP
Caching technology comparison
Rohit Kelapure
 
PPTX
D Y N A C A C H E Wxs
Rohit Kelapure
 
PPTX
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
Rohit Kelapure
 
PDF
Web Sphere Problem Determination Ext
Rohit Kelapure
 
PPTX
D Y N A C A C H E Wxs
Rohit Kelapure
 
PDF
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
David Currie
 
DOC
Web sphere application server performance tuning workshop
Rohit Kelapure
 
PDF
1812 icap-v1.3 0430
Rohit Kelapure
 
ODP
Caching technology comparison
Rohit Kelapure
 
PDF
A Deep Dive into the Liberty Buildpack on IBM BlueMix
Rohit Kelapure
 
PPTX
Node Summit 2016: Web App Architectures
Chris Bailey
 
PPTX
How the Bosch Group is making use of OSGi for IoT - Kai Hackbarth
mfrancis
 
PDF
Migrate Heroku & OpenShift Applications to IBM BlueMix
Rohit Kelapure
 
PDF
WebSphere Technical University: Top WebSphere Problem Determination Features
Chris Bailey
 
PDF
Liberty Buildpack: Designed for Extension - Integrating your services in Blue...
Rohit Kelapure
 
PDF
OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...
mfrancis
 
PDF
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
timfanelli
 
PDF
Liberty dynacache ffw_iea_ste
Rohit Kelapure
 
PDF
O'Reilly Software Architecture Conf: Cloud Economics
Chris Bailey
 
Building Secure OSGi Applications
Marcel Offermans
 
Caching technology comparison
Rohit Kelapure
 
D Y N A C A C H E Wxs
Rohit Kelapure
 
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
Rohit Kelapure
 
Web Sphere Problem Determination Ext
Rohit Kelapure
 
D Y N A C A C H E Wxs
Rohit Kelapure
 
Scalable, Available and Reliable Cloud Applications with PaaS and Microservices
David Currie
 
Web sphere application server performance tuning workshop
Rohit Kelapure
 
1812 icap-v1.3 0430
Rohit Kelapure
 
Caching technology comparison
Rohit Kelapure
 
A Deep Dive into the Liberty Buildpack on IBM BlueMix
Rohit Kelapure
 
Node Summit 2016: Web App Architectures
Chris Bailey
 
How the Bosch Group is making use of OSGi for IoT - Kai Hackbarth
mfrancis
 
Migrate Heroku & OpenShift Applications to IBM BlueMix
Rohit Kelapure
 
WebSphere Technical University: Top WebSphere Problem Determination Features
Chris Bailey
 
Liberty Buildpack: Designed for Extension - Integrating your services in Blue...
Rohit Kelapure
 
OSGi & Java in Industrial IoT - More than a Solid Trend - Essential to Scale ...
mfrancis
 
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
timfanelli
 
Liberty dynacache ffw_iea_ste
Rohit Kelapure
 
O'Reilly Software Architecture Conf: Cloud Economics
Chris Bailey
 
Ad

Similar to Concierge: Bringing OSGi (Back) to Embedded Devices (20)

PDF
Concierge - Bringing OSGi (back) to Embedded Devices
Jan S. Rellermeyer
 
PDF
Developing Distributed Internet of Things Applications Made Easy with Concier...
mfrancis
 
PDF
Gateway deepdive
Shiu-Fun Poon
 
PPT
Whats Next for OSGi? - BJ Hargrave
mfrancis
 
PPT
Evolving a monolithic Java EE application to microservices
Erin Schnabel
 
PDF
Informix REST API Tutorial
Brian Hughes
 
PDF
Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verb...
mfrancis
 
PDF
Design, Auto-Generate and Expose RESTful Microservices Using Open Source and ...
Arthur De Magalhaes
 
PDF
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Ian Robinson
 
PDF
InterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT Applications
gjuljo
 
KEY
Introduction to EclipseRT (JAX 2010)
Chris Aniszczyk
 
PDF
Think 2018 - MicroProfile OpenAPI
Arthur De Magalhaes
 
PDF
The Power of Two: Using IBM Standards Processing Engine for EDI Commerce or H...
Brian Wilson
 
PDF
Intro to OSGi – the Microservices kernel - P Kriens & T Ward
mfrancis
 
PDF
Learn How to Connect Microservices Using the Open API Initiative
Arthur De Magalhaes
 
PPTX
Dmt 5899 workshop - Learn to Collaborate, Trace, Review and Reuse Your Requir...
IBM Rational software
 
PDF
DataPower API Gateway Performance Benchmarks
Ozair Sheikh
 
PDF
DataPower API Gateway Performance Benchmarks
IBM DataPower Gateway
 
PDF
Travelling light for the long haul
Ian Robinson
 
PDF
Travelling Light for the Long Haul - Ian Robinson
mfrancis
 
Concierge - Bringing OSGi (back) to Embedded Devices
Jan S. Rellermeyer
 
Developing Distributed Internet of Things Applications Made Easy with Concier...
mfrancis
 
Gateway deepdive
Shiu-Fun Poon
 
Whats Next for OSGi? - BJ Hargrave
mfrancis
 
Evolving a monolithic Java EE application to microservices
Erin Schnabel
 
Informix REST API Tutorial
Brian Hughes
 
Getting to the Next Level with Eclipse Concierge - Jan Rellermeyer + Tim Verb...
mfrancis
 
Design, Auto-Generate and Expose RESTful Microservices Using Open Source and ...
Arthur De Magalhaes
 
Is Enterprise Java Still Relevant (JavaOne 2015 session)
Ian Robinson
 
InterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT Applications
gjuljo
 
Introduction to EclipseRT (JAX 2010)
Chris Aniszczyk
 
Think 2018 - MicroProfile OpenAPI
Arthur De Magalhaes
 
The Power of Two: Using IBM Standards Processing Engine for EDI Commerce or H...
Brian Wilson
 
Intro to OSGi – the Microservices kernel - P Kriens & T Ward
mfrancis
 
Learn How to Connect Microservices Using the Open API Initiative
Arthur De Magalhaes
 
Dmt 5899 workshop - Learn to Collaborate, Trace, Review and Reuse Your Requir...
IBM Rational software
 
DataPower API Gateway Performance Benchmarks
Ozair Sheikh
 
DataPower API Gateway Performance Benchmarks
IBM DataPower Gateway
 
Travelling light for the long haul
Ian Robinson
 
Travelling Light for the Long Haul - Ian Robinson
mfrancis
 
Ad

Recently uploaded (20)

PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PDF
Français Patch Tuesday - Juillet
Ivanti
 
PPTX
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
PDF
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
PDF
Persuasive AI: risks and opportunities in the age of digital debate
Speck&Tech
 
PDF
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
PDF
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PPTX
Top Managed Service Providers in Los Angeles
Captain IT
 
PDF
July Patch Tuesday
Ivanti
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PPTX
Extensions Framework (XaaS) - Enabling Orchestrate Anything
ShapeBlue
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
Français Patch Tuesday - Juillet
Ivanti
 
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
Persuasive AI: risks and opportunities in the age of digital debate
Speck&Tech
 
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
Top Managed Service Providers in Los Angeles
Captain IT
 
July Patch Tuesday
Ivanti
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Extensions Framework (XaaS) - Enabling Orchestrate Anything
ShapeBlue
 

Concierge: Bringing OSGi (Back) to Embedded Devices

  • 1. © 2013 IBM Corporation Concierge: Bringing OSGi (Back) to Embedded Devices Jan S. Rellermeyer, IBM Research Jan S. Rellermeyer 24 Sep 2013
  • 2. Embedded Devices  Typically fixed-function devices  Limited user interface  ISA  OS  Software typically closely tied to the hardware 2 Image: www.eeweb.com
  • 3. 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. Mobile Transforms Embedded Systems Image: www.honeywell.com Image: www.nest.com Image: www.nikon.com Image: www.apple.com
  • 5. Continuous Platform Experience 5 Cloud SoftwareStack Embedded Device Image: http://www.raspberrypi.org ESSC
  • 6. 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. 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?
  • 8. 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 – Inter-bundle calls through services – Monitoring system state through events
  • 9. The Lifecycle of a Bundle  Management: Install / Start / Stop / Uninstall bundles at runtime.  OSGi keeps track of dependencies  What happens if a Bundle is uninstalled? From the OSGi Core Specifications
  • 10. The OSGi Framework OSGi Framework BundleA Package 1 Package 2 Package 3 BundleB Package I Package II Exported Package Exported Package Private Package Import Export-Package: Package 1 Export-Package: Package I, Package II Import-Package: Package 1 • Packages can be versioned • OSGi encourages semantic versioning of bundles and packages
  • 11. OSGi Services: Reducing Coupling  Modules allow for a compositional approach to building applications  But: Package dependencies are explicit. – Limits the modularity!  Solution: Services – Idea: Separate the interface from the implementation Interface Implementation Module Module Module Service Service
  • 12. The Service Registry  The OSGi framework maintains a central service registry  Bundles can register their own services and retrieve services provided by other bundles  Services can be registered with a set of properties – Additional description of the service, can be used to model constraints or do “best fit matching”  No runtime overhead for using services after lookup! Registry
  • 13. OSGi Services  Composition at runtime  Loosely-coupled interaction through services  The system is dynamic 13
  • 14. 14 Concierge  Question: What is the (minimum) overhead of OSGi?  My answer: 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
  • 15. 15 Consistency across Platforms iPAQ 3870 Linux Familiar 0.8 SA-1110 CPU 64 MB RAM SableVM Zaurus 5500G Linux Embedix SA-1110 CPU 64 MB RAM Sun cvm Nokia 9300i SymbianOS TI OMAP 1510 CPU 80 MB RAM IBM J9 iPAQ 5550 Windows Mobile PXA255 CPU 128 MB RAM IBM J9 LinkSys NSLU2 Unslung IXP420 CPU 32 MB RAM JamVM
  • 16. 16 Performance influence of the final modifier
  • 18. Example: The BUG Platform 18  Embedded Linux Device  Runs Java (PhoneME) and OSGi  Pluggable hardware modules  Registers OSGi services  Applications are OSGi bundles Image: http://www.buglabs.com
  • 19. OSGi R3  OSGi R3: “unique” bundles and packages 19 my.bundle.one my.bundle.two exports my.package imports
  • 20. OSGi R4  OSGi R4: multiple versions, class spaces  Fragments  Require-Bundle 20 my.bundle.one 1.0 my.bundle.two exports my.package; version 1.0 imports my.bundle.one 2.0 exports my.package; version 2.0
  • 21. OSGi R5  OSGi R5: generic requirements and capabilities  Many hooks into the framework to manipulate the observed state 21 my.bundle.one 1.0 my.bundle.two Provide capability foo.bar{a=10, b=[1,2,3]} Require capability foo.bar filter=(!(a>10))
  • 22. Generic vs. Optimized 22 Packages Bundles Generic Capabilities
  • 23. Concierge goes Eclipse  Targets:  Full OSGi core R5 compatibility  Keep a small footprint to work well on embedded devices – Currently < 350kB footprint  Remain “readable” – Currently 9 classes  Remain backwards-compatible  Being a sandbox for innovation around OSGi 23 Image: http://www.eclipse.org
  • 24. Demo  BeagleBone  AM335x 720MHz ARM Cortex-A8  256MB DDR2 RAM  4GB microSD card  runs Angstrom Linux Distribution  Java SE Embedded 1.7.0_21-b11  Concierge R5 alpha 24 Image: http://www.beaglebone.org
  • 25. REST Interface  Designed for the cloud  Very useful for embedded systems as well  Examples – GET http://my_host/framework/bundles/representations – POST http://my_host/framework/bundles – GET http://my_host/framework/bundle/5/state – GET http://my_host/framework/services/(objectClass=org.osgi.*)/representations/  This is work in progress (RFC 182)  http://www.osgi.org/download/osgi-early-draft-2013-03.pdf 25
  • 26. Location Transparency: Remote Service Invocation 26
  • 27. Juggle  Model critical functionality as services –Module with hardware-accelerated service –Co-Module with dynamically accelerated service  “Juggle” with the accelerators 27
  • 28. Juggle Prototype System  Xilinx Virtex-II Pro  PPC 440 core, 300 MHz  256 MB DDR SRAM  Linux 2.6.35 (patched)  JVM –IcedTea Zero, IcedTea Cacao, or IBM J9  OSGi Framework – Concierge  Juggle – Adds support for loading and managing co-bundles – Manages the FPGA and the reprogramming 28 Image: http://www.xilinx.com
  • 29. Evaluation  PRR of about 16% of the chip real estate  Reprogramming time: 11 – 25 msec. (Literature: max. 30 msec)  Switching the socket bridge: 3 msec.  Initial load time for a hardware accelerated bundle: ~ 100 msec.  Initial load time for a co-bundle: < 1sec 29
  • 31. TDES with hardware acceleration 31
  • 32. © Copyright IBM Corporation 2013. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.
  • 33. Legal Disclaimer • © IBM Corporation 2013. All Rights Reserved. • The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. • References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. • Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here. • IBM and the IBM logo are trademarks of International Business Machines Corporation in the United States, other countries, or both. • Java and all Java-based trademarks are trademarks of Oracle Corporation, Inc. in the United States, other countries, or both. • Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both. • Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others.