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

developerWorks 中国  >  WebSphere  >

WebSphere Business Integration Modeler 和 WebSphere Studio Application Developer Integration Edition 的集成技术清单

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

样例代码


级别: 初级

Thomas Kasemir (kasemir@de.ibm.com), Lab-Services 团队负责人, WebSphere 解决方案中心,IBM 德国

2005 年 4 月 01 日

此“清单”描述了使用 WebSphere Business Integration Modeler 5.1 和 IBM WebSphere Studio Application Developer Integration Edition 5.1 的集成场景。您可以使用该清单了解和演示这些产品的集成性能。

引言

IBM® WebSphere® Business Integration Modeler 5.1(以下简称为 Modeler)和 IBM WebSphere Studio Application Developer Integration Edition 5.1(以下简称为 Application Developer)的集成技术对每一个使用 IBM 的 Business Integration 软件的用户来说都是非常重要的。Modeler 使业务分析员能够设计、模拟、优化公司的流程并将其归档。Application Developer 就是用于实现和维护这些流程的 IT 部门工具。将 Modeler 和 Application Developer 集成是将业务分析和 IT 系统集成的关键。

我们的实例是一个来自银行客户的实际流程,它实现了一个资金订单流程。该流程检查订单的详细信息的有效性,然后决定是否需要经理的批准。依赖于这些确认和批准的结果,该流程将订单传递到错误队列中,创建工作条款用于经理的批准,向客户发送拒绝邮件,或者——如果一切都已通过—— 就执行该订单。

该清单包括三个章节:

  • 第 1 章:对 Modeler 中的流程进行建模——使用 Modeler 创建实例流程,然后添加数据对象、判决条件和资源。
  • 第 2 章:最后确定 Application Developer 中流程的实现——以 BPEL 的格式解释了输出到 Application Developer 的程序。
  • 第 3 章:部署和测试流程——展示了流程的技术实现,包括现有服务的复用和新的服务实现的创建。

您应当对这两种解决方案的用法以及 Eclipse 开发环境的使用具有基本的技能和了解。





回页首


支持的资料

在该清单的下载部分中,您将找到支持的资料和下面列出的文件,您将需要在实践中执行这些步骤。

WTC04——WBI Modeler 和 BPC.ppt——这种表示方法,“集成 IBM WBI Modeler 5.1 和 WebSphere Studio Application Developer Integration Edition 5.1,”给您 Modeler 5.1 的概述,详细地描述了包括 BPEL4WS 输出在内的外部集成技术,并且给您概要地介绍了第一个最佳的实例。

WorkspaceA.zip、WorkspaceB.zip、WorkspaceC.zip——在执行该清单中的操作步骤的同时,您将会找到第 1 章和第 2 章里的检查点。对每一个检查点来说,都存在一个工作区,您可以使用该工作区跳过某章,或者继续进行新的环境。您也可以使用最后一个检查点来显示整个集成场景。

FundsOrderData.xsd、FundsOrderEAR.ear——这些文件包含了用于资金订购数据对象的 XML schema 定义以及 EJB 项目,该项目实现实例流程中的某一服务。





回页首


第 1 章:对 Modeler 中的流程进行建模

第 1 部分:准备 Modeler 里的流程环境

  1. 使用空工作区启动 Modeler。如果您正使用 Modeler 插件,那么请启动 Application Developer,然后打开 Business Modeling 视图。如果您想略过该流程建模操作,那么可以打开工作区 WorkspaceA,然后从第 2 章继续。如果您想要首先查看完整的样例,那么启动 WorkspaceC,然后从第 3 章继续。下载部分描述了如何导入工作区(请见 .zip 文件中的 How-to_import_workspaces.txt)。
  2. 切换到 4 个窗格的布局视图,单击工具栏上的 Apply 4-pane layout
  3. 切换到 BPEL 模式。这种模式使得 Modeler 中的所有元素必须与 BPEL 兼容,并且使得用于 BPEL 输出的模型有效。
  4. Project Tree 中单击右键,创建新的 Business Modeling Project
  5. 将项目命名为 FundsOrderModel 、流程目录命名为 bankProcesses 以及流程命名为 FundsOrderProcess
  6. Business items 上单击右键,然后重新命名文件夹 bankDO。然后在 bankDO 上单击右键,创建新的 Business Item
  7. 命名该业务项目为 FundsOrderData,然后单击 Finish
  8. 现在添加属性,如图 1 所示,保存 Business Item
  9. 为以后的人员交互创建组织。在 Project Tree 里的 Organization 上单击右键,然后创建新的 Organization Unit。命名新组织为 Manager,然后将其保存。

    在此样例中,无需更多的数据定义。在具有实际的环境中,通常需要定义更多的资源、业务项目和组织。


