070524 emc documentum foundation services (randall, sdc07)

34
1 © 2007 EMC Corporation. All rights reserved. EMC Documentum Foundation Services (DFS) Craig Randall Software Architect EMC Corporation http://craigrandall.net/

Upload: tariq-anjum

Post on 24-Oct-2014

106 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: 070524 EMC Documentum Foundation Services (Randall, SDC07)

1copy 2007 EMC Corporation All rights reserved

EMC Documentum

Foundation Services (DFS)

Craig Randall

Software Architect

EMC Corporation

httpcraigrandallnet

2copy 2007 EMC Corporation All rights reserved

Goals

Understand where ECM is going and the relevance of SOA

Understand EMC Documentum Foundation Services (DFS)

DFS in action

Wrap-up

3copy 2007 EMC Corporation All rights reserved

Where Enterprise Content Management Is Going

Information management isndash A set of services operating on content

ECM has traditionally operated in a centralized model

Evolving business needs + managing expanding volumes of data = an architecture where both content and processes are distributed

4copy 2007 EMC Corporation All rights reserved

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Instead of investing in new solutions to improve operational efficiencies IT departments are spending a significant portion of their budgets maintaining complex integrations

There has to be a better wayhellip

Solutions Require Complex Integration

5copy 2007 EMC Corporation All rights reserved

Emergence of Composite Applications

Solaris

ERPCRM

Legacy

Applications ECM Services

Novell

MSFT

File Servers

EMC Documentum

We have content storeshellip

Composite applications need services from everywhere

hellip and we have applications

6copy 2007 EMC Corporation All rights reserved

Distributed by definition some part of the applications are remote ndash not on a single middle tier or application server

Heterogeneous repository implementations APIs and applications will be implemented in a variety of languages and will run on a wide range of platforms

Coarse-grained ldquopartsrdquo that create the whole (the application) must provide substantial chunks of functionality and must be rapidly composed

Service-Oriented Architecture

Content Management Application Observations

7copy 2007 EMC Corporation All rights reserved

Our Position on SOA

There is no SOA product offeringndash Products enable

Provide high-value Content Management amp Archiving services

ndash Ready-to-deploy services (out-of-the-box)

ndash Services framework (extends industry standards)

ndash Developer tools (extends industry standards)

ndash Reusable common ECM functions

Enable consumption by disparate systemsndash Focus on standards

ndash Composite applications

ndash Common usage patterns

8copy 2007 EMC Corporation All rights reserved

Offer

Management

Customer status

(newexisting)

Determine Loan

Type

Document

Assembly

Verify customer

address

Obtain proper forms

(State Federal)

Loan

Processing

Review and

Approval

Loan Status

Marketing Sales CRM FinanceData

Warehouse

External

Partner

Before SOASiloed Closed Monolithic Brittle

Assemble loan

package

Order Status

Escrow

Data Repositories

Check Credit

Retain executed

documents

Customer request

via web

9copy 2007 EMC Corporation All rights reserved

Marketing Sales CRM FinanceData

Warehouse

External

Partner

After SOAShared Services Collaborative Interoperable Integrated

Data Repositories

Reusable

Service

Create

Loan

Documents

Check

Status

Review

and

Approval

Reusable

Service

Reusable

Service

Reusable

Service

Reusable

Service

Retain

DocumentsPublish

Reusable

Service

Composite

Application

Composed

Business Process

Document

Assembly

Loan

Processing

Offer

Management

Reusable Business Services

Composed Applications

10copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

DFS is about content participating in your business processes

ndash Interoperable (increased access)

ndash ECM services as peers to other existing services

ndash Standards based

DFS is the path forward for ECM business logicndash Will become the primary API

ndash DFC will remain (low-level)

Emphasizes service-orientation in the EMC Documentum platform

Why DFS

11copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

Embodies a service development lifecyclendash Design-time and runtime support to service developers and their

clients

Deployable Documentum platform services OOTB

SDK for service and solution developers (internal and external)

ndash Design-time tools

ndash Runtime infrastructure

ndash Documentum platform services (binaries for your solutions)

How DFS enables your SOA

12copy 2007 EMC Corporation All rights reserved

EMC Documentum Platform Services

Core

platform

services

(DFS)

Platform services

ldquoEcosystemrdquo services

Version Controlcheckin checkout

cancelCheckout

getCheckoutInfo

getVersionInfo

deleteVersion

deleteAllVersions

getCurrent

Schema getRepositoryInfo

getSchemaInfo

getTypeInfo

getPropertyInfo

getValueInfoList

Objectcreate get

update delete

copy move

validate

getObjectContentUrls

createPath

Queryexecute

Collaboration

Search

Compliance

Workflow

13copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 1 of 4)

ltxml version=10 encoding=UTF-8 standalone=yesgt

ltdefinitions targetNamespace=httpcoreservicesfsdocumentumemccom name=ObjectService

xmlnstns=httpcoreservicesfsdocumentumemccom xmlnsxsd=httpwwww3org2001XMLSchema

xmlnssoap=httpschemasxmlsoaporgwsdlsoap xmlns=httpschemasxmlsoaporgwsdlgt

lttypesgt

ltxsdschemagtltxsdimport namespace=httpcontentcoredatamodelfsdocumentumemccom

schemaLocation=ObjectService_schema8xsdgtltxsdschemagt

lttypesgt

ltmessage name=creategtltpart name=parameters element=tnscreategtltmessagegt

ltmessage name=createResponsegtltpart name=parameters element=tnscreateResponsegtltmessagegt

ltportType name=ObjectServicePortgt

ltoperation name=creategtltinput message=tnscreategtltoutput

message=tnscreateResponsegtltfault name=SerializableException

message=tnsSerializableExceptiongtltoperationgt

ltportTypegt

ltbinding name=ObjectServicePortBinding type=tnsObjectServicePortgt

ltsoapbinding transport=httpschemasxmlsoaporgsoaphttp style=documentgt

ltoperation name=creategtltsoapoperation soapAction=gtltinputgtltsoapbody

use=literalgtltinputgtltoutputgtltsoapbody use=literalgtltoutputgtltfault

name=SerializableExceptiongtltsoapfault name=SerializableException

use=literalgtltfaultgtltoperationgt

ltbindinggt

ltservice name=ObjectServicegt

ltport name=ObjectServicePort binding=tnsObjectServicePortBindinggtltsoapaddress location=

gtltportgt

ltservicegt

ltdefinitionsgt

WSDL is primary API

14copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 2 of 4)

package comemcdocumentumfsservicescoreclient

import comemcdocumentumfsdatamodelcore

import comemcdocumentumfsservicescoreCoreServiceException

public interface IObjectService

Creates all data object in the data package using the specified target repository

All specified related objects are also created All content is automatically

imported

Note DataPackage can contain operation-specific properties

param dataPackage

param options

return target DataPackage with a list of objects created By default it will only

return ObjectIdentity of the DataObjects with no ReferenceRelations MetadataProfile

and ContentProfile settings can be used to specify what data is populated

throws CoreServiceException

DataPackage create(DataPackage dataPackage OperationOptions options) throws

CoreServiceException

Consistent Java interface-based access

15copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 3 of 4)

ltsoapEnvelope gt

ltsoapHeadergt

ltwsseSecurity gtltwsseBinarySecurityToken

ValueType=httpschemasemccomdocumentumResourceAccessToken gt

ltwsseBinarySecurityTokengtltwsseSecuritygt

ltServiceContext xmlns=httpcontextcoredatamodelfsdocumentumemccomgt

ltprofiles xmlnsq1=httpprofilescoredatamodelfsdocumentumemccom

xsitype=q1PropertyProfile gtltprofiles xsitype=q2ContentProfile

formatFilter=ANY pageFilter=ANY pageNumber=0 pageModifierFilter=ANY gt

ltprofiles xsitype=q3ContentTransferProfile

mTransferMode=UCFgtltq3ActivityInfogtltsessionId

xmlns=httpcontentcoredatamodelfsdocumentumemccomgt ltsessionIdgt

ltactivityId gt ltactivityIdgtltautoCloseConnection gt

trueltautoCloseConnectiongtltq3ActivityInfogtltprofilesgtltServiceContextgt

ltsoapHeadergt

ltsoapBodygt

ltcreate xmlns=httpcoreservicesfsdocumentumemccomgt

ltDataPackage repositoryName=target_docbase

xmlns=httpcoredatamodelfsdocumentumemccomgtltDataObject isTransient=false

xmlns=gtltIdentity repositoryName=target_docbase valueType=UNDEFINED gtltFileContent

pageNumber=0 isLogical=false isPassthrough=false contentTransferMode=UCF

xmlns=httpcontentcoredatamodelfsdocumentumemccom gt

ltDataObjectgtltDataPackagegtoperation options (may be null)ltcreategt

ltsoapBodygt

ltsoapEnvelopegt

Consistent XML-XSD-based data model

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 2: 070524 EMC Documentum Foundation Services (Randall, SDC07)

2copy 2007 EMC Corporation All rights reserved

Goals

Understand where ECM is going and the relevance of SOA

Understand EMC Documentum Foundation Services (DFS)

DFS in action

Wrap-up

3copy 2007 EMC Corporation All rights reserved

Where Enterprise Content Management Is Going

Information management isndash A set of services operating on content

ECM has traditionally operated in a centralized model

Evolving business needs + managing expanding volumes of data = an architecture where both content and processes are distributed

4copy 2007 EMC Corporation All rights reserved

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Instead of investing in new solutions to improve operational efficiencies IT departments are spending a significant portion of their budgets maintaining complex integrations

There has to be a better wayhellip

Solutions Require Complex Integration

5copy 2007 EMC Corporation All rights reserved

Emergence of Composite Applications

Solaris

ERPCRM

Legacy

Applications ECM Services

Novell

MSFT

File Servers

EMC Documentum

We have content storeshellip

Composite applications need services from everywhere

hellip and we have applications

6copy 2007 EMC Corporation All rights reserved

Distributed by definition some part of the applications are remote ndash not on a single middle tier or application server

Heterogeneous repository implementations APIs and applications will be implemented in a variety of languages and will run on a wide range of platforms

Coarse-grained ldquopartsrdquo that create the whole (the application) must provide substantial chunks of functionality and must be rapidly composed

Service-Oriented Architecture

Content Management Application Observations

7copy 2007 EMC Corporation All rights reserved

Our Position on SOA

There is no SOA product offeringndash Products enable

Provide high-value Content Management amp Archiving services

ndash Ready-to-deploy services (out-of-the-box)

ndash Services framework (extends industry standards)

ndash Developer tools (extends industry standards)

ndash Reusable common ECM functions

Enable consumption by disparate systemsndash Focus on standards

ndash Composite applications

ndash Common usage patterns

8copy 2007 EMC Corporation All rights reserved

Offer

Management

Customer status

(newexisting)

Determine Loan

Type

Document

Assembly

Verify customer

address

Obtain proper forms

(State Federal)

Loan

Processing

Review and

Approval

Loan Status

Marketing Sales CRM FinanceData

Warehouse

External

Partner

Before SOASiloed Closed Monolithic Brittle

Assemble loan

package

Order Status

Escrow

Data Repositories

Check Credit

Retain executed

documents

Customer request

via web

9copy 2007 EMC Corporation All rights reserved

Marketing Sales CRM FinanceData

Warehouse

External

Partner

After SOAShared Services Collaborative Interoperable Integrated

Data Repositories

Reusable

Service

Create

Loan

Documents

Check

Status

Review

and

Approval

Reusable

Service

Reusable

Service

Reusable

Service

Reusable

Service

Retain

DocumentsPublish

Reusable

Service

Composite

Application

Composed

Business Process

Document

Assembly

Loan

Processing

Offer

Management

Reusable Business Services

Composed Applications

10copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

DFS is about content participating in your business processes

ndash Interoperable (increased access)

ndash ECM services as peers to other existing services

ndash Standards based

DFS is the path forward for ECM business logicndash Will become the primary API

ndash DFC will remain (low-level)

Emphasizes service-orientation in the EMC Documentum platform

Why DFS

11copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

Embodies a service development lifecyclendash Design-time and runtime support to service developers and their

clients

Deployable Documentum platform services OOTB

SDK for service and solution developers (internal and external)

ndash Design-time tools

ndash Runtime infrastructure

ndash Documentum platform services (binaries for your solutions)

How DFS enables your SOA

12copy 2007 EMC Corporation All rights reserved

EMC Documentum Platform Services

Core

platform

services

(DFS)

Platform services

ldquoEcosystemrdquo services

Version Controlcheckin checkout

cancelCheckout

getCheckoutInfo

getVersionInfo

deleteVersion

deleteAllVersions

