Vícevrstvá architektura: tenký, tlustý a chytrý klient

V příspěvku „Vícevrstvá architektura: popis vrstev“ jsme si stručně charakterizovali jednotlivé vrstvy vícevrstvé architektury, nyní si popíšeme jednotlivé typy SW klientů a jejich výhody a nevýhody.

Tlustý klient (thick client)

Tlustý klient v sobě obvykle obsahuje jak presentační tak i aplikační vrstvu a připojuje se přímo k databázovému nebo jinému serveru. Další typickou vlastností tlustého klienta je, že si přes síť stahuje velký objem dat, která zpracuje a výsledek pak přenese zpět na server. Instalace, konfigurace a podpora tlustých klientů je časově a finančně mnohem náročnější než je tomu v případě tenkých klientů, protože je musíme dostat na každý stroj, na kterém má být tlustý klient provozován. Je jedno, zda budeme volit metodu push, kdy budeme nové verze tlačit na klienta nebo upřednostníme metodu pull, kdy si klient bude sám nové verze stahovat. V obou případech budeme muset řešit nejrůznější problémy a ošetřovat nejrůznější chybové stavy jako je nedokončení přenosu, nedostatečná šířka pásma, podpora klientů ve více verzích na různých operačních systémech apod.

+ klient vyžaduje výkonný HW
+ server nevyžaduje výkonný HW
– vysoké nároky na šířku pásma
+ snadný a rychlý vývoj
– obtížné nasazení
– obtížný update
– obtížná správa
+ snadná podpora uživatelů
+ přívětivé uživatelské rozhraní
+ možnost pracovat offline
– stopy aplikace v systému (vlastní program, data, DLL, registry)
+ přenositelnost (různé verze pro různé HW a SW platformy)
+ rychlá odezva aplikace
0 data uložena na stanici

Tenký klient (thin client)

Tenkým klientem je obvykle webový prohlížeč, který s presentační vrstvou komunikuje přes bezestavový HTTP protokol a stará se tak pouze o zobrazování dat. Na tenkém klientovi neprobíhá žádná rozhodovací logika, pokud nebereme v úvahu např. validaci dat, zadávaných do webového formuláře. (Mimochodem, někdy označováno jako validační vrstva, která by se měla nacházet též na webovém serveru.) Z výše uvedené skutečnosti je snad zřejmé, že nároky na instalaci, konfiguraci a podporu tenkých klientů jsou minimální, protože uživateli takové aplikace stačí, když má na svém počítači nainstalován nějaký internetový prohlížeč (IE, FF apod.). Naprosto tak odpadá starost o to, aby měl klient k dispozici vždy aktuální verzi, neboť ta je k dispozici všem klientům v okamžiku, kdy je nasazena na serverech. Komunikace mezi tenkým klientem a serverem je intenzivnější než v předchozím případě, ale na druhou stranu se mezi nimi přenese menší objem dat (neplatí např. u JS frameworků využívající AJAX, neboť zde se přenáší jen změny, nikoliv celá stránka), protože k vlastnímu zpracování dat dochází na serveru a na klienta se přenáší pouze výsledek tohoto zpracování. Určitou nevýhodou je, že u aplikací, u kterých není vyžadována autentizace, nikdy přesně nevíme, kolik uživatelů (tenkých klientů) se k naší aplikaci připojí. V případě tlustého klienta maximální možný počet současně připojených uživatelů obvykle víme, protože víme, na kolika zařízeních byl nainstalován a tudíž je snazší spočítat, jak výkonný HW budeme potřebovat. Vývoj aplikace pro tenkého klienta je náročnější především z důvodu rozčlenění aplikace do jednotlivých vrstev.

+ klient nevyžaduje výkonný HW
– server vyžaduje výkonný HW
+ nízké nároky na šířku pásma
– náročný vývoj
+ snadné nasazení
+ snadný update
+ snadná správa
+ snadná podpora uživatelů
– Strohé uživatelské rozhraní
– nemožnost pracovat offline
+ přenositelnost (běží v každém prohlížeči)
– pomalá odezva aplikace
+ minimální stopy po aplikace v systému (cookies, temp, history)
0 žádná data se na stanici neukládají

Chytrý klient (SMART client)

