Skalieren mit serviceorientierten Architekturen (SOA)
In der heutigen schnelllebigen Welt der Softwareentwicklung ist Flexibilität, Skalierbarkeit und Wiederverwendbarkeit von größter Bedeutung. Hier kommt die serviceorientierte Architektur (SOA) ins Spiel. SOA ermöglicht es uns, gekapselte Dienste mit klar definierten, „RESTful“ Schnittstellen bereitzustellen. SOA hat viele Eigenschaften, die Skalierbarkeit und Robustheit ermöglichen.
Einer der bekanntesten Köpfe von SOA in Deutschland war Stefan Tilkov, der viel zu jung am 10. August 2023 verstorben ist. Dieser Artikel soll die Verdienste von Stefan auf diesem Gebiet würdigen.
Was ist eine serviceorientierte Architektur (SOA)?
Eine serviceorientierte Architektur ist eine Methode zur Entwicklung von Software, bei der Anwendungen als lose gekoppelte Dienste organisiert werden. Diese Dienste sind eigenständige, unabhängige Einheiten, die über definierte Schnittstellen miteinander kommunizieren. SOA fördert die Modularität, Wiederverwendbarkeit und Skalierbarkeit von Softwarelösungen. Diese Dienste können wie eine „Black Box“ verstanden werden.
Statt monolithischer Anwendungen, bei denen Änderungen in einem Teil Auswirkungen auf das gesamte System haben können, können SOA-basierte Anwendungen einzelne Dienste aktualisieren, ohne den Rest der Anwendung zu beeinträchtigen. Diese Dienste werden auch Microservice genannt.
Die Rolle von REST in SOA
Eine der bekanntesten Architekturprinzipien, die innerhalb der SOA angewendet werden können, ist das Representational State Transfer (REST). REST ist ein Architekturstil, der auf Prinzipien wie Ressourcen, Zustandslosigkeit, einheitliche Schnittstellen und Cachebarkeit basiert. Ein RESTful Service bietet seine Funktionalität über standardisierte HTTP-Methoden an, wie z.B. GET, POST, PUT und DELETE.
REST fördert die Entwicklung leichtgewichtiger, skalierbarer und interoperabler Dienste. Durch die klare Trennung zwischen Diensten und ihrer Kommunikation können Unternehmen effizienter arbeiten und schneller auf veränderte Anforderungen reagieren. RESTful APIs erlauben es Anwendungen, miteinander zu kommunizieren, ohne dass komplexe Integrationen erforderlich sind.
REST ist nur ein Weg, SOA umzusetzen. SOAP und XML-RPC sind ältere, aber immer noch verwendete Alternativen.
REST in der Praxis
REST kann ein bisschen wie „Eine Webseite für Maschinen“ angesehen werden, da es ja auch den selben Webtechnologien basiert, insbesondere HTTP. Aber statt eine Benutzeroberfläche zu rendern und HTML als Ergebnis anzuzeigen, nimmt eine REST-Schnittstelle maschinenlesbare Daten als Eingabe und Ausgabe, oft JSON.
Zum Testen können wir automatisch eine einfache Benutzeroberfläche bereitstellen, zum Beispiel mit Swagger. Swagger ermöglicht es uns, Daten an den Service zu schicken und das Ergebnis zu inspizieren. Swagger ist Open Source. Viele API-Firmen erlauben Nutzern, über Swagger zum Kennenlernen auf die API zuzugreifen. Hier ist zum Beispiel eine Haustierdatenbank online:

Stefan Tilkov und sein Beitrag zu SOA
Stefan Tilkov hat SOA und REST in Deutschland vorangebracht. Er war ein renommierter Experte für Softwarearchitektur und hat über Fachartikel, Vorträge und sein Unternehmen InnoQ maßgeblich dazu beigetragen, SOA und REST in der Entwicklergemeinschaft bekannt zu machen. Seine klaren Erklärungen und praktischen Ansätze haben Entwicklern geholfen, diese Konzepte zu verstehen und in ihren Projekten umzusetzen.
Sein Buch REST und HTTP: Einsatz der Architektur des Web für Integrationsszenarien (Affiliate-Link) gilt als wegweisendes Werk auf dem Gebiet der RESTful Architektur. In diesem Buch führt Stefan die Leser in die Prinzipien von REST ein und zeigt, wie sie in verschiedenen Anwendungsszenarien effektiv angewendet werden können. Seine Beispiele und Fallstudien veranschaulichen die Vorteile von REST-basierten Diensten in der Praxis.
Stefan Tilkov und rheinjug
Als ich 2005 aus den USA nach Deutschland zurückkam, war ich sehr aktiv in der Programmierung in Java. Daher suchte ich nach lokalen Java User Groups, da diese mir in den USA gute Dienste beim Netzwerken geleistet hatten. Dabei stieß ich auf Stefan, der bereits Anfang 2000 versucht hatte, eine Gruppe zu starten. Als ich ihm von meinen Plänen erzählte, war er sofort enthusiastisch, wollte sich selbst aus zeitlichen Gründen jedoch nicht einbringen. Ich formte dann ohne ihn die rheinjug an der Heinrich-Heine-Universität Düsseldorf, wo ich später auch promovierte. Stefan hat uns jedoch tatkräftig mit Sponsoring und Fachvorträgen unterstützt. Die rheinjug ist inzwischen ein gemeinnütziger Verein und bietet nach wie vor mehrmals im Jahr kostenlose Fachvorträge an, oft mit bekannten Köpfen aus der Szene, die hunderte von Teilnehmern anziehen.
Fazit: SOA und REST als Wegbereiter für die Zukunft der Softwareentwicklung
Serviceorientierte Architekturen (SOA) haben die Art und Weise, wie wir Software entwickeln und bereitstellen, revolutioniert. Durch die Aufteilung von Anwendungen in lose gekoppelte Dienste ermöglicht SOA Unternehmen, agiler zu sein und schnell auf sich ändernde Anforderungen zu reagieren. REST, als einer der prominentesten Architekturstile in der SOA, fördert die Interoperabilität, Skalierbarkeit und Flexibilität von Anwendungen. Die Einsatzgebiete gehen weit über Webanwendungen hinaus, auch eingebettete Systeme werden immer häufiger mit SOA realisiert.
Die Verdienste von Stefan Tilkov in diesem Bereich sind unbestreitbar. Sein Engagement für die Verbreitung von Wissen über SOA und REST hat dazu beigetragen, eine Generation von Entwicklern zu inspirieren und zu befähigen. Mit seinen Büchern, Vorträgen und Artikeln hat er die Grundlagen für zukünftige Entwicklungen in der Softwarearchitektur gelegt.
In einer Zeit, in der Technologie und Geschäftsanforderungen ständig im Wandel begriffen sind, sind SOA und REST mehr als nur Konzepte — sie sind der Schlüssel zur Schaffung flexibler, skalierbarer und leistungsstarker Softwarelösungen, die den Herausforderungen der modernen Welt gewachsen sind.