如何通过BPMS执行流程分解来提高重用率和降低复杂性

本文适用于参与 BPMS 计划的业务领导、架构师和分析师。我接触过的一些组织信奉 BPM 原则,他们选择了使用一种">业务流程管理系统 (BPMS) 平台,结果发现部署第一个流程自动化解决方案很容易,但将 BPM 扩展到整个组织来实现他们最初计划的流程统一化和标准化水平却很难。

我将会解释,如果在开发一个合理的业务流程架构之前就投资执行流程自动化,通常会出现这种情况。谈到 “业务流程”,我指的是对一个活动序列的逻辑描述,组织执行这些活动来生成有价值的结果,无论它们的自动化水平如何。通过定义易于管理的、可在更大的价值链中重用和合成的流程,合理的架构可以最大程度地实现业务操作所实现的价值。在本文中,我将展示如何实现此架构,设计具有定义明确的职责、清晰的所有权和彼此松散耦合的流程。

developerWorks 上发表的一些文章已讨论了如何基于技术维度来分类和分解流程。但是,我的目的是向业务领域应用架构思维。在考虑技术之前,您如何确定一个流程何时开始和结束?它的核心职责是什么,它与组织的其他流程有何关系?

将高级流程步骤分解为不同粒度级别的子流程的基本技术,本身无法用于开发成熟的架构。在我的经验中,这仅适用于一些受限的场景,其中的业务可简单地描述为一个线性的活动序列,而且每个功能区域都与组织的其余区域隔离。本文从更加整体性的视角来审视一个流程架构的设计和它的组件定义。

定义上下文和范围

企业级业务建模规划的复杂程度可能让人望而却步。试图好高骛远的风险始终很高,定义一个明确的范围可能是成败的关键。为此,您需要有一个在整个组织内共享的参考依据。这个参考依据都可以由一个 能力模型 提供:组织职能的一种高级图表,其中每个组件表示一个逻辑功能,这些功能具有内在的高凝聚力,但彼此松散耦合。IBM 为每个行业开发了一组能力图表,称为组件业务模型 (Component Business Model, CBM)。这些图表使用行对可靠性水平进行了分类(从战略到控制和执行),而列是围绕企业价值链的不同区域来设计的。

因为能力模型的元素具有内在的高凝聚力,并且彼此松散耦合,所以它们的界线为制定一个没有太多外部依赖性的流程建模工作的范围提供了有效的准则。您不应低估在整个组织上下文中通过突出显示要解决的组件来一致地沟通工作范围的价值,如图 1 所示。

图 1. 零售银行的组件业务模型

(查看图 1 的大图。)

业务流程分解

定义一个清晰的范围之后,如何得出一个条理清楚的架构?上面已经提到过,在这点上,大多数传统的流程分解技术都无法胜任。将粗粒度的活动分解为子流程时,您仅分析了组织的行为。遗漏了至少两个重要的维度:结构和信息。然后,整体方法应该利用 3 种补充性技术:流程分析、结构分析和信息分析。

流程和结构分析

您可以将流程想作是一个组织对企业内外的某个人的产品或服务需求的响应行为。流程分析专注于组织的工作原理,将每个高级流程分解为不同级别的更细粒度的活动。

例如,我们想象一家租车公司的情形。图 2 给出了组织支持客户租车需求的行为的分解图。

图 2. 租车行为分解

另一方面,结构分析考虑的是组织的组成部分,将每个高级功能分解为更小、更具体的区域。因为会分析和描述每个功能区域的责任,所以这些区域被放置在它们与其他功能区域的关系的更大上下文中。

时间: 2024-10-31 15:09:28

如何通过BPMS执行流程分解来提高重用率和降低复杂性的相关文章

MYSQL执行流程的简单探讨

说到mysql的执行,就不得不说它的执行流程.而它的执行流程又分为标准执行流程和优化后的执行流程. 标准流程 标准流程是SQL执行的标准流程,几乎所有的SQL数据库都是以这个流程作为基础的.那么在联表的时候,他的流程是怎么样的呢? 这里会带入两个专业的名词,笛卡尔积,虚拟表(Virtual Table 简称VT); 笛卡尔积这个说明的篇幅太长,大家可以先google一下,这里就不说明了,而且一般有学过集合的同学,都知道这么一个东西 VT就是虚拟的表,在mysql处理某个问题的时候,它需要一个容器

