Personal tools
You are here: Home iber Blog Zope What is Zope

What is Zope What is Zope

Document Actions
Here is description of Zope found in mailing lists. Author: Terry Hancock.

Zope is the "Z Object Publishing Environment".

It publishes a tree of objects stored in the ZODB which is an object oriented database. Think of it as a monstrous pickle implementation.

Zope folders are a lot like user-defined classes in your application. They contain things, which is why they're called "folders". But basically, from a programming perspective, what they contain are their "attributes" in the class/object jargon (in reality it can be more complicated, some containers use Python container types like dictionary or list as their internal structure).

Of course, "publishes" means "publishes to the web".


So Zope includes an object store, a publisher, and a web server. When the web server receives a request, it asks the publisher to get it, which digs it out of the object store. Then it goes back the other way, back to the requester via the web.

Usually, you run the Zope webserver behind another proxy like Apache, but it is possible to serve a site directly from Zope. I never do that for production, because, Apache, being much more completely tested is a safer bet for not crashing or misbehaving under heavy loads. However, the built-in Zope webserver (I believe it was once called Medusa) is quite convenient for development and testing.


Because Zope publishes Python objects instead of files, they can have much richer structure (e.g. metadata) than a site based on files stored in a filesystem. However, a set of files stored in a filesystem is very much like an object database, so

1) The ZODB is sometimes called the Zope Object FileSystem, which I find a useful idea --- especially since ZOFS has some extra constraints beyond what ZODB requires.

2) You actually can store contents of the ZODB as a filesystem with associated metadata in auxiliary files. I believe this is how the "filesystem storage" option for ZODB works (by default, ZODB lumps all its data into one big container file "Data.fs" -- this is the "filestorage" option).


Zope has also been called a "web application server", because it's relatively easy to write highly-integrated, highly-dynamic sites with it (and overkill to use it for purely static sites).

Objects are defined in such a way that they can be represented as web pages. The publisher has a lot of default behaviors for built-in types and the objects that come with Zope.

Zope "product" developers have the responsibility (and control) over how their objects will appear when published.


If you want to think of it as a "web application server", then basically, Zope is your "operating system", and your site is your "web application software".

Zope also provides some specialized programming language help --- Python scripts that can be edited through the web, and two "Templating Languages" for designing web pages that will have dynamic content. You can think of the templating languages as being similar to PHP or ASP style programming.

But "Zope Zen" says that the serious code should be either in Python scripts or in Python products (on the filesystem, instead of in the ZODB, like scripts). Templates are meant to be simple, simple, simple. But that's a style issue.

This stuff provides the Zope "operating system" with a "shell". And the "Zope Management Interface", which is what you see when you visit the /manage page at a Zope site, is the "window system" or, perhaps more accurately, the "file browser" of that "operating system".

So, in fact, Zope does quite a bit. But it isn't really all that hard to understand. It's just not been well-introduced, because the people explaining it have a tendency to forget that it isn't all obvious, because it seems that way to them, now that they know it.

Thursday, July 07, 2005 in Zope  |  Permalink |  Comments (0)
iber Blog
« May 2019 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Recent entries:
World Plone Day 2009 in Lviv, Ukraine
World Plone Day in Lviv, Ukraine.
Plug & Plone Logo
Plone on Content Technology Vendor map 2008
Plone, SEO and international calls.
Plone skins development
Alfresco vs Plone, is Alfresco the perfect open source ECMS
Plone-dislike keyword proposal
The Plone Blog launched
BusinessWeek Magazine published Best of The New Web Report
Mambo CMS, Mambo foundation and Miro Software
Plone disadvantages, SQL Storage capability
Lviv Photos : St. George Cathedral
Why people choose Drupal over Plone
Zope Hosting and Performance, ZEO
How does the Yahoo Publisher Network compare to Adsense?
How to delete spam in COREBlog
What is Zope
Separate Data.fs files for each Zope instance, cache size
Export an OWL ontology into a working Plone content-type
Python guru Interview - Guido van Rossum
Google job interview at Google Hyderabad
Zope disadvantages
President of Ukraine : Yushchenko speaks to Congress
Connect brain with Sony PlayStation.
Free open source enterprise software stack
MarketWatch: Ukraine's small market draws interest in revolution's wake
How to migrate from phpbb to Plone
Google agrees to acquire Urchin, statistic software.
Content Management Systems (2)
Digital (1)
Google (3)
Internet Marketing (2)
Open Source Software (3)
Plone (13)
Search Engine Optimization (1)
Ukraine (5)
Zope (5)

Powered by Plone