# Mashup (Internet)

Mashup (von englisch to mash für vermischen) bezeichnet die Erstellung neuer Medieninhalte durch die nahtlose (Re-)Kombination bereits bestehender Inhalte. Der Begriff stammt aus der Welt der Musik und bedeutet dort im Englischen so viel wie Remix (vgl. Mashup (Musik)). In den deutschen Sprachraum wurde der Begriff rund um das Schlagwort Web 2.0 importiert, da Mashups als ein wesentliches Beispiel für das Neue an Web 2.0 angeführt werden: Inhalte des Webs, wie Text, Daten, Bilder, Töne oder Videos, werden z. B. collagenartig neu kombiniert. Dabei nutzen die Mashups die offenen Programmierschnittstellen (APIs), die andere Webanwendungen zur Verfügung stellen.
So können z. B. Anbieter von Websites über die API von Landkarten und Satellitenfotos auf der eigenen Website einbinden und zusätzlich mit individuellen Markierungen versehen. Auch die API von Flickr wird oft genutzt, um Fotos in neue Anwendungen einzubinden. Eine besonders große Anzahl an Mashups verknüpft dabei geografische Daten, beispielsweise von Google Maps oder von Bing Maps, mit anderen Inhalten wie Fotos oder Kleinanzeigen. Es werden auch in Internetseiten eingebettete Videos genutzt.
Während Mashups zunächst als Spielzeug abgestempelt wurden, machen sich in der Zwischenzeit auch einige kommerzielle Anbieter, z. B. Immobilienanbieter, die oben genannten Möglichkeiten zu Nutze, aber auch im sonstigen geschäftlichen Umfeld stellen sie im Rahmen von situativen Anwendungen eine Option dar. Dies ist speziell für den sogenannten Long Tail of Business interessant.

## Genutzte Technologien

Mashups nutzen überwiegend moderne leichtgewichtige Webarchitekturen und -technologien. Meistens laufen sie im Browser, der dann mittels JSON, Ajax, REST, SOAP, RSS oder Atom mit einem Server kommuniziert. All dies ist relativ unkompliziert bereits großteils mit JavaScript möglich, allerdings gibt es auch Mashup-Umgebungen, die auf eine bestimmte Technologie setzen, die dann beim Endanwender erst installiert werden muss. Beispiele dafür wären Adobe Flash, JavaFX oder Silverlight.

## Anbieter von Mashuptechnologien

Es gibt diverse Anbieter von Mashup-Umgebungen. Oft können Benutzer hier durch grafische Benutzeroberflächen ein Mashup erstellen oder bearbeiten. Beispiele sind:
* Yahoo Pipes (seit Ende September 2015 eingestellt)
* Microsoft Popfly (seit Ende August 2009 eingestellt)
* IBM Mashup Center
* Google Mashup Editor (seit Januar 2009 eingestellt)
* JackBe Presto
* Mozilla Ubiquity
* Serena Business Manager, vormals Serena Business Mashups
* ARIS MashZone, Anbieter: IDS Scheer
* SAP Business ByDesign
Die einzelnen Umgebungen unterscheiden sich hauptsächlich in ihrer Zielgruppe. Einzelne Umgebungen richten sich an Softwareentwickler, andere an Konsumenten oder an Mitarbeiter von Fachabteilungen in Unternehmen.

## Kriterien zur Kategorisierung von Mashups

* Handelt es sich um ein client- oder serverseitiges Mashup? Werden Daten in einem Application Server aggregiert und aufbereitet, bevor sie „verschickt“ werden, oder passiert alles auf Clientseite mit Hilfe von JavaScript?
* Wie wird die Orchestrierung realisiert? Werden die einzelnen Komponenten in Form eines Flows verbunden (Daten fließen von einer Komponente zur nächsten) oder ist es eventbasiert, so dass die einzelnen Komponenten durch das Event-Listener-Entwurfsmodell verbunden sind?
* Wie werden Daten transportiert? Gibt es globale Variablen, in denen die Daten abgelegt und mit denen alle Komponenten arbeiten dürfen, oder werden die Daten als formale Parameter an die nächste Komponente übergeben?
* Wird bei jedem Seitenaufruf eine neue Instanz erzeugt? Oder sehen alle Nutzer die gleiche Instanz, was zur Folge hätte, dass Aktionen eines Nutzer A beeinflussen könnten, was Nutzer B sieht.
* An wen richtet sich die Entwicklungsumgebung: Sind es erfahrene Webnutzer, jeder oder Programmierer? Und verbunden damit:
* Wie sieht die Entwicklungsumgebung aus: Werden Drag and Drop, Bearbeitung von Quelltext oder eine Kombination aus beidem angeboten?
* Sind Browsererweiterungen (z. B. Adobe Flash) erforderlich?
** zum Ausführen des Mashups
** zum Ausführen der Entwicklungsumgebung
* Kann man das Mashup nach Erzeugung selbst hosten und beliebig kopieren oder ist man an bestimmte Anbieter gebunden (wie im Falle von Yahoo Pipes an Yahoo)?