SlideShare a Scribd company logo
1 of 33
Download to read offline
© 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

Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013MattKilner
 
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 DiveDavid Currie
 
[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 6Rakuten Group, Inc.
 
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 SoftwareDavid Currie
 
QCon Shanghai: Trends in Application Development
QCon Shanghai: Trends in Application DevelopmentQCon Shanghai: Trends in Application Development
QCon Shanghai: Trends in Application DevelopmentChris Bailey
 
JavaOne2013: Secure Engineering Practices for Java
JavaOne2013: Secure Engineering Practices for JavaJavaOne2013: Secure Engineering Practices for Java
JavaOne2013: Secure Engineering Practices for JavaChris Bailey
 
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 EverywhereStephan H. Wissel
 
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 CompilerMark Stoodley
 
Extending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with PluginsExtending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with PluginsIBM UrbanCode Products
 
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...David Currie
 
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...Chris Bailey
 
Comparison Of Open Source App Servers
Comparison Of Open Source App ServersComparison Of Open Source App Servers
Comparison Of Open Source App ServersRogue Wave Software
 
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...IBM UrbanCode Products
 
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...Stephan H. Wissel
 
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...Stephan H. Wissel
 
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
 
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...Carl Tyler
 
Strategic guidance
Strategic guidanceStrategic guidance
Strategic guidanceRoger Pence
 
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 -...Carl Tyler
 

What's hot (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 -...
 

Viewers also liked

Building Secure OSGi Applications
Building Secure OSGi ApplicationsBuilding Secure OSGi Applications
Building Secure OSGi ApplicationsMarcel Offermans
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparisonRohit 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-finalRohit Kelapure
 
Web Sphere Problem Determination Ext
Web Sphere Problem Determination ExtWeb Sphere Problem Determination Ext
Web Sphere Problem Determination ExtRohit Kelapure
 
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 MicroservicesDavid Currie
 
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 workshopRohit Kelapure
 
Caching technology comparison
Caching technology comparisonCaching technology comparison
Caching technology comparisonRohit Kelapure
 
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 Rohit Kelapure
 
Node Summit 2016: Web App Architectures
Node Summit 2016:  Web App ArchitecturesNode Summit 2016:  Web App Architectures
Node Summit 2016: Web App ArchitecturesChris Bailey
 
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 Hackbarthmfrancis
 
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 BlueMixRohit Kelapure
 
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 FeaturesChris Bailey
 
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...Rohit Kelapure
 
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 ...mfrancis
 
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 ...timfanelli
 
Liberty dynacache ffw_iea_ste
Liberty dynacache ffw_iea_steLiberty dynacache ffw_iea_ste
Liberty dynacache ffw_iea_steRohit Kelapure
 
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 EconomicsChris Bailey
 

Viewers also liked (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
 

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

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 MinutesAndrew Ferrier
 
OpenWhisk Introduction
OpenWhisk IntroductionOpenWhisk Introduction
OpenWhisk IntroductionIoana Baldini
 
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!Arthur De Magalhaes
 
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...Michael Elder
 
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 DockerErin Schnabel
 
Cloud Roundtable | Your PaaS to DevOps
Cloud Roundtable | Your PaaS to DevOpsCloud Roundtable | Your PaaS to DevOps
Cloud Roundtable | Your PaaS to DevOpsCodemotion
 
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 microservicesErin Schnabel
 
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 SenseDevOps for Enterprise Systems
 
Codemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab TutorialCodemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab Tutorialgjuljo
 
Preview Cognos Analytics Version 11
Preview Cognos Analytics Version 11Preview Cognos Analytics Version 11
Preview Cognos Analytics Version 11Senturus
 
Adapting Deployment Pipelines for Complex Applications
Adapting Deployment Pipelines for Complex ApplicationsAdapting Deployment Pipelines for Complex Applications
Adapting Deployment Pipelines for Complex ApplicationsIBM UrbanCode Products
 
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...0xdaryl
 
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 DevOpsMartin Yee Kee, Lee
 
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 2015Codemotion
 
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 QuestionsNiklas Heidloff
 
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 ...William Holmes
 
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 8Swapnil Patankar
 
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...Michael Elder
 
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 GPUsIBM
 

Similar to 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
 

Recently uploaded

How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxKaustubhBhavsar6
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosErol GIRAUDY
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingMAGNIntelligence
 
Planetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsDianaGray10
 
Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updateadam112203
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxSatishbabu Gunukula
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and businessFrancesco Corti
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfTejal81
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingFrancesco Corti
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTxtailishbaloch
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 
.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptxHansamali Gamage
 
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechWebinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechProduct School
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)IES VE
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applicationsnooralam814309
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2DianaGray10
 
EMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? WebinarEMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? WebinarThousandEyes
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kitJamie (Taka) Wang
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveIES VE
 

Recently uploaded (20)

How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptx
 
Scenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenariosScenario Library et REX Discover industry- and role- based scenarios
Scenario Library et REX Discover industry- and role- based scenarios
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced Computing
 
Planetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile BrochurePlanetek Italia Srl - Corporate Profile Brochure
Planetek Italia Srl - Corporate Profile Brochure
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projects
 
Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 update
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptx
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and business
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is going
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 
.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx.NET 8 ChatBot with Azure OpenAI Services.pptx
.NET 8 ChatBot with Azure OpenAI Services.pptx
 
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechWebinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
 
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applications
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2
 
EMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? WebinarEMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? Webinar
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kit
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
 

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.