Články
Spíte dobře? Připravili jsme pro Vás články, které Vám nedají spát.Obohaťte své uživatele pomocí RIA
5. 2. 2007 | Aleš Veselka
Rich Internet Application (RIA, neboli internetové aplikace "bohatší" na uživatelský zážitek) je nový směr, kterým se vydává další generace internetových aplikací. Technologií k jejich vývoji existuje několik. Mezi nejpopulárnější patří založené na HTML nebo na plug-inech. Novým hráčem na trhu RIA je Microsoft s řešením Windows Presentation Foundation.
Aleš Veselka
Flash DeveloperTechnologie RIA - úvod
Rich Internet Application (RIA, neboli „bohatší“ uživatelský zážitek z internetových aplikací) je nový směr, kterým se vydává další generace internetových aplikací. Technologií k vývoji RIA existuje hned několik. Jsou výsledkem spojení toho nejlepšího z prostředí desktopových i internetových aplikací.
Hlavním rozdílem mezi tradičními internetovými aplikacemi a RIA je fakt, že se data nemusejí nahrávat při každém dotazu – kliknutí nebo jiné uživatelovi interakce. Nahrají se jen jednou a pak už jsou k dispozici ihned, po celou dobu spuštění aplikace. Nebo se nahrávají průběžně na její pozadí, aniž by uživatele obtěžovala.
Historie
V osmdesátých letech začaly s růstem výkonu počítačů vznikat desktopové aplikace s bohatým uživatelským zážitkem. Nevýhodou u těchto aplikací však byla decentralizace a neaktualizace dat. Bylo velmi složité zajistit jednotnou verzi aplikace napříč všemi uživateli a nové verze se musely manuálně instalovat.
Nový model aplikací vznikl s ohromným rozvojem internetu v devadesátých letech minulého století. Tento model fungoval tak, že samotná aplikace běžela na serveru a klientský počítač pouze renderoval stránku, kterou mu aplikace ze serveru poslala.
I když se takto úspěšně řešil problém distribuce a centralizace dat, samotné zobrazení aplikace a tedy dojem uživatele z ní se vrátil o několik let zpátky. Bohaté grafické rozhranní bylo ztraceno a limitováno omezením internetového prohlížeče i jazyka HTML.
Současnost
V současnosti se technologie vyvinula do stavu, kdy překračuje omezení jazyka HTML a k internetovým aplikacím přidává i bohaté grafické rozhranní s plnohodnotným uživatelským zážitkem. Vznikají tak aplikace „bohatší“ na uživatelský zážitek, tedy „Rich internet application“ (RIA).
Se současným stavem internetu jsou tyto aplikace dostupné prakticky všude a zároveň není uživatel frustrován čekáním na server při každém dotazu na novou stránku, po každém kliknutí myši – ohromná výhoda oproti tradičním internetovým aplikacím.
Technologie
Technologií k vývoji „Rich internet aplikací“ existuje několik. Mezi nejpopulárnějšími jsou technologie založené na HTML, jako je AJAX (Asynchronní JavaScript a XML). Nebo existují možnosti založené na plug-inech, jako jsou Adobe Flash
, Adobe Flex
a Laszo
, které běží ve Flash Playeru
. Novým hráčem na trhu RIA se stává Microsoft
s řešením Windows Presentation Foundation
.
Asynchronní JavaScript a XML (AJAX)
Jedna z nejznámějších (ne však nejjednodušších) technologií je Ajax (Asynchronní JavaScript a XML). Ajax stojí na technologiích, které jsou webovým vývojářům dlouho známé: HTML, DHTML a JavaScriptu. Základní myšlenkou je použití JavaScriptu k aktualizaci stránky bez potřeby jejího načítání. JavaScript běžící v prohlížeči může vkládat informace do stránky nebo měnit strukturu manipulací HTML DOM bez nutnosti opětovného načítání. Nová data se přenášejí ze serveru na pozadí (s použitím XML nebo jiných formátů), například jako odpověď na kliknutí myši.
Dřívější formy používaly pro vzdálenou komunikaci Java aplety. S dalším vývojem prohlížeče aplety nahradily jiné technologie, například IFramy. Po uvedení „XMLHttpRequestu“ v JavaScriptu šlo načítat data bez nutnosti odesílání požadavku na novou stránku apletu nebo IFramu.
Další výhodou je fakt, že společně s používáním známých technologií při vývoji, Ajax nepotřebuje ke svému chodu žádné další plug-iny. Funguje s JavaScriptem a DHTML, které už prohlížeč obsahuje v sobě. Nicméně spoléhání se na JavaScript s sebou přináší nová rizika: aplikace při vypnutém JavaScriptu nefunguje.
Problém s Ajaxem je v podpoře různých verzí DHTML i JavaScriptu u rozličných prohlížečů a na různých platformách. V případech, kdy se dá cílová skupina kontrolovat (např. intranety), může být vytvořena aplikace k podpoře jednoho prohlížeče na určité platformě (mnoho společností dnes má sjednocené operační systémy a prohlížeče). Pokud je ale aplikace přístupná široké veřejnosti (extranetové nebo internetové aplikace), ajaxové aplikace je potřeba testovat a vyvíjet na všech operačních systémech i všech prohlížečích.
Měli bychom poznamenat, že Ajax není programovací model sám o sobě. Ve skutečnosti je to sbírka různých knihoven JavaScriptu. A protože Ajaxu chybí jednotný centrální iniciátor, integrace těchto knihoven způsobuje závislost na třetích stranách, což s sebou nese určité riziko a závislost.
Flash
Dalším z klíčových hráčů v prostředí RIA je Flash Platforma
od společnosti Adobe (dříve Macromedia), v současnosti klíčový konkurent Ajaxu. Flash Player se během let vyvinul z prostředí původně vytvořeného pro přehrávání animací. S každou novou verzí se ale přidávají nové možnosti, přičemž stále zůstává zachována malá velikost Flash Playeru. Během poslední dekády je Flash Player téměř všudypřítomný a v 97 % všech prohlížečů se setkáme s některou z jeho verzí. Macromedia (nyní Adobe) se od roku 2002 na Flash začala zaměřovat více než jako na animační nástroj. S uvedením verze Flash 6 začala poskytovat více možností pro tvorbu aplikací. Ukázalo se, že kombinací všudypřítomného přehrávače a síly programovacího jazyka ActionScript, mohou vývojáři vytvořit plnohodnotnou aplikaci v prohlížeči bez omezení HTML.
Zacílením na Flash Player se mohou vývojáři také odpoutat od internetového prohlížeče a problémů s nekompatibilitou operačních systémů. Jedna z mnoha krásných vlastností Flash Playeru je, že obsah i samotná aplikace vyvinutá pro jeho určitou verzi bude fungovat ve všech prohlížečích a platformách, které tu konkrétní verzi Flash Playeru podporují.
Historicky největší překážkou ve vývoji aplikací pro Flash Player je prostředí programu Flash – původně zaměřeného na tvorbu animací. Mnoho vývojářů pracujících na RIA pro Flash Player se nechalo odradit tímto neznámým prostředím a faktem, že existovalo jen málo materiálů pro výuku Flashe coby nástroje na tvorbu aplikací.
Flash Player zůstává vynikající platformou pro RIA, a uvedením nových řešení typu Laszlo či Flex se ohromně zjednodušil proces vývoje a redukoval počet RIA vytvořených přímo v prostředí Flashe.
Laszlo
V Laszlo Systems
rozpoznali potřebu vhodnějšího nástroje pro RIA vývojáře a vytvořili jazyk i kompiler, který umožňuje pracovat s již známými technologiemi a může vytvořit aplikace fungující ve Flash Playeru.
Stejně jako Ajax, tak i Laszlo aplikace jsou postaveny na JavaScriptu a XML, ale běží ve Flash Playeru. Flash Player současně přináší výhodu funkčnosti v jakémkoliv prohlížeči bez ohledu na operační systém. Na rozdíl od ajaxových aplikací Laszlo používá kompiler, který z JavaScriptu a XML „vypublikuje“ Flash SWF soubor. To dovoluje vývojářům osvobodit se z omezení různých verzí JavaScriptu napříč rozličnými platformami.
Další podobnost s Ajaxem je, že přístup k datům se obvykle provede nahráním XML souboru ze serveru. Od nedávného uvedení OpenLaszlo servletu pracují Laszlo aplikace také s webovými službami SOAP. Na konci roku 2004 se platforma stala open source, a tak se ohromně zpřístupnila vývojářům.
V tomto bodě je pro Laszlo velikou překážkou to, co bylo ze začátku velkou výhodou, a sice spoléhání na JavaScript. Ten totiž nemá v současné verzi datové typy a nepodporuje mnoho základních objektově orientovaných principů (např. datové typy, skutečné třídy), což vývojářskou základnu štěpí. Další nevýhodou je, že vývojáři mají blokovaný přístupu k bohaté kolekci Flash Player API
. Místo toho jsou nuceni používat tagy a jejich korespondující JavaScript API.
Flex
Z mnoha podobných důvodů, ze kterých bylo vyvinuto Laszlo, přinesla Macromedia svůj vlastní projekt - pro vývojáře příjemnější prostředí vývoje aplikací pro Flash Player. V roce 2004 Macromedia (dnes Adobe) uvolnila Flex 1.0 (následovaným Flexem 1.5 a Flexem 2.0 v roce 2006). Z pohledu architektury jsou Flex aplikace podobné aplikacím Ajax. Obě dokáží dynamicky aktualizovat uživatelská rozhranní a přijímat i odesílat data na pozadí běhu aplikace.
Produktová řada Flex 2
poskytuje novou generaci vývojářských nástrojů a služeb, které umožňují tvorbu i publikaci RIA. Skládá se z následujících částí:
- ActionScript 3.0
Plnohodnotný objektově orientovaný programovací jazyk, který stále posouvá možnosti Flash platformy. ActionScript 3.0 je navržen jako ideální jazyk k rychlé a efektivní tvorbě RIA. Tato nová verze se velmi rozšířila, zvýšila rychlost a zjednodušila vývoj k usnadnění ještě komplexnějších aplikací s bohatou knihovnou a plně objektově orientovaným kódem. - Flash Player 9
(FP9) Nová generace Flash Playeru se výrazně zlepšila především v rychlosti zpracování kódu. K usnadnění těchto vylepšení FP9 obsahuje úplně novou, vysoce optimalizovanou ActionScript Virtual Machine (AVM), pojmenovanou AVM2. Ta je napsána úplně od nuly pro využití všech nových výhod nové verze jazyka ActionScript 3.0. Nová Virtual Machine je několikanásobně rychlejší, podporuje „run-time error reporting“ a ohromně vylepšila debugging. Flash Player 9 současně obsahuje AVM1, který zpracovává kód ActionScriptu 1.0 i 2.0, a je tak zpětně plně kompatibilní s existujícím obsahem. Na rozdíl od aplikací postavených na JavaScriptu Flash Player je schopen použít Just In Time (JIT) kompilaci, která umožňuje aplikaci běžet rychleji a nepotřebuje tolik paměti. - Flex Framework 2
K základním částem FP9 a ActionScriptu 3.0 přidává Flex Framework 2 bohatou knihovnu tříd, která uživatelům umožňuje jednoduché využití nejlepších postupů v tvorbě úspěšných RIA. Flex používá jazyk založený na XML (pojmenovaný MXML) a dovoluje vývojářům deklarativním způsobem stavět jednotlivé části aplikace. Vývojáři mají přístup k Flex Frameworku přes Flex Builder nebo přes Flex SDK, který je zdarma a obsahuje on-line kompiler a debugger, dovolující vývojářům použít jakýkoliv jimi oblíbený editor. - Flex Builder 2
Nové integrované vývojářské prostředí (IDE) navržené se záměrem poskytnout vývojářům profesionální nástroj přímo pro tvorbu RIA. Stojí na standardu v odvětví - open-source vývojovém prostředí Eclipse. Flex Builder poskytuje vynikající programovací a debuggingové prostředí, je užitečným návrhovým nástrojem a poskytuje nejlepší postupy v tvorbě aplikací. Další výhodou platformy Eclipse spočívá v poskytování bohaté možnosti rozšíření, takže si lze IDE přizpůsobit svým vlastním potřebám a preferencím. - Flex Data Services 2
(FDS2) Adobe Flex Data Services rozšiřují klientský Flex Framework a poskytují výkonné propojení s existující serverovou logikou a daty. Přináší zároveň i služby k automatické synchronizaci dat mezi klientem a serverem, přidává podporu push a publish/subscribe messaging a umožňuje vyvíjet sdílené aplikace.
Windows Presentation Foundation / XAML / Expression
Microsoft oznámil spuštění sady nástrojů pro vývojáře RIA na platformě Windows. Nový systém se skládá z následujících částí:
- WPF Windows Presentation Foundation
(známé pod kódovém označením Avalon) je analogický k Flash Playeru a Flex Frameworku. - XAML Extensible Application Markup Language
- jazyk založený na XML, ve kterém můžete vytvářet WPF aplikace. XAML je podobné jazyku MXML pro Adobe Flex. - C#
- programovací jazyk, který se k vytváření WPF aplikací používá. Pokračujeme-li v analogii s Flex 2, tak tento jazyk se používá podobně jako ActionScript 3.0 ve Flex aplikacích. - Microsoft Expression
- grafický nástroj navržený k práci s XAML. Dovoluje designérům navrhnou uživatelské rozhranní a vizuální chování WPF aplikace. - Visual Studio
- Microsoft ohlásil plány, podle nichž v další verzi Visual Studia bude možnost práce s XAML, WinFX, C# a VB.Net
S použitím těchto nástrojů Microsoft propaguje workflow, ve kterém designéři vytvoří uživatelské rozhranní s pomocí Expression, které pak vývojáři implementují s pomocí Visual Studia.
Protože tyto nástroje byly uvedeny teprve s Windows Vista
, není zatím možné předvídat úspěchy jejich rozšíření. Microsoft veřejně prohlásil podporu dalších platforem (zejména s jejich WPF/ E, což je zkratka pro Windows Presentation Foundation/ Everywhere
), ale není známo, jak budou technologie s WPF/ E dostupné. Je povzbuzující, že Microsoft konečně slibuje poskytnout nástroje i pro jiné platformy než jen Windows, ale nepředvídejme příliš brzo, jak své slovo hodlá dodržet.
Jediná potenciální slabina WPF je, že byla navržena především pro tvorbu desktopových aplikací a ne aplikací pro prohlížeče. Tyto aplikace budou moci uživatelé instalovat přes prohlížeč, ale to znamená opět stahování datově velikých souborů. Stejně tak stojí za zmínku, že bude potřeba dlouhé doby, než se WPF rozšíří. Už jen kvůli své datové velikosti. I když bylo slíbeno fungování WPF ve Windows XP, není jasné, co od toho uživatelé XP mohou očekávat.
Adobe Apollo
Zajímavou alternativou je nová technologie vyvíjená společností Adobe - Apollo
. Jedná se o prostředí pro spouštění RIA aplikací, zaručující konzistentní vzhled a funkčnost napříč všemi operačními systémy. Na rozdíl však od výše zmíněných technologií, Apollo budou vyvíjené jako desktopové aplikace. Neztratí však ale z žádných výhod RIA apliakcí. K jejich vývoji se budou používat zavedené technologie (Flash, Flex, HTML, JavaScript, Ajax a PDF) a k internetu se budou připojovat přímo bez potřeby internetového prohlížeče.
Myšlenka je následující: přenést internetové aplikace offline s využitím výhod desktopových aplikací (např. přístup k souborům na disku). Apollo bude navíc cross-platform. To znamená, že aplikaci vyvinete jen jednou a budete ji moci spouštět na PC, Mac a Linuxu.
Adobe Flex sehraje při vývoji Apollo aplikací významnou roli a samotný Flash i Flex bude možné konvertovat do Apollo aplikací velmi snadno. Nicméně Apollo bude současně podporovat HTML, Ajax a PDF, takže pro vývoj Apollo aplikací nebude potřeba Flash vůbec použít. Ajax vývojáři mohou vzít své současné ajaxové aplikace a přeměnit je v aplikace desktopové, při současném zajištění konzistentního vzhledu i funkcionality napříč různými systémy.
Závěr
Na konci celého tohoto výčtu máte možná v této problematice ještě větší zmatek než na začátku. Není to ale tak složité. Pokud se soustředíme na to podstatné – uživatelovu spokojenost a přidanou hodnotu, a na druhé straně rychlý a efektivní vývoj – nejlépe se profiluje řešení od Adobe, produktová řada Flex 2, jak z pohledu výsledné aplikace konzistentní napříč všemi prostředími, tak z pohledu komfortu samotného vývoje. Přímou konkurencí by mohlo být WPF od Microsoftu, ale nejdříve musíme počkat, jak se ujme mezi vývojáři a jak to bude podporou ostatních operačních systémů.
Ačkoliv by se mohlo zdát, že dynamický vývoj internetu jsme nechali minulému století, opak je pravdou. Myslím, že jsme právě v době nejzajímavějších změn, které ocení především uživatel.
Související články
- Nut(d)né komponenty pro vaše webové stránky
- Flash At The Lake 2009
- Jsou RIA budoucností internetu?
- Microsites pro mobilní telefony
- E-marketing na desktopech zákazníků
- Před monitorem člověk
- Technologie pro rok 2008
- Silverlight nebo Flash?
- Web 2.0, 3.0, 4.0 ...
- Co dokáže AJAX?
- Nová úroveň interaktivity - AJAX
Chcete uveřejnit náš článek?
Máte zájem některý z našich článků publikovat ve Vašem časopise, webu či kdekoliv jinde? Neváhejte nás kontaktovat!
Zažádat o svolení

Vaše názory