You are on page 1of 5

TEHNOLOGII JAVA PENTRU APLICATII WEB

Aplicatii Web
O aplicatie Web este o aplicatie accesibil dintr-un program de navigare (Browser Web) si
aflat n general pe un alt calculator (numit si server) dect calculatorul folosit de utiliator (numit
si client al aplicatiei)! ambele conectate n reteaua "nternet# $rogramele de navigare pe "nternet
(%oilla &ire&o'! "nternet ('plorer! Opera! )*rome) comunic cu aplicatia din server prin
protocolul +,,$ si limba-ul +,%.#
)uvintele server si client desemnea si programele care asigur comunicarea ntre
calculatorul server si calculatorul client#
/n server Web este un program care primeste cereri +,,$ de la clienti (programe de tip
browser! dar si alte programe) si serveste rspunsuri acestor cereri sub form de pagini Web
care contin documente +,%. si alte resurse asociate (imagini s#a#)# )ontinutul unui rspuns era la
nceput static (fisiere +,%. pregtite anterior si redate ca atare)! iar mai apoi dinamic (paginile
Web contin! pe lng fragmente +,%. si date adugate de server si reultate din prelucrri si0sau
din bae de date folosite de server)#
/tiliatorul unei aplicatii Web introduce n browser adresa (identificatorul) unei resurse Web!
numi /1. (/niform 1esource .ocation) sau /1" (/niform 1esource "dentifier)# ('emplu 2
*ttp200www#*ost#com0pat*0file#*tml

