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

Slides:



Advertisements
Presentazioni simili
Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) dopo ciascuna istruzione del main: public class Up extends Object { public.
Advertisements

TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
/ fax
1 Le s-espressioni. 2 Un nuovo esempio completo: le s-espressioni Sexpr 4 alberi binari (possibilmente vuoti) che hanno sulle foglie atomi (stringhe)
1 Progettazione gerarchica delle s- espressioni, utilizzando lereditarietà
Interfacce Java.
WSDL (Web Services Description Language) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni
Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill.
Capitolo 7 Programmazione con metodi e classi Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004.
JPA Overview della tecnologia. Java Persistence Architecture Definita nella JSR-220 EJB 3.0 ( Tentativo di unificare EJB2.1 con.
Java Enterprise Edition (JEE)
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Esercizio 2. Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni di classe.
Frontespizio Economia Monetaria Anno Accademico
1 la competenza alfabetica della popolazione italiana CEDE distribuzione percentuale per livelli.
Seam.
Dipartimento di Ricerca Sociale - Università del Piemonte Orientale 1 Castelli Aperti giugno 2005 Castello di Camino (AL) IL PUBBLICO DI CASTELLI.
EJB Enterprise Java Beans B. Pernici. Approccio Java.
Domenico Presenza Stato implementazione prototipo Engineering Milano – 20 Luglio 2005.
Layouts and Graphics. component - container - layout Un Container contiene [0 o +] Components Il Layout specifica come i Components sono disposti nel.
Model – View - Controller
Esempio: Tombola! Parte seconda.
Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.
J0 1 Marco Ronchetti Java Threads & Sincronizzazione.
Modificatori: static Variabili e metodi associati ad una Classe anziche ad un Oggetto sono definiti static. Le variabili statiche servono come singola.
Richiami di Java Multithreading. Threads (subclassing) public class A { public void a_method { C t = new C(); //C t = new C(String name); t.start(); …
Sezione: Costruttori Costruttori. Definizione dei costruttori Se per una classe A non scrivo nessun costruttore, il sistema automaticamente crea il costruttore.
prompt> java SumAverage
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
1 Ultima Lezione del Corso di Fondamenti di Informatica 1 a.a – 06 Ma 29-Nov-2005.
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
Java Database Connection (dal corso dei Servizi Web)
Programming with JXTA Hello World Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group.
Università La Sapienza Ingegneria del Software I 1 Ingegneria del software I Seminario 2: Microsoft.NET.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
1 laboratorio di calcolo II AA 2003/04 ottava settimana a cura di Domizia Orestano Dipartimento di Fisica Stanza tel. ( )
FONDAMENTI DI INFORMATICA III WfMC-1. FONDAMENTI DI INFORMATICA III WfMC-2 WFMC Cose WfMC Workflow Management Coalition (WfMC), Brussels, è unorganizzazione.
Programmazione distribuita in Java
Java base VI: Gestione I/O. Argomenti Introdurre le API per linput e output in Java.
Componenti dell’architettura Oracle
A.N 991 Client server SQL DBMS TP monitors componenti middleware CORBA Web server OTM HTML Protocolli Sicurezza dati istruzioni funzioni oggetti interfacce.
ETEN – Re-Public – RePublic website 1\5 eTEN Progetto Re-Public – RePublic website Workshop finale Dott. Marco Sentinelli – Galgano International Roma,
PROGETTO DI STRUMENTI PER LA CONFIGURAZIONE DI APPLICAZIONI JAVA ENTERPRISE Anno Accademico 2006 / 2007 Sessione III FACOLTÀ DI INGEGNERIA CORSO DI LAUREA.
Attività Formativa Sviluppo di un WORKFLOW ENGINE di Dott. Riccardo Gasperoni Alessandro Caricato Gabriele Trabucco in collaborazione con Progesi S.p.A.
Facelets case study: Ricettario Docente: Gabriele Lombardi
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2003/2004.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
Ese 2 (del 31 Marzo 2004). Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni.
1101 = x 10 x 10 x x 10 x = CORRISPONDENZE
Soluzioni 1.Struttura base soluzione 2.Lettura dei tasti 3.Identificazione dei tasti 4.Accensione dei LED 5.Rotazione dei LED 6.Rotazione dei tasti fino.
Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i.
Ad opera di: Matteo Donatelli e Maurizio Di Paolo Presentazione su : Elettropneumatica 1.
1 Simulated multiple inheritance Sandro Pedrazzini Approfondimento Simulated multiple inheritance in Java.
Ingegneria del software Modulo 3 -Tecniche dimplementazione Unità didattica 2 -EJB Ernesto Damiani Università degli Studi di Milano Lezione 3 – Ruoli nella.
Ingegneria del software Modulo 3 -Tecniche dimplementazione Unità didattica 2 -EJB Ernesto Damiani Università degli Studi di Milano Lezione 4 – Le transazioni.
Bando di Residenza Cap Scheda ENTE 3ROL - Richieste On Line.
Corso di Web Services A A Domenico Rosaci Patterns di E-Business D. RosaciPatterns per l'e-Business.
Pippo.
Java Enterprise Edition
Collection & Generics in Java
Fondamenti di informatica T-A Esercitazione 7 : Collezioni AA 2012/2013 Tutor : Domenico Di Carlo.
Bando Pittori e Scultori in Piemonte alla metà del ‘700
Java Enterprise Edition
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
lun mar mer gio ven SAB DOM FEBBRAIO.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
J2EE Antonio Cisternino. Java Beans I Java Beans sono un esempio di realizzazione di un sistema a componenti in Java I componenti possono adottare convenzioni.
Transcript della presentazione:

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

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

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.

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

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

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/ ; }

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 }

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; }

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

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); }

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)

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

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

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

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

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

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

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

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

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

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

Università La Sapienza Ingegneria del Software I 22 Gestione comunicazione

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

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

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

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.

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)

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à

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

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

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)