Serviceorientierte Architekturen

Kaum ein Thema hat die IT im ersten Jahrzehnt des neuen Jahrtausends so sehr beschäftigt wie Service-orientierte Architekturen, kurz SOA.

 

Nachdem es erst - zusammen mit dem Protokoll SOAP - als neuer Heilsbringer für Unternehmensanwendungen gepriesen worden ist, nahmen die Stimmen der Kritiker im Laufe der Zeit zu: Die initial einfach anmutende Idee wuchs sich zu einem ziemlichen Moloch aus (man denke nur an die Unmenge der WS-*-Standards). Man lernte schmerzhaft, dass SOA Auswirkungen bis in die Unternehmensorganisation hat (eine Art Umkehrung von Conway's Law). Außerdem bemängelte die REST-Fraktion nicht zu Unrecht, dass SOAP (obgleich initial Trägerprotokoll-neutral konzipiert, fast ausschließlich über HTTP betrieben) die Stärken von HTTP in weiten Teilen ignorierte bzw. sogar ad absurdum führte.

 

Aber trotz dieser Kritik ist SOA aus vielen heutigen Unternehmens-IT-Landschaften nicht mehr wegzudenken. Es ist ruhiger um das Thema geworden, was aber nicht heißt, dass es nicht mehr relevant wäre. SOA ist schlicht Mainstream, es wird einfach "gemacht" und nicht mehr so viel darüber diskutiert.

 

In diesem Bereich haben wir für Sie eine Auswahl von Beiträgen zusammengestellt, die sich unter den unterschiedlichen Gesichtspunkten mit SOA befassen. Sollten SOA Sie also betreffen, dann schauen Sie einfach einmal. Es ist sicherlich auch etwas interessantes für Sie dabei. Und wenn Sie noch mehr zu dem Thema wissen wollen, dann schauen Sie doch auch einmal im Themenchannel "SOA & BPM"  vorbei.

Scalability Rules: 50 Principles for Scaling Web Sites

Autoren: Michael T. Fisher und Martin L. Abbott
*
*
Addison-Wesley Longman
*
*
273 Seiten
*
*
ISBN 978-0321753885
*
*
*

Als Software-Entwickler, -Designer und -Architekt (ohne mit dieser Reihenfolge der Aufzählung irgendeine Wertung implizieren zu wollen) ist man derzeit immer häufiger mit skalierbaren Anwendungen konfrontiert, seien es hohe Transaktionszahlen, viele simultane Benutzer oder Unmengen an Daten - oder alles zusammen. Da liegt es nahe, dass man sich nach geeigneter Literatur umschaut, wenn man vor der Aufgabe steht, ein solches System zu entwerfen und zu bauen.

Bis ca. Mitte 2011 sah es diesbezüglich in Sachen Büchern eher dürftig aus. Es gab "Scalable Internet Architectures" von Theo Schlossnagle aus dem Jahr 2005, das sich - wie der Title schon sagt - sehr stark auf skalierbare Internet-Anwendungen fokussiert und "The Art of Scalability" von Martin Abbot und Michael Fisher aus dem Jahr 2009, das sich aber sehr stark um die Organisation und Prozesse kümmert, die man benötigt, um als Unternehmen mit der Skalierung zurechtzukommen und nur im dritten Teil des Buches auf die Architektur skalierbarer Anwendungen eingeht. Das Angebot war also recht überschaubar - insbesondere in Hinblick auf die sich immer mehr etablierenden Scale-Out Architekturen auf konventioneller Standard-Hardware.

Das Buch "Scalability Rules: 50 Principles for Scaling Web Sites", ebenfalls von Michael Fisher und Martin Abbot, erschienen Mitte 2011 schickt sich nun an, diese Lücke - zumindest teilweise - zu schließen.

In der Form von 50 Pattern-artig aufbereiteten Prinzipien gibt das Buch einen guten Einstieg und Überblick in Entwurf, Umsetzung und Betrieb skalierbarer Anwendungen. Jedes Prinzip beginnt mit einer kurzen Zusammenfassung, die die Fragen "Was", "Wann anwenden", "Wie anwenden", "Warum" und "Wichtigste Erkenntnisse" in je ein oder zwei Sätzen beantworten. Dann folgt die ausführliche Beschreibung, meist im Umfang von drei bis fünf Seiten je Prinzip. Dazu gibt es noch eine Einleitung mit Empfehlungen für einen Fasttrack je nach Zielgruppe sowie eine Zusammenfassung am Ende, in der die Prinzipien noch einmal bewertet und priorisiert und im Kurzüberlick quasi als Referenz zum schnellen Nachschlagen dargestellt werden.

Inhaltlich deckt das Buch ein relativ breites Spektrum ab. Es beginnt mit allgemeinen Prinzipien wie dem KISS-Prinzip ("Keep it simple, stupid" - halte die Lösung so einfach wie möglich) und der Empfehlung, möglichst homogene Infrastruktur zu verwenden. Dann geht es auf die verschiedenen Arten von Skalierbarkeit ein. Allein für dieses Kapitel lohnt es sich meines Erachtens schon, das Buch zu kaufen, denn dieser eigentlich simple Würfel, mit dem die Autoren die Dimensionen der Skalierbarkeit aufzeigen, ist für viele Leser sicherlich ein echter Augenöffner und hilft einem, viele der im Netz und der Literatur immer wieder kursierenden Empfehlungen für Skalierbarkeit besser bezüglich ihrer indiviuellen Anwendbarkeit zu verorten.

Es geht weiter mit Prinzipien zum horizontalen Scale-Out, Nutzung der Tools, die einem die Internet-Infrastruktur quasi "schenkt", Caching, Lernen aus Entwurfsfehlern (nahezu unvermeidlich im Umfeld skalierbarer Systeme), Datenbanken, Fehlertoleranz, Zustandsverwaltung, asynchrone Kommunikation sowie einige ergänzende Prinzipien, die nicht in die anderen Kapitel gepasst haben, die aus Sicht der Autoren aber zu wichtig sind, um unerwähnt zu bleiben.

Die Autoren sagen im Vorwort, dass sie statt 50 auch 100 oder mehr Prinzipien hätten beschreiben können, sich aber bewusst auf 50 Prinzipien beschränkt haben, um das Buch nicht zu überfrachten. So ist das Buch sicherlich auch nicht vollständig (es erhebt auch gar keinen Anspruch darauf) und wenn man sich eine zeitlang mit dem Themengebiet befasst, entdeckt man eine Reihe von Lücken, an denen man gerne etwas mehr von den Autoren erfahren hätte. So werden beispielsweise die NoSQL-Datenbanken, die gerade im Umfeld von Scale-Out Architekturen mittlerweile kaum noch wegzudenken zu sind, nur sehr stiefmütterlich behandelt und ein paar der Prinzipien wie z.B. "Verwende kein 'select *' in Datenbankabfragen" gehören eigentlich auch außerhalb skalierbarer Systeme zum guten Ton.

Dennoch kann ich diese Buch guten Gewissens empfehlen. Für Einsteiger in die Welt skalierbarer Systeme bietet es eine gute Übersicht und auch etwas erfahrenere Leute finden sicherlich die ein oder andere Neuigkeit. Außerdem kann man das Buch aufgrund seiner Struktur sehr gut als Referenz zum Nachschlagen verwenden. Es hilft einen also nicht nur beim Erstlesen, was man übrigens problemlos im Rahmen einiger Stunden schafft, sondern leistet einem auch danach noch gute Dienste.

Fazit: Ein gelungener Einstieg in skalierbare Systeme, nicht nur für Internet-Anwendungen geeignet mit ein paar Lücken, wo man gerne noch mehr gehabt hätte. Auf der Amazon-Skala wären das für mich 4 von 5 Sternen.

Buchtipp von Uwe Friedrichsen, Evangelist Themenchannel Software-Architektur, WISSEN

Ansehen

Bereitgestellt von:

zurück


Newsletter abonnieren



Empfehlung an diese E-Mail-Adresse senden:


 

 

 

Ihre eigenen Angaben:

 

 

 

 

Diese Seite empfehlen Sie weiter: