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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-transport message

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


Subject: Re: Connected again: Here's the rest of my comments on 0.21d



Regarding Doug's comment on persistent storage, sect. 7.11, lines 754 and
771:

For the sending message service handler, it should be possible to define
the point at which a message can be deleted from persistent storage.  For
the receiving side, it is much less clear when the message can be removed
from persistent storage since the received message must be able to be
guaranteed to reach the application and be processed.  Defining the
endpoint probably oversteps the boundaries of the messsage service handler
and potentially gets into architecting the implementation.  Defining the
endpoint would make assumptions on how the implementation guarantees that
the message actually reaches the application.  I believe that we discussed
this issue when the original reliable messaging proposal was discussed and
decide that it would be best to simply leave the message's life in
persistent storage open-ended.

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
*************************************************************************************



Doug Bunting <Doug@ariba.com> on 11/07/2000 11:44:21 AM

To:   "Christopher Ferris (E-mail)" <chris.ferris@east.sun.com>, "Martha
      Warfelt (E-mail)" <maw2@daimlerchrysler.com>, "'ian.c.jones@bt.com'"
      <ian.c.jones@bt.com>
cc:   "'ebXML Transport'" <ebxml-transport@lists.ebxml.org>
Subject:  Connected again: Here's the rest of my comments on 0.21d




Deep breath, here we go with the rest of my  comments (including DTD and
schema recommendations):
Sections 7.9.1,  7.9.2.1 and 7.9.2.2, lines 615-617 and 633-638:
 These values  (PartyId, TPAId and ConversationId) appear to be strings
