The next generation of Zope, an open-source application server, was released on Monday.
Zope X3 3.0.0 has been written from scratch to improve the architecture of the system. This version has been given the prefix X for "experimental", since it's not backward compatible with Zope 2. Zope X3 is mostly written in Python, with some modules written in C or C++.
The application server, which was made open source by Zope Corporation in 1998, is primarily used for building content management systems — it's the base of various open-source CMS systems including Plone, Silva and Nuxeo CPS. Zope's user-base includes Viacom, Lufthansa, SGI and NASA, according to its Web site. Computer Associates recently announced that it will collaborate with the Zope project.
Stephan Richter, a core developer on Zope, said developers have been working on the application server for the last three years and almost everything has been rewritten at least twice.
Zope X3 has kept the important features of Zope 2, including the Zope Object Database (ZODB), the Zope security mechanism and the object request broker, but the latter two have been written from scratch to use a component architecture, said Richter.
Richter said the rewrite was important as Zope 2 was built primarily using object-oriented techniques such as inheritance, while Zope X3 has taken advantage of newer patterns such as interfaces and component-based design.
Wiping the slate clean
"The main goal was to clean up the architecture," said Richter. "In Zope 2 we only used the inheritance of objects to extend and build Zope, this only takes it so far because objects become unmanageable. Zope X3 has a new component architecture that allows you to extend objects and use interfaces."
Zope developers have also extended the Python programming language so that variable types are specified, rather than being loosely typed, said Richter. He hopes that these changes will eventually be given to the Python project.
Zope X3 has been fully internationalised, so that Web sites based on it can provide locale-specific data to users, including local date and time formats and the local unit of currency.
As Zope X3 is not backward compatible with Zope 2, developers have been working on various projects to ease the migration for Zope 2 users, such as the Five project, which allows users to integrate Zope X3 functionality into Zope 2.
Another project is a standardisation effort -- all those who plan to write a content management framework on top of Zope X3 have agreed to keep to a particular standard, said Richter. This will not only assist users who wish to migrate, but will also allow them to use components from different vendors to work together, something which was not possible in the past.
The next version of Zope, due in January 2005, will be a clean-up of 3.0 and will include new features such as a pluggable authentication service, which will allow you to obtain login data in a more flexible manner, according to Richter.