OSGi
   HOME

TheInfoList



OR:

OSGi is an open specification and
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
project under the Eclipse Foundation. It is a continuation of the work done by the OSGi Alliance (formerly known as the Open Services Gateway initiative), which was an
open standard An open standard is a standard that is openly accessible and usable by anyone. It is also a common prerequisite that open standards use an open license that provides for extensibility. Typically, anybody can participate in their development due to ...
s organization for
software Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
founded in March 1999. The foundation originally specified and maintained the OSGi standard. The alliance transferred its work to the Eclipse Foundation at the end of 2020. The OSGi specification describes a modular system and a service platform for the
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
programming language that implements a complete and dynamic component model, something that does not exist in standalone Java or VM environments. It has a
service-oriented architecture In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. SOA is a good choice for system integration. By consequence, it is also applied in the field ...
based on micro services each implemented as an extended Java class file archive ( JAR (file format)).


Description

OSGi is built around a
service-oriented architecture In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. SOA is a good choice for system integration. By consequence, it is also applied in the field ...
. 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 package A Java package organizes Java classes into namespaces, providing a unique namespace for each type it contains. Classes in the same package can access each other's package-private and protected members. In general, a package can contain the fo ...
s/
class Class, Classes, or The Class may refer to: Common uses not otherwise categorized * Class (biology), a taxonomic rank * Class (knowledge representation), a collection of individuals or objects * Class (philosophy), an analytical concept used d ...
es 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 phone A mobile phone or cell phone is a portable telephone that allows users to make and receive calls over a radio frequency link while moving within a designated telephone service area, unlike fixed-location phones ( landline phones). This rad ...
s to the open-source Eclipse IDE. Other application areas include
automobile A car, or an automobile, is a motor vehicle with wheels. Most definitions of cars state that they run primarily on roads, Car seat, seat one to eight people, have four wheels, and mainly transport private transport#Personal transport, peopl ...
s, industrial automation,
building automation Building automation (BAS), also known as building management system (BMS) or building energy management system (BEMS), is the automatic centralized control of a building's HVAC, HVAC (heating, ventilation and air conditioning), electrical, light ...
, PDAs,
grid computing Grid computing is the use of widely distributed computer resources to reach a common goal. A computing grid can be thought of as a distributed system with non-interactive workloads that involve many files. Grid computing is distinguished fro ...
,
entertainment Entertainment is a form of activity that holds the attention and Interest (emotion), interest of an audience or gives pleasure and delight. It can be an idea or a task, but it is more likely to be one of the activities or events that have deve ...
, fleet management and
application server An application server is a server that hosts applications or software that delivers a business application through a communication protocol. For a typical web application, the application server sits behind the web servers. An application ser ...
s. In October 2020, the OSGi Alliance announced the transition of the standardization effort to the Eclipse Foundation, subsequent to which it would shut down. All artifacts have been transferred to the Eclipse Foundation, where an “OSGi Working Group" continues to maintain and evolve the specification.


Specification process

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. The OSGi Alliance has a compliance program that is open to members only. As of November 2010, there are seven certified OSGi framework
implementation Implementation is the realization of an application, execution of a plan, idea, scientific modelling, model, design, specification, Standardization, standard, algorithm, policy, or the Management, administration or management of a process or Goal ...
s. A separate page lists both certified and non-certified OSGi Specification Implementations, which include OSGi frameworks and other OSGi specifications.


