Zope - ein einfaches Content Management System

Brano Ivakovic

... [ Seminar "Java und Werkzeuge für das Web" ] ... [ Inhaltsverzeichnis ] ... [ zurück ] ... [ weiter ] ...

Übersicht: Einführung


Einleitung

Unter der Perspektive eines Content Management-Systems wird in der vorliegenden Arbeit der bekannteste Open-Source Content-Management- und Web-Applikationsserver Zope vorgestellt. Zope kann bereits 'out of the box' als reines Content Management System eingesetzt werden: Über die komfortable Web-Schnittstelle können neue Manager, Benutzer, Unterbereiche und Dokumente angelegt sowie Bilder und HTML-Seiten hochgeladen werden. Als Open-Source-Software ist der Download und die Nutzung kostenlos, und der Quellcode liegt offen, mit der Möglichkeit der Überprüfung und Erweiterung. Zope beruht auf der objektorientierten Programmiersprache Python, mit einigen Performance-kritischen Teilen in C.
Als Konkurrenten von Zope sind auf dem Markt der Middleware-Produkte z.B. Cold Fusion, Netscape Application Server, PHP, mod_perl, Frontier und Vignette anzusehen.
Die Autoren des offiziellen 'Zope-Book' und Mitentwickler definieren Zope (steht für "Z Object Publishing Environment") als ein "Rahmenwerk zum Erstellen von Web-Anwendungen".
Eine Web-Anwendung ist vor allem als dynamische Web-Site vorstellbar, die über statische Informationen hinaus dynamische Werkzeuge bereitstellt.
Beispiele sind
Sites zum Suchen im Internet, Software für Projektzusammenarbeit (z.B. SourceForge), E-Mail-Kommunikationsprogramme (z.B. Web.de), Portal- und Intranet-Sites, Vereinshomepages usw. Alle Sites lösen verschiedene Problemstellungen, wickeln aber auch Routineangelegenheiten ab, bei denen Zope unterstützend wirkt: Einige der Hauptverwendungen von Zope sind: Darstellung dynamischer Inhalte, Web-Site-Verwaltung und -Sicherheit, Netzwerkdienste, Einbindung verschiedenartiger Inhalte und Skalierbarkeit.
Vor einigen Jahren wurde Zopes Vorgänger von der Firma Digital Creations für ein Internet-Dienstleistungsunternehmen entworfen, das Web-Seiten für Zeitungen lieferte. Diese Zeitungen wiederum wollten Web-Seiten für ihre Kunden liefern, daher basiert Zope auf einem Geschäftsmodell der Art "Kunden, die Kunden haben, die Kunden haben ...". Einen Schwerpunkt dieser Arbeit bilden Content Management-Aspekte von Zope, daher ist den Begriffen 'Content Management' und 'Content Management System' Bedeutung beizumessen.

Begriffsdefinition: Content Management / Content Management Systeme

