La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Università La Sapienza Ingegneria del Software I 1 Ingegneria del software I Seminario 3:Enterprise Java Beans.

Presentazioni simili


Presentazione sul tema: "Università La Sapienza Ingegneria del Software I 1 Ingegneria del software I Seminario 3:Enterprise Java Beans."— Transcript della presentazione:

1 Università La Sapienza Ingegneria del Software I 1 Ingegneria del software I Seminario 3:Enterprise Java Beans

2 Università La Sapienza Ingegneria del Software I 2 Enterprise Java Beans Architettura per sistema ad oggetti distribuito transazionale, basato su componenti Mantengono logica di impresa e permettono meccanismo uniforme di comunicazione con client Agiscono entro un container

3 Università La Sapienza Ingegneria del Software I 3 Enteprise Java Container Container definisce ambiente sicuro di esecuzione per un bean. Gestisce tutti gli aspetti runtime –accessi remoti –sicurezza –persistenza –transazioni –concorrenza –accesso a risorse.

4 Università La Sapienza Ingegneria del Software I 4 Comunicazione con client

5 Università La Sapienza Ingegneria del Software I 5 Deployment di EJBs 1.Scrivere una Bean Class 2.Scrivere una Remote Interface 3.Scrivere la Home Interface (create, activate) 4.Scrivere lejb-jar.xml 5.Scrivere gli xml per le specifiche piattaforme 6.Creare Naked EJB tramite un jar 7.Trasformare Naked in Deployable 8.Deploy dellejb 9.Richiamarlo dal client

