Automated Reconciliation for Disconnected Operation in Object Oriented Middleware
Modern distributed computing systems are no longer constrained to fixed, wired networks. Many computers have gained the ability to move within a network and operate across wireless links. Such mobile computing devices often suffer from limited, unreliable, or expensive network connectivity. These constraints make services dependent on other devices in the network difficult to maintain. Disconnected operation refers to the operation of a device while disconnected from the network. Typically, disconnected operation is achieved by caching a copy of data and/or functionality from remote machines locally on a device. When network connectivity is lost, the disconnected device can still function by using its cache. Upon reconnection, any modifications are reconciled with the original on the remote machine. This project focused on implementing a simple disconnected operation protocol and investigating automation of the reconciliation process. Reconciliation generally involves reintegrating disconnected data caches with original copies, while detecting and resolving conflicts that may have occurred during the disconnection period. Rather than relying on application specific routines to detect conflicts, this project attempted to simplify the process by developing a generic means of identifying data dependencies and monitoring data access. The approach chosen was to maintain metadata along with application data to define dependencies between application data and monitor access to the data. By using generic metadata to represent this information, generalised conflict detection algorithms can be implemented. A successful implementation of these concepts was developed and partially tested for this project. Disconnected operation and limited capabilities of automated conflict detection were proven to work. Significant improvement over similar work in the field was not achieved, but the generic, modular framework created has potential for future development of superior automated conflict detection.