Modular Java (Buch)

Das Buch „Modular Java“ von Craig Walls erklärt auf praktische Weise, wie modulare Java Anwendungen auf Basis des Spring Framework und OSGI entwickelt werden.

Das Buch setzt die hohen Standards der Pragmatic Bücher fort. Bücher aus der Pragmatic Books Serie präsentieren relevante Inhalte so in einer ansprechenden Form, dass sie zum direkten ausprobieren motivieren.
OSGI verspricht die in Softwareprojekten auftretende Komplexität unter Kontrolle zu halten. Dies wird dadurch erreicht, dass einzelne Module isoliert voneinander gehalten werden, und loose Kopplung mittels definierter Dienstenutzung und Angebot eigener Dienster gefördert wird. Man kann sich OSGI als eine Ausprägung von Service oriented architecture (SOA) innerhalb der Java Virtual Machine vorstellen. Die Wurzeln von OSGI stammen von embedded Umgebungen, zwischenzeitlich ist OSGI auch Dank Desktopanwendungen wie Eclipse, das auf OSGI setzt, populär geworden. Nach embedded und der Desktop kommt OSGI nun auch auf den Server.Craig führt in dem Buch die Konzepte von OSGI ein, zeigt, wie man Module voneinander mit Hilfe der speziellen Handhabung des Classpath isoliert und illustriert das Konzept der OSGI Services. Dabei führt Craig durch das gesamte Buch anhand einer einfach nachzuvollziehenden Beispielanwendung, die  auch genutzt wird um verschiedene Aspekte von OSGI in der praktischen Anwendung zu zeigen.

Als Laufzeitumgebung für OSGI kommt hautpsächlich das Equinox vom Eclipse Projekt zum Einsatz, jedoch finden auch Felix und Knopflerfish Erwähnung. Für den Build von OSGI Bundles kommt bei Modular Java Pax und insbesondere Pax construct zum Einsatz. Bundlor, Bnd oder Tycho finden jedoch keine eingehende Betrachtung, das ist gerade bei dem auf Maven basierenden Tycho stack schade, da dieser sehr vielversprechend ist. Dieser kleine Abstrich ist vielleicht auch der sehr rasanten Entwicklung im OSGI Tool Umfeld zuzurechnen.

Spring Dynamic Modules (Spring DM) soll die Prinzipien des Spring Framework (bewährte Technologien leichter benutzbar machen) mit OSGI verbinden. Spring DM erspart es dem OSGI Entwickler eine Menge boilerplate Code zu schreiben, der dadurch nötig wird, dass OSGI Dienste jederzeit hinzukommen oder verschwinden können. Weiterhin ermöglicht Spring DM die Integration mit dem Spring Application Context und bietet Unterstützung für Web Anwendungen durch einen extender.
Spring DM wird in dem Buch Modular Java sehr ausführlich behandelt. Im Anhang finden sich auch die neuen OSGI Blueprint Services, durch die die Ideen von Spring DM standardisiert werden sollen. Der Spring dm Server wird jedoch nicht behandelt.

Das Buch Modular Java konzentriert sich auf die Kernkonzepte und zeigt den Nutzen von OSGI für die Anwendungsentwicklung auf. Das Buch richtet sich hauptsächlich an erfahrene Java Entwickler. Das Buch ist sehr gut geschrieben, leicht und unterhaltsam zu lesen und bietet eine großartige Einführung. Ich empfehle das Buch Java Entwicklern, die in Betracht ziehen, zukünftig OSGI in Projekten zu nutzen.

Weitere Informationen und Bestellmöglichkeit über Amazon: Modular Java

Die Rezension ist eine übersetzte Version eines Beitrags von Stefan Reuter, der als freier Berater und Entwickler tätig ist, und die Nutzung freundlicherweise gestattet hat. Stefan Reuter ist unter anderem Autor der Asterisk-Java-Bibliothek, sein Blog findet sich hier: http://blogs.reucon.com/srt/