Università degli studi di Napoli Federico II Facoltà di Ingegneria. Corso di Laurea in Ingegneria Informatica TESI DI LAUREA

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Università degli studi di Napoli Federico II Facoltà di Ingegneria. Corso di Laurea in Ingegneria Informatica TESI DI LAUREA"

Transcript

1 Università degli studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica TESI DI LAUREA Framework MVC per lo sviluppo di Web Application : JavaServer Faces e Struts Relatore Ch.mo Prof. Antonio d Acierno Candidato Paolo Patierno Matricola 041/2803 Anno Accademico 2004/2005

2 a tutti coloro che hanno creduto in me alla mia pazientissima famiglia alla mia dolcissima Sara alle mie care nonne

3 Ringraziamenti Quando nella vita si raggiungono grandi traguardi e si realizzano i propri sogni, ci si rende conto che, senza l appoggio delle persone che ci vivono accanto, gli sforzi e l impegno personali non avrebbero mai consentito da soli tali risultati. Ho sempre considerato lo studio e la conoscenza tra gli elementi fondamentali della vita di una persona e per questo, per raggiungere il mio obiettivo, non ho mai lesinato nei miei confronti l impegno, aggiungendovi costanza, instancabilità, caparbietà e tenacia che comunque sarebbero state vane senza le persone che qui ho il piacere ed il dovere di ringraziare. I miei ringraziamenti vanno innanzitutto al Prof. Ing. Antonio d Acierno, il quale mi ha proposto questo lavoro che ho accettato con grande entusiasmo. Grazie a lui, ho avuto la possibilità di affrontare ed approfondire nuovi temi legati allo sviluppo del software per Internet, per me di estremo interesse. Gli anni di studio, che mi hanno portato a questo grande traguardo, sono stati caratterizzati da momenti di gioia così come da periodi di sacrifici ed amarezze, che non avrei saputo superare senza coloro che mi hanno preso per mano lungo questo cammino. Un immenso grazie va innanzitutto alla mia famiglia, Mamma, Papà ed ai miei fratelli Enzo e Daniela, che mi hanno dato la possibilità di realizzare questo sogno, senza mai ostacolarmi nelle decisioni ma dandomi sempre il massimo appoggio. In questi anni, hanno dovuto sopportare i miei comprensibili momenti di tensione e di nervosismo, senza mai rimproverarmi alcun comportamento. A loro devo chiedere scusa, per non aver dedicato il giusto tempo che merita una famiglia che ama il proprio figlio ed il proprio fratello. Grazie a mio cugino Diego, che rappresenta per me il modello da seguire, umanamente e professionalmente, il quale non ha mai risparmiato

4 consigli ed elogi nei miei confronti. Spero di poter crescere nel tempo ed acquisire le notevoli capacità che gli riconosco. Grazie a tutti i miei amici più sinceri, con i quali ho trascorso delle ore spensierate, lontano dagli affanni dello studio, e che mi hanno fatto sentire una persona importante per loro. Un grazie particolare va a Sara, che ho avuto l immensa fortuna di conoscere circa un anno fa, diventando l amore della mia vita. Si è ritrovata catapultata nel mio mondo, fatto di moltissime ore si studio, di sacrifici e di preoccupazioni, dandomi sempre la forza di rialzarmi nei momenti di rabbia e di sconforto. Seppur soltanto in questo ultimo anno, il suo amore nei miei confronti è stato una grande fonte di energia, dalla quale spero di attingere per tutto il resto della mia vita. Vorrei concludere con una dedica alle mie nonne, Edy ed Anna, che ne sono certo mi hanno guidato da lassù e che in questo momento mi sono vicine, per condividere con me l enorme gioia che ho dentro. A voi Grazie di cuore a tutti

5 Indice Introduzione Obiettivo della tesi 1 Capitolo I Il pattern MVC 1. Architettura software a livelli L importanza dei design patterns Design Pattern MVC Model View Controller Evoluzione dell architettura delle Web Application Model 1 (Page Centric Architecture) Model 2 (Servlet Centric Architecture) Le Servlet Struttura di base Ciclo di vita Richiesta, Risposta, Sessione e Contesto Web Application Frameworks Struttura di una Web application in Java Web Application Deployment Descriptor. 23 Capitolo II Il framework JavaServer Faces 1. Introduzione Teamworking Modelli architetturali - Framework Models Execution Model 32 I

6 3.1.1 FacesServlet Lifecycle PhaseListener Application FacesContext ExternalContext User Interface Component Model Component Rendering Model Renderer Conversion Model Converter Event and Listener Model FacesEvent FacesListener Validation Model Validator Navigation Model Backing Bean Management Ciclo di vita di una pagina JavaServer Faces Scenari di elaborazione di una richiesta Ciclo di vita Standard Restore View Apply Request Values Process Validation Update Model Values Invoke Application Render Response 58 II

7 5. JSF Expression Language Espandibilità del framework Custom Converter Event Listener Implementazione di un ActionListener/ValueChangeListener Backing Bean Method Listener Custom Validator Implementazione di un Validator Class Validator Tag Handler Tag Library Descriptor Backing Bean Method Validator Custom UI Components Class Component Tag Handler Tag Library Descriptor Classe Renderer Sicurezza Configurazione dell applicazione Configurazione dei Backing Beans Localizzazione, Internazionalizzazione e Messaggi Registrare un Custom Validator Registrare un Custom Converter Configurare le Navigation Rules Registrare un Custom Renderer in un Renderer Kit. 79 III

8 8.7 Registrare un Custom Component. 80 Capitolo III Il framework Struts 1. Introduzione Controller, Model and View Components Controller Components ActionServlet RequestProcessor Action ForwardAction DispatchAction LookupDispatchAction SwitchAction ActionForward Utility Classes Model Components View Components ActionForm ActionErrors ActionMessage ActionError DynaActionForm Tag Libraries Ciclo di vita di una richiesta Exception Handling Approccio Dichiarativo Approccio programmatico IV

9 4.3 ModuleException Internazionalizzazione (I18N) JavaServer Pages Standard Tag Library (JSTL) Estensioni con i PlugIn Validator framework Tiles framework Definitions Costruzione di una pagina Sicurezza Configurazione dell applicazione DataSource FormBean Global Exceptions Global Forwards Action Mapping Controller Message resources Plug-In Capitolo IV I framework a confronto 1. Introduzione Ciclo di vita di una richiesta Controller Tier Interfaccia Utente (UI) Events e Listeners V

10 6. Mappatura delle richieste sulla Business-Logic Conversione Validazione Navigazione Expression Language Eccezioni Internazionalizzazione (I18N) Sicurezza Configurazione Web Application Layout Migrazione da Struts a JavaServer Faces Strategie di migrazione Components Only Incremental migration Full migration Capitolo V Case Study : Analisi e Progettazione 1. Introduzione Requisiti Progettazione Use Case Diagrams Generale Gestione Scheda Prepagata Registrazione Azioni su Brani VI

