Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "CDO"
Line 1: | Line 1: | ||
− | __NOTOC__ | + | __NOTOC__ <br> |
− | <br> | + | |
+ | {| border="0" | ||
+ | |- | ||
+ | | valign="top" | [[Image:CDOOverview.png]] | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | width="500" valign="top" | 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.<br> | ||
+ | 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. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
− | |||
− | + | <br> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | {| cellspacing="10" border="0" | ||
+ | |- | ||
+ | | valign="top" | '''Documentation'''<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> | ||
− | + | <br> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |valign="top"|'''Resources'''<br> | + | | valign="top" | '''Tutorials'''<br> |
− | '''[[FAQ for CDO and Net4j|FAQ]]'''<br> | + | [[Preparing EMF Models for CDO]]<br> [[Using the CDO User Interface]]<br> [[User Contributed CDO Documentation]]<br> [[Tweaking CDO Performance]]<br> |
− | [[CDO Project Resources#Downloads|Downloads]]<br> | + | |
− | [[CDO Project Resources#Sources|Sources]]<br> | + | [[Install CDO 3.0 Features, which are not contained at the Eclipse 3.6 (Helios) Simultaneous Release|Install_CDO_3.0_Features,_which_are_not_contained_at_the_Eclipse_3.6_(Helios)_Simultaneous_Release]] |
− | [[CDO Release Engineering|Releng]]<br> | + | |
− | [[CDO Project Resources#Documentation|JavaDocs]]<br> | + | | valign="top" | '''Resources'''<br> |
− | [[CDO Project Resources# | + | '''[[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> |
− | [[CDO Project Resources#Miscellaneous|Miscellaneous]]<br> | + | |
+ | | valign="top" | '''Features'''<br> | ||
+ | [[#Model_Integration_Features|Model Integration]]<br> [[#User_Interface_Features|User Interface]]<br> [[#Client_Side_Features|Client Side]]<br> [[#Network_Protocol_Features|Network Protocol]]<br> [[#Server_Side_Features|Server Side]]<br> [[#DB_Store_Features|DB Store]]<br> [[CDO Hibernate Store|Hibernate Store manual and tutorials]]<br> [[CDO Explorer (work in progress)]]<br> [[New And Noteworthy for CDO 2.0]]<br> [http://www.eclipse.org/cdo/documentation/relnotes_30/relnotes-3.0.html New And Noteworthy for CDO 3.0]<br> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
− | |||
− | ==Model Integration Features== | + | <br> |
− | * EMF integration at model level (as opposed to the edit level) | + | |
− | * Supported model types: | + | == Model Integration Features == |
− | ** Generated models (just switch two .genmodel properties) | + | |
− | ** Dynamic models (just load .ecore file and commit to repository) | + | *EMF integration at model level (as opposed to the edit level) |
− | ** [[ | + | *Supported model types: |
− | ** Ecore meta meta model and descendants | + | **Generated models (just switch two .genmodel properties) |
− | <br> | + | **Dynamic models (just load .ecore file and commit to repository) |
+ | **[[CDO Legacy Mode|Legacy models]] (for compiled models without access to .genmodel) | ||
+ | **Ecore meta meta model and descendants | ||
+ | |||
+ | <br> | ||
+ | |||
+ | == 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 | ||
+ | |||
+ | <br> | ||
+ | |||
+ | == 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) | ||
+ | |||
+ | <br> | ||
+ | |||
+ | == 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 | ||
+ | |||
+ | <br> | ||
+ | |||
+ | == Server Side Features == | ||
+ | |||
+ | *Pluggable storage adapters | ||
+ | **See [[#DB_Store_Features|DB Store Features]] | ||
+ | **See [[#Hibernate_Store_Features|Hibernate Store Features]] | ||
+ | **Objectivity support coming soon | ||
+ | **Native memory storage adapter | ||
+ | *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) | ||
− | + | <br> | |
− | + | ||
− | + | ||
− | + | ||
− | <br> | + | |
− | == | + | == DB Store Features == |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | *Supports all optional features of the [[#CDO_Server|CDO Server]] | |
− | * [[ | + | *Pluggable SQL dialect adapters |
− | * Pluggable | + | *Includes support for Derby, H2, HSQLDB, MySQL and Oracle (TBD) |
− | * Pluggable | + | *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 | ||
− | + | <br> <br> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | <br> | + | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
---- | ---- | ||
− | |||
+ | Wikis: [[Net4j]] | [[EMF]] | [[Eclipse]] | ||
[[Category:Modeling]] [[Category:EMF]] [[Category:CDO]] | [[Category:Modeling]] [[Category:EMF]] [[Category:CDO]] |
Revision as of 14:56, 30 August 2010
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
- See DB Store Features
- See Hibernate Store Features
- Objectivity support coming soon
- Native memory storage adapter
- 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