Benutzerspezifische Werkzeuge
Artikelaktionen

Zope (Webanwendungsserver)

aus Wikipedia, der freien Enzyklopädie

Zope (Z Object Publishing Environment) ist ein objektorientierter, in der Programmiersprache Python geschriebener, kostenloser Webanwendungs-Server mit offenem Quellcode (siehe Application Server). Zope stellt eine Plattform für die Realisierung von Webanwendungen dar und eignet sich sehr gut zum Erstellen von dynamischen Webauftritten, da es prinzipiell darauf ausgerichtet ist, den Inhalt von der Gestaltung der Website zu trennen. Die erste Version erschien 2001.

Inhaltsverzeichnis

[Verbergen]

Merkmale

Erweiterbarkeit

Die Funktionalität von Zope kann durch eine große Anzahl von frei erhältlichen Erweiterungen, den sogenannten Produkten (engl. Products), den Bedürfnissen angepasst werden, z. B.:

Diese Erweitungen werden jeweils in einem eigenen Verzeichnis im Dateisystem abgelegt und lassen sich durch Löschen des Verzeichnisses und Neustart von Zope rückstandslos wieder entfernen. Es steht ihnen der volle Umfang der Programmiersprache Python zur Verfügung, incl. der Einbindung von in Python oder C geschriebenen Bibliotheken.

Die Produkte werden von der inzwischen sehr großen Benutzergemeinde entwickelt und gepflegt.

Objekt-Datenbank

Basis vieler Eigenschaften von Zope ist die Objekt-Datenbank ZODB, in der die dynamisch veränderlichen Inhalte abgelegt werden (sofern sie nicht aus zusätzlich angebundenen relationalen Datenbanken stammen). Die ZODB enthält alle vorhandenen Objekte in einem hierarchischen Baum und bildet die Grundlage der Akquisition.

Sie ist sehr performant und auch unabhängig von Zope nutzbar.

Akquisition

Ein charakteristisches Konzept ist das der Akquisition, d. h. des Erbens vom enthaltenden Objekt. Auf diese Weise können Eigenschaften und Methoden in einen ganzen Unterbaum 'vererbt' werden; dies ist die wichtigste Grundlage von mit „Zope-Bordmitteln“ realisierten dynamischen Internet-Präsenzen.

Entwicklungssprachen

An Entwicklungssprachen bietet Zope die Document Template Markup Language (DTML), die Programmiersprache Python und die Zope Page Templates (ZPT). DTML wird zwar noch sehr oft eingesetzt, gilt heute im Zope-Umfeld aber als veraltet. Die Verwendung von Python und ZPT erlaubt eine bessere Trennung von Darstellung und Programmlogik und ist daher DTML vorzuziehen.


Beispielsweise kann ein Python-Programm als internes Python-Script (Script (Python)) hinterlegt oder als externe Methode (External Method) eingebunden werden. Ein internes Python-Script wird in der Objektdatenbank ZODB gespeichert und wird aus Sicherheitsgründen in seiner Funktionalität beschränkt. So ist zum Beispiel der Zugriff auf das Dateisystem gesperrt und auf die Objektdatenbank erlaubt. Eine externe Methode befindet sich hingegen im Dateisystem und wird über ein Zope-Objekt eingebunden. Für diese Methoden gibt es keine Zugriffsbeschränkungen.

Sicherheit

Zope verfügt über ein ausgefeiltes Sicherheits-Framework, das auf sogenannten Rollen (engl. Roles) aufbaut und sehr feine Festlegungen erlaubt, wer wo was darf. Für jedes einzelne Objekt kann festgelegt werden, welche Rolle für welche Art des Zugriffs benötigt wird; diese Rollen können den einzelnen Usern auch lokal zugewiesen werden, um ihnen z. B. Zugriff nur in einem bestimmten Teilbaum zu gewähren.

Besonders zu erwähnen ist die Tatsache, dass der Web-Benutzer nicht wie bei klassischen Skriptsprachen (wie PHP, Perl u. ä.) im Dateisystem des Servers arbeitet, sondern in einer gesonderten virtuellen Umgebung. Aus dieser auszubrechen ist nur möglich, wenn es vom Entwickler gewünscht wird. Dieses System verhindert zuverlässig Zugriffe auf andere Informationen, die auf dem Server gespeichert sind und unterläuft so viele der üblichen Angriffsmuster.

HTTP-Server

Zope enthält den Webserver Zserver, eine erweiterte Version des in Python geschriebenen Servers Medusa. Ein weiterer Webserver wird daher nicht benötigt. Es ist jedoch problemlos möglich (und wird auch oft praktiziert), Zope „hinter“ einem Apache-Webserver zu betreiben.

Skalierbarkeit

Zope ist zu softwareseitigem Multithreading fähig. Die Lastverteilung einer Zope-Instanz auf mehrere Prozessoren wird aber durch eine globale Sperre des Python-Interpreters verhindert. Mit Hilfe von „Zope Enterprise Objects“ (ZEO) ist es möglich, dass mehrere Server auf dieselbe Datenbasis zugreifen. Derart verteilte Systeme können dann auch mehrere Prozessoren nutzen.

Portabilität

Zope ist fast vollständig in Python geschrieben. Ausgenommen sind einige in C geschriebene geschwindigkeitskritische Systemteile. Das gesamte System kann somit prinzipiell auf allen Plattformen mit einem Python-Interpreter und einem C-Compiler ausgeführt werden.

Für Linux, Windows, BSD, Mac OS X und Solaris werden vorübersetzte Pakete angeboten. Die Pakete enthalten Zope und Python.

Anwendungen

Eine bekannte Anwendung von Zope ist das Content-Management-System Plone oder das Workflowmanagement System Openflow. Ebenso wird das Programm Schooltool von der Shuttleworth Foundation mit Zope 3 entwickelt.

Anwender

Zu den Anwendern gehören: AARP, Afilias, Bank of America, Franklin University, GE Aircraft Engines, HomeGain and Yahoo Real Estate, Hostway, NASA / Space Telescope Science Institute (Hubble), NATO, StarMedia Network, The Viacom Television Stations Group (18 UPN / 16 CBS), University of Pittsburgh Medical Center, US Department of Agriculture / Cybercamp (4H), Marine Corps Institute, US Navy, Verio, Verizon Wireless, WebMD, ZapMedia.

In Deutschland nutzen Zope unter anderem: Albert-Ludwigs-Universität Freiburg, Die Zeit, Hilfsorganisation Opportunity International, Humboldt-Universität zu Berlin, Kassenärztliche Vereinigung Niedersachsen, IOn AG, Katholische Universität Eichstätt-Ingolstadt, Lufthansa, unabhängige Erdgasversorger natGAS, Arzneimittelverzeichnis Rote Liste, Stadt Karlsruhe, Summa Cultura GmbH, TU München, Volkswagen AG, die Deutsche Rentenversicherung Bund.

In Österreich nutzen Zope unter anderem: Österreichische Hochschülerinnen- und Hochschülerschaft.

In der Schweiz nutzen Zope unter anderem: ETH Zürich.

Seit 2001 existiert die DZUG (Deutschsprachige Zope User Group) in der die Community-Aktivitäten rund um Zope im deutschsprachigen Raum gebündelt und unterstützt werden. Die DZUG versteht sich darüber hinaus als Interessenvertretung der deutschsprachigen Anwender von Zope.

Weblinks