Unter Mashups werden Anwendungen verstanden, bei denen ein Großteil ihres Mehrwertes durch „importierte“ Inhalte geschaffen wird. Mashups nutzen dabei die offenen APIs, die andere (Web-)Anwendungen zur Verfügung stellen.
Mashups werden in (Hoyer et al. 2008) definiert als: “Web-based resource that combines existing resources, be it content, data or application functionality, from more than one resource in enterprise environments by empowering the actual end users to create and adapt individual information centric and situational applications.”
Neben dem Begriff “Mashup” wird häufig auch der Begriff “Composite Application” benutzt. Dabei steht “Composite Application” in der Informatik allgemein für eine neue Anwendung, die aus vielen bereits existierenden Teilen zusammengesetzt wird (ohne viel neue Logik hinzuzufügen). Im Unterschied zum Begriff “Mashup”, der meist für Web-basierte Anwendungen und freie Datenquellen verwendet wird, wird der Begriff “Composite Application” meist im Zusammenhang mit Unternehmensanwendungen und Informationen in Unternehmen (z.B. aus ERP-Systemen) verwendet.
Nachfolgend werden anhand der Ebene, auf der die zuvor angesprochen Kombination oder Integration erfolgt, drei Konkretisierungen bzw. Varianten des Begriffes Mashup vorgestellt:
-
Endbenutzer-Mashups: Dies ist die einfachste Form von Mashups – Auf einem Portal (Google, Facebook) können beliebige neue Anwendungen (Widgets oder Gadgets) integriert werden, welche auf Datenquellen des Portals oder von außerhalb zugreifen und diese anzeigen / kombinieren können. Die Integration erfolgt also nur auf Ebene der Benutzungsschnittstelle.
Beispiele für konkrete Produkte und Standards: Google Gadgets, Open Social, Facebook Apps.
-
Daten-Mashups: Hier können Daten, die aus Diensten kommen über verschiedene Funktionen gefiltert und kombiniert werden – und wieder als Dienst/Datenquelle zur Verfügung gestellt werden. Die Konfiguration der Verknüpfung von Datenquellen/Funktionen erfolgt dabei normalerweise über graphische Editoren. Im Vergleich zu der vorherigen Gruppe werden hier wirklich neue Funktionalitäten zusammengestellt.
Beispiele für konkrete Produkte: Yahoo Pipes, IBM Mashup Center.
-
Mashups in Betriebsprozessen: Das kann als Weiterführung/Verallgemeinerung der vorherigen Klasse gesehen werden. Beliebige WebServices können in einem Workflow miteinander verknüpft werden und bilden dadurch einen neuen WebService.
Beispiel: BPEL4WS (Business-Process-Execution-Language for WebServices)-Integration.
Gemeinsam ist allen Varianten von Mashups, dass damit dem Anwender mit wenig bzw. keiner Programmiererfahrung ermöglicht wird, Lösungen für einen speziellen Anwendungszweck zu realisieren. Damit wird das Prinzip des “Long Tail” in die Anwendungsentwicklung gebracht. Anwendungen können auch für eine Zielgruppe der Größe eins oder zwei effizient bereitgestellt werden.
Im von Hoyer und Stanoevska-Slabeva (2009) vorgeschlagenem Framework für Enterprise Mashups wird bezüglich der Einflußmöglichkeiten unterschieden zwischen
Ressourcen, die von Entwicklern bereitgestellt werden,
Widgets, die von Consultants und Schlüsselnutzern bereitgestellt werden, und schließlich
Mashups, welche allen Benutzern erlauben bereitgestellte Widgets und Ressourcen zu kombinieren.
Eine weitere Gemeinsamkeit aller Varianten von Mashups ist die Notwendigkeit, dass dafür Daten und Dienste in einer einfach verfügbaren Form standardisiert bereit gestellt werden müssen. Insofern können Mashups als Nutznießer (oder auch als Motivatoren) von SOA-Ansätzen gesehen werden.
Literatur
Hoyer, V.; Stanoevska-Slabeva, K.; Janner, T.; Schroth, C.: Enterprise Mashups: Design Principles towards the Long Tail of User Needs. Proc. IEEE Intl. Conf. on Service Computing (SCC08), Volume 2, S. 601-602, 2008.
Hoyer, V.; Stanoevska-Slabeva, K.: Towards a Reference Model for Grassroots Enterprise Mashup Environments, Proc. Europ. Conf. on Information Systems (ECIS), 2009