ZOPE — межплатформенный сервер Web-приложений

Web-узел превращается в Web-приложение, старые технологии (например, сценарии Perl или двоичные модули CGI) уже не позволяют справиться с растущей нагрузкой. Это не значит, что они не могут управлять трафиком, но, пытаясь реализовать крупные коммерческие проекты на базе традиционных Web-технологий, вы получите громоздкий, не поддающийся интеграции и дальнейшему совершенствованию код.

С ростом популярности объектно-ориентированного проектирования и программирования процесс разработки приложений преобразился. Программное обеспечение Z Object Publishing Environment (Zope) компании Digital Creations 2 предназначено для построения сложных динамических приложений для Web и обладает всеми преимуществами систем объектно-ориентированного программирования. Сразу после появления третьей бета-версии пакета Zope 2.2.0 я решил ознакомиться с последними изменениями и дополнениями, внесенными разработчиками Digital Creations в свой продукт.

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

Интерефйс управления является одним из компонентов объектной архитектуры Zope, что обеспечивает удобную совместную работу различных разработчиков

Стандартный синтаксический анализатор XML, входящий в состав пакета, отвечает объектной модели документа DOM (Document Object Model). На рынке программного обеспечения с открытым кодом система Zope соперничает прежде всего с Web-сервером Apache, дополненным модулями сценариев Perl или гипертекстового препроцессора PHP (Personal Home Page). Компания Lutris Technology предлагает очень хороший сервер с открытым кодом Enhydra, предназначенный для обработки приложений Java. Среди конкурентов Zope из числа коммерческих программных пакетов можно отметить платформу Java 2 Enterprise Edition; Windows 2000 Server и IBM WebSphere.

На первый взгляд Zope имеет совершенно определенную область применения: это свободно распространяемый полнофункциональный сервер. Однако, чтобы добиться уровня готовности, присущего основным конкурентам Zope, вам понадобится приобрести пакет Zope Enterprise Option (ZEO), в дополнение к программному коду включающий также консультационные услуги и стоящий от 25 тыс. до 50 тыс. долл. Конечно, коммерческий Web-сервер можно построить и без ZEO, но только при наличии ZEO программное обеспечение Zope будет соответствовать стандартам корпоративного сервера приложений, установленным продуктами Sun, IBM и Microsoft. Интересно, что соответствующие решения этих производителей можно купить гораздо дешевле, причем все они поддерживают языки и конструкции, лучше работающие на различных платформах. Эти изъяны глубокими царапинами проступают на отполированном зеркале Zope.

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

Трансляция языка Python осуществляется при помощи интерпретатора, поэтому по производительности Zope заметно уступает серверам приложений C/C++ (например, Microsoft Internet Information Server, IIS), а также серверам, предназначенным для программ, которые написаны на разных языках (в частности, IBM WebSphere). Zope позволяет добиться производительности, присущей Java и Visual Basic, однако нужную степень масштабируемости в случае использования нескольких серверо можно будет получить только при помощи пакета ZEO. Трудно оправдать затраты на обучение разработчиков малоизвестному языку, если покупка решений на базе Java, JavaScript, C/C++ и Visual Basic обойдется покупателю значительно дешевле приобретения ZEO.

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


Zope 2.2

Zope — очень мощный межплатформенный сервер Web-приложений, построенный на основе компонентов с открытым кодом. В своем классе данный продукт легко мог бы завоевать первенство, если бы для эффективного управления несколькими серверами не требовалось приобретать дорогостоящий пакет корпоративных расширений.
Достоинства: полностью открытый код; эффективное управление файловыми объектами; широкий набор поддерживаемых платформ
Недостатки: высокая стоимость пакета корпоративных расширений; язык Python и архитектура Zope к настоящему моменту не получили широкого распространения и требуют серьезного изучения
Цена: ядро сервера Zope распространяется бесплатно, пакет корпоративных расширений ZEO стоит от 25 тыс. до 50 тыс. долл.
Разработчик: Digital Creations 2, www.digicool.com
Платформы: Windows NT 4.0, Linux, Solaris 2.6