文章 - 212 评论 - 33 收藏 - 0 粉丝 - 12 访问量 - 237449

      摘自:斯欧信息公司专著《面向服务的企业应用架构》

 

    在SOA 实践中,对于 BPM面临着不少困惑与选择,主要是工作流与业务流的架构区别。有些项目把业务流产品用作工作流设计,而有些工作流为主的产品工具却作为业务流实现。这里简单地讨论一下 BPM 中业务流与工作流的作用区别。表2‑3简要概述了工作流与业务流的主要区别。

 

     2‑3  工作流与业务流的主要区别

    

 

工作流

业务流

架构模式

简单地说,是定义,构建及执行流程。工作流基本上属于面向应用的流程架构,例如,典型的人工审批流,页面流,文档的路由等。从项目过程来看,一般根据业务部门的用例需求,由技术人员遵循传统步骤进行设计,开发,测试,部署。工作流一般强调快速开发,着眼于局部应用,反复多。重用性差。

具有服务组合,服务编排及并发处理的能力。强调面向服务的企业级端到端业务流程管理。主要用于跨系统,跨部门的企业系统,例如,与 ERP 系统的整合。业务流项目关键在于业务梳理及优化分析。项目重点为建模,组装 / 接口转换及管理。流程导向以业务为中心,关注全局业务价值及服务重用。

开发运行

建模与开发使用统一流程模板。具有一定的工作流模式。流程较为可控。可使用多种不同的编程语言。编程除错基本反映在程序层面。学习上手较快。单一流程开发周期较短。业务流程监控一般表现在流程或活动节点

一般建模与开发分开进行。强调业务为导向。流程状态及动态性可通过服务组合与其它系统关联。当流程跨越多个用户及交互时,与组织结构的变化关联较大。服务可动态绑定。编程模式可采用核心的 SDO/SCA/BPEL 规范。编程除错反映在建模和流程界面。业务流关注的是服务的组装,而非代码开发。流程设计具有一定的曲线要求。业务流程监控涉及流程 / 任务以及业务对象层,强调实时业务调控。

接口差异

比较适于图像,文档等传输。使用变量参数,一般无松散持久层。也就是说,它与业务服务没有密切的关联。通俗地说,工作流只是将行动节点串接起来,例如,常见的人工审批流程。其人员接口内嵌于流程,系统接口主要是调用应用程序,本身并不强调服务组件接口,业务应用不对业务人员透明。工作流一般用于系统应用内或系统应用间。特点是灵活跳转,松散耦合。

适应于系统业务重组优化。其数据接口关联主要通过 SDO/ 业务对象,使流程附带结构性数据。在业务流中,流程与业务数据关联更加密切,智能化程度加强。在流程接口调用不同服务组件时,能够进行系统间关联及确保事务的完整性。人工任务接口可设置为内嵌,或独立的人员服务,生成不同形态的临时人工任务。例如,在电子采购业务中,动态的人工任务环节可由人员服务来实现。业务流的系统接口主要针对外部异构应用系统,适合企业级系统与系统间标准化的交互整合。

产品技术

一般使用私有技术或 J2EE 等。流程引擎将任务,人员组织等内置。通过引擎进行队列,优化。

以标准形式兼容不同技术。流程引擎构成技术服务组件,属于产品化中间件。

 

     简言之,业务流程管理主要包含业务建模,组装,部署及管理。使用业务流或工作流工具似乎都能设计开发业务流程管理。但从 SOA 的角度,服务的划分及交互通常是项目关注的重点。所以, SOA 强调的是如何灵活组合业务服务。而业务流的核心功能是编排流程服务,并且主要针对企业级应用整合。同时利用 BPM 工作流的主要功能,诸如 : 活动(任务)节点的人工任务配置,流程运转时的活动节点调控等。

     在 SOA/BPM 初始阶段,如果一个企业没有较深的 IT 或 ERP 根基,实施业务流会有相当的阻力。因为业务流程管理并非主要是技术问题。对于有些中小型企业或应用 ( 特别是那些没有规范支撑的人工流程模式),一些随意包干,或带有自由流功能的工作流系统一般更易于接受。 对于同样的一个较为复杂的流程应用项目, 如果使用工作流, 会显得很复杂, 结果是很多流程产出件,而如果使用业务流,一般架构设计较为规范, 流程量骤然减少, 重用性提高。

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

发表于: 2013-05-10 15:23 阅读(6162) 评论(0) 收藏 好文推荐

发表评论(网友发言只代表个人观点,不代表本网站观点或立场。)

您尚未登录,请先【登录或注册