Notation e WebML
24
Introduzione
IWebServiceeBPMNsonostandarddefactoperlinteroperabilitinrete
aserviziodelleimpresemoderne
IWebServicesonoutilizzatiperlinterazionetrasistemiremoti
Laspecificadelprocessodibusinesssioccupadelladefinizionedeivincolidiprocessoe
dellorchestrazionedeiWebService
Tuttaviailworkflowdiunprocessodibusinessraramentecostituito
solamentedallorchestrazionediWebService
Spessolinterazionecongliutentifondamentale(BPEL4PeoplevsBPEL4WS)
indispensabileunapprocciomodeldrivencheconiughilorchestrazione
diWebServiceelamodellazionedellinterfacciaWebdellutente
WebML
BPMN
25
Model-driven development process
1. SpecificamanualedelmodellodibusinessinBPMN(esteso)
2. TrasformazioneautomaticadiBPMNinWebML
3. EventualeraffinamentomanualedelmodelloWebML
4. GenerazioneautomaticadelcodiceinambienteJ2EE
26
Che cos BPM?
BPM(BusinessProcessModeling)Definizionedelprocessodibusiness
inlinguaggio(semi)formale
BPMNunanotazioneperdefinireprocessidibusiness
BPMNcopretrelivellidiversidimodellazione:
ProcessMapssempliciflowchartdelleattivit
ProcessdescriptionsFlowchartestesiconinformazioniaggiuntive,manonancorain
gradodimodellareleperformancedelprocesso
ProcessModelsflowchartestesiconinfornazioniaggiuntiveinmodotalecheil
processopuessereanalizzato,simulatoedeseguito
27
Concetti chiave
Unlimitatosetdielementigraficiperconsentirealdesignerdiprocessodi
comprendereilflussodiesecuzionedelleattivit
UnBusinessProcessDiagram(BPD)costituitodaquattrocategoriedi
elementi
Flowobject(Events,Activities,Gateways)
ConnectingObjects(SequenceFlow,MessageFlow,Associations)
Swimlanes(Pool,Lanes)
Artifacts(DataObjects,Groups,Annotations)
28
Pool e Lane
Pool
Rappresentailparticipanteinunprocesso,ciouna
particolareentitdibusiness(e.g.,unacompagnia)oppure
puessereunruolopigenerale(e.g.,unfornitore,un
compratore)
Lane 1 Lane 2
Lane
Pool
unapartizioneallinternodellapool
utilizzataperorganizzareeclassificareattivitallinterno
dellapool
utilizzataspessopermodellareruoliinterni(e.g.,
Manager,Associato),sottosistemi(peresempio,
unapplicazionesoftwaredelladitta),dipartimenti(e.g.,
shipping,finance)
29
Come leggere un diagramma
Il token un concetto molto utile che aiuta nella lettura di un BPD
Linizio di un processo genera un token che pu essere eventualmente
consumato alla fine del processo
Un token segue la Sequence Flow e passa attraverso i Flow Objects del
processo
Il comportamento del processo pu essere evidenziato tenendo traccia del
movimento del token nel processo stesso
Possono essere previsti pi token nel caso di rami paralleli allinterno del
processo (attivit eseguite in maniera concorrenziale)
30
Sequence Flow
Una Sequence Flow specifica lordine in cui sono eseguite le attivit in un
processo di business
Linizio e la fine di una Sequence Flow pu essere uno dei seguenti oggetti
Eventi
Attivit
Gateway
31
Attivit
Unattivit
Rappresenta un compito eseguito allinterno di un processo di
business
Pu essere
Un task
Un sotto-processo
Pu essere eseguita una volta sola o avere allinterno dei cicli
32
Task
Rappresenta lattivit atomica inserita allinterno di un processo di business;
pu essere eseguito
manualmente: al di fuori del processo (per esempio, un cliente accetta
lofferta)
automaticamente, come servizio: implementato come un Web Service o
come un altro tipo di applicazione
da un essere umano con il supporto di unapplicazione software e la cui
esecuzione opportunamente programmata
Un task presenta un proprio stato
Ready: pronto per essere eseguito
Active: in esecuzione
Completed: eseguito e completato
Aborted: interrotto per qualche problema
Pu avere dei parametri 33
Parametri
Un parametro:
una propriet semplice che contiene uninformazione gestita dal
processo
usato quando necessario prendere una decisione o mandare un
messaggio
definito da un nome, un tipo semplice (e.g., string, integer) o
complesso (business object), da un eventuale insieme di valori
possibili, da una politica di selezione (singola o multipla)
definito a livello di pool
34
Business Object
Un business object:
un oggetto complesso che contiene unentit gestita dal processo
(per esempio, un ordine, una fattura)
utile quando linformazione di tipo strutturato e viene descritta da
pi propriet
una propriet di tipo semplice, descritta da un nome, il tipo, i
valori ammissibili, la politica di selezione (semplice o multipla)
un business object definito a livello di processo
35
Gateway
Un gateway:
usato per modellare biforcazioni o convergenze di Sequence Flow
allinterno del processo di business
pu essere eseguito
manualmente da un utente (che sceglie in base ai valori di
parametri che vanno mostrati allutente stesso)
automaticamente, sulla base di condizioni di verit derivanti da
particolari combinazioni di valori di parametri
esistono diversi tipi di gateway
esclusivo
inclusivo
parallelo
36
Exclusive Data-based Gateway
37
Inclusive Gateway
38
Parallel Gateway
39
Eventi
Un evento:
si verifica durante lesecuzione del processo di business
influenza lesecuzione del processo, ha una causa (trigger) e un
effetto (result)
pu
iniziare un processo di business
terminare un processo di business
interrompere/riesumare un processo di business
ne esistono di diversi tipi: nome, message, timer, signal, conditional,
link, error, cancel, terminate, compensation
40
Esempio
,
5
41
Signal event
Un segnale usato per la comunicazione tra pools oppure addirittura tra
BPD diversi
Un segnale definito da un nome e da un insieme di parametri da mostrare o
modificare
Un segnale non un messaggio, che ha un obiettivo specifico, ma un
broadcast
processi multipli possono avere eventi che sono attivati dallo stesso
segnale
42
Esempio
43
Sotto-processi
Un sotto-processo modella unattivit composta, che pu essere dettagliata
come controllo di flusso di altre attivit
I sotto-processi permettono lo sviluppo di processi di business in maniera
iterativa
Ogni sotto-processo punta ad un BPD definito separatamente
Un sotto-processo presenta input/output propri che espone al momento della
sua invocazione/esecuzione
Un sotto-processo pu facilitare la lettura e la consultazione del BPD
44
Sotto-processi
45
Trasformazione BPMN-WebML
Generazione della base di dati contenente i metadati del processo
Generazione della Home Site View per permettere il login dei diversi utenti
Generazione di una Administration Site View per la gestione del processo
Generazione di una Control Site View che implementa la logica di controllo
del processo
Generazione di un modulo per ogni attivit/gateway del processo
46
Data Model
Process
Metadata
Actors
Run-Time
Log
NEXT unit
La next unit incapsula la logica di controllo del processo
Sfrutta le informazioni contenute tra i metadati del processo
Calcola lo stato corrente del processo e permette le transizioni di stato delle
varie attivit
Richiede i seguenti input:
caseID (lID dellistanza del processo attualmente in esecuzione)
activityInstanceID (lID dellistanza di attivit attualmente in
esecuzione)
conditionParameter (i valori necessari per valutare le condizioni)
48
NEXT unit (cont.d)
Quattro modalit di esecuzione:
Process start. Istanzia e fa partire un case dato il ProcessID
Process end. Dato lactivityInstanceID dellultima attivit, setta il
Case a Ended
Calculate and execute. Dato lactivityInstanceID dellultima attivit,
attiva lesecuzione delle attivit successive
Execute. Dato lactivityInstanceID, setta il suo stato ad Active e ne
lancia lesecuzione
49