Sunteți pe pagina 1din 6

Arhitectura aplicatiilor web

Aplicatii web=sisteme software complexe, in evolitie permanenta.


Deciziile arhitecturale au o importanta majora n dezvoltarea aplicatiilor web deoarece
calitatea acestora este influentata de arhitectura pe care o detin.Lipsa aspectelor arhitecturale
influenteaza n mod negativ cerintele privind calitatea aplicatiilor web, performanta scazuta si
slaba disponibilitate a unei aplicatii sunt deseori cauzate de o arhitectura neadecvata.
Cnd dezvoltam aplicatii web trebuie sa luam n considerare un numar mare de
cerinte si constrngeri, ncepnd cu cerinte functionale (comenzile de produse online) si cerinte
de calitate (performanta si disponibilitatea) ,pna la integrarea sistemelor software existente (asa
numitele sisteme de mostenire sau depozitele de date existente pe care aplicatiile web ar trebui sa
le citeasca). Pe lnga constrngerile pur tehnice, trebuie sa se ia n considerare si cadrul de lucru
organizational n care aplicatiile sunt incluse.
Arhitectura sistemelor software consta n structura acestora, descompunerea n
componente, interfata si relatiile dintre ele. Arhitectura face sistemul mai inteligibil,ea descrie
att aspectele statice ct si cele dinamice ale sistemului , face tranzitia de la analiza la
implementare.Cand creem arhitectura aplicatiei ncercam sa descompunem cerintele functionale
si cele de calitate n componente software, relatii si interfete ntr-un mod iterativ, acest lucru ne
permite un management mai bun al complexitatii sistemelor software, astfel sistemul devenind
mai usor de inteles.
Arhitectura poate fi abordata din mai multe puncte de vedere, n functie de care se
pot specifica aspecte arhitecturale distincte,precum:
1. Abordarea conceptuala - identifica identitatile domeniului aplicatiei si relatiile dintre acestea
2. Abordarea n functie de momentul rularii - descrie componentele n momentul rularii
sistemului (de exemplu servere sau cai de comunicatie)
3. Abordarea pe procese - mapeaza procesele n momentul rularii sistemului, avndu-se n vedere
aspecte precum sincronizarea si concurenta
4. Abordarea n functie de implementare - descrie artefactele software-ului si include subsisteme,
componente sau cod sursa.

Cerintele software-ului si arhitectura acestuia sunt ntr-o continua schimbare.


Constrngerile tehnice si de organizare se modifica pe parcursul si dupa dezvoltarea unei
aplicatii. Aceasta se poate datora unor cerinte neclare de la nceputul procesului de dezvoltare
sau unei schimbari a cerintelor dupa finalizarea sistemului. Din acest motiv sistemele software
sunt deseori numite "tinte n miscare".
Arhitectura unei aplicatii este influentata n principal de cerintele functionale
(serviciile oferite de un sistem) si consideratiile privind calitatea . Dincolo de aceste cerinte,
arhitecturile sunt influentate de constrngeri tehnice cum ar fi sistemul software utilizat,
middleware, sistemele de mostenire care vor fi integrate, standardele utilizate, regulile de
dezvoltare sau aspectele de distribuire .Deoarece sistemele software sunt n permanenta
schimbare ,arhitecturile sunt de obicei dezvoltate ntr-o maniera iterativa, ceea ce nu garanteaza o
arhitectura solida.
Au fost dezvoltate o serie de arhitecturi pentru rezolvarea cerintelor specifice
din diverse domenii de aplicatii, iar pentru mediul aplicatiilor web arhitecturile sunt descrise n
functie de aspectul stratificat sau de aspectul datelor :
a). Aspectul stratificat: se refera la faptul ca sistemele software sunt structurate pe cteva
nivele.
b). Aspectul datelor: datele pot fi structurate sau nestructurate. Datele structurate urmeaza o
schema predefinita asemanator tabelelor din bazele de date relationale sau structurilor XML
dintr-un document. Datele nestructurate sunt elemente multimedia (imagini, audio, video) care
nu respecta o schema explicita, ceea ce face dificila procesarea lor automata.
Arhitectura aplicatiilor web este alcatuita din mai multe componente,comunicarea
dintre aceste componente se bazeaza n general pe principiul cerere-raspuns ( un browser web
trimite o cerere catre un server web si raspunsul la aceasta cerere este trimis napoi pe acelasi
canal de comunicare - comunicare sincrona).

Componentele frecvent implicate n comunicare sunt:


- client: n general un browser este controlat de catre un utilizator care foloseste aplicatia web.
- firewall: un software care reglementeaza comunicarea ntre retele nesecurizate (ex Internet) si
securizate (ex retele locale ale unei companii).
- proxy: un proxy este utilizat pentru a stoca paginile web ntr-un cache, pentru a adapta
continutul pentru utilizatori sau pentru a urmari utilizatorii.
- server web: un software care suporta diferite protocoale web (ex HTTP si HTTPS) pentru a
procesa cererile clientului.
- server de baze de date: prezinta datele organizatiei ntr-o forma structurata (ex: n tabele)
- server media: este utilizat pentru streamingul continutului pentru datele nestructurate

