Deutsche Zope User Group
Gast 2 Benutzer online
DZUG-News

Zopebuch: Inhaltsverzeichnis

Kapitel 1: Einführung in Zope

Dieses Kapitel erklärt, was Zope ist und für wen es gedacht ist. Es beschreibt in groben Zügen, was Sie mit Zope tun können. Sie lernen auch die Unterschiede zwischen Zope und anderen Web-Anwendungs-Servern kennen.

Was ist Zope?

Zope ist ein Rahmenwerk zum Erstellen von Web-Anwendungen. Eine Web-Anwendung ist ein Computerprogramm, auf das Benutzer mit einem Web-Browser über das Internet zugreifen. Sie können sich eine Web-Anwendung auch als eine dynamische Web-Site vorstellen, die den Benutzern nicht nur statische Information liefert, sondern Sie dynamische Werkzeuge verwenden lässt, um mit einer Anwendung zu arbeiten.

Web-Anwendungen sind überall und Web-Benutzer arbeiten ständig mit ihnen. Geläufige Beispiele für Web-Anwendungen sind Sites, mit denen Sie das Netz durchsuchen können, wie Yahoo, bei Projekten zusammenarbeiten können, wie SourceForge, über E-Mail mit anderen Leuten kommunizieren können, wie HotMail. All diese Arten von Anwendungs können mit Zope erstellt werden.

Was bekommt man nun, wenn man Zope herunterlädt? Sie bekommen eigentlich viele Dinge. Zope besteht aus mehreren verschiedenen Komponenten, die zusammenarbeiten, um Ihnen zu helfen, Web-Anwendungen aufzubauen. Zope kommt mit:

Einem Web-Server
Zope enthält einen integrierten Web-Server, der Ihren und Ihren Benutzern Inhalt liefert. Natürlich können Sie, wenn diesen nicht benutzen wollen, einen schon vorhandenen Web-Server nutzen, wie Apache oder Microsoft IIS. Sie müssen sich keine Sorgen machen. Zope arbeitet auch mit diesen Web-Servern und jedem anderen Web-Server der das Common Gateway Interface (CGI-Standard) unterstützt.
Einer Web-basierten Benutzerschnittstelle
Wenn Sie Web-Anwendungen mit Zope aufbauen, verwenden Sie Ihren Web-Browser, um mit Zopes Verwaltungsschnittstelle, dem Management Interface, zu interagieren. Diese Schnittstelle ist eine Entwicklungsumgebung, die es Ihnen erlaubt Dinge zu tun wie das Erstellen von Web-Seiten, das Hinzufügen von Abbildungen und Dokumenten, das Anbinden externer relationaler Datenbanken und das Schreiben von Skripten in verschiedenen Sprachen.
Eine Objektdatenbank
Wenn Sie mit Zope arbeiten, arbeiten Sie hauptsächlich mit Objekten, die in Zopes Objektdatenbank gespeichert sind. Zopes Verwaltungsschnittstelle liefert eine einfache, vertraute Art, Objekte zu verwalten, die etwa dem vorgehen bei üblichen Dateimanagern funktioniert.
Relationale Integration
Sie müssen Ihre Informationen nicht in Zopes Objektdatenbank speichern, wenn Sie nicht wollen, weil Zope mit anderen relationalen Datenbanken wie Oracle, PostgreSQL, Sybase, MySQL und vielen anderen arbeitet.
Unterstützung von Scripting-Sprachen
Zope erlaubt Ihnen, Web-Anwendungen in einer Vielzahl von verschiedenen Sprachen wie Python, Perl, oder Zopes eigener "Document Template Markup Language" (DTML) zu schreiben.

