Klient-server

V informatike je klient-server model softvérovej architektúry pozostávajúci z dvoch častí, klientskych systémov a serverových systémov, ktoré komunikujú prostredníctvom počítačovej siete alebo na tom istom počítači. Aplikácia klient-server je distribuovaný systém zložený zo softvéru klienta aj servera. Aplikácia klient-server poskytuje lepší spôsob rozdelenia pracovného zaťaženia. klientsky proces vždy iniciuje spojenie so serverom, zatiaľ čo serverový proces vždy čaká na požiadavky od niektorého klienta.

Ak je klientsky proces aj proces servera spustený na tom istom počítači, nazýva sa to nastavenie na jednom mieste.

Ďalší typ súvisiacej softvérovej architektúry je známy ako peer-to-peer, pretože každý hostiteľ alebo inštancia aplikácie môže súčasne vystupovať ako klient aj server (na rozdiel od centralizovaných serverov modelu klient-server) a pretože každý z nich má rovnocenné zodpovednosti a postavenie. Architektúry typu peer-to-peer sa často označujú skratkou P2P.

Vzťah medzi klientom a serverom opisuje vzťah medzi klientom a spôsobom, akým zadáva požiadavku na službu serveru, a spôsobom, akým môže server tieto požiadavky prijať, spracovať a vrátiť klientovi požadované informácie. Interakcia medzi klientom a serverom sa často opisuje pomocou sekvenčných diagramov. Sekvenčné diagramy sú štandardizované v jazyku Unified Modeling Language.

Architektúry klient-server aj P2P sú dnes široko používané.

Základný typ softvérovej architektúry klient-server využíva iba dva typy hostiteľov: klientov a servery. Tento typ architektúry sa niekedy označuje ako dvojúrovňová. Dvojúrovňová architektúra znamená, že klient vystupuje ako jedna úroveň a serverový proces ako druhá úroveň.

Softvérová architektúra klient-server sa stala jedným zo základných modelov sieťových počítačov. Pomocou modelu klient-server bolo napísaných mnoho typov aplikácií. Štandardné sieťové funkcie, ako je výmena e-mailov, prístup na web a prístup do databázy, sú založené na modeli klient-server. Napríklad webový prehliadač je klientský program na počítači používateľa, ktorý môže pristupovať k informáciám na ktoromkoľvek webovom serveri na svete.

Sieť založená na princípe peer-to-peer.Zoom
Sieť založená na princípe peer-to-peer.

Sieť založená na jednom serveri.Zoom
Sieť založená na jednom serveri.

Charakteristika klientov

  • Vždy iniciuje požiadavky na servery.
  • Čaká na odpovede.
  • Prijíma odpovede.
  • Zvyčajne sa pripája k malému počtu serverov naraz.
  • Zvyčajne komunikuje priamo s koncovými používateľmi pomocou akéhokoľvek používateľského rozhrania, napríklad grafického používateľského rozhrania.

Charakteristika servera

  • Vždy počkajte na žiadosť od jedného z klientov.
  • Obsluhuje požiadavky klientov a potom im odpovedá požadovanými údajmi.
  • Server môže komunikovať s inými servermi s cieľom obslúžiť požiadavku klienta.
  • Ak sú na spracovanie požiadavky potrebné ďalšie informácie (alebo je implementované zabezpečenie), server môže pred spracovaním požiadavky požiadať klienta o ďalšie údaje (heslá).
  • Koncoví používatelia zvyčajne nekomunikujú priamo so serverom, ale používajú klienta.

