- 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