Hauptseminar Web Engineering im WS2007/2008 - Thema: Mashup-Engines

Sandro Weiser

Professur Verteilte und Selbstorganisierende Rechnersysteme
Technische Universität Chemnitz
Chemnitz, Deutschland

1. Einleitung


Mashup ist ein typischer Web 2.0 Begriff. Das heißt in diesem Fall, dass er eine Wortneuschöpfung darstellt und sich die Technologie dahinter ständig weiterentwickelt. Deshalb wird versucht zu klären, was der Begriff bedeutet, wie er interpretierbar ist und was so neu an dieser Technologie ist.


2. Hauptteil: Was ist die Technik dahinter


Begriffe:


Frei übersetzt bedeutet das Wort "Mashup" im Englischen einfach "Vermischung". Es ist ähnlich wie bei DJ's (Disc Jockey): es werden Inhalte neu zusammen gemischt [1] (mixup), was ähnlich dem Begriff Mashup ist.
Mashup-Engines ermöglichen ein benutzerfreundliches Erstellen von Mashups meist direkt im Browser und die erstellten Mashups auf Webseiten einzusetzen (deploying), welche diese Mashup-Engine (noch) unterstützen muss.

Genauer:


Die ersten Mashups mischten genau 2 unterschiedliche Datenquellen zusammen, die mit Hilfe von API's abgefragt wurden. Heute definiert man den Begriff so, dass man beliebig viele Datenquellen kombiniert und das Ergebnis wird als Mashup bezeichnet. Siehe auch ZDNet Video: What is a Mashup? (5min).

Typen:


Begriffsabgrenzung


Widget, Gadget:
Im Unterschied zu Mashups: Widgets bzw. Gadgets können - müssen aber nicht - mehrere API's kombinieren, um Datenquellen abzufragen. Widgets integrieren sich in vorhandene Benutzeroberflächen, im Web oder auch auf dem Desktop. Dazu müssen sie nachinstalliert werden. Beispiele für Desktop Widgets sind die Windows Sidebar, Apple Desktop Widgets oder Superkaramba Widgets für KDE. Beispiele für Web Widgets sind die Erweiterungen für Google Maps oder Gadgets, die man auf der anpassbaren persönlichen Suchseite von Google (iGoogle) hinzufügen kann. Als Beispiel für Google Gadgets sei z.B. ein Sudoko-Spiel genannt, das gar keine API benutzt um Datenquellen zu lesen.

Web-Portal:
Ein Web-Portal basiert in der Regel auf eigenen Standards: Web Services for Remote Portlets (WSRP) [5] und JSR (Java Specification Request) 168 [6]. Die Inhalte werden beim Web-Portal vom Server zusammengesetzt und nicht vom Client. Mashups sind viel mächtiger im Vergleich zu Web Portalen.

Plug-In:
Der Begriff Plug-In kommt aus der Software-Technologie und bezieht sich deshalb auch mehr auf Software. Ein Plug-In benötigt immer die API des Programms bzw. Frameworks, welches es erweitern soll.


3. Was bieten sich für Anwendungsmöglichkeiten?


Architektur Mashups/Mashup-Engines

Architektur Mashups/Mashup-Engines


Mashups greifen in der Regel über API's auf Web-Services, welche von Internetdiensten wie Google, Amazon, ... angeboten werden, zu.
Mashup-Engines ermöglichen es zusätzlich, mit Hilfe der Engine, weitere Datenquellen abzufragen.


Datenquellen


Mashups:


+ Mashup-Engines:


Hier sind nur einige Beispiele für Datenquellen aufgelistet, das sich die Liste ständig erweitert.
Neuere Generationen von Mashups greifen nicht nur über API's, sondern auch immer häufiger auf XML-Feeds oder über andere Techniken auf das Internet zu.
Weiter gehen Mashup-Engines. Sie greifen nicht nur auf die einfachen Datenquellen, wie die Mashups zu, sondern ermöglichen es, selbst auf fertig gerenderte Webseiten, direkt innerhalb des Browsers zuzugreifen und auch diese zu verändern. Oft bieten Mashup-Engines noch weitere spezifische Methoden, um auf weitere Datenquellen zuzugreifen.


4. Für was wurde es schon benutzt?


Auf dem folgenden Bild wurde eine Beispielanfrage an housingmaps.com, für die Region Washington D.C. für Häuserpreise im Bereich 1500 bis 2000 Dollar mit mindestens 2 Räumen, ausgeführt.


Webseite http://www.housingmaps.com

Webseite http://www.housingmaps.com mit Beispielanfrage


