SlideShare a Scribd company logo
Lessons Learned
Building Nuxeo EP
    Stefane Fermigier, PhD - Nuxeo
Presented at ICSSEA 2010, Dec. 8 2010
History and Context
Who we are
•   Company started in 2000
•   2002-2005: Zope-based CPS project
•   2005: First Eclipse RCP based project
•   2006-now: Full switch to Java (Java EE 5 and
    OSGi)
•   2009-now: Business model migration from
    service company to an OSS Software Vendor
What is ECM?
ECM, a concept that emerged in the early
2000s, represents the integrated
enterprise-wide management of all
forms of non-structured (and
sometimes, semi-structured) content,
including their metadata, across their
whole lifecycle, supported by appropriate
technologies and administrative
infrastructure.
5   Search
                    & Find
                                          1 Capture
                                            & Create




4    Publish
    & Archive

                                              2    Share &
                                                  Collaborate




                             3 Process
                               & Review
What are CEVA?
•   4LA invented by Gartner in 2006: “Content
    Enabled Vertical Applications”
•   “CEVAs typically help to automate complex
    processes that previously required workers
    to manually sort through paper documents
    and other forms of content (in effect, a way
    to manage down costs of exception handling)
    and optimize the remainder of the work.”
Business Goals
• First, create a MVP (minimal viable
  product) to ensure company sustainability
• Base it on a clean, extensible
  architecture
• With the end goal of enabling the creation
  of a rich ecosystem of extensions and
  application profiles
Nuxeo CPS
• Content management and portal platform
• Developed from 2002 to 2005
• Built on top of the Zope and CMF
  (Content Management Framework) open
  source frameworks
• Architecture: pluggable components
  (“Products”) and events
Switch to Java: Why?
•   Technical reasons:

    •   ZODB doesn’t scale well in terms of data
        volume

    •   Dymanic languages don’t scale well in terms of
        managing complexity (> 100 KLOC)

•   Business reasons:

    •   Java makes it much easier to work with
        mainstream systems integrators
A Few Numbers
•   Nuxeo EP+DM is a 400 KLOC Java project
•   Comprises ~190 independent modules (JARs)
•   Developed over the last 4 1/2 years by a core
    team of 20 developers and 50 community
    contributors
•   Has generated ~20 MEUR of revenue for
    Nuxeo, ~50 MEUR for partners
Business Constraints
 and Requirements
Business Vision
• Address the full ECM scope
 • Initial focus on Document Management
 • Architecture must be extensible and
    modular
• Enable and sustain the Ecosystem
 • Easy to work with, designed for
    participation
Business Vision
• Low barrier of entry for:
  • End-users (e.g. pleasant UI)
  • Developers (e.g. clean model and API,
    leverage existing knowledge)
  • Sysadmins / operations
• “Enterprise-class” software
  • 10 000s of users, millions of documents
Our Original Roadmap
• Don't reinvent the wheel
 • Leverage existing standards, work on new
    ones (ex: JCR2, CMIS)
 • Build on proven open source
    libraries(JBoss, Apache, Sun, Eclipse)
• Use a robust software engineering process
 • Make it transparent for our community
Core ECM
•   Document types definition and management

•   Storage of the documents and associated
    metadata

•   Document life cycle and versioning

•   Access control

•   Indexing + query language, must enable complex
    queries on both full-text and metadata
Higher-Level
          ECM Services
•   Workflow
•   Transformation and rendering
•   User management
•   User interface
•   A rich set of HTTP-based APIs exposed to
    third-party developers and integrators (WS-*
    and REST)
2.0 and 3.0 (Ongoing)
•   Tagging and folksonomies

•   Lightweight collab (wikis) and publishing (blogs)

•   Social networking (“friending” or “following”
    colleagues or business partners, user timelines)

•   Collaborative filtering

•   Mobile and disconnected access

•   Semantic content categorization and named entities
    extractions
Products and
Applications
Nuxeo ECM - Our Approach
                     Applications
                 Correspondence    Contracts        Invoice       Marketing Asset
                  Management      Management      Processing         Management
 Business
 Solutions
                 Construction        Media       Government      Life Sciences



                                Digital        Case
 Horizontal       Document                               Records       Content
                                Asset      Management
 Packages        Management                             Management    Aggregator
                              Management    Framework



                                  Nuxeo Enterprise Platform
  Platform:         Complete set of components covering all aspects of ECM
   Content
Infrastructure                             Nuxeo Core
                      Lightweight, scalable, embeddable content repository

                                                                                    19
Document Management
DAM
Case Management
Web Sites
The Strongest
          Requirement
• Applications (horizontal, vertical or custom)
  must be buildable just by assembling
  components (packaged as Java JARs)
• Architecture must allow behavior
  modification at the repository level (e.g. new
  document type), at the UI level (e.g. new
  actions), and at the service level (e.g. adding
  new services) without recompilation
Technical Challenges
Standards Choice
• Switch to Java was motivated by the desire
  to be more “standards-compliant”
• But the problem with standards, is that
  there are too many to choose from!
• Old vs. new or emerging
• Open standards vs. de facto standards
• Overlapping standards (hardest issue!)
Initial Standards
• Java EE 5, as the structuring general
  framework for the server-based application
  (but not for the core services)
• OSGi, as a packaging model for
  components
• The JCR (Java Content Repository), as the
  model API to manage content and metadata
  at the most basic level
Initial Standards

• JSF as the presentation layer (part of Java
  EE 5)
• JBoss Seam, a web presentation framework
  that extends JSF, because we felt would
  provide a much improved developer
  experience over the “pure Java EE 5” model