11 3.1.5 Gestione Playlist Gestione Utenti Gestione Archivio Brani Casi d uso comuni : Login, Logout, Gestione Dati Personali Class Diagram Activity Diagrams Sequence Diagrams Login Logout Registrazione Richiesta Username / Password Acquisto, Ricarica e Visualizzazione Info Scheda Prepagata Visualizzazione e Ricerca Brani Inserimento, Modifica ed Eliminazione Brano dall Archivio Ascolto di un singolo Brano Gestione Playlist Acquisto/Download Brano Modifica Dati Personali Gestione Utenti Statechart Diagrams Conceptual Data Model Physical Data Model Capitolo VI Case Study : Implementazioni a confronto 1. Introduzione Struttura dell applicazione VII

12 3. Controller Gestione delle sessioni Protezione pagine View Le librerie Standard I form : contenuto e layout Costruzione condizionale dei contenuti DataTable JSF e Cicli JSTL Tiles JavaServer Faces Custom Components DateSelectComponent DDListComponent TimeSelectComponent e Struts? I formbean di Struts Login, Registrazione e Richiesta password Acquisto/Ricarica scheda prepagata Modifica dati utente ed amministratore Visualizzazione e ricerca dei brani Inserimento/Modifica brani Gestione Playlist Gestione Utenti e JavaServer Faces? Player MP Internazionalizzazione (I18N) VIII

13 5. Validazione JavaServer Faces Custom Validators Validator SeqCifreValidator TelefonoValidator Plug-in Validator Struts Model Classi Exception Classi di interfacciamento con il DataBase Le Action di Struts Business-Logic e funzionalità del sistema Package accesso Package ruolo Package brani Package playlist Package scheda Package cartacredito Package download Package mail I Backing Beans di JavaServer Faces Plug-in di Struts Navigazione Eccezioni Sicurezza 385 IX

14 Appendice A SRS Web Application MP3-Web Riferimenti Bibliografici X

15 Introduzione Obiettivo della tesi Introduzione Obiettivo della tesi Il lavoro di tesi svolto si pone come obiettivo il confronto tra due dei principali framework MVC per lo sviluppo di Web application : JavaServer Faces e Struts. Considerando il linguaggio comune su cui si basano, ossia il Java, tale confronto è relativo soprattutto a ciò che riguarda gli strumenti, le funzionalità e le potenzialità fornite dall uno e dall altro. Si parte da una descrizione del pattern MVC (Model View Controller) e di tutti gli aspetti relativi al suo meccanismo di funzionamento, nonché da una spiegazione delle Servlet che sono alla base dei framework suddetti. Successivamente, viene dato ampio spazio al framework JavaServer Faces descrivendone tutte le classi che ne costituiscono l architettura e tutte le funzionalità messe a disposizione per realizzare un applicazione Web. Allo stesso modo è stata approfondita la struttura di Struts ed i relativi strumenti disponibili. Raccolte le informazioni necessarie, è stato realizzato un confronto teorico tra i due framework evidenziando vantaggi e svantaggi dell uno e dell altro in relazione a ciascuna funzionalità offerta. Per poter fornire una base solida al confronto teorico, è stato preso in esame un caso di studio che ha previsto la realizzazione di una Web application mediante i due framework. Tale applicazione mette a disposizione degli utenti la possibilità di usufruire di contenuti audio, ossia brani MP3, registrandosi, creando delle proprie playlist per poterle ascoltare in streaming e per poter eventualmente acquistare i brani ed effettuarne il download. Per quanto riguarda l amministratore, egli ha a disposizione tutte le funzionalità di gestione dell archivio dei brani e degli utenti registrati. E stata eseguita una preventiva fase di analisi e progettazione che ha previsto la realizzazione del documento di specifica dei requisiti (SRS) e di tutti i 1

16 Introduzione Obiettivo della tesi diagrammi UML (Use Case, Class, Activity, Sequence, Statechart) oltre al modello concettuale e fisico della base di dati necessaria. A queste fasi ha fatto seguito una doppia fase di implementazione che ha previsto la realizzazione della Web application con entrambi i framework. Infine, sulla base di quanto sviluppato sono state ripresi tutti gli aspetti che potessero rappresentare termini di confronto fra di essi e sono state evidenziate le analogie e le differenze di implementazione dell uno e dell altro. Per quanto concerne gli strumenti adottati si è fatto ampio uso del software Sybase Power Designer per lo sviluppo dei diagrammi UML, dell ambiente IDE Eclipse 3.1 ed i plug-in Exadel ed Omondo per l implementazione ed infine del Web Container Apache Tomcat come ambiente di esecuzione delle due implementazioni. 2

17 Capitolo I Il Pattern MVC Capitolo I Il Pattern MVC 1. Architettura software a livelli Nello sviluppo delle applicazioni software, è possibile descrivere l architettura del sistema utilizzando uno fra i molteplici paradigmi a disposizione, ma in linea generale, trova una maggiore applicazione la nota architettura a livelli (Layered Application Architecture). Quest ultima prevede che un sistema software sia decomposto in tre livelli nettamente distinti, che comunque abbiano la possibilità di comunicare fra loro secondo un opportuna gerarchia. Ciascuno dei tre livelli ha un proprio ruolo ed assolve ad uno specifico compito all interno del sistema complessivo, senza interferire con gli altri livelli ma scambiando con essi le informazioni necessarie all esecuzione di elaborazioni anche molto complesse. I tre livelli in questione sono i seguenti : - Presentation layer : è il livello di presentazione, il cui compito è quello di interagire direttamente con l utente del sistema, acquisire i dati di input immessi da quest ultimo e visualizzare i risultati dell elaborazione effettuata dal sistema stesso. Esso, in pratica, definisce la GUI (Graphic User Interface) ossia l interfaccia grafica dell applicazione; - Application processing layer : è il livello in corrispondenza del quale si trova la business-logic dell applicazione e quindi tutti i moduli software che implementano le funzionalità che il sistema mette a disposizione. In sostanza, è il centro dell elaborazione dei dati in cui avvengono tutte le computazioni; - Data management layer : è il livello che si occupa della gestione della persistenza e dell accesso ai dati, per cui è tipicamente caratterizzato da un DBMS (DataBase Management System); 3

