Acht Grundprinzipien von SOA: Serviceverträge und lose Kopplung

Dies ist der zweite Teil einer Serie zu serviceorientierter Architektur, der Serviceverträge und die Nutzung lose gekoppelter Services vorstellt.

Anmerkung der Redaktion: Dies ist der zweite Artikel einer sechsteiligen Artikelserie über die Grundsätze der Serviceorientierung. Im ersten Teil haben wir das Design-Paradigma der Serviceorientierung vorgestellt.

Das Design-Paradigma basiert auf acht gemeinsamen Grundsätzen:

  • Services teilen einen formalen Vertrag;
  • Services sind lose gekoppelt;
  • Services abstrahieren von der zugrunde liegenden Logik;
  • Services sind zusammensetzbar;
  • Services sind wiederverwendbar;
  • Services sind autonom;
  • Services sind zustandslos;
  • Services sind erkennbar.

Diese gemeinsamen Grundsätze von SOA repräsentieren eine Industrie-Level-Perspektive der Serviceorientierung, wie sie durch Studien der Firma SOA Systems etabliert wurden. In Teil 2 unserer Artikelserie setzen wir uns nun genauer mit diesen Prinzipien auseinander und diskutierten die ersten beiden Grundsätze aus der Liste: die notwendige Verwendung von Serviceverträgen und die Generierung von lose gekoppelten Beziehungen zwischen Services.

Die Rolle von Serviceverträgen

Formal sind Services so definiert, dass man eine oder mehrere Servicebeschreibungsdokumente benutzt. In der Welt der Webservices sind die Beschreibungsdokumente für technische Services in der Regel die WSDL-Definition und das XSD-Schema. Eine dritte Art von Dokument, das immer wichtiger wird, ist die Policy. Jedes dieser Dokumente kann als Servicemetadatum klassifiziert werden, da jedes Informationen über den Service liefert.

Servicebeschreibungsdokumente können so interpretiert werden, dass sie einen Dienstleistungsvertrag etablieren – eine Reihe von Begriffen und Bedingungen, die von einem potenziellen Diensteanforderer eingehalten und akzeptiert werden müssen, um eine erfolgreiche Kommunikation und Interaktion zu ermöglichen. (Beachten Sie, dass ein Servicevertrag sich auch zusätzlich auf nicht-technische Dokumente oder Rechtsvereinbarungen beziehen kann wie SLAs.)

In SOA stellen Serviceverträge eine formale Definition bereit von:

  • dem Service-Endpunkt;
  • jeder Service-Operation;
  • jeder Input- und Output-Nachricht, die von einer Operation unterstützt wird;
  • dem Datenrepräsentationsmodell der Inhalte der einzelnen Nachricht;
  • Regeln und Besonderheiten des Services und seiner Operationen.

Serviceverträge definieren daher einen großen Teil der zugrunde liegenden Architektur einer Lösungsumgebung. Sie können sogar semantische Informationen liefern, die erklären, wie Dienste als Teil dieser Lösung eine bestimmten Aufgabe ausführen werden. Auf jeden Fall legen diese Information die Bedingungen der Verpflichtung fest, mit der die Verbraucher einer Dienstleistung übereinstimmen müssen.

Da dieser Vertrag von den Services gemeinsam genutzt wird, ist das Design extrem wichtig. Serviceanforderer, die diesem Vertrag zustimmen, können von der Definition abhängig werden. Daher müssen Verträge sorgfältig gepflegt und nach ihrem ersten Release versioniert werden.

Serviceverträge repräsentieren einen Grundpfeiler in der Serviceorientierung und unterstützen oder ermöglichen damit sogar andere Prinzipien wie Serviceabstraktion, Kombinierbarkeit, Auffindbarkeit und - unseren nächsten Diskussionspunkt - die lose Kopplung.

Was es heißt, lose gekoppelt zu sein

Niemand kann vorhersagen, wie sich das IT-Umfeld entwickeln wird. Wie Automatisierungslösungen wachsen, wie sie in die bestehende IT integriert werden oder wann sie im Laufe der Zeit ersetzt werden, lässt sich nie genau planen. 

Der Grund dafür liegt darin, dass diese Anforderungen fast immer von außerhalb der IT-Umgebung kommen. Die Möglichkeit, letztlich auf solch unvorhergesehene Änderungen in einer effizienten Art und Weise zu reagieren, ist ein zentrales Ziel bei der Anwendung von Serviceorientierung. Diese Form von Agilität wird direkt durch die Schaffung einer lose gekoppelten Beziehung zwischen Dienstleistungen unterstützt.

