SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Context               Contribution               Validations              Perspectives




      OSGi Applications Clustering using Distributed
                     Shared Memory

          Anthony Gelibert1      Walter Rudametkin2            Didier Donsez2
                                 S´bastien Jean1
                                  e
                          1 GrenobleInstitute of Technology,
                           LCIS Laboratory, CTSYS Team
                                  Valence, France
                       firstname.lastname@lcis.grenoble-inp.fr
                                2 Grenoble University,

                            LIG Laboratory, ADELE Team
                                   Grenoble, France
                             firstname.lastname@imag.fr


          11th Annual International Conference on New Technologies
                            of Distributed System
                                                                                 1 / 25
Context                  Contribution   Validations   Perspectives



Agenda
     1    Context
           OSGi
           OSGi and Distribution
           Distributed Shared Memory
     2    Contribution
           Proposition
           Use Cases
           Toolchain
           Example
     3    Validations
            Event Admin
            Cilia
            uGASP
     4    Perspectives
                                                             2 / 25
Context                     Contribution          Validations         Perspectives



OSGi



                                                  De facto Module System
     Bundle 1         Bundle 2         Bundle N
                                                  (“bundle”) for Java
                                                  (Eclipse IDE & RCP,
                 OSGi Framework                   JavaEE, OSGiME).
                Java Virtual Machine
                                                  Dependency management.
                 Operating System

                     Hardware                     Service Oriented
                                                  Architecture with Direct
                                                  References.
   Figure: OSGi & System-Layering



                                                                             3 / 25
Context             Contribution     Validations          Perspectives



OSGi (cont.)




                                     Dynamic Component
                                     Model.


                                     Dynamic evolution:
                                     No JVM reboot.

    Figure: OSGi Bundle Life-Cycle




                                                                 4 / 25
Context                    Contribution       Validations             Perspectives



Remote Method Invocations



                                               Use a stub to call methods
          Client                     Server    exported by a remote
                                               skeleton.
          Stub                   Skeleton

          RRL                         RRL
                                               Many solutions for OSGi :

                   Transport Layer                    R-OSGi
                                                      ROSE
                                                      Extended ServiceBinder
   Figure: Remote Method Invocation                   SCA
                                                      Remote Services




                                                                             5 / 25
Context              Contribution          Validations       Perspectives



Distributed Deployment


          Several bundle repositories.


          Bundle offering the same functionalities on each.


          Deployment optimizing non-functional parameters.


          Use a P2P overlay.




                                                                    6 / 25
Context             Contribution           Validations              Perspectives



Distributed Shared Memory



          P0           P1            P2
                                               •••           Pn-1


          MEM         MEM           MEM                      MEM

                                                  Network
                             Software DSM Layer


                Figure: Software Distributed Shared Memory




                                                                           7 / 25
Context                          Contribution                         Validations                      Perspectives



Terracotta


                Host 1                           Host 2                                   Host N-1

            Application                         Application                           Application



                Shared Objects                   Shared Objects
                                                                     •••                  Shared Objects



          JVM      DSO Lib                 JVM       DSO Lib
                                                                                    JVM      DSO Lib




                                                        Terracotta Server




                                            Figure: Terracotta




                                                                                                              8 / 25
Context                                Contribution                         Validations          Perspectives



Proposition


                           Distributed Shared                               Clustered (i.e. Replicated)
                                 Memory
                                                                            Services.
                                                                            Apply DSO to Services
    Module     Clustered      Module            Clustered          Module
                                                                            published in distributed
      A         Service         B                Service             C
                                                                            [OSGi / JVM] platforms.
                OSGi                                        OSGi
                                                                            Avoid the re-engenerring
                 JVM                                        JVM
                                                                            gymnastic to distribute
                                                                            OSGi services.
             Figure: Clustered Service
          Clustered Bundles:
          Bundles containing servants providing and consuming local
          and clustered services

                                                                                                        9 / 25
