Vyšlo v Softwarových novinách č. 8/97, v srpnu 1997
Vytištěno z adresy: http://www.earchiv.cz/a708s600/a708s632.php3

Architektura klient/server

Jednou z daní, kterou výpočetní model file server/pracovní stanice platil za neviditelnost celé sítě, byla jeho menší efektivnost. Asi nejmarkantnějším je příklad databázové aplikace, která svá data uchovává v jednom velkém souboru - ten je v případě využití modelu file server/pracovní stanice umístěn na centrálním file serveru, ale zpracováván je na uživatelově pracovní stanici. Sem tedy musí být přenesen celý, bez ohledu na to, jak velká či malá část z něj je skutečně zapotřebí. Jde-li například o soubor velikosti několika megabytů, ve kterém se má vyhledat několikabytová položka, pak je jistě ihned zřejmé, že prohledávat takovýto databázový soubor až u uživatele není zrovna efektivní. O co efektivnější by bylo prohledat jej přímo tam kde je uložen (tj. na centrálním serveru), a po síti přenést až na uživatelovu pracovní stanici jen výsledek tohoto prohledání (tj. několik málo bytů místo megabytů).

Aby však něco takového bylo možné, musela by s tím počítat i samotná databázová aplikace. Musela by být rozdělena na dvě relativně autonomní části, které by byly provozovány na různých uzlech sítě: jedna, která by prohledávala vlastní data, by běžela na serveru, zatímco druhá by běžela přímo na uživatelově pracovní stanici a zajišťovala by komunikaci s uživatelem (např. by od něj přijímala jednotlivé dotazy, zobrazovala výsledky apod. Pokud by se původně monolitická aplikace šikovně rozdělila, tj. při vhodné "dělbě práce" mezi obě její nové části, může být velmi výrazně minimalizován objem dat, které se budou po síti přenášet.

Obvyklé označení výpočetního modelu, který jsme si právě popsali, je klient/server - serverem je ta část rozdělené aplikace, která "zůstala na serveru", a je charakteristická tím, že na požádání poskytuje určité služby (zde: prohledává databázi). Naproti tomu klientem je druhá složka (běžící na pracovní stanici uživatele), a která na popud uživatele komunikuje se serverem a nechává si od něj vykonávat konkrétní služby. Na vztahu klienta a serveru je charakteristické zejména to,že aktivita je vždy na straně klienta, zatímco server je vysloveně pasivní: své služby sám nikomu nevnucuje, ale pouze pasivně čeká, až o ně nějaký klient požádá. To také naznačuje další zajímavý aspekt vztahu klienta a serveru: jeden server může sloužit více klientům, praktické omezení je většinou dáno pouze jeho výkonností.

Výpočetní model klient/server sice vzniknul v prostředí počítačových sítí, ale dnes je chápán obecněji, jako určitá filosofie tvorby počítačových aplikací - filosofie vycházející ze snahy rozdělit aplikaci na dílčí části s jasně vymezenými kompetencemi a úkoly. Dnes již není vůbec nutné, aby server i klient běželi na různých uzlových počítačích a komunikovali prostřednictvím sítě - klient i server mohou být provozovány i na jednom a témže počítači.

Koncepce výpočetního modelu klient/server jako dvoučlenné dělby práce se samozřejmě dále vyvíjela. Zejména v souvislosti s nástupem Internetu a jeho služby WWW časem získala na oblibě i tzv. třívrstvá architektura klient/server, předpokládající dělbu práce mezi tři různé subjekty.