You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by Apache Wiki <wi...@apache.org> on 2006/11/28 13:50:55 UTC

[Ws Wiki] Update of "Tuscany/TuscanyJava/SCA Java/ConversationWSBinding" by cr22rc

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Ws Wiki" for change notification.

The following page has been changed by cr22rc:
http://wiki.apache.org/ws/Tuscany/TuscanyJava/SCA_Java/ConversationWSBinding

New page:
= Proposal for Conversation Web Services Binding =
The following is a proposed standard for a web services message exchange pattern to establish a conversation ID between client and server for SCA conversational support.  

== Motivation ==
Other existing open web services standards don't cover or completely specify an exchange to establish a conversation in a fully interoperable manor.  
 * WSA Specifies the form and semantics of an  Endpoint reference (EPR). It doesn't cover how endpoint references are created or exchanged.
 * WSRF does not standardize how EPRs to stateful resources are created. In addition, it specifies resource properties which go beyond SCA conversational requirements.


== Overview ==
The following proposes using a standard EPR in the SOAP header upon the first invocation of an operation on an interface with a conversation scope to contain the conversation id.

== Example SCA Conversation EPR ==


{{{
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
  xmlns:wsa="http://www.w3.org/2005/08/addressing">
  <S:Header> 
    <scaNS:ConversationReference xmlns:scaNS="http://www.osoa.org/xmlns/sca/1.0">
      <wsa:Address>http://someuri</wsa:Address>
      <wsa:ReferenceParameters>
        <scaNS:conversationID>xs:any*</scaNS:conversationID>
      </wsa:ReferenceParameters>
    </scaNS:ConversationReference>
   </S:Header>
  <S:Body>
  ....
  </S:Body>
</S:Envelope>
}}}

/scaNS:ConversationReference
  This element contained in the SOAP HEADER is recognised as the beggining of a new SCA conversation.
  It is of type http://www.w3.org/2005/08/addressing EndpointReferenceType
/scaNS:ConversationReference/wsa:Address  
  This element contained in the scaNS:ConversationReference element  specifies the [address] property of the endpoint reference. 
/scaNS:ConversationReference/wsa:ReferenceParameters
  This element contained in the scaNS:ConversationReference element is identical to it use in WS-A except its use is  REQUIRED.
/scaNS:ConversationReference/wsa:ReferenceParameters/scaNS:conversationID This REQUIRED element contained in a wsa:ReferenceParameters element contains the XML representation of the conversationID. 

All other elements MUST conform as specifed in WS-Addressing's wsa:EndpointReference.

Optionally, the response MAY contain in a SOAP HEADER element an EPR which is to be used for subsequent operations in the conversation. If not present the Request EPR will be used.

== Example calculator exchange. Sum numbers, get result ==
{{{
@Remoteable
@Session("CONVERSATIONAL")
public interface Calculator{
  public void add( int op);
  public int getSum();
  @EndConversation
  public void off();
}
}}}
=== Add 1: ===
{{{
Request:
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
  xmlns:wsa="http://www.w3.org/2005/08/addressing">
  <S:Header> 
    <scaNS:ConversationReference xmlns:scaNS="http://www.osoa.org/xmlns/sca/1.0">
      <wsa:Address>http://calculator/sum</wsa:Address>
      <wsa:ReferenceParameters>
        <scaNS:conversationID>03c77215-4717-11d8-ac80-0090272ff725</scaNS:conversationID>
      </wsa:ReferenceParameters>
    </scaNS:ConversationReference>
  </S:Header>
  <S:Body>
    <calc:add  xmlns:calc="http://calculator/sum">1</calc:add>
  </S:Body>
</S:Envelope>

Response:
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
  <S:Body>
    <calc:addResponse xmlns:calc="http://calculator/sum"/>
  </S:Body>
</S:Envelope>

}}}
=== Add 2: ===
{{{
Request:
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
  xmlns:wsa="http://www.w3.org/2005/08/addressing">
  <S:Header> 
        <scaNS:conversationID>03c77215-4717-11d8-ac80-0090272ff725</scaNS:conversationID>
  </S:Header>
  <S:Body>
    <calc:add  xmlns:calc="http://calculator/sum">3</calc:add>
  </S:Body>
</S:Envelope>

Response:
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
  <S:Body>
    <calc:addResponse xmlns:calc="http://calculator/sum"/>
  </S:Body>
</S:Envelope>
}}}

=== Get sum: ===
{{{
Request:
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
  xmlns:wsa="http://www.w3.org/2005/08/addressing">
  <S:Header> 
        <scaNS:conversationID>03c77215-4717-11d8-ac80-0090272ff725</scaNS:conversationID>
  </S:Header>
  <S:Body>
    <calc:getSum  xmlns:calc="http://calculator/sum"/>
  </S:Body>
</S:Envelope>

Response:
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
  <S:Body>
    <calc:geSumtResponse xmlns:calc="http://calculator/sum">3</calc:geSumtResponse>
  </S:Body>
</S:Envelope>
}}}
=== Off: ===
{{{
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
  xmlns:wsa="http://www.w3.org/2005/08/addressing">
  <S:Header> 
        <scaNS:conversationID>03c77215-4717-11d8-ac80-0090272ff725</scaNS:conversationID>
  </S:Header>
  <S:Body>
    <calc:off xmlns:calc="http://calculator/sum"/>
  </S:Body>
</S:Envelope>

Response:
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
  <S:Body>
    <calc:offResponse xmlns:calc="http://calculator/sum" />
  </S:Body>
</S:Envelope>

}}}

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@ws.apache.org
For additional commands, e-mail: general-help@ws.apache.org