SlideShare a Scribd company logo
1 of 20
Download to read offline
Chapter 4.2 - Draft, Verse 138 :
 The Framework Multiplication
         Clement Escoffier, akquinet A.G.
akquinet
                                                       akquinet AG
    akquinet                                            €1300k SE
    business consulting
    GmbH €60k SE



        International       Microsoft / .NET           Outsourcing                  JAVA / SAP            Associate Partners
    akquinet              akquinet               akquinet                    akquinet                    BMC GMBH
    IBS                   dynamic solutions      outsourcing                 it-agile
                                                                                                         cimt AG
    GmbH €250k SE         GmbH €300k SE          gGmbH €250k SE              GmbH €100k SE
                                                                                                         DoubleC GmbH
    akquinet              akquinet               akquinet                    akquinet
    IBS Brüssel           SLS logistics          system integration          tech@spree                  Groupconcept GmbH
    GmbH €40k SE          GmbH €250k SE          GmbH €125k SE               GmbH €300k SE
                                                                                                         infodesign GmbH
    akquinet                                                                 akquinet
                                                                                                         panoptimum GmbH
    eurosoft Sp. z o.o.                                                      enterprise solutions
    €100k SE                                                                 GmbH €80k SE                Portal Systems GmbH
    HKS                                                                                                  PortivITy GmbH
    GmbH €75k SE
                                                                                                         w//Center GmbH

    Partner Power
    International GmbH            akquinet AG   2002   2003    2004   2005   2006   2007   Budget 2008    In association   2007
    Partnerbeteiligung            Staff         64     108     133    165    170    203    315            Staff            433




2                                                            The Framework Multiplication
Modular and Mobile Solutions
    Competence Center focusing on
         Modular Systems
              Modularization expertise
              OSGi-based
              Sophisticated, Large scale, Distributed systems
         Mobile Solutions
              In the large
                MobileDevices, Interactions middleware, Server-side …
                M2M, Data collection and Mediation, Control loop

    Technologies
         iPHONE / Android
         OSGi (Apache Felix, Apace Ace, OW2 Chameleon, Apache Sling…)
         Java EE (JBOSS, OW2 JOnAS)

 3                                              The Framework Multiplication
Why multiple OSGi frameworks
in one VM ?
    OSGi has made a successful
     breakthrough                                         Bundle
                                                       (packaging and      Service binding
         THE module layer on the top of              deployment unit)     (loose-coupled,
          Java                                                                dynamic)



    Wide spread usages as
     middleware kernel
         Mobile devices
         Desktop applications
         Lightweight Application servers
         Enterprise Application Servers

    More and more used by                            OSGi™ framework
     application themselves
         Modularity                                  Java Virtual Machine
         Dynamism
         Provisioning

 4                                          The Framework Multiplication
Why ? - Runtime/ Application isolation
  Conflicts   !
       Internal / Private API
        exposed by the middleware
        used unexpectedly by the
        applications
       Version conflict on third-
        party libraries


                                               OSGi™ framework

                                               Java Virtual Machine



 5                                   The Framework Multiplication
Why ? – Application Model
                                      composite {
  Creation    of composite
                                          Install-Bundle:
       Deployment packages++                     foo; bundle-version=[1.0.0,1.2.0),
                                                  bar; bundle-version=[1.0.0,1.0.0]
       Allows to describes               Import-Package: waz; version=2.0.0
        applications                      Export-Package: baz; version=1.0.1
                                          }
                                                                                  Exemple

  Such   composites should
     be ran in an isolated child
     framework
                                                 Child framework

                                             OSGi™ framework

                                             Java Virtual Machine

 6                                 The Framework Multiplication
Why ? – Avoid applications conflicts
  Same        issues as the middleware /applications conflicts
         Two applications may share services
            But sometimes …. NOT !
            Stateful services

         Third-party library conflicts


  By      using separate frameworks
         Guaranty a service isolation
         Guaranty a third-party libraries isolation




 7                                        The Framework Multiplication
How do we solve that today ?
The Launcher approach
  OSGi   R4.2 has standardized how to create OSGi
     framework instances
         Framework Factory
         factory.newFramework(config)



                       FWK 1                  FWK 2


                                Launcher


                           Java Virtual Machine

 8                                  The Framework Multiplication
How do we solve that today ?
The Child approach
  A      bundle instantiates a new OSGi framework
       The lifecycle of this framework is managed by the bundle
       Relationships between the intra-bundle and the external world
        are managed by the bundle
              May be tricky….


                                 OSGi Framework

                                    Bundle

                                     OSGi Framework

                                    Java Virtual Machine

 9                                           The Framework Multiplication
