Sunteți pe pagina 1din 3

Client-server

De la Wikipedia, enciclopedia liberă


Sari la navigare Sari la căutare

Modelul client-server este o structură care distribuie sarcini între furnizorii de resurse sau
servicii numite servere și elementele care solicită resurse sau servicii, numite clienți.[1] Adesea,
clienții și serverele se află pe mașini fizice diferite și comunică printr-o rețea, dar atât clientul cât
și serverul pot sta în același sistem sau pot comunica prin alte mijloace (socket Unix, vsock etc.).
Prin extensie, un sistem fizic ce rulează unul sau mai multe programe server, care distribuie
resursele existente clienților, este denumit tot server. Clienții inițiază sesiuni de comunicare cu
serverele, care așteaptă cereri.

Cuprins
 1 Rolul clientului și serverului
 2 Comunicare client și server
 3 Comparație cu arhitectura peer-to-peer
 4 Note

Rolul clientului și serverului


Caracteristica client-server descrie relația programelor care colaborează într-o aplicație.
Componenta server oferă o funcție sau un serviciu unuia sau mai multor clienți, care inițiază
cereri pentru astfel de servicii. Serverele sunt clasificate în funcție de serviciile pe care le oferă.
De exemplu, un server web servește pagini web și un server de fișiere servește fișiere de
calculator. O resursă partajată poate fi oricare dintre componentele software și componente ale
computerului serverului, de la programe și date la procesoare și dispozitive de stocare. Partajarea
resurselor unui server constituie un serviciu.

Dacă un computer este un client, un server sau ambele, este determinat de natura aplicației care
necesită funcțiile de serviciu. De exemplu, un singur computer poate rula un server web și un
software de server de fișiere în același timp, pentru a servi date diferite clienților care fac diferite
tipuri de solicitări. Software-ul client poate comunica și cu software-ul serverului în același
computer. Comunicarea între servere, cum ar fi sincronizarea datelor, este uneori numită
comunicare inter-server sau server-la-server.

Comunicare client și server


În general, un serviciu reprezintă o extragere a resurselor informatice, iar un client nu trebuie să
fie preocupat de performanțele serverului în timp ce îndeplinește solicitarea și furnizează
răspunsul. Clientul trebuie să înțeleagă doar răspunsul bazat pe protocol de nivel aplicație, adică
conținutul și formatarea datelor pentru serviciul solicitat.

Clienții și serverele schimbă mesaje într-un model de mesagerie solicitare-răspuns. Clientul


trimite o solicitare, iar serverul returnează un răspuns. Acest schimb de mesaje este un exemplu
de comunicare între proces. Pentru a comunica, calculatoarele trebuie să aibă un limbaj comun și
trebuie să respecte reguli astfel încât atât clientul cât și serverul să știe la ce să se aștepte. Limba
și regulile de comunicare sunt definite într-un protocol de comunicare. Toate protocoalele client-
server funcționează în stratul de aplicație. Protocolul stratului de aplicație definește tiparele de
bază ale dialogului. Pentru a formaliza schimbul de date și mai mult, serverul poate implementa
o interfață de programare a aplicației (API). [3] API-ul este un nivel de abstractizare pentru
accesarea unui serviciu. Restrângând comunicarea la un anumit format de conținut, facilitează
parsarea. Prin abstractizarea accesului, facilitează schimbul de date între platforme.[2]

Un server poate primi cereri de la mulți clienți distincți într-o perioadă scurtă de timp. Un
computer poate efectua un număr limitat de sarcini în orice moment și se bazează pe un sistem
de planificare pentru a da prioritate cererilor primite de la clienți pentru a le găzdui. Pentru a
preveni abuzul și a maximiza disponibilitatea globală, software-ul serverului poate limita
disponibilitatea pentru clienți. Criptarea trebuie aplicată dacă între client și server sunt
comunicate informații sensibile.

Comparație cu arhitectura peer-to-peer


Pe lângă modelul client-server, aplicațiile de calcul distribuit folosesc adesea arhitectura peer-to-
peer (P2P).

În modelul client-server, serverul este deseori proiectat să funcționeze ca un sistem centralizat


care servește multor clienți. Puterea de calcul, memoria și cerințele de stocare ale unui server
trebuie să fie adaptate corespunzător la volumul de lucru preconizat. Sistemele de echilibrare a
sarcinilor și de basculare sunt deseori folosite pentru a scala serverul dincolo de o singură mașină
fizică.[3][4]

Atât client-server, cât și master-slave sunt considerate sub-categorii de sisteme distribuite peer-
to-peer.[5]

Note
1. ^ „Distributed Application Architecture” (PDF). Sun Microsystem. Arhivat din original
(PDF) la 6 aprilie 2011. Accesat în 16 iunie 2009.
2. ^ Dustdar, S.; Schreiner, W. (2005). „A survey on web services composition” (PDF).
International Journal of Web and Grid Services. 1: 1. CiteSeerX 10.1.1.139.4827  .
doi:10.1504/IJWGS.2005.007545.
3. ^ Cardellini, V.; Colajanni, M.; Yu, P.S. (1999). „Dynamic load balancing on Web-
server systems”. IEEE Internet Computing. Institute of Electrical and Electronics
Engineers (IEEE). 3 (3): 28–39. doi:10.1109/4236.769420. ISSN 1089-7801.
4. ^ „What Is Load Balancing? How Load Balancers Work”. NGINX. 1 iunie 2014.
Accesat în 21 ianuarie 2020.
5. ^ Varma, Vasudeva (2009). „1: Software Architecture Primer”. Software Architecture:
A Case Based Approach. Delhi: Pearson Education India. p.  29. ISBN  9788131707494.
Accesat în 4 iulie 2017. Distributed Peer-to-Peer Systems [...] This is a generic style of
which popular styles are the client-server and master-slave styles.

Categorii:

 Produse software
 Servere

S-ar putea să vă placă și