tehnologii web.pdf

Upload: vasile-verdes

Post on 13-Mar-2016

135 views

Category:

Documents


7 download

TRANSCRIPT

  • Sabin Corneliu Buraga

    T ehnolog ii Web

    MATRIXROM 2001

  • T e h n o l o g i i W e b - I S B N 9 7 3 - 6 8 5 - 2 8 0 - 6

  • Tehnologii Web

    II

    O. Preambuli

    A. Specificarea !i organizarea informa"iilor pe WebA - 1

    1. ncercare de definire !i istoricA - 2

    2. MetodologiiA - 7

    3. Localizarea resurselor InternetA - 24

    4. Protocolul de transfer al hipertextului: HTTPA - 27

    5. Securitatea serviciilor WebA - 36

    B. Marcarea informa"iilor pentru WebB - 1

    1. SGML - Standard Generalized Markup LanguageB - 2

    2. XML - eXtensible Markup LanguageB - 18

    C. Aplica"ii ale XMLC - 1

    1. MathML - limbaj de specificare a expresiilor matematiceC - 2

    2. RDF - cadru de descriere a resurselor InternetC - 10

    3. XUL - limbaj de descriere a interfe"elor cu utilizatorulC - 27

    D. Limbajul HTML (HyperText Markup Language)D - 1

    1. Prezentare a limbajului HTMLD - 2

    2. HTML CompactD - 20

    3. Reformularea HTML n XMLD - 24

    4. Foi de stiluriD - 31

    E. Document Object Model (DOM) pentru documente XML/HTMLE - 1

    1. Introducere !i caracterizareE - 2

    2. Interfe"e !i implement#riE - 4

    3. DOM Core - nivelul $E - 5

    4. DOM nivelul $ pentru HTMLE - 12

    5. DOM nivelul 2E - 14

    6. Procesarea documentelor XMLE - 20

    7. ConcluziiE - 48

    F. Documente hipermedia pe WebF - 1

    1. Modele !i metodologiiF - 2

    2. SMIL - un limbaj pentru prezent#ri multimedia sincronizate pe WebF - 12

    3. Extensii multimedia bazate pe timp pentru HTML (HTML+TIME)F - 27

  • Tehnologii Web

    III

    4. Efecte multimedia n Internet Explorer 5.5F - 29

    G. Programarea aplica"iilor WebG - 1

    1. CGI (Common Gateway Interface)G - 3

    2. PHP (PHP: Hypertext Preprocessor)G - 21

    3. ASP (Active Server Pages)G - 54

    4. Cookie-uriG - 73

    5. ConcluziiG - 83

    H. JavaScript n paginile WebH - 1

    1. Istoric !i fundamenteH - 2

    2. CaracterizareH - 5

    3. JavaScript n cadrul paginilor WebH - 15

    4. ConcluziiH - 53

    I. Applet-uri !i servlet-uri JavaI - 1

    1. Istoric !i caracterizareI - 2

    2. Applet-uriI - 8

    3. Scurt# prezentare a servlet-urilorI - 36

    4. Dezvoltarea aplica"iilor JavaI - 41

    5. Prezent !i viitorI - 42

    J. Ingineria WebJ - 1

    1. Proiectarea !i organizarea site-urilor WebJ - 2

    2. Robo"ii WebJ - 11

    3. Motoarele de c#utareJ - 21

    4. WebBroker: comunica"ii orientate-obiect pe WebJ - 37

    K. Realitatea virtual#K - 1

    1. Introducere n VRMLK - 3

    2. Func"ionarea unui sistem VRMLK - 48

    3. Medii virtuale distribuiteK - 52

    4. Conceperea de aplica"ii VRMLK - 60

    5. Studiu de caz: o aplica"ie VRML pentru vizualizarea tridimensional# a interiorului unei cl#diri

    K - 63 6. Viitor

    K - 67

  • Tehnologii Web

    IV

    L. AnexeL - 1

    1. Sintaxa complet# URLL - 2

    2. Elementele HTML 4L - 5

    3. Atributele HTML 4L - 8

    4. Entit#"ile HTMLL - 18

    5. Propriet#"ile CSS2L - 21

    6. Aplica"ii !i unelte de dezvoltare XMLL - 28

    7. Nodurile VRML97L - 35

    M. Glosar de termeniM - 1

    N. Resurse bibliograficeN - 1

    O. Cuprins I

  • T e h n o l o g i i W e b

    "n fiecare zi se nva"# ceva nou." (Solon)

  • Tehnologii Web

    ii

    Indubitabil, tehnologiile Web reprezint! "i vor reprezenta cel mai dinamic "i fascinant domeniu al informaticii actuale "i viitoare. Evident, ele au fost cele care n mai pu#in de un deceniu au modificat complet globul p!mntesc "i mentalit!#ile.

    Scopul acestei c!r#i este s! surprind!, ntr-un instantaneu suficient de detaliat evolu#iaplin! de neprev!zut "i de vivacitate a spa#iului World-Wide Web. Astfel, vom ilustra, la un nivel profesionist, cele mai interesante, utile "i vii aspecte ale Web-ului, att din punct de vedere teoretic, dar mai cu seam! aplicativ, axndu-ne n principal pe una dintre direc#iile cele mai efervescente ale acestuia: meta-limbajul XML. O mare parte a variantelor preliminare ale acestui material a reprezentat suportul pentru cursul de "Tehnologii avansate n informatic!" ("Tehnologii Web") predat de autor studen#ilor de la Facultatea de Informatic#,Universitatea "Alexandru Ioan Cuza" din Ia!i, ncepnd cu anul universitar 1999/2000, pe baza unei experien#e de peste patru ani n domeniul Internetului "ial Web-ului.

    S t r u c t u r # g e n e r a l #

    Am structurat cartea n 11 p!r#i "i 7 anexe, urmate de o list! cuprinz!toare de referin#ebibliografice.

    Dup! un scurt istoric, n prima parte putem urm!ri dou! dintre filosofiile de baz! ale Web-ului: hipertextul "i modelul client/server de transfer al informa#iilor prin intermediul protocolului HTTP, al!turi de localizarea resurselor prin intermediul URI-urilor.Partea secund! realizeaz! o introspec#ie detaliat! n mecanismele meta-limbajului SGML "iale familiei XML (reprezentat! de spa"ii de nume, XLink, XSL, XML Schema etc.), utilizate pentru marcarea informa#iilor, n special pentru WWW. Meta-limbajul XML a devenit n ultimii ani favoritul cercet!torilor n domeniul Web-ului, avnd deja asigurat un viitor str!lucit n direc#ia reprezent!rii "i model!rii semantice a informa#iilor. XML are deja o multitudine de aplica#ii, existnd peste o sut! de limbaje bazate pe acesta. n partea a treia se vor prezenta MathML, RDF "i XUL. Normal, Web-ul a avut o dezvoltare exponen#ial!datorit! limbajului HTML, major! aplica#ie a SGML-ului. O trecere n revist! a caracteristicilor HTML-ului, plus o prezentare a rescrierii HTML n termenii XML "i o detaliere a foilor de stiluri CSS vom face n partea a patra. Pentru a procesa ntr-un mod eficient, elegant "i independent de platform! documentele XML "i HTML vom avea nevoie de un model obiectual, reprezentat de DOM, pe care l vom descrie n partea a cincea a c!r#ii, al!turi de alternativele SAX "i JDOM. Un alt limbaj bazat pe XML este SMIL, care va avea cu siguran#! multe de spus n domeniul prezent!rilor multimedia sincronizate pe Web. Despre el "i despre solu#iile de a integra hipermedia n paginile HTML vom discuta n cea de-a "asea parte a acestui material. Desigur, pentru a asigura "i exploata interactivitatea spa#iului WWW trebuie s! proiect!m "i s! implement!m aplica#ii destinate Web-ului. n partea a "aptea vom detalia mai multe modalit!#i de concepere a acestor aplica#ii, pe partea server: standardul CGI, serverele de aplica#ii PHP "i ASP, cookie-urile. Pe partea client, JavaScript reprezint! standardul de facto. Cititorul va putea parcurge cele mai interesante "idinamice aspecte ale acestuia n cea de-a opta parte. O rud! mai serioas! a JavaScript-ului este tn!rul limbaj Java. Cum vom putea programa applet-uri "i servlet-uri Java vom vedea n a noua parte a volumului. Web-ul se consider! a fi un adev!rat depozit gigantic de informa#ii, compus din milioane de documente. Cum l organiz!m, att local, ct "i global, care este arhitectura robo"ilor "i a motoarelor de c!utare, cum proiect!m site-urile, vom descrie n partea a zecea. Una dintre cele mai de viitor direc#ii ale spa#iului WWW o reprezint!realitatea virtual!. Dup! o ilustrare a principalelor elemente "i tendin#e ale limbajului VRML, vom prezenta mediile virtuale distribuite. Pe toate acestea, cititorul le va putea reg!si n ultima parte a c!r#ii.

  • Tehnologii Web

    iii

    Punem la dispozi#ie celor interesa#i o serie de anexe, descriind printre altele sintaxa general! a URL-urilor, elementele "i atributele HTML, propriet!#ile CSS nivelul 2 "i nodurile VRML, plus un glosar de termeni referitori la tehnologiile Web.

    L!s!m pl!cerea cititorului s! descopere "i alte surprize, sper!m pl!cute, "i s!experimenteze sursele din prezentul volum. A"tept!m reac#iile, remarcile "i semnalarea posibilelor gre"eli survenite pe parcurs la adresa [email protected]. De asemeni, actualiz!ri "i alte am!nunte privind acest material se vor putea g!si pe Web, n cadrul paginii personale a autorului: http://www.infoiasi.ro/~busaco.

    C u m a f o s t s c r i s a c e s t m a t e r i a l

    nainte de a fi preg!tit pentru tip!rire, textul prezentei c!r#i a fost integral tehnoredactat de c!tre autor, conform standardului HTML 4, utilizndu-se foi de stiluri CSS1 "i CSS2, fiind testat pe navigatoarele Netscape Communicator 4.1, 4.6, 4.7x "i 6.0 (pentru Linux "iWindows), Mozilla 5.0/M16 (pentru Windows), M17 (pentru Linux) "i M18 - SeaMonkey(pentru Linux "i Windows), Internet Explorer 4.0, 5.0 "i 5.5, Lynx 2.8.3 (pentru Linux), Amaya 3.1 "i 4.0 (pentru Windows) "i Opera 4.0 "i 5.0 (pentru Windows "i Linux), pe sistemele de operare Linux RedHat 6.2, Linux RedHat 7.0, Windows 95, Windows 98, Windows NT 4.0 Server "i Windows Me. Fi"ierele HTML au fost post-procesate "i verificate folosind aplica#ia HTML Tidy (pentru Linux). Documentele SMIL prezentate n lucrare au fost validate "i vizualizate cu GRiNS 1.0 "i 1.5 (pentru Windows). Exemplele HTML+TIME 2.0 au fost rulate sub Internet Explorer 5.5. Pentru testarea lumilor VRML s-a folosit vizualizatorul World View 2.0.

    Script-urile CGI au fost concepute n limbajele C - standardul ANSI (folosindu-se compilatorul EGCS 1.1.2), Bourne Again Shell (bash 1.14.7) "i Perl (prin utilizarea interpretorului Perl 5.0), fiind executate sub Linux RedHat. Programele PHP s-au testat pe serverul Apache 1.3.12 cu interpretorul PHP 3.0.15 "i 4.0.2 sub Linux. Script-urile JavaScript au fost rulate pe navigatoarele precizate mai sus.

    Applet-urile "i aplica#iile Java prezentate au fost testate "i executate sub mediul de dezvoltare Java 2 SDK Standard Edition 1.3 pentru Windows.

    Acolo unde nu se precizeaz! alt autor, exemplele de cod surs!, ilustra#iile "i figurile sunt concepute de Sabin Corneliu Buraga. Nu ne facem r!spunz!tori pentru acurate#eacon#inutului aflat la adresele Web furnizate pe parcursul acestei c!r#i sau n cadrul referin#elor bibliografice.

    M u l " u m i r i

    Dorim s! transmitem graditudinea noastr! tuturor colegilor, colaboratorilor "iprietenilor, f!r! suportul c!rora aceast! carte n-ar fi reu"it s! prind! forma actual!. Suntem profund recunosc!tori profesorilor no"tri prof.dr. Toader Jucan, prof.dr. Dumitru Todoroi, conf.dr. Gabriel Ciobanu, conf.dr. Dan Cristea, conf.dr. Dorel Lucanu "ilect. Valentin Clocotici.

    Mul#umim pentru sprijinul venit din partea domnului Mircea Srbu de la revista NET Report care a f!cut posibil! publicarea unor articole referitoare la tehnologiile Web actuale, c!r!mizi pe baza c!rora s-a construit edificiul prezentului material.

    Prezentul volum cuprinde un num!r minim (sper!m nul) de gre"eli "i datorit! atentelor remarci venite din partea lect.dr. %tefan Andrei, ing. Drago! Acost#chioaie,cercet. Octavian Buzatu "i studen#ilor C#t#lin Mitrofan "i Iulian V#ideanu.

  • Tehnologii Web

    iv

    De asemeni, suntem recunosc!tori domni"oarelor asist. Liliana Ib#nescu, absolventei Corina Apachi"e "i studentei Anca Avram pentru sprijinul bibliografic acordat "istuden#ilor care au des!vr"it tehnoredactarea ntregului text conform normelor n vigoare ale limbii romne "i ne-au ajutat la cristalizarea structurii acestui text.

    Mul#umiri speciale familiei, mai ales p!rin#ilor no"tri, pentru suportul "i n#elegerea manifestate de-a lungul anilor.

    Ia"i, martie 2001

  • T e h n o l o g i i W e b

    "Tehnica reprezint# fantezia realit#"ii." (Lucian Blaga)

  • Tehnologii Web

    A - 2

    11111111........ nnnnnnnncccccccceeeeeeeerrrrrrrrccccccccaaaaaaaarrrrrrrreeeeeeee ddddddddeeeeeeee ddddddddeeeeeeeeffffffffiiiiiiiinnnnnnnniiiiiiiirrrrrrrreeeeeeee iiiiiiii iiiiiiiissssssssttttttttoooooooorrrrrrrriiiiiiiicccccccc

    1.1 World Wide Web1.1 World Wide Web1.1 World Wide Web1.1 World Wide Web

    R!d!cinile spa#iului World Wide Web se reg!sesc n nceputurile Internetului, cu peste 25 de ani n urm!. n 1969 apare prima re#ea cu comutare de pachete, denumit! ARPAnet(Advanced Research Projects Agency network), fondat! de Pentagon, punctul de start al re#eleiInternet actuale.

    n anul 1980, NSF (National Science Foundation) reproiecteaz! modelul ARPAnet, transformndu-l ntr-o re#ea modern!, arhitectura primind numele de Internet,interconectnd la nceput super-calculatoare guvernamentale, institu#ii academice "i centre de cercetare "i utiliznd o suit! standard de protocoale de comunica#ie reprezentat! de TCP/IP (Transmission Control Protocol/Internet Protocol). n anii care urmeaz!, Internetul se dezvolt! spectaculos, ntr-o manier! exponen#ial!.

    Serviciile tradi#ionale ale Internetului se rezumau n anii '80 la po"ta electronic! (e-mail),accesul la grupuri de "tiri (usenet), conectare la distan#! (telnet) "i transfer de fi"iere (FTP).n 1990-1991 apar dou! noi servicii: Archie utilizat pentru c!utarea fi"ierelor pe Internet "iGopher, structur! de meniuri ierarhizate facilitnd organizarea documentelor pe Internet.

    Unul dintre cele mai importante "i de succes servicii ale Internetului, World Wide Web-ul - sau, mai pe scurt, Web ori spa#iul WWW - a fost creat la CERN(Centrul European de Cercet!ri Nucleare de la Geneva) n anul 1989 de c!tre fizicienii Tim Berners-Lee, Robert Caillau "i echipa lor, cu scopul de a avea acces mai u"or la informa#iiletehnice ale manualelor de utilizare a calculatoarelor. Data de 12 noiembrie 1990se consider! a fi ziua de na"tere oficial! a Web-ului. Primul client grafic permi#ndvizualizarea de documente WWW a fost WorldWideWeb. Dezvoltarea ulterioar! a sistemului a fost facilitat! de programul Mosaic (de la NCSA - Centrul Na#ional pentru aplica#iilesupercalculatoarelor, Universitatea Urbana-Champaign), rulnd sub mediul X Window. Acest navigator era foarte simplu de folosit "i poseda facilit!#i multimedia, fiind furnizat gratuit pe Internet ncepnd din 1993.

    Web-ul reprezint! un sistem de distribu"ie local! sau global! a informa"iilor hipermedia. Din punct de vedere tehnic, spa#iul Web pune la dispozi#ie un sistem global "i standardizat de comunicare multimedia, informa#iile fiind organizate asociativ "i fiind distribuite n func#iede cererile utilizatorilor, func#ionnd conform modelului client-server. Web-ul, cu toat!dezvoltarea lui spectaculoas!, nu trebuie confundat cu Internetul, ci poate fi v!zut drept cea mai dinamic! "i "minunat!" component! software a acestuia, neputnd exista f!r!infrastructura hardware a re#elelor mondiale interconectate.

    Cre"terea masiv! a num!rului de servicii "i produse Web este dat! de utilizarea unui tot mai bogat con#inut informa#ional: imagini, video "i sunet.

    Combinarea "i integrarea acestor medii formeaz! multimedia, utilizat! pe scara larg! n reprezentarea "i interschimbarea informa#iilor. Diverse obiecte/documente multimedia incluznd hiperleg!turi definesc conceptul de hipermedia. Nu exist! ns! o defini#ieuniversal acceptat! a multimediei. Putem privi multimedia drept surs! a activita#ilor de design, stocare, interogare "i utilizare a documentelor electronice compuse din "medii" multiple ca video, audio, anima#ie, text, grafic! "i imagine. n general, o aplica#ie este

  • Tehnologii Web

    A - 3

    considerat! a fi multimedia, dac! ea con#ine m!car o media continu! (video, de pild!) "i una discret! (cum ar fi textul).

    Pentru a n#elege no#iunea de hipermedia, trebuie s! n#elegem ce nseamn! hipertextul. n anul 1965, Ted Nelson inventeaz! termenul hipertext (text non-linear), definindu-l drept "material scris sau grafic interconectat ntr-o manier! complex! care n mod conven#ionalnu poate fi reprezentat pe hrtie. El poate con#ine cuprinsuri ale propriului s!u con#inut "irela#iile dintre diverse p!r#i componente; poate de asemeni con#ine adnot!ri, ad!ugiri "inote de subsol pentru cei care doresc s!-l examineze".

    Defini#iile hipertextului sunt diverse. De exemplu, iat! dou! dintre ele.

    Conform cu J.Smith "i S.Weiss, hipertextul reprezint!:

    1. o form! de document electronic;

    2. o metod! de organizare a informa#iilor n care datele sunt memorate ntr-o re#ea de noduri "i leg!turi, putnd fi accesat! prin intermediul navigatoarelor interactive "i manipulat! de un editor structural.

    n viziunea lui W.Weiland "i B.Shneiderman, hipertextul denot! o tehnic! pentru organizarea informa#iei textuale printr-o metod! complex! neliniar! n vederea facilit!riiexplor!rii rapide a unei cantit!#i mari de cuno"tin#e. Conceptual, o baz! de date hipertext poate fi gndit! ca un digraf, unde fiecare nod poart! un fragment de text "i unde arcele grafului conecteaz! unele fragmente de text cu altele nrudite. Pentru a vizualiza textul dintr-o astfel de baz! de date, utilizatorul se va folosi de o interfa#!, traversnd leg!turile.

    Ideea de a reprezenta printr-o modalitate nelinear! mai multe tipuri de medii este ns!mult mai veche. nceputurile hipertextului "i multimediei apar ntr-un articol publicat n iulie 1945 n Atlantic Monthly: "As We May Think", autorul lui fiind Vannebar Bush,profesor la MIT "i la Institutul Carnegie din Washington. El descrie o ma"in! menit! a ajuta omul n cadrul procesului de memorare, pe baza asocia#iilor ntre con#inut "i form!, aceast!ma"in! numind-o MEMEX (MEMory EXtended). MEMEX se baza par#ial pe tehnologia microfilmelor, fiind prev!zut! cu dispozitive de selec#ie foto-optic! "i tastaturi, "dispozitiv ce poate stoca toate c!r#ile, nregistr!rile "i comunica#iile "i care este mecanizat n a"a fel nct consultarea informa#iilor se realizeaz! flexibil "i rapid". (Bush, 1945)

    O alt! personalitate implicat! n dezvolt!rile de nceput ale multimediei este Douglas Engelbart, membru al Institutului de Cercetare de la Stanford unde dezvolt!revolu#ionarul proiect Augment. Acest proiect deschide o direc#ie important! de cercetare odat! cu prezentarea lui la Fall Joint Computer Conference n 1968.

    n anul 1963, Engelbart propune dispozitive computerizate de scriere automat! cu un deceniu nainte de apari#ia primelor procesoare de texte evoluate.

    n cadrul prezent!rii din 1968, prima demonstra#ie public! a unor facilit!#i de baz!standard ale actualelor programe de tehnoredactare, interfe#e grafice, aplica#ii hipertext "imultimedia, Engelbart ilustreaz! urm!toarele idei inovative "i inven#ii: mouse, ferestre multiple pe ecranul computerului, facilit!#i de procesare de texte "i hipertexte, po"ta electronic!, teleconferin#e, documente compuse din text "i grafic!, limbaje de comand! de tip script, interfa#a grafic!.

    A treia figur! important! n istoria multimediei este Ted Nelson, inventatorul termenului de hipermedia "i a unui sistem hipermedia: Xanadu ("locul magic al memoriei literare" dup! cum l descrie poetul Samuel Taylor Coleridge n poemul "Kubla Kahn: Or, A Vision in a Dream", scris n anul 1798). Ideea de baz! a proiectului Xanadu era aceea de a concepe

  • Tehnologii Web

    A - 4

    un sistem care s! con#in! ntreaga literatur! universal!, plus alte informa#ii, ntr-un singur depozit de date.

    Prototipul lui Xanadu exist! ntr-o versiune dezvoltat! de Autodesk (niciodat! f!cut!public!, n ciuda numeroaselor anun#uri a unor variante de test) "i n 1991 permitea:

    stocarea digital! a informa#iilor de tip text, grafic!, video etc.;

    leg!turi flexibile ntre documente (la nivel de caracter, cuvnt, fragment de imagine etc.);

    ata"area de senzori activi p!r#ilor de documente;

    controlul versiunilor "i compararea lor;

    accesul concurent "i sigur al mai multor utilizatori.

    Desigur, n prezent, Xanadu a fost dep!"it de ceea ce nseamn! Web-ul, dar multe dintre ideile de pionerat ale lui Nelson se reg!sesc n cadrul WWW "i a altor sisteme hipermedia actuale.

    n cadrul Laboratorului Media de la MIT, ncepnd cu anii '70, s-au dezvoltat o serie de sisteme multimedia clasice, surse de inspira#ie pentru aplica#iile actuale. Dintre acestea se pot men#iona: Spa#ial Data Management System, Aspen Movie Map, Project Athena, care definesc "i o parte dintre domeniile de interes ale hipermediei: simul!ri interactive, colabor!ri "tiin#ifice la distan#!, nv!#!mnt.

    Ast!zi se estimeaz! c! num!rul serverelor WWW a dep!"it un milion. n ultimii trei-patru ani, Web-ul s-a dezvoltat exploziv "i a dobndit un nou aspect, devenind domeniu public "i extinzndu-se foarte mult n lumea afacerilor. Astfel, Web-ul poate fi considerat segmentul Internet cu cea mai rapid! dezvoltare: dac! Internetul se dubleaz! la fiecare 100 de zile, spa#iul WWW num!r! deja peste un miliard de pagini.

    Istoricul WWW-ului decurge n paralel cu istoricul HTML-ului, limbaj de marcare a documentelor hipermedia disponibile pe Web pe care l vom prezenta n unul dintre capitolele urm!toare.

    1.2 Scurt istoric al HTML1.2 Scurt istoric al HTML1.2 Scurt istoric al HTML1.2 Scurt istoric al HTML

    Ca descendent al SGML-ului, limbajul HTML are o istorie care debuteaz! cu publicarea n 1986 de c!tre Organiza#ia interna#ional! pentru standardizare (ISO) a unui articol intitulat "Information Processing - Text and Office Systems - Standard Generalized Markup Language (SGML)". Dup! trei ani, Tim Berners-Lee de la CERN nainteaz! o propunere - proiect care a circulat sub numele de "HyperText and CERN" - de sistem de documente hipertext, denumit n octombrie 1990 World-Wide Web.

    Tim Berners-Lee identific! un numar de considerente practice pentru sistemul propus care trebuia s! ofere:

    accesul la distan#! ntr-o re#ea, acceptndu-se diverse tipuri de conexiuni;

    accesul la o multitudine de surse de informa#ii stocate ntr-o varietate de forme (text, grafic!, sunet etc.) cu ajutorul unor tipuri diferite de sisteme de operare situate pe diferite platforme hardware;

    capabilit!#i de extindere "i dezvoltare n ceea ce prive"te aria de acoperire prin cre"terea num!rului de leg!turi, f!r! existen#a unui control central.

  • Tehnologii Web

    A - 5

    Tim Berners-Lee scrie de asemeni prima aplica#ie Web, un pachet de server Web rulnd pe calculatoare NeXT. n noiembrie 1990, Nicola Pellow ncepe s! conceap! un navigator (browser) text care la sfr"itul aceluia"i an era disponibil n cadrul CERN.

    n mai 1991, CERN prezint! WWW la seminarul anual "i browserele n mod linie pentru platforme ca VAX, RS6000 "i SUN sunt disponibile pe grupurile de "tirialt.hypertext, comp.sys.net, comp.text.sgml "i comp.mail.multi-media(august 1991).

    Dan Connolly se al!tur! proiectului Web, iar experien#a sa n utilitare de documentare on-line "i sisteme formale l ajut! s! dezvolte specifica#ia pentru HTML. Pe data de 15 ianuarie 1992 apare pentru prima dat!, disponibil prin FTP anonim, un browser text conceput de CERN, interpretnd noul limbaj HTML, prezentat "i la AIHEP'92 - La Londe. Proiectului Web i se al!tur! Jean-Francois Groff "i Carl Barker.

    n 1993, navigatorul grafic, numit Mosaic, rulnd sub X Window este proiectat de Marc Andreesen "i f!cut public de NCSA (luna februarie). Mosaic reprezint! primul browser grafic care utilizeaz! standardul HTML. n aprilie 1993, dup! aproape un an "i jum!tate de la introducerea Web-ului, existau deja 60 de servere WWW.

    Urmeaz! ulterior prezentarea standardului HTML 2.0 (IETF RFC 1866) care include abilit!#i de afi"are mai precis! a imaginilor, utilizarea de formulare, tabele, tipuri de leg!turietc. HTML 2.0 permite dezvoltarea masiv! a Web-ului "i toate browserele WWW moderne l suport! f!r! restric#ii. n fapt, standardul HTML 2.0 doar pune n ordine anumite facilit!#ipractice ap!rute ncepnd cu anul 1994. Netscape extinde o parte dintre specifica#iileHTML 2.0 n 1996 ad!ugnd o serie de tag-uri utile n versiunea, foarte popular!,Netscape Navigator 2.0.

    HTML+ se dorea a fi o ncercare de a extinde HTML-ul, prima dat! publicat! de Dave Raggett n 1993 "i prezentat! la prima conferin#! Web n 1994.

    O extensie a HTML+ a fost HTML 3.0 care nu a fost niciodat! standardizat!. Ea a fost propus! de tn!rul pe atunci Consor"iu Web (W3C), format n 1994 de c!tre CERN "i MIT cu scopul de a alc!tui un standard viabil al limbajului HTML "i de a ghida conceperea de pagini Web. Acest consor#iu este cel care propune, certific! "i urm!re"te ntreaga dezvoltare a spa#iului WWW, n prezent avnd n componen#! institu#ii academice de renume, companii importante "i persoane implicate n organizarea Web-ului.

    n luna iulie 1996, Consor#iul Web anun#! oficial standardul HTML 3.2 adaugnd specifica#ii pentru tabele, imagini, applet-uri, perfect compatibil cu HTML 2.0. n ianuarie 1997, standardul a fost aprobat "i toate navigatoarele l suport!.

    Proiectan#ii de navigatoare (ca Netscape "i, mai nou, Microsoft) au implementat diferite facilit!#i care nu apar definite de nici un standard HTML. De exemplu, Netscape Navigator 3.0 oferea la data lans!rii posibilit!#i de ad!ugare de elemente multimedia direct n paginile Web, fundaluri reprezentate de imagini, cadre (frames) etc. care nu ap!ruser! nc! n specifica#iile HTML, plus suport pentru script-uri JavaScript interpretate direct de c!treclient.

    Urm!toarea versiune a HTML-ului dezvoltat! de Consor#iul Web, denumit! Cougar, este standardul HTML 4.0, ap!rut n anul 1997, care ofer! suport pentru accesibilitatea paginilor Web din partea persoanelor cu handicap, foi de stiluri interne, suport lingvistic "ipentru formule matematice, evenimente etc. Dup! cum stipuleaz! inventatorul Web-ului "idirectorul W3C, Tim Berners-Lee:

    "Cu HTML 4.0, orice aplica#ie Web va fi independent! de navigator."

  • Tehnologii Web

    A - 6

    HTML 4.0 este disponibil n trei variante:

    HTML 4.0 Strict

    HTML 4.0 Transitional

    HTML 4.0 Frameset

    Versiunile actuale ale celor mai cunoscute navigatoare (Netscape Communicator, InternetExplorer "i Opera) suport! standardul HTML 4.

    Pentru a asigura fiabilitatea "i corectitudinea comunica#iilor pe WWW, Consor#iul Web a introdus HTML Validation Service (aflat la adresa http://validator.w3.org/) care verific! dac! un anumit document se conformeaz! standardului HTML 4.0. Tim Berners-Lee declar! c! HTML 4.0 n-a fost conceput pentru navigatoare, ci pentru aplica#ii viitoare "i produse Web.

    Ultima direc#ie de standardizare a Consor#iului WWW este cea a rescrierii HTML-ului n termenii meta-limbajului extensibil XML, pentru a cre"te flexibilitatea "i a oferi proiectan#ilor de aplica#ii Web o mai mare adaptabilitate. Astfel, HTML 4.0 este urmat de XHTML $.0, standardizat relativ recent, n luna ianuarie 2000.

  • Tehnologii Web

    A - 7

    22222222........ MMMMMMMMeeeeeeeettttttttooooooooddddddddoooooooollllllllooooooooggggggggiiiiiiiiiiiiiiii

    2.1 Hipertextul2.1 Hipertextul2.1 Hipertextul2.1 Hipertextul

    Conceptul esen#ial prezent n cadrul hipertextului este cel al leg!turilor (care apar n cadrul aceluia"i document "i/sau ntre documente diferite). Aceast! caracteristic! de legare permite organizarea non-linear! a informa#iilor.

    O parte dintre avantajele hipertextului fa#! de textul tip!rit sunt:

    forma neliniar! a hipertextului ofer! capabilit!#i eficiente de parcurgere a con#inutului;

    mediile electronice pot stoca o cantitate impresionant! de informa#ii;

    hipertextul ofer! o mai bun! vizualizare a con#inutului "i o navigare rapid!,orict de complexe ar fi documentele, #innd cont de specifica#iile utilizatorilor;

    n cadrul sistemelor hipertext, interog!rile, filtr!rile, diversele preferin#e"i adnot!rile utilizatorilor pot fi refolosite ori de cte ori este necesar, putnd fi stocate n cadrul structurii hipertext a documentelor folosite.

    Principalele probleme cu care se confrunt! informaticienii n ceea ce prive"te hipertextul sunt cele legate de:

    conversie (n general automat!) a textului liniar n form! hipertext "i liniarizarea hipertextului;

    proiectare (design) a documentelor hipertext;

    accesare concurent! a bazelor de date hipertext n context distribuit;

    construire a unor mecanisme optime pentru c!utarea "i interogarea n manier!inteligent! a informa#iilor hipertext;

    suportare a extensiilor multimedia;

    prezentare a documentelor hipertext ntr-o form! u"or de parcurs de c!treutilizatori etc.

    2.2 Noduri i legturi2.2 Noduri i legturi2.2 Noduri i legturi2.2 Noduri i legturi

    n principiu, un sistem hipermedia este constituit din noduri (concepte) "i leg#turi(rela#ii). Un nod reprezint!, n mod uzual, un concept unic (o idee), putnd con#ine text, grafic!, anima#ie, audio, video, imagini sau programe. Un nod poate avea asociat un tip (detaliu, propozi#ie, colec#ie, observa#ie etc.) nglobnd o informa#ie semantic!. Nodurile sunt conectate de alte noduri prin intermediul leg!turilor. Nodul surs! al unei leg!turi se nume"te referin"!, iar cel destina#ie referent, fiind denumite "i ancore. Con#inutul unui nod se afi"eaz! la activarea leg!turii.

    Modalitatea de stocare a informa#iei n cadrul nodurilor variaz! de la sistem la sistem, dar cele mai folosite tehnici utilizeaz! limbajele de marcare (SGML sau, mai nou, XML),

  • Tehnologii Web

    A - 8

    standardele actuale construite pe baza acestor limbaje fiind HyTime (Hypermedia/Time-based Structuring Language), MHEG (Multimedia and Hypermedia Information Coding Expert Group)sau HTML (HyperText Markup Language). Avantajul major este asigurarea independen#ei de platforma hardware "i software, formatele proprietare conducnd la greut!#i de navigare, c!utare sau ntre#inere. Din moment ce nodurile pot con#ine informa#ii multimedia, sistemele hipermedia trebuie s! fie suficient de flexibile pentru a suporta o multitudine de formate grafice, audio "i video.

    O structur# hipertext compus# din mai multe noduri !i modul de vizualizare folosind un browser hipertext

    Leg!turile sunt conexiuni ntre noduri (sau concepte) dependente unul de altul, putnd fi bidirec"ionale sau doar unidirec"ionale. %i leg!turilor li se pot asocia tipuri (leg!tura de specificare, de elaborare, leg!tura membru, leg!tura de opozi#ie etc.), definind natura rela#iei dintre noduri. Dup! Conklin, leg!turile pot fi referen"iale (non-ierarhice, utile pentru realizarea referin#elor ncruci"ate, ele fiind cele care deosebesc cel mai bine hipermedia de celelalte forme de stocare a informa#iei) sau organiza"ionale (denumite ierarhice sau structurale, ilustrnd rela#iile p!rinte-copil dintre noduri, folosite la organizarea nodurilor n manier! ierarhic! ntr-o structur! strict!). Leg!turile organiza#ionale sunt esen#iale pentru liniarizarea hipertextului "i permit autorilor s! verifice coeren#a structurii hipertext.

    Exemplu de structur# hipertext liniar# avnd leg#turi referen"iale !i leg#turi bidirec"ionale

    De asemeni, leg!turile pot fi statice (stabilite de autorul documentului) sau dinamice(create n momentul rul!rii sistemului hipertext, n func#ie de context sau de cerin#eleutilizatorilor). Ele pot fi utilizate, de exemplu, pentru a ncorpora proceduri de securitate (o leg!tur! poate fi disponibil! doar pentru un anumit utilizator) ori s! permit! utilizatorilor s!-"i creeze leg!turi personale ntre diverse noduri care n mod uzual nu sunt conectate direct. Sisteme ca Hyperwave, Microcosm sau Deja-vu ofer! suport pentru leg!turidinamice.

    Activarea marcajelor unei leg!turi duce la vizualizarea (activarea) nodurilor.

    Conceptele de mai sus "i au originile n istoria omenirii. Talmudul (utiliznd din plin comentarii "i adnot!ri imbricate, colaterale), Ramayana "i Mahabharata sunt prototipuri

  • Tehnologii Web

    A - 9

    antice ale reprezent!rii hipertextului. Un alt exemplu concludent este Biblia. Dic#ionarele "ienciclopediile tip!rite pot fi considerate vechi forme de hipertext, fiind v!zute ca re#ele de noduri-text unite de leg!turi-referin#e.

    obiect hipertext nod

    structur! nod-secven#ial

    cale linear! cale alternativ! cale condi#ionat!

    nod de explorare con#inut

    atomic surs! intern! surs! extern!

    nod compus leg!tur!

    structur! leg!tur! secven#ial! leg!tur! de explorare

    con#inut

    Structura ierarhic# a conceptului de obiect hipertext

    2.3 Conceperea documentelor hipertext2.3 Conceperea documentelor hipertext2.3 Conceperea documentelor hipertext2.3 Conceperea documentelor hipertext

    n#elegerea "i navigarea printr-un document de tip hipertext depind de abilitatea utilizatorului de a construi o reprezentare mental! coerent! a structurii hipertextului, r!mnnd n responsabilitatea creatorului documentului s! asigure aceast! coeren#!.Construirea unui document hipertext coerent poate fi considerat! o problem! de design, f!r! a exista ns! legi pentru conceperea de documente hipertext "corecte", de"i cercet!toriprecum Manfred Thuring, Usha Rao sau Jeff Conklin au stabilit o serie de reguli pentru aceasta. n viziunea acestora, un document hipertext coerent const! din trei componente: partea de con#inut, partea de organizare "i partea de prezentare a informa#iilor.

  • Tehnologii Web

    A - 10

    Explorarea informa"iilor hipermedia con"inute de Encyclopaedia Britannica 2000

    P a r t e a d e c o n " i n u t

    Nodurile "i leg!turile pot fi considerate drept obiecte proiectate, pentru asigurarea coeren#ei putndu-le fi asociate propriet!#i (semantici). Partea de con#inut stocheaz! obiecte purt!toare de informa#ie, acestea fiind noduri con#inut care memoreaz! date "i leg!turi de tip con#inut care conecteaz! nodurile con#inut pe baza unor rela#ii semantice. Nodurile con#inut pot fi atomice sau pot fi compuse din alte noduri (m!rimea unui nod este determinat! de autor). Preciznd natura semantic! a rela#iilor dintre noduri, leg!turile sunt clasificate pe mai multe nivele dup! cum urmeaz!:

    nivelul 1: leg!turile nu au asociate etichete;

    nivelul 2: leg!turile posed! etichete descriind n#elesul global al rela#ieidintre obiecte (i.e. "este ilustrat de" sau "este discutat de");

    nivelul 3: leg!turile au etichete mai detaliate (precum "este vizualizat grafic prin", "este criticat de").

    Aceast! clasificare poate fi rafinat!, n sensul c! ierarhia nivelelor leg!turilor depinde de starea actual! de cunoa"tere a autorului documentului.

    P a r t e a d e o r g a n i z a r e

    Obiectele din cadrul acestei p!r#i m!resc coeren#a prin structurarea re#elei hipertext din perspectiva cititorului acelui document. Autorul poate preg!ti diferite variante ale documentului n func#ie de audien#a lor.

  • Tehnologii Web

    A - 11

    Nodurile de structur! organizeaz! nodurile con#inut "i leg!turile ntr-o manier! specific!,fiecare nod de structur! avnd un nume "i un nod de start. Acestea pot fi de dou! tipuri:

    1. noduri de secven#! care permit autorului s! defineasc! secven#a de citire a con#inutului hipertextului (cititorul poate fi constrns s! urmeze secven#a de noduri indicat! de autor);

    2. noduri de explorare care ofer! utilizatorului posibilit!#i de explorare a re#elei hipertext.

    Leg!turile de structur! se pot clasifica astfel:

    1. leg!turi de secven#! asociate con#inutului fiec!rui nod de secven#! care posed! o secven#! de prezentare (se utilizeaz! pentru a defini ordinea de parcurgere: liniar!, arborescent! etc.);

    2. leg!turi de explorare oferind acces la nodurile de explorare.

    Nodurile de secven#! mpreun! cu leg!turile de secven#! pot oferi diverse secven#e de prezentare a con#inutului hipertext (ca de exemplu c!i de vizitare secven#iale, arborescente sau condi#ionale).

    P a r t e a d e p r e z e n t a r e

    Partea de prezentare are n vedere vizualizarea structurii "i con#inutului hipertextului "iofer! mecanisme de navigare. Autorii pot adopta diferite stiluri de prezentare a informa#iilor:

    a. textual - nu se ofer! o vizualizare grafic! a structurii, prezentarea fiind limitat! la afi"area con#inutului unuia sau mai multor noduri;

    b. grafic - exist! o vizualizare grafic! a structurii hipertext (e.g. harta leg!turilordintre noduri, arbore de navigare etc.);

    c. combinat - ofer! ambele posibilit!#i de prezentare.

    2.4 Structuri hipermedia2.4 Structuri hipermedia2.4 Structuri hipermedia2.4 Structuri hipermedia

    Hiperdocumentele se structureaz! asemeni re#elelor (grafurilor), f!r! restric#ii n ceea ce prive"te m!rimea nodurilor sau modul de realizare a leg!turilor dintre ele. Uneori o structur! hipertext poate deveni extrem de mare "i atunci, de cele mai multe ori, se folosesc leg!turi organiza#ionale pentru a putea fi parcurs! de utilizatori. Structura hiperdocumentelor devine deosebit de important! din punctul de vedere al problemei parcurgerii n ntregime a nodurilor "i a reg!sirii informa#iilor (utilizatorii se pot confrunta cu a"a-numita "pierdere n spa#iu" - lost in space, atunci cnd nu mai "tiu unde se afl!n cadrul structurii hipermedia).

  • Tehnologii Web

    A - 12

    Parcurgerea arborescent# a nodurilor hipertext n enciclopedia Encarta 2000

    Exist! mai multe abord!ri pentru realizarea unei structuri hipermedia valide "iu"or de parcurs.

    Cea mai uzual! se bazeaz! pe metafora c!r"ii tip!rite, structura linear! putnd acompania un alt tip de structur!, folosindu-se leg!turi organiza#ionale ntre nodurile hiperdocumentelor. Alte leg!turi pot fi utilizate pentru a oferi ceea ce se nume"te "capabilitatea non-liniar! controlat!" de a parcurge hipertextul (leg!turi c!tre cuprins, referin#e, note de subsol, glosar de termeni etc. pot apare cu succes pentru a mbun!t!#i structura documentelor). Structurile liniare pot ajuta la realizarea a ceea ce se nume"te tour-guide al unui sistem, fiind preg!tite n prealabil de c!tre exper#i pentru a ghida un novice printr-o re#ea de noduri hipertext.

    Se ofer! suport pentru traversarea unui text liniar n cadrul unui sistem hipermedia, dar aceast! abordare "i dovede"te sl!biciunea atunci cnd lu!m n considerare explorarea hiperdocumentelor liniare de dimensiuni considerabile.

    A doua manier! de realizare este structura liniar! cu salturi, adoptat! de Apple n cadrul sistemului HyperCard, constnd dintr-o structur! arborescent! n care utilizatorii pot s! traverseze nodurile n oricare direc#ie urmnd o cale liniar!,dar de asemeni sunt capabili s! fac! salturi de la orice nod la un nod principal denumit nodul acas! ("home"). Nodul acas! poate fi o bibliotec! avnd n componen#! diverse documente liniare (e.g. c!r#i electronice).

  • Tehnologii Web

    A - 13

    Exemplu de structur# liniar# cu salturi

    Dac! informa#ia dintr-un hiperdocument se poate divide n mod natural n ierarhii ordonate, atunci se utilizeaz! o structur! ierarhic!, aceast! abordare reg!sindu-se n modelul Dexter "i permi#nd cu succes utilizatorilor s! navigheze printr-o re#ea hipertext complex!. Autorul poate crea ierarhii de informa#ii utiliznd leg!turi organiza#ionale "i apoi s! adauge leg!turi referen#iale facilitnd interconectarea acestor ierarhii. n cadrul unei structuri de tip ierarhic men#inerea integrit!#ii "i explorarea nodurilor se realizeaz! mai u"or.

    n cadrul literaturii de specialitate, hipermedia este v!zut! ca imitatoare a memoriei umane, nodurile putnd fi structurate ca o pnz! (re#ea). Astfel, se pot realiza documente hipertext structurate semantic, prin mpletirea hipermediei cu inteligen#a artificial!, utilizndu-se diverse metode precum re#ele semantice, noduri semi-structurate, h!r#i de concepte etc.

    Este posibil, desigur, ca n cadrul unui singur hiperdocument s! coexiste mai multe principii de structurare (vezi figura de mai jos). C!ile liniare sunt uzuale pentru a parcurge o arie de interes ntr-o ordine prestabilit!, re#eaua permite navigarea, iar ierarhia ofer! o structur! de tip index.

    Coexisten"a a trei principii de structurare a hipertextului (exemplu dat de Waterworth !i Chignell)

  • Tehnologii Web

    A - 14

    2.5 Modele2.5 Modele2.5 Modele2.5 Modele

    Pentru a realiza sisteme hipermedia deschise, cu func#ionalit!#i integrate, s-au propus diverse modele, pe o parte dintre ele le vom trece n revist! n continuare.

    H y p e r t e x t A b s t r a c t M a c h i n e ( H A M )

    Una dintre primele ncerc!ri de a propune un model de implementare hipertext a fost Hypertext Abstract Machine (HAM), un sistem general multi-utilizator pentru stocarea hipertextului, bazat pe tranzac#ii, ap!rut n 1988. Modelul este structurat pe nivele, constnd din:

    interfa#a cu utilizatorul - un mediu interactiv bazat pe ferestre;

    aplica#ia - aplica#ia curent! care poate rula pe aceea"i ma"in! sau pe o ma"in!diferit! de cea pe care ruleaz! HAM;

    ma"ina hipertext abstract! (HAM) - un motor utilizat pentru managementul tuturor informa#iilor referitoare la hipertext "i pentru comunicarea cu aplica#ia prin intermediul unui protocol special;

    sistemul de stocare sau sistemul de fi"iere gazd! - un depozit de date care memoreaz! toate structurile hipertext "i bazele de date.

    Nivelele modelului HAM

    Modelul de stocare HAM const! din cinci tipuri de obiecte:

    1. grafuri - re#ele de noduri "i leg!turi con#innd unul sau mai multe contexte;

    2. contexte - parti#ii de date n cadrul grafurilor;

    3. noduri;

    4. leg!turi;

    5. atribute (asociind semantici).

    Asupra obiectelor HAM se pot realiza opera#ii de creare, "tergere, distrugere, modificare, filtrare, interogare "i altele. Arhitectura HAM ofer! un sistem de control al versiunilor, securitatea "i filtrarea datelor.

  • Tehnologii Web

    A - 15

    H y p e r m e d i a D e s i g n M o d e l ( H D M )

    Modelul a fost dezvoltat ca parte a proiectului HYTEA ncepnd cu anul 1991.Facilit!#ile de baz! ale HDM sunt reprezentarea aplica#iilor hipertext prin intermediul primitivelor: entit!#i-tip compuse din ierarhii de componente, diverse perspective ale unei componente, leg!turi structurale legnd componentele apar#innd acelea"i entit!#i sau unor entit!#i diferite, semantici de navigare. Aceste primitive sunt similare obiectelor definite de HAM.

    Modelul este gndit a fi independent de sistem, putndu-se utiliza la translarea aplica#iilorhipertext dintr-un mediu ntr-altul.

    HDM poate fi folosit pentru crearea unor hiperdocumente de dimensiuni mari sau pentru definirea topologiei unei re#ele hipertext, neputnd oferi suport pentru documente mici sau pentru asocierea de informa#ii nodurilor.

    n cadrul HDM se pot defini specifica#ii de nivel nalt, una dintre facilit!#ile interesante fiind aceea prin care un autor poate defini "perspective" permi#nd prezent!ri alternative ale informa#iei hipertext. Aceasta poate fi de folos atunci cnd sistemul este bilingv sau cnd reprezent!rile sunt att text, ct "i grafice.

    M o d e l u l D e x t e r

    Modelul Dexter captureaz! cele mai importante abstractiz!ri prezente pe o varietate larg!de sisteme hipermedia actuale sau viitoare. Scopul modelului este s! ofere o baz! pentru compararea sistemelor "i pentru dezvoltarea de standarde n vederea interschimbului de date "i interoperabilit!#ii.

    Modelul Dexter mparte un sistem hipertext n trei nivele majore:

    Runtime - este responsabil cu prezentarea hipertextului "i interac#iunea cu utilizatorul. Modelul Dexter nu intr! n detaliile mecanismului de prezentare, specifica#iile prezent!rii oferind doar o interfa#! ntre acest nivel "i nivelul imediat inferior;

    Storage - este cel mai important nivel, modelnd o baz! de date care este compus! dintr-o ierarhie de componente con#innd date interconectate prin leg!turi rela#ionale. Componentele posed! identificatori unici "i leg!turile pot fi identificate de un set de doi sau mai mul#i identificatori. Componentele corespund no#iunii generale de noduri "i pot con#ine text, imagini statice, audio, video etc. Componentele sunt tratate ca "i containere generice de date "i modelul nu specific!nici o structur! a acestora (astfel, componentele text nu sunt diferen#iate de componentele audio, de exemplu).

    Component - nivelul specific! structura "i con#inutul fiec!rei componente a re#elei hipertext. Acest nivel este unul deschis, putnd fi nglobate noi forme de reprezentare a informa#iei. Modelul Dexter presupune c! modele structurale precum SGML (Standard Generalized Markup Language) sau ODA (Open Document Architecture) vor fi utilizate pentru a captura con#inutul/structura nodurilor. Exist! ns! o interfa#! ntre acest nivel "i nivelul de stocare care analizeaz! mecanismul de asociere de loca#ii (adrese) pentru con#inutulunei anumite componente.

  • Tehnologii Web

    A - 16

    M o d e l u l T r e l l i s

    Richard Furuta "i David Stotts dezvolt! un sistem hipertext, bazat pe re#ele Petri, denumit Trellis, n care implementeaz! modelul Trellis. Din acest model ei au dedus un meta-model de referin#!, abreviat r-model. Modelul este structurat pe cinci nivele logice, n fiecare nivel putndu-se reg!si una sau mai multe reprezent!ri a unei p!r#i ori a ntregului hipertext. Prin contrast cu modelul HAM sau alte abord!ri, nivelele reprezint! nivele de abstractizare "i nu componentele sistemului.

    Nivelele pot fi grupate n trei categorii: abstracte, concrete "i vizibile. Anumite aspecte ale hipertextului au fost deliberat excluse din cadrul modelului Trellis: semantica navig!rii,comportamentul dinamic, caracteristicile con#inutului, descrierile de la nivelul fizic, interfe#ele cu utilizatorul.

    Astfel, modelul nu este indicat pentru modelarea unei aplica#ii de genul unei c!r#ielectronice hipermedia.

    M o d e l u l T o w e r

    Majoritatea modelelor hipertext au n vedere specificarea unor caracteristici ale sistemelor actuale "i mai pu#in ale celor viitoare. Cercet!torul Paul De Bra "i echipa sa propun un nou model hipertext, orientat-obiect "i extensibil, prezentndu-l la cea de-a patra Conferin#! a Hipertextului, organizat! de ACM (Association for Computing Machinery).

    Modelul, denumit Tower (turn), con#ine elemente structurale de baz! ca noduri, leg!turi"i ancore, obiecte de tip turn "i obiecte de tip ora". Obiectele turn sunt utilizate s! modeleze diverse descrieri ale unui obiect (fiind similare, oarecum, nivelelor modelului Dexter). Tipul, modalit!#ile de stocare, modalit!#ile de vizualizare etc. reprezint! nivele ale obiectului turn. Ora"ele constau din mul#imi de vizualizare peste obiectele turn.

    Modelul permite fiec!rui tip de obiect s! fie obiect virtual (i.e. rezultatul unei func#ii sau algoritm), operatorii pentru definirea structurilor virtuale fiind Apply-to-All, Filter,Enumeration "i Abstraction, utili pentru prelucrarea informa#iilor hipertext. Semantica navig!rii este descris! prin intermediul re#elelor Petri.

  • Tehnologii Web

    A - 17

    Modelul Tower

    Nodurile, leg#turile !i ancorele

    Un nod este descris de un obiect-identificator (oid) "i de o valoare. O ancor! este referit!,la fel, de un obiect-identificator "i de o valoare (care ar trebui s! reprezinte, printre alte lucruri, un nod oid "i loca#ia ancorei n cadrul acelui nod). O leg!tur! este descris! printr-un 4-uplu de forma (obiect-identificator, ancor! surs!, ancor! destina#ie, valoare).

    n cadul modelului Tower, nodurile, leg!turile "i ancorele sunt "cet!#eni", fiecare avnd un oid "i o valoare care poate denota orice. Separnd informa#iile despre ancore de leg!turi"i noduri avem avantajul de a izola mecanismul de legare de diverse detalii ale nodurilor conectate. Aceasta separa#ie este important! n cazurile n care hiperdocumentul trebuie s!suporte integrarea informa#iei provenit! din colec#ii eterogene.

    Obiectele sunt noduri, leg!turi sau ancore. Valoarea unui astfel de nod poate fi: o valoare de baz! (aleas! dintr-o mul#ime de clase primare, dependent! de aplica#ia hipertext), o valoare compus!, o valoare turn (tower value) sau o valoare ora" (city value).

    n cadrul acestei sec#iuni ne vom referi la obiectele de baz!:

    Valoarea unui nod modeleaz! un fragment de informa#ie care, depinznd de aplica#ie,poate fi simpl! (e.g. "ir de octe#i) sau compus! (e.g. formular electronic). Con#inutul unui nod de baz! este inaccesibil sistemului hipermedia prin mijloace obi"nuite "i poate fi manipulat numai prin metode specifice nodului (e.g. editoare specializate), respectndu-se principiul ncapsul!rii datelor.

  • Tehnologii Web

    A - 18

    O ancor! de baz! reprezint! loca#ia destina#ie a unei leg!turi, putnd fi de tip uzual, ca pozi#ia n cadrul unui nod text, sau o loca#ie dependent! de aplica#ie n cadrul unui nod complex, ca de exemplu o coordonat! tridimensional! a unui corp 3D.

    O leg!tur! de baz! este o rela#ie simpl! dintre dou! ancore de baz! (e.g. o leg!tur! dintre dou! noduri). Valorile leg!turii sunt alese n func#ie de aplica#ie.

    Turnurile

    Func#ionalitatea obiectelor dintr-un hiperdocument este una multi-dimensional! "i astfel descrierea complet! a unui obiect const! din diferite nivele. De exemplu, un nod posed!:

    o dimensiune structural! constnd din con#inutul lui (e.g. text) "i opera#iilede manipulare a acestui con#inut (e.g. editarea textului folosind un editor de text);

    un nivel de prezentare descriind afi"area sa pe ecran;

    o a treia dimensiune (nivel) este aceea a atributelor care ata"eaz! un rol semantic nodului (e.g. decizia).

    Nodurile dependente de timp (cele video, de exemplu) posed! o dimensiune temporal!definind scenariul prezent!rii lor.

    Acestor dimensiuni le corespund diferite nivele de descriere a unui hiperdocument. Nivelele adreseaz!, astfel, diverse informa#ii "i componente din arhitectura unui sistem hipertext.

    Un obiect turn este un obiect avnd o valoare de tip turn (tower value). O astfel de valoare reprezint! o func#ie de asociere a unei mul#imi de etichete la o mul#ime de obiecte. Fiecare etichet! const! dintr-un nivel de descriere, corespunznd unui nivel separat al func#ionalit!#ii hiperdocumentului. Domeniul de definire a func#iei este fixat pentru fiecare clas! de obiecte turn.

    Toate obiectele sunt modelate prin turnuri. De pild!, un turn leg!tur! poate consta din:

    un nivel structural stocnd mul#imea de leg!turi,

    un nivel de prezentare indicnd cum vor fi figurate leg!turile pe ecran,

    un nivel semantic definind rela#ia dintre turnul surs! "i turnul destina#ieal leg!turii.

    Num!rul "i natura nivelelor obiectelor turn sunt complet arbitrare, n func#iede necesit!#i.

    Ora!ele

    Un obiect al unui hiperdocument poate fi vizualizat din diverse perspective, depinznd de modul cum este accesat de c!tre utilizator.

    Nodurile de tip ora" sunt folosite pentru a vizualiza obiectele turn din diferite astfel de perspective. Elementele unui ora" sunt denumite vizualiz!ri (views), fiecare vizualizare constnd dintr-un turn care descrie obiectul dintr-o perspectiv! particular!. Aceste vizualiz!ri modularizeaz! informa#ia n conformitate cu diverse modalit!#i de accesare a datelor.

  • Tehnologii Web

    A - 19

    2.6 Standarde2.6 Standarde2.6 Standarde2.6 Standarde

    Fa#! de documentele clasice, statice "i structurate, documentele hipermedia sunt nestructurate "i pot fi dinamice. Astfel, standardele curente referitoare la documente nu surprind complet caracterul structurii hipertext. O ierarhie arborescent! este relevant!, dar nu este suficient! pentru hipertext, iar formele actuale de SGML sau ODA nu ofer! toate capabilit!#ile dorite pentru reprezentarea "i interschimbarea hipertextului. Un unic standard nu poate acoperi diversitatea formatelor "i ac#iunilor ce pot fi executate asupra hiperdocumentelor. A"adar, au fost propuse o serie de standarde hipermedia dintre care vom men#iona HyTime "i MHEG.

    H y T i m e

    HyTime (Hypermedia/Time-based Structuring Language) reprezint! un standard interna#ional pentru reprezentarea leg!turilor hipertext "i sincronizarea informa#iilorcon#inute de documentele multimedia. Bazat pe SGML, n conformitate cu ISO 8879, HyTime a fost standardizat n cadrul grupului special SIGLINK al ACM n 1992 "i ofer! o multitudine de extensii precum posibilitatea folosirii de pointeri sau scheme de adresare n vederea localiz!rii datelor, independen#a de nota#iile de con#inut a nodurilor, de tipurile leg!turilor, de modalit!#ile de procesare, prezentare "i semanticile utilizate. HyTime suport!adresarea prin nume, dup! pozi#ia nodului n cadrul documentului "i dup! construc#iasemantic! asociat! acelui nod. HyTime permite combinarea oric!ror tipuri de tehnologii multimedia "i hipertext (proprietare sau nu), dar nu are n vedere standardizarea prezent!rii,interfe#ei cu utilizatorul sau limbajelor de interogare.

    HyTime a fost creat pentru a fi utilizat ca infrastructur! a aplica#iilor multimedia sincronizate sau nesincronizate, permi#nd schimbul de informa#ii hipertext independent de platforma hardware sau software folosit!.

    M H E G

    Scopul standardului MHEG (Multimedia and Hypermedia Information Coding Expert Group) este de a defini reprezentarea "i codificarea informa#iilor multimedia "ihipermedia pentru a facilita serviciile de interschimb de hiperdocumente n orice context (dispozitive de stocare, re#ele de telecomunica#ii sau re#ele de difuzare audio-vizual!).MHEG ofer!:

    abstractiz!ri pentru prezent!ri n timp-real incluznd sincronizarea "iinteractivitatea informa#iilor multimedia;

    abstractiz!ri pentru schimbul de informa#ii n timp-real folosindu-se o zon!temporar! de memorare minimal!;

    abstractiz!ri pentru manipularea direct! a informa#iilor f!r! a necesita proces!ri suplimentare;

    facilit!#i de realizare de leg!turi ntre elementele obiectelor multimedia compuse.

  • Tehnologii Web

    A - 20

    2.7 Aplicaii2.7 Aplicaii2.7 Aplicaii2.7 Aplicaii

    Tehnicile hipertext (hipermedia) pot fi utilizate n diverse aplica#ii precum c!r#ielectronice, enciclopedii, sisteme de help on-line, sisteme de nv!#are asistat! de calculator (CAL - Computer-Aided Learning), scriere colaborativ! de documente, chio"curi informa#ionale interactive, sisteme decizionale etc.

    n prezent exist! o serie de sisteme hipertext opera#ionale dintre care se pot aminti Hyperwave, Microcosm, Storyspace, Webthing "i, desigur, World Wide Web.

    H y p e r w a v e

    Vom descrie n continuare un sistem hipermedia avansat - Hyperwave (ini#ial denumit Hyper-G) - dezvoltat la Universitatea tehnic! din Graz, Austria, de H.Havrer "i F.Kappe.Hyperwave ofer!:

    acces folosind hiper-leg!turi, navigare "i c!utare ierarhic!;

    reducerea fragment!rii colec#iilor de documente stocate pe servere multiple;

    suport pentru documente n mai multe limbi;

    identificarea "i controlul accesului utilizatorilor (securitate);

    integrarea n sistemele informa#ionale deja existente n Internet;

    consisten#a documentelor.

    S e r v e r u l H y p e r w a v e

    Hyperwave a fost conceput s! stocheze resurse hipermedia numeroase care pot fi reg!site pe diferite servere. Dezvoltarea "i administrarea pe termen lung a bazelor de date distribuite devin cruciale atunci cnd dimensiunea acestora cre"te foarte mult. Pentru aceasta, Hyperwave impune o structurare a documentelor memorate. Fiecare document este membru al uneia sau mai multor colec#ii, aceste colec#ii formnd o ierarhie.

    n afar! de a suporta diverse facilit!#i ca asignarea unor atribute obiectelor multimedia sau indexarea "i c!utarea lor, serverul Hyperwave men#ine o ierarhie a utilizatorilor organiza#i n grupuri.

    Unui document i se pot asocia diverse atribute, dintre care amintim:

    permisiuni de citire/scriere pentru grupuri sau utilizatori;

    cuvinte-cheie de c!utare;

    titluri n diverse limbi;

    propriet!#i de afi"are;

    o durat! de accesibilitate;

    costul vizualiz!rii;

    fanioane de actualizare concurent!.

    Aceste atribute sunt memorate ntr-o baz! de date separat!, pentru facilitarea opera#iunilor de extragere "i manipulare.

  • Tehnologii Web

    A - 21

    D o c u m e n t e l e

    Un server Hyperwave poate con#ine diverse tipuri de documente:

    (hiper)documente n formate precum HTML (HyperText Markup Language) sau HTF (Hyperwave Text Format) ori neformatate;

    imagini (JPEG, GIF, PNG, TIFF etc.);

    filme n formatul MPEG;

    documente Postscript;

    lumi tridimensionale n formate VRML/SDF;

    programe (applet-uri Java, de exemplu).

    Este posibil! definirea de leg!turi spre o serie de documente sau p!r#i ale lor. Se pot insera "i pseudo-documente speciale de c!tre script-uri care vor fi executate de server la cererea clien#ilor. Folosind acest mecanism, con#inutul poate fi creat "din zbor" "iprezentat utilizatorului (sunt suportate script-uri CGI, HGI sau cod SQL). Aceasta faciliteaz! "i opera#iunile de c!utare sau de indexare.

    Astfel, Hyperwave se poate considera a fi un veritabil sistem hipermedia.

    V i r t u a l S h a k e s p e a r e

    n cele ce urmeaz!, vom prezenta un proiect de vizualizare tridimensional! a unor mari cantit!#i de text, cum sunt piesele de teatru ale lui William Shakespeare, proiect bazat pe diverse metodologii hipertext "i pe tehnici vizuale de filtrare a informa#iei.

    De cele mai multe ori se dore"te ca parcurgerea unor documente de dimensiuni considerabile s! se realizeze simplu, rapid "i natural. Cercet!torii de la laboratorul Visible Language Workshop (MIT), condu"i de profesorul Muriel Cooper, au propus n anul 1996 n cadrul proiectului Virtual Shakespeare o metod! de vizualizare tridimensional! a con#inutului textual al pieselor lui Shakespeare, prin intermediul unei camere virtuale care poate naviga liber! prin hiperdocumente.

  • Tehnologii Web

    A - 22

    Un filtru vizual aplicat pentru replicile Titaniei, regina znelor din "Visul unei nop"i de var#"ntr-un alt plan, se pot parcurge indica"iile regizorale referitoare la personajele scenei

    Corpusul generos (nsumnd peste un milion de cuvinte) poate fi explorat la nivel de replic! de personaj, tablou, act sau pies! luat! n ntregime. S-a conceput un model de vizualizare bazat pe display-uri de nalt! rezolu#ie pentru optimizarea navig!rii "i a schimb!rilor de scal! a textului.

    Dac! utilizatorul se afl! prea departe de textul reprezentat 3D, atunci textul va fi nlocuit cu o textur! mai simpl! (tehnic! denumit! greeking), pentru a se men#ine forma original! a liniilor de text, chiar dac! nf!#i"area cuvintelor s-a pierdut. Tranzi#ia de la diverse nivele de detaliu trebuie s! se realizeze n mod natural, astfel nct cititorul s! aib! impresia c!ntreaga informa#ie se afl! pe ecran. Cu ct textul se afl! mai departe de camera virtual! de vizualizare, cu att va deveni mai ntunecat, aplicndu-se legile cromatice din artele plastice. De altfel, replicile personajelor vor fi reprezentate n culori diferite. Pentru ca fonturile s!fie corect afi"ate la toate sc!rile alese s-au folosit tehnologii Adobe. Pentru a evita problemele de vizualizare a notelor de subsol "i a referin#elor ncruci"ate, acestea vor putea fi parcurse n alt plan, diferit de cel al textului principal.

    Atunci cnd se va accesa un alt document prin intermediul unei leg!turi, utilizatorul va "s!ri" pur "i simplu n alt plan de vizualizare, putnd astfel parcurge n paralel mai multe

  • Tehnologii Web

    A - 23

    fragmente de informa#ie, denumite de Muriel Cooper peisaje informa"ionale (informationlandscapes). Toate aceste metode faciliteaz! u"urin#a n explorarea con#inutului textual al hiperdocumentelor, chiar "i de c!tre cei care nu de#in cuno"tin#e de informatic! sau de c!trepersoanele cu diverse handicapuri.

  • Tehnologii Web

    A - 24

    33333333........ LLLLLLLLooooooooccccccccaaaaaaaalllllllliiiiiiiizzzzzzzzaaaaaaaarrrrrrrreeeeeeeeaaaaaaaa rrrrrrrreeeeeeeessssssssuuuuuuuurrrrrrrrsssssssseeeeeeeelllllllloooooooorrrrrrrr IIIIIIIInnnnnnnntttttttteeeeeeeerrrrrrrrnnnnnnnneeeeeeeetttttttt

    Localizarea resurselor Internet se realizeaz! apelnd la URI (Uniform Resource Identifiers), identificatori uniformi de resurse.

    URI sunt caracteriza#i de defini#iile de mai jos:

    Resurs#

    Poate fi orice lucru care posed! o identitate. Ca exemple tipice pot fi enumerate: un document electronic, o imagine, un serviciu, o colec#ie de alte resurse. Nu toate resursele pot fi accesate via re#ea, dar pot fi considerate resurse (non-electronice) "ifiin#ele umane, organiza#iile, c!r#ile dintr-o bibliotec!. O resurs! se poate men#ineconstant! n timp de"i con#inutul ei - entit!#ile c!reia i corespund - se poate modifica.

    Identificator

    Este un obiect care poate juca rolul unei resurse. n cazul URI, obiectul este o secven#! de caractere avnd o sintax! bine-definit!.

    Uniformitate

    Permite ca diverse tipuri de identificatori de resurse s! fie utilizate n acela"i mod, chiar dac! mecanismul desemnat s! acceseze aceste resurse (protocolul folosit) difer!.Se permite o interpretare semantic! uniform! a mai multor conven#ii sintactice comune desemnnd identificatori ai unor resurse eterogene. Mai mult, se pot introduce noi tipuri de identificatori de resurse f!r! a se modifica modul de adresare a vechilor tipuri.

    Termenul URL (Uniform Resource Locator) se refer! la un subset URI identificnd resursele printr-o reprezentare a mecanismului de accesare a lor (e.g. localizarea re#elei),nu prin nume sau alte atribute. Regulile de generare a unui URL valid sunt prezentate n anexa $.

    Termenul URN (Uniform Resource Name) include tot un subset al URI care r!mnepermanent "i unic, chiar dac! resursa a disp!rut ori a devenit inaccesibil!.

    E x e m p l e :

    ftp://ftp.is.co.za/rfc/rfc2396.txt schem! "ftp" pentru serviciile protocolului de transfer de fi"iere (FTP);

    http://www.infoiasi.ro/~busaco/teach/ schem! "http" pentru serviciile protocolului de transfer a hipertextelor (HTTP);

    mailto:[email protected] schem! "mailto" pentru po"ta electronic! (SMTP);

    news:comp.infosystems.www.servers.unix schem! "news" pentru grupurile de "tiri USENET (NNTP);

    telnet://delta.ac.tuiasi.ro:7777 schem! "telnet" pentru servicii interactive via protocolul TELNET.

  • Tehnologii Web

    A - 25

    3.1 Componentele sintaxei URI3.1 Componentele sintaxei URI3.1 Componentele sintaxei URI3.1 Componentele sintaxei URI

    URI pot fi reprezentate ca "iruri de caractere apar#innd unui alfabet limitat (literele alfabetului latin, cifrele "i cteva caractere de punctua#ie).

    Un URI poate con#ine urm!toarele caractere rezervate (meta-caracterul "|" specificnd alternative de apari#ie a caracterelor dintre ghilimele):

    reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","

    Un URI generic este compus din urm!toarele componente principale:

    schema "://" authority path "?" query

    Existnd mai multe metode de a accesa resursele, vor fi mai multe scheme pentru a le identifica:

    schema = alpha (alpha | digit | "+" | "-" | ".")* Componenta autoritate (authority) este definit! de o loca#ie de server Internet sau de o

    secven#! special! de nregistrare, este precedat! de "//" "i este terminat! de urm!torulcaracter "/", "?" sau de sfr"itul URI-ului.

    authority = server | reg_name reg_name = (unreserved | escaped | "$" | "," | ";" | ":" | "@" | "&" | "=" | "+")+ server = [ [ userinfo "@" ] hostport ] userinfo = (unreserved | escaped | ";" | ":" | "&" | "=" | "+" | "$" | ",")+ hostport = host [ ":" port ] host = hostname | IPv4addr hostname = (domainlabel ".")* toplabel ["."] domainlabel = alphanum | alphanum (alphanum | "-")* alphanum toplabel = alpha | alpha (alphanum | "-")* alphanum IPv4addr = digit+ "." digit+ "." digit+ "." digit+ port = digit+

    Meta-caracterul "*" specific! faptul c! o anumit! construc#ie sintactic! poate apare de zero, unu sau mai multe ori, iar "+" impune ca acea construc#ie s! apar! m!car o dat!.

    Serverul poate fi dat fie prin adresa IP (de exemplu 193.231.30.225), fie prin adresa DNS (e.g. thor.infoiasi.ro), eventual urmat de un num!r de port.

    Componenta cale con#ine date identificnd o resurs!:

    path = [ abs_path | opaque_path ] path_segm = segment ( "/" segment )* segment = pchar* ( ";" param)* param = pchar* pchar = unreserved | escaped | ":" | "@" | "&" | "=" | "+" | "$" | ","

    Calea poate con#ine secven#e de segmente de cale separate prin "/". n cadrul unui segment, caracterele "/", ";", "=" "i "?" sunt rezervate. Fiecare segment poate include o secven#! de parametri, dup! delimitatorul ";".

    Componenta de interogare este un "ir de informa#ii interpretate de resurs!:

  • Tehnologii Web

    A - 26

    query = uric*

    n cadrul componentei de interogare, caracterele ";", "/", "?", ":", "@", "&", "=", "+","," "i "$" sunt rezervate.

    3.23.23.23.2 Referine URIReferine URIReferine URIReferine URI

    O referin"! URI este utilizat! aici s! desemneze o utilizare comun! a unui identificator, putnd fi absolut! sau relativ! "i putnd con#ine informa#ii suplimentare:

    URI-ref = [ absoluteURI | relativeURI ] [ "#" fragment ] Sintaxa unui URI relativ este o form! prescurtat! a unui URI absolut, n care unele

    componente lipsesc "i anumite componente de cale ("." "i "..") au un n#eles special (vezi mai jos).

    Atunci cnd o referin#! URI este utilizat! s! realizeze o ac#iune de accesare a unei resurse, se poate folosi un identificator de fragmentare constnd din anumite informa#ii care vor fi interpretate de agentul utilizator dup! ce opera#ia de transfer a resursei s-a finalizat cu succes.

    fragment = uric*

    Semantica identificatorului de fragmentare este o proprietate a datelor rezultate n urma ac#iunii de accesare "i transfer a resursei. Formatul "i interpretarea identificatorilor de fragmentare sunt dependente de tipul de media.

    3.3 Referine URI relative3.3 Referine URI relative3.3 Referine URI relative3.3 Referine URI relative

    Majoritatea documentelor (resurselor) sunt stocate n manier! arborescent! (ierarhic!).Adresarea relativ! permite o par#ial! independen#! a loca#iei "i a schemei de acces.

    relativeURI = (net_path | abs_path | rel_path) [ "?" query ] rel_path = rel_segm [ abs_path ] rel_segm = (unreserved | escaped | ";" | "@" | "&" | "=" | "+" | "$" | ",")+

    Anumite scheme URI nu permit sintaxa ierarhic!, deci nu pot utiliza referin#e relative.

  • Tehnologii Web

    A - 27

    44444444........ PPPPPPPPrrrrrrrroooooooottttttttooooooooccccccccoooooooolllllllluuuuuuuullllllll ddddddddeeeeeeee ttttttttrrrrrrrraaaaaaaannnnnnnnssssssssffffffffeeeeeeeerrrrrrrr aaaaaaaallllllllhhhhhhhhiiiiiiiippppppppeeeeeeeerrrrrrrrtttttttteeeeeeeexxxxxxxxttttttttuuuuuuuulllllllluuuuuuuuiiiiiiii:::::::: HHHHHHHHTTTTTTTTTTTTTTTTPPPPPPPP

    4.1 Introducere4.1 Introducere4.1 Introducere4.1 Introducere

    Protocolul de transfer al hipertextului HTTP (HyperText Transfer Protocol)reprezint! un protocol bazat pe TCP/IP destinat sistemelor hipermedia conlucrnd n medii distribuite. HTTP a nceput s! fie proiectat "i utilizat din anul 1990, dezvoltndu-se mpreun! cu spa#iul WWW.

    Prima versiune, referit! HTTP/0.9, a reprezentat un simplu protocol de transfer de date prin Internet. Urm!toarea versiune HTTP/1.0, definit! de RFC 1945, a mbun!t!#ittransferul de mesaje, permi#ndu-se mesaje n format MIME (Multipurpose Internet Mail Extensions), con#innd meta-informa#ii despre datele transmise "i despre semantica dialogului cererilor "i r!spunsurilor dintre clien#ii "i serverele Web.

    A urmat HTTP/1.1 care ofer! mai multe func#ionalit!#i suplimentare, precum mecanisme de c!utare, adnotare "i actualizare, avnd suport pentru URI (Uniform Resource Identifier), specificnd adresele ca loca#ie (prin URL) sau prin nume (via URN). HTTP de asemeni este utilizat ca protocol generic pentru comunicarea ntre agen#ii utilizator "i por#ile (gateways) c!tre alte sisteme Internet, incluznd suport pentru protocoale ca SMTP (Simple Mail Transfer Protocol), NNTP (Network News Transfer Protocol), FTP (File Transfer Protocol), Gopher. n acest mod, HTTP permite accesul hipermedia la resurse disponibile din diverse aplica#ii.

    Protocolul HTTP este un protocol sigur, de tip cerere/r!spuns, comunica#iile decurgnd peste conexiunile TCP/IP, portul standard de acces fiind portul 80. HTTP nu posed! nici un mecanism pentru a men#ine starea conexiunilor, fiind n acest sens independent de context. Cererile sunt individuale, iar serverul Web nu poate distinge implicit apartenen#aconexiunilor efectuate de clien#i.

    4.2 Terminologie4.2 Terminologie4.2 Terminologie4.2 Terminologie

    Vom folosi n cele ce urmeaz! urm!torii termeni:

    conexiune

    Un circuit virtual la nivelul transport stabilit ntre dou! programe care doresc s! comunice.

    mesaj

    Unitatea de baz! a unei comunica#ii HTTP, constnd dintr-o secven#!structurat! de octe#i, transmis! printr-o conexiune.

    cerere

    Un mesaj de cerere HTTP (vezi mai jos).

  • Tehnologii Web

    A - 28

    r!spuns

    Un mesaj de r!spuns HTTP.

    resurs!

    Un obiect de date sau serviciu care poate fi identificat de un URI. Resursele pot avea reprezent!ri multiple (e.g. formate, m!rimi, rezolu#ii etc.).

    entitate

    Informa#ia transferat! ntr-o opera#ie de cerere sau de r!spuns. O entitate cuprinde att meta-informa#ii, ct "i con#inutul propriu-zis.

    reprezentare

    O entitate inclus! ntr-un r!spuns care reprezint! o negociere ntre client "i server.

    negociere

    Mecanism de selectare a reprezent!rii potrivite a unei date solicitate.

    client

    Un program care stabile"te conexiuni cu scopul de a trimite cereri.

    agent-utilizator

    Clientul care ini#iaz! o cerere (navigator, editor, robot de traversare Web). Navigatoarele cele mai cunoscute sunt Netscape Navigator, Internet Explorer,Opera, Arena, Mosaic, Lynx "i Links (ultimele dou! rulnd n mod text).

    server

    O aplica#ie care accept! conexiuni, r!spunznd la anumite cereri transmise de clien#i. Un program poate juca rol att de server, ct "i de client. Un server se poate comporta ca server ini#ial, poart!, tunel sau proxy Web n func#ie de natura cererii. Cele mai cunoscute servere Web sunt: Apache,Netscape Enterprise Server, Microsoft Internet Information Server (IIS), Sun Web Server,Stronghold, MacHTTP, WebSite.

    proxy (intermediar)

    Un program intermediar care ruleaz! ca server, ct "i drept client pentru a transmite cereri altor servere. Cererile trimise unui proxy pot fi rezolvate intern sau transmise mai departe, c!tre alte servere (posibil translatate). Un proxy trebuie s! implementeze cerin#ele de server "i de client ale specifica#iei HTTP.

    poart!

    Un server care lucreaz! ca intermediar pentru alte servere, n mod transparent, fiind "i un translator de protocoale.

    tunel

    Un program intermediar func#ionnd ca mijlocitor ntre dou! conexiuni.

  • Tehnologii Web

    A - 29

    cache

    Un depozit local de memorare a mesajelor (datelor) de r!spuns "i un subsistem de control al acestuia. Memoria cache reduce timpul de r!spuns "icongestia re#elei. Oricare client "i server poate include un cache.

    4.3 Mesaje HTTP4.3 Mesaje HTTP4.3 Mesaje HTTP4.3 Mesaje HTTP

    Un mesaj HTTP este divizat ntr-o parte de antet "i o parte corp. Antetul cuprinde o serie de cmpuri (unele dintre ele obligatorii) oferind informa#ii despre versiunea de protocol folosit, codificarea datelor, tipul de medii, lungimea "i tipul mesajului etc. Sintaxa unui antet de mesaj este (CRLF reprezint! secven#a de coduri Carriage Return - cod 13 "iLine Feed - cod 10):

    message-header ::= field-name ":" [ field-value ] CRLF

    Formatul unei cereri este urm!torul:

    Request ::= Method Request-URI ProtocolVersion CRLF [ message-header ] [ CRLF data ] Method ::= string data ::= MIME-data

    R!spunsul la o cerere are urm!toarea sintax!:

    status-line ::= HTTP-version status-code reason CRLF status-code ::= digit digit digit reason ::= string

    S t r u c t u r a

    Orice mesaj HTTP trebuie s! debuteze cu un cmp indicnd versiunea protocolului n prima linie a mesajului:

    HTTP-Version ::= "HTTP-Version" ":" "HTTP" "/" digit "." digit

    n prezent este opera#ional protocolul 1.1 deci toate mesajele de cerere "i de r!spuns vor ncepe cu linia HTTP/1.1 sau o versiune inferioar!.

    Mesajele pot fi codificate conform IANA (Internet Assigned Numbers Authority) fiind permise codific!rile:

    gzip (GNU zip) este un cod Lempel-Ziv (LZ77) cu suma de control pe 32 de bi#i;

    compress este un cod produs de programul compress disponibil n toate mediile Unix, dup! codificarea Lempel-Ziv-Welch (LZW).

    Aceste codific!ri sunt specificate de cmpul Content-Transfer-Encoding.

    Pentru MIME, se specific! tipul "i subtipul mediului de informa#ii(de exemplu: text/html, text/plain, image/jpeg, video/mpeg etc.) n cmpul Content-Type. Un mesaj poate fi transmis n format multipart, constnd din mai multe

  • Tehnologii Web

    A - 30

    entit!#i, toate avnd o sintax! comun!. Dac! o aplica#ie recep#ioneaz! un subtip nerecunoscut, n mod automat l va trata ca multipart/mixed.

    Tipurile MIME primare sunt sintetizate n urm!torul tabel (pentru mai multe am!nunteconsulta#i documentul RFC 1521):

    Tip Descriere Exemple

    application define"te aplica#iile clientapplication/postscriptapplication/octet-stream

    audio define"te formatele audio audio/basicaudio/aiffaudio/mid

    image define"te formatele grafice image/gifimage/jpegimage/png

    text define"te formatele text text/plaintext/htmltext/xml

    video define"te formatele video video/mpegvideo/quicktime

    multipart utilizat pentru transmisia informa#iilor compuse multipart/mixedmultipart/alternative

    message utilizat pentru transmisia mesajelor de po"t! electronic!message/partialmessage/rfc822

    Tipurile MIME principale

    Tipurile sau subtipurile MIME nestandardizate nc! vor fi prefixate de caracterele "x-".Astfel, putem ntlni application/x-cdf (defini#ie de canal de date activ), image/x-targa (format grafic Targa) sau x-world/x-vrml (lume virtual! modelat! n VRML; acest tip MIME este acum nlocuit cu model/vrml).

    Cmpul Accept dintr-un mesaj de cerere poate specifica mul#imea de tipuri de date returnat! de server ca r!spuns:

    Accept ::= "Accept" ":" (media-range [ accept-params ])+ media-range ::= ("*/*" | type "/*" | type "/" subtype)* accept-params ::= ";" "q=" qvalue accept-extension* accept-extension ::= ";" token [ "=" (token|string) ] type ::= string subtype ::= string qvalue ::= digit "." digit

    Simbolul "*" desemneaz! toate tipurile/subtipurile de medii dintr-o anumit! categorie. De exemplu, pentru a accepta doar imagini, indiferent de format, se va transmite Accept: image/*.

  • Tehnologii Web

    A - 31

    Pot fi specifica#i unul sau mai mul#i factori de calitate relativ!. De pild!, cererea Accept: audio/*; q=0.2, audio/basic este interpretat! astfel: "se prefer! tipul audio/basic, dar serverul va trebui s! trimit! toate tipurile audio avnd calitatea de cel pu"in 80%".

    Loca#ia unei resurse HTTP va fi dat! de cmpul Content-Location n formatul URI, conform schemei http:

    Content-Location ::= "Content-Location" ":" http-URL http-URL ::= "http://" host [ ":" port ] [ abs_path ]

    De exemplu: http://www.infoiasi.ro/~busaco/egon/http.html.

    Dac! portul nu apare, se ia prin defini#ie portul 80, rezervat protocolului HTTP. Adresele host vor fi tratate indiferent de scrierea cu caractere majuscule sau nu (case-insensitive), dar calea de directoare abs_path este tratat! case-sensitive. Dac! abs_pathnu apare, se va considera "/", iar caracterele rezervate vor fi echivalente cu codul lor n hexa, precedat de "%" (n forma "% hex hex").

    De exemplu, aceste trei URI sunt echivalente:

    http://www.infoiasi.ro:80/~busaco/poems.htmlhttp://www.infoiasi.ro/%7Ebusaco/poems.htmlhttp://WWW.InfoIasi.Ro/%7ebusaco/poems.html

    Corpul mesajului va con#ine informa#iile propriu-zise ale unei cereri sau r!spuns, specificate de o entitate. O entitate-corp difer! de corpul mesajului numai dac! sunt aplicate codific!ri.

    4.4 Formatul mesajelor de cerere4.4 Formatul mesajelor de cerere4.4 Formatul mesajelor de cerere4.4 Formatul mesajelor de cerere

    Linia de cerere a unui mesaj HTTP este definit! astfel:

    Request-Line ::= Method Separator Request-URI Separator HTTP-Version CRLF Method ::= "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "TRACE" Request-URI ::= "*" | absolute-URI | abs_path

    Serverul va returna codul 405 (Method Not Allowed) sau 501 (Not Implemented) dac! se va trimite numele unei metode inexistente.

    Descrierea metodelor permise urmeaz! mai jos:

    OPTIONS

    Reprezint! o cerere de informa#ii despre op#iunile de comunicare disponibile ntr-un dialog cerere/r!spuns.

    GET

    Reprezint! o cerere de accesare a unor informa#ii (entit!#i) identificate de Request-URI. Semantica metodei GET se schimb! n cerere condi"ionat! dac!mesajul de cerere include cmpuri antet If-Modified-Since, If-Match,If-Range etc. Dac! se specific! un cmp Range, atunci GET va desemna o cerere par"ial!.

  • Tehnologii Web

    A - 32

    HEAD

    Este similar! cu GET, dar serverul va returna un mesaj avnd informa#iidoar n antet. Meta-informa#iile din antetele HTTP din r!spunsul la o cerere HEAD vor fi identice cu cele din r!spunsul la o cerere GET. Metoda HEAD este folosit! deseori pentru testarea validit!#ii, accesibilit!#ii "i modific!rilor recente ale unei leg!turi hipertext. Pentru documente HTML, o cerere HEAD va avea ca r!spuns doar antetul paginii, adic! informa#iile cuprinse ntre marcatorii ....

    POST

    Metoda este utilizat! s! identifice dac! serverul accept! o entitate nglobat!n cadrul cererii. POST este proiectat! s! implementeze o metod! uniform!pentru func#iile: adnotarea resurselor, trimiterea unui mesaj ntr-o list! de "tiri,trimiterea datelor unui formular Web, extinderea unei baze de date printr-o opera#iune de ad!ugare. Semantica exact! a metodei este definit! de server. R!spunsul serverului poate fi 200 (Ok), 201 (Created) sau 204 (No Content).

    PUT

    Specific! faptul c! o entitate inclus! n mesaj s! fie stocat! la adresa dat! de Request-URI. Dac! resursa deja exist!, se consider! o actualizare a ei. Diferen#a fundamental! ntre PUT "i POST este reflectat! de modul diferit de manipulare a adresei Request-URI. ntr-o cerere POST, URI identific!resursa care va prelucra entitatea nglobat! de mesaj. Acea resurs! poate fi un proces de prelucrare a datelor, o poart! c!tre alt protocol, o entitate separat!acceptnd adnot!ri. Prin contrast, URI dintr-un PUT identific! entitatea inclus! n mesajul de cerere. O unic! resurs! poate fi identificat! de URI-uri multiple.

    DELETE

    Cere ca serverul s! "tearg! resursa identificat! de Request-URI.

    TRACE

    Invoc! o cerere de diagnosticare (trasaj).

    4.4.4.4.5 Coduri de stare5 Coduri de stare5 Coduri de stare5 Coduri de stare

    Pentru fiecare cerere a unui client, serverul HTTP r!spunde cu o serie de coduri de stare a opera#iei solicitate, dintre care men#ion!m:

    a . C o d u r i d e i n f o r m a r e ( $ x x )

    Acestea dau informa#ii despre o anumit! ac#iune:

    100 Continue - clientul poate continua cererea, trebuind s! trimit!urm!toarea parte a unui mesaj par#ial;

    101 Switching Protocols - serverul n#elege cererea, dar necesit!recep#ionarea unui cmp Upgrade pentru a "ti care tip de protocol va fi

  • Tehnologii Web

    A - 33

    folosit la nivelul aplica#iei (e.g. pentru transmiterea de informa#iimultimedia, cnd poate fi utilizat un protocol sincron, n timp-real);

    b . C o d u r i d e s u c c e s ( 2 x x )

    Ele raporteaz! efectuarea cu succes a unei opera#iuni:

    200 Ok - cererea a fost rezolvat! cu succes;

    201 Created - o nou! resurs! a fost creat! cu succes. Resursa creat!poate fi identificat! de URI-ul returnat de entitatea-r!spuns, trebuind a fi generat! nainte de returnarea codului (n caz contrar se trimite 202);

    202 Accepted - cererea a fost acceptat! spre procesare, dar nc! nu a fost satisf!cut! n ntregime. Nu exist! nici o facilitate pentru retransmiterea unui cod de stare n urma execu#iei unei opera#ii asincrone;

    204 No Content - serverul a rezolvat cererea, dar nu are ce returna;

    c . C o d u r i d e r e d i r e c t a r e ( 3 x x )

    Indic! o redirectare, c!tre alt! loca#ie/server a cererii (de exemplu, la apari#iamarcatorului n cadrul unui document HTML):

    300 Multiple Choices - resursa cerut! corespunde uneia dintre reprezent!rile multiple pe care le are;

    301 Moved Permanently - resursa cerut! a fost asignat! unui URI nou "iorice referin#! viitoare la ea trebuie s! se realizeze prin acest URI returnat;

    302 Moved Temporarily - resursa cerut! are un alt URI, pentru o perioad! temporar!;

    303 See Other - r!spunsul la cerere poate fi g!sit la o alt! loca#ie URI "i trebuie accesat folosind o metod! GET;

    305 Use Proxy - resursa cerut! trebuie accesat! printr-un proxy desemnat de cmpul Location;

    d . C o d u r i d e e r o a r e c l i e n t ( 4 x x )

    Indic! apari#ia unei erori pe partea clientului:

    400 Bad Request - cererea nu a putut fi n#eleas! de server din cauza unei sintaxe eronate a metodei;

    401 Unauthorized - cererea necesit! autentificarea utilizatorilor, prin transmiterea unui cmp Authorization;

    403 Forbidden - serverul n#elege cererea, dar refuz! s! o satisfac! din diverse metode (de exemplu, resursa cerut! poate fi accesat! numai de la anumite adrese);

    404 Not found - serverul nu g!se"te resursa specificat! de Request-URI;

    406 Not Acceptable - resursa este incompatibil! cu antetul cererii;

  • Tehnologii Web

    A - 34

    e . C o d u r i d e e r o a r e s e r v e r ( 5 x x )

    Sunt coduri semnificnd o eroare pe partea serverului:

    501 Not Implemented - serverul nu are implementat! o func#ionalitatenecesar! satisfacerii unei cereri;

    502 Bad Gateway - serverul, lucrnd ca poart! sau proxy, a recep#ionat un r!spuns invalid de la alt server c!ruia i-a trimis cererea;

    503 Service Unavailable - serverul nu poate satisface cererea, din cauza supranc!rc!rii temporare sau a unor ra#iuni de administrare;

    504 Gateway Timeout - timpul de a"teptare a r!spunsului a expirat.

    Pot fi transmise "i coduri de avertisment, cu valori cuprinse ntre 0 "i 99.

  • Tehnologii Web

    A - 35

    E x e m p l u

    Urmeaz! un exemplu de cerere HTTP pentru accesarea unui document HTML. Liniile subliniate reprezint! cererea din partea unui client, urmat! de replica serverului Web (modelul client/server HTTP):

    GET /index.html HTTP/1.1Host: www.infoiasi.ro

    HTTP/1.1 200 OK Date: Thu, 23 Sep 1999 07:18:22 GMT Server: Apache/1.3.12 (Unix) (Red Hat/Linux) Last-Modified: Fri, 28 Aug 1998 07:03:53 GMT ETag: "35028-181-35e65659" Accept-Ranges: bytes Content-Length: 385 Content-Type: text/html

    Faculty of Computer Science

    ...

    Modelul client/server HTTP: clientul formuleaz# o cerere de solicitare a unui document stocat

    pe un server Web !i prime!te r#spunsul furnizat de acel server

  • Tehnologii Web

    A - 36

    55555555........ SSSSSSSSeeeeeeeeccccccccuuuuuuuurrrrrrrriiiiiiiittttttttaaaaaaaatttttttteeeeeeeeaaaaaaaa sssssssseeeeeeeerrrrrrrrvvvvvvvviiiiiiiicccccccciiiiiiiiiiiiiiiilllllllloooooooorrrrrrrr WWWWWWWWeeeeeeeebbbbbbbb

    5.1 Introducere5.1 Introducere5.1 Introducere5.1 Introducere

    Securitatea Web-ului nu se rezum! doar la criptarea transmisiilor de date ntre clientul "iserverul WWW. Una dintre cele mai importante probleme o reprezint! securitatea serverelor Web. Securitatea Web-ului poate fi reg!sit! la mai multe nivele:

    1. protec#ia criptografic! a canalelor de comunica#ie;

    2. proiectarea unor extensii de securitate pentru standardele Internet existente;

    3. administrarea sigur! "i eficient! a serverelor Web;

    4. includerea n mediile Java a unor facilit!#i de securitate, criptografice.

    n cadrul nivelului 1., pentru realizarea cript!rii comunica#iilor dintre server "i clien#iiWeb se pot lua n considerare mai multe abord!ri:

    criptarea leg!turii

    Se cripteaz! pachetele IP (via routere sau firewall-uri).

    criptarea documentelor

    Documentele stocate pe serverele Web pot fi criptate folosindu-se un sistem precum PGP (Pretty Good Privacy), la nivelul clientului trebuind decriptate.

    SSL (Secure Socket Layer)

    Reprezint! un sistem proiectat de Netscape care ofer! o cale TCP/IP criptat! ntre dou! ma"ini, suportnd protocoalele HTTP, TELNET sau FTP. SSL folose"te o varietate de sisteme de criptare pe chei publice "i secrete.

    Pentru nivelul 2., s-au propus dou! standarde menite a securiza tranzac#iile HTTP:

    HTTPS care este un sistem SSL pentru protocolul HTTP;

    SHTTP (Secure HTTP) este un sistem de criptare pentru HTTP conceput de CommerceNet, oferind mecanisme de securitate prin semn!tur!, autentificare "icifrare, folosite independent sau mpreun!.

    Pentru nivelul 4., n prezent limbajul Java ridic! o serie de probleme de securitate ca:

    accesarea unor resurse de pe ma"ina pe care ruleaz! un applet Java;

    rularea applet-urilor Java f!r! a cere permisiunea utilizatorului (putndu-se ini#ia un canal ascuns pentru extragerea de date confiden#iale);

    alterarea codului Java de c!tre intru"i.

    Astfel, s-a constituit o bibliotec! criptografic! API Java Security care include clase pentru semn!turi digitale, interfe#e pentru gestiunea cheilor "i a certificatelor "i controlul accesului.

    Produsele-software destinate pentru dezvoltarea de aplica#ii Java sigure sunt deja numeroase, putnd fi amintite J/CRYPTO sau J/SSL.

  • Tehnologii Web

    A - 37

    n continuare ne vom ocupa de nivelul 3., cel mai important din punctul nostru de vedere.

    5.2 Administrarea sigur a serverelor Web5.2 Administrarea sigur a serverelor Web5.2 Administrarea sigur a serverelor Web5.2 Administrarea sigur a serverelor Web

    Serverele Web au ca func#ionalitate de baz! recep#ionarea de cereri anonime de la clien#i"i furnizarea de informa#ii ntr-o manier! dorit! a fi eficient! "i rapid!.

    n ordinea importan#ei, problemele de securitate pot fi mp!r#ite astfel:

    un atacator poate exploata bug-urile (deficien#ele) existente ntr-un server Web sau din scripturi, ob#innd acces neautorizat la fi"iere vitale din sistem (fi"ierede parole, fi"iere con#innd surse de scripturi executate pe server "i altele) sau pentru a de#ine controlul total asupra sistemului;

    informa#iile confiden#iale stocate pe serverul Web (e.g. baze de date, aplica#ii etc.) pot fi distribuite unor persoane neautorizate;

    punctele vulnerabile necunoscute ale navigatorului pot permite accesarea de informa#ii private stocate pe ma"ina clientului.

    Din p!cate, solu#iile utilizate n mod curent nu pot rezolva toate problemele "i, deseori, sunt contradictorii. De exemplu, pentru reducerea riscurilor de interceptare, multe organiza#ii achizi#ioneaz! servere Web considerate sigure, implementnd o pleiad! de protocoale de criptare, dar aceste servere necesit! certificate de autentificare semnate digital care trebuiesc actualizate periodic.

    Furniz!m n continuare o serie de sfaturi pentru cre"terea nivelului de securitate a unui server Web:

    1. Pe ct posibil, un server Web nu trebuie s! ruleze alte servicii "i s! nu accepte conexiuni de la distan#!; preferabil ar fi ca daemonul de po"t! electronic!s! nu fie opera#ional;

    2. Serverul Web nu trebuie s! ruleze sub auspicii de superutilizator (root n Unix). La fel, scripturile CGI nu trebuie executate ca root.

    3. Fi"ierele de configurare "i modulele serverului nu trebuie stocate pe o parti#ie care poate fi exportat!.

    4. Permisiunile ata"ate fi"ierelor serverului Web trebuie setate "i monitorizate cu aten#ie.

    5. Se va limita sau chiar inhiba execu#ia directivelor Server Side Includes (SSI).

    6. Scripturile CGI trebuie plasate ntr-un singur director (de obicei cgi-bin)"i modific!rile lor trebuie monitorizate.

    7. n cadrul directorului cgi-bin nu se permite accesul nelimitat. Utilizatorii locali nu trebuie s! poat! instala, edita, "terge sau chiar vizualiza scripturi sau fi"ierede configurare.

    8. Autorii scripturilor (CGI, PHP sau ASP) nu trebuie s! fac! publice sursele programelor lor, mai ales dac! nu sunt n variante finale, deoarece ele pot con#i