Zope
Innehåll- 1. Objektorienterad databas - 2. Plattformsoberoende - 3. Relationsdatabaskopplingar - 4. Webbserver och integration med webbservrar - 5. Prestanda och lastbalansering - 6. Utveckling i Zope - 7. Dokumentation - 8. Applikationer för Zope - 9. Mer information - 10. Författare - 11. Frågor och svarZopeär en webbapplikationsserver skriven i Python
Den är en mellanprogramvara som publicerar pythonobjekt på webben.Varje åtkomst till servern genererar en atomisk transaktion vilket gör det möjligt att skriva tillförlitliga webbapplikationer.
1. Objektorienterad databas
Alla Zopeobjekt lagras i en objektorienterad databas ZODB som ingår i systemet.
2. Plattformsoberoende
Zope kan köras på alla plattformar som stödjer Python 1.5.2 eller Python 2.1,så som Windows NT/2000/XP, BSD, Linux, Sun Solaris, Mac OS X, HP-UX och så vidare.
3. Relationsdatabaskopplingar
Zope har ett inbyggt märkordsspråk som man förutom att bygga webbsidesmallar med kan använda för att skapa dynamiska SQL-frågor. Flera olika RDBS stöds via så kallade Databasadapters, som till exempel ODBC, Oracle, MySQL, PostgreSQL, Firebird och SAP DB. Man kan även använda en SQL-server för att lagra/distribuera Zopes objektorienterade databas ZODB.
4. Webbserver och integration med webbservrar
Zope har en inbyggd webbserver, ZPublisher, som är baserad på Python-servern Medusa. ZPublisher ger dig åtkomst via HTTP, FTP, WebDAV och en lokal monitorport (som ger dig en prompt rakt in i servern där du kan utföra metoder och avlusa serverns beteende.)
Zope fungerar även tillsammans med de vanligaste webbservrarna som Apache, IIS och Netscape Webserver . Med hjälp av FastCGI eller PCGI kan man koppla ZServer till i princip alla webbservrar som stödjer dessa protokoll.
5. Prestanda och lastbalansering
Zope är väldigt snabb för att vara en dynamisk webbserver, men jämfört med filbaserade webbservrar som till exempel Apache (utan skript) är den naturligtvis långsammare. Hastigheten beror även mycket på hur komplexa mallarna och applikationerna som man har installerat på servern är. Zope cachar objekten i minnet vilket gör att I/O kan hållas ner ganska mycket och det snabbar upp svarstiden.
Om man har komplexa applikationer och/eller mallar kan det vara bra att använda en separat cache för att cacha resultatet från methoder och mallar, det finns inbyggt stöd för detta eller så bygger man in eget stöd för cachning i sina egna produkter (applikationer).
Zope ger betydligt mycket bättre prestanda på en dator med mycket minne men framför allt ökar prestandan med mer processorhastighet. Eftersom Pythons trådning inte stödjer SMP (i alla fall inte version 1.5.2) har man inte mycket för att köra fler processorer på datorn (om man inte har flera Zopeservrar som då kan köras på olika processorer). Det är alltså processorhastighet och arkitektur som bör vara snabba på datorn. Zope är mer känslig för långsamma processorer och lite internminne än vad en enkel Apache-server skulle vara.
Om servern man kör Zope på ändå inte skulle räcka till kan man använda ZEO (Zope Enterprise Objects) som är en klusterprogramvara där man kan dela upp sin Zopesite i ett hierarkisk kluster av Zopeklienter och Zopeservrar. Flaskhalsen här blir att skrivningar alltid kommer behöva skrivas till den centralt placerade Zopeservern (den högst upp i hierarkin). För läsningar cachas varje läsning i Zopeklienterna (som alltså kan vara flera stycken på olika maskiner, med olika OS och applikationer om man vill; på detta sätt kan man få lastbalansering).
Det finns olika sätt att komma runt flaskhalsen med skrivningar, till exempel kan man montera Zopeservrarna som icke transaktionella ZODBer för till exempel sessionsdata eller diskussionsforum etc. En annan lösning är att helt enkelt använda en RDBS för data som skall skrivas ofta. Antingen skriver man sina applikationer direkt mot RDBS:en eller så använder man klustring med hjälp av ett RDBS-storage.
6. Utveckling i Zope
Zope stödjer flera olika utvecklingsmodeller. Bland annat vanlig webbprogrammering med det inbyggda märkordsspråket DTML (inte att förväxlas med DHTML) och Pythonscript (det skall finnas Perlskript och PHP-skript är på gång men det är inget jag vill rekommendera). Dessa skript skapas direkt från webbgränssnittet som objekt som lagras direkt i objektdatabasen och blir åtkomliga direkt från webben (om användaren har rätt rättigheter).
Det andra sättet är genom så kallade ZClasser som är ett slags produkt/applikationsutvecklingssystem. Även här arbetar man via webbgränssnittet men man paketerar sin kod som man senare kan instansiera som en ny typ av objekt i databasen.
Det tredje sättet är genom "Python Products". Dessa produkter är jämförbara med ZClasser men programmeras direkt på filsystemet och måste alltså installeras på servern innan man kan skapa dem i databasen. Python-produkter är mycket mer kraftfulla och får göra mer saker än ZClasser, men man behöver även göra mer saker för att få det att fungera, vilket kan ta lite tid att lära sig (mig tog det 2 år och då fick jag läsa mycket källkod eftersom systemdokumentationen inte alltid varit komplett. Att läsa källkoden är dock inget större problem efter lite träning eftersom Python är skapat för att vara väldigt lätt att läsa och förstå.)
http://dev.zope.org/
Ett fjärde sätt skulle man kunna säga att skapandet av CMF-siter är. CMF är ett ramverk för att bygga "communities" och portaler. Den innehåller en uppsättning tjänster som kan konfigureras för att skräddarsy sin community/portal.
I CMF kan man sätta upp sina objekttyper och skapa egna mallar eller så kallade skins.http://cmf.zope.org/
7. Dokumentation
Dokumentationen i Zope skrivs i StructuredTextNG (STXNG, http://www.zope.org/Members/jim/StructuredTextWiki/StructuredTextNG) som har kopplingar till DocBook, DOM och wiki, nämligen StructuredTextZWiki, (http://dev.zope.org/Members/jim/StructuredTextWiki/) som är en ZWiki.
8. Applikationer för Zope
En applikation som finns för Zope (det finns många och dom flesta är Open Source -- öppen källkod)) är ZWiki. Mer information finns på http://www.zope.org/
9. Mer information
10. Författare
- Författare: Johan Carlsson, http://www.torped.se/
- Diverse ändringar: Pel
11. Frågor och svar
Maila även gärna på frågan till mig på adressen: mailto:fraga_johan_om_zope@torped.se
Fråga: Var kan jag köpa Zope?
Svar: Zope är som sagt Open Source. Själva Zope-systemet är kostnadsfritt och finns att ladda ner på nätet från http://www.zope.org/Products. Här hittar du även massor av tillägg som ZEO, Databasadaptrar, ZWiki/ZWikiZC, Squishdot, IEMethod och diverse andra produkter både från Zope Corporation (som utvecklar Zope) och tredjepartsutvecklare.
Artikeln skriven 2009-01-18 av Learning4sharing
Inga kategorier för denna artikel än...Intresserad av fler artiklar?
VattenfallsmodellenFunktionellt programspråk
Graffitimålare
Halvautomatiserad
Kanadensaren
Eskimåsväng
GHCI
Algenib
Mantåg