用 WebSphere Lombardi Edition V7.2 实现系统集成,第 1 部分 : 架构和解决方案概述

WebSphere® Lombardi Edition V7.2 提供了一个集成的平台,在这个平台上可以构建 BPM 解决方案。尽管该平台一直在以人员为主的工作流方面表现抢眼,然而,本系列将重点关注 Lombardi 的集成功能,将使用 web 服务、JMS、Ajax、JDBC 和存储过程创建一个虚构的订单处理流程。本文的第 1 部分将概述 Lombardi 及其关键组件,并简要描述订单处理解决方案。

Scott Glen, 认证的 IT 架构师, IBM

Scott Glen 的照片Scott Glen 是 IBM 的 Business Performance and Service Optimization (BPSO) 团队的一名认证 IT 架构师。他在面向对象的系统的架构、设计和开发方面拥有超过 19 年的丰富经验,曾为金融、政府、电信和媒体部门提供过咨询服务。他对 WebSphere、Java EE 架构和关联的设计模式有着特别浓厚的兴趣,现在主攻 SOA 和 BPM 技术,为整个欧洲、中东和非洲地区的客户提供咨询和实现服务。



2011 年 11 月 07 日

简介

IBM 和 Lombardi

在 2010 年,IBM 收购了 Lombardi Software 公司,随后通过引入 IBM Blueworks Live and WebSphere Lombardi Edition 增强了该公司的业务流程管理(BPM)产品组合。Blueworks Live 是 Lombardi Blueprint 产品的演进版,提供了基于云的高级业务建模和协作能力。Lombardi 是一个集成的业务建模和解决方案组装平台,旨在实现 BPM 应用程序的快速开发。它主要侧重于以人员为主的工作流,同时也提供了一系列后端集成功能。

这个共 3 部分的系列文章将重点构建一个订单处理解决方案,主要目的是演示 WebSphere Lombardi Edition V7.2(以下简称 Lombardi)提供的集成功能。尽管该解决方案是虚构的,但是它有点基于一个符合标准的电信订单处理流程,并且是为了展示各种不同的集成选项而特别构建的,这些集成选项包括 web 服务、JMS、Ajax、JDBC 和存储过程。尽管该解决方案基于 WebSphere Lombardi Edition,但是本文内容也适用于 IBM Business Process Manager V7.5,后者可与 Lombardi V7.2 环境兼容。

本系列并不准备介绍 Lombardi 的各个方面。相反地,将特别关注集成功能,介绍支持与操作系统进行通信的各种服务和技术。第 1 部分将介绍本系列,提供有关 Lombardi 架构和开发环境的概述,并创建底层资源(如数据库表),我们的解决方案将根据这些资源构建。第 2 部分将侧重于流程剖析,深入探究 Lombardi 的开发功能,并介绍解决方案的主要 BPM 组成。最后,第 3 部分将查看订单处理流程中使用的各种集成技术。


安装说明

Lombardi V7.2 目前受 32 位和 64 位 Windows®、Solaris®、AIX® 以及 32 位和 64 位 Linux® 的支持。安装程序提供了两个安装路径:Simple 和 Custom。Simple 安装程序可以为您完成全部工作,安装所有必需的应用程序,例如 DB2® 和底层 WebSphere Application Server。

Custom 选项更灵活一些,允许您对安装进行调整,从而能够使用现有的 DB2、Oracle® 或 SQL Server 数据库。如果您选择该选项,确保安装了必要应用程序的正确版本。例如,Lombardi V7.2 需要使用 DB2 V9.7 FP 1。如果安装了不同版本的 DB2,安装程序可能不会报错,但是应用程序无法正常运行。请参见 参考资料 部分的版本说明,获得更多信息。


架构

Lombardi 平台过去一直侧重于协作功能,业务、管理和技术人员一起反复开发 BPM 解决方案。这种方法能够实现应用程序的快速成型和部署,通常比其他 BPM 环境需要的时间更短。

产品本身的架构就反映了这一点,其中,解决方案组件被放在一个集中的流程中心加以维护。定义、建模、实现、衡量和改进流程所涉及的各方都从一个通用的共享平台上工作,该平台封装了解决方案的所有元素。该平台可以通过各种工具访问,提供了各种基于角色的集中化信息透视图。

图 1. Lombardi 共享模型
Lombardi 共享模型

在后面的小节中,我们将更进一步地查看与本系列文章有关的架构的关键元素,即流程中心(Process Center)、创建环境(Authoring Environment)和流程门户(Process Portal)。


Process Center:中央存储库

