Vous êtes sur la page 1sur 7

Academia de Studii Economice Bucureti

Cibernetic, Statistic i Informatic Economic

Referat Tehnologii Web


Arhitecturi ale Aplicaiilor Web

Bucureti
2016
1

Introducere
O aplicaie web este un program care ruleaz ntr-o arhitectur client-server folosind
tehnologiile deschise World Wide Web. Ele nlocuiesc modelele n care att serverul ct i
clientul ruleaz tehnologii proprietar, mentenana aplicaiilor de pe partea de client fiind prea
complex, costisitoare i susceptibil la erori. n schimb, omniprezena browserelor web i
comoditatea de a le folosi drept client conduce la eliminarea acestei mari probleme. Astfel, au
evoluat i pe partea de server serverele de aplicaii, iar pe lng limbajele de programare au
aprut frameworkuri i tehnologii dedicate programrii acestora.
Cuvntul englez framework definete, n termeni generali, un ansamblu standardizat
de concepte, practici i criterii pentru a se aplica asupra unui tip particular de problematic,
ce servete ca referin pentru a propune i rezolva probleme cu conotaii similare. n
dezvoltarea de software un framework este o structur conceptual i reprezint o arhitectur
de software care modeleaz relaiile generale ale entitilor domeniului (site-ului).

Principalele proprieti ale arhitecturilor software

arhitectura descrie structura: arhitectura sistemelor software const n structura


acestora, descompunerea n componente, interfaa i relaiile dintre ele. Arhitectura
descrie att aspectele statice ct i pe cele dinamice ale sistemului software, astfel
nct este necesar construirea de diagrame de flux pentru un produs software.
arhitectura face tranziia de la analiz la implementare: Cnd crem arhitectura
ncercm s descompunem cerinele funcionale i pe cele de calitate n componente
software, relaii i interfee ntr-un mod iterativ. Acest proces este susinut de mai
multe abordri, cum ar fi Procesul Unificat.
arhitectura poate fi abordat din diferite puncte de vedere, n func ie de care se pot
specifica aspecte arhitecturale distincte. Se remarc urmtoarele puncte de vedere:
o abordarea conceptual identific identitile domeniului aplicaiei i relaiile
dintre acestea
o abordarea n funcie de momentul rulrii descrie componentele n momentul
rulrii sistemului (de exemplu, servere sau ci de comunicaie)
o abordarea pe procese mapeaz procesele n momentul rulrii sistemului, avnduse n vedere aspecte precum sincronizarea i concurena
o abordarea n funcie de implementare descrie artefactele software-ului i include
subsisteme, componente sau cod surs.
Avnd n vedere proprietile menionate, putem afirma c deciziile arhitecturale au o
importan major n dezvoltarea aplicaiilor web.
Dezvoltarea arhitecturilor

Cerinele software-ului i arhitectura acestuia sunt ntr-o continu schimbare.


Constrngerile tehnice i de organizare se modific pe parcursul i dup dezvoltarea unei
aplicaii. Aceasta se poate datora unor cerine neclare de la nceputul procesului de dezvoltare
sau unei schimbri a cerinelor dup finalizarea sistemului. Din acest motiv, sistemele
software sunt deseori numite tine n micare. Figura 1 ilustreaza factorii i constrngerile
care influeneaz dezvoltarea unei arhitecturi conform opiniei lui Jacobson.

Figura 1 Factori care influeneaz dezvoltarea unei arhitecturi


Arhitectura unei aplicaii este influenat n principal de cerinele funcionale
-serviciile oferite de un sistem- i de consideraiile privind calitatea (scalabilitatea sau
performana). Dincolo de aceste cerinte, arhitecturile sunt influenate de constrngeri tehnice,
cum ar fi sistemul software utilizat (de exemplu, sistemul de operare), middleware (de
exemplu, implementarea CORBA), sistemele de motenire care vor fi integrate, standardele
utilizate, regulile de dezvoltare (de exemplu, ghiduri de scriere a codului) sau aspectele de
distribuire (de exemplu, distribuirea n diverse locaii a unei companii).
abloane
abloanele descriu probleme de proiectare recurente care apar ntr-un anumit context
i propun soluii la acestea. O soluie descrie componentele participante, responsabilitile lor,
relaia ntre aceste componente i interaciunea acestor componente n contextul unei
probleme specifice. De aici rezult c abloanele ne permit reutilizarea cunotin elor de
proiectare, sprijinind dezvoltarea sistemelor software de calitate superioar.
Clasificarea abloanelor:
abloanele arhitecturale mapeaz mecanismele de structurare fundamentale pentru
sistemele software. Ele descriu subsistemele arhitecturale, responsabilitile acestora,
relaiile i interaciunea dintre ele. Un exemplu de astfel de ablon este ablonul MVC
(Model-View-Controller).
abloanele de proiectare descriu structura, relaiile i interaciunea ntre componente
pentru a rezolva problemele de proiectare aprute ntr-un anumit context i deriv
dintr-un limbaj de programare specific.

