[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: ebBP 10/25/2005: Update on Recursion and Optionality
Earlier this month, we received a comment from Cristiano Novelli regarding recursion and optionality [1] [2]. Here is a brief summary, some conclusions and questions for us to consider in next week's call, and are a result of comments from John Yunker, Dale Moberg and myself. * Need/requirement statement: (See [2]) 1. Italian textiles have several business messages in their processes, that may be executed in any order, may or may not be used (BT) and may be executed recursively. 2. They also have requirements to describe two consecutive gateways, whereby there is a transition between a gateway and a fork, or from a join to a gateway. * Possible solutions: o Handle via nested collaborations. [3] Dale Moberg suggested that BTAs be bundled in a BC and then a CollaborationActivity could reference them. + Note: It appears that John Yunker's suggestions may be more succinct and may simplify the process definition. See Considerations. o Use conditional expressions to handle optionality and recursion. See Considerations. o Consider optional attributes on BTA. See Considerations. * Considerations: o Need to explicitly model the activities expected. [Yunker] 1. Any BT can be fronted by a decision that explicitly excludes execution of the BT (explicit optionality). + Partner A decides to send a document today only as a discount offer. He handles that through parallel execution paths and beginsWhen. 2. Any BT can be part of a recursive loop that continues until explicitly terminated (explicit recursions). Use endsWhen for example. 3. Note: Cristiano, it doesn't appear you have made use of beginsWhen and endsWhen as ConditionExpressionTypes. These conditions could be rendered as computable at runtime which is when you were interested in implementing the flexibility of what your domain requires. They can exist at collaboration or BTA level. They are described in the specification in Section 3.4.10.1. o Fully utilize existing constructs. Choose the compilation constructs that optimally meet the requirements stated. I'd encourage your comments on Tuesday or this week so we can resolve what changes if any need to be made. This example could also be useful as another industry example of ebBP. Thanks, Cristiano. Comments encouraged everyone. Thanks. [1] Reference Novelli comment: http://lists.oasis-open.org/archives/ebxml-bp-comment/200510/msg00001.html [2] Attachments show KnitWear process, picture of issue, and .xml draft. [3] Working draft pseudo from Novelli: BusinessCollaboration (Main) firstBTA myCA finalBTA Decision1 (no condition) from firstBTA to myCA from firstBTA to finalBTA End Decision1 (no condition) Decision2 (no condition) from myCA to myCA from myCA to finalBTA End Decision2 (no condition) End BusinessCollaboration (Main) BusinessCollaboration (myCA) StateStart BTA1 BTA2 BTA3 StateEnd Fork OR (no condition) from StartState to BTA1 from StartState to BTA2 from StartState to BTA3 End Fork Join waitforall=false from BTA1 to StateEnd from BTA2 to StateEnd from BTA3 to StateEnd End End BusinessCollaboration (myCA)
knitwear-ebbp-instance-novelli-102105.zip
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]