SlideShare uma empresa Scribd logo
1 de 26
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
Agenda


• What Is a Content Repository?
• Eclipse Enterprise Content Repository (ECR)
  • What Is ECR?
  • Why Is ECR Good?




                                                2
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
What Is a
Content Repository?



                      4
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
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
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
Eclipse
Enterprise Content
Repository


                     8
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
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
What Is ECR?



               11
ECR: Services

• Types and Schema definition
• Persistence
• Query
• Access Control
• Locking
• Versioning


                                12
ECR: WebEngine



• Expose content on the web
• Fast framework based on JAX-RS
• Provides FreeMarker templating (pluggable)




                                               13
ECR: Content Automation



• Based on Commands/Operations
• Build reusable business logic
• Accessible from UI frameworks and HTTP/REST




                                                14
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
HTTP (CMIS)                HTTP




OpenCMIS Java
                          OpenCMIS           Automation
     API




         Native Java API         Core Services




                                     VCS




           Binary Store          SQL Backend            Other Backend




           Filesystem            SQL Database              Cloud


                                                                        16
Why Is ECR Good?



                   17
ECR is Fast


• Efficient use of storage backends
  • Use their native features and strengths
  • Don’t reinvent transactions, relations

• Good caching




                                              18
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
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
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
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
Summary


• Store structured documents and assets
• Efficient persistence, pluggable
• APIs in Java and HTTP-based protocols
• Used in production for 4 years




                                          23
Today & Future



• This is what we have today
• It will be improved from Eclipse feedback
• We want to follow Eclipse best practices




                                              24
Thank You!



             25
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

Mais conteúdo relacionado

Mais procurados

Mysql ecosystem in 2018
Mysql ecosystem in 2018Mysql ecosystem in 2018
Mysql ecosystem in 2018Alkin Tezuysal
 
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application StartupHow Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application StartupRudy De Busscher
 
Иван Глушков (Echo)
Иван Глушков (Echo)Иван Глушков (Echo)
Иван Глушков (Echo)Ontico
 
Eclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s ViewEclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s ViewDev_Events
 
Smalltalk in the Cloud
Smalltalk in the CloudSmalltalk in the Cloud
Smalltalk in the CloudESUG
 
Solving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache CamelSolving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache CamelChristian Posta
 
Securing your database servers from external attacks
Securing your database servers from external attacksSecuring your database servers from external attacks
Securing your database servers from external attacksAlkin Tezuysal
 
Ceph and Storage Management with openATTIC - FOSDEM 2017-02-05
Ceph and Storage Management with openATTIC - FOSDEM 2017-02-05Ceph and Storage Management with openATTIC - FOSDEM 2017-02-05
Ceph and Storage Management with openATTIC - FOSDEM 2017-02-05Lenz Grimmer
 
Orchestrating MySQL
Orchestrating MySQLOrchestrating MySQL
Orchestrating MySQLIvan Zoratti
 
SharePoint Europe Conference 2011 - Virtualisation
SharePoint Europe Conference 2011 - VirtualisationSharePoint Europe Conference 2011 - Virtualisation
SharePoint Europe Conference 2011 - VirtualisationAlan Richards
 
Ditributed Version Control System
Ditributed Version Control SystemDitributed Version Control System
Ditributed Version Control SystemAmbientia
 
Monitor Micro-service with MicroProfile metrics
Monitor Micro-service with MicroProfile metricsMonitor Micro-service with MicroProfile metrics
Monitor Micro-service with MicroProfile metricsRudy De Busscher
 
ActiveMQ Performance Tuning
ActiveMQ Performance TuningActiveMQ Performance Tuning
ActiveMQ Performance TuningChristian Posta
 
What's New and Next in OpenNTF Domino API (ICON UK 2014)
What's New and Next in OpenNTF Domino API (ICON UK 2014)What's New and Next in OpenNTF Domino API (ICON UK 2014)
What's New and Next in OpenNTF Domino API (ICON UK 2014)Paul Withers
 
Developing microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshiftDeveloping microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshiftandreas kuncoro
 
Cloud Development with Camel and Amazon Web Services
Cloud Development with Camel and Amazon Web ServicesCloud Development with Camel and Amazon Web Services
Cloud Development with Camel and Amazon Web ServicesRobin Howlett
 
Ceph Management and Monitoring with Dashboard V2 - Cephalocon 2018-03-23
Ceph Management and Monitoring with Dashboard V2 - Cephalocon 2018-03-23Ceph Management and Monitoring with Dashboard V2 - Cephalocon 2018-03-23
Ceph Management and Monitoring with Dashboard V2 - Cephalocon 2018-03-23Lenz Grimmer
 

