axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mitch Gitman <>
Subject Re: AXIS 1.1 Performance comparisons between Document-Style vs RPC-Style
Date Mon, 30 Jun 2003 21:13:04 GMT
I can't answer any empirical performance questions. Here's what I can say.

When you talk about document-style vs. RPC-style, I'm assuming you're talking
about the following, as specified in the WSDL document:
* document binding style combined with literal use vs. 
* RPC binding style combined with encoded use. 

If you're just talking document style vs. RPC style and the use is the same,
theoretically it doesn't seem like there should be much performance
difference. The Web service runtime engine is unwrapping much the same
content, just using different techniques: 
* explicitly specified root element then element children (document) vs.
* implied operation root element then parameter children (RPC).

I would imagine the performance difference comes with the encoding choice.
With SOAP 1.1 Section 5 encoding, the Web service runtime is required to take
any multiple occurrences of complex types and narrow them down to a single
occurrence, replacing the other occurrences with references to the one. If a
complex type appears just once, the Web service runtime has the option to
represent it the same way as literal. However, this requires doing an extra
pre-parse through the document (which consumes a little extra time) and can be
bypassed in favor of using a reference even for the single occurrence. Unless
Axis changed its behavior recently, it doesn't make this extra run and always
produces the reference.

So for document/literal, you would have:
<tns:GetThingResponse xmlns:tns="urn:outline.demo">

For RPC/encoded (with no alternative for a single reference), you would have:
   <getThingReturn href="#id0"/>
<multiRef id="id0" soapenc:root="0"
   <letter xsi:type="xsd:string">A</letter>
   <what xsi:type="xsd:string">test</name>

Obviously, the encoded use is much more verbose for a single reference. It
only really saves you when you have the same complex type appearing multiple
times in a SOAP message. But in that case, chances are you're not designing
your Web service properly anyway since it should be considered a weakest link
and optimized to pass the least amount of data possible.

BTW, when I read that you wrote a Web service client in .NET Framework for
both a document-style and RPC-style Web service, I assume you first ran the
.NET Framework's wsdl.exe tool to create proxy classes using two different
* document-style Axis service's WSDL
* RPC-style Axis service's WSDL

Tony Opatha <> wrote:
> --------------------------------------------- 
>	Attachment:  
>	MIME Type: multipart/alternative 
> --------------------------------------------- 
I wrote a simple web service client in .NET 1.1 (using Visual Studio .NET
that consumed a document-style SOAP Web Service in AXIS 1.1. The document
size that was transmitted ranged from 0.1 - 0.5 MB.
I also tested a simple web service client in .NET 1.1 that consumed a
RPC-sty;e SOAP
Web Serbice in AXIS 1.1. The data size of the argument typ was a bit higher
document style payload.
It seems that invariably document-style SOAP message marshalling and
(and even transfer) was substantially faster than rpc-style SOAP message.
Some questions:
1) I wonder if any one else has observed similar performance degradation of
    when AXIS interfaces with another web services engine (such as .NET). 
2) Why does RPC payload processing take longer on AXIS?
3) Wouldn't it make sense for large data sizes to use document-style since
    AXIS does expensive argument processing for medium-to-large payloads?

Mitch Gitman <> wrote:
Within a WSDL document, you have the style attribute at:

There are only two possible values:
* document
* rpc

WSDL knows nothing of "message style." By the same token, there's nothing
stopping message style from being done using either document style or RPC
style, as long as Axis has implemented it both ways. 

I have to clarify some of what Nick writes: "So, I presume, to a client an
Axis 'document' or 'message' style service should look the same from the
ie: they both contain payload documents rather than RPC structures." 

Document style != message style. Also, RPC calls can be fully expressed using
document style, just the thing being expressed is not NECESSARILY an RPC

