- 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:




