dfs real world examples, best practices mohen final emc world 2010 boston

32
Information Intelligence Group Documentum Foundation Services (DFS) Real World Examples & Best Practices MT Mohen

Upload: pradeep-yamujala

Post on 07-Apr-2015

260 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

Documentum Foundation Services (DFS) Real World Examples & Best

PracticesMT Mohen

Page 2: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

Agenda

• DFS Primer• DFS Content Transfer• DFS Security• DFS Best Practices• DFS Performance• DFS Real World Examples, Demos

– SharePoint (MOSS), Windows Explorer– FLEX 3, JSR168 Portlet/WebApp (Included in source code)– DFS JavaBean and JSP (included in source code)

• Summary

Page 3: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

Overview of ECS and DFS

• Enterprise Content Services (ECS) is an umbrella term– Business (logic) - enable SOA– Promote solution composition

• xCP• Process Builder – for the non-technical business user (services in the

context of business processes)• Composer – for the Documentum solution developer

• Documentum Foundation Services (DFS) is a product offering – Initial ECS package of essential platform services from EMC, SDK

• DFS also embodies common ECS infrastructure– One consistent runtime (DFS), Supports service composition (ECS)– Supports payload scheme and data model (ECS)– Integration with distributed content and unified client facilities (i.e.

ACS/BOCS/UCF)

Page 4: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

What is Documentum Foundation Services?

– Provides access to commonly used functionality

– For example, the Object Service enables the creation, update, and deletion of repository objects

Provides tools that enable the development of custom services

Provides a client library that simplifies the creation of DFS client applications:

A set of tools and services used to build SOA applications that leverage EMC Documentum functionality

Contains a standard set of platform services:

– Contains a well defined API (Application Programmer’s Interface) that is used to make calls to services and process the results

Page 5: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

DFS Services

Object Service– Creating, deleting, copying, moving, updating

objects

Version Control Service– Access and modify certain versions of objects

Query Service– Run queries (DQL) against a repository, then

process results

Schema Service– Retrieve information for the intrinsic schema of

the specific repository, i.e. type information, property information, and value assistance

Lifecycle Service– Attach/remove lifecycles, promote/demote a

document to the next previous state in the lifecycle, retrieve lifecycle information

Task Management Service– Manage individual workflow tasks (accept,

complete, forward, reject, approve)

Search– Primary service used to run full-text and

structured queries against the repository

