跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

使用 WBM 和 WID 基于已有服务快速构建业务流程

GBSC CBE 项目组, GBSC CBE 项目组, IBM
CBE(Common Business Enablers) 是一个技术性的创意, 其关注的是不同行业的解决方案中那些相似的业务服务组件,目的是提高跨行业的服务重用,以此来解决传统方式下服务重用的高定制成本和平台依赖性问题。在这个项目中,我们试图:1)构造具有可配置型的通用服务模型;2)针对具体行业对通用服务模型进行实例化以形成行业服务组件,从而加快通用服务模型在行业的应用;3)基于 CBE 项目组开发的通用服务模型和行业服务组件,为使用者提供定制和应用开发方面的专业服务。项目组的成员是:郝新芳,张存祥,聂靖松,唐鹏。

简介: 在 SOA 应用构建中,如何整合已有服务和应用来构建新的业务流程是架构师经常需要考虑的问题。本文阐述如何使用 IBM 的软件工具 WebSphere Business Modeler (WBM) 和 WebSphere Integration Developer (WID) ,整合已有的服务进行业务流程建模,实现,并最终部署在 WebSphere Process Server (WPS)上。文中充分利用了 IBM 软件产品的功能,确保用户基本上不进行编码就可以开发、部署并测试 WPS 业务流程。

发布日期: 2010 年 2 月 22 日
访问情况 : 5709 次浏览
评论: 


在 SOA 应用的构建过程中,经常会需要整合已有的应用、流程或者服务。本文作者在项目中针对整合已有服务方面积累了一些实际的经验,在此予以总结,希望能够帮助读者正确使用 IBM 的流程建模和开发工具,重用已有的服务,迅速完成建模、开发和部署的全过程。文中将结合一个具体的业务流程实例,逐步阐述如何进行已有服务的导入,使用已有服务进行流程建模,流程模型到 BPEL 的转换,服务和流程的组装,操作界面的生成以及如何部署和测试。文中最后附加了在此过程中产生的项目文件(包括 WBM 的流程模型项目和 WID,BPEL 代码项目以及已有服务项目),供读者学习。

业务场景介绍

理赔 (Claim) 是保险行业日常业务中的一个重要的流程。通常包括接报案,查勘,立案,定损,理算,核赔,赔付等环节。本文并不打算实现一个真实完整的理赔流程,而是选取其中几个重要的环节(如下图所示)来展示如何使用已有服务构造流程:


图 1. 业务流程
图 1. 业务流程

接报案 (FNOL, First Notice of Loss):出险后,客户向保险公司描述事故的时间、地点、过程、损失物、损失程度等信息。接报案人员将这些信息完整准确的记录下来的过程。

定损 (Loss Decision):根据案情,损失的项目、数量和损失程度,确定损失的金额。可由查勘员同时进行查勘和定损。

结案 (Settlement):损失金额确定下来并经过核准后,由保险公司支付赔款给被保险人,并结束本次理赔流程。

这几个活动都是需要人工参与完成的,故将使用人工任务来执行 (Human Task)。已有的服务是对接报案信息,定损信息和结案信息进行持久化操作的服务。本文将展示如何把这些服务集成到如图1所示的业务流程中。


本文中用到的软件

WebSphere Business Modeler V6.2,下载试用版

WebSphere Integration Developer V6.2 (with WebSphere Process Server V7.0) 。


现有服务导入

在企业的 IT 系统的升级改造过程中,并不是所有的环节的业务都会发生改变,而事实上也是大部分的业务需求可以由原有的软件功能和服务来完成。IBM 提供了强大的软件集成设计和开发环境,帮助 IT 设计和开发者实施已有系统的已有服务(也称为遗留服务,Legacy Services)和新系统的集成工作。

