Services im Gleichgewicht
Services im Gleichgewicht Die Größe der Services wird im SOA-Umfeld nach wie vor intensiv diskutiert. Eine passende Klassifikation kann für Klarheit sorgen und den IT-Abteilungen helfen.

Web Services können in einer SOA (service-oriented architecture) von sehr unterschiedlicher Art sein. Einerseits lassen sich businessorientierte Services mit den Geschäftsprozessen als treibender Kraft identifizieren. Andererseits gibt es Software, die die Implementierung von applikationsorientierten Services mit hohem Wiederverwendungsgrad anstrebt. Aber welche Services sollten Produkte anbieten und wie sollten sie geschnitten sein? Wie können IT-Abteilungen die benötigten Services kombinieren? Feingranulare Services (fine-grained services) bündeln immer nur eine kleine Menge von Funktionen. Die Applikation bietet dann mehrere einzelne Operationen mit dem Fokus auf die Datenobjekte (entities) an. Um einen komplexen Geschäftsprozess abbilden zu können, ist eine größere Anzahl von Service-Aufrufen erforderlich. Gleichzeitig orientieren sich diese Services mehr an der Funktionalität der Anwendung und unterliegen damit dem Bottom-up-Ansatz. Aufgrund ihrer allgemeinen Ausrichtung besitzen feingranulare Services einen hohen Wiederverwendungsgrad. Allerdings erfordert dies eine selbständige Abbildung der Logik auf die Services durch die Prozesse. Zudem sind applikationsorientierte Services wegen ihrer Unabhängigkeit sehr robust gegenüber Änderungen in den Geschäftsprozessen. Ohne eine Versionierungsstrategie können Änderungen in der Applikation enorme Auswirkungen auf bestehende Prozesse haben. Grobgranulare Services (coarse-grained services) hingegen schließen eine größere Menge an Funktionen in Form einer abstrakten Schnittstelle ein. Das Service-Design orientiert sich an den Geschäftsprozessen (Top-down), was zu einer kleineren Anzahl vorgangsorientierter Verarbeitungsschritte führt. Da die Geschäftsprozesse aber durch ihre individuelle Ausprägung gekennzeichnet sind, können diese Services kaum wiederverwendet werden. Zudem ändern sich Geschäftsprozesse häufig. Dies erfordert eine Architektur, in der der Aufwand für Änderungen von Services gering ausfällt. Das Thema Versionierung verliert dagegen angesichts der individuellen Nutzung an Priorität. Die Kunst beim Design besteht darin, die richtige Balance zwischen fein- und grobgranularen Services zu finden. Orientiert man sich vorwiegend an den Geschäftsprozessen, verliert man schnell den Grundgedanken einer vorgefertigten und vielfach einsetzbaren Applikation. Hat man dagegen nur die Applikation im Fokus, wird das Entwickeln von Prozessen erheblich schwerer. Einen »Goldenen Schnitt« gibt es im Service-Design bislang leider nicht. So kann es nur einen Mittelweg als Lösung geben. Standardapplikationen bieten in Form von horizontal ausgerichteten Funktionen feingranulare, atomare Services an. Auf diese Services können bei Bedarf individuelle und anpassbare Business-Services aufgesetzt werden. Zur Realisierung kann eine Engine für den Standard BPEL (Business Process Execution Language) dienen, in der Skripte die Business-Logik beinhalten und die unabhängig von der Applikation geändert werden können. Im Schichtenmodell der Web Services führt dieses Vorgehen zu einer Trennung von Applikations- und Business-Services.