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: a second aspect of : RE: [bt-spec] URIs and address-as-X (MAJOR)


 
More or less all the discussion has been on A, but Mark's original message also proposed radical changes on B, which I think are probably orthogonal.  Also they are mostly editorial, though they might reduce the overall functionality of BTP.
I'm not sure we gain much be splitting, but we can give it a go!
For the xml, as a concrete encoding, most of the target address has been used to work out how and where to send the concrete message. The "additional information" is still there, allowing routing information that is not understood by sender, and cannot be placed in any carrier protocol field to be sent to a btp-understanding entity, which can then the message on where it will be processed. The other address parameters are unchanged, although the reply-address is always optional.  The xml is designed to be suitable for non-RR and RR carriers.
Since we are always expecting to do mapping of BTP to specific carriers, I would argue that the information specific to delivery (RR or not) should go into a carrier-specific section. If I want to understand the BTP protocol I shouldn't be expected to have to wade through the information about how a particular message gets from A to B. It'd be like telling someone that in order to understand the two-phase commit protocol in the OTS they had to understand how the ORB sends and receives messages.
Once we come to the bindings, the "request/response exploitation rules" define how things work with a request/response carrier. These were added as part of the solution of Issue 7, agreed at last conference call, and the effect is summarised in the agreed solution of 7. For an implementation that wants to map a BTP request/response directly to the HTTP request/response, it just omits the reply-address as a real field in the outbound request. The receiver, by the exploitation rules, is then forced to put the reply on the response.
But if an implemetation wants to, it can more or less ignore the request/response nature and just treat HTTP as a series of one-way messages. In this case it does put its own address in as reply-address on outbound BTP messages - and this message may even arrive an http response and the reply be sent on a request, if the other side is playing the same game. (The other side can decline the game by sending the reply back on the carrier-response anyway)
I'm beginning to think that some (much) of the confusion we're having is that some you think of BTP as encompassing all levels from the socket up to the actual transaction engine, whereas what we've been thinking of as BTP is two separate things: the delivery and the functional message. The latter doesn't change from one carrier-binding to another, the former does. If we work on the basis of this separation then request/response (or not) falls into the carrier aspect of the protocol. It's the carrier-binding part of the BTP message set that may change from SOAP-to-email-to-carrier pidgeon-to-... not the functional part: the message the carrier pidgeon takes that says "commit transaction X" is the same as the one that the SOAP transport takes, it's just that the pidgeon flies through the air avoiding houses and bad weather (and probably goes faster than SOAP!)
 
---
So the target-address and reply-address wouldn't be necessary if we had a hard mapping to a request/response carrier (rather than the flexible one the "exploitation rules" provide) . An interoperable implementation could be built that never made use of them, other than to put other peoples (received) target additional-information in outbound messages. It can ignore all incoming reply-addressess (always using the carrier response), and never set its own (only sending btp "request"s on http requests)
So we load up the functional part of a BTP message with carrier information?
But thought that's fine for a strict web-services environment,
Good, because after all we are working in a web-services world here.
dropping the target and reply addresses at abstract and xml level would lock BTP into request/response worlds,
Hopefully the above helps.
which is hasn't been our intent as a committee (and which would be most vigorously opposed by Choreology - on the basis of known user requirements, not unbridled architectural ambition :-)
And likewise our arguments are based on known requirements.
 
Mark.
 
----------------------------------------------
Dr. Mark Little, Distinguished Engineer,
Transactions Architect, HP Arjuna Labs
Email: mark_little@hp.com
Phone: +44 191 2606216
Fax  : +44 191 2606250
 
 


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


Powered by eList eXpress LLC