30
Configurable Declare: Designing Customizable Flexible Models Dennis Schunselaar Fabrizio Maggi Natalia Sidorova Wil van der Aalst http://www.win.tue.nl/coselog/

Configurable Declare: Designing Customizable Flexible Models

Embed Size (px)

DESCRIPTION

Presentation at the 20th International Conference on COOPERATIVE INFORMATION SYSTEMS (CoopIS 2012), 10-14 Sept 2012, Roma, Italy.

Citation preview

Page 1: Configurable Declare: Designing Customizable Flexible Models

Configurable Declare: Designing Customizable Flexible Models

Dennis Schunselaar

Fabrizio Maggi

Natalia Sidorova

Wil van der Aalst

http://www.win.tue.nl/coselog/

Page 2: Configurable Declare: Designing Customizable Flexible Models

Procedural versus Declarative

PAGE 2

Page 3: Configurable Declare: Designing Customizable Flexible Models

Procedural versus Declarative

PAGE 3

Page 4: Configurable Declare: Designing Customizable Flexible Models

Procedural Process Models

• Mainstream notations: BPMN, EPCs, ULM Ads, etc.• Nothing is possible unless explicitly triggered.• Removing model elements yields "less" behavior.• Procedural models become complex when there are

many alternative paths (flexibility implies complexity).

PAGE 4

register request

add extra insurance

check drivers licence

initiate check-in

start

selectcar

charge credit card

initiate check-in

end

register request

add extra insurance

check drivers licence

start

charge credit card

initiate check-in

end

Page 5: Configurable Declare: Designing Customizable Flexible Models

Remark on Petri Nets

• Petri nets are typically classified as procedural, but adding a place can only remove behavior.

PAGE 5

book car

c

add extra insurance

d change booking

e

confirm initiate check-in

j

check driver’s license

k

charge credit card

i

select car

g

supply car

a

b

skip extrainsurance

f

h

add extra insurance

skip extra insurance

l

book car

c

add extra insurance

d change booking

e

confirm initiate check-in

j

check driver’s license

k

charge credit card

i

select car

g

supply car

in

a

b

skip extrainsurance

f

h

add extra insurance

skip extra insurance

l

c5

c6

c7

c9

c10

c11

book car

c

add extra insurance

d change booking

e

confirm initiate check-in

j

check driver’s license

k

charge credit card

i

select car

g

supply car

in

a

b

skip extrainsurance

f

h

add extra insurance

skip extra insurance

l

out

c1 c2

c3

c4

c5

c6

c7

c8

c9

c10

c11

Page 6: Configurable Declare: Designing Customizable Flexible Models

The Declare language

PAGE 6

b

c

a e

non co-existence: activities b and c cannot happen both

response: every occurrence of c should be eventually followed by h

g

h

precedence: every occurrence of c needs to be preceded by a

response

non co-existence

precedence

book car

add extra insurance early

confirm

skip extraInsurance early

add extra insurance late

skip extra insurance late

Page 7: Configurable Declare: Designing Customizable Flexible Models

Basic idea

A B

LTL semantics

Page 8: Configurable Declare: Designing Customizable Flexible Models

Example: "existence response"

• OK:• [ ]• [A,B,C,D,E]• [A,A,A,C,D,E,B,B,B]• [B,B,A,A,C,D,E]• [B,C,D,E]

• NOK• [A]• [A,A,C,D,E]

A B

Page 9: Configurable Declare: Designing Customizable Flexible Models

Example: "response"

• OK:• [ ]• [A,B,C,D,E]• [A,A,A,B,C,D,E]• [B,B,A,A,B,C,D,E]• [B,C,D,E]

• NOK• [A]• [B,B,B,B,A,A]

A B

Page 10: Configurable Declare: Designing Customizable Flexible Models

Example: "precedence"

• OK:• [ ]• [A,B,C,D,E]• [A,A,A,C,D,E,B,B,B]• [A,A,C,D,E]

• NOK• [B]• [B,A,C,D,E]

A B

Page 11: Configurable Declare: Designing Customizable Flexible Models

Non-Configurable versus Configurable models

PAGE 11

Page 12: Configurable Declare: Designing Customizable Flexible Models

Two variants of the same process …

PAGE 12

Page 13: Configurable Declare: Designing Customizable Flexible Models

Configurable Process Model

PAGE 13

Page 14: Configurable Declare: Designing Customizable Flexible Models

Variants of the same process

PAGE 14

aa bb

dd

ee

gg hh

cc

ff

aa bb

dd

gg hh

ff

aa

dd

ee

gg hh

cc

ff

Page 15: Configurable Declare: Designing Customizable Flexible Models

Some quotes from Michelangelo• “Every block of stone has a statue

inside it and it is the task of the sculptor to discover it.”