Mais procurados (20)

Mini-Training: NancyFX
Mini-Training: NancyFXMini-Training: NancyFX
Mini-Training: NancyFX
 
Mysql ecosystem in 2018
Mysql ecosystem in 2018Mysql ecosystem in 2018
Mysql ecosystem in 2018
 
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application StartupHow Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
 
Иван Глушков (Echo)
Иван Глушков (Echo)Иван Глушков (Echo)
Иван Глушков (Echo)
 
Eclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s ViewEclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s View
 
OSGi
OSGiOSGi
OSGi
 
Smalltalk in the Cloud
Smalltalk in the CloudSmalltalk in the Cloud
Smalltalk in the Cloud
 
Solving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache CamelSolving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache Camel
 
Securing your database servers from external attacks
Securing your database servers from external attacksSecuring your database servers from external attacks
Securing your database servers from external attacks
 
Ceph and Storage Management with openATTIC - FOSDEM 2017-02-05
Ceph and Storage Management with openATTIC - FOSDEM 2017-02-05Ceph and Storage Management with openATTIC - FOSDEM 2017-02-05
Ceph and Storage Management with openATTIC - FOSDEM 2017-02-05
 
Orchestrating MySQL
Orchestrating MySQLOrchestrating MySQL
Orchestrating MySQL
 
Handling scale on AWS
Handling scale on AWSHandling scale on AWS
Handling scale on AWS
 
SharePoint Europe Conference 2011 - Virtualisation
SharePoint Europe Conference 2011 - VirtualisationSharePoint Europe Conference 2011 - Virtualisation
SharePoint Europe Conference 2011 - Virtualisation
 
Ditributed Version Control System
Ditributed Version Control SystemDitributed Version Control System
Ditributed Version Control System
 
Monitor Micro-service with MicroProfile metrics
Monitor Micro-service with MicroProfile metricsMonitor Micro-service with MicroProfile metrics
Monitor Micro-service with MicroProfile metrics
 
ActiveMQ Performance Tuning
ActiveMQ Performance TuningActiveMQ Performance Tuning
ActiveMQ Performance Tuning
 
What's New and Next in OpenNTF Domino API (ICON UK 2014)
What's New and Next in OpenNTF Domino API (ICON UK 2014)What's New and Next in OpenNTF Domino API (ICON UK 2014)
What's New and Next in OpenNTF Domino API (ICON UK 2014)
 
Developing microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshiftDeveloping microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshift
 
Cloud Development with Camel and Amazon Web Services
Cloud Development with Camel and Amazon Web ServicesCloud Development with Camel and Amazon Web Services
Cloud Development with Camel and Amazon Web Services
 
Ceph Management and Monitoring with Dashboard V2 - Cephalocon 2018-03-23
Ceph Management and Monitoring with Dashboard V2 - Cephalocon 2018-03-23Ceph Management and Monitoring with Dashboard V2 - Cephalocon 2018-03-23
Ceph Management and Monitoring with Dashboard V2 - Cephalocon 2018-03-23
 

Semelhante a Eclipse Enterprise Content Repository (ECR)

Introducing Apricot, The Eclipse Content Management Platform
Introducing Apricot, The Eclipse Content Management PlatformIntroducing Apricot, The Eclipse Content Management Platform
Introducing Apricot, The Eclipse Content Management PlatformNuxeo
 
Melbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBMelbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBYuval Ararat
 
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...IndicThreads
 
Centralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container OperationsCentralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container OperationsKublr
 
OpenStack Block Storage 101
OpenStack Block Storage 101OpenStack Block Storage 101
OpenStack Block Storage 101NetApp
 
High performance web sites with multilevel caching
High performance web sites with multilevel cachingHigh performance web sites with multilevel caching
High performance web sites with multilevel cachingDotnet Open Group
 
Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSSteve Wong
 
The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...Lucas Jellema
 
Lessons learned Building Nuxeo EP - Component-based, open source ECM platform
Lessons learned Building Nuxeo EP - Component-based, open source ECM platformLessons learned Building Nuxeo EP - Component-based, open source ECM platform
Lessons learned Building Nuxeo EP - Component-based, open source ECM platformNuxeo
 
RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?Erik Osterman
 
Kubernetes – An open platform for container orchestration
Kubernetes – An open platform for container orchestrationKubernetes – An open platform for container orchestration
Kubernetes – An open platform for container orchestrationinovex GmbH
 
