Meeting Your Server Needs, From A to ... Zope
Zope: A free, all-in-one, out-of-the-box application server solution Zope is an enigma of sorts. Best described as an application server that is essentially a Web server built around a relational database, Zope carries its own methodology and offers a universal Web-based content creation system, making it well suited for collaborative efforts.
The simplest way to think of an application server is as a Web server on steroids. An app server goes beyond merely delivering static documents; it can layer all sorts of dynamic processing, building documents on-the-fly based on dynamic data and user interaction. Sometimes developers build application server capabilities by stringing together a variety of individual technologies. For example, the Apache Web server, PHP scripting language, and MySQL database comprise a kind of "holy trinity" for building an application server using free, open-source software.
Zope, an acronym for Z Object Programming Environment, is a different approach toward tackling the app server solution. It brings everything together under one roof -- Web serving, script-based processing, and database serving. Put another way, Zope is basically a Web server built around a relational database and which uses Python as its native scripting language. Zope is an all-in-one, out-of-the-box application server solution that also happens to be free.
For the sake of accuracy, note that Zope can in fact connect with third-party servers to substitute for its own -- for example, it could use the Apache Web server rather than its own, or a different database engine. Although Zope is very flexible in this regard, we found it best and most useful to evaluate the server in its all-in-one form, with Zope's products powering the whole shebang.
The Windows distribution of Zope is a sub-6 MB download that inflates to about 30 MB on disk. A very straightforward InstallShield routine disguises the complex system that comprises Zope -- a relational database, a scripting language (Python), and a Web server. Zope can be configured to launch as a Windows service or manually when a batch file is executed. Once running, Zope is managed entirely via a Web browser connected to the local machine at port 8080 (which is, of course, configurable).
The Zope management interface consists of a Windows Explorer-like tree navigation pane on the left and content pages on the right. At first, the contents of the management interface seem confusing and, indeed, Zope brings with it a considerable learning curve. The Zope "universe" is a way of thinking -- an object-oriented way of thinking, to be precise. Everything in the Zope universe is a type of object, be it a snippet of a Web page (such as a header template), or a piece of data in a relational database, or a Python script for interpreting user input. Web pages in particular are not viewed as single, whole HTML entities but rather as dynamic constructs made up of smaller pieces. These pieces, in turn, contain HTML mixed with Zope-specific tags that connect to other Zope objects (e.g., Python scripts and database data).
At its essence, the Zope management interface is the way in which the objects that make up the Zope universe are accessed, defined, arranged, and configured. In turn, the Zope universe -- as seen through the eyes of a connecting Web browser -- is the corresponding Web site.
While the intricacies of developing Web sites with Zope are too complex for this review, it's important to understand that Zope is not a singular tool, i.e., another arrow in the quill for developing Web sites. Rather, it represents a whole way of thinking and a universal Web content creation system. The downside of this is the high learning curve that accompanies Zope. Developing Web sites requires learning the Zope conceptual framework as well as the Zope vocabulary. This will come easier to those with experience in object-oriented design. Yet, once learned, Zope is a very powerful system for creating large, dynamic, and consistent Web sites -- especially those maintained by teams of people, such as artists, editors, writers, and programmers.
For this reason, Zope is especially useful in content management environments. In fact, several add-ons for Zope are specifically designed to enhance its content management system orientation, and Zope can certainly be viewed as a very sophisticated, free content management system.
Because Zope is managed entirely through the Web, Zope-based Web sites can be managed from any computer anywhere. Thus, a Zope site "lives" entirely on the Web. The Zope server has much on its plate and, as such, it is not the screamingly fastest server around. Serving static Web pages with Zope, for example, would not compete with those served from a streamlined server, such as Xitami. Zope is, however, ideal for complex sites where sophistication is more important than raw speed.
Zope is not a casual tool. The Zope way of building Web pages is conceptually different from the usual approach familiar to users of HTML editors. Because Zope is a whole system that covers the ground from developing to serving Web sites, it should be evaluated before jumping right in. It may be too much tool for the job, or it may be the perfect tool for the job. Zope is a commitment that is sometimes worth making, but it is a big commitment nevertheless.Pros: Powerful and comprehensive approach to dynamic Web development; Rich conceptual management interface; Rapid deployment of complex Web sites (once learned)
Cons: Too much for small Web jobs; Object-oriented concepts applied in nontraditional ways relative to Web development; Raw speed sacrificed in favor of sophistication
Reviewed by: Aaron Weiss
Original Review Date: 12/17/2003
Original Review Version: 2.6.2