Grundprinzipien von SOA

Definition SOA, OASIS-Referenzmodell, Services, Sichtbarkeit, Interaktion und Wirkung, Teilnehmer, Lose Kopplung, Vor- und Nachteile von SOA

Definition SOA

Service-oriented Architecture ist ein Paradigma f√ľr die Organisation und Verwendung verteilter F√§higkeiten, die unter der Kontrolle verschiedender Besitzerdom√§nen stehen k√∂nnen.

Der Begriff SOA wurde durch das OASIS-Referenzmodell einheitlich definiert. Au√üerdem deklariert das OASIS-Referenzmodell die notwendigen Fachw√∂rter und schaffte hierdurch ein allgemeines Verst√§ndnis f√ľr die SOA. Das Referenzmodell ist normativ, dient also als abstraktes Framework. Es enth√§lt vereinheitlichte Konzepte, Grunds√§tze und Beziehungen innerhalb eines bestimmten Problemfeldes. Dadurch ist es prinzipiell unabh√§ngig von spezifischen Standards, Technologien und Implementationen und hat weiterhin eine hohe Relevanz als Grundlage f√ľr die Entwicklung spezifischer Referenzen und konkreter Architekturen.

Abgrenzung zu anderen Architekturprinzipien

Durch die inh√§rente Intuitivit√§t und Allgemeinheit des konzeptuellen Begriffs SOA ist es aus heutiger Sicht eine nicht triviale Frage, welche anderen Architekturprinzipien hiervon abgegrenzt werden k√∂nnen, weil sich SOA als nat√ľrliches Architekturmuster in vielen Bereichen etabliert hat (und z.T. als selbstverst√§ndlich betrachtet wird):

Was sind Services?

Ein Service ist ein Mechanismus, der den Zweck hat, die Nutzung einer oder mehreren F√§higkeiten √ľber eine wohldefinierte Schnittstelle zu erm√∂glichen. Die Schnittstelle muss konsistent zu den Anforderungen und Richtlinien in der Dienstbeschreibung sein. Die Dienstbeschreibung wird hierbei als verbindlicher Vertrag zwischen dem Service User und dem Service Provider betrachtet. Wichtig ist, an dieser Stelle einzubeziehen, dass die Implementation des Services selbst nicht Teil des Vertrags ist. Das hei√üt, es steht dem Service Provider frei, wie dieser den Service implementiert.

Sichtbarkeit, Interaktion und Wirkung

Im Kontext der SOA wurden drei wichtige Konzepte definiert: Sichtbarkeit, Interaktion und Wirkung.

Unter Sichtbarkeit versteht man, dass ein Anbieter von F√§higkeiten f√ľr den Nutzer sichtbar sein muss. Dies realisiert der Anbieter typischerweise √ľber eine Beschreibung des Angebots. √úber funktionale und technische Anforderungen, Richtlinien, Einschr√§nkungen sowie Zugriffs- und Antwortmechanismen definiert der Anbieter, wie der Nutzer sein Angebot nutzen kann. Die Beschreibung des Anbieters muss hierbei syntaktisch und semantisch offen sein.

Das Konzept der Interaktion definiert, wie eine F√§higkeit im Rahmen der SOA genutzt werden kann. Dies geschieht in der Regel √ľber einen vermittelten Nachrichtenaustausch. Der Nachrichtenaustausch wird durch eine Reihe von ausgef√ľhrten Aktionen und Informationsverarbeitungen repr√§sentiert.

Zus√§tzlich zur Sichtbarkeit und der Interaktion wird in der SOA noch das Konzept der Wirkung definiert. Die Wirkung ist als Ergebnis einer Interaktion der eigentliche Zweck, warum ein Nutzer eine F√§higkeit des Anbieters nutzt. Eine Wirkung kann eine Zustands√§nderung beteiligter Objekte sein, aber auch eine R√ľckgabe von Informationen.

Die vorgestellten Konzepte verstehen sich als abstraktes Framework und lassen sich zum Beispiel auf das Konzept der Services anwenden.

