- From: Doug Davis <dug@us.ibm.com>
- Date: Thu, 19 Apr 2001 07:15:41 -0400
- To: xml-dist-app@w3c.org
I recently joined the W3C XMLP WG so forgive me for the lateness
of my note but I have a few questions (and comments) about the
Requirements and Abstract Model documents.
Requirements:
- R703b Requirements for Encapsulation of Status
What other types of status (besides success/failure) is this
requirement talking about?
- R802
Need to define "processing" - does having to XML parse the message
mean "process"? There's been some discussion on the soapbuilders
mailing list about what SOAP processing nodes can and can not do
to certain parts of a SOAP envelope. Defining "process" in XMLP
might help clear some of those up.
- R400
So why not split it into 2 different specs? One for generic XML
messaging and one for data encoding. Some groups may not want to
implement the entire XMLP/SOAP spec.
- R604
HTTP->SMTP->HTTP
Need to make sure that there is a mechanism to reacquire the XMLP
equivalent of the SOAPAction HTTP header (if there is one) during
the SMTP->HTTP conversion. Related to this is the question of
what exactly the SOAPAction header is supposed to be used for?
Targeting or routing to the target service? Simply a filtering
mechanism for firewalls? Does it really serve any purpose at all
since its only for HTTP transports? Soapbuilders is talking about
this one right now and there's a split between how people are using
it - XMLP should try to clear this up.
- 6.1 Glossary
- Missing XMLP Processor
- XMLP block & XML handler
This needs to be an M-N relationship.
Why do the requirements require or talk about XMLP handlers?
This seems like an implementation detail. XMLP processor might
or might not have the notion of handlers I think the spec (and
the requirements list) should avoid defining impl. details.
Abstract Model:
- Overall
I'm a bit confused about the purpose of this document. I read
the abstract and it seems like it implies that this _isn't_ an
API definition doc, but then what is it? This doc seems like a
really good starting point for either the spec or an API doc
(or both), but if we're going to say that its not then who's
going to use this doc in the future?
Assuming I'm just missing the point 8-) and there is a need for
this doc, and its not defining an API then I'm really confused by
things like the XMLP_UnitData Operation section. When it talks
about things like the XMLP_UnitData.receive being invoked by the
receiving XMLP processor this seems to imply an implementation
detail (or API) rather than an abstract view of things.
- 2. XML Protocol Abstract Model Overview
- XMLP Handlers should be an implementation detail. XML blocks
should be targeted by using the XMLP equivalent of the SOAP
ActorURI and it should be up to each XML Processor to decide how
that Actor is interpreted. It could be the entire processor or
a particular module (ie. handler) in that processor or even a
group of handlers.
We need to be very careful about this one - defining handlers
could lead to some problems, lets say we have an XMLP message
like:
<env>
<header mustUnderstand=1>...DigSig stuff...</header>
<body>...</body>
</env>
and neither the header nor the body are targeted (ie. no actors).
This means that they're implicitly targeted for the final
destination of the message - is this the final XMLP processor or
the final XMLP handler? From the Abstract Model doc it seems like
its the final XMLP handler. But people may choose to implement
pluggable handler to process (and remove) certain headers. So
a DigSig handler sees a MustUnderstand header and processed it, but
since it wasn't targeted for him (that handler) the DigSig
handler should not remove the header. So when the final handler
gets the message it will fault because 1) it will see an MU header
that it doesn't understand and 2) because the message will have
already been DigSig processed. The only other choice would be
to put all of that logic in the final XML handler which makes it
much less pluggable/clean.
I would really prefer if we leave the notion of handlers up to the
specific implementation and make the XMLP version of Actors be
just a URI that is up to the XMLP processors to interpret as they
see fit.
- 3.1.1 Correlation of Sending and Receiving XML Protocol Applications
- Why is Correlation special? Why is this one field pulled out
into the APIs? Can't the same argument be made for any field (ie.
user-id)? Would it be cleaner to define "well-known" headers or
Actor URIs for this purpose - that way everything about the message
is kept inside of the SOAP Envelope.
- 3.2 Operation Parameters
- ImmediateDestination - is this like the SOAP Actor URI?
- 4.1 XML Protocol Message Routing and Targeting
- One XMLP block could be "processed" by more than one handler. This
M-N relationship needs to be allowed/discussed. This is true in
SOAP as well, except when blocks are targeted.
- 4.2 XML Protocol Modules and Message Processing
- Bullet 5 - "When a block is selected for processing...it is
removed" - this is a much stronger statement than in SOAP. This is
only true for targeted blocks not all blocks, do we really want to
say this? But then I guess it depends on how we define
"processing". A logging header may be processed by many different
XMLP processors but may never get removed until the final
destination - is this an error?
Need to define "referenced" vs "processed". Does that imply read-
only? What about Digital Signature/Encryption processors - they
need to be able to rewrite blocks that are not targeted them.
- Bullet 6 - the order of the XML Blocks defines the order of
processing? Very strong statement - do we really want to say this?
- Bullet 7 - Does the fault happen immediately or can we wait until
the end of the current XMLP handler/processor? Do we allow multiple
faults to be returned?
- 5.1.1 Introduction
- Figure 5.1 should show XMLP Handlers may generate output - ie. may
talk directly to the bindings. For example, in a multi-cast XMLP
processor a message may be sent out over several different binding,
each one done by a different XMLP handler - the XML processor
doesn't really get involved since it probably only knows about the
single incoming and single out-going message - but that's probably
an implementation choice.
- 5.3 Attachment of Arbitrary Content
- "The core XML protocol messaging services intrinsically handle
arbitrary attachments through the use of the Attachments parameter".
Unless I missed it we don't ever really talk about this parameter
any place else - its in Operation Parameters chart but not in the
APIs themselves.
thanks,
-Dug
Received on Thursday, 19 April 2001 07:15:54 UTC