Arhitecturile Aplicaţiilor Web

  • Upload
    narbona

  • View
    263

  • Download
    0

Embed Size (px)

Citation preview

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    1/59

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    2/59

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    3/59

    i"ura .&. ? arhitectur pe 7 straturi pentru aplicaiile web

    /%pro2-uri de le"turi0 sunt de cel puin dou tipuri&-sistemele de tipul '@-urilor persistente $P'@s- Persistent '@s% utilizeaz

    componente de tip pro2 - server intermediar pentru a trimite cererile de '@-uri ale clientuluictre serverul real

    - utilizate pentru a adapta i formata le"turile i coninutul pentru utilizatori

    B pro2-uri de istoric - pot fi utilizate pentru a administra istoricul pa"inilor vizitate deutilizator - 5erverul =oomeran" de pe oubleClicD

    Proxy&uri1niial pro2-urile erau folosite pentru a salva limea de band, din acest motiv fiind numite ipro2-uri de cachin"E6F& Pro2-urile sunt capabile s ndeplineasc i alte funcii0- pro2-uri de le"turi0 sunt de cel puin dou tipuri& )n primul r!nd, sistemele de tipul '@-urilor persistente $P'@s- Persistent '@sE/F% utilizeaz componente de tip pro2& :ai eact,un pro2 este utilizat ca un server intermediar pentru a trimite cererile de '@-uri ale clientuluictre serverul real& ac numele sau locaia resursei solicitate se schimb, atunci adresa sa$'@% trebuie schimbat doar intern $clientul nu trebuie s tie acest lucru%& ? astfel deschimbare necesit un tabel de mapare ntre '@-ul solicitat i cel *real+, acesta fiind "estionatde ctre pro2& )n al doilea r!nd, pro2-urile sunt utilizate pentru a adapta i formata le"turile i

    Client

    irewall

    Pro2

    5erver web

    5erver de aplicaii

    Acces date Colaborare

    o"istica afacerii

    7ivelul afacere

    lu de date Personalizare

    etc& Conectori

    =acDend

    Aplicaii demotenire

    5isteminformaional al

    companiei

    7ivelul prezentare

    5erver de baze de date =/= 7ivelul datelor

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    4/59

    coninutul pentru utilizatori& ? metod folosit n acest concept este inserarea dinamic ale"turilor care se potrivesc intereselor unui utilizator, prin aceasta pa"inile 34: fiindanalizate de pro2 i modificate pentru a se potrivi profilului utilizatorului& 'tilizatorul va fiinformat la sf!ritul documentului n privina schimbrii resursei transmise&- pro2-uri de istoric0 multe aplicaii web ncearc s-i adapteze funcionalitile cerinelorutilizatorilor& Problema care apare este c 344P-ul este un protocol simplu, care nu oferinformaii despre istoricul navi"rii unui utilizator pe mai multe situri& e eemplu, dac un

    utilizator planific o vacan i rezerv un zbor, un hotel i o main de nchiriat pe internet,atunci v!nztorul de bilet de avion nu tie c utilizatorul a rezervat o camer la hotel i o mainde nchiriat& ac compania aerian ar cunoate aceste informaii, atunci camera de hotel imaina rezervate ar putea fi anulate dac utilizatorul contramandeaz zborul& ? problemsimilar apare i n domeniul marDetin"ului direct, n care, cu c!t se cunosc mai multe detaliidespre interesele utilizatorului, cu at!t publicitatea va fi mai orientat pe consumator& Pro2-urilepot fi utilizate pentru a administra istoricul pa"inilor vizitate de utilizator, prin atribuirea unui 1unic pentru un utilizator i stocarea acestui 1 utiliz!nd tehnolo"ia cooDie& )n aceast situaie,dac utilizatorul viziteaz situl web al unei alte companii conectate la acelai pro2, atunciinformaiile despre acest utilizator pot fi etrase, permi!nd identificarea unui utilizator unic&5erverul =oomeran" de pe oubleClicD $http0www&doubleclicD&com% utilizeaz acest concept

    pentru marDetin"ul direct

    Arhitecturi 'e inte(rare

    5istemele interne sau eterne 8 aplicaiile i bazele de date eistente, interfeele ctrepartenerii de afaceri eterni - pot fi inte"rate n aplicaiile web pe trei nivele0 nivelulprezentare, nivelul lo"ic al aplicaiei i nivelul coninutului

    Arhitecturile de inte"rare - se adreseaz aspectelor de inte"rare la nivelul coninut i nivelullo"ic al aplicaiei i sunt cunoscute sub numele de arhitecturi GA1 $Gnterprise Application1nte"ration%&

    Arhitecturi 'e inte(rare5istemele interne sau eterne 8 aplicaiile i bazele de date eistente, interfeele ctrepartenerii de afaceri eterni - pot fi inte"rate n aplicaiile web pe trei nivele0 nivelulprezentare, nivelul lo"ic al aplicaiei i nivelul coninutului& Arhitecturile de inte"rare seadreseaz aspectelor de inte"rare la nivelul coninut i nivelul lo"ic al aplicaiei i suntcunoscute sub numele de arhitecturi GA1 $Gnterprise Application 1nte"ration%& )n esen, GA1se focalizeaz pe inte"rarea sistemelor motenite& ? alternativ la GA1 sunt serviciile web,care ofer inte"rarea serviciilor $lo"ica aplicaiei i coninutul%& a nivelul prezentare, un setde sisteme diferite este inte"rat tipic prin utilizarea arhitecturilor portal&Portalurile reprezint cele mai recente dezvoltri ale aplicaiilor web multi-stratificate& Cu

    a;utorul portalurilor coninutul, care este distribuit pe mai multe noduri ale diverilorfurnizori de servicii, va fi disponibil dintr-un sin"ur nod, oferind un aspect consistent& )nfi"ura .&H este schematizat arhitectura de baz a unui server portal& 5erverele portal sebazeaz peportlet-uri, care aran;eaz coninutul i lo"ica aplicaiei ntr-o structura denavi"are i un la2out adecvate portalului& 'n eemplu de server portal este proiectul open-source Iet5peed

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    5/59

    i"ura .&H Gemplu de arhitectur a uneiaplicaii web orientat pe portal

    Arhitecturi )n funcie 'e aspectul 'atelor

    - date structurate de tipul celor aflate n bazele de date- documente de tipul celor utilizate n sistemele de mana"ement al documentelor- date multimedia de tipul celor incluse pe serverele media

    Arhitecturi aate pe baze de date

    - accesate fie direct prin intermediul etensiilor serverului web $n cazul arhitecturilor pedou straturi% fie prin serverele de aplicaii $n cazul arhitecturilor pe 7 straturi%Arhitecturi pentru mana"ementul documentelor web- ofer posibilitatea inte"rrii documentelor din surse diferite, reprezent!nd un mecanismpentru inte"rarea acestora n aplicaiile web

    Arhitecturi )n funcie 'e aspectul 'ateloratele pot fi "rupate n una din urmtoarele cate"orii arhitecturale0 $6% date structurate, detipul celor aflate n bazele de date $/% documente de tipul celor utilizate n sistemele demana"ement al documentelor $J% date multimedia de tipul celor incluse pe serverele media&Aplicaiile web nu sunt limitate la una din aceste cate"orii de date, ele inte"reaz documente,

    media i baze de date&Arhitecturi aate pe baze de date5unt disponibile numeroase utilitare i abordri pentru inte"rarea bazelor de date naplicaiile web& Aceste baze de date sunt accesate fie direct prin intermediul etensiilorserverului web $n cazul arhitecturilor pe dou straturi%, fie prin serverele de aplicaii $ncazul arhitecturilor pe 7 straturi%& Pentru accesul la bazele de date relaionale sunt disponibileinterfee $AP1s% pentru diferite platforme $Iava atabase Connectivit2 -I=C pentru aplicaiibazate pe Iava sau ?pen atabase Connectivit2 -?=C pentru tehnolo"ii :icrosoft%&Arhitecturi pentru mana"ementul documentelor web

    5erver web

    Client A"re"are

    Portlet 6 Portlet n

    5erviciu web6

    5erviciu webn

    Coninut Coninut

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    6/59

    Pe l!n" datele structurate din bazele de date i cele multimedia de pe serverele media,coninutul aplicaiilor web este frecvent procesat sub forma documentelor& Arhitecturile demana"ement al coninutului ofer posibilitatea inte"rrii documentelor din surse diferite,reprezent!nd un mecanism pentru inte"rarea acestor coninuturi n aplicaiile web&

    i"ura .&6K Arhitectur de mana"ement a coninutului pentru aplicaiile web

    i"ura .&6K reprezint componentele unei arhitecturi de mana"ement al coninutului& 'n serverweb recepioneaz o cerere de la client i o trimite mai departe unui server de furnizare aconinutului $responsabil pentru distribuirea i eventual cachin"-ul coninutului%& ac coninutulsolicitat nu este n cache atunci cererea este trimis mai departe ctre serverul de mana"ement alconinutului& Coninutul poate fi disponibil direct pe acel server $n form static ca un documentsau ntr-o baz de date% sau poate fi accesat etern& )n funcie de tipul de inte"rare coninutuletern poate fi etras fie prin accesarea bazelor de date eterne $direct sau prin utilizarea unuiserviciu de a"re"are% fie dintr-un serviciu de mediatizare& 5pre deosebire de accesarea unei bazede date, serviciile de mediatizare pot avea i funcionaliti suplimentare $eemplu facturareaautomat a drepturilor de licen%&

    Arhitecturi pentru 'atele multime'iaCapacitatea de a manipula un volum mare de date are un rol decisiv n proiectarea sistemelorcare utilizeaz coninut multimedia& ei volumul de date nu este important n aplicaiile web

    Client

    5istem de furnizare aconinutului

    5erver web

    5erver de furnizare aconinutului

    5erviciu sindicat

    Partener

    Gditor5erviciuispatch

    ocumente statice

    =aze de datepentru coninut

    5erviciu dea"re"are =aze de dateeterne

    5erver de mana"ement al coninutului

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    7/59

    aate pe baze de date, acesta influeneaz considerabil arhitectura i proiectarea aplicaiilor webmultimedia&atele multimedia 8 audio i video- pot fi transmise prin intermediul protocoalelor internetstandard $344P sau 4P%, asemenea altor date folosite n aplicaiile web& Aceast abordare esteutilizat de un numr mare de aplicaii web, deoarece prezint avanta;ul c nu necesitcomponente suplimentare pe server dezavanta;ul este c descrcrile de fiiere multimedia suntfoarte lente&

    5e pot utiliza tehnolo"ii streaming pentru a minimiza perioada de ateptare pentru redareaconinutului multimedia prinstreamingn acest contet se nele"e c un client poate reda unfiier audio isau video la c!teva secunde dup ce ncepe recepionarea acestuia de pe server&Aceast tehnic evit descrcarea ntre"ului fiier nainte de a ncepe redarea lui& Coninutultrebuie transmis n timp real, ceea ce necesit o lime de band corespunztoare $"arantarealimii de band a transmisiei este numit calitatea serviciului%&)n "eneral sunt folosite dou protocoale pentru streamin"-ul de coninut multimedia0 un protocolpreia transmisia datelor multimedia la nivelul reea, iar cellalt controleaz fluul prezentrii$eemplu pornirea i oprirea unui clip video% i transmisia meta-datelor& 'n eemplu de protocolde reea este @4P $@eal 4ime Protocol% care coopereaz cu un protocol de control numit @45P

    $@eal 4ime 5treamin" Protocol%&Gist dou domenii distincte de aplicaii pentru streamin"-ul datelor multimedia0 primul facedisponibil la cerere coninutul eistent $e& video la cerere%, iar al doilea distribuie live coninutulunui numr mare de utilizatori $e& web castin"%& iecare din aceste dou cazuri de utilizareformuleaz cereri total diferite la nivelul reelei i arhitecturilor hardware i software& eifiecare utilizator stabilete propria sa coneiune la server ntr-un scenariu la cerere $vezi fi"ura.&6/% cauz!nd probleme ma;ore de lime de band i ncrcare pe server, broadcastin"-ulrealizeaz cereri foarte mari la nivelul reelei& )n mod ideal, un server utilizat pentru broadcastin"ar trebui s administreze un sin"ur stream media, care este difuzat simultan ctre toi utilizatoriide ctre infrastructura reelei $de eemplu de router-e%, ca n fi"ura .&6J& eoarece multicastin"-ul nu este suportat n "eneral n 1nternet, serverul trebuie s foloseasc coneiuni punct-la-punct

    pentru a *simula+ funcionalitatea broadcast&Gist dou domenii distincte de aplicaii pentru streamin"-ul datelor multimedia0 primul facedisponibil la cerere coninutul eistent $e& video la cerere%, iar al doilea distribuie live coninutulunui numr mare de utilizatori $e& web castin"%& iecare din aceste dou cazuri de utilizareformuleaz cereri total diferite la nivelul reelei i arhitecturilor hardware i software& eifiecare utilizator stabilete propria sa coneiune la server ntr-un scenariu la cerere $vezi fi"ura.&6/% cauz!nd probleme ma;ore de lime de band i ncrcare pe server, broadcastin"-ulrealizeaz cereri foarte mari la nivelul reelei& )n mod ideal, un server utilizat pentru broadcastin"ar trebui s administreze un sin"ur stream media, care este difuzat simultan ctre toi utilizatoriide ctre infrastructura reelei $de eemplu de router-e%, ca n fi"ura .&6J& eoarece multicastin"-ul nu este suportat n "eneral n 1nternet, serverul trebuie s foloseasc coneiuni punct-la-punctpentru a *simula+ funcionalitatea broadcast&

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    8/59

    Tehnolo(ii web client&si'eCSS

    CSS

    Cascadin" 5t2le 5heets - etichete folosite pentru formatarea pa"inilor web $formatare tet,bacD"round sau aran;are in pa"ina% formatarea este introdusa intr-un sin"ur loc pentru tot documentul editarea rapida a etichetelor datorita introducerii intr-un sin"ur loc a etichetelor se obtine o micsorare a codului pa"inii,

    implicit incarcarea mai rapida a acesteiaSintaxa CSS nivelul 6 - proprietatile etichetelor din documentul 34:, tip inline nivelul / - informatia introdusa in blocul 3GA, tip embedded nivelul J - comenzile aflate in pa"ini separate, tip eterne

    5intaa C55 nivelul 6 - proprietatile etichetelor din documentul 34:, tip inline

    ...textul sau obiectul asupra caruia este aplicat codul CSS...

    ext rosu

    nivelul / - informatia introdusa in blocul 3GA, tip embedded

    nivelul J - comenzile aflate in pa"ini separate, tip eterne

    sau(import url) Calea catre isierul.css *

    5intaa C55-ului este compusa doar din J parti0selector + proprietate: ,aloare

    / cesta este un comentariu /

    body +

    bac&ground: #eeeeee ont-amily: "rebuchet 0S"1 2erdana1 rial1 seri

    Cea mai mare importanta $suprascrie orice alt parametru% o are sintaa de nivelul 6 iar ceamai mica importanta o are cea de nivelul J& olosirea unui fisier etern sau nivel J care sacontina comenzi C55 este foarte practic deoarece poate fi utilizat in mai multe situatii $mai multefisiere 34: pot folosi acelasi fisier etern C55% eliminand timpul necesar introducerii coduluicorespunzator in fiecare pa"ina si totodata editarea lor intr-un sin"ur loc pentru mai multe fisiere&Gtensia acestor fisiere este &css&

    5electorul este elementul $L%34: pe care doresti sa il stilizezi& Proprietatea este chiar titlul$numele% proprietatii respective, iar valoarea reprezinta stilul pe care il aplici proprietatii&

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    9/59

    div, span si etichete C55

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    10/59

    Glementul id se aplica unui st2le de format o sin"ura data sau la o sin"ura eticheta 34:,plasandu-se un nume acelui st2le& Acest element necesita eistenta comezilor C55 in zona3GA sau intr-un fisier etern&Glementele id si class

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    11/59

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    12/59

    4et ne"ru

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    13/59

    paddin" stabileste distanta dintre obiect si chenar simultan pentru toate laturile& istantele pot fistabilite si individual folosind paddin"-top, paddin"-bottom, paddin"-left sau paddin"-ri"ht&

    mar"in stabileste distanta dintre chenar si celelalte obiecte din pa"ina simultan pentru toatelaturile& istantele pot fi stabilite si individual folosind mar"in-top, mar"in-bottom, mar"in-leftsau mar"in-ri"ht&

    (alorile pentru paddin" si mar"in pot fi eprimate in0 p $pieli%, in $inci%, pt $puncte% sau cm$centimetri%&7etscape si 1nternet Gplorer afiseaza diferit chenarele& Comanda C55 pentru definireachenarului este border avand proprietatile asociate width, st2le si color& Pentru a fi si"uri caaceste proprietati functioneaza atat in 1nternet Gplorer cat si in 7etscape trebuie sa declarampentru border cel putin width si st2le&

    border-width stabileste "rosimea chenarului si poate fi eprimata in p $pieli%, pt $puncte%, cm$centimetri% sau in $inci%&

    border-st2le stabileste tipul chenarului si poate fi dotted, dashed, solid, double, "roove, rid"e,

    inset si outset&border-color stabileste culoarea chenarului si poate fi eprimata prin valoare heazecimala sau incuvinte

    Pozitionarea permite asezarea unui obiect intr-un anume loc folosind coordonatele& 4otodataobiectele pot fi pozitionate pe straturi diferite, unul deasupra celuilalt&

    Atat pozitionarea absoluta $A5?'4G% cat si cea relativa $@GA41(G% folosesc proprietatileG4 si 4?P eprimate in p $pieli%, in $inci%, pt $puncte%, ems, procenta;e sau cm $centimetri%&

    Pozitionare absoluta plaseaza obiectul in pa"ina eact in locatia data de left si top& Astfel poate ficreat un element liber fata de celelalte din pa"ina& ?biectul poate fi orice, de eemplu tet sauima"ine&Pozitionare relativa este pozitia normala pe care o ocupa un element, dupa elementele anterioaresi inaintea celor urmatoare& Poate fi deplasat fata de aceasta pozitie folosind proprietatile left sitop&

    Glementele sunt pozitionate pe ecran pe o suprafata bidimensionala dar pot fi asezate si unuldeasupra celuilalt, intr-o stiva utilizand un indicativ $inde-z% incepand cu K, urmatorul 6 si totasa in continuare& Glementul cu indeul cel mai mare este asezat deasupra&

    HTM * 'efinitie

    34: - descendent al limba;ului 5>:, folosit pentru dezvoltarea de documente hipertetaccesibile prin 1nternet M o prezentare succinta a celor mai utilizate ta"-uri

    'n document poate fi identificat prin urmatoarele caracteristici fundamentale0 structura,continutsi forma& aca forma de vizualizare este dependenta de pro"ramul de afisare ainformatiilor continute de acel document, structura si continutul sau trebuie sa aiba un format"eneral de reprezentare, pentru a asi"ura portabilitatea&

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    14/59

    HTM * Format

    34:, limba; care conformindu-se principiilor 5>:, accepta un numar de elemente $ta"-uri%pentru formatarea documentului&

    5imilar cu 5>:, acestea se incadreaza intre < si M, putind eista ta"-uri de inceput si de sfirsit&isierele 34: sint fisiere A5C11 obisnuite avind etensia &html $sau &htm% si sint divizate indoua parti0 antetul$hea'% si corpul$bo'y%&

    o pa"ina 9eb marcata cu ta"-uri 34: are forma "enerala 0

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    15/59

    Cele trei variante de 4-uri stabilite de Consortiul 9eb0stricta$fara a contine elemente si atribute considerate depasite%tran%itionala$putind apare si elemente sau atribute depasite%cu cadre$suport pentru cadre%

    antetul - poate contine titlul documentului $al pa"inii 9eb% specificat de ta"-ul

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    16/59

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    17/59

    - :rimea tetului ncon;urat de elementul 3eadin" variaz de la foarte mare, in +H,&

    Titluri! Para(rafe! 9n nou r:n'! inie ori;ontala?= Para(raf +p, === +#p,

    & Para"rafele permit adau"area de tet in document astfel incat lun"imea de afisare a tetului vafi a;ustata de marimea deschiderii browser-ului si fiecare para"raf va incepe un nou r!nd&- istanta dintre doua para"rafe succesive este mare deoarece browser-ul le afiseaza cu un r!nd"ol intre ele&

    Titluri! Para(rafe! 9n nou r:n'! inie ori;ontala@= 9n nou ran' +br,

    - 4a"-ul 7 N aliniaza linia $eft, Center, @i"ht%, $ 5tandard centru% - C??@ N seteaza culoarea liniei

    Formatul textului

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    18/59

    - 'nderline $subliniat% +u, === +#u,Alte elemente folosite pentru formatul tetului sunt0

    - +pre,Performated +#pre,- 4etul incadrat de elementul P@G este prezentat intr-unsin"ur font, oricare ar fi atributul ACG& 5patiile mai lun"i si liniile necesare suntprezentate aa cum sunt scrise in 7otePad, ne mai fiind nevoie de alte elementeadiionale, cum ar fi

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    19/59

    Alte elemente pentru asezarea tetului sunt0 ta"-ul

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    20/59

    Crearea 'e lin8&uri6& inD-uri eterne - $sunt cele mai utilizate%, care sunt si ele de doua feluri0a% inD-uri eterne c!tre pa"ini ale aceluiasi site& Pentru acestea '@-ul poate sa nu includa sidomeniul site-ului, cum ar fi Ohttp0www&nume&comO, ci se poate folosi doar cale in directoare,

    numele si etensia documentului la care se face saltul& e eemplu0- daca documentul tinta se afla in acelasi director cu fisierul in care se scrie linD-ul, codulva fi scris asa0 +a hrefInumeJfisier=extensieI titleITitlu lin8I,1ume+#a,

    - daca documentul tinta se afla intr-un director anterior celui in care se afla fisierul in carese scrie linD-ul, codul va fi scris asa0 +a hrefI==#numeJfisier=extensieI titleITitlu lin8I,1ume+#a,

    - daca documentul tinta se afla intr-un director din cel care se afla fisierul in care se scrielinD-ul, codul va fi scris asa0 +a hrefI'irector#numeJfisier=extensieI titleITitlu lin8I,1ume+#a,

    b% inD-uri eterne c!tre alte site-uri& Aici, adresa '@ din linD trebuie sa contina si domeniul$numele site-ului% pa"inii tinta, codul 34: se va scrie, de eemplu, asa0+a hrefIhttp##numeJsite#pa(inaI titleITitlu lin8I,1ume+#a,

    Crearea 'e lin8&uri/& inD-uri interne - sunt linD-uri c!tre alte tete din aceeasi pa"ina& 5e folosesc c!nd pa"inarespectiva este lun"a si e nevoie sa se sara spre anumite tete din pa"ina& - Pentru crearea de linD-uri interne trebuie urmati urmatorii pasi06& 5e scrie urmatorul cod la tetul tinta, care marcheaza locatia unde se va face saltul si se afla inaceeasi pa"ina cu linDul

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    21/59

    Tabele?= Atributele Tabelului

    - b(color N defineste culoarea tabelului- wi'th N specifica lun"imea tabelului $1n pieli sau procente din lun"imea pa"inii%

    - bor'er N "rosimea liniei $in pieli% ce defineste tabelul si ncon;oara fiecare celula- cellspacin( N spatiu dintre celule $in pieli%- cellpa''in( N spatiu dintre linia celulei si continutul acesteia $in pieli%- ali(n N controleaz poziionarea tabelului in pa"ina, cu urmtoarele atribute 0 left!ri(ht!sau center- bac8(roun' N controleaza culoarea de fond a tabelului, care poate fi si o ima"ine- bor'ercolor N culoarea liniei din ;urul tabelului- bor'ercolorli(ht N culoarea luminoasa folosita de doua linii din cele patru carencon;oara tabelul- bor'ercolor'ar8 N culoarea ntunecata folosita de doua linii din cele patru carencon;oara tabelul

    TabeleJ& Atributele specifice elementelor pentru titlu si coloane

    - colspan N specifica cat de multe coloane ale tabelului va inlocui aceasta celula- rowspan N specifica cat de multe randuri ale tabelului va inlocui aceasta celula- ali"n N alinierea datelor celulei pe orizontala $left, ri"ht sau center%- vali"n N alinierea datelor celulei pe verticala $top, middle sau bottom%- bacD"round N controleaza culoarea de fond a celulei, care poate fi si o ima"ine- b"color N defineste culoarea celulei $dar nu imagine%- width N specifica lun"imea celulei $1n pieli sau procente din lun"imea pa"inii%- hei"ht N specifica inaltimeacelulei $1n pieli sau procente din inaltimea pa"inii%

    A'au(area ca'relor iframePentru crearea unui cadru cu O

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    22/59

    action- aici se specifica adresa '@ a unui script de pe server $de obicei P3P sau C>1%,pro"ram care trebuie sa accepte datele din ?@: , le proceseaza si trimite napoiraspunsul la browser&metho'- aici putem scrie (et, sau post& Aceste valori specifica ce metoda 344P va fifolosita pentru a trimite continutul formularului la server&enctype- determina mecanismul folosit pentru a codifica continutul transmis dinformular&

    name- Gste numele formularului, folosit de scripturi (= $(isula =asic% sau Iava5ript&tar(et- Gste tinta cadrului $frame% unde pa"ina va fi vizualizata, dupa transmitereadatelor din form&

    ?= -lementele 'e formularrestul elementelor de formular care sunt folosite pentru a crea diferite campuri, casete,butoane in pa"ina web, necesare pentru a aduna datele care vor fi trimise la aplicatie peserver&Cele mai multe se creaza prin atributul typeal elementului +input, === +#input,

    Proprietatile elementului +input, === +#input,type- tipul de ?@: folosit $caseta tet, buton si altele &&&%name- numele elementului respectiv de formular, folosit de scripturile la care sunt

    trimise datelevalue- datele $valoarea% asociate acelui element de formular si care sunt trimise,impreuna cu numele, catre scripturi $P3P, C>1, Iava5cript%si;e- specifica numarul de caractere care dau lun"imea zonei de tetmaxlen(th- numarul maim de caractere acceptatechec8e'- specifica daca un buton sau alta forma va fi initial selectata $bifata%&rea'only- folosit pentru campuri de tip tet, impedica modificarea valorii $tetului% dinacel camp'isable'- impedica folosirea campului care are aceasta proprietate& (a fi vizibil dar nuva putea fi folosit, datele acestuia nu vor fi trimise din formular la vreun script&

    Crearea formularelorCasete 'e text- este folosit pentru a crea in pa"ina un camp pentru tet $cu o sin"ura linie%&- Codul este +input typeItextI,+#input,- Acest element foloseste urmatoarele atribute0 type- tet name- numele casutei de tet, folosit de scriptul la care sunt trimise datele value- va reprezenta propriul contet ca valoare aleasa& 'n sir de tet care apare

    in casuta de tet si;e- specifica numarul de caractere care dau lun"imea casutei de tet $default

    /K%

    maxlen(th- numarul maim de caractere acceptate sa fie adau"ate de utilizator

    Camp textarea- OtextareaO este un element ce creaza un camp in pa"ina, in care utilizatorul poate adau"amai multe linii de tet&- Codul este +textareaE,+#textarea,1n browser va apare0- Acest element foloseste urmatoarele atribute0 name- numele campului de tet, folosit de scriptul la care sunt trimise datele rows- numarul de linii a zonei de tet cols- numarul de coloane a zonei de tet

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    23/59

    wrap- standard este ?& ar poate avea valorile 0 O(1@4'AO sauOP3[51CAO, astfel ca tetul wraps in browser sa fie prezentat eact cum estescris de utilizator&

    Crearea formularelorCasete pentru parole

    - Opass4ordO este folosit pentru a permite adau"area de parole& Caracterele adau"ate in

    aceasta caseta nu sunt afisate cu valoarea lor reala, pentru a nu se vedea parola scrisa&- Codul este +input typeIpasswor'I,+#input,- Acest element foloseste urmatoarele atribute0 type- password name- numele casutei pentru parole, folosit de scriptul la care sunt trimise datele value- de obicei nu este adau"at& aca este scris, va reprezenta parola default din

    acea caseta& si;e- specifica numarul de caractere care dau lun"imea casutei pt& adau"area

    parolei $default /K% maxlen(th- numarul maim de caractere acceptate sa fie adau"ate de utilizator

    Casete 'e formular ascunse- OhiddenO este folosit pentru a adau"a in formular date care sa nu fie vizibile in browsersi care sunt trimise la scripturi impreuna cu celelalte date din formular&- Codul este +input typeIhi''enI,+#input,- Acest element foloseste urmatoarele atribute0 type- hidden name- numele casutei ascunse, folosit de scriptul la care sunt trimise datele value- valoarea care se doreste sa fie transmisa prin acea caseta ascunsa&

    Crearea formularelorChec8 box

    - este folosit pentru adau"area mai multor optiuni pe care utilizatorul le poate ale"e$oricate din ele% prin bifarea lor- Codul este +input typeIchec8boxI,+#input,- Acest element foloseste urmatoarele atribute0 type- checDbo name- numele casutei checDbo, folosit de scriptul la care sunt trimise datele value- valoarea casetei checDbo respective, care poate fi selectata $bifata% chec8e'- daca este adau"at acest atribut, caseta checDbo respectiva este

    selectata $bifata%&

    $a'io button- este folosit pentru adau"area mai multor optiuni dintre care utilizatorul poate ale"e unasin"ura- Codul este +input typeIra'ioI,+#input,- Acest element foloseste urmatoarele atribute0 type- radio name- numele casutei radio, folosit de scriptul la care sunt trimise datele value- valoarea casetei radio respective, care poate fi selectata $bifata% chec8e'- daca este adau"at acest atribut, caseta radio respectiva este selectata

    $bifata%&

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    24/59

    Crearea formularelor

    Casete pentru uploa'- Oile uploadO este folosit pentru a permite utilizatorului sa incarce alte documente peserverul web& Aceasta caseta este insotita de un buton O=rowseO prin care se ale"edocumentul care va fi transferat pe server& $upload-ul se face tot prin intermediul unuiscript $P3P, C>1%- Codul este +input typeIfileI,+#input,- Acest element foloseste urmatoarele atribute0 type- file name- numele casutei upload, folosit de scriptul la care sunt trimise datele si;e- specifica numarul de caractere care dau lun"imea casutei upload&

    0uton simplu- acesta este folosit cu Iava5cript sau (=5cript pentru a efectua o actiune c!nd esteapasat- Codul este +input typeIbuttonI valueI0utonI,+#input,- Acest element foloseste urmatoarele atribute0 type- button name- numele butonului, necesar pentru a fi folosit de script value- tetul care apare pe buton&

    Crearea formularelor0uton Submit

    - acest element face ca prin apasarea lui browser-ul sa trimita numele si valoarea tuturorcelorlalte elemente din formular la scriptul de pe server- Codul este +input typeIsubmitI valueITrimiteI,+#input,- Acest element foloseste urmatoarele atribute0 type- submit name- numele butonului, poate fi folosit de scriptul la care se trimit datele value- tetul care apare pe buton&

    /ma(ine pentru buton Submit- permite aplicarea unei ima"ini in locul butonului 5ubmit standard- Codul este +input typeIima(eI srcIlocatieJima(ineI,+#input,- Acest element foloseste urmatoarele atribute0 type- ima"e name- numele butonului, poate fi folosit de scriptul la care se trimit datele src- locatia ima"inii folosite&

    0uton $eset- permite utilizatorului sa stear"a toate datele pe care le-a scris in celelalte elemente dinformular- Codul este +input typeIresetI valueISter(eI,+#input,1n browser va apare0- Acest element foloseste urmatoarele atribute0 type- reset

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    25/59

    value- tetul care apare pe buton&Crearea formularelor-lemente select

    - pentru acest element se foloseste ta"-ul O+select,+#select,O, care formeaza o lista, unmeniu, cu date ce pot fi selectate&- Atributete elementului O

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    26/59

    Glemente fundamentale Marcarea - i are ori"inea n industria editorial i reprezint instruciuni

    tipo"rafice pentru formatarea documentelor Hipertext i hiperme'ia

    or"anizare a interconeiunilor unitilor de informaii sin"ulare modalitate de etindere a principiului hipertet ctre obiectele multimedia

    arbitrare

    Glemente fundamentale)n "eneral, toate paradi"mele de pro"ramare, aspectele de distribuire, tehnolo"iile de authorin",etc&, pot fi utilizate drept baz pentru implementarea unei aplicaii web& Aceasta reprezint unadin problemele care au condus la dezvoltarea haotic a aplicaiilor web& Aceste dezvoltri rezultn principal din abordrile ad-hoc sau din schimbrile rapide ale tehnolo"iei& in acest motiv nevom focaliza pe ori"ini0 marcare $marDup%, ce formeaz baza pentru 34: i L: i hipertet$h2pertet%, ce descrie conceptul de baz al 999&Marcarea

    Conceptul de marcare i are ori"inea n industria editorial i reprezint instruciunitipo"rafice pentru formatarea documentelor& Aceste instruciuni sunt specificate n interiorul unui

    document sub forma caracterelor adiionale& e eemplu, putem scrie ]5alut] pentru a obineieirea Salutsau 5alut pentru a obine ieirea Salut& :arcarea semantic ne permite scrierea decomentarii n cadrul tetului fr a le afia n document& 15? definete urmtoarele clase demarcare0

    6& marcare0 acesta este tetul introdus n document pentru a adu"a informaii despremodul n care caracterele i coninutul trebuie reprezentate n document

    /& marcare descriptiv0 aceast marcare descrie structura i alte atribute ale documentului,indiferent de modul de procesare al documentului pentru reprezentare $e0 comentarii%

    J& instruciuni de procesare0 aceast marcare const n date specifice sistemuluicontroleaz modul n care este procesat un document&

    ezvoltarea 5>: $5tandard >eneralized :arDup an"ua"e% a fost promovat de

    companiile editoriale din 5'A& )n 5>:,autorii utilizeaz etichete $

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    27/59

    Paradi"ma clientserver care st la baza aplicaiilor web formeaz coloana vertebral dintre unutilizator $client sau a"ent utilizator% i aplicaia real $server%& Acest model de comunicare sebazeaz n principal pe o arhitectur pe dou straturi& ?ricum, paii de procesare de pe un serverweb pot necesita inte"rarea altor sisteme $e0 baze de date, servere de aplicaii%& Arhitecturile pe7-straturi astfel formate sunt n principal bazate tot pe modelul clientserver& e eemplu, unbrowser web trimite o cerere i aceast cerere determin un rspuns de la un server web, n timp

    ce protocoalele $n special 344P% au un rol esenial& Aceste protocoale controleaz modul n careun client ar trebui s fac o cerere, ce rspunsuri i poate returna serverul i cum ar trebui srealizeze acest lucru&SMTP * Simple Mail Transfer Protocol 5:4P $5imple :ail 4ransfer Protocol% $Postel, 6HY/%, combinat cu P?PJ $Post ?fficeProtocol% sau 1:AP $1nternet :essa"e Access Protocol% $Crispin, /KKJ% permite trimiterea irecepionarea e-mail-urilor& )n plus, 5:4P este din ce n ce mai mult utilizat ca un protocol detransport pentru schimbul de mesa;e asincrone bazate pe 5?AP

    $TSP & $eal Time Streamin( Protocol- distribuirea de date multimedia n timp real - streaming - permite schimbarea

    manual a perioadei de timp+ audio-vizualeHTTP & HyperText Transfer Protocol- cel mai popular protocol de transport pentru coninutul 9eb- construit pe stiva 4CP1P- resursele sunt adresate prin utilizarea conceptului de '@1- '@-urile pot fi utilizate n coneiune cu sistemul numelor de domenii- un '@1 - descrie de obicei trei lucruri- )n plus, '@1-rile definesc un separator al intero"rii $*+%, care permite 344P-ului s

    transmit parametriivezi si @C 6VJK, @C 6H.U

    $TSP & $eal Time Streamin( Protocol@45P reprezint un standard publicat de 1G4 $1nternet Gn"ineerin" 4asD orce% i a fostproiectat pentru a suporta distribuirea de date multimedia n timp real& 5pre deosebire de 344P,@45P permite transmiterea resurselor ctre client ntr-un anumit timp n locul transmiteriiacestora n ntre"ime $imediat%& Aceast form de transmitere este cunoscut sub denumirea destreaming& 5treamin"-ul permite schimbarea manual a perioadei de timp+ audio-vizuale prinsolicitarea stream-ului la un anumit moment, astfel oferindu-ne posibilitatea de a controla rulareacomponentei media ntr-un mod continuu& e eemplu, putem implementa funcii similare celorde pe dispozitivele hi-fi, cum ar fi pauza+, nainte+ sau napoi+ sau repoziiona rulareacomponentei media ntr-un moment viitor sau trecut&HTTP & HyperText Transfer Protocol

    344P a devenit un protocol foarte important n ultimii ani& Proliferarea pe scar lar" astandardelor web i posibilitatea de etindere a web-ului au permis 344P-ului s devin cel maipopular protocol de transport pentru coninutul 9eb& 344P este un protocol bazat pe tet, carecontroleaz modul n care sunt accesate resursele $e0 documentele 34: sau ima"inile%& 344Peste construit pe stiva 4CP1P, unde serviciul este n mod normal disponibil pe portul YK&@esursele sunt adresate prin utilizarea conceptului de identificator uniform de resurse $'niform@esource 1dentifier, '@1%& '@1-urile nu sunt le"ate de un anumit protocol cum este 344P elereprezint un mecanism de adresare uniform, care este utilizat de asemenea n 344P&

    'n '@1 aloc identificatori unici resurselor, indiferent de tipul acestora $documente34:, ima"ini%& Cel mai reprezentativ '@1 este '@-ul $'niform @esource ocator% - adresauniform pentru localizarea resurselor& '@-urile pot fi utilizate n coneiune cu sistemul

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    28/59

    numelor de domenii $omain 7ame 52stem, 75% pentru a identifica sistemele "azd pe care se"sesc aceste resurse& 'n '@1 $http0www&feaa&uaic&rodespreSfeaainde&htm%, descrie de obiceitrei lucruri0 cum este accesat o resurs $e0 http0 dac este utilizat 344P%, calculatoruldestinaie $"azd% pe care este localizat resursa $e0 www&feaa&uaic&ro% i numele resursei $e0despreSfeaainde&htm%& )n plus, '@1-rile definesc un separator al intero"rii $*+%, care permite344P-ului s transmit parametrii $e0 http0www&feaa&uaic&rocatedrein/&aspcodcatN1G%&5intaa complet a '@1-urilor a fost standardizat de 1G4 n @C 6VJK&

    :ecanismul de livrare al 344P-ului difer de metoda utilizat n sistemele distribuiteorientate obiect& )n timp ce valoarea unui apel de funcie $de eemplu prin utilizarea @PC-ului%,este transmis doar atunci c!nd funcia a fost procesat n ntre"ime, o cerere 344P conduce laun stream de date, care este evaluat imediat, chiar dac nu toate datele au fost transmise nntre"ime& Aceast metod are beneficiul c pa"inile web pot fi interpretate imediat, astfel fiindlivrate i afiate mai rapid& 4otui, livrarea imediat de ctre un server web i procesarea imediatde ctre un client web poate face ca eecuia unui pro"ram ntr-o pa"in 34: $numit client-side scripting% s fie defectuoas dac plasarea lui n cadrul stream-ului de date apare la un timpnepotrivit& 344P a fost standardizat n @C 6H.U i este disponibil n prezent n versiunea 6&6&

    9rm%rirea sesiunii

    - distin"ere cereri de la utilizatori simultani i s identifice cererile care vin de la acelaiutilizator- implementat un mecanism de urmrire a sesiunilor prin rescrierea '@-ului sau cooDies

    9rm%rirea sesiuniiAplicaiile web interactive trebuie s fie capabile s distin" cererile de la numeroi

    utilizatori simultani i s identifice cererile care vin de la acelai utilizator&4ermenulsesiuneeste utilizat pentru a defini o astfel de secven a cererilor 344P dintre

    un anumit utilizator i un server ntr-o anumit perioad de timp& eoarece 344P este unprotocol simplu, serverul web nu poate aloca automat cererile venite pentru o sesiune& istin"emdou metode principale care permit serverului web s aloce automat o cerere venit pentru osesiune0

    - n fiecare din cererile sale ctre un server, clientul se identific ntr-un mod unic&Aceasta nseamn c toate datele trimise ctre server sunt alocate ulterior sesiunii respective- toate datele schimbate ntre un client i un server sunt incluse n fiecare cerere pe care

    un client o trimite unui server&)n ma;oritatea cazurilor este de dorit s lsm datele lo"icii aplicaiei pe server, astfel

    nc!t lo"ica aplicaiei s nu fie at!t de simpl& e obicei, este implementat un mecanism deurmrire a sesiunilor prin rescrierea '@-ului sau cooDies&

    @escrierea '@-ului@escrierea '@-ului este un mecanism care transmite datele relevante ale sesiunii ca

    parametri ntr-un '@& atele transmise pot fi apoi utilizate pentru a reconstrui sesiunea de peserver& in nefericire, acest mecanism are anumite dezavanta;e0

    -dac este necesar un volum mare de date ntr-o sesiune, atunci '@-ul poate deveni cuuurin dezordonat i susceptibil la erori& in momentul n care aplicaiile web tind s devincomplee, cerinele pentru volumul de date care trebuie stocate ntr-o sesiune poate crete deasemenea

    - limitarea lun"imii unui '@ poate determina ca acest mecanism s devin inutilizabilpe anumite sisteme

    -dezavanta;ul principal este c '@-urile codificate n pa"inile 34: trebuie s fieadaptate dinamic pentru fiecare sesiune de eemplu pentru a codifica o sesiune ntr-un 1 desesiune dintr-un '@& Aceasta nseamn c pa"inile sau le"turile din aplicaie trebuie s fie

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    29/59

    "enerate dinamic pentru fiecare cerere& Putem folosi cooDies pentru a rezolva ele"ant aceastproblem&

    iiere cooDieCooDie-urile sunt fiiere tet mici folosite pentru a stoca informaia de pe server $e0 1-

    ul unei sesiuni% pe sistemul clientului& Aceast informaie este scris ntr-un fiier tet sub formaperechilor nume-valoare& CooDie-urile sunt "enerate de ctre serverele web i transmise clienilorn antetul rspunsului 344P& =rowser-ul web al clientului stocheaz un cooDie pe sistemul

    clientului, iar ulterior va utiliza ntotdeauna acest cooDie pentru a-l transmite serverului ce a"enerat cooDie-ul cu fiecare cerere& CooDie-urile sunt clasificate n cooDie-uri*permanente+$rm!n stocate pe hard disD-ul de pe calculatorul clientului% sau *sesiune+ $suntpstrate doar p!n c!nd situl este prsit sau browser-ul este nchis%& Aceasta nseamn cserverul poate identifica cererile de la anumit client i le poate aloca unei sesiuni& CooDie-urilepot include i datele epirrii odat ce o astfel de data epir, browser-ul clientului nu va maitrimite cooDie-ul ctre server&

    Principalul beneficiu al cooDie-urilor este c informaia care identific o sesiune poate fischimbat n mod transparent ntre un client i un server& Gle pot fi utilizate pentru a implementacu uurin urmrirea sesiunilor i nu necesit un efort sporit deoarece doar 1-ul sesiunii"enerate de server trebuie transmis&

    Principalul dezavanta; al cooDie-urilor este c anumii utilizatori dezactiveazfuncionalitatea cooDie n browsere pentru a preveni schimbarea comportamentului browserului&

    Tehnolo(ii client&si'e A7utoare i plu(in&uri & adau" funcionaliti browserelor web Applet&uri Kava- pro"rame scrise n Iava care sunt ncrcate dinamic n browser

    - ruleaz ntr-un *sandbo Controale Active" & utilizarea componentei C?: n browserele web -

    componentele pot fi dezvoltate ntr-un limba; arbitrar $Iava, (isual =asic i C##%,

    Tehnologii client-side

    A7utoare i plu(in&uriPro"ramele de a;utor sunt aplicaii care adau" funcionaliti browserelor web& )n

    momentul n care un browser recepioneaz un tip de media inclus n lista de a;utoare sau plu"in-uri, tipul respectiv este trimis unui pro"ram etern specificat n list pentru o procesareulterioar& Gemple de aplicaii de a;utor sunt 9in_ip i Acrobat @eader& 'n pro"ram de a;utortrebuie instalat de ctre utilizator pe calculatorul clientului& Pro"ramul de a;utor este apoi invocatpentru asocierea lui la tipul :1:G corespunztor& ?rice pro"ram poate deveni de fapt unpro"ram de a;utor dezavanta;ul acestor pro"rame const n comunicarea comple cu browser-ul& Plu"in-urile pot rezolva aceast problem& 'n plu"-in este un pro"ram de a;utor instalatpermanent n browser pentru optimizarea comunicrii&

    Applet&uri Kava

    Applet-urile Iava sunt pro"rame scrise n Iava care sunt ncrcate dinamic n browser& Gleruleaz ntr-un *sandbo+, ceea ce mpiedic accesul lor direct la resursele sistemului client saupermite accesarea resurselor doar dup controlul politicii de securitate& Applet-urile suntncrcate de un server web i eecutate ntr-un browser ntr-un mediu de lucru numit I(: $Iava(irtual :achine%& Applet-urile nu sunt stocate n mod persistent pe un sistem& 5pre deosebire decontroalele ActiveL, applet-urile sunt compilate ntr-un format b2tecode independent de sistem,ceea ce le permite s ruleze pe toate platformele care dispun de I(:&

    Controale Active"Prin controalele ActiveL :icrosoft a permis utilizarea componentei C?: n browserele

    web& Controalele ActiveL sunt componente C?: standard proiectate pentru a oferi un anumitset de interfee $interfee C?:%& 'n browser web poate ncrca o astfel de component de pe un

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    30/59

    server web, o poate instania via sistemul de rulare C?: i apoi poate utiliza funcionalitateaacelei componente& 5pre deosebire de applet-urile Iava, controalele ActiveL sunt compilate ncod binar, care ofer o performan deosebit& Controalele ActiveL sunt stocate ntr-un directorde cache special al browser-ului, pentru apelrile ulterioare funcionalitatea respectiv fiind de;adisponibil& )n plus, controalele ActiveL au aceleai posibiliti ca un plu"-in sau pro"ram dea;utor ele pot accesa toate zonele sistemului i funciile utilizatorului care deine controlulsecuritii pe sistemul respectiv& Acesta reprezint un risc pentru securitate, de accea :icrosoft a

    dezvoltat o metod care permite distribuitorilor de controale ActiveL s utilizeze o metodcripto"rafic pentru a semna aceste componente& C!nd un control ActiveL este ncrcat ntr-unbrowser, certificatul distribuitorului Active va fi afiat utilizatorul poate decide dac este deacord s ruleze pro"ramul n funcie de ncrederea pe care o prezint compania productoare& 'nalt beneficiu al controalelor ActiveL este c componentele pot fi dezvoltate ntr-un limba;arbitrar $Iava, (isual =asic i C##%, at!t timp c!t compilatorul limba;ulului respectiv ndeplinetespecificaiile C?: necesare

    Tehnolo(ii specifice 'ocumentului HTM & Hypertext Mar8up an(ua(e - aplicaie 5>: care descrie

    elementele ce pot fi utilizate pentru a marca coninutul ntr-un document hipertet

    i modul n care aceste elemente relaioneaz SL & Scalable Lector raphics &permite descrierea ima"inilor bidimensionale

    n L: - recunoate trei tipuri de obiecte "rafice0 ima"ini vectoriale care constaun linii i curbe, ima"ini i tet

    SM/ & Syncroni;e' Multime'ia /nte(ration an(ua(e - reprezentaprezentrile multimedia sincronizate

    "M & e"tensible Mar8up an(ua(e- dialect etrem de simplu al 5>:-ului -sunt caracterizate prin dou proprieti distincte0 sunt bine formate i sunt valide

    Tehnologii specifice documentuluiHTM & Hypertext Mar8up an(ua(e

    34: este o aplicaie 5>: care descrie elementele ce pot fi utilizate pentru a marcaconinutul ntr-un document hipertet i modul n care aceste elemente relaioneaz $ntr-un 4- ocument 42pe efinition%& Glementele de marcare sunt nchise ntre simbolurile *

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    31/59

    utilizat n mod repetat de productorii de browsere pentru a etinde opiunile de la2out i n celedin urm a condus la noi standarde, dar i la reprezentri *incompatibile+&

    Aceste probleme au ncura;at introducerea unui mare numr de etensii& e eemplu,C55 $Cascadin" 5t2le 5heets% reprezint un mecanism simplu pentru adu"area informaiilor destil $fonturi, culori etc&% la documentele 9eb& )mpreun cu introducerea L34:-ului, un dialectL:, a devenit posibil utilizarea beneficiilor L:-ului ca un limba; *curat+ pentru descriereadocumentelor 34:&

    SL & Scalable Lector raphics

    ormatul ima"ine 5(> $9JC, /KK6a% permite descrierea ima"inilor bidimensionale nL:& 5(> recunoate trei tipuri de obiecte "rafice0 ima"ini vectoriale care constau n linii icurbe, ima"ini i tet& ?biectele "rafice pot fi "rupate i inte"rate n alte obiecte&

    5(> suport interaciuni bazate pe evenimente $e0 rspunsuri la micarea mouse-uluisau apsarea unui buton%& e eemplu, un astfel de rspuns poate fi mrirea unei ima"ini& )nplus, este posibil definirea unui cursor special pentru interactivitatea cu utilizatorul& 5(>suport toate tipurile de animaii, oferind un numr mare de funcii, inclusiv cea de mutare a unuiobiect "rafic de-a lun"ul unei ci pre-definite& atorit acestor proprieti, acest format esteadecvat pentru toate tipurile de "rafice vectoriale interactive i animate& Gemple de astfel de

    aplicaii includ reprezentrile CA, hrile i rutele&SM/ & Syncroni;e' Multime'ia /nte(ration an(ua(eimba;ul 5:1 $9JC, /KK6a% a fost dezvoltat de 9JC pentru a reprezenta prezentrile

    multimedia sincronizate& 5:1 permite coordonarea prezentrii diferitelor tipuri de media$audio, video, tet i ima"ini%& e eemplu, 5:1 ne permite s definim eact c!nd ar trebuirostit o fraz i ce ima"ine sau tet ar trebui s apar n paralel& iecare mediu poate fi adresatdirect i putem specifica locaia i perioada reprezentrii&

    Perioadele de start i final pentru fiecare mediu pot fi sincronizate relativ uor cu cele alealtor medii& 4rsturile de control standard permit utilizatorului s interacioneze cu 5:1, fiindposibile oprirea, pauza, derularea nainte sau napoi a ntre"ii prezentri& unciile suplimentareinclud "eneratoarele aleatorii, rularea cu ncetinitorul i perioada de timp trecut $ time lapse%& Pe

    parcursul prezentrii, utilizatorul poate selecta le"turi pentru a navi"a ctre alte pa"ini web&)n versiunea actual 5:1 include funcii pentru animaie, prezentarea controlat aconinutului, le"turi, inte"rarea diferitelor tipuri de media, coordonare i sincronizare, controlultimpului i efecte de tranziie&

    "M & e"tensible Mar8up an(ua(eL: $eLtensible :arDup an"ua"e% este un dialect etrem de simplu al 5>:-ului&

    ?biectivul este de a permite 5>:-ului "eneric s fie deservit, recepionat i procesat pe webntr-un mod posibil n prezent cu 34:& in acest motiv, L: a fost proiectat pentru a uuraimplementarea i pentru interoperabilitate cu 5>: i 34: $9JC 9orDin" raft, 7oiembrie6HHV%&

    Pe baza recomandrilor 9JC, L: $eLtensible :arDup an"ua"e, 9JC, 6HHY% acunoscut un real pro"res n ceea ce privete utilizarea i proliferarea sa n cadrul i n afara 9eb-ului& atorit capacitii de a defini ntr-un mod etrem de simplu formate de date fleibile i dea schimba aceste formate pe 9eb, L: ofer premisa pentru omo"enizarea mediilor etero"ene&Aceasta nseamn c, pe l!n" descrierea uniform a formatelor de date, putem lua nconsiderare semantica acestor date, indiferent de informaie& Capacitatea de etindere provinedin faptul c, spre deosebire de 34:, L: nu *dicteaz+ o marcare predefinit cu semanticaimplicit, ci ne permite definirea fleibil a sensului semanticii i a structurii unui documentL:, acesta put!nd astfel fi adaptat la anumite circumstane& Acesta este motivul pentru careL:, n loc de a fi o alternativ la 34:, deschide noi moduri de a descrie datele pentrudiverse scopuri&

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    32/59

    ocumentele L: sunt caracterizate prin dou proprieti distincte0 sunt bine formate isunt valide& =una structurare este n mod inerent ancorat n L:, n timp ce validitatea poate fiasi"urat de 4 $ocument 42pe efinition% i schemele L:& Pentru asi"urarea c undocument L: este bine format, eist re"uli "enerale pentru sintaa documentelor L:, care-spre deosebire de 34:- trebuie respectate ntocmai& e fapt, specificaiile L: abordeazaceste re"uli sub forma *constr!n"erilor+& 4abelul V&6 prezint anumite eemple pentru ademonstra re"ulile pentru o bun structurare din L:&

    $e(uli pentru o bun% structurare a unui 'ocument "M

    .escriere reit Corect

    4oate etichetele trebuie sapar n perechi pe acelainivel de imbricare& )n plus,pot apare etichete "oale$

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    33/59

    resurselor 34: $ele sunt simple fiiere tet% este o proprietate foarte important pentrucaracterul omniprezent al informaiei pe 9eb, aceasta fiind mpiedicat de aspectul prezentrii&1ntroducerea noilor elemente de marcare a fost facilitat ndeosebi de faptul c browserelerespin" sau i"nor elementele de marcare pe care nu le cunosc& Aceast fleibilitate a fostutilizat n mod repetat de productorii de browsere pentru a etinde opiunile de la2out i n celedin urm a condus la noi standarde, dar i la reprezentri *incompatibile+&

    Aceste probleme au ncura;at introducerea unui mare numr de etensii& e eemplu,

    C55 $Cascadin" 5t2le 5heets% reprezint un mecanism simplu pentru adu"area informaiilor destil $fonturi, culori etc&% la documentele 9eb& )mpreun cu introducerea L34:-ului, un dialectL:, a devenit posibil utilizarea beneficiilor L:-ului ca un limba; *curat+ pentru descriereadocumentelor 34:&

    SL & Scalable Lector raphics

    ormatul ima"ine 5(> $9JC, /KK6a% permite descrierea ima"inilor bidimensionale nL:& 5(> recunoate trei tipuri de obiecte "rafice0 ima"ini vectoriale care constau n linii icurbe, ima"ini i tet& ?biectele "rafice pot fi "rupate i inte"rate n alte obiecte&

    5(> suport interaciuni bazate pe evenimente $e0 rspunsuri la micarea mouse-uluisau apsarea unui buton%& e eemplu, un astfel de rspuns poate fi mrirea unei ima"ini& )n

    plus, este posibil definirea unui cursor special pentru interactivitatea cu utilizatorul& 5(>suport toate tipurile de animaii, oferind un numr mare de funcii, inclusiv cea de mutare a unuiobiect "rafic de-a lun"ul unei ci pre-definite& atorit acestor proprieti, acest format esteadecvat pentru toate tipurile de "rafice vectoriale interactive i animate& Gemple de astfel deaplicaii includ reprezentrile CA, hrile i rutele&

    SM/ & Syncroni;e' Multime'ia /nte(ration an(ua(eimba;ul 5:1 $9JC, /KK6a% a fost dezvoltat de 9JC pentru a reprezenta prezentrile

    multimedia sincronizate& 5:1 permite coordonarea prezentrii diferitelor tipuri de media$audio, video, tet i ima"ini%& e eemplu, 5:1 ne permite s definim eact c!nd ar trebuirostit o fraz i ce ima"ine sau tet ar trebui s apar n paralel& iecare mediu poate fi adresatdirect i putem specifica locaia i perioada reprezentrii&

    Perioadele de start i final pentru fiecare mediu pot fi sincronizate relativ uor cu cele alealtor medii& 4rsturile de control standard permit utilizatorului s interacioneze cu 5:1, fiindposibile oprirea, pauza, derularea nainte sau napoi a ntre"ii prezentri& unciile suplimentareinclud "eneratoarele aleatorii, rularea cu ncetinitorul i perioada de timp trecut $ time lapse%& Peparcursul prezentrii, utilizatorul poate selecta le"turi pentru a navi"a ctre alte pa"ini web&

    )n versiunea actual 5:1 include funcii pentru animaie, prezentarea controlat aconinutului, le"turi, inte"rarea diferitelor tipuri de media, coordonare i sincronizare, controlultimpului i efecte de tranziie&

    "M & e"tensible Mar8up an(ua(eL: $eLtensible :arDup an"ua"e% este un dialect etrem de simplu al 5>:-ului&

    ?biectivul este de a permite 5>:-ului "eneric s fie deservit, recepionat i procesat pe webntr-un mod posibil n prezent cu 34:& in acest motiv, L: a fost proiectat pentru a uuraimplementarea i pentru interoperabilitate cu 5>: i 34: $9JC 9orDin" raft, 7oiembrie6HHV%&

    Pe baza recomandrilor 9JC, L: $eLtensible :arDup an"ua"e, 9JC, 6HHY% acunoscut un real pro"res n ceea ce privete utilizarea i proliferarea sa n cadrul i n afara 9eb-ului& atorit capacitii de a defini ntr-un mod etrem de simplu formate de date fleibile i dea schimba aceste formate pe 9eb, L: ofer premisa pentru omo"enizarea mediilor etero"ene&Aceasta nseamn c, pe l!n" descrierea uniform a formatelor de date, putem lua nconsiderare semantica acestor date, indiferent de informaie& Capacitatea de etindere provinedin faptul c, spre deosebire de 34:, L: nu *dicteaz+ o marcare predefinit cu semanticaimplicit, ci ne permite definirea fleibil a sensului semanticii i a structurii unui document

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    34/59

    L:, acesta put!nd astfel fi adaptat la anumite circumstane& Acesta este motivul pentru careL:, n loc de a fi o alternativ la 34:, deschide noi moduri de a descrie datele pentrudiverse scopuri&

    ocumentele L: sunt caracterizate prin dou proprieti distincte0 sunt bine formate isunt valide& =una structurare este n mod inerent ancorat n L:, n timp ce validitatea poate fiasi"urat de 4 $ocument 42pe efinition% i schemele L:& Pentru asi"urarea c undocument L: este bine format, eist re"uli "enerale pentru sintaa documentelor L:, care

    -spre deosebire de 34:- trebuie respectate ntocmai& e fapt, specificaiile L: abordeazaceste re"uli sub forma *constr!n"erilor+& 4abelul V&6 prezint anumite eemple pentru ademonstra re"ulile pentru o bun structurare din L:&

    Testarea aplicaiilor web

    Aplicaiile web - platform de comunicare esenial pentru multe companii trebuie s ofere o nalt performan, fiabilitate i servicii uor de folosit

    4estarea - una dintre cele mai importante msuri de asi"urare a calitii- dezvoltarea unui plan eficient de testare care s acopere "ama lar" de caracteristici de

    calitate ale aplicaiilor web, care s fac fa la schimbri4estarea aplicaiilor web - cerine speciale de testare

    Aplicaiile web au evoluat ntr-o platform de comunicare esenial pentru multe companii&Aplicaiile web sunt deosebit de importante pentru comer, schimbul de informaii i numeroaseactiviti sociale& in acest motiv, aplicaiile web trebuie s ofere o nalt performan, fiabilitatei servicii uor de folosit& ?ferirea unor aplicaii web de calitate pentru utilizatorii eisteni i ceiviitori reprezint o provocare ma;or pentru asi"urarea calitii& 4estarea este una dintre cele maiimportante msuri de asi"urare a calitii& :etodele i tehnicile de testare tradiionale seconcentreaz n principal pe testarea cerinelor funcionale& in pcate, acestea nu se focalizeazsuficient pe cerinele de calitate importante pentru utilizatorii de aplicaii 9eb, cum ar fi

    performana, uurina n folosire, fiabilitatea i securitatea& ? provocare ma;or n testareaaplicaiilor web este dominana schimbrii& Cerinele utilizatorilor i ateptrile, platformele iconfi"uraiile, modelele de afaceri, dezvoltarea i testarea bu"etelor sunt subiecte supuse unormodificri frecvente pe tot parcursul ciclului de via al aplicaiilor web& Prin urmare, estenecesar dezvoltarea unui plan eficient de testare care s acopere "ama lar" de caracteristici decalitate ale aplicaiilor web, care s fac fa la schimbri i care s a;ute la implementarea ibuna nele"ere a unei testri sistematice, complete i lipsit de riscuri& 'n astfel de plan detestare formeaz baza pentru construirea unei metode model i a instrumentelor aferente&

    Gperiena practic a demonstrat c testarea metodic i sistematic fundamentat pe unastfel de plan este realizabil i util pe tot parcursul dezvoltrii i evoluiei aplicaiilor web&

    Aplicaiile web ridic noi provocri pentru asi"urarea calitii i testare& Aplicaiile web suntcompuse din diverse componente software, posibil oferite de productori diferii& Calitatea uneiaplicaii web este n principal determinat de calitatea fiecrei componente software implicate ide calitatea le"turilor dintre acestea& 4estarea este unul din cele mai importante instrumentefolosite n dezvoltarea aplicaiilor web pentru a realiza produse de nalt calitate, care ndeplinescateptrile utilizatorilor&

    4estarea aplicaiilor web mer"e dincolo de testarea sistemelor software tradiionale& ei seaplic cerine similare la corectitudinea tehnic a unei aplicaii, utilizarea unei aplicaii 9eb dectre "rupuri etero"ene de utilizatori, pe un numr mare de platforme, duce la cerine speciale detestare& eseori este "reu de anticipat numrul viitor de utilizatori pentru o aplicaie web& 4impul

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    35/59

    de rspuns este unul din factorii de succes decisivi pe 1nternet i trebuie s fie testat din timp,chiar dac platforma hardware final este n "eneral disponibil mult mai t!rziu& Ali factoriimportani pentru succesul unei aplicaii web $uurina n folosire, disponibilitatea,compatibilitatea cu browserele, securitatea, actualitatea i eficiena% trebuie de asemenea s fieluai in considerare n testrile timpurii&

    Caracteristicile testrii n in"ineria web

    erorile din Oconinut structura hipertet cerinele soft de la nivelul prezentare distribuirea multi-platform multi-lin"vismul i uurina n folosire tinereeaO i caracterul multidisciplinar al echipelor componente software diferite i sisteme inte"rate oferite de diferii furnizori OimaturitateaO multor metode i instrumente de testare Odominana schimbriiO

    Caracteristicile test%rii )n in(ineria webGlementele de baz prezentate anterior se aplic at!t la testarea software-ului tradiional c!t i lacea a aplicaiilor web& 'rmtoarele puncte subliniaz cele mai importante caracteristici iprovocri ale testrii aplicaiilor web, pe baza particularitilor aplicaiei0B erorile din OconinutO pot fi deseori "site doar prin msuri manuale sau or"anizaionalecostisitoare $de eemplu, prin corectarea "reelilor%& orme simple de verificare automat $deeemplu, un corector orto"rafic% ofer un a;utor valoros, dar sunt limitate la o palet redus depoteniale defecte& :eta-informaiile despre structurarea i semantica coninutului sau un sistemde referin care ofer valori comparative constituie deseori o condiie prealabil pentru a puteaefectua teste de profunzime& ac aceste premise nu sunt disponibile, trebuie "site alte abordri&e eemplu, dac datele privind situaia zpezii dintr-un sistem de informare turistic semodific frecvent i nu pot fi testate cu acuratee folosind meta-informaii sau valoricomparative, atunci validitatea datelor poate fi restricionat euristic la dou zile pentru a asi"uraactualitatea datelor&B c!nd testm structura hipertet, trebuie s ne asi"urm c pa"inile sunt le"ate n mod corect $deeemplu, fiecare pa"in trebuie s fie accesibil printr-o le"tur i, la r!ndul su, s aib ole"tur napoi la structura hipertet%& )n plus, toate le"turile trebuie s duc la pa"ini eistente,adic nu trebuie s fie ntrerupte+& e"turile nefuncionale reprezint erori frecvente atuncic!nd le"turile statice predefinite devin invalide $de eemplu, atunci c!nd se face referire la opa"in web etern, care a fost eliminat sau i-a modificat structura%& ? alt surs de erori estenavi"area prin intermediul funciilor browser-ului web $de eemplu, O)napoi n 1storicO%, nasociere cu strile n care poate fi o aplicaie web& 'n eemplu tipic nt!lnit este0 dac unutilizator adau" un articol n coul de cumprturi virtual n timp ce realizeaz cumprturionline, atunci acest articol va rm!ne n coul de cumprturi, chiar dac utilizatorul se duce cuun pas napoi n istoricul browser-ului, afi!nd pa"ina anterioar fr acel articol&B cerinele soft, subiective de la nivelul prezentare al aplicaiilor web $de eemplu, OesteticaO%,sunt dificil de specificat& Cu toate acestea, ele sunt o condiie prealabil esenial pentru testerpentru a putea distin"e n mod clar i obiectiv comportamentul acceptabil $i de dorit% decomportamentul defectuos& )n plus, doar c!teva metode i tehnici convenionale pentru testareasoftware-ul sunt adecvate pentru testarea prezentrii& Pentru a testa o prezentare trebuie utilizatemetode din alte discipline $de eemplu, publicistica tiprit% i msuri or"anizaionale, similar cuasi"urarea calitii coninutului&

    B numrul mare de dispozitive poteniale i caracteristicile lor diferite de performan$distribuirea multi-platform% reprezint o alt provocare& Chiar dac un tester dispune de toate

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    36/59

    dispozitivele posibile, acesta ar trebui s ruleze cazurile de test pentru fiecare dispozitiv& eisimulatoarele pentru dispozitive pot fi de a;utor dac tester-ul nu dispune fizic de dispozitive, elensele prezint n multe cazuri defecte, sau nu pot simula cu eactitate proprietile unuidispozitiv&

    B datorit disponibilitii i utilizrii "lobale a aplicaiilor web, eist o serie de provocrila testarea aplicaiilor web, privind multi-lin"vismul i uurina n folosire& Provocarea principaleste recunoaterea interdependenelor culturale i luarea lor n considerare n mod adecvat la

    testare& e eemplu, ordinea de citire n diferite culturi $de eemplu0 arab, chinez% implicfolosirea a;utoarelor de navi"are lateral n fereastra browser-ului& ? alt dificultate provine dinlun"imea diferit a mesa;elor tet n limbi diferite, care poate determina probleme n afiareala2out-ului&

    B OtinereeaO i caracterul multidisciplinar al echipelor sunt adesea le"ate de slabaacceptare a metodolo"iilor i lipsa de promptitudine n efectuarea testrii& eseori, cunotineledespre metode, tehnolo"ii i instrumente trebuie acumulate pe parcursul proiectului& Punctele devedere diferite cu privire la testare trebuie unificate& 7umai o echip format din membri cueperien va a;un"e la o decizie corect privind volumul testrii - prea mult testare poate fi lafel de neproductiv ca o testare insuficient& 4esterii sunt deseori tentai s testeze tot nntre"ime, mai ales la nceput&

    B aplicaiile web constau dintr-un numr de componente software diferite $de eemplu0servere web, baze de date, middleware% i sisteme inte"rate $de eemplu0 sisteme G@P, sistemede mana"ement al coninutului%, care sunt oferite de diferii furnizori, i implementate cu a;utoruldiferitelor tehnolo"ii& Aceste componente formeaz infrastructura tehnic a aplicaiilor 9eb&

    Calitatea unei aplicaii 9eb este n principal determinat de calitatea tuturor componentelorsoftware sin"ulare i de calitatea interfeelor dintre ele& Aceasta nseamn c, pe l!n"componentele dezvoltate ntr-un proiect, va trebui s testm componentele software furnizate depri tere, precum i inte"rarea i confi"urarea acestor componente& :ulte erori n aplicaiileweb rezult din OimaturitateaO unor componente software, OincompatibilitateaO ntrecomponentele software, sau confi"urarea "reit a unor componente software corecte&

    B OimaturitateaO multor metode i instrumente de testare constituie o provocare suplimentarpentru tester& ac o aplicaie 9eb este implementat cu o tehnolo"ie nou, de cele mai multe orinu eist nc metode i instrumente de testare adecvate& 1ar dac primele instrumente de testaredevin disponibile, ma;oritatea sunt imature, prezint defecte i sunt dificil de utilizat&B Odominana schimbriiO face ca testarea aplicaiilor web s fie mai comple dec!t testareasoftware-ului tradiional& Cerinele i ateptrile utilizatorilor, platformele, sistemele de operare,tehnolo"iile i confi"uraiile 1nternet, modelele de afaceri i ateptrile clienilor, dezvoltarea itestarea bu"etelor sunt subiectul unor modificri frecvente pe tot parcursul ciclului de via alunei aplicaii 9eb&

    Adaptarea la cerinele noi sau modificate este dificil deoarece funcionalitatea eistenttrebuie retestat ori de c!te ori se face o schimbare& Aceasta nseamn c o sin"ur funcionalitatetrebuie testat de mai multe ori, ceea ce pledeaz pentru ideea realizrii unor teste automate irepetabile, pun!nd accentul n special pe testele de re"resie, care verific dac ceea ce afuncionat mai funcioneaz nc dup o anumit schimbare& 'p"rade-urile i mi"rareaaplicaiilor web determinate de schimbrile permanente ale platformelor, sistemelor de operaresau hardware-ului, trebuie mai nt!i s ruleze i s se dovedeasc de succes n mediul de test,pentru evitarea unor probleme neateptate n mediul de producie&

    Meto'e i tehnici 'e testare

    C!nd testm aplicaiile web, putem aplica toate metodele i tehnicile folosite n testareasoftware-ului tradiional& Pentru a ine cont de specificul aplicaiilor web, unele din aceste

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    37/59

    metode i tehnici de testare vor trebui reanalizate sau adaptate i etinse $de eemplu, OCe factoride influen trebuie luai n considerare atunci c!nd testm compatibilitatea cu diferite browsere9ebO%& )n plus, cel mai probabil vom avea nevoie de noi metode i tehnici de testare pentru aacoperi acele caracteristici care nu au nici o coresponden n testarea software-ului tradiional$de eemplu, testarea structurii hipertet%&

    @ezumatul prezentat n 4abelul W-6 corespunde schemei de test prezentate n seciunea W&Ui este structurat n funcie de dimensiunea obiectelor testrii i dimensiunea caracteristicilor de

    calitate& 4abelul ofer o privire de ansamblu asupra metodelor, tehnicilor, i claselor deinstrumente pentru testarea aplicaiilor web& 4abelul arat tehnicile i metodele de testarereprezentative, ele servind drept baz de referin pentru ale"erea metodelor i utilitarelorspecifice unui proiect&

    4abelul W-6 :etode, tehnici, i clase de instrumente pentru testarea aplicaiilor web$a%

    Meto'e i tehnici 'e testare

    C!nd testm aplicaiile web, putem aplica toate metodele i tehnicile folosite n testareasoftware-ului tradiional& Pentru a ine cont de specificul aplicaiilor web, unele din acestemetode i tehnici de testare vor trebui reanalizate sau adaptate i etinse $de eemplu, OCe factori

    de influen trebuie luai n considerare atunci c!nd testm compatibilitatea cu diferite browsere9ebO%& )n plus, cel mai probabil vom avea nevoie de noi metode i tehnici de testare pentru aacoperi acele caracteristici care nu au nici o coresponden n testarea software-ului tradiional$de eemplu, testarea structurii hipertet%&@ezumatul prezentat n 4abelul W-6 corespunde schemei de test prezentate n seciunea W&U i estestructurat n funcie de dimensiunea obiectelor testrii i dimensiunea caracteristicilor de calitate&4abelul ofer o privire de ansamblu asupra metodelor, tehnicilor, i claselor de instrumentepentru testarea aplicaiilor web& 4abelul arat tehnicile i metodele de testare reprezentative, eleservind drept baz de referin pentru ale"erea metodelor i utilitarelor specifice unui proiect&

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    38/59

    4abelul W-6 :etode, tehnici, i clase de instrumente pentru testarea aplicaiilor web$b%

    4estarea le"turilor leg5turi moarte

    B "raf de le"turi paginile orane

    4estarea n browser starea aplicaiei web este "estionat corect poate fi reinut o pa"in web $"enerat dinamic% ca preferin se poate deschide aplicaia web n mai multe ferestre cum reacioneaz aplicaia c!nd browser-ul are dezactivate cooDie-urile sau

    limba;ele de scriptTestarea le(%turilore"turile dintr-o structur de navi"are hipertet care trimit la un nod $pa"ini, ima"ini, etc% sau

    ancor non-eistente sunt numite leg5turi moarte i reprezint erori bine-cunoscute i frecventen aplicaiile web& Pentru a testa corectitudinea le"turilor dintre pa"ini $,eriicarea leg5turilor%,toate le"turile sunt urmate n mod sistematic ncep!nd din pa"ina de start, i apoi "rupate ntr-un "raf de le"turi $harta site-ului%&C!nd lansm o rutin de verificare a le"turilor, vom "si nu numai le"turi care duc la pa"ininon-eistente, dar i pa"ini care nu sunt le"ate cu celelalte - aa-numitele pa"ini orfane&6aginileoranepot fi atinse printr-o le"tur, dar nu au o le"tur napoi ctre structura hipertet& Pentruutilizatorii ocazionali nu este evident unde pot continua navi"area, astfel abandon!nd site-ul web&1deal ar fi ca pa"inile s fie proiectate astfel nc!t s se termine cu o su"estie privitoare la locul ncare cititorul ar putea navi"a n continuare&

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    39/59

    )n plus, atunci c!nd parcur"em le"turile, putem "si date suplimentare care oferindicaii privind erorile poteniale $de eemplu, ad!ncimea i ntinderea structurii de navi"are,distana dintre dou pa"ini le"ate, msurat dup numrul de le"turi, sau timpul de ncrcare apa"inilor%&Testarea )n browser

    'n numr mare de browsere web pot fi folosite drept client pentru aplicaiile web& )nfuncie de productor $de eemplu, :icrosoft, :ozilla, 7etscape, ?pera%, sau de versiune $de

    eemplu, 1nternet Gplorer U&K, U&K6, U&U, V&K%, sau de sistemul de operare $de eemplu, 1nternetGplorer pentru 9indows LP/KKK, 9indows HY:G74 sau :acintosh%, sau de echipamentulhardware $de eemplu, rezoluia ecranului i ad!ncimea de culoare%, sau de confi"urare $deeemplu, activarea cooDie-urilor, limba;e de scriptin", foi de stiluri%, fiecare browser web are uncomportament diferit& eseori standardele specificate de ctre 9JC nu sunt implementate ntotalitate i sunt OconsolidateO cu etensii incompatibile specifice distribuitorilor& 5tatistici isetri ale browserelor web sunt disponibile online la adresahttp0www&webreference&comstatsbrowser&html&

    4estarea n browser ncearc s descopere erorile din aplicaiile web cauzate deincompatibilitile dintre diferite browsere web& )n acest scop, se definesc funciile de baz ale

    aplicaiei web, se proiecteaz cazuri de testare adecvate, i se eecut teste pe sisteme intdiferite, cu diferite versiuni de browser& )n timpul acestor teste, trebuie s se in cont deurmtoarele ntrebri0B 5tarea aplicaiei web este "estionat corect, sau pot apare stri inconstante c!nd navi"m directla o pa"in, de eemplu, prin utilizarea butonul O)napoiO din browserB Poate fi reinut o pa"in web $"enerat dinamic% ca preferin $booDmarD% n timpul uneitranzacii, astfel nc!t utilizatorii s poat navi"a la pa"ina respectiv mai t!rziu, fr a fi nevoiis introduc un nume de utilizator i o parol pentru a se autentificaB Pot utilizatorii s deschid aplicaia web n mai multe ferestre de browser $una sau mai multeinstane ale browser-ului web% concomitentB Cum reacioneaz aplicaia web atunci c!nd browser-ul are dezactivate cooDie-urile sau

    limba;ele de scriptPentru a limita numrul de combinaii posibile de browsere, platforme, setri i ali factori deinfluen la un set administrabil de cazuri de test, trebuie analizate confi"uraiile de utilizatorieisteni sau poteniali, de eemplu, prin evaluarea fiierelor ;urnal $lo"-urilor% i consultareastatisticilor browser-ului, pentru a "si cele mai populare combinaii&

    4estarea uzabilitii evalueaz uurina n folosirea diferitelor proiectri web, la2out-ului "eneral, i

    navi"rii n laborator, utiliz!nd camere de lucru echipate cu one-4ay glass recenzia euristic

    accesibilitatea aplicaiilor web pentru utilizatorii cu dizabiliti 4estarea n condiii de ncrcare, solicitri i continu

    test n condiii de ncrcare - timpii de rspuns necesari i productivitateasolicitat

    test n condiii de solicitare - sistemul reacioneaz ntr-un mod controlat nOsituaii de stres

    testarea continu - sistemul este testat o perioad mare de timp pentru a descoperierori OsubtileO&

    Testarea u;abilit%ii

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    40/59

    4estarea uzabilitii evalueaz uurina n folosirea diferitelor proiectri web, la2out-ului "eneral,i navi"rii unei aplicaii web de ctre un set de utilizatori reprezentativi& Accentul se pune peaspect i pe uurina n folosire& 'n test formal de uzabilitate este de obicei efectuat ntr-unlaborator, utiliz!nd camere de lucru echipate cu one-4ay glass, camere video i o staie denre"istrare& 5unt colectate at!t date cantitative c!t i calitative&Al doilea tip de evaluare a uzabilitii este recenzia euristic& ? recenzie euristic implic unulsau mai muli specialiti care aplic un set de "hiduri pentru a msura uzabilitatea soluiei

    propuse, identific domeniile de remediat, i ofer recomandri pentru schimbarea desi"n-ului&Aceast evaluare sistematic folosete anumite principii de uzabilitate $e& prevenirea erorilor,asi"urarea feedbacD-ului i consistenei%, care ar trebui s fie urmate de ctre toi proiectaniiinterfeei cu utilizatorul&

    )n contetul testrii uzabilitii, trebuie tratat i problema accesibilitii aplicaiilor webpentru utilizatorii cu dizabiliti& Accesibilitatea nseamn c persoanele cu dizabiliti $vizuale,auditive, sau co"nitive% pot percepe, nele"e, navi"a i interaciona cu aplicaiile web& 9ebAccessibilit2 1nitiative $9A1% aparine de 9JC i a dezvoltat abordri pentru evaluarea site-urilor web din punct de vedere al accesibilitii, abordri relevante i pentru testarea aplicaiilorweb& Pe l!n" "hidurile de evaluare, 9JC ofer un serviciu de validare $http0validator&wJ&or"%ce trebuie utilizat n asociere cu manualul de referin i testarea de ctre utilizator a

    caracteristicilor de accesibilitate&Testarea )n con'iii 'e )nc%rcare! solicit%ri i continu%

    4estele la ncrcare, testele la solicitri i testarea continu se bazeaz pe procedurisimilare& iverse cereri sunt trimise concomitent aplicaiei web testate de ctre utilizatorisimulai pentru a msura timpii de rspuns i capacitatea de transfer $throu"hput%& Cererileutilizate n aceste teste sunt "enerate de ctre unul sau mai multe O"eneratoare de ncrcareO& ?aplicaie de control distribuie script-urile de test "eneratoarelor de ncrcare de asemenea,sincronizeaz rularea testului i colecteaz rezultatele testului&

    Cu toate acestea, testele n condiii de ncrcare, testele la solicitri i testarea continu au

    obiective diferite0B un test n condiiide ncrcareverific dac un sistem posed timpii de rspuns necesari iproductivitatea solicitat& )n acest scop, se determin mai nt!i profilele de ncrcare $tipurile deacces, numrul de vizite pe zi, orele de v!rf, numrul de vizite pe sesiune, numrul de tranzaciipe sesiune, etc% i amestecul de tranzacii $ce funcii vor fi eecutate i cu ce procent%& Apoi, vomdetermina valorile int pentru timpii de rspuns i capacitatea de transfer $n cazul funcionriinormale i la orele de v!rf, pentru accesri normale sau complee, cu valori minime, maime imedii%& 'lterior, vom rula testele, "ener!nd volumul de ncrcare mpreun cu amestecul detranzacii definite n profilul de ncrcare i vom msura timpii de rspuns i capacitatea detransfer& @ezultatele sunt evaluate i sunt identificate potenialele O"!tuiriO ale sistemului&

    B un test n condiii de solicitareverific dac sistemul reacioneaz ntr-un modcontrolat n Osituaii de stresO& 5ituaiile de solicitare sunt simulate prin aplicarea unor condiiietreme, cum ar fi suprancrcarea nerealist sau o ncrcare foarte fluctuant& 5copul testuluieste de a afla dac sistemul a;un"e la timpii de rspuns i capacitatea de transfer necesar ncazul unei solicitri n orice moment i dac acesta rspunde adecvat, prin "enerarea un mesa; deeroare $de eemplu, prin respin"erea tuturor cererilor ulterioare imediat ce un Ovolum predefinitmaim de date primiteO este atins%& Aplicaia nu trebuie s cedeze sub OstresO datorit cererilorsuplimentare& ?dat ce situaia de solicitare s-a ncheiat, sistemul trebuie s recupereze c!t derepede posibil i s revin la comportamentul normal&B testarea continuse refer la faptul c sistemul este testat o perioad mare de timp pentru adescoperi erori OsubtileO& Problemele de "estionare a resurselor, cum ar fi omiterea deconectriila bazele de date sau Oscur"erile de memorieO sunt un eemplu tipic& Gle apar atunci c!nd o

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    41/59

    operaiune aloc resurse $de eemplu, memoria principal, handlere de fiiere sau coneiuni labazele de date%, dar nu le elibereaz atunci c!nd se termin& ac am apela de c!teva orioperaiunea cu OdefecteO n testarea OnormalO, nu vom detecta eroarea& oar testarea continu neasi"ur c operaiunea este eecutat n mod repetat, pentru perioade lun"i de timp, pentru areproduce n cele din urm O"!tuirea+ resurselor cauzat de aceast eroare $de eemplu, lipsa dememorie%&

    4estarea securitii confidenialitatea autorizarea autentificarea responsabilitatea 1nte"ritatea

    ezvoltarea pe baz de testare teste automate, care sunt create nainte de codificare efect psiholo"ic benefic

    Testarea securit%ii

    Probabil cel mai critic aspect al unei aplicaii web este securitatea& 7ecesitatea de are"lementa accesul la informaii, de a verifica identitile utilizatorilor i de a cripta informaiileconfideniale este de o importan etrem& 4estarea securitii este un domeniu vast i va fidiscutat succint n aceast seciune& 4estarea securitii nu reprezint o tehnic de testare nsensul literal, ci se refer la aspecte le"ate de caracteristica de calitate OsecuritateO0B confidenialitatea0 Cine poate accesa anumite date Cine poate modifica i ter"e dateB autorizarea0 Cum i unde sunt "estionate drepturile de acces 5unt criptate datele Cum suntcriptate dateleB autentificarea0 Cum se autentific utilizatorii sau servereleB responsabilitatea0 Cum se ;urnalizeaz acceseleB inte"ritatea0 Cum este prote;at informaia mpotriva modificrii pe parcursul transmiteriiacesteiaC!nd realizm teste n domeniul securitii, este important s procedm n conformitate cu oschem de testare sistematic& 4oate funciile trebuie s fie testate n ceea ce privete securitatea$altfel spus trebuie s testm fiecare funcie pentru a stabili dac ndeplinete sau nu fiecare dincerinele enumerate mai sus%& 4estarea mecanismelor de securitate $de eemplu, criptarea% doarpentru corectitudine nu este suficient& )n pofida unei corecte implementri a al"oritmului decriptare, o funcie de cutare, de eemplu, ar putea afia date confideniale pe pa"ina derezultate& Aceasta este o eroare pe care testele rulate ar trebui s o detecteze& )n mod obinuit,testarea securitii nu trebuie s "seasc doar defectele datorate unei funcionaliti dorite darincomplete sau incorecte, ci i cele datorate unui comportament nedorit care poate avea efectesecundare neprevzute sau chiar conine cod periculos&

    ? cantitate mare de informaii cu privire la "urile tipice de securitate din aplicaiile web estedisponibil pe 1nternet $de eemplu, cele mai frecvente vulnerabiliti i epuneri sunt discutatela http0www&cve&mitre&or" o list a problemelor de securitate este disponibil lahttp0www&wJ&or"5ecurit2awww-securit2-fa&html%&

    .e;voltarea pe ba;% 'e testare

    ezvoltarea pe baz de testare a aprut n urma abordrii nt!i testeaz+ utilizate nGtreme Pro"rammin", dar nu implic neaprat o abordare doar a proiectelor a"ile& Aceastanseamn c putem folosi aceast tehnic chiar i n proiectele convenionale&

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    42/59

    Aa cum su"ereaz i numele, dezvoltarea pe baz de testare este condus de teste automate, caresunt create nainte de codificare& 'n nou cod este scris dac un test creat anterior eueaz, altfelspus, dezvoltatorii trebuie s scrie testele nainte de a ncepe implementarea $refactorin"%& )nacest fel, proiectarea $i, n consecin, aplicaia% crete Oor"anicO i fiecare unitate are testeleproprii& )n mod firesc, proiectarea const din componente nlnuite, ceea ce faciliteaz testarea&ac testul eueaz, dezvoltatorul implementeaz ceea ce este absolut necesar pentru a eecutacu succes testul c!t mai rapid posibil, chiar dac acest lucru poate nsemna nclcarea anumitor

    principii& in c!nd n c!nd, dezvoltatorul elimin codul duplicat introdus n timpulimplementrii&ezvoltarea pe baz de testare are un efect psiholo"ic benefic dezvoltatorul se poate

    concentra pe pai mici i pstra n minte obiectivul "eneral $Ocod curat, care funcioneazO%&Acest aspect este opus cercului vicios des nt!lnit, n care datorit presiunii crescute rm!ne maipuin timp pentru testare, sunt testate mai puine lucruri i astfel, n final, mai multe incertitudiniconduc la o mai mare presiune& ezvoltarea pe baz de testare ne asi"ur c un dezvoltator aflatsub un "rad crescut de stres, pur i simplu ruleaz testele automate eistente mult mai des& Acestlucru i permite s obin un feedbacD direct din care rezult c lucrurile funcioneaz, ceea cereduce stresul i probabilitatea de apariie a erorilor&

    Automati;area test%rii & beneficii detectarea defectelor cauzate de efectele secundare ale unor funcionaliti neschimbate metode i tehnici de testare sunt dificil sau imposibil de realizat manual rularea mai multor teste ntr-un timp mai scurt capacitatea de a re-rula rapid un set automat de teste

    Automatizarea testrii4estarea sistemelor mari beneficiaz de instrumente care implementeaz i automatizeaz

    anumite metode i tehnici& Acest lucru este valabil n special pentru dezvoltarea iterativ ievolutiv a aplicaiilor web, n care utilizarea or"anizat a instrumentelor poate spri;ini testel

    Automatizarea poate mri semnificativ eficiena testrii i, n plus, permite noi tipuri de

    teste care lr"esc scopul $de eemplu, diferite obiecte de test i caracteristici de calitate% iprofunzimea testrii $de eemplu, combinaii i cantiti mari de date de intrare%& Automatizareatestrii aduce urmtoarele beneficii testrii aplicaiilor web0B rularea testelor de re"resie automate pentru noile versiuni ale unei aplicaii web permitedetectarea defectelor cauzate de efectele secundare ale unor funcionaliti neschimbate& Acesteteste de re"resie ne a;ut s prote;m funcionalitile eistente ale aplicaiilor web cu schimbrifrecvente&B diverse metode i tehnici de testare sunt dificil sau imposibil de realizat manual& e eemplu,testarea la ncrcare i solicitri necesit o automatizare i folosirea de instrumentecorespunztoare pentru a simula un numr mare de utilizatori simultani& )n acelai mod, estepractic imposibil s testm n ntre"ime toate le"turile unei structuri hipertet ciclice, etensive

    a unei aplicaii web, n mod manual&B automatizarea permite rularea mai multor teste ntr-un timp mai scurt i deci rularea testelormai des, duc!nd la o mai mare ncredere n sistemul testat& Prin urmare, automatizarea este ocondiie prealabil pentru dezvoltarea bazat pe testare&B capacitatea de a re-rula rapid un set automat de teste ne poate a;uta s scurtm timpul deeecuie al testului i s reducem timpul p!n la punerea pe pia a aplicaiei web&Cu toate acestea, n ciuda creterii eficienei pe care o poate oferi testarea automat, ateptrileprivitoare la automatizarea testrii sunt adesea nerealiste& Automatizarea testrii nu mbunteteeficiena testrii $numrul total de defecte detectate%& Automatizarea unui test nu-l face maieficient dec!t rularea aceluiai test n mod manual& e obicei, testele manuale "sesc mai multedefecte dec!t testele automate, deoarece este mai probabil s "sim un defect de la prima rulare a

  • 7/27/2019 Arhitecturile Aplicaiilor Web

    43/59

    testului& ac un test a fost rulat o dat, este improbabil ca un nou defect s fie detectat atuncic!nd rulm testul din nou, cu ecepia cazului n care codul testat este afectat de o schimbare&:ai mult, dac testarea este prost or"anizat, cu teste ineficiente care au o capacitate sczut dedepistare a defectelor, automatizarea acestor teste nu ofer nici un beneficiu& Automatizarea unuiproces de testare haotic determin mai mult haos&e care se repet n mod frecvent pe parcursulunor cicluri de dezvoltare scurte& Chiar dac dezvoltarea este finalizat, modificrile la nivelulinfrastructurii i mediului unei aplicaii web necesit deseori repetarea testelor&

    ? strate"ie de investiii de bun-sim implic utilizarea de instrumente pentru a mbuntitestarea manual, dar nu nlocuiete testarea manual cu testarea automat& 4estele manuale suntcele mai bune pentru a eplora noi funcionaliti, determinate de creativitatea, nele"erea ieperiena tester-ului uman& 4estele automate asi"ur funcionalitatea eistent, depisteazefectele adverse i defectele re-introduse i mresc acurateea i aria testelor manuale& e aceea,nu toate testele trebuie s fie automatizate& ? automatizare parial poate fi foarte util i suntdisponibile diverse instrumente de testare pentru a spri;ini diferite tipuri de activiti de testare&

    Utilitare pentru testare - sarcini suportate planificarea i mana"ementul testrii

    proiectarea cazurilor de test analiza static i dinamic automatizarea rulrii testelor monitorizarea sistemului sarcinile "enerale

    9tilitare pentru testareCele mai frecvent utilizate instrumente de testare suport urmtoarele sarcini0

    Bplaniicarea 7i managementul test5rii& Aceste instrumente faciliteaz "estionarea cazurilor idatelor de testare, selectarea cazurilor de testare adecvate, colectarea rezultatelor testrii iurmrirea bu"-urilor&

    Bproiectarea ca%urilor de test& 1nstrumentele disponibile pentru proiectarea cazurilor de testspri;in dezvoltatorul n derivarea cazurilor de test din definirea cerinelor sau n "enerareadatelor de test&B anali%a static5 7i dinamic5& 1nstrumentele disponibile pentru a analiza aplicaiile web $deeemplu, validatoarele 34: sau controloarele de le"turi% ncearc s descopere abaterile de lastandarde&B automati%area rul5rii testelor.1nstrumentele pot automatiza rulrile testelor prin simulare sau;urnalizare, precum i prin captura i r