Process Center 是 Lombardi 架构的核心。它提供了一个中央开发环境和存储库,支持多个流程创建者和开发人员。它通过 Process Center Console 进行管理,Process Center Console 能够管理 Process Center 中包含的应用程序、工作空间和快照。除了充当开发库外,它还包含两个关键组件:

  • Process Server,一个运行时流程引擎,负责执行流程和服务。它为流程创建者提供单元测试环境(UTE),并通过 Process Admin Console 进行管理。
  • Performance Data Warehouse,负责收集和汇聚流程数据,支持生成性能报告。它通过 Performance Admin Console 进行配置。

Authoring Environment:流程开发

Authoring Environment 为所有流程创建活动提供单一工具。它是分析人员和集成开发人员日常交互的主要工具,使流程创建者能够建模、集成和模拟他们的流程。每个 Authoring Environment 专门针对一个单独的 Process Center。尽管 Authoring Environment 提供了一个基于 Eclipse 的用户界面,它实际上是一个瘦客户端,因为大部分功能是在相关联的 Process Center 中实现的。

业务流程定义(BPD)

Authoring Environment 支持 BPMN 概念,允许通过直观的拖拽界面以形象的方式对流程进行建模。业务活动可以添加到画布(canvas)的泳道(swimlane)中,连接在一起并由子流程或服务实现,如图 2 所示。

图 2. Lombardi Authoring Environment
Lombardi Authoring Environment

当我们在 Lombardi 上下文中提到服务时,我们讨论的并非 SOA 服务。Lombardi 服务是内部 Lombardi 组件,其构建类似于业务流程,但是采用了更低级别的交互。它们可以有多种形式,但是主要归为三类:用户界面服务、实现服务和业务规则服务。

用户界面服务

UI 服务可用于快速构建界面,使用户能够与流程进行交互。它们分为两类:

  • Human 服务:通常包含界面屏幕(称为 Coach,因为它们引导用户使用应用程序),以及填充界面所需的任何组件。
  • Ajax 服务,用于从服务器异步检索信息。这些服务由 Human 服务用来创建一个更加动态的用户体验。

实现服务

这些服务的重点是连接到外部世界,包括多种选项来访问外部应用程序中包含的信息和功能:

  • General System 服务创建一个可重用业务组件,可由其他流程或服务调用。
  • Integration 服务用于集成支持执行业务流程的操作系统。Lombardi 支持 web 服务或基于 Java™ 的集成组件,以及 System Data Toolkit 提供的各种预构建的集成选项,其中包括大量基于 SQL 的集成。
  • Undercover Agents 由其他服务用于提供基于消息的异步通信。它们可以用来使松散耦合的流程协同工作,或对外部的基于 JMS 的消息事件进行响应。
  • External 活动提供直接与外部应用程序集成的有限功能,如在 Microsoft® .Net 平台上部署的应用程序,可以处理流程数据。
  • Web 服务用来以 web 服务的形式公开现有 Lombardi 服务,从而供其他 Lombardi 流程或外部消费者使用。

业务规则服务

虽然本系列没有使用业务规则,但是值得一提的是它们在 Lombardi 中的功能。有三种类型的业务规则服务:

  • 规则服务能够封装简单的 if-then 业务规则,可以连接到业务流程中并应用于流程数据,从而执行相应的操作。虽然以这种方式分离业务规则在架构上是一种良好的实践,但是 Lombardi 只提供了非常基本的规则功能。在企业级别,最好使用专门的规则引擎,如 IBM WebSphere ILOG® JRules,它受 Lombardi V7.2 支持,可以充当所有业务规则的单一存储库。
  • 关键绩效指标(KPI)是一些业务衡量指标,Lombardi 将在运行时跟踪这些指标,存储可用于在 Optimizer 中分析流程和任务绩效的结果。KPI 可以与流程中的任何活动相关联。
  • 服务水平协议(SLA)在 KPI 的基础上构建,聚集流程测量指标并使某个触发操作在指定条件下发生。

Process Portal:操作

Lombardi Process Portal 是一个基于 web 的界面,用户可以在其中启动和停止流程,管理和运行每个流程的任务,并查看个人、团队和流程的绩效。该界面是基于角色的,只显示与用户所属的组相关的流程和任务。

图 3. Process Portal
Process Portal

Process Portal 使用户能够完成在 Process Server 上运行流程而产生的任务。如果某个任务由一名用户发起,那么将在门户中显示相应的 Coach,从而使用户能够在向流程的下一阶段返回控制权之前完成任务。

我们目前已经介绍了本系列将使用的所有 Lombardi 元素,接下来我们看一下解决方案场景本身。


解决方案概述

