UNIVERSITÀ DEGLI STUDI DI CAGLIARI FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Specialistica in Tecnologie Informatiche Applicazioni Distribuite mediante Web Service e sistemi di Workflow Tesi di Laurea di Relatore Antonio Pintus Prof. Andrea Bosin Parte I Stato dell’arte delle Applicazioni Distribuite: Web Services e Sistemi di Workflow Applicazioni distribuite: stato dell’arte (1) • A partire dagli anni ’70 sono state date diverse definizioni di Sistema Distribuito, tutte legate alle prevalenti tecnologie hw/sw dell’epoca, spesso incentrate sui concetti di sistemi operativi distribuiti • Applicazioni distribuite: “applicazioni indipendenti, distribuite in rete, cooperanti per il raggiungimento di un risultato comune e comunicanti mediante scambio di messaggi” 22/09/2006 Antonio Pintus 3 Applicazioni distribuite: stato dell’arte (2) • Principali problemi affrontati: • comunicazione tra applicazioni eterogenee: piattaforme, sistemi operativi e linguaggi di programmazione spesso molto diversi e tra loro incompatibili • Due tipi di soluzioni adottate: – Tecnologie orientate ad una sola piattaforma/linguaggio: – DCOM, Java RMI, … – Definizione di protocolli di “intermediazione” tra sistemi eterogenei: – CORBA, XML-RPC, … • Tecnologia prevalente attuale: Web Services 22/09/2006 Antonio Pintus 4 Applicazioni distribuite: Web Service (1) • Negli ultimi anni, introduzione e grosso utilizzo della tecnologia dei Web Service: – Applicazione descritta da un’interfaccia che espone un insieme di operazioni: • invocabili da remoto, via HTTP, mediante scambio di messaggi (definiti in formato XML) – Basata sulle tecnologie: • WSDL (WebServices Description Language), per la descrizione del servizio • UDDI (Universal Description, Discovery and Integration), protocollo per la pubblicazione e il discovery dei servizi • SOAP (Simple Object Access Protocol), per la comunicazione mediante messaggi 22/09/2006 Antonio Pintus 5 Applicazioni distribuite: Web Service (1) • Principali attori nelle applicazioni basate su Web Service 22/09/2006 Antonio Pintus 6 Service Oriented Architecture (SOA) • Concetto nato principalmente per l’integrazione di sistemi eterogenei in ambiti Business-to-Business (B2B), basata sul concetto di: – Servizio: • particolare unità di lavoro eseguita da un fornitore di servizi • fruibile da un consumatore del servizio • Fornitore e consumatore: entrambi applicazioni software autonome – Maggiore livello di astrazione nelle Applicazioni Distribuite – Web Service come tecnologia abilitante 22/09/2006 Antonio Pintus 7 Web Service Orchestration (1) • Integrazione e composizione di singoli Web Service in processi di business standardizzati • Web Service Orchestration vs. Choreography – L’orchestration descrive come un Web Service interagisce con un altro a livello di messaggi; descrive la logica del processo e l’ordine di esecuzione delle interazioni (per es. BPEL) – La choreography è relativa alla descrizione delle interazioni tra Web Service osservabili da un punto di vista esterno (per es. WS-CDL, Choreography Description Language) 22/09/2006 Antonio Pintus 8 Web Service Orchestration: BPEL • BPEL, Business Process Execution Language (for Web Service) • Linguaggio (basato su XML) per la descrizione di: – processi di business – flussi di lavoro – in una architettura orientata ai servizi e realizzata mediante Web Service – Possiede i principali costrutti dei linguaggi di programmazione imperativi 22/09/2006 Antonio Pintus 9 Workflow Management System (1) • Workflow: “Un workflow è un meccanismo computerizzato che consente l'automazione di un processo di business, nella sua interezza o in parte” • Workflow Management System (WfMS): “Un Workflow Management System è un sistema che definisce, gestisce ed esegue completamente dei workflow attraverso l'esecuzione di componenti software il cui ordine di esecuzione è guidato da una rappresentazione computerizzata della logica di workflow” 22/09/2006 Antonio Pintus 10 Workflow Management System (2) • La Workflow Management Coalition ha definito un meta-modello per i workflow 22/09/2006 Antonio Pintus 11 Workflow Management System (3) • Caratteristiche dei workflow: – Processo: insieme coordinato di attività, al suo interno possono essere presenti: • Parallel routing: due o più attività in esecuzione parallela (molteplici thread) • Sequential routing: esecuzione sequenziale delle attività (un unico thread) • And-Split: punto in cui un singolo thread si divide in molteplici dando origine ad un Parallel Routing • And-Join: punto di convergenza dei thread in uno singolo • Or-Split: punto di ramificazione decisionale, viene scelto un solo ramo d’esecuzione tra diverse alternative • Or-Join: rami di esecuzione alternativi convergono verso un punto • Iteration: esecuzione ripetitiva condizionata di attività 22/09/2006 Antonio Pintus 12 Applicazioni distribuite: Web Services + Workflow • Se Attività = Web Service, possiamo considerare i WfMS come sistemi di Web Service Orchestration: – Presenza dei principali costrutti dei linguaggi di programmazione tradizionali – Interfacce delle attività ben definite (WSDL) – Discovery (anche UDDI) e import dei servizi assistiti dal sistema – Ambiente di sviluppo ed esecuzione integrati mediante GUI – Semplificazione della costruzione di applicazioni distribuite – Collaborazione e SOA 22/09/2006 Antonio Pintus 13 Parte II Analisi di due Workflow Management System per l’e-Science Workflow Management System: Taverna (1) • Obiettivi: fornire un linguaggio e un toolkit software per facilitare l'utilizzo dei workflow e delle applicazioni distribuite all'interno della comunità eScience • Collaborazione tra European Bioinformatics Institute, University of Newcastle, University of Manchester,… • Licenza LGPL 22/09/2006 Antonio Pintus 15 Workflow Management System: Taverna (2) • IDE per la definizione ed esecuzione di workflow basati su Web Service e componenti locali 22/09/2006 Antonio Pintus 16 Workflow Management System: Taverna (3) • Diversi parametri configurabili: thread, processori alternativi in caso di fallimento, numeri di tentativi, timeout,… • Multipiattaforma, scritto in Java • Linguaggio di definizione dei workflow basato su XML: XSCUFL, XML Simple Conceptual Unified Flow Language • Decisamente orientato alla bioinformatica 22/09/2006 Antonio Pintus 17 Workflow Management System: Triana (1) • WfMS orientato all’e-Science (non solo esperimenti di bioinformatica ma anche per elaborazione dei segnali, delle immagini, …) • Progetto dell’Università di Cardiff • Distribuito con una licenza basata sulla Apache Software License 22/09/2006 Antonio Pintus 18 Workflow Management System: Triana (2) • IDE per la definizione ed esecuzione di workflow basati su Web Service e componenti locali 22/09/2006 Antonio Pintus 19 Workflow Management System: Triana (3) • Multipiattaforma, scritto in Java • Possibilità di pubblicare automaticamente un intero workflow come Web Service su un registro UDDI • Linguaggio di definizione dei workflow basato su XML e simile al WSFL (Web Service Flow Language) 22/09/2006 Antonio Pintus 20 Confronto Taverna vs. Triana (1) • Entrambi mettono a disposizione un IDE per la composizione ed esecuzione di workflow basati, principalmente su: • Web Service • Componenti locali • Funzionalità estendibili mediante: • Implementazione di nuovi componenti, utilizzando le API in Java (Triana e Taverna) • Utilizzo di scripting Java direttamente all’interno dei workflow (in Taverna mediante BeanShell) 22/09/2006 Antonio Pintus 21 Confronto Taverna vs. Triana (2) • Sequential Routing Taverna Triana 22/09/2006 Antonio Pintus 22 Confronto Taverna vs. Triana (3) • Parallel Routing Taverna Triana 22/09/2006 Antonio Pintus 23 Confronto Taverna vs. Triana (4) • Conditional processing in Taverna: Uso degli script, BeanShell • Triana: processore locale “IF” predefinito if(Double.valueOf(a)>=Double.valueOf(b)) { res= "true"; } else { res= "false"; } return res; Taverna 22/09/2006 Antonio Pintus 24 Confronto Taverna vs. Triana (5) • Iteration • Implicit Iteration in Taverna: se ad un processore accettante un solo parametro in input viene passata una lista di valori, il processore viene automaticamente invocato per ogni valore 22/09/2006 Antonio Pintus 25 Confronto Taverna vs. Triana (6) • Implicit Iteration in Taverna: strategie di cross e dot product 22/09/2006 Antonio Pintus 26 Confronto Taverna vs. Triana (7) • In Triana, costrutto compreso nella palette di processori dell’IDE completamente configurabile. 22/09/2006 Antonio Pintus 27 Un esempio di applicazione: Web Service e Workflow per la bioinformatica Bioinformatica (1) • Con il completamento della mappatura del genoma umano si aprono nuove strade: – per scoprire i meccanismi che regolano la vita – per individuare le cause delle malattie e le correlazioni con i geni • La mole di dati proveniente dagli studi genetici è ingente, essa deve essere: – – – – gestita analizzata catalogata essere disponibile, interrogabile 22/09/2006 Antonio Pintus 29 Bioinformatica (2) • Soluzione: – approccio informatico per la gestione e l’analisi dei dati → bioinformatica – Organizzazione dei dati biologici – Utilizzo e analisi dei dati attraverso metodi informatici – Estrapolazione di informazioni utili dai dati genetici: – Migliorare le diagnosi – Migliorare le terapie – Medicina personalizzata 22/09/2006 Antonio Pintus 30 Servizi per la Bioinformatica (1) • Attualmente: – Disponibilità pubblica dei dati, algoritmi e strumenti attraverso Internet – Consolidamento di tecnologie come SOA, Web Service e Workflow • Costituiscono: – Buona piattaforma di partenza per una collaborazione alla ricerca biomolecolare distribuita • Quindi è possibile: – Realizzare esperimenti di bioinformatica mediante workflow che fanno uso di Web Service per: • Interrogare delle basi di dati distribuite • Applicare algoritmi di analisi e data-mining sui dati • Condividere i risultati 22/09/2006 Antonio Pintus 31 Un possibile scenario applicativo (1) • Utilizzando SOA, Web service, WfMS, possiamo ritenere fattibile un reale scenario per la conduzione di esperimenti scientifici in maniera distribuita e collaborativa. 22/09/2006 Antonio Pintus 32 Un possibile scenario applicativo (2) 22/09/2006 Antonio Pintus 33 Servizi e per la Bioinformatica : un esempio (1) • Dato un dataset di dati genomici si vuole: – Costruire un Classificatore (data-mining) mediante un algoritmo noto, per esempio: Rete Bayesiana, Support Vector Machine, knearest neighbor, … – Addestrare il classificatore con un data set di training – Testare il classificatore con un data set di test noto e verificare la percentuale di errore ottenuta – Ripetere l’esperimento variando il numero di attributi genomici scelti 22/09/2006 Antonio Pintus 34 Servizi e per la Bioinformatica : un esempio (2) • I passi da seguire, ad ogni iterazione, sono: 1. Selezionare n features (features selection) 2. Costruire il Classificatore (con scelta dell’algoritmo) 3. Training del Classificatore con dataset filtrato in modo che esso presenti solo le n feature selezionate 4. Test del Classificatore con dataset di test filtrato 5. Presentazione dei risultati 22/09/2006 Antonio Pintus 35 Servizi e per la Bioinformatica : un esempio (3) • Mediante tecnologia Web Service sono state realizzate delle applicazioni che forniscono i servizi per: – Feature selection – Costruzione del classificatore – Filtering dei dataset – Test del Classificatore 22/09/2006 Antonio Pintus 36 Servizi e per la Bioinformatica : un esempio (4) • Abbiamo così uno scenario distribuito Analisi dei Risultati Composizione workflow 22/09/2006 Antonio Pintus 37 Servizi e per la Bioinformatica: un esempio (5) • Con Triana 22/09/2006 Antonio Pintus 38 Servizi per la Bioinformatica: un esempio (6) • Con Taverna 22/09/2006 Antonio Pintus 39 Servizi per la Bioinformatica: risultati (1) --------------CLASSIFICATORE-----IB1 classifier --------------MATRICE------------=== Confusion Matrix === a 4 0 1 0 4 0 0 b 0 9 0 0 0 0 0 c d e f g <-- classified as 0 0 1 0 1 | a = BCR-ABL 0 0 0 0 0 | b = E2A-PBX1 16 0 4 0 1 | c = Hyperdip>50 0 6 0 0 0 | d = MLL 8 3 12 0 0 | e = OTHERS 0 0 0 15 0 | f = T-ALL 1 0 0 0 26 | g = TEL-AML1 --------------SOMMARIO------------ Correctly Classified Instances 88 78.5714 % Incorrectly Classified Instances 24 21.4286 % Kappa statistic 0.7407 Mean absolute error 0.0612 Root mean squared error 0.2474 --------------DETTAGLI-----------=== Detailed Accuracy By Class === Relative absolute error 26.2115 % TP Rate FP Rate Precision Recall F-Measure Class 0.667 0.047 0.444 0.667 0.533 BCR-ABL 1 0 1 1 1 E2A-PBX1 0.727 0.1 0.64 0.727 0.681 Hyperdip>50 1 0.028 0.667 1 0.8 MLL 0.444 0.059 0.706 0.444 0.545 OTHERS 1 0 1 1 1 T-ALL 0.963 0.024 0.929 0.963 0.945 TEL-AML1 22/09/2006 Root relative squared error 72.5071 % Total Number of Instances 112 Antonio Pintus 40 Servizi per la Bioinformatica: risultati (2) • Usando le tecniche di iterazione nei workflow per la ripetizione dell’esperimento, variando il n° di features, otteniamo: 22/09/2006 Antonio Pintus 41 Conclusioni (1) • Mediante la SOA, le applicazioni distribuite incrementano il loro livello di astrazione e forniscono un modello più avanzato per l’integrazione di sistemi eterogenei • Web Service come tecnologia abilitante • Workflow: definiti a partire dagli anni ‘70, grazie alla SOA, trovano linfa nuova per la loro applicazione e reale utilizzo in svariati campi 22/09/2006 Antonio Pintus 42 Conclusioni (2) • Mediante analisi di due WfMS, Triana e Taverna, orientati all’e-Science si evince che: • Esistono maturi strumenti di workflow e di service orchestration in generale • Il livello di astrazione apportato nella costruzione di applicazioni distribuite è decisamente superiore • I dettagli di implementazione vengono nascosti e sono presenti i comuni costrutti dei tradizionali linguaggi di programmazione • E’ possibile parlare di servizi anziché di moduli software e implementazioni particolari → utilizzo anche da parte di utenti poco esperti in programmazione 22/09/2006 Antonio Pintus 43 Conclusioni (3) • Le applicazioni distribuite mediante Web Service e Sistemi di Workflow aprono le porte per: – Generici processi di business mediante integrazione e composizione di servizi – Esperimenti scientifici distribuiti e collaborativi mediante composizione di servizi, dati, algoritmi e condivisione di risorse computazionali – Un esempio di campo d’applicazione su tutti: la bioinformatica 22/09/2006 Antonio Pintus 44 Grazie per l’attenzione