Klient-server

V informatice je klient-server model softwarové architektury sestávající ze dvou částí, klientského systému a serverového systému, které spolu komunikují v počítačové síti nebo na stejném počítači. Aplikace klient-server je distribuovaný systém tvořený klientským i serverovým softwarem. Aplikace klient-server poskytují lepší způsob rozdělení pracovní zátěže. klientský proces vždy iniciuje spojení se serverem, zatímco serverový proces vždy čeká na požadavky od některého klienta.

Pokud je klientský proces i proces serveru spuštěn na stejném počítači, jedná se o nastavení s jedním sídlem.

Další typ související softwarové architektury je znám jako peer-to-peer, protože každý hostitel nebo instance aplikace může současně fungovat jako klient i server (na rozdíl od centralizovaných serverů modelu klient-server) a protože každý z nich má rovnocenné povinnosti a postavení. Architektury typu peer-to-peer se často označují zkratkou P2P.

Vztah mezi klientem a serverem popisuje vztah mezi klientem a způsobem, jakým zadává serveru požadavek na službu a jakým může server tyto požadavky přijmout, zpracovat a vrátit klientovi požadované informace. Interakce mezi klientem a serverem se často popisuje pomocí sekvenčních diagramů. Sekvenční diagramy jsou standardizovány v jazyce Unified Modeling Language.

V současnosti se hojně používají architektury klient-server i P2P.

Základní typ softwarové architektury klient-server využívá pouze dva typy hostitelů: klienty a servery. Tento typ architektury se někdy označuje jako dvouúrovňová. Dvouúrovňová architektura znamená, že klient funguje jako jedna úroveň a serverový proces jako druhá úroveň.

Softwarová architektura klient-server se stala jedním ze základních modelů síťových počítačů. Pomocí modelu klient-server bylo napsáno mnoho typů aplikací. Na modelu klient-server jsou založeny standardní síťové funkce, jako je výměna e-mailů, přístup k webu a databázím. Například webový prohlížeč je klientský program na uživatelském počítači, který může přistupovat k informacím na libovolném webovém serveru na světě.

Síť založená na principu peer-to-peer.Zoom
Síť založená na principu peer-to-peer.

Síť založená na jednom serveru.Zoom
Síť založená na jednom serveru.

Charakteristika klientů

  • Vždy iniciuje požadavky na servery.
  • Čeká na odpovědi.
  • Přijímá odpovědi.
  • Obvykle se připojuje k malému počtu serverů najednou.
  • Obvykle komunikuje přímo s koncovými uživateli pomocí libovolného uživatelského rozhraní, například grafického uživatelského rozhraní.

Vlastnosti serveru

  • Vždy počkejte na žádost některého z klientů.
  • Obsluhuje požadavky klientů a poté jim odpovídá požadovanými daty.
  • Server může komunikovat s jinými servery, aby mohl obsloužit požadavek klienta.
  • Pokud jsou ke zpracování požadavku vyžadovány další informace (nebo je implementováno zabezpečení), může si server před zpracováním požadavku vyžádat od klienta další údaje (hesla).
  • Koncoví uživatelé obvykle nekomunikují přímo se serverem, ale používají klienta.

Výhody

  • Architektura klient-server ve většině případů umožňuje rozdělit role a odpovědnosti výpočetního systému mezi několik nezávislých počítačů, které se navzájem znají pouze prostřednictvím sítě, takže jednou z výhod tohoto modelu je snadnější údržba. Například je možné vyměnit, opravit, upgradovat nebo dokonce přemístit server, zatímco jeho klienti o tom nevědí a tato změna se jich nedotkne. Tato nezávislost na změnách se také označuje jako zapouzdření.
  • Všechna data jsou uložena na serverech, které mají obecně lepší zabezpečení než většina klientů. Servery mohou lépe kontrolovat přístup a zdroje, aby bylo zaručeno, že k datům mohou přistupovat a měnit je pouze klienti s příslušnými oprávněními.
  • Vzhledem k tomu, že ukládání dat je centralizované, jsou aktualizace těchto dat pro správce mnohem jednodušší než v případě architektury P2P. V architektuře P2P může být nutné distribuovat aktualizace dat a aplikovat je na každého "peera" v síti, což je časově náročné a náchylné k chybám, protože peerů mohou být tisíce nebo dokonce miliony.
  • K dispozici je již mnoho pokročilých technologií klient-server, které byly navrženy tak, aby zajistily bezpečnost, uživatelsky přívětivá rozhraní a snadné používání.
  • Pracuje s více různými klienty různých specifikací.

Nevýhody

  • Blokování síťového provozu je jedním z problémů souvisejících s modelem klient-server. S rostoucím počtem současných požadavků klientů na daný server může dojít k jeho přetížení. Srovnejte to se sítí P2P, jejíž šířka pásma se s přibývajícími uzly skutečně zvyšuje, protože celkovou šířku pásma sítě P2P lze zhruba vypočítat jako součet šířek pásma každého uzlu v této síti.
  • Při porovnání modelu klient-server s modelem Peer to Peer platí, že pokud selže jeden server, požadavky klientů nemohou být vyřízeny, ale v případě sítí P2P jsou servery obvykle rozděleny mezi mnoho uzlů. I v případě selhání jednoho nebo více uzlů, například pokud se některému uzlu nepodařilo stáhnout soubor, by měly mít zbývající uzly stále k dispozici data potřebná k dokončení stahování.

Příklady

Otázky a odpovědi

Otázka: Co je to softwarová architektura klient-server?


Odpověď: Softwarová architektura klient-server je model sestávající ze dvou částí, klientských systémů a serverových systémů, které spolu komunikují prostřednictvím počítačové sítě nebo na stejném počítači.

Otázka: Jak funguje aplikace klient-server?


Odpověď: Aplikace klient-server je distribuovaný systém tvořený klientským i serverovým softwarem. Klientský proces vždy iniciuje spojení se serverem, zatímco serverový proces vždy čeká na požadavky od kteréhokoli klienta.

Otázka: Co se stane, když klientský i serverový proces běží na stejném počítači?


Odpověď: Pokud klientský proces i proces serveru běží na stejném počítači, nazývá se to nastavení na jednom místě.

Otázka: Jaké výhody přináší použití aplikace klient-server?


Odpověď: Použití aplikace klientského serveru poskytuje lepší způsob sdílení pracovní zátěže mezi více počítači nebo uživateli.

Otázka: Kdo iniciuje připojení v aplikacích klientského serveru?


Odpověď: Klientský proces vždy iniciuje připojení v aplikacích klientského serveru.


Otázka: Kdo čeká na požadavky v Aplikacích klientského serveru?


Odpověď: Serverový proces vždy čeká na požadavky v Klientských serverových aplikacích.

Otázka: Jak může více počítačů nebo uživatelů vzájemně sdílet pracovní zátěž?


Odpověď: Více počítačů nebo uživatelů může sdílet pracovní zátěž pomocí distribuovaného systému, jako je aplikace Client Server Application.

AlegsaOnline.com - 2020 / 2023 - License CC3