Zope

Перевод статьи ZopeArchitecture выполнен Олегом Бройтманом и Дмитрием Ишуткиным

Гибкая компонентная архитектура Zope позволяет создавать решения для самых разнообразных проблем. Zope состоит из компонент, которые совместно создают web-архитектуру.

Диаграмма архитектуры Zope

Компоненты Zope

Zope Core

В "сердце" Zope находится ORB (object request broker), а также механизмы, обеспечивающие поиск (ZCatalog), безопасность, коллективную работу и разделение информации.

ZServer

ZServer предоставляет гибкий механизм связи, поддерживая протоколы HTTP, FTP, XML-RPC, FastCGI и PersistentCGI. Zope может быть запущен с ZServer, причем можно использовать ZServer совместно с уже существующим WWW сервером; или же Zope можно запустить из-под существующего WWW сервера в режиме PCGI (однопоточный сервер PersistentCGI).

Object Database (ZODB)

Объектно-ориентированная база Zope хранит объекты (именно объекты в смысле Zope, то есть сериализованные экземпляры классов); сама ZODB написана объектно-ориентированно, то есть как набор деревьев классов. В ZODB можно произвольно менять класс StorageManager - хранилище. Стандартное хранилище FileStorage хранит данные в файле Data.fs, но можно использовать альтернативные классы - SQLStorage или BerkeleyStorage. ZODB поддерживает атомарные операции (транзакции), неограниченный undo (только с хранилищем FileStorage), приватные Версии, и масштабируется до гигабайтов хранимых данных. Отдельный механизм ZEO (Zope Enterprise Option) позволяет повысить надежность и масштабируемость путем кластеризации.

Интеграция с реляционными СУБД

Zope имеет уровень абстракции ZSQL, позволяющий легко интегрировать систему с SQL серверами, будь то Oracle, PostgreSQL, MySQL или ODBC.

Продукты Zope

Продукты - компоненты, написанные программистом на Питоне - позволяют дополнять Zope новыми типами объектов. Например, компонент (назовем его условно Poll) для создании на сайте голосовалок.

ZClasses

Z-Классы - это механизм программирования "мышкой", программирование без программирования. Z-Классы не требуют знания программирования, и в то же время позволяют создавать новые типы данных через web. Созданные программистом Z-Классы легко распространяются и устанавливаются.