摘要
把打包应用程序与J2EE应用程序集成是开发人员每天都要面对的挑战。本文概述了如何把Stellent Web Content Management (WCM)和BEA的WebLogic Platform 8.1相集成。作者假定读者熟悉内容管理系统的基本知识,并具备开发J2EE应用程序的经验。
本文概述了Stellent公开的集成层,讨论了不同的集成方法,并提供了这些可选方案的相对优缺点。虽然Stallent提供了很多类型的集成选项,但是将其作为BEA WebLogic Workshop 控件可得到另一种可选方案,这是一种更简单的集成方式。本文展示了如何开发基于外观模式的WebLogic Workshop 控件,对Stellent API的复杂性不予讨论。控件实现包括了一组封装了访问Stellent 服务(比如检查内容和执行搜索操作)所需的输入和输出参数的JavaBean 包装器对象。控件可以下载获得。
集成架构概述
Stellent的内容集成套件(Content Integration Suite ,CIS) 层是一个J2EE应用程序部署单元。CIS应用程序在对宿主域作适当的变化后可以部署在任何一个WebLogic域上(按照CIS安装指南)。套件包括了一个web应用程序,开发人员可以用它来查看和更新CIS的配置选项,也可查看和执行可用的服务如内容搜索。Stellent提供了一个综合性的API来调用这些服务,使程序可以对内容、工作流、元数据进行访问和操纵,并运行搜索来获得内容。
Stellent命令层架构由一组命令对象组成,由EJB驱动,EJB把各不相同的“命令”封装到内容服务器里。这些命令包括通用功能如搜索、检验、工作流批准等。每条命令都依赖于一个或多个Stellent服务调用。命令层基于J2EE命令设计模式,它由三层组成:
- Command Object,它使用 Command EJB
- Command Facade/Invoker
- 基于 EJB/JCA的Adapter
图1完整地描述了集成选项。
Command Facade/Invoker通过名称来定位和实例化命令。它执行给定的命令对象并基于命令属性处理命令执行(同步或异步)。Command Facade/Invoker可以被本地调用或远程调用,所以您不必把Stellent CIS部署在与请求应用程序服务器相同的系统上。Adapter Layer处理与内容服务器的通信,封装套接字通信逻辑(打开、验证和通过套接字流线化数据位),并实现JCA CCI(Command Client Interface,命令客户接口)。
集成选项
Stellent提供了灵活的和广泛的集成选项。每一个选项都有优点和缺点:
- 命令层集成
命令层集成基于使用Stellent CIS客户API来访问特定服务,如检查内容。但是,开发人员必须在传递参数和获得结果方面对Stellent API有所理解。
命令层集成提供了灵活性和扩展性最好的集成选项。但是它需要在项目启动阶段做更多工作。使用上文提到的控件可减少采用这种方法所需的投入。
- Content Portlet Suite ——兼容JSR 168
Stellent Content Portlet Suite 解决方案建立在CIS层的基础上,它允许访问Stellent Content Server,使用户可以更新、搜索和查看内容。可以基于用户在企业中的角色和权限对他们启用不同的portlet,并且可以为特定的用户定制portlet。用户可以基于其权限进行浏览或搜索内容,插入新内容(要有适当的访问权限),以及在整个工作流中查看内容进度。
Content Portlet Suite提供了一种容易的、开箱即用的集成解决方案方法。但是,这些portlet不像使用命令层集成那样能够定制。例如,构建能将元数据和文档内容结合起来的portlet就不容易。另外,这些portlet不支持高级功能(如预览内容)。
- 内容管理服务提供者接口(Content Management SPI) 的实现
WebLogic Portal提供了一个虚拟内容存储库(Virtual Content Repository,VCR) ,使用户能够插入多个异构的内容存储库。Stellent已经构建了一个集成方案,即Content Service Provider 实现——使Stellent WCM能够插入到VCR中。针对BEA的Stellent SPI集成建立在CIS层的基础上,并且只能跟BEA WebLogic Platform 8.1 Service Pack 2及以上版本兼容。