Does this work ?
  In simple cases … YES
  In sophisticated cases …. Absolutely NO


         Cross-framework singleton bundle ?
              A singleton bundle may be resolved several times on the JVM

         URL Streams have to be multiplexed
              The JVM supports only ONE extension of the URL class
              What happens if several framework provide several times the same URL
               Handler ?

         The Security Manager is a JVM Singleton
              The condition permission admin directly uses the JVM security
                No   way to adapt the security policy per framework

 10                                              The Framework Multiplication
The RFC 0138
Multiple Frameworks In One JVM
  OSGi       R4.2 RFC

      Not pushed in the OSGi R4.2 because of some direct impacts
       on the framework
           Will be somewhere in OSGi R5


      Assumption
           Each framework manages its own class space, and is responsible for
            managing the lifecycle and resolution of its bundles.
              Class  reachability inside the framework is managed by bundle resolution
               and classloading rules
              Class reachability outside the framework is managed by standard
               classloading rules and hierarchies


 11                                         The Framework Multiplication
Child Framework
  Define   a way to create child frameworks
    Created thanks to a Framework service
     (CompositeBundleFactory)
    Similar to the Launcher API
         Framework configuration
         Composite Manifest




 12                                 The Framework Multiplication
Composite Manifest
    A Composite Manifest may contain
         Bundle-Version and Bundle-SymbolicName
         Import-Package from the parent framework
         Export-Package from the child to the parent
         CompositeServiceFilter-Export
              Exports services from the child to the parent
              Equivalent to iPOJO exports
         CompositeServiceFilter-Import
              Imports a service from the parent to the child
              Equivalent to iPOJO imports

    No way to install bundles directly in the composite
         At least in the last version of the RFC
         Allows to define your ADL, to choose your provisioning mechanism...
         Can be done with the framework configuration map

 13                                              The Framework Multiplication
The parent – child relationship
  Child
       frameworks
  managed by
      A composite bundle                               Child Framework
           Representing the child into
            the parent                                                         Surrogate
                                                                                 Bundle
      A surrogate bundle
           Representing the parent into
            the child
                                                   Composite
                                                    Bundle


                                                         OSGi Framework

                                                        Java Virtual Machine

 14                                        The Framework Multiplication
Surrogate & Composite Bundles
  The Surrogate represents the parent framework into the
  child framework
      Publishes imported services into the child service registry
      Exports imported packages


  TheComposite represents the child framework into the
  parent framework
      Publishes exported services into the parent service registry
      Exports exported packages




 15                                The Framework Multiplication
Singleton Multiplexing
  Propose     a way to multiplex URL Handler without
  conflicts

  Objective
      Resolve URL by using the ‘adequate’ URL Handler
      Already done inside Felix
         Analyze from the stack trace which Framework triggers the URL
          resolving
         Use the good URL Handler service




 16                                  The Framework Multiplication
What else ?
  …


  RFC       not included into OSGi R4.2
      Break the system bundle lifecycle (RESOLVED state ?)
           Impact the core specification
      Surrogate bundles are complex
           Why not reusing the System Bundle ?
      The specification does not cover all use cases
         Security ?
         Others singletons ?



  However, it’s       still a work in progress…

 17                                         The Framework Multiplication
Conclusion
  Beingable to launch several frameworks inside the same
  VM is definitely required
      But it’s not so simple !


  The    RFC 0138 proposes a first draft addressing the issues
      Child framework creation and management
      Singleton multiplexing


  However, it’s    far from complete
      And complex to implement…


 18                               The Framework Multiplication
What might be cool
  A   real composite bundle description language
      ADL
      Abstract placeholder
           Dynamism, Substitution


  Creating       a bridge with the deployment admin
      A deployment package could create a child framework

  Sandbox        mechanism
      Like on the iPHONE



 19                                  The Framework Multiplication
Questions ?




     Karl Pauls                                       Dr. Clement Escoffier
     karl.pauls@akquinet.de                  clement.escoffier@akquinet.de
     Bülowstraße 66, 10783 Berlin              Bülowstraße 66, 10783 Berlin
     +49 151 226 49 845                                   +49 175 2467717
20                                  The Framework Multiplication

More Related Content

What's hot

Using OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan RellermeyerUsing OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan Rellermeyermfrancis
 
Apache MyFaces 1.2 Web Application Development
Apache MyFaces 1.2 Web Application DevelopmentApache MyFaces 1.2 Web Application Development
Apache MyFaces 1.2 Web Application DevelopmentBart Kummel
 
