AW: Job-Puffergroesse v. Avanti-W?

Thomas Berger ThB at gymel.com
Fr Dez 6 11:22:18 CET 2002


Lieber Herr Hoeppner,

> > vergesst bitte bei dieser Diskussion nicht, dass Ihr mit avanti-cl eine
> > Möglichkeit habt zumindest prototypisch mal einen besseren avanti-w zu
> > konzipieren. Das kann zunächst ja sogar eine scriptbasierte Lösung sein. Es
> > ginge dabei ja erstmal darum, herauszufinden, wie die Socket-Geschichte
> > besser in den Griff zu bekommen ist.

Das (= forking Server, auch mit lightwight Processes oder
Windows-Threads) geht wirklich ganz schematisch nach Lehrbuch, 
da braucht man nichts herauszufinden.

Ich empfehle:
Unix Network Programming / W. Richard Stevens.
Englewood Cliffs, NJ: Prentice-Hall, 1990
ISBN 0-13-949876-1

(es gibt m.W. aber inzwischen eine zweite Auflage in
zwei Baenden, u.U. auch eine deutsche Uebersetzung).

Fertige Codefragmente muessten aber in den meisten
Entwicklungsumgebungen als Beispiel beiliegen.

avanti-cl ist nett, wenn man "mal eben schnell" einen 
Job ausprobieren will, ohne die Fehlermeldungen aus
avanti-Logdateien graben zu muessen und ohne dem
Zwang unterworfen zu sein, ihn in Minimal-Clients wie 
tcpip.pl einzubauen. 

avanti-cl waere fuer die Entwicklungsabteilung interessant
als Studienfall, den in diesem Fall aeusserst primitiven
Kommunikationsteil vom Funktionsteil abzutrennen und
letzteren in eine .dll auszulagern (Ersatz fuer procav.exe).
Ein reparierter avanti-TCP-Server wuerde dieselbe dll
benutzen und haette nur einen anderen Kommunikationsteil.
Evtl. haben Sie avanti-cl.exe aber genau als diesen procav-
Ersatz gesehen, es fehlt nur der Server hierfuer.

Ich verstehe nicht genug von Windows-Programmierung um
einschaetzen zu koennen, ob nicht der Aufruf eines
separaten .exe's in einem Thread ein Widerspruch an 
sich ist (zumindest im Hinblick auf die Performance-Vorteile
von Threads), nach meiner Einschaetzung loest avanti-cl
hoechstens das Problem, fuer das es inetd gibt: D.h.
eine Situation, wo man viele Dienste hat, die aeusserst
selten aufgerufen werden, so dass man lieber einen
Dienst (mit kleinem memory fingerprint) hat, der auf 
Dutzenden von Ports lauscht und bei Bedarf ganz gemaechlich
fette Executables hochstartet.

Avanti hingegen muss tendenziell viele, anfallsweise auch
ziemlich gleichzeitige, Anfragen beantworten, d.h. Server-
programm und alle Komponenten sollte moeglichst immer
schon "da" sein.

viele Gruesse
Thomas Berger




Mehr Informationen über die Mailingliste Allegro