Dies sind nur einige der überzeugenden Merkmale, die Zope bei der Entwicklung von Web-Anwendungen so beliebt gemacht haben. Vielleicht ist Zopes bestes Feature von allen seine freundliche, Open-Source-Lizenz. Das heißt, nicht nur dass das Herunterladen von Zope kostenlos ist, sondern auch dass Sie Zope ohne Linzenzzahlungen oder Benutzungsgebühren in Ihren eigenen Produkten und Anwendungen verwenden dürfen. Zopes Open-Source-Lizenz bedeutet auch, dass der gesamte "Quellcode" von Zope für Sie offen liegt. Sie können Ihn überprüfen und erweitern. Zope zwängt Sie nicht in eine proprietäre Lösung, die Sie und Ihre Netzbenutzer als Geisel halten könnte.

Von der geschäftlichen Perspektive aus gibt es drei Schlüsselideen, um zu verstehen, was Zope für Sie tun kann: leistungsfähige Zusammenarbeit, einfaches Content-Management und Web-Komponenten. Die folgenden Abschnitte beschäftigen sich hauptsächlich mit den Anliegen von geschäftlichen Entscheidungsträgern im Bezug auf Zope. Wenn Sie also daran interessiert sind, gleich mit der Arbeit zu beginnen, springen Sie zum nächsten Kapitel: Zope verwenden.

Leistungsfähige Zusammenarbeit

Vor Jahren, wurde Zopes Vorgänger von 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. Um in dieser Umgebung flexibler zu sein, wurde Zope so geplant, um Steuerung sicher an verschiedene Gruppen von Benutzern auf jeder Ebene in der Web-Site zu delegieren. Steuerung sicher zu weiterzugeben, heißt, folgende Dinge zu berücksichtigen:

  1. Informationen auf leicht verständliche Weise präsentieren. Die meisten Leute verstehen es eher auf Ordner zu klicken, als Datenbankbefehle einzugeben, sodass Zope eine Schnittstelle verwendet, die einem einfachen Dateimanager ähnelt, wie dem Microsoft Windows Explorer und anderen beliebten Dateimanagern.
  2. Es kann schwierig sein Programme für die Befehlszeile zu verwenden und Leute sind im Allgemeinen vertrauter im Umgang mit einem Web-Browser, sodass Zope dafür ausgelegt wurde, fast ausschließlich durch einen Web-Browser bedient zu werden.
  3. Umgebungen für die Zusammenarbeit erfordern Hilfsprogramme, dei es Benutzer erlauben, ihre Fehler wieder rückgängig zu machen und zu arbeiten, ohne sich dabei gegenseitig zu behindern. Aus diesem Grund besitzt Zope eine Undo-Funktion, eine Versionsverwaltung und andere Hilfsprogramme, die Mitarbeitern dabei helfen, sicher zusammenzuarbeitenr.

Diese Merkmale machen Zope zu einer idealen Umgebung für das Programmieren und das Verfassen von Web-Inhalten durch Gruppen und Untergruppen von Benutzern.

Einfaches Content-Management

Viele Web-Anwendungen werden traditionell in drei Ebenen aufgebaut. Daten und andere Informationen sind in Datenbanken gespeichert, die Programme, die das Verhalten der Anwendung bestimmen sind in Dateien an einem Ort und HTML- und andere Layout- und Darstellungsinformationen an einem anderen gespeichert.

Während dieses Vorgehen Vorteile besitzt, hat es auch Nachteile. Verschiedene Arten von Hilfsprogrammen und Grade des Sachverstands müssen verwendet werden, um mit den verschiedenen Komponenten zu arbeiten. Es kann sein, dass all die verschiedenen Komponenten ihre eigenen Überlegungen zu Sicherheit und Wartung bedürfen. Viele dieser Arten von Hilfsprogrammen sind von einem Web-Browser, oder von einfachen Befehlszeilen- oder GUI-Hilfsprogrammen wie FTP, aus nicht handhabbar.

