OSGi

Was ist OSGi?

Softwaresysteme werden größer und komplexer, Änderungen sollen schnell und ohne Nebenwirkungen umgesetzt werden, und Programmteile müssen wiederverwendbar sein. Aus diesen und anderen Anforderungen folgt die Notwendigkeit, große Java-Systeme zu modularisieren. OSGi bietet ein dynamisches Modulsystem für Java, das es erlaubt, Module in Java zu definieren und für diese Module sowohl Sichtbarkeiten als auch Abhängigkeiten explizit festzulegen. Ein OSGi-Modul besteht in der Regel aus mehreren Klassen in mehreren Packages sowie einer Modulbeschreibung. In dieser Modulbeschreibung werden die Abhängigkeiten zwischen Modulen definiert und Sichtbarkeiten zwischen Modulen eingeschränkt.
So wird es in Java möglich, die Idee der Modularisierung auch auf größere Einheiten als Klassen anzuwenden. Neben den Abhängigkeiten und Sichtbarkeiten zwischen Modulen definiert OSGi einen Lebenszyklus für Module. Damit können einzelne Module zur Laufzeit hinzugefügt, ausgetauscht aktualisiert oder ganz aus dem System entfernt werden. Aufbauend auf diesem dynamischen Verhalten definiert OSGi ein leichtgewichtiges Service-Modell und bietet die entsprechende Infrastruktur an. Hierdurch lassen sich Module schreiben, die in einer dynamischen Umgebung sauber arbeiten und damit ein Gesamtsystem bilden, welches vollständig dynamisch verwaltet werden kann.



Ein typisches Schaubild einer OSGi-Anwendung: Die Anwendungslogik ist in einzelne Module aufgeteilt, es gibt klare Abhängigkeiten zwischen den Modulen, und die Sichtbarkeit zwischen den Modulen ist eingeschränkt. So sind z. B. für das Modul Order-Core die Klassen aus dem Package de.customer.core sichtbar, nicht aber aus dem Package de. customer.core.internal.

Vorteile von OSGi

Wenn man die Konzepte von OSGi konsequent einsetzt, ensteht eine Reihe unmittelbarer Vorteile:

  1. Modularisierung: Die zu entwickelnde Anwendung kann in einzelne Module aufgeteilt werden. Dabei sinkt die Einarbeitungszeit für einen neuen Entwickler, da er sich auf bestimmte Bereiche konzentrieren kann und die Schnittstellen zu anderen Bereichen klar definiert werden.
  2. Ein weiterer Vorteil besteht darin, dass die Anwendung auf lange Zeit wartbar und erweiterbar bleibt, da einzelne Module gezielt aktualisiert werden können.
  3. Services: Durch den konsequenten Einsatz der OSGi-Servicearchitektur werden die Module weiter entkoppelt und die Modularisierung vorangetrieben. Zudem wird hierüber auch der dynamische Austausch von Modulen zur Laufzeit ermöglicht.
  4. Versionierung: Die Schnittstellen von Modulen lassen sich versionieren. Hierdurch ist es möglich, mehrere Versionen von Modulen zur Laufzeit parrallel zu installieren. Dies ist vor allem bei der schrittweisen Aktualisierung von Modulen von Vorteil, da man die alte Version zunächst weiter im System behalten kann.
  5. Wiederverwendung: Nicht nur eigene Module, sondern auch bestehende Module lassen sich durch OSGi leichter wiederverwenden. Die OSGi Alliance definiert eine Reihe von Standard-Services, die von einer OSGi Umgebung implementiert werden müssen.

Unser Angebot zu OSGi / Eclipse Equinox


Seite druckenDiese Seite ausdrucken

Unsere OSGi-Experten



Martin Lippert arbeitet als Coach, Projektleiter und Berater bei it-agile. Ihn interessieren insbesondere die OSGi-Technologie sowie die Eclipse-Plattform und aspektorientierte Programmierung. Er ist Committer im Eclipse-Equinox-Projekt für den Incubator-Bereich und arbeitet dort an der Kombination von AspectJ und OSGi. Als Berater hilft er Organisationen bei der Einführung agiler Methoden - insbesondere des Eclipse Way. Darüber hinaus ist er regelmäßiger Sprecher auf nationalen und internationalen Konferenzen und Autor zahlreicher Fachartikel.
Kontakt zu Martin Lippert



Matthias Lübken ist seit 2001 als Entwickler in verschiedenen Projekten beschäftigt, und seit 2005 vermittelt er zudem als Coach agile Techniken. Er beschäftigt sich zurzeit mit der Eclipse-Rich-Client-Plattform,
insbesondere dem OSGi-Kern. Außerdem ist er zertifizierter ScrumMaster und begeisterter Vertreter von eXtreme Programming.
Kontakt zu Matthias Lübken

OSGi-Buch



Unser OSGi-Experte Matthias Lübken ist Mit-Autor des ersten deutschsprachigen Buches zu OSGi, das im dpunk.verlag erschienen ist. Dieses Buch liefert einen praktischen Einstieg in und einen fundierten Überblick über die zugrunde liegenden Technologien, Konzepte und Begriffe.
Das OSGi-Buch bei Amazon bestellen