Project

General

Profile

Planungsseite für die Milestones und Deadlines des Teamprojekts

Milestone 0: Planung und Dokumentation

Die Planung umfasst alle Schritte, die unternommen werden müssen, bevor mit der eigentlichen Arbeit begonnen werden kann. Neben dem Schaffen von technischen Voraussetzungen werden hier auch Planungsschritte und Besprechungen erwähnt.

  1. Installation des Task-Management-Systems auf einem Server. [done]
  2. Installation und Einrichtung eines SVN-Repositories. [done]
  3. Freischalten unserer Benutzer auf dem Wiki zum Seiten anlegen und Inhalt schreiben z.B. Seitenname: “projekte:oekpool” [done]
  4. Milestones schreiben > dieses Dokument [almost done ;)]
  5. Verfeinern der Tasks, die in den Milestones definiert sind, in kleine Bearbeitungseinheiten, die von den Teammitgliedern abgearbeitet werden können. [done?]
  6. Besprechung der Milestones mit Tarik un den Netzwerkern um abzuklären, was technisch möglich bzw. realisierbar ist. [done]
  7. Planungsabschlussbesprechung mit Dirk und Einteilung der Aufgaben für den ersten Milestone. [done]

Vorraussichtliche Arbeitszeit

20 Stunden / Person.

Milestone 1: Bugfreies Framework

In dieser Phase soll das vorliegende Framework soweit getestet und verbessert werden, dass die angedachte Grundfunktionalität gewährleistet ist. Diese umfasst sowohl die zeitlich bedingte Außensteuerung als auch das zeitgesteuerte Herunterfahren und Warnen von angemeldeten Benutzern.

//Hier wäre noch interessant eine Batch-Schnittstelle bereitzustellen, die es erlaubt ein Set von Kommandos auf
einem bestimmten Rechner oder eine Menge von Rechnern auszuführen. Beispielsweise: Wecke eine Liste von Maschinen,
führe eine Liste von Kommandos, sobald es möglich ist, aus, fahre die Maschine wieder herunter.//

  1. Implementierung des Warn-Threads (xmessage -display :0 “STRING”)
    • Recherche der nötigen Einstellungen für den X-Servers, damit Nachrichten per “xmessage” geschickt werden können.
    • Implementierung des Warn-Threads auf Basis der halbfertigen Implementierung.
    • Entwurf von verschiedenen Testszenarien, die der Thread durchlaufen soll und anschließende Tests.
  2. Hinzufügen des Exceptionhandlings beim Shutdown-Thread
    • Ermitteln der möglichen Exceptions, die bei der Durchführung eines Shutdowns auftreten können.
    • Festlegung des Verhaltens der Anwendung beim Auftreten einer Exception.
    • Implemetierung des Exceptionhandlings
    • Testszenarien + Tests
  3. Überarbeitung des DB-Threads um unnötige Bedingungen zu eliminieren.
    • Ermitteln der momentanen Funktionalität des Frameworks im Hinblick auf den Lifecycle eines Hostobjektes. Der Fokus liegt hierbei auf den “if”-Statements, die bestimmte Aktionen in Bezug auf die Hostobjekte steuern.
    • Eliminieren der “if”-Statements, die nicht benötigt werden bzw. Ändern des Codes, sodass “if”-Statements überflüssig werden.
    • Testszenarien + Test
  4. allgemeines Bugfixing und Tests
    • Entwickeln von Testszenarien, die mit dem Debug-Modus des Frameworks getestet werden können, und Ausführung dieser Tests. //Hier böten sich die oben genannten Batch-Kommandos an ...//
    • Entwickeln von Testszenarien, die die Funktionalität der Zeitsteuerung überprüfen, und Ausführung der Tests.

Vorraussichtliche Arbeitszeit

60 Stunden / Person

Milestone 2: Anpassen des LDAP-Site Management

Das von Tarik entwickelte LDAP-Site Management muss angepasst werden, damit eine Steuerung des Frameworks darüber möglich wird.
  1. Anpassen der Clientobjekte, damit diese PXE-Konfigurationen speichern können. (Tarik)
    • Überprüfung der LDAP-Schema-Änderungen, die in Bezug auf die Bachelor-Arbeit gemacht wurden, auf Vollständigkeit und Praktikabilität.
    • Besprechung mit Tarik bzgl. Änderungen im LDAP-Schema, sodass im ersten Teilschritt festgestellte Mängel behoben werden können. [optional]
  2. Entwickeln einer Oberfläche, über die man die PXE-Konfiguration der Clientobjekte verwalten kann.
    • Einarbeitung (evtl. kurze Unterweisung durch Tarik) in das Site-Management um die Grundsätzliche Funktionalität zu verstehen. *[partially done] *
    • Erarbeitung von Workflows, die die gewünschte Funktionalität der Oberfläche darstellen (evtl. Rücksprache mit Tarik)
    • Implementierung der Oberfläche.
    • Testszenarien + Test
  3. Entwickeln einer Oberfläche, die dem Admin bei der Diagnose behilflich ist. Hierbei soll der Admin bestimmte PXE-Images einbinden können, die entsprechende Diagnose-Tools beinhalten. Der Admin soll auf der Oberfläche auswählen können, welcher Rechner/Pool die Diagnose-Images laden soll.
    • Erarbeitung von Workflows bzgl. der Funktionalität.
    • Implementierung
    • Testszenarien + Test
  4. Neu: Batch-Jobs ausführen lassen
    • Implementierung einer Einrichtung zur Ausführung von Batch-Jobs auf den Client-PCs

