**Mashup** je termín, ktorým sa v prostredí vývojárov webu označuje stránka alebo webová aplikácia, ktorá v rámci poskytovania nových služieb používa a kombinuje dáta, prezentácie, alebo funkcionalitu z dvoch alebo viacerých zdrojov. Termín implikuje ľahkú a rýchlu integráciu, často pomocou otvorených API (rozhranie umožňujúce vzájomnú interakciu programov s inými programami) a zdrojov dát určených na vytvorenie obohatených výsledkov, ktoré nemuseli byť nutne pôvodným zámerom na produkciu čistých dát.
  
 Termín Mashup často označuje aj remix digitálnych dát.

Mashup je charakteristický kombináciou, vizualizáciou a agregáciou divergentných typov dát. Mashup je dôležitý na zefektívnenie podávania už existujúcich dát, obzvlášť ak ide o profesionálne použitie.
Na to, aby mohli nepretržite pristupovať k dátam iných služieb sú Mashup zvyčajne klientskými aplikáciami, alebo hostované online. Od roku 2010 pridali dvaja hlavní distribútori Mashup projektov podporu pre nasadenie Cloud computing (technológia výpočtového mračna) technológií. Tento spôsob sa spolieha na umiestnenie aplikácií v prostredí internetu, čím minimalizuje hardvérové nároky na koncových zariadeniach, kde sa prenášajú zdieľané zdroje, softvér a informácie na požiadanie iba v prípade potreby.

Už v minulosti sa rozšírilo publikovanie webových aplikácií spolu s API, ktoré umožňujú tvorcom softvéru jednoducho integrovať dáta a funkcie namiesto toho, aby ich museli navrhnúť svojpomocne. Mashup zohráva aktívnu úlohu v procese evolúcie sociálneho softwéru a Webu 2.0. Kompozičné nástroje Mashup sú zvyčajne dostatočne jednoduché na to, aby ich pochopili koncoví užívatelia. Nevyžadujú tak programátorské schopnosti, ale podporujú vizuálne prepájanie widgetov (ovládacích prvkov), služieb a komponentov. Tieto nástroje tak podporujú novú víziu webu, v ktorej sú užívatelia schopní prispievať a zapájať sa.

História
--------

Počas Webu 1.0 podniky ukladali dáta užívateľov na portáloch a pravidelne ich aktualizovali. Mali tak plnú kontrolu nad dátami užívateľov a tí museli používať ich produkty a služby, aby sa mohli dostať k informáciám.

S nástupom Webu 2.0 bol vytvorený nový návrh, používanie už rozšírených bežných webových štandardov na sprístupnenie užívateľských dát. V tom istom čase sa objavili prvé Mashup, umožňujúce miešanie a porovnávanie konkurenčných API za účelom vytvorenia nových služieb.

Prvé Mashup aplikácie používali mapovacie služby, alebo služby fotoalbumov, ktoré kombinovali s dátami ľubovoľného druhu a vytvárali tak dátové vizualizácie. V prvopočiatkoch tejto technológie boli Mashup zamerané na zákazníka, no v súčasnosti sa na Mashup prihliada ako koncept vhodný a užitočný aj pre podnikové prostredia. Podnikové Mashup môžu kombinovať existujúce interné dáta s externými službami na vytváranie nových perspektív pohľadu na dáta.

Druhy Mashup
------------

Existuje množstvo druhov Mashup, ako dátové, spotrebiteľské/užívateľské, či podnikové. Najbežnejším typom je užívateľský Mashup, zameraný na širokú verejnosť.

* Dátový Mashup kombinuje podobné druhy médií a informácií z viacerých zdrojov na vytvorenie jednotnej reprezentácie. Kombinácia týchto zdrojov vytvára novú a odlišnú Webovú službu, ktorá nebola pôvodne poskytovaná žiadnym z predošlých zdrojov.
* Používateľské Mashup, na rozdiel od dátových mashup, kombinujú rôzne typy dát. Zvyčajne ide o vizuálne elementy a dáta z rôznych zdrojov (napr.: Wikipediavision kombinuje Google Maps a Wikipedia API)
* Podnikové Mashup zvyčajne definujú aplikácie, ktoré kombinujú vlastné zdroje, podaplikácie a dáta s externými webovými službami. Zjednocujú dáta do celistvej prezentácie a umožňujú kolaboráciu medzi podnikmi a vývojármi. Podnikové Mashup sú bezpečné, vizuálne bohaté webové aplikácie, ktoré odhaľujú informácie z divergentných interných a externých zdrojov.

