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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

SDD System design document

SDD System design document UNIVERSITA DEGLI STUDI DI PALERMO FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA TESINA DI INGEGNERIA DEL SOFTWARE Progetto DocS (Documents Sharing) http://www.magsoft.it/progettodocs

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

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

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali:

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Componenti di una applicazione Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali: Un sottosistema di interfaccia con l utente (IU, user interface o anche presentation

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

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

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

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

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

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

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

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

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

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

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

WEBsfa: l automazione della forza vendita via Web

WEBsfa: l automazione della forza vendita via Web WEBsfa: l automazione della forza vendita via Web White Paper 1 Gennaio 2005 White Paper Pag. 1 1/1/2005 L automazione della Forza Vendita Le aziende commerciali che che sviluppano e alimentano il proprio

Dettagli

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012 Sapienza Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici

Dettagli

Università degli Studi di Napoli Federico II. FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica LM. Progetto di un applicazione Android

Università degli Studi di Napoli Federico II. FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica LM. Progetto di un applicazione Android Università degli Studi di Napoli Federico II FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica LM Progetto di un applicazione Android Briscola bluetooth Candidati: Giuliano Formato Daniele

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

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

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

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

Web Programming Specifiche dei progetti

Web Programming Specifiche dei progetti Web Programming Specifiche dei progetti Paolo Milazzo Anno Accademico 2010/2011 Argomenti trattati nel corso Nel corso di Web Programming sono state descritti i seguenti linguaggi (e tecnologie): HTML

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 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

Siti web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications) Siti web centrati sui dati (Data-centric web applications) 1 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 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente

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

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

Programmazione Web. Introduzione

Programmazione Web. Introduzione Programmazione Web Introduzione 2014/2015 1 Un'applicazione Web (I) 2014/2015 Programmazione Web - Introduzione 2 Un'applicazione Web (II) 2014/2015 Programmazione Web - Introduzione 3 Un'applicazione

Dettagli

Corso Web programming

Corso Web programming Corso Web programming Modulo T3 A1 Modelli di programmazione 1 Prerequisiti Concetto di rete Processi e thread Concetti generali sui database 2 1 Introduzione Un particolare ambito della programmazione

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

SOFTWARE MAINTENANCE DESIGN

SOFTWARE MAINTENANCE DESIGN SOFTWARE MAINTENANCE DESIGN INTRODUZIONE... 1 1.1 Identificazione della richiesta di modifica... 2 1.2 Assegnazione di un numero di identificazione alla Change Request... 2 1.3 Classificazione del tipo

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

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

Messaggi volatili. Matteo Zignani. 10 gennaio 2015

Messaggi volatili. Matteo Zignani. 10 gennaio 2015 UNIVESITÁ DEGLI STUDI DI MILANO LAUREA TRIENNALE IN COMUNICAZIONE DIGITALE PROGETTO LABORATORIO DI RETI DI CALCOLATORI Messaggi volatili Matteo Zignani 10 gennaio 2015 1 PRESENTAZIONE DEL PROBLEMA Lo studente

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

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

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet Java Server Pages (JSP) Introduzione alle JSP Linguaggio di scripting lato server HTML-embedded Una pagina JSP contiene sia HTML sia codice Il client effettua la richiesta per la pagina JSP La parte HTML

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

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. SISTEMI E RETI Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. CRITTOGRAFIA La crittografia è una tecnica che si occupa della scrittura segreta in codice o cifrata

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

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

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

Corso basi di dati Introduzione alle ASP

Corso basi di dati Introduzione alle ASP Corso basi di dati Introduzione alle ASP Gianluca Di Tomassi Email: ditomass@dia.uniroma3.it Università di Roma Tre Web statico e Web interattivo In principio il Web era una semplice collezione di pagine

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

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

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

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

SIASFi: il sistema ed il suo sviluppo

SIASFi: il sistema ed il suo sviluppo SIASFI: IL SISTEMA ED IL SUO SVILUPPO 187 SIASFi: il sistema ed il suo sviluppo Antonio Ronca Il progetto SIASFi nasce dall esperienza maturata da parte dell Archivio di Stato di Firenze nella gestione

Dettagli

Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3

Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3 Introduzione...xv A chi si rivolge questo libro...xv Gli argomenti trattati...xv Com è organizzato il libro...xvi Cosa occorre per utilizzare il libro...xvii Convenzioni adottate...xvii Il codice sorgente...xviii

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

Parte II: Reti di calcolatori Lezione 9

Parte II: Reti di calcolatori Lezione 9 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 9 Martedì 1-04-2014 1 Applicazioni P2P

Dettagli