Context                   Contribution           Validations   Perspectives



Pitfalls




               Versioning of Clustered Bundles


               Dynamic Updates of clustered bundles1




          1
              Synchronous vs. Asynchronous
                                                                     10 / 25
Context             Contribution            Validations   Perspectives



Use Cases


     Traditional targets of distributed shared memory
         State sharing
          Message bus




     Re-engineering of existing solutions
         Parallelization of services
          Original data access paradigm




                                                                11 / 25
Context              Contribution                        Validations                    Perspectives



Toolchain


            Build-time
                                       Annotations                 Java Code




                Annotation              Annotation
                                                                 Java Compiler
                Processor             Processing Tool



                                          DSM
                                                                  Java Classes
                                     Configuration File


                             Supplied by user                          Provided tools




                                                                                              12 / 25
Context    Contribution                 Validations   Perspectives



Example




           Enabling the delegation of class loading




                    Annotations for Terracotta

          Figure: Annotations in the source code


                                                            13 / 25
Context       Contribution                       Validations   Perspectives



Example (cont.)




                              APT Maven plugin




                         Terracotta Configuration File


                       Figure: Build process




                                                                     14 / 25
Context             Contribution         Validations   Perspectives



Validations




          Various use cases validated.


          Chosen pieces:
              Event Admin
              Cilia
              uGasp




                                                             15 / 25
Context             Contribution                        Validations              Perspectives



Event Admin

              Producer                                                Consumer
                 of           Bridge                    Bridge           of
               events                                                  events




                   OSGi Platform                            OSGi Platform




                                   Distributed Shared
                                         Memory




                                       Indicates a propagation
                                               of events


          Figure: Propagation of events across multiple platforms


                                                                                       16 / 25
Context                                Contribution                                     Validations                             Perspectives



Cilia


                                                                   Mediator 2
                                                    Scheduler                        Dispatcher
                                                      handler
                                                                   Processor           handler

                                                     Collector                         Sender




                          Mediator 1                                                                              Mediator 3
                                                         Distributed Shared Memory
          Scheduler                    Dispatcher                                                 Scheduler                    Dispatcher
            handler
                          Processor      handler                                                       handler
                                                                                                                  Processor      handler

           Collector                     Sender                                                       Collector                  Sender




                                                                   Mediator 2'
                                                    Scheduler                        Dispatcher
                                                      handler
                                                                   Processor           handler

                                                     Collector                         Sender




                       Figure: Replication and persistence in pervasive applications




                                                                                                                                            17 / 25
Context                                Contribution                                         Validations                                          Perspectives



uGASP


                                                                 Migration of the players
                                                                       from A to B
              Player            Player            Player                                           Player            Player            Player
                                                                 without any loss of data
          on the server A   on the server A   on the server A                                    previously        previously        previously
                                                                                               on the server A   on the server A   on the server A




                          Game Server A                                                                        Game Server B
                    (u)GASP + Bluetooth antenna                                                          (u)GASP + Bluetooth antenna




                                                                Distributed Shared Memory




                                Figure: State share for a DTN application


                                                                                                                                                       18 / 25
Context              Contribution          Validations      Perspectives



Future works


     Terracotta container
     Extension of the container:
          Enhance Terracotta integration
          Add persistence, cache. . .




     Dynamic update
        Dynamically update clustered services at run-time
          Run-time compliance & Update policies
          Update without stopping the bundle.


                                                                  19 / 25
Context          Contribution             Validations         Perspectives




          Thank you for your attention!
                            ———————
             Contact: anthony.gelibert@lcis.grenoble-inp.fr




                                                                    20 / 25
Context    Contribution   Validations   Perspectives




          Additional information
          —————————————————




                                              21 / 25
Context               Contribution          Validations      Perspectives



Further information


          Terracotta Documentation, download. . .
                     http://www.terracotta.org
                     Open Source
                     http://www.terracotta.org/open-source

              Felix Documentation, download. . .
                    http://felix.apache.org

      Chameleon Documentation, download. . .
                http://wiki.chameleon.ow2.org




                                                                   22 / 25
