Top Banner
Florent Guillaume — 18 nov 2010 Migrating to Nuxeo Planning, practice, customization and architectural changes
38
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Nuxeo World Session: Migrating to Nuxeo

Florent Guillaume — 18 nov 2010

Migrating to NuxeoPlanning, practice, customization

and architectural changes

Page 2: Nuxeo World Session: Migrating to Nuxeo

Agenda

2

• Planning structural changes

• Exporting data from the legacy system

• Importing data into Nuxeo

• Connecting Nuxeo to existing data sources

• Integrating with third-party applications

• Customizing logic and UI

• Sample use case

Page 3: Nuxeo World Session: Migrating to Nuxeo

Planning Structural Changes

3

Page 4: Nuxeo World Session: Migrating to Nuxeo

Filing Hierarchy

• Folders and files

• Visible tree or access through search

• Simple hierarchy or proxy-based multi-filing

4

Folder(root)

Folderfoo

Folderbar

Folderblah

Folderstuff

Foldergee

Doc123

Doc456

Doc789

Doc001

Page 5: Nuxeo World Session: Migrating to Nuxeo

Document Types

• Identify common metadata

• Additional attachements

• Minimize the number of types

• “Nature” field can distinguish similar types

5

Page 6: Nuxeo World Session: Migrating to Nuxeo

Security Policies

• Users, groups

• Inheritance / blocking based on hierarchy

• Metadata-based security policies

• Make sure that searches are efficient

• Be able to implement the read policy in NXQL

• If necessary precompute some fields

6

Page 7: Nuxeo World Session: Migrating to Nuxeo

Life Cycles

• Model workflow states

• Identify allowed transitions between states

7

Draft

Approved

Archived

Page 8: Nuxeo World Session: Migrating to Nuxeo

Relationships

• Depends On / Is Part Of / Supersedes / ...

• Can hold metadata as well

• Dates

• Users

• Comments

• ...

8

Page 9: Nuxeo World Session: Migrating to Nuxeo

Nuxeo Studio

• Document Types

• Life Cycles

• Permission Definition

• Vocabularies

9

Page 10: Nuxeo World Session: Migrating to Nuxeo

Exporting Data from the Legacy System

10

Page 11: Nuxeo World Session: Migrating to Nuxeo

Exporting Data from the Legacy System

• Depends on the legacy system

• Any format is acceptable

• But needs a deterministic way to re-read the data

• Files

• Metadata

• XML, CSV, .properties

11

Page 12: Nuxeo World Session: Migrating to Nuxeo

Keep Third-PartyData Sources

• Nuxeo will connect to them

12

Page 13: Nuxeo World Session: Migrating to Nuxeo

Importing Data into Nuxeo

13

Page 14: Nuxeo World Session: Migrating to Nuxeo

Importing

14

Page 15: Nuxeo World Session: Migrating to Nuxeo

Manual Import

15

• Drag & Drop

• Several plugins available

• For small sets of files

• Slow

• Single-threaded

• Big overhead

• No nice transactional behavior

Page 16: Nuxeo World Session: Migrating to Nuxeo

HTTP-Based Import

16

• Filesystem-like import

• Windows SharePoint Services (WSS)

• WebDAV

• With rich metadata

• CMIS

• Java, Python, PHP, ...

• Ad-hoc REST APIs

Page 17: Nuxeo World Session: Migrating to Nuxeo

Importer module

• nuxeo-­‐platform-­‐importer• bulk

• transactions

• multi-threaded

• pluggable

• filesystem reader (files, CSV, XML, .properties)

• document model factory

• Java or JAX-RS

17

Page 18: Nuxeo World Session: Migrating to Nuxeo

SQL-Level Import

• Documents: Nuxeo VCS tables

• Hierarchy

• One table per schema

• Multi-valued and complex properties

• Files

• ACLs

• Audit tables

• Directory tables 18

Page 19: Nuxeo World Session: Migrating to Nuxeo

Connecting Nuxeo to Existing Data Sources

19

Page 20: Nuxeo World Session: Migrating to Nuxeo

Nuxeo Authentication

• Based on JAAS

