OSGi Applications Clustering using Distributed Shared Memory


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

OSGi Applications Clustering using Distributed Shared Memory

  1. 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. 2. Context Contribution Validations PerspectivesAgenda 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. 3. Context Contribution Validations PerspectivesOSGi 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. 4. Context Contribution Validations PerspectivesOSGi (cont.) Dynamic Component Model. Dynamic evolution: No JVM reboot. Figure: OSGi Bundle Life-Cycle 4 / 25
  5. 5. Context Contribution Validations PerspectivesRemote 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. 6. Context Contribution Validations PerspectivesDistributed Deployment Several bundle repositories. Bundle offering the same functionalities on each. Deployment optimizing non-functional parameters. Use a P2P overlay. 6 / 25
  7. 7. Context Contribution Validations PerspectivesDistributed Shared Memory P0 P1 P2 ••• Pn-1 MEM MEM MEM MEM Network Software DSM Layer Figure: Software Distributed Shared Memory 7 / 25
  8. 8. Context Contribution Validations PerspectivesTerracotta 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. 9. Context Contribution Validations PerspectivesProposition 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. 10. Context Contribution Validations PerspectivesPitfalls Versioning of Clustered Bundles Dynamic Updates of clustered bundles1 1 Synchronous vs. Asynchronous 10 / 25
  11. 11. Context Contribution Validations PerspectivesUse 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. 12. Context Contribution Validations PerspectivesToolchain 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. 13. Context Contribution Validations PerspectivesExample Enabling the delegation of class loading Annotations for Terracotta Figure: Annotations in the source code 13 / 25
  14. 14. Context Contribution Validations PerspectivesExample (cont.) APT Maven plugin Terracotta Configuration File Figure: Build process 14 / 25
  15. 15. Context Contribution Validations PerspectivesValidations Various use cases validated. Chosen pieces: Event Admin Cilia uGasp 15 / 25
  16. 16. Context Contribution Validations PerspectivesEvent 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. 17. Context Contribution Validations PerspectivesCilia 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. 18. Context Contribution Validations PerspectivesuGASP 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. 19. Context Contribution Validations PerspectivesFuture 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. 20. Context Contribution Validations Perspectives Thank you for your attention! ——————— Contact: anthony.gelibert@lcis.grenoble-inp.fr 20 / 25
  21. 21. Context Contribution Validations Perspectives Additional information ————————————————— 21 / 25
  22. 22. Context Contribution Validations PerspectivesFurther 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. 23. Context Contribution Validations PerspectivesComplete 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. 24. Context Contribution Validations PerspectivesCilia mediators Mediator 1 Scheduler Dispatcher handler Processor handler Collector Sender Mediator 2 Scheduler Dispatcher handler Processor handler Collector Sender 24 / 25
  25. 25. Context Contribution Validations PerspectivesCluster 25 / 25