[ZODB-Dev] Number of clients connecting to a ZEO Server

Chris Withers chrisw@nipltd.com
Thu, 24 May 2001 17:20:25 +0100


Jim Fulton wrote:
> 
> Yes. For read-intensive access, it should also be possible (with some minor
> changes to storage servers) to arrange storage servers hierarchically, where
> some storage servers are storage clients.

Hmmm... what about as a web in a Groove-esque manner?

> > Finally, what's the minimum I need, in terms of libraries, etc, to open a ZEO
> > connection to a storage server so I can start playing with objects in the ZODB?
> 
> Sadly, you need a little more than you should. This includes:
> 
>   - ZEO
> 
>   - ZODB
> 
>   - ExtensionClass
> 
>   - Python 2.1 or Zope's cPickle and asyncore
> 
>   - zdaemon, zLOG, ThreadedAsync, Persistence
> 
> and, if you want to be able to do Undo the way that Zop does,
> you'll need:
> 
>   - App.Undo (for the Prefix class, waaaa).

Would I also need the python products for any objects I want to get hold of
through the ZEO connection?

> > PS: This is all looking towards building a fat client for Zope, based on Python
> > and using a ZEO connection to get hold of the objects.
> 
> I fear that the security model is going to be the biggest challenge
> unless you are willing to totally trust the clients. 

I'm guessing this is because giving someone access to a ZEO connection to a ZODB
is on par with giving them file system access to the ZODB server? Has anyone
thought of a way to secure a ZODB connection at this level. It feels like it
should be possible, given that Zope does exactly that with HTTP, and the
HTTP-python mapping is a pretty close one.
<pipe dream>
Is there any way a storage server could expose something like a Restricted
Python connection?
</pipe dream>

(thinking aloud) What about CORBA? Does it solve this kind of problem?

Would:

ZSS - CORBA ===================== CORBA - Zope Fact Client

...work?


> If you aren't, then
> you might be bertter off with a xmlrpc or SOAP-based approach, however, then
> you'd have a database consistency problem to deal with.

I think I understand why, but could you explain?

cheers,

Chris