• “I saw the angel in the marble and carved until I set him free.”

• “Carving is easy, you just go down to the skin and stop.”

Michelangelo's David

Positioning of Configuration

Page 16: Configurable Declare: Designing Customizable Flexible Models

Life is about making choices …

PAGE 16

Page 17: Configurable Declare: Designing Customizable Flexible Models

Configurable Process Models

Purchase order created

Service is accepted

Goods receipt posted

Invoice received

V

V

Process Invoice

XOR

Goods receipts

to be settled automatically

Evaluated Receipt

Settlement (ERS)

Invoicetransmitted for vendor’s

records

Material is released

Invoice postedand blocked for release

Invoicing plans require

settlement

Invoicing Plan Settlement

V

Release Invoice

manually

Payment mustbe effectes

V

GUIDELINEERS = ON, if - long term

contract- goods and

conditions are specified

REQUIRED:IPS = ON

Þ ERS = ON

Consignment/pipeline

liability is created

Consignment/pipeline

liabilities are to be settled

Consignment/ Pipeline

Settlement

V

XOR

V

Consignment/pipeline

settlement document

transmitted

XOR

XOR

Invoice postedand not

blocked for release

Release Invoice

automatically

Purchase order created

Service is accepted

Goods receipt posted

Invoice received

V

V

Process Invoice

Material is released

Invoice postedand blocked for release

Release Invoice

manually

Payment mustbe effectes

V

XOR

XOR

Invoice postedand not

blocked for release

Release Invoice

automatically

Blocking HidingConfiguration

C-EPC

C-Petri Net

C-YAWL

C-BPEL

EPC

Petri Net

YAWL

BPEL

a b

cd e

f g

h i

j

k mn

o p

l

a b

ce

g

i

mn

o p

l

C-LTS

LTS

PAGE 17

Page 18: Configurable Declare: Designing Customizable Flexible Models

a

c

e

i

g

i

Configuration Techniques

b

p

d

f

h

l

m

n

j

k

l

blockblock

o

• Blocking(removing an option)

• Hiding(skipping activities)

a b

c

d e

f g

h i

j

k m

n

o p

l

τ

hidehide

hideBlocking and hiding are the essential concepts of configuration.

“Every block of stone has a statue inside it and it is the task of the sculptor to discover it.”

PAGE 18

Page 19: Configurable Declare: Designing Customizable Flexible Models

Configurable Declare models

PAGE 19

procedural declarative

non-

confi

gurable

confi

gurable

• Subset of activities is "hideable".

• Subset of constraints is "omissible".

• There may be dependencies between the different configuration decisions (meta-constraints)

Page 20: Configurable Declare: Designing Customizable Flexible Models

Configurable Declare

PAGE 20

"hideable" activity "omissible" constraint

meta constraints are not shown graphically

Page 21: Configurable Declare: Designing Customizable Flexible Models

Step 1: Hide subset of hideable activities

PAGE 21

note the implicitly derived constraints

Page 22: Configurable Declare: Designing Customizable Flexible Models

Step 2: select valid subset of constraints (remove some of the omissible constraints)

PAGE 22

Page 23: Configurable Declare: Designing Customizable Flexible Models

Implicit Constraints Made Explicit When Hiding

PAGE 23

Page 24: Configurable Declare: Designing Customizable Flexible Models

Details (see paper)

• Not always possible to have language equivalence: use the closest constraint stronger/weaker than the implicit inexpressible constraint.

• Implicit constraints that are made explicit because of hiding may be omissible.

• Hiding is done iteratively.• Meta constraints need to be updated when hiding

activities, in fact completely new meta constraints may be introduced.

PAGE 24

Page 25: Configurable Declare: Designing Customizable Flexible Models

Example from CoSeLoG project

PAGE 25

Page 26: Configurable Declare: Designing Customizable Flexible Models

Municipality A

PAGE 26

Page 27: Configurable Declare: Designing Customizable Flexible Models

Municipality B

PAGE 27

Page 28: Configurable Declare: Designing Customizable Flexible Models

Municipality C

PAGE 28

Page 29: Configurable Declare: Designing Customizable Flexible Models

Conclusion

PAGE 29

procedural declarative

non-

confi

gurable

confi

gurable

• Configurable Declare shows that a declarative language can indeed be made configurable.

• More case studies are needed.

• Problems: − few existing

declarative process models

− adoption is difficult

procedural declarative

non-

confi

gurable

confi

gurable

Page 30: Configurable Declare: Designing Customizable Flexible Models

Advertisement: Tools supporting Declare and/or Process Configuration

PAGE 30

http://www.win.tue.nl/declare/http://www.processmining.org

discovering

Declare

models

conformance

checking

using Declare

models

enacting

Declare

models configuratio

n

support