Zope is an object oriented web application server written in the programming language Python. It can be almost fully managed with a web-based user interface.
A Zope website is composed of objects as opposed to files, as is usual with many other web server systems. The advantage of using objects instead to files is that objects:
- combine behavior and data in a more natural way than flat textfiles.
- encourage the use of standard components which take care of one particular part of what makes a web application, allowing for flexibility and good decomposition.
Zope maps URLs to objects using the containment hierarchy of such objects; methods are considered to be contained in their objects as well.
Zope comes with the Zope Object Database (ZODB), which transparently persists (Python) objects in a transactional database.
One particular innovative feature of Zope is its real world use of acquisition, a programming technique orthogonal to inheritance in object oriented programming. In acquisition, objects 'inherit' behavior from their context in a composition hierachy, as opposed their class in a class hierarchy. This allows certain ways to structure source code that are otherwise harder to accomplish, and can encourage application decomponsition. A common use is in structuring the way layout elements are used in a web page.
The Zope website: