Вы находитесь на странице: 1из 63

1 Prof.univ.dr. Manole VELICANU Capitolul 2 INTEGRAREA unor tehnologii informatice n tehnologia bazelor de date 2.1.

Concepte din tehnologia orientat obiect -1-

2.2. Programarea i limbajele de programare -3- Programarea - Tehnicile de programare - Limbajele de programare - Iniiere n PL/SQL 2.3. Platforma Java -7- limbajul de programare Java - limbajul de scenarii JavaScript - Servlets - Java Server Pages (JSP) - Java DataBase Connectivity (JDBC) - Java Beans - Enterprise Java Beans (EJB) - Business Components for Java (BC4J) - Java Enterprise Edition Edition (JEE) - SQL Java (SQLJ) 2.4. Tehnologia Web - Bazele tehnologiei Web - Iniiere n HTML 2.5. Tehnologia Grid Computing 2.5.1. Intranet 2.5.2. Iniiere n tehnologia Grid Computing 2.5.3. Oracle 11g 2.5.4. Baze de date n arhitectur Grid Computing (GC) 2.6. Aplicabilitatea bazelor de date care integreaz tehnologii informatice 2.7. Studii de caz (vezi cartea de la bibliografie: Sisteme de baze de date evoluate). Not. Se cunosc aspectele fundamentale referitoare la SBD distribuite i SBD orientate obiect (vezi modulul SBDE Sisteme de Baze de Date Evoluate).

2.1. Concepte din tehnologia orientat obiect


CLASELE (TIPURILE) DE OBIECTE sunt un tip abstract de date prin care se definete structura obiectelor (proprietile) i comportamentul (metodele) acestora. OBIECTELE reprezint o colecie de proprieti care se refer la aceeai entitate. Obiectul are: 1

2 Prof.univ.dr. Manole VELICANU un nume prin care este referit ; un identificator unic atribuit de sistem; o implementare care este privat; o interfa care este public. permise asupra obiectului, deci comportamentul

METODA reprezint operaiile (funcionalitatea) acestuia.

MESAJUL reprezint cereri adresate obiectelor pentru a returna o valoare sau o stare. CARACTERISTICI (principii) fundamentale (de baz) ale obiectelor: ncapsurarea : descrierea obiectelor se face astfel nct nu se poate avea acces din afara obiectului la datele sale; polimorfismul : diferite obiecte pot rspunde diferit la aceleai mesaje; motenirea : capacitatea unui obiect de a-i deriva datele i funcionalitatea din alt obiect. INSTANA unei clase reprezint realizarea unei clase, dat de valorile variabilelor aferente

3 Prof.univ.dr. Manole VELICANU

2.2. Programarea i limbajele de programare


Programarea (programming) este activitatea de scriere a programelor ntr-unul sau mai multe limbaje de programare respectnd anumite tehnici de programare. Elaborarea programelor este activitatea care urmeaz dup analiza i proiectarea unei aplicaii informatice cu baze de date. Programarea presupune parcurgerea urmtoarelor activiti: ntocmirea unor specificaii de programare (pe baza rezultatelor de la analiz i proiectare), ntocmirea schemelor logice / pseudocodului, alegerea limbajelor de programare, scrierea codului/programului surs, testarea i punerea n funciune a programelor. Exemplu. Scrierea codului surs n SQL; generarea codului surs, cu un produs specializat Query Builder, pentru realizarea regsirii dintr-o baz de date. Not. Programarea este tehnic (mijloacele folosite) i art (experien, inspiraie, fantezie). Tehnici de programare (programming techniques). Activitatea de programare nu se desfoar la ntmplare, ci ea presupune tehnic i art. Arta de a programa nseamn abilitatea programatorului (experien, fantezie, soluii) de a scrie, ntr-un limbaj de programare, cod surs eficient. Tehnica de programare nseamn respectarea de ctre programator a unor reguli, restricii, etape la scrierea diferitelor programe. Exemple de tehnici de programare: structurarea (secvenial, alternativ, repetitiv), modularizarea, lucrul cu subprograme, meniuri (orizontale, verticale), ferestre, videoformate, rapoarte, recursivitatea, programarea vizual etc. Fiecare limbaj de programare are instruciuni care permit utilizarea anumitor tehnici de programare, n funcie de tipul de limbaj i de facilitile oferite de acesta. Exemplu.Programarea relaional (descriptiv) presupune doar structuri secveniale (n SQL), programarea procedural (imperativ/algoritmic) presupune toate cele trei structuri fundamentale secvenial, alternativ, repetitiv (PL/SQL). Limbaje de programare (programming language). O mulime de cuvinte rezervate, cu o anumit semnificaie, mpreun cu gramatica aferent (reguli de sintax i semantic). Orice limbaj folosit pentru descrierea datelor i a fenomenelor din lumea real, care este neles de un calculator. Descrierea fenomenelor poate fi fcut algoritmic i/sau declarativ, rezultnd limbaje de programare corespunztoare. Programatorul pleac de la lumea real, identific fenomenele i datele corespunztoare, realizeaz o descriere a lor prin specificaii de programare, pe care le folosete pentru ntocmirea schemelor logice sau a pseudocodurilor aferente. n continuare, i alege un limbaj de programare n care scrie programele surs aferente. Acestea sunt apoi rulate pe calculator parcurgnd fazele: compilare (pleac de la prgramul surs i produce programul obiect), link-editare (pleac de la programul obiect i produce programul executabil), execuie (pleac de la programul executabil i produce rezultate). Categorii de limbaje de programare. n funcie de domeniul de utilizare, limbajele de programare pot fi: 1. de asamblare (specific fiecrui tip de calculator ASM pentru PC); 2. procedurale (imperative / algoritmice): - universale (se folosesc pentru orice domeniu din lumea real Fortran, Cobol, Basic, Pascal, C etc.) 3

4 Prof.univ.dr. Manole VELICANU specifice / speciale (se folosesc doar n anumite domenii exemplu, baze de date): cu limbaj gazd (PL/SQL) cu limbaj propriu (limbajul din VFP) 3. neprocedurale (descriptive / declarative): - limbaje relaionale (SQL, QUEL, QBE); - limbaje orientate obiect (Smalltalk, Delphi, C++, Java); - limbaje pentru inteligena artificial: funcionale (LISP) pentru robotic (Japonia) logice (PROLOG) pentru sisteme expert (USA) - limbaje de simulare (Simula, Ada) 4. de scenarii (script comenzi i marcatori) - limbaje de comand (MS-DOS); - limbaje de script (HTML, JavaScript, BasicScript, PHP). Exemplu. Orice SGBD are cel puin un limbaj de programare (exemplu SQL) cu instruciuni pentru descrierea datelor (LDD Create, Alter etc) i instruciuni pentru manipularea datelor (LMD Insert, Update, Delete, Select etc.). Aceste limbaje permit implementarea unui model logic de date pentru BD. Not. Macro >> Comenzi >> Instructiuni >> Cod main (assembler) >> microinstruciuni -

5 Prof.univ.dr. Manole VELICANU

Iniiere n limbajul PL/SQL


PL/SQL este un limbaj procedural, propriu sistemului Oracle, care lucreaz stil compilator i care d posibilitatea s se dezvolte structuri procedurale de program, suportnd n acelai timp o parte dintre comenzile SQL. El a fost dezvoltat pe o structur de program Pascal. Instruciunea PL/SQL are drept terminator caracterul punct i virgul (;). Expresiile n PL/SQL sunt formate din operatori i operanzi. Tipul unei expresii este dat de tipul operatorilor utilizai. Operatorii sunt de urmtoarele tipuri: aritmetici (+,-, *, /, **), logici (AND, OR, NOT), de comparaie (=, !=, <, >, <=, >=), ali operatori speciali (LIKE; IN; BETWEEN etc.). Operanzii pot fi variabile, constante, atribute (%TYPE, %FOUND etc.). Unitatea de baz pentru structurarea unui program n limbajul PL/SQL este blocul. Structura unui bloc este: DECLARE Instruciuni de declarare (neexecutabile) BEGIN Instruciuni executabile (proprii sau din SQL) EXCEPTION Proceduri de tratare a erorilor (excepiilor) END; Not. Dintre seciunile de mai sus, doar cea executabil (ntre BEGIN i END) este obligatorie, ntr-un bloc PL/SQL. Comentariul se indic ca un text scris ntre /* i */ (analog ca n SQL) sau dup dou caractere liniu de unire (- -). Instruciunile dintr-un bloc pot fi precedate de <<etichet>>, care se poate folosi apoi pentru referire. Limbajul PL/SQL accept i subprograme care pot fi de urmtoarele tipuri: proceduri (PROCEDURE), funcii (FUNCTION), pachete (PACKAGE), declanatori (TRIGGER). Comenzi suportate din SQL INSERT, UPDATE, DELETE, SELECT, COMMIT, ROLLBACK, SAVEPOINT, LOCK, TABLE, SET TRANSACTION. Instruciuni proprii := este instruciunea de atribuire BEGIN desemneaz nceputul prii executabile a uni bloc CLOSE nchide un cursor explicit DECLARE marcheaz nceputul unui bloc i a prii nexecutabile a acestuia. Pentru a declara variabile i constante: NUMBER, CHAR, VARCHAR, DATE, BOOLEAN, atributele (%nume) Pentru a declara un cursor: CURSOR Pentru a declara o excepie (tratarea erorilor): EXCEPTION 5

6 Prof.univ.dr. Manole VELICANU END ncheie o serie de instruciuni (bloc END, structur repetitiv END LOOP, structur alternativ END IF) EXCEPTION marcheaz nceputul prii de tratare a erorilor dintr-un bloc. EXIT foreaz ieirea necondiionat dintr-o structur nesecvenial de program. FETCH acceseaz urmtoarea linie din mulimea selectat de un cursor explicit. GOTO salt necondiionat la o etichet dintr-un bloc. IFEND IF structura alternativ simpl de program. LOOP END LOOP structura repetitiv de program tip WHILE sau FOR NULL este instruciunea care nu are nici un efect OPEN deschide un cursor explicit RAISE oprete execuia unui bloc i transfer controlul unei seciuni de excepie. SELECTINTO instruciune de regsire, care ntoarce o linie dintr-o tabel i o plaseaz ntr-o variabil de memorie indicat prin clauza INTO. Funcii SQLCODE() numrul codului unei erori detectate SQLERRM() mesajul unui cod de eroare specificat Not. Majoritatea funciilor din SQL*Plus sunt suportate i de PL/SQL. Exemplu S se scrie un bloc PL/SQL care conine o structur repetitiv. Blocul va aduga n tabela TEMP(numcol) numere de la 1 la 10 cu excepia celor din mulimea (6,8), iar execuia blocului se va termina la numrul 10. REZOLVARE: BEGIN FOR var IN 1..10 LOOP IF var NOT IN (6,8) THEN INSERT INTO temp(numcol) VALUES (var); END IF; END LOOP; END;

7 Prof.univ.dr. Manole VELICANU

Platforma JAVA
Platforma Java a fost realizat i promovat de firma Sun Microsystems USA. n construcia platformei s-a plecat de la realizarea limbajului de programare Java n anul 1995, ca o soluie de adaptare a limbajelor de programare universale la noul context informatic, dominat n principal de mediul Internet. Ulterior au fost create noi produse, bazate pe tehnologia Java, toate mpreun formnd platforma Java actual: - limbajul de programare Java - limbajul de scenarii JavaScript - Servlets - Java Server Pages (JSP) - Java DataBase Connectivity (JDBC) - Java Beans - Enterprise Java Beans (EJB) - Business Components for Java (BC4J) - Java Enterprise Edition Edition (JEE) - SQL Java (SQLJ)

Limbajul de programare Java


Evoluia limbajului de programare Java a fost urmtoarea: 1994 James Gosling, pornind de la limbajul C++, creaz un nou limbaj de programare numit Oak. 1995 Firma Sun Microsystems sprijin dezvoltarea aplicaiilor cu limbajul Oak, pentru rularea lor cu un browser Web Runner i i schimb numele limbajului n Java. din 1996 Mari firme de software (Netscape, Oracle etc.) cumpr licene i promoveaz limbajul Java, alturi de celelalte produse din platforma Java. n Oracle n 2011 este implementat JSE 8 Java Standard Edition care presupune: lizibilitate mai bun (caractere speciale ca separatori), accept constanta binar, automatizarea administrrii resurselor, JVM reutilizeaz infrastructura de calcul (o mulime de limbaje pot lucra pe JVM), interfaa tip API pentru mecanismul de concurena i prelucrare paralel, modularizare masiv n platforma Java, suport pentru microprocesoare multi-nucleu (core), evoluie i nu revoluie. Caracteristicile limbajului Java sunt: - universal: este un limbaj de programare orientat obiect, orientat pe comunicaie, cu faciliti procedurale, aplicabil n toate domeniile de activitate; - simplu: s-a pstrat n limbaj, fa de limbajele universale precedente, doar prile strict necesare; - orientat obiect: are faciliti de programare orientat obiect (clase de obiecte, obiecte, proprieti, metode, mesaje, caracteristici ale obiectelor), dar pstreaz i faciliti procedurale (structura alternativ, structura repetitiv etc.);

8 Prof.univ.dr. Manole VELICANU familiar: este uor de nvat de programatorii care tiu deja C++. Au fost eliminate conceptele din C++ care fceau programarea greoaie (exemplu pointerii). Au fost adugate noi concepte preluate din alte limbaje (exemplu din Smalltalk); robust: s-a mrit gradul de siguran al codului de program prin dou niveluri de verificare la compilare i la execuie; comunicaie: programele Java pot rula nativ pe reele de calculatoare, n sisteme distribuite; dinamic: programele pot fi actualizate la momentul execuiei; portabilitate: programul Java poate rula pe diferite calculatoare, sub diferite sisteme de operare i sub diferite alte medii software; interconectare: numeroase browsere Web (Netscape Navigator, Internet Explorere, Opera etc.), dar i alte sisteme software au inclus maina virtual Java (JVM Java Virtual Machine) principii Java: citirea este mai important dect scrierea, limbajul nu ascunde ceea ce se ntmpl etc.

Elemente de limbaj Java Cteva diferene fa de C++ n Java: programul este o lista de clase, nu exist funcii independente, nu exist variabile externe, nu exist pointeri, nu exist apeluri externe, nu exist caracteristica de motenire multipl, nu exist fiiere header (*.h), nu exist destructori, exist un colector de resturi (garbagge collector) care disponibilizeaz automat spaiul de memorie care nu mai este necesar, exist programe care nu au funcia main(), este posibil tratarea excepiilor, pot fi aplicaii de sine stttoare (standalone ) sau applet-uri (browser cu maina virtuala Java). Constantele din limbajul Java exist constante: numerice (ntregi, reale), booleene, caracter i ir de caractere. Constantele numerice sunt ntregi sau reale. Variabila n limbajul Java este o locaie de memorie care poate pstra o valoare de un anumit tip. Exist variabile care i pot modifica valoarea i variabile care nu i-o pot modifica (numite n Java variabile finale). Orice variabil trebuie s fie declarat pentru a putea fi folosit. Declaraia unei variabile are sintaxa : <tip> <nume_variabila>; Fiecare variabil trebuie s aib o clas de memorare. Aceast clas ne permite s aflm care este intervalul de existen i vizibilitatea variabilei n contextul execuiei unui program. Operatorii aritmetici : +, -, *, /, % (modulo, doar pentru tipurile ntregi). Operatorii + i - pot fi i operatori semn. Operatorul + este folosit i pentru concatenarea a doua iruri de caractere. Operatori de incrementare ++ i decrementare -- sunt unari. Operatori logici : && (i), || (sau) i operatorul ! (negaie) au operanzi booleeni. Operatori pe bii : & (i), | (sau), ^ (sau exclusiv) i ~ (negaie). Ali operatori pe bii sunt >> (deplasare dreapta), << (deplasare stnga), >>> (deplasare dreapta far extensie de semn). Au operanzi ntregi. Operatorii de comparaie : >, >=, <, <=, == (egalitate), != (diferit). Operatori de atribuire combinai : +=, -=, *=, /=, &=, |=, ^=, %=, <<=, >>=, >>>=. Operatorul de decizie (?:) este ternar i are forma : expresie1 ? expresie2: expresie3. Operatorul instanceof, care este binar, ntoarce true dac obiectul din stnga lui este o instan a clasei sau interfeei specificate n dreapta i false n caz contrar.

9 Prof.univ.dr. Manole VELICANU Tipurile de date n limbajul Java sunt: tipuri primitive (aritmetice, ntregi, reale, caracter, logic) i tipul referin (obiectele instanele claselor, tablourile). Limbajul Java poseda pentru fiecare tip primitiv i cte o clas ale crei instane reprezint obiecte similare cu valorile din tipul primitiv respectiv. Aceste clase sunt : Byte, Short, Integer, Long, Float, Double, Character, Boolean. n Java, tipul referin este singura modalitate de accesare a obiectelor Comentariile pot fi pe mai multe linii, nchise ntre /* i */. Comentarii pe o singur linie care ncep cu //. Limbajul Java are cuvinte rezervate. O excepie este un semnal prin care se indica faptul c a aprut o situaie excepional: excepii propriu-zise (depire de indice, adres necunoscut etc.) i erori (depire de stiv, depire de adres etc.). Clase i obiecte. Un program Java este format din una sau mai multe clase. O clasa este ablonul care descrie entiti de un anumit tip, preciznd structura i funcionalitatea acestora. Declararea unei clase este similar cu declararea unui nou tip de date. Obiectele se mai numesc i instane ale unei clase deoarece sunt variabile referina declarate de tipul unei clase. Metodele descriu comportamentul obiectelor i dac nu returneaz nici o valoare (cazul procedurilor din alte limbaje) se folosete cuvntul cheie void. Tipul metodei precum i tipul, numrul i ordinea parametrilor poart numele de semntura metodei (sau prototipul ei). Punctul de intrare in orice aplicaie Java este metoda main() care trebuie s se gseasc n una (i numai una) dintre clasele aplicaiei. Compilatorul Java caut aceast metod i execut instruciunile din cadrul acesteia. Prototipul (amprenta) funciei main() este tot timpul acelai. Constructorii din limbajul Java permite o alt modalitate de iniializare a variabilelor membre ale unui obiect nc din momentul rezervrii spaiului in memorie. Acetia sunt metode speciale ale unei clase care sunt apelate implicit n momentul instanierii unui obiect al clasei. Constructorii au sintaxa obinuita a unei metode cu deosebirea ca nu au tip iar numele lor este acelai cu cel al clasei. Modificatorii de acces din Java specific nivelul de vizibilitate al variabilelor i metodelor n raport cu alte clase. Java are patru nivele de acces : public, private, protected i package. Suprascrierea metodelor nseamn folosirea aceluiai nume pentru mai mult dect o metoda, ceea ce difer fiind lista parametrilor (numrul, ordinea i/sau tipul) i implementarea metodelor. Acest mecanism este foarte des ntlnit n procesul de motenire. Caracteristicile obiectelor n Java sunt date de dou mecanisme de folosire a facilitailor unei clase n interiorul alteia : clasa componenta i clasa care extinde (motenete) alt clas. O clasa component apare atunci cnd n interiorul unei clase se folosete o variabil de tipul altei clase. n Java fiecare clas declarata este derivat din alta clas Cteva instruciuni Java Instruciunea vid - nu execut nimic. Instruciunea de atribuire este o setare de valoare ntr-o locaie de memorie (Loc=val). IF instruciune alternativ simpl. 9

