W3C home > Mailing lists > Public > public-ws-chor@w3.org > September 2004

Re: Issue 742 - Proposal for discussion

From: Gary Brown <gary@enigmatec.net>
Date: Fri, 17 Sep 2004 09:36:53 +0100
Message-ID: <002e01c49c91$80f83e40$4b00a8c0@LATTITUDEGary>
To: "Nickolas Kavantzas" <nickolas.kavantzas@oracle.com>
Cc: <public-ws-chor@w3.org>

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 Friday, 17 September 2004 08:38:00 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Saturday, 18 December 2010 01:01:05 GMT