modeling service choreographies with rule-enhanced business processes

42
Modeling Service Choreographies with Rule-enhanced Business Processes Milan Milanović 1 and Dragan Gašević 2 1 University of Belgrade, Serbia 2 Athabasca University, AB, Canada

Upload: dragan-gasevic

Post on 19-Jan-2015

815 views

Category:

Technology


1 download

DESCRIPTION

The research community has so far mainly focused on the problem of modeling of service orchestrations in the domain of service composition, while modeling of service choreographies has attracted less attention. The following challenges in choreography modeling are tackled in this paper: i) choreography models are not well-connected with the underly-ing business vocabulary models. ii) there is limited support for decoupling parts of business logic from complete choreography models. This reduces dynamic changes of choreographies; iii) choreography models contain redundant elements of shared business logic, which might lead to an inconsistent implementa-tion and incompatible behavior. Our proposal – rBPMN – is an extension of a business process modeling language with rule and choreography modeling support. rBPMN is defined by weaving the metamodels of the Business Process Modeling No-tation and REWERSE Rule Markup Language. To evaluate our proposal, we use service-interaction patterns and compare our approach with related solutions.

TRANSCRIPT

Page 1: Modeling Service Choreographies with Rule-enhanced Business Processes

Modeling Service Choreographies with

Rule-enhanced Business Processes

Milan Milanović1 and Dragan Gašević2

1University of Belgrade, Serbia2Athabasca University, AB, Canada

Page 2: Modeling Service Choreographies with Rule-enhanced Business Processes

Problem Domain

Process modeling and service composition Orchestrations – CASCON 2009

Business processes from one participant’s side Choreographies

Business processes from a global perspective

Page 3: Modeling Service Choreographies with Rule-enhanced Business Processes

Available languages (e.g., BPMN) Challenges

How to support business vocabularies/rules? How to manage redundant elements?

MODELS 2009

Choreography Modeling

Page 4: Modeling Service Choreographies with Rule-enhanced Business Processes

Extension of the BPMN2 language Software language engineering Adding support for vocabularies and rules Building on the previous related work

iBPMN [Decker & Puhlmann, 2007]

MODELS 2009

Approach

Greetings for the EDOC friends from the International Conference on Software Language Engineering

http://planet-sl.org

Page 5: Modeling Service Choreographies with Rule-enhanced Business Processes

Rule-enhanced BPMN - rBPMN Interconnection and interaction models Evaluation mechanism – expressiveness

Service Interaction Patterns

MODELS 2009

Result

Page 6: Modeling Service Choreographies with Rule-enhanced Business Processes

Processes & Rules – Option 1

Complete processes modeled by rules With reaction and production rules

Some issues What’s the identity of a business process? Which languages to use? Are the languages at the same level?

Page 7: Modeling Service Choreographies with Rule-enhanced Business Processes

Processes & Rules – Option 2

Hybrid approaches BP stays, but rules are added for

control flow decisions, data constraints, and process composition [Graml et al., 2007]

Page 8: Modeling Service Choreographies with Rule-enhanced Business Processes

MODELS 2009

The BPMN Language

Page 9: Modeling Service Choreographies with Rule-enhanced Business Processes

Rules and Business Processes

Challenges to have rules as first class concepts in BPs to support vocabularies/ontologies to define message and event typing to formalize defining conditions to enable declarative (parts of) processes

MODELS 2009

Page 10: Modeling Service Choreographies with Rule-enhanced Business Processes

Representational Analysis

Based on the BWW model

PΔR - Symmetric Difference; P∩R – Intersection; P/R & R/P -Relative Complement

Vid Prezel

Page 11: Modeling Service Choreographies with Rule-enhanced Business Processes

Representational Analysis

Based on the BWW modelVid Prezel

Page 12: Modeling Service Choreographies with Rule-enhanced Business Processes

Rule Modeling

REWERSE I1 Rule Markup Language (R2ML) with a UML-based graphical concrete syntax

MODELS 2009

