[Pythonmac-SIG] problems with Distributed Objects and PyObjC

Irmen de Jong irmen at xs4all.nl
Sat Oct 24 15:23:44 CEST 2009


Hamish Sanderson wrote:

> Reading the docs. A few questions, if you don't mind:
> 
> - Will Pyro play well with PyObjC objects?

I can't say anything about this, I have zero experience with PyObjC.

> - How does it compare to, say, DO+Bonjour (which is the only 
> object-oriented IPC system I'm vaguely familiar with)?

Pyro is a 100% Python remote object library and as such will be
different on a lot of aspects, I think, because it is not tied to any OS specific 
technology (other than TCP/IP sockets).
Pyro is capable of handling any Python object that can be pickled.
It uses Python's native pickle format for data transfer, which makes it quite fast.
It has no auto discovery mechanism but it has a centralized object registry, which can 
be discovered by other objects using a network broadcast.

For more information please read the documentation.

> - And how well will it cope if some components stall or crash? (One of 
> the reasons for moving to a more distributed design is that some parts 
> of the system are inherently unreliable, so the rest of the system will 
> need to survive if/when those processes go down, and be able to 
> reconnect once they are restarted.)

Pyro's got some basic features to deal with lost connections (due to component crash or 
network problems etc). By adding a few lines to your code you can detect a broken 
connection and try to reconnect the object to its target.
You can also deal with message transfer timeouts in a basic way.

If you want truly reliable message transfer or transactional behavior across objects, 
Pyro is probably not the right choice.

-irmen



More information about the Pythonmac-SIG mailing list