SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
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

Más contenido relacionado

Más 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
 

Más 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

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
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
 
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
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Último (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
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
 
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
 
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...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

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