级别: 中级 Xue Wang, SOA 架构师, IBM JingAn Ren, SOA 架构师, IBM John Falkl, 知名工程师兼总架构师,SOA 治理, IBM Robert Laird, 高级架构师, IBM
2009 年 10 月 09 日 随着更多 SOA 解决方案得到部署,对自动化的、事件驱动的 SOA 治理解决方案的需求也在增加。本文介绍了可基于治理事件自动处理治理流程的解决方案。
简介
随着越来越多的 SOA 解决方案得到部署,对自动化的、事件驱动的 SOA 治理模型和解决方案的需求也在增加。当前,IBM 已开发了一种 SOA 治理方法 —— SOA Governance and Management Method (SGMM),和数种与 SOA 治理相关的产品,例如 WebSphere Service Registry and Repository (WSRR) 和 Rational Method Composer (RMC)。然而,在客户项目中,仍然存在一些问题:
- 如何基于治理事件自动处理治理流程?
- 是否存在基于行业的治理解决方案?
为解决这些问题,我们开发了基于保险业的 SOA 治理解决方案。此解决方案包含 IBM WebSphere Service Registry and Repository,和一种新近采用的业务事件处理产品 WebSphere Business Event (WBE)。本文将详细介绍此解决方案。
解决方案架构
在一些项目中,客户需要监控服务生命周期,并需要一种方法以根据事件而触发服务生命周期变更。这些事件可以是业务事件(如新经营战略公告)或 IT 时间(例如其他独立服务的生命周期变更)。图 1 描述了解决方案架构。
图 1. 解决方案架构
WebSphere Service Registry and Repository
WebSphere Service Registry and Repository (WSRR) 是面向服务描述的主元数据存储库。其概念有二:注册表 (Registry) 和存储库 (Repository)。注册表支持元数据发布,而存储库提供存储、管理元数据的功能。除了基本功能之外,WSRR 还通过以下能力而支持服务生命周期管理:
- 服务工件的模型生命周期;
- 在多种开发环境中管理服务在生命周期各阶段的提升;
- 执行影响分析,将变更传达至受到治理的服务元数据。
业务模型
为了促进业务的表示和管理,WSRR 支持与下例相似的业务模型配置,下例表示了与业务角色有关的实体的类型。这里定义了 5 个基本业务模型概念:业务应用程序、流程、服务、组织和合同。用户能够创建和更新基于 Web Ontology Language (WOL) 文件的业务模型。
- 业务应用程序:“业务应用程序” 表示可满足直接业务需求的高级业务应用程序。“应用程序” 支持将业务应用程序映射到 IT 设备。
- 业务流程:“流程” 表示公共的(由多个应用程序共享的)业务流程。“流程” 依赖于其他流程和服务,通常由那些相关服务的组合通过例如 WebSphere Integration Developer (WID) 等工具而执行,并通过 WebSphere Process Server (WPS) 而实现。
- 业务服务:“业务服务” 表示公共的(共享的)业务级服务。这是 SOA 中有效的 “编目” 项目。WSDL 接口和端点将从这里引用。
- 组织:“组织” 表示一个业务级的组织单元 —— 有效的业务线。SOA 中通常需要这种高级表示,以识别服务的提供者或使用者,以及组织观念上的主要 “所有者”。“组织” 也可能用于对应 UDDI “businessEntity”,尽管治理档案中不包含与 UDDI 的同步。
- 合同:“合同” 表示两个组织之间的协议,涉及所提供的服务以及提供者和使用者组织之间认可的策略。
技术模型
除了业务模型,WSRR 还基于 WSDL 和 XSD 中表示的服务定义而维护一种服务注册表。例如,对于一个实际 WSDL 文件而言,如果它载入到 WSRR 中,就会生成相关的 WSRR 元数据:WSDLDocument 表示文档本身,相应地,WSDLService、WSDLPort、WSDLBinding 和 WSDLPorttype 是从 WSDLDocument 中分析的逻辑对象。还存在技术层,物理对象和逻辑对象(例如 Service、ServiceEndpoint、ServiceBinding 和 ServiceInterface 对象)都与之链接。
业务模型和技术模型并不完全分离。从业务模型可控制相应的技术模型,反之亦然。
治理生命周期和治理策略
WSRR 是 SOA 治理的主要产品之一。WSRR 具有默认生命周期,作为标准安装的一部分而安装。用户可定义服务生命周期模型,此模型能使用 IBM WebSphere Integration Developer 工具开发并载入到 WSRR 中。生命周期阶段、运营状态、服务定义状态都用于提供一种机制,以实现使用、重用、可视性和运营稳定性以及健康。
WSRR 提供了处理治理策略的功能。在这里我们利用这种特性来处理是否允许发生服务转换的条件。
图 2 例示了完整服务生命周期以及控制点和可交付成果。
图 2. 完整服务生命周期示例
WebSphere Business Event
2008 年,IBM 公布了 WebSphere Business Event (WBE),此产品旨在管理系统和人员间流动的业务事件,目标是提供感知和响应不断变化的业务条件的能力。它在产品设计中采用了 Business Event Processing (BEP) 的重要概念。它允许业务用户以业务语言描述业务事件和模式,及时检测、评估和反应,以实现业务目标。
WBE 包括 3 个无缝整合的元素:设计环境、运行时环境和资产存储库。有两种设计工具,一种面向 IT 开发人员,另一种面向业务人员。IT 开发人员识别接触点和连接器以及业务对象,业务对象提供元数据定义层以允许数据在接触点之间通过 Design Data 无缝地移动。业务人员指定 Interaction Set,它确定了业务系统如何彼此互操作;一个 Interaction Set 包含一个 Event、一个或多个 Action,可能有 Filter。可选择应用 Filter 来确定是否应当采取某 Action,还能使用 Filter 来检查 Event 模式以确定评估当前 Event 的条件是否存在。下图为组成元素及其关系。
图 3. WebSphere Business Event 元素和关系
此解决方案中使用 WBE 来接收在 WSRR 或其他渠道中发放的服务治理事件并进行处理。使用预定义的治理流程模式,WBE 能帮助解决决策问题、动态地对 SOA 治理中人员、流程和信息之间简单或复杂的关系作出反应。
Event Handler
本解决方案中的 Event Handler 目标在于监听并处理 WSRR 中发生的服务转换。在这里,定义了一个治理通知插件,它编写为可实现 com.ibm.serviceregistry.governance.ServiceRegistryGovernanceNotifier2 接口的 Java Class。ServiceRegistryGovernanceNotifier2 接口扩展了原始 ServiceRegistryGovernanceNotifier 接口,提供更多功能。以下是类层次。从中我们能够看到 ServiceRegistryGovernanceNotifier2 相比 ServiceRegistryGovernanceNotifier 接口,多出三种方法:makeGovernable()、removeGovernance() 和 validate()。
一旦服务转换事件被监听,事件处理程序就将之转换为 WBE 可接受的事件格式,并将事件发送到 WBE。
图 4. Event Handler 实现
保险业 P&C Underwriting 业务
本解决方法的技术特性如上所述。下面使用一个行业示例来着重介绍用例。我们将使用保险业中 Property & Casualty (P & C) Underwriting 的典型业务。
P&C Underwriting 业务
Underwriting 将管理必要活动,以支持对合同(新合同和有效合同)的风险评估,从而确定接受、改变或拒绝所提出的风险。所以 P&C Underwriting 为 P&C 保险策略提供建议,描述了公司可接受的保证和条件,考虑了所有风险和客户状况。准备好提供信息,以便对公司可接受的保证和条件作出决议。这将构成与客户进行协商、建议接受或拒绝风险的根据。信息准备工作明显包括指定初步 Terms & Conditions、计算可选保险费以及评估是否需要再保险。
业务模型和技术模型
其业务模型如下图所示。
图 5. P&C 业务模型
业务管理将其载入 WSRR。接下来,定义并开发相应的结束模型,例如 WSDL、XSD,并将这些文件发布到 WSRR 中。
同样,服务管理开发了业务模型生命周期和技术模型生命周期以治理流程。
下图显示了业务模型生命周期和状态和转换:
图 6. P&C 业务模型生命周期
图 7. 业务状态和转换
下面的图 8 和图 9 显示了技术模型生命周期、状态和转换。
图 8. P&C 技术模型生命周期
图 9. 技术状态和转换
事件互操作集合
在本例中,因为 P&C Underwriting 业务流程包含多个在 WBE 中开发和成熟的业务服务和 IT 服务,所以可根据以下清单定义一个互操作集合:
清单 1. 范例互操作集合定义
if Allof(P&CUnderwritingService.State = "Published")
then P&CUnderwritingBusinessProcess.State = "Realized"
|
当 WBE 检测到任何由 Event Handler 发出的、指定组成服务转换状态的事件时,将不会执行任何操作。当所有组成服务状态为 “Published” 时,WBE 采取措施,将 P&C Underwriting 业务流程状态转换为 “Realized”。
结束语
本文介绍了一种全新的 SOA 治理解决方案,它整合了 IBM WebSphere Service Registry and Repository,并最新采用 WebSphere Business Event (WBE) 处理治理。此解决方案以保险业务为基础,能够在相似业务情况下重用。
参考资料 学习
获得产品和技术
作者简介  | 
|  | Xue Wang 是中国 SOA Advanced Technology 小组的一名 SOA 架构师。她在 SOA 产品开发、客户项目、应用程序架构设计等方面拥有超过 8 年的 IT 经验。当前,她主要研究银行业解决方案。 |
 | 
