Zope

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Wechseln zu:Navigation, Suche

1 Definition

Zope steht für das Akronym Z-Object-Publishing-Environment. Zope ist ein Open-Source-Applikationsserver, der die Programmierer bei der Entwicklung von datenbankgestützten, dynamischen Internetanwendungen unterstützt. Mögliche Internetanwendungen sind zum Beispiel Content-Management-Systeme (CMS), Dokumenten-Management-Systeme, aber auch ERP- und E-Commerce-Plattformen.

2 Historie

Jim Fulton arbeitete für das Unternehmen Digital Creations. 1996 sollte er eine Schulung über CGI-Programmierung halten. Obwohl er sich selbst nicht allzu gut mit der Materie auskannte. Nachdem er sich in die CGI-Programmierung eingearbeitet hatte, überlegte er sich, was er an den traditionellen cgi-basierten Entwicklungsumgebungen nicht mochte. So begann er für seinen Arbeitgeber Digital Creations diverse Softwaremodule zu entwickeln. Zu diesen zählten unteranderem die drei Open-Source-Software-Pakete Bobo, Document Template und BoboPOS. Sie wurden in der Programmiersprache Python erstellt und stellten eine Web-Publishing-Oberfläche, Textschablonen in Form von Templates und eine objektorientierte Datenbank zu Verfügung. Desweiteren entwickelte Digital Creations einen kommerziellen Webapplikationsserver, namens Principia, welcher auf den Open-Source-Software-Pakten aufsetzte.

Im November 1998 überzeugte der Investor Hadar Pedhazur die Geschäftsleitung von Digital Creations von der Idee, Principia als Open-Source-Webapplicationsserver mit den zugehörigen Software-Paketen anzubieten. So wurde aus dem kommerziellen Principa der Open-Source-Webapplikationsserver Zope. Im selben Zug firmierte sich Digital Creations in die Zope Corporation (ZC) um. Jim Fulton ist heute der CTO der Zope Corporation.

Im März 2006 wurde die Zope Foundation gegründet. Sie hat die Code-Repositories und das geistige Eigentum "Zope" von der Zope Corporation übernommen und fungiert als nicht-kommerzielle Stiftung, welche die Weiterentwicklung von Zope koordiniert und fördert. Zope ist bis auf wenige geschwindigkeitskritische Systemteile, welche in C programmiert wurden, vollständig in Python erstellt worden.

Die offizielle englischsprachige Webseiste der Zope-Community lautet http://www.zope.org/. Eine deutsprachige Zope-Community-Webseite ist unter http://www.zope.de/ verfügbar.

3 Lizenz

Zope wird unter einer Open-Source-Lizenz der Zope Public License (ZPL) vertrieben. Die ZPL genehmigt die Modifikation des Zope-Quellcodes. Im Gegensatz zur GNU General Public License (GPL) müssen Modifikationen, Erweiterungen oder Änderungen des Zope-Quellcodes nicht für die Allgemeinheit veröffentlicht, unter die GNU-Public-License gestellt oder an die Zope Corporation gemeldet werden. Die ZPL kann unter http://www.zope.org/Resources/License/ eingesehen werden.

Die Open-Source-Initiative (OSI) zertifizierte die ZPL als OSD kompatibel.

Zope ist kostenfrei. Ferner ist es erlaubt Zope für die Entwicklung und Bereitstellung von eigenen Webapplikationen, sowohl kommerziell als auch privat, ohne Lizenzkosten zu verwenden.

4 Funktionsumfang

Zope arbeitet objektorientiert, ist portabel, plattformunabhängig und für alle gängigen Betriebssysteme verfügbar. Ziel von Zope ist es, die Realisierung von dynamischen Webseiten zu vereinfachen. Hierfür stehen eigene Entwicklungssprachen wie DTML (Document-Template-Markup-Language), TAL (Template-Attribute-Language) und Python zu Verfügung. DTML gilt mittlerweile als veraltet und TAL gilt als dessen Nachfolger. TAL ist eine Attributsprache und kann in die Tags von HTML und XML direkt integriert werden.

Die Administration erfolgt über die webbasierte Oberfläche. Im Unterschied zu anderen Applikationsservern, werden nicht die HTML-Seiten an sich verwaltet, sondern nur die Objekte aus denen sich eine HTML-Seite zusammensetzt. Man könnte auch sagen, dass Zope ein System zum Publizieren von Objekten ist. Diese Objekte sind in der ZODB abgelegt und werden über eine Webschnittstelle dem Benutzer zugänglich gemacht.

Das ZEO-Konzept (Zope-Enterprise-Objects) ermöglicht mehreren Servern (die aus mehreren Prozessoren bestehen können), durch softwareseitiges Multithreading auf die gleiche Datenbasis zuzugreifen.