Chisimba - introduction to practical demo
Chisimba - introduction to practical demoChisimba - introduction to practical demo
Chisimba - introduction to practical demoDerek Keats
 
Weld-OSGi, injecting easiness in OSGi
Weld-OSGi, injecting easiness in OSGiWeld-OSGi, injecting easiness in OSGi
Weld-OSGi, injecting easiness in OSGiMathieu Ancelin
 
OSGi and Java Modularity
OSGi and Java ModularityOSGi and Java Modularity
OSGi and Java ModularityPeter Kriens
 
Web Content Management System Deployment Patterns
Web Content Management System Deployment PatternsWeb Content Management System Deployment Patterns
Web Content Management System Deployment Patternssggottlieb
 
Enterprise Open Source Fccs March
Enterprise Open Source Fccs MarchEnterprise Open Source Fccs March
Enterprise Open Source Fccs Marcharnaudblandin
 
Монетизания: Достижение прибыльности мобильного Интернета нового поколения.
 Монетизания: Достижение прибыльности мобильного Интернета нового поколения. Монетизания: Достижение прибыльности мобильного Интернета нового поколения.
Монетизания: Достижение прибыльности мобильного Интернета нового поколения.Cisco Russia
 

What's hot (13)

Using OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan RellermeyerUsing OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan Rellermeyer
 
20111007 activiti
20111007 activiti20111007 activiti
20111007 activiti
 
Apache MyFaces 1.2 Web Application Development
Apache MyFaces 1.2 Web Application DevelopmentApache MyFaces 1.2 Web Application Development
Apache MyFaces 1.2 Web Application Development
 
Chisimba - introduction to practical demo
Chisimba - introduction to practical demoChisimba - introduction to practical demo
Chisimba - introduction to practical demo
 
Weld-OSGi, injecting easiness in OSGi
Weld-OSGi, injecting easiness in OSGiWeld-OSGi, injecting easiness in OSGi
Weld-OSGi, injecting easiness in OSGi
 
OSGi and Java Modularity
OSGi and Java ModularityOSGi and Java Modularity
OSGi and Java Modularity
 
Web Content Management System Deployment Patterns
Web Content Management System Deployment PatternsWeb Content Management System Deployment Patterns
Web Content Management System Deployment Patterns
 
Enterprise Open Source Fccs March
Enterprise Open Source Fccs MarchEnterprise Open Source Fccs March
Enterprise Open Source Fccs March
 
The ROP Pack
The ROP PackThe ROP Pack
The ROP Pack
 
Nuxeo 5.2 Glassfish
Nuxeo 5.2 GlassfishNuxeo 5.2 Glassfish
Nuxeo 5.2 Glassfish
 
Orange is v cops
Orange is v copsOrange is v cops
Orange is v cops
 
Web Frameworks
Web FrameworksWeb Frameworks
Web Frameworks
 
Монетизания: Достижение прибыльности мобильного Интернета нового поколения.
 Монетизания: Достижение прибыльности мобильного Интернета нового поколения. Монетизания: Достижение прибыльности мобильного Интернета нового поколения.
Монетизания: Достижение прибыльности мобильного Интернета нового поколения.
 

Viewers also liked

Alcira, enfermera pediatrica
Alcira, enfermera pediatricaAlcira, enfermera pediatrica
Alcira, enfermera pediatricapacopino55
 
Experiencias e iniciativas en La Rioja
Experiencias e iniciativas en La RiojaExperiencias e iniciativas en La Rioja
Experiencias e iniciativas en La RiojaCTIC Technology Centre
 
8 Ideas Tips Trucos Sugerencias Recomendaciones para mejorar su negocio o com...
8 Ideas Tips Trucos Sugerencias Recomendaciones para mejorar su negocio o com...8 Ideas Tips Trucos Sugerencias Recomendaciones para mejorar su negocio o com...
8 Ideas Tips Trucos Sugerencias Recomendaciones para mejorar su negocio o com...VENDOPOR Inmobiliarias
 
Juan ruales estadistica
Juan ruales estadisticaJuan ruales estadistica
Juan ruales estadisticapanchoupec
 
Industrial Illumination Bum Presentation May 2009
Industrial Illumination Bum Presentation May 2009Industrial Illumination Bum Presentation May 2009
Industrial Illumination Bum Presentation May 2009bcgosset
 
2015-Vol-10-Polydeck-Product-Catalog
2015-Vol-10-Polydeck-Product-Catalog2015-Vol-10-Polydeck-Product-Catalog
2015-Vol-10-Polydeck-Product-CatalogJohn Griffith
 