"Nicholas Ardlie" wrote:
> --------------------------------------------- 
> Attachment:? 
> MIME Type:?multipart/alternative 
> --------------------------------------------- 
Hi Bhanu
As far as I understand, at the SOAP level, style=Document is correct for what
axis calls 'message' style services.
Axis document style messaging in fact does Java<->XML binding so they needed
to define 'message' style services as services that really deal with the XML
itself (ie: message style is what the non-axis world understand as document
style). More specifically a client doesn't care whether the Axis server does
Java<->XML binding at its end or not. It only cares about the request and
response SOAP structure. So, I presume, to a client an Axis 'document' or
'message' style service should look the same from the WSDL. ie: they both
contain payload documents rather than RPC structures.


-----Original Message-----
From: Bhanu Pabreja []
Sent: Wednesday, 25 June 2003 9:03 AM
Subject: RE: Message Style and WSDL

I just had a look at your wsdl file and it says that the style=Document ....
so this makes me wonder is it really message style service.

Have a look at my deploy.wsdd and just try to create a method and install the
service and see how is shows up in your engine ...

BTW: How do we bypass the ?wsdl and insert our own handwritten wsdl file so
that next time the client tries to access the file it shows the newly created
self edtited wsdl file.

Thanx in advance ...


-----Original Message-----
From: remko de knikker []
Sent: Tuesday, June 24, 2003 3:10 PM
Subject: Re: Message Style and WSDL

You can also handwrite your wsdl-file and include it in the wsdd file 

provided of course your webservice is actually working message-style.

This way you bypass the generation of your wsdl by axis.


xmlns:apachesoap= ""
xmlns:wsdlsoap= ""
> xmlns:xsd= ""

"" >namespace=





Bhanu Pabreja wrote:

still does not work your server.

Once you run your server and I hope it is visible on the internet I will

have a look at your wsdl.

Can u also post your wsdl file in the thread

Thanx in advance,


-----Original Message-----

From: remko de knikker []

Sent: Tuesday, June 24, 2003 2:06 PM


Subject: Re: Message Style and WSDL


the only other thing that I know of, is that I need to restart my

server, to make it work...?



Bhanu Pabreja wrote:

This what my deployment descriptor looks like :

xmlns:java= ""

xmlns:xsi= ""


work -->

value="" />

and my wsdl file looks like this:

targetNamespace=" http://localhost:8080/FTAToolWeb/services/FirmTaxonomyMode


Service" xmlns= ""

xmlns:apachesoap= ""

xmlns:impl=" http://localhost:8080/FTAToolWeb/services/FirmTaxonomyModelServ



xmlns:intf=" http://localhost:8080/FTAToolWeb/services/FirmTaxonomyModelServ


ce" xmlns:soapenc= ""

xmlns:wsdl= ""

xmlns:wsdlsoap= ""

xmlns:xsd= ""




transport= ""

encodingStyle= ""

namespace=" http://localhost:8080/FTAToolWeb/services/FirmTaxonomyModelServi


e" use="encoded"/>

encodingStyle= ""

namespace=" http://localhost:8080/FTAToolWeb/services/FirmTaxonomyModelServi


e" use="encoded"/>


location=" http://localhost:8080/FTAToolWeb/services/FirmTaxonomyModelServic



Now this thing clearly says that this is RPC style service and everything

looks to be encoded.

BTW I dont think so your server is up since I could not access your

webservice's wsdl file.

Have a look and tell me where I am wrong.


-----Original Message-----

From: remko de knikker []

Sent: Tuesday, June 24, 2003 9:01 AM


Subject: Re: Message Style and WSDL


here's my example for a message-style ws, which works for me.

xmlns:java= ""

xmlns:xsi= ""




Look at the result at


Date: Mon, 23 Jun 2003 18:39:30 -0400

From: Bhanu Pabreja 



Subject: Message Style and WSDL

One step beyond .jws files

I have made a message style service with one method

public Document fetchData(Document doc){

// logic


Then I deployed the service using the deploy.wsdd. I could not use the

Java2WSDL utitily to generate "Message" style service so I hand edited one

of the provided examples.

But once I deploy it to the /servlet/AxisServlet and try to browse the

generated .wsdl file it is totally a different version of what I have made

. I mean the wsdl says that it is a RPC style service and the operation is


Now the questions I can figure out is :

(a) How to make a message style service and create a wsdl file which says

that it is a Message style service.

thanx in advance


This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.

This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.

Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!

View raw message