Interfaces between 2 systems

From: Mark <markg_at_sqrsoftware.co.za>
Date: Thu, 11 Nov 2004 15:32:16 +0200
Message-ID: <cmvpn5$3kj$1_at_ctb-nnrp2.saix.net>



Hi All

There is an interface between my company's database and another company's database which is currently causing a great many problems. Database A in system A contains a master list of records that have to be sent through to Database B in system B. I believe the problem is that only changes to records in database A are being sent across to database B as opposed to all records being sent across.

I believe the correct approach is for Database A to publish a view and for Database B to pick out any differences in the master list and update / delete / insert as necessary (the number of records involved is small and does not make this approach prohibitive). The advantages of this approach vs sending only changes include:

  1. If you only send across changes, unless there is an equal starting point, the two databases will never be in equal (unless all records are eventually modified)
  2. If system A has a bug in sending across changes or system B has a bug in importing these changes, the data will not be synchronized once the bug is fixed unless the incorrectly interfaced records are sent through again. If all records are interfaced via a view, once the bug in importing / exporting is fixed, the two systems will become synchronized again.
  3. If only the changes are interfaced, ordering the changes correctly becomes very important for the system sending across the changes if there are multiple changes to the same record. This can become extremely complex if system A (the system sending the changes) is a distributed system and is being updated asynchronously from a variety of sources.
  4. System B cannot display System A's data to users of system B. This is useful for preventing queries because users of system B can see exactly where the data is coming from and can contact users of system A to make the relevant corrections to the data if necessary.

There are various other issues that arise from interfacing only changes versus interfacing all records but I am having difficulty convincing the parties concerned that going to the cost and effort of changing the interface is worthwhile and that interfacing all records is a more "correct" approach. Can anyone point me to any relevant research on the prinicples of designing interfaces between two systems that may help me win my case? Alternatively, if you believe I am wrong let me know...

Thanks
Mark Received on Thu Nov 11 2004 - 14:32:16 CET

Original text of this message