图 1:业务项目 FundsOrderData 的详细资料
图 1:业务项目 FundsOrderData 的详细资料

第 2 部分: 流程建模

  1. 现在开始流程建模。关闭已经创建的业务项目和资源,然后从 Project Tree 打开 FundsOrderProcess 模型。
  2. 删除编辑器面板上的 startend node,因为将要为该流程明确地定义输入和输出标准(数据结构)。
  3. 首先添加所有的 Local TaskDecisionMergeMap 元素。重新命名它们,如图 3 至 5 所示,但是现在不要连接这些元素。忽略出现的警告和错误,它们将在以后的操作中得到解决。
  4. 为本地任务添加输入和输出标准。选择第一个任务,Verify Funds Order,然后转到 Attributes View 中的 Input 标签。
  5. 添加一个称为 VerfiyRequest 的输入标准。设置 Associated data 为复合类型 FundsOrderData
  6. 重复步骤 4 和 5,并为所有的任务设置输入和输出标准,如表 1 所示。将复合类型 FundsOrderData 用于所有任务的输入标准,将简单类型 Boolean 用于所有任务的输出标准。

表 1:本地任务的输入和输出标准

本地任务 输入标准(类型) 输出标准(类型)
检验资金订单VerifyRequestVerifyResponse
经理批准ApprovalRequestApprovalResponse
转向错误队列ForwardRequestForwardResponse
发送拒绝邮件RejectionRequestRejectionResponse
执行订单ExecuteRequestExecuteResponse

  1. 连接这些元素,如图 3 至 5 所示。当将其中的一个本地任务连接到另一个元素时,要确保如图 2 所示使用现有的输入和输出连接。只需为映射(Map)判决(Decision)合并(Merge)元素创建新的输入和输出连接。
    图 2:使用现有的输入和输出连接
    图 2:使用现有的输入和输出连接
  2. 最后,保存该流程模型。

图 3:整个流程模型的第一部分
图 3:整个流程模型的第一部分

图 4:整个流程模型的第二部分
图 4:整个流程模型的第二部分

图 5:整个流程模型的最后一部分
图 5:整个流程模型的最后一部分

第 3 部分:向该流程模型中添加判决条件

  1. 将操作模式改为 Intermediate。在编辑判决元素的条件表达式时,该操作是必须的。
  2. 为判决元素添加条件。单击第一个判决元素 Order valid?
  3. 转到 Attributes View 里的标签 Output branches,然后选择 Yes 输出分支。
  4. Attributes View 中向下浏览,直到您看到 Decision Branch Condition 部分。
  5. 单击 Edit expression,然后输入该条件,如图 6 所示。
    图 6:用于判决元素 Order valid?的判决条件
    图 6:用于判决元素 Order valid?的判决条件
  6. 重复这些步骤,为其他判决元素添加条件,并且应用这些条件,如表 2 所示。

表 2:用于本地任务的输入和输出标准

判决元素 条件
Order Valid?'Processes.FundsOrderProcess.Order valid?.Input' 相当于条件为真
Approval?'Processes.FundsOrderProcess.Approval?.Input:2.amount' 大于 10.0
Approved?'Processes.FundsOrderProcess.Approved?.Input' 相当于条件为真

  1. 将操作模式更改为 Basic,然后保存该流程。

