OSGi is built around a service-oriented architecture. Applications or components, come 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. Application life cycle management is implemented via APIs that enable remote downloading of management policies. The service registry enables bundles to detect the addition of new services or the removal of services, and adapt accordingly.
The OSGi specifications have evolved beyond the original focus of service gateways, and are now used in applications ranging from mobile phones to the open-source Eclipse IDE. Other application areas include automobiles, industrial automation, building automation, PDAs, grid computing, entertainment, fleet management and application servers.
In October 2020, the OSGi Alliance announced the transition of the standardization effort to the Eclipse Foundation, subsequent to which it would shut down.3 All artifacts have been transferred to the Eclipse Foundation, where an “OSGi Working Group" continues to maintain and evolve the specification.
The OSGi specification is developed by the members in an open process and made available to the public free of charge under the OSGi Specification License.4 The OSGi Alliance has a compliance program that is open to members only. As of November 2010, there are seven certified OSGi framework implementations.5 A separate page lists both certified and non-certified OSGi Specification Implementations, which include OSGi frameworks and other OSGi specifications.
OSGi is a Java framework for developing and deploying modular software programs and libraries. Each bundle is a tightly coupled, dynamically loadable collection of classes, jars, and configuration files that explicitly declare their external dependencies (if any).
The framework is conceptually divided into the following areas:
A bundle is a group of Java classes and additional resources equipped with a detailed manifest MANIFEST.MF file on all its contents, as well as additional services needed to give the included group of Java classes more sophisticated behaviors, to the extent of deeming the entire aggregate a component.
Below is an example of a typical MANIFEST.MF file with OSGi Headers:
The meaning of the contents in the example is as follows:6
A Life Cycle layer adds bundles that can be dynamically installed, started, stopped, updated and uninstalled. Bundles rely on the module layer for class loading but add an API to manage the modules in run time. The life cycle layer introduces dynamics that are normally not part of an application. Extensive dependency mechanisms are used to assure the correct operation of the environment. Life cycle operations are fully protected with the security architecture.
Below is an example of a typical Java class implementing the BundleActivator interface:
The OSGi Alliance has specified many services. Services are specified by a Java interface. Bundles can implement this interface and register the service with the Service Registry. Clients of the service can find it in the registry, or react to it when it appears or disappears.
The table below shows a description of OSGi System Services:7
The table below shows a description of OSGi Protocol Services:
The table below shows a description of OSGi Miscellaneous Services:
The OSGi Alliance was founded by Ericsson, IBM, Motorola, Sun Microsystems and others in March 1999. Before incorporating as a nonprofit corporation, it was called the Connected Alliance.
Among its members are (as of February 2015[update]) more than 35 companies from quite different business areas, for example Adobe Systems, Deutsche Telekom, Hitachi, IBM, Liferay, Makewave, NEC, NTT, Oracle, Orange SA, ProSyst, Salesforce, Siemens, Software AG and TIBCO Software.8
The Alliance has a board of directors that provides the organization's overall governance. OSGi officers have various roles and responsibilities in supporting the alliance. Technical work is conducted within Expert Groups (EGs) chartered by the board of directors, and non-technical work is conducted in various working groups and committees. The technical work conducted within Expert Groups include developing specifications, reference implementations, and compliance tests. These Expert Groups have produced five major releases of the OSGi specifications (As of 2012[update]).
Dedicated Expert Groups exist for the enterprise, mobile, vehicle and the core platform areas.
The Enterprise Expert Group (EEG) is the newest EG and is addressing Enterprise / Server-side applications. In November 2007 the Residential Expert Group (REG) started to work on specifications to remotely manage residential/home-gateways. In October 2003, Nokia, Motorola, IBM, ProSyst and other OSGi members formed a Mobile Expert Group (MEG) that will specify a MIDP-based service platform for the next generation of smart mobile phones, addressing some of the needs that CLDC cannot manage – other than CDC. MEG became part of OSGi as with R4.
Group, OSGi Working. "What Is OSGi? | The Eclipse Foundation". OSGi Working Group. Retrieved 2023-11-08. {{cite web}}: |last= has generic name (help) https://www.osgi.org/resources/what-is-osgi/ ↩
Tyson, Matthew (2020-08-13). "What is OSGi? A different approach to Java modularity". InfoWorld. Retrieved 2023-11-08. https://www.infoworld.com/article/3543072/what-is-osgi-java-modularity-with-the-open-service-gateway-initiative.html ↩
Hargrave, B. J. "Announcement of Transition to Eclipse Foundation". https://blog.osgi.org/2020/10/announcement-of-transition-to-eclipse.html ↩
"OSGi Specification License". Archived from the original on 2015-09-14. Retrieved 2012-05-10. https://web.archive.org/web/20150914021603/http://www.osgi.org/Main/OSGiSpecificationLicense ↩
"OSGi Alliance | Markets / Certified". Archived from the original on 2008-09-25. Retrieved 2017-06-23. https://web.archive.org/web/20080925211558/http://www.osgi.org/Markets/Certified ↩
Creating OSGi bundles by Costin Leau http://blog.springsource.com/2008/02/18/creating-osgi-bundles/ ↩
Diaz Redondo, R. P.; Vilas, A. F.; Cabrer, M. R.; Pazos Arias, J. J.; Lopez, Marta Rey (2007-02-01). "Enhancing Residential Gateways: OSGi Service Composition". IEEE Transactions on Consumer Electronics. 53 (1): 87–95. doi:10.1109/TCE.2007.339507. /wiki/Doi_(identifier) ↩
"OSGi Alliance | About / Members". https://www.osgi.org/About/Members ↩
Hargrave, B. J. "OSGi Core Release 8 is now final and published". https://blog.osgi.org/2020/12/osgi-core-release-8-is-now-final-and.html ↩
"Forrester Names Web Content Management Leaders". CMSWire. 2018-11-16. Retrieved 5 December 2018. https://www.cmswire.com/digital-experience/forrester-names-web-content-management-leaders-aprimo-updates-dam-more-news/ ↩
"Adempiere Branch_GlobalQSS_361". adempiere.com/. Retrieved 27 September 2014. http://www.adempiere.com/Branch_GlobalQSS_361 ↩