A quick look at the Eclipse Enterprise Content Repository Project, a project proposal from Nuxeo to the Eclipse Foundation that aims to provide a reference, vendor neutral, Java & OSGi based Content Repository to developers building content-driven applications.
Ensuring Technical Readiness For Copilot in Microsoft 365
Nuxeo introduction to ecr at the NYC Java meetup, April 2011
1. April NYC Java Meetup
Introducing the Eclipse
Enterprise Content Repository Project
Roland Benedetti - V.P. Products
Tuesday, April 19, 2011
2. Nuxeo, who we are
• Vendor of an open source software platform in the
field of Enterprise Content Management
• Love to create great software, fond of modularity,
started to use OSGi 4 years ago to create server-
side enterprise software...
• 10 years old, 500+ customers, 5000+ installations
• Sells support & maintenance subscription and
added value software provided as a service
• Dual HQ Paris & Boston, offices in San Francisco
2
Tuesday, April 19, 2011
4. A bit of history
Project initiated in 2005, now solid and mature
A complex software platform made of
186+ bundles, 215+ extension points
A platform that scales and provides high performance
Using an extension point model to make it very flexible
Easy to contribute new services
Easy to customize the default application (including UI and
business logic)
Running virtually everywhere
JBoss AS - as an EAR application
Tomcat - as a WAR application
Equinox - as an OSGi application (and Virgo very soon) 4
Tuesday, April 19, 2011
5. The Eclipse ECR Project
Proposal to Contribute the Content Repository at the
core of the Nuxeo Enterprise Platform as an Eclipse
Runtime Project
Why?
OSGi server side has made significant progress in the
Eclipse RT opening doors for collaborations
CMIS as a standard for Content Interoperability has
reached maturity
Because it is the best way to spread infrastructure
technology and team with other on developing it!
5
Tuesday, April 19, 2011
6. What is a Content Repository?
• It is a Middleware between Applications and
Storage sub-systems
• It does not replace either but avoid recoding
interactions between the two
• It is a persistence service for content/data
• It provides a high level of abstraction (stop caring
about storage details, focus on the app domain and
its objects)
6
Tuesday, April 19, 2011
7. What a Content Repository is not?
• Not a CMS (WCM, ECM, ...)
• A CMS is one application on top of a Content Repository
• Not an ORM
• Higher abstraction level, and not that granular, don’t think
in SQL terms
• Not a filesystem
• If all you have is a filesystem, everything looks like a file
• Not just for storage
• Provides Services, Domain Model / Business Model
7
Tuesday, April 19, 2011
8. A quick look at ECR
Business Application
Use Case
content
repository
storage infrastructure
RDMS
8
Tuesday, April 19, 2011
9. A quick look at ECR
Business Application
Use Case
content
repository
CONTENT
storage infrastructure
RDMS
8
Tuesday, April 19, 2011
10. A quick look at ECR
Business Application
Use Case
SERVICES
content
repository
CONTENT
storage infrastructure
RDMS
8
Tuesday, April 19, 2011
11. A quick look at ECR
Business Application
Use Case
APIs
SERVICES
content
repository
CONTENT
storage infrastructure
RDMS
8
Tuesday, April 19, 2011
13. About Content and storage
• It persists different kind of Content
9
Tuesday, April 19, 2011
14. About Content and storage
• It persists different kind of Content
• Unstructured Content
(Files, Images, Assets, XML, Binary Streams)
9
Tuesday, April 19, 2011
15. About Content and storage
• It persists different kind of Content
• Unstructured Content
(Files, Images, Assets, XML, Binary Streams)
• Structured Content
(Schema, Metadata, Business Data, Tables)
9
Tuesday, April 19, 2011
16. About Content and storage
• It persists different kind of Content
• Unstructured Content
(Files, Images, Assets, XML, Binary Streams)
• Structured Content
(Schema, Metadata, Business Data, Tables)
• Semi-Structured Content
(Files + Metadata, Web pages (assemblies, relations),
Emails (attachments), Records Management)
9
Tuesday, April 19, 2011
18. About Content and storage
• It support different kind of Storage
10
Tuesday, April 19, 2011
19. About Content and storage
• It support different kind of Storage
• File Systems
10
Tuesday, April 19, 2011
20. About Content and storage
• It support different kind of Storage
• File Systems
• Standard FS
10
Tuesday, April 19, 2011
21. About Content and storage
• It support different kind of Storage
• File Systems
• Standard FS
• Virtual / Cloud based FS (e.g. AWS S3)
10
Tuesday, April 19, 2011
22. About Content and storage
• It support different kind of Storage
• File Systems
• Standard FS
• Virtual / Cloud based FS (e.g. AWS S3)
• Relational Database
10
Tuesday, April 19, 2011
23. About Content and storage
• It support different kind of Storage
• File Systems
• Standard FS
• Virtual / Cloud based FS (e.g. AWS S3)
• Relational Database
• Oracle
10
Tuesday, April 19, 2011
24. About Content and storage
• It support different kind of Storage
• File Systems
• Standard FS
• Virtual / Cloud based FS (e.g. AWS S3)
• Relational Database
• Oracle
• PostgreSQL
10
Tuesday, April 19, 2011
25. About Content and storage
• It support different kind of Storage
• File Systems
• Standard FS
• Virtual / Cloud based FS (e.g. AWS S3)
• Relational Database
• Oracle
• PostgreSQL
• MS Sql
10
Tuesday, April 19, 2011
26. About Content and storage
• It support different kind of Storage
• File Systems
• Standard FS
• Virtual / Cloud based FS (e.g. AWS S3)
• Relational Database
• Oracle
• PostgreSQL
• MS Sql
• ...
10
Tuesday, April 19, 2011
27. About Services
• Types and Schema definition
• Persistence
• Query
• Metadata
• Fulltext
• Both Mixed
• Access Control
• Groups of users, grant/deny, inheritance
11
Tuesday, April 19, 2011
28. About Services
• Locking
• Synchronous (safe semantics), cluster-aware
• Versioning
• Checkin/Checkout model
• Multifiling
• “Shortcuts” (=proxies) to make the same content
available in several places in a path-based hierarchy
• Audit Trail
12
Tuesday, April 19, 2011
29. About APIs to access Services & Content
RESTful
is
Beautiful
13
Tuesday, April 19, 2011
30. About APIs to access Services & Content
RESTful
is
• Native Java APIs Beautiful
13
Tuesday, April 19, 2011
31. About APIs to access Services & Content
RESTful
is
• Native Java APIs Beautiful
• RESTful APIs (Content Automation)
13
Tuesday, April 19, 2011
32. About APIs to access Services & Content
RESTful
is
• Native Java APIs Beautiful
• RESTful APIs (Content Automation)
• CMIS APIs
13
Tuesday, April 19, 2011
33. About APIs to access Services & Content
RESTful
is
• Native Java APIs Beautiful
• RESTful APIs (Content Automation)
• CMIS APIs
• Web Engine
• fast Web U.I. framework based on JAX-RS
• provides FreeMarker templating (pluggable)
13
Tuesday, April 19, 2011
34. About APIs to access Services & Content
RESTful
is
• Native Java APIs Beautiful
• RESTful APIs (Content Automation)
• CMIS APIs
• Web Engine
• fast Web U.I. framework based on JAX-RS
• provides FreeMarker templating (pluggable)
13
Tuesday, April 19, 2011
35. About APIs to access Services & Content
HTTP (CMIS) HTTP
OpenCMIS Java
OpenCMIS Automation
API
Native Java API Core Services
VCS
Binary Store SQL Backend Other Backend
Filesystem SQL Database Cloud
14
Tuesday, April 19, 2011