C o m p u t e r C h e s s U t i l i t i e s
A. netChess
Mit diesem Hilfsprogramm können Benutzeroberflächen mit
Schachprogrammen auf entfernten Rechnern kommunizieren, die über
Netzwerk (TCP/IP) miteinander verbunden sind.

Funktionsweise:
1. Start des Programms 'engineServer' auf dem Computer, der die
Engines zur Verfügung stellt
Auf den Zielrechner (z.B. Linux_1 mit IP-Adresse:192.168.2.24) ist das
Programm 'engineServer'
aufzurufen.
In der Spalte Name ist der
Name der Engine einzutragen (z.B. Crafty Spezial). In der Spalte Port ist eine für diese
Rechner eindeutige Nummer größer als 1024 einzugeben. In der
Spalte Datei ist der Pfad zum
Schachprogramm einzutragen. Falls gewünscht, können weitere
Einträge erfolgen. Programme, die gestartet werden sollen, werden
in der ersten Spalte mit einem Häkchen versehen.

Die Eingaben werden in der Datei engineServer.rc
abgespeichert. Nach Betätigung des Start-Knopfes werden die
markierten Programme aktiv.
Die Spalten der Tabelle können durch Drücken der Kopfspalte
sortiert werden. Zum Löschen einer Zeile die rechte Maustaste
drücken.
Falls es Probleme mit einer Firewall gibt (das Programm versucht zur
Ermittlung der IP-Adresse eine temporäre Verbindung auf Port 22
auf sich selbst herzustellen), so ist in der Datei engineServer.rc ein Eintrag mit dem
Rechnernamen oder der IP-Adresse vorzunehmen. Z.B. host 192.168.2.5
Unter Windows erhält man die IP-Adresse auf der Konsole mit dem
Kommando ipconfig.
2. Start des Programms 'engineClient' auf dem Rechner auf dem die
GUI läuft
Es fordert zur Eingabe des Namens des Schachprogramms auf und verlangt
den Rechnername (oder IP-Adresse) des entfernten Rechners, sowie eine
eindeutige Portnummer für diese Verbindung, die größer
als 1000 sein muss. Damit wird eine Kopie dieser Datei mit dem Namen
'netNAME(.exe)' und eine Konfigurationsdatei 'netNAME.rc' erzeugt.
Sollen weitere Programme von diesem Rechner eingebunden werden, so ist
unbedingt eine andere Portnummer zu verwenden.
Z.B.:

Für eine Verbindung mittels 'ssh'
besteht die Möglichkeit statt der Portnummer ein Kommando
einzugeben, z.B.:
Linux: ssh
UserName@RemoteHost /Verzeichnis/zur/Engine/prog
Windows: c:/winnt/system32/plink.exe
UserName@RemoteHost -ssh -pw passwort /Verzeichnis/zur/Engine/prog
Ich empfehle das Kommando auf der Konsole zuerst auszuprobieren. Eine
Unterstützung bei der Konfiguration von 'ssh' kann ich leider nicht
geben. Hier findet man weiter Infos zu plink.exe.
Internationalisierung:
Die Programme können mit Hilfe der Sprach-Datei
lang.msg internationalisiert
werden. Dazu muss der
deutsche Text durch die
Alternative ersetzt werden.
Z.B. für Französisch eine Datei lang.msg in fr.msg umbenennen und ersetze
mcset de "Error message" \
"Fehlermeldung"
durch
mcset fr "Error
message" \
"Message d'erreur"
usw.
3. Start der Benutzeroberfläche
In die Benutzeroberfläche werden nun die zuvor generierten
Prozeduren 'netNAME.exe' eingebunden.
Sie werden dem gleichen Übertragungsprotokoll (UCI/Winboard) wie
die Engine angesteuert. Erfolgreich getestet mit den
Benutzeroberflächen Arena
und Fritz 7 (UCI).
Voraussetzung: Zwischen den Rechnern besteht Netzverbindung (testen mit
ping) und die Portnummern sind verfügbar.
4. Ausblick
Damit können nicht nur Betriebsystemgrenzen (Linux, Mac, Windows)
überwunden werden, auch können die Programme unabhängig
voneinander ihre Rechenkapazität nutzen (pondern). So ist es
möglich, dass auf
dem Rechner 1 die Benutzeroberfläche und
die erste Engine laufen und auf dem Rechner 2 die zweite Engine. Es
können
nicht nur Zweikämpfe, sondern ganze Turniere in gewohnter Art
durchgeführt werden.
5. Hinweis
Mit diesem Ansatz können nicht nur Schachprogramme über das
Netzwerk gestartet werden, sondern auch andere Programme, die über
stdin/stdout arbeiten.
6. Bekannte Schwächen
Das Programm ist nicht gegen bestimmte Signale (z.B. SIGINT) resistent.
7. Geschichte
engineServer (1.1)
- Erweiterung um die Spalte 'Kommandozeilenargumente'
engineClient (1.0)
- mit eigenen Sprachdateien können außer Deutsch und
Englisch weiter Sprachen unterstützt werden.
- Es ist nun auch möglich Engines übers Internet mit
'ssh' oder 'plink.exe' einzubinden.
engineServer (1.0)
- Die Oberfläche des Serverteils wurde überarbeitet
- mit eigenen Sprachdateien können außer Deutsch und
Englisch weiter Sprachen unterstützt werden.
- Probleme mit 'firewalls' sind behoben.
- Leerzeichen in Pfadangaben werden akzeptiert
engineClient (0.9)
engineServer (0.9)
- Erste veröffentlichte Version
8. Haftung
Das Programm wurde nach bestem Wissen und Gewissen erstellt. Eine
Haftung bzw. Gewährleistung kann aber nicht übernommen
werden.
Bernhard Wallner
$Id: readmeGer.html,v 1.7 2004/09/17 19:50:10 wall Exp $