The following example of a SOAP request is provided in the SOAP

advertisement
The SOAP Internet-Draft (http://search.ietf.org/internet-drafts/draft-box-http-soap-01.txt) provides
the following example of a SOAP request:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml
Content-Length: nnnn
SOAPMethodName: Some-Namespace-URI#GetLastTradePrice
<SOAP:Envelope xmlns:SOAP="urn:schemas-xmlsoap-org:soap.v1">
<SOAP:Body>
<m:GetLastTradePrice xmlns:m="Some-Namespace-URI">
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</SOAP:Body>
</SOAP:Envelope>
This request can be divided into 2 parts:


HTTP header (lines 1-5)
XML-RPC payload (lines 6-12, the SOAP:Envelope element)
The fact that the XML-RPC payload can be so easily divorced from the HTTP header suggests
that it should be possible to develop a standard for an XML-RPC payload independent of
transport. This idea has been brought up in the SOAP discussion group and was developed
further by Kent Brown in an article in the November 1999 edition of Enterprise Development
(http://www.enterprisedev.com/upload/free/features/entdev/1999/11nov99/cv1199//cv1199.asp ):
"The SOAP spec specifically addresses XML-based RPC over HTTP. It does not
address how the same payloads might be sent over other message transports such
as SMTP (the Internet e-mail protocol), multi-cast message systems such as TIBCO,
or reliable queue-based message systems such as MQSeries or MSMQ. However, I
see the non-HTTP-specific parts of the SOAP spec … as being very useful at
providing a standard format for usage in these other messaging systems."
I would like to expand on Kent’s thoughts with particular reference to projects we are
working on at TIBCO.
Layering an XML-RPC mechanism on top of HTTP has obvious benefits:


HTTP is ubiquitous. HTTP is the most common protocol used to access information
via the Internet.
HTTP penetrates firewalls. As David Chappell has pointed out in his whitepaper
entitled “Simple Object Access Protocol (SOAP) and Firewalls”
(http://msdn.microsoft.com/xml/general/soap_white_paper.asp): “[HTTP] enable[s] applications to
communicate directly with each other without being unintentionally blocked by firewalls.”
XML-RPC on Messaging Transports Other Than HTTP
SOAP IETF BOF Meeting
Page 1 of 2
1/25/2000
However, using HTTP as a transport mechanism for XML-RPC also has obvious
drawbacks:


HTTP is a synchronous request/reply protocol. Even if an XML-RPC payload
is of type void and has only input parameters, still, if HTTP is used as the
transport, a reply will be returned by the application server for every POST.
HTTP is a 1-to-1 protocol. In order to send an XML-RPC payload to n
subscribers, n HTTP connections must be established.
Now, HTTP is simply one of a wide variety of different communication paradigms. For
example, TIBCO supports the following paradigms:



1-to-1 synchronous and asynchronous request-reply
1-to-many synchronous and asynchronous request-reply (useful in soliciting
bids from multiple vendors, in collecting different pieces of information from
multiple sources, or for resource discovery)
Publish/subscribe (1-to-many one way)
It is easy to imagine XML-RPC payloads being used in conjunction with each of these
paradigms. The conclusion we should draw is that it’s a good idea to develop a
standard for XML-RPC independent of communication paradigm/transport.
One final comment. It has been our experience at TIBCO that system administrators are
quite willing to open other ports in the firewall besides port 80 if the benefit is great
enough and if security can be guaranteed through some mechanism. This is another
argument for not tying XML-RPC too closely to HTTP. HTTP should not be set up as the
only mechanism by which the firewall can be penetrated. What customers cannot do
without, however, is messaging interoperability. And this interoperability will certainly be
enhanced by an XML-RPC standard defined independent of transport.
XML-RPC on Messaging Transports Other Than HTTP
SOAP IETF BOF Meeting
Page 2 of 2
1/25/2000
Download