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