Web framework in ambito Java: Java Server Faces

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Web framework in ambito Java: Java Server Faces"

Transcript

1 POLITECNICO DI TORINO III Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Monografia di Laurea Web framework in ambito Java: Java Server Faces Terzulli Pierangelo matr A.A. 2006/ 2007

2

3 CAPITOLO INTRODUZIONE... 4 METODOLOGIA DI RICERCA... 4 CAPITOLO LA PIATTAFORMA JAVA ENTERPRISE EDITION... 5 IL FRAMEWORK SPRING... 6 Spring IoC... 7 Spring AOP... 8 Spring DAO e Spring ORM... 9 SPRING MVC... 9 Controller URL Mapping View Resolver View CAPITOLO L APPLICAZIONE BANCARIA COB STRATEGIA IMPLEMENTATIVA IL PROBLEMA DEL MANTENIENTO DELLO STATO CAPITOLO ARCHITETTURA DEL FRAMEWORK JSF Execution Model User Interface Component Model Component Rendering Model Conversion Model Event e Listener Model Validation Model Navigation Model Backing Bean Management Model

4 IL CICLO DI VITA DELLE RICHIESTE JSF Restore View Apply Requests Process Validation Update Model Values Invoke Application Render Response VANTAGGI DERIVANTI DALL USO DI JSF CAPITOLO INTEGRAZIONE CON SPRING Configurazione della Web Application Il Backing Bean CriteriController La view crtieri.jsp SOLUZIONI ALTERNATIVE D INTEGRAZIONE TRA SPRING E JSF CONCLUSIONI

5 Capitolo 1 Introduzione Il tirocinio si è svolto presso l azienda Trim Srl, il cui core business è lo sviluppo di applicazioni di classe enterprise in ambiente Java/.Net. Il mio compito consisteva nell analisi dell architettura software adottata internamente al fine di individuare se e come il web framework JSF (Java Server Faces) dimostrasse una maggiore scalabilità e flessibilità rispetto a quello usato internamente e se fosse facilmente integrabile nei progetti preesistenti. Al fine di capire le reali necessità dell azienda sono stato affiancato ad un team di sviluppatori per seguire lo sviluppo di un progetto reale, nella fattispecie un applicazione bancaria, COB (COllateralizzazione dei prestiti Bancari). In tal modo ho potuto osservare da vicino le problematiche da loro riscontrate nell uso del web framework adottato correntemente, per poter così determinare se e come l uso di JSF potesse risultare vantaggioso. Metodologia di ricerca Ho suddiviso quindi la mia attività in cinque fasi fondamentali: capire il funzionamento dell architettura Java EE e Spring; analizzare la strategia implementativa dell applicazione COB, in particolar modo lo sviluppo dell interfaccia web; indivudure i problemi riscontrati nell uso del web framework corrente; analizzare le opportunità offerte da JSF in termini sviluppo e integrazione; dimostrare come JSF semplifica la codifica del WebLayer. 4

6 Capitolo 2 L architettura interna adottata dall azienda per il progetto da me seguito è basata sulla piattaforma Java Enterprise Edition (Java EE) e fa uso del framework Spring. Tale architettura è stata utilizzata anche per altri progetti realizzati precedentemente. Il progetto da me seguito consisteva nella realizzazione di una applicazione multi-layer bancaria di livello enterprise, accessibile tramite interfaccia web e supportata da un database Oracle preesistente. Oltre alle funzionalità di business, l applicazione doveva quindi gestire le transazioni e l interfacciamento con l utente. Prima di analizzare il design dell applicazione ritengo opportuno descrivere in linea generale l architettura software su cui si basa il progetto. La piattaforma Java Enterprise Edition La piattaforma Java Enterprise Edition, secondo la definizione della stessa Sun (l azienda che l ha realizzata) è uno standard industriale per lo sviluppo di applicazioni Java-based portabili, robuse, scalabili e sicure. Si tratta di una piattaforma multi-livello che fornisce un gran numero di servizi, tra i quali transazionalità, web services, un component model, un sistema di accesso ai dati, sicurezza, tutti requisiti fondamentali per un applicazione di classe enterprise. La piattaforma è definita attraverso una specifica alla quale tutti i produttori di software Java EE compatibile devono aderire. È proprio grazie a questo meccanismo che è considerata di fatto uno standard industriale. Anche i servizi da essa forniti sono definiti attraverso specifiche, denominate API specification: Enterprise Java Beans, Servlets, JDBC sono solo alcune di esse e servono rispettivamente a definire un ambiente entro cui eseguire gli oggetti di una applicazione Java EE, un ambiente entro cui eseguire una applicazione web, un sistema standard di accesso ai dati. Tutte le applicazioni Java EE devono essere eseguite all interno di un Application Server, cioè un applicazione che implementi la specifica Java EE. Considerata la complessità e la vastità della specifica, non stupisce che soluzioni basate su questa piattaforma costino non poco. In genere i produttori di software Java EE compatibile vendono licenze annuali dei loro applicativi, in quanto si rivolgono a clienti che hanno particolari esigenze sia in termini di performance, sia in termini di sicurezza e fault-tolerance. Purtroppo, proprio la complessità della specifica ha reso negli anni lo sviluppo di applicazioni Java EE piuttosto difficile, lungo e tedioso. Man mano che l ingegneria del software sviluppava nuove metodologie di sviluppo (Test Driven Development, Model Driven development, Extreme Programming solo per citarne alcuni), ci si rendeva conto di come il modello di programmazione 5

7 adottato da Java EE fosse poco flessibile: le applicazioni sviluppate per questa piattaforma erano intimamente legate ad essa e col tempo divenivano difficilmente manutenibili e scalabili. Nel 2002 alcuni di questi problemi furono esposti in un libro, Expert One-on-One J2EE Design and Development, in cui l autore Rod Johnson proponeva alcune linee guida e best practice da adottare; il codice che accompagnava il libro sarebbe diventato quello che oggi è conosciuto come il framework Spring. Figura 1 Panoramica della piattaforma Java EE Il framework Spring Spring è un framework open-source sviluppato per semplificare la realizzazione di applicazioni basate su Java EE. Nel corso degli anni però si è arricchito di una moltitudine di servizi le cui funzionalità spaziano dalla gestione delle transazioni, alla sicurezza, all ORM, al sistem management,ai web services. Ad oggi è considerato una valida e leggera (lightweight) alternativa al più pesante Java EE, soprattutto in quei casi dove è richiesto solo una piccola parte (tipicamente gestione delle transazioni e interfacciamento web) delle funzionalità offerte da un Application Server. 6

8 SPRING IOC Il framework Spring è, nella sua più intima essenza, un container che implementa l Inversion of Control pattern (IoC). Con IoC ci si riferisce ad un metodo per risolvere le dipendenze tra oggetti a run-time senza che esse siano specificate nel codice degli oggetti dipendenti. Generalmente in una qualsiasi applicazione non banale, un oggetto che voglia fornire una determinata funzionalità ha bisogno delle funzionalità fornite da uno o più oggetti esterni, siano essi locali o remoti; per ottenerle può utilizzare diversi modi: può istanziare direttamente l oggetto/gli oggetti nel corpo di uno dei suoi metodi, può ottenerlo/i attraverso un oggetto factory oppure può ottenere un riferimento ad esso/i effettuando un lookup JNDI. Qualunque approccio si preferisca, gli oggetti dell applicazione risultano fortemente legati tra di loro: nel primo caso a nulla servirebbe nascondere l oggetto desiderato dietro una interfaccia, in quanto l oggetto chiamante deve fornire comunque una implementazione specifica; nel caso in cui si usi JNDI invece, l oggetto sarà fortemente legato ad un servizio esterno, offerto generalmente dall application server in cui opera. In qualunque modo si operi dunque si sporcano gli oggetti di business logic, cioè si interrompe il flusso logico per risolvere un problema che logicamente è indipendente dalle funzionalità che gli oggetti devono fornire. Un IoC container come quello alla base di Spring, al contrario, si fa carico di risolvere queste dipendenze per loro, iniettando gli oggetti desiderati quando essi saranno richiesti e rendendoli disponibili nello Spring Context: allo sviluppatore è richiesto soltanto di dichiarare queste dipendenze nel file applicationcontext.xml. Esternalizzare le dipendenze in un file XML separato permette quindi di minimizzare quanto più possibile le dipenze tra gli oggetti stessi, favorendone un più efficace riutilizzo e rendendo l applicazione nel suo insieme più facilmente manutenibile, rendendola inoltre completamente disaccoppiata dal container entro la quale gira. 7

