4th International ICST Conference on Communication System Software and Middleware

Research Article

OSGi4C: Enabling OSGi for the Cloud

  • @INPROCEEDINGS{10.1145/1621890.1621910,
        author={Holger Schmidt and Jan-Patrick Elsholz and Vladimir Nikolov and Franz J. Hauck and R\'{y}diger Kapitza},
        title={OSGi4C: Enabling OSGi for the Cloud},
        proceedings={4th International ICST Conference on Communication System Software and Middleware},
        keywords={OSGi Cloud Computing Dynamic Loading of Code Dependency Resolution Non-functional Properties},
  • Holger Schmidt
    Jan-Patrick Elsholz
    Vladimir Nikolov
    Franz J. Hauck
    Rüdiger Kapitza
    Year: 2010
    OSGi4C: Enabling OSGi for the Cloud
    DOI: 10.1145/1621890.1621910
Holger Schmidt1, Jan-Patrick Elsholz1, Vladimir Nikolov2, Franz J. Hauck2,*, Rüdiger Kapitza3,*
  • 1: Vladimir Nikolov, Franz J. Hauck Institute of Distributed Systems Ulm University Germany
  • 2: Institute of Distributed Systems Ulm University Germany
  • 3: Dept. of Comp. Sciences Informatik 4 University of Erlangen-Nürnberg Germany
*Contact email: franz.hauck@uniulm._de, rrkapitz@cs.fau.de


OSGi is an industry standard for a lean Java-based component system with focus on local applications following the service-oriented architecture. Initially developed for dedicated application domains such as gateways and set-top boxes it is meanwhile used in many other areas, with Eclipse as a prominent example. OSGi allows dynamic deployment of components called bundles with automatic local dependency resolution on basis of exported Java packages. In this regard, OSGi builds an ideal basis for demand-driven deployment of complex Java applications, such as needed in the context of emerging cloud computing infrastructures. However, it lacks distributed code deployment and resolving. We present OSGi for the Cloud (OSGi4C), a novel OSGi service allowing seamless deployment of locally non-existent OSGi bundles and services on demand without requiring any changes to the OSGi platform. In OSGi4C, we use an underlying peer-to-peer infrastructure to provide, share and load OSGi bundles at runtime. Unlike related work, OSGi4C automatically resolves OSGi bundle and service dependencies. Therefore, dependent bundles that are not yet locally installed are also deployed. OSGi4C considers platform-specifc implementations (e.g., native code) and non-functional requirements (e.g., performance and resource demand) while automatically discovering and selecting the best of multiple available bundles for download.