getCurrent

Schema getRepositoryInfo

getSchemaInfo

getTypeInfo

getPropertyInfo

getValueInfoList

Objectcreate get

update delete

copy move

validate

getObjectContentUrls

createPath

Queryexecute

Collaboration

Search

Compliance

Workflow

13copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 1 of 4)

ltxml version=10 encoding=UTF-8 standalone=yesgt

ltdefinitions targetNamespace=httpcoreservicesfsdocumentumemccom name=ObjectService

xmlnstns=httpcoreservicesfsdocumentumemccom xmlnsxsd=httpwwww3org2001XMLSchema

xmlnssoap=httpschemasxmlsoaporgwsdlsoap xmlns=httpschemasxmlsoaporgwsdlgt

lttypesgt

ltxsdschemagtltxsdimport namespace=httpcontentcoredatamodelfsdocumentumemccom

schemaLocation=ObjectService_schema8xsdgtltxsdschemagt

lttypesgt

ltmessage name=creategtltpart name=parameters element=tnscreategtltmessagegt

ltmessage name=createResponsegtltpart name=parameters element=tnscreateResponsegtltmessagegt

ltportType name=ObjectServicePortgt

ltoperation name=creategtltinput message=tnscreategtltoutput

message=tnscreateResponsegtltfault name=SerializableException

message=tnsSerializableExceptiongtltoperationgt

ltportTypegt

ltbinding name=ObjectServicePortBinding type=tnsObjectServicePortgt

ltsoapbinding transport=httpschemasxmlsoaporgsoaphttp style=documentgt

ltoperation name=creategtltsoapoperation soapAction=gtltinputgtltsoapbody

use=literalgtltinputgtltoutputgtltsoapbody use=literalgtltoutputgtltfault

name=SerializableExceptiongtltsoapfault name=SerializableException

use=literalgtltfaultgtltoperationgt

ltbindinggt

ltservice name=ObjectServicegt

ltport name=ObjectServicePort binding=tnsObjectServicePortBindinggtltsoapaddress location=

gtltportgt

ltservicegt

ltdefinitionsgt

WSDL is primary API

14copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 2 of 4)

package comemcdocumentumfsservicescoreclient

import comemcdocumentumfsdatamodelcore

import comemcdocumentumfsservicescoreCoreServiceException

public interface IObjectService

Creates all data object in the data package using the specified target repository

All specified related objects are also created All content is automatically

imported

Note DataPackage can contain operation-specific properties

param dataPackage

param options

return target DataPackage with a list of objects created By default it will only

return ObjectIdentity of the DataObjects with no ReferenceRelations MetadataProfile

and ContentProfile settings can be used to specify what data is populated

throws CoreServiceException

DataPackage create(DataPackage dataPackage OperationOptions options) throws

CoreServiceException

Consistent Java interface-based access

15copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 3 of 4)

ltsoapEnvelope gt

ltsoapHeadergt

ltwsseSecurity gtltwsseBinarySecurityToken

ValueType=httpschemasemccomdocumentumResourceAccessToken gt

ltwsseBinarySecurityTokengtltwsseSecuritygt

ltServiceContext xmlns=httpcontextcoredatamodelfsdocumentumemccomgt

ltprofiles xmlnsq1=httpprofilescoredatamodelfsdocumentumemccom

xsitype=q1PropertyProfile gtltprofiles xsitype=q2ContentProfile

formatFilter=ANY pageFilter=ANY pageNumber=0 pageModifierFilter=ANY gt

ltprofiles xsitype=q3ContentTransferProfile

mTransferMode=UCFgtltq3ActivityInfogtltsessionId

xmlns=httpcontentcoredatamodelfsdocumentumemccomgt ltsessionIdgt

ltactivityId gt ltactivityIdgtltautoCloseConnection gt

trueltautoCloseConnectiongtltq3ActivityInfogtltprofilesgtltServiceContextgt

ltsoapHeadergt

ltsoapBodygt

ltcreate xmlns=httpcoreservicesfsdocumentumemccomgt

ltDataPackage repositoryName=target_docbase

xmlns=httpcoredatamodelfsdocumentumemccomgtltDataObject isTransient=false

xmlns=gtltIdentity repositoryName=target_docbase valueType=UNDEFINED gtltFileContent

pageNumber=0 isLogical=false isPassthrough=false contentTransferMode=UCF

xmlns=httpcontentcoredatamodelfsdocumentumemccom gt

ltDataObjectgtltDataPackagegtoperation options (may be null)ltcreategt

ltsoapBodygt

ltsoapEnvelopegt

Consistent XML-XSD-based data model

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 3: 070524 EMC Documentum Foundation Services (Randall, SDC07)

3copy 2007 EMC Corporation All rights reserved

Where Enterprise Content Management Is Going

Information management isndash A set of services operating on content

ECM has traditionally operated in a centralized model

Evolving business needs + managing expanding volumes of data = an architecture where both content and processes are distributed

4copy 2007 EMC Corporation All rights reserved

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Instead of investing in new solutions to improve operational efficiencies IT departments are spending a significant portion of their budgets maintaining complex integrations

There has to be a better wayhellip

Solutions Require Complex Integration

5copy 2007 EMC Corporation All rights reserved

Emergence of Composite Applications

Solaris

ERPCRM

Legacy

Applications ECM Services

Novell

MSFT

File Servers

EMC Documentum

We have content storeshellip

Composite applications need services from everywhere

hellip and we have applications

6copy 2007 EMC Corporation All rights reserved

Distributed by definition some part of the applications are remote ndash not on a single middle tier or application server

Heterogeneous repository implementations APIs and applications will be implemented in a variety of languages and will run on a wide range of platforms

Coarse-grained ldquopartsrdquo that create the whole (the application) must provide substantial chunks of functionality and must be rapidly composed

Service-Oriented Architecture

Content Management Application Observations

7copy 2007 EMC Corporation All rights reserved

Our Position on SOA

There is no SOA product offeringndash Products enable

Provide high-value Content Management amp Archiving services

ndash Ready-to-deploy services (out-of-the-box)

ndash Services framework (extends industry standards)

ndash Developer tools (extends industry standards)

ndash Reusable common ECM functions

Enable consumption by disparate systemsndash Focus on standards

ndash Composite applications

ndash Common usage patterns

8copy 2007 EMC Corporation All rights reserved

Offer

Management

Customer status

(newexisting)

Determine Loan

Type

Document

Assembly

Verify customer

address

Obtain proper forms

(State Federal)

Loan

Processing

Review and

Approval

Loan Status

Marketing Sales CRM FinanceData

Warehouse

External

Partner

Before SOASiloed Closed Monolithic Brittle

Assemble loan

package

Order Status

Escrow

Data Repositories

Check Credit

Retain executed

documents

Customer request

via web

9copy 2007 EMC Corporation All rights reserved

Marketing Sales CRM FinanceData

Warehouse

External

Partner

After SOAShared Services Collaborative Interoperable Integrated

Data Repositories

Reusable

Service

Create

Loan

Documents

Check

Status

Review

and

Approval

Reusable

Service

Reusable

Service

Reusable

Service

Reusable

Service

Retain

DocumentsPublish

Reusable

Service

Composite

Application

Composed

Business Process

Document

Assembly

Loan

Processing

Offer

Management

Reusable Business Services

Composed Applications

10copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

DFS is about content participating in your business processes

ndash Interoperable (increased access)

ndash ECM services as peers to other existing services

ndash Standards based

DFS is the path forward for ECM business logicndash Will become the primary API

ndash DFC will remain (low-level)

Emphasizes service-orientation in the EMC Documentum platform

Why DFS

11copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

Embodies a service development lifecyclendash Design-time and runtime support to service developers and their

clients

Deployable Documentum platform services OOTB

SDK for service and solution developers (internal and external)

ndash Design-time tools

ndash Runtime infrastructure

ndash Documentum platform services (binaries for your solutions)

How DFS enables your SOA

12copy 2007 EMC Corporation All rights reserved

EMC Documentum Platform Services

Core

platform

services

(DFS)

Platform services

ldquoEcosystemrdquo services

Version Controlcheckin checkout

cancelCheckout

getCheckoutInfo

getVersionInfo

deleteVersion

deleteAllVersions

getCurrent

Schema getRepositoryInfo

getSchemaInfo

getTypeInfo

getPropertyInfo

getValueInfoList

Objectcreate get

update delete

copy move

validate

getObjectContentUrls

createPath

Queryexecute

Collaboration

Search

Compliance

Workflow

13copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 1 of 4)

ltxml version=10 encoding=UTF-8 standalone=yesgt

ltdefinitions targetNamespace=httpcoreservicesfsdocumentumemccom name=ObjectService

xmlnstns=httpcoreservicesfsdocumentumemccom xmlnsxsd=httpwwww3org2001XMLSchema

xmlnssoap=httpschemasxmlsoaporgwsdlsoap xmlns=httpschemasxmlsoaporgwsdlgt

lttypesgt

ltxsdschemagtltxsdimport namespace=httpcontentcoredatamodelfsdocumentumemccom

schemaLocation=ObjectService_schema8xsdgtltxsdschemagt

lttypesgt

ltmessage name=creategtltpart name=parameters element=tnscreategtltmessagegt

ltmessage name=createResponsegtltpart name=parameters element=tnscreateResponsegtltmessagegt

ltportType name=ObjectServicePortgt

ltoperation name=creategtltinput message=tnscreategtltoutput

message=tnscreateResponsegtltfault name=SerializableException

message=tnsSerializableExceptiongtltoperationgt

ltportTypegt

ltbinding name=ObjectServicePortBinding type=tnsObjectServicePortgt

ltsoapbinding transport=httpschemasxmlsoaporgsoaphttp style=documentgt

ltoperation name=creategtltsoapoperation soapAction=gtltinputgtltsoapbody

use=literalgtltinputgtltoutputgtltsoapbody use=literalgtltoutputgtltfault

name=SerializableExceptiongtltsoapfault name=SerializableException

use=literalgtltfaultgtltoperationgt

ltbindinggt

ltservice name=ObjectServicegt

ltport name=ObjectServicePort binding=tnsObjectServicePortBindinggtltsoapaddress location=

gtltportgt

ltservicegt

ltdefinitionsgt

WSDL is primary API

14copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 2 of 4)

package comemcdocumentumfsservicescoreclient

import comemcdocumentumfsdatamodelcore

import comemcdocumentumfsservicescoreCoreServiceException

public interface IObjectService

Creates all data object in the data package using the specified target repository

All specified related objects are also created All content is automatically

imported

Note DataPackage can contain operation-specific properties

param dataPackage

param options

return target DataPackage with a list of objects created By default it will only

return ObjectIdentity of the DataObjects with no ReferenceRelations MetadataProfile

and ContentProfile settings can be used to specify what data is populated

throws CoreServiceException

DataPackage create(DataPackage dataPackage OperationOptions options) throws

CoreServiceException

Consistent Java interface-based access

15copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 3 of 4)

ltsoapEnvelope gt

ltsoapHeadergt

ltwsseSecurity gtltwsseBinarySecurityToken

ValueType=httpschemasemccomdocumentumResourceAccessToken gt

ltwsseBinarySecurityTokengtltwsseSecuritygt

ltServiceContext xmlns=httpcontextcoredatamodelfsdocumentumemccomgt

ltprofiles xmlnsq1=httpprofilescoredatamodelfsdocumentumemccom

xsitype=q1PropertyProfile gtltprofiles xsitype=q2ContentProfile

formatFilter=ANY pageFilter=ANY pageNumber=0 pageModifierFilter=ANY gt

ltprofiles xsitype=q3ContentTransferProfile

mTransferMode=UCFgtltq3ActivityInfogtltsessionId

xmlns=httpcontentcoredatamodelfsdocumentumemccomgt ltsessionIdgt

ltactivityId gt ltactivityIdgtltautoCloseConnection gt

trueltautoCloseConnectiongtltq3ActivityInfogtltprofilesgtltServiceContextgt

ltsoapHeadergt

ltsoapBodygt

ltcreate xmlns=httpcoreservicesfsdocumentumemccomgt

ltDataPackage repositoryName=target_docbase

xmlns=httpcoredatamodelfsdocumentumemccomgtltDataObject isTransient=false

xmlns=gtltIdentity repositoryName=target_docbase valueType=UNDEFINED gtltFileContent

pageNumber=0 isLogical=false isPassthrough=false contentTransferMode=UCF

xmlns=httpcontentcoredatamodelfsdocumentumemccom gt

ltDataObjectgtltDataPackagegtoperation options (may be null)ltcreategt

ltsoapBodygt

ltsoapEnvelopegt

