dfs real world examples, best practices mohen final emc world 2010 boston
TRANSCRIPT
Information Intelligence Group
Documentum Foundation Services (DFS) Real World Examples & Best
PracticesMT Mohen
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
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)
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
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
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?
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
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
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
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)
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
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.
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
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
Information Intelligence Group
ESB
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
Information Intelligence Group
DFS Integrations
Information Intelligence Group
Demos
Note: I am using the Documentum Developer Edition for all demos today!
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
Information Intelligence Group
SDF and xCP
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
Information Intelligence Group
DFS and Windows Explorer
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
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
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
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.
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.
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
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
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
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
Information Intelligence Group