GenWiki:Software-Architektur

aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
Zur Navigation springen Zur Suche springen

Grundlagen

Das GenWiki basiert auf derselben Software, wie das große Vorbild, die Schwester Wikipedia.

Das dortige Handbuch, das auch technische Aspekte beleuchtet, ist zu finden:

Dem englischen Handbuch entnommen ist die folgende (eingedeutschte) Tabelle (Zum Original):

Generelle Architektur

Generelle Architektur
Benutzerschicht Webbrowser
Netzwerkschicht Apache Webserver
Logische Schicht
MediaWiki's PHP Skripte
PHP
Datenschicht
Datei-System MySQL Datenbank Caching System

Interpretation

(wird im folgenden konkretisiert) Der Benutzer schaut "von oben" auf die Tabelle "durch" seinen Webbrowser zum Wiki-Server im Netzwerk, ob der nicht mit Hilfe der Logik, die in den PHP-Skripten liegt und vom PHP-Interpreter umgesetzt wird, ihm neue Seiten bereitstellt. Diese Seiten werden aufgrund von Inhalten in der Datenbank, zusätzlichen Dateien (wie z.B. Bildern) sozusagen berechnet und ausgeliefert und zusätzlich im so genannten Cache (Zwischenspeicher) für eine Weile abgelegt. Werden exakt die gleichen Informationen innerhalb eines relativ kurzen Zeitraumes vom selben oder einem anderen Benutzer angefordert, kommen sie aus dem Cache oder es wird eine Neu"berechung" erzwungen (Stichwort: action=purge). Die äußere Form der Seiten und die Darstellung sind in Konfigurationsdateien und -einstellungen festgelegt.


Die Komponenten

Benutzerschicht

Das Programm bzw. die Software-Umgebung, mit der der Endanwender, der Benutzer arbeitet. Hier ist im Gegensatz zu anderen Lösungen keine eigene Software zu installieren, sondern ein (fast) beliebiger, aktueller Webbrowser sollte es tun.

Netzwerkschicht

Über das Netzwerk (in der Regel - das Internet) nimmt der Webbrowser Kontakt zu einem Server auf, auf dem ein Webserver-Programm läuft. Dies ist für die Bereitstellung und Auslieferung der (s.u.) generierten HTML-Seiten zuständig. Meist ist es, wie bei der Wikipedia und auch beim GenWiki der Apache-Webserver, es kann aber auch der IIS von Microsoft Windows oder ein ganz anderer sein. Die meiste Erfahrung besteht aber mit dem Apache und dem IIS. Letzterer wird aus verschiedensten, teilweise religiös anmutenden Gründen aber häufig abgelehnt... Das darunter werkelnde Betriebssystem ist meist ein LINUX oder anderes UNIX (wiederum sowohl bei der Wikipedia als auch bei uns). Allerdings tut es ein Windows, sinnvollerweise ab Version 2000 oder neuer auch.

Logische Schicht

Die MediaWiki-Software basiert auf PHP-Skripten.

Die Programmiersprache PHP, die häufig in webbasierten Datenbankprojekten zum Einsatz kommt, wird auch hier verwendet. Die Sprache (genauer gesagt: deren Interpreter) läuft entweder als Teil des Webservers (z.B. als Apache-Modul) oder wird von diesem über eine standardisierte Schnittstelle (Stichwort: CGI) aufgerufen. Letzteres ist prinzipiell möglich, es wird aber davon dringend abgeraten. Sowohl die Wikipedia- als auch die GenWiki-Server arbeiten mit Apache-Modulen.

Alle Seiten werden durch PHP-Skripte (Programme im Klartext, die immer wieder neu interpretiert werden (wie früher beim guten alten BASIC...) "berechnet" und anhand von Formatdefinitionen (Stichwort: CSS) dargestellt. Das Darstellen selbst geschieht auf dem Webbrowser des Benutzers, daher sollte es keine allzu alte Version sein, da Darstellungsfehler oft in der fehlerhaften Interpretation des HTML-Codes und der CSS-Formate begründet ist.

Die Logik der Datenverwaltung, des "Verstehens" der Nutzeranforderungen (Suchen, Zeige Artikel xyz, Vorschau anzeigen, und, und, und ... ) sowie die interne Systemordnung - das ist die so genannte MediaWiki-Software, die "nichts anderes als nur" eine Menge von PHP-Programmtexten ist.

Datenschicht

Die meisten notwendigen Informationen (Daten) liegen in der Datenbank. Zur Zeit ist MySQL die einzige unterstützte Datenbank, für die MediaWiki-Version 2.0 ist vorgesehen, die Datenbank-Systeme Oracle und Firebird ebenfalls zu unterstützen. Diese sind aber für den privaten Anwender kaum Alternativen zu MySQL.

Der Artikelinhalt ist versioniert als Text in Wiki-Schreibweise (Syntax) in der Datenbank abgelegt. Verweise auf Mediendateien (Bilder, Töne, Videos usw.) im Artikeltext führen zu deren Auslieferung an und Darstellung im Anwender-Browser.

Der Aufbau und das Aussehen der Seite ist in so genannten Skins (Oberflächen) konfiguriert. Sie bestehen im wesentlichen aus Stilvorgaben (Stylesheets, CSS) und ein wenig Programmcode. Im GenWiki wird ausschließlich ein geringfügig angepaßtes Standard-Skin der Wikipedia (MonoBook) verwendet. Damit soll eine, in anderen Projekten durchaus verbreiteten Quelle für Darstellungsfehler vermieden werden.

Die berechneten Artikel werden für eine bestimmte Zeit zusätzlich in einem Zwischenspeicher (Cache) auf dem Webserver gehalten, um sie bei nochmaligem Abruf sofort verfügbar zu haben. Wenn in der Zwischenzeit übliche Veränderungen am Artikeltext vorgenommen wurden, erkennt das System dies (in der Regel) und berechnet den Artikel auf jeden Fall neu.

Auch die Informationen zu den Benutzern, Artikelverweise, Kategorienverwendung und vieles andere mehr ist in den Datenbanktabellen abgelegt.