Jak budou vypadat webové aplikace v příštích letech? Čeká nás nový web, kde jedna stránka "vykrádá" druhou?
Před několika dny proběhla v San Franciscu velmi zajímavá konference pod názvem Web 2.0. Vystoupilo zde mnoho odborníků či přímo vizionářů, kteří se zabývají internetovými trendy a technologiemi opravdu ze všech možná firem jako jsou Google, Yahoo, Microsoft, Mozilla Foundation, AOL, Sony a další a další. Bylo diskutováno mnoho zajímavých témat (ostatně samotný pojem Web 2.0 stojí za prozkoumání), většinou se samozřejmě týkala budoucnosti webu.
Bramborová kaše či pyré?
Jedním z diskutovaných témat byla i problematika tzv. "Mashups". Přiznám se, že netuším, zda již existuje nějaký vhodný český výraz, ale pracovně si tento pojem můžeme přeložit třeba jako "kaše". Právě to je podle mnohých odborníků jedna z dalších "velkých věcí" budoucího Internetu.
Oč se tedy jedná? I když jsem výraz přeložil hodně volně, zjednodušeně řečeno jde o webovou službu, která je postavena na službě jiné a částečně ji využívá ke svému provozu. Nejčastěji se v dnešní době setkáte s "mashups", postavených na službě Google Maps. Existuje řada stránek, které zobrazují různé objekty na mapách Google Maps. Webová aplikace tak vlastně obsahuje jakousi nadstavbu, která s využitím cizích dat (v tomto případě map) nabízí jakousi nadhodnotu ke službě původní. Pokud tedy například chcete vytvořit mapu turistických cest na Šumavě, nemusíte komplikovaně vytvářet samotné mapy, ale stačí jen dodatečná vrstva, která v mapě zobrazí informace navíc. V podstatě tak využíváte cizí práci a v tomto případě i nemalé investice. Vaše služba je ale zase na druhou stranu závislá na fungování služby, na které "parazitujete".
Na webu se dá najít podobných služeb již celá řada. Existují služby humorné a zábavné jako je třeba velmi známý Googlefight. Z těch potrhlejších jmenujme třeba Where`s Tim Hibbard. Tato služba zobrazuje s využitím Google Maps aktuální polohu Tima Hibbarda, který u sebe neustále nosí mobilní telefon s GPS. Existují však i služby užitečné, které vám například v přehledné podobě dokáží srovnat ceny konkrétních výrobků u různých e-shopů. Jeden z mnoha přehledů "mashups" můžete najít například na těchto stránkách.
Je to legální?
Jistě vás napadne otázka legality podobných aktivit. Co se Googlu týče, zde zřejmě nic nehrozí, protože sám dává k dispozici API pro přístup ke svým službám, i když je nutná registrace a často je počet přístupů omezen na několik set či tisíc za den. Využítím příslušné služby ji tak svým způsobem dále popularizujete, pokud je tedy z vašich stránek (či zobrazených dat) patrné, kde informace čerpáte.
Co ale když budu podobným způsobem "vykrádat" cizí stránky a na pro čtenáře nezvyklé kombinaci a přidané hodnotě, které k původní službě dodám, vydělávat? Zřejmě bude nutné (v případě komerčního porjektu) a také slušné vyžádat si souhlas autora služby, z níž budu čerpat. Pokud je mi známo, zatím nevznikl kvůli této problematice žádný soudní spor (pokud se pletu, dejte vědět v diskusi), ale kdo ví, co nás čeká v budoucnu.
Technologie v pozadí
S tématem mashups souvisí i další "moderní" slovo - Ajax neboli Asynchronous JavaScript and XML. Právě této techniky se často v hybridních stránkách používá. Nejde o "technologii" v pravém slova smyslu, spíše se jedná o techniku tvorby webových aplikací s využitím kombinace (X)HTML, CSS, JavaScriptu, DOM a XML.
Na rozdíl od "klasických" webových aplikací poznáte Ajax aplikaci tak, že se snaží tvářit jako opravdový program běžící lokálně na vašem počítači. Zobrazovaná data na takové webové stránce jsou pak sice aktualizována, nicméně samotná stránka není znovu načtena kompletně (refresh). Pokud je tedy následkem nějaké akce uživatele (kliknutí na tlačítko a podobně) nutné aktualizovat nějakou hodnotu na zobrazené stránce, nedojde k znovunačtení a překreslení celé stránky, ale jen příslušné hodnoty.
Každý HTTP požadavek, který u klasické webové stránky vyvolá načtení stránky jiné (či znovunačtení stejné stránky) převezme příslušný JavaScript a "Ajax engine". Pokud se jedná o lokální požadavek jako je třeba kontrola uživatelem vložených dat, poradí si s tím stránka sama. Jestliže je vyžadována spolupráce serveru, provede se tento požadavek asynchronně (obvykle s využitím XML), takže není přerušena práce uživatele s aplikací. Díky tomu běží celá aplikace daleko rychleji, není nutné při každé akci uživatele znovu načítat stránku, protože tato komunikace probíhá "na pozadí" pod správou JavaScriptu.
V dnešní době by neměl být problém podobné stránky používat téměř s libovolným prohlížečem jako je Internet Explorer, Firefox, Opera, Safari či Konqueror. Ač se může zdát tato technika jako relativní novinka (a ve své podstatě je, protože masověji je užívána až teď), kořeny sahají až do roku 1998. Tehdy byly první pokusy provedeny týmem, který vytvářel Outlook Web Access jako část Exchange Serveru. Právě webové rozhraní Outlooku bývá považováno za první komerční Ajax aplikaci.
Z poslední doby budete ale zřejmě znát zejména projekty Googlu jako třeba Gmail, který rovněž tuto techniku využívá. Pro detailnější popis Ajaxu vás odkazuji na encyklopedii Wikipedia. Tam se dozvíte i některé nevýhody tohoto způsobu tvorby webových aplikací, například velmi zrádné tlačítko "Zpět", které může ledacos zhatit.