Composizione e Coreografia di Web Services Giusy Di Lorenzo Composizione Lo scopo della composizione è quello di comporre servizi esistenti al fine di definire un nuovo servizio a valore aggiunto Richiesta Prestito $ Banca Approvazione Prestito Valutazione Rischio Contabilità Notifica 1
Architettura concettuale: SOA Si vuole permettere a Sistemi Eterogenei di comunicare tra loro in maniera automatica e trasparente utilizzando l infrastruttura di rete esistente Internet EIA: Enterprice Application Integration B2B Attori coinvolti Service Provider Service Directory (Broker) Service Requestor Service Directory Pubblica Service Provider Mezzo di Trasmissione Usa Cerca Service Requestor Business Process Elementi base di un processo di business: Attività rappresenta una funzione di business ben definita Le attività possono essere composte in attività complesse Data flow rappresenta il flusso di dati scambiati tra le attività Control flow specifica come le attività sono eseguite in termini di sequenza, flow 2
Processi di Workflow Composizione di servizi PRO CESSO DI WO RKFLO W Composto da Coordinazione delle attività UTENTE Eseguito da DATI ATTIVITA' I/O Può WEB SERVICE Web Service Può avere TRANSAZIONE CONDIZIONALE Orchestrazione e Coreografia 3
Obiettivi di progetto la definizione, progettazione ed implementazione, di infrastrutture che possano permettere la rappresentazione di tali processi garantendo un dato livello di qualità del servizio la definizione di un linguaggio per la descrizione di processi di workflow che possa descrivere business process complessi Requisiti di progetto Invocazione dei servizi Asincrona: affidabilità Concorrente: aumentare le performance Scalabilità Throughput Tempo di risposta Gestione delle eccezioni: integrità delle transazioni Gestione degli errori: compensazione 4
Transazioni di lunga durata Transazioni Atomiche ACIDE Commit a due fasi lock Transazioni di Business A causa di una messaggistica generalmente asincrona non è possibile di riservare delle risorse per la durata necessaria Linguaggi di composizione esistenti Orchestrazione BPEL4WS BPML BPSS Coreografia BPEL4WS WSFL WSCI WS Coordination and Transaction WS-Coordination, WS-Transaction, WS- CAF WS Executable Business Processes BPEL, BPML, BPSS WS Composition WSFL, XLANG, W3C-Choreography, BPEL, Service Descriptions WSDL, WSCL, WSCI Messages SOAP Estensions Reliability, Correlation, Transactions SOAP Communications HTTP,SMTP,FTP,JMS,IIOP 5
Requisiti dei Linguaggi Interazioni peer-to-peer di lunga durata tra i partecipanti Interazione Asincrona Possibilità di avere attività concorrenti Correlazione attività asincrona coerente e consistente Il linguaggio WS-BPEL Business Process Execution Language For Web Services Definisce un modello e una grammatica per descrivere una logica business tra più partecipanti Permette di creare un nuovo servizio web per composizione di servizi esistenti (orchestrazione) I servizi terminali sono rappresentati dai propri documenti WSDL (Web Service Description Language): riuso di WS e incapsulamento di funzionalità 6
Processo BPEL Un processo è visto come un insieme di attività Elementi fondamentali: Attività semplici e strutturate Variabili Scope (ambito di visibilità) Correlazione Compensazione Fault handling 7
Attività Semplici e Strutturate <sequence> <receive.../> <flow> <sequence> <.../> <while... > <assign>...</assign> </while> </sequence> <sequence> <receive.../> <... > </sequence> </flow> <reply> </sequence> receive sequence while assign reply flow sequence receive Creazione di un Processo L istanza di un processo viene creata quando il processo viene attivato Receive o Pick createistance = yes receive reply 8
Fault e Compensazione Process flow fault handler scope scope notify manager charge credit card compensation handler refund customer ship goods fault handler rethrow compensate Servizio approvazione prestito 9