UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Facoltà di Ingegneria – Sede di Modena
Corso di Laurea in Ingegneria Informatica
Progetto e sviluppo di un’applicazione Web-Database
a 3 livelli per la gestione degli appelli d’esame
Relatore
Tesi di Laurea di
Prof. Sonia Bergamaschi
Andrea Malavasi
Correlatore
Ing. Maurizio Vincini
Anno Accademico 2001-2002
Agenda
 Introduzione alla J2EE
 Architettura della J2EE
 Caratteristiche degli EJB
 Conclusioni
 Demo dell’applicazione
-2-
Il problema…
 Realizzare applicazioni distribuite soddisfando i
seguenti requisiti:
• definizione di un modello di progettazione
standard
• supporto per applicazioni client eterogenee
• riduzione dei tempi di sviluppo
• scalabilità
• gestione efficiente delle risorse
• gestione del carico di lavoro automatica
• integrazione dei sistemi esistenti
• ampia scelta di server, strumenti e componenti
• sicurezza
-3-
Modello applicativo della J2EE
-4-
EJB: I vantaggi
 Semplificazione del processo di sviluppo
 Riusabilità del codice e Modularità
 Robustezza
 Gestione automatica di:
transazioni (Commit, Rollback e Recovery)
scalabilità: aumentando l’HW, le prestazioni
aumentano in modo lineare
sicurezza
 Alte prestazioni
bilanciamento dinamico dei carichi di lavoro
caching delle connessioni al database
-5-
EJB: l’architettura
 EJB Server: Application Server
 EJB Container: gestisce gli EJB
 Enterprise Bean Instance: una istanza di EJB
 Client: utilizzatore finale del bean
-6-
Tipologie di EJB
 Sono previsti due tipi di
EJB:
– Session Bean
• non sono persistenti
– Entity Bean
• sono persistenti
-7-
Session Bean
 Non è persistente
 Implementa l’interfaccia javax.ejb.SessionBean
 In genere implementa la logica di business dell’applicazione
– Riceve le invocazioni dal client
– Agisce (creazione, modifica, cancellazione) sugli Entity Bean
• si comporta come client verso gli entity
• L’accesso agli entity bean risulta così maggiormente protetto
– La sequenza delle operazioni sono eseguite in genere all’interno
di una transazione
 Ciascuna istanza è da considerarsi una ESTENSIONE logica dell’applicazione
client
– La vita di un session bean è legata al client che l’ha instanziato
– E’ come un agente dedicato allo specifico client, in esecuzione
sul server
-8-
Entity Bean


Rappresenta un oggetto persistente
Consente di mappare una sorgente dati su una classe
Java
– tabella, vista, join o stored procedure in un
database
relazionale
– dati legacy opportunamente incapsulati
 La lettura / modifica degli attributi di tali entità si traduce
nelle corrispondenti operazioni sulla tabella stessa
 Ciascuna istanza può essere condivisa da tanti client
 Quando l’istanza di un Entity Bean smette di esistere, il
dato che rappresenta continua ad esistere sul DB
in caso di crash del sistema i dati rappresentati dagli
entity bean resistono, mentre i session bean vengono
-9-
Connection Pooling
 Accesso al database per mezzo di una tecnica definita
connection pooling che permette l’accesso alle risorse server in
particolare ai database ad un numero elevato di utenti
 Gestione automatica della cache di connessione da parte
dell’EJB container
 Utilizzo della standard API JBDC che mette a disposizione
un’interfaccia definita DataSource per la gestione delle
connessioni.
- 10 -
Vantaggi della J2EE





Architettura e sviluppo semplificati
Scalabilità per soddisfare l’aumento di
richieste
Integrazione di sistemi informativi preesistenti
Ampia scelta di server, strumenti di sviluppo,
componenti
Modello per la sicurezza flessibile
- 11 -
Architettura e sviluppo semplificati



La piattaforma J2EE offre un modello di sviluppo
basato su componenti semplificato
Basandosi sulla J2SE, supporta il paradigma Write
Once, Run Anywhere: un’applicazione risulta
portabile su tutti i server conformi allo standard J2EE
Il modello basato su componenti offre vantaggi
rispetto a diversi aspetti:



adattamento flessibile alle funzionalità richieste per
un’applicazione
definizione del comportamento dell’applicazione in
fase di assemblaggio e deployment
suddivisione dei ruoli
- 12 -
Scalabilità



I container della piattaforma J2EE forniscono un
meccanismo che permette di ottenere un alto
livello di scalabilità dell’applicazione distribuita,
senza richiedere l’intervento da parte dello
sviluppatore
Possono realizzare la scalabilità rispetto a
particolari funzionalità dell’applicazione, come il
supporto alle transazioni, le connessioni verso i
database, la gestione del ciclo di vita
È possibile configurare i container per essere
eseguiti su più calcolatori distribuiti
- 13 -
Integrazione di sistemi informativi preesistenti

La piattaforma J2EE, insieme alla J2SE, include un insieme di
API standard per accedere a sistemi informativi preesistenti:






JDBC: accesso a database relazionali
Java Transaction API: gestione e coordinamento di
transazioni distribuite
Java Naming and Directory Service: accesso alle
informazioni dei servizi di naming e directory aziendali
Java Message Service: invio e ricezione di messaggi
JavaMail: invio e ricezione di messaggi di posta elettronica
Java IDL: invocazione di servizi CORBA
- 14 -
Conclusioni
 J2EE piattaforma multilivello per la realizzazione di applicazioni
distribuite
 Strumenti utilizzati:





Linguaggio di programmazione:
Sistema operativo:
WEB server:
EJB server:
RDBMS:
 Componenti utilizzati:
 EJB (implementati 25)
 JSP (implementate 18)
 Oltre 10.000 linee di codice prodotte
- 15 -
Java 2
Unix
Tomcat
JBoss
SQL server
Scarica

UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà