OASIS ebXML Messaging Services TC

  • 1.  RE: [ebxml-msg] Regrets and a remark on: [ebxml-msg] RE: ebms - Multi-hop Signal Routing (ebMS-Signal-Routing.doc) uploaded

    Posted 03-11-2008 13:12
    Dale,
    
    I tend to agree - but I think any intelligent design would make that optional - so that basic delivery can occur without the additional overhead - but if the sender needs extended delivery options - I feel its not unreasonable that additional markup is required to fulfil that - and of course the risk that somewhere in the delivery stream a system may not support all those options.
    
    DW
    
    > 


  • 2.  RE: [ebxml-msg] Regrets and a remark on: [ebxml-msg] RE: ebms - Multi-hop Signal Routing (ebMS-Signal-Routing.doc) uploaded

    Posted 03-11-2008 13:42
    David,
    
    My concern is that the message metadata that ties the message into
    larger units of work needs to be supported for all messages other than
    those of use only to the MSH (these are now in v3 mainly RM acks and
    setup/takedown things)
    
    ebXML is supposed to be usable in whole or in part. Sometimes the focus
    is more on usability in part; this focus yields a lot of optionality
    concerns.
    But it is equally important to provide support for agreements and
    contracts at higher levels, including those implicit in CPPA and ebBP
    and BIEs eventually. That is why the inclusion of the metadata "indices"
    such as To From AgreementRef Service Action Role is something that
    should be close to the default, and only omitted when clearly not needed
    (as for low level MSH concerns).
    
    Anyway that is my point in reminding this thread of the other parts of
    ebXML. There is ongoing adoption of these other core areas of
    functionality that join existing users in still expecting and requesting
    support.
    
    
    
    


  • 3.  RE: [ebxml-msg] Regrets and a remark on: [ebxml-msg] RE: ebms - Multi-hop Signal Routing (ebMS-Signal-Routing.doc) uploaded

    Posted 03-11-2008 23:32
    Dale:
    
    No-one denies the need to bind some ebms signals to the application
    layer.
    
    I think in the past we looked at two models, concerning "response
    signals" (eb:Errors or Receipts responding to other messages):
    
    (1) provide all these signals with a full set of metadata headers as
    found in User messages. So these are (can be) bound to the Consumer app
    the same way as User messages.  
    
    (2) Do not add business-level metadata in signals, and rely instead on
    their association (RefToMessageID) with the related User message and its
    metadata - which normally should be persisted long enough in order to
    make sense of this signal. 
    
    In both cases, application delivery of these signals (along with related
    metadata) is always an option - yet just an option. 
    
    So far I have not heard much of a concern at the time the TC decided to
    go along with (2).
    
    In our implementation, Errors are not delivered to the application, but
    logged. The application can access this log via an API, or the MSH can
    be configured for notification to the app. We treat Receipts the same
    (logged after validation). Yet it would be easy for us to add a Receipt
    delivery option similar to User messages delivery: we do not need
    additional headers for this. 
    In solution (1) it is not clear to me what kind of business metadata
    would go in an eb:Error message (the same as in the User message in
    error?)
    
    We also need to have a closer look at routing options and their cost in
    the I-cloud, before evaluating (1) or (2) based on their multi-hop
    friendliness.
    
    Jacques
    
    


  • 4.  RE: [ebxml-msg] Regrets and a remark on: [ebxml-msg] RE: ebms - Multi-hop Signal Routing (ebMS-Signal-Routing.doc) uploaded

    Posted 03-12-2008 09:27
    Hello,
    
    Thanks for a detailed proposal. A couple of comments:
    
    Line 91-99 and below:  when the TC considered (1) and (2) I was not a
    member, but I indicated via TC comment that this would cause routing issues
    in multi-hop. The response at the time was that multi hop was not in scope.
    Now it is, and now we see why it is an issue ..  
    
    Line 91-100. I think adding more business header information in Signals is a
    serious option, especially if it results in intermediaries having to
    implement only one routing mechanism instead of two separate ones.  Those
    elements could be optional, and a single-hop profile could constrain them to
    not be used or to ignore them if used. It could then qualify as an erratum.
    We've already seen that achieving end-to-end security may require different
    behaviour from endpoints, and there certainly is no eb:RoutingElements
    element in the v3.0 Core XSD, so we will need to publish an updated schema
    anyway.
    
    Like your option 1, business header routing would require a "reverse
    routing" function. For ebMS 2.0 this reverse routing is limited to reversing
    eb:From and eb:To. An intermediary that forwards user messages with 


  • 5.  RE: [ebxml-msg] Regrets and a remark on: [ebxml-msg] RE: ebms - Multi-hop Signal Routing (ebMS-Signal-Routing.doc) uploaded

    Posted 03-12-2008 19:26
    
    
    
    
    

    Pim:

    Thanks for detailed review. Useful coments.

    inline <JD>

    -----Original Message-----
    From: Pim van der Eijk [
    mailto:pvde@sonnenglanz.net]
    Sent: Wednesday, March 12, 2008 2:27 AM
    To: Durand, Jacques R.; 'Moberg Dale'; 'David RR Webber (XML)'
    Cc: ebxml-msg@lists.oasis-open.org
    Subject: RE: [ebxml-msg] Regrets and a remark on: [ebxml-msg] RE: ebms - Multi-hop Signal Routing (ebMS-Signal-Routing.doc) uploaded


    Hello,

    Thanks for a detailed proposal. A couple of comments:

    Line 91-99 and below:  when the TC considered (1) and (2) I was not a member, but I indicated via TC comment that this would cause routing issues in multi-hop. The response at the time was that multi hop was not in scope.
    Now it is, and now we see why it is an issue .. 

    Line 91-100. I think adding more business header information in Signals is a serious option, especially if it results in intermediaries having to implement only one routing mechanism instead of two separate ones. 

    <JD> In  both cases the routing mechanism is the same: to use header content (whether from eb header or from wsa header) and have entries for possible values in the routing table of each intermediary that tell where to forward the message. Since there may be several possible such entries that match a message (e.g. several header fields in eb header), enforce a precedence order.</JD>

    Those elements could be optional, and a single-hop profile could constrain them to not be used or to ignore them if used. It could then qualify as an erratum.
    We've already seen that achieving end-to-end security may require different behaviour from endpoints, and there certainly is no eb:RoutingElements element in the v3.0 Core XSD, so we will need to publish an updated schema anyway.

    <JD> yes, schema change for Option 1. But the key point is that endpoint MSHs that are today conforming to Core V3, need not support this to enter the multihop game, unlike if we require insertion of business headers by the endpoints themselves. </JD>

    Like your option 1, business header routing would require a "reverse routing" function. For ebMS 2.0 this reverse routing is limited to reversing eb:From and eb:To. An intermediary that forwards user messages with <From, To, {other parameters like Service..}> should be configured to reverse route Signal messages <To, From, {some other parameter values}>.  For most practical use cases (B2B, G2G, SOA), that seems quite acceptable (see separate message).

    <JD> In some cases it is not acceptable... (see my multihop use case) and inthese cases it is much more manageable to add the Gateway URL as an entry of the general routing function - since the URL of the initial Gateway is known. That part of the routing function is very stable - would never change as long as the I-Cloud topology doesnot change. Immune to adding new endpoints MSHs.</JD>

    Line 188-192:  I see why you propose that the final MSH sends any Signals synchronously.  Assuming we want the configuration for MSH B to be the same (or as similar as possible) whether or not intermediaries are present, the result is that an MSH A will get Signals synchronously when sending directly (not via intermediary) and asynchronously when connecting indirectly (via an intermediary).  OK, but a maximally transparent approach (in my interpretation of "transparent") would allow an MSH to only change the next hop URL and possibly TLS security to send via an intermediary instead of directly.

    <JD> then you would preclude the reasonable configuration allowed by multihop, where response Signals are sent back synchronously from the ultimate destination, but for the sake of not keeping connections open too long, the initial sender will expect them asynchronously. All we say, is that this very realistic approach (not possible in peer-to-peer) should be allowed in multihop. We can easily add aPMode parameter that says: "I prefer to get these signals synchronously, but in case of multihop I will also accept asynchronous". The endpoint MSH still does not have to know upfront who it is dealing with...</JD>


    Line 255-368:  this proposal has two major advantages: minimal configuration for Router intermediaries, and it can even support dynamic routing (as
    opposed to static routing tables at intermediaries).   But it seems to break
    a clean distribution of routing at various levels:
    Level 1:  HTTP clients and servers, routing based on next hop URLs.
    Level 2:  SOAP nodes (ebMS and non-ebMS), routing based on WS-A headers. 
    Level 3:  ebMS nodes, routing based on ebMS headers.
    For Signal messages, this proposal is somehow "in between" levels 2 and 3.

    <JD> your model works cleanly only if an ebMS node is NOT a wsa node. And in Option 2, indeed an ebMS node is also a wsa node. Where we have simply to be more specific, is how to deal with that case. I think it can be simply dealt with by stating that a wsa node takes precedence over the ebMS node: when both routing options are present, wsa takes over. That seems reasonable because a routing where the destination URL (here the initial Gateway) is explicit, is safer and easier than a routing where it is determined by the routing function along the way.</JD>


    Line 359-363:  This is about using a wsa IRI not used as next hop URL but as a key for a lookup to find a next WSA hop.  Is this standard WS-A
    functionality?    Isn't the ultimate consequence of this that all
    intermediaries must know about each other and having intermediary-to-intermediary routing tables?

    <JD> maybe that text wasn't explicit enough. The wsa:To always contains the URL of the final Gateway to which the Signal (or any message...) must be sent. Under simple conditions, this is sufficient to directly route the message to this Gateway (using a routing mechanism called the Internet ;-) But there may be cases where Gateways refuse to get incoming requests from everybody and accept input only from a few predefined nodes - hence the need to use this URL just as another entry of the I-Cloud routing function. So the decision what to do with the wsa:To URL, could be simply based on: Is it an entry of teh routing table that leads to another URL? if yes use that other URL. If no (i.e. there is no "wsaTo" entry for this URL value) then you can directly send the message to this URL. That would be the "default" option.</JD>

    Reading this section somehow made me think of the "Via" and message trace elements in version 1.0 ..

    Pim