The Zope Application Server Revisited
Some Zope Drawbacks

Kevin Reichard
Friday, January 7, 2000 08:31:26 AM
For instance: the larger application-server field relies on CORBA or COM;
UNIX vendors tend to line up behind CORBA and NT vendors line up behind COM.
Though Python supports COM and CORBA, Zope doesn't explicitly support either,
so you'll need to come up with your own Python code and include it within Zope
in order to enable COM and CORBA support. This is one of the chief difficulties with
Zope: you not only need to come up with your own applications, but you must
also program your own application server!
In addition, the application-server market has largely settled on Java and
Enterprise JavaBeans (EJBs) as tools that can be deployed on any application
server, allowing different servers from different vendors to interoperate
on a useful level. There's no hint at all within Zope or the Zope documentation
that Java/EJB support was ever considered, much less implemented. This is a
major problem within Zope; you can argue all day and night that Python is
superior to Java, but one simply can't ignore the realities of the marketplace.
Another potential drawback to Zope--which, admittedly, I didn't establish
with the use of any sophisticated benchmarking or performance testing --was
that performance seemed to be on the slower side. I purposely created the same
sort of applications under Zope that I created for a previous review of a beta
version of Cold Fusion 4.5 for Linux (which you can read here), using the same
back-end SQL database. When putting both application servers through their
paces, it seemed as though Cold Fusion for Linux featured snappier performance
when working with CFML code and slightly quicker performance when working with
Java code. I can't tell whether this is due to DTML being a drag on performance
or some component underperforming, nor can I make the argument that you'll see
a similar performance drag when deploying Zope on a production-quality
system.
One final complaint: as far as application servers go, Zope represents an
unsophisticated approach to load balancing and fault tolerance. In Zope itself,
there's no load balancing at all; you'll need to purchase it separately as a
commercial product from Digital Creations. Fault tolerance and failover ensures
that a user session doesn't fail when a server goes down; the session is taken
over by another server in the cluster. In the enterprise, load balancing and
failover are now nearly mandatory, so until Digital Creations boosts Zope's
capabilities in this area, it will be forever doomed to be a departmental
server performing a limited number of transactions in non-mission-critical
environments.
Next: In Conclusion »