EMC Documentum D2
Service Architecture
August, 2016
EMC CONFIDENTIALINTERNAL USE ONLY 1
D2 Browser Client and D2 SOAP Client Stacks
D2FS SOAP Client D2 Browser Client
GWT Async RPC
GWT-RPC / HTTP
Legend:
GUICE servlet dispatch
X3 RPC service impl Custom Client
SOAP / HTTP GUICE injection
X3 proxy service 3rd Party Open Source
spring-ws-interface
Documentum D2
SOAP / HTTP
(development) Function Call
(production) Documentum Platform
spring-ws
D2FS-API
D2FS4DCTM-WEB
D2FS4DCTM-API
D2-API DFS
C6-Common
DFC
Netwise-RPC / TCP
Documentum Content Server
EMC CONFIDENTIALINTERNAL USE ONLY 2
D2FS4DCTM-WEB Layer
This layer is important for the following reasons:
(1) It provides sensitivity to D2 configuration and context
A typical service method implementation will apply one or
more D2 configurations to a given object or to the service
method result based upon context. In many cases, a server
method is executed on JMS in order to apply relevant D2
configuration.
(2) It implements the D2FS service plugin mechanism which allows
any service method in this layer to be overridden and thus
customized
(3) It constructs a D2fsContext object associated with each service
request which implements DFC session management
EMC CONFIDENTIALINTERNAL USE ONLY 3
D2FS4DCTM-WEB Layer Service Plugin Example
C2-Plugin.jar implements the following class:
D2DownloadServicePlugin extends D2DownloadService implements
ID2fsService
with a method
@Override
public List<String> getDownloadUrls(Context context, . . . )
{
. . .
}
By merely putting C2-Plugin.jar in the D2 app server classpath, this
D2DownloadServicePlugin.getDownloadUrls method effectively
overrides the D2DownloadService.getDownloadUrls method
implemented in the D2FS4DCTM-WEB layer.
EMC CONFIDENTIALINTERNAL USE ONLY 4
D2FS4DCTM-API Layer
The D2FS4DCTM-API layer exists primarily to support the 15 or so
services in the D2FS4DCTM-WEB layer that are implemented using
DFS rather than using DFC directly.
The client stack diagram in slide 2 does not quite faithfully capture
the dependencies of this layer since it contains code that calls
directly into C6-Common and DFC in addition to D2-API and DFS.
It is unfortunate that there are services implemented using DFS
rather than DFC directly, as dependency on DFS complicates the
building and deployment of D2. Note that DFS is used only
internally in local mode and is not exposed in any way through the
D2FS4DCTM-WEB layer. In particular, it is not exposed in any way
in the D2FS SOAP API.
EMC CONFIDENTIALINTERNAL USE ONLY 5
D2-API Layer
The D2-API layer defines and implements the interface for
accessing and manipulating D2 configuration objects stored in the
repository. It mainly consists of:
TBOs (Type-Based Objects) that represent D2 configuration types
as java classes using the Documentum Business Object
Framework (BOF).
D2Methods that can be run on the Content Server, either as java
server methods running on the Documentum Java Method Server
(JMS) or in stand-alone java processes launched by the Content
Server or from a scheduled job.
EMC CONFIDENTIALINTERNAL USE ONLY 6
D2 ReST Client Stack
D2 ReST Client
REST / HTTP
Legend:
Custom Client
spring-webmvc 3rd Party Open Source
rest-api-mvc
rest-api-collab-resource d2fs-rest-ext-resource Documentum D2
rest-api-core-resource
rest-api-collab-model d2fs-rest-ext-model
Documentum Core ReST
rest-api-collab-persistence d2fs-rest-ext-persistence
D2FS4DCTM-WEB
rest-api-core-persistence Documentum Platform
D2FS4DCTM-API
collaboration-services
D2-API DFS
C6-Common
DFC
Netwise-RPC / TCP
Documentum Content Server
EMC CONFIDENTIALINTERNAL USE ONLY 7