Notes
• Java EE 5 was really new and still “wet” at
  the time
• Seam was not a standard, but its concepts
  eventually merged into one (JCDI)
• In 2006 OSGi had credibility in the
  embedded and rich client spaces, not yet on
  the server
• We dropped JCR support in 2010
Open Source Libraries
• The Open Source Java ecosystem started
  to grow in the late 90s (Apache) and had a
  huge boost in the early 00s (Eclipse, JBoss,
  OW2, etc.)
• Like with standards, there are usually many
  OSS implementations to choose from
• FYI: Nuxeo EP now embeds more that 200
  external open source libraries!
Choosing an OSS Library
•   License compatibility with the LGPL (this
    excludes proprietary and GPL licenses)
•   Compliance to a chosen standard
•   Quality, as witnessed by visual inspection of
    the source code
•   Confidence in the development process (e.g.
    are there unit tests?) and the community
    behind the project
Benefits and Challenges
of Using OSS Libraries
•   With OSS, it’s easier to evaluate options

•   Forking a library is sometimes the only way to
    fix a bug or add a missing functionality

•   But it comes with a tremendous price because
    now you have to maintain your own branch

•   Becoming a contributor is also sometimes
    needed, but comes at a price too

•   Risk of “JAR hell” (conflicting libraries reqs)
Lessons Learned

• Allow users of our platform to extend it
  without touching its source code
• Or, even better, without writing code at all!
• Keep your options open, but don’t over-
  engineer flexibility
Architectural Solutions
Architectural Solutions

• Layered architecture
• High-level APIs
• Component system
• Extension points
• Event bus
Layer Cake
Nuxeo EP Architecture
    Nuxeo UI Frameworks
  Flexible choice of interfaces

    Nuxeo ECM Services
 Modular set of content services

        Nuxeo Core
  Advanced content repository

      Nuxeo Runtime
 Component and service model
APIs
Everything Pluggable
OSGi in Theory
• OSGi is a component system developed
  initially for the embedded systems industry
• Adopted by Eclipse for Eclipse 3.0 (2005)
• Both a module system and service platform
  (but we’re currently only using the former)
• Modules, or “bundles” are just JARs with a
  special MANIFEST
OSGi in Theory
• An OSGi “container” takes care of
  component activation
• Bundles describe their own imports
  (dependencies) and exports (exposed API)
• Container can also take care of provisioning
• Class loader isolation can take care of “JAR
  Hell”
OSGi at Nuxeo
•   We package our components as OSGi bundles

•   We have our own “OSGi-like” adapter for app
    servers (JBoss, Jetty, Tomcat, Glassfish)

•   Most of our components can also run on
    Eclipse Equinox (for RCP apps)

•   We have our own service registry, but it’s
    currently not based on OSGi

•   We don’t provide class loader isolation
OSGi at Nuxeo
• Goal is to be able to run everything on a
  “real” OSGi container in 2011
• ... and to fully leverage the OSGi service
  stack at the same time
  • Including service registry, hot-reload, class
    isolation, etc.
• Biggest conceptual issue: overlap with Java
  EE
Plugins and
          Extension Points
•   Inspired by the Eclipse architecture

•   Eclipse = a core runtime engine + a set of plugins

•   Plugin: the smallest extensible unit to contribute
    additional functions to the system

•   Extension points: boundaries between plug-ins

•   A plugin (bundle) can contribute either
    configuration (pure XML contribution) or code
    (XML + Java)
Plugins and
Extension Points
Note
• This “core + extensions” pattern is very
  common in successful open source projects
  • Linux kernel + drivers (modules)
  • Firefox + plugins
  • Emacs + Emacs LISP macros
• It’s a key to enabling an architecture of
  participation
Event Bus
•   EventHandlers aka listeners

    •   Synchronous / PostCommit / Asynchronous

    •   Easily contributed (Java / script / MDB)

•   Great solution for

    •   Glueing together independent components

    •   Enforcing business rules (synchronous inline)

    •   Pushing/getting data to/from external systems
Event Bus
Process and
Community Engagement
Goals
•   Must enable the participation of third party
    contributors (partners, community)
•   Must improve synchronization between
    custom developments and OSS projects
•   Agile development practices (XP, TDD)
    already used at Nuxeo since 2001 or so
•   Must complement them with simple, efficient
    and scalable project management practices
Process:
Scrum & Kanban
Community Engagement:
       PRIM
P = Portal
R = Repository
I = Issue Tracker
M = Mailing List (+ foruM)
“Every successful open source project I know
uses PRIM. Every closed source project I
know, doesn't. People wonder how open source
projects manage to create high-quality products
without managers or accountability. The answer:
we're accountable to our infrastructure. PRIM
is the open source secret sauce.”
Ted Husted http://jroller.com/TedHusted/entry/prim
Development Tools
Tools
• Mercurial (distributed SCM)
• Maven (Dependency mngt, build,
  packaging, releasing)
• Hudson (Continuous integration)
• Jira (Bug / task tracking, Scrum iteration
  backlogs)
TDD and CI
More Tools

• IDEs (Eclipse mostly)
• Testing (JUnit, Selenium, WebDriver)
• Static code analysis (FindBugs, IDEA
  inspections, Checkstyle, Enerjy)
• Various profilers and debuggers
Outstanding Issues
•   CI at our level is very resource-intensive (10
    servers farm)
•   It’s hard (read, impossible) to test UI without
    a browser
•   OTOH “Plain” Selenium test are hard to
    maintain
•   Some pieces (Maven repository, Selenium
    testing) are fragile, and introduce heisenbugs
