Distributed computing using SOAP. What about speed ?

Graham Dumpleton grahamd at dscpl.com.au
Wed Jul 25 20:55:44 EDT 2001


"Thomas Weholt" <thomas at gatsoft.no> wrote in message news:<LBA77.58$bXi.175168000 at news.telia.no>...

You might look at OSE, which was recently announced on the newsgroup
comp.lang.python.announce. OSE actually uses SOAPpy parser in a RPC
over HTTP gateway it provides for the SOAP protocol. It also provides
an XML-RPC protocol gateway as well as one for its own RPC over HTTP
protocol. The web site for OSE is:

  http://ose.sourceforge.net

Have a good look through the Python manual for OSE as my guess is that
it already provides a lot of features you are intending to implement.

> ( In relation to my previous post about user authentication using SOAP, I
> got another simple question. )

In regard to your last post about authentication, be aware that OSE also
includes support for basic authentication through its HTTP servlet framework
and RPC over HTTP gateways.

> Does anybody have any thoughts about SOAP, especially SOAPpy ( it looks very
> nice, simple to use ), and potential speed issues? I'm thinking of
> implementing a distributed system where nodes communicate using SOAP.
> There's a clear potential of much traffic among the nodes and I just
> wondered if SOAP is the right protocoll/technology for the job. In my
> project each node will register with a nodemaster ( holds info about running
> nodes, nothing else, will check for availability of registered nodes with a
> given interval too, remove dead ones from list ) and get a list of running
> nodes in return. It will then proceed to query these running nodes in a
> serial manner ( at least to begin with, maybe use a async. approach later )
> about information and parse the result.

As well as providing RPC over HTTP access, OSE also has its own internal
connected mechanism for interprocess communications. This includes a
service registration framework whereby you can subscribe to existance of
services such that when a new node connects you automatically get notified
of its existance. At the moment with the way this is implemented, you may
have to deal with some firewall issues as HTTP port isn't used, but a
connected model avoids the time and resources of having to create new
connections for each message.

> It's also clear that some problems might occur cuz the BaseHTTPServer which
> is used for the most part, have performance issues. Perhaps implementing the
> server using asyncchat etc. would increase performance ?? Why aren't the
> modules allready implemented with these tools available in the standard
> python lib allready, if that's the case?

OSE is implemented using an event driven system model. This includes the HTTP
servlet framework, such that multiple requests can be handled at a time etc.
It includes mechanisms for knowing when connections block due to slow HTTP
clients so you can stop sending data back etc.

OSE at its core is actually C++, with Python wrappers. Thus, you are getting
the efficiency of C++ but the simpler interfaces possible with Python.



More information about the Python-list mailing list