Výhody webové aplikace

Pro implementaci každého informačního systému se může lépe hodit jiný typ aplikace. Porovnejme proto z různých pohledů použití webové aplikace a její náhradu v podobě desktopového řešení …

Výhody webové aplikace

Výběr vhodného řešení pro informační systém

Pro realizaci informačního systému se za různých okolností můžou hodit různé typy aplikací a je nutné ve všech směrech dobře promyslet výběr vhodného řešení tak, aby se nám později nevymstilo nějakou zásadní nevýhodou. Často stojíme před rozhodnutím mezi webovou aplikací a desktopovým řešením systému. Shrňme nejdůležitější rozdíly mezi oběma řešeními, porovnejme je a zamysleme se z různých pohledů nad některými jejich vlastnostmi.

Jak funguje webová aplikace

Webová aplikace se liší od desktopové zejména v architektuře, s čím souvisí všechny jejich výhody i nevýhody. Webová aplikace používá klient server architekturu. Aplikace je vždy umístěna na serveru a uživatel ji používá vzdáleně pomocí webového prohlížeče na svém počítači. Když uživatel přistoupí na nějakou funkci / akci webové aplikace, spustí se příslušná část aplikace, ta vygeneruje výstup ve formě webové stránky, kterou odešle uživateli do webového prohlížeče k zobrazení.

Například jízdní řády na internetu. Když přistoupíme na URL adresu jízdních řádů spustí se na serveru webová aplikace, která odešle do našeho webového prohlížeče webovou stránku s formulářem pro zadání informací odkud kam a kdy chceme jet. Po tom, co zadáme požadované informace na stránce v prohlížeči, data z formuláře opět odešleme pomocí tlačítka na server. Po odeslání na server se znovu spustí na serveru webová aplikace, která přijme zadaná vstupní data. Na základě nich znovu vygeneruje webovou stránku se seznamem možných spojení a odešle ji do našeho prohlížeče, který nám ji zobrazí. Obdobně pracujeme se všemi ostatními funkcemi webové aplikace.

Jak funguje desktopová aplikace

Naopak desktopové aplikace jsou vždy nainstalované na počítači uživatele. Aplikace má uživatelské rozhraní a uživatel ji používá tak, že ji spustí pod operačním systémem svého počítače, a pomocí uživatelského rozhraní používá jednotlivé její funkce. Aplikace během svého běhu prostřednictvím svého uživatelského rozhraní interaguje s uživatelem a na základě akcí, které uživatel provádí, rovnou zobrazuje různé výstupy přímo v uživatelském rozhraní nebo s uživatelem jiným způsobem interaguje.

Příkladem desktopové aplikace může být například MS Word. Poklepáním na ikonu v operačním systému Windows spustíme MS Word a spustí se aplikace s uživatelským rozhraním. V uživatelském rozhraní se nám zobrazí prázdný dokument, na který můžeme psát. Když pak pomocí klávesnice píšeme text, aplikace jej rovnou přijímá jako vstup a zobrazuje jej ve svém uživatelském rozhraní - v zobrazeném dokumentu. My pak rovnou na dokumentu vidíme text, který jsme napsali na klávesnici počítače. Pomocí myši pak můžeme text například označit a pomocí příslušné funkce aplikace můžeme kliknutím na příslušné tlačítko v uživatelském rozhraní aplikace zobrazit text tučně. Aplikace na to zareaguje tak, že označený text v dokumentu rovnou zobrazí tučně.

Nad čím bychom se ještě určitě měli zamyslet a co bychom měli zvážit pokud stojíme před výběrem mezi webovou a desktopovou aplikací:

Požadavky na software klienta

Webová aplikace používá klient server architekturu. Samotná aplikace je umístěna na serveru a běží v běhovém prostředí tohoto serveru. Klient ji pak používá prostřednictvím webového prohlížeče, který komunikuje s aplikací na serveru. Webový prohlížeč je standardním vybavením na každém uživatelském PC a nejsou tedy kladeny žádné další specifické požadavky na software u klienta. Toto může být velkou výhodou webové aplikace obzvlášť když je například určená široké veřejnosti a má velké množství uživatelů (třeba i ne tolik technicky zdatných).

