Zope a dinamikus Web alkalmazások keretrendszere I.

Integrált objektum adatbázisssal egybeépített, Python-ra alapozott szabad forráskódú alkalmazásfejlesztõi és alkalmazáskiszolgálói környezet.

Bevezetés

A Zope viszonylag rövid múltra visszatekintõ szabad szoftver. Érdekes módon eredetileg kereskedelmi termék volt, amit egy konkrét megrendelés teljesítéséhez fejlesztettek ki. Késõbb egyes részei szabadon hozzáférheõvé váltak, majd tavaly õsszel az egész csomag új néven ingyenessé vált. Innentõl kezdve fejlõdése rendkívül dinamikus és a legújabb technológiák sora (WebDAV, XML stb.) épül be a termékbe. Mivel a legtöbb forrást Pythonban írták és csak néhány a teljesítmény szempontjából kritikus rész készült C-ben, a Zope – kihasználva a Python multiplatformos voltát - több operációs rendszer alól is elérhetõ. A keretrendszer gazdag szolgáltatásválasztékának és Python nyelv egyszerûségének köszönhetõen gyorsan tudunk vele elegáns és látványos web helyeket fejlesztni. Objektumorientált fejlesztési megközelítésének köszönhetõen szabványos megoldásokat kínál az információk megosztására, átadására és a rendszerkomponensek elérésére. Az objektumorientált fejlesztésekben járatos programozóknak nem kell speciális cgi és http ismeretekre szert tenniük, csak alkalmazniuk kell megszokott módszereiket és objektumainkat a Zope szinte automatikusan elérhetõvé teszi a web-en keresztül is. A rendszer teljesen automatikusan végzi a „bejövõ web kérés->objektum->eredmény” konverzókat:

1abra.gif (5517 bytes)

A Zope telepítését, adminisztrálását és a zope-os fejlesztési módszereket szeretném áttekinteni ebben a sorozatban. Az elsõ részben igyekszem minden információt megadni, ami a rendszer telepítéséhez, elindításához és az ismerkedõ lépések megtételéhez szükséges.

Telepítés

Mint említettem a Zope több platformon létezik. Az alábbiakban a különbözõ Windows variánsok és a Linux alatti telepítéshez nyújtok segítséget. A Zope magában is mûködõképes, tartalmazza mindazokat a szoftvereket, amik használatához elengedhetetlenül szükségesek. Szeretném külön is hangsúlyozni, hogy használatához még web szervert sem kell telepítenünk, mert beépítve tartalmaz egyet!

Nézzük elõbb a windows-os telepítést! A telepítõ önkicsomagoló exe, ami a szokványos „melyik könyvtárba is települjek?” kérdésen túl, alig kérdez valamit:

Linux alatt a telepítés kicsit több kézimunkát igényel:

Mint említettem a superuser adatai késõbb a felületen keresztül nem változtathatóak meg, ehelyett a Zope könyvtárában található access fájl tartalmát kell szerkesztenünk. A fájl formátuma: username:password:domain. A domainel lehet korlátozni, hogy a superuser honnan jelentkezhet be.

A Zope összeépítése meglévõ web állomással sokak számára nagyon vonzónak tûnhet, hiszen így a további fejlesztés során már a Zope gazdag funkcionalitására is támaszkodhatunk, de nem kell lemondanunk megszokott rendszerünk bevált eszközeirõl és meglévõ alkalmazásainkat is változtatás nélkül tudjuk tovább üzemeltetni. A Zope doc alkönyvtárában találunk egy rövid leírást arról, hogy ezt hogyan is kell csinálni. Ne az éles rendszerünkön kisérletezzünk vele, mert ez nem mindig szokott elsõre sikerülni! A dokumentáció ebben a témakörben meglehetõsen szûkszavú, de a levelezési lista és a www.zope.org cím rengeteg hasznos anyaggal rendelkezik ebben a témakörben.

Az ismerkedés során mindenkinek a beépített ZopeHTTPServer használatát javaslom, mert ez nem igényel semmi extra erõfeszítést valamint nem a Zope és Web szerverünk összeépítésének problémáival kell az elején szembesülnünk.

A Zope könyvtárban a ./doc/INSTALL.txt fájlban találunk további instrukciókat a különbözõ telepítési lehetõségekrõl.

 

A könyvtárszerkezet legfontosabb elemei

Három alkönyvtárra szeretném felhívni a figyelmet, melyek a késõbbiek során kiemelt jelentõséggel bírnak. Talán az elsõ és legfontosabb a ./var könyvtár, ahol többek között a Zope integrált adatbázisa is található. Ne feledkezzünk meg rendszeres mentésérõl! A ./pcgi könyvtár a rendszer egyik legfontosabb komponensét tartalmazza, ami a web objektumok “tartós életét” biztosítja. A harmadik a ./lib könyvtár, amin belül a python1.5 a Python disztribució részét képzõ modulokat tartlmaz, a ./lib/python pedig maga a Zope.

