Upload
tariq-anjum
View
106
Download
6
Tags:
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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