Abstract
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.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
OSGi Alliance: OSGi Service Platform - Release 4 (2005)
Waldo, J., Wyant, G., Wollrath, A., Kendall, S.: A Note on Distributed Computing. Technical Report SMLI TR-94-29, Sun Microsystems Labs (1994)
Birrell, A., Nelson, B.J.: Implementing remote procedure calls. ACM Transactions on Computer Systems 2(1), 39–59 (1984)
Object Management Group: The Common Object Request Broker: Architecture and Specification. 2nd edn. (1995)
Brown, N., Kindel, C.: Distributed Component Object Model Protocol – DCOM/1.0 (Expired Internet Draft). IETF (1998)
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)
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)
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)
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)
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)
Waldo, J.: The Jini architecture for network-centric computing. Communications of the ACM 42(7), 76–82 (1999)
UPnP Forum: Universal Plug and Play Device Architecture (2000)
Paremus: The Newton Project (2006), http://newton.codecauldron.org
The Eclipse Foundation: Eclipse Project (2001), http://www.eclipse.org
Apache Foundation: Apache Felix (2005), http://incubator.apache.org/felix
Gatespace Telematics SA: Knopflerfish OSGi (2003), www.knopflerfish.org
Rellermeyer, J.S., Alonso, G.: Concierge: A Service Platform for Resource-Constrained Devices. In: Proceedings of the EuroSys 2007 Conference (2007)
Apache Foundation: Apache Tomcat (2006), http://tomcat.apache.org
Howes, T.: RFC 1960: A String Representation of LDAP Search Filters. IETF (1996)
Kriens, P., Hargrave, B.: Listeners considered harmful: The ”whiteboard” pattern. Technical report, OSGi Alliance (2004)
Guttman, E.: Service Location Protocol: Automatic Discovery of IP Network Services. IEEE Internet Computing 3(4), 71–80 (1999)
Veizades, J., Guttman, E., Perkins, C.: RFC 2165: Service Location Protocol. IETF (1997)
Guttman, E., Perkins, C., Veizades, J.: RFC 2608: Service Location Protocol v2. IETF (1999)
Rellermeyer, J.S.: jSLP project, Java Service Location Protocol (2005), http://jslp.sourceforge.net
Goland, Y.Y., Cai, T., Leach, P., Gu, Y., Albright, S.: Simple Service Discovery Protocol (Expired Internet Draft). IETF (1999)
Bruneton, E., Lenglet, R., Coupaye, T.: ASM: A Code Manipulation Tool to Implement Adaptable Systems. Technical report, France Telecom R&D (2002)
Haumacher, B., Moschny, T., Philippsen, M.: The Javaparty Project (2005), http://www.ipd.uka.de/JavaParty
Demuru, M., Furfari, F., Lenzi, S.: The Domoware UPnP service for OSGi (2005), http://domoware.isti.cnr.it
Sun Microsystems: Web Service Preformance. Comparing Java 2 Enterprise Edition (J2EE platform) and.NET Framework (2004)
Sun Microsystems: J2me Personal Profile for Zaurus 2002, http://java.sun.com/developer/earlyAccess/pp4zaurus
The University of Cambridge Computer Laboratory: The Trojan Room Coffee Machine (1991), http://www.cl.cam.ac.uk/coffee/coffee.html
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 IFIP International Federation for Information Processing
About this paper
Cite this paper
Rellermeyer, J.S., Alonso, G., Roscoe, T. (2007). R-OSGi: Distributed Applications Through Software Modularization. In: Cerqueira, R., Campbell, R.H. (eds) Middleware 2007. Middleware 2007. Lecture Notes in Computer Science, vol 4834. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-76778-7_1
Download citation
DOI: https://doi.org/10.1007/978-3-540-76778-7_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-76777-0
Online ISBN: 978-3-540-76778-7
eBook Packages: Computer ScienceComputer Science (R0)