Zope

Zope (Z Object Publishing Environment) ist ein objektorientierter, in der Programmiersprache Python geschriebener, kostenloser Webanwendungs-Server (siehe Application Server). Zope stellt eine Plattform für die Realisierung von Internetanwendungen 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.

Inhaltsverzeichnis

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.

Akquisiton

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

Als Entwicklungssprachen innerhalb von Zope stehen DTML (Document Template Markup Language), Python und Page Templates zur Verfügung. Über Externe Methoden können z. B. Python-Programme eingebunden werden.

In der Objekt-Datenbank abgelegte Python-Skripte sind aus Sicherheitsgründen in ihrer Funktionalität eingeschränkt; sie dürfen beispielsweise nicht aufs Dateisystem (im Unterschied zum Inhalt der Objektdatenbank) zugreifen. Außerhalb der ZODB, also im Dateisystem abgelegte Python-Skripte (als Teil eines Produkts, oder als Externe Methode) haben jedoch alle Möglichkeiten.

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 multithreading-fähig. Mit Hilfe von „Zope Enterprise Objects“ (ZEO) ist es außerdem möglich, dass mehrere Server (die auch geographisch weit verteilt sein können) auf dieselbe Datenbasis zugreifen; dies kann auch zur Unterstützung von Multiprozessorsystemen genutzt werden.

Portabilität

Da Zope fast vollständig in Python geschrieben ist (abgesehen von einigen in C geschriebenen, geschwindigkeitskritischen Teilen), ist es prinzipiell auf allen Plattformen lauffähig, für die ein Python-Interpreter und ein C-Compiler verfügbar ist.

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. Die Shuttleworth Foundation wurde von Mark Shuttleworth gegründet, dem Initiator von Ubuntu Linux.

Anwender

Zu den Anwendern gehören unter anderem: Die Zeit, US Navy, die NATO, GE Aircraft Engines, AARP, NASA / Space Telescope Science Institute (Hubble), NASA, The Viacom Television Stations Group (18 UPN / 16 CBS), Bank of America, Hostway, US Department of Agriculture / Cybercamp (4H), ZapMedia, Verio, StarMedia Network, WebMD, Verizon Wireless, HomeGain and Yahoo Real Estate, Marine Corps Institute, Franklin University, University of Pittsburgh Medical Center, Katholische Universität Eichstätt-Ingolstadt, Volkswagen AG sowie Afilias. In Deutschland nutzen Zope u.a. die Kassenärztliche Vereinigung Niedersachsen [1], das Arzneimittelverzeichnis Rote Liste [2], die Hilfsorganisation Opportunity International [3], der unabhängige Erdgasversorger natGAS [4], die TU München, die Lufthansa, die IOn AG, Albert-Ludwigs-Universität Freiburg [5] u.a.

Weblinks


Zope ist auch ein Name für einen Friedfisch (andere Namen: Spitzpleinze, Schwuppe)

See also: Zope, Apache HTTP Server, Application Server, C (Programmiersprache), Compiler, Die Zeit, Fische, Framework, Interpreter, Katholische Universität Eichstätt-Ingolstadt