第 4 部分:向该流程模型中添加资源定义

  1. 为任务经理批准添加资源定义(实现此任务所需的人)。单击 Local Task Manager approval
  2. 转到 Attributes View 里的 Resources 标签,并且浏览到 Individual resource requirements 部分。
  3. 单击Add,然后将资源的需求重新命名为 ManagerGroup
  4. Individual resource 设置为 Staff
  5. 输入 Resource Selection Criteria,如图 7 所示。
  6. 保存该流程模型。

图 7:用于本地任务经理批准的资源选择标准
图 7:用于本地任务经理批准的资源选择标准




回页首


第 2 章:最后完成 Application Developer 中的流程实现

第 5 部分:输出流程

  1. 保存所有未决的改动,然后从 File 菜单中选择 Export
  2. 从列表中选择 WebSphere Business Integration Modeler Export,然后单击 Next。如果您想略过导入该流程和集成现有的服务实现的操作,那么可以打开工作区 WorkspaceB,从第 2 章第 10 部分继续。下载部分解释了如何导入这些工作区(请见 .zip 文件中的 How-to_import_workspaces.txt)。
  3. 从列表中选择 BPEL export,然后单击 Next
  4. 选择目标目录和项目 FundsOrderModel 以输出整个项目。单击 Next
  5. 选择将该流程作为带有接受/应答行为的 Long-running process 输出,然后单击 Finish。这样的操作应该不会出现错误或者警告信息。

    当您正在使用 Modeler 插件用于 Application Developer 时,可以将模型直接输出到同一工作区中的新的服务项目(Service Project)中去。如果您的工作区位于 C:\MyWorkspace\,并且新的 Service Project 名为 FundsOrderService,那么就可以将自己的模型输出到 C:\MyWorkspace\FundsOrderService 中。然后切换到 Business Integration 视图,并刷新该视图。

  6. 关闭 Modeler,然后使用新的工作区启动 Application Developer。当您正在使用 Modeler 插件时,请切换到 Business Integration 视图。右键单击 Project Tree,然后创建一个新的 Service Project
  7. 将该项目命名为 FundsOrderService,然后单击 Finish
  8. 右键单击 Tree 里的 FundsOrderService 项目,然后选择 Import
  9. 从列表中选择 File System,然后单击 Next。在用于 Modeler 输出之前,请选择您使用的文件夹。
  10. 选择所有目录,然后核查指向您的 FundsOrderService 项目的 Into 文件夹。单击 Finish

第 6 部分:研究导入的流程

  1. 在导入操作结束后应该不会出现错误或者警告信息。扩展 Project Tree,然后研究该流程结构 。
  2. 删除 RootOrganizationModel.xsdRootResourceModel.xsd,因为以后将不再使用这些文件和数据包。
  3. 打开流程 FundsOrderProcess,然后研究该 BPEL 流程。
  4. 该输出功能为此流程中的所有服务创建了 Partner Links 和 Service 接口。该行为与操作及已创建的输入/输出变量相关联。在必要的地方也添加了分配(Assign)行为。判决元素的条件已经被映射到链接的条件中,在经过如下行为之后:Order valid?、Approval?和 Approved?。
  5. 用于任务 Manager approval 的资源设置已经被映射到 Staff 行为中,并且用于 Potential Owner 的动词已经被设置为表达式 Group Members,如图 8 所示。 为了今后的测试,将 Group Name 更改为 Manager,并且确保在您的本地用户注册处中名为 Manager 的小组至少要有一个分配给它的用户。
    图 8:用于 Staff 行为 Manager approval 的 Staff 设置
    图 8:用于 Staff 行为 Manager approval 的 Staff 设置
  6. 在此样例中,无需实现映射行为。只需要做一点改动。将 Approval? 行为置于流程中,如图 9 所示。
    图 9:Approval? 行为和输出链接
    图 9:Approval? 行为和输出链接
  7. 修改这些链接上的条件,因为它们使用还未实现的映射行为的输出。选择 Approval? 行为和 Manager approval 行为之间的链接。
  8. 转到 condition 标签,删除现有的表达式,然后使用 Visual Expression 编辑器输入以下表达式 。

    InputCriteriaVariable.InputPart.amount > 10

  9. 选择 Approval? 行为和 Merge Input Criteria:2 行为之间的链接。
  10. 转到 condition 标签,删除现有的表达式,然后为该条件选择 Otherwise

