Re: toRole and fromRole names and type references and similar.

MessageHi Tony,

I am not sure why we need the name and type reference, can you give a concrete example? As we don't have the concept of role instances, I would assume that a single attribute (whether called name or type ref) would be sufficient.

Regards
Gary
  ----- Original Message ----- 
  From: Tony Fletcher 
  To: public-ws-chor@w3.org 
  Sent: Saturday, March 19, 2005 11:04 PM
  Subject: toRole and fromRole names and type references and similar.


  Dear Colleagues,

  In trying to sort out roletypes from roles for issues 1018 and 1018
  I wonder if we should not change the interaction syntax defined in 2.5.2.3 from
                                                       Interaction Syntax
  The syntax of the <emph>interaction</emph> construct is:



  <interaction  name="ncname"

                channelVariable="qname"

                operation="ncname"

                align="true"|"false"?

                initiate="true"|"false"? >

   

     <participate  relationshipType="qname"

                   fromRole="qname" toRole="qname" />

   

     <exchange  name="ncname"

                informationType="qname"?|channelType="qname"?

                action="request"|"respond" >

       <send      variable="XPath-expression"? 

                  recordReference="list of ncname"?   

                  causeException="true"|"false"? />

       <receive   variable="XPath-expression"? 

                  recordReference="list of ncname"? 

                  causeException="true"|"false"? />

     </exchange>*

   

     <timeout  time-to-complete="XPath-expression"

               fromRoleRecordReference="list of ncname"?

               toRoleRecordReference="list of ncname"? />?

   

     <record  name="ncname"

              when="before"|"after"|"timeout"

              causeException="true"|"false"? >

       <source  variable="XPath-expression"? | expression="Xpath-expression"? />

       <target  variable="XPath-expression" />

     </record>*

  </interaction>

  to
                                                       Interaction Syntax
  The syntax of the <emph>interaction</emph> construct is:



  <interaction  name="ncname"

                channelVariable="qname"

                operation="ncname"

                align="true"|"false"?

                initiate="true"|"false"? >

   

     <participate  relationshipType="qname"

                   fromRole="ncnameqname" fromRoleType="qname"

                   toRole="ncnameqname" toRoleType="qname"

     />

   

     <exchange  name="ncname"

                informationType="qname"?|channelType="qname"?

                action="request"|"respond" >

       <send      variable="XPath-expression"? 

                  recordReference="list of ncname"?   

                  causeException="true"|"false"? />

       <receive   variable="XPath-expression"? 

                  recordReference="list of ncname"? 

                  causeException="true"|"false"? />

     </exchange>*

   

     <timeout  time-to-complete="XPath-expression"

               fromRoleRecordReference="list of ncname"?

               toRoleRecordReference="list of ncname"? />?

   

     <record  name="ncname"

              when="before"|"after"|"timeout"

              causeException="true"|"false"? >

       <source  variable="XPath-expression"? | expression="Xpath-expression"? />

       <target  variable="XPath-expression" />

     </record>*

  </interaction>


  That is that we should give the roles names as well as showing what type the correspond to.

  Similarly for perform.  Should we not change
  <perform  choreographyName="qname" 

            choreographyInstanceId="XPath-expression"? >

     <bind  name="ncname">

       <this variable="XPath-expression" role="qname"/>

       <free variable="XPath-expression" role="qname"/>

     </bind>*

     Choreography-Notation?

  </perform>

  to
  <perform  choreographyName="qname" 

            choreographyInstanceId="XPath-expression"? >

     <bind  name="ncname">

       <this variable="XPath-expression" role="ncname" roleTypeRef="qname"/>

       <free variable="XPath-expression" role="ncname" roleTypeRef="qname"/>

     </bind>*

     Choreography-Notation?

  </perform>


  I propose to change the syntax of assign from
   

  <assign  roleType="qname">

     <copy  name="ncname" causeException="true"|"false"? >

        <source  variable="XPath-expression"?|expression="Xpath-expression"? />

        <target  variable="XPath-expression" />

     </copy>+

  </assign>

  to
   

  <assign  role="ncname" roleType="qname">

     <copy  name="ncname" causeException="true"|"false"? >

        <source  variable="XPath-expression"?|expression="Xpath-expression"? />

        <target  variable="XPath-expression" />

     </copy>+

  </assign>


  I propose to change the syntax for noAction from 
   

  <noAction roleType="qname? />

   

  to 
   

  <noAction role="ncname"? roleType="qname"? />

   



  although having one place in a choreography where we say what roles are involved and what the type of each role is would probably be better then doing it in several places like this and having to check consistency.  Perhaps something like
  <roleAssignments name="ncname" ">

     <roleAssignment role name="ncname" roleType="qname" />+

  </roleAssignments>


  then noAction would become
  <noAction role="ncname"? />


  and similar elsewhere.




  Best Regards     Tony
  A M Fletcher

  Cohesions  (TM)

  Business transaction management software for application coordination       www.choreology.com

  Choreology Ltd., 68 Lombard Street, London EC3V 9LJ     UK
  Tel: +44 (0) 1473 729537   Mobile: +44 (0) 7801 948219
  tony.fletcher@choreology.com     (Home: amfletcher@iee.org)

Received on Monday, 21 March 2005 09:02:44 UTC