Klient-server

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 21. října 2017; kontroly vyžadují 30 úprav .

"Klient - server" ( angl.  client-server ) - výpočetní nebo síťová architektura, ve které jsou úkoly nebo zatížení sítě distribuovány mezi poskytovatele služeb, nazývané servery, a zákazníky služeb, nazývané klienti. Klient a server  jsou ve skutečnosti software . Tyto programy jsou obvykle umístěny na různých počítačích a vzájemně komunikují prostřednictvím počítačové sítě pomocí síťových protokolů , ale mohou být také umístěny na stejném počítači. Serverové programy čekají na požadavky klientských programů a poskytují jim své zdroje ve formě dat (například přenos souborů přes HTTP , FTP , BitTorrent , streamování médií nebo práce s databázemi ) nebo ve formě servisních funkcí (např. práce s e-mailem , komunikace prostřednictvím systémů rychlého zasílání zpráv nebo procházení webu na World Wide Web ). Vzhledem k tomu, že jeden serverový program může provádět požadavky z mnoha klientských programů, je zpravidla umístěn na speciálně vyhrazeném počítači konfigurovaném zvláštním způsobem společně s dalšími serverovými programy, takže výkon tohoto stroje musí být vysoký. Kvůli zvláštní roli takového stroje v síti, specifikům jeho hardwaru a softwaru se také nazývá server a stroje, které spouštějí klientské programy, jsou klienty.

Role klienta a serveru

Charakteristika klient-server popisuje vztah interagujících programů v aplikaci. Serverová komponenta poskytuje funkci nebo službu jednomu nebo více klientům, kteří iniciují požadavky na takové služby. Servery jsou klasifikovány podle služeb, které poskytují. Například webový server obsluhuje webové stránky, zatímco souborový server obsluhuje počítačové soubory. Sdíleným zdrojem může být jakýkoli software a elektronické součásti serverového počítače, od programů a dat po procesory a paměťová zařízení. Sdílení prostředků serveru je služba .

Zda je počítač klientem, serverem nebo obojím, závisí na povaze aplikace, která služby vyžaduje. Například webové servery a software souborového serveru mohou běžet současně na stejném počítači a poskytovat různá data klientům, kteří zadávají různé typy požadavků. Klientský software může také spolupracovat se serverovým softwarem na stejném počítači. Komunikace mezi servery, například pro synchronizaci dat, se někdy nazývá inter- server .

Interakce mezi klientem a serverem

Obecně řečeno, služba je abstrakce počítačových zdrojů a klient se nemusí starat o to, jak server funguje, když vytváří požadavek a doručuje odpověď. Klient potřebuje pouze porozumět odpovědi na základě známého aplikačního protokolu, tedy obsahu a formátování dat pro požadovanou službu.

Klienti a servery si vyměňují zprávy ve vzoru požadavek-odpověď. Klient odešle požadavek a server vrátí odpověď. Toto zasílání zpráv je příkladem meziprocesové komunikace. Aby mohly počítače komunikovat, musí mít společný jazyk a musí dodržovat pravidla, aby klient i server věděli, co mohou očekávat. Jazyk a pravidla komunikace jsou definovány v komunikačním protokolu. Všechny protokoly modelu klient-server fungují na aplikační vrstvě. Protokol aplikační vrstvy definuje základní vzory konverzace. Pro další formalizaci výměny dat může server implementovat aplikační programovací rozhraní ( API ). API je abstraktní vrstva pro přístup ke službě. Omezením odkazu na konkrétní formát obsahu usnadňuje analýzu. Abstrahováním přístupu usnadňuje výměnu dat napříč platformami.

Server může přijímat požadavky od mnoha různých klientů v krátkém časovém období. Počítač může provádět pouze omezený počet úkolů v jednom okamžiku a spoléhá na plánovací systém, který upřednostňuje příchozí požadavky od klientů, aby je uspokojil. Aby se zabránilo zneužití a maximalizovala dostupnost, může serverový software omezit dostupnost pro klienty. Útoky typu Denial-of-service využívají odpovědnost serveru za zpracování požadavků, takové útoky fungují tak, že server přetěžují nadměrnou frekvencí požadavků. Pokud mají být mezi klientem a serverem přenášeny důvěrné informace, mělo by se použít šifrování.

Srovnání s architekturou peer-to-peer

Kromě modelu klient-server používají distribuované výpočetní aplikace často architekturu peer-to-peer .

Klient-server je často navržen jako centralizovaný systém, který slouží mnoha klientům. Požadavky na výkon, paměť a úložiště se tedy musí škálovat s očekávaným zatížením. Systémy pro vyrovnávání zátěže a převzetí služeb při selhání se často používají ke škálování serveru za hranice jednoho fyzického počítače. V síti peer-to-peer sdružují dva nebo více počítačů své zdroje a spolupracují v decentralizovaném systému. Peer uzly jsou rovnocenné nebo ekvipotenciální uzly v nehierarchické síti. Na rozdíl od klientů v architektuře klient-server nebo klient-fronta-klient spolu partneři komunikují přímo. V síti peer-to-peer vyrovnává zátěž algoritmus v komunikačním protokolu peer-to-peer a dokonce i peer s malým počtem zdrojů mohou pomoci sdílet zátěž. Pokud se uzel stane nedostupným, jeho akcie zůstanou k dispozici, dokud je ostatní kolegové nabídnou. V ideálním případě uzel nemusí dosahovat vysoké dostupnosti, protože jiné uzly budou kompenzovat případné výpadky zdrojů. Jak se mění dostupnost a propustnost peerů, protokol přesměrovává požadavky. Jak klient-server, tak master-slave jsou považovány za podkategorie distribuovaných peer-to-peer systémů.

Výhody

Nevýhody

Vrstvená architektura klient-server

Víceúrovňová architektura klient-server  je typ architektury klient-server, ve kterém je funkce zpracování dat umístěna na několika samostatných serverech. To vám umožní oddělit funkce ukládání, zpracování a prezentace dat pro efektivnější využití schopností serverů a klientů.

Speciální případy víceúrovňové architektury:

Dedikovaná serverová síť

Síť s vyhrazeným serverem ( anglicky  client / server network ) je lokální síť (LAN) , ve které jsou síťová zařízení centralizována a řízena jedním nebo více servery. Jednotlivé pracovní stanice nebo klienti (jako je osobní počítač) musí přistupovat k síťovým zdrojům prostřednictvím serveru (serverů).

Literatura