http://rzstud1.rz.uni-karlsruhe.de/~ule3/Railserver/rstech-d.html (Einblicke ins Internet, ~06/1995)
RailServer: Wie er funktioniert
Des Pudels Kern: HAFAS.EXE
Kern des RailServers ist die mit der CD "Elektronisches Kursbuch
Deutschland" der Deutschen Bahn AG bzw. auch mit den "Elektronischen
Städteverbindungen gelieferte Fahrplansoftware der Fa. HaCon GmbH,
Hannover.
Es handelt sich dabei um ein (übrigens sehr gut
programmiertes) interaktives Programm zur Ermittlung von Bahnverbindungen;
ein Batch-Modus ist nicht vorgesehen. Ich kann die Software
nur jedem empfehlen, der diesen RailServer mehr als nur sporadisch
benutzt - Bezugsquelle hier.
Das Entschlüsseln der Datenstruktur gelang mir nur ansatzweise (die
Bahnhofsdatei und die Entfernungstabelle - Dateien PLANB und PLANK -
konnte ich verstehen, den Rest nicht). Die Firma wollte
verständlicherweise auch nichts verraten; sie bietet eine DLL zum
Einbau in eigene Programme an, die auf die Daten zugreifen kann.
Trick mit VIRTUAL USER
Kurzerhand programmierte ich das erste TSR-Programm meines Lebens
mit einer Turbo Pascal-Uraltversion (normalerweise arbeite ich mit
Visual BASIC). Dieses simuliert anhand eines vorgegebenen kleinen
Programm-Skripts einen Benutzer, der auf bestimmte Fragen eines
Programms mit vorgegebenen Daten antwortet (also sowas wie
PROGRAMM.EXE < EINGABE.ASC, bloß "kontextsensitiv"). Ich
glaube, unter Un*x gibt es sowas standardmäßig (?).
Das Programm-Skript und die Daten können in einer Datei bereitgestellt
werden. Dazu gehört ein kleiner Compiler, den ich in VB/DOS realisiert
habe und der die benötigten komprimierten Programmskripte aus
dokumentiertem Quelltext erzeugt. Der Quelltext sieht vom Stil her
etwa so aus:
IF CURSOR AT 10,3
SENDKEY F3 #13
ELSE
SENDVAR Startbahnhof
END IF
Und noch ein paar Befehle mehr (GOTO, GOSUB, RETURN, was einem
BASIC-Programmierer halt so einfällt). Das Virtual-User-Programm
samt Compiler steht für Interessierte auf meiner
Download-Seite zur Verfügung.
Gut PROCESSed ist halb gewonnen
Jetzt brauchte ich nur noch ein Programm, das eingehende Mails
analysiert, daraus die benötigten Variablendateien für den
"Virtual User" erstellt und die Ausgabe des HAFAS-Programms (eine in
eine Datei gedruckte Bahnverbindung) in eine Antwortmail
umformatiert. Auch das war schnell gehackt (PROCESS1.EXE).
Das SALT in der Suppe
Ferner braucht's noch ein paar Batchprozeduren und ein paar Scripts
in der TELIX-Makrosprache SALT, die automatisch bei der Uni anrufen
und alle Mails von meinem Account übertragen bzw. die von PROCESS1
generierten Antwortmails uploaden und per SENDMAIL ins Netz
schicken. Bei der Gelegenheit: SALT ist eine der umfangreichsten und
genialsten Makrosprachen. Was man damit alles machen kann - und das,
obwohl die Version auch schon ihre 5 Jahre auf dem Buckel hat! Und das
alles als Shareware :-)...
Relais und Zeitschalter
So ungefähr funktioniert also der Mailserver. Im Routinebetrieb wird
mein PC von einer Zeitschaltuhr nachts automatisch eingeschaltet, um
die Mailserver-Prozeduren abzuarbeiten; nach getaner Arbeit schaltet
er sich selbst wieder ab (dafür habe ich eine kleine Relaiskarte
gelötet, ich fand das schon damals bei den Macs so toll, daß sie
sich selbst abschalten konnten...)
Zur RailServer-Hauptseite