Категории программ

Новые программы

Zope

30 декабря, 2013 0

Zope (англ. Zope Object Publishing Environment, среда публикации объектов Zope, произносится “Зоуп”) – объектно-ориентированный сервер приложений, написанный на языке программирования Python. Zope разрабатывается на основе собственной Open Source лицензии ZPL.

Zope (точнее, Zope2) обычно применяется в качестве системы управления содержимым (CMS). Для этих целей был создан программный каркас CMF (англ. Content Management Framework) – набор библиотек для создания систем публикаций под Zope. В свою очередь на основе CMF была создана система публикаций Plone.

Технологии и свойства Zope

Для долговременно сохраняемых (англ. persistent) объектов в Zope традиционно используется объектная база данных ZODB, хотя ничто не мешает использовать и другие средства, например, файловую систему или реляционную базу данных. Да и сама ZODB может использовать в качестве back-end реляционную базу данных при помощи RelStorage. Кроме того, несколько экземпляров (англ. instance) Zope могут работать с одной ZODB посредством ZEO.

ZServer является интеграцией сервера приложений Zope с сервером Medusa. ZServer даёт HTTP, FTP, WebDAV, PCGI и удалённый интерактивный доступ Python.

Для удовлетворения поисковых запросов к объектной базе данных в Zope 2 применяется ZCatalog. В ZCatalog-объекте хранятся индексы (англ. index) и метаданные (англ. metadata). Индексы являются данными, по которым ищут содержимое, а метаданные – копии некоторых полей индексируемых объектов, которые могут быть прочитаны без извлечения самого объекта из базы данных. Результатом поиска является последовательность элементов, называемых брэйнами (от англ. brain – «мозг»). Брэйны действуют по принципу ленивых вычислений, так как они создаются “на лету”, по мере потребеления результата запроса, и не «будят» настоящие исходные объекты из базы данных.

Zope 3 является набором программных компонентов. Компоненты являются объектами с чётко определённой функциональностью и ответственностью, зафиксированной в описаниях интерфейсов. Разработанные в рамках Zope технологии компонентной архитектурыzope.componentzope.interfacezope.event в силу своей обобщённости могут применяться в других программных системах на Python.

Для разработки веб-приложений одной из основных задач является генерация кода на языках разметки, используемых в WWW. Zope использует для этой цели DTML (англ. Document Template Markup Language) и ZPT (англ. Zope Page Templates). DTML не рекомендуется использовать в новом коде. ZPT основан на XML и состоит из трёх документированных частей:

  1. Язык шаблонных атрибутов (Template Attribute Language – TAL);
  2. Синтаксис выражений TAL (Template Attribute Language Expression Syntax – TALES);
  3. Макрорасширение TAL (Macro Expansion Template Attribute Language – METAL).

Веб-приложения часто нуждаются в обработке данных, вводимых пользователем, а построенные на основе веб-технологий системы управления содержимым обычно поддерживают редактирование контента через веб (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, которое позволяет создавать более простые и наглядные решения, но требует грамотного обращения.

Zope

Ссылки

Сайт Zope

Скачать Zope

Веб-серверы , Серверы

Оставить комментарий

*