- server pentru managementul continutului: pastreaza continutul aferent unei aplicatii, care este
disponibil sub forma datelor semistructurate (ex: documente XML)
- server de aplicatii: pastreaza functionalitatea necesara diverselor aplicatii (ex: fluxul de date sau
personalizarea)
- aplicatii mostenite: un sistem mai vechi care trebuie integrat ca o componenta interna sau
externa.

Arhitecturi in functie de aspectul stratificat:


Arhitecturi pe doua straturi
Arhitectura pe doua straturi, numita si arhitectura client-server, utilizeaza un server
web pentru a oferi servicii unui client.Arhitectura pe doua straturi poate lua forme diferite n
mediul aplicatiilor web. O cerere a unui client poate puncta direct catre o pagina HTML statica,
fara a solicita un rationament de procesare pe stratul server sau poate accesa o baza de date prin
intermediul logicii aplicatiei pe serverul web .
Paginile HTML dinamice includ instructiuni de tip script direct n codul HTML si ele
sunt interpretate fie de bazele de date cu functionalitati HTML fie de un server web. Aceasta
arhitectura este adecvata aplicatiilor web simple.
O abordare arhitecturala multi-stratificata este necesara pentru aplicatiile mai complexe care sunt
accesate de un numar mare de clienti concurenti sau care ofera procese de afaceri complexe ce
necesita accesarea sistemele de mostenire.
Arhitecturi pe N straturi
Arhitecturile pe N straturi permit organizarea aplicatiilor web pe un numar arbitrar
de nivele. Acestea constau de obicei n trei straturi:
-stratul datelor: ofera acces la datele aplicatiei
-stratul afacerii: gazduieste logica de afaceri a aplicatiei ntr-un server de aplicatii
-stratul prezentare: returneaza rezultatul cererii n formatul de iesire dorit.
n plus, mecanisme de securitate cum ar fi firewall-urile sau mecanismele de caching
pot fi integrate n fluxul cerere-raspuns.
Arhitecturile pe doua si N straturi difera n principal prin modul n care ncorporeaza
serviciile n componenta server a aplicatiei.
Servicii precum personalizarea sau fluxul de date sunt pastrate n serverul aplicatiei cu o interfata
definita (utilizata si pentru a administra aceste servicii) astfel nct sa fie disponibile pentru toate
aplicatiile web.
Majoritatea serverelor de aplicatii comerciale au fost optimizate pentru procesarea continutului
bazelor de date, suportul pentru continutul multimedia si structurile hipertext fiind neglijat.

JSP-Model-2
Arhitectura JSP-Model-2 (Java Server Pages) implementeaza sablonul MVC pentru
aplicatiile web, punnd astfel bazele pentru integrarea aspectelor de navigare, internationalizare
si distribuire multi-platforma n aplicatiile web .
Arhitectura JSP-Model-2 este inclusa ntr-un server web ,view-uri, controller-e si parti
ale functionalitatii modelului acestui sablon sunt disponibile ntr-o extensie a serverului web.
Controller-ul este implementat sub forma servlet-urilor , o componente software care ruleaza
ntr-un container servlet. Controller-ul este responsabil de oferirea accesului la logica aplicatiei si
selectarea prezentarii grafice (view). Modelul acceseaza sisteme backend precum o baza de date
sau o aplicatie de mostenire. Prezentarea grafica este realizata prin JSP.
Struts
Arhitectura JSP-Model-e este mbunatatita prin proiectul open-source Struts de la
Apache Software Foundation. Struts mbunatateste aplicatiile web adaugnd facilitati precum
tratarea erorilor si internationalizarea. n plus, Struts utilizeaza un fisier de configurare XML care
permite controlul fluxului de procesare din sablonul MVC pentru a facilita procesarea cererilor
clientului. Spre deosebire de JSP-Model-2 original, Struts permite configurarea view-ului si
modelului n fisierul struts-config.xml; astfel continutul poate fi prezentat ntr-un mod mai
flexibil n vederea adaptarii sau distribuirii multi-platforma.
Arhitecturi integrate
Sistemele interne sau externe,aplicatiile existente, baze de date existente si interfete
catre parteneri de afaceri externi pot fi integrate n aplicatiile web pe trei nivele: nivelul
prezentare, nivelul logic al aplicatiei si nivelul continutului.
Arhitecturile integrate se refera la aspectul de integrare de pe nivelul continut si de pe
cel logic al aplicatiei si sunt cunoscute sub numele de arhitecturi EAI (Enterprise Application
Integration). O alternativa la EAI sunt serviciile web care ofera integrarea serviciilor. La nivel
de prezentare, un set de sisteme diferite sunt integrate tipic prin utilizarea arhitecturilor portal.
Portalurile reprezinta cele mai recente dezvoltari ale aplicatiilor web multi-stratificate. Cu
ajutorul portalurilor continutul, care este distribuit pe mai multe noduri ale diversilor furnizori de
servicii, va fi disponibil dintr-un singur nod, oferind un aspect consistent.