9 Figura 2 Spring Overview SPRING AOP AOP Altro modulo importante del framework Spring è quello che fornisce il supporto all Aspect Oriented Programming (AOP). Tale paradigma è una evoluzione del più famoso Object Oriented Programming (OOP) che sta alla base della tecnologia Java stessa e di una moltitudine di altri linguaggi moderni (C++,.Net, Delphi, Python tanto per fare alcuni esempi). L uso di AOP è indicato per tutta quella classe di problemi che non sono facilmente modellabili con un approccio object oriented, semplicemente perché interessano l applicazione nel suo insieme (sono cioè dei cross-cutting concern): esempi tipici sono la sicurezza, il logging, la transazionalità o la persistenza: sono caratteristiche che il sistema deve avere, ma sono logicamente indipendenti dalla business logic dell applicazione. Implementare questi aspetti con logica object oriented significherebbe ancora una volta sporcare gli oggetti, interrompere il flusso logico per risolvere problematiche che esulano dalla logica applicativa. L uso di AOP invece fa sì che la loro gestione sia trasparente all applicazione. 8

10 SPRING DAO E SPRING ORM DAO ORM Il supporto per l accesso ai dati in Spring è garantito dai moduli DAO (Data Access Object) e ORM (Object-Relational Mapping): il primo semplifica notevolemente il codice JDBC per l accesso alle basi di dati, evitando di aprire e chiudere le connessioni e, attraverso l uso di AOP, offre un supporto alle transazioni addirittura più esteso rispetto a quello fornito da JTA (la specifica Java EE relativa alle transazioni), che tra l altro richiede il supporto di un Application Server. Il secondo permette di fare uso nella propria applicazione delle più svariate tecnologie di ORM (Object-Relational Mapping) oggi esistenti: Hibernate, ibatis, JPA, JDO, Oracle TopLink per citare i più diffusi. A tal proposito, nonostante la scelta sia molto variegata, negli ultimi anni l elevato grado di integrazione tra l IoC container e Hibernate (altro progetto open-source) sta dimostrando un notevole successo in ambito enterprise, ponendosi in diretta concorrenza con software commerciali similari. Spring MVC Per quanto riguarda il supporto web, Spring dispone del modulo Spring MVC che fa uso delle Servlet API. Essendo questo il modulo usato per l implementazione dell interfaccia web di COB, ritengo opportuno descriverlo in maniera più approfondita. Spring MVC, come si evince dal nome, implementa il pattern Model View Controller, in cui il Model rappresenta il dato da presentare all utente, la View rappresenta ciò che l utente vede e con cui interagisce, mentre il Controller interpreta le richieste dell utente, le elabora e ne fornisce i risultati. È costruito attorno alla servlet DispatcherServlet, la quale agisce come Front Controller delegando la gestione delle richieste in arrivo alle classi Controller. Il diagramma seguente illustra il flusso del framework per rispondere ad una richiesta proveninete da un client. Il Controller quindi processa la richiesta, esegue la logica di back-end necessaria e alla fine genera un oggetto ModelAndView che la DispatcherServlet utilizzerà per effettuare il rendering della response con la collaborazione di un ViewTemplate. 9

11 Figura 3 Gestione di una request Come tutte le servlet, anche la DispatcherServlet va configurata nel file web.xml, il file descriptor della web application. Nel caso di COB, esso appare così: <context-param> <param-name>contextconfiglocation</param-name> <param-value> /WEB-INF/classes/applicationContext.xml </param-value> </context-param> <listener> <listener-class> org.springframework.web.context.contextloaderlistener </listener-class> </listener> <servlet> <servlet-name>cob</servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>cob</servlet-name> <url-pattern>*.htm</url-pattern> </servlet-mapping> Da notare le definizioni del parametro contextconfiglocation e del listener ContextLoaderListener, necessari rispettivamente per localizzare il file applicationcontext.xml contenente le dipendenze del progetto e caricare all avvio l Application Context. 10

12 La servlet DispatcherServlet così configurata, denominata cob, verrà richiamata per tutte le richieste alle pagine il cui nome corrisponde all espressione *.htm. Durante la sua inizializzazione, essa carica un particolare file xml, cob-servlet.xml, all interno del quale sono configurati i vari controller, handler mapping e resolver coinvolti nell elaborazione delle richieste ad essa associate. Il file cob-servlet.xml, come l applicationcontext.xml per L IoC di Spring, definisce ciò che viene chiamato WebApplicationContext associato alla servlet cob. Figura 4 il file cob-servlet CONTROLLER I controller, come anticipato precedentemente, permettono di accedere al comportamento della web application. In Spring MVC una classe che voglia agire da controller deve implementare l interfaccia Controller: public interface Controller { } ModelAndView handlerequest( HttpServletRequest request, HttpServletResponse response) throws Exception; Essendo molto generica, il framework mette a disposizione dello sviluppatore una serie di Controller specificatamente pensati per risolvere alcune situazioni comuni. In COB ad esempio tutte i controller estendono la classe BaseMultiActionFormController, la quale estende 11

13 a sua volta il controller fornito da Spring MultiActionFormController. Esso permette ad un unico controller di gestire più richieste, siano esse di tipo GET o POST, centralizzando funzionalità comuni su un'unica classe. I controllers, così come le servlet, sono mappati ad una o più URL e hanno accesso agli oggetti HttpServletRequest e HttpServletResponse necessari per poter estrarre i dati inviati dall utente, elaborarli (attraverso i servizi messi a disposizione dallo strato di business-logic sottostante) ed infine indirizzare i risultati alla view dedicata alla loro rappresentazione. URL URL MAPPING Per determinare quale controller deve eleborare una particolare richiesta, effettuando quindi ciò che viene definito come URL Mapping, bisogna configurare un HandlerResolver. Spring, a seconda della strategia utilizzata per il mapping, mette a disposizione alcune implementazioni di HandlerResolver: nel caso di COB si è scelto di usare il PropertiesMethodNameResolver, attraverso il quale è stato possibile associare gli URL direttamente ai metodi dei Controller che si occupano della loro gestione. Tali metodi devono restituire un oggetto ModelAndView affinchè il framework sia poi in grado di determinare quale pagina restituire all utente. Figura 5 Mapping attraverso PropertiesMethodNameResolver 12

14 VIEW RESOLVER L oggetto ModelAndView contiene al suo interno un riferimento alla view da visualizzare e i risultati dell oprazione richiesta. Tale riferimento non è altro che un nome logico, che verrà poi risolto da un oggetto, il ViewResolver appunto, fornito direttamente da Spring MVC e che il programmatore deve configurare appositamente. Questa separazione permette un completo disaccoppiamento tra il Controller e la particolare tecnologia di rendering utilizzata per la view. VIEW La tecnologia di rendering predefinita per Spring MVC è JSP, la stessa adottata per l applicazione COB in quanto ben conosciuta dal team di sviluppo. È possibile però utilizzare altre tecnologie, come XML, XUL, JSF o addirittura formati binari come PDF, XSL o DOC (queste necessitano però di un ViewResolver specifico e appositamente configurato). 13

15 Capitolo 3 L applicazione bancaria COB Dall analisi si è dedotto che l applicazione da realizzare deve gestire la collateralizzazione dei prestiti bancari per conto dell azienda committente, la banca San Paolo. Nella fattispecie si tratta di gestire il rapporto che sussiste tra il cliente e la Banca d Italia duante l erogazione dei prestiti. Quando alla banca San Paolo arriva una richiesta di prestito, questa deve soddisfare una serie di condizioni (definite mediate criteri di idoneità) per poter essere autorizzata. Se queste condizioni sono soddisfatte, la richiesta viene assegnata al comitato crediti, il quale può decidere se assegnarla a sua volta alla propria tesoreria, SPIMI, o scartarla. A questo punto la tesoreria può comunicare a Banca d Italia la richiesta del prestito attraverso un sistema di messaggistica sicuro e adottato a livello internazionale, denominato SWIFT. Qualora Banca d Italia autorizzi il prestito, esso viene considerato costituito in pegno e San Paolo può richiederne lo svincolo, altrimenti viene scartato. In generale quindi il ciclo di vita di un prestito prevede quattro fasi: verifica della congruità tecnica e accettazione del comitato crediti (assegnazione a tesoreria); segnalazione a Banca d Italia; costituzione in pegno; svincolo. 14

