Microsoft Word - barcan.doc

Documente similare
A TANTÁRGY ADATLAPJA

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai Cluj-Napoca superior 1.2 Facultatea Matematică şi Info

Proiectarea Sistemelor Software Complexe

FIȘA DISCIPLINEI 1. Date despre program 1.1 Instituția de învățământ superior Universitatea Alexandru Ioan Cuza din Iași 1.2 Facultatea Facultatea de

Entrepreneurship and Technological Management

Slide 1

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

Microsoft Word - Fisa disciplinei_BD2_DM_ doc

Paradigme de Programare

Laborator 3

Raport tehnic şi ştiinţific final privind implementarea proiectului PN-III-P2-2.1-PED Acronim: ForVer Răzvan Diaconescu Decembrie Rez

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Babeş-Bolyai Cluj-Napoca 1.2 Facultatea Matematică şi Info

Termeni de utilizare specifici produselor

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai Cluj-Napoca superior 1.2 Facultatea Facultatea de Mate

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai din Cluj-Napoca superior 1.2 Facultatea Facultatea de

PROGRAMARE ORIENTATA PE OBIECTE

Prezentarea calculatorului

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai Cluj-Napoca superior 1.2 Facultatea Matematică şi Info

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Babeş-Bolyai Cluj-Napoca 1.2 Facultatea Facultatea de Mate

(Microsoft PowerPoint SIBIUEVIDENTA [Doar \356n citire])

Microsoft Word - 6 FD_Informatica SGBD II CIG 2017.doc

Microsoft Word - Tematica examen AII.doc

e-learning Agronomie Platforma de e-learning Versiunea: Ghid de utilizare Beneficiar: UNIVERSITATEA DE STIINTE AGRONOMICE SI MEDICINA VETERINARA

..MINISTERUL EDUCAŢIEI NAȚIONALE ŞI CERCETARII STIINTIFICE UNIVERSITATEA DE VEST DIN TIMIȘOARA.I CENTRUL DE DEZVOLTARE ACADEMICĂ. FIȘA DISCIPLINEI 1.

Slide 1

Microsoft Word - Curs_07.doc

CURS

COLEGIUL TEHNIC „VICTOR UNGUREANU” CAMPIA TURZII

Testare manuala: situatia in care o persoana initiaza fiecare test, interactioneaza cu el si interpreteaza, analizeaza si raporteaza rezultatele. Test

..MINISTERUL EDUCAŢIEI NAȚIONALE ŞI CERCETARII STIINTIFICE UNIVERSITATEA DE VEST DIN TIMIȘOARA.I CENTRUL DE DEZVOLTARE ACADEMICĂ. FIȘA DISCIPLINEI 1.

FIŞA DISCIPLINEI

Ruby on Rails Pop Alexandru Pavel Razvan Calculatoare 4

PPSD

Prezentarea calculatorului

PowerPoint Presentation

talaba.doc

Facultatea de Științe Politice, Administrative și ale Comunicării Str. Traian Moșoiu nr. 71 Cluj-Napoca, RO Tel.: Fax:

Modulul 1 M1-2.3 Protocoale şi servicii în reţea În acest capitol ne propunem să abordăm următoarele: Protocoalele şi aplicaţiile folosite în reţelele

Gestionarea I/E

ÎS CENTRUL DE TELECOMUNICAȚII SPECIALE CENTRUL DE CERTIFICARE A CHEILOR PUBLICE POLITICA de utilizare a certificatelor SSL Iunie 2013 Chişinău 2013

Paradigme de programare

Web Social FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 2. Dezvoltarea blogurilor prin intermediul WordPress.com PREZE

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - TDS5-RO.ppt

Laborator 10 - Paradigme de Programare Corutine - suport nativ pentru paralelism în Kotlin Înainte de a trece la realizarea unei aplicații utilizând c

Procesarea documentelor XML in Linux

Microsoft Word - 2 ES RO.doc


Utilizare Internet

COMISIA EUROPEANĂ DIRECȚIA GENERALĂ INFORMATICĂ Componenta de aplicare a politicii WiFi4EU Ghid de implementare v1.0 Cuprins 1. Introducere Br

