473,770 Members | 5,569 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

SOAP Performance - Really so slow ?

>From my simple performance tests of SOAP it seems that it is about ten
times slower than binary object request protocols such as RMI, IIOP or
SimpleORB.
Is this also YOUR experience ?

Nov 28 '05
52 5814

Mike Gaab wrote:
"Bruce Wood" <br*******@cana da.com> wrote in message
news:11******** *************@g 49g2000cwa.goog legroups.com...
>so do everything you can to make
fewer calls and ship more information across the wire on each call. We
know that we have to design differently for WS than we would if we were
using a binary protocol.
Could you elaborate a tad? Just what can be done?


Well, for example, the gurus recommend that Web Services be stateless.
That, along with the knowledge that each call carries a lot of overhead
makes us prefer to make one call to search for stock items and return
the whole list to the client, rather than writing a "get first / get
next" style interface. We also offer client programs fewer options as
to how much information is returned for each item, because it's better
to return more info than the client wanted than to have a client
calling over and over again to get progressively more information about
a particular item. "Return the entire result, and return enough or more
than enough information about each item on one call" is the philosophy
we're running with for now.

If we were running a binary interface we might have done it
differently: make more calls to finer-grained routines on the server
side.

Also, I'm not sure how to determine when a WS should be used over some
other techology. If I my business uses a Java server, then just use a Java
technology to pass the data. Is that how you are determining which to use?
What would be some other factors?


I think of it this way: If I have a server running Java, and I'm pretty
sure that all of my clients, now and in the future, will either be Java
clients or browser-based clients (which could be served by a Java-based
Web server), then I would go with RMI, knowing that that would, for all
practical purposes, lock me into Java forever. I would get much better
performance and it would be easier to make the whole thing work. The
price I pay is that if my bosses ever come to me and say that they want
me to write a C# client on a Windows handheld then I'm in a bit of
trouble. (At that point I would either talk them out of it or build Web
Services on top of the Java server framework and use those, but I
wouldn't really be leveraging all of that RMI investment.) Lots of
shops are one-language shops, and in that environment there's really no
reason to incur the performance penalties of Web Services.

If, on the other hand, there is a reasonable likelihood that I'll be
dealing with all sorts of clients, and browser-based won't cut it (so I
would need to deploy client apps on various client platforms), then I'd
seriously consider Web Services because of the interoperabilit y, even
though the performance sucks (comparatively) and in some cases it's not
as solid as some of the binary protocols (depending upon whose app
server you're using).

In our case, it's our server side that's the problem. Our choices there
are extremely limited... basically it's Web Services or nothing for us
on the server side.

Nov 29 '05 #21
Roedy Green wrote:
On Tue, 29 Nov 2005 01:16:31 +0000, Andrew McDonagh
<ne**@andrewcdo nagh.f2s.com> wrote, quoted or indirectly quoted
someone who said :

http://www.zeroc.com/performance/index.html

is that the right url?


yeah works for me - is not for you?
Nov 29 '05 #22
Bruce Wood wrote:
Roedy Green wrote:
On Tue, 29 Nov 2005 01:14:00 +0000, Andrew McDonagh
<ne**@andrewc donagh.f2s.com> wrote, quoted or indirectly quoted
someone who said :

What this boils down to, is that there is no 'Right' or 'OneTrue' way.
Correct, but there are some ways that deserve to die they are so
inept.
--
Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.

Be that as it may, I beg to differ that SOAP / Web Services is one of
those "inept" ways that deserves to die.


Agreed -
In our case, for example, SOAP / Web Services is a godsend. We have a
legacy back-end consisting of millions of lines of code, and no, we're
not about to rewrite the thing in Java or C# just to make purists
happy. Web Services is the first thing we've seen that could open up
our closed mainframe-style architecture and start delivering some
results. Is it inefficient compared to binary protocols? Yup. However,
it's also the only practical way to deal with a heterogeneous
environment.

Binary protocols are efficient and easy to work with until you come up
against a system that has different parts written in different
languages. Then they quickly become a nightmare. For all of its
inefficiencies and problems, SOAP doesn't suffer from that one critical
flaw.

Sure, there may be a "SOAP backlash" coming from twits who use the
technology for absolutely everything, including inter-process
communication. However, the technology does fill a niche (and a huge
niche it is) that RMI, Remoting, etc. have never been able to
adequately address. I think that SOAP / Web Services are here to stay.


Those twits are usually (though not always) the same people who abuse
all distributed messaging technologies by creating tiny methods that
pull or push singular atomic data values between two points. Early
CORBA days were full of people creating Business Object models that had
the objects residing anywhere and then having set/gets & normal methods
on those objects. And they wondered why it did run very quickly?????

Even with SOAP I see people making this fundamental mistake.

Andrew
Nov 29 '05 #23
Stefan Simek wrote:
Hi,

Well, this is an extremely non-real-word :) benchmark, that would work
for cases where the request takes zero time at the server side, which is
not a common case, or is simply caused by a design flaw.