Context                 Contribution                              Validations                 Perspectives



Complete toolchain
          Build-time                              Annotation
                                                                         Java Code
                                                   Java 5.0



              Annotation Processor                       Annotation
          Terracotta-specific   DSM-generic                                    Java Compiler
                                                       Processing Tool
               classes           classes




                                            Terracotta
                                         configuration file                     Java Classes




                         Terracotta
                         java agent
                                                  +                 Java




                                       Terracotta
                                                                   Cluster
                                       Server(s)


                               Supplied by user                          Provided tools


                                                                                                    23 / 25
Context          Contribution                Validations             Perspectives



Cilia mediators



                                Mediator 1
            Scheduler                                  Dispatcher
              handler
                                Processor                  handler

             Collector                                     Sender




                                Mediator 2
            Scheduler                                  Dispatcher
              handler
                                Processor                  handler

             Collector                                     Sender




                                                                           24 / 25
Context   Contribution   Validations   Perspectives



Cluster




                                             25 / 25

Más contenido relacionado

La actualidad más candente

Auto-Scaling to Minimize Cost and Meet Application Deadlines in Cloud Workflows
Auto-Scaling to Minimize Cost and Meet Application Deadlines in Cloud WorkflowsAuto-Scaling to Minimize Cost and Meet Application Deadlines in Cloud Workflows
Auto-Scaling to Minimize Cost and Meet Application Deadlines in Cloud Workflowsmingtemp
 
Multicore coming to a screen near you
Multicore coming to a screen near youMulticore coming to a screen near you
Multicore coming to a screen near youRSComponentsTCC
 
Efficient Memory-Reference Checks for Real-time Java
Efficient Memory-Reference Checks for Real-time JavaEfficient Memory-Reference Checks for Real-time Java
Efficient Memory-Reference Checks for Real-time JavaAngelo Corsaro
 
Climb - Property-based dispatch in functional languages [Report]
Climb - Property-based dispatch in functional languages [Report]Climb - Property-based dispatch in functional languages [Report]
Climb - Property-based dispatch in functional languages [Report]Christopher Chedeau
 
GeForce 8800 OpenGL Extensions
GeForce 8800 OpenGL ExtensionsGeForce 8800 OpenGL Extensions
GeForce 8800 OpenGL Extensionsicastano
 
Ph.D. Dissertation
Ph.D. DissertationPh.D. Dissertation
Ph.D. DissertationSumant Tambe
 
Oracle BPM POSTER
Oracle BPM POSTEROracle BPM POSTER
Oracle BPM POSTERVijay Reddy
 
Open Safety-Critical Java
Open Safety-Critical JavaOpen Safety-Critical Java
Open Safety-Critical JavaAleš Plšek
 
Architecture Analysis of Systems based on Publish-Subscribe Systems
Architecture Analysis of Systems based on Publish-Subscribe SystemsArchitecture Analysis of Systems based on Publish-Subscribe Systems
Architecture Analysis of Systems based on Publish-Subscribe SystemsDharmalingam Ganesan
 
Self Repairing Tree Topology Enabling Content Based Routing In Local Area Ne...
Self Repairing Tree Topology Enabling  Content Based Routing In Local Area Ne...Self Repairing Tree Topology Enabling  Content Based Routing In Local Area Ne...
Self Repairing Tree Topology Enabling Content Based Routing In Local Area Ne...ncct
 
DYNAMIC REGION OF INTEREST TRANSCODING FOR MULTIPOINT VIDEO ...
DYNAMIC REGION OF INTEREST TRANSCODING FOR MULTIPOINT VIDEO ...DYNAMIC REGION OF INTEREST TRANSCODING FOR MULTIPOINT VIDEO ...
DYNAMIC REGION OF INTEREST TRANSCODING FOR MULTIPOINT VIDEO ...Videoguy
 
