GoBack
A Vocabulary and Execution Model for Declarative Service Orchestration Stijn Goedertier K.U.Leuven
[email protected] be Advances in Semantics for Web services Workshop (semantics4ws’07); 2nd edition September 24th, 2007
Stijn Goedertier
semantics4ws’07 – 1 / 27
Outline A Vocabulary and Execution Model for Declarative Service Orchestration
Outline Declarative BPM Vocabulary Execution Model Business rule types Conclusion
■
Declarative service modeling
■
Vocabulary
■
Business rule types
■
Execution model
References Supplementary
Stijn Goedertier
semantics4ws’07 – 2 / 27
Outline Declarative BPM Business concerns Declarative modeling Example ABC No dichotomy Declarative State Vocabulary Execution Model
Declarative Representations of Work
Business rule types Conclusion References Supplementary
Stijn Goedertier
semantics4ws’07 – 3 / 27
Business Concerns in Service Modeling Outline Declarative BPM Business concerns Declarative modeling Example ABC No dichotomy Declarative State Vocabulary Execution Model
■
business regulations
■
business policies
■
costs and benefits
■
time
■
information prerequisites
■
technical and common-sense constraints
⇒
business concerns often remain implicit
Business rule types Conclusion References Supplementary
Stijn Goedertier
semantics4ws’07 – 4 / 27
Procedural vs. Declarative Representations of Work Outline Declarative BPM Business concerns Declarative modeling Example ABC No dichotomy Declarative State
Business concerns Execution plan Service life cycle Rule enforcement Communication Model granularity Modality Alteration Coordinator/Worker Language
Vocabulary Execution Model
Procedural modeling
Declarative modeling
implicit explicit single event what, when and how what, how process-centric what must design time human-machine procedural
explicit implicit multiple life cycle events what what service-centric what must, ought and can design and run time agent declarative
Business rule types Conclusion References Supplementary
Stijn Goedertier
■
procedural languages: UML Activity Diagrams, BPMN, EPCs
■
declarative languages: case handling, OWL-S, WSMO, constraint specification, ConDec, PENELOPE,... ◆
heterogenous knowledge representation paradigms
◆
the data and resource perspective is neglected
◆
still explicit human or machine mediated orchestration
◆
heterogenous execution models semantics4ws’07 – 5 / 27
Declarative BPM: example ABC Outline Declarative BPM Business concerns Declarative modeling Example ABC No dichotomy Declarative State
■
state space: activity types A,B and C.
■
rule: “A,B and C can be performed at most once.”
■
rule: “C can only be performed after A is performed.”
Vocabulary Execution Model
A
B
Business rule types
C A
Conclusion
A
References
C
~
B
C
B
Supplementary
(a)
Stijn Goedertier
(b)
(c)
■
Very often (a), (b) or (c) is taken for granted without explicitly documenting the underlying business concerns
■
however, business concerns are not limited to sequence constraints semantics4ws’07 – 6 / 27
Combining procedural and declarative modeling Outline Declarative BPM Business concerns Declarative modeling Example ABC No dichotomy Declarative State Vocabulary
■
refinement: no dichotomy is implied
■
highly structured processes ⇒ procedural modeling e.g. transaction processing,...
■
e.g. calling center, clinical processes,...
Execution Model Business rule types Conclusion
ad-hoc processes ⇒ declarative or hybrid modeling
■
“pockets of flexibility” [9]
References Supplementary
D
B E A
C
~
■
Stijn Goedertier
F
Documenting business concerns already yields benefits
semantics4ws’07 – 7 / 27
EM-BrA2 CE Framework: a Declarative View on State Outline Declarative BPM Business concerns Declarative modeling Example ABC No dichotomy Declarative State
■
a process is a trajectory in a state space
■
12 state transitions ◆
coordination: create, schedule, assign, revoke
◆
work: start, addFact, updateFact, removeFact, complete
◆
exceptions: skip, abort, redo
Vocabulary Execution Model Business rule types Conclusion
■
References
17 business rule types constrain state transitions schedule(a1,duedate1,….) assign(a1,agent1,...) addFact(a1,[...],...) complete(a1,agent1)
Supplementary
time business facts agent activity event has type has performer ...
⇒ Stijn Goedertier
a1 e1,e2 …,(e2,scheduled)
agent1 a1 e1,e2,e3 …,(e3,assigned) (a1,agent1)
has(order1,line1) agent1 a1 e1,e2,e3,e4,e5 …,(e5,factAdded) (a1,agent1)
has(order1,line1) agent1 a1 e1,e2,e3,e4,e5,e6 …,(e6,completed) (a1,agent1)
EM-BrA2 CE = Vocabulary + Execution Model semantics4ws’07 – 8 / 27
Outline Declarative BPM Vocabulary SBVR Service capability Service instance State Space Example Execution Model Business rule types Conclusion
A Vocabulary for Declarative Process Modeling
References Supplementary
Stijn Goedertier
semantics4ws’07 – 9 / 27
Ontology language: SBVR Outline
■
SBVR: Semantics of Business Vocabulary and Rules
■
under finalization with the OMG [5]
■
properties: higher-order classification, local closure, natural language representation, rule modality...
■
semantic formulations: meaning separate from expression
■
combination of linguistics and logics
■
other candidates: MOF/UML, OWL, WSML
■
EM-BrA2 CE = Enterprise Modeling with Business Rules, Agents, Activities, Concepts and Events
Declarative BPM Vocabulary SBVR Service capability Service instance State Space Example Execution Model Business rule types Conclusion References Supplementary
Stijn Goedertier
semantics4ws’07 – 10 / 27
EM-BrA2 CE: Type-level Vocabulary Outline
is about 1
Declarative BPM Vocabulary SBVR Service capability Service instance State Space Example
*
Event Type
Activity Event Type
has 1
SBVR:ConceptType
Business Concept Type Role * *
has business ID type * 1..*
is of Activity Type 1 or Service * * Capability
can coordinate can perform * *
Role can subscribe to EventType in context of ActivityType
*
StateSpace
can manipulate can make visible * *
SBVR:VerbConcept
Business Fact Type or Business Verb Concept
can consist of *
Execution Model Business rule types Conclusion References
The state space of a service capability is described by facts about ■
the involved roles
■
the sub-service capabilities
■
the business fact types whose instances can be manipulated or made visible
■
the event types that agents of a particular role can perceive
Supplementary
Stijn Goedertier
semantics4ws’07 – 11 / 27
EM-BrA2 CE: Instance-level Vocabulary Outline
is about SBVR:IndividualConcept *
Declarative BPM Vocabulary SBVR Service capability Service instance State Space Example
*
Event
Individual Business Concept
has business ID * is of 1..* * *
Activity or Service Instance
0..1
Activity Event
Execution Model
State has 1
*
has coordinator Agent or has performer * Service performer 1 * Provicer beneficiary 1 is parent of 1 pertains to * * *
Agent has Role in *context of Activity
SBVR:Fact
Business rule types
Business asserts Fact *retracts *
Conclusion
Role Deontic * Assignment *
Obligation
Conditional Obligation
Permission
Conditional Permission
Prohibition
References Supplementary
Stijn Goedertier
The state of a service is described by facts about ■
the agents and their roles
■
the sub-services out of which the service consists
■
the business facts that hold at that particular time
■
the events that have occurred within the context of the service
■
the deontic assignments (i.e. the obligations and semantics4ws’07 – 12 / 27 permissions) that apply
Example: the State Space of an Sales Order Service Capability Outline
■
composite service capability: coordinate sales order
■
atomic service capability: place order, accept order, reject order, pay, ship
■
event types: created, assigned, started, completed
■
business concepts: order, order line
■
business fact types: order has order line, order is critical,...
Declarative BPM Vocabulary SBVR Service capability Service instance State Space Example Execution Model Business rule types Conclusion References rejectOrder(seller, buyer)
Supplementary BUYER
[violation(obligation(seller, ship(seller, buyer), 4))]
placeOrder acceptOrder(seller, buyer)
pay ship(seller, buyer)
[violation(obligation(seller, xorr(acceptOrder(seller, buyer), rejectOrder(seller, buyer)), 2))]
SELLER
acceptOrder
ship
pay(buyer, seller)
[violation(obligation(buyer, pay(buyer, seller), 5))]
placeOrder(buyer, seller)
rejectOrder
Stijn Goedertier
semantics4ws’07 – 13 / 27
Outline Declarative BPM Vocabulary Execution Model Unified Execution 12 State Transitions Create Transition Business rule types Conclusion References
An Execution Model for Declarative Process Models
Supplementary
Stijn Goedertier
semantics4ws’07 – 14 / 27
EM-BrA2 CE: Execution Model Outline
■
models the service life cycle
■
... in terms of 12 generic state transitions
■
monotonicity: each state transition results in a new fact base
Declarative BPM Vocabulary Execution Model Unified Execution 12 State Transitions Create Transition Business rule types Conclusion References Supplementary
schedule(a1,duedate1,….) assign(a1,agent1,...) addFact(a1,[...],...) complete(a1,agent1)
time business facts agent activity event has type has performer ...
Stijn Goedertier
a1 e1,e2 …,(e2,scheduled)
agent1 a1 e1,e2,e3 …,(e3,assigned) (a1,agent1)
has(order1,line1) agent1 a1 e1,e2,e3,e4,e5 …,(e5,factAdded) (a1,agent1)
has(order1,line1) agent1 a1 e1,e2,e3,e4,e5,e6 …,(e6,completed) (a1,agent1)
semantics4ws’07 – 15 / 27
EM-BrA2 CE: Twelve state transitions Outline
■
Modeled with Colored Petri Nets (CP-Nets)
■
CP-Net useful for simulation (event logs)
■
precise execution model
Declarative BPM Vocabulary Execution Model Unified Execution 12 State Transitions Create Transition
Revoke
Business rule types Conclusion
UpdateFact
notassigned
Assign
assigned
notscheduled
Schedule
scheduled
AddFact
RemoveFact
References Create
Start
started
Supplementary notstarted
Schedule
Skip
Abort
active
Complete
Redo
Skip
completed skipped aborted
Stijn Goedertier
semantics4ws’07 – 16 / 27
EM-BrA2 CE: The Create transition Outline
■
concerns: business identifier, parent activity, coordinator, event logging,...
■
requestCreate: a hook for deductively reasoning with business rules
Declarative BPM Vocabulary Execution Model Unified Execution 12 State Transitions Create Transition Business rule types
initAgents()
Conclusion References
agent
initFacts()
rootActivity() activity
businessfacts
AGENT
ACTIVITY
eventhistory FACTLIST
1`parent ++ create(a,e)
Supplementary
coordinator aid+1 activityID
eh
Create aid
initActivityId() cid
ACTIVITYid newcid initConceptId() conceptID ConceptId CONCEPTid
at
EVENTLIST logs(e::es,eh)
cs
parent
[]
[businessIDs(at,cs,cid)=SOME(bidcs,newcs,newcid), isParent(parent,at,bidcs,cs), started(parent), canCoordinate(coordinator,a,parent), requestCreate(aid,at,bidcs,newcs,parent,coordinator, cs,eh)=SOME(a,e::es)] initActivityType()
activitytype ACTIVITYTYPE
Stijn Goedertier
semantics4ws’07 – 17 / 27
Outline Declarative BPM Vocabulary Execution Model Business rule types Business rule types Control flow Data aspect Organization aspect Conclusion
Relating Business Rule Types to the Execution Model
References Supplementary
Stijn Goedertier
semantics4ws’07 – 18 / 27
data organization
Stijn Goedertier
x
x x
redo
abort
skip
complete
updateFact
removeFact
addFact
start
revoke
related work [6],[4] [8] [8],[11] [12] [7] [9] [9],[7] [9],[7] [9],[7] [6] [12] [12] [10]
assign
business rule type Temporal deontic rule Activity precondition Activity postcondition Dynamic integrity Activity cardinality Serial activity constraint Activity order Activity exclusion Activity inclusion Reaction rule Static integrity Derivation rule Activity authorization Activity allocation rule Visibility constraint Event subscription
schedule
aspect control flow
create
Business rule types
x x x
x x x x x
x x x x
x
x
x x
x x x x x
x x
x
x x x
x
x x
x x
[10] [10]
semantics4ws’07 – 19 / 27
Control flow aspects Outline
■
temporal deontic rule
■
e.g. “Necessity: when a buyer completes a place order activity, the seller has the obligation to perform a accept order activity or a reject order activity within 2 time units”.
■
transition types: schedule, start, redo
■
activity precondition, postcondition, activity cardinality constraint, serial activity constraint, activity order constraint, activity inclusion and exclusion constraint
Declarative BPM Vocabulary Execution Model Business rule types Business rule types Control flow Data aspect Organization aspect Conclusion References Supplementary
Stijn Goedertier
semantics4ws’07 – 20 / 27
Data aspects Outline
■
static integrity constraint
■
e.g. “It is necessary that each order has at least one order line.”.
■
derivation rule
■
e.g. “necessity: a luxury product has a value-added-tax of 20 percent.”
■
transition types: addFact, removeFact, updateFact
Declarative BPM Vocabulary Execution Model Business rule types Business rule types Control flow Data aspect Organization aspect Conclusion References Supplementary
Stijn Goedertier
semantics4ws’07 – 21 / 27
Organizational aspects Outline
■
activity authorization rule
■
e.g. “‘sales representative can perform accept order’”.
■
e.g. “It is necessary that an agent that has function junior sales representative can not perform activities that have type accept order or reject order for an order that has a total amount larger than 2000 euro.”.
■
activity allocation rule, event subscription constraint, visibility constraint
■
transition types: assign
Declarative BPM Vocabulary Execution Model Business rule types Business rule types Control flow Data aspect Organization aspect Conclusion References Supplementary
Stijn Goedertier
semantics4ws’07 – 22 / 27
Outline Declarative BPM Vocabulary Execution Model Business rule types Conclusion Contributions Future work
Conclusion
References Supplementary
Stijn Goedertier
semantics4ws’07 – 23 / 27
Contributions ■
declarative BPM: the “bigger” picture
■
EM-BrA2 CE: unifying vocabulary and execution model [2]
■
makes abstraction of KR paradigms
Conclusion Contributions Future work
■
CP-Net useful for simulation and generation of artificial event logs
References
■
representation also useful in process mining [3]
Outline Declarative BPM Vocabulary Execution Model Business rule types
Supplementary
Stijn Goedertier
semantics4ws’07 – 24 / 27
Future work Outline
■
Temporal logic execution model
■
Model-driven design of Web Services
■
Tools
Declarative BPM Vocabulary Execution Model Business rule types Conclusion Contributions Future work References Supplementary
Stijn Goedertier
semantics4ws’07 – 25 / 27
References Outline Declarative BPM Vocabulary Execution Model
[1] Johann Eder and Schahram Dustdar, editors. BPM 2006 International Workshops, volume 4103 of Lecture Notes in Computer Science. Springer, 2006. [2] S. Goedertier, R. Haesen, and J. Vanthienen. EM-BrA2 CE v0.1: A Vocabulary and Execution Model for Declarative Process Models. FETEW research report, K.U.Leuven, 2007. http://www.econ.kuleuven.ac.be/public/ndbaf38/EM-BrAACE.
Business rule types Conclusion
[3] S. Goedertier, D. Martens, B. Baesens, R. Haesen, and J. Vanthienen. A new approach for discovering business process models from event logs. FETEW Research Report KBI 0716, K.U.Leuven, 2007.
References Supplementary
[4] Stijn Goedertier and Jan Vanthienen. Designing compliant business processes with obligations and permissions. In Eder and Dustdar [1], pages 5–14. [5] Object Management Group. Semantics of Business Vocabulary and Business Rules (SBVR) – Interim Specification. OMG Document – dtc/06-03-02, 2006. [6] Adrian Paschke, Martin Bichler, and Jens Dietrich. Contractlog: An approach to rule based monitoring and execution of service level agreements. In Asaf Adi, Suzette Stoutenburg, and Said Tabet, editors, RuleML, volume 3791 of Lecture Notes in Computer Science, pages 209–217. Springer, 2005. [7] Maja Pesic and Wil M. P. van der Aalst. A declarative approach for flexible business processes management. In Eder and Dustdar [1], pages 169–180. [8] Dumitru Roman, Uwe Keller, Holger Lausen, Jos de Bruijn, Ruben Lara, Michael Stollberg, Axel Polleres, Cristina Feier, Christoph Bussler, and Dieter Fensel. Web service modeling ontology. Applied Ontology, 1(1):77–106, 2005. [9] Shazia Wasim Sadiq, Maria E. Orlowska, and Wasim Sadiq. Specification and validation of process constraints for flexible workflows. Inf. Syst., 30(5):349–378, 2005.
Stijn Goedertier
[10] Mark Strembeck and Gustaf Neumann. An integrated approach to engineer and enforce context constraints in rbac environments. ACM Trans. Inf. Syst. Secur., 7(3):392–427, 2004. semantics4ws’07 – 26 / 27
Outline Declarative BPM Vocabulary Execution Model Business rule types Conclusion References Supplementary Defining State Update – Complete Create – Assign Update – Complete
Stijn Goedertier
Thank you! Any Questions?
semantics4ws’07 – 27 / 27
Outline Declarative BPM Vocabulary Execution Model Business rule types Conclusion References Supplementary
Stijn Goedertier
Supplementary slides
semantics4ws’07 – 28 / 27
EM-BrA2 CE: State and State Space Outline
■
activity type has state space
■
activity has state
Declarative BPM Vocabulary Execution Model Business rule types
SBVR:Concept includes
Conclusion References
SBVR:VerbConcept
Supplementary
Activity Type or Service Capability has as type
is in SBVR:ConceptualSchema SBVR:Fact is in includes is closed in is internally closed in is based on is semi-closed in
is of 1
has 1
StateSpace
SBVR:ConceptualModel underlies
fact type has fact in conceptual model is of type Activity or Service Instance
Stijn Goedertier
State is of
has 1
conforms to
AbstractState or Decision Point
semantics4ws’07 – 29 / 27
EM-BrA2 CE: the updateFact and Complete transitions Outline
Service Provider
Event Notification
Declarative BPM
notify( event )
Vocabulary Activity Coordination
Execution Model
create( aid, at, bid, pid, coordinatorid ) schedule( aid, duedate, coordinatorid ) assign( aid, workerid, coordinatorid ) revoke( aid, workerid, coordinatorid ) start( aid, workerid ) addFact( aid, f, workerid ) removeFact( aid, f, workerid ) updateFact( aid, f1, f2, workerid ) complete( aid, workerid ) skip( aid, coordinatorid ) abort( aid, coordinatorid ) redo( aid, coordinatorid ) readFact( aid, factType, cids, agentid )
Business rule types Conclusion References Supplementary
Activity Coordination Service
Concept Manipulation addFact( f, agentid ) removeFact( f, agentid ) updateFact( f1, f2, agentid ) readFact( factType, cids, agentid )
7: notify
aBuyer : Service Provider
1: create, schedule, assign, start, addFact, complete
Concept Service
3: notify
aSeller : Service Provider
5: create, schedule, assign, start, addFact, complete
4: addConcept Place Order : Activity Coordination Service 2: addFact (multiple)
Purchase Order : Concept Service
Stijn Goedertier
Accept Order : Activity Coordination Service 6: addFact (multiple)
Sales Order : Concept Service
semantics4ws’07 – 30 / 27
EM-BrA2 CE: the Create and Assign transitions Outline Declarative BPM
initAgents() agent
initFacts()
rootActivity() activity
Vocabulary
businessfacts
AGENT
ACTIVITY
FACTLIST
coordinator
References
aid+1
aid
[businessIDs(at,cs,cid)=SOME(bidcs,newcs,newcid), isParent(parent,at,bidcs,cs), started(parent), canCoordinate(coordinator,a,parent), requestCreate(aid,at,bidcs,newcs,parent,coordinator, cs,eh)=SOME(a,e::es)]
initActivityId() cid
ACTIVITYid newcid initConceptId() conceptID ConceptId CONCEPTid
Supplementary
eh
Create
activityID
EVENTLIST logs(e::es,eh)
cs
parent
Business rule types Conclusion
eventhistory
1`parent ++ create(a,e)
Execution Model
[]
at
initActivityType() activitytype ACTIVITYTYPE
initAgents() agent
businessconcepts
activity AGENT
ACTIVITY
1`parent++assign(a,e,worker) 1`a++1`parent 1`worker++1`coordinator
initFacts()
rootActivity()
FACTLIST
eventhistory EVENTLIST log(e,eh)
cs
Assign
[]
eh
[not(assigned(a)), active(a), hasParent(a,parent), canCoordinate(coordinator,a,parent), requestAssign(a,worker,coordinator,cs,eh)=SOME(e)]
Stijn Goedertier
semantics4ws’07 – 31 / 27
EM-BrA2 CE: the updateFact and Complete transitions Outline Declarative BPM
initAgents() agent
activity
Vocabulary
AGENT
businessfacts ACTIVITY
UpdateFact
Conclusion References
FACTTYPE.all() facttype FACTTYPE
initAgents() agent
activity
eh
initFacts() businessfacts
ACTIVITY complete(a,e)
worker
log(e,eh)
rootActivity()
AGENT
EVENTLIST
[started(a), active(a), assignedTo(worker,a), (hasInputType(activityType(a),ct) orelse canModifyFactType(activityType(a),ct)), findFactInActivityState(cs,a,ct)=SOME(c1), generateFact(businessID(a),#1 c1,ct)=SOME(c2), requestUpdateFact(a,worker,cs,eh,c1,c2)=SOME(e)]
ct
Supplementary
eventhistory
cs
a worker
[]
FACTLIST
updateFact(a,c1,c2,e)
Execution Model Business rule types
initFacts()
rootActivity()
a
cs
Complete
[] eventhistory
FACTLIST commit(cs,a,e)
EVENTLIST log(e,eh)
eh [started(a), active(a), assignedTo(worker,a), noActiveChildren(a,eh), allMandatoryInputPresent(cs,a), requestComplete(a,worker,cs,eh)=SOME(e)]
Stijn Goedertier
semantics4ws’07 – 32 / 27