Der Analyst Dana Gardner fasst in einem Blog Eintrag "SOA Insights analysts view IBM’s information umbrella, explore SAP’s Business Objects grab and define ‘Guerilla SOA" (http://blogs.zdnet.com/Gardner/?p=2565) die Diskussionen verschiedener IT Experten und Analysten zusammen. Besonders interessant ist dabei der Abschnitt "On WOA and Guerilla SOA"

Umbrella SOA

Der Begriff "Umbrella SOA" beschreibt den Ansatz der grossen Hersteller SOA als Gesamtarchitektur der IT eines Unternehmens anzusehen. Diese Gesamtarchitektur beschreibt nicht nur die technischen Systeme, sondern auch die Art und Weise, wie Software entwickelt werden soll und wie der Gesamtbetrieb realisiert und kontrolliert werden soll. Also von SOA Governance bis hin zum Bau von Software Factories. Und der Hersteller hat sämtliche Werkzeuge dazu. Und tatsächlich; Die SOA-Modelle vieler Hersteller, Analysten und Berater wirken umfangreich und kompliziert. Hinter vielen dieser Modelle steckt die Vorstellung, mit SOA sämtliche Schwierigkeiten, die nun mal mit dem Bau, dem Betrieb und dem Unterhalt von Informationssystemen verbunden sind, lösen zu können. Hinzukommt der unübersichtliche Wald von Standards, die in Zusammenhang mit der Basistechnologie von SOA - Web Services - entwickelt werden. Beides neigt dazu, die zentralen Vorteile von SOA zu verdecken und SOA als ein Modell erscheinen zu lassen, das komplex und mit sehr grossen Investitionen verbunden ist und nur durch essenzielle Veränderungen der bestehenden IT-Systeme umgesetzt werden kann. 

Web Oriented Architecture

Unter Web Oriented Architecture (WOA - auch Enterprise Web 2.0 oder Enterprise 3.0 genannt) wird ein etwas anderer Ansatz verstanden. Es sollen kleinere Anwendungen basierend auf Web Services realisiert werden können. Dabei soll die Realisierung sehr nahe an den konventionellen Web Anwendungen umgesetzt werden. Dies bedeutet vor allem, dass Web Service Schnittstellen so gestaltet werden, dass sie im "REST Stil", also mit ressourcen-orientierten Interfaces arbeiten. Resource-Centric Interfaces nennt man auch Content-Centric Interfaces. Als Operationen lassen sie lediglich die Standard-HTTP-Methoden GET, POST, PUT und DELETE zu. Die Funktionalität eines Web Service wird mit Resource-Centric Interfaces als implizite Funktion einer Resource umgesetzt, die im Falle eines Aufrufes der entsprechenden HTTP-Methode ausgeführt wird. Eine Ressource kann als Dokument angesehen werden. Der Serviceaufruf ist dann lediglich eine Anforderung dieses Dokuments über das Web. Das Dokument selbst ist eine logische Komponente, die Daten hierarchisch strukturiert und die Operationen auf diesen Daten als Operationen auf einzelnen Dokumentteilen ausführt. Sie ist aber alleine durch die Tatsache, dass ausschließlich HTTP-Methoden als Operationen verwendet werden, sehr mächtig in Bezug auf die Flexibilität und die Möglichkeiten der universellen Ausbreitung eines Dienstes über die gebräuchlichen Internet-Mechanismen.

Guerilla SOA

Wenn mit SOA nur sehr grosse Systeme oder gar ganze Systemlandschaften basierend zu realisieren sind, so ist das für kleine und mittlere Unternehmen oder für Abteilungen, die ein bestimmtes Problem mit Software lösen möchten, kein vernünftiger Weg. Unter Guerilla SOA werden Realisierungen verstanden, die oft an den Vorgaben der zentralen IT Standardisierung vorbeigehen und sich durch einen sehr grossen Pragmatismus auszeichnen. Es wird also die praktische und schnell realisierbare Lösung gesucht. Ob jedoch Guerilla SOA mit WOA tatsächlich immer der wirklich pragmatische Weg ist, bleibt abzuwarten. Denn es ist nicht einfach, Resource-Centric Interfaces einzusetzen. Sie unterscheiden sich substantiell von den üblichen Schnittstellen (Methoden-Orientiert oder Meldungs-Orientiert) und sind gewöhnungsbedürftig.

Pragmatische Umsetzung von SOA

Guerilla SOA kann jedoch auch etwas anders verstanden werden. Als pragmatische Umsetzung von Lösungen basierend auf einer SOA, bedeutet es die Reduktion der einzusetzenden Werkzeuge auf das notwendigste. Dies bedeutet aus meiner Sicht die einfache Erweiterung der üblichen Schichtung von Anwendungen und Architekturen um eine Service- und eine Orchestrierungs-Ebene und damit die Möglichkeit, mit Hilfe von SOA Ordnung in eine bestehende heterogene Systemlandschaft zu bringen und bestehende Systeme weiterzuverwenden. Und es bedeutet ganz sicher eine Beschränkung auf die drei wichtigsten Standards SOAP, WSDL und BPEL. Und es kann bedeuten, dass die Schnittstellen so nahe wie möglich an den bestehenden Systemen realisiert werden, also methoden-orientierte Schnittstellen eingesetzt werden.