Extensii HTML

- cursă spre o nouă generatie

Octavian Ureche

Creat în anii 60, limbajul hypertext a evoluat încet pentru a se regăsi într-un prim standard, HTML 1.0, la începutul anilor 90. O nouă aplicatie, WWW-ul, devine noul Killer App menit să "vulgarizeze" pentru masele largi Internetul - până atunci rezervat institutiilor academice si militare. Misiunea a fost pe deplin reusită: popularitatea Web-ului a depăsit de departe cele mai optimiste previziuni: în decursul anului trecut numărul utilizatorilor, al serverelor si al documentelor s-a dublat la fiecare 4 luni, transformând ideea comunicatiilor electronice într-o adevărată industrie în plină expansiune. Odată cu industria în general, asistăm la evolutia extrem de rapidă a limbajului si a standardelor ce-l definesc, evolutie impusă atât de cererea publicului (market pull) cât si de concurenta acerbă din industrie, ce "împinge" noi standarde si tehnologii pe piată (industry push). Bătrânul Mosaic cucereste milioane de internauti însă nu reuseste să satisfacă nevoia constantă pentru noi si noi aplicatii. Rapid apare HTML 2.0 si HTML+ pentru a se ajunge azi la HTML 3.0. Cu toate acestea, standardizarea - amânată în repetate rânduri de către institutiile internationale de profil, datorită unei lipse cronice de consens - nu vine destul de repede pentru a satisface uriasul apetit al publicului, ce devine din ce în ce mai experimentat, mai "umblat" prin acest păienjenis de documente electronice.

Presiunea asupra companiilor implicate în aceste activităti pentru a inova si a se diferentia astfel de concurentă, devine enormă. O serie de "extensii" apar astfel în afara sau deasupra noilor standarde, extensii specifice fiecărui browser în particular.

Câteva dintre cele mai importante astfel de extensii ar fi: conceptul de frames, sau cadre (Netscape), noile functionalităti comunicationale browser-server client-pull si server-push (Netscape), Limbajele de Modelare pentru Realitatea Virtuala VMRL, interfata comună client CCI (Mosaic), programarea orientată obiect prin limbajul Java (Sun Microsystems).

Mai multe dintre aceste noi tehnologii de programare permit utilizatorilor Web-ului să interactioneze cu pagini mult mai dinamice decât cele construite utilizând standardele în vigoare, împingând astfel mai departe limitele capacitatilor comunicationale ale Internetului.

Pentru a acapara încă din start o cât mai mare parte din piată, companii ca Netscape (si de curând Microsoft) au încercat si încearcă în continuare să "deturneze" standardele HTML prin implementarea de functionalităti speciale, specifice browserelor produse de aceste companii.

Marquee

Pentru a recupera imensul teren pierdut, Microsoft introduce propriul său browser, MS Explorer, care pe lângă faptul că se dovedeste un competitor serios - însă nu periculos - pentru Netscape, utilizează câteva noi extensii. Astfel, de exemplu, MS Explorer acceptă între altele primitiva <marquee> ce permite definirea unui text ce defilează în pagină.

Iată un exemplu de text ce defilează de la dreapta spre stânga:

<MARQUEE BEHAVIOUR=Slide DIRECTION= Left> Defilez de la dreapta spre stânga</MARQUEE>

Pe de altă parte, Netscape introduce "cadrele" (frames) ce permit divizarea unei pagini în mai multe sectiuni, fiecare sectiune continând o pagină HTML independentă de celelalte cadre, prin care vizi-tatorul se poate plimba "răsfoind" paginile independent una de alta. Această nouă functionalitate permite crearea de cadre "statice" - de exemplu o hartă a sitului - ce oferă vizitatorului avantajul de a putea trece direct dintr-o zonă a sitului într-alta, fără a reveni în mod secvential pe calea deja parcursă, ci făcând clic pe pointerii din cadrul ce cuprinde continutul.

O altă noutate interesantă, menită să fie oarecum un substitut înaintea introducerii masive a limbajului-miracol Java, este aparitia sistemelor client-pull si server-push, prin care browserul dialoghează automat cu serverul, fără interventia vizitatorului. Aceste două noi facilităti eliberează paginile Web de limitările reprezentării statice a datelor. Apar astfel primele pagini animate, animatie care depinde însă în foarte mare măsură de lărgimea de bandă disponibilă precum si de aglomerarea retelei la un moment dat.

Client-pull

Scopul principal constă în punerea la dizpozitia utililizatorilor a unor mijloace ce permit trimiterea si reîncărcarea automată a documentelor, sau încărcarea dinamică a unor sectiuni din document. Astfel, client-pull permite browserului să ceară o retransmisie periodică a unui document având o adresă URL dată, permitând crearea de documente ce se modifică de manieră dinamică în timpul conectării unui vizitator. Această functionalitate este implementată utilizând un nou header în format MIME (Multipart Internet Mail Extension) în fiecare răspuns trimis de server împreună cu documentul corespunzător. Acest header contine în general informatii cum ar fi lungimea documentului, tipul continutului, tipul serverului ce trimite informatiile si statutul informatiilor.