18 Capitolo I Il Pattern MVC Figura 1 Architettura Software a livelli Sviluppando un applicazione secondo questa architettura, ogni livello è indipendente dagli altri, per cui la modifica di uno di essi non ha effetto sui restanti. Tuttavia è prevista la comunicazione fra loro e lo scambio di informazioni. Un tipico scenario di funzionamento del sistema può essere il seguente : un utente utilizza l applicazione, interagendo direttamente con la GUI e fornisce quindi al Presentation layer, i dati su cui andrà eseguita l elaborazione. Il Presentation layer, acquisiti i dati di input, li trasferisce all Application processing layer che esegue su di essi una determinata computazione. Durante l elaborazione, la business-logic può prevedere la memorizzazione persistente dei dati oppure la necessità di acquisire ulteriori dati già memorizzati. In questo caso, c è l interazione con il Data managemente layer, il quale memorizza i dati che gli vengono passati dal livello superiore, oppure recupera da un Data Source (es. database) i dati richiesti e li trasmette alla business-logic. Al termine dell elaborazione i risultati vengono passati al Presentation layer che li visualizza in una certa forma all utente finale. Facendo riferimento al paradigma Client-Server, notevolmente utilizzato nelle Web application ma di gran richiamo anche per applicazioni desktop, i tre livelli del sistema devono essere correttamente ripartiti anche da un punto di vista hardware. Le principali architetture per la ripartizione sono : - Two-Tier nelle due soluzioni Thin e Fat Client; - Three-Tier; 4

19 Capitolo I Il Pattern MVC L architettura Two-Tier prevede un unico Client ed un unico Server ed i tre livelli dell applicazione software sono distribuiti fra di essi secondo due possibili modalità : - Thin Client : sul Client risiede il Presentation layer mentre sul Server gli altri due livelli (Application processing layer e Data management layer). Un vantaggio può risiedere nel fatto che una modifica alla business-logic va eseguita una sola volta sul Server, mentre lo svantaggio principale può essere caratterizzato dall enorme carico di lavoro che deve supportare il Server stesso dato il numero elevato di Client che possono accedere ad esso; - Fat Client : sul Client risiedono i primi due livelli (Presentation layer e Application processing layer) mentre sul Server soltanto il Data management layer. Il vantaggio è quello di ridurre il carico di lavoro sul Server che si occupa solo dell accesso ai dati, delegando l elaborazione degli stessi al Client. Lo svantaggio principale è la complessità maggiore dei Client e quindi la necessità di aggiornare ciascuno di essi nel caso in cui vengano apportate modifiche alla business-logic; Figura 2 Architetture Two Tier L architettura Three-Tier, maggiormente utilizzata, prevede la presenza di un unico Client ed una coppia di Server. Sul Client risiede il Presentation layer e su ciascuno dei due Server sono distribuiti i due restanti livelli (Application processing layer e Data management layer). Nell ambito di una Web application, il Client è caratterizzato da un nodo della rete sul quale è in esecuzione il browser, mentre i due Server, da un punto di vista software, sono tipicamente inglobati in un unico nodo 5

20 Capitolo I Il Pattern MVC della rete che funge da Server fisico. In particolare, sulla stessa macchina sono in esecuzione il Web Server associato all Application proccessing layer ed il Database Server associato al Data management layer. Figura 3 Architettura Three Tier In conclusione, è proprio su questa particolare architettura a livelli che si basa il pattern MVC (Model View Controller), che rappresenta il fondamento dei framework Struts e JavaServer Faces (JSF) che saranno oggetto di studio e di un approfondito confronto. 2. L importanza dei design patterns Alla metà del ventesimo secolo, l architetto Christopher Alexander osservò come i suoi colleghi tendevano a risolvere i medesimi problemi, più o meno allo stesso modo. Da tale osservazione, introdusse il concetto di design pattern, ovviamente riferito all architettura. Secondo Christopher Alexander, un design pattern descrive un problema che si presenta frequentemente nel nostro ambiente, e quindi descrive il nucleo della soluzione in modo tale che sia possibile impiegare tale soluzione milioni di volte, senza peraltro produrre due volte la stessa realizzazione. Ovviamente, tale definizione era riferita all ambito architetturale, ma nel 1994, con il libro Design Patterns : Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, applicarono questa intuizione allo sviluppo del software. In questo caso, il principio è ugualmente valido anche se riferito ad oggetti, classi ed interfacce piuttosto che ad elementi architettonici come muri, archi e pilastri. 6

21 Capitolo I Il Pattern MVC Un pattern è un modello che permette di definire la soluzione di un problema specifico che si ripresenta, di volta in volta, in un contesto diverso. Presenta inoltre le seguenti caratteristiche : - il nome che individua il pattern e la cui importanza non è secondaria, perché rientra a far parte del vocabolario dello sviluppo software; - la descrizione del problema in maniera dettagliata, con la sua struttura e le condizioni al contorno; - la soluzione che descrive gli artefatti software per risolvere il problema come gli elementi che rientrano nello sviluppo, quali le classi e le relazioni fra esse, le associazioni ed i ruoli, le modalità di collaborazione tra le classi coinvolte ed infine la distribuzione delle responsabilità nella soluzione del particolare problema di design considerato; - le conseguenze che descrivono i risultati che si possono ottenere dall applicazione del pattern per spingere uno sviluppatore a farne uso; Ad oggi i patterns sono di grande interesse, in virtù del fatto che rappresentano una successiva evoluzione del paradigma OOP (Object Oriented Programming), poiché combinano classi ed oggetti atomici per fornire una base più ampia per la risoluzione di un problema, nella fattispecie per lo sviluppo di un applicazione software. Sotto questo punto di vista, un design pattern fornisce allo sviluppatore : - una soluzione codificata e consolidata per un problema ricorrente; - un astrazione di granularità e livello di astrazione più elevati di una classe; - un supporto alla comunicazione delle caratteristiche del progetto; - un modo per progettare software con caratteristiche predefinite; - un supporto alla progettazione di sistemi complessi; - un modo per gestire la complessità del software; Può essere considerato un buon pattern un pattern che descrive una soluzione assodata per un problema ricorrente in un contesto specifico. 7

22 Capitolo I Il Pattern MVC E ovvio che esistono numerose tipologie di design patterns, ma nell ambito dello sviluppo delle Web application, in riferimento all obiettivo proposto, assume un ruolo rilevante il pattern MVC (Model View Controller). 3. Design Pattern MVC Model View Controller Il design pattern MVC ha le sue origini nell ambiente Smalltalk, in cui veniva utilizzato per la realizzazione della GUI (Graphic User Interface) di applicazioni desktop e non orientate al Web. Tale pattern si basa sull idea di separare i dati dalla rappresentazione, poiché mantenere un forte accoppiamento tra essi comporta che la modifica dell uno, implica automaticamente un aggiornamento dell altro. Esso, quindi, prevede che un sistema software sia realizzato secondo l architettura a livelli, stabilendo un disaccoppiamento fra dati e rappresentazione, mediante la definizione di tre elementi noti come : Model, View e Controller. Figura 4 - Model, View e Controller Il Model (Modello) è responsabile della gestione dei dati e del comportamento dell applicazione (data & behaviour). Esso coordina la businesslogic dell applicazione, l accesso alle basi di dati e tutte le parti critiche nascoste del sistema. Incapsula lo stato dell applicazione ed espone le funzionalità di 8

