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.
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:
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.

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.
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.
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 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.

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: 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.
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: 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: 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 (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
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 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 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.
[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