[Zope3-dev] Is Zope3 usable? Mostly.

alan runyan runyaga at runyaga.com
Mon Dec 8 23:32:03 EST 2003


MaxM asked about Zope 3's status. Sidnei, Josh and I
have been working on a Zope 3 project for the past 6
months.   In 48 hours the application will be installed
at the client and will have been dog and pony'ed to
most of the people who will be using it.  NOTE: I
have not been an active developer on the project.
Most of the heavy lifting has been done by Sidnei
de Silva and Josh Laplace.  I have hacked a bit on
different aspects of our application - and I feel it
is a nice experience.

Zope 3 is still being refactored actively.  Typically
the client API's do not change too much.   But an
example of 'breakage' we encountered was one of
the most serious refactorings in Zope 3, the
parent-geddon.  It took us about 16-24 hours to bring
our application in line.  This is not so bad considering
the nature of our application.  And that parent-geddon
hit close to home since we are using traversal heavily.

What is our application?  It models biomaterial samples
and the containers where they are stored.  So you can have
a 'Sample Type' that has data associated to it (persistent
schema that is created TTW) and the
physical samples (aliquots) are stored in a hierarchy
of locations and containers.  A location called,
"Lab 1" has a freezer that has racks and a rack contains
boxes and a box contains cells.  Aliquots can live in
any of these containers.  All data is stored in RDBMS
only the application root object and schema are persistent.

Why Zope 3?  Because we have sophisticated
security requirements in the next version and we wanted
to store the data in RDBMS in a natural way.  And Zope 3
does not have all of the baggage of Zope 2.   The client
uses Zope 2 (they still have a working Principia install
in production) and after much discussion we felt that
Zope 3 would handle the future directions the application
will take.

Zope 3 has been stable for us.  The application is stable
with only one minor problem that will be resolved tomorrow.
The biggest problem we have seen is speed ;-(  Its quite slow.
With some cursory profiling it seems that almost 85-90% of the
time is spent inside of the checkers and
zopepolicy.checkPermission -- but there is a security-geddon
that is currently under way.

Our application is a tad sluggish
and we can escape a bit of that with some caching trickery.
But I feel confidant that this will be one of the places that is
optimized first in Zope 3.   Until then we can work around the
speed.  We should make a release of it any time.

The third party components we are using:
   - cookieauth (to do login form's with cookies, like cookiecrumbler
in zope2)
   - sqlobjectsupport (component to expose SQLObject services to
zope)
- statictree (philikon's tree.  we had to use this because our clients
are mostly mac's and the js z3 tree didnt work in safari)
- finally our application, which will be renamed before release.
It will be under BSD license.  We will offer support contracts for
other laboratories wishing to use the program.

Zope 3 is definitely usable if you are not going to deploy your
application for a few months and you are steeped in python,
Zope 3 is the application server for you.  TTW development
is not baked and I would wait at least 6- 8 months before
starting TTW experimentation.

cheers,
alan runyan




More information about the Zope3-dev mailing list