Connected Data Objects


Connected Data Objects is a free implementation of a Distributed Shared Model on top of the Eclipse Modeling Framework.
With CDO, programmers can easily enhance existing EMF models in such a way that they can be stored and subsequently maintained in a central model repository. While object relational mapping against a JDBC data source on the server side is the shipped default, CDO provides for pluggable storage adapters that allow you to develop and use different mappers. On the client side, CDO provides a default integration with EMF, the Eclipse Modeling Framework, although other model integrations on top of the CDO protocol are imaginable as well.

Model integration features

  • EMF integration at model level
  • Support for generated models
  • Support for dynamic models
  • Support for legacy models
  • Support for the Ecore meta model and descendants

User interface features

  • Eclipse view for working with CDO sessions, transactions, views and resources
  • Package Manager dialog per session
  • Eclipse editor for working with resources and objects

Client side features

  • Multiple sessions to multiple repositories on multiple servers
  • Multiple transactions per session
  • Multiple read-only views per session
  • Multiple audit views per session
  • Multiple resources per view
  • Inter-resource proxy resolution
  • Multiple root objects per resource
  • Object state shared among all views of a session
  • Object graph internally unconnected
  • Only new and modified objects committed in a transaction
  • Transactions can span multiple resources
  • Demand loading of objects
  • Partial loading of collections
  • Adaptable pre-fetching of objects
  • Asynchronous object invalidation
  • Clean API to work with sessions, views, transactions and objects
  • CDOResources are EObjects as well
  • Objects carry meta information like id, state, version and life span
  • Support for OSGi environments
  • Support for standalone applications

Network protocol features

Server side features

  • Pluggable storage adapters
  • Multiple repositories per server
  • Multiple models per repository
  • Multiple resources per repository
  • Expressive XML configuration file
  • Configurable storage adapter per repository
  • Configurable caching per repository
  • Clean API to work with repositories, sessions, views, transactions and revisions
  • Support for OSGi environments
  • Support for standalone applications

DB store features

  • Supports all optional features of the CDO Server
  • Pluggable SQL dialect adapters
  • Includes support for Derby, HSQLDB, MySQL and Oracle
  • Pluggable mapping strategies
  • Includes horizontal mapping strategy
  • Includes vertical mapping strategy
  • Supports different mapping modes for collections