过去,Lombardi 产品一直致力于以人员为中心的工作流,然而,在本系列中,我们希望探讨 Lombardi 的一些更加技术性的集成选项,看看它如何处理实际的流程自动化场景。为此,我们选择使用一个简化的订单处理流程,该流程有点基于电信行业的标准化流程。为了研究 Lombardi 的功能,我们在解决方案中引入了大量不同的集成技术。我们不提倡在实际解决方案中使用所有这些技术,但是这使我们能够演示 Lombardi 提供的不同选项。

图 4 展示了抽象级别的端到端流程。

图 4. 抽象的订单处理流程
抽象的订单处理流程

Create Order 和 Update Order Status 流程模拟一个基本的客户关系管理(CRM)系统的功能,因此出现在 CRM 泳道中。Create Order 流程捕捉订单细节并向 Handle Order 流程发出一个客户订单,后者尝试完成该订单并将最终状态发送回 CRM 系统,订单后来由 Update Order Status 流程接收。

抽象流程中的每一个步骤都分别通过一个单独的 Lombardi 业务流程实现。如图 5 所示,Create Order 流程利用一些屏幕来捕捉客户和产品细节,然后将订单存储到 CRM 数据库中,并将其发给 Order Handling 流程。

图 5. Create Order 流程
Create Order 流程

订单是通过消息队列异步发送的,因为真实的电信订单如果涉及在网络级别实际配置设备,那么可能需要几天的时间才能完成订单。因此,该流程结合使用了几种 Lombardi 技术,包括 Coach、SQL、存储过程调用、Ajax 更新和异步消息传递。

一旦从消息队列中读取到订单消息,将发起一个 Handle Order 流程的实例。将首先检查订单的有效性,然后评估客户的信用等级(假设这是一个服务订单,并且延迟一个月支付)。随后将完成订单并进行最终结算。本流程结合使用了 web 服务、异步消息传递和 Coach,用于异常处理和升级呈报。

图 6. Handle Order 流程
Handle Order 流程

当 Handle Order 流程完成后,或者如果由于任何原因无法完成订单,将向 CRM 系统异步发送回一条相应的状态消息,该消息将由 Update Order Status 流程处理。

图 7. Update Order Status
Update Order Status

该流程将首先用订单状态更新数据库中的 CRM 记录,然后创建一个人工任务来显示订单。它使用异步消息传递、SQL 更新和 Coach。


数据库设计

为支持该解决方案,我们创建了一个简单的数据模型,它提供静态产品数据来驱动流程,并充当一个用于存放已完成订单的存储库。图 8 显示了在 InfoSphere® Data Architect V7.5.3 中创建的 Entity Relationship Diagram (ERD):

图 8. Entity Relationship Diagram
Entity Relationship Diagram

这里并没有模拟这些实体在真实情况下的复杂性,因为这不是本系列文章关心的重点。然而,它们所包含的信息和彼此之间的关系将被用于驱动 BPD。实体概述如下:

  • Product,定义了公司提供的核心产品,如 ASDL、Land Line 等等。
  • Offering 是供销售给客户的一个或多个产品的分组。这将产品捆绑在一起,创建 “Triple Play” (ASDL, Land Line, Mobile) 之类的分组。
  • Offering_Product_Mapping 表,实现了产品与分组之间的多对多关系。
  • Customer 对客户进行建模。
  • Order 将客户与某个产品分组关联起来。相关 Offering 的名称(Offering_Name 字段)是非规范化的,为了简单起见而包含到解决方案中。

本文 下载 部分提供了用于在 DB2® 中创建这些表的脚本。本系列后期文章将提供部署相关存储过程(将在后面的文章中介绍)以及加载样例产品数据的脚本。请参见 参考资料 部分,获得有关在 Lombardi 中配置数据源的更多信息。


结束语

WebSphere Lombardi Edition V7.2 提供了一个集成的平台,在这个平台上可以构建 BPM 解决方案。尽管该平台一直在以人员为主的工作流方面表现抢眼,然而,本系列将重点关注 Lombardi 的集成功能,将使用 web 服务、JMS、Ajax、JDBC 和存储过程创建一个虚构的订单处理流程。

本教程的第 1 部分提供了有关 Lombardi 的概述,介绍了其架构和订单处理解决方案。在第 2 部分中,我们将开始构建流程并介绍 Lombardi 提供的各种集成功能。


下载

描述名字大小
样例脚本OH_Script.zip1KB

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


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


忘记密码?
更改您的密码

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

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

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

选择您的昵称



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

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

标有星(*)号的字段是必填字段。

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

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

 


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


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=772705
ArticleTitle=用 WebSphere Lombardi Edition V7.2 实现系统集成,第 1 部分 : 架构和解决方案概述
publish-date=11072011