16 scartato tecnicamente congruo da approvare comitato assegnato a tesoreria Figura 6 diagramma di stato del prestito per la congruità tecnica richiesta da San Paolo n/a (stato di part enza) stato n/a applicabile quando lo stato 1 non vale "assegnato a tesoreria" da segnalare a Bankit stato "da segnalare a Bankit" applicabile quando lo stato congruità (campo di stato 1) diventa "assegnato a tesoreria" segnalato a B ankit rifiutato da Bankit costituito in pegno non ripresentabile richiesta di svinc olo s cadut o svincolato Figura 7 Diagramma di stato del prestito per l autorizzazione da parte di Banca d Italia 15

17 In fase di analisi sono stati individuati due diversi livelli di criterio di idoneità: un criterio di idoneità "forte" (MASTER) per rispondere alle regole imposte dalla Banca d'italia e un criterio di idoneità "debole" (di PRESELEZIONE) interno a San Paolo. I criteri MASTER sono i criteri che vengono applicati dal sistema ai soli prestiti assegnati a tesoreria al fine di verificarne giornalmente la congruità tecnica richiesta da Banca d'italia per l accettazione. Sono creati da un utente amministratore e vengono applicati con scadenza giornaliera dal sistema in maniera automatica. Per ciascun criterio l amministratore può indicare se la sua mancata verifica debba portare necessariamente allo svincolo del prestito e se la cosa debba essere trascritta in un file di log: può cioè creare criteri che svincolano il prestito e criteri che tracciano soltanto l incongruità del prestito riferita al singolo criterio. I criteri di PRESELEZIONE sono legati alle opportunità definite dalla tesoreria SPIMI e possono mutare nel tempo con maggiore frequenza rispetto ai criteri MASTER. Sono creati e applicati nella fase di preselezione dei prestiti, volta a individuare quali prestiti possono essere assegnati al comitato crediti per l approvazione. Sono di competenza per l appunto dell operatore addetto alla preselezione dei crediti. Se il prestito soddisfa i criteri di idoneità imposti da Banca d Italia (criteri MASTER) esso entra nello stato da segnalare a Bankit e la tesoreria può inoltrare la richiesta a Banca d Italia: inviando un messaggio SWIFT di segnalazione a Banca d Italia. Banca d Italia, allorquando riceve la segnalazione, invia un altro messaggio SWIFT, detto di ack su segnalazione. Se la Banca d Italia conferma la validità del prestito inviando un messaggio di SWIFT di accettazione, il prestito entra nello stato costituito in pegno, altrimenti al ricevimento di un messaggio SWIFT di invalidità entra nello stato scartato. Strategia implementativa Trattandosi di una applicazione di livello enterprise piuttosto complessa, si è deciso di strutturare COB concettualmente su tre livelli o layer: Il DataLayer, che rappresenta la base dati Oracle locale ove risiedono le informazioni relative ai prestiti (ricevute giornalmente tramite un servizio remoto denominato host ), il Business Layer ove risiede la logica di business dell applicazione stessa, ed infine il Web Layer che rappresenta l interfaccia utente dell applicazione. La separazione tra business logic e interfaccia utente è fondamentale ed è considerata una best practice nello sviluppo software. Nel caso di COB in particolare semplifica una eventuale sostituzione del web framework utilizzato. 16

18 Grazie all utilizzo estensivo del framework Spring durante l ingegnerizzazione dell applicazione, l applicazione non necessita di un completo Application Server per poter funzionare, giacchè gran parte delle funzionalità di classe enterprise sono fornite dal framework stesso. In particolare Le funzionalità di accesso ai dati e la transazionalità sono ottimamente gestite dal modulo Spring DAO, mentre per quelle di ORM si è fatto uso di Hibernate. Per lo sviluppo del Web Layer ci si è affidati, come anticipiato precedentemente, al modulo Spring MVC e al servlet container Apache Tomcat: è stato quindi possibile modellare COB semplicemente come una web-application e deployare il file war corrispondente sul server Tomcat. L ambiente di sviluppo adottato quindi è costituito dall IDE Eclipse nella sua versione 3.2, affiancato da Spring versione 1.2, Hibernate versione 3.0 e dal servlet container Apache Tomcat nella versione 5.0. Figura 8 Struttura del progetto eclipse relativo all applicazione COB Il codice dell applicazione è fondamentalmente strutturato in due progetti eclipse: COBBusinessLayer, e COBWebApplication. Per quanto riguarda il primo, dalla figura sottostante si notano: 17

19 Figura 9 Struttura del progetto COBBusinessLayer Il package com.sanpaolo.cob.beans: qui risiedono i beans che rappresentano il modello dell applicazione e ne mantengono lo stato. In particolare essi sono stati automaticamente generati tramite Hibernate mappando le tabelle presenti nella base dati Oracle e la cui locazione è specificata all interno del file applicationcontext.xml; Figura 10 contenuto del package com.sanapolo.cob.beans 18

20 Il package com.sanpaolo.cob.business: come si evince dal nome, qui invece trovano spazio gli oggetti che implementano la logica di business, ovvero le funzionalità di COB. Il codice che definisce l interfaccia web si appoggia direttamente a queste classi per fornire le funzionalità di business agli utenti, perciò tali classi saranno esposte come service nel file applicaitioncontext.xm; Figura 11 contenuto del package com.sanapolo.cob.business Il package com.sanpaolo.cob.dao: contiene al suo interno l oggetto HibernateDAO che è esposto nel file applicationcontext.xml per fornire il servizio DataAccess necessario per l accesso ai dati; Figura 12 contenuto del package com.sanapolo.cob.dao 19

21 Il file applicationcontext.xml: rappresenta il file xml necessario all IoC container di Spring per capire le dipendenze tra le varie classi dell applicazione. In particolare, come si evince dalla figura, le classi che implementano la logica applicativa e quelle che realizzano la comunicazione con il database sono esposte attraverso il tag <bean>; Spring si occuperà quindi di renderle disponibili nelle classi che definiscono l interfaccia utente. Figura 13 contenuto del file applicationcontext.xml La struttura del progetto COBWebApplication è invece costituita dai sorgenti che definiscono la parte Controller e dalle pagine JSP che definiscono la parte View: 20

22 Figura 14 Struttura di COBWebApplication con espanso il package relativo ai controller Figura 15 Vista delle pagine JSP 21

23 Per quanto riguarda lo sviluppo della View, si è deciso di adottare una struttura a quattro pagine, ognuna dedicata ai casi d uso individuati in fase d analisi e cioè: definizione dei criteri MASTER; preselezione dei prestiti da presentare al comitato; gestione dei prestiti assegnati a tesoreria; gestione degli SWIFT. Figura 16 schermata iniziale di COB in modalità Amministratore La figura mostra la pagina iniziale dell applicazione attraverso cui l operatore può accedere alle varie funzionalità: ogni pagina quindi presenta una serie di TAB o sottsezioni ognuna delle quali relativa alle varie operazioni necessarie al completamento del task. 22

24 Figura 17 Definizione dei criteri MASTER Tramite il primo link l amministratore può definire le condizioni di eligibilità previste dai criteri MASTER imposti da Banca d Italia per l autorizzazione del prestito. Figura 18 Definizione dei criteri di preselezione dei crediti Il secondo link permette di gestire le operazioni relative alla preselezione dei prestiti da inviare al comitato crediti. L operatore di preselezione crediti può quindi definire i criteri di 23

25 PRESELEZIONE, avviare la procedura di preselezione dei prestiti provenienti da HOST (applicando i criteri precedentemente definiti), assegnare i prestiti preselezionati al comitato crediti e, in base alle decisioni prese da quest ultimo, assegnarli alla tesoreria o scartarli. Figura 19 Il terzo link è accessibile dagli operatori della tesoreria, e permette di gestire il ciclo di vita del prestito rispetto a Banca d Italia (segnalazione, costituzione in pegno, scarto). La generazione degli SWIFT necessari alla comunicazione è fatta automaticamente da COB (ma non l invio degli stessi la cui operazione è demandata all utente). Inoltre il sistema permette all utente di trascrivere i dettagli delle operazioni compiute in un documento MS Word (funzione richiesta da San Paolo per espletare alcuni obblighi legali e burocratici). 24

