Die OSGi Service Platform gibt dem Java-Entwickler/-Architekten unserer Zeit ein bisher vermisstes Werkzeug für seine Arbeit an die Hand: ein dynamisches Modulsystem für die Java-VM. Die von dieser Plattform definierten Module (im OSGi-Jargon "Bundles" genannt) ermöglichen es, lose gekoppelte Java-Systeme zu erstellen, in denen zur Laufzeit Module installiert, gestartet, gestoppt, aktualisiert und deinstalliert werden können. Als Ergebnis erhält man – "fachmännische" Nutzung vorausgesetzt – ein Hot-Deployment-fähiges, modulares Java-System. Ergänzend dazu definiert OSGi ein (optional) nutzbares Servicemodell, das die Kollaboration der Bundles bei sehr loser Kopplung ermöglicht.
Das vorliegende Buch "Die OSGi Service Platform – Eine Einführung mit Eclipse Equinox" des dpunkt-Verlags zielt im Verlauf seiner 455 Seiten auf die Vermittlung einer fundierten (und somit "fachmännischen") Übersicht über das OSGi-Framework sowie einen praktischen Einstieg anhand der OSGi-Implementierung Eclipse Equinox. Neben der in Buchform erschienenen OSGi-Spezifikation ist es das erste Buch auf dem Markt, das sich ausschließlich mit der OSGi-Thematik befasst. Im Kern stellt es ausgewählte Teile dieser Spezifikation im Detail vor. Das Buch gliedert sich in drei Teile. Der erste Teil führt schrittweise in den Aufbau des OSGi-Frameworks ein. Der Leser wird zunächst mit den Grundbegriffen und den architektonischen Besonderheiten von OSGi vertraut gemacht, insbesondere mit Bundles, Bundle-Lebenszyklus, Package-Abhängigkeiten, OSGi Services, Umgang mit dynamischen Services, Fragment Bundles, Security, Platform-Management sowie Packaging und Deployment. Nach diesem architektonischen "Grundkurs" werden im zweiten Teil einige der im OSGi Service Compendium spezifizierten Standardservices vorgestellt. Darunter befinden sich unter anderem Kapitel zu Querschnittsfunktionen wie Eventing, Logging, User Management und Preferences. Hervorzuheben ist insbesondere das Kapitel zu "Declaritve Services", die den Umgang mit dynamischen OSGI Services ganz erheblich vereinfachen. Auch Funktionen zum Administrieren der OSGi-Plattform und der HTTP-Service werden in diesem Teil ausführlich beschrieben. Der abschließende dritte Teil befasst sich mit Eclipse-Equinox-spezifischen Erweiterungen der OSGi-Spezifikation. Die behandelten Thematiken umfassen Erweiterungen des OSGi Class Loading, Extension Points und Extensions, das Equinox Application Model und Webanwendungen mit Equinox.
Die von den Autoren gesteckten Ziele der fundierten Übersicht und der praktischen Einführung werden voll und ganz erreicht. Am Anfang eines jeden Kapitels steht dabei immer ein codezentriertes "Tutorial", das die vorzustellende Funktionalität Schritt für Schritt erläutert. Im Anschluss wird eine detaillierte Betrachtung der jeweiligen Thematik vorgenommen. Zur Abrundung werden Querverweise auf die OSGi-Spezifikation angeführt. Als Zielgruppe sind daher primär Java-Entwickler zu nennen, die anhand eines durchgängigen Codebeispiels einen praktischen Einstieg in das Framework suchen. Für Softwarearchitekten ist speziell der erste Teil des Buches interessant, da in diesem das Grundverständnis für OSGi aufgebaut und die Gesamtarchitektur beleuchtet wird. Der erste Teil ist daher auf eine sequenzielle Bearbeitung angelegt, während der zweite und dritte Teil des Buches auch kapitelweise bearbeitet werden können. Der Vollständigkeit halber ist anzumerken, dass das Buch für drei spezielle Fragestellungen nicht passend ist: Zum einen, wenn der Leser Informationen zu einem detaillierten Vergleich mehrerer OSGi-Implementierungen sucht (es wird fast ausschließlich Equinox betrachtet). Zum anderen wird er keine ausführliche Diskussion von architektonischen Alternativen bei der OSGi-Entwicklung finden (z.B. Spring Dynamic Modules vs. OSGi Declarative Services) und desgleichen keine Diskussion von OSGi in bestimmten Anwendungsszenarien (z.B. Eclipse RCP). Solche Betrachtungen hätten den Rahmen des Buches gesprengt und sind daher bewusst nicht mit aufgenommen worden. Eine Auffälligkeit am Rande: Gegen Ende des Buches fallen kleinere Rechtschreibfehler ins Auge. Als Fazit ist festzustellen: Ein didaktisch und inhaltlich sehr gelungener Einstieg in die Thematik OSGi.






















