Hi Chris,the most trouble which we have is that we have to maintain states. Ok, I was the guy who introduced this stuff :(
Nevertheless I had an idea yesterday evening when I tried to draw a graph of the finite state machine from your idea. The complete system works without real states. It uses serial numbers for exports. Here now the idea:
There are three important actions: 1. write operations on the database 2. exports to another server (the serial of this server is called TARGET) 3. imports from another serverFirst I want to describe the database table in the background. Yes, this idea needs a new table dataexchange (short DX). It has the following structure:
DX_SERIAL OBJECT_TYPE OBJECT_SERIAL SERVER_ID NUMBERDX_SERIAL is simply a unique identifier. NUMBER is the serial of the export. Later more about this.
1. write operations on the databaseIf there is a write operation on the database then the DBI module creates for every existing server which has a dataexchange connection with this server a new entry in the database and sets NUMBER to 0.
2. export to another server - EX ::= new export serial from database (sequence generator) - SELECT * FROM DX WHERE SERVER_ID=TARGET - write all selected objects to the export file - update DX set NUMBER=EX where NUMBER=0 and SERVER_ID=TARGET - write serial of last successful import from TARGET to export file (IX) 3. import - run normal import with ruleset on all objects - set IX (read from import file) - DELETE FROM DX WHERE SERVER_ID=TARGET and NUMBER>0 and NUMBER<=IX I hope the definition is understandable. Perhaps a small example: RA->SERVER_ID::=1 CA->SERVER_ID::=0 Only the CA communicates with th RA (typical online/offline scenario). 1. RA - CSR 257 will be APPROVED ==> new entry in DX - DX_SERIAL 1025 - OBJECT_TYPE REQUEST - OBJECT_SERIAL 257 - SERVER_ID 0 - NUMBER 0 - export to CA - export serial is 513 - object is written to export file - IX is not relevant here (but written) ==> DX update because NUMBER is 0 - DX_SERIAL 1025 - NUMBER 513 2. CA - import into CA - APPROVED CSR 257 will be processed - IX for SERVER_ID 1 (RA) is set to 513 - export to RA - objects are not relevant here- IX (of RA) is set to 513 (or a higher value if there were other imports in this time from the RA)
3. RA - import from the CA - import objects (not relevant) - load IX - DELETE FROM DX WHERE SERVER_ID=0 and NUMBER>0 and NUMBER>=IX (the DX entry for APPROVED CSR 257 is deleted) Advantages ---------- - fast exports because the queries are simple - no maintaining of import states - no difficult export states- the exporter has not to take care about what the importer does with the objects
Disadvantages ------------- - larger exports (we export all changed stuff) - we depend on the integrity of the export files Comments? Do you need a better description? Michael -- _______________________________________________________________ Michael Bell Humboldt-Universitaet zu Berlin Tel.: +49 (0)30-2093 2482 ZE Computer- und Medienservice Fax: +49 (0)30-2093 2704 Unter den Linden 6 [EMAIL PROTECTED] D-10099 Berlin _______________________________________________________________
smime.p7s
Description: S/MIME Cryptographic Signature