Related Work
Open Source, Java-Based
•   Some Java-baed open source WCM or E2.0
    platforms (XWiki, Jahia...) have developed ad-
    hoc component systems similar to ours

•   Alfresco is an ECM solution with a static
    architecture based on Spring, which makes it
    harder to customize and extend

•   Apache Sling is a framework based on JCR and
    OSGi, but doesn’t come with complete
    solutions and seems more focussed on WCM
Open Source, Scripting
  Languages Based
• Drupal, Joomla, WordPress (PHP), Plone
  (Python), are examples of extensible
  content management platforms based on
  scripting languages with large ecosystems
• Plugins usually rely on callbacks functions /
  methods instead of ext. points and events
• Plugins can break due to API changes and
  lack of statical verification of compatibility
Proprietary
• Proprietary software is, by definition,
  harder to study and tear apart
• But the general view is that big name
  vendors products (Documentum, Open
  Text, FileNet) are based on mixes of old
  technologies patched together after various
  acquisitions, and harder to make evolve and
  to program to for modern developers
Perspectives
Ongoing Work
• Simplifying the developer experience: faster
  code/test turnaround, simpler web front end
  development using the more recent JAX-RS
  standard or Google Web Toolkit (GWT).
• Development of business-oriented RESTful
  APIs to allow high-level interaction with the
  content, and eventually business application
  development by non-technical users (cf.
  Nuxeo Studio).
Nuxeo Studio
Ongoing Work
• Replication, both in a LAN (for scalability
  and fault tolerance) and WAN (for
  replication between remote data centers,
  or between a server and a desktop or
  mobile client) contexts
• Social integration (using OpenSocial)
• Further work on semantic technologies
Ongoing Work
• Porting the platform to the Cloud, and
  exposing it as a PaaS service
• Work on mobile ECM, with clients for
  platforms such as the iPhone/iPad, Android
  and Blackberry operating systems
• Bringing Nuxeo EP to Java EE 6 and full
  OSGi compliance
Conclusion
Key Findings
•   The Nuxeo EP architecture fits both the OSS
    “architecture of participation” vision and our
    business model and goals

•   Main effort has now moved from the platform
    to its periphery (extensions, applications,
    development and operation tools), as enabled by
    the architecture

•   Still work to do on some key standards
    compliance aspects (OSGi, Java EE 6, CMIS...)
More Information

• www.nuxeo.com
• www.nuxeo.org
• blogs.nuxeo.com

More Related Content

What's hot

Translating Open Source Value to the Cloud
Translating Open Source Value to the CloudTranslating Open Source Value to the Cloud
Translating Open Source Value to the Cloud
Gordon Haff
 
Magazine by mag4free vol.22
Magazine by mag4free vol.22Magazine by mag4free vol.22
Magazine by mag4free vol.22
mag4freemagazine
 
TERMINALFOUR t44u 2010 - CMS Roadmap November2010
TERMINALFOUR t44u 2010 - CMS Roadmap November2010TERMINALFOUR t44u 2010 - CMS Roadmap November2010
TERMINALFOUR t44u 2010 - CMS Roadmap November2010
Terminalfour
 
Creating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile ApplicationsCreating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile Applications
Brian Huff
 
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
Cincom Smalltalk: Present, Future & Smalltalk AdvocacyCincom Smalltalk: Present, Future & Smalltalk Advocacy
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
ESUG
 
Digital Asset Management: A Platform Approach
Digital Asset Management: A Platform ApproachDigital Asset Management: A Platform Approach
Digital Asset Management: A Platform Approach
Nuxeo
 
Kineo Moodle & Totara User Group Event (July 2012)
Kineo Moodle & Totara User Group Event (July 2012)Kineo Moodle & Totara User Group Event (July 2012)
Kineo Moodle & Totara User Group Event (July 2012)
Kineo
 
Integrating ADF Mobile with WebCenter
Integrating ADF Mobile with WebCenterIntegrating ADF Mobile with WebCenter
Integrating ADF Mobile with WebCenter
Brian Huff
 
Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)
Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)
Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)
Rikkyo University
 
The Flash to HTML5 Opportunity
The Flash to HTML5 OpportunityThe Flash to HTML5 Opportunity
The Flash to HTML5 Opportunity
Thomas Burleson
 
Microgroove (GoGrid Customer) Presentation at Cloud Connect 2012
Microgroove (GoGrid Customer) Presentation at Cloud Connect 2012Microgroove (GoGrid Customer) Presentation at Cloud Connect 2012
Microgroove (GoGrid Customer) Presentation at Cloud Connect 2012
GoGrid Cloud Hosting
 
Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来
Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来
Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来
Rikkyo University
 
FISL: Content Management Primer
FISL: Content Management PrimerFISL: Content Management Primer
FISL: Content Management Primer
Richard Esplin
 
OSGi in Action Chapter 1 and 2
OSGi in Action Chapter 1 and 2OSGi in Action Chapter 1 and 2
OSGi in Action Chapter 1 and 2
pjhInovex
 
Liferay & Alfresco: Delivering Enterprise Content Through a Portal 02 August ...
Liferay & Alfresco: Delivering Enterprise Content Through a Portal 02 August ...Liferay & Alfresco: Delivering Enterprise Content Through a Portal 02 August ...
Liferay & Alfresco: Delivering Enterprise Content Through a Portal 02 August ...
Alfresco Software
 
Using alfresco share as a corporate intranet
Using alfresco share as a corporate intranetUsing alfresco share as a corporate intranet
Using alfresco share as a corporate intranet
Alfresco Software
 
Power BI for Office 365
Power BI for Office 365Power BI for Office 365
Power BI for Office 365
WinWire Technologies Inc
 
