SlideShare une entreprise Scribd logo
1  sur  33
A Platform Approach to
Enterprise Content Management
      with Eclipse Apricot,
      CMIS and Nuxeo EP
Florent Guillaume, Director of R&D, Nuxeo
2011-09-23
Agenda


• What Is a Content Repository?
• Eclipse Apricot
• Nuxeo Enterprise Platform
• The Future




                                  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 Apricot



                  8
Eclipse Apricot

• OSGi framework
• Under the Eclipse Runtime project
  • Currently in the Incubation phase
  • Mentored by Gary Xue (Actuate) and Cédric Brun (Obeo)

• Contributed by Nuxeo, from Nuxeo Core
• http://www.eclipse.org/apricot


                                                            9
What Is Apricot?
• Content Services
 •   Types and schema definition, persistence, query, access
     control, locking, versioning

• Web Support
 •   Expose content on the web through a fast REST framework
     extending JAX-RS and using FreeMarker templating

• Content Automation
 •   Build reusable business logic based on Commands/
     Operations, accessible from UI frameworks and HTTP/REST


                                                               10
What Is Apricot?

• CMIS
  • OASIS Content Management Interoperability Services

• HTTP APIs (SOAP, AtomPub, Browser Bindings)
• OpenCMIS Java APIs
• http://docs.oasis-open.org/cmis/CMIS/v1.0/cmis-
  spec-v1.0.html


                                                         11
HTTP (CMIS)                HTTP




OpenCMIS Java
                          OpenCMIS           Automation
     API




         Native Java API         Core Services




                                     VCS




           Binary Store          SQL Backend            Other Backend




           Filesystem            SQL Database              Cloud


                                                                        12
When to Use Apricot?
• Need to store Objects with Properties
  • And maybe Files

• Don’t want to write SQL
  • But be able to fall back to SQL if really needed

• Need Access Control
• Need Versioning, Queries, ...
• Don’t want to reinvent the wheel

                                                       13
Why Is Apricot Good?
• Modular — OSGi, extension points
• Fast — Efficient use of storage backends, caching
• Safe — Transaction-aware, hot backups
• Scaling — Clusterable, pluggable binary store (FS,
  SQL, AWS S3, ...), ready for NoSQL backends
• Battle-tested — In production for 4 years,
  thousands of deployments, originates from Nuxeo
  Core (used in Nuxeo DM, DAM, CMF)

                                                       14
Nuxeo Enterprise Platform



                            15
Platform Approach

• Platform to build Content applications
  • Reusable components and services
  • Comprises UI frameworks and building blocks
  • Ready to use pre-built applications (DM, DAM, CMF)

• Nuxeo platform is
  • Open source, 100% Java-based since 2006



                                                         16
17
Platform Modularity

• ECM projects usually require a lot of customization
  • Without compromising upgrades (we sell support!)
  • Without forking the source code

• For our Java platform it was a requirement to have
  • A modular framework
  • A plugin system



                                                        18
What Modularity Achieved
•   Complex software platform
    •   200+ bundles, 210+ extension points, 490+ contributions

•   Very flexible thanks to extension points
    •   Easy to contribute new services and customize the default
        application (including UI and business logic)

•   Running virtually everywhere
    •   JBoss, as an EAR application
    •   Tomcat and Jetty, as a WAR application
    •   Equinox, as an OSGi application (and Virgo very soon)


                                                                    19
20
21
Modularity Framework

• Java SE
  •   No bundle life cycle, no modularity, no extension system

• Java EE
  •   All is packaged as one big application (EAR or WAR), cannot
      update or add a feature without recompiling the entire application

• OSGi — yes, but
  •   Not compatible with Java EE
  •   No real OSGi Enterprise Framework implementations yet



                                                                           22
Additions to OSGi

• To achieve a plugin model
  • Eclipse already had the answer: extension points

• To integrate with Java EE application servers
  • Configuration fragments, pre-startup assembly of
    web.xml and application.xml
  • Specific OSGi runtime that can load bundles in an EAR



                                                           23