10 Prof.univ.dr. Manole VELICANU SWITCH instuciune alternativ multipl. WHILE, DO, FOR - instruciuni de ciclare. BREAK ieire forat dintr-o bucl. RETURN - prsirea corpului unei metode. n cazul n care return este urmat de o expresie, valoarea expresiei este folosit ca valoare returnat de metod. THROW - semnalizeaz o excepie de execuie. TRY - iniiaz un context de tratare a excepiilor. SYNCHRONIZED - introduce o secven critic de instruciuni. O secven critic de instruciuni trebuie executat n aa fel nct nici o alt parte a programului s nu poat afecta obiectul cu care lucreaz secvena dat. Exemple 1. Programare structurat: s se contorizeze numrul de elemente dintr-un vector care au valoarea 22 i s se afieze rezultatul obinut.

int contor=0; int vect[]=tab[10]; for (int i=0; i<vect.length; i++) { if (vect[i]==22) contor++; } System.out.println("\n Contor="+contor);

interface Ceas { public String Timp(int ora); } class Ceas1 implements Ceas { public String Timp(int ora) { return new String("Ora este="); } }

2. Programare orientat obiect: s se construiasc o rutin privind afiarea orei.

10

11 Prof.univ.dr. Manole VELICANU

Limbajul de scenarii JavaScript


JavaScript este un limbaj de scenarii (script) dezvoltat de Netscape. Cu ajutorul limbajului JavaScript se pot creea pagini Web interactive. JavaScript seamn cu limbajul Java n ceea ce privete sintaxa expresiilor i posed aproape toate structurile de control de program. Spre deosebire de Java care este un limbaj compilat, JavaScript este executat de interpretorul navigatorului sub care ruleaz. Limbajul Java este folosit, de regul, de programatori pentru crearea de noi obiecte i appleturi, iar JavaScript este utilizat de dezvoltatorii de pagini Web, pentru scrierea de scenarii care descriu comportamentul acestor obiecte n funcie de evenimentele care apar. Pentru a rula secvene (scripturi) scrise n JavaScript este nevoie de un browser care suport JavaScript (Netscape Navigator de la 2.0, Microsoft Internet Explorer de la 3.0). Elemente de limbaj JavaScript Constantele sunt de urmtoarele tipuri: numerice (ntregi 42, reale - 3.14159.), logice / boolean (true, fals), iruri ("ok", 'ok'), neprecizat (null), neiniializat (undefined). Caracterele speciale au urmtoarea semnificaie: \b - Backspace, \f - Form feed, \n - New line, \r - Carriage return, \t Tab, \ - Apostrof, \ - Ghilimele, \\ - Backslash. Variabilele sunt identificate printr-un nume (ncep cu o litera, apoi litere i/sau cifre) Declararea variabilelor nu este obligatorie i nu necesit precizarea tipului. Exemple: var i, n, pi; var stud = "Popa Anda"; var x =22; Tipul variabilelor se precizeaza dinamic, la momentul execuiei, prin instruciuni de atribuire. Este posibil ca pe durata execuiei, unei variabile s i se modifice tipul de mai multe ori (exemplu var x; . . . x=22; . . . x=ok; ).. Expresiile pot fi de urmatoarele tupuri: aritmetice, logice, caracter (n funcie de tipul operatorilor). Operatorii sunt de urmtoarele tipuri: aritmetici (+ * / ++ -- %), de comparatie (> < <= >= == != ===(egalitate stricta)), logici (& ^ | ), speciali ( new creare instan, void evalueaz expresie fr a ntoarce rezultat, delete terge instan). Instruciunile pot fi terminate sau nu prin caracterul punct i virgul ( ; ) . Acest caracter este obligatoriu doar atunci cnd sunt mai multe instruciuni pe acelai rnd.
atribuirea ; if conditie ) instructiune_1 else instructiune_2 expr2; expr3 ( x=22; if ( a == undefined) document.write("A = ?") ) for (i = 0; i < a.length; i++) { if (a[i] = theValue); break; }

for ( expr1; instructiune

11

12 Prof.univ.dr. Manole VELICANU


n x while x += n do { } while (conditie) instructiuni do { = = ( n n < 0 0 22) ++

while }

(conditie) statements

;}

i+=1; document.write(i); } while (i<5);

with
instructiuni

(obiect){

var var with a x y }


switch

