Zope Public License
- 1 year ago
- 0
- 0
Zope 3 | |
---|---|
Тип | Сервер приложений |
Разработчик | Zope Corporation |
Написана на | Python |
Операционная система | Кроссплатформенный |
Первый выпуск | 2004 |
Последняя версия | 3.4.1 ( 22 июня 2010 года ) |
Состояние | Active |
Лицензия | Zope Public License |
Сайт | |
Zope ( англ. Z ope O bject P ublishing E nvironment, среда публикации объектов Zope , произносится [зо́уп]) — объектно-ориентированный сервер приложений , написанный на языке программирования Python . Zope разрабатывается на основе собственной Open Source лицензии ZPL .
Zope (точнее, Zope2) обычно применяется в качестве системы управления содержимым ( CMS ). Для этих целей был создан программный каркас CMF ( англ. Content Management Framework ) — набор библиотек для создания систем публикаций под Zope. В свою очередь на основе CMF была создана система публикаций Plone .
В 1996 году , в то время технический директор , на конференции International Python Conference (IPC) сделал презентацию по теме CGI : «Python and Internet Programming» . Джим, считая CGI очень далёким от совершенства, придумал новый путь для программирование на Python для сети Интернет .
В 1998 году Digital Creations объединила системы Bobo и Principia под маркой Zope и опубликовала их исходный код под лицензией ZPL. Zope 2.0 был выпущен в 1999 году .
В конце 2005 года был выпущен Zope3. Это полностью переработанная версия Zope, которая разрабатывалась на протяжении нескольких лет, и при её разработке учитывался опыт использования Zope2. С выходом Zope3 разработчики получили мощный сервер приложений, с помощью которого стало возможным разрабатывать не только CMS, но и более сложные системы, в частности системы автоматизации бизнес-процессов и документооборота. В январе 2010 года Zope3 был переименован в .
Для долговременно сохраняемых ( англ. persistent ) объектов в Zope традиционно используется объектная база данных ZODB , хотя ничто не мешает использовать и другие средства, например, файловую систему или реляционную базу данных. Да и сама ZODB может использовать в качестве back-end реляционную базу данных при помощи . Кроме того, несколько экземпляров ( англ. instance ) Zope могут работать с одной ZODB посредством .
ZServer является интеграцией сервера приложений Zope с сервером Medusa . ZServer даёт HTTP , FTP , WebDAV , PCGI и удалённый интерактивный доступ Python .
Для удовлетворения поисковых запросов к объектной базе данных в Zope 2 применяется ZCatalog. В ZCatalog-объекте хранятся индексы ( англ. index ) и метаданные ( англ. metadata ). Индексы являются данными, по которым ищут содержимое, а метаданные — копии некоторых полей индексируемых объектов, которые могут быть прочитаны без извлечения самого объекта из базы данных. Результатом поиска является последовательность элементов, называемых брэйнами (от англ. brain — «мозг»). Брэйны действуют по принципу ленивых вычислений , так как они создаются «на лету», по мере потребления результата запроса, и не «будят» настоящие исходные объекты из базы данных .
Zope 3 является набором
программных компонентов
. Компоненты являются объектами с чётко определённой функциональностью и ответственностью, зафиксированной в описаниях
интерфейсов
. Разработанные в рамках Zope технологии
компонентной архитектуры
zope.component
,
zope.interface
,
zope.event
в силу своей обобщённости могут применяться в других программных системах на Python
.
Для разработки веб-приложений одной из основных задач является генерация кода на языках разметки, используемых в WWW . Zope использует для этой цели ( англ. Document Template Markup Language ) и ( англ. Zope Page Templates ). DTML не рекомендуется использовать в новом коде . ZPT основан на XML и состоит из трёх документированных частей :
Веб-приложения часто нуждаются в обработке данных, вводимых пользователем, а построенные на основе веб-технологий
системы управления содержимым
обычно поддерживают редактирование контента через веб (TTW,
англ.
through-the-web
). Для обработки форм Zope 3 предлагает пакеты
zope.formlib
в сочетании с пакетом для описания схемы данных
zope.schema
.
В процессе обработки запроса происходит идентификация и аутентификация пользователя.
Права доступа пользователей Zope 2 предоставляются им на основе правил защиты (security policy, «политика безопасности»). Для авторизации пользователя при доступе к некоторому ресурсу выявляется его
роль
(
англ.
role
) и проверяется, имеется ли у данной роли разрешение (
англ.
permission
) на доступ к ресурсу. Такая система позволяет описывать достаточно тонкие (
англ.
fine-grained
) права доступа и делает Zope сравнительно безопасным
. В Zope 3 предлагаются механизмы аутентификации PAU (
англ.
Pluggable Authentication Utility
— встраиваемая поддержка аутентификации) и авторизации
zope.security
.
Заимствование ( англ. acquisition ) — интересный и достаточно уникальный подход к построению взаимоотношений между объектами, состоящий в совместном использовании поведения на основе отношения вложенности объектов . Заимствование обеспечивает доступ к объектам вышележащих уровней в иерархии обращением к объекту более глубокого уровня. Например, если некоторый объект (документ, изображение, файл и т. п.) расположен в некоторый папке, то он доступен по имени из любых нижележащих папок. Заимствование является одним из важнейших свойств Zope, которое позволяет создавать более простые и наглядные решения, но требует грамотного обращения .