dialecte descriu abloanele care se refer la o implementare specific dintr-un limbaj


de programare.
Totui, abloanele reprezint doar un ghid pentru o anumit problem. Arhitecii
software trebuie s adapteze abloanele la problema i constrngerile respective, s integreze
i s mbunteasc abloanele folosite. Pentru a susine procesul de integrare, Buschmann
recomand folosirea aa-numitelor limbaje-ablon. Un limbaj-ablon descrie interconexiunile
abloanelor pe nivele de abstractizare diferite, sugereaz diferite utilizri pentru abloane i
indic adaptarea necesar pentru a oferi un sistem solid.
Cadre de lucru
Cadrele de lucru de lucru reprezint o alt opiune pentru reutilizarea cunotinelor
arhitecturale existente. Un cadru de lucru este un sistem software reutilizabil cu o
funcionalitate general deja implementat. Cadrul de lucru poate fi ntlnit sub forma
aplicaiilor gata de folosire i servete ca o schi pentru arhitectura i funcionalitile de
baz ale unui domeniu specific al aplicaiei. Beneficiile unui cadru de lucru simpla
reutilizare a arhitecturii i funcionalitii- trebuie puse n balan alturi de dezavantajele sale
(gradul nalt de instruire necesar, lipsa standardelor pentru integrarea diferitelor cadre de
lucru i dependena de productori).
Clasificarea arhitecturilor
n ultimii ani au fost dezvoltate o serie de arhitecturi pentru rezolvarea cerin elor
specifice din diverse domenii de aplicaii. Anastopoulos si Romberg descriu arhitecturile
pentru mediul aplicaiilor web n funcie de aspectul stratificat al arhitecturilor sau de
aspectul datelor (susinerea diferitelor date i formate de date):
o aspectul stratificat: se refer la faptul c sistemele software sunt structurate pe cteva
nivele pentru implementarea principiului separarea intereselor n cadrul unui sistem
software. Multe cadre de lucru din domeniul sistemelor distribuite i aplica iilor web
sunt structurate n principal pe aspectul stratificat.
o aspectul datelor: datele pot fi structurate sau nestructurate. Datele structurate urmeaz
o schem predefinit asemntor tabelelor din bazele de date rela ionale sau
structurilor XML dintr-un document. Datele nestructurate sunt elemente multimedia
(imagini, audio, video) care nu respect o schem explicit, ceea ce face dificil
procesarea lor automat.
Rspndirea din ce n ce mai mare a sistemelor software a condus la dezvoltarea
arhitecturilor i infrastructurilor ce se adreseaz distribuirii datelor i mesajelor:
DOM (Distributed Object Middleware) permite accesarea obiectelor de la distan
n mod transparent i se bazeaz pe mecanismul RPC (Remote Procedure Call).
VSM (Virtual Shared Memory) permite proceselor distribuite s acceseze datele
comune.
MOM (Message Oriented Middleware) ofer funcionaliti pentru transmiterea
asincron a mesajelor. Comunicarea asincron difer de cea sincron prin faptul c
mesajele sunt trimise destinatarului indiferent de starea acestuia.
P2P (Peer to Peer) nseamna comunicarea direct ntre dou dispozitive (parteneri)
ntr-un sistem fr utilizarea unui server (ei pot comunica printr-o conexiune de tip
punct-la-punct).
4

SOM (Service Oriented Middleware) mbunttete sistemele DOM prin conceptul


de servicii. Un serviciu n acest context reprezint un numr de obiecte i
comportamentul acestora; aceste obiecte folosesc o interfa predefinit pentru a face
un serviciu disponibil altor sisteme/servicii.

Particularitile arhitecturilor pentru aplicaiile web


