The Open Services Gateway Initiative (OSGi) may seem like yet another darn spec about yet something else computerdom can't live without, but this one seems to be pretty important and catching on. As I understand it, the OSGi spec defines a component model with two main capabilities:
- bundles -- Equivalent to Eclipse plug-ins, a component of code with a defined API that provides specific functionality.
- services gateway architecture -- Makes the bundles accessible as services.
Here's the description of OSGi on developerWorks:
OSGi is a set of Java-based APIs to implement a services gateway architecture. This services gateway is inserted between the external network and internal network and devices and will aid the delivery of managed broadband services to networks in homes, cars and other environments.
The OSGi FAQ helps explain what the spec is about. The Eclipse OSGi project helps explain how OSGi fits in with Eclise; the first two paragraphs of this book excerpt explains further.
Besides Eclipse, why is OSGi important? It sounds like a good basis for SOA. Potentially, a services provider (SOA-SP) could use OSGi compliance to organize the services and make them available to clients/coordinators. Apparently I'm not the only one thinking along these lines: See this recent announcement from IBM in ee Product Center and the docs for a lightweight container called jadabs.
Is OSGi the future of SOA?