SlideShare a Scribd company logo
1 of 29
Download to read offline
Robust Embedded Applications
     OSGi ME Platforms
November, 25th, 2011
                       Olivier Patry & Fred Rivard, PhD
                                        devel@is2t.com

                                   Andre Bottaro, PhD
                             andre.bottaro@orange.com
Executive Summary
• OSGi is a reference for flexible component based platforms and
  standardization on the Home Market

• OSGi ME is an initiative from Orange Labs and IS2T to show
   – OSGi specification is simplified and targets embedded needs
   – Robustness is strengthened for openness to third party applications


• OSGi ME specification is released, IS2T delivered 1st implementation
   –   Specification release: http://www.e-s-r.net/en/010osgime.php
   –   Strengthened class sharing and isolation mechanisms
   –   Hot plug-n-play mechanisms
   –   Stale reference management
   –   Transactions management
   –   Compatible with SE basic libraries; eClasspath to enable OSGi developers
       to develop on most used Java SE classes
Why OSGi is a reference
for the software embedded in the box
Smart Home

Seven application domains
   –   Security: An always-on system that reassure the user
   –   Energy : The optimization of energy and fluid consumption
   –   Comfort : A system assisting the user every day
   –   Health : The care of elderly people at home
   –   Wellness : A coach at Home
   –   Multimedia : content sharing
   –   Games: Networked community games and gadgets




A new world of applications will emerge from the variety of
 sensors, actuators, devices that become available
                                                          unrestricted
Opportunity : Catalyze the market through the
    share of a common technical infrastructure
     •       Leverage a common ICT infrastructure
              –     Standard sensor networks
              –     Advanced Home Gateway or a box dedicated to home automation apps
              –     Remote Device/Network Management platform


     •       To lower the barriers and make the market emerge
              –     Lower installation and maintenance costs of each service
              –     Go beyond quadruple play, accelerate service delivery
              –     Enlarge the Home Automation market

Shared sensors                           Embedded software platform
                                            hosting applications.                                                                    Remote HMIs
                                     Adv. Home gateway or dedicated box

                                                                                                     ation
                                                                                              applic
                                                                  Home
                                                                 Controller                                          3rd party platforms
                                                                             adm                                   Home Application stores
                                                                                 in    istr
                                                                                            atio
                                               Shared screens                                   n

                                                                                                           Operator platform
                                                      Shared infrastructure
    Page 5        Orange Open Home Automation Infrastructure - J.M. Ortholand, A. Bottaro, D. Schellhoss
The Home ecosystem requires
•   a standard software environment
•   open to third party applications
•   with agile development techniques
•   while remaining compatible with embedded constraints
    – Keep device cost low
    – Make robust applications
    – Create a dynamic market of applications with Home players:


                   • Applications designers (bundles & services)

                   • Platform administrators & application stores

                   • OSGi ME providers (SW part of the OSGi ME platform)

                   • Hardware providers (HW part of the OSGi ME platform)
OSGi model is the primary
reference in Home standardization
bodies
• Broadband Forum : Software lifecycle management is lead
  by OSGi concepts
• HGI : OSGi is the main software platform pushed in HGI
  specifications
• UPnP Forum : OSGi is the primary reference for Device
  Management
• OSGi Alliance : concepts and specifications


  Broadband Forum                                         Home Gateway Initiative
       PD-194                                                    SWEX

                               OSGi Alliance
                          Residential Expert Group




                                UPnP Forum
                    Device Management Working Committee
Why OSGi ME?
Improvements of OSGi technology
     are expected on the Smart Home
     market
OSGi ME technical improvement                Description

Adaptation to cost-effective devices.        OSGi ME runs on any Java ME CDC, SE, EE platform
                                             OSGi ME minimum environment is closed to CLDC.
                                             EDEE = OSGi/EmbeddedDevice-1.0 Execution Environment

Strengthened code isolation                  Several OSGi R4 methods are removed to avoid security checks.

Stale reference management for robustness    Management of service object graphs.
                                             Stale reference detection.
Transactional guaranties                     OSGi ME enables transactional bundle & service lifecycle

Requirements beyond current OSGi ME          Description

Hardware resource sharing and isolation on   OSGi is the technology reference on the market before .NET and
an open embedded software platform              Androïd but it addresses only code sharing and isolation.


Trusted pay-per-use services                 Reliable usage counting

Device abstraction layer                     Provide proxy interfaces for all type of devices, sensors, actuators at
                                             Home
Results so far                       One same application tested on two OSGi
                                        platforms running the same hardware.
                                                               OSGi     OSGi ME
⇒ JVM flash footprint ~200kB       Hardware                     ARM926 399Mhz
                                   Framework footprint       ~400KB         ~40KB
⇒ Footprint compatible for flash   JVM footprint           ~2,000KB        ~200KB
  MCU mass market devices.         OS footprint          ~11,000KB
                                                                      11,000
                                                                               0

                                   Application footprint    ~800KB         ~350KB
                                   Java RAM                 ~700KB         ~550KB
                                   Startup time (HW+SW)      33.0s           5.5s


      Application components               Application components
       into OSGi™ bundles                   into OSGi™ bundles
OSGi™ R4 Platform
Java VM (>Java ME CDC)
                                    OSGi ME Platform
            Linux                   JHAB (Java ME CLDC), baremetal

   Home Automation Box prototype      Home Automation Box prototype