26 Figura 20 Gestione Swift e Alert Il quarto link è dedicato interamente alla gestione dei messaggi SWIFT e ALERT (messaggi informativi generati dal sistema al verificarsi di certe condizioni) generati al link precedente. Qui l utente può controllare che i messaggi SWIFT generati dal sistema siano validi e quindi autorizzarne l invio. Il problema del manteniento dello stato Durante lo sviluppo di COBWebApplication mi sono reso conto delle difficoltà incontrate dagli sviluppatori nella realizzazione nel WebLayer, in particolar modo quando era necessario gestire lo stato dell interfaccia web tra una request e l altra, ma anche nell aggiunta di funzionalità che esulavano dalla business logic e che riguardavano esclusivamente l aspetto e il comportamento della GUI. Inizialmente ho pensato fosse un problema dovuto alla mancanza, nel team di sviluppo, di un web designer, una figura esperta nella realizzazione di pagine html. In realtà col procedere dello sviluppo diventava sempre più chiaro che il problema risiedeva in alcune limitazioni del modello di programmazione proposto da Spring MVC. Il problema deriva essenzialmente dal fatto che il protocollo HTTP su cui si basa il web è essenzialmente un protocollo stateless. Ciò comporta che il passaggio dei dati da una pagina all altra e in generale il mantenimento dello stato della GUI è totalmente a carico dello sviluppatore; Spring MVC d altro canto non offre alcun supporto a questo genere di problema, concentrandosi esclusivamente sulla coordinazione tra Model, View e Controller: tale problema 25

27 dunque si riflette sia nello sviluppo delle pagine JSP che nello sviluppo dei controller ad esse associati. Un esempio particolarmente evidente di questo problema riguarda la selezione dei criteri di PRESELEZIONE e il loro successivo processamento per l assegnamento al comitato. La soluzione adottata all'interno di COB prevede che l'utente possa creare criteri su qualunque dei campi presenti all'interno del flusso prestiti proveniente da host: per uno specifico campo possono esistere soltanto un criterio di tipo "applica o non applica" o un criterio di tipo "valuta e scrivi nel log"; per ciascun criterio inoltre, l'utente può indicare se, qualora non fosse verificato, esso deve portare all'esclusione del prestito oppure se deve soltanto causare una scrittura nel log applicativo relativo all'operato dei criteri. L implementazione di questa funzionalità è affidata al controller critericontroller e alla pagina JSP criteri.jsp (forniti in allegato alla presente relazione). Il primo, attraverso l uso degli oggetti di business logic, preleva i campi SQL relativi ai prestiti provenienti da host e li inserisce all interno dell oggetto ModelAndView. Uno sguardo più approfondito al codice rivela però che buona parte di esso è dedicato all invio di variabili di controllo per la presentazione, ad esempio _selectedrow, _azione, visualizzadettagli. Tale codice, secondo chi scrive, non dovrebbe interessare il controller ma esclusivamente la view. Il controller dovrebbe solo intercettare gli input dell utente (provenienti dalla view) e provvedere di conseguenza a richiamare le funzionalità di business richieste, restituendone i risultati. D altro canto il reperimento dei parametri inviati dall utente avviene attraverso l oggetto HttpServletRequest, un oggetto messo a disposizione dalle Servlet API ma che opera a basso livello, quello HTTP, e che non ha alcuna cognizione del contesto applicativo in cui opera. Per quanto riguard criteri.jsp, si nota subito l abbondanza di codice JavaScript personalizzato, utilizzato prevalentemente per l invio dei dati al server (manipolando opportunamente gli elementi form della pagina web), mentre invece il codice JSP è usato per lo più per visualizzare i dati richiesti e controllare l aspetto della view attraverso le variabili rese disponibili da CriteriController. Nell insieme Il codice della pagina si presenta abbastanza caotico e di difficile manutenzione, a causa anche della stretta interdipendenza tra view e controller. Questo aspetto limita moltissimo il riutilizzo dei componenti; si pensi ad esempio all uso delle variabili _selectedrow, _azione e visualizzadettagli, che si riferiscono esclusivamente allo stato della view ma sono definite nel controller: se un altro controller volesse far uso della stessa view saremmo costretti a reimplementare le stesse variabili nel nuovo controller, duplicando inutilmente il codice. 26

28 La gestione lato server dello stato di un applicazione web quindi comporta numerosi problemi di scalabilità e manutenzione, e nonostante il problema sia stato discusso e affrontato in vari modi nessuna delle soluzioni proposte dal mercato è risultata soddisfacente. La piattaforma Java EE d altro canto, si è limitata finora a fornire solamente un supporto basilare alle applicazioni web (attraverso le Servlet API), senza mai affrontare direttamente il problema del mantenimento dello stato in maniera sufficiente. Da ciò è nata la necessità da parte di Trim di orientarsi verso altri framework, in particolare verso JSF. 27

29 Capitolo 4 Architettura del framework JSF JavaServer Faces (JSF) è una nuova specifica definita all interno della piattaforma Java Enterprise Edition versione 5, per la realizzazione di web application. Si tratta di un framework basato sulle Servlet API che implementa il pattern MVC ma che adotta un approccio completamente diverso e per certi versi innovativo rispetto alle soluzioni precedenti. Esso infatti fornisce un modello di sviluppo component-based, event-driven, molto simile a quello proposto da Swing per applicazioni desktop. In JSF l interfaccia utente è rappresentata lato server da un albero di oggetti (i componenti appunto) che ne rappresentano lo stato in ogni momento del suo ciclo di vita. Ogni azione che l utente effettua su un dato componente dell interfaccia genera un evento che può essere intercettato e processato lato server: il collegamento (binding) tra elementi dell interfaccia e oggetti lato server è effettuato in maniera automatica dal framework stesso, liberando lo sviluppatore dai problemi derivanti dalla natura stateless del protocollo HTTP. Figura 21 Il Modello di comunicazione a eventi di JSF JSF fa uso di servizi già presenti nella piattaforma Java EE (sulla quale del resto si basa) ma su questi costruisce un nuovo impianto architetturale entro cui fornisce alcune tipologie di servizi completamente nuove. Se si pensa l'infrastruttura di una applicazione web come uno stack di servizi che partono da un livello di astrazione minimo fino a un livello più alto infatti, si vede come i servizi di JSF forniscono uno strato di astrazione più elevato rispetto a quelli forniti da Spring MVC, che già a loro volta sono più in alto nella pila rispetto a quelli dell'implementazione standard di Servlet e JSP. 28

30 Figura 22 Visione Stack dell infrastruttura di una applicazione web I concetti chiave introdotti dunque da questo nuovo livello di astrazione sono: UI component: Un JavaBean residente sul server che incapsula le funzionalità specifiche per l interazione con l utente. Più UI Component fornano una View, cioè un albero di componenti che può essere poi renderizzato come pagina web. Renderer: Un oggetto responsabile della visualizzazione o rendering di un UI Component e che si occupa della conversione dei dati inseriti dall utente nel tipo di dato accettato dal componente. Il Renderer può operare su più UI Component e ogni UI Component può avere più Renderer. Validator: È usato allorquando è necessario assicurarsi che i dati inseriti dall utente in un UI Component siano validi. Ad ogni UI Component possono esssere assegnati più oggetti Validator. Backing Bean: Rappresenta il Controller della View. E un semplice JavaBean a cui si possono associare gli UI Component di una view e i metodi che implementano la logica di gestione del Web Layer. Converter: Converte il valore di un UI Component in una stringa (e viceversa) per la visualizzazione. Ogni UI Component può essere associato ad un solo Converter. Event e Listener: Costituiscono gli elementi base del modello di programmazione a eventi, tipico dello sviluppo Swing. L utente esegue un azione su di un UI Component, quest ultimo scatena un evento e i listener registrati per quell evento lo processerano. 29

