You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-dev@xml.apache.org by Brandon Rife <br...@dejazzd.com> on 2001/04/09 16:10:12 UTC

Content compression

Mornin',

The attached zip contains 4 java source files that implement server-side
content deflation and client-side content inflation.  This addition to
Apache-Soap was designed specifically for clients that retrieve large
amounts of data from the server and thus pay the price for xml's verbosity.
You all are free to use and modify these sources as you see fit.  My only
request is that if you improve upon the implementation then you'll let me
know, so I can do the same. :-)

The zip contains the following classes: DeflatingConstants,
DeflatingProvider, InflatingConnection, and a modified TransportMessage.
Implementing compression on the server is as simple as deploying services on
the DeflatingProvider.   The client side is a little more complicated but
still fairly easy.  Before invoking services of the DeflatingProvider create
an instance of the InflatingConnection and install this instance on the Call
object using the Call object's setSOAPTranport(...) method.
InflatingConnection allows you to control when and how compression occurs on
the server per individual calls.

Despite my best efforts I was not able to implement inflation on the client
without touching the existing code,  although I did contain the changes to a
single class, TransportMessage, and the changes consist only of additional
code, the existing code was not touched.  Looking at the source, you'll see
that I've delimited my additions with comments.

One note, you'll need one of the later nightly builds or the CVS source if
you want experiment with the compression.

Thanks,
Brandon Rife

 

RE: Content compression

Posted by Brandon Rife <br...@dejazzd.com>.
Hmm,
Let me try again...Let me know if and how I can rework the client...



 -----Original Message-----
From: 	Wouter Cloetens [mailto:wouter@mind.be]
Sent:	Monday, April 09, 2001 7:32 PM
To:	soap-dev@xml.apache.org
Subject:	Re: Content compression

Cool! Very interesting. It's also nice that you were able to contain it
within TransportMessage. I designed it to allow for this type of
application.

I fail to find an attached zip file though. There's an "application/ms-tnef"
attachment with the name "winmail.dat" in your note, but that's probably
just caused by a severely brain-damaged mail client.

I'd be glad to review your code and check it in if it's ok, if you'll post
it...

BTW, you can do it without touching the code on the client side, I'm sure.
A hack around the kludge I implemented in some of the samples to emit
requests with a modified Content-Type header, possibly combined with using
Message instead of Call, should do the trick. It's much nicer to have
base support in soap.jar though.

bfn, Wouter

On Mon, Apr 09, 2001 at 10:10:12AM -0400, Brandon Rife wrote:
> Mornin',
>
> The attached zip contains 4 java source files that implement server-side
> content deflation and client-side content inflation.  This addition to
> Apache-Soap was designed specifically for clients that retrieve large
> amounts of data from the server and thus pay the price for xml's
verbosity.
> You all are free to use and modify these sources as you see fit.  My only
> request is that if you improve upon the implementation then you'll let me
> know, so I can do the same. :-)
>
> The zip contains the following classes: DeflatingConstants,
> DeflatingProvider, InflatingConnection, and a modified TransportMessage.
> Implementing compression on the server is as simple as deploying services
on
> the DeflatingProvider.   The client side is a little more complicated but
> still fairly easy.  Before invoking services of the DeflatingProvider
create
> an instance of the InflatingConnection and install this instance on the
Call
> object using the Call object's setSOAPTranport(...) method.
> InflatingConnection allows you to control when and how compression occurs
on
> the server per individual calls.
>
> Despite my best efforts I was not able to implement inflation on the
client
> without touching the existing code,  although I did contain the changes to
a
> single class, TransportMessage, and the changes consist only of additional
> code, the existing code was not touched.  Looking at the source, you'll
see
> that I've delimited my additions with comments.
>
> One note, you'll need one of the later nightly builds or the CVS source if
> you want experiment with the compression.
>
> Thanks,
> Brandon Rife
>
>


---end quoted text---

Re: Content compression

Posted by Wouter Cloetens <wo...@mind.be>.
Cool! Very interesting. It's also nice that you were able to contain it
within TransportMessage. I designed it to allow for this type of application.

I fail to find an attached zip file though. There's an "application/ms-tnef"
attachment with the name "winmail.dat" in your note, but that's probably
just caused by a severely brain-damaged mail client.

I'd be glad to review your code and check it in if it's ok, if you'll post
it...

BTW, you can do it without touching the code on the client side, I'm sure.
A hack around the kludge I implemented in some of the samples to emit
requests with a modified Content-Type header, possibly combined with using
Message instead of Call, should do the trick. It's much nicer to have
base support in soap.jar though.

bfn, Wouter

On Mon, Apr 09, 2001 at 10:10:12AM -0400, Brandon Rife wrote:
> Mornin',
> 
> The attached zip contains 4 java source files that implement server-side
> content deflation and client-side content inflation.  This addition to
> Apache-Soap was designed specifically for clients that retrieve large
> amounts of data from the server and thus pay the price for xml's verbosity.
> You all are free to use and modify these sources as you see fit.  My only
> request is that if you improve upon the implementation then you'll let me
> know, so I can do the same. :-)
> 
> The zip contains the following classes: DeflatingConstants,
> DeflatingProvider, InflatingConnection, and a modified TransportMessage.
> Implementing compression on the server is as simple as deploying services on
> the DeflatingProvider.   The client side is a little more complicated but
> still fairly easy.  Before invoking services of the DeflatingProvider create
> an instance of the InflatingConnection and install this instance on the Call
> object using the Call object's setSOAPTranport(...) method.
> InflatingConnection allows you to control when and how compression occurs on
> the server per individual calls.
> 
> Despite my best efforts I was not able to implement inflation on the client
> without touching the existing code,  although I did contain the changes to a
> single class, TransportMessage, and the changes consist only of additional
> code, the existing code was not touched.  Looking at the source, you'll see
> that I've delimited my additions with comments.
> 
> One note, you'll need one of the later nightly builds or the CVS source if
> you want experiment with the compression.
> 
> Thanks,
> Brandon Rife
> 
>  


---end quoted text---