23 Capitolo I Il Pattern MVC quest ultima. E indipendente dalle specifiche rappresentazioni dei dati sullo schermo e dalle modalità di input dei dati stessi da parte dell utente. Ad esso fanno riferimento l Application processing layer ed il Data managemente layer nel design del software a livelli. Il Model può essere scomposto in tre sottolivelli puramente concettuali : - External interface : caratterizzato dal codice che definisce un interfaccia mediante la quale il codice esterno comunica con il Model. Generalmente il codice esterno è determinato dal framework adottato per sviluppare la Web application, come ad esempio Struts e JavaServer Faces; - Business logic : rappresenta il cuore del Model contenente il codice che realizza le funzionalità dell applicazione; - Data access : costituito dal codice che permette di accedere ad un datasource, come ad esempio una base di dati; Figura 5 Architettura del Model I tre sottolivelli descritti non rappresentano necessariamente dei set di classi separate ma, bensì, dei set di responsabilità differenti che ha il Model. Lo sviluppatore può decidere di realizzare i tre sottolivelli mediante una o più classi e raggruppando due o più sottolivelli. Tipicamente si preferisce realizzare il sottolivello Data access con una 9

24 Capitolo I Il Pattern MVC o più classi che hanno come unico scopo quello di permettere l accesso ad un base di dati. Gli altri due sottolivelli possono essere realizzati in due modi : - separazione : ci sono una serie di classi che realizzano la Business logic ed ulteriori classi che definiscono l External interface; - fusione : sono definite una serie di classi che definiscono la Business logic e contengono all interno anche le funzionalità di interfacciamento dell External interface; La scelta può dipendere dalla complessità dell applicazione ed, eventualmente, dalla tecnologia che viene adottata sul Model per realizzare la Web application. La View (Vista) ha il compito di visualizzare i dati e presentarli all utente anche in forme diverse, in relazione al dispositivo utilizzato per accedere al sistema (es. personal computer, cellulare,..). Ciò vuol dire che, pur partendo dagli stessi dati, è possibile effettuare rendering diversi ed ottenere viste multiple dello stesso modello. Ad esso fa riferimento il Presentation layer. Il Controller (Controllo) definisce il meccanismo mediante il quale il Model e la View comunicano. Realizza la connessione logica tra l interazione dell utente con l interfaccia applicativa e i servizi della business-logic nel back-end del sistema. E responsabile della scelta di una tra molteplici viste dello stesso modello, in base al tipo di dispositivo utilizzato dall utente per accedere al sistema ma anche in relazione alla localizzazione geografica dell utente stesso. Una qualsiasi richiesta (request) fatta al sistema viene acquisita dal Controller che individua all interno del Model il gestore della richiesta (request handler). Ottenuto il risultato dell elaborazione (response), il Controller stesso determina a quale View passare i dati per la presentazione degli stessi all utente. Il vantaggio principale che scaturisce da questa architettura, è che la business-logic definita all interno del Model è separata dal Presentation layer che si trova all interno della View. Tutto ciò favorisce il riuso dei componenti e la possibilità di apportare delle modifiche ad un livello senza avere degli effetti sull altro. 10

25 Capitolo I Il Pattern MVC 4. Evoluzione dell architettura delle Web Application Considerando il Java come uno dei migliori linguaggi per lo sviluppo delle applicazioni Web, attraverso l uso delle Servlets e delle pagine JSP (Java Server Pages), l architettura delle Web application ha subito una notevole evoluzione nel corso degli anni, seguendo un iter di questo tipo : 1. Assenza del pattern MVC; 2. Utilizzo del pattern MVC secondo il Model 1 (Page Centric); 3. Utilizzo del pattern MVC secondo il Model 2 (Servlet Centric); 4. Web application Frameworks (es. Struts); 5. Web application Framework basato su uno standard ( JavaServer Faces JSR 127); Tale evoluzione ha previsto un aumento della complessità e della robustezza di ciascuna applicazione e può essere schematizzata nel modo seguente, sino all introduzione del Model 1 : Figura 6 - Evoluzione dello sviluppo di Web Application 11

26 Capitolo I Il Pattern MVC 4.1 Model 1 (Page Centric Architecture) Il Model 1 del pattern MVC è detto anche Page Centric, poiché l architettura della Web application è basata sulle pagine JSP. Il sistema complessivo è composto da una serie di pagine JSP legate fra loro, ciascuna delle quali gestisce tutti gli aspetti principali dell applicazione tra cui la presentazione, il controllo ed i processi di business. E evidente che la business-logic ed il controllo sono fortemente accoppiati all interno di ciascuna pagina JSP, attraverso l utilizzo di JavaBeans, Scriptlets ed Espressioni. I tre elementi del pattern, Model, View e Controller, pur essendo distinti, sono inglobati all interno di una stessa struttura che in questo caso è rappresentata da una pagina JSP. Figura 7 - MVC Model 1 (Page - Centric Architecture) Il modello prevede uno scenario di interazione di questo tipo : Il browser invia una richiesta (request) di una risorsa al Web Server, nella maggior parte dei casi per la visualizzazione di una pagina JSP. Il Web Server, tipicamente, funge da Web Container e quindi da Servlet Container in quanto va ricordato che una pagina JSP, una volta richiesta, viene sempre trasformata in una corrispondente Servlet. All interno della pagina JSP, ci sono i tag che ne definiscono la presentazione all utente e quindi l aspetto grafico (GUI), ma anche gli elementi per l esecuzione 12

27 Capitolo I Il Pattern MVC delle elaborazioni. Queste ultime possono essere eseguite all interno della pagina stessa, attraverso codice Java immerso nei tag (Scriptlets) oppure mediante dei componenti esterni, ai quali si fa riferimento da tale pagina. I componenti in questione sono tipicamente dei JavaBeans, i quali effettuano una qualsiasi computazione, comunicando eventualmente con il back-end del sistema, ad esempio per l accesso a basi di dati. Il risultato di ciascuna elaborazione sarà così integrato all interno della pagina HTML prodotta, che sarà inviata nella risposta (response) al browser. Da quanto detto, si evince che Model, View e Controller sono praticamente integrati all interno di ciascuna pagina JSP e che non c è una netta separazione fra essi. I limiti principali di questo modello possono essere i seguenti : - viene incoraggiata una struttura a spaghetti delle pagine JSP, poiché la business-logic si perde all interno di ciascuna pagina e la navigazione nella Web application complessiva viene fatta pagina per pagina; - è molto difficile eseguirne il debug, poiché tutti gli errori riportati dal Web Container, fanno riferimenti al codice compilato della pagina JSP in una Servlet e quindi sono difficili da individuare all interno della pagina stessa; Tutto ciò rappresenta un primo passo verso il modello definitivo del pattern MVC. 4.2 Model 2 (Servlet Centric Architecture) Il Model 2 del pattern MVC è detto anche Servlet Centric, poiché l architettura della Web application si basa fortemente sull utilizzo di una Servlet. Il sistema complessivo è composto da una Servlet principale che svolge il ruolo di Controller, da una serie di pagine JSP che rappresentano la View ed infine da un insieme di JavaBeans che costituiscono il Model. I tre elementi del pattern MVC sono quindi nettamente separati tra loro, pur mantenendo la possibilità di comunicare per scambiarsi informazioni. In particolare, le pagine JSP si occupano esclusivamente della presentazione dei dati all utente, senza contenere un minimo di business-logic. La Servlet master ha il compito di acquisire tutte le richieste provenienti dalla rete e funge da dispatcher, inoltrando ciascuna di esse verso il 13