Page 13: Modeling Service Choreographies with Rule-enhanced Business Processes

REWERSE I1 Rule Markup Language

MODELS 2009

Extension for Rule Models-name : String

FlowElement

-isForCompensation : Boolean

Activity Event

-gatewayDirection : GatewayDirection

Gateway

SequenceFlow-targetRef

1

-incoming

*

-sourceRef

1

-outgoing

*

-id : String-documentation : String

BaseElement

*

+rule

*

FlowElementContainer-container

1

-flowElements

*

Process

R2ML

Task

Rule

ReactionRule

AndOrNafNegFormula

1

-conditions*

1

-postCondition

1

DerivationRule

LogicalFormula

1

-conditions*

1

-conclusion

1..*

ProductionRule

1

-postCondition

1

1

-conditions

1..*

*

+condition 1

RuleGateway

rBPMN

FlowNode

-processType : ProcessType

Process

1

+condition*

-isNegative : Boolean

RuleCondition

*

+default 0..1

RuleSet

*

+rule

*

*

+ruleSet*rBPMN metamodel weaving

Page 14: Modeling Service Choreographies with Rule-enhanced Business Processes

rBPMN in Action

Page 15: Modeling Service Choreographies with Rule-enhanced Business Processes

rBPMN in Action

Page 16: Modeling Service Choreographies with Rule-enhanced Business Processes

rBPMN in ActionOWL-based reasoning

Page 17: Modeling Service Choreographies with Rule-enhanced Business Processes

rBPMN in Action

Rete-based

Page 18: Modeling Service Choreographies with Rule-enhanced Business Processes

Multiplicity of participants – |||

References – to distinguish participants

Correlation information – who sent a message

MODELS 2009

Interaction Models

Page 19: Modeling Service Choreographies with Rule-enhanced Business Processes

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

Page 20: Modeling Service Choreographies with Rule-enhanced Business Processes

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

Page 21: Modeling Service Choreographies with Rule-enhanced Business Processes

Case Study

Request price

Request flightPrice

-price : Decimal

AvailableFlight

-flightNumber : Integer-departureDate : Date-arrivingAirport : String-seatsLeft : Integer

Flight

Trip Request

Tra

vele

r ag

ent

Tra

vel a

genc

yA

irlin

er af

-departureDate : Date-arrivingAirport : String-seats : Integer

«message event type»FlightRequestfReq

af.seatsLeft > fR

eq.seats and af.departureD

ate =

fReq.departureD

ate

Send Flight Price

Send Flight Not Available

-fault : String

«fault message event type»FaultFlightResponse

-flightNumber : Integer-price : Decimal

«message event type»FlightResponse

[email protected]

R1Calculate

price

found<par>

fAfA.size > 0

Send e-ticket

R3Make

reservation

U

Select airline

Send airline not found

R2

Airlines<par>

-flightNumber : Integer-seats : Integer-departureDate : Date-name : String

«message event type»FlightAccept

Page 22: Modeling Service Choreographies with Rule-enhanced Business Processes

Case Study

Request price

Request flightPrice

-price : Decimal

AvailableFlight

-flightNumber : Integer-departureDate : Date-arrivingAirport : String-seatsLeft : Integer

Flight

Trip Request

Tra

vele

r ag

ent

Tra

vel a

genc

yA

irlin

er af

-departureDate : Date-arrivingAirport : String-seats : Integer

«message event type»FlightRequestfReq

af.seatsLeft > fR

eq.seats and af.departureD

ate =

fReq.departureD

ate

Send Flight Price

Send Flight Not Available

-fault : String

«fault message event type»FaultFlightResponse

-flightNumber : Integer-price : Decimal

«message event type»FlightResponse

[email protected]

R1Calculate

price

found<par>

fAfA.size > 0

Send e-ticket

R3Make

reservation

U

Select airline

Send airline not found

R2

Airlines<par>

-flightNumber : Integer-seats : Integer-departureDate : Date-name : String