Consistent XML-XSD-based data model

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 4: 070524 EMC Documentum Foundation Services (Randall, SDC07)

4copy 2007 EMC Corporation All rights reserved

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Content Rep

Forms

Records Mgt

Training

Procurement

Recruitment

Grants

Finance

Rulemaking

Instead of investing in new solutions to improve operational efficiencies IT departments are spending a significant portion of their budgets maintaining complex integrations

There has to be a better wayhellip

Solutions Require Complex Integration

5copy 2007 EMC Corporation All rights reserved

Emergence of Composite Applications

Solaris

ERPCRM

Legacy

Applications ECM Services

Novell

MSFT

File Servers

EMC Documentum

We have content storeshellip

Composite applications need services from everywhere

hellip and we have applications

6copy 2007 EMC Corporation All rights reserved

Distributed by definition some part of the applications are remote ndash not on a single middle tier or application server

Heterogeneous repository implementations APIs and applications will be implemented in a variety of languages and will run on a wide range of platforms

Coarse-grained ldquopartsrdquo that create the whole (the application) must provide substantial chunks of functionality and must be rapidly composed

Service-Oriented Architecture

Content Management Application Observations

7copy 2007 EMC Corporation All rights reserved

Our Position on SOA

There is no SOA product offeringndash Products enable

Provide high-value Content Management amp Archiving services

ndash Ready-to-deploy services (out-of-the-box)

ndash Services framework (extends industry standards)

ndash Developer tools (extends industry standards)

ndash Reusable common ECM functions

Enable consumption by disparate systemsndash Focus on standards

ndash Composite applications

ndash Common usage patterns

8copy 2007 EMC Corporation All rights reserved

Offer

Management

Customer status

(newexisting)

Determine Loan

Type

Document

Assembly

Verify customer

address

Obtain proper forms

(State Federal)

Loan

Processing

Review and

Approval

Loan Status

Marketing Sales CRM FinanceData

Warehouse

External

Partner

Before SOASiloed Closed Monolithic Brittle

Assemble loan

package

Order Status

Escrow

Data Repositories

Check Credit

Retain executed

documents

Customer request

via web

9copy 2007 EMC Corporation All rights reserved

Marketing Sales CRM FinanceData

Warehouse

External

Partner

After SOAShared Services Collaborative Interoperable Integrated

Data Repositories

Reusable

Service

Create

Loan

Documents

Check

Status

Review

and

Approval

Reusable

Service

Reusable

Service

Reusable

Service

Reusable

Service

Retain

DocumentsPublish

Reusable

Service

Composite

Application

Composed

Business Process

Document

Assembly

Loan

Processing

Offer

Management

Reusable Business Services

Composed Applications

10copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

DFS is about content participating in your business processes

ndash Interoperable (increased access)

ndash ECM services as peers to other existing services

ndash Standards based

DFS is the path forward for ECM business logicndash Will become the primary API

ndash DFC will remain (low-level)

Emphasizes service-orientation in the EMC Documentum platform

Why DFS

11copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

Embodies a service development lifecyclendash Design-time and runtime support to service developers and their

clients

Deployable Documentum platform services OOTB

SDK for service and solution developers (internal and external)

ndash Design-time tools

ndash Runtime infrastructure

ndash Documentum platform services (binaries for your solutions)

How DFS enables your SOA

12copy 2007 EMC Corporation All rights reserved

EMC Documentum Platform Services

Core

platform

services

(DFS)

Platform services

ldquoEcosystemrdquo services

Version Controlcheckin checkout

cancelCheckout

getCheckoutInfo

getVersionInfo

deleteVersion

deleteAllVersions

getCurrent

Schema getRepositoryInfo

getSchemaInfo

getTypeInfo

getPropertyInfo

getValueInfoList

Objectcreate get

update delete

copy move

validate

getObjectContentUrls

createPath

Queryexecute

Collaboration

Search

Compliance

Workflow

13copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 1 of 4)

ltxml version=10 encoding=UTF-8 standalone=yesgt

ltdefinitions targetNamespace=httpcoreservicesfsdocumentumemccom name=ObjectService

xmlnstns=httpcoreservicesfsdocumentumemccom xmlnsxsd=httpwwww3org2001XMLSchema

xmlnssoap=httpschemasxmlsoaporgwsdlsoap xmlns=httpschemasxmlsoaporgwsdlgt

lttypesgt

ltxsdschemagtltxsdimport namespace=httpcontentcoredatamodelfsdocumentumemccom

schemaLocation=ObjectService_schema8xsdgtltxsdschemagt

lttypesgt

ltmessage name=creategtltpart name=parameters element=tnscreategtltmessagegt

ltmessage name=createResponsegtltpart name=parameters element=tnscreateResponsegtltmessagegt

ltportType name=ObjectServicePortgt

ltoperation name=creategtltinput message=tnscreategtltoutput

message=tnscreateResponsegtltfault name=SerializableException

message=tnsSerializableExceptiongtltoperationgt

ltportTypegt

ltbinding name=ObjectServicePortBinding type=tnsObjectServicePortgt

ltsoapbinding transport=httpschemasxmlsoaporgsoaphttp style=documentgt

ltoperation name=creategtltsoapoperation soapAction=gtltinputgtltsoapbody

use=literalgtltinputgtltoutputgtltsoapbody use=literalgtltoutputgtltfault

name=SerializableExceptiongtltsoapfault name=SerializableException

use=literalgtltfaultgtltoperationgt

ltbindinggt

ltservice name=ObjectServicegt

ltport name=ObjectServicePort binding=tnsObjectServicePortBindinggtltsoapaddress location=

gtltportgt

ltservicegt

ltdefinitionsgt

WSDL is primary API

14copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 2 of 4)

package comemcdocumentumfsservicescoreclient

import comemcdocumentumfsdatamodelcore

import comemcdocumentumfsservicescoreCoreServiceException

public interface IObjectService

Creates all data object in the data package using the specified target repository

All specified related objects are also created All content is automatically

imported

Note DataPackage can contain operation-specific properties

param dataPackage

param options

return target DataPackage with a list of objects created By default it will only

return ObjectIdentity of the DataObjects with no ReferenceRelations MetadataProfile

and ContentProfile settings can be used to specify what data is populated

throws CoreServiceException

DataPackage create(DataPackage dataPackage OperationOptions options) throws

CoreServiceException

Consistent Java interface-based access

15copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 3 of 4)

ltsoapEnvelope gt

ltsoapHeadergt

ltwsseSecurity gtltwsseBinarySecurityToken

ValueType=httpschemasemccomdocumentumResourceAccessToken gt

ltwsseBinarySecurityTokengtltwsseSecuritygt

ltServiceContext xmlns=httpcontextcoredatamodelfsdocumentumemccomgt

ltprofiles xmlnsq1=httpprofilescoredatamodelfsdocumentumemccom

xsitype=q1PropertyProfile gtltprofiles xsitype=q2ContentProfile

formatFilter=ANY pageFilter=ANY pageNumber=0 pageModifierFilter=ANY gt

ltprofiles xsitype=q3ContentTransferProfile

mTransferMode=UCFgtltq3ActivityInfogtltsessionId

xmlns=httpcontentcoredatamodelfsdocumentumemccomgt ltsessionIdgt

ltactivityId gt ltactivityIdgtltautoCloseConnection gt

trueltautoCloseConnectiongtltq3ActivityInfogtltprofilesgtltServiceContextgt

ltsoapHeadergt

ltsoapBodygt

ltcreate xmlns=httpcoreservicesfsdocumentumemccomgt

ltDataPackage repositoryName=target_docbase

xmlns=httpcoredatamodelfsdocumentumemccomgtltDataObject isTransient=false

xmlns=gtltIdentity repositoryName=target_docbase valueType=UNDEFINED gtltFileContent

pageNumber=0 isLogical=false isPassthrough=false contentTransferMode=UCF

xmlns=httpcontentcoredatamodelfsdocumentumemccom gt

ltDataObjectgtltDataPackagegtoperation options (may be null)ltcreategt

ltsoapBodygt

ltsoapEnvelopegt

Consistent XML-XSD-based data model

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 5: 070524 EMC Documentum Foundation Services (Randall, SDC07)

5copy 2007 EMC Corporation All rights reserved

Emergence of Composite Applications

Solaris

ERPCRM

Legacy

Applications ECM Services

Novell

MSFT

File Servers

EMC Documentum

We have content storeshellip

Composite applications need services from everywhere

hellip and we have applications

6copy 2007 EMC Corporation All rights reserved

Distributed by definition some part of the applications are remote ndash not on a single middle tier or application server

Heterogeneous repository implementations APIs and applications will be implemented in a variety of languages and will run on a wide range of platforms

Coarse-grained ldquopartsrdquo that create the whole (the application) must provide substantial chunks of functionality and must be rapidly composed

Service-Oriented Architecture

Content Management Application Observations

7copy 2007 EMC Corporation All rights reserved

Our Position on SOA

There is no SOA product offeringndash Products enable

Provide high-value Content Management amp Archiving services

ndash Ready-to-deploy services (out-of-the-box)

ndash Services framework (extends industry standards)

ndash Developer tools (extends industry standards)

ndash Reusable common ECM functions

Enable consumption by disparate systemsndash Focus on standards

ndash Composite applications

ndash Common usage patterns

8copy 2007 EMC Corporation All rights reserved

Offer

Management

Customer status

(newexisting)

Determine Loan

Type

Document

Assembly

Verify customer

address

Obtain proper forms

(State Federal)

Loan

Processing

Review and

Approval

Loan Status

Marketing Sales CRM FinanceData

Warehouse

External

Partner

Before SOASiloed Closed Monolithic Brittle

Assemble loan

package

Order Status

Escrow

Data Repositories

Check Credit

Retain executed

documents

Customer request

via web

9copy 2007 EMC Corporation All rights reserved

Marketing Sales CRM FinanceData

Warehouse

External

Partner

After SOAShared Services Collaborative Interoperable Integrated

Data Repositories

Reusable

Service

Create

Loan

Documents

Check

Status

Review

and

Approval

Reusable

Service

Reusable

Service

Reusable

Service

Reusable

Service

Retain

DocumentsPublish

Reusable

Service

Composite

Application

Composed

Business Process

Document

Assembly

Loan

Processing

Offer

Management

Reusable Business Services

Composed Applications

10copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

DFS is about content participating in your business processes

ndash Interoperable (increased access)

ndash ECM services as peers to other existing services

ndash Standards based

DFS is the path forward for ECM business logicndash Will become the primary API

ndash DFC will remain (low-level)

Emphasizes service-orientation in the EMC Documentum platform

Why DFS

11copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

Embodies a service development lifecyclendash Design-time and runtime support to service developers and their

clients

Deployable Documentum platform services OOTB

SDK for service and solution developers (internal and external)

ndash Design-time tools

ndash Runtime infrastructure

ndash Documentum platform services (binaries for your solutions)

How DFS enables your SOA

12copy 2007 EMC Corporation All rights reserved

EMC Documentum Platform Services

Core

platform

services

(DFS)

Platform services

ldquoEcosystemrdquo services

Version Controlcheckin checkout

cancelCheckout

getCheckoutInfo

getVersionInfo

deleteVersion

deleteAllVersions

getCurrent

Schema getRepositoryInfo

getSchemaInfo

getTypeInfo

getPropertyInfo

getValueInfoList

Objectcreate get

update delete

copy move

validate

getObjectContentUrls

createPath

Queryexecute

Collaboration

Search

Compliance

Workflow

13copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 1 of 4)

ltxml version=10 encoding=UTF-8 standalone=yesgt

ltdefinitions targetNamespace=httpcoreservicesfsdocumentumemccom name=ObjectService

xmlnstns=httpcoreservicesfsdocumentumemccom xmlnsxsd=httpwwww3org2001XMLSchema

xmlnssoap=httpschemasxmlsoaporgwsdlsoap xmlns=httpschemasxmlsoaporgwsdlgt

lttypesgt

ltxsdschemagtltxsdimport namespace=httpcontentcoredatamodelfsdocumentumemccom

schemaLocation=ObjectService_schema8xsdgtltxsdschemagt

lttypesgt

ltmessage name=creategtltpart name=parameters element=tnscreategtltmessagegt

ltmessage name=createResponsegtltpart name=parameters element=tnscreateResponsegtltmessagegt

ltportType name=ObjectServicePortgt

ltoperation name=creategtltinput message=tnscreategtltoutput

message=tnscreateResponsegtltfault name=SerializableException

message=tnsSerializableExceptiongtltoperationgt

ltportTypegt

ltbinding name=ObjectServicePortBinding type=tnsObjectServicePortgt

ltsoapbinding transport=httpschemasxmlsoaporgsoaphttp style=documentgt

