).Example 7-13 on page 145 shows an example of using the connect tag to retrieve partial page data from an existing Web site.
144 Lotus Workplace Web Content Management and Content Manager Working Together Example 7-13 Retrieving partial page data from an existing Web site
The source Web site, IBM developerWorks®, is shown in Figure 7-18. We are interested in displaying the article summary related to developing Python. We create new content which contains the connect tag as shown in Figure 7-19 on page 146 (the same as shown in Example 7-13). The connect tag strips part of the Web page starting from “Develop Python” and ending with “Python app.”. Figure 7-20 on page 146 shows the end result: the retrieved partial page data from the developerWorks Web site is shown in our case study Insurance Web site.
Figure 7-18 IBM developerWorks Web site
Chapter 7. Publishing Content Manager content 145
Figure 7-19 Connect tag to strip partial Web page”
Figure 7-20 Result of stripping partial Web page content to Insurance Web site
Using connect tags to cache LWWCM components Components placed in a page design can be individually cached by replacing the component references within a connect tag. The connect tag uses the renderer module to cache the LWWCM component. This module is defined in the connect.cfg file and, by default, is enabled.
We recommend creating a new module in the connect.cfg file, for example, ComponentRenderer, that points to the same class used for the default renderer. This way, if we later disable the renderer module, our newly created module will still be in effect: the newly created module will be independent of the default setup.
146 Lotus Workplace Web Content Management and Content Manager Working Together Example 7-14 shows the additional code (in bold text) that we need to add to create this new renderer in the connect.cfg file.
Example 7-14 Copy default renderer module in connect.cfg
Once the new ComponentRenderer is created in the connect.cfg file, we can use it in the connect tag. The syntax is as follows: {Failure text}
Where: MOD="ComponentRenderer": the name of the renderer module. SRV="cmpnt": indicates the data provider is the LWWCM component. PATH: sets the context for the component. SOURCE: indicates we are caching from the component library. CMPNTNAME: specifies the name of the component. CACHE: indicates whether to cache the site or session. EXPIRES: Indicates when the cache will expire, in seconds. After the expiration time, the component will be rendered again.
An example of using the connect tag to cache a LWWCM component is shown in Example 7-15.
Example 7-15 Using connect tag to cache Web Content Manager component
In the above example, the navigator component, Nav1, will be rendered for the first time, put in the cache and used from the cache until after two hours have elapsed. To disable caching, we can set CACHE to none. See Example 7-16 on page 148.
Chapter 7. Publishing Content Manager content 147 Example 7-16 Disable component renderer caching
Note: Custom caching cannot be used if the basic caching is used as your server’s default Web content cache.
For more detailed information regarding connect tags, refer to the LWWCM online Information Center.
7.4.3 Putting it all together In the previous section, we described many ways of using the connect tags to display content from external sources. In this section, we work exclusively with Content Manager data, and describe the required steps to publish Content Manager data using the connect tags.
As mentioned earlier in “Retrieving data from the Content Manager server” on page 143, LWWCM’s connect tags enable us to retrieve data from Content Manager server and display it on our Web site.
We continue with the insurance case study for our demonstration.
The syntax used in the connect tag to retrieve data from Content Manager server is: {Failure text} 1. We need to specify the Content Manager Library Server name, user ID, and the associated password: SERVER="icmnlsdb" USER="icmadmin" PWD="password" Make sure the Library Server you want to access is defined in the cmbicmsrvs.ini file of the host where LWWCM and WebSphere are installed. 2. We need to define a search string. In our example, we use the XPath query to search Content Manager Library Server for any InsuranceType items that have names (IT_Name) equal to Automobile Insurance and that have a target group (IT_TargetGroup) equal to Personal, and sort by insurance number (IT_Number). See the query string below: SEARCH=’/InsuranceType[@IT_Name="Automobile Insurance" AND @IT_TargetGroup="Personal"] SORTBY (@IT_Number ASCENDING)’
148 Lotus Workplace Web Content Management and Content Manager Working Together For more information on how to perform a search in Content Manager, see Chapter 7, “Query language” in Content Manager Implementation and Migration Cookbook, SG24-7051.
3. Set up the formatter file. This file is written in HTML so you can use all the standard HTML tags. In addition, LWWCM provides result set tags which can be used to format retrieved data before it is returned to the browser. The retrieved data is in a set of rows. Using the result set tags, you can process each row, format the data, and display it to the browser. The formatter file needs to be placed on the Web server. In our example, we place the formatter file, template1.html, in the directory: C:\IBM\WebSphere\AppServer\intalledApps\demo1\ilwwcm_ear\ilwwcm.war \templates\template1.html In the connector tag, we set the TEMPLATE as follows: TEMPLATE="http://localhost:9080/ilwwcm/templates/template1.html" Example 7-17 shows the code snippet for the formatter file, template1.html. LWWCM loops the result set, puts each result in a table row, where the IT_NAME attribute will be displayed in bold, with IT_Description on the next line. It also creates a link to the document part if it exists.
Example 7-17 Formatter file: template1.html
Putting it all together, the resulting connect tag for our case study is shown in Example 7-18.
Example 7-18 Connect tag to retrieve and display Content Manager data
Chapter 7. Publishing Content Manager content 149 To use the connect tag, do the following:
1. Create new content. 2. Put the connect tag (as shown in Example 7-18 on page 149) in the Content tab as HTML. See Figure 7-21.
3. Save and look at the preview to see the result. See Figure 7-22 on page 151.
Figure 7-21 Create a new content with connect tag
150 Lotus Workplace Web Content Management and Content Manager Working Together
Search result from CM client for Windows
Figure 7-22 Resulting Web page of publishing CM content using connect tags
7.5 JSP component
One of the three ways of retrieving data from Content Manager and publishing the data to LWWCM Web sites is by using the JSP component. In this section, we discuss what it is, why we use it, how to set it up with sample codes, and how to put it all together.
7.5.1 What is a JSP component? A JSP component is a component that provides the ability to embed JSPs directly
into an LWWCM Web site. The JSP code is stored in a JSP file, which is referenced within a JSP component in LWWCM. The actual JSP file is stored in a local Web directory. Upon execution of the current LWWCM context, it is passed into the requested object.
Chapter 7. Publishing Content Manager content 151 Usually, the following needs to be done in such a JSP file:
Reference LWWCM content or library components using tags. This requires importing the wcm.tld tag library into the JSP file. Write the custom HTML and Java code. In this section, we deal exclusively with Content Manager Information Integrator so Content APIs can access Content Manager data. In general, it is potentially possible to access any back-end application data within LWWCM if the application provides Java APIs.
7.5.2 Why use the JSP component? The JSP component allows users to write custom JSPs that are managed as LWWCM components. These components can be used to create additional functionality not provided by the out-of-the-box LWWCM.
This may be a preferred approach if Content Manager Java code is already available in your company. With some minor adjustments, the code can be reused to do its job in the context of LWWCM.
Websphere Application Server
LWWCM Web Application Content Manager II for Content Library Server & Resource connectors API Manager JSP Page ICM / FED
HTTP include
JSP HTTP LWWCM Content Component referencing JSP Component
LWWCM Web site Figure 7-23 JSP component - CM - integration approach
7.5.3 Setting up a new JSP component To use a JSP component, you need to write a JSP program and create and configure the JSP component to reference the corresponding JSP program.
152 Lotus Workplace Web Content Management and Content Manager Working Together Creation of a new JSP component As for the federated content component creation, there are two approaches to the creation of a JSP component: Creating a JSP component within the component library Creating a JSP component directly within a content object
When creating a JSP component in the component library, it can be referenced by any page design and is independent of any other object shown on the page. When creating it within a content object, the component is tied to this content object and cannot be reused.
Creating a JSP component in the component library To create a JSP component in the component library, follow these steps: 1. Open the LWWCM administration client. 2. Expand the Design & Development. 3. Select Component Library, and click New. 4. In the dialog box, select JSP Component and click OK.
Creating a JSP component within a content object You can either put a JSP component directly into a content template so that it is available whenever new content is created with this template, or you can put the component manually into an existing content object.
To create a JSP component within a content object, follow these steps: 1. Within the LWWCM administration client, open an existing content object or create a new content object, open an existing content template or create a new content template. 2. Switch to edit mode if using an existing content object or template by clicking Edit. 3. Click Component Manager. 4. Click Add. 5. Enter a name for the new component. 6. Select JSP Component from the Type drop-down list and click OK. 7. Click OK again. 8. Click the tab Contents or Content Template and scroll to the bottom.
Chapter 7. Publishing Content Manager content 153 Configuration of the JSP component The JSP component provides two text fields: JSP Path: This field allows you to enter the path of a local JSP file. The JSP file has to be local since the component internally performs a RequestDispatcher.include(path) and then merges the response into the resulting Web page. The limitation of the include method is that it is local. In most cases, you would put the JSP files into the same web-app folder as LWWCM. The path to be entered in this field has to begin with a forward slash and it is case sensitive. For example, assuming you created a JSP folder under the web-app folder and your JSP file is called Test.jsp, you must enter /jsp/Test.jsp for the JSP Path.
Tip: The web-app folder of LWWCM is by default located in the following path (The drive and folder names can differ from those in your installation): [Drive]:\[Path]\WebSphere\AppServer\installedApps\[Node]\ilwwcm_war.ea r\ilwwcm.war
Error Message: This field allows you to enter an error message in case the JSP file is not available or the rendering of the JSP code is not successful. Having the error messages ensures that users of your Web site will not see cryptic Java error messages when an error is encountered.
Figure 7-24 on page 155 shows an example of the JSP component configuration.
154 Lotus Workplace Web Content Management and Content Manager Working Together
Figure 7-24 JSP component configuration
Before the component performs the “include,” it puts the rendering context (JSP_CMPNT_RENDERCONTEXT) into the request object so that the JSP can access it.
If you want to do something completely outside of the LWWCM Web application, then you would not use the JSP component. Instead, your JSP would become the front end in rendering, including performing authentication and setting up the rendering context. This JSP could then use the rendering tags to render content and components. This is addressed in “Sample code: using wcm JSP tags in JSP pages” on page 160.
Using the JSP component As mentioned earlier, the JSP component can either be created in a component library or within the context of a content document.
When used in the component library, the JSP component can be referenced in a page design as follows:
Chapter 7. Publishing Content Manager content 155 When used in the context of content, it can be referenced in a page design as follows:
7.5.4 Sample code In this section, we show some samples of using the JSP component to integrate with the external Content Manager content: “Sample JSP code: connection to Content Manager” on page 156 demonstrates how to connect to and disconnect from Content Manager in your JSP using the Information Integrator for Content connector technology. This code can act as a starting point for any JSP code connecting to Content Manager. “Sample JSP code: simple search” on page 158 demonstrates how to connect to a Content Manager server, execute a query and display the results using the ICM connector of Information Integrator for Content. “Sample code: using wcm JSP tags in JSP pages” on page 160 demonstrates the usage of wcm tags within JSP pages. This is not directly related to the integration with Content Manager but it is something very useful when creating JSPs that render LWWCM library components and content.
Sample JSP code: connection to Content Manager Example 7-19 shows a sample JSP that demonstrates how to use the Content Manager Information Integrator for Content APIs to open and close a connection to a Content Manager system. Connecting to a Content Manager system is always the first step when integrating Content Manager content in LWWCM using the JSP component. For demonstration purposes, the JSP also displays a list of attributes derived from the request context and the current LWWCM user credentials, which could be used to access the back-end system.
Important: The code to retrieve the user ID and password is not supported and likely to be changed in future releases of LWWCM.
Example 7-19 test.jsp <%@ page import="java.util.Enumeration" %> <%@ page import="com.aptrix.pluto.renderer.RenderContext" %> <%@ page import="com.presence.connect.user.User" %>
Connecting....
<%
156 Lotus Workplace Web Content Management and Content Manager Working Together // ------// Connect to CM using the connection bean // ------conn.setDsType("ICM");// 'Fed' to use federated connector conn.setServerName("ICMNLSDB");// CM database conn.setUserid("icmadmin");// UserId to access CM conn.setPassword("password");// Password of the UserId conn.connect();// connect to CM
// ------// Check if we are connected // ------boolean isConnected = conn.isConnected();
if (isConnected) {
String attrName = ""; Object attrValue = null;
// ------// Loop through the request context and display it on the page // ------for (Enumeration e = request.getAttributeNames() ; e.hasMoreElements() ;) { attrName = (String) e.nextElement(); attrValue = request.getAttribute(attrName); %> <%= attrName %>: <%= attrValue %>
<% } }
// ------// Disconnect from CM // ------conn.disconnect();
// ------// Read the current LWWCM username and password from the render context // ------String username = null; String password = null;
RenderContext rendercontext = (RenderContext) request.getAttribute("JSP_CMPNT_RENDERCONTEXT");
if (rendercontext != null) { User user = rendercontext.getPlutoSession().getSession().getUser(); if (user != null) { username = user.getUserName();
Chapter 7. Publishing Content Manager content 157 password = user.getConnectPassword(); } } %>
UserName = <%=username%>
password = <%=password%>
Sample JSP code: simple search Example 7-20 shows a JSP file that demonstrates how to execute a Content Manager query from within a JSP page. The result set is then displayed.
The query syntax we use here is the common query language of Content Manager. A basic query string looks like this: /[@=]
In order to get all the insurance information (ItemType=insurance) for clients who live in San Jose (attribute=homeCity), the query string looks like this: /insurance[@homeCity=\”San Jose\”]
Note that the quotes in our query have to be escaped in order to assign them to a string variable in our JSP page.
For more advanced query strings, see Section 7.3.1 in Content Manager Implementation and Migration Cookbook, SG24-7051.
Example 7-20 CMDocumentList.jsp
<%@ page import="com.ibm.mm.beans.*, java.net.URL"%> <% // ------// Setup the CM Connection // ------String servername = "ICMNLSDB"; String servertype = CMBBaseConstant.CMB_DSTYPE_ICM; String userid = "icmadmin"; String password = "password"; String query = "/insurances[@InsuranceType LIKE \"%xyz%\"]";CMBConnection conn = new CMBConnection(); conn.setServerName(servername); conn.setDsType(servertype); conn.setUserid(userid); conn.setPassword(password);
158 Lotus Workplace Web Content Management and Content Manager Working Together conn.connect();
CMBSearchResults results = null; CMBDataManagement dm = null; synchronized(conn) { // ------// Get a data management object for later getting the URLs // ------dm = conn.getDataManagement();
// ------// Run the query // ------CMBQueryService qs = conn.getQueryService(); qs.setAsynchSearch(false); qs.setQueryString(query, CMBBaseConstant.CMB_QS_TYPE_XPATH); qs.runQuery();
results = new CMBSearchResults(); results.setConnection(conn); results.newResults(qs.getResults()); } %>
A List of CM Documents <% // ------// Loop over the results // ------for (int i = 0; i < results.getCount(); i++) { synchronized(conn) { CMBItem item = results.getItem(i); dm.setDataObject(item); URL url = dm.getContent(0).getDataURL(); %> - <%= item.getAttrName(1) %> = <%= item.getAttrValue(1) %>
<% } } // end loop over results %> Chapter 7. Publishing Content Manager content 159
<% // ------// Tear down the CM Connection (in a real world example // you might leave the connection in the HTTP session) // ------conn.disconnect(); %>
Figure 7-25 shows the output of the sample query page in an LWWCM Web site.
Figure 7-25 Output of CMContentList.jsp
Sample code: using wcm JSP tags in JSP pages LWWCM JSP tags are used within JSP pages to retrieve LWWCM content and components. This can be handy if you want to implement a JSP page which is completely outside of the LWWCM Web application. This could be a JSP page which offers the user the ability to manage his or her insurance using a custom Web interface of Content Manager. To surround this interface with LWWCM components such as a navigator and menus, you could use the wcm tag library.
160 Lotus Workplace Web Content Management and Content Manager Working Together To use wcm JSP tags in JSP pages, follow these steps:
1. Include the wcm tag library in your JSP page. By default, this tag library can be found in the WEB-INF/tld folder of the LWWCM Web application. <%@ taglib uri="/WEB-INF/tld/wcm.tld" prefix="wcm" %>
2. Initialize the workspace. This tag expects valid credentials of a LWWCM user. Could not initialize the workspace 3. To tell the page about which LWWCM context to use, use the setExplicitContext tag. This tag can be used more than once on a page. After each occurrence of the tag, the context changes for the remainder of the page. To initially set the context to /intranet you would have to do the following: Could not set the explicit path 4. To render an actual LWWCM component or content, you can use the libraryComponent tag and the contentComponent tag, which are similar to the AptrixLibCmpnt tag and the AptrixCmpnt tag used when creating the HTML of a page design within the LWWCM environment. Assuming you wanted to show the same navigator on the same page twice in different contexts in addition to a body field, you would have to do the following: Could not set the explicit path
Could not find LH Nav component
Could not set the explicit path
Could not find LH Nav component
Content not found
Chapter 7. Publishing Content Manager content 161 The result should look similar to Figure 7-26.:
Figure 7-26 WCM tag sample page
For more detailed information regarding wcm JSP tags, refer to the LWWCM online Information Center.
7.5.5 Putting it all together In this section, we describe the necessary actions to make the new JSP component available on your Web page. We work with our insurance case study for demonstration purposes. For our case study, we want to get a list of all available insurance policies on a sub-page called insurances. The query string in CMContenList.jsp has to be adjusted to the following: String query = "/insurances";
Within Content Manager System Administration client, implement the following setup if it is not already done: 1. Create sample attributes, IT_Number, IT_Name, IT_Description, and IT_TargetGroup. 2. Create an item type, InsuranceType, with the above attributes (see Figure 7-27 on page 163). 3. Import some entries for this InsuranceType.
162 Lotus Workplace Web Content Management and Content Manager Working Together
Figure 7-27 Item Type and Attributes
Within LWWCM, do the following: 1. Create the Simple Search JSP page (CMContentList.jsp) as described in “Sample JSP code: simple search” on page 158 and save it as [web-app]\jsp\CMContentList.jsp. 2. Create the JSP component as described in 7.5.3, “Setting up a new JSP component” on page 152. Name it MyJSPCmpnt. For the path field, enter: /jsp/CMContentList.jsp 3. Create a new content template. Content created with this template serves as a placeholder for the initial content of the new site area. Here, we will not reference the JSP component through the content context but directly through a tag in the page design; therefore, we do not have to add the component to the content. 4. Create a new page design called CM Content Layout (making a copy from the Menu Layout and editing from there will speed up the process) and reference your JSP component in the HTML body. Replace the following line: with 5. Create a new site area under which you want the results of your JSP component to be displayed. In the properties tab of the site area, specify the newly created content and page design (see Figure 7-28 on page 164).
Chapter 7. Publishing Content Manager content 163 .
Figure 7-28 Setting up new site area
6. Create new content called CMNews using the content CM Template and put it into the site area you just created. Since the content was not available when you created the site area, you must go back to the site area and add CMNews as the Default Content. 7. Click Preview on either the new content or the new site area. The resulting Web page should look similar to Figure 7-25 on page 160.
7.6 Troubleshooting
This section offers some hints and tips on how to resolve some of the problems you may encounter.
7.6.1 Log files and trace levels The following log files and trace level settings are useful to isolate problems: WebSphere Application Server Use WebSphere Application Server log files. Since we are executing a JSP in the context of the LWWCM Web application, which is running on a WebSphere Application Server, this log should be consulted first of all. LWWCM Log files are located in the following directory: [LWWCM_HOME]\connect\log – connect.log – error.log – debug.log The trace level of the files mentioned above can be adjusted separately in the Log manager configuration section of the following file: [LWWCM_HOME]\config\connect.cfg
164 Lotus Workplace Web Content Management and Content Manager Working Together 7.6.2 Basic connection testing
To test if the connection from your LWWCM server to the Content Manager server is working, we recommend executing the TConnect sample application from the LWWCM server. To test a connection, you have to provide TConnect
with a couple of parameters. It will then try to access the target Content Manager, open a connection, and close it.
TConnect comes with the installation of Information Integrator for Content. The syntax of TConnect is as follows: java TConnect
Example: java TConnect ICM icmnlsdb icmadmin password
If you installed Content Manager and LWWCM on separate machines, it is necessary to catalog the Content Manager database on your LWWCM server.
To get a list of all databases cataloged, enter the following at the command prompt: db2 list database directory
The Content Manager database must be part of the resulting list.
7.6.3 Executing the JSP program outside of LWWCM When working with JSP component in LWWCM, make sure the referenced JSP file works outside of LWWCM. Try to call the JSP directly using your Internet browser: http:////connect//.jsp
If it does not work, you need to debug it and make sure it works before having the JSP component refer to it within LWWCM.
Chapter 7. Publishing Content Manager content 165
166 Lotus Workplace Web Content Management and Content Manager Working Together
8
Chapter 8. System architecture considerations
In the previous chapters, we addressed the basics of how to use Content Manager as a repository for LWWCM and how to publish Content Manager content to LWWCM Web sites. In this chapter, we discuss the system architecture considerations involved when integrating LWWCM with Content Manager.
Specifically, in this chapter, we cover the following topics: LWWCM and Content Manager on the same machine LWWCM and CM on different machines Integration scenarios Mixed operating systems (Windows and AIX)
© Copyright IBM Corp. 2004. All rights reserved. 167 8.1 Introduction
When integrating Lotus Web Content Management (LWWCM) with Content Manager, there are many ways to set up the integrated solution. We can install LWWCM and Content Manager on one machine, install them on separate machines, have one or more LWWCM servers with one Content Manager system, or have one or several Resource Managers within the Content Manager system to integrate with LWWCM server(s). In addition, we can have servers and systems in a mixed platform environment to satisfy business requirements.
To achieve proper communication between LWWCM and Content Manager, we need to ensure the following components are installed: DB2 Runtime Client The Content Manager database alias always needs to be cataloged; therefore, at the minimum, the DB2 runtime client must be installed. Information Integrator for Content Development Workstation or Server Using Content Manager as the repository for LWWCM objects only has different requirements regarding the installed connectors and Information Integrator for Content than if using it as a repository for external resources such as videos, pictures, and documents.
Figure 8-1 shows the components necessary for the integration.
II for Content (EIP) Development Workstation Content Manager LWWCM Library Server Resource Mgr persistent LWWCM ICM connector objects (site, site area, syles, ...)
persistent LWWCM objects DB2 Runtime Client
ICM/FED connector federated content federated content II for Content (external resources -> Search Templates video, image, ...)
II for Content (EIP) Server
Figure 8-1 Necessary component for one and many boxes
168 Lotus Workplace Web Content Management and Content Manager Working Together 8.1.1 Using Content Manager as the repository for LWWCM objects
When using Content Manager as the repository, the hosting LWWCM must have at least the ICM connector installed. The ICM connector can be selected and installed during the installation of Information Integrator for Content Development
Workstation. Refer to 7.2, “Prerequisites” on page 117 for more details on the installation procedure.
The classpath of the application server which is running LWWCM has to be adjusted to also include the necessary classes to communicate with Content Manager.
8.1.2 Using Content Manager as the repository for external resources In order to use Content Manager as the repository for external resources such as videos, images or documents, you might want to use the federated content component within LWWCM, which is discussed in 7.3, “Federated content component” on page 123. This component makes use of the Search Templates provided by an Information Integrator for Content server through the federated connector (FED). So, in order to get this functionality, you would also have to install the Information Integrator for Content server on this machine and the FED connector of Information Integrator for Content in addition to the ICM connector.
The classpath of the application server which is running LWWCM has to be adjusted to also include the necessary classes to communicate with Content Manager.
8.1.3 Server operating system considerations In our test environment, everything was also tested on AIX. The operating system has no influence on the one or many box decision, since all the products and components are available on AIX as well.
8.2 LWWCM and Content Manager on the same machine
For testing purposes or small environments, it might be sufficient to install LWWCM and Content Manager on one box (see Figure 8-2 on page 170). This is a supported architecture. In this section, we discuss what is necessary if you want to use this approach.
Chapter 8. System architecture considerations 169 server box
LW WCM_1 LWWCM_2
S
t
o
r
a
g e Retrieval II for Content Client / Server
DB2 CM
Figure 8-2 LWWCM and Content Manager on the same box
8.2.1 LWWCM considerations Multiple LWWCM systems can be installed on the same machine (although this is not recommended except for testing purposes). They are completely independent of each other and you can handle them as if they were installed on different boxes. There are two ways to install multiple LWWCM systems under the same WebSphere Application Server: 1. Create a dedicated application server for each LWWCM server. This has the advantage that the servers are running in separate JVM environments. LWWCM servers can be stopped and started independently. The servers have to be accessed on different ports but can use the same context information. The two URLs below only differ in port number. Each of the URLs would access a dedicated LWWCM server, one running on port 9080, the other on port 9081: http://demo1:9080/ilwwcm/connect/intranet http://demo1:9081/ilwwcm/connect/intranet 2. Run each LWWCM server in its own context, but under one WebSphere Application Server. In most testing scenarios, the LWWCM server is installed under server1. Using this approach, you can have many LWWCM servers running under server1, but using different contexts with the same port. The following two URLs only differ in their context information (the context of the first server is ilwwcm_1, the context of the second server is ilwwcm_2), which is defined during deployment of the WAR file using the same port number
(9080) and installed on the same WebSphere Application Server: http://demo1:9080/ilwwcm_1/connect/intranet http://demo1:9080/ilwwcm_2/connect/intranet
170 Lotus Workplace Web Content Management and Content Manager Working Together The two servers are completely independent and would therefore also support syndication for one another.
8.2.2 Content Manager considerations
Multiple Content Manager systems can be installed on the same machine as an LWWCM server or multiple LWWCM servers. We do not recommend doing this due to the extensive memory usage of Content Manager. If you want to test the multiple Content Manager scenarios discussed later in this chapter, we advise you to have the additional Resource Managers and/or Library Servers installed on dedicated machines.
8.2.3 Security considerations If we publish our content to the Internet, it will be accessible from the Internet. This will result in the server not being in a secure zone; there is no guarantee that the data in it is secure.
With only one server for all the information storage and publication, we are more exposed to intruders from outside the company. At most, we could only install a firewall between our server (intranet) and the outside world (Internet).
8.2.4 Maintenance Having the entire Web site on only one server instead of one for each Web site process stage could be hard to maintain. The reason is that most companies will most likely use more than one process stage for Web sites. For example, a development environment and a production environment are common for most organizations for the content publication process. But since we have only one LWWCM server in this approach, that would not be possible.
This approach forces us to have all the content publication process in the same LWWCM server. That is also dangerous because we have the authorized published data content mixed with the draft data in the same LWWCM server. In 8.3, “LWWCM and CM on different machines” on page 172, we discuss the usage of different machines.
8.2.5 Advantages and disadvantages
The advantage of this all-in-one approach is that it is easy to set up. You can quickly set up the system and test to see how everything works together. This approach is recommended for small and simple Web sites that do not need to have several stages for the Web site publishing process.
Chapter 8. System architecture considerations 171 The disadvantage of this all-in-one approach is that there is a high risk of losing all the data if the machine crashes. If this happens and we do not have a back-up, all the information will be lost, as well as the products configuration. As discussed earlier regarding security, there maybe security issues with this simple setup. In addition, there maybe maintenance issues as well. We do not recommend this approach for an enterprise system.
8.3 LWWCM and CM on different machines
For performance and security reasons in production environments systems, we recommend you have LWWCM and Content Manager installed on different boxes (see Figure 8-3). In this section, we discuss what is necessary if you decide to use this approach.
server box server box
LW W CM_1 LWWCM_2 LWWCM_1 LWW CM_2
S
S
t
t
o
o
r
r a
a Storage
g
g
e e Retrieval Retrieval II for Content Retrieval II for Content Client / Server Client / Server
DB2 CM DB2 CM
Figure 8-3 LWWCM and Content Manager on different boxes
8.3.1 LWWCM considerations If you want to install several LWWCM servers on the same machine, refer to 8.2, “LWWCM and Content Manager on the same machine” on page 169. The servers would differ in either the port number or the application server context in which they are running.
Having each LWWCM server running on its own machine requires no special attention regarding the context and port numbers since they are running on different application servers. Each server would be accessible via a different host name. The following two URLs would access two different LWWCM servers installed on two different machines (demo1 and demo2) using the same context
and port numbers: http://demo1:9080/ilwwcm/connect/intranet http://demo2:9080/ilwwcm/connect/intranet
172 Lotus Workplace Web Content Management and Content Manager Working Together Syndication between the two LWWCM servers is only supported if they are of the same version. In our scenarios, we use LWWCM V2.0 for all LWWCM servers.
8.3.2 Content Manager considerations
There are no special considerations regarding Content Manager. The installation and configuration tasks of a Content Manager installed on a different machine other than LWWCM do not differ from those of a Content Manager installation on the same machine as the LWWCM server.
8.3.3 Security considerations If we have more than one machine, you can separate the Content Manager server from the LWWCM server(s).
If LWWCM is managing content for an Internet site, it is highly recommended that the external Web server be on a DMZ to avoid external attacks. This way, we ensure the data stored in the Content Manager repository is behind a firewall, and make it unavailable to intruders. See the setup in Figure 8-4.
DMZ is an abbreviation for Demilitarized Zone. It is a concept that represents a host/network between your router and the firewall or a host/network outside the firewall. The machines in DMZ are exposed to an untrustworthy outside world (Internet), which is considered a high-risk zone for attacks. No confidential information should reside on any server in a DMZ in an unprotected form. Only approved ports should be opened between the first (Internet) and second (Internal network) tier.
Internal DMZ network
Internet DB2 CM server LWWCM server
Firewall Firewall Figure 8-4 Secure architecture example: LWWCM/CM in separate boxes.
Chapter 8. System architecture considerations 173 8.3.4 Maintenance
Web sites on different environments can be managed more effectively. Also, the general performance can be improved by having separate environments which allow a granular approach to performance considerations. As a way to make the
maintenance easier, the first decision should be to analyze the different environments we would need depending on various factors such as the Web site size, distribution, and needs.
8.3.5 Advantages and disadvantages The most important advantage of this approach is that we have the data distributed and we can also ensure a good level of security. Another important advantage is the possibility of dividing the Web site publication process into different types of environments, according your company’s needs.
8.4 Integration scenarios
In this section, we discuss the different possible scenarios for the integration of LWWCM and Content Manager. Other combinations, not discussed here, are possible, depending on your business requirements.
The decision of which integration scenario to choose depends on factors such as the geography of the company, LWWCM processing stages, required independent development, testing, and production environment, the number of physical servers you can allocate, and what level integration will be needed.
8.4.1 One LWWCM server The first approach is the most simple one since it implies that all products are installed. In order to make the integration possible, we must also install the Information Integrator for Content server on the same machine. This installation provides the necessary connectors to achieve the communication between Content Manager and LWWCM.
Both products could be installed on the same machine or on different machines. Using different machines, it will be necessary to install DB2 runtime client and catalog the Library Server database. For more information about this configuration, see 6.2, “Accessing a remote Library Server database” on page 97 and 8.2.1, “LWWCM considerations” on page 170.
To achieve the integration, the following process is executed: 1. A request to LWWCM Web application is made through a Web browser.
174 Lotus Workplace Web Content Management and Content Manager Working Together 2. The LWWCM Web application, which is hosted in an application server, uses the Content Manager Java API (the Federated connectors, JAR files in the classpath) to access the Library Server using the same user ID and password as defined in the aptixjpe.properties file. 3. Each object is stored in Content Manager AJPEData item type which has its own attributes such as name, type, and description. This is the defined default item type name in the aptrixjpe.properties file. This will be described in more detail in 6.4, “How LWWCM objects are stored in CM” on page 108. 4. Binary files and image objects are also stored as an AJPEResources item in Content Manager. The actual objects are stored physically in Resource Manager. 5. The attribute JPE Server ID in both item types identifies the LWWCM server.
Figure 8-5 shows the details of the integration.
The attribute JPE ServerID=MyLWWCM_1
Web Browser
AJPEData AJPEResources SP SP SP SP
WebSphere Application Server WebSphere DB2 Application Server Resource Manager web Application ILWWCM web Net Search Application Extender
Library Server Federated Connectors
connect.cfg aptrixjpe.properties cm.jpeServerIdentifier=MyLWWCM_1 aptrixsearch.properties Figure 8-5 Integration details
For this configuration, with one LWWCM server, we could have either one Library Server and one Resource Manager, or one Library Server and multiple Resource Managers.
One Library Server and one Resource Manager In this scenario, one LWWCM server is integrated with one Content Manager system which has one Library Server and only one Resource Manager. With this scenario, we have the further option of having everything installed on one
Chapter 8. System architecture considerations 175 machine or have LWWCM and Content Manager on different machines. The considerations for each scenario (one box or more than one) are described in the previous sections. The data in Content Manager is all stored on one unique machine.
One Library Server and multiple Resource Managers In this scenario, one LWWCM server is integrated with one Content Manager system that has one Library Server and multiple Resource Managers. With this scenario, we need to have multiple machines: an additional one for each additional Resource Manager. One reason to set up the system this way is to have the AJPEResource item types stored in another machine. This approach is useful if you host geographically diverse Web sites that require access to large image or video objects and you want to set up Resource Managers that are closer to where users are most likely going to retrieve the files.
To set up this configuration, the Resource Manager associated with the actual AJPEResource item type needs to be replaced with the extra Resource Manager: 1. Open the Content Manager System Administration client. 2. Select Data Modeling -> Item Types. 3. From the right panel, right-click AJPEResource and select Properties from the context menu. 4. Select the Document Management tab. 5. Select the existing Part type (ICMBASE by default) and click Edit. 6. In the pop-up window, you can change the default Resource Manager (and the corresponding collection) and select another one which is installed on another machine. 7. Click Apply and then OK.
In Figure 8-6 on page 177, we show an example of a Content Manager server which has two associated Resource Managers, RMDB and RM2.
176 Lotus Workplace Web Content Management and Content Manager Working Together
Figure 8-6 Configuration of the AJPEResources to point to another RM.
8.4.2 Several LWWCM servers We recommend setting up several LWWCM servers if the Web sites are expected to be large and/or complex. When dealing with such Web sites, it is generally necessary to divide the processes into different logical environments for each specific requirement. For most of the Web sites, it is common to find at least two environments, one for development and authoring, and another one for production, the live Web site.
In this LWWCM Java edition, Web sites can share information between the environments through the syndication activity. Syndication allows data to be replicated among different LWWCM servers. The syndication is based on the Information and Content Exchange (ICE) standard and uses HTTP. For more detailed information about syndication, refer to 13.1, “Syndication overview” on page 272
Chapter 8. System architecture considerations 177 Advantages The syndication in this approach is very useful because it allows us to have many distributed servers with the same data replicated in all of them. We have a choice of syndication or not, depending on the business needs or stages.
There are different types of possible environments: Authoring: In many large companies, it could be necessary to have multiple servers that spread across multiple physical locations. Content can be created and maintained locally and then syndicated to a central authoring server. Staging: Provides a chance to review changes in the context of the entire site before they are sent into the live environment. We highly recommend setting up this environment in the case where large changes are expected to be made on regular intervals. Live: Provides end consumers with the live Web site. This is tuned for efficiently rendering Web pages. The environment often include other performance enhancing software and hardware to help with caching, load balancing, and failover. Development: Provides for development and testing. After the appropriate testing, syndication can be used to send the data to the live environment or optionally a staging environment. Testing: Useful in cases where a development environment needs to be separated from a testing environment.
Having several LWWCM servers using a unique Content Manager repository does not apply only to the Web sites which need to have different stages. It is also useful, for example, if we want to have different Web sites but want to store information in the same repository. In this case, the syndication would not be necessary because the data in each Web site (LWWCM server) would be different.
Disadvantages One disadvantage of having multiple LWWCM servers, with different environments syndicating the data, is that if we use external files within the content site, we need to deliver these external files to all the servers manually and store them in each server’s file system. For example, if we use a JSP file (external to LWWCM) as we show in 7.5, “JSP component” on page 151, the JSP file needs to be copied to all the servers that are being syndicated. Otherwise, the JSP component will try to find the JSP file unsuccessfully and will not be able to render the JSP content. Another similar case is the use of an HTML file (external to LWWCM) to show the search results using connect tags as we will see in 7.4.3, “Putting it all together” on page 148. In this case, the HTML file would also need to be copied to all the servers every time it is modified manually.
178 Lotus Workplace Web Content Management and Content Manager Working Together Environment samples A simple example of having two different environments could be to have the content creation and maintenance carried out in the authoring environment and this content syndicated to the live environment.
In order to include a staging environment, we could add it between the authoring and the live environments.
Within a large company, there may also be a need to be multiple servers spread across many physical locations. Content can be created and maintained locally and then this content can be syndicated to a central authoring server.
Figure 8-7 shows the scenario where there are three environments, Authoring, Staging, and Live, and each is set up on a separate machine.
Authoring
Authoring
Syndication Staging Web browser
Preview Syndication Live
View
Web browser
Figure 8-7 Multi-environment, multi-machines setup
One Library Server and one Resource Manager This approach implies having many LWWCM servers pointing to a unique Content Manager repository, with one Library Server and one Resource Manager.
To achieve this integration, the Information Integrator for Content Development Workstation must be installed on each LWWCM machine to provide the necessary connectors for the communication. Figure 8-8 on page 180 illustrates this scenario setup.
Chapter 8. System architecture considerations 179
LWWCM
II for Content Client
DB2 CM LWWCM II for Content Server II for Content Client
LWWCM
II for Content Client
Figure 8-8 Multiple LWWCM servers/machines scenario architecture
When several LWWCM are installed and configured to use the same Content Manager repository, each LWWCM must have a different name. This is defined in the aptrixjpe.properties file on each LWWCM server: cm.jpeServerIdentifier=MyLWWCM_1 cm.jpeServerIdentifier=MyLWWCM_2
In this scenario, MyLWWCM_1 and MyLWWCM_2 are the names of two LWWCM servers. Any combination of numbers and letters can be used to name the different servers.
Tip: We recommend using the host name of the server as your jpeServerIdentifier. If you have multiple LWWCMs on one machine, append a number to the host name. This is because the host name is unique and can easily be associated with a physical machine.
From Content Manager, the attributes JPE ServerID in AJPEData and AJPEResources identify the object in the proper LWWCM Server. If you select Start -> Programs -> IBM Content Manager V8 -> Client for Windows, log on to the Library Server, and run a search based on item type AJPEData, you will get all items stored in Content Manager with this item type. The results of this search are shown in Figure 8-9 on page 181. Note, for example, that there are two items called Anonymous. Both items have a different JPE Server ID. This
180 Lotus Workplace Web Content Management and Content Manager Working Together means that even if the items are called the same, they belong to different LWWCM servers. The first one belongs to the server identified as demo2 and the second one to server identified as 1.
Note: The only attribute which has different values in this example is JPE Server ID. This is because both LWWCM servers are syndicated and so the data is the same in both.
Figure 8-9 Different LWWCM using the same Content Manager
Figure 8-10 on page 182 illustrates the scenario where several LWWCM servers use the same Content Manager.
Chapter 8. System architecture considerations 181
Web Browser
The attribute JPE ServerID=MyLWWCM_3 cm.jpeServerIdentifier=MyLWWCM_3 WebSphere The attribute JPE ServerID=MyLWWCM_2 Application Server
LW W CM web The attribute JPE ServerID=MyLWWCM_1 Application cm.jpeServerIdentifier=MyLWWCM_2 AJPEData WebSphere Application Server AJPEResources SP SP SP SP LW W CM web Application WebSphere WebSphere Application Server Application Server DB2 Resource Manager LWWCM web web Application Federated Connectors Application Net Search Extender
Library Server
connect.cfg cm.jpeServerIdentifier=MyLWWCM_1 aptrixjpe.properties aptrixsearch.properties
Figure 8-10 Several LWWCM servers using the same Content Manager
Note that in the above scenario, each LWWCM has one server name defined in the proper aptrixjpe.properties file. This name is used in AJPEData and AJPEResources item types from Content Manager to identify which server each object belongs to.
One Library Server and multiple Resource Managers This approach covers the cases where you want to share the load of many LWWCM servers among many Resource Managers, even if the LWWCM servers all use the same Library Server. This might make sense in the following occasions: For load balancing and performance reasons, the design and content of the LWWCM servers need to be synchronized using LWWCM’s syndication feature. You might also want to share the load of the Resource Managers, having each LWWCM server accessing its own Resource Manager. Two or more LWWCM servers host different Web sites. For back-up, recovery, performance, and load balancing reasons, they need to use independent Resource Managers through the same Library Server. One Resource Manager is used to store LWWCM objects such as LWWCM site, site areas, content templates, workflows, and workflow stages. The other
182 Lotus Workplace Web Content Management and Content Manager Working Together Resource Manager is only to serve as the source for external content such as videos and images.
Having multiple LWWCM servers using the same Library Server but different Resource Managers for the storage of LWWCM objects can be accomplished through a special configuration on each LWWCM server. By default, the LWWCM server creates and uses two item types in the Content Manager server called AJPEData and AJPEResource to store its objects. Among other settings, these names can be adapted to match a specific item type name. You can take advantage of this fact, and define a different Resource Managers for different item types.
To change the name of the item type which will be created and used by the LWWCM server, open the aptrixjpe.properties file in \config directory and edit or add lines as shown in Example 8-1 for the first LWWCM server.
Example 8-1 aptrixjpe.properties of the first LWWCM server .. cm.server=ICMNLSDB ... cm.itemType=demo1_data cm.resources.itemType=demo1_resources ...
Configure an additional LWWCM server using the lines shown in Example 8-2.
Example 8-2 aptrixjpe.properties of the second LWWCM server ... cm.server=ICMNLSDB ... cm.itemType=demo2_data cm.resources.itemType=demo2_resources ...
Figure 8-11 on page 184 outlines this example configuration. For the first LWWCM server, LWWCM 1, it uses item type demo1_data and resource item demo1_resources. For the second LWWCM server, LWWCM 2, it uses demo2_data for the item type and demo2_resources for the resource item. Both LWWCM servers point to the same Content Manager Library Server, ICMNLSDB. Within the shared Library Server, demo1_data of item type and demo1_resources of resource item type belong to the Resource Manager, RM1. The demo2_data and demo2_resources belong to the Resource Manager, RM2. This means that each LWWCM server will have its own Resource Manager to store video and files.
Chapter 8. System architecture considerations 183
LWWCM 1 LWWCM 2
cm .server=ICM NLSDB cm .server=ICM NLSDB cm .item Type=demo1_data cm .item Type=demo2_data cm.resources.itemType=demo1_resources cm.resources.itemType=demo2_resources
1 2
Library Server Item Type: demo1_data => RM1 Item Type: demo1_resources => RM1 Item Type: demo2_data => RM2 Item Type: demo2_resources => RM2
1 2
RM1 RM2
Figure 8-11 Multi-LWWCM using multi-Resource Managers
For more information regarding specific Content Manager related configuration, refer to the chapter Storing Data in IBM Content Manager from the LWWCM online Information Center.
Multiple Content Manager servers This approach covers the cases in which companies have many offices geographically distributed in different locations. They may also have multiple Content Manager and LWWCM servers, one for each location. In this case, each LWWCM server uses a Content Manager server as repository and the common data (the Web site content and design objects) is syndicated between the different LWWCM servers. This way, we ensure that the same Web site is stored in each location but has the same data everywhere. From the security point of view, this is a good approach because each location is independent of the others regarding data storage.
The configuration needed for this approach is the same as for one LWWCM and one Content Manager server since each local configuration is independent of the others. The only thing in common, in this case, is the usage of syndication to keep the same updated data in every server. To achieve the syndication, one of
184 Lotus Workplace Web Content Management and Content Manager Working Together the servers need to be the Syndicator and the other server the Subscribers. Figure 8-12 illustrates this scenario.
LWWCM DB2 CM
II for Content EIP Dev.Wkst. Server
LWWCM DB2 CM
II for Content EIP Dev.Wkst. Server Syndication
LWWCM DB2 CM
II for Content EIP Dev.Wkst. Server
Figure 8-12 Multi-LWWCM to multi-Content Manager via syndication
8.4.3 Using Content Manager as a repository for external resources You can have multiple Content Manager servers with data populated or imported using Content Manager as the front end application, and publishing their content to LWWCM Web sites. This approach is useful in cases where we need to use, for example, video files or images that are archived in different Content Manager servers to LWWCM Web sites. In this case, we are not only using Content Manager as a repository, we also use it as the source for external data. The different ways to retrieve the Content Manager data stored in several Content Manager servers are explained in Chapter 7, “Publishing Content Manager content” on page 115. For information on integrating Content Manager videos to LWWCM Web site, refer to Chapter 12, “VideoCharger integration” on page 255. Note that, in order to get this functioality, you must install the Information Integrator for Content server on the LWWCM server(s).
8.5 Mixed operating systems (Windows and AIX)
It is possible to have all the previously discussed environments and combinations of LWWCM and Content Manager server setups configured on
Chapter 8. System architecture considerations 185 different operating platforms. Once LWWCM and/or Content Manager is/are installed on AIX and/or AIX, the usage of Content Manager and LWWCM is the same as if everything were set up on a Windows platform. It is transparent to end users as to where the servers are installed and run. Generally, we recommend that you use the same platforms for all servers. However, if the existing LWWCM and Content Manager servers are already using different platforms, you should still be able to perform the integration without any problems.
186 Lotus Workplace Web Content Management and Content Manager Working Together
9
Chapter 9. Portal integration
This chapter describes the features of the LWWCM content portlets and Content Manager portlets in detail. We also talk about user management from a portal perspective and the impact on Single Sign On with Content Manager and LWWCM (see also Chapter 11, “Security” on page 237).
© Copyright IBM Corp. 2004. All rights reserved. 187 9.1 Architecture
The following figure illustrates the actual global high-level architecture including WebSphere Portal Server (WPS).
CREATION STORAGE MANAGEMENT DELIVERY Business applications
MS WORD LOTUS CONTENT WORKPLACE MANAGER WEB Websphere CONTENT 1 Studio MANAGEMENT Websphere Portal Server Page Browser Rich Text
OTHER WEB TIVOLI STORAGE PAGE MANAGER 2 Content
Web Page
Figure 9-1 WPS/LWWCM / Content Manager architecture
9.1.1 Content creation In the current version of LWWCM, in conjunction with the Content Viewer portlets, we only have the possibility to view content within the portal. Creation, editing and deleting of content as well as page design (creating page design, content templates, site framework) are still done in the LWWCM Administration client. In future releases of LWWCM, the LWWCM Administration client will move from an applet-based application to a portlet application which can only be used within WebSphere Portal. This chapter focuses on integrating the content viewing into WebSphere Portal V5.
9.1.2 Content storage As discussed in Chapter 1, “Lotus Workplace Web Content Management overview” on page 3 and Chapter 8, “System architecture considerations” on page 167, content can be stored in either the file system, a relational database system or IBM Content Manager. From the portal point of view, this is transparent. It does not make a difference which repository type you are using.
9.1.3 Content management The site framework, the relationship between content and associated site areas as well as content and associated categories are implemented in the LWWCM
188 Lotus Workplace Web Content Management and Content Manager Working Together administration client. It is independent of WebSphere Portal Server when WebSphere Portal Server is used as the user interface.
9.1.4 Content delivery
There are basically two ways to present LWWCM content to the user (see the box in Figure 9-1 on page 188): 1. Use WebSphere Portal Server as the rendering engine for content stored in LWWCM. 2. Use LWWCM itself as the rendering engine for its own content.
Both approaches can be used in parallel, that is, LWWCM serving content to both the portal and a “traditional” Web page concurrently. The advantages of having content and navigation rendered into the portal are discussed in 9.2, “Why integrate LWWCM in WebSphere Portal Server?” on page 190.
If you decide to publish Content Manager content on your portal page, which is independent from LWWCM, you have two options, which we discuss in the following chapters: 1. Access Content Manager content through LWWCM using the content viewer portlets. 2. Access Content Manager content directly using Content Manager portlets.
Access external Content Manager content through LWWCM This is the preferred approach, because it centralizes all access to the content in LWWCM. It lowers the risk of having inconsistent Web pages because it channels content and components published in WebSphere Portal Server through the security, layout and navigational mechanisms of LWWCM. Security The user credentials used to log into the portal can be passed through to the LWWCM system. Each object in LWWCM has its own security. In consequence, this also applies to Content Manager content which is referenced through LWWCM using either the federated component, the connect tags or the JSP page approach as discussed in 7.5, “JSP component” on page 151. Look and feel/corporate identity
Since the content viewer portlet also uses a page design which is administered in the LWWCM administration interface, the responsibility for the look and feel of the page layout remains in the hands of the LWWCM page designer.
Chapter 9. Portal integration 189 Navigation
As you will see in “Navigation portlet” on page 194, it is possible to have a navigation portlet which reflects the site framework set up in LWWCM. Your connection to Content Manager content is done using components which are finally referenced through a content page which, in turn, is attached to one or more sites or site areas in the site framework. The result is that the location of the Content Manager content is defined only once when setting up the site framework of your site. The location which is set in LWWCM will then automatically imply where the content will appear on the portal page.
9.2 Why integrate LWWCM in WebSphere Portal Server?
This chapter explores why you would choose WebSphere Portal Server as the front end for LWWCM content from the Web user’s perspective. Single Sign On Once a portal user is logged into the portal, the credentials can be passed through to LWWCM to prevent users from having to enter their credentials a second time. At the same time, the portal credentials can be used to authenticate against other portal applications. The goal is that the user has to log in only once for all applications available through the portal user interface.
Note: Refer to 9.4.2, “User management and security” on page 200 for more information.
Flexible presentation and layout model High-end WCM functionality LDAP Content Manager integration Free choice of presentation layer Portlet Traditional Web site WAP and others Intuitive click to action (C2A) navigation Easy creation of interconnected portlets Allows content and components to be delivered through WebSphere Portal Server
190 Lotus Workplace Web Content Management and Content Manager Working Together 9.3 Levels of integration
There are basically four levels of integration which match the approach of portlet
patterns for integration approaches of external applications in general. Link Showing a link on the portal page only. Clicking the link would open a second browser window. Display This is mainly done using the Web page portlet which itself renders the external application into the portal page using an iFrame. Integrated Mainly done by using existing portlets or low complexity development. Migrated The external application is no longer used in its original state. All the functions of the user interface are reprogrammed in a portlet using the portal API and the API of the application to be integrated.
Table 9-1 Portlet pattern advantages/disadvantages Advantages Disadvantages
Link Quick and easy Simple Web link from the portal Access existing applications Doesn’t use the portal No modifications to existing framework to display the functionality actual application
Display Minimal enhancements to Minimal or no application existing functionality functionality within the Optional link outside portal portal framework to access existing applications for more advanced functionality
Integrated Significant functionality Requires development within portal time and might be more difficult to implement
Migrated Full application functionality Technically challenging within portal and resource intensive to
implement
The corresponding levels of integration regarding LWWCM are shown in Table 9-2 on page 192.
Chapter 9. Portal integration 191 Table 9-2 LWWCM/Content Manager integration pattern
Link This is a link pointing to Content Manager content. This link can either be hard-coded or generated dynamically. You can do this with the federated component, connect tags or JSP component (see Chapter 7, “Publishing Content Manager content” on page 115). The content would normally open in a separate window once you click the link.
Display There are two ways to display external applications in portal: 1. Usually this is done through the Web page portlet which offers the ability to pull an external Web page into an iFrame. Since this happens on the user’s machine, the user needs to have access to the remote URL. Any existing Web application displaying Content Manager content could be referenced in this iFrame. 2. Web clipping is another approach to display external Web applications in the portal. Technically, the WebSphere Portal Server server fetches the HTTP stream of a defined URL. Before it is actually displayed on the portal page, modifications can be done to the stream, such as URL rewriting, definitions of start and end points, login. Any existing Web application displaying Content Manager content can be referenced by the Web clipping portlet.
Integrated This uses the existing LWWCM and Content Manager portlets provided by IBM. From an LWWCM point of view, it requires some development regarding portal-specific components and only a small effort to set up and configure the portlets. This is the preferred approach.
Migrated This uses the API of both LWWCM and Content Manager to develop brand-new portlets. From an LWWCM point of view, there is no need to choose this method, since the level of integration you can reach with the existing portlets is sufficient in most cases. One example of this approach is the seamless integration of the LWWCM hierarchy into the portal navigation, instead of using the content viewer portlet as a navigator portlet. This can be achieved through a portlet which first uses the LWWCM API to read the hierarchical information and from then on uses the portal API to compose a native portal navigation structure.
In the following sections, we choose the integrated approach.
192 Lotus Workplace Web Content Management and Content Manager Working Together 9.4 LWWCM portlets
There is only one portlet which is responsible for the integration of LWWCM into
the portal. Only the configuration of this portlet makes the difference. There are three types of portlets which can be configured this way: 1. Dynamic content A portlet of this type listens to events of other LWWCM portlet on the same portal page. For example: The content of this portlet changes dependent on the site area selected in another portlet. 2. Static content A portlet of this type shows a fixed content which is independent from other LWWCM portlets on the portal page. This approach is generally used to show a logo or a banner. 3. Library component Library components are components like tables, navigators, menus. Portlets configured to show this type of component are mostly used to present the user with some kind of navigator. Selecting an entry in the navigator triggers the event in dynamic content portlets (see above) to change the content.
9.4.1 Typical LWWCM portal page The typical portal page integrating LWWCM would consist of two or three portlets. Portlet one shows the navigator, portlet two shows dynamic content depending on which entry is selected in the navigator. Optionally, portlet three could display a contextual menu. This is illustrated in Figure 9-2.
Navigator Content
Context Menu
Figure 9-2 Sample LWWCM portal page layout
Chapter 9. Portal integration 193 In the following sections, we create three portlets to show our insurance content within a portal page. The page will be made up of:
A navigation portlet A dynamic content portlet showing content selected in the navigation portlet A static content portlet showing a menu
All three portlets will be merged into one portal page.
Navigation portlet In this section, we discuss the creation of a content viewer portlet set up in such a way that it displays our left hand navigator. The top-level node is the insurance node.
First, we create a new navigator library component in LWWCM to have a navigator which starts displaying the hierarchy at the insurance node.
Figure 9-3 Insurance navigator definition
The navigator portlet is then configured to use this insurance navigator.
194 Lotus Workplace Web Content Management and Content Manager Working Together
Figure 9-4 Insurance navigator portlet configuration - content
This portlet is broadcasting links to other portlet on the page to cause, for example, the content portlet to adopt context changes.
Figure 9-5 Insurance navigator portlet configuration - links
Content portlet We provide the information on how to create the content portlet which is showing: LWWCM repository content External Content Manager content using the federated content component
For demonstration purposes, we create content for the site area called Insurance Name 1. This content also references the Content Manager content through an embedded federated component.
The content in Content Manager is created using the import function of the Content Manager client for Windows.
Chapter 9. Portal integration 195
Figure 9-6 Importing text document into Content Manager
To keep it simple, we just create a copy of the existing content object IT, rename it to Insurance Name 1 and add a federated component to the content using the component manager named Insurance1Fed.
Figure 9-7 Component manager for content Insurance Name 1
196 Lotus Workplace Web Content Management and Content Manager Working Together After that, we open the new content in edit mode and configure the federated component within this document to reference the Content Manager content. Click Select Reference in the Insurance1Fed section in the content, enter your search criteria and select Insurance Name 1 from the result set.
Figure 9-8 Selecting content for the federated content component
We then also change the necessary fields such as DisplayTitle, Summary and Body. In order to see the new fields and the content on the page, the LWWCM page design which is going to be used on the portal page (here: PortalPageLayout) must contain additional lines as shown in Example 9-1.
Example 9-1 Additional lines in PortalPageLayout Insurance Name:
Insurance Description:
Insurance Number:
Insurance Target Group:
Content:
Note: See also Chapter 7, “Publishing Content Manager content” on page 115 for more details about how to reference a federated component in a page design.
After the creation of the content in LWWCM, we configure the content portlet to use this new content.
Chapter 9. Portal integration 197
Figure 9-9 Insurance content portlet configuration - content
The chosen content will be overwritten with new content when a link in the navigator is clicked, since this portlet is configured to listen to broadcasts from other portlets and itself.
Figure 9-10 Insurance content portlet configuration - links
Menu portlet The menu portlet is created to show a menu. This menu shows a list of available insurances and is retrieved from Content Manager using the JSP component created in 7.5, “JSP component” on page 151. The name of the JSP component used here is MyJSPCmpnt.
198 Lotus Workplace Web Content Management and Content Manager Working Together
Figure 9-11 Insurance menu portlet configuration - content
Creating the portal page Once all the portlets are set up, they can be put on a portal page.
Figure 9-12 Portal page layout
The resulting page should look similar to the following screen shot.
Chapter 9. Portal integration 199
Figure 9-13 Insurance portal page
9.4.2 User management and security The major challenge when trying to integrate Content Manager content through LWWCM into a portal page is that there are three different systems and all of them claim to have their own user management. In the portal context, the user has to log in to the portal first. In order to prevent users from having to enter their credentials a second time, the user information has to be passed through to LWWCM. This can be done by configuring each portlet on the credentials tab in such a way that it either inherits the portal user credentials or uses a credential vault slot.
Note: For more information regarding the setup of credential vault slots, see the WebSphere Portal Information Center.
In both cases, the portal authenticates with a valid user/password combination against LWWCM. This ensures that the logged-in user will only be able to see LWWCM components and content which he/she is allowed to see. LWWCM itself does not pass the credentials through to Content Manager. Instead, it connects to Content Manager with one global user defined in the Content Manager persistency section of [LWWCM_HOME]\config\aptrixjpe.properties. In general,
this user is granted at least read access to all objects in Content Manager: cm.username=icmadmin cm.password=password
200 Lotus Workplace Web Content Management and Content Manager Working Together The security is implemented in LWWCM and not in Content Manager.
The flow described above is illustrated in Figure 9-14.
With LWWCM V2.0, the user management is not yet integrated into the WebSphere Member Manager (WMM) which is the basis for WebSphere portal server. LWWCM is still running its own user management system. But there are ways to realize a pseudo-integration. This is discussed in Chapter 11, “Security” on page 237.
WebSphere Portal User Credentials Server
SSO or Credential Vault
Content Global user defined in Manager aptrixjpe.properties Lotus Workplace Web Content Management
Figure 9-14 User credentials flow
9.5 Content Manager portlets
We will not discuss the Content Manager portlets in detail here since they are not directly related to the integration of LWWCM and Content Manager. An approach could be to put LWWCM portlets on a portal page and to complement them with Content Manager portlets wherever LWWCM cannot provide the needed functionality. The Content Manager portlets and LWWCM portlets remain independent though, that is, for example, they do not communicate using click to action. Therefore, the preferred approach is to have all your needs covered by either the LWWCM or the Content Manager portlets.
In the following sections, we give a rough overview of available portlets for Content Manager and Information Integrator for Content.
Chapter 9. Portal integration 201 9.5.1 Content Manager/Information Integrator for Content portlets
These portlets perform the following on Content Manager content:
Read functions similar to the eClient Web application and the Content Manager administration client for Windows. Import new content to Content Manager. Export existing content from Content Manager. Edit attributes.
You can download Content Manager portlets from the IBM portal and workplace catalog. 1. Go to http://catalog.lotus.com/wps/portal/portalworkplace. 2. Enter IBM Content Manager into the search field and press Enter. 3. Look for Portlets for IBM DB2 Content Manager V8.2. 4. Download the war file and the documentation.
The following screen shots give a basic idea of what the Content Manager portlets look like.
Figure 9-15 shows the start page of the portlet which gives you the option to either run a query on Content Manager content, create new folders or import documents into Content Manager.
Figure 9-15 Content Manager portlet start page
Figure 9-16 on page 203 shows the page where all available item types are listed.
202 Lotus Workplace Web Content Management and Content Manager Working Together
Figure 9-16 Content Manager portlet items types
Figure 9-17 shows the page where you can enter your query.
Figure 9-17 Content Manager portlet search entry
Figure 9-18 on page 204 shows the result page of a search.
Chapter 9. Portal integration 203
Figure 9-18 Content Manager portlet search result
9.5.2 Information Integrator for Content portlets These portlets perform the following on Content Manager content: Federated Search performs a similar function to the EIP thin client application. It presents you with a list of predefined search templates, allows you to enter search parameters, and displays search results in a table. Advanced Search enables you to perform an unstructured search using Information Integrator for Content’s Information Mining feature. You can select from a list of categories to narrow the search results.
You can download Information Integrator for Content (former name was EIP) portlets from the IBM portal and workplace catalog. 1. Go to http://catalog.lotus.com/wps/portal/portalworkplace. 2. Enter IBM EIP into the search field and press Enter. 3. Look for IBM EIP Search Version 8.1. 4. Download the war file and the documentation.
The screen shots below (Figure 9-19 on page 205 and Figure 9-20 on page 205) show an example of a federated search and the result set.
204 Lotus Workplace Web Content Management and Content Manager Working Together
Figure 9-19 Federated search portlet - query screen
Figure 9-20 Federated search portlet - result screen
Chapter 9. Portal integration 205
206 Lotus Workplace Web Content Management and Content Manager Working Together
Part 3
Part 3 Advanced topics
In this part, we cover advanced topics such as search, security, integrating VideoCharger videos, data migration, and versioning.
© Copyright IBM Corp. 2004. All rights reserved. 207
208 Lotus Workplace Web Content Management and Content Manager Working Together
10
Chapter 10. Search
This chapter describes how to search Content Manager text content and how to integrate the search results in a Web page or portal with LWWCM. We describe different search approaches, and the advantages and disadvantages of using: Net Search Extender (NSE) Federated search with Information Integrator for Content (II for Content) LWWCM integrated search Portal Search Engine (PSE) Domino Extended Search (DES)
The Information Integrator for Content and NSE approaches will be discussed in more detail.
© Copyright IBM Corp. 2004. All rights reserved. 209 10.1 Overview
Information searches on the Web have become an elementary part of our daily life. The question is how to find the right information among all that is available on the Web. The question also translates into what search engine we should use to find the right information, assuming that a good search engine helps us to find what we are looking for. A good search engine might not be the universal answer. This answer depends on what we are looking for: do we just want to browse the Web to see what information is out there or do we need specific information? It also depends on where we are and how much time we have: are we searching at work, at home, or on a business trip? Do we have to find the information within a short time frame or not? Some of the differences between the search engines on the market are the amount of information they index, the ranking approaches of the search results, how the results are displayed, whether there is duplicated information, metadata search to different search engines or back-ends. Intelligent search solutions include summarization, categorization, fuzzy searches, using thesaurus dictionaries, redefining the query based on the retrieved results list, influencing the ranking order, and including Web crawlers which can be configured by users. Other important features of a search input panel are the possibility for simple and advanced searches, personalized searches, word or phrase searches, boolean searches with AND, OR, NOT, proximity searches in the same sentence or in the same paragraph, similarly spelled search terms, degrees of fuzziness, free text searches and wildcard searches on characters or word levels.
From the Enterprise content management point of view, searches are a part of every solution. Content is nothing if one cannot find it and retrieve it quickly, regardless of the back-end server in which the content is stored.
10.1.1 Content Manager search possibilities Content Manager has different ways of finding and retrieving information stored within it: parametric searches, full text searches, and combinations of parametric and full text searches.
A parametric search is based on the Library Server metadata. In our case study example, the metadata includes an attribute field, IT_Name, in the insurance item type definition, representing the insurance type name. After importing the item objects with the Content Manager Windows client or your own application, you can run a basic or advanced parametric search on the attribute field, IT_Name, whereby you specify the full attribute entity you search for. Figure 10-1 on page 211 shows a sample input window for a basic search and Figure 10-2 on page 211 shows the sample search results.
210 Lotus Workplace Web Content Management and Content Manager Working Together
Figure 10-1 Parametric search on the InsuranceType attribute IT_Name
Figure 10-2 Parametric search results
A full text search is based on document and attribute indexes. For item type attributes or item type text document objects that have been set up to be text indexed, this search type can be used. A full text search is performed against the NSE text index instead of the Library Server attribute tables.
A combination of parametric search and full text search is the third search possibility available in Content Manager; it combines the means of parametric and full text searches in one query string. Which search option can be used is defined during the item type definition.
Chapter 10. Search 211 The following is a list of some important factors related to Content Manager search possibilities:
When you want to make an item type (or text document) text searchable, you need to index the text part of your document. Make sure you add ICMBASETEXT as a part type of the item type in the Content Manager System Administration Client’s Document Management tab. ICMBASETEXT contains the fundamental content of a document item type that stores text content. If you plan to index a text part of your document, you should store the part in this part type. Indexing a text part allows a text search to be performed on the content of the part. ICMBASE, the base document part, stores any non-textual type of content such as image and audio. To ensure that an item is viewable from eClient, the item type of the item must include at least one base document part. From the Content Manager Windows client, you can run advanced searches, a powerful feature. Using an advanced search, you can specify groups for several item types and set different criteria for every one of them. For each item type, you create a search expression using the search criteria (the attribute values) for that item type.
10.1.2 NSE integration within Content Manager With NSE installed, you can make Content Manager attributes, resource items and documents text searchable. The text search capability can be enabled when creating a new item type.
For an overview of Net Search Extender, see 2.2.10, “IBM DB2 UDB Net Search Extender (NSE)” on page 21. For more in-depth information, refer to Net Search Extender Administration and User’s Guide, SH12-6740.
Note that, by default, the Content Manager item types AJPEData and AJPEResources are not text searchable. These item types are used to store LWWCM system data information such as file resource components and image components. There is no reason for the Web content development perspective to enable a text search on these item types.
Integrating search results in Web content An interesting and useful approach is to dynamically integrate the Content Manager text search results into Web content. It is also interesting and useful to integrate a JSP that contains the Content Manager text search function in a Web page so that the user can dynamically run the text searches against the Content Manager’s text-searchable content.
212 Lotus Workplace Web Content Management and Content Manager Working Together Defining Content Manager text search options Text search options can be set from the Content Manager System Administration Client when creating an item type. During the creation of a new item type, at the New Item Type Definition panel for Document and Resources item type classification, click Enable text search and then click Options. This allows you to go to the text search option setting window (see Figure 10-3) to set the various options.
Figure 10-3 Text search option settings
We only need to consider setting the main parameters. Figure 10-3 shows the values we set for item types in our case study. We use the default for most of the values. You can set them according to your environment: In the index language setting fields, specify a supported code page (CCSID) and language code for the documents or attribute fields that will be used to 850 EN_US create the text index. By default, we use for CCSID and for Language code. In the Model definition fields, you can specify parameters for a model that describes what sections of the text are to be indexed. In our case study sample, we leave the fields blank.
Chapter 10. Search 213 In the Index update settings fields, you can specify the amount of time that needs to have passed between updates of the text indexes. Updating text indexes ensures that the text search results reflect the latest changes on the documents or attributes enabled for text search. How frequently you want to set these values depends on how often the data is changed and on your system resources. For example, if your documents are only updated once per week, you do not need to set the updates to every hour. To give another example, if versioning is enabled so that a new version will always be created, then the update frequency you choose depends on how often the new versions are created. Be aware that the amount of time that passes before a text index update impacts your system performance. You may also choose to specify the number of changes to an item type object before the next update runs in this setting. In our case study, we set values so as to update the index every 30 minutes. This is because we have a small testing volume and want the indexing to take place frequently. In the User defined function fields, you can choose between two user-defined functions, ICMfetchContent and ICMfetchFilter: – ICMfetchContent supports the following document formats: TEXT for plain text (for example, flat ASCII files), HTML for Hypertext Markup Language, XML for Extended Markup Language, and GPP for General Purpose Format (flat text with user-defined tags). – ICMfetchFilter supports filtering software to extract textual content from PDFs and other common text formatting tools, such as Microsoft Word. The libraries are not part of Net Search Extender and need to be installed separately as described in the NSE documentation. In our case study, we use the default value ICMfetchContent.
Note: If you update an item type or attribute from non text-searchable to text-searchable, only the new imported text documents or newly specified attributes will be indexed for text search, not the existing ones. Once the Content Manager text search options for an item type have been defined, they cannot be changed.
Importing text-searchable item objects into Content Manager To import text-searchable item objects into Content Manager, you can use the Content Manager Windows client, eClient, or your application. Within the Content Manager Windows client, you must specify that the document is text searchable when importing the document to Content Manager. With the eClient, the document is always imported as text searchable if the text search option was enabled during item type definition. Make sure you specify the right content and file type before you import a text document. See Figure 10-4 on page 215 for an example of importing a document using eClient.
214 Lotus Workplace Web Content Management and Content Manager Working Together
Figure 10-4 Import a text searchable document form Content Manager eClient
10.1.3 Federated search Federated search enables users to search information from different sources. Enterprise data sources are diverse and distributed. About 80% of the data is in unstructured format. Information Integrator for Content’s federated search engine centralizes the searches from within the Content Manager systems and the other distributed content sources and repositories. A federated search also includes the retrieval of free text capabilities by using NSE as in our installation or as part of Information Mining. Information Mining is a feature that enables users to search among unstructured data. It includes categorization, clustering, summarization, and feature extraction for the unstructured data.
Integrating a federated search in Web content In 10.1.4, “LWWCM search module” on page 219, we show how the federated search can be integrated during the Web site development phase using Content Manager as a repository. You create the federated search templates within the Information Integrator for the Content administration client. In this example, the federated search template goes against the Content Manager V8 repository only. It is possible to create a federated search template against multiple and different back-end content repositories. From the LWWCM administration client, you can
create federated content components referring to the created federated search template. Once the federated content components are created, the LWWCM Web developers can integrate the federated search results into an LWWCM Web
Chapter 10. Search 215 page content. See 7.3, “Federated content component” on page 123 for the steps to create the federated content component.
LWWCM admin user interface
Create Create Federated content component File Resource component Java, Beans, Servlets, JSP
FED Reference to Connector file(s)
Java, Beans, Servlets, JSP Information Integrator for Content file(s) admin user interface
Federated search templates
ICM Connector Content Manager Version 8
Figure 10-5 LWWCM Web site development with federated search objects
An even more flexible approach is to integrate JSP resource components that use Java search APIs as described in 10.2, “Integrating a search” on page 219. With JSP incorporating federated searches in a Web site, users have the possibility to query dynamically against the back-end data repository supported by the federated search in Information Integrator for Content. In our case study scenario, as shown in Figure 10-6 on page 217, users can use a federated search to query against Insurance Name, Insurance Description, Insurance Group, and Insurance Number. These federated attributes are mapped to Content Manager attributes, so the federated search is against the Content Manager data repository. The Web page shown in Figure 10-6 on page 217 also displays Content Manager metadata and content objects.
216 Lotus Workplace Web Content Management and Content Manager Working Together
Web page
Stored LWWCM Content Manager metadata or content references
JSP for federated search
FED ICM ICM Connector Connector Connector
II for Content Admin Content Manager Content Manager Version 8 Version 8
Federated search LS RM LS RM templates NSE NSE
Figure 10-6 JSP with federated search APIs integrated in a Web site
To become familiar with the federated search APIs syntax, see the JSP search sample in the Information Center subdirectory: On AIX, it is /usr/lpp/cmb/samples/jsp/taglib On Windows, it is \infoctr\info\apiinfo\dk\samples\jsp\taglib
From the Information Integrator for Content (also known as EIP) Developement window, you can compile and run the sample files such as TSearch.java. In Windows, you can find this file in the \infoctr\info\apiinfo\dk\samples\java\beans directory. With TSearch, you can run federated or Content Manager item searches from the command line. See the syntax and a sample TSearch request, including the query results, in Example 10-1 on page 218. This example queries the InsuranceVideo item objects.
Chapter 10. Search 217 Before you run the sample, make sure you have the right environment by starting with the EIP Development Window or running cmbicmenv81.bat to run a Content Manager search or cmbenv81.bat (cmbenv81.sh on AIX) to run a federated search. These batch files automatically set the classpath for all Java utilities and samples. Also, edit the files and, if necessary, change the settings such as DB2HOME or CMBROOT according to your environment setting.
Example 10-1 Sample TSearch query for InsuranceVideo C:\ibm\cmbroot\cmbenv81. bat C:\IBM\Cmgmt\infoctr\info\apiinfo\dk\samples\java\beans>javac TSearch.java C:\IBM\Cmgmt\infoctr\info\apiinfo\dk\samples\java\beans>java TSearch Searches a server for items, using a query string. Syntax: java TSearch where: is the type of server (Fed, ICM, DL, OD, DB2) is the name of the server or database. This can be followed by a connect string in parenthesis. is the userid is the password the name of the entity (aka item type, table) to search. the condition portion of the query string. The syntax of the condition varies depending on server type. Examples: java TSearch ICM icmnlsdb icmadmin password Book @Title LIKE \"%\" java TSearch DL libsrvrn frnadmin password NOINDEX Userid LIKE '%' java TSearch Fed cmbdb cmbadmin password NoIndex Userid LIKE '%' java TSearch DB2 sample db2admin password EMP_PHOTO PHOTO_FORMAT LIKE 'gif' java TSearch OD odserver userid password Balance CustName like '%BLONDIE%'
java TSearch ICM icmnlsdb icmadmin password InsuranceVideo @IT_Name LIKE \"%\" Connecting to server /InsuranceVideo[ @IT_Name LIKE "%"] Performing search There are 2 items found. Item[0] = Life insurance - Families IT_Name: Life insurance - Families IT_Description: Video for policy Life23 Second Version IT_Number: Life23 IT_Group: Person SOURCE: Video from marketing team Item is a document. Item is not checked out. There are 1 content parts. Content Part[0] = length: 8563944 mimetype: video/mpeg There are 0 annotation parts. There are 0 notelog parts. Item[1] = Life insurance - Car driver
218 Lotus Workplace Web Content Management and Content Manager Working Together IT_Name: Life insurance - Car driver IT_Description: Video for policy Life43 First Version IT_Number: Life3 IT_Group: Person SOURCE: Video from department 3421 Item is a document. Item is not checked out. There are 1 content parts. Content Part[0] = length: 809599 mimetype: video/mpeg There are 0 annotation parts. There are 0 notelog parts. Disconnecting from server
To integrate (embed) JSP within LWWCM, see 7.5, “JSP component” on page 151. For a simple integrated JSP search sample with LWWCM, see 7.5.4, “Sample code” on page 156.
10.1.4 LWWCM search module The LWWCM search module can be used to create a basic search function on keywords in objects stored in a Web Content Management environment on a limited scale. Queries may be composed of keywords combined with AND/OR operators to create a more specific query. For details, see 10.2.3, “LWWCM internal search” on page 232.
10.2 Integrating a search
In this section, we discuss the different approaches to providing users with an adequate search front end to query both content objects stored in the LWWCM repository and external content resources. There is not the search approach which would cover all requirements; but with some extra effort, you could present users with only one search interface which forwards the query to the appropriate search engine. The search approaches discussed here include: Leveraging the Content Manager/Information Integrator for Content Java APIs, which include: –Using Net Search Extender (NSE) from within a LWWCM Web page to query Content Manager content text attributes and text resources. –Using Federated Search from within a LWWCM Web page to run queries against different sources such as DB2, Domino Doc and others. In our sample, we query Content Manager attributes. Using the internal LWWCM search engine to query content objects stored in the LWWCM repository.
Chapter 10. Search 219 Pulling an existing search interface into the LWWCM Web page through the use of iFrames.
10.2.1 Leveraging the CM/II for Content Java APIs
To demonstrate how to leverage the Content Manager and Information Integrator for Content Java APIs, we use our case study to describe how to set up a sample search page for insurance types on your LWWCM Web page. We show you how to create a user interface to enter the query as well as a result table where clicking a result will open the actual document stored in the Resource Manager of Content Manager.
If you are not familiar with our case study, refer to Chapter 4, “Case study” on page 41. If you have not created the necessary Content Manager data model for the case study, refer to 7.2.3, “Content Manager data” on page 118 to see what item types need to be created and how they can be created.
Restriction: When using a federated search to search for Content Manager content, remember that it can only cover the metadata (attributes) of item types.
The steps to integrate NSE or the federated search are similar: 1. Develop the JSP file responsible for taking the query attributes, executing the search and displaying the results. 2. Create the necessary LWWCM objects using the LWWCM administration application: a. Create a new Content Template to incorporate the JSP component. b. Create a new HTML component to present the search entry form. c. Create a new Page Design to place the search entry form and the JSP component on the page. d. Create new content using the template created in Step a. e. Create a new site area below the Tools site area and assign the newly created content as the default content.
Content Manager (integrated NSE) and Information Integrator for Content (for a federated search) provide a set of powerful and comprehensive Java APIs which can be programmed to perform almost any desired functionality in Content Manager. The presented approach leverages the new JSP component of the LWWCM framework to access these APIs from within LWWCM. The code is using the ICM/FED connector to connect to Content Manager and/or Information Integrator for Content server, execute the query and retrieve the results. The advantage of using NSE is that it cannot only search in attributes but also within the attached Content Manager content if this is enabled for the searched item
220 Lotus Workplace Web Content Management and Content Manager Working Together type. The disadvantage of using NSE compared to the federated search is that NSE can only search within Content Manager content whereas the federated search can search among many other different sources such as DB2, and Domino Extended Search.
Tip: Using the JSP component is also discussed in greater detail in 7.5, “JSP component” on page 151.
Figure 10-7 shows the theoretical composition of an LWWCM Web page which incorporates a text search using NSE. Using the federated search for integration works in the same manner and is discussed in 10.1.3, “Federated search” on page 215.
LWWCM Webpage
HTML Component NSE & Federated Query entry form Search over CM Java API using the Library Server ICM / FED Form post connector
1
Resource Manager JSP Component 2 Query result evaluates form post attributes RM objects
Figure 10-7 NSE / federated search integration
Developing the JSP file We present sample codes for the NSE JSP file and federated search JSP file.
The Net Search Extender (NSE) JSP file The sample code in Example 10-2 on page 222 reads the query string from the request and executes a text search query against the Content Manager server. After that, it loops through the result set and displays any available attributes of the found Content Manager content documents.
Copy and paste the sample JSP file in Example 10-2 on page 222 to \jsp\NSESearch.jsp.
Chapter 10. Search 221 Note:
The servertype is ICM. The query syntax is XPATH and contains text search parameters. For
demonstration purposes, the query is currently constructed to search within attached Content Manager content. The query could easily be enhanced to cover an attribute search as well. The following example would also cover an attribute search: String query = "/InsuranceType[contains-text-basic(.//ICMPARTS/@TIEREF, \"" + q[0] + "\")=1 AND @VERSIONID = latest-version(.) OR @AttributeName LIKE \”%xyz%\”]"; The query is constructed in such a way that it only retrieves the latest version of any document matching the query. This is done by adding @VERSIONID = latest-version(.) to the query string.
Example 10-2 NSESearch.jsp <%@ page import="com.ibm.mm.beans.*, java.net.URL"%> <% // ------// Read the posted query parameter // ------String q[] = request.getParameterValues("query");
// ------// Define connection parameters of type ICM // ------String servername = "ICMNLSDB"; String servertype = CMBBaseConstant.CMB_DSTYPE_ICM; String userid = "icmadmin"; String password = "password"; String query = "/InsuranceType[contains-text-basic(.//ICMPARTS/@TIEREF, \"" + q[0] + "\")=1 AND @VERSIONID = latest-version(.)]";
// ------// Connect // ------CMBConnection conn = new CMBConnection(); conn.setServerName(servername); conn.setDsType(servertype); conn.setUserid(userid); conn.setPassword(password); conn.connect();
// ------// Run the XPATH query
222 Lotus Workplace Web Content Management and Content Manager Working Together // ------CMBQueryService qs = conn.getQueryService(); qs.setAsynchSearch(false); qs.setQueryString(query, CMBBaseConstant.CMB_QS_TYPE_XPATH); qs.runQuery();
// ------// Get the resultset and loop over it // ------CMBDataManagement dm = null; CMBSearchResults result = new CMBSearchResults(); result.setConnection(conn); result.newResults(qs.getResults());
%>
<% for (int i = 0; i < result.getCount(); i++) { %><% CMBItem item = result.getItem(i);// ------// Header Row // ------if (i == 0) { %>
<% for (int y = 0; y < item.getAttrNames().length; y++) { %> <%= item.getAttrName(y) %> | <% } %>
<% } dm = conn.getDataManagement(); dm.setDataObject(item); URL url = dm.getContent(0).getDataURL(); for (int y = 0; y < item.getAttrValues().length; y++) { %> <%= item.getAttrValue(y) %> | <% } %><% } %>
<%Chapter 10. Search 223 // ------// Disconnect // ------conn.disconnect(); %>
The federated search JSP file The sample code in Example 10-3 reads the query strings (InsuranceName, InsuranceDesc, InsuranceGroup and InsuranceNumber) from the request and executes a federated search query against the Information Integrator for Content server using these query attributes. After that, it loops through the result set and displays any available attributes of the found Content Manager content documents.
Copy and paste the sample JSP file as shown in Example 10-2 on page 222 into \jsp\FEDSearch.jsp.
Note: The servertype is FED. The federated search, by default, returns the latest version only. The example assumes that a search template has already been created in Information Integrator for Content with the four attributes InsuranceName, InsuranceDesc, InsuranceGroup, and InsuranceNumber.
Example 10-3 FEDSearch.jsp <%@ page import="com.ibm.mm.beans.*, java.net.URL"%> <% // ------// Read the posted parameters // ------String InsuranceName[] = request.getParameterValues("InsuranceName"); String InsuranceDesc[] = request.getParameterValues("InsuranceDesc"); String InsuranceGroup[] = request.getParameterValues("InsuranceGroup"); String InsuranceNumber[] = request.getParameterValues("InsuranceNumber");
// ------// Define connection parameters of type FED // ------String servername = "ICMNLSDB"; String servertype = CMBBaseConstant.CMB_DSTYPE_FED; String userid = "icmadmin"; String password = "password"; String templateName= "InsuranceType";
224 Lotus Workplace Web Content Management and Content Manager Working Together // ------// Connect // ------CMBConnection conn = new CMBConnection(); conn.setServerName(servername); conn.setDsType(servertype); conn.setUserid(userid); conn.setPassword(password); conn.connect();
// ------// Get the Search Template from schema and configure it // ------CMBSchemaManagement schema = conn.getSchemaManagement(); CMBSearchTemplate searchTemplate = schema.getSearchTemplate(templateName); searchTemplate.setMaxResults(100); searchTemplate.setAsynchSearch(false);
// ------// Set search criterions from the post parameters // ------searchTemplate.setSearchCriterion("InsuranceName", CMBBaseConstant.CMB_OP_LIKE, InsuranceName); searchTemplate.setSearchCriterion("InsuranceDesc", CMBBaseConstant.CMB_OP_LIKE, InsuranceDesc); searchTemplate.setSearchCriterion("InsuranceGroup", CMBBaseConstant.CMB_OP_LIKE, InsuranceGroup); searchTemplate.setSearchCriterion("InsuranceNumber", CMBBaseConstant.CMB_OP_LIKE, InsuranceNumber);
// ------// Run the federated query // ------searchTemplate.runQuery();
// ------// Get the resultset and loop over it // ------CMBDataManagement dm = null; CMBSearchResults result = new CMBSearchResults(); result.setConnection(conn); result.newResults(searchTemplate.getResults());
%>
<% for (int i = 0; i < result.getCount(); i++) { %><% CMBItem item = result.getItem(i);Chapter 10. Search 225 // ------// Header Row // ------if (i == 0) { %>
<% for (int y = 0; y < item.getAttrNames().length; y++) { %> <%= item.getAttrName(y) %> | <% } %>
<% } dm = conn.getDataManagement(); dm.setDataObject(item); URL url = dm.getContent(0).getDataURL(); for (int y = 0; y < item.getAttrValues().length; y++) { %> <%= item.getAttrValue(y) %> | <% } %><% } %>
<%// ------// Disconnect // ------conn.disconnect(); %>
Creating the necessary LWWCM objects Once the JSP file is created, we need to create the necessary LWWCM objects to display the search options on the Web page and incorporate the created JSP file.
Creating a content template Create a new content template called NSE Template (FED Template). Use the component manager to add a new JSP component and call it NSESearch (FEDSearch). This template will later be used to create a new content object representing the page which will be shown when the NSE Search (FED Search) site area is opened.
Creating the search entry form This form represents the form to enter a new query. For NSE, it has only one input field named query. For the federated search, it has four input fields
226 Lotus Workplace Web Content Management and Content Manager Working Together representing the attributes defined in the corresponding Information Integrator for Content search template. When clicking the Submit button, the entered attribute/value pairs will be posted to /Intranet/Tools/NSE+Search (/Intranet/Tools/FED+Search) which is actually a call to the same site area and page again, since the search results will be shown right underneath the search entry fields.
For the NSE search entry form, create a new HTML component in the component library and name it HTML - NSE Form. Copy and paste the HTML code shown in Example 10-4 into the HTML component.
Example 10-4 HTML - NSE Form
/Intranet/Tools/NSE+Search> For the FED search entry form, create a new HTML component in the component library and name it HTML - FED Form. Copy and paste the HTML code as shown in Example 10-5 into the HTML component.
Example 10-5 HTML - FED Form
/Intranet/Tools/Federated+Search> Chapter 10. Search 227 Creating the page design Create a new page design from the existing menu layout. To do this, open the menu layout and click Save as. Call the new page design NSE Layout (FED Layout). In the appropriate section of the layout, first put the search entry form and then the JSP component onto the Web page.
Specifically, for NSE layout tags, add the following two lines:
For FED layout tags, add the following two lines:
Creating the content Create a new content object called NSE (FED). When creating the new content, use the NSE Template (FED Template) template created in “Creating a content template” on page 226 and place it under Intranet -> Tools -> NSE (FED).
Tip: If the site area Intranet -> Tools -> NSE (FED) is not yet created, move the content once it is created (“Creating the site area” on page 229).
On the Contents tab of the new content window, define the values for the JSP component (see Figure 10-8 for the federated search content): JSP Path: /jsp/NSESearch.jsp (/jsp/FEDSearch.jsp) Error Message: Error executing Search (or something similar)
Figure 10-8 The content object including the JSP component
228 Lotus Workplace Web Content Management and Content Manager Working Together On the Workflow tab, select Site Administrators Express Workflow as the workflow.
Creating the site area Create new site area under Intranet -> Tools called NSE Search (FED Search).
On the Properties tab, define the following (see Figure 10-9): Default Content: select NSE (FED). Content Template: select NSE Template (FED Template). Page Design: select NSE Layout (FED Layout).
Figure 10-9 Site area properties
Whenever this site area is opened, it will show the content called NSE (FED) in the context of the page design called NSE Layout (FED Layout). The result is that the search entry form and the JSP component are rendered into the page.
Testing Open your Web browser and enter the URL to the intranet home page: http://[SERVER]:[PORT]/[CONTEXT]/connect/intranet
On the right-hand side, open the tools drop-down box and select NSE. Now you can enter queries and click Execute NSE (Execute FED) to start executing searches. The result should look similar to the following screen shots (Figure 10-10 on page 230 for NSE and Figure 10-11 on page 230 for the federated search). The results are shown in a table as links. If you click the link, the attached Content Manager content will be opened.
As mentioned earlier, with some extra effort, you can combine the NSE search and the federated search into a seamless search interface for users. Users should not need to decide whether they need NSE or a federated search. You should design your search interface to be easy to understand and easy to
Chapter 10. Search 229 operate. What we show here is for demonstration purposes only. We do not recommend that you actually implement this with the exact same wording.
Figure 10-10 NSE and search result Web page
Figure 10-11 Federated search and search result Web page
230 Lotus Workplace Web Content Management and Content Manager Working Together 10.2.2 IFrame
If you already have a Web application that provides searching capabilities, you might be able to reuse this Web application using the iFrame technology within your Web page if the Web application complies with some basic rules.
Note: The iFrame element creates an in-line frame that contains another Web page.
The basic rules apply to all Web applications you want to display in iFrames and are not directly related to the search integration into LWWCM: The Web application needs to support iFrames in general. Links within the application should either open a new browser window or reference the URL to be opened relative to the current path. In other words, a link must be programmed in such a way that it does not lead to the parent window accidentally. The user credentials to access the back-end system must be accessible to a cross-browser session in order to prevent continous user/password requests. In the following example, we have taken the Content Manager eClient Web application as the source for the iFrame. Figure 10-12 on page 232 shows the resulting Web page. Restriction: Although we use eClient as an example Web application to be the source for the iFrame, the eClient Web application does not comply with the basic rules required to integrate with iFrame. The reasons why are as follows: Some buttons affect the parent window and therefore destroy your LWWCM Web page. In order to prevent this, select the Open in new window checkbox prior to performing a search (see Figure 10-12). The iFrame source URL taken requires the user to be successfully authenticated against the eClient Web application in the current session.
In order to achieve the integration of an external Web application in your LWWCM Web page, do the following: 1. Create a new HTML library component holding the following HTML:
Chapter 10. Search 231 2. Reference the new HTML library component in a page design of your choice using the following tag:
Figure 10-12 eClient integrated through an iFrame
10.2.3 LWWCM internal search The search module of LWWCM is limited to objects and keywords stored in the LWWCM environment only. It is independent from the data repository type you use to store your LWWCM objects. This means that no matter which repository type (file system, DB2, or Content Manager) you use, search results with identical queries will be the same. Security on the LWWCM object level is taken into account. A user will therefore only receive hits on content he or she is allowed to see.
Searching external content (for example, content in Content Manager) is not supported unless you include the external content into your Web page using the Federated Content Component. Only text content which is included on the Web page is incorporated in the search index. To make sure that all the attributes and the actual content of the federated content are searchable, you have to render them all directly onto your Web page using the Federated Content Component
232 Lotus Workplace Web Content Management and Content Manager Working Together tag or the Federated Content Library Component tag. Refer to 7.3, “Federated content component” on page 123 for more information on how to use these tags.
Restriction: Only content of MIME type text/* can be rendered into a page; therefore, content of other MIME types, such as Microsoft Word documents, cannot be searched using the LWWCM internal search engine.
To make all Content Manager objects of the item type InsuranceType searchable regarding the four attributes (Name, Description, Number and Group) and the attached Content Manager content of MIME type text/* searchable, you would have to add the tags given in Example 10-6 to your page design and create at least one LWWCM content page per insurance type, including a federated content component referencing it.
Example 10-6 Tags in page design to enable search on attributes and content Name:
Description:
Number:
Group:
Content:
The resulting Web page would be similar to Figure 10-12 on page 232. Queries on any word within this Web page would render this page in their result set. For example, if you omitted the tag which renders the content (Scope=”content”), only queries on any word included in the attributes would have this page in their result set.
Tip: LWWCM search settings such as hit index refresh, directory to store the search index in, or an ignore list can be configured in: [LWWCM_HOME]\config\aptrixsearch.properties
Chapter 10. Search 233 10.3 Other search approaches
There are other search approaches available. We discuss two of them briefly:
Portal search engine (PSE) Domino Extended Search (DES)
10.3.1 Portal search engine (PSE) The portal search engine (PSE) comes with the WebSphere Portal Server (WPS). It is a search application that crawls Web sites and returns a complete set of documents/pages or a subset based on filter criteria. Optionally, it can categorize and summarize the content and store the data according to a selected taxonomy, which is either user-defined or a pre-defined system taxonomy. Another option available with PSE is a simple workflow that provides document approval and metadata update features.
The created index is a full-text index. While indexing, PSE applies document filters of more than 250 document formats. The technology used is Stellent’s Outside In technology.
Restriction: Currently, the PSE can only search pages where anonymous access is granted.
Administration and actual use of the search functionality are implemented through a set of portlets.
Tip: For more information, go to the WebSphere Portal Info Center located at: http://publib.boulder.ibm.com/pvc/wp/502/ent/en/InfoCenter/index.html
The PSE can be set up to crawl a Web page based on LWWCM. In our insurance company example, the site to crawl would be: http://[SERVER]:[PORT]/[CONTEXT]/connect/intranet
The crawler will crawl the given URL and as many levels of subsites as defined. If your site contains a link to a content in Content Manager, the crawler will also fetch this linked document and incorporate the content in its full-text index if the file type is supported.
10.3.2 Domino Extended Search (DES) DES is not a search engine in and of itself. It does not create its own search index. It leverages other search engines and works as a broker on your behalf. It
234 Lotus Workplace Web Content Management and Content Manager Working Together returns aggregated and personalized results from multiple sources as a single, ranked list of items that matches your search criteria. It enables you to search structured and unstructured data through a single point of access and it honors the security models of the back-end systems.
The connections to the source search engines are done through links. Out of the box, the following links are provided: Notes databases Domino.Doc® Quickplace Domino R5 Domain Index Domino Full Text Index File System IBM DB2 Oracle Sybase MS SQL Server MS Index Server & Indexing Service LDAP Web search engines
DES has a set of comprehensive Java APIs which can be used to extend it with new links to additional search engines accessible through Java APIs. This feature could be used to develop a new Content Manager/Information Integrator for Content link using the federated search or NSE API.
The search front end to DES is Web-based and fully customizable to fit your needs. It could, therefore, be integrated into your LWWCM Web page without a major effort. There are also portlets available for WebSphere Portal which can be used out of the box.
Tip: For detailed information about DES, see the following Web pages: DES home page: http://www.lotus.com/products/des.nsf/wdocs/home WebSphere Portal and Lotus Workplace catalog: http://catalog.lotus.com/wps/portal/portalworkplace
Chapter 10. Search 235
236 Lotus Workplace Web Content Management and Content Manager Working Together
11
Chapter 11. Security
In this chapter, we describe how LWWCM and Content Manager security work, how they work together, and the access level in LWWCM.
We discuss how users have access to objects on the live Web site and how they have access to the objects within the LWWCM user interface.
We also describe the security background working with: Content Manager components Connect tag JSP component
© Copyright IBM Corp. 2004. All rights reserved. 237 11.1 LWWCM security
Users who need to have access to the LWWCM user interface must be defined in the Security & Workflow section of the LWWCM user interface. Users who browse the Web sites created from LWWCM do not need to access the LWWCM user interface. Users who only need to browse, not produce or manage the content published by LWWCM, do not need to be defined in the Security & Workflow section of the LWWCM user interface.
All objects created in LWWCM have a security setting. In the object definition window, click the Security tab to get to the setting panel. From this panel, you can define user or group access and access levels for the LWWCM object. There are different access levels which can be set to access LWWCM objects. Object security settings must be defined in the Security tab window of an object while the workflow security can be defined for workflow and stage objects.
11.1.1 Access levels and security sections Object security is set in the Security tab of the object definition window. There are four access levels you can set for an LWWCM object. Figure 11-1 shows the security panel for an LWWCM object, site.
Figure 11-1 LWWCM object security setting
238 Lotus Workplace Web Content Management and Content Manager Working Together Four access levels include:
Live This level allows users or groups to view the object in the Live Web site. If the object is defined in a workflow, then the object is on the live view state when it
is published. Read This level allows users or groups to: – View the object in the Live Web site. – View the object in the LWWCM user interface. Edit This level allows users or groups to: – View the object in the Live Web site. – View the object in the LWWCM user interface. – Edit the object in the LWWCM user interface. Delete This level allows users or groups to: – View the object in the Live Web site. – View the object in the LWWCM user interface. – Edit the object in LWWCM user interface. – Delete the object in the LWWCM user interface.
Tip: If you set users or groups Delete access level to an object, they automatically get Edit, Read and Live access rights to this object.
Workflow security is defined on the Properties tab window of the workflow stage objects. You can define different access levels: Live, Read, Edit, Delete , and, additionally, workflow-specific rights. Approve This level allows users or groups to: – View the object in the Live Web site. – View the object in the LWWCM user interface.
– Approve an object within a workflow. Figure 11-2 on page 240 shows sample workflow buttons. Users with proper approve rights can move objects from one workflow stage to the next.
Chapter 11. Security 239
Figure 11-2 Workflow buttons
When you create a new object, you automatically have all the access rights to the object (Live, Read, Edit, and Delete). If the new object has become part of a workflow, the security setting of the object is applied only to the first workflow stage. As the object goes through the subsequent workflow stages, the workflow security of the particular workflow stage will be added to the object security and dictate the security setting of the object.
On the security setting window of an object, the following security sections are available: Effective: Specify the effective security for the object. It is the result of the combined User-Defined or Workflow + System-Defined access levels. User-Defined or Workflow: If the object is not part of a workflow, user defined access can be set. If the object is part of a workflow, then the security tab of this object will show the workflow security setting and not the user-defined setting. The current workflow stage of the object within a workflow determines the access level for this object. System-Defined: Specify the access level set by the administrators. All members of the administrators group can edit and set the system defined security section.
11.1.2 Default users and groups Before you assign users and groups to different access levels within different security sections, you must define the users and groups in the Security &
240 Lotus Workplace Web Content Management and Content Manager Working Together Workflow -> Users & Groups section of the LWWCM user interface. During LWWCM installation, two default users and five default groups are created.
Default users The two default users created during LWWCM installation are: Administrator: This is the default administrator of the LWWCM user interface. The administrator is a member of the Administrators group and has access to every object of the LWWCM user interface. The default password is password. We recommend changing it immediately after the LWWCM installation. Anonymous: Anonymous users are used for public access to the LWWCM live Web sites. The anonymous users do not need a password. If only the Anonymous user has access to an object in the LWWCM user interface, then users who have already logged on will be unable to access the object. Because of this, we recommend that the Anonymous user: – Only be given Live access to objects. – Not be added to the user interface Access group. This prevents the Anonymous user loging into the LWWCM user interface.
Default groups Five default groups, defined during the LWWCM installation, enable their members different access levels to the LWWCM user interface and to live Web sites. The default groups are: Administrators: The members of this group have access to all elements in the LWWCM user interface including the LWWCM application files (the files that build the interface and begin with “AptrixUI”). By default, the user, Administrator, is a member of this group. UI Access Group: The members of this group have access to the LWWCM user interface. Users who create, design, or administer the Web site must be added to this group. Users who only need to access the live Web site, that is the published Web site, do not need to be added to this group. When a user create an object, the UI Access Group is automatically added to the System-Defined Read field by default. [ALL Users]: All users are members of this group including the Anonymous users. Version Creators: The members of this group have the ability to create versions for object and have access to the All Version and Version buttons (functions) in the user interface. Restorers: The members of this group can restore a version from the Version library. They have access to the Restore and Restore as draft buttons (functions) in the user interface.
Chapter 11. Security 241 11.1.3 How it works
In the previous sections, we introduced the four access levels (Live, Read, Edit, and Delete) of an object security, and the additional Approve access level in a workflow stage object. We cover the four security sections in the security setting
of an object (Effective, User-Defined or Workflow, and System-Defined). We describe two default users (Administrator and Anonymous) and five default groups (Administrators, UI Access Group, All Users, Version Creators, and Restorers) created during LWWCM installation. In this section, we tie all these security concepts together and go into detail as to how the LWWCM security works.
LWWCM security uses the following rules: A user needs, at a minimum, Live access level to the objects that the user needs to see on a live Web site. This includes all published content on the Web site. When an author wants to create a new content, the author needs to select a template, a site or site area where the content will be linked to and a workflow that the newly created content has to go through. The author must have access to these three objects (template, site or site area, workflow) in order to be able to select them. This means that the author needs, at a minimum, Read access level in the security setting (tab) of these three objects. When an object participates in a Workflow, then the security level depends on the workflow stage where the object is. In addition, the author of the object will be added to the workflow-defined access in the Delete access level for the first stage. When the object moves to the next stage, the security of the object will be pulled from the workflow security of that stage (which is defined in the Properties tab of that workflow stage object).
Note: If you define a default author in the Content Template tab of a template, then this default author will be added to the Delete access level in the object created using this template for the first workflow stage.
Here is an example.
The Administrator logs on and performs the following task: 1. Create three users: user1, user2, user99. 2. Create a group: group1 and add user99 to the group. The member of this group will be the author for new content. 3. Create two workflow stages: stage1 and stage2. In the Properties tab: – For stage1, under the Workflow Security setting, set the following: • Approve: group1
242 Lotus Workplace Web Content Management and Content Manager Working Together – For stage2, under the Workflow Security setting, set the following: • Read: User2 • Delete: Administrator • Approve: group1
Note: Do not confuse a workflow security setting that you define in the Properties tab of workflow stage with the security setting that you define in the Security tab of workflow stage. The workflow security in the Properties tab is for all objects that are part of a workflow and enter this stage. The Security tab is for security settings of the workflow stage object itself. It defines who can delete, edit, or read this object.
4. Create a workflow object: workflow4. In the Properties tab, enter stage1, stage2 in the Workflow Stages field. In the Security tab, add group1 to the Read field in the User-Defined security (so an author which is a member of group1 will be able to select this workflow when the author creates a new document). 5. Create a Page Design: pd1. 6. Create a Content Template: ct1. Add group1 to the Read field in the User-Defined security of ct1 (so the members of group1 can select this template when creating a new document). To demonstrate how the author will be added to the Workflow Security’s Delete access level in the first Stage of the workflow, we select user1 in the Authors field in the Content Template tab. See Figure 11-3 for the settings.
Figure 11-3 Default author for content created using this template
Chapter 11. Security 243 7. Create the site and site area (site1) and add group1 to the Read field in the User-Defined security (so the members of group1 will be able to select this site area when creating a new document). In the Properties tab, add the Page Design pd1 and Content Template ct1. See Figure 11-4 for the settings.
Figure 11-4 Add group1 so that the members of this group can see this site
Table 11-1summarizes the administrator’s setup.
Table 11-1 Example setup Object type Name Setting
User user1, user2, user99
User Group group1 Contains user99
Workflow Stage stage1 Workflow Security, Approve: group1
Workflow Stage stage2 Workflow Security, Approve: group1 Read: user2, Delete: administrator
Workflow workflow4 Contains stage2 and stage2
Page Design pd1 Content Template ct1 User-Defined, Read: group1, Author: user1
244 Lotus Workplace Web Content Management and Content Manager Working Together Object type Name Setting
Site Area site1 User-Defined, Read: group1 Page Design: pd1, Content Template: ct1
Once the administrator finishes the tasks, the user, user99, can log in and create new content. The user99 performs the following tasks: 1. Select Home -> Content Management -> Content Library and click New for a new content. 2. Select ct1 for a Content Template, then select a site area. 3. In the ID tab, enter a name for the document (content test 1). Note the author of this new content is user99 and user1 which inherits from the Content Template ct1. See Figure 11-5.
Figure 11-5 Authors field inherit from Content Template’s Author field
4. Create some content in the Content tab and profile in the Profile tab if necessary. 5. In the Workflow tab, select workflow4 as the workflow. 6. Save the object. 7. Go to the Security tab. See Figure 11-6 on page 246 for the following: – When the object is saved and goes to the first stage of the workflow, it inherits the security from the workflow security setting defined in the Properties tab of the workflow stage stage1. (Note the Approve always has Read access level.)
Chapter 11. Security 245 – The Authors are added to the Delete field: user99 and user 1 from the Content Template tab Author field of the Content Template ct1.
This is the author of the object.
This is the author defined in the Content Template ct1.
This group comes from the Workflow Stage, stage1.
Figure 11-6 Security is from the workflow stage and the author is added
8. Go to the Properties tab of the Workflow Stage, stage1. See Figure 11-7 on page 247.
246 Lotus Workplace Web Content Management and Content Manager Working Together
Figure 11-7 Workflow Security setting in stage1
9. Open the Document (content test 1) in read mode and move it to the next Workflow Stage (stage2) by clicking Next Stage. Note that the setting in the Security tab has changed to the setting defined in the Properties tab of the Actual Workflow Stage, stage2. See Figure 11-8 on page 248 for the Workflow security settings in the Properties tab of stage2 we defined during the creation of the Workflow Stage as the following: – Read: user 2 – Delete: Administrator – Approve: group1 If you take a look in the Security tab of the document, content test1 (also see Figure 11-8 on page 248), we see that the workflow security setting has changed. Once the document moves to stage2, it inherits the security setting in the Properties tab of stage2.
Chapter 11. Security 247
stage2 (workflow stage) security setting in the Properties tab
content test 1 (content) security setting in the Security tab
Note, after the content test 1 moves from stage1 to stage2, it inherits the workflow security settings from stage2.
Figure 11-8 Workflow security setting for content test 1 after moveing to stage2
11.2 Content Manager security
The Content Manager security is defined in the Content Manager Library Server using the Content Manager System Administrator Client. To set up the security, you have to: 1. Create a privilege. 2. Build a privilege group. 3. Defined a privilege set.
4. Generate an access control list. 5. Define the user and groups.
248 Lotus Workplace Web Content Management and Content Manager Working Together In this section, we briefly introduce some of the concepts involved. To learn more about Content Manager security, refer to Content Manager Implementation and Migration Cookbook, SG24-7051.
11.2.1 Authorization Privileges, privilege sets and access control lists are used to authorize a user or a group to have certain access rights, such as write, read, delete, and search, in Content Manager: Privilege: Permission to perform an action on an object or item. There are system-defined privileges and user-defined privileges. An example of system-defined privileges is ItemDelete, which allows a user or a group to delete an item. Privilege group: Represents a group of privileges that facilitates the creation of a privilege set. Privilege set: Defines the different privileges that you can give to users or include in an Access Control List (ACL). Users cannot have privileges directly. They can have privilege sets which represent the maximum access that they can have. ACL: Represents a list consisting of one or more users or groups and their associated privilege sets. You set ACL for the data objects such as item types, work nodes, processes and worklists. Work nodes, processes, and work lists are used in the document routing process.
For example, you can prevent a user accessing a specific document routing process by giving this process an ACL that contains the user’s name associated with a privilege set of NoPrivs which forbids the user to access the process.
11.2.2 Authentication Users and groups are used to authenticate a user to the Content Manager system: User: You define a user to the system and assign a privilege set. You can also use LDAP to import users to the Content Manager system. Group: A user can belong to one or to many groups. Groups are used to conveniently organize users. After assigning a group to a privilege set, any change in the members of the group does not affect the associated prvivilege set. ICMPUBLIC is a special group which contains all users. This group can be enabled using the Library Server configuration panel.
Chapter 11. Security 249 11.2.3 How it works
When a user tries to perform an action (such as search and retrieve) on an item, the Library Server uses the following precedence rules to check that the user has the right to perform that particular action on the item:
1. ItemSuperAccess: If the user has ItemSuperAccess privilege, the Library Server bypasses the ACL authorization and enables the user to continue. 2. ICMPUBLIC group: If ICMPUBLIC group is enabled in the Library Server configuration and the ACL of the item contains this group, then the Library Server checks if the privilege set assigned to ICMPUBLIC allows this particular action. If so, permission is granted, and the user can continue. 3. User: If the ICMPUBLIC is not contained in the ACL, the Library Server checks to see if the user is in the ACL. If so, the Library Server checks to see if the privilege sets assigned to the user allow this particular action. If so, it grants the access. 4. Group: If the user is in a group and this group is in the ACL, the Library Server checks to see if the privilege sets assigned to the user allow this privilege. If so, it grants the action and the user can continue. 5. If none of the above applies, the user cannot perform the specific action on this item.
Figure 11-9 on page 251 provides the flow chart for this decision-making process.
250 Lotus Workplace Web Content Management and Content Manager Working Together
Dose the user Grant have Request ItemSuperAcces?
No
Dose the ACL Yes Dose the Privilege Yes contail the Set assigned to Grant ICMPUBLIC ICMPUBLIC allow Request Group? the Privilege?
No Deny No Request
Dose the Privilege Dose the ACL Yes Yes Set assigned to Grant specifically list the the user allow the Request user? Privilege?
No Deny No Request
Dose the Privilege Yes No Dose the ACL list Yes Set assigned to Deny Grant a group that the user allow the Request Request contain the user? Privilege? No Deny Request
Figure 11-9 ACL security process flow chart
11.3 How security types work together
In the following section, we describe the security control for an integrated LWWCM and Content Manager solution and how it works.
11.3.1 Security in general When a user logs in to an LWWCM user interface, the user must be defined in the LWWCM user interface with a valid user name and password. When a user creates an object, assuming LWWCM uses Content Manager as the back-end content repository, then LWWCM uses access information defined in the aptrixjpe.properties file to access Content Manager. The user does not need to know where and how the data is stored nor does the user need any special access to the Content Manager.
Chapter 11. Security 251 In the aptrixjpe.properties file, the Content Manager server name, user name, and password are set as follows:
# CM persistency settings # CM Server information cm.server=ICMNLSDB cm.username=icmadmin cm.password=password # Unique identifier for the site cm.jpeServerIdentifier=demo2
For more information on how to set this configuration, see 6.1.3, “Modifying LWWCM’s aptrixjpe.properties file” on page 94. This access information will be used by LWWCM to access Content Manager Library Server. If the information is not set, then the user needs to have the right access level to the Content Manager system.
11.3.2 Security with connect tags Connect tags use a different security setting. You have to define the Content Manager server name, user name, and password in the connect tag. This enables you to access different Content Manager systems using different connect tags. The Content Manager server must also be defined in the cmbicmsrvs.ini file on the host where LWWCM and WebSphere Application Server run.
An example of the connect tag setting is as follows:
For more information see 7.4.3, “Putting it all together” on page 148
11.3.3 Security with federated content component The federated content component is used to store a reference to the Content Manager document that you use in LWWCM Web pages to show the document or attributes. When using the federated content component, the security information used to access Content Manager will be taken as the following: The Content Manager server has to be defined in the connect.cfg file in the LWWCM directory. See the following as an example:
252 Lotus Workplace Web Content Management and Content Manager Working Together The user name and password used to access Content Manager is taken in the following order: a. If the user name and password are defined in the federated content component (see Figure 11-10), they override authentication information defined in the connect.cfg tag.
Figure 11-10 Federated content component setting has the first priority
b. If the user name and password are not specified in the federated content component object, they will be taken from the connector section of the connect.cfg file. c. If the user name and password are not defined in the connect.cfg file, then the user name and password of the currently logged-on user viewing the site will be used.
For more information, refer to 7.3, “Federated content component” on page 123.
11.3.4 Security with the JSP component Using JSP components, you can access Content Manager data using Content Manager and Information Integrator for Content Java APIs. In the JSP component, you define the JSP path where the JSP file is located. The security information needed to access Content Manager data is defined in the JSP file. The following is an example of a JSP file accessing a Content Manager system:
Chapter 11. Security 253 // ------// Setup the CM Connection // ------String servername = "ICMNLSDB"; String servertype = CMBBaseConstant.CMB_DSTYPE_ICM; String userid = "icmadmin"; String password = "password"; String query = "/InsuranceType[@VERSIONID = latest-version(.)]";
CMBConnection conn = new CMBConnection(); conn.setServerName(servername); conn.setDsType(servertype); conn.setUserid(userid); conn.setPassword(password); conn.connect();
For more information, refer to 7.5, “JSP component” on page 151.
254 Lotus Workplace Web Content Management and Content Manager Working Together
12
Chapter 12. VideoCharger integration
In this chapter, we describe how you can integrate IBM DB2 Content Manager VideoCharger (VideoCharger) to the LWWCM Web site.
Specifically, we address the following topics: VideoCharger and how it works Integration of VideoCharger and Content Manager Integrating videos stored in Content Manager to the LWWCM Web site
© Copyright IBM Corp. 2004. All rights reserved. 255 12.1 VideoCharger and how it works
IBM DB2 Content Manager VideoCharger (VideoCharger) is a server designed to handle large streaming video files. VideoCharger can deliver video and audio files in real time (this is known as streaming) to clients over a network. Video (audio) streaming enables client users to watch videos without having to wait for the entire media file to be downloaded. Media files can have a size of 100 MB and more. VideoCharger can also manage the storage of large media files. For the media formats that VideoCharger version 8 server supports, see 2.2.6, “IBM VideoCharger (bundled with Content Manager)” on page 20.
The IBM DB2 Content Manager VideoCharger player (VideoCharger player) can be used from a Web browser as a client to play video(s) that is streamed from a VideoCharger server. The VideoCharger server first will send a metadata file to the client and then stream the video or general media object to the player.
In our case study, we install the VideoCharger server and player, version 8.2. When you install the VideoCharger and VideoCharger player, as shown in Figure 12-1 on page 257, be aware of the following installation requirements: First install the License Use Management (LUM) software. This is necessary because it is used to manage the amount of concurrent streams delivered by a VideoCharger server. If it is not installed, you will get error ICM9799, as shown in Figure 12-8 on page 264, when you try to import any video from the Content Manager Windows Client. Before installing the VideoCharger player, be sure to close all Web browser windows; otherwise, the VideoCharger Web browser plug-in cannot be installed on your default browser window properly. For a VideoCharger V8.2 AIX installation, the prerequisite for AIX is V5.1 or higher. Refer to the VideoCharger manual for details on how to configure the IBM HTTP Server for use with the VideoCharger.
256 Lotus Workplace Web Content Management and Content Manager Working Together
Figure 12-1 VideoCharger installation
After the installation, also consult the VideoCharger online documentation. Make the following changes: 1. Open a Web browser and go to http://localhost/vs_admin/ (see Figure 12-2 on page 258). 2. Recalibrate all network interfaces. 3. Change the network threshold to 80%. 4. Select Update.
This setup enables the VideoCharger server to use up to 80% of the network bandwidth to stream the videos to the used client. You may change it to another threshold value to fit your business environment.
Chapter 12. VideoCharger integration 257
Figure 12-2 VideoCharger configuration and administration
After installation, you should also test to see if your VideoCharger is up and running: 1. On the VideoCharger page (see Figure 12-2), select Content Management. 2. Add the sample15.mpg video from your VideoCharger installation directory. In our setup, it is: C:\IBM\IBMVideoCharger Server\data\public\samples\content 3. On the Content Management advanced, Add Local Asset Files page, load it. 4. Run the video. 5. Open a Web browser and go to http://localhost/lantv/. 6. From the VideoCharger page, select List Available Assets, as shown in Figure 12-3 on page 259.
7. Select the video from the result list. In our example, we name it IBMVideo. 8. The VideoCharger player should be automatically launched to play the selected video.
258 Lotus Workplace Web Content Management and Content Manager Working Together
Figure 12-3 View and run the sample IBM video
If your selected video is not playing, troubleshoot your installation before you continue.
12.2 Integration of VideoCharger and Content Manager
VideoCharger has limitations on its indexing and searching capabilities. Because it integrates into Content Manager and is a component (a Resource Manager) of the overall Content Manager system (starting with V8), VideoCharger leverages the capabilities of Content Manager so that collectively, the overall system can handle the storage, archival, access control and delivery of videos. Applications such as the Content Manager Windows Client or a LWWCM integrated Web site can search for video titles, descriptions, or other metadata, and play the videos by launching the VideoCharger player from the Content Manager Windows Client or the Web browser. In addition, other video players can be configured to play the streamed videos so the client can open the appropriate video player and initiate a streaming session with the VideoCharger server.
One or more VideoCharger servers can be configured to one or more Content Manager Resource Managers. In this section, we describe in detail the steps to
integrate the VideoCharger with our Content Manager system. The integration of the VideoCharger as a Content Manager Resource Manager allows you to stream media objects that are managed by Content Manager. In later sections, we will import some sample videos with the Content Manager Windows Client,
Chapter 12. VideoCharger integration 259 search for and play them to test the integration setup with the Content Manager Windows Client application as the prerequisite for the LWWCM Web publishing process integration.
12.2.1 Configuring a Resource Manager storage managed system To integrate a VideoCharger with Content Manager, we must configure the Resource Manager storage managed system (SMS) and define a new collection to be used by the VideoCharger server. Figure 12-4 shows the SMS configuration for VideoCharger. An object storage volume is used. The VideoCharger volume represents a VideoCharger server asset group.
.
Collection VCCOLLECTION
Migration Policy Storage Group VCMIGRATION VCGROUP
Storage Class Storage System VCCLASS VCVOLUME
Device Manager ICMVCDM
Figure 12-4 VideoCharger storage managed system configuration
We configure the SMS for VideoCharger with the Content Manager System Administration Client as follows: 1. Expand the Resource Manager from the defined Resource Manager systems. In our scenario, we choose to use our local Resource Manager system (RMDB). 2. Define a new media manager server by right-clicking Server Definition and selecting New from the context menu. In our scenario, we name the server definition VCSERVER (see Figure 12-5 on page 261).
260 Lotus Workplace Web Content Management and Content Manager Working Together 3. Enable the VideoCharger device manager named ICMVCDM.
4. Define a new storage class, VCCLASS. 5. Define a new storage group, VCGROUP. 6. Expand the Storage Systems folder and define a new VideoCharger Volume VCVOLUME (see Figure 12-5). 7. Define a new migration policy name, VCMIGRATION. Select forever as the retention period. 8. Define a new collection, VCCOLLECTION (see Figure 12-5).
Figure 12-5 Set up VideoCharger SMS configuration
12.2.2 Creating a video insurance item type Once we set up SMS configuraiton for VideoCharger, we need to create an insurance video item type which will use the collection VCCOLLECTION storage system: 1. Open Content Manager System Administration Client.
Chapter 12. VideoCharger integration 261 2. Open the data modeling folder. Right-click Item Types and select New from the context menu.
3. On the Definition tab, name your new document item type. In our scenario, we name it InsuranceVideo.
4. On the Attribute tab, add the attributes as shown in Figure 12-6. This metadata (attributes) associated with the VideoCharger assets is stored in the Library Server database ICMNLSDB.
Figure 12-6 Selected attributes for the InsuranceVideo Item type
5. On the Document Management tab, add the ICMBASESTREAM part type, and choose the PulblicReadACL access control list and the collection VCCOLLECTION as previously defined in the RMDB Resource Manager database. For the insurance video document item type, we use the predefined ICMBASESTREAM part type to handle the storing of video assets.
12.2.3 Importing, searching for and playing videos Before integrating videos in your integrated LWWCM Web site, we need to test the Content Manager video system integration. This can be done by importing
262 Lotus Workplace Web Content Management and Content Manager Working Together some videos with the Content Manager Windows Client (see Figure 12-7). When we import a video, the insurance video attributes will be stored on the Library Server, ICMNLSDB, whereby the video file will be stored in the Resource Manager VideoCharger server. Depending on the size of the video you import, the used hardware and the network, the time it takes to load the video will vary. In our scenario, we set up on a Windows machine with 1.6 MB memory, and it takes 20 seconds to load the 8.5 MB sample15.mpg video file.
Figure 12-7 Importing some videos from Content Manager Windows Client
The media object loads onto the VCSERVER with an asset name of Lx.ABC.Vy where x represents the Library Server number, ABC represents a 26-character asset name, and y represents the version control number.
Note: If you have not installed the IBM License Use management software, you will receive an error when trying to import any video (see Figure 12-8).
Chapter 12. VideoCharger integration 263
Figure 12-8 Error while importing a video if IBM LUM is not installed
Once the sample files are imported, we execute a basic search against the InsuranceVideo item type from the Content Manager Windows Client. Figure 12-9 shows the search results in our example.
.
Figure 12-9 Running a basic search against the InsuranceVideo item type
Before playing a video from the search result, Content Manager Windows Client must be configured to launch the appropriate VideoCharger player. For MPG files, as in our example, the configuration is done as follows: 1. Select Options -> Preferences -> Helper Applications. 2. Select the file type MPEG Video and enter the extension MPG. 3. Select the Launch Application check box. 4. In the Launch Application entry field, specify the location of the VideoCharger player in your setup. In our example, it is: C:\program files\ibm\IBM VideoCharger Player\iscview.exe 5. Click OK to save the changes (see Figure 12-10 on page 265).
264 Lotus Workplace Web Content Management and Content Manager Working Together
Figure 12-10 Launching the VideoCharger player application
Now that the helper application is configured, you can open or double-click an insurance item object from the basic search result. The VideoCharger player will be launched, and the video file will begin to be streamed from the VideoCharger server to the player. Figure 12-11 on page 266 shows the VideoCharger player playing the selected video.
Chapter 12. VideoCharger integration 265
Figure 12-11 Open an InsuranceVideo item to play the video
The following steps describe what exactly happens when we request item objects from the InsuranceVideo item type: 1. The Content Manager Windows Client requests a media object from the Content Manager Library Server, ICMNLSDB. 2. The Library Server returns a security token and information where the video is stored on the icmrm Resource Manager to the Content Manager Windows Client. 3. The client requests the sample15.mpg video media object from the Resource Manager. 4. The Resource Manager requests the video from our VideoCharger server, VCSERVER. 5. The VideoCharger server sends a temporary metadata file to the client, containing system instructions on streaming the media object. 6. The VideoCharger player is launched and the streaming session is initiated. 7. The video is streamed from the server to the player.
266 Lotus Workplace Web Content Management and Content Manager Working Together 12.3 Integrating Content Manager videos to a Web site
In this section, we show you how to integrate Content Manager videos to your
integrated LWWCM Web site.
12.3.1 Why integrate Content Manager videos to a Web site? Sometimes it can be necessary or interesting to show video in your Web site, particularly demonstration videos. For example, referring to our case study discussed in Chapter 4, “Case study” on page 41, it could be necessary for the insurance company to include some video showing how important it is to have insurance protecting you if/ when you have an accident.
There are many other examples of reasons to integrate video in your Web site: Broadcast a CEO’s speech about the future directions and strategies of the company, through the intranet to the company’s employees who are located all around the world. For educational purposes, stream video classes over a secure Internet. Launch an advertising campaign with new videos about the product on the Internet. Replay sports games or TV programs.
How do you integrate Content Manager videos to your Web site? We show you the steps by demonstrating using our case study.
12.3.2 Prerequisites VideoCharger must be properly installed as explained in 12.2, “Integration of VideoCharger and Content Manager” on page 259. We also need some additional configuration from Information Integrator for Content in order to achieve the integration of Content Manager video with the LWWCM Web site.
Note: Remember to restart the LWWCM server after installing VideoCharger.
Since videos are stored directly in the Content Manager repository, we have to create a new federated entity and a new search template, whereby LWWCM can find and retrieve the videos. Use the same steps described in “What we need from Information Integrator for Content” on page 125 to map the VideoCharger item type attributes created earlier (see Figure 12-6 on page 262) with the federated attributes.
Chapter 12. VideoCharger integration 267 The new search template will be used to search and retrieve the videos from Content Manager to LWWCM.
12.3.3 Creating video components in LWWCM
The video files are stored within Content Manager and are associated with a specific item type (in our case study, the item type is InsuranceVideo). We can retrieve them in the same way we do any other types of content, as explained in Chapter 7, “Publishing Content Manager content” on page 115. To achieve this, we have three options: using federated content components, using JSP components or using connect tags.
For demonstration purposes, we show you how to integrate video files using the first option, federated content components.
We need to create a new federated content component (VC_Component) in LWWCM to retrieve the stored video files from Content Manager (VideoCharger). Follow the steps detailed in 7.3, “Federated content component” on page 123 to create the new federated content component for video purposes.
Figure 12-12 shows the video component, VC_Component, which is really a federated content component, which we created in LWWCM.
Figure 12-12 Federated content component for video search
268 Lotus Workplace Web Content Management and Content Manager Working Together 12.3.4 Incorporating video within a Web page
To integrate the videos within a LWWCM Web page, we must go to the content page where we want to display videos and add the newly created federated component in the Content tab. In our case study, we called this federated content
component within the content object VC_Component. We need to include this name in the proper tag parameters to retrieve the video file.
There are two main ways to integrate videos within a Web page: Embedded videos: Show the video embedded in the content of the Web page. Video links: Provide a link to the video URL, which the user can click to display the video.
Important: The Scope parameter within the tag must be contentURL.
Embedded videos To show how a video is embedded within a Web page, we provide sample code in Example 12-1. This code must be included in the page design object which is associated with the target Web page. Remember that the association between Web pages and page design objects is determined in the proper site area entry, in the site framework.
Example 12-1 How to embed a video within a Web page
Video links Sometimes, it might be necessary to supply a list of video links or perhaps just a single link to a specific video instead of displaying the video directly within a Web page. In this case, we can choose to display a link with the video file URL, and users can click the link to display the video. Again, we have to modify the proper page design object to determine how to display this information in the Web browser. We provide sample code in Example 12-2.
Example 12-2 How to show only the video link Video file: Click here for the video file
Chapter 12. VideoCharger integration 269 The easiest way to show a list of video links is to use the connect tags or JSP components, since the federated content component only references one video file. For further information on how to show lists of external resources, refer to 7.5, “JSP component” on page 151.
Note: The application which plays the video within your Web page is the one associated with the MIME type in the browser configuration. By default, in Windows operating systems, this application is the Windows Media player.
Embedding video using the federated content component is a matter of creating the proper federated content component and referencing it in the page design using the proper tag and attributes. There is actually no difference with embedding other content using the federated content component, except the way the retrieved URL is used in the HTML -> EMBED tags. If the video does not appear on the screen, it is probably a matter of having the proper video player plugin installed or a wrong MIME type reference.
270 Lotus Workplace Web Content Management and Content Manager Working Together
13
Chapter 13. Data migration through syndication
This chapter discusses the different alternatives for LWWCM data migration. Since the way to achieve this is through the syndication tool that LWWCM provides, we also describe the syndication features.
We cover the following topics in this chapter: Syndication overview Migrating content repositories Upgrading LWWCM V1.1 content to LWWCM V2.0
© Copyright IBM Corp. 2004. All rights reserved. 271 13.1 Syndication overview
Syndication is a way of replicating (copying) data from one server to another, thus making the content available across many Web sites over many servers. LWWCM uses syndication to push or pull content from different environments to replicate data from one server to another. The back-end repository for the servers do not have to be same. This means that it is possible to replicate a Web site’s data that uses file system as the back-end repository to a Web site that uses Content Manager as the back-end repository.
Normally, a company’s Web sites use several servers to set up data. You have development, staging, and production servers. These servers may need to share data among themselves. Syndication is the tool to make this possible.
Syndication provides two different objects, the syndicator and the subscriber.
Note: The syndicator object is the source site where the data is coming from. The subscriber object is on the destination site where the data is going to.
13.1.1 Setting up the syndication tool The syndicator and the subscriber are related. Their relationships may be in both ways, one-way and two-way transportation. One-way transportation is the most common approach. To achieve this, a syndicator object must be created in the source server and a subscriber object in the destination server. To make the two-way transportation possible, a syndicator and subscriber’s relationship must be created on both servers.
To enable the syndication on the servers, you must first set some parameters in the aptrixjpe.properties file. Refer to the LWWCM’s online Information Center to get the detailed information (Installation Guide -> Syndication -> Enabling Syndication).
Example 13-1 shows a sample of configuration for our environment.
Example 13-1 Sample configuration in aptrixjpe.properties # deployment settings deployment.itemDispatcherUrl=http://90.30.40.219:9080/itjumpstart/connect/?MOD= ItemDispatcher deployment.syndicatorUrl=http://90.30.40.219:9080/itjumpstart/connect/?MOD=Synd
deployment.subscriberUrl=http://90.30.40.219:9080/itjumpstart/connect/?MOD=Subs
272 Lotus Workplace Web Content Management and Content Manager Working Together Creating the syndicator To create a syndicator: 1. Open the LWWCM user interface. 2. Select Syndication & Deployment -> Syndicator from the left navigator. 3. Click New. 4. Enter appropriate values for the ID and Syndicator section. 5. Click Save.
Creating the subscriber To create a subscriber: 1. Open the LWWCM user interface. 2. Select Syndication & Deployment -> Subscriber from the left navigator. 3. Click New. 4. Enter appropriate values for the ID and Subscriber section. 5. Click Save.
Once we have created the syndicator and the subscriber, we must relate both objects to perform syndication.
Important: The syndicator object must always be saved before the subscriber object.
To establish the relationship between the syndicator and the subscriber, you need to set the information on the second tab of each object. In the syndicator object, in the Syndicator tab, the information about the subscriber is required. On the other hand, in the subscriber object, in the Subscriber tab, the information about the syndicator is required.
The following are the syndicator and subscriber mandatory fields required to set up the syndication: In the syndicator form: – Syndicator ID and Syndicator URL: These fields are automatically computed by the system. You need to copy and paste them into the relevant fields in the subscriber object. – Subscriber Name: Name to describe the subscriber. Copy it from the subscriber form and paste it here. – Subscriber ID and Subscriber URL: Copy the subscriber ID and the
subscriber URL from the subscriber form and paste them here. – Item Gatherer: This item has two options: • All Items: Gathers a collection of all deployable items.
Chapter 13. Data migration through syndication 273 • All Live Items: Gathers a collection of all deployable items that either do not have a workflow or do have a workflow and are published.
In the the subscriber form: – Subscriber ID and Subscriber URL: These fields are automatically
computed by the system. You need to copy and paste them into the relevant fields in the syndicator object. – Syndicator Name: Name to describe the syndicator. – Syndicator ID and Syndicator URL: Copy the syndicator ID and the syndicator URL from the syndicator form and paste them here. – Current State: Displays the current state's reference. If syndication is working, both the syndicator and subscriber should have the same current state.
In Figure 13-1, we put both the syndicator form and subscriber form together and show how this information is filled in to set the syndication process.
Figure 13-1 Crossed information between Syndicator and Subscriber
Once the information given above is set up, we can continue with the syndication process.
The last step is to activate the syndication. This is possible by entering the subscriber object and clicking the Subscriber Rebuild button: 1. Open the LWWCM user interface. 2. Select Syndication & Deployment -> Subscriber. 3. Double-click the subscriber object.
274 Lotus Workplace Web Content Management and Content Manager Working Together 4. Click Subscriber Rebuild.
After a few minutes, the data will be gathered to the subscriber LWWCM application.
For more information about syndication, refer to the LWWCM’s online Information Center.
13.1.2 Using unique Content Manager repository Now that we have described how syndication works, we will study the different types of data repositories for syndication.
We have the possibility of storing data from two different LWWCM applications into the same Content Manager repository. To accomplish this configuration, we must ensure that the aptrixjpe.properties files are properly set up in both LWWCM servers pointing to the same Content Manager as the data repository as shown in Example 13-2.
Example 13-2 aptrixjpe.properties configuration sample manager.persistence=CM resource.persistence=CM cm.server=[CM_SERVER_NAME] cm.username=[CM_USERNAME] cm.password=[CM_PASSWORD] cm.jpeserverIdentifier=[CM_ILWWCM_SERVER_ID]
In this case, because we use more than one LWWCM application server with a single Content Manager server, each LWWCM application server must have a unique server ID (see text in bold in the example).
Once the aptrixjpe.properties file is set up, you need to do the following to enable syndication: 1. Create a new syndicator on server 1. 2. Create a new subscriber on server 2. 3. Syndicate. Click Subscriber Rebuild in the subscriber object in server 2.
After the syndication, the data in the syndicator server and in the subscriber server will be synchronized. Their data will be stored in Content Manager with different server ID identifying the source of the data. See Figure 13-2 on page 276 as an example.
Chapter 13. Data migration through syndication 275
Figure 13-2 Content Manager AJPEData table
The example shows LWWCM data coming from three different LWWCM servers, 1, demo2, and demo3.
This does not mean that they always have to depend on the syndicators. After all sites are replicated, you can always uncheck the Enabled field to disable any future replication transactions. See Figure 13-3 for details.
Figure 13-3 Subscriber enable option
In Figure 13-4 on page 277, we show the architecture of using one Content Manager as repository for two LWWCM servers that are syndicator and subscriber.
276 Lotus Workplace Web Content Management and Content Manager Working Together
Syndicator Subscriber server 1 server 2
Syndication
Data storage
CM
Name JPE Server ID SampleA 1 SampleA 2 SampleB 1 SampleB 2
Figure 13-4 Syndication using the one Content Manager repository
Note that, in the beginning, the data in server1 and server2 is stored in Content Manager as separate content. It is the same in the begining; this implies duplicate data in Content Manager. With this configuration, however, you have the flexibility of disabling the syndication later and making each site unique.
13.1.3 Using different repositories Syndication can be used not only to transport data between servers, but also between different types of repositories.
In this case, for example, we can have syndication between a server using the file system as the data repository with another server using Content Manager as repository. The goal for this type syndication is to migrate all the site information from the file system to Content Manager.
In this example, we assume:
Both applications are running Server 1 is the host of the data using file system as data repository Server 2 is the receiver using Content Manager as data repository.
Chapter 13. Data migration through syndication 277 With this scenario, we do not have to change anything in the aptrixjpe.properties files. The required steps for this syndication of different repository is exactly same as the steps described earlier:
1. Create a new syndicator object on server 1. 2. Create a new subscriber object on server 2. 3. Syndicate by clicking Subscriber Rebuild from the subscriber object.
After syndication, the data will appear identical in both servers but in different repositories. The original data from server 1 remains untouched in the file system. A copy of this data in the Content Manager repository accessible by server 2.
Note: Rebuild sends all of the items while update only send the items that have changed since the last syndication over to the subscriber.
Figure 13-5 describes this scenario.
Syndicator Subscriber server 1 server 2
Syndication
Data storage
File System CM
Figure 13-5 Syndication using two different repositories
13.2 Migrating content repositories
After you change the persistency setting in the aptrixjpe.properties file, the next time you start up the LWWCM server, the LWWCM server will try to find its data in the new repository. Changing the persistency settings only does not move the
278 Lotus Workplace Web Content Management and Content Manager Working Together data to the new repository. In order to move the data from one repository to another, you have to create a temporary LWWCM server and syndicate the data to this temporary server. After this, you configure the original server to point to the new repository and the temporary server can be deleted. Figure 13-6 illustrates this data migration approach using the file system to Content Manager as an example.
Original Temporar y Original 1 LWWCM LWWCM server Syndication server
Repository Repository: Repository: Filesystem File system Content Manager jpeServerIdentifier=1
3 Change configuration Delete temporary LWWCM server 2 Leaving data intact in Content Manager
OriginalOriginal LWWCM server Content Repository Repository: ContentFilesystem Manager Manager jpeServerIdentifier=1
Figure 13-6 Migration approach
In this section, we discuss the necessary steps to accomplish a successful data migration from an existing LWWCM file system repository to a repository of type Content Manager. This is all done on one box using one application server (server1); hence the original and temporary LWWCM servers are accessible on the same port (here:9080) but in a different context: Original server: http://demo99/ilwwcm/connect/intranet Temporary server: http://demo99/ilwwcm_temp/connect/intranet
Of course, you can use different machines or different application servers on the same machine to achieve the migration task. Using these steps enables you to seamlessly migrate the content repositories without having users changing their normal ways of accessing the LWWCM Web site.
Chapter 13. Data migration through syndication 279 The steps are summarized as follows:
1. Clean up your original system. 2. Back up your existing data. 3. Create a temporary LWWCM server using CM persistence (Step 1 in Figure 13-6 on page 279). 4. Syndicate the temporary LWWCM server (Step 1 in Figure 13-6 on page 279). This is done so that the temporary LWWCM server now has all the data (stored in Content Manager) from the original LWWCM server. 5. Configure the original server to use Content Manager repository (Step 2 in Figure 13-6 on page 279). This sets the original LWWCM server to user Content Manager as data repository instead of the file system. Note that, at this point, Content Manager contains all the data that the original server has. 6. Delete the temporary LWWCM enterprise application (Step 3 in Figure 13-6 on page 279).
Clean up your original system Make sure that your original system is consistent to prevent syndication problems. Run the following checker tasks from your Web browser: http://[HOST]:[PORT]/[CONTEXT]/connect?mod=ajpeuserchecker&create=true http://[HOST]:[PORT]/[CONTEXT]/connect?mod=ajpereferencechecker&fix=true http://[HOST]:[PORT]/[CONTEXT]/connect?mod=ajperesourcechecker&fix=true http://[HOST]:[PORT]/[CONTEXT]/connect?mod=ajpesitechecker&fix=true
Back up your existing data If you are using the file system as your current repository type, back up the following folders: \ilwwcm\data \connect\users
is the directory where you installed LWWCM.
Create a temporary LWWCM server using CM persistence You can create a dedicated application server or use the same application server for the temporary LWWCM enterprise application. In our scenario, we use the same application server (server1) for both the original and the temporary LWWCM application. Our temporary application is called ilwwcm_1_war.
Table 13-1 on page 281 shows the assumptions made for this scenario.
280 Lotus Workplace Web Content Management and Content Manager Working Together Table 13-1 Variable and path assumptions
Variable Value
\ilwwcm_te OME> mp_war.ear\ilwwcm.war
c:\ibm\WebSphere\AppServer
The following list briefly describes the steps to set up a new LWWCM server using Content Manager as the repository (for detailed information, refer to Chapter 6, “Using CM as a repository for LWWCM” on page 91): 1. Increase the heap size of server1: a. Open the WebSphere Administrative Console. b. Goto Application Servers -> server1 -> Process Definition -> Java Virtual Machine. c. Specify Initial Heap Size: 256 d. Specify Maximum Heap Size: 512 2. Extend the classpath of server1 with the Information Integrator for Content JAR files. Install Information Integrator for Content (EIP) Development Workstation on the machine where LWWCM is running: a. Open the WebSphere Application Server Administrative Console. b. Goto Application Servers -> server1 -> Process Definition -> Java Virtual Machine. As a minimum, install the local connectors Content Manager V8 (ICM connector) and federated subcomponent (FED connector) on the machine where LWWCM is running. This installation installs all JAR files we specify in step 3 below. It is also useful to install the Connector Toolkits and Samples Content Manager V8 and Federated subcomponents, although they are not required for the following steps. 3. Add the following directory, JAR, and ZIP files with their path to the Classpath (the path may differ from that of your installation): C:/IBM/CMgmt C:/CMBROOT/LIB/cmbview81.jar C:/CMBROOT/LIB/cmb81.jar C:/CMBROOT/LIB/cmbcm81.jar C:/CMBROOT/LIB/cmbjdbc81.jar C:/CMBROOT/LIB/cmbfed81.jar C:/CMBROOT/LIB/cmbdb281.jar C:/CMBROOT/LIB/cmbdj81.jar
Chapter 13. Data migration through syndication 281 C:/CMBROOT/LIB/cmbicm81.jar C:/CMBROOT/LIB/cmbutil81.jar C:/CMBROOT/LIB/cmbutiljdbc81.jar C:/CMBROOT/LIB/cmbutilicm81.jar C:/CMBROOT/LIB/cmbutilfed81.jar C:/CMBROOT/LIB/xerces.jar C:/CMBROOT/LIB/essrv.jar C:/CMBROOT/LIB/esclisrv.jar C:/CMBROOT/LIB/cmblog4j81.jar C:/CMBROOT/LIB/log4j.jar C:/CMBROOT/LIB/cmbsdk81.jar C:/CMBROOT/LIB/cmbwas81.jar C:/IBM/SQLLIB/java/db2java.zip 4. Copy the LWWCM home (app) directory to . This can be any directory you choose for LWWCM software. 5. Use the Application Assembly Tool to adjust the initialization parameters in the war file, c:\lwwcm_temp\app\config\websphere\ilwwcm.war. See Figure 13-7. Adjust the parameter values for ConfigFile parameter.
Figure 13-7 Application assembly for temporary LWWCM server
6. Install the temporary enterprise application: a. Open the WebSphere Application Server Administrative Console. b. Go to Applications -> Install New Application. c. Browse to where the ilwwcm.war file is located. In our scenario, it is: c:\lwwcm_temp\app\config\websphere\ilwwcm.war. d. Specify Context Root: ilwwcm_temp.
e. Click Next until Step 1: Provide options to perform the installation. f. Specify the Application Name: ilwwcm_temp_war. g. Click Next until Step 3: Map modules to application servers.
282 Lotus Workplace Web Content Management and Content Manager Working Together h. Map the new application to server1.
i. Click Next, Finish, Save to Master Configuration, and then Save. 7. Copy the LWWCM Web application to . 8. Configure the persistence settings of the temporary server in aptrixjpe.properties (which can be found in \config) to match the target repository type: manager.persistence=CM resource.persistence=CM cm.server=ICMNLSDB cm.username=icmadmin cm.password= cm.jpeServerIdentifier=demo99 cm.versionControl=false 9. Configure any other Content Manager related settings in aptrixjpe.properties of the temporary server. A list of available options and their impact on the system can be found in LWWCM’s online Information Center (Installation Guide -> Server Configuration -> Web Content Management Data Storage -> Storing Data in IBM Content Manager). 10.Restart server1. \bin\stopserver server1 \bin\startserver server1 is where you installed WebSphere Application Server. 11.Create the basic LWWCM user interface entries for the temporary server: a. Enter the following URL in your browser: http:///ilwwcm_temp/connect/?MOD=AJPEGUI b. Specify User name: Administrator. c. Specify Password: password.
Syndicate the temporary LWWCM server Syndicate the content from the original LWWCM server to the temporary LWWCM server. This moves the content from the original LWWCM server into the repository of the temporary server, which is configured to be Content Manager.
To perform the syndication, create a new subscriber on the temporary LWWCM server and a new syndicator on the original LWWCM server and start syndication by following the steps described in 13.1.1, “Setting up the syndication tool” on page 272. Figure 13-8 on page 284 shows the creation of the subscriber and the syndicator.
Chapter 13. Data migration through syndication 283
Figure 13-8 Syndicator and subscriber for migration
After successful syndication, you should test if the data has been moved properly by entering the following URL: http:///ilwwcm_temp/connect/Intranet
This opens the ITJumpstart Intranet Page on your temporary LWWCM server. Additionally, you can verify that the data and the resources are created in your Content Manager. To check this, do the following: 1. Log in to your Content Manager System Administration Client. 2. Search the item type AJPEData. Leave all search fields empty. The result should look similar to Figure 13-9. Note the number of returned items and the JPE Server ID column.
Figure 13-9 AJPEData search result in Content Manager after syndication
284 Lotus Workplace Web Content Management and Content Manager Working Together If everything is working properly, you can delete the syndicator and subscriber entries from the original and temporary LWWCM server. This step is optional.
Configure the original server to use Content Manager repository The following steps are required to configure the persistence settings or the original server to use Content Manager as the repository: 1. Change the following entries in the aptrixjpe.properties file which can be found in the \config directory. Make sure that all Content Manager related entries match the configuration of the temporary server: manager.persistence=CM resource.persistence=CM cm.server=ICMNLSDB cm.username=icmadmin cm.password= cm.jpeServerIdentifier=demo99 cm.versionControl=false 2. Configure any other Content Manager related settings in aptrixjpe.properties of the original server. Make sure that all entries match the configuration of the temporary server. 3. Configure the temporary server to use the file system as its repository to prevent the temporary server from using Content Manager during the next server1 startup. Change the following two lines in the aptrixjpe.properties file of the temporary server: manager.persistence=FileSystem resource.persistence=FileSystem Note that the system path contains system related informations and the data path contains all LWWCM data files. 4. Shut down the original and temporary LWWCM server. Since both applications are installed on server1, you have to stop server1 by executing the following command in the WebSphere Application Server bin directory: \bin\stopserver server1 5. Delete the following folders and their content from the original server: \data \system 6. Copy the following folder and its content from the temporary to the original server: \system 7. Restart the server which holds the original LWWCM application to activate the new configuration. \bin\startserver server1
Chapter 13. Data migration through syndication 285 Delete the temporary LWWCM enterprise application To delete the temporary LWWCM enterprise application, do the following: 1. Open the WebSphere Application Server Administrative Console. 2. Go to Applications -> Enterprise Applications. 3. Check the application you want to delete. In our case, it is ilwwcm_1_war. 4. Click Stop (see Figure 13-10). 5. Click Uninstall -> Save -> Save.
Figure 13-10 Deleting the temporary LWWCM application
13.2.1 Troubleshooting If you cannot access the original system after migration, do the following to solve the problem: 1. Stop server 1: \bin\stopserver server1 2. Delete the users folder: \connect\users 3. Start server 1: \bin\startserver server1 4. Run the LWWCM checker utilities from your browser: http://[HOST]:[PORT]/[CONTEXT]/connect?mod=ajpeuserchecker&create=true http://[HOST]:[PORT]/[CONTEXT]/connect?mod=ajpereferencechecker&fix=true http://[HOST]:[PORT]/[CONTEXT]/connect?mod=ajperesourcechecker&fix=true http://[HOST]:[PORT]/[CONTEXT]/connect?mod=ajpesitechecker&fix=true
286 Lotus Workplace Web Content Management and Content Manager Working Together 5. Stop server 1:
\bin\stopserver server1 6. Delete the following folder:
\system 7. Start server 1: \bin\startserver server1
13.3 Upgrading LWWCM V1.1 content to LWWCM V2.0
In this section, we address the scenarios in which you need to upgrade an existing LWWCM V1.1 server and its content to a LWWCM V2.0 server using the following two paths: File system to file system upgrade File system to Content upgrade/migration
13.3.1 File system to file system upgrade You need to upgrade the LWWCM Web application with V2.0 and reuse the data and user folders from V1.1. There is no need for data migration. After that, you can generate a new V2.0 LWWCM user interface.
Upgrade the LWWCM Web application To upgrade the LWWCM Web application: 1. Open the WebSphere Application Server Administrative Console. 2. Goto Applications -> Enterprise Applications. 3. Check the LWWCM Web application. In our scenario, it is ilwwcm.war. 4. Click Stop. Wait until the application is stopped and click Update (see Figure 13-11 on page 288).
Chapter 13. Data migration through syndication 287
Figure 13-11 Updating the LWWCM Web application
5. From your installation CD, copy the web-app folder to : c:\ibm\WebSphere\AppServer\installedApps\demo99\ilwwcm_war.ear\ilwwcm.war 6. Go back to the WebSphere Application Server Administrative Console; go back to Applications -> Enterprise Applications. 7. Check the LWWCM Web application (ilwwcm.war). 8. Click Start. Wait until the application is started and click Update. 9. Run the LWWCM resource checker utility. This creates the resource folder in the directory: http://demo99/ilwwcm/connect/?MOD=AJPEResourceChecker&FIX=TRUE
Generate the new LWWCM V2 user interface Execute the following command line in the browser: http://[HOST]:9080/ilwwcm/connect/?MOD=AJPEGUI
13.3.2 File system to Content Manager migration Upgrading a V1.1 file system repository to a V2.0 Content Manager repository is a combination of 13.2, “Migrating content repositories” on page 278 and 13.3.1, “File system to file system upgrade” on page 287: 1. You have to upgrade the LWWCM Web application as shown in 13.3.1, “File system to file system upgrade” on page 287. 2. Create a temporary LWWCM V2.0 server configured to use Content Manager as the repository. Then syndicate the content to the temporary server, switch the configuration of your original LWWCM server to use Content Manager as the repository. The detailed steps are discussed in 13.2, “Migrating content repositories” on page 278.
288 Lotus Workplace Web Content Management and Content Manager Working Together 13.3.3 Enabling LWWCM version control
You do not have LWWCM’s version control on the migrated system by default because this is a new feature of LWWCM V2.0 and your content was created using LWWCM V1.1. You can, however, enable the version control for the new
contents as follows: 1. Open the aptrixjpe.properties file which can be found in the \config directory. 2. At the # control properties section, add the value to each object that requires version control: com.aptrix.versioncontrol.VersioningControl Example 13-3 shows a sample of the aptrixjpe.properties file that enables version control.
Example 13-3 aptrixjpe.properties file: enable version control # control properties control.Content=com.aptrix.versioncontrol.VersioningControl,com.aptrix.pluto.wo rkflow.WorkflowControl,com.aptrix.pluto.taxonomy.ProfileControl control.Style=com.aptrix.versioncontrol.VersioningControl control.Template= control.Taxonomy= control.Category= control.Site= control.SiteArea= control.Workflow= control.WorkflowStage= control.WorkflowAction= control.Cmpnt=com.aptrix.versioncontrol.VersioningControl control.DirectoryEntry=com.aptrix.pluto.taxonomy.ProfileControl
Note: If the object has other values, insert a comma to separate this value from existing values.
3. Save the file. 4. Stop the WebSphere Application Server. 5. Restart the WebSphere Application Server so that the change can take effect.
The version control is automatically applied to all the new content created using a new Content Template, also created from V2.0. All contents migrated from V1.1 do not have this feature enabled.
Chapter 13. Data migration through syndication 289 To allow version control to all V1.1 contents, follow these next steps:
1. Open the browser and enter the following URL: http://[HOST]:9080/ilwwcm/connect/?MOD=VersioningEnablement
2. Log on using the following user name and password (they are case-sensitive): – Specify User Name: Administrator – Specify Password: password
Once the Version Enablement Module is running, the log displays in the browser window. Objects from LWWCM V1.1 can now participate in version control. See the running results in Example 13-4.
Example 13-4 Module versioning enablement results Log for Utility: Version Enablement Module
16:15:22.167 com.aptrix.pluto.util.PlutoUtilityModuleinfoStarting utility: Version Enablement Module 16:15:26.413 com.aptrix.versioncontrol.VersioningEnablementModuleinfoEnabling versioning for type: Content 16:17:13.307 com.aptrix.versioncontrol.VersioningEnablementModuleinfoEnabling versioning for type: Style 16:17:22.39 com.aptrix.versioncontrol.VersioningEnablementModuleinfoEnabling versioning for type: Cmpnt 16:18:20.103 com.aptrix.pluto.util.PlutoUtilityModuleinfoUtility completed.
Note: You can run this module (MOD=VersioningEnablement) as often as required. You need to run it every time you define version control for a new object in the aptrixjpe.properties file. After that, these objects will be able to participate in version control. Also, if the objects are created when the feature is not enabled and later, you want to enable them, run the same module.
Figure 13-12 on page 291 shows an example of an original V1.1 content without the version control utility (on the left) and the result of applying the Version Enablement module to it (on the right). Notice the Save Version button available on the second figure that is missing from the first figure.
290 Lotus Workplace Web Content Management and Content Manager Working Together
Figure 13-12 Migrated content before and after version enablement
Chapter 13. Data migration through syndication 291
292 Lotus Workplace Web Content Management and Content Manager Working Together
14
Chapter 14. Versioning
In this chapter, we introduce versioning, describe how to enable version control in LWWCM, how to store multiple versions of objects, and how to read, restore and delete objects from the LWWCM version library. Additionally, we address why and how to integrate the Content Manager versioning functionality from a Web site by using: Content Manager integrated versioning features Federated content component JSP component
© Copyright IBM Corp. 2004. All rights reserved. 293 14.1 Versioning overview
Content Manager and LWWCM support versioning. Versioning in the LWWCM publishing process with Content Manager as the back end content repository adds another spin to an integrated solution. In this section, we take a look at Content Manager and LWWCM versioning as stand alone products and as an integrated solution. We also examine how versioning of external Content Manager resources can be used in LWWCM Web site development.
LWWCM versioning is used to store multiple copies of an LWWCM object, keep a history of object development and restore previous versions of a current object. This is useful in a Web publishing process for component Web sites where the final Web sites are the result of several designer and content publisher meetings. It is also useful when preparing Web sites in advance where the final publishing decision depends on future events or company results.
Content Manager versioning allows versioning on item types, attributes and individual document parts. The maximum number of allowed versions can be limited to a predefined number per item type. For example, in our case study insurance scenarios, versioning enables us to keep track of the history of insurance contract offerings for digital tax reviews. Versioning can be set to keep track of the coherence of advertisement media files and the regional selling quarterly results. The attribute versions help to keep track metadata changes such as a policy holder’s address and medical history.
With the integrated LWWCM and Content Manager solution, we need to consider how Content Manager versioning can be leveraged in the LWWCM Web publishing process.
14.2 Versioning of repository objects
Objects in LWWCM include Web site content and Web site building elements such as sites, site areas, and navigators. In order to keep a history of these objects and be able to restore snapshots, they can be refreshed in two ways: Versioning in LWWCM: Use the new LWWCM internal versioning features. Each version is a separate record in the underlying repository. Versioning in Content Manager: When you use the Content Manager as the back-end data repository, enable the automatic versioning of LWWCM objects in Content Manager. Every creation or update of objects in LWWCM using the LWWCM administration user interface creates a new version in Content Manager. One Content Manager record can contain many versions.
294 Lotus Workplace Web Content Management and Content Manager Working Together Important: Do not use the two approaches combined. This would lead to an undesirable outcome.
14.2.1 Versioning in LWWCM Using this approach, the versioning functionality is only handled by the LWWCM framework. The relationship between the currently active object and its versions is stored in each object and is only interpretable by LWWCM. The back-end repository (in our case, Content Manager) itself does not know about the different versions of the object. Each single version of an object is a separate record in Content Manager which differs from active and other versioned records only by different attribute values.
Note: Versions in the LWWCM terminology always refer to non-live, previously-versioned objects. The live objects are not stored as versions. This potentially results in the current active objects being lost when they are replaced by their previous versions. To avoid losing the current active objects, always save them as new versions before restoring older versions.
Versioning features provided in LWWCM are: Batch versioning and batch labeling Batch restoration of versions based on labels or date Versioning a single object Restoration of single objects
By default, the following three objects are version-enabled in LWWCM: Content Style Components
To enable other object types, refer to “Enabling versioning” on page 298.
Important: Only versions of individual objects can be saved. Any hierarchical relationships to other objects are not saved. For example, if you save a version of a site area that has child site areas and you delete the child site areas, the child site areas will not be restored if you restore the parent site area.
How versions are physically stored in Content Manager This section discusses in depth how versions are physically stored in Content Manager. If you are only interested in how to use versions, skip this section.
Chapter 14. Versioning 295 If LWWCM uses Content Manager as a back-end repository server, the first time you save a version of a version-enabled object, two new objects will be created in Content Manager:
Version
This is a copy of the object you just versioned, wrapped up in additional information such as the version number, when it was versioned, logging information and a reference to its parent object. Version catalog This is a catalog of all available versions regarding one object. The catalog contains metadata information about each available version such as its version number, creation time, and the reference to the actual version object. The Version Library view in the LWWCM administration user interface is based on the information stored in objects like the version catalogue.
Any additional version of the same object would create a new version object and update the catalog accordindingly.
Important: Do not delete records in Content Manager manually. This would lead to inconsistencies in LWWCM. If any consistency problems occur, stop the LWWCM server, delete the indexes then restart the LWWCM server.
Figure 14-1 on page 297 shows the version catalog, the versions and the actual content, Life-term Insurance, as they are stored in Content Manager.
To get this view, do the following: 1. Launch the Content Manager Windows Client. 2. Perform a search on item type AJPEData where: – JPE Server ID is the server ID of the LWWCM server (for example, 1). – Name is Life-term*. Do not forget the * to retrieve all objects starting with this name.
296 Lotus Workplace Web Content Management and Content Manager Working Together
Version catalog Version 1 & 2 of the content
Live content
Figure 14-1 Different LWWCM versions in Content Manager
Figure 14-2 shows the architecture of the version feature in LWWCM. The content shown on a Web page is always derived from the published object, the live object. The published object (contents and site area) is stored separately from the version objects (type archive) and the version catalog (type archive).
Web page Repository Type: contents, sitearea, ...
CONTENT Live object
SAVE RETRIEVE Navigator Component
Version catalog version 1 version 2 version n
Type: archive
Figure 14-2 Versioning
Chapter 14. Versioning 297 Enabling versioning The aptrixjpe.properties file can be edited to enable the version control of different objects. To enable version control, add the following to any of the control.[object] settings: com.aptrix.versioncontrol.VersioningControl
Multiple entries must be separated by a comma.
Tip: The aptrixjpe.properties file can be found in: [LWWCM_HOME]\config\aptrixjpe.properties
The following is an example of the steps required to enable content, component and page style objects for versioning in LWWCM: 1. Open the properties file and locate the following section in the file: #control properties 2. Adjust the control.Content, the control.Cmpnt and the control.Style lines. Note that the content control is also enabled for workflow and profile control: #control properties ..... control.Content=com.aptrix.versioncontrol.VersioningControl,com.aptrix.plut o.workflow.WorkflowControl,com.aptrix.pluto.taxonomy.ProfileControl control.Style=com.aptrix.versioncontrol.VersioningControl control.Cmpnt=com.aptrix.versioncontrol.VersioningControl ..... 3. Restart the LWWCM server.
New objects of type content, style or cmpnt are now version-enabled. Existing objects of these types will not be version-enabled by default but can be subsequently version-enabled by executing the following URL: http://[HOST]:[PORT]/[CONTEXT_ROOT]/connect/?MOD=VersioningEnablement
Using LWWCM versioning Once versioning is enabled for objects, we can use the LWWCM versioning feature to: Create new versions for the objects. Create a snap-shot of all version-enabled objects. Restore versions of the objects.
Creating a new version You can create a new version by using the Save Version button when working with an object.
298 Lotus Workplace Web Content Management and Content Manager Working Together Note: The Save Version button is only available in read mode.
We show you how to create a new version of an object using our case study content object, Life-term insurance, as an example: 1. Launch the LWWCM administration user interface. 2. Expand Content Management -> Content Library. 3. From the right-hand panel, select the Life-term Insurance content. 4. Click Read to open the content in read mode. 5. Click Save Version to trigger the creation of a new version. 6. Enter one or more labels, separated by semicolons, to identify the new version. See Figure 14-3. 7. Click OK.
Figure 14-3 Save version of a content object
Chapter 14. Versioning 299 Creating a snap-shot of all objects A common need is to create a snap shot of all available object states at a certain point in time so you can revert to this state when needed.
Important: Only objects which are published and version-enabled in aptrixjpe.properties are affected by this action.
To do this task, do the following: 1. Launch the LWWCM administration user interface. 2. Expand Version Management -> Version Library. 3. Click Version All. This will create the first or an additional version of all version-enabled objects. 4. Enter one or more labels, separated by semicolons, to identify the new version. This label will later be used to restore all objects with this label. 5. Creating versions for all version-enabled objects may take some time. Wait until the creation is finished. To check if all the creations are done, click Check Status. The message box will tell you about the current process and its progress (Figure 14-4).
Figure 14-4 Version all process status
You can assign additional labels to the latest version stored for each object. Follow the steps below: 1. Click Label All. This will label all the latest versions in version-enabled objects with a specific label. 2. Enter one or more labels, separated by semicolons, to identify the new version. You can use this label later to restore all objects assigned to it. 3. Wait until the labeling is finished.
Restoring versions You can restore all objects with a specific label, or you can restore a version for just one object.
300 Lotus Workplace Web Content Management and Content Manager Working Together When restoring a single object to a particular version, you can:
Define the restored version as a draft of the currently active object. Have the restored version overwrite the currently active one.
Note: When you restore all objects to a specific version, the currently active objects will be overwritten with the stored object versions unless you save the new ones first. We highly recommend you save the current active version prior to restoring a previous version.
To restore all objects to a particular version, do the following: 1. Launch the LWWCM administration user interface. 2. Expand Version Management -> Version Library. 3. Click Restore All. 4. Enter the label of the versions you want to restore or a date value. 5. Click OK. 6. Wait until all objects are restored.
To restore a single object to a particular version, do the following: 1. Launch the LWWCM administration user interface. 2. Expand Content Management -> Content Library. 3. Expand the object type of the object version you want to restore. 4. Mark the concerned object and click Show Versions. 5. Select the version you want to restore. Click Restore to overwrite the currently active object or click Restore as draft to restore the selected version as a draft of the currently active object (see Figure 14-5). 6. Click OK to confirm the selection.
Figure 14-5 Version management in LWWCM
Chapter 14. Versioning 301 14.2.2 Versioning in Content Manager
If you use Content Manager as the repository type, enable the automatic versioning of LWWCM objects in Content Manager. Using this approach, the Content Manager performs versioning tasks. The relationship between the
currently active object and its previous versions is stored inside Content Manager. Every time you create or update an object in LWWCM using the LWWCM administration user interface, Content Manager creates a new version of the corresponding AJPEData object. In LWWCM versioning, different versions of an object in LWWCM are stored as Content Manager version records and not as separate AJPEData records.
Figure 14-6 shows the difference between the internal storage in Content Manager for using the LWWCM versioning (the top screen) and using the Content Manager versioning feature.
Using LWWCM versioning, you have one entry for each LWWCM version.
Using CM versioning, you have one item per LWWCM object, with versions controled by CM.
Figure 14-6 Comparison of LWWCM and Content Manager versioning
From a Content Manager Windows Client or eClient’s AJPEData search result list, select an AJPEData object and open the version list to view the existing Content Manager versions. See the second portion of Figure 14-6. Note the
302 Lotus Workplace Web Content Management and Content Manager Working Together LWWCM file and image resource components are stored as AJPEResources objects in Content Manager. For more information about LWWCM objects stored as AJPEData and AJPEResources objects in Content Manager, see section 6.4, “How LWWCM objects are stored in CM” on page 108.
To enable Content Manager versioning for all LWWCM objects, do the following: 1. Open the aptrixjpe.properties file located in the [LWWCM_HOME]\config directory. 2. Locate the #Content Manager persistency settings section and change the following line: cm.versioning=true 3. Restart the LWWCM server.
New versions will be created in Content Manager for the AJPEData item type objects whenever an LWWCM object is updated in the LWWCM framework. For the AJPEResources objects, there is only one version stored in Content Manager.
Note: At the time of writing, we do not recommend using the Content Manager versioning feature in LWWCM V2.0 for the following reasons: LWWCM is not aware of any way to restore objects that are versioned within Content Manager. Unless you use Information Integrator for Content APIs and manually program to get the previous versions, using Content Manager versioning feature with LWWCM might not be helpful. If you use the Content Manager versioning feature and then syndicate the LWWCM server to another server, the Content Manager versioning information will not syndicate to this new server since LWWCM is not aware of its existence. The deletions in Content Manager are not handled correctly in this release. When an object is deleted from the LWWCM framework, only the first Content Manager version of the object is removed; all other versions stay orphaned in the system. This, however, is completely transparent to the LWWCM users.
14.3 Versioning external resources
The only way to version external resources is to use Content Manager versioning.
With LWWCM versioning, copies of links to external resources within an LWWCM object, such as Content Manager resources, are not kept in the version
Chapter 14. Versioning 303 library. If you delete the external resource, you cannot use the LWWCM version library to restore the resource. LWWCM does not provide a front end to retrieve previous versions of external resources. The retrieval of previous versions would have to involve some manipulation.
14.3.1 Versioning in federated, JSP components and connect tags This section explains other types of versioning for specific purposes. For more information about these, follow the provided links.
Using the federated content component (federated component) you can render a URL, attributes or the actual content of external resources into your Web page. Additionally, the component gives you the ability to select the Content Manager version of the content you want to retrieve. For information about the federated content component, refer to 7.3, “Federated content component” on page 123.
With the JSP component, you have the ability to define which Content Manager version of the records you want to access. To perform this task, you enhance the search string with version criteria to limit the result set to a specific (mostly the latest) version. For more information about the JSP component, refer to 10.2.1, “Leveraging the CM/II for Content Java APIs” on page 220.
For information about accessing different Content Manager item type parts and attribute versions with the search connect tags syntax, see also the W3C standard for XPath/XQuery-based XML document management.
The following example shows how to use a search tag to get the latest version for the InsuranceVideo item type: ’/InsuranceVideo[@VERSIONID = latest-version(.)]’
This query finds all the videos of the latest version. VERSIONID is a system-defined attribute that is contained in every component type and can be used to specify a particular version. For more details about the connect tag using Content Manager's XPath syntax, refer to IBM DB2 Content Manager for Multiplatforms - Workstation Application Programming Guide Version 8.2, SC27-1347, starting on page 184, “Example searches using the query language.”
14.3.2 Versioning using Content Manager
This section describes briefly how to use versioning features in a pure Content Manager environment. As mentioned in “14.3.1, “Versioning in federated, JSP components and connect tags” on page 304, the Content Manager versioning possibility can be integrated in the LWWCM Web content by using a federated content component, JSP component, or with search connect tag syntax.
304 Lotus Workplace Web Content Management and Content Manager Working Together Content Manager has a versioning feature for item objects and attributes. For example, in our case study, if you change the IT_Group attribute for a specific item object to another IT_Group name, then Content Manager creates a new, updated version of the item. The version policy that you set on the Definition page of an item type applies also to the attribute values. For our InsuranceVideo item type definition, as shown in Figure 14-7 on page 306, we allow a maximum number of seven versions. When you change InsuranceVideo, a new version is created. If you exceed the maximum number of versions, the oldest version is automatically deleted when saving the next new InsuranceVideo object version.
The following version policies are possible: Never create: A stored item is updated every time. Only one version of this item exists. Always create: Always create a new version of the item whenever it is updated. Prompt to create: Users decide whether they want a new version to be created when they are updating an item.
For the last two policy types, Always create or Prompt to create, the number of versions can be set to a maximum number as in our sample in Figure 14-7 on page 306, or it can be set to allow an unlimited number of versions.
Chapter 14. Versioning 305
Figure 14-7 Set the versioning policy for the InsuranceVideo item type
If the item type that you are creating is classified as a resource item or document part, the version policy from the definition window also applies to the object on the Resource Manager. If the item type that you are creating is a document, you can specify supplemental version policy information for the specific document parts on the Document Management window, accessible by clicking Add in the Document Management tab (see also Figure 14-8 on page 307).
306 Lotus Workplace Web Content Management and Content Manager Working Together
Figure 14-8 Supplemental version policy for specific document parts
Chapter 14. Versioning 307
308 Lotus Workplace Web Content Management and Content Manager Working Together
A
Appendix A. Installation supplement
This appendix provides the following information: Accessing a remote LS database Cleaning up a Windows system prior to installation
© Copyright IBM Corp. 2004. All rights reserved. 309 Accessing a remote LS database
Access remote LS DB in a DB2 Command Window (or use the DB2 Command
Center) to first catalog the remote TCP/IP node and then the remote LS DB: CATALOG [ADMIN] TCPIP NODE node-name REMOTE hostname [SERVER service-name] [SECURITY {SOCKS}] [REMOTE_INSTANCE instance-name] [SYSTEM system-name] [OSTYPE os-type] [WITH "comment string"]
Note: SERVER service-name is mandatory for CATALOG TCPIP NODE and not allowed for CATALOG ADMIN TCPIP NODE
CATALOG DATABASE database-name [AS alias] [ON drive | AT NODE node-name] [AUTHENTICATION {SERVER | CLIENT | DCS | DCE SERVER PRINCIPAL principalname | KERBEROS TARGET PRINCIPAL principalname | SERVER_ENCRYPT | DCS_ENCRYPT}] [WITH "comment-string"]
In our setup, we use the following commands to acess a remote LS DBs on a Windows machine demo2 and on a AIX machine named zaire: catalog tcpip node remote server – catalog tcpip node DEMO2 remote demo2.svl.ibm.com server 50000 – catalog tcpip node zaireaix remote zaire.svl.ibm.com server 60002 catalog database as at node – catalog database ICMNLSDB as DEMO2LDB at node DEMO2 – catalog database ICMNLSDB as ZDB at node zaireaix
For the node name, choose whatever name you want (no more than eight characters long). To find the right port number for an remote LS AIX installation, check the remote system in /usr/etc file services, and type cat services to find the connection port number for the database instance for this remote LS database. On Windows, go to the file C:\WINNT\system32\drivers\etc and enter type services.
Also check the DB2COMM configuration parameter with db2set, in a DB2 command window, if you use TCP/IP communication, to see if it is configured: DB2COMM=TCPIP, NETBIOS
If you are not familar with DB2 commands, just use the DB2 Control Center to access a remote system and to catalod a remote DB2 database.
310 Lotus Workplace Web Content Management and Content Manager Working Together After the test, enter a db2 connect command from the DB2 command window; for our sample, we try a connection against the remote AIX database ICMNLSDB (alias ZDB):
db2 connect to ZDB user ICMADMIN using
Note: If you get an SQL error with SQLSTATE=08001 see 5.4, “Problem determination and troubleshooting” on page 78 in the 5.4.3, “DB2 and NSE” on page 80 subchapter.
Cleaning up a Windows system prior to installation
Always try to install on clean systems for the ILWWMC/CM server installation, to avoid a situation where troubleshooting becomes necessary. For performance and maintenance reasons, this kind of approach also makes sense.
Below, we describe how you can guarantee that you install the ILWWCM or CM servers on a clean Windows system for a new ILWWCM/CM system setup: 1. Remove previous versions if they are no longer needed by clicking Start -> Settings -> Control Panel -> Add/Remove Programs. Always reboot after the full uninstallation. 2. From the Command Prompt window, enter regedit then go to My Computer -> HKEY_LOCAL_MACHINE -> Software and remove any existing entries where the programs were already removed. Delete any corresponding Services entriy for this programs by clicking My Computer -> HKEY_LOCAL_MACHINE -> System -> ControlSet00.. -> Services and My Computer -> HKEY_LOCAL_MACHINE -> System -> CurrentControlSet -> Services. 3. Delete any leftover subdirectories from previous installations
Appendix A. Installation supplement 311
312 Lotus Workplace Web Content Management and Content Manager Working Together Related publications
The publications listed in this section are considered particularly suitable for a more detailed discussion of the topics covered in this redbook.
IBM Redbooks
For information on ordering these publications, see “How to get IBM Redbooks” on page 314. Note that some of the documents referenced here may be available in softcopy only. Content Manager Implementation and Migration Cookbook, SG24-7051 Lotus Workplace Web Content Management, SG24-6309
Other publications
These publications are also relevant as further information sources: Content Manager for Multiplatforms - Planning and Installing Your Content Management System, GC27-1332 Content Manager for Multiplatforms / Information Integrator for Content - Workstation Application Programming Guide Version 8.2, SC27-1347 Net Search Extender Administration and User’s Guide, SH12-6740
Online resources
These Web sites and URLs are also relevant as further information sources: Content Manager support home page: http://www.ibm.com/software/data/cm/support.html Information Integrator for Content (EIP) support home page: http://www.ibm.com/software/data/eip/support.html DES home page: http://www.lotus.com/products/des.nsf/wdocs/home
© Copyright IBM Corp. 2004. All rights reserved. 313 WebSphere Portal and Lotus Workplace catalog:
http://catalog.lotus.com/wps/portal/portalworkplace WebSphere Portal Information Center home page:
http://publib.boulder.ibm.com/pvc/wp/502/ent/en/InfoCenter/index.html
How to get IBM Redbooks
You can search for, view, or download Redbooks, Redpapers, Hints and Tips, draft publications and Additional materials, as well as order hardcopy Redbooks or CD-ROMs, at this Web site: ibm.com/redbooks
Help from IBM
IBM Support and downloads ibm.com/support
IBM Global Services ibm.com/services
314 Lotus Workplace Web Content Management and Content Manager Working Together Index
approval tag 152 content 5 approver 18 Numerics aptrixjpe.properties 94, 100–101, 200, 298 08001 82 architecture 10061 82 Content Manager 22 Information Integrator for Content 19 A LWWCM 5, 13 access Resource Manager 26 Content Manager content 189 WebSphere Portal Server 188 Access Control List 25 archive 20 access control list 26 archiving access levels computer output 20 LWWCM 238 attributes access module 64 creating in Content Manager 119 access.log 64 authentication 24, 249 ACL 25, 249 authenticity 10 admin_error.log 64 author 5, 49 administration user interface content 4 LWWCM 7 authorization 24, 249 advantages authorization flow 10 CM compared to JDBC repository for LWWCM auto-linking 26 39 automated notification 18 integration 171 AV 20 Using CM as external resources 38 Using CM as repository 37 B agents 82 backup 20 AJPEData 108, 296, 302 Body tag 54 attributes 111 Boolean search 21 storing 109 buffer pool 82 viewing item type 109 bulk document loading 18 viewing items 110 business processes 5 XMLContent data 113 AJPEGUI module 108 AJPEResources 108, 303 C C++ APIs 22 attributes 112 C2A 190 storing 109 cache LWWCM components viewing item type 109 using connect tags 146 viewing items 110 caching alias name content 5 database 89 caching services 4 APIs case study 42 Information Integrator for Content 22 setup 70
© Copyright IBM Corp. 2004. All rights reserved. 315 catalog 98 delivery 189 Category Management design 5 Site Management 7 dynamic 12 category taxonomy 7 referencing into site area 57 check Content Library 10 installed software version 71 Content Management checklist LWWCM module 7, 10 validation 72, 75 Content Manager 16 classification architecture overview 22 content 7 creating attributes 119 item type 25 creating content 122 client application 22 creating item type 120 Working with Library Server and Resource Man- integration with VideoCharger 259 ager 31 product portfolio 17 Client for Windows 22, 30 publishing content 115 cm81install.log 64 repository for external sources 169 cmbds.ini 103, 105, 107, 124 repository for LWWCM 92, 169 cmbicmsrvs.ini 100, 103, 107 retrieving data 143 cmlevel.exe 71 search possibilities 210 COLD 20 software requirements 68 collaboration Using as external resources advantages 38 team 5 Using as repository for LWWCM advantages 37 CommonStore 17, 20 validation checklist 75 comparison versioning 302, 304 Domino and Java editions 7 Working with LWWCM 33 component design 13 Content Manager content Component Library 10, 116 access using portlets 189 component page design 8 Content Manager Information Integrator for Content component tags 18 using within page design 133 Content Manager Installation log files 64 compound document 18 Content Manager OnDemand 17, 20 computer output to laser disk 20 Content Manager portlets 189, 201 configuration files 64, 97 Content Manager security 248 configure the log level Content Manager V8 connector 103 LWWCM 87 Content Manager versioning 294 connect tags 12, 58, 116, 139, 304 content portlet 195 display data from external resources 141 content repository display data from Web 143 migrating 278 security 252 Content Template 10 using within page design 141 content template 8, 56 connect.cfg 124, 164 creating 50 connect.log 164 content templates 49 connector 19, 117 content viewer portlets 189 content contributor 18 author 4 create component 10 Web sites 9 creating 56–57 creating creating in Content Manager 122 attributes in Content Manager 119 creation tool 10 content 56–57
316 Lotus Workplace Web Content Management and Content Manager Working Together content in Content Manager 122 DES 234 content template 50 design federated component in component library 129 content 5 federated component within a content object Web page 6, 9 131 Design & Development federated content component 129 LWWCM module 7–8 federated entity 127 design component 10 federated search template 128 designer item type in Content Manager 120 Web page 4–5 JSP component 153 developer 49 JSP component in component library 153 development stage 12 JSP component within a content object 153 development workstation page layout 55 Information Integrator for Content 117, 168 portal page 199 DGL0394A 96 site area 44 DGL0587A 96 snap shot of all objects 300 Digital Asset Management 16 subscriber 273 digital rights management 21 syndicator 273 Directory Access Protocol 24 video component in LWWCM 268 disadvantages workflow 48 integration 171 creation 13 display creator 18 integration level 191 display data from Web using connect tags 143 D distance learning 16 data modeling, 24 distribute content 12 data storage 101 DNS 65 database document 26 alias name 89 item type classification 26 database creation document creation 18 Library Server and Resource Manager 64 document life cycle management 18 database query language 23 document loading database.log 64 bulk 18 DB2 document management 5 verify installation 74 Document Manager 16, 18 DB2 log file 81 document part 25 DB2 Runtime Client 168 document routing 24, 26 DB2 trace utility 81 document search 21 db2cmd 81 DOMEA 16 db2diag.log 81 Domino edition db2level 71 LWWCM 6 db2rbind 82 Domino Extended Search 234 db2text 75 draft 11 db2trc 80 DRM 21 db2trc.exe 81 dynamic debug.log 164 content 12 DefaultEncoding value 88 dynamic content portlet 194 deleting indexes 96 delivery 13
Index 317 E federated search template 101, 123 eClient 22, 30–31 creating 128 ECM 16 FederatedCmpnt tag 133–134 e-government 18 FederatedLibCmpnt tag 133 Electronic Media Management System 17, 21 FederatedProxy module 135 e-mail 18, 20 file plan 18 embedded video 269 file system 27 EMMS 17, 21 fixed disk 20 enable versioning 298 folder 26 end-to-end solution 4 foreign key 26 Enterprise Content Management 16 free text search 21 Enterprise Resource Planning 16 full text search 23, 211 ERP 16 fuzzy search 21 error.log 64, 87, 164 expiring G Web pages 4 G723 20 external databases government 18 display using connect tags 141 GPP 21 external resources groups versioning 303 default 240 external sources retrieve data 116 H hints and tips 78, 80 F HTML 21 features differences in Domino and Java editions 6 FED connector 103 I testing 107 IA 9 federated attributes IBM Directory Server 24 rendering 134 IBM HTTP Server federated component logs 64 creating in component library 129 verify installation 72 creating within a content object 131 ICM connector 103 federated component form 130 testing 107 federated connector 103 ICMAnnotaions 25 federated content ICMBASE 212 rendering 136 ICMBase 25–26 federated content component 12, 58, 116, 123, 304 ICMBASESTREAM 262 creating 129 ICMBaseStream 25 security 252 ICMBASETEXT 212 setting up 124 ICMBaseText 25–26 federated content links ICMClientLog.ini 65 rendering 135 icmcrlsdb.log 64 federated data source 12 icmcrrmdb.log 64 federated entities 125 ICMfetchContent 81 federated entity ICMfetchFilter 81 creating 127 ICMNotelog 25 federated search 215–216, 219 icmserver.log 64
318 Lotus Workplace Web Content Management and Content Manager Working Together ICMStream 26 JSP code iFrame 231 sample, connection to CM 156 iFrames 220 sample, simple search 158 import videos 262 JSP component 58, 116, 151, 304 importing configuration 154 text searchable items 214 creating 153 indexes 89 creating in component library 153 deleting 96 creating within a content object 153 Information Architecture 9 security 253 Information Integration for Content setting up 152 validation checklist 75 using 155 Information Integrator for Content 16, 18 JSP components 13 APIs 22 JSP program architecture 19 execute outside of LWWCM 165 development workstation 117 JVM 92 Information Integrator for Content portlets 204 installation verify 72, 74 L LBR 20 VideoCharger 258 LDAP 24, 190 instant message 18 LDAP directory integrate retrieving data 142 why and when 35 Library Server 22, 24 integrated database creation 64 integration level 191 remote access 97 integration 168 Working with Resource Manager and client ap- advantages and disadvantages 171 plication 31 external resources 37 Library Server log file 64 maintenance 171 Lightweight Directory Access Protocol 24 security considerations 171 link VideoCharger and Content Manager 259 integration level 191 integration level 191 live 11 interactive integration locklist 82 between people and content 10 log files 64, 164 internal LWWCM search engine 219 log level intuitive click to action navigation 190 configure (LWWCM) 87 IT JumpStart intranet Web site 42 logging level 26 item type long term storage 20 creating in Content Manager 120 look and feel 4, 8, 12 item type classification 25 Lotus Domino 20 Lotus Domino Directory Notes Address Book 24 J Lotus Workplace Web Content Management Java APIs 22 16–17 Java edition LWWCM 16–17, 32, 73 LWWCM 6 architecture 5, 13 Java heap size 93 Domino and Java editions 6 JDBC driver 79 initial setup 96 classpath 93 integrating in WPS 190 JPE Server ID 95, 296 search module 219
Index 319 software requirements 67 netstat 65 verify installation 74 network consideration Working with Content Manager 33 LWWCM and CM installation 65 LWWCM log files 64 nodes 82 LWWCM modules 7 NSE 16, 21, 212, 219 LWWCM objects verify installation 74 storing in Content Manager 108 NSESearch.jsp 222 LWWCM portlets 193 LWWCM search engine 219 LWWCM security 238 O OnDemand 17, 20 LWWCM server routing information 99 one-way transportation 272 LWWCM user interface 7 optical jukebox 20 LWWCM version control enabling 289 LWWCM versioning 294 P using 298 page design 8–10, 13, 53, 56 create 9 using component tags 133 M using connect tags 141 maintenance page layout integration 171 creating 55 management 13 pages design 8 maxagents 82 paper-based process 18 maxappls 82 parametric search 210 media archive 27 personalization 4 menu portlet 198 phrase search 21 messaging 5 play videos 262 Microsoft Active Directory 24 plotting 18 Microsoft Exchange 20 port migrated setting different port 65 integration level 191 port conflict 65 migrating portal page 193 content 12 creating 199 content repositories 278 portal page layout migration policy 27 sample 193 migrator 28 portal search engine 234 MJPEG 20 portlet 190 mobile Sales Force Automation 16 portlet pattern modules advantages and disadvantages 191 LWWCM 7 portlets 190 MPEG 20 types 193 MPEG1 20 predefined document parts 25 MPEG2 20 privilege 24, 249 privilege group 249 N privilege set 25, 249 navigation portlet 194 problem determination 78 navigator 7 process management 18 Web site 43 product portfolio Net Search Extender 16, 21–22, 219 Content Manager 17
320 Lotus Workplace Web Content Management and Content Manager Working Together production stage 12 Working with Library Server and client applica- proximity search 21 tion 31 PSE 234 restoring versions 300 publish retrieve data documents 4 from external sources 116 publishing retrieving complete page Content Manager content 115 from Web site 144 Web pages 4 retrieving data PulblicReadACL 262 from Content Manager 143 purger 28 from different source 13 from external sources 58 from LDAP directory 142 Q SQL database 142 QuickTime 20 retrieving partial page from Web site 144 R reviewer 18 ranking runstats 82 search 21 record life cycle 18 record management standards 16 S Sales Force Automation 16 Record Manager 18 sample record structure 18 TSearch query 218 Records Manager 17 sample code Redbooks Web site 314 using wcm JSP tags 160 Contact us xviii sample JSP code remote client workstation 23 connection to CM 156 remote Library Server database 97 simple search 158 remote printing 18 SAP R/3 20 RendererModule 147 search 21 rendering integrating 219 federated attributes 134 search approaches 234 federated content 136 search engine federated content links 135 LWWCM 219 rendition service 18 search module reorgchk 82 LWWCM 219 replicator 28 search possibilities repositories Content Manager 210 migrating 278 search template 89, 125 repository 18 creating 128 using CM for external sources 169 federated 101, 123 using CM for LWWCM 169 search videos 262 Web page 5 security 200 resource connect tags 252 item type classification 25 Content Manager 248 Resource Manager 16, 20, 22, 26 federated content component 252 architecture 26 integration 171 configure 260 JSP component 253 database creation 64 Security & Workflow manage storage of objects 28
Index 321 LWWCM module 7 setting up 272 security sections Syndication & Deployment LWWCM 238 LWWCM module 7–8 security setting 4 syndicator 8, 88 Server Configuration Utility 106 creating 273 server operating system System Administration Client 29 consideration 169 interface 30 server routing information System Administration Client log file 64 LWWCM 99 system Administration Client, 29 SFA 16 System Administrator Client 22 shared resources 116 system architecture 167 Single Sign On 190 site area 8, 56–57 create 9 T tape drive 20 creating 44 taxonomy Site Framework category 7 Site Management 7 TConnect 165 Site Management TConnect.java 107 LWWCM module 7 TCP/IP smitty 71 address 65 SMS 26, 260 error 82 snap-shot team collaboration 5 creating 300 templates socket error 66, 82 pre-build 4 software requirements text metadata 23 Content Manager 68 text search 22, 212 LWWCM 67 text search options 213 software versions text searchable items check 71 importing 214 sort heap 82 thesaurus search 21 SP 22–23 Tivoli Storage Manager 20, 27 space management facility 20 trace levels 164 SQL database transportation retrieving data 142 syndication 272 stager 28 troubleshooting 78, 96, 164, 286 staging TSearch query 218 content 5 TSM 20, 27 static content portlet 194 two-way transportation 272 storage 13 long term 20 storage managed system 260 U Storage Manager 17 UDF 81 storage system 26–27 UK PRO2 16 stored procedures 22–23 update streaming 20 Web sites 9 structured document search 21 upgrading subscriber 8, 88, 272 LWWCM 287 creating 273 US 5015.2 16 syndication 4, 12, 272 user 125
322 Lotus Workplace Web Content Management and Content Manager Working Together User Defined Function 81 Web page 9 user interface Web page design 6, 9 LWWCM 7 Web page designer 4 user management 200 Web site users integrate Content Manager videos 267 default 240 IT JumpStart intranet 42 using LWWCM versioning 298 look and feel 4 UTF8 88, 92 retrieving complete page from 144 retrieving partial page from 144 Web site designer 49 V Web sites validation checklist 72 create and update 9 VERS 16 WebSphere Application Server version control 89 problem starting 66 LWWCM, enabling 289 verify installation 72 Version Library 7 WebSphere log files 64 Version Management WebSphere Member Manager 201 LWWCM module 7 WebSphere Portal Server 188 versioning 4, 11, 26, 293 WebSphere portal server 201 Content Manager 294, 302 wildcard search 21 enabling 298 Windows Client 22, 30 external resources 303 Windows Client tracing log file 64 federated, JSP components and connect tags WMM 201 304 word search 21 LWWCM 294 work node 26 LWWCM, using 298 workflow 4, 10–11, 26 using Content Manager 304 create 9 versions creating 48 restoring 300 workflow stage 11 Victorian Electronic Record Standard 16 WPS video integrating LWWCM 190 incorporating within a Web page 269 video component creating in LWWCM 268 X video links 269 XML 21 VideoCharger 16, 20, 27, 255 XMLContent installation 257–258 viewing data 113 integration with Content Manager 259 VideoCharger log files 65 VideoCharger player launch 265 videos import, search, and play 262 integrate to Web site 267
W WAV 20 wcm JSP tag 160 Web Content Management 16
Index 323
324 Lotus Workplace Web Content Management and Content Manager Working Together
Lotus Workplace Web Content Management and Content Manager Working Together
(0.5” spine) 0.475”<->0.875” 250 <-> 459 pages
Back cover ®
Lotus Workplace Web Content Management and Content Manager Working Together for LWWCM Java Edition V2 and CM V8 Only
Using CM as a In this IBM Redbook, we explore how we can put both IBM INTERNATIONAL repository for Lotus Workplace Web Content Management (LWWCM) V2.0 LWWCM Java Edition and IBM DB2 Content Manager (Content TECHNICAL Manager) V8 products at work together. SUPPORT Publishing CM We provide overviews of LWWCM and Content Manager ORGANIZATION content to LWWCM products, discuss why we might want to integrate both products and when to do so. Before you begin integration, we cover various areas that you Covering search, need to be familiar with and aware of. We provide verification BUILDING TECHNICAL security, checklists, hints and tips on system installation and INFORMATION BASED ON PRACTICAL EXPERIENCE VideoCharger configuration. integration, and To create an integrated LWWCM with Content Manager migration solution, we show you how you can use Content Manager as IBM Redbooks are developed by the data repository for LWWCM and how to publish existing the IBM International Technical Content Manager data to LWWCM using federated content Support Organization. Experts components, connect tags, and JSP components. from IBM, Customers and Partners from around the world With the basics of how to integrate, we address some of the create timely technical issues you need to consider when planning the system information based on realistic architecture for the integrated solution. scenarios. Specific Other topics included in this redbook are portal integration, recommendations are provided search, security, VideoCharger integration, syndication, data to help you implement IT solutions more effectively in migration, and versioning. your environment. This IBM Redbook is ideal for IT architects and specialists who will be working on the integration of LWWCM and Content Manager solution projects. For more information: ibm.com/redbooks
SG24-6368-00 ISBN 0738491381