Una din facilitatile cheie ale arhitecturii Internet este distribuirea procesarii informatiei pe baza programelor mobile. Programele de navigare web, executate la nivel de statie de lucru, pot nu numai sa vizualizeze pagini web si sa execute tranzitia catre alte resurse, dar pot si sa activeze programe la nivel de server, sa le interpreteze si sa le lanseze īn executie, dupa cum cere documentul web care este deschis. Aceste programe sunt transferate īmpreuna cu documentul web curent de pe serverul web. Acest tip de procesare distribuita a informatiilor asigura concentrarea īntregului sistem al aplicatiei la nivel de server web.
Exista trei tipuri mari de programe care pot fi asociate unui document web si transferate catre o statie de lucru īn vederea executiei:
Applet-uri Java, pregatite si executate de tehnologia Java;
Programe scrise īn diverse limbaje de scripting (JavaScript, VBScript, VRML, etc);
Componente ActiveX, legate de tehnologia ActiveX.
Faptul ca exista o astfel de varietate de programe mobile poate fi explicata atāt prin capacitatile si functionalitatile diferite c 545g61f āt si prin competitia dintre marile companii dezvoltatoare de aplicatii (Sun Microsystems, Microsoft, Macromedia etc.).
Java a fost creata de Sun Microsystems la īnceputul anilor 1990, ca raspuns la cererea acuta de programe orientate īnspre utilizare īn mediul de retea si integrate cu tehnologia Web. Forta conducatoare din spatele tehnologiei Java consta īn combinarea cererii de mobilitate si independenta de hardware si sisteme de operare, cu siguranta si eficienta procesarii informatiei. Ca rezultat, a fost dezvoltat limbajul Java, iar tehnologia integrata care presupune crearea si utilizarea de programe mobile este cunoscuta sub denumirea de tehnologie Java.
Java este un limbaj de programare simplu, orientat-obiect, construit pe baza limbajului C++, din care au fost eliminate unele facilitati care nu au fost considerate necesare, īn timp ce au fost adaugate altele, care sa ofere siguranta si eficienta pentru calcula distribuit. Multe din aceste facilitati au fost īmprumutate din limbajele Objective C si Smalltalk. Atāt dezvoltarea modulara a programelor, implementata īn limbaj cāt si simplitatea īnsasi a limbajului permit nu numai dezvoltarea rapida de noi programe, ci si actualizarea aplicatiilor scrise si testate anterior īn Java. Pe lānga elementele standard de limbaj, Java cuprinde o serie de biblioteci utile, din care se pot construi aplicatii de orice complexitate. De asemenea, setul standard de biblioteci poate fi oricānd suplimentat cu functii noi importante.
Programele Java create pentru
executia pe statii de lucru īn mediul de executie al unui
browser web sunt numite applet-uri Java, sau applet-uri. Īn
concordanta cu natura sa proprie, fiecare applet reprezinta un
mic program īn care trebuie specificate anumite functii īn mod
obligatoriu. Applet-ul este īncarcat de pe server prin retea si
executat īn mediul de lucru al browser-lui, conform figurii urmatoare.
Applet-urile nu sunt cuprinse īn documentele web, ci sunt stocate īn
fisiere separate pe server, fiind descarcate numai daca
documentele web au specificate tag-uri speciale pentru acest lucru (tag-ul <APPLET>

Figura : Transferul si executia applet-urilor Java.
Independenta byte-code a Java de platforme hardware si software este posibila prin implementarea unei aplicatii numite "procesor virtual Java", creat pentru interpretarea applet-urilor pe fiecare din aceste platforme.
Programele de tip Java byte-code au urmatoarele facilitati:
acestea pot fi interpretate si compilate "on the fly" sau "din zbor", direct īn cod-masina pentru orice platforma hardware existenta;
marimea comenzii din byte-code este redusa la minimum prin reducerea complexitatii si marimii applet-urilor Java, īn comparatie cu orice alte programe;
fiecare byte-code al programelor contine informatii complete despre program, permitānd testarea īn vederea sigurantei executiei.
Compilarea "din zbor", cunoscuta si sub numele de compilare dinamica, se refera la conversia applet-urilor Java īn codul masina nativ de executie al statiei de lucru, chiar īnainte de executie. Dupa conversie, aceste programe pot fi executate ca si programe native. Aceasta compilare dinamica utilizeaza un compilator specializat īn locul unei masini virtuale, accelerānd viteza de executie a applet-urilor. Cu toate acestea, sunt pierdute anumite masuri luate pentru siguranta procesarii informatiilor, de aceea compilarea dinamica a applet-urilor Java īn interiorul browser-elor web nu se practica.
Nu numai applet-urile, adica aplicatiile mobile, pot fi scrise īn limbajul Java, ci si aplicatii statice. Pentru a obtine un nivel mai īnalt de performanta, codul sursa al programelor se compileaza nu īn byet-code, ci īn cod dependent de masina, care permite executia directa de catre procesor.
Astazi exista o multime de instrumente de dezvoltare pentru crearea atāt a applet-urilor Java, cāt si a aplicatiilor Java. Printre acestea se numara Microsoft Visual J++, Borland Jbuilder, Sun Microsystems Java Workshop etc.
Tehnologiile pentru dezvoltarea programelor mobile bazate pe utilizarea limbajelor de scripting au aparut si s-au dezvoltat īn paralel cu tehnologia Java. Cea mai importanta diferenta īntre tehnologiile sau limbajele de scripting si Java este interpretarea comanda-cu-comanda a sursei programelor de scripting, ceea ce nu face necesara compilarea īn byte-code, īn vederea executiei. Īn acest caz, functia de interpretare a codului este realizata de catre browser-ul web.
Natura limbajelor de scripting, numite de asemenea si macro-limbaje, faciliteaza depanarea si dezvoltarea programelor scrise cu ele. Printre principalele limbaje de scripting create īn vederea dezvoltarii de programe mobile se numara:
JavaScript, dezvoltate īn colaborare de Netscape si Sun Microsystems;
VBScript, dezvoltat de Microsoft pentru utilizarea īn Internet Explorer;
Virtual Reality Modeling Language (VRML), dezvoltat de Silicon Graphics;
Flash ActionScript, realizat de Macromedia pentru realizarea interactivitatii cu obiectele Flash.
JavaScript a fost dezvoltat initial de Netscape si a aparut pentru prima data īn browser-ul web Netscape Navigator 2.0 sub denumirea de LiveScript. Dupa īnceperea colaborarii cuSun Microsystem si apropierea sau trecerea sub influenta Java, limbajul s-a numit JavaScript. JavaScript nu este un limbaj derivat din Java si, cu toate ca au īn comun unele atribute, ele pot fi numite doar rude īndepartate. O comparatie īntre Java si JavaScript se poate observa si īn tabelul urmator:
|
Java |
JavaScript |
|
Programul trebuie compilat īn byte-code pentru a se putea executa la nivelde client |
Programul este interpretat la nivel de client īn forma initiala, bazata pe text |
|
Este orientat obiect. Applet-urile constau din obiecte descrise cu ajutorul claselor si mostenirii |
Bazat pe obiecte. Nu exista clase pentru mecanismul de mostenire |
|
Applet-urile sunt apelate de catre paginile web, dar sunt stocate separat de acestea, īn fisiere individuale |
Programele sunt apelate de catre paginile web si pot fi construite atāt direct īn documentele web cāt si separat de acestea |
|
Toate tipurile de date si variabilele trebuie declarate īnainte de utilizare |
Tipurile de date si variabilele nu trebuie declarate |
|
Legare statica. Legaturile dintre obiecte trebuie sa existe īn momentul compilarii |
Legare dinamica. Legaturile dintre obiecte sunt verificate īn timpul executiei |
|
Applet-urile nu pot scrie pe disc sau executa functii sistem |
Applet-urile nu pot scrie pe disc sau executa functii sistem |
Tabelul : Comparatie īntre Java si JavaScript.
JavaScript este un limbaj simplificat, interpretat, bazat pe functii orientate-obiect. Simplitatea i se datoreaza lipsei rigiditatii arhitecturii de tipuri si a semanticii. Natura orientata-obiect se manifesta prin abilitatea de a opera cu fereastra browser-ului, cu bara de stare sau cu alte unitati ale interfetei browser-ului web sau cu alte obiecte din ierarhie. JavaScript nu este atāt de bogat ca si limbajul Java, dar este mult mai usor si mai eficient īn realizarea unor sarcini legate de procesarea documentelor Web sau pentru interactiunea cu utilizatorul īn momentul vizualizarii paginilor. Avānd o multime de functii la dispozitie, JavaScript poate lucra cu ferestre de dialog, executa calcule matematice, produce noi documente, gestiona apasarea pe butoanele din ferestre etc. Iar tot cu ajutorul JavaScript se pot seta o serie de atribute si proprietati ale modulelor (plug-in-urilor) care sunt utilizate de catre browser-ul web.
Comenzile JavaScript sunt scrise direct īn pagina web si sunt executate de catre browser īn timpul īncarcarii acesteia sau īn timpul operatiilor specifice executate de utilizator īn timpul interactiunii cu pagina web (de exemplu, apasarea unui obiect din pagina, pozitionarea cursorului de mouse pe un anumit obiect sau introducerea de date īn formulare). La fel ca si īn orice alt limbaj, siguranta procesarii informatiilor este prioritara. JavaScript, desi nu este considerat a fi un limbaj cu un grad īnalt de securitate, īntruneste cele mai multe cerinte prin ne-includerea īn limbaj a unor functii care ar fi dus la vulnerabilitati. La fel ca si applet-urile Java, programele scrise cu JavaScript nu pot executa operatiuni cu fisiere si nu suporta functii de retea. Un program scris īn JavaScript nu poate, de exemplu, sa deschida un port TCP/IP si este capabil numai sa īncarce obiectele la adresele indicate si sa formeze datele care vor fi transferate catre server. Browser-ele moderne permit utilizatorilor sa seteze diferite niveluri de securitate, astfel īncāt programele scrise īn JavaScript sa se concentreze numai asupra unui interval īngust de informatii.
JavaScript si-a cīstigat popularitatea prin faptul ca programele se pot dezvolta rapid, acestea sunt mici si ofera acces simplificat la functiile oferite de catre browser-ul web. Principalul dezavantaj al JavaScript este rata mica de executie, datorata naturii interpretate a limbajului.
Trebuie sa notam faptul ca Netscape si Microsoft au implementat JavaScript īn mod diferit, aceste discrepante putānd avea ca rezultat incompatibilitatea utilizarii programelor realizate pentru Nescape īn Internet Explorer si invers. Pentru a elimina aceste neplaceri, este necesar sa se verifice facilitatile oferite de diverse programe de tip browser web.
VBScript (Visual Basic Script) este similar cu Java īn multe privinte. VBScript este un subset al Visual Basic, fiind de asemenea orientat pentru programarea paginilor web la nivel de client. Cu VBScript se pot utiliza obiecte diverse, inclusiv obiecte scrise īn alte limbaje.
ActiveX reprezinta un set de tehnologii de la Microsoft care se concentreaza asupra integrarii si unificarii metodelor de reprezentare si procesare a informatiilor din retele de calculatoare, construite īn concordanta cu arhitectura web. Ideea principala a tehnologiei ActiveX consta īn mijloacele identice de a accesa informatii din retea, īn care tehnologia web a fost selectata ca baza pentru unificarea acestor mijloace de acces.
Potrivit filosofiei ActiveX, browser-ul web ar trebui sa devina parte integranta a sistemului de operare. Mai mult, metodele de obtinere a accesului la orice informatii din calculator, de pe serverul local, din reteaua locala sau din Internet, ar trebui sa fie absolut identice si transparente pentru utilizator. Acest concept a fost implementat īn browser-ul Microsoft Internet Explorer īnca de la versiunea 4.

Figura : Acces uniform la resursele din retea.
Din punct de vedere al mobilitatii programelor, tehnologiile ActiveX reprezinta o alternativa la tehnologiile Java si JavaScript, fiind īn acelasi timp si o modalitate de suplimentare a acestora din urma. ActiveX ofera nu numai posibilitatea dezvoltarii si executiei de programe mobile, ci implementeaza si un numar de posibilitati alternative, facānd posibila, de exemplu, apelarea unor functii pentru vizualizarea si editarea documentelor Word, Excel, PowerPoint direct din mediul de lucru al browser-ului.
Dynamic HTML (DHTML) este doar HTML simplu īn care au fost adaugate cīteva elemente īmpreuna cu modalitatea de acces la ele prin intermediul limbajelor de scripting. Noile elemente permit control precis al layout-ului paginii, īn timp ce noul model obiectual permite manipularea acestor elemente prin intermediul scripturilor client/server si server/side.
Deoarece HTML a fost creat pentru layout-uri "curgatoare", nu exista control asupra modalitatii de asezare a texului si a imaginilor si īnainte ca paginile sa fie vizualizate pe o multime de platforme si masini diferite, care sa aiba ecrane si fonturi de tipuri diferite.
Mai tārziu au fost adaugate tag-urile <table> si <font> care au permis un control mai riguros asupra asezarii īn pagina si a stilurilor de afisare, dar si acestea au limitarile lor. Chiar si JavaScript, care permite manipularea prin programare a elementelor paginii, precum imagini sau a cāmpurilor din formulare, are anumite limitari.
DHTML a adaugat elemente care permit controlul precis al layout-ului paginii:
foile de stiluri: permit definirea de stiluri diferite pentru prezentarea texului, precum culori, marimea marginilor, fonturi etc;
pozitionarea continutului: permite determinarea cu exactitate a pozitionarii elementelor de continut īn fereastra browser-ului. Elementele se pot suprapune, pot fi ascunse sau pot fi mutate īn mod dinamic;
fonturi descarcabile: presupun ca va fi utilizat fontul care este ales pentru text, chiar daca fontul nu este disponibil pe masina client.
Document Object Model (DOM) defineste atāt proprietatile diferitelor elemente ale paginii, cāt si metodele de utilizare pentru modificarea acestora, prin utilizarea limbajelor de scripting putāndu-se modifica īn mod dinamic continutul paginii (de exemplu pot fi aplicate diferite schimbari īn functie de tipul de browser utilizat sau īn functie de actiunile utilizatorului).
Trebuie sa notam faptul ca toate companiile producatoare de software de navigare pe Internet ofera suport pentru DHTML, dar acesta difera de la browser la browser.
|