### Podľa Typu API

Mashup môže byť kategorizovaný aj na základe typu API, ktorý používa, aj keď API môžu byť často kombinované a zabudované aj do iných aplikácií.

Typy dát
* Indexované dáta (documenty, weblogy, obrázky, videá, pracovné pozície...) využívané Metavyhľadávacími strojmi
* Kartografické a geografické dáta: Geolokačný software, Geovizualizácia
* Feedy, podcasty: Súhrnné správy

Funkcie
* Konverzia dát: Preklad do iných jazykov, Spracovanie reči, skracovanie URL...
* Komunikácia: E-mail, Instant messaging, notifikácie...
* Vizuálne zobrazovanie dát: Vizualizácia informácie, diagramy
* Bezpečnostné: systémy elektronických platieb, ID identifikácie...
* Editory

Mashup verzus portál
--------------------

Mashup ako aj portál sú technológiami združovania obsahu. Portály tvoria staršiu technológiu navrhnutú ako rozšírenie tradičných dynamických webových aplikácií, v ktorých je proces konverzie dát do webových stránok rozdelený na dve fázy: generovanie značkovacích fragmentov a agregáciu fragmentov do stránok. Každý fragment je generovaný "portletom", čo je portálom spravovaný doplnkový komponet UI. Portlety môžu byť uložené lokálne na serveri portálu, alebo diaľkovo na oddelenom serveri.

Technológia portálu definuje kompletný model práce so vstupmi a aktualizáciami. Žiadosť o kombinovanú stránku je na Portáli spracovaná na jednotlivé čítacie operácie na všetkých Portletoch, ktoré danú stránku tvoria. Ak na niektorom z portletov klikne užívateľ na tlačidlo odoslania, obnoví sa iba daný portlet, nie celá stránka. Aktualizácia však potom pokračuje na všetkých portletoch stránky.
Technológia Portálov je zameraná na prezentáciu agregovaných dát zo strany servera. Nemôže byť použitá na robustnejšie formy integrácie aplikácií ako napr. 2PC. Mashup sa od portálov líši nasledovne:

|  | Portál | Mashup |
| --- | --- | --- |
| Klasifikácia | Staršia technológia, rozšírenie tradičných webových serverov použitím dobre definovaného prístupu. | Používanie nových, nepresne definovaných „Web 2.0" prístupov. |
| Filozofia/prístup | Pristupuje k agregácii rozdelením generácie stránok na 2 časti: vytvorenie značiek a agregáciu značiek do jednotnej stránky. | Používa API poskytované rôznymi stránkami na agregáciu a znovuvyužitie obsahu iným spôsobom |
| Závislosť na obsahu | združuje prezentačne-orientované značkovacie fragmenty (HTML, WML, VoiceXML,....) | Dokáže pracovať s čistým XML obsahom a taktiež prezentačne-orientovaným obsahom(napr. HTML) |
| Závislosť na lokácii | Tradične sa obsah združuje na serveri. | Združovanie obsahu môže nastať na serveri alebo u klienta. |
| Agregačný prístup | Združovaný obsah je prezentovaný popri sebe, bez presahov. | Jednotlivý obsah môže byť kombinovaný ľubovoľnými spôsobmi, ústiac v čiastočne štruktúrovaný hybridný obsah |
| Model udalostí | Čítanie a aktualizácia udalostí prebieha prostredníctvom špecifických portlet API | CRUD operácie sú založené na REST architektonických princípoch, no žiadne formálne API neexistuje |

Model Portálov je starší a do jeho vývoja bolo investovaných viac financií. Technológia Portálov je teda lepšie štandardizovaná a dospelejšia. Časom však možno predpokladať, že dospelosť a štandardizácia Mashup bude populárnejšia ako Portálová, pretože je bližšie spätá s Web 2.0 a Architektúr orientovaných na služby(SOA). Očakáva sa, že nové modely Portálov budú obohatené o podporu Mashup popri portletových aplikáciách. Naopak pri Mashupe sa neočakáva pridanie podpory portálových štandardov.

Podnikový Mashup
----------------

Používanie Mashup v podnikových prostrediach rastie. Podnikové Mashup sú užitočné na integráciu dátových služieb, ponúkajú možnosti na rýchly vývoj nových integrovaných služieb, kombinovanie interných služieb s externými, alebo personalizovanými informáciami a sprístupňovanie týchto služieb prostredníctvom jednoduchých, používateľsky prívetivých rozhraní.

