Eclipse Enterprise Content Repository (ECR)

3,751 views
3,542 views

Published on

Overview of Eclipse Enterprise Content Repository (ECR), 
a State of the Art Content Repository Contribution to Eclipse from Nuxeo Core

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,751
On SlideShare
0
From Embeds
0
Number of Embeds
63
Actions
Shares
0
Downloads
39
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • 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
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Eclipse Enterprise Content Repository (ECR)

    1. 1. Eclipse EnterpriseContent Repository (ECR)Overview of Nuxeo Core,a State of the Art Content RepositoryContributionFlorent Guillaume, Director of R&D, Nuxeo2011-03-21
    2. 2. Agenda• What Is a Content Repository?• Eclipse Enterprise Content Repository (ECR) • What Is ECR? • Why Is ECR Good? 2
    3. 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
    4. 4. What Is aContent Repository? 4
    5. 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. 6. A Content Repository isMiddleware• 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. 7. What a Content Repository IsNot• 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
    8. 8. EclipseEnterprise ContentRepository 8
    9. 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. 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
    11. 11. What Is ECR? 11
    12. 12. ECR: Services• Types and Schema definition• Persistence• Query• Access Control• Locking• Versioning 12
    13. 13. ECR: WebEngine• Expose content on the web• Fast framework based on JAX-RS• Provides FreeMarker templating (pluggable) 13
    14. 14. ECR: Content Automation• Based on Commands/Operations• Build reusable business logic• Accessible from UI frameworks and HTTP/REST 14
    15. 15. ECR: CMIS• OASIS Content Management Interoperability Services• HTTP APIs (AtomPub, SOAP, Browser Bindings)• OpenCMIS Java APIs• http://docs.oasis-open.org/cmis/CMIS/v1.0/cmis- spec-v1.0.html• http://www.slideshare.net/efge/cmis-and-apache- chemistry-apachecon-2010 15
    16. 16. HTTP (CMIS) HTTPOpenCMIS Java OpenCMIS Automation API Native Java API Core Services VCS Binary Store SQL Backend Other Backend Filesystem SQL Database Cloud 16
    17. 17. Why Is ECR Good? 17
    18. 18. ECR is Fast• Efficient use of storage backends • Use their native features and strengths • Don’t reinvent transactions, relations• Good caching 18
    19. 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
    20. 20. Full-Featured Services• Queries (NXQL, CMISQL, pluggable)• Versioning (pluggable)• Locking (synchronous, cluster-aware)• Access Control (groups, grant/deny, inheritance)• Proxies (shortcuts)• Events & Listeners (sync, async, async post-commit)• Audit Trail 20
    21. 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. 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. 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. 24. Today & Future• This is what we have today• It will be improved from Eclipse feedback• We want to follow Eclipse best practices 24
    25. 25. Thank You! 25
    26. 26. Additional Information & Links• http://www.eclipse.org/proposals/rt.ecr/• http://www.eclipse.org/forums/index.php? t=msg&th=204297• http://github.com/nuxeo/org.eclipse.ecr• http://www.slideshare.net/efge/cmis-and-apache- chemistry-apachecon-2010• http://docs.oasis-open.org/cmis/CMIS/v1.0/cmis- spec-v1.0.html 26

    ×