H.264 Library
H.264 LibraryH.264 Library
H.264 LibraryVideoguy
 
Frameworkevolution ohne Nebenwirkung - Automatische Adaption von Clients und ...
Frameworkevolution ohne Nebenwirkung - Automatische Adaption von Clients und ...Frameworkevolution ohne Nebenwirkung - Automatische Adaption von Clients und ...
Frameworkevolution ohne Nebenwirkung - Automatische Adaption von Clients und ...SoftwareSaxony
 
Test Objects -- They Just Work
Test Objects -- They Just WorkTest Objects -- They Just Work
Test Objects -- They Just WorkBob Binder
 
A middleware platform_to_federate_complex_event_processing
A middleware platform_to_federate_complex_event_processingA middleware platform_to_federate_complex_event_processing
A middleware platform_to_federate_complex_event_processingFawaz Fernand PARAISO
 
Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...
Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...
Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...Fahad Cheema
 

La actualidad más candente (20)

Auto-Scaling to Minimize Cost and Meet Application Deadlines in Cloud Workflows
Auto-Scaling to Minimize Cost and Meet Application Deadlines in Cloud WorkflowsAuto-Scaling to Minimize Cost and Meet Application Deadlines in Cloud Workflows
Auto-Scaling to Minimize Cost and Meet Application Deadlines in Cloud Workflows
 
Multicore coming to a screen near you
Multicore coming to a screen near youMulticore coming to a screen near you
Multicore coming to a screen near you
 
Efficient Memory-Reference Checks for Real-time Java
Efficient Memory-Reference Checks for Real-time JavaEfficient Memory-Reference Checks for Real-time Java
Efficient Memory-Reference Checks for Real-time Java
 
Climb - Property-based dispatch in functional languages [Report]
Climb - Property-based dispatch in functional languages [Report]Climb - Property-based dispatch in functional languages [Report]
Climb - Property-based dispatch in functional languages [Report]
 
GeForce 8800 OpenGL Extensions
GeForce 8800 OpenGL ExtensionsGeForce 8800 OpenGL Extensions
GeForce 8800 OpenGL Extensions
 
OSB POSTER
OSB POSTEROSB POSTER
OSB POSTER
 
Ph.D. Dissertation
Ph.D. DissertationPh.D. Dissertation
Ph.D. Dissertation
 
Oracle BPM POSTER
Oracle BPM POSTEROracle BPM POSTER
Oracle BPM POSTER
 
Extending and scripting PDT
Extending and scripting PDTExtending and scripting PDT
Extending and scripting PDT
 
DAC 2012
DAC 2012DAC 2012
DAC 2012
 
Open Safety-Critical Java
Open Safety-Critical JavaOpen Safety-Critical Java
Open Safety-Critical Java
 
Architecture Analysis of Systems based on Publish-Subscribe Systems
Architecture Analysis of Systems based on Publish-Subscribe SystemsArchitecture Analysis of Systems based on Publish-Subscribe Systems
Architecture Analysis of Systems based on Publish-Subscribe Systems
 
Self Repairing Tree Topology Enabling Content Based Routing In Local Area Ne...
Self Repairing Tree Topology Enabling  Content Based Routing In Local Area Ne...Self Repairing Tree Topology Enabling  Content Based Routing In Local Area Ne...
Self Repairing Tree Topology Enabling Content Based Routing In Local Area Ne...
 
DYNAMIC REGION OF INTEREST TRANSCODING FOR MULTIPOINT VIDEO ...
DYNAMIC REGION OF INTEREST TRANSCODING FOR MULTIPOINT VIDEO ...DYNAMIC REGION OF INTEREST TRANSCODING FOR MULTIPOINT VIDEO ...
DYNAMIC REGION OF INTEREST TRANSCODING FOR MULTIPOINT VIDEO ...
 
H.264 Library
H.264 LibraryH.264 Library
H.264 Library
 