ltoperation name=creategtltsoapoperation soapAction=gtltinputgtltsoapbody

use=literalgtltinputgtltoutputgtltsoapbody use=literalgtltoutputgtltfault

name=SerializableExceptiongtltsoapfault name=SerializableException

use=literalgtltfaultgtltoperationgt

ltbindinggt

ltservice name=ObjectServicegt

ltport name=ObjectServicePort binding=tnsObjectServicePortBindinggtltsoapaddress location=

gtltportgt

ltservicegt

ltdefinitionsgt

WSDL is primary API

14copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 2 of 4)

package comemcdocumentumfsservicescoreclient

import comemcdocumentumfsdatamodelcore

import comemcdocumentumfsservicescoreCoreServiceException

public interface IObjectService

Creates all data object in the data package using the specified target repository

All specified related objects are also created All content is automatically

imported

Note DataPackage can contain operation-specific properties

param dataPackage

param options

return target DataPackage with a list of objects created By default it will only

return ObjectIdentity of the DataObjects with no ReferenceRelations MetadataProfile

and ContentProfile settings can be used to specify what data is populated

throws CoreServiceException

DataPackage create(DataPackage dataPackage OperationOptions options) throws

CoreServiceException

Consistent Java interface-based access

15copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 3 of 4)

ltsoapEnvelope gt

ltsoapHeadergt

ltwsseSecurity gtltwsseBinarySecurityToken

ValueType=httpschemasemccomdocumentumResourceAccessToken gt

ltwsseBinarySecurityTokengtltwsseSecuritygt

ltServiceContext xmlns=httpcontextcoredatamodelfsdocumentumemccomgt

ltprofiles xmlnsq1=httpprofilescoredatamodelfsdocumentumemccom

xsitype=q1PropertyProfile gtltprofiles xsitype=q2ContentProfile

formatFilter=ANY pageFilter=ANY pageNumber=0 pageModifierFilter=ANY gt

ltprofiles xsitype=q3ContentTransferProfile

mTransferMode=UCFgtltq3ActivityInfogtltsessionId

xmlns=httpcontentcoredatamodelfsdocumentumemccomgt ltsessionIdgt

ltactivityId gt ltactivityIdgtltautoCloseConnection gt

trueltautoCloseConnectiongtltq3ActivityInfogtltprofilesgtltServiceContextgt

ltsoapHeadergt

ltsoapBodygt

ltcreate xmlns=httpcoreservicesfsdocumentumemccomgt

ltDataPackage repositoryName=target_docbase

xmlns=httpcoredatamodelfsdocumentumemccomgtltDataObject isTransient=false

xmlns=gtltIdentity repositoryName=target_docbase valueType=UNDEFINED gtltFileContent

pageNumber=0 isLogical=false isPassthrough=false contentTransferMode=UCF

xmlns=httpcontentcoredatamodelfsdocumentumemccom gt

ltDataObjectgtltDataPackagegtoperation options (may be null)ltcreategt

ltsoapBodygt

ltsoapEnvelopegt

Consistent XML-XSD-based data model

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 6: 070524 EMC Documentum Foundation Services (Randall, SDC07)

6copy 2007 EMC Corporation All rights reserved

Distributed by definition some part of the applications are remote ndash not on a single middle tier or application server

Heterogeneous repository implementations APIs and applications will be implemented in a variety of languages and will run on a wide range of platforms

Coarse-grained ldquopartsrdquo that create the whole (the application) must provide substantial chunks of functionality and must be rapidly composed

Service-Oriented Architecture

Content Management Application Observations

7copy 2007 EMC Corporation All rights reserved

Our Position on SOA

There is no SOA product offeringndash Products enable

Provide high-value Content Management amp Archiving services

ndash Ready-to-deploy services (out-of-the-box)

ndash Services framework (extends industry standards)

ndash Developer tools (extends industry standards)

ndash Reusable common ECM functions

Enable consumption by disparate systemsndash Focus on standards

ndash Composite applications

ndash Common usage patterns

8copy 2007 EMC Corporation All rights reserved

Offer

Management

Customer status

(newexisting)

Determine Loan

Type

Document

Assembly

Verify customer

address

Obtain proper forms

(State Federal)

Loan

Processing

Review and

Approval

Loan Status

Marketing Sales CRM FinanceData

Warehouse

External

Partner

Before SOASiloed Closed Monolithic Brittle

Assemble loan

package

Order Status

Escrow

Data Repositories

Check Credit

Retain executed

documents

Customer request

via web

9copy 2007 EMC Corporation All rights reserved

Marketing Sales CRM FinanceData

Warehouse

External

Partner

After SOAShared Services Collaborative Interoperable Integrated

Data Repositories

Reusable

Service

Create

Loan

Documents

Check

Status

Review

and

Approval

Reusable

Service

Reusable

Service

Reusable

Service

Reusable

Service

Retain

DocumentsPublish

Reusable

Service

Composite

Application

Composed

Business Process

Document

Assembly

Loan

Processing

Offer

Management

Reusable Business Services

Composed Applications

10copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

DFS is about content participating in your business processes

ndash Interoperable (increased access)

ndash ECM services as peers to other existing services

ndash Standards based

DFS is the path forward for ECM business logicndash Will become the primary API

ndash DFC will remain (low-level)

Emphasizes service-orientation in the EMC Documentum platform

Why DFS

11copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

Embodies a service development lifecyclendash Design-time and runtime support to service developers and their

clients

Deployable Documentum platform services OOTB

SDK for service and solution developers (internal and external)

ndash Design-time tools

ndash Runtime infrastructure

ndash Documentum platform services (binaries for your solutions)

How DFS enables your SOA

12copy 2007 EMC Corporation All rights reserved

EMC Documentum Platform Services

Core

platform

services

(DFS)

Platform services

ldquoEcosystemrdquo services

Version Controlcheckin checkout

cancelCheckout

getCheckoutInfo

getVersionInfo

deleteVersion

deleteAllVersions

getCurrent

Schema getRepositoryInfo

getSchemaInfo

getTypeInfo

getPropertyInfo

getValueInfoList

Objectcreate get

update delete

copy move

validate

getObjectContentUrls

createPath

Queryexecute

Collaboration

Search

Compliance

Workflow

13copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 1 of 4)

ltxml version=10 encoding=UTF-8 standalone=yesgt

ltdefinitions targetNamespace=httpcoreservicesfsdocumentumemccom name=ObjectService

xmlnstns=httpcoreservicesfsdocumentumemccom xmlnsxsd=httpwwww3org2001XMLSchema

xmlnssoap=httpschemasxmlsoaporgwsdlsoap xmlns=httpschemasxmlsoaporgwsdlgt

lttypesgt

ltxsdschemagtltxsdimport namespace=httpcontentcoredatamodelfsdocumentumemccom

schemaLocation=ObjectService_schema8xsdgtltxsdschemagt

lttypesgt

ltmessage name=creategtltpart name=parameters element=tnscreategtltmessagegt

ltmessage name=createResponsegtltpart name=parameters element=tnscreateResponsegtltmessagegt

ltportType name=ObjectServicePortgt

ltoperation name=creategtltinput message=tnscreategtltoutput

message=tnscreateResponsegtltfault name=SerializableException

message=tnsSerializableExceptiongtltoperationgt

ltportTypegt

ltbinding name=ObjectServicePortBinding type=tnsObjectServicePortgt

ltsoapbinding transport=httpschemasxmlsoaporgsoaphttp style=documentgt

ltoperation name=creategtltsoapoperation soapAction=gtltinputgtltsoapbody

use=literalgtltinputgtltoutputgtltsoapbody use=literalgtltoutputgtltfault

name=SerializableExceptiongtltsoapfault name=SerializableException

use=literalgtltfaultgtltoperationgt

ltbindinggt

ltservice name=ObjectServicegt

ltport name=ObjectServicePort binding=tnsObjectServicePortBindinggtltsoapaddress location=

gtltportgt

ltservicegt

ltdefinitionsgt

WSDL is primary API

14copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 2 of 4)

package comemcdocumentumfsservicescoreclient

import comemcdocumentumfsdatamodelcore

import comemcdocumentumfsservicescoreCoreServiceException

public interface IObjectService

Creates all data object in the data package using the specified target repository

All specified related objects are also created All content is automatically

imported

Note DataPackage can contain operation-specific properties

param dataPackage

param options

return target DataPackage with a list of objects created By default it will only

return ObjectIdentity of the DataObjects with no ReferenceRelations MetadataProfile

and ContentProfile settings can be used to specify what data is populated

throws CoreServiceException

DataPackage create(DataPackage dataPackage OperationOptions options) throws

CoreServiceException

Consistent Java interface-based access

15copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 3 of 4)

ltsoapEnvelope gt

ltsoapHeadergt

ltwsseSecurity gtltwsseBinarySecurityToken

ValueType=httpschemasemccomdocumentumResourceAccessToken gt

ltwsseBinarySecurityTokengtltwsseSecuritygt

ltServiceContext xmlns=httpcontextcoredatamodelfsdocumentumemccomgt

ltprofiles xmlnsq1=httpprofilescoredatamodelfsdocumentumemccom

xsitype=q1PropertyProfile gtltprofiles xsitype=q2ContentProfile

formatFilter=ANY pageFilter=ANY pageNumber=0 pageModifierFilter=ANY gt

ltprofiles xsitype=q3ContentTransferProfile

mTransferMode=UCFgtltq3ActivityInfogtltsessionId

xmlns=httpcontentcoredatamodelfsdocumentumemccomgt ltsessionIdgt

ltactivityId gt ltactivityIdgtltautoCloseConnection gt

trueltautoCloseConnectiongtltq3ActivityInfogtltprofilesgtltServiceContextgt

ltsoapHeadergt

ltsoapBodygt

ltcreate xmlns=httpcoreservicesfsdocumentumemccomgt

ltDataPackage repositoryName=target_docbase

xmlns=httpcoredatamodelfsdocumentumemccomgtltDataObject isTransient=false

xmlns=gtltIdentity repositoryName=target_docbase valueType=UNDEFINED gtltFileContent

pageNumber=0 isLogical=false isPassthrough=false contentTransferMode=UCF

xmlns=httpcontentcoredatamodelfsdocumentumemccom gt

ltDataObjectgtltDataPackagegtoperation options (may be null)ltcreategt

ltsoapBodygt

ltsoapEnvelopegt

Consistent XML-XSD-based data model

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 7: 070524 EMC Documentum Foundation Services (Randall, SDC07)

7copy 2007 EMC Corporation All rights reserved

Our Position on SOA

There is no SOA product offeringndash Products enable

Provide high-value Content Management amp Archiving services

ndash Ready-to-deploy services (out-of-the-box)

ndash Services framework (extends industry standards)

ndash Developer tools (extends industry standards)

ndash Reusable common ECM functions

Enable consumption by disparate systemsndash Focus on standards

ndash Composite applications

ndash Common usage patterns

8copy 2007 EMC Corporation All rights reserved

Offer

Management

Customer status

(newexisting)

Determine Loan

Type

Document

Assembly

Verify customer

address

Obtain proper forms

(State Federal)

Loan

Processing

Review and

Approval

Loan Status

Marketing Sales CRM FinanceData

Warehouse

External

Partner

Before SOASiloed Closed Monolithic Brittle

Assemble loan

package

Order Status

Escrow

Data Repositories

Check Credit

Retain executed

documents

Customer request

via web

9copy 2007 EMC Corporation All rights reserved

Marketing Sales CRM FinanceData

Warehouse

External

Partner

After SOAShared Services Collaborative Interoperable Integrated

Data Repositories

Reusable

Service

Create

Loan

Documents

Check

Status

Review

and

Approval

Reusable

Service

Reusable

Service

Reusable

Service

Reusable

Service

Retain

DocumentsPublish

Reusable

Service

Composite

Application

Composed

Business Process

Document

Assembly

Loan

Processing

Offer

Management

Reusable Business Services

Composed Applications

10copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

DFS is about content participating in your business processes

ndash Interoperable (increased access)

ndash ECM services as peers to other existing services

ndash Standards based

DFS is the path forward for ECM business logicndash Will become the primary API

ndash DFC will remain (low-level)

Emphasizes service-orientation in the EMC Documentum platform

Why DFS

11copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

Embodies a service development lifecyclendash Design-time and runtime support to service developers and their

clients

Deployable Documentum platform services OOTB

SDK for service and solution developers (internal and external)

ndash Design-time tools

ndash Runtime infrastructure

ndash Documentum platform services (binaries for your solutions)

How DFS enables your SOA

12copy 2007 EMC Corporation All rights reserved

EMC Documentum Platform Services

Core

