[FINAL] Building Content Management Web … Building Content Management Web Services Using Java &...

27
1 Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5 th , 2004 2 Agenda Web Services Primer XML, UDDI, WSDL, SOAP Architectures Products and Tools to Use Building Java and .Net Web Services for Documentum Provider Consumer Office, eRoom, DTC, WDK/WebTop, Portals Lots of Demos and Examples 3 About Me Michael Thomas Mohen Senior Architect, ESG 7 Years Documentum Consulting Experience Focus on Integrations SAP, Siebel, PeopleSoft, Lotus Domino, Microsoft, eRoom, Portals [email protected]

Transcript of [FINAL] Building Content Management Web … Building Content Management Web Services Using Java &...

Page 1: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

11

Building Content Management Web Services Using Java & .NetMichael Thomas MohenSenior ArchitectEMC Software Group

October 5th, 2004

22

Agenda

Web Services Primer– XML, UDDI, WSDL, SOAP

ArchitecturesProducts and Tools to UseBuilding Java and .Net Web Services for Documentum

– Provider– Consumer– Office, eRoom, DTC, WDK/WebTop, Portals

Lots of Demos and Examples

33

About Me

Michael Thomas MohenSenior Architect, ESG7 Years Documentum Consulting ExperienceFocus on Integrations

– SAP, Siebel, PeopleSoft, Lotus Domino, Microsoft, eRoom, Portals

[email protected]

Page 2: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

44

Today’s Presentation

During this presentation, we will look at various methods to create Web Services for Documentum, and how to consume them from DocumentumAlong the way, we will explain the technologies and standards that make up Web ServicesBest PracticesTips and Resources

55

Building Web Services for Documentum

Building Web Services around Documentum is a great way to share information and have an “open platform” or “framework” for better integrationThere are various ways to create or consume Web Services for Documentum today!

– J2EE Web Services– Microsoft .Net Web Services– Calling Web Services from the eContent Server,

DTC, eRoom, WDK/Webtop, SCS, WP and more!

66

What Are Web Services?

Web Services are a collection of standards (SOAP, XML, UDDI and WSDL) that expose business functions to users over a network

– A Web Services will expose and describe itself so that other applications can understand it

– Allows other services to locate it on the Web– Can be invoked– Returns a response

Page 3: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

77

Web Services Standards

Web Services are characterized by four evolving standards/technologies

– XML - the basic foundation of Web– WSDL - used for service description– UDDI - service publication and– SOAP - communication protocol

88

Why Use Web Services?

Great for a distributed component technology, SOA– Web Services are perfect for applications that span platforms

and span the Internet– Web Services are stateless – scalability is much improved

over technologies like CORBA and DCOM

Improve BPMFaster project timelinesLower TCOBetter ROIRe-use of code

99

Why Use Web Services? (cont)

Web Services are vendor neutralThey are based on open standardsThey can be used on almost any platformWeb Services are firewall friendlyWeb Services use the same port as HTTP traffic

– Technically, you can block a Web Service message. A SOAP message is identified as such and you could configure the Firewall to block SOAP traffic.

Page 4: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

1010

Web Services vs. Other Technologies

Web Services vs. CORBA, DCOM

Characteristic CORBA DCOM Web servicesRemote Procedure Call (RPC) mechanism

Internet Inter-ORB Protocol (IIOP)

Distributed Computing Environment Remote Procedure Call (DCE-RPC)

Hyper-Text Transfer Protocol (HTTP)

Encoding Common data Representation (CRD)

Network Data Representation (NDR)

Extensible Markup Language (XML)

Interface Description Interface Definition Language (IDL)

Interface Definition Language (IDL)

Web Services Description Language (WSDL)

Discovery Naming Service and trading service

Registry Universal Discovery description and Integration (UDDI)

Firewall Friendly No No Yes

Complexity of protocols High High Low

Cross-platform Partly No Yes

1111

Drawbacks of Web Services

Web Services do not define any standards for business collaboration, process definition or securityThere are two major camps for Web Services -Microsoft .NET and Java (J2EE Application Server vendors like IBM/Lotus, BEA, Sun, HP)Some vendors propose their own security mechanisms, some technologies are vendor proprietaryCan be slow in some cases

1212

XML

XML (Extensible Markup Language)XML is the basic foundation of Web Services and is used for –

– Encoding data– Creating SOAP Messages (request/response)– Defining the UDDI and WSDL