Other results – Orange experiments
•   Comparisons were made between IS2T Java vs JamVM on operations
    expected in home automation applications
     –   smaller code is faster code !

•   Strict CLDC APIs have been considered as too restrictive for
    minimum execution environment
     – OSGi developers ask for Java SE typical classes
     – Binary compatibility between all OSGi versions is required
⇒ IS2T provides now eClasspath, an additional set of Java CDC classes
OSGi ME in a nutshell
OSGi ME in a nutshell
• Keeping the core features of the OSGi technology…
   – fine-grained code sharing and isolation model
   – dynamic software management
   – requiring a full upward compatibility from OSGi ME to OSGi


• and being compliant with Java for “small” devices…
   – no user-defined class loaders
   – binary compatibility with Java CDC/SE APIs


• while simplifying OSGi technology for simpler needs…
   – remove unnecessary and semantically complex features


• and strengthen robustness.
   – no stale reference
   – transactional life cycle management
   – true code isolation
Fine-grained
     code sharing and isolation
•   Modularity demands a strict model of what is guaranteed at runtime
•   => A code change in a bundle has only an impact on bundles that declare code
    imports.

•   Openness to third party applications demands an even stricter model
–   => Distinct actors will only share object access through declared APIs

•   OSGi foundation is a unique basis           (vs Linux, Windows, .NET, Androïd,... )
     –   A bundle declares code imports / code exports / code that remains private
     –   OSGi framework guarantees bundle declarations
           • Sharing: a bundle will have visibility on APIs that are imported
           • Isolation: a bundle will never access private code and code that is not imported
     –   Sharing is efficient: direct method call between bundles (no IPC)
R4 do not totally enforce sharing & isolation
• Any bundle can load any private class and instantiate it
   –   BundleContext.getBundles() + Bundle.loadClass()
   –   Class.forName()


• Any bundle has visibility on any implemented class signature
   –   <service object>.getClass() gives the private name of classes implementing shared
       APIs


• Any bundle has visibility on any file or resource
   –   BundleContext.getBundles + Bundle.getBundleContext().getDataFile()
   –   BundleContext.getBundles + Bundle.getBundleContext().getResource()
   –   BundleContext.getBundles + Bundle.getBundleContext().findEntries()


• Any bundle can register services for other bundles
   –   BundleContext.getBundles()
        • + Bundle.getBundleContext().registerService()


⇒ OSGi requires Java 2 security to ensure isolation
ME ensures strict sharing & isolation

• Class lookup is refined
   – Class.forName() behavior depends on the context
   – Bundle.loadClass is banished since any Bundle object is accessible


• Private class signature are never visible to other bundles
   – <service object>.getClass() depends on the context


• The access to the bundle context of other bundles is banished
   – Bundle.getBundleContext is removed in OSGi ME
   – BundleContext.getResource() and BundleContext.registerService() thus
     really depend on a specific bundle context.


⇒ OSGi ME ensures a strict model for sharing & isolation
⇒ and does not require Java 2 security to do so
OSGi ME adapts
  Software Dynamics to business needs
• Different market requirements on binary code downloads
   – 1st case: No download due to certification, B.O.M., threats


   – 2nd case: Controlled downloads for only well-known (approved) services,
     with threat control, proprietary protocols via proprietary media, e.g., uart,
     spi, i2c, CAN, Ethernet, GSM, Zigbee, ...


   – 3rd case: Authorization of any download from any kind of sources


• Device Software Dynamics levels characterize how binary code
  is loaded into devices
   – DSD 0 = no download
   – DSD 1 = download through a controlled media
   – DSD 2 = no restriction
An OSGi technology compliant with Java for
cost effective devices
• Java ME is Java most spread edition on embedded devices
    – Spread on mobile phones and part of M2M modules
    – OSGi specification is not compliant because it specifies how to implement
      sharing & isolation (class loaders)

• No (heavy and too flexible) user-defined class loaders
    – Although at the basis of OSGi code sharing and isolation model
    – And at the basis of OSGi dynamic software management features
    ⇒ Because they are not the only technical solution, OSGi ME specification
      does not mention class loaders
–

• Interfaces used at runtime must be declared at development time
    – Dynamic or optional imports are not compliant and not needed
    ⇒ OSGi ME reinforces OSGi class import declarative model


• Restricted Java APIs
    ⇒ OSGi ME is compliant with embedded Java environment
Stale reference management
•   Problem
     –   A service is a graph of objects
     –   When a service is unregistered, service clients may still keep a reference on a
         “semantically private” object of the service graph (so-called stale references)
     –   The overall OSGi platform gets unstable (memory links, ...)
•   OSGi ME enables a robust dynamic service cooperation
     –   Allow to avoid stale references
     –   Users of services may control what to do when a service goes done
     –   API to semantically build a service out of several cooperative objects
           ⇒ Explicitly attach objects to a “root” to build a service
           ⇒ A service= the attached objects to a root-object, which is registered
           ⇒ Throw a DeadObjectException on access to unregistered services or their
             objects


                                   R



                              G
Transactional life cycle for robustness
                                                   uninstall
                                 INSTALLED

                                       resolve




             uninstall
                                  RESOLVED
                         start


          STARTING                                            STOPPING

                                                       stop

                                   ACTIVE



                             UNINSTALLED


       Conditional execution               Event sent synchronously to
                                           event listeners in a new transactional
       Implicit transition
                                           context (one for each even sent).
       Explicit transition
                                           Transactional context
