difo.org
   Projekthandbuch  5 Spezifikation  






5 Systemspezifikation

5.1 Einführung

Die Webanwendung difo.org wird verteilt auf den Rechnern der Benutzer sowie einem zentralen Server ausgeführt. Die Clientseite wird im Webbrowser des Benutzers aufgerufen und besteht aus XHTML (Extensible Hypertext Markup Language), CSS (Cascading Style Sheets), JavaScript und Grafiken.

Serverseitig führt ein Webserver mit eingebundenem PHP-Interpreter Skripte aus, die z. B. Datenbankabfragen machen und das Ergebnis als XML-Datei an den Client liefern.

5.2 Ablauf

Nach der Eingabe der Webadresse www.difo.org ruft der Browser die Startseite index.html vom Webserver ab. Diese Seite enthält das Grundgerüst der Oberfläche und referenziert CSS-, JavaScript- und Grafikdateien, die daraufhin auf den Clientrechner übertragen werden.

Der Browser startet das JavaScript-Programm, welches nach der Initialisierung beginnt, XML-Daten vom Server abzurufen. Durch diese Abfragen werden einerseits Aktionen auf dem Server ausgeführt, z. B. Manipulation der Datenbank beim Zuordnen der Bilder zu Alben, andererseits kann die XML-Antwort die Clientoberfläche rekonfigurieren. Das Javascript-Programm parst das XML-Dokument und passt je nach Schlüsselwort beispielsweise die Breite der Randbereiche an.

Prinzipbedingt wird für jede HTTP-Anfrage ein neuer Prozess auf dem Server gestartet, der diese bearbeitet. Dadurch existieren auf dem Server keine persistenten Daten außerhalb der Datenbank. Anhand der Session-ID, die per "Cookie" übertragen wird, wird bei jeder einzelnen Anfrage der passende Benutzer aus der Datenbank ermittelt.

5.3 Entwickelte Bibliotheken

5.3.1 Einführung

Im Rahmen dieses Praktikums sind einige universell verwendbare Bibliotheken entstanden, die in diesem Abschnitt kurz vorgestellt werden sollen.

5.3.2 Benutzerverwaltung

Die Benutzerverwaltungsbibliothek kapselt alle Funktionen, die für eine Website oder Webapplikation mit Benutzerkontext notwendig sind: Angefangen von Session-Cookies für die Zuordnung von Sitzung und Benutzer bis zur Verifikation der E-Mail-Adresse durch das Senden einer Bestätigungsnachricht.

Zur Vereinfachung der Verwaltung können Benutzer in Gruppen zusammengefasst werden. Eine Benutzergruppe kann wiederum Mitglied in einer weiteren Gruppe sein.

Die Bibliothek ist so universell, dass sie trotz der Unterschiede in der verwendeten Technik sowohl auf http://www.difo.org als auch auf der Dokumentationswebsite http://www.difo.org/doc eingesetzt werden kann.

Der Praktikumsleiter kann sich mit dem Benutzernamen "hoffmann" und dem Passwort "1959" anmelden, um jederzeit Zugriff auf die aktuelle Version dieses Handbuchs zu haben.

5.3.3 Rechteverwaltung

Access Control Lists (ACL), werden verwendet, um zu kontrollieren, welcher Benutzer zu welchen Objekten (Alben und Bilder) und Funktionen (z.B. kommentieren, bewerten) Zugriff hat. Zugriffsrechte lassen sich spezifisch für einzelne Benutzer oder für Benutzergruppen zuteilen oder verbieten. Hierbei ist eine sehr feingranulare Kontrolle des Zugriffs möglich.

Wird für ein Bild keine spezielle Einstellung getroffen, "erbt" das Bild die Rechte des Albums, in dem es enthalten ist.

5.3.4 Form

Das Erstellen und Verarbeiten von HTML-Formularen zur Eingabe von Daten wird durch die Formular-Bibliothek stark erleichtert. Die Methode zur Übertragung der eingegebenen Daten vom Browser an den Server kann gewählt werden. Die Validierung der Eingabe auf dem Server wird ebenso wie die Anzeige von Fehlermeldungen unterstützt.

5.3.5 Skalierung von Bildern

Thumbnails werden mit Hilfe der ImageMagick-Bibliothek automatisch aus den Ursprungsbildern erzeugt und auf dem Server in einem Cache-Ordner zwischengespeichert. Zum Browser werden immer zur Bildschirmgröße und -auflösung passende Bilder übertragen. Die Thumbnails werden mit dem Lanczos-Algorithmus verkleinert und geschärft, um die Details hervorzuheben.

Diese Vorgänge erfolgen für den Benutzer transparent.

5.4 Verzeichnisstruktur auf dem Server

/difo "Webroot"-Verzeichnis. Hier liegen die Dateien, die der Browser direkt vom Server anfragen kann, insbesondere die Startseite index.php und die dazugehörigen Skripte und Stylesheets
/difo/images Grafikdateien für das Layout der Seite
/difo/images/luna Grafikdateien für den Luna-Stil
/difo/images/slate Grafikdateien für den Slate-Stil
/difo/lib Bibliotheksdateien, die nicht direkt vom Browser angefordert werden können
/shared Bibliotheksdateien, die von mehreren Websites auf dem gleichen Server benutzt werden, z.B. das Benutzersystem und die Rechteverwaltung
/pictures Speicherort für die Orginalbilder. Der Browser kann auf diese Dateien nicht direkt zugreifen
/cache Speicherort für die skalierten Bilder
/temp Verzeichnis für temporäre Dateien

5.5 XML-Dateien

Die Informationen, die an dieser Stelle standen, sind inzwischen nicht mehr aktuell und wurden daher entfernt.

5.6 PHP-Klassen

Die Informationen, die an dieser Stelle standen, sind inzwischen nicht mehr aktuell und wurden daher entfernt.

5.7 Sonstige PHP-Dateien

Die Informationen, die an dieser Stelle standen, sind inzwischen nicht mehr aktuell und wurden daher entfernt.

5.8 Javascript-Klassen

Die Informationen, die an dieser Stelle standen, sind inzwischen nicht mehr aktuell und wurden daher entfernt.

5.9 Sonstige Javascript-Dateien

Die Informationen, die an dieser Stelle standen, sind inzwischen nicht mehr aktuell und wurden daher entfernt.

5.10 Datenmodell

Die Informationen, die an dieser Stelle standen, sind inzwischen nicht mehr aktuell und wurden daher entfernt.

© 2003–2017 Ulf Haueisen und Peter Neumann | Impressum