Políticas de Comunicación II
 Políticas de Comunicación II Políticas de Comunicación II
Políticas de Comunicación IIgradlf
 
Graficosdeamerica140
Graficosdeamerica140Graficosdeamerica140
Graficosdeamerica140Peter Martin
 
Dubai Otro Mundo
Dubai Otro MundoDubai Otro Mundo
Dubai Otro Mundotemo
 
otropuntodevista
otropuntodevistaotropuntodevista
otropuntodevistaQuique Mora
 
Erfolgreich bewerben: Erfolgreicher Lebenslauf
Erfolgreich bewerben: Erfolgreicher LebenslaufErfolgreich bewerben: Erfolgreicher Lebenslauf
Erfolgreich bewerben: Erfolgreicher Lebenslaufwww.jobsource.ch
 
Caratula 1 informe de adm (2) hogar de esperanza
Caratula 1 informe de adm (2) hogar de esperanzaCaratula 1 informe de adm (2) hogar de esperanza
Caratula 1 informe de adm (2) hogar de esperanzaMary Stephani Perales Ruiz
 
VOICEWARE EXPOCONTACT 2011
VOICEWARE EXPOCONTACT 2011VOICEWARE EXPOCONTACT 2011
VOICEWARE EXPOCONTACT 2011expocontact
 
CRE TECH 2014 State of the Market Report
CRE TECH 2014 State of the Market ReportCRE TECH 2014 State of the Market Report
CRE TECH 2014 State of the Market ReportCoy Davidson
 
UTERİN FİBROİD EMBOLİZASYONU-SUPERİOR HİPOGASTRİK PLEKSUS BLOKAJI
UTERİN FİBROİD EMBOLİZASYONU-SUPERİOR HİPOGASTRİK PLEKSUS BLOKAJIUTERİN FİBROİD EMBOLİZASYONU-SUPERİOR HİPOGASTRİK PLEKSUS BLOKAJI
UTERİN FİBROİD EMBOLİZASYONU-SUPERİOR HİPOGASTRİK PLEKSUS BLOKAJIFahrettin Küçükay
 
Glam rock
Glam rockGlam rock
Glam rockBowie12
 

Viewers also liked (20)

Alcira, enfermera pediatrica
Alcira, enfermera pediatricaAlcira, enfermera pediatrica
Alcira, enfermera pediatrica
 
Angel tattoo
Angel tattooAngel tattoo
Angel tattoo
 
Experiencias e iniciativas en La Rioja
Experiencias e iniciativas en La RiojaExperiencias e iniciativas en La Rioja
Experiencias e iniciativas en La Rioja
 
8 Ideas Tips Trucos Sugerencias Recomendaciones para mejorar su negocio o com...
8 Ideas Tips Trucos Sugerencias Recomendaciones para mejorar su negocio o com...8 Ideas Tips Trucos Sugerencias Recomendaciones para mejorar su negocio o com...
8 Ideas Tips Trucos Sugerencias Recomendaciones para mejorar su negocio o com...
 
Juan ruales estadistica
Juan ruales estadisticaJuan ruales estadistica
Juan ruales estadistica
 
Industrial Illumination Bum Presentation May 2009
Industrial Illumination Bum Presentation May 2009Industrial Illumination Bum Presentation May 2009
Industrial Illumination Bum Presentation May 2009
 
Una linda persona
Una linda personaUna linda persona
Una linda persona
 
2015-Vol-10-Polydeck-Product-Catalog
2015-Vol-10-Polydeck-Product-Catalog2015-Vol-10-Polydeck-Product-Catalog
2015-Vol-10-Polydeck-Product-Catalog
 
Políticas de Comunicación II
 Políticas de Comunicación II Políticas de Comunicación II
Políticas de Comunicación II
 
Graficosdeamerica140
Graficosdeamerica140Graficosdeamerica140
Graficosdeamerica140
 
Dubai Otro Mundo
Dubai Otro MundoDubai Otro Mundo
Dubai Otro Mundo
 
otropuntodevista
otropuntodevistaotropuntodevista
otropuntodevista
 
Erfolgreich bewerben: Erfolgreicher Lebenslauf
Erfolgreich bewerben: Erfolgreicher LebenslaufErfolgreich bewerben: Erfolgreicher Lebenslauf
Erfolgreich bewerben: Erfolgreicher Lebenslauf
 
Caratula 1 informe de adm (2) hogar de esperanza
Caratula 1 informe de adm (2) hogar de esperanzaCaratula 1 informe de adm (2) hogar de esperanza
Caratula 1 informe de adm (2) hogar de esperanza
 
