Sei sulla pagina 1di 26

Business Process Modeling and

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