IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Information Management  >

基于 IBM FileNet P8 4.5 平台上 Component Integrator 的原理和应用

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

张一帆, 软件工程师, IBM

2009 年 10 月 09 日

IBM FileNet P8 platform 为企业内容管理和工作流管理的应用级程序的开发提供了方便快捷的平台和工具,Component Integrator 作为 IBM FileNet Business Process Management 产品的一部分,在一定程度上实现了对整个 FileNet P8 平台功能的扩展。本文详细介绍了 Component Integrator 的架构、原理和用途,并且通过实例演示怎样创建,配置和使用 Component Integrator。

Component Integrator 介绍

Component Integrator 概述

CI(Component Integrator) 是 FileNet Business Process Management 组件提供的用来连接 Process Engine 和外部系统的服务。客户可以通过它将自定义的 Java 类库或者 Java 消息服务 (JMS, Java Message Services) 组件导入到一个工作流的定义中,同时,它还提供基本的 EIS (Enterprise Information System) 集成。

FileNet BPM component integration 包括以下四个要素:

  • Application Engine 的组件管理器(Component Manager)。
  • Application Engine 的组件适配器(Component adaptors)。
  • Process Engine 的组件队列(Component queues)。
  • CE_Operations :一个 BPM 自身提供的组件用于集成 Conent Engine 和 Process Engine 。

启动 Component Integration 主要可以帮助实现以下功能:

  • 轻松简单的扩展了商业功能,减轻了开发的工作量。
  • 系统自动处理业务流程。
  • 将外部的功能引入一个工作流。
  • 使用已经存在的 Java 对象和组件。
  • 与 JMS(Java Message Service) 的集成。

Component Integrator 架构


图 1. Component Integrator 的架构
图 1. Component Integrator 的架构

在后面我们的 Java 组件和 JMS 组件应用举例中,请对照上面的架构图以便更加清晰的了解每个部分的功能以及它们之间是如何协同作用的。

Component Integrator 配置工具

接下来介绍一下在上面的架构图中看到的 Component Integrator 的配置工具:

  • 流程配置工作台 (Process Configuration Console)
    • 创建组件队列;
    • 向队列中导入操作;
  • 流程设计器(Process Designer)
    • 向一个工作流定义中加入 Component 步骤元素。一个组件步骤工作流活动代表工作流中的一个活动,这个活动被分配给了一个组件队列中的一个或者多个操作。
  • 组件管理器 (Component Manager)
    • 轮询组件队列中的任务和响应事件触发。
    • 将工作派发到 Java 或者 JMS 组件服务适配器。
  • 流程任务管理器(Process Task Manager)
    • 启动,停止和管理组件管理器。
  • 以上全部工具都是作为典型的 Application Engine 安装的一部分随之一起自动安装的。

组件工作原理

下面介绍组件是如何工作的:

  • 一个组件相当于一个“任务执行者”,它不包含用户交互界面,通过 Component Integrator 自动地对工作流中的数据进行处理,并且执行任务单元 (work items) 上的自动化操作 (operations).
  • 如果一个工作项(work item)正在组件队列中等待处理,它会先向组件发送请求,组件收到请求后,会回应或者执行其他的外部操作。

图 2. Components 工作原理
图 2. Components 工作原理

组件类型

组件分为两类:Java 组件和 JMS 组件

Java 组件的功能由 JAR 文件提供,它是双向通信的,即数据可以由区域(isolated region)传送到组件中,区域也可以从组件中接受数据。要想使用 Java 组件,必须先配置 Java 组件适配器。

JMS 组件的功能是向特定的队列中发送消息,与 Java 组件不同的是,它是单向通信的,即数据只能从区域传送到 JMS 队列,而不能从 JMS 队列中接受数据。要想使用 JMS 组件,必须先配置 JMS 组件适配器。

Content Engine (CE) Operations

除了以上介绍的两种组件之外,IBM FileNet 还通过 Component Integrator 基础架构为用户提供了 CE operations 组件。它用于帮助对存储在对象库(object store)中的文件或者其他对象进行处理,比如将一个文件存入对象库中文件夹中,或者删除一个已经存在的文件,用模板发布一个文件,获取或更改一个文件或者文件夹的属性值。





回页首


将 Component Integrator 应用于工作流实例

这部分通过三个实例,分别介绍了如何将 CE_Operations,Java 组件,JMS 组件应用到工组流中,以及应用前的配置工作。

CE_Opetions 应用举例

在这个部分,将会用到“ CE_Operations Test Workflow ”工作流,这个工作流通过使用 CE_Operations 内置众多可用的操作 (operations) 中的一个操作实现了将 Content Engine 的对象库中的文档类型对象的属性 (Properties) 映射 (map to) 到工作流中数据域 (Data fields) 的功能。

1. 在 PE 服务器上的进程任务控制器 (Process Task Manager) 中 , 检查并确保 Process Engine 的服务器连接配置正确 , 启动进程服务 (Process Service); 在 AE 服务器上的进程任务控制器中启动组件管理器 (Component Manager),然后通过登录 Workplace 进入流程设计器中。


图 3. 在 PE 上的进程控制器中确认 Process Engi 那个 ne 配置
图 3. 在 PE 上的进程控制器中确认 Process Engi 那个 ne 配置

图 4. 在 AE 上的进程控制器中启动组件管理器
图 4. 在 AE 上的进程控制器中启动组件管理器

2. 进入流程设计器,以’ Check-out ’方式打开存储在 CE 对象库中的工作流定义“ CEOperations Test Workflow ”


