Post on 08-Jan-2016
description
UNIVERSITÀ DEGLI STUDI DI MODENAUNIVERSITÀ DEGLI STUDI DI MODENA EE REGGIO REGGIO EMILIAEMILIA
Facoltà di Ingegneria – Sede di ModenaFacoltà di Ingegneria – Sede di Modena
Corso di Laurea in Ingegneria InformaticaCorso di Laurea in Ingegneria Informatica
Progetto e sviluppo di un’applicazione Web-Progetto e sviluppo di un’applicazione Web-Database Database
a 3 livellia 3 livelli per la gestione degli appelli d’esameper la gestione degli appelli d’esame
RelatoreRelatore
Prof. Sonia Prof. Sonia BergamaschiBergamaschi
CorrelatoreCorrelatore
Ing. Maurizio VinciniIng. Maurizio Vincini
Anno Accademico 2001-2002Anno Accademico 2001-2002
Tesi di Laurea Tesi di Laurea didi
Andrea Andrea MalavasiMalavasi
Introduzione alla J2EEIntroduzione alla J2EE Architettura della J2EEArchitettura della J2EE Caratteristiche degli EJBCaratteristiche degli EJB ConclusioniConclusioni Demo dell’applicazioneDemo dell’applicazione
- 2 -- 2 -
AgendaAgenda
Realizzare applicazioni distribuite Realizzare applicazioni distribuite soddisfando i seguenti requisiti:soddisfando i seguenti requisiti:
• definizione di un modello di progettazione definizione di un modello di progettazione standardstandard
• supporto per applicazioni client supporto per applicazioni client eterogeneeeterogenee
• riduzione dei tempi di svilupporiduzione dei tempi di sviluppo• sscalabilitàcalabilità• gestione efficiente delle risorsegestione efficiente delle risorse• gestione del carico di lavoro automaticagestione del carico di lavoro automatica• integrazione dei sistemi esistentiintegrazione dei sistemi esistenti• ampia scelta di server, strumenti e ampia scelta di server, strumenti e
componenticomponenti• sicurezzasicurezza
- 3 -- 3 -
Il Il problema…problema…
- 4 -- 4 -
Modello applicativo della Modello applicativo della J2EEJ2EE
Semplificazione del processo di sviluppoSemplificazione del processo di sviluppo Riusabilità del codice e ModularitàRiusabilità del codice e Modularità RobustezzaRobustezza Gestione automatica di:Gestione automatica di:
transazioni (Commit, Rollback e Recovery)transazioni (Commit, Rollback e Recovery)scalabilità: aumentando l’HW, le prestazioni scalabilità: aumentando l’HW, le prestazioni
aumentanoaumentano inin modo linearemodo linearessicurezzaicurezza
Alte prestazioniAlte prestazioni
bilanciamento dinamico dei carichi di lavorobilanciamento dinamico dei carichi di lavorocaching delle connessioni al databasecaching delle connessioni al database
- 5 -- 5 -
EJB: I EJB: I vantaggivantaggi
EJB Server: Application ServerEJB Server: Application Server EJB Container: gestisce gli EJBEJB Container: gestisce gli EJB Enterprise Bean Instance: una istanza di EJBEnterprise Bean Instance: una istanza di EJB Client: utilizzatore finale del beanClient: utilizzatore finale del bean
- 6 -- 6 -
EJB: EJB: l’architettural’architettura
- 7 -- 7 -
Tipologie di Tipologie di EJBEJB
Sono previsti due tipi Sono previsti due tipi di EJB:di EJB:
– – Session BeanSession Bean
• • non sono non sono persistentipersistenti
– – Entity BeanEntity Bean
• • sono persistentisono persistenti
- 8 -- 8 -
Session Session BeanBeanNon è persistenteNon è persistente
Implementa l’interfaccia Implementa l’interfaccia javax.ejb.SessionBeanjavax.ejb.SessionBean
In genere implementa la logica di business dell’applicazioneIn genere implementa la logica di business dell’applicazione
– – Riceve le invocazioni dal clientRiceve le invocazioni dal client
– – Agisce (creazione, modifica, cancellazione) sugli Entity BeanAgisce (creazione, modifica, cancellazione) sugli Entity Bean
• • si comporta come client verso gli entitysi comporta come client verso gli entity
• • L’accesso agli entity bean risulta così maggiormente L’accesso agli entity bean risulta così maggiormente protettoprotetto
– – La sequenza delle operazioni sono eseguite in genere La sequenza delle operazioni sono eseguite in genere all’internoall’interno
di una transazionedi una transazione
Ciascuna istanza è da considerarsi una ESTENSIONE logicaCiascuna istanza è da considerarsi una ESTENSIONE logica dell’applicazionedell’applicazione clientclient
– – La vita di un session bean è legata al client che l’ha instanziatoLa vita di un session bean è legata al client che l’ha instanziato
– – E’ come un agente dedicato allo specifico client, in esecuzioneE’ come un agente dedicato allo specifico client, in esecuzione
sul serversul server
Rappresenta un oggetto Rappresenta un oggetto persistentepersistente
Consente di mappare una sorgente dati su una Consente di mappare una sorgente dati su una classe Javaclasse Java
– – tabella, vista, join o stored procedure in un tabella, vista, join o stored procedure in un databasedatabase
relazionalerelazionale
– – dati legacy opportunamente incapsulatidati legacy opportunamente incapsulati
La lettura / modifica degli attributi di tali entità La lettura / modifica degli attributi di tali entità si traducesi traduce
nelle corrispondenti operazioni sulla tabella stessanelle corrispondenti operazioni sulla tabella stessa
Ciascuna istanza può essere condivisa da tanti Ciascuna istanza può essere condivisa da tanti clientclient
Quando l’istanza di un Entity Bean smette di Quando l’istanza di un Entity Bean smette di esistere, ilesistere, il
dato che rappresenta continua ad esistere sul DBdato che rappresenta continua ad esistere sul DB
in caso di crash del sistema i dati rappresentati in caso di crash del sistema i dati rappresentati dagli entity bean resistono, mentre i session dagli entity bean resistono, mentre i session bean vengono perdutibean vengono perduti
- 9 -- 9 -
Entity Entity BeanBean
- 10 -- 10 -
Connection PoolingConnection Pooling Accesso al database per mezzo di una tecnica Accesso al database per mezzo di una tecnica definita connection pooling che permette l’accesso definita connection pooling che permette l’accesso alle risorse server in particolare ai database ad un alle risorse server in particolare ai database ad un numero elevato di utentinumero elevato di utenti
Gestione automatica della cache di connessione Gestione automatica della cache di connessione da parte dell’EJB container da parte dell’EJB container
Utilizzo della standard API JBDC che mette a Utilizzo della standard API JBDC che mette a disposizione un’interfaccia definita DataSource per disposizione un’interfaccia definita DataSource per la gestione delle connessioni.la gestione delle connessioni.
Vantaggi della Vantaggi della J2EEJ2EE
Architettura e sviluppo semplificatiArchitettura e sviluppo semplificati ScalabilitàScalabilità per soddisfare l’aumento di per soddisfare l’aumento di
richiesterichieste Integrazione di sistemi informativi Integrazione di sistemi informativi
preesistentipreesistenti Ampia scelta di server, strumenti di Ampia scelta di server, strumenti di
sviluppo,sviluppo, componenticomponenti Modello per la sicurezza flessibileModello per la sicurezza flessibile
- 11 - 11 --
Architettura e sviluppo Architettura e sviluppo semplificatisemplificati
La piattaforma J2EE offre un modello di La piattaforma J2EE offre un modello di svilupposviluppo basato su componentibasato su componenti semplificatosemplificato
Basandosi sulla J2SE, supporta il paradigma Basandosi sulla J2SE, supporta il paradigma WriteWrite Once, Run Anywhere: un’applicazione Once, Run Anywhere: un’applicazione risultarisulta portabile su portabile su ttutti i server conformi utti i server conformi allo standard J2EEallo standard J2EE
Il modello basato su componenti offre Il modello basato su componenti offre vvantaggiantaggi rispetto a diversi aspetti:rispetto a diversi aspetti: adattamento flessibile alle funzionalità adattamento flessibile alle funzionalità
richieste perrichieste per un’applicazioneun’applicazione definizione del comportamento definizione del comportamento
dell’applicazione indell’applicazione in fase di assemblaggio e fase di assemblaggio e deploymentdeployment
suddivisione dei ruolisuddivisione dei ruoli- 12
-
ScalabilitScalabilitàà
I container della piattaforma J2EE I container della piattaforma J2EE forniscono unforniscono un meccanismo che permette di meccanismo che permette di ottenere un alto livelloottenere un alto livello di scalabilità di scalabilità dell’applicazione distribuita, senzadell’applicazione distribuita, senza richiedere l’intervento da parte dello richiedere l’intervento da parte dello sviluppatoresviluppatore
Possono realizzare la scalabilità rispetto a Possono realizzare la scalabilità rispetto a particolariparticolari funzionalitàfunzionalità dell’applicazione, dell’applicazione, come il supporto allecome il supporto alle transazioni, le transazioni, le connessioni verso i database, laconnessioni verso i database, la gestione gestione del ciclo di vitadel ciclo di vita
È possibile configurare i container per È possibile configurare i container per essere eseguitiessere eseguiti su più calcolatori su più calcolatori distribuitidistribuiti - 13
-
Integrazione di sistemi informativi Integrazione di sistemi informativi preesistentipreesistenti
La piattaforma J2EE, insieme alla J2SE, include un La piattaforma J2EE, insieme alla J2SE, include un insieme diinsieme di API standard per accedere a sistemi API standard per accedere a sistemi informativiinformativi preesistenti:preesistenti:
JDBC: accesso a database relazionaliJDBC: accesso a database relazionali Java Transaction API: gestione e coordinamento Java Transaction API: gestione e coordinamento
didi transazioni distribuitetransazioni distribuite Java Naming and Directory Service: accesso alle Java Naming and Directory Service: accesso alle
informazioniinformazioni dei servizi di naming e directory dei servizi di naming e directory aziendaliaziendali
Java Message Service: invio e ricezione di Java Message Service: invio e ricezione di messaggi messaggi
JavaMail: invio e ricezione di messaggi di posta JavaMail: invio e ricezione di messaggi di posta elettronicaelettronica
Java IDL: invocazione di servizi CORBAJava IDL: invocazione di servizi CORBA- 14 - 14
--
J2EE piattaforma multilivello per la realizzazione di J2EE piattaforma multilivello per la realizzazione di applicazioni distribuiteapplicazioni distribuite
Strumenti utilizzati: Strumenti utilizzati:
Linguaggio di programmazione:Linguaggio di programmazione: Java 2Java 2 Sistema operativo: Sistema operativo: UnixUnix WEB server: WEB server: TomcatTomcat EJB server: EJB server: JBossJBoss RDBMS: RDBMS: SQL serverSQL server
Componenti utilizzati:Componenti utilizzati:
EJB (implementati 25)EJB (implementati 25) JSP (implementate 18)JSP (implementate 18)
Oltre 10.000 linee di codice prodotteOltre 10.000 linee di codice prodotte
- 15 -- 15 -
ConclusioniConclusioni