Zope für Entwickler
Was ist Zope, für wen wurde es entwickelt und was ist realisierbar mit Zope?
Zope ist eine Werkzeugsammlung für die Entwicklung von Web-Applikationen.
Eine WebApplikation ist ein Computerprogramm, auf das der Benutzer über das Internet mit einem Webbrowser zugreift.
Sie können sich eine Web-Applikation auch als dynamische Website vorstellen, die dem Benutzer nicht nur statische Informationen liefert, sondern ihn auch in die Lage versetzt, mithilfe dynamischer Elemente mit einer Applikation zu arbeiten. Web-Applikationen findet man überall. Wer ins Internet geht, arbeitet ständig mit ihnen. Gängige Beispiele für Web-Applikationen sind z.B. Suchmaschinen wie Yahoo!, Projektwerkzeuge wie SourceForge oder E-Mail-Systeme wie HotMail. Derartige Applikationen lassen sich mit Zope entwickeln.
Zope besteht aus mehreren unterschiedlichen Komponenten, die zusammenarbeiten und Ihnen bei der Entwicklung von Web-Applikationen helfen. Dabei handelt es sich um folgende Bestandteile:
- Ein Webserver
Zu Zope gehört auch ein Webserver, der Ihnen und Ihren Benutzern die Inhalte liefert. Wenn Sie bereits einen Webserver verwenden - vielleicht Apache oder Microsoft IIS -und deshalb den von Zope nicht nutzen möchten, so ist dies kein Problem. Zope funktioniert auch mit diesen Webservern und generell mit allen, die das Common Gateway Interface (CGI) unterstützen. - Ein Web-Interface
Wenn Sie mit Zope Web-Applikationen erstellen, interagieren Sie über einen Webbrowser mit der Zope-Management-Benutzeroberfläche. Diese Schnittstelle ist eine Entwicklungsumgebung, mit der Sie z.B. Web-Seiten erstellen, Bilder und Dokumente hinzufügen, Verbindungen mit externen relationalen Datenbanken aufbauen und Scripts in verschiedenen Programmiersprachen schreiben können. - Eine Objektdatenbank
Wenn Sie mit Zope arbeiten, dann arbeiten Sie hauptsächlich mit Objekten aus der Objektdatenbank von Zope. Die Management-Benutzeroberfläche von Zope bietet eine einfache und vertraute Möglichkeit, mit Objekten zu arbeiten. Die Funktionsweise erinnert an viele verbreitete Dateimanager. - Relationale Integration
Sie brauchen Ihre Informationen nicht in der Objektdatenbank von Zope zu speichern, wenn Sie dies nicht möchten. Zope funktioniert auch mit anderen relationalen Datenbanken, darunter Oracle, PostgreSQL, Sybase, MySQL und vielen mehr. - Scriptsprachenunterstützung
Mit Zope können Sie in vielen verschiedenen Sprachen Web-Applikationen schreiben, darunter Python , Perl und der Document Template Markup Language (DTML) von Zope.
Für Firmen bietet Zope insbesondere mächtige Möglichkeiten für die Teamarbeit, eine einfache Verwaltung von Inhalten und Web-Komponenten. Die folgenden Abschnitte richten sich hauptsächlich an Manager, die Entscheidungen über den Einsatz von Zope treffen.
Teamarbeit
Vor einigen Jahren entwarf die Firma Digital Creations die zentralen Technologien von Zope für einen Internet-Provider, der Web-Seiten für Tageszeitungen bereitstellte. Die Zeitungen wollten ihrerseits Web-Seiten für ihre Leser ins Internet stellen. Zope hatte dabei die Aufgabe, die Steuerung auf sichere Art an die verschiedenen Benutzergruppen auf den einzelnen Ebenen der Website weiterzugeben. Dazu muss Folgendes berücksichtigt werden:
- Die Informationen müssen leicht verständlich dargeboten werden. Die meisten verstehen sich besser darauf, Ordner anzuklicken, als Datenbankbefehle abzusetzen. Daher verwendet Zope eine Oberfläche, die einem einfachen Dateimanager in der Art des Microsoft Windows Explorer ähnelt. Da Kommandozeilen-Werkzeuge schwer zu bedienen sind und die meisten lieber einen Webbrowser verwenden, wurde Zope so entworfen, dass es fast ausschliesslich über einen Webbrowser genutzt wird.
- Für die Teamarbeit sind Werkzeuge erforderlich, mit denen die Benutzer ihre Fehler beheben und so arbeiten können, dass andere nicht beeinträchtigt werden. Daher bietet Zope diverse Möglichkeiten wie z.B. die Funktion, Schritte rückgängig zu machen oder die Wiederherstellung alter Versionen, damit die Benutzer in sicherer Umgebung zusammenarbeiten können. Durch diese Funktionen ist Zope eine ideale Umgebung für die Programmierung und Autorisierung von Web-Inhalten durch Benutzergruppen und -untergruppen.
Einfache Verwaltung von Inhalten
Viele Web-Applikationen sind aus drei Ebenen aufgebaut.
- Daten und andere Informationen liegen in Datenbanken,
- die Programme, die das Verhalten der Applikation steuern, sind als Dateien an einem Speicherort abgelegt
- und die Präsentationsinformationen sind wiederum an anderer Stelle gespeichert.
Das Web ist eine dynamische Plattform, die ständig wächst. Es hat so viele Standards hervorgebracht, dass die Hersteller von Diensten, Produkten und Technologien es als Architekturmodell für die Applikationsentwicklung betrachten und nicht nur als ein Mittel zur Verbreitung statischer HTML-Dokumente an die Benutzer. In der Tat entwickelt sich das Web zum Architekturmodell; dies sieht man an vielen Stellen. Die .NET-Architektur von Microsoft zielt auf eine Welt von WebKomponenten ab, die auf Remote-Systemen laufen und Applikationen in aller Welt spezielle Dienste anbieten.
Geschichte von Zope
Im Jahre 1996 musste Jim Fulton, seinerzeit technischer Direktor von Digital Creations und ein Python-Guru, einen Kurs über CGI-Programmierung abhalten, obwohl er nicht viel davon verstand. Auf dem Weg in den Vortragssaal las Fulton die gesamte existierende Dokumentation zu CGI. Auf dem Rückweg überlegte er, was ihm an traditionellen CGI-Programmierumgebungen nicht gefiel: die Anfälligkeit, die fehlende Objektorientierung und die Art, wie Webserver offen gelegt werden. Auf dem Rückflug schrieb er dann auf Grund dieser Vorüberlegungen den Kern von Zope.
In der Folgezeit veröffentlichte Digital Creations drei Open-Source-Softwarepakete zur Unterstützung von Web-Publishing: Bobo, Document Template und BoboPOS. Alle diese Pakete waren in Python geschrieben, flossen in Zope ein und entwickelten sich dort zu den Kernkomponenten Web Object Request Broker (ORB), DTML-Scriptsprache und Objektdatenbank. Nach wie vor ist Zope hauptsächlich in Python geschrieben, mit Ausnahme einiger in C erstellter Teile, bei denen es auf Leistung ankommt. Am Anfang entwickelte Digital Creations einen kommerziellen Applikationsserver, der auf den drei firmeneigenen Open-Source-Komponenten aufbaute. Dieses Produkt erhielt den Namen Principia. Im November 1998 überredete der Investor Radar Pedahazur das Unternehmen, Principia als Open-Source-Produkt anzubieten. Daraus wurde Zope mit seiner eigenen Website www.zope.org
Zielgruppe von Zope
Bei der Erstellung von Web-Diensten müssen viele Menschen zusammenarbeiten. Bei grossen Websites kann es schwierig werden, alle diese Mitarbeiter zu managen und zu koordinieren. lm Folgenden sind einige der Rollen aufgeführt, die zu einem solchen Unternehmen gehören: - Konsumenten nutzen die Site, um nützliche Inhalte zu suchen und zu verwerten.
- Benutzer innerhalb der Firma erzeugen und verwalten den Inhalt der Seite.
- Designer entwickeln das Look&Feel der Site.
- Informationsarchitekten treffen Plattformentscheidungen und behalten das Ganze im Auge.
Zope ist eine Plattform, auf der Website-Entwickler die Dienste erstellen, die dann an die Designer und firmeninternen Nutzer weitergegeben werden. Komponentenentwickler verbreiten neue Produkte und Dienste unter Zope-Nutzern in aller Welt.
Zope kann Zope-Produkte für unterschiedliche Zielgruppen installieren. Ein solches Produkt ist z.B. das beliebte Weblog Squishdot, das in Zope geschrieben ist und schon gebrauchsfertig geliefert wird. Die Nutzer von Squishdot merken nicht unbedingt, dass das Programm auf Zope aufbaut. Andere Zope-Produkte wie z.B. das System, das Digital Creations für die Verwaltung von Web-Inhalten entwickelte, verfolgen denselben Ansatz: Sie sind auf Zielgruppen zugeschnitten, die nicht merken, dass das zu Grunde liegende System Zope ist.
Nutzen von Zope
Im Zusammenhang mit der Philosophie und Architektur von Zope haben wir uns die Vorteile dieses Systems angesehen. Nun wollen wir einige der Zope-Applikationen betrachten. Zwar löst jede Site andere Aufgaben, aber viele Sites haben täglich mit ähnlichen Problemen zu kämpfen. Einige Hauptanwendungsbereiche von Zope sind:
- Dynamische Inhalte
Sie möchten die Präsentation Ihrer Website auf die Nutzer zuschneiden, Datenbankinformationen einbinden und Suchfunktionen zur Verfügung stellen. Ausserdem würden Sie Ihre Geschäftsprozesse gerne mithilfe der Website automatisieren und erleichtem. Kann Ihre Website intelligent auf die Besucher reagieren und ihnen ein fesselndes Erlebnis bieten? - Mit Zope können Sie jede Seite dynamisch gestalten. Es bietet Möglichkeiten für Personalisierung, Datenbankintegration und Suchfunktionen.
- Verwaltung der Website
Eine kleine Website ist leicht zu verwalten, aber eine Website mit Tausenden von Dokumenten, Bildern und Dateien benötigt mächtige Managementwerkzeuge. Können Sie die Daten, Geschäftslogik und Präsentation Ihrer Website von einer einzigen Stelle aus verwalten? Können Sie mit den Inhalten noch Schritt halten oder verlieren Sie den Überblick? - Zope bietet mächtige und dennoch einfache Tools, mit denen Sie Web-Inhalte im Gigabyte-Bereich handhaben können. Dies alles - Logik, Präsentation und Daten - können Sie von einem Webbrowser aus verwalten.
- Sicherung der Website
Wenn Sie es mit vielen Web-Benutzern zu tun haben, tritt die Sicherheit in den Vordergrund. Sie müssen die Benutzer unbedingt so organisieren, dass die Aufgaben in sicherer Form verteilt werden können. So müssen z.B. die Mitarbeiter der Engineering-Abteilung ihre WebSeiten und Geschäftslogik verwalten, Designer müssen die Vorlagen für die Websites aktualisieren und Datenbankadministratoren Datenbankabfragen verwalten. Kann Ihr System Tausende von Benutzern, die womöglich mit Ihrem LDAP oder anderen Benutzerdatenbanken verbunden sind, mit flexiblen Sicherheitsregeln verwalten?
Mit Zope können Sie die Website auf Tausende von Site-Managern und Millionen von Besuchern zuschneiden. Sie können Sicherheitsrichtlinien einfach kontrollieren und die Steuerung sicher an andere delegieren.
- Netzwerkdienste
Noch sind die meisten Websites für die Benutzer da, aber schon bald werden sie auch Rernote-Computerprogramme und andere Websites bedienen. Angenommen, Sie möchten Wireservice- Websites automatisch Ihre Neuigkeiten zur Verfügung stellen oder die Waren, die Sie auf Ihrer Website anbieten, automatisch der Suchfunktion einer Site zugänglich machen, die Produktvergleiche anstellt. Können Sie Ihre Daten und Ihre Geschäftslogik in die Erstellung von Netzwerkdiensten einfliessen lassen, oder müssen Sie dann ganz von vorne beginnen? Die integrierte Netzwerkunterstützung von Zope macht aus jeder Zope-Site einen Netzwerkdienst. Ihre Geschäftslogik und Daten können über das Internet über HTTP und XMLRPC erreicht werden. Integration unterschiedlicher Inhalte: Ihre Inhalte sind überall verteilt: in relationalen Datenbanken, Dateien, Websites, FTP-Archiven und XMLDokumenten. Können Sie diese Daten alle in einer einzigen kohärenten Applikation zusammenfassen? Unterstützt Ihr System Web-Standards, sodass Sie Inhalte aus älteren Systemen integrieren und in Zukunft neue Systeme hinzufügen können?
Zope unterstützt Web-Standards, mit deren Hilfe Sie bestehende Daten, Infrastrukturen und Dateisysteme weiter benutzen können.
- Skalierbarkeit
Sie haben das grosse Los gezogen und mehr Zugriff bekommen, als Sie sich hätten träumen lassen. Nun müssen Sie auch mit einem erheblich grösseren Datenaufkommen umgehen können als zuvor. Können Sie Ihre Site auf eine andere Datenbank- und Server-Plattform verlagern und die Last auf mehrere Server verteilen? Kann Ihre Website ausreichend anwachsen, um Ihrem Erfolg auch gerecht zu werden? Mit Zope können Sie Ihre Web-Applikationen über so viele Rechner wie nötig verteilen, um die Last zu bewältigen
Zope macht es durch seine Technologie möglich, eine kleine Site zu unterhalten, die über Nacht zu einer gewaltigen Site anwachsen kann.
Wie Zope Ihnen nützt
Nun wollen wir die Zope-Funktionen genauer betrachten, mit denen Sie dynamische Websites erstellen und verwalten können. Einzigartige Entwicklungsumgebung: Als Erstes fällt an Zope auf, dass Sie damit unmittelbar von einem Webbrowser aus die Daten, Logik und Präsentation Ihrer Site verwalten können. Das bedeutet, dass Zope leicht zu bedienen und remote zu administrieren ist. Zope versetzt Sie in die Lage, mit anderen zusammenzuarbeiten, um Ihre Website interaktiv zu entwickeln. Integrierte Tools: Zu Zope gehören Werkzeuge für das Site-Management, ein Webserver, eine Suchmaschine, eine Datenbankanbindung, Sicherheit, Dienste für Teamaufgaben und anderes mehr. Mit Zope haben Sie alles, was Sie zur Erstellung einer mächtigen Website benötigen. Offene Standardunterstützung: Eine Stärke von Zope besteht darin, dass es durch Unterstützung offener Standards sehr unterschiedliche Daten zusammenfügt. Es unterstützt u.a. die Internetstandards SQL, ODBC, XML, DOM, FTP, HTTP, FastCGI, XML-RPC, SOAP und andere. Open-Source-Lizenz: Mit Zope erhalten Sie nicht nur eine Anwendung, sondern auch einen Quellcode und eine Gemeinde. Da Zope Open Source ist, sind Sie nicht auf einen einzelnen Hersteller angewiesen, sondern können Zope frei benutzen, verteilen und auf Ihre Bedürfnisse zuschneiden. Ausserdem profitiert Zope von einer aktiven Benutzer- und Entwicklergemeinde, die permanent die Unterstützung von Zope verbessert, seine Sicherheit überwacht, seine Fehler behebt und neue Funktionen hinzufügt. Erweiterbarkeit: Zope lässt sich in viele Richtungen erweitern. Sie können ganz einfach neue Applikationen erstellen und verbreiten. Die ZopeGemeinde hat Hunderte von Add-ons für alles Mögliche hergestellt, angefangen bei Kreditkartenverarbeitung bis hin zu Web-Diskussionsforen.
Nun haben Sie einen Überblick darüber, was Zope Ihnen bietet. Als Nächstes werden Sie sehen, wie Zope im Vergleich zu anderen Web-Applikationsservern abschneidet.
Alternativen zu Zope
- Bei der Erstellung von Web-Applikationen können Ihnen viele Tools helfen. In der Frühzeit des Internet wurden solche Applikationen fast ausschliesslich mit CGI-Programmen entwickelt, die in Perl oder anderen Sprachen geschrieben waren. Mittlerweile gibt es dazu eine Menge von Möglichkeiten, angefangen von Open-Source-Systemen wie z.B. PHP bis hin zu kommerziellen Systemen wie z.B. Cold Fusion von Allaire, Java Application Servers und Story Server von Vingette.
- Zope bietet einen einzigartigen Funktions-Mix, wobei einige Funktionen sehr ähnlich, andere wiederum sehr verschieden von denen sind, die die anderen Werkzeuge für Web-Applikationen bieten.
- Zope ist leicht zu bedienen und unterstützt eine Fülle verschiedenartiger Applikationen. Im Folgenden sehen Sie eine kurze Liste der Vorteile von Zope gegenüber anderen verbreiteten Web-Werkzeugen.
- Zope hat eine einfache Benutzeroberfläche. Manche Tools bieten nicht einmal einen einfachen Dateimanager als Benutzeroberfläche und sind nicht leicht zu bedienen.
- Zope ist leicht zu installieren und kann sofort ohne weitere Konfiguration benutzt werden. Für manche Tools ist zuerst eine komplizierte Konfiguration erforderlich.
- Zope funktioniert mit jedem Webbrowser, der sich an die Standards hält. Für manche Tools müssen Sie proprietäre Entwicklungswerkzeuge nutzen, die Sie nicht kennen.
- Zope hat ein konsequentes, mächtiges Benutzerverwaltungssystem, das sich mit eindeutigen und leicht zu verwaltenden Berechtigungen auf viele Benutzer zuschneiden lässt. Manche Tools bieten nicht die Skalierbarkeit, mit der Zope auch viele Entwickler und Benutzer verwalten kann.
- Zope ist ein Open-Source-System. Die meisten kommerziellen Closed-Source- Tools können Sie nicht erweitem, anpassen und weiterverteilen.
Zope-Gemeinde
Zope war eines der ersten Werkzeuge seiner Art, das zu einem Open-SourceSystem wurde. Seitdem der Quellcode von Zope offen liegt, ist die Benutzergemeinde massiv gewachsen.Zu dieser Benutzergemeinde gehören sowohl Entwickler als auch Benutzer von Zope. Viele dieser Menschen sind professionelle Nutzer, darunter Consultants, Entwickler und Webmaster, die Zeit und Geld in die Unterstützung von Zope investieren. Andere sind Studenten und neugierige Hacker, die mehr über ein cooles neues Tool erfahren möchten. Diese Gemeinde trifft sich zwar gelegentlich auch auf Konferenzen, aber meist wird Zope auf den vielen Mailinglisten und Websites zum Thema diskutiert. Nähere Informationen über die vielen ZopeMailinglisten erhalten Sie unter diesem Link: www.zope.org