VOICEWARE EXPOCONTACT 2011
VOICEWARE EXPOCONTACT 2011VOICEWARE EXPOCONTACT 2011
VOICEWARE EXPOCONTACT 2011
 
CRE TECH 2014 State of the Market Report
CRE TECH 2014 State of the Market ReportCRE TECH 2014 State of the Market Report
CRE TECH 2014 State of the Market Report
 
Yves Rocher_Ecommerce
Yves Rocher_EcommerceYves Rocher_Ecommerce
Yves Rocher_Ecommerce
 
UTERİN FİBROİD EMBOLİZASYONU-SUPERİOR HİPOGASTRİK PLEKSUS BLOKAJI
UTERİN FİBROİD EMBOLİZASYONU-SUPERİOR HİPOGASTRİK PLEKSUS BLOKAJIUTERİN FİBROİD EMBOLİZASYONU-SUPERİOR HİPOGASTRİK PLEKSUS BLOKAJI
UTERİN FİBROİD EMBOLİZASYONU-SUPERİOR HİPOGASTRİK PLEKSUS BLOKAJI
 
Glam rock
Glam rockGlam rock
Glam rock
 
Plan Social Media
Plan Social MediaPlan Social Media
Plan Social Media
 

Similar to The OSGi Framework Multiplication

OSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFishOSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFishArun Gupta
 
OSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFishOSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFishArun Gupta
 
colony framework & omni platform
colony framework & omni platformcolony framework & omni platform
colony framework & omni platformHive Solutions
 
Hive solutions cloudviews 2010 presentation
Hive solutions cloudviews 2010 presentationHive solutions cloudviews 2010 presentation
Hive solutions cloudviews 2010 presentationEuroCloud
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGiIlya Rybak
 
Enterprise Applications With OSGi and SpringSource dm Server
Enterprise Applications With OSGi and SpringSource dm ServerEnterprise Applications With OSGi and SpringSource dm Server
Enterprise Applications With OSGi and SpringSource dm ServerSam Brannen
 
practical-guide-to-modularity with Java osgi
practical-guide-to-modularity with Java osgipractical-guide-to-modularity with Java osgi
practical-guide-to-modularity with Java osgiGabrielBran5
 
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011Arun Gupta
 
OSGi Sticker Shock Eclipse Con 2010
OSGi Sticker Shock   Eclipse Con 2010OSGi Sticker Shock   Eclipse Con 2010
OSGi Sticker Shock Eclipse Con 2010ericjohnson
 
Liferay Module Framework
Liferay Module FrameworkLiferay Module Framework
Liferay Module FrameworkMiguel Pastor
 
OSGi DevCon 2009 Review
OSGi DevCon 2009 ReviewOSGi DevCon 2009 Review
OSGi DevCon 2009 Reviewnjbartlett
 
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaOSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaArun Gupta
 
TDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE ApplicationTDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE ApplicationArun Gupta
 
OSGi and Other Technologies - P Kriens
OSGi and Other Technologies - P KriensOSGi and Other Technologies - P Kriens
OSGi and Other Technologies - P Kriensmfrancis
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBayTony Ng
 
Osgi Webinar
Osgi WebinarOsgi Webinar
Osgi WebinarWSO2
 

Similar to The OSGi Framework Multiplication (20)

OSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFishOSGi-enabled Java EE Applications using GlassFish
OSGi-enabled Java EE Applications using GlassFish
 
OSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFishOSGi-enabled Java EE applications in GlassFish
OSGi-enabled Java EE applications in GlassFish
 
colony framework & omni platform
colony framework & omni platformcolony framework & omni platform
colony framework & omni platform
 
Hive solutions cloudviews 2010 presentation
Hive solutions cloudviews 2010 presentationHive solutions cloudviews 2010 presentation
Hive solutions cloudviews 2010 presentation
 
Tales from the OSGi trenches
Tales from the OSGi trenchesTales from the OSGi trenches
Tales from the OSGi trenches
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGi
 
Enterprise Applications With OSGi and SpringSource dm Server
Enterprise Applications With OSGi and SpringSource dm ServerEnterprise Applications With OSGi and SpringSource dm Server
Enterprise Applications With OSGi and SpringSource dm Server
 
practical-guide-to-modularity with Java osgi
practical-guide-to-modularity with Java osgipractical-guide-to-modularity with Java osgi
practical-guide-to-modularity with Java osgi
 
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
 
