SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
© 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.

Weitere ähnliche Inhalte

Was ist angesagt?

We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
mfrancis
 

Was ist angesagt? (20)

Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013
 
IBM WebSphere Liberty and Docker Deep Dive
IBM WebSphere Liberty and Docker Deep DiveIBM WebSphere Liberty and Docker Deep Dive
IBM WebSphere Liberty and Docker Deep Dive
 
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
 
Taking the Application Server to Web Scale with Netflix Open Source Software
Taking the Application Server to Web Scale with Netflix Open Source SoftwareTaking the Application Server to Web Scale with Netflix Open Source Software
Taking the Application Server to Web Scale with Netflix Open Source Software
 
QCon Shanghai: Trends in Application Development
QCon Shanghai: Trends in Application DevelopmentQCon Shanghai: Trends in Application Development
QCon Shanghai: Trends in Application Development
 
JavaOne2013: Secure Engineering Practices for Java
JavaOne2013: Secure Engineering Practices for JavaJavaOne2013: Secure Engineering Practices for Java
JavaOne2013: Secure Engineering Practices for Java
 
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them EverywhereAD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
AD106 - IBM Lotus Domino XPages anywhere - Write them once, See them Everywhere
 
Under the Hood of the Testarossa JIT Compiler
Under the Hood of the Testarossa JIT CompilerUnder the Hood of the Testarossa JIT Compiler
Under the Hood of the Testarossa JIT Compiler
 
Extending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with PluginsExtending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with Plugins
 
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
 
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
 
Overview
OverviewOverview
Overview
 
Comparison Of Open Source App Servers
Comparison Of Open Source App ServersComparison Of Open Source App Servers
Comparison Of Open Source App Servers
 
Helping Organizations Realize the Value of DevOps with Continuous Software De...
Helping Organizations Realize the Value of DevOps with Continuous Software De...Helping Organizations Realize the Value of DevOps with Continuous Software De...
Helping Organizations Realize the Value of DevOps with Continuous Software De...
 
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
 
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
 
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
 
BP501 - Building and deploying custom IBM sametime connect client installatio...
BP501 - Building and deploying custom IBM sametime connect client installatio...BP501 - Building and deploying custom IBM sametime connect client installatio...
BP501 - Building and deploying custom IBM sametime connect client installatio...
 
Strategic guidance
Strategic guidanceStrategic guidance
Strategic guidance
 
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
AD109 - Using the IBM Sametime Proxy SDK: WebSphere Portal, IBM Connections -...
 

Andere mochten auch

Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparison
Rohit Kelapure
 
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
Rohit Kelapure
 
Web Sphere Problem Determination Ext
Web Sphere Problem Determination ExtWeb Sphere Problem Determination Ext
Web Sphere Problem Determination Ext
Rohit Kelapure
 

Andere mochten auch (20)

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

Ähnlich wie Concierge: Bringing OSGi (Back) to Embedded Devices

Codemotion rome 2015 bluemix lab tutorial -- Codemotion Rome 2015
Codemotion rome 2015   bluemix lab tutorial -- Codemotion Rome 2015Codemotion rome 2015   bluemix lab tutorial -- Codemotion Rome 2015
Codemotion rome 2015 bluemix lab tutorial -- Codemotion Rome 2015
Codemotion
 

Ähnlich wie Concierge: Bringing OSGi (Back) to Embedded Devices (20)

Become an IBM Cloud Architect in 40 Minutes
Become an IBM Cloud Architect in 40 MinutesBecome an IBM Cloud Architect in 40 Minutes
Become an IBM Cloud Architect in 40 Minutes
 
OpenWhisk Introduction
OpenWhisk IntroductionOpenWhisk Introduction
OpenWhisk Introduction
 
Exposing auto-generated Swagger 2.0 documents from Liberty!
Exposing auto-generated Swagger 2.0 documents from Liberty!Exposing auto-generated Swagger 2.0 documents from Liberty!
Exposing auto-generated Swagger 2.0 documents from Liberty!
 