You say that you get 140 SOAP calls / sec = cca 7 ms per call, and 1600
RMI calls = cca 0.6 ms. But should the request take 10 ms to complete at
the server, the difference would be 17 ms vs. 10.6 ms, less than
two-fold. With a 100 ms request, this would be 107 ms compared to 100.6
ms, a difference that's completely negligible compared to the benefits
provided by SOAP.

Just my 2c.

Stefan

fr**********@gm ail.com wrote:
A hello-world (with one String as parameter) SOAP application was at
about 140 calls/sec when running the client and the server on the same
PC (2 GHz Athlon). RMI and SimpleORB would be at about 1600 calls/sec
with the same helloworld app, on the same machine.
This means that SOAP is an order of a magnitude slower than competing
technologies...
Regarding interoperabilit y: CORBA and technologies like SimpleORB ARE
cross-platform, they might only need an http "converter" so that they
can tunnel through firewalls.


:-) Nice!
Nov 29 '05 #24
On 29 Nov 2005 10:16:54 -0800, "Bruce Wood" <br*******@cana da.com>
wrote, quoted or indirectly quoted someone who said :

Binary protocols are efficient and easy to work with until you come up
against a system that has different parts written in different
languages. Then they quickly become a nightmare. For all of its
inefficienci es and problems, SOAP doesn't suffer from that one critical
flaw.


A soap creator/parser is much more complex that a package to deal with
the wrong endianness of data. Just count lines of code to convert
binary to char to byte to char to binary compared with little endian
to big endian network order.

Soap has an illusion of simplicity because it is easy for humans to
deal with, but it is not humans dealing with it.
--
Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.
Nov 30 '05 #25

Roedy Green wrote:
On 29 Nov 2005 10:16:54 -0800, "Bruce Wood" <br*******@cana da.com>
wrote, quoted or indirectly quoted someone who said :

Binary protocols are efficient and easy to work with until you come up
against a system that has different parts written in different
languages. Then they quickly become a nightmare. For all of its
inefficienci es and problems, SOAP doesn't suffer from that one critical
flaw.


A soap creator/parser is much more complex that a package to deal with
the wrong endianness of data. Just count lines of code to convert
binary to char to byte to char to binary compared with little endian
to big endian network order.


But it's not about just big-endian versus little-endian and low-level
concerns like that.

My point is that tools and frameworks for producing / consuming SOAP /
Web Services on all sorts of platforms and languages are sprouting up
like mushrooms. I don't have to write the bare-bones code that worries
about serialization, transport, and even (latterly) security and
encryption because it's all being done for me by hundreds of vendors.

The beauty of SOAP / WS isn't that it's easy for any particular vendor
to support it on any particular platform. In fact, as you pointed out,
it's not: it's bloody difficult, and getting more difficult by the
month as higher and higher level standards are created.

Instead, the beauty of SOAP / WS is that I as a consumer can buy an
application server that is designed to run services written in Java
from one vendor and a client platform for .NET clients from another
vendor and the two work together. CORBA never managed to get that much
market penetration. So far as I know the field of players trying to do
that sort of thing with RMI or .NET Remoting is thin indeed. If I can
grab products off the shelf and have them interoperate out of the box,
I don't care how much of a pain it was for the vendor to create them.
I'm happy. I'm even happier when vendor #1's client platform turns out
to be crap and I can just dump it and substitute another platform from
a competing vendor and it still works with my server-side Web Services.
I like the security of knowing that my whole system doesn't live or die
based on one vendor's ability to deliver, or even one language's
ability to deliver.

