Zope

Zope 2

Ovládací rozhraní Zope v okně webového prohlížeče.
Typ Server aplikací
Vývojář Zope Corporation
Zapsáno v Krajta
Operační systém Křížová platforma
První vydání 1998 ( 1998 )
Nejnovější verze 2.13.16 ( 11. srpna 2012 )
Stát Aktivní
Licence Zope Public License
webová stránka archive.is/2013011312401…
 Mediální soubory na Wikimedia Commons
Zope 3
Typ Server aplikací
Vývojář Zope Corporation
Zapsáno v Krajta
Operační systém Křížová platforma
První vydání 2004 ( 2004 )
Nejnovější verze 3.4.1 ( 22. června 2010 )
Stát Aktivní
Licence Zope Public License
webová stránka zoope.org
 Mediální soubory na Wikimedia Commons

Zope ( anglicky  Zope O bject Publishing Environment , Zope object publishing environment , vyslovováno [zoup]) je objektově orientovaný aplikační server napsaný v programovacím jazyce Python . Zope je vyvíjen pod vlastní licencí Open Source ZPL .

Zope (přesněji Zope2) se běžně používá jako systém pro správu obsahu ( CMS ). Pro tyto účely byl vytvořen softwarový framework CMF ( anglicky  Content Management Framework ) - sada knihoven pro tvorbu publikačních systémů pro Zope. Publikační systém Plone byl vytvořen na základě CMF .

Historie

V roce 1996 Jim Fulton , tehdejší CTO of Digital Creations , přednesl na International Python Conference (IPC) prezentaci na téma CGI : "Python and Internet Programming" [1] . Jim, který považoval CGI za velmi daleko od dokonalosti, přišel s novým způsobem programování v Pythonu pro web [2] .

V roce 1998 společnost Digital Creations sloučila systémy Bobo a Principia pod značku Zope a vydala jejich zdrojový kód pod ZPL. Zope 2.0 byla vydána v roce 1999 [3] .

Zope3 byl propuštěn na konci roku 2005. Jedná se o zcela přepracovanou verzi Zope, která se vyvíjela několik let a při jejím vývoji byly zohledněny zkušenosti s používáním Zope2. S vydáním Zope3 dostali vývojáři výkonný aplikační server, s jehož pomocí bylo možné vyvíjet nejen CMS, ale i složitější systémy, zejména systémy pro automatizaci obchodních procesů a pracovních postupů. V lednu 2010 byl Zope3 přejmenován na BlueBream [2] .

Technologie a vlastnosti

Databáze objektů ZODB

Pro persistentní objekty Zope tradičně  používá objektovou databázi ZODB [4] , i když nic nebrání použití jiných prostředků, jako je souborový systém nebo relační databáze. Ano, a samotný ZODB může používat relační databázi jako back-end pomocí RelStorage [5] . Navíc více instancí Zope může pracovat s jednou ZODB přes ZEO [6] . 

Zserver

ZServer je integrací aplikačního serveru Zope se serverem Medusa . ZServer poskytuje vzdálený interaktivní přístup HTTP , FTP , WebDAV , PCGI a Python [7] .

Katalog objektů ZCatalog

Zope 2 používá ZCatalog k uspokojení prohledávání databází objektů. Objekt ZCatalog ukládá indexy ( anglicky  index ) a metadata ( anglicky  metadata ). Indexy jsou data, která vyhledává obsah, a metadata jsou kopie některých polí indexovaných objektů, které lze číst bez načítání samotného objektu z databáze. Výsledkem hledání je posloupnost prvků zvaných mozky (z anglického  brain  – „mozek“). Mozky fungují na principu líného vyhodnocování , protože jsou vytvářeny za běhu, protože je spotřebován výsledek dotazu, a „neprobudí“ skutečné zdrojové objekty z databáze [8] .

Architektura komponent ZCA

Zope 3 je sbírka softwarových komponent . Komponenty jsou objekty s dobře definovanými funkcemi a odpovědnostmi, které jsou pevně stanoveny v popisech rozhraní . Technologie komponentové architektury vyvinuté v rámci Zope zope.component, zope.interface, zope.eventmohou být díky jejich zobecnění použity v jiných softwarových systémech v Pythonu [9] [10] .

