Ingegneria del software
Modulo 3 - Tecniche d’implementazione
Unità didattica 2 - EJB
Ernesto Damiani
Università degli Studi di Milano
Lezione 1 – Introduzione a EJB
Enterprise Java Bean
• Gli Enterprise Java Bean sono componenti Java che si adattano l’uno all’altro in modo standard
• Il container fornisce un livello di portabilità che permette ai bean sviluppati da un programmatore di funzionare nel container di una terza parte
Container
• I container sono contenitori che sanno come comunicare con i bean e come gestirli
– Il container si pone tra il client e il bean; questo gli dà l’opportunità di implementare servizi di cui molti sviluppatori non vogliono preoccuparsi
Servizi del container
• Tipici servizi del container EJB:– gestione della persistenza
– transazioni
– concorrenza
– gestione dei thread
– sicurezza
Fornitori di container
• Molti produttori propongono container per EJB per favorire l’integrazione dei loro prodotti:
– IBM
– WebLogic
– Sybase
– Oracle
Un esempio: Infoworld (1)
• Infoworld ha sviluppato un’applicazione d’esempio per EJB usando:
– l’application server Java Tengah di WebLogic come container
– server Web IBM
– Oracle come database
• L’uso di servlet che fungono da client verso i componenti EJB gestisce i browser che non supportano Java
Un esempio: Infoworld (2)
• L’applicazione d’esempio, J-Store, simula un servizio di shopping on-line
– EJB gestisce gli oggetti di business
– I servlet Java e le pagine Java si occupano della trasmissione delle pagine e della logica di visualizzazione
– L’applicazione autentica gli utenti e consente loro di far scorrere immagini GIF, caricarle in una shopping card ed eseguire gli acquisti
Dietro le quinte
• Il container si interpone tra il client e il bean
• I bean non espongono le loro funzioni direttamente al client
• Il container mette a disposizione i metodi d’interfaccia remota, che vengono predisposti in anticipo dal fornitore del container: il “wrapping” dell’oggetto
Programmazione dichiarativa
Al momento dell’implementazione si può specificare al container come gestire i componenti
Unwrapping
Per trovare l’home interface del bean, il client deve invocare il container tramite JNDI (Java Naming and Directory Interface)
FINE