x, y r=10 (Math) { = PI * r * r = r * cos(PI) = r * sin(PI/2)


(expr1) { case "unu" : document.write("unu.<BR>"); break; case "doi" : document.write("doi.<BR>"); break; default :

a,

switch

(expresie){ case eticheta1 : instructiuni; break; case eticheta2: instuctiuni; break; ... default :instructiuni;

document.write("altceva.<BR>"); }

function nume(parametri) { instructiuni }

function f1() { fer1=open(f.htm); }

Comentariul se desemneaz prin dou caractere slash (//) urmate de textul dorit. Codul JavaScript poate fi introdus direct ntr-o secven HTML, ca n exemplul care urmeaz. <html> <body> <br> Mesaj1 HTML. <br> <script language="JavaScript"> document.write("Mesaj2 n JavaScript") </script> <br> Mesaj3 HTML. </body> </html>

12

13 Prof.univ.dr. Manole VELICANU Rezultatul acestei secvene este afiarea pe ecran a celor trei mesaje astfel: dou n HTML i unul n JavaScript. Tot ceea ce este ntre marcatoarele <script> i </script> este interpretat drept cod JavaScript, adic se folosete comanda (metoda) document.write(). Evenimentele sunt importante n programarea JavaScript i, de cele mai multe ori, sunt declanate de aciuni ale utilizatorului (dac se apas un buton atunci un eveniment Click are loc, dac mouse-ul este deasupra unei legturi atunci un eveniment MouseOver are loc). Pentru ca un program JavaScript s reacioneze la anumite evenimente se utilizeaz "eventhandlers" gestionarul de evenimente. De exemplu, un buton poate crea o fereastr atunci cnd este apsat. Aceasta nseamn c fereastra apare ca o reacie la evenimentul Click, iar n acest caz gestionarul de evenimente care trebuie utilizat este numit onClick. <form> <input type="button" value="Apasa" onClick="alert('Yo')"> </form> JavaScript organizeaz toate elementele unei pagini de Web ntr-o ierarhie. Toate elementele sunt vzute ca obiecte, care au anumite proprieti i metode. Cteva tipuri de obiecte dintr-o pagin JavaScript sunt: ferestre, documente, locaii. Exemplu s realizm o pagin HTML cu urmtoarele obiecte: o legtur, o imagine, o form (cu dou cmpuri text i un buton). <html> <head> <title>Pagina test </head> // Legtur

<body> <center> <img src="home.gif" name="pic1" width=200 height=100> // Imagine </center> <p> <form name="Forma1"> // Form cu trei obiecte Nume: <input type="text" name="name" value=""><br> E-mail: <input type="text" name="email" value=""><br><br> <input type="button" value="Apas" name="Buton1" onClick="alert('Yo')"> </form> </body> </html> Comentariu. Din punctul de vedere JavaScript fereastra browserului este un obiect tip fereastr ( window). n interiorul ferestrei se poate ncrca un document HTML (sau un fiier de alt tip). Aceast pagin este un obiect tip document. Aceasta nseamn c obiectul document este chiar pagina HTML ncrcat la un anumit moment dat. Toate obiectele HTML sunt proprieti ale obiectului document (un obiect HTML este, de exemplu, o legtura sau o form). 13

14 Prof.univ.dr. Manole VELICANU Urmatoarea imagine ilustreaza ierarhia creat de pagin construit mai sus, notarea nodurilor facndu-se de la zero: document (pagina HTML)

imagine0

forma0

legtura0

obiect0 (text)

obiect1 (text)

obiect2 (buton)

Dac se dorete adresarea imaginii din pagina HTML trebuie studiat ierarhia i se ncepe de sus. Primul obiect este denumit document. Imaginea este reprezentat prin imagine0. Aceasta nseamn c putem accesa acest obiect prin intermediul JavaScript cu ajutorul document.images[0]. Dac de exemplu dorim s accesm primul obiect din form atunci referirea se va face prin document.forms[0].elements[0] Pe lng obiectele tip fereastr i document mai exist i obiectul locaie (location). Acesta reprezint adresa documetului HTML ncrcat. Deci, dac se ncarc pagina http://www.xyz.com/page.html atunci location.href este egal cu aceast adres. Exemplu: un buton ncarc o nou pagin de pe Yahoo n fereastra de browser. <form> <input type=button value="Yahoo" onClick="location.href='http://www.yahoo.com'; "> </form> Cadrele (frame) reprezint modul de mprire a ferestrei unui browser n mai multe zone. Fiecare cadru prezint n interior un document propriu (de cele mai multe ori document HTML). Pentru crearea de cadre se folosesc doi marcatori: <frameset> i <frame>. Exemplu. O pagin HTML care creaz dou cadre poate fi obinut prin secvena urmtoare. <html> <frameset rows="50%,50%"> <frame src="page1.htm" name="frame1"> <frame src="page2.htm" name="frame2"> </frameset> 14

15 Prof.univ.dr. Manole VELICANU </html> Fiecare cadru are un nume unic specificat cu ajutorul proprietii name n marcatorul <frame>. Aceasta va ajuta pentru accesarea cadrelor cu ajutorul JavaScript. Construirea ferestrelor. Deschiderea unei noi ferestre de browser este una dintre facilitile JavaScript: fie se poate ncrca un document (de exemplu un document HTML) n noua fereastr, fie se poate crea un nou document. 1. ncrcarea unui document n fereastr. Urmtorul script deschide o nou fereastr browser (prin metoda open() ) i ncarc o pagin (document) existent dintr-un fiier. <html> <head> <script language="JavaScript"> function fer() { fer1= open("f.htm"); } </script> </head> <body> <form> <input type="button" value="Deschide fereastra " onClick="fer()"> </form> </body> </html> .htm este ncrcat n noua fereastr prin intermediul metodei open(). Proprietile unei ferestre ajut la poziionarea ei pe ecran i la stabilirea formei i coninutului ei (height, location etc.). Exemplu: fer1=open(f.htm,fereastra,width=400,heght=300,status=no,toolbar=no,menubar=no); nchiderea unei ferestre se realizeaz prin metoda close(). 2. Crearea de noi documente ntr-o fereastr existent Exemplu: se creaz un document simplu HTML care va fi afiat ntr-o nou fereastr existent <html> <head> <script language="JavaScript"> 15

16 Prof.univ.dr. Manole VELICANU <!-- hide function fer1() { fer= open("", "afisez fereastra", "width=500,height=400,status=yes,toolbar=yes,menubar=yes"); fer.document.open(); // creez documentul fer.document.write("<html><head><title>Titlu1 "); fer.document.write("</title></head><body>"); fer.document.write("<center><font size=+3>"); fer.document.write(" HTML-documentul a fost creat cu JavaScript "); fer.document.write("</font></center>"); fer.document.write("</body></html>"); fer.document.close(); } // --> </script> </head> <body> <form> <input type=button value="On-the-fly" onClick="fer1 ()"> </form> </body> </html> Comentariu. Mai nti se deschide o nou fereastr browser. Primul argument este un sir gol (" "), - aceasta nseamn c browserul nu trebuie s aduc un document, pentru c - JavaScript va crea noul document. Pentru nceput se definete variabila fer. Cu ajutorul acestei variabile se poate accesa noua fereastra. Dupa ce s-a deschis fereatra se poate deschide i documentul, pentru a fi pregtit apoi s primeasc intrrile (coninutul documentului) prin comenzile fer.document.write(). n final se nchide documentul. Obiectele predefinite sunt acceptate de JavaScript, de exemplu: Date (data calendaristic) i Array (masive). Obiectul dat calendaristic (Date) permite lucrul cu data i timpul. Exemplu pentru afiarea datei i orei curente trebuie creat mai nti un nou obiect de tip Date: data1= new Date() Obiectul tip Date ofer cteva metode care pot fi folosite: getHours(), setHours(), getMinutes(), setMinutes(), getMonth(), setMonth() etc. 16

17 Prof.univ.dr. Manole VELICANU

Obiectul masive (Array) este acceptat ncepnd cu JavaScript 1.1 (Netscape Navigator 3.0). Se poate crea un nou masiv prin: masiv1= new Array(). Se pot da valori acestui masiv prin: masiv1[0]= 2; masiv[1]= "Anda"; masiv[2]= "Maria"; Masivele din JavaScript sunt flexibile: dimensiunea lor poate crete dar nu are abilitatea de a se diminua. Straturile (layers) sau nivele sunt faciliti aprute ncepnd cu Netscape Navigator 4.0. Ele permit poziionarea absolut a obiectelor pe ecran, adic obiectele pot fi micate sau mutate n pagin i, de asemenea, obiectele pot fi suprapuse n pagin. Pentru crearea unui strat trebuie folosit fie marcatorul <layer> fie <ilayer>, care au o serie de proprieti (left, top, width, z-index etc.). Marcatorul <layer> este utilizat pentru straturile care pot fi poziionate n mod clar. Dac nu specificai o poziie (cu ajutorul proprietilor left si top) stratul va fi poziionat n colul stnga sus al ferestrei. Marcatorul <ilayer> creeaza un strat al crui poziie depinde de modul de afiare al documentului. Exemplu: Se dorete creearea a dou straturi. n primul strat se creeaz o imagine (z-index=0), iar n cel de-al doilea un text (z-index=1). Se dorete afarea textului deasupra imaginii. <html> <layer name=pic z-index=0 left=200 top=100> <img src="img.gif" width=160 height=120> </layer> <layer name=txt z-index=1 left=200 top=100> <font size=+4> <i> Exemplu</i> </font> </layer> </html> Identificarea straturilor n JavaScript se face printr-un nume care i se atribuie (<layer ... name=strat1 >). Ulterior, stratul se poate accesa prin document.layers["strat1"]. Straturile se pot accesa i prin intermediul unui index numr ntreg. Pentru a accesa stratul cel mai de jos se scrie document.layers[0]. Exist cteva proprieti ale unui strat care pot fi schimbate prin intermediul JavaScript. Exemplul urmtor prezint un buton care permite ascuderea sau vizualizarea unui strat. n acest sens, se creaz o funcie (av) care va fi apelat la apsarea unui buton. <html> <head> <script language="JavaScript"> function av() { if (document.layers["strat1"].visibility == "show") document.layers["strat1"].visibility= "hide" else document.layers["strat1"].visibility= "show"; } 17

18 Prof.univ.dr. Manole VELICANU

</script> </head> <body> <ilayer name=strat1 visibility=show> <font size=+1><i>Text in strat </i></font> </ilayer> <form> <input type="button" value="Vizualizare/Ascundere" onClick="ave()"> </form> </body> </html> Exemplu S se scrie codul surs JavaScript pentru deschiderea ntr-o pagin Web a unui document tip html. <head> <script language="JavaScript"> function fer() { fer1=open("ExHTML1.htm"); } fer(); </script> </head>

18

19 Prof.univ.dr. Manole VELICANU

Servlets
Servlets sunt clase (module script) Java, necesare pentru construirea unor pagini Web dinamice, ncrcate i meninute rezident pe server. Se extinde astfel, funcionalitatea unui server cu un mic server Web dedicat. Tehnologia Servlets este o alternativ oferit de Java pentru rezolvarea problemelor legate de timp aprute odat cu programarea CGI (Common Gateway Interface). Aceasta faciliteaz dezvoltarea unor module care permit serverelor Web s se conecteze i s prelucreze informaia n mod dinamic, adic s ruleze aplicaii Web i nu doar s transfere documente statice. Soluia Java, menine executabilul persistent pe server, ntre cererile clienilor, spre deosebire de CGI unde fiecare cerere client lanseaz un nou proces pe server (ceea ce duce rapid la epuizarea resurselor serverului Web, adic la creterea timpului). Servlet este o component software n partea serverului, scris n JAVA i care extinde dinamic funcionalitatea unui server (de obicei un server HTTP). Spre deosebire de applet-uri, servlet-urile nu afieaz o interfa grafic ctre utilizator, ci se returneaz doar nite rezultate ctre client (de obicei sub forma unui program HTML). Servlets sunt clase JAVA care se conformeaz unei interfee specifice ce poate fi apelat de ctre server. Funcionalitatea furnizat de un servlet nu este restricionat serverelor WEB, ci se poate extinde la orice server care suport JAVA i Servlet API (cum ar fi: FTP, Telnet, Mail etc). Servlets furnizeaz un cadru pentru crearea de aplicaii care implementeaz paradigma cerere/rspuns. De exemplu, cnd un browser trimite o cerere ctre server, serverul o trimite mai departe unui servlet. Modulele Servlet proceseaz cererea (eventual accesnd o baz de date) i construiete un rspuns convenabil (de obicei n HTML) care este returnat clientului. Avantajele servlet fa de alte tehnologii similare (exemplu CGI): o performana. Modulele Servlet ruleaz de obicei n acelai spaiu de proces ca i serverul i sunt ncarcate doar o dat. Astfel, ele sunt capabile s rspund mai rapid i eficient la cererile clienilor. n contrast, CGI trebuie s creeze cte un nou proces pentru deservirea unei cereri. o compilarea codului JAVA ofer execuii rapide fa de programele scrise n limbaje script. Multe din erori sunt ndeprtate nc de la compilare, deci modulele servlet sunt mai stabile. o rezistene la blocarea sistemului. Maina virtual JAVA nu permite modulelor servlet accesul direct la locaiile de memorie, deci se elimin posibilitatea blocrii sistemului ca rezultat al accesului la memoria invalid (pointerii n C puteau conduce la acest lucru). JVM va propaga o excepie sau va rezolva eroarea fr blocarea sistemului. o portabilitatea platformei. Caracteristica JAVA "scris o dat, ruleaz oriunde" permite servlet-urilor s fie distribuite uor fr a rescrie codul pentru fiecare platform. Servlet-urile opereaz identic fr modificri cnd ruleaz pe UNIX, Windows sau alt sistem de operare. o durabilitate. Servlet-urile rmn n memorie pn cnd exist o instruciune specific de tergere a lor. Astfel, acestea necesit doar o instaniere pentru a satisface 19

20 Prof.univ.dr. Manole VELICANU mai multe cereri. De exemplu, se obinuiete ca la ncrcarea unui servlet s se creeze i mai multe conexiuni la baze de date. incrcare dinamic. Ca i modulele applet, cele servlet pot fi dinamic ncrcate local sau prin reea. ncrcarea dinamic asigur faptul c modulele servlet nefolosite nu consum resurse. extensibilitatea. Noile instrumente de dezvoltare, noile biblioteci de clase JAVA i driverele de baze de date sunt disponibile i astfel pot fi utilizate de servlet-uri. concurena. Spre deosebire de C/C++, mecanismele de concuren (thread) sunt motenite n JAVA i sintaxa sincronizrii lor este consistent pe toate platformele. orientarea obiect. Servlet-urile furnizeaz o arhitectur simpl pentru dezvoltarea aplicaiilor de reea. Asta deoarece Servlet API ncapsuleaz toate informaiile eseniale i funcionalitatea n obiecte bine construite. De exemplu, Servlet API furnizeaz clase care lucreaz cu obiecte abstracte, cum ar fi: cereri, rspunsuri, sesiuni . independena de protocol. De obicei, modulele servlet sunt folosite pentru extinderea funcionalitii serverelor HTTP. Modulele Servlet sunt complet independente de protocol, acestea suportnd comenzi FTP, SMTP, POP3, sesiuni Telnet, sau orice alt protocol (fie standard sau creat de programatori). securitatea. Deoarece servlet-urile sunt scrise n JAVA, nu sunt posibile accesele nevalide la memorie sau violri de tip. n plus, exist trei proprieti care fac modulele servlet mai sigure dect CGI. 1) Servlet folosesc un manager de securitate pentru crearea unor reguli de securitate. Un manager de securitate poate restriciona reeaua sau accesul la un fiier pentru un servlet de nencredere. 2) Un manager de securitate poate acorda drepturi depline pentru un servlet de ncredere. 3) Un servlet are acces la toate informaiile coninute n fiecare cerere a clientului. Aceast informaie conine date de autentificare HTTP. Cnd se folosesc n conjuncie cu protocoalele de securitate cum ar fi SSL, modulele servlet pot verifica identitatea fiecarui client.

o o o o

Funcionalitatea servlet permit interaciune n ambele sensuri ntre client i server : o Construiesc dinamic i returneaz un fiier HTML pe baza cererii clientului; o Proceseaz intrarea utilizatorilor trimis de un formular HTML i returneaz un rspuns apropiat; o Faciliteaz comunicaiile dintre grupuri de utilizatori prin publicarea de informaii trimise de mai multi clieni; o Furnizeaz autentificarea utilizatorului i alte mecanisme de securitate; o Interacioneaz cu o serie de resurse ale serverului cum ar fi bazele de date i fiierele cu informaii utile pentru client; o Proceseaz intrrile de la mai muli clieni pentru aplicaii cum ar fi jocuri n reea; o Permite serverului s comunice cu un applet client printr-un protocol specific i pstreaz conexiunea n timpul conversaiei; o Ataeaz automat elemente de proiectare pentru pagini Web, cum ar fi antete sau note de subsol, pentru toate paginile returnate de server; o ntoarce cereri de la un server la altul n scop de echilibrare a ncrcrii; o Partiioneaz serviciul logic ntre servere sau ntre servlet-uri pentru a procesa eficient o problem. Structura de baz a unui servlet.

20

21 Prof.univ.dr. Manole VELICANU Cel mai uor mod de definire al modulelor servlet este prin extinderea uneia din cele dou clase de baz: GenericServlet i HttpServlet. De fapt, nu este obligatoriu motenirea acestor clase, ci este suficient implementarea interfeei Servlet. Toate modulele servlet suprascriu cel puin o metod necesar funcionalitii lor. Metoda care este automat apelat ca rspuns la cererea fiecrui client se numete service(). Aceast metod poate fi suprascris pentru a furniza o funcionalitate implicit. Cu toate acestea, servlet-urile care extind HttpServlet pot s nu suprascrie metoda service(). n acest caz, implementarea implicit a acestei metode va apela automat alt metod pentru a rspunde cererii clientului. Mai exist nc dou metode implementate de majoritatea modulelor servlet: init() i destroy(). Metoda init() se apeleaz o singur dat, cnd este ncrcat modulul servlet (similar cu un constructor). Metoda destroy() este apelat cnd modulul servlet este descrcat, elibernd resursele acestuia. Un schelet pentru servlet poate fi (fr a preciza parametrii i excepiile): public class ScheletServlet extends HttpServlet { public void init() { // aici este codul de inializare } public void service() { // partea de lucru } public void destroy() { // eliberarea resurselor } } // sfritul clasei ScheletServlet Dac modulul servlet extinde HttpServlet, dezvoltatorul servletului poate s nu suprascrie metoda service(), ci s implementeze alt metod care va fi automat apelat de metoda mostenit. Metoda automat apelat de service() depinde de tipul cererii HTTP (de exemplu, doGet() este apelat pentru cererile GET si doPost() este apelat pentru cererile POST). Ciclul de via a unui servlet . Procesul apelrii (de ctre server) a unui servlet se poate mpri n opt pai: 1. Serverul ncarc modulul servlet cnd acesta este cerut de client sau la pornirea serverului dac aa impune configuraia. Servlet poate fi ncarcat local sau dintr-o locaie de la distan folosind o facilitate de ncrcare a claselor JAVA. 2. Serverul creaz o instan a clasei servlet pentru deservirea tuturor cererilor. Folosind fire de execuie multiple, cererile concurente pot fi deservite de o singur instan a modulului servlet. (Servlet s = (Servlet) c.newInstance();).

21

22 Prof.univ.dr. Manole VELICANU 3. Serverul apeleaz metoda init() a modulului servlet, care garanteaz c termin execuia naintea procesrii primei cereri pentru servlet. Dac serverul creaz mai multe instane pentru servlet, metoda init() se apeleaz de fiecare dat pentru fiecare instan. 4. Serverul construiete un obiect, atunci cnd se primete o cerere pentru servlet, ServletRequest sau HttpServletRequest din datele incluse n cererea clientului. De asemenea, acesta construiete un obiect ServletResponse sau HttpServletResponse care furnizeaz metode pentru returnarea rspunsului. Tipul parametrului depinde dac modulul servlet extinde GenericServlet sau HttpServlet. 5. Serverul apeleaz metoda service() (care pentru servleturi HTTP poate apela o metod specific cum ar fi doGet() sau doPost()), trimind ca parametri obiectele construite la pasul anterior. Cnd sosesc cereri concurente, metodele service() pot rula simultan n fire de execuie separate (cu excepia faptului cnd servlet-ul implementeaz interfaa SingleThreadModel). 6. Metoda service() proceseaz cererea clientului prin evaluarea obiectului ServletRequest sau HttpServletRequest. Apoi acesta rspunde folosind obiectul ServletResponse sau HttpServletResponse. 7. Dac serverul primete nc o cerere pentru acest servlet, procesul ncepe din nou la pasul cu numrul cinci. 8. De fiecare dat cnd containerul modulului servlet determin c un servlet trebuie descrcat (din motive de corecie sau dac acesta a "czut"), serverul apeleaz metoda destroy() dup terminarea firelor de execuie ale metodei service() sau dup terminarea limitei de timp definit de server. Caracteristicile principale ale tehnologiei Servlets sunt: cnd micul server Web dedicat (servlet) este ncrcat, el este iniiat prin apelul unei metode; la iniiere se pot deschide conexiuni la baze de date care devin astfel rezidente ntre apelurile clienilor; clasele i metodele necesare pentru a defini i utiliza un server Web dedicat sunt ncapsulate n pachete Java (exemplu Javax.servlet); tehnologia folosete protocolul HTTP (Hyper Text Transfer Protocol); tehnologia se utilizeaz pentru a dezvolta soluii bazate pe Web: - accesul securizat la pagini Web; - asigurarea interaciunii cu bazele de date; - generarea dinamic paginilor HTML (Hyper Text Markup Language); - manipularea informaiilor care identific unic un client pe parcursul uneia sau mai multor sesiuni. orice modul CGI poate fi rescris cu tehnologia servlet; se poate crea cte un mic server dedicat (servlet) pentru fiecare funcie din paginile Web (conectare, nregistrare, actualizare etc.) sau un singur server dedicat care s gestioneze toate tranzaciile din paginile Web respective, n mod dinamic; tehnologia este o soluie optim pentru aplicaiile care utilizeaz intensiv bazele de date (serverul se ocup de accesul la date iar clienii formuleaz cererile de regsire). Partea de 22

23 Prof.univ.dr. Manole VELICANU cod se scrie o singur dat i se stocheaz rezident, o singur dat, pe server. La actualizarea codului se va face o singur nlocuire, pe server, i nu la fiecare utilizator n parte; comunicarea client-server se face astfel: clientul formuleaz i trimite ctre server o cerere Web; serverul o direcioneaz ctre serverul dedicat (servlet) pentru a fi procesat (ceea ce implic de multe ori i accesul la o baz de date); rspunsul (sub form de pagini HTML, imagini etc.) este returnat serverului i apoi clientului care a formulat cererea; este permis memorarea urmei (trace) clienilor pentru a avea informaii completedespre utilizatorul respectiv; un server dedicat (servlet) poate fi apelat dintr-o pagin HTML (de exemplu printr-un navigator browser) sau dintr-un mic client Web dedicat (applet). Applet este un modul (clase) Java construit i stocat pe un client. La execuia lui se poate face apel la un server dedicat Web de tip servlet; domenii de utilizare ale tehnologiei: - pentru generarea unor pagini Web dinamice; - n aplicaii multinivel (multi-tier) cu JDBC (Java DataBase Connectivity): serverul dedicat poate accesa o varietate de baze de date prin intermediul JDBC i poate realiza, parial sau total, interfaa cu utilizatorul prin pagini Web dinamice.

Not. Prin extinderea micilor servere Web dedicate (servlets) s-a ajuns la tehnologia JSP.

23

24 Prof.univ.dr. Manole VELICANU

Java Server Pages (JSP)


JSP este o tehnologie, din platforma Java, utilizat pentru construirea unor aplicaii care s conin pagini Web cu un coninut dinamic (HTML, DHTML, XML). Tehnologia a fost creat la firma SUN, n 1999, pentru a oferi proiectanilor de aplicaii o interfa util pentru construirea aspectelor estetice ale paginilor Web (amplasare, aspect etc.) i mai puin util n ceea ce privete sursa i manipularea datelor dinamice. JSP a rezultat ca tehnologie, prin integrarea experienei unor productori de software de: servere Web, servere de aplicaii, sisteme tranzacionale, interfee de dezvoltare. Procesul dezvoltrii de pagini de Web dinamice este accelerat de ctre JSP din urmtoarele considerente: o Separarea generrii coninutului de prezentare o Proiectanii de pagini folosesc marcatori (tags) obinuii din HTML sau XML pentru formatarea rezultatului i marcatori JSP pentru generarea coninutului dinamic al paginii. Logica ce st n spatele generrii coninutului este cuprins n marcatori i componente JavaBean, legtura dintre acestea fcndu-se n secvene (scriplets) i totul fiind executat pe server. Astfel, proiectanii de pagini pot edita i lucra cu pagini JSP fr a afecta generarea coninutului dinamic. o Pe partea de server, un motor (nucleu) JSP interpreteaz secvenele (scriplets) i marcatorii JSP, genereaz coninutul cerut (accesnd componente JavaBean, baze de date folosind JDBC sau prin includerea de fiiere) i trimite rezultatele napoi sub forma unei pagini HTML (sau XML) ctre browser. o Permite reutilizarea componentelor precum JavaBeans, Enterprise JavaBeans sau a marcatorilor, att independent, ct i n cadrul unor interfee interactive de dezvoltare a componentelor i paginilor de Web. Dezvoltatorii de pagini Web nu sunt ntotdeauna programatori familiarizai cu limbaje de scenarii. JSP ncapsuleaz funcionalitile necesare pentru crearea de coninut dinamic n marcatori de tip XML specifice JSP. Marcatorii JSP standard pot accesa i instania componente JavaBean, pot seta sau obine atribute ale acestor componente, pot f descrca (download) appleturi i pot executa funcii ce ar fi dificil de implementat. o Tehnologia JSP este extensibil prin dezvoltarea unor biblioteci de marcatori definite de utilizator, pentru funciile folosite cel mai frecvent. o Tehnologia JSP este complet independent de platform att n ceea ce privete paginile de Web dinamice, ct i serverele de Web i componentele acestora. Aceasta este explicabil deoarece limbajul de script pentru paginile JSP se bazeaz pe Java i n special pe modul de manipulare a obiectelor n acest limbaj. Structura unei pagini JSP. O pagin JSP (*.jsp) este o pagin HTML sau XML ce cuprinde elemente adiionale (marcatori, declaraii, secvene (scriplet)) pe care motorul JSP le proceseaz returnnd o pagin standard HTML/XML. Ea corespunde unui document ce descrie procesarea unei cereri pentru a crea un rspuns. O pagin JSP cuprinde n structura sa urmtoarele componente: 24

25 Prof.univ.dr. Manole VELICANU o cod HTML/XML standard - cod ce rmne neinterpretat de motorul JSP; o directive JSP - directive ce furnizeaz informaii globale independente conceptual de o anumit cerere adresat paginii JSP; o marcatori (tags) JSP - spre deosebire de directive, marcatorii depind de fiecare cerere n parte adresat paginii JSP; o elemente de scripting - acestea putnd fi: declaraii, secvene (scriplet) i expresii. O pagin JSP poate crea i/sau accesa, la procesarea unei cereri, anumite obiecte Java. Obiectele astfel create pot deveni vizibile prin variabile n limbajul de scripting. Acestea vor conine, n timpul etapei de procesare a cererilor, referine ctre obiectul respectiv. Obiectele create au un atribut numit scope ce definete domeniul de vizibilitate al acestora: cnd exist o referin la acest obiect i cnd aceasta va fi nlturat. Valorile pe care le poate avea atributul scope sunt: o page - accesibil doar n cadrul paginii n care a fost creat obiectul; o request - accesibil din paginile ce proceseaz aceeai cerere n care a fost creat obiectul; o session - accesibil din paginile ce se sunt n aceeai sesiune n care a fost creat obiectul; o application - accesibil din paginile ce proceseaz aceeai aplicaie n care a fost creat obiectul. Toate referinele la acesta sunt eliberate cnd mediul de lucru runtime solicit ServletContext. Numele ataat unui obiect este unic pe tot timpul execuiei, toate domeniile de vizibilitate comportndu-se ca unul singur n cadrul unei secvene cerere/ rspuns. Lipsa transmiterii variabilelor de stare prin HTTP este suplinit n mod automat de ctre motorul JSP prin cele dou modaliti cunoscute: cookie, respectiv rescrierea URL. Ct timp sunt fcute cereri procesate de ctre motorul JSP, rescrierea URL este fcut n mod automat. Orice pagin JSP conine o serie de obiecte create implicit: o request - cererea ce a solicitat pagina respectiv; o response - rspunsul la cerere; o pageContext - contextul paginii curente; o session - obiect de tip sesiune pentru clientul solicitat (valabil doar pentru HTTP); o application - contextul servlet-ului generat (getServletConfig().get Context(); o config - obiect de tip ServletConfig pentru pagina curent; o page - instan a clasei create pentru pagina curent (pentru Java: this); o exception - excepia declanat anterior putnd fi folosit doar n pagina de eroare invocat; o config - obiect de tip JspWriter ce scrie n irul de ieire. Tipuri de aplicaii pentru JSP 1. Modelul de aplicaie flexibil folosind servlet-uri Java Un client Web poate face o cerere direct ctre un servlet Java, care genereaz coninutul dinamic, stocheaz rezultatul ntr-o component Bean i invoc pagina JSP. Pagina JSP acceseaz coninutul dinamic din componenta Bean i trimite rspunsul (HTML) browserului. 2. Modelul de aplicaie pe dou straturi (two-tier) 25

26 Prof.univ.dr. Manole VELICANU Navigatorul invoc n mod direct pagina JSP i aceasta genereaz coninutul solicitat (apelnd eventual la JDBC pentru a obine informaia direct dintr-o baza de date). Pagina JSP poate apela JDBC sau o component JavaBean pentru a genera rezultatele dorite i a crea HTML standard ce va fi trimis browser-ului. Avantajele acestei abordri sunt uurina de a programa i posibilitatea autorului paginii de a genera coninut dinamic bazat pe cererea clientului i starea resursei solicitate 3. Modelul de aplicaie pe mai multe straturi ( N-tier) Pagina JSP poate aciona ca strat de mijloc (middle-tier) n cadrul unei arhitecturi de tip Enterprise JavaBeans (EJB). n acest caz, pagina JSP interacioneaz cu anumite resurse aflate pe server printr-o component de tip Enterprise JavaBean. Aceasta controleaz accesul la resursele de pe server, ceea ce furnizeaz performan scalabil pentru un numr mare de utilizatori concureni. Pentru comer electronic sau alte tipuri de aplicaii, EJB controleaz tranzaciile i problemele de securitate aferente. Acest lucru simplific pagina JSP. Modelul acesta va fi suportat de ctre platforma Java Enterprise Edition (JEE)

Cracteristicile principale ale tehnologiei JSP sunt: poate funciona pe o multitudine de servere; separ logica (coninutul) aplicaiei de aspectul (prezentarea) paginilor Web. Logica aplicaiei se construiete cu alte tehnologii (de exemplu: JDBC, JavaBean etc.) urmnd ca prin JSP s se editeze aspectul paginilor Web din aplicaie; permite reutilizarea unor componente generate cu alte tehnologii (de exemplu cu JavaBean) att independent ct i n cadrul unor interfee de dezvoltare a paginilor Web; este independent de platforma pe care ruleaz, deoarece scripturile generate de JSP se bazeaz pe Java; pagina JSP se interpune ntre navigatorul (browser) clientului i componentele pentru logica aplicaiei (realizate n JavaBean, CORBA, JDBC etc.) care acceseaz o baz de date; n pagina JSP se descrie cum trebuie sa se creeze un obiect de rspuns pentru un anumit protocol de comunicaie (HTTP etc.); tehnologia JSP se poate utiliza n aplicaii tip multinivel (multi-tier); o pagin JSP poate indica modul de manipulare a unor evenimente; execuia unei pagini JSP este realizat de ctre motorul JSP instalat pe un server de Web. Acesta proceseaz pagina JSP (este o pagin HTML cu elemente adiionale) i returneaz o pagin standard HTML/XML; implementarea tehnologiei JSP se face n dou etape: - traducerea, care se efectueaz o singur dat i are ca efect generarea unui mic server dedicat (servlet); - procesarea fiecreicereri n parte de ctre micul server dedicat (servlet); o pagin JSP poate conine urmtoarele elemente: marcatori (tags) HTML, marcatori de date, marcatori JSP, HTML predefinit, cod Java etc. Not.O alt tehnologie, similar cu cea de mai sus, este ASP (Active Server Pages) realizat de Microsoft n 1996. Aceasta ns: ruleaz doar pe platforma Windows, poate lucra doar cu SGBD care suport ODBC (nu i JDBC) etc.

26

27 Prof.univ.dr. Manole VELICANU

Java DataBase Connectivity (JDBC)


JDBC este un standard realizat de Sun Microsystems pentru conectarea unei BD cu alte sisteme. El este o dezvoltare a tehnologiei ODBC (Open DataBase Connectivity) realizat de Microsoft, innd cont de cerinele mediului Internet: interoperabilitate, integrare, deschidere, comunicare, portabilitate. JDBC este constituit dintr-un set de clase i interfee scrise n Java, furniznd mecanisme standard pentru proiectanii aplicaiilor de baze de date. Pachetul care ofer suport pentru lucrul cu baze de date este java.sql. Folosind JDBC se pot transmite cerei de regsire (secvene SQL) ctre baze de date relaionale. Cu alte cuvinte, nu este necesar s scriem o secven de comenzi pentru a accesa o baza de date Oracle, o alt secven pentru a accesa o baz de date Sybase i aa mai departe. Este de ajuns s scriem o singur secven de comenzi folosind interfaa JDBC i acesta va fi capabil s trimit secvene SQL bazei de date dorite. Scriind codul surs n Java, ne este asigurat portabilitatea programului. Tot ceea ce-i lipsete este modalitatea prin care aplicaiile Java pot comunica cu bazele de date. Aici intervine JDBC-ul care ofer acest mecanism.

Sintetic, rolul intefeei , JDBCeste: 1. stabilete o conexiune (conectarea) cu o baz de date; 2. trimite secvene de comenzi SQL spre o baz de date relaional; 3. prelucreaz rezultatele 1.Conectarea la o baz de date Procesul de conectare la o baz de date implic dou operaii: ncrcarea n memorie a unui driver corespunztor (JDBC), realizarea unei conexiuni propriu-zise O conexiune (sesiune) la o baz de date reprezint un context prin care sunt trimise secvene SQL i primite rezultate. ntr-o aplicaie pot exista mai multe conexiuni simultan la baze de date diferite sau la aceeai baz. Clasele i interfeele necesare pentru realizarea unei conexiuni sunt: - clasa DriverManager, se ocup cu nregistrarea driverelor ce vor fi folosite n aplicaie; - interfata Driver, trebuie s o implementeze orice clas ce descrie un driver ; - clasa DriverPropertyInfo, descrie proprietile driverului; - interfaa Connection, descrie obiectele ce modeleaz o conexiune propriu-zis cu baza de date ncrcarea n memorie a driver-ului necesar comunicrii este primul lucru pe care trebuie s-l faca o aplicaie n procesul de conectare la o baz de date. Acest lucru poate fi realizat prin mai multe modaliti: 1. DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver()); 2. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 3. System.setProperty("jdbc.drivers", "sun.jdbc.odbc.JdbcOdbcDriver"); 4. java -Djdbc.drivers=sun.jdbc.odbc.JdbcOdbcDriver 27

28 Prof.univ.dr. Manole VELICANU

Specificarea unei baze de date. O dat ce un driver JDBC a fost ncrcat n memorie cu DriverManager, acesta poate fi folosit la stabilirea unei conexiuni cu o baz de date. Avnd n vedere faptul c pot exista mai multe drivere nregistrate n memorie, trebuie sa avem posibilitea de a specifica pe lnga identificatorul bazei de date i driverul ce trebuie folosit la un moment dat. Acest lucru se realizeaz prin intermediul unei adrese specifice, numita JDBC URL, ce are urmtorul format: jdbc:sub-protocol:identificator_baza_de_date Cmpul sub-protocol denumete tipul de driver ce trebuie folosit pentru realizarea conexiunii i poate fi odbc, oracle, sybase, db2 etc.. Identificator_ baza_ de_ date este un indicator specific fiecrui driver care specific baza de date cu care aplicaia dorete s interacioneze. n funcie de tipul driver-ului acest identificator poate include numele unei maini gazd, un numr de port, numele unui fiier sau al unui director etc. (jdbc:odbc:testdb, jdbc:oracle:thin).La primirea unui JDBC URL, DriverManager va parcurge lista driverelor nregistrate n memorie, pna cnd unul dintre ele va recunoate URL respectiv. Dac nu exist nici unul potrivit, atunci va fi lansat o excepie de tipul SQLException, cu mesajul no suitable driver. 2.Trimiterea de secvene SQL. Metoda folosit pentru realizarea unei conexiuni este getConnection din clasa DriverManager i poate avea mai multe forme: - Connection c = DriverManager.getConnection(url); - Connection c = DriverManager.getConnection(url, username, password); - Connection c = DriverManager.getConnection(url, dbproperies); O conexiune va fi folosita pentru: crearea de secvene SQL ce vor fi folosite pentru interogarea sau actualizarea bazei, aflarea unor informaii legate de baza de date (meta-date) Clasa Connection asigur suport pentru controlul tranzaciilor din memoria intern ctre baza de date prin metodele commit, rollback, setAutoCommit . O dat fcut conectarea cu DriverManager.getConection(), se poate folosi obiectul Connection rezultat pentru a se crea un obiect de tip Statements, cu ajutorul cruia putem trimite secvente SQL ctre baza de date Exemplu: ResultSet r = s.executeQuery("SELECT * FROM tabela1 ORDER BY atr1"); 3.Obinerea i prelucrarea rezultatelor se face cu ajutorul a dou interfee: ResultSet i ResultSetMetaData Exemplu de utilizare JDBC. import java.sql.*; import java.io.*; public class TestJDBC { public static void main (String[] args) { String dbUrl = "jdbc:odbc:test"; String user = "dba"; String password = "sql"; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e) { 28

29 Prof.univ.dr. Manole VELICANU e.printStackTrace(); System.out.println("Eroare incarcare driver!\n" + e); } try{ Connection password); Statement s= c.createStatement(); ResultSet r = s.executeQuery( " SELECT cod, nume FROM localitati"+ " ORDER BY nume"); while (r.next()) { System.out.println ( r.getString ("cod") + "," + r.getString ("nume") ); } s.close(); } catch(SQLException e) { e.printStackTrace(); } } } Avantajele oferite de produsul JDBC: - asigur independena SGBD fa de codul surs (de exemplu scris n SQL); - datele obinute pot fi accesate nu numai din SGBD-ul care le-a creat ci i din alte sisteme prin interfee de translatare tip API (Application Programming Interface). c=DriverManager.getConnection(dbUrl, user,

29

30 Prof.univ.dr. Manole VELICANU

Java Beans
Produsul Java Beans a fost construit pentru a permite realizarea unor componente software independente, din care utilizatorii s poat asambla apoi aplicaii complexe. Componentele Java Beans pot fi utilizate de dezvoltatori fie pentru a le asambla, fie folosind tehnici de programare tradiionale, fie folosind interfeele grafice oferite de generatoarele din SGBD. Utilizarea mai multor astfel de componente ntr-o concepie unitar a condus spre arhitectura EJB (Enterprise Java Beans).

Enterprise Java Beans (EJB)


Prezentare EJB este o arhitectur pentru dezvoltarea aplicaiilor distribuite, tranzacionale i bazate pe componente. Aplicaiile EJB pot fi dezvoltate complet n Java, prin obiecte tip container. Specificaiile EJB detaliaz nu numai formatul unei componente ci i un set de servicii ce trebuie furnizate de container, reprezentnd totodat o metodologie pentru construirea aplicaiilor distribuite. Dezvoltatorul (componentei sau aplicaiei client) nu trebuie s se preocupe de detalii, cum ar fi: suportul pentru tranzacii, securitatea, accesul la distan, toate acestea fiind servicii furnizate de serverul EJB i de container. Dezvoltarea componentelor EJB cuprinde cinci activiti: - dezvoltare component = scrierea codului pentru o component implic o experien de programare n Java, SQl, JDBC sau SQLJ; - implementare component = instalarea i publicarea componentei i scrierea fiierului descriptor, care specific proprietile fiecrei componente; - furnizare servicii server = implementeaz cadrul n care ruleaz containerul componentei (exemplu, Oracle Server este un cadru care suport containere EJB); - furnizare container = implementeaz servicii care suport EJB la momentul execuiei; - dezvoltare aplicaie client = scrierea codului surs care va apela metode ale componentelor de pe server. Sunt patru pri din care este compus o component EJB complet: interfaa local specific interfaa unei clase instaniat de container (exemplu, n Oracle modul de instaniere este indicat prin metodele create()); interfaa extern specific metodele care sunt implementate n component i care se refer la regulile (logica) afacerii. Componenta va implementa i servicii adiionale, care vor fi folosite de container; implementarea componentei conine codul Java care se refer la interfaa extern i metodele specificate pentru container; descriptorul de implementare specific atributele componentei pentru implementarea i ncrcarea n baza de date.

30

31 Prof.univ.dr. Manole VELICANU Aplicaia nu acceseaz componentele n mod direct. Containerul va genera pe server un obiect numit EJBObject. Acesta primete mesajele de la client, iar containerul i poate intercala propriile operaii, nainte de a trimite mesajele ctre component. Entity Beans (EB) Obiectul EB reprezint date persistente n BD, precum i metode care opereaz asupra acestor date. n contextul BDR exist cte o instaniere de EB pentru fiecare nregistrare dintr-o tabel. O cheie primar unic leag fiecare nregistrare de EB. Crearea unui obiect EB se face prin apelul metodei create() cu parametru de cheie unic. Ciclul de via pentru o component EB nu este limitat la ciclul de via al mainii virtuale pe cae se execut. Dac dintr-un anumit motiv maina virtual nu mai funcioneaz atunci componenta i referina acesteia ctre clieni nu sunt terse. Un client se poate reconecta la ceeai component folosind referina alocat anterior i cheia primar. O component i poate gestiona persistena singur (bean managed persistance) sau poate lsa containerul s fac acest lucru (container managed persistence). EB sunt obiecte persistente. Ele pot fi construite n memoria intern i tiu apoi s se menin singure ca pri fizice, stocabile drept cmpuri (exemplu conturile unei bnci) ntr-o BD. EB pot fi comparate cu obiectele serializabile din Java. Acestea pot fi grupate i salvate singure, n mai multe moduri: serializare, mapare, obiecte n BD. Nu exist specificare EJB care s impun un anumit mecanism de existen. EB sunt complet diferite de session beans. Acestea sunt modele de procese. EB conin datele i nu efectueaz sarcini complexe, ci sunt obiecte persistente car se asociaz clientului. n general, EB sunt folosite pentru a modela datele iar session beans pentru a modela procesele. Dac sunt bine definite atunci EB pot fi reutilizate oricnd n cadrul proceselor.

31

32 Prof.univ.dr. Manole VELICANU

Business Componente for Java (BC4J)


Componentele tip BC4J sunt module Java prefabricate care pot fi utilizate ntr-o aplicaie multi-strat pentru a realiza: - o interfa utilizator pe partea de client scris n Java, Java Script i/sau html; - una sau mai multe componente pe stratul de mijloc care se refer la "logica afacerii" i la obiectele de tip "afacere"; - tabelele din baza de date ce conin datele necesare aplicaiei.

Fig. 1 Exemplu de configuraie multi-nivel Aceste componente compun un mediu de lucru (framework) i permit: - reutilizarea structurii logice prin viziuni (n SQL) proprii ale aplicaiei asupra datelor; - accesul i schimbarea datelor din viziuni prin intermediul unor produse Java (servlets, JSP, clieni Java); - adaptarea funcionalitii aplicaiei n straturi, fr a fi necesare schimbri ale aplicaiei deja livrate; - suport pentru implementarea mesajelor xml; - distribuia rapid a componentelor pentru afaceri, sub form de biblioteci ncrcabile n baza de date; - actualizarea tabelelor vizuale (viziunilor) cu produse Java (Servlet, JSP etc.); - reutilizarea componentelor care au fost create deja, n aceeai aplicaie sau n alta; - gestiunea tranzaciilor este inclus automat n modulele BC4J astfel nct proiectantul nu trebuie s scrie rutine de acces la date. Caracterizarea tehnologiei BC4J. o Furnizeaz componente reutilizabile. Dup ce o component a fost creat, ea poate fi reutilizat att n cadrul aceleiai aplicaii ct i n aplicaii diferite. o BC4J are incluse funcii de gestiune a tranzaciilor la nivelul bazei de date, astfel nct programatorul nu trebuie s scrie rutine de acces la date. o Folosete viziuni bazate pe fraze SQL. Aceastea ofer dezvoltatorului posibilitatea de a-i defini propriile viziuni n funcie de necesitile aplicaiei.

32

33 Prof.univ.dr. Manole VELICANU o O aplicaie BC4J este compusa dintr-un numr de componente. Fiecare component creat este reprezentat printr-un fiier xml i prin unul sau mai multe fiiere Java. Fiierul xml stocheaz metadate (informaii descriptive despre setrile i trsturile aplicaiei), n timp ce obiectele Java stocheaz codul obiectelor care implementeaz comportamentul aplicaiei. Tipurile de componente, care au propriul rol ntr-o aplicaie sunt: obiectele entitate, asocierile, obiectele viziune, modulele aplicaie, domeniile. - Obiectele entitate sunt primele componente create cnd se construiete o aplicaie cu BC4J. Fiecare obiect entitate reprezint o entitate a aplicaiei. De exemplu, pentru un sistem de comenzi on-line pot fi necesare entitile "comanda" i "client". Fiecare obiect entitate se mapeaz pe o sursa de date, de regul o tabel a bazei de date. Se poate spune c obiectele entitate ascund datele tabelelor. Se creaz cte un atribut n obiectul entitate pentru fiecare coloana a tabelei (fiecare atribut poate avea acelai nume cu cel al coloanei). Atributele definite n cadrul entitii reflect proprietile coloanei corespunztoare, incluznd tipul datelor i restriciile coloanei. - Asocierile reprezint acea component BC4J care definete legturi de tip printe-copil ntre dou obiecte entitate. - Obiectele viziune sunt clase ce permit definirea i lucrul cu un set de nregistrri, adesea ntro interfe utilizator. De exemplu, o aplicaie ar putea conine o form pentru a vizualiza i actualiza comenzile prioritare. Pentru aceasta, poate fi creat un obiect viziune "ComandaPrioritara" pe care s se bazeze forma. Fiecare obiect viziune conine o cerere SQL i e legat de unul sau mai multe obiecte entitate. Astfel, viziunea "ComandaPrioritara" poate prelua date din entitile "Clieni" i "Comenzi". Atributele unui obiect viziune pot fi de dou tipuri: bazate pe atributele entitilor i bazate pe atribute calculate. ntre doua viziuni pot fi stabilite legturi printe-copil cu ajutorul unor componente de tip asociere-viziune. Pot fi definite viziuni multiple pentru un obiect entitate, iar un obiect viziune poate selecta date din mai multe obiecte entitate. Datele sunt ascunse la nivelul obiectului entitate i toate obiectele viziune instaniate n aceeai tranzacie partajeaz aceste date. Astfel, schimbrile fcute ntr-o viziune sunt vizibile n celelalte viziuni n aceeai tranzacie. - Modulele aplicaie includ modelul de date precum i codul scris pentru a implementa soluia. Pentru a crea modelul de date, modulul aplicaie conine instane ale obiectelor viziune i legtura ntre viziuni. Pot fi adugate noi metode la un modul aplicaie i, n plus, modulele pot fi imbricate. - Domeniile de validare sunt folosite n cazul unor validri complexe (de exemplu n cazul verificrii validitii unei adrese URL (Uniform Resource Locator), a unei adrese de e-mail, a formatului unui numr de telefon etc. Domeniile sunt componente de afaceri separate, nefiind legate de o anumit entiate sau atribut. . Avantajele utilizrii tehnologiei BC4j sunt: - reducerea costurilor de dezvoltare a aplicaiei cu BD prin construcia rapid i posibilitatea reutilizrii componentelor pentru afaceri; - securitatea datelor ridicat prin utilizarea viziunilor; - reducerea timpului de realizare al aplicaiei prin folosirea componentelor prefabricate; - reutilizarea datelor i programelor att n cadrul aceleeai aplicaii ct i n alte aplicaii.

Java Enterprise Edition (JEE)


33

34 Prof.univ.dr. Manole VELICANU JEE este un mediu de dezvoltare care furnizeaz o platform de lucru bazat pe componente i presupune realizarea de aplicaii multistrat. Astfel, aplicaia poate fi segmentat pentru a rula pe mai multe dispozitive, aceste dispozitive fiind alese n funcie de posibilitatea aplicaiei de a realiza o anumit sarcin. Obiectivele JEE: - flexibilitatea ridicat prin introducerea profilului Web; - extensibilitatea prin integrarea cu produse OpenSource; - productivitatea ridicat pentru dezvoltarea aplicaiilor; Evoluia: J2EE (2000) JEE5 (2006) JEE6 (2009) JEE7 (2012 va rula n mediul Cloud Computing). Nouti JEE6: multe interfee tip API noi, profil Web, componente vechi actualizate (EJB, Servlets, JSP etc.), componente noi (CDI Context and Dependency Injection, JAX Java API for XML, Managed Beans etc), dispar multe fiiere de configurare simplitate. JEE presupune lucrul prin componente de tip container. Containerele sunt module care la momentul rulrii furnizeaz anumite servicii. De exemplu, un container JEE Web trebuie s furnizeze, n momentul rulrii aplicaiei, suport pentru manevrarea cererilor clienilor precum i s returneze rezultate ctre clieni. Mediul JEE este structurat pe urmtoarele 3 niveluri (staturi):

Nivelul client - Aplicaiile de la nivelul client pot rula pe calculatoare, telefoane mobile sau dispozitive wireless. Aceste aplicaii lanseaz o cerere ctre server la iniiativa utilizatorului i apoi i transmit utilizatorului rezultatele obinute. Cererea poate fi trimis oricrui strat JEE, inclusiv unui strat Web sau afacere. Nivelul client poate fi: module Java, modul applet, un client html etc. Nivelul web (prezentare) este, n general, responsabil cu livrarea coninutului dinamic ctre/dinspre cererea clientului. n cele mai multe cazuri acest lucru este realizat de Servlets i JavaServerPages. Manevrarea coninutului dinamic este, de asemenea, suportat i de JavaBeans. Rolul nivelului web este de a evita accesul direct al utilizatorilor la date i astfel permite crearea unor aplicaii mult mai solide i mai uor de ntreinut. Nivelul afacere - furnizeaz containere care gzduiesc obiecte ce administreaz "logica afacerii". Acest nivel conine componente Enterprise Java Beans (EJB). EJB reprezint tehnologia ce se folosete pe partea de server n modelul multinivel JEE. "Componentele afacerii" dezvoltate n acest nivel sunt independente de celelalte straturi. Aceasta le face mai 34

35 Prof.univ.dr. Manole VELICANU sigure. Componentele EJB conin reguli de afaceri. Acestea pot fi schimbate fr a afecta nivelul client sau nivelul prezentare. Arhitectura JEE cuprinde urmtoarele componente: Container pentru aplicaia client: gestioneaz execuia componentelor client, furnizeaz servicii folosite pentru a se conecta la containerele altor obiecte. Aplicaiile client i containerul ruleaz pe maina client. Server JEE : este componenta ce ruleaz la momentul execuiei, furnizeaz servicii pentru conectarea la containere a altor obiecte, furnizeaz containere EJB i containere web (pentru gestiunea execuiei servlet-urilor i a paginilor JSP). Concluzie. n aplicaiile tradiionale, programatorul trebuie s scrie cod pentru gestiunea tranzaciilor, a resurselor, a firelor de execuie etc. Acest mod de abordare este scump i necesit timp. Arhitectura JEE furnizeaz aceste servicii i multe altele la fiecare nivel al mediului multistrat.

SQL Java (SQLJ)


SQLJ permite programatorilor s includ comenzi SQL n codul surs Java, adic ntr-un program Java se scriu comenzi SQL. Oracle suport specificaiile standardului ANSI de SQL, care acoper doar operaiile statice SQL, adic acelea care sunt redefinite i nu se schimb la momentul execuiei. Oracle SQLJ ofer ns i extensii pentru suportul operaiilor SQL dinamice. Componentele SQLJ SQLJ este alctuit dintr-un translator i din componenta executabil (run-time). Translatorul este scris n ntregime n Java i suport comenzile SQL i instruciunile Java. Comenzile SQL, att cele de declarare ct i cele executabile sunt specificate n program (presurs) prin cuvntul rezervat #sql (exemplu: #sql {INSERT INTO ang(nume, sal) VALUES (Anda, 800)) i sunt intercalate printre instruciunile Java. Translatorul produce un fiier tip .java (programul surs) i unul sau mai multe profile SQLJ cu informaii despre comenzile SQL. Dup aceea, el apeleaz compilatorul de Java, care produce un fiier tip .class (programul obiect). Translatorul este similar altor precompilatoare Oracle (C, Pascal, Cobol etc.) i permite: verificarea sintaxei comenzilor i instruciunilor, verificarea informaiilor din dicionarul BD verificarea compatibilitii ntre tipurile date din SQL i Java, nlocuirea comenzilor SQL cu apeluri ctre componenta executabil (run-time). Componenta executabil (run-time) primete apelurile de la translator i execut comenzile SQL aferente. n SQLJ standard execuia se face prin intermediul driverului JDBC (este i cazul Oracle). Cnd se ruleaz o aplicaie SQLJ, componenta executabil este apelat pentru a efectua operaiile specificate prin comenzile SQL. Profilele SQLJ O component suplimentar a produsului SQLJ este Customizer, care adapteaz profilel SQLJ pentru un SGBD specific. 35

36 Prof.univ.dr. Manole VELICANU

Pentru modul standard de generare a codului SQLJ, profilele sunt resurse sau clase Java generate de translator, cu detalii despre comenzile SQL incluse n codul presurs. Un profil este format dintr-o colecie de intrri, fiecare intrare fiind descrierea detaliat a unei comenzi SQL. Translatorul creaz profile i le salveaz sub form de resurse binare sau de clase, n funcie de setri. SQLJ genereaz un profil pentru fiecare conexiune la BD din aplicaie, fiecare conexiune corespunznd unui set specific de entiti SQL n baza de date. Standardul SQLJ impune formatul i coninutul profilelor. Personalizarea profilelor permite dezvoltatorilor s adauge informaii suplimentare la profile, n funci de SGBD ales. Profilele SQLJ au implicit extensia .ser , extensie folosit pentru obiectele serializabile. Un profil nu este creat dac n codul presurs nu exist comenzi executabile.

36

37 Prof.univ.dr. Manole VELICANU

2.4.

Tehnologia Web

Bazele tehnologiei Web


Dei iniial a avut un caracter academic, reeaua Internet a devenit n scurt timp de la lansare un mediu deosebit de favorabil pentru afaceri. Acest lucru este posibil datorit dezvoltrii rapide a reelei globale de calculatoare, constituind nu numai o pia practic fr limite, dar oferind resurse imense de informaie. Activitile comerciale care pot fi derulate on-line sunt tot mai multe, mediul virtual Web crend noi posibiliti pentru acestea, iar metodele de lucru sunt tot mai diversificate. Tehnologia Web, prin caracteristica sa de mediu de lucru global, permite ca orice firm s poat ajunge mult mai uor la audiena int i ofer posibilitatea unei legturi directe vnztor consumator, eliminnd intermediarii. Pe Internet pot fi derulate afaceri de mare sau de mic anvergur, afaceri ale unor firme puternice sau a unor persoane fizice care i opereaz afacerea de acas. Toate aceste lucruri pot fi realizate doar dac n spate exist o baz de date care ofer toate informaiile necesare n timp util. Elementele utilizate n cadrul tehnologiei Web pentru lucrul cu pagini dinamice n aplicaii sunt date de urmtorul flux de activiti (primele dou sunt pentru partea de prezentare a aplicaiei interfaa aplicaiei), celelalte dou pentru partea de prelucrare logica aplicaiei: - utilizatorul acceseaz, de la un nod al reelei, un navigator (browser) Web i formuleaz cereri de regsire; - prin intermediul acestuia se apeleaz la serviciile unui Server Web; - aceste servicii sunt oferite prin module de program rezidente pe Server Web i realizate prin diferite tehnologii (module CGI, produse din platforma Java servlets, JSP etc.); - modulele de program rezidente sunt utilizate pentru accesul la baza de date i pentru prelucrri asupra datelor, obinndu-se rezultate. Prin intermediul acelorai elemente fluxul se deruleaz i n sens invers, rezultatele trecnd prin aceleai componente ajungnd n final la utilizatorul care a formulat cererea de regsire.

Pentru fluxul de activiti de mai sus, tehnologia Web presupune utilizarea mai multor produse software. Dintre acestea, cele mai importante pentru proiectul nostru vor fi prezentate n continuare. Module rezidente pe Server Web Calea direct, i prima ca apariie istoric, ctre programarea Web o reprezint scripturile CGI - Common Gateway Interface. Pentru a putea scrie astfel de module de program sunt necesare cteva cunotine de baz privind protocolul HTTP si modul n care serverul Web 37

38 Prof.univ.dr. Manole VELICANU ruleaz scripturi CGI. Aceste programe care fac ca mediul Web sa fie dinamic sunt adesea numite "scripturi CGI" pentru c folosesc o interfa standard - CGI, care este suportat de toate serverele Web. CGI definete un mediu n care orice proces este rulat de ctre serverul de Web. Un proces rulat de server poate fi scris n orice limbaj de programare. Interfaa CGI redirecteaz datele de intrare ctre un proces rulat de server i intercepteaz datele de ieire ale acestuia. Alte tipuri de module rezidente pe server Web : servlets, JSP etc. Protocolul HTTP Protocolul HTTP - HyperText Transfer Protocol este metoda fundamental standardizat internaional - de comunicaie prin Web. Toate sistemele care ruleaz pe Internet recunosc acest protocol, inclusiv Oracle 11g. Sarcina unui server Web este s rspund la o cerere HTTP primit de la client. Dac n urma cererii se acceseaz un fiier care poate conine cod HTML sau date multimedia - atunci serverul va localiza fiierul i l va trimite ctre client prin intermediul unui navigator (browser) Web. Navigatoare Web n prezent, exist numeroase navigatoare (browsers) Web cu utilizare larg: Microsoft Internet Explorer, Netscape Navigator, Opera etc. Un browser este un produs program care ruleaz pagini Web i realizeaz navigarea pe diferite locaii de pe Internet. Acesta are rolul de a aduce o copie a unei pagini Web pe calculatorul local i de a o prezenta pe ecran pentru a fi vizualizat de utilizator. Cteva caracteristici ale unui browser Web sunt: stabilirea unor repere pentru anumite site Web favorite; ofer posibilitatea prezentrii mai multor ferestre de navigare; ofer cadre sau vederi multiple n interiorul unei ferestre; permite interogri cereri de regsire multiple ctre servere Web; permite utilizatorului s configureze anumii parametri de lucru care privesc anumite caracteristici de afiare; asigur un anumit nivel de securitate a transmiterii datelor; asist utilizatorul pentru noile tipuri de date multimedia, ce pot fi configurate de utilizator; ofer suport pentru limbaje de script. Servere Web Un Server Web este un sistem software specializat care este activ tot timpul, amplasat pe o main puternic, ntr-un mediu Internet i care primete cereri Web pe care le rezolv. n acest sens, serverul Web va verifica dac un anumit modul de program activat este executabil i, n caz afirmativ, l va rula, pentru a obine rezultate corespunzatoare. Serverul Web poate fi configurat i n aa fel nct o cerere ctre un fiier aflat ntr-un director anume s se execute ca un script. Acest director special este numit de obicei cgi-bin. Serverele Web au adoptat aceste "directoare speciale" din motive de securitate. Limbajele de scenarii (script) Paginile Web conin opiuni privind modul de lucru. Navigatorul afieaz o pagin Web citind nite intruciuni dintr-un cod surs de limbaj script. Primul, dar i cel mai utilizat limbaj script este HTML, dar exist i altele destul de des folosite : JavaScript, BasicScript, PHP etc. Orice pagin Web are n spate un cod surs de limbaj script. HTML - HyperText Markup Language - nu este un limbaj de programare universal, ci unul special destinat realizrii documentelor Web. Hypertextul, care apare ntr-un document Web sub forma unui text marcat luminos sau subliniat, permite utilizatorilor s realizeze legturi cu alte documente sau s se deplaseze oriunde n cadrul aceluiai document. Navigatorul utilizeaz un URL asociat cu o hiperlegtur pentru a localiza documentul corespunztor. Documentele Web sunt legate sub forma unei pnze de pianjen World Wide Web prin intermediul legturilor. Elementele HTML specific structura logic a unui document Web i sugereaz prezentarea virtual a documentului. Prezentarea propriu-zis a documentului este lsat n sarcina aplicaiei responsabile cu redarea coninutului acestuia i anume a navigatorului. Limbajul HTML furnizeaz dou tipuri de elemente: etichete i referine de 38

39 Prof.univ.dr. Manole VELICANU entitate caracter. Etichetele permit definirea elementelor cheie, cum ar fi paragrafe, antete, legturi, liste, marcaje luminoase etc. Referinele de entitate caracter permit reprezentarea caracterelor speciale din cadrul unui document HTML pe care un browser sau alte programe client le pot interpreta n mod eronat.

Iniiere n limbajul HTML


HTML Hyper Text Marckup Language, este un limbaj de scenarii (script), standardizat internaional, destinat construirii paginilor (documentelor) Web. Acest limbaj este suportat de toate navigatoarele (browsers) de Internet (Netscape Navigator, Internet Explorer, Mozilla Firefox, Google Chrome, Opera etc.), dar i de alte sisteme software care permit construirea de site-uri (editoarele de Web etc.). HTML este primul limbaj de scenarii care a fost utilizat (primul standard n 1991), ulterior aprnd i altele (PHP, JavaScript, BasicScript etc.). De la apariie, HTML a evoluat n DHTML (dinamic) i apoi spre XML (eXtensible Marckup Language) care are standard din 1998. Toate sistemele software care lucreaz cu tehnologia ebusiness (inclusiv Oracle) accept XML. ntr-un program scris n HTML se accept secvente scrise n alte limbaje de scenarii (de exemplu, se poate scrie o secven n Java Script ntre <script language=JavaScript> si </script>. Programul surs HTML este salvat ntr-un fiier cu extensia .htm. Elemente de limbaj HTML Programul surs HTML este mprit n zone numite scenarii /seciuni. O seciune este delimitat printr-un marcator (tag) de nceput <tag> i unul de sfrit </tag>. Structura unui program HTML este: <html> - nceput de program <head> comenzi de declarare </head> <body> comenzi executabile </body> </html> - sfrit de program

Pentru scrierea pe ecran a unui text dorit, acesta apare ca atare pe o linie din program. 39

40 Prof.univ.dr. Manole VELICANU

Comentariul ntr-un program HTML: pe o linie se scriu dou caractere slash urmate de textul dorit (// text). Cteva comenzi HTML <title> - d un nume paginii Web i afieaz o legtur cu alt pagin. <img argumente> - afieaz n pagin, o imagine specificat.

<form> ... </form> - permite construirea unui videoformat (form) n pagina Web. <input argumente> - construiete diferite obiecte vizuale ntr-o form (exemplu: type=text pentru obiect tip cmp-text; type=button pentru obiect tip butoane etc.) <frameset> ... </frameset> - permite construirea unor cadre ntr-o fereastr de browser. Fiecare cadru va conine un document (de obicei HTML) care se ncarc dintr-un fiier. <frame argumente> - ncarc un document n cadrul curent. <layer> ... </layer> - definete un strat de un anumit ordin (numerotarea de la zero) pentru suprapunerea obiectelor (documentelor) pe ecran. Not. Analog exist i ilayer care se folosete dac poziia stratului depinde de modul de afiare al documentului. <font> ... </font> Exemple 1. S se construiasc o pagin Web care s aib numele vax i s conin textul text de prob precum i o fotografie tip bmp. <html> <head> <title> Pagina VAX </title> </head> Text de proba <body> <img src="d:\man\pozamea.bmp" name="p1"> </body> </html> 2. S se construiasc o pagin Web care s conin: - o legtur; 40 - specificarea caracteristicilor pentru caracterele ce vor fi afiate.

41 Prof.univ.dr. Manole VELICANU <html> // Definire si declarare <head> // legatura si denumirea <title> Pagina speciala </head> //Executabil <body> <center> <img src=poza1.gif name=p1 width=200 height=100> </center> //forma <form name=forma1> Nume: <input type=text name=nume1 value=> <br> <input type=button name=buton1 value=apasa onClick=alert(Yo)> </form> //straturi <layer name=pic z-index=0 left=200 top=100> <img src=poza1.gif width=160 height=120> </layer> <layer name=txt z-index=1 left=200 top=100> <font size=+4> <i>Exemplu</i></font> </layer> </html> o imagine; o form cu dou elemente: un cmp-text, un buton tip push un text afiat, dou straturi: pe primul o imagine, pe al doilea un text.

2.5.

Tehnologia Grid Computing

2.5.1. Intranet
Definiii Utilizarea tehnologiilor Internet pentru legarea ntr-un tot unitar a resurselor informaionale ale unei organizaii: texte, baze de date, documente etc. 41

42 Prof.univ.dr. Manole VELICANU

Implementarea tehnologiilor Internet la nivelul unei organizaii (ntreprinderi, instutuii). Internet privat, care reprezint reeaua de transmisii de date privat a unei companii, deosebindu-se conceptual de Extranet, care este privit ca partea din reeaua de transmisii de date comun cu partenerii agreai. O reea de calculatoare intern unei organizaii, deci protejat de lumea exterioar, adic o insul autonom cu administrare intern, dar supus protocoalelor de comunicare din Internet. Componente 1. Hardware: servere Intranet (microcalculatoare, minicalculatoare), linii de comunicaie (cabluri coaxiale, fibr optic, radio), arhitectur de reea LAN (Ethernet etc.), echipamente de rutare (hub, switch etc.). 2. Software: sisteme de operare (Windows, OS2, Mac etc.), software de reea (Unix, Windows xxServer, Novell etc.), protocoale de reea (TCP/IP, DECnet etc), software specializat (SGBD, navigatoare, Platforma Java, CASE etc.). Caracteristici Intranet este un concept flexibil = nu are o reet de implementare prestabilit, ce trebuie respectat pas cu pas, ci poate fi modelat n funcie de nevoile organizaiei. Intranet este realizat pe baza protocoalelor Internet = respectnd standardele din tehnologia Internet i de aceea poate fi rapid actualizat (este deschis). Intranet reprezint soluia ideal pentru organizaiile cu un numr de utilizatori mare = se justific soluia Intranet dac sunt peste 1000 de utilizatori, iar localizarea lor distribut pe o suprafa geografic mare. La baza tehnologiei Intranet este serverul Web = configurarea serverului Web se face pe o reea local, iar funciile sale pot fi extinse cu alte faciliti: accesul la baze de date, apelul unor aplicaii etc. Intranet nu implic n mod obligatoriu conectarea la Internet , dar aceast posibilitate ofer o mulime de avantaje. Servicii Rolul oricrui Intranet este de a oferi anumite servicii utilizatorilor. 1. Serviciile de transport permit transferul informaiei de la un punct la altul n Intranet: transferul de date ntr-o reea local, respectnd protocoalelor de comunicaie; accesul de la distan la date i la produse software, care aparin Si; accesul la Internet pentru comunicarea cu exteriorul; 42

43 Prof.univ.dr. Manole VELICANU interconexiunea ntre reelele LAN i WAN.

2. Serviciile de administrare a reelei sunt operaionale sunt operaionale n numr de trei: - supervizarea unui Intranet permite supravegherea tuturor componentelor hardware i software ale ansamblului, avnd la baz standardul SNMP Simple Network Management Protocol din Internet; - administrarea Intranet este realizat de persoane specializate care au la dispoziie instrumente software specializate. Acestea asigur administratorilor de reea o viziune unitar asupra ntregii reele a organizaiei i le permite gestionarea eficient a resurselor de calcul; - serverele de filtrare (cache / proxy) au fost folosite mai nti n Internet i apoi n Intranet i au rolul de a reduce fluxul informaional (traficul) prin sistemul de comunicaie. Aceste servere dein mecanisme ce le permite o selectare a cererilor i a rspunsurilor. 3. Serviciile de securitate au rolul de a proteja Intranetul i ele se refer la: - autentificarea - este utilizat pentru a verifica dac utilizatorul are drept de acces. Sistemele de autentificare dein att mecanisme simple (parole) ct i mecanisme mai complexe (ActivCard, SecureID etc.); - criptarea are drept scop garantarea confidenialitii fluxului de informaii din Intranet; - filtrarea se realizeaz prin mecanisme de tip bariere (firewall), care autorizeaz anumite tipuri de pachete (servicii, adrese, coninut) conform setului de reguli stabilite prin politica de securitate a reelei. 4. Serviciile de partajare a datelor din Intanet sunt destinate stocrii i interogrii datelor pe care le memoreaz: - servicii de stocare i acces sunt asigurate de: serverele de fiiere (fiiere clasice ale S.O. utilizat, de exemplu protocoalele FTP, NFS din Internet), serverele de date (asigurate n special de SGBD relaionale i este necesar o interfa ntre BD i serverul Web pentru navigarea cu un browser), serverele de documente (sunt n general serverele Web i permit utilizatorului s caute i s consulte documentele produse n organizaie); - servicii de producere i publicare a informaiilor (SGBD, clieni etc.). 5. Serviciile de comunicare ntre diferitele persoane din organizaie sunt importante pentru succesul afacerii: - pota electronic are la baz mecanismele din Internet: SMTP Simple Mail Transfer Protocol, POP3 Post Office Protocol, Imap Interactive Mail Access Protocol; - circulaia documentelor (workflow) este o extensie a potei electronice i permite circulaia unui document dup o schem prestabilit; - videoconferinele pentru care se folosesc produse software specializate; - lucrul n comun n timp partajat este o extensie a circulaiei documentelor i permite mai multor persoane, situate la distan unele de altele, s vizualizeze (Net Meeting) sau s prelucreze mpreun acelai document; - forumul permite utilizatorilor de Intranet s schimbe idei, mesaje i poate fi n timp real (Internet Relay Chat IRC) sau n timp diferit.

43

44 Prof.univ.dr. Manole VELICANU 6. Serviciile de statistici (anuar) sunt necesare pentru c n Intranet fiecare utilizator apeleaz la servicii diferite, pe calculatoare diferite. Tipurile de statistici sunt de: utilizatori, servere, servicii, aplicaii, date etc. 7. Serviciile pentru dezvoltarea aplicaiilor se refer la tot felul de interfee i instrumente (limbaje de programare, generatoare, medii de dezvoltare etc.) care sunt adaptate mediului reea i sunt utilizate n ateliere de software pentru aplicaii Intranet. 8. Serviciile de acces la informaii i la aplicaiile Intranet sunt incluse n navigatoare (Internet Explorer, Netscape Navigator, Opera etc.). Organizarea Intranet Sunt trei modele de organizare a Intranetului: - modelul centralizat: toate resursele de calcul se gsesc ntr-o singur locaie; - modelul descentralizat: resursele de calcul sunt rspndite n organizaie i sunt dependente de departamentul n care se gsesc calculatoarele; - modelul mixt: exist un centru n care se stabilesc politici generale, iar departamentele lucreaz n concordan cu aceste politici (cel mai utilizat model). Factorii de care depinde modul de alegere a unui model de Intranet sunt: controlul resurselor, responsabilitatea resurselor, mrimea organizaiei, numrul resurselor. Proiectarea Intranet Paii (fazele) care se parcurg pentru realizarea unui Intranet: 1. Obinerea acordului la nivelul organizaiei, att din partea conducerii ct i din partea nivelurilor de execuie pentru: alocarea resurselor necesare, oganizarea proiectului, sprijinul pe toate planurile. 2. Planificarea strategiei de realizare a Intranetului presupune: identificarea structurii organizaionale existente, descrierea nivelului tehnic existent n organizaie, definirea modelului de comunicaie a informaiilor n organizaie, avantajele i dezavantajele, identificarea sistemelor existente n organizaie. 3. Stabilirea obiectivelor proiectului nseamn precizarea a ceea ce trebuie s fac Intranetul. n acest sens, se colecteaz informaiile de la angajai i de la informaticieni i se elaboreaz o list a cerinelor i specificaiilor de funcionare. 4. Recrutarea echipei de dezvoltare a Intranetului trebuie s vizeze reprezentani ai diferitelor departamente ale organizaiei: specialiti n informatic (reele, Si, SBD, programare, grafic, administrare), resurse umane, gestiune documente, organizare, serviciul vnzri etc. 5. Dezvoltarea proiectului de Intranet presupune gruparea coninutului pe subiecte i categorii principale, dup care se vor aduga alte informaii corelate dup departamente. Categoriile de informaii comune paginilor de Intranet sunt: nouti, tiri, prezentarea organizaiei, contracte, asisten tehnic, resusrse, vnzri, clieni, contact (telefon, e-mail etc.). Dup gruparea informaiilor, acestea sunt structurate pe niveluri conform cerunelor utilizator i ntr-o form agreat (liniar, ierarhic, gril etc.).

44

45 Prof.univ.dr. Manole VELICANU 6. Definirea interfeei cu utilizatorul trebuie s in cont de forma i coninutul acesteia: prietenos, lizibil, uor de utilizat, relevant, precis.

Accesarea informaiilor din Intranet Documentele de pe serverul Web pot fi accesate prin intermediul produselor de tip navigator (browser Internet Explorer, Netscape Navigator, Opera etc.). Pe lng afiarea documentelor, el poate solicita n plus imagini, sunet, video i aplicaii de la server, dac acestea nu se gsesc n document. Caracteristica ce a condus la acceptarea acestei tehnologii, iniial n Internet i apoi n Intranet, este aceea c permite ca un document s fie alipit (legat) la alt document. Acest lucru presupune c un anumit utilizator nu trebuie s cunoasc localizarea unui anumit document sau sursele de informaii, accesul fiind permis doar printr-o simpl selecie (click mouse). Serverele HTTP sunt disponibile pentru toate tipurile de platforme hardware i software. Practic, un server Web trece informaia ctre o execuie exterioar. Acesta este modul n care se pot accesa aplicaii exterioare, de exemplu baze de date. O astfel de procedur este larg rspndit i permite relativ simplu s integreze un server Web cu orice aplicaie cu baze de date. De aceea, muli furnizori de aplicaii cu baze de date ncorporeaz aceast funcionalitate n produsele lor (SGBD, aplicaii ). Securitatea Intranet Securitatea n Intranet presupune: securitatea serverului Web, securitatea serviciilor TCP/IP, securitatea navigatoarelor client. Metodele de securitate aplicate n Intranet se refer la autentificare: prin parol, prin adresa IP de reea, combinat. Programarea n Intranet Intranetul presupune flexibilitate software, adic ofer posibilitatea de ajustare i de modificare n funcie de problema abordat. Acest lucru este realizabil prin completarea sistemelor software cu secvene scrise n limbaje de scenarii (script), conform cerinelor utilizator. Principalul serviciu care necesit personalizare este site-ul Web , celelalte servicii (pot electronic, transfer de fiiere etc.) beneficiind de un software care acoper toate problemele care pot aprea. Serviciul de Web presupune dou aspecte: interfaa cu utilizatorul, interfaa cu bazele de date. Interfaa cu utilizatorul presupune posibilitatea ca acesta s completeze formulare tip sau s selecteze opiuni n timpul navigrii. Lund n considerare criteriul locului unde rezid programul script, exist dou variante de implementare: 45

46 Prof.univ.dr. Manole VELICANU pe server SSS (Server Side Script) (servlets): JavaScript, JSP, ASP, PHP. Serverul execut un anumit program script de la care preia ieirile i le trimite clientului; - pe client CSS (Client Side Script) (applets): JavaScript, VBScript, applet Java, controale ActiveX. Pentru utilizarea acestor tehnologii exist navigatoare specializate: Internet Explorer (permite lucrul cu VBScript, controale ActiveX, applet Java, JScript (subset JavaScript)), Netscape Navigator (permite lucrul cu JavaScript, applet Java). Interfaa cu bazele de date presupune ca serviciul de Web s in cont c indiferent de mrimea organizaiei, aceasta folosete una sau mai multe BD. Acest lucru a dus la apariia unor motoare de BD (software optimizat care tie s execute anumite comenzi asupra unui tip de BD) i a unui standard privind limbajul de interogare a BDR (SQL). Aceste motoare de cutare respect o serie de standarde, de exemplu ODBC, JDBC etc., ceea ce reprezint un aspect important pentru programatori, deoarece acesta nu mai e obligat s nvee s lucreze cu fiecare dintre moroarele de baze de date utilizate n cadrul organizaiei. n cadrul interfeei cu BD administratorul BD pune la punct modelul conceptual al BD, ajut la implementarea acestuia i asigur apoi protecia datelor. Munca lui se complic dac trebuie s in cont de specificul interfeei Web i de aspectul problemelor de securitate suplimentare care apar n acest caz. Din punct de vedere al programatorilor, acetia consider c trebuie s se concentreze doar pe soluiile de programare SSS (Server Side Script partea de server), n timp ce partea de client este mai uoar. Acest lucru este doar aparent, deoarece n realitate accesul la o BD mare necesit multe programe script pentru mprirea sarcinilor i apare astfel necesitatea lucrului n echip. Produsele informatice pe care programatorii le pot utiliza sunt diverse: limbaje de programare universale (C, Pascal, Java etc.), interfee standard (CGI, JSP, ASP etc.), produse tip bariere de acces - gateway (dbWeb, ColdFusion etc.), limbaje de script (HTML, JavaScript, PHP etc.). Avantajele Intranet comunicaiile mai rapide ntre utilizatori i ntre aplicaii; managementul de reea i de BD se realizeaz mai simplu i mai rapid; accesul la bazele de date este protejat i simplificat la nivelul organizaiei; sursa de date este integrat i gestionat n mod unic; productivitatea beneficiarilor de Intranet este crescut; se realizeaz economii bneti majore (privind circulaia informaiei, a documentelor); se realizeaz economie de timp privind documentarea i fundamentarea deciziei. -

Extranet
Conceptul de Extranet reprezint al treilea val n evoluia reelelor de calculatoare, dup Internet i Intranet, realiznd legtura ntre acestea. Noiunea a fost introdus de Jim Barksdale (la Netscape Communications) pentru a descrie produsele software care faciliteaz colaborarea ntre organizaii. Extranet reprezint utilizarea tehnologiilor Internet n vederea conectrii resurselor informaionale a mai multor organisme, ntre care exist legturi de colaborare. 46

47 Prof.univ.dr. Manole VELICANU Extranetul poate fi privit ca: - partea din Intranetul unei organizaii care este accesibil i altor organizaii; - partea comun a dou sau mai multe Intraneturi; - o conexiune de colaborare pe Internet ntre dou sau mai multe organizaii. n context de Extranet, informaia poate fi accesat doar de prile care colaboreaz sau poate fi public. Categoriile de aplicaii care se preteaz la Extranet sunt: - grupuri de comunicare private, ale unor organizaii, care au rolul de a difuza idei, experiene etc.; - grupuri de lucru ale unor organizaii care dezvolt proiecte comune; - programe de instruire i educaionale care sunt dezvoltate n mod partajat de mai multe organizaii; - cataloage cu produse accesibile doar pentru un anumit grup de clieni; - managementul proiectelor care se desfoar n comun pentru mai multe organizaii.

47

48 Prof.univ.dr. Manole VELICANU

2.5.2 Iniiere n tehnologia Grid Computing (GC)


n lume, tehnica de calcul din organizaii este insuficient folosit. Sistemele de calcul, de multe ori, sunt greu de schimbat, scump de ntreinut i de dezvoltat. Schimbrile n orice organizaie apar n permanen, nevoia de informaie este din ce n ce mai mare i din aceste motive adaptarea trebuie s se fac ct mai repede, cu un efort ct mai mic pentru a ramne competitive. Cerinele pentru performan cresc continuu, n timp ce bugetele pot rmne neschimbate i de aceea organizaiile, de multe ori, dezvolt serverele (upgrade) sai achiziioneaz altele noi mai puternice. Soluia la problemele de mai sus este un model nou de abordare, denumit Grid Computing GC (Gril de Calculatoare). Noua tehnologie are diferite alte denumiri: Oracle 11g, Adaptive Computing, Utility Computing, Organic Computing, Computing on Demand, Hosted Computing etc. Pentru utilizatori i aplicaii, n tehnologia GC nu mai conteaz: unde sunt stocate datele, unde sunt stocate aplicaiile, ce calculatoare proceseaz cererea de regsire, ce resurse sunt folosite n reea. GC reprezint utilizarea coordonat a mai multor servere mici care acioneaz ca un singur sistem foarte puternic (Gril de Calculatoare).

Istoric
GC a fost conceput ca o tehnologie informatic pentru: - crearea unui mediu de tehnic de calcul dinamic care s mpart resursele i rezultatele; - mrirea capacitii de stocare i protecia acestor date n caz de incidente; - meninerea unor costuri ct mai mici pentru exploatarea ntregului sistem. Prima aplicare tiinific a tehnologiei GC a fost n proiectul Search for extraterestrial intelligence, seti@home. n acest proiect semnalele de la telescoape, de la receptoarele radio i din alte surse care monitorizau spaiul au fost distribuite pe microcalculatoare prin Internet. Aceast reea de microcalculatoare prelucrau informaia primit cutnd semnale despre viaa extraterestr. Dup modelul Intranet, organizaiile i vor dezvolta tehnologia GC pentru resursele lor de calcul, fr s se expun Internetului. Pentru prima dat, tehnologia GC este adaptat la baze de date de firma Oracle, prin lansarea versiunii Oracle 11g. Principalele tehnologii informatice care, prin integrare, au fcut posibil apariia noii versiuni de Oracle au fost: GC, Intranet, Internet, servere multiple (Mail, aplicaii, reea, date, SGBD etc.), arhitectura NC, Inteligena Afacerii, SBD distribuite.

48

49 Prof.univ.dr. Manole VELICANU Progresul tehnologic a putut avea loc datorit tehnologiilor informatice de mai sus, datorit apariiei unor componente tot mai puternice i mai ieftine i datorit posuibilitii integrrii tehnologiilor (hardware, software, date, comunicaii).

Reeaua Grid Computing


Intr-o economie bazat pe cunoatere, cum este cea actual, avem nevoie de o reea care s alimenteze uriaa putere de calcul i nevoia de informaii n mod eficient. Aceasta este reeaua Grid Computing sau Grila de Calculatoare GC. O nou paradigm de calcul Reea GC funcioneaz prin conectarea unei mari varietai de: calculatoare, baze de date, software, utilizatori, modele etc. Conectarea acestor resurse nu este nou ea fiind deja prezent n Internet, Intranet, Extranet. ns, fa de acestea reeaua GC permite o serie de faciliti suplimentare: - se poate aloca putere de calcul dinamic de la diferitele procesoare din reea care aparin altor calculatoare dect cel la care se lucreaz. n acest fel, utilizatorii vor putea folosi din reea puterea de calcul a unui supercalculator doar atunci cnd au nevoie, fr s fie obligai s cumpere un supercalculator (computational grid); - se poate mpri o sarcina primit de un calculator cu alte calculatoare conectate n reea; - calculatorul la care se lucreaz devine o poart spre un supercalculator, iar utilizatorul va plti pentru puterea de calcul de care are nevoie, atunci cnd va avea nevoie; - se pot accesa cantitai uriae de date, fie c sunt stocate pe echipamentele periferice ale diferitelor calculatoare conectate n reea, fie c provin de la echipamente speciale de citire (data grid); - se pot rula noi tipuri de aplicaii informatice, care vor avea acces la cunotinele din reea i vor putea construi rspunsuri ad-hoc (knowledge grid); - se permite lucrul la proiecte n echip compus din membri de pe diferite continente, pentru diferite organizaii. Acest Service Grid Se creeaza astfel, n mod dinamic, o organizaie virtuala care lucreaz n laboratoare virtuale (service grid). Tehnologii i aplicaii revoluionare Reelele GC vor revoluiona informatica la fel de mult pe ct au revoluionat pota electronic i tehnologia Web comunicaiile. Primele reele GC au fost proiectate pentru Organizaia European pentru Cercetri Nucleare - laboratoarele de fizic, de unde a pornit i realizarea WWW - World Wide Web. Acum, reelele GC ptrund n practic i schimb modalitatea de structurare a afacerilor i felul n care oamenii triesc, nva sau lucreaz. Furniznd utilizatorilor putere de calcul i cantitai uriae de informaii, reelele GC vor mbunti competitivitatea afacerilor existente i vor deschide piee i servicii pn acum crezute imposibile. Impactul lor asupra calitaii vieii noastre va fi profund, permiandu-ne s urmrim i s modelm mai bine orice, de la schimbrile climaterice de pe Tera la evoluia inflaiei. Reelele GC vor permite cercettorilor i oamenilor de afaceri s mpart mai bine resursele de toate felurile i cunotinele pe care le dein. Ele sunt tehnologii importante pentru realizarea strategiei Lisabona, stabilit n anul 2000, care i propune s transforme Uniunea European n cea mai competitiv i informat economie din lume pn n anul 2010. De aceea, tehnologia GC este un obiectiv strategic n cercetarea din societatea bazat pe cunotine, fondat de UE n al aselea program cadru (FP6) pentru cercetare i dezvoltare tehnologic. 49

50 Prof.univ.dr. Manole VELICANU Domenii de aplicabilitate Reele GC au fost concepute iniial pentru rezolvarea problemelor care includeau cantitai mari de informaie i calcule intense. De aceea, primele astfel de reele au fost dezvoltate la nivel global pentru proiecte tiinifice i de cercetare, acestea necesitnd puterea de calcul a unor supercalculatoare i echipe de lucru cu o nalt pregtire tehnic, echipe rspndite n mai toate universitile lumii, centre de cercetare i companii. Impactul tehnologiei GC asupra afacerilor este deja simit iar n viitor va fi masiv. Unele sectoare de activitate cum ar fi: medicina, ingineria, divertismentul se confrunt de asemenea cu schimbri radicale, care vor fi adaptate la tehnologia GC. Avantajele Pn la reelele GC, singurele organizaii care-i puteau permite supercalculatoare erau acelea cu bugete mari i cu necesitai de tehnic de calcul semnificative, permanente. Reelele Grid schimb radical situaia: orice organizaie conectat la o astfel de reea i va putea permite utilizarea unui supercalculator virtual atunci cnd are nevoie, pltind o tax de acces. De exemplu, o echip de intervenie rapid, ar putea s se conecteze la o reea GC pentru a analiza informaii din mii de senzori montai n bazinele rurilor, n vrfurile munilor i chiar i pe orbite. Se poate astfel analiza, modela i compara aceste informaii n timp util pentru a previziona catastrofele naturale: inundaii, avalane, uragane, cutremure, erupii vulcanice. Atunci cnd apare un dezastru, echipa poate folosi reeaua GC pentru a prezice felul n care situaia s-ar extinde i pentru a optimiza alocarea resurselor. Acest lucru este posibil pentru c reeaua GC poate furniza oricnd comunicarea i puterea de procesare necesare precum i informaiile dorite la preurile pe care echipa de intervenie i le poate permite. Sectoarele de producie Reelele GC pe de o parte permit utilizatorului s acceseze resursele de care are nevoie date, aplicaii, software, hardware - iar pe de alt parte dau voie utilizatorului sa-i pun la dispoziie propriile resurse pentru ali utiliuatori. Acest lucru nseamn c utilizatorii pot lucra mai aproape unii de alii, chiar dac sunt n diferite organizaii, din diferite ri sau din diferite continente. Impactul ar putea semnificativ n sectoarele de producie europene, n care echipe din companii diferite vor putea lucra mpreun la realizarea proiectelor comune. De exemplu, pentru activitatea de proiectare a unui tip nou de masin. Chiar dac aceast activitate este condus de fabricantul de maini, ea mai include proiectani, economiti, ingineri, informaticieni, furnizori. Prile diferite ale unui proiect sunt interdependente pentru c fac parte dintr-un tot unitar care este maina. Echipe diferite trebuie s munceasc mpreun, integrnd sistematic modelele i informaiile n proiectul de ansamblu i testnd rezultatul obinut. Din punct de vedere al securitii, managerul de proiect nu poate s permit tuturor membrilor acces la ntregul proiect, deci se lucreaz n achip. Reeaua GC poate ajuta permind informaiilor i modelelor s fie integrate uor, la timp, pstrndu-se securitatea proiectului. Informaiile obinute n urma testelor de ncercare la impact pot fi vzute de fiecare furnizor, care poate folosi puterea de calcul a reelei Grid pentru a analiza performanele componentelor. Rezultatul este un proiect i nite produse, mbunataite, obinute cu un efort mai mic i mai puin costisitor. De aici rezult o nalt competitivitate, locuri de munc noi, produse de calitate superioar. Alte sectoare de activitate Avantajele tehnologiei GC nu se vor extinde practic la toate domeniile de activitate. Companii din sectoare diferite afaceri, bnci, asigurri, media, servicii - vor putea folosi mediul de lucru virtual creat prin reeaua GC pentru a-i folosi eficient propriile resurse de calcul i pentru a colabora mai eficient cu partenerii lor. Iat n continuare cteva exemple. Bibliotecile i arhivele din pres, sunt n prezent indexate semantic n baze de date uriae localizate pe ntregul glob. Cu tehnologia GC, redactorii vor putea s caute n aceste arhive, s extrag informaii i s trimit noul coninut ntr-un mod 50

51 Prof.univ.dr. Manole VELICANU rapid i flexibil. De asemenea, motenirea cultural a lumii, care este n prezent stocat n baze de date de pe ntrega planet, va fi accesibil tuturor. Comerul electronic, va putea s se organizeze i s funcioneze mai bine din punct de vedere al aprovizionrii cu produse, al relaiei privind clienii. Bncile i asigurrilor vor putea realiza analize statistice i demografice mult mai performante, care s le permit noi politici pentru a atrage ct mai muli clieni. De altfel, aa cum se tie, marketingul actual este orientat pe client i nu pe produs aa cum era pn acum. Acest lucru nseamn c orice activitate care are printre actori clientul va profita din plin de reeaua GC. Sistemele de baze de date Toate aspectele de mai sus care privesc tehnologia GC au ca rezultat, pentru utilizator, obinerea unor informaii care s-l ajute s-i fundamenteze deciziile operative sau de conducere i s-i desfoare activitile curente. Ori aceast cantitate mare de informaii nu poate fi stocat i apoi accesat corespunztor dect dac se lucreaz cu un sistem de baze de date evoluat, care s funcioneze n arhitectur GC. Din acest motiv, SBD actuale au nceput s integreze tot ce este mai nou ca tehnologii informatice, inclusiv tehnologia GC. Primul SGBD care poate lucra cu o astfel de tehnologie este Oracle versiunea 11g (litera g vine de la Grid).

Enterprise Grid Computing (EGC)


EGC nseamn procesul de punere la lucru mpreun a mai multor calculatoare existente la nivelul unei organizaii i funcionarea ca un sistem integrat. EGC presupune existena unui produs software care: - face eficient folosirea mai multor servere; - asigur stocarea modular a datelor; - permite comutarea lucrului; - permite suplimentarea capacitii de lucru la cerere. Aducnd noi servere n aceast gril de calculatoere, mai mari sau mai mici, obinem performan la un pre sczut, deoarece gestiunea resurselor de calcul se face unificat, simplu, eficient, ieftin. Tratnd orice GC ca un serviciu virtual, sistemele inteligente (business intelligence) pot optimiza utilizarea resurselor de calcul la nivelul ntregii organizaii. EGC combin dou concepte care sunt n lugtur unul cu cellalt: - implementare de tip unul din muli (one from many) = folosirea mai multor clustere (fizice) pentru a crea o singur entitate logic (exemplu pentru o baz de date). Deoarece o singur entitate logic este implementat peste mai multe calculatoare, se pot aduga noi capaciti n mod incremental (on-line) sau la cerere (on-demand), obinndu-se astfel flexibilitate; - administrare de tip muli ca unul (many as one) = administrarea mai multor calculatoare ca un grup, adic o singur entitate logic (exemplu un grup de instane a unei BD se administreaz ca o entitate logic tabela). Capabilitatea unui Server de aplicaii de a distribui sarcini unui nou server, fr a opri activitatea sa necesit un software inteligent. n acest sens, Inteligena Afacerii ca tehnologie informatic a existat n SGBD nainte de GC i a produs software inteligent. 51

52 Prof.univ.dr. Manole VELICANU n acest scop, organizaia ar trebui s aib n vedere urmtoarele aspecte: o integrarea informaiilor n centre de date, a datelor n BD, a aplicaiilor n Server de aplicaii; o standardizarea n dou variante: standard de productor (promoveaz produse proprientar), standard internaional (promoveaz interoperabilitatea open standard); o expertiza n Unix car este un SO perfect pentru o configuraie de GC.

Faciliti Grid Computing


1. Virtualizarea (virtualization) este asigurat de un serviciu de introducere n GC a fiecrei entiti logice sau fizice. Acest lucru permite componentelor GC (discuri, procesoare, BD, aplicaii etc.) s se integreze firesc fr a crea fragilitate n sistem. n afar de faptul c stabilete diferite legturi ntre componentele GC, virtualizarea permite fiecrei componente GC s reacioneze mai repede la schimbarea contextului de lucru i se adapteze repede dac unele componente au czut, fr a compromite performanele sistemului n ansamblu. 2. Furnizarea dinamic a resurselor (dynamic provisioning) nseamn distribuirea resurselor acolo unde este nevoie de ele. n contextul GC, resursele pot semnifica: cererile adresate serverului care trebuie tratate, datele care trebuie accesate i prelucrate, calculele care trebuie rezolvate. Exist un serviciu de administrare (broker service grid) care cunoate necesitile componentelor GC i resursele disponibile, le asociaz logic n mod dinamic, fcnd astfel eficient ntreg sistemul. Ulterior, el poate ajusta aceste asocieri la schimbrile contextuale. 3. Punerea n comun a resurselor (resource pooling) este necesar n GC pentru a obine o mai bun utilizare a resurselor i pentru a realiza costuri mici.Prin plasarea unor discuri sau unor servere ntr-un ansamblu comun, procesele executabile ale GC au o mare flexibilitate n optimizarea relaiei nevoi-resurse. Partajarea resurselor se realizeaz prin software. 4. Adaptarea automat a sistemelor (self adaptive systems) are ca efect automatizarea (reducerea) i simplificarea sarcinilor administratorilor. O infrastructur GC ar fi impracticabil dac fiecare nod din gril ar necesita intervenie manual n mod constant. Multe din sarcinile care erau executate de administratori acum sunt tratate de software. 5. Managementul unificat (unified management) pentru ntreinerea EGC semnific faptul c sarcinile administratorilor sunt simplificate i integrate ntr-un singur instrument care poate monitoriza, furniza i administra fiecare component din gril. Un astfel de instrument evalueaz disponibilitatea i performanele fiecrui nod, astfel nct la orice gtuire din sistem sau pentru orice component indisponibil, se emite un mesaj. n GC administratorul trateaz grupuri de componente ca pe o singur entitate logic, astfel nct sarcinile sunt definite o dat i executate de mai multe ori. Managementu unificat implementeaz dou concepte: unul din muli (mbin facilitile: virtualizare, furnizare dinamic, punerea n comun a resurselor), muli ca unul (mbin facilitile: adaptarea automat a sistemelor, management unificat).

Arhitectura GC

52

53 Prof.univ.dr. Manole VELICANU Arhitectura GC evideniaz grafic diferitele componente i legturile dintre ele. Structurarea se face pe patru niveluri (aplicaii, server de aplicaii, baze de date, echipamente) conectate prin mecanisme de interfa de servicii i monitorizare (control).

Aplicaii

Server aplicaii Interfee de servicii Baze de date Monitor

Echipamente a) Interfaa de servicii/comunicare (grid service interface). Conexiunea ntre straturile GC este dinamic, ajustndu-se la momentul execuiei, optimiznd performanele i adaptndu-se cderilor unor componente. Interfaa presupune un mecanism de comunicare ntre toate componentele GC, care cunoate sau descoper nevoile consumatorilor de resurse i rezolv aceste nevoi, asociindu-le cu furnizorii de resurse. b) Monitorul (grid control). Monitorul este un produs de management puternic care permite administratorului s supravegheze toate activitile din GC. El are un mecanism integrat care intervine atunci cnd este necesar, oriunde i oricnd n GC. c) Echipamentele (hardware). Resursele hardware (discuri, procesoare, componente de reea etc.) pot fi n mod dinamic alocate de ctre o BD conform anumitor politici i programri , folosind un mecanism orientat pe servicii (service-oriented). Nivelurile nalte ale GC, ca de exemplu BD sau Servere de aplicai, nu trebuie s se preocupe de amnunte (unde se face stocarea, unde se face conectarea etc.). Interfaa de comunicare trateaz detaliile legate de conectarea serverelor i BD cu echipamentele de care au nevoie. d) Baza de date (database). BD sunt att consumatori de resurse ct i furnizori de resurse ntr-o arhitectur GC. Pentru resursele hardware, BD sunt consumatori de resurse, iar pentru serverele de aplicaii sunt furnizoare de resurse. La nivelul BD din GC, punerea la un loc a resurselor duce la existena unei singure BD, la nivel logic, sau unui numr mic de BD, fiecare putnd consta n mai multe instane care se execut pe clustere. Sarcinile sunt mprite optim pe instanele BD, separate pe calculatoare diferite. BD se adapteaz n mod automat la cderea unei instane sau la adugarea unei noi instane pe un cluster. e) Server de aplicaii (application server). Servere de aplicaii sunt consumatoare de resurse hardware i resurse pentru BD, furniznd mediul de execuie al aplicaiilor. n GC resursele de tip server de aplicaii sunt puse n comun, similar cu BD. Un singur Server de aplicaii const dintr-o multitudine de instane care ruleaz pe calculatoare diferite, dar avnd lucrul coordonat i folosind algoritmi specifici. Dac o instan cade atunci clientul este dirijat spre alt instan disponibil. f) Aplicaii (applications). Pentru a beneficia de tot avantajul tehnologiei GC, aplicaiile ar trebui s-i fac cunoscut comportamentul lor ctre alte aplicaii, prin intermediul interfeelor 53

