OSGi
From Wikipedia, the free encyclopedia
OSGi Service Platform | |
Developer: | OSGi Alliance |
---|---|
Latest release: | 4.0.1 / July 2006 |
OS: | Java |
Use: | standards organization |
License: | OSGi Specification License |
Website: | www.osgi.org |
The OSGi Alliance (formerly known as the Open Services Gateway initiative) is an open standards organization founded in March 1999. Over the past few years it has specified a Java-based service platform that can be remotely managed. The core part of the specifications is a framework that defines an application life cycle model and a service registry. Based on this framework, a large number of OSGi Services have been defined: Log, Configuration management, Preferences, Http Service (runs servlets), XML parsing, Device Access, Package Admin, Permission Admin, Start Level, User Admin, IO Connector, Wire Admin, Jini, UPnP Exporter, Application Tracking, Signed Bundles, Declarative Services, Power Management, Device Management, Security Policies, Diagnostic/Monitoring and Framework Layering.
[edit] OSGi Framework Scope
The Framework implements a complete and dynamic component model - something that is missing in standalone Java/VM environments. Applications or components (coming 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. Life cycle management is done via APIs which allow for remote downloading of management policies. The service registry allows bundles to detect new services, or the going away of services, and adapt accordingly.
The original focus was on service gateways but the applicability turned out to be much wider. The OSGi specifications are now used in applications ranging from mobile phones to the open source Eclipse IDE. Other application areas include cars, industrial automation, building automation, PDAs, grid computing, entertainment(e.g. iPronto), fleet management and application servers.
[edit] 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 January 2007, the list of certified OSGi implementations contains 3 entries.
[edit] Organization
The Alliance has been founded by Sun Microsystems, IBM, Ericsson and others in March 1999 (after it was first called the Connected Alliance).
Among its members are (as of April 2006) more than 35 companies from quite different business areas, for example Nokia, Motorola, Philips, BenQ, Siemens VDO Automotive, Telefonica, BMW, Gatespace Telematics, ProSyst, Samsung Electronics and Deutsche Telekom.
The Alliance has a Board of Directors for the respective working areas. For each area there also are so-called Officers. On the commercial side cooperation takes place in different committees, while technical issues - like developing the specification further, from Release 1 over 2 and 3 to R4 - is handled by the existing Expert Groups.
There are dedicated Expert Groups for the areas Mobile, Vehicle and Core Platform. A new group (EEG) is planned to address Enterprise side applications.
[edit] Community
In October 2003, Nokia, Motorola, 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.
Also in 2003 Eclipse selected OSGi as the underlying runtime for the plug-in architecture used for the Eclipse Rich Client Platform and the IDE platform. Eclipse itself includes sophisticated tooling for developing OSGi bundles and there are a number of other Eclipse plug-ins aimed at supporting OSGi behaviour (e.g. both ProSyst and Knopflerfish have Eclipse plug-ins available specifically for OSGi developers).
There is a vibrant free software community revolving around the OSGi specifications. See Equinox OSGi, Apache Felix and Knopflerfish OSGi.
[edit] 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
[edit] New in OSGi Release 4
The new features of OSGi R4 in brief are as follows :
- Powerful new modularization capabilities providing enhanced encapsulation of networked services that can share a single VM.
- Modularized class sharing and hiding of implementation details.
- Advanced handling of multiple versions of the same classes so old and new applications can execute within the same VM.
- Localization of OSGi bundle manifests enabling service deployment anywhere.
- Enhancements in security and policies: The new Conditional Permission Admin service provides an elegant and simple way to manage networked services securely. It also supports dynamic policies that can depend on external (custom) conditions. Combined with R4 support for digital signatures, this provides a central security solution to large deployments of products using the OSGi Service Platform.
- A Declarative Services specification that addresses memory footprint issues that can prevent small embedded devices from using a service oriented architecture to support multiple applications. Additionally, it significantly simplifies the service-oriented programming model by declaratively handling the dynamics of services.
- Compatibility with Release 3, requiring no changes for existing OSGi bundles, applications, or services.
[edit] Guidance and Information Exchange
- Frequently Asked Questions
- ProSyst - Access to supported Open Source and Commercial OSGi implementations as well as to 100+ inhouse OSGi developers, seminars, trainings, consulting and custom development services
- aQute: OSGi Info - Information about OSGi and access to seminars
- OSGi Users' Forums - Japan, Korea, France, Spain, and soon : Italy, Germany
[edit] Vendors and Implementations
- IBM Lotus Expeditor (formerly IBM WebSphere Everyplace Deployment) - Complete end to end platform enabling OSGi developers to build configurable, disconnectable, managed, applications and services for desktop, mobile, and embeddable clients delivering web, ajax, and/or rich user interfaces
- BEA posted Press Release which microService Architecture (aka mSA) will be built on top of OSGi
- ProSyst Software - One stop shop for OSGi solutions/components: Open Source and commercial framework implementations, ready-to-use bundles for mobile, smart home, telematics and industrial embedded devices, OSGi for enterprise application vendors, ready-to-run and easy to integrate remote management system, and a complete set of services including training, support, consulting and development services (100+ inhouse OSGi developers)
- Knopflerfish OSGi - Open Source OSGi implementation under BSD license
- Gatespace Telematics - Leading OSGi vendor, provides Knopflerfish Pro, the fully supported version of open source Knopflerfish.
- Equinox OSGi - Open Source OSGi implementation under EPL license
- Objectweb Oscar: An OSGi framework implementation - Open Source OSGi framework implementation under BSD license (development moved to Apache Felix)
- Apache Felix: - Open Source OSGi framework (previously Objectweb Oscar, build using Maven 2.0).
- Concierge OSGi - Lightweight Open Source implementation under BSD license, ideal for mobile and embedded systems.
- Oxygen Project
- Jadabs - A dynamic lightweight container for small devices in a distributed environment
- osxa - Open Source OSGi implementation under EPL license
- R-OSGi Project - Lightweight OSGi extension for discovering and accessing distributed services.
- Newton - Open Source OSGi based distributed component framework
- Infiniflow - OSGi based Distributed Service Platforms for SOA Applications
- Spring-OSGi - Spring - OSGi integration
- Bundles repositories : OSGi Alliance, Oscar v1 and v2, Knopflerfish
[edit] Related RFCs and Java Standards
- RFC-2608 (Service Location Protocol)
- Sun JINI™ (Java Intelligent Network Infrastructure)
- Sun JCP JSR-8 (Open Services Gateway Specification)
- Sun JCP JSR-232 (Mobile Operational Management)
- Sun JCP JSR-246 (Device Management API)
- Sun JCP JSR-249 (Mobile Service Architecture for CDC)
- Sun JCP JSR-277 (JavaTM Module System)
- Sun JCP JSR-291 (Dynamic Component Support for JavaTM SE)
[edit] Related Technology Standards
- MHP / OCAP
- Universal Plug and Play (UPnP)
- Universal Powerline Association
- HomePlug
- LonWorks
- CORBA
- CEBus
- EHS / CECED CHAIN
- X10
- Java Management Extensions
[edit] Blogs
- OSGi Blog - blog of the official "OSGi Evangelist"
- Fun with OSGi - A blog about OSGi bundle development etc.
- aQute OSGi Technologies - A blog about OSGi and Java technology
- ProSyst OSGi Technologies - A blog about Embedded & Enterprise OSGi, Mobile Java and Eclipse eRCP/RCP technology
[edit] Books
- OSGi Service Platform, Release 3, IOS Press, ISBN 1-58603-311-5
[edit] See also
[edit] External links
- Gatespace Telematics
- OSGi web site General Information
- Specification Download
- OSGi Alliance Developer Site
- Javadoc for Release 4
- OSGi Tutorial: A Step by Step Introduction to OSGi Programming Based on Knopflerfish
- Getting started with OSGi: tutorials from EclipseZone
- Belgian Java User Group video presentation on Spring OSGi by Costin Leau
- OSGi and Gravity Service Binder Tutorial
- TheServerSide.com Article about Eclipse Equinox and OSGi
- Understanding how Eclipse plug-ins work with OSGi
- Explore Eclipse's OSGi console
- ApacheCon EU 2006 presentation about OSGi best practices by Marcel Offermans.
- Enterprise OSGi Professional Services (www.4enterprise.org)
- Embedded OSGi, Enterprise OSGi, Professional Services (www.prosyst.com)