Your SlideShare is downloading. ×
OSGi Applications Clustering using Distributed Shared Memory
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 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 2 Grenoble University, LIG Laboratory, ADELE Team Grenoble, France 11th Annual International Conference on New Technologies of Distributed System 1 / 25
  • 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. 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. Context Contribution Validations PerspectivesOSGi (cont.) Dynamic Component Model. Dynamic evolution: No JVM reboot. Figure: OSGi Bundle Life-Cycle 4 / 25
  • 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. 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. 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. 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. 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. Context Contribution Validations PerspectivesPitfalls Versioning of Clustered Bundles Dynamic Updates of clustered bundles1 1 Synchronous vs. Asynchronous 10 / 25
  • 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. 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. Context Contribution Validations PerspectivesExample Enabling the delegation of class loading Annotations for Terracotta Figure: Annotations in the source code 13 / 25
  • 14. Context Contribution Validations PerspectivesExample (cont.) APT Maven plugin Terracotta Configuration File Figure: Build process 14 / 25
  • 15. Context Contribution Validations PerspectivesValidations Various use cases validated. Chosen pieces: Event Admin Cilia uGasp 15 / 25
  • 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. 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. 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. 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. Context Contribution Validations Perspectives Thank you for your attention! ——————— Contact: 20 / 25
  • 21. Context Contribution Validations Perspectives Additional information ————————————————— 21 / 25
  • 22. Context Contribution Validations PerspectivesFurther information Terracotta Documentation, download. . . Open Source Felix Documentation, download. . . Chameleon Documentation, download. . . 22 / 25
  • 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. 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. Context Contribution Validations PerspectivesCluster 25 / 25