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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-poc message

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


Subject: ebXML PoC comments: structured and updated comment list


All,

Per Chris Ferris's suggestion, I've categorized and numbered the PoC
comments, so that they can be more easily tracked. [[TRP-n]] denotes a
TRP-related comment; [[RR-n]] is reg/rep-related, [[SEC-n]]
security-related, and [[TP-n]] TPA (CPA)-related (some comments fall in more
than one category). We have PoC reps to the TRP (Dale Moberg) and RR teams
(Farrukh Najmi). We need volunteers to convey the SEC and TP comments to
those teams as well. For the PoC feedback effort to be successful, we need
to cover all of the affected teams. All you'll need to do is to make sure
that the issues are addressed in the respective working groups (and raise
hell if they aren't). Thanks for volunteering!

I've also added some new comments from Jacques Durand [[TRP-22]] and
[[TRP-23]], and some comments that Chris had on the original list. Other
than that, the comments are still in 'raw' form, as before.

-Philippe

Here goes:

The comments are labeled with the initials of the submitter:
[CF] Chris Ferris (Sun)
[DB] Dick Brooks (Group 8760)
[DM] Dale Moberg (Sterling Commerce)
[FN] Farrukh Najmi (Sun)
[HE/FK] Hatem ElSebaaly/Frank Kieviet (IPNet)
[JD] Jacques Durand (Savvion)
[KN] Kenji Nagahashi (Fujitsu)
[PDS] Philippe De Smedt (Viquity), as compiled with the PoC team at the
Tokyo meeting
[SH] Scott Hinkelman (IBM)


[[TRP-1]]
*	[PDS] the lack of precise specifications for multi-hop messaging
caused some confusion; in particular, acknowledgements cannot currently be
sent back to the original sender using the path (through the hub) that the
original message took, but rather, the acknowledgement is sent back directly
to the sender: the reason is that there is no place in the header to keep
that information; furthermore, there are various interpretations as to what
the acknowledgement should convey, i.e., received at the next hop, or
received at the final destination;
resolution: this has been brough to the attention of the TR&P working group,
which is currently taking on the specifications for multi-hop messaging;
comments:
*	[CF] I believe that the confusion lies in the fact that TR&P had
excluded multi-hop functionality from the RM spec incorporated into the
MS0.21d specification specifically because there was not agreement within
TR&P as to how best to approach the problem. The fact that the POC decided
to include a hub in the demo resulted in the confusion (IMHO). 
In hind sight, we (TR&P) should probably have made it clearer in the spec
that the multi-hop feature was excluded so that it could be further
investigated/revised from the original proposal.
I think that this also points to the issue of having a firm specification
underlying *anything* demoed by the POC. If it isn't in the spec, it
shouldn't be attempted. ("don't try this at home" comes to mind;-) It is my
understanding that Nick intends to take a harder stance on this for any
future POC demos.

[CF](new comment): 
I'm going to suggest that we (TR&P) log this and mark it as 'Accepted'. The
next revision of the spec will include explicit handling of multi-hop and
acks. David Burdett and I are currently drafting this section. Keep an eye
on the tr&p list for details...


[[TRP-2]]
*	[PDS] optionality is a problem: some of the fields in the header are
specified as optional (e.g. RefToMsgId (sp?)); optionality greatly decreases
the likelihood of out-of-the-box interoperability;
resolution: this has been brought to the attention of the TR&P woking group;
they will look carefully at all of the fields (current and future) that are
optional;
comments:
*	[CF] I thought that I understood that the issue was more of one
regarding clarifying the distinction between "optional to implement" and
"optional in cardinality or use within an instance". It is also my
understanding that the resolution was to be that we would scour the spec for
cases where there is an "optional" element in the DTD/Schema and reinforce
the language used to make it expressly clear as to the expected/required
handling of an "optional in cardinality within an instance" element in its
absense. In additon, if an element is "optional to implement" such as
SequenceNumber in the RoutingHeader then clarifying language will be added
to the specification as to the expected/required treatment as well.
We (TR&P) will endeavor to minimize the optionality within the
spec/protocol, but reserve the possibility that it be necessary to allow for
elements with cardinality requirements of 0 or more.
*	[SH] On the other email concerning optionality: True optionality can
reduce interoperability. But beware that if it is *truely* optional (not
just per DTD rules) and then made mandatory, garbage may have to be loaded
to satisfy.....


[[TRP-3]]
*	[PDS] default values can be a problem: 
resolution: the TR&P group suggested that we look at the latest spec (0.8),
as the number of attributes with optional values has been reduced;
comments:
*	[CF] I think that you meant default values, and yes, I believe that
we have eliminated all by the xmlns and Version attributes as having default
values.

[CF] (new comment):
I recommend that TR&P log this and mark it as Accepted and addressed in the
v0.8 version.


[[TRP-4]][[RR-0]]
*	[FN] Need sample TRP messages in appendix for queries

[CF] (new comment):
Comment: TRP has agreed to include (externally to the spec, but referenced
by it and published on the ebxml.org site) more concrete examples including
a multipart payload example. Or, is this intended to be for RegRep team???


[[RR-1]]
*	[FN] Need to replace use of GET on object retrieval with TRP
request/response

[[RR-2]]
*	[FN] Need Ad hoc query mechanism for automated clients

[[RR-3]]
*	[FN] UML diagrams truncated method names

[[RR-4]]
*	[FN] Inconsistent use of Asynch Vs. Async in UML diagrams

[[RR-5]]
*	[FN] Need a single DTD instead of many for RegRep

[[RR-6]]
*	[FN] Using '*' for objectType in getClassifiedObjects is not clear

[[TRP-5]]
*	[SH] Section 7.2.2 Content Length:
The explanation is good on the definition of the length, but we either
should drop the one-line example following it or actually put in an example
where a small length can be easily understood.

[CF] (new comment):
Content-Length header has been eliminated in all MIME bodyparts except in
the HTTP PDU:
http://lists.ebxml.org/archives/ebxml-transport/200012/msg00067.html



[[TRP-6]]
*	[SH] I generally think we need another pass through the header DTD.
I would suggest that we align less to a structure of human-readability and
more to a flat structure without artificial containment (remove TPAInfo,
MessageData tags for example and put the subtags directly under Header).
Fundamentally, I favor for purposes of infrastructure the XML camp thinking
of *data* not *documents* (documents here indicating considerations leaning
toward human readability).

[[TRP-7]]
*	[SH] Make Manifest optional. I'm not in favor of
required-empty-tags.

[[TRP-8]]
*	[DB] During the last POC there were a couple of packaging related
issues. Have all the packaging related issues been resolved?

[[TRP-9]]
*	[DM] There are still problems when using HTTP, servlets, and some
available APIs. In order to interoperate I had to add an additional header
for the MIME-entity in the HTTP PDU. Also, when processing, I had to ignore
the real MIME-entity header (which sometimes did not even have a
content-type of "multipart/related" !!) in order to find the right MIME body
parts. So the actual bits on the wire, as seen by a sniffer for example,
would not match the ebXML packaging.  
I hope that we can get this issue thoroughly resolved by the next POC. I do
not think it is a problem with the spec as long as we continue to follow the
IETF RFCs on the layout for HTTP.
But there definitely is a problem for implementations that impact
interoperability. It is not a new problem, however. Maybe the bindings
section needs a stronger warning on the problem if it is not there already.
One answer is to reexamine the servlet IO interface and work out a way that
the sharing of the IO between web server and servlet is less subject to
confusion. What happens is that the web server needs to read the MIME
entity's headers and so advances the stream past the headers. If the servlet
then just uses the stream reference, it will miss the real headers (which
are stored on request properties ). It would be nice to make a new
inputstream class that could take the stored header data and prepend it to
the other input stream, resulting in an input stream suitable to feed
directly to a MIME multipart parser.

[[TRP-10]]
*	[HE/FK] Content Length (After the boundary string)
We believe that this requirement need to be dropped. We should simply
utilize the boundary string. There is no need for two ways to determine the
length.

[CF] (new comment):
Content-Length header has been eliminated in all MIME bodyparts except in
the HTTP PDU:
http://lists.ebxml.org/archives/ebxml-transport/200012/msg00067.html



[[TRP-11]][[RR-7]]
*	[HE/FK] Need to specify what are the valid values for TPAID. We used
the following on the POC, but we were not clear what should be used.
<TPAId>
    /requester-DUNS-number/responder-DUNS-number/ItemCreate
</TPAId>

[CF] (new comment):
Comment: The TPAId (now CPAId) scheme is undefined. However, it is intended
that a CPA be registered in the RegRep. Hence, a URI scheme for identifying
a CPA registered with the RegRep is needed (RegRep team needs to specify).
It would also be useful if *access* to the CPA via this URI scheme were
possible (HTTP/S?)


[[TRP-12]]
*	[HE/FK] The SMTP Bindings need to take into account the base64
encoding. The example in the documentation is misleading and insufficient.
We also need to indicate the fact that some SMTP gateways enforce some
restrictions on the message size. In fact I believe that these kind of
restrictions should be reflected in the CPP.

[CF] (new comment):
Comment: It would help the TR&P team greatly if specific recommendations
could be offered as to how we should modify the specification to address
this. Given that the bindings are contributed, possibly you would volunteer
to draft the SMTP binding section/appendix??? (pretty please;-)


[[TRP-13]]
*	[HE/FK] Missing URLs for error reporting. 

[CF] (new comment):
Comment: this needs clarification.


[[TRP-14]]
*	[HE/FK] Routing Header should be optional. 

[[TRP-15]]
*	[HE/FK] Clarification on PayLoad in Acks and also when to use
MessageType Acknowledgement vs Normal.

[[TRP-16]][[SEC-1]]
*	[HE/FK] Lack of security. We just wanted to re-emphasize this so
that it will be addressed soon.

[[TRP-17]][[SEC-2]]
*	[HE/FK] HTTPS should be supported. 

[CF] (new comment):
Comment:Who ever indicated that it was not? 


[[TRP-18]]
*	[HE/FK] HTTP responses are not defined. 
Body of 200 OK? What in case of errors? What kind of errors are allowed,
etc. 

[[TP-1]]
*	[KN] [re: TP] Values of ID type attributes should only be used for
referencing XML element within a CPP/A. Identifier (in the context of ebXML)
for ServiceInterface, etc. could be an URI, which cannot be held in ID type
attribute. These identifiers should be written in the separate XML elements.

[[TRP-19]][[TP-2]]
*	[KN] [re: TP,TRP] Semantics of each element/attribute should be
specified strictly. For example, CPA DTD has Partyname element and PartyName
attribute. Which is for system use and which is just for human-readable
description? Which identifier is used for ServiceInterface, Action in the
TRP header? etc.

[[TRP-20]][[TP-3]]
*	[KN] [re: TP,TRP] CPA should have information for sending transport
ack messages. POC implementation used a simple scheme that maps sender DUNS
to URI. Currently this mapping cannot be obtained from CPA.

[CF] (new comment):
Comment:Of course it can! Note that this mapping is explicit and MAY vary
by message within a given choreography.


[[TRP-21]][[TP-4]]
*	[KN] [re: TP,TRP] Bootstrapping problem in CPA proposal have to be
resolved. POC assumed the CPA proposal/acceptance is a well-known service
and exchanged message between implicitly agreed interfaces. In reality, Its
transport information have to be either predescribed by ebXML specification
or found in the to-be-partner's CPP obtained from registry. Later case
requires the means (and its spec) with which CPA accepter can find which CPP
to use, ex. attatching CPP (or its URL) with the proposed CPA.

[[TP-5]][[RR-7]]
*	[FN] I assume the custom CPA proposal/acceptance protocol was just
to fill a hole in the POC flow for Tokyo. IMHO, a general purpose Event
Notification mechanism that is based on a general puprose publish/subscribe
mechanism is a better alternative. Note that I made a proposal for such a
service which articulates the CPA proposal/acceptance scenario as an
example. The proposal can be found at:
http://lists.ebxml.org/archives/ebxml-regrep/200010/msg00033.html
See section 1.3 for CPA proposal/acceptance protocol related example.

NEW:

[[TRP-22]]
*	[JD] RefToMessageId: (V 0.21d, 7.9.3.3)
"For Normal and Error msgs, RefToMessageId is an optional reference to an
earlier ebXML message." We had lots of late minute problems because of
divergent interpretations of this statement. A "seller" decided to rely on
it to sequence messages in a conversation, while the "buyer" was ignoring
it.
We believe it is better to remove any "optional" mention here. This is a
transport-level attribute that is fully justified for Ack and Error types.
In the same way as MessageId is a MSH-level concept (generated by MSH), so
should be the RefToMessageId. Like for MessageId, the spec should not even
suggest any use of it at application level. (even if an implementation
allows for it)
If there is a need for an app to relate messages to each other, a
higher-level ID, the ConversationId, should be used. Any more detailed,
app-specific message linking could as well rely on some payload attributem
and stay out of the Header scope.

[[TRP-23]]
*	[JD] Modifications to Message Spec V0.8, 2.4.4: Delivery
Notification Message (DNM).
It is not clear what the DNM purpose is. Is that for applications? for MSH?
If it is to be processed (interpreted) by MSH: The Delivery Notification
Message seems an overkill to implement RM over multi-hops, given the
intermediate Acks. This may hurt performance, and generate
confusion/overhead. Normally, if the intermediate Acks are as "reliable" as
in point-to-point RM, this should be enough to guarantee end-to-end RM,
provided each intermediate Hub is RM-enabled. And in that case, a failure
along the way is really relevant to a contract between the Hub and the
Receiver(the sender has fulfilled its contract) Now, if we really favor an
end-to-end RM check (i.e. between the From_Party and the To_Party)
(personally I favor it) then it should be done in a similar way, (that is,
same ack mechanism) regardless whether the messages goes directly (a) from
sender to receiver, or (b) through multi hops. But in this current proposed
spec, in (a) the end-to-end delivery notification is represented by an Ack
type, while in (b), it is a Normal type (the DNM). The bottom line here is
we must decide whether RM is between <From_Party and the To_Party> (in that
case, we have to question the meaning of intermediate Acks) or between
<nodeX:From_Party and nodeY:To_Party> (in which case an end-to-end ack as
DNM seems superfluous).


_______________________________
Philippe De Smedt
Architect
Viquity Corporation (www.viquity.com)
1161 N. Fair Oaks Avenue
Sunnyvale, CA 94089-2102
(408) 548-9722
(408) 747-5586 (fax)
pdesmedt@viquity.com



[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