Šablonový systém pro HTML/XML

Pro vývoj webových aplikací je jedním z hlavních úkolů generování kódu ve značkovacích jazycích používaných na WWW . Zope pro tento účel používá DTML ( Document Template Markup Language ) a ZPT ( Zope Page Templates ) .  DTML se pro nový kód nedoporučuje [11] . ZPT je založen na XML a skládá se ze tří zdokumentovaných částí [12] :  

Práce s webovými formuláři

Webové aplikace často potřebují zpracovávat uživatelské vstupy a webové systémy pro správu obsahu obvykle podporují úpravu obsahu webu (TTW ) .  Pro zpracování formulářů nabízí Zope 3 balíčky v kombinaci s balíčkem datových schémat . [9]zope.formlibzope.schema

Rozlišení přístupových práv

Během zpracování požadavku je uživatel identifikován a autentizován. Přístupová práva uživatelů Zope 2 jsou jim udělována na základě bezpečnostních pravidel (bezpečnostní politika, „bezpečnostní politika“). Pro autorizaci uživatele při přístupu k určitému zdroji je odhalena jeho role ( eng.  role ) a je zkontrolováno, zda tato role má oprávnění ( eng .  permit ) pro přístup ke zdroji. Takový systém umožňuje popsat poměrně jemná ( angl. jemně zrnitá ) přístupová práva a činí Zope relativně bezpečným [13] [14] . Zope 3 nabízí PAU ( Pluggable Authentication Utility ) a autorizační mechanismy [15] .  zope.security

Výpůjčka (akvizice)

Půjčování ( anglicky  purchase ) je zajímavý a zcela unikátní přístup k budování vztahů mezi objekty, který spočívá ve sdílení chování na základě vnořovacího vztahu objektů [16] . Půjčování poskytuje přístup k objektům vyšších úrovní v hierarchii odkazem na objekt hlubší úrovně. Pokud je například nějaký objekt (dokument, obrázek, soubor atd.) umístěn v nějaké složce, pak je přístupný podle názvu ze všech základních složek. Půjčování je jednou z nejdůležitějších funkcí Zope, která umožňuje vytvářet jednodušší a vizuálnější řešení, ale vyžaduje kompetentní zacházení [17] .

Odkazy

Poznámky

  1. CGI: Python a programování na internetu Archivováno 2. července 2012.
  2. 1 2 Úvod - dokumentace BlueBream (odkaz není k dispozici) . Získáno 30. června 2010. Archivováno z originálu 22. ledna 2010. 
  3. Weitershausen, 2007 , s. deset.
  4. ZODB (Zope Object DataBase) Archivováno 22. července 2012.
  5. RelStorage . Získáno 13. července 2012. Archivováno z originálu dne 26. listopadu 2013.
  6. ZEO (Zope Enterprise Objects) Archivováno 7. srpna 2012.
  7. ZServer README.txt Archivováno 29. ledna 2012.
  8. Úvod do ZCatalogu (downlink) . Získáno 27. července 2012. Archivováno z originálu dne 22. prosince 2012. 
  9. 12 Weitershausen , 2007 , s. 7.
  10. Baiju M, Komplexní průvodce architekturou komponent Zope (odkaz není k dispozici) . Datum přístupu: 28. července 2012. Archivováno z originálu 24. června 2014. 
  11. Dokumentace Zope 2, Basic DTML (downlink) . Získáno 4. srpna 2012. Archivováno z originálu dne 23. dubna 2012. 
  12. Programovací jazyk Python, Vývoj webových aplikací na Intuit.ru . Získáno 28. července 2012. Archivováno z originálu 6. srpna 2012.
  13. http://docs.zope.org/zope2/zope2book/Security.html Archivováno 22. dubna 2012 v dokumentaci Wayback Machine Zope 2, uživatelé a zabezpečení
  14. Zope je velmi bezpečný - analýza založená na databázi CVE (http://nvd.nist.gov), Archiv Jana Ulricha Haseckeho 2012-07-15 .
  15. Weitershausen, 2007 , pp. 389-430.
  16. Dokumentace k Zope 2, akvizice (downlink) . Získáno 28. července 2012. Archivováno z originálu 13. července 2012. 
  17. Susie, 2006 .

Literatura