EJB Enterprise Java Beans B. Pernici
May 01, 2015
EJBEnterprise Java Beans
B. Pernici
Approccio Java
OggettiJavaBeans
Oggettiapplicativi
Interprete Java(Java Virtual Machine)
OggettiJavaBeans
Oggettiapplicativi
Interprete Java(Java Virtual Machine)
RMI
Application server – architettura a componenti
ComponentiComponenti
Interfacce concordate specificate dall’architettura a componenti
Approccio EJB
• Separare logica applicativa dall’uso 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
DBBack-end systems
servletsJSPs
EJBs
connectors
Legacy, ERP
Business partner,other system
Web services
techn. IIOP HTTP
JMS SQL (JDBC) Proprietary protocol Web services techn.
Ruoli
Costruisce applicazione
Costruisc
e 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