Acht Grundprinzipien von serviceorientierter Architektur (SOA)

Dies ist der erste einer sechsteiligen Artikelserie über serviceorientierten Architektur (SOA). Dieser Beitrag erläutert grundlegenden SOA-Prinzipien.

Dies ist der erste Artikel einer sechsteiligen Serie über die Grundsätze der Serviceorientierung. Thomas Erl gibt anhand von Auszügen aus seinem zweiten SOA-Buch "Service-Oriented Architecture: Concepts, Technology, and Design" Einblicke in das Paradigma des serviceorientierten Designs, ergänzt durch zusätzliche Kommentare.

Der Einsatz von SOA geht oft einher mit der Erwartung, dass viele Vorteile, die mit serviceorientierten Technologien verbunden sind, einfach durch ihre erfolgreiche Umsetzung realisiert werden. Doch einige der längerfristigen und strategisch wichtigen Ziele eines SOA-Transfers (wie erhöhte Flexibilität) können nur dann vollständig erreicht werden, wenn ein konsequente Ansatz bei der Gestaltung der Automatisierungslogik verfolgt wird.

Bevor eine serviceorientierte Lösung aufgebaut werden kann, muss man verstehen, was einen individuellen Service für SOA geeignet macht, um seine strategischen Ziele zu unterstützen. In anderen Worten: Die Frage, wie Dienste erstellt werden können, um serviceorientiert zu sein, muss frühzeitig im Lebenszyklus eines Projekts geklärt werden.

Die Antwort liegt in einem Design-Paradigma, das entstanden ist, um das serviceorientierte Architekturmodell eindeutig von seinen Vorgängern zu unterscheiden. Dieses Paradigma ist die Serviceorientierung – ein Ansatz zur Modellierung von Business-Automatisierungslogiken, der zu einer Reihe von allgemein anerkannten Prinzipien geführt hat. Werden diese Prinzipien angewendet, lassen sich primitive Komponenten (Services, Beschreibungen, Nachrichten) positionieren und formen, wie man sie in einer typischen serviceorientierten Umgebung findet.

In dieser Artikelserie werden wir zunächst zeigen, wie serviceorientierte Prinzipien auf Einheiten zur Automatisierungslogik angewendet werden können, die Dienstleistungen ermöglichen. Im letzten Teil der Serie diskutieren wir dann, wie sich Serviceorientierung als Paradigma jenseits der einzelnen Service-Levels für Service-Layer anwenden lässt, die ganze Unternehmensdomänen einkapseln. Zunächst aber lassen Sie uns beginnen mit der Erklärung, was Serviceorientierung ist.

Serviceorientierung und die "Separation of Concerns"

Serviceorientierung hat viele Einflüsse, aber seine Wurzeln liegen in einer Software-Engineering-Theorie „Separation of Concerns“ (etwa „Trennung von Belangen“). Diese Theorie basiert auf der Vorstellung, dass es von Vorteil ist, ein größeres Problem auf eine Reihe von kleineren, individuellen Elementen herunterzubrechen. Dies macht es möglich, die für die Problemlösung erforderliche Logik ebenfalls in kleinerer Stücke zu zerlegen. Jedes Stück der Logik repräsentiert dabei ein bestimmtes Anliegen.

Die Theorie wurde bereits über etablierte Paradigmen wie Objektorientierung und komponenten-basierte Ansätze umgesetzt. Serviceorientierung lässt sich als eine eigene (und neuere) Art und Weise ansehen, um diese Trennung von Problemen zu realisieren. Genauer gesagt: Bestimmte Schlüsselprinzipien der Serviceorientierung liefern einen eindeutigen Ansatz, wie die Trennung ausgeführt wird. Auf diese Art und Weise schaffen die Prinzipien ein Grundlagenparadigma für SOA. Wenn Sie die gemeinsamen Merkmale moderner SOA-Lösungen herausarbeiten, werden Sie feststellen, dass viele Implementierungen dadurch miteinander verknüpft sind, wie sie die Probleme trennen.

Gemeinsame Grundsätze der Serviceorientierung

Es gibt viele Meinungen darüber, was Serviceorientierung ist. Sie stammen von öffentlichen IT-Organisationen, Händlern und Herstellern oder Beratungsunternehmen. Als Teil eines SOA-Analyseprojekts erforsche ich die Zukunft der Serviceorientierung seit längerer Zeit. Das Ziel des Projekts ist es, eine Reihe gemeinsamer Prinzipien zu identifizieren und zu beschreiben, die von allen großen SOA-Plattformen unterstützt werden. Dadurch soll eine reale Definition des Paradigmas der Serviceorientierung geschaffen werden. Unser Fokus in dieser Artikelserie konzentriert sich daher auf diese Prinzipien, die üblicherweise in der SOA-Industrie akzeptiert und durch entsprechende Anbieter-Plattformen unterstützt werden.

Die bisherigen Ergebnisse zeigen folgende acht Grundprinzipien:

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

Von diesen acht Prinzipien können die Autonomie, die lose Kopplung, die Abstraktion und die Notwendigkeit für einen formalen Vertrag als Grundprinzipien betrachtet werden. Diese bilden die Grundlage von SOA. Obwohl jede dieser acht Prinzipien andere unterstützt oder von den anderen unterstützt wird, ermöglichen diese vier direkt die Realisierung der restlichen Prinzipien. Das Studium der Beziehungen zwischen diesen Prinzipien ist interessant und führt zu einem tieferen Verständnis der einzigartigen Dynamik, die mit der Serviceorientierung eingeführt wird.

Erwähnenswert ist auch, dass Web-Services natürlich eine Teilmenge dieser Prinzipien unterstützen. Dies ist ein Hinweis darauf, warum die Web-Services-Plattform als geeignet gilt für den Aufbau serviceorientierter Lösungen. In einem späteren Artikel dieser Serie werden wir einige Beziehungen zwischen den Prinzipien diskutieren sowie den Punkt, wie sich diese durch den Einsatz von Web-Services realisieren lassen.

Wie es weiter geht

Um vollständig zu verstehen, wie Serviceorientierung eine serviceorientierte Architektur formt, müssen wir die Auswirkungen erkunden, die Anwendungen auf alle wichtigen Teile haben, die zu SOA gehören. Dazu werden wir uns in Teil 2 dieser Serie auf die ersten beiden Prinzipien der losen Kopplung und der Verwendung eines formalen Vertrags konzentrieren.

Dieser Artikel enthält Auszüge aus "Service-Oriented Architecture: Concepts, Technology, and Design" von Thomas Erl (ISBN 0131858580, Prentice Hall/Pearson PTR).

Ü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. Thomas 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). Thomas hat mit Studien zur Serviceorientierung und der Entwicklung einer Mainstream SOA-Methodik wesentliche Beiträge für die SOA-Industrie geleistet. Er ist zudem an einer Reihe von Fachausschüssen und Forschungsprojekten beteiligt und übernimmt häufig Vorträge, Schulungen und Beratungsaufträge.

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

Erfahren Sie mehr über Softwareentwicklung