stepperescnetde httpwwwescnetde httpthegordianblogspotcom Berlin Germany Scale Share and Store your Models with CDO EclipseCon Talk March 24 2010 EMF Application Scale Share and Store your Models with CDO ID: 600200
Download Presentation The PPT/PDF document "Eike Stepper" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Eike Stepperstepper@esc-net.dehttp://www.esc-net.dehttp://thegordian.blogspot.comBerlin, Germany
Scale, Share and Store
your Models with CDO
EclipseCon Talk, March 24, 2010Slide2
EMF ApplicationScale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.02
A.xml
B.xml
C.xml
D.xml
E.xml
SCM
A.xml
B.xml
C.xml
D.xml
E.xmlSlide3
EMF ApplicationScale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.03
Huge models require lots of smaller files
Partitioning must be done at design time
Saving changes is not transactional safe
Loading single objects is still impossible
Garbage collection of objects is impossible
Conflicts must be resolved in text form
No change notifications to other clientsSlide4
EMF ApplicationScale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.04
Does not scale well
Not suitable for multi-userSlide5
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.0
5
EMF Application
EMF Application
EMF Application
Model RepositorySlide6
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.0
6
EMF Application
EMF Application
EMF Application
Model Repository
ModifySlide7
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.0
7
EMF Application
EMF Application
EMF Application
Model Repository
CommitSlide8
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.0
8
EMF Application
EMF Application
EMF Application
Model Repository
InvalidateSlide9
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.0
9
EMF Application
EMF Application
EMF Application
Model Repository
InvalidateSlide10
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.0
10
EMF Application
EMF Application
EMF Application
Model Repository
LoadSlide11
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.0
11
EMF Application
EMF Application
EMF Application
Model Repository
LoadSlide12
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.012
EMF Application
Model RepositorySlide13
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.013
EMF Application
Model Repository
v1
v1
v1Slide14
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.014
EMF Application
Model Repository
v1
v1
v1
v1
v1
v1Slide15
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.015
EMF Application
Model Repository
v2
v1
v1
v1
v2
v1Slide16
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.016
EMF Application
Model Repository
v3
v2
v2
v1
v3
v1Slide17
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.017
EMF Application
Model Repository
v4
v3
v2
v2
v4
v1Slide18
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.018
EMF Application
Model Repository
AuditingSlide19
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.019
EMF Application
Model Repository
v1
v1
v1
AuditingSlide20
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.020
EMF Application
Model Repository
v1
v1
v1
v1
v1
v1
AuditingSlide21
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.021
EMF Application
Model Repository
v2
v1
v1
v1
v2
v1
v1
v1
AuditingSlide22
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.022
EMF Application
Model Repository
v1
v1
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
AuditingSlide23
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.023
EMF Application
Model Repository
v1
v1
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
v2
v4
v3
v4
AuditingSlide24
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.024
EMF Application
Model Repository
v1
v1
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
v2
v4
v3
v4
Auditing
BranchingSlide25
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.025
EMF Application
Model Repository
v1
v1
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
v2
v4
v3
v4
Auditing
Branching
v1
v1
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
v2
v4
v3
v4Slide26
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.026
EMF Application
Model Repository
v1
v1
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
v2
v4
v3
v4
Auditing
Branching
v1
v1
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
v2
v4
v3
v4
v1
v1
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
v2
v4
v3
v4
v1
v1
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
v2
v4
v3
v4Slide27
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.027
EMF Application
Model Repository
v1
v1
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
v2
v4
v3
v4
Auditing
Branching
v1
v1
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
v2
v4
v3
v4
v1
v1
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
v2
v4
v3
v4
v1
v1
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
v2
v4
v3
v4
v1
v1
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
v2
v4
v3
v4
v1
v1
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
v2
v4
v3
v4Slide28
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.028v4
CDORevision
EClass
CDOID
CDOBranchintlonglong
eClass
idbranchversion
createdrevised
Revision Data
CDOID resourceID
CDOID containerID
int containerFeature
Object[] valuesSlide29
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.029Session
Package Registry
Revision Manager
Package Unit
Package Unit
Package Unit
Package Unit
1
v1
2
3
4
v1
v1
v1
v2
v2
v2
v2
v3
v3
v1
v1
v1
v1
v2
v2
v3
v3
v2
v2
Protocol
View
View
View
Transaction
Transaction
Transaction
Audit
Audit
Audit
1
1
v2
v3
v3
2
3
4
1
1100101001110111010010011110101110101
v4
1
1Slide30
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.0301100101001110111010010011110101110101
1
Technical Challenges:
Transfer revisions over the network
Swap revisions on remote invalidationSwap revisions when changing view timeSwap revisions when changing view branchMake objects reclaimable by GCSlide31
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.031BookImpl
Reflective Delegation
String
title
int
pagesCategory category
Writer author
Root Extends Class
String
title
int
pages
Category
category
Writer
author
1Slide32
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.032
BookImpl
EObjectImpl
CDOObjectImplSlide33
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.033
CDOObjectImpl
CDOID
CDORevision
CDOStateCDOView
CDORevision
EClass
CDOID
CDOBranchintlong
long
eClass
id
branch
version
created
revised
Revision Data
CDOID resourceID
CDOID containerID
int containerFeature
Object[] values
CDORevision
EClass
CDOID
CDOBranch
int
long
long
eClass
id
branch
version
created
revised
Revision Data
CDOID resourceID
CDOID containerID
int containerFeature
Object[] values
CDORevision
EClass
CDOID
CDOBranch
int
long
long
eClass
id
branch
version
created
revised
Revision Data
CDOID resourceID
CDOID containerID
int containerFeature
Object[] valuesSlide34
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.034
P E R S I S T E N T
remote
invalidate
write
commit
read
rollback
attach to view
detach from view
commit
remote
invalidate
DIRTY
PROXY
CLEAN
CONFLICT
TRANSIENT
NEWSlide35
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.035
P E R S I S T E N T
remote
invalidate
write
commit
read
rollback
attach to view
detach from view
commit
remote
invalidate
DIRTY
PROXY
CLEAN
CONFLICT
TRANSIENT
NEW
InternalEObject
InternalCDOObject
CDOObjectImpl
DynamicCDOObject
Generated Classes
CDOLegacyAdapter
Generated ClassesSlide36
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.036CDOObjectImpl
Generated Classes
CDOResourceNode
CDOResource
CDOResourceFolderSlide37
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.037
EMF Application
EMF Application
EMF Application
Model Repository
EMF Application
EMF Application
EMF Application
Clone Repository
Master RepositorySlide38
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.038
EMF Application
EMF Application
EMF Application
Clone Repository
Master Repository
ONLINESlide39
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.039
EMF Application
EMF Application
EMF Application
Clone Repository
Master Repository
ONLINE
OFFLINESlide40
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.040
EMF Application
EMF Application
EMF Application
Clone Repository
Master Repository
OFFLINE
SYNCINGSlide41
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.041
EMF Application
EMF Application
EMF Application
Clone Repository
Master Repository
ONLINESlide42
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.042
Model Repository
Database
Package Registry
Revision Manager
Store
Commit Manager
Notifcation Manager
Query Manager / Handlers
Lock Manager
Read / Write Access Handlers
Session Manager
Session 1
Session 2
Session 3
Branch ManagerSlide43
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.043
Model Repository
Database
DBStore
MEMStore
HibernateStore
DB4OStore
ObjectivityStore
????Slide44
CDO Core FeaturesScale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.044Slide45
DistributionVarious ways to set up an IRepositoryXML config file, programmatically, Spring, …OSGi, stand-alone, …All components customizeableVarious ways to open a CDOSessionNet4j: TCP, HTTP, embedded, …CDO: embeddedOther transports possibleOffline mode coming soonsCloned and sync’ed repository, normal sessionsScale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.045Slide46
PersistencePluggable storage backend adapters (IStores)DBStore (CDO’s own O/R mapper)HibernateStore / TeneoObjectivityStoreDB4OStoreMEMStoreChanging the store type does not affectclient applications!Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.046Slide47
ResourcesA CDOResource is an EObjectA repository contains CDOResourceNodesCDOResourceFoldersCDOResourcesThe resource tree isNavigable through EMFQueryable through CDOScale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.047Slide48
VersioningCDO supports record temporalityMust be supported by IStoreCan be configured per IRepositoryCDO supports branchingMust be supported by IStoreCan be configured per IRepositoryA CDOView provides consistent graphsFrom a particular branchFrom a particular point in timeScale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.048Slide49
ScalabilityLazy loading at object granuleLazy loading without container objectPartial collection loading, chunkingAdaptive prefetchingManual prefetchingAutomatic unloading at object granuleScale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.049Slide50
QueriesCDO includes a generic query frameworkSupports any query languageSupports named parametersSupports synchronous executionSupports asynchronous executionQuery language handlers can beplugged into an IRepository (OCL?, EMF-Q?, …)implemented by an IStore (SQL, HQL, custom, …)Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.050Slide51
TransactionalityStrong transactional safety at model-levelMultiple transactions per sessionMultiple save points per transactionRollback to any save pointCommit with progress monitoringHooks for custom transaction handlersConflict detection and fail-early-transactionsPluggable conflict resolversExplicit read/write locking on object granuleXA transactions to multiple repositoriesScale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.051Slide52
CollaborationPassive UpdatesAsynchronous commit notificationsInvalidation of objects, lazy reload if neededCan be switched off per sessionChange subscriptionsAsynchronous change delta deliveryRegistration with repository per objectAutomated through pluggable adapter policiesRemote session managerNotifies about state of other sessionsSupports sending/receiving of arbitrary messagesScale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.052Slide53
IntegrationIntegrates with EMF at the model level,not at the edit- or UI-level.Uninvasive to the .ecore file.Best results with regenerated models (native)Regeneration not needed (legacy)Dynamic models supportedMultiple repositories per ResourceSetExternal referencesScale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.053Slide54
Scale, Share and Store your Models with CDO© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.054Dawn – Rise of Graphical CollaborationSlide55
Dawn – Rise of Graphical CollaborationConflict handlingDawn provides detection and handling mechanisms for conflictsIt will build on the CDO conflict mechanisms and provide flexible and intuitive UI to handle conflictsConflicts are displayed inside the diagram editor. Conflicts that cannot be visualized inside the editor will be show in a special view (Dawn Conflict View)LockingDawn will support locking on different hierarchy levels in the GMF diagramLocked objects are marked with special visualisationsWebViewer/WebEditorDawn provides a web viewer to view changes in the diagram while they are processed in EclipseIt also will support changing the diagram (adding/deleting/manipulating) in a browserAllows editing GMF-diagrams on mobile devices even if no Java platform is installed
Scale, Share and Store your Models with CDO
© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.0
55Slide56
Dawn – Rise of Graphical CollaborationDo not change existing codeA dynamic design and a flexible generator will make it possible to “collaborate” existing GMF editors even if the source isExisting editor do not need to modifiedFirewall transparency modeAllows to operate from within restricted networksThis mode will use a web-based protocol on CDONetwork independence (Offline Mode)Using one of the latest CDO features (offline support) Dawn will allow modifying GMF diagrams without a repository connection.Authentication/AuthorizationProviding access rights on diagram level will allow to protect your model dataAdditionally the use of the diagram (show, modify, view) will be restrictable. Locking behaviour can also be influenced.
Scale, Share and Store your Models with CDO
© 2010 by Eike Stepper, Berlin, Germany. Made available under the EPL v1.0
56