WebSphere Business Modeler (WBM) Advanced Edition V6.2 持业务分析人员为组合业务服务(Composite Business Service,CBS)构造业务模型,而不会陷入软件开发的技术细节中。WBM 还提供导出功能,可以将其模型构件转换为 IBM WebSphere Integration Developer (WID) 构件。WBM 可以进行以下转换:

  • 将业务流程转换为业务流程执行语言(Business Process Execution Language,BPEL)框架
  • 将接口转换为 Web 服务描述语言(Web Services Description Language,WSDL)文件
  • 将业务项(Business Item)和其他类型定义转换为 XML 模式定义(XML Schema Definition,XSD)文件和业务对象(Business Object,BO)定义

可以重用的已有服务

本文中使用的企业已有服务可以是 Web Service 或者 SCA() 实现的服务。Web Service 实现的服务可以和新的企业应用进行分布式部署,SCA 实现的服务需要和新的企业应用部署在同一个 WPS 上。本文将以 SCA 服务为例。

下面的步骤中,我们首先使用 WBM 将已存在的业务服务和业务对象导入到 WBM 项目中,然后利用导入的业务服务和业务对象建立符合需求的业务流程。

在我们进行导入之前,最好将待导入的业务服务的 WSDL 和 XSD 文件放入同一目录下。这样在导入时可以方便地进行选择。当然导入前要确保所有的业务服务和业务对象的定义都是正确的。

建议在纯英文环境中使用 WBM,可避免因中英文而产生的模型转换问题。

导入过程

第一步,在 WBM6.2 中新建 Business Modeling Project


图 2. 创建新的业务建模项目
图 2. 创建新的业务建模项目

单击“Next”。


图 3. 输入新业务建模项目的参数
图 3. 输入新业务建模项目的参数

键入 Project Name 和 Process Name, 单击“Next”。


图 4. 选择模型风格
图 4. 选择模型风格

选择 Original style, 单击“Finish”。

第二步,导入现有的服务到刚刚创建的 ClaimProcess 中,本例包含了 3 个服务共有 3 个 xsd 和 3 个 wsdl 文件,在本文附件 IBMReuseableServiceLib 中可以找到这些文件。切换 WBM 到 Business Modeling perspective, 右击刚刚新建的 ClaimProcess 工程,选择 Import。


图 5. 选择导入类型
图 5. 选择导入类型

选择 Business services and service objects(.wsdl, .xsd), 单击“Next”。


图 6. 选择导入对象所在目录和要导入的对象
图 6. 选择导入对象所在目录和要导入的对象

选择 wsdl 文件和 xsd 文件所在的目录,并选择要导入的文件(一般情况下建议全选),如图所示,单击“Finish”进行导入。

导入完成后,在 Project Tree 视图中能看到 ClaimProcess->Business services 下多出 ClaimCaseMgmt,、LossDecisionMgmt、SettlementMgmt 三个业务服务,ClaimProcess->Business service objects 会多出 ClaimCase、LossDecision、Settlement 三个业务对象,说明导入成功。


图 7. 检查导入的业务对象
图 7. 检查导入的业务对象

在 WBM 里进行业务流程建模

当上一步的导入完成后,我们便可以进行业务流程建模。具体建模方法,可以参考相应的文献,这里只给出两点说明:

  • 对于导入的 WSDL 和 XSD 文件,WBM 会自动将他们分类到 business service 和 business service objects 目录下,并且处于不可编辑状态,从某种意义上来说,这样也保证了我们在进行流程建模时,不会对已有的服务接口进行误修改。当需要在流程中加入业务服务时,只要从项目树中拖拽此业务服务到流程图即可。
  • 在上文的业务流程介绍过程中,可以看到业务流程中存在很多的人工任务(Human Task)。在实际的业务分析时,如果发现任务本身需要指派给人进行参与,我们就可以在业务流程中使用 Human Task.。Human Task 在 WBM 中是一个标准的控件,可以直接使用。

本例使用的业务流程为保险行业理赔的简化流程,分为三个环节:接报案、定损和结案,三个环节都需要人为操作来执行流程,每个环节执行后会调用其对应的服务(主要是持久化服务,为已有服务)完成业务功能。