Introduzione all elaborazione di database nel Web

Introduzione all elaborazione di database nel Web Introduzione all elaborazione di database nel Web Prof.ssa M. Cesa 1 Concetti base del Web Il Web è formato da computer nella rete Internet connessi fra loro in una modalità particolare che consente un

Dettagli

Messa in esercizio, assistenza e aggiornamento di una Piattaform Open Source Liferay plug-in per ARPA

Messa in esercizio, assistenza e aggiornamento di una Piattaform Open Source Liferay plug-in per ARPA Messa in esercizio, assistenza e aggiornamento di una Piattaform Open Source Liferay plug-in per ARPA Pag. 1 di 16 Redatto da F. Fornasari, C. Simonelli, E. Croci (TAI) Rivisto da E.Mattei (TAI) Approvato

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

Applicazioni web centrati sui dati (Data-centric web applications)

Applicazioni web centrati sui dati (Data-centric web applications) Applicazioni web centrati sui dati (Data-centric web applications) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento

Dettagli

MetaMAG METAMAG 1 IL PRODOTTO

MetaMAG METAMAG 1 IL PRODOTTO METAMAG 1 IL PRODOTTO Metamag è un prodotto che permette l acquisizione, l importazione, l analisi e la catalogazione di oggetti digitali per materiale documentale (quali immagini oppure file di testo

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

Sme.UP Web Application

Sme.UP Web Application Sme.UP Web Application Web Application Web.UP Una interfaccia web per i vostri dati gestionali Il modulo applicativo Web.UP fornisce al progettista di siti Internet una serie di potenti strumenti per l'integrazione

Dettagli

La specifica del problema

La specifica del problema 2.9 (Caso di studio facoltativo) Pensare a oggetti: esame del problema Iniziamo ora a esaminare il nostro caso di studio di progettazione e implementazione orientate agli oggetti. Le sezioni Pensare a

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

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna Il CMS Moka Giovanni Ciardi Regione Emilia Romagna Moka è uno strumento per creare applicazioni GIS utilizzando oggetti (cartografie, temi, legende, database, funzioni) organizzati in un catalogo condiviso.

Dettagli

DD - Design Document

DD - Design Document Politecnico di Milano Progetto di Ingegneria del Software 2 DD - Design Document Autori: Claudia Foglieni Giovanni Matteo Fumarola Massimo Maggi Professori: Elisabetta Di Nitto Raffaela Mirandola 1 gennaio

Dettagli

Estensione di un sistema per la gestione semi-automatica di siti didattici con XML

Estensione di un sistema per la gestione semi-automatica di siti didattici con XML Università degli Studi di Milano Bicocca Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Estensione di un sistema per la gestione semi-automatica di siti didattici con

Dettagli

Appunti di Sistemi Distribuiti

Appunti di Sistemi Distribuiti Appunti di Sistemi Distribuiti Matteo Gianello 27 settembre 2013 1 Indice 1 Introduzione 3 1.1 Definizione di sistema distribuito........................... 3 1.2 Obiettivi.........................................

Dettagli

7. Architetture Software

7. Architetture Software 7. Architetture Software progettare la struttura Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 7. Architetture Software 1 / 20 Scopo della fase di design

Dettagli

Il Protocollo HTTP e la programmazione di estensioni Web

Il Protocollo HTTP e la programmazione di estensioni Web Il Protocollo HTTP e la programmazione di estensioni Web 1 Il protocollo HTTP È il protocollo standard inizialmente ramite il quale i server Web rispondono alle richieste dei client (prevalentemente browser);

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

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Il File System. È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati

Il File System. È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati Il File System È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati Le operazioni supportate da un file system sono: eliminazione di dati modifica

Dettagli

Dopo Natale puoi... Matteo Zignani. 20 dicembre 2013

Dopo Natale puoi... Matteo Zignani. 20 dicembre 2013 UNIVESITÁ DEGLI STUDI DI MILANO LAUREA TRIENNALE IN COMUNICAZIONE DIGITALE PROGETTO LABORATORIO DI RETI DI CALCOLATORI Dopo Natale puoi... Matteo Zignani 20 dicembre 2013 1 PRESENTAZIONE DEL PROBLEMA Il

Dettagli

Indice PARTE PRIMA L INIZIO 1

Indice PARTE PRIMA L INIZIO 1 Indice Introduzione XIII PARTE PRIMA L INIZIO 1 Capitolo 1 Esplorare il World Wide Web 3 1.1 Come funziona il World Wide Web 3 1.2 Browser Web 10 1.3 Server Web 14 1.4 Uniform Resource Locators 15 1.5

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