Mittwoch, 23. Mai 2012


Artikel

Februar 2008 | Artikel

Der lange Weg zu SOA, Teil 2

(Link zum Artikel: http://www.entwickler.de/dotnet//001517)

Der Weg zur Serviceorientierung auf Basis einer SOA

Text: Dr. Peter Eichhorst
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Composite Applications sind ein neuer Anwendungstypus, bei dem ein serviceorientierter Ansatz im Mittelpunkt steht. Die Einführungsserie stellt die wichtigsten Konzepte vor, die Projektleiter, Architekten und Entwickler bei der Planung und Umsetzung solcher Anwendungen kennen müssen.
Teil 1   Teil 2   

"It is not the strongest of the species, or the most intelligent, but the ones most responsive to change."
In Teil 1 wurde gezeigt, dass die lose Kopplung die wichtigste Voraussetzung für den Bau flexibler Softwaresysteme ist. Die Frage, wie man Anwendungen miteinander lose verbindet, hat eine schlichte Antwort: Indem man sie nicht verbindet. Zwei grundsätzliche Voraussetzungen müssen für eine lose Kopplung erfüllt sein:

  • Die Kommunikation zwischen Services ist ein übergeordnetes Prinzip, von dem die Services nichts wissen, d.h. Service Consumer kennen die Service Provider nicht, weder ihre Adressen, noch ihre Schnittstellen, die den Contract beschreiben.
  • Service Provider kennen ihre Service Consumer nicht, weder ihre Adressen, noch ihre Schnittstellen, die den Contract beschreiben.
  • Der Ablauf der Service Exekutionen ist den Services nicht bekannt, es ist ein übergeordnetes Prinzip.

Anhand des hier aufgezeigten, stark vereinfachten Travel Request Prozesses wollen wir den Weg zur Serviceorientierung in der IT auf Basis einer serviceorientierten Architektur (SOA) aufzeigen:

Direkte Kommunikation der Web Services

Abbildung 7 zeigt die direkte Kommunikation der Web Services miteinander, um den Prozess Travel Request zu implementieren. Wie zu erkennen, sind die Web Services stark gekoppelt, denn zum einen ist der Prozess partiell in verschiedenen Services kodiert, und zum anderen kennen die Services die Schema der aufzurufenden Services, um die notwendigen Transformation durchzuführen. Leider werden nur zu oft solche, oft als SOA Piloten implementierte Lösungen, als SOA konform deklariert, nur weil sie mit Hilfe von Web Services implementiert wurden. Ähnlich wie bei damaligen Pilotprojekten bei der Einführung der Objektorientierung (man hat damals sehr oft geglaubt, dass man nur durch den Einsatz eines C++ Compilers automatisch Objektorientierung erhält), kommt die Ernüchterung schnell und man liest wie Serviceorientierung in Frage gestellt wird. Es ist nicht die Serviceorientierung, sondern in vielen Fällen das Unverständnis für die Serviceorientierung. Pilotprojekte dieser Art kann man sich sparen, solche Systeme sind genau so unflexibel wie gehabt.

Wie sich durch Einbeziehen einer Middleware und einer losen Kopplung der beteiligten Web Services eine Verbesserung erzielen lässt, wird im nächsten Abschnitt beschrieben.

Kommunikation mittels einer Middleware

Eine lose Kopplung kann nur entstehen, wenn Web Services nicht direkt miteinander kommunizieren und die Prozesslogik, d.h. der Ablauf der Web Service Exekutionen (Prozess) von außen in übergeordneter Weise gesteuert wird. Damit Web Services nicht direkt kommunizieren führt man eine Middleware ein, in der Art, dass alle Web Services nur mit dieser Middleware kommunizieren. Der Middleware sind die Schemas aller zu kommunizierenden Web Services bekannt. Damit kann die Middleware die Datentransformationen selber übernehmen, um Nachrichten (XML Dokumente) an Web Services nach erfolgter Transformation zu senden.

Abbildung 8 zeigt die Kommunikation von Web Services via einer Middleware, die Datentransformation übernimmt und Nachrichten entsprechend vorhandener Schemas an Web Services sendet:

Die Frage ist, woher "weiß" die Middleware an welchen Service sie welche Nachricht von welchem Service schicken soll? Ein fast geniales Prinzip liefert die Lösung einer losen Kopplung bezüglich der Datenkommunikation zwischen Web Services. ...

Teil 1   Teil 2   

Kommentare

Gravatar Heinz 04.02.2008
um 17:23 Uhr
sehr guter Artikel #zitieren
Gravatar Dr. Rückstädt 10.02.2008
um 13:43 Uhr
Im Heft ist aber ein anderer Text abgedruckt? Welche Variante ist denn nun die Richtige?
Und muss man Microsofts verworrene Strategie wirklich soviel Platz einräumen? Es ist gibt doch schon funktionierende SOA-Produkte, die wir im Unternehmen seit Jahren einsetzen.
#zitieren