W3C home > Mailing lists > Public > public-ws-chor@w3.org > August 2003

RE: Correlation Requirements

From: Burdett, David <david.burdett@commerceone.com>
Date: Wed, 13 Aug 2003 13:52:47 -0700
Message-ID: <C1E0143CD365A445A4417083BF6F42CC053D1D20@c1plenaexm07-b.commerceone.com>
To: "'Assaf Arkin'" <arkin@intalio.com>, "Burdett, David" <david.burdett@commerceone.com>
Cc: Keith Swenson <KSwenson@fsw.fujitsu.com>, "'Monica Martin'" <monica.martin@sun.com>, "'Martin Chapman'" <martin.chapman@oracle.com>, "'Yves Lafon'" <ylafon@w3.org>, jdart@tibco.com, "'Ugo Corda'" <UCorda@seebeyond.com>, "'Cummins Fred A'" <fred.cummins@eds.com>, public-ws-chor@w3.org
Assaf

I can't think either of a situation where the data in the payload does not
contain information that can be used for corellation. So perhpas we should
not be concerned about that.

However, you also said ...
>>>Remember that the activity can't handle the wrong message type anyway, 
so you need to send it the right message type, which means you know 
where to look for the correlation information. And with WSDL/SOAP it's 
easy to match the incoming message type to the operation being performed 
and route it to the proper activity.<<<

Perhaps, but there is a use case where you might need to have the same
"logical" service accept multiple different message types. By a "logical"
service, I mean a service that provides the same functionality, for example
accepting/processing a purchase order, but is liberal in terms of the way
the order is presented, for example it might accept through the same port:
* SOAP 1.1 or SOAP 1.2
* WS Reliability as well as WS-Reliable Messaging
* UBL, OAG, RosettaNet & other order documents
* Variations on the above to allow for industry and regional requirements
* + more (probably)

The resulting possible permutations you can have is actually quite large.
If, as you suggest, that a service can only accept one variation, then you
will end up with multiple different WSDL definitions I think.

Can you see a way around this problem?

David

-----Original Message-----
From: Assaf Arkin [mailto:arkin@intalio.com]
Sent: Tuesday, August 12, 2003 2:29 PM
To: Burdett, David
Cc: Keith Swenson; 'Monica Martin'; 'Martin Chapman'; 'Yves Lafon';
jdart@tibco.com; 'Ugo Corda'; 'Cummins Fred A'; public-ws-chor@w3.org
Subject: Re: Correlation Requirements


Burdett, David wrote:

> Assaf
>
> Having rechecked the BPEL spec, I agree that having multiple ways to 
> identify a choreography instance makes sense. It also seems that the 
> exact way in which you do correlation will depend on the 
> implementation. For example a sales management application may accept 
> orders in various different document formats, e.g. UBL, RosettaNet, 
> EDI, etc.
>
> I am wondering how this would work from a practical perspective as the 
> service that receives the message MUST know where to look for the data 
> that acts as the correlation. Also, what do you do if there is no data 
> in the payload that can be used for correlation purposes?
>
The correlation specification (property, alias, etc) is helpful in 
letting the service know where to look for the information, so there's 
no confusion. There may be many different definitions out there in the 
world, but the service definition is written to use exactly one 
definition. The specification is very precise, there's no guessing where 
the correlation data comes from.

I can't think of a single case where you would want to correlate 
something and not have any data in the payload to use for correlation. 
In fact, in some cases you have more than one piece of data and you need 
to decide which one works best.

There are, however, simple cases like a request followed by a response 
where you would rather not bother with the details and let the RM 
protocol do the work. Of course, the RM protocol adds a field - and 
sometimes more than one field - you can use for correlation. But for the 
simple case you just let the RM protocol take care of it using something 
like WS-Addressing.

> For the first problem I can think of two ways of making it work:
> 1. You send the messages to different ports (URLs) depending on the 
> format of the message, or
> 2. You have something in the header of the message that identifies the 
> type of the message which can then be used to identify where to look 
> for correlation purposes.
>
Remember that the activity can't handle the wrong message type anyway, 
so you need to send it the right message type, which means you know 
where to look for the correlation information. And with WSDL/SOAP it's 
easy to match the incoming message type to the operation being performed 
and route it to the proper activity.

arkin

> Thoughts?
>
> David
>
Received on Wednesday, 13 August 2003 16:53:05 GMT

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