PYRO, XML-RPC, and their friends.

Martin von Loewis loewis at informatik.hu-berlin.de
Mon Jul 3 07:05:25 EDT 2000


Stephen Hansen <stephen at cerebralmaelstrom.com> writes:

> I've discovered recently that I have a need for some Client/Server db
> fucntionality in the python project that i'm working on. What I don't
> want is to have to deal with installing some Big Bunch Of Crap that
> will be needed to support my program, and even though I know nothing
> about ODBC, it seems like that would include more baggage then its
> worth in this instance..

I don't know what database you are going to use, but I believe that
odbc would indeed be the soluation that involves the least amount of
extra stuff. For example, Python-Win comes with an odbc module, and
there is also at least one other odbc module that would work in a
plain python installation, as well.

> have my little windows program run on Linux

It is possible to use odbc on Linux, as well. Depending on the
database, it may even be easy to do so.

> Anyways. It might be a bit overly complicated in and of itself, but the
> way i've thought of doing it is just setting up PYRO, XML-RPC, etc, to
> communicate between my Server and its Clients, to then access a MetaKit
> controlled on the server.

For completeness, I'd like to add CORBA in this candidate list; the
implementation with least installation overhead is probably Fnorb
(only one C module, which comes precompiled for Windows).

> #1) How fast are these?

Some of these are only protocols, which you can't compare for
performance - you'd have to compare concrete implementations. I don't
think anybody has done significant benchmarking on them, so far, but I
guess they are "fast enough".

> I don't know how long it'd take one of these systems to send across
> a multi-megabyte binary file.

I hope most of them would achieve approximately the raw wire speed for
bulk transfer, or be at least comparable to any other bulk data
protocol. Most of these will require to copy the bulk data in memory a
number of times, which would be the primary source of overhead.

> The rest of the data i'd be sending would be irrelevant in
> comparison.

That is only true if you have only "few" calls. If you have "many"
calls, it is actually the number of calls that matters, not the amount
of data transferred.

Regards,
Martin



More information about the Python-list mailing list