Desktopová aplikace je naopak nainstalována na klientském PC a proto klade požadavky na jeho softwarové vybavení. Vždy je specifikováno pro jaký operační systém je aplikace určena a kolik a jakých potřebuje prostředků pro hladký běh. Když pak vyvíjíme desktopovou aplikaci na míru a implementovali bychom ji jako aplikaci pro Windows, nefungovala by na Linuxu nebo macOS. Pokud bychom chtěli uspokojit také uživatele Linuxu a macOS, museli bychom vyvinout aplikace tři, pro každý OS samostatnou aplikaci.

Přístup k hardwarovým prostředkům a funkcím operačního systému

Webová aplikace, protože je na klientské straně používána prostřednictvím webového prohlížeče a také z bezpečnostních důvodů, má velmi omezené možnosti používání funkcí operačního systému a hardwaru na klientském počítači. Určitě bychom proto našli mnoho požadavků, které by z tohoto důvodu dokázala webová aplikace splnit jen velmi obtížně. Lze to pak řešit třeba rozšířením prohlížeče, nebo dalšími technologiemi, jaké popisuji zde při tisku z webové aplikace.

Velkou výhodou desktopové aplikace pak je, že má při dodržení uživatelských oprávnění v rámci operačního systému plný přístup k rozhraní operačního systému a tedy například i k používání hardwaru klientského počítače. Aplikace tak může bez dodatečného potvrzování uživatelem například používat přímo vstupní zařízení (mikrofon, kameru, čtečku čárových kódů, případně komunikovat s terminálem pro platby kartou, atd.) případně může přímo pracovat se soubory na klientském počítači nebo tisknout přímo na tiskárně připojené ke klientskému počítači.

Potřeba být online

K tomu, aby mohl uživatel používat webovou aplikaci, musí být připojen k Internetu nebo přesněji k počítačové síti, ke které je připojen také server, na němž běží webová aplikace, kterou chce používat. To může být v některých případech problematické. Neberme do úvahy, že to stojí peníze. Dnes by se dalo říci, že internetové připojení je již standardem. Může ale docházet k výpadkům, během kterých je náš systém, který je implementován jako webová aplikace nedostupný a tedy nepoužitelný. Když pak máme například pokladní zařízení řešeno webovou aplikací, tak během výpadku nemůžeme aplikaci používat a tedy nemůžeme prodávat. Webová aplikace sice může být provozována v lokální podnikové síti a to může některé druhy výpadku eliminovat, nicméně výpadky mohou postihnout také podnikovou síť.

Desktopová aplikace je oproti tomu nainstalována na počítači uživatele a její používání není závislé na dostupnosti připojení. Desktopová aplikace sice může mít také funkcionalitu, která používá připojení k sítí / Internetu, ale pokud se nejedná o kritickou funkcionalitu, měla by být obecně schopná fungovat i během výpadku připojení, případně offline. U příkladu s pokladním zařízením by například bylo možné přidat prodeje během výpadku do aplikace, příjem částek by se ale do EET odeslal až později po obnovení spojení.

Práce s více uživateli a synchronizace dat

Webová aplikace se vysloveně nabízí jako řešení všude tam, kde je potřeba, aby s aplikací pracovalo více uživatelů s různými oprávněními nad stejnými daty. Tento požadavek se u webové aplikace splňuje velmi lehce hlavně díky její klient server architektuře. Všichni uživatelé pracují u webové aplikace vlastně s jednou instancí aplikace nad jednou databázi a pokud se implementace správně a transakčně uchopí, je splněno.

Naopak u desktopové aplikace je na každém počítači uživatele nainstalovaná jedná instance aplikace, se kterou uživatel pracuje. U požadavků na uživatelský přístup a synchronizaci dat, musí aplikace používat nějaký server, se kterým by každá instance aplikace za tímto účelem komunikovala, nebo musí řešit komunikaci mezi instancemi navzájem. Oba způsoby komplikují implementaci a u architektury se serverem to trochu zavání webovou aplikací.

Provoz, správa a nové verze

