Vyšlo v příloze Softwarových novin, v květnu 2002
Vytištěno z adresy: http://www.earchiv.cz/b02/b0500003.php3

Od monolitických aplikací k webovým službám

Ruku v ruce vývojem v oblasti architektury počítačů a počítačových sítí se samozřejmě mění a vyvíjí i architektura operačních systémů a aplikací. První operační systémy a aplikace na počítačích s dávkovým zpracováním byly kapitolou samy pro sebe - byly optimalizovány zejména s ohledem na co nejefektivnější využití vzácného strojového času, zatímco uživatel se svými potřebami se musel zcela přizpůsobit (například i v tom, že neměl bezprostřední kontakt se svou úlohou, provozovanou v režimu dávkového zpracování).

Interaktivita

Teprve nástup střediskových počítačů a terminálů umožnil vyjít vstříc uživatelům alespoň v tom, že měli možnost interaktivní práce se svou aplikací. Mohli jí tedy zadávat své příkazy průběžně a reagovat na běh aplikace. Díky této interaktivitě se mohly objevit první editory v dnešním slova smyslu (byť ještě zdaleka ne WYSIWYG), ale třeba také první hry apod.

Takovéto aplikace samozřejmě musely počítat s tím, že běží na střediskovém počítači, a že tyto jsou vybaveny určitým počtem terminálů - musely být připraveny posílat své výstupy na obrazovku toho terminálu, ke kterému si uživatel sedne a ze kterého se přihlásí (zaloguje do systému). Stejně tak musely být připraveny přijímat své vstupy z příslušného terminály. Celkově tedy takovéto aplikace musely být založeny na modelu, kterému se dodnes říká "host/terminál". "Hostem", přesněji "hostitelským počítačem", je zde míněn právě střediskový počítač, který "hostí" (má u sebe, ve své moci) všechny systémové zdroje, včetně hardwarových a softwarových ( termín "host" je třeba chápat jako anglický termín, jehož překlad do češtiny znamená právě "hostitel").

Sdílení času

Jelikož střediskové počítače byly velké a drahé, musely sloužit více uživatelům. Na rozdíl od dřívějšího dávkového zpracováním však již dokázaly sloužit více uživatelům současně. K tomu ale potřebovaly jak více terminálů (pro každého aktivního uživatele jeden), tak i mechanismus fungování, který by umožnil paralelní (souběžné) zpracování více aplikací, pro potřeby jednotlivých uživatelů. Skutečně paralelně to bohužel nešlo, protože to by znamenalo zavedení většího počtu procesorů, a na to střediskové počítače nemohly ani pomýšlet. Proto se musel najít způsob, jak dosáhnout alespoň stejného efektu - tedy toho, aby si uživatelé mohli alespoň myslet, že jejich aplikace běží na hostitelském počítači souběžně, a mohli mít pocit skutečně interaktivní komunikace s nimi.

To se také skutečně podařilo, díky zavedení tzv. sdílení času (timesharing). Podstata tohoto mechanismu spočívá v tom, že jednotlivé aplikace se na střediskovém počítači střídají tak rychle, že to uživatelé pracující na terminálech nemají šanci poznat a mohou si myslet, že právě jejich aplikace běží trvale.

Monolitické aplikace

Aplikace, provozované na střediskových počítačích v režimu sdílení času, nemusely ale mohly být fakticky tvořeny z více částí (komponent, prvků apod.). Důležité bylo, že všechny tyto součásti byly "na jedné hromadě" - tedy na jednom místě, kde se o ně mohl starat někdo centrálně a společně (takže nebyl až tak velký problém zajistit jejich náležitou správu a systémovou údržbu).

Jakmile ale nastoupily samostatné a vzájemně izolované osobní počítače, situace se rázem změnila. Nyní již bylo nutné instalovat konkrétní aplikace pokaždé znovu na každém jednotlivém počítači, a zde se také o ně jednotlivě starat. To jen podporovalo tehdejší trend dělat aplikace monolitické, "uzavřené do sebe" (self-contained"), tak aby tvořily jeden celek obsahující již vše potřebné - aby se co nejvíce zjednodušila jejich správa a nebylo nutné se starat samostatně o jednotlivé části.

Režim file server/pracovní stanice

Právě správa monolitických aplikací, "rozesetých" na velkém počtu osobních počítačů, se ukázala být velkým a závažným problémem - je velmi obtížné ji nějak zautomatizovat, a vyžaduje vysoké náklady na lidský prvek (na správce, který počítače obchází a provádí příslušné zásahy).

Cestu k určitému řešení otevřelo propojení počítačů do lokálních sítí a zavedení tzv. file serverů (počítačů sloužících potřebám sdílení souborů). To umožnilo umístit aplikace (coby soubory) na jedno společné místo (na file server), sdílené více počítači současně, ale používat je (provozovat) individuálně na jednotlivých počítačích. Bylo to sice spojeno s určitými technickými problémy (například s individuálním nastavením aplikace pro jednotlivé uživatele, s použitím individuálních pracovních souborů atd.), ale přeci jen to řešilo část problému: aplikaci stačilo nainstalovat (či přeinstalovat) jednou, ale dostupná byla potenciálně všem uživatelům v celé lokální síti.

Architektura klient/server

Poměrně významnou změnou v architektuře aplikací, směrem na jejich cestě od monolitických (jednolitých) aplikací k aplikacím složeným z různých specializovaných komponent, bylo zavedení architektury klient/server. Je založena je jednoduché myšlence: aplikace se rozdělí na dvě části, tak aby jedna část (serverová část, server) mohla existovat a být provozována v jediném exempláři, na vhodném centrálním místě, zatímco pouze druhá část (klientská část, klient) je provozována ve více exemplářích, po jednom pro každého uživatele, který chce s aplikací pracovat.

Aby serverová i klientská část aplikace mohly běžet na jiném počítači, je zapotřebí vhodné propojení - ať již prostřednictvím lokální či rozlehlé sítě, nebo dokonce i propojení mobilní, umožňující i mobilitu uživatelů. Důležitá je přitom volba způsobu komunikace mezi serverovou a klientskou částí aplikace. Pokud je navržen tak, aby minimalizoval objem dat přenášený mezi nimi, je možné vystačit i s velmi pomalým připojením.

Významnou předností aplikační architektury klient/server je možnost provozovat serverovou část i klientskou část na různých systémových platformách (v prostředí různých operačních systémů), i na různých typech zařízeních - pokud je vhodně navržen způsob vzájemné komunikace obou částí, může například server běžet na výkonném počítači pod OS Unix, zatímco klientská část na osobním počítači PC pod MS Windows (nebo třeba také na mobilním zařízení PDA).