As well, my business partners can choose their own platforms and
languages and call my Web Services without knowing or caring what
language they're written in. Try doing that with .NET Remoting.

There's nothing wrong with RMI / Remoting / CORBA / whatever. They're
great technologies. However, they just don't have the vast market
penetration that Web Services is shaping up to have. As I said, if
interoperabilit y between heterogeneous platforms is high on my list of
requirements, I probably won't be considering Java RMI as my protocol.
If I'm in a closed, all-Java shop, then that changes everything. Use
the right tool for the right job... and there are many jobs for which
SOAP is the right tool.

Nov 30 '05 #26
I got 1600 calls/s with RMI or SimpleORB and about 140 calls/s with
SOAP. Application was hello-world with one String as argument.

Nov 30 '05 #27
On 29 Nov 2005 17:46:22 -0800, "Bruce Wood" <br*******@cana da.com>
wrote, quoted or indirectly quoted someone who said :
Instead, the beauty of SOAP / WS is that I as a consumer can buy an
application server that is designed to run services written in Java
from one vendor and a client platform for .NET clients from another
vendor and the two work together.

that is also true of CORBA or messages defined by ASN.1.
--
Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.
Nov 30 '05 #28
Potentially WRONG: Real-world requests will transfer much more data,
which produces a VERY lengthy SOAP message. SOAP is not just a huge
envelope around efficiently encoded data, but a lengthy envelope that
contains lenghty data structures.
Just look at the encoding of an integer:
<Integer xmlns="urn:vwse rvices">1</Integer>
That is 40 bytes for a single integer - about a factor of ten (actually
40 if intelligently encoded) worse than CORBA.
This means that multi-object messages are ALSO inefficient, because
each object/value if inefficiently encoded.

Nov 30 '05 #29
fr**********@gm ail.com wrote:
Potentially WRONG: Real-world requests will transfer much more data,
which produces a VERY lengthy SOAP message. SOAP is not just a huge
envelope around efficiently encoded data, but a lengthy envelope that
contains lenghty data structures.
Just look at the encoding of an integer:
<Integer xmlns="urn:vwse rvices">1</Integer>
That is 40 bytes for a single integer - about a factor of ten (actually
40 if intelligently encoded) worse than CORBA.
This means that multi-object messages are ALSO inefficient, because
each object/value if inefficiently encoded.


hmmm couldn't this be easily solved by compression??

Nov 30 '05 #30

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

5
4005
by: Scott | last post by:
I have a customer that had developed an Access97 application to track their business information. The application grew significantly and they used the Upsizing Wizard to move the tables to SQL 2000. Of course there were no modifications made to the queries and they noticed significant performance issues. They recently upgraded the application to Access XP expecting the newer version to provide performance benefits and now queries take...
24
2790
by: Bob Alston | last post by:
Most of my Access database implementations have been fairly small in terms of data volume and number of concurrent users. So far I haven't had performance issues to worry about. <knock on wood> But I am curious about what techniques those of you who have done higher volume access implementations use to ensure high performance of the database in a multi-user 100mbps LAN implementation??? Thanks
8
2762
by: Jack | last post by:
When I try TooFPy with the SOAP and XML-RPC sample client code provided in TooFPy tutorials, a log entry shows up quickly on web server log window, but it takes a long time (5 seconds or longer) for the client to output a "Hello you." It seems like the web server is fast because the log entry shows immieidately on web server console. But it takes Python XML/SOAP parser a long time to parse the extremely simple result. If so, wouldn't this...
5
3075
by: =?Utf-8?B?TWFyaw==?= | last post by:
Hi... I've got a .Net client to a soap service that works for the most part, but there are a couple of things I'd like to improve: 1) the first request to the client wrapper always takes 12-15 seconds even though the web server shows < a half second spent on the request. What takes so much time for the client wrapper to warm up? All subsequent requests, even to the same method, take the half second.
0
9592
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9425
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10059
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10005
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9871
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7416
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5313
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
2
3576
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2817
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.