OSGi

The OSGi Alliance to modularize (formerly Open Services Gateway initiative) specifies a hardware-independent dynamic software platform that facilitates their applications and services via component model ( " bundle " / "Service") and to manage ( " Service Registry "). The OSGi platform requires a Java Virtual Machine ( JVM) and provides building on the OSGi framework.

From OSGi now exist several generations, all of which were specified by the OSGi Alliance, an industry consortium. The alliance consists of large companies such as IBM, German Telekom, NTT and Oracle, but also from many smaller companies, and others from the open source software field. The commonly defined OSGi standard, therefore, is open to all interested parties, and there is also a correspondingly liberal patent laws work.

The OSGi Alliance itself here specifies only the application programming interfaces ( APIs) and test cases for OSGi implementations by third parties and is within the limits of a reference implementation. This is not intended for production use, but only serves as a template for both commercial and OSS alternatives.

The as a result, non-proprietary, generic OSGi software platform can be used to control or networking of all types of devices - for example in the automotive industry, mobile phones, in building automation, intelligent remote control of home appliances or in the " Assisted Living". Especially in the home gateway principle plays an important role, that is, here is often not directly an OSGi Framework installed on the respective devices, but on so-called residential gateways - they can be understood as an embedded system ( comparable to a DSL router) individual devices to access provides certain services or permits from outside the abstract access to specific devices. In other OSGi frameworks come in cars and mobile phones are used - here they run without additional gateway directly on the powerful embedded hardware.

The specification of the OSGi Service Platform defines a Java - based run- time environment above the JVM and its basic services. An important feature of the service platform is the ability to dynamically and controlled service applications (called bundles) einzuspielen at runtime and - most importantly - also to update and remove. The model of the OSGi service platform is thus the possibility to have several largely independent and modular parallel applications running in the same virtual machine and manage it during the entire life cycle of the application ( remotely ) and update it. In this case, dependencies between bundles are resolved automatically, and an intelligent version management is available.

The individual implementations of the respective manufacturers usually consist of the OSGi framework and ideally a large number of service bundles (packages) that can also be added dynamically due to the modular architecture.

Definition: the OSGi framework

An OSGi Framework is an open, modular and scalable "Service Delivery Platform " based on Java technology. It is a component model with component registry ( = " service registry "). The "service" term often falls in the OSGi context, it is hardly about the general " interface " concept of a component addition.

While service-oriented architectures require a paradigm for enterprise-wide structuring of system landscapes location transparency and access transparency, the possibilities for programming distributed systems is not an integral part of the OSGi framework, which has its origin in embedded systems. In the OSGi framework, the component ( = " bundle " ) is in the foreground ( = "Service Registry" ) publishes its interface ( = "Service") via the registry JVM locally and support the Re / deployment with the component life cycle. The OSGi framework to be used as underlying components of an SOA model in a Java environment still is ultimately possible.

It allows in its manifestation as a software - based platform for embedded devices, the interconnection of smart devices by subsequent delivery and installation of Web services at run time. This therefore includes the task of the classic remote control, remote diagnosis and maintenance of these devices with a. Furthermore, the distribution of information and multimedia entertainment content to be delivered to these devices via appropriate protocols.

By its nature as an application container in the enterprise space, it allows the implementation of a SOA platform through their respective fine-grained service-based Java specifications. The applications running on each client applications can also be administered via remote management via appropriate protocols.

OSGi in JCP

OSGi has since been called " JSR 291: Dynamic Component Support for Java SE" adopted under the Java Community Process (JCP ) as an official dynamic component model for Java - next to " JSR 232: Mobile Operational Management", located on the mobile environment under Java ME refers. JSR -232 (or JSR -232, 246, 248 /9) corresponds with the R4 Mobile Specification (MEG ) and JSR -291 corresponds to OSGi R4.1. Furthermore, there are substantive points of contact with JSR -277 and JSR - 294.

Application Examples

The use of OSGi is typically carried in vehicles ( telematics), mobile devices (mobile phones, PDAs) and in the area of ​​home ( residential gateways, routers ) - there again in the areas of Smart Grid, Assisted Living or the building management ( facility management). In addition, it also comes in industrial automation solutions or completely different type of embedded systems ( aviation, parking systems, etc. ) are used, often in combination with matching remote management solutions.

