
 
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