Enterprise Java Beans

Cosa sono

Gli Enterprise Java Beans (abbreviato EJB) sono i componenti delegati all’implementazione della logica di business di un’applicazione enterprise all’interno dell’architettura costituita da Java EE.

Può suonare ancora come una definizione astratta: in pratica sono dei componenti (lati server) scritti seguendo determinate specifiche (EJB) che assicurano che tale componente è implementato secondo un certo standard ed offre determinate caratteristiche definite dallo standard EJB, quali gestione della concorrenza, persistenza, supporto alle transazioni eccetera.

Questi componenti sono poi eseguiti in un Container EJB, che si occupa di gestire il ciclo di vita dei componenti e la gestione di funzionalità avanzate quali ad esempio transazioni o sicurezza. Il container EJB è un ulteriore livello di astrazione, in realtà esso gira sopra un Server EJB che fornisce l’accesso a servizi di sistema, a middleware vari o a sorgenti dati.

Un EJB quindi va scritto secondo determinate regole, e poi posso mandarlo in esecuzione in un application server ed esso sarà gestito secondo regole definite all’interno dell’EJB stesso. Questa proprietà di essere molto “indipendente” dal punto di vista dell’installazione e dell’esecuzione rende gli EJB particolarmente adatti a tutte quelle situazione dove l’architettura del sistema è distribuita e potrebbero esserci necessità di bilanciamento del carico e delle funzionalità tra varie macchine.

I tipi di EJB

Lo standard definisce tre tipi di EJB:

Entity EJB

Sono la tecnologia più comunemente adottata in ambito JEE per la persistenza dei dati: rappresentano informazioni immagazzinate persistentemente (in un database), fornendo a vari utenti l’accesso condiviso ai dati del database.

E’ presente un intero articolo in questo blog dedicato agli Entity EJB.

Session EJB

E’ un EJB che implementa una business logic per i client (es. elaborazione di un ordine): è una interfaccia tra il client stesso ed i servizi offerti dai componenti interni disponibili sul server.

Gli EJB di questo tipo hanno una vita di durata ben definita: inizia con la richiesta del servizio da parte del client e viene distrutto quando il client si disconnette.

E’ possibile distinguere due tipi di Session EJB:

  • Stateful Session Bean: in questo caso gli oggetti contengono uno stato, non persistente ma comunque presentano uno stato accessibile solo da un determinato client che si connette al Bean.
  • Stateless Session Bean: sono oggetti distribuiti senza uno stato associato, ed in questo modo il container può delegare ad un qualsiasi session bean del pool l’invocazione di un metodo; è inoltre possibile un accesso concorrente alle funzionalità offerte dal bean

Message driven EJB

Sono EJB caratterizzati da un funzionamento asincrono: sono in attesa di un messaggio da parte del client, che però non ricevono direttamente, ma vanno a leggere attraverso la tecnologia JMS (Java Message Service) un topic o una queue (ai quali il bean sarà iscritto) presso la quale i client inviano messaggio.

I client EJB

Finora si è parlato di client EJB, si tratta sostanzialmente di thin client, pagine JSP o Servlet che si appoggiano sugli EJB per quel che riguarda le logiche slegate dalla presentazione, quindi logica di business e dati.

A breve seguiranno altri articoli per approfondire i vari tipi di EJB.

Se vuoi approndire l’argomento Java EE ed EJB, puoi seguire gli altri articoli di questa serie su questo blog, oppure acquistare il seguente libro da Amazon, che mi sento di raccomandare:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *