Discussion of 2.2.11 Intermediary

As per my action item, this email introduces discussion of the 2.2.11
Intermediary concept.

-=- Current situation -=-

The current text is[2]:

|    2.2.11 Intermediary
|
|      2.2.11.1 Summary
|
|   An intermediary is a message processing node that does not necessarily
|   represent the message's intended recipient; but which, none-the-less
|   processes some aspect of the message.
|
|      2.2.11.2 Relationships to other elements
|
|   an intermediary is
|
|           a agent
|
|      2.2.11.3 Description
|
|   Intermediaries process messages that are intended for other recipients.
|   An intermediary may act as a gateway to bridge transport services, or may
|   process specific aspects of messages (such as security information).

-=- Discussion -=-

The discussion about intermediary started in the "Message Recipient
2.2.26 & Sender 2.2.27 text" thread[1].

Rereading Shishir's email, my original proposal[3] doesn't work: an
intermediary may or may not be one of the recipients of the message,
and an intermediary doesn't *originate* a message.

Yin-Leng, I think that you are partially right in your email[4] to say
that an intermediary is not the sender's intended recipient: it is not
the intended ultimate recipient, i.e. one expects further processing.

I think that the confusion comes from the word "intended", and the
concept of final recipient which isn't reflected in our concepts.

The section on SOAP intermediaries in the SOAP 1.2 specification[5]
gives us a good direction about how to model them.

An intermediary:
- is an agent which processes a message.
- is not the ultimate recipient of the message, i.e. it is not the end
  of the message path.
- may or may not be an intended recipient for the message, i.e. a
  message recipient as per 2.2.26; an example of an intermediary which
  could be not an intended recipient could be a transparent SOAP proxy
  or firewall.

Comment about 2.2.26 Message recipient:

In Shishir's proposal[3], the description 2.2.26.3 talks about "the
message recipient is the agent that the sender intends the message to
be consumed by", i.e. not allowing several message recipients for a
message. It seems to me that this captures the semantics of what SOAP
calls the ultimate recipient. Moreover, I am wondering if "the"
instead of "a" doesn't prevent multicast.

As said in my original email[3], I would remove all mentions of
intermediary in 2.2.26 and 2.2.27.

The current summary talks about "message processing node". This is the
only place where the concept of a processing node appears in the
document, so I have replaced it by agent.

-=- The proposed changes -=-

Note: concepts are surrounded by "_".

Proposed 2.2.11.1 Summary

  An _intermediary_ is an _agent_ which processes part of a _message_. An
  _intermediary_ is not the ultimate _message recipient_ of the
  _message_, and relays the message to the next _message recipient_
  along the _message path_.

  Note: I have introduced a _message path_ concept.

Proposed 2.2.11.2 Relationships to other elements

  an _intermediary_ is
    an _agent_

  an _intermediary_ may be
    a _message recipient_

  Note: if the above statement looks odd, we may have to take
  "intended" out of _message recipient_.

Proposed 2.2.11.3 Description

  Intermediaries process messages along the message path. A message
  may be intended for an intermediary, or may be transparently
  processed by one.

  An intermediary may act as a gateway to bridge transport services,
  or may process specific aspects of messages (such as security
  information).

-=- Last comments -=-

Another way to approach intermediaries is to introduce 2 other
concepts[4] as proposed by Yin-Leng:
- message originator.
- message receiver.

We would have:
- a _message originator_ is an _agent_ originating a _message_ (which is our
  current definition of _message sender_).
- a _message sender_ is an agent sending a _message_.
- a _message receiver_ is an _agent_ receiving a _message_.
- a _message recipient_ is an _agent_ intended to receive a _message_.

We have the following relationships:
- a _message originator_ is a _message sender_.
- a _message recipient_ is a _message receiver_.
- an _intermediary_ is a _message receiver_ and a _message sender_,
  and may be a _message recipient_.

This increases the number of concepts but may make things clearer.

Comments?

Regards,

Hugo

  1. http://lists.w3.org/Archives/Public/www-ws-arch/2003Jul/0005.html
  2. http://dev.w3.org/cvsweb/~checkout~/2002/ws/arch/wsa/wd-wsa-arch-review2.html?rev=1.31&content-type=text/html#intermediary
  3. http://lists.w3.org/Archives/Public/www-ws-arch/2003Jul/0008.html
  4. http://lists.w3.org/Archives/Public/www-ws-arch/2003Jul/0036.html
  5. http://www.w3.org/TR/2003/REC-soap12-part1-20030624/#relaysoapmsg
-- 
Hugo Haas - W3C
mailto:hugo@w3.org - http://www.w3.org/People/Hugo/

Received on Monday, 7 July 2003 09:33:02 UTC