Model klient-server rozlišuje systémy klienta od systémov servera, ktoré komunikujú cez počítačovú sieť. Pri klient-server architektúre je používaný systém, ktorý sa skladá zo softvéru klienta a zo softvéru servera. Softvér alebo proces klienta môže iniciovať komunikačné spojenie, zatiaľ čo server čaká na požiadavku od klienta.

Klient/server opisuje vzťah medzi dvoma počítačovými programami, z ktorých jeden, klient, odošle požiadavku na službu z druhého programu, servera, ktorá požiadavku splní. Aj keď tento model môže byť použitý programami na jednom PC, väčšie uplatnenie nachádza v sieti. V sieti je tento model vyhovujúcim spôsobom na efektívne prepojenie programov, ktoré sú distribuované po rôznych miestach v sieti/PC. Väčšina internetových aplikácií, ako email, prístup na web a k databázam, sú založené na tomto modeli. Napríklad, webový prehliadač je klientský program na užívateľovom počítači, ktorý môže pristupovať ku informáciám na akomkoľvek webovom serveri vo svete.

Príkladom môže byť prezeranie bankového účtu z vášho počítača: klientský webový prehliadač vo vašom počítači posúva vašu požiadavku na webový serverový program v banke. Tento program môže potom posunúť požiadavku do svojho vlastného databázového klientského programu, ktorý zašle požiadavku ďalej do databázového servera v inom bankovom počítači, kde zistí informácie o vašom účte. Tieto informácie sú vrátené spať do databázy bankového klienta, a odtiaľ už putujú späť do klientského webového prehliadača vo vašom PC, ktoré vám zobrazí informáciu.

Tento model sa stal centrálnou ideou sieťovania. Väčšina biznis aplikácií dnes používa tento model. Takisto ho používajú hlavné internetové protokoly, ako HTTP, SMTP, Telnet, DNS, atď. Dnes sú klientmi najmä webové prehliadače, aj keď nie vždy je tomu tak. Pod servermi zvyčajne rozumieme webové servery, databázové servery a mailové servery. Online hranie je zvyčajne tiež postavené na klient-server modeli. Pri MMORPG zabezpečuje server spoločnosť vyrábajúca hru, inak robí server jeden z hráčov (hostuje hru ďalším hráčom).

Charakteristika

upraviť

Charakteristika Klienta

upraviť
  • odosielateľ požiadaviek je považovaný za klienta
  • iniciuje požiadavky
  • čaká a prijíma odpovede
  • zvyčajne sa pripája na malé množstvo serverov v jeden čas
  • typicky sa ovplyvňuje s koncovými užívateľmi, ktorí používajú grafické užívateľské rozhranie

Charakteristika Servera

upraviť
  • prijímateľ požiadavky, ktorá je zaslaná klientom, je považovaný za server
  • pasívny (slave)
  • čaká na požiadavky od klienta
  • prijíma požiadavky, spracúva ich a následne odpovedá
  • zvyčajne akceptuje pripojenia od väčšieho množstva klientov
  • typicky sa priamo neovplyvňuje s koncovými užívateľmi

Architektúra klient-server v databázových technológiách

upraviť

V základnom modeli klient-server systém riadenia bázy dát (ďalej len SRBD) beží na serveri a čaká na požiadavky prichádzajúce od jednotlivých klientov. V prípade príchodu nejakej požiadavky od klienta sa požiadavka začne spracovávať v SRBD a výsledok spracovania je odoslaný klientu. Každá požiadavka od klienta vytvorí nový proces servera, ktorý s ostatnými procesmi zdieľajú procesor počítača a jeho disky. V niektorých prípadoch sa stretávame s variantom, keď klientská aj serverová aplikácia bežia na tom istom počítači. V súčasných databázových systémoch sa komunikácia medzi klientom a serverom uskutočňuje pomocou jazyka SQL, keď požiadavka v aplikácii je formulovaná v jazyku SQL alebo transformovaná do jazyka SQL a následne vyslaná na server. Server kontroluje syntaktickú správnosť požiadavky, prístupové práva, použité typy dát, integritné obmedzenia, optimalizuje vyhodnotenie požiadavky a pod. Výsledok spracovania je odoslaný do klientskej aplikácii, ktorý ho môže spracovať prezentačným spôsobom.