platform

services

(DFS)

Platform services

ldquoEcosystemrdquo services

Version Controlcheckin checkout

cancelCheckout

getCheckoutInfo

getVersionInfo

deleteVersion

deleteAllVersions

getCurrent

Schema getRepositoryInfo

getSchemaInfo

getTypeInfo

getPropertyInfo

getValueInfoList

Objectcreate get

update delete

copy move

validate

getObjectContentUrls

createPath

Queryexecute

Collaboration

Search

Compliance

Workflow

13copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 1 of 4)

ltxml version=10 encoding=UTF-8 standalone=yesgt

ltdefinitions targetNamespace=httpcoreservicesfsdocumentumemccom name=ObjectService

xmlnstns=httpcoreservicesfsdocumentumemccom xmlnsxsd=httpwwww3org2001XMLSchema

xmlnssoap=httpschemasxmlsoaporgwsdlsoap xmlns=httpschemasxmlsoaporgwsdlgt

lttypesgt

ltxsdschemagtltxsdimport namespace=httpcontentcoredatamodelfsdocumentumemccom

schemaLocation=ObjectService_schema8xsdgtltxsdschemagt

lttypesgt

ltmessage name=creategtltpart name=parameters element=tnscreategtltmessagegt

ltmessage name=createResponsegtltpart name=parameters element=tnscreateResponsegtltmessagegt

ltportType name=ObjectServicePortgt

ltoperation name=creategtltinput message=tnscreategtltoutput

message=tnscreateResponsegtltfault name=SerializableException

message=tnsSerializableExceptiongtltoperationgt

ltportTypegt

ltbinding name=ObjectServicePortBinding type=tnsObjectServicePortgt

ltsoapbinding transport=httpschemasxmlsoaporgsoaphttp style=documentgt

ltoperation name=creategtltsoapoperation soapAction=gtltinputgtltsoapbody

use=literalgtltinputgtltoutputgtltsoapbody use=literalgtltoutputgtltfault

name=SerializableExceptiongtltsoapfault name=SerializableException

use=literalgtltfaultgtltoperationgt

ltbindinggt

ltservice name=ObjectServicegt

ltport name=ObjectServicePort binding=tnsObjectServicePortBindinggtltsoapaddress location=

gtltportgt

ltservicegt

ltdefinitionsgt

WSDL is primary API

14copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 2 of 4)

package comemcdocumentumfsservicescoreclient

import comemcdocumentumfsdatamodelcore

import comemcdocumentumfsservicescoreCoreServiceException

public interface IObjectService

Creates all data object in the data package using the specified target repository

All specified related objects are also created All content is automatically

imported

Note DataPackage can contain operation-specific properties

param dataPackage

param options

return target DataPackage with a list of objects created By default it will only

return ObjectIdentity of the DataObjects with no ReferenceRelations MetadataProfile

and ContentProfile settings can be used to specify what data is populated

throws CoreServiceException

DataPackage create(DataPackage dataPackage OperationOptions options) throws

CoreServiceException

Consistent Java interface-based access

15copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 3 of 4)

ltsoapEnvelope gt

ltsoapHeadergt

ltwsseSecurity gtltwsseBinarySecurityToken

ValueType=httpschemasemccomdocumentumResourceAccessToken gt

ltwsseBinarySecurityTokengtltwsseSecuritygt

ltServiceContext xmlns=httpcontextcoredatamodelfsdocumentumemccomgt

ltprofiles xmlnsq1=httpprofilescoredatamodelfsdocumentumemccom

xsitype=q1PropertyProfile gtltprofiles xsitype=q2ContentProfile

formatFilter=ANY pageFilter=ANY pageNumber=0 pageModifierFilter=ANY gt

ltprofiles xsitype=q3ContentTransferProfile

mTransferMode=UCFgtltq3ActivityInfogtltsessionId

xmlns=httpcontentcoredatamodelfsdocumentumemccomgt ltsessionIdgt

ltactivityId gt ltactivityIdgtltautoCloseConnection gt

trueltautoCloseConnectiongtltq3ActivityInfogtltprofilesgtltServiceContextgt

ltsoapHeadergt

ltsoapBodygt

ltcreate xmlns=httpcoreservicesfsdocumentumemccomgt

ltDataPackage repositoryName=target_docbase

xmlns=httpcoredatamodelfsdocumentumemccomgtltDataObject isTransient=false

xmlns=gtltIdentity repositoryName=target_docbase valueType=UNDEFINED gtltFileContent

pageNumber=0 isLogical=false isPassthrough=false contentTransferMode=UCF

xmlns=httpcontentcoredatamodelfsdocumentumemccom gt

ltDataObjectgtltDataPackagegtoperation options (may be null)ltcreategt

ltsoapBodygt

ltsoapEnvelopegt

Consistent XML-XSD-based data model

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 8: 070524 EMC Documentum Foundation Services (Randall, SDC07)

8copy 2007 EMC Corporation All rights reserved

Offer

Management

Customer status

(newexisting)

Determine Loan

Type

Document

Assembly

Verify customer

address

Obtain proper forms

(State Federal)

Loan

Processing

Review and

Approval

Loan Status

Marketing Sales CRM FinanceData

Warehouse

External

Partner

Before SOASiloed Closed Monolithic Brittle

Assemble loan

package

Order Status

Escrow

Data Repositories

Check Credit

Retain executed

documents

Customer request

via web

9copy 2007 EMC Corporation All rights reserved

Marketing Sales CRM FinanceData

Warehouse

External

Partner

After SOAShared Services Collaborative Interoperable Integrated

Data Repositories

Reusable

Service

Create

Loan

Documents

Check

Status

Review

and

Approval

Reusable

Service

Reusable

Service

Reusable

Service

Reusable

Service

Retain

DocumentsPublish

Reusable

Service

Composite

Application

Composed

Business Process

Document

Assembly

Loan

Processing

Offer

Management

Reusable Business Services

Composed Applications

10copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

DFS is about content participating in your business processes

ndash Interoperable (increased access)

ndash ECM services as peers to other existing services

ndash Standards based

DFS is the path forward for ECM business logicndash Will become the primary API

ndash DFC will remain (low-level)

Emphasizes service-orientation in the EMC Documentum platform

Why DFS

11copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

Embodies a service development lifecyclendash Design-time and runtime support to service developers and their

clients

Deployable Documentum platform services OOTB

SDK for service and solution developers (internal and external)

ndash Design-time tools

ndash Runtime infrastructure

ndash Documentum platform services (binaries for your solutions)

How DFS enables your SOA

12copy 2007 EMC Corporation All rights reserved

EMC Documentum Platform Services

Core

platform

services

(DFS)

Platform services

ldquoEcosystemrdquo services

Version Controlcheckin checkout

cancelCheckout

getCheckoutInfo

getVersionInfo

deleteVersion

deleteAllVersions

getCurrent

Schema getRepositoryInfo

getSchemaInfo

getTypeInfo

getPropertyInfo

getValueInfoList

Objectcreate get

update delete

copy move

validate

getObjectContentUrls

createPath

Queryexecute

Collaboration

Search

Compliance

Workflow

13copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 1 of 4)

ltxml version=10 encoding=UTF-8 standalone=yesgt

ltdefinitions targetNamespace=httpcoreservicesfsdocumentumemccom name=ObjectService

xmlnstns=httpcoreservicesfsdocumentumemccom xmlnsxsd=httpwwww3org2001XMLSchema

xmlnssoap=httpschemasxmlsoaporgwsdlsoap xmlns=httpschemasxmlsoaporgwsdlgt

lttypesgt

ltxsdschemagtltxsdimport namespace=httpcontentcoredatamodelfsdocumentumemccom

schemaLocation=ObjectService_schema8xsdgtltxsdschemagt

lttypesgt

ltmessage name=creategtltpart name=parameters element=tnscreategtltmessagegt

ltmessage name=createResponsegtltpart name=parameters element=tnscreateResponsegtltmessagegt

ltportType name=ObjectServicePortgt

ltoperation name=creategtltinput message=tnscreategtltoutput

message=tnscreateResponsegtltfault name=SerializableException

message=tnsSerializableExceptiongtltoperationgt

ltportTypegt

ltbinding name=ObjectServicePortBinding type=tnsObjectServicePortgt

ltsoapbinding transport=httpschemasxmlsoaporgsoaphttp style=documentgt

ltoperation name=creategtltsoapoperation soapAction=gtltinputgtltsoapbody

use=literalgtltinputgtltoutputgtltsoapbody use=literalgtltoutputgtltfault

name=SerializableExceptiongtltsoapfault name=SerializableException

use=literalgtltfaultgtltoperationgt

ltbindinggt

ltservice name=ObjectServicegt

ltport name=ObjectServicePort binding=tnsObjectServicePortBindinggtltsoapaddress location=

gtltportgt

ltservicegt

ltdefinitionsgt

WSDL is primary API

14copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 2 of 4)

package comemcdocumentumfsservicescoreclient

import comemcdocumentumfsdatamodelcore

import comemcdocumentumfsservicescoreCoreServiceException

public interface IObjectService

Creates all data object in the data package using the specified target repository

All specified related objects are also created All content is automatically

imported

Note DataPackage can contain operation-specific properties

param dataPackage

param options

return target DataPackage with a list of objects created By default it will only

return ObjectIdentity of the DataObjects with no ReferenceRelations MetadataProfile

and ContentProfile settings can be used to specify what data is populated

throws CoreServiceException

DataPackage create(DataPackage dataPackage OperationOptions options) throws

CoreServiceException

Consistent Java interface-based access

15copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 3 of 4)

ltsoapEnvelope gt

ltsoapHeadergt

ltwsseSecurity gtltwsseBinarySecurityToken

ValueType=httpschemasemccomdocumentumResourceAccessToken gt

ltwsseBinarySecurityTokengtltwsseSecuritygt

ltServiceContext xmlns=httpcontextcoredatamodelfsdocumentumemccomgt

ltprofiles xmlnsq1=httpprofilescoredatamodelfsdocumentumemccom

xsitype=q1PropertyProfile gtltprofiles xsitype=q2ContentProfile

formatFilter=ANY pageFilter=ANY pageNumber=0 pageModifierFilter=ANY gt

ltprofiles xsitype=q3ContentTransferProfile

mTransferMode=UCFgtltq3ActivityInfogtltsessionId

xmlns=httpcontentcoredatamodelfsdocumentumemccomgt ltsessionIdgt

ltactivityId gt ltactivityIdgtltautoCloseConnection gt

trueltautoCloseConnectiongtltq3ActivityInfogtltprofilesgtltServiceContextgt

ltsoapHeadergt

ltsoapBodygt

ltcreate xmlns=httpcoreservicesfsdocumentumemccomgt

ltDataPackage repositoryName=target_docbase

xmlns=httpcoredatamodelfsdocumentumemccomgtltDataObject isTransient=false

xmlns=gtltIdentity repositoryName=target_docbase valueType=UNDEFINED gtltFileContent

pageNumber=0 isLogical=false isPassthrough=false contentTransferMode=UCF

xmlns=httpcontentcoredatamodelfsdocumentumemccom gt

ltDataObjectgtltDataPackagegtoperation options (may be null)ltcreategt

ltsoapBodygt

ltsoapEnvelopegt

Consistent XML-XSD-based data model

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 9: 070524 EMC Documentum Foundation Services (Randall, SDC07)

9copy 2007 EMC Corporation All rights reserved

Marketing Sales CRM FinanceData

Warehouse

External

Partner

After SOAShared Services Collaborative Interoperable Integrated

Data Repositories

Reusable

Service

Create

Loan

Documents

Check

Status

Review

and

Approval

Reusable

Service

Reusable

Service

Reusable

Service

Reusable

Service

Retain

DocumentsPublish

Reusable

Service

Composite

Application

Composed

Business Process

Document

Assembly

Loan

Processing

Offer

Management

Reusable Business Services

Composed Applications

10copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

DFS is about content participating in your business processes

ndash Interoperable (increased access)

ndash ECM services as peers to other existing services

ndash Standards based

DFS is the path forward for ECM business logicndash Will become the primary API

ndash DFC will remain (low-level)

Emphasizes service-orientation in the EMC Documentum platform

Why DFS

11copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

Embodies a service development lifecyclendash Design-time and runtime support to service developers and their

clients

Deployable Documentum platform services OOTB

SDK for service and solution developers (internal and external)

ndash Design-time tools

ndash Runtime infrastructure

ndash Documentum platform services (binaries for your solutions)

How DFS enables your SOA

12copy 2007 EMC Corporation All rights reserved

EMC Documentum Platform Services

Core

platform

services

(DFS)

Platform services

ldquoEcosystemrdquo services

