Softwareentwicklungspraktikum WS08/09

Lehr- und Forschungseinheit für Theoretische Informatik
Institut für Informatik der Ludwig-Maximilians-Universität München

Server zum Testen

Im CIP-Pool

Auf dem Rechner haidel.cip.ifi.lmu.de läuft auf Port 1099 eine Instanz des Testservers.

Dieser Server enthält als Beispiel die Spiele aus dem Wettbewerb. In zwei offenen Arenan kann man auch gegen die Stämme aus dem Wettbewerb antreten, sowohl auf dem Vorrundenspielfeld als auch auf dem Finalspielfeld.

Um den Studenten nicht zu sehr zu stören, der an diesem Rechner gerade rund um die Uhr seine Diplomarbeit schreibt, speichert der Testserver nur 20 Stämme (neben den Wettbewerbsstämmen) und 5 neue Spielpartien. Werden dann neue Stämme eingereicht oder neue Spiele angefragt, dann werden die jeweils ältesten Stämme und Partien einfach wieder gelöscht.

Der Testserver auf haidel.cip.ifi.lmu.de kann die Home-Verzeichnisse im CIP-Pool lesen (wenn die Dateirechte so gesetzt sind, dass er das darf). Als java.rmi.server.codebase für die Client-Programme kann man also eine file:/-URL hernehmen und muss die Klassen, die vom Client zum Server übertragen werden sollen, nicht auf einen http-Server legen.

Download

Wegen der Firewall im CIP-Pool ist der Testserver auf haidel.cip.ifi.lmu.de natürlich nur aus dem lokalen Netz bzw. über NX zugänglich.

Deshalb stellen wir den Testserver hier auch zum Download bereit: AntServer3.jar (braucht Java 6)

Den Testserver sollte man dann einfach mit

  java -jar AntServer3.jar

ausführen können. Er benutzt dann eine Default-Security-Policy, die Netzwerkzugriffe und lesenden Dateizugriff erlaubt (Dateizugriff wird nur benutzt, um RMI das Nachladen von Klassen von file:/-URLs zu ermöglichen). Die Default-Codebase ist http://www.tcs.ifi.lmu.de/lehre/WS08-09/SEP/AntServer3.jar.

Achtung: Je nach Netzwerkgeschwindigkeit kann die Verbindung mit dem Server wegen der http-Codebase recht lange dauern. Es bietet sich an, die Codebase auf den Pfad der lokalen Datei zu setzen:

  java -Djava.rmi.server.codebase=file:/path/to/AntServer3.jar -jar AntServer3.jar

Die Default-Security-Policy kann, wie auch die Codebase, mit dem üblichen Parameter überschrieben werden.

Der Heap-Speicher-Bedarf liegt typischerweise bei weniger als 150MB und Suns Java 6 JVM sollte auch automatisch so viel Speicherplatz bereitstellen. Auf anderen JVMs könnte es eventuell nötig sein, die Maximalgröße des Heaps anzupassen.

aFAQ (anticipated FAQ)

Ich kann mich mit dem Server verbinden, aber Spiele nicht ansehen.
Vielleicht ist beim Client kein RMI-Security-Manager installiert, so dass er sich die Implementierung der Match Klasse nicht vom Server holen kann? Ist beim Client eine Security Policy installiert?

Ich kann Spiele sehen, aber keine Ameisenstämme einreichen. Der Server sagt, er könnte meine Imlementierung des Interfaces AntClientToServer nicht finden.
Ist auch beim Client eine codebase gesetzt? Hat der Server Zugriff auf diese URL? Bei file:/-URLs, endet die URL mit einem '/'?