«message event type»FlightAccept

Page 23: Modeling Service Choreographies with Rule-enhanced Business Processes

Rules in Choreography

EDOC 2009

Page 24: Modeling Service Choreographies with Rule-enhanced Business Processes

Case Study

Request price

Request flightPrice

-price : Decimal

AvailableFlight

-flightNumber : Integer-departureDate : Date-arrivingAirport : String-seatsLeft : Integer

Flight

Trip Request

Tra

vele

r ag

ent

Tra

vel a

genc

yA

irlin

er af

-departureDate : Date-arrivingAirport : String-seats : Integer

«message event type»FlightRequestfReq

af.seatsLeft > fR

eq.seats and af.departureD

ate =

fReq.departureD

ate

Send Flight Price

Send Flight Not Available

-fault : String

«fault message event type»FaultFlightResponse

-flightNumber : Integer-price : Decimal

«message event type»FlightResponse

[email protected]

R1Calculate

price

found<par>

fAfA.size > 0

Send e-ticket

R3Make

reservation

U

Select airline

Send airline not found

R2

Airlines<par>

-flightNumber : Integer-seats : Integer-departureDate : Date-name : String

«message event type»FlightAccept

Page 25: Modeling Service Choreographies with Rule-enhanced Business Processes

Rules in Choreography

EDOC 2009

Page 26: Modeling Service Choreographies with Rule-enhanced Business Processes

Case Study

Request price

Request flightPrice

-price : Decimal

AvailableFlight

-flightNumber : Integer-departureDate : Date-arrivingAirport : String-seatsLeft : Integer

Flight

Trip Request

Tra

vele

r ag

ent

Tra

vel a

genc

yA

irlin

er af

-departureDate : Date-arrivingAirport : String-seats : Integer

«message event type»FlightRequestfReq

af.seatsLeft > fR

eq.seats and af.departureD

ate =

fReq.departureD

ate

Send Flight Price

Send Flight Not Available

-fault : String

«fault message event type»FaultFlightResponse

-flightNumber : Integer-price : Decimal

«message event type»FlightResponse

[email protected]

R1Calculate

price

found<par>

fAfA.size > 0

Send e-ticket

One-To-Many Send/Receive

R3Make

reservation

U

Select airline

Send airline not found

R2

Airlines<par>

-flightNumber : Integer-seats : Integer-departureDate : Date-name : String

«message event type»FlightAccept

Page 27: Modeling Service Choreographies with Rule-enhanced Business Processes

Case Study

Request price

Request flightPrice

-price : Decimal

AvailableFlight

-flightNumber : Integer-departureDate : Date-arrivingAirport : String-seatsLeft : Integer

Flight

Trip Request

Tra

vele

r ag

ent

Tra

vel a

genc

yA

irlin

er af

-departureDate : Date-arrivingAirport : String-seats : Integer

«message event type»FlightRequestfReq

af.seatsLeft > fR

eq.seats and af.departureD

ate =

fReq.departureD

ate

Send Flight Price

Send Flight Not Available

-fault : String

«fault message event type»FaultFlightResponse

-flightNumber : Integer-price : Decimal

«message event type»FlightResponse

[email protected]

R1Calculate

price

found<par>

fAfA.size > 0

Send e-ticket

R3Make

reservation

U

Select airline

Send airline not found

R2

Racing incoming messagesAirlines

<par>

-flightNumber : Integer-seats : Integer-departureDate : Date-name : String

«message event type»FlightAccept

Page 28: Modeling Service Choreographies with Rule-enhanced Business Processes

Case Study

Request price

Request flightPrice

-price : Decimal

AvailableFlight

-flightNumber : Integer-departureDate : Date-arrivingAirport : String-seatsLeft : Integer

Flight

Trip Request

Tra

vele

r ag

ent

Tra

vel a

genc

yA

irlin

er af

-departureDate : Date-arrivingAirport : String-seats : Integer

«message event type»FlightRequestfReq

af.seatsLeft > fR