Architecture

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: ;Bundles:Bundles are normal JAR components with extra manifest headers. ;Services:The services layer connects bundles in a dynamic way by offering a publish-find-bind model for plain old Java interfaces ( POJIs) or
plain old Java object In software engineering, a plain old Java object (POJO) is an ordinary Java object, not bound by any special restriction. The term was coined by Martin Fowler, Rebecca Parsons and Josh MacKenzie in September 2000: The term "POJO" initially den ...
s (POJOs). ;Services Registry:The
application programming interface An application programming interface (API) is a connection between computers or between computer programs. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standard that des ...
for management services. ;Life-Cycle:The
application programming interface An application programming interface (API) is a connection between computers or between computer programs. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standard that des ...
for life cycle management (install, start, stop, update, and uninstall) for bundles. ;Modules:The layer that defines encapsulation and declaration of dependencies (how a bundle can import and export code). ;Security:The layer that handles the security aspects by limiting bundle functionality to pre-defined capabilities. ;Execution Environment:Defines what methods and classes are available in a specific platform. There is no fixed list of execution environments, since it is subject to change as the
Java Community Process The Java Community Process (JCP), established in 1998, is a formal mechanism that enables interested parties to develop standard technical specifications for Java technology. Becoming a member of the JCP requires solid knowledge of the Java program ...
creates new versions and editions of Java. However, the following set is currently supported by most OSGi implementations: :* CDC-1.0/Foundation-1.0 :* CDC-1.1/Foundation-1.1 :*OSGi/Minimum-1.0 :*OSGi/Minimum-1.1 :*JRE-1.1 :*From J2SE-1.2 up to J2SE-1.6


Bundles

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: Bundle-Name: Hello World Bundle-SymbolicName: org.wikipedia.helloworld Bundle-Description: A Hello World bundle Bundle-ManifestVersion: 2 Bundle-Version: 1.0.0 Bundle-Activator: org.wikipedia.Activator Export-Package: org.wikipedia.helloworld;version="1.0.0" Import-Package: org.osgi.framework;version="1.3.0" The meaning of the contents in the example is as follows: # Bundle-Name: Defines a human-readable name for this bundle, Simply assigns a short name to the bundle. # Bundle-SymbolicName: The only required header, this entry specifies a unique identifier for a bundle, based on the reverse domain name convention (used also by the java packages). # Bundle-Description: A description of the bundle's functionality. # Bundle-ManifestVersion: Indicates the OSGi specification to use for reading this bundle. # Bundle-Version: Designates a version number to the bundle. # Bundle-Activator: Indicates the class name to be invoked once a bundle is activated. # Export-Package: Expresses which Java packages contained in a bundle will be made available to the outside world. # Import-Package: Indicates which Java packages will be required from the outside world to fulfill the dependencies needed in a bundle.


Life-cycle

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
/code> interface: package org.wikipedia; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; public class Activator implements BundleActivator


Services


Standard services

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: The table below shows a description of OSGi Protocol Services: The table below shows a description of OSGi Miscellaneous Services:


Organization

