CIO须知:企业如何更好地实施BPM
对于BPM一定是包括了自动化的业务流和人工工作流引擎两部分的内容,同时为了更好的处理在业务流程建模中的业务规则往往还需要有单独的规则引擎子系统或模块。一个完整的BPM系统往往包括了流程建模和设计,数据建模,界面设计,基础数据和权限设计,流程执行和监控,流程仿真,流程绩效评估多个方面的内容。由于BPM主要完成的流程组合和编排是是整个SOA架构的上层内容,因此一个完整的BPM系统设计和构建本身就是组件化和SOA服务化思想进行的。对于BPM一定是包括了自动化的业务流和人工工作流引擎两部分的内容,同时为了更好的处理在业务流程建模中的业务规则往往还需要有单独的规则引擎子系统或模块。一个完整的BPM系统往往包括了流程建模和设计,数据建模,界面设计,基础数据和权限设计,流程执行和监控,流程仿真,流程绩效评估多个方面的内容。由于BPM主要完成

第二是对于企业内部的很多职能管理部门,如审计部门,风控部门,流程管理部门等,这些部门本身不承载核心业务价值链上的单据产生和业务,而重点是基于已有业务系统能力进行的IT管控和治理,因此对于这些部门新建设的业务系统是最适合通过BPM工具来完成的。对于BPM本身在进行流程建模设计的时候,也要注意到最好采用子流程的模式进行分层建模和设计,即对于BPM流程的顶层重点是自动化的端到端业务流,而对于下层才是人工审批流流程,否则一个完整的端到端BPM流程将很难进行后续的执行监控。
当前很多企业就IT成熟度来说都没有到能够理解和实施BPM的程度,这也是为何很多企业的BPM实施仅仅变成了一个企业内部的统一工作流引擎平台实施的原因。 个人认为对于一个BPM项目的成功实施,最重要的就是分析和建模方法的转变,如果仍然是按照传统的方法已经将业务分解到多个业务系统,那么面对的又将是遗留系统流程整合问题,而不是直接通过BPM+SOA方式来构建业务系统的问题。流程驱动IT是分析建模中的一个重要点,从流程开始自顶向下分析和分解,划分组件和识别服务;在从组件开始自底向上进行服务组合和编排,形成应用或流程。这是一个完整的闭环路线,没有前者我们就很难真正的保证我们最终划分的组件,识别的服务能够真正应用到后续的服务组合和编排上面。 不应该太早的进入到业务系统的概念,对于SOA整个咨询和建模方法论里面的,我们是弱化业务系统的概念,而是进一步强化了业务组件和技术组件的概念。这样做的目的主要是在SOA参考架构里面原有的业务系统已经变成一个弱边界,业务系统仅仅是多个组件的灵活组合或组装;其次当我们以业务系统出发进行考虑的时候,我们思维里面仍然是纵向架构模式,但是当我们以组件,服务和流程角度来考虑的时候,思维里面是一种横向分层架构模式。对于横向架构模式本身重要的目的就是要打破传统业务系统纵向的强划分。 上面谈的是BPM实施中相当关键的一点,把这点想清楚了就清楚了BPM流程建模的真正意义。在流程建模过程中我们是按照流程驱动的思路在分解流程,在规划流程应该涉及到的流程环节和活动节点,在设计每个流程节点应该业务自动化和人工化处理的事情,在考虑相关的流程节点是否应该有前台的展现和交互界面,表单所涉及到的数据对象结构;这块想通了我们才会进一步考虑这些需要的数据或业务规则逻辑处理能力究竟应该由下层的哪些业务组件或技术组件来提供这些服务。 上面这句话如何理解?即就业务组件或技术组件本身来说还是按业务域,数据或技术域分开的,底层是组件化和服务化的,但是这些组件本身更偏服务能力提供,这些组件并不关系前端对应了什么流程,应该有什么样的人机界面交互,这些组件的职责相当简单,就是提供业务或技术服务能力而已。但是在组件或服务的上层,我们最终涉及完成的前端或业务流程流转所需要的界面却是不分业务组件或系统的,其本身就是流程化和一体化的,这些前端界面,交互和展现不属于任何一个业务系统,而应该属于BPM系统。 这就是一个理想化的BPM构建的方法和思路,把这个思路想明白后做过传统IT系统开发的就比较容易理解为啥BPM系统实施如此困难,为何BPM系统实施看到的很多都是单纯的HWF人工工作流引擎的实施。这个的本质就是分析和建模思路没有转变,没有从传统围绕业务系统为核心转换为横向的围绕组件和服务为中心来思考。 BPM构建和实施层面 当前各个国际大厂商的BPM工具和产品套件已经相当成熟,但是在这里要说明的是BPM软件产品虽然可以灵活的通过配置和可视化建模设计和方式来构建业务系统前端流程,但是其配置的繁琐和复杂程度往往超过了直接写代码的模式。也就是说很多时候可配置的方法虽然开似很美好,能够灵活的应对业务的变化,但是很多时候往往开发配置效率是降低的,同时对于BPM本身新设计完成的流程仍然涉及到需重新发布的过程,也远远无法达到我们期望的零部署模式。 一个BPM建模和执行工具平台,更多的是从服务层开始流程整合,而不是从遗留系统的界面层。如果已经有成熟的业务系统和前端功能界面,那么实际问题仅仅是两个系统的两个功能间的业务或数据交互问题,这类问题是不需要用BPM工具来解决的,直接用到ESB服务总线这层就足够了。对于BPM平台一定要注意到其擅长的并不是单个业务系统内部的功能构建,如果一个业务系统本身不涉及到外部交互,仅仅涉及到内部功能或数据流转,我们其实强烈不推荐采用BPM产品和建模方法,能够有人工工作流引擎就足够了。一个稍微复杂点的业务如果全部用BPM可视化建模和配置来实现出来,超过几十个节点是常事。这种BPM建模文件文件维护的难度反而不如逻辑清晰的源代码。不要把BPM产品理解为快速开发平台,虽然很多BPM产品想朝这个方向走,但是确实不是BPM擅长的事情。 真正BPM产品最擅长的还是在跨系统的业务流程场景出现的时候,这种业务场景显然放在任何一个已有的业务系统都不合适,但是这种端到端流程本身在业务上又需要统一管理和管控。在这种场景下是最需要BPM的能力,即前端交互和流程流转统一规划和设计,原有的业务系统仅仅为上层提供数据和业务服务能力。 大家可以考虑下,如何我们要构建一个企业电商的客户自服务平台,这个自服务平台需要能够方便客户实现对从订单到交互的全流程跟踪和管理。这种平台往往本身并不产生大量的基础数据和存储逻辑,而是需要大量的调用或系统企业内部已有的CRM系统,ERP系统,PDM系统,MDM系统的能力。对于这些遗留系统能够提供的能力根据客户需求和流程的需要进行组合和编排。同时基于这些能力,重新设计端到端的前端界面交互和流程流转,这就是一个BPM相当理想的实施环境。从这个层面来说企业内部常见的风险管控系统,合同端到端跟踪系统,财务共享服务平台等都是比较适合BPM的应用场景。
评论
- 暂时没有评论,来说点什么吧