54 Prof.univ.dr. Manole VELICANU standard, astfel nct funcionalitatea de la alte aplicaii s se poat uor combina pentru implementarea logicii afacerii. Serviciul de Web (web service) este termenul folosit pentru acest nivel, care permite folosirea coordonat a diferitelor aplicaii.

54

55 Prof.univ.dr. Manole VELICANU

2.5.3 Oracle 11g


Oracle este prima companie care a promovat tehnologia Grid Computing (GC), ntr-un SGBD, pentru ntreprinderi. Astfel, Oracle ofer o infrastructur software complet i comercial, proiectat special pentru GC cu baze de date. Oracle 11g permite adaptarea sistemelor informatice la modelul Enterprise Grid Computing (EGC), care folosete puterea de prelucrare a unui mare numr de calculatoare, puin costisitoare, ce acioneaz ca un tot unitar. De la funcii de stocare a datelor, servere de BD, servere de aplicaii (arhitectura NC), la administrarea datelor, cele mai noi tehnologii Oracle accept toate cerinele de calcul ale unui sistem GC. Produsele: Oracle Database 11g, Oracle Developer Suite 11g, Oracle Application Server 11g, Oracle Enterprise Manager 11g etc. formeaz mpreun prima platform complet pentru infrastructura EGC. Cteva atribute/faciliti pe care le ofer sistemul Oracle 11g: - gestioneaz mai multe servere ca pe o singur main; - ntreinerea i dezvoltarea se realizeaz ca i cum ar fi un singur sistem; - alocarea resurselor se face n funcie de puterea de calcul solicitat de aplicaii (acum, multe companii folosesc doar 50-60 la sut din resursele de calcul pe care le dein, pentru c acestea nu sunt integrate); - crete gradul de automatizare, precum i productivitatea muncii (se ofer valoare de utilizare tuturor resurselor de calcul); - administrarea aplicaiilor este mult mai simpl, iar dezvoltarea acesteia este mult mai uoar; - se permite folosirea unei infrastructuri gril (GC) pentru aplicaii comerciale la nivelul ntregii ntreprinderi (pregtirea a fost fcut n Oracle 8i i unde integrarea era cuvnt de ordine); - se reduc mult (pn la 50 %) costurile de gestiune a BD i se ofer cea mai uoar administrare a unei BD. Succint, administrarea unei BD Oracle cu Enterprise Manager 11g, se poate face: realist (ine cont de ceea ce exist), proactiv (folosete integrat resursele de calcul), inteligent (rezolv singur foarte multe situaii); - folosete raional o infrastructur existent de tehnic de calcul. Implementarea tehnologiei GC n Oracle 11g presupune asigurarea de ctre sistem a urmtoarelor aspecte: 1. Virtualizare Se permite adugarea sau scoaterea discurilor de stocare a datelor, cu pstrarea on-line a aplicaiilor. Performanele serverului sunt puse la dispoziia mai multor aplicaii i baze de date, ntr-o structur eficient de tip cluster. Resursele serverelor se aloc n funcie de necesitile utilizatorului, folosind tehnica load balancing. 2. Cost redus Se poate rula pe platforme diverse, inclusiv servere i echipamente de stocare a datelor cu un cost redus, oferind aceleai funcionaliti indiferent de platforma aleas. Stocarea datelor se realizeaz folosind componenta ASM - Automatic Storage Management, care permite utilizarea echipamentelor de cost redus. Administratorul BD aloc discurile de stocare componentei ASM care se ocup de managementul ulterior, oferind performane optime, fr a necesita intervenia uman. 3. Scalare 55

