OSGi
aus Wikipedia, der freien Enzyklopädie
OSGi Service Platform | |
---|---|
Entwickler: | OSGi Alliance |
Aktuelle Version: | 4.0.1 (Juli 2006) |
Betriebssystem: | Java |
Kategorie: | Standard |
Lizenz: | OSGi Specification License |
Website: | www.osgi.org |
Die OSGi Alliance (Open Services Gateway Initiative) ist ein Non-Profit-Industriekonsortium, bestehend unter anderem aus Sun Microsystems, IBM und Ericsson, 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 Testcases 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 und deren Basisdienste. 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.
Inhaltsverzeichnis |
[Bearbeiten] Definition: OSGi Framework
Eine allgemeine Definition lässt sich wie folgt zusammenfassen: Ein OSGi-Framework ist eine offene, modulare und skalierbare „Service Delivery Plattform“ auf Java-Basis. Sie ermöglicht in ihrer Funktion 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. Der Einsatz von OSGi erfolgt dementsprechend 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.)
[Bearbeiten] 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 - obwohl OSGi sich auch in diese Richtung weiterentwickelt, siehe Eclipse und Equinox.
[Bearbeiten] 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
- Mobil-Spezifikation (R4 Mobile / JSR-232): September 2006
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.
[Bearbeiten] Organisation
Gegründet wurde die OSGi Alliance 1999. Ihr gehören (Stand August 2006) 35 Firmen aus recht unterschiedlichen Branchen als Vollmitglied an, wie etwa IBM, Nokia, Motorola, Philips, BenQ, Siemens VDO, Telefonica, BMW, Deutsche Telekom und ProSyst. Zu den Vollmitgliedern kommen noch sogenannte Adopter Associate-Mitglieder hinzu.
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 Komittees (Comittees) 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 Mobile, Vehicle und Core Platform.
[Bearbeiten] Anwendungsbeispiele
Eines der neueren Einsatzgebiete von OSGi ist die Integrierte Entwicklungsumgebung Eclipse, wo OSGi die Rolle einer eher enterprise-orientierten SOA übernimmt. Eclipse wurde ursprünglich vom OSGi-Mitglied IBM entwickelt – inzwischen ist Eclipse Open Source Software (OSS, Open Source 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.
Ü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 bzw. OMA-DM integriert.
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.)
Die OSGi-Website listet zahlreiche weitere Anwendungsbeispiele.
[Bearbeiten] Wiki
- OSGi Alliance Developer Site - Spezifikationen und Public Wiki
[Bearbeiten] Blogs
- OSGi Blog – offizielles Blog des "OSGi Evangelist" der OSGi
- Fun with OSGi – ein Blog über Entwicklung(en) rund um OSGi
- ProSyst Blog - Blog eines führenden OSGi-Mitglieds
[Bearbeiten] Referenzen
- OSGi Service Platform, Release 3, IOS Press (2003), englisch, ISBN 1-58603-311-5
- Spezifikationsdownload (R2/R3/R4)
- Über die OSGi Alliance
[Bearbeiten] Relevante RFCs und Java-Standards
- RFC 2608 (Service Location Protocol)
- Sun JINI™ (Java Intelligent Network Infrastructure)
- Sun JCP JSR-232 (Mobile Operational Management)
- Sun JCP JSR-246 (Device Management API)
- Sun JCP JSR-249 (Mobile Service Architecture for CDC)
- TR-069 (TR-069 Remote Management Standard)
[Bearbeiten] OSGi-Frameworks
Die Referenzimplementierung der OSGi Alliance ist nicht für den Produktiveinsatz gedacht, sondern dient lediglich als Vorlage für andere Implementierungen.
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 Frameworks sind in der Regel zertifiziert (Liste der zertifizierten Implementierungen für R3/R4), stärker anwendungsbezogen ausgerichtet 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 unter NDA häufig Zugriff ermöglicht wird.
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.
[Bearbeiten] Open Source
- Equinox - getrieben von Eclipse (Enterprise)
- Spring-OSGi-Specification OSGi Integration im Spring (Framework)
- Oscar - ursprünglich akademisches Projekt, wird inzwischen als Apache Felix weiterentwickelt
- Knopflerfish - ursprünglich kommerzielles Embedded-Produkt
- Concierge - leichtgewichtige OSGi Implementierung für mobile und eingebettete Systeme
- Jadabs – rudimentärer Ansatz, Zitat: "A dynamic lightweight container for small devices in a distributed environment"