Zum Inhalt springen

OSGi

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 11. Juli 2007 um 14:17 Uhr durch 195.14.248.49 (Diskussion) (Spezifikation). Sie kann sich erheblich von der aktuellen Version unterscheiden.
OSGi Service Platform
Basisdaten

Entwickler OSGi Alliance
Erscheinungsjahr Mai 2000[1][2]
Aktuelle Version 4.0.1
(September 2006)
Betriebssystem Java
Programmier­sprache Java
Kategorie Standard
Lizenz OSGi Specification License
www.osgi.org

Die OSGi Alliance (Open Services Gateway Initiative) ist ein Non-Profit-Industriekonsortium, bestehend unter anderem aus IBM, Nokia und Oracle, das verschiedene Generationen einer hardwareunabhängigen SOA-Softwareplattform entwickelt hat, auf der Anwendungen und Dienste ausgeführt werden können.

Diese Plattform setzt eine Java Virtual Machine (JVM) voraus und installiert sich dort als offene Serviceplattform, das OSGi-Framework. Die OSGi Alliance selbst spezifiziert hierbei lediglich die APIs und Testfälle für OSGi-Implementierungen von dritter Seite und stellt im Rahmen dessen auch eine Referenzimplementierung zur Verfügung. Diese ist nicht für den Produktiveinsatz gedacht, sondern dient lediglich als Vorlage für kommerzielle und OSS-Alternativen.

Die im Ergebnis herstellerunabhängige, generische OSGi-Softwareplattform kann zur Vernetzung aller Arten von Geräten eingesetzt werden – z. B. mit dem Ziel der intelligenten Fernsteuerung von Hausgeräten (Audio/Video-Equipment, "Weiße Ware"), d. h. zur Hausautomatisierung. Dies geschieht allerdings in der Regel nicht durch Installation eines OSGi-Frameworks auf den jeweiligen Geräten, sondern durch Einsatz sogenannter Residential Gateways. Diese können verstanden werden als eine Art eingebetteter Systeme, vergleichbar mit einem DSL-Router. In der gleichen Art und Weise kommen OSGi-Frameworks bzw. OSGi-Gateways in Autos und Mobiltelefonen zum Einsatz – hier laufen sie auf der ohnehin vorhandenen, leistungsfähigen eingebetteten Hardware.

Die Spezifikation der OSGi Service Platform definiert eine Java-basierte Laufzeitumgebung oberhalb der JVM und deren Basisdiensten. Ein bedeutendes Merkmal der Service-Plattform ist die Möglichkeit, dynamisch und kontrolliert Service-Anwendungen (sog. Bundles) zur Laufzeit einspielen und – vor allem – auch wieder entfernen zu können. Das Modell der OSGi-Service-Plattform gibt damit die Möglichkeit, verschiedene weitgehend unabhängige und modulare Anwendungen parallel in derselben virtuellen Maschine laufen zu lassen und diese während des gesamten Lebenszyklus der Anwendung (fern-) zu administrieren bzw. zu aktualisieren.

Die einzelnen Implementierungen der jeweiligen Hersteller bestehen meist aus dem OSGi-Framework und idealerweise einer großen Anzahl von Service-Bundles (Packages), die aufgrund der modularen Architektur ebenfalls dynamisch hinzugefügt werden können.

Definition: OSGi Framework

Ein OSGi-Framework ist eine offene, modulare und skalierbare „Service Delivery Plattform“ auf Java-Basis, die dem Idealmodell einer Service Oriented Architecture (SOA) entspricht.

Sie ermöglicht in ihrer Ausprägung als Software-Basisplattform für eingebettete Geräte die Vernetzung von intelligenten Endgeräten durch nachträgliche Auslieferung und Installation von Diensten zur Laufzeit. Dies schließt somit die Aufgabe der klassischen Fernsteuerung, Ferndiagnose und -wartung dieser Geräte mit ein. Weiterhin wird die Verteilung von Informationen und multimedialen Unterhaltungsinhalten an diese Geräte über geeignete Protokolle ermöglicht.