Extension Points
• Eclipse used EXSD, which is very tied to PDE
  •   (remember it was 2006 and we had to use maven)

• Nuxeo redefined something similar but more flexible
  •   No intermediate object model between services and contributed
      extensions
  •   Write an extension class and map it to XML using Java
      annotations
  •   Easy to write for developers, no specific IDE needed

• Available in Apricot


                                                                      24
Extension Point Example




                          25
Configuration Fragments
•   Java EE configuration is monolithic
    •   To declare servlets (web.xml) one must know in advance the servlets
        provided by all the different bundles, same for application.xml

•   Using templates for Java EE configuration files
    •   Dynamically generate these files at application startup from the
        configuration contributed by each bundle

•   Ability to package EAR applications that can adapt themselves to
    the configuration provided by new application bundles
    •   No need to have different product packagings for different configurations

•   Needs a server-specific hook to do this processing


                                                                                   26
Configuration Fragment
Example




                        27
Java EE Features Added to OSGi

• Full OSGi integration of JAAS (authentication system)
• Full JTA support through Apache Geronimo
  (transactions)
• Full JCA support through Apache Geronimo
  (resource adapters and pooling)
• In-memory JNDI server
• Future plans to integrate the work done in the Gemini
  project (and also support Virgo)

                                                          28
The Future



             29
Where Are We Going?
• Finish Apricot first release
  • Cleanup, testing framework

• Replace Nuxeo Core with Apricot
  • Core running under a full OSGi container

• Update JSF and Seam to Java EE 6
• Use CDI for easier access to services
• Better IDE support

                                               30
Lots of New Features
                    • Search
• HTML5
                    • Workflow           • Modular installer
• Storage
  improvements      • Document          • Cloud dev and
                      Routing             prod deployment
• VCS
  improvements      • Filesystem sync   • Mobile devices
                                          connectors
• OpenSocial        • Static WAR
                      packaging         • Nuxeo IDE
• Activity Stream
                    • Video and Rich    • Nuxeo Studio
• Collaboration
                      Media


                                                              31
Thank You!



             32
Additional Information & Links

• http://www.nuxeo.com
• http://community.nuxeo.com
• http://www.eclipse.org/apricot
• 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


                                                    33

Contenu connexe

Tendances

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
 
Javantura 2014 - Java 8 JavaScript Nashorn
Javantura 2014 - Java 8 JavaScript NashornJavantura 2014 - Java 8 JavaScript Nashorn
Javantura 2014 - Java 8 JavaScript NashornMiroslav Resetar
 
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...Paul Withers
 
Nuxeo World Session: Mobile ECM Apps with Nuxeo EP
Nuxeo World Session: Mobile ECM Apps with Nuxeo EPNuxeo World Session: Mobile ECM Apps with Nuxeo EP
Nuxeo World Session: Mobile ECM Apps with Nuxeo EPNuxeo
 
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Arun Gupta
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoPaul Withers
 
Nuxeo ECM Platform - Technical Overview
Nuxeo ECM Platform - Technical OverviewNuxeo ECM Platform - Technical Overview
Nuxeo ECM Platform - Technical OverviewNuxeo
 
What's New in Nuxeo Platform 7.4 - Breakfast Presentation in Paris
What's New in Nuxeo Platform 7.4 - Breakfast Presentation in ParisWhat's New in Nuxeo Platform 7.4 - Breakfast Presentation in Paris
What's New in Nuxeo Platform 7.4 - Breakfast Presentation in ParisNuxeo
 
Node and Micro-Services at IBM
Node and Micro-Services at IBMNode and Micro-Services at IBM
Node and Micro-Services at IBMDejan Glozic
 
Lessons from Jenkins Platform Support
Lessons from Jenkins Platform SupportLessons from Jenkins Platform Support
Lessons from Jenkins Platform SupportMark Waite
 
Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8Arun Gupta
 
Benefits of an Open environment with Wakanda
Benefits of an Open environment with WakandaBenefits of an Open environment with Wakanda
Benefits of an Open environment with WakandaAlexandre Morgaut
 
