Listing 1: Retailer BPEL Pseudo Code

01 receive "enrollRequest" from customer
02 invoke "enrollRequest" on distributor
03 pick
04    onMessage "enrollRejected" from distributor
05       empty -- placeholder
06    onMessage "enrollAccepted" from distributor
07       pick
08          onMessage "enrollCompleted" from distributor
09             empty -- placeholder
10          onMessage "cancel" from customer
11             invoke "cancel" on distributor
12    onMessage "switchPending" from distributor
13       pick
14          onMessage "switchCompleted" from distributor
15             empty -- placeholder
16          onMessage "cancel" from customer
17             invoke "cancel" on distributor