The OSGi Alliance was founded by
Ericsson (), commonly known as Ericsson (), is a Swedish multinational networking and telecommunications company headquartered in Stockholm, Sweden. Ericsson has been a major contributor to the development of the telecommunications industry and is one ...
,
IBM International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
,
Motorola Motorola, Inc. () was an American multinational telecommunications company based in Schaumburg, Illinois. It was founded by brothers Paul and Joseph Galvin in 1928 and had been named Motorola since 1947. Many of Motorola's products had been ...
,
Sun Microsystems Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
and others in March 1999. Before incorporating as a nonprofit corporation, it was called the Connected Alliance. Among its members are () more than 35 companies from quite different business areas, for example
Adobe Systems Adobe Inc. ( ), formerly Adobe Systems Incorporated, is an American software, computer software company based in San Jose, California. It offers a wide range of programs from web design tools, photo manipulation and vector creation, through to ...
,
Deutsche Telekom Deutsche Telekom AG (, ; often just Telekom, DTAG or DT; stylised as ·T·) is a partially state-owned German telecommunications company headquartered in Bonn and the largest telecommunications provider in Europe by revenue. It was formed in 199 ...
,
Hitachi () is a Japanese Multinational corporation, multinational Conglomerate (company), conglomerate founded in 1910 and headquartered in Chiyoda, Tokyo. The company is active in various industries, including digital systems, power and renewable ener ...
,
IBM International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
, Liferay, Makewave,
NEC is a Japanese multinational information technology and electronics corporation, headquartered at the NEC Supertower in Minato, Tokyo, Japan. It provides IT and network solutions, including cloud computing, artificial intelligence (AI), Inte ...
, NTT,
Oracle An oracle is a person or thing considered to provide insight, wise counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. If done through occultic means, it is a form of divination. Descript ...
, Orange SA, ProSyst,
Salesforce Salesforce, Inc. is an American cloud-based software company headquartered in San Francisco, California. It provides applications focused on sales, customer service, marketing automation, e-commerce, analytics, artificial intelligence, and ap ...
,
Siemens Siemens AG ( ) is a German multinational technology conglomerate. It is focused on industrial automation, building automation, rail transport and health technology. Siemens is the largest engineering company in Europe, and holds the positi ...
, Software AG and TIBCO Software. 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 (). 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 Nokia Corporation is a Finnish multinational corporation, multinational telecommunications industry, telecommunications, technology company, information technology, and consumer electronics corporation, originally established as a pulp mill in 1 ...
,
Motorola Motorola, Inc. () was an American multinational telecommunications company based in Schaumburg, Illinois. It was founded by brothers Paul and Joseph Galvin in 1928 and had been named Motorola since 1947. Many of Motorola's products had been ...
,
IBM International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
, 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 The Connected Limited Device Configuration (CLDC) is a specification of a Software framework, framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CLDC i ...
cannot manage other than
CDC The Centers for Disease Control and Prevention (CDC) is the national public health agency of the United States. It is a United States federal agency under the Department of Health and Human Services (HHS), and is headquartered in Atlanta, ...
. MEG became part of OSGi as with R4.


Specification versions

* OSGi Release 1 (R1): May 2000 * OSGi Release 2 (R2): October 2001 * OSGi Release 3 (R3): March 2003 * OSGi Release 4 (R4): October 2005 / September 2006 ** Core Specification (R4 Core): October 2005 ** Mobile Specification (R4 Mobile / JSR-232): September 2006 * OSGi Release 4.1 (R4.1): May 2007 (AKA JSR-291) * OSGi Release 4.2 (R4.2): September 2009 ** Enterprise Specification (R4.2): March 2010 * OSGi Release 4.3 (R4.3): April 2011 ** Core: April 2011 ** Compendium and Residential: May 2012 * OSGi Release 5 (R5): June 2012 ** Core and Enterprise: June 2012 * OSGi Release 6 (R6): June 2015 ** Core: June 2015 * OSGi Release 7 (R7): April 2018 ** Core and Compendium: April 2018 * OSGi Release 8 (R8): December 2020


Related standards

* MHP / OCAP * Universal Plug and Play (UPnP) * DPWS *
ITU-T The International Telecommunication Union Telecommunication Standardization Sector (ITU-T) is one of the three Sectors (branches) of the International Telecommunication Union (ITU). It is responsible for coordinating Standardization, standards fo ...
G.hn Gigabit Home Networking (G.hn) is a specification for wired home networking that supports speeds up to 2 Gbit/s and operates over four types of legacy wires: telephone wiring, Coaxial cable, coaxial cables, Power line, power lines and pla ...
* LonWorks *
CORBA The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sy ...
* CEBus * EHS ( KNX) / CECED CHAIN * Java Management Extensions


Projects using OSGi