56 Prof.univ.dr. Manole VELICANU Se poate porni de la o aplicaie pe dou sau trei straturi pe un grup de servere de cost redus, continundu-se apoi pe mai multe straturi (n-tired) prin includerea unor aplicaii noi i a unor echipamente noi. 4. Administrare GC Oracle 11g are un produs special pentru administrarea GC, denumit Oracle Grid Control. Acesta poate fi utilizat de administratorul BD pentru monitorizarea i actualizarea ntregii infrastructuri de SBD, care include resurse eterogene, distribuite geografic. Resursele nu mai sunt administrate individual, aa cum se realiza n mod tradiional, ci grupat, prin utilizarea unui navigator - browser Web. Astfel, se poate realiza managementul tuturor resurselor: servere de aplicaii, servere de baze de date, servere de securitate - tip firewall, echipamente de stocare, echipamente de reea. 5. Baze de date distribuite Oracle 11g introduce conceptul de rulare a unei singure baze de date pe multiple servere folosind tehnologia Real Application Clusters - RAC. Acest lucru nseamn c mai multe servere sunt folosite n mod optim de ctre mai multe aplicaii, reducndu-se numrul de echipamente i licene necesare. Tehnologia de tip cluster nu trebuie s fie achiziionat de la un productor diferit, introducndu-se componenta Oracle Portable Clusterware care permite folosirea facilitilor de tip cluster pe orice tip de hardware. 6. Sisteme informatice integrate Componenta Oracle Streams 11g ofer funcionaliti multiple pentru realizarea unei soluii integrate de sistem informatic, cu eliminarea reduntanei. 7. Securitate Oracle Enterprise User Security este o component de management centralizat al drepturilor de acces ale utilizatorilor. Un utilizator este creat o singur dat, putnd avea acces la multiple baze de date existente n GC. Oracle Identity Management centralizeaz managementul autentificrii i autorizrii utilizatorilor n cadrul unei soluii integrate, prin intermediul componentei Oracle Internet Directory. Exemplu de implementare GC n Oracle 11g Managementul GC este inclus n Oracle prin implementarea unei componente distincte denumit Grid Control 11g Management Service. De asemenea, Oracle Entreprise Manager 11g Grid Control monitorizeaz ntregul sistem de baze de date integrat dezvoltat folosind platforma Oracle. n cele ce urmeaz se prezint etapele care trebuie parcurse pentru lucrul n mediul GC n Oracle 11g. Pregtirea mediului de lucru presupune parcurgerea urmtorilor pai (fig.1): 1. Crearea aplicaiei - middle tier pe o anumit main, ceea ce nseamn instalarea: a. Grid Control 11g Management Service b. Grid Control 11g Management Agent 2. Crearea bazei de date - repository pe aceeai/alt main, ceea ce nseamn instalarea: a. Bazei de date b. Grid Control 11g Management Agent 3. Crearea agenilor prin instalarea pe fiecare main din sistem a urmtoarelor componente: a. Additional Management Agent 56