6 Università La Sapienza Ingegneria del Software I 6 ConvertitoreBean Package …; Import javax.ejb.*; Import java.util.*; Public class ConvertitoreBean Implements SessionBean { private SessionContext ctx; public ConvertitoreBean() {} public void setSessionContext(SessionContext c){ ctx=c; } public void ejbCreate(); public void ejbRemove(); public void ejbPassivate(); public void ejbActivate(); public double converti(int lire) { return lire/ ; }

7 Università La Sapienza Ingegneria del Software I 7 Home Interface: ConvertitoreHome Package …; Import javax.ejb.*; Import java.rmi.*; Public Interface ConvertitoreHome extends EJBHome { public Convertitore create() throws CreateException, RemoteException }

8 Università La Sapienza Ingegneria del Software I 8 Remote Interface: Convertitore Package …; Import javax.ejb.*; Import java.rmi.*; Public Interface Convertitore extends EJBObject { public double converti(int lire) throws RemoteException; }

9 Università La Sapienza Ingegneria del Software I 9 Naked EJB ConvBean ConvertitoreHome Convertitore ConvertitoreBean Stateless Container

10 Università La Sapienza Ingegneria del Software I 10 Client Package client; Import javax.naming.*; Import java.rmi.*; Import …; Class Client { public static void main(String args[]){ try{ InitialContext ic = new InitialContext(); ConvertitoreHome home = (ConvertitoreHome) PortableRemoteObject.narrow(ic.lookup(ConvEuro),ConvertitoreHome.c lass); Convertitore convertitore = (Convertitore) home.create(); double euro= convertitore.converti(8500); System.out.println(Risultato:+euro); }catch (Exception e){ System.out.println(e); }

11 Università La Sapienza Ingegneria del Software I 11 Interazione fra bean e container Tre meccanisimi: –metodi callback –interface EJBContext –Java Naming and Directory Interface (JNDI)

12 Università La Sapienza Ingegneria del Software I 12 Metodi callback Bean implementa interface EnterpriseBean Metodi callback in EnterpriseBean attivati su eventi di ciclo di vita –attivazione –persistenza –completamento di transazioni –rimozione

13 Università La Sapienza Ingegneria del Software I 13 EJBContext Oggetto EJBContext ottenuto dal bean alla creazione. Fornisce riferimento al container. Interface EJBContext fornisce metodi per ottenere: –identità del client –stato di una transazione –riferimenti remoti a se stesso

14 Università La Sapienza Ingegneria del Software I 14 Java Naming and Directory Interface Bean ha accesso a Environment Naming Context (ENC) Gestito dal container Permette accesso a risorse –connessioni JDBC –altri enterprise bean –proprietà specifiche del bean

15 Università La Sapienza Ingegneria del Software I 15 Portabilità Contratto uniforme tra container e bean Mantenuto da container realizzati da costruttori diversi Permette migrazione dei bean da un container a un altro. Bean può concentrarsi solo su logica di impresa, non su protocolli

16 Università La Sapienza Ingegneria del Software I 16 Definizione dei bean Due interfacce –Home (EJBObject) definisce metodi relativi al ciclo di vita –Remote (EJBRemote) definisce comunicazione con client Una implementazione –realizzazione di EnterpriseBean

17 Università La Sapienza Ingegneria del Software I 17 Organizzazione di EJB

18 Università La Sapienza Ingegneria del Software I 18 Interfacce Home (EJBObject) –definisce metodi relativi al ciclo di vita create remove find Remote (EJBRemote) –definisce comunicazione con client accessor mutator task

19 Università La Sapienza Ingegneria del Software I 19 Gerarchia delle interfacce

20 Università La Sapienza Ingegneria del Software I 20 Distribuzione degli oggetti Bean vivono in un container ma possono essere acceduti in modo trasparente da altri container Comunicazione mediante meccanismo stub-skeleton Connessione realizzata tramite socket di rete. Può sfruttare IIOP o JRMP

21 Università La Sapienza Ingegneria del Software I 21 Responsabilità dellimplementazione Scheletri per interface EJBHome e EJBObject non implementati dal Bean, ma dal container. Metodi invocati dal client sono prima gestiti dal container, –applica controlli (e.g. persistenza, transazionalità, accesso) –delega al bean la realizzazione

22 Università La Sapienza Ingegneria del Software I 22 Gestione comunicazione

23 Università La Sapienza Ingegneria del Software I 23 Tipi di Bean Entity –oggetti che rappresentano entità nella logica di impresa –mantenuto in modo persistente Session –oggetti che rappresentano processi nella logica di impresa –definiscono caratteristiche dellattivazione

24 Università La Sapienza Ingegneria del Software I 24 Gerarchia delle classi Bean

25 Università La Sapienza Ingegneria del Software I 25 Tipi di entità Rappresenta dati mantenuti in un database. Fornisce interfaccia object-oriented al database Persistenza gestita –dal container –dal bean

26 Università La Sapienza Ingegneria del Software I 26 Container Managed Persistence Campi dellentità associati a elementi nel database Bean non ha codice per accedere il database. Accessi e modifiche dei campi passano per il container Container sincronizza lo stato del bean con il database.

27 Università La Sapienza Ingegneria del Software I 27 Campi gestiti dal container Tipi primitivi o tipi che implementano Serializable Campi da mantenere nel database identificati da manifesto di deployment associato al Bean (XML)

28 Università La Sapienza Ingegneria del Software I 28 Bean Managed Persistence Entity bean contiene codice di accesso al database (JDBC) Responsabile per leggere e scrivere il proprio stato nel database. Necessità di lettura o aggiornamento indicate dal container. Container può gestire locking e transazionalità

29 Università La Sapienza Ingegneria del Software I 29 Session bean Gestiscono le interazioni delle entità, accedono a risorse, eseguono compiti per il client Non sono persistenti Incapsulano business logic di unarchitettura three-tiered

30 Università La Sapienza Ingegneria del Software I 30 Tipi di sessione Stateless –comportamento simile a procedure: operano solo sugli argomenti passati –sono transienti Stateful –incapsulano logica di business e stato specifici a un client –Mantengono stato di business fra invocazioni di metodi

31 Università La Sapienza Ingegneria del Software I 31 Message Driven Bean Client non usano interfacce, inviano messaggi. Bean definisce solo la classe Simili a stateless session: non legati a client specifico Container può assegnare un messaggio a qualsiasi istanza del bean Bean può rispondere a client diversi Variabili del bean possono mantenere stato, verso altri bean o verso connessioni Rispondono a messaggi JMS Comportamento simile a listener. Viene attivato metodo onMessage(Message msg)


Scaricare ppt "Università La Sapienza Ingegneria del Software I 1 Ingegneria del software I Seminario 3:Enterprise Java Beans."

Presentazioni simili


Annunci Google