Post on 28-Dec-2015
A Distributed Framework for Reliable and Efficient Service
Choreographies
Young Yoon, Chunyang Ye and Hans-Arno Jacobsen
WWW'11
What is service choreography?
Autonomous and distributed collaborationamongst independently developed services.
2Young Yoon
WWW'11
Service choreographyExample: Credit card fraud detection process
3
Auditing partner sends fraud warnings to Accounting partnerG0
G1Customer service issues refund to
Customer
Young Yoon
4
Auditing partner sends fraud warnings to Accounting partnerG0
G1Customer service issues refund to
Customer
Decompose
Send fraud warning
messages
Receive fraud warning message
Issue refund Receive refund
message
Auditing service Accounting service CRM service Client serviceYoung Yoon
WWW'11
L0 L0 L0 L0
WWW'11
Semantic conflictBehavior that does not conform to the collaboration specification
5Young Yoon
WWW'11 6
Send fraud warning
messages
Receive fraud warning message
Issue refund Receive refund
message
Auditing service Accounting service CRM service Client service
“ Someone used my credit card to purchase train ticket!”
Issue refund
Refund
Customer account
CRM service behavedarbitrarily and causedsemantic conflict.
Young Yoon
Travel agency
WWW'11 7
Auditing partner sends fraud warnings to Accounting partnerG0
G1Customer service issues refund to
Customer
Gx
Accounting partner orders customer service to issue refund
The cause of the semantic conflictThe missing synchronization
Young Yoon
WWW'11 8
Another example: Internal operation in a car company
HQ ”clear out” Dealer
Operations manager “decrease production rate”
change to Factory
Marketing “Sales trend update”
Factory
Dealers ask Coordinator to pick G1 or G2
Young Yoon
WWW'11 9
Goal 1: Prevent semantic conflict. Enrich safety constraints
Goal 2: Build a distributed frameworkGovern the enforcement of safety constraints
Goal 3: Make the framework be efficient Don’t let the safety constraints hamper the performance of the collaboration
Young Yoon
WWW'11 10
Goal 1: Prevent semantic conflictGoal 2: Build a distributed frameworkGoal 3: Make the framework be efficient
Young Yoon
WWW'11 12
r1 r2m1
r3 r4m2 r1 r5
m3
r1 r3m4
G1
G2
G4
G3
Young Yoon
rx: collaborating partner x
r1 r2m1 : r1 sends m1 r2
WWW'11 13
r1 r2m1
r3 r4m2 r1 r5
m3
r1 r3m4
r2 r3c1 r2 r1
c2
r4 r1c3 r5 r1
c4
G1
G2
G4
G3
r1 r2m1
r3 r4m2 r1 r5
m3
r1 r3m4
G1
G2
G4
G3
Young Yoon
WWW'11 14
(G1) : projection of G1
x(m1): send m1
x(m1): receive m1
r1 r2m1
r3 r4m2 r1 r5
m3
r1 r3m4
r2 r3c1 r2 r1
c2
r4 r1c3 r5 r1
c4
G1
G2
G3
G3
Young Yoon
WWW'11 15
x(m1)(G1)
r1
r1 r2m1
r3 r4m2 r1 r5
m3
r1 r3m4
r2 r3c1 r2 r1
c2
r4 r1c3 r5 r1
c4
G1
G2
G3
G3
Young Yoon
WWW'11 16
x(m1)(G1)
x(c3)(G2)
r1
r1 r2m1
r3 r4m2 r1 r5
m3
r1 r3m4
r2 r3c1 r2 r1
c2
r4 r1c3 r5 r1
c4
G1
G2
G4
G3
Young Yoon
WWW'11 17
x(m1)
x(m4)
(G1)
x(c3)(G2)
(G4)
r1
r1 r2m1
r3 r4m2 r1 r5
m3
r1 r3m4
r2 r3c1 r2 r1
c2
r4 r1c3 r5 r1
c4
G1
G2
G4
G3
Young Yoon
WWW'11 18
x(m1)
x(m4)
(G1)
x(c3) x(c2)(G2)
(G4)
(G1)
r1
r1 r2m1
r3 r4m2 r1 r5
m3
r1 r3m4
r2 r3c1 r2 r1
c2
r4 r1c3 r5 r1
c4
G1
G2
G3
G3
Young Yoon
WWW'11 19
x(m1)
x(m4)
x(m3)
(G1)
x(c3) x(c2)(G2)
(G4)
(G1)
(G3)
r1
r1 r2m1
r3 r4m2 r1 r5
m3
r1 r3m4
r2 r3c1 r2 r1
c2
r4 r1c3 r5 r1
c4
G1
G2
G3
G3
Young Yoon
WWW'11 20
x(m1)
x(m4)
x(m3)
(G1)
x(c3) x(c2)(G2)
(G4)
(G1)
(G3)
r1
x(c4) (G3)
r1 r2m1
r3 r4m2 r1 r5
m3
r1 r3m4
r2 r3c1 r2 r1
c2
r4 r1c3 r5 r1
c4
G1
G2
G3
G3
Young Yoon
WWW'11 21Young Yoon
Send fraud warning
messages
Receive fraud warning message
Issue refund Receive refund
message
Auditing service
Accounting service
CRM service Client service
Receive confirmation
Send confirmation
Revisiting the credit card fraud detectionprocess
WWW'11 24
Goal 1: Prevent semantic conflictGoal 2: Build a distributed frameworkGoal 3: Make the framework be efficient
Young Yoon
WWW'11
B
B
B
B
B
B
LP
CA
CA
CA
BLP
LP
Coordinator
CoordinatorConstraint Deployer
CA LP
LP (Sub-constraints):Local Process
CA:Choreography Agent B: Pub/Sub Broker
LP
LP
25Young Yoon
SSS
S
SS
S
SS
S S
SS
S
WWW'11
B
B
B
B
B
B
LP
CA
CA
CA
BLP
LP
Coordinator
CoordinatorConstraint Deployer
CA LPLP (Sub-constraints):Local ProcessCA:Choreography Agent
B: Pub/Sub Broker
Process Instance Initializer
Local Process
Interpreter
Choreography Message
Generator
LP
LP
Choreography Message Listener
Pub/Sub Translator
Pub/Sub Communication Interface CA /
Coo
rdin
ator
26Young Yoon
WWW'11 29
Goal 1: Prevent semantic conflict.Goal 2: Build a distributed framework.Goal 3: Make the framework be efficient.
Young Yoon
WWW'11 30
Minimize the coordination overhead.
Young Yoon
Distance from candidate location to task ri
Weight: Execution time of task ri
WWW'11 31
r1 r2m1
r3 r4m2 r1 r5
m3
r6 r7m4
G1
G2
G4
G3
r2 r8m5G5
Pick
Pick
Higher weights given to atask with more followingtasks.
There can be nested picks.Thus weights are recursivelycomputed.
Young Yoon
WWW'11 32
The bottom line 1:
We prevent semantic conflict even whenthe collaboration is dynamic.Because of the agent-based framework and enrichment of safety constraints during reliable decomposition.
Young Yoon
WWW'11 33
The bottom line 2:
Efficient and scalable enforcement of safety constraintsBecause of the novel coordinator placement method and concurrent execution of decomposed tasks through parallel and distributed choreography agents.
Young Yoon