Modelul informatic client-server este de fapt o aplicatie distribuita intre mai multe echipamente, avand scopul de a centraliza informatia intr-un sinrul loc sau de a imparti puterea de calcul intre mai multe echipamente. Un server este un program (nu o masina) care asteapta cereri de comunicatie de la client. Aceste receptioneaza cererile, realizeaza procesul cerut si returneaza rezultatul catre client. O aplicatie de tip server trebuie sa resolve urmatoarele probleme: Autentificarea clientului (verificarea identitatii acestuia); Autorizarea clientului (determina daca un client autentificat are sau nu dreprul de a beneficia de unul sau mai multe servicii ale serverului); Securitatea datelor (garantarea ca datele stocate nu sunt modificate neintentionat); Accesul privat (datele nu pot fi accesate de client neutorizati); Protectia sistemului (garantarea ca aplictia nu abuzeaza de resusrsele sistemului gazda).
Un client este o aplicatie care initiaza o comunicatie de tip peer-to-peer (unu la unu). Majoritatea clientilor sunt programe conventionale care de fiecare data cand ruleaza se conecteaza la un sevrer, trimit o cerere, asteapta un raspuns si afiseaza raspunsul primit. Clasificarea arhitecturilor client-server se face in functie de doi parametrii: Tipul conexiunii: o Arhitecturi orientate pe conexiune o Arhitecturi orientate pe conexiune
Figura 12.3. Athitectura client-server 2-Tier. Datorita simplitatii implementarii este preferata pentru aplicatiile de dimensiuni medii, dar are unele limitari: Performantele scad odata cu cresterea numarului de utilizatori; Serverul este inflexibil deoarece se ocupa atat de stocarea datelor cat si de procesarea acestora