第 7 部分:导入现有的 EJB 项目

  1. 将现有的 EJB 项目导入到您的工作区中,然后使用您的业务流程中现有的 EJB 服务。从菜单中选择 Import,然后选择 EAR file
  2. 导航到文件 FundsOrderEAR.ear,它是您使用清单下载的文件,然后单击 Finish
  3. 切换到 J2EE Hierarchy,然后检查这个新的 EJB 项目,它使用远程接口中的方法 verifyFundsOrder 包含了一个名为 VerifyOrderPT 的会话 bean。此方法将在我们的业务流程中作为服务使用。
  4. 在我们的服务项目中为此 EJB 创建服务接口。切换到 Services 视图。在 FundsOrderService 项目上单击右键,选择 New,然后再选择 Service built from
  5. 为现有的会话 bean 选择创建服务。选择 EJB,然后单击 Next
  6. 选择 VerifyOrderPT bean,然后选择方法 verifyFundsOrder。单击 Next
  7. 将数据包的名称更改为 bankProcesses.ejb,然后默认其他的缺省值。单击 Finish,然后接受对 Java 创建路径的更改。
  8. 检查已经生成的 WSDL 文件,然后查看这些操作和消息是否与 EJB 方法匹配。请注意到输入消息中包含了复合类型 FundsOrderData。

第 8 部分:使用流程中现有的服务

  1. 使用此服务接口将行为 Verify Funds Order 链接到业务流程中。打开 FundsOrderProcess,然后在右边选择 Partner Link VerifyFundsOrderPartner,如图 10 所示。
    图 10:选择 Partner Link VerifyFundsOrderPartner
    图 10:选择 Partner Link VerifyFundsOrderPartner
  2. 转到 Implementation 标签,然后单击 Edit 来更改 Partner Link 的设置,如图 11 所示。
    图11:编辑 Partner Link Type VerifyFundsOrderPartnerLink
    图11:编辑 Partner Link Type VerifyFundsOrderPartnerLink
  3. 更改 Port Type File,使之指向数据包 bankProcesses.ejb 中的文件 VerifyOrderPT.wsdl,该数据包在前面部分中已经生成。
  4. 在 BPEL 编辑器中,选择 Verify Funds Order 行为,然后转到 Implementation 标签。
  5. 从列表中选择操作 verifyFundsOrder
  6. 为称为 VerifyFundsOrderRequestVerifyFundsOrderResponse 的请求和响应消息创建新的变量。
  7. 删除变量 VerifyFundsOrderOutputCriteriaVariable,然后保存该流程。其余的错误将在下一步操作中得到解决。

第 9 部分:向您的流程中添加转换器服务

  1. 将流程输入消息映射到第一个行为 Verify Funds Order 的输入消息中。在第一个调用行为之前插入转换(Transform)行为。
  2. Implementation 标签中,将变量 InputCriteriaVariableVerifyFundsOrderRequest 分别作为输入和输出进行分配。
  3. 单击 New 以创建新的转换器服务。
  4. Partner Link 的名称更改为 TransformPartner,并将命名空间改为 http://FundsOrderProcess.bankProcesses。单击 OK
  5. 将输入消息的所有部分都映射到输出消息的相应部分中,然后保存转换器服务。
  6. Verify Funds Order 行为之后调整条件,使之能够与该行为的新的输出变量一起运作。选择 Order valid? 行为和 Map1 Java 片断之间的链接。
  7. 使用 Visual Expression 编辑器将条件更改为 VerifyFundsOrderResponse.result == true
  8. 选择 Order valid? 行为和 Map2 Java 片断之间的链接,然后将条件设置为 Otherwise
  9. 保存该流程。

