RE: MEP proposal

> -----Original Message-----
> From: Amelia A. Lewis [mailto:alewis@tibco.com]
> Sent: Friday, February 21, 2003 10:43 AM
> To: Assaf Arkin
> Cc: jacek@systinet.com; mgudgin@microsoft.com;
> jeffsch@windows.microsoft.com; www-ws-desc@w3.org
> Subject: Re: MEP proposal
>

> Probably we need to state, somewhere, that a MEP is something
> that doesn't have any control flow constructs (and this is why
> there are choreography languages; *they* have constructs, we just
> have sequences ... grumble, grumble, mother *always* loved
> choreography best ...).  In fact, it's very likely that we need a
> much better (more constraining?  more precise?) definition of MEP
> and of operation.  Likewise, choreo languages need this, because
> they use MEP/operation as atoms.  If the point of this para is
> that we have some rather underdefined concepts, I'll go along with that.

I think we need to define these common communication idioms first, justify
them, and then define MEPs to support them. Otherwise, if MEPs are
open-ended we can consider extending them to the point where they cover the
same space as choreography. After all, a choreography is a pattern of
messages exchanged between the roles, and a store-and-forware mechanism may
also involve some complex MEP.

I'll give it a try:

We constaint WSDL MEPs to define atomic operations from the perspective of
the service.

<explanation>
The term atomic implies that the operation is indivisible, in other words,
contains the minimum number of messages required to perform the operation.
Any composition that can be further divided is not a WSDL MEP and is
achieved using choreography (or other coordination mechanisms). Atomic
operations can be combined to form interaction patterns of arbitrary
complexity (see WSCI).

The term atomic operation refers to the operation and not the protocol. A
TCP communication may involve multiple packets going back & forth between
two nodes. The service described by WSDL will never receive a partial
message, only a complete message, therefore has no understanding of how many
messages are exchanged by the underlying protocol.

Similarly, an RM layer may send messages, acks, nacks, pings, etc described
by some protocol-level message exchange pattern (e.g. WS-RM). From the
perspective of the WSDL operation, only one message is exchanged (acks,
nacks, pings are signals are not propagated up to the operation). Similarly,
intermediaries are ignored, though in reality multiple non-operation
messages may be exchanged between the service and the intermediaries.
</explanation>

We define two categories of atomic operations which together form four basic
operation MEPs:

Asynch - An asynchronous operation has a lower bound of one message.
Therefore all asynchronous operations involve one message.

Synch - A synchronous operation has a lower bound of two messages. Therefore
all synchronous operations involve two messages. Either message can be
empty, and either message can have alternative content models (e.g. in WSDL
1.1 an output message or one of several faults).

Unicast - A unitcast operation has one identified consumer, we model it as
an operation which begins by the service receiving a message.

Multicast - A multicast operation has multiple consumers, we model it in
reverse as an operation which begins by receiving a message from the
service.

Matrix for WSDL 1.1 operation MEPs:

                  Synch  Unicast
one-way             -       +
request-response    +       +
notification        -       -
solicit-response    +       -


<explanation>
A synchronous communication pattern can be built using asynchronous
operations. For example, in WSCI an interaction can be bound by a 'request'
message, a 'response' message and a time constraint. However, the semantics
of such a message exchange is different from an atomic synchronous
operation.

Since protocol bindings are defined at the WSDL level, such an interaction
may not be able to utilize the protocol in the same way as a WSDL
synchronous operation. For example, sending the request and response over
the same communication channel, or forcing response to be sent immediately
following request when communication channel is reused across operations
(HTTP 1.1 persistent connections).

Semantic differences also occur when factoring other atomic contexts, such
as security and transactions. A synchronous operation is guaranteed to
complete in the same transaction in which it started, and the security
context is guarantee to persist until the operation has completed.
(Long-lasting transactions are not subject to this restriction)

On the other hand, an asynchronous operation may be performed by the service
after the sending atomic transaction has completed, or after the sending
security context has expired. Such a context can range over the interaction
between the implementation and a store-and-forward mechanism (not described
by WSDL), but not across the entire interaction as described by WSDL.

The distinction between asynchronous and synchronous atomic operations
brings not just simplicity but also a better understanding of how
interactions occur based on these atomic operations.


A synchronous operation can be implemented using an asynchronous protocol,
as long as it obeys the semantics that two messages in opposite directions
follow each other and the operation is demarcated by the sending/receiving
of these messages.

For example, using UDP to send a 'request' message and UDP to receive a
'response' message, using different HTTP connections for each, and so forth.
In fact, every TCP communication is implemented using IP and Ethernet, both
of which are asynchronous protocols.

A multicast operation requires multicast protocol bindings. These are not a
normative part of WSDL 1.1 or WSDL 1.2, however, the operation is described
in abstract term and is therefore not constrained to the availability of any
particular protocol bindings.
</explanation>

arkin

>
> Amy!
> --
> Amelia A. Lewis
> Architect, TIBCO/Extensibility, Inc.
> alewis@tibco.com

Received on Friday, 21 February 2003 15:41:29 UTC