Entwicklung einer Web-Service-Schnittstelle sowie einer Benutzeroberfläche für HeuristicLab Grid


In den letzten beiden Jahren entstand am Institut für Systemtheorie und Simulation (Prof. Pichler) eine Umgebung für heuristische Optimierung mit dem Namen HeuristicLab [1]. Diese Umgebung verfügt auch über eine Erweiterung genannt HeuristicLab Grid [2], die es erlaubt, basierend auf der Plugin-Architektur von HeuristicLab Optimierungsverfahren parallel und verteilt auf mehreren Rechnern auszuführen. Wesentlicher Bestandteil von HeuristicLab Grid ist dabei eine zentrale Datenbank (MS SQL Server), die die wesentlichen Management-funktionen wie Knotenverwaltung, Jobverwaltung, Versionsverwaltung, etc. übernimmt.

Da die Datenbank keinerlei Schnittstellen anbietet, sind im Rahmen der Diplomarbeit MS Web-Services in C# zu entwickeln, die eine komfortable Schnittstelle für verschiedene Benutzeroberflächen oder andere Programme darstellen. Außerdem sollen von diesen Web-Services auch noch einige zusätzliche Funktionen angeboten werden (Benutzerverwaltung, zeitgesteuerte Änderung des Knotenstatus), die in der Datenbank bis jetzt noch nicht umgesetzt sind. Daher ist auch die Datenbank selbst gegebenenfalls zu erweitern.

Im Folgenden sind die einzelnen Funktionen aufgelistet, die von den Web-Services abgedeckt werden sollten:

Hohe Priorität

  • Benutzerverwaltung und Authentifizierung inkl. verschiedener Berechtigungsstufen
  • Implementierung und Verwaltung einer zeitgesteuerten Änderung des Knotenstatus
  • Verwaltung der Knoten (Ändern)
  • Verwaltung des Knotenstatus (Ändern)
  • Verwaltung der Knotengruppen (Hinzufügen, Löschen, Ändern)
  • Verwaltung der Zugehörigkeit von Knoten zu Knotengruppen
  • Abrufen und Löschen der gespeicherten Statusmeldungen
  • Abrufen und Löschen der gespeicherten Exceptions
  • Verwaltung der Update-Kommandos (Hinzufügen, Löschen, Ändern)
  • Verwaltung der Verbindung zwischen Knoten und Update-Kommandos (Abrufen, Löschen)
  • Abrufen und Löschen der aktuellen Jobeinträge

Niedere Priorität

  • Bereitstellung einer Schnittstelle zur Verwaltung der Dateien im passwortgeschützen Bereich des HeuristicLab Webservers
  • Verwaltung der Testfälle und Parametereinstellungen der Algorithmen (Hinzufügen, Löschen, Ändern)
  • Verwaltung der Resultate der Testfälle (Hinzufügen, Löschen, Ändern, Exportieren)
  • Automatisierte Generierung neuer Parameter- und Ergebnistabellen für neue Algorithmen

Dabei sind insbesondere die Benutzerverwaltung sowie die zeitgesteuerte Änderung des Knotenstatus näher zu erläutern, da diese beiden Funktionen von der Datenbank bis jetzt noch nicht unterstützt werden.

Die Benutzerverwaltung soll es verschiedenen Benutzern je nach Berechtigung ermöglichen, unterschiedliche Funktionen von HeuristicLab Grid zu nutzen. Z.B. sollen Knotenmanager (d.h. Benutzer, die Rechner für HeuristicLab Grid zur Verfügung stellen) nur Aktionen ausführen dürfen, die ihre eigenen Knoten betreffen, während Jobmanager (d.h. Benutzer, die HeuristicLab Grid zur Lösung von Optimierungsaufgaben verwenden) nur Aktionen ausführen dürfen, die die Jobs betreffen, die von ihnen in Auftrag gegeben wurden, etc. Um diese Benutzerverwaltung möglichst flexibel zu gestalten, sollen fixe Rechte definiert werden, die je nach Bedarf unterschiedlichen Benutzern bzw. Benutzergruppen zugeteilt werden können. Die Web Services müssen somit die Verwaltung von Benutzern (Hinzufügen, Löschen, Ändern) und Benutzergruppen (Hinzufügen, Löschen, Ändern), die Zuordnung von Benutzern zu Benutzergruppen sowie das Zuweisen von Rechten zu Benutzern und Benutzergruppen ermöglichen.

Die zeitgesteuerte Änderung des Knotenstatus soll dazu dienen, Benutzern die Möglichkeit zu geben, Zeiten zu definieren, zu denen die von ihnen bereitgestellten Knoten belastet oder nicht belastet werden sollen (z.B. nur am Wochenende, nur in der Nacht, etc.). Dazu ist es notwendig, verschiedene Zeitbereiche verwalten zu können sowie zu diesen Zeiten den Knotenstatus entsprechend zu ändern, indem der Wert in der NodesStatus- Tabelle verändert wird.

Ferner soll basierend auf diesen Web Services auch eine webbasierte Oberfläche mittels ASP.NET (hohe Priorität) sowie eine WinForms-basiertes Oberfläche in C# (niedere Priorität) implementiert werden.

Während des gesamten Projekts soll besonders auf eine saubere, gekapselte und erweiterbare Architektur sowie auf eine hohe Benutzerfreundlichkeit Wert gelegt werden.

Diese Diplomarbeit entsteht in Kooperation zwischen dem Institut für Systemsoftware (Prof. Mössenböck) sowie dem Institut für Systemtheorie und Simulation (Prof. Pichler). Für fachliche Fragen bzgl. .NET und Web Services steht Herr Dipl.-Ing. Thomas Kotzmann vom Institut für Systemsoftware zur Verfügung. Fragen bzgl. HeuristicLab und HeuristicLab Grid sowie allgemein zur geforderten Funktionalität richten Sie bitte an Herrn Dr. Michael Affenzeller bzw. Herrn Stefan Wagner vom Institut für Systemtheorie und Simulation.

Referenzen:

  1. S. Wagner, M. Affenzeller: HeuristicLab - A Generic and Extensible Optimization Environment. To be published in: Proceedings of IBERAMIA 2004, 2004.
  2. S. Wagner, M. Affenzeller: HeuristicLab Grid - A Flexible and Extensible Environment for Parallel Heuristic Optimization. Accepted to be published in: Proceedings of the 15th International Conference on Systems Science, 2004.

Bearbeiter: August Steinbacher
Ausgabe: August 2004