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"
(27 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | __NOTOC__ <br> | + | __NOTOC__<br> |
{| border="0" | {| border="0" | ||
Line 7: | Line 7: | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
− | | width="500" valign="top" | | + | | width="500" valign="top" | |
− | + | CDO is both a development-time model repository and a run-time persistence framework. Being highly optimized it supports object graphs of arbitrary size. | |
+ | |||
+ | CDO offers transactions with save points, explicit locking, change notification, queries, temporality, branching, merging, offline and fail-over modes, ... | ||
+ | |||
+ | The storage back-end is pluggable and migrations between direct JDBC, Hibernate, Objectivity/DB, MongoDB or DB4O are seamless for CDO applications. | ||
+ | |||
+ | You may also want to visit our '''[http://www.eclipse.org/cdo homepage]'''. | ||
|} | |} | ||
Line 17: | Line 23: | ||
|- | |- | ||
| valign="top" | '''Documentation'''<br> | | valign="top" | '''Documentation'''<br> | ||
− | [http://wiki.eclipse.org/images/0/07/CDO-Poster.pdf CDO Poster]<br> | + | [[CDO Explorer]]<br> |
− | [[CDO | + | '''[http://wiki.eclipse.org/images/0/07/CDO-Poster.pdf CDO Poster]'''<br> |
− | + | [[CDO/Client|Client Architecture]]<br> | |
− | <br> | + | [[CDO/Server Configuration Reference|Server Configuration]]<br> |
+ | [http://www.eclipse.org/cdo CDO Presentations]<br> | ||
+ | [http://live.eclipse.org/node/884 Webinar 2010/04]<br> | ||
| valign="top" | '''Tutorials'''<br> | | valign="top" | '''Tutorials'''<br> | ||
− | [[Preparing EMF Models for CDO]]<br> [[Using the CDO User Interface]]<br> [[ | + | [[CDO/Preparing EMF Models|Preparing EMF Models for CDO]]<br> |
+ | [[CDO/Using the User Interface|Using the CDO User Interface]]<br> | ||
+ | [[CDO/Tweaking Performance|Tweaking CDO Performance]]<br> | ||
+ | '''[[CDO/User Contributed Documentation | User Contributed Documentation]]'''<br> | ||
| valign="top" | '''Resources'''<br> | | valign="top" | '''Resources'''<br> | ||
− | '''[[FAQ for CDO and Net4j|FAQ]]'''<br> [ | + | '''[[FAQ for CDO and Net4j|FAQ]]'''<br> |
+ | [http://www.eclipse.org/cdo/downloads/ Downloads and Updates]<br> | ||
+ | [[CDO Source Installation|Source Installation]]<br> | ||
+ | [[CDO Development Guidelines|Development Guidelines]]<br> | ||
+ | [[CDO/Release Engineering|Release Engineering]]<br> | ||
| valign="top" | '''Features'''<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> [[ | + | [[#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> | ||
+ | [[CDO/DB Store|DB Store]]<br> | ||
+ | [[CDO/MongoDB Store|MongoDB Store]]<br> | ||
+ | [[CDO/Hibernate Store|Hibernate Store]]: [[CDO/Hibernate_Store/Quick_Start|Quick Start]], [[CDO/Hibernate_Store/Tutorial|Tutorial]]<br> | ||
+ | [[CDO/Objectivity Store|Objectivity Store]]<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> | ||
+ | '''[https://bugs.eclipse.org/bugs/buglist.cgi?keywords=noteworthy;keywords_type=allwords;bug_severity=enhancement;resolution=FIXED;classification=Modeling;query_format=advanced;version=4.0;component=cdo.core;component=cdo.dawn;component=cdo.db;component=cdo.docs;component=cdo.hibernate;component=cdo.net4j;component=cdo.net4j.db;component=cdo.net4j.ui;component=cdo.objy;component=cdo.releng;component=cdo.ui;product=EMF New And Noteworthy for CDO 4.0]'''<br> | ||
|} | |} | ||
Line 41: | Line 67: | ||
**Generated models (just switch two .genmodel properties) | **Generated models (just switch two .genmodel properties) | ||
**Dynamic models (just load .ecore file and commit to repository) | **Dynamic models (just load .ecore file and commit to repository) | ||
− | **[[ | + | **[[/Legacy Mode/|Legacy models]] (for compiled models without access to .genmodel) |
**Ecore meta meta model and descendants | **Ecore meta meta model and descendants | ||
Line 51: | Line 77: | ||
*Package Manager dialog per session | *Package Manager dialog per session | ||
*Eclipse editor for working with resources and objects | *Eclipse editor for working with resources and objects | ||
+ | *[http://wiki.eclipse.org/CDO/Explorer_%28work_in_progress%29 CDO Explorer] | ||
− | <br> | + | <br> |
== Client Side Features == | == Client Side Features == | ||
Line 92: | Line 119: | ||
*Pluggable storage adapters | *Pluggable storage adapters | ||
− | **See [[ | + | **See [[CDO/DB Store|DB Store Features]] |
− | **See [[ | + | **See [[CDO/Hibernate_Store|Hibernate Store Features]] |
+ | **See [http://download.eclipse.org/modeling/emf/cdo/drops/R20140610-0212/help/org.eclipse.emf.cdo.doc/html/reference/StoreFeatures.html Store Feature Matrix] | ||
**Objectivity support coming soon | **Objectivity support coming soon | ||
**Native memory storage adapter | **Native memory storage adapter | ||
Line 105: | Line 133: | ||
*Support for OSGi environments (usually headless) | *Support for OSGi environments (usually headless) | ||
*Support for standalone applications (non-OSGi) | *Support for standalone applications (non-OSGi) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<br> <br> | <br> <br> | ||
Line 125: | Line 140: | ||
Wikis: [[Net4j]] | [[EMF]] | [[Eclipse]] | Wikis: [[Net4j]] | [[EMF]] | [[Eclipse]] | ||
− | [[Category:Modeling]] [[Category:EMF]] [[Category:CDO]] | + | [[Category:Modeling]] [[Category:EMF]] [[Category:CDO]] [[Category:Net4j]] |
Latest revision as of 12:05, 1 November 2016
|
|
|
CDO is both a development-time model repository and a run-time persistence framework. Being highly optimized it supports object graphs of arbitrary size. CDO offers transactions with save points, explicit locking, change notification, queries, temporality, branching, merging, offline and fail-over modes, ... The storage back-end is pluggable and migrations between direct JDBC, Hibernate, Objectivity/DB, MongoDB or DB4O are seamless for CDO applications. You may also want to visit our homepage. |
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
- CDO Explorer
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
- See Store Feature Matrix
- 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)