57 Prof.univ.dr. Manole VELICANU b. Enterprise Manager Patch

Figura 1. Arhitectura GC n Oracle 11g Conectarea la Oracle Entreprise Manager 11g User Name i Password, presupune lansarea componentei Grid Control, ceea ce nseamn utilizarea tehnologiei GC. Pe pagina principal care apare, se gsete un meniu orizontal cu opiuni care dau operaiile ce pot fi executate sub produsul Oracle Entreprise Manager 11g. Cteva dintre aceste opiuni sunt prezentate n continuare. Managementul resurselor (fig. 2) presupune identificarea resurselor i a performanelor sistemului, a aciunilor planificate, a eventualelor atenionri - alerte. Se pot monitoriza diferite componente ale sistemului de baze de date: produse Java BC4J, server http, fiiere de parametri - Listener, baze de date - Database, servere de aplicaie Application Server, aplicaii Web Web Application, ageni - Agent.

57

58 Prof.univ.dr. Manole VELICANU Figura 2. Situaia curent a resurselor sistemului Gruparea resurselor Groups are rolul de a se realiza un management unitar pentru toate componentele unui grup de exemplu grupul faculti conine CSIE, CIG, REI. Atenionrile - alertele pot fi de mai multe tipuri: resursele nedisponibile - cu precizarea momentului indisponibilizrii i mesajului de eroare aferent, erorile aprute, mesajele de avertizare etc. Managementul sarcinilor - jobs implic urmtoarele operaii: cutarea, adugarea, modificarea, tergerea, suspendarea unei anumite sarcini sau a unei anumite rulri a unei sarcini. Se pot crea aduga sarcini de tipul: aplicarea unui ablon - patch, clonarea unei aplicaii, salvarea bazei sau aplicaiei - backup, rularea unui modul de program bloc PL/SQL, script SQL. Acestea pot fi planificate s ruleze cu o anumit periodicitate, pe toate resursele sau pe un anumit grup de resurse. Rolurile permit accesul anumitor utilizatori la anumite resurse i descriu drepturile aferente. Cu ajutorul unor viziuni, care inclus i o scurt descriere, pot fi vizualizate toate aceste aspecte. Monitorizarea evenimentelor de pe fiecare resurs presupune vizualizarea n form tabelar i/sau grafic, a urmtoarelor informaii: - parametrii setai (listener): dac sunt disponibili sau nu; - problemele de reea: dac sunt i care anume; - eviden ageni: disponibilitate, ageni care nu mai rspund; - monitorizare servere de baze de date: disponibilitate, procent de utilizare a spaiului, depiri ale spaiului utilizat de tabelele de spaiu (tablespace) - monitorizare performane aplicaii Web: starea, procent de disponibilitate, alerte, rezolvarea tranzaciilor; Regulile de notificare prin E-mail pot fi create i vizualizate atunci cnd apar condiii critice pentru diferite componente introduse n sistemul integrat. De exemplu, se poate crea o notificare pentru o baz de date de cte ori aceasta se oprete sau ori de cte ori anumii indicatori devin critici - Datafile Usage %, Archiver Hung Error Stack, Tablespace Space Used %.

