Zope: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
imported>VitalikBot
м Добавление новых значений в {{Cf}}
 
imported>Alex NB OT
м унификация языковых шаблонов
 
Строка 1: Строка 1:
{{Cf|zopė}}
{{Карточка программы
|name                  = Zope 2
|logo                  =
|screenshot            = Zope-screenshot.png
|caption                = Интерфейс управления Zope в окне веб-браузера.
|author                =
|developer              = Zope Corporation
|genre                  = [[Сервер приложений]]
|programming_language  = [[Python]]
|user_interface        =
|language              =
|operating_system      = [[Кроссплатформенное программное обеспечение|Кроссплатформенный]]
|released              = {{start date|1998}}
|platform              =
|latest_release_version = 2.13.16
|latest_release_date    = [[11 августа]] [[2012 год]]а
|latest_preview_version =
|latest_preview_date    =
|latest_rc_version      =
|latest_rc_date        =
|latest_beta_version    =
|latest_beta_date      =
|latest_alpha_version  =
|latest_alpha_date      =
|status                = Active
|license                = [[Zope Public License]]
|website                = https://archive.today/20130113124015/http://zope2.zope.org/
}}
{{Карточка программы
|name                  = Zope 3
|logo                  =
|screenshot            =
|caption                =
|author                =
|developer              = Zope Corporation
|genre                  = [[Сервер приложений]]
|programming_language  = [[Python]]
|user_interface        =
|language              =
|operating_system      = [[Кроссплатформенное программное обеспечение|Кроссплатформенный]]
|released              = {{start date|2004}}
|platform              =
|latest_release_version = 3.4.1
|latest_release_date    = [[22 июня]] [[2010 год]]а
|latest_preview_version =
|latest_preview_date    =
|latest_rc_version      =
|latest_rc_date        =
|latest_beta_version    =
|latest_beta_date      =
|latest_alpha_version  =
|latest_alpha_date      =
|status                = Active
|license                = [[Zope Public License]]
|website                = http://www.zope.org/
}}
'''Zope''' ({{lang-en|'''Z'''ope '''O'''bject '''P'''ublishing '''E'''nvironment, среда публикации объектов Zope}}, произносится [зо́уп]) — [[объектно-ориентированное программирование|объектно-ориентированный]] [[сервер приложений]], написанный на языке программирования [[Python]]. Zope разрабатывается на основе собственной [[открытое программное обеспечение|Open Source]] лицензии [[Zope Public License|ZPL]].


= {{-en-}} =
Zope (точнее, Zope2) обычно применяется в качестве [[система управления содержимым|системы управления содержимым]] ([[система управления содержимым|CMS]]). Для этих целей был создан [[программный каркас]] [[CMF]] ({{lang-en|Content Management Framework}}) — набор библиотек для создания систем публикаций под Zope. В свою очередь на основе [[CMF]] была создана система публикаций [[Plone]].