NETSHOP: un centro commerciale virtuale

NETSHOP: un centro commerciale virtuale Seconda Università degli Studi di Napoli Facoltà di Ingegneria Tesi di Laurea in Ingegneria Informatica NETSHOP: un centro commerciale virtuale Relatore: Candidato: Ch.mo Prof. Luigi Luongo Antonio d Acierno

Dettagli

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

Dettagli

Programmazione server-side: Java Servlet

Programmazione server-side: Java Servlet Programmazione server-side: Java Servlet Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.11 parte II Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos

Dettagli

Framework di Middleware. per Architetture Enterprise

Framework di Middleware. per Architetture Enterprise Framework di Middleware per Architetture Enterprise Corso di Ingegneria del Software A.A.2011-2012 Un po di storia 1998: Sun Microsystem comprende l importanza del World Wide Web come possibile interfaccia

Dettagli

Server-side Programming: Java servlets Parte II

Server-side Programming: Java servlets Parte II Corso di Laurea Specialistica in Ingegneria Informatica Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni Corso di Reti di Applicazioni Telematiche a.a. 2009-2010 Server-side Programming:

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Introduzione a Servlet e Struts 2 Ing. Giuseppe D'Aquì 1 Testi Consigliati Java Enterprise in a nutshell, 3 rd edition (O'Reilly) Struts 2 in Action Brown, Davis, Stanlick

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE Framework per il Modello 2 it.unibas.pinco versione 3.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

CORSO DI PROGRAMMAZIONE JAVA

CORSO DI PROGRAMMAZIONE JAVA CORSO DI PROGRAMMAZIONE JAVA Corso di Programmazione Java Standard Edition ( MODULO A) OBIETTIVI ll corso ha come obiettivo quello di introdurre la programmazione a oggetti (OOP) e di fornire solide basi

Dettagli

Architetture Web: un ripasso

Architetture Web: un ripasso Architetture Web: un ripasso Pubblicazione dinamica di contenuti. Come si fa? CGI Java Servlet Server-side scripting e librerie di tag JSP Tag eseguiti lato server Revisione critica di HTTP HTTP non prevede

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Struttura dell Applicazione versione 2.4 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

L architettura MVC (Model- View-Controller) Introduzione

L architettura MVC (Model- View-Controller) Introduzione L architettura MVC (Model- View-Controller) Introduzione Architettura MCV L architettura MVC è un insieme di regole per strutturare un sito-web dinamico. Queste regole complicano la struttura del sito,

Dettagli

Corso Analista Programmatore Java Corso Online Analista Programmatore Java

Corso Analista Programmatore Java Corso Online Analista Programmatore Java Corso Analista Programmatore Java Corso Online Analista Programmatore Java Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Java Tematiche Trattate Modulo Uno

Dettagli

APPENDICE A Servlet e Java Server Page

APPENDICE A Servlet e Java Server Page APPENDICE A Servlet e Java Server Page A.1 Cosa è una Servlet e come funziona Una servlet è un particolare tipo di applicazione Java, in grado di essere eseguita all'interno di un web server e di estenderne

Dettagli

Corso analista programmatore Java. Corso analista programmatore Java Programma

Corso analista programmatore Java. Corso analista programmatore Java Programma Corso analista programmatore Java Programma 1.1 Obiettivo e modalità di fruizione L obiettivo del corso è di fornire le conoscenze tecniche e metodologiche per svolgere la professione di Programmatore

Dettagli

Introduzione al linguaggio Java: Servlet e JSP

Introduzione al linguaggio Java: Servlet e JSP Introduzione al linguaggio Java: Servlet e JSP Corso di Gestione della Conoscenza d Impresa A. A. 2006/2007 Dipartimento di Informatica Università degli Studi di Bari 1 Servlet e JSP: il contesto Un applicazione

Dettagli

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni) Progettazione di Sistemi Interattivi Struttura e supporti all implementazione di applicazioni in rete (cenni) Docente: Daniela Fogli Gli strati e la rete Stratificazione da un altro punto di vista: i calcolatori

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 9 Architettura Model-View-Controller (MVC) Adottando l'architettura MVC e la tecnologia Servlet-JSP, un'applicazione web può essere realizzata

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2010/2011 Questi lucidi sono stati prodotti sulla

Dettagli

Lezione di Basi di Dati 1 18/11/2008 - TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP

Lezione di Basi di Dati 1 18/11/2008 - TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP EVOLUZIONE DEL WEB: PAGINE STATICHE vs PAGINE DINAMICHE Il Web è nato a supporto dei fisici, perché potessero scambiare tra loro le informazioni inerenti le loro sperimentazioni. L HTTP è nato inizialmente

Dettagli

Registro SPICCA Architettura del Software

Registro SPICCA Architettura del Software Registro SPICCA Architettura del Software Versione 1.0 del 25/08/2009 Sommario 1 Introduzione... 4 1.1 Scopo... 4 1.2 Obiettivo... 4 1.3 Riferimenti... 4 1.4 Panoramica del documento... 4 2 Rappresentazione

Dettagli

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 Verso l architettura MVC-2 2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell

Dettagli

Architettura SW Definizione e Notazioni

Architettura SW Definizione e Notazioni Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000

Dettagli

Flavio De Paoli depaoli@disco.unimib.it

Flavio De Paoli depaoli@disco.unimib.it Flavio De Paoli depaoli@disco.unimib.it 1 Il web come architettura di riferimento Architettura di una applicazione web Tecnologie lato server: Script (PHP, Pyton, Perl), Servlet/JSP, ASP Tecnologie lato

Dettagli

Componenti Web: client-side e server-side

Componenti Web: client-side e server-side Componenti Web: client-side e server-side side Attività di applicazioni web Applicazioni web: un insieme di componenti che interagiscono attraverso una rete (geografica) Sono applicazioni distribuite logicamente

Dettagli

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria. Laurea Magistrale in Ingegneria Informatica

Università degli Studi Roma Tre Dipartimento di Informatica ed automazione. Facoltà di Ingegneria. Laurea Magistrale in Ingegneria Informatica Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione Facoltà di Ingegneria Laurea Magistrale in Ingegneria Informatica Tesi di Laurea Sistema informativo per la gestione dei processi

Dettagli

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet API Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet Interfaccia Java che modella il paradigma richiesta/elaborazione/risposta tipico delle applicazioni lato server Presuppone l esistenza

