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

 


Help: OASIS Mailing Lists Help | MarkMail Help

bt-spec message

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


Subject: RE: [business-transaction] Re: [bt-spec] URIs and address-as-X (MAJOR)


This is one of three separate replies to Mark's message, though the threads
may need to remerge.

snippage at various places - usually not because I agreed though :-)

> > I think so. As I understand it, you are requiring that the URI used to
> > identify is also used to determine the location and access path - except
> > that seems to be what you don't want.
>
> Now I'm sure you're reading something that was never written. What we are
> saying is that URIs are used across the board at all levels,
> i.e., delivery
> and payload.

and if they are the same URIs, then one used to identify is also used to
locate. Which to me is confounding delivery and payload information.

> > Not sure which solution you're arguing for :-) - I take it
> "Currently the
> > specification ..." means what was in 0.9.1, which we are agreed
> is faulty.
> > But our proposal (proposed soln issue 78)  follows "separation
> between BTP
> > payload  and the delivery information" more strongly: we do not
> expect the
> > identifier (tid) to have any location semantics, and the
> addresses aren't
> > unambiguous.   The addresses take the message to where the tid's
> > identification of the state can be used.
>
> Firstly I don't believe that issue 78 does talk about the separation of
> deliver from payload as we've been discussing. This is really a separate
> issue, but one that needs doing no matter what we resolve to do with
> addresses and identifiers: the specification should make it clear for each
> message description what information is payload and what is carrier
> specific.

now separate issue

> So, "aren't unambiguous" (double negative) means that you want
> addresses to
> be amiguous? Why?

I want addresses to be (potentially) ambiguous with respect to transactions
because I only want them to locate an endpoint, which is the proper role of
"delivery" information. Making them identify particular transsactions is
overloading them with "payload" information.

Whether such an "ambiguous" address is then a URL is purely a question of
syntax. Think abstract :-)

>                 If we use URIs everywhere then we guarantee they are
> unique within a specific context. I don't think we've actually
> said that the
> URI used for delivery is actually the same as for identification within a
> payload. It could be, but it need not be. That would be implementation
> specific.

No, it has to be standardised, and standardised at btp level, not at binding
level. I've got to know how to do is_same_transaction() on things I receive
both for your identifiers, and for mine.

[ added later: we're not arguing for the same thing are we ?  if the URI
(actually must be a URL) used for delivery might not be the same as the
identifying URI in the payload, then they must be in separate places in the
overall message (i.e. ignoring protocol boundaries for a moment). So the one
in the payload is *never* be used for delivery, and the one (or set) in
<whereever> is only used for delivery. In which case, there's no point in
requiring either to contain the other's information at all.  Our
disagreement then comes down to whether we keep the present xml structure
for endpoint addresses, or reformat them into URLs, defining rules for
breaking the fields apart.  But you seemed to want something more different
than that (which would itself be rather pointless). ]

> > I'm no longer clear if you are proposing that the tid URI is also an
> > addressing URI; and if *all* the addressing URIs are usable as the tid.
>
> Not the latter, since not everything is a transaction! However, given a
> transaction id, if it's a URI then I can "instantly" contact the
> transaction, or at least know where it was!

answered separately, but I meant "all the URLs in a message that is
announcing the location-identity of a transaction"

(actually, I'll mention here that these - superior, inferior, decider aren't
necessarily all "transactions" within the understanding of all
implementations. they often are, and in some implementations may always be,
but the multiple identifiers are intended to allow implementation
flexibility, and it may confuse some implementations to think of a
Participants state information as a "transaction".  But we can use
transaction as short-hand for the purposes of this discussion).

> > If
> > the second, then there remains a nasty matching problem for someone. If
> the
> > second is no, then why must the tid URI do double-duty.
>
> Because we need the separation between what is at the transaction
> level and
> what is at the carrier level. The carrier level should be concerned *only*
> with how to get a message from A to B and should not then need to pass
> specific information up to the BTP service component at B in
> order for it to
> know where to send a reply (if necessary). Everything that the service
> component needs to deliver a response should be in the payload and if the
> tid is a URI it gets it by default.

There's a lot of points in there

 my question was why do you force the <whatever> that identifies the
transaction to contain delivery information. The <whatever> certainly
resides in the payload. We are agreed it is globally unambiguous (which it
wasn't in 0.9.1 and earlier) - it is sufficient on its own, without
additional information to name the transaction.

but you've answered about passing information up from carrier to btp
service, which never really happened !

If that's referring to the reply, as in reply-address, then it won't be tid
anyway - there isn't a transaction at the request end of the btp
request/reply pairs. In practice, if the carrier is request/reply, there
*might* not be a reply-address, if the requestor forces the (likely)
response on carrier response. But if the underlying carrier isn't RR, then
some btp or btp-binding defined thing has got to carry the reply-address -
which is why we have reply-address as an abstract construct, and as a real
field, which can be null in particular cases. If the underlying carrier is
RR, then (at binding specification), you either force response-on-response
for all instances, or follow the rr exploitation rules, and allow (but do
not require) a non-null reply-address.

Assuming you don't want to reduce the function by chucking out the rr
exploitation for soap-http, your approach seems to require some additional
xml wrappers to hold the reply-address, so you can say that which bits of
the soap-body are btp payload, and which are deemed part of the delivery
information.

If your paragraph was referring to superior:inferior exchanges, which aren't
request/reply at btp level, then there are tid's in the messages, but they
can't, in general, be used to work out where to send the next message (the
multiple address possibility stops this working in general). Quite often,
the senders tid isn't on the message anyway (superior->inferior messages it
isn't, inf->sup it is).  Each side has to refer to the original set-of-URLs
(with your scheme) or addresses (old, and ours) it received on CONTEXT or
ENROL as may be to send a message. It may (by exploitation rules) take
advantage of a convenient response, but it can't guarantee it.

But your desire to use the tid to work out where to send the next message
seems to be precisely contrary to your requirement to separate the
transaction and carrier levels.


Peter



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


Powered by eList eXpress LLC