Výhody

  • Vo väčšine prípadov architektúra klient-server umožňuje rozdeliť úlohy a zodpovednosti výpočtového systému medzi niekoľko nezávislých počítačov, ktoré sa navzájom poznajú len prostredníctvom siete, takže jednou z výhod tohto modelu je jednoduchšia údržba. Napríklad je možné vymeniť, opraviť, aktualizovať alebo dokonca premiestniť server, pričom jeho klienti o tom nevedia a zároveň ich táto zmena neovplyvní. Táto nezávislosť od zmien sa označuje aj ako zapuzdrenie.
  • Všetky údaje sú uložené na serveroch, ktoré majú spravidla lepšie bezpečnostné kontroly ako väčšina klientov. Servery môžu lepšie kontrolovať prístup a zdroje, aby sa zaručilo, že k údajom môžu pristupovať a meniť ich len klienti s príslušnými oprávneniami.
  • Keďže ukladanie údajov je centralizované, aktualizácie týchto údajov sú pre správcov oveľa jednoduchšie, ako by to bolo možné v rámci architektúry P2P. V rámci architektúry P2P môže byť potrebné distribuovať aktualizácie údajov a aplikovať ich na každého "rovnocenného partnera" v sieti, čo je časovo náročné a náchylné na chyby, keďže rovnocenných partnerov môžu byť tisíce alebo dokonca milióny.
  • K dispozícii je už mnoho pokročilých technológií klient-server, ktoré boli navrhnuté tak, aby zabezpečili bezpečnosť, používateľsky prívetivé rozhrania a jednoduché používanie.
  • Pracuje s viacerými rôznymi klientmi s rôznymi špecifikáciami.

Nevýhody

  • Blokovanie sieťovej prevádzky je jedným z problémov súvisiacich s modelom klient-server. S rastúcim počtom súčasných požiadaviek klientov na daný server môže dôjsť k jeho preťaženiu. Porovnajte to so sieťou P2P, ktorej šírka pásma sa v skutočnosti zvyšuje s pribúdajúcimi uzlami, pretože celkovú šírku pásma siete P2P možno približne vypočítať ako súčet šírok pásma každého uzla v tejto sieti.
  • Ak porovnáme model klient-server s modelom Peer to Peer, v prípade zlyhania jedného servera nie je možné vybaviť požiadavky klientov, ale v prípade sietí P2P sú servery zvyčajne rozdelené medzi mnoho uzlov. Aj v prípade zlyhania jedného alebo viacerých uzlov, napríklad ak uzol zlyhal pri sťahovaní súboru, ostatné uzly by mali mať stále k dispozícii údaje potrebné na dokončenie sťahovania.

Príklady

Otázky a odpovede

Otázka: Čo je to softvérová architektúra klient-server?


Odpoveď: Softvérová architektúra klient-server je model pozostávajúci z dvoch častí, klientskych systémov a serverových systémov, ktoré komunikujú prostredníctvom počítačovej siete alebo na tom istom počítači.

Otázka: Ako funguje aplikácia klient-server?


Odpoveď: Aplikácia klient-server je distribuovaný systém pozostávajúci zo softvéru klienta a servera. Proces klienta vždy iniciuje spojenie so serverom, zatiaľ čo proces servera vždy čaká na požiadavky od ktoréhokoľvek klienta.

Otázka: Čo sa stane, keď proces klienta aj proces servera bežia na tom istom počítači?


Odpoveď: Keď klientsky proces aj serverový proces bežia na tom istom počítači, nazýva sa to nastavenie na jednom mieste.

Otázka: Aké výhody poskytuje používanie aplikácie klient-server?


Odpoveď: Používanie aplikácie klient-server poskytuje lepší spôsob zdieľania pracovného zaťaženia medzi viacerými počítačmi alebo používateľmi.

Otázka: Kto iniciuje pripojenia v aplikáciách klientského servera?


Odpoveď: Pripojenia v aplikáciách klientského servera vždy iniciuje klientsky proces.


Otázka: Kto čaká na požiadavky v aplikáciách klientského servera?


Odpoveď: Serverový proces vždy čaká na požiadavky v aplikáciách klientského servera.

Otázka: Ako môže viac počítačov alebo používateľov navzájom zdieľať pracovné zaťaženie?


Odpoveď: Viacero počítačov alebo používateľov môže zdieľať pracovné zaťaženie pomocou distribuovaného systému, ako je Client Server Application.

AlegsaOnline.com - 2020 / 2023 - License CC3