Jump to: navigation, search

Difference between revisions of "CDO"

Line 18: Line 18:
| valign="top" | '''Documentation'''<br>  
| valign="top" | '''Documentation'''<br>  
[http://wiki.eclipse.org/images/0/07/CDO-Poster.pdf CDO Poster]<br>
[http://wiki.eclipse.org/images/0/07/CDO-Poster.pdf CDO Poster]<br>
[[CDO User Interface|User Interface]]<br> [[CDO Client|Client Architecture]]<br> [[CDO Server Configuration Reference|Server Configuration]]<br> [http://www.eclipsecon.org/2008/index.php?page=sub/&id=58 EclipseCon 2008]<br> [http://dev.eclipse.org/viewcvs/index.cgi/www/cdo/documentation/presentations/Bombardier_2008/?root=Eclipse_Website CDO 2.0 Preview]<br> [http://dev.eclipse.org/viewcvs/index.cgi/www/cdo/documentation/presentations/NASA_2008/?root=Eclipse_Website CDO@NASA]<br> [http://dev.eclipse.org/viewcvs/index.cgi/www/cdo/documentation/presentations/EclipseSummit_2008/?root=Eclipse_Website Eclipse Summit Europe 2008]<br> [http://dev.eclipse.org/viewcvs/index.cgi/www/cdo/documentation/presentations/DemoCampBerlin_2008/?root=Eclipse_Website Demo Camp Berlin 2008]<br> [http://live.eclipse.org/node/635 Webinar 2009/01]<br> [http://dev.eclipse.org/viewcvs/index.cgi/www/cdo/documentation/presentations/Webinar_2009_01/?root=Eclipse_Website Webinar Slides]<br>  
[[CDO User Interface|User Interface]]<br> [[CDO/Client|Client Architecture]]<br> [[CDO/Server Configuration Reference|Server Configuration]]<br> [http://www.eclipsecon.org/2008/index.php?page=sub/&id=58 EclipseCon 2008]<br> [http://dev.eclipse.org/viewcvs/index.cgi/www/cdo/documentation/presentations/Bombardier_2008/?root=Eclipse_Website CDO 2.0 Preview]<br> [http://dev.eclipse.org/viewcvs/index.cgi/www/cdo/documentation/presentations/NASA_2008/?root=Eclipse_Website CDO@NASA]<br> [http://dev.eclipse.org/viewcvs/index.cgi/www/cdo/documentation/presentations/EclipseSummit_2008/?root=Eclipse_Website Eclipse Summit Europe 2008]<br> [http://dev.eclipse.org/viewcvs/index.cgi/www/cdo/documentation/presentations/DemoCampBerlin_2008/?root=Eclipse_Website Demo Camp Berlin 2008]<br> [http://live.eclipse.org/node/635 Webinar 2009/01]<br> [http://dev.eclipse.org/viewcvs/index.cgi/www/cdo/documentation/presentations/Webinar_2009_01/?root=Eclipse_Website Webinar Slides]<br>  
| valign="top" | '''Tutorials'''<br>  
| valign="top" | '''Tutorials'''<br>  
[[Preparing EMF Models for CDO]]<br> [[Using the CDO User Interface]]<br> [[User Contributed CDO Documentation]]<br> [[Tweaking CDO Performance]]  
[[CDO/Preparing EMF Models|Preparing EMF Models for CDO]]<br> [[CDO/Using the User Interface|Using the CDO User Interface]]<br> [[CDO/User Contributed Documentation]]<br> [[CDO/Tweaking Performance|Tweaking CDO Performance]]  
| valign="top" | '''Resources'''<br>  
| valign="top" | '''Resources'''<br>  
'''[[FAQ for CDO and Net4j|FAQ]]'''<br> [[CDO Project Resources#Downloads|Downloads]]<br> [[CDO Project Resources#Sources|Sources]]<br> [[CDO Release Engineering|Releng]]<br> [[CDO Project Resources#Documentation|JavaDocs]]<br> [[CDO Project Resources#Support_and_Feedback|Support and Feedback]]<br> [[CDO Project Resources#Miscellaneous|Miscellaneous]]<br>  
'''[[FAQ for CDO and Net4j|FAQ]]'''<br> [[CDO/Project Resources#Downloads|Downloads]]<br> [[CDO/Project Resources#Sources|Sources]]<br> [[CDO/Release Engineering|Releng]]<br> [[CDO/Project Resources#Documentation|JavaDocs]]<br> [[CDO/Project Resources#Support_and_Feedback|Support and Feedback]]<br> [[CDO/Project Resources#Miscellaneous|Miscellaneous]]<br>  
| valign="top" | '''Features'''<br>  
| valign="top" | '''Features'''<br>  

Revision as of 02:12, 19 December 2010

The CDO (Connected Data Objects) Model Repository is a distributed shared model framework for EMF models and meta models. CDO is also a model runtime environment with a focus on orthogonal aspects like model scalability, transactionality, persistence, distribution, queries and more.

CDO has a 3-tier architecture supporting EMF-based client applications, featuring a central model repository server and leveraging different types of pluggable data storage back-ends like relational databases, object databases and file systems. The default client/server communication protocol is implemented with the Net4j Signalling Platform.


CDO Poster
User Interface
Client Architecture
Server Configuration
EclipseCon 2008
CDO 2.0 Preview
Eclipse Summit Europe 2008
Demo Camp Berlin 2008
Webinar 2009/01
Webinar Slides


Preparing EMF Models for CDO
Using the CDO User Interface
CDO/User Contributed Documentation
Tweaking CDO Performance


Support and Feedback


Model Integration
User Interface
Client Side
Network Protocol
Server Side
DB Store
Hibernate Store manual and tutorials
Objectivity Store
CDO Explorer (work in progress)
New And Noteworthy for CDO 2.0
New And Noteworthy for CDO 3.0

Model Integration Features

  • EMF integration at model level (as opposed to the edit level)
  • Supported model types:
    • Generated models (just switch two .genmodel properties)
    • Dynamic models (just load .ecore file and commit to repository)
    • Legacy models (for compiled models without access to .genmodel)
    • Ecore meta 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 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 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, polling HTTP 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 configuration file
  • Configurable storage adapter per repository (see below)
  • Configurable caching per repository
  • Clean API 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, H2, HSQLDB, MySQL and Oracle (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
  • Various mapping options by using EAnnotation

Wikis: Net4j | EMF | Eclipse