Demo 1: name space true isolation

• Compile time
  – check at link-time (SOAR) of the bundle visibilities & bindings
      • check for un-resolved import
      • manipulation of an un-exported type
  – check done within the desktop tooling ==> remove lots of costly
    runtime checks
• Run time
  – manipulation of exported types (i.e. “should be” only interfaces)
  – getClass() on an object from a “private-package” ==> throws
    SecurityException
  – forName() for an un-exported type ==> throws ClassNotFoundException
• Debug time
  – dedicated support for toString()/getClass() for JDWP debuggeurs
Demo 2: transactional life cycle

• What is a transaction ?
   – Transactions semantic
   – Examples of transactions usage
• Application to transactional OSGi life cycle of bundles
   – One service from IData registered within the registry (getData()/setData())
   – 2 bundles make use of the service (under transactional context) :
     BundleActivator.start() / stop()
   – Within the transaction, side effects are visible
   – On errors in the activator ==> rollback ==> the service remains
     unchanged, and not in an « in-between-state »
   – On success ==> commit, the updated service is visible to the rest of the
     application.
Demo 3: stale reference management

• Usage of an object part of a service
   – Case 1: wrong visibility: public field, export of a type
   – Case 2: correct visibility but poor implemention: the “public” objects of a
     service (a graph of objects) should have been attached to the service
     (Framework.attach())
• Impact from stale reference usage
   – The user of a service is not responsible for the “poorly buggy” service.
     The provider of the concrete implementation must be blamed!
   – Actions to be taken by the administror of the device
       • Detection of the stale references, and advocate the provider.
       • At some point, the administrator may remove stale references
• Usage of a service
   – A service may go done, fail, etc.
   – Need to make provision for DeadObjectException
Demo 4: good design practice

• Bundle Dependencies
  – Leaf of the dependencies tree == implementations bundles
  – root and “core” of the tree == interfaces bundles
  – Internal framework special case:
      • Leaves may be an implementation tree, with abstract “default”
        classes
      • typical usage: a framework implementation. The framework exposes
        its interfaces, but implementation bundles uses “internal” exported
        bundles (x-internal typical convention within Eclipse)
Roadmap and next steps
• Orange & IS2T specification is available at
  http://www.e-s-r.net/en/010osgime.php


• IS2T provides OSGi ME implementations for several hardware


• Next steps in Open The Box French national project
   – Specify and insert resource management into OSGi ME framework
     specification for services : CPU, memory, IO bandwidth, ...
   – Trust on pay-per-use services
   – Implement simplified Java 2 Security mechanisms
   – Strengthen protection on intellectual property
Thanks !

Olivier Patry & Fred Rivard, PhD
                 devel@is2t.com

            Andre Bottaro, PhD
      andre.bottaro@orange.com
DSD0: Device Software Dynamics 0
• The code is loaded using some probe, e.g., JTAG,
  or bootloaders
   – The device needs to be “switched off” to download the whole
     application
   – No runtime download




• A closed system
   • OSGi ME to design a component based application
   • The whole application code is known at link-time
   • Full off-board linking is feasible
DSD1: Device Software Dynamics 1
• Code loading under strict control
   – The media by which the code gets downloaded to the device is
     controlled by some technical means, most probably protected by some
     proprietary protocol.




• A controlled system
   • OSGi ME to design a component based application
   • The application can download bundles at runtime
   • Pre-linking and off-board pre-analysis is feasible
   • Adding and/or Updating are feasible
DSD2: Device Software Dynamics 2
• Free downloads
   – The device has to embed all the necessary protections.




                                           L in k e r              O S G i M E
                          L in k e r
                     1                      b a c k              b a s e d J a v a
                           fro n t     2                3
                                             e n d                a p p lic a tio n
                            e n d
                                                            D e v ic e


• A fully open system
   • OSGi ME to design a component based application
   • The application can download any bundle at runtime
   • All linking is done on-board
   • Adding, updating, uninstalling feasible without constraints

More Related Content

What's hot

Mistral Solutions Pvt. Ltd. Corporate Presentation
Mistral Solutions Pvt. Ltd. Corporate Presentation Mistral Solutions Pvt. Ltd. Corporate Presentation
Mistral Solutions Pvt. Ltd. Corporate Presentation Mistral Solutions
 
Kahuna Corporate Profile
Kahuna Corporate ProfileKahuna Corporate Profile
Kahuna Corporate Profilekahunasystems
 
Investor's Presentation
Investor's PresentationInvestor's Presentation
Investor's PresentationEltechs
 
Methods and practices to analyze the performance of your application with Int...
Methods and practices to analyze the performance of your application with Int...Methods and practices to analyze the performance of your application with Int...
Methods and practices to analyze the performance of your application with Int...Intel Software Brasil
 
Arista @ HPC on Wall Street 2012
Arista @ HPC on Wall Street 2012Arista @ HPC on Wall Street 2012
Arista @ HPC on Wall Street 2012Kazunori Sato
 
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12ndzervas
 
20061218v2 Meru Ascom Value
20061218v2 Meru Ascom Value20061218v2 Meru Ascom Value
20061218v2 Meru Ascom ValueMeru Networks
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) ijceronline
 
The Access Grid™ and Video Conferencing
The Access Grid™ and Video ConferencingThe Access Grid™ and Video Conferencing
The Access Grid™ and Video ConferencingVideoguy
 