31 Message: Rappresenta un informazione che viene inviata all utente. Infatti, qualsiasi elemento dell applicazione (backing bean, validator, converter eccetera) può generare un messaggio informativo o di errore che verrò quindi visualizzato all utente. Navigation System: Rappresenta il sistema di navigazione utilizzato in JSF. Figura 23 Modello concettuale della comunicazione tra i vai elementi di JSF La figura mostra le relazioni che intercorrono tra questi elementi: gli UI Component contenuti nella View aggiornano i Backing Bean e generano eventi (Event) in base alle azioni degli utenti. I Validator verificano che i valori degli UI Component siano validi. I Converter traducono e formattano i valori contenuti negli UI Component e li rendono disponibili per la renderizzazione. I Backing Bean contengono Event Listener e Action Method attraverso cui gestiscono gli eventi generati dagli utenti. In particolare gli Action Method sono degli Event Listener il cui valore di ritorno è usato dal Navigation Sytem per determinare quale View visualizzare all utente. Infine i Renderer effettuano il rendering degli UI Component della View selezionata. In aggiunta a questi JSF offre una serie di servizi necessari per lo sviluppo di applicazioni web: Conversioni di tipo: Come è noto, un client web può inviare via HTTP al server solo delle stringhe, per cui è necessario convertire queste stringhe in valori corrispondenti ai tipi necessari per il livello Model. JSF fornisce perciò gli strumenti per automatizzare questa conversione. 30

32 Validazione: La validazione dei dati ricevuti dal client è uno dei compiti più comuni e ripetitivi nello sviluppo dell'interfaccia web. JSF fornisce una serie di validatori standard per le esigenze tipiche, che sollevano lo sviluppatore dal realizzare questa attività e mette a disposizione un modello di sviluppo che consente di realizzare molto semplicemente validatori custom. Binding tra campi di interfaccia e attributi di JavaBean: I dati immessi lato client nell'interfaccia web di una applicazione devono poi essere contenuti in oggetti lato server che modellano le entità sulle quali devono andare ad agire le elaborazioni del livello di Model. I dati di interfaccia, dopo essere stati convertiti in valori di tipo opportuno ed essere stati sottoposti a validazione, devono andare a popolare opportuni attributi di JavaBean. JSF fornisce gli strumenti per effettuare questa operazione di "binding" in modo automatico e dichiarativo. Gestione del Flusso di Navigazione: Una parte molto importante di una applicazione web è la gestione del flusso di navigazione tra le pagine web che la costituiscono. JSF, analogamente a quanto fatto ad esempio in Spring MVC, consente di definire in maniera semplice ed esternamente al codice la logica di navigazione della propria applicazione. Rendering dei componenti: Un aspetto molto importante in JSF è la separazione tra il comportamento di un elemento di interfaccia e la sua rappresentazione grafica. L'elemento di interfaccia viene modellato da una classe che ne definisce il comportamento. L'aspetto grafico, ovvero la sua "renderizzazione", è a carico di una classe completamente distinta, un Renderer appunto. Ciò significa che una stessa interfaccia può essere "renderizzata" in formati diversi senza modificarne il comportamento funzionale. Gestione degli errori: JSF ha i meccanismi necessari per la gestione degli errori e per la segnalazione degli stessi al livello di interfaccia. Internazionalizzazione: JSF supporta la gestione dell'internazionalizzazione di una applicazione web con strumenti molto simili a quelli già in uso in altri framework. In termini di sviluppo JavaServer Faces mette a disposizione dello sviluppatore un ampio insieme di classi e API che permettono di definire i componenti dell interfaccia utente e gestirne il mantenimento dello stato, gestire gli eventi che vengono generati lato client con oggetti e codice lato server, specificare la navigazione fra le pagine all interno della web application e realizzare componenti personalizzati che estendono e potenziano le funzionalità delle classi basi del framework. Queste classi sono raggruppate in modelli, in relazione a specifici aspetti realizzativi di una applicazione Web. Execution Model; UI Component Model; Component Rendering Model; Event and Listner Model; Validation Model; Navigation Model; Backing Bean Management Model 31

33 EXECUTION MODEL Questo modello fa riferimento a tutto ciò che riguarda l esecuzione dell applicazione, quindi in particolar modo definisce le classi che costituiscono il Controller del pattern MVC. Trattandosi di un framework per lo sviluppo di applicazioni Web, la classe principale è costituita dalla servlet FacesServlet, la quale allo stesso modo della DispatcherServlet per Spring MVC, agisce da Front Controller per tutte le richieste entranti di tipo JSF. Ovviamente va configurata nel file web.xml dell applicazione: <servlet> <servlet-name>facesservlet</servlet-name> <servlet-class>javax.faces.webapp.facesservlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>facesservlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> La classe Application è di tipo singleton ed il suo scopo è quello di descrivere interamente la Web application ed in particolare i parametri di quest ultima che sono specificati nel file di configurazione faces-config.xml. In pratica, all avvio dell applicazione, viene eseguita la lettura del file di configurazione facesconfig.xml e tutte le informazioni in esso contenute vengono caricate all interno delle proprietà corrispondenti della classe Application, una classe che implementa il singleton pattern. In questo modo, durante l esecuzione dell applicazione è possibile accedere a queste informazioni ed eventualmente modificarle. Le classi principali che sono legate ad essa e che vengono specificate nel file faces-config.xml sono le seguenti: ActionListener: permette la gestione degli action events; NavigationHandler: gestisce la navigazione fra le pagine sulla base delle navigation-rules e degli outcome; ViewHandler: ha il compito di gestire le fasi di ricostruzione della vista di una pagina da uno stato precedente e di visualizzare una risposta, anche sulla base di dispositivi client di accesso differenti; StateManager: efettua il salvataggio ed il ripristino dello stato dell applicazione fra una richiesta ed un altra; MessageBundle: identifica il file.properties nel quale ci sono tutti i messaggi da visualizzare nell applicazione, sulla base di un certo Locale, permettendo l internazionalizzazione; Lifecycle, PhaseListener: permette la gestione del ciclo di vita di ciascuna richiesta; 32

34 VariableResolver: individua gli oggetti referenziati nelle pagine JSF attraverso l Expression Language. Se tali classi non vengono specificate nel file faces-config.xml, verranno utilizzate quelle di default. In caso contrario, lo sviluppatore ha la possibilità di personalizzare il framework, estendendo queste classi e specificandole nel file di configurazione. Ad esempio Spring dispone della classe org.springframework.web.jsf.delegatingvariableresolver attraverso cui rende disponibili in JSF gli oggetti definiti all interno del suo ApplicationContext, rendendo l integrazione tra i due framework estremamente semplice. Ovviamente lo stesso tipo di operazione può essere eseguita anche per le altre classi. Altre informazioni associate alla classe Application e quindi contenute nel file faces-config.xml, specificano il Renderer Kit di default per la visualizzazione delle pagine e l internazionalizzazione, definendo il Locale di default e tutti quelli supportati. Infine, essa è legata a tutte quelle classi che definiscono gli elementi costitutivi dell applicazione, in particolare: UIComponent: definisce ciascun componente dell interfaccia utente insieme a tutte le sue classi derivate; Validator: che implementa un validatore per i dati di input dell utente; Converter: che permette di eseguire la conversione dei dati; MethodBinding, ValueBinding: associano i componenti ed i loro valori, ai metodi o alle proprietà dei backing beans; La classe FacesContext definisce il contesto dell applicazione, cioè mantiene tutte le informazioni che caratterizzano una richiesta e ciò che riguarda la relativa risposta da generare. Essa può essere modificata in ciascuna fase del ciclo di vita di una richiesta, per garantire che il contesto sia sempre aggiornato. È ovviamente legata alla classe Application, facendo uso del metodo getapplication(). Oltre alle informazioni che riguardano l applicazione, essa è legata anche a tutte quelle classi che si occupano in particolare della fase di rendering e quindi della produzione della risposta per una specifica richiesta. Nella fattispecie tali classi sono: 33