Frameworkevolution ohne Nebenwirkung - Automatische Adaption von Clients und ...
Frameworkevolution ohne Nebenwirkung - Automatische Adaption von Clients und ...Frameworkevolution ohne Nebenwirkung - Automatische Adaption von Clients und ...
Frameworkevolution ohne Nebenwirkung - Automatische Adaption von Clients und ...
 
Test Objects -- They Just Work
Test Objects -- They Just WorkTest Objects -- They Just Work
Test Objects -- They Just Work
 
A middleware platform_to_federate_complex_event_processing
A middleware platform_to_federate_complex_event_processingA middleware platform_to_federate_complex_event_processing
A middleware platform_to_federate_complex_event_processing
 
10.1.1.65.2852
10.1.1.65.285210.1.1.65.2852
10.1.1.65.2852
 
Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...
Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...
Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...
 

Destacado

Smoke 2 marking clips
Smoke 2   marking clipsSmoke 2   marking clips
Smoke 2 marking clipsSamuel Edsall
 
OSGi Community Event 2010 — OSGi and Terracotta - Replication of states for c...
OSGi Community Event 2010 — OSGi and Terracotta - Replication of states for c...OSGi Community Event 2010 — OSGi and Terracotta - Replication of states for c...
OSGi Community Event 2010 — OSGi and Terracotta - Replication of states for c...Anthony Gelibert
 
Internet Video: The Big Picture on the Small Screen by Paul T.M. Hemenway
Internet Video: The Big Picture on the Small Screen by Paul T.M. HemenwayInternet Video: The Big Picture on the Small Screen by Paul T.M. Hemenway
Internet Video: The Big Picture on the Small Screen by Paul T.M. HemenwaySamuel Edsall
 
Final Cut Pro 7 Certification Lesson 5
Final Cut Pro 7 Certification Lesson 5Final Cut Pro 7 Certification Lesson 5
Final Cut Pro 7 Certification Lesson 5Samuel Edsall
 
Final Cut Pro 7 Certification Lesson 3
Final Cut Pro 7 Certification Lesson 3Final Cut Pro 7 Certification Lesson 3
Final Cut Pro 7 Certification Lesson 3Samuel Edsall
 
Final Cut Pro X Lesson 7
Final Cut Pro X Lesson 7Final Cut Pro X Lesson 7
Final Cut Pro X Lesson 7Samuel Edsall
 

Destacado (7)

Smoke 2 marking clips
Smoke 2   marking clipsSmoke 2   marking clips
Smoke 2 marking clips
 
OSGi Community Event 2010 — OSGi and Terracotta - Replication of states for c...
OSGi Community Event 2010 — OSGi and Terracotta - Replication of states for c...OSGi Community Event 2010 — OSGi and Terracotta - Replication of states for c...
OSGi Community Event 2010 — OSGi and Terracotta - Replication of states for c...
 
Internet Video: The Big Picture on the Small Screen by Paul T.M. Hemenway
Internet Video: The Big Picture on the Small Screen by Paul T.M. HemenwayInternet Video: The Big Picture on the Small Screen by Paul T.M. Hemenway
Internet Video: The Big Picture on the Small Screen by Paul T.M. Hemenway
 
Final Cut Pro 7 Certification Lesson 5
Final Cut Pro 7 Certification Lesson 5Final Cut Pro 7 Certification Lesson 5
Final Cut Pro 7 Certification Lesson 5
 
Branding identity
Branding identityBranding identity
Branding identity
 
Final Cut Pro 7 Certification Lesson 3
Final Cut Pro 7 Certification Lesson 3Final Cut Pro 7 Certification Lesson 3
Final Cut Pro 7 Certification Lesson 3
 
Final Cut Pro X Lesson 7
Final Cut Pro X Lesson 7Final Cut Pro X Lesson 7
Final Cut Pro X Lesson 7
 

Similar a OSGi Applications Clustering using Distributed Shared Memory

