It's not a secret anymore!*
The moose likes Web Services and the fly likes RPC/literalor, Document/literal and WS-I Basic Profile Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » Java » Web Services
Bookmark "RPC/literalor, Document/literal and WS-I Basic Profile" Watch "RPC/literalor, Document/literal and WS-I Basic Profile" New topic
Author

RPC/literalor, Document/literal and WS-I Basic Profile

Rr Kumaran
Ranch Hand

Joined: Sep 17, 2001
Posts: 548
Hi All,

Why is RPC/encoded style Web Services/WSDL not interropable ?

What are the various (min. 5) differences from a programmer/webservice-developer-point-of-view between these wsdl styles the RPC/literalor, Document/literal and RPC/encoded ?


RR Kumaran
SCJP 1.4
JeanLouis Marechaux
Ranch Hand

Joined: Nov 12, 2001
Posts: 906
That's mostly because the SOAP spec if fuzzy about encoding. So each implementation can have its own way to represent, code and decode data.
This can lead to serious interoperability problems.
Let's take a simple example : a String parameter.
The SOAP spec allows different representations of a String object (both are correct):

* SOAP-ENC:string
* xsd:string

So imagine you're consuming a service to obtain the name of the best java website
( btw, the response is like : <BestJavaWebSite>www.javaranch.com</BestJavaWebSite> )

Due to your SOAP implementation, you are waiting for a response like

but because the .Net provider of the service has chosen another representation of the String datatype, you receive :


Then you've got an interoperability problem your SOAP engine will not be able to resolve.
If such a problem can arise with a simple datatype like String, imagine the trouble with more complex elements !!!
That's why WS-I decided to discourage ENCODED style. (And J2EE 1.4 adopted WS-I basic profile.)


Moreover, even if RPC-encoded sounds very simple to use, many tests have pinpointed scalability problems with the encoded style. So a professional web service will be far more efficient if it is designed using the LITERAL style.
[ December 15, 2004: Message edited by: Jean-Louis Marechaux ]

/ JeanLouis<br /><i>"software development has been, is, and will remain fundamentally hard" (Grady Booch)</i><br /> <br />Take a look at <a href="http://www.epfwiki.net/wikis/openup/" target="_blank" rel="nofollow">Agile OpenUP</a> in the Eclipse community
Rr Kumaran
Ranch Hand

Joined: Sep 17, 2001
Posts: 548
Jean-

That explains clearly some points but what is the difference between type="SOAP-ENC:string" and type="xsd:string" and what difference does they make to the soap engine.

Also can you please answer to second part of my original question
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: RPC/literalor, Document/literal and WS-I Basic Profile
 
Similar Threads
EJB 3.0 WebService, How to change context
encoding type in wsdl
Axis - describing arrays in WSDL : "unbounded sequence" instead of "soapenc:Array"
Axis and Document/Literal web service
.Net Client for Axis Web services