|
Lei Zhao
软件工程师, IBM Corporation
2004 年 12 月 06 日
结合 IBM Workplace Web Content Management 与 DB2 Content Manager 作为企业 Web 内容管理解决方案。本文强调了集成两个系统所面临的任务,并通过例子说明如何结合使用这两个系统。
内容管理在商业中越来越重要。对于在按需服务环境中竞争的企业而言,能够快速有效地管理和提供内容是成功的关键。随着越来越多的信息在 Internet 和公司内部网上提供,Web 内容在企业中发挥着越来越重要的作用。Web 内容的生命周期管理包括创建、发布、存储、搜索/检索、访问控制和内容集成。本文所述的 IBM 内容管理产品综合解决方案 —— IBM Workplace Web Content Management 和 DB2 Content Manager —— 能够满足企业 Web 内容管理的需求。
IBM Workplace Web Content Management 是 IBM Workplace 产品家族的重要组成部分,可以从最初的创建到最终的 Web 表示,全过程地帮助您管理公司内容。它为 Web 站点提供了一套成熟的内容管理系统,可供非技术和技术用户使用。本文示范了如何结合 Workplace Web Content Management 和 DB2 Content Manager 来提供统一的企业 Web 内容管理系统。该系统包括两大部分:在 DB2 Content Manager 中存储 Workplace Web Content Management 数据,通过 Workplace Web Content Management 中的 Content Manager 发布本机内容和元数据。本文假设您熟悉 Workplace Web Content Management 和 DB2 Content Manager。
默认情况下,Web 内容管理环境在文件系统中存储数据文件。与文件系统不同,DB2 Content Manager 使用强大的关系数据库在单独内容条目的层次上提供索引检索、安全性和小粒度的访问控制。因此,可以扩展 Workplace Web Content Management 的功能,以包含 DB2 Content Manager 的一些开箱即用功能,例如:
- 全部企业内容都使用一个资料库。
- 可缩放的企业内容资料库。
- 使用 Resource Manager 复制实现错误恢复。
- 丰富的数据模式。
- 强大而开放的 API。
通过从 Workplace Web Content Management 中的 DB2 Content Manager 发布本机内容和元数据,用户就可以用一个窗口来检索各种类型的企业 Web 内容,从而提升了对这两种产品投资的回报。
本文对 IBM Workplace Web Content Management 和 DB2 Content Manager 的集成做一简要介绍。重点是两个系统的配置,并通过一个例子说明 Workplace Web Content Management 和 DB2 Content Manager 的结合用法。关于集成两个系统的详细信息,请参阅 IBM Redbook 红皮书“Lotus Workplace Web Content Management and Content Manager Working Together for LWWCM Java Edition V2 and CM V8 Only”。
IBM 内容管理产品
IBM Workplace Web Content Management 是一种基于 Web 的、多用户编辑环境工具,可以从最初的创建到最终的 Web 表示,帮助客户快速有效地创建动态 Web 站点。Workplace Web Content Management 为所有用户提供了一个成熟的网站内容管理系统。
DB2 Content Manager 是一种具有工业强度的内容管理系统,用于捕获、处理和存储从纸质转化而来的大量信息,也可用于丰富媒介管理。最近的版本中,Content Manager 已经成为一种具有高度伸缩性的资料库,基本上能用于所有类型的数字内容,包括基于 HTML 和 XML 的 Web 内容、文档图片、电子办公文档和多媒体,如数字视频和音频。
存储在 DB2 Content Manager 中的 Workplace Web Content Management 内容有两种对象。一种是非二进制对象(如站点、内容、组件,等等),这类对象只有 AJPEData 项;另一种是二进制对象(包括文件组件和图片组件),这类对象有 AJPEResources 项和 RM 对象。关于这些项类型的详细讨论不在本文范围之内,但是您应该知道数据是如何存储的。
关于 Workplace Web Content Management 和 DB2 Content Manager 的概念和特性的更多信息,请参阅 developerWorks 文章“IBM LWWCM concepts and features with IBM DB2 CM as a repository”。
配置
假设已经安装了 Workplace Web Content Management 和 DB2 Content Manager,环境设置的第一步就是在安装 Workplace Web Content Management 的 WebSphere Application Server 上安装 DB2 Information Integrator for Content(以前称为 DB2 Enterprise Information Portal)。DB2 Information Integrator for Content 提供了集成 Workplace Web Content Management 和 DB2 Content Manager 所需要的连接程序。这些连接程序允许两个服务器互相通信。关于 DB2 Information Integrator for Content 的更多信息,请参阅其 产品页面。
如果没有安装 Workplace Web Content Management 或 DB2 Content Manager,那么请参阅相关的 InfoCenter。
在安装 DB2 Information Integrator for Content 的过程中,有一些步骤需要注意。在 Select Machine Type 面板中,请选择 EIP development workstation 选项。
图 1. Select Machine Type 面板
在 Component Selection 面板中,请选择 Local connectors(本地连接程序)、Connector toolkit(连接程序工具箱)和 samples(示例)选项。然后选择 Content Manager V8 connector 子组件。
图 2. Component Select 面板
在 Configure Content Manager v8 Server Connection 面板中,定义连接到 DB2 Content Manager 服务器所需要的信息。当管理员定义和连接到 DB2 Content Manager 服务器时,DB2 Information Integrator for Content 使用这个窗口中定义的值连接服务器。默认情况下,DB2 Information Integrator for Content 将该窗口中的信息复制到配置文件 cmbicmsrvs.ini 和 cmbicmenv.ini 中,这两个文件在 C:\Program Files\IBM\Cmgmt 目录下。
在该安装面板中输入下列值:
- 数据库名:输入 DB2 Content Manager Version 8 数据库名,如果对该数据库进行了编目,可以在该字段中输入数据库的别名。
- 模式名:输入在安装数据库时为 DB2 Content Manager Version 8 数据库指定的模式名。
- 身份验证类型:如果保留默认设置 Server,则 DB2 Content Manager Version 8 数据库用户 ID 和口令就被发送到 DB2 Content Manager 服务器以供验证。如果选择 Client,则 DB2 不执行验证,输入的用户 ID 被记录到系统中并连接到 DB2 Content Manager Library Server,由它来管理 DB2 Content Manager 数据。登录到客户机工作站时,必须输入具有 DB2 连接特权的用户 ID。
- 数据库连接 ID:输入的用户 ID 和口令在安装 Content Manager Library Server 数据库时被定义为数据库连接 ID。
图 3. Configure Content Manager v8 Server Connection 面板
下一步是为 Java 虚拟机更新 WebSphere Application Server 类路径设置。
- 作为管理员登录到 WebSphere Application Server Administrative Console。
- 依次选择 Servers - Application Servers - server1 - Process Definition - Java Virtual Machine。
- 在 Classpaths 部分添加以下内容。以下内容假设安装目录 CMBROOT 位于系统的根目录下,根据实际情况修改类路径。
C:\Program Files\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
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:\Progra~1\SQLLIB\JAVA\DB2JAVA.ZIP
|
- 单击 Apply 按钮,保存到 Master Configuration。
然后修改 Workplace Web Content Management 配置文件(connect.cfg)和属性文件(aptrixjpe.properties),这两个文件位于 Workplace Web Content Management 服务器的 config 目录下。system 目录及其子目录(indexes、cache 和 holding)位于 iLotus Workplace Web Content Management 目录中。
在 aptrixjpe.properties 文件中添加以下值:
#persistencies supported are FileSystem, JDBC, and CM
manager.persistence=CM
resource.persistence=CM
# CM persistency settings
# CM Server information
cm.server=[CM_SERVER_NAME]
cm.username=[CM_USER_NAME]
cm.password=[CM_PASSWORD]
cm.versionControl=true/false
cm.jpeserverIdentifier=[CM_ILotus Workplace Web Content Management_SERVER_ID]
|
其中:
- [CM_SERVER_NAME] = DB2 Content Manager 服务器名,比如我们的服务器名为 ICMNLSDB。
- [CM_USER_NAME] = 默认的 DB2 Content Manager 管理用户,如 icmadmin。
- [CM_PASSWORD] = 管理用户口令。
- [CM_ILotus Workplace Web Content Management_SERVER_ID] = Workplace Web Content Management 应用程序服务器名(WebSphere Application Server)。
- 参数 cm.versionControl 是可选的。如果设为 True 可以使用 DB2 Content Manager 的版本控制特性。
如果需要,还可以设置其他 Workplace Web Content Management 属性。关于属性的详细列表,请参阅 IBM Workplace Web Content Mnagement InfoCenter。
在 connect.cfg 文件的 <DataProviders> 部分增加以下内容:
<CM value="com.presence.connect.business.template.provider.CM8DataProvider"/>
从 Workplace Web Content Management 服务器中删除已有的索引。索引文件在 iLotus Workplace Web Content Management\system\indexes 目录下。启动 WebSphere Application Server 和 Workplace Web Content Management,然后运行 AJPEGUI 模块创建 Workplace Web Content Management 用户界面并将它保存在 DB2 Content Manager 中。从 Web 浏览器中打开:
http://<HOST>:<PORT>/<CONTEXT_ROOT>/connect/?MOD=AJPEGUI
如果需要,可以配置 Workplace Web Content Management Syndication,将所有 Workplace Web Content Management 数据从原有的 Web 内容管理服务器复制到新的 Web 内容管理服务器(DB2 Content Manager)中。
在 Workplace Web Content Management 中发布 DB2 Content Manager 内容
这一节将简要说明如何动态检索 DB2 Content Manager 服务器中存储的内容,以及如何将这些内容显示在 Workplace Web Content Management 中。这个例子中,我们创建一个简单的警局网站,发布与犯罪有关的信息。有不同的文件类型,如嫌疑犯照片、犯罪现场的照片、录像,等等。这些文件保存在 DB2 Content Manager 服务器上。这个例子中,Workplace Web Content Management 可以动态提取相关文件来显示。
要检索内容用于显示,需要从 DB2 Content Manager 中搜索。DB2 Content Manager 8.2 支持一种强大的基于 XML 的查询语言。为了示范 CM Searching 功能的主要特性,我们举两个例子。
是用静态查询表达式
第一个例子是用静态查询表达式。虽然从 DB2 Content Manager 提取的内容是动态生成的,但查询表达式是在开发人员创建 Connect 标签时确定的。图 4 显示了 Workplace Web Content Management 中的 Connect 标签。
图 4. Connect 标签
该例中,将检索 IDNumber 从 650012 开始、年龄在 10 到 18 岁之间的所有罪犯。
SEARCH='/Criminal[@IDNumber like "650012%" AND (@age between 10 and 18)]'
该检索表达式在创建 HTML 组件时就已确定。必须考虑对应页面设计的进程连接程序的选择。
我们使用 CriminalTemplate.html 文件来显示 DB2 数据,该文件在目录 C:\IBM\WebSphere\AppServer\installedApps\Lotus Workplace Web Content Management\iLotus Workplace Web Content Management111_war.ear\iLotus Workplace Web Content Management.war 中。
下面是 CriminalTemplate.html 文件的代码片断,它将构建一个表来显示 DB2 数据:
<TABLE width=600 border="1">
<RESULTSET>
<TR>
<th width="15%">Name </td>
<th width="15%">Gender </td>
<th width="15%">age </td>
<th width="15%">case type </td>
<th width="30%">Characteristic</td>
<th width="10%">photo</td>
</TR>
<LOOP>
<TR>
<TD><FIELD NAME="Name"></td>
<TD><FIELD NAME="Gender "> </td>
<TD><FIELD NAME="age"> </td>
<TD><FIELD NAME="CaseType"> </td>
<TD><FIELD NAME="Characteristic"> </td>
<TD><A HREF="<FIELD NAME=Part>" TARGET="_blank">view</A> </TD>
</TR>
</LOOP>
</RESULTSET>
</TABLE >
|
<FIELD NAME=Part> 标签引用了导入该案件的文档,结果如下所示:
图 5. 静态查询结果
如果单击表格图片栏中的查看链接,可以打开或下载文档。
使用动态查询表达式
另一种更加强大的功能是动态查询表达式。开发人员创建 Connect 标签时可以给查询表达式传递一个 Aptrix 组件标签。
SEARCH='/Case[@CaseID="<AptrixCmpnt context="current" key="caseID" type="content"/>
运行时执行该查询时,实际的查询表达式是根据传递的参数来生成的,比如当前内容的组件值、当前站点区域,等等。
图 6. Connect 标签
在该例中,搜索表达式随着不同的内容而改变。页面显示与当前案件有关的所有照片。属性名和条目类型名称都是区分大小写的。这些表达式也支持通用操作符(如 like、between、AND、or 等)。关于 Content Manager 查询表达式的更多信息,请参阅 Content Manager Application Programming Guide。
结束语
我们希望本文能够帮助您了解 Workplace Web Content Management 和 DB2 Content Manager 的集成。它可以帮助您配置这种集成解决方案,在 Workplace Web Content Management 网页中发布 DB2 Content Manager 的原始内容。关于集成 Workplace Web Content Management 和 DB2 Content Manager 的更多信息,请参阅“参考资料”一节。
关于作者
Lei Zhao 是 IBM 中国软件开发中心上海全球化实验室 (SGL) 的一名软件工程师。他于 2004 年 2 月加入 IBM,并作为测试人员和开发人员参与了全球化和集成解决方案项目。他对 Web 服务、Lotus 产品和全球化解决方案抱有浓厚的兴趣。 |