Sunteți pe pagina 1din 9

1.3.

Caracteristici ale arhitecturii client/server


Arhitectura client/server este o arhitectur de reea n care fiecare calculator sau proces din reea este un client sau un server. n mod normal, aceast arhitectur mparte o aplicaie n trei componente de baz: clientul, infrastructura reelei (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 staie de lucru (workstation) pe care utilizatorul ruleaz diverse aplicaii i care cere server-ului efectuarea unor operaii. Server-ele sunt calculatoare puternice sau procese dedicate s administreze: unitile de disc (file server), imprimante (print server), traficul pe reea (network server) etc. Calculatorul client este acela care interacioneaz cu un utilizator i care n majoritatea tipurilor de arhitecturi client/server are dou sarcini: logica prezentrii (interfaa cu utilizatorul) i logica aplicaiei (afacerii). ntr-o aplicaie tradiional client/server, clientul conine partea de prezentare (afiarea folosind o interfa prietenoas), lucrul efectuat de aplicaie (calcule, algoritmi) i manipularea datelor (conectivitatea cu bazele de date). Logica prezentrii se refer la acea parte a programului care asigur coordonarea interaciunii dintre utilizator i aplicaie i include detalii privitoare la afiarea tuturor informaiilor pe ecranul calculatorului. De asemenea, mai include i partea de preluare a datelor de la utilizator. Logica aplicaiei (afacerii) se refer la acea parte a programului care decide ce aciuni trebuie s se execute n diferite situaii i ea implementeaz regulile afacerii. Aceast parte mai este denumit uneori i logica afacerii deoarece ea reprezint acea poriune din program care implementeaz regulile afacerii (business rules). n funcie de tipul arhitecturii client/server logica aplicaiei poate fi plasat n totalitate pe calculatorul server, sau ea poate fi mprit ntre client i server. Calculatorul server poate fi orice calculator de birou puternic, superservere specializate bazate pe microprocesoare Intel, minicalculatoare, calculatoare mainframe sau chiar supercalculatoare i al crui rol ntr-o reea este acela de a furniza servicii i resurse utilizatorilor. Funcia de baz a acestuia este responsabilitatea administrrii accesului la baza de date: sortarea datelor, selectarea acelora de care are nevoie clientul, asigurarea c ali clieni nu ncearc modificarea unor nregistrri pe care ali clieni le vizualizeaz etc. Arhitecturile client/server sunt de mai multe tipuri, dar toate prezint n comun anumite avantaje i dezavantaje ale utilizrii lor. Astfel dintre avantajele utilizrii sistemelor client/server pot fi menionate: 1

au o securitate mai bun; performanele pot fi mbuntite uor, deoarece o mai bun proiectare a server-ului poate duce la o mai bun coordonare a utilizatorilor care doresc servicii n acelai timp i, de aici, performane mai bune;

raportul calitate / pre este mai bun. complexitatea: sistemele client/server nu sunt simplu de configurat i de administrat; necesiti: pentru a putea deservi un numr mare de clieni, server-ul trebuie s fie un calculator foarte performant (deci scump); pre: performanele server-ului scad o dat cu creterea numrului de utilizatori.

Iar dintre dezavantajele sistemelor client/server:

Arhitectura client/server a aprut datorit limitrilor arhitecturii file sharing. Aceast arhitectur nlocuiete server-ul de fiiere cu un server de baze de date. Utiliznd un sistem de gestiune a bazelor de date, cererile utilizatorilor pot fi soluionate direct, reducndu-se totodat traficul pe reea prin furnizarea datelor strict necesare utilizatorului, i nu a ntregului fiier. Ea mbuntete actualizarea multi-user direct prin intermediul unei interfee utilizator grafice (GUI - Graphical User Interface) front-end ctre o baz de date partajat. Arhitectura client/server fiind o arhitectur stratificat, straturile pot fi proiectate independent unul fa de cellalt i realizate de diferii specialiti, dar care trebuie s se asigure c legturile dintre aceste straturi (numite interfee) sunt proiectate corect. Datorit faptului c arhitectura client/server are la baz trei componente (clientul, server-ul i reeaua), modalitatea n care sarcinile sunt distribuite celor doi participani (clientul i server-ul) determin i tipurile de arhitecturi client/server utilizate n proiectarea aplicaiilor. Astfel, putem clasifica arhitecturile client/server n urmtoarele tipuri: arhitectura pe dou niveluri; arhitectura pe trei niveluri; arhitecturi pe mai multe niveluri.

Arhitectura client/server pe dou niveluri Arhitectura client/server pe dou niveluri a fost dezvoltat n anii 1980 avnd drept surs arhitectura file server, i a avut drept scop mbuntirea urmtoarele caracteristici: utilizabilitatea prin 2

intermediul unei interfee prietenoase, bazate pe forme; scalabilitatea prin deservirea pn la 100 de utilizatori (arhitectura file server este potrivit numai pentru un numr mic de utilizatori) i flexibilitatea care permite partajarea datelor, n mod normal n interiorul unui mediu eterogen. Aceast arhitectur este utilizat n mod frecvent n sistemele de prelucrare a informaiilor n care gestiunea i operaiile sistemului nu sunt complexe. Prima generaie a aplicaiilor client/server a fost n general implementat n dou niveluri logice i dou niveluri fizice (hardware). O aplicaia client/server pe dou niveluri este mprit n dou pri distincte unde o poriune ruleaz pe calculatorul client i o poriune separat ruleaz pe calculatorul server. Astfel, aplicaia este mprit ntre client i server.

Modelul client/server pe dou niveluri Aceast arhitectur const din trei componente distribuite pe dou niveluri: clientul (consumatorul de servicii) i server-ul (furnizorul serviciilor). Aceste trei componente sunt: interfaa de sistem cu utilizatorul; logica aplicaiei (administrarea prelucrrii); gestiunea bazei de date.

n cadrul acestei arhitecturi interfaa de sistem cu utilizatorului (logica prezentrii) este plasat n mod exclusiv n mediul de lucru al utilizatorului (clientul) i serviciile de gestiune a bazei de date (logica accesului la baza de date) sunt plasate pe un server care este cel mai puternic calculator care deservete reeaua. Administrarea prelucrrii este mprit ntre client i server, prin crearea celor dou niveluri: un nivel corespunztor aplicaiei (logica afacerii reprezint partea programului care implementeaz condiiile n care se desfoar afacerea) i un nivel corespunztor bazei de date (validarea din partea server-ului). n proiectarea celor mai multe aplicaii care au la baz aceast arhitectur, majoritatea poriunii de prelucrare a aplicaiei este plasat n mediul clientului, iar serverul de gestiune a bazei de date furnizeaz poriunea de prelucrare privind accesul la date. 3

Arhitectura client/server pe trei niveluri Arhitectura pe trei niveluri aprut n anii 1990 ncerc s elimine deficienele arhitecturii client/server pe dou niveluri. n cadrul acestei arhitecturi, este adugat un nivel suplimentar (numit nivel de mijloc, sau server de aplicaii), ntre client (interfaa de sistem cu utilizatorul) i server-ul bazei de date, care are rolul de a prelucra regulile afacerii, deci elibereaz clientul de logica aplicaiei i a tranzaciei. Motivul amplasrii regulilor afacerii pe un nivel separat este dat de frecvena destul de mare a modificrilor la care sunt supuse acestea, iar amplasarea acestora ntr-un nivel separat, permite n acest mod o actualizare a acestora mult mai uoar dect n cazul n care acestea erau incluse n interfaa cu utilizatorul. Arhitectura client/server pe trei niveluri este utilizat atunci cnd noua aplicaie client/server distribuit trebuie s permit (comparativ cu arhitectura pe dou niveluri) performane mai bune, flexibilitate, mentenabilitate (ntreinere), reutilizabilitate, i scalabilitate, n timp ce se ascunde complexitatea prelucrrii distribuite fa de utilizator. Aceste caracteristici fac din arhitectura client/server pe trei niveluri o alegere des ntlnit pentru aplicaiile Internet i pentru sistemele informatice axate pe reea (net-centric information systems). O prim diferen ntre aplicaiile pe dou i pe trei niveluri este dat de prezena unui nivel software suplimentar pe server. Dac aplicaiile client/server pe dou niveluri tind s pun logica afacerii fie pe partea client i trecerea nregistrrilor (datele) n baza de date (model cu client subire), sau trecerea nregistrrilor n baza de date unde proceduri stocate i declanatoare (trigger-e) implementeaz logica aplicaiei (model cu client gras), aplicaiile pe trei niveluri tind s treac mesaje ntre poriunile client i server ai codului aplicaiei. Poriunea de server ndeplinete logica aplicaiei, apoi trimite tranzacii ctre baza de date. n comunitatea client/server logica aplicaiei este numit regulile afacerii (business rules). Beneficiile aduse de arhitectura client/server pe trei niveluri includ: scalabilitate; un trafic de reea n general redus; flexibilitate. 4

Scalabilitatea este mbuntit deoarece codul server-ului i bazele de date sunt separate (ele pot exista iniial pe un singur calculator gazd i mai trziu pot fi separate). Mai multe servere de aplicaii pot comunica cu o baz de date central sau un server de aplicaie poate deservi clienii n timp ce acceseaz mai multe baze de date ca un sistem extins. Flexibilitatea este mbuntit deoarece clientul, server-ul i sistemele de baze de date pot fi fiecare nlocuite fr s afecteze celelalte componente, furniznd interfee care de asemenea nu trebuiesc modificate. Cele mai multe aplicaii comerciale care folosesc baze de date utilizeaz modelul client/server pe trei niveluri cu scopul de a obine scalabilitate i flexibilitate. Aplicaiile intranet bazate pe Web sunt de asemenea n general aplicaii client/server pe trei niveluri.

Modelul client/server pe trei niveluri Primul nivel (clientul) al arhitecturii client/server pe trei niveluri este reprezentat de interfaa sistemului cu utilizatorul (sesiuni de lucru, ferestre de dialog, ferestre pentru introducerea datelor, administrarea afirii etc.), adic logica prezentrii. Al treilea nivel (server-ul de baze de date) furnizeaz funcionalitatea gestiunii bazei de date i este dedicat serviciilor de fiiere i date, respectiv logica accesului la baza de date i validarea din partea server-ului. Componenta de gestiune a datelor garanteaz c datele sunt consistente de-a lungul mediului distribuit prin utilizarea unor caracteristici precum blocarea datelor, consistena i replicarea acestora. Conectivitatea ntre niveluri poate fi modificat n mod dinamic n funcie de cererile utilizatorilor pentru date i servicii. Nivelul de mijloc (server-ul de aplicaii) furnizeaz servicii de administrare a regulilor afacerii i a prelucrrii datelor care sunt partajate de mai multe aplicaii. Acest nivel de mijloc asigur performan, flexibilitate, mentenabilitate, reutilizabilitate i scalabilitate prin centralizarea logic a 5

proceselor. Aceast centralizare face ca administrarea i gestiunea modificrilor s fie mai uoar prin localizarea funcionalitii sistemului astfel nct modificrile sunt executate o singur dat i plasate pe server-ul nivelului de mijloc pentru a fi disponibile de-a lungul ntregului sistem. n plus, acest nivel controleaz tranzaciile i interogrile asincrone pentru a se asigura c acestea sunt efectuate complet.

Arhitectura client/server pe trei niveluri O alt sarcin a nivelului de mijloc este de a gestiona integritatea bazelor de date distribuite prin intermediul unui proces numit actualizarea n dou faze a bazei de date care furnizeaz accesul la resurse bazat pe nume n loc de locaii, mbuntind astfel scalabilitatea i flexibilitatea pe msur ce componentele sistemului sunt adugate sau mutate. Pentru implementarea nivelului de mijloc exist mai multe modaliti, precum: monitorizarea procesrii tranzaciei; server-e de mesaje; server-e de aplicaii.

Nivelul de mijloc permite deservirea unui numr mare de utilizatori (peste 100, comparativ cu arhitectura client/server pe dou niveluri), prin furnizarea unor funcii precum: organizarea prin ateptare, interogri, execuia aplicaiei i coordonarea bazei de date (database staging). De exemplu, dac nivelul de mijloc ndeplinete organizarea prin ateptare, clientul poate preda cererile sale nivelului de mijloc care va accesa datele i va returna rspunsul ctre client. n plus nivelul de mijloc are i rolul de a planifica i a acorda prioriti pentru aplicaiile n execuie.

Arhitectura client/server pe mai multe niveluri n cazul n care nivelul de mijloc este mprit n dou sau mai multe niveluri cu funciuni diferite arhitectura este o arhitectur client/server pe mai multe niveluri. Cele mai cunoscute aplicaii cu o astfel de arhitectur sunt aplicaiile Internet. Aceste aplicaii au caracteristic clieni scrii n HTML i aplicaia server scrise n C++ sau Java, dar golul ntre aceste dou niveluri este prea mare pentru a le putea lega mpreun. n schimb, exist un nivel intermediar (server-ul de Web) implementat ntrun limbaj de scriptare (scripting). Acest nivel primete cererile de la clienii Internet i genereaz pagini html utiliznd serviciile oferite de nivelul afacerilor. Totodat el furnizeaz suplimentar o separare ntre organizarea (amplasarea) aplicaiei i logica aplicaiei. n acest scop, mai recent mainframe-urile au nceput s fie din nou utilizate drept server-e n arhitecturi distribuite pentru a stoca baze de date de dimensiuni mari i pentru a implementa securitatea reelei (arhitectura ntreprinderii colaborative/distribuite).

Arhitectura client/server modern n momentul de fa arhitecturile client/server utilizeaz drept server-e nu numai calculatoare personale puternice ci i mainframe-uri, care permit stocarea unei cantiti mari de date, precum i minicalculatoare, numite acum midrange. S-a observat c exist mai multe tipuri de arhitecturi client/server. Atunci cnd se dorete implementarea unei noi arhitecturi trebuie s se aib n vedere o multitudine de factori care pot duce la succesul acestei implementri, cum ar fi: Maturitatea tehnologiei de implementare. Este de preferat s fie adoptat o tehnologie care este deja recunoscut i implementat n mai multe sisteme, dect una care este nc n stadiul de experiment. De asemenea, trebuie s se aib n vedere tehnologiile care deja au

fost ncorporate ntr-un sistem real, instrumentele care permit implementarea, sau produsele comerciale existente. Costurile i limitrile de implementare. Atunci cnd se decide adoptarea unei anumite tehnologii pentru implementarea unui sistem trebuie s se aib n vedere faptul c nu exist o tehnologie care s poat fi aplicat pentru orice situaie i c fiecare tehnologie are asociate anumite costuri. Dependenele de alte tehnologii. Trebuie avut n vedere identificarea altor tehnologii care pot influena sau sunt influenate de tehnologia adoptat. Alternativele existente. O tehnologie alternativ este acea tehnologie care poate fi utilizat pentru atingerea aceluiai scop; aceast tehnologie este diferit de o tehnologie dependent sau complementar, care trebuie s fie utilizat cu tehnologia care a fost aleas pentru scopul propus. De exemplu, alternativele pentru arhitecturile client/server pot fi arhitecturile mainframe sau file sharing. Tehnologii complementare. O tehnologie complementar este una care n combinaie cu tehnologia utilizat va realiza beneficii sau capaciti care nu pot fi obinute cnd tehnologiile sunt utilizate separat. Tehnologiile complementare pentru arhitecturile client/server sunt instrumentele CASE deoarece ele faciliteaz dezvoltarea arhitectural client/server i sistemele deschise deoarece ele faciliteaz dezvoltarea arhitecturilor care mbuntesc scalabilitatea i flexibilitatea sistemului.

Aplicaii client/server O aplicaie distribuit const dintr-o parte server (back-end), unde sunt executate majoritatea procesrilor i memorate bazele de date, i o parte client (front-end) care furnizeaz o interfa utilizator, prin intermediul creia utilizatorul poate executa cereri ctre server. n modelul client/server, o aplicaie este mprit ntr-o component client i o component server. Partea client a aplicaiei ruleaz pe o staie de lucru i primete date care sunt introduse de utilizator. Componenta client pregtete datele pentru server, i apoi trimite informaiile procesate server-ului. Componenta server primete cererea clientului, o proceseaz i returneaz informaia clientului. Clientul primete informaia returnat de server i o prezint utilizatorului prin intermediul interfeei utilizator. 8

O aplicaie client/server este o aplicaie distribuit alctuit dintr-o parte server (back-end) i o parte client (front-end). Prin aplicaie distribuit se nelege o aplicaie care const din dou sau mai multe pri care ruleaz pe calculatoare diferite dar care acioneaz mpreun. Exemple de aplicaii client/server: un server de pot (mail), cum ar fi Microsoft Exchange Server (back-end), cu utilizatori care utilizeaz pe calculatoarele client Microsoft Outlook (front-end); un server de baze de date, Microsoft SQL Server (back-end), iar utilizatorii ruleaz pe calculatoarele client Microsoft Access (front-end); aplicaie Web care este scris utiliznd ASP (Active Server Page) pentru IIS (Internet Information Services), care reprezint partea back-end (server-ul), i care este accesat de la un calculator client (partea front-end) ce utilizeaz un browser Web precum Microsoft Internet Explorer. Aplicaiile client/server cele mai uzuale sunt: Aplicaii de baze de date ntr-o astfel de aplicaie software-ul bazei de date se execut pe calculatorul server, iar programul care acceseaz baza de date se execut pe calculatorul client. Programul client permite utilizatorilor s acceseze informaiile stocate n baza de date folosind de exemplu o interfa Windows. Programul care ruleaz pe partea server corespunde prii care realizeaz controlul bazei de dare n aplicaia respectiv. n acest tip de aplicaie client/server clientul solicit servicii de interogare a bazei de date server-ului. Aceste interogri se fac de obicei prin intermediul comenzilor limbajului de interogare structurat (SQL). Este o aplicaie tipic arhitecturii client/server pe dou niveluri. Pota electronic este una din aplicaiile client/server cele mai obinuite, care are rolul de a stoca i de a transmite mesaje. Groupware este o aplicaie client/server care permite lucrul eficient n comun n cadrul unor proiecte colaborative etc.

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