Moderní webové aplikace (RIA – Rich Internet Application) umožňují uživateli bohatší interakci s aplikací. Odlišné prvky RIA od tradičních webových aplikací jsou shrnuty do čtyř bodů.
- Rozdělení dat
- Výpočetní operace
- Komunikace
- Vykreslování stránek
Data jsou umístěna v webových aplikacích na straně serveru. V RIA jsou data flexibilně rozdělena mezi klientem a serverem. Výpočetní operace jsou vykonávány ve webové aplikaci s použitím tenkého klienta na straně serveru. V RIA probíhá výpočet operací také na straně klienta. Komunikace je v HTTP web aplikacích vyvolána klientem a řízena stranou serveru. Oproti tomu v RIA přítomnost prostředí pro běh aplikace na straně klienta umožňuje více komunikačních schémat. Synchronní zpracování událostí v http request-response cyklu může být rozšířeno o asynchronní zpracování událostí.
Vykreslování stránek je skládání XHTML obsahu stránek, například co se zobrazí uživateli po kliknutí na detail položky v seznamu. Vykreslování stránek v dynamické webové aplikaci reaguje na každou uživatelskou interakci. V RIA je uživatelská interakce oddělena od vykreslování stránek a možnosti aktualizace obsahu rozhraní jsou bohatší. Obsah pro zobrazování komponent může být sestaven z uživatelské akce, nebo také skrytě.
V dynamických webových aplikacích je obsah na straně serveru a je typicky uložen perzistentně v databázi nebo v objektech obsažených na straně serveru v uživatelských session.
RIA rozšiřují možnosti ukládání. Obsah může být umístěn také na straně klienta jako objekty se stejnou viditelností a dobou životnosti jako klientská aplikace. V některých RIA je obsah uložen jako perzistentní klientské objekty. Paměť na straně klienta může být použita k dočasnému uložení dat, které jsou vytvořeny nebo upraveny uživatelem. Data mohou být validována na straně klienta a modifikována uživatelem před odesláním na stranu serveru.
V webových aplikacích je komponentová a kontrolní logika vykonávána na straně serveru. RIA umožňují vykonávání logiky i na klientovi. Rozhodování při návrhu RIA je, jak rozdělit odpovědnost mezi dvě strany. Jedna strana je strana klienta a druhá je strana serveru. Extrémem je, že se vše počítá na straně serveru a klientská strana se používá pro prezentační účely až po druhý pól, kdy existuje offline funkčnost klientské strany. Mezi těmito extrémy existují varianty, jako:
- Obstarávání všech dat a business komponent na straně serveru a používání strany klienta pro interakce.
- Exekuce komponent na straně serveru a některé komponenty na straně klienta, založeno na jejich funkčnosti, jestli potřebují data apod.
- Rozdělení výpočtu logicky spojených komponent (například přijímání dat, formátování, nebo vstupní validace a datová aktualizace) mezi klienta a server.
Na obrázku 1.1 jsou zobrazeny možné struktury RIA.
Obrázek 1.1: Schéma RIA aplikace, Comai S. Bozzon A. Fraternali, P. and G. 2010 Toffetti Carughi. Engineering rich internet applications with a model-driven approach. http://doi.acm.org/10.1145/1734200.1734204, stav z 15. 4. 2011.