Anders als bei klassischen Skripsprachen (PHP, Perl, usw.) arbeiten die Webanwender nicht im Dateisystem des Servers, sondern in einer gesonderten virutellen Umgebung, aus der sie nicht ausbrechen können. Anwender können sich nur innerhalb der Grenzen eines Objektes bewegen, für das sie auch Rechte besitzten.

Die Vererbung von Fähigkeiten oder Eigenschaften spielt eine wichtige Rolle. Objekte, die wiederum Unterobjekte enthalten, vererben an diese z.B. Benutzerrollen, Layout oder E-Mail-Funktionen. Diese Vererbungskette kann nur in einem Unterordner, durch explizite Angaben unterbrochen werden.

5 Aufbau

Zope besteht aus drei Komponenten: ZServer (Webapplikationsserver), ZODB (objektorientierte Datenbank) und einem Zope Kern, welcher die ZClasses und die Zope Produkte einschließt. Der ZServer kann über Protokollschnittstellen wie HTTP, FTP, WebDAV, XML-RPC oder FastCGI/PCGI mit zusätzlichen Webapplikationsservern wie Apache oder Microsoft IIS kommunizieren und parallel betrieben werden. Über die vordefinierten Datenbankadapter können andere relationale Datenbanksysteme wie MySQL, ODBC, Oracle usw. integriert werden. Ebenfalls ist eine Anbindung von externen Dateisystemen wie LDAP oder Active-Directory möglich.

Der ZServer stellt Anwendern, über den Browser oder über oben genannte Schnittstellen, Webinhalte der Applikationen zu Verfügung.

Der Zope-Kern ist zuständig für das ZMI (Zope Management Interface), welche der Administration von Zope dient. Hierfür wird eine leistungsfähige Engine bereitgestellt. Ferner werden die ZClasses und Zope Produkte über den Zope-Kern eingebunden.

Die ZClasses sind sogenannte Muster für Objekte, die von Programmierern für ihre Anwendungen in Zope entwickelt werden. Hierbei können Eigenschaften und Methoden definiert werden, die das Objekt betreffen. Die Erstellung von ZClasses kann in der integrierten Entwicklungsumgebung von Zope erfolgen oder der Quellcode kann von extern importiert werden.

Die objektorientierte Datenbank (ZODB) ist performant und unabhängig von Zope einsetzbar. Sie dient zur Ablage aller Objekte, Templates, Skripte, usw. Die Darstellung der Objekte erfolgt in der Baumstruktur, ähnlich dem Windows-Filesystem im Explorer. Zusätzliche Funktionen der ZODB sind: Eine integrierte Suchmaschine, Undo-Funktionen, Versionsverwaltung und Sessions. Die ZODB behandelt jede Webanfrage als separate Transaktion. Treten Fehler in einer Anwendung, während einer Anfrage auf, werden alle Änderungen automatisch durch ein Rollback rückgängig gemacht.

Zope-Architektur.gif

Quelle: Latteier et al.(2009), nachgezeichnet von C. Herold.

6 Zielpersonen

Zope richtet sich vor allem an Entwickler, mittlere Unternehmen, Verbände, Organisationen und Betreiber großer Webseiten. Es soll die Möglichkeit entstehen über das Intra- oder Internet wichtige Geschäfts- und Kommunikationsprozesse abzuwickeln.

Speziell für Entwickler stellt Zope einige Features bereit. Der Browser ist das Entwicklungswerkzeug, somit ist weitere Software für die Arbeit mit Zope nicht zwingend notwendig, aber vielleicht komfortabler. Der Import von Quelltexten, die mit anderen Editoren erstellt wurden, ist möglich. Alle Arbeitsschritte werden mit einer Speicherung abgeschlossen und in der ZODB abgelegt. Objekte können über Suchfunktionen nach verschiedenen Kriterien gesucht werden. Die Suchfunktion kann auch in eigene Applikationen eingebunden und über Indizes konfiguriert werden. Einzelne Bereiche oder die gesamte Applikation kann in Versionen bearbeitet werden. Dies erfolgt intern, sodass im laufenden Betrieb Entwicklerteams an Bereichen einer Applikation arbeiten können. Desweiteren besitzt Zope eine integrierte Benutzerverwaltung, die mit Rechten und Rollen operiert. Entwickler können auch mit Hilfe von Pythoncode selbst eigene Produkte für Zope schreiben und anschließend ins Zope-System integrieren.

7 Anwendungen/Produkte

Es stehen für Zope eine Vielzahl von Content- und Dokumenten-Management-Systemen, ERP-Applikationen, E-Commerce-, Groupware-, E-Learning- und Helpdesk-Anwendungen bereit.

Eine Liste aller Produkte, die nach Kategorien sortiert ist, kann unter http://www.zope.org/Products/ eingesehen werden.

Das bekannteste CMS-System, welches auf Zope aussetzt ist Plone. Eine weitere Anwendung ist die Enterprise-Ressource-Planning-Software ERP5, auf Basis von Zope und MySQL, die von der Firma Nexedi entwickelt wurde.

8 Quellen

9 Siehe auch