One of the newer areas of application of OSGi is the Integrated Development Environment (IDE ) Eclipse where OSGi in the form of the Equinox framework assumes the role of a more desktop - and enterprise- oriented platform, while the relatively new rich client served ( RCP) paradigm. Eclipse was originally developed by the OSGi Member IBM - now Eclipse is an open source (OSS ), and plug-ins for Eclipse ( since version 3) OSGi bundles. Eclipse itself is thus an example of an enterprise application of OSGi, which goes beyond the original embedded orientation - this has by implication also impact on the further development of the specification.

Furthermore, OSGi is used today for modularizing Java ( J2EE) -based application servers, where it serves as the basis of more complex frameworks.

Using various activities in the Java Community Process (JSR -232, 246 and 248 /9), the responsible among other things were controlled by Nokia and Motorola, OSGi also found as part of a " Mobile Service Architecture " (MSA ) moving into mobile phones. For this purpose, it has been specially adapted for the needs in these environments and integrated with standards such as OMA -DM. This development, however, is outdated in this form for Android and HTML5.

In the broadband sector already combine many products a client-side OSGi framework (possibly with integrated TR -069 client) with an OSGi remote management server (or a conventional TR -069 ACS) on the one hand, the remote configuration and administration of hochbandbreitigem end-user equipment ( to combine, for example, DSL router, set-top boxes, smart meter gateways, smart home gateways, energy management gateways, etc. ) and on the other hand, the management of local apps in a holistic end - to-end solution. As an alternative protocol for the telematics range applies the analogy for OMA DM -based solutions.

By standardizing as generic Java extension (JSR -291 ) on the one hand and by working with the HGI ( Home Gateway Initiative ), further new applications in embedded environment are to be expected. The Enterprise rail in turn is operated by increased interest among providers of application servers or the RCP-/Eclipse-Umfeld.

The OSGi website lists numerous other examples.

Classification: OSGi & system layers

  • The figure shows the layer structure of a typical OSGi architecture.
  • Server in this context means usually a classic embedded system, not necessarily an Enterprise Server or Desktop Client (RCP ) - although OSGi evolved in this direction, see Eclipse and Equinox.

Organization

Established was the OSGi Alliance 1999. Include your over 100 companies from various industries. These industries are within the organization, operated by various working groups, the so-called "expert groups", all of which contribute to the further specification of the standard and help the fact that the standard can be used across industries. The membership is made between "Full Members", " adopters " and " Supporters ".

The Alliance is led by a Board of Directors (Board of Directors ), which is elected annually by its full members. In addition to the company representatives, who are elected as " directors", there are some " officers" who take over certain tasks within the Board on and input to the Board.

On the commercial level, in various committees ( Committee ) worked together, while technical issues - such as the development of the specification, from Release 1 through 2 and 3 to version 4 - are driven by the various working groups. At present there are (as of January 2008) Expert Groups in the areas of Residential, Enterprise, Mobile, Vehicle, and Core Platform.

Board of Directors

Composition of the "Board of Directors" in alphabetical order ( by companies represented ) (March 2011):

  • Hans -Werner Bitzer, German Telekom
  • Dan Bandera, IBM Corporation
  • Ryutaro Kawamura, NTT
  • Anish Karmarkar, Oracle Corporation
  • Richard Nicholson, Paremus
  • Jaime Merrit, Progress Software
  • Susan Black, ProSyst Software
  • Radoslav Nicolov, SAP
  • Prasad Yendluri Software AG
  • Peter Cooper -Ellis, SpringSource
  • Stan Moyer, Telcordia Technologies

Specification

The current OSGi specification is called " OSGi Service Platform Release 5 ", addressed J2ME/CDC Java platforms, and is available - including older versions and Errata - on the OSGi web site:

  • 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
  • Core extensions (R4 Compendium ): October 2005
  • Mobile specification (R4 Mobile / JSR -232): September 2006
  • Core specification ( R4.2 Core): September 2009
  • Core extensions ( R4.2 Compendium ): September 2009
  • Enterprise Extensions ( R4.2 Enterprise) March 2010
  • Core specification ( R4.3 Core): April 2011
  • Core extensions ( R4.3 Compendium ) of May 2012
  • Residential specification ( R4.3 Residential ) of May 2012
  • Core specification (R5 Core): March 2012
  • Enterprise Extensions ( R5 Enterprise): March 2012