CAST BA22 32-bit Processor Design Seminar, 2/1/12
CAST BA22 32-bit Processor Design Seminar, 2/1/12CAST BA22 32-bit Processor Design Seminar, 2/1/12
CAST BA22 32-bit Processor Design Seminar, 2/1/12CAST, Inc.
 
S4 Open Appliances V5
S4 Open Appliances V5S4 Open Appliances V5
S4 Open Appliances V5steveS4
 
Work Force Camp Logistics Eplex Wireless Solution
Work Force Camp Logistics Eplex Wireless SolutionWork Force Camp Logistics Eplex Wireless Solution
Work Force Camp Logistics Eplex Wireless SolutionKaba
 
MPU and MCU IP Cores from CAST
MPU and MCU IP Cores from CASTMPU and MCU IP Cores from CAST
MPU and MCU IP Cores from CASTCAST, Inc.
 
Overview of Intel® Omni-Path Architecture
Overview of Intel® Omni-Path ArchitectureOverview of Intel® Omni-Path Architecture
Overview of Intel® Omni-Path ArchitectureIntel® Software
 
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...The Linux Foundation
 
Rfc high res 3 july 2012
Rfc high res   3 july 2012Rfc high res   3 july 2012
Rfc high res 3 july 2012pe2six
 

What's hot (20)

Mistral Solutions Pvt. Ltd. Corporate Presentation
Mistral Solutions Pvt. Ltd. Corporate Presentation Mistral Solutions Pvt. Ltd. Corporate Presentation
Mistral Solutions Pvt. Ltd. Corporate Presentation
 
Kahuna Corporate Profile
Kahuna Corporate ProfileKahuna Corporate Profile
Kahuna Corporate Profile
 
Investor's Presentation
Investor's PresentationInvestor's Presentation
Investor's Presentation
 
Rapid development Using Blackfin
Rapid development Using BlackfinRapid development Using Blackfin
Rapid development Using Blackfin
 
Methods and practices to analyze the performance of your application with Int...
Methods and practices to analyze the performance of your application with Int...Methods and practices to analyze the performance of your application with Int...
Methods and practices to analyze the performance of your application with Int...
 
Arista @ HPC on Wall Street 2012
Arista @ HPC on Wall Street 2012Arista @ HPC on Wall Street 2012
Arista @ HPC on Wall Street 2012
 
Intel tools to optimize HPC systems
Intel tools to optimize HPC systemsIntel tools to optimize HPC systems
Intel tools to optimize HPC systems
 
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12
 
20061218v2 Meru Ascom Value
20061218v2 Meru Ascom Value20061218v2 Meru Ascom Value
20061218v2 Meru Ascom Value
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
The Access Grid™ and Video Conferencing
The Access Grid™ and Video ConferencingThe Access Grid™ and Video Conferencing
The Access Grid™ and Video Conferencing
 
ASIC vs SOC vs FPGA
ASIC  vs SOC  vs FPGAASIC  vs SOC  vs FPGA
ASIC vs SOC vs FPGA
 
CAST BA22 32-bit Processor Design Seminar, 2/1/12
CAST BA22 32-bit Processor Design Seminar, 2/1/12CAST BA22 32-bit Processor Design Seminar, 2/1/12
CAST BA22 32-bit Processor Design Seminar, 2/1/12
 
S4 Open Appliances V5
S4 Open Appliances V5S4 Open Appliances V5
S4 Open Appliances V5
 
Work Force Camp Logistics Eplex Wireless Solution
Work Force Camp Logistics Eplex Wireless SolutionWork Force Camp Logistics Eplex Wireless Solution
Work Force Camp Logistics Eplex Wireless Solution
 
MPU and MCU IP Cores from CAST
MPU and MCU IP Cores from CASTMPU and MCU IP Cores from CAST
MPU and MCU IP Cores from CAST
 
Overview of Intel® Omni-Path Architecture
Overview of Intel® Omni-Path ArchitectureOverview of Intel® Omni-Path Architecture
Overview of Intel® Omni-Path Architecture
 
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
 
Rfc high res 3 july 2012
Rfc high res   3 july 2012Rfc high res   3 july 2012
Rfc high res 3 july 2012
 
Mp lab
Mp labMp lab
Mp lab
 

Viewers also liked

Viewers also liked (11)

A toolbox for statical analysis and transformation of OSGi bundles
A toolbox for statical analysis and transformation of OSGi bundlesA toolbox for statical analysis and transformation of OSGi bundles
A toolbox for statical analysis and transformation of OSGi bundles
 
Déploiement dynamique d'applications OSGi sur le Cloud
Déploiement dynamique d'applications OSGi sur le CloudDéploiement dynamique d'applications OSGi sur le Cloud
Déploiement dynamique d'applications OSGi sur le Cloud
 
Isandla tech - psem2m sdk - perspectives v1.0 - ougf
Isandla tech - psem2m sdk - perspectives v1.0 - ougfIsandla tech - psem2m sdk - perspectives v1.0 - ougf
Isandla tech - psem2m sdk - perspectives v1.0 - ougf
 
CATS: A Context-Aware Transportation Services Framework for Mobile Environments
CATS: A Context-Aware Transportation Services Framework for Mobile EnvironmentsCATS: A Context-Aware Transportation Services Framework for Mobile Environments
CATS: A Context-Aware Transportation Services Framework for Mobile Environments
 
All about Apache ACE
All about Apache ACEAll about Apache ACE
All about Apache ACE
 
