R-OSGi: Distributed Applications Through Software Modularization

  • Jan S. Rellermeyer
  • Gustavo Alonso
  • Timothy Roscoe
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4834)


In this paper we take advantage of the concepts developed for centralized module management, such as dynamic loading and unloading of modules, and show how they can be used to support the development and deployment of distributed applications. We do so through R-OSGi, a distributed middleware platform that extends the centralized, industry-standard OSGi specification to support distributed module management. To the developer, R-OSGi looks like a conventional module management tool. However, at deployment time, R-OSGi can be used to turn the application into a distributed application by simply indicating where the different modules should be deployed. At run time, R-OSGi represents distributed failures as module insertion and withdrawal operations so that the logic to deal with failures is the same as that employed to deal with dependencies among software modules. In doing so, R-OSGi greatly simplifies the development of distributed applications with no performance cost. In the paper we describe R-OSGi and several use cases. We also show with extensive experiments that R-OSGi has a performance comparable or better than that of RMI or UPnP, both commonly used distribution mechanisms with far less functionality than R-OSGi.


Service Discovery Remote Service Service Interface Binding Time Original Service 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    OSGi Alliance: OSGi Service Platform - Release 4 (2005)Google Scholar
  2. 2.
    Waldo, J., Wyant, G., Wollrath, A., Kendall, S.: A Note on Distributed Computing. Technical Report SMLI TR-94-29, Sun Microsystems Labs (1994)Google Scholar
  3. 3.
    Birrell, A., Nelson, B.J.: Implementing remote procedure calls. ACM Transactions on Computer Systems 2(1), 39–59 (1984)CrossRefGoogle Scholar
  4. 4.
    Object Management Group: The Common Object Request Broker: Architecture and Specification. 2nd edn. (1995)Google Scholar
  5. 5.
    Brown, N., Kindel, C.: Distributed Component Object Model Protocol – DCOM/1.0 (Expired Internet Draft). IETF (1998)Google Scholar
  6. 6.
    Mullender, S.J., van Rossum, G., Tanenbaum, A.S., van Renesse, R., van Staveren, H.: Amoeba: A Distributed Operating System for the 1990s. IEEE Computer 23(5), 44–53 (1990)CrossRefGoogle Scholar
  7. 7.
    Shapiro, M., Gourbant, Y., Habert, S., Mosseri, L., Ruffin, M., Valot, C.: SOS: An Object-Oriented Operating System - Assessment and Perspectives. Computing Systems 2(4), 287–337 (1989)Google Scholar
  8. 8.
    Hunt, G.C., Scott, M.L.: The Coign Automatic Distributed Partitioning System. In: OSDI 1999. Proceedings of the 3rd Symposium on Operating Systems Design and Implementation (1999)Google Scholar
  9. 9.
    Tilevich, E., Smaragdakis, Y.: J-Orchestra: Automatic Java Application Partitioning. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 178–204. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  10. 10.
    Corwin, J., Bacon, D.F., Grove, D., Murthy, C.: MJ: A Rational Module System for Java and its Applications. In: OOPSLA 2003. Proceedings of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications, pp. 241–254. ACM Press, New York (2003)Google Scholar
  11. 11.
    Waldo, J.: The Jini architecture for network-centric computing. Communications of the ACM 42(7), 76–82 (1999)CrossRefGoogle Scholar
  12. 12.
    UPnP Forum: Universal Plug and Play Device Architecture (2000)Google Scholar
  13. 13.
    Paremus: The Newton Project (2006),
  14. 14.
    The Eclipse Foundation: Eclipse Project (2001),
  15. 15.
    Apache Foundation: Apache Felix (2005),
  16. 16.
    Gatespace Telematics SA: Knopflerfish OSGi (2003),
  17. 17.
    Rellermeyer, J.S., Alonso, G.: Concierge: A Service Platform for Resource-Constrained Devices. In: Proceedings of the EuroSys 2007 Conference (2007)Google Scholar
  18. 18.
    Apache Foundation: Apache Tomcat (2006),
  19. 19.
    Howes, T.: RFC 1960: A String Representation of LDAP Search Filters. IETF (1996)Google Scholar
  20. 20.
    Kriens, P., Hargrave, B.: Listeners considered harmful: The ”whiteboard” pattern. Technical report, OSGi Alliance (2004)Google Scholar
  21. 21.
    Guttman, E.: Service Location Protocol: Automatic Discovery of IP Network Services. IEEE Internet Computing 3(4), 71–80 (1999)CrossRefGoogle Scholar
  22. 22.
    Veizades, J., Guttman, E., Perkins, C.: RFC 2165: Service Location Protocol. IETF (1997)Google Scholar
  23. 23.
    Guttman, E., Perkins, C., Veizades, J.: RFC 2608: Service Location Protocol v2. IETF (1999)Google Scholar
  24. 24.
    Rellermeyer, J.S.: jSLP project, Java Service Location Protocol (2005),
  25. 25.
    Goland, Y.Y., Cai, T., Leach, P., Gu, Y., Albright, S.: Simple Service Discovery Protocol (Expired Internet Draft). IETF  (1999)Google Scholar
  26. 26.
    Bruneton, E., Lenglet, R., Coupaye, T.: ASM: A Code Manipulation Tool to Implement Adaptable Systems. Technical report, France Telecom R&D (2002)Google Scholar
  27. 27.
    Haumacher, B., Moschny, T., Philippsen, M.: The Javaparty Project (2005),
  28. 28.
    Demuru, M., Furfari, F., Lenzi, S.: The Domoware UPnP service for OSGi  (2005),
  29. 29.
    Sun Microsystems: Web Service Preformance. Comparing Java 2 Enterprise Edition (J2EE platform) and.NET Framework (2004)Google Scholar
  30. 30.
    Sun Microsystems: J2me Personal Profile for Zaurus 2002,
  31. 31.
    The University of Cambridge Computer Laboratory: The Trojan Room Coffee Machine (1991),

Copyright information

© IFIP International Federation for Information Processing 2007

Authors and Affiliations

  • Jan S. Rellermeyer
    • 1
  • Gustavo Alonso
    • 1
  • Timothy Roscoe
    • 1
  1. 1.Department of Computer Science, ETH Zurich, 8092 ZurichSwitzerland

Personalised recommendations