Dettagli

Corso Online. We Train Italy info@wetrainitaly.it

Corso Online. We Train Italy info@wetrainitaly.it Corso Online Programmatore Java New Edition We Train Italy info@wetrainitaly.it Programma Generale del Corso Programmatore Java New Edition 1. Introduzione al corso Java da 0 al web Presentazione del corso

Dettagli

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida Breve introduzione curata da Alessandro Benedetti Struts2-Introduzione e breve guida 22-11- 2008 1 Struts 2 Costruisci,attiva e mantieni! Apache Struts 2 è un framework elegante ed estensibile per creare

Dettagli

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del

Dettagli

Corso Android Corso Online Sviluppo su Cellulari con Android

Corso Android Corso Online Sviluppo su Cellulari con Android Corso Android Corso Online Sviluppo su Cellulari con Android Accademia Futuro info@accademiafuturo.it Programma Generale del Corso di Sviluppo su Cellulari con Android Programma Base Modulo Uno - Programmazione

Dettagli

Corso Programmazione Java Android. Programma

Corso Programmazione Java Android. Programma Corso Programmazione Java Android Programma 1.1 Obiettivo e modalità di fruizione L obiettivo del corso è di fornire le conoscenze tecniche e metodologiche per svolgere la professione di Programmatore

Dettagli

MODEL-VIEW-CONTROLLER PROBLEMA

MODEL-VIEW-CONTROLLER PROBLEMA MODEL VIEW CONTROLLER DESIGN PATTERN MODEL-VIEW-CONTROLLER INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 rcardin@math.unipd.it

Dettagli

Università degli Studi di Pisa

Università degli Studi di Pisa Università degli Studi di Pisa Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica per la Gestione d Azienda Tesi di laurea specialistica Reengineering di un modulo di un sistema

Dettagli

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web parte 1 Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web (1) Modello a tre livelli in cui le interazioni tra livello presentazione e livello applicazione sono mediate

Dettagli

Introduzione al Model-View-Controller (MVC)

Introduzione al Model-View-Controller (MVC) Introduzione al Model-View-Controller (MVC) Maurizio Cozzetto 9 Luglio 2009 Indice 1 Model-View-Controller 1 1.1 Definizione.................................................. 1 1.2 Soluzione...................................................

Dettagli

PROGETTAZIONE E SVILUPPO DI UN. Relatore: Studente: Paolo Merialdo Valerio Barbagallo

PROGETTAZIONE E SVILUPPO DI UN. Relatore: Studente: Paolo Merialdo Valerio Barbagallo PROGETTAZIONE E SVILUPPO DI UN SIMULATORE ECONOMICO FISCALE Relatore: Studente: Paolo Merialdo Valerio Barbagallo Sommario il problema: gestione e ottimizzazione del bilancio piattaforma J2EE e framework

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Struttura dell Applicazione versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Architetture di sistema

Architetture di sistema Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B1_1 V1.6 Architetture di sistema Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio

Dettagli

Progettazione di interfacce web indipendenti dal dispositivo

Progettazione di interfacce web indipendenti dal dispositivo Progettazione di interfacce web indipendenti dal dispositivo Candidato Izzo Giovanni, Matr. 41/1305 Relatore Prof. Porfirio Tramontana 1 Panoramica su contesto ed obiettivi Il contesto della tesi è legato

Dettagli

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi Applicazioni web Parte 6 Java Alberto Ferrari 1 Sommario Introduzione alle API ed esempi Tomcat Server per applicazioni web Alberto Ferrari 2 Alberto Ferrari 1 Java: da applet a servlet In origine Java

Dettagli

Corso di Informatica Modulo T3 B1 Programmazione web

Corso di Informatica Modulo T3 B1 Programmazione web Corso di Informatica Modulo T3 B1 Programmazione web 1 Prerequisiti Architettura client/server Elementi del linguaggio HTML web server SQL server Concetti generali sulle basi di dati 2 1 Introduzione Lo

Dettagli

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni Tomcat & Servlet Programmazione in Ambienti Distribuiti V 1.2 Marco Torchiano 2005 Contenuti Tomcat Applicazioni Web Struttura Sviluppo Deployment Servlet JSP Uso delle sessioni 1 Tomcat Tomcat è un contenitore

Dettagli

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti Sviluppo di applicazioni web con il pattern Model-View-Controller Gabriele Pellegrinetti 2 MVC: come funziona e quali sono vantaggi che derivano dal suo utilizzo? La grande diffusione della tecnologia

Dettagli

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata

Dettagli

Session tracking Session tracking HTTP: è stateless, cioè non permette di associare una sequenza di richieste ad un dato utente. Ciò vuol dire che, in generale, se un browser richiede una specifica pagina

Dettagli

Indice. Introduzione PARTE PRIMA IL FRAMEWORK DI JAVASERVER FACES 1

Indice. Introduzione PARTE PRIMA IL FRAMEWORK DI JAVASERVER FACES 1 Indice Introduzione XI PARTE PRIMA IL FRAMEWORK DI JAVASERVER FACES 1 Capitolo 1 Introduzione a JavaServer Faces 3 1.1 Che cos è JavaServer Faces 3 1.2 La storia di JavaServer Faces 4 1.3 Gli obiettivi

Dettagli

Progettazione: Tecnologie e ambienti di sviluppo

Progettazione: Tecnologie e ambienti di sviluppo Contratto per l acquisizione di servizi di Assistenza specialistica per la gestione e l evoluzione del patrimonio software della Regione Basilicata. Repertorio n. 11016 del 25/09/2009 Progettazione: Tecnologie

Dettagli

10.7 La classe BitSet... 555 Esercizi di autovalutazione... 558 Risposte agli esercizi di autovalutazione... 559 Esercizi 559

10.7 La classe BitSet... 555 Esercizi di autovalutazione... 558 Risposte agli esercizi di autovalutazione... 559 Esercizi 559 Sommario PREFAZIONE... XI Il nostro approccio didattico... xi Una panoramica del libro... xiv Ringraziamenti... xvii Gli autori... xix Deitel & Associates, Inc.... xx CAPITOLO 1 LA GRAFICA E JAVA2D...

Dettagli

Tutorial web Application

Tutorial web Application Tutorial web Application Installazione della JDK: Java viene distribuito con la jdk e il jre acronimi di Java Development Kit e Java Runtime Environment rispettivamente. La jdk è l'ambiente di sviluppo

Dettagli

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA. Elaborato di Tecnologie del Software per Internet

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA. Elaborato di Tecnologie del Software per Internet UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA Elaborato di Tecnologie del Software per Internet JMSWEB 2 SISTEMA PER LO SCAMBIO DI MESSAGGI TRA APPLICAZIONI

Dettagli

Implementazione di MVC. Gabriele Pellegrinetti

