Information Technology Reference
In-Depth Information
F IG . 8. Proposed client-side data access service.
More fundamentally, such a client-side DAS would have to address the need to
support conflict resolution when conflicts do occur, which is one of the main fea-
tures of a disconnected programming model (Section 3 ). This is a difficult problem
because conflict resolution appears to require detailed knowledge of application se-
mantics, and cannot therefore be easily done by middleware. Unfortunately, there is
no “silver bullet” for this challenge. Relative to technologies such as DB2e [7] or
cached RowSets [33] , SDOs provide synchronization middleware with an API to a
DataObject's change history. The SDO ChangeSummary API, however, assumes that
synchronization is done using data replication rather than method replay (Section 3 ).
New ideas for change management, such as method replay, do not easily fit into the
architected change summaries.
Can EJBs be used as a disconnected programming model? The claim by the SDO
whitepaper that EJBs are not suitable for “disconnected” environments is really a
claim that EJBs use pessimistic concurrency control and lock data. As shown by
work in EJB caching [25] , EJBs (like SDOs), certainly can use optimistic concur-
rency control mechanisms. Granted that the EJB specification assumes a connected
environment, we do not see why the EJB programming model cannot be projected
to disconnected environments as well. As discussed in Section 2 , the chief chal-
lenge introduced by disconnection is client synchronization with the server. Although
EJBs do not provide a change history API, EJB containers can transparently provide
this information in a straightforward fashion, and can thus transparently provide de-
Search WWH ::




Custom Search