- From: Gary Brown <gary@enigmatec.net>
- Date: Tue, 21 Sep 2004 09:48:21 +0100
- To: "Nickolas Kavantzas" <nickolas.kavantzas@oracle.com>
- Cc: <public-ws-chor@w3.org>
Hi, I think the F2F would be the ideal time to discuss this example. Chairs - could we please add this topic to the agenda? Regards Gary ----- Original Message ----- From: "Nickolas Kavantzas" <nickolas.kavantzas@oracle.com> To: "Gary Brown" <gary@enigmatec.net> Cc: <public-ws-chor@w3.org> Sent: Monday, September 20, 2004 4:34 PM Subject: Re: Issue 742 - Proposal for discussion > > Gary Brown wrote: > >> Had a look at the example, and don't see that a "globalized trigger" >> would >> be necessary to define this use case. > > I think we may want to go through this example on the F2F and see what is > *needed*. > >> >> >> The main point in my previous response was how would you handle the issue >> of >> the consistency between the expressions at the different roles? If the >> expressions evaluated differently, then the roles would take different >> paths. There would be no way to model check this for consistency, so it >> would be down to the user to ensure this would not happen, which leads to >> a >> high risk of errors being introduced. >> > > But if you don't have this *globalised* concept (remember there are more > of this type: globalised choice, > globalised parallel, globalised sequence, globalised interact) how are you > giving the global picture of the system? > > Don't you think that this is required? > >> >> Regards >> Gary >> >> ----- Original Message ----- >> From: "Nickolas Kavantzas" <nickolas.kavantzas@oracle.com> >> To: "Gary Brown" <gary@enigmatec.net> >> Cc: <public-ws-chor@w3.org> >> Sent: Friday, September 17, 2004 5:12 PM >> Subject: Re: Issue 742 - Proposal for discussion >> >> > Have you looked into the FIX use-cases as I pointed out earlier? >> > >> > For example in FIX4.4, vol4 (march 25, 2003 draft) document, page 49: >> > Take A.1.a - Filled Order as the use-case at hand (no races or other >> "complicated stuff"). >> > >> > Don't you think that the "globalized trigger" would be used to code >> > this >> use-case? >> > >> > -- >> > Nick >> > >> > Gary Brown wrote: >> > >> > > Hi >> > > >> > > So if I understand you correctly, each role (projected endpoint) >> > > would >> apply >> > > its own expression from the globalized trigger, to determine which >> > > path >> it >> > > takes? >> > > >> > > Then we may have an issue with consistency? How do we know if the >> > > list >> of >> > > expressions in the globalized trigger would cause the same path to be >> taken >> > > in all relevant roles? >> > > >> > > Still think a use case is required to justify this concept. >> > > >> > > Regards >> > > Gary >> > > >> > > ----- Original Message ----- >> > > From: "Nickolas Kavantzas" <nickolas.kavantzas@oracle.com> >> > > To: "Gary Brown" <gary@enigmatec.net> >> > > Cc: <public-ws-chor@w3.org> >> > > Sent: Thursday, September 16, 2004 5:49 PM >> > > Subject: Re: Issue 742 - Proposal for discussion >> > > >> > > > >> > > > WS-CDL is about the "globalised-view" of the collaborations (per >> > > > our >> > > mission statement): >> > > > >> > > > A Choreography defines re-usable patterns of collaborative >> > > > behavior, >> > > agreed between two or more interacting peer-to-peer parties. >> > > > A Choreography defines the re-usable patterns of behavior, as the >> > > action(s) performing the actual work, such as globalised >> > > > exchange of messages (matched send and receive operations) , when >> > > > the >> > > specified globalised ordering constraints are satisfied. >> > > > >> > > > -An Interact is an example of a globalised action. >> > > > -A reaction guard in a Work Unit creates globalised ordering >> constraints. >> > > > >> > > > Note that globalised view does not mean that global-coordination >> machinery >> > > is needed. What it portrais is a complete view of the >> > > > big picture. The WS-CDL projection to endpoint logic will create >> > > > the >> > > localised view of the message exchanges and of the ordering >> > > constraints. >> > > > >> > > > IMHO, a simple use-case from FIX (even without a Race Condition) >> requires >> > > a globalised guard. BTW, this feature existed >> > > > in WS-CDL from the very beginning but it was not crispy clear in >> > > > the >> text >> > > as it is now with the function extension and the new >> > > > proposed explanation text in the workunit section. >> > > > >> > > > Gary Brown wrote: >> > > > >> > > > > Hi Nick >> > > > > >> > > > > What is the requirement for the globalizedTrigger function? >> > > > > >> > > > > Do you have a concrete use case where this is required? >> > > > > >> > > > > Regards >> > > > > Gary >> > > > > >> > > > > ----- Original Message ----- >> > > > > From: "Nickolas Kavantzas" <nickolas.kavantzas@oracle.com> >> > > > > To: <public-ws-chor@w3.org> >> > > > > Sent: Wednesday, September 15, 2004 4:54 PM >> > > > > Subject: Issue 742 - Proposal for discussion >> > > > > >> > > > > > >> > > > > > For resolving issue 742 >> > > > > (http://www.w3.org/Bugs/Public/show_bug.cgi?id=742) here is my >> > > > > > proposal: >> > > > > > >> > > > > > >> > > > > > Here are the proposed changes for section 2.4.5: >> > > > > > >> > > > > > The following rules apply for a Work Unit matching: >> > > > > > >> > > > > > · When a guard condition is not specified then the Work Unit >> always >> > > > > matches >> > > > > > · When a repetition condition is not specified then the Work >> > > > > > Unit >> is >> > > not >> > > > > matched again >> > > > > > · When a guard condition or repetition condition is specified >> then: >> > > > > > o One or more variables can be specified in a guard condition >> > > > > > or >> > > > > repetition condition, using XPATH and the WS-CDL functions, as >> described >> > > in >> > > > > Section 10. >> > > > > > o The WS-CDL function getVariable() is used in the guard or >> repetition >> > > > > condition to obtain or set the information of a variable >> > > > > > o When the WS-CDL function isVariableAvailable() is used in the >> guard >> > > or >> > > > > repetition condition, it means that the Work Unit that specifies >> > > > > the >> > > guard >> > > > > condition is checking if a variable is already available at a >> specific >> > > Role >> > > > > or is waiting for a variable to become available at a specific >> > > > > Role >> > > > > > o When the WS-CDL function variablesAligned() is used in the >> > > > > > guard >> or >> > > > > repetition condition, it means that the Work Unit that specifies >> > > > > the >> > > guard >> > > > > or repetition condition is waiting for an appropriate alignment >> > > Interaction >> > > > > to happen between the two Roles. When the variablesAligned() >> > > > > WS-CDL >> > > function >> > > > > is used in a guard or repetition condition, then the Relationship >> Type >> > > > > within the variablesAligned() MUST be the subset of the >> > > > > Relationship >> > > Type >> > > > > that the immediate enclosing Choreography defines. In the example >> below, >> > > the >> > > > > guard condition specifies that the enclosed Work Unit is waiting >> > > > > for >> an >> > > > > alignment Interaction to happen between the customer Role and the >> > > retailer >> > > > > Role: >> > > > > > >> > > > > > guard="cdl:variablesAligned( >> > > > > > "PurchaseOrderAtBuyer", "PurchaseOrderAtSeller", >> > > > > > "customer-retailer-relationship")" >> > > > > > o If variables are defined at different Roles, then they can be >> > > combined >> > > > > together in a guard condition or repetition condition using only >> > > > > the >> > > > > globalizedTrigger() WS-CDL function >> > > > > > o If variables are defined at the same Role, then they can be >> combined >> > > > > together in a guard condition or repetition condition using all >> > > available >> > > > > XPATH operators and the WS-CDL functions except the >> globalizedTrigger() >> > > > > WS-CDL function >> > > > > > o When the block attribute is set to "false", then the guard >> condition >> > > or >> > > > > repetition condition assumes that the variable information is >> currently >> > > > > available. >> > > > > > o If either the variable information is not available or the >> > > > > > guard >> > > > > condition evaluates to "false", then the Work Unit matching fails >> and >> > > the >> > > > > Activity-Notation enclosed within the Work Unit is skipped. >> > > > > > o If either the variable information is not available or the >> > > repetition >> > > > > condition evaluates to "false", then the Work Unit is not matched >> again. >> > > > > > o When the block attribute is set to "true" and one or more >> > > variable(s) >> > > > > are not available, then the Work Unit MUST block waiting for the >> > > variable >> > > > > information to become available. >> > > > > > o When the variable information specified by the guard >> > > > > > condition >> > > become >> > > > > available then the guard condition is evaluated. If the guard >> condition >> > > > > evaluates to "true", then the Work Unit is matched. If the guard >> > > condition >> > > > > evaluates to "false", then the Work Unit matching fails and the >> > > > > Activity-Notation enclosed within the Work Unit is skipped. >> > > > > > o When the variable information specified by the repetition >> condition >> > > > > become available then the repetition condition is evaluated. If >> > > > > the >> > > > > repetition condition evaluates to "true", then the Work Unit is >> matched >> > > > > again. If the repetition condition evaluates to "false", then the >> Work >> > > Unit >> > > > > is not matched again. >> > > > > > >> > > > > > >> > > > > > >> > > > > > Here are the proposed changes for section 10: >> > > > > > >> > > > > > 10 WS-CDL Supplied Functions >> > > > > > There are several functions that the WS-CDL specification >> > > > > > supplies >> as >> > > > > XPATH 1.0 extension functions. These functions can be used in any >> XPath >> > > > > expression as long as the types are compatible. >> > > > > > >> > > > > > ... >> > > > > > xsd:any getVariable(xsd:string varName, xsd:string >> > > > > > documentPath?, >> > > > > xsd:QName roleName?) >> > > > > > Returns the information of the variable with name varName as a >> node >> > > set >> > > > > containing a single node. The second parameter is optional. When >> > > > > the >> > > second >> > > > > parameter is not used, this function retrieves from the variable >> > > information >> > > > > the entire document. When the second parameter is used, this >> function >> > > > > retrieves from the variable information, the fragment of the >> document at >> > > the >> > > > > provided absolute location path. The third parameter is optional. >> When >> > > the >> > > > > third parameter is used that the variable information MUST be >> available >> > > at >> > > > > the Role specified by roleName. If this parameter is not used >> > > > > then >> the >> > > Role >> > > > > is inferred from the context that this function is used. >> > > > > > >> > > > > > xsd:boolean isVariableAvailable(xsd:string varName, xsd:QName >> > > roleName) >> > > > > > Returns "true" if the information of the variable with name >> varName is >> > > > > available at the Role specified by roleName. Returns "false" >> otherwise. >> > > > > > >> > > > > > xsd:boolean variablesAligned(xsd:string varName, xsd:string >> > > withVarName, >> > > > > > xsd:QName >> > > > > relationshipName) >> > > > > > Returns "true" if within a Relationship specified by >> relationshipName >> > > the >> > > > > variable with name varName residing at the first Role of the >> > > Relationship >> > > > > has aligned its information with the variable named withVarName >> residing >> > > at >> > > > > the second Role of the Relationship. >> > > > > > >> > > > > > xsd:boolean globalizedTrigger(xsd:string expression, xsd:string >> > > roleName, >> > > > > xsd:string expression2, xsd:string roleName2, .) >> > > > > > Combines expressions that include variables that are defined at >> > > different >> > > > > Roles. >> > > > > > >> > > > > > >> > > > > > >> > > > > > -- >> > > > > > Nick >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > >> > > > >> > >
Received on Tuesday, 21 September 2004 08:50:07 UTC