User-tailored Inter-Widget Communication Extending the Shared Data Interface ...
User-tailored Inter-Widget Communication Extending the Shared Data Interface ...User-tailored Inter-Widget Communication Extending the Shared Data Interface ...
User-tailored Inter-Widget Communication Extending the Shared Data Interface ...
Hendrik Drachsler
 
Novell vibe intro and roadmap v5
Novell   vibe intro and roadmap v5Novell   vibe intro and roadmap v5
Novell vibe intro and roadmap v5
GWAVA
 
Turn Your Mobile Device Into a Workhorse
Turn Your Mobile Device Into a WorkhorseTurn Your Mobile Device Into a Workhorse
Turn Your Mobile Device Into a Workhorse
Richard Esplin
 

What's hot (20)

Translating Open Source Value to the Cloud
Translating Open Source Value to the CloudTranslating Open Source Value to the Cloud
Translating Open Source Value to the Cloud
 
Magazine by mag4free vol.22
Magazine by mag4free vol.22Magazine by mag4free vol.22
Magazine by mag4free vol.22
 
TERMINALFOUR t44u 2010 - CMS Roadmap November2010
TERMINALFOUR t44u 2010 - CMS Roadmap November2010TERMINALFOUR t44u 2010 - CMS Roadmap November2010
TERMINALFOUR t44u 2010 - CMS Roadmap November2010
 
Creating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile ApplicationsCreating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile Applications
 
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
Cincom Smalltalk: Present, Future & Smalltalk AdvocacyCincom Smalltalk: Present, Future & Smalltalk Advocacy
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
 
Digital Asset Management: A Platform Approach
Digital Asset Management: A Platform ApproachDigital Asset Management: A Platform Approach
Digital Asset Management: A Platform Approach
 
Kineo Moodle & Totara User Group Event (July 2012)
Kineo Moodle & Totara User Group Event (July 2012)Kineo Moodle & Totara User Group Event (July 2012)
Kineo Moodle & Totara User Group Event (July 2012)
 
Integrating ADF Mobile with WebCenter
Integrating ADF Mobile with WebCenterIntegrating ADF Mobile with WebCenter
Integrating ADF Mobile with WebCenter
 
Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)
Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)
Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)
 
The Flash to HTML5 Opportunity
The Flash to HTML5 OpportunityThe Flash to HTML5 Opportunity
The Flash to HTML5 Opportunity
 
Microgroove (GoGrid Customer) Presentation at Cloud Connect 2012
Microgroove (GoGrid Customer) Presentation at Cloud Connect 2012Microgroove (GoGrid Customer) Presentation at Cloud Connect 2012
Microgroove (GoGrid Customer) Presentation at Cloud Connect 2012
 
Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来
Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来
Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来
 
FISL: Content Management Primer
FISL: Content Management PrimerFISL: Content Management Primer
FISL: Content Management Primer
 
OSGi in Action Chapter 1 and 2
OSGi in Action Chapter 1 and 2OSGi in Action Chapter 1 and 2
OSGi in Action Chapter 1 and 2
 
Liferay & Alfresco: Delivering Enterprise Content Through a Portal 02 August ...
Liferay & Alfresco: Delivering Enterprise Content Through a Portal 02 August ...Liferay & Alfresco: Delivering Enterprise Content Through a Portal 02 August ...
Liferay & Alfresco: Delivering Enterprise Content Through a Portal 02 August ...
 
Using alfresco share as a corporate intranet
Using alfresco share as a corporate intranetUsing alfresco share as a corporate intranet
Using alfresco share as a corporate intranet
 
Power BI for Office 365
Power BI for Office 365Power BI for Office 365
Power BI for Office 365
 
User-tailored Inter-Widget Communication Extending the Shared Data Interface ...
User-tailored Inter-Widget Communication Extending the Shared Data Interface ...User-tailored Inter-Widget Communication Extending the Shared Data Interface ...
User-tailored Inter-Widget Communication Extending the Shared Data Interface ...
 
Novell vibe intro and roadmap v5
Novell   vibe intro and roadmap v5Novell   vibe intro and roadmap v5
Novell vibe intro and roadmap v5
 
Turn Your Mobile Device Into a Workhorse
Turn Your Mobile Device Into a WorkhorseTurn Your Mobile Device Into a Workhorse
Turn Your Mobile Device Into a Workhorse
 

Viewers also liked

Nuxeo Semantic ECM: from Scribo and Stanbol to valuable applications
Nuxeo Semantic ECM: from Scribo and Stanbol to valuable applicationsNuxeo Semantic ECM: from Scribo and Stanbol to valuable applications
Nuxeo Semantic ECM: from Scribo and Stanbol to valuable applications
Nuxeo
 
Nuxeo World Session: Semantic Technologies - Update on Recent Research
Nuxeo World Session: Semantic Technologies - Update on Recent ResearchNuxeo World Session: Semantic Technologies - Update on Recent Research
Nuxeo World Session: Semantic Technologies - Update on Recent Research
Nuxeo
 
Challenges du recrutement pour un editeur de logiciel libre
Challenges du recrutement pour un editeur de logiciel libreChallenges du recrutement pour un editeur de logiciel libre
Challenges du recrutement pour un editeur de logiciel libreStefane Fermigier
 
ECM Meets the Semantic Web - Nuxeo World 2011
ECM Meets the Semantic Web - Nuxeo World 2011ECM Meets the Semantic Web - Nuxeo World 2011
ECM Meets the Semantic Web - Nuxeo World 2011
Stefane Fermigier
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
Nuxeo
 
Eclipse Apogee and Nuxeo RCP
Eclipse Apogee and Nuxeo RCPEclipse Apogee and Nuxeo RCP
Eclipse Apogee and Nuxeo RCP
Stefane Fermigier
 
