Z Object Publishing Environment

Z Object Publishing Environment

Zope (Z Object Publishing Environment) ist ein objektorientierter, in der Programmiersprache Python geschriebener, freier Webanwendungs-Server mit offenem Quelltext. 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. Der Quellcode von Zope wurde in Teilen 1996, die gesamte Applikation 1998 Open Source.

Inhaltsverzeichnis

Geschichte

1995 wurde Digital Creations in Fredericksburg (Virginia), als Gemeinschaftsunternehmen eines Zusammenschlusses mehrerer Tageszeitungen gegründet. Die ersten Mitarbeiter waren Paul Everitt und Bob Page. Recht schnell kamen weitere Mitarbeiter wie Jim Fulton hinzu. Im Mai 1997 stieß das Tageszeitungskonsortium Digital Creations ab, die Teilhaber Paul Everitt und Bob Page bekamen den Namen, die Software und die Mitarbeiter.

Zu diesem Zeitpunkt arbeiteten bereits einige Firmen außerhalb von Digital Creations mit derem freien Produkt Bobo. Einer davon war Hadar Pedhazur, welcher ebenfalls zu der Zeit auf Digital Creations mit dem Wunsch zukam, Investor zu werden. Die Gespräche waren allerdings nicht von Erfolg gekrönt, da Hadar die Zukunft von Digital Creations als Dienstleister sah, während Paul Everitt und Bob Page ihre Produkte, unter anderem den Principia Application Server, als proprietäre Anwendungen verkaufen wollten. Ein Jahr später jedoch, nachdem sich der Erfolg nicht in dem Maße einstellte wie erhofft, kam Hadar noch einmal auf Digital Creations zu, und man einigte sich darauf, ein Dienstleistungsunternehmen zu werden, und die Produkte zu einem Produkt namens Zope zu bündeln und als freie Software zu veröffentlichen.

Im November 2004 wurde Zope 3 veröffentlicht. Es ist nahezu komplett neu geschrieben und enthält lediglich die original ZODB Objekt Datenbank und die ZPT Template engine. Mit Zope 3 wurde ein Schnitt gemacht. Statt abwärtskompatibel zu Zope 2 zu bleiben, hat man sich dazu entschlossen, die Fehler aus der Vergangenheit zu korrigieren und die interne Struktur grundlegend zu überarbeiten. Zu diesen Neuerungen gehört eine Komponentenarchitektur. Ein Nebeneffekt ist, dass viele Komponenten jetzt auch außerhalb von Zope nutzbar sind. Zur Zeit werden sowohl Zope 2 als auch Zope 3 parallel und aktiv weiterentwickelt.

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 Sicherheits-Framework, das auf sogenannten Rollen (engl. Roles) aufbaut und genaue 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.

Darüber hinaus arbeitet der Web-Benutzer nicht wie bei klassischen Skriptsprachen (wie PHP, Perl u. ä.) im Dateisystem des Servers, sondern in einer gesonderten virtuellen Umgebung. Aus dieser auszubrechen ist nur möglich, wenn es vom Entwickler gewünscht wird. Dieses System verhindert Zugriffe auf andere auf dem Server gespeicherte Informationen und unterläuft damit gängige Angriffsmuster.

HTTP-Server

Zope enthält den Webserver Zserver, eine erweiterte Version des in Python geschriebenen Servers Medusa. Ein weiterer Webserver wird nicht benötigt, kann aber dazu verwendet werden, Zope zusammen mit z. B. 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 sind in der Lage, mehrere Prozessoren zu nutzen.

Portabilität

Zope ist fast vollständig in Python geschrieben. Nur einige geschwindigkeitskritische Systemteile sind in C geschrieben. 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.

Zope 3

Seit einigen Jahren wird ein neues Zope entwickelt, Zope 3. Zope 2 hat sich als ein nützliches Framework für Webanwendungen bewährt, die eine oder andere Idee zeigte mit der Zeit jedoch ihre Schwächen. Für die damalige Zeit war Zope hervorragend erweiterbar, es war eine der Stärken von Zope. Neuere Technologien wie das Java-Framework Spring haben aber noch bessere Möglichkeiten zur Erweiterung aufgezeigt. Erweiterungen waren eng an Zope gekoppelt, weil sie nur durch Erweiterung von Zope-Basisklassen in Zope integriert werden konnten und relativ viel Code für die Zope-Integration benötigen. Zope 3 hat als Ersatz dafür das Komponenten-Modell eingeführt, bei dem dies nicht mehr nötig ist.

