Java RMI-like services in Python

M

Maurice LING

Hi,

I am wondering if Python has services or frameworks that does the same
as Java RMI?

What I am seeking is to do "pseudo-clustering". That is, a server will
contains a program to control what is needed for execution. This will be
pretty much like process management. Call this controller,
HeadControl.py. What HeadControl.py can do is to expose a SOAP interface.

Each client machine will have Executor.py. So when Executor.py is
executed, it will connect to HeadControl through SOAP. HeadControl will
then spawn a thread to represent the connection.

Now, this part is possible in Java, but I am not sure if it is possible
in Python. Executor will find out from HeadControl what it can do and
downloads the corresponding objects and data from HeadControl and
executes it and sends results back to HeadControl.

2 scenarios that this might work. Firstly, Executor can be part of a
client program. In this case, temporary files may be written to the
client's HDD. Of course, due to security, this method may not be
desirable. Secondly, Executor may be made into a web applet kinda thing.
In this case, writing to HDD may be impossible.

I know something like this had been achieved in Java
(http://www-128.ibm.com/developerworks/java/library/j-super.html) but
wondering if it is possible in Python. Is so, how?

Thanks.

Cheers
Maurice
 
A

Alan Kennedy

[Maurice LING]
I am wondering if Python has services or frameworks that does the same
as Java RMI?

As Harald mentioned, Pyro is firmly in the "Remote Method Invocation"
space. And there's always CORBA, of which there are multiple python and
java implementations. Which might be useful, if you wanted to have a
mixed language implementation.

Another technology that could be very useful for you is Spread, for
which both python and java libraries exist.

http://www.zope.org/Members/tim_one/spread/

[Maurice LING]
What I am seeking is to do "pseudo-clustering".

[ .. snip .. ]
I know something like this had been achieved in Java
(http://www-128.ibm.com/developerworks/java/library/j-super.html) but
wondering if it is possible in Python. Is so, how?

So, do you want to

A: Build your own "pseudo-clustering" implementation?

B: Use one that's already been written?

If the answer is the latter, I recommend you take a look at PyLinda.

PyLinda - Distributed Computing Made Easy
http://www-users.cs.york.ac.uk/~aw/pylinda/
 
M

Maurice LING

Thank you
Harald and Alan,

Pyro seems to be used widely in this area but PyLinda is much cleaner
and simpler to use.

However, given that the object or class to be executed by execution
machines are not known at development time, I wish to seek you advice on
remote class loading.

Can an object (containing methods) be loaded into PyLinda's TupleSpace?
Sorry, this may be a dumb question as lists are technically objects.
Just want to be doubly sure.

Thanks and cheers
maurice
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,261
Messages
2,571,308
Members
47,976
Latest member
AlanaKeech

Latest Threads

Top