We are privileged to create technology products and services that make a meaningful difference and impact in our client's businesses and the world around them.
The OSGi Alliance, which was formed as the Open Source Gateway Initiative in 1999, is a group of companies and individuals coming together to standardize a set of specifications for making Java more modular. Back then, the team was more focused on embedded systems like wireless phones and other smaller hardware devices where Java required its own modules and had to be adaptable with very limited resources where memory was concerned.
OSGi framework forms a service platform that provides a managed Java framework for installing bundles, updating and removing them on the fly without affecting any other bundles. A bundle is defined here as a standalone application that shares nothing with bundles unless otherwise provided on the bundle manifest. A common problem when dealing with more than one application on current Java servers is that the classpath is shared between the different applications. OSGi resolves the classpath by providing each bundle a unique classpath. Thus, a bundle has absolutely no access to the implementation of other bundles.
The OSGi Framework incorporates the following layers:
The modern enterprise IT ecology has evolved and become very complicated when dealing with several large and interacting applications. Problems with development and release lifecycles, security, configuration management, are a fact of life in this context. On this large and complex scale, design patterns become very hard to maintain and manage. OSGi Enterprise Expert Group (EEG) has provided a specification that splits many of these problems into smaller and more manageable components so that each can be tackled without affecting others. (Further, the EEG's specification has allowed integration with Java EE within the OSGi framework.)
The OSGi specification simplifies the following in the enterprise context:
The benefits of the OSGi enterprise specification is that we can create smaller groups of code (bundles) where each layer of an enterprise application is broken down for better development time, maintainability and availability. Development teams can now finally work almost independently on the various layers of the web applications. When running the OSGi container as a single instance and having the application layers running within it, the bundles can be started individually or other bundles can start bundles within the OSGi instance container. This allows for fast deployment and maintainability rather than deploying the whole application every time a release is required. For higher availability and better performance, bundles can reside on external OSGi instances where Distributed Services can be used to access remote services. This allows for the same functionality as internal services without burdening the whole application. Another very important addition is the Configuration Services module, which allows started bundles to change configurations on the fly without restarting any of the bundles. The configuration service can reside locally or remotely within anther OSGi instance.
Lixar has been using this framework for over 1 year and we're slowly building it into our POE. As we participate further in the open source community, we bring that knowledge to bear on better and more informed decisions for our clients.