1. Arhitectura 'client server':

Arhitectura client/server este o arhitectură de rețea în care fiecare calculator sau proces din rețea este un client sau un server. În mod normal, aceasta arhitectură împarte o aplicție în trei componente de bază: clientul, infrastructura rețelei (marcată prin caracterul slash '/') și server-ul, fiind o arhitectură stratificată. Din punct de vedere al arhitecturii client/server, un client este un calculator personal (PC) sau o stație de lucru (workstation) pe care utilizatorul rulează diverse aplicații și care cere server-ului efectuarea unor operații. Server-ele sunt calculatoare puternice sau procese dedicate să administreze: unitățile de disc (file server), imprimante (print server), traficul pe rețea (network server) etc.

Calculatorul client este acela care interacționează cu un utilizator si care  în majoritatea tipurilor de arhitecturi client/server are doua sarcini: logica prezentarii (interfata cu utilizatorul) si logica aplicatiei (afacerii). Intr-o aplicatie traditionala client/server, clientul contine partea de prezentare (afisarea folosind o interfata prietenoasa), lucrul efectuat de aplicatie (calcule, algoritmi) si manipularea datelor (conectivitatea cu BD).

Logica prezentarii se refera la acea parte a programului care asigura coordonarea interactiunii dintre utilizator si aplicatie si include detalii privitoare la afisarea tuturor informatiilor pe ecranul calculatorului. De asemenea, mai include si partea de prelucreare a datelor de la utilizator.

Logica aplicatiei (afacerii) se refera la acea parte a programului care decide ce actiuni trebuie sa se execute in diferite situatii si sa implementeaza regulile afacerii. Aceasta parte mai este denumita uneori si logica afacerii deoarece ea reprezinta acea portiune din program care implementeaza regulile afacerii (business rules). In functie de tipul arhitecturii client/server logica aplicatiei poate fi plasata in totalitate pe calculatorul server, sau ea poate fi impartita intre client si server.

Calculatorul server poate fi orice calculator de birou puternic, superservere specializate bazate pe microprocesoare intel, minicalculatoare, calculatoare mainframe sau chiar supercalculatoare si al carui rol intr-o retea este acela de a furniza si resurse utilizator. Functia de baza a acestuia este responsabilitatea administrarii accesului la BD: sortarea datelor, selectarea acelora de care are nevoie clientul, asigurarea ca alti clienti nu incearca modificarea unor inregistrari pe care alti clienti le vizualizeaza

Arhitectura client/server este de mai multe tipuri, dar toate prezinta in comun anumite avantaje si dezavantaje ale utilizatorilor lor. Astfel dintre avantajele utilizarii client/server pot fi mentionate:

  • au o securitate mai buna
  • performantele pot fi imbunatatite usor, deoarece o mai buna proiectare a server-ului poate duce la o mai buna coordonare a utilizatorilor care doresc in acelasi timp si, de aici, performante mai bune
  • raportul calitate/pret este mai buna

Iar dintre dezavantajele sistemelor client/server:

  • complexitatea: sistemele client/server nu sunt simplu de configurat si de administrat;
  • necesitati: pentru a putea deservi un numar mare de clienti, server-ul trebuie sa fie un calculator foarte performant (deci si scump)
  • pret: performantele server-ului scad o data cu cresterea numarului de utilizatori

 - Arhitectura client/server a aparut datorita limitarii arhitecturii file sharing. Aceasta arhitectura inlocuieste server-ul de fisiere cu un server de BD. Utilizind un sistem de gestiune a BD, cererile utilizatorilor pot fi solutionate diret, reducindu-se totodata traficul pe retea prin furnizarea datelor strict necesare utilizatorului, si nu a intregului fisier.Ea imbunatatste actualizarea multi-user direct prin intermediul unei interfete utilizator grafice(GUI) fron-end catre o baza de date partajata. Arhitectura client/server fiind o arhitectura stratificata, straturile pot fi proiectate independent unul fata de celalat si realizate de diferiti specialisti, dar care trebuie sa se asigure ca legaturile dintre aceste straturi (numite interfete) sunt proiectate corect.

Datorita faptului ca arhitectura client/server are la baza trei componente (clientul, server-ul si reteaua), modalitatea in care sarcinile sunt distribuite celor doi participanti (clientul si serverul) determina si tipurile de arhitecturi client/server utilizate in proiectia aplicatiilor. Astfel putem clasifica arhitecturile client server in urmatoarele tipuri:

  • arhitectura pe doua niveluri
  • arhitectura pe trei niveluri
  • arhitectura pe mai multe niveluri

2. Arhitectura client / server pe doua niveluri:

Arhitectura pe doua niveluri a fost desvoltata in anii 1980 avind drept sursa arhitectura file server, si a avut drept scop imbunatatire urmatoarelor caracteristici: utilizabilitatea prin intermediul unei interfete prietenoase, bazate pe forme;  scalabilitatea prin deservirea pina la 100 de utilizatori si flexibilitatea care permite partajarea datelor, in mod normal in interiorul unui mediu eterogen.Aceasta arhitectura este utilizata in mod frecvent in sistemele de prelucrare a informatiilor in care gestiunea si operatiile sistemului nu sunt complexe

Prima generatie a aplicatiilor client/server a fost in general implementata in doua niveluri logice si doua niveluri fizice(hardware). O aplicatie client/server pe doua nveluri este impartita in doua parti distincte unde o portiune ruleaza pe calculatorul client si o portiune separata ruleaza pe calculatorul server. Astfel, aplicatia este impartita intre client si server.

Aceasta arhitectura consta din trei componente distribuite pe doua niveluri: clientul(consumatorul de servicii) si server-ul (furnizorul de servicii). Aceste trei componente sunt:

  • interfata de sistem cu utilizatorul
  • logica aplicatiei (administrarea prelucrarii)
  • gestiunea bazei de date

In cadrul acestei arhitecturi interfata de sistem cu utiliatorul (logica prezentarii) este plasata in mod exclusiv in mediul de lucru al utilizatorului(clientului) si serviciile de gestiune a BD (logica accesului la BD) sunt plasate pe un server care este cel mai putermic calculator care deserveste reteaua. Administrarea prelucrarii este impratita intre client si server, pentru crearea celor doua niveluri: un nivel corespunzator aplicatiei (logica afacerii - reprezinta partea programului care implementeaza conditiile in care se desfasoara afacerea) si un nivel corespunzator bazei de date (validarea din partea serverului)

In proiectarea celor mai multe aplicatii care au la baza aceasta arhitectura, majoritatea portiunii de prelucrare a aplicatiei este plasata in mediul clientului, iar serverul de gestiune a BD furnizeaza portiunea de prelucrare privind accesul la date.


3. Arhitectura client / server pe trei niveluri: