EJB3 Timer Services: il senso del tempo per gli EJB

Vi siete mai chiesti come facciano Ryanair o Expedia a mandarvi dei reminder via mail una volta che avete acquistato un biglietto? Beh, chi conosce gli scheduler, come per esempio il cron di Linux, non ha grossi dubbi. Chi conosce la piattaforma Java Enterprise neanche! Dalla specifica EJB 2.1 infatti sono presenti dei Timer Services messi a disposizione da qualsiasi Application Server (AS) J2EE 1.4 compliant. Con la specifica EJB3 l’utilizzo dei servizi di timing si è notevolmente semplificato, come del resto l’utilizzo stesso di tutta la piattaforma Enterprise....
Continue reading...

WebSphere 7.0 e Cache Distribuita: l’alter ego di EJB 3.1 @Singleton ?

La piattaforma Java EE 6 ha introdotto notevoli salti di qualità per quanto riguarda lo strato di persistenza e quello web. Siamo passati infatti da JPA 1.0 e JSF 1.2 direttamente a JPA 2.0 e JSF 2.0. Per quanto riguarda lo strato di logica di business invece abbiamo avuto un piccolo incremento di sottoversione (3.0 -> 3.1), d’altro canto il grande salto era già stato fatto dalla Java EE 5 in questo senso. EJB 3.1 ci riserva però una piacevole sorpresa, ovvero un nuovo tipo di EJB chiamato Singleton, di cui abbiamo già parlato in un . Per chi però lavora con WebSphere 7.0 (WAS) ancora non può accedere ad un bean di questo tipo, ma può girare intorno al problema sfruttando in modo opportuno la Cache Distribuita che l’Application Server mette a disposizione. Vediamo di che si tratta....
Continue reading...

Dai costruttori al Builder Pattern in Java

I Design Pattern (soluzioni progettuali generali a un problema ricorrente) sono molto inportanti nel software, a prescindere dal linguaggio di programmazione. In questo post vediamo insieme l’utilizzo del Builder Pattern in Java come alternativa all’utilizzo dei costruttori in overloading. L’obiettivo è quello di rimpiazzare costruttori poco leggibili e scomodi da utilizzare con una classe che si preoccupa della creazione dell’oggetto, fornendo metodi appropriati per i parametri e la validazione....
Continue reading...

EJB3 Message Driven Bean con JMS: Request/Reply Pattern con JBoss – Parte II

Riprendiamo e concludiamo il filone dei Message Driven Bean (MDB) che avevamo iniziato in due post precedenti: , avevamo descritto la struttra asincrona dei MDB che ricevono e inviano messaggi JMS, con riferimento a qualche pattern architetturale; avevamo invece messo mano al codice, in particolare su come implementare il Request/Reply pattern basato sul Correlation ID. Come promesso, vediamo adesso cosa bisogna fare per implementare invece il pattern basato su Message ID. ...
Continue reading...

EJB3 Stateless vs Stateful, quale è la differenza?

La risposta alla domanda “quale è la differenza fra ejb stateful e stateless?” sembra evidente: gli stateful mantengono lo stato e possono essere usati per il classico carrello della spesa mentre gli stateless non avendo uno stato possono essere usati per implementare dei servizi. Ma siamo sicuri che la risposta è così semplice? Per quanto viene mantenuto lo stato di un ejb stateful? Per la durata della sessione web? Proviamo a fare un po’ di chiarezza in questo post....
Continue reading...