Chytrý klient vhodně kombinuje výhody tenkého a tlustého klienta a potlačuje jejich nevýhody. Aby mohl pracovat offline, obsahuje určitou logiku a drží data, která se v okamžiku navázání spojení synchronizují. Využívá místní systémové zdroje jako je např. paměť, procesor a diskový prostor, ale může komunikovat a využívat i připojených zařízení. Stejně tak může využívat přítomnosti a funkcí, které nabízejí ostatní nainstalované aplikace např. MS Office. Chytrý klient předpokládá, existenci např. .NET frameworku, JRE nebo pluginu v prohlížeči (např. Gears, který je k dispozici pro různé OS i prohlížeče). Při svém spuštění si v případě dostupné sítě ověří, zda neexistuje novější verze a pokud ano, tak ji stáhne a spustí. Pokud se nová verze objeví během uživatelova sezení, je na to uživatel upozorněn. Právě schopnost pracovat off-line a automatické stahování aktuální verze aplikace v okamžiku navázání spojení se serverem lze považovat za základní vlastnost chytrého klienta, ostatní uvedené vlastnosti jsou odvozené.

0 Klient nevyžaduje výkonný HW
0 Server nevyžaduje výkonný HW
0 nenáročný na šířku pásma
0 snadný vývoj
0 snadné nasazení
0 snadný update
0 snadná správa
0 snadná podpora uživatelů
0 přenositelnost (runtime, pluginy do prohlížeče)
0 možnost pracovat offline
0 přívětivé uživatelské rozhraní
0 rychlé odezva aplikace
0 stopy aplikace v systému (pouze vlastní program)
0 dočasně uložená data

Srovnání klientů

U každého klienta jsme si výše uvedli 14 vlastností, ty můžeme pro snadné srovnání zanést do tabulky. Představu o vlastnostech jednotlivých klientů si však můžeme udělat i z následujícího obrázku.

Tlustý chytrý tenký klient

S některými běžně uváděnými rozdíly týkající se jednotlivých klientů, však nemůžeme zcela souhlasit. Např. často uváděné uživatelské rozhraní nemusí být vůbec tím, čím se musí nutně od sebe jednotliví klienti odlišovat. Nezřídka se uvádí, že uživatelské rozhraní tenkého klienta je chudé a že se nemůže rovnat rozhraní, kterým disponuje tlustý klient. To je nesmysl. Určitou střídmost lze naopak považovat za výhodu, protože spousta rozhraní současných tlustých klientů je velice komplikovaných. U tenkého klienta se totiž vývojář musí návrhem uživatelského rozhraní vážně zabývat, protože odezva aplikace je stejně jako snadnost ovládání pro úspěch aplikace naprosto klíčová. Zde se již vývojář nemůže spoléhat na výkonný HW na straně klienta.

Tlustý chytrý tenký klient

Stejně tak ale může rozhraní tenkého klienta vypadat úplně stejně jako u tlustého, neboť pomocí kaskádových stylů a grafických prvků lze i v prohlížeči dosáhnout stejného vzhledu jako mají např. aplikace od společnosti Microsoft, na které jsou uživatelé zvyklí. Problém však nastane v okamžiku, kdy uživatel chce používat i klávesové zkratky, funkci drag and drop a pravé tlačítko myši stejným způsobem jako v tlustém klientovi a ono to najednou nefunguje. Zde narážíme na skutečnost, že vývojáři se sice podařilo věrně napodobit vzhled tlustého klienta, ale nikoliv jeho chování, což je neméně důležité. Zdá se, že tvůrci tenkých klientů moc nemyslí na rozdíly tenkých a tlustých klientů a se vzrůstajícími počtem aplikací tenkých klientů vyvstává otázka nejen podobného GUI, ale i podobného ovládání (tzv. look and feel).

Sporná je též otázka bezpečnosti jednotlivých typů klientů, která by si zasloužila samostatný rozbor. Je třeba si uvědomit, že tencí klienti sice běží v prohlížečích, které jsou zranitelné, ale tlustí klienti jsou zase instalovány na zařízeních, kde je útočník může detailně zkoumat a jejich slabá místa identifikovat. Ve všech případech je zapotřebí věnovat dostatek pozornosti zabezpečení klienta i prostředí, ve kterém je provozován. Minimálně bychom měli aplikovat příslušné bezpečnostní záplaty, aktivovat firewall, nasadit antimalware a bezpečně se do zařízení autentizovat.


Pokud vás tento příspěvek zaujal, sdílejte ho!
Share on FacebookShare on LinkedInTweet about this on TwitterShare on Google+Email this to someonePrint this page

Štítky:


K článku “Vícevrstvá architektura: tenký, tlustý a chytrý klient” se zde nenachází žádný komentář - buďte první.

Diskuse na tomto webu je moderována. Pod článkem budou zobrazovány jen takové komentáře, které nebudou sloužit k propagaci konkrétní firmy, produktu nebo služby. V případě, že chcete, aby z těchto stránek vedl odkaz na váš web, kontaktujte nás, známe efektivnější způsoby propagace.

Přihlášeným uživatelům se tento formulář nezobrazuje - zaregistrujte se.

Jméno:(požadováno)
E-mail:(požadováno - nebude zobrazen)
Web:

Text vaší reakce: