UNIVERSITÀ DEGLI STUDI DI GENOVA FACOLTÀ DI INGEGNERIA

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNIVERSITÀ DEGLI STUDI DI GENOVA FACOLTÀ DI INGEGNERIA"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI GENOVA FACOLTÀ DI INGEGNERIA Corso di laurea specialistica in Ingegneria Elettronica TESI DI LAUREA Studio e implementazione di un cruscotto aziendale con identificazione degli appropriati KPI utilizzando tecniche di Business Intelligence Relatore accademico: Chiar.mo Prof. Ing. Rodolfo Zunino Candidato: Alessio Bonfanti Relatore aziendale: Dott. Alessio Mosto Anno accademico

2 Genova, 25 Settembre 2009 Corso di laurea specialistica in Ingegneria Elettronica II

3 Study and implementation of an enterprise dashboard with identification of appropriate KPIs, using techniques of Business Intelligence Abstract This thesis was conducted at the site of T Bridge s.p.a., a Genoese company that works in the sector of management consulting and ICT; it is part of a project commissioned by Cassa Edile of Milan for the implementation of a managerial dashboard. In this thesis have developed a software solution for analyzing the data with the aim of providing targeted information for decision makers, executive and control. In particular, the topics cover the entire process of project development from birth until the release of a prototype. The work is essentially divided in two phases: The first phase consists in defining the specifications of the project through various meetings with managers of Cassa Edile. The second phase is dedicated to software development of managerial dashboard. The software modules developed are two: the first is a multidimensional cube which deals with the extraction of useful data to the dashboard from the information systems of the client; the second consists of an Silverlight application that displays graphically the data drawn from the cube. The prototype has then been subjected to a testing phase at the customer who has ruled out the presence of inconsistencies in the specifications and / or behavior of the module does not conform to what is expected. Having passed the testing of the prototype was presented to the direction of Cassa Edile which it approved the project and given the green light to develop the final application. Corso di laurea specialistica in Ingegneria Elettronica III

4 Alla Commissione di Laurea e di Diploma Alla Commissione Tirocini e Tesi Sottopongo la tesi redatta dallo studente Alessio Bonfanti dal titolo Studio e implementazione di un cruscotto aziendale con identificazione degli opportuni KPI usando tecniche di Business Intelligence. Ho esaminato, nella forma e nel contenuto, la versione finale di questo elaborato scritto, e propongo che la tesi sia valutata positivamente assegnando i corrispondenti crediti formativi. Il Relatore Accademico Prof. Rodolfo Zunino Corso di laurea specialistica in Ingegneria Elettronica IV

5 Ringraziamenti Innanzitutto desidero ringraziare il Prof. Rodolfo Zunino per la Sua disponibilità e per il supporto datomi al fine di poter svolgere questa tesi. Inoltre vorrei esprimere la mia gratitudine alla società T Bridge s.p.a. e all ente Cassa Edile di Milano per avermi offerto l opportunità di conoscere le dinamiche che regolano il mondo del lavoro; in particolare vorrei ringraziare Alessio, Valla, Giuggi, Roger, Matteo, Stefano e Dibba per avermi insegnato l importanza della focaccia in ufficio a metà mattinata oltre ad aspetti tecnici di particolare rilevanza. Grazie a Guido, Luca, Michele, Pietro e Andrea che sono grandi Amici, con voi ho iniziato questa avventura e con voi ne festeggerò smodatamente la fine! Grazie ai miei compagni di corso per le risate che ci siamo fatti in questi cinque lunghi, interminabili anni fatti di lezioni, laboratori ed esami; in particolare grazie a Lello (che si definisce il miglior studente del corso, anche se questo è tutto da vedere!), a Willy che lo sa, a Marco, alla Laura per gli appunti, ad Andrea compagno dell indimenticabile gruppo di laboratorio 18 Scarso e a Dento per le infinite sfide a carte durante il ritorno in treno, senza la vostra amicizia probabilmente non avrei raggiunto questo traguardo così serenamente. Grazie a Giorgia che sei il mio amore grande ed il mio grande amore, mi sei stata vicino in questi anni anche nei momenti più difficili e mi hai dato la forza di continuare sulla mia strada; a te che sei il mio amore grande ed il mio grande amore grazie davvero. Grazie a tutti voi che non ho ricordato ma che comunque mi avete aiutato in questi anni, siete davvero tanti e in queste poche righe è impossibile ricordare tutti. Vorrei infine dedicare questo lavoro alla mia famiglia: alla mamma che è sempre la migliore, a mio nonno e mia nonna che sono sempre nei miei pensieri, a Pier, a Gianni che ora non c è più ma sarebbe stato fiero di me, a Ornella e ai cugini Elisabetta e Andrea; questo lavoro è dedicato a tutti voi perché è grazie a voi se sono diventato quello che sono. Grazie,,Alessio Corso di laurea specialistica in Ingegneria Elettronica V

6 Prefazione Questa tesi è stata svolta presso la sede di T Bridge s.p.a., un azienda genovese operante nel settore delle consulenze direzionali e ICT; essa si inserisce nell ambito di un progetto commissionato a T Bridge da parte dell ente Cassa Edile di Milano per la realizzazione di un cruscotto direzionale. In questa tesi è stata sviluppata una soluzione software per l analisi dei dati aziendali con l obiettivo di fornire informazioni mirate ai responsabili dei processi decisionali, esecutivi e di controllo. In particolare gli argomenti trattati ricoprono l intero processo di evoluzione del progetto dalla nascita fino al rilascio di un prototipo. Il lavoro svolto si articola essenzialmente in due fasi: La prima fase consiste nella definizione delle specifiche del progetto attraverso diverse riunioni con responsabili di Cassa Edile. La seconda fase è invece dedicata allo sviluppo software del cruscotto direzionale. I moduli software sviluppati sono due: il primo è un cosiddetto cubo multidimensionale il quale si occupa dell estrazione dei dati utili al cruscotto dai sistemi informativi del cliente; il secondo consiste in un applicazione Silverlight e ha la funzione di visualizzare graficamente i dati estratti dal cubo. Il prototipo ottenuto è stato sottoposto a una fase di testing presso il cliente che ha permesso di escludere la presenza di inconsistenze nelle specifiche e/o comportamenti del modulo non conformi a quanto atteso. Superata la fase di testing il prototipo è stato presentato alla direzione di Cassa Edile la quale ha approvato il progetto e dato il via libera allo sviluppo dell applicazione definitiva. Corso di laurea specialistica in Ingegneria Elettronica VI

7 Indice Indice.. VII Introduzione.. 1 Organizzazione della tesi... 4 Capitolo 1 - Metodi e Strumenti per la Business Intelligence Introduzione alla Business Intelligence I modelli della Business Intelligence OnLine Analytical Processing Microsoft SQL Server Analysis Services La sorgente dati Le dimensioni Le Misure Il Cubo Indicatori di prestazioni chiave (KPI) Interrogare i cubi 21 Capitolo 2 SOA e Web Services La Service Oriented Architecture Caratteristiche di una SOA Come funziona una SOA Web Services Comunicazione fra due Web Service Web Services e Architettura non SOA Web Services con Architettura SOA Windows Communication Foundation Esempio di applicazione Interoperabilità altre tecnologie Corso di laurea specialistica in Ingegneria Elettronica VII

8 2.3 Progettazione e realizzazione del servizio. 46 Capitolo 3 Nascita ed evoluzione del progetto Analisi Globale Analisi integrativa e di dettaglio Design Sviluppo, test, collaudo e rilascio.. 58 Capitolo 4 Realizzazione del sistema Realizzazione del cubo Prestazioni Recupero crediti Validazione del cubo Realizzazione del Cruscotto Silverlight e XAML I moduli del prototipo Il risultato finale 75 Capitolo 5 QlikView Caratteristiche di QlikView Esempio di utilizzo 83 Capitolo 6 Conclusioni Bibliografia 92 Corso di laurea specialistica in Ingegneria Elettronica VIII

9 Introduzione Il monitoraggio e il controllo in azienda è sempre più legato alla conoscenza e alla capacità d interventi sia economico-finanziario sia operativo nei singoli processi interni. Intervenire rapidamente ed efficacemente richiede una padronanza completa e tempestiva dei dati aziendali. Solo la conoscenza ci aiuta a prendere decisioni, essa però è alimentata da una mole di informazioni gestibili senza un valido supporto informatico. Le azioni che prendiamo in azienda quindi nascono da un processo decisionale che necessita di informazioni contabili e operative, che dipendono fortemente dalla qualità e dalla tempestività con cui arrivano, seguite pi dal processo esecutivo e di controllo che, a sua volta, richiede strumenti analitici di verifica. Un azienda senza un valido e tempestivo processo di controllo non è razionale. Il processo di controllo di controllo ci consente di calcolare i risultati delle decisioni e delle azioni intraprese e verificarne lo scostamento. Immaginando ad esempio uno scenario concernente le vendite sarà quindi possibile confrontare quanto pianificato dal processo decisionale e quello effettivamente realizzato. Eventuali scostamenti possono essere indotti da cause molteplici: inefficienza dei venditori, problemi legati a specifiche aree geografiche, prodotti, fornitori, eventi temporali, etc. L operazione manageriale consiste non solo nel calcolo dello scostamento ma anche nel valutarne le cause e quindi nel determinare le azioni di correzione. Questi sono elementi di pura economia aziendale che studia i processi di decisione, esecuzione e controllo applicabili a qualunque azienda. In questa tesi è stata sviluppata una soluzione software per l analisi dei dati aziendali per la Cassa Edile di Milano con l obiettivo di fornire gli elementi base indispensabili ai processi decisionali, esecutivi e di controllo in grado di: garantire alle proprie informazioni una corretta sintesi ed analisi; fornire non solo le funzioni di reportistica ma anche di navigazione on-line tra i dati consolidati con tempi di risposta immediati. Cassa Edile rappresenta lo strumento per l attuazione degli Accordi e dei Contratti Nazionali e Territoriali di Lavoro di categoria e costituisce per i lavoratori del comparto delle costruzioni, caratterizzato da una notevole mobilità interaziendale, una garanzia per Corso di laurea specialistica in Ingegneria Elettronica 1

10 la continuità dei trattamenti contrattuali. Oltre ad offrire un ampia serie di prestazioni previdenziali e assistenziali a vantaggio dei lavoratori e delle loro famiglie, promuove, gestisce e sovvenziona in parte l attività di strutture paritetiche, C.P.T. (Comitato Paritetico Territoriale per la prevenzione infortuni, l igiene e l ambiente di lavoro) ed E.S.E.M. (Ente Scuola Edile Milanese), volte a promuovere la cultura della prevenzione degli infortuni, per il miglioramento delle condizioni di salute e sicurezza nei cantieri edili, e a favorire la qualificazione e l aggiornamento degli operatori di settore. Il progetto svolto nell ambito di questa tesi nasce dall esigenza di poter verificare e di avere una chiara visione dell andamento delle varie attività volte all interno della Cassa Edile e di conoscere in anticipo il risultato economico. Il progetto consiste nella raccolta e nell analisi di un insieme di dati, sia economico-finanziari sia di altra natura per evidenziare i principali eventi e l andamento degli stessi al fine di facilitare l assunzione di decisioni strategiche. Prevede inoltre di utilizzare un insieme di metriche e d indici definiti che permettono di ottenere dati sintetici, di facile interpretazione, da essere immediatamente usati per scegliere le strategie aziendali più opportune a breve, medio e lungo termine. Il sistema dunque dovrà fornire indicatori e dati di monitoraggio periodici e disaggregati dei vari centri di responsabilità. L analisi dei dati segue un iter che partendo dai dati aziendali globali, una volta individuati i fenomeni più interessanti, permette approfondimenti con sottoanalisi sempre più complesse. Gli indicatori che saranno utilizzati permetteranno una verifica in tempo reale della situazione dell ente e verranno così ad assumere un ruolo decisivo nella scelta delle strategie aziendali. Se il foglio Excel è ancora molto diffuso per questo tipo di analisi, altre modalità di più semplice utilizzo (in particolare per quanto riguarda l'estrazione, elaborazione e rappresentazione dei dati) sono disponibili e diventano necessarie al crescere delle esigenze di controllo dell'azienda. Lo scopo della tesi è fornire uno strumento di questo tipo che s inserisca nel processo decisionale comprensivo di: 1) OLAP (On Line Analytical Processing), cioè basato sull analisi dimensionale e sul concetto d ipercubo in cui i dati sono organizzati in array a più dimensioni. Questi array sono chiamati cubi. Tale organizzazione permette di evitare le limitazioni di un normale database relazionale, che di solito non è indicato per l analisi immediata di grandi quantità di dati, mentre è più adatto a creare record da una serie di transazioni (OLTP: On Line Transaction Processing). Corso di laurea specialistica in Ingegneria Elettronica 2

11 2) Scorecarding, un sistema di gestione strategica introdotto nel 1992 da Robert S. Kaplan e David Norton [1] che forza i manager a focalizzare la loro attenzione sulle metriche di prestazione che portano al successo. Equilibra la prospettiva finanziaria col cliente, il processo interno, e le prospettive di apprendimento e di crescita. Il sistema consiste in quattro processi: Tradurre la visione in obiettivi operativi; Comunicare la visione e collegarla a prestazioni individuali; Pianificare del business; Ottenere feedback, e conseguente apprendimento e aggiustamento della strategia. 3) Dashboarding, presentazione dei dati attraverso interfacce grafiche modellate ad hoc. Figura I 4) Data Warehousing, cioè la possibilità di organizzare dati in una raccolta integrata, orientata al soggetto, variabile nel tempo e non volatile di supporto ai processi decisionali. Corso di laurea specialistica in Ingegneria Elettronica 3

12 Organizzazione della Tesi Questa tesi si articola in cinque capitoli Il primo capitolo introduce i concetti di base della tecnologia OLAP applicata alla Business Intelligence e in particolare introduce lo strumento di sviluppo Microsoft Analysis Services. Nel secondo capitolo si affronta il tema della architettura SOA (Service Oriented Architecture) e è introdotta la tecnologia dei web services quale soluzione per l implementazione. Inoltre è descritto il servizio realizzato e l applicazione creata per il test. Il terzo capitolo descrive la metodologia seguita nello sviluppo del progetto, dal primo contatto commerciale con il cliente fino al rilascio del prodotto. Il quarto capitolo descrive i moduli software realizzati per l implementazione del cruscotto aziendale. Nel quinto capitolo è presentato QlikView un software professionale di cui era stato ipotizzato l utilizzo nelle fasi iniziali del progetto ed è mostrato un esempio di utilizzo. Nella sezione conclusiva sono ricapitolati i risultati ottenuti e descritti gli sviluppi futuri del progetto. Corso di laurea specialistica in Ingegneria Elettronica 4

13 Capitolo 1 Metodi e Strumenti per la Business Intelligence 1.1 Introduzione alla Business Intelligence In questi anni di dinamiche di mercato molto imprevedibili, di turbolenze normative, economiche e finanziarie che creano e modificano scenari e concorrenti anche nel giro di qualche mese, le imprese si ritrovano circondate da così tante informazioni che il solo fiuto imprenditoriale non basta più per comprenderle correttamente e in tempi rapidi. La globalizzazione e le nuove tecnologie informatiche stanno infatti progressivamente abbattendo tutti i confini geografici e le aziende si ritrovano costrette a confrontarsi con nuove realtà sociali, economiche e produttive delle quali conoscono poco o nulla. In estrema sintesi, ci si ritrova di fronte ad un cambiamento epocale senza possedere tutti gli strumenti idonei per poterlo capire e gestire opportunamente. Le aziende che sopravvivranno saranno quelle che meglio sapranno adattarsi al cambiamento. L attuazione del concetto darwiniano di adattamento consiste nel dotare l impresa di strumenti che la aiutino a ricevere correttamente le numerose, complesse e disaggregate informazioni, allo scopo di trovare risposta alle due seguenti domande: 1. Che cosa sta succedendo al mio business? 2. Perché sta succedendo? La Business Intelligence (BI) nasce proprio per assolvere questa esigenza delle imprese descritta da Kaplan e Norton con la massima: You can t manage what you can t measure. Termine coniato dall analista Howard Dresner [10] nei primi anni 90, la Business Intelligence (BI) si caratterizza come tecnologia che raccoglie, estrapola, analizza ed elabora il patrimonio informativo dell azienda rendendolo facilmente fruibile e interpretabile a chiunque abbia bisogno di prendere decisioni. La BI rappresenta un potente strumento per rispondere e anticipare in maniera efficace ed efficiente le necessità dei propri clienti, raggiungendo così un livello ottimale di soddisfazione della clientela. Inoltre, le applicazioni di BI forniscono il migliore accesso ai Corso di laurea specialistica in Ingegneria Elettronica 5