=== Морфологические и синтаксические свойства ===
== История ==
{{сущ en|слоги={{по-слогам|zope}} }}
В [[1996 год]]у [[Фултон, Джим|Джим Фултон]], в то время технический директор [[Digital Creations]], на конференции International Python Conference (IPC) сделал презентацию по теме [[CGI]]: «Python and Internet Programming»<ref>[http://www.python.org/workshops/1996-06/agenda.html CGI: Python and Internet Programming] {{webarchive|url=https://web.archive.org/web/20120702150545/http://www.python.org/workshops/1996-06/agenda.html |date=2012-07-02 }}</ref>. Джим, считая CGI очень далёким от совершенства, придумал новый путь для программирование на Python для сети [[Интернет]]<ref name="blueream_docs_intro">{{Cite web |url=http://bluebream.zope.org/doc/1.0/introduction.html |title=Introduction — BlueBream documentation |access-date=2010-06-30 |archive-date=2010-01-22 |archive-url=https://web.archive.org/web/20100122133319/http://bluebream.zope.org/doc/1.0/introduction.html |url-status=dead }}</ref>.


=== Произношение ===
В [[1998 год]]у Digital Creations объединила системы Bobo и Principia под маркой Zope и опубликовала их исходный код под лицензией ZPL. Zope 2.0 был выпущен в [[1999 год]]у{{sfn|Weitershausen|2007|p=10}}.
{{transcription|}}


=== Семантические свойства ===
В конце 2005 года был выпущен Zope3. Это полностью переработанная версия Zope, которая разрабатывалась на протяжении нескольких лет, и
{{илл|Abramis_ballerus.jpg}}
при её разработке учитывался опыт использования Zope2. С выходом Zope3 разработчики получили мощный сервер приложений, с помощью которого стало возможным разрабатывать не только CMS, но и более сложные системы, в частности системы автоматизации бизнес-процессов и документооборота. В январе 2010 года Zope3 был переименован в [[BlueBream]]<ref name="blueream_docs_intro" />.


==== Значение ====
== Технологии и свойства ==
# {{ихтиол.|en}} [[синец]]


==== Синонимы ====
=== Объектная база данных ZODB ===
# [[Abramis ballerus]]
{{main|ZODB}}
Для долговременно сохраняемых ({{lang-en|persistent}}) объектов в Zope традиционно используется объектная база данных [[ZODB]]<ref>[http://wiki.zope.org/zope2/ZODBZopeObjectDatabase ZODB (Zope Object DataBase)] {{webarchive|url=https://web.archive.org/web/20120722121331/http://wiki.zope.org/zope2/ZODBZopeObjectDatabase |date=2012-07-22 }}</ref>, хотя ничто не мешает использовать и другие средства, например, файловую систему или реляционную базу данных. Да и сама ZODB может использовать в качестве back-end реляционную базу данных при помощи [[RelStorage]]<ref>{{Cite web |url=http://pypi.python.org/pypi/RelStorage/ |title=RelStorage |access-date=2012-07-13 |archive-date=2013-11-26 |archive-url=https://web.archive.org/web/20131126171457/https://pypi.python.org/pypi/RelStorage |url-status=live }}</ref>.
Кроме того, несколько экземпляров ({{lang-en|instance}}) Zope могут работать с одной ZODB посредством [[ZEO]]<ref>[http://wiki.zope.org/zope2/ZEOZopeEnterpriseObjects ZEO (Zope Enterprise Objects)] {{webarchive|url=https://web.archive.org/web/20120807002301/http://wiki.zope.org/zope2/ZEOZopeEnterpriseObjects |date=2012-08-07 }}</ref>.


==== Антонимы ====
=== ZServer ===
ZServer является интеграцией сервера приложений Zope с сервером [[Medusa]]. ZServer даёт [[HTTP]], [[FTP]], [[WebDAV]], [[PCGI]] и удалённый интерактивный доступ Python<ref>[http://svn.zope.org/Zope/trunk/src/ZServer/README.txt?rev=96262&view=markup ZServer README.txt] {{webarchive|url=https://web.archive.org/web/20120129150440/http://svn.zope.org/Zope/trunk/src/ZServer/README.txt?rev=96262&view=markup |date=2012-01-29 }}</ref>.


==== Гиперонимы ====
=== Каталог объектов ZCatalog ===
# [[bream]]
Для удовлетворения поисковых запросов к объектной базе данных в Zope 2 применяется ZCatalog. В ZCatalog-объекте хранятся [[индекс (базы данных)|индексы]] ({{lang-en|index}}) и [[метаданные]] ({{lang-en|metadata}}). Индексы являются данными, по которым ищут содержимое, а метаданные — копии некоторых полей индексируемых объектов, которые могут быть прочитаны без извлечения самого объекта из базы данных. Результатом поиска является последовательность элементов, называемых брэйнами (от {{lang-en|brain}} — «мозг»). Брэйны действуют по принципу [[ленивые вычисления|ленивых вычислений]], так как они создаются «на лету», по мере потребления результата запроса, и не «будят» настоящие исходные объекты из базы данных<ref>{{Cite web |url=http://plone.org/documentation/manual/developer-manual/indexing-and-searching/introduction-to-zcatalog/ |title=Introduction to ZCatalog |access-date=2012-07-27 |archive-url=https://web.archive.org/web/20121222083322/http://plone.org/documentation/manual/developer-manual/indexing-and-searching/introduction-to-zcatalog/ |archive-date=2012-12-22 |url-status=dead }}</ref>.


==== Гипонимы ====
=== Компонентная архитектура ZCA ===
Zope 3 является набором [[Компонент (программирование)|программных компонентов]]. Компоненты являются объектами с чётко определённой функциональностью и ответственностью, зафиксированной в описаниях [[Интерфейс (объектно-ориентированное программирование)|интерфейсов]]. Разработанные в рамках Zope технологии [[компонентная архитектура|компонентной архитектуры]] <code>zope.component</code>, <code>zope.interface</code>, <code>zope.event</code> в силу своей обобщённости могут применяться в других программных системах на Python{{sfn|Weitershausen|2007|p=7}}<ref>{{Cite web |url=http://www.muthukadan.net/docs/zca.html |title=Baiju M, A Comprehensive Guide to Zope Component Architecture |access-date=2012-07-28 |archive-date=2014-06-24 |archive-url=https://web.archive.org/web/20140624223812/http://muthukadan.net/docs/zca.html |url-status=dead }}</ref>.


=== Родственные слова ===
=== Система шаблонов для HTML/XML ===
{{родств-блок||
Для разработки веб-приложений одной из основных задач является генерация кода на языках разметки, используемых в [[Всемирная паутина|WWW]]. Zope использует для этой цели [[DTML]] ({{lang-en|Document Template Markup Language}}) и [[ZPT]] ({{lang-en|Zope Page Templates}}). DTML не рекомендуется использовать в новом коде<ref>{{Cite web |url=http://docs.zope.org/zope2/zope2book/DTML.html |title=Zope 2 documentation, Basic DTML |access-date=2012-08-04 |archive-date=2012-04-23 |archive-url=https://web.archive.org/web/20120423081950/http://docs.zope.org/zope2/zope2book/DTML.html |url-status=dead }}</ref>. ZPT основан на XML и состоит из трёх документированных частей<ref>{{Cite web |url=http://www.intuit.ru/department/pl/python/ |title=Язык программирования Python, Разработка Web-приложений на Интуит.ру |access-date=2012-07-28 |archive-date=2012-08-06 |archive-url=https://web.archive.org/web/20120806075850/http://www.intuit.ru/department/pl/python/ |url-status=live }}</ref>:
|существительные=
* Язык шаблонных атрибутов (Template Attribute Language — [[:en:Template Attribute Language|TAL]]{{ref|en}}),
|прилагательные=
* Синтаксис выражений TAL (Template Attribute Language Expression Syntax — [[:en:TALES|TALES]]{{ref|en}}),
|глаголы=
* Макрорасширение TAL (Macro Expansion Template Attribute Language — [[:en:METAL|METAL]]{{ref|en}}).
|наречия=
 
}}
=== Работа с веб-формами ===
Веб-приложения часто нуждаются в обработке данных, вводимых пользователем, а построенные на основе веб-технологий [[Система управления содержимым|системы управления содержимым]] обычно поддерживают редактирование контента через веб (TTW, {{lang-en|through-the-web}}). Для обработки форм Zope 3 предлагает пакеты <code>zope.formlib</code> в сочетании с пакетом для описания схемы данных <code>zope.schema</code>.{{sfn|Weitershausen|2007|p=7}}
 
=== Разграничение прав доступа ===
В процессе обработки запроса происходит идентификация и аутентификация пользователя.
Права доступа пользователей Zope 2 предоставляются им на основе правил защиты (security policy, «политика безопасности»). Для авторизации пользователя при доступе к некоторому ресурсу выявляется его ''роль'' ({{lang-en|role}}) и проверяется, имеется ли у данной роли разрешение ({{lang-en|permission}}) на доступ к ресурсу. Такая система позволяет описывать достаточно тонкие ({{lang-en|fine-grained}}) права доступа и делает Zope сравнительно безопасным<ref>http://docs.zope.org/zope2/zope2book/Security.html {{Wayback|url=http://docs.zope.org/zope2/zope2book/Security.html |date=20120422142947 }} Zope 2 documentation, Users and Security</ref><ref>[http://zope2.zope.org/about-zope-2/six-reasons-for-using-zope/zope-is-secure/ Zope is very secure — анализ на основе CVE database (http://nvd.nist.gov), Jan Ulrich Hasecke] {{webarchive|url=https://web.archive.org/web/20120715054918/http://zope2.zope.org/about-zope-2/six-reasons-for-using-zope/zope-is-secure |date=2012-07-15 }}</ref>. В Zope 3 предлагаются механизмы аутентификации PAU ({{lang-en|Pluggable Authentication Utility}} — встраиваемая поддержка аутентификации) и авторизации <code>zope.security</code>{{sfn|Weitershausen|2007|pp=389—430}}.
 
=== Заимствование (acquisition) ===
Заимствование ({{lang-en|acquisition}}) — интересный и достаточно уникальный подход к построению взаимоотношений между объектами, состоящий в совместном использовании [[Объектно-ориентированное программирование|поведения]] на основе отношения вложенности объектов<ref>{{Cite web |url=http://docs.zope.org/zope2/zope2book/Acquisition.html |title=Zope 2 Documentation, Acquisition |access-date=2012-07-28 |archive-date=2012-07-13 |archive-url=https://web.archive.org/web/20120713000056/http://docs.zope.org/zope2/zope2book/Acquisition.html |url-status=dead }}</ref>. Заимствование обеспечивает доступ к объектам вышележащих уровней в иерархии обращением к объекту более глубокого уровня. Например, если некоторый объект (документ, изображение, файл и т. п.) расположен в некоторый папке, то он доступен по имени из любых нижележащих папок. Заимствование является одним из важнейших свойств Zope, которое позволяет создавать более простые и наглядные решения, но требует грамотного обращения{{sfn|Сузи|2006}}.
 
== Ссылки ==
* [http://www.zope.org Сайт Zope]{{ref|en}}
* [http://zope.net.ru Русскоязычный форум по Zope и Python]
* [https://web.archive.org/web/20061007224041/http://www.zope.org/Products Надстройки для Zope]
* [http://python.su/forum/ Форум по Zope]
 
== Примечания ==
{{примечания|2}}
 
== Литература ==
* {{Книга|автор=С. Спикльмайр|заглавие=Zope. Разработка Web-приложений и управление контентом|серия=Web-технологии: разработка, дизайн и сопровождение web-сайтов|место=М.|издательство=ДМК-пресс|год=2003|страниц=464|isbn=5-94074-189-4|ссылка=http://www.dmk-press.ru/books/rubric/series/book/?rubric_id=4&series_id=71&books_id=117}}{{Недоступная ссылка|date=August 2021 |bot=InternetArchiveBot }}
* {{книга|автор=Philipp Weitershausen.|заглавие=Web Component Development With Zope 3|издательство=Springer|год=2007|isbn=978-3-540-33807-9|ref=Weitershausen}}
* {{Книга|автор=Грегер С. Э.|заглавие=Сервер приложений  «Zope»|место=М.|издательство=Горячая линия - Телеком|год=2009|страниц=256|isbn=978-5-9912-0112-4}}
* {{книга|автор=Сузи Р. А.|заглавие=Язык программирования Python: Учебное пособие|издательство=Интуит, Бином. Лаборатория знаний|место=М.|год=2006|isbn=5-9556-0058-2|страниц=328|ref=Сузи}}, Лекция 8: Разработка Web-приложений


=== Этимология ===
{{Веб-серверы}}
{{Python}}


<!-- Служебное: -->
[[Категория:Серверы приложений]]
{{improve|en|морфо|транскрипция/мн|пример|семантика|этимология}}
[[Категория:Свободное программное обеспечение, написанное на Python]]
{{Категория|язык=en|||}}
[[Категория:Веб-фреймворки на Python]]
{{длина слова|4|en}}

Текущая версия от 14:08, 15 ноября 2025

Шаблон:Карточка программы Шаблон:Карточка программы Zope (англ. Шаблон:Lang-en2, произносится [зо́уп]) — объектно-ориентированный сервер приложений, написанный на языке программирования Python. Zope разрабатывается на основе собственной Open Source лицензии ZPL.

Zope (точнее, Zope2) обычно применяется в качестве системы управления содержимым (CMS). Для этих целей был создан программный каркас CMF (англ. Шаблон:Lang-en2) — набор библиотек для создания систем публикаций под Zope. В свою очередь на основе CMF была создана система публикаций Plone.

История

В 1996 году Джим Фултон, в то время технический директор Digital Creations, на конференции International Python Conference (IPC) сделал презентацию по теме CGI: «Python and Internet Programming»<ref>CGI: Python and Internet Programming Шаблон:Webarchive</ref>. Джим, считая CGI очень далёким от совершенства, придумал новый путь для программирование на Python для сети Интернет<ref name="blueream_docs_intro">Шаблон:Cite web</ref>.

В 1998 году Digital Creations объединила системы Bobo и Principia под маркой Zope и опубликовала их исходный код под лицензией ZPL. Zope 2.0 был выпущен в 1999 годуШаблон:Sfn.

В конце 2005 года был выпущен Zope3. Это полностью переработанная версия Zope, которая разрабатывалась на протяжении нескольких лет, и при её разработке учитывался опыт использования Zope2. С выходом Zope3 разработчики получили мощный сервер приложений, с помощью которого стало возможным разрабатывать не только CMS, но и более сложные системы, в частности системы автоматизации бизнес-процессов и документооборота. В январе 2010 года Zope3 был переименован в BlueBream<ref name="blueream_docs_intro" />.

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

Объектная база данных ZODB

Шаблон:Main Для долговременно сохраняемых (англ. Шаблон:Lang-en2) объектов в Zope традиционно используется объектная база данных ZODB<ref>ZODB (Zope Object DataBase) Шаблон:Webarchive</ref>, хотя ничто не мешает использовать и другие средства, например, файловую систему или реляционную базу данных. Да и сама ZODB может использовать в качестве back-end реляционную базу данных при помощи RelStorage<ref>Шаблон:Cite web</ref>. Кроме того, несколько экземпляров (англ. Шаблон:Lang-en2) Zope могут работать с одной ZODB посредством ZEO<ref>ZEO (Zope Enterprise Objects) Шаблон:Webarchive</ref>.

ZServer

ZServer является интеграцией сервера приложений Zope с сервером Medusa. ZServer даёт HTTP, FTP, WebDAV, PCGI и удалённый интерактивный доступ Python<ref>ZServer README.txt Шаблон:Webarchive</ref>.

Каталог объектов ZCatalog

Для удовлетворения поисковых запросов к объектной базе данных в Zope 2 применяется ZCatalog. В ZCatalog-объекте хранятся индексы (англ. Шаблон:Lang-en2) и метаданные (англ. Шаблон:Lang-en2). Индексы являются данными, по которым ищут содержимое, а метаданные — копии некоторых полей индексируемых объектов, которые могут быть прочитаны без извлечения самого объекта из базы данных. Результатом поиска является последовательность элементов, называемых брэйнами (от англ. Шаблон:Lang-en2 — «мозг»). Брэйны действуют по принципу ленивых вычислений, так как они создаются «на лету», по мере потребления результата запроса, и не «будят» настоящие исходные объекты из базы данных<ref>Шаблон:Cite web</ref>.

Компонентная архитектура ZCA

Zope 3 является набором программных компонентов. Компоненты являются объектами с чётко определённой функциональностью и ответственностью, зафиксированной в описаниях интерфейсов. Разработанные в рамках Zope технологии компонентной архитектуры zope.component, zope.interface, zope.event в силу своей обобщённости могут применяться в других программных системах на PythonШаблон:Sfn<ref>Шаблон:Cite web</ref>.

Система шаблонов для HTML/XML

Для разработки веб-приложений одной из основных задач является генерация кода на языках разметки, используемых в WWW. Zope использует для этой цели DTML (англ. Шаблон:Lang-en2) и ZPT (англ. Шаблон:Lang-en2). DTML не рекомендуется использовать в новом коде<ref>Шаблон:Cite web</ref>. ZPT основан на XML и состоит из трёх документированных частей<ref>Шаблон:Cite web</ref>:

  • Язык шаблонных атрибутов (Template Attribute Language — TALШаблон:Ref),
  • Синтаксис выражений TAL (Template Attribute Language Expression Syntax — TALESШаблон:Ref),
  • Макрорасширение TAL (Macro Expansion Template Attribute Language — METALШаблон:Ref).

Работа с веб-формами

Веб-приложения часто нуждаются в обработке данных, вводимых пользователем, а построенные на основе веб-технологий системы управления содержимым обычно поддерживают редактирование контента через веб (TTW, англ. Шаблон:Lang-en2). Для обработки форм Zope 3 предлагает пакеты zope.formlib в сочетании с пакетом для описания схемы данных zope.schema.Шаблон:Sfn

Разграничение прав доступа

В процессе обработки запроса происходит идентификация и аутентификация пользователя. Права доступа пользователей Zope 2 предоставляются им на основе правил защиты (security policy, «политика безопасности»). Для авторизации пользователя при доступе к некоторому ресурсу выявляется его роль (англ. Шаблон:Lang-en2) и проверяется, имеется ли у данной роли разрешение (англ. Шаблон:Lang-en2) на доступ к ресурсу. Такая система позволяет описывать достаточно тонкие (англ. Шаблон:Lang-en2) права доступа и делает Zope сравнительно безопасным<ref>http://docs.zope.org/zope2/zope2book/Security.html Шаблон:Wayback Zope 2 documentation, Users and Security</ref><ref>Zope is very secure — анализ на основе CVE database (http://nvd.nist.gov), Jan Ulrich Hasecke Шаблон:Webarchive</ref>. В Zope 3 предлагаются механизмы аутентификации PAU (англ. Шаблон:Lang-en2 — встраиваемая поддержка аутентификации) и авторизации zope.securityШаблон:Sfn.

Заимствование (acquisition)

Заимствование (англ. Шаблон:Lang-en2) — интересный и достаточно уникальный подход к построению взаимоотношений между объектами, состоящий в совместном использовании поведения на основе отношения вложенности объектов<ref>Шаблон:Cite web</ref>. Заимствование обеспечивает доступ к объектам вышележащих уровней в иерархии обращением к объекту более глубокого уровня. Например, если некоторый объект (документ, изображение, файл и т. п.) расположен в некоторый папке, то он доступен по имени из любых нижележащих папок. Заимствование является одним из важнейших свойств Zope, которое позволяет создавать более простые и наглядные решения, но требует грамотного обращенияШаблон:Sfn.

Ссылки

Примечания

Шаблон:Примечания

Литература

Шаблон:Веб-серверы Шаблон:Python