Klient–server

Síť klient–server

Klient–server (anglicky client–server, výslovnost [ˌklaiənt ˈsəːvə(r)]) je síťová architektura, která odděluje klienta (často aplikaci s grafickým uživatelským rozhraním) a server, kteří spolu komunikují přes počítačovou síť. Klient–server aplikace obsahují jak klienta, tak i server. Alternativou architektury klient–server je peer-to-peer, kde spolu však komunikují počítače mezi sebou bez serveru.

Klient–server popisuje vztah mezi dvěma počítačovými programy, v nichž první program, klient, žádá o služby jiný program zvaný server. Na tomto modelu je založen například přístup na e-mail, Web, přístup k databázi apod. Příkladem je webový prohlížeč, tj. 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ě. Chcete-li například ze svého počítače zkontrolovat zůstatek na Vašem bankovním účtu, Váš webový prohlížeč předá tento dotaz webovému serveru banky, tento server předá dotaz databázovému programu, který pošle dotaz databázovému serveru. Odtud je zůstatek vrácen zpět do banky databázovému programu, ten ji zase pošle zpět do Vašeho webového prohlížeče a ten výsledný zůstatek zobrazí.

Model klient/server se stal jedním z hlavních myšlenek síťové technologie. Tento model používá například většina obchodních či firemních aplikací, dále ho pak používají například i tyto internetové protokoly HTTP, SMTP, Telnet, DNS, apod.

Každá instance klienta může posílat žádost o data jednomu nebo více připojeným serverům. Na druhé straně, servery mohou akceptovat tyto žádosti, zpracovat je a vrátit klientovi požadovanou informaci. Tento koncept může být použit více různými způsoby, avšak základ zůstává v zásadě stejný.

Klient/server obsahuje pouze dvě části: serverovou a klientskou. Tento typ architektury je někdy označován jako two-tier [ˈtuː ˌtiə(r)] (dvouvrstvá). Umožňuje zařízením sdílet soubory, nebo nějaké jiné zdroje.

Nejčastější klienti jsou dnes webové prohlížeče. Servery jsou většinou webové servery, databázové servery a e-mailové servery, mohou se sem počítat i herní servery. V případě MMORPG provozuje server výrobce hry, u dalších typů her jako server slouží jeden z hráčů, který spustí hru v serverovém módu (tzv. Host)

Interakce mezi klientem a serverem je často popisována pomocí sekvence schémat. Sekvenční diagramy jsou standardizovány v Unified Modeling Language.

Charakteristika

Charakteristika klienta

  • Aktivní
  • Posílá žádosti serveru
  • Čeká a dostává odpovědi
  • Obvykle je připojen k malému počtu serverů najednou
  • Obvykle komunikuje přímo s koncovými uživateli, pomocí grafického uživatelského rozhraní

Charakteristika serveru

  • Pasivní
  • Naslouchá na síti a reaguje na žádosti připojených, autorizovaných klientů
  • Při přijetí požadavku jej obslouží
  • Může vzdáleně instalovat/odinstalovat aplikace a přenášet data ke klientům

Srovnání s Peer-to-peer architekturou

Další typ síťové architektury se nazývá Peer-to-peer, nebo taky zkráceně P2P. U této architektury může každý hostitel nebo instance programu fungovat zároveň jako klient i jako server (mají rovnocenné postavení i zodpovědnost).

Srovnání s Client–queue–client architekturou

Architektura klient–fronta–klient je zjednodušením jak klient–server přístupu, tak P2P přístupu. Funkce serveru jsou omezeny na pasivní předávání zpráv a dat a klienti neplní roli serveru, ale implementují snadnější komunikační protokol. Architektura sestává ze dvou či více klientů, kteří si vyměňují data a zprávy přes nezávislý třetí uzel, tzv. pasivní frontu.

Například dva internetoví roboti mohou ověřit znalost určitého zpracovávaného URL prostřednictvím centrální databáze, aniž by došlo k přímé komunikaci mezi nimi (což by odpovídalo modelu P2P) nebo by byli touto databází řízeni (což by odpovídalo modelu klient–server).

Výhody

  • Ve většině případů architektura klient–server rozdělí jednotlivé úkoly a zodpovědnosti počítačového systému mezi několik počítačů které spolu komunikují pouze prostřednictvím sítě. Tím vzniká další výhoda této sítě, a to snadnější údržba. Například je možné nahradit, opravit, modernizovat, přemístit server, aniž by to klienti poznali, nebo tím byli nějak ovlivněni. Tato nezávislost na klientech se nazývá zapouzdření.
  • Všechny údaje jsou uloženy na serverech, které jsou mnohem bezpečnější než většina klientů. Servery mohou lépe kontrolovat přístup a zdroje, to zaručuje, že přistupovat a měnit data mohou pouze oprávnění klienti.
  • Vzhledem k tomu, že se data ukládají centralizovaně, aktualizování údajů je mnohem jednodušší než u P2P sítí. V P2P sítích je potřeba updatovat data na každé stanici zvlášť, což je pomalé a způsobuje množství chyb, protože mohou mít tisíce nebo miliony klientů.
  • Mnoho klient–server aplikací, které jsou dnes k dispozici, jsou navrženy s ohledem na vyšší bezpečnost, uživatelskou přívětivost a snadné používání.

Nevýhody

  • Velkým problémem je přetěžování sítě. Vzhledem k tomu, že počet souběžných požadavků klientů na daný server se zvyšují, server se může snadno přetížit. Naproti tomu u P2P sítí se šířka pásma zvětšuje s množstvím klientů, protože každý klient tvoří uzel sítě.
  • Architektura klient–server není tak robustní jako sítě P2P. Pokud dojde k výpadku serveru, žádosti klientů nemohou být splněny. V P2P sítích jsou zdroje obvykle distribuovány mezi více uzlů. Dokonce i když více uzlů přeruší sdílení dat, mělo by být možné stáhnou data od zbývajících uzlů.

Mezi zvláštní druhy serverů patří webové servery, FTP servery, aplikační servery, databázové servery, poštovní servery, souborové servery, tiskové servery a terminálové servery. Většina webových služeb jsou rovněž typy serverů.

Odkazy

Reference

V tomto článku byl použit překlad textu z článku Client-server na anglické Wikipedii.

Související články

Externí odkazy

Média použitá na této stránce

Server-based-network.svg
Autor: User:Mauro Bieg, Licence: LGPL
This is a diagram of a server-based computer network, which I created