Archiv tagů ria

Technologické aspekty Web 2.0

S vývojem zobrazovacích technologií a levného broadbandového přístupu se rozvíjely i technologie a standardy pro zobrazování webového obsahu. Prvotní neúspěch DHTML, které bylo založené na kaskádových stylech CSS (cascading style sheets) a skriptovacím jazyce Javascript, byl zřejmě způsoben zuřící válkou browserů. Pro nestandardní interpretace jazyků bylo nutné (a doposud je) optimalizovat webové zdroje pro různé typy prohlížečů. Uživatelé zároveň chtěli něco víc než blikající nadpisy. V té době se také masivně rozšířila technologie Flash od firmy Macromedia (dnes Adobe).

Pro tyto zdroje, které se v mnohém dokázaly chovat jako běžné aplikace spustitelné na PC, se vžilo pojmenování Rich Internet Applications (RIA). Ale zřejmě to, že je nutné pro zobrazení flashových aplikací instalovat speciální zásuvný modul a že pro vývoj těchto aplikací je nutné vlastnit placenou licenci, zapříčinilo, že Flash byl vždy vnímán jako pouze doplňkový (chcete-li okrášlující či prezentační) prvek na klasických HTML stránkách. Určitá nevýhoda Flashe se také objevila v nesnadné portaci zásuvného modulu na jiná zařízení než klasické prohlížeče na PC (mobilní telefony, PDA). Další technologie, které nebyly příliš úspěšné, jsou aplety napsané v jazyce Java a ActiveX společnosti Microsoft (Loosley, 2006).

Svou roli také zřejmě sehrál vznik open source projektu Mozilla. V roce 1998 jej založil Netscape po krachu svého prohlížeče Netscape Navigator, kdy uvolnil převážnou část zdrojových kódů (které ovšem byly později zcela přepsány). Start projektu Firefox přinesl značné oživení obecného povědomí o W3C standardech. Odborná veřejnost se začala více zajímat, jak jsou jejich stránky zobrazovány. Přibližně ve stejné době zveřejnila skupina W3C jazyk HTML 4.01 a hlavně XHTML, který byl reformulací HTML jazyka za použití XML.

Nic z toho ovšem nespustilo revoluci1, o které jsme v předchozích kapitolách mluvili jako o Web as Platform. Tím bylo až, jak říká O’Reilly, spuštění dvou aplikací společností Google: Gmail a Google Maps (O’Reilly, 2005b). V těchto aplikacích byl, krom tradičního HTML, spojen jazyk Javascript (na straně klienta) a jazyk XML (na straně serveru). Jazyk Javascript se používá v asynchronním módu pro načítání částí stránky. Tím byla v podstatě poprvé použita sada technologií označená jako Asynchronous Javascript + XML – zkráceně AJAX. Zmíněným asynchronním přístupem se značně snížila doba odezvy RIA aplikací:

  • informace jsou načítány ze serveru s předpokladem dalších možných požadavků uživatele (například načítání okolních čtverců zobrazené mapy, aby byl pohyb myší ve všech směrech plynulý),
  • prvky na stránce mohou být překresleny po částech namísto nutnosti nového načtení celé stránky,
  • vstupy od uživatele je možné serveru posílat v předem zvalidovaných dávkách (validace probíhá pomocí Javascriptu již na straně klienta),
  • odezvy na některé vstupy uživatele mohou být generovány bez komunikace se serverem,
  • data, která už jednou byla zpracována serverem, mohou být uložena na straně klienta pro pozdější použití.
  1. Která je ve skutečnosti evolucí.

AJAX

Toto označení bylo poprvé použito Jesse James Garretem v roce 2005 v článku AJAX: New Approach to the Web Application na serveru společnosti Adaptive Path. Autor píše:

„AJAX není jedna technologie. Ve skutečnosti je to několik technologií, na sobě nezávislých a samočinných, které při společném nasazení nabízejí další možnosti využití. AJAX zahrnuje:

  • na standardech založené zobrazování pomocí XHTML a CSS;
  • dynamické zobrazování a interakci pomocí Document Object Model;
  • výměnu a manipulaci dat pomocí XML a XSLT;
  • asynchronní příjem dat pomocí XMLHttpRequest;
  • Javascript, který všechno to spojuje dohromady.“ (Garret, 2005)

Jedna z velkých nevýhod pro uživatele tradičních stránek založených na čistém HTML či XHTML je čas strávený čekáním na načítání stránek poté, co byla vyslána žádost kliknutím na některý prvek na stránce. Jak již bylo zmíněno, během let bylo učiněno několik pokusů přinést stránkám větší dynamiku za použití jednotlivých technologií jako Javascript, skryté rámce, DHTML, kaskádové styly a ActiveX prvku XMLHttpRequest od Microsoftu.