Implementazione di MVC. Gabriele Pellegrinetti Implementazione di MVC Gabriele Pellegrinetti 2 Come implementare il pattern Model View Controller con le tecnologie JSP, ASP e XML Implementazione del pattern MVC in Java (JSP Model 2) SUN è stato il

Dettagli

Architetture di sistema

Architetture di sistema Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B1_1 V1.7 Architetture di sistema Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio

Dettagli

Architetture per le applicazioni web-based. Mario Cannataro

Architetture per le applicazioni web-based. Mario Cannataro Architetture per le applicazioni web-based Mario Cannataro 1 Sommario Internet e le applicazioni web-based Caratteristiche delle applicazioni web-based Soluzioni per l architettura three-tier Livello utente

Dettagli

Analisi e utilizzo di un framework per lo sviluppo di applicazioni web

Analisi e utilizzo di un framework per lo sviluppo di applicazioni web tesi di laurea Anno Accademico 2011/2012 relatore Ch.mo prof. Marcello Cinque correlatore Ing. Fabio De Paolis candidato Michele Basile Matr. 534/3239 Web Development Frameworks Nella realizzazione di

Dettagli

Corso Android Corso Online Programmatore Android

Corso Android Corso Online Programmatore Android Corso Android Corso Online Programmatore Android Accademia Domani Via Pietro Blaserna, 101-00146 ROMA (RM) info@accademiadomani.it Programma Generale del Corso Modulo Uno - Programmazione J2ee 1) Programmazione

Dettagli

Use Case Driven Object Modeling: ICONIX

Use Case Driven Object Modeling: ICONIX Use Case Driven Object Modeling: ICONIX Un esempio di specifica, analisi, progetto e sviluppo utilizzando ICONIX (applicazione web) Ditta di Noleggio Dvd Un sistema per la gestione di una ditta di noleggio

Dettagli

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz Breve introduzione allo sviluppo WEB a cura di Ciro Attanasio - ciro.attanasio@email.cz Partiamo (1 di 1) Come funziona il WEB e quali tecnologie lo compongono Cos è un Client (1 di 2) Un client, in informatica,

Dettagli

Siti interattivi e dinamici. in poche pagine

Siti interattivi e dinamici. in poche pagine Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata

Dettagli

Protocolli e architetture per WIS

Protocolli e architetture per WIS Protocolli e architetture per WIS Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di informazioni e servizi Le architetture moderne dei WIS

Dettagli

tesi di laurea Anno Accademico 2004/2005 relatore Ing. Massimo Ficco candidato Pasquale Incarnato Matr. 534/938

tesi di laurea Anno Accademico 2004/2005 relatore Ing. Massimo Ficco candidato Pasquale Incarnato Matr. 534/938 tesi di laurea Anno Accademico 2004/2005 relatore Ing. Massimo Ficco candidato Pasquale Incarnato Matr. 534/938 Obbiettivi del progetto Progettazione ed implementazione di un applicazione, basata su un

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli

31/05/2013. Sistemi Web Distribuiti (parte 2) - Indice dei Contenuti - Naming. Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano

31/05/2013. Sistemi Web Distribuiti (parte 2) - Indice dei Contenuti - Naming. Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano /28 Sistemi Web Distribuiti (parte 2) - Indice dei Contenuti - Naming 3 Sincronizzazione 4 Consistenza e Replica 5 Replica di sistemi

Dettagli

Applicazioni Web con JavaServer Faces (JSF)

Applicazioni Web con JavaServer Faces (JSF) Applicazioni Web con JavaServer Faces (JSF) a cura di Damiano Distante damiano.distante@unitelma.it Un po di storia Settembre 2002 pubblicazione della prima December 2003 - proposta di versione finale

Dettagli

Sviluppi e Casi di Test in JAVA/J2EE con framework STRUTS per Sistema di Riconciliazione Economica on-line

Sviluppi e Casi di Test in JAVA/J2EE con framework STRUTS per Sistema di Riconciliazione Economica on-line tesi di laurea Sviluppi e Casi di Test in JAVA/J2EE con framework STRUTS per Sistema di Riconciliazione Economica on-line Anno accademico 2008/2009 Relatore Prof. Porfirio Tramontana Candidato Di Costanzo

Dettagli

LBINT. http://www.liveboxcloud.com

LBINT. http://www.liveboxcloud.com 2014 LBINT http://www.liveboxcloud.com LiveBox Srl non rilascia dichiarazioni o garanzie in merito al contenuto o uso di questa documentazione e declina qualsiasi garanzia espressa o implicita di commerciabilità

Dettagli

Applicazione: SIPER Servizi In linea per il PERsonale

Applicazione: SIPER Servizi In linea per il PERsonale Riusabilità del software - Catalogo delle applicazioni Gestione Personale Applicazione: SIPER Servizi In linea per il PERsonale Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei

Dettagli

UNICAL Università della Calabria

UNICAL Università della Calabria UNICAL Università della Calabria Corso di Laurea in Ingegneria Informatica e Applicazioni in Rete Titolo tesi: Sviluppo di un'applicazione Web Based dedicata alla gestione di profili utente su un generico

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Accesso ai Dati Ing. Giuseppe D'Aquì Testi Consigliati Eclipse In Action Core J2EE Patterns - DAO [http://java.sun.com/blueprints/corej2eepatterns/patterns/dataaccessobject.html]

Dettagli

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo tesi di laurea Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo Anno Accademico 2009/2010 relatore Ch.mo prof. Marcello Cinque correlatore Ing. Catello di

Dettagli

Progettazione di Applicazioni Web

Progettazione di Applicazioni Web 1 Argomenti della lezione Progettazione di Applicazioni Web Sviluppo delle applicazioni Processo di sviluppo Formalismi grafici di supporto diagrammi UML (cenni) Scelta dell architettura Sviluppo di applicazioni

Dettagli

Seminario di Sistemi Distribuiti: RPC su SOAP

Seminario di Sistemi Distribuiti: RPC su SOAP Corso di Sistemi Distribuiti Prof. S. Balsamo Seminario di Sistemi Distribuiti: RPC su SOAP [ 777775] 1 INTRODUZIONE 3 2 RPC 3 3 SOAP (SIMPLE OBJECT ACCESS PROTOCOL) 3 4 UTILIZZO DI SOAP COME PROTOCOLLO

Dettagli

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE 1. JAVA 1.1 Introduzione a Java Introduzione Cosa è Java 1.2 Sintassi e programmazione strutturata variabili e metodi tipi di dati, array operatori

Dettagli

Architetture per la comunicazione nel Web

Architetture per la comunicazione nel Web 1 Architetture per la comunicazione nel Web 1.1 Principi di base Su Web, le comunicazioni si caratterizzano per un paradigma di funzionamento dell interazione noto con il nome di client-server. A ciò si

Dettagli

Framework. Impianti Informatici. Web application - tecnologie

