Введение
Фреймворк серверного программного обеспечения с открытым исходным кодом, платформа для серверов приложений.
an application server platform
Zope – это семейство бесплатных и открытых веб-серверов приложений, написанных на Python, и связанное с ними онлайн-сообщество. Zope расшифровывается как "Z Object Publishing Environment" и была первой системой, использовавшей широко распространенную методологию публикации объектов для веб. Zope называют "killer app" для Python, приложением, которое помогло привлечь внимание к этому языку. За последние несколько лет сообщество Zope создало несколько дополнительных веб-фреймворков с различными целями и принципами, но объединенных общей философией, участниками и исходным кодом. Zope 2 по-прежнему является самым распространенным из этих фреймворков, во многом благодаря системе управления контентом Plone, работающей на Zope 2. BlueBream (ранее известная как Zope 3) менее распространена, но лежит в основе нескольких крупных сайтов, включая Launchpad. Grok был разработан как более удобный для программистов фреймворк, "Zope 3 для начинающих", а в 2009 году Pyramid приобрела популярность в сообществе Zope как минималистичный фреймворк, основанный на принципах Zope.
История
Корпорация Zope была основана в 1995 году в Фредериксбурге, штат Вирджиния, под названием Digital Creations, как совместное предприятие с InfiNet (совместное предприятие газетной сети). Компания разработала движок для размещения объявлений в Интернете. В 1997 году компания стала независимой частной компанией. Разработкой программного обеспечения в компании руководит технический директор Джим Фултон. PythonLabs, создатели Python, вошли в состав компании в 2000 году (основатель Python Гидо ван Россум покинул Zope Corp в 2003 году). То, что сейчас известно как Zope 2, началось с объединения трех отдельных программных продуктов – Bobo, Document Template и BoboPOS – в сервер приложений Principia. По требованию своего крупнейшего инвестора, Opticality Ventures, Principia была повторно выпущена как свободное программное обеспечение под названием Zope в 1998 году. Bobo, а значит и Zope, было первым решением для публикации веб-объектов. "Zope" и "голубой лещ" – названия рыбы вида Ballerus ballerus.
Фонд "Зопе"
Zope Foundation – это организация, которая способствует развитию платформы Zope, поддерживая сообщество разработчиков и сопровождающих соответствующее программное обеспечение. Сообщество включает в себя как участников, вносящих вклад в разработку программного обеспечения с открытым исходным кодом, документации и веб-инфраструктуры, так и организации и компании, использующие эту платформу. Zope Foundation управляет веб-сайтами zope.org – инфраструктурой для совместной разработки с открытым исходным кодом.
Зоп 2
Веб-сайт Zope обычно состоит из объектов, хранящихся в базе данных Zope Object Database, а не из файлов в файловой системе, как это принято у большинства веб-серверов. Это позволяет пользователям использовать преимущества объектно-ориентированных технологий, такие как инкапсуляция. Zope сопоставляет URL-адреса с объектами, используя иерархию контейнеров этих объектов; методы также рассматриваются как содержащиеся в своих объектах. Данные могут храниться и в других базах данных, или в файловой системе, но ZODB является наиболее распространенным решением. Zope предоставляет два механизма для создания HTML-шаблонов: Document Template Markup Language (DTML) и Zope Page Templates (ZPT). DTML – это язык, основанный на тегах, который позволяет реализовывать простые скрипты в шаблонах. DTML поддерживает включение переменных, условия и циклы. Однако DTML может быть проблематичным: теги DTML, перемежающиеся с HTML, приводят к созданию невалидных HTML-документов, и его использование требует осторожности при включении логики в шаблоны, чтобы сохранить читаемость кода. Многие ведущие разработчики Zope не рекомендуют использовать DTML. ZPT – это технология, которая решает проблемы DTML. Шаблоны ZPT могут быть либо корректными XML-документами, либо HTML-документами, в которых вся специальная разметка представлена в виде атрибутов в пространстве имен TAL (Template Attribute Language). ZPT предлагает очень ограниченный набор инструментов для условного включения и повторения XML-элементов. Следовательно, шаблоны обычно довольно просты, а основная логика реализуется на языке Python. Одним из значительных преимуществ шаблонов ZPT является то, что их можно редактировать в большинстве графических HTML-редакторов. ZPT также обеспечивает прямую поддержку интернационализации. Zope 2 является основой системы управления контентом Plone, а также системы планирования ресурсов предприятия с открытым исходным кодом ERP5.
Блюбрейм
BlueBream — это переработка веб-сервера Zope 2, выполненная разработчиками Zope. Изначально он создавался под названием "Zope 3", но существование двух несовместимых фреймворков с одинаковым именем приводило к путанице, и в январе 2010 года Zope 3 был переименован в "BlueBream". BlueBream распространяется на условиях лицензии Zope Public License и, следовательно, является свободным программным обеспечением. Zope 2 доказал свою эффективность как платформа для разработки веб-приложений, но в процессе использования выявились некоторые недостатки. Например, создание продуктов для Zope 2 требует копирования большого объема шаблонного, так называемого "магического" кода, который необходимо включать обязательно, а встроенный интерфейс управления сложно модифицировать или заменить. Zope 3 представлял собой переработку программного обеспечения, направленную на устранение этих недостатков с сохранением преимуществ Zope, благодаря которым он завоевал популярность. BlueBream основан на компонентной архитектуре, которая позволяет легко комбинировать программные компоненты различного происхождения, написанные на Python. Хотя изначально он задумывался как замена Zope 2, компонентная архитектура Zope была портирована обратно в Zope 2, начиная с версии Zope 2.8. Многие платформы Zope, такие как Plone, также проходят через аналогичный процесс постепенной переработки. Первый производственный релиз нового программного обеспечения, Zope X3 3.0.0, был выпущен 6 ноября 2004 года.
История
Проект Zope 3 начался в феврале 2001 года как попытка разработать новую версию Zope, практически полностью переписанную, с целью сохранить успешные возможности Zope 2 и одновременно устранить некоторые из её недостатков. Целью было создание более удобной и гибкой платформы для разработки веб-приложений, чем Zope 2. Проект начался с разработки архитектуры компонентов, позволяющей структурировать код в небольшие, компонуемые единицы с интроспективными интерфейсами. Интерфейсы поддерживаются пакетом интерфейсов, чтобы предоставить языку Python функциональность явно объявленных интерфейсов. Первый производственный релиз программного обеспечения, Zope X3, был выпущен 6 ноября 2004 года. В январе 2010 года Zope 3 был переименован в BlueBream. Спринты – это интенсивные сессии разработки, во время которых программисты, часто из разных стран, собираются в одном помещении и работают вместе в течение нескольких дней или даже недель. В ходе спринтов используются различные практики, заимствованные из гибких методологий разработки программного обеспечения, такие как парное программирование и разработка через тестирование. Помимо разработки программного обеспечения, спринты полезны для личных встреч разработчиков, работающих в разных географических точках, и привлечения новых участников к проекту. Они также служат платформой для обмена опытом между участниками. BlueBream считается стабильным фреймворком, используемым в производственных проектах по всему миру, в частности, Launchpad.
Набор инструментов Zope
В результате разработки Zope 3 / BlueBream появилось множество независимых пакетов Python, которые используются и разрабатываются в составе BlueBream. Хотя многие из них пригодны для использования вне BlueBream, некоторые – нет. Проект Zope Toolkit (ZTK) был начат, чтобы определить, какие пакеты можно использовать независимо от BlueBream, и повысить их повторное использование. Таким образом, Zope Toolkit служит основой для фреймворков Zope. Zope 2.12 – первый релиз веб-фреймворка, построенного на Zope Toolkit, а Grok и BlueBream планировали выпустить релизы на основе ZTK в 2010 году.
Грок
В 2006 году проект Grok был начат группой разработчиков Zope 3, которые стремились сделать технологию Zope 3 более гибкой в применении и более понятной для начинающих. С тех пор Grok регулярно выпускает новые релизы, а его ключевые технологии (Martian, grokcore.component) также находят применение в других проектах, основанных на Zope 3 и Zope 2.
Зоп 4
В конце 2017 года началась разработка Zope 4. Zope 4 является преемником Zope 2.13 и содержит множество изменений, не обеспечивающих обратную совместимость с Zope 2.
Зоп 5
Zope 5 вышел в 2020 году.
Известные программы с использованием Zope
SchoolTool — это студенческая информационная система с открытым исходным кодом, разработанная на базе Zope. Plone — это система управления контентом с открытым исходным кодом, разработанная на базе Zope.