Framework Engineering
Framework EngineeringFramework Engineering
Framework EngineeringYoungSu Son
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGiIlya Rybak
 
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
 
Distributed OSGi Demo Eclipsecon 2009
Distributed OSGi Demo Eclipsecon 2009Distributed OSGi Demo Eclipsecon 2009
Distributed OSGi Demo Eclipsecon 2009David Bosschaert
 
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 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
 
Collab net overview_june 30 slide show
Collab net overview_june 30 slide showCollab net overview_june 30 slide show
Collab net overview_june 30 slide showsfelsenthal
 
CloudStack Best Practice in PPTV
CloudStack Best Practice in PPTVCloudStack Best Practice in PPTV
CloudStack Best Practice in PPTVgavin_lee
 
Dell web monsters-oct2011-v6-public
Dell web monsters-oct2011-v6-publicDell web monsters-oct2011-v6-public
Dell web monsters-oct2011-v6-publicBarton George
 
Introduction To OSGi
Introduction To OSGiIntroduction To OSGi
Introduction To OSGiccustine
 
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
 
Operating the Hyperscale Cloud
Operating the Hyperscale CloudOperating the Hyperscale Cloud
Operating the Hyperscale CloudOpen Stack
 
Distributed Services - OSGi 4.2 and possible future enhancements
Distributed Services - OSGi 4.2 and possible future enhancementsDistributed Services - OSGi 4.2 and possible future enhancements
Distributed Services - OSGi 4.2 and possible future enhancementsDavid Bosschaert
 
Open Storage Sun Intel European Business Technology Tour
Open Storage Sun Intel European Business Technology TourOpen Storage Sun Intel European Business Technology Tour
Open Storage Sun Intel European Business Technology TourWalter Moriconi
 
Venus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScienceVenus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScienceOW2
 
z/VM 6.2: Increasing the Endless Possibilities of Virtualization
z/VM 6.2: Increasing the Endless Possibilities of Virtualizationz/VM 6.2: Increasing the Endless Possibilities of Virtualization
z/VM 6.2: Increasing the Endless Possibilities of VirtualizationIBM India Smarter Computing
 
LAPP/SELinux - A secure web application platform powered by SELinux
LAPP/SELinux - A secure web application platform powered by SELinuxLAPP/SELinux - A secure web application platform powered by SELinux
LAPP/SELinux - A secure web application platform powered by SELinuxKohei KaiGai
 
Cisco open network environment
Cisco open network environmentCisco open network environment
Cisco open network environmentdeepers
 

Similar a OSGi Applications Clustering using Distributed Shared Memory (20)

Framework Engineering
Framework EngineeringFramework Engineering
Framework Engineering
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGi
 
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
 
Distributed OSGi Demo Eclipsecon 2009
Distributed OSGi Demo Eclipsecon 2009Distributed OSGi Demo Eclipsecon 2009
Distributed OSGi Demo Eclipsecon 2009
 
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 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
 
Collab net overview_june 30 slide show
Collab net overview_june 30 slide showCollab net overview_june 30 slide show
Collab net overview_june 30 slide show
 
CloudStack Best Practice in PPTV
CloudStack Best Practice in PPTVCloudStack Best Practice in PPTV
CloudStack Best Practice in PPTV
 
Dell web monsters-oct2011-v6-public
Dell web monsters-oct2011-v6-publicDell web monsters-oct2011-v6-public
Dell web monsters-oct2011-v6-public
 
Introduction To OSGi
Introduction To OSGiIntroduction To OSGi
Introduction To 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
 
Operating the Hyperscale Cloud
Operating the Hyperscale CloudOperating the Hyperscale Cloud
Operating the Hyperscale Cloud
 
Distributed Services - OSGi 4.2 and possible future enhancements
Distributed Services - OSGi 4.2 and possible future enhancementsDistributed Services - OSGi 4.2 and possible future enhancements
Distributed Services - OSGi 4.2 and possible future enhancements
 