2.5.4 Baze de date n arhitectur Grid Computing (GC)


Tehnologia GC ofer servicii prin care se concentreaz puterea de calcul de la nivelul unei organizaii n mod eficient i sigur, inclusiv stocarea datelor, n reea de calculatoare conectat la Internet. Tehnologia GC a aprut n USA la sfritul anilor 90 i a fost preluat n 2003 pentru baze de date, n infrastructura Oracle. Rolul acesteia este de a concentra la nivelul unei companii o putere de calcul foarte mare, pe care niciun calculator, orict de puternic ar fi, nu o poate asigura. Mai mult, aceast putere de calcul este monitorizat eficient de infrastructura software pentru baze de date, evitndu-se timpii mori i sugrumarea traficului n reea. n acest fel, resursele de calcul vor fi uriae, inclusiv spaiul de stocare pentru date, de ordinul petabytes (PB), gestionat eficient de SGBD. 58

59 Prof.univ.dr. Manole VELICANU Apariia i dezvoltarea tehnologiei GC s-a bazat pe existena altor tehnologii informatice: bazele de date avansate, Internet, platforma Java, tehnologia orientat obiect etc. GC ofer o infrastructur care presupune utilizarea integrat i colaborativ a resurselor de calcul , a datelor, a reelelor de calculatoare la nivelul organizaiei. Acest lucru presupune o investiie mare, iar astfel de proiecte sunt acum realitate n toat lumea, inclusiv n Europa. Aceste proiecte pot fi grupate n dou categorii: - dezvoltarea GC ca infrastructur cu hardware, software corespunztor, precum i cu un mecanism administrativ corespunztor; - cercetarea GC ca middleware ce investigheaz platformele ce pot monitoriza eficient resursele de calcul la nivelul organizaiei. Rezult c GC presupune, prin definiie, integrare i interoperabilitate de tehnologii informatice. n aceste condiii, pentru ca tehnologia s funcioneze practic i s se poat dezvolta ca un sistem deschis este necesar o ct mai mare standardizare. Informatica sufer nc de lipsa unor standarde i de aceea noile tehnologii in cont de acest lucru. Pentru tehnologia GC eforturile de standardizare sunt coordonate de organismul Global Grid Forum GGF. In plus, marii furnizorii de aplicaii informatice n arhitectur GC (Oracle, EMC, HP, Dell, Intel etc.) au infiinat n 2004 Enterprise Grid Alliance EGA, care promoveaz tehnologia GC dar i emit standarde i specificaii n domeniu. EGA se preocup i de securitatea aplicaiilor informatice n arhitectur GC formulnd n acest sens un set de reguli pe care trebuie s le respecte productorii i utilizatorii acestor aplicaii. O parte dintre reguli sunt valabile i pentru aplicaiile n arhitectura client-server sau n arhitectura centralizat, dar problemele de securitate sunt mai numeroase pentru aplicaiile n arhitectur GC pentru c sunt mai multe posibiliti de acces, din mai multe aplicaii, la aceleai resurse. Bazele de date distribuite, cu exemplul elocvent de implementare n Oracle 11g RAC (Real Application Cluster), se pare c vor evolua, alturi de reelele distribuite, prin integrarea tehnologiei GC. Dac tehnologia bazelor de date o integreaz acum pe cea GC, aceasta integreaz la rndul ei mai multe metode privind evoluia tehnologiei calcului: - calculul distribuit pentru a avea o putere de calcul suficient de mare se conecteaz resursele de calcul ntr-o reea de calculatoare utilizat ca o resurs unic, integrat; - metacalculul legarea centrelor de supercalculatoare n reele de mare vitez, ca un caz particular de calcul distribuit; - calcul cluster conectarea unor calculatoare heterogene ntre ele, obinnd o putere de calcul mai mare dect a unui calculator mare (main-frame). Avantajul major este scalabilitatea: pot fi adugate la un cluster existent alte calculatoare; - calcul Peer to Peer prin descrcarea unei aplicaii dintr-o reea pe calculatorul personal, un utilizator se va conecta cu toi utilizatorii care care au aceeai aplicaie. Utilizatorii vor specifica ce informaii sunt publice i acestea vor fi partajate ntre ei. Astfel, se pot partaja informaii n reea ntre utilizatori fr s eiste un server central; - calcul Internet cu ajutorul Internetului se pot construi supercalculatoare virtuale care lucreaz cu nodurile (grid) simultan pe mai multe pri ale problemei de rezolvat. Aceste noduri descarc datele necesare de pe Internet, le proceseaz i apoi le ncarc n sistemul central pentru post-procesare; - grid computing local un produs software de tip middleware, care nu este nici aplicaie informatic nici sistem de operare ci ceva intermediar. Produsul verific ce calculatoare din reea sunt disponibile pentru rularea, n mod optim a unei aplicaii. i aici exist scalabilitate, adic se pot aduga noi calculatoare.