Das Fraunhofer Institut für Arbeitswirtschaft und Organisation IAO definiert Content Management wie folgt: "Content Management ist Handling digitaler Informationen in allen Prozessen bzw. Prozessschritten von der Entstehung bis zur Distribution und Verwendung."
Ein Content Management System zur Unterstützung dieser Aufgabe ist ein "Softwaresystem für das Administrieren von Webinhalten mit Unterstützung des Erstellungsprozesses basierend auf der Trennung von Inhalten und Struktur" (http://www.contentmanager.de).
In vielen Anwendungen soll lediglich eine Website betrieben werden. Zur Gruppe der dafür geschaffenen 'Web-based Content Management Systems' (WCMS) kann auch Zope gezählt werden.
Ein umfassender Definitionsansatz für Content Management Systeme (gem. Rothfuss und Ried) führt konkrete Merkmale auf und differenziert in Systeme erster und zweiter Ordnung:

Content Management erster Ordnung: Datenhaltungssystem

Content Management zweiter Ordnung: Redaktionssystem oder Publishing System

- Systematische Sammlung und Verwaltung von Informationsbausteinen in einem einzigen
  logischen Bestand
- Bereitstellung von Anfragemethoden und Mechanismen für die sichere Arbeit ganzer Nutzer-
  gruppen mit diesem Inhaltsbestand ("Content Base")
- Systematische Sammlung, Erstellung, Speicherung und Veredelung von strukturierten
  Inhalten und Mediendaten aller Art in einem einzigen, fein granulierten logischen Bestand
- Gezielte Unterstützung der sicheren Aggregation, Veredelung, Verarbeitung,  Auswertung
  und Wiederverwendung dieser Content Base durch ganze Benutzergruppen

Content Management-Systeme zweiter Ordnung sollten folgende Zusatzmerkmale aufweisen: Bearbeitung und Verifikation, Aufzeichnung atomarer Veränderungen, Aggregierung und Beziehungen, Versionsverwaltung, Mehrsprachfähigkeit, Workflow, Gestaltung, Verarbeitungsfunktionen und die Fremdformatwandlung.


Wesentliche Merkmale

Einfaches Content-Management

Im Sinne des Content Management hat es sich als vorteilhaft erwiesen, Web-Anwendungen in drei Ebenen aufzugliedern: 1.
Daten befinden sich in Datenbanken, 2. Programme, die das Verhalten der Anwendung bestimmen, in Dateien an einem Ort und 3. HTML- und andere Layoutinformationen an einem anderen. Dazu müssen jedoch verschiedene Arten von Hilfsprogrammen mit unterschiedlichen Sicherheits- und Wartungskonzepten und z.T. aufwändiger Handhabung eingesetzt werden. Die Komponenten erfordern einen gemeinsamen Satz an Diensten: Sicherheit, Web-basierte Verwaltung, Suchfunktionen, Gruppierung, Verteilung u.a. In Zope werden all diese Komponenten und Konzepte in einem schlüssigen und handhabbaren System zusammengebracht. Diese Zentralisierung des Modells erleichtert die Zusammenarbeit mit externen Hilfsprogrammen wie relationalen Datenbanken, GUI-Web-Editoren und anderen Systemen.

Nutzergruppen

Besonders bei großen Sites kann die Verwaltung und Koordination folgender Nutzergruppen ein aufwändiges Unterfangen sein: Konsumenten verwenden eine Site, um nach nützlichem Inhalt zu suchen und damit zu arbeiten, Geschäftliche Nutzer erstellen und verwalten Inhalte der Site, Site-Designer erstellen das Look-And-Feel der Site, Site-Entwickler programmieren die Dienste der Site, Komponentenentwickler erstellen Software für die spätere Weitergabe, Administratoren halten die Software und die Umgebung am Laufen und Informationsarchitekten treffen Plattformentscheidungen und behalten das Gesamtbild im Auge.
Zope ist eine Plattform, auf der Site-Entwickler Anwendungen an Site-Designer und geschäftliche Nutzer, und Komponentenentwickler neue Produkte und Anwendungen weltweit an Zope-
Benutzer weitergeben. Unter Zope können sog. 'Products' als Add-Ons installiert werden, die unterschiedlichste Zielgruppen befriedigen, von der Kreditkartenverwaltung bis zu Diskussionsforen. Zum Beispiel ist "Squishdot" ein beliebtes, mit Zope verfasstes Weblog, das von Beginn an benutzt werden kann. Für Squishdot-Benutzer ist es kaum zu merken, dass dieses System auf Zope basiert. Andere Zope-Produkte wie das "Content Management Framework" der Zope Corporation benutzen den selben Ansatz.


Architektur und Komponenten

Abb. 1 veranschaulicht die prinzipielle Arbeitsweise und Architektur von Zope, die in Abb. 2 in höherer Detailstufe dargestellt wird:

Allgemeine Architektur    
Abb. 1: Allgemeine Architektur

Auf Basis von Datenbankzugriffen werden unter Zuhilfenahme verschiedener Elemente im Modul Zope dynamisch Seiten generiert. Darin können auch Festlegungen zum Seitendesign getroffen  werden. Die fertig generierte Web-Seite (kann auch im XML-Format erstellt werden) wird via HTTP an das System übermittelt, auf dem der Clientbrowser läuft.
Das nachstehende Schaubild von der offiziellen Zope-Homepage gewährt detailliertere Einblicke in den internen Aufbau, die Architektur und daran beteiligte Komponenten:

Architektur
Abb. 2: Schematische Zope-Architektur


Die folgende Tabelle umfasst eine stichwortartige Beschreibung der wesentlichen Zope-Architekturkomponenten:

ZServer
- integrierter Web-Server, stellt flexible Internetverbindungen bereit und liefert dem Entwickler und den Benutzern Inhalt
- erweiterte Version des Python-Servers Medusa
- unterstützt viele Netzwerkprotokolle wie HTTP, FTP, WebDAV, XML-RPC, FastCGI, and PCGI
- kann mit bestehenden Web-Servern zusammenarbeiten (z.B. Apache, MS IIS und anderen, die CGI unterstützen)
Zope-Kern
- umfasst ein Web-ORB (Object Request Broker), eine Suchmaschine, Sicherheitsschicht u.a.
Objektdatenbank (ZODB)
- bei der Nutzung von Zope wird hauptsächlich mit Objekten gearbeitet, die in der ZODB gespeichert sind
-
objektorientierte DB, mit der Objekte und ihre Zustandsvariablen einfach serialisiert und abgespeichert werden können
- unterstützt Transaktionen, undo, private Versionen (Versionsobjekte), kann Daten im Umfang von mehreren GB verwalten
- optionale Enterprise-Option, die Skalierbarkeit und failover anbietet
 
RDMBS-Integration
- einfache und leistungsfähige Verbindungen zu führenden Datenbanken wie Oracle, PostgreSQL, Sybase, MySQL u.a.
- Bereitstellung von ODBC-Treibern

Zope-Produkte
- Neben den integrierten Zope-Objekten können auch Zope-Objekte von Drittherstellern ("Products", z.B. unter
  http://www.zope.org) installiert werden, um Zopes Leistungsspektrum zu erweitern

- erweitern den Zope-Kern durch Hinzufügen neuer Objekttypen und Funktionalitäten (geschrieben in Python)
ZClasses
- erweitern den Zope-Kern durch Hinzufügen neuer Objekttypen (Erzeugung über das Web)
- erfordern keine Programmierung und können einfach verteilt und installiert werden

Tab. 2: Bausteine der Zope-Architektur

Zur Interaktion mit der Verwaltungsschnittstelle von Zope, dem Management Interface, kann ein Web-Browser verwendet werden. Zopes Verwaltungsschnittstelle liefert eine einfache Art der Objektverwaltung, vergleichbar einem Dateimanager, und ist auch eine Entwicklungsumgebung zur Erstellung von Web-Seiten, Hinzufügen von Dokumente und Abbildungen, Anbindung relationaler Datenbanken und Skriptprogrammierung.
Nachstehendes Bild verdeutlicht die globale Systemarchitektur, die sich aus einer Darstellung der Zope-Architektur-Komponenten und den damit in Zusammenhang stehenden Objekten zur Site-Erzeugung bzw. Werkzeugen auf der entsprechenden Ebene der Systemarchitektur ergibt:

Globale Systemarchitektur    
Abb. 3: Globale Systemarchitektur 


... [ Seminar "Java und Werkzeuge für das Web" ] ... [ Inhaltsverzeichnis ] ... [ zurück ] ... [ weiter ] ...