The OSGi Alliance itself specifies only the execution environment, the APIs and test cases for OSGi implementations by third parties - and is within the limits of a reference implementation.

OSGi framework

The reference implementation of the OSGi Alliance is not intended for production use, but only serves as a template for other implementations.

Production -grade OSGi frameworks are available from various suppliers, both as free, free, open - source solutions, on the other hand, as commercial products. Both options have advantages and disadvantages.

Commercial or closed source OSGi framework

Commercial or closed-source frameworks are usually certified, more application- based aligned (or been optimized ) and include not only the actual framework usually more optional software packages - the latter often form the basis for customer- specific contract work, which also extends into application specific optimized Framework can be reflected variants ( eg for the mobile area). The extent to which the non-availability of the source code has drawbacks here is different weights in each individual case, especially since often access is enabled via disclosure agreements.

Commercial R4 certified OSGi Service Platforms ( frameworks) are as follows ( as of February 2010 ):

  • ProSyst Software mBedded Server
  • Make Knopflerfish Wave Pro
  • Samsung OSGi R4 Solution
  • HitachiSoft SuperJ Engine Framework
  • KT OSGi Service Platform ( KOSP )

Open Source OSGi framework

Open - source frameworks are application- based aligned generally less - or, conversely, strongly focused on a specific application (see Equinox ) and / or dominated by a single company that has decoupled its former commercial product in this way, or from the beginning as OSS product maintains. Partly also upgraded OSS solutions are sold commercially. The extent to which the source code availability provides benefits here will be weighted differently in each case.

List of OSS OSGi framework:

  • Equinox - driven by Eclipse (Enterprise )
  • MBedded Server Equinox Edition - OSS product ProSyst on the Equinox framework of Eclipse ( with additional features) based
  • Oscar - originally academic project, is now further developed as Apache Felix
  • Apache Felix - Community project of the Apache Software Foundation
  • Knopflerfish - originally a commercial embedded product of gate Space
  • Concierge - lightweight OSGi implementation for mobile and embedded systems
  • Jadabs - rudimentary approach, quote: " A dynamic lightweight container for small devices in a distributed environment"
  • Native OSGi - Implementation in C / C

Enterprise / Application Server

  • Spring Dynamic Modules - by SpringSource (now VMWare ), is now continued as Gemini Blueprint Eclipse
  • Gemini Blueprint - Eclipse
  • WebSphere Application Server - IBM, via JSR -291, as a Feature Pack for OSGi Applications
  • WebSphere Application Server Community Edition free license. - IBM, via JSR -291, as a Feature Pack for OSGi Applications
  • BEA WebLogic - BEA, via micro service architecture, has now been acquired by Oracle
  • GlassFish - Sun, later acquired by Oracle
  • Wildfly - JBoss and RedHat

Others

  • Eclipse - generic IDE of the Eclipse Foundation
  • Nuxeo Enterprise Platform - Content Management System

Complementary standards

  • MHP / OCAP
  • UPnP
  • HomePlug
  • Local Operating Network ( LON)
  • CORBA
  • CEBus
  • EHS / Ceced CHAIN
  • TR -069

Credentials

Developer information of the OSGi

Enterprise Frameworks

  • Spring - OSGi Specification - OSGi services in Spring J2EE Framework

Relevant RFCs and Java standards

  • RFC 2608 (Service Location Protocol)
  • Sun JINI ™ (Java Intelligent Network Infrastructure)
  • Sun JCP JSR -277 (Java Module System)
  • Sun JCP JSR -232 ( Mobile Operational Management - OSGi R4 MEG)
  • Sun JCP JSR -246 ( Device Management API)
  • Sun JCP JSR -249 ( Mobile Service Architecture for CDC)
  • Sun JCP JSR -291 (Dynamic Component Support for Java SE - OSGi R4.1 )
621830
de