A Zope

Zope nyelvről

A rendszer felépítése

Mivel az egész ZOPE rendszer Python nyelven íródott (csak néhány teljesítmény szempontjából kritikus részt írtak meg C-ben), így több platformon is fut. Mind a szolgáltatásokat, mind a fejlesztőeszközt böngésző segítségével érjük el, egy speciális címen át. Ehhez a Zope használhatja a saját HTTP szerverét, de már a gépen futó (pl. Apache) web szerverrel is össze lehet építeni. (Ismerkedéshez a saját ZopeHTTPServer használata ajánlott.) A rendszer teljesen automatikusan kezeli a "bejövő Web-kérés -> objektum -> eredmény" átalakításokat. Ha a ZopeHTTPServer-t használjuk, akkor a szervert a Zope könyvtárából, a ./start (linux) illetve a start.bat (Windows) paranccsal indítsuk el. Ez után egy tetszőleges böngészővel a http://localhost:9637 oldat behívva jutunk a Zope nyitóoldalára, ahol a QuickStart-ra kattintva egy rövid ismertetőt olvashatunk a rendszerről, ami egyben példaalkalmazás is.

A rendszer segítségével létrehozott site-ok elérése a http://localhost:9637/FoSiteNev/AlSite/... formában történik. Ez megfelel a Web-hely könyvtárszerkezetének, fizikai tárolási módjának is. (Ennél több is igaz, mint majd az objektum hierarchiájánál látni fogjuk.) Tehát a QuickStart példaalkalmazás a http://localhost:9637/QuickStartcímen érhető el.

Fejlesztés Zope segítségével

A Zope projektek fejlesztése teljesen Webes felületen történik, ez a felület a http://localhost:9673/manage címen érhető el böngésző alól. Természetesen ezt a lapot csak az arra jogosult, a site-ok fejlesztői és karbantartói érhetik el. Telepítés után ez csak az úgynevezett superuser, aki majd további usereket is definiálhat, immár a felület alól.

A management screen egy file-kezelő felépítését követi: baloldalon fastruktúrában láthatjuk a mappákat, jobb oldalon pedig a mappák tartalmának különböző nézeteit füles lapok segítségével. A baloldalon található például a Control Panel nevű mappa, amiben a Zope integrált adatbázisa és a már telepített alkalmazások találhatóak. A Control Panelen kívül megtalálhatjuk itt a QuickStart "forrását" is.

A jobb oldal tartalmazza az egyes mappákhoz, objektumokhoz tartozó adatokat, füles elrendezésben. A fülek száma természetesen függ az adott objektum fajtájától. A legfontosabb fülek

A Z objektumok

Ahogy már a rendszer felépítésénél utaltam rá, a Zope az adatait jólstruktúrált, fa szerkezetű elrendezésben tárolja. Ennél sokkal több is igaz:
Az URL-ek és a Zope objektumok közöt egyértelmű megfeleltetés van.
Például a /pista/levelek/fejlec?irsz=2011 cím azt jelenti, hogy a pista objektum levelek objektumának irsz metódusát hívtuk 2011 paraméterrel.

A Z objektumokhoz kapcsolódó fontos fogalom az aktivízió: szokták öröklődésnek is fordítani, bár ez alatt nem teljesen azt értjük, amit az OOP technikánál. Itt inkább csak objektumok közti adatmegosztásról van szó.

Itt az objektumok úgy használhatják az őket tartalmazó objektumok metódusait és alobjektumait, mint ha az a sajátjuk lenne, de felül is írhatják azokat, és ekkor attól a szinttől kezdve már a felülírt metódus az érvényes. Például, ha a nyitóoldalon létrehozunk egy lábjegyzetként szolgáló standard_footer_html objektumot és azt lentebbi szinteken nem definiáljuk felül, akkor minden laphoz ugyanaz a lábjegyzet objektum tartozik majd (amit persze vagy megjelenítünk, vagy nem.) Mint látjuk, ez csak konkrét példányokra vonatkozik, tehát nincs valódi öröklődés.

A Zope biztonság politikája

Egy website fejlesztése és ellenőrzött használata - különösen, ha több ember is fejleszt egy adott honlapot, különböző biztonsági problémákat vet fel. Igaz, hogy az egyes html fájlok és képek hozzáférési jogait állítani lehet operációs rendszeri szinten, de ez a webfejlesztőnek (content manager) elég kényelmetlen és korlátozott lehetőségű módszer, főleg, ha nem ő a rendszergazda.
De site manager-nek is fejtörést okozhat a biztonság: Milyen jogokat adjon a webfejlesztőnek? Megkockáztasson egy alacsonyabb védelmi szintet vele szemben? Milyen politikát kövessen, ha a webfejlesztő a saját ügyfeleinek login lehetőséget kíván adni?
A Zope biztonsági filozófiája úgy lett kialakítva, hogy fokozottan ügyel ezekre a szempontokra. Ez a modell kiváló webes üzleti alkalmazások biztonságos üzemeltetésére. A Zope biztonsági modellje egy rugalmas eszköz, amely jól kiegészíti a platform objektum modelljét. A modell céljai között a következők szerepelnek:

A biztonsági rendszer két alapvető elv szerint épül fel:
Az azonosítás egy HTTP protokollon alapuló eljárás arra, hogy azonosítsuk a felhasználót és megállapítsuk, milyen műveletekhez van jogosultsága.
A jogosultság pedig egy adott objektum műveletére vonatkozik. Tehát a Zope biztonsági rendszere egyaránt tárol információkat a felhasználókról és az egyes objektumokhoz kapcsolódó jogosultságokról (permissions). Az egész biztonsági kérdés azon alapul, hogy a site adminisztrációt meg lehet osztani több ember között, ha a különböző részek külön mappákban vannak. Minden mappa tulajdonosa újabb használókat tud létrehozni, akik az ő mappájában lévő almappákat érhetik el, s így használók egy fa hierarchiája jön étre.
Azért hogy ezt meg lehessen csinálni, bevezettek néhány fogalmat: Mint a fentiekből kitűnt, minden használónak egy-egy user objektum felel meg. Ezeket az objektumokat speciális mappákban, az User mappákban tárolják. Ezek létrehozása, kezelése a Management Screen -ről történik, amit most nem részletezek.