- p�edchoz� �l�nek - n�sleduj�c� �l�nek - obsah - �vodn� str�nka -

Linuxov� noviny 03-04/99

Zope

Milo� Pr�dek, 11. dubna 1999

�vod

Ka�d� spr�vce webu, kter� usiluje o interaktivitu s u�ivatelem, se jednoho dne mus� zamyslet nad p�echodem na dynamick� generov�n� str�nek. Z�kladn�m n�strojem pro dynamick� str�nky jsou CGI skripty. Ur�it� v�hoda CGI skript� je v tom, �e m��ete pou��t programovac� jazyk, kter� u� um�te (C++, Perl). Jejich hlavn� nev�hodou b�v� nutnost vyvolat novou instanci pro ka�d� skript. Z toho vypl�v� v�t�� spot�eba pam�ti a syst�mov�ch prost�edk�.

Rychlej�� a �sporn�j�� �e�en� je pou�it� jazyka, kter� je p��mo vlo�en do zdrojov�ho HTML textu. Na serveru b�� interpret, kter� �te HTML text, prov�d� p��kazy, kter� jsou mu ur�eny, a u�ivateli je pak serv�rov�no "�ist�" HTML, tj. bez p��kaz� ur�en�ch pro interpret. Tuto technologii pou��v� nap��klad ASP, vytvo�en� firmou Microsoft. Bohu�el, ASP je propriet�rn� �e�en�, z�visl� na webov�m serveru IIS t�to firmy. Ve sv�t� Linuxu existuje velmi dobr� alternativa: PHP3. Tento jazyk nab�z� prakticky stejn� mo�nosti jako ASP, ale nen� v�z�n na platformu MS Windows. PHP3 je popul�rn� zvlṻ v kombinaci s Open Source datab�zov�mi SQL syst�my, jako je MySQL a Postgres.

N�vrh str�nek pomoc� PHP3 nebo ASP ale nen� zrovna snadn�, a p�ipom�n� v�echno, jen ne WYSIWYG. Mezi komer�n� �e�en�, kter� se sna�� tento probl�m �e�it automatick�m generov�n�m ASP str�nek s vizu�ln�m syst�mem n�vrhu a programov�n� pat�� nap��klad syst�my Sun Microsystems NetDynamics a Allaire ColdFusion. Tyto pom�rn� siln� n�stroje jsou bohu�el dosti drah�, a nav�c se sna�� program�tora p�iv�zat k propriet�rn� platform�. Prvn� a zat�m z�ejm� jedinou alternativou k t�mto syst�m�m je pr�v� Zope.

Historie syst�mu Zope je pom�rn� zaj�mav� z licen�n�ho hlediska. Firma Digital Creations vyv�jela tento syst�m (tehdy je�t� pod n�zvem Principia) jako propriet�rn� a tedy bez zve�ejn�n� zdrojov�ch k�d�. V souvislosti s kapit�lovou injekc�, kterou ned�vno z�skala, p�e�la po dohod� s investorem na model Open Source. Zpo��tku ale vy�adovala, aby ka�d� website postaven� na Zope uv�d�l ikonku s odkazem na Digital Creations. Na n�tlak u�ivatel� od tohoto po�adavku po��tkem tohoto ruku upustila, a nyn� je Zope ofici�ln� pod licenc� GPL.

Krom� vlastn�ho Zope existuje mno�stv� u�ivatelsk�ch nadstaveb, jako jsou datab�zov� adapt�ry (tedy rozhrann�) pro MySQL, Postgres, Oracle atd., a Digital Creations pokra�uje ve v�voji vytv��en�m dal��ch aplika�n�ch syst�m� nad Zope. Tyto syst�my (nap��klad ZTables pro komunikaci s .dbf soubory a dal�� datab�zov� �koly) se u� prod�vaj�, ale c�lem Digital Creations je po ur�it� dob� p�ev�st i tyto dopl�ky na Open Source - a za��t jin� nadstavbov� syst�my.

Instalace

