OSGi is a software service management framework that allows software components (known as bundles) to be deployed and managed. It can be used to manage lots of small service components.
Key features:
Supports component lifecycle: deploy, start, stop, undeploy components.
Support component inter-dependency: allow components to access each other's services, wait for a given component to start, etc.
Support centralised deployment and configuration: allow components to be deployed from a server to clients. Removes need for manual installations/upgrades on each client and stops clients from getting out of sync with the latest software.
We are currently using an open source implementation of OSGi Release 3.0 called Knopflerfish.
The optional Remote OSGi Service Management feature allows the OSGi bundles running on a Livespace client to be managed using the Livespace Bus.
Eclipse as of release 3.2 has support for generic OSGi via the "Equinox" OSGi engine. See the Eclipse 3.2 new and noteworthy section. We may be able to get Eclipse to do more of the work of bundling and running LS bundles but not sure how well we can automate this (eg from Ant).