Title: Presentazione di PowerPoint
1UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO
EMILIA Facoltà di Ingegneria Sede di
Modena Corso di Laurea in Ingegneria Informatica
Progetto e sviluppo di unapplicazione
Web-Database a 3 livelli per la gestione degli
appelli desame
Relatore Prof. Sonia Bergamaschi
Tesi di Laurea di Andrea Malavasi
Correlatore Ing. Maurizio Vincini
Anno Accademico 2001-2002
2Agenda
- Introduzione alla J2EE
- Architettura della J2EE
- Caratteristiche degli EJB
- Conclusioni
- Demo dellapplicazione
- 2 -
3Il 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 -
4Modello applicativo della J2EE
- 4 -
5EJB I vantaggi
- Semplificazione del processo di sviluppo
- Riusabilità del codice e Modularità
- Robustezza
- Gestione automatica di
- transazioni (Commit, Rollback e Recovery)
- scalabilità aumentando lHW, le prestazioni
aumentano in modo lineare - sicurezza
- Alte prestazioni
- bilanciamento dinamico dei carichi di lavoro
- caching delle connessioni al database
- 5 -
6EJB larchitettura
- EJB Server Application Server
- EJB Container gestisce gli EJB
- Enterprise Bean Instance una istanza di EJB
- Client utilizzatore finale del bean
- 6 -
7Tipologie di EJB
- Sono previsti due tipi di EJB
- Session Bean
- non sono persistenti
- Entity Bean
- sono persistenti
- 7 -
8Session Bean
q Non è persistente q Implementa linterfaccia
javax.ejb.SessionBean q In genere implementa la
logica di business dellapplicazione Riceve le
invocazioni dal client Agisce (creazione,
modifica, cancellazione) sugli Entity Bean si
comporta come client verso gli entity Laccesso
agli entity bean risulta così maggiormente
protetto La sequenza delle operazioni sono
eseguite in genere allinterno di una
transazione q Ciascuna istanza è da considerarsi
una ESTENSIONE logica dellapplicazione client
La vita di un session bean è legata al client che
lha instanziato E come un agente dedicato
allo specifico client, in esecuzione sul server
- 8 -
9Entity Bean
q Rappresenta un oggetto persistente q Consente
di mappare una sorgente dati su una classe Java
tabella, vista, join o stored procedure in un
database relazionale dati legacy opportunamente
incapsulati q La lettura / modifica degli
attributi di tali entità si traduce nelle
corrispondenti operazioni sulla tabella stessa q
Ciascuna istanza può essere condivisa da tanti
client q Quando listanza 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 perduti
- 9 -
10Connection Pooling
- Accesso al database per mezzo di una tecnica
definita connection pooling che permette
laccesso alle risorse server in particolare ai
database ad un numero elevato di utenti - Gestione automatica della cache di connessione
da parte dellEJB container - Utilizzo della standard API JBDC che mette a
disposizione uninterfaccia definita DataSource
per la gestione delle connessioni.
- 10 -
11Vantaggi della J2EE
- Architettura e sviluppo semplificati
- Scalabilità per soddisfare laumento di richieste
- Integrazione di sistemi informativi preesistenti
- Ampia scelta di server, strumenti di sviluppo,
componenti - Modello per la sicurezza flessibile
- 11 -
12Architettura 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 unapplicazione 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 unapplicazione - definizione del comportamento dellapplicazione
in fase di assemblaggio e deployment - suddivisione dei ruoli
- 12 -
13Scalabilità
- I container della piattaforma J2EE forniscono un
meccanismo che permette di ottenere un alto
livello di scalabilità dellapplicazione
distribuita, senza richiedere lintervento da
parte dello sviluppatore - Possono realizzare la scalabilità rispetto a
particolari funzionalità dellapplicazione, 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 -
14Integrazione 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 -
15Conclusioni
- J2EE piattaforma multilivello per la
realizzazione di applicazioni distribuite - Strumenti utilizzati
- Linguaggio di programmazione Java 2
- Sistema operativo Unix
- WEB server Tomcat
- EJB server JBoss
- RDBMS SQL server
- Componenti utilizzati
- EJB (implementati 25)
- JSP (implementate 18)
- Oltre 10.000 linee di codice prodotte
- 15 -