Nuxeo at 10
Nuxeo at 10Nuxeo at 10
Nuxeo at 10
Stefane Fermigier
 
Le Marché du Logiciel Libre en France en 2010
Le Marché du Logiciel Libre en France en 2010Le Marché du Logiciel Libre en France en 2010
Le Marché du Logiciel Libre en France en 2010
Stefane Fermigier
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
Stefane Fermigier
 
GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011
Stefane Fermigier
 
A Quick Tour of JVM Languages
A Quick Tour of JVM LanguagesA Quick Tour of JVM Languages
A Quick Tour of JVM Languages
Stefane Fermigier
 
Nuxeo on the Cloud - Nuxeo World 2011
Nuxeo on the Cloud - Nuxeo World 2011Nuxeo on the Cloud - Nuxeo World 2011
Nuxeo on the Cloud - Nuxeo World 2011
Stefane Fermigier
 
Nuxeo ECM - Architecture Overview - May 2008
Nuxeo ECM - Architecture Overview - May 2008Nuxeo ECM - Architecture Overview - May 2008
Nuxeo ECM - Architecture Overview - May 2008
Stefane Fermigier
 

Viewers also liked (15)

Nuxeo Semantic ECM: from Scribo and Stanbol to valuable applications
Nuxeo Semantic ECM: from Scribo and Stanbol to valuable applicationsNuxeo Semantic ECM: from Scribo and Stanbol to valuable applications
Nuxeo Semantic ECM: from Scribo and Stanbol to valuable applications
 
Nuxeo World Session: Semantic Technologies - Update on Recent Research
Nuxeo World Session: Semantic Technologies - Update on Recent ResearchNuxeo World Session: Semantic Technologies - Update on Recent Research
Nuxeo World Session: Semantic Technologies - Update on Recent Research
 
Open Cloud Computing @ GTLL
Open Cloud Computing @ GTLLOpen Cloud Computing @ GTLL
Open Cloud Computing @ GTLL
 
Challenges du recrutement pour un editeur de logiciel libre
Challenges du recrutement pour un editeur de logiciel libreChallenges du recrutement pour un editeur de logiciel libre
Challenges du recrutement pour un editeur de logiciel libre
 
ECM Meets the Semantic Web - Nuxeo World 2011
ECM Meets the Semantic Web - Nuxeo World 2011ECM Meets the Semantic Web - Nuxeo World 2011
ECM Meets the Semantic Web - Nuxeo World 2011
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
 
Eclipse Apogee and Nuxeo RCP
Eclipse Apogee and Nuxeo RCPEclipse Apogee and Nuxeo RCP
Eclipse Apogee and Nuxeo RCP
 
Nuxeo at 10
Nuxeo at 10Nuxeo at 10
Nuxeo at 10
 
Le Marché du Logiciel Libre en France en 2010
Le Marché du Logiciel Libre en France en 2010Le Marché du Logiciel Libre en France en 2010
Le Marché du Logiciel Libre en France en 2010
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
 
GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011
 
A Quick Tour of JVM Languages
A Quick Tour of JVM LanguagesA Quick Tour of JVM Languages
A Quick Tour of JVM Languages
 
Nuxeo on the Cloud - Nuxeo World 2011
Nuxeo on the Cloud - Nuxeo World 2011Nuxeo on the Cloud - Nuxeo World 2011
Nuxeo on the Cloud - Nuxeo World 2011
 
Cours ECM à l'EPITA
Cours ECM à l'EPITACours ECM à l'EPITA
Cours ECM à l'EPITA
 
Nuxeo ECM - Architecture Overview - May 2008
Nuxeo ECM - Architecture Overview - May 2008Nuxeo ECM - Architecture Overview - May 2008
Nuxeo ECM - Architecture Overview - May 2008
 

Similar to Lessons learned Building Nuxeo EP - Component-based, open source ECM platform

A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...
A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...
A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...
Nuxeo
 
WCM-5 WCM Solutions with Drupal and Alfresco
WCM-5 WCM Solutions with Drupal and AlfrescoWCM-5 WCM Solutions with Drupal and Alfresco
WCM-5 WCM Solutions with Drupal and Alfresco
Alfresco Software
 
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
Nuxeo
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
Bert Poller
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
netc2012
 
Eclipse Apricot
Eclipse ApricotEclipse Apricot
Eclipse Apricot
Nuxeo
 
Partners and Community Webinar - Nuxeo Studio
Partners and Community Webinar - Nuxeo StudioPartners and Community Webinar - Nuxeo Studio
Partners and Community Webinar - Nuxeo Studio
Nuxeo
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
yalini97
 
Think BIG, Spend Small A Look at how WSO2 Can Help Scale Up with Less Cost
Think BIG, Spend Small A Look at how WSO2 Can Help Scale Up with Less Cost Think BIG, Spend Small A Look at how WSO2 Can Help Scale Up with Less Cost
Think BIG, Spend Small A Look at how WSO2 Can Help Scale Up with Less Cost
WSO2
 
Eclipse Enterprise Content Repository (ECR)
Eclipse Enterprise Content Repository (ECR)Eclipse Enterprise Content Repository (ECR)
Eclipse Enterprise Content Repository (ECR)
Florent Guillaume
 
{code} and containers
{code} and containers{code} and containers
{code} and containers
{code} by Dell EMC
 
WebLogic Event Server - Alexandre Alves, BEA
WebLogic Event Server - Alexandre Alves, BEAWebLogic Event Server - Alexandre Alves, BEA
WebLogic Event Server - Alexandre Alves, BEA
mfrancis
 