35 UIViewRoot: rappresenta il nodo radice della view che definisce l albero dei componenti (il component-tree) di una certa pagina; RenderKit: è una collezione di istanze della classe Renderer che si occupano di visualizzare i componenti dell interfaccia utente, secondo una certa grafica, in relazione al dispositivo client che viene utilizzato per accedere all applicazione, il linguaggio di markup ed il Locale corrente; ResponseWriter: definisce uno stream attraverso il quale è possibile produrre, direttamente nella pagina di risposta, il codice specifico per la tecnologia di rendering utilizzata (markup HTML, XML eccetera); FacesMessage: è la classe che contiene un singolo messaggio associato ad un componente specifico e che va visualizzato in ogni pagina. Il messaggio in questione può essere ad esempio un messaggio di errore dovuto ad una validazione o conversione errata. Infine, attraverso il metodo getexternalcontext(), è possibile ricavare l istanza della classe ExternalContext, la quale definisce il contesto esterno, ossia tutto ciò che riguarda l ambiente in cui viene eseguita l applicazione. Da questa classe è possibile accedere direttamente a tutte le variabili il cui scope (ambito di visibilità) sia quello di tipo session, request o application e quindi ai parametri ed agli attributi di una richiesta. In pratica permette l accesso ai servizi di basso livello offerti dalle Servlet API. USER INTERFACE COMPONENT MODEL Il framework JSF mette a disposizione una serie di classi relative ai componenti della UI e le corrispondenti interfacce che ne descrivono il comportamento e le funzionalità, oltre al mantenimento dello stato, i riferimenti agli oggetti (backing beans) e la gestione degli eventi. Tali classi possono essere estese, permettendo allo sviluppatore di potenziare i componenti standard, aggiungendovi nuove funzionalità. La classe di base da cui derivano tutte le classi per i componenti standard è UIComponentBase, la quale definisce lo stato ed il comportamento di default di un generico componente ed a sua volta estende la classe UIComponent. Di seguito sono riportate tutte le classi che descrivono i componenti previsti in JSF : UIColumn: generica colonna del componente UIData; UICommand: controllo che può intercettare un action event (es. click del mouse) quando viene attivato; UIData: permette di gestire il binding con una collection di dati per la loro visualizzazione. Tale collection può essere eventualmente definita con un DataModel; UIForm: permette di raggruppare più controlli di una pagina e definire, appunto, un form di invio delle informazioni contenute. E paragonabile al tag <form> dell HTML; 34

36 UIGraphic: immagine da visualizzare in una pagina; UIInput: permette di acquisire un informazione di input dall utente; UIMessage: permette la visualizzazione di un messaggio anche sulla base della localizzazione geografica dell utente (internazionalizzazione); UIMessages: come il precedente, ma permette di visualizzare un gruppo di più messaggi; UIOutput: visualizza un informazione di output in una pagina; UIPanel: permette di raggruppare più componenti secondo un certo layout; UIParameter: usato insieme ad altri componenti per specificare una serie di parametri da passare ad essi; UISelectBoolean: controllo che permette all utente di selezionare un valore booleano; UISelectItem: definisce una singola item di una collection di items; UISelectItems: definisce un insieme di items; UISelectMany: permette all utente di selezionare una o più items da una collection di items; UISelectOne: permette all utente di selezionare una sola item nell ambito di una collection di items a disposizione; UIViewRoot: rappresenta il nodo radice dell albero dei componenti che, secondo una gerarchia, costituiscono una pagina; Le classi suddette, oltre ad estendere la classe base UIComponentBase, implementano anche una serie di interfacce che ne definiscono il comportamento : ActionSource: indica che un componente può intercettare un evento ActionEvent; ValueHolder: indica che un componente può immagazzinare un valore (local value) così come ha la possibilità di accedere al dato corrispondente all interno del Model; EditableValueHolder: estende ValueHolder aggiungendo ulteriori funzionalità ai componenti editabili, tra cui la validazione e l intercettazione di eventi del tipo ValueChange NamingContainer: fa in modo che ciascun componente abbia un identificativo univoco; StateHolder: segnala che un componente ha uno stato che va salvato ad ogni richiesta; In generale, la classe UICommand implementa ActionSource e StateHolder. La classe UIOutput e tutte le classi che la estendono, implementano StateHolder e ValueHolder. La classe UIInput e tutte le classi che la estendono, implementano StateHolder, ValueHolder ed EditableValueHolder. 35

37 Per la realizzazione di un componente personalizzato (Custom Component), è necessario estendere la classe UIComponentBase oppure una delle sue classi derivate in modo da sfruttare le potenzialità di queste ultime ed aggiungerne delle altre. Infine, per poter introdurre un componente all interno di una pagina, è necessario associare ad esso un tag realizzato mediante una classe nota come Tag Handler. Tale classe è, in generale, un estensione della classe UIComponentTag e definisce gli attributi del tag stesso. COMPONENT RENDERING MODEL L architettura dei componenti, messi a disposizione dalla tecnologia JSF prevede che le funzionalità degli stessi, così come lo stato ed il comportamento, vengano definite con le classi e le interfacce precedentemente viste, mentre la visualizzazione (rendering), venga realizzata mediante altre classi specifiche note come renderer. Questa separazione comporta i seguenti vantaggi : coloro che scrivono i componenti (Component writers) possono definire una sola volta il comportamento di un componente, mediate un unica classe, ma possono permetterne diverse visualizzazioni, mediante molteplici renderers, in relazione ai tanti dispositivi client che possono accedere alla Web application; coloro che realizzano le pagine (Page authors) e coloro che sviluppano l applicazione (Application developers) possono scegliere la grafica di un certo componente, utilizzando un tag che individui la giusta combinazione fra la classe del componente stesso ed il renderer appropriato; Un Renderer Kit definisce una mappatura fra le classi dei componenti ed i tag che permettono di inserire questi ultimi nella UI, anche in base al dispositivo client di accesso alla Web application. Le varie implementazioni di JSF, forniscono un Renderer Kit standard per i client HTML, il quale permette di inserire i componenti della UI all interno di una pagina JSP attraverso opportuni tag. La classe Renderer permette di definire un renderer associato ad un componente. Essa converte la rappresentazione interna di un componente in una rappresentazione grafica, attraverso uno stream di output sulla pagina. Mediante la realizzazione di una o più classi che estendono la classe Renderer, si possono realizzare diversi renderers che cambiano la modalità di visualizzazione dello stesso componente in base alle necessità o al dispositivo client di accesso. Ad esempio, un componente della classe UISelectOne ha tre renderers associati: il primo che visualizza il componete come un insieme di radio buttons, il secondo come una combo box e l ultimo come una list box. Il comportamento 36

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

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

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

EXPLOit Content Management Data Base per documenti SGML/XML

EXPLOit Content Management Data Base per documenti SGML/XML EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per

Dettagli

B.P.S. Business Process Server ALLEGATO C10

B.P.S. Business Process Server ALLEGATO C10 B.P.S. Business Process Server ALLEGATO C10 REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA REGIONALE UFFICIO SISTEMA INFORMATIVO REGIONALE E STATISTICA Via V. Verrastro, n. 4 85100 Potenza tel

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

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

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

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

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

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale La soluzione modulare di gestione del Sistema Qualità Aziendale I MODULI Q.A.T. - Gestione clienti / fornitori - Gestione strumenti di misura - Gestione verifiche ispettive - Gestione documentazione del

Dettagli

1. BASI DI DATI: GENERALITÀ

1. BASI DI DATI: GENERALITÀ 1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Programmazione Java Avanzata Spring - JDBC

Programmazione Java Avanzata Spring - JDBC Programmazione Java Avanzata Spring - JDBC Ing. Gianluca Caminiti Riferimenti Spring http://www.springsource.org/ (scaricate il reference) Beginning Spring 2 - From Novice to Professional. APress. 2008

Dettagli

Capitolo 4 Pianificazione e Sviluppo di Web Part

Capitolo 4 Pianificazione e Sviluppo di Web Part Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,

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

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio Documento Tecnico Light CRM Descrizione delle funzionalità del servizio Prosa S.r.l. - www.prosa.com Versione documento: 1, del 11 Luglio 2006. Redatto da: Michela Michielan, michielan@prosa.com Revisionato

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

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

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

SUAP. Per gli operatori SUAP/amministratori. Per il richiedente

SUAP. Per gli operatori SUAP/amministratori. Per il richiedente Procedura guidata per l inserimento della domanda Consultazione diretta, da parte dell utente, dello stato delle sue richieste Ricezione PEC, protocollazione automatica in entrata e avviamento del procedimento

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

PROCEDURA APERTA PER L AFFIDAMENTO DELLA REALIZZAZIONE DI UN APP PER LA PRENOTAZIONE DELLE PRESTAZIONI SANITARIE E SERVIZI CONNESSI.