Bccon use notes objects in memory and other useful
Bccon   use notes objects in memory and other usefulBccon   use notes objects in memory and other useful
Bccon use notes objects in memory and other usefulFrank van der Linden
 

Tendances (20)

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)
 
Javantura 2014 - Java 8 JavaScript Nashorn
Javantura 2014 - Java 8 JavaScript NashornJavantura 2014 - Java 8 JavaScript Nashorn
Javantura 2014 - Java 8 JavaScript Nashorn
 
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
 
Nuxeo World Session: Mobile ECM Apps with Nuxeo EP
Nuxeo World Session: Mobile ECM Apps with Nuxeo EPNuxeo World Session: Mobile ECM Apps with Nuxeo EP
Nuxeo World Session: Mobile ECM Apps with Nuxeo EP
 
Technology Radar Talks - NuGet
Technology Radar Talks - NuGetTechnology Radar Talks - NuGet
Technology Radar Talks - NuGet
 
Dao benchmark
Dao benchmarkDao benchmark
Dao benchmark
 
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and Domino
 
Migrating to aws
Migrating to awsMigrating to aws
Migrating to aws
 
Nuxeo ECM Platform - Technical Overview
Nuxeo ECM Platform - Technical OverviewNuxeo ECM Platform - Technical Overview
Nuxeo ECM Platform - Technical Overview
 
What's New in Nuxeo Platform 7.4 - Breakfast Presentation in Paris
What's New in Nuxeo Platform 7.4 - Breakfast Presentation in ParisWhat's New in Nuxeo Platform 7.4 - Breakfast Presentation in Paris
What's New in Nuxeo Platform 7.4 - Breakfast Presentation in Paris
 
Node and Micro-Services at IBM
Node and Micro-Services at IBMNode and Micro-Services at IBM
Node and Micro-Services at IBM
 
Let's server your Data
Let's server your DataLet's server your Data
Let's server your Data
 
JSF2
JSF2JSF2
JSF2
 
Installer benchmarking
Installer benchmarkingInstaller benchmarking
Installer benchmarking
 
Lessons from Jenkins Platform Support
Lessons from Jenkins Platform SupportLessons from Jenkins Platform Support
Lessons from Jenkins Platform Support
 
Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8
 
Sql implementations
Sql implementationsSql implementations
Sql implementations
 
Benefits of an Open environment with Wakanda
Benefits of an Open environment with WakandaBenefits of an Open environment with Wakanda
Benefits of an Open environment with Wakanda
 
Bccon use notes objects in memory and other useful
Bccon   use notes objects in memory and other usefulBccon   use notes objects in memory and other useful
Bccon use notes objects in memory and other useful
 

En vedette

Introduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformIntroduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformAlfresco Software
 
Accelerate Digital Transformation with Enterprise DAM
Accelerate Digital Transformation with Enterprise DAMAccelerate Digital Transformation with Enterprise DAM
Accelerate Digital Transformation with Enterprise DAMNuxeo
 
Présentation de la Plateforme Nuxeo
Présentation de la Plateforme NuxeoPrésentation de la Plateforme Nuxeo
Présentation de la Plateforme NuxeoNuxeo
 
Alfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture OverviewAlfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture OverviewAlfresco Software
 
Document Management With the Nuxeo Platform
Document Management With the Nuxeo PlatformDocument Management With the Nuxeo Platform
Document Management With the Nuxeo PlatformNuxeo
 
Using MongoDB to Build a Fast and Scalable Content Repository
Using MongoDB to Build a Fast and Scalable Content RepositoryUsing MongoDB to Build a Fast and Scalable Content Repository
Using MongoDB to Build a Fast and Scalable Content RepositoryNuxeo
 

En vedette (7)

Introduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformIntroduction to Alfresco Surf Platform
Introduction to Alfresco Surf Platform
 
nuxeo use cases
nuxeo use casesnuxeo use cases
nuxeo use cases
 