FraSCAti with OSGi
FraSCAti with OSGiFraSCAti with OSGi
FraSCAti with OSGi
 
Last night OSGi saved my life
Last night OSGi saved my lifeLast night OSGi saved my life
Last night OSGi saved my life
 
Open home automation infrastructure
Open home automation infrastructureOpen home automation infrastructure
Open home automation infrastructure
 
Chame RIA
Chame RIAChame RIA
Chame RIA
 
OUGF - OSAmI - OSGi Ubiquity
OUGF - OSAmI - OSGi UbiquityOUGF - OSAmI - OSGi Ubiquity
OUGF - OSAmI - OSGi Ubiquity
 
Celix universal OSGi
Celix universal OSGiCelix universal OSGi
Celix universal OSGi
 

Similar to Robust Embedded Applications OSGi ME Platforms

Using Device Abstraction Layers in OSGi based Embedded Systems - Dimitar Valt...
Using Device Abstraction Layers in OSGi based Embedded Systems - Dimitar Valt...Using Device Abstraction Layers in OSGi based Embedded Systems - Dimitar Valt...
Using Device Abstraction Layers in OSGi based Embedded Systems - Dimitar Valt...mfrancis
 
An end-to-end standard oneM2M infrastructure for the Smart Home - Andre Bottaro
An end-to-end standard oneM2M infrastructure for the Smart Home - Andre BottaroAn end-to-end standard oneM2M infrastructure for the Smart Home - Andre Bottaro
An end-to-end standard oneM2M infrastructure for the Smart Home - Andre Bottaromfrancis
 
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...mfrancis
 
New Open Source project at HGI for SmartHome Device Abstraction Templates - A...
New Open Source project at HGI for SmartHome Device Abstraction Templates - A...New Open Source project at HGI for SmartHome Device Abstraction Templates - A...
New Open Source project at HGI for SmartHome Device Abstraction Templates - A...mfrancis
 
How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...
How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...
How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...mfrancis
 
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...mfrancis
 
How the OSGi Residential Specifications can help to build an ecosystem for sm...
How the OSGi Residential Specifications can help to build an ecosystem for sm...How the OSGi Residential Specifications can help to build an ecosystem for sm...
How the OSGi Residential Specifications can help to build an ecosystem for sm...mfrancis
 
EclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems Toolbox
EclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems ToolboxEclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems Toolbox
EclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems ToolboxBrett Hackleman
 
OSGi Community Event 2010 - App Store for the Connected Home Services
OSGi Community Event 2010 - App Store for the Connected Home ServicesOSGi Community Event 2010 - App Store for the Connected Home Services
OSGi Community Event 2010 - App Store for the Connected Home Servicesmfrancis
 
The Role of Standards in IoT Security
The Role of Standards in IoT SecurityThe Role of Standards in IoT Security
The Role of Standards in IoT SecurityHannes Tschofenig
 
AGILE software, devices and wider ecosystem
AGILE software, devices and wider ecosystemAGILE software, devices and wider ecosystem
AGILE software, devices and wider ecosystemAGILE IoT
 
OSGi Architecture for Mobile Device Software - Peter Kriens, aQute
OSGi Architecture for Mobile Device Software - Peter Kriens, aQuteOSGi Architecture for Mobile Device Software - Peter Kriens, aQute
OSGi Architecture for Mobile Device Software - Peter Kriens, aQutemfrancis
 
OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...
OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...
OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...mfrancis
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth Pilli
 
Alleantia LeWeb Paris 2012 Startup Comp preliminary
Alleantia LeWeb Paris 2012 Startup Comp preliminaryAlleantia LeWeb Paris 2012 Startup Comp preliminary
Alleantia LeWeb Paris 2012 Startup Comp preliminaryAntonio Conati Barbaro
 
OSGi: Best Tool In Your Embedded Systems Toolbox
OSGi: Best Tool In Your Embedded Systems ToolboxOSGi: Best Tool In Your Embedded Systems Toolbox
OSGi: Best Tool In Your Embedded Systems ToolboxBrett Hackleman
 
In the Services Network - HW Bitzer
In the Services Network - HW BitzerIn the Services Network - HW Bitzer
In the Services Network - HW Bitzermfrancis
 
Principles of a vehicle infotainment platform - Hans-Ulrich Michel, BMW
Principles of a vehicle infotainment platform - Hans-Ulrich Michel, BMWPrinciples of a vehicle infotainment platform - Hans-Ulrich Michel, BMW
Principles of a vehicle infotainment platform - Hans-Ulrich Michel, BMWmfrancis
 

Similar to Robust Embedded Applications OSGi ME Platforms (20)

Using Device Abstraction Layers in OSGi based Embedded Systems - Dimitar Valt...
Using Device Abstraction Layers in OSGi based Embedded Systems - Dimitar Valt...Using Device Abstraction Layers in OSGi based Embedded Systems - Dimitar Valt...
Using Device Abstraction Layers in OSGi based Embedded Systems - Dimitar Valt...
 
An end-to-end standard oneM2M infrastructure for the Smart Home - Andre Bottaro
An end-to-end standard oneM2M infrastructure for the Smart Home - Andre BottaroAn end-to-end standard oneM2M infrastructure for the Smart Home - Andre Bottaro
An end-to-end standard oneM2M infrastructure for the Smart Home - Andre Bottaro
 
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...
 
