You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@ws.apache.org by Werner Jörling <jo...@lkv-wl.de> on 2003/01/14 11:35:53 UTC
General Question RPC vs. Messaging
(Sorry, first posted as a reply)
Hello,
studying the SOAP-Messaging samples from the the book 'Java and SOAP' (Robert
Englander, O'Reilly) and from apache-soap I'm confused about the difference
between SOAP-RPC and SOAP-Messaging.
There are SOAP-Messaging samples, where services are implemented with the
signiture
public void serviceMethod(
Envelope env,
SOAPContext reqCtx,
SOAPContext resCtx
)
Services of this kind are usually sent to client messages containing Envlopes
to an URL like http//host:pppp/soap/servlet/messagerouter.
On the other side there are SOAP-Messaging-service samples not distinguishable
from SOAP-RPC-style services . Only the service-tag in the
deployment-descriptor contains the type="message"-attribute.
Moreover this services are invoked by a Call in a SOAP-RPC like manner, with a
URL like http://host:pppp/soap/servlet/rpcrouter.
Consequently I do not really understand the difference between SOAP-RPC and
SOAP-Messaging.
Regards
Werner
mailto:joerling@lkv-wl.de
RE: General Question RPC vs. Messaging
Posted by Anne Thomas Manes <an...@manes.net>.
Werner,
If you're just starting out with SOAP, I suggest you start with a SOAP
implementation that supports WSDL -- for example Apache Axis. See
http://xml.apache.org/axis. It's the follow-on project to Apache SOAP.
More and more, SOAP-RPC is becoming out of favor. WS-I has decided that SOAP
Encoding is a key source of interoperability issues, and SOAP Encoding is
disallowed by the WS-I Basic Profile. Since most SOAP implementations always
use SOAP Encoding with the RPC style, SOAP-RPC has become a "bad" thing.
>From the SOAP message point of view, there's really very little difference
between SOAP RPC style and SOAP document style. The key difference is SOAP
encoding versus literal encoding. From a message perspective, the only
difference is whether or not you use a methodname container for your
payload. For example, you can pass a purchase order as a document or as a
parameter in a method called placeOrder. It's your choice:
Document style:
<env:Body>
<m:purchaseOrder xmlns:m="someURI">
...
</m:purchaseOrder>
</env:Body>
RPC style:
<env:Body>
<m:placeOrder xmlns:m="someURI">
<m:purchaseOrder>
...
</m:purchaseOrder>
</m:placeOrder>
</env:Body>
Per the specification, both types of messages can be encoded using a XML
Schema or using the SOAP Encoding data model. In practice, many SOAP
implementations only support RPC style with SOAP Encoding and Document style
with literal encoding.
A WSDL description provides the same information about the format of the
message whether you're using RPC or document style. So a WSDL compiler can
just as easily generate a client stub for document style as it can for RPC
style. The Microsoft implementations (.NET and MS SOAP Toolkit) generate
document style by default. Many of the Java-based SOAP implementations are
switching over to document style by default, also.
Anne
> -----Original Message-----
> From: Werner Jorling [mailto:joerling@lkv-wl.de]
> Sent: Tuesday, January 14, 2003 5:36 AM
> To: soap-user@xml.apache.org
> Subject: General Question RPC vs. Messaging
>
>
> (Sorry, first posted as a reply)
>
> Hello,
>
> studying the SOAP-Messaging samples from the the book 'Java and
> SOAP' (Robert
> Englander, O'Reilly) and from apache-soap I'm confused about the
> difference
> between SOAP-RPC and SOAP-Messaging.
>
> There are SOAP-Messaging samples, where services are implemented with the
> signiture
>
> public void serviceMethod(
> Envelope env,
> SOAPContext reqCtx,
> SOAPContext resCtx
> )
>
> Services of this kind are usually sent to client messages
> containing Envlopes
> to an URL like http//host:pppp/soap/servlet/messagerouter.
>
> On the other side there are SOAP-Messaging-service samples not
> distinguishable
> from SOAP-RPC-style services . Only the service-tag in the
> deployment-descriptor contains the type="message"-attribute.
>
> Moreover this services are invoked by a Call in a SOAP-RPC like
> manner, with a
> URL like http://host:pppp/soap/servlet/rpcrouter.
>
> Consequently I do not really understand the difference between
> SOAP-RPC and
> SOAP-Messaging.
>
> Regards
>
> Werner
> mailto:joerling@lkv-wl.de
>
>
> --
> To unsubscribe, e-mail: <ma...@xml.apache.org>
> For additional commands, e-mail: <ma...@xml.apache.org>
>
--
To unsubscribe, e-mail: <ma...@xml.apache.org>
For additional commands, e-mail: <ma...@xml.apache.org>
RE: General Question RPC vs. Messaging
Posted by Anne Thomas Manes <an...@manes.net>.
Werner,
If you're just starting out with SOAP, I suggest you start with a SOAP
implementation that supports WSDL -- for example Apache Axis. See
http://xml.apache.org/axis. It's the follow-on project to Apache SOAP.
More and more, SOAP-RPC is becoming out of favor. WS-I has decided that SOAP
Encoding is a key source of interoperability issues, and SOAP Encoding is
disallowed by the WS-I Basic Profile. Since most SOAP implementations always
use SOAP Encoding with the RPC style, SOAP-RPC has become a "bad" thing.