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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-msg message

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


Subject: Re: T2 PLEAE READ - Suggested solution to RM Issues



My comments below.

Regards,
Marty

*************************************************************************************

Martin W. Sachs
IBM T. J. Watson Research Center
P. O. B. 704
Yorktown Hts, NY 10598
914-784-7287;  IBM tie line 863-7287
Notes address:  Martin W Sachs/Watson/IBM
Internet address:  mwsachs @ us.ibm.com
*************************************************************************************



Dan Weinreb <dlw@exceloncorp.com> on 09/11/2001 09:45:24 AM

Please respond to "Dan Weinreb" <dlw@exceloncorp.com>

To:   Martin W Sachs/Watson/IBM@IBMUS
cc:   chris.ferris@east.sun.com, ebxml-msg@lists.oasis-open.org
Subject:  Re: T2 PLEAE READ - Suggested solution to RM Issues



   Date: Mon, 10 Sep 2001 22:04:32 -0400
   From: "Martin W Sachs" <mwsachs@us.ibm.com>

      Date: Sat, 08 Sep 2001 01:45:33 -0400
      From: Martin W Sachs <mwsachs@us.ibm.com>

                                     We can't make any
      assumptions on the implementations of any of the nodes.

   Why is that?

   MWS:  Let me clarify.  I agree that we must assume that an IM node has a
   properly implemented FROM MSH and a properly implemented TO MSH. What
   we cannot assume is what goes on between those two MSHs because that is
   outside the scope of the MS Spec.

Ah, I see, that's very helpful.  So the point here is that an IM
should *not* be considered to be a kind of "bridge" analogous to a
bridge in a LAN.  By a bridge I mean something that operates entirely
at the level of the MS Spec: messages come in, messages go out (or
perhaps get lost sometimes), but are not interpreted at a higher
level.

MWS:  Correct; an IM is not as simple as a LAN bridge.

But you're saying that the "bridge" analogy is *not* appropriate.
Rather, you're thinking of the IM as running an "application" (by
which I mean something at a higher level of abstraction than the MS
Spec), and the application is not within the scope of the MS Spec.
The application might read in messages, and then maybe it might decide
to transmit them, or it might not; that's entirely up to it.  And
therefore we cannot rely on the IM to be part of our reliable
messaging protocol, and therefore we need end-to-end retransmit, etc.

MWS: At a minimum, the IM higher level function has to get the messages
out of input persistent store, figure out what to do with them, do some
transformations on the header (perhaps), figure out where to send them,
and pass them to the output MSH.  That function lives in the application
domain and is basically an application but with a very simple "BPSS" spec.

This is tricky because some of the use cases I have heard for IM's
really do make them sound like "bridges".  For example, the "mailroom"
use case, where the From Party is only occasionally connected to the
Internet, so it sends its messages to an IM which is always connected
and always up.  This IM's acts as a bridge.  Its only job is to
retransmit the message, without any interpretation; there's no
"application" here and no need to go out of the scope of the MS Spec.

Also, various people have asserted at various times on this mailing
list that the endpoints are "not aware" of the IM's.  This also
suggests a view of IM's as mere bridges.

MWS:  This is something like the blind men and the elephant.  Each of us
has a narrow (and different) view of what an IM is.

MWS:  This is why it is crucial to state the assumptions on what an IM
must do to support reliable messaging.

Here's another use case, courtesy of David Burdett:

   3. Routing intermediary.
   The intermediate MSH provides routing functionality. It analyzes the
ebXML
   message it receives and then forwards it to the correct URL for the To
   Party. This avoids the need for the From Party to keep routing tables or
   separate CPAs for every single partner they deal with. It also enables
the
   To Party to notify just one location rather than many about any changes
to
   how it supports eCommerce.

Here it's not immediately clear whether the "routing functionality" is
something that we want to think of as being at the MS Spec level, or
being at a higher level and not part of the MS Spec at all.  In the
latter case, the software doing the routing is, from our (MS Spec)
point of view, an "application", unknowable and not under our control.
It reads in messages, thinks about where to send them, and maybe loses
track of them in case of a crash or other anticipable failure.

MWS:  An IM that can lose track of the messages will not meet a multihop
reliable messaging spec. Again, we need to state the requirements on an
intermediary. At leeast: "An intermediary MUST provide reliable store and
forward of
messages"

MWS:  I suppose that we could attempt to define an MSH bridge but I doubt
that it would meet many people's requirements for an intermediary.

Another use case from David Burdett:

   6. Value added intermediary. Altering the Payload.
   The intermediary adds data to the Payload, for example adding an
additional
   authorization to a Purchase Order before it is sent to the Supplier. The
   payload is altered. The intermediary is in a different division of the
From
   Party at a separate location to the originator of the message.

Here it's completely clear that there's an application involved.

MWS:  IMHO, anything that takes a message out of a persistent store and
does something with it is in the application domain.  You
can't argue that the intermediary consists solely of two MSHs sharing
a persistent store.  The From MSH has to get information from above in
addition to the message, i.e. whatever information the MSH expects to
receive across its undefined API.  "Above" may (will?) also have to modify
the
message header information before passing it to the From MSH.

And in cases like these, the IM's are less invisible than ever.  In a
chain A - B - C - D, if an IM named C is adding an authorization
that's important to the business process, you'd think that at least at
some level, endpoint A has to "know" about C's existence, because A
cares about the authorization that C is generating and A wants to be
sure that this authorization gets added before the messages reaches D.
We've talked about preagreements (such as CPA's) between the endpoints
(A and D) and between adjacent nodes (A and B), but here it looks
like there has to be someplace where A knows about C as well.

MWS:  Again:  We don't want to design the intermediary function but
we do have to state
a requirement on what the intermediary must do to conform to
reliable messaging.

-- Dan





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


Powered by eList eXpress LLC