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

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel-comment message

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


Subject: Issue R13: BPEL partner link assignments


This is an attempt to crystallize the one of the many issues raised in
the first public review, all captured under this issue (R13)

 

Consider the same use case as in the original email exchange: 

 

1. Receive PartnerLinkA, Operation1, messageExchange=First
2. Receive PartnerLinkA, Operation1, messageExchange=Second
 
     ... some work (a) ...
 
3. Reply PartnerLinkA, Operation1, messageExchange=First
4. Reply PartnerLinkA, Operation1, messageExchange=Second
 
     ... some work (b) ...

 

 

In the original issue, there was an implied assumption that any
reference to the partner link EPR relies on some engine capability - and
mandates some transport specific behavior.

While this is true, there should be a portable way of representing a
simple behavior such as logging the source of the request - in a generic
way (using an serf for example) - without any reliance on a particular
transport or its capability. For example, the service ref might encode
the TCP connection information (the 5 tuple) or the WSA address or any
other identity the engine supports.

 

There are 2 areas not defined by the spec which would make this use
case, and other's like it, non-portable:

a)

The spec allows assignments from a partner link, so "some work (a)"
could be an assign from PartnerLinkA. But considering that
messageExchange First and messageExchange Second might have been invoked
by different entities (i.e. different synchronous TCP connections), the
assign activity does not provide enough information (e.g. message
exchange) to allow for portable operation. Each engine implementation is
free to have its own interpretation - or even to reject this since
there's no definite way to disambiguate the 2 originating entities.

 

b)

The spec does require the engine to keep track of each open IMA, with
enough information to deliver a reply to the appropriate request. A bpel
process can assign from an initialized partner link. Considering an
assign performed after a reply has been sent ("some work b") - is the
partner link still considered initialized? The spec does not address
this issue. 

 

 

The 2 points above suggest that for portability of BPEL processes,
message exchange attribute should be included on the partner link form
of Assign. The same considerations apply to Invoke activities.

 

The requested changes are:

-          Add an optional messageExchange on the Assign activity when
used with a from partner link and on invoke activities.

-          Clarify the life time of an implicit assignment performed by
a receive activity to a partner link - is it for the life time of the
partner link (i.e. the scope in which it is defined), or just until the
corresponding reply activity.

 

Note that the above changes do not impose any new demands on an engine -
they require the engine maintain some identity for the originator of a
message, but does not impose any semantics on it. In fact, service-ref
already defines a container for such identities.

 

 

Thank you for seriously considering the issues raised above,

 

Andi Abes

Progress Sonic.

 

 

 

 



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