Webová aplikace
Webová aplikace v softwarovém inženýrství je aplikace poskytovaná uživatelům z webového serveru přes počítačovou síť Internet, nebo její vnitropodnikovou obdobu (intranet). Webové aplikace jsou populární především pro všudypřítomnost webového prohlížeče jako klienta. Ten se pak nazývá tenkým klientem, neboť sám o sobě logiku aplikace nezná.
Schopnost aktualizovat a spravovat webové aplikace bez nutnosti šířit a instalovat software na potenciálně tisíce uživatelských počítačů je hlavním důvodem jejich oblíbenosti. Webové aplikace jsou používány pro implementaci mnoha podnikových i jiných informačních systémů, ale i freemailů, internetových obchodů, online aukcí, diskusních fór, webblogů.
Historie
V dřívějších typech aplikací typu klient-server měla každá aplikace svůj vlastní klientský program, který sloužil jako její uživatelské rozhraní a musel být instalován na osobním počítači každého uživatele. Aktualizace serverové části typicky vyžadovala i aktualizaci klientských programů na každé pracovní stanici, což zvyšovalo náklady na podporu a snižovalo efektivnost zaměstnanců.
Oproti tomu webové aplikace generují dynamicky sérii webových stránek ve standardním formátu HTML/XHTML, který je podporován běžnými prohlížeči. Obecně je každá jednotlivá webová stránka dodána prohlížeči jako statický dokument, ale sled takových stránek může vyvolat pocit interaktivity, např. díky reakci na vstup uživatele do formulářových prvků vložených do kódu stránky. Pro přidání dynamických prvků do uživatelského rozhraní se používá skriptovací jazyk JavaScript. Webový prohlížeč v průběhu běhu aplikace interpretuje a zobrazuje stránky a funguje jako univerzální klient pro libovolnou webovou aplikaci. Připravovaná specifikace nové verze jazyka HTML - HTML5 obsahuje řadu rozšíření zaměřených právě na tvorbu webových aplikací.
Rozhraní
Webové rozhraní v některých směrech omezuje funkčnost a možnosti klienta. Metody známé z desktopových aplikací, jako je například vykreslování na obrazovku či obecné techniky jako drag and drop, nejsou standardními technologiemi prohlížečů podporovány. Tvůrci webů pro přidání funkčnosti často používají skriptování na straně klienta, zvláště pro vytvoření dojmu interaktivity bez nutnosti znovunačtení stránky, které řada uživatelů shledává rušivým. V poslední době se začínají používat technologie, které umožňují spolupráci skriptů na klientské straně se serverovou částí aplikace. Jedním z příkladů je AJAX: technika vývoje webu využívající kombinaci HTML, JavaScriptu a rozhraní XMLHttpRequest, které umožňuje načítat klientským skriptům informace ze serveru, aniž by bylo třeba obnovovat celou stránku.
Technické aspekty
Podstatnou výhodou vývoje webových aplikací stavějících na standardních funkcích prohlížeče je jejich schopnost pracovat podle určení bez ohledu na operační systém či jeho verzi instalovanou na daném klientském počítači. Místo psaní variant aplikace pro Windows, Linux, Mac OS X a další operační systémy stačí teoreticky aplikaci napsat jednou a nabídnout téměř kdekoliv. V praxi ale nekonzistentní implementace HTML, CSS, DOM a další specifikace jednotlivých prohlížečů způsobují problémy. Navíc mají uživatelé možnost nastavit způsob zobrazení ve svém prohlížeči (např. zvolit jiný řez či velikost písma, barvy či vypnout podporu skriptování), což může rušit jednotný vzhled aplikace.
Dalším způsobem, avšak méně častým, je použití Adobe Flash nebo javových appletů pro část nebo celé uživatelské rozhraní. Poněvadž většina webových prohlížečů tyto technologie podporuje (obvykle formou zásuvných modulů), aplikace založené na Flashi či Javě mohou být v podstatě vyvíjeny a nasazovány všude stejně snadno. Přestože vývojářům poskytují větší kontrolu nad uživatelským rozhraním a obcházejí řadu problémů s nastavením prohlížečů, mohou rozdílnosti mezi jednotlivými implementacemi Flashe či Javy způsobit jiné komplikace. Pro podobnost jejich architektury s klasickými aplikacemi typu klient-server s jakýmsi tenkým klientem existují pochybnosti, zda systémy tohoto typu vůbec webovými aplikacemi nazývat a zda nepoužít termín rich internet application.
Zřejmou nevýhodou tohoto přístupu je vysoká závislost na poskytovateli aplikace a dostatečně dimenzované kapacitě připojení k serveru poskytovatele. Pokud se poskytovatel rozhodne ukončit poskytování této služby nebo ji přeruší z jiného důvodu, nelze službu nadále používat, na rozdíl od lokálně provozovaného software. Stejně tak pokud dojde k přerušení spojení se serverem poskytovatele, může být služba dočasně nedostupná. Tyto nevýhody jsou však vyváženy výhodou, kterou je na straně zákazníka prakticky nulová údržba a minimální náklady – obvykle se pouze platí pevné měsíční nebo roční poplatky.
Struktura
Ačkoliv je mnoho možností, webové aplikace jsou obvykle strukturovány jako třívrstvé. V té nejběžnější formě je webový prohlížeč první vrstvou (prezentační), nástroje pro dynamické generování stránek (např. CGI, PHP, javové servlety nebo ASP) je vrstvou střední (logickou) a databáze je vrstvou třetí (datovou). Webový prohlížeč posílá požadavky střední vrstvě, která je obsluhuje prostřednictvím dotazů do databáze (resp. její aktualizací) a generováním uživatelského rozhraní.
Užití
Webové rozhraní je stále častěji používáno na místech, která byla považována za tradiční pro jednouživatelské programy. Například Microsoft HTML Help nahradil Windows Help na pozici hlavního systému nápovědy v Microsoft Windows. Jako jejich síťové obdoby generují tyto aplikace webové stránky jako vlastní uživatelské rozhraní a posílají je (někdy přes zabudovaný web server) do komponenty, která plní funkci webového prohlížeče – vykresluje stránku pro uživatele a naopak posílá aplikaci uživatelův vstup. Webové aplikace se zabudovaným web serverem se také staly naprosto běžné jako uživatelské rozhraní pro konfiguraci síťových komponent jako jsou servery, směrovače či brány.
Obchodní využití
Jednou ze strategií pro softwarové firmy je poskytnout přístup přes web k aplikacím, které byly dříve nabízeny a šířeny jako lokální. V závislosti na typu aplikace může takový přechod vyžadovat vývoj zcela odlišného uživatelského rozhraní určeného webovému prohlížeči nebo jen přizpůsobit stávající aplikaci pro použití jiné prezentační technologie. Tyto programy umožňují uživatelům platit měsíční či roční poplatek za používání aplikace, aniž by si jej museli nainstalovat na svůj pevný disk. Firmy podnikající s touto strategií jsou známé jako poskytovatelé aplikačních služeb (application service provider, ASP).
Programování webových aplikací
Ačkoli je mnoho webových aplikací psáno přímo v čistém programovacím jazyce jako je PHP či Perl, existuje pro jejich tvorbu řada systémů, tzv. frameworků, které díky automatizaci tohoto procesu nabízejí programátorům možnost popsat program na vyšších úrovních. Užití takových systémů může často snížit počet chyb v aplikaci, především díky větší jednoduchosti a přehlednosti kódu a také možností koncentrovat se na důležitější části kódu.
Související články
Externí odkazy
- Obrázky, zvuky či videa k tématu webová aplikace na Wikimedia Commons
- (anglicky) How Microsoft lost the API war – úvaha o tom, jak jsou desktopové aplikace pro Windows nahrazovány webovými aplikacemi
- (anglicky) Webové aplikace v Open Directory Project
- (anglicky) GoToCloud Web věnovaný recenzím nejlepších světových webových aplikací předních vývojářů.