Hello ZODB developers!

I think I asked something like this a very long time ago, but I'd like to ask again, in case anything has changed.

Here's my question in a short and long version:

short version:

Is anyone using ZEO to build mutliuser networked applications outside of Zope?

longer version:

I've been designing and coding (and re-designing and re-coding) a multi-user GUI application in Python for some time now. At this stage, it's mainily just GUI forms for editing data and some logic to share objects with users, keep them from editing the same entry at the same time etc. I'm currently using Twisted and a a python object- reational DB called Axiom, built on top of sqllite.

Basically, my problem boils down to these two things:

1) Making sure all clients have the latest version of objects as transactions are committed is difficult 2) Clients have a different view of the data than the server, and are therefore pretty "dumb". I would like to be able to maintain, search, create reports on the data etc. without having to write code to do remote procedure calls to the server all the time, or have a separate database running on the client with just enough information so I can search and display interesting data on the "main screen" of the app. I've also got lots of code swapping out object references for primary keys and back again on client/server sides.... it's a bit of a mess.

So, I was thinking each client uses a ClientStorage to access a ZEO server and I build my user authentication, GUI forms etc. on top of this.

It would *greatly* simplify the application - I can concentrate on the domain problems and let ZODB/ZEO handle persistence and keeping clients in sync.

These are huge headaches for me right now, and I think switching to ZEO might help. Also I'm also looking to add undo functionality and a version of the app that runs standalone (i.e. just swap a FileStoreage for ClientStorage) at some point in the future. ZODB seems like it will make this a lot easier to to implement.

The thing is, I can't seem to find any references to applications (open source or otherwise) where developers have used ZEO in this way, and it makes me wonder if I'm trying to use it in a way for which it wasn't designed. The ZODB guide hints that this is possible, but everything I can find about ZEO on the web talks about using it to scale your Zope server.

Is anyone using ZEO like this?


For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -  ZODB-Dev@zope.org

Reply via email to