Protocolul sau mediul client-server desemnează un mod de tranzacție (adesea printr-o rețea ) între mai multe programe sau procese : unul, cunoscut sub numele de client , trimite cereri; cealaltă, numită server , așteaptă și răspunde la solicitările clienților. Serverul de aici oferă un serviciu clientului. Prin extensie, clientul se referă adesea la computerul pe care este executat software-ul clientului și la server, computerul pe care este executat software-ul serverului. Mașinile server au de obicei mai multă capacitate decât computerele personale în puterea de calcul , intrare-ieșire și conexiuni de rețea , astfel încât să poată răspunde eficient la un număr mare de clienți. Clienții sunt adesea computere personale sau terminale individuale (telefon, tabletă), dar nu întotdeauna. Un server poate răspunde solicitărilor de la mai mulți clienți. Uneori, clientul și serverul pot fi pe aceeași mașină.
Există o mare varietate de servere și clienți în funcție de nevoile sau serviciile care trebuie furnizate: un server web publică pagini web solicitate de browserele web ; un server de e-mail transmite e-mailuri către clienții de e-mail ; un server de fișiere face posibilă partajarea fișierelor într-o rețea cu mașinile care o solicită; un server de baze de date permite clienților să recupereze datele stocate într-o bază de date etc.
Clientul și serverul trebuie, desigur, să utilizeze același protocol de comunicare la nivelul de transport al modelului OSI. Vorbim adesea despre un serviciu de desemnare a funcționalității oferite de un proces server. Atenție, deși deseori confuză, conceptele de program sau proces client și proces program sau server sunt totuși diferite de cele ale mașinii. Într-adevăr, un singur computer poate executa atât un program server, cât și un program client. Această configurație este utilizată mai mult în scopuri de testare sau destul de obișnuită în lumea Linux .
Caracteristicile unui program de server :
Caracteristicile unui program client :
Caracteristicile protocolului lor de schimb:
Organizarea unui mediu client - server diferă în funcție de tipul de arhitectură de rețea și de tipul de client .
O arhitectură peer-to-peer ( peer-to-peer sau P2P în engleză) este un mediu client - server în care fiecare program conectat joacă, la rândul său, rolul clientului și cel al serverului. Programul este un client când solicită și preia date și devine un server când furnizează date.
Arhitectură pe două niveluriPractic, relația dintre un client și un server este între două procese, două software sau două mașini. Se poate vorbi despre o arhitectură cu două niveluri sau o arhitectură cu două niveluri ( arhitectură cu două niveluri în limba engleză). În acest caz, clientul solicită o resursă de la server care o furnizează direct din propriile resurse, fără a solicita alte mașini.
O arhitectură cu trei niveluri sau o arhitectură cu trei niveluri ( arhitectură cu trei niveluri engleză) adaugă un nivel de specializare a serverelor, care oferă un avantaj de flexibilitate, securitate și performanță:
Trebuie remarcat faptul că serverul de aplicații este aici un client al serverului de date.
Arhitectura de nivel NO arhitectură de nivel N sau un al treilea arhitectural N ( N-tier architecture engleză) se va adăuga la arhitectura cu 3 niveluri, dar a introdus noțiunea de obiect care oferă abilitatea de a distribui servicii pe 3 niveluri în funcție de N straturi, făcând astfel posibilă pentru a specializa mai fin serverele.
Clienții aplicației sunt programe care rulează pe mașinile sau terminalele utilizatorilor. Este posibil să se distingă 3 tipuri majore.
Client ușorUn client subțire este o aplicație în care procesarea cererilor clientului (cel mai adesea un browser web, cu pagini web care utilizează puțin sau deloc JavaScript din partea clientului, terminalele Terminal Services , Secure Shell , Apple Remote Desktop , Citrix XenApp , TeamViewer etc.) este realizat în întregime de către server, clientul este mulțumit să primească și să formateze pentru a afișa răspunsurile calculate și trimise de servere. Câteva avantaje:
Un client greu este o aplicație (aplicații desktop, aplicații mobile) în care operațiunile de procesare sunt efectuate în principal pe mașina locală cunoscută sub numele de client. Serverul este în principal conținut pentru a răspunde solicitărilor de date ale clienților.
Câteva avantaje:
Un client bogat este o aplicație în care procesarea cererilor clientului (aplicații web care utilizează o mulțime de JavaScript de partea clientului) este realizată în principal de către server, clientul primind răspunsuri „semifinite” și finalizându-le. Este un client subțire mai avansat care permite implementarea funcționalităților comparabile cu cele ale unui client gros. Este un compromis între clienții slabi și grei.
Înainte de apariția mediului client-server, rețelele de calculatoare erau configurate în jurul unui computer central ( mainframe în engleză) la care erau conectate terminale pasive (ecran atașat la o tastatură fără unitate centrală și care nu efectuează nicio procesare.). Toți utilizatorii au fost apoi conectați la aceeași unitate centrală.