MiCaDo Projektbericht - artecLab - Universität Bremen
MiCaDo Projektbericht - artecLab - Universität Bremen
MiCaDo Projektbericht - artecLab - Universität Bremen
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