eq.seats and af.departureD

ate =

fReq.departureD

ate

Send Flight Price

Send Flight Not Available

-fault : String

«fault message event type»FaultFlightResponse

-flightNumber : Integer-price : Decimal

«message event type»FlightResponse

[email protected]

R1Calculate

price

found<par>

fAfA.size > 0

Send e-ticket

R3Make

reservation

Receive

U

Select airline

Send airline not found

R2

Airlines<par>

-flightNumber : Integer-seats : Integer-departureDate : Date-name : String

«message event type»FlightAccept

Page 29: Modeling Service Choreographies with Rule-enhanced Business Processes

Rule in Choreography

EDOC 2009

Page 30: Modeling Service Choreographies with Rule-enhanced Business Processes

Expressiveness comparison

Service Interaction PatternsLanguage Pattern

group Pattern Let’s

Dance BPMN

WS-CDL

iBPMN rBPMN

Send + + + + + Receive + + + + + 1) Send/Receive + + + + + Racing incoming messages + + + + + One-to-many send + - +/- + + One-from-many receive + - + + +

2)

One-to-many send/receive + - +/- + + Multi-responses + + + + + Contingent requests +/- - +/- +/- + 3) Atomic multicast notification - - - - - Request with referral + - + + + Relayed request + - + + + 4) Dynamic routing - - +/- - +/-

Page 31: Modeling Service Choreographies with Rule-enhanced Business Processes

rBPMN Editor

Implementation of BPMN2 + R2ML Eclipse plug-in based on GMF and EMF

Binaries available for download Going out as open source shortly Looking fwd to your feedback http://rbpmneditor.googlecode.com/ http://www.youtube.com/user/rbpmn

Page 32: Modeling Service Choreographies with Rule-enhanced Business Processes

rBPMN Editor

Page 33: Modeling Service Choreographies with Rule-enhanced Business Processes

rBPMN Heroes

Language design and implementation

Milan Milanovic Luis Rocha

Page 34: Modeling Service Choreographies with Rule-enhanced Business Processes

MODELS 2009

Conclusion REWERSE I1 Rule Markup Language

MODELS 2009

Extension for Rule Models-name : String

FlowElement

-isForCompensation : Boolean

Activity Event

-gatewayDirection : GatewayDirection

Gateway

SequenceFlow-targetRef

1

-incoming

*

-sourceRef

1

-outgoing

*

-id : String-documentation : String

BaseElement

*

+rule

*

FlowElementContainer-container

1

-flowElements

*

Process

R2ML

Task

Rule

ReactionRule

AndOrNafNegFormula

1

-conditions*

1

-postCondition

1

DerivationRule

LogicalFormula

1

-conditions*

1

-conclusion

1..*

ProductionRule

1

-postCondition

1

1

-conditions

1..*

*

+condition 1

RuleGateway

rBPMN

FlowNode

-processType : ProcessType

Process

1

+condition*

-isNegative : Boolean

RuleCondition

*

+default 0..1

RuleSet

*

+rule

*

*

+ruleSet*rBPMN metamodel weaving

REWERSE I1 Rule Markup Language

MODELS 2009

Extension for Rule Models-name : String

FlowElement

-isForCompensation : Boolean

Activity Event

-gatewayDirection : GatewayDirection

Gateway

SequenceFlow-targetRef

1

-incoming

*

-sourceRef

1

-outgoing

*

-id : String-documentation : String

BaseElement

*

+rule

*

FlowElementContainer-container

1

-flowElements

*

Process

R2ML

Task

Rule

ReactionRule

AndOrNafNegFormula

1

-conditions*

1

-postCondition

1

DerivationRule

LogicalFormula

1

-conditions*

1

-conclusion

1..*

ProductionRule

1

-postCondition

1

1

-conditions

1..*

*

+condition 1

RuleGateway

rBPMN

FlowNode

-processType : ProcessType

Process

1

+condition*

-isNegative : Boolean

RuleCondition

*

