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.
Michal Strelec,
Ing. Michal Strelec
|
michal@strelec.pro
|
+420 608 407 544
Jsem softwarový inženýr na volné noze a zkušený vývojář informačních systémů a webových aplikací na míru. Nabízím dlouhodobé a spolehlivé partnerství při vývoji, provozu, rozšiřování a podpoře softwarového řešení. Mám přes 15 let zkušeností a úspěšně jsem realizoval více než 35 projektů webových aplikací a informačních systémů. Kancelář mám v hlavním městě Praha, své služby ale poskytuji také na dálku po celé České republice.
Zajímá Vás více informací?
Přečtěte si podrobněji, jak budeme postupovat při vývoji softwaru na míru, nebo si stáhněte moji vizitku s podrobnými informacemi v PDF. Pokud Vás blíže zajímá moje práce, prohlédněte si moje reference, nebo mě kontaktujte a zeptejte se na více informací …
Další podobné články
Řešení mobilní aplikace
Pro implementaci mobilní verze své webové aplikace máme v zásadě tři možnosti. Podívejme se podrobněji na jednotlivé možnosti a identifikujme jejich hlavní výhody a nevýhody …
Co je to webová aplikace?
Pro realizaci informačních systémů na míru se ve většině případů velmi dobře hodí webová aplikace. Zjistěte, co je to webová aplikace, jak funguje, a kdy a proč je vhodné ji použít pro implementaci informačního systému …
Jak funguje webová aplikace?
Při vývoji nového informačního systému do firmy často stojíme před rozhodnutím, jestli pro řešení systému použít webovou aplikaci. Abychom se uměli správně rozhodnout, musíme vědět, jak webová aplikace funguje …