创建接报案环节

首先,选择建模的模式为 WPS。点击 Mode 选择下拉箭头,选择 WebSphere Process Server。


图 8. 选择建模使用的模式
图 8. 选择建模使用的模式

在 Business Modeling perspective 下,双击 Claim 流程,打开流程编辑视图。

从 Activities 中拖拽 HumanTask 到 Claim 流程中,命名为 FNOL( 代表接报案 ),并从编辑视图左上角拖拽一个 Connection,连接 Claim 流程输入和 FNOL,将 FNOL 作为流程的第一个节点。然后需要对这个 HumanTask 设定输入,输出数据类型。在这里它的输入数据类型是一个 Text 类型,而它的输出类型是 ClaimCase。ClaimCase 是一个我们已经导入的业务对象,可以在 Project Tree->Business service objects-> 找到。


图 9. 新建 HumanTask 节点
图 9. 新建 HumanTask 节点

打开 Project Tree->Business services->ClaimCaseMgmt->ClaimCaseMgmt 目录,拖拽 createClaimCase 到 Claim 流程中,并拖拽一个 Connection 连接 FNOL 到 createClaimCase。在这里,这个节点的输入输出类型是固定的,不需要进行设置。createClaimCase 是我们前面导入的服务 ClaimCaseMgmt 中的一个操作,它的作用就是把 FNOL 这个 HumanTask 输出的 ClaimCase 数据对象持久化到数据库。


图 10. 使用导入的服务
图 10. 使用导入的服务

创建其它环节

类似地,新建 HumanTask 定损 LossDecision 和 createLoss 服务,Settlement 和 createSettlement 服务,最后拖拽一个 Connection 连接 createSettlement 到 Claim 流程输出。


图 11. 创建的业务流程
图 11. 创建的业务流程

模型转换

本章介绍如何使用 WBM 将业务流程模型转换成业务流程工程。

为了使导出的业务流程可以正确地部署在 WPS 上,首先要查看一下建模时是否选择了 WebSphere Process Server 模式,另外还要保证所有模型中属性的命名是合法的,比如,所有流程必须具备唯一的命名,变量使用英文名称等。

从 WBM 导出业务流程模型

在 Business Modeling perspective 下,右击 ClaimProcess 工程,选择 Export,如下图。


图 12. 导出业务流程模型
图 12. 导出业务流程模型

选择 WebSphere Integration Developer, 如下图,然后单击“Next”。


图 13. 选择导出类型
图 13. 选择导出类型

输入目标目录 (Target directory),如下图,然后单击“Next”。


图 14. 指定导出目录
图 14. 指定导出目录

单击“Finish”完成,如下图,可能会出现警告提示,点击 OK 忽略。


图 15. 选择导出选项
图 15. 选择导出选项

在选定的目录下会导出一个以 ClaimProcess 和时间戳命名的 zip 包,包含 3 个工程,如下图所示。其中,ClaimProcess 工程包含了业务流程的实现(BPEL),ClaimProcess_impl 包含了业务流程中调用的服务的默认实现(实际上是空实现,下面的“业务流程模型和已有服务的装配”一节还要对此进行配置),而 ClaimProcess_lib 工程包含业务流程所依赖的 WSDL,XSD 等接口和数据类型的描述。


图 16. 导出的业务流程模型
图 16. 导出的业务流程模型

导入导出的 WBM 业务流程模型到 WID

下面的操作将把刚才从 WBM 导出的业务流程模型工程导入到 WID 开发环境里。在导入之前请确认 WID 运行在英文语言环境中。

在 WID 中选择 Java perspective,选择菜单 File->Import,如下图。


图 17. 导入业务流程模型工程
图 17. 导入业务流程模型工程

选择 Existing Projects into Workspace。单击“Next”。


图 18. 选择导入类型
图 18. 选择导入类型

选择 Select archive file,并选择3个工程,单击“Finish”进行导入。


图 19. 指定要导入的包
图 19. 指定要导入的包

