1. Eclipse Enterprise
Content Repository (ECR)
Overview of Nuxeo Core,
a State of the Art Content Repository
Contribution
Florent Guillaume, Director of R&D, Nuxeo
2011-03-21
2. Agenda
• What Is a Content Repository?
• Eclipse Enterprise Content Repository (ECR)
• What Is ECR?
• Why Is ECR Good?
2
3. Who Am I?
• Florent Guillaume (twitter: @efge)
• Director of R&D at Nuxeo
• Architect of content repository technologies
• Apache committer, OASIS member
• Nuxeo: open-source content management
• Based in Paris / Boston / San Francisco
3
5. What Is Content?
• Everything is content!
• Unstructured
• Files, Images, Assets, XML, Binary streams
• Structured
• Schema, Metadata, Business Data, Tables
• Semi-Structured
• Files + Metadata, Web pages (assemblies, relations),
Emails (attachments), Records Management
5
6. A Content Repository is
Middleware
• Between Application and Storage Subsystem
• Does not replace either
• Persistence Service
• Stores structured and unstructured content
• High-Level Abstraction
• Stop caring about storage details
• Focus on your domain model and its objects
6
7. What a Content Repository Is
Not
• Not a CMS (WCM, ECM, ...)
• A CMS is one application on top of a Content Repository
• Not a filesystem
• If all you have is a filesystem, everything looks like a file
• Not an ORM
• Not that granular, don’t think in SQL terms
• Not just for storage
• Provides Services, Domain Model / Business Model
7
9. Eclipse ECR Proposal
• Under the Eclipse Runtime project
• Currently in the “Project Proposal” phase
• Mentored by Gary Xue (Actuate) and Cédric Brun
(Obeo)
• Contributed by Nuxeo, based on Nuxeo Core
• http://www.eclipse.org/proposals/rt.ecr/
9
10. When to Use ECR?
• Need to store Objects with Properties
• And maybe Files
• Don’t care about SQL
• Need Access Control
• Need Versioning, Queries, ...
• Don’t want to reinvent the wheel
10
18. ECR is Fast
• Efficient use of storage backends
• Use their native features and strengths
• Don’t reinvent transactions, relations
• Good caching
18
19. ECR Scales
• Clusterable on top of a standard SQL database
• Architecture ready for NoSQL backends
• Lockless, pluggable Binary Store
• Filesystem, SQL, Amazon S3, etc.
19
21. ECR is Battle-Tested
• Originates from Nuxeo Core
• Used in Nuxeo DM, Nuxeo DAM, Nuxeo CMF
• In production for 4 years
• Thousands of deployments
21
22. ECR Uses OSGi Deployment
• OSGi bundles
• Extension points
• Inspired by those from Eclipse
• See Bogdan’s talk, Wednesday at 1pm in Stevens
Creek room for more!
22
23. Summary
• Store structured documents and assets
• Efficient persistence, pluggable
• APIs in Java and HTTP-based protocols
• Used in production for 4 years
23
24. Today & Future
• This is what we have today
• It will be improved from Eclipse feedback
• We want to follow Eclipse best practices
24
Middleware: Defines domain model and services - used by the application - persisted in the storage\nPersistence Service: Is to semi-structured content what Hibernate is to objects with properties\nHigh-Level Abstraction: Abstract operations, Let the Content Repository do its job\n
Not a Filesystem: A Content Repository offers much richer semantics\nMetadata, Versioning, Relationships, Non-path-based access\nNot an ORM: Content comes before relations and optimizations; Don’t limit yourself to SQL\n