1.3. Система управления содержимым Plone

Plone — система управления содержимым сайта (CMS), позволяющая строить на ее основе сайты самых различных типов — от простых сайтов-визиток до корпоративных порталов. Одной из отличительных особенностей Plone является возможность как администрирования сайта, так и редактирования его содержимого удаленно, через веб-интерфейс. Обычный пользователь может управлять содержимым сайта и, частично, его отображением без специальных навыков программирования.

Plone построен на основе сервера приложений ZOPE (Z Object Publishing Environment) и framework (Content Management Framework, CMF — Каркас управления содержимым), и многие (но не все) возможности Plone обеспечиваются именно возможностями этих систем.

Plone, Zope, CMF, язык программирования Python разрабатываются в рамках движения по созданию программ с открытым исходным кодом — Open Source (см. http://ru.wikipedia.org/wiki/Свободное_программное_обеспечение).

1.3.1. Версии Zope и Plone

Разработка сервера производится сообществами разработчиков, объединяемых некоммерческой организацией Zope Foundation (http://foundation.zope.org). Целью организации является поддержка и координация как групп, так и отдельных разработчиков продуктов и веб-приложений, технических писателей, интеграторов и т.д. В рамках организации поддерживается несколько проектов, таких как Zope 2, CMF, Plone, Silva, Zope 3.

Разработка Zope развивается в отдельных ветках — Zope 2 и Zope 3. Несмотря на похожесть названия это две совершенно разные разработки, отличающиеся как по архитектуре, так и по приемам созданий приложений. Поскольку архитектура Zope 3 проектировалась с учетом недостатков архитектуры Zope 2, она обладает рядом преимуществ, что в последние годы наблюдается во все более усиливающемся влиянии технологий Zope 3 на процесс совершенствования Zope 2. Для устранения архитектурных различий были созданы соответствующие продукты, позволяющие производить разработку приложений, адаптирующихся к любой из систем. Необходимо отметить, что как Zope 2, так и Zope 3 давно перестали быть только средствами разработки веб-приложений, а превратились в платформы разработки приложений, возможности которых активно используются для создания приложений разных типов с использованием языка программирования Python.

Для Zope 2 и Zope 3, а также и для Python характерным является частое появление новых версий продуктов. Это является отличительным признаком разработки любого программного продукта, создаваемого сообществами программистов в рамках движения Open Source. На момент написания этого пособия последними из реализованных были версии Zope 2.12 и Zope 3.4.

Такое обновление имеет как свои преимущества, так и недостатки. К преимуществам относится быстрое устранение ошибок и постоянное совершенствование системы, как с точки зрения совершенствования кода, так и с точки зрения улучшения функциональности.

К недостаткам прежде всего относится не полная обратная совместимость или ее полное отсутствие между версиями. Не все продукты, разработанные для одной версии, могут быть установлены на другой. Это приводит к тому, что разные версии одной системы представляют собой практически разные приложения. Так версия Plone 2.5, созданная на базе Zope 2.9, и версия Plone 3 на базе Zope 2.10 — это практически разные системы.

[Внимание]Внимание

В этом пособии рассматриваются вопросы администрирования и использования версии Plone 3. Приведенные рецепты и рекомендации в большинстве случаев неприменимы к предыдущим версиям Plone, как и рекомендации из других источников, относящиеся к Plone 2.XX, в большей части неприменимы к рассматриваемой версии.

1.3.2. Сервер приложений Zope

Zope (Z Object Publishing Environment), объектно-ориентированное компонентное программное обеспечение (сервер приложений), предназначенное для создания высокодинамичных, интерактивных веб-сайтов. Сервер содержит набор средств разработки информационных порталов CMF, предоставляющий пользователю возможность быстро создать портал на базе существующего набора сервисов и служб. CMF представляет собой специальный продукт Zope, предоставляющий специальные компоненты и сервисы, упрощающие построение веб-приложений. В свою очередь, с точки зрения классификации систем, Plone представляет собой CMS, также являющуюся продуктом Zope.

Сервер Zope работает почти на всех UNIX-платформах и Windows, может использоваться вместе с наиболее популярными веб-серверами или отдельно, используя собственный встроенный веб-сервер. Zope написан на мощном объектно-ориентированном языке Python и может быть расширен с использованием последнего и языка С++ в случае необходимости использования компонентов с критичной производительностью.

Для расширения возможностей сервера используется стандартная для языка Python технология подключаемых модулей. Эти модули носят название products (продукты). Продукты разрабатываются с встроенными средствами пользовательского интерфейса и имеют внутреннюю систему безопасности, координированную с системой безопасности Zope.

Отличительной особенностью Zope является наличие встроенной объектной базы данных. Наряду с этим возможно использовать в качестве репозитория информационных ресурсов реляционные базы данных, используя соответствующие возможности Zope для интеграции внешних баз данных в объектную структуру. Для Zope разработаны соответствующие продукты, обеспечивающие связь с такими серверами баз данных, как Oracle, Sybase, MySQL, PosgreSQL, обеспечена возможность доступа к реляционным базам по ODBC.

Еще одна особенность, выделяющая Zope среди других серверов приложений, заключается в том, что разработка его с самого начала была тесно привязана не только к объектной модели веб, но и к модели веб-разработки. Сегодня успешная разработка веб-приложений требует участия экспертов в разных предметных областях. В Zope имеется специальный механизм для поддержки такой модели, позволяющий менеджерам сайтов делегировать часть полномочий разработчикам дизайна, баз данных и информационного наполнения.