业务流程模型和已有服务的装配

导入 WBM 的业务流程模型到 WID 之后,在 WID 中可以看到名称为 ClaimProcess_impl 的工程,这个工程包含 ClaimProcess 调用的服务的默认实现(实际上是个空实现),ClaimProcess 调用的服务就绑定到该实现上。本节将首先把已有的服务的实现导入到 WID,然后把 ClaimProcess 调用的服务绑定到导入的已有服务上。操作过程如下:

首先,将已有服务的工程导入到 WID 中,已有服务所在的工程是 IBMReuseableService.zip。点击菜单 File->Import, 选择 Existing Projects into Workspace


图 20. 导入已有服务所在的工程
图 20. 导入已有服务所在的工程

导入后,在 Package Explorer 视图中会增加 4 个工程:IBMReuseableService 和 WID 自动生成的 IBMReuseableServiceApp, IBMReuseableServiceEJB, IBMReuseableServiceWeb。


图 21. 已有服务所在工程导入成功
图 21. 已有服务所在工程导入成功

在 WID 中切换到 Business Integration Perspective,双击 ClaimProcess->Assembly Diagram:


图 22. 打开装配视图
图 22. 打开装配视图

然后,在 Assemble Diagram 中点击右键,选择 Automatic Layout:


图 23. 自动排序
图 23. 自动排序

点击 ClaimCaseMgmt,在 Properties 视图中,打开 Binding,我们会看到 Export Name 为 businessservices/ClaimCaseMgmt,这就是 WBM 给出的 ClaimCaseMgmt 的默认实现


图 24. 选择服务
图 24. 选择服务

点击 Browse:


图 25. 更改服务实现绑定
图 25. 更改服务实现绑定

选择 ClaimCaseMgmtExport,点击 OK,这样 ClaimCaseMgmt 就绑定了已有服务上了。

同 ClaimCaseMgmt 一样,依次选择 Assemble Diagram 中的 LossDeicisionMgmt 和 SettlementMgmt,重复上面的步骤就可以绑定各自的已有服务。


Web UI 的生成

本章介绍如何使用 WID 生成业务流程的操作界面(Human Task 的操作界面)。WID 提供了一个简单而又强大的功能可以生成在运行时对业务流程进行交互操作的 Web UI。

在 Business Integration perspective 下,右键单击 ClaimProcess->Integration Logic->Processed->processes/claim->Claim,选择 Generate Human Task User Interface


图 26. 生成 Web UI
图 26. 生成 Web UI

WID 可以生成基于 JSF 或者 Lotus Form 的 Web UI,本例中选择 JSF 实现的 UI, 如下图,单击“Next”。


图 27. 指定 Web UI 生成器的类型
图 27. 指定 Web UI 生成器的类型

输入要生成的 WEB 工程的名称和界面的风格,如下图,单击“Finish”。


图 28. 指定项目名称并选择界面风格
图 28. 指定项目名称并选择界面风格

Web 工程会生成在当前的 WID Workspace 下,生成之后 Package Explorer 视图中会多出 1 个工程 ClaimProcessUI(Web Project)


图 29. Web UI 生成后工程列表
图 29. Web UI 生成后工程列表

这个工程可以完成业务流程的创建、查询、结束、删除,任务的获取、释放、保存、完成等功能,包含下面几部分:


图 30. Web UI 生成的项目结构介绍
图 30. Web UI 生成的项目结构介绍

部署并测试

部署业务流程

下面步骤将把生成的 WID 项目部署到 WPS 上:

  1. 启动 WPS 服务器。
  2. 将 ClaimProcessAPP、ClaimProcessUIEAR、IBMReuseableServiceApp 3 个工程发布到 WPS 服务器上。

图 31. 部署项目到 WPS
图 31. 部署项目到 WPS

测试业务流程

业务流程的测试可以使用 WID 的测试组件和业务流程编排器资源管理器共同完成,也可以通过生成的 Web UI 来完成,本例使用生成 Web UI 来进行测试。

