Zope
Zope — об'єктно-орієнтований прикладний сервер застосунків, написаний на мові програмування Python. Zope підтримує Об'єкт «Z Object Publishing Environment.»
Тип | Вебсервер |
---|---|
Розробник | Zope Foundationd |
Стабільний випуск | 2.11.4 (6 липня 2009) |
Операційна система | декілька |
Мова програмування | Python |
Ліцензія | Zope Public License (ZPL) |
Вебсайт | www.zope.org |
Часто Zope (точніше Zope2) застосовується як система управління вмістом (CMS). Але для цих цілей був створений програмний каркас CMF (англ. Content Management Framework) — набір бібліотек для створення систем публікацій під Zope. На основі CMF була створена система публікацій Plone.
В кінці 2005 року був випущений Zope3. Це повністю перероблена версія Zope, яка розроблялася впродовж декількох років і при її розробці враховувався досвід використання Zope2.
З виходом Zope3, розробники отримали могутній сервер застосунків, за допомогою якого стало можливим розробляти не тільки CMS, але і складніші системи, зокрема системи автоматизації бізнес-процесів і документообігу.
Історія
ред.Zope Corporation була заснована у 1995 у Фредеріксбургу, штат Вірджинія під назвою Digital Creations, як спільне підприємство з InfiNet (мережа газет). Компанія розробила систему приватних оголошень для інтернет. В 1997 компанія стала незалежною та приватною. Інженерами керував Джим Фултон - головний технічний директор. Компанія PythonLabs, розробники мови Python, стали частиною компанії в 2000. Творець мови Python Гвідо ван Россум покинув Zope Corp в 2003.[1]
Технології та властивості
ред.Об'єктна база даних ZODB
ред.Для об’єктів що зберігаються (англ. persistent) в Zope традиційно використовується об'єктна база даних ZODB[2], хоча ніщо не заважає використовувати й інші засоби, наприклад, файлову систему або реляційну базу даних. Та й сама ZODB може використовувати як back-end реляційну базу даних за допомогою RelStorage[3]. Крім того, кілька екземплярів (англ. instance) Zope можуть працювати з однією ZODB допомогою ZEO[4].
ZServer
ред.ZServer є інтеграцією сервера додатків Zope з сервером Medusa. ZServer дає HTTP, FTP, WebDAV, PCGI і віддалений інтерактивний доступ Python[5].
Каталог об'єктів ZCatalog
ред.Для задоволення пошукових запитів до об'єктної базі даних в Zope 2 застосовується ZCatalog. В ZCatalog-об'єкті зберігаються індекси (англ. index) та метадані (англ. metadata). Індекси є даними, за якими шукають вміст, а метадані — копії деяких полів індексованих об'єктів, які можуть бути прочитані без отримання самого об'єкта з бази даних. Результатом пошуку є послідовність елементів, які називаються "brains" (англ. brain — «мозок»). Брейни діють за принципом лінивих обчислень, оскільки вони створюються «На льоту», у міру споживання результату запиту, і не «тягнуть» справжні вихідні об'єкти з бази даних[6].
Компонентна архітектура ZCA
ред.Zope 3 є набором програмних компонентів. Компоненти є об'єктами з чітко визначеною функціональністю та відповідальністю, зафіксованої в описах інтерфейсів. Розроблені в рамках Zope технології компонентної архітектури zope.component
, zope.interface
, zope.event
в силу своєї узагальненості можуть застосовуватися в інших програмних системах на Python[7][8][9].
Система шаблонів для HTML/XML
ред.Для розробки вебзастосунків одним з основних завдань є генерація коду на мовах розмітки, що використовуються в WWW. Zope використовує для цієї мети DTML (англ. Document Template Markup Language) і ZPT (англ. Zope Page Templates). DTML не рекомендується використовувати в новому коді[10]. ZPT ґрунтується на XML і складається з трьох документованих частин:
- Мова атрибутів шаблонів (Template Attribute Language — TAL[en]),
- Синтаксис виразів TAL (Template Attribute Language Expression Syntax — TALES[en]),
- макророзширення TAL (Macro Expansion Template Attribute Language — METAL[en]).
Робота з вебформами
ред.Вебзастосунки часто потребують обробки даних, що вводяться користувачем, а побудовані на основі вебтехнологій системи керування вмістом зазвичай підтримують редагування контенту через веб (TTW, англ. through-the-web). Для обробки форм Zope 3 пропонує пакети zope.formlib
в поєднанні з пакетом для опису схеми даних zope.schema
.[7]
Розмежування прав доступу
ред.В процесі обробки запиту відбувається ідентифікація та аутентифікація користувача.
Права доступу користувачів Zope 2 надаються їм на основі правил захисту (security policy, "політика безпеки"). Для авторизації користувача при доступі до деякого ресурсу з’ясовується його роль (англ. role) та перевіряється, чи є у цієї ролі дозвіл (англ. permission) на доступ до ресурсу. Така система дозволяє описувати достатньо тонкі (англ. fine-grained) права доступу та робить Zope порівняно безпечним[11][12]. В Zope 3 пропонуються механізми аутентифікації PAU (англ. Pluggable Authentication Utility — вбудовується підтримка аутентифікації) та авторизації zope.security
[13].
Запозичення (acquisition)
ред.Запозичення (англ. acquisition) — цікавий та достатньо унікальний підхід до побудови взаємовідносин між об'єктами, що складається в спільному використанні поведінки на основі відношення вкладеності об'єктів[14]. Запозичення забезпечує доступ до об'єктів вищих рівнів в ієрархії зверненням до об'єкта більш глибокого рівня. Наприклад, якщо деякий об'єкт (документ, зображення, файл, тощо.) розташований в деякий папці, то він доступний на ім'я з будь-яких папок нижче.
Див. також
ред.Посилання
ред.- Офіційний сайт
- Who cares about zope? [Архівовано 16 січня 2013 у Wayback Machine.] - Martijn Faassen 2011/06/07 (коротка історія Zope, та його впливу на розвиток Python та інших фреймворків.)
- Zope: Quick and Simple [Архівовано 25 жовтня 2013 у Wayback Machine.] - Linux Productivity Magazine, Листопад 2002
- ↑ Guido van Rossum Leaves Zope.com
- ↑ ZODB (Zope Object DataBase). Архів оригіналу за 22 липня 2012. Процитовано 13 червня 2014. [Архівовано 2012-07-22 у Wayback Machine.]
- ↑ RelStorage. Архів оригіналу за 26 листопада 2013. Процитовано 13 червня 2014.
- ↑ ZEO (Zope Enterprise Objects). Архів оригіналу за 7 серпня 2012. Процитовано 13 червня 2014. [Архівовано 2012-08-07 у Wayback Machine.]
- ↑ ZServer README.txt. Архів оригіналу за 29 січня 2012. Процитовано 13 червня 2014. [Архівовано 2012-01-29 у Wayback Machine.]
- ↑ Introduction to ZCatalog. Архів оригіналу за 22 грудня 2012. Процитовано 13 червня 2014.
- ↑ а б Weitershausen, 2007, с. 7.
- ↑ Baiju M, A Comprehensive Guide to Zope Component Architecture. Архів оригіналу за 24 червня 2014. Процитовано 13 червня 2014. [Архівовано 2014-06-24 у Wayback Machine.]
- ↑ Трактат про Zope Component Architecture [Архівовано 23 грудня 2014 у Wayback Machine.] - Блог одного кібера
- ↑ Zope 2 documentation, Basic DTML. Архів оригіналу за 23 квітня 2012. Процитовано 13 червня 2014. [Архівовано 2012-04-23 у Wayback Machine.]
- ↑ http://docs.zope.org/zope2/zope2book/Security.html [Архівовано 22 квітня 2012 у Wayback Machine.] Zope 2 documentation, Users and Security
- ↑ Zope is very secure — анализ на основе CVE database (http://nvd.nist.gov), Jan Ulrich Hasecke. Архів оригіналу за 15 липня 2012. Процитовано 13 червня 2014.
{{cite web}}
: Зовнішнє посилання в
(довідка) [Архівовано 2012-07-15 у Wayback Machine.]|title=
- ↑ Weitershausen, 2007, с. 389—430.
- ↑ Zope 2 Documentation, Acquisition. Архів оригіналу за 13 липня 2012. Процитовано 13 червня 2014. [Архівовано 2012-07-13 у Wayback Machine.]
Це незавершена стаття про програмне забезпечення. Ви можете допомогти проєкту, виправивши або дописавши її. |