Категории

Zope

Zope (на английски: Zope Object Publishing Environment, object publishing environment Zope, произнася се „Zope“) е обектно-ориентиран сървър за приложения, написан на езика за програмиране Python. Zope е разработен под патентован лиценз Open Source ZPL.

Zope (по-точно Zope2) обикновено се използва като система за управление на съдържанието (CMS). За тази цел е създадена софтуерната рамка CMF (на английски: Content Management Framework ) – набор от библиотеки за създаване на системи за публикуване под Zope.. На свой ред на базата на CMF е създадена система за публикуване Plone.

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

За дългосрочно съхраняване (на английски persistent) на обекти в Zope традиционно се използва обектна база данни ZODB, въпреки че нищо не пречи да се използват и други средства, например файлова система или релационна база данни. И дори самият ZODB може да се използва като back-end релационна база данни с помощта на RelStorage.. Освен това няколко екземпляра (на английски instance) Zope могат да работят с един ZODB с помощта на ZEO.

ZServer е интегрирането на сървъра за приложения Zope със сървъра Medusa. ZServer дава HTTP, FTP, WebDAV, PCGI и отдалечен интерактивен достъп Python.

За да се удовлетворят заявките за търсене в базата данни на обекта, Zope 2 прилага ZCatalog. В ZCatalog-обекта се съхраняват индекси (на английски index) и метаданни (на английски metadata). Индексите са данните, за които се търси в съдържанието, а метаданните са копия на някои полета на индексираните обекти, които могат да се четат, без да се извлича самият обект от базата данни. Резултатът от търсенето е поредица от елементи, наречени бран (от brain – „мозък“). Мозъците работят на принципа на мързеливото изчисление, тъй като се създават в движение, докато се консумира резултатът от заявката, и не „събуждат“ реалните обекти-източници от базата данни.

Zope 3 е набор от софтуерни компоненти. Компонентите са обекти с ясно дефинирана функционалност и отговорност, фиксирани в описания на интерфейси. Техниките за архитектура на компонентите, разработени в рамките на Zope zope.component, zope.interface, zope.event, поради своята общовалидност могат да се прилагат и за други софтуерни системи в Python.

За да се разработят уеб приложения, една от основните задачи е да се генерира код на езиците за маркиране, използвани в WWW. Zope. За тази цел се използват DTML (на английски Document Template Markup Language ) и ZPT (на английски Zope Page Templates ). DTML не се препоръчва за нов код. ZPT се основава на XML и се състои от три документирани части:

Уеб приложенията често се нуждаят от обработка на потребителски входни данни, а уеб базираните системи за управление на съдържанието обикновено поддържат редактиране на съдържание през уеб (TTW, английски through-the-web). За обработката на формуляри Zope 3 предлага пакетите zope.formlib в комбинация с пакета за описание на схемата на данните zope.schema.

Идентифицирането и удостоверяването на потребителя се извършва по време на обработката на заявката. Правата за достъп на Zope 2 потребителите се предоставят въз основа на правила за сигурност (security policy, „политика за сигурност“). За да се даде разрешение на даден потребител при достъп до някакъв ресурс, се идентифицира ролята на потребителя ( role) и се проверява дали тази роля има разрешение ( permission) за достъп до ресурса. Такава система позволява описването на доста тънки ( fine-grained) права на достъп и прави Zope относително сигурен. В Zope са предложени 3 механизма за удостоверяване PAU (на английски Pluggable AuthenticationUtility – вградена поддръжка за удостоверяване) и оторизация zope.security.

Заимстването ( acquisition) е интересен и доста уникален подход за изграждане на връзки между обекти, който се състои в споделяне на поведение, основано на връзката на влагане между обектите. Заимстването осигурява достъп до обекти от по-високи нива в йерархията чрез препращане към обект от по-дълбоко ниво. Например, ако някакъв обект (документ, изображение, файл и т.н.) се намира в някоя папка, той е достъпен по име от всички лежащи под него папки. Заимстването е едно от най-важните свойства на Zope, което ви позволява да създавате по-прости и визуални решения, но изисква компетентенобращения.

Категории: Сървъри, Уеб Сървъри

Реклама