在 IE 地址栏输入 Web 应用的 URL( 类似于 http://xxx:xxx/ClaimProcessUI),用户名和密码等同于 WPS 管理员用户名和密码。


图 32. 登录业务流程应用
图 32. 登录业务流程应用

图 33. 业务流程应用测试界面
图 33. 业务流程应用测试界面

左侧 Business Case 下的功能可以进行业务流程的创建、查询和删除等操作,My ToDo ’ s 下的功能进行任务的获取、完成等,下面是一个简单的示例。

创建一个业务流程:单击 Business Case->New, 然后单击 Claim_InputCriterion, 在 Input 中输入 test, 单击“Create”,实际上会生成一个名为“Test”的流程实例。


图 34. 创建业务流程实例
图 34. 创建业务流程实例

通过 Business Case->Status 可以看到创建的业务流程。


图 35. 查看业务流程状态
图 35. 查看业务流程状态

单击 My ToDo ’ s->Open 可以进入任务处理页面,单击任务名称后,可以进行任务的获取、完成、保存和释放等操作。


图 36. 查看任务状态
图 36. 查看任务状态

任务获取后,填写所需的输出信息,单击“Complete”。


图 37. 完成流程任务
图 37. 完成流程任务

业务流程实例将调用已有的服务 (createClaimCase),将接报案信息持久化到数据库,然后从接报案环节进入到定损环节。同接报案一样,填写并完成定损和结案环节,流程就会执行结束。在这个过程中,流程实例将调用已有的服务(createLoss 和 createSettlement,参见图 11)将定损环节输入的数据和结案环节输入的数据持久化到数据库。


结束语

本文通过保险行业的一个业务实例,使用 WebSphere Business Modeler 和 WebSphere Integration Developer,详细介绍了如何整合已有的服务来快速构建并部署业务流程的全过程。文中着重介绍了在 WBM 中进行流程建模应该遵循的规则和注意事项,如何进行流程模型从 WBM 到 WID 的转换,如何组装现有服务和业务流程,如何生成 Huaman Task 操作界面,如何进行流程部署和测试,以便于 SOA 应用和业务流程的建模和开发人员借鉴学习。


附件说明

ClaimProcess.mar 是 WBM 里面构造的业务模型,其中包含导入的已有服务,可以导入到 WBM6.2。

IBMReuseableServiceLib.zip 中包含已有服务的接口和数据类型定义,可以导入到 WBM 成为 Business Services 和 Business Objects。

IBMReuseableService.zip 中包含有已有服务的实现,可以导入到 WID,然后绑定到业务流程模型的实现(BPEL)上。

IBMResuseableServiceIntegration.zip 是在 WID 里面完成的全部工程项目,可以导入到 WID 部署和运行。



下载

描述名字大小下载方法
业务模型ClaimProcess.mar122KBHTTP
工程项目IBMResuseableServiceIntegration.zip7060KBHTTP
服务的实现IBMReuseableService.zip15KBHTTP
服务的接口和数据类型定义IBMReuseableServiceLib.zip9KBHTTP

关于下载方法的信息


参考资料

关于作者

CBE(Common Business Enablers) 是一个技术性的创意, 其关注的是不同行业的解决方案中那些相似的业务服务组件,目的是提高跨行业的服务重用,以此来解决传统方式下服务重用的高定制成本和平台依赖性问题。在这个项目中,我们试图:1)构造具有可配置型的通用服务模型;2)针对具体行业对通用服务模型进行实例化以形成行业服务组件,从而加快通用服务模型在行业的应用;3)基于 CBE 项目组开发的通用服务模型和行业服务组件,为使用者提供定制和应用开发方面的专业服务。项目组的成员是:郝新芳,张存祥,聂靖松,唐鹏。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=SOA and web services, WebSphere
ArticleID=468951
ArticleTitle=使用 WBM 和 WID 基于已有服务快速构建业务流程
publish-date=02222010
author1-email=NA@cn.ibm.com
author1-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。