The OSGi Alliance (formerly known as the Open Services Gateway initiative) is an open standards organization founded in March 1999. Over the past few years it has specified a Java-based service platform that can be remotely managed.
The core part of the specifications is a framework that defines an application life cycle model and a service registry.
The Framework implements a complete and dynamic component model – something that is missing in standalone Java/VM environments. Applications or components (coming in the form of bundles for deployment) can be remotely installed, started, stopped, updated and uninstalled without requiring a reboot – management of Java packages/classes is specified in great detail.
Life cycle management is done via API’s which allow for remote downloading of management policies. The service registry allows bundles to detect new services, or the going away of services, and adapt accordingly.
Whenever I tried to read and understand more about OSGi I always used to get lost and confused. If you read the Wikipedia article on OSGi or even check OSGi website for details I am sure you will agree/partly agree with me 🙂
Neil Bartlett, a Java developer and a consultant specializing in Eclipse RCP and OSGi is writing a series of tutorials on OSGi at Eclipsezone. It is one of the best series of articles I have read and will definitely help you quickly get started on OSGi.
Here is the list of articles published till now:
- Getting Started with OSGi: Your first bundle
- Getting Started with OSGi: Interacting with the Framework
- Getting Started with OSGi: Dependencies between Bundles
- A Comparison of Eclipse Extensions and OSGi Services
2 more articles from IBM Developerworks are worth reading !
- Understanding how Eclipse plug-ins work with OSGi – By Scott Delap.
- Explore Eclipse OSGi console – By Chris Aniszczyk.
As of Eclipse 3.0, the runtime is fully based on the OSGi notion of bundle (equivalent to Eclipse plug-ins). Also there are 4 open source implementations of OSGi R4 core framework specification available and if you have already installed Eclipse you can quickly start experimenting using Equinox.