XML Defines our data and how to process it

Page 5: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

1313

WSDL

WSDL is the Web Services Description LanguageDesigned by IBM, Microsoft and AribaAn XML based standardWSDL defines Web Services interfaces, data, message types, interaction patterns and protocol mappings

1414

WSDL (cont)

1515

UDDI

UDDI (Universal Description, Discovery and IntegrationUDDI is a Web Services registry and discovery mechanismAllows Web Service clients to find Web Services – “The Phone Book”Is used for storing and categorizing business information and for retrieving pointers to Web Services interfaces

Page 6: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

1616

SOAP

SOAP is the Simple Object Access ProtocolSOAP provides a simple, extensible and rich XML messaging framework for defining higher-level application protocols offering increased interoperability in distributed, heterogeneous environments.

1717

SOAP (cont)

SOAP DefinedDefines an envelope for Web Services communicationsMapable to HTTP and other transportsProvides a serialization format for transmitting XML documents over a network and a convention for representing RPC interactions

1818

SOAP (cont)

How Does SOAP Work?

Simple Object Access Protocol

ConsumerConsumer Web ServiceWeb Service

SOAP RequestSOAP Request

SOAP ResponseSOAP Response

Page 7: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

1919

SOAP Protocol - Request

<SOAP-ENV:Envelope xmlns:SOAP-ENV=

"http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">

<SOAP-ENV:Body><ns1:getPrice

xmlns:ns1="urn:xmethods-BNPriceCheck" SOAP-ENV:encodingStyle=

"http://schemas.xmlsoap.org/soap/encoding/"><isbn xsi:type="xsd:string">0439139597</isbn>

</ns1:getPrice></SOAP-ENV:Body></SOAP-ENV:Envelope>

2020

SOAP Message - Processing

Software on the Web Server ...Catches the XML/SOAP requestParses the XML/SOAP textCalls the requested object method with argumentsWraps the response into XML/SOAPSends the response back to the caller

2121

SOAP Protocol - Response

<SOAP-ENV:Envelope xmlns:SOAP-ENV=

"http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">

<SOAP-ENV:Body><ns1:getPriceResponse

xmlns:ns1="urn:xmethods-BNPriceCheck" SOAP-ENV:encodingStyle=

"http://schemas.xmlsoap.org/soap/encoding/"><return xsi:type="xsd:float">15.57</return>

</ns1:getPriceResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>

Page 8: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

2222

SOAP Protocol – Response (cont)

The consuming application gets the XML/SOAP responseUnwraps the XML/SOAP response to get the resultResult - Book price is $15.57XML/SOAP is XML text – Lowest common denominator – HTTP as a transport - not required

2323

SOAP (cont)

A SOAP message has several parts– An Envelope*– A Header– A Body*– An Attachment– RPC Interaction– Encoding

Only the Envelope and Body are required!

2424

SOAP (cont)

Envelope– This part is required– Defines the start and end of the message

Header– Contains optional attributes used in processing the message

Body– Contains the XML data comprising the message being sent

Attachment– Consists of one or more documents attached to the main

message (SOAP with Attachments only)

Page 9: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

2525

SOAP (cont)

RPC Interaction– Defines how to model RPC-style interactions with SOAP

Encoding– Defines how to represent simple and complex data being

transmitted in the message

2626

Other Acronyms You Need to Know

WS-I DIMESAAJWS-SecurityJAX-RPCJAXM

2727

WS-I

Web Services Interoperability OrganizationAn open industry effort created to promote Web Services interoperability

– Platforms– Applications– Programming Languages

WS-I Testing Tools

Page 10: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

2828

Working with Attachments

Besides sending standard data in SOAP messages, you can also send files -

– Word Documents– PDF– Binary Files

Several standards include -– SOAP With Attachments (SAAJ)– DIME

2929

SAAJ

SAAJ, which stands for SOAP with Attachments API for Java, provides a convenient API for constructing SOAP messages without having to directly create the XML yourself. SAAJ was originally part of the Java API for XML Messaging (JAXM), which was developed by the JSR 67 expert group. The final release of this specification (JAXM Version 1.0) provided two different but related facilities:

– Core functionality concerned with manipulating SOAP messages in a generic way, together with the ability to send a SOAP message from one entity to another.

– A higher-level messaging facility that included reliable delivery of messages and support for messaging profiles, which require SOAP messages to be constructed in specific ways.

3030

DIME

Direct Internet Message Encapsulation (DIME) is a new specification for sending and receiving SOAP messages along with additional attachments, like binary files, XML fragments, and even other SOAP messages, using standard transport protocols like HTTP. Microsoft focused, different than Multipurpose Internet Mail Extensions (MIME)

Page 11: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

3131

WS-Security

WS-Security describes enhancements to SOAP messaging to provide quality of protection through message integrity, message confidentiality, and single message authentication. WS-Security also provides a general-purpose mechanism for associating security tokens with messages. No specific type of security token is required by WS-Security. It is designed to be extensible (e.g. support multiple security token formats).Additionally, WS-Security describes how to encode binary security tokens. Specifically, the specification describes how to encode X.509 certificates and Kerberos tickets as well as how to include opaque encrypted keys. It also includes extensibility mechanismsthat can be used to further describe the characteristics of the credentials that are included with a message.

3232

JAX-RPC

JAX-RPC provides an easy to develop programming model for development of SOAP based Web services. You can use the RPC programming model to develop Web service clients and endpoints. A JAX-RPC runtime system (a library) abstracts these runtime mechanisms for the Web services programming model. This simplifies Web service development. JAX-RPC enables a Web service endpoint to be developed using either a Java Servlet or Enterprise JavaBeans (EJB) component model

3333

Web Services and Content Management

Why use them at all?WS can provide a framework for typical content management functionality (check-in, view, check out, workflow, edit)Provide integration services for Portal, ERM, CRM, ERP and other custom applicationsImprove Business Processes, WorkflowExtend Content to customers, partners and vendors

Page 12: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

3434

The TCO and ROI

Lots of Code ReuseEase of integrationA Web Services framework will provide a common repository for many applications in an organization, therefore, lower project costs and timelines

3535

Use Cases

Custom PublishingSync RepositoriesHR Self Service with PeopleSofteRoom IntegrationCustom J2EE and .Net applicationsCustom Office integrationExtend WDK/WebTop/WP components

3636

The SOA “Ecosystem” Mantra

A Way to modularize your systems and applications into discrete business componentsWell defined interfacesSOA supplants old EAI techniques with Web Services standards (WSDL, SOAP, etc.)Actually, its been around for a decade

– Has been done before with DCOM, CORBA

Focuses on simple interfaces and standards, less on performance

Page 13: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

3737

The SOA “Ecosystem” Model

Portal

CustomApplications

DesktopApplications

MacromediaFlash

WSDL files

.NET of J2EEapplication

SO

AD

eve

lopm

ent

Too

ls

SERVICE REQUESTOR SERVICE PROVIDER

TRANSPORT MECHANSIM

SOAP over HTTP

Service security

SOA Broker

UDDI ESB

SAP

WSDL files

PeopleSoft

Documentum

SO

AD

eve

lopm

ent

Too

ls

SOAP over HTTP

3838

The SOA “Ecosystem” (cont)

SOA Development ToolsService RequestorService ProviderTransport MechanismSOA ManagementSOA Infrastructure

– UDDI– ESB

3939

The Big Picture

`

Web Services User

External Web Services UsersDocumentum

Network

Scanning Station

Other Devices

`

SOAP SOAP

SOAP

SOAPSOAP

SOAPSOAP

eRoom EnterpriseLDAP

SOAPSOAP

Application ServerFarm

Web Server FarmUDDI

Email

SOAP

SOAP

SOAP messages are sent back and forth to request and send data in XML format

UDDI is optional, but a good idea for large organizations that use many WS

SOAP is very firewall friendly,

and uses standard HTTP

ports like port 80

Page 14: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

4040

Web Services and Documentum

What can you do with Web Services and Documentum?Be a consumer of Web Services

– For example, we can access an J2EE or a Microsoft .NET Web Service from Documentum

Be a provider of Web Services– For example, we can allow other clients to access a

Documentum Web Service, such as Microsoft Word, Outlook and custom applications. This Web Service can be J2EE or Microsoft .NET

– These clients can be JSPs, VB, Java, C++, JSP, ASP.NET

4141

Web Services and Documentum

Microsoft Office Users

Documentum

`

J2EE Application Server

.Net Server

Java Method

Documentum Job

SOAP Toolkit

`

Desktop Client User

Network

SOAP Toolkit

.Net Web Service

Apache AXIS

eRoom Server

SOAP Toolkit

`

eRoom User

SOAP/XML

Extenstions

PIA

COM Add-Ins and SOAP Toolkit

SOAP Toolkit

`

WDK, WP, WebTop Users

SOAP Toolkit

`

Portal Users

Portal Server

SOAP

4242

Documentum As A WS Provider

Requires the use of a Web Services platform – there is no internal WS provider today

– Apache AXIS– Apache SOAP– GLUE– CapeClear CapeConnect– Microsoft SOAP Toolkit (Via IIS)

Or, WS are hosted on application server– Microsoft .Net– J2EE

Future – Documentum Web Services can be hosted in Documentum in future releases

Page 15: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

4343

Documentum As A WS Consumer

Desktop Client can access Web Services using a SOAP Toolkit, like Apache SOAP or Microsoft’s SOAP Toolkit or .Net Framework 1.1eRoom can access WS using eRoom Extensions and SOAP Toolkit – be careful of eRoom limitations with .NetDocumentum eContent Server Java methods, DocBasic procedures can call WS using SOAP callsMicrosoft Office using VB Macros or COM Add-Ins can call WS easily with SOAP Toolkit or .Net 1.1 Framework

4444

Documentum Business Process Services

Outbound and Inbound integration– External systems can invoke Documentum services

and processes– Documentum process can invoke services in external

systems

Listener outside the firewall (for security)

Standards-based: JMS, Web Services, XML, XSL Transformation, J2EE, HTTP, and SMTP (e-mail)

Configurable via Business Process Manager with no coding

4545

BPS and Web Services

DocumentumProcess Engine

Business Process Services

Enterprise Applications

External Application or Service

EAI Framework

Individual usersWeb Services, JMS, HTTP,

SMTP

Page 16: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

4646

Portals and Portlets - WSRP

WSRP - Web Services for Remote Portlets A dynamic plug-ins for portal pages. WSRP defines how to plug remote web services into the pages of online portals and other user-facing applications. This allows portal or application owners to easily embed a web service from a third party into a section of a portal page (a 'portlet'). Formerly known as Web Services for Remote Portals, WSRP is closely allied with WSIA (Web Services Interactive Applications)A separate Java standard for portlets is known as JSR 168.

4747

Web Services Considerations

Consider the following when building Web Services for Documentum -

– Should I use the DFC or BOF?– What about TBO or SBOs?– How will I deal with attachments?– How will I deal with Security?– Are there any Performance requirements?– How can I build a WS that will be stable?– How can I build a WS that will conform to the standards?– How can I build a WS that will work with Portals?– How do I deal with change management and Web Services?

4848

DFC 5.1/BOF 1.0

Business Object Framework (BOF) IntroducedFramework Version 1.0 Documentum 5.x applications

– Use BOF (out of the box)– Can be customized through BOF

BOF Object Types Introduced– Type based Objects (TBO)

Provide functionality that is specific to a repository object type (i.e. my_sop_document, …) and thus docbase specific

– Service Based Objects (SBO)Provide functionality that is object and docbase neutral (can be employed by any application – AutoNumber Service)

Page 17: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

4949

What’s Coming in Release 5.3?

Documentum Platform Release 5.3– Still in Development, so this could change!– DFC includes Web Services Framework– Leverages BOF SBOs

• Authoring• Deployment

Web SBO Web SBO Programming Programming

ModelModelDevelopmentDevelopment

ToolsToolsWeb Service Web Service

Runtime (Axis 1.2)Runtime (Axis 1.2)ContentContent

Transfer (UCF)Transfer (UCF).NET friendly.NET friendly

WSDLWSDL

5050

Typical Web Service Invocation Process

Page 50

Web Services

Client

Web Services Platform

XML MessageXML MessageConvert XML message to Java Type

Convert Java type to

XML message

Convert XML message to Java Type

Convert Java type to

XML message

ServiceServiceJava TypeJava Type

XML MessageXML Message

Java TypeJava Type

5151

Web Services Platforms

Many choices for Web Services platformsSome popular platforms include -

– Microsoft .Net– Apache AXIS, SOAP– Sun JWSDP– IONA XMLBus– CapeClear CapeConnect– Systinet’s WASP– Mind Electric’s GLUE

Some offer graphical tools, some others are command line focused

Page 18: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

5252

Web Services Application Servers

Many choices for Web Services Application Servers– Microsoft .Net– IBM WebSphere– Oracle– BEA WebLogic– ATG– JBoss

5353

Which Platform Should I Use?

Depends on timeframe, version of Documentum, use cases, your infrastructure, skills and the project at handWeb Services will be in Documentum platform in the futureCross Platform, Server side WS

– Recommend using Apache AXIS

Office, eRoom and Desktop WS– Recommend using .Net Or– .Net Stubs accessing Apache AXIS WS

5454

Java Architecture

Page 54

Documentum

J2EE Server

DocBase(s)DocBase(s)

XML Applications,

Methods, Procedures

XML Applications,

Methods, Procedures

JavaBean or Web Service or

Applet (Client

Program)

JavaBean or Web Service or

Applet (Client

Program) DFC and/or

BOF

DFC and/or

BOFJDBCJDBC BOFBOF DFCDFC

DMCLDMCL

WSDLWSDL

Web Services Container

(Apache AXIS)

Web Services Container

(Apache AXIS)

Web Services Client

SOAP ToolkitSOAP Toolkit

SOAP over H

TTPSO

AP over HTTP

Page 19: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

5555

Coding JavaBeans

DFC or BOF?Modularize the code

– Sessions– Errors– Utilities– Content Transfer

Always manage your sessionsLock() and Unlock()

– Thread Safe

Global versus Local Session objects– Apache AXIS versus IBM WebSphere

5656

Axis - Overview

An open source implementation of a SOAP engine Provides a framework for constructing SOAP processors e.g. clients/serversServer implementation that can run standalone or plug into servlet engines as a unique ‘web app’Major spec support:

– SOAP 1.1/1.2– WS-I Basic Profile v1.0– JAX-RPC 1.1 (Implemented and passed TCK)– SAAJ 1.2 (Implemented and passed TCK)– Supports WSDL (v.1.1) and creates a WSDL file for each

Web service deployed– JAXM, HTTP 1.1

5757

Axis – Overview (cont)

Command Line, very little GUI toolsApache Axis Web Services uses the .jws file extenstion

Page 20: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

5858

A Simple Documentum JavaBean// import the Documentum JAR files here …public class DCTMClass {private IDfSession dctmSession;private String fullstring;public String login(String username, String password, String domain, String docbase) {IDfClient client;IDfLoginInfo li;String sessionString;String errorInfo;errorInfo = "";sessionString = "";String docbasename="";try { client = DfClient.getLocalClient();li = new DfLoginInfo();li.setUser(user);li.setPassword(password);li.setDomain(domain);dctmSession = client.getSharedSession(docbase, li, "Browse");docbasename = dctmSession.getDocbaseName();// release the session and unlock} catch (DfException e) {//….. Do something here if an error happens} return docbasename; }}

Imports the Documentum

classes

Pass in the user

information

Session is created

Returns the name of the

docbase

5959

Demo

Apache AXISDocumentum Web

Services

6060

Demo

Microsoft Office2003 COM Add-InsCalling Java ApacheAXIS Web Services

Page 21: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

6161

Building Web Services with .Net

Use the PIA, don’t use the DFC directly– Primary Interop Assembly (PIA)

Microsoft .Net Framework 1.1 is very stableIf you don’t have Visual Studio, you can use –

– Web Matrix (free!)– Borland C#Builder

Great for integrations with Microsoft Office, COM+, DCOM, BizTalk applicationsComing soon …

– Documentum ADO.NET Services (DAS)

6262

Web Services .NET Architecture

Page 62

Documentum

Microsoft .NET Server

DocBase(s)DocBase(s)

XML Applications,

Methods, Procedures

XML Applications,

Methods, Procedures

JavaBean or Web Service or

Applet (Client

Program)

JavaBean or Web Service or

Applet (Client

Program) DFC and/or

BOF

DFC and/or

BOFJDBCJDBC BOFBOF DFCDFC

DMCLDMCL

WSDLWSDL

.NET .NET

Web Services Client

SOAP ToolkitSOAP Toolkit

SOAP over H

TTPSO

AP over HTTP

6363

The PIA

Before the PIA, developers had to build their own COM components,

– .Net was not supported– Many unexpected errors occurred

The DFC 5.2.5 Primary Interop Assembly (PIA) makes the Documentum Foundation Classes (DFC) accessible from .NET code. The PIA integrates into Microsoft Visual Studio .NET and provides a layer through which .NET code can access DFC via the Documentum Java-COM Bridge (DJCB). It is optional and is not required by any Documentum products at this time. It’s only for .NET developers.

Page 22: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

6464

The PIA (cont)

Behind the scenes, the PIA accesses the Documentum Java-COM Bridge (DJCB), which accesses the DFC Java classes. This means that DFC remains in a single source of implementation (in Java), but there are thin, efficient layers above that implementation, increasing its accessibility (first to COM-based clients, and second to .NET-based clients).Documentum tested the DFC 5.2.5 PIA with .NET 1.1. It does not support .NET 1.0. Documentum has not tested the DFC 5.2.5 PIA with Visual Studio .NET 2004.

6565

The PIA (cont)

Once you have completed your installation, you are ready to use the DFC PIA. It has been installed into the Global Assembly Cache (GAC) along with its XML documentation file and the associated Publisher Policy Assembly (PPA). A private copy of the PIA, the PPA and the PIA’s XML documentation is placed into your “Shared” folder along with an HTML Help file, Documentum.Interop.DFC.chm. Finally, the PIA installer takes care of promoting the location of the private PIA so that adding a reference to it in Visual Studio .NET is as straightforward as possible.

6666

PIA Tips

If you are using older .Net DFC components, migrate to the PIA Use the newer PIA build if you are using an older PIA controlled releaseMany resources

– Documentum Developer Website– Help file (Documentum.Interop.DFC.chm)– The document DFC_525_SP1_PIA_development.pdf

contains several C# and VB.NET samples. It can be downloaded from the Documentum Support Site

Page 23: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

6767

Using the PIA

Add a Reference to Documentum.Interop.DFC.dll via the Add Reference dialog in Visual Studio .NET.

6868

Using the PIA (cont)

You will find this assembly on the main .NET tab of the dialog by scrolling down to list pane. Double-click Documentum.Interop.DFC and choose OK to establish the reference. Reference the DFC PIA namespace in your code.

– [C#]• using Documentum.Interop.DFC;

– [VB.NET]• Imports Documentum.Interop.DFC

6969

.Net Web Services Testing Utility

xxxxxxxxxxxxxxxxxxxxx

Page 24: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

7070

Demo

Microsoft .NET Documentum Web

Services Demo

7171

eRoom and Web Services

eRoom is a Microsoft Centric application– Future versions will be J2EE based

Leverage eDK and eRoom SOAP/XML componentsYou can use J2EE or .Net Web Services

– .Net has the full feature set, but SAAPI is still an ASP/COM based

– J2EE is an option, but is limited for features

.Net is an option, but has some major restrictions

7272

eRoom and .Net Limitations

eRoom 7 is supported, eRoom is notYou cannot use .Net to implement eRoom Extensions directly nor can you use .Net in synchronous event handlers SAAPI must be called from a STA thread - this means that you should use COM+ applications for the core SAAPI functionsIn short, you will still need to use VB6 COM components with .Net together

Page 25: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

7373

eRoom and .Net Tips

Use the eRoom.eRoomAPI Primary Interop Assembly, don’t use the COM componentsAlways use AspCompat=True in ASPX pages that use SAAPIThe ASPNET user must have “Act as part of Operating System” rights

7474

Real World Example – eRoom

7575

Demo

eRoom 7 EnterpriseCalling Microsoft

.NET Web ServicesUsing Extensions

Page 26: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

7676

Web Services Products - WingSpan DocWay

Web services connectivity to DocumentumSimultaneous access to different versions of Documentum (4i & 5)Cross-docbase browsing supportCross-docbase, cross-version searching supportConnection-pooling supportWritten to utilize the latest functionality of Documentum applicationsNo EDM tag library or web development kit neededHighly portableExample web application code provided for Java, .NET and JSP environments

7777

WingSpan DocWay (cont…)

7878

Wrapping Up … Key Takeaways!

Documentum can consume or provide J2EE and/or .Net Web ServicesApache AXIS and WSAD are great for building Java Web Services for DocumentumUse the PIA for all of your .Net Web Services and ComponentsWeb Services will be part of the eContent Server in the FutureWeb Services can also be used/or called from eRoom, WDK, WebTop, DTC, SCS, WP and many other Documentum products.

Page 27: [FINAL] Building Content Management Web … Building Content Management Web Services Using Java & .Net Michael Thomas Mohen Senior Architect EMC Software Group October 5th, 2004 2

7979

Questions?

To contact me –– Michael Thomas Mohen– Senior Architect, ESG– [email protected]

8080