In Zope sind all diese Komponenten zusammen in ein schlüssiges System gebracht. Alle erfordern einen gemeinsamen Satz an Diensten: Sicherheit, Web-basierte Verwaltung, Suche, Gruppierung, Verteilung und andere. Dadurch, dass es all diese Begriffe in ein handhabbares System bringt, ermöglicht Zope Ihnen, einen Satz an Fähigkeiten und einen an Werkzeugen zu verwenden, um komplexe Web-Anwendungen zu entwickeln. Außerdem bedeutet, unser Modell zu zentralisieren, dass Zope leichter mit anderen externen Hilfsprogrammen wie relationalen Datenbanken, GUI-Web-Editoren und anderen Systemen arbeiten kann, die mit Zope zusammenarbeiten.

Web-Komponenten

Das Netz ist eine wachsende dynamische Plattform. Das Netz hat genug Standards und Programmierschnitstellen hervorgebracht, die es den Produzenten von Diensten, Produkten und Technologien erlauben, sich das Netz als ein architektonisches Modell vorzustellen, um das Sie ihre Anwendungen entwickeln können, anstelle bloß statische HTML-Dokumente an Benutzer weiterzugeben.

Beweise dafür zeigen sich in vielen Standorten. Mit der ".NET"-Architektur stellt sich Microsoft eine Welt aus Netzkomponenten vor, die auf fernen Systemen laufen, während sie bestimmte Dienste an Anwendungen rund um die Welt liefern. Frontier von UserLand Software leistete Pionierarbeit für ein einfaches Protokoll für Web-Dienste, das XML-RPC genannt wird und Netzkomponenten erlaubt, miteinander zu kommunizieren (Auch Zope arbeitet mit XML-RPC, welches in in Kapitel 10 "Zope-Scripting für Fortgeschrittene" besprochen wird). Mit Web-Komponenten ist das Modell einer Person die vor dem Browser sitzt, nicht mehr das einzige Modell des Webs.

Zopes Geschichte

1996 wurde Jim Fulton, Technikvorstand der Zope Corporation und Python-Guru, beauftragt, einer Klasse etwas über CGI-Programmierung beizubringen, obwohl er nicht viel über das Thema wusste. Jim studierte die gesamte vorhandene Dokumentation über CGI auf seinem Weg zum Unterricht. Auf dem Rückweg dachte Jim noch mal über alles nach was ihm an den traditionellen CGI-basierten Programmierumgebungen nicht gefiel: ihre Verwundbarkeit, ihr Mangel an Objektorientierung, und wie sie Details über den Web-Server nach außen hin sichtbar machen. Ausgehend von diesen Anfangsüberlegungen wurde während des Rückflugs vom Unterricht im Flugzeug der Zope-Kern geschrieben.

Die Zope Corporation veröffentlichte weiter drei Open-Source-Softwarepakete, um das Web-Publishing zu unterstützen, Bobo, Document Template und BoboPOS. Diese Packete waren in Python geschrieben. Sie haben sich zu Kernkomponenten von Zope entwickelt, die nun den ORB (Object Request Broker), die DTML-Scripting-Sprache und die Objektdatenbank liefern. Zope ist immer noch vorwiegend in Python geschrieben bis auf einige für die Leistung kritische Abschnitte in C.

Damals hatte die Zope Corporation einen kommerziellen Anwendungs-Server basierend auf ihren drei Open-Source-Komponenten entwickelt. Dieses Produkt wurde Principia getauft. Im November 1998 überzeugte der Investor Hadar Pedahazur die Zope Corporation Principia zu Open-Source zu machen. Daraus wurde Zope, das sein eigenes Zuhause unter Zope.org bekam.

Wer kann von Zope profitieren?

Man braucht viele Leute, die zusammenarbeiten, um Web-Anwendung zu erstellen. Diese Leute zu verwalten und zu koordinieren kann auf großen Sites eine schwierige Aufgabe sein. Wir haben einige gemeinsame Aufgabenbereiche in diesem Szenario identifiziert auf die man achten sollte:

  • Konsumenten verwenden die Site, um nach nützlichem Inhalt zu suchen und damit zu arbeiten.
  • Geschäftliche Nutzer erstellen und verwalten den Inhalt 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.
  • Informationsarchitekten treffen Plattformentscheidungen und behalten das Gesamtbild im Auge.