Hybrid Applications
Hybrid ApplicationsHybrid Applications
Hybrid Applications
 
OSGi Sticker Shock Eclipse Con 2010
OSGi Sticker Shock   Eclipse Con 2010OSGi Sticker Shock   Eclipse Con 2010
OSGi Sticker Shock Eclipse Con 2010
 
OSS Community management
OSS Community managementOSS Community management
OSS Community management
 
Liferay Module Framework
Liferay Module FrameworkLiferay Module Framework
Liferay Module Framework
 
OSGi DevCon 2009 Review
OSGi DevCon 2009 ReviewOSGi DevCon 2009 Review
OSGi DevCon 2009 Review
 
Polyglot OSGi
Polyglot OSGiPolyglot OSGi
Polyglot OSGi
 
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaOSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 India
 
TDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE ApplicationTDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE Application
 
OSGi and Other Technologies - P Kriens
OSGi and Other Technologies - P KriensOSGi and Other Technologies - P Kriens
OSGi and Other Technologies - P Kriens
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBay
 
Osgi Webinar
Osgi WebinarOsgi Webinar
Osgi Webinar
 

More from Clément Escoffier

Devoxx France 2023 - 1,2,3 Quarkus.pdf
Devoxx France 2023 - 1,2,3 Quarkus.pdfDevoxx France 2023 - 1,2,3 Quarkus.pdf
Devoxx France 2023 - 1,2,3 Quarkus.pdfClément Escoffier
 
vert.x 3.1 - be reactive on the JVM but not only in Java
vert.x 3.1 - be reactive on the JVM but not only in Javavert.x 3.1 - be reactive on the JVM but not only in Java
vert.x 3.1 - be reactive on the JVM but not only in JavaClément Escoffier
 
Modularity and Dynamism - The tale of two sisters
Modularity and Dynamism - The tale of two sistersModularity and Dynamism - The tale of two sisters
Modularity and Dynamism - The tale of two sistersClément Escoffier
 
h-ubu - An industrial-strength service-oriented component model for JavaScrip...
h-ubu - An industrial-strength service-oriented component model for JavaScrip...h-ubu - An industrial-strength service-oriented component model for JavaScrip...
h-ubu - An industrial-strength service-oriented component model for JavaScrip...Clément Escoffier
 
iPOJO 2.x - a tale about dynamism
iPOJO 2.x - a tale about dynamismiPOJO 2.x - a tale about dynamism
iPOJO 2.x - a tale about dynamismClément Escoffier
 
Everest - Everything is a resource
Everest - Everything is a resourceEverest - Everything is a resource
Everest - Everything is a resourceClément Escoffier
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to realityClément Escoffier
 
Android : a linux-based mobile operating system
Android : a linux-based mobile operating systemAndroid : a linux-based mobile operating system
Android : a linux-based mobile operating systemClément Escoffier
 
Experimenting with the OSGi platform in the Aspire RFID middleware
Experimenting with the OSGi platform in the Aspire RFID middlewareExperimenting with the OSGi platform in the Aspire RFID middleware
Experimenting with the OSGi platform in the Aspire RFID middlewareClément Escoffier
 
Transactional OSGi Applications Done Right
Transactional OSGi Applications Done RightTransactional OSGi Applications Done Right
Transactional OSGi Applications Done RightClément Escoffier
 

More from Clément Escoffier (15)

Devoxx France 2023 - 1,2,3 Quarkus.pdf
Devoxx France 2023 - 1,2,3 Quarkus.pdfDevoxx France 2023 - 1,2,3 Quarkus.pdf
Devoxx France 2023 - 1,2,3 Quarkus.pdf
 
vert.x 3.1 - be reactive on the JVM but not only in Java
vert.x 3.1 - be reactive on the JVM but not only in Javavert.x 3.1 - be reactive on the JVM but not only in Java
vert.x 3.1 - be reactive on the JVM but not only in Java
 
Modularity and Dynamism - The tale of two sisters
Modularity and Dynamism - The tale of two sistersModularity and Dynamism - The tale of two sisters
Modularity and Dynamism - The tale of two sisters
 
h-ubu - An industrial-strength service-oriented component model for JavaScrip...
h-ubu - An industrial-strength service-oriented component model for JavaScrip...h-ubu - An industrial-strength service-oriented component model for JavaScrip...
h-ubu - An industrial-strength service-oriented component model for JavaScrip...
 
OW2 Nanoko
OW2 NanokoOW2 Nanoko
OW2 Nanoko
 