图 5. CEOperations Test Workflow 工作流设计图
图 5. CEOperations Test Workflow 工作流设计图

3. 按照表 1 为组件步骤“获取订单详细信息”的添加操作“ getStringProperty ”。


表 1. 设置组件步骤属性
操作名称参数名称类型表达式
getStringPropertysourceDocument附件cruise_document
symbolicPropName字符串“ DocumentTitle ”
( 注意 : 没有空格 )
return_value字符串document_title

4. 验证,传输并启动工作流,并且为其指定一个订单文件作为附件。


图 6. 分配附件并启动工作流
图 6. 分配附件并启动工作流

5. 最后进入我的收件箱中检查结果 , 找到刚刚创建的工作项 , 查看它的 order_price 和 document_title 的值已经自动地被系统从文件属性中添加到工作流中。


图 7. 检验结果
图 7. 检验结果

Java 组件应用举例

在这个部分中 , 将会用到一个“ Verification Workflow ”。这个工作流定义了用户在付款之前,验证信用卡是否有效的阶段。它包含了一个叫做“ CC_Validate ”的组件步骤,这个步骤是通过使用 Java 组件实现的,最终会得到一个布尔类型的返回值来说明认证成功或者失败。

  1. 在处理配置工作台中新建一个叫做“ CC_Validate ”的组件队列,选择 Java 组件作为它的适配器。然后配置这个适配器,选择要导入的 JAR 文件“ CC_Validate.jar ”,并且选择文件中的 CC_Validate.class 类。最后在 JAAS 证书部分中输入用户名,密码以及配置环境(CELogin)。

图 8. 添加组件队列并配置组件适配器
图 8. 添加组件队列并配置组件适配器
  1. 为 CC_Validate 组件队列添加操作“ validaCC ”,并且建议将参数名称改为一个具有实际意义的名字。最后保存更改。

图 9. 为组件添加操作
图 9. 为组件添加操作
  1. 打开 Application Engine 的流程任务管理器,在组件管理器中选择相应的区域,将“ CC_Validte.jar ”文件添加到要求的库中,之后启动服务。

图 10. 添加要求的库
图 10. 添加要求的库
  1. 进入流程设计器,打开 Verification Workflow, 为组件步骤选择操作。

图 11. Verification Workflow
图 11. Verification Workflow

图 12. 添加操作
图 12. 添加操作
  1. 最后验证,传输并启动这个工作流。在启动之前,为了能在组件队列中看到当前的任务状态,可以先停止组件管理器中的 CC_Validate 组件。启动工作流后首先进入第一个步骤,填写信用卡类型和卡号等信息,如果填写无误,工作项将进入组建步骤,并自动执行,通过流程跟踪器(Process Tracker),可以看到 CC_Validate 组件队列这个步骤已经更新为完成状态,并且验证成功,工作项进入了下一个步骤。

图 13. 验证成功
图 13. 验证成功

JMS 应用举例

在这个部分中,将会用到一个“ Reservation Workflow ”。这个工作流实现了客户订单的预定阶段,它包含一个叫做“ Print Letter ”的组件步骤,这个步骤通过使用 JMS 组件实现了打印客户预订信息的功能。

  1. 首先进入 WebLogic 控制台,分别新建 JMS 连接工厂和 JMS 队列,并记录下它们的名字:

表 2. JMS 连接工厂和队列
JMS Connection Factory JNDI MagellanConnectionFactory
JMS queue JNDI PrintQueue

  1. 通过发送并接受 JMS 消息来验证 JMS 队列是否连接成功。例如通过 QueueSend 发送“ Hello World! ”,然后通过“ QueueReceive ”接收到了“ Hello World! ”,说明配置成功。

图 14. 发送接受 JMS 消息
图 14. 发送接受 JMS 消息
  1. 在处理配置工作台中新建一个叫做“ Print_Operations ”的组件队列,选择 JMS 组件作为它的适配器。然后配置这个适配器,输入在第一步中记录下来的两个 JNDI 名字。最后在 JAAS 证书部分中输入用户名,密码以及配置环境(CELogin)。

图 15. 新建并配置 JMS 组件
图 15. 新建并配置 JMS 组件
  1. 为建好的 JMS 组件添加操作,

图 16. 为 JMS 组件添加操作
图 16. 为 JMS 组件添加操作
  1. 打开 Application Engine 的流程任务管理器,在组件管理器中选择相应的区域,在高级选项中输入 JNDI 初始环境工厂:weblogic.jndi.WLInitialContextFactory,然后将“ weblogic.jar ”文件添加到要求的库中,最后启动服务。

图 17. 配置组件管理器
图 17. 配置组件管理器
  1. 完成全部配置工作后,进入流程设计器,打开 Reservation Workflow 并使用 JMS 组件队列,

图 18. Reservation Workflow
图 18. Reservation Workflow

图 19. 添加操作
图 19. 添加操作
  1. 验证,传输并启动这个工作流。当工作项到 check availability step 时,到我的收件箱中输入要求的信息完成这个步骤,之后工作项进入到 Print_Operations 组件队列,并有系统自动执行,可以通过流程跟踪器来查看工作流的历史纪录,发现任务已经在下一个步骤。最后,通过第二步中的 QueueRecieve 小程序来验证当前工作流已经发出了消息。

图 20. 打印成功
图 20. 打印成功

图 21. 接收消息
图 21. 接收消息


参考资料

学习

获得产品和技术

讨论


关于作者

张一帆,IBM FileNet BPM QA 组软件工程师,主要从事 FileNet BPM 相关产品的安装、配置以及功能测试工作。




对本文的评价








IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款