MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione Corso di Laurea Specialistica in Ingegneria Informatica Milano, 7 aprile 2006
Sommario Obiettivi Limitazioni Pattern supportati e modifiche al linguaggio WS-BPEL Architettura ed implementazione Caso di studio e demo Conclusioni
Obiettivi Interpretazione di un sottoinsieme proprio di costrutti WS-BPEL Esecuzione concorrente: di più istanze di processo di più attività WS-BPEL Realizzazione di un orchestratore di processi WS-BPEL per palmare:
Unione di due linguaggi: WSFL e XLANG Per comporre più web service per formare un unico servizio più complesso Due tipi di attività: Semplici: attività esecutive e per la gestione dei web service Complesse: attività per la gestione del flusso esecutivo Gestione delle variabili Gestione degli errori WS-BPEL Linguaggio per la composizione e il coordinamento di web service Tipologie: Messaggio WSDL Tipo Semplice XML Schema Elemento XML Schema Utilizzate nella gestione dei web service e per la valutazione di condizioni Possono essere manipolate Fault Handlers Compensation Handlers Le eccezioni sono generate: Attraverso messaggi di errore Esplicitamente
Ambiente mobile Rete Autonomia Capacità elaborativa Memoria Display e interazione con lutente Limitazioni: Velocità inferiore rispetto ai desktop Forti limitazioni alle funzionalità fornite Rispetto ai palmari di vecchia generazione lautonomia si è ridotta Aumento di funzionalità e prestazioni Indicazioni dei produttori poco affidabili Riferite a condizioni di utilizzo poco aderenti alla realtà Problemi con contenuti pensati per monitor tradizionali Ordine di presentazione delle informazioni Ambiente con elevate probabilità di disconnessione Discontinuità delle prestazioni dovute a fattori esterni incontrollabili Sicurezza RAM non volatile funge da hard disk Numero limitato di applicazioni e dati immagazzinabili Slot di espansione
La J2ME non prevede la possibilità di far funzionare unapplicazione come server Non cè una maniera diretta per invocare un dispositivo dallesterno principale profilo utilizzato insieme a CLDC Insieme di librerie e di API fondamentali per lo sviluppo di applicazioni per dispositivi mobili in abbinamento ad altre librerie aggiuntive per offrire un ambiente di sviluppo completo J2ME CLDC 1.1 MIDP 2.0 Librerie aggiuntive: J2ME Web Services 1.0 Optional Package (JSR-172) PDA Optional Package (JSR-75) Versione alleggerita ed ottimizzata della J2SE appositamente studiata per dispositivi mobili Limitazioni: Comunicazione Librerie aggiuntive Si adatta a dispositivi: dalle capacità limitate connessi alla rete in modalità wireless e discontinua Supporto limitato alle librerie J2SE Librerie aggiuntive per il supporto di alcune funzionalità Difficoltà di reperimento delle librerie necessarie per utilizzare le funzionalità aggiuntive sul dispositivo JSR-172 Per effettuare il parsing di documenti XML Per accedere a web service remoti basati su SOAP e XML JSR-75 Per navigare nel file system del dispositivo mobile Per accedere alle informazioni personali sul dispositivo
WP1 Sequence WP2 Parallel Split WP3 Synchronization WP4 Exclusive Choice WP5 Simple Merge WP6 Multi-Choice WP7 Synchronizing Merge WP11 Implicit Termination WS-BPEL modificato Workflow Pattern supportati: WP12 MI without Synchronization WP13 MI with a Priori Design Time Knowledge with Synchronization WP16 Deferred Choice WP17 Interleaved Parallel Routing WP19 Cancel Activity WP20 Cancel Case
WS-BPEL modificato Variabili: eliminato il tipo <element> CorrelationSet: eliminati perché il modello comunicativo non li richiede CompensationHandler: eliminati per avere ununica modalità di gestione degli errori EventHandlers: eliminati per evitare linterruzione improvvisa del flusso esecutivo Invoke: eliminata la possibilità di annidarle Assign: limitate le possibilità di copia Wait: eliminati i tempi dattesa specificati con deadline Flow: eliminato il costrutto <link> per evitare uneccessiva complessità del flusso esecutivo Pick e Scope: eliminate per evitare uneccessiva complessità del flusso esecutivo
Generazione di modelli di processo di documenti WS-BPEL Esecuzione di istanze di processo Recovery di istanze di processo Macrofunzionalità offerte da MicroBPEL: Architettura generale
Process creator Creazione del modello di processo a partire dal file WS-BPEL e dai file WSDL XML PARSER: parsing del documento WS-BPEL e creazione del modello dati WSDL MANAGER: verifica che i web service da invocare siano tra quelli per cui esiste uno stub
Process creator - parser Sottoinsieme delle funzionalità JSR-063 JAXP 1.2 LAPI fornita da questa libreria è detta SAX Fornisce un parser di tipo: Streaming Push Per associare determinate azioni agli elementi rilevati dal parser è necessario estendere la classe DefaultHandler J2ME Web Services 1.0: Streaming: Analisi del documento sequenziale Output generato immediatamente Richiede poche risorse No ricerche specifiche Push: manda informazioni al client ogni volta che incontra un particolare elemento
Opportune strutture dati che estendono la classe WSBPELData memorizzano il contenuto di: NameSpace PartnerLink Partner Catch Variable Attività memorizzate in una particolare struttura dati chiamata ActivityNode Process creator - struttura dati ActivityNode: Struttura ad albero Richiama la struttura dei documenti XML Liste multiple Attività strutturate come collezione di altre attività (ChildList)
Richieste di istanziazione Chiamata Remota Il chiamante si collega al Web Server Un apposito script gestito da CGI raccoglie e memorizza dati inseriti e indirizzo del chiamante in un file Il Message Reader legge il file ad intervalli regolari Le eventuali richieste trovate vengono passate allInstance Manager che si occupa di istanziazione ed esecuzione del processo Auto Chiamata Il chiamante è lutilizzatore stesso del palmare Esecuzione di qualsiasi processo WS-BPEL residente sul palmare per cui sia stato generato un modello Inserimento diretto dei dati necessari alla generazione di unistanza di processo
Instance manager Gestisce una o più istanze di processo eseguendo le varie attività che lo compongono e prendendo eventuali decisioni Comunica con i web service remoti tramite il WS MANAGER
Instance manager - esecuzione ExecutionInfo ActivityThread AbortFlag Invocazione Web Service Creazione di una copia di tutte le variabili per salvare i valori attuali dellistanza di processo Nellesecuzione del processo saranno utilizzate soltanto queste Thread specifici per ogni tipo di attività Per le attività complesse necessari meccanismi di sincronizzazione, ActivitySynchronizer Meccanismo utilizzato per propagare uno stato di errore Causa la terminazione immediata delle attività che lo rilevano Generazione automatica di stub Servizi invocabili
Recovery Gestisce lo stato dei processi in esecuzione Gestisce lo stato di ogni attività di un processo Garantisce la persistenza delle variabili di un processo in esecuzione Permette di effettuare il recovery di processi conclusi per cause di forza maggiore
Caso duso Processo per la prenotazione di voli Inserimento parametri per la ricerca Visualizzazione dei risultati Scelta del volo Visualizzazione costi Decisione Accettazione e inserimento dati pagamento Rifiuto Notifica della conclusione della transazione
Caso duso - demo
Conclusioni Obiettivi raggiunti: Realizzazione di un motore per lorchestrazione di processi WS-BPEL su palmare Gestione di un sottoinsieme proprio di costrutti WS-BPEL Sviluppi futuri: Gestione di costrutti non supportati Adeguamento alle nuove specifiche WS-BPEL
Grazie per lattenzione Milano, 7 aprile 2006