In ihrer Ausprägung als Applikationscontainer im Enterprise-Bereich ermöglicht sie die Realisierung einer SOA-Plattform über ihre entsprechenden feingranularen service-orientierten Java-Spezifikationen. Die auf den einzelnen Clients laufenden Anwendungen können gleichfalls per Remote Management über geeignete Protokolle administriert werden.

Elemente einer SOA, nach Dirk Krafzig, Karl Banke, and Dirk Slama. Enterprise SOA. Prentice Hall, 2005

OSGi im JCP

OSGi wurde inzwischen als "JSR 291: Dynamic Component Support for Java SE" im Rahmen des Java Community Process (JCP) als offizielles dynamisches Komponentenmodell für Java angenommen - neben "JSR 232: Mobile Operational Management", das sich auf mobile Umgebungen unter Java ME bezieht.

Anwendungsbeispiele

Der Einsatz von OSGi erfolgt typischerweise in Fahrzeugen (Telematik), mobilen Endgeräten (Handys, PDAs) und im Bereich der Heimvernetzung (Residential Gateways, Router) oder der Gebäudeverwaltung (Facility Management), aber auch in industriellen Automatisierungslösungen oder völlig anders gearteten eingebetteten Systemen (Aviation, Parksysteme, etc.)

Eines der neueren Einsatzgebiete von OSGi ist die Integrierte Entwicklungsumgebung (IDE) Eclipse, wo OSGi in Form des Equinox-Frameworks die Rolle einer eher desktop- bzw. enterprise-orientierten SOA übernimmt und dabei das recht neue Rich Client (RCP) Paradigma bedient. Eclipse wurde ursprünglich vom OSGi-Mitglied IBM entwickelt – inzwischen ist Eclipse Open Source (OSS-Software), und Plugins für Eclipse sind (seit Version 3) OSGi-Bundles. Eclipse selbst ist somit ein Beispiel für eine Enterprise-Anwendung von OSGi, die über die ursprüngliche eingebettete Ausrichtung hinausgeht - dies hat im Umkehrschluss auch Auswirkungen auf die weitere Entwicklung der Spezifikation.

Über diverse Aktivitäten im Java Community Process (JSR 232, 246 und 248/9), die federführend u. a. von Nokia und Motorola gesteuert werden, findet OSGi derzeit als Teil einer „Mobile Service Architecture“ (MSA) Einzug in Mobiltelefone. Hierfür wurde es speziell für die Erfordernisse in diesen Umgebungen angepasst und mit Standards wie OMA-DM integriert.

Durch die Standardisierung als generische Java-Erweiterung (JSR-291) sind weitere, neue Anwendungen im Embedded- und RCP-Umfeld zu erwarten.

Erste Produkte kombinieren die Funktion eines OSGi Remote Management Servers mit den Möglichkeiten von TR-069, zur Fernkonfiguration und Administration von hochbandbreitigem Endanwender-Equipment (z.B. DSL-Router, Set-Top-Boxen, etc.) - ebenso wie mit OMA-DM, für den Bereich der mobilen Endgeräte.

Die OSGi-Website listet zahlreiche weitere Anwendungsbeispiele.

Einordnung: OSGi & System-Schichten

  • Die Abbildung zeigt den Schichtenaufbau einer typischen OSGi-Architektur.
  • Server meint in diesem Zusammenhang meist ein klassisches Embedded System, nicht notwendigerweise einen Enterprise-Server oder Desktop-Client (RCP) - obwohl OSGi sich auch in diese Richtung weiterentwickelt, siehe Eclipse und Equinox.

Organisation

Gegründet wurde die OSGi Alliance 1999. Ihr gehören (Stand Juli 2007) 29 Firmen aus recht unterschiedlichen Branchen als Vollmitglied an, wie etwa IBM, Nokia, Motorola, Oracle, NEC, Hitachi, Sprint, Samsung, Siemens, Telefonica, BEA, Deutsche Telekom und ProSyst. Zu den Vollmitgliedern kommen (Stand Juni 2007) noch 10 sogenannte Adopter Associate-Mitglieder hinzu, darunter auch die Eclipse Foundation.