Your PaaS to DevOps
Your PaaS to DevOpsYour PaaS to DevOps
Your PaaS to DevOps
 
How to Adopt Docker Within Your Enterprise Using IBM UrbanCode Deploy (Interc...
How to Adopt Docker Within Your Enterprise Using IBM UrbanCode Deploy (Interc...How to Adopt Docker Within Your Enterprise Using IBM UrbanCode Deploy (Interc...
How to Adopt Docker Within Your Enterprise Using IBM UrbanCode Deploy (Interc...
 
12-factor applications using WAS Liberty, IBM Bluemix, and Docker
12-factor applications using WAS Liberty, IBM Bluemix, and Docker12-factor applications using WAS Liberty, IBM Bluemix, and Docker
12-factor applications using WAS Liberty, IBM Bluemix, and Docker
 
Cloud Roundtable | Your PaaS to DevOps
Cloud Roundtable | Your PaaS to DevOpsCloud Roundtable | Your PaaS to DevOps
Cloud Roundtable | Your PaaS to DevOps
 
Evolving a monolithic Java EE application to microservices
Evolving a monolithic Java EE application to microservicesEvolving a monolithic Java EE application to microservices
Evolving a monolithic Java EE application to microservices
 
InterConnect 2017 : Git for COBOL and PL/I?—Yes, It Can Make Sense
InterConnect 2017 : Git for COBOL and PL/I?—Yes, It Can Make SenseInterConnect 2017 : Git for COBOL and PL/I?—Yes, It Can Make Sense
InterConnect 2017 : Git for COBOL and PL/I?—Yes, It Can Make Sense
 
Codemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab TutorialCodemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab Tutorial
 
Preview Cognos Analytics Version 11
Preview Cognos Analytics Version 11Preview Cognos Analytics Version 11
Preview Cognos Analytics Version 11
 
Adapting Deployment Pipelines for Complex Applications
Adapting Deployment Pipelines for Complex ApplicationsAdapting Deployment Pipelines for Complex Applications
Adapting Deployment Pipelines for Complex Applications
 
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
 
Bringing Innovation Faster to Customer via DevOps
Bringing Innovation Faster to Customer via DevOpsBringing Innovation Faster to Customer via DevOps
Bringing Innovation Faster to Customer via DevOps
 
Codemotion rome 2015 bluemix lab tutorial -- Codemotion Rome 2015
Codemotion rome 2015   bluemix lab tutorial -- Codemotion Rome 2015Codemotion rome 2015   bluemix lab tutorial -- Codemotion Rome 2015
Codemotion rome 2015 bluemix lab tutorial -- Codemotion Rome 2015
 
IBM Collaboration Solutions Application Development - Frequently Asked Questions
IBM Collaboration Solutions Application Development - Frequently Asked QuestionsIBM Collaboration Solutions Application Development - Frequently Asked Questions
IBM Collaboration Solutions Application Development - Frequently Asked Questions
 
AD506: IBM Connect 2014. IBM Sametime Proxy 9: A fuller, richer customizable ...
AD506: IBM Connect 2014. IBM Sametime Proxy 9: A fuller, richer customizable ...AD506: IBM Connect 2014. IBM Sametime Proxy 9: A fuller, richer customizable ...
AD506: IBM Connect 2014. IBM Sametime Proxy 9: A fuller, richer customizable ...
 
What's new in Notes Domino 901 Feature Pack 8
What's new in Notes Domino 901 Feature Pack 8What's new in Notes Domino 901 Feature Pack 8
What's new in Notes Domino 901 Feature Pack 8
 
Improving Software Delivery with Software Defined Environments (IBM Interconn...
Improving Software Delivery with Software Defined Environments (IBM Interconn...Improving Software Delivery with Software Defined Environments (IBM Interconn...
Improving Software Delivery with Software Defined Environments (IBM Interconn...
 
Accelerating Machine Learning Applications on Spark Using GPUs
Accelerating Machine Learning Applications on Spark Using GPUsAccelerating Machine Learning Applications on Spark Using GPUs
Accelerating Machine Learning Applications on Spark Using GPUs
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

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.