Wie bei herkömmlichen verteilten Architekturmodellen basiert SOA auf dem Konzept, dass die Lösungslogik in mehrere logische Einheiten aufgeteilt ist. Diese logischen Einheiten können zusammengebaut werden, um gemeinsam Geschäftsaufgaben zu automatisieren. Eine der Eigenschaften, die SOA von den Vorgängern unterscheidet, ist, wie diese logischen Einheiten zueinander in Beziehung treten.

An dieser Stelle kommt die Kopplung ins Spiel. Die Kopplung zwischen Programmen kann als ein Maß für die Abhängigkeit zwischen den Elementen betrachtet werden. Je höher die Abhängigkeit, desto enger ist die Kopplung. Liegen keine Abhängigkeiten vor, heißt das, dass der Zustand entkoppelt ist. 

In SOA wird dringend empfohlen, dass die logischen Einheiten (Dienstleistungen) ihre jeweiligen Abhängigkeiten soweit wie möglich minimieren sollten. Diese spezielle Beziehung wird als lose Koppelung bezeichnet und sie wird dadurch erreicht, das man die Abhängigkeiten zwischen einem Dienst und seinem Anforderer begrenzt auf die Informationen, wie sie im Servicevertrag formuliert sind. Dabei sollte der der Servicevertrag so gestaltet sein, dass er nicht unbedingt sehr spezifisch für einen Serviceanforderer ist.

Durch die konsequente Umsetzung dieses Prinzips erreichen neu gebaute Dienste eine bemerkenswerte Unabhängigkeit voneinander. Dies ermöglicht jeder Organisation die Standardisierung auf SOA-Basis. 

Wenn mehrere Diensten in einem serviceorientierten Unternehmen etabliert werden sollten, können diese Dienste in bestimmte Servicemodelle kategorisiert werden. Dies ermöglicht es, dass diese Dienste auf eine bestimmte Logik spezialisiert werden können. Ein zunehmend wichtiges Servicemodell ist der Business-Service, der die Logik eines Service beschränkt auf ein spezifisches Geschäftsumfeld.

Wenn die Standardisierung von Servicemodellen abgeschlossen ist, können größere Domänen eines Unternehmens erfolgreich abstrahiert werden. Dies ermöglicht es Organisationen effektiv, lose gekoppelten Beziehungen zwischen bestimmten Bereichen des Unternehmens durch die Schaffung von Schichten von Dienstleistungen, die die jeweiligen Bereichen repräsentieren, strategisch aufzubauen. 

Dabei werden die Vorteile der losen Kopplung verstärkt - vor allem fördert es die Erhöhung der organisatorischen Agilität. Dies zeigt auch, dass Serviceorientierung, als Paradigma, nicht auf die Service-Design-Ebene beschränkt ist. Seine Prinzipien lassen sich grob auf alle Bereiche im gesamten Unternehmen anwenden.

Und so geht es weiter:

In Teil 3 dieser Artikelserie diskutieren wir zwei weitere Prinzipien von unserer Liste, von denen eines die Serviceabstraktion ist. Dazu werden wir außerdem unsere Erklärung der losen Kopplung erweitern.

Dieser Artikel enthält Auszüge aus "Service-Oriented Architecture: Concepts, Technology, and Design" von Thomas Erl (792 Seiten, Hardcover, ISBN: 0131858580, Prentice Hall / Pearson PTR, Copyright 2006). Für weitere Informationen besuchen Sie www.soabooks.com.

Über den Autor:
Thomas Erl ist SOA-Autor und Herausgeber der Reihe "Prentice Hall Service-Oriented Computing Series von Thomas Erl" (www.soabooks.com). Seine SOA-Bücher gelten weltweit als Top-Seller. Erl ist Gründer von SOA Systems, einer Firma, die auf die strategische SOA-Beratung, -Planung, -Ausbildung sowie auf SOA-Dienstleistungen spezialisiert ist (www.soatraining.com). Er hat mit Studien zur Serviceorientierung und der Entwicklung einer Mainstream SOA-Methodik wesentliche Beiträge für die SOA-Industrie geleistet. Zudem ist der SOA-Experte an einer Reihe von Fachausschüssen und Forschungsprojekten beteiligt und übernimmt Vorträge, Schulungen und Beratungsaufträge. Um mehr zu erfahren, besuchen Sie www.thomaserl.com.

Folgen Sie SearchEnterpriseSoftware.de auch auf Facebook, Twitter und Google+!

Erfahren Sie mehr über Softwareentwicklung

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close