Nuxeo EP
Introduction to Nuxeo Enterprise PlatformNovember 2010
Thierry Delprat
Agenda
Nuxeo EP - Platform for ECM
Feature overview
Nuxeo EP Use Cases
Architecture Overview
Focus on Document Repository
Nuxeo Performance
Nuxeo Studio
API and connectors
2010+ Roadmap
Nuxeo EP
A platform for ECM applications
Thierry Delprat
Nuxeo Enterprise Platform
Nuxeo EP provides :
Extensible and configurable ECM services
(Document storage, workflow, indexing, security, relationship
management, )
UI building blocks and frameworks
(Web, RIA, Rich client )
Ready to use pre-packaged applications
(Nuxeo DM, Nuxeo DAM, Nuxeo Case Management Framework ...)
Nuxeo Enterprise Platform
Analyst Review of Nuxeo EP:
Nuxeo EP will help organizations to build ECM applications to enable them to manage growing volumes of content and ensure that they are compliant. This solution will benefit organizations that have a need for transactional or content-centric processes.
Ovum Technology Audit of Nuxeo EP - 2010
Nuxeo Enterprise Platform
Nuxeo EP is flagship content management platform Developed and maintained by Nuxeo and community
Fully Supported with Connect Subscription
Consulting and Training from Nuxeo and Galaxy Partners
Nuxeo EP is the foundation for content apps All Nuxeo distributions based on Nuxeo EP
All components and services reside within Nuxeo EP
Nuxeo EP assemblies
JSF
WebEngine
GWT
Flex
RCP
Core
Services
UI frameworks
Features
DMDAMCMFAssemble, configure, package
Nuxeo EP
Nuxeo EP use cases
Turn-key ECM applications (DM, DAM ...)Pre-packaged bundles + configuration services (Nuxeo Studio)
Dedicated business ECM applicationExtension and configuration of Nuxeo platform
OEM or SI integration
Embedding Nuxeo Services in third party appsConfiguration and Nuxeo service stack usage
OEM or ISV providers
Build on a Distribution
Nuxeo DMStandard Nuxeo Distribution
Project specific
configuration( + custom plugin)
Project pluginProject pluginProject pluginCustom typesCustom workflowsCustom UI and themeUsers/Groups config
Custom Distribution
Nuxeo Core bundlesCustom Nuxeo EP
Distribution
Project specific
configuration( + custom plugin)
Project pluginProject pluginProject PluginsCustom TypesCustom WorkflowsCustom UI and ThemeUsers/Group Config
Nuxeo Core bundlesNuxeo UI BundlesNuxeo Core bundlesNuxeo Core bundlesNuxeo Feature BundlesNuxeo Core bundlesNuxeo Core bundlesNuxeo Core BundlesNuxeo Core bundlesNuxeo Core bundlesNuxeo Services Bundles
Full Integration
Your App
Nuxeo
nuxeo-client
Java local or RMI
Nuxeo
nuxeo-services
nuxeo-servicesYour App
Your App
Nuxeo
Http / WebService
JAX-RSJAX-WSCMIS
nuxeo-services
Your App
nuxeo-servicesnuxeo-clientEmbed your application
inside Nuxeo server
Use Nuxeo's service
from your
java application
Use Nuxeo's service
via WebService
Embed Nuxeo's services
inside your application
Automation
Nuxeo Distributions
Nuxeo DMDocument Management and Collaboration
Nuxeo DAMDigital Asset Management
Nuxeo Case Management Information Management and Correspondence control
Nuxeo Correspondence Management
Your custom distribution...
Nuxeo EP
Feature Overview
Thierry Delprat
Nuxeo EP Features
Document ManagementDocument and meta-data model,
Versioning, security, forms, relationships
Multiple navigations: content tree view, metadata, tags, faceted
search
Indexing Full-text indexing
Complete query system
Nuxeo EP Features
Rendition managementPDF, HTML preview, web-view
Pluggable transformers
Annotation managementAnnotate images, documents and videos
Process managementLifecycles, workflows, routing service, page-flows, listeners
Nuxeo EP Features
Mail managementInject or send mails
Manage inbox and distribution
Feed managementGenerate feeds
Collect and store feeds
Nuxeo EP Features
CollaborationNotifications, locking, tasks, comments
OpenSocial: widgets rendering, user preferences
Roadmap for activity stream, user networks
Publishing, SynchronizationSynchronization services between two Nuxeo EP instances
Abstract tree publishing service
Digital Asset ManagementPictures, photos, tiling, metadata, video
Nuxeo EP Features
Simple portalUWA widgets and Google Gadgets OpenSocial
container
Web toolsWiki, blogs, websites
Micro-blogging (late 2010)
Referential managementUsers, groups, virtual groups, vocabularies
Nuxeo EP
Typical Implementation Examples
Thierry Delprat
Document Management
Highly customizable back office (JSF technology)
Case Management
Digital Asset Management
Ajax Web UI (JSF based)
Web Sites
Build web front-ends with Nuxeo WebEngine
Public-Facing Applications
Flex-based Dedicated UIs
Dedicated Business Applications
Feed
ServiceEditorial
Service
Publish
Package
FactoryCustomers
Content
Collect, Store
and Produce
FeedsProduce
StoriesDeliver Collections
to Customer
Nuxeo CWS
Nuxeo MMD
Nuxeo PF
Use RCP for high-production applications
Rich Internet Applications
Use GWT for Rich Internet Applications
Admin & Development Console
Designed for technical usersadministration
mass import
testing
Pluggable commandsvia java
via scripting
Nuxeo EP
Architecture Overview
Thierry Delprat
Nuxeo EP: Technology Overview
100% Java based: Java 6
Can run as POJO or JEE componentsBare Java, Servlet container or JEE App server
OSGi-inspired Bundle and Component systemUse and extend OSGi model
Integrate strong Open Source solutionsJBPM, Shindig, Jena RDF, JackRabbit (optional), ...
Nuxeo EP Architecture Goals
Powerful and clean extension points
Agility to deploy and integrate in complex environments
10 000 foot view
Nuxeo Runtime: component and deployment modelOSGi component model
Extension points for configuration and contribution
Nuxeo Core: document storage servicesembeddable document repository
Nuxeo Services: extensible set of ECM servicesGeneric and configurable services
Nuxeo client technologies: UI building blocks
10 000 foot view
Nuxeo RuntimeNuxeo CoreNuxeo ServicesNuxeo UINuxeo UINuxeo UIComponents and Service model
Document storage
ECM Services
UI building block
3 Layer Architecture
Nuxeo Core
Audit serviceWorkflow serviceConversion serviceComment service.........
Relation serviceTag serviceAnnotation service
JSF/Seam
FrameworkWebEngine
FrameworkAMF
Connector
Presentation
Services
Storage
Nuxeo Runtime
Database and File System
Nuxeo EP distribution
Java container
BinariesMetadataACLHistoryRelationHierarchy
Layered Feature Sets
API BundleFacade BundleCore BundleCore-Contrib BundleUI BundlesViews and Actions for the target UI framework
Service APIs and DTOs
Provide JEE integration
(Security, Transactions, EJB, Remoting ...)
POJO implementation
(Components, Services)
Contributions to the Repository
(Document types, lifecycles, listeners ...)
UI BundlesOne feature
Extension Points
Extension points are used To configure services and
components
(XML contribution)
To extend services and components
(contribute Java code or scripting)
Nuxeo EP uses extension points consistently across the platform
One model for development
Extension Points
Component A
XP A1
XP A2
Bundle A
Component B
Bundle B
XMLConfiguration via
XML contribution
XMLContribute Java Extension
Java
Extension Points
Nuxeo RuntimeNuxeo CoreNuxeo ServicesNuxeo UINuxeo UINuxeo
UIDoc
typesNuxeo UISecurity
policyVersion
policyWorkflowRelationsConnectorLookNavigationactionsPlugPlugPlug
Customization Possibilities
Nuxeo EP easily configurableAlmost all services are
configurable
(Extension Points)
Default Nuxeo DM distribution is very modular
(Extension Points, Theme Manager, Views )
Clean customizations that can be upgraded
Nuxeo Studio
to save time in your implementation projects
to do quick prototyping
Customization Examples
Custom doc types, forms and life-cycles (Nuxeo Studio)
Workflows (Nuxeo Studio partial support)
Enforce policiesListeners, content automation (Nuxeo Studio)
Custom security policies
Provide new UIsUse Themes Manager
Custom tabs, buttons, links, views (Nuxeo Studio)
Easy, Elegant Integration Model
Nuxeo EP provides APIs (remote or local)
Choice of integration paths
Nuxeo EP is based on standardsJava, OSGi, JTA, JAAS, JMS, EJB3, JAX-RS, JAX-WS
Nuxeo Studio and Content Automation is powerfulEasy to define business logic
No need to touch source code
Quick and efficient implementation of business requirements
Integration Examples
Integrate with existing security system or SSONuxeo Authentication stack is completely pluggableBasic auth, 3rd party portal auth, CAS SSO, Clearstream SSO, ...
Fetch documents from NuxeoAutomation client, Java API, WebServices, REST, CMIS
Integrate external services providersContent Automation, Actions, Listeners
Use Nuxeo as a service stack
Integrate into portal
Agile Deployment
Only deploy the needed servicesMake your own distribution
Deploy on multiple serversUse clusters for scale-out / availability
Split in layers for optimizations or security
Deployment transparencyServer side : JBoss / Jetty / Tomcat / Standalone
Client side : Eclipse RCP, OSGi runtime ...
NuxeoAgile Deployment Examples
JBoss AS
Tomcat
jetty
RCP
Production
WebSite
Development
Offline mode
Nuxeo
Standalone
Cluster
Farm
Cloud
NuxeoNuxeoNuxeo
jetty
NuxeoNuxeo
NuxeoNuxeoNuxeoNuxeoNuxeoNuxeo
Nuxeo Clients
Nuxeo Platform
Content apps & WebSites
Productivity-focused business apps
Administration
Business Application
General public
Application
WebEngine
Flex / Air
Eclipse RCP
NXShell
JSF
GWT
Dedicated
RIA
Automation clients
Third party app integration
Nuxeo EP
Nuxeo Core: Document Repository
Thierry Delprat
Documents in Nuxeo
Document is not a simple fileOne document = a set of
fields
(String, Date, File, Complex types ...)
Defined by XSD schemas
Document typesA document type is defined by XSD schemas
Inheritance is supported
Life-cycleDocument type is associated with a Life-cycle
Security
Security always activated
ACL based default security policymultiple-ACL support
ordered ACL support
grant / deny support
ACL inheritance
Additional pluggable security policyimplement custom security (example: metadata based)
Other Nuxeo Core features
Query systemNXQL : SQL-like query supportKeyword search
Full-text search
Content views
CMISQL support
Can use BIRT for BI reporting
Versioning in Nuxeo EPconfigurable versioning policy
configurable versioning storage
Repository Backend
JCR ConnectorStandardized JSR-170 storage (Apache JackRabbit)
SQL and/or file system based storage
Nuxeo Visible Content StoreDedicated native SQL storage
Provides clean SQL mapping
(ie: usable by a DBA or a BI tool)
Multiple databases supported
(PostGreSQL, Oracle, MySQL, MSSQL, H2, Derby)
Advanced Features
Built for performanceLazy-loading, pre-fetching, cache, blob streaming ...
Transaction ManagementExposes JCA connector
Support for operations and manual transaction management
Pluggable event system
Efficient storageSnapshots, automatic deduplication ...
Nuxeo EP
Performance and scalability
Thierry Delprat
Sample Use Cases
The Press Association of FranceMillions of documents, 24/7 support.
Ministry of Defense (Multimedia Document Management System, more than 10 million documents, benchmark with 100 million done)
Benchmark Tools
Real user activity scripts with FunkloadNuxeo's in-house, popular benchmark framework
Memory and processor monitoring
Reporting on requestdiscover bottlenecks and reasons
resource monitoring
Scalability Solutions
For Users and Documents at Large Volume
Clustering
Fragmentation (multi-repository management)
Different configurations for different use-casesACL management optimization
Override queryMaker
Nuxeo EP
Using Nuxeo Studio Hosted Design and Customization Environment
Thierry Delprat
About Nuxeo Studio
Nuxeo Studio is a visual tool for configuring Nuxeo EP distributions
Nuxeo Studio is available as an online service (SaaS)
Nuxeo Studio enables you to configure and adapt your distribution, from document typology to business rules enforcement without any technical (development) skills
Nuxeo Studio saves time, money and ensures long-term maintenance of applications.
Nuxeo Studio Features
Nuxeo Studio 1.4Document types, widgets, layouts and lifecycle
Content-Template
User actions, views, tabs
Content Automation
Vocabularies
Listeners
Permissions
Virtual Navigation, search screen
Workflows
Nuxeo Studio Screenshots
Nuxeo Studio
Next Releases (Studio 1.5, 1.6)Configuration components management
Faceted search configuration
Content views
Support for Nuxeo DAM and Nuxeo CMF
Try it:https://connect.nuxeo.com/nuxeo/site/connect/trial/form
Nuxeo EP
API, Connectors and Integration
Thierry Delprat
APIs to Access Nuxeo EP
Nuxeo
Platform
WSS
JAX-WS
CMIS
JAX-RS
Webdav
CMIS
API
WebServices
API
REST
API
WSS
API
WebDav
API
Nuxeo
Core
Flex /Flash
API
AMF
Java API
(POJO / RMI)
CMIS
API
Automation client
Autom.
CMIS
Standard protocol for ECM repository accessMultiple vendors supporting this Oasis standard
Technology neutral
Nuxeo integration via ChemistryCore contributor in Apache project
Nuxeo backend for Chemistry
Reasons for supporting CMISOpen standards support essential
Allow other applications use the Nuxeo repository
Windows Sharepoint Services
Windows Sharepoint ServicesSet of protocols to communicate with MS Sharepoint
Used by MS Explorer and MS Office
Nuxeo WSS connectorGeneric connector (may be contributed)
Nuxeo backend
Reasons for supporting WSSAllow users to access Nuxeo from Microsoft tools
WebServices
Support several standards for WS stacksJAX-WS: standard SOAP based WebService
JAX-RS: standard REST API binding
Provide the needed toolsAuth, Transactions, WebEngine, Seam integration
Expose some default servicesBrowse, Export, History, Feeds
Operations and Content-Automation exposed in roadmap
Events
Events are triggered for each operationCan be extended for business specific events
Events can be relayed on JMS Topic
EventHandlersSynchronous / PostCommit / Asynchronous
Easily contributed (Java / Script / MDB)
Great solution forenforcing business rules (synchronous inline)
pushing / getting data to/from external systems
Nuxeo Event Bus
External
Application
Nuxeo Enterprise Platform
Synchronous
Listener
Asynchronous
Listener
Nuxeo Event Bus
External
ApplicationExternal
Application
JMS
Bridge
JMS
Call
Notify
Accessing Nuxeo EP Data
Direct access to data auditing (SQL)
Repository data (ie: Documents) JCR (JSR-170) when using JackRabbit backend
Direct SQL access when using Visible Content Store
XML Import/Export serviceDocuments
Audit data
Relations
Importing Data into Nuxeo EP
Rest APISimple POST
Drag & Drop via browser
Automation client
Batch import frameworkManage all technical details
Many samples
Low level SQL batch insert
External Indexers
Nuxeo has already been integrated with several external indexing serversExalead (WebService)
Sinequa (WebService)
Antidot (Rest)
Arisem (WebService)
Standard configurable WebService available
Integrating Nuxeo Services
Can use Nuxeo-Client to access Java services
Use JAX-RS or JAX-WS to use Nuxeo WebServices
Your APP
Nuxeo
nuxeo-servicesnuxeo-client
Java local or RMI
Your APP
Nuxeo
nuxeo-servicesHttp / WebService
JAX-RSJAX-WSCMISAutomation
Integrate into Nuxeo EP
Package a new application as a Nuxeo bundleDeclare OSGi bundle
Use nuxeo-deployer configuration
New bundle can include web resources
(servlets, filters ....)
Nuxeo
nuxeo-servicesYour APP
Connectors
Pre-built connectorsDirectoriesLDAP and SQL Data access
Publish in WCM / Portal / FS ...publisher service
Authentication
Search and Indexing
Importers
Exporters
Nuxeo EP
2010 Roadmap
Thierry Delprat
2010 Roadmap for Nuxeo EP
2010 focus is to make Nuxeo EP more accessibleFor end-usersProvide more distributions of NXP
For power users and integratorsMake setup even easier
Extend Nuxeo Studio capabilities
For Java developersimprove tools and documentation for
developers
Customer projects can impact the Roadmap
Platform Improvements
Semantic extensions (will be available for download in Nuxeo Marketplace November 2010)Automatic categorizationfor text content and pictures
Language detection
Named entities recognition and annotations
Better Windows desktop integrationExtend LiveEdit and WSS integration
MS Outlook integration (can be demoed now)
Platform Improvements
CMIS connectorfinalize compliance with 1.0 ratified OASIS spec
Merged Chemistry and OpenCMIS
Provide extensions to access Nuxeo services
Rules and workflowsIntegrate Drools Rule Engine (available in sandbox)
Improve workflow toolbox
Platform Improvements
Reporting engine integrationPackage Nuxeo / Birt integration
Extend UI tool boxWidgets and Layouts
JSF components
Windows Server integration
Developer Experience
Extend Nuxeo Studio capabilitiesUse Studio UI to add custom business logic
Extend configuration of the default back office UI
Better support for complex form management
Nuxeo Developer EditionBetter Eclipse IDE integration
Fast startup
Extend Extension points hot reload support
Nuxeo Distributions
Distribution system has significant improvementsMany new features have been added to Nuxeo EP but are not part of any distribution (so not visible)
We will improve this to package and release several new distributions
to provide a package wizard for custom distributions
Nuxeo Distributions
Nuxeo DMImprove collaboration tools
Nuxeo DAMContinue to extend video support
Nuxeo Distributions
Nuxeo Case Management (available)Extract Case Management logic
from projects
Nuxeo RM (2011)DOD standard compliant Record Management engine
Nuxeo Distributions
Nuxeo Content AggregatorFeedServer + Data Harvesters + Content repository
Grid integration
Nuxeo Core Server (already available)Repository Server (CMIS,
WSS , Rest, RMI)
Nuxeo Distributions
Nuxeo Core Light-Server (available)Headless and lightweight
Nuxeo server
Nuxeo Desktop editionPackaged Offline Nuxeo DM client
Thank You
Links to Learn More About
Nuxeo EP
Nuxeo.com Product Site
Nuxeo Studio and Connect Support Services
Documentation Center
Discussion Forums