[Twisted-Python] Large project (IMS) architecture

Patrick K. O'Brien pobrien at orbtech.com
Thu Jan 16 11:48:40 EST 2003

On Thursday 16 January 2003 09:48 am, Itamar Shtull-Trauring wrote:
> On Thu, 16 Jan 2003 08:44:35 -0600
> "Patrick K. O'Brien" <pobrien at orbtech.com> wrote:
> > PyPerSyst provides simple, robust persistence for Python objects. Note
> > that the files are currently available only in CVS, and SourceForge
> > has anonymous CVS shut down at the moment.
> Twisted includes its own version of the idea behind PyPerSyst
> (www.prevayler.org) in twisted.persisted.journal.

Yes, I've looked at journal. I don't fully understand your implementation, 
because I don't fully understand Twisted yet. And, I had already started 
PyPerSyst before I knew about your implementation. Now I can't let it go. 
I'm sure you know how that is. :-)

> > We recently added support for Pyro, which gives you client/server
> > RMI-like remote access. You can find Pyro here:
> >
> >   http://pyro.sourceforge.net/
> I dislike Pyro since it uses pickles over the network. This is insecure,
> and even if that is acceptable limits you to Python clients only.

I'm not too worried about the limitation to Python clients. The security 
issue is a different matter. It looks like Pyro now supports XML pickles:

Whether the marshaling is done using the safe xml pickling (from 
Gnosis_utils or PyXML) or the default pickle. The xml_pickle is not 
vulnerable for the pickle trojan problem mentioned in Chapter 7, but it is 
an order of a magnitude slower, and requires more bandwith. Use "any" for 
any implementation (defaults to PyXML), "pyxml" for PyXML, "gnosis" for 
Gnosis. PyXML seems to be about three times faster than Gnosis. You need to 
have installed Gnosis_Utils (at least version 1.0.2, latest is 1.0.5 at the 
time of writing). For PyXML, you need at least version 0.8, latest is 0.8.1 
at the time of writing. 

> Twisted's remote object protocol Perspective Broker on the other hand
> does not use pickles, and can in fact be used with other languages (a
> Java implementation exists), while still offering many of the features
> Pyro provides.

PyPerSyst works with Pyro, but doesn't depend on it. I'd like to accomplish 
the same with Twisted. I started with Pyro because it was easier for me to 
figure out. Any suggestions for getting up-to-speed on Perspective Broker? 
Anything else I need to be aware of for this kind of application?

Patrick K. O'Brien
Orbtech      http://www.orbtech.com/web/pobrien
"Your source for Python programming expertise."

More information about the Twisted-Python mailing list