Vorraussichtliche Arbeitszeit

100 Stunden / Person

Milestone 3: Entwicklung der Monitoring-Komponenten

Das Framework und das LDAP-Site-Management sollen so erweitert werden, dass eine Überwachung der Poolrechner möglich ist. Hierbei soll es möglich sein, den Online-Status eines Rechners festzustellen und bestimmte Informationen, wie z.B gebootetes Betriebssystem oder eingeloggte Benutzer zu ermitteln. Die vorliegenden Informationen sollen über das Site-Management abrufbar sein und zu Statistikzwecken permanent gespeichert werden.

  1. Entwickeln eines Monitoring-Threads im Framework, der den aktuellen Status eines jeden Poolrechneners ermittelt.
    • Ermitteln der notwendigen Befehle und Daten auf dem Klienten (Benutzer-Informationen / Auslastung / SSH-Ping).
    • Entwerfen einer geeigneten Datenstruktur (auf dem MySQL-Server), die die Erstellung von Statistiken erlaubt.
    • Prüfen, ob die Zustände jeweils richtig erkannt werden.
  2. Entwickeln der MySQL-Datenbank, mit der die Daten des Monitoring-Threads an das Site-Management übergeben werden können.
  3. Erweitern des Site-Management, damit die Informationen der Monitoring-Funktion anschaulich dargestellt werden können. Wünschenswert wären eine Gesamtübersicht des aktuellen Zustandes nach Pools und/oder Rechnern gegliedert, eine Detailansicht für jeden Rechner und eine Darstellung der aufgezeichneten Information in geeigneter Weise (z.B. grafisch, tabellarisch, etc.). Optional sollen zu den Informationen in der aktuellen Gesamt- und Detailansicht statistische Vergleichswerte (z.B. Mittelwert Auslastung zur selben Uhrzeit/zum selben Tag/Monat/jahr) sichtbar sein.
    • Entwerfen von Grafiken, die als Status eindeutig zu identifizieren sind.
    • Einbauen der Datenübergabe der Monitoring-Informationen an das Site-Management
    • Testcases / Testen der Korrektheit
  4. Die Monitoring-Informationen müssen in geeigneter Weise aufgezeichnet werden, damit sie für statistische Zwecke herangezogen werden können. [siehe letzter Punkt]

Vorraussichtliche Arbeitszeit

160 Stunden/ Person

Milestone 4: Entwicklung der Energiesteuerung

Das Framework soll um einen weiteren Thread erweitert werden, der eine Steuerung der Clients vornimmt, damit diese energieeffizient arbeiten. Mögliche Szenarien für nicht benötigte Rechner wären:
  • das Abschalten der Rechner
  • das Versetzen der Rechner in den Standby/Hibernate-Modus
  • das Umbooten der Rechner, so dass sie sich ins BFG einklinken
    Darüber hinaus muss das Site-Management (und der LDAP) angepasst werden, damit dort die nötigen Parameter für die Energiesteuerung gesetzt werden können.
  1. Vorbereiten des Frameworks für den neuen Thread + Entwicklung des Threads.
    • Ermitteln der verschiedenen Vorraussetzungen und benötigte Datenstrukturen des Threads
    • Einbauen des Threads in das Framework und Aktivierung über Optionseinstellung.
    • Entwickeln des Thread mit der Möglichkeit, verschiedene Scheduler zu implementieren - also mit einem Interface für gewünschte Scheduler bspw.
    • Testen des Threads anhand verschiedener Scheduling-Verfahren.
    • Unittests / Testen
  2. Anpassen des LDAP-Schemas, sodass alle für den EE-Thread relevanten Daten dort abgelegt werden können.
    • Ermittlung aller möglichen Zustände und notwendiger Optionsfelder.
  3. Erweitern des Site-Managements, sodass alle EE-Einstellungen dort vorgenommen werden können.
    • Ermittlung der nötigen LDAP/MySQL-Operationen.
    • Implementierung in PHP/ AJAX
    • Testfälle / Testen
  4. Test und Auswertung der verschiedenen EE-Methoden in Bezug auf ihre Brauchbarkeit und Realisierbarkeit im Poolbetrieb.
    • Sammeln der Daten und Erstellen geeigneter Diagramme.
    • Automatisierung der verschiedenen Szenarien hinsichtlich vorhandener Pools.
    • Auswertung der Informationen und eventuelle Implementierung von Verbesserungen.

Vorraussichtliche Arbeitszeit

230 Stunden / Person