EJB Enterprise Java Beans B. Pernici
Approccio Java
Application server – architettura a componenti Componenti Interfacce concordate specificate dallarchitettura a componenti
Approccio EJB Separare logica applicativa dalluso di servizi di middleware Gestione del ciclo di vita di un componente
Enterprise Jave Beans JavaBeans: –class Java con metodi get/set –Reusable components –Possono essere composti per creare applicazioni –Piu piccoli di EJB –Development components, possono contribuire a costruire un EJB EJB –Deployable components: vivono in ambiente run-time: application server che ne gestisce il ciclo di vita (deploy) –Tecnologia server-side
Architettura J2EE (Java 2 platform, enterprise edition) J2EE server Servizi JNDI (naming and directory) Transaction s. Security s. Database driver JMS Business partner, other system Applets, applications, CORBA clients DB Back-end systems servlets JSPs EJBs connectors Legacy, ERP Business partner, other system Web services techn. IIOP HTTP JMS SQL (JDBC) Proprietary protocolWeb services techn.
Ruoli Costruisce applicazione Costruisce EJB Bean provider Tool provider EJB container /server provider Appl. assembler Fornisce strumenti Fornisce EJB container/server deployer deployment Amministratore (mantiene il sistema)
Implicit middleware Remote interface (e local interface) Con dichiarazioni (descrittore deployment descriptor) – file XML Gestione degli Enterprise Beans in un container, instance pooling Request interceptor Home interface Servizi di ricerca di home interface (JNDI: Java Naming and Directory Interface)
Tipi di Bean Session bean –rappresentano processi applicativi, azioni (verbi) Entity Bean –Rappresentano i dati applicativi, data objects (nomi) Message-driven bean –Simili a session beans, chiamate solo tramite messaggi –Logica a livelli
Esempio: session beans che chiamano entity bean Session bean –Sportello bancario (operazioni) –Autorizzazione carta credito –Invio ordini –Motore per catalogo –Broker per asta –Router approvazione acquisto Entity bean –Conto corrente –Carta di credito –Ordine, linea ordine –Prodotto –Offerta, voce –Ordine di acquisto
Session beans Stateless Stateful –Pooling –Passivation –Attivazione (ejbactivate) –cancellazione
Deployment Sessione –Nome –Home (classi) –Tipo (stateful/stateless) –Chi gestisce la transazione Da programma (con begin, commit, abort) Container (transazioni dichiarative): implicite, servizio transazionale
Entity beans loading e storing Bean-managed persistence Container-managed persistence
Deployment descriptor Entity –Classi (per entita) –Persistenza (bean/container managed) Risorse –JDBC Assembly –Metodi transazionali
Message beans Message middleware JMS: –Principali domini (domain): Publish/subscribe (pub/sub) Point-to-point (PTP) – ogni msg consumato una volta sola