integrity of a virtual object graph, and can provide
historical “audit” views of the graph as it existed at
any point in the past. It can also implement
disconnected semantics in which two or more
instances of a CDO Server can redundantly maintain
a virtual object graph such that in the event of
disruptions in communications, each can provide
access to the graph. The use cases for this ability
include local disconnected operation such as on a
portable computer, or for geographically distributed
servers that may experience communication
problems. In either case, the CDO server will
resolve differences between the two servers when
communications are restored.
2.3 CDO Semantics and Capabilities
To facilitate multiple accesses to a virtual object
graph, CDO provides transactional semantics and
notification facilities. These allow different
applications to modify documents in the graph and
transactionally commit them to the CDO Server.
Conflicting changes result in thrown exceptions for
all but the first application to commit a change.
Resolution of conflicting modifications is an
application specific detail. In addition to
transactional “write access,” CDO also offers two
other ways to access the contents of the virtual graph
in an application. The first is a “read-only”
representation of the graph that does not allow
commits to the CDO Server. The other is an “audit”
view that allows a read-only access to historic
versions of the graph as it existed at specified times
in the past.
The Eclipse Modeling Framework has extensive
“notification” capabilities that allow application
code to be notified of changes in instances of classes
generated by the EMF. As part of the EMF, CDO
also provides these capabilities, such that
applications can be notified of changes to the object
graph so that they can respond. For instance, an
application might wish to be informed of the
addition of new clinical documents to the graph so
that it can process them and generate a report.
2.4 Advantages of Virtualization
There are a number of advantages of retargeting the
MDHT implementation to leverage Connected Data
Objects. The first is that little or no changes are
necessary to application code written for the
conventional or “legacy” (in “CDO-speak”)
implementation. The regenerated code retains the
same Java™ interfaces as before, only the
implementations of the interfaces are changed by
CDO. This means that applications developed for
the legacy version are often unaware that anything
has changed and do not need to include complex
code to manage a relationship with a relational
database; they become “scalable” almost for “free.”
The virtualization of MDHT also enables an
entirely new set of distributed healthcare record
processing applications and architectures. With a
network accessible virtual graph of clinical
documents, one can begin to develop applications
that leverage this arrangement and use the graph as a
common data structure on which to cooperate and
coordinate their activities. For instance, some
applications might be producers of clinical
documents, while others might be consumers of
some sort; some might be both by transforming or
augmenting clinical documents for further
processing by others. Since CDO supports multiple
virtual graphs, it is easy to partition documents as
necessary. The decoupling provided by CDO allows
these types of applications to be developed
independently and operate autonomously.
2.5 Virtualization Trade-offs
As with all things, there are trade-offs to leveraging
a technology such as CDO to enable the
virtualization of healthcare records. The first trade-
off is performance. While, CDO is not necessarily
slow and it does cache requested data, it still does
need to resolve some object accesses via by
connecting through a network to a CDO Server. This
will always be slower than accessing clinical
documents in a non-virtualized object graph.
Further, there is extra complexity in reconfiguring
the legacy MDHT model code and retargeting code
generation for CDO. This process essentially creates
two versions of the implementation, one legacy and
one virtual; creating a software maintenance chore to
keep them synchronized if both are desired. It is not
difficult to do this, but it is a task that did not exist
before.
The alternative approaches to creating a
framework for a distributed scalable healthcare
record infrastructure would seem to face similar
issues, without necessarily having the advantage of
automatic code generation. The transparency and
lack of implementation required of an application
developer using the generated MDHT/CDO
implementation should drastically and dramatically
shorten any development time when compared to
alternatives that would require a developer to create,
implement, debug, and maintain, their own
HEALTHINF 2011 - International Conference on Health Informatics
202