Instalace je pom�rn� jednoduch�, a proto jen nazna��m, co v�s �ek�. Nejprve mus�te zjistit, zda m�te na po��ta�i Python. Pokud ne, nainstalujte jej, nebo si st�hn�te distribuci Zope s integrovan�m Pythonem. (Jestli si chcete vyzkou�et Zope na Windows je�t� p�ed t�m, ne� jej pust�te na v� linuxov� server, st�hn�te si z http://www.zope.org bin�rn� distribuci Zope pro Windows. Tato distribuce obsahuje i Python, a instalace je trivi�ln�. Distribuce obsahuje i jednoduch�, ale posta�uj�c� webserver, tak�e po spu�t�n� Zope sta�� jen nasm�rovat v� webserver na p��slu�n� port a adres�� na localhost). Jakmile m�te Python, m��ete nainstalovat Zope, a p�ipravit jej na spolupr�ci s va��m webserverem. Tady se bude postup li�it podle toho, jak� webserver pou��v�te. Pro Apache sta�� nastavit p��slu�n� RewriteRule, p�esn� jak je pops�no v dokumentaci Zope. Samoz�ejm� mus�te m�t v Apachi zakompilovan� modul mod_rewrite (j� jsem nem�l :-) a pak u� sta�� poslat sign�l -HUP procesu httpd, a nasm�rovat prohl��e� na http://ip_adresa_serveru/Zope.

Pokud se v�m nepoda�� instalace napoprv�, bude pes pravd�podobn� zakop�n v p��kazu RewriteRule. Nane�t�st� modul mod_rewrite je velice mocn� a slo�it�, tak�e sp�� ne� metodu pokus� a omyl� doporu�uji nahl�dnout do dokumentace. Ta je d�ky Bohu perfektn� a obsahuje i odkaz na hromadu p��klad�. Kdy� budete �ikovn�, budete m�t instalaci hotovou nejpozd�ji za hodinu.

Popis rozhran�

Na rozd�l od komer�n�ch produkt�, jako je ColdFusion, nem� Zope klientskou ��st. M�sto toho se ve�ker� komunikace d�l� p�es webov� rozhrann�. Na jedn� stran� to znamen� plnou platformn� nez�vislost (Zope server je na Linuxu, ale ovl�d�te jej z Windows nebo jin�ho OS), na druh� stran� to rozhodn� nen� tak rychl� a pohodln�. U� jen proto, �e web prost� nepodporuje akce "drag and drop". Komunikace p�es web je tak� o n�co pomalej�� ne� p��m� manipulace na lok�ln�m stroji, kter� se pou��v� u komer�n�ch �e�en�.

[ Zope ]

Z�kladn� jednotkou p�i pr�ci se Zope je Folder (adres��, slo�ka). Existuj� oby�ejn� foldery a speci�ln� foldery. Jsou dva druhy speci�ln�ch folder�: Control Panel (jeden pro cel� syst�m), a acl_users (m��e, ale nemus� b�t v ka�d�m folderu). Na obr�zku je z�kladn� vzhled Zope, v�etn� speci�ln�ch folder�, folderu QuickStart (rychl� �vod do Zope), folder� kter� jsem vytvo�il v r�mci pokus� se Zope (Plutonia a Znalosti), standardn� hlavi�ky a pati�ky, standardn� chybov� zpr�vy, a modulu fsimport, kter� pop��u n��e.

V�echny prvky va�eho webu se ukl�daj� do oby�ejn�ch folder�, a to jako objekty DTML document, DTML method, Folder, Image, File, Session, Principia Draft, External Method, Mail Host, Z Gadfly Database, Z SQL Method, Z Search Interface. Krom� toho m��ete kr�tk� �seky HTML k�du ukl�dat do Properties. N�kter� tyto prvky pop��u n��e.

Folder

Z�kladn� stavebn� prvek Zope. P�ipom�n� b�n� adres�� filesyst�mu, ale m� podstatn� propracovan�j�� syst�m pr�v, kter� si prom�tnete klepnut�m na z�lo�ku Security. Folder m� 29 pr�v (linuxov� filesyst�m m� t�i: read, write, execute). V ka�d�m folderu m��ete definovat libovoln� po�et u�ivatel�, nebo skupin u�ivatel� (takzvan� role), a nastavit nejen co m��e kter� skupina u�ivatel� d�lat, ale tak� kter� pr�va jsou zd�d�na z nad��zen�ho folderu. Implicitn� se pr�va d�d� sm�rem dol�. D�ky t�mto mo�nostem lze z ko�enov�ho folderu ud�lat n�kolik folder�, kter� odpov�daj� nap��klad diviz�m firmy, a z nich vytvo�it dal�� foldery podle odd�len� jednotliv�ch diviz�. N�kter�m odd�len�m p�itom m��ete dovolit vytv��en� vlastn�ch folder�. Jin�mi slovy m��ete delegovat pravomoci (a odpov�dnost) na u�ivatele. Ka�d� u�ivatel je identifikov�n jm�nem a heslem.

Vzhledem k tomu, �e k ovl�d�n� Zope m��ete pou��t libovoln� browser, nic nebr�n� tomu, aby do va�eho webu p�isp�vali lid� geograficky libovoln� vzd�len�.

DTML Document

je v podstat� HTML dokument s vlo�en�mi DTML p��kazy. Co� nen� definice kruhem :-) DTML je jazyk s podobn�mi mo�nostmi jako m� PHP3, do HTML se vkl�d� jako pozn�mka. M��ete prov�d�t b�n� operace s prom�nn�mi, vkl�dat �seky z jin�ch DTML dokument�, pou��vat SQL a podobn�. Kompletn� popis jazyka je nad r�mec tohoto �vodn�ho �l�nku (a pravd�podobn� i nad r�mec jak�chkoliv n�sleduj�c�ch �l�nk� :-), ale jazyk je vcelku dob�e zdokumentov�n p��mo na domovsk�ch str�nk�ch Zope.