Framework. Impianti Informatici. Web application - tecnologie Framework Web application - tecnologie Web Application: tecnologie 2 Java-based (J2EE) Sviluppata inizialmente da Sun Cross-platform e open source Gestire direttamente le funzionalità dell applicazione

Dettagli

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition Sviluppo di Applicazioni Web con Java 2 Enterprise Edition Ivan Scagnetto Dipartimento di Matematica e Informatica http://www.dimi.uniud.it/scagnett scagnett@dimi.uniud.it Laboratorio di Tecnologie Lato

Dettagli

INDICE. Indice. Introduzione

INDICE. Indice. Introduzione V Indice Introduzione XIII Capitolo 1 La programmazione multithread 1 1.1 Cosa sono i thread 2 Utilizzare i thread per dare una possibilità ad altri task 9 Avvio ed esecuzione dei thread 10 Esecuzione

Dettagli

ALCAINI MARCO 667032 Modellazione concettuale di applicazioni Web basate su architettura MVC Indice

ALCAINI MARCO 667032 Modellazione concettuale di applicazioni Web basate su architettura MVC Indice INDICE ALCAINI MARCO 667032 Modellazione concettuale di applicazioni Web basate su architettura MVC Indice 1 Introduzione... 3 2 MVC Model 2 e Apache Jakarta Struts... 6 2.1 Modello MVC (Model View - Controller)...

Dettagli

Introduzione a JSP (Java Server Pages) MC 2005

Introduzione a JSP (Java Server Pages) MC 2005 Introduzione a JSP (Java Server Pages) MC 2005 Cosa è JSP JSP è una tecnologia per lo sviluppo di pagine web con contenuti dinamici Miglioramento rispetto alle CGI (modello multithread) Indipendenza dalla

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Servlet Parte a versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer Tecnologie per il Web Il web: architettura e tecnologie principali Una analisi delle principali tecnologie per il web Tecnologie di base http, ssl, browser, server, firewall e proxy Tecnologie lato client

Dettagli

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 8 Java Server Pages Java Server Pages è essenzialmente un modo più comodo per il programmatore dell applicazione web di scrivere una Servlet.

Dettagli

Database & WWW. Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone

Database & WWW. Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone Database & WWW Capitolo 4 Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone 1 Sommario Protocollo HTTP CGI Java Servlet Server-side scripting

Dettagli

Applicazione: GAS - Gestione AcceSsi

Applicazione: GAS - Gestione AcceSsi Riusabilità del software - Catalogo delle applicazioni Gestione ICT Applicazione: GAS - Gestione AcceSsi Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei sistemi informativi Nome

Dettagli

SCUOLA POLITECNICA. 1 semestre Facoltativa Voto in trentesimi

SCUOLA POLITECNICA. 1 semestre Facoltativa Voto in trentesimi SCUOLA ANNO ACCADEMICO OFFERTA 2015/2016 ANNO ACCADEMICO EROGAZIONE 2017/2018 CORSO DILAUREA INSEGNAMENTO TIPO DI ATTIVITA' AMBITO CODICE INSEGNAMENTO 18033 SETTORI SCIENTIFICO-DISCIPLINARI SCUOLA POLITECNICA

Dettagli

Object-Relational Mapping

Object-Relational Mapping Object-Relational Mapping Versione Preliminare Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2008-2009 Questi

Dettagli

Architetture Software

Architetture Software Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software Architetture Software Giulio Destri Ing. del Sw: Architettura - 1 Scopo del modulo

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

UNA RELEASE ROBUSTA E COLLAUDATA IN CONTESTI NAZIONALI ED INTERNAZIONALI EVOLUZIONE DELLA PIATTAFORMA ASSICURATIVA ALL IN ONE

UNA RELEASE ROBUSTA E COLLAUDATA IN CONTESTI NAZIONALI ED INTERNAZIONALI EVOLUZIONE DELLA PIATTAFORMA ASSICURATIVA ALL IN ONE L offerta di Value+, in origine focalizzata sulla gestione dei Rami Vita e dei Fondi Pensione attraverso il sistema invita, diffuso in Italia e all estero, si è arricchita nel corso degli anni estendendosi

Dettagli

Strutture di accesso ai dati

Strutture di accesso ai dati Strutture di accesso ai dati 1 A L B E R T O B E L U S S I P A R T E I I A N N O A C C A D E M I C O 2 0 1 0-2 0 1 1 Gestore dei metodi di accesso 2 E il modulo del DBMS che trasforma il piano di esecuzione

Dettagli

Novità di Visual Studio 2008

Novità di Visual Studio 2008 Guida al prodotto Novità di Visual Studio 2008 Introduzione al sistema di sviluppo di Visual Studio Visual Studio Team System 2008 Visual Studio Team System 2008 Team Foundation Server Visual Studio Team

Dettagli

Internet Architettura del www

Internet Architettura del www Internet Architettura del www Internet è una rete di computer. Il World Wide Web è l insieme di servizi che si basa sull architettura di internet. In una rete, ogni nodo (detto host) è connesso a tutti

Dettagli

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013 e di e di Candidato: Luca Russo Docente: Corso di laurea in Informatica Applicata Facoltá di Scienze e Tecnologie Programmazione su Reti 27 Marzo 2013 Traccia d esame Sviluppare multitier con disaccoppiamento

Dettagli

Laboratorio di reti II: Java Server Pages

Laboratorio di reti II: Java Server Pages Laboratorio di reti II: Java Server Pages Stefano Brocchi brocchi@dsi.unifi.it 6 aprile, 2009 Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, 2009 1 / 34 JSP - Java Server Pages Le

Dettagli

Introduzione alla programmazione Http lato server in Java

Introduzione alla programmazione Http lato server in Java Introduzione alla programmazione Http lato server in Java Tito Flagella Laboratorio Applicazioni Internet - Università di Pisa Slide API Java Titleper il Protocollo Http Programmazione Client java.net.url

Dettagli

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti

Dettagli

Reverse Engineering di Rich Internet Applications basate su AJAX

Reverse Engineering di Rich Internet Applications basate su AJAX Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica tesi di laurea Reverse Engineering di Rich Internet Applications basate su AJAX Anno Accademico: 2006/2007 relatore Ch.mo prof. Anna Rita

Dettagli

Architetture Web I Server Web e gli Standard della Comunicazione

Architetture Web I Server Web e gli Standard della Comunicazione Architetture Web I Server Web e gli Standard della Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 27 Marzo 2012 Architetture Architetture Web Protocolli di Comunicazione Il Client Side

Dettagli

Casi di studio sulla migrazione di applicazioni web verso servizi REST Anno Accademico 2008/2009

Casi di studio sulla migrazione di applicazioni web verso servizi REST Anno Accademico 2008/2009 tesi di laurea Casi di studio sulla migrazione di applicazioni web verso servizi REST Anno Accademico 2008/2009 relatore Ch.mo prof. Porfirio Tramontana candidato Marco Chimenti Matr. 534/1940 OBBIETTIVI

Dettagli