+default 0..1

RuleSet

*

+rule

*

*

+ruleSet*rBPMN metamodel weaving

Page 35: Modeling Service Choreographies with Rule-enhanced Business Processes

MODELS 2009

Conclusion REWERSE I1 Rule Markup Language

MODELS 2009

Extension for Rule Models-name : String

FlowElement

-isForCompensation : Boolean

Activity Event

-gatewayDirection : GatewayDirection

Gateway

SequenceFlow-targetRef

1

-incoming

*

-sourceRef

1

-outgoing

*

-id : String-documentation : String

BaseElement

*

+rule

*

FlowElementContainer-container

1

-flowElements

*

Process

R2ML

Task

Rule

ReactionRule

AndOrNafNegFormula

1

-conditions*

1

-postCondition

1

DerivationRule

LogicalFormula

1

-conditions*

1

-conclusion

1..*

ProductionRule

1

-postCondition

1

1

-conditions

1..*

*

+condition 1

RuleGateway

rBPMN

FlowNode

-processType : ProcessType

Process

1

+condition*

-isNegative : Boolean

RuleCondition

*

+default 0..1

RuleSet

*

+rule

*

*

+ruleSet*rBPMN metamodel weaving

REWERSE I1 Rule Markup Language

MODELS 2009

Extension for Rule Models-name : String

FlowElement

-isForCompensation : Boolean

Activity Event

-gatewayDirection : GatewayDirection

Gateway

SequenceFlow-targetRef

1

-incoming

*

-sourceRef

1

-outgoing

*

-id : String-documentation : String

BaseElement

*

+rule

*

FlowElementContainer-container

1

-flowElements

*

Process

R2ML

Task

Rule

ReactionRule

AndOrNafNegFormula

1

-conditions*

1

-postCondition

1

DerivationRule

LogicalFormula

1

-conditions*

1

-conclusion

1..*

ProductionRule

1

-postCondition

1

1

-conditions

1..*

*

+condition 1

RuleGateway

rBPMN

FlowNode

-processType : ProcessType

Process

1

+condition*

-isNegative : Boolean

RuleCondition

*

+default 0..1

RuleSet

*

+rule

*

*

+ruleSet*rBPMN metamodel weaving

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

Page 36: Modeling Service Choreographies with Rule-enhanced Business Processes

MODELS 2009

Conclusion REWERSE I1 Rule Markup Language

MODELS 2009

Extension for Rule Models-name : String

FlowElement

-isForCompensation : Boolean

Activity Event

-gatewayDirection : GatewayDirection

Gateway

SequenceFlow-targetRef

1

-incoming

*

-sourceRef

1

-outgoing

*

-id : String-documentation : String

BaseElement

*

+rule

*

FlowElementContainer-container

1

-flowElements

*

Process

R2ML

Task

Rule

ReactionRule

AndOrNafNegFormula

1

-conditions*

1

-postCondition

1

DerivationRule

LogicalFormula

1

-conditions*

1

-conclusion

1..*

ProductionRule

1

-postCondition

1

1

-conditions

1..*

*

+condition 1

RuleGateway

rBPMN

FlowNode

-processType : ProcessType

Process

1

+condition*

-isNegative : Boolean

RuleCondition

*

+default 0..1

RuleSet

*

+rule

*

*

+ruleSet*rBPMN metamodel weaving

REWERSE I1 Rule Markup Language

MODELS 2009

Extension for Rule Models-name : String

FlowElement

-isForCompensation : Boolean

Activity Event

-gatewayDirection : GatewayDirection

Gateway

SequenceFlow-targetRef

1

-incoming

*

-sourceRef

1

-outgoing

*

-id : String-documentation : String

BaseElement

*

+rule

*

FlowElementContainer-container

1

-flowElements

*

Process

R2ML

Task

Rule

ReactionRule

AndOrNafNegFormula

1

-conditions*

1

-postCondition

1

DerivationRule

LogicalFormula

1

-conditions*

1

