- From: Mark Jones <jones@research.att.com>
- Date: Thu, 14 Jun 2001 16:21:51 -0400 (EDT)
- To: xml-dist-app@w3.org
There has been some discussion lately of issues regarding the
execution model, trailers, etc. I would like to point out another
area of the model which may need some more thinking.
Every once in a while we use compression and encryption as examples of
things we might want an intermediary to do. As I have tried to
formulate these use cases, the model looks problematic to me. Let's
just try something really simple, like having intermediaries compress
and then decompress another part of the message. The most likely part
we might want to compress wwuld be some element inside the body block.
Let's also assume that the compression is kept in an XML-friendly
representation. For example,
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<c:CompressElementInBody
xmlns:c="some-compression-ns-uri"
SOAP-ENV:actor="some-uri-matching-an-actor-that-can-do-compression"
href="#some-id"/>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<x:DoStuff xmlns:x="some-ns-uri">
<x:BigData id="some-id">
<!-- prodigious amounts of highly compressible data -->
...
</x:BigData>
</x:DoStuff>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
When processed by an appropriate "compression" actor, you might get,
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<c:DeCompressElementInBody
xmlns:c="some-compression-ns-uri"
SOAP-ENV:actor="some-uri-matching-an-actor-that-can-do-decompression/"
href="#some-id"/>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<x:DoStuff xmlns:x="some-ns-uri">
<x:BigData id="some-id">
<!-- the compressed data -->
...
</x:BigData>
</x:DoStuff>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
When processed again by an appropriate "decompression" actor, you might get:
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<x:DoStuff xmlns:x="some-ns-uri">
<x:BigData id="some-id">
<!-- prodigious amounts of highly compressible data -->
...
</x:BigData>
</x:DoStuff>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Does SOAP allow this sort of behavior?
Can a header rewrite other blocks (header or body entries) that are
targeted at other actors?
The SOAP processing algorithm specifies that a header entry gets
removed as it is processed and that it can insert other header
entries, but can it remove, modify or insert other parts of the
message?
We have been suggesting that trailers can be added, but perhaps not
deleted. Can a header modify or delete other headers that are not
targeted at the same node that processes it?
Can the body be modified by an intermediary?
If not, how would the compression example be managed?
--mark
Mark A. Jones
AT&T Labs - Research
Shannon Laboratory
Room A201
180 Park Ave.
Florham Park, NJ 07932-0971
email: jones@research.att.com
phone: (973) 360-8326
fax: (973) 360-8970
Received on Thursday, 14 June 2001 16:21:52 UTC