Tradiční komunikace klient–server při načítání webových stránek
Obrázek 7 – Tradiční komunikace klient–server při načítání webových stránek

Oproti standardnímu modelu komunikace webových aplikací, kde je prohlížeč zodpovědný za iniciaci žádosti webovému serveru a za zpracování odpovědi, AJAX model poskytuje zprostředkující mezivrstvu – AJAX Engine, která zajišťuje tuto komunikaci. AJAX Engine je obyčejně javascriptový objekt volaný¨vždy, kdykoli mají být od serveru přijata další data. To je zásadní rozdíl proti tradičnímu přístupu, kde dojde pouze k poskytnutí odkazu na další (externí) zdroj/URL, jehož načtení musí klient potvrdit (např. uživatel kliká na šipku pro posun mapy). V pojetí AJAXu může být odkaz na zdroj vyvolán a zpracován pomocí AJAX Engine. Požadavek je zpracován asynchronně, což znamená, že požadavek bude vyslán, ale nebude se čekat na odpověď, namísto toho se bude dále provádět kód klienta a odpověď bude zpracována později.

Server, který obyčejně dodává klientům na základě jejich požadavku HTML dokumenty, CSS šablony vzhledu nebo javascriptový kód, je kromě toho nakonfigurován tak, že vrací i data, která umí AJAX Engine interpretovat. Tato data jsou nejčastěji ve formě XML, ale lze použít jakýkoliv jiný formát, který AJAX Engine podporuje.

V okamžiku, kdy obdrží AJAX Engine odpověď ze serveru, může provést příslušnou akci – parsování dat, změnu podoby uživatelského rozhraní či poskytnutí zaslaných informací uživateli. Díky tomu, že tento proces zahrnuje přenos menšího množství informací než tradiční webový aplikační model a uživatelské rozhraní je aktualizováno rychleji a bez nutnosti překreslování celého výsledného aplikačního okna, uživatel může pracovat rychleji (Toth, 2007; Loosley, 2006).

Komunikace klient–server za pomoci AJAXu.
Obrázek 8 – Komunikace klient–server za pomoci AJAXu

Alternativy k AJAXu

Jak bylo zmíněno v úvodu této kapitoly, tak existují i alternativy k AJAXu. Jmenovaný Flash od společnosti Adobe je neustále vyvíjen a dál hraje nezanedbatelnou roli při zprostředkování například multimediálních obsahů. Zaimplementování streamovacího protokolu H.263 stojí například za úspěchem služby pro sdílení videí YouTube, dnes vlastněné společností Google. Flash se také používá jako zobrazovací technologie u dalších vývojových nástrojů pro RIA aplikace – například Adobe Flex anebo opensourcový OpenLaszlo.

V posledních dnech se také velmi živě diskutuje o produktu Silverlight od společnosti Microsoft, který má být konkurencí Adobe Flash.´

RIA a vyhledávací služby

To, co přináší jednoznačný prospěch uživateli – tedy jednoduchá obsluha, podobnost s desktopovými aplikacemi, rychlá odezva – znamená značná úskalí pro tradiční vyhledávací nástroje založené na tzv. crawlingu. Při této metodě automatičtí roboti procházejí jednotlivá jedinečná URL, z nichž stahují obsah, který indexují. Při asynchronním přenosu, kdy jsou jednotlivé prvky stránky překreslovány po částech, se URL bohužel nemění, a robot tedy nemá možnost jak vyvolat a indexovat data. Vyvstává tedy problém – takto dynamicky generovaný zdroj není pro robota viditelný, a tudíž zůstává neindexovaný a později nevyhledatelný. Dle Matta Cuttse ze společnosti Google je „převážná část webových sídel zatím stále založena na statických stránkách, takže nyní nepředpokládáme výrazný problém“ (Garner, 2006). Zároveň doporučuje vyvíjet dvě verze webových sídel či aplikací – jednu pro uživatele a druhou pro crawlery. Samotné rozpoznání jakou verzi nabídnout proběhne na úrovni serveru vyhodnocením proměnné User-Agent, která je součástí požadavku HTTP protokolu. Řešení to není moc praktické – server musí mít neustále k dispozici aktuální tabulku všech proměnných User-Agent, o ekonomičnosti udržování dvojího obsahu ani nemluvě. Je tedy velmi důležité před nasazením AJAXu zvážit, který obsah má být vyhledatelný a u kterého si můžeme dovolit určitou neviditelnost (Fleiss, 2007).