Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
Documentum ContentIntegration with Ligero Content Delivery Server
Prepared ByLee Dallas
Principal ConsultantArmedia, LLCApril, 2008
Ligero Content Delivery Server
1
Summary Ligero Content Delivery Server (CDS) is an
advanced caching server designed to improveand simplify access to Documentum-managedcontent. Users can easily and efficiently accessthe Documentum repository from MicrosoftSharePoint or other portal environments throughsimple dynamic pages, URL links, RSS, or customFlex applications. Ligero CDS supports legacyDocumentum RightSite tags and anonymousaccess, making upgrade to D6 possible withoutchanges to existing content or interfaces.
The Problem Simple Content Delivery
Documentum’s history of tight control overthe content life cycle is the reason so many cus-tomers have turned to it over the years. Thescalability of the product makes it an attractiveplatform for any content management effort.
However, not all content consumption requiressuch stringent control over user access to pub-lished content. Many times, content managed byone department simply needs to be read, onoccasion, by another. Developers and managersdon’t necessarily want their users to log intoWebTop simply to read a document. Replicatingthat content to a file system or developing acustom application is overkill in most situationsas well.
Why maintain another set of credentials — orcopy content out to an open web server that isdependent upon another process — to publish10,000 files no one cares about? What is need-ed is a simple, scalable method for accessingthe repository that doesn’t require replicatingcontent across the data center. Ligero CDS pro-vides that method.
Background Legacy Documentum Web Access
Those familiar with the history of Documentumwill recall that WebTop and WebPublisher were notthe first tools for thin client access Documentumoffered. The first tool set, RightSite, was an
ISAPI application running in Internet InformationServer (IIS) that called the same API library asall other client applications accessingDocumentum. Customers built thousands ofapplications from that initial framework. Theyalso learned to make extensive use of WebQL,the custom HTML tag set that provided dynamicpage building capabilities. The WebQL tag setsprovided document query, control flow, sessionmanagement, and certain aggregate functions.Customers created thousands of documents con-taining these powerful and flexible tags in sup-port of many complex processes.
Growth of Web Enabled Content Management
With RightSite, the Documentum RecordLocator (a COM-based shortcut to a document)evolved into a URL, and hyperlinks to individualdocuments became popular. In addition toWebQL, RightSite established a convention foranonymous site access that greatly simplifiedretrieval of individual documents within the repos-itory. These conventions not only allowed foranonymous access configuration, but also sup-ported the full range of default Documentum fea-tures. Documentum security, renditions, annota-tions, and version control were now easy to inte-grate with other application through simple URLreferences. Documentum also introduced whatwas called virtual link support. With virtual links,references to the ISAPI application and parame-ters were removed and the URL represented theactual folder path to the content. This model waslogical, easy to understand, and made for simpletransition from other web server implementationsto Documentum managed systems.
Challenges in UpgradesWith the release of Documentum 5, the
RightSite ISAPI application was retired in favorof J2EE and a Java Server Faces (JSF) applica-tion framework. For performance, security, andother architectural reasons important at thetime, Documentum elected to discontinue thesupport of the RightSite tag set. While DRL’scontinued to be supported, simple consumption
22
of Documentum content was decoupled from thecontent management system in favor of a pushpublishing model. If a developer wanted to con-sume content directly from the repository, aWDK application or custom servlet was required.With 5.2, Documentum reintroduced anonymousaccess and virtual session linking, but theimplementation lacked the popular run timeinterpretation of the RightSite tag set.
The RightSite retirement meant that many thou-sands of Documentum managed web pages con-taining RightSite tags or anonymous access URLs
had to be rewritten. Existing customers werestranded on unsupported versions of Documentumbecause rewriting the content to accommodate thechanges proved too expensive with little or noreturn on investment. Developers who neededsimple, trusted access to repository content forportal or enterprise application integration have towrite unique custom solutions time after time ifSite Caching Services push publishing model is notdesired. Furthermore, the overhead associatedwith WDK and JSF makes these solutions lessdesirable in some cases. When flexible, high per-formance basic access is called for, developmentcosts for custom Documentum integration aresimply too high.
The SolutionContent Management Enabled Caching
Most well-designed sites today use some sortof caching technology to optimize delivery.Traditionally, content is pushed to a file systemwhich, in turn, is accessed by a web server.Caching approaches for web applications weredeveloped because of a concern for load on therepositories. With improvements in highly avail-able architectures and systems management,repository load is becoming less of a concern.Multiple web servers on the same site oftenmaintain unique file systems increasing theneed for space and replicating data. Even whenvirtual file systems or NFS caching is employed,the content is pushed to the site whether it isaccessed or not. Gigabytes of rarely accessedcontent needlessly pushed to multiple targetscan strain publishing engines and the networkswhere they run.
Active Caching Ligero CDS changes the Documentum publish-
ing model by fetching content from a repositorythe first time someone tries to access it. A “pull”rather than a “push.” The pull eliminates theneed to publish files ahead of time. Ligero CDScombines the approaches and reduces thedependence on the repository server by cachingthe most frequently accessed content. Load bal-ancing, preemptive caching of critical content,and other techniques will reduce any risk createdby depending on the repository. This strategyalso ensures that the load on the repository iskept to a minimum. Access to content can begranted through anonymous sessions or by user-supplied credentials for confidential data. Unlessspecifically called for, content accessed byauthenticated sessions is not cached, rather it isdelivered directly to the consumer.
Dynamic Page Assembly Because files are not statically staged, the
delivery server can process the files on request.
3
Figure 1.
For example, a page can write a table that exe-cutes a query for all documents with the keyword “News” and a modify date within the lasttwo days. When someone attempts to read thepage the first time, the processor will executethe query and populate the table with links tothe target documents. If the server has cachingenabled, the content is held until it has reachedthe appropriate TTL (time to live) value. Whenthe next request is made, the page contents arerefreshed. Where appropriate performance con-ditions exist, the page could be set to generateon every request, ensuring that the most current
content is viewable as soon as it is ready in therepository. The current version of DocumentumWebPublisher supports similar dynamic contentbut requires fully implementing WebPublisherand Site Caching Services. With WebPublisher, allpublished content would have to be linked to afixed web cabinet structure, and the resultswould have to be pushed to the web serverregardless of whether they were ever accessed.With Ligero, a few lines of code in a single filecan RSS enable your entire repository.
Architecture Ligero Content Delivery Server is a J2EE web
application that filters content requests andresponds as required. When a URL is parsed, thecache is checked to see if it has been accessedbefore. If the file is found in cache and has notexceeded its expiry time, the file from cache isreturned. If the URL points to a file not in cache,the server will attempt to retrieve it from the con-tent server. Depending on the file type, the docu-ments are scanned for tags to process. The origi-nal HTML script tags were reimplemented as JSPtags and included in the arm tag lib namespace.This approach not only allows for the simple con-version of legacy content and continued use ofthose features, but the Ligero library also containsextensions that go beyond the original set of func-tionality. Developers will be able to further extendthe framework with their own tags to further sim-plify content access (see Figure 1, page 3).
When someone attempts to access a contentfile through a URL that the mapped anonymousaccount cannot see, a Ligero log-in allows theuser’s own credentials to be used for that ses-sion. Administrators can then grant users accessto content in a consistent manner withDocumentum security.
Ligero 2.0 will support Primary/Secondary con-figurations where one instance is responsible forinitial caching. This method improves horizontalscalability without creating any additional load onthe repository for open content.
4
Figure 2.
Figure 3.
Content Access with LigeroDelivery Server Simple Document Retrieval
With Ligero Delivery Server, the repositorycan be treated exactly like a web server.Documentum content can be made accessiblethrough SharePoint or other portals in minuteswithout installing anything to either the
Documentum or SharePoint servers. In the fol-lowing example, the Documentum Java Docs forDFC have been imported to the repositorythrough Webtop (see Figures 2 and 3, page 4).
The same content is now browse-able fromSharePoint using Ligero.
Dynamic Page Composition Ligero can be used to assemble pages from
other documents in the repository and combinethem with query results for a truly dynamicpage. In the sample below, a query gathers alist of all documents in a certain folder path,and formats them as a table of clickable links.The table is wrapped with a standard headerand footer from other content. Templates can becreated in the docbase so that individuals withlimited coding experience can quickly build con-sistent pages to access Documentum managedcontent in many different ways. Using,Documentum’s version control and workflowcapabilities, the access pages are professionallymanaged and secure (see Figures 4 and 5).
<%@ taglib uri=”/WEB-INF/Ligero.tld” prefix=”arm”%><html><head><title>Demo</title> <base href=”http://ligerodemo01:8080/acmdev:/Website/Ligero”></head><body>
<arm:DMW_MACRO_OPTIONS VERSION=”CURRENT” />
<arm:DMW_INCLUDE PREDICATE=”dm_document where object_name=’header.html’ andfolder(‘/Website/Ligero/includes’)” />
5
Figure 4.
Figure 5.
<table border=”1”><tr>
<th>r_object_id</th><th>object_name</th><th>title</th><th>link</th></tr>
<arm:DMW_REPEAT DQL=”select object_name, r_object_id, titlefrom dm_document where folder(‘/Website/Ligero/docs’, descend)” COLLECTION=”q0”>
<tr><td> <arm:DMW_SUBST NAME=”r_object_id” COLLECTION=”q0” /> </td><td> <arm:DMW_SUBST NAME=”object_name” COLLECTION=”q0” /> </td><td> <arm:DMW_SUBST NAME=”title” COLLECTION=”q0” /> </td><td>
<a href=”http://ligerodemo01:8080/getcontent?DMW_OBJECTID=<arm:DMW_SUBSTNAME=”r_object_id” COLLECTION=”q0”/>&DMW_ON_ERROR=ssi4&DMW_DOCBASE=acmdev&DMW_FORMAT=html”>
<arm:DMW_SUBST NAME=”object_name” COLLECTION=”q0” /></a>
</td></tr></arm:DMW_REPEAT></table>
<arm:DMW_INCLUDE PREDICATE=”dm_document where object_name=’footer.html’ andfolder(‘/Website/Ligero/includes’)” />
</body></html>
Tags Examples and Extensions The most popular RightSite tags were reimple-
mented as a JSP tag library and Armedia hasimplemented a number of extensions to make iteven more powerful. Listed below are samplesof some of the tags available.
REPEAT This is a powerful tag that allows for the exe-
cution of DQL statements against an EMCDocumentum repository. DMW_REPEAT tags can
have web content placed between the openingand closing tags. This facilitates outputtingresults from the executed DQL query. Thequery result is stored in a COLLECTION, which isidentified by a user specified value. To furtherenhance the ability of this tag, DMW_REPEATScan be nested within DMW_REPEATS. Thisallows for further querying upon returned resultcollections. Each DMW_REPEAT tag requires aunique COLLECTION identifier. NestedDMW_REPEATS can access any of the parentDMW_REPEAT collections.
<arm:DMW_REPEATDQL=”select r_object_id, object_name, title, r_modify_date from dm_document where owner_name
= ‘fred’ ORDER BY r_modify_date” COLLECTION=”q0”></arm:DMW_REPEAT>
6
SUBST SUBST is most often found within
DMW_REPEAT tags. This tag eases the pain ofgetting values of attributes from with aDMW_REPEAT. It can also be used in conjunc-tion with the DMW_SET tag.
<arm:DMW_SUBSTNAME=”object_name”COLLECTION=”q0” />
INCLUDE An INCLUDE tag is used in the example above
to pull header and footer content from otherobjects and include their contents inline.
<arm:DMW_INCLUDE PREDICATE=”dm_document where object_name=’header.html’and folder(‘/Website/Ligero/includes’)” />
SET The way to look at DMW_SET is setting a vari-
able. You can optionally declare the variableusing DMW_DECLARE, but if the variable has notbeen previously declared, DMW_SET will do thatstep for you. This tag allows values to be madeavailable to the full scope of the web page.
<arm:DMW_SETNAME=”object_name”VALUE=”<arm:DMW_SUBST
NAME=\”object_name\” COLLECTION=\”q0\”/>” /> <%String username = “fred”;
%>
DMW_SET can be used for is setting valuesfrom JSP variables into DMW tags. For exam-ple, the following does not work as expected:
<arm:DMW_REPEATDQL=”select r_object_id, object_name, title,
r_modify_date from dm_document whereowner_name = ‘<%=username%>’ ORDER BYr_modify_date” COLLECTION=”q0”></arm:DMW_REPEAT>
username does not get expanded by the JSPcompiler before the DMW_REPEAT tag is parsed.This means the DQL query looks for content oftype dm_document owned by <%=user-name%>.
Instead, to pass in a JSP variable:
<%String username = “fred”;
%><arm:DMW_SET NAME=”username”VALUE=”<%=username%>” /><arm:DMW_REPEATDQL=”select r_object_id, object_name, title,
r_modify_date from dm_document whereowner_name
= ‘<arm:DMW_SUBST NAME=\”username\” />’ORDER BY r_modify_date” COLLECTION=”q0”></arm:DMW_REPEAT>
RSS It is common practice to provide an RSS link
for external sites to link into your web site (seeFigure 6). Set EXTLINK to true and this pro-
7
Figure 6.
vides a link which creates the RSS news feed. A simple, effective tag easing how latest newscan be pushed to a web site. Currently sup-ported is version 0.91. This can easily beextended to support the full range of RSS ver-sions, and even Atom.
In this example, a cabinet structure of“/Website/aboutus/media/news/content” ismapped with the FOLDER set as the path to theCHANNEL which is then defined as ‘news’.Each Item element within the RSS feed is builtfrom the content residing in the CHANNEL(‘news’ folder). Set ITEMS to equal the numbercontent items to be listed in the RSS feed.LSD_RSS tag uses r_modify_date to determinewhich pieces of content to display.
<arm:LSD_RSSVERSION=”0.91”FOLDER=”/Website/aboutus/media”CHANNEL=”news”ITEMS=”5”EXTLINK=”true” />
The resulting RSS XML
<?xml version=”1.0” ?><rss version=”0.91”><channel>
<title>Ligero RSS Feed Example</title>
<link>http://www.armedia.com/default.htm</link><description>This is an example RSS feedfrom Ligero</description>
<item><title>Ligero Released</title>
<link>http://ligero2a:8080/Website/abou-tus/media/news/LigeroRelease.htm</link>
</item><item>
<title>Armedia and US Mint</title><link>http://ligero2a:8080/Website/abou-tus/media/news/USMint.htm</link>
</item><item>
<title>C3 Released</title><link>http://ligero2a:8080/Website/aboutus/media/news/C3Release.htm</link>
</item><item>
<title>TWP WinsInfoWorld100</title>
<link>http://ligero2a:8080/Website/abou-tus/media/news/TheWellProjectWinsInfoWorld100.htm</link>
</item> <item>
<title>SCM DFD Certified</title>
<link>http://ligero2a:8080/Website/aboutus/media/news/SCMDFDCertified.htm</link>
</item></channel></rss>
Conclusion With Ligero Content Delivery Server, access to
content managed by Documentum can be madesimple, flexible, and scalable without complexprogramming. SharePoint users don’t even needto know that the critical content they need to dotheir jobs is managed by a Documentum’sauthoring and workflow capabilities. For IT andadministrators, content delivery is made moreefficient, reliable, and flexible, and time to mar-ket for new uses of existing content assets isfaster than ever. Legacy Rightsite users can nowsafely upgrade to Documentum D6 withoutrewriting content or integrated applications.
Ligero Content Delivery Server - Faster than ever.www.armedia.com
Lee Dallas is an EMC Proven Professional with fifteen years of experience in information technology focusing on content manage-ment and collaboration. Lee has worked with a broad range of corporate business problems including technical publishing, productdata management, and records management. Prior to joining Armedia, Lee was responsible for Documentum architecture at DeltaTechnology (Delta Air Lines) and Senior Architect for Content Management and Collaboration at The Home Depot. He can bereached at (678) 945-4417, ext. 107 or via e-mail at [email protected].
8