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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to