Hallo,
ich habe hier eine Frage zur Softwarearchitektur, die am Rande mit
Linux/Perl zu tun hat. Aber weil ihr hier alle so schön
interdisziplinär zusammensitzt, kann doch was draus werden ;-)
Also:
Eine vorhandene, in Perl implementierte Middleware verarbeitet
XML-Dateien. Diese werden umgeformt, geteilt und letztenendes an ein
anderes System weitergereicht. Das kennen wir ja schon, ich habe euch
deswegen schon gelöchert.
Nun kommt es gelegentlich zu Laufzeitproblemen derart, das die
Information in einem XML sich auf das Vorhandensein der Info in einem
anderem XML verlässt. Also A hat eine Ergänzung zu B. Es wird
vorrausgesetzt, dass B irgendwann schonmal durch die Middleware
gegangen ist und somit im Zielsystem vorhanden ist. Möglicherweise
steckt jetzt aber B in einem XML, was in einer halben Stunde
vorbeikommt. Die Information A wird somit vom Zielsystem verworfen.
Meine Idee ist jetzt, in irgendeiner Art ein Logbuch zu führen,
welches z.B: die Antworten vom Zielsystem auswertet ("B noch nicht
vorhanden") und somit die Zustellung von A später wiederholt.
Dazu habe ich zwei technische Realisierungen im Auge, kann mich aber
für keine entscheiden:
1. Es werden nur die Transactionsinfos in einer Datenbank
vorgehalten. Die eigentlichen XMLs stehen bis zur vollendeten
Übertragung im Dateisystem.
2. Ich setze eine XML-DB ein (Berkeley DB XML), packe das ganze XML
dortrein und ergänze es jeweils um die Transactionsinfos. Wenn die
Übertragung perfekt ist, fliegt es wieder raus.
Die zweite Variante scheint mir technisch sauberer und interessanter
zu sein. Allerdings scheint diese nach einigen Tests nicht die
performanteste zu sein.
Die erste Variante ist wohl die klassische Variante und schneller,
ich befürchte aber, das es u.U. zu Inkonsitenzen zwischen LOG-Db und
wirklich vorhandenen Dateinen kommen kann. Ausserdem muss ich neben
den DB-Queries noch eine Reihe von Filesystemoperationen durchführen.
Es gibt also mehrere Fehlerquellen.
Kann mir jemand helfen, mir Variante 1 oder 2 ein- oder auszureden ??
Danke.
Mit freundlichen Grüßen
Jens Puruckherr