Академический Документы
Профессиональный Документы
Культура Документы
Server
Client
Figura 1.2.1-1 Arhitectura cu doua niveluri (Two Tier)
Arhitectura sistemului depinde de aplicatia dezvoltata insa prezinta doua mari
limitari generale care pot fi intalnite.
Aceste limitari intervin in situatia in care avem de-a face cu clienti cu o
complexitate ridicata si in situatia in care apre necesitatea de reutilizare a obiectelor.
In mod ideal arhitectura de tip client-server trebuie sa lase fiecare masina sa
realizeze numai procesarea relevanta specializarii acelei masini. Statiile de lucru sunt
concepute astfel incat sa ofere utilizatorilor o interfata, in timp ce serverele sunt
concepute sa manipuleze date si algoritmi complexi precum si adiminstrarea proceselor
de retea pentru a servi imediat ce datele sunt stocate. Pe masura ce sistemul devine mai
complex prin intermediul clientilor apar mai multe necesitati care nu pot fi plasate in mod
clar de o parte sau de alta a modelului two-tier.[15]
Cresterea in complexitate a fost combatuta, in paralel, prin cresterea complexitatii
la nivel hardware. Astfel masinile client au devenit mai puternice din punct de vedere
computational in timp ce masinile server au devenit mai ieftine. Pe masura ce masinile
client au devenit mai puternice si au fost in stare sa tina pasul cu necesitatile din ce in ce
mai complexe ale interfetei cu utilizatorul masinile server au suferit o reducere a
capacitatii de a face fata stocarii datelor complexe.
Serverul Aplicatiei
(Server middle-tier,
e.g Java Application
Server)
sau obiecte de lucru. La nivelul procesarii acestor obiecte intervin anumite reguli centrale
denumite reguli de preocupare sau de lucru astfel ca indiferent de domeniul problemei
regulile in care datele sunt procesate se schimba rareori iar, in mod ideal, de loc.
Cu toate ca aduce importante avantaje dezvoltarii de aplicatii distribuite
arhitectura three-tier prezinta limitarile sale si acestea sunt legate de gradul de
complexitate pe care il aduce sistemului.
.1.3 Evolutia paradigmelor utilizate in dezvoltarea aplicatiilor distribuite
Odata cu evolutia spectatculoasa a calcului distribuit s-au dezvoltat de-a lungul
timpului si o serie de paradigme si tehnologii urmarind prelevarea statiior de lucru
individuale, a calculatoarelor personale si a ubicuitativului sistem Internet.
Cresterea cererii de aplicatii care sa utilizeze facilitatile de mai sus a dus astfel la
necesitatea dezvoltarii de instrumente software de dezvoltare orientate catre obtinerea
unui nivel de abstractizare suficient de inalt pentru a acoperi vastitatea domeniului de
aplicatii ditribuite.
O aplicatie distribuita reprezinta o aplicatie dezvoltata si implementata astfel incat
sa utilizeze capacitatile puse la dispozitie prin intermediul unui sistem distribuit. Un
sistem distribuit, conform definitiei atribuite de IEEE, reprezinta un sistem de calcul in
care mai multe entitati de calcul interconectate partajeaza sarcina de calcul totala atribuita
sistemului.
La nivelul cel mai de jos de abstractizare intalnim modelul bazat pe transmitere
de mesaje care incapsuleaza cea mai mica cantitate de datlii in timp ce la cealalta extrema
intalnim spatiul obiectelor fiind cea mai abstracta paradigma.
nivel de abstractizare
ridicat
scazut
Procesul B
mesaj
mesaj
mesaj
Transmitere de Mesaje
Figura 1.3-2 Paradigma Transmiterii de Mesaje [14]
.1.3.2 Paradigma client-server
Modelul client-server urmareste asignarea in mod asimetric a rolurilor
corepsunzatoare proceselor colaborante. Astfel un proces reprezentand server-ul are
asignat rolul de furnizor de servicii care asteapta pasiv sosirea cererilor, in timp ce al
doilea proces reprezentand clientul emite cereri specifice catre server si asteapta
raspunsul.[14]
Simpla paradigma client-server aduce un nivel de abstractizare suficient de bun
pentru a distribui servicii precum si pentru a permite o simplificare sincronizarii intre
evenimente.
Sistem gazda pentru
procese server
Sistem gazda
pentru procese
client
cerere de servicii
process client
process server
serviciu
Procesul 1
cerere
cerere
raspuns
raspuns
Procesul 2
procedura1(arg1, arg2)
apel de procedura
procedura2(arg1)
procedura3(arg1, arg2,arg3)
Invocare de metode la
distanta
o
o
metoda 1
metoda 2
obiect la distanta
Figura 1.3-7 Invocarea de metode la distanta
.1.3.6.2 Paradigma serviciilor de retea
Modelul serviciior de retea urmareste o abordare inovativa prin inregistrarea
furnizorilor de servicii in cadrul diverselor servere existente in retea.
Un proces care doreste un anumit serviciu contatcteaza serverul in momentul
exectutiei si in cazul in care serviciul este disponibil atunci va fi furnizata o referinta la
acesta prin utilizarea careia procesul intercationeza cu serviciul.[14]
Director de
servicii
Solicitant de
servicii
serviciu
obiect
Obiect
solicitant
citire
scriere
solicitant
citire
Spatiu de obiecte
10
Sistem 1
Sistem 3
agent
Sistem 4
11
Proces
Client
Client
Obiect
intra-proces
(in-process)
Server intra-porces
(in-process)
Proces
Server
local
Server local
Stub
LPC
Obiect Proxy
Local
COM
COM
Obiect Proxy
la distanta
Obiect
local
RPC
Proces
Server
la distanta
Obiect
local
Server local
Stub
COM
12
Client
COM
run-time
Furnizor
RPC
Securitate
Stiva de Protocol
(Protocol Stack)
COM
run-time
Furnizor
RPC
Securitate
Stiva de Protocol
(Protocol Stack)
Componenta
Protocol de
retea DCOM
13
Proxy
Obiect
Server
Element de
formare
Element de
formare
Canal de
transport
Tehnologia
CORBA
(Common
Object
Request
Broker
14
Proces Client
Proces Client
Client
CORBA
Interfata de
invocare
dinamica
Stub
IDL
Obiect
CORBA
Interfata
ORB
Interfata
ORB
Skeleton
IDL static
Skeleton
Dinamic
Obiect
Adaptor
Depozit de
Interfeta
Nucleul ORB
Depozit de
Implementare
15
Serviciu Jini
Serviciu Jini
JINI
Descoperire
Vizitare
(Lookup)
Uniune
JAVA
Dispozitiv
Aplicatia
software
Client
Serviciu
Proxy
Serviciu Serviciu
Proxy
Jini
Sistem de
calcul
Sistem de
stocare date
Canal de
comunicare
Echipament
HW
Alt
utilizator
16
Nivelul
intermediar
(middle-tier)
Client
(browser Web)
Aplicatia
clientului
Servicii
JNDI
Container Web
Servlet
JSP
Container EJB
EJB
Nivelul
de date
Baza de date
EJB
JAAS
JDBC
17
Cerere HTTP
Raspuns HTTP
Container
pentru
Servlet-i
Componenta
Servlet
Continut
Static
18
19