www.wikidata.de-de.nina.az
Zope Z Object Publishing Environment ist ein objektorientierter in der Programmiersprache Python geschriebener freier Webanwendungs Server mit offenem Quelltext Zope stellt eine Plattform fur 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 1 Geschichte 2 Merkmale 2 1 Erweiterbarkeit 2 2 Objekt Datenbank 2 3 Akquisition 2 4 Entwicklungssprachen 2 5 Sicherheit 2 6 HTTP Server 2 7 Skalierbarkeit 2 8 Portabilitat 2 9 Nutzungsbedingungen 3 BlueBream 3 1 Grok 4 Anwendungen 5 Weblinks 6 EinzelnachweiseGeschichte Bearbeiten1995 wurde Digital Creations in Fredericksburg Virginia als Gemeinschaftsunternehmen eines Zusammenschlusses mehrerer Tageszeitungen gegrundet Die ersten Mitarbeiter waren Paul Everitt und Bob Page Recht schnell kamen weitere Mitarbeiter wie Jim Fulton hinzu Im Mai 1997 stiess 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 ausserhalb von Digital Creations mit deren freiem Produkt Bobo Einer davon war Hadar Pedhazur welcher ebenfalls zu der Zeit auf Digital Creations mit dem Wunsch zukam Investor zu werden Die Gesprache waren allerdings nicht von Erfolg gekront da Hadar die Zukunft von Digital Creations als Dienstleister sah wahrend Paul Everitt und Bob Page ihre Produkte unter anderem den Principia Application Server als proprietare Anwendungen verkaufen wollten Ein Jahr spater jedoch nachdem sich der Erfolg nicht in dem Masse eingestellt hatte wie erhofft kam Hadar noch einmal auf Digital Creations zu und man einigte sich darauf ein Dienstleistungsunternehmen zu werden die Produkte zu einem Produkt namens Zope zu bundeln und als freie Software zu veroffentlichen Im November 2004 wurde Zope 3 veroffentlicht Es ist nahezu ganz neu geschrieben und enthalt lediglich die originale ZODB Objekt Datenbank und die ZPT Template Engine Am 17 Januar 2010 wurde Zope 3 in BlueBream umbenannt um die Abgrenzung zu Zope 2 zu verdeutlichen Mit BlueBream wurde ein Schnitt gemacht Statt abwartskompatibel zu Zope 2 zu bleiben hat man sich dazu entschlossen die interne Struktur grundlegend zu uberarbeiten Zu den Neuerungen gehort eine Komponentenarchitektur Ein Nebeneffekt ist dass viele Komponenten jetzt auch ausserhalb von Zope nutzbar sind Zurzeit werden sowohl Zope 2 als auch BlueBream parallel und aktiv weiterentwickelt Die direkte Weiterentwicklung von Zope 2 bekam nach der Version 2 13 den Namen Zope 4 Zope 4 ist mit Python 3 kompatibel und wurde am 10 Mai 2019 veroffentlicht 1 Merkmale BearbeitenErweiterbarkeit Bearbeiten Die Funktionalitat von Zope kann durch eine grosse Anzahl von frei erhaltlichen Erweiterungen den sogenannten Produkten englisch Products den Bedurfnissen angepasst werden z B spezielle Objektklassen wie etwa Bugtracker Newsletter Systeme oder User Folder die ihre Daten etwa aus LDAP beziehen Anbindungen relationaler Datenbanken Modifikationen von Zope selbst sog Monkey Patches Diese Erweiterungen werden jeweils in einem eigenen Verzeichnis im Dateisystem abgelegt und lassen sich durch Loschen des Verzeichnisses und Neustart von Zope ruckstandslos wieder entfernen Es steht ihnen der volle Umfang der Programmiersprache Python zur Verfugung incl der Einbindung von in Python oder C geschriebenen Bibliotheken Die Produkte werden von der inzwischen sehr grossen Benutzergemeinde entwickelt und gepflegt Objekt Datenbank Bearbeiten Basis vieler Eigenschaften von Zope ist die Objekt Datenbank ZODB in der die dynamisch veranderlichen Inhalte abgelegt werden sofern sie nicht aus zusatzlich angebundenen relationalen Datenbanken stammen Die ZODB enthalt alle vorhandenen Objekte in einem hierarchischen Baum und bildet die Grundlage der Akquisition Sie ist sehr performant und auch unabhangig von Zope nutzbar Akquisition Bearbeiten Ein charakteristisches Konzept ist das der Akquisition das heisst des Erbens vom enthaltenden Objekt Auf diese Weise konnen Eigenschaften und Methoden in einen ganzen Unterbaum vererbt werden dies ist die wichtigste Grundlage von mit Zope Bordmitteln realisierten dynamischen Internet Prasenzen Entwicklungssprachen Bearbeiten 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 Sicherheitsgrunden in seiner Funktionalitat beschrankt 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 uber ein Zope Objekt eingebunden Fur diese Methoden gibt es keine Zugriffsbeschrankungen Sicherheit Bearbeiten Zope verfugt uber ein Sicherheits Framework das auf sogenannten Rollen englisch Roles aufbaut und genaue Festlegungen erlaubt wer wo was darf Fur jedes einzelne Objekt kann festgelegt werden welche Rolle fur welche Art des Zugriffs benotigt wird diese Rollen konnen den einzelnen Benutzern auch lokal zugewiesen werden um ihnen z B Zugriff nur in einem bestimmten Teilbaum zu gewahren Daruber hinaus arbeitet der Web Benutzer nicht wie bei klassischen Skriptsprachen wie PHP Perl u a im Dateisystem des Servers sondern in einer gesonderten virtuellen Umgebung Aus dieser auszubrechen ist nur moglich wenn es vom Entwickler gewunscht wird Dieses System verhindert Zugriffe auf andere auf dem Server gespeicherte Informationen und unterlauft damit gangige Angriffsmuster HTTP Server Bearbeiten Zope enthalt den Webserver Zserver eine erweiterte Version des in Python geschriebenen Servers Medusa Ein weiterer Webserver wird nicht benotigt kann aber dazu verwendet werden Zope zusammen mit beispielsweise einem Apache Webserver zu betreiben Ab der Version 2 13 kann Zope auch mit WSGI betrieben werden Skalierbarkeit Bearbeiten Zope ist zu softwareseitigem Multithreading fahig 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 moglich dass mehrere Server auf dieselbe Datenbasis zugreifen Derart verteilte Systeme sind in der Lage mehrere Prozessoren zu nutzen Portabilitat Bearbeiten Zope ist fast vollstandig 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 ausgefuhrt werden Fur Linux Windows BSD Mac OS X und Solaris werden vorubersetzte Pakete angeboten Die Pakete enthalten Zope und Python Nutzungsbedingungen Bearbeiten Die Bedingungen zur Weiter Veroffentlichung werden in der dort sogenannten Zope Public License abgekurzt in der ZPL beschrieben 2 welche auch von anderen Entwicklern wie beispielsweise bei Mingw w64 und PyPI 3 mit verwendet wird BlueBream BearbeitenIm Jahr 2004 wurde ein neues Zope freigegeben zuerst unter dem Namen Zope 3 Seit dem 17 Januar 2010 wird die Entwicklung unter dem Namen BlueBream weitergefuhrt 4 nachdem die Entwickler den Namen Zope 3 als hinderlich fur die weitere Entwicklung und Abgrenzung gegen Zope 2 empfanden 5 Zope 2 hat sich als ein nutzliches Framework fur Webanwendungen bewahrt die eine oder andere Idee zeigte mit der Zeit jedoch ihre Schwachen Fur die damalige Zeit war Zope hervorragend erweiterbar es war eine der Starken von Zope Neuere Technologien wie das Java Framework Spring haben aber noch andere Moglichkeiten 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 fur die Zope Integration benotigen Zope 3 hat als Ersatz dafur das Komponenten Modell eingefuhrt bei dem dies nicht mehr notig ist Eine weitere Idee war die Entwicklung von Anwendungen uber die Weboberflache Ihr Vorteil ist dass Anderungen sofort im Webbrowser getestet werden konnen und direkt wirksam werden Nachteilig ist jedoch die wesentlich schwierigere Einbindung von Versionsverwaltungssystemen und machtigen Editoren fur den Quelltext Weiterhin sorgen die Sicherheitsmechanismen der Entwicklung uber die Weboberflache dafur dass viele Python Module nicht einfach genutzt werden konnen In BlueBream kann man keine Programmlogik mehr direkt uber die Weboberflache schreiben Programmlogik kann jedoch noch immer einfach getestet werden da sie nun nicht mehr mit Zope gekoppelt ist und auch ausserhalb von Zope als eigenstandiges Programm laufen kann In der Summe sorgen die Anderungen auch dafur dass Entwickler sich weniger nach Zope richten mussen Dies hatte in der Vergangenheit viele Entwickler abgeschreckt Die erste stabile Ausgabe wurde am 6 November 2004 veroffentlicht damals noch unter dem Namen Zope 3 Die aktuelle Version ist BlueBream 1 0a0 es entspricht Zope 3 4 1 Grok Bearbeiten BlueBream vormals Zope 3 steht bei vielen Zope Entwicklern in der Kritik zu viel Konfiguration in Form von XML Dateien zu benotigen In BlueBream ist vieles uber XML Dateien konfigurier und anderbar Dafur muss es explizit in den Konfigurationsdateien angegeben werden Als Antwort darauf haben einige Entwickler Grok entwickelt welches auf BlueBream aufsetzt Grok fuhrt das DRY Prinzip als oberste Maxime ein DRY steht fur Don t repeat yourself englisch fur Wiederhole Dich nicht Gemeint ist damit dass alles nur einmalig definiert werden soll Wenn in 90 Prozent der Falle die Konfiguration dieselbe ist dann sollte dies nicht explizit konfiguriert werden mussen So lasst sich mit Grok eine komplexe Webanwendung schreiben die mit einer Zeile XML Konfiguration auskommt Anwendungen BearbeitenEine bekannte Anwendung von Zope ist das Content Management System Plone Ebenso wird das Programm Schooltool von The Shuttleworth Foundation mit Zope 3 entwickelt und die Softwareentwicklungs Plattform Launchpad basiert auf Zope Ein etwas weniger bekanntes Open Source CMS basierend auf ZOPE ist ZMS das obgleich von den Entwicklern ursprunglich vor allem fur den Forschungsbetrieb wie zur Nutzung in der Medizin entwickelt wurde heute eine recht weite Verbreitung gefunden hat Seine Besonderheiten liegen insbesondere in der anwenderfreundlichen Bedienoberflache wie die Fahigkeiten zum multimedialen Publishing Weniger bekannt ist das gewerkschaftliche Content Management System union cms das unter der GNU General Public License steht Entwickelt wurde es im Auftrag der Vereinten Dienstleistungsgewerkschaft Ver di und loste 2003 das proprietare CMS Hyperwave ab Seit 16 Marz 2010 basiert auch der Webauftritt des DGB auf einer Weiterentwicklung von union cms und damit auf Zope Weblinks BearbeitenOffizielle Website Zope Dokumentation bei Read the Docs Interview mit Jan Ulrich Hasecke von der DZUG auf der FrOSCon 2008 Ogg 17 4 MB Projektseite von Grok Memento vom 19 Marz 2007 im Internet Archive Einzelnachweise Bearbeiten Zope Release History Abgerufen am 14 Mai 2019 tldrlegal com license zope public license 2 0 zpl 2 0 englisch veroffentlicht am 10 Juli 2015 pypi org project Zope license englisch E Mail an die Zope Dev Mailing List von Baiju M abgerufen am 17 Januar 2010 E Mail Diskussion auf der Zope Dev Mailing List abgerufen am 17 Januar 2010 Normdaten Sachbegriff GND 4278608 3 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Zope Webanwendungsserver amp oldid 224995175