OSGi
Aus LexiDict
Die OSGi Alliance (früher "Open Services Gateway initiative") spezifiziert eine hardwareunabhängige dynamische Softwareplattform, die es erleichtert, Anwendungen und ihre Dienste per Komponentenmodell ("Bundle"/"Service") zu modularisieren und zu verwalten ("Service Registry"). Die OSGi-Plattform setzt eine Java Virtual Machine (JVM) voraus und bietet darauf aufbauend das OSGi-Programmiergerüst.
Von OSGi existieren inzwischen verschiedene Generationen, die allesamt von der OSGi Alliance, einem Industriekonsortium, spezifiziert wurden. Die Allianz besteht aus Großunternehmen wie SUN, IBM, Nokia und Oracle, aber auch aus vielen kleineren Unternehmen, u. A. aus dem Open Source Software-Bereich. Der gemeinsam definierte OSGi-Standard steht daher allen Interessenten offen und es existiert gleichfalls ein entsprechend liberales Patent-Gesetzeswerk.
Die OSGi Alliance selbst spezifiziert hierbei lediglich die Programmierschnittstellen (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 Steuerung oder Vernetzung aller Arten von Geräten eingesetzt werden – z. B. im Automotive-Bereich, in Handys, in der Gebäudeautomatisierung oder zur intelligenten Fernsteuerung von Hausgeräten. Besonders im Heimbereich spielt das Gateway-Prinzip eine große Rolle, d. h. hier wird häufig nicht unmittelbar ein OSGi-Programmiergerüst auf den jeweiligen Geräten installiert, sondern auf sogenannten Residential Gateways – sie können verstanden werden als eingebettetes System, das (vergleichbar einem DSL-Router), einzelnen Geräten den Zugriff auf bestimmte Dienste vermittelt oder von außen den abstrakten Zugriff auf bestimmte Geräte ermöglicht. Anders kommen OSGi-Programmiergerüste in Autos und Mobiltelefonen zum Einsatz – hier laufen sie ohne zusätzliches Gateway direkt auf der leistungsfähigen eingebetteten Hardware.
Die Spezifikation der OSGi Service Platform definiert eine Java-basierte Laufzeitumgebung oberhalb der JVM und deren Basisdienste. Ein bedeutendes Merkmal der Service-Plattform ist die Möglichkeit, dynamisch und kontrolliert Service-Anwendungen (sogenannte Bundles) zur Laufzeit einzuspielen und – vor allem – auch zu aktualisieren und wieder zu entfernen. 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 und zu aktualisieren. Dabei werden Abhängigkeiten zwischen Bundles automatisch aufgelöst und ein intelligentes Versionsmanagement steht zur Verfügung.
Die einzelnen Implementierungen der jeweiligen Hersteller bestehen meist aus dem OSGi-Programmiergerüst und idealerweise einer großen Anzahl von Service-Bundles (Packages), die aufgrund der modularen Architektur ebenfalls dynamisch hinzugefügt werden können.
Weblinks
- Über die OSGi Alliance
- OSGi Blog – offizielles Blog des „OSGi Evangelist“ der OSGi
- Mobile OSGi Blog - Blog zu OSGi in Mobilgeräten
- Das OSGi Framework - Onlineartikel zur Einführung in das OSGi-Framework (deutsch)
Dieser Artikel basiert auf dem Artikel OSGi aus der freien Enzyklopädie Wikipedia und steht unter der GNU-Lizenz für freie Dokumentation. In der Wikipedia ist eine Liste der Autoren verfügbar.












