Zope

Der ursprüngliche Python-Webanwendungsserver - die Grundlage für Plone und Inspiration für Guillotina.

Das Original

Zope ist der ursprüngliche, in Python geschriebene Open-Source-Webanwendungsserver, der sich durch eine Komponentenarchitektur und ein objektorientiertes, hierarchisches Datenmodell auszeichnet. Mit Zope erhalten Sie eine saubere Trennung von Daten, Logik und Präsentation, eine große Auswahl an eingebauten Objekten und ein leistungsstarkes Sicherheitsmodell. Diese Eigenschaften ermöglichen es Entwicklern, sich auf ihre Problemdomäne zu konzentrieren, anstatt grundlegende Dienste implementieren zu müssen.

Zope wurde 1996 von Jim Fulton erfunden, nachdem er einen Kurs über CGI-Programmierung - Common Gateway Interface - gehalten hatte, die damals gängige Methode zur Erstellung dynamischer Websites. Auf dem Heimflug nach der Vorlesung überlegte Jim, was ihm an CGI nicht gefiel, und schrieb die Kernkomponenten dessen, was später Zope werden sollte.

Jims Unternehmen entwickelte daraufhin einen kommerziellen Anwendungsserver namens Principia, der auf diesen Komponenten basierte. 1998 wurde Principia als Open Source veröffentlicht und die Zope-Gemeinschaft war geboren.

Zope ist die Grundlage von Plone und ein Hauptgrund dafür, dass Plone eine ausgezeichnete Sicherheitsbilanz aufweist. Zope diente auch als eine der Inspirationen für Guillotina.

Traversal, Templating, und mehr

Die grundlegenden Komponenten, die Jim 1996 erfand, werden auch heute noch verwendet.

  • Ein Web-Publishing-System, das auf dem Konzept des Durchlaufens einer Objekthierarchie basiert
  • Eine Template-Engine, die Templates mit Daten kombiniert, um HTML zu erzeugen
  • Eine Objektdatenbank, die atomare Transaktionen, Garbage Collection und binäre große Objekte unterstützt - die ZODB (Zope Object Database)

In den späten 90er und frühen 2000er Jahren entwickelte die Zope-Gemeinschaft eine Reihe von zusätzlichen Komponenten, die Schlüsselelemente von Plone sind.

  • Das Content Management Framework (CMF), das Dienste und Inhaltsobjekte für die Erstellung dynamischer, inhaltsorientierter Websites bereitstellt
  • Die Zope Component Architecture (ZCA) bietet Möglichkeiten zum Definieren, Registrieren und Nachschlagen von Komponenten, ideal für die Erstellung von Anwendungen, die auf lose gekoppelten Komponenten basieren.

Sicherheit

Die integrierte Sicherheitsarchitektur nutzt die Konzepte von Benutzern, Rollen und Berechtigungen, um eine fein abgestufte Zugriffskontrolle bis auf die Ebene der einzelnen Inhaltsobjekte, ihrer Attribute und Methoden zu ermöglichen. Die Erfolgsbilanz bei Schwachstellen ist ein greifbarer Beweis für die Konzepte und die Umsetzung: Im Oktober 2020 listet die NIST National Vulnerability Database gerade einmal 43 Berichte über Schwachstellen in der 21-jährigen Geschichte von Zope auf, verglichen mit 523 für Typo3, 1083 für Drupal, 3000 für Wordpress, 5671 für Java und 28.290 für PHP.

Erweiterbarkeit

Die Zope-Gemeinschaft hat eine große Bibliothek von Zope-Erweiterungen erstellt, die Bausteine für alle Anwendungsanforderungen bereitstellen.

Mehr erfahren!

Zope ist auch heute noch im Einsatz und wird aktiv weiterentwickelt. Lesen Sie das Zope-Buch, das Zope-Entwicklerhandbuch oder besuchen Sie die Hauptseite der Zope-Dokumentation.