第 10 部分:创建新的服务实现

  1. 使用 Application Developer 的向导来创建新的 EJB,它们实现了定义在由 Modeler 产生的接口中的服务。如果您想略过创建服务实现这步操作,那么可以打开工作区,WorkspaceC,然后从第 3 章继续。

    Services 视图中,扩展 FundsOderProcessInterface.wsdlPort Types

  2. 右键单击第一个 Port Type ExecuteOrderPT,然后启动向导 Build from Service
  3. 选择创建 EJB Service Skeleton,然后单击 Next 两次以接受默认的设置。
  4. 选择 WSDL 文件 FundsOrderProcessInterface.wsdl 以包含对于您的新服务的接口描述,然后选择 Port type ExecuteOrderPT。接受其他所有缺省设置,然后单击 Next
  5. 选择 FundsOrderEJB 项目,然后单击 Finish
  6. 回到 J2EE 视图,扩展 EJB Modules 文件夹以查看创建的 EJB。打开 ExecuteOrderPTBean
  7. 查找方法 sendExecuteOrder_InputCriteria,然后添加代码声明,如图 12 所示。保存并关闭 Java 编辑器。
    图 12:向生成的 EJB 框架中添加用户代码
    图 12:向生成的 EJB 框架中添加用户代码
  8. 为 Port Types ForwardtoerrorqueuePTSendRejectionMailPT 重复步骤 7 。这些 EJB 的方法应该返回布尔值假。保存您所做的改动。
  9. 在创建完所有的三个 EJB 后,将生成用于这些 EJB 的部署代码。在 J2EE 视图中,右键单击 FundsOrderEJB 项目,然后选择 Deployment and RMIC Code...
  10. 在下一屏的视图中,单击 Select All,然后点击 Finish




回页首


第 3 章:部署并测试该流程

第 11 部分:生成部署代码并创建测试服务器

  1. 为您的业务流程创建部署代码。转到 Services 视图,右键单击 FundsOrderProcess,然后选择 Generate Deploy Code
  2. 由于该流程是长期运行的流程,并且使用请求/响应接口,所以只能生成 JMS 绑定。在 Referenced Partners 部分中,为流程中的 Partners 设置服务端点。为每个 Partner 选择 xxxEJBService.wsdl,然后点击 Finish,如图 13 所示。
    图 13:为您的流程的 Partner Links 设置 Referenced Partners
    图 13:为您的流程的 Partner Links 设置 Referenced Partners
  3. Process Settings 部分中,接受缺省值以使用 Staff Plugin Provider 配置,它将在以后创建。请确保您的系统中存在名为 Manager 的组,并且至少有一个用户是该组的成员。

    如果您不想配置 Staff Plugin Provider 和为您的测试服务器启用安全性,请选择 Process Settings 中的 bpe/staff/everybodyconfiguration,将其作为 Staff Plugin Provider。现在任意未经验证的用户都可以声明每一个工作项目,用户可以使用该配置略过第 12 部分,用户也不必拥有 Manager 组。

  4. 创建服务器和服务器配置来测试用户的业务流程。转到屏幕底部的 Servers 视图,在空的清单中单击右键,创建一个新的服务器配置。
  5. 输入名称 TestServer,然后核查是否选中 Integration Test Environment。单击 Finish
  6. 在新的服务器上单击右键,然后选择 Add and remove projects。选择所有的项目,单击 Finish
  7. 在该服务器上再次单击右键,然后选择 Publish
  8. 在服务器 TestServer 上单击右键,然后选择 Create tables and data sources 来为长期运行的流程创建表格。

