Vastagkliens, vékonykliens és ami ma van

Az előző blogbejegyzésben elkezdtünk egy sorozatot, ami az informatikus tolvajnyelvet igyekszik bemutatni a kezdők számára. Múltkor a karakterkódolások témáját jártuk körül érthetően.

Ennek a blogcikknek egy Facebookon talált medior/senior Java-fejlesztő álláshirdetés adta az ihletet (Programozói állások, 2018.12.04. 13:06).
Az álláshirdetésben (bruttó 1.200.000 Ft) egy olyan fejlesztőt keresnek, aki 2-3 évig elkötelezi magát a cég mellett, és segít nekik a jelenlegi vastagklienses technológiáról áttérni vékonyklienses technológiára.

Ha egy laikusnak említem ezt a két szót, akkor ez fog beugrani:

Miről is van szó?

Önálló személyi számítógépek korszaka

Kezdetben minden személyi számítógép önállóan működött, mindenféle egymással való összeköttetés nélkül. Ha adatokat akartunk cserélni köztük, akkor kezdetben 5,25″-os nagylemezeken, később 3,5″-os kislemezeken tudtunk. (Az előbbi kapacitása 1,2 megabájt, az utóbbié 1,44 megabájt. V. ö., ma pendrive-ot nehéz 1-2 gigabájtnál kisebbet kapni, a különbség egy ezres szorzó).

Hálózatok és vastagkliens

Ezután megjelentek a hálózatok, előbb csak egy-egy épületen belül, majd kialakult ezek összekapcsolásából az internet.

A hálózatok megjelenésével a korábbi elszigetelt számítógépeken futtatott elszigetelt alkalmazások helyett elkezdték kihasználni a hálózat nyújtotta előnyöket.

Az egyik első elterjedt elrendezés az volt, hogy az adatokat tárolták egy központi gépen (szerveren), egy ún. adatbázisszerveren, és a számítógépeken továbbra is önállóan futó, csak az adatért a szerverhez forduló programok futottak (ők voltak a kliensek, akiket kiszolgált (to serve) a szerver). Ez volt a kliens-szerver architektúra, vagy kétrétegű architektúra (egyik réteg az adatok elérésének rétege, amire ráépült az adatokkal való műveletvégzés rétege. A réteg itt kb. egy-egy különálló részét jelenti a teljes rendszernek).

A vastagkliens név pedig onnan jön, hogy vastag egy réteg akkor, ha nagyon sok és bonyolult műveletet hajt végre. A számítógépre telepített alkalmazás pedig a műveletek nagy részét végezte, így vastagkliens lett a neve.

Mi akkor a vékonykliens?

Ahogy telt-múlt az idő, előjött a vastagklienses technológia néhány hátránya: mégpedig, hogy ha a klienst frissíteni kellett (új verzió, programhiba javítása, …), akkor a rendszergazda rohangálhatott végig a számítógépeken a kislemezekkel, hogy mindenhova feltelepítse az új verziót. Persze nem tud egyszerre végezni mindennel, úgyhogy fel kellett készülni arra, hogy néhány kliens még a régi lesz, néhány meg már az új. Ez az elrendezés nemcsak időigényes volt, de néha még kaotikus állapotokat is okozott.

A következő gondolat az volt, hogy akkor rendezzük át úgy a rétegeket, hogy a komoly, fontos műveleteket végző rész (üzleti logikának, vagy business logicnak is nevezik) is kerüljön fel szintén a szerverre. Vagy még inkább kerüljön fel egy másik szerverre. És amit a második szerver (az ún. alkalmazásszerver) produkál, azt meg a felhasználó a saját számítógépén meg majd megjeleníti egy sima webböngésző segítségével. Így a kliensnek nincs sok dolga, minödssze az, hogy megjelenítse azokat a weboldalakat, amit a szerver produkál. Nincs sok dolga, ergo ő lett a vékonykliens.
(Ha ilyen osztás van, hogy webböngésző – alkalmazásszerver – adatbázisszerver, azt nevezik háromrétegű architektúrának).

Persze azóta is telt-múlt az idő, megint rájöttek egy-két problémára, mint pl. arra, hogy ha sok felhasználó dolgozik egyszerre, akkor az alkalmazásszervernek nagyon nagy kapacitásúnak kell lennie, processzor és memória tekintetében, ami meg elképesztő pénz, főleg, hogy a felhasználó számítógépe csak üresen malmozik, mert egy weboldal megjelenítése a kapacitásához mérten semmiség.

Mi a helyzet ma?

A következő elképzelés (és itt jutunk el a mai naphoz) az volt, hogy akkor a sok-sok műveletet, amit el kell végeznie a programnak, mégiscsak rakják vissza a felhasználó gépére, de tartsák meg azt is, hogy ne a rendszergazdának kelljen végigrohangálnia a kislemezzel (pardon… most már pendrive-val) a gépek között, hogy frissítse új verzióra a gépek programjait. A megoldás az, hogy a program, amit a felhasználó a gépén futtat, egy Javascriptben megírt komplett program, ami mindig betöltődik a felhasználó gépén (annak webböngészőjébe), majd a böngészője futtatja, az adatokat meg egy központi szervertől kéri el.
(Ha precíz akarok lenni, akkor azt mondom, hogy az előfeldolgozott adatokat egy szervertől kéri el).
Egyszóval a mai uralkodó irányzat valahol a vastag- és a vékonyklienses elképezés között van félúton.

Pasztuhov Dániel

Ha szeretnél megtanulni programozni, de még nem töltötted még ki Alkalmas vagy-e programozónak? tesztünket, tedd meg most!

Ha te is szeretnél tőlünk tanulni programozni, az első lépés, hogy kitöltsd a tesztünket.
Ha sikerül legalább 55%-ra kitöltened, ajándékként két hétig és az első 5 fejezetig belekóstolhatsz az oktatási rendszerünkbe.