PROCEDURA APERTA PER L AFFIDAMENTO DELLA REALIZZAZIONE DI UN APP PER LA PRENOTAZIONE DELLE PRESTAZIONI SANITARIE E SERVIZI CONNESSI. Allegato 1) PROCEDURA APERTA PER L AFFIDAMENTO DELLA REALIZZAZIONE DI UN APP PER LA PRENOTAZIONE DELLE PRESTAZIONI SANITARIE E SERVIZI CONNESSI Allegato tecnico Introduzione Si richiede di realizzare una

Dettagli

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario

Dettagli

Sistemi informativi secondo prospettive combinate

Sistemi informativi secondo prospettive combinate Sistemi informativi secondo prospettive combinate direz acquisti direz produz. direz vendite processo acquisti produzione vendite INTEGRAZIONE TRA PROSPETTIVE Informazioni e attività sono condivise da

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Mon Ami 3000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività

Mon Ami 3000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività Prerequisiti Mon Ami 000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività L opzione Centri di costo è disponibile per le versioni Contabilità o Azienda Pro. Introduzione

Dettagli

Gestione Risorse Umane Web

Gestione Risorse Umane Web La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Progettazione della componente applicativa

Progettazione della componente applicativa 7 Progettazione della componente applicativa In questo capitolo illustreremo la progettazione della componente applicativa di un sistema informativo. La metodologia da noi utilizzata sarà basata sull utilizzo

Dettagli

Finalità della soluzione... 3. Schema generale e modalità d integrazione... 4. Gestione centralizzata in TeamPortal... 6

Finalità della soluzione... 3. Schema generale e modalità d integrazione... 4. Gestione centralizzata in TeamPortal... 6 Finalità della soluzione... 3 Schema generale e modalità d integrazione... 4 Gestione centralizzata in TeamPortal... 6 Dati gestiti dall Anagrafica Unica... 8 Gestione anagrafica... 9 Storicizzazione...

Dettagli

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Gestione Rifiuti Funzioni di Esportazione e Importazione Airone Funzioni di Esportazione Importazione 1 Indice AIRONE GESTIONE RIFIUTI... 1 FUNZIONI DI ESPORTAZIONE E IMPORTAZIONE... 1 INDICE...

Dettagli

2 Gli elementi del sistema di Gestione dei Flussi di Utenza

2 Gli elementi del sistema di Gestione dei Flussi di Utenza SISTEMA INFORMATIVO page 4 2 Gli elementi del sistema di Gestione dei Flussi di Utenza Il sistema è composto da vari elementi, software e hardware, quali la Gestione delle Code di attesa, la Gestione di

Dettagli

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti 20120300 INDICE 1. Introduzione... 3 2. Consultazione... 4 2.1 Consultazione Server Fidati... 4 2.2 Consultazione Servizi Client... 5 2.3 Consultazione Stato richieste... 5 3. Amministrazione... 6 3.1

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

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

SPRING SQ COMUNICAZIONE OPERAZIONI IVA NON INFERIORI A 3000 EURO PER L ANNO 2011

SPRING SQ COMUNICAZIONE OPERAZIONI IVA NON INFERIORI A 3000 EURO PER L ANNO 2011 Versione aggiornata il 02 Aprile 2012 SPRING SQ COMUNICAZIONE OPERAZIONI IVA NON INFERIORI A 3000 EURO PER L ANNO 2011 PREREQUISITI *** ACCERTARSI CON L ASSISTENZA DI AVERE INSTALLATO LE ULTIME IMPLEMENTAZIONE/CORREZIONI

Dettagli

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI Documenti su Internet LINGUAGGI DI MARKUP Internet permette (tra l altro) di accedere a documenti remoti In generale, i documenti acceduti via Internet sono multimediali, cioè che possono essere riprodotti

Dettagli

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda Fa quadrato attorno alla tua azienda Soluzioni software per L archiviazione elettronica dei documenti Perché scegliere Q Archiviazione Elettronica dei Documenti? Tale applicativo si pone come obbiettivo

Dettagli

MODULO PER LA GESTIONE DEI RESI

MODULO PER LA GESTIONE DEI RESI MODULO PER LA GESTIONE DEI RESI Clienti, prodotti, categorie merceologiche e stabilimenti di produzione. Difetti, tipologia difetti, test ed esiti finali di verifica. Raggruppamento dei test loro in schede

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

Strumenti di modellazione. Gabriella Trucco

Strumenti di modellazione. Gabriella Trucco Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell

Dettagli

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3

Dettagli

flusso delle informazioni... 2 password... 3 password/2... 3 inserimento di una nuova richiesta... 4 le condizioni di vendita... 6

flusso delle informazioni... 2 password... 3 password/2... 3 inserimento di una nuova richiesta... 4 le condizioni di vendita... 6 istruzioni per l inserimento di una richiesta on line di prodotti speciali flusso delle informazioni... 2 password... 3 password/2... 3 inserimento di una nuova richiesta... 4 le condizioni di vendita...

Dettagli

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework. tesi di laurea Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework. Anno Accademico 2008/2009 relatore Ch.mo prof. Porfirio

Dettagli

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse Politecnico di Milano View integration 1 Integrazione di dati di sorgenti diverse Al giorno d oggi d la mole di informazioni che viene gestita in molti contesti applicativi è enorme. In alcuni casi le

Dettagli

InitZero s.r.l. Via P. Calamandrei, 24-52100 Arezzo email: info@initzero.it