Implementarea este foarte simplă, prin adăugarea unei directive de reînprospătare, refresh, într-un tag META:

<META HTTP-EQUIV="Refresh" CONTENT="interval de timp [;adresă URL]">

De exemplu, pentru a cere serverului un nou document la fiecare 2 secunde, va fi utilizat următorul tag:

<META HTTP-EQUIV="Refresh" CONTENT=2> 

Browserul va încărca documentul initial, va astepta 2 secunde si va cere o reîncărcare a documentului de la adresa URL specificată. Dacă nici un URL nu este specificat, acelasi document va fi reîncărcat.

Server-pull

Pentru a complementa tehnologia client-pull, server-pull îsi propune să permită serverului, si nu browserului, să se ocupe de reactualizarea dinamică a continutului unui document. Ca si client-pull, server-push utilizează headere având formatul MIME, în particular utilizând un tip specific de continut: "multipart/x-mixed-part". Astfel, tehnologia server-push poate coda si trimite mai multe tipuri de informatie (GIF, text HTML, text ASCII, etc) într-unul si acelasi document. Astfel, headerul dă instructiuni browserului pentru a înlocui fiecare segment de document cu noul element ce a fost încărcat, trimis automat de către server. Imaginile animate constituie una din cele mai utilizate aplicatii ale acestei tehnologii; animarea este realizată prin trimiterea unui document multipart ce constă într-o secventă liniară de imagini GIF, fiecare dintre aceste imagini reprezentând un cadru de animatie. Browserul afisează aceste imagini serial, una dupa alta, producând astfel efectul de miscare.

Implementarea tehnologiei server-push este mai complicată decât cea de client-pull, neexistând un tag specific, ci necesitând aplicatii CGI specifice.

VRML si CCI

Nu trebuie uitat nici VRML, o extensie HTML pentru aplicatii de realitate virtuală. Desi limbajul nu e foarte complex, incompatibilităti între diverse versiuni si browsere ce îl suportă (sau nu îl suportă) i-au încetinit substantial răspândirea. Însă factorul esential al amânării succesului acestui limbaj este crearea intrinsecă a imaginilor 3D, care în general necesită rendering si deci multă putere de calcul, iar apoi - odată realizate - utilizează fără milă lărgimea de bandă.

Mosaic inovează cu CCI (ce nu trebuie confundat cu CGI - Common Gateway Interface) ce se doreste a fi o interfată programabilă pentru Moaic 2.5 pentru sistemul de afisaj X Windows. CCI oferă aplicatiilor soft mijloace de a interactiona cu browserele Mosaic. Astfel, oferind unei aplicatii CCI control asupra browserului utilizatorului, un astfel de program poate utiliza browserul de la distantă, pentru efectuarea de căutări de documente sau de verificări de link-uri. De exemplu, un utilizator poate căuta si utiliza direct din Excel date despre ultimele cotatii bursiere, prin Web.

CCI utilizează protocolul TCP/IP pentru comunicatia cu browserul Mosaic. Pentru a oferi programului CCI controlul asupra browserului, este suficientă specificarea unui număr de port pentru comunicatia între cele două aplicatii. Odată ce comunicatia a fost stabilită, aplicatia CCI preia controlul asupra principalelor functionalităti ale browserului. Astfel, o aplicatie CCI poate emula selectarea de către utilizator a principalelor butoane standard (Find, View Source, Print, Save As, etc.) precum si a setărilor. Aceasta permite de exemplu aplicatii de genul tururilor demonstrative virtuale sau a tutorialelor.

Java

Solutia miracol (evident: Java) este Eldorado-ul programatorilor de retea, fiind - odată introdus si acceptat de către o majoritate a internautilor - un prim prototip al primului sistem distribuit la scară planetară, al limbajului universal ce rulează pe orice platformă.

Sun Microsystems introduce HotJava, un browser interesant pentru asa numitele "alpha-java-applets" (spre deosebire de beta-java-applets, compatibile de exemplu cu Netscape 2.0), însă la o mare distantă (în timp, calitate si functionalităti) în urma lui Netscape sau MS Explorer. Desi atât Microsoft cât si Netscape au semnat licente pentru noul limbaj, Netscape s-a evidentiat din nou, inovând cu "JavaScript", un limbaj de scripting bazat pe Java având marele avantaj că nu trebuie compilat, permitând astfel utilizatorilor de pe orice platformă să includă scripturi în paginile lor, independent de platforma serverului. Sun nu a făcut disponibile compilatoare Java decât pentru platforme Windows 95/NT sau Solaris, ceea ce împiedică o mare parte a utilizatorilor să adauge plug-n-play-applets în paginile lor.

Probleme de compatibilitate

Tehnologia Web-ului a fost constant caracterizată de tranzitii rapide între diferite standarde si schimbări bruste de browsere universal adoptate. Aceste schimbări au împins tehnologia de programare la limitele ei actuale, prin introducerea diverselor extensii. Aceasta însă a avut drept consecintă o depărtare de linia standardelor si deci a compatibilitătii generale. Fiecare dintre aceste tehnologii este specifică aplicatiilor produse de companiile respective, nefiind portabile deci de la un browser la altul.


(C) Copyright Computer Press Agora