meaningful in a  particular context.  Without the optional context
attribute, they must take  the form of a uriReference.  When a context
attribute is provided, they may  take any value valid in that context
(whether or not that's a valid  uriReference).  Add words describing these
identifiers as strings.   Add words describing the semantics of the context
attribute (just improve the  wording for lines 615-617).

Section 7.9.3.3, lines  669-671:
 Error messages may be sent in response to Normal  messages in which no
MessageId could be found.  There is an earlier  message, but its MessageId
is unknown.  This case should be described in  this paragraph.  An
additional sentence such as "For Error messages, the  RefToMessageId
reference is mandatory and its value MUST be the MessageId of the  message
in error (as defined in section 7.13.1) unless that MessageId cannot be
determined."  Hopefully, we're not trying to support Error messages
containing errors found in multiple original (Normal) messages.

Section 7.10, lines  713-715:
 SenderURI, ReceiverURI and ErrorURI are not  defined.  Are they
identifiers or service locations?  From later  discussion in this document,
it appears that ErrorURI is a service location at  which error responses
may be received.  The other two aren't discussed  much.  However, I'd
recommend they be defined similarly to the PartyId  elements in the Header
(ie. the parties participating in the current leg of the  journey).  That
requires adding a context attribute to SenderURI and  ReceiverURI and
(potentially) renaming the elements.  Alternatively,  SenderURI and
ReceiverURI may somehow identify the service location used in this
particular leg (this is probably redundant information for ReceiverURI with
the  transport destination and SenderURI may not exist -- not all senders
are  reachable in return).

Section 7.10, lines  719-730:
 SequenceNumber as defined adds little or no value  over the MessageID
element required in MessageData.  Recommend removing  this section and the
corresponding references to SequenceNumber in later  examples, the DTD and
the schema.

Section 7.10, line  727:
 If this section remains, must define the exact content of  the
SequenceNumber element when the numeric value is greater than 999.  Is  the
next value "1000" or "1,000"?  Is the text for the maximum value
"999999999" or "999,999,999" or are both allowed (and equivalent)?  Side
note: Numeric formats vary by locale and a comma is not always the
thousands  separator.  Further, "Punctuation as in US English." (to quote
the  "Specific Datatypes" section of the
http://www.w3.org/TR/1998/NOTE-XML-data-0105/  document) doesn't answer my
questions above.

Section 7.10, line  730:
 If this section remains, "long time" should be  defined.  At least, refer
to a TPA which makes this concrete for a specific  trading relationship or
mention later text on this subject (if  any).

Section 7.11, lines 754 and 771 (at  least):
 "Persistent storage" actually lasts how long?  Is  the original message
deleted by the Messaging Service immediately after  receiving an
acknowledgement?  In the case of an error which is reported to  the sending
application (party), does that report also result in deletion of the
original message from the persistent storage?

Section 7.11, lines  784-787:
 What information does the Receiver store persistently  in this step?
Recommend storing the MessageID of the original message and  the entire
response document.  To check for "exactly the same as the  original
message" as described on line 828, may be necessary to store entire
original message or its checksum as well.

Section 7.11, line 798  (editorial):
 Add word "Service" to "Sender's Messaging",  completing the sentence.

Section 7.12, line  817:
 The Timeout and RetryInterval parameters have different  semantics as
described later in this document.  However, that difference is  not made
clear in this table.  Recommend RetryInterval definition be  changed to
"Wait time between receiving notification of a transport error and  sending
a retry.
* Integer value specifying number of seconds.
* After any  error response is received, the Sender SHALL wait for the
specified time before  sending a retry document."  If the intended
semantics of RetryInterval  require that documents not be send more often
than the specified interval  (requiring the Sender to wait for a timeout,
declaring that status and then  beginning a wait for RetryInterval), that
could be described by changing my  words above to include a bullet such as
"* Notification of a transport error  includes detecting an expired timeout
while awaiting a response."

Section 7.13.4, lines  892-907:
 The wording of this section explicitly prevents  leaving out the ErrorURI
and relying on the immediate response available in some  transports.  For
example, sending a message via HTTP may not require the  ErrorURI because
the receiver always completes MS handling in "real time" and  returns an
Error document (if necessary) in the immediate HTTP response.   Recommend
this case be supported by including words to this effect rather than
leaving it "outside the scope of this document".

Section 7.13.5.3.4, lines  948-951:
 Either the Description element should be allowed to  repeat (providing
multiple descriptions of the error in various locales) or a  Normal message
should specify the preferred locale for Error messages.   Without this, the
Description content is not going to be useful with multiple,
interoperating systems.

Section 7.13.5.5.2, lines  1004-1006:
 How does this RefToMessageId relate to the one in  MessageData?  Since we
aren't attempting to handle an Error response  covering multiple messages
in error (right?), change the last sentence to be  "This must be present
[and have the same value as the RefToMessageId in the  MessageData element
of the Header] if a MessageId can be identified in the  message in error."

Section 7.13.5.7, lines  1024-1043:
 Either the DTDs and schemas are normative or  not.  It doesn't make sense
to handle the DTD for ebXMLError differently  from the DTD and schema for
ebXMLHeader.  Move this section to a (new)  appendix A.3.  By the way,
appendix A should be normative though it isn't  necessary for it to
interrupt the regular flow of the text.

Section 7.13.5.7, line  1027:
 This is likely a duplicate.  Just wanted to make  sure we noted that
"<schema ...>" either shouldn't appear in the DTD or  must be a processing
instruction ("<?schema ...?>").

Section 7.13.5.7, line  1028:
 According to the text of section 7.13.5.5, we've got a  meaning for a
minimum of one ErrorLocation element.  Either change  "ErrorLocation*" to
"ErrorLocation+" (requiring one or more such element) or  define the
meaning of zero ErrorLocation elements in section 7.13.5.5.  For  the
second resolution, add "If no ErrorLocation element is provided, no
information about the specific location of the error is available.  When a
MessageId can be determined from the message in error, the ebXMLError must
contain one or more ErrorLocation elements." to the end of section
7.13.5.5.

Section 7.13.5.7, line  1029:
 According to the text of section 7.13.5.3.5, the  SoftwareDetails element
is optional.  Change "SoftwareDetails" to  "SoftwareDetails?".

Section 7.13.5.8, lines  1049-1052:
 Are the two "narrative" types of information  contained in the Description
element or the ErrorCode?  Replace "that  immediately follows the error
code" with "beginning the Description element" on  line 1049.  And, replace
"that follow the narrative" with "that follow the  narrative (completing
the Description)" on line 1051.

Section 8.1, lines  1118-1120:
 The Internet Draft on XML Media Types is now an  RFC.  RFC 2376 (XML Media
Types) has been available since July 1998.   That document must be
normative for this specification.  Update the  reference in these lines.

Section A.1, lines  1238-1287:
 The DTD uses Extensibility mechanisms for including  datatype information.
Either here or in section 8.2, add a non-normative  reference to some
description of these mechanisms.

Section A.1, line  1239:
 This is likely a duplicate.  Just wanted to make  sure we noted that
"<schema ...>" either shouldn't appear in the DTD or  must be a processing
instruction ("<?schema ...?>").

Section A.1, lines  1242-1243:
 To validate any of the given examples, need  definition of the xmlns
pseudo-attribute (it's an attribute as far as a parser  with no knowledge
of namespaces is concerned).  Add 'xmlns CDATA #FIXED "
http://www.ebxml.org/namespaces/messageHeader"'to the  ATTLIST.  Note:
There's no way to require an attribute with this value in  every instance
document in a DTD.  A #FIXED attribute is (unfortunately)  optional in a
particular document.

Section A.1, line  1241:
 The RoutingHeader element should be optionally allowed  in the ebXMLHeader
element.  Add ", RoutingHeader?" after Header in this  content model.

Section A.1, line  1243:
 This definition of the MessageType attribute prevents  any values except
"Normal" and makes it optional in a document.  In  addition, the text of
section 7.7.1.3 says this attribute is an  enumeration.  Change this line
to read "MessageType (Normal |  Acknowledgment | Error) #REQUIRED".

Section A.1, line  1244:
 Requiring one or more DocumentReference elements in a  Manifest disallows
a message of type "Acknowledgment".  We need to support  an empty Manifest.
In addition, the DTD and schema disagree on this point  (the schema appears
to be correct).  Change the "+" at the end of this line  in the DTD to "*".

Section A.1, line  1245:
 This line is invalid in a DTD.  Remove the space in  "Document
Description".

Section A.1, lines 1251, 1260, 1263, 1273,  1279, 1281 and 1283:
 Depending upon the resolution of my  previous comments on the PartyId,
TPAId, ConversationId, SenderURI and  ReceiverId, their datatypes should
change to 'string' and a few might be renamed  and / or they could gain a
context attribute.  Regardless of those changes,  the "uri" datatype
doesn't exist in the W3C Schema proposal.  The closest  type is
"uriReference" and we should either use W3C Schema datatypes  consistently
or describe their equivalents in the DTD (for the elements which  continue
to have this type, which might be only DocumentId, PartyId and  Href).

Section A.1, lines 1259, 1262 and  1272:
 The context attribute has no defined default value  according to the text
of the one element (PartyId) which mentions it.  Use  of a default such as
"Undefined" for the TPAId, ConversationId and PartyId  element's context
attribute adds no value over leaving the attribute out  completely.  It
also changes the "experience" of a receiving application  depending upon
the configuration of the underlying XML parser.  Change  'Undefined' to
#IMPLIED on each of these lines.

Section A.1, line  1264:
 The RefToMessageId element is optional in this context  (as it is in
ErrorLocation) according to the text of section 7.9.3.3.  Add  a "?" after
this element in the MessageData element.

Section A.1, lines 1264 and  1268:
 The "uuid" datatype doesn't exist in the W3C Schema  proposal.  Further,
this datatype in the XML Data proposal (which  Extensibility referenced as
normative) requires a particular format for the  unique identifier (128
bits expressed in hexadecimal format).  As long as  these values are
globally unique, we should not restrict implementations that  much.  For
example, a value created according to the rules for a MIME  content
identifier would be fine.  Change the datatype of these values to  be
"string".

Section A.1, line  1275:
 This definition of the DeliverySemantics attribute in
ReliableMessagingInfo prevents any values except "BestEffort" and makes it
optional in a document.  Change this line to read "... #REQUIRED" instead
of '... #FIXED "BestEffort"'.

Section A.1, line  1277:
 The SequenceNumber element is optional according to  section 7.10.  Add a
"?" after this element in the content  model.

Section A.2, lines  1294-1295:
 The RoutingHeader element should be optionally  allowed in the ebXMLHeader
element.  Add '<element  ref="RoutingHeader">' after the Header line in
this sequence.  Also,  define the content of that element (to match the
definition in the DTD) later in  the schema.

Section A.2, line  1298:
 This definition of the MessageType attribute prevents  any values except
"Normal" and makes it optional in a document.  In  addition, the text of
section 7.7.1.3 says this attribute is an  enumeration.  Change this line
to read
    <attribute  name="MessageType"  use="required">
        <simpleType  base="ENUMERATION">
             <enumeration  value="Normal">
             <enumeration  value="Acknowledgment">
             <enumeration value="Error">
         </simpleType>
     </attribute>

Section A.2, line  1310:
 This sequence should not have minOccurs or maxOccurs  constraints since it
is a simple sequence of the contained elements.  The  element containing
DocumentReference (Manifest) already allows it to repeat as  described in
the text.  Remove these constraints.

Section A.2, line  1311:
 According to the text in section 7.8.1.1 and the DTD,  the
DocumentDescription is optional.  Add a 'minOccurs="0"' constraint to  this
element reference.

Section A.2, line  1311:
 In addition to the above point, the DocumentDescription  element is not
defined in the schema.  After line 1316,  add
    <element  name="DocumentDescription">
         <complexType>
             <simpleContent>
                 <extension  base="string">
                     <attribute name="xml:lang" type="language"  />
                 </extension
             </simpleContent>
         </complexType>
    </element>
This might not be  correct in the W3C schema language: It's my best guess.

Section A.2, lines 1336, 1341 and  1375:
 base is not a valid attribute for the complexType  element and textOnly is
not a valid value for the content attribute.  This  probably requires
something similar to the previous suggestion.

Section A.2, lines 1336, 1341 and  1375:
 Depending upon the resolution of my previous comments on  the PartyId,
TPAId, ConversationId, SenderURI and ReceiverId, their datatypes  should
change to 'string' and a few might be renamed and / or they could gain a
context attribute.  Regardless of those changes, the "uri" datatype doesn't
exist in the W3C Schema proposal.  The closest type is "uriReference" (for
the elements which continue to have this type, which might be only
DocumentId,  PartyId and Href).

Section A.2, lines 1337, 1342 and  1376:
 The context attribute has no defined default value  according to the text
of the one element PartyId which mentions it.  Use of  a default such as
"Undefined" for the TPAId, ConversationId and PartyId  element's context
attribute adds no value over leaving the attribute out  completely.  It
also changes the "experience" of a receiving application  depending upon
the configuration of the underlying XML parser.  Remove  'use="default"
value="Undefined"' on each of these lines.

Section A.2, line  1354:
 The RefToMessageId element is optional in this context  (as it is in
ErrorLocation) according to the text of section 7.9.3.3.  Add  'minOccurs
="0"' to this element in the MessageData's content.

Section A.2, lines 1354 and  1358:
 The "uuid" datatype doesn't exist in the W3C Schema  proposal.  Further,
this datatype in the XML Data proposal (which  Extensibility referenced as
normative) requires a particular format for the  unique identifier (128
bits expressed in hexadecimal format).  As long as  these values are
globally unique, we should not restrict implementations that  much.  For
example, a value created according to the rules for a MIME  content
identifier would be fine.  Change the datatype of these values to  be
"string".

Section A.2, lines  1381:
 This definition of the DeliverySemantics attribute in
ReliableMessagingInfo prevents any values except "Unspecified" (which isn't
valid in according to the enumeration) and makes it optional in a
document.  Change line to read 'use="required"' instead of 'use="fixed"
value="Unspecified"'.

Section B.1, line  1408:
 version must have value '1.0' to be valid.

Section B.1, line  1417:
 The text of this specification does not make it clear  how the DTD should
be referenced in an instance document.  A relative URI  implies that all
parties have already cached the DTD.  Recommend a fully  qualified location
on the Internet (using the http scheme) for these  files.

Section B.1, line  1445:
 The RefToMessageId element should be optional.   Leave it out of the
example rather than using an undefined "placeholder" value  such as 'Not
Applicable'.

Section B.1, lines 1450 and  1456:
 The specification does not define a RouteInfo  element.  Remove this layer
from the example.

Section B.1, lines  1451-1452:
 The SenderURI and ReceiverURI values are not valid  URI references.  Add
https:// to the content of both elements.

Section B.2, line  1539:
 This example should be consistent.  Use the actual  content identifier of
the payload (ebxmlpayload-9000).

Section B.2, line  1565:
 The RefToMessageId element should be optional.   Leave it out of the
example rather than using an undefined "placeholder" value  such as 'Not
Applicable'.

Section B.2, line 1567:
 A  value of Unspecified is not legal in the enumeration for the
DeliverSemantics  attribute.  Use either BestEffort or OnceAndOnlyOnce.

Section B.2, lines 1573 and  1588:
 Provide some reason to believe there may be 7515 octets  in this part or
reduce the Content-length.

Section D, lines  1664-1667:
 Why would browser vendors directly implement any  semantics defined by
multipart/related (even) or ebXML?  The  application-level requirements of
ebXML don't lend themselves to a display  interface.  Business code
downloaded to operate in the context in a browser  (Active X or Java,
whatever) may implement all of ebXML without additional work  done by the
browser itself.  Remove this paragraph.

Section E.1, lines  1672-1680:
 This binding to HTTP explicitly prevents  optimizations using the
immediate HTTP responds to carry an acknowledgement,  error or business
response.  It also prevents ebXML implementation using an  HTTP client
without an associated HTTP server available directly from the  Internet
(not hidden behind a firewall).  Delete this section and revisit  all of
the contained materials while implementing later phases of this  project.






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

Search: Match: Sort by:
Words: | Help


Powered by eList eXpress LLC