OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-bindings message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: ISSUE 18 - Clarify the rules on which queues and topics are used forresponses and callbacks



Folks,

Proposed resolution to issue 18:

Replace section 7 "Callback and Conversation Protocol" with:

----------------------------------------------------------------

7 Message Exchange Patterns

This section describes the message exchange patterns that are possible when using the JMS binding, including one-way, request/response, callbacks and conversations.

7.1 One-way message exchange

A one-way message exchange is one where a request message is sent that does not require or expect a corresponding response message. These are represented in WSDL as an operation with an input element and no output or fault elements.  

When a request message is received by a service with a JMS binding for a one-way MEP, the service MUST not send a response message, whether or not there is a JMSReplyTo destination set in the request message.  

When a request message is sent by a reference with a JMS binding for a one-way MEP, then the JMSReplyTo destination SHOULD NOT be set in the message unless the corresponding interface is bidirectional and callbacks are expected from the target JMS application using the JMSReplyTo destination (see below).

7.2 Request/response message exchange

A request/response message exchange is one where a request message is sent and a response message is expected, possibly identified by its correlation identifier.  These are represented in WSDL as an operation with an input element and an output and/or fault element.  

When a request message is received by a service with a JMS binding for a request/response MEP, then the response MUST be sent to the message's JMSReplyTo destination if not null. If the JMSReplyTo destination is null then the response MUST be sent to the destination identified by the JMS binding's response element.  If there is no destination defined by either means then an error SHOULD be recorded by the SCA runtime.  The response message MUST have its correlation identifier set as defined by the correlationScheme attribute.

When a request message is sent by a service with a JMS binding for a request/response MEP, then the destination for the response message MAY be defined by the response element of the JMS binding.  If no such destination is defined then the SCA runtime MUST provide an appropriate destination.  The JMSReplyTo destination in the message MUST be set to that destination.  The response message MAY be received on the basis of its correlation identifier as defined by the correlationScheme attribute.

7.3 JMS User Properties  [as per existing section 7.1]

7.4 Callbacks

A callback is the invocation of an operation on a service's callback interface.  A callback operation may be one-way or request/response.

When interacting with non-SCA JMS applications, a request/response message exchange MAY be modelled as a one-way operation on a bidirectional interface with a one-way operation in the callback interface.  In that case it is likely that the non-SCA JMS application does not support the scaCallbackQueue, and so the SCA runtime MAY use JMSReplyTo to identify the destination to be used to deliver callback messages for one-way exchanges and omit the scaCallbackQueue user property.  For request/response exchanges, the JMSReplyTo destination is used to deliver the response message, so cannot be used for callbacks.

When an SCA component with a reference with a bidirectional interface and JMS binding ("the sender") invokes an operation on that interface, the destination for callback messages MAY be defined by the request destination of a JMS binding on the reference's callback service.  If no such destination is defined then the SCA runtime MUST provide an appropriate destination.  the JMS message that is sent SHOULD identify the destination for callbacks using the scaCallbackQueue user property.  For one-way operations, the JMS message that is sent MAY identify the destination for callbacks using the JMSReplyTo, and MAY omit the scaCallbackQueue user property in that case.

The invoked SCA component ("the receiver") may invoke operations on the callback interface at any time after receiving a message with the scaCallbackQueue set, or a one-way message with the JMSReplyTo destination set to a non-null value, or at any time if the service's callback reference has a JMS binding with a request destination element.

7.5 Conversations [as per existing section 7.3]

----------------------------------------------------------------

Regards, Simon

Simon Holdsworth
STSM, SCA Bindings Architect; Master Inventor; OASIS SCA Bindings TC Chair
MP 211, IBM UK Labs, Hursley Park, Winchester SO21 2JN, UK
Tel +44-1962-815059 (Internal 245059) Fax +44-1962-816898
Internet - Simon_Holdsworth@uk.ibm.com






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU








[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]