Version Controlcheckin checkout

cancelCheckout

getCheckoutInfo

getVersionInfo

deleteVersion

deleteAllVersions

getCurrent

Schema getRepositoryInfo

getSchemaInfo

getTypeInfo

getPropertyInfo

getValueInfoList

Objectcreate get

update delete

copy move

validate

getObjectContentUrls

createPath

Queryexecute

Collaboration

Search

Compliance

Workflow

13copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 1 of 4)

ltxml version=10 encoding=UTF-8 standalone=yesgt

ltdefinitions targetNamespace=httpcoreservicesfsdocumentumemccom name=ObjectService

xmlnstns=httpcoreservicesfsdocumentumemccom xmlnsxsd=httpwwww3org2001XMLSchema

xmlnssoap=httpschemasxmlsoaporgwsdlsoap xmlns=httpschemasxmlsoaporgwsdlgt

lttypesgt

ltxsdschemagtltxsdimport namespace=httpcontentcoredatamodelfsdocumentumemccom

schemaLocation=ObjectService_schema8xsdgtltxsdschemagt

lttypesgt

ltmessage name=creategtltpart name=parameters element=tnscreategtltmessagegt

ltmessage name=createResponsegtltpart name=parameters element=tnscreateResponsegtltmessagegt

ltportType name=ObjectServicePortgt

ltoperation name=creategtltinput message=tnscreategtltoutput

message=tnscreateResponsegtltfault name=SerializableException

message=tnsSerializableExceptiongtltoperationgt

ltportTypegt

ltbinding name=ObjectServicePortBinding type=tnsObjectServicePortgt

ltsoapbinding transport=httpschemasxmlsoaporgsoaphttp style=documentgt

ltoperation name=creategtltsoapoperation soapAction=gtltinputgtltsoapbody

use=literalgtltinputgtltoutputgtltsoapbody use=literalgtltoutputgtltfault

name=SerializableExceptiongtltsoapfault name=SerializableException

use=literalgtltfaultgtltoperationgt

ltbindinggt

ltservice name=ObjectServicegt

ltport name=ObjectServicePort binding=tnsObjectServicePortBindinggtltsoapaddress location=

gtltportgt

ltservicegt

ltdefinitionsgt

WSDL is primary API

14copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 2 of 4)

package comemcdocumentumfsservicescoreclient

import comemcdocumentumfsdatamodelcore

import comemcdocumentumfsservicescoreCoreServiceException

public interface IObjectService

Creates all data object in the data package using the specified target repository

All specified related objects are also created All content is automatically

imported

Note DataPackage can contain operation-specific properties

param dataPackage

param options

return target DataPackage with a list of objects created By default it will only

return ObjectIdentity of the DataObjects with no ReferenceRelations MetadataProfile

and ContentProfile settings can be used to specify what data is populated

throws CoreServiceException

DataPackage create(DataPackage dataPackage OperationOptions options) throws

CoreServiceException

Consistent Java interface-based access

15copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 3 of 4)

ltsoapEnvelope gt

ltsoapHeadergt

ltwsseSecurity gtltwsseBinarySecurityToken

ValueType=httpschemasemccomdocumentumResourceAccessToken gt

ltwsseBinarySecurityTokengtltwsseSecuritygt

ltServiceContext xmlns=httpcontextcoredatamodelfsdocumentumemccomgt

ltprofiles xmlnsq1=httpprofilescoredatamodelfsdocumentumemccom

xsitype=q1PropertyProfile gtltprofiles xsitype=q2ContentProfile

formatFilter=ANY pageFilter=ANY pageNumber=0 pageModifierFilter=ANY gt

ltprofiles xsitype=q3ContentTransferProfile

mTransferMode=UCFgtltq3ActivityInfogtltsessionId

xmlns=httpcontentcoredatamodelfsdocumentumemccomgt ltsessionIdgt

ltactivityId gt ltactivityIdgtltautoCloseConnection gt

trueltautoCloseConnectiongtltq3ActivityInfogtltprofilesgtltServiceContextgt

ltsoapHeadergt

ltsoapBodygt

ltcreate xmlns=httpcoreservicesfsdocumentumemccomgt

ltDataPackage repositoryName=target_docbase

xmlns=httpcoredatamodelfsdocumentumemccomgtltDataObject isTransient=false

xmlns=gtltIdentity repositoryName=target_docbase valueType=UNDEFINED gtltFileContent

pageNumber=0 isLogical=false isPassthrough=false contentTransferMode=UCF

xmlns=httpcontentcoredatamodelfsdocumentumemccom gt

ltDataObjectgtltDataPackagegtoperation options (may be null)ltcreategt

ltsoapBodygt

ltsoapEnvelopegt

Consistent XML-XSD-based data model

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 10: 070524 EMC Documentum Foundation Services (Randall, SDC07)

10copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

DFS is about content participating in your business processes

ndash Interoperable (increased access)

ndash ECM services as peers to other existing services

ndash Standards based

DFS is the path forward for ECM business logicndash Will become the primary API

ndash DFC will remain (low-level)

Emphasizes service-orientation in the EMC Documentum platform

Why DFS

11copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

Embodies a service development lifecyclendash Design-time and runtime support to service developers and their

clients

Deployable Documentum platform services OOTB

SDK for service and solution developers (internal and external)

ndash Design-time tools

ndash Runtime infrastructure

ndash Documentum platform services (binaries for your solutions)

How DFS enables your SOA

12copy 2007 EMC Corporation All rights reserved

EMC Documentum Platform Services

Core

platform

services

(DFS)

Platform services

ldquoEcosystemrdquo services

Version Controlcheckin checkout

cancelCheckout

getCheckoutInfo

getVersionInfo

deleteVersion

deleteAllVersions

getCurrent

Schema getRepositoryInfo

getSchemaInfo

getTypeInfo

getPropertyInfo

getValueInfoList

Objectcreate get

update delete

copy move

validate

getObjectContentUrls

createPath

Queryexecute

Collaboration

Search

Compliance

Workflow

13copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 1 of 4)

ltxml version=10 encoding=UTF-8 standalone=yesgt

ltdefinitions targetNamespace=httpcoreservicesfsdocumentumemccom name=ObjectService

xmlnstns=httpcoreservicesfsdocumentumemccom xmlnsxsd=httpwwww3org2001XMLSchema

xmlnssoap=httpschemasxmlsoaporgwsdlsoap xmlns=httpschemasxmlsoaporgwsdlgt

lttypesgt

ltxsdschemagtltxsdimport namespace=httpcontentcoredatamodelfsdocumentumemccom

schemaLocation=ObjectService_schema8xsdgtltxsdschemagt

lttypesgt

ltmessage name=creategtltpart name=parameters element=tnscreategtltmessagegt

ltmessage name=createResponsegtltpart name=parameters element=tnscreateResponsegtltmessagegt

ltportType name=ObjectServicePortgt

ltoperation name=creategtltinput message=tnscreategtltoutput

message=tnscreateResponsegtltfault name=SerializableException

message=tnsSerializableExceptiongtltoperationgt

ltportTypegt

ltbinding name=ObjectServicePortBinding type=tnsObjectServicePortgt

ltsoapbinding transport=httpschemasxmlsoaporgsoaphttp style=documentgt

ltoperation name=creategtltsoapoperation soapAction=gtltinputgtltsoapbody

use=literalgtltinputgtltoutputgtltsoapbody use=literalgtltoutputgtltfault

name=SerializableExceptiongtltsoapfault name=SerializableException

use=literalgtltfaultgtltoperationgt

ltbindinggt

ltservice name=ObjectServicegt

ltport name=ObjectServicePort binding=tnsObjectServicePortBindinggtltsoapaddress location=

gtltportgt

ltservicegt

ltdefinitionsgt

WSDL is primary API

14copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 2 of 4)

package comemcdocumentumfsservicescoreclient

import comemcdocumentumfsdatamodelcore

import comemcdocumentumfsservicescoreCoreServiceException

public interface IObjectService

Creates all data object in the data package using the specified target repository

All specified related objects are also created All content is automatically

imported

Note DataPackage can contain operation-specific properties

param dataPackage

param options

return target DataPackage with a list of objects created By default it will only

return ObjectIdentity of the DataObjects with no ReferenceRelations MetadataProfile

and ContentProfile settings can be used to specify what data is populated

throws CoreServiceException

DataPackage create(DataPackage dataPackage OperationOptions options) throws

CoreServiceException

Consistent Java interface-based access

15copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 3 of 4)

ltsoapEnvelope gt

ltsoapHeadergt

ltwsseSecurity gtltwsseBinarySecurityToken

ValueType=httpschemasemccomdocumentumResourceAccessToken gt

ltwsseBinarySecurityTokengtltwsseSecuritygt

ltServiceContext xmlns=httpcontextcoredatamodelfsdocumentumemccomgt

ltprofiles xmlnsq1=httpprofilescoredatamodelfsdocumentumemccom

xsitype=q1PropertyProfile gtltprofiles xsitype=q2ContentProfile

formatFilter=ANY pageFilter=ANY pageNumber=0 pageModifierFilter=ANY gt

ltprofiles xsitype=q3ContentTransferProfile

mTransferMode=UCFgtltq3ActivityInfogtltsessionId

xmlns=httpcontentcoredatamodelfsdocumentumemccomgt ltsessionIdgt

ltactivityId gt ltactivityIdgtltautoCloseConnection gt

trueltautoCloseConnectiongtltq3ActivityInfogtltprofilesgtltServiceContextgt

ltsoapHeadergt

ltsoapBodygt

ltcreate xmlns=httpcoreservicesfsdocumentumemccomgt

ltDataPackage repositoryName=target_docbase

xmlns=httpcoredatamodelfsdocumentumemccomgtltDataObject isTransient=false

xmlns=gtltIdentity repositoryName=target_docbase valueType=UNDEFINED gtltFileContent

pageNumber=0 isLogical=false isPassthrough=false contentTransferMode=UCF

xmlns=httpcontentcoredatamodelfsdocumentumemccom gt

ltDataObjectgtltDataPackagegtoperation options (may be null)ltcreategt

ltsoapBodygt

ltsoapEnvelopegt

Consistent XML-XSD-based data model

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 11: 070524 EMC Documentum Foundation Services (Randall, SDC07)

11copy 2007 EMC Corporation All rights reserved

EMC Documentum Foundation Services (DFS)

Embodies a service development lifecyclendash Design-time and runtime support to service developers and their

clients

Deployable Documentum platform services OOTB

SDK for service and solution developers (internal and external)

ndash Design-time tools

ndash Runtime infrastructure

ndash Documentum platform services (binaries for your solutions)

How DFS enables your SOA

12copy 2007 EMC Corporation All rights reserved

EMC Documentum Platform Services

Core

platform

services

(DFS)

Platform services

ldquoEcosystemrdquo services

Version Controlcheckin checkout

cancelCheckout

getCheckoutInfo

getVersionInfo

deleteVersion

deleteAllVersions

getCurrent

Schema getRepositoryInfo

getSchemaInfo

getTypeInfo

getPropertyInfo

getValueInfoList

Objectcreate get

update delete

copy move

validate

getObjectContentUrls

createPath

Queryexecute

Collaboration

Search

Compliance

Workflow

13copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 1 of 4)

ltxml version=10 encoding=UTF-8 standalone=yesgt

ltdefinitions targetNamespace=httpcoreservicesfsdocumentumemccom name=ObjectService

xmlnstns=httpcoreservicesfsdocumentumemccom xmlnsxsd=httpwwww3org2001XMLSchema

xmlnssoap=httpschemasxmlsoaporgwsdlsoap xmlns=httpschemasxmlsoaporgwsdlgt

lttypesgt

ltxsdschemagtltxsdimport namespace=httpcontentcoredatamodelfsdocumentumemccom

schemaLocation=ObjectService_schema8xsdgtltxsdschemagt

lttypesgt

ltmessage name=creategtltpart name=parameters element=tnscreategtltmessagegt

ltmessage name=createResponsegtltpart name=parameters element=tnscreateResponsegtltmessagegt

ltportType name=ObjectServicePortgt

ltoperation name=creategtltinput message=tnscreategtltoutput

message=tnscreateResponsegtltfault name=SerializableException

message=tnsSerializableExceptiongtltoperationgt

ltportTypegt

ltbinding name=ObjectServicePortBinding type=tnsObjectServicePortgt

ltsoapbinding transport=httpschemasxmlsoaporgsoaphttp style=documentgt

ltoperation name=creategtltsoapoperation soapAction=gtltinputgtltsoapbody

use=literalgtltinputgtltoutputgtltsoapbody use=literalgtltoutputgtltfault

