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:
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 v
alamit: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 c
siná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 objektu
mok “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:Nézzük milyen mappákat látunk a bal oldalon:
A jobb oldal füleslapjai
nak 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 Cont
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
Docu
ment és Z SQL Method esetében lehetõségünk van szerveroldali scriptekkeldinamikus 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 alkalmazh
atunk. Például a Z SQL Methodeseté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