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 the source code, design documents, or content of the product. The open-source model is a decentralized so ...
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 prerequisite to use open license, non-discrimination and extensibility. Typically, anybody can participate in the development. There is no single definitio ...
s organization for
computer software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consist ...
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 (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
programming language that implements a complete and dynamic
component model Component-based software engineering (CBSE), also called component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a give ...
, 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. By consequence, it is also applied in the field of software design where services are provid ...
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. By consequence, it is also applied in the field of software design where services are provid ...
. Applications or components, come in the form of
bundle Bundle or Bundling may refer to: * Bundling (packaging), the process of using straps to bundle up items Biology * Bundle of His, a collection of heart muscle cells specialized for electrical conduction * Bundle of Kent, an extra conduction path ...
s for
deployment Deployment may refer to: Engineering and software Concepts * Blue-green deployment, a method of installing changes to a web, app, or database server by swapping alternating production and staging servers * Continuous deployment, a software e ...
, can be remotely installed, started, stopped, updated, and uninstalled without requiring a reboot. Management of Java packages/
class Class 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 differently ...
es is specified in great detail. Application life cycle management is implemented via APIs that enable remote
downloading In computer networks, download means to ''receive'' data from a remote system, typically a server such as a web server, an FTP server, an email server, or other similar system. This contrasts with uploading, where data is ''sent to'' a r ...
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, cellular phone, cell phone, cellphone, handphone, hand phone or pocket phone, sometimes shortened to simply mobile, cell, or just phone, is a portable telephone that can make and receive calls over a radio frequency link whi ...
s to the open-source
Eclipse IDE Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, ...
. Other application areas include
automobile A car or automobile is a motor vehicle with wheels. Most definitions of ''cars'' say that they run primarily on roads, seat one to eight people, have four wheels, and mainly transport people instead of goods. The year 1886 is regarded ...
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 (heating, ventilation and air conditioning), electrical, lighting, ...
,
PDA PDA may refer to: Science and technology * Patron-driven acquisition, a mechanism for libraries to purchase books *Personal digital assistant, a mobile device * Photodiode array, a type of detector * Polydiacetylenes, a family of conducting po ...
s,
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 from ...
,
entertainment Entertainment is a form of activity that holds the attention and interest of an audience or gives pleasure and delight. It can be an idea or a task, but is more likely to be one of the activities or events that have developed over thousa ...
,
fleet management Fleet management is the management of: * Commercial motor vehicles such as cars, vans, trucks, specialist vehicles (such as mobile construction machinery), forklifts, and trailers * Private vehicles used for work purposes (the 'grey fleet') * Avi ...
and
application server An application server is a server that hosts applications or software that delivers a business application through a communication protocol. An application server framework is a service layer model. It includes software components available to a ...
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 Compliance can mean: Healthcare * Compliance (medicine), a patient's (or doctor's) adherence to a recommended course of treatment * Compliance (physiology), the tendency of a hollow organ to resist recoil toward its original dimensions (this is a ...
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, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy. Industry-specific definitions Computer science In computer science, an implementation is a real ...
s. A separate page lists both certified and non-certified
OSGi Specification Implementations The OSGi framework is a standardized module system and service platform for the Java programming language. The OSGi standards are defined in thOSGi Specification Project at Eclipseand published in OSGi specification documents such as the Core and Co ...
, 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 objects (POJOs). ;Services Registry:The
application programming interface An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
for management services. ;Life-Cycle:The
application programming interface An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
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 formalized mechanism that allows interested parties to develop standard technical specifications for Java technology. Anyone can become a JCP Member by filling a form available at thJCP w ...
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 An interface in the Java programming language is an abstract type that is used to describe a behavior that classes must implement. They are similar to protocols. Interfaces are declared using the interface keyword, and may only contain method sig ...
. 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 (lit. "Telephone Stock Company of LM Ericsson"), commonly known as Ericsson, is a Swedish multinational networking and telecommunications company headquartered in Stockholm. The company sells infrastructure, software, and services in inform ...
, IBM,
Motorola Motorola, Inc. () was an American multinational telecommunications company based in Schaumburg, Illinois, United States. After having lost $4.3 billion from 2007 to 2009, the company split into two independent public companies, Motorola ...
,
Sun Microsystems Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, t ...
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. ( ), originally called Adobe Systems Incorporated, is an American multinational computer software company incorporated in Delaware and headquartered in San Jose, California. It has historically specialized in software for the cre ...
,
Deutsche Telekom Deutsche Telekom AG (; short form often just Telekom, DTAG or DT; stylised as ·T·) is a German telecommunications company that is headquartered in Bonn and is the largest telecommunications provider in Europe by revenue. Deutsche Telekom was ...
,
Hitachi () is a Japanese multinational conglomerate corporation headquartered in Chiyoda, Tokyo, Japan. It is the parent company of the Hitachi Group (''Hitachi Gurūpu'') and had formed part of the Nissan ''zaibatsu'' and later DKB Group and Fuyo G ...
, IBM, Liferay, Makewave,
NEC is a Japanese multinational information technology and electronics corporation, headquartered in Minato, Tokyo. The company was known as the Nippon Electric Company, Limited, before rebranding in 1983 as NEC. It provides IT and network soluti ...
, NTT,
Oracle An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The word ...
, Orange SA, ProSyst, Salesforce,
Siemens Siemens AG ( ) is a German multinational conglomerate corporation and the largest industrial manufacturing company in Europe headquartered in Munich with branch offices abroad. The principal divisions of the corporation are ''Industry'', ''E ...
,
Software AG Founded in 1969, Software AG is an enterprise software company with over 10,000 enterprise customers in over 70 countries. The company is the second largest software vendor in Germany, and the seventh largest in Europe. Software AG is traded on t ...
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 (natively Nokia Oyj, referred to as Nokia) is a Finnish multinational telecommunications, information technology, and consumer electronics corporation, established in 1865. Nokia's main headquarters are in Espoo, Finland, i ...
,
Motorola Motorola, Inc. () was an American multinational telecommunications company based in Schaumburg, Illinois, United States. After having lost $4.3 billion from 2007 to 2009, the company split into two independent public companies, 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 The Connected Limited Device Configuration (CLDC) is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CLDC is combined with one ...
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, and is headquartered in Atlanta, Georg ...
. 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 Universal Plug and Play (UPnP) is a set of networking protocols that permits networked devices, such as personal computers, printers, Internet gateways, Wi-Fi access points and mobile devices to seamlessly discover each other's presence on the ...
(UPnP) * DPWS *
ITU-T The ITU Telecommunication Standardization Sector (ITU-T) is one of the three sectors (divisions or units) of the International Telecommunication Union (ITU). It is responsible for coordinating standards for telecommunications and Information Co ...
G.hn G.hn is a specification for home networking with data rates up to 2 Gbit/s and operation over four types of legacy wires: telephone wiring, coaxial cables, power lines and plastic optical fiber. A single G.hn semiconductor device is able to n ...
* LonWorks * CORBA * CEBus * EHS ( KNX) / CECED
CHAIN A chain is a serial assembly of connected pieces, called links, typically made of metal, with an overall character similar to that of a rope in that it is flexible and curved in compression but linear, rigid, and load-bearing in tension. ...
*
Java Management Extensions Java Management Extensions (JMX) is a Java technology that supplies tools for managing and monitoring applications, system objects, devices (such as printers) and service-oriented networks. Those resources are represented by objects called MBea ...


Projects using OSGi

*
Adobe Experience Manager Adobe Experience Cloud (AEC), formerly Adobe Marketing Cloud (AMC), is a collection of integrated online marketing and web analytics products by Adobe Inc. History Adobe Experience Cloud includes a set of analytics, social, advertising, medi ...
- 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 Apache Aries, a Blueprint Container implementations and extensions of application-focused specifications defined by OSGi Enterprise Expert Group. The project aims to deliver a set of pluggable Java components enabling an enterprise OSGi applicati ...
- 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 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 bioinformatics software platform for visualizing molecular interaction networks and integrating with gene expression profiles and other state data. Additional features are available as plugins. Plugins are available fo ...
- 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 dotCMS is an open source content management system (CMS) written in Java for managing content and content driven sites and applications. Architecture * Java based * API Based Content Store * Hybrid CMS (API First CMS) * Provides " Content as ...
- open source Web Content Management * EasyBeans - open source EJB 3 container *
Eclipse An eclipse is an astronomical event that 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 c ...
- open source IDE and rich client platform *
iDempiere iDempiere. Community Powered Enterprise, also known as OSGi + ADempiere, is an open source Enterprise Resource Planning (ERP) software that is fully navigable on PCs, tablets and smartphones, it also has customer relationship management (CRM) and ...
- 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 (v3) - application server for Java EE *
Fuse ESB Red Hat Fuse is an open source integration platform based on Apache Camel. It is a distributed integration platform that provides a standardized methodology, infrastructure, and tools to integrate services, microservices, and application compo ...
- a productized and supported release of ServiceMix 4. *
Integrated Genome Browser Integrated Genome Browser (IGB) (pronounced Ig-Bee) is an open-source genome browser, a visualization tool used to observe biologically-interesting patterns in genomic data sets, including sequence data, gene models, alignments, and data from DNA ...
- an open source, desktop GUI for visualizing, exploring, and analyzing genome data * IntelliJ - Java IDE and rich client platform with free community edition *
JBoss WildFly, formerly known as JBoss AS, or simply JBoss, is an application server written by JBoss, now developed by Red Hat. WildFly is written in Java and implements the Java Platform, Enterprise Edition (Java EE) specification. It runs on mu ...
- Red Hat's JBoss Application Server *
JOnAS Jonas may refer to: Geography * Jonas, Netherlands, Netherlands * Jonas, Pennsylvania, United States * Jonas Ridge, North Carolina, United States People with the name * Jonas (name), people with the given name or surname Jonas * Jonas, one of ...
5 - open source Java EE 5 application server *
JOSSO Java Open Single Sign On (JOSSO) is an open source Identity and Access Management (IAM) platform for rapid and standards-based Cloud-scale Single Sign-On, web services security, authentication and provisioning. See also * Shibboleth (Internet2 ...
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 - open source IDE and rich client platform * Nuxeo - open source
ECM ECM may refer to: Economics and commerce * Engineering change management * Equity capital markets * Error correction model, an econometric model * European Common Market Mathematics * Elliptic curve method * European Congress of Mathemat ...
Service Platform *
Open Daylight Project The OpenDaylight Project is a collaborative open-source project hosted by the Linux Foundation. The project serves as a platform for software-defined networking (SDN) for open, centralized, computer network device monitoring. History On Apr ...
- Project with the goal of accelerating the adoption of
software-defined networking Software-defined networking (SDN) technology is an approach to network management that enables dynamic, programmatically efficient network configuration in order to improve network performance and monitoring, making it more like cloud computing t ...
* 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 Akana is a provider of computer software products for application programming interface (API) management. The company was founded as Digital Evolution and was later known as SOA Software. In November 2016, Akana was acquired by Rogue Wave Softwar ...
- API Gateway, Portal and Analytics server from Akana (formerly SOA Software) * Weblogic - Oracle Weblogic Application Server *
WebSphere IBM WebSphere refers to a brand of proprietary computer software products in the genre of enterprise software known as "application and integration middleware". These software products are used by end-users to create and integrate applications ...
- IBM Websphere JEE Application Server *
WebMethods webMethods was an enterprise software company focused on application integration, business process integration and B2B partner integration. Founded in 1996, the company sold systems for organizations to use web services to connect software app ...
- SoftwareAG WebMethods *
WSO2 Carbon WSO2 Carbon is the core platform on which WSO2 middleware products are built. It is based on Java OSGi technology, which allows components to be dynamically installed, started, stopped, updated, and uninstalled, and it eliminates component version ...
- Base platform for WSO2's enterprise-grade Open source middleware stack


Current framework implementations


See also

*
OSGi Specification Implementations The OSGi framework is a standardized module system and service platform for the Java programming language. The OSGi standards are defined in thOSGi Specification Project at Eclipseand published in OSGi specification documents such as the Core and Co ...


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 Standards organizations in the United States Articles with example Java code Free software programmed in Java (programming language) 1999 establishments in the United States Embedded systems Organizations based in California