技术开发 频道

SOA流程项目到底是业务流还是工作流

下面我们通过简单的图示,来看一下在四个流程项目架构设计中,工作流与业务流的不同偏向。

  以工作流为导向的面向构件流程架构

  目前国内很多业务流程管理项目采用以工作流为主的流程架构。工作流流程主要关注于流程的灵活跳转, 快速开发等。 如图一所示, 工作流通常是以人员为中心的架构设计。 当然, 也有文档为中心等。 工作流一般直接调用应用程序, 或 Web 服务等。 其功能包括 : 简单规则, 动态人员配置, 消息对象设置, 基本事件处理, 表单链接, 自由跳转路由等。 但工作流没有服务编排功能。

SOA流程项目到底是业务流还是工作流

                                       图 1. 以工作流为导向的面向构件流程架构示意图

  当然,这种架构如果主要调用服务来实现业务转换的,亦有称之为面向服务的。但从主体上来说,它强调的是人工节点流或页面流的灵活性,而非业务服务的灵活性。只有当这一架构与业务服务(特别是组合服务)关联密切而松耦合绑定(通过服务中介总线)时,它才能取得面向服务的效应。

  以业务流为导向的面向服务流程架构

  以业务流为主的流程架构有不同的实施方法。下面是两个项目案例。

  图二主要应用于现有系统的整合,特别是与 ERP 相关产品的整合。一般通过流程的编排功能及并行处理能力,将不同系统进行关联,实现业务的有效组合。在不改变原有系统的基础上,设计业务流程,满足目前业务的需求。这种流程设计一般使用中介及转换使系统间松散连接。接口一般采用标准形式,例如,基于 JCA 标准的适配器。业务监控反映在业务对象层面。符合 SOA 对 KPI 监控的设计理念。在实际应用时,结合使用临时人工任务,状态机,版本控制,业务规则服务,动态服务绑定等。

SOA流程项目到底是业务流还是工作流

                                     图 2. 以业务流为导向的面向服务流程架构示意图

  图三是以结合使用了动态节点的架构设计。使业务流增添了自由节点的灵活性。通过使用循环节点,根据用户动态指定,确定节点及相应参数。这种设计考虑工作流与业务流的双重效应。业务与流程信息通过数据层关联,并由此形成业务监控数据源。

SOA流程项目到底是业务流还是工作流

                                           图 3. 带有动态节点的业务流架构示意图

  工作流与业务流松散耦合的流程架构

  在工作流及业务流产品兼有的情况下,松散耦合两种产品技术也是一种整合方案。如图四所示,前端页面应用通过统一的前端接口(Facade)调用不同的工作流或业务流接口或服务组件。后端的工作流与业务流基本上独立运转,工作流可以调用业务流服务。前端接口不局限于固定的应用或组件。例如,监控部分可以通过松耦合的形式,与工作流或业务流监控组件或服务接口链接,在界面灵活地展现。

SOA流程项目到底是业务流还是工作流

                                    图 4. 工作流与业务流松散耦合的流程架构示意图

  从 BPM(业务流程管理)的角度来说,整个过程应该包含从业务分析至监控管理,而且分析,管理是 BPM 的关键所在。本文主要侧重于流程的简要架构设计,对业务流与工作流作了基本的比较。

  在 SOA/BPM 初始阶段,如果一个企业没有较深的 IT 或 ERP 根基,实施业务流会有相当的阻力。因为业务流程管理并非主要是技术问题。对于有些中小型企业或应用 ( 特别是那些没有规范支撑的人工流程模式 ),一些随意包干,或带有自由流功能的工作流系统一般更易于接受。

  值得一提的是,工作流与业务流的定义范围有相当程度的交叠与互斥,这取决于采用的流程管理产品(或几个不同产品)及架构设计及理念。工作流可以理解为技术层面的东西或办公自动化,而 SOA 关注业务流的实现,及与之相关的价值链,并且关注流程的生命周期管理。其实,工作流或业务流本身并无绝对优势,用好用对才是关键。

0