Presentazione di PowerPoint - dbgroup.unimo.it
Download
Report
Transcript Presentazione di PowerPoint - dbgroup.unimo.it
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