15
UNIVERSITÀ DEGLI STUDI DI MODENA UNIVERSITÀ DEGLI STUDI DI MODENA E E REGGIO REGGIO EMILIA EMILIA Facoltà di Ingegneria – Sede di Modena Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria Informatica Progetto e sviluppo di un’applicazione Web- Progetto e sviluppo di un’applicazione Web- Database Database a 3 livelli a 3 livelli per la gestione degli appelli per la gestione degli appelli d’esame d’esame Relatore Relatore Prof. Sonia Prof. Sonia Bergamaschi Bergamaschi Correlatore Correlatore Ing. Maurizio Vincini Ing. Maurizio Vincini Anno Accademico 2001-2002 Anno Accademico 2001-2002 Tesi di Tesi di Laurea di Laurea di Andrea Andrea Malavasi Malavasi

UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

Embed Size (px)

Citation preview

Page 1: UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

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

Page 2: UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

Introduzione alla J2EEIntroduzione alla J2EE Architettura della J2EEArchitettura della J2EE Caratteristiche degli EJBCaratteristiche degli EJB ConclusioniConclusioni Demo dell’applicazioneDemo dell’applicazione

- 2 -- 2 -

AgendaAgenda

Page 3: UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

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…

Page 4: UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

- 4 -- 4 -

Modello applicativo della Modello applicativo della J2EEJ2EE

Page 5: UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

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

Page 6: UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

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

Page 7: UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

- 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

Page 8: UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

- 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

Page 9: UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

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

Page 10: UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

- 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.

Page 11: UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

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

Page 12: UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

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

-

Page 13: UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

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

-

Page 14: UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

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

--

Page 15: UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Corso di Laurea in Ingegneria

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