[M] Avanti
Thomas Berger
ThB.com at t-online.de
Di Jan 7 14:10:29 CET 1997
Liebe AllegrologInnen und Allegro-Entwickler,
bislang habe ich nur Trockenuebungen gemacht, daher sind
folgende Anmerkungen zu AVANTI vielleicht nicht sonderlich
relevant:
1.) Die Primaerschluesselproblematik:
#-@ hat ja eine besondere Bedeutung fuer Indexparameter-
dateien, weil hier ja der b/B Mechanismus fuer die
Traverse durch die Hierarchieebenen (auch selbstaendig/
unselbstaendig) ansetzt.
Hier sehe ich das Problem (hat nichts mit AVANTI zu
tun), dass wir uns spaetestens mit einer RAK-Loesung
fuer unselbstaendige (bislang ja nur Vorschlaege) damit
auseinandersetzen muessen, dass auch unselbstaendige
Werke Teile haben, so dass es in Wirklichkeit zwei
simultane Hierarchien geben kann: Die des Unselbstaendigen
in sich und diejenige(n) der jeweils enthaltenden Werke.
Jedenfalls aber sind die bei #-@ gebildeten Schluessel
stets recht kompliziert, insbesondere wenn sie tatsaechlich
eindeutig sein sollen (Aufbereitung mit fuehrenden Nullen,
Strukturerzeugung aus evtl. mehreren Kategorien #00 / #09 /
#70 / #84 / #708).
Fuer meinen Geschmack also eignen sich diese "Hierarchie-
schluessel" nicht besonders gut als Primaerschluessel,
zumal es ja - zumindest bei eingeschaltetem "Signatur"-
Generator in der .CFG - einen wirklich eindeutigen,
wirklich einfachen Schluessel gibt, der ja auch eben
wegen jenes Signaturgenerators indexiert werden muss.
Insofern wuerde ich auch fuer AVANTI die UPDATE-Loesung
vorziehen, naemlich einen (in diesem Fall durch die
Position seiner ak-Zeile) anderen, benutzerdefinierten
Schluessel als Primaerschluessel zu verwenden.
2.) PV fuer Avanti (wurde glaube ich schon andiskutiert):
Gewisse Aufbereitungen erfordern viel Rechenzeit, wenn
sie jedesmal von der Indexparametrierung gemacht werden
sollen. Normalerweise kann man sie sehr gut (mittels PV)
zum Zeitpunkt der Eingabe/Korrektur eines Datensatzes machen,
Voraussetzung dafuer ist aber manchmal, dass die Datenbank
zugaenglich ist (etwa automatische Kennzeichnung "falsch"
verknuepfter Saetze). Fuer die Einmisch-Funktionalitaet von
AVANTI wuerde ich mir neben der der automatischen Identnummern-
vergabe so etwas wie die programmierte Validierung wuenschen.
Ich weiss nicht genau, ob die bisherige (bzw. nur geplante)
Loesung des Parallelbearbeitens des neuen und des zu
ersetzenden Datensatzes mit Hilfe der AVANTI-Sprache dieses
leisten koennte und wenn ja, ob es dann nicht trotzdem
sehr umstaendlich waere.
3.) Socket-Unterstuetzung: Mir ist klar, dass der derzeitige
"Kommunikationsmechanismus via Dateisystem", sprich: alle
beteiligten Programme starren darauf, ob eine bestimmte
Datei von den jeweils anderen Beteiligten erzeugt wurde,
auch von der Entwicklungsabteilung nur als Kruecke angesehen
wird. UNIX und die 32bittigen Windows-Varianten haben ja
eine (rudimentaere) Socket-Unterstuetzung eingebaut und ich
plaediere stark dafuer, AVANTI socketfaehig zu machen, auch
wenn dabei AVANTI fuer DOS-pur fallengelassen werden muss.
[Auch das Windows-Presto laeuft ja strenggenommen nicht
unter Windows bzw. WfW 3.11, sondern erst, wenn man die
Risiken der Installation eines Zusatzproduktes inkauf nimmt...]
Unter NT haben zwar auch Named Pipes viele der Eigenschaften
von Sockets, koennen insbesondere auch rechneruebergreifend
als "Resource" angesprochen werden, das kann aber meines
Wissens UNIX nicht so gut.
4.) Das letztens beschriebene explizite Einbinden von .cPT's
unter AVANTI ist meines Erachtens ein Schritt in die
richtige Richtung: Dateisystemoperationen sind "teuer"
im Sinne von Performance (nur Kontext-Switching, also das
Aufstarten neuer Tasks ist noch viel viel teuerer), insofern
muessen Kopieraktionen (und seien es UNIX-Links) und
Suchaktionen fuer Parameterdateien auf das absolute Minimum
beschraenkbar sein!
Viele Gruesse
Thomas Berger
Mehr Informationen über die Mailingliste Allegro