Webová aplikace je podle definice [20] klient/server software, který komunikuje s uživatelem nebo jiným systémem prostřednictvím protokolu HTTP. Za klienta používají uživatelé nejčastěji webové prohlížeče, jako je Internet Explorer, Mozilla nebo Opera. Automatizované systémy, například roboti fulltextových vyhledávačů, pak přistupují s pomocí HTTP agentů.
Klient na základě interakce s uživatelem zasílá serveru jednotlivé požadavky a následně zobrazuje obdržené webové stránky zapsané zpravidla v jazyce (X)HTML. Rozsah aplikací poskytovaných služeb se může pohybovat od jednoduchých úloh, jakými je například kniha hostů, až po sofistikované programy typu komplexních on-line obchodů či bankovních aplikací.
Je možné vymezit skupinu funkčních požadavků, které jsou společné pro téměř všechny pokročilejší webové aplikace. Jejich podpora přímo v používaných programovacích jazycích ale často nativně neexistuje vůbec, nebo je pouze částečná či nedostatečná. Potřebné funkce si musí vývojář doprogramovat sám. Naštěstí pro naprostou většinu takových úloh existují již hotové knihovny, které bývají i volně k dispozici. Ucelenější soubor takových knihoven, zajišťující komplexní funkcionalitu nutnou pro vývoj webové aplikace, tvoří framework. Neexistuje žádná ustálení a všeobecně přijímaná definice výrazu framework. Nejčastěji se však objevují dvě základní pojetí tohoto výrazu.
První přístup chápe framework jako balík užitečných kódů a knihoven, které uceleně a standardně pokrývají dané společné požadavky aplikací. Jsou uloženy v nějaké dostupné repository a programátor si do aplikace načítá jen ty vybrané knihovny, které zrovna potřebuje, v závislosti na charakteru dané aplikace. V komplexní aplikaci tak pro ošetření nějakého problému použije pokročilé a sofistikované knihovny, zatímco pro jednoduchou úlohu stačí knihovna se základní funkčností.
Druhé pojetí je užší v tom smyslu, že vše výše popsané považuje jen za balík relativně samostatných navzájem nesouvisejících knihoven, nikoliv za framework. Framework vzniká právě až vhodným poskládáním těchto jednotlivých knihoven dohromady, jejich účelným provázáním. Vzájemnými interakcemi mezi nimi často získáme dodatečné funkčnosti, které se u izolovaných knihoven nemohou objevit. Tímto postupem se tedy vytvoří pevný rámec, framework, uvnitř kterého se pak vyvíjí výsledná aplikace.
Druhé pojetí má jednu zřejmou nevýhodu. V takovém frameworku je pevně dán rozsah a komplexnost poskytovaných funkcí. Programátor aplikace má jen omezenou volnost výběru knihoven, kvůli jejich vzájemné provázanosti se vždy musí použít naprostá většina z nich, ať už jsou právě potřeba, nebo ne. Jeden konkrétní takto pojatý framework se tak z hlediska složitosti a šíře poskytovaných služeb hodí jen pro určitou skupinu aplikací, které jej využijí. Například tvořit primitivní knihu hostů v komplexním frameworku, který poskytuje podporu pro moduly, registrované uživatele, uživatelské skupiny, přístupová práva a ošetření timeoutu je jako jít s kanónem na vrabce. Naopak, při výběru vhodného a odpovídajícího frameworku je tvorba výsledné aplikace zpravidla efektivnější a systémovější, než při použití jednotlivých oddělených knihoven.
Nyní zkusme definovat základní funkční požadavky, které jsou společné a typické pro většinu pokročilejších webových aplikací, a které by tedy měl komplexní framework nějakým způsobem zajišťovat:
V následujících podkapitolách tyto jednotlivé body rozebereme podrobněji.
Obsah stránek vyjadřuje osobní názory, postoje a zkušenosti autora. Copyright © 2004–2010 Jan Tichý.