Auf der linken Seite werden die Positionen der Häuser direkt auf der Karte (Google Maps) eingeblendet, während auf der rechten Seite die Daten der Häuser angezeigt werden und direkt zum jeweiligen Angebot verlinkt wird. Oben auf der Seite befindet sich verschiedene Auswahlfelder, z.B. für die Regionen und den Preis und Filter zum Eingrenzen der Ergebnisse.

Statistiken


Verteilung der Mashups auf einzelne Kategorien (Tags)

Verteilung der Mashups auf einzelne Kategorien (Tags): http://www.programmableweb.com/mashups


Die Statistik der Mashups vom Dezember 2007 auf (ProgrammableWeb.com) zeigt, dass dort


Weiterhin ist im zeitlichen Verlauf der Statistiken auf ProgrammmableWeb.com, dass der Mapping-Anteil sinkend ist. Zu der Mapping-Kategorie zählen auch die Kartendarstellungen. Der hohe Anteil dieser Kategorie ist historisch bedingt, da die ersten Mashups vor allem Daten auf Karten via Google Maps anzeigten.
Im Dezember 2007 wurden täglich ca. 3,2 neue Mashups pro Tag gezählt.


In der folgenden Mashup-Matrix wurden alle die Mashups ausgesucht, die die 2 API's von GoogleMaps und Amazon benutzen (kombinieren).


Mashup-Matrix

Mashup-Matrix: http://www.programmableweb.com/matrix


Die Matrix basiert auf der originalen Definition von Mashups, dass ein Mashup immer genau 2 API's benutzt (miteinander kombiniert) um Anfragen an Datenquellen zu stellen.
Auf der linken Seite ist eine Auswahl an API's aufgeführt. Dieser API wird eine Zahl zugeordnet. Oben sind noch einmal die selben API's mit den Zahlen von der linken Seite.
Die Matrix zeigt dann an, wie viele Mashups genau diese 2 API's miteinander kombinieren. Ein Mausklick auf diese Zahl zeigt dann an, welche Mashups das genau sind.


5. Beispiele für Mashup-Engines


Um die Yahoo-, Microsoft- oder Google-Engine benutzen zu können, muss man sich mit der jeweiligen E-Mail-Adresse anmelden, das heißt im Fall Google (z.B.) also mit einer Google-E-Mail-Adresse. Bei der Google-, Intel- oder Orchestr8-Engine muss man zusätzlich eingeladen werden, um diese benutzen zu dürfen. Die Intel Mashmaker-Engine befindet sich noch in der Design- bzw. Implementierungsphase ("We'll be sending out the first batch of invites right after Intel Developer forum").
Wie man sehen kann, sind alle großen Internetfirmen vertreten. Dazu gesellen sich einige kommerzielle Mashup-Engines wie z.B. JackBe und Serena Business Mashups.


Als Beispiel ist die Yahoo Pipe "eBay Price Watch" im Yahoo Pipes Editor im folgenden Bild dargestellt.


Yahoo Pipes

Yahoo Pipes: http://pipes.yahoo.com/pipes/


Die bekannteste Mashup-Engine ist Yahoo Pipes. Sie unterstützt das Zusammenstellen von Mashups im Webbrowser. Dazu kann Drag-and-Drop benutzt werden, um die einzelnen Datenquellen, Filter oder sonstigen Module zu platzieren. Alle verfügbaren Module sind auf der linken Seite aufgelistet. Die Module werden nach dem Platzieren durch Pipes verbunden, daher auch der Name Yahoo Pipes.
Man kann die Pipe jederzeit testen und sich den "Pipe Output" anschauen (dieses Modul müssen alle Pipes haben).
Das Mashup ist nach Fertigstellung auf der persönlich anpassbaren Yahoo-Seite (mein Yahoo!) als Modul einbindbar.


Microsoft Popfly unterscheidet sich kaum von Yahoo Pipes und ist im folgenden Bild dargestellt.


Microsoft Popfly

Microsoft Popfly: http://www.popfly.com/


Microsoft Popfly setzt Microsoft Silverlight voraus und damit (noch) Microsoft Windows. Dies ist nötig, da Popfly sehr viele optische Effekte von Silverlight benutzt. Am besten kann man dies im Beispielvideo (30s) sehen, in dem eine Beispielanwendung erstellt wird, die Bilder aus Flickr, die Küsten oder Ozeane darstellen, in Virtual Earth anzeigt.
Neu ist der Popfly Explorer [7] für Visual Studio, der ein Erstellen von Mashups direkt in Visual Studio ermöglicht. System Voraussetzung ist die Visual Studio 2005 Express Edition oder höher und Windows XP, Windows Server 2003, Windows Vista.


Der Google Mashup Editor (kurz GME) unterscheidet sich von Yahoo Pipes/Microsoft Popfly. Er ist der einzigste Mashup Editor, bei dem die Anwendungen mittels Source Code Editor erstellt werden müssen.
Im Bild sieht man die Sandbox, in der die erstellten Anwendungen getestet werden können.


