OSGi™ – The Dynamic Module System for Java™ - is a a very mature component system described in a set of specifications that enable a development model where applications are (dynamically) composed of many different (reusable) components.
The specifications are developed by the members of the OSGi Alliance in an open process and made available to the public free of charge under the OSGi Specification License. The OSGi Alliance was established in 1999 (originally the specifications were JSR8) and the specifications offer a mature industry technology designed from the outset to provide an extremely lightweight, highly agile, local JVM runtime. OSGi technology concentrates on component packaging, component life-cycle management, dynamic service registration and component collaboration, all with the view to achieving a simple, loosely coupled interchangeable component framework that is both flexible and easy to maintain.
OSGi technology also addresses the management issues caused by components within business systems evolving at different rates (a.k.a. DLL/Class Loader hell), as OSGi allows components of the same type, but of different versions, to be used in the same JVM runtime.
OSGi was initially aimed at the embedded, 'smart home', automotive and mobile industries and significant adoption has occurred. Since 2006 there has been a huge surge in interest and activity in OSGi technology from the enterprise software vendor community which has led to the establishment of the Enterprise Expert Group (EEG) in 2006, within the OSGi Alliance, and Paremus is an active member.
Three open-source, interchangeable, OSGi Platform implementations of the specification are available, each designed to run in a local JVM - Equinox (Eclipse), Felix (Apache) and Knopflerfish (Apache). JEE application server vendors are moving en-mass towards being built on an OSGi component framework (see press release and InfoQ August 2006).The open source Eclipse IDE has been based on OSGi since 2004. The popular Spring Framework also supports OSGi. A large number of other open source projects have announced support, or intent to support, OSGi including: Apache Derby, Apache ServiceMix, Apache Sling, db4o, GeoServer, JAME, Jetty (v 6.1.5 onwards), JPOX, Mule, Nuxeo, Paremus Service Fabric Community Edition, Peaberry (formerly Guice-OSGi), etc..