Connected Data Objects
   HOME

TheInfoList



OR:

Connected Data Objects (CDO) is a free implementation of a
Distributed Shared Model Distribution may refer to: Mathematics *Distribution (mathematics), generalized functions used to formulate solutions of partial differential equations *Probability distribution, the probability of a particular value or value range of a varia ...
on top of the
Eclipse Modeling Framework Eclipse Modeling Framework (EMF) is an Eclipse-based modeling framework and code generation facility for building tools and other applications based on a structured data model. From a model specification described in XML Metadata Interchange ...
(EMF). 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 Java Database Connectivity (JDBC) is an application programming interface (API) for the programming language Java, which defines how a client may access a database. It is a Java-based data access technology used for Java database connectivity. I ...
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 (like Hibernate- or OODB-based). 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 (as opposed to the edit level) * Support for generated models (just switch two .genmodel properties) * Support for dynamic models (just load .ecore file and commit to repository) * Support for legacy models (for compiled models without access to .genmodel) * 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 (an audit is a view that shows a consistent, historical version of a repository) * Multiple resources per view (a view is always associated with its own EMF ResourceSet) * Inter-resource
proxy Proxy may refer to: * Proxy or agent (law), a substitute authorized to act for another entity or a document which authorizes the agent so to act * Proxy (climate), a measured variable used to infer the value of a variable of interest in climate ...
resolution * Multiple root objects per resource * Object state shared among all views of a session * Object graph internally unconnected (unused parts of the graph can easily be reclaimed by the garbage collector) * Only new and modified objects committed in a transaction * Transactions can span multiple resources * Demand loading of objects (resources are populated as they are navigated) * Partial loading of collections (chunk size can be configured per session) * Adaptable pre-fetching of objects (different intelligent usage analyzers are available) *
Asynchronous Asynchrony is the state of not being in synchronization. Asynchrony or asynchronous may refer to: Electronics and computing * Asynchrony (computer programming), the occurrence of events independent of the main program flow, and ways to deal with ...
object invalidation (optional) * 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 (headless, Eclipse RCP, ...) * Support for standalone applications (non-OSGi)


Network protocol features

* Net4j based binary application protocol * Pluggable transport layer (shipped with NIO socket transport and JVM embedded transport) * Pluggable fail over support * Pluggable authentication (shipped with challenge/response negotiation) * Multiple acceptors per server


Server side features

* Pluggable storage adapters * Multiple repositories per server * Multiple models (packages) per repository * Multiple resources (instance documents) per repository * Expressive
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
configuration file * Configurable storage adapter per repository (see below) * Configurable caching per repository * Clean
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
to work with repositories, sessions, views, transactions and revisions * Support for OSGi environments (usually headless) * Support for standalone applications (non-OSGi)


DB store features

* Supports all optional features of the CDO Server * Pluggable SQL dialect adapters * Includes support for Derby, HSQLDB,
MySQL MySQL () is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database o ...
and
Oracle An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The word '' ...
(TBD) * Pluggable mapping strategies * Includes horizontal mapping strategy (one table per concrete class) * Includes vertical mapping strategy (TBD, one table per class in hierarchy) * Supports different mapping modes for collections


External links


CDO Homepage
Eclipse (software)