Pro syst about us
Pro syst   about usPro syst   about us
Pro syst about us
 
New Open Source project at HGI for SmartHome Device Abstraction Templates - A...
New Open Source project at HGI for SmartHome Device Abstraction Templates - A...New Open Source project at HGI for SmartHome Device Abstraction Templates - A...
New Open Source project at HGI for SmartHome Device Abstraction Templates - A...
 
How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...
How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...
How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...
 
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
Enabling the Enterprise with Next-Generation Mobile Architectures - Mark Vand...
 
How the OSGi Residential Specifications can help to build an ecosystem for sm...
How the OSGi Residential Specifications can help to build an ecosystem for sm...How the OSGi Residential Specifications can help to build an ecosystem for sm...
How the OSGi Residential Specifications can help to build an ecosystem for sm...
 
EclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems Toolbox
EclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems ToolboxEclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems Toolbox
EclipseEmbeddedDay2009-OSGi: Best Tool In Your Embedded Systems Toolbox
 
OSGi Community Event 2010 - App Store for the Connected Home Services
OSGi Community Event 2010 - App Store for the Connected Home ServicesOSGi Community Event 2010 - App Store for the Connected Home Services
OSGi Community Event 2010 - App Store for the Connected Home Services
 
The Role of Standards in IoT Security
The Role of Standards in IoT SecurityThe Role of Standards in IoT Security
The Role of Standards in IoT Security
 
AGILE software, devices and wider ecosystem
AGILE software, devices and wider ecosystemAGILE software, devices and wider ecosystem
AGILE software, devices and wider ecosystem
 
Eclipse RT Day
Eclipse RT DayEclipse RT Day
Eclipse RT Day
 
OSGi Architecture for Mobile Device Software - Peter Kriens, aQute
OSGi Architecture for Mobile Device Software - Peter Kriens, aQuteOSGi Architecture for Mobile Device Software - Peter Kriens, aQute
OSGi Architecture for Mobile Device Software - Peter Kriens, aQute
 
OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...
OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...
OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latest
 
Alleantia LeWeb Paris 2012 Startup Comp preliminary
Alleantia LeWeb Paris 2012 Startup Comp preliminaryAlleantia LeWeb Paris 2012 Startup Comp preliminary
Alleantia LeWeb Paris 2012 Startup Comp preliminary
 
OSGi: Best Tool In Your Embedded Systems Toolbox
OSGi: Best Tool In Your Embedded Systems ToolboxOSGi: Best Tool In Your Embedded Systems Toolbox
OSGi: Best Tool In Your Embedded Systems Toolbox
 
In the Services Network - HW Bitzer
In the Services Network - HW BitzerIn the Services Network - HW Bitzer
In the Services Network - HW Bitzer
 
Principles of a vehicle infotainment platform - Hans-Ulrich Michel, BMW
Principles of a vehicle infotainment platform - Hans-Ulrich Michel, BMWPrinciples of a vehicle infotainment platform - Hans-Ulrich Michel, BMW
Principles of a vehicle infotainment platform - Hans-Ulrich Michel, BMW
 