iPOJO 2.x - a tale about dynamism
iPOJO 2.x - a tale about dynamismiPOJO 2.x - a tale about dynamism
iPOJO 2.x - a tale about dynamism
 
Everest - Everything is a resource
Everest - Everything is a resourceEverest - Everything is a resource
Everest - Everything is a resource
 
h-ubu - CDI in JavaScript
h-ubu - CDI in JavaScripth-ubu - CDI in JavaScript
h-ubu - CDI in JavaScript
 
h-ubu : CDI in JavaScript
h-ubu : CDI in JavaScripth-ubu : CDI in JavaScript
h-ubu : CDI in JavaScript
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to reality
 
OSGi - beyond the myth
OSGi -  beyond the mythOSGi -  beyond the myth
OSGi - beyond the myth
 
One year-with-chameleon
One year-with-chameleonOne year-with-chameleon
One year-with-chameleon
 
Android : a linux-based mobile operating system
Android : a linux-based mobile operating systemAndroid : a linux-based mobile operating system
Android : a linux-based mobile operating system
 
Experimenting with the OSGi platform in the Aspire RFID middleware
Experimenting with the OSGi platform in the Aspire RFID middlewareExperimenting with the OSGi platform in the Aspire RFID middleware
Experimenting with the OSGi platform in the Aspire RFID middleware
 
Transactional OSGi Applications Done Right
Transactional OSGi Applications Done RightTransactional OSGi Applications Done Right
Transactional OSGi Applications Done Right
 

Recently uploaded

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