第 12 部分:准备 Staff-Plugin Provider 并配置安全性

  1. 双击服务器 TestServer,打开服务器配置。转到 Staff 标签,一直浏览到 Server Settings部分。
  2. 在第一个清单中选择 User Registry Staff Plugin Provider,然后为第二个清单单击 Add
  3. 输入 User Registry Staff Plugin Provider Configuration 将其作为名称,并输入 bpe/staff/userregistryconfiguration 作为 JNDI 的名称。
  4. 对于 XSL Transformation File,在用户的 Application Developer 中选择安装文件夹 /runtimes/ee_v51/ProcessChoreographer/Staff/UserRegistryTransformation.xsl
  5. 转到 Security 标签,使得该服务器的安全性可用。输入您机器的管理员的信任状。不要启用 Java 2 的安全性。
  6. 保存并关闭该配置。
  7. BPESystemAdministrator 角色设置用户。右键单击服务器 TestServer,然后选择 Edit BPEContainer Deployment Descriptor
  8. 转到 Security 标签,然后选择角色 BPESystemAdministrator。核查清单里的用户是否是您本地机器的系统管理员,在必要请况下更改设置。
  9. 接下来选择 JMSAPIUser,一直浏览到 Run As 部分,然后核查清单里的用户是否是系统管理员。保存并关闭 Deployment Descriptor

第 13 部分:测试 Business Process Web Client 里的流程

  1. 启动服务器 TestServer,然后使用 Business Process Web Client 来测试该流程。启动服务器后,右键单击 TestServer,启动 Business Process Web Client
  2. 使用有效的用户 ID 登录服务器,然后从左边菜单中选择 My Templates。选择该流程模版,然后单击 Start Instance
  3. 在一个测试运行阶段,键入输入参数,方法如图 14 所示,然后单击 Start Instance
    图 14:用于第一次测试运行的输入参数
    图 14:用于第一次测试运行的输入参数
  4. 使用这些设置,该流程就会很快结束,这是因为它不需要管理员的批准。核查系统日志,获得服务实现的状态消息,如图 15 所示。
    图 15:在第一次测试运行后的状态消息
    图 15:在第一次测试运行后的状态消息
  5. 现在启动一个新的流程实例,然后将参数 amount 改为 20。这时该 Manager 组的成员就必须同意该订单。
  6. 启动该流程后,系统的日志显示只有第一个行为可以执行,如图 16 所示。
    图 16:在第二次测试运行后的状态消息
    图 16:在第二次测试运行后的状态消息
  7. 从 Web Client 中注销后,作为一个 Manager 组的用户登录。在 My ToDo's 清单中,您可以看到已经存在的工作项目,如图 17 所示。
    图 17:在第二次测试运行中未完成的工作项目
    图 17:在第二次测试运行中未完成的工作项目
  8. 声明该工作项目,然后输入用于批准该订单的正确或者错误信息。单击 Complete,结束该工作项目。如果您已经选择拒绝该订单,那么将在系统日志中看到行为 Send Rejection Mail 已经得到了处理,如图 18 所示。
    图 18:在第二次测试运行中订单遭到拒绝后的状态消息
    图 18:在第二次测试运行中订单遭到拒绝后的状态消息

您已经完成全部操作。从 Modeler 里的流程建模到 Application Developer 中的实现,现在您拥有了运行中的集成场景。





回页首


结束语

利用该集成清单, 您已经使用 WebSphere Business Integration Modeler 5.1 和 WebSphere Studio Application Developer Integration Edition 5.1 开发了一个集成场景。在该实践的三章中,您已经完成了全部操作流程,从 Modeler 里的流程模型开始,以在 Application Developer 里运行应用程序结束。

您现在可以演示这个运行的解决方案,或者再重新进行一遍该实践,并且将集成流程显示给其他用户。您也可以使用您自己业务环境中的流程和需求来扩展该实例。






回页首


下载

名字大小下载方法
files.zip2955 KB  FTP|HTTP
关于下载方法的信息


参考资料



关于作者

Thomas Kasemir 的照片

Thomas Kasemir是 IBM 德国 Boeblingen 实验室的一名软件工程师。他是 Lab-Services 团队的负责人,主要致力于流程编排和 Web 服务方面 。您可以通过 kasemir@de.ibm.com 联系 Thomas。




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?







回页首


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