Meniu Referate
Romana
Romana1
Romana2
Istorie
Istorie1
Geografie
Geografie1
Diverse
Drept
Economie
Filozofie
Fizica
Informatica
Biologie
Chimie
Italiana
Spaniola
Germana
Franceza
Engleza
Marketing
Matematica
Medicina
Psihologie
Astronomie
Stiinte Politice
Proiecte

Cate ceva despre statefull session beans

...ejb.Cand un cleint apeleaza metoda createint I asupra interfetei Home,parametrii sunt pasati metodei ejbCreate din bean. Metoda ejbPassive este apelata de cantainer atunci cand sunt instantiate prea multe bean-uri si apare pericolul de a a avea putine resurse.Cand se ajunge in aceasta stare,containerul poate pasiva passivate unele dintre bean-uri,in sensul ca le salveaza temporar intr-un mediu de stocare,ca de exemplu o baza de date sau un sistem de fisiere.Aceasta este posibila datorita faptului ca bean-urile suntserializabile.Inainte de pasivizare,containerul apeleaza metoda ejbPassivate ,astfel anuntand bean-ul sa elibereze orice resurse sistem pe care le detine,ca de exemplu socket-urisau conexiuni la baze de date.Observati exemplul 2.2Exemplul 2.2. O metoda ejbPassiveImport java.ejb. Public class FirstBean implements SessionBean I Public void ejbPassive I close socket connexions,database connections S S De remarcat ca in cazul stateless session beans nu se aplica pasivizarea,pentru ca aceste bean-uri nu pasteraza starea si pot fi createdistruse pur si simplu.neffind cencesar mecanismus de activarepasivizare. Atunci cand un client are nevoie sa utilizeze un bean care a fost pasivizat,apare procesul invers containeruladuce bean-ul din mediul de stocare inapoi in memorie si apoi il activeaza.Imediat ce bean-ul a fost activat,acesta va apela metoda ejbActivate la apelul careia bean-ul obtine toate resursele de care are nevoie.Aceste resurse sunt,de obicei ,cele care au fost eliberate la pasivizare .Un exemplu pentru activarea unuei bean este exemplul 2.3Exemplu 2.3. O metoda ejbActiveimport javax.ejb. public class FirstBean implemets SessionBean public void ejbActiveISI open sockets connexions,database connexions etc S S Ca si in cazul pasivizarii , nu este necesara implementarea mecanismului de activare pentru stateless session beans ,deoarece se foloseste mecanismul de createdistrugere. Atunci cand containerul este pe punctul de a distruge o instanta a unui bean, el va apela metoda ejbRemove a bean-ului.ejbRemove este o metoda de a anunta bean-ul ca este pe punctul de a fi distrus si de a-I permite sa-si incheie existenta asa cum considera.Aceasta metoda este necesara pentru toate bean-urile si nu primeste parametrii,motiv pentru care este doar un per bean ,spre deosebire de ejbCreate care sunt mai multe.Implementarea metodei ejbCreate trebuie sa pregateasca bean-ul pentru distrugere,eliberand toate resursele pe care le-a ocupat.Containerul poate apela metoda ejbRemove in orice moment,inclusiv in cazurile in care containerul decide ca timpul de viata al bean-ului a expirat. Pe langa metodele pe care le-am descris pana acum si care sunt apelate doar de container pentru a gestiona bean-ul,mai exista metode de business business methods.Aceste metode sunt cele care rezolva,de fapt, problemele de business,ca in exemplul 2.4Exemplul 2.4. O metoda de businessimport java.ejb.public class FirstBean SessionBean public int add int i,int jI return ij S S Pentru ca un client sa poata invoca o anume metoda de business,aceasta trebuie sa fie declarata in interfata Remote.2.4.3 Cum se utilizeaza un session bean Privind si din partea clientului,acesta incearca sa rezolve probleme concrete prin utilizarea unuia sau mai multor beans.Un client trebuie sa urmeze mai multi pasi in rezolvarea unei probleme,folosind un bean.In primul rand el trebuie sa obtina obiectul Home,apoi sa creeze un obiect EJB,sa apeleze ce metode are nevoie folosind interfata Remote si la urma sa il distruga.2.4.3.1 Obtinerea obiectivului Home Pentru a obtine obiectul Home ,trebuie ca, in codul clientului,sa se utilizeze Java Naming and Directory Interface JNDIIm proiectarea J2EE, s-a avut in vedere transparenta locatiei location transparency.Aceats inseamna ca modul in care este scrios codulnu trebuie sa depinda de modul in care sunt distribuite bean-urile pe nivele tierssau pe ce masini sunt acestea plasate.Aceasta transparenta este castigata prin intermediul serviciului de naming and directory.Acest serviciu are rolul de a stoca si gasi resurse in retea.Exemple de servicii de naming and rirectory sunt Active Directory de la Microsoft sau Lotus de la IBM. Im mod traditional , corporatiile au folosit serviciile de directory pentru a stoca numeleutilizatorilor si parolele,locatia unde gasesc masinile sau imprimantele etc.Produsele J2EE exploateaza serviciile de directory pentru a stoca informatii in legatura cu rsursele pe care aplicatia le foloseste.Aceste resurse pot fi obiecte EJB,proprietati ale mediului enterprise bean, drivere de baze de date sau orice alte resurse ce folosesc bean-ul.Acestea toate fac codul EJB independent de configuratia resurselor ,fiindca mai tarziu ,daca una dintre resurse este mutata nu este nevoie sa se efectueze vreo modificare in cod,pentru ca se poate,pur si simplu modificarea directory service ca sa arate noua locatie a resurselor .Aceasta trasatura ,transparenta locatiei,este foarte importanta atunci cand se fac modificari in privinta locatiei resrselor ,dar este necesara mai ales cand se cumpara componente gata realizate. Pentru a putea gasi o resursa n cazul unei aplizatii J2EE,este necesara parcurgerea a doi pasi.fiecareiresurse sa I se asocieze un identificator,iar containerul va asocia identificatorul cu resursaclientii vor folosi identificatorul asociat resursei di JNDI pentru a gasi resursa respectiva Pentru a avea transparenta locatiei in cazul obiectelor Home, containerele EJB mascheaza locatia efectiva a obiectelor Home in codul clientului.Clientii nu vor utiliza numele masinii pe care rezida obiectele ,ci vor utiliza serviciile JNDI pentru a gasi acele obiecte .Obiectele Home sun localizate undeva pe retea cel care dezvolta un bean nu se preocupa ed locatia ce o va avea bean-ul. Pentru ca utilizatorii sa poata localiza un obiect Home ,acesta trebuie sa aiba un identificator pe care containerul il va asocia,in mod automat cu obiectul Home. De exemplu,pentru un bean numit FirstBean se poate specifica un identificator ,,firstBeanIdentif.Acesta va fi asociat automat de container pentru obiectul Home al bean-ului.In spatele scenelor,JNDI cauta,in cadrul mai multor directory services,obiectul Home care are asociart acel identificator.Daca obiectul Home este gasit,se va returna clientului o referinta la el. In cazul aplicatiilor,contextul initial obiectul de tip InitialContext,care este furnizat de container cand apeleaza metoda bean-ului setinitialContext ,dispune de toate configurarile necesare pentru a beneficia deserviciul de naming and directory.Pentru a gasi interfata Home a bean-lui,folosind contextul initial,nu este necesar decat apelul metodei lookup. ...
Download