Information Technology Reference
In-Depth Information
Interestingly, EJBSync can be seen as a middleware-based version of the message-
based programming model. As with the message-based approach, EJBSync tracks the
key business activities that have occurred during the disconnected application's exe-
cution. Unlike the message-based approach, middleware is responsible for tracking
these business activities; the application itself is unmodified, and remains unaware
that log activity is occurring. As with other comparisons between hand-crafted and
automated solutions, the message-based programming model may well (at least ini-
tially) provide a more optimal solution than EJBSync . The usual tradeoff applies,
however: development and maintenance costs are considerably cheaper with an au-
tomated approach, and automated solutions are typically improved over time.
5 . 3 D a t a R e p l i c a t i o n v e r s u s M e t h o d R e p l a y
As mentioned in Section 3 , the techniques used by EJBSync can be used to
“hide” data-replication synchronization in the same way that method-replay is hid-
den. Based only on our first two evaluation criteria, these approaches are equally
good since middleware is used to capture the device's change set and propagate it to
the server. Both approaches facilitate the deployment of disconnected applications
since the development, test, and maintenance costs have already been incurred when
building the connected version of the application. In fact, DB2 Everyplace provides
precisely this synchronization technique together with integrated middleware in a
commercial product. The key differentiator between these approaches relates to our
third criterion: the way in which the programming model supports successful prop-
agation of work from the client to the server. Specifically, method replay has the
following advantages compared to data replication:
Method replay creates a smaller “footprint,” in that it is less likely to cause
conflicts during the synchronization process.
Method replay projects a more consistent connected programming model to the
disconnected device because of the way conflict resolution logic is specified.
With method replay, the device's work executes against current data (during
synchronization) rather than an out-of-date version of the data.
We discuss these advantages in more detail below, and then discuss their implications
for building disconnectable applications.
5.3.1 Smaller Conflict Footprint
The more that the device's database state differs from the server's database, the
more likely that synchronization will fail. While we definitely do not want to ignore
a “true” conflict, we also want to minimize detection of “false” conflicts since those
Search WWH ::




Custom Search