Re: Intermediaries

Roger:
  I don't think that it is fair to say that intermediaries are different 
to choreographies -- a case of apples and oranges.
  A particular setup involving intermediaries etc. may be modeled as a 
choreography; or may slip under the choreography radar - depending on 
your perspective and preferences.
  I think that the keys here are:
1. A message is deemed to be the same message or not -- as the case may 
be. There are many real-world examples of this: a letter containing a 
purchase order may be marked up by various people as its makes its way 
-- together with the accumulating documentation of the work item -- 
through an organization. Each person that reads the letter may be 
required to stamp it, or sign it, to say that he/she has read it. Is 
the letter the same or not -- after such a signature? It is, primarily 
because we say it is. The same principle applies (IMO) to electronic 
messages.
2. Once you unwrap a service into different pieces -- each piece 
dealing with a different aspect of the service -- then you can begin to 
properly account for intermediary-style processing. Without this 
unwrapping, intermediaries must be transparent -- in which case they 
don't exist from the service POV.
3. However, this unwrapping comes at a price: we now have to also deal 
with either choreography or composition of services -- or at least 
service elements. What *is* the thing that does some of the processing 
but not all of a given message? What is the totality of it all?

What follows is opinion:

I happen to believe that this unwrapping is a *good thing*. I fully 
realize that it tends to  muddy the clean SOA story somewhat: because 
we can now no longer be so hard and fast about not peeking inside 
service agents - the processing of a message is also no longer a 
one-shot affair.

That last feature is actually why I am in favor of this:

a. Processing of significant messages is *never* one-shot anyway.
b. The approach of well-defined elements of messages relating to 
well-defined aspects of messages seems to me to foster re-use and sound 
engineering.
c. The layered message suggests a parallel layering of the semantics of 
messages; which further reduces the sticker shock associated with 
documenting semantics.
d. A phased approach to processing/comprehension reflects natural 
realities better than the one-size-fits-all approach of pure SOAs.

BTW, the case of the mediator service -- the one that decides which 
service agent to direct a message to -- does seem to me to be an 
extreme case of an intermediary. Consider the parallel of a 
receptionist at the front desk. He/she uses information you provide to 
direct you to the right department. Similarly, the person sorting the 
incoming mail. It is clumsy to model that scenario solely in terms of 
originating new messages all the time.

Frank



On Dec 5, 2003, at 7:44 AM, Cutler, Roger (RogerCutler) wrote:

>
> Here is some text that expresses my understanding of the sense of some
> of the telcon conversation about intermediaries.  Please use, modify or
> ignor as seems appropriate.
>
> It is useful to draw a distinction between situations where messages 
> are
> passed through intermediaries and choreographies.  The essential issue
> is that an intermediary passes along a message that is essentially, or
> functionally, the same as it received.  If, on the other hand, the
> purpose or function of the message is substantially changed one should
> consider the situation to be a choreography.  This cannot be defined,
> however, in an entirely rigorous or black and white way -- one person's
> intermediary may legitimately be considered a choreography by others.
> Note that since an intermediary can change the message, for example by
> encrypting it or by adding ancillary information, it remains a judgment
> call whether those changes are significant and functional.  In 
> addition,
> whether a service that passes messages is considered an intermediary
> depends on participants in the entire chain of the message.  For
> example, if sender A sends messages through I, which modifies the
> messages, to receivers B and C, B might consider the modified message 
> to
> be functionally unchanged whereas C might consider it to be different
> and take different action because of the modification.  In the first
> case I would be considered an intermediary, in the second it would not.
>

Received on Friday, 5 December 2003 12:28:48 UTC