Zope ist eine Plattform, auf der Site-Entwickler Anwendungen erstellen, die an Site-Designer und Geschäftliche Nutzer weitergegeben wird und Komponentenentwickler geben neue Produkte und Anwendungen Zope-Benutzer weltweit weiter.

Zope kann Zope-Produkte installieren, die sich auf unterschiedliche Zielgruppen konzentrieren. Zum Beispiel ist Squishdot ein beliebtes mit Zope verfasstes Weblog, das von Anfang an benutzt werden kann. Squishdot-Benutzer sehen nicht unbedingt, dass Zope unter der Haube steckt. Andere Zope-Produkte wie das "Content Management Framework" der Zope Corporation benutzen den selben Ansatz, indem sie auf Klientele abzielen, die nichts von Zopes Existenz darunter wissen müssen.

Wie können Sie von Zope profitieren?

Wir haben uns die Zopes Philisophie und seine Architektur angesehen, lassen Sie uns jetzt einige von Zopes Einsatzmöglichkeiten untersuchen. Alle Sites lösen verschiedene Problemstellungen, aber viele Sites gehen täglich eine Vielzahl von Rotine-Angelegenheiten an. Hier sind einige der Hauptverwendungen von Zope:

Dynamischen Inhalt darstellen
Sie wollen die Präsentation Ihrer Web-Site für seine Benutzer maßschneidern, Information in Datenbanken integrieren und Benutzer eine Suchfunktion bieten. Sie würden auch gerne Ihre Web-Site automatisieren und Ihre Geschäftsprozesse erleichtern. Kann Ihre Web-Site intelligent auf Besucher reagieren, um ihm einen ansprechenden Eindruck zu vermitteln? Zope ermöglicht Ihnen, jede Art von dynamischen Seiten zu erzeugen. Es bringt bereits Funktionen zur Personalisierung, Datenbankintegration und Suche mit.
Ihre Web-Site verwalten
Eine kleine Web-Site ist leicht zu verwalten, aber eine Web-Site, die Tausende von Dokumenten, Abbildungen und Dateien bereitstellt, muss leistungsfähige Verwaltungswerkzeuge liefern. Können Sie die Daten, Anwendungslogik und Präsentation Ihrer Site von einem Punkt aus verwalten? Können Sie mit Ihren Inhalten Schritt halten oder gleiten sie Ihnen aus der Hand? Zope gibt Ihnen einfache und leistungsfähige Werkzeuge für das Bearbeiten von Gigabytes an Web-Inhalten. Sie können Ihre Logik, Ihre Darstellung und Ihre Daten komplett von Ihrem Web-Browser aus verwalten.
Ihre Web-Site sicher machen
Wenn Sie mit mehr als einer Handvoll Web-Benutzer umgehen, wird Sicherheit sehr wichtig. Es ist entscheidend, Benutzer zu verwalten Aufgaben sicher an sie delegieren zu können. Zum Beispiel kann es sein, dass Mitarbeiter Ihrer technischen Abteilung in der Lage sein müssen, ihre Web-Seiten und Anwendungslogik selbst zu verwalten. Es kann sein, dass Entwickler Seitenvorlagen aktualisieren müssen und Datenbank-Administratoren Datenbankabfragen verwalten müssen. Kann Ihre System Tausende von Benutzern verwalten, eventuell mit Ihrem vorhandenen LDAP oder Ihren anderen Datenbanken über flexible Sicherheitsregeln verbunden? Zope erlaubt Ihnen, den Ihre Site für Tausende von Site-Managern und für Millionen von Besuchern anzupassen. Sie können Sicherheitseinstellungen einfach kontrollieren und sicher Steuerung an andere übertragen.
Netzwerkdienste anbieten
Die meisten Web-Sites bedienen jetzt Benutzer, aber Web-Sites müssen bald entfernte Computerprogramme und andere Web-Sites bedienen. Zum Beispiel würden Sie Ihre Nachrichten gerne automatisch für Web-Sites von Nachrichtenagenturen verfügbar machen. Oder vielleicht wollen Sie Produkte automatisch zum Verkauf auf einer durchsuchbaren Produktvergleichssite anbieten. Können Sie Ihre vorhandene Daten- und Anwendungslogik nutzen, um Netzwerkdienste zu erstellen, oder müssen Sie alles von Grund auf neu entwickeln? Zopes integrierte Netzfähigkeit macht jede Zope-Site zu einem Netzwerkdienst. Auf Ihre Anwendungslogik und Ihre Daten kann über das Netz, über HTTP und XML-RPC zugegriffen werden.
Verschiedenartige Inhalte einzubinden
Ihr Inhalt liegt überall verstreut, in relationalen Datenbanken, Dateien, Web-Sites, FTP-Archiven, XML. Können Sie Ihre Daten zu einer schlüssige Anwendung zusammenführen? Unterstützt Ihr System Web-Standards, sodass Sie Inhalt von bereits vorhandenen und neuen Systemen die Sie zukünftig hinzufügen integrieren können? Zope unterstützt Web-Standards die Ihnen erlauben, Ihre vorhandenen Daten, Ihre vorhandene Infrastruktur und Ihre vorhandenen Dateisysteme zu verwenden.
Skalierbarkeit bieten
Sie haben also einen Glückstreffer gelandet und bekommen nun Sie mehr Suchmaschinentreffer als Sie sich jemals vorgestellt hatten. Jetzt müssen Sie ein drastisch höheres Verkehrsaufkommen verarbeiten als zuvor. Können Sie Ihre Site auf eine andere Datenbank- und Serverplattform umstellen und die Belastung auf mehre Server verteilen? Kann Ihre Web-Site wachsen, um Ihren Erfolg zu verkraften? Zope erlaubt Ihren Web-Anwendungen, über so viele Rechner verteilt zu arbeiten wie notwendig sind, dem Ansturm standzuhalten. Zope macht es möglich, eine kleine Site zu verwalten, die sich über Nacht in eine riesige Site verwandeln kann basierend auf seiner "ZEO"-Technologie (weitere Details in Kapitel 13, "Skalierbarkeit und ZEO").

