SAN MATEO (07/17/2000) - Business Web sites, particularly those related to commerce, have rapidly evolved from static pages to personalized, database-driven, dynamic content sites. When a Web site becomes a Web application, old techniques (such as Perl scripts and CGI binaries written in C) crack under the pressure. It's not that they can't handle the traffic, but when you apply traditional Web techniques to large commercial projects, you get unwieldy, unmaintainable, and poorly integrated code -- and an application that never makes it past 1.0.
The advent of OOP (object-oriented programming) and design redefined mainstream application development. Digital Creations 2 Inc.'s Z Object Publishing Environment, Zope for short, brings the benefits of OOP to large, dynamic Web applications. With the third beta of Zope 2.2.0 just out, I decided to take a look at Digital Creations' latest effort, which should appear in July.
Zope is a massive collection of components written in Python, an object-oriented scripting language. Through its various services, objects, and extensions, Zope supplies developers with a persistent object store, a transactional database, HTTP and FTP services, integrated security, SQL database connectivity, and collaborative development.
A DOM-compliant (Document Object Model) XML parser is standard as well. In open source, Zope competes primarily with the Apache Web server, extended by Perl or PHP (Personal Home Page, a hypertext preprocessor), scripting modules. Lutris Technology offers a compelling open-source Java application server called Enhydra. Zope's closest commercial rivals are Java 2, Enterprise Edition; Windows 2000 Server; and IBM WebSphere.
At first blush, Zope appears to have a decisive edge: It is a full-featured server that's absolutely free. However, to equip Zope with the enterprise availability and reliability features of its commercial counterparts, you must purchase the Zope Enterprise Option (ZEO), a combination of consulting and code that costs from US$25,000 to $50,000. It is possible to build a commercial site without ZEO, but only with ZEO can Zope live up to the enterprise application server standards set by the likes of Sun, IBM, and Microsoft. These commercial solutions can be had for far less than the cost of ZEO and all use more portable languages and skills. That puts some deep scratches in Zope's otherwise polished presentation.
Zope's practical benefits derive from its dedication to the precepts of OOP.
Done right, a Zope application is a fabric of small purpose-specific Python objects. Most of the sweat is in the design. Once you have your object hierarchy mapped out, it is a simple matter to carve up the work among your team.
The dark side of Zope's full tilt OOP approach will show itself to any shop that isn't already doing object-oriented work. If your developers are now knee-deep in UML (Unified Modeling Language), an OOP design paradigm, they'll be thrilled with Zope. Any properly modeled application practically writes itself in Python, and Zope is the ideal environment for hosting Python applications. If OOP and UML are Greek to your staff, Zope's waters will prove too deep.
I had no trouble running test applications and code I downloaded from the Zope community Web site (www.zope.org). The Web-based administrative interface makes quick work of mapping Web URLs to Zope object hierarchies.
The Zope applications I built for testing ran without modification across my Windows and Linux test servers. But when I tried to link the servers together, I quickly hit the scalability and reliability limits of Zope without ZEO. As a matter of design, I would not attempt to create a commercial Web application without such important features as shared database access, load balancing, and fail-over.
Zope is a great lesson in pure object-oriented programming. For applications that need not scale beyond a single server, you cannot beat Zope's cost (free) and capabilities. The comparatively high cost of Zope's enterprise feature set, however, coupled with the time and expense of training developers on a very cool but little-used language, makes Zope seem less special in the crowded application server market.
Tom Yager is an InfoWorld senior analyst. He can be reached via email@example.com.
THE BOTTOM LINE: BETA
Zope, Version 2.2, Beta 3
Business Case: Zope is a powerful cross-platform Web application server built entirely with open-source components. Zope might win hands down in its class were it not for the expensive enterprise option needed to effectively run multiple servers.
Technology Case: Using Zope requires proficiency in the cool, quirky, and underused Python programming language. Zope and Python raise object-oriented technique to new heights. They create uncommon opportunities for collaboration and reuse in large projects, but the learning period for traditional (procedural) programmers is immense.
+ 100 percent open source
+ Handles persistent objects well
+ Broad platform support
- Costly enterprise option
- Python language and Zope architecture are not widely used and tough to masterCost: Core Zope server is free; ZEO enterprise option is $25,000 to $50,000Platform(s): Windows NT 4.0, Solaris 2.6, LinuxShipping: July 2000Digital Creations 2 Inc., Fredericksburg, Va.; (888) 344-4332; www.digicool.com.