By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
438,798 Members | 1,342 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 438,798 IT Pros & Developers. It's quick & easy.

Problem with XML-RPC, possibly with SOAP too

P: n/a
Just want to share my experience on XML-RPC.

We were working on a messaging middleware. We were using XML-RPC as
communication protocol amoing client apps and server. Client could be
written by Java, C/C++, VB, Delphi on both Windows or Unix platforms.
Seams like XML-RPC( similiar to SOAP as you know) was a good choice
for us. But while the project went on, I encountered some critical
problems:

First of all, performance problem. Messages must be going accross
network in XML format, the encoding/decoding/transmition overhead made
the communcation slower than normal JMS/MQ/CORBA based systems.

The second problem was XML-RPC is built upon HTTP which is stateless
communication protocol and every time a remote call is invoked, a new
socket connection must be established. That slows down the speed a lot
too.

The third problem was since a new connection is needed on each call,
socket was not released right away( at least on Windows ), therefore
if messages are sent too frequently(more than a few hundreds per
second), no more socket connection can be made, and communication just
failed.

I never tried it on WebService platform, but as far as I understand,
web Service is mainly based-on SOAP for communication and SOAP is
similiar to XML-RPC, I guess it will create the same problem as we
had. Because of those problems we had to change our communication
layer to plain socket. With a dedicated socket connection, all the
problems above were easily gone.

Anyone had similiar problem as we had? Can you share your experience?

Li
Jul 17 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Li Ma wrote:
Just want to share my experience on XML-RPC.

We were working on a messaging middleware. We were using XML-RPC as
communication protocol amoing client apps and server. Client could be
written by Java, C/C++, VB, Delphi on both Windows or Unix platforms.
Seams like XML-RPC( similiar to SOAP as you know) was a good choice
for us. But while the project went on, I encountered some critical
problems:

First of all, performance problem. Messages must be going accross
network in XML format, the encoding/decoding/transmition overhead made
the communcation slower than normal JMS/MQ/CORBA based systems.

The second problem was XML-RPC is built upon HTTP which is stateless
communication protocol and every time a remote call is invoked, a new
socket connection must be established. That slows down the speed a lot
too.

The third problem was since a new connection is needed on each call,
socket was not released right away( at least on Windows ), therefore
if messages are sent too frequently(more than a few hundreds per
second), no more socket connection can be made, and communication just
failed.


Are you sure about the second and third problems? HTTP 1.1 allows sockets
to be re-used, and most recent implementations support this. I'm playing
with an XML-RPC application right now, and I don't see a ServerSocket being
created and destroyed for every remote call.

--
Chris Gray ch***@kiffer.eunet.be

Jul 17 '05 #2

P: n/a
Yes, pretty positive. You can try write a little program to constantly
call server. after a few hundred or thousand calls, the call will
fail.

Use netstat to check used connections.

Maybe it is a XML-RPC problem. I'm using Apache XML-RPC for Java 1.1.

Anyone has tried on SOAP?

-Li

chris <ch***@kiffer.eunet.be> wrote in message news:<bu**********@reader10.wxs.nl>...
Li Ma wrote:
Just want to share my experience on XML-RPC.

We were working on a messaging middleware. We were using XML-RPC as
communication protocol amoing client apps and server. Client could be
written by Java, C/C++, VB, Delphi on both Windows or Unix platforms.
Seams like XML-RPC( similiar to SOAP as you know) was a good choice
for us. But while the project went on, I encountered some critical
problems:

First of all, performance problem. Messages must be going accross
network in XML format, the encoding/decoding/transmition overhead made
the communcation slower than normal JMS/MQ/CORBA based systems.

The second problem was XML-RPC is built upon HTTP which is stateless
communication protocol and every time a remote call is invoked, a new
socket connection must be established. That slows down the speed a lot
too.

The third problem was since a new connection is needed on each call,
socket was not released right away( at least on Windows ), therefore
if messages are sent too frequently(more than a few hundreds per
second), no more socket connection can be made, and communication just
failed.


Are you sure about the second and third problems? HTTP 1.1 allows sockets
to be re-used, and most recent implementations support this. I'm playing
with an XML-RPC application right now, and I don't see a ServerSocket being
created and destroyed for every remote call.

Jul 17 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.