nuxeo introduction to ecr at the nyc java meetup, april 2011
DESCRIPTION
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.TRANSCRIPT
April NYC Java MeetupIntroducing the Eclipse
Enterprise Content Repository Project
Roland Benedetti - V.P. Products
Tuesday, April 19, 2011
Nuxeo, who we are
2
• 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
Tuesday, April 19, 2011
3
Tuesday, April 19, 2011
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
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
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
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
A quick look at ECR
8
Business Application
storage infrastructure
contentrepository
RDMS
Use Case
Tuesday, April 19, 2011
A quick look at ECR
8
Business Application
storage infrastructure
contentrepository
RDMS
Use Case
CONTENT
Tuesday, April 19, 2011
A quick look at ECR
8
Business Application
storage infrastructure
contentrepository
RDMS
Use Case
CONTENT
SE
RV
ICE
S
Tuesday, April 19, 2011
A quick look at ECR
8
Business Application
storage infrastructure
contentrepository
RDMS
Use Case
CONTENT
SE
RV
ICE
S
APIs
Tuesday, April 19, 2011
About Content and storage
9
Tuesday, April 19, 2011
About Content and storage
• It persists different kind of Content
9
Tuesday, April 19, 2011
About Content and storage
• It persists different kind of Content
• Unstructured Content(Files, Images, Assets, XML, Binary Streams)
9
Tuesday, April 19, 2011
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
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
About Content and storage
10
Tuesday, April 19, 2011
About Content and storage
• It support different kind of Storage
10
Tuesday, April 19, 2011
About Content and storage
• It support different kind of Storage
• File Systems
10
Tuesday, April 19, 2011
About Content and storage
• It support different kind of Storage
• File Systems
• Standard FS
10
Tuesday, April 19, 2011
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
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
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
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
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
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
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
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
About APIs to access Services & Content
13
RESTfulis
Beautiful
Tuesday, April 19, 2011
About APIs to access Services & Content
• Native Java APIs
13
RESTfulis
Beautiful
Tuesday, April 19, 2011
About APIs to access Services & Content
• Native Java APIs
• RESTful APIs (Content Automation)
13
RESTfulis
Beautiful
Tuesday, April 19, 2011
About APIs to access Services & Content
• Native Java APIs
• RESTful APIs (Content Automation)
• CMIS APIs
13
RESTfulis
Beautiful
Tuesday, April 19, 2011
About APIs to access Services & Content
• Native Java APIs
• RESTful APIs (Content Automation)
• CMIS APIs
• Web Engine
• fast Web U.I. framework based on JAX-RS
• provides FreeMarker templating (pluggable)
13
RESTfulis
Beautiful
Tuesday, April 19, 2011
About APIs to access Services & Content
• Native Java APIs
• RESTful APIs (Content Automation)
• CMIS APIs
• Web Engine
• fast Web U.I. framework based on JAX-RS
• provides FreeMarker templating (pluggable)
13
RESTfulis
Beautiful
Tuesday, April 19, 2011
About APIs to access Services & Content
14
Native Java API
OpenCMIS Java API
HTTP (CMIS)
OpenCMIS Automation
HTTP
Core Services
VCS
Binary Store SQL Backend
SQL DatabaseFilesystem
Other Backend
Cloud
Tuesday, April 19, 2011
Thanks ! Questions & Links
• Start Hacking ECR!
• https://github.com/nuxeo/org.eclipse.ecr
• Get Involved:
• ECR Proposal: http://www.eclipse.org/proposals/rt.ecr/
• ECR Forum: http://www.eclipse.org/forums/index.php?t=msg&th=204297
• Nuxeo EP doc: https://doc.nuxeo.com/x/PIAO
• Download Nuxeo Platform: http://www.nuxeo.com
15
Roland Benedetti - VP Productse-mail: [email protected]
Follow me: http://twitter.com/alnuxeo/
Tuesday, April 19, 2011