SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
A Platform Approach to
Enterprise Content Management
      with Eclipse Apricot,
   CMIS and Nuxeo Platform
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
Life
               Construction     Publishing    Government
                                                               Sciences
  Vertical                                                                    Marketplace
Applications                                                                 Solution Catalog
               Correspondenc    Contracts       Invoice       Records
               e Management    Management     Processing     Management
                                                                                 Studio
                                                                             Customization &
                                                                              Configuration
                                                              Case
Packaged         Document           Digital Asset
                                                          Management
Products        Management          Management
                                                           Framework
                                                                                Support
                                                                                with SLAs

                              Content Application Platform
 Technical      A packaged development framework for building content-
                 centric applications, is designed for java developers and    Maintenance
  Product
                                          architects.                        Patches & upgrades



                          Nuxeo Enterprise Platform
Technology                                                                   Nuxeo Connect
                Complete set of components covering all aspects of ECM.          Subscription
                  Extensible modular architecture designed for content
                                                                                                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

Mais conteúdo relacionado

Mais de Paris Open Source Summit

#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, Inria
#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, Inria#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, Inria
#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, InriaParis Open Source Summit
 
#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...
#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...
#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...Paris Open Source Summit
 
#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches ...
#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches  ...#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches  ...
#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches ...Paris Open Source Summit
 
#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...
#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...
#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...Paris Open Source Summit
 
#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...
#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...
#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...Paris Open Source Summit
 
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...Paris Open Source Summit
 
#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...
#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...
#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...Paris Open Source Summit
 
#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...
#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...
#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...Paris Open Source Summit
 
#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...
#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...
#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...Paris Open Source Summit
 
#OSSPARIS19 - Table ronde : souveraineté des données
#OSSPARIS19 - Table ronde : souveraineté des données #OSSPARIS19 - Table ronde : souveraineté des données
#OSSPARIS19 - Table ronde : souveraineté des données Paris Open Source Summit
 
#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...
#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...
#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...Paris Open Source Summit
 
#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...
#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...
#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...Paris Open Source Summit
 
#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...
#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...
#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...Paris Open Source Summit
 
#OSSPARIS19 - Cryptpad : la collaboration chiffrée - LUDOVIC DUBOST, CEO XWik...
#OSSPARIS19 - Cryptpad : la collaboration chiffrée - LUDOVIC DUBOST, CEO XWik...#OSSPARIS19 - Cryptpad : la collaboration chiffrée - LUDOVIC DUBOST, CEO XWik...
#OSSPARIS19 - Cryptpad : la collaboration chiffrée - LUDOVIC DUBOST, CEO XWik...Paris Open Source Summit
 
OSSPARIS19 - Customer Content Management: GED et CRM combiné - MICHAËL GENA, ...
OSSPARIS19 - Customer Content Management: GED et CRM combiné - MICHAËL GENA, ...OSSPARIS19 - Customer Content Management: GED et CRM combiné - MICHAËL GENA, ...
OSSPARIS19 - Customer Content Management: GED et CRM combiné - MICHAËL GENA, ...Paris Open Source Summit
 
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...Paris Open Source Summit
 
#OSSPARIS19 - Comment un Logiciel Libre a conduit ma voiture sur plus de 8000...
#OSSPARIS19 - Comment un Logiciel Libre a conduit ma voiture sur plus de 8000...#OSSPARIS19 - Comment un Logiciel Libre a conduit ma voiture sur plus de 8000...
#OSSPARIS19 - Comment un Logiciel Libre a conduit ma voiture sur plus de 8000...Paris Open Source Summit
 
#OSSPARIS19 - Blockchain tokenization at SocieteGenerale - SEBASTIEN CHROUKRO...
#OSSPARIS19 - Blockchain tokenization at SocieteGenerale - SEBASTIEN CHROUKRO...#OSSPARIS19 - Blockchain tokenization at SocieteGenerale - SEBASTIEN CHROUKRO...
#OSSPARIS19 - Blockchain tokenization at SocieteGenerale - SEBASTIEN CHROUKRO...Paris Open Source Summit
 
#OSSPARIS19 - La sécurité applicative par le design - CHRISTOPHE VILLENEUVE, ...
#OSSPARIS19 - La sécurité applicative par le design - CHRISTOPHE VILLENEUVE, ...#OSSPARIS19 - La sécurité applicative par le design - CHRISTOPHE VILLENEUVE, ...
#OSSPARIS19 - La sécurité applicative par le design - CHRISTOPHE VILLENEUVE, ...Paris Open Source Summit
 
#OSSPARIS19 - Learn AWK in 15 minutes - MAXIME BESSON, Worteks
#OSSPARIS19 - Learn AWK in 15 minutes - MAXIME BESSON, Worteks#OSSPARIS19 - Learn AWK in 15 minutes - MAXIME BESSON, Worteks
#OSSPARIS19 - Learn AWK in 15 minutes - MAXIME BESSON, WorteksParis Open Source Summit
 

Mais de Paris Open Source Summit (20)

#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, Inria
#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, Inria#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, Inria
#OSSPARIS19: Introduction to scikit-learn - Olivier Grisel, Inria
 
