150 likes | 325 Views
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 Prof. Sonia Bergamaschi. Tesi di Laurea di
E N D
UNIVERSITÀ DEGLI STUDI DI MODENAEREGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e sviluppo di un’applicazione Web-Database a 3 livelliper la gestione degli appelli d’esame Relatore Prof. Sonia Bergamaschi Tesi di Laurea di 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 -
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 aumentanoinmodo 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 • q Non è persistente • q Implementa l’interfaccia javax.ejb.SessionBean • q 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 • q Ciascuna istanza è da considerarsi una ESTENSIONE logicadell’applicazioneclient • – 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 • 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 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 perduti - 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 sviluppobasato su componentisemplificato • Basandosi sulla J2SE, supporta il paradigma WriteOnce, Run Anywhere: un’applicazione risultaportabile su tutti i server conformi allo standard J2EE • Il modello basato su componenti offre vantaggirispetto a diversi aspetti: • adattamento flessibile alle funzionalità richieste perun’applicazione • definizione del comportamento dell’applicazione infase di assemblaggio e deployment • suddivisione dei ruoli - 12 -
Scalabilità • I container della piattaforma J2EE forniscono unmeccanismo che permette di ottenere un alto livellodi scalabilità dell’applicazione distribuita, senzarichiedere l’intervento da parte dello sviluppatore • Possono realizzare la scalabilità rispetto a particolarifunzionalitàdell’applicazione, come il supporto alletransazioni, le connessioni verso i database, lagestione del ciclo di vita • È possibile configurare i container per essere eseguitisu più calcolatori distribuiti - 13 -
Integrazione di sistemi informativi preesistenti • La piattaforma J2EE, insieme alla J2SE, include un insieme diAPI standard per accedere a sistemi informativipreesistenti: • JDBC: accesso a database relazionali • Java Transaction API: gestione e coordinamento ditransazioni distribuite • Java Naming and Directory Service: accesso alle informazionidei 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: 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 -