Splitting GSM Schemas: A Framework for Outsourcing of Declarative Artifact Systems Rik Eshuis, Eindhoven University of Technology Rick Hull, IBM T J Watson Research Center Yutian Sun, UC Santa Barbara Roman Vaculin, IBM T J Watson Research Center
Context Motivation • Business Process Outsourcing (BPO): part of a business process is performed by another organization • Cloud-computing is key enabler of BPO This study • BPO for declarative case management − Spez., Guard-Stage-Milestone business artifact model − GSM is basis for OMG’s CMMN standard
• Main result: framework that − enables BPO at design-time and run-time − supports hiding business logic
31-8-2013
PAGE 1
Guard-Stage-Milestone (GSM) schemas Guard
Stage
Milestone
business rule when to open stage
cluster of work to achieve milestone
business objective
• Status of each stage,milestone ∈ { on, off} • Business rules specify when stage/milestone changes state − Might refer to status of other stages/milestones
• Rules need to be evaluated in right order to ensure that all changes have maximal effect • Unit of change triggered by external event is called a B-step 31-8-2013
PAGE 2
Problem: outsourcing GSM subschema Refine Deal
ReDraftTermNeeded
Draft Term
Term Drafted
Check Credit
ReCheckCreditNeeded Determine Price
Credit Checked
Deal Failed Price Determined
Deal Refined
IGF
must be equivalent
Client artifact system
Provider artifact system
IGF
LawOffice Refine Deal Check Credit
ReCheckCreditNeeded Credit Checked
Determine Price
Deal Failed Price Determined
Deal Refined
ReDraftTermNeeded Draft Term
31-8-2013
Term Drafted
PAGE 3
Example scenario in original GSM schema status is on status is off achieve if credit_level > 100,000 Refine Deal Draft Term
ReDraftTermNeeded Term Drafted
Check Credit
Deal Failed
ReCheckCreditNeeded Credit Checked
Determine Price
Price Determined
Deal Refined
IGF
open on +ReDraftTermNeeded
open if TermDrafted and CreditChecked
Task CheckCredit completes credit_level = 200,000 31-8-2013
PAGE 4
Starting B-step (1) status is on status is off achieve if credit_level > 100,000 Refine Deal Draft Term
ReDraftTermNeeded Term Drafted
Check Credit
Deal Failed
ReCheckCreditNeeded Credit Checked
Determine Price
Price Determined
Deal Refined
IGF
open on +ReDraftTermNeeded
open if TermDrafted and CreditChecked
Task CheckCredit completes credit_level = 200,000 31-8-2013
PAGE 5
Continuing B-step (2) status is on status is off achieve if credit_level > 100,000 Refine Deal Draft Term
ReDraftTermNeeded Term Drafted
Check Credit
Deal Failed
ReCheckCreditNeeded Credit Checked
Determine Price
Price Determined
Deal Refined
IGF
open on +ReDraftTermNeeded
open if TermDrafted and CreditChecked
Task CheckCredit completes credit_level = 200,000 31-8-2013
PAGE 6
Continuing B-step (3) status is on status is off achieve if credit_level > 100,000 Refine Deal Draft Term
ReDraftTermNeeded Term Drafted
Check Credit
Deal Failed
ReCheckCreditNeeded Credit Checked
Determine Price
Price Determined
Deal Refined
IGF
open on +ReDraftTermNeeded
open if TermDrafted and CreditChecked
Task CheckCredit completes credit_level = 200,000 31-8-2013
PAGE 7
Continuing B-step (4) status is on status is off achieve if credit_level > 100,000 Refine Deal Draft Term
ReDraftTermNeeded Term Drafted
Check Credit
Deal Failed
ReCheckCreditNeeded Credit Checked
Determine Price
Price Determined
Deal Refined
IGF
open on +ReDraftTermNeeded
open if TermDrafted and CreditChecked
Task CheckCredit completes credit_level = 200,000 31-8-2013
PAGE 8
End of B-step (5) status is on status is off achieve if credit_level > 100,000 Refine Deal Draft Term
ReDraftTermNeeded Term Drafted
Check Credit
Deal Failed
ReCheckCreditNeeded Credit Checked
Determine Price
Price Determined
Deal Refined
IGF
open on +ReDraftTermNeeded
open if TermDrafted and CreditChecked
Task CheckCredit completes credit_level = 200,000 31-8-2013
PAGE 9
Splitting example scenario results in race condition status is on status is off
open if TermDrafted and CreditChecked
Task CheckCredit Refine Deal completes credit_level = 200,000
Deal Failed
ReCheckCreditNeeded Check Credit
Credit Checked
Determine Price
Price Determined
Deal Refined
IGF LawOffice ReDraftTermNeeded Draft Term
Term Drafted
achieve if credit_level > 100,000
open on +ReDraftTermNeeded 31-8-2013
PAGE 10
Splitting example scenario results in race condition status is on status is off
open if TermDrafted and CreditChecked
Task CheckCredit Refine Deal completes credit_level = 200,000
Deal Failed
ReCheckCreditNeeded Check Credit
Credit Checked
Determine Price
Price Determined
Deal Refined
IGF LawOffice ReDraftTermNeeded Draft Term
Term Drafted
achieve if credit_level > 100,000
open on +ReDraftTermNeeded 31-8-2013
PAGE 11
Splitting example scenario results in race condition status is on status is off
open if TermDrafted and CreditChecked
Task CheckCredit Refine Deal completes credit_level = 200,000
Deal Failed
ReCheckCreditNeeded Check Credit
Credit Checked
Determine Price
Price Determined
Deal Refined
IGF LawOffice ReDraftTermNeeded Draft Term
Term Drafted
achieve if credit_level > 100,000
open on +ReDraftTermNeeded 31-8-2013
PAGE 12
Splitting example scenario results in race condition status is on status is off
open if TermDrafted and CreditChecked
Task CheckCredit Refine Deal completes credit_level = 200,000
Deal Failed
ReCheckCreditNeeded Check Credit
Credit Checked
Determine Price
Price Determined
Deal Refined
IGF LawOffice ReDraftTermNeeded Draft Term
Term Drafted
achieve if credit_level > 100,000
open on +ReDraftTermNeeded 31-8-2013
PAGE 13
Splitting example scenario results in race condition status is on status is off
open if TermDrafted and CreditChecked
Task CheckCredit Refine Deal completes credit_level = 200,000
Deal Failed
ReCheckCreditNeeded Check Credit
Credit Checked
Determine Price
Price Determined
Deal Refined
IGF LawOffice ReDraftTermNeeded Draft Term
Term Drafted
achieve if credit_level > 100,000
open on +ReDraftTermNeeded 31-8-2013
PAGE 14
Splitting example scenario results in race condition status is on status is off
open if TermDrafted and CreditChecked
Task CheckCredit Refine Deal completes credit_level = 200,000
Deal Failed
ReCheckCreditNeeded Check Credit
Credit Checked
Determine Price
Price Determined
Deal Refined
IGF LawOffice ReDraftTermNeeded Draft Term
Term Drafted
achieve if credit_level > 100,000
open on +ReDraftTermNeeded 31-8-2013
PAGE 15
Splitting example scenario results in race condition status is on status is off
open if TermDrafted and CreditChecked
Task CheckCredit Refine Deal completes credit_level = 200,000
Deal Failed
ReCheckCreditNeeded Check Credit
Credit Checked
Determine Price
Price Determined
Deal Refined
IGF
Impossible in original GSM schema Draft Term
LawOffice ReDraftTermNeeded Term Drafted
achieve if credit_level > 100,000
open on +ReDraftTermNeeded 31-8-2013
PAGE 16
Possible solutions 1. Extend local GSM engines with complex synchronization logic 2. Better: restructure GSM schema to avoid complex synchronization Event
B-step 1 IGF LawOffice
Event’
B-step 2 31-8-2013
PAGE 17
Resolved race condition
open if TermDrafted and CreditChecked Task CheckCredit Refine Deal completes credit_level = 200,000
Deal Failed
ReCheckCreditNeeded Check Credit
Credit Checked
Determine Price
Price Determined
Deal Refined
IGF achieve if credit_level > 100,000
open on +ReDraftTermNeeded
LawOffice ReDraftTermNeeded
Draft Term
Term Drafted
31-8-2013
PAGE 18
Resolved race condition achieve if credit_level > 100,000
open on +ReDraftTermNeeded
ReDraftTermNeeded Draft Term
Term Drafted
open if TermDrafted and CreditChecked Task CheckCredit Refine Deal completes credit_level = 200,000
Deal Failed
ReCheckCreditNeeded Check Credit
Credit Checked
Determine Price
Price Determined
Deal Refined
IGF LawOffice ReDraftTermNeeded Draft Term
Term Drafted
31-8-2013
PAGE 19
Resolved race condition: after B-step 1 achieve if credit_level > 100,000
open on +ReDraftTermNeeded
ReDraftTermNeeded Draft Term
Term Drafted
open if TermDrafted and CreditChecked Task CheckCredit Refine Deal completes credit_level = 200,000
Deal Failed
ReCheckCreditNeeded Check Credit
Credit Checked
Determine Price
Price Determined
Deal Refined
IGF LawOffice ReDraftTermNeeded Draft Term
Term Drafted
Task CheckCredit completes ReDraftTermNeeded=on DraftTerm=on 31-8-2013 PAGE 20 TermDrafted=off
Resolved race condition: after B-step 2 achieve if credit_level > 100,000
open on +ReDraftTermNeeded
ReDraftTermNeeded Draft Term
Term Drafted
open if TermDrafted and CreditChecked Task CheckCredit Refine Deal completes credit_level = 200,000
Deal Failed
ReCheckCreditNeeded Check Credit
Credit Checked
Determine Price
Price Determined
Deal Refined
IGF LawOffice ReDraftTermNeeded Draft Term
Term Drafted
Task CheckCredit completes ReDraftTermNeeded=on DraftTerm=on 31-8-2013 PAGE 21 TermDrafted=off
Solution approach • Keep local cache of status of needed remote stages/milestone • determined per external event type
• Reallocate business rules to avoid complex synchronization − Sometimes: rule executes at different location than the corresponding stage/milestone
• Runtime simulation protocol based on distributed 2phase commit • Result (see paper): split GSM schema faithfully simulates original GSM schema 31-8-2013
PAGE 22
Formal results Theorem 1 • Let Σ be a snaphot of GSM schema Γ ; • Let schemas Γ1 and Γ2 be a “split” of schema Γ ; • Let snapshots Σ1 and Σ2 be the split of Σ; • Let e be an external event of type E; • Then: the application of e on (Σ1,Σ2) faithfully simulates the application of e on Σ Theorem 2 • Using the “runtime simulation protocol” (see paper) the above result generalizes to streams of external events. 31-8-2013
PAGE 23
Yet another problem… ... revealing of secrets
``
31-8-2013
PAGE 24
Alternative outsourcing scenario Private
status is on status is off achieve if credit_level > 100,000 Refine Deal
ReDraftTermNeeded
Deal Failed
ReCheckCreditNeeded Determine Price
Price Determined
Deal Refined
IGF
Draft Term
Term Drafted
Check Credit
Admin Task Office CheckCredit Credit Checked completes credit_level = 200,000
31-8-2013
PAGE 25
Restructured GSM schema Private achieve if credit_level > 100,000 Refine Deal
ReDraftTermNeeded
Deal Failed
ReCheckCreditNeeded Determine Price
Price Determined
Deal Refined
IGF
Draft Term
Term Drafted
Check Credit
Admin Task Office CheckCredit Credit Checked completes credit_level = 200,000
31-8-2013
PAGE 26
Restructured GSM schema Private achieve if credit_level > 100,000 Refine Deal
ReDraftTermNeeded
Deal Failed
ReCheckCreditNeeded Determine Price
Price Determined
Deal Refined
IGF
Private IGF rule gets exposed! ReDraftTermNeeded Draft Term
Term Drafted
Check Credit
Admin Task Office CheckCredit Credit Checked completes credit_level = 200,000
PAGE 27 31-8-2013
Hiding rules by anonymous events Produces anonymous external event Toggle E
open if credit_level > 100,000 Refine Deal
ReDraftTermNeeded
Deal Failed
ReCheckCreditNeeded Determine Price
Price Determined
Deal Refined
IGF achieve on E
ReDraftTermNeeded Draft Term
Term Drafted
Check Credit
Admin Task Office CheckCredit Credit Checked completes credit_level = 200,000
31-8-2013
PAGE 28
Result on privacy • Let Γ be GSM schema and let H be a set of attributes whose rules should be hidden. • Construct Γ’ = hide(Γ,H) as follows • For hiding the rules of n status attributes, in centralized GSM model − For each hidden status attribute a, create an anonymous event Ea − Each rule that triggers a is transformed into a rule that triggers a stage that generates Ea
• Lemma: each B-step of Γ is faithfully simulated by a cluster of n + 1 B-steps of Γ’. • To perform splitting with hidden status attributes, create Γ’ = hide(Γ,H) and split Γ’. 31-8-2013
PAGE 29
Complete algorithm • Input: • GSM schema Γ • desired split of stages/milestones • status attributes H whose rules are to be hidden
• Step 1: introduce anonymous events in Γ → Γ’ • Step 2: perform splitting on Γ’ → (Γ1 , Γ2) • Main result (see paper): • (Γ1 , Γ2) faithfully simulates Γ • (Γ1 , Γ2) does hide rules for status attributes in H
31-8-2013
PAGE 30
Conclusion • Comprehensive framework for supporting outsourcing of GSM schemas • Covers both design-time and run-time • Future work: • multi-party outsourcing • interacting artifact types • extend results to OMG’s Case Management Modeling Notation
31-8-2013
PAGE 31
Thank you!
31-8-2013
PAGE 32