EMC Documentum Foundation Services - EMC Community Network
EMC Documentum Foundation Services - EMC Community Network
EMC Documentum Foundation Services - EMC Community Network
- No tags were found...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>EMC</strong> <strong>Documentum</strong><strong>Foundation</strong> <strong>Services</strong> (DFS)Craig RandallSoftware Architect<strong>EMC</strong> Corporationhttp://craigrandall.net/© 2007 <strong>EMC</strong> Corporation. All rights reserved.1
GoalsUnderstand where ECM is going and the relevance of SOAUnderstand <strong>EMC</strong> <strong>Documentum</strong> <strong>Foundation</strong> <strong>Services</strong> (DFS)DFS in actionWrap-up© 2007 <strong>EMC</strong> Corporation. All rights reserved.2
Where Enterprise Content Management Is GoingInformation management is:– A set of services operating on contentECM has traditionally operated in a centralized modelEvolving business needs + managing expanding volumes ofdata = an architecture where both content and processesare distributed© 2007 <strong>EMC</strong> Corporation. All rights reserved.3
Solutions Require Complex IntegrationThere has to be a better way…FormsFormsFormsFormsGrantsGrantsGrantsGrantsContent Rep.Content Rep.Content Rep.Content Rep.TrainingTrainingTrainingTrainingRecruitmentRecruitmentRecruitmentRecruitmentInstead of investing in new solutions toimprove operational efficiencies, ITdepartments are spending a significantportion of their budgets maintainingcomplex integrations.ProcurementFinanceRecords Mgt.RulemakingProcurementFinanceRecords Mgt.RulemakingProcurementFinanceRecords Mgt.RulemakingProcurementFinanceRecords Mgt.Rulemaking© 2007 <strong>EMC</strong> Corporation. All rights reserved.4
Emergence of Composite Applications… and we have applicationsComposite applications need services from everywhereWe have content stores…ApplicationsECM <strong>Services</strong>File ServersCRMLegacyERP<strong>EMC</strong> <strong>Documentum</strong>SolarisNovellMSFT© 2007 <strong>EMC</strong> Corporation. All rights reserved.5
Content Management Application ObservationsDistributed: by definition, some part of the applications areremote – not on a single middle tier or application server.Heterogeneous: repository implementations, APIs andapplications will be implemented in a variety of languagesand will run on a wide range of platforms.Coarse-grained: “parts” that create the whole (theapplication) must provide substantial chunks offunctionality and must be rapidly composed. Service-Oriented Architecture© 2007 <strong>EMC</strong> Corporation. All rights reserved.6
Our Position on SOAThere is no SOA product offering!– Products enableProvide high-value Content Management & Archivingservices– Ready-to-deploy services (out-of-the-box)– <strong>Services</strong> framework (extends industry standards)– Developer tools (extends industry standards)– Reusable common ECM functionsEnable consumption by disparate systems– Focus on standards– Composite applications– Common usage patterns© 2007 <strong>EMC</strong> Corporation. All rights reserved.7
Before SOASiloed · Closed · Monolithic · BrittleOfferManagementDocumentAssemblyLoanProcessingCustomer requestvia webCustomer status(new/existing)Determine LoanTypeCheck CreditVerify customeraddressObtain proper forms(State, Federal)Assemble loanpackageOrder StatusReview andApprovalLoan StatusEscrowRetain executeddocumentsData RepositoriesMarketing Sales CRM FinanceDataWarehouseExternalPartner© 2007 <strong>EMC</strong> Corporation. All rights reserved.8
After SOAShared <strong>Services</strong> · Collaborative · Interoperable · IntegratedComposed ApplicationsCompositeApplicationDocumentAssemblyLoanProcessingOfferManagementComposedBusiness ProcessReusable Business <strong>Services</strong>ReusableServiceCreateLoanDocumentsCheckStatusReviewandApprovalReusableServiceReusableServiceReusableServiceReusableServiceRetainDocumentsPublishReusableServiceData RepositoriesMarketing Sales CRM FinanceDataWarehouseExternalPartner© 2007 <strong>EMC</strong> Corporation. All rights reserved.9
<strong>EMC</strong> <strong>Documentum</strong> <strong>Foundation</strong> <strong>Services</strong> (DFS)Why DFSDFS is about content participating in your businessprocesses– Interoperable (increased access)– ECM services as peers to other existing services– Standards basedDFS is the path forward for ECM business logic– Will become the primary API– DFC will remain (low-level)Emphasizes service-orientation in the <strong>EMC</strong> <strong>Documentum</strong>platform© 2007 <strong>EMC</strong> Corporation. All rights reserved.10
<strong>EMC</strong> <strong>Documentum</strong> <strong>Foundation</strong> <strong>Services</strong> (DFS)How DFS enables your SOAEmbodies a service development lifecycle– Design-time and runtime support to service developers and theirclientsDeployable <strong>Documentum</strong> platform services OOTBSDK for service and solution developers (internal andexternal)– Design-time tools– Runtime infrastructure– <strong>Documentum</strong> platform services (binaries for your solutions)© 2007 <strong>EMC</strong> Corporation. All rights reserved.11
<strong>EMC</strong> <strong>Documentum</strong> Platform <strong>Services</strong>CollaborationSearchComplianceWorkflow© 2007 <strong>EMC</strong> Corporation. All rights reserved.“Ecosystem” servicesPlatform servicesCoreplatformservices(DFS)Version Controlcheckin, checkoutcancelCheckoutgetCheckoutInfogetVersionInfodeleteVersiondeleteAllVersionsgetCurrentSchemagetRepositoryInfogetSchemaInfogetTypeInfogetPropertyInfogetValueInfoListObjectcreate, getupdate, deletecopy, movevalidategetObjectContentUrlscreatePathQueryexecute12
Closer Look – Object Service (page 1 of 4)WSDL is primary API. . . . . . . . .. . . . . .. . . . . .© 2007 <strong>EMC</strong> Corporation. All rights reserved.13
Closer Look – Object Service (page 2 of 4)Consistent Java interface-based accesspackage com.emc.documentum.fs.services.core.client;import com.emc.documentum.fs.datamodel.core.*;import com.emc.documentum.fs.services.core.CoreServiceException;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 automaticallyimported.* 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) throwsCoreServiceException;. . .}© 2007 <strong>EMC</strong> Corporation. All rights reserved.14
Closer Look – Object Service (page 3 of 4)Consistent, XML-/XSD-based data model. ... . .. . .true...operation options (may be null)...© 2007 <strong>EMC</strong> Corporation. All rights reserved.15
Closer Look – Object Service (page 4 of 4)Consistent, XML-/XSD-based data model (continued)package com.emc.documentum.fs.datamodel.core;@XmlType (name="DataPackage", namespace = "http://core.datamodel.fs.documentum.emc.com/")@XmlRootElement (name="DataPackage")@XmlAccessorType (XmlAccessType.FIELD)public class DataPackage{public DataPackage(DataObject dataObject)[...] // more ctor’s, toopublic 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 ctor’s, toopublic ObjectIdentity getIdentity()[...] // setIdentity(), toopublic String getType()[...] // setType(), toopublic PropertySet getProperties()[...] // setProperties(), toopublic ArrayList getRelationList()[...] // setRelationList(), toopublic ArrayList getPermissionList()[...] // setPermissionList(), toopublic boolean isTransient()[...] // setTransient(), toopublic List getContentList()[...] // also toString()}© 2007 <strong>EMC</strong> Corporation. All rights reserved.16
DFS Data Model (page 1 of 3)Important “data” part of service orientation– <strong>Services</strong> are about data and operations upon dataRich model covers multiple aspects– Identity, persistent objects, permissions, schema, …Generalized payload representation– DataPackage, DataObject, ObjectIdentity, PropertySet, …Controlling operations and results– PropertyProfile, ContentProfile, SchemaProfile, DeleteProfile, …– OperationOptionsExtensibility and openness– New services can use DFS data model as-is or extend it– New data model objects can be added© 2007 <strong>EMC</strong> Corporation. All rights reserved.17
DFS Data Model (page 2 of 3)Payload treeDataPackage– Payload container with one or more DataObjectsDataObject– Generalized representation of a persistent object– Can have• ObjectIdentity – ID, path, query-based qualification• Type (Document, Folder, etc.)• Metadata – as a PropertySet• Content – multiple files or renditions• Relationships – related Data Object with relationship information (“parent folder”)Example:– Single DataPackage can represent entire file system– Top DataObjects are folder with related subfolders and files– Can be imported/retrieved in one create operation!© 2007 <strong>EMC</strong> Corporation. All rights reserved.18
DFS Data Model (page 3 of 3)Efficiency of data exchangeDataPackage can be sent and received in an operation– DataPackage Update (DataPackage)Client can provide only data that is to be updated:– ObjectIdentity is required– Properties, content as necessaryHow much data we want back?– Nothing? Just the ObjectIdentity of created objects?– All metadata? Include content, too?Operations have defaults– Create returns DataObjects with only ObjectIdentity providedClient determines the result strategy using profiles– Data exchange is on-demand!© 2007 <strong>EMC</strong> Corporation. All rights reserved.19
DFS Runtime (page 1 of 2)Envelope for service implementation– For example, reflect (add value) behind published contracts– Platform agnostic…and impartialEnhanced exception handlingAdvanced content transfer– UCF and distributed content (ACS/BOCS) support– MTOM for simple transfersServer and client-side support– Remote and local clients© 2007 <strong>EMC</strong> Corporation. All rights reserved.20
DFS Runtime (page 2 of 2)Isolation model benefitsDFS tools/runtime creates isolation envelopeDFS supports any client platform (WSDL-based)Service developer is not aware of SOAP– XML on the wire only for remote callsDFS supports location independence– In-process API is the same as Java remote APIDFS can be adapted to changes in service platform– For example, REST– Service implementation is unchanged© 2007 <strong>EMC</strong> Corporation. All rights reserved.21
DFS ToolsExtend Java standard JAX-WS tools– For example, adapt wsgen/wsimport to DFS service modelGenerate all the artifacts for deployment of a web service– Production and packaging mostly hidden from developerGenerate Java client library– Increase developer productivityBroader reach– POJOs now viable targets– SBOs and Modules, too– Standards-based (WS-*, WS-I)© 2007 <strong>EMC</strong> Corporation. All rights reserved.22
Building a ServiceDFS service development lifecycleCreate Java service (POJO, BOF Service)Annotate: DfsPojoService, DfsBofServiceUse DFS tools to generate artifacts– WSDL, proxies (SOAP, local), etc.– Optional Java client libraryUse generated Java client classes to build tests– In-process API first to simplify developmentUse DFS tools to package the WAR/EAR application– Validate tests running remotely (same tests!)Validate WSDL with non-Java clients© 2007 <strong>EMC</strong> Corporation. All rights reserved.23
Building a ServiceDFS service development lifecycleSourceControlApplicationServercommit commit commitmanualstart −Runtime binaries−xyz.jarend Deployable−JAX-WS sources−Service sources −Service model−xyz-remote.jarartifact−JAXB sources−Module name (XML)−Configuration(i.e., EAR/−Descriptors (etc.)−Classpath def.(properties)WAR)(SupplyPrerequisites)GenerateModel GenerateWrappers BuildService PackageServicetime (e.g. artifacts accumulate left-to-right)© 2007 <strong>EMC</strong> Corporation. All rights reserved.24
DemoDFS in action© 2007 <strong>EMC</strong> Corporation. All rights reserved.25
GoalsUnderstanding where ECM is going and the relevance ofSOAUnderstanding of <strong>EMC</strong> <strong>Documentum</strong> <strong>Foundation</strong> <strong>Services</strong>– Why– HowDFS in actionWrap-up© 2007 <strong>EMC</strong> Corporation. All rights reserved.26
In Summary…Key takeaways about <strong>EMC</strong> <strong>Documentum</strong> <strong>Foundation</strong> <strong>Services</strong> and SOASimplified customization via courser-grained developmentDecouple services and content from the repository– Enables content management outside of the repositoryFlexible development options– Platform and language agnostic servicesRealization of composite application development– By business analysts via BPM and portals– By application programmers via best-of-breed tools© 2007 <strong>EMC</strong> Corporation. All rights reserved.27
Join the <strong>EMC</strong> Developer <strong>Network</strong> (EDN)– http://developer.emc.comRead my blog– http://craigrandall.net/Build DFS-based solutionsThank you for your interest!© 2007 <strong>EMC</strong> Corporation. All rights reserved.28
Service DefinedService– A service is a business function or resource that is well-defined, selfcontained,and does not depend on the context or state of otherservices– <strong>Services</strong> use standardized protocols to create a robust connection toother services (i.e., a business service network)Where objects use abstract data types and dataabstraction, services can provide a similar level ofadaptability through aspect or context orientation– Context is a <strong>Documentum</strong> core competency• Content• Process (BPM)© 2007 <strong>EMC</strong> Corporation. All rights reserved.30
Basic Service Concept2. DiscoversServiceConsumer3. BindsMessages(SOAP)ServiceDirectory(UDDI)4. CommunicatesContract(WSDL)EndpointAddress1. PublishesServiceProvider© 2007 <strong>EMC</strong> Corporation. All rights reserved.31
SOA DefinedThe policies, practices, frameworks that enable applicationfunctionality to be provided and consumed as sets ofservices published at a granularity relevant to the serviceconsumer. <strong>Services</strong> can be invoked, published anddiscovered, and are abstracted away from theimplementation using a single, standards-based form ofinterface.– CBDi Forum© 2007 <strong>EMC</strong> Corporation. All rights reserved.32
Service LifecycleSolution ImplementationService ConsumptionAnalysisDesignDeployCertifyDiscoverPublishRequestExecuteVersionService ProvisioningService Implementation© 2007 <strong>EMC</strong> Corporation. All rights reserved.33
Developing a SOA MindsetShift to service orientationFrom:– Connections = cost– Function oriented– Build to last– Prolonged development– Application silos– Tightly coupled– Object-orientedTo:– Connections = value– Process-oriented– Build for change– Incrementally deployed– Orchestrated solutions– Loosely coupled– Message-oriented© 2007 <strong>EMC</strong> Corporation. All rights reserved.34