Pentru nceput este necesar realizarea unei distincii ntre arhitectura infrastructurii
web (Web Platform Architectures -WPA) i infrastructura aplicaiilor web (Web Application
Architectures - WAA). Deoarece WAA depinde de domeniul problemei aplicaiei web, vom
insista asupra WPA-urilor.
WPA-urile au fost dezvoltate pentru o arie larg de probleme. Serverele de aplica ii
precum implementarea J2EE i platforma .NET ncearc s ofere servicii de baz pentru
controlul sesiunilor i accesul la date. n afara serverelor de aplica ii au fost dezvoltate solu ii
arhitecturale specifice pentru rezolvarea problemelor de securitate, performan i integrare a
datelor (firewall-uri, proxy-uri pentru caching i EAI).
Paradoxal, utilizarea unui numr mare de sisteme diferite face dificil evaluarea i
pstrarea unor cerine de calitate distincte. De exemplu, ndeplinirea cerinelor de
performan devine din ce n ce mai dificil datorit numrului din ce n ce mai mare de
componente i produse utilizate de la teri (comerciale sau gratuite).
Alte probleme n dezvoltarea aplicaiilor web sunt neomogenitatea i imaturitatea
infrastructurilor tehnice. n acest sens menionm problemele care apar n analiza
performanei pentru serverele de aplicaii n situaia unor update-uri frecvente; un astfel de
studiu relev c versiunile noi de produse sunt mai lente fa de cele anterioare i noile
funtionaliti determin incompatibiliti n codul aplicaiei existente. Indiferent de
problemele de neomogenitate i imaturitate, aplicaiile web actuale utilizeaz un numr
ridicat de infrastructuri tehnice pentru rezolvarea anumitor probleme: cadre de lucru opensource.
Un alt aspect important pentru arhitectura aplicaiilor web este interna ionalizarea
aplicaiilor web, care solicit suport pentru limbi diferite, seturi de caractere i mecanisme de
reprezentare (reprezentarea caracterelor arabice de la dreapta la stnga) la nivelul WPA.
Aceste aspecte sunt oferite i de limbajele de programare sau sistemele de operare (de
exemplu, platforma PHP ofer un mecanism de internaionalizare pentru codificarea seturilor
de caractere diferite (exemplu ISO-8859-2, UTF-8) realizat i cu ajutorul programului
Gettext.
Componentele arhitecturii aplicaiilor web
n Figura 2 sunt reprezentate componentele de baz ale arhitecturilor web i rela iile
dintre ele. Comunicarea dintre aceste componente se bazeaz n general pe principiul cerererspuns ( o component un browser web trimite o cerere ctre o alt component serverul
web i rspunsul la aceast cerere este trimis napoi pe acelai canal de comunicare
comunicare sincron).

Figura 2 Componentele de baz ale arhitecturilor unei aplicaii web


Componentele frecvent implicate n comunicare sunt:
client: n general un browser (agent utilizator) este controlat de ctre un utilizator care
folosete aplicaia web. Funcionalitatea clientului poate fi extins prin instalarea
plug-in-urilor i applet-urilor.
firewall: un software care reglementeaz comunicarea ntre reele nesecurizate (de
exemplu, Internet) i securizate (de exemplu, reele locale ale unei companii). Aceast
comunicare este filtrat prin reguli de acces.
proxy: un proxy este utilizat pentru a stoca paginile web ntr-un cache, pentru a adapta
coninutul pentru utilizatori (personalizare) sau pentru a urmri utilizatorii.
server web: un software care suport diferite protocoale web (de exemplu, HTTP i
HTTPS) pentru a procesa cererile clientului.
server de baze de date: prezint datele organizaiei ntr-o form structurat (de
exemplu n tabele)
server media: este utilizat pentru streamingul coninutului pentru datele nestructurate
(de exemplu, audio sau video)
server pentru managementul coninutului: pstreaz coninutul aferent unei aplicaii,
care este disponibil sub forma datelor semistructurate (de exemplu, documente XML)
server de aplicaii: pstreaz funcionalitatea necesar diverselor aplicaii (de
exemplu, fluxul de date sau personalizarea)

aplicaii motenite: un sistem mai vechi care trebuie integrat ca o component intern
sau extern.
Concluzii
Calitatea aplicaiilor web este influenat semnificativ de arhitectura acestora. Lipsa
aspectelor arhitecturale influeneaz n mod negativ cerinele privind calitatea aplicaiilor
web. Performana sczut, ntreinerea i extinderea insuficient i slaba disponibilitate a unei
aplicaii web sunt deseori cauzate de o arhitectur neadecvat. Pe lng constrngerile tehnice
precum disponibilitatea serverelor web, serverele de aplicaii utilizate sau integrarea
sistemelor de motenire, arhitecturile aplicaiilor web trebuie s ia n considerare i cadrul de
lucru organizaional n care ele sunt incluse (de exemplu, experiena arhitecilor). Utilizarea
unor arhitecturi multi-strat flexibile, tratarea coninutului multimedia i integrarea depozitelor
de date existente sunt stringente pentru dezvoltarea arhitecturii aplicaiilor web.
n mod normal, aplicaiile web nu sunt dezvoltate din nimic n ceea ce prive te
infrastructura tehnic; deseori trebuie extins sau adaptat o infrastructur existent. Pe lng
constrngerile pur tehnice, putem identifica alte aspecte, cum ar fi viabilitatea economic a
infrastructurii tehnice.
Arhitectura unei aplicaii este influenat n principal de cerinele funcionale
-serviciile oferite de un sistem- i consideraiile privind calitatea (scalabilitatea sau
performana). Dincolo de aceste cerine, arhitecturile sunt influenate de constrngeri tehnice,
cum ar fi sistemul software utilizat (de exemplu, sistemul de operare), middleware (de
exemplu, implementarea CORBA), sistemele de motenire care vor fi integrate, standardele
utilizate, regulile de dezvoltare (de exemplu, ghiduri de scriere a codului) sau aspectele de
distribuire (de exemplu, distribuirea n diverse locaii a unei companii).
Calitatea aplicaiilor Web este influenat de arhitectura pe care se bazeaz.
Bibliografie
https://ro.wikipedia.org/wiki/Aplica%C8%9Bie_web
https://ro.wikipedia.org/wiki/Framework
http://www.scritub.com/stiinta/informatica/Proiectarea-aplicaiilor-web204316910.php