Information Technology Reference
In-Depth Information
conflict require only that one transaction be aborted, or must the entire set of
work performed on the device be aborted?
Conflict resolution , in which (if conflicts were detected), the application or
middleware attempts to determine a new server-side state which eliminates the
conflict. If no resolution is possible, the synchronization must be (partially or
completely) aborted (i.e., the device's state cannot be automatically propagated
to the server), and the failure logged and reported to the user. If some resolu-
tion is possible, it is performed, and the update is propagated to the server-side
database.
A key challenge here is whether general purpose conflict resolution algo-
rithms can be devised or whether application-specific resolution is required.
Transactional merge , during which the change set, possibly modified by conflict
resolution, is merged with the server-side database. As a result, work performed
on the disconnected device is now visible to other applications and users—
without violating the transactional guarantees made by the application.
Note that update propagation between the client and server is asymmetric: updates
performed on the server may invalidate transactions performed on the client, but
client updates cannot invalidate previously-committed server-side transactions (be-
cause the server-side transactions were previously visible to all users and applica-
tions).
The programming model discussed in this chapter is orthogonal to stage 1 :mid-
dleware such as DB2 Everyplace [7] shows that efficient subscription and replication
techniques can propagate server updates to the client. The programming model's
task is to ensure that the application's execution behavior during stage 2 conforms as
closely as possible to its behavior in a connected environment. The difficulty is that
the programming model must deal with, and be supported with middleware for, the
stage 3 synchronization process, during which the client's updates are propagated to
the server. Broadly speaking, two synchronization approaches exist: data replication
and method replay .
3.
Synchronization Techniques
3 . 1 D a t a R e p l i c a t i o n
The data replication synchronization technique represents a change set as a log
of data modifications that were performed on the disconnected device. (The term
“modifications” denotes data creation and deletion as well as data changes.) Data
replication is used by both DB2e [7] and Lotus Notes [26] . It also underlies the no-
tion of cached RowSets [33] in which the reference implementation uses optimistic
Search WWH ::




Custom Search