phptrace —— 来自 360 的 PHP 执行流程跟踪

phptrace 是一个追踪(trace)PHP执行流程的工具,你如果用过strace的话,则可能很容易想到phptrace到底实现了什么样的功能. 其实,phptrace是类strace的一个实现,不同的是,strace用来追踪系统调用,而phptrace用来追踪PHP函数调用.无论是开发测 试 还是线上追查问题,代码执行流程往往会提供许多有用的信息,大大提高了开发人员的工作效率:对于系统函数,我们可以用strace 来观察其调用信息,然而PHP却长久以来缺少这么一个行之有效的工具,因此我们开

我的CMS开发记-4 介绍一下DotNetNuke的系统执行流程

有朋友说应该写个大致结构出来.想想也有道理,那么我就来介绍一下Dotnetnuke的执行流程.基本上我这个就是照搬他的 基本思路 一个站点,无论其内容多么丰富,频道,栏目等无论有多少,其最终的表现形式终归是一个一个页面.系统直接对页面进行处理,至于页面上放什么内容,这个没有关系 ,放什么模块,就呈现什么内容.和传统CMS系统的"首页","列表页","终端页"的三大类分类完全不同,我们认为,无论是首页也好,列表页也好,它最终无非还是一 个"

Struts框架之 执行流程 struts.xml 配置详细

1.执行流程 服务器启动:          1. 加载项目web.xml          2. 创建Struts核心过滤器对象, 执行filter  →  init()   struts-default.xml,    核心功能的初始化 struts-plugin.xml,      struts相关插件 struts.xml                 用户编写的配置文件  访问:          3. 用户访问Action, 服务器根据访问路径名称,找对应的aciton配置, 创建

Android系统Recovery工作原理之使用update.zip升级过程---updater-script脚本语法简介以及执行流程(转)

  目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制. 一.update-script脚本语法简介:           我们顺着所生成的脚本来看其中主要涉及的语法.         1.assert(condition):如果condition参数的计算结果为False,则停止脚本执行,否则继续执行脚本.         2.show_progress(frac,sec):frac表示进度完成的数值,sec表示整

通过一个模拟程序让你明白WCF大致的执行流程

在<通过一个模拟程序让你明白ASP.NET MVC是如何运行的>一文中我通过一个普通的ASP.NET Web程序模拟了ASP.NET MVC的执行流程,现在我们通过类似的原理创建一个用于模拟WCF服务端和客户端工作原理的模拟程序.[源代码从这里下载] 目录 一.基本的组件和执行流程 二.创建自定义HttpHandler实现对服务调用请求的处理 三.定义创建WCF组件的工厂 四.定义HttpModule映射WcfHandler 五.创建自定义的真实代理实现服务的调用 六.定义服务代理工厂 七.服

HBase Filter介绍及执行流程

HBASE过滤器介绍:         所有的过滤器都在服务端生效,叫做谓语下推(predicate push down),这样可以保证被过滤掉的数据不会被传送到客户端.         注意:         基于字符串的比较器,如RegexStringComparator和SubstringComparator,比基于字节的比较器更慢,更消耗资源.因为每次比较时它们都需要将给定的值转化为String.截取字符串子串和正则式的处理也需要花费额外的时间.         过滤器本来的目的是为了筛

angularjs源码分析之:angularjs执行流程

angularjs用了快一个月了,最难的不是代码本身,而是学会怎么用angular的思路思考问题.其中涉及到很多概念,比如:directive,controller,service,compile,link,scope,isolate scope,双向绑定,mvvm等.最近准备把这些都慢慢搞懂,分析源码并贴到博客园,如有分析不对的地方,还望各位包容并指正. 先上个大图,有个大概印象,注:angularjs的版本为:1.2.1,通过bower install angularjs安装的. 几个重要方

UBOOT添加命令的执行流程

BootLoader(引导装载程序)是嵌入式系统软件开发的第一个环节,它把操作系统和硬件平台衔接在一起,对于嵌入式系统的后续软件开发十分重要,在整个开发中也占有相当大的比例.U-BOOT是当前比较流行.功能强大的BootLoader,可以支持多种体系结构.LH7A400是Sharp公司生产的一款基于ARM922T内核的32位RISC芯片,本文详细介绍U-BOOT的功能.特点以及在LH7A400处理器上的移植过程.希望对大家有所帮助,更好的了解uboot命令的执行流程. 具体内容如下: U-Boo