Webová aplikace je provozována na webovém serveru v jedné instanci a uživatelé ji používají vzdáleně prostřednictvím webového prohlížeče. Její správa je tedy omezena na správu a provoz onoho webového serveru. U správy webového serveru ale mohou být kladeny na pracovníky vyšší požadavky na odbornost než je tomu u desktopové aplikace, kde se aplikace spravuje na uživatelských stanicích v rámci firemní správy IT. Když je pak vytvořena nová verze aplikace, pouze se na webovém serveru aplikace obnoví do nové verze a hned (během pár sekund nebo minut) ji všichni uživatelé můžou používat v její nové verzi.

U desktopové aplikace je aplikace nainstalována na každém počítači uživatele. Správa a provoz aplikace se řeší v rámci firemní správy IT na uživatelských počítačích. Při instalaci nové verze aplikace je potřeba na všech počítačích aplikaci aktualizovat. Pokud je uživatelských počítačů mnoho, může aktualizace trvat delší dobu a během této doby mohou různí uživatelé používat různé verze aplikace, což klade další omezení na implementaci aplikace.

Bezpečnost

V oblasti webových aplikací i v oblasti desktopových aplikací existují mechanismy, jak tyto aplikace zabezpečit a je dobré je správně používat a věnovat jim pozornost. Na druhém břehu ale také existují postupy jak objevovat a zneužívat díry v těchto mechanismech. V tomto ohledu má webová aplikace často nevýhodu oproti desktopové a to v tom, že je dostupná online a relativně lehce v ní může kdokoliv hledat bezpečnostní díry (pokud není provozována v interní síti, za VPN a podobně).

Z pohledu zabezpečení dat má mnoho firem zavedené bezpečnostní politiky, které neumožňují uchovávat citlivá data mimo firemní síť. Pokud je webová aplikace provozována v internetu mimo podnikovou síť, může to být problém a je potřeba se dobře zamyslet, kde, jak a jaká data jsou v ní uchovávána.

Mezi webovou a desktopovou aplikací nelze určit jednoznačně výhodnější a lepší řešení. Vždy závisí na konkrétním problému, který má aplikace řešit. Každý typ aplikace se lépe hodí pro implementaci jiných požadavků. Je potřeba zvážit jednotlivé aspekty řešení a identifikovat výhody a nevýhody konkrétního návrhu a na základě toho adekvátně rozhodnout.

Rozhodli jste se pro webovou aplikaci?

Tvořím informační systémy a webové aplikace na míru a pokud jste pro své řešení informačního systému vybrali právě webovou aplikaci, rád Vám pomůžu s její realizací …

Michal Strelec, 25. února 2021

Další podobné články

Webová aplikace pro prodej služeb

Webová aplikace pro prodej služeb

Pro firmu VolnéKapacity jsem vyvinul na míru webovou aplikaci jobuya.cz, která umožňuje registrovaným uživatelům vytvářet a nabízet online různé nabídky případně poptávky mikroslužeb …

Je možné z webové aplikace tisknout štítky nebo vstupenky?

Je možné z webové aplikace tisknout štítky nebo vstupenky?

Webová aplikace může tisknout také nestandardní tiskové sestavy jako různé etikety, štítky, či vstupenky a není důvod ji kvůli požadavkům na tisk nahrazovat desktopovým řešením a připravit se tak o další výhody při jejím použití …

Informační systém pro zpracování objednávek a fakturaci

Informační systém pro zpracování objednávek a fakturaci

Pro Brašnářství Tatiana jsem vytvořil a provozuji informační systém pro zpracování objednávek a fakturaci, který pomáhá spravovat a automatizovat množství objednávek z e-shopu i prodejny …

ARES poskytne data o obchodních partnerech nebo zákaznících

ARES poskytne data o obchodních partnerech nebo zákaznících

Nejpouživanější a notoricky známý veřejný rejstřík ARES obsahuje mnoho užitečných dat o právnických a fyzických osobách a Váš vlastní informační systém se do něj může online dotazovat …

Tvorba webových aplikací

Tvorba webových aplikací

Jmenuji se Michal Strelec, jsem zkušený softwarový inženýr na volné noze a sám nebo s vlastním týmem dodávám služby tvorby webových aplikací na míru. Zjistěte, jak Vám pomůžu s Vaším projektem …