架构师:SOA 和 BPM

通过业务流程管理扩展 SOA 的业务价值

作者:John Brunswick

2008 年 9 月发布

业务流程管理 (BPM) 从本质上完善了面向服务的体系结构 (SOA),企业通过该机制可以将 SOA 应用至高价值的业务挑战。SOA 和 BPM 均可单独应用,但二者可彼此互惠互利。本文将阐述基于 SOA 实施 BPM 的好处。这些好处包括提升企业的敏捷性与灵活性,如此,企业即可更轻松地在不同部门和地区间扩展,以及更灵活地应对底层 IT 系统的变化。除了讨论 BPM 和 SOA 互补的规则如何天然地在组织内的业务和技术群体间促进基本的合作外,本文还将讨论如何丰富在 SOA 内提供的服务。

虽然潜在的好处很多,但有一些重要的问题需要企业在实施 SOA 和 BPM 之前予以考虑。例如,使用为促进 SOA 而开发的粗粒度的服务,将这些服务整合在一起以创建基于流程的应用程序能否更好地服务于企业?在缺少中介层的情况下,是否可以只用 BPM 来创建包装器以和不同的后端系统交互?

此外,协调使用 BPM 和 SOA 工具时会发生什么?这是双赢的场景,还是对另一套工具的投资会使企业内的信息管理和应用程序提供更加复杂?BPM 和 SOA 的潜在好处能否实现,即一个工具处理编排,另一个提供服务管理?

只有公正地对待有关 BPM 和 SOA 的工具才能充分地回答这些问题。且只有识别这些工具不同的价值主张后才能确定它们在用途上的重叠和协作。

可以来看一个三向价值交叉图(图 1.1),其中的 SOA 更加丰富,更加紧密地支持核心业务目标。用直接源自业务流程需求的自上而下的设计限定 SOA 结构后,调用的服务现在可以链接到 KPI,获取自 BAM 的详细服务使用信息与合规层也可融合至 SOA 中。结果是,SOA 和 BPM 的结合比单独的 SOA 带来了更大的价值,因为协作使 BPM 更敏捷和灵活。此外,SOA 支持的 BPM 可以从 SLA 支持的系列功能多样的服务受益并通过监控丰富功能,最终消除了点对点集成的脆弱性以提供之前无法实现的稳定性。这有助于确定三向价值交叉图,从而使企业可以更加轻松地专注于使用 IT 系统来增加收入和客户满意度、加速产品开发、降低处理时间并推动增长。

图 1.1 三向价值交叉


通过 BPM 加速业务

和 SOA 一样,BPM 不是特指某项技术。它是一种管理、衡量、执行和优化企业内流程的方法,帮助实现业务目标。

BPM 源于 ERP 和旨在强化和管理企业内流程的类似工具。这些工具虽然很有用,但很快就显露出它们趋于形成僵硬流程模型的势头,无法用于所有的业务和场景。相比之下,BPM 更善于将业务规则和代码分离,从而加速开发并允许企业以更加省时省力的方式建模和集成流程。动态异常管理就是一个很好的例子,直到现在也无法在合理的时间范围和预算内实现。考虑到它们提供的价值水平,可以肯定的是如今的 BPM 工具将在 IT 组织内成为主流。

众多的软件供应商均创建了工具以全力进行协助。一些工具主要管理面向人员的流程、决策流程、文档管理流程和/或一系统集成为中心的流程。它们通常提供一个编排层连接并使用现有的技术投资,从而在支持企业业务的同时,围绕流程提供一个分析层以触发警报并了解趋势数据。遗憾地是,这往往意味着要开发内在脆弱的点对点集成以在流程内包含这些系统。这种方法最初允许流程跨孤岛实现协作和管理,但是,随后由于企业信息系统的发展,这项策略也变得充满挑战,难以管理现有的流程集成点,除非让它们完全分离。

使用 SOA 支持基础架构

在众多的企业软件流行语中,SOA 可能是最火的一个。SOA 努力将分散的业务功能封装到服务中并进行管理,以用于企业应用程序的开发。

