SOA-Risiken werden gern verschwiegen

24.08.2005
Von Stefan Grasmann

Ein grundsätzliches Problem ist zum Beispiel, dass selten zwischen den verschiedenen Einsatzzwecken von Web-Services unterschieden wird. Die Benutzung von Services innerhalb einer Applikation als Remoting-Strategie unterscheidet sich in dramatischer Weise von ihrem Einsatz zur Öffnung eines Systems nach außen beziehungsweise zur Bereitstellung einer Integrationsplattform. Während Erstere - man könnte sie auch als Intra-Application-Services bezeichnen - je nach Anforderung zum Teil schon heute mit den aktuellen Entwicklungs-Tools umgesetzt werden können, scheinen Cross-System-Services auf die Verfügbarkeit der zweiten Generation der WS-Standards angewiesen zu sein.

Im Serviceumfeld wartet viel Neuland auf die Architekten, viele Fragen wurden bislang kaum beantwortet, weil noch die breite Basis an Erfahrungen fehlt. Doch egal wie die Antworten ausfallen: Web-Services sorgen tendenziell für eine stärkere Verteilung unserer Applikationen. Dies hat bisher noch nie zu einer Verringerung der Komplexität geführt - ganz im Gegenteil: Laut Martin Fowler, einem anerkannten Fachmann auf dem Gebiet verteilter Enterprise-Applikationen, ist das beste Entwurfsmuster für verteilte Applikationen, die Verteilung möglichst zu vermeiden.

SOA wird kommen - so viel steht fest. Wichtiger als der Zeitpunkt ist jedoch ein überlegtes Vorgehen, angepasst an konkrete fachliche Anforderungen, kombiniert mit einem langsamen Herantasten an die neue Technologie. Für Entscheider ist deshalb die zentrale Herausforderung, die vielen Hürden auf dem Weg zu einer erfolgreichen Service-orientierten Architektur schrittweise und im richtigen Tempo anzugehen.

Fragen, die auf Antwort warten

• Wie viele Operationen oder Messages gehören in einen Service? Aktuelle WSDL-Dateien reichen von wenigen Kilobyte bis zu mehreren Megabyte. Ein prominentes Beispiel ist die WSDL-Schnittstellen-Definition von Ebay mit 1,3 Megabyte. Machen solche Schnittstellen wirklich Sinn? Wie lassen sie sich sinnvoll aufteilen?

• Wie gut lässt sich die Definition von Datentypen in XML-Schemata auslagern, um sie in verschiedenen WSDL-Dateien wiederverwenden zu können? Erlauben das die aktuell verfügbaren Werkzeuge?

• Was machen unsere Tools, wenn ein Client mehrere dieser miteinander verwandten Services nebeneinander verwenden will? Wie sehen die generierten Proxies aus?

• Was passiert, wenn man in einer bereits veröffentlichten Schnittstelle etwas vergessen hat und ergänzen will? Die WSDL-Datei von Ebay hat aktuell die Versionsnummer 405!

• Web-Services sind zustandslos zu implementieren. Aufrufe sollen sich gegenseitig nicht beeinflussen. Aber wie kommt man im Server - fachlich gesehen - ganz ohne Session-State aus?

• Atomare Transaktionen sollte man über Web-Services nicht unbedingt verwenden - Long Running Transactions mit Kompensationsstrategien seien besser geeignet. Haben wir wirklich für alle Operationen in unserer Business-Logik eine adäquate Umkehroperation?

Enterprise Service Bus für viele noch zu groß