The work behind OSGi began in 1999, when embedded systems vendors and networking providers came together to create...
a set of standards for a Java-based service framework that could be remotely managed. But since then the effort has evolved well beyond its embedded system roots into a kind of universal interoperability layer and has shed its original name, Open Services Gateway, leaving the acronym OSGi.
In the beginning, it was seen as a service gateway for home management, telematics, and mobile environments. Now, the industry is starting to expand to serve desktop, enterprise, and mobile integration as well. Every leading enterprise application server provider is using or intends to use OSGi to allow applications to be adapted remotely. Dive in to read some of the latest OSGi news and to learn more about getting started with OSGi.
Tutorials and Background
OSGi emerged out of work to connect home appliances and security systems to the Internet. It has since evolved into a more generic SOA componentized model for connecting a variety of services.
The Open Services Gateway Initiative (OSGi) Alliance is working to realize the vision of a "universal middleware" for service-oriented architecture, according to this technical article penned by two executives of Oracle Corp. They explain that "OSGi also provides a programming model based on SOA.
A high level overview of the basics around OSGi that explains the problems around software complexity and the existing monolithic software approaches. Then it dives into the solution of a set of dynamic modules for Java. Then it dives into the framework, and some of the key features.
This tutorial creates successively more complex OSGi bundles to illustrate most of the features and functionality offered by the OSGi framework. It culminates by demonstrating how the Gravity Service Binder can be used to greatly simplify creating OSGi applications.
A very brief presentation of OSGi that covers the basic architecture, dependency management, service components, instance management, and the execution environment. Very simple examples of implementing a service request provider and a service requester are also provided. It also includes tutorials on adding interceptors, factories and scopes, and extending the component descriptor.
Open Source OSGi container implementations
Knopflerfish is a universal open source OSGi Service Platform. Led and maintained by Makewave, Download the code and documentation here. A professional supported version is also available.
From a code point of view, Equinox is an implementation of the OSGi R4 core framework specification, a set of bundles that implement various optional OSGi services and other infrastructure for running OSGi-based systems. More generally, the goal of the Equinox project is to be a first class OSGi community and foster the vision of Eclipse as a landscape of bundles. As part of this, it is responsible for developing and delivering the OSGi framework implementation used for all of Eclipse. The site includes the framework, bundles, and server.
Felix is a community effort to implement the OSGi R4 Service Platform which includes the OSGi framework and standard services, as well as providing and supporting other interesting OSGi-related technologies. The ultimate goal is to provide a completely compliant implementation of the OSGi framework and standard services and to support a community around this technology. Felix currently implements a large portion of the OSGi release 4 specification, but additional work is necessary for full compliance. Despite this fact, the OSGi framework functionality provided by Felix is very stable. Links to the Felix iPOJO is available in the download section.
The OSGi Alliance is the main organization driving the standards and development of Java. The site links to specifications, work groups, markets and solutions, and news. The group recently announced its tenth anniversary with 100 members and millions of deployments.
At EclipseCon, the Eclipse Foundation formally released Swordfish, an enterprise service bus (ESB) based on OSGi. It joins a host of other open ESBs.
In early 2008, a group lead by Deutsche Post AG began an open-source OSGi initiative for the Eclipse IDE, called Swordfish. In late 2008, Swordfish released an SOA runtime integrated with the Eclipse SOA Tools Project (STP) and the Web Tools Project (WTP). Proponents believe this framework could replace Java EE and even Spring. Ricco Deutscher, CTO at SOPERA GmbH, and one of the leaders of the project said that Swordfish fills the gap between heavyweight SOA component models like Java EE 5, and Spring, which does not allow dynamic deployment or configuration.
In June 2008, the Eclipse foundation announced that Equinox, the OSGi framework added support for new security features, including preferences like storage for sensitive data such as passwords and login credentials using Java encryption mechanisms; and an improved method for using the Java authentication service (JAAS) in Equinox. In addition, the OSGi framework implementation and component model on which the Eclipse RCP and IDE platforms are based features a new provisioning system called P2.
In October, 2008, Iona announced the FUSE ESB 4.0, a commercial version of the Apache ServiceMix open source ESB that support OSGi enabled by provisioning integration components as modules.
Dig Deeper on Migrating from ESBs to microservices