Podnikové Mashup sa líšia od spotrebiteľských Mashup v úrovni integrácie s podnikovými výpočtovými prostrediami, bezpečnosťou a prístupom k ovládacím funkciám, správou a sofistikáciou programovacích nástrojov. Ďalší rozdiel medzi podnikovými a spotrebiteľskými Mashup je rastúci trend používania podnikových Mashup v komerčných Saas (software as a service).
Veľa poskytovateľov podnikových Mashup pridalo funkcionalitu SOA.

Architektonické aspekty Mashup
------------------------------

Architektúra Mashup je rozdelená do troch vrstiev:

* Prezentácia / Interakcia s užívateľom: užívateľské rozhranie Mashup. Používanými technológiami sú HTML/XHTML, CSS, Javascript, Asynchrónny Javascript a XML (Ajax).
* Webové služby: funkcionalita produktu je sprístupnená prostredníctvom API. Používanými technológiami sú XMLHTTPRequest, XML-RPC, JSON-RPC, SOAP, REST.
* Dáta: Správa dát – posielanie, ukladanie, prijímanie a.i. Používané technológie sú XML, JSON, KML.

Z hľadiska architektúry sa delí Mashup na dva druhy: webové a serverové. Zatiaľ čo webové Mashup zvyčajne využívajú užívateľské webové prehliadače na kombináciu a preformátovanie dát, serverové Mashup analyzujú a formátujú dáta už na strane serveru a posielajú ich k užívateľovi v ich finálnej podobe.

Mashup je variácia na tzv. Fasádny vzor. Ide o vývojový vzor v softvérovom inžinierstve, ktorý ponúka zjednodušené rozhrania, ovládajúce veľké celky kódu (v tomto prípade kódu na zjednotenie rôznych správ z divergentných API).
Mashup môže byť vo forme softvéru poskytovaného ako služby(SaaS).

Po mnohých rokoch vývoja začínajú bežné podniky adaptovať SOA (Software oriented archtecture- softvérovo orientované architektúry) na integráciu rôznych druhov dát a ich sprístupnenie ako diskrétnych Webových služieb. Webové služby poskytujú otvorené, štandardizované protokoly, pomocou ktorých zabezpečujú jednotný spôsob prístupu k informáciám z diverzných platforiem (operačných systémov, programovacích jazykov, aplikácií...). Tieto webové služby môžu byť znovuvyužité na poskytovanie úplne nových služieb a aplikácií v rámci no i naprieč organizáciami, zabezpečujúc flexibilitu podniku.

Príklady Mashup
---------------

* chicagocrime.org – Jeden z prvých Mashup. Zobrazuje stránku so štatistikami zločinov v Chicagu a priraďuje ich k mape. Databáza je prepracovaná do detailov a stránka umožňuje zvoliť typ zločinu a presnú ulicu kde sa stal. (Policajné štatistiky + Google Maps)
* housingmaps.com – Zobrazuje ceny domov/bytov v rôznych štátoch USA (Realitná kancelária + Google Maps)
* feedmashr.com – Najpopulárnejší obsah z rôznych zdrojov (Digg, del.icio.us, reddit…)
* flickrvision.com – Google Maps + Yahoo! Flickr Photos zobrazuje fotky užívateľov celého sveta na mape.

Zdroje
------

1. 1 2  CLARKIN, Larry; HOLMES, Josh. *Enterprise Mashups* [online]. MSDN Architecture Center. Dostupné online.
2. ↑  Sunilkumar Peenikal. *Mashups and the enterprise* [online]. MphasiS - HP, 2009. Dostupné online.
3. ↑  DIGNA, Larry. *Gartner: The future of portals is mashups, SOA, more aggregation* [online]. ZDNET, 2007. Dostupné online.
4. ↑  HOLT, Adams. *Executive IT Architect, Mashup business scenarios and patterns* [online]. IBM DeveloperWorks, 2009. Dostupné online.
5. ↑  BOLIM, Michael. *End-User Programming for the Web, MIT MS thesis, 2.91 MB PDF* [online]. 2005. Dostupné online.
6. ↑  Design Patterns: Elements of Resuable Object-Oriented Software (ISBN 0-201-63361-2) by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides

*Tento článok je čiastočný alebo úplný preklad článku Mashup na anglickej Wikipédii (číslo revízie nebolo určené).*