• Authentication filter for web access

• Login Module

• Pluggable to get user’s identity

• Basic Authentication, HTTP Form

• SSO (Trust portal, NTLM, CAS, Shibboleth, ClearTrust)

• Pluggable to validate user credentials

• Validate against directory or trust SSO20

Page 21: Nuxeo World Session: Migrating to Nuxeo

Nuxeo Users and Groups

21

• Nuxeo Directory abstraction

• LDAP / Microsoft Active Directory

• SQL tables

• Multi-Directories

• Custom Directory connector

Page 22: Nuxeo World Session: Migrating to Nuxeo

Reference Data

22

• Nuxeo Directories, Vocabularies

• Direct use of an existing SQL table

• New SQL view if some adaptations are needed

• Nightly export to a Nuxeo-specific table

• Directory connector to acces data served by a Web Service (get + search)

• Direct JDBC / JPA access

Page 23: Nuxeo World Session: Migrating to Nuxeo

Back-Office Applications

• Always project-specific

• Write connectors

• SOAP, REST, HTTP, TCP, Filesystem, ...

• Use Directory API when it makes sense

23

Page 24: Nuxeo World Session: Migrating to Nuxeo

Integrating withThird-Party Applications

24

Page 25: Nuxeo World Session: Migrating to Nuxeo

Push to Other Systems

25

• Send data to other systems

• Event Listeners

• Synchronous, asynchronous or post-commit

• May be scheduled

Page 26: Nuxeo World Session: Migrating to Nuxeo

Pull by Other Systems

26

• REST

• Nuxeo Operations

• CMIS

• JAX-RS (WebEngine)

• SOAP

• CMIS

• EJB + Annotations

Page 27: Nuxeo World Session: Migrating to Nuxeo

Bridge to Other Systems

• JMS event bridge

• ESB

27

Page 28: Nuxeo World Session: Migrating to Nuxeo

Example Third-Party Applications

• External indexers

• Exalead, Sinequa, Antidot, Arisem

• Portal

• Nuxeo as a storage engine

• CRM

• ERP

• SAP, Siebel28

Page 29: Nuxeo World Session: Migrating to Nuxeo

Customizing Logic and UI

29

Page 30: Nuxeo World Session: Migrating to Nuxeo

Nuxeo Themes

• Styles and CSS

• Page layout

• Perspectives

• Negotiation

• WYSIWYG editor

• Available for:

• WebApp (JSF)

• WebEngine (FreeMarker)30

Page 31: Nuxeo World Session: Migrating to Nuxeo

Actions

• Content Automation

• Tabs, sub-tabs

• Buttons

• Links

• Have them depend on:

• types, facets, rights, sections

• arbitrary conditions31

Page 32: Nuxeo World Session: Migrating to Nuxeo

Flexible UI Building Blocks

• Nuxeo Themes

• Layouts

• Forms, Widgets

• Content Views

• Page Providers

• Smart Search

32

Page 33: Nuxeo World Session: Migrating to Nuxeo

Nuxeo Studio

• Application Branding

• Views / Forms

• Content Automation Chains

• UI Button / Event Reactor

• Search Form

• Content Templates

• Virtual Navigation33

Page 34: Nuxeo World Session: Migrating to Nuxeo

Sample Use Case(based on a true story)

34

Page 35: Nuxeo World Session: Migrating to Nuxeo

Legacy Architecture

35

Page 36: Nuxeo World Session: Migrating to Nuxeo

Legacy Architecture

36

• Problems and limitations• Custom WebApp is hard to maintain

• “fork” from the original web top

• direct access to external data providers

• Publishing is slow• XML export

• Data is duplicated

• Performances are very bad• all security checks and profiling are done by the portal

• can not support more than 50,000 documents

Page 37: Nuxeo World Session: Migrating to Nuxeo

Nuxeo Architecture

37

Page 38: Nuxeo World Session: Migrating to Nuxeo

Nuxeo Architecture

• Far less specific code

• easier maintenance

• end to end POC worked in a few days (legacy implementation took months to work)

• No data duplication

• Uniform security model

• No performance issue

• validated for 3,000,000 documents on single server38