The OSGi Framework Multiplication

  • 1. Chapter 4.2 - Draft, Verse 138 : The Framework Multiplication Clement Escoffier, akquinet A.G.
  • 2. akquinet akquinet AG akquinet €1300k SE business consulting GmbH €60k SE International Microsoft / .NET Outsourcing JAVA / SAP Associate Partners akquinet akquinet akquinet akquinet BMC GMBH IBS dynamic solutions outsourcing it-agile cimt AG GmbH €250k SE GmbH €300k SE gGmbH €250k SE GmbH €100k SE DoubleC GmbH akquinet akquinet akquinet akquinet IBS Brüssel SLS logistics system integration tech@spree Groupconcept GmbH GmbH €40k SE GmbH €250k SE GmbH €125k SE GmbH €300k SE infodesign GmbH akquinet akquinet panoptimum GmbH eurosoft Sp. z o.o. enterprise solutions €100k SE GmbH €80k SE Portal Systems GmbH HKS PortivITy GmbH GmbH €75k SE w//Center GmbH Partner Power International GmbH akquinet AG 2002 2003 2004 2005 2006 2007 Budget 2008 In association 2007 Partnerbeteiligung Staff 64 108 133 165 170 203 315 Staff 433 2 The Framework Multiplication
  • 3. Modular and Mobile Solutions   Competence Center focusing on   Modular Systems   Modularization expertise   OSGi-based   Sophisticated, Large scale, Distributed systems   Mobile Solutions   In the large  MobileDevices, Interactions middleware, Server-side …  M2M, Data collection and Mediation, Control loop   Technologies   iPHONE / Android   OSGi (Apache Felix, Apace Ace, OW2 Chameleon, Apache Sling…)   Java EE (JBOSS, OW2 JOnAS) 3 The Framework Multiplication
  • 4. Why multiple OSGi frameworks in one VM ?   OSGi has made a successful breakthrough Bundle (packaging and Service binding   THE module layer on the top of deployment unit) (loose-coupled, Java dynamic)   Wide spread usages as middleware kernel   Mobile devices   Desktop applications   Lightweight Application servers   Enterprise Application Servers   More and more used by OSGi™ framework application themselves   Modularity Java Virtual Machine   Dynamism   Provisioning 4 The Framework Multiplication
  • 5. Why ? - Runtime/ Application isolation   Conflicts !   Internal / Private API exposed by the middleware used unexpectedly by the applications   Version conflict on third- party libraries OSGi™ framework Java Virtual Machine 5 The Framework Multiplication
  • 6. Why ? – Application Model composite {   Creation of composite Install-Bundle:   Deployment packages++ foo; bundle-version=[1.0.0,1.2.0), bar; bundle-version=[1.0.0,1.0.0]   Allows to describes Import-Package: waz; version=2.0.0 applications Export-Package: baz; version=1.0.1 } Exemple   Such composites should be ran in an isolated child framework Child framework OSGi™ framework Java Virtual Machine 6 The Framework Multiplication
  • 7. Why ? – Avoid applications conflicts   Same issues as the middleware /applications conflicts   Two applications may share services   But sometimes …. NOT !   Stateful services   Third-party library conflicts   By using separate frameworks   Guaranty a service isolation   Guaranty a third-party libraries isolation 7 The Framework Multiplication
  • 8. How do we solve that today ? The Launcher approach   OSGi R4.2 has standardized how to create OSGi framework instances   Framework Factory   factory.newFramework(config) FWK 1 FWK 2 Launcher Java Virtual Machine 8 The Framework Multiplication
  • 9. How do we solve that today ? The Child approach   A bundle instantiates a new OSGi framework   The lifecycle of this framework is managed by the bundle   Relationships between the intra-bundle and the external world are managed by the bundle   May be tricky…. OSGi Framework Bundle OSGi Framework Java Virtual Machine 9 The Framework Multiplication
  • 10. Does this work ?   In simple cases … YES   In sophisticated cases …. Absolutely NO   Cross-framework singleton bundle ?   A singleton bundle may be resolved several times on the JVM   URL Streams have to be multiplexed   The JVM supports only ONE extension of the URL class   What happens if several framework provide several times the same URL Handler ?   The Security Manager is a JVM Singleton   The condition permission admin directly uses the JVM security  No way to adapt the security policy per framework 10 The Framework Multiplication
  • 11. The RFC 0138 Multiple Frameworks In One JVM   OSGi R4.2 RFC   Not pushed in the OSGi R4.2 because of some direct impacts on the framework   Will be somewhere in OSGi R5   Assumption   Each framework manages its own class space, and is responsible for managing the lifecycle and resolution of its bundles.   Class reachability inside the framework is managed by bundle resolution and classloading rules   Class reachability outside the framework is managed by standard classloading rules and hierarchies 11 The Framework Multiplication
  • 12. Child Framework   Define a way to create child frameworks   Created thanks to a Framework service (CompositeBundleFactory)   Similar to the Launcher API   Framework configuration   Composite Manifest 12 The Framework Multiplication
  • 13. Composite Manifest   A Composite Manifest may contain   Bundle-Version and Bundle-SymbolicName   Import-Package from the parent framework   Export-Package from the child to the parent   CompositeServiceFilter-Export   Exports services from the child to the parent   Equivalent to iPOJO exports   CompositeServiceFilter-Import   Imports a service from the parent to the child   Equivalent to iPOJO imports   No way to install bundles directly in the composite   At least in the last version of the RFC   Allows to define your ADL, to choose your provisioning mechanism...   Can be done with the framework configuration map 13 The Framework Multiplication
  • 14. The parent – child relationship   Child frameworks managed by   A composite bundle Child Framework   Representing the child into the parent Surrogate Bundle   A surrogate bundle   Representing the parent into the child Composite Bundle OSGi Framework Java Virtual Machine 14 The Framework Multiplication
  • 15. Surrogate & Composite Bundles   The Surrogate represents the parent framework into the child framework   Publishes imported services into the child service registry   Exports imported packages   TheComposite represents the child framework into the parent framework   Publishes exported services into the parent service registry   Exports exported packages 15 The Framework Multiplication
  • 16. Singleton Multiplexing   Propose a way to multiplex URL Handler without conflicts   Objective   Resolve URL by using the ‘adequate’ URL Handler   Already done inside Felix   Analyze from the stack trace which Framework triggers the URL resolving   Use the good URL Handler service 16 The Framework Multiplication
  • 17. What else ?   …   RFC not included into OSGi R4.2   Break the system bundle lifecycle (RESOLVED state ?)   Impact the core specification   Surrogate bundles are complex   Why not reusing the System Bundle ?   The specification does not cover all use cases   Security ?   Others singletons ?   However, it’s still a work in progress… 17 The Framework Multiplication
  • 18. Conclusion   Beingable to launch several frameworks inside the same VM is definitely required   But it’s not so simple !   The RFC 0138 proposes a first draft addressing the issues   Child framework creation and management   Singleton multiplexing   However, it’s far from complete   And complex to implement… 18 The Framework Multiplication
  • 19. What might be cool   A real composite bundle description language   ADL   Abstract placeholder   Dynamism, Substitution   Creating a bridge with the deployment admin   A deployment package could create a child framework   Sandbox mechanism   Like on the iPHONE 19 The Framework Multiplication
  • 20. Questions ? Karl Pauls Dr. Clement Escoffier karl.pauls@akquinet.de clement.escoffier@akquinet.de Bülowstraße 66, 10783 Berlin Bülowstraße 66, 10783 Berlin +49 151 226 49 845 +49 175 2467717 20 The Framework Multiplication