随着企业信息系统的发展,期待它们继续遵循某些标准不太现实,HTTP 和其他一些基础的传输协议除外。这正是企业服务总线和数据服务层的用武之地。它们有助于桥接分散的协议和格式,支持服务管理、促进服务重用,并为系列潜在异构平台提供单一的接口。更进一步说,它们可以为服务生命周期管理提供工具,执行 SLA 以加强稳定性并提供详细的监控数据,从而使其成为管理企业数据和系统的理想选择。

随着行业的发展,公司面临新的挑战,包括软件即服务 (SaaS)、公司防火墙外的服务管理、REST 消耗和其他的新技术和方法以及复杂安全中介的管理等。在这种瞬息万变的环境中,强大的 SOA 可以帮助公司敏捷快速地响应业务需求。

但是 SOA 本身不提供编排这些服务以添加新客户账户或员工、处理服务请求或管理贷款发放流程的方法。应用程序可以直接嵌入到 SOA,但会将业务逻辑分散到不同的孤岛上,妨碍重用,并会创建出业务参与能力有限的僵硬系统。这就降低了将域专业技能应用于系统的力度和速度。SOA 也不为基于 SOA 的应用程序用户提供表面相关的、业务可消耗性分析的原生机制。

创建高价值的 SOA

SOA 的价值主张令人印象深刻,但要找出从何处开始为 SOA 创建组件是一个挑战。在面对这样的潜在客户时可能会令人不知所措:创建服务组合以支持业务需求的同时,不经意地构建出消耗资源和预算以另作他用的隐蔽服务。

BPM 可以有力地推动高价值 SOA 的创建,因为它使用自上而下的方法来开发粗粒度的服务,非常有助于组织实现业务驱动的 SOA。使用这种方式开发的所有服务将本能地直接与支持业务的流程相连。这就迫使服务绑定到核心组织目标,促使其和其他技术组合无法传递的业务价值链更加一致。这使得 BPM 可最大化 SOA 的价值。

强健的业务流程管理

企业时刻都处于变化之中。虽然有一些使用服务组件体系结构 (SCA) 通信标准和其他方法的趋势,但是系统不大可能开发和维护统一的通信和数据交换方法。极有可能的是规格和交付机制不断地发展或演化,服务本身也同样如此,使得服务生命周期管理和服务管理的成熟方法愈发重要。

使用企业服务总线和 SOA 的其他主要功能可以通过成熟的、灵活的架构以编程的方式链接企业内部的不同要素。这不仅隔离了可能连接到底层系统的 BPM 流程,也使企业可以利用其目前已熟悉的工具集,屏蔽底层系统的复杂性,允许组织内的所有群体快速地将各自的系统添加到可获益于 SOA 的流程。

最终这将使 IT 资源能够专注于在域专业知识和流程建模能力的基础上提供业务价值。这些资源也不必再过于考虑流程下面的协议、信息处理和不断变化的平台。

结论:BPM 和 SOA 协作

结合使用 BPM 和 SOA 时,对流程建模是 SOA 的首要任务,从而通过将高度灵活的管理层放置于流程下来帮助 IT 团队提高敏捷度,使其更加快速地满足业务的需求。不同于将僵硬的系统捆绑在一起,它可以将注意力转移到推动收入、增加客户满意度、缩短产品开发周期和其他核心业务目标上来。BPM 通过减少模糊性来帮助组织设计实际的面向服务的体系结构,以在这些体系结构中开发粗粒度的服务。此自上而下的 BPM 驱动的方法允许业务需求决定服务开发的方向。

使用自上而下、以 BPM 为向导的方法推动 SOA 创新时,还可以切实获得其他益处。在那个场景中,SOA 可以获益于以 KPI 形式出现的量度、BAM 中围绕服务使用的丰富分析功能,以及单独使用 SOA 无法实现的合规性管理的包装器。功能丰富的 SOA 结构凭借自身优势为 BPM 提供了构建在顶层 SLA 上的坚若磐石的基础,细化了低级监控和允许流程将自身从底层系统变化中隔离出来的稳定性。

BPM 和 SOA 均可为 IT 组织带来实质收益,在配合使用时可以实现全新的价值高度以帮助企业保持敏捷性、灵活性,并专注于 IT 核心组织目标。


John Brunswick网志)是 Oracle Corporation 的咨询解决方案经理,帮助公司创建应对各种业务挑战的解决方案。