A felhasználói, fejlesztõi és adminisztrációs felület

Miután sikerült megküzdenünk a telepítéssel nézzük, hogyan is néz ki a Zope mûködés közben.Windows alatt a .\start.bat Linux alatt a ./start indítja a ZopeHTTPServer-t. Ezt követõen kedvenc browser-ünket irányítsuk a Zope nyitó lapjához: http://localhost:9673. Innen a QuickStart-ra kattintva egy rövid ismertetõt olvashatunk, ami egyben egy minta alkalmazás is. A management screen a rendszer adminiszrálására/fejlesztésére való, eléréséhez szükségünk van a superuser adataira. Késõbb újabb felhasználók felvételével természetesen mások is hozzáférhetnek ehhez a laphoz. A management screen felépítése egy fájlkezelõ felépítését követi: bal felõl fastruktúrában látjuk a mappákat, jobb felõl pedig a mappák tartalmának különbözõ nézeteit tekinthetjük meg füles lapok segítségével:1kep.gif (25630 bytes)

Nézzük milyen mappákat látunk a bal oldalon:

A jobb oldal füleslapjainak száma és tipusa objektumfüggõ. A leggyakoribb füles lapok a következõek:

Talán már a fentiekbõl is látható a Zope egyik alapfilozófiája: az integrált adatbázisban tárolt objektumok fastruktúrába vannak rendezve és browserbõl nézve fájlrendszerszerû megjelenítést biztosít a számunkra. Ami nem látszik, hogy ezek az objektumok inteligensek, tudnak egymásról és egymás attributumairól ezért egyszerûen lehet közöttük adatokat áramoltatni.

A másik fontos alapelv, hogy az adminisztráció és a fejlesztés is egységesen webes felületen keresztül történik.

Alapvetõ jellemzõk

Webhely kialakításának lehetõségei Zope-ban

Nem kell feltétlenül profi programozási tudás a zope-os fejlesztésekhez. Több lehetõség közül választhatunk, ami kölönbözõ szintû programozási tudást és Zope/Python ismeretet feltételez. Az alábbiakban az egyszerûtõl a bonyolultabb felé haladva rövid áttekintést adok a lehetõségekrõl.

Minden mappa Contents fülén lehetõségünk van a rendszer által ismert elemek

bármelyikének kiválsztására és mappáhozz adására. Akár meglévõ webhelyünket

is áthelyezhetjük ide: a könyvtárszerkezet mappákkal reprezentálhatjuk és a

html fájlokat pedig a file elem kiválsztásával tudjuk feltölteni. A legtöbb

elem konfigurálása nem igényel igazi programozói munkát, többnyire csak

néhány paramétert kell beállítani az elemek Properties fülén.

Az elõzõ módszernél annyival több, hogy HTML fájlok, DTML Method, DTML

Document és Z SQL Method esetében lehetõségünk van szerveroldali scriptekkel

dinamikus tartalom elõállítására. Ne csak egyszerû változó

behelyettesítésekre gondoljunk! A DTML scripting hozzáférést biztosít az

objektumokhoz és vezérlõszerkezeteket is alkalmazhatunk. Például a Z SQL Method

esetében nem csak az SQL utasítás paraméterezésére használható, hanem

segítségével az SQL utasítást röptében tudjuk kialakítani, ami akár egyszer

INSERT-et máskor UPDATE-et is eredményezhet!

Gyakorlott Python programozók számára ajánlott módszer a rendszerrel való

ismerkedés szakaszában. Meglévõ Python osztályainkat szinte változtatás

nélkül is web-képessé tehetjük ezzel a technikával.

A Python programnyelv ismeretét feltételezi. A Zope-os felület kialakítása

meglehetõsen bonyolult, cserébe viszont a rendszer minden szolgáltatását

maradéktalanul ki tudjuk használni és az így fejlesztett alkalmazás a

legteljesebb mértékben belesimul a környezetbe.

 

Összegzés

Remélem, hogy e rövid áttekintéssel sikerült megvilágítanom a rendszerben rejlõ lehetõségeket és sokakban felkeltettem az érdeklõdést e nagyszerû eszköz iránt. A következõ rész a programozás nélküli fejlesztés és a DTML scripting rejtelmeirõl és lehetõségeirõl fog szólni. Addig is mindenkinek bátran ajánlom telepítését! Hiszem hogy használata igazi felüdülés lehet a profiknak, a kezdõknek pedig egy biztos kiindulópont a webes technológiák dzsungelében.

Kapcsolódó webhelyek