Query Store Service– Save search criteria (and optionally the result in

a saved query object

Virtual Document Service– Create and update virtual documents

Access Control Service– Create, update, and delete ACL objects

Workflow Service– Starting and stopping workflow templates

(business processes)

Comment Service– Attach/remove comment thread object to/from

existing repository objects

Analytic Service– Analyze

Page 6: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

DFS Trends

• 50% of solutions are .Net based• UCF.Net

– D6.7 (projected)

• More Security Options - SAML and Kerberos• Custom Portals (JSR-168)• Microsoft Office and Explorer integrations• SharePoint (MOSS and WSS) is a huge topic• More demand for XA, JTA based transaction support

OOTB• What about REST, CMIS?

Page 7: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

Enterprise Content Services Overview

DOCUMENTUM WEB SERVICES

Documentum existing Web Services API

Rich set of functionality

DOCUMENTUMFOUNDATIONSERVICES

Interoperability standard for ECM

Allows for basic operations on content

CMIS

Page 8: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

Services Capability Matrix

Services CMIS DFS/DFC

Security Model LDAP LDAP/Other

SOAP Protocol Yes Yes

REST Protocol Yes Planned

Document Object Type Yes Yes

Folder Object Type Yes Yes

Discovery Services Yes (Extended) Yes (Extended)

Object Services Yes (Extended) Yes (Extended)

Relationships Services Yes Yes

Content Stream Services Yes (Basic) Yes (Extended)

Versioning Services Yes (Basic) Yes (Extended)

Navigation Services Yes Yes

Multi-Filing Services Yes Yes

Document Centric Business Process No Optional

RM Services No Optional

Subscription and notification services No Yes

Digital asset management services No Optional

Functional - Taxonomy Custom Optional

Functional - Federation Yes Optional

Page 9: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

Content Transfer

• There are various deployment models for content transfer and DFS

• Key considerations are latency, size of the file, formats, caching needs, BOCS/ACS needs

• Options Include -– HTTP– Base64– UCF– MTOM

Page 10: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

Notable Changes in D6.5/D6.6

• New Services– Virtual Document, ACL– Lifecycle, Comment– Analytics, Task Management– QueryStore

• JBoss 4.2.0• Apache Tomcat support• Support for LWSO• Aspect Support• Services Catalog (Composer)• Native 64-bit support - UCF improvements• Kerberos (D6.6)

Page 11: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

DFS Utilities

• DFS Tester– Viewing WSDL does not always mean DFS is working or

configured correctly– Developed by John Sweeney, EMC

• DFSX (Extensions)– Provides utility classes, based on DFS Object Model

Page 12: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

Performance

• Test Harness is a JMeter extension http://jakarta.apache.org/jmeter/– Custom JMeter Sampler built to invoke DFS using the Java Productivity Layer

• Scalability Test Plan– Determine how response time varies as a function of concurrent sessions.– Transaction arrival rate kept invariant at 1 transaction per second (TPS).– Login sessions (user threads) varied logarithmically from 100 to 103 users.

• Each session used its own unique user-id.

– Response times collected for the following DFS operations.• Create Object• Get Object• Checkout Object• Checkin Object• Update Object• Delete Object

– Report min/average/max response times for each measured operation– One “warm-up” set of transactions flushed through the system to trigger Java

Class loading. Warm-up transactions not recorded.

Page 13: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

Results - Summary by transaction type

Average Response Time by Transaction Type

0

100

200

300

400

500

600

700

800

900

1000

1 User 10 Users 100 Users 1000 Users

Number of Users

Mil

lise

con

ds

Checkout

Update

Delete

Get

Create

Checkin

Page 14: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

DFS File Upload Test ResultsUCF versus MTOM

• File Upload speeds under 50 MB were similar for both transports• UCF was shown to be slightly faster than MTOM

File Upload TimesFile Sizes Under 50 MB - 958 Data Points

0

5,000,000

10,000,000

15,000,000

20,000,000

25,000,000

30,000,000

35,000,000

40,000,000

45,000,000

50,000,000

0 5 10 15 20 25

Upload Time in Seconds

Byte

s T

ran

sfe

rred

UCF

MTOM

Page 15: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

ESB

Page 16: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

DFS Security – Data Flow

LDAP

DCTMMOSS

SharePoint User

DocumentumSharePoint

Super User Account

dm_user object(s)

Documentum User

1. A SharePoint user authenticates into SharePoint

2. They are authorized against Active Directory/LDAP

3. The same user opens up a Documentum WebPart or SharePoint Feature

4. The user’s default credentials are captured from SharePoint/IIS and passed into a Web Services (DFS) call (SSL enabled)

5. DFS makes sure the user is valid

6. Using ticketed login, the query run’s under the dm_user’s account

7. Super user account is used for facilitating impersonation

8. Audit will run if enabled

Page 17: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

DFS Integrations

Page 18: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

Demos

Note: I am using the Documentum Developer Edition for all demos today!

Page 19: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

SharePoint (MOSS) and DFS Example

Develop SharePoint (WSS and MOSS) WebParts and Features

.Net 3.x or higher requiredLeverage DFS .Net productivity layerNo local, all remote requests

SOAP

MOSS

DFS .Net Layer

DFSWebApp

DFS Services

ContentServer

ServerSession

DFC

Page 20: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

SDF and xCP

Page 21: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

Windows Explorer

Explorer Plug-in (.NET Assembly)Explorer Plug-in (.NET Assembly) DFS ServerDFS Server

DocumentumContent ServerDocumentum

Content Server

Documentum

Repository

Folder

Document

Document

Document

Integrates with Windows Exporer

Adds Documentum node to Explorer tree

Adds Documentum icon to Desktop

Integrates with Windows Exporer

Adds Documentum node to Explorer tree

Adds Documentum icon to Desktop

DFS and Windows Explorer

Page 22: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

DFS and Windows Explorer

Page 23: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

DFS and Adobe FLEX Example

Search for content, leverage FLEX UI, DFS Search Service

HTTP LCDS WebApp

Java Services

SOAP

Browser

Flexruntime

DFSWebApp

DFS Services

SOAP

ContentServer

ServerSession

DFC

Page 24: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

...

<mx:RemoteObject id="srv" destination="DFSSearchService">

<mx:method name="getSimpleSearch">

<mx:arguments>

<arg1>{srchCriteria.text}</arg1>

</mx:arguments>

</mx:method>

</mx:RemoteObject>

...

<mx:Button label="Search" click="grid.invalidateList(); srv.getSimpleSearch.send();">

</mx:Button>

...

<mx:DataGrid dataProvider="{srv.getSimpleSearch.lastResult}"

id="grid" width="100%" height="95%" itemClick="itemClickEvent(event);">

...

</mx:DataGrid>

...

</mx:Application>

LCDS

<?xml version="1.0" encoding="UTF-8"?>

<service id="remoting-service"

class="flex.messaging.services.RemotingService">

...

<adapters>

<adapter-definition id="java-object“ class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>

</adapters>

...

<destination id="DFSSearchService">

<properties>

<source>com.emc.dfs.DFSSearchService</source>

</properties>

</destination>

...

</service>

public List getSimpleSearch(String strCriteria) throws Exception {

List list = new ArrayList();

IServiceContext isc = getSimpleServiceContext(d.getRepository(), d.getUsername(), d.getPassword());

ISearchService iss = getService(isc);

...

QueryExecution queryExec = new QueryExecution(startingIndex, maxResults, maxResultsPerSource);

QueryResult queryResult = iss.execute(q, queryExec, null);

for (DataObject dataObject : queryResult.getDataObjects()) {

...

list.add(new DFSObject(objId, objName, objTitle, objOwner, objModDate));

}

...

return list;

}

1

23

4 remoting-config.xml.mxml

com.emc.dfs.DFSSearchService

5

Page 25: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

DFS Best Practices

• Leverage the SDK– .Net/Java interop layers

• Use UCF for ACS/BOCS • QueryMaxResultCount does not default to -1,

it defaults to 100 and setting it to -1 still results in a max of 500. if you expect your query to ever exceed 500 you must cache and cycle through the results.

• DFS is better on a WAN, poor latency

Page 26: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

DFS Best Practices

• If you need access to anything outside of a session, specify the attribute-value “requiresAuthentication=‘false’” on your annotated service implementation

- e.g. list of docbases, list of network locations

- Authentication is required by default to invoke services

• Ensure you explicitly specify your propertyProfile for querying or retrieving objects.

Page 27: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

DFS Best Practices

• When writing services, make sure you return DataPackage for services that return resultsets – use the DFS Data Model

• When validating a returned DataPackage, check to see if it's NULL. If not NULL, check to see if DataObjects is NULL, i.e. DataPackage can be not NULL and still have no results.

Page 28: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

Composer 6.5: Services Catalog Viewer

• Explore services available within the intranet

• Helps users consume/develop/publish DFS Services

• Optional install• Includes manifest file to seed

registry with base DFS Services

Page 29: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

Documentum Services Catalog Repository

• DSCR is a registry for consumer discovery

• DSCR is a separate installer• UDDI v2 standard• Default port is 9010• Run the dfs-publish-utility to

deploy DFS manifest, which is stored in emc-publish-manifest.xml

Page 30: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

Where can I find more information?

• MT Mohen – [email protected]• Come to the CMA PS Booth!

– We like visitors!

• EMC World Website– Source code from this session

• EMC Documentum Developer Website• DFS Development Guide

– EMC CM&A Technical Publications

• DFS Fundamentals– EMC CM&A Educational Services courseware

Page 31: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group

Oliver Twist More

Get the scoop on all Momentum activity at http://bitly.com/MMTM10

Stay connected all year by joining our

Momentum Communities

Page 32: DFS Real World Examples, Best Practices Mohen FINAL EMC World 2010 Boston

Information Intelligence Group