Google Mashup Editor

Google Mashup Editor (GME): http://editor.googlemashups.com/


Im Bild sieht man die Vorschau, in der die erstellten Anwendungen getestet werden können. Das Erstellen der Anwendung mittels Source Code ist damit um einiges schwieriger, als bei Yahoo Pipes oder Microsoft Popfly. Es ist aber sehr viel Dokumentation vorhanden, welche auch auf der rechten Seite im Editor einblendbar ist und Hilfe zu den einzelnen Google Mashup-Tags (GM-Tags) anzeigt. Die Anwendung kann dabei aus beliebigen HTML, CSS, JavaScript und GM-Tags bestehen und muss nur von <gm:page> Tags eingerahmt werden.
Die Suche nach Fehlern in der Anwendung ist zur Zeit nur über die Firefox Erweiterung Firebug möglich, welche es z.B. erlaubt JavaScript Fehler anzuzeigen, das Dokument Objekt Modell (DOM) anzuzeigen und JavaScript zu debuggen. [8]
Die Anwendungen sind als Google Gadget bzw. Mashup auf der personalisierten Google Suchseite einsetzbar (deploying), in Zukunft auch auf jeder beliebigen Webseite.


Ein anderes Konzept verfolgt Orchestr8.


Architektur Orchestr8

Architektur Orchestr8


das Architekturdiagramm [9] ist sehr detailliert und zeigt welche Standards Orchestr8 unterstützt und wie es aufgebaut ist. Die Engine kombiniert Mashups mit einer Serviceorientierten Architektur (SOA).
Dies wird über einen integrierten Applikationsserver und einen Web-Services Stack bewerkstelligt. Weiterhin eingebaut sind vielfältige Möglichkeiten Datenquellen abzufragen und Daten zu bearbeiten.
Über einen Proxy können die Mashups dann in existierende Webseiten eingebunden werden.
Die folgenden Bilder sind selbsterklärend und zeigen, Orchest8,


kann auf der Seite automatisch Micro-Formate finden und einlesen

kann auf der Seite automatisch Micro-Formate finden und einlesen,


kann Informationen, die im Kontext zur aktuellen Seite stehen, anbieten

kann Informationen, die im Kontext zur aktuellen Seite stehen, anbieten,


kann Web-Services (der aktuellen Seite zuordnen und) benutzen und so noch mehr Informationen liefern

kann Web-Services (der aktuellen Seite zuordnen und) benutzen und so noch mehr Informationen liefern,


kann beliebige Webseiten scannen und diese Informationen verwerten

kann beliebige Webseiten scannen und diese Informationen verwerten


und bietet noch viele weitere Möglichkeiten.
Fast jede Woche liefert AlchemyPoint neue Aktualisierungen der Software, welche Fehlerbereinigungen, neue Funktionen und vieles mehr bieten.


6. Zusammenfassung, Ausblick




LITERATUR

[1] P. Woods, Die neue der Informationsaufbereitung: Mashup - was ist das?, http://www.netzwelt.de/news/74895_2-mashup-was-ist-das.html, 2.12.2006

[2] JackBe Corporation, The Enterprise Web 2.0 Blog: Optimal Architectures for Consumer and Enterprise Mashups, http://blogs.jackbe.com/2007/08/difference-between-consumer-and.html, 16.8.2007

[3] W3C, Widgets 1.0: W3C Working Draft 13 October 2007, http://www.w3.org/TR/widgets/, 15.10.2007

[4] Frauenhofer Institut, Definition und Einsatz von Unternehmensportalen: Was ist ein Portal?, http://www.gurzki.de/publications/padem/Was%20ist%20ein%20Portal/, Juni 2004

[5] OASIS, Web Services for Remote Portlets Specification http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrp, August 2003

[6] Java Community Process, JSR 168: Portlet Specification: Read and Update Event Modell, http://www.jcp.org/en/jsr/detail?id=168, 27.10.2003

[7] Microsoft Popfly, Popfly Explorer für Visual Studio und Visual Studio Express, http://www.popfly.com/Overview/Explorer.aspx, 12.12.2007

[8] Google Mashup Editor, Google Code Home: Google Mashup Editor FAQ, http://code.google.com/support/bin/topic.py?topic=11558, 12.12.2007

[9] Orchestr8, Developers: Platform Overview, http://www.orch8.net/dev/index.html, 12.12.2007

[10] Intel, MashMaker: Intel Forschungsarbeit von der ACM SIGMOD Konferenz 2007 (PDF), http://berkeley.intel-research.net/rennals/pubs/mashmaker_icfp.pdf, September 2007