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

První pokus o grafické terminály

Snaha dodat terminálům schopnost pracovat v grafickém režimu samozřejmě neskončila u konstatování, že způsobem naznačeným v závěru odstavce cesta opravdu nevede. Zopakujme si znovu, v čem je základní kámen úrazu: v tom, že veškerá grafická data vznikají tam, kde běží vlastní aplikace (tj. na hostitelském počítači), a tato data jsou opravdu příliš velká na to, aby bylo únosné je přenášet někam jinam (na uživatelův terminál), a teprve tam je zobrazovat. Lidi však brzy napadlo efektivnější řešení: vzít funkce spojené s generováním grafických dat (které produkují ony příliš velké objemy), oddělit je od samotné aplikace a přenést je přímo na uživatelův terminál. Ten pak sice bude muset mít určitou výpočetní kapacitu, aby tyto funkce dokázal zajišťovat, ale na druhé straně se tím hodně ušetří na objemech komunikaci mezi aplikací a terminálem, na kterém jsou zobrazovány. Pokud pak aplikace bude chtít vykreslit na uživatelově obrazovce například rámeček, už mu nebude muset posílat tento rámeček rozkreslený až do jednotlivých pixelů - místo toho mu pošle krátký příkaz ve stylu "Vykresli_rámeček()", jehož "objem" je prakticky zanedbatelný. O příslušné vykreslení rámečku se již postarají zobrazovací funkce, realizované přímo v terminálu, a jimi vytvořená grafická data se již nebudou nikam přenášet, ale "zkonzumují se" přímo na místě.

Obrázek 1.
Představa fungování systému X Window

Pro praktickou využitelnost této myšlenky je samozřejmě velmi podstatné, jak se navrhne rozhraní mezi aplikací a zobrazovacími funkcemi, implementovanými přímo v terminálu, včetně pravidel a konvencí pro jejich vzájemnou komunikaci. Jedno z prvních praktických řešení nabídnul systém X Window (pozor, bez "s" na konci), šitý na míru prostředí Unixu. Podle filosofie tohoto systému je zobrazování (vykreslování) službou, realizovanou na architektuře klient/server. Serverem zde je ten, kdo zajišťuje vykreslování nejrůznějších objektů (a tedy terminál vybavený potřebnými schopnostmi), zatímco klientem je ten, "kdo si říká" o vykreslování, resp. ten kdo generuje konkrétní požadavky na vykreslení (a to je samotná "užitečná" aplikace, se kterou uživatel pracuje). Poněkud odlišně od obvyklé konvence zde tedy aplikace vystupuje v roli klienta, zatímco v roli serveru vystupuje terminál (označovaný v tomto konkrétním případě také jako tzv. X-terminál).

Systém X-Window a jeho X-terminály se ale v praxi moc neuchytili. Důvodů bylo více: svou roli jistě sehrála i relativní komplikovanost a náročnost tohoto řešení na nastavení a konfiguraci. Nevýhodou pak byla i relativní univerzálnost celého řešení, které sice umožnilo vyjít vstříc mnoha různorodým aplikacím a systémům, ale na druhé straně si to vyžádalo nepříjemnou daň: komunikace mezi klientem a serverem v prostředí X Window nemohla být více "ušita na míru", resp. optimalizována tak, aby objem přenášených dat byl opravdu hodně malý. X-terminály mají stále ještě relativně vysoké nároky na průchodnost přenosových cest.