InitZero s.r.l. Via P. Calamandrei, 24-52100 Arezzo email: info@initzero.it izticket Il programma izticket permette la gestione delle chiamate di intervento tecnico. E un applicazione web, basata su un potente application server java, testata con i più diffusi browser (quali Firefox,

Dettagli

L o. Walter Ambu http://www.japsportal.org. japs: una soluzione agile (www.japsportal.org)

L o. Walter Ambu http://www.japsportal.org. japs: una soluzione agile (www.japsportal.org) L o JAPS: una soluzione Agile Walter Ambu http://www.japsportal.org 1 Lo sviluppo del software Mercato fortemente competitivo ed in continua evoluzione (velocità di Internet) Clienti sempre più esigenti

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

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

Nota Tecnica UBIQUITY 5 TN0019. Il documento descrive le novità introdotte con la versione 5 della piattaforma software ASEM Ubiquity.

Nota Tecnica UBIQUITY 5 TN0019. Il documento descrive le novità introdotte con la versione 5 della piattaforma software ASEM Ubiquity. UBIQUITY 5 Introduzione Il documento descrive le novità introdotte con la versione 5 della piattaforma software ASEM Ubiquity. Versione Descrizione Data 1 Prima emissione 20/01/2015 Disclaimer Le informazioni

Dettagli

Esercizi di JavaScript

Esercizi di JavaScript Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio

Dettagli

Programmare in ambiente Java Enterprise: l offerta formativa di Infodue

Programmare in ambiente Java Enterprise: l offerta formativa di Infodue Tecnologia e professionalità al servizio del business, dal 1986 Programmare in ambiente Java Enterprise: l offerta Copyright 2006 Infodue S.r.l. La programmazione nell era era del Web Computing L evoluzione

Dettagli

J2EE (o JEE): Framework Java per lo sviluppo di applicazioni WEB Enterprise, che vivono in rete e che siano accessibili attraverso browser.

J2EE (o JEE): Framework Java per lo sviluppo di applicazioni WEB Enterprise, che vivono in rete e che siano accessibili attraverso browser. Il Pattern MVC J2EE (o JEE): Framework Java per lo sviluppo di applicazioni WEB Enterprise, che vivono in rete e che siano accessibili attraverso browser. Il famework Sun J2EE Component, Container e Connector:

Dettagli

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

SOMMARIO... 3 INTRODUZIONE...

SOMMARIO... 3 INTRODUZIONE... Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...

Dettagli

manuale utente per Viabizzuno online

manuale utente per Viabizzuno online manuale utente per Viabizzuno online nuova piattaforma di e-business Viabizzuno il primo approccio con il nuovo sistema è la pagina di autenticazione. già qui appare la prima novità, ovvero il recupero

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

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

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

Dettagli

FPf per Windows 3.1. Guida all uso

FPf per Windows 3.1. Guida all uso FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete

Dettagli

Hub-PA Versione 1.0.6 Manuale utente

Hub-PA Versione 1.0.6 Manuale utente Hub-PA Versione 1.0.6 Manuale utente (Giugno 2014) Hub-PA è la porta d ingresso al servizio di fatturazione elettronica verso la Pubblica Amministrazione (PA) a disposizione di ogni fornitore. Questo manuale

Dettagli

Al giorno d oggi, i sistemi per la gestione di database

Al giorno d oggi, i sistemi per la gestione di database Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

PowerPoint 2007 Le funzioni

PowerPoint 2007 Le funzioni PowerPoint 2007 Le funzioni Introduzione Cos è un ipertesto L' ipertesto è un testo organizzato in link, o collegamenti ad altre parti del testo e/o altri testi, in modo da consentire all utente di scegliere

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

Introduzione al mondo della persistenza. Dott. Doria Mauro doriamauro@gmail.com

Introduzione al mondo della persistenza. Dott. Doria Mauro doriamauro@gmail.com Hibernate Introduzione al mondo della persistenza Dott. Doria Mauro doriamauro@gmail.com La questione della persistenza Il modo dei database è complesso e le tecniche e le tecnologie sono molte. Per anni

Dettagli

Il web server Apache Lezione n. 3. Introduzione

Il web server Apache Lezione n. 3. Introduzione Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar

Dettagli

Overview SAP Workflow. ECORA Srl www.eco-ra.it - Massimo Rastaldi m.rastaldi@eco-ra.it Cell +393473165504

Overview SAP Workflow. ECORA Srl www.eco-ra.it - Massimo Rastaldi m.rastaldi@eco-ra.it Cell +393473165504 Overview SAP Workflow Agenda Agenda: 1. Breve introduzione e soprattutto perché attivare SAP WorkFlow 2. Architettura SAP Workflow 3. Modello base per la creazione dell anagrafica materiale con SAP WorkFlow

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

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazione Lezione 8 Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato

Dettagli

Tecnologia. www.mbm.it

Tecnologia. www.mbm.it Il portale SCM permette di comunicare con il mondo esterno all azienda, in particolare con fornitori e lavoranti esterni, fornendo strumenti e metodologie per un trasferimento veloce e sicuro delle informazioni

Dettagli

Addition X DataNet S.r.l. www.xdatanet.com www.xdatanet.com

Addition X DataNet S.r.l. www.xdatanet.com www.xdatanet.com Addition è un applicativo Web che sfrutta le potenzialità offerte da IBM Lotus Domino per gestire documenti e processi aziendali in modo collaborativo, integrato e sicuro. www.xdatanet.com Personalizzazione,

Dettagli

Presentazione di Cedac Software

Presentazione di Cedac Software Agenda Presentazione di Cedac Software SOA ed ESB Analisi di un caso studio Esempi Q&A Presentazione di Cedac Software 1 2 Presentazione di Cedac Software S.r.l. Divisione Software Azienda nata nel 1994

Dettagli

CREAZIONE DI UN AZIENDA

CREAZIONE DI UN AZIENDA CREAZIONE DI UN AZIENDA La creazione di un azienda in Businesspass avviene tramite la funzione Aziende Apertura azienda ; dalla medesima sarà possibile richiamare le aziende precedentemente create per

Dettagli

penetration test (ipotesi di sviluppo)

penetration test (ipotesi di sviluppo) penetration test (ipotesi di sviluppo) 1 Oggetto... 3 2 Premesse... 3 3 Attività svolte durante l analisi... 3 3.1 Ricerca delle vulnerabilità nei sistemi... 4 3.2 Ricerca delle vulnerabilità nelle applicazioni

Dettagli

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4) FAQ INVIO DOMANDE CIGO CON FLUSSO XML Cosa serve per inviare una domanda CIGO con il flusso XML? (pag. 2) Come si prepara una domanda in formato XML? (pag. 3) Che differenza c è tra una richiesta XML ed

Dettagli

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione Programma del Corso Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Normalizzazione (I prova scritta) (II prova scritta) Interazione fra linguaggi di programmazione e basi di dati Cenni

Dettagli

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

Università degli Studi Roma Tre Dipartimento di Informatica ed automazione. Facoltà di Ingegneria Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea AUTENTICAZIONE PER APPLICAZIONI WEB Relatore

Dettagli

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata. Sommario A cosa serve InfoWEB?... 3 Quali informazioni posso comunicare o ricevere?... 3 Cosa significa visualizzare le informazioni in maniera differenziata in base al livello dell utente?... 4 Cosa significa

Dettagli

FIRESHOP.NET. Gestione completa degli ordini e degli impegni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione completa degli ordini e degli impegni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione completa degli ordini e degli impegni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 3 Gli ordini a fornitore... 5 Gli impegni dei clienti... 7 Evadere gli ordini

Dettagli

GSC 100% Software per la gestione dei corsi di formazione Descrizione prodotto

GSC 100% Software per la gestione dei corsi di formazione Descrizione prodotto GSC 100% Software per la gestione dei corsi di formazione Descrizione prodotto Contenuto 1. Scopo....p. 2 1.1 Moduli....p. 3 2. Esigenze del cliente p. 4 3. Caratteristiche della soluzione p. 4 4. Descrizione

Dettagli

Informazioni demografiche e socio-economiche sugli Enti Locali

Informazioni demografiche e socio-economiche sugli Enti Locali Informazioni demografiche e socio-economiche sugli Enti Locali Utilizzo e funzionalità: L applicativo cerca di essere il più flessibile ed intuitivo possibile. Spetta all utente, in base alle necessità,

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

La Metodologia adottata nel Corso

La Metodologia adottata nel Corso La Metodologia adottata nel Corso 1 Mission Statement + Glossario + Lista Funzionalià 3 Descrizione 6 Funzionalità 2 Schema 4 Schema 5 concettuale Logico EA Relazionale Codice Transazioni In PL/SQL Schema

Dettagli

OSSIF WEB. Manuale query builder

OSSIF WEB. Manuale query builder OSSIF WEB Manuale query builder - Maggio 2010 1) Sommario 1) SOMMARIO... 2 INTRODUZIONE... 3 Scopo del documento... 3 Struttura del documento... 3 Descrizione dell interfaccia grafica... 3 SELEZIONE DI

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

Ata_NiAg02. Modulo Gestione Agenti

Ata_NiAg02. Modulo Gestione Agenti Ata_NiAg02 Modulo Gestione Agenti Il software NiAg02 consente alle aziende che utilizzano il software gestionale ATA di gestire in maniera totalmente automatizzata l acquisizione ordini e/o clienti dalla

Dettagli

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA Fornitore: Publisys Prodotto: Intranet Provincia di Potenza http://www.provincia.potenza.it/intranet Indice 1. Introduzione... 3 2. I servizi dell Intranet...

Dettagli

Manuale Utente Amministrazione Trasparente GA

Manuale Utente Amministrazione Trasparente GA Manuale Utente GA IDENTIFICATIVO DOCUMENTO MU_AMMINISTRAZIONETRASPARENTE-GA_1.0 Versione 1.0 Data edizione 03.05.2013 1 Albo Pretorio On Line TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione

Dettagli

NAVIGAORA HOTSPOT. Manuale utente per la configurazione

NAVIGAORA HOTSPOT. Manuale utente per la configurazione NAVIGAORA HOTSPOT Manuale utente per la configurazione NAVIGAORA Hotspot è l innovativo servizio che offre ai suoi clienti accesso ad Internet gratuito, in modo semplice e veloce, grazie al collegamento

Dettagli

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore ARPA Fonte Dati Regione Toscana 1 Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.1 Data emissione 09/10/13 Stato FINAL 2 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 1.1 09/10/2013

Dettagli

Corso di Basi di Dati e Conoscenza

Corso di Basi di Dati e Conoscenza Corso di Basi di Dati e Conoscenza Gestione dei Dati e della Conoscenza Primo Emicorso - Basi di Dati Roberto Basili a.a. 2012/13 1 Obbiettivi Formativi Scenario Le grandi quantità di dati accumulate nelle

Dettagli

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo Creazione di moduli Creazione di moduli Che cos'è un modulo? Un elenco di domande accompagnato da aree in cui è possibile scrivere le risposte, selezionare opzioni. Il modulo di un sito Web viene utilizzato

Dettagli