Information Technology Reference
In-Depth Information
bean implementation, and from the deployment descriptor itself. The EJB version 3
specification is placing an even greater emphasis on the use of meta-data.
As compared to EJBs, SDOs are much better suited for transmission between ad-
dress spaces. SDOs, in fact, are a type of Data Transfer Object (DTO [8] ). As such,
SDOs are useful because they allow data graphs to be passed between address spaces
in a well-architected fashion. EJBs, in contrast, are explicitly restricted to serialize
“by reference” rather than “by value,” and are thus much more closely tied to a given
address space. Although EJBs can be transmitted between address spaces through an
approach that applies Java Serialization [20] to an entity bean's state [25] , SDOs are
an improvement in this regard because serialization can have difficulty when serial-
izing objects between different Java versions.
4 . 4 S u i t a b i l i t y o f S D O s & E J B s f o r D i s c o n n e c t e d A p p l i c a t i o n s
The SDO Whitepaper [35] discusses the suitability of the SDO programming
model for disconnected applications:
Support for disconnected programming models . Many applications naturally
have a disconnected usage pattern of data access: an application reads a set of
data, retains it locally for a short period of time, manipulates the data, and then
applies the changes back to the data source. For example, this is a very common
pattern in Web-based applications: a Web client requests to view a form, a Servlet
or JSP requests data in a local read transaction and renders the data in an HTML
form, the Web client submits updates to a form, and the Servlet or JSP uses a
new transaction to update the data. Best practice typically dictates that optimistic
concurrency semantics be used for this scenario, which provides for high levels
of concurrency with the appropriate business-level semantic.
However, it is important to note that this usage of “disconnected” is very differ-
ent from our usage. Our discussion of disconnected applications is with respect to
enabling the successful execution of applications on devices which do not have con-
nectivity to the master database server, including replication of the database subset
to the client, disconnected execution of the application, and propagation of the client
updates to the server upon reconnection (see Section 2 ). In contrast, the usage of
“disconnected” in the SDO documentation is very similar to the meaning of “pseudo-
conversational” transactions in the literature [3] . Pseudo-conversational transactions
are a design pattern for supporting optimistic concurrency-control on top of database
managers that do not directly support optimistic concurrency-control. In pseudo-
conversational transactions, the database transaction is closed (committed) while a
user-interaction takes place. This prevents the application from holding locks dur-
ing user think-times. After the user interaction is completed, the transaction context
is reopened, and any updates specified by the user are then made to the database.
Search WWH ::




Custom Search