Accelerate Digital Transformation with Enterprise DAM
Accelerate Digital Transformation with Enterprise DAMAccelerate Digital Transformation with Enterprise DAM
Accelerate Digital Transformation with Enterprise DAM
 
Présentation de la Plateforme Nuxeo
Présentation de la Plateforme NuxeoPrésentation de la Plateforme Nuxeo
Présentation de la Plateforme Nuxeo
 
Alfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture OverviewAlfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture Overview
 
Document Management With the Nuxeo Platform
Document Management With the Nuxeo PlatformDocument Management With the Nuxeo Platform
Document Management With the Nuxeo Platform
 
Using MongoDB to Build a Fast and Scalable Content Repository
Using MongoDB to Build a Fast and Scalable Content RepositoryUsing MongoDB to Build a Fast and Scalable Content Repository
Using MongoDB to Build a Fast and Scalable Content Repository
 

Similaire à A Platform Approach to Enterprise Content Management with Eclipse Apricot, CMIS and Nuxeo Platform

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
 
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
 
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
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experienceIgor Anishchenko
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experienceAlex Tumanoff
 
01/2009 - Portral development with liferay
01/2009 - Portral development with liferay01/2009 - Portral development with liferay
01/2009 - Portral development with liferaydaveayan
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterpriseBert Poller
 
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
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel RidingChristian Posta
 
OSGi on Google Android using Apache Felix
OSGi on Google Android using Apache FelixOSGi on Google Android using Apache Felix
OSGi on Google Android using Apache FelixMarcel Offermans
 
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentOSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentSanjeeb Sahoo
 
Building a server platform with os gi
Building a server platform with os giBuilding a server platform with os gi
Building a server platform with os giDileepa Jayakody
 
Oracle Fusion Middleware on Exalogic Best Practises
Oracle Fusion Middleware on Exalogic Best PractisesOracle Fusion Middleware on Exalogic Best Practises
Oracle Fusion Middleware on Exalogic Best PractisesMichel Schildmeijer
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5mbaric
 
How Container Schedulers and Software-based Storage will Change the Cloud
How Container Schedulers and Software-based Storage will Change the CloudHow Container Schedulers and Software-based Storage will Change the Cloud
How Container Schedulers and Software-based Storage will Change the CloudDavid vonThenen
 
Chicago Microservices Integration Talk
Chicago Microservices Integration TalkChicago Microservices Integration Talk
Chicago Microservices Integration TalkChristian Posta
 