DTML p��kazy jsou velice podobn� jazyku Python, a v p��pad� pot�eby m��ete do DTML dokument� vkl�dat p��mo p��kazy Pythonu.

Ka�d� DTML dokument m� p�t pr�v, kter� m��ete nastavit, v�etn� p�i�azen� k rol�m.

Structured Text

B�je�n� vyn�lez Zope je Structured Text, kter� umo��uje zapsat b�n� form�tov�n� HTML u�ivatelsky p��tuln�m zp�sobem. Nap��klad m�sto <b> tu�n� text </b> nap��ete prost� *tu�n� text*. M�sto <i> sklon�n� text </i> sta�� jen **sklon�n� text**. Celkem je k dispozici okolo deseti ekvivalent� r�zn�ch HTML p��kaz�. D�ky jednoduch�mu z�pisu se v�m poda�� p�esv�d�it i sekret��ku, aby p�isp�vala do va�eho webu. Sta�� kdy� uk�ete, o kolik sekund je rychlej�� zm��knout dv� hv�zdi�ky, ne� nap��klad v MS Wordu pracn� my�� jezdit na ikonu tu�n�ho p�sma. D�ky syst�mu pr�v se nem��e st�t, �e by u�ivatel necht�n� poru�il celkovou strukturu webu (tedy, pod podm�nkou �e m�te ta pr�va spr�vn� nastaven� :-)

Z SQL Method

umo��uje pr�ci s SQL, a to tak d�kladn�, �e si popis nech�m na dal�� pokra�ov�n�.

fsimport

P�episovat v� statick� web by bylo protivn� a zdlouhav�. Museli byste do Zope zadat v�echny HTML str�nky a v�echny obr�zky. Proto se bude ur�it� hodit pythonovsk� extern� metoda (�ti: dopln�k do Zope), kter� ud�l� automatick� import adres��e do Zope. Utilita se jmenuje fsimport.py, a mus�te si ji st�hnout zvlṻ z webu Zope a um�stit na server do adres��e /Extensions. Pak ji je�t� mus�te p�idat do Zope, jako External Method (napi�te "fsimport" do v�ech kolonek). Nejl�pe do ko�enov�ho adres��e, proto�e d�ky d�di�nosti bude viditeln� i ve folderech ni���ch �rovn�.

P�edpokl�dejme, �e v� statick� web se nach�z� ve filesyst�mu na /home/ja/mujweb/, a �e m�te v Zope vytvo�en� folder /uzivatele/katka. D�le p�edpokl�d�me, �e Zope se nach�z� na http://www.kdesi.cz/Zope. Nasm�rujte v� browser na:

http://www.kdesi.cz/Zope/uzivatele/katka/\
       fsimport?fsdir=/home/ja/mujweb/

a Zope se postar� o zbytek. To jest, bu� provede import a zobraz� stru�nou hl�ku, nebo na v�s vyplivne deset ��dk� o chyb�. Pokud nastane chyba, je probl�m v tom, �e mus�te m�t pr�va world searchable po cel� cest� a� k importovan�mu webu.

