|
|||||||||||||||||||||||||||||||||||||||||||||||||
| ISBN: 3423508086 ISBN: 3423508086 ISBN: 3423508086 ISBN: 3423508086 | |||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Wir empfehlen: | ||||||||||||||||||||||||||||||||||||||||||||||||
Zope - ein einfaches Content Management System[ Inhaltsverzeichnis ] ... [ zurück ] ... [ weiter ] Übersicht: Content Management-Aspekte
Dieses Kapitel behandelt
die Aspekte, die für einen Einsatz von Zope als Content Management
System unerlässlich sind. Dazu gehören allgemein die Möglichkeit,
Fehler rückgängig zu machen, Revisionsverwaltung, eine
effektive Unterstützung von Zusammenarbeit, ein ausgefeiltes Benutzer-
und Sicherheitskonzept, Zugriff auf relationale Datenbanken, Suchmaschinenfunktionalität
und Skalierbarkeit. DTML-Methoden
und -Dokumente unterstützen sogar den Revisionsvergleich,
um z.B. die aktuellste "neue" Version der Datei mit einer
älteren zu vergleichen. Dieser Vergleich wird im
weitverbreiteten Format namens diff angezeigt.
Unterstützung von Zusammenarbeit Import und Export von Objekten Alle Arten von Zope-Objekten können in Form einer Exportdatei zwischen Zope-Systemen ausgetauscht werden. Für einen Export muss der entsprechende Ordner ausgewählt und über die Schaltfläche "Import/Export" exportiert werden. Die Exportdatei kann auf den lokalen Rechner heruntergeladen oder auf dem Server belassen werden. Bei Auswahl von "Save to file on server" sichert Zope die Datei auf dem selben Rechner, auf dem Zope läuft. Exportdateien werden in Zopes var-Verzeichnis auf dem Server geschrieben, mit der Endung .zexp. Meist ist es praktischer, die Exportdatei auf den lokalen Rechner herunterzuladen, es sei denn, die Dateigröße verbietet dies, oder das exportierte Objekt soll lediglich zu einer anderen Zope-Instanz auf dem selben Rechner bewegt werden. Standardmäßig werden Exportdateien in Zopes Binärformat exportiert, mit der Option, im eXtensible Markup Language (XML)-Format zu exportieren. Für einen Import muss die Exportdatei zunächst in das import-Verzeichnis der Zope-Installation kopiert werden. Nach erfolgreichem Import sollte ein neues Objekt bzw. eine komplette Ordnerstruktur im Ordner erscheinen, in dem der Import durchgeführt wurde. Versionen Versionsobjekte helfen, die Arbeit mehrerer Personen an denselben Objekten zu koordinieren. Dabei können z.B. folgende Probleme auftreten: - Ein Dokument wird zur selben Zeit von zwei Personen bearbeitet und Änderungen der zweiten könnten Änderungen der ersten Person überschreiben - Änderungen sollen erst nach Abschluss öffentlich gemacht werden Zu Problem 1: Kann immer durch Verwenden der Undo- und History-Funktionen umgangen werden, ist aber sehr aufwändig. Zu Problem 2: Wird z.B. die Menüstruktur einer Site geändert, während die Site weiterverwendet wird, kann das Navigationssystem zeitweilig zerstört werden. Um dieses Problem zu beheben, hat Zope Versions-Objekte zum Vornehmen nicht-öffentlicher Änderungen. Zum Beispiel kann es eine Woche dauern, ein neues Menüsystem fertig zu stellen. Danach können alle Änderungen auf einmal durch Freigabe der Version veröffentlicht werden. Durch Klick auf eine Version wird sie verwendet: Dies öffnet die Ansicht "Join/Leave":
Abb. 12: Anmelden an einer Version Die Arbeit an dieser gegenwärtig nicht verwendeten Version wird durch Klick auf "Start Working in MeineAenderungen" aufgenommen. Von nun an weist eine Nachricht darauf hin, dass Änderungen nicht öffentlich sind, sondern in der Version gespeichert werden. Jedes neu erstellte oder bearbeitete Objekt während der Arbeit in einer Version wird mit einer kleinen roten Raute nach seiner Kennung markiert, so z.B. ein neu hinzugefügtes DTML-Dokument namens new und die Änderung der standard_html_header-Methode in einer Zeile: <HTML> <HEAD> <TITLE><dtml-var title_or_id></TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> <H1>In einer Version geändert</H1> Nach der Rückkehr zur Version über "Quit working in MeineAenderungen" verschwindet das während der Arbeit in der Version erstellte Dokument new und andere Änderungen. Die standard_html_header-Methode hat jetzt eine kleine rote Raute und ein Sperrsymbol zur Kennzeichnung, dass dieses Objekt in einer Version geändert worden ist. Wird ein Objekt in einer Version geändert, wird es solange gesperrt, bis die Änderungen in der Version bestätigt oder verworfen werden. Die Sperrung stellt auch sicher, dass die Versionsänderungen keine Änderungen anderer Personen überschreiben. Wenn nur eine Person zu einer bestimmten Zeit an einem Objekt arbeiten soll, kann es in einer Version geändert werden. Die Verwendung von Versionen sollte allerdings eingeschränkt werden, weil eine Sperrung die Bearbeitung gesperrter Objekte behindert. Über " Start working in MeineAenderungen" wird alles in den Zustand vor Verlassen der Version zurückversetzt. In der Ansicht "Save/Discard" können Änderungen dauerhaft gemacht werden:
Abb. 13: Versionsänderungen freigeben Mit "Save" werden Änderungen öffentlich gemacht und alle in der Version geänderten Objekte sind jetzt nicht mehr gesperrt. Anschließend muss noch die Arbeit in der Version beendet werden (Ansicht Join/Leave). Nun sollte das in der Version erstellte Dokument und die Änderung am standard_html_header sichtbar sein. Auch Änderungen an Versionen können rückgängig gemacht werden, allerdings werden bei Widerruf der Transaktion alle in der Version vorgenommenen Änderungen rückgängig gemacht. Benutzer- und Sicherheitskonzept Als Web-Applikation
und im Besonderen als Content Management System ist es
erforderlich, dass Zope Sicherheitsaspekten Rechnung trägt.
Dies bedeutet z.B., zu kontrollieren, wer Zugang zu einer Applikation
hat und festzulegen, was derjenige dort tun kann. In der Regel
sollte Sicherheit ein wichtiges Design-Element in der Konzeptionsphase
sein. Authentifizierung:
bedeutet, herauszufinden, wer der Nutzer ist. Der Authentifizierungsprozess wird
beim
Aufruf einer geschützten Ressource (wenn z.B. eine private
Website angesehen wird) ausgelöst, woraufhin zum Login
aufgefordert und nach einem Benutzer-Account gesucht wird. Dies
kann auch geschehen, wenn der Benutzer bereits eingeloggt ist.
Werden nur öffentliche Ressourcen aufgerufen, wird Anonymität
des Nutzers angenommen.
Tab. 5: Rollen in Zope Erlaubnisse: Erlaubnisse definieren, welche
Aktionen mit Zope-Objekten durchgeführt werden können, wie etwa "Ansehen", "Objekte
löschen" oder "Eigenschaften verwalten".
Autorisierung und Sicherheitsverwaltung
Datenbankzugriff Zope benutzt intern eine Objektdatenbank zur Speicherung von Zope-Objekten. Sie berücksichtigt viele verschiedene Objekttypen mit unterschiedlichen Arten von Beziehungen untereinander. Relationale Daten sind jedoch nicht einfach auf Objekte anzupassen, weil sie ein einfacheres Tabellen-orientiertes Datenmodell voraussetzen. Daher stellt Zope verschiedene Mechanismen zur Übernahme relationaler Daten und deren Nutzung in Zopes Objekt-zentrierter Umgebung bereit, einschließlich Datenbankadapter und SQL-Methoden. Die üblichste Verwendung für Zope's relationale Datenbank-Unterstüzung ist die Bereitstellung vorhandener Datenbanken im Web. Durch Nutzung von relationalen Daten mit Zope kann von Zope's Vorteilen (einschl. Sicherheit, dynamische Präsentation, Netzwerkdiensten u.a.) profitiert werden. Um eine relationale Datenbank in Zope zu benutzen, müssen zwei verschiedene Zope-Objekte erzeugt werden: Eine "Database Connection" und eine "Z SQL"-Methode. Database Connections werden benutzt, um Verbindungen zu externen relationalen Datenbanken herzustellen und zu verwalten. "Z SQL"-Methoden beschreiben die Aktionen, die auf einer Datenbank ausgeführt werden sollen und müssen mit einer Database Connection zum Verbindungsaufbau assoziert werden. Datenbankadapter (DAs) stehen für die Eingangs erwähnten Datenbanken zur Verfügung und für Gadfly: Gadfly ist ein schnelles, Python-basiertes relationales Datenbanksystem und dient hauptsächlich Demonstrationszwecken. Es können keine großen Datenmengen verwaltet werden, weil die komplette Datenbank in den Speicher gelesen wird. Alle anderen relationalen Datenbanken laufen als Prozesse extern zu Zope. Suchmaschine Zope umfasst ZCatalog, eine integrierte, leistungsfähige und schnelle Suchmaschine mit automatischer Index-Generierung. ZCatalog ermöglicht die Kategorisierung und die Suche nach allen Arten von Zope-Objekten, externen relationalen Daten, Dateien und Webseiten und kann auch zur Verwaltung von Objektgruppen verwendet werden. Es wird Volltextsuche sowie gleichzeitige Suche in mehreren Indizes unterstützt. Ausserdem wacht ZCatalog über Veränderungen der Metadaten von indizierten Objekten. ZCatalog wird in der Regel für Massenkatalogisierung (Katalogisierung vieler Objekte auf einmal) und Automatische Katalogisierung (Katalogisierung von Objekten bei ihrer Erstellung und Veränderung) eingesetzt. Die Massenkatalogisierung erfordert drei Arbeitsschritte: Erstellung eines ZCatalogs, Bestimmung und Indizierung zu katalogisierender Objekte und Erstellung einer web-basierten Schnittstelle für die Suche im Katalog. Mit dem Wissen darüber, wie ein Katalog seine Information abspeichert, können mit ZCatalog mächtige und komplexe Suchmöglichkeiten realisiert werden, und der Katalog kann so angepasst werden, dass er die gewünschte Art Suche zur Verfügung stellt. Indizes: In ZCatalog werden Objektinformationen und ihre Inhalte in Indizes gespeichert, wodurch große Informationsmengen sehr schnell abgelegt und wiedergefunden werden können. Es sind verschiedene Indizes definierbar, die verschiedene Informationen über Objekte verwalten, z.B. schließt ein Index den Inhalt von DTML-Dokumenten, ein anderer Objekte mit bestimmten Eigenschaften ein. Bei einer Suche im ZCatalog werden nicht die Inhalte der einzelnen Objekte durchsucht. Vor einer Suche werden die Informationen, für die der ZCatalog eingerichtet wurde, indiziert. Sodann kann der ZCatalog Objekte zurückliefern, die bestimmten Suchkriterien genügen. Die Suche in einem Buch z.B. nach dem Wort Python liefert etwa folgende Angabe: Python: 23, 67, 227. Das bedeutet ein dreimaliges Vorkommen des Wortes Python auf einer Seite. Ein Index in Zope sucht das Suchmuster - im Beispiel das Wort Python - in einer Liste von Objekten anstatt auf Buchseiten. Skalierbarkeit Sich häufende Anfragen können einen Server dermaßen überlasten, dass sie zu inakzeptablen Antwortzeiten und u.U. sogar zu Abstürzen führen. Diesem Problem kann durch Einsatz mehrerer Rechner mit identischen Serverkonfigurationen begegnet werden, so dass bei Ausfall eines Rechners andere Rechner im Verbund seine Aufgabe übernehmen können. Bedingung ist, dass auf allen Zope- Instanzen die gleichen Informationen vorliegen, was insbesondere auf großen Zope-Servern mit Tausenden sich stetig ändernden Objekten kaum mehr manuell zu bewältigen ist. Das ZEO-System ermöglicht den Betrieb einer Website auf mehreren Rechnern, auch "Cluster" genannt. Mit einer solchen Anordnung können mittels Lastverteilungskomponente bei stark ansteigender Anfragelast die Anfragen auf mehrere Rechner verteilt werden. Ausserdem können im Falle eines Serverausfalles die noch intakten Rechner die Anfragen bedienen. Mit einem derartigem Serveraufbau kann ein defekter Rechner ausgetauscht oder repariert werden, ohne das von aussen ein Serverausfall spürbar wird. Mit ZEO kann Zope auf mehreren Rechnern betrieben werden. ZEO garantiert, dass alle beteiligten Zope-Installationen jederzeit auf genau die selbe Datenbank zugreifen. ZEO benutzt dazu eine Client/Server-Architektur. Alle Clients verbinden sich mit einer zentralen Instanz, dem ZEO Speicher Server, so wie auch in Abb. 17 zu sehen ist:
Abb. 17: ZEO-Funktionsweise Bei Einsatz von ZEO übernimmt Zope zugleich Server- (für die Beantwortung von Webanfragen) sowie Klientfunktionalität (um Daten vom ZEO-Server zu erhalten). ZEO Clients und Server kommunizieren über ein standardisiertes Internetprotokoll. Auf diese Art und Weise ist es möglich, beide im selben Raum oder aber auch in einem anderem Land zu betreiben. Folgende Argumente sprechen für den Einsatz von ZEO:
[ Inhaltsverzeichnis ] ... [ zurück ] ... [ weiter ] |
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
Back to the topic site: StudyPaper.com/Startseite/Computer/Informatik/Programmieren External Links to this site are permitted without prior consent. | |||||||||||||||||||||||||||||||||||||||||||||||||
| Home | deutsch | Set bookmark | Send a friend a link | Copyright © | Impressum | |||||||||||||||||||||||||||||||||||||||||||||||||