01.02.2013 Aufrufe

MiCaDo Projektbericht - artecLab - Universität Bremen

MiCaDo Projektbericht - artecLab - Universität Bremen

MiCaDo Projektbericht - artecLab - Universität Bremen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Die von uns implementierte Klasse micado worldconf beinhaltet den Parser für die Weltkonfiguration.<br />

Nach dem Laden einer solchen führt sie alle Operationen und Objektinstantiierungen in der<br />

Reihenfolge durch, wie sie für das Hochfahren des spezifizierten Szenarios nötig sind. Beim Erstellen<br />

der Weltkonfiguration muss sich deren Autor somit an keine bestimmte Reihenfolge der Einstellungen<br />

halten, wohl jedoch an die vorgegebene Syntax. Wird diese verletzt oder treten beim Laden der<br />

Objekte Fehler auf, gibt das System unter Angabe der Nummer der betroffenen Zeile und Spalte der<br />

Datei eine detaillierte Fehlermeldung aus und bricht ggf. die Ausführung ab, so dass der Benutzer<br />

eine Korrektur leicht vornehmen kann. Für eine Beispielkonfiguration siehe Anhang Seite 154.<br />

11.2 Das remad-Fernsteuerungsprogramm<br />

Um den Cave hochzufahren, ist zuerst auf allen Slaves das Programm für den Slave-Betriebsmodus<br />

zu starten, welches in einem Standby-Zustand auf das Aktivwerden des Masters wartet, dessen Anwendung<br />

zuletzt gestartet wird. Beim Start sucht der Master nach aktiven Slaves und beginnt nach<br />

dem Laden der gewünschten Weltkonfiguration mit dem Ausführen der Kreatur-KI sowie dem verteilten<br />

Rendern der Grafik. Da es unpraktisch ist, die Programme auf allen Rechnern jedes Mal per<br />

Hand zu starten, haben wir das einfache Fernsteuerungstool remad erstellt. Dieses wird auf jedem<br />

Rechner einmalig im Servermodus gestartet (bspw. automatisch beim Booten als Daemonprozess)<br />

und bekommt dabei den Pfad zu zwei ausführbaren Programmen als Kommandozeilenparameter<br />

übergeben. Über das Netzwerk können ihm dann verschiedene Befehle geschickt werden, um z.B.<br />

eine der beiden Anwendungen als Kindprozess mit mitgegebenen Parametern zu starten, sie durch<br />

den Versand der Signale SIGINT, SIGTERM oder SIGKILL wieder zu beenden, oder eine bestimmte<br />

für den Kindprozess relevante Umgebungsvariable auszulesen, bzw. auf einen bestimmten Wert zu<br />

setzen. Die Beschränkung auf zwei ferngesteuert ausführbare Anwendungen und deren Festlegung<br />

bei Programmstart erfolgt aus Sicherheitsgründen.<br />

Im Clientmodus können mit remad die oben genannten Befehle an einen bestimmten Rechner gesendet<br />

werden. Da es sich um ein reines Kommandozeilentool handelt, eignet es sich bestens für einen<br />

Einsatz in Shell-Skripten, so dass sehr einfach Skripten zum Hoch- und Herunterfahren des gesamten<br />

Caves erstellt werden können. Das entfernte Starten von Programmen kann zwar auch mit Hilfe von<br />

SSH durchgeführt werden, gerade in Bezug auf das ferngesteuerte Setzen von Umgebungsvariablen<br />

ist remad jedoch etwas eleganter in der Handhabung, zudem verhindert es von Haus aus, dass auf<br />

einem Rechner zu einem Zeitpunkt mehr als ein Prozess mit der Cave-Anwendung gestartet wird.<br />

109

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!