Utilitku fsimport budete asi pou��vat i p�i dal��ch �prav�ch. Ur�it� bude rychlej�� navrhnout nov� p�id�van� str�nky v dobr�m vizu�ln�m HTML editoru, a pak vt�hnout do st�vaj�c� struktury.

Undo, Sessions, Upload

Zope si pamatuje v�e, co mu ud�l�te a v�e m��ete vr�tit zp�t. Proto�e je to v�ceu�ivatelsk� syst�m, pamatuje si i pachatele. P��klad ��dku v �urn�lu:

/ppm/nabidky/thumb/manage_addImage by prudek\
     on Mar 15 at 22:56:02

M��ete vr�tit jednu z akc�, v�ce akc�, a dokonce nespojitou mno�inu akc�.

Kdy� spust�te Session, m��ete d�lat �pravy websitu, kter� se objevuj� p��mo na webu, ale jen v�m. Zbytek sv�ta vid� p�vodn� verzi. Jakmile jste spokojeni, provedete aplikaci zm�n do "�iv�ho" syst�mu.

Hotov� str�nky m��ete do Zope p�idat v��e popsanou utilitou fsimport.py, co� ov�em vy�aduje p��stup k filesyst�mu (t�eba i zprost�edkovan� p�es ftp). Jednotliv� soubory m��ete p��mo uploadovat p�es browser (�ili odkudkoliv) klepnut�m na z�lo�ku Upload. Pozor, nefunguje v MSIE 3.0x, z�ejm� kv�li �patn� implementaci JavaScriptu. �e�eno reklamn�m heslem Paegasu: O d�vod v�c pro� neb�t s nimi :-)

WebDAV

je protokol vyvinut� p�vodn� Microsoftem. Je to syst�m pro inteligentn� komunikaci mezi tv�rcem obsahu a webov�m serverem. Podporuje v�ceu�ivatelk� p��stup, drag and drop, klepnut� na prav� tla��tko pro zobrazen� vlastnost�. Stru�n� �e�eno je o hodn� lep�� ne� ftp. Takov� �e�en� sice u� existuj� pro komer�n� webov� servery, ale jsou propriet�rn�. Proto�e WebDAV je voln� pou�iteln�, jedn� se o standard, kter� pravd�podobn� p�ev��. Zaj�mav� je, �e Zope se z�ejm� stal prvn�m funk�n�m serverem normy WebDAV. Tedy aspo� podle informac� na domovsk� str�nce, proto�e ofici�ln� release je�t� nen�. Z�jemci ale mohou st�hnout pracovn� verzi z CVS.

Informace o WebDAV najdete v RFC 2518 a na http://www.ics.uci.edu/pub/ietf/webdav/. Dobr� �l�nek o WebDAV a Zope je na http://webserver.cpg.com/wa/4.4/.

Zope zevnit�

Zope je naps�no v jazyku Python. ��k� se, �e nemus�te b�t bl�zen abyste mohl pou��vat po��ta�e, ale rozhodn� to nen� na �kodu. Tot� se d� ��ct o pou��v�n� Zope a znalosti Pythonu. I kdy� se d� Zope pou��vat, ani� byste um�li Python, v sou�asnosti se v�m bude Python hodit v mnoha p��padech, proto�e existuje mnoho �kol�, kter� bez kousku programu v Pythonu prost� neud�l�te. Na�t�st� je to kvalitn�, objektov� orientovan� jazyk, kter� se d� pom�rn� rychle zvl�dnout.

Dal�� dokumentace

Zope se vyv�j� natolik rychle, �e dokumentace je trochu pozadu za programov�n�m. D� se nicm�n� ��ct, �e podstatn� v�ci jsou zdokumentovan�, a v�e je k nalezen� na domovsk� str�nce. FAQ teprve vznik�, ale pracovn� verze nen� k zahozen�; najdete ji na http://zdp.zope.org.

St�vaj�c� dokumentace je bohu�el trochu podivn� form�tovan�, a nep�ehledn�. Ned� se nap��klad srovnat s HTML dokumentac� k serveru Apache. P�esto je pln� pou�iteln�. Dal��m perfektn�m zdrojem informac� je emailov� konference zope@zope.org, kter� m� v sou�asn� dob� p�es t�icet zpr�v denn�.

Autor je zam�stnancem spole�nosti Sonet Online s.r.o. http://www.sol.cz. *


- p�edchoz� �l�nek - n�sleduj�c� �l�nek - obsah - �vodn� str�nka -