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

Николас Петрили — редактор LinuxWorld и InfoWorld. Он также работает в Linux Standard Base. Электронную почту ему можно направлять по адресу nicholas_petreley@infoworld.com

Должен заметить: пришлось потратить немало сил, прежде чем при помощи системы Zope производства компании Digital Creations мне удалось создать хотя бы самое простое приложение.

Зато я воочию убедился в том, что программное обеспечение Zope действительно представляет немалый интерес, поэтому рекомендую обратить и вам на него самое серьезное внимание. Тому, кто хочет посмотреть на работающий сайт, построенный при помощи программных средств Zope, следует набрать адрес appwatch.com/Linux.

Установка Zope и одного-двух модулей расширения для организации доступа Web-приложений к базе данных MySQL прошла без осложнений. После завершения процедуры установки я запустил встроенный Web-сервер Zserver. Программное обеспечение Zope совместимо с популярными Web-серверами (например, с Apache), но проще все же приступать к разработке, используя возможности сервера Zserver, построенного на основе Python.

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

При работе в среде Zope можно использовать средства Python, но большая часть задач успешно решается и при помощи спецификаций шаблонов разметки документов в формате DTML (Document Template Markup Language). Технология DTML в сочетании с языком HTML позволяет быстро создавать код приложений для Web. В какой-то степени такой подход аналогичен применению популярных средств подготовки персональных страниц PHP (Personal Home Page).

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

Управление объектами Zope осуществляется при помощи Web-интерфейса. Это очень удобный интерфейс, и работать с ним приятно. Проектирование программного обеспечения средствами Zope становится интуитивно понятным. И все же освоить интерфейс не так-то просто. Довольно много времени ушло у меня на то, чтобы сообразить, каким образом следует приступать к созданию приложения. Вслед за этим появились и другие вопросы.

Я попытался создать несколько объектов Zope. Один из них обеспечивал соединение с базой данных, а другой отвечал за формирование запросов к базе данных. Но я никак не мог понять, как связать эти объекты в единое целое.

Что вызвало наибольшие затруднения при работе с Zope? Пожалуй, отсутствие подробной документации, в которой было бы описано, с чего начинать. Много информации посвящено внутренней архитектуре Zope и вопросам использования DTML. Но я бы лучше заплатил определенную сумму за учебник, в котором шаг за шагом рассказывается, каким образом следует строить каркас приложения, построенного на основе Web-интерфейса.

Тех, кто работает с Zope уже давно и знает о существовании подобного документа в печатном виде или в Web, очень прошу поделиться этой очень ценной для меня информацией. Я обязательно разгрызу крепкий орешек и расскажу о своих успехах.