Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
WORLD WIDE WEB
Web-ul este un context arhitectural pentru accesul la documente, raspandite pe mii de masini din Internet, intre care exista legaturi. In 5 ani a evoluat de la o aplicatie pentru transmiterea de date utile pentru fizica energiilor inalte la o aplicatie despre care milioane de oameni cred ca este Internetul. Popularitatea sa enorma se datoreaza faptului ca are o interfata grafica plina de culoare, usor de utilizat de catre incepatori si in acelasi timp ofera o cantitate imensa de informatie - de la aborigieni la zoologie pe aproape orice subiect posibil.
Web-uI (cunoscut si ca WWW) a aparut in 1989 la CERN, Centrul European de Cercetari Nucleare. CERN are cateva acceleratoare utilizate de echipe mari de cercetatori din tarile europene pentru cercetari in fizica particulelor. Deseori aceste echipe au membri din peste zece tari. Majoritatea experientelor sunt foarte complicate si necesita ani de pregatire si construire de echipamente. Web-ul a aparut din necesitatea de a permite cercetatorilor raspanditi in lume sa colaboreze utilizand colectii de rapoarte, planuri, desene, fotografii si alte tipuri de documente aflate intr-o continua modificare.
Propunerea initiala pentru crearea unei colectii de documente avand legaturi intre ele (web) a fost facuta de fizicianul Tim Berners-Lee, fizician la CERN, in martie 1989. Primul tip (bazat pe text) era operational 18 luni mai tarziu. In decembrie 1991, s-a facut o demonstratie publica la conferinta Hypertex, 1991 in San Antonio, Texas. Actiunea a continuat in urmator fiind incununata cu realizarea primei interfete grafice, Mosaic, in februarie 1993 (Vetter s.a., 1994).
Mosaic a fost atat de popular incat un an mai tarziu, autorul sau, Marc Andreessen, a parasit NCSA (Centrul National pentru aplicatiile supercalculatoarelor), unde Mosaic-ul a fost dezvoltat, pentru a forma o noua companie, Netscape Communications Corp., care se ocupa dezvoltarea de software pentru Web. Cand Netscape a devenit o companie publica in 1995, investitorii, care probabil ca au crezut ca este vorba de un fenomen de tip Microsoft, au platit 1,5 miliarde de dolari pentru actiunile companiei. Acest record a fost cu atat mai neasteptat cu cat compania avea un singur produs, opera in deficit si anuntase probabilii investitori ca nu se asteapta la beneficii in viitorul apropiat.
In 1994, CERN si M.I.T. au semnat o intelegere pentru a forma Consortiul World Wide Web, o organizatie care are ca obiectiv dezvoltarea Web-ului, standardizarea protocoalelor si incurajarea interoperabilitatii intre situri. Berners-Lee a devenit director. De atunci, sute de universitati si companii au intrat in consortiu. M.I.T. coordoneaza partea americana a consortiului in timp ce centrul de cercetari francez, INRIA, coordoneaza partea europeana. Desi exista foarte multe carti despre Web, cel mai bun loc pentru gasirea unor informatii la zi despre el este (in mod natural) chiar Web-ul. Pagina consortiului are adresa https://www.w3.org. Cititorii interesati vor gasi acolo legaturi la pagini care acopera toate documentele si activitatile consortiului.
In urmatoarele sectiuni, vom descrie cum se prezinta Web-ul utilizatorilor, dar mai ales modul de functionare intern. Deoarece Web-ul este un sistem client-server, vom discuta atat aspectele referitoare la client (adica utilizator) cat si cele referitoare la server. In continuare vom examina limbajele in care sunt scrise paginile de Web (HTML si Java). In final, se prezinta cum se poate gasi o informatie pe Web.
1. Aspectele privind clientul
Din punctul de vedere al utilizatorului, Web-ul consta dintr-o colectie imensa de documente raspandite in toata lumea, numite pagini. Fiecare pagina poate sa contina legaturi (indicatori) la alte pagini, aflate oriunde in lume. Utilizatorii pot sa aleaga o legatura (de exemplu prin executia unui clic) care ii va aduce la pagina indicata de legatura. Acest proces se poate repeta la nesfarsit, fiind posibil sa se traverseze in acest mod sute de pagini legate intre ele. Despre paginile care indica spre alte pagini se spune ca utilizeaza hipertext.
Paginile pot sa fie vazute cu ajutorul unui program de navigare (browser). Mosaic si Netscape sunt cele mai cunoscute programe de navigare. Programul de navigare aduce pagina ceruta, interpreteaza textul si comenzile de formatare continute in text si afiseaza pagina, formatata corespunzator, pe ecran. Un exemplu este prezentat in figura 7-1. Ca majoritatea paginilor de Web, incepe cu un titlu, contine informatii si se termina cu adresa de posta electronica a celui care mentine pagina. Sirurile de caractere care reprezinta legaturi la alte pagini, se numesc hiper-legaturi, sunt afisate in mod diferit, fiind subliniate si/sau colorate cu o culoare speciala. Pentru a selecta o legatura, utilizatorul va plasa cursorul pe zona respectiva (utilizand mausul sau sagetile de pe tastatura) si comanda selectia cu ajutorul mausului sau apasand tasta ENTER). Desi exista programe de navigare fara interfata grafica, ca de exemplu Lynx, ele nu sunt atat de utilizate ca programele de navigare grafice, astfel incat in continuare ne vom referi numai la ultimele. Au fost dezvoltate si programe de navigare bazate pe voce.
WELLCOME TO THE UNIVERSITY OF EAST PODUNK'S WWW HOME PAGE
.Campus Information
Admissions information
Campus map
Directions to campus
The UEP student body
.Academic Departments
Department of Animal Psychology
Department of Alternative Studies
Department Microbiotic Cooking
Department Nontraditional Studies
Department of Traditional Studies
Webmaster @ eastpodunk. edu
Fig. 7-1. O pagina de Web
2. Aspecte privind serverul
Pentru orice server de Web un proces asculta portul 80 TCP pentru conexiuni initiate de catre clienti (in mod normal programe de navigare). Dupa ce s-a stabilit o legatura, clientul trimite o cerere si serverul trimite un raspuns. Apoi conexiunea este eliberata. Protocolul care descrie cererile si raspunsurile permise se numeste HTTP. Vom studia acest protocol in detaliu in continuare, dar un exemplu simplu poate sa ofere o idee referitoare la modul in care functioneaza serverele de Web. Figura 7-2 prezinta modul in care diferitele componente ale modelului Web lucreaza impreuna.
Pentru acest exemplu putem sa consideram ca utilizatorul tocmai a selectat un text sau o iconita care indica spre pagina al carei nume (URL - Uniform Resource Locator - adresa uniforma pentru localizarea resurselor) este https:dwww.w3.org/hypertext/WWW7TheProject. html.
Este suficient sa stim ca un URL are trei parti: numele protocolului (http), numele calculatorului pe care se gaseste pagina (www.w3.org) si numele fisierului care contine pagina hypertext/WWW/ theProject. html).
abc.com xyz.com Pagina curenta
afisata de programul
de navigare
hiper-legatura
spre abc.com hiper-legatura
Programul
de navigare spre xyz.com
Server HTTP Server
Pe aceasta conexiune Disk HTTP
este utilizat HTTP
Internet
Fig. 7-2. Componentele modelului Web.
Etapele care se parcurg intre momentul in care se face selectia si afisarea paginii aduse sunt urmatoarele:
Programul de navigare determina URL (pe baza selectiei).
Programul de navigare intreaba DNS care este adresa IP pentru www.w3.org.
DNS raspunde cu 18.23.0.23.
Programul de navigare realizeaza conexiunea TCP cu portul 80 al 18.23.0.23.
Trimite o comanda GET hypertext/WWW/TheProject.html.
Serverul www.w3.org transmite fisierul ThePtoject.html
Conexiunea TCP este eliberata.
Programul de navigare afiseaza textul din TheProject.html.
Programul de navigare aduce si afiseaza toate imaginile din TheProject.html.
Multe programe de navigare afiseaza care este etapa care se executa intr-o fereastra de stare, in partea de jos a paginii. In acest mod, daca performantele sunt slabe, utilizatorul poate sa stie daca este vorba de faptul ca DNS nu raspunde, ca serverul nu raspunde, sau pur si simplu de congestia retelei in timpul transmisiei paginii.
Trebuie sa mentionam faptul ca pentru fiecare imagine dintr-o pagina (iconita, desen, fotografie etc.) programul de navigare stabileste o noua conexiune TCP cu serverul corespunzator pentru a aduce imaginea respectiva. In mod corespunzator, daca o pagina contine multe iconite, toate pe acelasi server, stabilirea, utilizarea si eliberarea unei conexiuni noi pentru fiecare dintre ele nu reprezinta o solutie foarte eficienta, dar mentine implementarea foarte simpla. Urmatoarele versiuni ale protocolului vor avea in vedere aspectele de eficienta. O propunere este prezentata in (Mogul, 1995).
C: telnet www.w3.org 80
T: Trying 18.23.0.23 .
T: Connected to www.w3.org
C: GET /hypertext/WWW/TheRroject.html HTTP/1 .0
C:
S: HTTP/1.0 200 Document follows
S: Server: CERN/3.0
S: Content-Type; text/html
S: Content Lenght: 8247
S:
S:<HEAD><TITLE> TheWorld Wide Web Consortium (W3C) </TITLE></HEAD>
S:<BODY>
S:<H 1><IMG ALICN=MIDDLE> ALT="W3C" SRC="Icons/WWW/w3c_96x6gif">
S:The World Wide Web Consortium </H1/> <P>
S:
S:The World Wide Web is the universe of network-accessible information.
S:The <A HREF="Consortium/"> World Wide Web Consortium </A>
S:exist to realize the full potential of the Web. <P>
S:
S:W3C works with the global comunity to produce
S:<A HREF="#Specifications"> specifications </A> and
S:<A HREF="#Reference"> reference software </A>
S:W3C is funded by industrial
S:<A HREF="Consortium/Member/List.html"> members </A>
S:but its products are freely available to all. <P>
S:
S: In this document:
S: <menu>
S: <Ll> <A HREF="#Specifications"> Web Specifications and Development Areas </A>
S: <Ll> <A HREF="#Reference"> Web Software </A>
S: <Ll> <A HREF="#Community"> The World Wide Web and the Web Community </A>
S: <Ll> <A HREF="#Joining"> Getting involved with the W2C </A>
S: </menu>
S: <P> <HR>
S: <P> W3C is hosted by the
S: <A HREF="https://www.lcs.mit.edu/"> Laboratory for Computer Science </A> at
S: <A HREF="https://web.mit.edu/"> MIT </A> , and
S: in Europe by <A HREF="https://www.inria.fr/"> INRIA </A>.
S: <BODY>
Fig. 7-3. O sesiune simpla de obtinere a unei pagini de Web.
Deoarece HTTP este un protocol ASCII ca si SMTP, este foarte simplu pentru o persoana aflata la un terminal (deci nu program de navigare) sa discute direct cu un server Web. Este nevoie numai de o conectare TCP pe portul 80 al serverului. Cel mai simplu mod de a obtine o astfel de conexiune este utilizarea programului Telnet. Figura 7-3 prezinta o sesiune in care se realizeaza o astfel de discutie. In acest exemplu, liniile marcate cu C: sunt introduse de catre utilizator (client), liniile marcate cu T: sunt afisate de catre programul Telnet iar liniile marcate cu S: sunt produse de catre serverul de la M.I.T.
Cititorii sunt incurajati sa incerce aceasta sesiune (de preferat dintr-un sistem UNIX, deoarece in alte sisteme nu se obtine starea conectarii). In linia GET trebuie respectate spatiile si numarul de versiune a protocolului, de asemenea este necesara o linie goala dupa comanda GET. Ca rezultat, textul care se obtine va diferi de cel prezentat in Fig. 7-3 din trei motive. Primul motiv - exemplul a fost scurtat ca sa incapa intr-o singura pagina. Al doilea motiv - textul a fost curatat putin pentru ca sa nu il puna intr-o situatie dificila pe autorul fisierului HTML, care, desi se asteapta ca zeci de mii de oameni sa viziteze si sa examineze pagina afisata, nu se asteapta ca cineva sa se uite si la textul HTML care o creeaza. Al treilea motiv - continutul paginii este foarte des actualizat. In orice caz, exemplul ofera o imagine rezonabila asupra modului in care functioneaza HTTP.
Exemplul indica urmatoarele. Clientul, in cazul nostru o persoana, dar in mod normal un program de navigare, se conecteaza intai la un server si apoi transmite o comanda cerand o anumita pagina si specificand protocolul si versiunea care se vor utiliza (HTFP/1.0). In linia 7 serverul raspunde cu o linie de stare care descrie ce protocol va utiliza (acelasi cu al clientului) si codul 200, care arata ca operatia decurge corect. Pe linia urmatoare se transmite un mesaj conform RFC 822 MIME, din care sunt prezentate numai primele cinci linii de antet (urmatoarele au fost omise pentru a face economie de spatiu). Urmeaza o linie goala si corpul mesajului. Pentru a transmite o poza, campul Content-Type poate sa contina:
Content-Type:lmage/GIF
In acest mod, tipurile MIME permit transmiterea unor obiecte arbitrare in modul standard. Campul MIME Content-Transfer-Encoding nu este necesar, deoarece TCP permite sirurilor de octeti sa fie transmise, chiar si poze, fara modificari. Semnificatia comenzilor cuprinse intre paranteze unghiulare utilizate in pagina de exemplu o sa fie precizata mai tarziu in cadrul capitolul curent.
Protocolul de transfer standard utilizat de Web este HTTP (HTTP-HyperText Transfer Protocol - protocol de transfer pentru hipertext). Fiecare interactiune consta dintr-o cerere ASCII, urmata de un raspuns MIME conform RFC 822. Cu toate ca utilizarea TCP pentru conexiuni de transport este foarte obisnuita, el nu este impus oficial de catre standard. Daca retelele ATM vor deveni destul de sigure, cererile HTTP si raspunsurile ar putea sa apara si ca mesaje AAL 5.
HTTP este in continua evolutie. Cateva versiuni sunt in utilizare si altele noi sunt in curs de implementare. Ceea ce prezentam in continuare sunt notiunile de baza care probabil ca nu se schimba, dar anumite detalii pot sa fie diferite in versiunile urmatoare.
Protocolul HTTP consta din doua tipuri de elemente: multimea cererilor de la programele de navigare catre servere si o multime de raspunsuri care merg in sens invers. Sa le tratam pe rand.
Toate versiunile noi de HTTP suporta doua tipuri de cereri: simple si complete. O cerere simpla este doar o linie GET in care se indica pagina dorita, fara specificarea versiunii de protocol. Raspunsul este format numai din pagina, fara antete, fara MIME, fara nici o codificare. Pentru a vedea cum functioneaza, se poate incerca o conexiune la portul 80 pentru www.w3.org (asa cum se indica in prima linie din figura Fig. 7-3) dupa care se scrie:
Dar fara HTTP/l.0. Pagina va fi transmisa fara nici o indicatie referitoare la continut. Acest mecanism este necesar pentru compatibilitatea cu versiuni vechi. Utilizarea sa va disparea pe masura ce programele de navigare si serverele bazate pe cereri complete vor deveni standard.
Cererile complete sunt indicate de prezenta versiunii de protocol in linia GET, ca in Fig. 7-3. Cererile pot sa fie formate din mai multe linii, urmate de o linie alba care indica sfarsitul cererii, acesta fiind motivul prezentei unei linii albe in figura 7-4. Prima linie a unei cereri complete contine comanda (GET este numai una dintre posibilitati), pagina dorita si protocolul/versiunea. Liniile urmatoare formeaza antetul conform RFC 822.
Desi HTTP a fost proiectat pentru utilizarea pentru Web, el este mult mai general decat este necesar, avand o deschidere pentru viitoare aplicatii orientate-obiect. Din acest motiv, primul cuvant dintr-o cerere completa este numele metodei care se va executa asupra paginii Web (sau a unui obiect in general).
4. Scrierea unei pagini de Web in HTML
Paginile de Web sunt scrise intr-un limbaj numit HTML (Hypertext Markup Language - 1imbaj de marcare hipertext). HTML permite utilizatorilor sa produca pagini care includ texte, grafica si indicatori la alte pagini de Web. Vom incepe sa studiem HTML cu acesti indicatori, pentru ca ei reprezinta tocmai mecanismul care tine Web-ul conectat.
Am spus de mai multe ori ca o pagina de Web poate sa contina referinte la alte pagini. Sa explicam cum sunt implementate aceste referinte. Inca de la crearea Web-ului, a fost clar ca pentru a avea o pagina care sa indice spre alta pagina este necesar un mecanism care sa permita numirea si regasirea paginilor. In particular, sunt trei intrebari la care trebuie sa se raspunda inainte de a se putea afisa o pagina:
1. Cum se numeste pagina?
2. Cum este localizata pagina?
3. Cum se face accesul la pagina?
Daca fiecare pagina ar avea un nume unic, atunci nu ar exista nici o ambiguitate in identificarea paginilor. Totusi, problema nu este inca rezolvata. Sa consideram de exemplu o paralela intre oameni si pagini. In SUA aproape fiecare persoana are un numar de asigurare sociala, care este un identificator unic, astfel incat nu exista doua persoane cu acelasi numar. Totusi, cunoscand numai numarul respectiv, nu exista nici o posibilitate de a gasi adresa persoanei respective si sigur nu se poate afla daca persoanei respective trebuie sa i se scrie in Engleza, Spaniola sau Chineza. Web-ul are practic acelasi fel de probleme.
Solutia aleasa identifica paginile intr-un mod care rezolva toate trei problemele in acelasi timp. Fiecare pagina are un URL (Uniform Resource Locater - adresa uniforma pentru localizarea resurselor) care functioneaza ca nume al paginii general valabil. Un URL are trei componente: protocolul, numele DNS al masinii pe care este memorat fisierul si un nume local, care indica in mod unic pagina (de obicei numele fisierului care contine pagina). De exemplu, URL-ul departamentuli din care face parte autorul este:
https://www.cs.vu.nl/welcome.html
Acest URL este format din trei componente: protocolul (http), numele DNS al serverului (www.cs.vu.nl) si numele fisierului (welcome.html), cu semnele de punctuatie corespunzatoare. Se utilizeaza notatii care reprezinta prescurtari standard. De exemplu ~user/ poate sa fie pus in corespondenta cu directorul WWW al utilizatorului user, folosind conventia ca o referinta la directorul respectiv implica un anumit fisier, de exemplu index.html. De exemplu, pagina autorului poate sa fie referita ca:
https://www.cs.vu.nl/~ast/
chiar daca de fapt numele fisierului este diferit. Pe multe servere un nume de fisier nul indica implicit pagina organizatiei careia ii apartine serverul.
Acum, daca stim cum functioneaza URL-urile, putem sa examinam limbajul HTML. Acest limbaj este o aplicatie a standardului ISO 8879, SCML (Standard Generalized Markup Language -limbajul standard generalizat de marcare), specializat pentru hipertext si adaptat la Web.
Dupa cum s-a mai mentionat, HTML este un limbaj de marcare, un limbaj care descrie cum trebuie sa fie formatate textele. Termenul de "marcare" provine din timpurile vechi, cand editorii faceau marcaje pe documente pentru a indica tipografului - in acele timpuri un om - ce font-uri sa foloseasca s.a.m.d. Limbajele de marcare contin comenzi explicite pentru formatare. De exemplu, in HTML, <B> inseamna inceput de mod aldin, si </B> inseamna terminarea utilizarii modului aldin. Avantajul utilizarii unui limbaj de marcare fata de unul in care nu se utilizeaza marcarea explicita consta din faptul ca este simplu de scris un program de navigare care sa interpreteze comenzile de marcare. TeX si troff sunt doua exemple foarte cunoscute de limbaje de marcare.
Ca si HTTP, HTML este intr-o evolutie continua. Cand programul Mosaic era singurul program de navigare, limbajul utilizat de el, HTML 1 .0, reprezenta standardul de facto. Cand au aparut programe de navigare noi, a fost necesar un standard oficial Internet si asa a aparut HTML 2.0. HTML 3.0 a fost creat initial ca efort de cercetare pentru a adauga noi facilitati la HTML 2.0, incluzand tabele, instrumente, formule matematice, forme avansate de descriere a stilului (pentru descrierea organizarii paginilor si definirea semnificatiilor simbolurilor) etc.
Ca si HTTP, HTML este intr-o evolutie continua. Cand programul Mosaic era singurul program de navigare, limbajul utilizat de el, HTML 1 .0, reprezenta standardul de facto. Cand au aparut programe de navigare noi, a fost necesar un standard oficial Internet si asa a aparut HTML 2.0. HTML 3.0 a fost creat initial ca efort de cercetare pentru a adauga noi facilitati la HTML 2.0, incluzand tabele, instrumente, formule matematice, forme avansate de descriere a stilului (pentru descrierea organizarii paginilor si definirea semnificatiilor simbolurilor) etc.
Standardizarea oficiala a limbajului HTML este facuta de Consortiul WWW, dar diferiti furnizori de programe de navigare au adaugat o serie de extinderi proprii. Acesti furnizori spera ca cei care construiesc pagini de Web sa utilizeze aceste extensii, astfel incat cei care vor sa citeasca aceste pagini sa aiba nevoie de programe de navigare care stiu sa interpreteze extensiile respective. Astfel de abordari ingreuneaza sarcina standardizarii limbajului HTML.
In cele ce urmeaza se face o scurta introducere in limbajul HTML, doar pentru a oferi o idee despre subiect. Cu toate ca este posibil sa se construiasca documente HTML utilizand orice editor, si multi fac asta, este posibil si sa se utilizeze editoare HTML speciale care pot sa faca toata munca (desigur, in mod corespunzator utilizatorul are mai putin control asupra detaliilor produsului final).
O pagina Web corect formata contine o zona de cap si o zona de corp, cuprinse intre marcajele (tag-uri) <HTML> si </HTML>, dar majoritatea programelor de navigare ignora absenta acestor marcaje. Capul este cuprins intre marcajele <HEAD> si </HEAD>, iar corpul intre marcajele <BODY> si </BODY>. Comenzile cuprinse intre aceste marcaje se numesc directive. Majoritatea marcajelor HTML au acest format, adica, <CEVA> pentru a indica inceputul a ceva si </CEVA> pentru a marca sfarsitul. Numeroase exemple de fisiere HTML sunt disponibile. Majoritatea programelor de navigare au o optiune VIEW SOURCE (afisarea sursei) sau ceva similar. Selectarea acestei optiuni afiseaza pagina curenta in format HTML in loc de forma interpretata.
Marcajele pot sa fie scrise cu litere mici sau mari. Adica <HEAD> si <head> inseamna acelasi lucru, dar prima forma este de preferat pentru cititorii umani. Cum este dispus textul in documentul HTML este nesemnificativ. Programele de navigare ignora spatiile si trecerile la rand nou, deoarece textul trebuie sa fie formatat pentru a corespunde zonei de afisare curente. Corespunzator, se pot utiliza spatii pentru a face documentele HTML mai usor de citit, ceva ce ar fi necesar pentru majoritatea documentelor. Liniile albe nu pot sa fie utilizate pentru separarea paragrafelor, deoarece sunt pur si simplu ignorate. Este necesara utilizarea unor marcaje explicite.
<HTML> <HEAD> <TITLE> AMALGAMATED WIDGET, INC. </TJTLE></HEAD>
BODY> <H1> Welcome to AWI's Home Page </Hl>
<IMG SRC="https://www.widget.com/images/log.gif" ALT="AWI Logo"> <BR>
We are so happy that you have chosen to visit <B> Amalgamated Widg</B> et's home page. We hope <I> you </I> will find all the information you need here.
<P> Below we have links to information about our many fine products. You can order electronically (by WWW), by telephone, or by FAX. < HR>
<H2> Product Information </H2>
<UL> <Ll> <A REF="https://widget.com/products/big" > Big widgets </A>
<Ll> <A REF="https://widget.com/products/little" > Little widgets </A>
</U L>
<H2> Telephone Numbers </H2>
< UL> <Ll> By telephone: 1-800-WIDGETS,
<Ll> By fax: 1-415-765-4321
</UL> </BODY></HTML>
6. Java
Utilizand HTML se pot afisa pagini de Web statice, care includ tabele si poze. Utilizand mecanismul de script-uri CGI, exista si o posibilitate limitata de a avea interactiune in dublu sens (formulare, etc). Nu este posibila insa interactiunea rapida cu pagini scrise in HTML. Un altfel de mecanism este necesar pentru a face posibile pagini Web puternic interactive. In sectiunea curenta. vom descrie un astfel de mecanism, limbajul si interpretorul JavaTM.
Java a aparut atunci cand cativa programatori de la Sun Microsystems au incercat sa dezvolte un limbaj nou de programare destinat aparaturii electronice. Ulterior a fost reorientat spre WWW. Desi Java a utilizat multe idei si sintaxa de la C si C++, el este un limbaj nou, orientat pe obiecte, incompatibil cu ambele. Se spune ca in general Java este ca limbajul Smalltalk, iar in particular ca limbajul C sau C+ +.
Principala idee de a utiliza Java pentru pagini Web interactive este ca o pagina Web poate sa indice spre un mic program scris in Java, numit applet. Daca este intalnit de un program de navigare, applet-ul este adus pe masina client si se face executia sa intr-o maniera sigura. Trebuie sa fie imposibil pentru applet sa scrie si sa citeasca fisiere la care nu are drept de acces. Trebuie sa fie imposibil pentru applet sa introduca virusi sau sa produca alte stricaciuni. Din aceste motive, dar si pentru a realiza portabilitatea pe diferite calculatoare, applet-urile sunt compilate dupa ce sunt scrise si depanate, producandu-se un cod intermediar. Paginile Web vor indica catre astfel de programe intr-o maniera similara in care se indica imaginile. Cand este adus un applet, el este executat interactiv intr-un mediu sigur. Inainte de a ajunge la detaliiie limbajului Java, merita sa spunern cateva cuvintc despre utilitatea intregului sistcm Java ~i de ce se dore~te ircluderea applet-urilor Java in pagini dc Web. Un motiv ar fi faptul ca Java pcrmite ca paginile Web sa fie jnteractivc. De exemplu, o pagina Weh care contine o tahia pentru tic-tac-toe sau sah poate sa joace un joc cu utiHzatorul. Programul dc joc (scris in Java) este adus impreuna cu pagina de Wcb. Un alt exeniplu, formularc complicate (de exemplu de tip formular dc calcul) pot sa Iie afi~ate, utilizatorul completand intrari ~i programul calculand aite intrari practic instantaneu.
Este posibil ca in timp, modelul in care utilizatorul cumpara un program, il instaleaza si il executa local sa fie inlocuit de un model in care utilizatorul executa un clic intr-o pagina Web, aduce un applet care executa prelucrarea eventual in legatura cu o baza de date sau un server aflat la distanta. In loc sa se completeze declaratia de venituri cu mana sau utilizand un program special, oamenii vor putea sa selecteze pagina IRS pentru a aduce un applet pentru impozite. Acest applet poate sa puna cateva intrebari, apoi sa ia legatura cu patronul persoanei respective, cu banca si agentul de bursa pentru a afla salariul, dobanda si dividendele, sa completeze intrarile din formularul de impozitare sa il afiseze pentru verificare si expediere.
Un alt motiv pentru executia unui applet pe masina clientului este posibilitatea de a adauga animatie si sunete la paginile de Web fara a utiliza programe de vizualizare externe. Sunete pot sa fie produse atunci cand se aduce o pagina, ca muzica de fundal, sau cand apar anumite evenimente (de exemplu, cand se executa un clic pe pisica, aceasta miauna). Acelasi lucru este valabil pentru animatie. Deoarece applet-ul se executa local, chiar daca este interpretat, el poate sa scrie peste tot ecranul (sau numai peste o parte a ecranului) in orice mod, cu o viteza foarte mare (comparata cu un script de tip cgi-bin de la distanta).
Sistemul Java este format din trei parti:
Un compilator Java-cod masina virtuala (bytecod)
Un program de navigare care intelege applet-uri
Un interpretor de cod masina virtuala
Programatorul scrie applet-ul in Java si il compileaza. Pentru a include produsul compilarii intr-o pagina Web, se utilizeaza un nou marcaj, <APPLET>. Utilizarea tipica este:
<APPLET CODE=game.class WIDTH=100 HEIGHT=2OO> </APPLET>
Cand programul de navigare intalneste
marcajul <APPLET>, aduce applet-ul compilat game.chess de pe
serverul de pe care a fost adusa pagina (sau, daca un alt parametru CODEBASE
a fost utilizat, de la URL-ul specificat). Programul de navigare transmite
apoi applet-ul interpretorului local de cod pentru executie (sau il
interpreteaza daca are un interpretor intern). Parametrii WIDTH
si HEIGHT dau dimensiunea in pixeli a ferestrei implicite pentru applet.
(a) (b)
Sisteme
de operare Interpretorul
HTML
(c)
Fig. 7-4. (a) Prima generatie de programe de navigare.
(b) Un program de navigare bazat pe Java la inceput. (c) Programul de navigare
dupa ce s-a executat pentru o perioada de timp.
Intr-un fel, marcajul <APPLET> este analog cu marcajul <IMG>. In ambele cazuri programul de navigare se duce si preia un fisier pe care il transmite unui interpretor local pentru al afisa intr-o zona limitata de pe ecran. Dupa aceea continua prelucrarea paginii de Web.
Pentru aplicatiile care necesita performante deosebite, unele interpretoare Java pot sa compileze codul masinii virtuale la codul obiect al masinii respective.
Ca o consecinta a acestui model, programele de navigare bazate pe Java sunt extensibile intr-un mod diferit de cel al primei generatii de programe de navigare. Prima generatie de programe de navigare sunt interpretoare HTML, care contin module care stiu diferite protocoale ca de exemplu HTTP 1.0. FTP etc., ca si decodificatoare pentru diferite formate de fisiere care contin imagini. Un exemplu este prezentat in Fig. 7-4(a). Daca cineva inventeaza sau popularizeaza un nou format, ca de exemplu audio sau MPEG-2, aceste programe de navigare vechi nu sunt in stare sa citeasca paginile care le utilizeaza. Cel mult, utilizatorul poate sa gaseasca, sa aduca si sa instaleze un program de vizualizare extern corespunzator.
Cu un program de navigare bazat pe Java, situatia este diferita. La pornire. programul de navigare este doar o masina virtuala Java, goala asa cum se vede in Fig. 7-4(b). Prin aducerea de applet-uri HTML sau HTTP, el devine capabil sa citeasca pagini Web standard. Desigur, pe masura ce noi protocoale si decodificatoare sunt necesare, clasele respective sunt incarcate dinamic eventual prin retea, de pe servere specificate in paginile de Web. Dupa o vreme, programul de navigare va arata ca in Fig. 7-4(c).
Astfel, daca cineva inventeaza un format nou, tot ce trebuie sa faca aceasta persoana este sa includa URL-ul unui applet care stie sa lucreze cu el intr-o pagina de Web, si programul de navigare va aduce si va incarca applet-ul. Nici un program de navigare din prima generatie nu este capabil sa aduca si sa instaleze automat programe externe de vizualizare noi. Posibilitatea de a aduce applet-uri in mod dinamic inseamna ca se pot face experimente cu formate noi fara sa aiba loc intalniri de standardizare fara sfarsit pentru a se ajunge la un consens.
Acest gen de standardizare se aplica si la protocoale. Pentru unele aplicatii, sunt necesare protocoale speciale, de exemplu sunt necesare protocoale sigure pentru banci sau comert. Cu Java astfel de protocoale sunt incarcate dinamic cand sunt necesare, si nu este necesara o standardizare universala. Pentru a comunica cu compania X, trebuie sa se aduca applet-ul corespunzator. Pentru a se comunica cu compania Y, trebuie sa se aduca protocolul corespunzator. Nu este nevoie ca X si Y sa fie de acord cu un protocol standard.
Copyright © 2024 - Toate drepturile rezervate