#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...
#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...
#OSSPARIS19 - Fostering disruptive innovation in AI with JEDI - André Loesekr...
 
#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches ...
#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches  ...#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches  ...
#OSSPARIS19 : Comment ONLYOFFICE aide à organiser les travaux de recherches ...
 
#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...
#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...
#OSSPARIS19 : MDPH : une solution collaborative open source pour l'instructio...
 
#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...
#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...
#OSSPARIS19 - Understanding Open Source Governance - Gilles Gravier, Wipro Li...
 
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...
 
#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...
#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...
#OSSPARIS19 : Libre à vous ! Raconter les libertés informatiques à la radio -...
 
#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...
#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...
#OSSPARIS19 - Le logiciel libre : un enjeu politique et social - Etienne Gonn...
 
#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...
#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...
#OSSPARIS19 - Conflits d’intérêt & concurrence : la place de l’éditeur dans l...
 
#OSSPARIS19 - Table ronde : souveraineté des données
#OSSPARIS19 - Table ronde : souveraineté des données #OSSPARIS19 - Table ronde : souveraineté des données
#OSSPARIS19 - Table ronde : souveraineté des données
 
#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...
#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...
#OSSPARIS19 - Comment financer un projet de logiciel libre - LUDOVIC DUBOST, ...
 
#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...
#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...
#OSSPARIS19 - BlueMind v4 : les dessous technologiques de 10 ans de travail p...
 
#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...
#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...
#OSSPARIS19 - Tuto de première installation de VITAM, un système d'archivage ...
 
#OSSPARIS19 - Cryptpad : la collaboration chiffrée - LUDOVIC DUBOST, CEO XWik...
#OSSPARIS19 - Cryptpad : la collaboration chiffrée - LUDOVIC DUBOST, CEO XWik...#OSSPARIS19 - Cryptpad : la collaboration chiffrée - LUDOVIC DUBOST, CEO XWik...
#OSSPARIS19 - Cryptpad : la collaboration chiffrée - LUDOVIC DUBOST, CEO XWik...
 
OSSPARIS19 - Customer Content Management: GED et CRM combiné - MICHAËL GENA, ...
OSSPARIS19 - Customer Content Management: GED et CRM combiné - MICHAËL GENA, ...OSSPARIS19 - Customer Content Management: GED et CRM combiné - MICHAËL GENA, ...
OSSPARIS19 - Customer Content Management: GED et CRM combiné - MICHAËL GENA, ...
 
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...
OSSPARIS19 - Utiliser les outils open source pour démarrer une nouvelle entre...
 
#OSSPARIS19 - Comment un Logiciel Libre a conduit ma voiture sur plus de 8000...
#OSSPARIS19 - Comment un Logiciel Libre a conduit ma voiture sur plus de 8000...#OSSPARIS19 - Comment un Logiciel Libre a conduit ma voiture sur plus de 8000...
#OSSPARIS19 - Comment un Logiciel Libre a conduit ma voiture sur plus de 8000...
 
#OSSPARIS19 - Blockchain tokenization at SocieteGenerale - SEBASTIEN CHROUKRO...
#OSSPARIS19 - Blockchain tokenization at SocieteGenerale - SEBASTIEN CHROUKRO...#OSSPARIS19 - Blockchain tokenization at SocieteGenerale - SEBASTIEN CHROUKRO...
#OSSPARIS19 - Blockchain tokenization at SocieteGenerale - SEBASTIEN CHROUKRO...
 
#OSSPARIS19 - La sécurité applicative par le design - CHRISTOPHE VILLENEUVE, ...
#OSSPARIS19 - La sécurité applicative par le design - CHRISTOPHE VILLENEUVE, ...#OSSPARIS19 - La sécurité applicative par le design - CHRISTOPHE VILLENEUVE, ...
#OSSPARIS19 - La sécurité applicative par le design - CHRISTOPHE VILLENEUVE, ...
 
#OSSPARIS19 - Learn AWK in 15 minutes - MAXIME BESSON, Worteks
#OSSPARIS19 - Learn AWK in 15 minutes - MAXIME BESSON, Worteks#OSSPARIS19 - Learn AWK in 15 minutes - MAXIME BESSON, Worteks
#OSSPARIS19 - Learn AWK in 15 minutes - MAXIME BESSON, Worteks
 

Último

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
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
 
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
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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
 
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
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
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
 

Último (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
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...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
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
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 

Java / A Platform Approach to Enterprise Content Management with Eclipse Apricot, CMIS and Nuxeo Platform - Florent Guillaume, Nuxeo

  • 1. A Platform Approach to Enterprise Content Management with Eclipse Apricot, CMIS and Nuxeo Platform 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. Life Construction Publishing Government Sciences Vertical Marketplace Applications Solution Catalog Correspondenc Contracts Invoice Records e Management Management Processing Management Studio Customization & Configuration Case Packaged Document Digital Asset Management Products Management Management Framework Support with SLAs Content Application Platform Technical A packaged development framework for building content- centric applications, is designed for java developers and Maintenance Product architects. Patches & upgrades Nuxeo Enterprise Platform Technology Nuxeo Connect Complete set of components covering all aspects of ECM. Subscription Extensible modular architecture designed for content 16 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