MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE...
-
Upload
elena-fortunato -
Category
Documents
-
view
214 -
download
0
Transcript of MicroBPEL un motore per lorchestrazione di processi su palmare Paola SANDRINELLI Matteo SANSALONE...
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
SommarioSommario
Obiettivi
Limitazioni
Pattern supportati e modifiche al
linguaggio WS-BPEL
Architettura ed implementazione
Caso di studio e demo
Conclusioni
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:
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
Caso d’uso Caso d’uso - demo- demo
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
Grazie per Grazie per l’attenzionel’attenzione
Milano, 7 aprile Milano, 7 aprile 20062006