service-oriented architecture and documentum foundation services

22
1 © Copyright 2008 EMC Corporation. All rights reserved. Service-Oriented Architecture and Documentum Foundation Services Craig Randall Software Architect, EMC Tom Heller EMC

Upload: blair-gibbs

Post on 31-Dec-2015

30 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Service-Oriented Architecture and Documentum Foundation Services

1© Copyright 2008 EMC Corporation. All rights reserved.

Service-Oriented Architecture and Documentum Foundation Services

Craig RandallSoftware Architect, EMC

Tom HellerEMC

Page 2: Service-Oriented Architecture and Documentum Foundation Services

2© Copyright 2008 EMC Corporation. All rights reserved.

Agenda

DFS overview Building a custom service Deploying a custom service Consuming a custom service

Page 3: Service-Oriented Architecture and Documentum Foundation Services

3© Copyright 2008 EMC Corporation. All rights reserved.

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)

Page 4: Service-Oriented Architecture and Documentum Foundation Services

4© Copyright 2008 EMC Corporation. All rights reserved.

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.

Page 5: Service-Oriented Architecture and Documentum Foundation Services

5© Copyright 2008 EMC Corporation. All rights reserved.

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

Page 6: Service-Oriented Architecture and Documentum Foundation Services

6© Copyright 2008 EMC Corporation. All rights reserved.

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

Page 7: Service-Oriented Architecture and Documentum Foundation Services

7© Copyright 2008 EMC Corporation. All rights reserved.

Agenda

DFS overview Building a custom service Deploying a custom service Consuming a custom service

Page 8: Service-Oriented Architecture and Documentum Foundation Services

8© Copyright 2008 EMC Corporation. All rights reserved.

Marketing Sales CRM FinanceData

WarehouseExternalPartner

Data Repositories

Reusable Service

Reusable Service

Create Loan

Documents

Create Loan

Documents

Check Status

Check Status

Review and

Approval

Review and

ApprovalReusable Service

Reusable Service

Reusable Service

Reusable Service

Reusable Service

Reusable Service

Reusable Service

Reusable Service

Retain Documen

ts

Retain Documen

tsPublish Publish Reusable

Service

Reusable Service

Composite Application

Composite Application

ComposedBusiness Process

ComposedBusiness Process

Document Assembly

Document Assembly

Loan Processing

Loan Processing

OfferManagement

OfferManagement

Reusable Business Services

Composed Applications

Context for your business service

Page 9: Service-Oriented Architecture and Documentum Foundation Services

9© Copyright 2008 EMC Corporation. All rights reserved.

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

Page 10: Service-Oriented Architecture and Documentum Foundation Services

10© Copyright 2008 EMC Corporation. All rights reserved.

Implementing a service (ECS) (page 1 of 3)

1. Create Java service (POJO or SBO)

2. Annotate service (DfsPojoService or DfsBofService)

3. Use DFS tools to generate artifacts– WSDL, proxies (SOAP, local), etc.– Optional Java productivity layer– Optional .NET productivity layer

4. Use generated Java client classes to build tests– In-process API first to simplify development

5. Use DFS tools to package the WAR/EAR application– Validate tests running remotely (same tests!)

6. Validate WSDL with non-Java clients

Code first approach

Page 11: Service-Oriented Architecture and Documentum Foundation Services

11© Copyright 2008 EMC Corporation. All rights reserved.

Implementing a service (ECS) (page 2 of 3)

package com.myco.services.impl;

public class GreetingService{ public String sayHello() { return "Hello!"; }}

Code first approach

1

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!"; }}

1

2

Your service may require– Authentication– Its own data model or core data model extensions– Content transfer– Other services (composition, chaining, extension)

Page 12: Service-Oriented Architecture and Documentum Foundation Services

12© Copyright 2008 EMC Corporation. All rights reserved.

Implementing a service (ECS) (page 3 of 3)

3 51 2

Page 13: Service-Oriented Architecture and Documentum Foundation Services

13© Copyright 2008 EMC Corporation. All rights reserved.

Agenda

DFS overview Building a custom service Deploying a custom service Consuming a custom service

Page 14: Service-Oriented Architecture and Documentum Foundation Services

14© Copyright 2008 EMC Corporation. All rights reserved.

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

Page 15: Service-Oriented Architecture and Documentum Foundation Services

15© Copyright 2008 EMC Corporation. All rights reserved.

Agenda

DFS overview Building a custom service Deploying a custom service Consuming a custom service

Page 16: Service-Oriented Architecture and Documentum Foundation Services

16© Copyright 2008 EMC Corporation. All rights reserved.

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

Page 17: Service-Oriented Architecture and Documentum Foundation Services

17© Copyright 2008 EMC Corporation. All rights reserved.

Consuming a service (ECS)

1. Identify service(s) to consume

2. Select application framework/language of choice– e.g. Java, .NET/C#

3. Determine integration approach– e.g. WSDL-based or via DFS productivity layer (Java/.NET)

4. Determine consumer location relative to provider– i.e. Remote or local

5. Implement service consumer

6. Deploy and test service consumer

7. Package distributable solution

Page 18: Service-Oriented Architecture and Documentum Foundation Services

18© Copyright 2008 EMC Corporation. All rights reserved.

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)

ContentTransferProfile transferProfile = new ContentTransferProfile();transferProfile.setTransferMode(ContentTransferMode.UCF);transferProfile.setGeolocation("Las Vegas");transferProfile.allowCachedContentTransfer(true);transferProfile.allowAsyncContentTransfer(true);context.setProfile(transferProfile); // IServiceContext

Page 19: Service-Oriented Architecture and Documentum Foundation Services

19© Copyright 2008 EMC Corporation. All rights reserved.

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

Page 20: Service-Oriented Architecture and Documentum Foundation Services

20© Copyright 2008 EMC Corporation. All rights reserved.

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

Page 21: Service-Oriented Architecture and Documentum Foundation Services

21© Copyright 2008 EMC Corporation. All rights reserved.

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/

Page 22: Service-Oriented Architecture and Documentum Foundation Services