OSGi tech session
OSGi tech sessionOSGi tech session
OSGi tech session
 
Open Storage Sun Intel European Business Technology Tour
Open Storage Sun Intel European Business Technology TourOpen Storage Sun Intel European Business Technology Tour
Open Storage Sun Intel European Business Technology Tour
 
Venus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScienceVenus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScience
 
Beyond OSGi Software Architecture
Beyond OSGi Software ArchitectureBeyond OSGi Software Architecture
Beyond OSGi Software Architecture
 
z/VM 6.2: Increasing the Endless Possibilities of Virtualization
z/VM 6.2: Increasing the Endless Possibilities of Virtualizationz/VM 6.2: Increasing the Endless Possibilities of Virtualization
z/VM 6.2: Increasing the Endless Possibilities of Virtualization
 
LAPP/SELinux - A secure web application platform powered by SELinux
LAPP/SELinux - A secure web application platform powered by SELinuxLAPP/SELinux - A secure web application platform powered by SELinux
LAPP/SELinux - A secure web application platform powered by SELinux
 
Cisco open network environment
Cisco open network environmentCisco open network environment
Cisco open network environment
 

OSGi Applications Clustering using Distributed Shared Memory

  • 1. Context Contribution Validations Perspectives OSGi Applications Clustering using Distributed Shared Memory Anthony Gelibert1 Walter Rudametkin2 Didier Donsez2 S´bastien Jean1 e 1 GrenobleInstitute of Technology, LCIS Laboratory, CTSYS Team Valence, France firstname.lastname@lcis.grenoble-inp.fr 2 Grenoble University, LIG Laboratory, ADELE Team Grenoble, France firstname.lastname@imag.fr 11th Annual International Conference on New Technologies of Distributed System 1 / 25
  • 2. Context Contribution Validations Perspectives Agenda 1 Context OSGi OSGi and Distribution Distributed Shared Memory 2 Contribution Proposition Use Cases Toolchain Example 3 Validations Event Admin Cilia uGASP 4 Perspectives 2 / 25
  • 3. Context Contribution Validations Perspectives OSGi De facto Module System Bundle 1 Bundle 2 Bundle N (“bundle”) for Java (Eclipse IDE & RCP, OSGi Framework JavaEE, OSGiME). Java Virtual Machine Dependency management. Operating System Hardware Service Oriented Architecture with Direct References. Figure: OSGi & System-Layering 3 / 25
  • 4. Context Contribution Validations Perspectives OSGi (cont.) Dynamic Component Model. Dynamic evolution: No JVM reboot. Figure: OSGi Bundle Life-Cycle 4 / 25
  • 5. Context Contribution Validations Perspectives Remote Method Invocations Use a stub to call methods Client Server exported by a remote skeleton. Stub Skeleton RRL RRL Many solutions for OSGi : Transport Layer R-OSGi ROSE Extended ServiceBinder Figure: Remote Method Invocation SCA Remote Services 5 / 25
  • 6. Context Contribution Validations Perspectives Distributed Deployment Several bundle repositories. Bundle offering the same functionalities on each. Deployment optimizing non-functional parameters. Use a P2P overlay. 6 / 25
  • 7. Context Contribution Validations Perspectives Distributed Shared Memory P0 P1 P2 ••• Pn-1 MEM MEM MEM MEM Network Software DSM Layer Figure: Software Distributed Shared Memory 7 / 25
  • 8. Context Contribution Validations Perspectives Terracotta Host 1 Host 2 Host N-1 Application Application Application Shared Objects Shared Objects ••• Shared Objects JVM DSO Lib JVM DSO Lib JVM DSO Lib Terracotta Server Figure: Terracotta 8 / 25
  • 9. Context Contribution Validations Perspectives Proposition Distributed Shared Clustered (i.e. Replicated) Memory Services. Apply DSO to Services Module Clustered Module Clustered Module published in distributed A Service B Service C [OSGi / JVM] platforms. OSGi OSGi Avoid the re-engenerring JVM JVM gymnastic to distribute OSGi services. Figure: Clustered Service Clustered Bundles: Bundles containing servants providing and consuming local and clustered services 9 / 25
  • 10. Context Contribution Validations Perspectives Pitfalls Versioning of Clustered Bundles Dynamic Updates of clustered bundles1 1 Synchronous vs. Asynchronous 10 / 25
  • 11. Context Contribution Validations Perspectives Use Cases Traditional targets of distributed shared memory State sharing Message bus Re-engineering of existing solutions Parallelization of services Original data access paradigm 11 / 25
  • 12. Context Contribution Validations Perspectives Toolchain Build-time Annotations Java Code Annotation Annotation Java Compiler Processor Processing Tool DSM Java Classes Configuration File Supplied by user Provided tools 12 / 25
  • 13. Context Contribution Validations Perspectives Example Enabling the delegation of class loading Annotations for Terracotta Figure: Annotations in the source code 13 / 25
  • 14. Context Contribution Validations Perspectives Example (cont.) APT Maven plugin Terracotta Configuration File Figure: Build process 14 / 25
  • 15. Context Contribution Validations Perspectives Validations Various use cases validated. Chosen pieces: Event Admin Cilia uGasp 15 / 25
  • 16. Context Contribution Validations Perspectives Event Admin Producer Consumer of Bridge Bridge of events events OSGi Platform OSGi Platform Distributed Shared Memory Indicates a propagation of events Figure: Propagation of events across multiple platforms 16 / 25
  • 17. Context Contribution Validations Perspectives Cilia Mediator 2 Scheduler Dispatcher handler Processor handler Collector Sender Mediator 1 Mediator 3 Distributed Shared Memory Scheduler Dispatcher Scheduler Dispatcher handler Processor handler handler Processor handler Collector Sender Collector Sender Mediator 2' Scheduler Dispatcher handler Processor handler Collector Sender Figure: Replication and persistence in pervasive applications 17 / 25
  • 18. Context Contribution Validations Perspectives uGASP Migration of the players from A to B Player Player Player Player Player Player without any loss of data on the server A on the server A on the server A previously previously previously on the server A on the server A on the server A Game Server A Game Server B (u)GASP + Bluetooth antenna (u)GASP + Bluetooth antenna Distributed Shared Memory Figure: State share for a DTN application 18 / 25
  • 19. Context Contribution Validations Perspectives Future works Terracotta container Extension of the container: Enhance Terracotta integration Add persistence, cache. . . Dynamic update Dynamically update clustered services at run-time Run-time compliance & Update policies Update without stopping the bundle. 19 / 25
  • 20. Context Contribution Validations Perspectives Thank you for your attention! ——————— Contact: anthony.gelibert@lcis.grenoble-inp.fr 20 / 25
  • 21. Context Contribution Validations Perspectives Additional information ————————————————— 21 / 25
  • 22. Context Contribution Validations Perspectives Further information Terracotta Documentation, download. . . http://www.terracotta.org Open Source http://www.terracotta.org/open-source Felix Documentation, download. . . http://felix.apache.org Chameleon Documentation, download. . . http://wiki.chameleon.ow2.org 22 / 25
  • 23. Context Contribution Validations Perspectives Complete toolchain Build-time Annotation Java Code Java 5.0 Annotation Processor Annotation Terracotta-specific DSM-generic Java Compiler Processing Tool classes classes Terracotta configuration file Java Classes Terracotta java agent + Java Terracotta Cluster Server(s) Supplied by user Provided tools 23 / 25
  • 24. Context Contribution Validations Perspectives Cilia mediators Mediator 1 Scheduler Dispatcher handler Processor handler Collector Sender Mediator 2 Scheduler Dispatcher handler Processor handler Collector Sender 24 / 25
  • 25. Context Contribution Validations Perspectives Cluster 25 / 25