CIO信息化管理
按行业筛选
请选择行业
----------------------
-全部行业
------------------
-机床与金属加工设备
-刀具/量具/夹具/磨具
-模具设计与制造
-塑料机械/橡胶机械
-通用机械/化工机械
-工程机械/建材机械
-交通运输/海工装备
-农业机械
-食品机械/烟草机械
-包装机械
-印刷机械/广告设备
-纺织机械
-木工/造纸/环保/医疗设备
-物流设备
-智能楼宇/安防设备
-炉窑/热处理设备
-五金工具
------------------
-工业自动化
-佳工激光网
-仪器/仪表/衡器
-电力设备
-电子/通讯/办公文具
-家电/照明/健康设备
------------------
-基础件/通用件
-标准件
-工业原材料
-电子元器件及材料
-包装材料
------------------
-CAD/CAM/PDM/PLM
-ERP/制造业信息化
-管理咨询/认证
-服务/培训/工业设计
按产品筛选
----------------------
-本行业全部文章
--------------------
-企业资源计划ERP
-OA办公自动化
-CIO信息化管理
-电脑/软件/周边产
-网络/安全/存储产
机电信息化
查看本类全部文章
SOA流程项目:业务流还是工作流?
作者:
SOA 的主要目的是实现业务的敏捷性,而 BPM(业务流程管理)是 SOA 价值的关键所在。但在 SOA 实践中,对于 BPM 仍面临着不少困惑与选择。有些项目把业务流产品用作工作流设计,而有些工作流为主的产品工具却作为业务流实现。这里简单地讨论一下 BPM 中业务流与工作流的作用区别。
简言之,业务流程管理主要包含业务建模,组装,部署及管理。使用业务流或工作流工具似乎都能设计开发业务流程管理。但从 SOA 的角度,服务的划分及交互通常是项目关注的重点。所以, SOA 强调的是如何灵活组合业务服务。而业务流的核心功能是编排流程服务,并且主要针对企业级应用整合。同时利用 BPM 工作流的主要功能,诸如 : 活动(任务)节点的人工任务配置,流程运转时的活动节点调控等。
工作流与业务流的主要区别
现在来简要概述一下工作流与业务流的主要区别。
架构模式
工作流,简单地说,是定义,构建及执行流程。工作流基本上属于面向应用的流程架构,例如,典型的人工审批流,页面流,文档的路由等。从项目过程来看,一般根据业务部门的用例需求,由技术人员遵循传统步骤进行设计,开发,测试,部署。工作流一般强调快速开发,着眼于局部应用,反复多。重用性差。
业务流具有服务组合,服务编排及并发处理的能力。强调面向服务的企业级端到端业务流程管理。主要用于跨系统,跨部门的企业系统,例如,与 ERP 系统的整合。业务流项目关键在于业务梳理及优化分析。项目重点为建模,组装 / 接口转换及管理。流程导向以业务为中心,关注全局业务价值及服务重用。
开发运行
工作流 的建模与开发使用统一流程模板。具有一定的工作流模式。流程较为可控。可使用多种不同的编程语言。编程除错基本反映在程序层面。学习上手较快。单一流程开发周期较短。业务流程监控一般表现在流程或活动节点。
业务流 一般建模与开发分开进行。强调业务为导向。流程状态及动态性可通过服务组合与其它系统关联。当流程跨越多个用户及交互时,与组织结构的变化关联较大。服务可动态绑定。编程模式采用核心的 SDO/SCA/BPEL 规范。编程除错反映在建模和流程界面。业务流关注的是服务的组装,而非代码开发。流程设计具有一定的曲线要求。业务流程监控涉及流程 / 任务以及业务对象层,强调实时业务调控。
接口差异
工作流 比较适于图像,文档等传输。使用变量参数,一般无松散持久层。也就是说,它与业务服务没有密切的关联。通俗地说,工作流只是将行动节点串接起来,例如,常见的人工审批流程。其人员接口内嵌于流程,系统接口主要是调用应用程序,本身并不强调服务组件接口, 业务应用不对业务人员透明。 工作流一般用于系统应用内或系统应用间。特点是灵活跳转,松散耦合。
业务流 适应于系统业务重组优化。其数据接口关联主要通过 SDO/ 业务对象,使流程附带结构性数据。在业务流中,流程与业务数据关联更加密切,智能化程度加强。在流程接口调用不同服务组件时,能够进行系统间关联及确保事务的完整性。人工任务接口可设置为内嵌,或独立的人员服务,生成不同形态的临时人工任务。例如,在电子采购业务中,动态的人工任务环节可由人员服务来实现。业务流的系统接口主要针对外部异构应用系统,适合企业级系统与系统间标准化的交互整合。
产品技术
工作流 一般使用私有技术或 J2EE 等。流程引擎将任务,人员组织等内置。通过引擎进行队列,优化。
业务流 以标准形式兼容不同技术。流程引擎构成技术服务组件,属于产品化中间件。
项目案例
在 BPM 项目中,业务流偏于应用业务整合及业务动态组合。工作流则偏于人员交互等。 BPM 通常同时包括工作流和业务流,集流程调控与企业应用整合于一身。在项目中,取决于业务需求,往往采用不同的流程架构设计。例如,侧重于人员交互的流程管理以工作流为主,而强调业务服务组件的灵活性以业务流为主,并可外加人员服务。当然,也可同时采用工作流与业务流形成综合业务流程管理系统,例如,以工作流为导向,利用业务流的组合服务,同时利用企业整合的中介服务等。
下面我们通过简单的图示,来看一下在四个流程项目架构设计中,工作流与业务流的不同偏向。
以工作流为导向的面向构件流程架构
目前国内很多业务流程管理项目采用以工作流为主的流程架构。工作流流程主要关注于流程的灵活跳转, 快速开发等。 如图一所示, 工作流通常是以人员为中心的架构设计。 当然, 也有文档为中心等。 工作流一般直接调用应用程序, 或 Web 服务等。 其功能包括 : 简单规则, 动态人员配置, 消息对象设置, 基本事件处理, 表单链接, 自由跳转路由等。 但工作流没有服务编排功能。
图 1. 以工作流为导向的面向构件流程架构示意图
当然,这种架构如果主要调用服务来实现业务转换的,亦有称之为面向服务的。但从主体上来说,它强调的是人工节点流或页面流的灵活性,而非业务服务的灵活性。只有当这一架构与业务服务(特别是组合服务)关联密切而松耦合绑定(通过服务中介总线)时,它才能取得面向服务的效应。
以业务流为导向的面向服务流程架构
以业务流为主的流程架构有不同的实施方法。下面是两个项目案例。
图二主要应用于现有系统的整合,特别是与 ERP 相关产品的整合。一般通过流程的编排功能及并行处理能力,将不同系统进行关联,实现业务的有效组合。在不改变原有系统的基础上,设计业务流程,满足目前业务的需求。这种流程设计一般使用中介及转换使系统间松散连接。接口一般采用标准形式,例如,基于 JCA 标准的适配器。业务监控反映在业务对象层面。符合 SOA 对 KPI 监控的设计理念。在实际应用时,结合使用临时人工任务,状态机,版本控制,业务规则服务,动态服务绑定等。
图 2. 以业务流为导向的面向服务流程架构示意图
图三是以结合使用了动态节点的架构设计。使业务流增添了自由节点的灵活性。通过使用循环节点,根据用户动态指定,确定节点及相应参数。这种设计考虑工作流与业务流的双重效应。业务与流程信息通过数据层关联,并由此形成业务监控数据源。
图 3. 带有动态节点的业务流架构示意图
工作流与业务流松散耦合的流程架构
在工作流及业务流产品兼有的情况下,松散耦合两种产品技术也是一种整合方案。如图四所示,前端页面应用通过统一的前端接口(Facade)调用不同的工作流或业务流接口或服务组件。后端的工作流与业务流基本上独立运转,工作流可以调用业务流服务。前端接口不局限于固定的应用或组件。例如,监控部分可以通过松耦合的形式,与工作流或业务流监控组件或服务接口链接,在界面灵活地展现。
图 4. 工作流与业务流松散耦合的流程架构示意图
结束语
从 BPM(业务流程管理)的角度来说,整个过程应该包含从业务分析至监控管理,而且分析,管理是 BPM 的关键所在。本文主要侧重于流程的简要架构设计,对业务流与工作流作了基本的比较。
在 SOA/BPM 初始阶段,如果一个企业没有较深的 IT 或 ERP 根基,实施业务流会有相当的阻力。因为业务流程管理并非主要是技术问题。对于有些中小型企业或应用 ( 特别是那些没有规范支撑的人工流程模式 ),一些随意包干,或带有自由流功能的工作流系统一般更易于接受。
值得一提的是,工作流与业务流的定义范围有相当程度的交叠与互斥,这取决于采用的流程管理产品(或几个不同产品)及架构设计及理念。工作流可以理解为技术层面的东西或办公自动化 ,而 SOA 关注业务流的实现,及与之相关的价值链,并且关注流程的生命周期管理。其实,工作流或业务流本身并无绝对优势,用好用对才是关键。
文章内容仅供参考
(投稿 )
(如果您是本文作者,请点击此处 )
(11/23/2010)
对 CIO信息化管理 有何见解?请到 CIO信息化管理论坛 畅所欲言吧!