name=SerializableExceptiongtltsoapfault name=SerializableException

use=literalgtltfaultgtltoperationgt

ltbindinggt

ltservice name=ObjectServicegt

ltport name=ObjectServicePort binding=tnsObjectServicePortBindinggtltsoapaddress location=

gtltportgt

ltservicegt

ltdefinitionsgt

WSDL is primary API

14copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 2 of 4)

package comemcdocumentumfsservicescoreclient

import comemcdocumentumfsdatamodelcore

import comemcdocumentumfsservicescoreCoreServiceException

public interface IObjectService

Creates all data object in the data package using the specified target repository

All specified related objects are also created All content is automatically

imported

Note DataPackage can contain operation-specific properties

param dataPackage

param options

return target DataPackage with a list of objects created By default it will only

return ObjectIdentity of the DataObjects with no ReferenceRelations MetadataProfile

and ContentProfile settings can be used to specify what data is populated

throws CoreServiceException

DataPackage create(DataPackage dataPackage OperationOptions options) throws

CoreServiceException

Consistent Java interface-based access

15copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 3 of 4)

ltsoapEnvelope gt

ltsoapHeadergt

ltwsseSecurity gtltwsseBinarySecurityToken

ValueType=httpschemasemccomdocumentumResourceAccessToken gt

ltwsseBinarySecurityTokengtltwsseSecuritygt

ltServiceContext xmlns=httpcontextcoredatamodelfsdocumentumemccomgt

ltprofiles xmlnsq1=httpprofilescoredatamodelfsdocumentumemccom

xsitype=q1PropertyProfile gtltprofiles xsitype=q2ContentProfile

formatFilter=ANY pageFilter=ANY pageNumber=0 pageModifierFilter=ANY gt

ltprofiles xsitype=q3ContentTransferProfile

mTransferMode=UCFgtltq3ActivityInfogtltsessionId

xmlns=httpcontentcoredatamodelfsdocumentumemccomgt ltsessionIdgt

ltactivityId gt ltactivityIdgtltautoCloseConnection gt

trueltautoCloseConnectiongtltq3ActivityInfogtltprofilesgtltServiceContextgt

ltsoapHeadergt

ltsoapBodygt

ltcreate xmlns=httpcoreservicesfsdocumentumemccomgt

ltDataPackage repositoryName=target_docbase

xmlns=httpcoredatamodelfsdocumentumemccomgtltDataObject isTransient=false

xmlns=gtltIdentity repositoryName=target_docbase valueType=UNDEFINED gtltFileContent

pageNumber=0 isLogical=false isPassthrough=false contentTransferMode=UCF

xmlns=httpcontentcoredatamodelfsdocumentumemccom gt

ltDataObjectgtltDataPackagegtoperation options (may be null)ltcreategt

ltsoapBodygt

ltsoapEnvelopegt

Consistent XML-XSD-based data model

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 12: 070524 EMC Documentum Foundation Services (Randall, SDC07)

12copy 2007 EMC Corporation All rights reserved

EMC Documentum Platform Services

Core

platform

services

(DFS)

Platform services

ldquoEcosystemrdquo services

Version Controlcheckin checkout

cancelCheckout

getCheckoutInfo

getVersionInfo

deleteVersion

deleteAllVersions

getCurrent

Schema getRepositoryInfo

getSchemaInfo

getTypeInfo

getPropertyInfo

getValueInfoList

Objectcreate get

update delete

copy move

validate

getObjectContentUrls

createPath

Queryexecute

Collaboration

Search

Compliance

Workflow

13copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 1 of 4)

ltxml version=10 encoding=UTF-8 standalone=yesgt

ltdefinitions targetNamespace=httpcoreservicesfsdocumentumemccom name=ObjectService

xmlnstns=httpcoreservicesfsdocumentumemccom xmlnsxsd=httpwwww3org2001XMLSchema

xmlnssoap=httpschemasxmlsoaporgwsdlsoap xmlns=httpschemasxmlsoaporgwsdlgt

lttypesgt

ltxsdschemagtltxsdimport namespace=httpcontentcoredatamodelfsdocumentumemccom

schemaLocation=ObjectService_schema8xsdgtltxsdschemagt

lttypesgt

ltmessage name=creategtltpart name=parameters element=tnscreategtltmessagegt

ltmessage name=createResponsegtltpart name=parameters element=tnscreateResponsegtltmessagegt

ltportType name=ObjectServicePortgt

ltoperation name=creategtltinput message=tnscreategtltoutput

message=tnscreateResponsegtltfault name=SerializableException

message=tnsSerializableExceptiongtltoperationgt

ltportTypegt

ltbinding name=ObjectServicePortBinding type=tnsObjectServicePortgt

ltsoapbinding transport=httpschemasxmlsoaporgsoaphttp style=documentgt

ltoperation name=creategtltsoapoperation soapAction=gtltinputgtltsoapbody

use=literalgtltinputgtltoutputgtltsoapbody use=literalgtltoutputgtltfault

name=SerializableExceptiongtltsoapfault name=SerializableException

use=literalgtltfaultgtltoperationgt

ltbindinggt

ltservice name=ObjectServicegt

ltport name=ObjectServicePort binding=tnsObjectServicePortBindinggtltsoapaddress location=

gtltportgt

ltservicegt

ltdefinitionsgt

WSDL is primary API

14copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 2 of 4)

package comemcdocumentumfsservicescoreclient

import comemcdocumentumfsdatamodelcore

import comemcdocumentumfsservicescoreCoreServiceException

public interface IObjectService

Creates all data object in the data package using the specified target repository

All specified related objects are also created All content is automatically

imported

Note DataPackage can contain operation-specific properties

param dataPackage

param options

return target DataPackage with a list of objects created By default it will only

return ObjectIdentity of the DataObjects with no ReferenceRelations MetadataProfile

and ContentProfile settings can be used to specify what data is populated

throws CoreServiceException

DataPackage create(DataPackage dataPackage OperationOptions options) throws

CoreServiceException

Consistent Java interface-based access

15copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 3 of 4)

ltsoapEnvelope gt

ltsoapHeadergt

ltwsseSecurity gtltwsseBinarySecurityToken

ValueType=httpschemasemccomdocumentumResourceAccessToken gt

ltwsseBinarySecurityTokengtltwsseSecuritygt

ltServiceContext xmlns=httpcontextcoredatamodelfsdocumentumemccomgt

ltprofiles xmlnsq1=httpprofilescoredatamodelfsdocumentumemccom

xsitype=q1PropertyProfile gtltprofiles xsitype=q2ContentProfile

formatFilter=ANY pageFilter=ANY pageNumber=0 pageModifierFilter=ANY gt

ltprofiles xsitype=q3ContentTransferProfile

mTransferMode=UCFgtltq3ActivityInfogtltsessionId

xmlns=httpcontentcoredatamodelfsdocumentumemccomgt ltsessionIdgt

ltactivityId gt ltactivityIdgtltautoCloseConnection gt

trueltautoCloseConnectiongtltq3ActivityInfogtltprofilesgtltServiceContextgt

ltsoapHeadergt

ltsoapBodygt

ltcreate xmlns=httpcoreservicesfsdocumentumemccomgt

ltDataPackage repositoryName=target_docbase

xmlns=httpcoredatamodelfsdocumentumemccomgtltDataObject isTransient=false

xmlns=gtltIdentity repositoryName=target_docbase valueType=UNDEFINED gtltFileContent

pageNumber=0 isLogical=false isPassthrough=false contentTransferMode=UCF

xmlns=httpcontentcoredatamodelfsdocumentumemccom gt

ltDataObjectgtltDataPackagegtoperation options (may be null)ltcreategt

ltsoapBodygt

ltsoapEnvelopegt

Consistent XML-XSD-based data model

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 13: 070524 EMC Documentum Foundation Services (Randall, SDC07)

13copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 1 of 4)

ltxml version=10 encoding=UTF-8 standalone=yesgt

ltdefinitions targetNamespace=httpcoreservicesfsdocumentumemccom name=ObjectService

xmlnstns=httpcoreservicesfsdocumentumemccom xmlnsxsd=httpwwww3org2001XMLSchema

xmlnssoap=httpschemasxmlsoaporgwsdlsoap xmlns=httpschemasxmlsoaporgwsdlgt

lttypesgt

ltxsdschemagtltxsdimport namespace=httpcontentcoredatamodelfsdocumentumemccom

schemaLocation=ObjectService_schema8xsdgtltxsdschemagt

lttypesgt

ltmessage name=creategtltpart name=parameters element=tnscreategtltmessagegt

ltmessage name=createResponsegtltpart name=parameters element=tnscreateResponsegtltmessagegt

ltportType name=ObjectServicePortgt

ltoperation name=creategtltinput message=tnscreategtltoutput

message=tnscreateResponsegtltfault name=SerializableException

message=tnsSerializableExceptiongtltoperationgt

ltportTypegt

ltbinding name=ObjectServicePortBinding type=tnsObjectServicePortgt

ltsoapbinding transport=httpschemasxmlsoaporgsoaphttp style=documentgt

ltoperation name=creategtltsoapoperation soapAction=gtltinputgtltsoapbody

use=literalgtltinputgtltoutputgtltsoapbody use=literalgtltoutputgtltfault

name=SerializableExceptiongtltsoapfault name=SerializableException

use=literalgtltfaultgtltoperationgt

ltbindinggt

ltservice name=ObjectServicegt

ltport name=ObjectServicePort binding=tnsObjectServicePortBindinggtltsoapaddress location=

gtltportgt

ltservicegt

ltdefinitionsgt

WSDL is primary API

14copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 2 of 4)

package comemcdocumentumfsservicescoreclient

import comemcdocumentumfsdatamodelcore

import comemcdocumentumfsservicescoreCoreServiceException

public interface IObjectService

Creates all data object in the data package using the specified target repository

All specified related objects are also created All content is automatically

imported

Note DataPackage can contain operation-specific properties

param dataPackage

param options

return target DataPackage with a list of objects created By default it will only

return ObjectIdentity of the DataObjects with no ReferenceRelations MetadataProfile

and ContentProfile settings can be used to specify what data is populated

throws CoreServiceException

DataPackage create(DataPackage dataPackage OperationOptions options) throws

CoreServiceException

Consistent Java interface-based access

15copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 3 of 4)

ltsoapEnvelope gt

ltsoapHeadergt

ltwsseSecurity gtltwsseBinarySecurityToken

ValueType=httpschemasemccomdocumentumResourceAccessToken gt

ltwsseBinarySecurityTokengtltwsseSecuritygt

ltServiceContext xmlns=httpcontextcoredatamodelfsdocumentumemccomgt

ltprofiles xmlnsq1=httpprofilescoredatamodelfsdocumentumemccom

xsitype=q1PropertyProfile gtltprofiles xsitype=q2ContentProfile

formatFilter=ANY pageFilter=ANY pageNumber=0 pageModifierFilter=ANY gt

ltprofiles xsitype=q3ContentTransferProfile

mTransferMode=UCFgtltq3ActivityInfogtltsessionId

xmlns=httpcontentcoredatamodelfsdocumentumemccomgt ltsessionIdgt

ltactivityId gt ltactivityIdgtltautoCloseConnection gt

trueltautoCloseConnectiongtltq3ActivityInfogtltprofilesgtltServiceContextgt

ltsoapHeadergt

ltsoapBodygt

ltcreate xmlns=httpcoreservicesfsdocumentumemccomgt

ltDataPackage repositoryName=target_docbase

xmlns=httpcoredatamodelfsdocumentumemccomgtltDataObject isTransient=false

xmlns=gtltIdentity repositoryName=target_docbase valueType=UNDEFINED gtltFileContent

pageNumber=0 isLogical=false isPassthrough=false contentTransferMode=UCF

xmlns=httpcontentcoredatamodelfsdocumentumemccom gt

ltDataObjectgtltDataPackagegtoperation options (may be null)ltcreategt

ltsoapBodygt

ltsoapEnvelopegt

Consistent XML-XSD-based data model

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 14: 070524 EMC Documentum Foundation Services (Randall, SDC07)

14copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 2 of 4)

package comemcdocumentumfsservicescoreclient

import comemcdocumentumfsdatamodelcore

import comemcdocumentumfsservicescoreCoreServiceException

public interface IObjectService

Creates all data object in the data package using the specified target repository

All specified related objects are also created All content is automatically

imported

Note DataPackage can contain operation-specific properties

param dataPackage

param options

return target DataPackage with a list of objects created By default it will only

return ObjectIdentity of the DataObjects with no ReferenceRelations MetadataProfile

and ContentProfile settings can be used to specify what data is populated

throws CoreServiceException

DataPackage create(DataPackage dataPackage OperationOptions options) throws

