nuxeo world session: migrating to nuxeo

Post on 21-Aug-2015

813 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Florent Guillaume — 18 nov 2010

Migrating to NuxeoPlanning, practice, customization

and architectural changes

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

Planning Structural Changes

3

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

Document Types

• Identify common metadata

• Additional attachements

• Minimize the number of types

• “Nature” field can distinguish similar types

5

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

Life Cycles

• Model workflow states

• Identify allowed transitions between states

7

Draft

Approved

Archived

Relationships

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

• Can hold metadata as well

• Dates

• Users

• Comments

• ...

8

Nuxeo Studio

• Document Types

• Life Cycles

• Permission Definition

• Vocabularies

9

Exporting Data from the Legacy System

10

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

Keep Third-PartyData Sources

• Nuxeo will connect to them

12

Importing Data into Nuxeo

13

Importing

14

Manual Import

15

• Drag & Drop

• Several plugins available

• For small sets of files

• Slow

• Single-threaded

• Big overhead

• No nice transactional behavior

HTTP-Based Import

16

• Filesystem-like import

• Windows SharePoint Services (WSS)

• WebDAV

• With rich metadata

• CMIS

• Java, Python, PHP, ...

• Ad-hoc REST APIs

Importer module

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

• transactions

• multi-threaded

• pluggable

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

• document model factory

• Java or JAX-RS

17

SQL-Level Import

• Documents: Nuxeo VCS tables

• Hierarchy

• One table per schema

• Multi-valued and complex properties

• Files

• ACLs

• Audit tables

• Directory tables 18

Connecting Nuxeo to Existing Data Sources

19

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

Nuxeo Users and Groups

21

• Nuxeo Directory abstraction

• LDAP / Microsoft Active Directory

• SQL tables

• Multi-Directories

• Custom Directory connector

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

Back-Office Applications

• Always project-specific

• Write connectors

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

• Use Directory API when it makes sense

23

Integrating withThird-Party Applications

24

Push to Other Systems

25

• Send data to other systems

• Event Listeners

• Synchronous, asynchronous or post-commit

• May be scheduled

Pull by Other Systems

26

• REST

• Nuxeo Operations

• CMIS

• JAX-RS (WebEngine)

• SOAP

• CMIS

• EJB + Annotations

Bridge to Other Systems

• JMS event bridge

• ESB

27

Example Third-Party Applications

• External indexers

• Exalead, Sinequa, Antidot, Arisem

• Portal

• Nuxeo as a storage engine

• CRM

• ERP

• SAP, Siebel28

Customizing Logic and UI

29

Nuxeo Themes

• Styles and CSS

• Page layout

• Perspectives

• Negotiation

• WYSIWYG editor

• Available for:

• WebApp (JSF)

• WebEngine (FreeMarker)30

Actions

• Content Automation

• Tabs, sub-tabs

• Buttons

• Links

• Have them depend on:

• types, facets, rights, sections

• arbitrary conditions31

Flexible UI Building Blocks

• Nuxeo Themes

• Layouts

• Forms, Widgets

• Content Views

• Page Providers

• Smart Search

32

Nuxeo Studio

• Application Branding

• Views / Forms

• Content Automation Chains

• UI Button / Event Reactor

• Search Form

• Content Templates

• Virtual Navigation33

Sample Use Case(based on a true story)

34

Legacy Architecture

35

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

Nuxeo Architecture

37

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

top related