Arhitecturi n functie de aspectul datelor


Datele pot fi grupate n una din urmatoarele categorii arhitecturale:
-date structurate de tipul celor aflate n bazele de date;
-documente de tipul celor utilizate n sistemele de management al documentelor;
-date multimedia de tipul celor incluse pe serverele media.
Aplicatiile web nu sunt limitate la una din aceste categorii de date, ele integreaza documente,
media si baze de date.

Arhitecturi axate pe baze de date


Sunt disponibile numeroase utilitare si abordari pentru integrarea bazelor de date n
aplicatiile web. Aceste baze de date sunt accesate fie direct prin intermediul extensiilor serverului
web (n cazul arhitecturilor pe doua straturi) fie prin serverele de aplicatii (n cazul arhitecturilor
pe N straturi). Pentru accesul la bazele de date relationale sunt disponibile interfete (APIs) pentru
diferite platforme (Java Database Connectivity (JDBC) pentru aplicatii bazate pe Java sau Open
Database Connectivity (ODBC) pentru tehnologii Microsoft).
Arhitecturi pentru managementul documentelor web
Pe lnga datele structurate din bazele de date si cele multimedia de pe serverele
media, continutul aplicatiilor web este frecvent procesat sub forma documentelor. Arhitecturile
de management al continutului ofera posibilitatea integrarii documentelor din surse diferite,
reprezentnd un mecanism pentru integrarea acestora n aplicatiile web.
Un server web receptioneaza o cerere de la client si o trimite mai departe serverului
de furnizare a continutului. Daca continutul solicitat nu este n cache atunci cererea este trimisa
mai departe serverului de management al continutului. Continutul poate fi disponibil direct pe
server sau poate fi accesat extern. n functie de tipul de integrare continutul extern poate fi extras
fie prin accesarea bazelor de date externe sau dintr-un serviciu sindicat. Spre deosebire de
accesarea unei baze de date, serviciile sindicat pot avea si functii suplimentare (exemplu
facturarea automata a drepturilor de licenta).

Arhitecturi pentru datele multimedia


Capacitatea de a manipula un volum mare de date are un rol important n
proiectarea sistemelor care utilizeaza continut multimedia. Desi volumul de date nu este
important n arhitecturile web axate pe baze de date, acesta influenteaza considerabil arhitectura
si proiectarea aplicatiilor web multimedia.
Datele multimedia ,audio si video ,pot fi transmise prin intermediul protocoalelor
internet standard (HTTP sau FTP), asemenea celorlalte date utilizate n aplicatiile web. Aceasta
abordare este utilizata de un numar mare de aplicatii web deoarece prezinta avantajul ca nu
necesita componente suplimentare pe server,dezavantajul este ca descarcarile de fisiere
multimedia sunt foarte lente.
Se pot utiliza tehnologii streaming pentru a minimiza perioada de asteptare pentru
redarea continutului multimedia, prin streaming un client reda un fisier audio si/sau video la
cteva secunde dupa ce ncepe receptionarea acestuia de pe server. Aceasta tehnica evita
descarcarea ntregului fisier nainte de a ncepe redarea lui. Continutul trebuie transmis n timp
real, ceea ce necesita o latime de banda corespunzatoare.
n general sunt folosite doua protocoale pentru streaming-ul de continut multimedia:
un protocol preia transmisia datelor multimedia la nivelul retea, iar celalalt controleaza fluxul
prezentarii si transmisia meta-datelor. Un exemplu de protocol de retea este RTP (Real Time

Protocol) care coopereaza cu un protocol de control numit RTSP (Real Time Streaming
Protocol).
Exista doua domenii distincte de aplicatii pentru streaming-ul datelor multimedia: primul face
disponibil la cerere continutul existent, iar al doilea distribuie live continutul unui numar mare de
utilizatori . Fiecare din aceste doua cazuri de utilizare formuleaza cereri diferite la nivelul retelei
si arhitecturilor hardware si software. Desi fiecare utilizator stabileste propria sa conexiune la
server ntr-un scenariu la cerere cauznd probleme majore ale latimii de banda si ncarcarii
serverului, broadcasting-ul realizeaza cereri sporite la nivelul retelei. n mod ideal, un server
utilizat pentru broadcasting sa administreze un singur stream media, care este difuzat simultan
catre toti utilizatorii de catre infrastructura retelei. Deoarece multicasting-ul nu este suportat n
general n internet, serverul trebuie sa foloseasca conexiuni punct-la-punct pentru a simula
functionalitatea broadcast.

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