Documente Academic
Documente Profesional
Documente Cultură
Informatica
~ Tematica curs ~
1.2.4 Evolutie
2.4.2 Notatii
2.4.3 Utilitare
3.1.1 Nivele
3.1.2 Perspective
3.1.3 Faze
3.1.4 Personalizare
3.3.1 Obiective
3.3.2 Concepte
3.4.1 Obiective
3.5.1 Obiective
3.5.2 Concepte
3.6.1 Obiective
3.6.2 Concepte
4.1 Fundamente
5.4.1 Integrarea
5.5 Perspective
5.5.3 Reutilizare
7.1.1 Terminologie
8.2.1 stiri
10.1 Fundamente
11.3.3 Culorile
11.3.7 Multiculturalitatea
11.4.2 Proiectarea
11.4.3 Implementarea
11.4.4 Operarea
11.5.3 Accesibilitatea
XII. Performanta aplicatiilor web
14.2.2 Ontologii
14.3.2 Agenti
14.3.3 Ontologii
14.4 Utilitare
Este necesara construirea unui ciclu de viata a aplicatiilor web, prezentarea conceptelor,
tehnicilor, metodelor si utilitarelor pentru dezvoltarea sistematica a aplicatiilor web.
La nivel de infrastructura, web-ul este un spatiu creat prin intermediul unor limbaje si
protocoale specificate formal. Desi oamenii sunt implicati în crearea paginilor si utilizarea
legaturilor dintre acestea, interactiunea acestora formeaza un model web la scara macroscopica.
Aceste interactiuni umane sunt guvernate de conventii sociale, politici si legi. Dezvoltarea
aplicatiilor web este rezultatul unei afaceri complexe si este esential ca proiectarea care sprijina
aceasta dezvoltare sa fie bine realizata. Acest lucru va permite studentilor si specialistilor sa
proiecteze aplicatii web de o calitate superioara pe baza principiilor de proiectare software
experimentate si de încredere.
World Wide Web are o influenta enorma si permanenta asupra vietii noastre. Economia,
industria, educatia, sanatatea, administratia publica si distractia reprezinta componente ale vietii
noastre care nu au fost patrunse de World Wide Web. Motivul acestei omniprezente consta în
special în natura web-ului, caracterizata prin disponibilitatea globala si permanenta dar si prin
accesul omogen la informatiile distribuite la nivel global produse indivizi sub forma paginilor
web[1].
Initial, web-ul a fost proiectat ca un mediu pur informational, în prezent evoluând într-un
mediu al aplicatiei. Aplicatiile web de astazi sunt rapide si reprezinta sisteme software complexe
care ofera servicii interactive si personabilizabile accesibile prin intermediul diferitelor
dispozitive; ele ofera posibilitatea realizarii tranzactiilor între utilizatori si de obicei stocheaza
datele într-o baza de date. Elementul distinctiv al aplicatiilor web, comparativ cu aplicatiile
software traditionale, este modul în care este utilizat web-ul: de exemplu tehnologiile si
standardele sale sunt utilizate ca o platforma de dezvoltare si ca platforma utilizator în acelasi
timp. O aplicatie web poate fi definita astfel:
- cunostintele specifice din discipline relevante nu pot aplicate sau utilizate. Exista o
conceptie gresita conform careia dezvoltarea aplicatiilor web este similara cu dezvoltarea
aplicatiilor web traditionale si din acest motiv metodele din ingineria software pot fi utilizate în
sensul abordarii sistematice, cu masuri adecvate de control a calitatii. Acest lucru este neadecvat
în majoritatea cazurilor datorita caracteristicilor speciale ale aplicatiilor web. În plus, concepte si
tehnici din domenii relevante cum ar fi hypertext sau interactiunea om-calculator nu sunt aplicate
într-o maniera consecventa. Standardele de dezvoltare pentru aplicatiile web de calitate sunt
neexistente, acest lucru datorându-se si relativei scurte istorii a web-ului.
Proiectarea web nu este un eveniment imediat; este un proces realizat pe tot parcursul
ciclului de viata a aplicatiei web, similar cu proiectarea software-ului. Este necesara o abordare
disciplinara diferita pentru proiectarea web fata de proiectarea software-ului?
O disciplina poate fi definita ca un domeniu de studiu al stiintei, mai mult sau mai putin
independent care include cercetarea, învatarea si cunoasterea stiintifica sub forma publicatiilor.
Numarul mare de publicatii, cursuri, programe analitice, seminarii stiintifice si conferinte
demonstreaza ca, în acord cu aceasta definitie, proiectarea web poate fi considerata un domeniu
independent a proiectarii software-ului[6].Proiectarea reprezinta în general o aplicatie practica a
stiintei folosita în scopul planuirii aplicatiilor într-un mod mai bun, mai rapid, mai ieftin si mai
sigur. Proiectarea software este definita ca o aplicatie a stiintei si matematicii prin care
capacitatile unui sistem de calcul sunt facute utile oamenilor prin intermediul programelor,
procedurilor si documentatiei asociate[7]. Pe baza acestei definitii si a celei lui Despande[8],
putem defini proiectarea web în doua moduri:
Din punct de vedere al proiectarii software-ului, dezvoltarea aplicatiilor web este un nou
domeniu al aplicatiilor[14]. În ciuda anumitor similitudini cu aplicatiile traditionale,
caracteristicile speciale ale aplicatiilor web necesita o adaptare a multiplelor abordari ale
proiectarii software-lui sau chiar a dezvoltarii de abordari complet noi.
Principiile de baza ale proiectarii web pot fi descrise în mod similar cu cele ale proiectarii
software:
Aplicatiile web au grade variate de complexitate. Acestea pot fi pur informationale sau
aplicatii de comert electronic complexe care functioneaza 24 de ore pe zi / 7 zile pe saptamâna.
În functie de cronologia (istoricul) dezvoltarii si gradul de complexitate au fost identificate
diferite categorii de aplicatii web (o clasificare similara se poate observa si la Pressman[16]), asa
cum putem observa si în figura 1.1:
Figura 1.1: Categorii de aplicatii web
Putem sesiza ca diferite categorii de aplicatii web acopera mai multe domenii traditionale
ale aplicatiilor, cum ar fi bancile online, dar în acelasi timp creaza noi domenii ale aplicatiilor,
cum ar fi serviciile pentru anumite locatii (location-aware services). În cele ce urmeaza vom
descrie trasaturile relevante ale acestor categorii.
Siturile web axate pe documente sunt precursoare ale aplicatiilor web. Paginile web
sunt stocate pe un server web deja configurat, sunt statice, iar documentele HTML sunt trimise
clientului web ca raspuns la o cerere. Aceste pagini web sunt de obicei actualizate manual
utilizând utilitare corespunzatoare. Pentru siturile web care impun schimbari frecvente sau pentru
siturile web cu un numar mare de pagini aceasta este un factor semnificativ pentru costuri si
adesea are drept consecinta informatii depasite. În plus exista pericolul aparitiei inconsistentelor
atunci când un anumit continut este prezentat frecvent în mod redundant pe mai multe pagini
web pentru a usura accesul. Principalul beneficiu este simplitatea si stabilitatea unui astfel de sit
web dar si timpul scurt de raspuns, paginile fiind deja stocate pe serverul web. Paginile
principale statice si simpla prezenta pe web a micilor afaceri apartin acestei categorii.
Aplicatiile web tranzactionale au fost create pentru a oferi mai multa interactivitate,
oferind utilizatorului posibilitatea de a nu interactiona cu aplicatia doar în modul citire, acesta
având posibilitatea de a realiza actualizari ale continutului de baza. Daca luam în considerare un
sistem informational pentru turism acesta va permite actualizarea continutului într-un mod
descentralizat sau face posibila rezervarea camerelor. Premisa necesara pentru un asfel de sistem
implica existenta unor sisteme de baze de date care permit manevrarea consistenta a unei
cantitati în continua crestere de continut în aplicatiilor web si ofera posibilitatea structurarii
interogarilor. Bancile online, magazinele online si sistemele de rezervare apartin acestei
categorii.
Aplicatiile web bazate pe fluxuri permit manevrarea fluxurilor în interiorul sau între
diferite companii, reprezentanti publici si utilizatori individuali. Este esentiala pentru aceste
aplicatii disponibilitatea serviciilor web adecvate pentru asigurarea interoperabilitatii[17].
Complexitatea serviciilor, autonomia companiilor participante si necesitatea ca aceste fluxuri sa
fie robuste si flexibile sunt principalele provocari. Exemple pentru aceste categorii sunt solutiile
B2B (Business-to-Business) din comertul electronic, aplicatiile e-government din domeniul
administratiei publice sau suportul web pentru fluxurile de pacienti din sectorul sanatatii.
Cu toate ca web-ul a fost initial caracterizat prin anonimat, exista o orientare în crestere
spre web-ul social, în care indivizii îsi ofera identitatea unei mici comunitati cu interese similare.
Log-urile web sau sistemele colaborative de filtrare cum ar fi friendster (http://friendster.com),
care ofera posibilitatea de a gasi nu numai anumite subiecte de interes ci si persoane cu interese
similare, apartin acestei categorii de aplicatii.
Aplicatiile orientate pe portaluri ofera un singur punct de acces la surse de informatie
si servicii distincte / potential eterogene[18]. Realizatorii de browsere (Microsoft, Netscape),
motoarele de cautare (Yahoo), serviciile online (AOL), conglomeratele media si alte companii au
devenit constiente de cererea existenta si ofera acum hub-uri centrale sau asa numitele portaluri,
ca punct de acces la web. Pe lânga aceste portaluri generale, exista diverse portaluri specializate
cum ar fi portalurile de afaceri, portalurile de piata sub forma magazinelor de vânzare online si
portalurile comunitatii. Portalurile afacerii ofera angajatilor si/sau partenerilor afacerii un acces
focalizat la diferite surse de informatie si servicii prin intranet sau extranet. Portalurile de piata
sunt împartite în piete orizontale si verticale. Pietele orizontale functioneaza pe piata B2C
oferind bunuri de consum direct publicului, si în B2B, vânzând produsele sale altor companii din
alte sectoare de activitate. Pietele verticale se reduc la companiile dintr-un singur sector de
activitate, cum ar fi furnizorii pe de o parte si producatorii pe de alta parte. Portalurile
comunitatilor sunt dirijate catre grupuri tinta specifice (de ex. tinerii) si încearca sa creeze o
loialitate a clientilor prin intermediul interactiunilor cu utilizatorii sau sa asigure oferte
individuale printr-un management al utilizatorilor adecvat (marketing unu-la-unu).
Chiar daca o anumita caracteristica este prezenta si depinde într-o anumita masura
de tipul de aplicatie web, dezvoltarea aplicatiilor web tranzactionale cum ar fi sistemele
de e-commerce necesita o focalizare mai atenta asupra actualizarii si consistentei
continutului comparativ cu sistemele informationale pure - de exemplu prezentarile virtuale.
Aceste caracteristici sunt motivul pentru care numeroase concepte, metode, tehnici si utilitare ale
proiectarii software traditionale trebuie adaptate la cerintele proiectarii web, desi în unele situatii
acestea pot fi în totalitate neadecvate. Figura 1.2 ne ofera o imagine a acestor caracteristici si le
împarte în trei dimensiuni: "produs", "utilizare" si "dezvoltare", împreuna cu "evolutia" vazuta ca
o dimensiune atotcuprinzatoare.
C 2 3 4 5 6 7 8 9. 1 1 1 1 1
a . . . . . . . M 0 1 2 3 4
p N A P T a . . . . .
i e M r r e T O n P P S
t c o h o h e p a r U e e W
o e d i i n s e g o s r c e
l s e t e o t r e c u f u b
a l e c l a a m e r o r
r a c t o r r e s i r i
u t a g nt u m t s
r e e n e
l e u r i ul l t a a
p r e i pr d n t m
s a a
r i a oi e t e
o i e a n
i ct î t
b d n i
e a î el e
c n o c
z z
t a t r v f
a t r o o
r a t l l
i i t o
i n a s
p e i
e r
r e r
t e e
e
h
n
o
l
o
g
Caracteristica i
e
C P c
ar R o
Caracter
a O n
ul
ct D ti
docume
er U n
ntului / x x x x
si S u
multime
ti t
dianitat
ci
ea
le
a
pl
ic
at Aspecte
iil privind X x x x x
or calitatea
w
e H
b y
Non-
p
lineritat x x x x x
e
ea
rt
e
x
t
Dezorie x x x
ntarea /
Supraîn
PROIECTAREA WEB
C 2 3 4 5 6 7 8 9. 1 1 1 1 1
a . . . . . . . M 0 1 2 3 4
p N A P T a . . . . .
i e M r r e T O n P P S
t c o h o h e p a r U e e W
o e d i i n s e g o s r c e
l s e t e o t r e c u f u b
a l e c l a a m e r o r
r a c t o r r e s i r i
u t a g nt u m t s
r e e n e
l e u r i ul l t a a
p r e i pr d n t m
s a a
r i a oi e t e
o i e a n
i ct î t
b d n i
e a î el e
c n o c
z z
t a t r v f
a t r o o
r a t l l
i i t o
i n a s
p e i
e r
r e r
t e e
e
h
n
o
l
o
g
Caracteristica i
e
carcarea
cognitiv
a
P
r
Estetica X x x x x
e
z
e
n
n Evident
t x x x x x
a
r
e
U c
TI o
Spontan
LI n
eitate x x x x
Z t
A e
R x
E t
s
o Multicu x x x x x
c lturalis
PROIECTAREA WEB
C 2 3 4 5 6 7 8 9. 1 1 1 1 1
a . . . . . . . M 0 1 2 3 4
p N A P T a . . . . .
i e M r r e T O n P P S
t c o h o h e p a r U e e W
o e d i i n s e g o s r c e
l s e t e o t r e c u f u b
a l e c l a a m e r o r
r a c t o r r e s i r i
u t a g nt u m t s
r e e n e
l e u r i ul l t a a
p r e i pr d n t m
s a a
r i a oi e t e
o i e a n
i ct î t
b d n i
e a î el e
c n o c
z z
t a t r v f
a t r o o
r a t l l
i i t o
i n a s
p e i
e r
r e r
t e e
e
h
n
o
l
o
g
Caracteristica i
e
m
ial
c
o
Calitate
n
a
t x x x x x
serviciil
e
or
x
t
t
e
h Distribu
n irea
i multi- x x x x x x x x
c platfor
ma
c
o
Globalit
n x x x x
ate
t
e
x
t
n Disponi x x x
PROIECTAREA WEB
C 2 3 4 5 6 7 8 9. 1 1 1 1 1
a . . . . . . . M 0 1 2 3 4
p N A P T a . . . . .
i e M r r e T O n P P S
t c o h o h e p a r U e e W
o e d i i n s e g o s r c e
l s e t e o t r e c u f u b
a l e c l a a m e r o r
r a c t o r r e s i r i
u t a g nt u m t s
r e e n e
l e u r i ul l t a a
p r e i pr d n t m
s a a
r i a oi e t e
o i e a n
i ct î t
b d n i
e a î el e
c n o c
z z
t a t r v f
a t r o o
r a t l l
i i t o
i n a s
p e i
e r
r e r
t e e
e
h
n
o
l
o
g
Caracteristica i
e
bilitate
atura
l
D
E
Multidi
Z
sciplina x x x x
V
ritate
O
L
T e
A c
R h Tinerete x x
E i
p
a
Dezvolt
area
x x x x
comunit
atii
i
n
Neomo
f x x x x x x x
genitate
r
a
PROIECTAREA WEB
C 2 3 4 5 6 7 8 9. 1 1 1 1 1
a . . . . . . . M 0 1 2 3 4
p N A P T a . . . . .
i e M r r e T O n P P S
t c o h o h e p a r U e e W
o e d i i n s e g o s r c e
l s e t e o t r e c u f u b
a l e c l a a m e r o r
r a c t o r r e s i r i
u t a g nt u m t s
r e e n e
l e u r i ul l t a a
p r e i pr d n t m
s a a
r i a oi e t e
o i e a n
i ct î t
b d n i
e a î el e
c n o c
z z
t a t r v f
a t r o o
r a t l l
i i t o
i n a s
p e i
e r
r e r
t e e
e
h
n
o
l
o
g
Caracteristica i
e
s
tr
Imaturit
u
ate
c
x x x x x
t
u
r
a
Flexibil
p x x x x
itate
r
o
c
e
s Paraleli
x x
sm
EVOLUŢI
E
Schimb x x x x x x
are
continu
a
PROIECTAREA WEB
C 2 3 4 5 6 7 8 9. 1 1 1 1 1
a . . . . . . . M 0 1 2 3 4
p N A P T a . . . . .
i e M r r e T O n P P S
t c o h o h e p a r U e e W
o e d i i n s e g o s r c e
l s e t e o t r e c u f u b
a l e c l a a m e r o r
r a c t o r r e s i r i
u t a g nt u m t s
r e e n e
l e u r i ul l t a a
p r e i pr d n t m
s a a
r i a oi e t e
o i e a n
i ct î t
b d n i
e a î el e
c n o c
z z
t a t r v f
a t r o o
r a t l l
i i t o
i n a s
p e i
e r
r e r
t e e
e
h
n
o
l
o
g
Caracteristica i
e
Presiun
e
x x x x x
competi
tiva
Durata
de viata x x x x x x x
scurta
Continut
Generarea continutului, disponibilizarea acestuia, integrarea si actualizarea sunt în egala
masura importante la fel cum sunt dezvoltarea si testarea aplicatiilor web. Aplicatiile web sunt
utilizate în mod expres datorita continutului pe care îl ofera, fiind valabil motto-ul "Continutul
este regele". Dezvoltatorii aplicatiilor web trebuie prin urmare sa nu se comporte doar ca
programatori dar si ca autori. Aspectele importante vizeaza gradul variat al structurii continutului
si calitatea cererilor pe care utilizatorii le au asupra continutului. * Caracterul axat pe
documente si multi-median. În functie de modul de organizare, continutul este oferit sub forma
tabelelor, textului, elementelor grafice, animatiilor, elementelor audio sau video. Natura
documentului în aplicatiile web se refera la faptul ca continutul este asigurat, respectiv
documentele sunt generate în mod adecvat pentru anumite grupuri de utilizatori (de exemplu
informatii pentru turisti într-o anumita zi de sarbatoare dintr-o anumita regiune). Aceasta implica
si anumite cerinte speciale privitoare la usurinta în folosire. Continutul este într-o anumita
proportie generat si actualizat dinamic (de exemplu numarul de camere disponibile dintr-un
sistem informational pentru turism). Mai mult, web-ul poate fi folosit ca infrastructura pentru
transmiterea continutului multimedia (de exemplu videoconferinte sau aplicatiii Real
Audio).
Hipertext
Prezentarea
La nivelul prezentarii, principalele doua caracteristici ale aplicatiilor web sunt estetica si
auto-explicarea.
Utilizarea aplicatiilor web este prin urmare caracterizata de necesitatea adaptarii continue
la situatii de utilizare specifice (contexte). Reglarea acestor contexte poate fi necesara în mod
egal pentru toate partile aplicatiilor web (continut, hipertext si prezentare). Datorita semnificatiei
ajustarii contextului, caracteristicile asociate utilizarii sunt împartite în trei grupuri: context
social, context tehnic si context natural.
Spontaneitatea. Utilizatorul poate vizita si parasi o aplicatie web oricând doreste, chiar
daca este situl unui competitor. Utilizatorul web nu trebuie sa fie loial nici unui furnizor de
continut, web-ul fiind un mediu care nu atrage nici o obligatie. Deoarece este usor sa gasim
aplicatii concurente cu ajutorul motoarelor de cautare, utilizatorii vor utiliza o aplicatie web doar
daca le va aduce un avantaj imediat.
Distribuirea multi-plaforma. Aplicatiile web ofera de obicei servicii nu doar unui anumit
tip de dispozitiv ci si dispozitivelor mobile cu specificatii diferite (dimensiunea monitorului,
capacitatea memoriei, software-ul instalat). Numarul mare de versiuni ale browserului reprezinta
o provocare datorita diferitelor functionalitati si restrictii ale acestora (deseori acestea nu
implementeaza specificatiile presupuse). Acest lucru determina dificultati în crearea unei
interfete utilizator consistente si în testarea aplicatiilor web.
Globalitatea. Locatia din care o aplicatie web este accesata (pozitia geografica) este
importanta pentru internationalizarea aplicatiilor web relativ la diferentele regionale, culturale si
lingvistice. În plus, locatia fizica poate fi utilizata împreuna cu modelele locatiei pentru a defini
pozitia logica cum ar fi locul de rezidenta sau locul de munca în scopul de a oferi servicii
"constiente" de locatie. "Constienta" locatiei determina dificultati suplimentare pentru testarea
aplicatiilor web, deseori fiind dificil sa simulam schimbarea locatiei si/sau testa toate locatiile
posibile. Disponibilitatea globala sporeste de asemenea cererile privind securizarea aplicatiilor
web pentru a preveni accesul deliberat sau accidental al utilizatorilor în zone private sau
confidentiale.
Disponibilitatea. "Mecanismul de distribuire instantanee" îsi are originea în natura web-
ului de a face aplicatiile imediat disponibile. Aplicatiile web devin imediat utilizabile, ceea ce
implica ca calitatea produsului dezvoltat sa fie sigur. Disponibilitatea permanenta (24/7) sporeste
de asemenea pretentiile privind stabilitatea aplicatiilor web. În plus, serviciile dependente de
timp sunt posibile prin luarea în considerare a acestui aspect (timpul) (de exemplu informatiile
privind programul depind de ora din zi si ziua din saptamâna).
Echipa de dezvoltare
Vârsta medie mica. Dezvoltatorii de aplicatii web sunt în medie mult mai tineri si mai
putin experimentati decât dezvoltatorii de software traditionali. De obicei sunt apelati cu
stereotipuri de tipul "ciudati în domeniul tehnologiei" carora nu le pasa de vechile conventii si
sunt foarte interesati în folosirea noilor utilitare si tehnologii.
Infrastructura tehnica
Neomogenitatea si imaturitatea utilizarii componentelor sunt caracteristici importante ale
infrastructurii tehnice a aplicatiilor web.
Integrarea
- existenta unui numar mare de surse care se schimba frecvent si cu un grad înalt de
autonomie;
- diferite surse sunt adesea foarte eterogene la diverse nivele (nivelul datelor, schemei sau
modelului de date).
1.2.4 Evolutia
Evolutia este o caracteristica care guverneaza toate cele trei dimensiuni ale produsului,
utilizarii si dezvoltarii. Necesitatea evolutiei poate fi argumentata prin schimbarea continua a
cerintelor si conditiilor, presiunea competitiva si dezvoltarea rapida.
Schimbarea continua
Aplicatiile web se schimba rapid si sunt în consecinta într-o evolutie permanenta datorita
schimbarii constante a cerintelor sau conditiilor[23]. Schimbarea rapida si permanenta a
tehnologiilor web si a standardelor în particular, necesita o adaptare continua a aplicatiilor web la
acestea. Aceasta schimbare are doua cauze:
Presiunea competitiva
Presiunea competitiva ridicata de pe web, presiunea de pe piata si necesitatea prezentei pe
web, sporeste nevoia de a scurta ciclul de viata a produsului si nu lasa loc pentru un proces de
dezvoltare sistematica.
Dezvoltarea competitiva
- abordare (metodologie);
- dezvoltarea produsului;
Elementul de baza este partea introductiva prezentata anterior, web-ul semantic fiind
"acoperisul", perspectiva viitoare.
Figura 3.
Abordari
ulterioare
Documentarea cerintelor
Managementul cerintelor
Multidisciplinaritatea
Indisponibilitatea împuternicitilor
Calitatea continutului
Multe aplicatii web sunt înca dezvoltate ca solutii tehnice izolate, fara o
întelegere a rolului si impactului acestora într-un context general. O aplicatie
web nu poate fi o finalitate prin ea însasi; ea trebuie sa tina cont de
obiectivele afacerii clientului. Pentru ca aplicatia web sa aiba succes este
important sa clarificam contextul sistemului(de exemplu prin analizarea si
descrierea proceselor de afaceri existente) si motivul pentru care sistemul va
fi dezvoltat. ("Pentru ce facem acest lucru?"). Dezvoltatorii trebuie sa
înteleaga modul în care sistemul este implementat în mediul sau. Analiza
afacerii poate stabili valoarea unei aplicatii web în relatie cu resursele pe
care le utilizeaza cerintele. Întelegerea contextului sistemului ajuta la
identificarea împuternicitilor, familiarizarea cu scopul aplicatiei si analizarea
constrângerilor[31].
Implicarea împuternicitilor
Riscuri
Cerintele functionale
Constrângerile proiectului
Relatarile
Cerintele specificate
Specificatiile de formatare
Specificatiile formale
Specificatiile formale sunt scrise într-un limbaj care utilizeaza o sintaxa
si semantici definite formal. Cel mai bun exemplu este "Z"
(ISO/IEC13,568:2002). Specificatiile formale sunt greu de utilizat pentru
aplicatiile web.
Oportunitatea
2.4.3 Utilitare
Extragerea cerintelor
Validarea cerintelor
Datorita caracterului deschis al Internetului sistemele de raspuns
online (feedback) pot suplimenta sau chiar înlocui metode costisitoare cum
ar fi întâlnirile cu personalul sau interviurile, când se valideaza cerintele
aplicatiei web. De exemplu utilizatorii Internetului pot fi invitati sa participe
la un sondaj pe web pentru a comunica gradul lor de multumire fata de
aplicatia web. Remarcam în acest context ca datorita spontaneitatii
comportamentului interactiv deseori nu putem observa o aprobare sau o
negare ci doar indiferenta. Daca un unui utilizator îi va place aplicatia web o
va utiliza dar va fi reticent la trimiterea unui feedback (de exemplu informatii
privind erorile gasite) pentru a contribui la dezvoltarea si îmbunatatirea
aplicatiei.
Managementul cerintelor
2.5 Concluzii
Figura 3.1
Cerinte pentru
modelarea aplicatiilor
software
Originile
modelarii le putem regasi în proiectarea datelor si în proiectarea software-
ului. Proiectarea datelor modeleaza aspectele structurale (datele) unei
aplicatii, identificarea entitatilor, gruparea acestora si relatiile dintre ele fiind
obiectivul major. În acest sens cel mai cunoscut este modelul entitate-relatie
(ER)[37]. În schimb, modelarea aplicatiilor software pune accentul pe
aspectele comportamentale pentru îndeplinirea cerintelor limbajelor de
programare si se bazeaza în prezent în special pe abordarea orientata-obiect.
Cea mai importanta caracteristica a modelarii orientata-obiect este
abordarea holistica a modelarii sistemului si conceptul de obiect, care
cuprinde structura si comportamentul.
Nivele
Pentru a modela aplicatiile web trebuie avut în vedere caracterul
orientat pe document al continutului acestora si navigarea hipertext non-
liniara. Din acest motiv distingem trei nivele ale modelarii aplicatiilor web
(vezi Figura 3.2) spre deosebire de cele doua nivele utilizate în metodele de
modelare pentru aplicatiile traditionale. Cele trei nivele sunt continutul
(informatia si logica aplicatiei care stau la baza aplicatiei web), hipertextul
(structurarea continutului în noduri si legaturile dintre acestea) si
prezentarea (interfata utilizator sau layout-ul paginii). Majoritatea metodelor
utilizate în modelarea aplicatiilor web utilizeaza aceasta separare pe trei
nivele[39].
Figura
3.2 Cerintele
modelarii
aplicatiilor
web
Aspecte
Faze
Personalizarea
Se pot utiliza diverse tehnici pentru a identifica, analiza, descrie, evalua si administra
cerintele aplicatiilor web. Cazurile de utilizare reprezinta tehnica de modelare adecvata cerintelor
functionale deoarece ele pot fi reprezentate în mod grafic. Functionalitatea în ansamblu a
aplicatiei web este modelata ca un set de cazuri de utilizare care descriu cerintele aplicatiei web
din perspectiva actorilor (indivizi si alte sisteme). Mai mult, cazurile de utilizare pot
fi suplimentate de diagrame de activitate UML pentru a descrie cerintele functionale în detaliu.
Toate aplicatiile web au cel putin un utilizator uman, de cele mai multe ori anonim. În
exemplul urmator al unei conferinte online, pentru sistemul de recenzie al articolelor pot fi
identificati 4 actori: utilizatorii sistemului de recenzie, autorii care trimit articole pentru
conferinta, membrii comitetului de organizare a conferintei (recenzenti) care revizuiesc articolele
trimise si presedintele comitetului de organizare (presedintele CO). Figura 3.3 reprezinta o
diagrama tip caz de utilizare, parte a unui model de utilizare pentru un sistem de recenzie, care
va servi drept punct de pornire pentru modelarea ulterioara. Cerintele de navigare care
suplimenteaza cerintele functionale sunt definite explicit prin stereotipul <<navigare>> în
diagrama tip caz de utilizare.
Figura 3.3: Diagrama de utilizare de caz pentru un sistem de recenzie
Cazurile de utilizare trebuie descrise în detaliu; putem descrie fiecare caz de utilizare în
mod textual sau prin utilizarea diagramelor de comportament (de exemplu diagrama de
activitate). Diagramele de activitate sunt utilizate în principal când cele de utilizare de caz se
solicita o logica a aplicatiei mai complexa. Un astfel de caz de utilizare poate fi implementat ca
un serviciu web. Figura 3.4 este un exemplu de proces simplificat pentru trimiterea articolelor.
Obiective
Modelarea continutului determina un model care include atât aspectele structurale ale
continutului (sub forma diagramelor de clasa) cât si - în functie de tipul aplicatiei web
- aspectele comportamentale (sub forma diagramelor de stare si interactiune).
Concepte
Obiective
Obiective
Concepte
Figura 3.10
Diagrama de
interactiune a
sistemului de
recenzie
Concepte
Metode de modelare
HDM
WebML
HDM-Lite
OOHDM
WebSA
WAE2
OO-H
OOWS
W2000
WSDM
UWE
WAE
UML
OMT
Utilitare
VisualWADE
OpenUWE
3.8 Concluzii
4.1 Generalitati
Definirea arhitecturii
Figura 4.1
Factori care
influenteaza
dezvoltarea
unei
arhitecturi
sabloane
Cadre de lucru
Clasificarea arhitecturilor
În Figura 4.2 sunt reprezentate componentele de baza ale arhitecturilor web si relatiile
dintre ele. Comunicarea dintre aceste componente se bazeaza în general pe principiul cerere-
raspuns ( o componenta - un browser web trimite o cerere catre o alta componenta - serverul web
si raspunsul la aceasta cerere este trimis înapoi pe acelasi canal de comunicare - comunicare
sincrona).
Figura
4.2
Figura 4.3
Arhitectura pe doua
straturi pentru
aplicatiile web
Arhitectura
pe doua straturi
poate lua forme
diferite în mediul aplicatiilor web. O cerere a unui client poate puncta direct
catre o pagina HTML statica, fara o solicita un rationament de procesare pe
stratul server sau poate accesa o baza de date prin intermediul logicii
aplicatiei pe serverul web (de exemplu sub forma scripturilor CGI). Paginile
HTML dinamice includ instructiuni de tip script direct în codul HTML (de
exemplu când este utilizat SSI - Server-Side Include sau PHP) si ele sunt
interpretate fie de bazele de date cu functionalitati HTML fie de un server
web. Logica aplicatiei sau paginile HTML dinamice pot utiliza servicii
(exemplu identificarea utilizatorilor sau criptarea datelor) când este generat
un raspuns HTML. Aceasta arhitectura este adecvata aplicatiilor web simple.
Arhitecturi pe N straturi
JSP-Model-2
Struts
OOHDM-Java2
Figura 4.7
Componentele OOHDM-Java2
Proxy-uri
Arhitecturi integrate
Pe lânga datele structurate din bazele de date si cele multimedia de pe serverele media,
continutul aplicatiilor web este frecvent procesat sub forma documentelor. Arhitecturile de
management al continutului ofera posibilitatea integrarii documentelor din surse diferite,
reprezentând un mecanism pentru integrarea acestora în aplicatiile web.
Figura
4.10
Arhitectura de
management a
continutului
pentru
aplicatiile web
Arhitecturi
pentru datele
multimedia
Exista doua domenii distincte de aplicatii pentru streaming-ul datelor multimedia: primul
face disponibil la cerere continutul existent (video la cerere) iar al doilea distribuie live
continutul unui numar mare de utilizatori (exemplu web casting). Fiecare din aceste doua cazuri
de utilizare formuleaza cereri diferite la nivelul retelei si arhitecturilor hardware si software. Desi
fiecare utilizator stabileste propria sa conexiune la server într-un scenariu la cerere (vezi figura
4.12) cauzând probleme majore ale latimii de banda si încarcarii serverului, broadcasting-ul
realizeaza cereri sporite la nivelul retelei. În mod ideal, un server utilizat pentru broadcasting sa
administreze un singur stream media, care este difuzat simultan catre toti utilizatorii de catre
infrastructura retelei (exemplu de router-e) ca în figura 4.13. Deoarece multicasting-ul nu este
suportat în general în internet, serverul trebuie sa foloseasca conexiuni punct-la-punct pentru a
simula functionalitatea broadcast.
4.6 Concluzii
The development of Web applications is driven by the technical development of (new) client
devices and emerging server infrastructures. The trend towards ubiquitous and portal-oriented
applications will undoubtedly continue in view of the emergence of continually more powerful
This trend has also led to the emergence of a number of new infrastructure approaches, e.g.,
peer-to-peer infrastructures, which will have a major influence on the development of ubiquitous
Web applications. On the other hand, the bandwidth of server infrastructures used for Web
(1) proiectarea prezentarii - în care proiectam aspectul, un rol important având interfetele
utilizator multi-formale
Pe masura ce proiectarea devine mai concreta pe fiecare nivel si pentru ambele parti
(noduri, retea) ne vom concentra asupra utilitarelor pentru proiectarea hipertext-ului, informatiei
si software-ului.
În capitolul de modelare a aplicatiilor web ne-am concentrat asupra celor trei straturi
(prezentare, hipertext si informatie) punând accentul pe aspectul datelor. În acest capitol vom
insista asupra "stratului inferior" al aplicatiilor web, abordându-l din punct de vedere tehnic
(functie din figura 5.1). Desi complexitatea creste, aceasta are beneficiul ca aspectele
modularizarii si proiectarii pot fi aplicate pentru toate straturile. Astfel, vom scinda aspectul
hipertext în doua (retea si componente) si le vom aranja pe cele trei straturi. Modelarea
prezentarii din capitolul de modelare este si ea împartita în doua:
Initial, World Wide Web-ul a fost caracterizat prin pagini HTML axate pe document si
bazate pe text, pentru care termenul de "aplicatie web" parea exagerat. Limbajul de descriere a
unui document HTML îsi are originea în domeniul presei si editorialelor si promoveaza crearea
de documente mari, structurate, care sunt îmbunatatite prin legaturi. Secretul succesului a constat
în integrarea totala a legaturilor globale (URL-uri). Trecerea catre "adevaratele" aplicatii web,
împreuna cu dezvoltarea limbajelor de scripting (exemplu JavaScript pe partea de browser) si a
interfetelor (exemplu CGI pe partea de server) au permis interactivitatea, accesul la bazele de
date si crearea de documente HTML dinamice. Pentru a reflecta numarul mare de aspecte diferite
ale proiectarii aplicatiilor web, vom utiliza în continuare subsarcini de proiectare ale aplicatiilor
web, dupa cum este schitat în figura 5.1. Vom face diferenta între componentele aplicatiilor web
(nodurile si legaturile dintre acestea, punctule de pornire si destinatie din interiorul nodurilor -
"ancorele") si reteaua alcatuita din astfel de componente (întreaga aplicatie web).
Pe lânga cele doua parti ale structurii mentionate anterior, figura 5.1 prezinta un al treilea
strat prin care se face o clara diferentiere între prezentare si interactiune, similara conceptului
MVC (Model-View-Controller). Pe de alta parte, prezentarea afecteaza reteaua, luând în
considerare nodul curent vizitat de un utilizator. Prezentarea componentelor, adica continutul
nodului, este o sarcina de proiectare esentiala, punându-se accentul pe caracteristicile relevante
ale aplicatiilor web - în special cele referitoare la continut si caracteristicile referitoare la
prezentare cum ar fi estetica si autoexplicarea. De aici rezulta importanta implicarii expertilor
(numiti proiectanti media în acest context) si punerea de acord a acestora cu alti dezvoltatori ai
aplicatiei web (numiti ingineri în acest context).
În figura 5.1 un strat suplimentar cunoscut sub numele de proiectare functionala a fost
referit prin termenul "functie", pentru a include toate stadiile dezvoltarii web. Stadiul initial axat
pe documente a fost caracterizat în principal prin continut static, respectiv continut sub forma
componentelor specificate de autori; astfel acele functii erau doar apeluri ale prezentarii sau
functii de playback pentru media, acest strat fiind practic gol. Datorita posibilitatii de a accesa
bazele de date, aplicatiile web au fost tot mai mult influentate de principiile sistemelor
informationale clasice si bazelor de date, astfel proiectarea partii functionale reducându-se la
proiectarea informatiei. Împreuna cu tranzitia la categoriile de aplicatii web recente (bazate pe
fluxuri de date, colaborative, portaluri, omniprezente), componentele cu functionalitati extinse au
ajuns în prim plan. Abordarile orientate-obiect au fost cele mai indicate pentru modelarea
integrala a aspectelor functionale si ale datelor.
Trebuie facuta o separare între epoca dinaintea web-ului, epoca HTML de la aparitia
web-ului pâna în 1997 si epoca XML actuala (W3C 1998). Începutul erei HTML a fost focalizat
exclusiv pe authoring, fiind suportate doar documentele hipertext (folosindu-se asa-numitul
limbaj de programare web HTML care continea instructiuni sau etichete presarate în
documentele text). Pe parcurs HTML a suportat si alte elemente media cum ar fi imaginile,
elementele video si audio reflectate prin termenul hipermedia, care esteutilizat uneori pentru a
deosebi HTML-ul de hipertext si uneori devenind sinonim cu hipertextul.
Conceptul hipertext este mai vechi decât HTML, el fiind definit prima oara de catre
Vannevar Bush la sfârsitul celui de-al doilea razboi mondial si tratat ulterior de Ted Nelson în
1960. Documentele hipertext sunt alcatuite din:
- HTML-ul poate fi vazut ca un limbaj de descriere a documentelor care are grefate etichete
hipertext. Acesta determina indivizii sa neglijeze principiul atomicitatii nodurilor;
majoritatea documentelor HTML (de fapt nodurile) se întind pe multiple pagini iar ideea de
baza a hipertextului (citirea non-secventiala) este prezenta doar rudimentar sau în cazuri
exceptionale.
- HTML mixeaza aspectele ortogonale precum structura hipertext (via etichete pentru
legaturi si ancore), structura documentului (titluri, liste) si layout-ul (culoare de fundal,
scris cursiv).
- desi web-ul recunoaste arhitectura software-ului distribuit prin browser si servere, prezinta
lacune în privinta arhitecturilor software "orizontale" ale masinilor abstracte. Un exemplu
include arhitectura clasica Dexter, care separa continutul si managementul retelei de
prezentare.
- HTML-ul este axat pe text. Celelalte formate media sunt incluse doar ca destinatii ale
legaturii, iar multe alte tipuri media nu sunt suportate ca surse ale legaturii.
Pentru o mai buna întelegere a aspectului de authoring din XML ne vom îndrepta atentia
spre originea HTML-ului; acesta îsi are originea în SGML - un limbaj de marcare generic
standardizat pentru lumea tipografiilor si companiilor editoriale. "Generalizat" semnifica faptul
ca SGML defineste etichete si reguli valide care pot fi utilizate pentru o întreaga clasa de
documente. Rezultatele sunt DTD-urile (document type definitions). Un parser SGML poate citi
DTD-uri si verifica documente pentru a vedea daca ele corespund sau nu cu un DTD.
Companiile editoriale utilizeaza DTD-urile pentru a face distinctie între carti, reviste si formate
de brosuri. Initial HTML nu a fost decât un SGML-DTD pentru formatul ecran, extins prin
etichete pentru legaturi si ancore. Browserele din epoca HTML nu sunt parsere SGML dar dispun
de suport pentru câteva DTD-uri (versiunile HTML suportate) si includ modul de interpretare a
etichetelor si traducerea comenzilor. "Afisarea" este de asemenea inclusa, introducerea CSS-ului
oferind posibilitatea reutilizarii layout-urilor si o modalitate de separare a layout-ului de
structura.
Epoca XML a disparut când PC-urile au putut sa "digere" parserele SGML. Un numar mare
de "limbaje de programare simple" definite ca XML-DTD-uri (recent denumite scheme XML) au
fost create si includ în prezent un limbaj pentru descrierea apelurilor de proceduri la distanta
(SOAP), un limbaj de descriere a tranzactiilor financiare (XML-EDI), o replica la HTML
(XHTML) si altele. Deoarece XML a permis descrierea formala a sintaxei, browserele moderne
pot parsa arbitrar schema si documentele XML, dar pot executadoar XHTML.
Putem identifica câteva reguli de baza pentru proiectarea aplicatiilor web bazate pe
documente - din perspectiva authoring-ului:
În continuare, vom face o distinctie din perpsectiva istorica între dezvoltarea progresiva a
"web-ului programabil" si dezvoltarea programarii distribuite.
Web-ul programabil
Primul pas catre "web-ul dinamic a fost realizat prin intermediul formularelor HTML.
Odata cu introducerea acestora semnificatia limbajelor de script a sporit simtitor, ele fiind ideale
pentru procesarea solicitata de browsere sau servere si usor de folosit. Scripturile erau în general
folosite pentru a crea direct paginile HTML, în functie de intrarile din formularele HTML.
Indiferent de limbajul utilizat pentru crearea noilor pagini HTML, scriptul sau programul trebuie
sa ofere structuri de date predefinite si operatii capabile sa creeze elementele paginii HTML
(antete de diferite nivele, paragrafe, liste), sa le adauge continut si în final sa le asambleze (sub
forma unei structuri de elemente de tip arbore). Acest lucru se bazeaza pe DOM (Document
Object Model) care a fost vazut de-a lungul timpului ca noi versiuni de HTML si care este
momentan disponibila în limbajele de scripting sau limbajele de programare.
Programarea distribuita
Elementele pot fi implementate static sub forma paginilor generate de client (exemplu
JavaScript) sau sub forma paginilor generate de server (ASP, JSP, PHP). În plus, ele pot fi
implementate ca applet-uri, interfete utilizator ale programelor orientate-obiect distribuite (Java)
sau sub forma elementelor media statice/generate. Utilizatorul distinge în browser doar continut
media, formulare sau interfete utilizator. Elementele pe care utilizatorul le poate selecta, executa
clic si rula sunt legaturile.
Legaturile se numesc URL-uri în HTML sau Xlinks în XML, daca tinta este o informatie
si nu un program, si daca continutul si adresa sunt cunoscute în momentul implementarii (HTML
simplu) sau în momentul prezentarii (HTML dinamic). Din alt punct de vedere, legaturile
reprezinta apeluri la distanta catre scripturi aflate la distanta (daca informatia trebuie "calculata")
sau metode (daca calculele necesare sunt algoritmice).
Abordarea structurala
Proiectarea prezentarii - are iesiri sub forma sub forma documentelor, media si datelor (în
sensul sistemelor informatice sau în sensul datelor aplicatiei pentru o componenta software) pe
partea de componente. Pe partea sa de retea, proiectarea trebuie sa se axeze pe vizualizare si pe
componentele curent vizitate de un utilizator.
Multe pagini web, aplicatii web si situri web în întregime sunt restructurate sau adaptate
unui nou design vizual pe parcursul ciclului lor de viata. În dezvoltarea web clasica sute sî chiar
mii de documente HTML trebuiau adaptate manual, iar indivizii implicati în modificarea
documentelor HTML aveau nevoie de cunostinte solide în acest domeniu. Desi puteau fi folosite
anumite utilitare, o parte considerabila a acestora trebuiau modificate manual (modelarea
consistenta a întregului continut fiind imposibila sau foarte costisitoare).
Instrumentele disponibile pentru crearea aplicatiilor web pot fi grupate în doua categorii,
în functie de modul în care acestea suporta proiectarea prezentarii: editoare de pagina
(conventionale) si sisteme de management a continutului (mai avansate).
Editoarele de pagina sunt utilizate în general pentru a crea prezente ad-hoc mai mici pe
internet. Principalul lor beneficiu este ca acestea sunt similare cu software-ul standard si permit
utilizatorilor sa lucreze într-un mediu familiar si sa formateze continutul în mod direct.
Dezavantajele principale sunt necesitatea cunoasterii HTML-ului pentru realizarea anumitor
sarcini si lucrul dezvoltatorilor la nivel de pagina, ceea ce duce la o pierdere a imaginii
conceptuale de ansamblu. În plus, layout-ul, navigarea si interactiunea sunt mixate.
Continutul unei pagini web rezulta din combinarea continutului multimedia dezvoltat
explicit de pe partea de componente si continutul definit implicit pe partea de retea (exemplu
optiuni de navigare).
La întrebarea "unde sunt?" putem utiliza schema de navigare "farâmitura de pâine" bazata
pe basmul Hansel si Gretel. Într-o interfata utilizator care implica navigarea prin date sau pagini
"farâmitura de pâine" poate fi un mecanism util pentru reconstituirea pasilor, lasând o urma
vizuala a caii urmate. În orice punct utilizatorul poate reconstitui pasii parcursi catre orice punct
vizitat anterior.
Raspunsul la întrebarea "unde am fost?" nu este usor de gasit, deoarece HTTP este un
protocol care nu indica starea si tehnicile folosite pentru legaturi sunt rudimentare. Butonul
"Back" si lista paginilor vizitate anterior sunt cel mai des folosite în browsere. Urmatorul
exemplu demonstreaza necesitatea unei coordonari între proiectarea prezentarii si a interactiunii.
De exemplu, când achizitioneaza articole de pe web, utilizatorul nu poate folosi butonul "Back"
pentru a anula o comanda, iar confuzia generata printre utilizatori poate fi evitata doar în câteva
aplicatii web bine proiectate. Un alt exemplu este consistenta, a carei prezenta este ideala pe
întregul web. Prezentari diferite ale legaturilor vizitate anterior si ale legaturilor nevizitate
reprezinta un concept des întâlnit în proiectarea prezentarii. Jakob Nielsen recomanda mentinerea
culorilor uzuale pentru legaturi deoarece consistenta ar trebui sa fie prioritara esteticii.
O abordare des întâlnita pentru a raspunde la întrebarea "unde pot merge?" consta în
afisarea tuturor nivelelor de top dintr-un site web. Folosind schema de navigare "farâmitura de
pâine" si evidentiind destinatia adecvata la care se poate ajunge din interiorul paginii curente,
utilizatorul obtine o informatie suficienta privind pozitia acestuia în interiorul retelei. Este minim
recomandata aceasta marcare care sa evidentieze legaturile în cadrul textului; în plus, este
indicata evidentierea în cadrul barei de navigare.
Îmbunatatirea cerintelor pentru proiectarea prezentarii rezulta din cresterea cererii pentru
folosirea în proiectare a unui numar mare de diferite dispozitive cu suport web.
Spectrul acestor dispozitive cu suport web include toate clasele de dispozitive mobile - de
la cele mai mici telefoane mobile care dispun de browsere WAP pâna la telefoane inteligente si
tablet PC-uri cu ecrane sensibile la atingere. Prin prisma facilitatilor tehnice oferite de
dispozitivele mobile remarcam o serie de optiuni de prezentare si interactiune pentru utilizare în
aplicatiile web.
Interactiunea cu utilizatorul
Pe masura ce aplicatiile web au devenit mai sofisticate, au fost asociate multiple roluri
HTML-ului: transportul informatiei, layout-ul, interactiunea cu utilizatorul, procesele si accesul
direct al continutul digital. Odata cu cresterea responsabilitatilor, HTML-ul a evoluat,
încorporând mai multe functionalitati pentru a se adapta unor scenarii din ce în ce mai complexe.
În acest proces interactiunea cu utilizatorul a devenit o limitare majora: serverele trebuie sa
genereze o noua pagina de fiecare data, aplicatiile ruleaza din ce în ce mai greu, iar din
momentul în care formularele au devenit insuficiente pentru a acoperi tehnicile mai avansate de
interactiune cu utilizatorul, HTML-ul ca interfata a cunoscut un declin comparativ cu aplicatiile
desktop. Pentru a elimina aceste limitari au fost dezvoltate diferite abordari tehnologice.
Figura
5.2
Compararea
principalelor
tehnologii de
dezvoltare a
interfetelor
1. Întregul nod este trimis utilizatorului ca HTML. Pagina HTML include fie scripturi fie
tehnologii plug-in pentru a permite utilizatorului accesul la un subset al informatiei.
2. Întregul nod este trimis utilizatorului ca o singura pagina HTML fara scripturi.
Utilizatorul selecteaza legaturile relative de pe pagina pentru a naviga în acea pagina.
3. O vizualizare partiala spere nod este trimisa utilizatorului. Pagina afiseaza un subset de
informatii aranjate în functie de semnificatie. Utilizatorul poate naviga catre alte pagini pentru a
citi în întregime informatia dorita.
HTML+scripting + - +
HTML+legaturi relative + + -
Tabelul 5.2 Alternativele de implementare pentru noduri. Tabelul afiseaza modul în care
abordari diferite ale implementarii au un impact pozitiv sau negativ asupra semanticii navigarii,
portabilitatii si caracterului utilizabil.
Paginile legate elimina utilizarea excesiva a scrolling-ului dar conduc catre cai de
navigare suplimentare si deci la o latenta mai mare la afisarea în mod repetat a unei informatii.
Studiile efectuate asupra utilizatorilor recomanda folosirea scrolling-ului în locul unei navigari
suplimentare (Nielsen 1997a).
Proiectarea navigarii
Rezultatul obtinut din proiectarea navigarii este dublu: pe de o parte elementele pe care
utilizatorii le pot accesa si pe de alta parte structura de navigare. Elementele devin noduri în cel
mai simplu caz, iar structura defineste relatiile dintre noduri. Aceste relatii vor deveni ulterior
legaturi vizibile în interfata utilizator. În acest scenariu proiectarea interactiunii defineste
aspectele necesare pentru navigarea în sine (ancora si URL) si elementele necesare pentru
orientarea utilizatorilor.
Textul unei ancore trebuie sa fie autoexplicativ (W3C 2001c); iar legaturile trebuie
clasificate pe categorii. În plus, iconitele pot fi utilizate în interiorul ancorelor pentru a vizualiza
legaturile. Desi ancorele si iconitele pot fi specificate static, proprietatile care se modifica
dinamic (exemplu daca anumite tipuri media pot fi deschise) trebuie marcate prin utilizarea
scripturilor incluse în aceste pagini.
Navigare si orientare
Integrare
Dezvoltarea sistemelor software traditionale este procesul proiectarii unui corect "CUM"
pentru un bine definit "CE". Padridge (1992)
Din momentul în care am definit cerintele pentru o aplicatie web, am ales o arhitectura si
am dezvoltat un mod de proiectare (pe scurt am clarificat "ce"), putem demara faza de
implementare (pe scurt "cum"). În acest context, reutilizarea are un rol important în procesul de
dezvoltare. Cerintele rezultate pentru implementarea aplicatiilor web încep cu alegerea
tehnologiei adecvate. Separarea continutului si a prezentarii si cerintele pentru distribuirea si
integrarea altor sisteme, în functie de arhitectura selectata sau existenta, sunt cerinte esentiale
pentru o utilizare adecvata a tehnologiilor.
Datorita evolutiei rapide a tehnologiilor bazate pe web este imposibila descrierea tuturor
tehnologiilor. Din acest motiv ne vom limita doar la prezentarea anumitor tehnologii. În primul
rând vom prezenta cele mai folosite protocoale utilizate pe web, accentul fiind pus pe cel mai
important protocol pentru World Wide Web - HTTP (Hypertext Transfer Protocol).
Marcarea
1. marcare: acesta este textul introdus în document pentru a adauga informatii despre
modul în care caracterele si continutul trebuie reprezentat în document;
Hipertext si hipermedia
Pe baza utilizarii marcarii pentru marcarea elementelor singulare, hipertextul este vazut
ca o organizare a interconexiunilor unitatilor de informatii singulare. Relatia dintre aceste unitati
poate fi exprimata prin legaturi. Conceptul hipertext este fundamental pentru World Wide Web.
În timp ce hipertextul desemneaza doar legaturile unitatilor de informatie în versiunea lor
text, hipermedia este vazuta ca o modalitate de extindere a principiului hipertext catre obiectele
multimedia arbitrare (ex: imagini sau video).
SMTP (Simple Mail Transfer Protocol) (Postel, 1982), combinat cu POP3 (Post Office
Protocol) sau IMAP (Internet Message Access Protocol) (Crispin, 2003) permite trimiterea si
receptionarea e-mail-urilor. În plus, SMTP este din ce în ce mai mult utilizat ca un protocol de
transport pentru schimbul de mesaje asincrone bazate pe SOAP.
RTSP reprezinta un standard publicat de IETF (Internet Engineering Task Force) si a fost
proiectat pentru a suporta distribuirea de date multimedia în timp real. Spre deosebire de HTTP,
RTSP permite transmiterea resurselor de resurse catre client într-un mod oportun comparativ cu
transmiterea acestuia în întregime (imediata). Acest mod de transmitere este cunoscut sub
denumirea de streaming. Streaming-ul permite schimbarea manuala a "perioadei de timp" audio-
vizuale prin solicitarea stream-ului la un anumit moment, astfel oferindu-ne posibilitatea de a
controla rularea componentei media într-un mod continuu. De exemplu, putem implementa
functii similare celor de pe dispozitivele hi-fi, cum ar fi "pauza", "înainte" sau "înapoi" sau
repozitiona rularea componentei media într-un punct viitor sau trecut.
HTTP a devenit un protocol foarte important în ultimii ani. Proliferarea pe scara larga a
standardelor web si posibilitatea de extindere a web-ului a permis HTTP-ului sa devina cel mai
popular protocol de transport pentru continutul Web. HTTP este un protocol simplu care
controleaza modul în care resursele (ex: documetele HTML sau imaginile) sunt accesate. HTTP
este construit pe stiva TCP/IP, unde serviciul este în mod normal disponibil pe portul 80.
Resursele sunt adresate prin utilizarea conceptului de URI (Uniform Resource Identifier). URI-
urile nu sunt legate de un anumit protocol cum este HTTP; ele reprezinta un mecansim de
adresare uniform, care este utilizat de asemenea în HTTP.
Urmarirea sesiunii
Termenul sesiune este utilizat pentru a defini o astfel de secventa a cererilor HTTP dintre
un anumit utilizator si un server într-o anumita perioada de timp. Deoarece HTTP este un
protocol simplu, serverul web nu poate aloca automat cererile venite pentru o sesiune. Distingem
doua metode principale care permit serverului web sa aloce automat o cerere venita pentru o
sesiune:
- în fiecare din aceste cereri catre server, clientul însusi se identifica într-un mod unic.
Aceasta înseamna ca toate datele trimise catre server sunt alocate ulterior sesiunii respective;
- toate datele schimbate între un client si un server sunt incluse în fiecare cerere pe care
un client o trimite unui server.
În majoritatea cazurilor, este de dorit sa lasam datele logicii aplicatiei pe server, astfel
încât logica aplicatiei sa nu fie atât de simpla. De obicei, este implementat un mecanism de
urmarire a sesiunilor prin rescrierea URL-ului sau cookies.
Rescrierea URL-ului
Rescrierea URL-ului este un mecanism care transmite datele relevante ale sesiunii ca un
parametru în URL. Datele transmise pot apoi fi utilizate pentru a reconstrui sesiunea de pe
server. Din nefericire, acest mecanism are anumite lipsuri:
- daca un volum mare de date este necesar într-o sesiune, atunci URL-ul poate deveni cu
usurinta dezordonat si purtator de erori. Din momentul în care aplicatiile web tind sa devina
complexe, cerintele pentru volumul de date care trebuie stocat într-o sesiune poate de asemenea
creste;
- limitarea lungimii unui URL poate determina ca acest mecanism sa devina instabil pe
anumite sisteme;
Cookies
Cookies sunt fisiere text mici folosite pentru a stoca informatia de pe server (ex: ID-ul
unei sesiuni) pe sistemul clientului. Aceasta informatie este scrisa într-un fisier text sub forma
perechilor nume-valoare. Cookies sunt generate de catre serverul web si transmise clientului în
antetul raspunsului HTTP. Browser-ul web al clientului stocheaza un cookie pe sistemul
clientului si va utiliza întotdeauna acel cookie pentru a transmite serverului ce a generat cookie la
fiecare cerere. Cookies sunt clasificate în: "sesiune" sau "permanente". În timp ce cookie-urile
permanente ramân stocate pe calculatorul clientului (stocate pe hard disk), cookie-urile sesiune
sunt doar pastrate pâna când situl este parasit sau browser-ul este închis. Aceasta înseamna ca
serverul poate identifica cererile de la anumit client si sa le aloce unei sesiuni. Cookies pot
include si data expirarii; odata ce data expira, browser-ul client nu va trimite cookie-ul catre
server.
Scenarii de utilizare
Care din cele doua mecanisme discutate anterior este cel mai potrivit pentru aplicatiile
web depinde în principal de circumstante. În mod ideal, este de dorit sa lasam informatiile despre
sesiune pe partea de server si sa utilizam un ID de sesiune cât mai sigur. Aceasta metoda poate fi
combinata: utilizând cookies pentru a stoca ID-ul sesiunii si rescrierea URL-ului pentru
browserele care nu accepta cookies. Un exemplu de codificare pentru ID-ul unei sesiuni într-un
URL este: http://host/application/page.ext?SessionId=XYZ sau
http://host/application/XYZ/page.ext, unde XYZ reprezinta o cheie unica pentru sesiune, greu de
ghicit.
Tehnologiile server actuale (PHP, JSP, ASP.NET) ofera API-uri pentru utilizarea
mecanismului descris anterior. Acest API ascunde complexitatea sesiunii, facilitând generarea
ID-urilor de sesiune si oferind metode dedicate pentru stocarea informatiilor despre sesiune.
Ajutoare si plug-inuri
Applet-uri Java
Applet-urile Java sunt programe scrise în Java care sunt încarcate dinamic în browser. Ele
ruleaza într-un "sandbox", astfel împiedicând accesul direct al resurselor sistem de pe client;
uneori permit accesarea resurselor dupa verificarea politicii de securitate. Applet-urile sunt
încarcate de un server web si executate într-un browser într-un mediu de lucru numit JVM (Java
Virtual Machine). Applet-urile nu sunt stocate în mod persistent pe un sistem. Spre deosebire de
controalele ActiveX, applet-urile sunt compilate într-un sistem independent, ceea ce le permite sa
ruleze pe toate platformele care dispun de JVM.
Controale ActiveX
HTML este o aplicatiei SGML care descrie elementele care pot fi utilizate pentru a marca
continutul într-un document hipertext si modul în care aceste elemente sunt în legatura într-un
DTD (Document Type Definition). Elementele de marcare sunt închise între simbolurile "<" si
">". HTML defineste un set mare de etichete pentru a indica semantici diferite. De exemplu,
eticheta <H1> poate fi folosita pentru a marca titlurile de nivel 1.
Perioadele de start si final pentru fiecare mediu pot fi sincronizate relativ usor cu cele ale
altor medii. Trasaturile de control standard permit utilizatorului sa interactioneze cu SMIL fiind
posibile oprirea, pauza, derularea înainte sau înapoi a întregii prezentari. Functiile suplimentare
includ generatoarele aleatorii, rularea cu încetinitorul si perioada de timp trecuta. Pe parcursul
prezentarii, utilizatorul poate selecta legaturi pentru a naviga catre alte pagini web.
Documentele XML sunt caracterizate prin doua proprietati distincte: sunt bine structurate
si sunt valide. Buna structurare este în mod inerent ancorata în XML, în timp ce validitatea este
asigurata de DTD (Document Type Definition) si prin schema XML. Pentru a ne asigura ca un
document XML este bine structurat, exista reguli generale pentru sintaxa documentelor XML,
care (spre deosebire de HTML) trebuie observate întocmai. În realitate, specificatiile XML
abordeaza aceste reguli sub forma "constrângerilor". Tabelul 6.1 foloseste anumite exemple
pentru a demonstra regulile pentru o buna structurare a XML-ului.
<?xml version="1.0"?>
<order OrderID="10643">
<price>167.00 EUR</price>
</order>
Namespace-urile
Exista doua moduri diferite de marca un element XML prin namespace-uri: prin
specificarea namespace-ului pentru un element sau prin utilizarea unui prefix. Metoda utilizarii
unui prefix este utila atunci când diferite elemente apartin aceluiasi namespace, deoarece face
documentele XML mai scurte si mai usor de citit. Figura 6.2 utilizeaza exemplul anterior pentru
a ilustra cele doua variante. URI-ul (uri:order) adreseaza un namespace ce corespunde unei
comenzi.
<item> <o:item>
</item> </o:item>
</order> </o:order>
XML DOM
<order>
<price>30.00 EUR</price>
</order>
<?xml version="1.0"?>
<!DOCTYPE order [
]>
Datorita structurii lor simple, DTD-urile sunt relativ usor de înteles de oameni. Acesta
este motivul pentru care ele sunt utile în principal când au fost create sau întretinute manual.
Datorita structurii simple, DTD-urile determina doua probleme distincte, care sunt solutionate
prin schemele XML:
Schemele XML
Schemele XML (W3C, 2000) sunt proiectate pentru a raspunde problemelor introduse
prin DTD-uri. Principalele lor beneficii (integrarea tipurilor de date, reutilizarea si formularea
XML) vin cu pretul cresterii complexitatii. Rezultatul este ca, atunci când dezvoltam schemele, a
devenit aproape inevitabila utilizarea instrumentelor. Datorita complexitatii acestora, în
continuare vom discuta schema în mod concis pentru a sublinia proprietatile si conceptele lor
mai importante.
O schema XML poate fi utilizata pentru a descrie tipuri de date pre-definite, cum ar
fi string, byte, decimal sau date. În plus, acestea ne permit definirea fatetelor care suporta tipuri
de date definite de utilizatori similar template-urilor. Sa presupunem ca toate
atributele ISBN valide ale unui element XML numit book, din exemplul cu comanda, trebuie sa
urmeze notatia pentru numerele ISBN. Putem utiliza o fateta pentru a descrie combinatia de
numere si linii (-) din sablonul N\ -NNNN\ -NNNN\ -N si reutiliza aceste tipuri de date în
proiectele de dezvoltare viitoare.
Exista doua concepte distincte care pot fi folosite pentru a obtine tipurile de scheme de
date pentru tipurile existente: extensia si restrictia. În sensul mostenirii orientate-obiect, restrictia
va corespunde specilizarii unei serii de valori ale unui supertip, în timp ce extensia va fi similara
agregarii altor tipuri. Figura 6.5 (partea din stânga) demonstreaza cum este creat tipul LTH (mai
mic decât 100) prin restrictionarea tipului pre-definit positiveInteger si setarea limitei superioare
pentru seria de valori. În partea dreapta a figurii, tipul definit de utilizator orderType este extins
la datedOrderType, care adauga un element, orderDate, al tipului pre-definit date la
un orderType.
- transformarile XSL;
- XPath si
- XSL-FO.
Standardul XSLT descrie cum continutul (datele) marcat în XML poate fi transformat.
Documente care definesc un program XSLT sunt numite foi de stiluri. Limbajul XSLT definit
este un dialect XML. Aceasta înseamna ca XSLT mosteneste toate proprietatile XML, inclusiv
costruirea corecta si validitatea. XSLT este descris în namespace-ul
(http://www.w3.org/1999/XSL/Transform) definit de W3C, care garanteaza validitatea unei foi
de stil XSLT. Rezultatul unei transformari XSL nu este legat de structuri specifice sau dictate sau
de restrictii. Aceasta înseamna ca rezultatul unei transformari XSL acopera întregul spectru
începând cu marcarea structurata (XML) pâna la interpretarea arbitrara a sirurilor de caractere.
Un procesor XSLT lucreaza dupa principiul IPO (Input, Processing, Output). XML sunt date de
intrare, în timp ce foaia de stil XSLT realizeaza prelucrarea necesara pentru a genera iesirea.
Figura 6.6 demonstreaza modul în care functioneaza un procesor XSLT.
Figura 6.6
Abordare
schematica a
modului în care
functioneaza un
procesor XSLT
- elementele fluxului de control (C): aceste elemente de limbaj sunt utilizate pentru a
manipula control fluxului dintr-un sablon XSLT. De exemplu, putem formula iteratii (xsl:
foreach) sau intructiuni conditionale (xsl: if).
- elementele limbajului orientat pe iesiri (O): aceste elemente sunt folosite pentru a
genera datele de iesire ale unui sablon XSLT. De exemplu, am putea genera elemente de marcare
(xsl: element si xsl: atribut) sau doar text liber.
- elemente privitoare la locatie (L): Aceste elemente sunt utilizate pentru aspecte
privitoare la limbi multiple, cum ar fi definitiile locale si formatele (xsl: zecimal-format).
Figura 6.7 defineste un stil XSLT, care poate transforma "ordinul de cumparare" din
exemplul XML prezentat în figura 6.1. Browserele cu procesoare XSL integrate, cum sunt
versiunile curente de Internet Explorer si Netscape Navigator, pot reprezenta un "ordin de
cumparare" cu foaia de stil specificata în HTML. Observam ca avem nevoie sa adaugam un
procesor de instructiuni pentru exemplul XML, pentru a specifica locatia foii de stil (vezi figura
6.8).
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl=http://www.w3.org/1999/XSL/Transform
version="1.0">
<xsl:template match="/">
<HTML><HEAD><TITLE>Ordin de cumparare</TITLE></HEAD>
<BODY>
<xsl:apply-templates select="order"/>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="order">
<table border="1">
<th colspan="2">
Ordin de cumparare (<xsl:value-of select="@OrderID"/>)
</th>
<xsl:for-each select="item">
</xsl:for-each>
</table>
</xsl:template>
<xsl:template match="book">
<tr><td>Book</td>
<td><xsl:value-of select="@isbn"/></td></tr>
</xsl:template>
</xsl:stylesheet>
Figura 6.7 Utilizarea unui stil XSLT pentru exemplul "ordin de cumparare" example.
<?xml-stylesheet type="text/xsl"
href="http://www.order.com/xsl/order.xslt"?>
XPath
Figura 6-9 Interpretarea unui document XML ca o structura a unui sistem de directoare
Similar cu caile dintr-un sistem de fisiere, putem defini expresii XPath, descriind calea
dintr-un document XML. Similar cu sistemul de fisiere, distingem o adresare relativa si una
absoluta. XPath ofera o varietate larga de modele de cautare în XML. De exemplu, am putea
folosi pe lânga elementele XML atribute. Mai mult decât atât, XPath ne permite accesul "axe",
cum sunt, descendentii si stramosii. Aceasta înseamna ca putem sa formulam în mod arbitrar
expresii complexe, care pot fi apoi folosite pentru a parcurge documentele XML pe baza DOM-
ului.
XSL-FO reprezinta o definitie a obiectelor de tip media pentru diferite reprezentari. XSL-
FO nu este legat exclusiv de elementele media vizuale, cum ar fi ecrane, imprimante, sau
documente. De fapt, standardul permite includerea reprezentarilor audio. Proprietatile importante
ale "obiectelor de formatat" se refera la paginare, proprietatile layout-ului (de exemplu, font), sau
structurarea obiectelor în functie de orientarea lor si de margini.
Acest standard reprezinta o punte de legatura între continutul definit într-un XML media
independent si iesirea dependenta de platforma (de exemplu, un document în format PDF).
Figura 6-10 utilizeaza doi pasi de prelucrare pentru a demonstra modul de functionare. În primul
rând, un procesor XSLT utilizeaza o foaie de stil XSLT pentru a procesa continutul definit în
XML. Rezultatul acestui pas de procesare reprezinta o instanta a unui obiect formatat definit în
specificatia XSL-FO. Ulterior, printr-un "formatator" sunt utilizate resursele de formatare, cum
ar fi imaginile si fonturile, pentru a fi create iesirile media specifice. Iesirile media utilizate în
acest exemplu sunt un document PDF, o imprimanta, si un ecran.
XSL reprezinta un instrument puternic pentru a transforma XML. Limbajul XSLT include
o multime de transformari, care pot crea iesiri dedicate. Deoarece în mod inerent XSLT
actualizeaza modificarile, pentru ca separa de datele/continutul de reprezentarea acestora
(transformare), circumstantele utilizarii XSLT-ului sunt similare cu cele care contribuie la
selectarea unei arhitecturi.
Agentii URI sunt aplicatii speciale utilizate pentru a procesa cererile HTPP si transmite o
resursa solicitata. Practic, un URI este utilizat pentru a identifica instanta care proceseaza
cererea. Aceasta instanta - manipulatorul URI specializat - preia cererea si o trimite mai departe
pentru executie. Rezultatul executiei este returnat apoi serverului Web, care, la rândul sau, trimite
resursa agentului utilizator.
O pagina HTML care foloseste SSI este transmisa catre pre-procesor atunci când un
browser Web le solicita. Iesirea pre-procesor-ului este apoi livrat de catre server. Serverul
identifica în general astfel de pagini printr-o extensie speciala de fisier (în mod normal, shtml).
Valoarea comenzii specifica tipul comenzii, care este parametrizat de catre o lista atribut-
valoare. SSI accepta urmatoarele comenzi:
include: aceasta comanda este înlocuita de continutul unui fisier, specificata fie prin
calea catre un fisier sau un URL (prin intermediul unui fisier sau atribut virtual).
exec: acesta este un program la care calea catre fisierul acestuia este specificata de
atributul cmd. Este executat sale de productie si înlocuieste comanda. Anumite extensii
de SSI (de exemplu, XSSI) includ comenzi suplimentare pentru iesiri text conditionate
sau pentru definirea si returnarea variabilelor.
Desi SSI nu mai este folosit pe o scara larga, tehnologia a avut o contributie majora la
progresul noilor abordari si asupra metodelor moderne de manipulare a URI-urilor. Cele mai
moderne metode de a manipula URI-ri au înlocuit SSI-ul, cu mai multe concepte. Oricum, SSI-ul
poate fi folosit îndeosebi pentru pagini care sunt, în principal, statice, sau pagini care dispun de
mijloace auxiliare de navigare.
CGI/FastCGI
CGI este o interfata standardizata între serverele web si programele de aplicatii care
trimit datele dintr-o cerere HTTP un program al aplicatiei. Programul aplicatiei este specificat
prin formarea unui URL sub forma etichetelor de pe pagina HTML apelata. Acest program
citeste parametrii din cerere, le proceseaza si creaza o iesire (de obicei un document HTML).
Orice limbaj de programare disponibil pe o platforma server poate fi utilizat; de obicei sunt
folosite limbaje ca Perl, C, C++ sau Python. O mare lipsa a texhnologiei CGI este scalabilitatea
limitata, deoarece pentru fiecare cerere venita trebuie pornit un proces independent. Acest lucru
poate determina o depasire considerabila a resurselor, în special atunci când mai multe cereri
concurente trebuie sa fie procesate. Aceasta situatie a condus la introducerea FastCGI, un
standard care permite programelor de aplicatii sa deserveasca mai multe cereri în paralel.
Scripting Server-Side
În aceasta sectiune vom prezenta PHP (Hypertext Preprocessor), o solutie open-source
care poate fi folosita în locul solutiei ASP (Active Server Pages) oferite de Microsoft. Alte
tehnologii reprezentative sunt Cold Fusion si JavaScript Server-Side oferit de Netscape ca o parte
a programului LiveWire. Toti agentii URI mentionati definesc un limbaj de scripting. Comenzile
acestor limbaje de scripting sunt incluse în resursele HTML si executate pe server de catre un
interpretor de scripturi, înainte de livrarea resurselor.
În timp ce instructiunile SSI permit inserarea în continutul unui fisier, acesta nu ofera nici
o modalitate de a interveni în fluxul de control al pre-procesorului. Metodele de scripting pe
partea de server permit executarea de codului unui program încorporat în HTML (asa-numitele
scripturi), care sunt scrise într-un limbaj de programare interpretat.
Servlet-uri
Java Server Pages (JSP) sunt proiectate pentru a simplifica programarea paginilor HTML
sofisticate din punct de vedere grafic.
Java Server Pages extinde paginile HTML conventionale cu tag-uri JSP speciale,
permitând integrarea codului programelor Java pentru a crea continut dinamic. În momentul
invocarii lor, mediul de lucru traduce JSP-urile în servlet-uri, si apoi creaza paginile de raspuns
HTML corespunzatoare.
ASP.NET
Simple Object Access Protocol (W3C 2003a) reprezinta un modalitate simpla de a face
schimb de mesaje pe baza XML-ului. Astfel de abordari comparabile, sunt, de exemplu, Internet
Inter-ORB Protocol (IIOP) în CORBA, Sun's Remote Method Invocation (RMI) în Java sau
.NET de la Microsoft. Pentru a permite serviciilor web sa comunice fara probleme, este necesar
un protocol uniform pentru mesaje, independent de platforma utilizata. SOAP este un astfel de
protocol pentru mesaje bazat pe XML. De notat ca SOAP nu poate rezolva toate problemele; nu
rezolva probleme ca transportul mesajelor sau corelarea semantica. Asa cum sugereaza si
numele, SOAP este proiectat pentru a defini un simplu format de comunicare. De exemplu,
Remote Procedure Calls (RPCs) poate fi implementat si permite formularea de mecanisme
simple pentru schimbul de mesaje în sistemele distribuite. În general, SOAP transmite
informatiile ca date XML. Informatiile binare, cum ar fi fisierele imagini, pot fi adaugate de catre
MIME (Multipurpose Internet Mail Extensions) în mod similar cu Microsoft BizTalk Server.
Deoarece SOAP specifica doar cum ar trebui sa arate mesajele, sunt necesare protocoale
de transport suplimentare pentru a trimite si receptiona aceste mesaje. Standardul nu defineste un
anumit protocol de transport. De fapt, poate fi folosit orice protocol, cum ar fi HTTP, SMTP
(Simple Mail Transfer Protocol) sau protocoale proprietare bazate pe TCP/IP. Dintre acestea,
protocolul HTTP este cel mai frecvent folosit. De exemplu, SOAP 1.1 defineste modul în care
mesajele specificate în SOAP pot fi schimbate peste HTTP. Specificatiile SOAP constau din trei
parti:
- plic SOAP: specifica ce date sunt incluse într-un mesaj (corp SOAP), ce date pot fi
incluse în mod optional (antet SOAP) si modul în care acestea ar trebui sa fie prelucrate;
- reguli de codificare SOAP: aceste norme specifica, de exemplu, cum datele definite de
utilizator trebuie serializate;
- reprezentarea RPC a SOAP-ului: daca SOAP este utilizat pentru a lucra cu Remote
Procedure Call, atunci reprezentarea RPC este responsabila de unde si cum ar trebui mesajele sa
fie codificate.
SOAP este proiectat pentru a utiliza aceste trei parti, independent una de alta. Cele mai
mari beneficii ale acestei modularitați este ca fiecare parte poate fi înlocuita si adaptata la situații
specifice.
O descriere WSDL este alcatuita din elemente de baza si extensii. Elemente de baza
descriu un serviciu si porturile, tipurile de porturi si mesajele pe care le utilizeaza. Extensiile
permit adaugarea constructorilor XML arbitrari, cum ar fi tipurile de date definite de utilizatori.
În consecinta, documentele WSDL reprezinta un acord de stabilire a metodelor si a conventiilor
de apelare a unui serviciu pe care consumatorul trebuie sa le examineze atunci când utilizeaza
acel serviciu Web.
Servere de aplicatii
Serverele de aplicatii sunt legate de conceptul de arhitectura pe trei straturi. Ele denota o
platforma software utilizata pentru a procesa tranzactiile online (OLTP). Arhitectura pe trei
straturi muta logica aplicatiei de la client la serverul de aplicatii. Clientul executa în mod normal
un asa-numit thin client, fara nici o logica. Cel de-al treilea strat este reprezentat de sistemele
backend, cum sunt mainframe-urile sau serverele corporatiei. Figura 6.12 arata modul în care
interactioneaza cele trei straturi.
Majoritatea proprietatilor lui Enterprise Bean, cum sunt tranzactiile sau controlul
caracteristicilor bazelor de date, sunt definite într-un fisier de configurare (descriptor de
implementare), atunci când este instalat într-un container EJB.
6.5.4 Concluzii
Tehnologiile care vor avea succes în ingineria web viitoare sunt greu de prezis. XML, ca
tehnologie de baza, a determinat o mutatie majora în ceea ce priveste omogenizarea mediilor
eterogene. XML a determinat aparitia altor standarde bazate pe XML, care au fost si vor fi din ce
în ce mai mult mai folosite. De exemplu, Web Services, tehnologiile XSL au un mare potential în
ceea ce priveste utilizarea scenariilor, deoarece, datorita XML-ului ele pot construi pe baza unor
premise omogene.
Aplicatiile web sunt expuse unor noi provocari privind asigurarea calitatii si testarea.
Aplicatiile web sunt compuse din diverse componente software oferite în anumite cazuri de
anumiti producatori. Calitatea aplicatiilor web este în principal determinata de calitatea fiecarei
componente software implicate si de calitatea legaturilor dintre acestea. Testarea este una din
cele mai importante instrumente folosite în dezvoltarea aplicatiilor web pentru realizarea
produselor de înalta calitate, care îndeplinesc asteptarile utilizatorilor.
Testarea este o activitate efectuata pentru a evalua calitatea unui produs si pentru a
îmbunatati-o prin identificarea problemelor si defectelor. Daca vom rula un program cu intentia
de a gasi erori, atunci putem vorbi de testare. Figura 7-1 arata ca testarea este parte a masurilor
de asigurare a calitatii analitice. Prin descoperirea erorilor existente este determinata calitatea
programului testat, în vederea îmbunatatirii calitatii, acest lucru realizându-se de cele mai multe
ori doar prin eliminarea erorilor gasite.
Putem spune ca o eroare este prezenta în cazul în care rezultatul actual dintr-un test nu
este în conformitate cu rezultat asteptat. Rezultatul asteptat este specificat, de exemplu, în
definirea cerintelor. Aceasta înseamna ca fiecare abatere de la definirea cerintelor este o eroare;
în termeni mai generali, o eroare este "diferenta între valoarea sau conditia calculata, observata
sau masurata si valoarea corecta sau conditia adevarata, specificata sau teoretic corecta"
(standard IEEE 610.12-1990).
Aceasta definitie implica faptul ca definirea cerintelor utilizate ca baza pentru testare este
terminata si disponibila înainte de implementare si testare. Un fenomen comun în dezvoltarea
aplicatiilor web este ca cerintele sunt deseori incomplete, neclare si reprezinta subiectul unor
schimbari frecvente. De obicei, exista o viziune initiala privind functionalitatea de baza, care este
implementata în faza initiala de lansare. Ca urmare, dezvoltarea ciclului initial de viata este
urmata de mici cicluri de functionalitati adaugate. Abordarile Agile (cum ar fi Extreme
Programming) se concentreaza pe natura evolutiva si repetata a dezvoltarii ciclului de viata fara a
apela la o definire extinsa a cerintelor. În consecinta, obiectivele, preocuparile si asteptarile
partilor interesate (mandatari) trebuie sa constituie baza testarii. Aceasta înseamna ca, de
exemplu, fiecare abatere de la valoarea asteptata în mod firesc de catre utilizatori este, de
asemenea, considerata o eroare.
În acest moment, partile interesate au asteptari diferite, iar unele dintre acestea pot fi
concurente si neclare. Din acest motiv, asteptarile partilor interesate nu vor fi un reper util pentru
a decide daca un rezultat este eronat, cu exceptia cazului în care un set de asteptari au fost atinse
si au fost puse la dispozitie în forma testabila. Pentru a sprijini testerii în a avea o perspectiva a
utilizatorilor si de a întelege mai bine asteptarile utilizatorilor, acestia ar trebui sa fie implicati cât
mai devreme posibil în identificarea si definirea cerintelor.
Când discutam despre un test ne vom referi la un set de cazuri de testare pentru un anumit
obiect testat (de exemplu, o aplicatie web, componentele unei aplicatii Web sau un sistem care
ruleaza o aplicatie Web). Un singur caz de test descrie un set de intrari, conditiile de executie,
precum si rezultatele asteptate, care sunt utilizate pentru a testa un anumit aspect al obiectului
testat (standard IEEE 610.12-1990).
Cerintele de calitate joaca un rol esential în testarea aplicatiilor web. Chiar daca acestea
sunt în general similare cu cerintele de calitate pentru sistemele software traditionale, ele ajung
deseori dincolo de ele. Datorita importantei caracteristicilor de calitate si diferentelor privind
modul în care pot fi testate, majoritatea metodelor de testare pentru aplicatiile Web se
concentreaza pe una sau câteva caracteristici de calitate. Cu toate acestea, toate caracteristicile de
calitate sunt importante pentru calitatea generala a unei aplicatii Web. Testarea trebuie sa se
asigure ca acestea sunt implementate cu succes.
Un test rulat are succes daca sunt detectate erori și daca sunt obținute informatii
suplimentare despre problemele si starea aplicației. Testele nereusite, cum ar fi, testele în care nu
sunt gasite erori, sunt "o pierdere de timp". Acest lucru este valabil mai ales în dezvoltarea
aplicatiilor web, în care testarea este în mod necesar limitata la un minim, datorita resurselor
limitate si presiunii de timp extreme în care se dezvolta aplicatiile Web. Aceasta situatie necesita,
de asemenea, descoperirea erorilor grave cât mai devreme posibil pentru a evita investitiile
inutile cum ar fi costurile de gasire si eliminare a erorilor care cresc dramatic în fiecare etapa de
dezvoltare. Erorile care au aparut în fazele timpurii de dezvoltare sunt greu de localizat în etapele
ulterioare, si eliminarea lor cauzeaza, în mod normal, modificari ample si necesitatea de a
rezolva erorile ulterioare. Prin urmare, testare trebuie începuta cât mai devreme posibil,
preferabil la începutul unui proiect.
În conformitate cu fazele de dezvoltare în care putem obține rezultate ale testarii, putem
identifica anumite nivele de test pentru facilitarea testarii acestor rezultate.
. testarea unitaților: testarea celor mai mici unitati testabile (clase, pagini web, etc),
independent una de alta. Unitatea de testare este obținuta de dezvoltator, pe parcursul
implementarii.
. testele de integritate: evaluarea interactiunii între unitațile testate distinct si separat dupa
ce acestea au fost integrate. Testele de integritate sunt de obicei efectuate de catre un tester, un
dezvoltator sau de ambii.
. testele sistem: testarea completa, integrata a sistemului. Teste sistem sunt, de obicei,
efectuate de catre o echipa de test specializata.
Un risc inerent care apare atunci când se efectueaza testele secvential în acord cu fazele
proiectului este ca pot apare erori datorita neîntelegerii asteptarilor utilizatorilor (care pot fi
gasite numai într-un stadiu târziu), ceea ce conduce la costuri mari de eliminare a acestora.
Pentru a minimiza acest risc, testarea trebuie sa fie parte integranta a construirii produsului si ar
trebui sa cuprinda întregul proces de dezvoltare. Prin urmare, masurile de asigurare a calitatii
cum sunt recenziile sau prototipizarea sunt utilizate deseori înainte de a rula testarea unitatilor.
Un proces de dezvoltare iterativ si evolutiv reduce acest risc deoarece partile mai mici ale
sistemului sunt testate frecvent pe toate nivelurile de test (inclusiv cele cu validare pentru
asteptarile utilizatorilor), astfel încât erorile pot fi depistate înainte de a putea avea un impact
asupra altor parti ale sistemului. Aceasta înseamna ca secventa nivelurilor de test descrise mai
sus nu sunt în permanenta dictate de succesiune temporala a testarii proiectul web, dar pot fi
efectuate de mai multe ori (de exemplu, o data pentru fiecare dezvoltare a functionalitatii).
Pentru a gasi cât mai multe erori posibile testerii trebuie sa aiba o atitudine "distructiva"
fata de testare. O astfel de atitudine este dificila pentru un dezvoltator care lucreaza la un modul
software. Aceeasi perspectiva de abordare face deseori ca dezvoltatorii sa realizeze aceleasi
greseli si neîntelegeri pe perioada de testare, greseli care au condus la erori pe perioada
implementarii. Din acest motiv, (Myers 1979) sugereaza ca dezvoltatorii sa nu testeze propriile
produse.
În proiectele web, se observa o focalizare sporita pe testarea unitatilor care sunt scrise de
dezvoltatori. Desi acest lucru este o încalcare a sugestiilor lui Myers, testele suplimentare sunt,
de obicei, efectuate de persoane diferite de dezvoltatorul original (de exemplu, de catre testerii
recrutati de departamentul de afaceri al clientului).
. erorile din "continut" pot fi deseori gasite doar prin masuri costisitoare sau
organizationale (de exemplu, prin corectarea greselilor). Formularele simple de verificare
automata (de exemplu, un corector ortografic) sunt foarte valoroase, dar sunt limitate la o paleta
redusa de depistare a potentialelor defecte. Meta-informatiile despre structurarea si semantica
continutului sau despre un sistem de referinta care furnizeaza valori comparative, sunt deseori o
conditie prealabila pentru a putea efectua testele de profunzime. Daca aceste premise nu sunt
disponibile, trebuie gasite alte abordari. De exemplu, daca apar schimbari frecvente privind
modificarea datelor legate de cantitatea de zapada dintr-un sistem de informare turistica, acestea
nu pot fi testate cu acuratete prin intermediul meta-informatiilor sau valorilor comparative, si, în
consecinta, valabilitate datelor poate fi restrictionata euristic la doua zile pentru a se asigura
actualitatea datelor.
. când testam structura hipertext, trebuie sa ne asiguram ca paginile sunt legate în mod
corect (de exemplu, fiecare pagina trebuie sa fie accesibile printr-o legatura si, la rândul sau, ar
trebui sa aiba o legatura înapoi la structura hipertext). În plus, toate legaturile trebuie sa duca la
pagini existente, adica, nu trebuie sa fie "întrerupte". Legaturile nefunctionale sunt erori
frecvente atunci când legaturile statice predefinite devin invalide (de exemplu, atunci când se
face referire la o pagina web externa, care a fost eliminata sau s-a schimbat structura acesteia). O
alta sursa de erori este navigarea prin intermediul functiilor browser-ului web (de exemplu,
"Înapoi în Istoric", în asociere cu starile în care o aplicatie web poate fi). Un exemplu tipic
întâlnit este: daca un utilizator adauga un articol în cosul de cumparaturi virtual în timp ce
realizeaza cumparaturi online, atunci acest articol va ramâne în cosul de cumparaturi, chiar daca
utilizatorul se duce cu un pas înapoi în istoricul browser-ului, afisând pagina anterioara fara acel
articol.
. aplicațiile web constau dintr-un numar de diferite componente software (de exemplu:
servere web, baze de date, middleware) si sisteme integrate (de exemplu: sisteme ERP, sisteme
de management al continutului), care sunt oferite de diferiți furnizori, si implementate cu
ajutorul unor tehnologii. Aceste componente formeaza infrastructura tehnica a aplicatiilor Web.
Calitatea unei aplicatii Web este în principal determinata de calitatea tuturor componentelor
software singulare si de calitatea interfetei dintre ele. Aceasta înseamna ca, pe lânga
componentele dezvoltate într-un proiect, va trebui sa testam componentele software furnizate de
parti terte, dar si integrarea si configurarea acestor componente. Multe erori în aplicatiile web
rezulta din "imaturitatea" unei componente software, "incompatibilitatea" între componentele
software, sau defecte de configurare a componentelor software corecte.
. "dominanta schimbarii" face ca testarea aplicatiilor web sa fie mai complexa decât
testarea software-ului traditional. Cerintele si asteptarile utilizatorilor, platformele, sistemele de
operare, tehnologiile si configuratiile Internet, modelele de afaceri si de asteptarile clientilor,
dezvoltarea si testarea bugetelor sunt subiectul unor frecvente modificari pe tot parcursul ciclului
de viata al unei aplicatii Web. Adaptarea la cerintele noi sau modificate este dificila pentru ca
functionalitatea existenta trebuie sa fie reanalizata, ori de câte ori se face o schimbare. Aceasta
înseamna ca un singur fragment de functionalitate trebuie sa fie testat de mai multe ori, în ideea
realizarii unor teste automate si repeatable. Acestea pun accentul în special pe teste de regresie,
care verifica daca ceea ce s-a lucrat functioneza dupa o anumita schimbare. Upgrade-urile si
migrarea aplicatiilor web, determinate de schimbarile permanente ale platformelor, sistemelor de
operare sau hardware-ului, trebuie sa ruleze si sa dovedeasca ca sunt un succes în mediul de test,
pentru a ne asigura ca nu vor fi probleme neasteptate în mediul de productie.
Din perspectiva unei abordari traditionale, activitatile de testare dintr-un proiect includ
planificarea, pregatirea, executarea si raportarea:
. Executarea: Acest pas pregateste infrastructura de test, executa cazurile de test si în final
documenteaza si evalueaza rezultatele.
. Raportarea: Acest pas final rezuma rezultatele testelor si genereaza rapoartele testarii.
Datorita ciclurilor scurte de a ajunge pe piata în care se dezvolta aplicatiile Web, este
necesar sa selectam doar cele mai importante rezultate ale muncii, rolurile cheie si sa eliminam
pasii de lucru inutili. Activitatile de testare trebuie sa fie începute cât mai devreme posibil pentru
a scurta perioada distribuirii. De exemplu, activitatile de planificare si de proiectare pot fi
finalizate înainte de începerea dezvoltarii, iar rezultatele muncii pot fi verificate static, de îndata
ce acestea devin disponibile. Figura 7-2 demonstreaza ca acest lucru va scurta perioada de
livrare, care respecta astfel ciclurile scurte de dezvoltare ale aplicatiilor web.
Abordarile Agile presupun ca o echipa va gasi solutii la probleme, în comun si în mod
autonom (se bazeaza pe auto-organizare). Acest lucru se aplica, de asemenea, la teste. Prin
urmare, testarea nu este o chestiune de roluri ci de o mai mai buna colaborare si utilizare a
aptitudinilor disponibile în echipa. Aceasta înseamna ca testarea este o activitate de dezvoltare
integrata. Întreaga echipa este responsabila pentru calitate si pentru testare.
Într-o abordare Agile, dezvoltatorii efectueaza testarea unitaților, adica ei își testeaza
propria munca. Prin automatizarea acestor teste ale unitaților, acestea pot fi folosite ca mici
"detectoare ale schimbarii". De fiecare data când o mica porțiune din aplicație nu mai
functioneaza adecvat, schimbarea va fi detectata imediat. Întârzierea între apariția unei erori si
detectarea acesteia este redusa în mod semnificativ, ceea ce face mai usor pentru dezvoltatori sa
corecteze eroarea, deoarece activitatile sau modificarile recente sunt înca proaspete în mintea lor.
Pe lânga feedback-ul rapid, testele automatizate sunt o cerinta prealabila importanta pentru
ciclurile scurte de dezvoltare si pentru refactoring (reproiectarea unui program pastrându-se
semanticile pentru reducerea redundanței si cresterea calitații proiectarii).
Într-o echipa poate exista un tester dedicat, acceptat de echipa de dezvoltatori care îsi
asuma calitatea de conducator pentru asigurarea calitații, în cadrul echipei. De asemenea, un
tester poate pregati teste functionale (care sunt pe un nivel mai mare de abstractizare decât testea
unitaților dezvoltatorilor) si face scripturile de test tolerante la modificari. În plus, tester-ul poate
sprijini clientul cu teste functionale scrise.
. un client de pe site: este disponibil pentru întrebari privitoare la cerinte, în orice moment
si ia decizii în acest sens. Împreuna cu tester-ul, clientul de pe site pregateste pentru testele
functionale, care pot fi folosite pentru testele de acceptare ulterior.
. testarea înainte de dezvoltare: se refera la faptul ca testele sunt scrise înainte de cod,
asigurându-se ca "dezvoltatorii", se gândesc la "ce" înainte de a implamenta "cum". Aceste teste
sunt automatizate, astfel încât acestea sa poata fi folosite pentru o integrare continua.
Abordarea Agile se refera în principal la testarea unitaților si la testele de acceptare. În
contrast, abordarile conventionale sunt folosite pentru integrarea și testarea sistemului ("testarea
în ansamblu").
Aceasta sectiune descrie o schema generica pentru testarea aplicatiilor Web. Schema de
baza merges de test - test de cazuri, caracteristici de calitate, si de nivelurile de test - descrise mai
sus într-o uniforma si usor de setare. Schema reprezinta un model pentru aplicatii Web de testare
proiectat pentru a întelege mai bine cum pot fi organizate de testare si de a sprijini sistematic,
cuprinzator, si-a riscului de testare constient de abordare. În formularul de aici si-a prezentat,
sistemul poate fi folosit pentru a vizualiza aspectele implicate în testare, structura toate testele, si
va servi ca un vehicul de comunicare pentru echipa.
This section describes a generic scheme for Web application testing. The scheme merges
the testing basics - test cases, quality characteristics, and test levels - described above into a
uniform and manageable setting. The scheme represents a model for Web application testing
designed to better understand how testing can be organized and to support a systematic,
comprehensive, and risk-aware testing approach. In the form introduced here, the scheme can be
used to visualize the aspects involved in testing, structure all tests, and serve as a communication
vehicle for the team.
[1] Berners-Lee, T., WWW: Past, Present, and Future, IEEE Computer, 29 (10), 1996, pp. 69-77
[2] Pressman, R. S., Can WebApps Be Engineered?, SPC Essentials, Software Productivity Center, May
2000a, la http://www.spc.ca/essentials/may0300.htm , [vizitat la: 2007-10-01]
[3] Fraternali, P., Tools and Approaches for Data-intensive Web Applications: A Survey, ACM Computing Surveys, 31 (3),
September, 1999, pp. 227-263
[4] Ginige, A., Lowe, D., Robertson, J., Hypermedia Authoring, IEEE Multimedia, 2 (4), Winter, 1995, pp. 24-35
[5] Deshpande, Y., Hansen, S., Web Engineering: Creating a Discipline among Disciplines, Special Issue on
[6] Kappel, G., Michlmayr, E., Web Engineering - Old Wine in New Bottles? Proc. of the 5th International Conference on Web
Engineering (ICWE 2005), Springer LNCS 3255, Munich, Germany, 2005
[7] Boehm, B. W., Software Engineering, IEEE Transactions on Computers, 25 (12), 1976, pp. 1226-
1241
[8] Deshpande, Y., Murugesan, S., Ginige, A., Hansen, S., Schwabe, D., Gaedke, M., White, B., Web Engineering, Journal of Web
Engineering, 1 (1), 2002, pp. 3-17
[9] Powell, T., Jones, D., Cutts, D., Web Site Engineering: Beyond Web Page Design, Prentice Hall, 1998.
Pressman, R. S., Can Internet-Based Applications Be Engineered?, IEEE Software, 15 (5), September-
[10] Lowe, D., Engineering the Web - Web Engineering or Web Gardening? WebNet Journal, 1 (1), January-March, 1999
[11] Glushko, R., McGrath, T., Document Engineering for E-business, Proc. of the ACM Symposium on Document Engineering
(DocEng) (held in conjunction with the ACM Int. Conf. on Information and Knowledge Management, CIKM), Virginia, USA,
November 2002
[12] Reich, S., G¨untner, G., Digital Content Engineering - An Introduction, Proc. of Digital Content Engineering-Content
Plattformen in Theorie und Praxis. Trauner Verlag, 2005
[13] Balasubramaniam, R., Pries-Heje, J., Baskerville, R., Internet Software Engineering: A Different Class of Processes, Annals
of Software Engineering, 14 (1-4), December, 2002, pp. 169-195
[14] Glass, R. L., A Mugwump's-Eye View of Web Work, Communications of the ACM, 46 (8), August, 2003,
pp. 21-23
[16] Pressman, R. S., Applying Web Engineering. In: Software Engineering: A Practitioner's Approach, 6th Edition, McGraw-Hill,
2005
[17] Weerawarana, S., Curbera, F., Leymann, F., Storey, T., Ferguson, D. F., Web Services Platform
Architecture,
[18] Wege, Ch., Portal Server Technology, IEEE Internet Computing, 6 (3), May-June, 2002, pp. 73-77
[19] Berners-Lee, T., Hendler, J., Lassila, O., The Semantic Web, Scientific American, May, 2001
[20] Bush, V., As We May Think, The Atlantic Monthly, 176 (1), 1945, pp. 101-108.
[21] Pressman, R. S., Can WebApps Be Engineered?, SPC Essentials, Software Productivity Center, May
2000a,
http://www.spc.ca/essentials/may0300.htm
[22] McDonald, A., Welland, R., A Survey of Web Engineering in Practice, Department of Computing
Science
1998
[25] Robertson, S., Robertson, J., Mastering the Requirements Process, Addison-
Wesley, 1999
[26] Boehm, B. W., Requirements that Handle IKIWISI, COTS, and Rapid
Change, IEEE Computer, 33 (7),
[27] Lowe, D. B., Eklund, J., Client Needs and the Design Process in Web
Projects, Journal of Web Engineering,
[28] Deshpande, Y., Murugesan, S., Ginige, A., Hansen, S., Schwabe, D.,
Gaedke, M., White, B., Web Engineering,
[29] Nuseibeh, B., Weaving Together Requirements and Architectures, IEEE Computer, 34 (3), March,
2001,
pp. 115-117
[30] Constantine, L., Lockwood, L., Software for Use: A Practical Guide to Models and Methods for
Usage-
[31] Biffl, S., Aurum, A., Boehm, B. W., Erdogmus, H., Gr¨unbacher, P., Value-based Software
Engineering,
[32] Robertson, S., Robertson, J., Mastering the Requirements Process, Addison-Wesley, 1999
[35] Constantine, L., Lockwood, L., Software for Use: A Practical Guide to Models and Methods for
Usage-
[39] Fraternali, P., Tools and Approaches for Data-intensive Web Applications: A
Survey, ACM Computing
[40] Ceri, S., Fraternali, P., Bongio, A., Brambilla, M., Comai, S., Maristella, M., Designing Data-Intensive
[41] Ceri, S., Fraternali, P., Bongio, A., Brambilla, M., Comai, S., Maristella, M., Designing Data-Intensive
[42] Pastor, O., Pelechano, V., Fons, J., Abrah~ao, S., Conceptual Modelling of Web Applications: the OOWS
Approach. In: Web Engineering - Theory and Practice of Metrics and Measurement for Web Development,
[43] Conallen, J., Building Web Applications with UML, 2nd edition, Addison-Wesley, 2003
[44] Ziegeler, C., Langham, M., Cocoon: Building XML Applications, Sams, July, 2002
[45] Bass, L., Clements, P., Kazman, R., Software Architecture in Practice, Addison-Wesley, 1998
[46] Jacobson, I., Booch, G., Rumbaugh, J., The Unified Software Development Process, Addison-Wesley,
1999
[47] Gamma, E., Helm, R., Johnson, R., Design Patterns. Elements of Reusable Object-Oriented
Software,
Addison-Wesley, 1997
[48] Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M., Pattern - Oriented Software
Architecture:
[49] Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M., Pattern - Oriented Software
Architecture:
[50] Malveau, R. C., Mowbray, T. J., CORBA Design Patterns, John Wiley & Sons, 1997
12-01]
[52] Fayad, M. E., Schmidt, D. C., Johnson, R. E., Building Applications Frameworks: Object Oriented
Foundations
2005-10-15]
[54] Sun Microsystems (2003), Java2 Platform, Enterprise Edition Specification, v 1.4, November,
2003,
[55] Bongio, A., Brambilla, M., Ceri, S., Comai, S., Fraternali, P., Matera, M., Designing Data-Intensive
Web
[56] Weibel, S., Jul, E., Shafer, K., PURLs: Persistent Uniform Resource Locators, Online Computer
Library
IAN - MAMA Cum să câștigi IAN - MAMA Care este cel IAN - MAMA IAN - MAMA
$100 într-o zi mai profitabil
legal, fără mod de a face
investiții bani online în
2017?
Document Info
Accesari: 24383
Apreciat:
Comenteaza documentul:
Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta
A fost util?
Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site
Copiaza codul
in pagina web a site-ului tau.
Copyright © Contact (SCRIGROUP Int. 2017 )