Nuxeo Platform LTS 2015 Highlights
Nuxeo Platform LTS 2015 HighlightsNuxeo Platform LTS 2015 Highlights
Nuxeo Platform LTS 2015 Highlights
Nuxeo
 
Nuxeo platform in 15mn
Nuxeo platform in 15mnNuxeo platform in 15mn
Nuxeo platform in 15mn
Nuxeo
 
An Introduction to IaaS Framework
An Introduction to IaaS FrameworkAn Introduction to IaaS Framework
An Introduction to IaaS Framework
Inocybe Technologies inc.
 
Eclipse plug in development
Eclipse plug in developmentEclipse plug in development
Eclipse plug in development
Martin Toshev
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stack
Johan Edstrom
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2
 
Introduction_to_NET.ppt
Introduction_to_NET.pptIntroduction_to_NET.ppt
Introduction_to_NET.ppt
Darwin Terraza
 
Status Quo on the automation support in SOA Suite OGhTech17
Status Quo on the automation support in SOA Suite OGhTech17Status Quo on the automation support in SOA Suite OGhTech17
Status Quo on the automation support in SOA Suite OGhTech17
Jon Petter Hjulstad
 

Similar to Lessons learned Building Nuxeo EP - Component-based, open source ECM platform (20)

A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...
A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...
A Platform Approach to Enterprise Content Management with Eclipse Apricot, CM...
 
WCM-5 WCM Solutions with Drupal and Alfresco
WCM-5 WCM Solutions with Drupal and AlfrescoWCM-5 WCM Solutions with Drupal and Alfresco
WCM-5 WCM Solutions with Drupal and Alfresco
 
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
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
 
Eclipse Apricot
Eclipse ApricotEclipse Apricot
Eclipse Apricot
 
Partners and Community Webinar - Nuxeo Studio
Partners and Community Webinar - Nuxeo StudioPartners and Community Webinar - Nuxeo Studio
Partners and Community Webinar - Nuxeo Studio
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 
Think BIG, Spend Small A Look at how WSO2 Can Help Scale Up with Less Cost
Think BIG, Spend Small A Look at how WSO2 Can Help Scale Up with Less Cost Think BIG, Spend Small A Look at how WSO2 Can Help Scale Up with Less Cost
Think BIG, Spend Small A Look at how WSO2 Can Help Scale Up with Less Cost
 
Eclipse Enterprise Content Repository (ECR)
Eclipse Enterprise Content Repository (ECR)Eclipse Enterprise Content Repository (ECR)
Eclipse Enterprise Content Repository (ECR)
 
{code} and containers
{code} and containers{code} and containers
{code} and containers
 
WebLogic Event Server - Alexandre Alves, BEA
WebLogic Event Server - Alexandre Alves, BEAWebLogic Event Server - Alexandre Alves, BEA
WebLogic Event Server - Alexandre Alves, BEA
 
Nuxeo Platform LTS 2015 Highlights
Nuxeo Platform LTS 2015 HighlightsNuxeo Platform LTS 2015 Highlights
Nuxeo Platform LTS 2015 Highlights
 
Nuxeo platform in 15mn
Nuxeo platform in 15mnNuxeo platform in 15mn
Nuxeo platform in 15mn
 
An Introduction to IaaS Framework
An Introduction to IaaS FrameworkAn Introduction to IaaS Framework
An Introduction to IaaS Framework
 
Eclipse plug in development
Eclipse plug in developmentEclipse plug in development
Eclipse plug in development
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stack
 
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...WSO2 Intro Webinar -  Simplifying Enterprise Integration with Configurable WS...
WSO2 Intro Webinar - Simplifying Enterprise Integration with Configurable WS...
 
Introduction_to_NET.ppt
Introduction_to_NET.pptIntroduction_to_NET.ppt
Introduction_to_NET.ppt
 
Status Quo on the automation support in SOA Suite OGhTech17
Status Quo on the automation support in SOA Suite OGhTech17Status Quo on the automation support in SOA Suite OGhTech17
Status Quo on the automation support in SOA Suite OGhTech17
 

More from 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 Companies
Nuxeo
 
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
Nuxeo
 
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
Nuxeo
 
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
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
Nuxeo
 
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
Nuxeo
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021
Nuxeo
 
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
Nuxeo
 
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
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
Nuxeo
 
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 Competition
Nuxeo
 
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 DAM
Nuxeo
 
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 Beyond
Nuxeo
 
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
Nuxeo
 
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
Nuxeo
 
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
Nuxeo
 
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
Nuxeo
 

More from 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
 

Recently uploaded

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
jpupo2018
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 

Recently uploaded (20)

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 

