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"> <tns:Thing> <tns:letter>A</tns:letter> <tns:what>test</tns:what> </tns:Thing> </tns:GetThingResponse> For RPC/encoded (with no alternative for a single reference), you would have: <ns1:getThingResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:outline.demo"> <getThingReturn href="#id0"/> </ns1:getThingResponse> <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:Thing" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:outline.demo"> <letter xsi:type="xsd:string">A</letter> <what xsi:type="xsd:string">test</name> </multiRef> 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 inputs: * document-style Axis service's WSDL * RPC-style Axis service's WSDL Tony Opatha <[EMAIL PROTECTED]> wrote: > --------------------------------------------- > Attachment: > MIME Type: multipart/alternative > --------------------------------------------- Hello, I wrote a simple web service client in .NET 1.1 (using Visual Studio .NET 2003) 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 than document style payload. It seems that invariably document-style SOAP message marshalling and unmarshalling (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 RPC 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? Thanks. Mitch Gitman <[EMAIL PROTECTED]> wrote: Within a WSDL document, you have the style attribute at: /wsdl:definitions/wsdl:binding/soapbind:[EMAIL PROTECTED] 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 WSDL. 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 structure. "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. regards, Nick. -----Original Message----- From: Bhanu Pabreja [mailto:[EMAIL PROTECTED] Sent: Wednesday, 25 June 2003 9:03 AM To: [EMAIL PROTECTED] 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 ... Bhanu -----Original Message----- From: remko de knikker [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 24, 2003 3:10 PM To: [EMAIL PROTECTED] 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. r "http://biryani.med.yale.edu:8081/axis/services/GetXSLIM" xmlns= "http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap= "http://xml.apache.org/xml-soap" xmlns:impl= "http://biryani.med.yale.edu:8081/axis/services/GetXSLIM" xmlns:intf= "http://biryani.med.yale.edu:8081/axis/services/GetXSLIM" xmlns:soapenc= "http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl= "http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap= "http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd= "http://www.w3..org/2001/XMLSchema" > xmlns:xsd= "http://www.w3.org/2001/XMLSchema" > "http://www.w3.org/2001/XMLSchema" >namespace= "http://schemas.xmlsoap.org/soap/encoding/" />type="xsd:anyType"/>type="xsd:anyType"/> "http://schemas.xmlsoap.org/soap/http" /> "http://biryani.med.yale.edu:8081/axis/services/GetXSLIM" use="literal"/> "http://biryani.med.yale.edu:8081/axis/services/GetXSLIM" use="literal"/> "http://biryani.med.yale.edu:8081/axis/services/GetXSLIM" /> 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, Bhanu -----Original Message----- From: remko de knikker [ mailto:[EMAIL PROTECTED] Sent: Tuesday, June 24, 2003 2:06 PM To: [EMAIL PROTECTED] Subject: Re: Message Style and WSDL Bhanu, the only other thing that I know of, is that I need to restart my server, to make it work...? sorry, r Bhanu Pabreja wrote: This what my deployment descriptor looks like : xmlns:java= "http://xml.apache.org/axis/wsdd/providers/java" xmlns:xsi= "http://www.w3.org/2000/10/XMLSchema-instance" > work --> value="com.dumdum.taxonomy.ws.FirmTaxonomyModelMessageStyleService" /> and my wsdl file looks like this: targetNamespace=" http://localhost:8080/FTAToolWeb/services/FirmTaxonomyMode l Service" xmlns= "http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap= "http://xml.apache.org/xml-soap" xmlns:impl=" http://localhost:8080/FTAToolWeb/services/FirmTaxonomyModelServ i ce" xmlns:intf=" http://localhost:8080/FTAToolWeb/services/FirmTaxonomyModelServ i ce" xmlns:soapenc= "http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl= "http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap= "http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd= "http://www.w3.org/2001/XMLSchema" > name="fetchDocumentRequest"/> name="fetchDocumentResponse"/> type="intf:FirmTaxonomyModelMessageStyleService"> transport= "http://schemas.xmlsoap.org/soap/http" /> encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/" namespace=" http://localhost:8080/FTAToolWeb/services/FirmTaxonomyModelServi c e" use="encoded"/> encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/" namespace=" http://localhost:8080/FTAToolWeb/services/FirmTaxonomyModelServi c e" use="encoded"/> name="FirmTaxonomyModelService"> location=" http://localhost:8080/FTAToolWeb/services/FirmTaxonomyModelServic e "/> 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. Bhanu. -----Original Message----- From: remko de knikker [ mailto:[EMAIL PROTECTED] Sent: Tuesday, June 24, 2003 9:01 AM To: [EMAIL PROTECTED] Subject: Re: Message Style and WSDL Bhanu, here's my example for a message-style ws, which works for me. xmlns:java= "http://xml.apache.org/axis/wsdd/providers/java" xmlns:xsi= "http://www.w3.org/2000/10/XMLSchema-instance" > value=" http://biryani.med.yale.edu:8081/axis/files/xslim/GetXSLIM_method1Re q uest.xsd"/> Look at the result at http://biryani.med.yale.edu:8081/axis/services/GetXSLIM?wsdl remko Date: Mon, 23 Jun 2003 18:39:30 -0400 From: Bhanu Pabreja To: [EMAIL PROTECTED] Reply-to: [EMAIL PROTECTED] 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 }yl 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 encoded. 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 dumdum420 ********************************************************************** 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. www.mimesweeper.com ********************************************************************** --------------------------------- Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month!