Vyšlo v týdeníku CHIPweek číslo 25/98, 16. června 1998
Vytištěno z adresy: http://www.earchiv.cz/a98/a825k180.php3

Výpočetní modely

Batch processing (dávkové zpracování)
s vývojem výpočetní techniky a všech jejích složek, tedy jak hardwaru, tak i softwaru, nutně docházelo k výrazným změnám i ve způsobu, jakým uživatelé provozují své aplikace, jak tyto aplikace fungují, kde běží, kde mají uložena svá data a kde je zpracovávají - tedy vlastně celková architektura aplikací, označovaná často také jako tzv. výpočetní model. Historicky nejstarším výpočetním modelem je dávkové zpracování, pocházející ještě z doby prvních počítačů. Ty neumožňovaly svým uživatelům interaktivní styk s jejich úlohami, místo toho museli uživatelé dopředu přesně říci, co a jak si přejí (vypočítat, spustit, uložit atd.), své pokyny museli "zabalit" do vhodného "balíčku" (tzv. dávky, anglicky batch), a ten pak zařadit do fronty dalších dávek, čekajících na zpracování. Až na příslušnou dávku přišla řada, počítač ji zpracoval a výsledky opět vhodně "zabalil" (například do formy výstupní tiskové sestavy), tak aby mohly být následně předány uživateli.
 
Host/terminal
Možnost interaktivního styku uživatele s jeho úlohou - tedy například průběžné reagování uživatele na průběh výpočtu - přinesl až další výpočetní model, označovaný jako host/terminál. Nástup tohoto výpočetní modelu se stal možný v okamžiku, kdy vývoj systémového programového vybavení (operačních systémů) pokročil natolik, že bylo možné na jednom procesoru provozovat několik úloh současně - přesněji "skoro současně", v tzv. režimu sdílení času, kdy se provádění jednotlivé úlohy ve velmi rychlém sledu střídá a vytváří tak iluzi, že tyto úlohy běží současně. Dalším nezbytným předpokladem zavedení nového výpočetního modelu bylo připojení vhodných terminálů, neboli vstupně/výstupních zařízení, umožňujících jednotlivým uživatelům zadávat své vstupy (typicky prostřednictvím klávesnice terminálu) a přijímat výstupy svých úloh (které se zobrazují na obrazovce terminálu). Samotný počítač, na kterém se úlohy zpracovávaly, se dostal do role tzv. hostitelského počítače (anglicky: host computer, odsud také termín "host/terminál"). Hostitelským v tom smyslu, že "hostil" veškeré systémové zdroje, od výpočetní kapacity (procesoru) přes různé druhy pamětí a dalších zařízení, po operační systém, nejrůznější aplikace a jejich data. Samotné terminály pak byly vysloveně pasivními prvky, a veškeré zpracování se odehrávalo jen na hostitelském počítači.
 
Izolované osobní počítače
Výpočetní model host/terminál dlouho vládnul celému počítačovému světu, ale byl také často kritizován. Nejčastěji proto, že uživatelům nabízel jen malý komfort a nutil je sdílet veškeré systémové zdroje s ostatními uživateli (což vyplývalo ze samotné podstaty, která je značně centralizovaná, a všechny zdroje jsou "na jedné hromadě"). Proto všichni toužebně očekávali dobu, kdy cena počítačů poklesne natolik, že bude možné každému dát k dispozici jeho vlastní počítač, který již nebude muset s nikým sdílet. K tomu došlo s příchodem osobních počítačů, zejména těch kompatibilních s IBM PC. Nástup těchto skutečně "osobních" počítačů opravdu přinesl mnoho zlepšení - například větší komfort pro uživatele - ale přinesl také nový výpočetní model, který by bylo možné nazvat jako "model izolovaných počítačů". Ten totiž předpokládal, že jednotlivé aplikace běží na samostatném počítači, který není nijak propojen s ostatními počítači (je od nich zcela izolován), a tudíž má i vše potřebné jen k vlastní dispozici. To sice přineslo určité zjednodušení pro tvůrce aplikací a umožnilo jim zvýšit uživatelský komfort, ale na druhé straně to přineslo i některé zcela nové problémy. Například problém se sdílenými daty, se kterými chce pracovat více uživatelů: při neexistenci propojení mezi různými počítači bylo nutné vytvořit několik samostatných kopií těchto dat, a pak vznikaly opravdu nepříjemné problémy, pokud uživatelé chtěli tato data měnit. Dalším problémem byla správa izolovaných počítačů: jestliže u předchozího modelu host/terminál stačilo odstranit příslušný problém na jediném centrálním místě (na hostitelském počítači), nyní bylo třeba problém odstraňovat na mnoha místech (současně na jednotlivých počítačích).
 