Eine weitere Idee war die Entwicklung von Anwendungen über die Weboberfläche. Doch schon bald zeichnete sich ab, dass man damit einige Nachteile in Kauf nahm. Es konnten keine normalen Versionskontrollsysteme für den Quelltext genutzt werden, die Integration von mächtigen Editoren war zwar möglich, aber schwierig und die Sicherheitsmechanismen sorgten dafür, dass viele Python-Module nicht einfach genutzt werden konnten. Ein Vorteil war jedoch, dass Änderungen sofort im Webbrowser getestet werden konnten. In Zope 3 kann man keine Programmlogik mehr direkt über die Weboberfläche schreiben. Programmlogik kann jedoch noch immer einfach getestet werden, da sie nun nicht mehr mit Zope gekoppelt ist und auch außerhalb von Zope als eigenständiges Programm laufen kann.

In der Summe sorgen die Änderungen auch dafür, dass Entwickler sich weniger nach Zope richten müssen. Dies hatte in der Vergangenheit viele Entwickler abgeschreckt.

Das erste stabile Release wurde am 6. November 2004 veröffentlicht. Die aktuelle Version ist Zope 3.3.1.

Grok

Zope 3 steht bei vielen Zope-Entwicklern in der Kritik, zu viel Konfiguration in Form von XML-Dateien zu benötigen. In Zope 3 ist vieles über XML-Dateien konfigurier- und änderbar. Dafür muss es explizit in den Konfigurationsdateien angegeben werden. Als Antwort darauf haben einige Entwickler Grok entwickelt, welches auf Zope 3 aufsetzt.

Grok führt das DRY-Prinzip als oberste Maxime ein. DRY steht für „Don't repeat yourself“ (engl., „Wiederhole Dich nicht“). Gemeint ist damit, dass alles nur einmalig definiert werden soll. Wenn in 90 Prozent der Fälle die Konfiguration dieselbe ist, dann sollte dies nicht explizit konfiguriert werden müssen. So lässt sich mit Grok eine komplexe Webanwendung schreiben, die mit einer Zeile XML-Konfiguration auskommt.

Anwendungen

Eine bekannte Anwendung von Zope ist das Content-Management-System Plone. 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, Hochschule der Medien Stuttgart, Hilfsorganisation Opportunity International, Humboldt-Universität zu Berlin, Kassenärztliche Vereinigung Niedersachsen, IOn AG, Katholische Universität Eichstätt-Ingolstadt, Lufthansa, die Niederländische Botschaft, 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, Amnesty International (Schweizer Sektion)

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


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Environment and sexual orientation — Sexual orientation Orientations Asexual · Bisexual · Heterosexual · Homosexual Gender based alternative concepts Androphilia and gynephilia · Human female sexuality  …   Wikipedia

  • Media and Publishing — ▪ 2007 Introduction The Frankfurt Book Fair enjoyed a record number of exhibitors, and the distribution of free newspapers surged. TV broadcasters experimented with ways of engaging their audience via the Internet; mobile TV grew; magazine… …   Universalium

  • Digital object identifier — For the use of digital object identifiers on Wikipedia, see Wikipedia:Digital Object Identifier. A digital object identifier (DOI) is a character string (a digital identifier ) used to uniquely identify an object such as an electronic document.… …   Wikipedia

  • Unidentified flying object — UFO redirects here. For other uses, see UFO (disambiguation). Photograph of alleged UFO, New Jersey, July 31, 1952 A term originally coined by …   Wikipedia

  • Common Object Request Broker Architecture — The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) that enables software components written in multiple computer languages and running on multiple computers to work together (i.e., it… …   Wikipedia

  • Virtual learning environment — Defined largely by usage, the term virtual learning environment (VLE) has most, if not all, of the following salient properties: It is Web based It uses Web 2.0 tools for rich 2 way interaction It includes a content management system It models… …   Wikipedia

  • Repository (publishing) — A repository in publishing, and especially in academic publishing, is a real or virtual facility for the deposit of academic publications, such as academic journal articles. Deposit of material in such a site may be mandatory for a certain group …   Wikipedia

  • Zope — Infobox Software name = Zope caption = Zope management interface in a web browser window. collapsible = yes developer = Zope Corporation status = Active latest release version = 3.3.1 latest release date = release date|2007|01|14 latest preview… …   Wikipedia

  • Rekursive Abkürzung — Als rekursives Akronym bezeichnet man eine Abkürzung, die in der Erklärung ihrer Bedeutung rekursiv auf sich selbst verweist, d. h. paradoxerweise seine eigene Abkürzung als Teil des ausgeschriebenen Begriffs enthält (siehe Konstruktionsmethoden) …   Deutsch Wikipedia

  • Rekursive Abkürzungen — Als rekursives Akronym bezeichnet man eine Abkürzung, die in der Erklärung ihrer Bedeutung rekursiv auf sich selbst verweist, d. h. paradoxerweise seine eigene Abkürzung als Teil des ausgeschriebenen Begriffs enthält (siehe Konstruktionsmethoden) …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”