Kliens-szerver architektúra
A számítástechnikában a kliens-szerver egy olyan szoftverarchitektúra-modell, amely két részből áll: kliensrendszerekből és szerverrendszerekből, amelyek egy számítógépes hálózaton vagy ugyanazon a számítógépen kommunikálnak egymással. A kliens-kiszolgáló alkalmazás egy kliens- és kiszolgálószoftverből álló elosztott rendszer. A kliens-kiszolgáló alkalmazás jobb módot biztosít a munkaterhelés megosztására. a kliens folyamat mindig kapcsolatot kezdeményez a kiszolgálóval, míg a kiszolgáló folyamat mindig várja bármelyik kliens kérését.
Ha az ügyfélfolyamat és a kiszolgálófolyamat ugyanazon a számítógépen fut, ezt nevezzük egyhelyes telepítésnek.
A kapcsolódó szoftverarchitektúra másik típusa a peer-to-peer, mivel minden egyes állomás vagy alkalmazáspéldány egyszerre lehet ügyfél és kiszolgáló (ellentétben a kliens-szerver modell központi szervereivel), és mivel mindegyikük egyenértékű felelősséggel és státusszal rendelkezik. A peer-to-peer architektúrákat gyakran rövidítik a P2P rövidítéssel.
Az ügyfél-kiszolgáló kapcsolat azt a kapcsolatot írja le, hogy az ügyfél milyen módon nyújt be szolgáltatási kérelmet a kiszolgálóhoz, és a kiszolgáló hogyan tudja ezeket a kérelmeket elfogadni, feldolgozni és a kért információt visszaküldeni az ügyfélnek. Az ügyfél és a kiszolgáló közötti kölcsönhatást gyakran szekvencia-diagramokkal írják le. A szekvencia diagramokat az Unified Modeling Language szabványosítja.
Mind az ügyfél-kiszolgáló, mind a P2P architektúrák széles körben elterjedtek.
A kliens-kiszolgáló szoftverarchitektúra alaptípusa csak kétféle hosztot használ: klienseket és kiszolgálókat. Ezt az architektúrát néha kétszintűnek is nevezik. A kétszintű architektúra azt jelenti, hogy az ügyfél az egyik szint, a szerverfolyamat pedig a másik szint.
A kliens-szerver szoftverarchitektúra a hálózati számítástechnika egyik alapvető modelljévé vált. Számos alkalmazástípus készült a kliens-kiszolgáló modell alkalmazásával. Az olyan szabványos hálózati funkciók, mint az e-mail-csere, a webes hozzáférés és az adatbázis-hozzáférés, az ügyfél-kiszolgáló modellen alapulnak. A webböngésző például a felhasználó számítógépén lévő kliensprogram, amely a világ bármelyik webkiszolgálóján lévő információhoz hozzáférhet.
Egy peer-to-peer alapú hálózat.
Egy szerver alapú hálózat.
Ügyfelek jellemzői
- Mindig kéréseket kezdeményez a kiszolgálókhoz.
- Várja a válaszokat.
- Válaszokat kap.
- Általában egyszerre kis számú kiszolgálóhoz csatlakozik.
- Általában közvetlenül lép kapcsolatba a végfelhasználókkal bármilyen felhasználói felület, például grafikus felhasználói felület segítségével.
Kiszolgálói jellemzők
- Mindig várjon az egyik ügyfél kérésére.
- Kiszolgálja az ügyfelek kéréseit, majd válaszol az ügyfeleknek a kért adatokkal.
- Egy kiszolgáló kommunikálhat más kiszolgálókkal az ügyfélkérés kiszolgálása érdekében.
- Ha a kérés feldolgozásához további információkra van szükség (vagy a biztonság megvalósítására), a kiszolgáló a kérés feldolgozása előtt további adatokat (jelszavakat) kérhet az ügyféltől.
- A végfelhasználók jellemzően nem közvetlenül a kiszolgálóval lépnek kapcsolatba, hanem egy klienst használnak.
Előnyök
- A legtöbb esetben a kliens-szerver architektúra lehetővé teszi, hogy a számítástechnikai rendszer szerepének és felelősségi körének romlását több független, egymással csak hálózaton keresztül ismert számítógép között osszák szét, így e modell egyik előnye a könnyebb karbantarthatóság. Lehetőség van például egy kiszolgáló cseréjére, javítására, frissítésére vagy akár áthelyezésére, miközben a kliensek nem tudnak róla, és nem is érinti őket ez a változás. Ezt a változástól való függetlenséget kapszulázásnak is nevezik.
- Minden adatot a szervereken tárolnak, amelyek általában jobb biztonsági ellenőrzésekkel rendelkeznek, mint a legtöbb ügyfél. A szerverek jobban tudják ellenőrizni a hozzáférést és az erőforrásokat, így garantálva, hogy csak a megfelelő jogosultságokkal rendelkező ügyfelek férhetnek hozzá az adatokhoz és módosíthatják azokat.
- Mivel az adattárolás központosított, az adatok frissítése sokkal egyszerűbb a rendszergazdák számára, mint ami egy P2P-architektúra esetén lehetséges lenne. P2P-architektúra esetén az adatfrissítéseket esetleg szét kell osztani és alkalmazni kell a hálózat minden egyes "egyenrangú félre", ami időigényes és hibakockázatos, mivel több ezer vagy akár több millió egyenrangú fél is lehet.
- Számos fejlett ügyfél-kiszolgáló technológia áll már rendelkezésre, amelyeket úgy terveztek, hogy biztosítsák a biztonságot, a felhasználóbarát felületeket és a könnyű használatot.
- Több különböző specifikációjú ügyféllel működik.
Hátrányok
- A hálózati forgalom blokkolása az ügyfél-kiszolgáló modellhez kapcsolódó egyik probléma. Ahogy nő az egyidejűleg egy adott kiszolgálóhoz érkező ügyfélkérések száma, a kiszolgáló túlterhelté válhat. Ezzel szemben a P2P-hálózat sávszélessége valójában növekszik, ahogy egyre több csomópontot adunk hozzá, mivel a P2P-hálózat teljes sávszélessége nagyjából kiszámítható a hálózat minden egyes csomópontja sávszélességének összegeként.
- Az ügyfél-kiszolgáló modell és a Peer to Peer modell összehasonlításakor, ha egy kiszolgáló meghibásodik, az ügyfelek kérései nem tudnak kiszolgálásra kerülni, de a P2P hálózatok esetében a kiszolgálók általában sok csomópont között vannak elosztva. Még ha egy vagy több csomópont meg is hibásodik, például ha egy csomópont nem tudott letölteni egy fájlt, a többi csomópontnak akkor is rendelkeznie kell a letöltés befejezéséhez szükséges adatokkal.
Példák
- A kliensek konkrét típusai a következők: webböngészők, e-mail kliensek és online csevegőprogramok.
- A kiszolgálók konkrét típusai: webkiszolgálók, FTP-kiszolgálók, adatbázis-kiszolgálók, e-mail-kiszolgálók, fájlkiszolgálók, nyomtatókiszolgálók. A legtöbb webszolgáltatás szintén szervertípus.
Kérdések és válaszok
K: Mi az a kliens-szerver szoftverarchitektúra?
V: Az ügyfél-kiszolgáló szoftverarchitektúra egy két részből, ügyfélrendszerekből és kiszolgálórendszerekből álló modell, amelyek egy számítógépes hálózaton vagy ugyanazon a számítógépen kommunikálnak egymással.
K: Hogyan működik egy ügyfél-kiszolgáló alkalmazás?
V: Az ügyfél-kiszolgáló alkalmazás egy elosztott rendszer, amely ügyfél- és kiszolgálószoftverekből áll. Az ügyfélfolyamat mindig kapcsolatot kezdeményez a kiszolgálóval, míg a kiszolgálófolyamat mindig várja bármelyik ügyfél kérését.
K: Mi történik, ha az ügyfél- és a kiszolgálófolyamat ugyanazon a számítógépen fut?
V: Amikor az ügyfél- és a kiszolgálófolyamat is ugyanazon a számítógépen fut, ezt nevezzük egyhelyes beállításnak.
K: Milyen előnyökkel jár a kliens-kiszolgáló alkalmazás használata?
V: Az Ügyfél-kiszolgáló alkalmazás használata jobb módot biztosít a munkaterhelés több számítógép vagy felhasználó közötti megosztására.
K: Ki kezdeményezi a kapcsolatokat az Ügyfélkiszolgáló alkalmazásokban?
V: Az ügyfélkiszolgáló alkalmazásokban mindig az ügyfélfolyamat kezdeményezi a kapcsolatokat.
K: Ki várja a kéréseket az Ügyfélkiszolgáló alkalmazásokban?
V: Az Ügyfélkiszolgáló alkalmazásokban mindig a Kiszolgáló folyamat várja a kéréseket.
K: Hogyan oszthatja meg több számítógép vagy felhasználó a munkaterhelést egymással?
V: Több számítógép vagy felhasználó megoszthatja a munkaterhelést egy elosztott rendszer, például egy Ügyfélkiszolgáló alkalmazás használatával.