• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

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

 
Rr Kumaran
Ranch Hand
Posts: 548
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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 ?
 
JeanLouis Marechaux
Ranch Hand
Posts: 906
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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 ]
 
Rr Kumaran
Ranch Hand
Posts: 548
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic