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
Scarica

Applicazioni distribuite - Dipartimento di Fisica