Recently uploaded

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Recently uploaded (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Robust Embedded Applications OSGi ME Platforms

  • 1. Robust Embedded Applications OSGi ME Platforms November, 25th, 2011 Olivier Patry & Fred Rivard, PhD devel@is2t.com Andre Bottaro, PhD andre.bottaro@orange.com
  • 2. Executive Summary • OSGi is a reference for flexible component based platforms and standardization on the Home Market • OSGi ME is an initiative from Orange Labs and IS2T to show – OSGi specification is simplified and targets embedded needs – Robustness is strengthened for openness to third party applications • OSGi ME specification is released, IS2T delivered 1st implementation – Specification release: http://www.e-s-r.net/en/010osgime.php – Strengthened class sharing and isolation mechanisms – Hot plug-n-play mechanisms – Stale reference management – Transactions management – Compatible with SE basic libraries; eClasspath to enable OSGi developers to develop on most used Java SE classes
  • 3. Why OSGi is a reference for the software embedded in the box
  • 4. Smart Home Seven application domains – Security: An always-on system that reassure the user – Energy : The optimization of energy and fluid consumption – Comfort : A system assisting the user every day – Health : The care of elderly people at home – Wellness : A coach at Home – Multimedia : content sharing – Games: Networked community games and gadgets A new world of applications will emerge from the variety of sensors, actuators, devices that become available unrestricted
  • 5. Opportunity : Catalyze the market through the share of a common technical infrastructure • Leverage a common ICT infrastructure – Standard sensor networks – Advanced Home Gateway or a box dedicated to home automation apps – Remote Device/Network Management platform • To lower the barriers and make the market emerge – Lower installation and maintenance costs of each service – Go beyond quadruple play, accelerate service delivery – Enlarge the Home Automation market Shared sensors Embedded software platform hosting applications. Remote HMIs Adv. Home gateway or dedicated box ation applic Home Controller 3rd party platforms adm Home Application stores in istr atio Shared screens n Operator platform Shared infrastructure Page 5 Orange Open Home Automation Infrastructure - J.M. Ortholand, A. Bottaro, D. Schellhoss
  • 6. The Home ecosystem requires • a standard software environment • open to third party applications • with agile development techniques • while remaining compatible with embedded constraints – Keep device cost low – Make robust applications – Create a dynamic market of applications with Home players: • Applications designers (bundles & services) • Platform administrators & application stores • OSGi ME providers (SW part of the OSGi ME platform) • Hardware providers (HW part of the OSGi ME platform)
  • 7. OSGi model is the primary reference in Home standardization bodies • Broadband Forum : Software lifecycle management is lead by OSGi concepts • HGI : OSGi is the main software platform pushed in HGI specifications • UPnP Forum : OSGi is the primary reference for Device Management • OSGi Alliance : concepts and specifications Broadband Forum Home Gateway Initiative PD-194 SWEX OSGi Alliance Residential Expert Group UPnP Forum Device Management Working Committee
  • 9. Improvements of OSGi technology are expected on the Smart Home market OSGi ME technical improvement Description Adaptation to cost-effective devices. OSGi ME runs on any Java ME CDC, SE, EE platform OSGi ME minimum environment is closed to CLDC. EDEE = OSGi/EmbeddedDevice-1.0 Execution Environment Strengthened code isolation Several OSGi R4 methods are removed to avoid security checks. Stale reference management for robustness Management of service object graphs. Stale reference detection. Transactional guaranties OSGi ME enables transactional bundle & service lifecycle Requirements beyond current OSGi ME Description Hardware resource sharing and isolation on OSGi is the technology reference on the market before .NET and an open embedded software platform Androïd but it addresses only code sharing and isolation. Trusted pay-per-use services Reliable usage counting Device abstraction layer Provide proxy interfaces for all type of devices, sensors, actuators at Home
  • 10. Results so far One same application tested on two OSGi platforms running the same hardware. OSGi OSGi ME ⇒ JVM flash footprint ~200kB Hardware ARM926 399Mhz Framework footprint ~400KB ~40KB ⇒ Footprint compatible for flash JVM footprint ~2,000KB ~200KB MCU mass market devices. OS footprint ~11,000KB 11,000 0 Application footprint ~800KB ~350KB Java RAM ~700KB ~550KB Startup time (HW+SW) 33.0s 5.5s Application components Application components into OSGi™ bundles into OSGi™ bundles OSGi™ R4 Platform Java VM (>Java ME CDC) OSGi ME Platform Linux JHAB (Java ME CLDC), baremetal Home Automation Box prototype Home Automation Box prototype
  • 11. Other results – Orange experiments • Comparisons were made between IS2T Java vs JamVM on operations expected in home automation applications – smaller code is faster code ! • Strict CLDC APIs have been considered as too restrictive for minimum execution environment – OSGi developers ask for Java SE typical classes – Binary compatibility between all OSGi versions is required ⇒ IS2T provides now eClasspath, an additional set of Java CDC classes
  • 12. OSGi ME in a nutshell
  • 13. OSGi ME in a nutshell • Keeping the core features of the OSGi technology… – fine-grained code sharing and isolation model – dynamic software management – requiring a full upward compatibility from OSGi ME to OSGi • and being compliant with Java for “small” devices… – no user-defined class loaders – binary compatibility with Java CDC/SE APIs • while simplifying OSGi technology for simpler needs… – remove unnecessary and semantically complex features • and strengthen robustness. – no stale reference – transactional life cycle management – true code isolation
  • 14. Fine-grained code sharing and isolation • Modularity demands a strict model of what is guaranteed at runtime • => A code change in a bundle has only an impact on bundles that declare code imports. • Openness to third party applications demands an even stricter model – => Distinct actors will only share object access through declared APIs • OSGi foundation is a unique basis (vs Linux, Windows, .NET, Androïd,... ) – A bundle declares code imports / code exports / code that remains private – OSGi framework guarantees bundle declarations • Sharing: a bundle will have visibility on APIs that are imported • Isolation: a bundle will never access private code and code that is not imported – Sharing is efficient: direct method call between bundles (no IPC)
  • 15. R4 do not totally enforce sharing & isolation • Any bundle can load any private class and instantiate it – BundleContext.getBundles() + Bundle.loadClass() – Class.forName() • Any bundle has visibility on any implemented class signature – <service object>.getClass() gives the private name of classes implementing shared APIs • Any bundle has visibility on any file or resource – BundleContext.getBundles + Bundle.getBundleContext().getDataFile() – BundleContext.getBundles + Bundle.getBundleContext().getResource() – BundleContext.getBundles + Bundle.getBundleContext().findEntries() • Any bundle can register services for other bundles – BundleContext.getBundles() • + Bundle.getBundleContext().registerService() ⇒ OSGi requires Java 2 security to ensure isolation
  • 16. ME ensures strict sharing & isolation • Class lookup is refined – Class.forName() behavior depends on the context – Bundle.loadClass is banished since any Bundle object is accessible • Private class signature are never visible to other bundles – <service object>.getClass() depends on the context • The access to the bundle context of other bundles is banished – Bundle.getBundleContext is removed in OSGi ME – BundleContext.getResource() and BundleContext.registerService() thus really depend on a specific bundle context. ⇒ OSGi ME ensures a strict model for sharing & isolation ⇒ and does not require Java 2 security to do so
  • 17. OSGi ME adapts Software Dynamics to business needs • Different market requirements on binary code downloads – 1st case: No download due to certification, B.O.M., threats – 2nd case: Controlled downloads for only well-known (approved) services, with threat control, proprietary protocols via proprietary media, e.g., uart, spi, i2c, CAN, Ethernet, GSM, Zigbee, ... – 3rd case: Authorization of any download from any kind of sources • Device Software Dynamics levels characterize how binary code is loaded into devices – DSD 0 = no download – DSD 1 = download through a controlled media – DSD 2 = no restriction
  • 18. An OSGi technology compliant with Java for cost effective devices • Java ME is Java most spread edition on embedded devices – Spread on mobile phones and part of M2M modules – OSGi specification is not compliant because it specifies how to implement sharing & isolation (class loaders) • No (heavy and too flexible) user-defined class loaders – Although at the basis of OSGi code sharing and isolation model – And at the basis of OSGi dynamic software management features ⇒ Because they are not the only technical solution, OSGi ME specification does not mention class loaders – • Interfaces used at runtime must be declared at development time – Dynamic or optional imports are not compliant and not needed ⇒ OSGi ME reinforces OSGi class import declarative model • Restricted Java APIs ⇒ OSGi ME is compliant with embedded Java environment
  • 19. Stale reference management • Problem – A service is a graph of objects – When a service is unregistered, service clients may still keep a reference on a “semantically private” object of the service graph (so-called stale references) – The overall OSGi platform gets unstable (memory links, ...) • OSGi ME enables a robust dynamic service cooperation – Allow to avoid stale references – Users of services may control what to do when a service goes done – API to semantically build a service out of several cooperative objects ⇒ Explicitly attach objects to a “root” to build a service ⇒ A service= the attached objects to a root-object, which is registered ⇒ Throw a DeadObjectException on access to unregistered services or their objects R G
  • 20. Transactional life cycle for robustness uninstall INSTALLED resolve uninstall RESOLVED start STARTING STOPPING stop ACTIVE UNINSTALLED Conditional execution Event sent synchronously to event listeners in a new transactional Implicit transition context (one for each even sent). Explicit transition Transactional context
  • 21. Demo 1: name space true isolation • Compile time – check at link-time (SOAR) of the bundle visibilities & bindings • check for un-resolved import • manipulation of an un-exported type – check done within the desktop tooling ==> remove lots of costly runtime checks • Run time – manipulation of exported types (i.e. “should be” only interfaces) – getClass() on an object from a “private-package” ==> throws SecurityException – forName() for an un-exported type ==> throws ClassNotFoundException • Debug time – dedicated support for toString()/getClass() for JDWP debuggeurs
  • 22. Demo 2: transactional life cycle • What is a transaction ? – Transactions semantic – Examples of transactions usage • Application to transactional OSGi life cycle of bundles – One service from IData registered within the registry (getData()/setData()) – 2 bundles make use of the service (under transactional context) : BundleActivator.start() / stop() – Within the transaction, side effects are visible – On errors in the activator ==> rollback ==> the service remains unchanged, and not in an « in-between-state » – On success ==> commit, the updated service is visible to the rest of the application.
  • 23. Demo 3: stale reference management • Usage of an object part of a service – Case 1: wrong visibility: public field, export of a type – Case 2: correct visibility but poor implemention: the “public” objects of a service (a graph of objects) should have been attached to the service (Framework.attach()) • Impact from stale reference usage – The user of a service is not responsible for the “poorly buggy” service. The provider of the concrete implementation must be blamed! – Actions to be taken by the administror of the device • Detection of the stale references, and advocate the provider. • At some point, the administrator may remove stale references • Usage of a service – A service may go done, fail, etc. – Need to make provision for DeadObjectException
  • 24. Demo 4: good design practice • Bundle Dependencies – Leaf of the dependencies tree == implementations bundles – root and “core” of the tree == interfaces bundles – Internal framework special case: • Leaves may be an implementation tree, with abstract “default” classes • typical usage: a framework implementation. The framework exposes its interfaces, but implementation bundles uses “internal” exported bundles (x-internal typical convention within Eclipse)
  • 25. Roadmap and next steps • Orange & IS2T specification is available at http://www.e-s-r.net/en/010osgime.php • IS2T provides OSGi ME implementations for several hardware • Next steps in Open The Box French national project – Specify and insert resource management into OSGi ME framework specification for services : CPU, memory, IO bandwidth, ... – Trust on pay-per-use services – Implement simplified Java 2 Security mechanisms – Strengthen protection on intellectual property
  • 26. Thanks ! Olivier Patry & Fred Rivard, PhD devel@is2t.com Andre Bottaro, PhD andre.bottaro@orange.com
  • 27. DSD0: Device Software Dynamics 0 • The code is loaded using some probe, e.g., JTAG, or bootloaders – The device needs to be “switched off” to download the whole application – No runtime download • A closed system • OSGi ME to design a component based application • The whole application code is known at link-time • Full off-board linking is feasible
  • 28. DSD1: Device Software Dynamics 1 • Code loading under strict control – The media by which the code gets downloaded to the device is controlled by some technical means, most probably protected by some proprietary protocol. • A controlled system • OSGi ME to design a component based application • The application can download bundles at runtime • Pre-linking and off-board pre-analysis is feasible • Adding and/or Updating are feasible
  • 29. DSD2: Device Software Dynamics 2 • Free downloads – The device has to embed all the necessary protections. L in k e r O S G i M E L in k e r 1 b a c k b a s e d J a v a fro n t 2 3 e n d a p p lic a tio n e n d D e v ic e • A fully open system • OSGi ME to design a component based application • The application can download any bundle at runtime • All linking is done on-board • Adding, updating, uninstalling feasible without constraints