Similaire à A Platform Approach to Enterprise Content Management with Eclipse Apricot, CMIS and Nuxeo Platform (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
 
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
 
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...
 
Apereo OAE - Bootcamp
Apereo OAE - BootcampApereo OAE - Bootcamp
Apereo OAE - Bootcamp
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experience
 
Overview of PaaS: Java experience
Overview of PaaS: Java experienceOverview of PaaS: Java experience
Overview of PaaS: Java experience
 
01/2009 - Portral development with liferay
01/2009 - Portral development with liferay01/2009 - Portral development with liferay
01/2009 - Portral development with liferay
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
 
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
 
Cloud Native Camel Riding
Cloud Native Camel RidingCloud Native Camel Riding
Cloud Native Camel Riding
 
Bitnami Bootcamp. OpenStack
Bitnami Bootcamp. OpenStackBitnami Bootcamp. OpenStack
Bitnami Bootcamp. OpenStack
 
OSGi on Google Android using Apache Felix
OSGi on Google Android using Apache FelixOSGi on Google Android using Apache Felix
OSGi on Google Android using Apache Felix
 
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentOSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application Development
 
Building a server platform with os gi
Building a server platform with os giBuilding a server platform with os gi
Building a server platform with os gi
 
Oracle Fusion Middleware on Exalogic Best Practises
Oracle Fusion Middleware on Exalogic Best PractisesOracle Fusion Middleware on Exalogic Best Practises
Oracle Fusion Middleware on Exalogic Best Practises
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5
 
Agile sites2
Agile sites2Agile sites2
Agile sites2
 
How Container Schedulers and Software-based Storage will Change the Cloud
How Container Schedulers and Software-based Storage will Change the CloudHow Container Schedulers and Software-based Storage will Change the Cloud
How Container Schedulers and Software-based Storage will Change the Cloud
 
Chicago Microservices Integration Talk
Chicago Microservices Integration TalkChicago Microservices Integration Talk
Chicago Microservices Integration Talk
 

Plus de Nuxeo

Own the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesOwn the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesNuxeo
 
How DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureHow DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureNuxeo
 
How Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicHow Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicNuxeo
 
Manage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoManage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoNuxeo
 
Accelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportAccelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportNuxeo
 
Where are you in the DAM Continuum
Where are you in the DAM ContinuumWhere are you in the DAM Continuum
Where are you in the DAM ContinuumNuxeo
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021Nuxeo
 
L’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteL’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteNuxeo
 
Gérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoGérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoNuxeo
 
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationLe DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationNuxeo
 
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Nuxeo
 
Elevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionElevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionNuxeo
 
Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Nuxeo
 
Drive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMDrive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMNuxeo
 
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...Nuxeo
 
How Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondHow Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondNuxeo
 
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMDigitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMNuxeo
 
Reimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesReimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesNuxeo
 
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsComment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsNuxeo
 
Accelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceAccelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceNuxeo
 

Plus de Nuxeo (20)

Own the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesOwn the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage Companies
 
How DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureHow DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain Future
 
How Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicHow Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a Pandemic
 
Manage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoManage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and Nuxeo
 
Accelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportAccelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to Support
 
Where are you in the DAM Continuum
Where are you in the DAM ContinuumWhere are you in the DAM Continuum
Where are you in the DAM Continuum
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021
 
L’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteL’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovante
 
Gérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoGérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et Nuxeo
 
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationLe DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
 
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
 
Elevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionElevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the Competition
 
Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience
 
Drive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMDrive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAM
 
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
 
How Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondHow Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and Beyond
 
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMDigitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
 
Reimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesReimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof Technologies
 
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsComment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
 
Accelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceAccelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial Intelligence
 

Dernier

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
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
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 

Dernier (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
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
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 

A Platform Approach to Enterprise Content Management with Eclipse Apricot, CMIS and Nuxeo Platform

  • 1. A Platform Approach to Enterprise Content Management with Eclipse Apricot, CMIS and Nuxeo EP Florent Guillaume, Director of R&D, Nuxeo 2011-09-23
  • 2. Agenda • What Is a Content Repository? • Eclipse Apricot • Nuxeo Enterprise Platform • The Future 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 Apricot • OSGi framework • Under the Eclipse Runtime project • Currently in the Incubation phase • Mentored by Gary Xue (Actuate) and Cédric Brun (Obeo) • Contributed by Nuxeo, from Nuxeo Core • http://www.eclipse.org/apricot 9
  • 10. What Is Apricot? • Content Services • Types and schema definition, persistence, query, access control, locking, versioning • Web Support • Expose content on the web through a fast REST framework extending JAX-RS and using FreeMarker templating • Content Automation • Build reusable business logic based on Commands/ Operations, accessible from UI frameworks and HTTP/REST 10
  • 11. What Is Apricot? • CMIS • OASIS Content Management Interoperability Services • HTTP APIs (SOAP, AtomPub, Browser Bindings) • OpenCMIS Java APIs • http://docs.oasis-open.org/cmis/CMIS/v1.0/cmis- spec-v1.0.html 11
  • 12. HTTP (CMIS) HTTP OpenCMIS Java OpenCMIS Automation API Native Java API Core Services VCS Binary Store SQL Backend Other Backend Filesystem SQL Database Cloud 12
  • 13. When to Use Apricot? • Need to store Objects with Properties • And maybe Files • Don’t want to write SQL • But be able to fall back to SQL if really needed • Need Access Control • Need Versioning, Queries, ... • Don’t want to reinvent the wheel 13
  • 14. Why Is Apricot Good? • Modular — OSGi, extension points • Fast — Efficient use of storage backends, caching • Safe — Transaction-aware, hot backups • Scaling — Clusterable, pluggable binary store (FS, SQL, AWS S3, ...), ready for NoSQL backends • Battle-tested — In production for 4 years, thousands of deployments, originates from Nuxeo Core (used in Nuxeo DM, DAM, CMF) 14
  • 16. Platform Approach • Platform to build Content applications • Reusable components and services • Comprises UI frameworks and building blocks • Ready to use pre-built applications (DM, DAM, CMF) • Nuxeo platform is • Open source, 100% Java-based since 2006 16
  • 17. 17
  • 18. Platform Modularity • ECM projects usually require a lot of customization • Without compromising upgrades (we sell support!) • Without forking the source code • For our Java platform it was a requirement to have • A modular framework • A plugin system 18
  • 19. What Modularity Achieved • Complex software platform • 200+ bundles, 210+ extension points, 490+ contributions • Very flexible thanks to extension points • Easy to contribute new services and customize the default application (including UI and business logic) • Running virtually everywhere • JBoss, as an EAR application • Tomcat and Jetty, as a WAR application • Equinox, as an OSGi application (and Virgo very soon) 19
  • 20. 20
  • 21. 21
  • 22. Modularity Framework • Java SE • No bundle life cycle, no modularity, no extension system • Java EE • All is packaged as one big application (EAR or WAR), cannot update or add a feature without recompiling the entire application • OSGi — yes, but • Not compatible with Java EE • No real OSGi Enterprise Framework implementations yet 22
  • 23. Additions to OSGi • To achieve a plugin model • Eclipse already had the answer: extension points • To integrate with Java EE application servers • Configuration fragments, pre-startup assembly of web.xml and application.xml • Specific OSGi runtime that can load bundles in an EAR 23
  • 24. Extension Points • Eclipse used EXSD, which is very tied to PDE • (remember it was 2006 and we had to use maven) • Nuxeo redefined something similar but more flexible • No intermediate object model between services and contributed extensions • Write an extension class and map it to XML using Java annotations • Easy to write for developers, no specific IDE needed • Available in Apricot 24
  • 26. Configuration Fragments • Java EE configuration is monolithic • To declare servlets (web.xml) one must know in advance the servlets provided by all the different bundles, same for application.xml • Using templates for Java EE configuration files • Dynamically generate these files at application startup from the configuration contributed by each bundle • Ability to package EAR applications that can adapt themselves to the configuration provided by new application bundles • No need to have different product packagings for different configurations • Needs a server-specific hook to do this processing 26
  • 28. Java EE Features Added to OSGi • Full OSGi integration of JAAS (authentication system) • Full JTA support through Apache Geronimo (transactions) • Full JCA support through Apache Geronimo (resource adapters and pooling) • In-memory JNDI server • Future plans to integrate the work done in the Gemini project (and also support Virgo) 28
  • 30. Where Are We Going? • Finish Apricot first release • Cleanup, testing framework • Replace Nuxeo Core with Apricot • Core running under a full OSGi container • Update JSF and Seam to Java EE 6 • Use CDI for easier access to services • Better IDE support 30
  • 31. Lots of New Features • Search • HTML5 • Workflow • Modular installer • Storage improvements • Document • Cloud dev and Routing prod deployment • VCS improvements • Filesystem sync • Mobile devices connectors • OpenSocial • Static WAR packaging • Nuxeo IDE • Activity Stream • Video and Rich • Nuxeo Studio • Collaboration Media 31
  • 33. Additional Information & Links • http://www.nuxeo.com • http://community.nuxeo.com • http://www.eclipse.org/apricot • 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 33

Notes de l'éditeur

  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. 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\n
  11. \n
  12. \n
  13. \n
  14. Efficient use of storage backends: Use their native features and strengths, Don’t reinvent transactions, relations\n\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
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n