[ Einführung ] [ Demo ] [ Screenshots ]
 

 

Einführung

Kontext

Die Firma X-cellent entwickelt eine Lastverteilung für Linux Server. Mit ihr werden verschiedene Serverdienste wie HTTP, HTTPS, FTP usw. auf beliebig vielen Servern gesteuert. Die Konfiguration übernimmt ein Perlscript. Das Perlscipt wird über die Kommandozeile bedient, liest eine Konfigurationsdatei aus und schreibt eine Statusdatei.

Aufgabenstellung

Die Lastverteilung soll komfortabel über eine grafische Benutzeroberflauche in einem Webbrowser bedient werden. Dazu gehört die Ansicht auf den Status der Lastverteilung, die Konfiguration der Lastverteilung, sowie eine Ansicht auf die Logfiles und auf Statistik-Grafiken der Server. Dazu kommt ein Logon und eine Benutzerverwaltung mit Vergabe der Rechte auf einzelne Module.

Zukünfig sollen Server über die grafische Benutzeroberflauche hinzugefügt und gelöscht werde können sowie Servern Dienste hinzugefügt und gelöscht werden. Diese Erweiterungen sollen auf Machbarkeit geprüft werden. Die jetzige Lösung soll nur noch erweitert zu werden brauchen.

Lösung

Die Seiten für den Webbrowser werden durch Java Server Pages (JSP's) erzeugt. Struts (Apache Foundation) wurde als Framework benutzt. Struts setzt das MVC (Model View Controller) Prinzip um. Dabei werden die Daten (hier Dateien), die Steuerung (Java-Klassen) und die Ansicht (im Webbrowser) getrennt.

Die XML-Dateien für Ansicht und Konfiguration der Lastverteilung werden mit XSLT-Stylesheets in HTML-Code transformiert und durchlaufen danach Filter.

Die Anwendung ist internationalisiert. Alle Meldungen, Verweise und sonstigen Beschriftungen können in verschiedenen Sprachen erfolgen. Umgesetzt sind z.Z. Englisch und Deutsch.

Fast alle Klassen der Anwendung werden in einem Unittesting getestet.

Es werden ausschließlich Open-Source-Produkte eingesetzt: Xalan und Xerces für die XML-Transformationen, Struts als Framwork, ANT zum Bauen, Testen, Verteilen und Dokumentieren, JUnit für das Unittesting, Log4j für das Logging, ORO für "regulare expressions", Tomcat als JSP-Engine, CVS als Versionsverwaltung, Linux als Betriebssystem, und Netbeans als IDE für die Entwicklung.

Weiter Details finden sich unter den Screenshots weiter unten.

Demo

Die Demo besteht aus reinen HTML-Seiten. In der "wirklichen" Anwendung werden diese Seiten durch Java Server Pages (JSP's) erzeugt und damit interaktiv. Zum Anschauen der Demo klicken Sie bitte

[ --> zur Demo ].

 

Screenshots

Logon

login

Ohne Kommentar.

 

Logon Fehler

login

Ohne Kommentar.

 

Hauptmenü

Hauptmenue

Ohne Kommentar.

 

Ansicht der Serverkonfiguration

Ansicht

Ansicht auf die derzeitige Konfigurtion der Lasverteilung auf die Server. Die Konfiguration ist in einer XML-Datei abgelegt. Die relevanten Daten werden durch ein XSLT-Stylesheet in HTML-Code umgewandelt und hier angezeigt. Die Ansicht wird mit einem Refresh immer wieder aktualisiert. Der Benutzer wird durch die Anzeige der verbleibenden Sekunden ohne eigenes Zutun auf dem Laufenden gehalten.

 

Ansicht der Serverkonfiguration nicht aktuell

Ansicht nicht aktuell

Die Konfiguration wurde geaundert ist aber durch das Perlsrcipt, das die Lastverteilung steuert noch nicht aktualisiert worden. Die Ansicht wird mit einem Refresh immer wieder aktualisiert. Der Benutzer wird durch die Anzeige der verbleibenden Sekunden ohne eigenes Zutun auf dem Laufenden gehalten.

 

Konfiguration der Server

Konfiguration

Das Formular zeigt die aktuelle Konfiguration an, die an dieser Stelle mit dem Absenden des Formulars geaundert werden kann. Wie bei der Ansicht auf die Serverkonfiguration erfolgt auch hier die Erzeugung des HTML-Codes durch XSLT-Stylsheets und verschiedene Filter. Der Benutzer darf sich nicht beliebig lange Zeit lassen. Er bekommt nach einer gewissen Zeit einen Timeout. Nach Absenden des Formulars wird die Konfigurationsdatei überschrieben. Diese Datei ist eine XML-Datei, die das Perlscript, das die Lastverteilung steuert, regelmausig ausliest.

 

Konfiguration der Server (Status nicht aktuell)

Konfiguration nicht aktuell

Die angezeigte Konfiguration ist nicht aktuell, kann aber geaundert werden. Das heißt, ein Benutzer hat die Konfiguration gerade geaundert. Die Konfiguration ist aber noch nicht die momentane Serverkonfiguration. Beim Absenden des Formulars wird die gerade vorher abgeschickte Konfiguration überschrieben. Kann damit gleichzeitig zum rüchgaungig machen benutzt werden.

 

Konfiguration der Server mit Warnung vor Timeout

Konfiguration Warnung

Hier nauhert sich der Benutzer schon seinem Timout. Die rechte Seite des Frame wird mit einem Refresh immer wieder neu geladen und stößt damit einen Check des Timouts an.

 

Logging

Logging

Hier wird die Logdatei des Perlscipts angezeigt, dass die Serverkonfiguration steuert. In diesem Srceenshot wird die Logdatei der eigenen Anwendung gezeigt.

 

Benutzerverwaltung

Benutzerverwaltung

Die Benutzerdaten werden aus einer Propertiesdatei ausgelesen. Die Anwendung ist so angelegt, dass man relativ unaufwaundig die Daten auch in einer XML-Datei oder in einer Datenbank halten könnte. Anhand der Quelle (hier die Propertiesdatei) sucht die Anwendung mittels des umgesetzten Factory Patterns den passenden "Benutzermanager" aus.

 

Server Statistiken

Statistiken

Die hier angezeigte Darstellung ist nur eine schlecht gestalte Dummydarstellung. Normalerweise werden hier Grafiken der Serverstatistiken gezeigt. Es werden hier ohne weiteres Zutun automatisch alle Server, die verwaltet werden, gezeigt.