01/2009 - Portral development with liferay
01/2009 - Portral development with liferay01/2009 - Portral development with liferay
01/2009 - Portral development with liferaydaveayan
 
Native OSGi, Modular Software Development in a Native World - Alexander Broek...
Native OSGi, Modular Software Development in a Native World - Alexander Broek...Native OSGi, Modular Software Development in a Native World - Alexander Broek...
Native OSGi, Modular Software Development in a Native World - Alexander Broek...mfrancis
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel RidingChristian Posta
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5mbaric
 
Cloud Architect Alliance #15: Openstack
Cloud Architect Alliance #15: OpenstackCloud Architect Alliance #15: Openstack
Cloud Architect Alliance #15: OpenstackMicrosoft
 
Storage as a service and OpenStack Cinder
Storage as a service and OpenStack CinderStorage as a service and OpenStack Cinder
Storage as a service and OpenStack Cinderopenstackindia
 

Semelhante a Eclipse Enterprise Content Repository (ECR) (20)

Introducing Apricot, The Eclipse Content Management Platform
Introducing Apricot, The Eclipse Content Management PlatformIntroducing Apricot, The Eclipse Content Management Platform
Introducing Apricot, The Eclipse Content Management Platform
 
Melbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBMelbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDB
 
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
Current State of Affairs – Cloud Computing - Indicthreads Cloud Computing Con...
 
Centralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container OperationsCentralizing Kubernetes and Container Operations
Centralizing Kubernetes and Container Operations
 
Apereo OAE - Bootcamp
Apereo OAE - BootcampApereo OAE - Bootcamp
Apereo OAE - Bootcamp
 
OpenStack Block Storage 101
OpenStack Block Storage 101OpenStack Block Storage 101
OpenStack Block Storage 101
 
High performance web sites with multilevel caching
High performance web sites with multilevel cachingHigh performance web sites with multilevel caching
High performance web sites with multilevel caching
 
Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OS
 
The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...The Application Server Platform of the Future - Container & Cloud Native and ...
The Application Server Platform of the Future - Container & Cloud Native and ...
 
Lessons learned Building Nuxeo EP - Component-based, open source ECM platform
Lessons learned Building Nuxeo EP - Component-based, open source ECM platformLessons learned Building Nuxeo EP - Component-based, open source ECM platform
Lessons learned Building Nuxeo EP - Component-based, open source ECM platform
 
RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?
 
Bitnami Bootcamp. OpenStack
Bitnami Bootcamp. OpenStackBitnami Bootcamp. OpenStack
Bitnami Bootcamp. OpenStack
 
EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology
EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM TechnologyEVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology
EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology
 
Kubernetes – An open platform for container orchestration
Kubernetes – An open platform for container orchestrationKubernetes – An open platform for container orchestration
Kubernetes – An open platform for container orchestration
 
01/2009 - Portral development with liferay
01/2009 - Portral development with liferay01/2009 - Portral development with liferay
01/2009 - Portral development with liferay
 
Native OSGi, Modular Software Development in a Native World - Alexander Broek...
Native OSGi, Modular Software Development in a Native World - Alexander Broek...Native OSGi, Modular Software Development in a Native World - Alexander Broek...
Native OSGi, Modular Software Development in a Native World - Alexander Broek...
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel Riding
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5
 
Cloud Architect Alliance #15: Openstack
Cloud Architect Alliance #15: OpenstackCloud Architect Alliance #15: Openstack
Cloud Architect Alliance #15: Openstack
 
Storage as a service and OpenStack Cinder
Storage as a service and OpenStack CinderStorage as a service and OpenStack Cinder
Storage as a service and OpenStack Cinder
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Último (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Eclipse Enterprise Content Repository (ECR)

  • 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
  • 4. What Is a Content Repository? 4
  • 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
  • 12. ECR: Services • Types and Schema definition • Persistence • Query • Access Control • Locking • Versioning 12
  • 13. ECR: WebEngine • Expose content on the web • Fast framework based on JAX-RS • Provides FreeMarker templating (pluggable) 13
  • 14. ECR: Content Automation • Based on Commands/Operations • Build reusable business logic • Accessible from UI frameworks and HTTP/REST 14
  • 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. HTTP (CMIS) HTTP OpenCMIS Java OpenCMIS Automation API Native Java API Core Services VCS Binary Store SQL Backend Other Backend Filesystem SQL Database Cloud 16
  • 17. Why Is ECR Good? 17
  • 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
  • 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. 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
  • 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

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. 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
  7. 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
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n