April 26, 2019

The Zope Application Server Revisited - page 2

Introducing Zope

  • January 7, 2000
  • By Kevin Reichard

We downloaded a binary version of Zope 2.1.0 from the Zope Web site and installed it on a Slackware Linux 7.0 server. Zope requires a later version of Python to work (1.5.2 or later), and this distribution included a copy. (Don't be misled by the heavy stress on Python in this explanation of Zope; while the majority of Zope is developed in Python, there are performance-sensitive portions written in C, and by and large you can get a lot of work done in Zope without needing to know a lot about Python.) Zope includes the ZODB object database, Z Classes, WebDAV support, XML-RPC client support, the ZServer Web server and Zcatalog, an indexing tool for creating catalogs.

Zope is available in either binary or source-code form. A program guided us through the installation, and we encountered few problems installing and configuring Zope.

Zope may be open-source software, but it's not distributed under the terms of a GPL or even a Berkeley-style license; it's distributed under the Zope Public License. The terms within the ZPL aren't too onerous--basically, you're asked to give credit to Digital Creations whenever possible--and anyone planning on deploying Zope should have no problem in meeting the license guidelines.

You can use Zope as a total front-to-end solution or integrate it with existing components. For example, Zope comes with its own Web server, but it supports Apache, Netscape, and Microsoft (IIS) Web servers as well. On the back end Zope ships with a native nonrelational database, ZODB, and the assumption is that you'll use ZORB for data storage. If you're not thrilled with the idea of using ZORB as your database format, you can connect Zope to Oracle, Sybase, MySQL, ODBC, Postgres, Solid and Adabas databases.

Although Zope will work with a wide variety of Web servers, the preferred server is the included ZServer, which is a Zope-modified Medusa server toolkit. ZServer allows access via any number of protocols, not just HTTP (for instance, ZServer supports both FTP and WebDAV access), but the command-line ZServer may not be the easiest to launch and monitor for someone who's more used to working with a graphical interface. And while ZServer may be as high-performance a Web server as the Zope documentation claims, there are any number of shortcomings with ZServer that could preclude its use: it doesn't support SSL, it doesn't perform any proxying, and it doesn't support virtual hosts.

If you do use a third-party Web server, you'll need configure Zope to access it via CGI, FastCGI, or PCGI (Persistent CGI), not the most efficient ways of Web-server interaction. We configured Zope to work with an Apache server, and this process was a lot more involved than need be, given the ubiquitous nature of Apache. In the future, we'd like to see better support for Apache in Zope.

One area where Zope excels is user management. Zope is designed to manage authentication and user permissions, and outside protocols like RADIUS are fully supported. Users are treated as objects (in a nonsexist way, of course) and assigned roles, such as content author or manager, that basically function as groups. Roles are assigned permissions, which are operations on objects and correspond to traditional permissions (read, write, execute), with the twist that permissions are specific to objects; different objects can provide different permissions. Once you get past Zope's insistence on using different terms to describe some widely used user-management strategies, you'll see how powerful its user-management tools can be.

Most Popular LinuxPlanet Stories