Was Zope Ihnen bietet

Lassen Sie uns einen näheren Blick auf die Zope Merkmale werfen die Ihnen erlauben, dynamische Web-Sites aufzubauen und zu verwalten.

Einzigartige Verwaltungsumgebung
Das erste, was Sie an Zope bemerken werden, ist, dass Sie die Daten, Logik und Darstellung Ihrer Site nach einfach in Ihrem Web-Browser verwalten lässt. Das bedeutet, dass Zope leicht zu verwenden ist und von großer Entfernung verwaltbar ist. Zope lässt Sie mit anderen zusammenarbeiten um interaktiv Ihre Web-Site zu entwickeln.
Integrierte Werkzeuge
Zope bietet Werkzeuge zur Site-Verwaltung, einen Web-Server, eine Suchmaschine, Datenbankverbindungen, Dienste für Sicherheit und die Zusammenarbeit und mehr. Standardmäßig gibt Zope Ihnen alles, was Sie brauchen, um eine leistungsfähige Web-Site aufzubauen.
Unterstützung offener Standards
Zope sticht dadurch hervor, dass es aufgrund seiner Unterstützung für offene Standards unterschiedlichste Daten zusammenbringt. Zope unterstützt Internet-Standards einschließlich SQL, ODBC, XML, DOM, FTP, HTTP, FastCGI, XML-RPC, SOAP und andere.
Open-Source-Lizenz
Mit Zope bekommen Sie nicht nur eine Anwendung, Sie bekommen den Quelltext und eine Benutzergemeinde. Da Zope Open-Source ist, sind Sie nicht die Geisel einzelner Hersteller; Sie können Zope frei verwenden, verteilen und bearbeiten, um es Ihren Bedürfnissen anzupassen. Zope profitiert auch von einer aktiven Benutzer- und Entwicklergemeinde. Die Gemeinde verbessert Zopes Support, prüft Zopes Sicherheit, beseitigt Programmfehler und fügt neue Funktionen hinzu.
Erweiterbarkeit
Zope kann in viele Richtungen erweitert werden. Anwendungen von Drittherstellern können leicht erstellt und weitergegeben werden. Die Zope-Gemeinde hat Hunderte von Add-Ons für Zope produziert, von der Kreditkartenverarbeitung bis zu Web-Diskussionsforen.

