OASIS ebXML Messaging Services TC

 View Only

RE: [ebxml-msg] Proposed CPP/A schema changes to deal with ebMS perMessage parameters

  • 1.  RE: [ebxml-msg] Proposed CPP/A schema changes to deal with ebMS perMessage parameters

    Posted 11-27-2001 15:18
    Marty, Arvola needed to make this clear to me, as well. The use case is that two partners agree to perMessage semantics. But in practice, what happens on the sending MSH side when the business app makes no perMessage indication? Should the sending MSH make a random choice? Or, what happens when the receiving app gets a message that has no perMessage indication? What should the senders and receivers do in these cases? Establishment of an agreed upon default value (other than the one in the cpa) would promote clear expectations and consistent results. Bruce ============================================ Bruce Pedretti Hewlett-Packard Company Software Developer 6000 Irwin Road (856) 638-6060 Mt. Laurel, NJ 08054 http://www.hp.com/ ============================================ -----Original Message----- From: Martin W Sachs [ mailto:mwsachs@us.ibm.com ] Sent: Tuesday, November 27, 2001 9:22 AM To: PEDRETTI,BRUCE (HP-NewJersey,ex2) Cc: 'Arvola Chan'; ebxml-msg@lists.oasis-open.org Subject: RE: [ebxml-msg] Proposed CPP/A schema changes to deal with ebMS p erMessage parameters Since there are really only 3 cases: yes in CPA, no in CPA, per message, I don't understand the need for a default in the message specification. Given that the only usable values in the message are yes and no, why should the attribute be permitted to be left out? 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 **************************************************************************** ********* PEDRETTI,BRUCE (HP-NewJersey,ex2) <bruce_pedretti@hp.com> on 11/26/2001 06:07:05 PM To: 'Arvola Chan' <arvola@tibco.com>, ebxml-msg@lists.oasis-open.org cc: Subject: RE: [ebxml-msg] Proposed CPP/A schema changes to deal with ebMS p erMessage parameters Arvola, Thank you for helping me understand the issues. This design is elegant in that you nicely cover the gambit with two attributes, but perhaps it is difficult to understand because the flag attribute is dual-purpose. Sometimes flag provides a fixed value, sometimes it provides a default. This makes me a bit uneasy for two reasons: 1) if a value is a default, then for readability the attribute name ought to indicate such (for example, perMessageDefault ); and 2) without annotated documentation, this dual-purpose concept can not be expressed in a schema. There are at least two other alternatives: 1) <DuplicateElimination inForce= perMessage perMessageDefault= false /> 2) Use element presence for boolean conditions.  For example:     a) if duplicate elimination false: <DuplicateElimination> absent     b) if duplicate elimination true: <DuplicationElimination> present     c) if duplicate elimination perMessage: <DuplicateElimination perMessageDefault= true /> All 3 seem to me to have pros and cons.  My preference is for alternative (1).  My fellow hp developers prefer alternative (2).  If you go with your original proposal, careful documentation may be important. Bruce ============================================ Bruce Pedretti       Hewlett-Packard Company Software Developer   6000 Irwin Road (856) 638-6060       Mt. Laurel, NJ 08054 http://www.hp.com/ ============================================ -----Original Message----- From: Arvola Chan [ mailto:arvola@tibco.com ] Sent: Monday, November 26, 2001 4:24 PM To: PEDRETTIBRUCE (HP-NewJerseyex2); ebxml-msg@lists.oasis-open.org; ebxml-cppa@lists.oasis-open.org Subject: Re: [ebxml-msg] Proposed CPP/A schema changes to deal with ebMS permessage parameters Bruce: I was allowing for the fact that the two parties may have agreed that a property like AckRequested is perMessage and still specify in the CPA a bilaterally agreed default value (which can be different from the schema default) for the property should the sending application omit to specify a value for this property. If such negotiated defaults are unnecessary, then I agree that your suggested simplifications will be sufficient. Thanks, -Arvola -----Original Message----- From: PEDRETTI,BRUCE (HP-NewJersey,ex2) <bruce_pedretti@hp.com> To: 'Arvola Chan' <arvola@tibco.com>; ebxml-msg@lists.oasis-open.org < ebxml-msg@lists.oasis-open.org> Date: Monday, November 26, 2001 12:36 PM Subject: RE: [ebxml-msg] Proposed CPP/A schema changes to deal with ebMS permessage parameters <bp>Comments in-line...</bp>  -----Original Message----- From: Arvola Chan [ mailto:arvola@tibco.com ] Sent: Monday, November 26, 2001 2:58 PM To: PEDRETTIBRUCE (HP-NewJerseyex2) Cc: ebxml-msg@lists.oasis-open.org; ebxml-cppa@lists.oasis-open.org Subject: Re: [ebxml-msg] Proposed CPP/A schema changes to deal with ebMS p ermessage parameters Bruce: Please see my embedded comments. Regards, -Arvola -----Original Message----- From: PEDRETTI,BRUCE (HP-NewJersey,ex2) <bruce_pedretti@hp.com> To: 'Arvola Chan' <arvola@tibco.com> Cc: ebxml-msg@lists.oasis-open.org <ebxml-msg@lists.oasis-open.org> Date: Monday, November 26, 2001 10:35 AM Subject: RE: [ebxml-msg] Proposed CPP/A schema changes to deal with ebMS p ermessage parameters Arvola, Thanks for taking the initiative to present these ideas to the cpa team. Comments: 1) Personally speaking, I had envisioned an attribute for DuplicateElimination that had the enumerated values: true, false, perMessage.  For example, <DuplicateElimination inForce= true /> or <DuplicateElimination inForce= perMessage />. <ac> Even when the two parties agree that duplicate elimination is to be specified per message, the sending MSH may still want to look to the CPA for guidance on how this attribute should be set. That is, the application may explicitly specify a value for the duplicateElimination attribute, or choose to omit it in which case the CPA should provide the default value. Therefore, just having perMessage , true , and false as the only possible values for the inForce attribute is not quite sufficient. <bp>I don't understand what you mean by not sufficient .  What other possible values might there be?  Just to be explicit about the meaning of these values as I see them: 1) If true , then both parties agree that duplicateElimination is inForce; 2) If false , then both parties agree that duplicateElimination should not be performed. 3) If perMessage , then the Receiving MSH will comply with message header (if possible). Are there other arrangements?  I agree that the CPA schema should provide a default value, but that idea is not counter to an enumeration.</bp> </ac> 2) The AckRequested issues could also be simplified with the same enumeration.  For example <Ack requested= true signed= perMessage />. <ac> Similarly, the CPA should provide guidance to the sending MSH whether it should construct an AckRequested element, if the application chooses to omit such specification.   <bp>Similar rebuttal as above</bp> </ac> 3) Also, am I understanding correctly that you are proposing defaults for AckRequested such that:     <AckRequested  perMessageCharacteristics= perMessage includeInMessageHeader= false /> ... are these default values at odds with each other?  If AckRequested is supposed to be decided on a per message basis, mustn't the info be included in the message header -- or am I misunderstanding the includeInMessageHeader attribute? <ac> The intended meaning is that the application may specify on a per message basis, whether an AckRequested element should be constructed. However, if the application omits such a specification, the MSH should not construct an AckRequested element because includeInMessageHeader is set to false. At the same time, this default can be changed by setting includeInMessageHeader to true.   <bp>Isn't an absence of AckRequested and an AckRequested= false semantic the same?  Seems to me that if the app says nothing about an MSH ack requested, then the MSH should not create the AckRequested element.  Under what circumstances might it need to create an AckRequested= false ?  </bp> </ac> -----Original Message----- From: Arvola Chan [ mailto:arvola@tibco.com ] Sent: Monday, November 19, 2001 7:16 PM To: Doug Bunting Cc: ebxml-msg@lists.oasis-open.org; ebxml-cppa@lists.oasis-open.org Subject: Re: [ebxml-msg] Proposed CPP/A schema changes to deal with ebMS per message parameters Doug: The first point in my original message was intended to differentiate message properties that originate from BPSS from those that are specific to the messaging specification. The DeliveryChannel element originally contains a Characteristics element that carries BPSS related parameters. I am recommending that Characteristics be renamed BusinessProcessCharacteristics before we add the new MessagingCharacteristics element. Here is another suggested set of schema changes to address your desire to allow   acknowledgments are required for this delivery channel and the message will indicate whether signing is required or any requested acknowledgement must be signed .  <element name= MessagingCharacteristics >   <complexType>    <sequence>     <element ref= tns:AckRequested />     <element ref= tns:AckSignatureRequested />     <element ref= tns:DuplicateElimination />    </sequence>   </complexType>  </element>  <element name= AckRequested >   <complexType>    <attribute name= perMessageCharacteristics type = tns:perMessageCharacteristics.type default= perMessage />    <attribute name= includeInMessageHeader type= boolean default = false />    <attribute name= actor type= tns:actor.type default= toPartyMSH />   </complexType>  </element>  <element name= AckSignatureRequested >   <complexType>    <attribute name= perMessageCharacteristics type = tns:perMessageCharacteristics.type default= perMessage />    <attribute name= flag type= boolean default= false />   </complexType>  </element>  <element name= DuplicateElimination >   <complexType>    <attribute name= perMessageCharacteristics type = tns:perMessageCharacteristics.type default= perMessage />    <attribute name= flag type= boolean default= false />   </complexType>  </element>  <simpleType name= perMessageCharacteristics.type >   <restriction base= NMTOKEN >    <enumeration value= fixed />    <enumeration value= perMessage />   </restriction>  </simpleType>  <simpleType name= actor.type >   <restriction base= NMTOKEN >    <enumeration value= nextMSH />    <enumeration value= toPartyMSH />   </restriction>  </simpleType> Regards, -Arvola -----Original Message----- From: Doug Bunting <dougb62@yahoo.com> To: Arvola Chan <arvola@tibco.com> Date: Monday, November 19, 2001 3:26 PM Subject: Re: [ebxml-msg] Proposed CPP/A schema changes to deal with ebMS per message parameters Arvola, I'm not on the CPPA list and I'm unsure about the history here.  Feel free to forward your answers as appropriate. What will the effect of the first point be?  More particularly, what does this have to do with the goals you've listed above? The line <attribute name= actor type= tns:actor.type / default = toPartyMSH >  needs the slash moved to the end. I like what's been described as two separate Boolean values for AckRequested in the CPA -- one that controls whether acknowledgements are supported at all and another that controls whether any supported acknowledgments may be signed.  This proposal seems to eliminate that separation.  A CPA will not be able to say acknowledgments are required for this delivery channel and the message will indicate whether signing is required or any requested acknowledgement must be signed . thanx,     doug ----- Original Message ----- From: Arvola Chan To: ebxml-cppa@lists.oasis-open.org ; ebxml-msg@lists.oasis-open.org Sent: Monday, 19 November 2001 15:12 Subject: [ebxml-msg] Proposed CPP/A schema changes to deal with ebMS per message parameters At last week's ebxml-msg TC F2F meeting, it was agreed that the duplicateElimination attribute (under QualityOfServiceInfo) and the AckRequested element (under soap:Header)will in principle be treated as parameters that are adjustible on a message by message basis. Trading partners may specify in the CPA that they have agreed that these parameters are variable per message, or that these parameters are to be fixed at certain values, for a given delivery channel. Accordingly, I am proposing the following changes/additions to the CPP/A schema: - Rename the existing Characteristics element under DeliveryChannel as BusinessProcessCharacteristics. - Add a MessagingCharacteristics element under DeliveryChannel. - Add AckRequested and DuplicateElimination elements under the MessagingCharacteristics element, as follows:  <element name= MessagingCharacteristics >   <complexType>    <sequence>     <element ref= tns:AckRequested />     <element ref= tns:DuplicateElimination />    </sequence>   </complexType>  </element>  <element name= AckRequested >   <complexType>    <attribute name= perMessageCharacteristics type = tns:perMessageCharacteristics.type default= perMessage />    <attribute name= includeInMessageHeader type= boolean default = false />    <attribute name= actor type= tns:actor.type / default= toPartyMSH >    <attribute name= signed type= boolean default= false />   </complexType>  </element>  <element name= DuplicateElimination >   <complexType>    <attribute name= perMessageCharacteristics type = tns:perMessageCharacteristics.type default= perMessage />    <attribute name= value type= boolean default= false />   </complexType>  </element>  <simpleType name= perMessageCharacteristics.type >   <restriction base= NMTOKEN >    <enumeration value= fixed />    <enumeration value= perMessage />   </restriction>  </simpleType>  <simpleType name= actor.type >   <restriction base= NMTOKEN >    <enumeration value= nextMSH />    <enumeration value= toPartyMSH />   </restriction>  </simpleType> - If the perMessageCharacteristics attribute (under AckRequested and/or DuplicateElimination) is 'perMessage', then both parties have agreed that AckRequested and/or DuplicateElimination can be varied per message. Furthermore, the sender would by default make use of attributes under the AckRequested and DuplicateElimination elements within the CPA to populate the AckRequested element and duplicateElimination attribute in the ebXML message. For example, if the includeInMessageHeader attribute under AckRequested is true, then an AckRequested element will be constructed with its actor and signed attributes populated accordingly in the ebXML message. Of course, the sender is free to populate the AckRequested element in the ebXML message differently, based on other criteria (if the CPA stipulates that this is to be treated as perMessage). - Conversely, if the perMessageCharacteristics attribute is 'fixed', then both parties have agreed that AckRequested and/or DuplicateElimination) must always be set to the same values as indicated in the CPA under the AckRequested and DuplicateElimination elements for the corresponding DeliveryChannel. In this case, the sender is required to make use of attributes under the AckRequested and DuplicateElimination elements within the CPA to populate the AckRequested element and duplicateElimination attribute in the ebXML message. For example, if the value attribute under DuplicateElimination is true, then the duplicateElimination attribute under QualityOfServiceInfo will be set to true. Any deviation from the agreed upon fixed values would cause the receiver MSH to return an error. Please let me know if you see a problem in the suggested schema change, or if I have mis-represented the decision reached last Thursday. Thanks, -Arvola