Wie man Software konsequent modularisiert

In diesem Buch dreht sich alles um eine Frage: Wie zerlegt man eine Software sinnvoll in einzelne Komponenten? Damit ist auch bereits die wichtigste Aufgabe eines Software-Architekten umrissen. Wichtigstes Prinzip ist es, die Komponenten möglichst lose miteinander zu koppeln. Der Autor verfolgt dieses Prinzip sehr konsequent. Und so rät er dringend von einigen häufig anzutreffenden Mustern ab. So führt z. B. der Einsatz eines Enterprise Service Bus (ESB) als zentraler Mediator meist dazu, dass relativ viel Logik in diese zentrale Komponente wandert, wodurch hohe gegenseitige Abhängigkeiten zwischen dem ESB und den verbundenen Komponenten führt. Besser ist der Ansatz der „Dumb Pipes and Smart Endpoints“, d. h. leichtgewichtige Kommunikationsstrukturen, bei denen die Logik in den angeschlossenen Komponenten verbleibt.

Auch das in Service-orientierten Architekturen (SOA) angestrebte Ziel einer hohen Wiederverwendbarkeit führt zu hohen Abhängigkeiten zwischen den verschiedenen Services. Nicht von ungefähr sind feingranulare Microservices derzeit sehr populär. Sie sind prinzipiell sehr lose gekoppelt. Es müssen aber nicht immer Microservices sein. Auch eine konsequente Modularisierung auf Basis grobgranularer Services ist möglich, wobei die unteren Ebenen des Technologiestacks nicht zwangsläufig verteilt sein müssen. Dowalil bezeichnet dies als SOA 2.0. Aber auch monolithische Systeme können für bestimmte Fälle die richtige Architektur sein – wenn die Monolithen intern sauber modularisiert sind. Nicht zu verwechseln ist ein Monolith mit einem „Big Ball of Mud“. Dabei handelt es sich um ein System ohne jeglichen Strukturentwurf – das Anti-Pattern schlechthin.

Das Buch gibt einen umfassenden Überblick über Prinzipien, Methoden und Muster für die Mikro-Architektur und insbesondere die Makro-Architektur. Den Empfehlungen liegen erkennbar umfassende praktische Erfahrungen des Autors zugrunde. An der einen oder anderen Stelle würde sich der Leser noch etwas mehr Beispiele wünschen. Zwar dürfen aus Kundenprojekten in der Regel keine Details veröffentlicht werden, doch ließe sich auch anhand abstrahierter Beispiele etwas konkreter darstellen, wie etwa ein gemäß SOA 2.0 entwickeltes System strukturiert sein könnte.

Auch wenn der Titel den Begriff „Grundlagen“ enthält, handelt es sich nicht um eine Einführung für komplette Neulinge. Dazu sind die Beschreibungen der verschiedenen Muster und Konzepte zu knapp. Zielgruppe sind eher Software-Architekten und erfahrene Software-Entwickler. Sie erhalten eine Reihe von Anregungen für ihre praktische Architektur-Arbeit.


Dowalil, Herbert:
Grundlagen des modularen Software-Entwurfs.
Der Bau langlebiger Mikro- und Makro-Architekturen wie Microservices und SOA 2.0.
Hanser, 2018.
Das Buch bei amazon (Anzeige)