14 dati, attività di supporto alle decisioni, attività di reportistica, analisi statistiche, attività di previsione e Data Mining. La BI si occupa di: riduzione dei tempi necessari per la raccolta delle informazioni di business rilevanti; automatizzazione del processo di raccolta e inserimento dei dati secondo le proprie esigenze; elaborazione e analisi delle informazioni. Per tutti questi motivi, gli strumenti e i sistemi di BI giocano un ruolo fondamentale nel processo di pianificazione strategica di un azienda. La Business Intelligence è una tecnologia indispensabile per le imprese che vogliono trasformare l enorme e crescente massa dei dati presente al loro interno, in patrimonio informativo facilmente fruibile e comprensibile da tutti gli utenti. Tutti i sistemi informativi aziendali raccolgono e immagazzinano una grandissima quantità di dati che si riferiscono ai processi aziendali; essi costituiscono un elemento essenziale per la supervisione e la conduzione dell azienda, sia dal punto di vista organizzativo, sia da quello tecnologico, sia dal lato del risultato (non solo economico) dell organizzazione aziendale. Il patrimonio informativo dell azienda, però, costituisce quasi sempre un insieme utilizzato solo in minima parte, mediamente il 10-20% dei dati che possiede. La BI, infatti, nasce per la gestione dei dati vitali e i suoi principali vantaggi sono: rispondere in tempi molto veloci ai condizionamenti e alle esigenze del mercato ottenendo un reale vantaggio competitivo; maggiore velocità del processo decisionale grazie alla massimizzazione del valore delle informazioni; ottimizzare le performance dell impresa (aumento dell'efficienza operativa, miglior servizio al cliente); ottimizzare i processi di supporto alle decisioni (capacità di analizzare con maggiore precisione eventuali problematiche aziendali, realizzazione di un miglioramento del ciclo produttivo, tracciabilità di un prodotto). Lo scopo di un software che supporta la BI è di aiutare le persone a prendere decisioni migliori, rendendo disponibili, in maniera accurata e rilevante, le informazioni giuste quando necessario. In assenza di un sistema di BI, l utilizzo dei dati in genere è finalizzato al solo supporto all attività operativa, poiché i dati sono conservati in archivi storici di Corso di laurea specialistica in Ingegneria Elettronica 6

15 difficile accesso da parte degli utenti cui possono accedere solo agli specialisti informatici. La prima problematica è dovuta al modo d inserimento dei dati negli archivi storici che è fatto cercando di ridurre lo spazio occupato e il tempo d inserimento (riduzione ridondanza), è cioè un metodo d inserimento finalizzato all immagazzinamento e non all analisi dei dati. Il secondo problema richiede un intermediario tra i dati e l utente finale che provoca un allungamento dei tempi di risposta e può dare luogo a perdita e/o interpretazioni errate dei dati. La BI risolve entrambi questi problemi fornendo direttamente all utente finale le metodologie e gli strumenti software necessari a ottenere tutte le risposte utili in modo flessibile e tempestivo I modelli della Business Intelligence I principali modelli che caratterizzano la BI possono essere raggruppati come segue. A. Data Modeling (modellazione dati) Nella creazione di sistemi informativi, il Data Modeling è l analisi e il design della informazione all interno del sistema, incentrata sulle entità logiche e le dipendenze logiche tra di esse. È una attività astratta in cui i dettagli dei valori delle singole osservazioni di dati sono ignorati in favore delle strutture, relazioni, nomi e formati dei dati d interesse, nonostante una lista di valori validi è solitamente inclusa. Il modello dei dati non deve solo definire la struttura dei dati, ma anche la semantica (il significato) degli stessi. Nonostante un termine comune per quest attività sia analisi dei dati, essa è più collegata alla sintesi (mettere insieme) dei dati stessi, poiché l attività si sforza di unire le strutture dati d interesse in un tutto coesivo, inseparabile, eliminando tutte le ridondanze non necessarie e collegando le strutture dati con delle relazioni. B. MIS - Management Information Systems (sistemi di gestione dell informazione) I MIS sono sistemi informativi utilizzati all interno di una organizzazione, definiti come sistema costituito dalla rete di tutti i canali di comunicazione usati all interno di una organizzazione. Possono essere anche definiti come sistema che raccoglie e processa informazioni e le fornisce ai manager a tutti i livelli, i quali le usano per prendere decisioni, pianificare, implementare programmi, e controlli. C. DSS - Decision Support Systems (sistemi di supporto alle decisioni) Corso di laurea specialistica in Ingegneria Elettronica 7

16 I DSS sono una classe di sistemi informativi computerizzati che supportano attività decisionali. Esistono vari tipi di DSS: Model-driven (basato sul modello): enfatizza accesso e manipolazione di modelli statistici, finanziari, di ottimizzazione o di simulazione. Usano dati e parametri forniti dagli utenti DSS per aiutare le persone incaricate di prendere decisioni ad analizzare una situazione. Communication-driven (basato sulla comunicazione): supporta più di una persona che lavora a un compito condiviso. Data-driven (basato sui dati): enfatizza l accesso e la manipolazione di serie temporali di dati interni alla azienda e, a volte, dati esterni. Document-driven (basato sui documenti): gestisce, recupera e manipola informazioni non strutturate in una varietà di formati elettronici. Knowledge-driven (basato sulla conoscenza): fornisce perizie specializzate nella risoluzione dei problemi; tali perizie sono immagazzinate come fatti, regole, procedure, o strutture simili. D. EIS - Executive Information Systems (sistemi informativi di esecuzione) Sono sistemi informatici rivolti a facilitare e supportare le esigenze decisionali di manager di alto livello, fornendo facile accesso a informazioni interne ed esterne importanti per raggiungere gli obiettivi strategici della azienda. Sono spesso considerati una forma specializzata dei DSS. L enfasi degli EIS è nelle visualizzazioni grafiche e nelle facili interfacce utente. Offrono resoconti dettagliati e capacità di approfondimento. In generale, i sistemi EIS sono dei DSS che abbracciano l intera azienda, aiutando i dirigenti ad analizzare, confrontare e sottolineare le tendenze di variabili importanti, permettendo loro di controllare le prestazioni e identificare opportunità e problemi. 1.2 OnLine Analytical Processing La BI comprende la raccolta, la memorizzazione, l analisi e l accesso ai dati come supporto alle decisioni. Le applicazioni principali della BI comprendono, inoltre, analisi statistiche, previsioni, strumenti di query e reportistica e quello che è definito OnLine Analytical Processing (OLAP). Termine coniato da E.F. Codd & Associates [9], si basa sull analisi dimensionale e sul concetto d ipercubo. Dall articolo di Codd è emersa la Corso di laurea specialistica in Ingegneria Elettronica 8

17 necessità di organizzare i dati in array, chiamati cubi, per permettere una analisi più veloce. In questi cubi i dati sono organizzati in modo specifico per realizzare query, reporting e analisi; questi database differiscono dai database relazionale, che di solito non è indicato per l analisi immediata di grandi quantità di dati, mentre è più adatto a creare record da una serie di transazioni (OLTP, On Line Transaction Processing). Il Cruscotto Direzionale, attraverso le funzioni di OLAP, analizza vasti volumi di informazione per scoprire trend altrimenti non rilevabili analizzando i dati singolarmente e offre all imprenditore: una visione sintetica della salute aziendale l evidenza immediata delle correlazioni tra le cause e gli effetti la fruibilità diretta delle informazioni una elevata facilità d uso Scendiamo ora più nel dettaglio in merito alle metodologie e agli strumenti di raccolta, analisi e utilizzo dei dati generalmente identificati con l acronimo OLAP. La definizione di OLAP può essere riassunta in cinque parole chiave: Fast Analysis Shared Multidimensional Information Le cinque parole chiave sono usate per esprimere il concetto di Fast analysis of shared multidimensional information, ovvero analisi veloce di informazione multidimensionale condivisa. Fast: Una applicazione OLAP deve risultare molto veloce; ricerche hanno evidenziato che un utente finale considera un processo fallito se non viene mostrato un risultato entro 30 secondi. In ogni caso, non sempre è possibile ottenere una elevata velocità di elaborazione in presenza di grosse quantità di dati. Corso di laurea specialistica in Ingegneria Elettronica 9

18 Analisys: Significa che il sistema può far fronte ad ogni logica di business e di analisi statistica importanti per l applicazione e per gli obiettivi dell utente. È certamente necessario permettere all utente di definire nuovi calcoli ad hoc come parte dell analisi e riportare i risultati in qualunque modo desiderato. Information: Sono tutti i dati e l informazione necessari, ovunque si trovino e qualunque sia la rilevanza per l applicazione. Shared: Significa che il sistema implementa tutti i requisiti di sicurezza; nonostante la sua importanza è una delle principali debolezze dei prodotti OLAP i quali tendono ad assumere che tutte le applicazioni saranno read-only, con semplici controlli di sicurezza. Anche prodotti con accessi multi-utente in scrittura e lettura hanno modelli di sicurezza rozzi. Multidimensional: È il requisito chiave; se si dovesse scegliere una parola per definire OLAP, questa sarebbe multidimensionale. Il sistema deve fornire una vista concettuale multidimensionale dei dati, includendo pieno supporto per gerarchie e gerarchie multiple. Cerchiamo di spiegare meglio questo concetto fondamentale. I database relazionali sono organizzati secondo una lista di record: ogni record contiene informazione correlata che è organizzata in campi. Un tipico esempio potrebbe essere una lista di clienti con i seguenti campi: Id, nome, indirizzo, telefono. Id Nome Indirizzo Telefono 7 LUIGI VIA TRIUGGIO FRANCO VIA DANICA GIAN BATTISTA VIA ROCCAFRANCA LINO VIA CASTELCOVATI ANTONIO VIA LIMBIATE Tabella 1.1 La tabella precedente ha diverse colonne di informazione, ogni informazione è relazionata a un solo Id, quindi la tabella ha una sola dimensione. Se si volesse creare una matrice bidimensionale con Id in verticale e altri campi (come telefono) in orizzontale si otterrebbe: Corso di laurea specialistica in Ingegneria Elettronica 10

19 Telefono Id Tabella 1.2 Consideriamo un altro esempio: una tabella relazionale dove abbiamo i dati che si riferiscono alle vendite per ogni prodotto e per ogni provincia: Prodotto Provincia Num. Vendite Noci La Spezia 50 Noci Genova 60 Noci Imperia 100 Noci Savona 40 Pistacchi La Spezia 70 Pistacchi Genova 80 Pistacchi Imperia 90 Pistacchi Savona 30 Datteri La Spezia 120 Datteri Genova 140 Datteri Imperia 20 Datteri Savona 10 Tabella 1.3 Una migliore rappresentazione delle informazioni della tabella precedente è attraverso una matrice bidimensionale: le dimensioni sono Prodotti e Provincia attraverso le quali sono rappresentati i valori Numero Vendite: Corso di laurea specialistica in Ingegneria Elettronica 11

20 La Spezia Genova Savona Imperia Noci Pistacchi Datteri Tabella 1.4 Per estrarre un singolo dato potrebbe non esserci bisogno di tabelle multidimensionali. Se invece si volesse rispondere alla domanda: qual è il totale delle vendite a Genova? l operazione richiederebbe di estrarre informazioni multiple aggregate fra loro. Se si considera un database di grandi dimensioni con migliaia di prodotti il tempo per estrarre l informazione diverrebbe incredibilmente alto. Un tipico database relazionale può analizzare poche centinaia di record al secondo mentre un tipico database multidimensionale può analizzare un insieme di righe/colonne al secondo. Per rispondere alla domanda Qual è il totale di vendite a Genova?, un database bidimensionale cerca semplicemente la colonna Genova ed esegue la somma. Utilizzando un analogia matematica stiamo aumentando le dimensioni dello spazio del problema. L esempio è calzante tanto più che in effetti si passa dall analisi delle tabelle relazionali (bidimensionali) all analisi dell oggetto OLAP che è detto cubo. Un cubo è una rappresentazione multidimensionale dei dati e consiste di: Una sorgente dei dati Dimensioni Misure La sorgente dei dati identifica e connette un cubo a un database dove è presente l informazione. Le dimensioni mappano le informazioni presenti nelle dimension table in una gerarchia di livelli, come ad esempio la dimensione Geografia con i livelli di Continente, Stato, Città e descrivono i dati contenuti in una fact table. Le fact table descrivono un tema di interesse per l organizzazione (ad esempio vendite,acquisti o spedizioni). Le misure identificano i valori numerici provenienti dalla fact table che sono riassunti per l analisi (es. prezzo, costo, quantità...). Una misura è un fatto, in altre parole Corso di laurea specialistica in Ingegneria Elettronica 12

21 una misurazione o un valore transazionale il cui raggruppamento può essere utile per un utente. Le misure sono derivate dalle colonne di una o più tabelle di origine e sono raggruppate in gruppi di misure. 1.3 Microsoft SQL Server Analysis Services Esistono diversi strumenti per la creazione, la gestione e l analisi dei cubi. Quello utilizzato nello svolgimento di questa tesi è il pacchetto Microsoft SQL Server Analysis Services (SSAS). Nel seguito è proposta una rapida carrellata sugli strumenti principali offerti dal prodotto al fine di introdurre i concetti che saranno poi utilizzati La sorgente dati Una sorgente dei dati in Microsoft SQL Server Analysis Services (SSAS) rappresenta una connessione a un'origine dei dati e contiene la stringa di connessione che definisce le modalità di connessione di Analysis Services a un archivio dati fisico tramite un provider OLE DB nativo o Microsoft.net Framework gestito. La stringa di connessione include informazioni relative al nome del server, database, protezione, timeout e altre informazioni sulla connessione. Analysis Services supporta direttamente molte origini dei dati. Le origini dei dati supportate includono database di Microsoft SQL Server e database creati con altri prodotti, tra cui Oracle, DB2 e Teradata. A partire dall origine dati un cubo può essere sviluppato in base a tabelle e viste modellate in una vista dell origine dei dati. Una vista di un origine dati è il modello logico (dell origine dati) utilizzato dagli oggetti di Analysis Services, in altre parole cubi, dimensioni e strutture di data mining. Una vista dell origine dati ha le seguenti caratteristiche: Contiene i metadati che rappresentano oggetti selezionati da una o più origini dei dati sottostanti oppure i metadati che saranno utilizzati per generare un archivio dati relazionale sottostante. Può essere creata sulla base di una o più origini dei dati e questo consente la definizione di oggetti OLAP e di data mining che integrino i dati di più origini. Può contenere relazioni, chiavi primarie, nomi degli oggetti, colonne calcolate e query non presenti nell'origine dei dati sottostante e che esistono indipendentemente dalle origini dei dati sottostanti. Corso di laurea specialistica in Ingegneria Elettronica 13

22 Non è visibile e non è possibile eseguire query al suo interno tramite applicazioni client Le dimensioni Le dimensioni rappresentano un componente essenziale dei cubi. Esse consentono di organizzare i dati su un'area d interesse per gli utenti, ad esempio concernente clienti, archivi o dipendenti. Le dimensioni di Analysis Services includono attributi corrispondenti a colonne nelle tabelle delle dimensioni. Questi attributi possono essere organizzati in strutture gerarchiche definite dall'utente oppure possono essere definite come gerarchie padre-figlio basate su colonne nella tabella delle dimensioni sottostante. Queste gerarchie sono utilizzate per organizzare le misure incluse in un cubo. La ragione per cui abbiamo bisogno di gerarchie multilivelli all interno di una dimensione, invece di dimensioni addizionali, è che non si possono considerare come oggetti omogenei entità quali, ad esempio, città, stati e regioni. Consideriamo la seguente tabella e supponiamo che un utente voglia vedere i prodotti venduti per città o per regione; unire città e regioni nella stessa dimensione significa avere una colonna con i totali errati perché i valori della città sono già inclusi in quelli delle regioni. Figura 1.1 In un database multidimensionale senza gerarchie, la soluzione a questo problema potrebbe essere quella di separare, per esempio, città e stati in diverse dimensioni. È comunque Corso di laurea specialistica in Ingegneria Elettronica 14

23 concettualmente più complicato infatti all aumentare dei livelli aumentano anche le dimensioni del cubo. Figura 1.2 Il modo corretto di risolvere il problema è appunto quello di usare le gerarchie all interno delle dimensioni Le Misure Una misura rappresenta una colonna contenente dati quantificabili, spesso di tipo numerico, che è possibile aggregare. Una misura è in genere mappata a una colonna di una tabella dei fatti. È possibile anche utilizzare un'espressione di misura per definire il valore di una misura, in base a una colonna di una tabella dei fatti modificata tramite un'espressione multidimensionale. Un'espressione di misura consente di stabilire il peso dei valori delle misure. È ad esempio possibile utilizzare una conversione di valuta per stabilire il peso di una misura delle vendite in base a un tasso di cambio. Per definire le misure è possibile utilizzare le colonne degli attributi delle tabelle delle dimensioni. Queste misure, tuttavia, in genere sono di tipo semiadditivo o non additivo per quanto riguarda la modalità di aggregazione. È inoltre possibile definire una misura come membro calcolato. Un membro calcolato è un membro il cui valore è calcolato in fase di esecuzione utilizzando un'espressione MDX (Multidimensional Expressions) specificata dall'utente durante la definizione del membro stesso. I membri calcolati non aumentano le dimensioni Corso di laurea specialistica in Ingegneria Elettronica 15

24 del cubo poiché solo le definizioni sono archiviate nel cubo, mentre il calcolo dei valori, necessario per rispondere alle query, è eseguito in memoria. In un cubo le misure sono raggruppate in gruppi di misure in base alle tabelle dei fatti sottostanti. I gruppi di misure consentono di associare dimensioni a misure. La tabella dei fatti contiene due tipi di colonne di base: le colonne degli attributi e le colonne delle misure. Le colonne degli attributi sono utilizzate per creare relazioni di chiave esterna a tabelle delle dimensioni in modo da poter organizzare i dati quantificabili nelle colonne delle misure in base ai dati contenuti nelle tabelle delle dimensioni. Le colonne degli attributi sono inoltre utilizzate per definire la granularità di una tabella dei fatti e del gruppo di misure. Le colonne delle misure definiscono le misure contenute in un gruppo di misure Il Cubo Un cubo è definito dalle relative misure e dimensioni. Le misure e le dimensioni di un cubo derivano dalle tabelle e dalle viste della vista origine dati su cui il cubo si basa o che è generata dalle definizioni delle misure e delle dimensioni, come visto in precedenza. Prendiamo in considerazione un semplice esempio. Il cubo Imports contiene due misure, Packages e Last, e tre dimensioni correlate, Route, Source e Time. Figura 1.3 Corso di laurea specialistica in Ingegneria Elettronica 16

25 I valori alfanumerici più piccoli disposti intorno al cubo rappresentano i membri delle dimensioni. Ad esempio, ground, Africa e 1st quarter sono rispettivamente membri delle dimensioni Route, Source e Time. I valori all'interno delle celle del cubo rappresentano le due misure Packages e Last. La misura Packages rappresenta il numero di confezioni importate. Per aggregare i fatti è utilizzata la funzione Sum. La misura Last rappresenta la data di ricevimento. Per aggregare i fatti è utilizzata la funzione Max. La dimensione Route rappresenta il mezzo di trasporto mediante il quale i beni importati giungono a destinazione. I membri di questa dimensione includono ground, nonground, air, sea, road e rail. La dimensione Source rappresenta le località in cui sono prodotti i beni importati, ad esempio Africa o Asia. La dimensione Time rappresenta i trimestri e i semestri di un singolo anno. Gli utenti aziendali di un cubo possono determinare il valore di qualsiasi misura per ogni membro di ogni dimensione, indipendentemente dal livello del membro all'interno della dimensione, perché in Analysis Services i valori sono aggregati ai livelli superiori in base alle esigenze. Ad esempio, i valori delle misure illustrati nella figura precedente possono essere aggregati in base a una gerarchia con il calendario standard utilizzando la gerarchia Calendar Time della dimensione Time, come indicato nella figura seguente. Figura 1.4 Oltre che in base a un'unica dimensione, le misure possono essere aggregate utilizzando combinazioni di membri di dimensioni diverse. Ciò consente agli utenti aziendali di valutare le misure di più dimensioni contemporaneamente. Corso di laurea specialistica in Ingegneria Elettronica 17

26 Nel cubo possiamo individuare delle celle come intersezione dei membri delle dimensioni. Ad esempio, il cubo descritto nella figura seguente contiene un gruppo di due misure organizzato in base a tre dimensioni, denominate Source, Route e Time. Figura 1.5 La cella ombreggiata rappresenta l'intersezione dei membri seguenti: Il membro air della dimensione Route. Il membro Africa della dimensione Source. Il membro 4th quarter della dimensione Time. La misura Packages. È possibile ottenere il valore della cella in un cubo in uno dei modi seguenti. Nell'esempio precedente, il valore della cella può essere recuperato direttamente dalla tabella dei fatti del cubo, dal momento che tutti i membri utilizzati per identificare tale cella sono membri foglia. Un membro foglia non ha membri figlio in termini gerarchici e generalmente fa riferimento a un unico record nella tabella della dimensione. Questo tipo di cella è definito cella foglia. Tuttavia, è possibile identificare una cella anche tramite membri non foglia. Un membro non foglia è un membro che ha uno o più membri figlio. In questo caso, il valore della cella è generalmente derivato dall'aggregazione dei membri figlio associati al membro non foglia. Ad esempio, l'intersezione dei membri e delle dimensioni seguenti fa riferimento a una cella il cui valore è fornito dall'aggregazione: Corso di laurea specialistica in Ingegneria Elettronica 18

27 Il membro air della dimensione Route. Il membro Africa della dimensione Source. Il membro 2nd half della dimensione Time. Il membro Packages. Il membro 2nd half della dimensione Time è un membro non foglia. È pertanto necessario aggregare tutti i valori associati, come illustrato nella figura seguente. Figura 1.6 Supponendo che le aggregazioni dei membri 3rd quarter e 4th quarter siano somme, il valore della cella specificata è 400, che corrisponde al totale di tutte le celle foglia ombreggiate nella figura precedente. Dato che il valore della cella è derivato dall'aggregazione delle altre celle, la cella specificata viene considerata come cella non foglia. Non è necessario che tutte le celle di un cubo contengano un valore. In un cubo possono esistere intersezioni prive di dati, che sono chiamate celle vuote. Questo tipo di celle è frequente nei cubi, poiché non tutte le intersezioni degli attributi delle dimensioni con una misura contengono un record corrispondente nella tabella dei fatti. Il rapporto tra il numero di celle vuote e il numero totale di celle in un cubo viene in genere definito scarsità di un cubo Indicatori di prestazioni chiave (KPI) Nella terminologia aziendale, un indicatore di prestazioni chiave (KPI) rappresenta una misurazione quantificabile per la valutazione dei risultati aziendali ed è stimato con una frequenza spesso elevata. Il reparto vendite di un'organizzazione potrebbe ad esempio Corso di laurea specialistica in Ingegneria Elettronica 19

28 utilizzare il profitto lordo mensile come indicatore di prestazioni chiave, mentre il reparto risorse umane della stessa organizzazione potrebbe basarsi sull'avvicendamento trimestrale dei dipendenti. Ognuno di questi rappresenta un esempio di indicatore di prestazioni chiave. I dirigenti aziendali utilizzano spesso indicatori di prestazioni chiave raggruppati in una scorecard aziendale per ottenere un riepilogo cronologico immediato e accurato del successo aziendale. In Microsoft SQL Server Analysis Services un indicatore di prestazioni chiave (KPI) è una raccolta di calcoli associati a un gruppo di misure in un cubo e utilizzati per valutare il successo aziendale. Questi calcoli sono in genere una combinazione di espressioni MDX (Multidimensional Expressions) e di membri calcolati. Gli indicatori di prestazioni chiave dispongono inoltre di metadati aggiuntivi che offrono informazioni su come devono essere visualizzati i risultati dei calcoli dell'indicatore nelle applicazioni client. Un vantaggio fondamentale degli indicatori di prestazioni chiave in Analysis Services consiste nel fatto che si tratta di indicatori basati sul server che possono essere utilizzati da diverse applicazioni client. Un indicatore di prestazioni chiave basato sul server presenta un'unica versione di verità, rispetto alle diverse versioni di verità di più applicazioni client. Si possono inoltre ottenere vantaggi in termini di prestazioni grazie alla possibilità di eseguire calcoli talvolta complessi nel server anziché in ogni computer client. Nella tabella seguente vengono definiti i termini comuni relativi agli indicatori di prestazioni chiave in Analysis Services. Obiettivo Calcolo o espressione numerica MDX che restituisce il valore di destinazione dell'indicatore di prestazioni chiave. Valore Espressione numerica MDX che restituisce il valore effettivo dell'indicatore di prestazioni chiave. Stato Espressione MDX che rappresenta lo stato dell'indicatore di prestazioni chiave in un punto nel tempo specifico. L'espressione MDX relativa allo stato restituisce un valore normalizzato compreso tra -1 e 1. I valori minori di o uguali a -1 sono interpretati come "insufficienti" o "bassi". Un valore pari a zero (0) è interpretato come "accettabile" o "medio". I valori maggiori di o uguali a 1 sono interpretati come "buoni" o "alti". Corso di laurea specialistica in Ingegneria Elettronica 20

29 Facoltativamente, può essere restituito un numero illimitato di valori intermedi e questi valori possono essere utilizzati per visualizzare un numero qualsiasi di stati aggiuntivi, se l'applicazione client lo consente. Tendenza Espressione MDX che valuta il valore dell'indicatore di prestazioni chiave nel tempo. La tendenza può essere rappresentata da qualsiasi criterio basato sul tempo che sia utile in un contesto aziendale specifico. L'espressione MDX relativa alla tendenza consente a un utente aziendale di determinare se l'indicatore di prestazioni chiave sta migliorando o peggiorando nel tempo. Tabella Interrogare i cubi Una volta che è stata definita la struttura del cubo, cioè si sono definite attraverso Microsoft Analisys Services le misure, le dimensioni e gli eventuali KPI, ed esso è stato processato è possibile interrogarlo per ottenere i risultati che ci interessano. Esistono diversi modi per visualizzare tali risultati. Il modo più veloce è utilizzare il QueryBuilder già integrato in Analisys Services attraverso il quale è possibile costruire con semplici operazioni di drag & drop le query di cui abbiamo bisogno. Figura 1.7 Corso di laurea specialistica in Ingegneria Elettronica 21

30 Questa soluzione però è poco pratica per differenti motivi: in primo luogo occorre ricordare che Analisys Services si pone come strumento di sviluppo e non di visualizzazione dei dati, quindi l end-user non dovrebbe avere accesso al progetto per eseguire un interrogazione di questo tipo. Secondariamente la visualizzazione proposta è piuttosto povera e non è possibile in alcun modo esplorare i dati attraverso grafici, suddividerli in categorie o creare aree ad accesso riservato, caratteristiche che spesso sono richieste dall end-user. Per queste caratteristiche è possibile utilizzare altri strumenti: la soluzione più semplice nella maggior parte dei casi è utilizzare Excel, in poche parole si crea una pivot table connessa al cubo e di conseguenza è possibile utilizzare i dati in essa contenuti e utilizzare le funzioni di visualizzazione tipiche di Excel. Figura 1.8 In modo del tutto simile a quanto visto per Excel si può procedere utilizzando prodotti già in commercio per ottenere rappresentazioni più articolate e che garantiscono un maggiore livello di customizzazione. Tra i principali ricordiamo Microsoft SQL Reporting Services, Business Scorecard Accelerator e Proclarity Analytics. Tuttavia nel caso in cui si voglia realizzare una soluzione custom che rispetti dei requisiti proprietari occorre un provider che sia in grado di recuperare i dati contenuti nel cubo e renderli disponili al programmatore che scrive l applicazione che li consuma. Tale provider per il mondo.net è ADOMD.NET. [2]. Analogamente agli altri provider di dati Microsoft.net Framework, esso funge da ponte tra un'applicazione e un'origine dati. A differenza degli altri provider di dati.net Framework, tuttavia, in ADOMD.NET sono utilizzati dati analitici. Per utilizzare dati analitici, ADOMD.NET supporta funzionalità Corso di laurea specialistica in Ingegneria Elettronica 22

31 notevolmente diverse da quelle degli altri provider di dati.net Framework. Non solo consente di recuperare dati, ma anche di recuperare metadati e di modificare la struttura dell'archivio dati analitici. Il recupero dei metadati consente di ottenere informazioni circa i dati che sono estraibili dall origine dati, è possibile ad esempio individuare informazioni quali i tipi di ogni KPI disponibile, le dimensioni in un cubo e i parametri necessari per i modelli di data mining. Per recupero di dati si intende il recupero effettivo delle informazioni archiviate nell'origine dati. Il recupero di dati rappresenta la funzione principale di applicazioni "statiche" cui è nota la struttura dell'origine dati, nonché il risultato finale di applicazioni "dinamiche". Il valore dell'indicatore di prestazioni chiave a un'ora specificata del giorno, il numero di biciclette vendute nell'ultima ora per ogni punto vendita e i fattori che governano le prestazioni annuali dei dipendenti sono tutti esempi di dati che possono essere recuperati. Il recupero di dati è molto importante per tutte le applicazioni che eseguono query. Il recupero di metadati e di dati e la modifica della struttura di dati sono eseguiti ciascuno in un punto specifico nel flusso di lavoro di un'applicazione ADOMD.NET tipica. In caso di utilizzo di un database analitico, le applicazioni ADOMD.NET tradizionali seguono in genere lo stesso flusso di lavoro: è stabilita innanzitutto una connessione al database mediante l'oggetto AdomdConnection. Quando si apre la connessione, l'oggetto AdomdConnection espone metadati relativi al server cui è stata eseguita la connessione. In un'applicazione dinamica alcune di queste informazioni vengono in genere mostrate all'utente in modo che quest'ultimo possa eseguire una selezione, ad esempio il cubo su cui eseguire una query. La connessione creata durante questo passaggio può essere riutilizzata più volte dall'applicazione, con la conseguente riduzione dell'overhead. Una volta stabilita una connessione, un'applicazione dinamica potrebbe quindi eseguire una query sul server per ottenere metadati più specifici. Nel caso di un'applicazione statica, il programmatore conosce in anticipo gli oggetti sui quali l'applicazione eseguirà una query e pertanto non sarà necessario recuperare tali metadati. I metadati recuperati possono essere utilizzati dall'applicazione e dall'utente per il passaggio successivo. Successivamente l'applicazione esegue un comando sul server al fine di recuperare metadati o dati aggiuntivi o di modificare la struttura del database. Per ciascuna di queste Corso di laurea specialistica in Ingegneria Elettronica 23

32 attività, l'applicazione potrebbe utilizzare una query determinata in precedenza oppure avvalersi dei metadati appena recuperati per creare query aggiuntive. Una volta che il comando è stato inviato al server, quest'ultimo inizia a restituire i metadati oppure i dati al client. Per usufruire di queste informazioni, è possibile infine utilizzare un oggetto CellSet, AdomdDataReader o System.XmlReader all interno dell applicativo client che si occuperà della visualizzazione dei dati secondo i criteri scelti. Corso di laurea specialistica in Ingegneria Elettronica 24

33 Capitolo 2 SOA e Web Services Nel capitolo precedente sono stati descritti diversi modi per la visualizzazione dei dati contenuti in un cubo; gli strumenti descritti consentono svariate rappresentazioni che vanno dalla semplice griglia fino alla massima flessibilità offerta dall applicazione custom che è creata ad hoc. Tuttavia esiste ancora un problema da affrontare. Per le considerazioni che sono state fatte si suppone che l applicazione client abbia accesso diretto alla sorgente dati ma in realtà questo caso è piuttosto raro. Per fare un esempio in via più generale i dati necessari all applicazione potrebbero arrivare dal sistema informativo che negli anni si è venuto a creare all interno di un azienda. Sia all interno dell azienda che verso l esterno sempre più si sente il bisogno di utilizzare risorse eterogenee: l inventario è gestito su un server Linux, i processi gestionali e l application server risiedono su Windows 2003, i fornitori hanno server per le ordinazioni raggiungibili su Internet, ma dietro un firewall, e così i clienti. Tutti questi sistemi, lontani geograficamente e disomogenei come tipologia di sistema operativo possono darci le informazioni e i servizi di cui abbiamo bisogno ma, utilizzando le tecniche esposte finora, dialogare con loro sarebbe un incubo in quanto per ogni differente tecnologia occorrerebbe una diversa implementazione, con il rischio di dover riscrivere tutto una volta che essa cambia. Cerchiamo di cambiare la nostra prospettiva: cominciamo a pensare queste parti in gioco non più in base a come sono realizzate o a quali astrazioni fanno riferimento, ma secondo quello che ci possono fornire, ovverosia cominciamo a pensarli come servizi di cui noi, o meglio il sistema informatico di cui andremo a definire l architettura, saremo i fruitori. Ecco che nasce l idea di un applicazione distribuita, le cui parti siano: 1. Fornitori di servizi, che possiamo sfruttare indipendentemente dal dove si trovano, dalla tecnologia su cui sono basati, dalla piattaforma software o hardware che li realizza 2. Fruitori o consumatori di tali servizi. Ovviamente per realizzare un architettura del genere sono necessarie alcune convenzioni affinché consumatori e fruitori dei servizi possano comprendersi e comunicare correttamente. Fondamentalmente si ha bisogno di: Un linguaggio conosciuto da tutti per fare in modo che le due parti si comprendano. Corso di laurea specialistica in Ingegneria Elettronica 25

34 Un set di regole che siano poche, chiare e fisse, ossia di un contratto che sia facilmente interpretabile dalle macchine; in particolare il contratto non condividerà più tipi e astrazioni ma regole processabili dalle macchine. Un canale di comunicazione semplice, sicuro e universalmente accettato. L implementazione di questi requisiti esiste ed è alla base della SOA, Service Oriented Architecture, un architettura in cui la parte di logica del client e quella di funzionalità del business sono nettamente separate: quest ultima è realizzata mediante moduli più semplici, i Web Services, definiti formalmente da interfacce. La SOA è un architettura concettuale che non fa riferimento ad una particolare implementazione. Essa pone delle specifiche circa le caratteristiche che i componenti del sistema devono avere. I Web Services invece sono una nuova tecnologia che si basa su standard come XML, WSDL e UDDI che fornisce un modo facile e intuitivo per interfacciare applicazioni differenti. 2.1 La Service Oriented Architecture Una Service Oriented Architecture (SOA, Architettura Orientata ai Servizi) è un modello architetturale per sistemi che operano su una rete che concentra l attenzione sul concetto di servizio. Un sistema costruito seguendo questa filosofia è costituito da applicazioni, chiamate servizi, ben definite da contratti e indipendenti l una dall altra, che risiedono su più computer all interno di una rete. Ogni servizio mette a disposizione una certa funzionalità e può utilizzare quelle che gli altri servizi hanno reso disponibili, realizzando, in questo modo, applicazioni di maggiore complessità. SOA è una forma particolare di Distributed System, la cui definizione è la seguente [3]: Un Distributed System (Sistema distribuito) consiste di vari agenti software distinti che devono lavorare insieme per svolgere alcuni compiti. Inoltre, gli agenti in un sistema distribuito non operano nello stesso ambiente di calcolo, quindi devono comunicare per mezzo di stack di protocolli hardware/software su una rete. Questo significa che le comunicazioni in un sistema distribuito sono intrinsecamente meno veloci e affidabili rispetto a quelle che utilizzano invocazione diretta del codice e memoria condivisa. Ciò ha importanti implicazioni architetturali perché i sistemi distribuiti richiedono che gli sviluppatori (di infrastruttura e applicazioni) considerino la latenza, Corso di laurea specialistica in Ingegneria Elettronica 26

35 fattore imprevedibile dell accesso remoto, e tengano presente questioni relative alla concorrenza e la possibilità di fallimenti parziali Caratteristiche di una SOA Come già accennato in precedenza la SOA non è legata a una specifica tecnologia, ma semplicemente definisce alcune proprietà, orientate al riutilizzo e all integrazione in un ambiente eterogeneo, che devono essere rispettate dai servizi che compongono il sistema. Tra le caratteristiche che un servizio deve esporre in un architettura SOA presentiamo le principali: Ogni servizio deve poter essere ricercato in base alla sua interfaccia e richiamato a tempo di esecuzione. La definizione del servizio in base alla sua interfaccia rende quest ultima (e quindi l interazione con altri servizi) indipendente dal modo in cui è stato realizzato il componente che lo implementa. Ogni servizio deve essere ben definito, completo e indipendente dal contesto o dallo stato di altri servizi. Ogni servizio deve essere definito in termini di ciò che fa, astraendo dai metodi e dalle tecnologie utilizzate per implementarlo. Questo determina l indipendenza del servizio non solo dal linguaggio di programmazione utilizzato per realizzare il componente che lo implementa ma anche dalla piattaforma e dal sistema operativo su cui è in esecuzione: non è necessario conoscere come un servizio è realizzato ma solo quali funzionalità rende disponibili. Possibilmente i servizi devono essere loosely coupled, in altre parole le relazioni tra di essi devono essere limitate. Questo rende il sistema flessibile e facilmente modificabile. I servizi devono essere resi disponibili sulla rete attraverso la pubblicazione delle interfacce (in un Service Directory o Service Registry) e accessibili in modo trasparente rispetto alla loro allocazione. Ogni servizio dovrebbe esporre un interfaccia coarse-grained, a grana grossa, ossia rendere disponibili poche funzionalità, in modo tale da non dover avere un programma di controllo complesso. Deve essere invece orientato a un elevato livello di interazione con gli altri servizi attraverso lo scambio di messaggi. Per Corso di laurea specialistica in Ingegneria Elettronica 27

36 questo motivo e per il fatto che i servizi possono trovarsi su sistemi operativi e piattaforme diverse è necessario che i messaggi siano composti utilizzando un formato standard largamente riconosciuto (Platform Neutral). I dati che sono trasmessi attraverso i messaggi possono essere costituiti sia dal risultato dell elaborazione di un certo servizio sia da informazioni che più servizi si scambiano per coordinarsi fra loro Come funziona una SOA Gli attori di un sistema SOA sono tre: Service Provider Service Consumer Service Registry Il Service Provider è un entità che espone dei servizi. Uno di questi servizi, per poter essere trovato da altre entità che vogliono utilizzarlo, deve essere reso visibile sulla rete, ossia deve essere pubblicato. A tal fine il Service Provider comunica al Service Registry le informazioni relative al servizio, perché vengano memorizzate. Il Service Registry possiede quindi le informazioni, come URL e modalità di accesso, di tutti i servizi disponibili. Nel momento in cui un Service Consumer dovrà utilizzare un servizio farà richiesta delle informazioni a esso relative al Service Registry. Con queste informazioni il Service Consumer potrà comunicare direttamente con il Service Provider e utilizzare il servizio. In un caso più reale un generico consumer farà quella che è chiamata orchestrazione dei servizi: la logica di business utilizza i vari servizi per ottenere lo scopo voluto. Per rifarci a un esempio, sarà il nostro processo di business che chiederà al servizio del magazzino quali siano i prodotti da riordinare e, in base a queste informazioni, chiamerà il servizio del fornitore, effettuando l ordine. Poi, all interno della rete IT dell azienda, il nostro processo chiamerà servizio della contabilità per informare dell acquisto fatto. I vari servizi saranno inoltre sincronizzati con quella che è detta coreografia dei servizi. Corso di laurea specialistica in Ingegneria Elettronica 28

37 Figura 2.1 In figura sono riportate le interazioni fra le entità appena descritte. Tutte queste interazioni passano attraverso quella che in figura è definita Rete di Comunicazione, la quale in un implementazione reale di una SOA può essere costituita sia da Internet sia da un intranet. SOA definisce, dunque, le caratteristiche che i componenti facenti parte di un sistema devono avere al fine di poter definire quest ultimo un architettura orientata ai servizi. 2.2 Web Services I Web Services sono applicazioni web che interagiscono fra loro, indipendentemente dalla piattaforma sulla quale si trovano, attraverso lo scambio di messaggi. La definizione di servizio che dal Services Architecture Working Group (del W3C) [3, 4] è la seguente: Un Web Service è un applicazione software identificata da un URI (Uniform Resource Identifier), le cui interfacce pubbliche e collegamenti sono definiti e descritti come documenti XML, in un formato comprensibile alla macchina (più precisamente WSDL). La sua definizione può essere ricercata da altri agenti software situati su una rete, i quali Corso di laurea specialistica in Ingegneria Elettronica 29

38 possono interagire direttamente con il Web Service, con le modalità specificate nella sua definizione, utilizzando messaggi basati su XML (SOAP), scambiati attraverso protocolli Internet (tipicamente HTTP). Le tecnologie su cui si basano i Web Services sono dunque: XML, extensible Markup Language SOAP, Simple Object Access Protocol WSDL, Web Services Description Language UDDI, Universal Description, Discovery and Integration. Questi standard consentono la comunicazione e cooperazione tra differenti servizi i quali rendono disponibili funzionalità differenti. Di queste tecnologie XML ha dato un contributo molto importante alla nascita dei Web Services. XML è un formato indipendente dalle varie piattaforme; ciò è dovuto, oltre che all essere universalmente riconosciuto come standard, anche al fatto che tale tecnologia si basa sul formato testo e quindi un documento XML può essere letto chiaramente su qualsiasi sistema operativo. Questa indipendenza lo rende la soluzione ideale per lo scambio di informazioni attraverso il Web. I vantaggi offerti dai Web Services sono: Indipendenza dalla piattaforma. Indipendenza dall implementazione del servizio. Riuso dell infrastruttura: per lo scambio di messaggi si utilizza SOAP che fa uso di HTTP, grazie al quale si ottiene anche il vantaggio di permettere ai messaggi SOAP di passare attraverso sistemi di filtraggio del traffico sulla rete, quali Firewall. Riuso del software. Il concetto di Web Services implica quindi un modello di architettura a oggetti distribuiti (intesi come applicazioni), che si trovano localizzati in punti diversi della rete e su piattaforme di tipo differente. Il legame con l architettura SOA sta nel fatto che, sfruttando al meglio tutte le caratteristiche della tecnologia dei Web Services, il sistema che si ottiene implementa proprio un architettura orientata ai servizi. Ad oggi i Web Services rappresentano la soluzione migliore per la realizzazione di una SOA su larga scala, ovvero su Internet. Corso di laurea specialistica in Ingegneria Elettronica 30

39 2.2.1 Comunicazione fra due Web Service La figura mostra un esempio di applicazione della tecnologia dei Web Services che sarà utilizzato per descrivere l interazione fra due servizi. Figura 2.2 I due rettangoli rappresentano due processi, in ambito di Web Services, definiti Service Consumer (o Service Client) e Service Provider. Un processo è definito Consumer o Provider a seconda del ruolo che ha nella comunicazione. Il Service Consumer è colui che fa richiesta di un certo servizio di cui ha bisogno, mentre con il termine Service Provider si identifica chi fornisce tale servizio. La comunicazione avviene attraverso l invio di messaggi. Il service consumer invia un messaggio di richiesta del servizio al provider il quale invia a sua volta un messaggio di risposta. I due messaggi (di richiesta e di risposta) devono essere definiti in modo tale da essere comprensibili sia al consumer che al provider. I ruoli di Consumer e Provider non sono fissati al momento della generazione dei processi. Un processo infatti può essere sia Consumer, nel momento in cui necessita di un servizio messo a disposizione da altri, sia Provider, quando riceve da un secondo processo la richiesta di un certo servizio di cui è fornitore. Il ruolo è quindi stabilito dalle connessioni Web Services e Architettura non SOA Sottolineiamo il fatto che usare i Web Services non implica necessariamente parlare di SOA. I Web Services possono essere utilizzati ad esempio per aggiungere a una funzionalità basata sui servizi al fine di ottenere un certo requisito richiesto dal progetto che si sta realizzando. In questi casi, come in altri, non è detto che si possa definire il sistema realizzato un architettura orientata ai servizi; questo perché per il particolare Corso di laurea specialistica in Ingegneria Elettronica 31

40 utilizzo che si fa dei Web Services all interno di un certo sistema software, può non essere necessario soddisfare alcuni requisiti richiesti dal modello di architettura SOA. Supponiamo ad esempio che all interno di un organizzazione siano state sviluppate delle applicazioni che sfruttano i Web Services; se si stabilisce che queste applicazioni non subiranno modifiche nel tempo o quanto meno le eventuali modifiche da apportare saranno ridotte, si può ad esempio pensare di memorizzare le informazioni riguardanti tutti i servizi nel file di configurazione di ognuno di essi, escludendo perciò dal progetto la presenza di un Service Registry, entità prevista invece dal modello di architettura SOA. Un altro possibile utilizzo, molto interessante, dei Web Services è il loro impiego nel processo di integrazione di applicazioni fra più aziende o fra più sedi della stessa azienda, attraverso il Web. Ad esempio si possono avere due aziende partner interessate a mettere a disposizione l una dell altra specifici servizi che si trovano sui propri server, mantenendone però la gestione dell implementazione. I Web Services rendono questo possibile senza doversi preoccupare della compatibilità fra piattaforme, sistemi operativi o linguaggi di programmazione, grazie alla totale indipendenza che questa tecnologia ha rispetto all implementazione del servizio. Un esempio è schematizzato nella figura sottostante dove si ha una cooperazione fra Web Service realizzati su due piattaforme diverse, J2EE (Java 2 Platform, Enterprise Edition) e.net (Microsoft.net). Corso di laurea specialistica in Ingegneria Elettronica 32

41 Figura 2.3 Il vantaggio di una collaborazione di questo tipo fra più aziende non è solo quello di poter avere accesso diretto attraverso la rete a servizi implementati e gestiti da altri ma anche di poterli comporre fra loro, siano essi in locale o in remoto, in modo tale da ottenerne di nuovi che mettano a disposizione nuove funzionalità o che riescano a risolvere problemi di complessità maggiore. Abbiamo visto come possono essere utilizzati i Web Services per interconnettere servizi situati in punti diversi della rete e con caratteristiche differenti. L esempio descritto fa uso di riferimenti ad altri servizi statici; il Client conosce già l indirizzo al quale poter trovare un certo servizio. Può invece accadere di non posseder questa informazione al momento dell implementazione di un servizio; in questo caso un ulteriore agente avrà il compito di fornire, a tempo di esecuzione, questa e altre informazioni. Stiamo parlando del Service Registry e introduciamo così l utilizzo dei Web Services nella realizzazione di un architettura Service-Oriented. Corso di laurea specialistica in Ingegneria Elettronica 33

42 2.2.3 Web Services con Architettura SOA La presenza del Service Registry (o anche Service Directory o Service Broker), di cui si è parlato nel paragrafo 2.1.2, è ciò che rende il sistema, nell esempio di utilizzo dei Web Services visto nel paragrafo precedentemente, un architettura Service-Oriented (SOA). Per implementare il Service Registry i Web Services fanno uso di UDDI, Universal Description, Discovery and Integration. UDDI non è altro che un servizio di registro pubblico in cui le aziende possono pubblicare e cercare Web Services. Esso mantiene informazioni relative ai servizi come l URL e le modalità di accesso dei servizi caricati. Anche UDDI è un Web Service, il quale mette a disposizione due operazioni: Publish, per la registrazione Inquiry, per la ricerca. Si ottiene così quella che oggigiorno è da molti considerata la migliore soluzione per l implementazione di un sistema con architettura Service Oriented. In figura 2.4 è riportata la schematizzazione del funzionamento di un sistema con architettura SOA, realizzato attraverso l uso dei Web Services. Figura 2.4 Corso di laurea specialistica in Ingegneria Elettronica 34

43 2.2.4 Windows Communication Foundation Windows Communication Foundation [5] è una delle quattro componenti della versione 3.0 del.net Framework, che ha il principale scopo di rappresentare i modelli di comunicazione tra sistemi distribuiti. WCF mette assieme le principali tecnologie per la comunicazione (Web Services, Web Services Enhancements (WSE), Remoting, Enterprice Services, MSMQ) fornendo un modello unificato di programmazione per la realizzazione di applicazioni interoperabili, il tutto basato su standard condivisi il che permette lo scambio di informazioni anche tra piattaforme tra loro non eterogenee. In particolare WCF è stato strutturato in modo tale da offrire supporto per tutti gli standard WS-*, cioè per tutte quelle nuove specifiche che sono nate dopo l'avvento dei Web Service, che hanno come fine comune quello di favorire l'interoperabilità tra piattaforme diverse tra loro. Infine, come abbiamo già detto questo nuovo modello unificato di programmazione è stato basato sulle linee guida delle architetture SOA. Ogni servizio WCF ha la medesima struttura basata sui concetti di service class e host application. Figura 2.5 Un servizio è infatti rappresentato da una classe detta appunto classe di servizio, compilata in un'assembly.net, che per essere eseguita va ospitata in applicazioni che fungono da host per il servizio stesso. Tali applicazioni possono essere IIS, WAS, servizi Windows o semplici eseguibili. Per garantire il successo di una comunicazione in un ambiente distribuito, l'applicazione host e i vari client (rispettivamente chi offre e chi consuma il servizio) parlano tra loro attraverso punti di contatto detti endpoint. Corso di laurea specialistica in Ingegneria Elettronica 35

44 Possiamo pensare all'endpoint come a un paradigma logico per spedire e ricevere i messaggi. Ogni endpoint è formato da tre componenti logiche, che rispondono ad altrettante domande (dove? come? cosa?): Address: è parametro che identifica la posizione (location) del servizio: un URI per la comunicazione tra client e servizio condivisa da entrambi, che risponde alla domanda "dove?". All'interno di questo indirizzo è specificato anche il protocollo di comunicazione (HTTP, TCP, etc.). Binding: è uno o più elementi per la configurazione del tipo di protocollo di comunicazione utilizzato e per la specifica di impostazioni aggiuntive e specifiche per il tipo di protocollo scelto. Per ogni tipo di binding è necessario specificare una ben precisa configurazione. Tali oggetti rispondono alla domanda "come?". Contract: rappresenta l'interfaccia esposta dal servizio e condivisa con i vari client, che specifica l'elenco delle operazioni fornite dal servizio stesso. Il contratto risponde alla domanda "cosa?". Si tratta dell'abc di WCF, che ci permette di definire le operazioni e i modi con cui esse sono eseguite. Come è logico, ogni client si interfaccia con un solo endpoint mentre il server ne gestisce diversi con protocolli e modalità differenti. Figura 2.6 Le caratteristiche di ogni singolo endpoint (Address, Binding e Contract), devono essere specificate sia nei file di configurazione dell'applicazione ospite (IIS ad esempio), sia nei file di configurazione dei client. Il Contract è definito nelle service class, in cui si dichiarano: Corso di laurea specialistica in Ingegneria Elettronica 36

45 Le funzionalità fruite Il tipo dei dati trasportati I messaggi utilizzati durante le comunicazioni. Nel file di configurazione quindi specifichiamo quale classe definisce il nostro contratto. Per realizzare un client, dobbiamo creare una classe proxy che rappresenti la service class (lato client) esposta dal servizio WCF (lato server), per poi definire il suo endpoint all'interno del file di configurazione. Nel grafico seguente sono illustrati i livelli principali dell'architettura di Windows Communication Foundation (WCF). Figura 2.5 A. Contratti e descrizioni I contratti definiscono i vari aspetti del sistema del messaggio. Il contratto dati descrive ogni parametro che costituisce ogni messaggio che un servizio può creare o utilizzare. I parametri del messaggio sono definiti da documenti XSD (XML Corso di laurea specialistica in Ingegneria Elettronica 37

46 Schema Definition Language) e consentono a qualsiasi sistema compatibile con XML di elaborare i documenti. Il contratto del messaggio definisce parti specifiche del messaggio utilizzando protocolli SOAP e consente un controllo più preciso delle parti del messaggio laddove tale precisione è richiesta dall'interoperabilità. Il contratto di servizio specifica le firme effettive del metodo del servizio ed è distribuito come interfaccia in uno dei linguaggi di programmazione supportati, ad esempio Visual Basic o Visual C#. I criteri e le associazioni stipulano le condizioni necessarie per la comunicazione con un servizio. L'associazione, ad esempio, deve specificare almeno il trasporto utilizzato (ad esempio HTTP o TCP) e una codifica. I criteri comprendono requisiti di protezione e altre condizioni che devono essere soddisfatte per la comunicazione con un servizio. B. Fase di esecuzione del servizio Il livello della fase di esecuzione del servizio contiene i comportamenti che si verificano solo durante l'operazione effettiva del servizio, ovvero, i comportamenti della fase di esecuzione del servizio. La limitazione delle richieste controlla la quantità dei messaggi elaborati, che può essere variata se la richiesta per il servizio raggiunge un limite preimpostato. Un comportamento dell'errore specifica la situazione che ha luogo quando si verifica un errore interno nel servizio, ad esempio controllando le informazioni comunicate al client (troppe informazioni possono favorire un utente malintenzionato consentendogli di organizzare un attacco). Il comportamento dei metadati stabilisce il modo e l'opportunità di rendere disponibili i metadati al mondo esterno. Il comportamento dell'istanza specifica il numero delle istanze del servizio che possono essere eseguite (ad esempio, un singleton specifica una sola istanza per l'elaborazione di tutti i messaggi). Il comportamento della transazione consente il rollback delle operazioni transazionali in caso di errore. Il comportamento della distribuzione è il controllo del modo in cui un messaggio viene elaborato nell'infrastruttura WCF. L'estendibilità consente la personalizzazione di processi della fase di esecuzione. Il controllo messaggi, ad esempio, è la funzionalità che consente di controllare parti di un messaggio e il filtro parametri consente il verificarsi di azioni preimpostate in base a filtri che agiscono sulle intestazioni del messaggio. Corso di laurea specialistica in Ingegneria Elettronica 38

47 C. Messaggistica Il livello di messaggistica è composto da canali. Un canale è un componente che elabora in vario modo un messaggio, ad esempio autenticandolo. Un insieme di canali, inoltre, è noto come stack di canali. I canali operano su messaggi e intestazioni del messaggio. È un livello diverso dalla fase di esecuzione del servizio, che verte essenzialmente sull'elaborazione del contenuto del corpo del messaggio. Esistono due tipi di canali: canali del trasporto e canali del protocollo. I canali del trasporto leggono e scrivono messaggi dalla rete (o da altri punti di comunicazione con il mondo esterno). Alcuni trasporti utilizzano un codificatore per convertire i messaggi (rappresentati come InfoSet XML) nella/dalla rappresentazione del flusso di byte utilizzata dalla rete. Esempi di trasporti sono HTTP, named pipe, TCP e MSMQ. Esempi di codifiche sono XML e sistema binario ottimizzato. I canali del protocollo implementano protocolli di elaborazione dei messaggi, spesso leggendo o scrivendo intestazioni aggiuntive nel messaggio. Esempi di tali protocolli comprendono WS-Security e WS-Reliability. Il livello di messaggistica illustra i possibili formati e modelli di scambio dei dati. WS-Security è un'implementazione della specifica WS-Security che consente la protezione a livello di messaggio. Il canale WS-Reliable Messaging consente la garanzia di recapito dei messaggi. I codificatori presentano una varietà di codifiche che possono essere utilizzate per soddisfare le esigenze del messaggio. Il canale HTTP specifica che il protocollo di trasporto dell'ipertesto (HyperText Transport Protocol) viene utilizzato per il recapito dei messaggi. Allo stesso modo il canale TCP specifica il protocollo TCP. Il canale del flusso delle transazioni regola modelli di messaggio transazionali. Il canale named pipe consente la comunicazione tra processi. Il canale MSMQ consente l'interazione con applicazioni MSMQ. D. Hosting e attivazione Nella forma finale un servizio è un programma. Come altri programmi, un servizio viene eseguito in un file eseguibile. Si parla in questo caso di servizi indipendenti. I servizi possono inoltre essere ospitati oppure eseguiti in un file eseguibile gestito da un agente esterno, ad esempio IIS o WAS. WAS consente alle applicazioni WCF di essere attivate automaticamente se distribuite in un computer che esegue WAS. I servizi possono inoltre essere eseguiti manualmente come file eseguibili Corso di laurea specialistica in Ingegneria Elettronica 39

48 (file con estensione exe). Un servizio può essere eseguito automaticamente come servizio Windows Esempio di applicazione Una società di autonoleggio decide di creare una nuova applicazione per la prenotazione di automobili. I creatori di questa applicazione sono consapevoli che la logica di business implementata deve essere accessibile ad altri software in esecuzione all'interno e all'esterno della società. Di conseguenza, decidono di crearla in un stile orientato ai servizi, con la logica dell'applicazione esposta ad altri software tramite un insieme ben definito di servizi. Per implementare questi servizi e comunicare quindi con altri software, la nuova applicazione utilizzerà WCF. Figura 2.7 Probabilmente diverse altre applicazioni accederanno a questa applicazione, nel corso del suo ciclo di vita. Al momento della progettazione, tuttavia, gli architetti sono consapevoli che altri tre tipi di software avranno accesso alla logica di business, come illustrato nella figura precedente: Un'applicazione client di servizio clienti in esecuzione sui desktop di Windows utilizzati dai dipendenti nel servizio clienti dell'organizzazione. Creata specificamente per il nuovo sistema di prenotazioni, questa applicazione verrà Corso di laurea specialistica in Ingegneria Elettronica 40

49 inoltre generata utilizzando Microsoft.NET Framework e WCF. Questa applicazione non è veramente distinta dalla nuova applicazione per la prenotazione di auto dell'autonoleggio, poiché il suo unico scopo è fungere da client per il nuovo sistema. Da un punto di vista orientato ai servizi, si tratta solo di un altro client per la logica di business del sistema di prenotazione. Un'applicazione di prenotazione esistente creata in un server J2EE in esecuzione in un sistema non Windows. A causa di una recente fusione con un'altra società di autonoleggio, il sistema esistente deve essere in grado di accedere alla logica della nuova applicazione per fornire ai clienti delle società fuse un'esperienza unificata. Le applicazioni dei partner in esecuzione in diverse piattaforme, ognuna posizionata all'interno di una società che ha un accordo commerciale con la società di autonoleggio. I partner potrebbero includere agenzie di viaggio, compagnie aeree e altre società che hanno la necessità di avvalersi di servizi di prenotazione auto. I diversi requisiti di comunicazione per la nuova applicazione di prenotazione auto non sono semplici. Per le interazioni con l'applicazione client del servizio clienti, ad esempio, le prestazioni sono importanti mentre l'interoperabilità è semplice, poiché entrambe vengono create in.net Framework. Per la comunicazione con l'applicazione di prenotazione esistente basata su J2EE e con le diverse applicazioni dei partner, tuttavia, l'interoperabilità diventa l'obiettivo principale. I requisiti di protezione sono inoltre piuttosto diversi, variando tra applicazioni locali basate su Windows, un'applicazione basata su J2EE in esecuzione in un altro sistema operativo e applicazioni dei partner di vario tipo provenienti da Internet. Anche i requisiti transazionali potrebbero variare, consentendo di effettuare richieste transazionali solo da applicazioni internet. WCF è progettato per questo scenario diversificato ma realistico ed è la tecnologia predefinita per applicazioni Windows che espongono e accedono a servizi. Gli aspetti più importanti di WCF sono tre: Unificazione delle tecnologie di comunicazione.net Framework esistenti. Supporto per interoperabilità tra fornitori, inclusi affidabilità, protezione e transazioni. Orientamento ai servizi esplicito. Corso di laurea specialistica in Ingegneria Elettronica 41

50 In assenza di WCF, il team di sviluppo che implementa l'applicazione di autonoleggio dovrebbe scegliere la tecnologia distribuita corretta tra le numerose opzioni offerte da.net Framework. A causa dei diversi requisiti di questa applicazione, tuttavia, nessuna tecnologia risponderebbe a tali esigenze. L'applicazione, invece, utilizzerebbe probabilmente le numerose tecnologie.net Framework esistenti, ad esempio: Servizi Web ASP.NET (ASMX). Opzione per la comunicazione con l'applicazione di prenotazione esistente basata su J2EE e con le applicazioni dei partner tramite Internet. Dato che i servizi Web di base sono attualmente supportati nella maggior parte delle piattaforme, questa era la modalità più diretta per raggiungere l'interoperabilità tra fornitori prima del rilascio di WCF..NET Framework Remoting. Opzione per la comunicazione con l'applicazione del servizio clienti, poiché entrambe sono basate su.net Framework..Net Remoting è progettato espressamente per la comunicazione.net-to-.net strettamente accoppiata, pertanto offre una possibilità di sviluppo semplice per applicazioni nella rete locale. Enterprise Services. Utilizzato dall'applicazione di prenotazione per la gestione delle durate degli oggetti e per la definizione di transazioni distribuite. Queste funzioni potrebbero essere utili per la comunicazione e per l'integrazione con qualsiasi applicazione descritta in questo scenario, ma Enterprise Services supporta solo un insieme limitato di opzioni di comunicazione. WSE. Potrebbe essere utilizzato insieme ad ASMX per la comunicazione con l'applicazione di prenotazione basata su J2EE e con le applicazioni dei partner. Poiché implementa contratti di servizi Web definiti più recentemente, complessivamente noti come specifiche WS-*, WSE consente una protezione dei servizi Web più flessibile, finché tutte le applicazioni coinvolte supportano versioni compatibili di queste nuove specifiche. Sistema di Accodamento messaggi (MSMQ). Utilizzato per la comunicazione con applicazioni dei partner basate su Windows che richiedono il recapito dei dati garantito così come la separazione delle durate dell'applicazione e dei carichi di lavoro. La messaggistica durevole fornita dal sistema di Accodamento messaggi è in genere la migliore soluzione per applicazioni collegate in modo intermittente. Corso di laurea specialistica in Ingegneria Elettronica 42

51 Basata su.net Framework, l'applicazione di prenotazione auto deve utilizzare più di una di queste tecnologie di comunicazione per soddisfare i requisiti. Sebbene questo sia tecnicamente possibile, l'applicazione risultante sarebbe complessa da implementare e problematica da gestire. Con WCF, la soluzione è molto più facile da implementare. Come illustrato nella figura 2.6, WCF può essere utilizzato per tutte le situazioni precedentemente descritte. Di conseguenza, l'applicazione di prenotazione auto può utilizzare quest'unica tecnologia per tutte le comunicazioni tra applicazioni, infatti Poiché WCF può comunicare tramite servizi Web, l'interoperabilità con altre piattaforme che supportano anche SOAP, ad esempio i server dell'applicazione basati su J2EE, è semplice. E inoltre possibile configurare ed estendere WCF per comunicare con servizi Web utilizzando messaggi non basati su SOAP, ad esempio formati XML semplici come RSS. WCF è sviluppato con l'obiettivo di essere una delle piattaforme di applicazioni distribuite più veloci sviluppate da Microsoft. Per consentire prestazioni ottimali quando entrambe le parti di una comunicazione sono basate su WCF, la codifica di trasmissione utilizzata in questo caso è una versione binaria ottimizzata di un insieme di informazioni XML. I messaggi restano conformi alla struttura dei dati di un messaggio SOAP, ma la loro codifica utilizza una rappresentazione binaria di quella struttura dei dati anziché il formato standard. La gestione della durata degli oggetti, la definizione di transazioni distribuite e altri aspetti di Enterprise Services sono disponibili per qualsiasi applicazione basata su WCF, il che significa che possono essere utilizzate dall'applicazione di prenotazione auto con qualsiasi applicazione con cui essa comunica. Poiché supporta un vasto insieme di specifiche WS-*, WCF consente di fornire affidabilità, protezione e transazioni durante la comunicazione con qualsiasi piattaforma che supporti queste specifiche. L'opzione WCF per la messaggistica in coda, creata nel sistema di Accodamento messaggi, consente alle applicazioni di utilizzare il sistema di accodamento permanente senza utilizzare un altro insieme di interfacce di programmazione per applicazioni. Corso di laurea specialistica in Ingegneria Elettronica 43

52 Il risultato di questa unificazione comporta una maggiore funzionalità e una significativa riduzione della complessità Interoperabilità con altre tecnologie Sebbene WCF introduca un nuovo ambiente di sviluppo per applicazioni distribuite, è progettato per interagire anche con applicazioni non WCF. Esistono due importanti aspetti da considerare per l'interoperabilità di WCF: l'interoperabilità con altre piattaforme e l'interoperabilità con tecnologie Microsoft precedenti a WCF. Nella sezione seguente sarà descritto solo il primo aspetto essendo il secondo di poca rilevanza. Interoperabilità con altre piattaforme di servizi Web Attualmente le aziende dispongono in genere di sistemi e applicazioni acquistati da più fornitori. Nell'applicazione di autonoleggio descritta precedentemente, ad esempio, è necessaria la comunicazione con altre applicazioni software scritte in vari linguaggi e in esecuzione in sistemi operativi diversi. Poiché il meccanismo di comunicazione principale di WCF è costituito da servizi Web basati su SOAP, le applicazioni basate su WCF sono in grado di comunicare con altri software in esecuzione in un'ampia gamma di contesti. Un'applicazione creata in WCF può interagire con tutte le applicazioni seguenti: Applicazioni basate su WCF in esecuzione in un processo diverso nello stesso computer Windows. Applicazioni basate su WCF in esecuzione in un altro computer Windows. Applicazioni basate su altre tecnologie, ad esempio server dell'applicazione J2EE che supportano servizi Web standard. Queste applicazioni possono essere in esecuzione in computer Windows o in computer che eseguono altri sistemi operativi. Per consentire più che una semplice comunicazione di base, WCF implementa le tecnologie di servizi Web definite dalle specifiche WS-*. Tutte queste specifiche sono state definite originariamente dalla collaborazione tra Microsoft, IBM e altri fornitori. Non appena le specifiche diventano stabili, la proprietà spesso viene passata a enti di standardizzazione, ad esempio W3C (World Wide Web Consortium) o OASIS (Organization for the Advancement of Structured Information Standards). Le specifiche si Corso di laurea specialistica in Ingegneria Elettronica 44

53 occupano di diverse aree, incluse messaggistica di base, protezione, affidabilità, transazioni e funzionamento con metadati del servizio. Raggruppate per funzione, queste specifiche includono: Messaggistica: SOAP è la base per servizi Web e definisce un involucro di base che contiene sezioni di intestazione e corpo. WS-Addressing definisce aggiunte all'intestazione SOAP per l'indirizzamento di messaggi SOAP e così consente a SOAP di non basarsi sul protocollo di trasporto sottostante, ad esempio HTTP, per trasferire informazioni di indirizzamento. MTOM (Message Transmission Optimization Mechanism) definisce un formato di trasmissione ottimizzato per messaggi SOAP con contenuto di dati binari di grandi dimensioni basati sulla specifica binaria XOP (XML Optimized Packaging). Metadati: WSDL (Web Services Description Language) definisce un linguaggio standard per la specifica di servizi e di vari aspetti di utilizzo per questi servizi. WS-Policy consente la specifica di aspetti più dinamici del comportamento del servizio che non possono essere espressi in WSDL, ad esempio un'opzione di protezione preferita. WS-MetadataExchange consente a un client di richiedere direttamente informazioni descrittive su un servizio, ad esempio su WSDL e sui criteri, tramite SOAP. Protezione: WS-Security, WS-SecureConversation, WS-Trust e WS-Federation definiscono aggiunte a messaggi SOAP per fornire autenticazione, integrità dei dati, riservatezza dei dati e altre funzionalità di protezione. Affidabilità: WS-Reliable Messaging definisce aggiunte all'intestazione SOAP che consentono comunicazioni end-to-end affidabili anche nel caso in cui sia necessario attraversare uno o più intermediari di servizi Web. Transazioni: basata su WS-Coordination, WS-Atomic Transaction consente di coordinare transazioni con commit a due fasi nel contesto di conversazioni di servizi Web. L'applicazione di prenotazione auto utilizzerebbe probabilmente molte di queste tecnologie più avanzate. WS-Addressing, ad esempio, è essenziale ogni qualvolta SOAP viene utilizzato su un meccanismo di trasporto diverso da HTTP, come nel caso di comunicazione con l'applicazione client di servizi clienti basata su.net Framework. WCF Corso di laurea specialistica in Ingegneria Elettronica 45

54 si basa su WS-Policy e WS-Metadata Exchange per determinare se anche il sistema, con il quale sta comunicando, sta utilizzando WCF e per altre cose. La comunicazione affidabile è essenziale per la maggior parte delle situazioni, pertanto è probabile che WS-Reliable Messaging sia utilizzato per interagire con molte delle altre applicazioni presenti in questo scenario. Analogamente, WS-Security e le specifiche relative potrebbero essere utilizzati per la protezione della comunicazione con una o più applicazioni, perché tutte richiederebbero un certo tipo di protezione contro accessi non autorizzati o contro modifiche e intercettazioni di messaggi. Per le applicazioni che richiedono l'integrazione di transazioni con il sistema di prenotazione auto, WS-Atomic Transaction sarebbe essenziale. Infine, MTOM potrebbe essere utilizzato ogni qualvolta sia necessario un formato wire ottimizzato per dati binari (ad esempio per le immagini della flotta) e se entrambi i lati della comunicazione supportano questa opzione. Il punto importante consiste nel fatto che WCF implementa servizi Web interoperativi completi di protezione, affidabilità, transazioni e altri servizi tra piattaforme diverse. Per fornire la velocità effettiva massima, la comunicazione da WCF a WCF può essere ottimizzata in modo significativo. Tutte le altre comunicazioni utilizzano protocolli di servizi Web standard. Di fatto, è possibile che una singola applicazione esponga i propri servizi a entrambi i tipi di client. 2.3 Progettazione e realizzazione del servizio Come accennato nell introduzione di questo capitolo il primo passo da compiere in vista della realizzazione di un applicazione client di business intelligence basata su un cubo OLAP è la realizzazione di un servizio che assuma il ruolo di intermediario tra il client e la base dati(il cubo) da cui si recuperano le informazioni. Inoltre nei paragrafi precedenti si è discusso circa le caratteristiche che un servizio deve possedere per rispettare i requisiti di un architettura SOA e sono stati illustrati i motivi che favoriscono l utilizzo di WCF per la realizzazione di servizi web. In base a queste considerazioni è stato progettato e in seguito sviluppato un servizio web il cui contratto espone i metodi necessari all estrazione e manipolazione dei dati di un cubo. Il punto di partenza per la realizzazione del servizio è la definizione del contratto. In esso sono dichiarate le funzionalità che il servizio espone verso l esterno; sinteticamente possiamo riassumerle nel seguente modo: Identificazione del cubo mediante l estrazione dei metadati riguardanti i cubi presenti su un server previa autenticazione. Corso di laurea specialistica in Ingegneria Elettronica 46

55 Estrazione degli oggetti di analisi, ossia estrazione della lista delle misure, delle dimensioni, dei kpi e dei relativi membri. Risultato dell interrogazione. Le funzionalità realizzate coprono le possibili richieste di un generico utente, dalle più generali fino a un livello di dettaglio molto alto sul singolo cubo. Non è detto tuttavia che all interno di un singolo progetto esse siano tutte utilizzate: se ad esempio l utilizzatore del servizio conosce tutte le dimensioni di cui ha bisogno potrebbe fare a meno della funzionalità che estrarre la lista di tutte le dimensioni contenute nel cubo e pensare di eliminarla dal contratto. Supponiamo però che il servizio sia utilizzato da un utente che non sa com è composto il cubo: in questo caso il servizio diventa inutilizzabile. Questa situazione rappresenta ovviamente un caso limite, tuttavia serve per esporre il concetto che nella progettazione di un servizio si cerca di coprire per intero il campo di applicazione di tale servizio. In questo modo esso conterrà non solo le funzioni individuate come necessarie per il progetto su cui si sta lavorando ma anche funzioni potenzialmente utilizzabili in altri progetti. Il servizio che ne risulta diventa così un valore aziendale aggiunto, in quanto può essere condiviso con altri gruppi di lavoro sia interni sia esterni all azienda. Figura 2.8 La figura mostra il diagramma del servizio contenente alcune delle funzioni esposte; notiamo che esistono diversi livelli di granularità cui si può scendere. Per le dimensioni ad Corso di laurea specialistica in Ingegneria Elettronica 47

56 esempio possiamo ottenere la lista di quelle disponibili, i membri di una determinata dimensione e la lista delle gerarchie. Terminata la progettazione si può passare all implementazione del servizio. All interno della classe di servizio è stato utilizzato un provider che ricopre il ruolo di ponte con l'origine dati. Tale provider è ADOMD.NET il quale non solo consente di recuperare dati, ma anche di recuperare metadati e di modificare la struttura dell'archivio dei dati analitici. Questo provider consente di ottenere informazioni circa i dati che è possibile estrarre dall origine dati, è possibile ad esempio individuare informazioni quali i tipi di ogni KPI disponibile, le dimensioni in un cubo, quindi possono essere facilmente implementate le funzioni esposte dall interfaccia del servizio. Per ogni funzione esposta il recupero di metadati e di dati è eseguito nel seguente modo: innanzitutto è stabilita una connessione al cubo mediante l'oggetto AdomdConnection. Quando si apre la connessione, l'oggetto AdomdConnection espone metadati relativi al server cui è stata eseguita la connessione; una volta stabilita una connessione, è creato un comando opportuno per le estrazioni di metadati o dati, che è inviato al server; quest'ultimo inizia a restituire i metadati oppure i dati al client. Per usufruire di queste informazioni, sono state create strutture ad hoc capaci di contenere i metadati relativi a misure, dimensioni, gerarchie e kpi e i dati risultanti da una query. In questo modo l applicazione client in seguito all invocazione del servizio riceve una lista contenente le informazioni richieste. Un servizio WCF è rappresentato da una classe, compilata in un'assembly.net, che per essere eseguita va ospitata in applicazioni che fungono da host per il servizio stesso. Per testare il funzionamento del servizio occorre dunque creare un applicazione che funzioni da host. Per questo motivo è stato creato un semplice web site per la visualizzazione dei dati estratti dal cubo con l intento di verificare il corretto funzionamento del servizio e di dare una semplice idea di quanto si può fare per la visualizzazione dei dati. Questa applicazione host utilizza tutte le funzionalità esposte dal servizio proponendo un possibile modo di utilizzo. Il layout di tale applicazione è il seguente: Corso di laurea specialistica in Ingegneria Elettronica 48

57 Figura 2.9 Al caricamento è compilata la lista dei cubi presenti sull istanza di Analisys Services presente sulla macchina; i metadati del primo cubo della lista sono poi utilizzati per caricare le liste delle misure e delle dimensioni. Nel caso mostrato in figura notiamo che rimane vuota la lista dei KPI, ciò è dovuto al fatto che per il cubo selezionato non sono stati definiti degli indici di prestazione. È possibile inoltre interrogare il cubo mediante la creazione guidata di una query MDX, attraverso la selezione di una misura dall elenco e di una o due dimensioni. Il risultato dell interrogazione è ribaltato su una tabella consultabile che si presenta nel seguente modo: Figura 2.10 Corso di laurea specialistica in Ingegneria Elettronica 49

58 Per agevolare la consultazione dei dati è stata inserita anche la funzione di filtro rispetto alle dimensioni selezionate: Figura 2.11 Inoltre è stata inserita la possibilità di visualizzare graficamente i dati numerici ottenuti attraverso la libreria grafica Visifire: cliccando sull header di una riga o una colonna si possono ottenere i relativi grafici con tanto di menu di selezione del grafico più gradito. Figura 2.12 Corso di laurea specialistica in Ingegneria Elettronica 50

59 Come si può notare dalle immagini l applicazione creata è piuttosto banale, tuttavia è utile per capire se il servizio è stato progettato e implementato correttamente. Creare un applicazione che utilizza il servizio aiuta a capire se mancano funzioni utili che devono essere esposte o se ve ne sono alcune che invece non servono; inoltre si può capire se i dati estratti sono corretti, e dunque capire se l implementazione delle funzioni all interno del servizio è corretta. Corso di laurea specialistica in Ingegneria Elettronica 51

60 Capitolo 3 Nascita ed evoluzione del progetto Il progetto nasce internamente a Cassa Edile di Milano dall esigenza di poter verificare e di avere una chiara visione dell andamento delle varie attività svolte all interno dell ente nonché di conoscere in anticipo il risultato economico. Il risultato si pone l obiettivo di divenire uno strumento di consultazione per i vertici di cassa edile che potranno così avere una chiara conoscenza dell andamento dei vari settori, per i responsabili dei centri di responsabilità interni che potranno intervenire con azioni correttive qualora necessarie nonché uno strumento di informazione per gli utenti dei servizi che potranno monitorare il lavoro svolto dall ente nei loro confronti. L idea fondamentale è dunque quella di avere uno strumento flessibile che riesca a monitorare tutte le attività svolte da Cassa Edile. Servizi ai Lavoratori Produttività Servizi alle Imprese Servizio Ispettivo Cruscotto di Controllo Recupero Crediti Gestione Finanziaria Customer Satisfaction Figura 3.1 Servizi vari Gesione Corrente Gestione Pregresso Rendimenti finanziari Reclami Pratiche non evase Corso di laurea specialistica in Ingegneria Elettronica 52

61 Il progetto prevede perciò la raccolta e l analisi di un insieme di dati, sia economicofinanziari sia di altra natura per evidenziare i principali eventi e l andamento degli stessi al fine di facilitare l assunzione di decisioni strategiche. I requisiti progettuali legati ai sistemi a disposizioni dell ente hanno pesato sulla decisione di realizzare un software custom, in altre parole sviluppato ad hoc; infatti le funzionalità richieste per il sistema da produrre erano tali da non permettere la customizzazione di sistemi esistenti. Si propone dunque di implementare uno strumento di verifica dell andamento della gestione a supporto delle decisioni aziendali il cui sviluppo è affidato a T Bridge e in particolare è condotto nell ambito di questa tesi. Il flusso di lavoro proposto dai responsabili di Cassa Edile prevedeva che una volta individuate le misure da presidiare il gruppo di lavoro definsse: Le metriche per il calcolo degli indicatori: unità di misura, periodo di riferimento, fonte dei dati, calendario di estrazione dei dati dal sistema informativo; La responsabilità di gestione dello strumento ossia le persone responsabili dell estrazione dei dati, della raccolta degli stessi, del calcolo degli indicatori, dell analisi degli indicatori e della correlazione con gli stessi con gli eventi organizzativi o di mercato; La riclassificazione degli indicatori in funzione di dimensioni e processi chiave (qualità, efficacia, efficienza, destinatario del servizio, etc.); Il processo di gestione del sistema di controllo, ossia com è avviato il processo, con quale frequenza i dati sono condivisi con i responsabili dei centri di responsabilità, con quale frequenza e modalità sono condivisi con direzione e presidenza; I target di riferimento, ossia i valori obiettivo e il range di accettabilità di ciascun indicatore; Il processo di monitoraggio del sistema, ossia come responsabilizzare i referenti dei centri si responsabilità al raggiungimento dei target anche attraverso il presidio periodico dell andamento degli indicatori e la definizione di azioni correttive e di miglioramento; Le modalità per una prima elaborazione (manuale) del cruscotto per testarne solidità e affidabilità. Corso di laurea specialistica in Ingegneria Elettronica 53

62 Il processo di sviluppo utilizzato si ispira in realtà alla metodologia iterativa a spirale, essendo stato condizionato principalmente da due fattori: La necessità di rispettare vincoli tempistici (un prototipo consistente doveva essere presentato entro fine Luglio), che ha comportato la scelta di soluzioni che garantissero massima efficienza e massima rapidità; La scarsa dimestichezza del gruppo di lavoro di Cassa Edile con strumenti di monitoraggio di questo tipo. Si può affermare, dunque, che lo sviluppo del software è andato di pari passo con l individuazione e la definizione delle misure d interesse e degli indicatori da monitorare, in questo modo ogni modulo sviluppato è frutto di più verifiche e aggiustamenti. In particolare si può articolare il progetto nelle seguenti fasi: 1. Analisi globale 2. Analisi integrativa e di dettaglio 3. Design 4. Sviluppo 5. Test 6. Collaudo/Validazione 7. Rilascio Le fasi dalla tre alla sei tranne l analisi integrativa sono iterative, cioè si ripetono più volte a seguito di modifiche, correzioni o nuove richieste da parte del cliente; questo dovuto sia all individuazione in corso d opera di nuovi processi da monitorare sia all eliminazione di alcuni indicatori che, una volta estratti, sono stati poco significativi. Schematicamente il processo di sviluppo può essere rappresentato come segue: Corso di laurea specialistica in Ingegneria Elettronica 54

63 Figura Analisi Globale La fase di analisi globale ha come scopo inquadrare le richieste del cliente, il dominio applicativo e le caratteristiche che dovrà avere il prodotto. Quindi comprende tutte le attività necessarie a caratterizzare il progetto in modo generale, definendone le funzionalità richieste, i vincoli di sviluppo, i requisiti, il tipo di utenti etc. e parte subito dopo il primo contatto commerciale. Questa fase corrisponde dunque al requirements engineering, ossia un processo atto all individuazione dei requisiti del progetto; essa si è sviluppata attraverso diverse riunioni con il responsabile IT di Cassa Edile e i responsabili del progetto. Ovviamente più aumentava il dettaglio delle informazioni necessarie a chiarire gli aspetti del sistema, più scendeva il livello degli interlocutori fino ad arrivare ai singoli capoufficio. In questo modo è stato possibile comprendere meglio i meccanismi interni dell ente e suggerire soluzioni più appropriate al fine di raggiungere gli obiettivi prefissati. I requisiti individuati sono sostanzialmente di due tipi, funzionali e non funzionali, e si articolano su tre livelli (business, user e functional). I requisiti di tipo funzionale identificano le funzionalità del sistema e i servizi che deve offrire; quelli di tipo non funzionale invece non sono collegati direttamente alle funzioni implementate dal sistema ma alle modalità operative e di gestione e definiscono vincoli sullo sviluppo del sistema. I Corso di laurea specialistica in Ingegneria Elettronica 55

64 requisiti di livello business identificano gli obiettivi di alto livello dell organizzazione che ha richiesto il sistema e corrispondono a quelli descritti all inizio di questo capitolo. I requisiti di livello user descrivono gli obiettivi degli utenti di sistema, in altre parole le operazioni che questi devono essere in grado di eseguire attraverso l uso del sistema. Infine i requisiti di livello Functional specificano le funzionalità che gli sviluppatori devono implementare per soddisfare i requisiti di livello Business. L analisi globale si termina con la produzione di un documento in cui sono dettagliate le seguenti informazioni: Descrizione generale delle funzionalità del sistema; Tipologie di utenti e problematiche; Obiettivi lato utente; Vincoli; Descrizione di ogni funzionalità. 3.2 Analisi integrativa e di dettaglio Per ogni modulo individuato nella figura 3.1 è stata ripetuta la fase di analisi in modo da integrare le informazioni ottenute dall analisi globale e specificare nel dettaglio le funzionalità del modulo. Attraverso riunioni con il responsabile IT e i capi ufficio relativi a ogni singolo modulo sono state acquisite maggiori conoscenze concernenti ogni modulo in modo tale da assumere una conoscenza adeguata per gestire le casistiche riguardanti ogni ufficio. Essenzialmente nell analisi integrativa si verifica che non ci siano stati errori o gravi mancanze nel documento prodotto nell analisi globale relativamente al modulo in questione. L analisi di dettaglio invece approfondisce le caratteristiche del modulo e produce un documento che ne descrive in modo dettagliato le funzionalità e le caratteristiche principali. Corso di laurea specialistica in Ingegneria Elettronica 56

65 Servizi ai lavoratori Liquidazioni Malattia e infortunio Prestazioni A.P.E. Cartella Importo Importo Stato delle prestazioni Numero di liquidazioni Numero di lavoratori Tempo medio di liquidazione... Figura 3.3 In figura 3.3 è riportato un primo approccio all analisi di dettaglio e in particolare è approfondito il modulo riguardante i servizi messi a disposizione ai lavoratori. Ogni classe di servizio individuata è soggetta a una nuova analisi, compiuta con il capo ufficio responsabile, al fine di individuare non solo gli indicatori più opportuni a monitorare l andamento dell ufficio ma anche gli attori coinvolti, le attività, gli obiettivi di business, le features e la specifica dei dati. In questo modo al termine dell analisi sono disponibili tutti gli elementi necessari allo sviluppo software del modulo. 3.3 Design Il design non è altro che l unione tra lo schema di base dell architettura realizzato durante la progettazione e le conoscenze specifiche di ogni modulo acquisite dai responsabili degli uffici: sono fatte modifiche allo schema di base nel caso un modulo debba interfacciarsi con altri elementi non previsti o abbia particolari necessità. Il design una volta prodotto non è vincolante, infatti l iterazione con il cliente continua durante tutta l implementazione e questo può portare a modifiche e revisioni al design. Una volta prodotto il design e condiviso con il responsabile del progetto si può passare all implementazione. Corso di laurea specialistica in Ingegneria Elettronica 57

66 3.4 Sviluppo, test, collaudo e rilascio Nella fase di sviluppo sono implementati i moduli richiesti dal cliente. L implementazione avviene all interno del framework.net: esso è un componente integrante di Windows che supporta lo sviluppo e l esecuzione di applicazioni client, per dispositivi mobili, servizi web, applicazioni client-server, etc. Alla base di tale componente vi sono diverse tecnologie, strettamente accoppiate tra loro, il cui obiettivo è fornire un ambiente di programmazione orientato agli oggetti che consenta una grande versatilità attraverso tipi molto vari di applicazioni, quali applicazioni Windows e applicazioni basate sul web. C# è una delle tecnologie che costituiscono il framework.net e si può affermare che sia stato creato appositamente per esso. È un linguaggio orientato agli oggetti che consente di creare un ampia gamma di applicazioni sulla piattaforma.net. È possibile utilizzare C# per creare applicazioni Windows tradizionali, servizi web, applicazioni client-server, applicazioni di database e molto altro ancora. Essendo un linguaggio orientato agli oggetti, C# supporta i concetti d incapsulamento, ereditarietà e polimorfismo. Per le sue caratteristiche di versatilità e facile integrazione con altri elementi C# è il linguaggio che è stato utilizzato nello sviluppo. Scelto il linguaggio di programmazione, il software sviluppato deve anche essere, in ordine di priorità: Robusto, cioè fornire sempre i risultati attesi; Sicuro, cioè non deve essere soggetto ad attacchi; Usabile, cioè facilmente utilizzabile sia dall utente finale sia dagli sviluppatori; Scalabile, cioè il sistema deve essere in grado di crescere o decrescere facilmente; Efficiente; Riutilizzabile, cioè il codice deve essere sufficientemente generico; Manutenibile, cioè permettere di contenere i costi di aggiornamento; Facile da sviluppare, cioè deve permettere di contenere i costi e i tempi di sviluppo. Questa fase è ovviamente la più importante e quella che richiede più tempo, infatti risulta essere la più iterativa del progetto a causa della metodologia di lavoro seguita: a ogni riunione di riepilogo (2/3 ogni mese) sono mostrati i risultati ottenuti a fronte delle considerazioni fatte nelle riunioni precedenti, è verificato il comportamento del modulo sviluppato e a partire dai dati ottenuti si fanno nuove considerazioni e le funzionalità che erano state richieste in fase di analisi si possono essere modificate. Del software sviluppato si parlerà comunque in seguito entrando nel dettaglio dei moduli realizzati. Corso di laurea specialistica in Ingegneria Elettronica 58

67 Per quanto riguarda la fase di test essa si sovrappone alla fase di sviluppo ed è condotta in parti uguali sia dal cliente sia dallo sviluppatore: da parte sua lo sviluppatore verifica che il modulo presenti le funzionalità richieste controllando che il comportamento sia corretto. Superata la fase di test interna il modulo è rilasciato sul server di test del cliente che deve effettuare i suoi controlli e validare il modulo. In questa fase rientra anche la verifica dati: lo sviluppatore come detto verifica che il modulo abbia le funzioni richieste e che il prodotto risulti sufficientemente accessibile al generico utente, tuttavia non ha le competenze necessarie per validare il dato visualizzato. Per validare il dato è necessario che esso sia verificato da una persona competente designata dal cliente. Qualora vi siano delle incongruenze è necessario ripercorrere dall inizio la strada intrapresa per il recupero del dato e scovare la causa dell errore. Non sempre è facile capire la causa di un errore: essa può risiedere nella procedura utilizzata oppure nel dato contenuto nel sistema informativo. Questa fase è molto delicata soprattutto se si tiene conto che i dati non saranno di semplice consultazione interna ma potranno essere riportati anche all esterno dell ente, e dunque si deve avere la certezza del dato. Una volta accettato il modulo è rilasciato sul server di produzione e costantemente monitorato in modo da verificare che l utilizzo non dia problemi. Corso di laurea specialistica in Ingegneria Elettronica 59

68 Capitolo 4 Realizzazione del sistema Nel capitolo precedente è stata discussa la metodologia di lavoro descrivendo le varie fasi necessarie al completamento del progetto. Tra le più importanti è stata menzionata la fase di sviluppo software, la quale occupa la maggior parte del tempo di progetto e costituisce il cuore dell attività svolta. Obiettivo di questa fase è la realizzazione di un software che implementi il cruscotto direzionale visualizzando graficamente gli indici di prestazione e le misure opportunamente filtrare definite nelle precedenti fasi di analisi del progetto. Possiamo quindi dividere lo sviluppo del software in due parti: Creazione di un cubo contenente gli indici, le misure e le dimensioni definite nella fase di analisi e basato sui dati contenuti nei sistemi informativi presenti in Cassa Edile; Realizzazione di un applicazione grafica che consenta la visualizzazione dei dati estratti dal cubo. Nell ambito di questa tesi non è tuttavia sviluppato l intero progetto causa la complessità e l elevato numero di attività che Cassa Edile vuole monitorare all interno del cruscotto; quanto realizzato è la base del sistema che in seguito sarà ampliato con tutte le funzionalità previste. Gli unici moduli presi in considerazione sono il modulo Prestazioni, inerente ai servizi ai lavoratori, e il modulo di Recupero Crediti. Il cubo conterrà dunque solo le misure e le dimensioni che si riferiscono a essi. 4.1 Realizzazione del cubo Il primo passo verso la realizzazione del cruscotto vero e proprio è stato la creazione di un cubo contenente quanto necessario per monitorare in modo sufficientemente dettagliato i processi riguardanti le Prestazioni e il Recupero Crediti [7]. Scendiamo allora nel dettaglio delle procedure legate a questi moduli. Le prestazioni sono rimborsi che il lavoratore richiede a Cassa Edile a fronte di eventi particolari avvenuti nel corso del cosiddetto anno edile (1 Ottobre- 30 Settembre). Il diritto alle prestazioni in favore del lavoratore matura a condizione che il lavoratore al momento della presentazione della domanda sia dipendente di un impresa iscritta a Cassa Edile e sia stato effettuato in suo favore l accantonamento per almeno 1800 o 500 ore di lavoro ordinario nei dodici o nei tre mesi antecedenti la data Corso di laurea specialistica in Ingegneria Elettronica 60

69 dell evento. Il diritto al rimborso può essere esteso anche al coniuge o ai figli fisicamente a carico qualora il lavoratore sia iscritto da almeno tre anni alla Cassa Edile e siano state accantonate almeno 1800 ore di lavoro ordinario nell ultimo anno. Le prestazioni si distinguono inoltre diverse categorie quali Prestazioni Assistenziali, Borse di Studio, Malattia e Infortunio, Cartella, A.P.E., etc. e per ogni categoria sono previsti comportamenti differenti. Per quanto concerne il recupero crediti esso riguarda invece le imprese, e in particolar modo le imprese inadempienti. Un impresa risulta inadempiente nel momento in cui non versa alla Cassa Edile i contributi relativi alle ore di lavoro denunciate per i propri lavoratori in particolare il meccanismo funziona in questo modo: Entro il giorno quindici del mese corrente un impresa deve fornire la denuncia delle ore lavorate da ogni suo dipendente per quanto riguarda il mese precedente; Una volta effettuata la denuncia, un impresa ha tempo fino al trenta del mese per pagare i contributi ai lavoratori; Il giorno dieci del mese successivo Cassa Edile controlla quanto ogni impresa doveva e quanto ha versato (un impresa ad esempio potrebbe pagare solo una parte del suo debito). Nel caso un impresa non abbia versato quanto dovuto, essa diventa soggetto del Recupero Crediti. L azione del recupero crediti consiste nel sollecitare il pagamento all impresa attraverso telefonate e visite ispettive; passato un anno dalla nascita del debito se l impresa è ancora inadempiente essa non è più soggetta a recupero crediti ma diventa soggetta ad azione legale per il recupero del debito. A tale procedura inoltre si affiancano diverse eccezioni, ad esempio vi possono essere denuncie tardive, piano di rientro (una sorta di pagherò emesso dalle imprese), etc. I pagamenti delle imprese soggette a recupero crediti in ultima analisi avvengono in modi diversi: il metodo ufficiale di pagamento è attraverso un apposito bollettino emesso da Cassa Edile chiamato bollettino freccia ; altri pagamenti possono avvenire in seguito all insistente azione del recupero crediti sotto forma di assegno o bonifico bancario. Da quanto appena esposto si capisce subito che la progettazione del cubo non è del tutto banale, considerando che la maggior parte delle informazioni non è disponibile pulita nei sistemi informativi cui si fa riferimento (CRM, database) ma deve essere ottenuta attraverso query costruite ad hoc. Nei prossimi paragrafi sarà affrontato non il procedimento per la creazione di misure e dimensioni, già accennato Corso di laurea specialistica in Ingegneria Elettronica 61

70 nel primo capitolo, ma esse saranno individuate e saranno fatte alcune considerazioni sul loro utilizzo per i due moduli appena descritti Prestazioni In questo modulo si vuole monitorare l andamento delle prestazioni erogate da Cassa Edile ai lavoratori aventi diritto. Per questo scopo sono state individuate diverse misure: Numero di domande ricevute Numero di prestazioni erogate Numero di prestazioni liquidate Importi erogati Numero di lavoratori iscritti Tempo medio di liquidazione Le misure appena individuate forniscono già un idea precisa dell andamento del servizio offerto da Cassa Edile, utile sia internamente, per valutare la bontà delle decisioni prese, sia esternamente. Ad esempio il tempo medio di liquidazione da un riscontro immediato su come si sono evoluti i processi di gestione delle prestazioni, il numero di domande pervenute fornisce un idea di come il servizio è stato pubblicizzato tra i lavoratori, il rapporto tra prestazioni ricevute e prestazioni liquidate può dare un idea di come sta lavorando l ufficio e così via. Riflessioni ancora più interessanti si possono fare in seguito all introduzione delle dimensioni. Oltre alla dimensione temporale, che è ovviamente comune a tutte le misure, ve ne sono altre che danno particolari spunti di analisi dei dati: Stato delle prestazioni Fascia d età dei lavoratori richiedenti Provenienza dei lavoratori Tipo d impresa del lavoratore Tipo di prestazione A queste di carattere generale se ne affiancano alcune più particolari, come ad esempio la modalità di pagamento per gli importi erogati e le prestazioni liquidate e la modalità d inserimento per le domande ricevute. Le dimensioni appena elencate sono molto importanti per le considerazioni che si possono trarre incrociando le misure definite in precedenza con esse. Consideriamo, per esempio, le domande ricevute. Come detto in precedenza tale valore ci informa circa la conoscenza del servizio tra i lavoratori, più alto è Corso di laurea specialistica in Ingegneria Elettronica 62

71 tale valore più l attività di propaganda effettuata nei confronti dei lavoratori è stata efficace. Supponiamo che tale valore sia abbastanza alto nel 2009, i vertici di Cassa Edile potrebbero accontentarsi dell obiettivo raggiunto. Tuttavia aggiungendo l informazione della provenienza dei lavoratori richiedenti si ottiene che chi ha fatto richiesta per le prestazioni sono per il 90% italiani. Con questa informazione si può scegliere di rafforzare la propaganda in lingua straniera in modo da coinvolgere un numero ancora maggiore di lavoratori. Utilizzando ancora la stessa misura si vuol verificare se gli investimenti fatti per dare la possibilità a un lavoratore di fare richiesta telematicamente per le prestazioni sono stati utili. Incrociando il dato con la corrispondente dimensione si possono valutare gli andamenti delle domande pervenute in forma cartacea agli sportelli e in via telematica e trarre le conclusioni. Quelli riportati sono solo alcuni esempi che però fanno capire l importanza di uno strumento di questo tipo e sottolineano ancor più l importanza di un attenta analisi dei dati forniti, come già affermato nel capitolo precedente Recupero crediti Il modulo di recupero crediti presenta maggiori difficoltà d implementazione rispetto a quello di prestazioni per il particolare comportamento che i dati assumono nell evoluzione dei processi. Basti pensare che i dati che si riferiscono a un determinato mese compariranno solo al termine dei due mesi successivi e tale dato può subire modifiche, come già detto, a causa ad esempio di denuncie tardive. Inoltre il dato riguardante un impresa sparisce senza lasciare traccia una volta saldato il debito da parte dell impresa sia passato un anno dal sorgere del debito, entrando nel processo di recupero per via legale. Dunque le difficoltà incontrate nello sviluppo sono state principalmente quelle relative al recupero del dato. Le misure definite per questo modulo hanno il compito di mettere in luce la situazione contabile delle imprese iscritte a Cassa Edile e verificare l azione del recupero crediti nel confronto di quelle inadempienti; tra esse abbiamo: Importi dovuti dalle imprese Importi versati dalle imprese Importo del debito Importo recupero attraverso recupero crediti Importi recuperati con bollettini freccia Corso di laurea specialistica in Ingegneria Elettronica 63

72 Dalla analisi di queste semplici misure si può stabilire l efficacia del recupero crediti confrontando l importo del debito con l importo recuperato. Questa misura cambia in modo discontinuo a causa di denuncie tardive oppure per il pagamento da parte di un impresa. Per questi motivi il cubo deve essere aggiornato con una buona regolarità in modo da avere sempre dati attendibili. Per quanto riguarda le dimensioni di analisi esse riguardano solo il tempo: in particolare si possono distinguere due dimensioni temporali quella della competenza (relativa alla data in cui è nato il debito per ogni azienda) e quella della cassa (ossia quando il debito è stato pagato); si hanno dunque due differenti analisi: la prima riguarda la competenza e in particolare si applica al confronto tra importi dovuti e versati e al confronto tra importo debito e importo recuperato, poiché per essi è d interesse sapere il risultato per quanto concerne il periodo in cui è nato il debito; la seconda riguarda la cassa e si applica ai pagamenti effettuati dalle imprese tramite bollettino freccia (le altre forme di pagamento non sono monitorate). La seconda analisi comunque riconducibile alla prima, infatti è possibile indagare il cubo fino a ottenere la competenza dei versamenti effettuati ossia capire come i versamenti sono stati spalmati per coprire i debiti delle imprese Validazione del cubo Terminata l individuazione delle tabelle e delle viste presenti sulle origini dati per la creazione delle misure e delle dimensioni necessarie può essere effettuato il deploy del cubo su il server di test. Se questo processo va a buon fine vuol dire che almeno da un punto di vista sintattico il lavoro svolto è corretto. Graficamente la struttura logica del cubo si presenta come in figura 4.1. Corso di laurea specialistica in Ingegneria Elettronica 64

73 Figura 4.1 In giallo sono mostrate le tabelle dei fatti e ognuna di esse corrisponde a una o più misure tra quelle elencate in precedenza. In blu invece sono visualizzate le tabelle delle dimensioni. Andando a seguire i collegamenti tra misure e dimensioni è possibile capire quali dimensioni possono essere utilizzate per filtrare le informazioni di una determinata misura. Come detto a questo punto il cubo è corretto solo da un punto di vista sintattico; è necessaria una validazione dei dati esposti che in genere avviene attraverso una consultazione con il responsabile di Cassa Edile, il quale ha la sensibilità per verificare i dati. Una volta che i dati esposti dal cubo sono corretti essi possono essere visualizzati attraverso il cruscotto. 4.2 Realizzazione del Cruscotto Una volta realizzato il cubo contenete le informazioni necessarie all analisi e il meccanismo per l estrazione dei dati dal cubo attraverso il servizio web, è stato necessario costruire un applicazione per la visualizzazione dei dati. Quest applicazione deve rispettare essenzialmente tre requisiti: Corso di laurea specialistica in Ingegneria Elettronica 65

74 deve essere sufficientemente immediata, ossia i dati devono essere visualizzati in modo che il loro significato sia chiaro già a un primo sguardo; deve essere veloce, cioè i tempi di risposta devono essere brevi; deve essere accessibile, cioè avere una struttura che ne consenta una facile navigazione. Esistono molte strade per creare un applicazione che soddisfi tali requisiti. Occorre considerare che quest applicazione deve essere utilizzata sia da utenti interni a Cassa Edile sia da utenti esterni che vogliono monitorare il lavoro svolto dall ente, dunque la soluzione più facile è creare un applicazione web. Essa dovrà consentire l accesso ai lavoratori attraverso un qualunque browser e sistema operativo e inoltre dovrà provvedere alla visualizzazione grafica dei dati. Tra le molte tecnologie che permettono di sviluppare applicazioni web con tali requisiti è stato scelto di utilizzare Silverlight Silverlight e XAML Microsoft Silverlight [8] è un'implementazione di.net Framework utilizzabile su più piattaforme e browser per la compilazione di contenuti e servizi multimediali e applicazioni interattive avanzate per il Web. Silverlight unisce alla potenza di Windows Presentation Foundation (WPF, un programma per l implementazione grafica delle interfacce) le funzionalità del server, del Web e del desktop, del codice gestito e dei linguaggi dinamici, nonché della programmazione dichiarativa e tradizionale. Silverlight consente di creare un'applicazione all'avanguardia dotata delle funzionalità seguenti: Si tratta di una tecnologia utilizzabile su più piattaforme e più browser. È eseguibile in tutti i browser più noti, tra cui Microsoft Internet Explorer, Mozilla Firefox e Apple Safari e in Microsoft Windows e Apple MAC OS X. A prescindere dalla piattaforma su cui è eseguito, Silverlight offre sempre un'esperienza di utilizzo conforme e coerente. È supportato da un download molto piccolo installabile in pochi secondi. Gestisce flussi video e audio. È in grado di adattare la qualità video ai dispositivi mobili e ai browser desktop fino alle modalità video HDTV 720p. Include grafica accattivante che gli utenti possono modificare, in altre parole trascinare, capovolgere, ingrandire o ridurre, direttamente nel browser. Corso di laurea specialistica in Ingegneria Elettronica 66

75 Legge dati e aggiorna la visualizzazione, ma non interrompe l'utente aggiornando l'intera pagina. Gli sviluppatori Web e i grafici possono creare applicazioni basate su Silverlight in molti modi diversi. È possibile utilizzare il markup di Silverlight per creare supporti e grafica e modificarli con linguaggi dinamici e codice gestito. Silverlight consente inoltre di utilizzare strumenti molto professionali come Visual Studio per la codifica e Microsoft Expression Blend per il layout e la progettazione grafica. Silverlight combina più tecnologie in una sola piattaforma di sviluppo che consente di selezionare gli strumenti e il linguaggio di programmazione più appropriati in base alle specifiche esigenze. In particolare questa tecnologia offre le seguenti funzionalità: Include un sottoinsieme della tecnologia Windows Presentation Foundation (WPF) che estende gli elementi nel browser per la creazione di interfacce utente. WPF consente di creare grafica, animazioni, supporti e altre funzionalità client avanzate, estendendo l'interfaccia utente basata sul browser oltre a quanto disponibile con il linguaggio HTML. Il codice XAML (Extensible Application Markup Language) fornisce una sintassi di markup dichiarativa per la creazione di elementi. Estensioni a Java Script. Silverlight fornisce estensioni al linguaggio di script del browser universale che consentono il controllo sull'interfaccia utente del browser, inclusa la possibilità di utilizzare elementi WPF. Supporto di più browser e più piattaforme. Silverlight è eseguito allo stesso modo in tutti i browser più comuni (su qualsiasi piattaforma). È possibile progettare e sviluppare l'applicazione senza doversi preoccupare del browser o della piattaforma di cui dispongono gli utenti. Integrazione con applicazioni esistenti. Silverlight si integra perfettamente con il codice Java Script e AJAX ASP.NET esistente a complemento delle funzionalità già disponibili. È possibile creare risorse basate su server in ASP.NET e utilizzare le funzionalità AJAX di ASP.NET per interagire con le risorse basate su server senza interrompere l'utente. Accesso al modello di programmazione di.net Framework e agli strumenti associati. È possibile creare applicazioni basate su Silverlight utilizzando linguaggi dinamici quali IronPython e linguaggi come C# e Visual Basic. È possibile Corso di laurea specialistica in Ingegneria Elettronica 67

76 utilizzare strumenti di sviluppo come Visual Studio per creare applicazioni basate su Silverlight. Supporto di rete. Silverlight include il supporto per HTTP su TCP. È possibile connettersi ai servizi WCF, SOAP o AJAX ASP.NET e ricevere dati XML, JSON o RSS. LINQ. In Silverlight è disponibile Language Integrated Query (LINQ) che consente di programmare l'accesso ai dati utilizzando una sintassi nativa intuitiva e oggetti molto tipizzati nei linguaggi.net Framework. Le applicazioni basate su Silverlight sono eseguite nel browser. Grazie a Silverlight, è possibile eseguire le proprie applicazioni in tutti i browser più recenti, senza dovere creare codice specifico. Per eseguire un'applicazione basata su Silverlight, gli utenti devono installare un piccolo plug-in nei loro browser. Il plug-in è disponibile gratuitamente. Se gli utenti non hanno il plug-in, è loro richiesto di installarlo. Il download e l'installazione richiedono alcuni secondi e l'utente non deve fare altro che dare l'autorizzazione. È possibile creare applicazioni basate su Silverlight utilizzando qualsiasi linguaggio supportato da.net Framework, inclusi Visual Basic, C# e Java Script. Visual Studio 2008 ed Expression Blend forniscono il supporto necessario per lo sviluppo delle applicazioni Silverlight. Con Silverlight, è possibile creare pagine Web che utilizzano sia elementi HTML sia WPF. Analogamente al codice HTML, il codice XAML consente di creare interfacce utente per l'applicazione basata sul Web con sintassi dichiarativa, la sola differenza è che XAML fornisce elementi molto più avanzati e funzionali. Silverlight non rappresenta però solo un'area di disegno per la visualizzazione di contenuti Web e multimediali da parte degli utenti finali. È anche una piattaforma potente ma leggera per lo sviluppo di applicazioni portabili, per più piattaforme e di rete che integrano dati e servizi di numerose origini. Mentre l'ambiente di runtime di Silverlight sul lato client è semplice e compatto, la piattaforma di sviluppo integra numerose funzionalità e tecnologie complesse, rendendole accessibili agli sviluppatori. Per creare applicazioni efficaci basate su Silverlight, gli sviluppatori devono avere una certa competenza per quanto riguarda l'architettura della piattaforma. Nel suo complesso la piattaforma Silverlight si compone di due parti principali, oltre a un programma di installazione e a un componente per l'aggiornamento. Nella figura seguente sono illustrati questi componenti dell'architettura di Silverlight, insieme agli elementi e ai servizi correlati. Corso di laurea specialistica in Ingegneria Elettronica 68

77 Figura 4.2 Il set di strumenti, tecnologie e servizi inclusi nella piattaforma Silverlight semplificano la creazione di applicazioni di rete complete e interattive da parte degli sviluppatori. Sebbene sia sicuramente possibile compilare tali applicazioni utilizzando le tecnologie e gli strumenti Web attualmente disponibili, gli sviluppatori si trovano ad affrontare numerose difficoltà tecniche, come la presenza di piattaforme non compatibili, formati di file e protocolli diversi e numerosi Web browser che eseguono il rendering delle pagine e gestiscono gli script in modi diversi. Un'applicazione Web completa eseguita perfettamente in un sistema e in un browser potrebbe funzionare in modo molto diverso in un altro sistema o browser oppure non funzionare del tutto. Utilizzando l'ampia gamma di strumenti, protocolli e tecnologie attualmente disponibili è spesso difficile e dispendioso compilare un'applicazione che possa offrire tutti i vantaggi seguenti: Corso di laurea specialistica in Ingegneria Elettronica 69

78 Possibilità di offrire la stessa esperienza utente in diversi browser e piattaforme, in modo che l'applicazione abbia lo stesso aspetto e le stesse caratteristiche indipendentemente da dove è eseguita. Integrazione di dati e servizi da più percorsi di rete in un'applicazione utilizzando funzionalità e classi.net Framework familiari. Interfaccia utente accessibile, accattivante e con supporto multimediale completo. Silverlight semplifica la compilazione di tali applicazioni perché consente di superare numerosi problemi di compatibilità tra le tecnologie correnti e fornisce in un'unica piattaforma gli strumenti per la creazione di applicazioni complete e integrate adatte a più piattaforme.. NET Framework per Silverlight è un sottoinsieme della versione completa di.net Framework. Fornisce gli elementi di base per lo sviluppo di applicazioni affidabili e orientate a oggetti per tipi di applicazioni, ad esempio applicazioni Internet, per cui non è tradizionalmente disponibile questo tipo di supporto. Gli sviluppatori possono interagire con.net Framework per il livello Silverlight scrivendo codice gestito utilizzando C# e Visual Basic. Gli sviluppatori.net Framework possono anche accedere al livello di presentazione eseguendo le attività di creazione in Visual Studio 2008 o in Microsoft Expression Blend. Microsoft Expression Blend può essere utilizzato per creare e modificare il livello di presentazione di un'applicazione modificando i controlli e l'area di disegno XAML, utilizzando gli elementi grafici e programmando il livello di presentazione con un linguaggio dinamico come Java Script. Visual Studio invece fornisce strumenti di produttività per lo sviluppo di applicazioni tramite codice gestito. Tutte le funzionalità esistenti di Visual Studio sono disponibili per Silverlight I moduli del prototipo Come visto in precedenza nel prototipo sviluppato nell ambito di questa tesi sono stati presi in considerazione solo due moduli e in particolare prestazioni e recupero crediti. Per ognuno di essi occorre progettare una pagina all interno della quale visualizzare i dati in modo tale da rispettare i requisiti elencati in precedenza. Per mostrare le soluzioni adottate saranno considerati i due moduli separatamente e sarà fatta una breve analisi delle scelte compiute. Per quanto concerne le prestazioni in precedenza sono state elencate le misure che si intende monitorare con il cruscotto. Ognuna di queste misure dovrà dunque essere Corso di laurea specialistica in Ingegneria Elettronica 70

79 nel modo più appropriato. Per questo motivo la selezione della misura da visualizzare è stata affidata a un TabControl. Figura 4.3 Un TabControl è un controllo che crea delle etichette, selezionando le quali è possibile cambiare il contenuto della pagina sottostante. In questo modo è sufficiente aggiungere al controllo tante etichette quante sono le misure da monitorare e assegnare ad ognuna di esse un nome coerente con la misura. A questo punto resta solo da progettare la visualizzazione di ogni misura. Per quanto riguarda le di prestazioni erogate da Cassa Edile è stato deciso di visualizzarne solo il numero. Esso però viene analizzato in quattro modi differenti: andamento negli ultimi cinque anni, andamento annuale filtrato su una dimensione, andamento mensile dell anno selezionato confrontato con l andamento mensile dell anno precedente e andamento di un mese selezionato filtrato su una dimensione. Figura 4.4 La visualizzazione è molto semplice ma immediata: per esempio si nota subito che nel 2008 vi è stato un calo delle domande erogate oppure che a Luglio 2009 vi sono molte prestazioni sospese, cioè in attesa di liquidazione. Il motivo di queste situazioni non può essere compreso dal cruscotto; tuttavia il cruscotto mette in moto il meccanismo di verifica evidenziando queste anomalie alle persone competenti le quali potranno se necessario informarsi sulle cause. La struttura della pagina appena vista resta immutata per quanto riguarda il numero di prestazioni liquidate e gli importi erogati infatti queste misure hanno le stesse caratteristiche. Corso di laurea specialistica in Ingegneria Elettronica 71

80 Figura 4.5 Un approccio diverso deve essere fatto per il numero di domande pervenute e il tempo medio di liquidazione. Le domande pervenute sono interessanti principalmente per due fattori oltre al numero: il metodo d inserimento (cartaceo o telematico) e l autenticazione al sito di Cassa Edile nel caso d inserimento telematico (se autenticato è il lavoratore a fare domanda attraverso il sito altrimenti è generalmente il sindacato cui il lavoratore è iscritto a fare domanda per lui). Questi due indicatori sono di particolare interesse perché fanno capire se gli investimenti che sono stati fatti hanno avuto un buon impatto sul metodo d iterazione dei lavoratori con l ente. Figura 4.6 Viene dunque proposto l andamento del numero di domande pervenute annualmente negli ultimi cinque anni, il confronto per l anno selezionato tra domande pervenute in forma cartacea presso lo sportello e quelle pervenute telematicamente e l autenticazione per le domande telematiche. Infine per quanto riguarda il tempo medio ovviamente è necessario Corso di laurea specialistica in Ingegneria Elettronica 72

81 un unico grafico di riassunto annuale che al più consenta di scendere fino al dettaglio mensile per un anno selezionato. Figura 4.7 Consideriamo ora il modulo di recupero crediti. In precedenza abbiamo discusso circa le misure definite per monitorare l andamento delle attività di questo modulo. A differenza delle prestazioni però se si considerano le singole misure del recupero crediti difficilmente si possono fare delle considerazioni. Per avere dei dati significativi si devono visualizzare i confronti tra misure; in particolare i confronti proposti riguardano la differenza tra l importo che le imprese dovevano versare (al momento della denuncia) e l importo realmente versato, la quale fornisce un idea del debito residuo delle imprese, e la differenza tra il debito accumulato dalle imprese e quanto è stato recuperato da recupero crediti, la quale fornisce un idea dell efficacia del modulo. Per queste misure è stato scelto di visualizzare semplicemente il confronto su base annua e mensile per l anno selezionato. Figura 4.8 Corso di laurea specialistica in Ingegneria Elettronica 73

82 È importante rilevare che i dati per alcune misure sono limitati ai primi mesi del 2009, questo perché non esisteva prima di allora un archivio storico per memorizzare tali dati, e dunque è possibile avere dei riscontri solo su tale anno. Tuttavia si può notare che già con questi pochi valori è trarre alcune conclusioni, ad esempio è possibile affermare che la capacità del recupero crediti si attesti intorno al 50% come mostrato dal confronto riportato in figura 4.8. Figura 4.9 In ultimo vengono visualizzati anche i dati relativi ai bollettini freccia; per questo indicatore sono stati resi disponibili sia i dati di cassa sia quelli di competenza. In particolare a partire dall andamento per cassa negli ultimi anni è possibile selezionare un anno e visualizzare per ogni mese quanto è stato versato con i bollettini freccia. Selezionando poi l importo versato in un determinato mese è possibile vedere la competenza annuale di tale versamento; infine selezionando l anno di competenza è possibile visualizzare la competenza mensile di tale anno. Corso di laurea specialistica in Ingegneria Elettronica 74

83 4.3 Il risultato finale Figura 4.10 Nei paragrafi precedenti sono state prese in analisi le pagine concernenti i moduli di recupero crediti e prestazioni. Queste pagine sono frutto dell analisi di dettaglio dei moduli considerati e come mostrato visualizzano graficamente le misure d interesse. L ultimo passaggio per completare il cruscotto è inserire le pagine create per ogni modulo all interno di un sistema coerente che ne garantisca una facile e intuitiva gestione e offra alcune funzionalità per la navigazione all utente. Il sistema creato ha il seguente aspetto: Figura 4.11 Lo spazio è stato suddiviso in tre aree principali: In alto lo spazio è riservato al logo dell ente; Corso di laurea specialistica in Ingegneria Elettronica 75

84 A sinistra risiede un menu di selezione che consente di navigare tra i vari moduli disponibili; A destra lo spazio è interamente dedicato alla visualizzazione dei moduli. Il menù di selezione del modulo è una delle parti più importanti dell applicazione e consente l esplorazione completa dei vari moduli. Grazie alla struttura dei moduli presenti in Cassa Edile è stato possibile crearne una suddivisione logica e utilizzare il linguaggio di marcatura XML per descrivere il contenuto del menù rendendo automatico il suo processo di costruzione. In particolare sono state individuate delle categorie radice, che rappresentano i singoli moduli, le quali racchiudono sottocategorie o elementi foglia : nel caso del modulo prestazioni ad esempio la radice è costituita dal nodo Prestazioni il quale contiene i nodi foglia relativi alle singole prestazioni o sottocategorie come per esempio le borse di studio che si suddividono a loro volta in borse di studio universitarie, borse di studio per ingegneria civile e borse di studio per le scuole secondarie. Figura 4.12 Corso di laurea specialistica in Ingegneria Elettronica 76

85 Sfruttando questa tecnica oltre alla creazione automatica del menù, che non fa altro che basarsi sulla lettura dei singoli nodi contenuti nel file XML, è stato possibile progettare un modo per la creazione dinamica delle pagine. Consideriamo il modulo delle Prestazioni. All interno di questo modulo si vogliono visualizzare sia gli indicatori generali, che comprendono tutti i tipi di prestazione, sia gli indicatori relativi alle singole tipologie di prestazione. La soluzione più banale è creare una pagina per ogni tipologia di prestazione in modo che a ogni voce del menù corrisponda una pagina differente. In questo modo però è necessario creare un numero enorme di pagine e se per qualche motivo in futuro sarà aggiunta una nuova voce bisognerà creare una nuova pagina da zero. Il sistema così creato è poco scalabile. Sfruttando le caratteristiche di XML è stata sviluppata una soluzione notevolmente migliore. Infatti, nella creazione del documento XML, è possibile aggiungere delle informazioni a ogni nodo dell albero sottoforma di attributi. L idea è quella di aggiungere un attributo che consenta di individuare il tipo di prestazione corrispondente al nodo; in questo modo ogni nodo dell albero che rappresenta una prestazione avrà anche l attributo per dire di quale prestazione si tratta. Il cubo creato in precedenza riesce a distinguere le tipologie di prestazione in base ad un codice memorizzato nelle tabelle del database sottostante. Quindi ponendo il valore dell attributo nel file XML uguale al valore memorizzato nel cubo per ogni prestazione è possibile ottenere una corrispondenza biunivoca. In questo non è più necessario creare una pagina per ogni prestazioni, ma un unico template di pagina che sarà inizializzato ogni volta che è selezionato un nodo del menù attraverso il passaggio dell attributo contenuto nel file XML. A ogni nuova selezione è creata dinamicamente una nuova pagina corrispondente alla prestazione identificata dal codice memorizzato nel file XML passato nell inizializzazione. Il menù di selezione prevede inoltre la possibilità di eseguire una ricerca sui nodi presenti. Inserendo delle parole chiave per la ricerca nell apposito spazio il menù è automaticamente ricostruito in modo da visualizzare solo le voci che contengono la chiave di ricerca immessa. Questa funzione sfrutta lo stesso meccanismo descritto in precedenza: nella costruzione del file XML è aggiunto un tag contenente le possibili chiavi di ricerca per ogni nodo. In questo modo quando il sistema rileva che il contenuto dello spazio di ricerca è cambiato ricostruisce il menù visualizzando solo i nodi che hanno una corrispondenza sulla chiave immessa. Corso di laurea specialistica in Ingegneria Elettronica 77

86 Figura 4.13 Un ulteriore funzione sviluppata con questo metodo è la visualizzazione del titolo di ogni pagina, necessario per capire a cosa si riferiscono i dati visualizzati. Figura 4.14 Come si può intuire l utilizzo di XML consente di progettare molte altre funzionalità per il sistema attraverso la definizione di proprietà. Il sistema non risente del vincolo introdotto dalla definizione statica di tali proprietà giacché esse corrispondono a caratteristiche del sistema che si suppone non debbano mutare nel tempo; anche nel caso di una loro variazione lo sforzo per adeguarle è minimo e corrisponde alla correzione del file XML mentre il codice sottostante resta immutato. La seconda regione di spazio individuata è adibita alla visualizzazione delle pagine che si riferiscono ai moduli. In essa sono rese disponibili alcune funzioni che sono comuni a tutte le pagine visualizzabili per facilitare la consultazione dell utente. Una delle funzioni più importanti riguarda la possibilità di selezionare la dimensione di analisi del dato. Corso di laurea specialistica in Ingegneria Elettronica 78

87 Figura 4.15 Come spiegato in precedenza è molto importante poter filtrare i dati secondo diverse dimensioni per poter così avere una visione completa della situazione inerente la misura in esame. Selezionando una dimensione da questo menù è automaticamente impostato il filtro corrispondente alla misura in analisi. Le dimensioni disponibili nel menù possono essere diverse in relazione alla misura che si sta considerando poiché solo alcune dimensioni sono significative per una determinata misura. Per questo motivo il menù del filtro è aggiornato ogni volta che cambia la misura selezionata. Un altra funzione molto importante riguarda la possibilità di visualizzare attraverso tooltip le informazioni numeriche associate a ogni grafico: Figura 4.16 Corso di laurea specialistica in Ingegneria Elettronica 79

88 A ogni tipologia di misura è associato un particolare formato di visualizzazione in modo che la comprensione sia facilitata; ad esempio nel caso degli importi erogati la formattazione prevede l aggiunta della valuta e della punteggiatura. Un ultima funzione è stata sviluppata ma non ancora inserita nel progetto a titolo definitivo in attesa di specifiche dettagliate: essa riguarda la possibilità di visualizzare i dati numerici cui si riferiscono i grafici in una tabella. Figura 4.17 La tabella per com è costruita consente di esportare facilmente i dati riassuntivi contenuti nel cruscotto sotto forma di file Excel o pdf, per citare i più comuni formati di esportazione e tale funzione può essere molto utile. Con questa funzione la struttura del cruscotto è completa e offre da un lato la possibilità di capire intuitivamente l andamento dei processi monitorati attraverso la visualizzazione grafica e dall altro consente di scendere nel dettaglio numerico per un analisi più approfondita. Corso di laurea specialistica in Ingegneria Elettronica 80

89 Capitolo 5 QlikView La soluzione adottata nello svolgimento di questa tesi per la realizzazione del cruscotto aziendale è solo una delle possibili strade da intraprendere ed è legata a una particolare tecnologia. L industria della Business Intelligence offre molteplici soluzioni per la creazione di applicazioni di analisi e controllo. Di recente questa industria sta attraversando un momento di radicale cambiamento guidato da alcune organizzazioni definite da Gartner "visionarie". L impatto maggiore arriva dalle tecniche di analisi e reporting in-memory che portano semplicità, flessibilità e scalabilità anche nei progetti di Business Intelligence più ambiziosi, con il risultato di uno sviluppo più rapido di soluzioni analitiche molto scalabili ed efficaci a una frazione del costo delle soluzioni tradizionali di BI. 5.1 Caratteristiche di QlikView QlikView [9] è un azienda leader mondiale nelle tecniche di analisi in-memory ed è riconosciuta come la piattaforma di Business Intelligence con il più rapido tasso di diffusione al mondo. Essa propone una nuova classe di soluzioni analitiche facili da utilizzare, veloci e flessibili che supporta gli individui nel miglioramento delle prestazioni delle organizzazioni nelle quali operano e nel governo dell innovazione e del cambiamento. QlikView utilizza un innovativa tecnologia associativa brevettata, che elabora dinamicamente i dati in memoria, per rendere più semplice lo sviluppo, l utilizzo e la manutenzione di applicazioni di analisi e reporting. Questo prodotto è stato sviluppato partendo da una semplice premessa: l analisi dovrebbe funzionare come la mente umana ossia per associazione. L associazione è il concetto che rispecchia più da vicino il percorso della mente umana, un percorso che non segue un criterio lineare, ma si muove per associazioni. Per raggiungere l obiettivo di analisi associativa, QlikView carica tutti i dati nella memoria e definisce delle metriche a mano a mano che l utente esegue le selezioni. Questo processo è chiamato "analisi in-memory". Il modello associativo dei dati gestito in memoria di QlikView consente la visione integrata delle informazioni mediante cruscotti, analisi ad hoc e report, con un unico strumento. Questo modello permette di analizzare i dati sia a livello aggregato sia di massimo dettaglio senza lo spreco di tempo dovuto alla costosa costruzione di cubi OLAP Corso di laurea specialistica in Ingegneria Elettronica 81

90 multidimensionali. In aggiunta le associazioni fra i dati sono mappate automaticamente in QlikView e rispondono istantaneamente alle selezioni dell utente. Siccome i dati risiedono in memoria, i tempi di risposta di qualsiasi calcolo si mantengono eccezionalmente rapidi anche su set di dati molto estesi e se analizzati contemporaneamente da molti utenti. QlikView fornisce tutte le funzionalità dei tradizionali strumenti di business intelligence in un unica architettura. Include funzioni di ETL per estrarre, trasformare e caricare dati da una o più sorgenti di dati combinate (dati ERP, di testo, Excel, XML, ecc.). Lo sviluppo in QlikView è facilitato da funzioni guidate (autocomposizioni) ampiamente esplicative. L interfaccia utente è basata sull uso del mouse e fornisce funzionalità di rappresentazione visiva all avanguardia, includendo cruscotti, diversi tipi di grafici e tabelle navigabili. Gli utenti possono trovare velocemente le informazioni di cui necessitano e possono condividere i risultati con i loro colleghi utilizzando apposite funzioni di condivisione, report, stampe e tramite la completa integrazione con Office. Tutte queste funzionalità sono state sviluppate all interno di un unica architettura, in questo modo gli strumenti della suite QlikView si adattano perfettamente alle differenti necessità dei diversi ruoli aziendali. Questo approccio inoltre rende QlikView molto veloce da implementare. L uso di un architettura integrata inoltre rende QlikView estremamente flessibile ma anche facilmente personalizzabile ed aggiornabile, riducendo il costo di possesso delle applicazioni analitiche proprietarie. QlikView supporta nativamente moltissime dimensioni e qualsiasi valore di qualsiasi dimensione o misura può diventare il punto di partenza di un analisi. Le modifiche o le integrazioni alle dimensioni e alle misure delle applicazioni possono essere fatte velocemente e questo rende facile rispondere alle mutabili esigenze analitiche aziendali. Gli utenti non sono vincolati da strutture gerarchiche rigidamente predefinite poiché tutti i dati sono portati in memoria e i calcoli sono effettuati al momento della richiesta e non a priori dunque possono trarre notevoli benefici. Dal momento che i dati non devono essere pre-aggregati, gli utenti possono dinamicamente analizzare l intero volume di dati, fino al livello della singola transazione. La piattaforma QlikView si integra agevolmente con l infrastruttura esistente di un organizzazione rendendo quindi estremamente facile e veloce raggiungere l operatività. Le analisi effettuate sono rese accessibili attraverso tecnologie web, fornendo interattività, flessibilità e velocità all interfaccia utente di QlikView. La piattaforma BI di QlikView offre un ampia gamma di opzioni di distribuzione, dai client Windows fino a Java e alle Corso di laurea specialistica in Ingegneria Elettronica 82

91 applicazioni zero-footprint AJAX: con un singolo click del mouse QlikView può essere installato su tutte queste piattaforme. Dipendenti, fornitori e clienti possono connettersi al server QlikView utilizzando un browser Web standard senza dover rinunciare all uso delle svariate funzionalità interattive che caratterizza l interfaccia grafica di analisi di QlikView. Sfruttando le tecniche Web più avanzate, il client AJAX QlikView fornisce un ambiente analitico molto dinamico, interattivo e rapidamente installabile senza occupare memoria. Il client JAVA QlikView offre un alternativa graficamente valida per l integrazione di report e analisi all interno di portali o ambienti intranet basati su Java. QlikView offre inoltre un client plug-in ActiveX per l integrazione con Office. Il calcolo in memoria introduce ovviamente un collo di bottiglia per le prestazioni delle soluzioni realizzate con questo prodotto, infatti, per ottenere delle buone prestazioni, occorre avere sistemi dotati di molta memoria RAM: tra i requisiti di sistema si può leggere che al minimo sono necessari 2 Gb di RAM ma la capacità realmente necessaria per un buon funzionamento è legata alla mole di dati che ha in carico il sistema. Tuttavia l introduzione delle piattaforme hardware a 64bit con processori multi-core a basso consumo in combinazione con la precipitosa caduta nel prezzo delle memorie ha permesso di incrementare la scalabilità e le prestazioni di QlikView venendo incontro anche alle esigenze delle organizzazioni più complesse. Oggi QlikView gestisce centinaia di migliaia di utenti e miliardi di record di dati, con il livello di dettaglio sulla singola transazione, con prestazioni quasi istantanee di query lavorando su hardware standard. Con queste performance QlikView costituisce una robusta piattaforma per la business analysis rivolta non solo all impresa, ma anche alle reti dei clienti, fornitori e distributori fornendo soluzioni in una vasta gamma di aree funzionali quali vendite, marketing, supply chain e produzione, finanza e risorse umane. 5.2 Esempio di utilizzo Creare un applicazione con QlikView è molto più veloce che svilupparla con altri software, infatti: Non è necessario generare strutture predefinite o cubi multidimensionali; Non sono necessari complessi studi sulla disposizione dei dati e le nuove applicazioni sono facilmente generabili e modificabili; Il database di QlikView è associativo e non è limitato dalla struttura predefinita dei database originali. Corso di laurea specialistica in Ingegneria Elettronica 83

92 Queste funzionalità si basano su una tecnologia brevettata chiamata Associative Query Logic (AQL): il collegamento tra i dati provenienti dalle diverse sorgenti è basato semplicemente sul nome dei campi; basta assegnare lo stesso nome a campi diversi perché sia effettuata un operazione di join tra di essi. I dati sono trattati contestualmente alla loro importazione e memorizzati in maniera associativa su un database proprietario, non gerarchico e non relazionale ma lineare. Durante il caricamento dei dati sono utilizzati degli algoritmi di compressione per ridurre mediamente lo spazio di occupazione di un ordine di grandezza. I join tra i dati, ossia le operazioni che consentono l analisi degli indicatori secondo diverse operazioni, sono risolti sempre al momento del click di selezione della dimensione in modo dinamico. Nella terminologia di QlikView gli oggetti prodotti sono chiamati documenti: la costruzione di un applicazione di business intelligence attraverso QlikView passa attraverso la definizione di uno o più documenti, ai quali sono associati i dati su cui basare l analisi. Ogni documento rappresenta una vista dinamica sulla base dati e contiene: Regole di accesso e caricamento dei dati : ODBC o OLE-DB, XML, file di testo o Excel; Metodi di compressione da utilizzare; Collegamenti tra le varie basi dati e le selezioni o parzializzazioni da effettuare sui dati a livello di campi o record; Istruzioni e funzioni di elaborazione, trattamento, aggregazione, calcolo, formattazione ed eventualmente generazione dei dati; Security, cioè il controllo degli accessi al documento e le regole di personalizzazione dei dati in base all utente; Layout di presentazione di dati e oggetti grafici per navigare e analizzare dinamicamente i dati stessi; Istruzioni per l integrazione con altri applicativi dell utente. Corso di laurea specialistica in Ingegneria Elettronica 84

93 Figura 5.1 La fase di recupero dei dati è eseguita scrivendo ed eseguendo uno script, nel quale sono specificati il database, le tabelle e i campi da utilizzare. Questo script può essere generato automaticamente con gli strumenti inclusi in QlikView. Occorre specificare che QlikView stesso non è un database; non sarà quindi possibile aggiungere nuovi dati a un database o alterare i dati in un database con QlikView. L interfaccia si presenta nel seguente modo: Corso di laurea specialistica in Ingegneria Elettronica 85

94 Figura 5.2 In essa possono essere inseriti manualmente i comandi da eseguire nello script o utilizzare gli wizard disponibili. Nello script in mostrato in figura 5.2 sono estratti i dati concernenti le prestazioni per fornire un confronto con quanto fatto in precedenza con il cubo multidimensionale. Una volta caricato lo script si ottiene il seguente documento: Figura 5.3 Corso di laurea specialistica in Ingegneria Elettronica 86

95 Come si può notare la grafica è molto grezza, tuttavia contiene già tutti gli elementi necessari alle analisi. Cliccando su una qualsiasi informazione presente in un elenco sono evidenziate informazioni collegate nelle altre caselle di elenco, ad esempio selezionando l anno 2009 sono evidenziati i mesi dell anno in cui è stata fatta richiesta di almeno una prestazione, i tipi di prestazioni richieste, lo stato, etc. L analisi può avvenire già con queste sole informazioni di base e si vede subito quanto sia flessibile e di facile utilizzo questo strumento. Tuttavia è possibile organizzare meglio i dati e rendere disponibili ulteriori informazioni. Innanzitutto è possibile migliorare la visualizzazione creando degli stili all interno dei quali possono essere definiti i colori dell interfaccia, lo spessore dei bordi etc. Inoltre i dati possono essere visualizzati attraverso diversi tipi di grafici, aggregati secondo strutture predefinite (ad esempio somma e conteggio) o costruite dall utente, filtrati secondo diverse dimensioni, etc. Figura 5.4 Il lavoro di recupero dati compiuto per la realizzazione del cubo può essere dunque adattato a QlikView in modo tale da rendere disponibile come sorgente dati del documento la vista dati del cubo stesso. Da un punto di vista operativo l unico procedimento sarebbe di creare diversi fogli di lavoro ognuno dei quali che si riferisce a uno dei processi di Cassa Edile e contenente caselle di elenco e grafici riguardanti gli indicatori individuati per quel Corso di laurea specialistica in Ingegneria Elettronica 87

96 modulo. Le analisi sono sicuramente più facili e lo strumento consente di avere già a disposizione le principali funzionalità di esportazione dei dati. Inoltre le analisi possono essere molto più flessibili rispetto a quanto implementato nell arco di questa tesi infatti le analisi non sono rigidamente definite a priori ma create dall utente al momento della consultazione del documento. L applicazione finale è simile alla seguente: Figura 5.5 Tuttavia si paga il prezzo della flessibilità di QlikView dal punto di vista delle prestazioni: come già accennato, occorre un sistema dotato di una buona capacità di memoria per eseguire delle analisi in memoria velocemente. Se la mole dati è eccessiva per la memoria a disposizione l analisi dei dati occupa troppo spazio con conseguente rallentamento di tutto il sistema e calo notevole delle prestazioni. Nel caso affrontato in questa tesi, i sistemi a disposizione dell ente non sono sufficientemente aggiornati e la mole dei dati da analizzare è troppo elevata per ottenere delle buone prestazioni attraverso le analisi in memoria di QlikView. Per questi motivi dopo una prima di fase di test compiuti con un prototipo realizzato con QlikView, è stato scelto di utilizzare la tecnologia OLAP per la realizzazione del cruscotto sebbene essa offra un analisi più rigida. Corso di laurea specialistica in Ingegneria Elettronica 88

97 Capitolo 6 - Conclusioni Il lavoro svolto ha portato alla realizzazione di un prototipo di cruscotto direzionale funzionante contenente le informazioni riguardanti i moduli di Recupero Crediti e Prestazioni. Esso è basato su due moduli software distinti sviluppati nell ambito di questa tesi. Il primo è costituito da un cubo multidimensionale il quale si occupa dell estrazione dei dati dai sistemi informativi di Cassa Edile al fine di fornire le analisi necessarie al cruscotto. Il secondo modulo è costituito da un applicazione web che sfrutta silverlight per la creazione dell interfaccia grafica e servizi WCF, progettati all interno di un architettura SOA, per il recupero dei dati dal cubo. La realizzazione del progetto ha seguito diversi passi. In primo luogo è stata condotta con il responsabile IT di Cassa Edile un analisi globale al fine di individuare gli obiettivi del cruscotto in via del tutto generale e i requisiti funzionali e non funzionali del progetto. In seguito all analisi globale sono stati approfonditi i temi dei singoli moduli rientranti nel prototipo attraverso un analisi di dettaglio affrontata con i responsabili dei singoli centri di responsabilità interni all ente in modo da individuare effettivamente gli indicatori necessari e per ogni indicatore il metodo di estrazione e trattamento del dato grezzo dai sistemi informativi. Dopo i necessari aggiustamenti alle specifiche, compiuti nella fase di Design per venire incontro alle esigenze di sviluppo, si è proceduto con l implementazione dei moduli software cui si è accennato in precedenza attraverso l ambiente di sviluppo Microsoft Visual Studio 2008 e utilizzando il linguaggio di programmazione C#. Infine il risultato ottenuto è stato sottoposto a una fase di testing presso il cliente allo scopo di individuare eventuali malfunzionamenti o comportamenti inaspettati. Superata la fase di testing il prototipo è stato presentato alla direzione di Cassa Edile la quale ha approvato il lavoro svolto e dato il via libera al completamento del progetto. Il progetto definitivo comprenderà quanto mostrato in figura 6.1. Corso di laurea specialistica in Ingegneria Elettronica 89

98 Servizi ai Lavoratori Produttività Servizi alle Imprese Servizio Ispettivo Cruscotto di Controllo Recupero Crediti Gestione Finanziaria Customer Satisfaction Servizi vari Gesione Corrente Gestione Pregresso Rendimenti finanziari Reclami Pratiche non evase Figura 6.1 Per ogni elemento foglia del diagramma mostrato sarà eseguita un analisi di dettaglio in modo da individuare gli indicatori necessari a monitorare l andamento dei moduli concernenti essi. Alle analisi riguardanti i moduli individuati dal diagramma sarà inoltre eseguita un analisi a più alto livello in modo da poter estrarre indicatori che si riferiscono all andamento generale dell ente Cassa Edile che forniranno un quadro riassuntivo a partire dal quale attraverso future funzioni di drilldown sarà possibile scendere nel dettaglio dei singoli moduli. Inoltre sono previste nuove funzionalità per l iterazione dell utente con il cruscotto; tra esse ricordiamo: La visualizzazione in forma tabellare dei dati concernenti gli indicatori mostrati. L esportazione dei dati in diversi formati tra cui Excel, pdf, etc. Infine è prevista una rivoluzione dell interfaccia grafica del cruscotto per poter meglio suddividere le macro attività interne a Cassa Edile da monitorare. L idea è la seguente: Corso di laurea specialistica in Ingegneria Elettronica 90

99 Figura 6.2 Rispetto al prototipo sviluppato nell arco di questa tesi lo spazio sarà ripartito in tre regioni: a sinistra resta il menù di selezione, a destra è lasciato lo spazio per la visualizzazione delle pagine riguardanti i moduli, mentre in alto è aggiunto un TabControl le cui etichette corrispondono ai macromoduli (servizi ai lavoratori, servizi alle imprese, etc.) evidenziati in figura 6.1. In questo modo le attività monitorate saranno divise per categoria e sarà possibile navigare con più facilità all interno del cruscotto. Corso di laurea specialistica in Ingegneria Elettronica 91

Introduzione ad OLAP (On-Line Analytical Processing)

Introduzione ad OLAP (On-Line Analytical Processing) Introduzione ad OLAP (On-Line Analytical Processing) Metodi e Modelli per il Supporto alle Decisioni 2002 Dipartimento di Informatica Sistemistica e Telematica (Dist) Il termine OLAP e l acronimo di On-Line

Dettagli

Data Warehousing e Data Mining

Data Warehousing e Data Mining Università degli Studi di Firenze Dipartimento di Sistemi e Informatica A.A. 2011-2012 I primi passi Data Warehousing e Data Mining Parte 2 Docente: Alessandro Gori a.gori@unifi.it OLTP vs. OLAP OLTP vs.

Dettagli

Relazione sul data warehouse e sul data mining

Relazione sul data warehouse e sul data mining Relazione sul data warehouse e sul data mining INTRODUZIONE Inquadrando il sistema informativo aziendale automatizzato come costituito dall insieme delle risorse messe a disposizione della tecnologia,

Dettagli

Data warehousing Mario Guarracino Data Mining a.a. 2010/2011

Data warehousing Mario Guarracino Data Mining a.a. 2010/2011 Data warehousing Introduzione A partire dagli anni novanta è risultato chiaro che i database per i DSS e le analisi di business intelligence vanno separati da quelli operazionali. In questa lezione vedremo

Dettagli

Data warehousing Mario Guarracino Laboratorio di Sistemi Informativi Aziendali a.a. 2006/2007

Data warehousing Mario Guarracino Laboratorio di Sistemi Informativi Aziendali a.a. 2006/2007 Data warehousing Introduzione A partire dalla metà degli anni novanta è risultato chiaro che i database per i DSS e le analisi di business intelligence vanno separati da quelli operazionali. In questa

Dettagli

Introduzione alla Business Intelligence. E-mail: infobusiness@zucchetti.it

Introduzione alla Business Intelligence. E-mail: infobusiness@zucchetti.it Introduzione alla Business Intelligence E-mail: infobusiness@zucchetti.it Introduzione alla Business Intelligence Introduzione Definizione di Business Intelligence: insieme di processi per raccogliere

Dettagli

Sistemi Informativi Aziendali I

Sistemi Informativi Aziendali I Modulo 6 Sistemi Informativi Aziendali I 1 Corso Sistemi Informativi Aziendali I - Modulo 6 Modulo 6 Integrare verso l alto e supportare Managers e Dirigenti nell Impresa: Decisioni più informate; Decisioni

Dettagli

DATA WAREHOUSING CON JASPERSOFT BI SUITE

DATA WAREHOUSING CON JASPERSOFT BI SUITE UNIVERSITÁ DEGLI STUDI DI MODENA E REGGIO EMILIA Dipartimento di Ingegneria di Enzo Ferrari Corso di Laurea Magistrale in Ingegneria Informatica (270/04) DATA WAREHOUSING CON JASPERSOFT BI SUITE Relatore

Dettagli

Architettura dei sistemi di database

Architettura dei sistemi di database 2 Architettura dei sistemi di database 1 Introduzione Come si potrà ben capire, l architettura perfetta non esiste, così come non è sensato credere che esista una sola architettura in grado di risolvere

Dettagli

Supporto alle decisioni e strategie commerciali/mercati/prodotti/forza vendita;

Supporto alle decisioni e strategie commerciali/mercati/prodotti/forza vendita; .netbin. è un potentissimo strumento SVILUPPATO DA GIEMME INFORMATICA di analisi dei dati con esposizione dei dati in forma numerica e grafica con un interfaccia visuale di facile utilizzo, organizzata

Dettagli

Data warehousing con SQL Server

Data warehousing con SQL Server Data warehousing con SQL Server! SQL Server è un RDBMS (Relational DataBase Management System)! Analysis Services è un componente di SQL Server che offre un insieme di funzionalità di supporto al data

Dettagli

Sistemi per le decisioni Dai sistemi gestionali ai sistemi di governo

Sistemi per le decisioni Dai sistemi gestionali ai sistemi di governo Sistemi per le decisioni Dai sistemi gestionali ai sistemi di governo Obiettivi. Presentare l evoluzione dei sistemi informativi: da supporto alla operatività a supporto al momento decisionale Definire

Dettagli

Sviluppo Applicazione di BI/DWH. con tecnologia Microsoft. per il supporto della catena logistica

Sviluppo Applicazione di BI/DWH. con tecnologia Microsoft. per il supporto della catena logistica UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Dipartimento di Ingegneria Enzo Ferrari di Modena Corso di Laurea Magistrale in Ingegneria Informatica (270/04) Sviluppo Applicazione di BI/DWH con tecnologia

Dettagli

Data warehousing con SQL Server

Data warehousing con SQL Server Data warehousing con SQL Server SQL Server è un RDBMS (Relational DataBase Management System) Analysis Services è un componente di SQL Server che offre un insieme di funzionalità di supporto al data warehousing

Dettagli

Introduzione alla Business Intelligence

Introduzione alla Business Intelligence SOMMARIO 1. DEFINIZIONE DI BUSINESS INTELLIGENCE...3 2. FINALITA DELLA BUSINESS INTELLIGENCE...4 3. DESTINATARI DELLA BUSINESS INTELLIGENCE...5 4. GLOSSARIO...7 BIM 3.1 Introduzione alla Pag. 2/ 9 1.DEFINIZIONE

Dettagli

E-Mail. Scheduling. Modalità d invio. E-Mail

E-Mail. Scheduling. Modalità d invio. E-Mail BI BI Terranova, azienda leader in Italia per le soluzioni Software rivolte al mercato delle Utilities, propone la soluzione Software di Business Intelligence RETIBI, sviluppata per offrire un maggiore

Dettagli

SISTEMI INFORMATIVI AZIENDALI

SISTEMI INFORMATIVI AZIENDALI SISTEMI INFORMATIVI AZIENDALI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: Alla fine di ogni lezione Modalità esame: scritto 1 Sistema informativo. Prima definizione Un sistema

Dettagli

E.T.L. (Extract.Tansform.Load) IBM - ISeries 1/8

E.T.L. (Extract.Tansform.Load) IBM - ISeries 1/8 E.T.L. (Extract.Tansform.Load) IBM - ISeries Quick-EDD/ DR-DRm ETL 1/8 Sommario ETL... 3 I processi ETL (Extraction, Transformation and Loading - estrazione, trasformazione e caricamento)... 3 Cos è l

Dettagli

Business Intelligence

Business Intelligence aggregazione dati Business Intelligence analytic applications query d a t a w a r e h o u s e aggregazione budget sales inquiry data mining Decision Support Systems MIS ERP data management Data Modeling

Dettagli

Rassegna sui principi e sui sistemi di Data Warehousing

Rassegna sui principi e sui sistemi di Data Warehousing Università degli studi di Bologna FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Rassegna sui principi e sui sistemi di Data Warehousing Tesi di laurea di: Emanuela Scionti Relatore: Chiar.mo Prof.Montesi

Dettagli

Data Warehouse Architettura e Progettazione

Data Warehouse Architettura e Progettazione Introduzione Data Warehouse Architettura! Nei seguenti lucidi verrà fornita una panoramica del mondo dei Data Warehouse.! Verranno riportate diverse definizioni per identificare i molteplici aspetti che

Dettagli

www.bistrategy.it In un momento di crisi perché scegliere di investire sulla Business Intelligence?

www.bistrategy.it In un momento di crisi perché scegliere di investire sulla Business Intelligence? In un momento di crisi perché scegliere di investire sulla Business Intelligence? Cos è? Per definizione, la Business Intelligence è: la trasformazione dei dati in INFORMAZIONI messe a supporto delle decisioni

Dettagli

ALTA GAMMA. business intelligence. il software per pilotare la tua Azienda con successo

ALTA GAMMA. business intelligence. il software per pilotare la tua Azienda con successo ALTA GAMMA business intelligence il software per pilotare la tua Azienda con successo Chi è TeamSystem Da venticinque anni presente sul mercato del SW gestionale italiano. Oltre 44 milioni di EURO di fatturato

Dettagli

B usiness I ntelligence: L a scintilla che accende. un investimento che si fa apprezzare giorno dopo giorno. la conoscenza.

B usiness I ntelligence: L a scintilla che accende. un investimento che si fa apprezzare giorno dopo giorno. la conoscenza. B usiness I ntelligence: un investimento che si fa apprezzare giorno dopo giorno.... abbiamo constatato ad esempio come le aziende che hanno investito significativamente in BI (Business Intelligence) abbiano

Dettagli

Introduzione al data warehousing

Introduzione al data warehousing Introduzione al data warehousing, Riccardo Torlone aprile 2012 1 Motivazioni I sistemi informatici permettono di aumentare la produttività delle organizzazioni automatizzandone la gestione quotidiana dei

Dettagli

SISTEMI INFORMATIVI AZIENDALI

SISTEMI INFORMATIVI AZIENDALI SISTEMI INFORMATIVI AZIENDALI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: Alla fine di ogni lezione Modalità esame: scritto 1 Sistemi informazionali La crescente diffusione dei

Dettagli

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT IT PROCESS EXPERT 1. CARTA D IDENTITÀ... 2 2. CHE COSA FA... 3 3. DOVE LAVORA... 4 4. CONDIZIONI DI LAVORO... 5 5. COMPETENZE... 6 Quali competenze sono necessarie... 6 Conoscenze... 8 Abilità... 9 Comportamenti

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

Dettagli

Convegno 6 giugno 2013 Federlazio Frosinone

Convegno 6 giugno 2013 Federlazio Frosinone Convegno 6 giugno 2013 Federlazio Frosinone pag. 1 6 giugno 2013 Federlazio Frosinone Introduzione alla Business Intelligence Un fattore critico per la competitività è trasformare la massa di dati prodotti

Dettagli

SQL Server. Applicazioni principali

SQL Server. Applicazioni principali SQL Server Introduzione all uso di SQL Server e utilizzo delle opzioni OLAP Applicazioni principali SQL Server Enterprise Manager Gestione generale di SQL Server Gestione utenti Creazione e gestione dei

Dettagli

Lezione 1. Introduzione e Modellazione Concettuale

Lezione 1. Introduzione e Modellazione Concettuale Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and

Dettagli

Data warehouse Introduzione

Data warehouse Introduzione Database and data mining group, Data warehouse Introduzione INTRODUZIONE - 1 Pag. 1 Database and data mining group, Supporto alle decisioni aziendali La maggior parte delle aziende dispone di enormi basi

Dettagli

SQL Server BI Development Studio

SQL Server BI Development Studio Il Data warehouse SQL Server Business Intelligence Development Studio Analysis Service Sorgenti dati operazionali DB relazionali Fogli excel Data warehouse Staging Area e dati riconciliati Cubi Report

Dettagli

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE Oracle Business Intelligence Standard Edition One è una soluzione BI completa, integrata destinata alle piccole e medie imprese.oracle

Dettagli

Piattaforma aziendale IBM Cognos per Business Intelligence

Piattaforma aziendale IBM Cognos per Business Intelligence Piattaforma aziendale IBM Cognos per Business Intelligence Considerazioni principali Ottimizzate le prestazioni con l'elaborazione in-memory e l'evoluzione dell'architettura Ottimizzate i vantaggi dell'implementazione

Dettagli

Sistemi informativi aziendali

Sistemi informativi aziendali Sistemi informativi aziendali Lezione 12 prof. Monica Palmirani Sistemi informativi e informatici Sistemi informativi = informazioni+processi+comunicazione+persone Sistemi informatici = informazioni+hardware+software

Dettagli

IL CONTROLLO DI GESTIONE CORSO AVANZATO. A cura di dottor Alessandro Tullio

IL CONTROLLO DI GESTIONE CORSO AVANZATO. A cura di dottor Alessandro Tullio IL CONTROLLO DI GESTIONE CORSO AVANZATO A cura di dottor Alessandro Tullio Studio di Consulenza dottor Alessandro Tullio Docente: dottor Alessandro Tullio Corso Canalgrande 90 41100 Modena Tel. 059.4279344

Dettagli

LA BUSINESS INTELLIGENCE - DEFINIZIONI

LA BUSINESS INTELLIGENCE - DEFINIZIONI LA BUSINESS INTELLIGENCE - DEFINIZIONI A cura di Giorgio Giussani Milano, 16.06.2010 Fonte: Internet Cos'è il Business Intelligence? Il termine business intelligence si applica ai prodotti che hanno come

Dettagli

Modelli matematici avanzati per l azienda a.a. 2010-2011

Modelli matematici avanzati per l azienda a.a. 2010-2011 Modelli matematici avanzati per l azienda a.a. 2010-2011 Docente: Pasquale L. De Angelis deangelis@uniparthenope.it tel. 081 5474557 http://www.economia.uniparthenope.it/siti_docenti P.L.DeAngelis Modelli

Dettagli

uadro Business Intelligence Professional Gestione Aziendale Fa quadrato attorno alla tua azienda

uadro Business Intelligence Professional Gestione Aziendale Fa quadrato attorno alla tua azienda Fa quadrato attorno alla tua azienda Professional Perché scegliere Cosa permette di fare la businessintelligence: Conoscere meglio i dati aziendali, Individuare velocemente inefficienze o punti di massima

Dettagli

ISTITUTO TECNICO ECONOMICO MOSSOTTI

ISTITUTO TECNICO ECONOMICO MOSSOTTI CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche

Dettagli

SOLUTION BRIEF CA ERwin Modeling. Come gestire la complessità dei dati e aumentare l'agilità del business

SOLUTION BRIEF CA ERwin Modeling. Come gestire la complessità dei dati e aumentare l'agilità del business SOLUTION BRIEF CA ERwin Modeling Come gestire la complessità dei dati e aumentare l'agilità del business CA ERwin Modeling fornisce una visione centralizzata delle definizioni dei dati chiave per consentire

Dettagli

Microsoft Dynamics NAV 2009 REALIZZARE GLI OBIETTIVI

Microsoft Dynamics NAV 2009 REALIZZARE GLI OBIETTIVI Microsoft Dynamics NAV 2009 REALIZZARE GLI OBIETTIVI Una soluzione ERP integrata CONNETTERE Microsoft Dynamics NAV 2009 SEMPLIFICARE ANALIZZARE Microsoft Dynamics NAV 2009 è un ERP innovativo, flessibile

Dettagli

Basi di Dati Complementi Esercitazione su Data Warehouse

Basi di Dati Complementi Esercitazione su Data Warehouse Sommario Basi di Dati Complementi Esercitazione su Data Warehouse 1. Riassunto concetti principali dalle slide della lezione di teoria 2.Studio di caso : progettazione di un Data Warehouse di una catena

Dettagli

4 Introduzione al data warehousing

4 Introduzione al data warehousing Che cosa è un data warehouse? Introduzione al data warehousing 22 maggio 2001 Un data warehouse è una base di dati collezione di dati di grandi dimensioni, persistente e condivisa gestita in maniera efficace,

Dettagli

PBI Passepartout Business Intelligence

PBI Passepartout Business Intelligence PBI Passepartout Business Intelligence TARGET DEL MODULO Il prodotto, disponibile come modulo aggiuntivo per il software gestionale Passepartout Mexal, è rivolto alle Medie imprese che vogliono ottenere,

Dettagli

SQL Server 2005. Introduzione all uso di SQL Server e utilizzo delle opzioni Olap. Dutto Riccardo - SQL Server 2005.

SQL Server 2005. Introduzione all uso di SQL Server e utilizzo delle opzioni Olap. Dutto Riccardo - SQL Server 2005. SQL Server 2005 Introduzione all uso di SQL Server e utilizzo delle opzioni Olap SQL Server 2005 SQL Server Management Studio Gestione dei server OLAP e OLTP Gestione Utenti Creazione e gestione DB SQL

Dettagli

LEZIONE 3 CUSTOMER RELATIONSHIP ICT GOVERNANCE. ECONOMIA dell ICT ECONOMIA DELL ICT 1. Facoltà di Ingegneria Università di Roma Tor Vergata

LEZIONE 3 CUSTOMER RELATIONSHIP ICT GOVERNANCE. ECONOMIA dell ICT ECONOMIA DELL ICT 1. Facoltà di Ingegneria Università di Roma Tor Vergata LEZIONE 3 CUSTOMER RELATIONSHIP MANAGEMENT (CRM) ICT GOVERNANCE ECONOMIA dell ICT ECONOMIA DELL ICT 1 Sviluppo storico del CRM 50 60 Avvento dei brand items e delle agenzie di pubblicità 70 Avvento del

Dettagli

Il Business Performance Management & QlikView

Il Business Performance Management & QlikView Il Business Performance Management & QlikView 1 I SISTEMI DI SUPPORTO ALLE DECISIONI O DI BUSINESS INTELLIGENCE sono oggi considerati componenti di sistemi più ampi conosciuti come: CPM - CORPORATE PERFORMANCE

Dettagli

L E I N F O R M A Z I O N I P E R F A R E

L E I N F O R M A Z I O N I P E R F A R E L E I N F O R M A Z I O N I P E R F A R E C E N T R O Con InfoBusiness avrai Vuoi DATI CERTI per prendere giuste DECISIONI? Cerchi CONFERME per le tue INTUIZIONI? Vuoi RISPOSTE IMMEDIATE? SPRECHI TEMPO

Dettagli

Microsoft Project 2010 si basa sulle fondamenta di Microsoft Project 2007 per offrire soluzioni di gestione del lavoro flessibili e strumenti di

Microsoft Project 2010 si basa sulle fondamenta di Microsoft Project 2007 per offrire soluzioni di gestione del lavoro flessibili e strumenti di Microsoft Project 2010 si basa sulle fondamenta di Microsoft Project 2007 per offrire soluzioni di gestione del lavoro flessibili e strumenti di collaborazione adatti ai project manager professionisti

Dettagli

Software NEWAGRI Guida rapida all utilizzo

Software NEWAGRI Guida rapida all utilizzo Software NEWAGRI Guida rapida all utilizzo Versione: 1 Autore: Andrea Bondi Data: 10/11/2009 1 Sommario Sommario... 2 1. Introduzione... 3 2. Caratteristiche tecniche ed architettura del sistema... 3 3.

Dettagli

Il tuo business si evolve. Fai evolvere il tuo gestionale. Costruiamo i motori di un pianeta più intelligente.

Il tuo business si evolve. Fai evolvere il tuo gestionale. Costruiamo i motori di un pianeta più intelligente. Il tuo business si evolve. Fai evolvere il tuo gestionale. Costruiamo i motori di un pianeta più intelligente. esperienza + innovazione affidabilità Da IBM, una soluzione completamente nuova: ACG Vision4,

Dettagli

Data Mining a.a. 2010-2011

Data Mining a.a. 2010-2011 Data Mining a.a. 2010-2011 Docente: mario.guarracino@cnr.it tel. 081 6139519 http://www.na.icar.cnr.it/~mariog Informazioni logistiche Orario delle lezioni A partire dall 19.10.2010, Martedì h: 09.50 16.00

Dettagli

DSCube. L analisi dei dati come strumento per i processi decisionali

DSCube. L analisi dei dati come strumento per i processi decisionali DSCube L analisi dei dati come strumento per i processi decisionali Analisi multi-dimensionale dei dati e reportistica per l azienda: DSCube Introduzione alla suite di programmi Analyzer Query Builder

Dettagli

www.24oreformazione.com

www.24oreformazione.com FORMAZIONE TECNOLOGIA E BUSINESS www.24oreformazione.com BUSINESS INTELLIGENCE: I DATI AZIENDALI A SUPPORTO DELLE DECISIONI STRATEGICHE D IMPRESA Milano, 10 e 11 dicembre 2001 Il corso si completa in rete

Dettagli

Risorsa N 002994 DATI ANAGRAFICI: FORMAZIONE E CORSI: ISTRUZIONE E CERTIFICAZIONI: LINGUE STRANIERE: COMPETENZE INFORMATICHE:

Risorsa N 002994 DATI ANAGRAFICI: FORMAZIONE E CORSI: ISTRUZIONE E CERTIFICAZIONI: LINGUE STRANIERE: COMPETENZE INFORMATICHE: Risorsa N 002994 DATI ANAGRAFICI: Nato il : 1971 Residente a : Pavia FORMAZIONE E CORSI: Nel 02/2013: Corso di Oracle Business Intelligence Enterprise Edition (OBIEE) 11.1.3 Nel 04/2007: Corso di Analisi

Dettagli

COGNOS 8 BUSINESS INTELLIGENCE DECIDERE MEGLIO, PIU RAPIDAMENTE. REPORTING ANALISI DASHBOARDING SCORECARDING

COGNOS 8 BUSINESS INTELLIGENCE DECIDERE MEGLIO, PIU RAPIDAMENTE. REPORTING ANALISI DASHBOARDING SCORECARDING COGNOS 8 BUSINESS INTELLIGENCE DECIDERE MEGLIO, PIU RAPIDAMENTE. REPORTING ANALISI DASHBOARDING SCORECARDING MIGLIORI INFORMAZIONI OGNI GIORNO COGNOS 8 BUSINESS INTELLIGENCE La Business Intelligence consiste

Dettagli

Self-Service Business Intelligence

Self-Service Business Intelligence Self-Service Business Intelligence VISUALIZZA DATI, SCOPRI LE TENDENZE, CONDIVIDI I RISULTATI Analysis offre a tutti gli utenti aziendali strumenti flessibili per creare e condividere le informazioni significative

Dettagli

Microsoft Dynamics NAV 2009 REALIZZARE GLI OBIETTIVI

Microsoft Dynamics NAV 2009 REALIZZARE GLI OBIETTIVI Microsoft Dynamics NAV 2009 REALIZZARE GLI OBIETTIVI Una soluzione ERP ALL AVANGUARDIA CONNETTERE Microsoft Dynamics NAV 2009 SEMPLIFICARE ANALIZZARE Microsoft Dynamics NAV 2009 è una soluzione di gestione

Dettagli

IBM Cognos 8 BI Midmarket Reporting Packages Per soddisfare tutte le vostre esigenze di reporting restando nel budget

IBM Cognos 8 BI Midmarket Reporting Packages Per soddisfare tutte le vostre esigenze di reporting restando nel budget Data Sheet IBM Cognos 8 BI Midmarket Reporting Packages Per soddisfare tutte le vostre esigenze di reporting restando nel budget Panoramica Le medie aziende devono migliorare nettamente le loro capacità

Dettagli

Business Intelligence, OLAP e il monitoraggio del proprio Business

Business Intelligence, OLAP e il monitoraggio del proprio Business Business Intelligence, OLAP e il monitoraggio del proprio Business Con il termine business intelligence (BI) ci si può solitamente riferire a: 1. un insieme di processi aziendali per raccogliere ed analizzare

Dettagli

WebBi S.r.l offre consulenza e soluzioni per le seguenti aree: Data Warehousing. Business Intelligence. Disegno di architetture integrate

WebBi S.r.l offre consulenza e soluzioni per le seguenti aree: Data Warehousing. Business Intelligence. Disegno di architetture integrate Migliorare l organizzazione per migliorare la qualità delle decisioni. Migliorare la qualità dei collaboratori per migliorare il servizio alla clientela. WebBi S.r.l offre consulenza e soluzioni per le

Dettagli

Claudio Lattanzi. More Controllo Performance: i dati. unico progetto di modellazione

Claudio Lattanzi. More Controllo Performance: i dati. unico progetto di modellazione Claudio Lattanzi More Controllo Performance: i dati transazionali ed aggregati in un unico progetto di modellazione Le informazioni sono in continua crescita ma non sempre questo patrimonio aziendale viene

Dettagli

MICROSOFT DYNAMICS: SOLUZIONI GESTIONALI PER L AZIENDA

MICROSOFT DYNAMICS: SOLUZIONI GESTIONALI PER L AZIENDA MICROSOFT DYNAMICS: SOLUZIONI GESTIONALI PER L AZIENDA Microsoft Dynamics: soluzioni gestionali per l azienda Le soluzioni software per il business cercano, sempre più, di offrire funzionalità avanzate

Dettagli

Data warehouse. Architettura complessiva con OLTP e OLAP OLTP. Sistemi di supporto alle decisioni

Data warehouse. Architettura complessiva con OLTP e OLAP OLTP. Sistemi di supporto alle decisioni Data warehouse Data warehouse La crescita dell importanza dell analisi dei dati ha portato ad una separazione architetturale dell ambiente transazionale (OLTP on-line transaction processing) da quello

Dettagli

Base Dati Introduzione

Base Dati Introduzione Università di Cassino Facoltà di Ingegneria Modulo di Alfabetizzazione Informatica Base Dati Introduzione Si ringrazia l ing. Francesco Colace dell Università di Salerno Gli archivi costituiscono una memoria

Dettagli

SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB

SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica SVILUPPO ONTOLOGIE PER LA GESTIONE DOCUMENTALE E LORO INTEGRAZIONE ALL INTERNO DI UNA PIATTAFORMA WEB Relatore Chiarissimo

Dettagli

PRESENTAZIONE SERVIZI P.M.I.

PRESENTAZIONE SERVIZI P.M.I. PRESENTAZIONE SERVIZI P.M.I. Profilo La Società Hermes nasce nel 2010 per portare sul mercato le esperienze maturate da un team di specialisti e ricercatori informatici che hanno operato per anni come

Dettagli

TiQ Green Energy Management: La soluzione IT per il continuo miglioramento dell utlizzo dell energia. You cannot Manage What you cannot Measure

TiQ Green Energy Management: La soluzione IT per il continuo miglioramento dell utlizzo dell energia. You cannot Manage What you cannot Measure TiQ Green Energy Management: La soluzione IT per il continuo miglioramento dell utlizzo dell energia You cannot Manage What you cannot Measure 1. Moduli di GEM Energy Monitoring Misurare è il primo passo

Dettagli

Database Commerciali/ Marketing. Indice: 1. Gli elementi chiave del db commerciale/ marketing 2. Come si costruisce un db commerciale/ marketing

Database Commerciali/ Marketing. Indice: 1. Gli elementi chiave del db commerciale/ marketing 2. Come si costruisce un db commerciale/ marketing Database Commerciali/ Marketing Indice: 1. Gli elementi chiave del db commerciale/ marketing 2. Come si costruisce un db commerciale/ marketing Database Commerciali/ Marketing Gli elementi chiave del db

Dettagli

Progetto Turismo Pisa. Sommario dei risultati

Progetto Turismo Pisa. Sommario dei risultati 2012 Progetto Turismo Pisa Sommario dei risultati 0 Studio realizzato per il Comune di Pisa da KddLab ISTI-CNR Pisa Sommario 1 Progetto Turismo Pisa: Sintesi dei risultati... 1 1.1 L Osservatorio Turistico

Dettagli

Introduzione ai database I concetti fondamentali Database e DBMS Per comprendere appieno cos'è un Database e quali sono i vantaggi legati al suo impiego, soprattutto nel settore gestionale, è necessario

Dettagli

BUSINESSOBJECTS EDGE STANDARD

BUSINESSOBJECTS EDGE STANDARD PRODOTTI BUSINESSOBJECTS EDGE STANDARD La business intelligence consente di: Conoscere meglio le attività Scoprire nuove opportunità. Individuare e risolvere tempestivamente problematiche importanti. Avvalersi

Dettagli

Governo Digitale a.a. 2011/12

Governo Digitale a.a. 2011/12 Governo Digitale a.a. 2011/12 I sistemi di supporto alle decisioni ed il Data Warehouse Emiliano Casalicchio Agenda Introduzione i sistemi di supporto alle decisioni Data warehouse proprietà architettura

Dettagli

DATA MINING E DATA WAREHOUSE

DATA MINING E DATA WAREHOUSE Reti e sistemi informativi DATA MINING E DATA WAREHOUSE Marco Gottardo FONTI Wikipedia Cineca Università di Udine, Dipartimento di fisica, il data mining scientifico thepcweb.com DATA MINING 1/2 Il Data

Dettagli

La guida CRM per eliminare le incertezze: prendete il controllo del vostro business

La guida CRM per eliminare le incertezze: prendete il controllo del vostro business 2 La guida CRM per eliminare le incertezze: prendete il controllo del vostro business (2 - migliorate la vostra credibilità: i 5 passi per dimostrare l efficacia del Marketing) Pagina 1 di 9 SOMMARIO PREMESSA...

Dettagli

Database e Microsoft Access. Ing. Antonio Guadagno

Database e Microsoft Access. Ing. Antonio Guadagno Database e Microsoft Access Ing. Antonio Guadagno Database e Microsoft Access Un Database non è altro che un insieme di contenitori e di strumenti informatici che ci permette di gestire grossi quantitativi

Dettagli

SimplERP in sintesi. Open Source SimplERP è un progetto Open Source. Il software è pubblicato sotto licenza AGPL ed AGPL + Uso Privato.

SimplERP in sintesi. Open Source SimplERP è un progetto Open Source. Il software è pubblicato sotto licenza AGPL ed AGPL + Uso Privato. SimplERP in sintesi SimplERP è una suite completa di applicazioni aziendali dedicate alla gestione delle vendite, dei clienti, dei progetti, del magazzino, della produzione, della contabilità e delle risorse

Dettagli

APPLICAZIONI LINE OF BUSINESS

APPLICAZIONI LINE OF BUSINESS APPLICAZIONI LINE OF BUSINESS MICROSOFT ENTERPRISE CLUB Disponibile anche sul sito: www.microsoft.com/italy/eclub/ Le soluzioni Microsoft per il Business Performance Management APPLICAZIONI LINE OF BUSINESS

Dettagli

Per capire meglio l ambito di applicazione di un DWhouse consideriamo la piramide di Anthony, L. Direzionale. L. Manageriale. L.

Per capire meglio l ambito di applicazione di un DWhouse consideriamo la piramide di Anthony, L. Direzionale. L. Manageriale. L. DATA WAREHOUSE Un Dataware House può essere definito come una base di dati di database. In molte aziende ad esempio ci potrebbero essere molti DB, per effettuare ricerche di diverso tipo, in funzione del

Dettagli

Suite B-B FOX INTELLIGENTE, AGILE, VELOCE. c o n t a b i l i t à. m a g a z z i n o

Suite B-B FOX INTELLIGENTE, AGILE, VELOCE. c o n t a b i l i t à. m a g a z z i n o INTELLIGENTE, AGILE, VELOCE Suite B-B FOX Lo strumento modulare per la gestione della tua azienda vendite acquisti c o n t a b i l i t à m a g a z z i n o business intelligence & stats monitoraggio del

Dettagli

ERP Commercio e Servizi

ERP Commercio e Servizi ERP Commercio e Servizi Sistema informativo: una scelta strategica In questi ultimi anni hanno avuto grande affermazione nel mercato mondiale i cosiddetti sistemi software ERP. Tali sistemi sono in grado

Dettagli

Data Warehousing (DW)

Data Warehousing (DW) Data Warehousing (DW) Il Data Warehousing è un processo per estrarre e integrare dati storici da sistemi transazionali (OLTP) diversi e disomogenei, e da usare come supporto al sistema di decisione aziendale

Dettagli

Sistemi informativi aziendali

Sistemi informativi aziendali Sistemi informativi aziendali Lezione 12 prof. Monica Palmirani Sistemi informativi e informatici Sistemi informativi = informazioni+processi+comunicazione+persone Sistemi informatici = informazioni+hardware+software

Dettagli

Breve introduzione ai data warehouse (per gli allievi che non hanno seguito BD2)

Breve introduzione ai data warehouse (per gli allievi che non hanno seguito BD2) Tecnologie per i sistemi informativi Breve introduzione ai data warehouse (per gli allievi che non hanno seguito BD2) Letizia Tanca lucidi tratti dal libro: Atzeni, Ceri, Paraboschi, Torlone Introduzione

Dettagli

Vi auguriamo un esperienza proficua e positiva con Oracle Siebel CRM On Demand!

Vi auguriamo un esperienza proficua e positiva con Oracle Siebel CRM On Demand! Introduzione Qui di seguito vengono esposte le risposte alle domande più frequenti relative a Oracle Siebel CRM On Demand. Inoltre, il Solutions Launchpad che contiene il link a questo documento offre

Dettagli

Business Intelligence RENDE STRATEGICHE LE INFORMAZIONI

Business Intelligence RENDE STRATEGICHE LE INFORMAZIONI Business Intelligence RENDE STRATEGICHE LE INFORMAZIONI Business Intelligence RENDE STRATEGICHE LE INFORMAZIONI CSC ritiene che la Business Intelligence sia un elemento strategico e fondamentale che, seguendo

Dettagli

I D C A N A L Y S T C O N N E C T I O N

I D C A N A L Y S T C O N N E C T I O N I D C A N A L Y S T C O N N E C T I O N Dan Vesset Program Vice President, Business Analytics B e s t P ractice p e r u n a strategia di B usiness I n t e l l i g e n c e e B usiness An a l yt i c s Febbraio

Dettagli

KNOWLEDGE MANAGEMENT. Knowledge Management. Knowledge: : cos è. Dispense del corso di Gestione della Conoscenza d Impresa

KNOWLEDGE MANAGEMENT. Knowledge Management. Knowledge: : cos è. Dispense del corso di Gestione della Conoscenza d Impresa KNOWLEDGE MANAGEMENT Pasquale Lops Giovanni Semeraro Dispense del corso di Gestione della Conoscenza d Impresa 1/23 Knowledge Management La complessità crescente della società, l esubero di informazioni

Dettagli

InfoTecna ITCube Web

InfoTecna ITCube Web InfoTecna ITCubeWeb ITCubeWeb è un software avanzato per la consultazione tramite interfaccia Web di dati analitici organizzati in forma multidimensionale. L analisi multidimensionale è il sistema più

Dettagli

LibrERP in sintesi. www.didotech.com. Completa

LibrERP in sintesi. www.didotech.com. Completa LibrERP in sintesi LibrERP è una suite completa di applicazioni aziendali dedicate alla gestione delle vendite, dei clienti, dei progetti, del magazzino, della produzione, della contabilità e delle risorse

Dettagli

Architetture per l analisi di dati

Architetture per l analisi di dati Architetture per l analisi di dati Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 8 Appunti dalle lezioni Motivazioni I sistemi informatici permettono di aumentare la produttività

Dettagli

Le FAQ della simulazione

Le FAQ della simulazione Le FAQ della simulazione L obiettivo di queste FAQ è fornire ai progettisti di corsi di formazione, a docenti, agli utenti di corsi di formazione e a coloro che sono addetti allo sviluppo delle risorse

Dettagli

Cultura Tecnologica di Progetto

Cultura Tecnologica di Progetto Cultura Tecnologica di Progetto Politecnico di Milano Facoltà di Disegno Industriale - DATABASE - A.A. 2003-2004 2004 DataBase DB e DataBase Management System DBMS - I database sono archivi che costituiscono

Dettagli

Self-Service Business Intelligence

Self-Service Business Intelligence Self-Service Business Intelligence VISUALIZZA DATI, SCOPRI LE TENDENZE, CONDIVIDI I RISULTATI Solgenia Analysis offre a tutti gli utenti aziendali strumenti flessibili per creare e condividere le informazioni

Dettagli

emanager La soluzione a supporto dei processi di Clinical Governance www.dedalus.eu

emanager La soluzione a supporto dei processi di Clinical Governance www.dedalus.eu emanager La soluzione a supporto dei processi di Clinical Governance www.dedalus.eu 3 La Clinical Governance Nell ambito dell erogazione di servizi sanitari è sempre più evidente l esigenza di poter disporre

Dettagli

Beyond Consulting s.r.l. Andrea Pistore Padova, 24 Maggio 2006

Beyond Consulting s.r.l. Andrea Pistore Padova, 24 Maggio 2006 SAP Business Information Warehouse Beyond Consulting s.r.l. Andrea Pistore Padova, 24 Maggio 2006 mysap BI: Benefici Miglioramento dell'efficienza e della produttività aziendale attraverso: collaborazione

Dettagli

1. Hard Real Time Linux (Laurea VO o specialistica)

1. Hard Real Time Linux (Laurea VO o specialistica) 20/9/06 Elenco Tesi Disponibili Applied Research & Technology Dept. La Società MBDA La MBDA Italia è un azienda leader nella realizzazione di sistemi di difesa che con i suoi prodotti è in grado di soddisfare

Dettagli