1 / 22

Service-Oriented Architecture and Documentum Foundation Services

Service-Oriented Architecture and Documentum Foundation Services. Craig Randall Software Architect, EMC Tom Heller EMC. Agenda. DFS overview Building a custom service Deploying a custom service Consuming a custom service. Overview of ECS and DFS.

Download Presentation

Service-Oriented Architecture and Documentum Foundation Services

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.


Presentation Transcript

  1. Service-Oriented Architecture and Documentum Foundation Services Craig Randall Software Architect, EMCTom HellerEMC

  2. Agenda • DFS overview • Building a custom service • Deploying a custom service • Consuming a custom service

  3. Overview of ECS and DFS • Enterprise Content Services (ECS) is an umbrella term • Business (logic) services from EMC, its partners, its customers…YOU! • Enable SOA • Promote solution composition • Exchange – forthcoming online solution marketplace and community • Process Builder – for the non-technical business user (services in the context of business processes) • Composer – for the Documentum solution developer • Documentum Foundation Services (DFS) is a product offering • Initial ECS package of essential platform services from EMC • SDK to support custom service development • DFS also embodies common ECS infrastructure • One consistent runtime (DFS) • Supports service composition (ECS) • Supports payload scheme and data model (ECS) • Integration with distributed content and unified client facilities (i.e. ACS/BOCS/UCF)

  4. Service growth DFS 6.5 • Initial set of core services in 6.0 / SP1 (6) • Object, Query, Schema, Search, Version Control, Workflow • SDK content for each • New services in DFS 6.5 (+7) • Access Control, Analytics, Comment, Lifecycle, Query Store, Task Mgmt, Virtual Document • SDK content for each • Additional new services not packaged with DFS 6.5 (+10) • Content Delivery, Electronic Signature, ERP Integration, Federated Proxy, Formal Record, Library Request, Policy, Profile (CTS), Retention Markup, Transformation (CTS) • All (23) services from EMC will be available to try-before-you-buy via Documentum Solutions Exchange • http://www.emc.com/solutionexchange • More out-of-the-box services to reuse, compose, etc.

  5. ECS infrastructure enhancements in DFS 6.5 • Support for both code first and contract first service provider workflows • Start with annotated Java class (e.g. POJO or BOF module) • Since v1 • Start with service contract (WSDL/XSD) • New for 6.5 • Design-time service discoverability • CMA default service catalog or UDDI v2 compliant service registry • Publish services to catalog/registry during installation • Better single sign-on (SSO) support • Aligned with DFC and Content Server infrastructure

  6. Overview of the DFS SDK • Direct examination of SDK archive • bin • Service catalog/registry publishing utility script • Bootstrap tool to generate .NET productivity layer style C# proxy (dotnet\DfsProxyGen.exe) • docs • Javadoc and HTML Help (reference-level documentation) • Use alongside DFS Development Guide (PDF) • etc • Service contracts (WSDL/XSD), configuration files (XML/.properties), deployment manifests • lib • Java binaries for DFS and its third party dependencies • Optional .NET assemblies for core ECS productivity layer in DFS • samples • Custom service and service consumer examples • Consumption of core ECS in DFS from both Java and .NET • Also leveraged by Composer (aka Documentum IDE) • Service catalog viewer and publishing GUI • Specialized project type to build, deploy and consume ECS

  7. Agenda • DFS overview • Building a custom service • Deploying a custom service • Consuming a custom service

  8. Context for your business service Composed Applications Composite Application Document Assembly Loan Processing Offer Management Composed Business Process Reusable Business Services Reusable Service Create Loan Documents Check Status Review and Approval Reusable Service Reusable Service Reusable Service Reusable Service Retain Documents Publish Reusable Service Data Repositories Marketing Sales CRM Finance Data Warehouse External Partner

  9. Service interoperability drives reuse • Services (IT) should support your business (i.e. participate) • Participation implies consumption (i.e. relevant) • Relevance is increased via interoperability (i.e. consumable) • WSDL is the primary API for any Enterprise Content Service • Interoperable service contracts (WSDL/XSD) • WS-I Basic Profile compliant • e.g. Integrate WS-I toolset into your build/test process • Review generated .NET and Java proxies • e.g. Is there a need to workaround single List<> element data member behavior in .NET? • Enterprise Content Services are about content participating in your business processes

  10. Implementing a service (ECS) (page 1 of 3) Code first approach • Create Java service (POJO or SBO) • Annotate service (DfsPojoService or DfsBofService) • Use DFS tools to generate artifacts • WSDL, proxies (SOAP, local), etc. • Optional Java productivity layer • Optional .NET productivity layer • Use generated Java client classes to build tests • In-process API first to simplify development • Use DFS tools to package the WAR/EAR application • Validate tests running remotely (same tests!) • Validate WSDL with non-Java clients

  11. Implementing a service (ECS) (page 2 of 3) Code first approach package com.myco.services.impl; import com.emc.documentum.fs.rt.annotations.DfsPojoService; @DfsPojoService(targetNamespace="http://services.myco.com", requiresAuthentication=false) public class GreetingService { public String sayHello() { return "Hello!"; } } package com.myco.services.impl; public class GreetingService { public String sayHello() { return "Hello!"; } } 2 1 1 • Your service may require • Authentication • Its own data model or core data model extensions • Content transfer • Other services (composition, chaining, extension)

  12. Implementing a service (ECS) (page 3 of 3) 3 5 1 2

  13. Agenda • DFS overview • Building a custom service • Deploying a custom service • Consuming a custom service

  14. Deploying a custom service • DFS / DFS SDK as Customer expectation precedent • Services ready to deploy via JEE standards (EAR/WAR) • Services ready to consume • Via WSDL/XSD • Via optional .NET/Java productivity layers • SDK ready to support solutions building • Binaries (EMC, 3rd party) • Samples • Documentation (Javadoc, HTML Help, etc.) • Command-line and GUI tools/scripts • Package your service binaries with multiple product offerings in mind • Domain-specific (e.g. collaboration, compliance, business process management) • Industry-specific (e.g. healthcare, financial services, human resources) • Your line of business, etc. • Partition your data model with your service • Require only what is needed to consume a particular service

  15. Agenda • DFS overview • Building a custom service • Deploying a custom service • Consuming a custom service

  16. Context for service consumption • Services are an investment • Good investments have measurable returns • “The existence of a service does not, in and of itself, provide any value. It is the use of the service that provides value and the second and subsequent uses of the service that provide the return on the services investment. Thus, you must pay attention to service utilization in order to actually get your ROI.” • Dr. Paul Brown • Mitigate investment risk with governance • Balance enforcement and education • Project portfolio planning • Service design • Service utilization • Service operation

  17. Consuming a service (ECS) • Identify service(s) to consume • Select application framework/language of choice • e.g. Java, .NET/C# • Determine integration approach • e.g. WSDL-based or via DFS productivity layer (Java/.NET) • Determine consumer location relative to provider • i.e. Remote or local • Implement service consumer • Deploy and test service consumer • Package distributable solution

  18. Service consumer tips (page 1 of 3) • Understand how content will be used and set content transfer mode appropriately • Stream-based  MTOM • File-based  UCF • If using UCF for content transfer, enable distributed content support • Configure ACS and, if appropriate, BOCS • Configure your consumer geo-location (aka client network id) ContentTransferProfiletransferProfile = new ContentTransferProfile(); transferProfile.setTransferMode(ContentTransferMode.UCF); transferProfile.setGeolocation("Las Vegas"); transferProfile.allowCachedContentTransfer(true); transferProfile.allowAsyncContentTransfer(true); context.setProfile(transferProfile); // IServiceContext

  19. Service consumer tips (page 2 of 3) • Externalize target service addressability (e.g. context root, module, etc.) • dfs-client.xml for Java • App.config for .NET • DFS-related configuration is namespaced appropriately • Leverage profiles to optimize request/response payloads • Profiles in service context apply across service operations unless overridden • Profiles in operation options apply to specific service operation and take precedent • Take full advantage of batch-ready data model • Reduce number of roundtrips required to complete task at hand

  20. Service consumer tips (page 3 of 3) • DataPackage • Payload container with one or more DataObjects • DataObject • 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

  21. Enough talk … let’s program :-) • Hands-on lab • Building, deploying and consuming a custom service using the DFS runtime, etc. • Using Java • Using .NET / C# • Raise questions • Others may be interested in answers, too • Leverage EMC Developer Network (EDN) • http://developer.emc.com • Slides will be on my blog • http://craigrandall.net/

More Related