|  | JingAn Ren 是中国 SOA Advanced Technology 小组的一名架构师。他主要在 FFS 中的电子商务和 SOA 解决方案开发、设计与架构方面有着多年经验,最近他重点研究行业解决方案的构建和重用。 |
 | 
|  | John Falkl 是 IBM 软件集团 SOA 治理方向的知名工程师兼总架构师。John 的职责包括推进整体技术战略和产品要求以实现 SOA 治理功能性,以及协调 IBM 组织内的 SOA 治理活动。John 作为 IBM 软件集团 CTO 领导 Governance Incubation Project(治理孵化项目)。通过此项目,John 领导关键 SOA 治理流程的确立,对照基准用例来协调软件产品战略。在 28 年 IBM 生涯中,John 在 IBM 全球服务部工作了 12 年,领导了许多影响力很大的项目,例如最近 IBM 全球商业服务组织 SOA 管理服务产品的定义和开发。John 拥有三个 IT 技术行业认证,拥有企业架构和开发的重要背景,以及 9 年的管理经验。John 在 IBM 还领导了许多高级技术研究。 |
 | 
|  | Bob 是 IBM SOA Advanced Technology 小组的高级架构师,自 2006 年 5 月以来在 SOA 治理和 SOA 架构领域担任 IBM 全球客户顾问。他是 IBM SGMM (SOA Governance & Management Method) 的合著者。他作为行业 TOGAF (The Open Group Architecture Framework) SOA Governance 工作组的成员,撰写过两本关于 SOA 的书 —— SOA Governance, Achieving and Sustaining Business and IT Agility 以及 Executing SOA, A Practical Guide for the Service Oriented Architect,而且拥有两个 SOA 治理领域的未决专利。Bob 在 MCI 和 Verizon Business 拥有超过 20 年的电信业经验。他是 MCI 总架构师,领导企业架构小组,监督应用程序套件兑现的整个流程。他领导基于单堆栈战略的 SOA 开发,以简化多个网络和应用程序筒仓。Bob 在联系中心、IP/VPN、VOIP、IMS 和托管服务领域中推动了 MCI 产品开发的战略、计划和执行。对于 OSS,他领导了成功实现,从而自动化网络部署、网络恢复和网络管理。在加入 MCI 之前,Bob 担当 American Management Systems (AMS) 和 Ideation, Inc. 的顾问。他拥有普渡大学计算机科学专业的学士和硕士学位,曾被授予两个电话领域的专利。他曾在各种专业论坛进行演讲,为 SOA Magazine 撰文,并且其言论多次为 CIO Insight、Telecommunications、Infoworld 和 Computerworld 所引用。 |
对本文的评价
|