Die Allianz wird von einem Direktorium (Board of Directors) geleitet, das sich aus Vorständen aus den jeweiligen Arbeitsgebieten zusammensetzt. Diesen untergeordnet sind verschiedene Beauftragte (sogenannte Officers). Auf der kommerziellen Ebene wird in diversen Komitees (Committees) zusammengearbeitet, während technische Fragen – wie die Weiterentwicklung der Spezifikation, von Release 1 über 2 und 3 bis hin zu Version 4 – von den diversen Arbeitsgruppen (Expert Groups) vorangetrieben werden.

Es existieren Expert Groups für die Bereiche Enterprise, Mobile, Vehicle und Core Platform.

Board of Directors

Zusammensetzung des "Board of Directors" (Stand Juni 2007):

Spezifikation

Die aktuelle OSGi-Spezifikation nennt sich „OSGi Service Platform Release 4“, adressiert J2ME/CDC Java-Plattformen, und steht – einschließlich älterer Versionen und Errata – auf der OSGi-Website zur Verfügung:

  • OSGi Release 1 (R1): Mai 2000
  • OSGi Release 2 (R2): Oktober 2001
  • OSGi Release 3 (R3): März 2003
  • OSGi Release 4 (R4): Oktober 2005 / September 2006
    • Kern-Spezifikation (R4 Core): Oktober 2005
    • Kern-Erweiterungen (R4 Compendium): Oktober 2005
    • Mobil-Spezifikation (R4 Mobile / JSR-232): September 2006
  • OSGi Release 4.1 (R4.1): Mai 2007

Die OSGi Alliance selbst spezifiziert lediglich die APIs und Testcases für OSGi-Implementierungen von Dritter Seite - und stellt im Rahmen dessen auch eine Referenzimplementierung zur Verfügung. Diese ist jedoch nicht für den Produktiveinsatz gedacht, so dass für diesen Zweck in der Regel Frameworks von Mitgliedern der Alliance bzw. dem OSS-Umfeld genutzt werden.

OSGi-Frameworks

Die Referenzimplementierung der OSGi Alliance ist nicht für den Produktiveinsatz gedacht, sondern dient lediglich als Vorlage für andere Implementierungen.

Produktivtaugliche OSGi-Frameworks sind von verschiedenen Anbietern erhältlich. Einerseits als kostenlose, frei verfügbare Open-Source-Lösungen, andererseits als kommerzielle Produkte. Beide Varianten haben Vor- und Nachteile.

Kommerzielle OSGi-Frameworks

Kommerzielle Frameworks sind in der Regel zertifiziert (Liste der zertifizierten Implementierungen für R3/R4), stärker anwendungsbezogen ausgerichtet (bzw. dahingehend optimiert) und beinhalten neben dem eigentlichen Framework in der Regel weitere optionale Softwarepakete - letztere bilden häufig die Basis für kundenspezifische Auftragsarbeiten, die sich auch in anwendungsbezogen optimierten Framework-Varianten niederschlagen können (z.B. für den Mobilbereich). Inwieweit die Nichtverfügbarkeit des Quellcodes hier Vor-/Nachteile bietet, ist im Einzelfall unterschiedlich zu gewichten - zumal über Verschwiegenheitserklärungen häufig Zugriff ermöglicht wird.

Für eine Liste der kommerziellen Frameworks sollte man die OSGi Website besuchen, da Wikipedia grundsätzlich alles löscht, was auch nur den Hauch eines möglichen kommerziellen Hintergrunds haben könnte.

Open Source OSGi-Frameworks

OpenSource-Frameworks sind in der Regel weniger anwendungsbezogen ausgerichtet - oder im Gegenteil stark auf eine bestimmte Anwendung fokussiert (siehe Equinox) und/oder von einer einzelnen Firma dominiert, die ihr früheres kommerzielles Produkt auf diesem Wege ausgekoppelt hat. Inwieweit die Quellcodeverfügbarkeit hier Vor-/Nachteile bietet, ist im Einzelfall unterschiedlich zu gewichten.

Referenzen

Entwickler-Informationen der OSGi

Enterprise-Frameworks

Relevante RFCs und Java-Standards

Komplementäre Standards

  1. OSGi Specifications.
  2. OSGi Service Gateway Specification Release 1.0. (PDF)