2 BAZE TEORETICE ALE REȚELELOR DE CALCULATOARE CAPITOLUL 2 BAZE TEORETICE ALE REŢELELOR DE CALCULATOARE 2.1. Necesitatea standardizării (referenţierii

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai Cluj-Napoca superior 1.2 Facultatea Facultatea de Mate

Laborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011

CL2009R0976RO bi_cp 1..1

Microsoft Word - Ansamblul software CRONIS

ROMÂNIA UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FIŞA DISCIPLINEI FACULTATEA DE STUDII EUROPENE DEPARTAMENTUL Relaţii internaţionale şi studii germane 1

Microsoft Word - cap2.2.UNIX-NOS.doc

Anexa nr. 2 FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior UNIVERSITATEA DE VEST TIMISOARA 1.2 Facultatea FIZICA 1.3 De

Lucrarea 10

Anexa nr. 2 FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior UNIVERSITATEA DE VEST TIMISOARA 1.2 Facultatea FIZICA 1.3 De

Ghid de referinţă rapidă pentru Seria ZT400™

Pentru afacerea dumneavoastră ModernBiz Glossary 2014 Microsoft Corporation. Toate drepturile rezervate.

Ingineria Sistemelor de Programare

Curs 10

TERMENI DE REFERINȚĂ Servicii de consultanță pentru mentenanța Sistemului de Management al Informațiilor existent (SMI) pentru Asistență Socială siste

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Alexandru Ioan Cuza din Iaşi 1.2 Facultatea Facultatea de

Microsoft PowerPoint - ARI_R_c9-10_IP_part2 [Compatibility Mode]

Example Title with Registration Microsoft® and Trademark SQL ServerTM

Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai

aplicatii java

PowerPoint Presentation

Corporate 2 Template

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Alexandru Ioan Cuza din Iaşi 1.2 Facultatea Facultatea de

proiectarea bazelor de date

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 4. Dezvoltarea site-urilor si blog-uri

Example Title with Registration Microsoft® and Trademark SQL ServerTM

Programarea şi utilizarea calculatoarelor

1

MINISTERUL EDUCAŢIEI, CULTURII ŞI CERCETĂRII AL REPUBLICII MOLDOVA COORDONAT: 2017 Nr. de înregistrare a planului de învăţământ UNIVERSITATEA DE STAT

Aggregating Data

Microsoft Word - Alina-Mihaela ION - TEHNOLOGIA INFORMA?IEI CU APLICA?II

FIŞA DISCIPLINEI ANEXA nr. 3 la metodologie 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Politehnica din Bucureşti 1.2 F

REVISAL Versiunea: Data release: 15 martie 2016 IMPORTANT! Distribuţia curentă (v6.0.4) a aplicaţiei Revisal conţine nomenclatorul COR ISCO 08 î

Microsoft Word - 6. Codruta_Curta - Valeria_Gidiu.doc

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 3. Achizitionarea domeniilor web si a

Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (ve

Microsoft Word - 2. studii_de piata_ _servicii_promovare_informare.docx

Unitatea de învăţământ: Colegiul Tehnic de Posta si Telec. Ghe. Airinei Calificarea profesională: Analist programator Modulul: MODELAREA SISTEMELOR IN

Introducere în limbajul JavaScript

Microsoft Word - Fisa disciplinei BD_I_IE doc

Microsoft Word - CarteC.doc

Transcriere:

86 Elements of J2EE Architecture Used in Design of Information Systems Victor BĂRCAN Facultatea de Ştiinţe Economice, Universitatea Babeş-Bolyai din Cluj-Napoca The Java 2 Enterprise Edition (J2EE) Platform is defined by four key pieces: the specification, the reference implementation, the compatibility test suite, and the BluePrints program. BluePrints describes the best practices and design guidelines for a distributed component architecture. This article describes the principals characteristics of the J2EE architecture, the evolution of the norms of J2EE and the notion of the J2EE security. Keywords: J2EE platform, security, architecture. A rhitectura J2EE -Scurt istoric Norma J2EE 1 este o normă iniţiată de către SUN, la care au participat un anumit număr de parteneri importanţi, dintre care cel care a investit cel mai mult este IBM. Unul dintre motivele creării limbajului de programare JAVA este independenţa de platformă, deziderat realizat prin crearea de JVM-uri (Java Virtual Machine ) specifice sistemelor de operare. O dată cu dezvoltarea tehnologiei internet a apărut necesitatea redării de conţinut dinamic în pagini. Răspunsul tehnologiei SUN, orientată java, la această nouă provocare a fost apariţia tehnologiilor SERVLETE si JSP (java server pages). În paralel a apărut şi tehnologia EJB (Entrepise Java Beans), iar mai târziu, începând cu 2004, JSF (java server faces). Din ce în ce mai mulţi creatori de soft au început să producă servere de aplicaţie care să suporte aceste tehnologii. S-a constatat însă că aplicaţiile scrise în acea perioadă (până la sfârşitul lui 2000), erau dependente de serverul de aplicaţie şi în consecinţă nu erau portabile pe alt server. Norma J2EE a apărut ca răspuns la nevoia de a extinde ideea de portabilitate de la nivelul limbajului (java) la nivelul serverelor de aplicaţie. De exemplu, un server care este certificat conform normei J2EE 1.3 garantează că implementează specificaţiile de servlete 2.3, JSP 1.2 şi EJB 2 2.0, etc. Acest fapt permite portarea unei aplicaţii scrisă conform normei J2EE 1.3 de pe un server de aplicaţie pe altul. În afară de portabilitate, norma J2EE prezintă o serie de alte avantaje, cum ar fi dezvoltarea orientată pe componente, separarea containerelor etc., care depăşesc obiectul de studiu al lucrării de faţă. Gestiunea securităţii într-o aplicaţie J2EE Securizarea unei aplicaţii de întreprindere conform normei J2EE se face pe baza unor standarde, în cadrul cărora se pune accent pe separarea autentificării de autorizare. Securizarea se poate face pe două nivele: declarativ şi aplicativ. În cadrul implementării securităţii declarative a unei aplicaţii J2EE, prima etapă este autentificarea în care utilizatorul furnizează un nume de utilizator şi o parolă pentru a dovedi că este cine pretinde. %n principiu, această etapă nu trebuie gestionată de către aplicaţie aşa cum se întâmplă din păcate in majoritatea proiectelor, ci trebuie externalizată. O arhitectură fiabilă, şi evolutivă în acest sens o constituie folosirea unui server LDAP 3 ca şi referenţial unic al întreprinderii. Toţi utilizatorii întreprinderii sunt descrişi în acest referenţial. Serverul LDAP este folosit doar pentru autentificare. Când un utilizator încearcă să acceseze o aplicaţie, el se autentifică pe serverul LDAP, după care controlul este reluat de către aplicaţia apelată, care autorizează accesul utilizatorului pe diferite module 1 Amănunte despre norma J2EE pot fi găsite la adresa: http://java.sun.com/j2ee/ 2 Amănunte despre tehnologie EJB pot fi găsite la adresa: http://java.sun.com/products/ejb/ 3 Amănunte despre protocolul LDAP pot fi găsite la adresa: http://www.stanford.edu/~hodges/talks/mactivity.ldap. 97/index2.html

87 ale aplicaţiei în funcţie de grupul la care aparţine pe serverul LDAP. %n cazul unei aplicaţii J2EE interacţiunea reală a diferiţilor actori este modelizată prin intermediul noţiunii de rol J2EE. Un rol J2EE corespunde de fapt unui tip de utilizator al aplicaţiei. De exemplu, va exista un rol J2EE supervizor, un rol responsabil departament, un rol agent comercial etc. Norma J2EE nu impune folosirea unui server LDAP, ci doar gestionarea drepturilor de acces cu ajutorul rolurilor J2EE. Utilizatorii reali pot fi de pildă, definiţi ca şi grupuri de utilizatori pe serverul pe care este instalat serverul de aplicaţie. Pentru containerul WEB, aceste roluri sunt definite în cadrul unui fişier XML de configurare, cu numele web.xml. Pe urmă, se atribuie drepturi de acces rolurilor J2EE asupra diferitelor resurse WEB. O resursă WEB este unic identificată în cadrul aplicaţiei prin URL-ul de acces. Foarte important de reţinut este faptul că drepturile de acces se atribuie nu utilizatorilor reali, ci rolurilor J2EE. %n momentul instalării aplicaţiei pe serverul J2EE se defineşte o corespondenţă între rolurile J2EE şi grupurile definite pe serverul LDAP, sau grupurile de utilizatori ai sistemului de operare local. Dacă o nouă persoană se angajează în întreprindere, într-o astfel de arhitectură este suficient ca ea să fie atribuită grupului LDAP corespunzător, fără nici o intervenţie în administrarea aplicaţiilor care se sprijină pe serverul LDAP pentru autentificare. Securizarea declarativă împiedică sau acordă accesul utilizatorilor asupra resurselor WEB ale aplicaţiei. Pentru a avea o aplicaţie corectă din punct de vedere funcţional, acest lucru nu este suficient. Astfel, dacă un utilizator nu are acces la o pagină, butonul care accesează pagina respectivă trebuie să nu fie vizibil pentru utilizatorul în cauză. Acest lucru este realizat prin implementarea securităţii aplicative, prin API-urile suportate de către norma J2EE şi care permit testarea rolului unui utilizator autentificat. Important este de reţinut faptul că odată ce utilizatorul s-a autentificat pe aplicaţie nu se mai testează asupra ID-ului său ci asupra apartenenţei sale la un rol sau altul. Securitatea aplicativă întregeşte astfel ansamblul de unelte puse la dispoziţia programatorului de către implementările normei J2EE pentru o gestiune completă a securităţii unei aplicaţii. a. Motorul de servlete 4. Motorul de servlete denumit şi "Web Container" este cel care garantează execuţia unei servlete într-un context bine definit. O servletă mai este denumită şi extensie a serverului sau faceless object. Acestea sunt programe care se execută pe server şi nu pe client, şi au apărut ca o alternativă performantă faţă de programele CGI. Diferenţa principală dintre o servletă şi un program CGI este că pentru n cereri există o instanţă şi n Thread-uri în cazul servletei şi n instanţe în cazul programului CGI. O definiţie 5 a conceptului de servletă s-ar enunţa în felul următor: Tehnologia servletelor constă intr-un ansamblu de API java 6 care permit programatorului să adauge conţinut dinamic unui server Web bazat pe tehnologia java. Conţinutul generat este în general HTML 7, dar poate fi şi de altă natură ca de pildă XML 8. Există numeroase alte avantaje ale acestei tehnologii care depăşesc cu mult scopul acestei lucrări. Motorul de servlete se ocupă de execuţia servletei în sistem de Thread-uri, de gestiune a variabilelor de instanţă, de colectare a instanţelor nefolosite etc. b. Procesorul JSP 9. Tehnologia JSP a apărut pentru a acorda dinamicitate paginilor statice HTML, şi pentru a evita scrierea de cod HTML în servlete. Există la ora actuală o multitudine de medii 4 Detalii despre Tehnologia servletelor pot fi găsite la adresa: http://java.sun.com/products/servlet/index.jsp 5 Definiţie adaptată după: http://encyclopedia.laborlawtalk.com/java_servlet 6 Acronimul de API simbolizează «Application Programming Interface, iar o definiţie a acestui concept poate fi găsită la adresa: http://encyclopedia.laborlawtalk.com/api 7 Acronimul de HTML simbolizează «HyperText Markup Language, iar o definiţie a acestui concept poate fi găsită la adresa: http://encyclopedia.laborlawtalk.com/html 8 Acronimul de XML simbolizează «Extensible Markup Language, iar o definiţie a acestui concept poate fi găsită la adresa: http://encyclopedia.laborlawtalk.com/xml 9 Detalii despre tehnologia JSP pot fi găsite la adresa: http://java.sun.com/products/jsp/

88 de programare care pot gestiona vizual compoziţia unei pagini JSP, obţinând câştiguri foarte importante în productivitate faţă de generarea dinamică a codului HTML în cadrul unei servlete. Practic, tehnologia a apărut pentru a concepe partea vizuală a aplicaţiei prin editoare vizuale specifice. Următoarea fază de scriere a unei JSP este translatarea acesteia, adică crearea unei servlete aferente şi a fişierului cu extensia java. Urmează apoi faza clasică de compilare în care fişierul cu extensia class este generat. De aici încolo, pagina se comportă exact ca o servletă. Este tehnologia utilizată împreună cu tehnologia servletelor în cadrul unor J2EE Design Patterns, aşa cum vor fi prezentate în cadrul lucrării. c. Tehnologia JSP Custom Tags 10 Constă în extensii ale limbajului JSP denumite Custom Tags Libs, pe care orice organizaţie sau individ le poate scrie şi folosi în cadrul proiectelor proprii precum le poate şi pune la dispoziţia comunităţilor libere cum ar fi comunitatea open source. Ideea de bază a custom tag libs este de a reutiliza la maxim codul java din cadrul JSP-urilor, precum şi de a reduce la maxim codul java în cadrul acestora. Întrucât moştenirea de clase nu este aplicabilă tehnologiei JSP, (este însă aplicabilă tehnologiei bazate pe servlete), această tehnologie apărut pentru a permite un grad de reutilizare ridicat a codului de prezentare din cadrul paginilor de tip JSP. d. Accesul la o bază de date cu ajutorul unei DataSource. Primele aplicaţii scrise în java care accesau baze de date foloseau un driver manager, care presupunea crearea unei conexiuni la baza de date şi distrugerea acesteia după executarea interogării. Dacă un alt utilizator dorea executarea unei interogări, procesul era reluat de la capăt. %n cazul unei interogări SQL, partea care consumă mai mult timp şi mai multe resurse sistem este crearea conexiunii şi nu execuţia interogării. Astfel, a apărut necesitatea folosirii unui mecanism care să 10 Detalii despre tehnologia JSP Custom Tags pot fi găsite la adresa: http://java.sun.com/products/jsp/taglibraries/index.jsp permită refolosirea conexiunilor JDBC 11 denumit DataSource. O DataSource foloseşte un pool de conexiuni JDBC pentru a optimiza accesul la baza de date. Crearea unei Data Source este un proces administrativ, folosindu-se în general o consolă de administraţie pentru a crea şi parametriza un astfel de obiect. Printre parametrii de configurare folosiţi se află şi numărul minim şi numărul maxim de conexiuni JDBC. În momentul lansării serverului de aplicaţie sunt create şi iniţializate atâtea conexiuni câte au fost specificate ca şi număr minim de conexiuni. Spre exemplu, să presupunem că valoarea acestui parametru este 100. Dacă 100 de utilizatori execută simultan o interogare SQL, cele 100 de conexiuni sunt folosite în acest scop. %n momentul în care un utilizator eliberează o conexiune terminându-şi tranzacţia, această conexiune nu este distrusă ci este înapoiată pool-ului de conexiuni. Dacă un nou utilizator încearcă să execute o interogare, DataSource-ul verifică dacă printre cele 100 de conexiuni preiniţializate există una disponibilă, caz în care aceasta este folosită pentru execuţia interogării. Doar dacă toate cele 100 de conexiuni sunt folosite la momentul respectiv, o nouă conexiune este creată, iniţializată, folosită, iar după folosire este înapoiată pool-ului de conexiuni. Acest mecanism permite refolosirea conexiunilor JDBC şi obţinerea unor performanţe sporite ale aplicaţiei. Pentru a accesa o DataSource din cadrul unui program java în vederea obţinerii unei conexiuni, se foloseşte un protocol denumit JNDI 12. Acest protocol permite localizarea diferitelor obiecte şi date definite în prealabil pe un server de nume. Toate serverele comerciale sau open source care implementează norma J2EE, încorporează un «server de nume». De exemplu, la instalarea unei aplicaţii de tip EJB, pentru fiecare componentă de tip EJB trbuie specificat un nume logic 11 Acronimul de JDBC simbolizează «Java Database Connectivity, iar o definiţie a acestui concept poate fi găsită la adresa : http://encyclopedia.laborlawtalk.com/jdbc 12 Acronimul de JNDI simbolizează «Java Naming and Directory Interface, iar o definiţie a acestui concept poate fi găsită la adresa : http://encyclopedia.laborlawtalk.com/jndi

89 unic JNDI unic 13, care va fi înregistrat de către serverul de nume, şi folosit de către clienţi pentru a accesa componenta respectivă. În acelaşi mod, în procesul definirii unei DataSource i se atribuie un nume logic JNDI unic, folosit apoi de către programatori pentru a accesa la această componentă în vederea obţinerii unei conexiuni la baza de date. Bibliografie 1. Hanumant Deshmukh, Jignesh Malavia, SCWCD Exam Study Kit: Java Web Component Developer Certification, Manning Publications 2002 ISBN: 1930110596 2. Lazăr, I.n Frenţiu, M., Niculescu, V., Programare orientată în JAVA Ed. Univ. Petru Maior, Târgu Mureş, 1999 3. Phillip Heller, Simon Roberts, Complete Java 2 Certification Study Guide, 3th Edition, Sybex Inc 2002 ISBN: 0782140777 4. http://java.sun.com/j2ee/ 5. http://www.javaranch.com 13 Este general acceptată şi folosită o convenţie de nume pentru prefixurile diferitelor tipuri de componente: ejb/ pentru componente de tip EJB jdbc/ pentru compenente de tip DataSource jms/ pentreu compenentede tip Messaging ( Topic sau Queue)

90