EJB este un acronim pentru enterprise java bean . Este o specificație furnizată de Sun Microsystems pentru a dezvolta aplicații distribuite securizate, robuste și scalabile.
Pentru a obține informații despre aplicațiile distribuite, vizitați Tutorial RMI primul.
Pentru a rula aplicația EJB, aveți nevoie de un server de aplicații (EJB Container) cum ar fi Jboss, Glassfish, Weblogic, Websphere etc. Acesta efectuează:
- managementul ciclului de viață,
- Securitate,
- managementul tranzacțiilor și
- punerea în comun a obiectelor.
Aplicația EJB este implementată pe server, deci este numită și componentă pe partea serverului.
EJB este ca COM ( Model de obiecte componente ) furnizate de Microsoft. Dar, este diferit de Java Bean, RMI și Web Services.
Când utilizați Enterprise Java Bean?
- Aplicația necesită acces la distanță . Cu alte cuvinte, este distribuit.
- Aplicația trebuie să fie scalabilă . Aplicațiile EJB acceptă echilibrarea sarcinii, clustering și fail-over.
- Aplicația necesită o logică de afaceri încapsulată . Aplicația EJB este separată de prezentare și stratul persistent.
Tipuri de Enterprise Java Bean
Există 3 tipuri de bean enterprise în Java.
Session Bean
Session bean conține logica de afaceri care poate fi invocată de clientul local, la distanță sau webservice.
Message Driven Bean
La fel ca Session Bean, acesta conține logica de afaceri, dar este invocat prin transmiterea unui mesaj.
Entity Bean
Acesta încapsulează starea care poate fi persistată în baza de date. Este depreciat. Acum, este înlocuit cu JPA (Java Persistent API).
Diferența dintre RMI și EJB
Atât RMI, cât și EJB, oferă servicii pentru a accesa un obiect care rulează într-un alt JVM (cunoscut ca obiect la distanță) de la un alt JVM. Diferențele dintre RMI și EJB sunt prezentate mai jos:
RMI | EJB |
---|---|
În RMI, serviciile middleware, cum ar fi securitatea, gestionarea tranzacțiilor, gruparea obiectelor etc., trebuie să fie realizate de programatorul java. | În EJB, serviciile middleware sunt furnizate automat de EJB Container. |
RMI nu este o componentă pe partea serverului. Nu este necesar să fie implementat pe server. | EJB este o componentă pe partea serverului, este necesar să fie implementată pe server. |
RMI este construit pe partea superioară a programării socketului. | Tehnologia EJB este construită pe vârful RMI. |
EJB și Webservice
În EJB, componenta bean și clientul bean trebuie să fie scrise în limbajul java.
Dacă bean client trebuie să fie scris în altă limbă, cum ar fi .net , php etc, trebuie să mergem cu servicii web (SAPUN sau REST). Deci, EJB cu serviciu web va fi o opțiune mai bună.
Dezavantajele EJB
- Necesită server de aplicații
- Necesită doar client java. Pentru clientul în altă limbă, trebuie să apelați la serviciul web.
- Complex de înțelegere și dezvoltare a aplicațiilor ejb.