Nuxeo ECM Platform - Technical Overview
-
Upload
nuxeo -
Category
Technology
-
view
5.104 -
download
6
Transcript of Nuxeo ECM Platform - Technical Overview
Thierry Delprat, Jul. 2011
Nuxeo EP: a Technical Overview
Agenda
Nuxeo EP - a platform for ECM
ECM features overview
Architecture overview
Nuxeo Studio
Some NXP usage examples
Focus on Document Repository
API and connectors
Nuxeo Enterprise Platform
An ECM platform for Content Applications
Nuxeo Enterprise Platform
Nuxeo EP provides...Extensible and configurable ECM
services
(Document storage, workflow, audit, indexing, security,
relations)
UI building blocks and frameworks
(Web, RIA, Rich client )
High level frameworks
(Nuxeo CAP, Nuxeo Case Management Framework )
Ready to use pre-packaged applications
(Nuxeo DM, Nuxeo DAM, Nuxeo Correspondence ...)
About Nuxeo EP (NXP)
Nuxeo EP is an enterprise-class content management platform Developed and maintained by Nuxeo and community
Fully supported
With consulting and training available from Nuxeo and a
worldwide network of partners
Nuxeo EP is the foundation for Content AppsAll our products distributions are based on Nuxeo EP
All our components and services reside within Nuxeo EP
Nuxeo EP is...
a set of ECM building blocks
that can be assembled
to do this
or that
Nuxeo EP distributions
Flex
Core
Services
UI frameworks
Features
DMDAMCSCMFAssemble, configure, package
Nuxeo EP
FlexFlexGWTFlexJSFFlexWebEngine
CAP
Nuxeo EP use cases
Turn-key ECM applications (DM, DAM...)Pre-packaged application
Add configuration via Nuxeo Studio
Dedicated business ECM applicationExtension and configuration Nuxeo platform
OEM or SI integration
Embedding Nuxeo Services in third party appsConfiguration and Nuxeo service stack usage
OEM or ISV providers
Build on top of 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 pluginCustom typesCustom workflowsCustom UI and themeUsers/Groups config
Nuxeo Core bundlesNuxeo UI bundlesNuxeo Core bundlesNuxeo Core bundlesNuxeo features bundlesNuxeo Core bundlesNuxeo Core bundlesNuxeo Core bundlesNuxeo Core bundlesNuxeo Core bundlesNuxeo Services bundles
Full integration
Your App
Nuxeo
nuxeo-client
Java Calls
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
Functional onesNuxeo DM
Nuxeo DAM
Nuxeo Correspondence
Turn-key applications
ready to run applications
can be configured via Studio
Nuxeo Distributions
Technical onesNuxeo CAP: Content Application Platform
Nuxeo CMF: Case Management Framework
Nuxeo CS: Core Server
Technical assemblies of Nuxeo bundlesCan be used as is
Can be configured via Studio too
Designed to be used as a frameworki.e. a base infrastructure to build upon
Nuxeo Distributions: CAP
CAP: Content Application PlatformRepository (Nuxeo Core)
Selection of Services and Features
JSF and WebEngine infrastructure
Nuxeo EP
Quick Feature Tour
Nuxeo EP features
Content RepositoryContent Model (schemas, files, metadata, etc.)
Facets and mixins
Versioning, Access Control, Relationships
Multi-axis browsing: content tree, metadata, tags,
etc.
Indexing Full-text indexing
Complete query system
Nuxeo EP features
Rendition managementPDF, HTML preview, web-view
Pluggable transformers
Annotation managementAnnotate images, documents
Process managementLife-cycle, workflows, page-flows, listeners
Nuxeo EP features
Mail managementCapture or send mails
Manage inbox and routing
Feed managementGenerate feeds
Collect and store feeds
Nuxeo EP features
CollaborationNotifications, locking, tasks, comments
OpenSocial
Activity stream, user networks (work in progress)
Publishing, SynchronizationSynchronization services between
two
Nuxeo EP instances
Abstract tree publishing service
Digital asset managementPictures, tiling, meta-data, music, video...
Nuxeo EP features
Personal portal / dashboardOpenSocial container
Web toolswiki, blogs, websites
Referential managementUsers, groups, vocabularies
Nuxeo EP features
AdministrationAdmin CenterManage configuration
Manage monitoring
Manage updates
Delegated administrationSecurity and users
Local configuration
Nuxeo EP features
Available addons via MarketplaceBIRT reporting integration
Semantic entities extraction
Automatic categorization
Bulk importer
Google Search Appliance Connector
...
Nuxeo EP
Some examples implementations
Document Management
Highly customizable back office
Case Management
Digital Assets Management
Web Sites
Build refined web front-ends with WebEngine
Public-Facing Applications
Adobe Flex based dedicated UIs
RIA
Use GWT for Rich Internet Applications
Admin and Dev console
Dedicated to technical usersAdministration
Testing
Direct accessVia Swing App
Via Applet
Pluggable commandsVia Automation
Via scripting
Nuxeo EP
Architecture Overview
Core Technologies
100% based on Java
Can runs as POJO or Java EE componentsBare JVM, servlet container or Java EE App server
OSGi-based Bundle and Component system
Advanced extension technologyOffering a highly dynamic plugin model
Integrates best of breed open source componentsJBoss Seam, jBPM, Apache Shindig, Jena RDF...
Targets of Nuxeo EP architecture
Extensibility & Modularity at heartAt all levels
(from core services to UI itself)
Loose coupling for building large systems
Configure, extend, integrate... don't hack around!
Agility to deploy and integrate in complex environmentsHighly
modular
(choose your distribution)
High adaptable
(run on a bare JVM as well as in Java EE containers)
10 000 feet overview
Nuxeo RuntimeNuxeo CoreNuxeo ServicesNuxeo UINuxeo UINuxeo UIComponent and Extension model
Content Repository
ECM Services
UI building block
10 000 feet overview
Nuxeo Runtime: component and deployment modelOSGi-based component model
Extension points for configuring, extending and binding
components together
Nuxeo Core: advanced content repositoryFull-featured embeddable
repository
Nuxeo ECM Services: extensible content servicesGeneric,
configurable and extensible set of services
Nuxeo UI Technologies: UI building blocks
3 layers architecture
Nuxeo Core
Audit serviceWorkflow serviceConversion serviceComment service.........
Relation serviceTag serviceAnnotation service
JSF/Seam
FrameworkWebEngine
FrameworkGWT
Connector
Presentation
Services
Storage
Nuxeo Runtime
WebServices
Features in layers
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)
to dynamically bind components together
Nuxeo EP uses extension points everywhere
built with its own technology
one model for the whole platform
Extension points
Component A
XP A1
XP A2
Bundle A
Component B
Bundle B
XMLConfiguration via
XML contribution
XMLContribute Java Extension
Java
Customization possibilities
Nuxeo EP is easily configurableAlmost all services are
configurable
(i.e. expose Extension Points)
Default UI (DM, DAM, CMF) is also very modular
(Extension Points, Theme Manager, Views )
Clean customizations that can be upgraded
You can use Nuxeo Studio
to save time in your implementation projects
to make customization easier
to do quick prototyping
Extension points
Nuxeo RuntimeNuxeo CoreNuxeo ServicesNuxeo UINuxeo UINuxeo
UIDoc
typesNuxeo UISecurity
policyVersion
policyWorkflowRelationsConnectorLookNavigationactionsPlugPlugPlug
Customization examples
Custom doc types, forms and life-cycles
Customization examples
Workflows
Enforce policy listeners and content automation
custom security policies
Customization examples
Use Theme ManagerChange page models
Define page layout
Define style
Custom tabs or views
Custom content views
query to extract data
filter options
listing layout
Custom buttons
links or actions
call contextual custom code
Easy, elegant integration model
Nuxeo EP provides Several APIs Remotable/local, Java/language agnostic, different granularity levels...
Several integration paths and levels
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
Easy, elegant integration model
Thanks to this integration modelThere is no need to touch Nuxeo's source code
Quick and efficient implementation of business requirements
Clean and sustainable technical integration in the SI
We think it maters! A lot of external applications may need to produce or consume content from the ECM repository
ECM repositories usually needs to be integrated in the SI
environment (security, audit, monitoring...)
See API section for some examples
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 transparency JBoss / Tomcat / Jetty / OSGi / Standalone
Cloud integration
Deployment examples
Easy clustering
Deployment examples
Use several distributions and
dedicated servers
Deployment examples
Using multiple repositories
Deployment examples
Dedicated VMs
Deployment examples
Client / Server mode
Nuxeo Server
Nuxeo Desktop
Client
Offline / Decentralized mode
Online / Centralized mode
Data Sync
NXP 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
Nuxeo EP
Using Nuxeo Studio
About Nuxeo Studio
Nuxeo Studio is:A visual tool for configuring Nuxeo EP base Apps
Available as an online service (SaaS)
A delivery and deployment channel
(with Nuxeo Update Center)
With Nuxeo Studio you can:Configure and adapt your distributionFrom document typology to business rules enforcement
Without needing development work
Save time and money Focus on your business needs
Ensure long-term maintenance of applications
Nuxeo Studio Features
Nuxeo Studio 1.5 allows you to configure:Document types, widgets, layouts and lifecycle
Content views
Content templates
User actions, views, tabs
Content Automation
Vocabularies
Listeners
Permissions
Virtual Navigation, search screen, faceted search
...
Nuxeo Studio Screenshots
Nuxeo Studio
Coming soon:Configuration components management
Extended support for other distributionsNuxeo DAM and Nuxeo CMF
Better Cloud integration
Try it now:https://connect.nuxeo.com/nuxeo/site/connect/trial/form
Nuxeo EP
About Nuxeo Core: Advanced Content Repository
Nuxeo Document
Documents in Nuxeo
In Nuxeo, a document is not just a 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-cycleA document type is associated with a LifeCycle
Documents in Nuxeo
Facets can be used to qualify documents
(Folderish, Hidden, Commentable )
Facets can be associated With a schema
With a business object adapter
MixinsFacets and Schemas can be added on a per-instance basis
Security
Security in always on
ACL-based default security policyNultiple-ACL support
Ordered ACL support
Grant / deny support
ACL inheritance
Additional pluggable security policyImplement custom security (ex: meta-data based)
Other Core features
Query systemNXQL: SQL-like query supportKeyword search
Full-text search
CMISQL support
Can use BIRT for BI reporting
Versioning in NuxeoConfigurable versioning policy
Configurable versioning storage
Repository backend
Nuxeo Visible Content Store (VCS)Dedicated native SQL storage
Provides clean SQL mapping
(ie: usable by a DBA or a BI tool)
Multiple database vendors support
(PostgreSQL, Oracle, MySQL, MS-SQL, H2, Derby)
Storage adaptersMeta-data and structure: RDBMS (SQL)
Binaries: Filesystem, RDBMS, Amazon S3...
Advanced features
Built for performanceLazy-loading, pre-fetching, cache, blob streaming...
Transaction managementExposes a JCA connector
Support for operations and manual transaction management
Pluggable event system
Efficient storageSnapshotable, automatic deduplication
Supports hot backup and GC
Nuxeo EP
API, Connectors and integration
Java API
All Nuxeo Services are exposed as Java InterfacesAccess to
services is simple
Framework.getService(ServiceInterface.class)
In addition you can also access the underlying Components
Framework.getRuntime().getComponent(name)
In Java EE servers, Java Services can be exposed via RMI
Service APIs
Services can also be exposed via WebServices (with different granularity)
WebService APIs
Ad-Hoc WebService connectors
Automation APIs
Flexible and pluggable REST APIContribute custom operation
Assemble custom chains via Studio / XML
Generic marshalling
Content Oriented APIs
Access Nuxeo RepositoryVia CMIS (uses Apache Chemistry)
Via MS Windows SharePoint Services
Via WebDAV
Events
Events are triggered for each operationCan be extended for business specific events
Events can be relayed on JMS Topic
EventHandlersSynchronous / PostCommit / Asynchronous
Easily contributable (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 Data
Direct access to data auditing (SQL)
Repository data (ie: Documents) Direct SQL access when using VCS
XML Import/Export serviceDocuments
Audit data
Relations
Importing data into Nuxeo
CMIS, WebDAV & WSS
Rest APISimple POST
Drag&Drop via browser
Batch import frameworkManages all technical details (tx, batch size, etc...)
Lot of examples
Low level SQL batch insert (fastest)
Integration examples
Security system, SSO, user management
Integration examples
Authentication and
User management stack
is completely pluggable
Integration examples
CRUD or business operations on documents Use Nuxeo to store all documents or files used by an external business applications
Generate documents and push them in Nuxeo
Java API, WebServices, Automation, Rest, CMIS
Integrate external services providersTransformation or rendering services
Archive services
Transmission services
Service connector, Content Automation, Listeners ...
Integration examples
Use Nuxeo as a service stackEmbed Nuxeo services as a library
Java API, Runtime bootstrap
Integrate with a portal or WCM systemLet the portal fetch feeds
Publish to portals or WCM solutions
Integrate external services as Gadgets App
RSS, OpenSocial, OAuth, Publishing service ...
Integrate into Nuxeo EP
Package your application as Nuxeo BundleDeclare OSGi bundle
Use nuxeo-deployer configuration
Your bundle can include web resources
(servlets, filters ....)
Nuxeo
nuxeo-servicesYour APP
External Indexers
Nuxeo has already been integrated with several external indexing serversExalead (WebService)
Sinequa (WebService)
Antidot (REST)
Arisem (WebService)
Google Search Appliance
Standard configurable WebService available
Thank you!
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline LevelSeventh Outline LevelEighth Outline LevelNinth Outline Level