Lessons learned Building Nuxeo EP - Component-based, open source ECM platform

  • 1. Lessons Learned Building Nuxeo EP Stefane Fermigier, PhD - Nuxeo Presented at ICSSEA 2010, Dec. 8 2010
  • 3. Who we are • Company started in 2000 • 2002-2005: Zope-based CPS project • 2005: First Eclipse RCP based project • 2006-now: Full switch to Java (Java EE 5 and OSGi) • 2009-now: Business model migration from service company to an OSS Software Vendor
  • 4. What is ECM? ECM, a concept that emerged in the early 2000s, represents the integrated enterprise-wide management of all forms of non-structured (and sometimes, semi-structured) content, including their metadata, across their whole lifecycle, supported by appropriate technologies and administrative infrastructure.
  • 5. 5 Search & Find 1 Capture & Create 4 Publish & Archive 2 Share & Collaborate 3 Process & Review
  • 6. What are CEVA? • 4LA invented by Gartner in 2006: “Content Enabled Vertical Applications” • “CEVAs typically help to automate complex processes that previously required workers to manually sort through paper documents and other forms of content (in effect, a way to manage down costs of exception handling) and optimize the remainder of the work.”
  • 7. Business Goals • First, create a MVP (minimal viable product) to ensure company sustainability • Base it on a clean, extensible architecture • With the end goal of enabling the creation of a rich ecosystem of extensions and application profiles
  • 8. Nuxeo CPS • Content management and portal platform • Developed from 2002 to 2005 • Built on top of the Zope and CMF (Content Management Framework) open source frameworks • Architecture: pluggable components (“Products”) and events
  • 9. Switch to Java: Why? • Technical reasons: • ZODB doesn’t scale well in terms of data volume • Dymanic languages don’t scale well in terms of managing complexity (> 100 KLOC) • Business reasons: • Java makes it much easier to work with mainstream systems integrators
  • 10. A Few Numbers • Nuxeo EP+DM is a 400 KLOC Java project • Comprises ~190 independent modules (JARs) • Developed over the last 4 1/2 years by a core team of 20 developers and 50 community contributors • Has generated ~20 MEUR of revenue for Nuxeo, ~50 MEUR for partners
  • 11. Business Constraints and Requirements
  • 12. Business Vision • Address the full ECM scope • Initial focus on Document Management • Architecture must be extensible and modular • Enable and sustain the Ecosystem • Easy to work with, designed for participation
  • 13. Business Vision • Low barrier of entry for: • End-users (e.g. pleasant UI) • Developers (e.g. clean model and API, leverage existing knowledge) • Sysadmins / operations • “Enterprise-class” software • 10 000s of users, millions of documents
  • 14. Our Original Roadmap • Don't reinvent the wheel • Leverage existing standards, work on new ones (ex: JCR2, CMIS) • Build on proven open source libraries(JBoss, Apache, Sun, Eclipse) • Use a robust software engineering process • Make it transparent for our community
  • 15. Core ECM • Document types definition and management • Storage of the documents and associated metadata • Document life cycle and versioning • Access control • Indexing + query language, must enable complex queries on both full-text and metadata
  • 16. Higher-Level ECM Services • Workflow • Transformation and rendering • User management • User interface • A rich set of HTTP-based APIs exposed to third-party developers and integrators (WS-* and REST)
  • 17. 2.0 and 3.0 (Ongoing) • Tagging and folksonomies • Lightweight collab (wikis) and publishing (blogs) • Social networking (“friending” or “following” colleagues or business partners, user timelines) • Collaborative filtering • Mobile and disconnected access • Semantic content categorization and named entities extractions
  • 19. Nuxeo ECM - Our Approach Applications Correspondence Contracts Invoice Marketing Asset Management Management Processing Management Business Solutions Construction Media Government Life Sciences Digital Case Horizontal Document Records Content Asset Management Packages Management Management Aggregator Management Framework Nuxeo Enterprise Platform Platform: Complete set of components covering all aspects of ECM Content Infrastructure Nuxeo Core Lightweight, scalable, embeddable content repository 19
  • 21. DAM
  • 24. The Strongest Requirement • Applications (horizontal, vertical or custom) must be buildable just by assembling components (packaged as Java JARs) • Architecture must allow behavior modification at the repository level (e.g. new document type), at the UI level (e.g. new actions), and at the service level (e.g. adding new services) without recompilation
  • 26. Standards Choice • Switch to Java was motivated by the desire to be more “standards-compliant” • But the problem with standards, is that there are too many to choose from! • Old vs. new or emerging • Open standards vs. de facto standards • Overlapping standards (hardest issue!)
  • 27. Initial Standards • Java EE 5, as the structuring general framework for the server-based application (but not for the core services) • OSGi, as a packaging model for components • The JCR (Java Content Repository), as the model API to manage content and metadata at the most basic level
  • 28. Initial Standards • JSF as the presentation layer (part of Java EE 5) • JBoss Seam, a web presentation framework that extends JSF, because we felt would provide a much improved developer experience over the “pure Java EE 5” model
  • 29. Notes • Java EE 5 was really new and still “wet” at the time • Seam was not a standard, but its concepts eventually merged into one (JCDI) • In 2006 OSGi had credibility in the embedded and rich client spaces, not yet on the server • We dropped JCR support in 2010
  • 30. Open Source Libraries • The Open Source Java ecosystem started to grow in the late 90s (Apache) and had a huge boost in the early 00s (Eclipse, JBoss, OW2, etc.) • Like with standards, there are usually many OSS implementations to choose from • FYI: Nuxeo EP now embeds more that 200 external open source libraries!
  • 31. Choosing an OSS Library • License compatibility with the LGPL (this excludes proprietary and GPL licenses) • Compliance to a chosen standard • Quality, as witnessed by visual inspection of the source code • Confidence in the development process (e.g. are there unit tests?) and the community behind the project
  • 32. Benefits and Challenges of Using OSS Libraries • With OSS, it’s easier to evaluate options • Forking a library is sometimes the only way to fix a bug or add a missing functionality • But it comes with a tremendous price because now you have to maintain your own branch • Becoming a contributor is also sometimes needed, but comes at a price too • Risk of “JAR hell” (conflicting libraries reqs)
  • 33. Lessons Learned • Allow users of our platform to extend it without touching its source code • Or, even better, without writing code at all! • Keep your options open, but don’t over- engineer flexibility
  • 35. Architectural Solutions • Layered architecture • High-level APIs • Component system • Extension points • Event bus
  • 36. Layer Cake Nuxeo EP Architecture Nuxeo UI Frameworks Flexible choice of interfaces Nuxeo ECM Services Modular set of content services Nuxeo Core Advanced content repository Nuxeo Runtime Component and service model
  • 37. APIs
  • 39. OSGi in Theory • OSGi is a component system developed initially for the embedded systems industry • Adopted by Eclipse for Eclipse 3.0 (2005) • Both a module system and service platform (but we’re currently only using the former) • Modules, or “bundles” are just JARs with a special MANIFEST
  • 40. OSGi in Theory • An OSGi “container” takes care of component activation • Bundles describe their own imports (dependencies) and exports (exposed API) • Container can also take care of provisioning • Class loader isolation can take care of “JAR Hell”
  • 41. OSGi at Nuxeo • We package our components as OSGi bundles • We have our own “OSGi-like” adapter for app servers (JBoss, Jetty, Tomcat, Glassfish) • Most of our components can also run on Eclipse Equinox (for RCP apps) • We have our own service registry, but it’s currently not based on OSGi • We don’t provide class loader isolation
  • 42. OSGi at Nuxeo • Goal is to be able to run everything on a “real” OSGi container in 2011 • ... and to fully leverage the OSGi service stack at the same time • Including service registry, hot-reload, class isolation, etc. • Biggest conceptual issue: overlap with Java EE
  • 43. Plugins and Extension Points • Inspired by the Eclipse architecture • Eclipse = a core runtime engine + a set of plugins • Plugin: the smallest extensible unit to contribute additional functions to the system • Extension points: boundaries between plug-ins • A plugin (bundle) can contribute either configuration (pure XML contribution) or code (XML + Java)
  • 45. Note • This “core + extensions” pattern is very common in successful open source projects • Linux kernel + drivers (modules) • Firefox + plugins • Emacs + Emacs LISP macros • It’s a key to enabling an architecture of participation
  • 46. Event Bus • EventHandlers aka listeners • Synchronous / PostCommit / Asynchronous • Easily contributed (Java / script / MDB) • Great solution for • Glueing together independent components • Enforcing business rules (synchronous inline) • Pushing/getting data to/from external systems
  • 49. Goals • Must enable the participation of third party contributors (partners, community) • Must improve synchronization between custom developments and OSS projects • Agile development practices (XP, TDD) already used at Nuxeo since 2001 or so • Must complement them with simple, efficient and scalable project management practices
  • 54. I = Issue Tracker
  • 55. M = Mailing List (+ foruM)
  • 56. “Every successful open source project I know uses PRIM. Every closed source project I know, doesn't. People wonder how open source projects manage to create high-quality products without managers or accountability. The answer: we're accountable to our infrastructure. PRIM is the open source secret sauce.” Ted Husted http://jroller.com/TedHusted/entry/prim
  • 58. Tools • Mercurial (distributed SCM) • Maven (Dependency mngt, build, packaging, releasing) • Hudson (Continuous integration) • Jira (Bug / task tracking, Scrum iteration backlogs)
  • 60. More Tools • IDEs (Eclipse mostly) • Testing (JUnit, Selenium, WebDriver) • Static code analysis (FindBugs, IDEA inspections, Checkstyle, Enerjy) • Various profilers and debuggers
  • 61. Outstanding Issues • CI at our level is very resource-intensive (10 servers farm) • It’s hard (read, impossible) to test UI without a browser • OTOH “Plain” Selenium test are hard to maintain • Some pieces (Maven repository, Selenium testing) are fragile, and introduce heisenbugs
  • 63. Open Source, Java-Based • Some Java-baed open source WCM or E2.0 platforms (XWiki, Jahia...) have developed ad- hoc component systems similar to ours • Alfresco is an ECM solution with a static architecture based on Spring, which makes it harder to customize and extend • Apache Sling is a framework based on JCR and OSGi, but doesn’t come with complete solutions and seems more focussed on WCM
  • 64. Open Source, Scripting Languages Based • Drupal, Joomla, WordPress (PHP), Plone (Python), are examples of extensible content management platforms based on scripting languages with large ecosystems • Plugins usually rely on callbacks functions / methods instead of ext. points and events • Plugins can break due to API changes and lack of statical verification of compatibility
  • 65. Proprietary • Proprietary software is, by definition, harder to study and tear apart • But the general view is that big name vendors products (Documentum, Open Text, FileNet) are based on mixes of old technologies patched together after various acquisitions, and harder to make evolve and to program to for modern developers
  • 67. Ongoing Work • Simplifying the developer experience: faster code/test turnaround, simpler web front end development using the more recent JAX-RS standard or Google Web Toolkit (GWT). • Development of business-oriented RESTful APIs to allow high-level interaction with the content, and eventually business application development by non-technical users (cf. Nuxeo Studio).
  • 69. Ongoing Work • Replication, both in a LAN (for scalability and fault tolerance) and WAN (for replication between remote data centers, or between a server and a desktop or mobile client) contexts • Social integration (using OpenSocial) • Further work on semantic technologies
  • 70. Ongoing Work • Porting the platform to the Cloud, and exposing it as a PaaS service • Work on mobile ECM, with clients for platforms such as the iPhone/iPad, Android and Blackberry operating systems • Bringing Nuxeo EP to Java EE 6 and full OSGi compliance
  • 72. Key Findings • The Nuxeo EP architecture fits both the OSS “architecture of participation” vision and our business model and goals • Main effort has now moved from the platform to its periphery (extensions, applications, development and operation tools), as enabled by the architecture • Still work to do on some key standards compliance aspects (OSGi, Java EE 6, CMIS...)
  • 73. More Information • www.nuxeo.com • www.nuxeo.org • blogs.nuxeo.com

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n