Mashups: EAI mit Web 2.0

13.06.2007
Von Frank Schönefeld

Vermischung der Welten

Mashups (engl. Vermischung, Vermaschung) machen ihrem Namen alle Ehre: Prinzipienfrei mischen sie Web-Applikationen auf allen drei genannten Ebenen und das unter Umständen sogar gleichzeitig. Diese Eigenschaft unterscheidet sie grundlegend von den reinen Vorgehensweisen klassischer Anwendungsintegration. Beginnend mit relativ simplen Methoden wie dem Screen-Scraping der Mutter aller Mashups für das Web 1.0 - lassen sich so einfache Inhalte aus Webseiten mittels XML- oder HTML-Parsern extrahieren. Einen Schritt weiter gehen Integrationskonzepte auf Basis von Browser-Erweiterungen, die bereits geladene Seiten nach Belieben verändern. Dazu zählen etwa das Firefox-Plugin "Greasemonkey", "Turn-about" für den Internet Explorer oder die "Google Toolbar". Als konzeptionelle Erweiterung zum Screen Scraping setzen sie auf das so genannte Active Browsing, mit dem sich extrahierte Web-Seiten-Inhalte zusätzlich aktiv für die eigene Verwendung modifizieren und so um weitere Funktionalität anreichern lassen. Typische Aufgaben dafür sind beispielsweise, Werbung auf Web-Seiten auszublenden, Formulare automatisch auszufüllen oder fehlende Seitenfunktionalität hinzuzufügen.

Zusätzlich zu der Integration auf Darstellungsebene - den Äußerlichkeiten also - geht es nun darum, die inneren Werte der Applikationen anzuzapfen und zu vereinen. Dabei konkurrieren zwei Ansätze: Die Übertragung des alten RPC-Paradigmas der verteilten Verarbeitung in die Web-Welt - via XML-RPC oder Web-Services und Soap sowie der Representational State Transfer (REST) nach Roy Fielding. REST bietet einen durchweg praktikablen Ansatz für die Realisierung eines Integrationsprotokolls. Viele Suchmaschinen, Shops oder Buchungssysteme offerieren ihre Dienste mittlerweile auf Basis des REST-Protokolls. Als zentrale Steuerungsinstrumente für eine Integration auf REST-Basis dienen die grundlegenden HTTP-Befehle GET, PUT, POST oder DELETE, die auf Daten angewendet werden. Eine konsequent nach REST aufgebaute Client-Server-Architektur darf dabei nur Ressourcen wie Seiten, Bilder oder CGI-Skripte kennen, die über URIs (Universal Resource Identifiers) angesprochen werden. Die Besonderheit: Client und Server kommunizieren zustandslos miteinander. Dies bedeutet, dass unter REST der vorherige oder auch zukünftige Verlauf einer Kommunikation keine Rolle spielt. Deshalb müssen alle Informationen folglich im Aufruf einer Ressource enthalten sein. Während also klassische Client-Server-Technik auf Remote Procedure Call (RPC) aufsetzt, werden Zustände und -übergänge innerhalb REST über Ressourcen abgebildet.