Re: customized encoding and SOAP interoperability

Robin Berjon <[email protected]> Mon, 18 Nov 2002 14:31:19 +0100
Newsgroups gmane.comp.windows.devel.soap.general
Organization Expway
Message-ID <[email protected]>
Neela Lakshminarayan wrote:
>>A "pure" SOAP way to do this, consistent with evolving practice
>>for security and encryption ... don't compress the entire SOAP
>>message, just your body content, and do it such that you still have
>>a valid XML document. Create a SOAP header block that specifies
>>that the payload is compressed, set to MustUnderstand true.
>>
>>This approach at least fits within the interoperability framework
>>and extension mechanism defined by SOAP as opposed to the hideous
>>hack you are inflicting on the SOAP world now.
>
> Your suggestion sounds good...and it could co-exist with my "hideous hack".

It is indeed an interesting suggestion, however it doesn't solve as much
of the performance problems related to parsing time as one would like in
a number of situations.

With large requests, a non-negligible amount of time is spent in the XML
parser, which isn't very efficient. That's why gzip compression rarely
helps because you need to gain more in transmission time than you loose
by adding compression-decompression steps.

I toyed with the option you describe and have found it rarely gains much
as well (unfortunately, as it would have been great for my project if I
could have used it).

There appeared to be interest from the WSDL people in adding flags to
WSDL documents to specify protocol binding options. Those could include
compression methods. If that were the case, it would be easy to be
interoperably simply by agreeing on compression methods at the WSDL level.

>>By the way, I have yet to see any situation where there is any
>>throughput gain in compressing XML. I suggest looking at the processes
>>you've created which are probably inefficiently handling your large
>>payloads.
>
> From the preliminary studies we've done, it seems that in some situations
> (typical to us) compression does pay off.
> We would need to change a lot of processes to ignore compression and get the
> same benefit.

The studies done here show the same result, but with gzip compression
being worthwhile only on large messages. The scheme we've been using
(and demonstrated at the recent XML Technoforum on Web Services) relies
on the transmission of binary infosets as described in the SOAP spec. We
get compression ratios between 2 and 200, with an average between 25 and
35 (depending on how structured the message is, which depends on the
service). Given that the decoding time is circa 10 times faster than an
XML parser working on the XML serialisation of the same infoset, the
overall request-response time shows very noticeable pay off.

I'd be interested in knowing if other people on this list have
experimented with binary infoset approaches, and what they have found.

--
Robin Berjon <[email protected]>
Research Engineer, Expway
7FC0 6F5F D864 EFB8 08CE  8E74 58E6 D5DB 4889 2488

You can read messages from the SOAP archive, unsubscribe from SOAP, or subscribe to other
DevelopMentor lists at http://discuss.develop.com.