* Adobe Experience Manager an enterprise
Content Management System A content management system (CMS) is computer software used to manage the creation and modification of digital content ( content management).''Managing Enterprise Content: A Unified Content Strategy''. Ann Rockley, Pamela Kostur, Steve Manning. New ...
* Apache Aries Blueprint Container implementations and extensions of application-focused specifications defined by OSGi Enterprise Expert Group * Apache Sling OSGi-based applications layer for JCR content repositories *
Atlassian Confluence Confluence is a web-based corporate wiki developed by Australian software company Atlassian. Atlassian wrote Confluence in the Java (programming language), Java programming language and first published it in 2004. Confluence Standalone comes ...
and JIRA the plug-in architecture for this enterprise wiki and issue tracker uses OSGi * Business Intelligence and Reporting Tools (BIRT) Project Open source reporting engine *
Cytoscape Cytoscape is an Open-source software, open source bioinformatics software platform for Visualization (graphic), visualizing Metabolic network modelling, molecular interaction networks and integrating with gene expression profiles and other state da ...
an open source bioinformatics software platform (as of version 3.0) * DataNucleus open source data services and persistence platform in service-oriented architectures
DDF
Distributed Data Framework provides free and open-source data integration * Dotcms open source Web Content Management * EasyBeans open source EJB 3 container *
Eclipse An eclipse is an astronomical event which occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ...
open source IDE and rich client platform * iDempiere is an OSGi implementation of the open source ERP Branch GlobalQSS Adempiere361 originally started by Low Heng Sin * Eclipse Virgo open source microkernel-based server constructed of OSGi bundles and supporting OSGi applications *
GlassFish GlassFish is an open-source Jakarta EE platform application server project started by Sun Microsystems, then sponsored by Oracle Corporation, and now living at the Eclipse Foundation and supported by OmniFish, Fujitsu and Payara. The support ...
(v3) application server for enterprise Java applications * Fuse ESB a productized and supported release of ServiceMix 4 * Integrated Genome Browser an open source, desktop GUI for visualizing, exploring, and analyzing genome data * IntelliJ Java IDE and rich client platform with free community edition * JOnAS 5 open source Java EE 5 application server * JOSSO 2 Atricore's open source standards-based Identity and Access Management Platform * Liferay Dxp open source and commercial enterprise Portal platform use OSGi from version 7.x * Lucee 5 open source CFML Web Application Server *
NetBeans NetBeans is an integrated development environment (IDE) for Java (programming language), Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Microsoft Windows, Windows, ...
open source IDE and rich client platform * Nuxeo open source ECM Service Platform * Open Daylight Project Project with the goal of accelerating the adoption of software-defined networking * OpenEJB open source OSGi-enabled EJB 3.0 container that can be run both in standalone or embedded mode * openHAB open source home automation software * OpenWorm open source software simulation of ''C. elegans'', via the dedicated ''Geppetto'' modular platform * Akana API Gateway, Portal and Analytics server from Akana (formerly SOA Software) *
Weblogic Oracle Fusion Middleware (FMW, also known as Fusion Middleware) consists of several software products from Oracle Corporation. FMW spans multiple services, including Java EE and developer tools, integration services, business intelligence, co ...
Oracle Weblogic Application Server * WebSphere Application Server IBM WebSphere Application Server for enterprise Java applications * WebMethods SoftwareAG WebMethods * WildFly Red Hat's WildFly Application Server, formerly JBoss * WSO2 Carbon Base platform for WSO2's enterprise-grade Open source middleware stack * Pentaho -
Business Intelligence Business intelligence (BI) consists of strategies, methodologies, and technologies used by enterprises for data analysis and management of business information. Common functions of BI technologies include Financial reporting, reporting, online an ...
(BI) software that provides
data integration Data integration refers to the process of combining, sharing, or synchronizing data from multiple sources to provide users with a unified view. There are a wide range of possible applications for data integration, from commercial (such as when a ...
, OLAP services, reporting, information dashboards,
data mining Data mining is the process of extracting and finding patterns in massive data sets involving methods at the intersection of machine learning, statistics, and database systems. Data mining is an interdisciplinary subfield of computer science and ...
and extract, transform, load (ETL) capabilities.


Current framework implementations


References


Further reading

* * * * * * * * * * * * * * * * * * *


External links

*
Oredev 2008 - Architecture - OSGi Now and Tomorrow

Eclipse Equinox Article Index
- Articles on an open source OSGi implementation {{authority control 1999 establishments in the United States Articles with example Java code Embedded systems Free software programmed in Java (programming language) Organizations based in California Standards organizations in the United States