File server/workstation (file server/pracovní stanice)
Po určitém vystřízlivění z počáteční euforie nad zcela samostatnými a vzájemně izolovanými osobními počítači lidé přišli na to, že je přeci jen vhodné zase některé věci vrátit "na jednu hromadu", místo toho aby existovaly v několika kopiích nezávisle na sobě. Týkalo se to nejen společných (sdílených) dat, ale kvůli snazší správě také samotných aplikací. Proto se vyvinul další výpočetní model, umožňující zajistit potřebné sdílení toho, co má být sdíleno, a naopak individualizaci a izolovanost toho, co sdíleno být nemusí. Tento model předpokládá existenci lokální počítačové sítě a v ní existenci centrálního uzlu, který vystupuje v roli tzv. file serveru - ostatním uzlům (svým klientům) poskytuje službu spočívající v uchovávání jejich souborů. Díky tomu mohou být jednotlivé soubory (představující jak data, tak i samotné aplikace) umístěny centrálně na tomto file serveru, ale z pohledu ostatních uzlů (klientů file serveru) se mohou tvářit jako jejich vlastní soubory. V důsledku toho pak aplikace i data "sedí" na file serveru, ale zpracovávány jsou na jeho klientech, neboli na pracovních stanicích jednotlivých uživatelů. Důležité přitom je, že celé sdílení centrálně umístěných souborů je z pohledu aplikací neviditelné, takže tyto aplikace s ním nemusí vůbec počítat (a mohou to tedy být aplikace určené pro provozování na samostatných izolovaných počítačích PC).
 
Client/server (klient/server)
Výpočetní model file server/pracovní stanice má i mnoho nevýhod, mezi které patří i jeho dosti častá neefektivnost. Jestliže jsou totiž data uchovávána na jednom místě (centrálně na file serveru) a zpracovávána jinde (u uživatele, na jeho pracovní stanici), je nutné je vždy přenést z jednoho místa na druhé. Je přitom nutné je přenést všechny (jako příslušné datové soubory), bez ohledu na to, jak velká či malá část z nich bude skutečně potřeba. Takže jde-li například o vyhledání jediného dvouhodnotového údaje (typu ano/ne) v megabytové databázi, je nutné nejprve přenést celou tuto megabytovou z file serveru na uživatelovu pracovní stanici. Možnost minimalizovat takovéto zbytečné přenosy vede k "roztržení" aplikace, která data zpracovává - ta část aplikace, která s daty fakticky pracuje, bude provozována tam, kde se nachází i samotná data, tedy na centrálním serveru. Naproti tomu ta část aplikace, která zajišťuje styk s uživatelem, sběr jeho dotazů i prezentaci výsledků, je provozována přímo na uživatelově stanici. Pokud jsou obě "roztržené" části aplikace vhodně koncipovány, jejich vzájemná komunikace může být velmi efektivní a nenáročná na objem přenášených dat. To je jedna z velkých výhod výpočetního modelu klient/server, který jsme si právě popsali.
 
3-tier client/server (3-úrovňová architektura klient/server)
klasický model klient/server, který jsme si popsali v předchozím odstavci, představuje dvojčlenné dělení původně jednolité (monolitické) aplikace. Ne vždy je ale takovéto dvojčlenné dělení optimální - mnoha dnešním aplikacím vyhovuje spíše rozdělení celé aplikace na tři části: jednou z nich je obvykle "masové zpracování dat", typicky nějaká databáze a nad ní potřebné databázové operace. Druhou částí bývá tzv. aplikační logika, která zajišťuje to, co je pro danou aplikaci specifické - například interpretuje data, obsažená v databázi, způsobem který vyplývá z podstaty aplikace (například u aplikace z oblasti účetnictví tato část zajišťuje provedení účetní uzávěrky, přičemž sama používá data obsažená v databázi). Třetí část se pak stará o styk s uživatelem, o prezentaci výsledků a sběr uživatelových dotazů. Tato třetí část je dnes velmi často řešena na platformě služby World Wide Web.