Nuxeo ECM Platform - Technical Overview

download Nuxeo ECM Platform - Technical Overview

If you can't read please download the document

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