Zope

Zope (Z Object Publishing Environment) is an object oriented, written in the Python programming language, free web application server with open source code. Zope provides a platform for the implementation of Web applications and is well suited for creating dynamic web presences, as it is aligned in principle on separating the content from the design of the website. The source code of Zope was in parts 1996, 1998 the entire application open source.

  • 3.1 Grok

History

Was founded in 1995 as a joint venture of a merger of several newspapers Digital Creations in Fredericksburg ( Virginia). The first employees were Paul Everitt and Bob Page. Pretty fast other employees such as Jim Fulton were added. In May 1997, the newspaper consortium Digital Creations came from, the partnership Paul Everitt and Bob Page were named, the Software and the employees.

At this time, some companies were already working outside of Digital Creations with their free product Bobo. One of them was Hadar Pedhazur, which also came up at the time on Digital Creations with the desire to become an investor. The talks, however, were not crowned with success, as Hadar saw the future of Digital Creations as a service provider, while Paul Everitt and Bob Page their products, including the Principia Application Server, wanted to sell than proprietary applications. A year later, however, after the success had not been set to the extent hoped for, Hadar came again at Digital Creations, and it was agreed to be a service company to bundle products to a product called Zope and as free publish software.

In November 2004, Zope 3 has been released. It is written almost brand new and only contains the original ZODB object database and the " ZPT template engine ". On January 17, 2010 Zope 3 has been renamed " BlueBream " to clarify the distinction from Zope 2.

With BlueBream an incision was made. Instead backward compatible to stay Zope 2, it was decided to correct the mistakes of the past and to revise the internal structure fundamentally. These new features include a component architecture. A side effect is that many components are now also usable outside of Zope. Currently, both Zope 2 and BlueBream be developed in parallel and active.

Features

Extensibility

The functionality of Zope can be obtained by a large number of freely available extensions, the so-called products (English: Products), needs to be adjusted, for example:

  • Specific object classes, such as bug trackers, newsletter systems or user folder that get their data from LDAP about
  • Connections relational databases
  • Modifications of Zope itself (so-called Monkey Patches)

These extensions are each placed in its own directory in the file system and can be removed by deleting the directory and restart Zope leaves no sticky residue. They will be entitled to the full extent of the Python programming language available, including the integration of written in Python or C libraries.

The products are developed and administered by the now very large user community.

Object database

Basis for many features of Zope 's object database, ZODB, in which the dynamically changing content to be stored ( unless they come from an additional connected relational databases). The ZODB contains all existing objects in a hierarchical tree and forms the basis of the acquisition.

She is very performant and usable regardless of Zope.

Acquisition

A characteristic concept is that of the acquisition, that is inheriting from the object containing them. In this way, properties and methods can be ' inherited ' in an entire sub-tree; this is the most important basis of having " Zope - board means " realized dynamic Internet presences.

Development languages

On development languages ​​Zope provides the Document Template Markup Language ( DTML ), the Python programming language and the Zope Page Templates ( ZPT ). DTML is still used very often, is now in the Zope environment but deprecated. The use of Python and ZPT allows a better separation of presentation and logic and is therefore preferable DTML.

For example, a Python program as an internal Python scripts ( Script (Python) ) have been deposited or as an external method (External Method ) can be integrated. An internal Python script is stored in the object database ZODB and is restricted for security reasons in its functionality. Thus, for example, the access blocked to the file system and allows the object database. An external method is, however, the file system and is integrated via a Zope object. For these methods, there are no access restrictions.

Security

Zope has a security framework based on the so-called roles ( Roles English ) and a detailed definition allows, who where what may. For each object can be determined what role is needed for what type of access; these roles can be assigned to individual users locally to grant them such as access only to a particular subtree.

In addition, the web user does not work as with classical scripting languages ​​( like PHP, Perl, etc. ) in the file system of the server, but in a separate virtual environment. Break out of the latter is only possible if it is desired by the developer. This system prevents access to other information stored on the server and thus makes common attack patterns.

HTTP server

Zope includes the Web server zServer, an enhanced version of the Medusa server written in Python. Another web server is not required, but can be used to run Zope with, for example, an Apache web server.

Scalability

Zope is able to softwareseitigem multithreading. The load distribution of a Zope instance on multiple processors is prevented by a global lock of the Python interpreter. With the help of " Zope Enterprise Objects " ( ZEO ), it is possible that multiple servers access the same database. Such distributed systems are able to take advantage of multiple processors.

Portability

Zope is almost entirely written in Python. Only some speed -critical system parts are written in C. The entire system can thus be potentially executed on all platforms with a python interpreter and a C compiler.

For Linux, Windows, BSD, Mac OS X and Solaris precompiled packages are offered. The packages include Zope and Python.

BlueBream

For several years, a new Zope is developed, first under the name Zope 3 Since 17 January 2010, the development under the name BlueBream continues after the developer 's name Zope 3 felt they were a hindrance to the further development and differentiation from Zope 2. Zope 2 has proven to be a useful framework for web applications, but one or the other idea was the time their weaknesses. For that time Zope was excellent expandable, it was one of the strengths of Zope. Newer technologies such as the Java framework Spring but have shown even greater opportunities for expansion. Extensions were closely tied to Zope, because they could only be integrated by extending Zope base classes in Zope and require a relatively large code for Zope integration. Dev 3 was introduced as a replacement for the component model, in which this is no longer necessary.

Another idea was the development of applications over the web interface. However, it soon became apparent that one so took some disadvantages in purchasing. There were no normal version control systems for the source code are used, the integration of powerful editors was possible, but difficult and the security mechanisms ensured that many Python modules could not be used easily. One advantage was that changes could be tested immediately in the web browser. In BlueBream one can not write more program logic directly through the web interface. Program logic, however, can still be easily tested, since it is no longer coupled with Zope now and can run as a standalone application outside of Zope.

In sum, the changes also ensure that developers are less governed by Zope. This has deterred many developers in the past.

The first stable release (at that time still under the name Zope 3) was published on 6 November 2004. The current version is BlueBream 1.0a0, it corresponds to Zope 3.4.1.

Grok

BlueBream (formerly Zope 3), is in many Zope developers in the criticism to require too much configuration in the form of XML files. In BlueBream much about XML files is configurable and changeable. There must be explicitly specified in the configuration files. In response, some developers have developed Grok that runs on top BlueBream.

Grok leads the DRY principle as a guiding principle. DRY stands for " Do not repeat yourself " (English for " Repeat you do not "). What this means is that everything is to be defined only once. If the configuration is the same in 90 percent of cases, this should not have to be explicitly configured. So can be written with Grok a complex web application that uses just one line XML configuration.

Applications

A known application of Zope is the content management system Plone. Likewise, the program SchoolTool of The Shuttleworth Foundation is developed with Zope 3, and the software development platform Launchpad is based on Zope.

A little less known Open Source CMS based on Zope is DMF, which - although was developed by the developers originally mainly for the research enterprise as for use in medicine - has now found a fairly wide distribution. Its peculiarities are particularly the user-friendly interface as the skills for multimedia publishing.

Less well known is the union content management system union.cms, which is under the GNU General Public License. It was developed on behalf of the United Services Union Verdi, and dissolved in 2003, the proprietary CMS Hyperwave from. Since March 16, 2010 and the website of the DGB is based on a further development of union.cms and so on Zope.

133392
de