-conclusion

1..*

ProductionRule

1

-postCondition

1

1

-conditions

1..*

*

+condition 1

RuleGateway

rBPMN

FlowNode

-processType : ProcessType

Process

1

+condition*

-isNegative : Boolean

RuleCondition

*

+default 0..1

RuleSet

*

+rule

*

*

+ruleSet*rBPMN metamodel weaving

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

Page 37: Modeling Service Choreographies with Rule-enhanced Business Processes

MODELS 2009

Conclusion REWERSE I1 Rule Markup Language

MODELS 2009

Extension for Rule Models-name : String

FlowElement

-isForCompensation : Boolean

Activity Event

-gatewayDirection : GatewayDirection

Gateway

SequenceFlow-targetRef

1

-incoming

*

-sourceRef

1

-outgoing

*

-id : String-documentation : String

BaseElement

*

+rule

*

FlowElementContainer-container

1

-flowElements

*

Process

R2ML

Task

Rule

ReactionRule

AndOrNafNegFormula

1

-conditions*

1

-postCondition

1

DerivationRule

LogicalFormula

1

-conditions*

1

-conclusion

1..*

ProductionRule

1

-postCondition

1

1

-conditions

1..*

*

+condition 1

RuleGateway

rBPMN

FlowNode

-processType : ProcessType

Process

1

+condition*

-isNegative : Boolean

RuleCondition

*

+default 0..1

RuleSet

*

+rule

*

*

+ruleSet*rBPMN metamodel weaving

REWERSE I1 Rule Markup Language

MODELS 2009

Extension for Rule Models-name : String

FlowElement

-isForCompensation : Boolean

Activity Event

-gatewayDirection : GatewayDirection

Gateway

SequenceFlow-targetRef

1

-incoming

*

-sourceRef

1

-outgoing

*

-id : String-documentation : String

BaseElement

*

+rule

*

FlowElementContainer-container

1

-flowElements

*

Process

R2ML

Task

Rule

ReactionRule

AndOrNafNegFormula

1

-conditions*

1

-postCondition

1

DerivationRule

LogicalFormula

1

-conditions*

1

-conclusion

1..*

ProductionRule

1

-postCondition

1

1

-conditions

1..*

*

+condition 1

RuleGateway

rBPMN

FlowNode

-processType : ProcessType

Process

1

+condition*

-isNegative : Boolean

RuleCondition

*

+default 0..1

RuleSet

*

+rule

*

*

+ruleSet*rBPMN metamodel weaving

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

Expressiveness comparison

Service Interaction PatternsLanguage Pattern

group Pattern Let’s

Dance BPMN

WS-CDL

iBPMN rBPMN

Send + + + + + Receive + + + + + 1) Send/Receive + + + + + Racing incoming messages + + + + + One-to-many send + - +/- + + One-from-many receive + - + + +

2)

One-to-many send/receive + - +/- + + Multi-responses + + + + + Contingent requests +/- - +/- +/- + 3) Atomic multicast notification - - - - - Request with referral + - + + + Relayed request + - + + + 4) Dynamic routing - - +/- - +/-

Expressiveness comparison

Service Interaction PatternsLanguage Pattern

group Pattern Let’s

Dance BPMN

WS-CDL

iBPMN rBPMN

Send + + + + + Receive + + + + + 1) Send/Receive + + + + + Racing incoming messages + + + + + One-to-many send + - +/- + + One-from-many receive + - + + +

2)

One-to-many send/receive + - +/- + + Multi-responses + + + + + Contingent requests +/- - +/- +/- + 3) Atomic multicast notification - - - - - Request with referral + - + + + Relayed request + - + + + 4) Dynamic routing - - +/- - +/-

Page 38: Modeling Service Choreographies with Rule-enhanced Business Processes

MODELS 2009

Conclusion REWERSE I1 Rule Markup Language

MODELS 2009

Extension for Rule Models-name : String

FlowElement

-isForCompensation : Boolean

Activity Event

