Personal tools
You are here: Home Zope
Document Actions

Zope

by Nicolas Bossut last modified 2007-03-13 15:23

Zope is an open source application server for building content management systems, intranets, portals, and custom applications. The Zope community consists of hundreds of companies and thousands of developers all over the world, working on building the platform and Zope applications.

Excerpts of Philipp VON WEITERSHAUSEN, Web Component Development with Zope 3, 2° ed., Dresden, 2007 (Buy the book)

The full chapter is available on Springer website

Copyright © Springer

Plone is build on top of Zope and the Zope Content Management Framework. Zope and the CMF constitute the guts of many Plone components.

What is Zope ?

Zope is a collection of free software jointly developed by a large community of software developers that you can use in whole or in part to manage complexity in gluing software components together, securely publish objects on the web and other systems and make it easy to do Quality Assurance.

Zope is :

  • Philipp von Weitershausena collection of free software : Zope is not just a web application server product, it is also a large collection of mostly web-related Python software. It is also freely  distributable under the Zope Public License and maybe modified and improved by anyone. This increasingly successful concept is called Open source.
  • jointly developed by a large community of software developers : When Zope Corporation opened Zope 2's source code to the public, the development process was also encourage contributions from other developers. Zope 3 is a pure community effort from the beginning,  with the majority of contributions coming from a community of developers around the globe. The benefits for the single developers, the whole community as well as the quality of the software have proven to be enormous.
  • that you can use in whole or in part : The web application server product is modular and its parts can be used independently from Zope.
  • to manage complexity in gluing software components together : There is a demand for web-based applications to be more complex. This can be a time consuming challenge to many applications. Zope solves this problem elegantly by separating activities into many different components. The way these components are then "glued together" determines the behavior of the overall application. Secondly, complex applications require a lot of planning and resources. Zope 3's Component Architecture allows the responsibilities for components to be divided across a team. Zope is an excellent platform for collaborative development.  Thirdly, refactoring is easy because only the components needing refactoring are worked on. One example is the customization of presentation and layout components, work can be carried out on HTML pages and CSS style sheets, while the underlying software components are not touched.
  • securely publish objects on the web and other systems : Zope's main focus is to allow people to manage objects that are published on the web as part of a larger application, not just a static website. Zope values security very highly. Compliance to international IT security norms is a major part of the Zope 3 philosophy. Zope 3 is undergoing a development-concurrent examination process run by official IT security agency in Germany. As a result, the Common Criteria Certificate (ISO-15854), a security certificate accepted in Europe, North America and many other countries, will be issued to Zope.
  • and make it easy to do Quality Assurance : The developers of Zope 3 have enforced a high level of quality during development. Zope is tested by several thousand of automated tests; any modifications need to assure that still pass, any feature needs to be covered by new tests. This ensures the quality of Zope and makes it a great platform to do quality assurance with.

Zope's Features

It is Zope's goal to make the web application developer's life easier. Therefore Zope provides as much of the application of the "application" as possible. The developer only has to link the component together and customize and extend Zope's features as needed. The following is an overview of Zope's major features:

  • Component Architecture. Zope 3 is a collection of software components. Components are objects with a clear understanding of their functionality and responsibility. Describing this in a formal way is the role of interfaces, a concept introduced by the Component Architecture. With the Component Architecture it is then possible to group components together to form a greater piece of software : the application.
  • Objects database. One of the strengths of Zope is the Zope Object Database (ZODB) which stores data as objects. since Zope is all about object publishing, it makes a sense to store the data as objects, too.
  • HTML / XML templating. For decent web development, it is important to have an easy and productive way of producing HTML and other XML markup. Zope uses Zope Page Templates (ZPT), an XML templating system. This system retains the template as a well-formed XML document and, apart from a few namespaced tags and elements, also as a valid document as far as the original XML schema is concerned. 
  • Form generation and validation. Many web applications need to process data that is entered through browser forms. Since the construction of a form in HTML and the validation of the user's input data is not only tedious but quite repetitive, Zope's form library can do both for you according to your content's data schema.

  • Internationalization. Zope software is used all over the world and need to support different language and locale-specific date and number formatting.
  • Security. Zope allows for very fine-grained security checks. The publishing and storage mechanism is objects-centric and so is the security system. Both the security policy and the authentication system are pluggable and allow the modeling of a flexible security system.
  • Cataloging. Storing content is one thing, finding and retrieving content is another. Zope has cataloging and indexing machinery that can make data stored in Zope easily searchable.
  • Testing. Zope 3 puts a strong emphasis on testing and software maturity. Its own source code contains over 5000 automated tests that ensure its stability even when big changes to the code base are introduced. These include low-level unit tests as well as integration tests and functional, HTTP-based tests. Zope has also taken part in the propagation and improvement of innovative ways of testing such as doctests. Doctests provide developer documentation in forms of automated tests.
  • Playing well with others. Zope has inspired Python technologies such as new style classes, the WSGI specification, doctests and the datetimes module. It also reuse code from other Python projects such as Twisted, pytz, docutils and wwwsearch. Zope has in return contributed code and concepts back to these projects.

More information

Source

http://www.zeapartners.org/zope