Im Kontext von Services wird die Sichtbarkeit durch eine Dienstbeschreibung realisiert. Diese muss die Service-Eingaben und -Ausgaben klar im Rahmen einer zugeh√∂rigen Semantik definieren. Bei Services geschieht die Interaktion √ľber einen Nachrichtenaustausch, zum Beispiel √ľber Request-Response. Zuletzt wird die Wirkung realisiert durch die Zustands√§nderung beteiligter Objekte und die R√ľckgabe des Ergebnis als Antwort an den Service Consumer.

Welche Teilnehmer gibt es in einer SOA Referenzarchitektur?

Der Service selbst wird durch einen Service Provider bereitgestellt. Diesem steht es frei, wie der Service implementiert wird, jedoch muss der Service Provider eine wohldefinierte Dienstbeschreibung bereitstellen, welche die Schnittstelle des Services beschreibt.

Als Nutzer des Service muss der Service Consumer dem Service Provider gegen√ľber nicht bekannt sein. Au√üerdem kann der Service Consumer den Dienst des Anbieters auf eine andere Art nutzen, als urspr√ľnglich vom Service Provider vorgesehen. Zu beachten ist, dass der Service Consumer auch im Auftrag weiterer Nutzer handeln kann.

Als zusätzlicher Teilnehmer kann ein Service Broker als zentrales Verzeichnis dienen, welches Service Provider auflistet und auffindbar macht.

Betrachten wir alle drei Teilnehmer in einem Bild, so wird vom Service Provider ein Service bereitgestellt. Der Service Provider ver√∂ffentlicht eine Dienstbeschreibung √ľber den Service Broker, wor√ľber der Service Consumer den Dienst auffinden und schlussendlich durch direkte Anfrage an den Dienst verwenden kann.

Was ist “Loose Coupling” (Lose Kopplung)?

In einer SOA werden Funktionalit√§ten in Diensten (Services) gekapselt. Durch die Interaktion mit der wohldefinierten Schnittstelle des Dienstes ist der Service Consumer nicht unmittelbar mit der Gesch√§ftlogik verbunden, sondern lose an diese gekoppelt. Daraus resultiert, dass die Dienstimplementierung bzw. die Dienstfunktionalit√§t f√ľr den Service-Consumer m√∂glichst transparent gehalten werden soll, damit dieser entsprechend mit dem Dienst interagieren kann.

Das Prinzip der losen Kopplung dient der Förderung von Wiederverwendbarkeit, Weiterentwicklung und Interoperabilität. Der Anbieter der Fähigkeit muss durch das Prinzip der losen Kopplung nicht mehr der Anbieter des Services sein, der die Nutzung der Fähigkeit erlaubt, sondern kann auch als Mittelsmann dienen.

Die lose Kopplung von Diensten bietet eine hohe Flexibilität bei der Austauschbarkeit der verwendeten Hintergrundressourcen. Über so genannte Mapping Layer kann hinter einer Schnittstelle ein zusammengesetzter Dienst verwendet werden. Dies ermöglicht die dynamische Einkopplung von neu entwickelten Diensten und eine optimierte Lastverteilung.

Welche Vorteile/Nachteile bringt SOA?

SOA erleichtert die Entwicklung von gro√üen Unternehmenssystemen mit Fokus auf die Skalierbarkeit, Verteilbarkeit, Weiterentwicklung und Wartbarkeit. SOA erm√∂glicht zudem die Orientierung an Gesch√§ftsprozessen eines Unternehmens und erm√∂glicht die Interoperabilit√§t (Zusammenarbeit unterschiedlicher funktioneller Systeme). Durch das einfache Anbieten, Suchen und Nutzen von Diensten √ľber vernetzte Dienstverzeichnisse k√∂nnen durch die Zusammenarbeit von unterschiedlichen Dom√§nen Kosten eingespart werden.

Diese Vorteile sind grunds√§tzlich abzuw√§gen gegen√ľber den Nachteilen, die SOA mit sich bringt. Das Anbieten eines Services erfordert eine Standardisierung von Gesch√§ftsprozessen und Daten in textuelle Repr√§sentationen (XML, JSON). Diese sind jedoch nicht f√ľr alle Einsatzzwecke sinnvoll (z.B. multimediales Streaming). Durch die Transformation in standardisierte Textformate k√∂nnen Performanceverluste eintreten. Ein weiterer Nachteil ist, dass die Planung und Modellierung von Service-orientieren Architekturen inkl. der an diese gekoppelten Gesch√§ftsprozesse aufw√§ndig sein kann.