-gatewayDirection : GatewayDirection

Gateway

SequenceFlow-targetRef

1

-incoming

*

-sourceRef

1

-outgoing

*

-id : String-documentation : String

BaseElement

*

+rule

*

FlowElementContainer-container

1

-flowElements

*

Process

R2ML

Task

Rule

ReactionRule

AndOrNafNegFormula

1

-conditions*

1

-postCondition

1

DerivationRule

LogicalFormula

1

-conditions*

1

-conclusion

1..*

ProductionRule

1

-postCondition

1

1

-conditions

1..*

*

+condition 1

RuleGateway

rBPMN

FlowNode

-processType : ProcessType

Process

1

+condition*

-isNegative : Boolean

RuleCondition

*

+default 0..1

RuleSet

*

+rule

*

*

+ruleSet*rBPMN metamodel weaving

REWERSE I1 Rule Markup Language

MODELS 2009

Extension for Rule Models-name : String

FlowElement

-isForCompensation : Boolean

Activity Event

-gatewayDirection : GatewayDirection

Gateway

SequenceFlow-targetRef

1

-incoming

*

-sourceRef

1

-outgoing

*

-id : String-documentation : String

BaseElement

*

+rule

*

FlowElementContainer-container

1

-flowElements

*

Process

R2ML

Task

Rule

ReactionRule

AndOrNafNegFormula

1

-conditions*

1

-postCondition

1

DerivationRule

LogicalFormula

1

-conditions*

1

-conclusion

1..*

ProductionRule

1

-postCondition

1

1

-conditions

1..*

*

+condition 1

RuleGateway

rBPMN

FlowNode

-processType : ProcessType

Process

1

+condition*

-isNegative : Boolean

RuleCondition

*

+default 0..1

RuleSet

*

+rule

*

*

+ruleSet*rBPMN metamodel weaving

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

MODELS 2009

Service Interaction Patterns

Contingent requests pattern

Expressiveness comparison

Service Interaction PatternsLanguage Pattern

group Pattern Let’s

Dance BPMN

WS-CDL

iBPMN rBPMN

Send + + + + + Receive + + + + + 1) Send/Receive + + + + + Racing incoming messages + + + + + One-to-many send + - +/- + + One-from-many receive + - + + +

2)

One-to-many send/receive + - +/- + + Multi-responses + + + + + Contingent requests +/- - +/- +/- + 3) Atomic multicast notification - - - - - Request with referral + - + + + Relayed request + - + + + 4) Dynamic routing - - +/- - +/-

Expressiveness comparison

Service Interaction PatternsLanguage Pattern

group Pattern Let’s

Dance BPMN

WS-CDL

iBPMN rBPMN

Send + + + + + Receive + + + + + 1) Send/Receive + + + + + Racing incoming messages + + + + + One-to-many send + - +/- + + One-from-many receive + - + + +

2)

One-to-many send/receive + - +/- + + Multi-responses + + + + + Contingent requests +/- - +/- +/- + 3) Atomic multicast notification - - - - - Request with referral + - + + + Relayed request + - + + + 4) Dynamic routing - - +/- - +/-

rBPMN EditorrBPMN Editor

Page 39: Modeling Service Choreographies with Rule-enhanced Business Processes

Usability Semi-structured English vs. visual Interaction vs. interconnection model

Quality and empirical issues of rBPMN

MODELS 2009

Future Work

Page 40: Modeling Service Choreographies with Rule-enhanced Business Processes

Usability Semi-structured English vs. visual Interaction vs. interconnection model

Quality and empirical issues of rBPMN

MODELS 2009

Future Work

Community call: We need a corpus!

Page 41: Modeling Service Choreographies with Rule-enhanced Business Processes

Language formalization affairs Static and operational semantics

e.g., OWL2 and mCRL2 Coupled co-evolution of rules & processes

MODELS 2009

Future Work

Page 42: Modeling Service Choreographies with Rule-enhanced Business Processes

Thank you!

Questions?