59

60 Prof.univ.dr. Manole VELICANU Aplicaiile cu baze de date care integreaz noi tehnologii informatice, inclusiv GC, vor implementa aspectele fundamentale din tehnologiile respective. In cazul GC conceptele fundamentale care sunt implementate n aplicaiile care sunt dezvoltate cu Oracle 11g sunt: - partajarea resurselor resursele aflate la distan, necesare unei aplicaii, sunt utilizate n comun (schimb de fiiere, acces direct la date, acces direct la alte aplicaii etc.); - accesul sigur pentru a se avea acces partajat la anumite resurse se impun anumite restricii: politica de acces, autorizarea, autentificarea; - accesul n timp util indiferent de numrul de resurse existente utilizatorul va avea uneori de ateptat. Mecanismele de alocare i cele de acces au rolul de a rezolva eficient cozole de ateptare. Experiena de la tehnologia bazelor de date este deosebit de util pentru acest aspect; - dispariia distanelor performanele mereu crescnde ale mediilor de comunicaie n reea fac acum posibil conectarea unui numr mare de utilizatori i transmisia unor volume uriae de date; - standardele pentru ca tehnologia GC s fie recunoscut i utlizat la nivel global, n mod sigur, este nevoie s fie standardizate ct mai multe elemente. Exist organisme de standardizare pentru tehnologia GC i o propunere de arhitectur standard denumit Open Grid Services Architecture OGSA; - sistemul deschis proiectele GC sunt construite pe baza unor protocoale i servicii standarde , ca o infrastructur de sistem deschis (open-source), capabil s preia din mers schimbrile care apar.

2.6.

Aplicabilitatea bazelor de date care integreaz tehnologii informatice

Sistemele de baze de date actuale, prin integrarea celor mai noi tehnologii informatice, inclusive GC ofer soluii eficiente pentru dezvoltarea aplicaiilor informatice din toate domeniile de activitate. Dintre aceste domenii, cel economic se preteaz cel mai bine pentru c el ofer cele mai multe tipuri de aplicaii, de la dimensiuni mici pn la dimensiuni foarte mari. Folosirea n comun a resurselor de calcul la nivelul unei companii, n mod eficient i sigur, este o prioritate n condiiile globalizrii economiei. n acest sens, n anii 2000 au dezvoltat proiecte de cercetare majoritatea marilor firme de informatic: Oracle, IBM, Microsoft etc. Aplicaiile cu baze de date n arhitectur GC in cont de urmtoarele aspecte: - asigur un management distribuit eficient; - menine controlul integrat asupra resurselor de calcul; - asigur disponibilitatea comun a datelor; - identific soluiile optime de acces la date; - crete productivitatea de lucru pentru beneficiar; - asigur un mediu de lucru prietenos cu acces la numeroase faciliti. Domeniile de aplicabilitate ale aplicaiilor cu baze de date cu un mare grad de integrare a tehnologiilor informatice, aa cum sunt i cele de tip GC, sunt dintre cele mai numeroase. Acest lucru este posibil datorit interferenei tehnologiilor informatice care ofer aplicaiilor rezultate: o mare deschidere, o flexibilitate deosebit, interoperabilitate, eficien n utilizarea i gestionarea resurselor de calcul, o putere de calcul uria. Astfel, marketingul orientat pe client are o influen deosebit privind dezvoltarea aplicaiilor informatice cu baze de date pentru afacerile organizaiilor. 60

61 Prof.univ.dr. Manole VELICANU

In momentul actual al noului context economic, n lume sunt dou direcii de teorie i practic de marketing i economic, n general: - scandinav, care pune accentul pe metode calitative; - american, care pune accentul pe metode statistice superioare Data Mining, Data Mart, Data Warehouse, OLAP etc. n Europa se folosesc ambele variante, i acelai lucru se poate spune despre ara noastr, ca membru al Uniunii Europene. Specificul nostru const n faptul c majoritatea firmelor fac parte din IMM ntreprinderi Mici i Mijlocii. Acest lucru nseamn c: flexibilitatea economic este mare, concurena cu firme strine este slab, pot aprea conflicte interumane. Soluiile pentru informatizarea organizaiilor, n special pentru firmele mari, att la noi n ar ct i n lume, merg pe varianta american. Gradul de rspndire al tehnologiei GC n lume este aproximativ acelai pe zonele geografice America de nord, Europa, Asia Pacific i anume n jur de 5, pe o scar de la 0 la 10. Studiul popularitii tehnologiei GC a fost fcut de organismul Oracle Grid Index OGI. Un rol important n rspndirea acestei tehnologii l-au avut aplicaiile cu baze de date suport pentru afaceri: Enterprise Resource Planning ERP, Customer Relationship Management CRM, Business Intelligence BI etc. Aa cum artam mai sus, Enterprise Grid Alliance EGA este unul dintre organismele care promoveaz tehnologia GC. El sprijin dou clase de aplicaii cu baze de date n arhitectur GC: o aplicaii comerciale, care sunt fundamentale pentru informatizarea oricrei organizaii (ERP, CRM, BI); o aplicaii specifice, care au un rol important privind eficiena organizaiei (analiza financiar, analiza datelor etc.). Productorii de aplicaii n arhitectur GC, n special cei din grupul EGA (n frunte cu Oracle care a furnizat prin versiunea 11g primul SGBD ce funcioneaz i n arhitectur GC), au dezvoltat n comun proiecte n acest sens, datorit interferenei de numeroase tehnologii informatice, dar i datorit costurilor ridicate. Un astfel de proiect este MegaGrid n care fiecare companie participant pune la dispoziie propriile tehnologii pentru construirea unei infrastructuri GC: Oracle ofer infrastructura Oracle 11g, Dell ofer servere, Intel ofer procesoare, EMC sisteme de stocare. Se pot astfel dezvolta i rula aplicaii informatice cu baze de date performante i sigure n arhitectur GC. n ara noastr sunt mai multe proiecte GC dezvoltate i promovate n mediul universitar informatic i sprijinite de CNCSIS. Scopul este de a se dezvolta i exploata o infrastructur eScience n Romnia, care s colaboreze cu infrastructurile similare din Uniunea European. Aplicabilitatea bazelor de date care integreaz tehnologii informatice este influenat de noul contextul economic actual care, la rndul lui, este determinat de tehnologiile avansate. Acest lucru nseamn c asistm la schimbarea modului de afaceri, a relaiilor interumane, a strategiei de marketing etc. Actualele aplicaii informatice cu baze de date trebuie s in cont de aspectele care urmeaz. Principalele tehnologii avansate care determin acum i noul context economic sunt: - echipamentele electronice complexe, inclusiv calculatoarele; - asistenii de proiectare pentru realizarea a tot felul de produse; - bazele de date de mrime i complexitate diferite; - serviciile de diferite tipuri SOA (Service Oriented Architecture); - tehnologia Web 61

62 Prof.univ.dr. Manole VELICANU tehnologia Cloud Computing.

innd cont de noul context economic se poate construi noua strategie de marketing care se bazeaz pe orientarea pe client i care are n vedere: o noi clieni de diferite tipuri; o noi produse i servicii; o noi metode de analiz i descoperire; o noi tehnici de prelucrarea a informaiei. Pornind de aceast strategie de marketing, n contextul economic actual este de mare importan ceea ce dorete clientul. Clientul domin n acest moment viaa de afaceri, iar aplicaiile cu baze de date in cont de cerinele clientului i sunt destinate acestuia. n sintez, dorinele clientului sunt: - recunoaterea: clientul vrea s fie recunoscut ca individ, cu dorinele i preferinele sale; - serviciul: furnizarea spre client a unor servicii cunoscute i dorite de el, prin acces la baza de date; - accesibilitate: clientul este ocupat i deci pentru afacere este bine s foloseasc doar un profil al su nume, adres, card bancar, Email etc. recunoscut i, de asemenea, s aib un istoric al su; - ajutorul total: orice i va face viaa mai uoar va fi binevenit pentru client; - informaia: clientul foflosete tot mai mult calculatorul i Internetul. Acum informatica este poate chiar mai important pentru client dect produsul nsui; - identificarea: clientul trebuie s identifice produsele i companiile. Acestea vor fi prezentate clienilor ct mai prietenos, sugestiv i apropiat de cerinele lor. Se ine cont de categoriile de clieni, de zona geografic etc. Un alt aspect de care trebuie s in cont aplicaiile cu baze de date n noul context economic este importana preului. n acest sens, sistemele de baze de date trebuie s asigure: o metodele pentru pstrarea i atragerea clienilor; o furnizarea informaiilor necesare prin servicii client; o produsele i serviciile la mod destinate preferinelor individuale; o programele de marketing personalizate; o deschiderea companiei spre client; o purtarea unui dialog unu la unu cu fiecare client; o ntocmirea unor liste de clieni loiali i programe pentru atragerea altora; o clasificarea clienilor dup diferite criterii interese, profitabilitate etc.; o recunoaterea clienilor dup nume i apelarea lor pentru socializare; o devize pentru programe de marketing pentru noi prospeciuni. La realizarea actualelor aplicaii cu baze de date se va ine cont de urmtoarea strategie: - atragerea i meninerea clienilor folosind metode, tehnici i strategii specifice; - centrarea ntregii strategii pe client i adaptarea rapid a aplicaiei conform cerinelor acestuia; - determinarea riscului pentru aplicaia cu baze de date; - acordarea unor reduceri clientului: ocazionale, la cerere, sistematic etc.; - schimbarea aspectului i coninutului aplicaiei (sistem de meniuri, Site Web, videoformate, rapoarte) ori de cte ori este necesar; - se va ine cont tot timpul de drepturile consumatorului; 62

63 Prof.univ.dr. Manole VELICANU crearea unor segmente de clieni dup diferite criterii; se va ine cont de cerinele nivelurilor de conducere; se vor evidenia beneficiile clientului.

Dezvoltarea i exploatarea aplicaiilor cu baze de date, n contextul economic actual, trebuie s in cont i de urmtoarele aspecte metodologice: o valoarea ciclului de via, care este valoarea net prezent a profitului care va fi realizat cu un numr mediu de clieni, pe parcursul unui numr de ani dat; o succesul strategiei de dezvoltare ine cont de atributele clientului profitabilitate, loialitate etc.; o comunicarea cu clientul are rolul de a-i da acestuia satisfacie i se poate face prin diferite metode - mesaje Email, telefon, puncte acumulate, gratuiti, reduceri etc.; o construirea profilului de client prin gruparea clienilor cu atribute similare demografice, zone geografice, stil de via, profesii etc. Metodologiile de realizare a sistemelor de baze de date - SBD care integreaz noi tehnologii informatice trebuie s in cont de aspectele prezentate, care rezult din noul context economic actual.

63

Вам также может понравиться