,ermenul *ost desemnea calculatorul server din reteaua "nternet care gduieste aplicatia
Web! iar pat* este calea (secventa de directoare) din server ctre fisierul file#*tml#
/n server de aplicatii (3pplication 4erver) este un server Web care ofer aplicatiilor gduite o
serie de servicii suplimentare si un container n care se e'ecut aplicatiile#
Odat cu aparitia serviciilor Web (Web 4ervices) s-a lrgit definitia aplicatiilor Web5 conform
6((7 ,utorial o aplicatie web este o e'tensie dinamic a unui server Web sau a unui server de
aplicatii# 4e pot deosebi dou tipuri de aplicatii Web2
- Orientate ctre preentare ($resentation Oriented)! care generea pagini Web interactive scrise
n diferite limba-e cu marca-e (+,%.!8+,%.!8%. s#a#)5
- Orientate ctre servicii (4ervice Oriented)! care implementea un furnior de servicii Web (Web
4ervice (ndpoint)#
)lientul unui serviciu Web! ca si clienti ai altor aplicatii Web! pot s nu foloseasc un browser
Web si s fie programe de acces la serviciile oferite de aplicatie#
('ist si aplicatii Web destinate utilirii ntr-o retea local ("ntranet)! dar ma-oritatea lor sunt
accesibile n reteaua global "nternet#
3plicatiile Web au avanta-ul c orice calculator legat la "nternet poate avea acces la o astfel de
aplicatie! iar modificarea aplicatiei nu necesit dect modificri n server fr a fi afectati si
utiliatorii aplicatiei# "n plus! programul browser nu necesit multe resurse! ceea ce a condus la
e'presia t*in client pentru utiliatorul unui browser# 9u contea sistemul de operare sub care se
e'ecut programul browser (Windows sau .inu' sau altul)! dar pot conta eventuale diferente de
implementare a standardelor Web (+,%.! )44! :O%! 6avascript) de ctre browser# O aplicatie
Web poate include alte proceduri Web e'istente! cum ar fi cutri si posta electronic#
('emple uuale de aplicatii Web sunt posta electronica (e-mail sau Web%ail)! centre de
informare (wi;is) si motoare de cutare n bae de cunostinte (<oogle!=a*oo!s#a#)! comert
electronic! licitatii prin "nternet! bloguri! forumuri de discutii! portaluri s#a#
&iecare aplicatie are o adres de "nternet /1. (un nume de locatie! de site)! de aceea se
foloseste uneori si e'presia site sau website n loc de aplicatie#
)ele mai multe aplicatii Web au un numr nelimitat (n general foarte mare) de utiliatori! dar
e'ist si aplicatii Web cu numr mic de clienti si care sunt alternative la aplicatii anterioare locale
( informri si transmitere de documente n cadrul unei firme! proiectare asistat de produse s#a#)
O aplicatie Web are ca functie principal transmiterea (de la server la client) de pagini Web!
care pot fi statice (cu continut fi'! stabilit de server) sau dinamice (cu continut care depinde de
cererile clientului! de informatiile e'trase din bae de date si de logica aplicatiei)# "n general! dup
introducerea adresei de site de ctre clientul aplicatiei! aplicatia din server trimite o pagin de
preentare (*ome page)! care permite utiliatorului selectarea n continuare a unor operatii
prevute de aplicatie sau care cere utiliatorului informatii de identificare (nume si parol)! dac
aplicatia are restrctii de acces# "n continuare dialogul client-server are loc prin cereri +,,$
1
formulate de client prin intermediul unor elemente de interfat grafic (butoane! csute pentru
introducere te't! formulare s#a#)! la care aplicatia trimite ca raspuns pagini web (n +,%.) ce pot
contine te't! imagini! alte formulare si date e'trase din bae de date e'istente pe server#
$entru a face mai atractiv dialogul client-aplicatie se folosesc te'te si imagini animate
(dinamice)! realiate n principal prin includerea de secvente 6ava4cript n paginile +,%. trimise
de server (secvente interpretate de browser)#
,e*nologia 3-a' (3s>nc*ronous 6avascript 8%.) permite o interactiune mai rapid ntre client si
aplicatie prin modificarea paginilor afisate de browser fr retransmiterea unei noi pagini
(modificate) de ctre server (n paralel si asincron cu actiunile utiliatorului)#
.imba-ul 6ava4cript (()%34cript) permite si realiarea de interfete mai sofisticate pentru
aplicatiile Web! apropiate ca posibilitti de interfetele grafice ale aplicatiilor locale (des;top)! ceea
ce a condus la termeni ca 1ic* Web 3pplication sau 1ic* "nternet 3pplication (1"3)#
Dezvoltarea de aplicatii Web
Orice aplicatie Web trebuie s interpretee cererile +,,$ primite de la browser (<(,! $O4,!
s#a#) si s generee pagini Web ca rspuns la aceste cereri# "n plus! cele mai multe aplicatii
folosesc si una sau cteva bae de date din care se e'trag date ca urmare a unor cereri! iar
aceste date sunt incluse n paginile de rspuns (pagini cu continut dinamic)#
&iecare aplicatie are o anumit logic (un algoritm) de tratare a cererilor primite! logic care
poate deveni destul de comple'#
4ervirea unui continut dinamic nseamn c multe pagini afisate de o aplicatie Web prin
intermediul unui browser au prti fi'e (statice)! pentru care este potrivit limba-ul +,%.! dar si prti
variabile care nu pot fi descrise n +,%.! dar sunt inserate n paginile +,%.#
3plicatiile Web au n general o comple'itate mai mare dect aplicatiile locale pentru c2
- $roblemele care trebuie reolvate presupun competente diferite si limba-e diferite2 +,%. si
6ava4cript pentru partea de preentare! bae de date si 4?. pentru datele persistente si un limba-
de programare (de obicei orientat pe obiecte) pentru logica aplicatiei#
- ,rebuie compatibiliate limba-e si te*nologii diferite2 cererile +,,$ trebuie transformate n
obiecte! paginile +,%. trebuie s preia date din programe 6ava5 aceste limba-e nu au fost
proiectate s lucree mpreun# $robleme similare apar la utiliarea datelor dintr-o ba de date
relational ntr-un limba- cu obiecte! ceea ce a condus la aparitia unor produse de tip O1% (Ob-ect
1elational %apping) pentru reolvarea lor#
- $rotocolul +,,$ este un protocol stateless! n care o cerere nu tine seama de cererile
anterioare (de starea aplicatiei)! dar n practic multe aplicatii Web functionea ca un automat
cu stri (de e'# 3cumularea unor comeni de produse ntr-un cos de cumprturi)#
- 3ccesul public la aplicatiile Web si numrul mare de utiliatori ridic probleme de securiare si de
calitate a serviciilor (timp de rspuns bun! disponibilitate permanent! modificare continu)#
- ,estarea si depanarea aplicatiilor Web sunt mai dificile dect pentru aplicatiile locale#
- )erintele asupra acestor aplicatii au crescut continuu att ca facilitti oferite (post electronic!
servicii Web! portaluri! s#a)! ca aspect (componente grafice de interfata ct mai diverse)! ca
usurint de utiliare de ctre beneficiarii (interactivitate sporit) aplicatiei si ca timp de
implementare#
)a orice aplicatie software real si aplicatiile Web au o evolutie n timp! n sensul c se pot
modifica cerintele privind interfata de acces si functionalitatea aplicatiei# :e aceea contea nu
numai timpul de devoltare a unui prototip initial al aplicatiei ci si efortul de modificare a aplicatiei
aflat n e'ploatare#
4olutiile pentru abordarea acestei comple'itti au diverse forme2
- %odulariarea (componentiarea) aplicatiilor Web prin folosirea sc*emei de proiectare %@)
prin folosirea de e'tensii plugin (adugate static sau dinamic! fr oprirea aplicatiei)
- /tiliarea de platforme suport (Web &ramewor;s) pentru devoltarea si testarea aplicatiilor
- /tiliarea de medii ":( cu facilitti speciale pentru aplicatii Web ((clipse!9etBeans!":(3! s#a#)#
- &olosirea unor limba-e mai noi ($>t*on!1ub>!<roov>! 4cala) si moderniarea limba-elor mai vec*i
cu te*nici OO$ ($+$ A! 6ava4cript! s#a#) pentru reducerea codului aplicatiilor#
,e*nologiile folosite pentru realiarea de aplicatii Web au evoluat rapid iar n preent e'ist o
mare diversitate de solutii disponibile! clasificate n general dup limba-ele utiliate n partea de
server2 $+$! $erl! $>t*on! 1ub> s#a#
2
Web Frameworks
('presia Web &ramewor; (infrastructur! platform! suport)! ca si 3pplication &ramewor;!
este mult folosit dar destul de vag definit5 o definitie general este aceea de infrastructur pe
baa creia se construiesc aplicatii de o anumit comple'itate#
"deia general este aceea c devoltarea unei noi aplicatii nu trebuie s plece de la ero si c
o bun parte din codul aplicatiei poate fi preluat din biblioteci si0sau poate fi generat conform
unui model comun unei clase de aplicatii# ('ist prea multe sarcini si aspecte comune aplicatiilor
Web pentru ca ele s nu fie reutiliate n mai multe aplicatii# )e si ct se reutiliea depinde de
fiecare framewor;! dar obiectivele sunt comune2 reducerea timpului de devoltare si de punere la
punct a aplicatiilor si o calitate ct mai bun a lor (cerinte oarecum contradictorii)#
/n framewor; Web se poate reduce la o bibliotec de clase sau de functii 6avascript sau la un
mecanism de utiliare a paginilor sablon (template)5 unele au obiective partiale iar altele se vor a
fi ct mai complete si includ alte produse framewor; (&ull 4tac; &ramewor;)#
/n framewor; Web cu obiectiv limitat poate fi folosit pentru O1% (+ibernate!##)! pentru obiecte
grafice interactive de interfat (widgets)! pentru a include functionalitate 3-a' n aplicatii
($rotot>pe! -?uer>! s#a#)! pentru reducerea fisierelor de configurare prin conventii! pentru
generarea unui sc*elet al aplicatiei (4caffolding)! pentru testarea aplicatiilor etc#
3numite produse framewor; sunt cunoscute mai ales pentru nouttile introduse n domeniu si
care au marcat anumite pietre de *otar (6((! #9(,! 4pring! 1ub> on 1ails B1o1)! iar altele au
perfectionat aceste inovatii si le-au fcut mai accesibile (<rails simplific utiliarea 4pring!
+ibernate! $rotot>pe! 1o1 s#a#)#
/n framewor; complet include un server Web si o ba de date pentru a simplifica si accelera
devoltarea si testarea aplicatiilor# 3plicatia final (cu multe fisiere si foldere) este de obicei
ar*ivat ntr-un format standard pentru a fi transferat pe un server Web unde va fi e'ploatat
(proces numit deplo>mentB instalare)#
$rodusele de tip framewor; sunt clasificate de obicei dup limba-ul utiliat (altele dect +,%.
sau 8%.)2 $+$! $>ton! 6ava! s#a#
/n framewor; Web poate fi utiliat n mod linie de comand sau dintr-un ":(5 de e'emplu
<rails poate fi folosit din ":(3! (clipse si 9etBeans#
%ulte produse framewor; actuale sunt de tip %@) adic impun aplicatiilor Web o structur
conform sc*emei %@) (%odel-@iew-)ontroller)! avnd C prti distincte2
- % (%odel) desemnea datele folosite de aplicatie (date preluate de obicei dintr-o ba de date
relational)5
- @ (@iew) desemneaa partea de preentare a aplicatiei (pagini +,%. cu 6ava4cript)5
- ) ()ontroller) desemnea logica care controlea accesul la date si generarea de pagini Web!
pe baa cererilor +,,$ primite de aplicatie#
$e lng implementarea sc*emei %@) o aplicatie Web mai poate contine si alte componente!
cum ar fi2
- componente de autentificare utiliatori autoriati
- componente de cutare pe "nternet de informatii
- componente de generare mesa-e prin posta electronic
- componente de generare fisiere n formate diferite ($:&! formate %4Office2 :O)!8.4)
- componente de conectare la servicii Web#
Java Enterprise Edition (Java EE)
6ava (( este o platform pentru devoltarea de aplicatii Web (distribuite) n limba- 6ava!
aplicatii comple'e (large-scale)! portabile! scalabile! sigure si modulare si care s se poat
integra usor cu te*nologii anterioare (legac> tec*nologies)#
"n -argonul 6(( o aplicatie distribuit comple' este numit aplicatie de firm ((nterprise
3pplication) pentru c apare n firmele mari informatiate#
6ava (( este n primul rnd o colectie de specificatii care ar trebui respectate de serverele
compatibile 6(( (4$"B4>stem $rogrammer "nterface) si respectiv de aplicatiile 6((
(3$"B3pplication $rogrammer "nterface)#
4pecificatiile se refer la2
3
- interfete 3$" si biblioteci de clase care s unifice programarea aplicatiilor distribuite comple'e2
6:B) pentru acces la bae de date 4?.! 6%4 pentru mesagerie! 69:" pentru registre de nume!
638-W4 si 638-14 pentru servicii Web! 6,3 pentru tranactii! 6$3 pentru persistent! etc#
- componente standard ale aplicatiilor Web2 servleti! pagini 64$! biblioteci de tag-uri! module (6B
((nterprise 6ava Beans)! portleti! conectori! etc#
- servicii care trebuie asigurate de ctre un server de aplicatii (un container de aplicatii Web)
- fisiere de configurare si structura ar*ivelor ce contin aplicatii Web
"deea principal era de a reduce diversitatea aplicatiilor Web scrise n 6ava si diversitatea
serverelor de aplicatii 6ava pentru a reduce timpul de devoltare si de instalare pe diferite servere
a unor aplicatii! inclusiv prin reutiliarea unor module si servicii comune#
/nele dintre te*nologiile introduse de 6(( pentru aplicatii Web scrise n 6ava se folosesc si n
servere sau produse framewor; care nu sunt total compatibile 6((2 servleti! 64$! logging! s#a#
/n server care suport aplicatii Web scrise n 6ava trebuie s contin un container de servleti#
$rincipalele servere compatibile 6ava sunt 3pac*e ,omcat si 6ett>#
/n server de aplicatii (34B3pplication 4erver) ofer servicii suplimentare fat de un server
container de servleti (pe care-l contine)2 tranactii! -urnaliare (logging)! servicii de nume! s#a#
/n server de aplicatii e'pune clientilor posibilitatea de a utilia aplicatii aflate pe un alt calculator#
/n server compatibil 6(( implementea toate interfetele 3$" de pe platforma 6(( si ofer
serviciile considerate standard pentru toate aplicatiile#
"n preent e'ist mai multe servere de aplicatii compatibile 6ava ((! unele comerciale ("B%
Websp*ere! 6Boss! Weblogic) si altele gratuite ( <lassfis*! <eronimo s#a#)#
Tehnologii Web pe platforma JEE
$latforma 6(( este destinat n primul rnd aplicatiilor mari si admite o diversitate a acestor
aplicatii! n sensul c pot e'ista mai multe servere! c utiliatorul final (client) poate folosi si alte
programe dect un browser Web! c poate fi necesar integrarea n aplicatia 6(( a unor bae de
date sau fisiere e'istente anterior#
3plicatii 6(( au si atributul de multi-tiered adic sunt structurate pe mai multe niveluri! iar
te*nologiile folosite sunt clasificate dup nivelul pe care se folosesc# )ele C niveluri sunt2
- 9ivelul Web (Web ,ier) 2 partea care preia cererile client si le transmite nivelului urmtor#
- 9ivelul Business (Business ,ier)2 partea de logic a aplicatiei! care compune rspunsuri
- 9ivelul ("4 ((nterprise "nformation 4>stem)2 partea de lucru cu date persistente (e'terne)#
,e*nologiile 6(( folosite pe nivelul Web sunt2
- 4ervleti
- 64$ (6ava 4erver $ages) si biblioteci de taguri 64$ (64$ ,ag .ibrar>)
- 64& (6ava 4erver &aces)
- 64& &acelets
- .imba-ul unificat de e'presii (/nified ('pression .anguage)
- )lase 6avaBeans folosite n paginile 64$ si 64&
,e*nologiile 6(( folosite pe nivelul Business sunt2
- )omponente (6B ((nterprise 6ava Beans)
- 4ervicii Web de tip 1(4,
- &urniori0clienti de servicii Web 4O3$
- (ntitti persistente 6$3 (6ava persistence 3$")
,e*nologiile 6(( folosite pe nivelul ("4 sunt2
- 6:B) (6ava :ata Base )onnectivit>) care integrea limba-ul 4?. n 6ava
- 6$3 (6ava $ersistence 3$")
- 6ava (( )onnector 3rc*itecture! pentru cuplare cu produse non-6((
- 6,3 (6ava ,ransaction 3$") pentru utiliare de tranactii
:evoltarea de aplicatii 6ava (( se poate face n linie de comand (folosind programul ant)
sau folosind mediul 9etBeans#
%ediul integrat pentru devoltare de programe 9etBeans ofer suport pentru devoltarea de
aplicatii 6((! inclund multe biblioteci! serverul <lassfis* si o ba de date (:erb>)# $entru
e'emplele din tutorialul 6(( sunt descrise proceduri de operare n 9etBeans (e'ist fisiere proiect
9etBeans)! dar este posibil si utiliarea lor n linie de comand#
4
Evoltia platformei JEE
$rincipala noutate a platformei initiale 6ava (( a fost introducerea unor noi componente!
numite (6B ((nterprise 6ava Beans) care se e'ecutau sub controlul containerului 6((# /n (6B
era o clas 6ava care trebuia s respecte anumite interfete pentru metodele din (6B apelate de
container#
"nitial erau trei tipuri de clase (6B2
- (6B sesiune (4ession (6B)
- (6B entitate ((ntit> (6B)
- (6B mesa- (%essage (6B)
3ceste componente (6B nu puteau fi depanate dect dup instalare n container (deci numai
pe un server 6(()! ceea ce s-a dovedit a fi un deavanta- important si o piedic n adoptarea lor#
"n acelasi timp au aprut alte solutii O1% pentru accesul din 6ava la date persistente (din bae de
date 4?.)! mai simple si care foloseau clase 6ava obisnuite ($O6OB$lain Old 6ava Ob-ects)#
)ele mai mari modificri de la o versiune la alta au avut loc pe nivelul Business! prin renuntarea
treptat la componentele (ntit> (6B si trecerea la alte te*nologii pentru obiecte persistente#
O modificare important a avut loc dup ce s-au introdus n limba-ul 6ava (D#A) adnotrile
(annotations)! care au simplificat fisierele de configurare 8%. necesare unei aplicatii 6((#
3-uns acum la versiunea 7! 6ava (( a suferit n timp sc*imbri importante2
- $e partea de persistent a datelor (componenta % din %@)) s-a renuntat la ideea initial de
clase (6B entitate n favoarea unor clase 6ava obisnuite ($O6OB$lain Old 6ava Ob-ects)5 clasele
(ntit> (6B pot fi testate numai pe serverul de aplicatii! dar clasele $O6O pot fi testate si nainte de
instalare pe server# /ltima versiune! (6BC (6$3)! are multe simplificri si mbunttiri! dar e'ist
alternative pentru clasele persistente preferate n multe cauri (+ibernate de e'#)#
- $e partea de preentare (componenta @ din %@)) s-a trecut (n ultima versiune) de la pagini 64$
la te*nologia 64& (6ava 4erver &aces) si la componente facelet#
$latforma 6ava (( evoluea n continuare prin aparitia de noi interfete 3$"#
Alternative la platforma JEE
)erintele impuse de 6ava (( unui server de aplicatii urmresc asigurarea tuturor serviciilor
care ar putea fi cerute de aplicatii! c*iar dac multe aplicatii nu folosesc aceste servicii# :e aici si
comple'itatea sporit a unor astfel de servere! care se reflect si n comple'itatea procesului de
elaborare a unor aplicatii 6ava ((#
%ai nou! e'ist servere 6(( modulare! care au cteva niveluri de comple'itate n functie de
cerintele aplicatiilor (3pac*e <eronimo! <lassfis* s#a#)! dar si containere lig*tweig*t cum este
4pring &ramewor;! care impun mai putine conditii aplicatiilor Web devoltate n 6ava#
4pring ofer mai multe te*nologii 6ava pentru devoltare de aplicatii Web! ntre care se poate
opta! iar unele erau mai simple dect solutiile 6(( (cel putin ntr-o anumit etap a platformei 6(()
$rodusele framewor; pentru devoltare de aplicatii Web n 6ava pot s fie sau nu compatibile
cu specificatiile 6ava ((# :intre cele compatibile 6(( mai folosite sunt2 4pring! 4eam (6Boss)!
s#a# 3plicatiile devoltate cu 4pring pot fi e'ploatate pe un server 6(( dar si pe un server mai
modest (,omcat sau 6ett>)#
/nul din obiectivele initiale si ambitioase ale platformei 6(( era acela de a permite scalarea
aplicatiilor Web pentru mentinerea unor performante bune pe msur ce numrul clientilor si
facilittile oferite cresteau (de unde si atributul multi-tier pentru aplicatii 6(()# %ai nou! pentru
aplicatii Web scalabile se ofer platforme baate pe un nor de calculatoare ()loud )omputing)
cum este <oogle 3pplication (ngine si altele#
O alternativ la 6(( dar si la utiliarea limba-ului 6ava o constituie platforma #9(, de la
%icrosoft! considerat ca principala optiune fat de solutiile 6ava# ('ist si o variant 4pring
pentru #9(,#
5

You might also like