MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE...

20
MicroBPEL MicroBPEL un motore per l’orchestrazione di un motore per l’orchestrazione di processi su palmare processi su palmare Paola SANDRINELLI Paola SANDRINELLI Matteo SANSALONE Matteo SANSALONE Politecnico di Milano Politecnico di Milano Facoltà di Ingegneria dell’Informazione Facoltà di Ingegneria dell’Informazione Corso di Laurea Specialistica in Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Informatica Milano, 7 aprile 2006 Milano, 7 aprile 2006

Transcript of MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE...

Page 1: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

MicroBPELMicroBPELun motore per l’orchestrazione di processi su un motore per l’orchestrazione di processi su palmarepalmare

Paola SANDRINELLIPaola SANDRINELLI

Matteo SANSALONEMatteo SANSALONE

Politecnico di MilanoPolitecnico di MilanoFacoltà di Ingegneria dell’InformazioneFacoltà di Ingegneria dell’InformazioneCorso di Laurea Specialistica in Ingegneria Corso di Laurea Specialistica in Ingegneria InformaticaInformatica

Milano, 7 aprile Milano, 7 aprile 20062006

Page 2: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

SommarioSommario

Obiettivi

Limitazioni

Pattern supportati e modifiche al

linguaggio WS-BPEL

Architettura ed implementazione

Caso di studio e demo

Conclusioni

Page 3: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

ObiettiviObiettivi

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:

Page 4: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

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-BPELWS-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

Page 5: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

Ambiente mobileAmbiente mobile

Rete

Autonomia

Capacità elaborativa

Memoria

Display e interazione con l’utente

Limitazioni:

•Velocità inferiore rispetto ai desktop

•Forti limitazioni alle funzionalità fornite

•Rispetto ai palmari di vecchia generazione

l’autonomia si è ridottaAumento di funzionalità e prestazioni

•Indicazioni dei produttori poco affidabiliRiferite 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 diskNumero limitato di applicazioni e dati immagazzinabili

•Slot di espansione

Page 6: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

La J2ME non prevede la possibilità di far

funzionare un’applicazione come server

Non c’è una maniera diretta per invocare un

dispositivo dall’esterno

•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

J2MEJ2ME

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

Page 7: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

WP1 Sequence

WP2 Parallel Split

WP3 Synchronization

WP4 Exclusive Choice

WP5 Simple Merge

WP6 Multi-Choice

WP7 Synchronizing Merge

WP11 Implicit Termination

WS-BPEL modificatoWS-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

Page 8: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

WS-BPEL modificatoWS-BPEL modificato

Variabili: eliminato il tipo <element>

CorrelationSet: eliminati perché il modello comunicativo non li richiede

CompensationHandler: eliminati per avere un’unica modalità di gestione

degli errori

EventHandlers: eliminati per evitare l’interruzione improvvisa del flusso

esecutivo

Invoke: eliminata la possibilità di annidarle

Assign: limitate le possibilità di copia

Wait: eliminati i tempi d’attesa specificati con deadline

Flow: eliminato il costrutto <link> per evitare un’eccessiva complessità del

flusso esecutivo

Pick e Scope: eliminate per evitare un’eccessiva complessità del flusso

esecutivo

Page 9: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

Generazione di modelli di processo di documenti WS-BPEL

Esecuzione di istanze di processo

Recovery di istanze di processo

Macrofunzionalità offerte da MicroBPEL:

Architettura generaleArchitettura generale

MicroBPEL

Page 10: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

MicroBPEL

Process creatorProcess 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

Page 11: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

Process creator Process creator - parser- parser

Sottoinsieme delle funzionalità JSR-063 JAXP 1.2

L’API 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

Page 12: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

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 Process creator - struttura - struttura datidati

ActivityNode:

Struttura ad alberoRichiama la struttura dei

documenti XML

Liste multiple

Attività strutturate come

collezione di altre attività

(ChildList)

Page 13: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

Richieste di istanziazioneRichieste di istanziazione

MicroBPEL

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 all’Instance Manager che si

occupa di istanziazione ed esecuzione

del processo

Auto Chiamata

•Il chiamante è l’utilizzatore 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 un’istanza di

processo

Page 14: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

Instance managerInstance manager

MicroBPEL

•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

Page 15: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

Instance manager Instance manager - - esecuzioneesecuzione

ExecutionInfo

ActivityThread

AbortFlag

Invocazione Web Service

•Creazione di una copia di tutte le variabili

per salvare i valori attuali dell’istanza di processo

•Nell’esecuzione 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

Page 16: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

RecoveryRecovery

MicroBPEL

•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

Page 17: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

Caso d’usoCaso d’uso

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

Page 18: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

Caso d’uso Caso d’uso - demo- demo

Page 19: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

ConclusioniConclusioni

Obiettivi raggiunti:

Realizzazione di un motore per l’orchestrazione 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

Page 20: MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE Politecnico di Milano Facoltà di Ingegneria dellInformazione.

Grazie per Grazie per l’attenzionel’attenzione

Milano, 7 aprile Milano, 7 aprile 20062006