CoreServiceException

Consistent Java interface-based access

15copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 3 of 4)

ltsoapEnvelope gt

ltsoapHeadergt

ltwsseSecurity gtltwsseBinarySecurityToken

ValueType=httpschemasemccomdocumentumResourceAccessToken gt

ltwsseBinarySecurityTokengtltwsseSecuritygt

ltServiceContext xmlns=httpcontextcoredatamodelfsdocumentumemccomgt

ltprofiles xmlnsq1=httpprofilescoredatamodelfsdocumentumemccom

xsitype=q1PropertyProfile gtltprofiles xsitype=q2ContentProfile

formatFilter=ANY pageFilter=ANY pageNumber=0 pageModifierFilter=ANY gt

ltprofiles xsitype=q3ContentTransferProfile

mTransferMode=UCFgtltq3ActivityInfogtltsessionId

xmlns=httpcontentcoredatamodelfsdocumentumemccomgt ltsessionIdgt

ltactivityId gt ltactivityIdgtltautoCloseConnection gt

trueltautoCloseConnectiongtltq3ActivityInfogtltprofilesgtltServiceContextgt

ltsoapHeadergt

ltsoapBodygt

ltcreate xmlns=httpcoreservicesfsdocumentumemccomgt

ltDataPackage repositoryName=target_docbase

xmlns=httpcoredatamodelfsdocumentumemccomgtltDataObject isTransient=false

xmlns=gtltIdentity repositoryName=target_docbase valueType=UNDEFINED gtltFileContent

pageNumber=0 isLogical=false isPassthrough=false contentTransferMode=UCF

xmlns=httpcontentcoredatamodelfsdocumentumemccom gt

ltDataObjectgtltDataPackagegtoperation options (may be null)ltcreategt

ltsoapBodygt

ltsoapEnvelopegt

Consistent XML-XSD-based data model

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 15: 070524 EMC Documentum Foundation Services (Randall, SDC07)

15copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 3 of 4)

ltsoapEnvelope gt

ltsoapHeadergt

ltwsseSecurity gtltwsseBinarySecurityToken

ValueType=httpschemasemccomdocumentumResourceAccessToken gt

ltwsseBinarySecurityTokengtltwsseSecuritygt

ltServiceContext xmlns=httpcontextcoredatamodelfsdocumentumemccomgt

ltprofiles xmlnsq1=httpprofilescoredatamodelfsdocumentumemccom

xsitype=q1PropertyProfile gtltprofiles xsitype=q2ContentProfile

formatFilter=ANY pageFilter=ANY pageNumber=0 pageModifierFilter=ANY gt

ltprofiles xsitype=q3ContentTransferProfile

mTransferMode=UCFgtltq3ActivityInfogtltsessionId

xmlns=httpcontentcoredatamodelfsdocumentumemccomgt ltsessionIdgt

ltactivityId gt ltactivityIdgtltautoCloseConnection gt

trueltautoCloseConnectiongtltq3ActivityInfogtltprofilesgtltServiceContextgt

ltsoapHeadergt

ltsoapBodygt

ltcreate xmlns=httpcoreservicesfsdocumentumemccomgt

ltDataPackage repositoryName=target_docbase

xmlns=httpcoredatamodelfsdocumentumemccomgtltDataObject isTransient=false

xmlns=gtltIdentity repositoryName=target_docbase valueType=UNDEFINED gtltFileContent

pageNumber=0 isLogical=false isPassthrough=false contentTransferMode=UCF

xmlns=httpcontentcoredatamodelfsdocumentumemccom gt

ltDataObjectgtltDataPackagegtoperation options (may be null)ltcreategt

ltsoapBodygt

ltsoapEnvelopegt

Consistent XML-XSD-based data model

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 16: 070524 EMC Documentum Foundation Services (Randall, SDC07)

16copy 2007 EMC Corporation All rights reserved

Closer Look ndash Object Service (page 4 of 4)

package comemcdocumentumfsdatamodelcore

XmlType (name=DataPackage namespace = httpcoredatamodelfsdocumentumemccom)

XmlRootElement (name=DataPackage)

XmlAccessorType (XmlAccessTypeFIELD)

public class DataPackage

public DataPackage(DataObject dataObject)[] more ctorrsquos too

public void addDataObject(DataObject dataObject)[] getDataObjects() etc

public String getRepositoryName()[] setRepositoryName() too also toString()

XmlType (name=DataObject ) XmlRootElement XmlAccessorType

public class DataObject

public DataObject(ObjectIdentity identity String type)[] more ctorrsquos too

public ObjectIdentity getIdentity()[] setIdentity() too

public String getType()[] setType() too

public PropertySet getProperties()[] setProperties() too

public ArrayListltRelationshipgt getRelationList()[] setRelationList() too

public ArrayListltPermissiongt getPermissionList()[] setPermissionList() too

public boolean isTransient()[] setTransient() too

public ListltContentgt getContentList()[] also toString()

Consistent XML-XSD-based data model (continued)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 17: 070524 EMC Documentum Foundation Services (Randall, SDC07)

17copy 2007 EMC Corporation All rights reserved

Important ldquodatardquo part of service orientationndash Services are about data and operations upon data

Rich model covers multiple aspectsndash Identity persistent objects permissions schema hellip

Generalized payload representationndash DataPackage DataObject ObjectIdentity PropertySet hellip

Controlling operations and resultsndash PropertyProfile ContentProfile SchemaProfile DeleteProfile hellip

ndash OperationOptions

Extensibility and opennessndash New services can use DFS data model as-is or extend it

ndash New data model objects can be added

DFS Data Model (page 1 of 3)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 18: 070524 EMC Documentum Foundation Services (Randall, SDC07)

18copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 2 of 3)

Payload tree

DataPackagendash Payload container with one or more DataObjects

DataObjectndash Generalized representation of a persistent object

ndash Can have ObjectIdentity ndash ID path query-based qualification

Type (Document Folder etc)

Metadata ndash as a PropertySet

Content ndash multiple files or renditions

Relationships ndash related Data Object with relationship information (ldquoparent folderrdquo)

Examplendash Single DataPackage can represent entire file system

ndash Top DataObjects are folder with related subfolders and files

ndash Can be importedretrieved in one create operation

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 19: 070524 EMC Documentum Foundation Services (Randall, SDC07)

19copy 2007 EMC Corporation All rights reserved

DFS Data Model (page 3 of 3)

Efficiency of data exchange

DataPackage can be sent and received in an operationndash DataPackage Update (DataPackage)

Client can provide only data that is to be updatedndash ObjectIdentity is required

ndash Properties content as necessary

How much data we want backndash Nothing Just the ObjectIdentity of created objects

ndash All metadata Include content too

Operations have defaultsndash Create returns DataObjects with only ObjectIdentity provided

Client determines the result strategy using profilesndash Data exchange is on-demand

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 20: 070524 EMC Documentum Foundation Services (Randall, SDC07)

20copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 1 of 2)

Envelope for service implementationndash For example reflect (add value) behind published contracts

ndash Platform agnostichellipand impartial

Enhanced exception handling

Advanced content transferndash UCF and distributed content (ACSBOCS) support

ndash MTOM for simple transfers

Server and client-side supportndash Remote and local clients

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 21: 070524 EMC Documentum Foundation Services (Randall, SDC07)

21copy 2007 EMC Corporation All rights reserved

DFS Runtime (page 2 of 2)

DFS toolsruntime creates isolation envelope

DFS supports any client platform (WSDL-based)

Service developer is not aware of SOAPndash XML on the wire only for remote calls

DFS supports location independence ndash In-process API is the same as Java remote API

DFS can be adapted to changes in service platformndash For example REST

ndash Service implementation is unchanged

Isolation model benefits

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 22: 070524 EMC Documentum Foundation Services (Randall, SDC07)

22copy 2007 EMC Corporation All rights reserved

DFS Tools

Extend Java standard JAX-WS toolsndash For example adapt wsgenwsimport to DFS service model

Generate all the artifacts for deployment of a web servicendash Production and packaging mostly hidden from developer

Generate Java client libraryndash Increase developer productivity

Broader reachndash POJOs now viable targets

ndash SBOs and Modules too

ndash Standards-based (WS- WS-I)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 23: 070524 EMC Documentum Foundation Services (Randall, SDC07)

23copy 2007 EMC Corporation All rights reserved

Building a Service

Create Java service (POJO BOF Service)

Annotate DfsPojoService DfsBofService

Use DFS tools to generate artifactsndash WSDL proxies (SOAP local) etc

ndash Optional Java client library

Use generated Java client classes to build testsndash In-process API first to simplify development

Use DFS tools to package the WAREAR applicationndash Validate tests running remotely (same tests)

Validate WSDL with non-Java clients

DFS service development lifecycle

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 24: 070524 EMC Documentum Foundation Services (Randall, SDC07)

24copy 2007 EMC Corporation All rights reserved

minusRuntime binaries

minusService sources

minusModule name

minusClasspath def

minusService model

(XML)

minusJAX-WS sources

minusJAXB sources

minusDescriptors (etc)

minusxyzjar

minusxyz-remotejar

minusConfiguration

(properties)

GenerateModel GenerateWrappers BuildService PackageService(SupplyPrerequisites)

time (eg artifacts accumulate left-to-right)

start end Deployable

artifact

(ie EAR

WAR)

Source

Control

Application

Server

manualcommit commit commit

Building a ServiceDFS service development lifecycle

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 25: 070524 EMC Documentum Foundation Services (Randall, SDC07)

25copy 2007 EMC Corporation All rights reserved

DemoDFS in action

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 26: 070524 EMC Documentum Foundation Services (Randall, SDC07)

26copy 2007 EMC Corporation All rights reserved

Goals

Understanding where ECM is going and the relevance of SOA

Understanding of EMC Documentum Foundation Servicesndash Why

ndash How

DFS in action

Wrap-up

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 27: 070524 EMC Documentum Foundation Services (Randall, SDC07)

27copy 2007 EMC Corporation All rights reserved

In Summaryhellip

Simplified customization via courser-grained development

Decouple services and content from the repositoryndash Enables content management outside of the repository

Flexible development optionsndash Platform and language agnostic services

Realization of composite application developmentndash By business analysts via BPM and portals

ndash By application programmers via best-of-breed tools

Key takeaways about EMC Documentum Foundation Services and SOA

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 28: 070524 EMC Documentum Foundation Services (Randall, SDC07)

28copy 2007 EMC Corporation All rights reserved

Join the EMC Developer Network (EDN)ndash httpdeveloperemccom

Read my blogndash httpcraigrandallnet

Build DFS-based solutions

Thank you for your interest

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 29: 070524 EMC Documentum Foundation Services (Randall, SDC07)

30copy 2007 EMC Corporation All rights reserved

Servicendash A service is a business function or resource that is well-defined self-

contained and does not depend on the context or state of other services

ndash Services use standardized protocols to create a robust connection to other services (ie a business service network)

Where objects use abstract data types and data abstraction services can provide a similar level of adaptability through aspect or context orientationndash Context is a Documentum core competency

Content

Process (BPM)

Service Defined

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 30: 070524 EMC Documentum Foundation Services (Randall, SDC07)

31copy 2007 EMC Corporation All rights reserved

Basic Service Concept

Service

Consumer

Service

Provider

3 Binds

2 Discovers

1 Publishes

Service

Directory

(UDDI)

Contract

(WSDL)

Endpoint

Address

4 Communicates

Messages

(SOAP)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 31: 070524 EMC Documentum Foundation Services (Randall, SDC07)

32copy 2007 EMC Corporation All rights reserved

SOA Defined

The policies practices frameworks that enable application functionality to be provided and consumed as sets of services published at a granularity relevant to the service consumer Services can be invoked published and discovered and are abstracted away from the implementation using a single standards-based form of interface

ndash CBDi Forum

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 32: 070524 EMC Documentum Foundation Services (Randall, SDC07)

33copy 2007 EMC Corporation All rights reserved

Service Lifecycle

Service Provisioning

Publish

Discover Request

Version

Service Implementation

Service Consumption

ExecuteDeploy

Solution Implementation

Design

Certify

Analysis

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented

Page 33: 070524 EMC Documentum Foundation Services (Randall, SDC07)

34copy 2007 EMC Corporation All rights reserved

Developing a SOA Mindset

Fromndash Connections = cost

ndash Function oriented

ndash Build to last

ndash Prolonged development

ndash Application silos

ndash Tightly coupled

ndash Object-oriented

Shift to service orientation

Tondash Connections = value

ndash Process-oriented

ndash Build for change

ndash Incrementally deployed

ndash Orchestrated solutions

ndash Loosely coupled

ndash Message-oriented