Alternativen zu Zope

Es sind viele Werkzeug verfügbar, die Ihnen dabei helfen, Web-Anwendungen zu erstellen. Früh in der Geschichte des Webs wurden einfache Web-Anwendungen fast ausschließlich mit CGI-Programmen, die in Perl oder anderen Sprachen geschrieben wurden aufgebaut. Jetzt gibt es eine Mege an Optionen, die sich von betriebsbereiten Open-Source-Rahmenwerken wie PHP, bis hin zu kommerziellen Optionen wie Cold Fusion, Java Application Servers und Vingettes Story Server erstrecken.

Zope bietet eine einzigartige Mischung von Merkmalen, einige etwas ähnlicher, und andere deutlich anders als die Merkmalen die andere Web-Anwendungs-Tools bieten. Zope ist leicht zu verwenden, Open-Source, leistungsfähig, und bietet Unterstützung für viele verschiedene Arten von Anwendungen. Hier ist eine kurze Liste von üblichen Nachteilen von Web-Hilfsprogramme und Zopes Vorteile:

  • Einige Hilfsprogramme bieten weder einen einfachen Dateimanager noch eine Benutzerschnittstelle und sind schwer zu verwenden. Zope hat eine einfache Benutzerschnittstelle.
  • Einige Hilfsprogramme erfordern eine komplexe Konfiguration. Zope ist leicht zu installieren und erfordert keine Konfiguration, bevor Sie beginnen, es zu verwenden.
  • Einige Hilfsprogramme erfordern die Verwendung ungewöhnlicher und proprietärer Entwicklungswerkzeuge. Zope arbeitet mit jedem Standard-Web-Browser und es werden keine anderen Hilfsprogramme benötigt, als sie auch zum Lesen dieses Buch verwenden.
  • Einige Hilfsprogramme passen sich nicht wie Zope an, um große Anzahl von Entwicklern und Benutzern zu verwalten. Zope hat ein einheitliches, leistungsfähiges System zur Benutzerverwaltung, das sich bis hin zu vielen Benutzern mit eindeutigen, leicht verwaltbaren Berechtigungen anpassen kann.
  • Zuletzt lassen sich kommerzielle Hilfsprogramme mit verschlossenem Quelltext nicht erweitern, anpassen oder weitergeben. Zope ist Open-Source.

Die Zope-Gemeinde

Zope war eines der ersten Werkzeuge seiner Art, das Open-Source geworden ist. Seit der Quelltext von Zope offenliegt, ist die Benutzerbasis ungeheuer gewachsen.

Die Zope-Gemeinde besteht aus Zope-Benutzern und -Entwicklern. Viele in der Gemeinde sind Berufstätige wie Berater, Entwickler und Webmaster, die ihre Zeit und ihr Geld in Unterstützung für Zope investieren. Andere sind Studenten und neugierige Hacker, die lernen, wie ein cooles neues Werkzeug zu verwenden ist. Die Gemeinde trifft sich gelegentlich auf Messen verbringt aber die meiste Zeit in den vielen Zope-Mailing-Listen und Web-Sites. Sie können mehr über die vielen Mailing-Listen zum Thema Zope unter http://www.zope.org/Resources/MailingLists herausfinden.

Nun, da Sie etwas über Zopes Funktionen und seine Geschichte gelernt haben, ist es an der Zeit es zu verwenden. Im nächsten Kapitel erfahren Sie etwas über das Starten und Betreiben von Zope. Da Zope frei verfügbar ist, können Sie die neueste Version herunterladen und sofort mit dem Arbeiten beginnen.