Using OSGi as a Cloud Platform
OSGi has taught us the art of stop worrying and embracing dynamism through a well-defined lifecycle of modules and through loosely-coupled services. Cloud resources are inherently dynamic in their nature and undergo frequent changes either due to explicit management operations (adding and removing resources) or due to their volatility (sharing effects, failures). Therefore, it is not a reasonable assumption that monolithic software incapable of dynamic adaptation can effectively run in such an environment. In fact, the compositional approach of OSGi---traditionally applied to a single runtime system---is key to building scalable and dependable systems across a variable set of machines in the cloud.
In this talk, I will discuss the challenges and opportunities of using the OSGi framework as a cloud platform. Concretely, I will discuss which existing OSGi facilities (e.g., UserAdmin) can easily be leveraged in the cloud to connect to established cloud services. Furthermore, I will discuss a REST-style API for interacting with the framework, uploading new bundles, and managing applications running on a cloud-based framework. Finally, I will show how to use Remote Services to compose failure-resilient applications running across multiple frameworks. I will use small concrete applications and demonstrate them during the talk.