More Related Content
Similar to attachment_3998 (3).pdf
Similar to attachment_3998 (3).pdf (20)
Recently uploaded
Bus tracking.pptx ,,,,,,,,,,,,,,,,,,,,,,,,,,Bus tracking.pptx ,,,,,,,,,,,,,,,,,,,,,,,,,,bhuyansuprit
attachment_3998 (3).pdf
- 1. 1
© Copyright 2009 EMC Corporation. All rights reserved.
Documentum Foundation
Services (DFS) – Best Practices
and Real World Examples
MT Mohen
- 2. 2
© Copyright 2009 EMC Corporation. All rights reserved.
Agenda
y DFS Primer
– What’s new in D6.5 SP1, Trends
y DFS Content Transfer
y DFS Security
y DFS Best Practices
y DFS Performance
y DFS Real World Examples Demos
– SharePoint (MOSS)
– Windows Explorer
– FLEX 3
– JSR168 Portlet/WebApp (Included in source code)
y Summary
- 3. 3
© Copyright 2009 EMC Corporation. All rights reserved.
Overview of ECS and DFS
y Enterprise Content Services (ECS) is an umbrella term
– Business (logic) services from EMC, its partners, its customers…YOU!
– Enable SOA
– Promote solution composition
ƒ Exchange – online solution marketplace and community
ƒ Process Builder – for the non-technical business user (services in the context of business
processes)
ƒ Composer – for the Documentum solution developer
y Documentum Foundation Services (DFS) is a product offering
– Initial ECS package of essential platform services from EMC
– SDK to support custom service development
y 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)
- 4. 4
© Copyright 2009 EMC Corporation. All rights reserved.
DocumentumRepository
Services
(SBOs)
Your
TBOs
Intrinsic Business
Objects
Core DFC layer – Object-oriented access to server API layer
High-level
Middle-level
Low-level APIs
Content Pkgs Workflow Validation Virtual Document
Operations
Business Objects / Services Layer
DFC
DFC
Platform Stack – Services Layer
Platform Stack – Services Layer
Services Layer Incorporated into
Stack Today
- 5. 5
© Copyright 2009 EMC Corporation. All rights reserved.
Service growth DFS 6.5
y Initial set of core services in 6.0 / SP1 (6)
– Object, Query, Schema, Search, Version Control, Workflow
– SDK content for each
y New services in DFS 6.5 (+7)
– Access Control, Analytics, Comment, Lifecycle, Query Store, Task Mgmt, Virtual
Document
– SDK content for each
y Additional new services not packaged with DFS 6.5 (+10)
– Content Delivery, Electronic Signature, ERP Integration, Federated Proxy, Formal
Record, Library Request, Policy, Profile (CTS), Retention Markup, Transformation
(CTS)
y Over 300+ Java web services methods
- 6. 6
© Copyright 2009 EMC Corporation. All rights reserved.
DFS Trends
y 50% of solutions are .Net based
y UCF.Net
– D6.5 SP2
y REST
y More Security Options - SAML and Kerberos
y Custom Portals (JSR-168)
y Microsoft Office and Explorer integrations
y SharePoint (MOSS and WSS) is a huge topic
y xDB support and other XML based methods
y More demand for XA, JTA based transaction support OOTB
- 7. 7
© Copyright 2009 EMC Corporation. All rights reserved.
Content Transfer
y There are various deployment models for content transfer and DFS
y Key considerations are latency, size of the file, formats, caching needs,
BOCS/ACS needs
y Options Include -
– HTTP
– Base64
– UCF
– MTOM
– UCF.Net?
- 8. 8
© Copyright 2009 EMC Corporation. All rights reserved.
Notable Changes in D6.5 SP1…
y New Services
– Virtual Document, ACL
– Lifecycle, Comment
– Analytics, Task Management
– QueryStore
y JBoss 4.2.0
y Apache Tomcat support
y Support for LWSO
y Aspect Support
y Services Catalog (Composer)
y Native 64-bit support
y UCF improvements
- 9. 9
© Copyright 2009 EMC Corporation. All rights reserved.
Performance
y Test Harness is a JMeter extension http://jakarta.apache.org/jmeter/
– Custom JMeter Sampler built to invoke DFS using the Java Productivity Layer
– Easily configurable through properties
y 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.
- 10. 10
© Copyright 2009 EMC Corporation. All rights reserved.
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
Milliseconds
Checkout
Update
Delete
Get
Create
Checkin
- 11. 11
© Copyright 2009 EMC Corporation. All rights reserved.
Results
y When Sessions are increased by a
factor of 1000…
– Average Response times increase by a
factor approximately 2x.
– Measurements were taken from virtual
machines without tuning.
– 90th Percentile 1000 Session Response
Time: 830 Milliseconds
1 0 0 0 C o n c u r r e n t S e s s io n
R e s p o n s e T im e D is t r ib u t io n
A ll T r a n s a c t io n T y p e s
0
5 0 0 0
1 0 0 0 0
1 5 0 0 0
2 0 0 0 0
2 5 0 0 0
1 3 7 7 7 5 3 1 1 2 9 1 5 0 5 1 8 8 1 2 2 5 7 2 6 3 3 3 0 0 9 3 3 8 5 3 7 6 1 4 1 3 7 4 5 1 3 4 8 8 9 5 2 6 5 5 6 4 1 6 0 1 7 6 3 9 3 6 7 6 9 7 1 4 5 7 5 2 1 7 8 9 7 8 2 7 3 8 6 4 9 9 0 2 5 9 4 0 1 9 7 7 7 1 0 1 5 3 1 0 5 2 9 1 0 9 0 5 1 1 2 8 1 1 1 6 5 7
R e s p o n s e T i m e R a n k
Response
Time
(Milliseconds)
90th
Percentile
830 Milliseconds
Average Response Time
0
100
200
300
400
500
600
700
800
900
1 User 10 Users 100 Users 1000 Users
Concurrent User Sessions
Milliseconds
Average time (ms)
Response Time Distribution
Sorted in Response Time Order
- 13. 13
© Copyright 2009 EMC Corporation. All rights reserved.
DFS File Upload Test Results
UCF versus MTOM
y File Upload speeds under 50 MB were similar for both transports
y UCF was shown to be slightly faster than MTOM
File Upload Times
File 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
Bytes
Transferred
UCF
MTOM
- 15. 15
© Copyright 2009 EMC Corporation. All rights reserved.
Demos
Note: I am using the Documentum Developer Edition for all demos today!
- 16. 16
© Copyright 2009 EMC Corporation. All rights reserved.
SharePoint (MOSS) and DFS Example
Develop SharePoint (WSS and MOSS) WebParts and Features
.Net 3.x or higher required
Leverage DFS .Net productivity layer
No local, all remote requests
SOAP
MOSS
DFS .Net
Layer
DFS
WebApp
DFS
Services
Content
Server
Server
Session
DFC
- 17. 17
© Copyright 2009 EMC Corporation. All rights reserved.
DFS and Windows Explorer Example
Windows Explorer Integration
C# Based
Uses a namespace extension
Uses DFS .Net productivity later
Explorer
Namesp
ace C#
DFS
WebApp
DFS
Services
SOAP
Content
Server
Server
Session
DFC
- 18. 18
© Copyright 2009 EMC Corporation. All rights reserved.
DFS and Adobe FLEX Example
Search for content, leverage FLEX UI, DFS Search Service
HTTP LCDS
WebApp
Java
Services
SOAP
Browser
Flex
runtime
DFS
WebApp
DFS
Services
SOAP
Content
Server
Server
Session
DFC
- 19. 19
© Copyright 2009 EMC Corporation. All rights reserved.
Use case: Create Flash – FlexUI to LCDS
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
2
3
4 remoting-config.xml
.mxml
com.emc.dfs.DFSSearchService
5
- 20. 20
© Copyright 2009 EMC Corporation. All rights reserved.
DFS Best Practices
y 1. When setting repeating string attributes on an object, setting with a
string array throws an error..likely a bug, use semi-colon delimited string.
y
y 2. QueryMaxResultCount does not default to -1 as the documentation
states, 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.
y
y 3. When using UCF, you must set both the ServiceContext and the
ObjectOperations Content Transfer modes to UCF, not just one or the
other as the documenation states. We also found that when
ContentTransferMode was set to UCF, custom services would return a
ucf error (even if they were not doing content transfer) so I explicitly set
the ServiceContext and ObjectOperations to base64 when not doing
content transfer and to UCF when doing content transfer.
- 21. 21
© Copyright 2009 EMC Corporation. All rights reserved.
DFS Best Practices
4. 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
y
y 5. Ensure you explicitly specify your propertyProfile for querying or
retrieving objects. It does not default to all properties. ie. use
PropertyFilterMode: include, exclude or all.
y
y 6. Validate the attribute names when setting/saving attributes on
Create as it does not just ignore invalid names it throws an exception
and fails the action without providing a coherent error message. You can
use the Schema Service to validate. Schema Service needs an admin.
account.
- 22. 22
© Copyright 2009 EMC Corporation. All rights reserved.
DFS Best Practices
y 7. When writing services, make sure you return DataPackage for
services that return resultsets – use the DFS Data Model
y
y 8. 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.
y
y 9. For DataObject, r_object_id is always Identity, i.e.
Properties.Get("r_object_id") will not return it.
y
y 10. JAVA_HOME environment variable needed for UCF data transfer
- 23. 23
© Copyright 2009 EMC Corporation. All rights reserved.
Composer 6.5: Services Catalog Viewer
y Explore services available within the
intranet
y Helps users consume/develop/publish
DFS Services
y Optional install
y Includes manifest file to seed registry
with base DFS Services
- 24. 24
© Copyright 2009 EMC Corporation. All rights reserved.
Documentum Services Catalog Repository
y DSCR is a registry for consumer
discovery
y DSCR is a separate installer
y UDDI v2 standard
y Default port is 9010
y Run the dfs-publish-utility to deploy DFS
manifest, which is stored in emc-publish-
manifest.xml
- 25. 25
© Copyright 2009 EMC Corporation. All rights reserved.
Security - Kerberos
y We have to register the content server SPN (Service Principal Name) in
KDC and create Kerberos keytab file (using Microsoft Ktpass utility) for
that SPN in the KDC machine. Kerberos SSO Authentication plug-in will
be loaded at content server startup. Plug-in will load the keytab files in
memory during initialization. Whenever authentication request comes for
any user, plug-in will authenticate the user and create the session for
that user.
- 26. 26
© Copyright 2009 EMC Corporation. All rights reserved.
Security - Kerberos
y Pre-requisites
– a) Active Directory and kerberos environment must be ready for both application
server and content server
– b) A kerberos account is created representing DFS Service.
– c) A super user is created in Content Server to be used as Trusted Authenticator.
This account doesn't have to be a kerberos account.
y Preparation
– a) Prepare KTab file for DFS service kerberos account.
– b) Copy krbhandler.jar, the jar files in path .libfordfs, to <DFS LIBRARY> path. The
DFS library always located at
<jbosshome>serverDctmServer_MethodServerdeploydfs.earAPP-INFlib
– c) Update <jbosshome>serverDctmServer_MethodServerconflogin-config.xml. Add
"DFSServer" login configuration. A sample login-config.xml comes along with this
release.
– d) Modify local-dfs-runtime.properties and copy it to <DFS CLASSES> path.
– e) Generate trustpassword file that is indicated by local-dfs-runtime.properties Please
refer to toolreadme
– f) Modify authorized-service-handler-chain.xml under
- 28. 28
© Copyright 2009 EMC Corporation. All rights reserved.
Where can I find more information?
y MT Mohen – mohen_michael@emc.com
y Come to the CMA PS Booth!
– We like visitors!
y EMC World Website
– Source code from this session
y EMC Documentum Developer Website
y DFS Development Guide
– EMC CM&A Technical Publications
y DFS Fundamentals
– EMC CM&A Educational Services courseware
- 29. 29
© Copyright 2009 EMC Corporation. All rights reserved.
Get Involved with EMC CMA Communities
Why should you join?
y Collaborate and share best practices
y Shape the direction of future EMC products
y Network with innovators across the globe, 24/7
Join now by going to: community.EMC.com/go/Documentum
community.EMC.com/go/SourceOne
developer.EMC.com/go/Documentum
developer.EMC.com/go/XMLtech
community.EMC.com/community/labs/d65
Come to the CMA booth, #131, or the ECN Lounge, booth #440 to register today.