Search This Blog

Wednesday, February 6, 2008

Tracking XML Data Changes Easily with SDO

Tracking data changes is an essential requirement in many software,
application, and business-integration scenarios. Rigorously implementing
this requirement is relatively difficult because modeling and working
with the delta for typical changes is generally very involved. On the
other hand, repetitively implementing it in all the applicable
situations is a waste as a single proper model for the delta is
suitable for many situations, and in most of cases, the requirements
are similar. Service Data Object (SDO), a BEA Systems and IBM-led JSR
defining a generic solution for heterogeneous data access, provides
developers with an easy-to-implement mechanism for tracking data history
at the system level. This article shows an example of processing XML
data with SDO using version 1.0 of Apache Tuscany, a Java implementation
of SDO. Since SDO is not (yet) the standard solution for XML processing,
the article also covers basic XML data operations in SDO to provide
context. The XML data-processing example in this article assumes the
following three phases with a separate party responsible for each phase:
(1) Create, (2) Process, and (3) Review. The XML data are transported
between these phases (and parties) through a file system. The central
scenario of this example is as follows: the second party needs to record
changes he/she makes to an XML file created by the first party, and
when the third party reviews the XML data, he/she hopes to know of such
changes. If you use the Track Changes feature of Microsoft Word, you
will recognize the value of these requirements immediately. Many
applications have these requirements, including optimistic
concurrency-control implementation, synchronization of offline
application data with an active database, and business process management
(BPM) systems. We now demonstrate how SDO helps to implement these
requirements easily... You'll find successful SDO implementations not
only in leading open source and commercial software such as Eclipse,
BEA AquaLogic Data Services Platform (ALDSP), and IBM WebSphere Process
Server etc., but also in various languages including Java, C++, and PHP.
In 2007, two major developments occurred in the SDO ecosystem: In March,
Open SOA announced it would submit SDO to OASIS; in April, the JCP
formally declared it will consider SDO for inclusion in future versions
of Java EE.

No comments: