本文主要是介绍穿越BPM迷宫指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原文:http://www.tibco.com/resources/solutions/bpm/bpm_maze_wp.pdf
在一个完整的BPM解决方案中能找到什么
多家供应商,涉及多种标准,还有不断变更的需求,这让我们很难去认识到有哪些是能够满足BPM项目需求的。本白皮书将讨论如何实现一个完整地BPM解决方案,可以对核心业务流程进行端到端管理,成为一种帮助企业生产力和效率的方式。
简介
每一项业务的核心其实都是一组决定业务功能的流程。这些流程的效率直接影响着业务的成败。随着竞争的日益加剧,需求的管理与调整,操作效率的实时需要,这些流程变得越来越重要,并且成为企业之间进行区别的核心。业务流程管理(BPM)和那些已经存在的贸易和业务一样古老,它总是以一种提高业务能力并且适应业务需求变化的方式管理这些核心的业务流程。
然而,最新的技术和标准将BPM提高到了一个新的层次。它现在可以为整个业务流程的自动化和管理,为可持续地流程改进的封闭循环过程,从建模、仿真,到执行、监控、优化,提供一个全面的,基于技术的解决方案。此外,为了使可持续的流程改进的封闭循环过程更加自动化,在生命周期的每一步都要充分考虑不同用户的情况,以提高这些工具的可用性。比如,业务流程的建模和仿真是由业务分析人员来完成的;实现这些业务流程并于现有的IT系统集成是由开发人员来完成的,等等。
图1. 包含用户角色的业务流程生命周期
这种方式提升了流程效率并且将操作简化到了前所未有的层次。为了在日益全球化并且高度竞争的市场上使自己的业务都有竞争力,采用BPM对企业变得势在必行。
什么是完整的BPM解决方案?
完整的BPM解决方案可以非常灵活的对企业中的业务流程进行端到端的管理,这种管理方式可以提高企业的生产力。为了实现这种方式,BPM解决方案需要有几套很好的集成组件,这些组件都针对用户进行了优化。在后面的几节中,我们会描述完整的BPM解决方案的高级架构,现在考虑如下几点:
l 激发业务流程生命周期中每一个阶段的因素
l 在生命周期中的每一个阶段中每一个的组件的需求
l 将要与生命周期中每一个阶段的业务流程交互的人的信息
下图就是一个完整的BPM解决方案所需要的功能组件的简示。以下的每一个小节会讲解每一个组件如何在整个解决方案中的作用。
图2. 完整的BPM解决方案的架构参考
设计
业务分析人员使用的设计环境
一个好的BPM设计环境要能提供强大的建模和仿真功能。随着业务的作用在流程管理项目中变得越来越明显,这些需求也变得越来越重要。成功的BPM项目,通常都是来自业务和业务需求。业务分析和建模的参与水平和建模是在哪里开始参与,都直接影响着项目的成功。对建模环境的需要的产生于为了定义一个流程需要先在白板上将它画出来。建模阶段产生流程的定义,这些定义信息被存储在一个带有版本控制和管理的仓库中。这些由业务分析人员进行设计的流程定义,需要开发人员也能够无缝的通过共享的仓库加以利用,可以让它们来实现这些业务流程的细节。对流程仿真的需要产生自于服务水平协议(SLA)中对流程设计因素的需要和通过多种场景来进行假设分析。
BPM的建模环境需要提供一个用户界面用于进行业务分析,不需要展示给用户太多复杂的技术细节。这个建模环境可以兼容由其它建模环境定义的流程。它需要生成基于标准的流程定义,比如使用XPDL(XML流程定义语言)或者BPEL(业务流程执行语言)。好的建模环境不需要用户编写程序代码。
IT开发人员使用的快速应用开发环境
BPM的承诺包括灵活的发布能力和应对变化的能力。这就需要更短的开发周期。这就需要利用快速应用开发环境(RAD)。RAD提高了开发的速度,同时也提高了业务流程实现的质量。RAD开发环境需要满足IT开发人员的需要,使他们用最短的时间内实现流程的具体细节。
应用开发环境要能与建模和仿真环境进行无缝连接,并且开发人员能够使用业务分析人员的流程定义和流程仓库。为了避免错误,开发人员不要对流程模型进行改写或者重建。好的应用开发环境尽量不要让用户进行自定义编码。自定义编码代价太高而且通常需要特别的技术来进行创建和维护。应用开发环境还需要提供一种通过流程仓库管理业务流程的功能,包括版本控制管理,并且提供对流程进行测试和调试的功能。最后,应用开发环境需要直观并且易于使用。
流程可重用性
BPM解决方案应该支持流程重用——将实际的业务流程进行分解,放到流程组件中,在新的业务流程中重用这些流程组件。这就促成了BPM的一种面向目标的方式:在目标的不同时期进行流程的设计,在接近目标的每一步都通过流程组件来实现。这就通过关键路径分析,来检查每一个子目标是否已经实现,避免那些可能对整个流程造成危害的情况。
易于使用是流程可重用性的一个关键需求。用户不需要编写任何的代码来创建流程组件。类似的,能够很容易的使用这些流程组件也是必须的。当流程在使用的过程中,流程的目标发生了变化,它需要能够在使用过程中进行重新构建,使这些流程能够满足新的需求。
执行
面向服务架构和业务流程管理
在任何IT项目实施中,唯一不变的就是变化。SOA是一种用来应对变化的架构方式,帮助企业应对变化带来的冲击。没有使用SOA的IT项目实施,不得不应对那些定期发生的和不定期发生的变化。比如网络提供或者实施一个新的CRM系统,变化肆虐于日常的业务当中,并且影响着企业的生产力水平。
SOA的目标是使软件代理之间进行松耦合的交互。这样可以进行重用以及对实现细节的抽象,各个代理就可以独立的进行修改。网络中的资源可以作为独立的服务,用户不必了解这些服务的底层平台实现,就可以对它们进行访问。这些作为服务的资源被保存和并编入服务仓库的索引。
将BPM部署到SOA之上,它就可以与IT架构的底层细节隔离。BPM可以利用SOA提供的服务,把它们作为组件用来编排复杂的业务流程。SOA通过事先定义和发布的服务接口,将BPM与底层系统发生的变化隔开。没有SOA的BPM解决方案也是可行的,可以从业务流程建模开始,直接将BPM与IT架构的集成。但是这样使业务流程和底层系统紧密耦合不是很合适的方式,它会变得难于维护并且更加复杂。好的BPM解决方案也不会被任何特定的SOA实现约束。
符合工业强度的流程引擎
每一个BPM解决方案的核心都是一个符合工业强度的流程引擎。要用它管理那些应用系统和用户之间长时间运行的交易。引擎的质量直接影响到BPM解决方案的质量。以下是对流程引擎进行评估的参考:
l 交易完整性:引擎中那些连续的和单独的交易,以及跨越多个关键应用系统与引擎进行交互的交易的完整性。
l 高可靠性:引擎不能有任何的停机时间,它能够保证24*7的可靠工作。
l 负载均衡:引擎必须能够通过服务器集群提供负载均衡能力。
l 灾难恢复:引擎要能够备份关键信息和流程元数据,能够在业务失败的时候进行回滚操作。备份数据应当总是当前数据,避免数据的丢失。
l 扩展性:增加众多的用户或者添加大量的业务用例,不应造成引擎的停机。
l 预测和特设的错误和异常处理:用户可以在设计态中就对预期的情况建立错误和异常处理机制。特定的异常和流程应该很容易掌控。
l 状态维护:引擎要有类似状态机的状态维护机制,来保证流程的某一步在走到下一步或者在出错的时候能够进行回滚操作。
l 上下文维护:并不是业务流程中所有的用户和应用系统都需要看到所有的功能和信息。所以,引擎需要内嵌有维护上下文信息的能力。
l 基于标准的流程定义:引擎不能被某一种供应商限制。它必须能够运行任何遵守工业标准的流程。
l 易于测试、调试和部署:在流程正式投入生产运行之前,它可以在测试状态运行。要可以设置流程的调试级别。也要为引擎提供一种状态的管理和监控机制。将流程从测试状态转移到生产状态是一个很平滑的过程,不应有任何问题。
l 版本控制:要可以部署不同版本的流程,即使是在运行状态;要能够追踪到每个版本的不同。
业务规则引擎
业务规则是一组状态,这些状态是为了管理业务中的业务流程、活动和过程而定义的约束和条件限制。BPM解决方案的需求之一就是与业务规则引擎(BRE)的集成能力。业务规则可以产生自企业的各个方面。比如,当服务水平协议不匹配的时候需要应用什么样的规则?当批准一项交易的时候,需要什么样的规则?业务规则的变化通常也比流程定义的变化更加频繁。比如,批准信用卡申请标准的变化比实际的信用卡申请流程的变化要频繁的多。
好的BPM解决方案不会要求业务规则被硬编码到业务流程中,每一个做为条件的规则都是可以变化的。它应该能够独立与业务流程之外被改变。BPM应该能支持独立的BRE,它要与流程引擎松耦合并且能够在业务流程中被触发。有效的BRE中的业务规则必须是明确的,用户友好的,要很容易得就能学会,并且能通过算法规则来获得尽可能小的响应时间。
业务流程参与者的客户端工作区
BPM的客户端工作区是将业务流程展现给最终用户的,所以可用性是关键。
用户在工作区要能够快速的查找并完成作业项,能够对作业的查看和控制进行管理。IT开发人员应该可以改变工作区,可以将它进行扩展或者嵌入到其它的应用系统中。在客户端工作区可以对上下文和状态进行维护,可以很容易的或者自动的刷新用户队列,这样新的作业项就可以自动地展现给用户。对于作业项可以进行有排序,查找和过滤操作。
监控与管理
业务活动监控
在BPM当中,通常使用业务活动监控(BAM)软件对业务流程提供实时的监控。它能够帮助管理人员鉴别异常信息,对大吞吐量的信息进行分析,找到瓶颈的根源,跟踪关键性能指标(KPI),当KPI超过限定值时向相应的负责人发出警告。比如,一家进行抵押申请处理的公司可以跟踪有多少申请正在处理或者已经完成,计算申请者的平均信用率或者贷款利率,并且在过去一个小时出现太多的高风险贷款申请时发出警告。
实时监控并不是要让数据市场建立的更快或者使交易系统变得更快。它必须是基于事件的,并且实时地捕捉这些事件。高效的BAM能够更有效的监测流程,鉴别瓶颈的来源,并且针对目标进行性能追踪,这些都是在实时的情况下完成的。它能够根据KPI指标来监控流程。用户对趋势和发展状况的反应,不应该受到BAM工具的限制。最后,它应该可以帮助用户通过相关的历史实时数据作出决策。
流程分析
BPM的一个重要的需求,是能够持续的提高业务流程的功效和有效性。最有价值的方式就是分析与业务流程相关的历史数据。流程分析与BAM的不同在于,流程分析依靠的是业务流程的历史数据,而BAM使用的是实时信息。从历史数据中反馈回来的信息是很有价值的,它可以帮助确认计划的主要组成部分是否正确,找出那些潜在的需要改善的地方,察看计划地执行时间是否合适
好地分析工具可以根据KPI指标评估业务流程的性能;可以帮助推算投资回报率(ROI)、效率和盈利计算。用户界面可以提供给不同类型的业务用户,这些用户可以通过创建共享的内容以便来进行合作。流程分析是基于那些从不同时间间隔收集的业务流程的历史数据,进行的回顾性分析。
监控与管理
对于任何一个分布式系统,监控和管理系统都是非常需要的,尤其是当这个系统里运行着关键业务流程的时候。BPM也不例外。BPM解决方案的一个必需组件就是监控和管理工具,用来管理那些包含在BPM系统中的不同的流程,为故障的发现、解决与监控提供一个统一的界面。
一个好的BPM解决方案能够提供很好的监控和管理工具,用来管理流程引擎和所有相关的组件,能够保证系统不会出现停机;能够根据日志管理工具和相关的报表工具进行系统运行状况分析;能够提供容错系统,能够进行问题严重级别的快速定位,帮助系统管理员对问题作出快速反应。最后,它要提供一个统一的用户界面,来监控分布式系统中的各种组件。
其它需求
本节将要描述一个完整的BPM解决方案需要考虑的其他的一些需求。
文档管理
BPM的一个主要功能是进行流程编排。当大量的业务流程涉及到与不同的参与者进行文件交换时,很自然的就需要将文件处理与流程编排进行协作。在评估一个BPM产品时,要考虑的事情之一就是是否能很容易得与企业中的内容管理系统集成。与以前收到的文件进行关联、索引、查询、数据挖掘、存储和检索,这些都是文件管理的主要功能。
复杂事件处理
复杂事件处理(CEP)是一项新技术,它从基于消息的分布式系统、数据库和应用系统中实时收集消息,动态的与规则进行匹配来识别模式与趋势,与规则不相匹配的就被忽视掉。通过使用CEP,企业可以从那些高度复杂,分布的并且异构的IT环境中,分析那些看起来不相关的事件,对他们进行识别,甚至进行异常和商业机会的预判。
BPM和CEP是非常强大的组合。利用它们可以基于突发事件来触发业务流程。也可以从业务流程中获取复杂事件,以便与企业内的其他事件进行协作。涉及流程中事件和参与者的稽核索引能为企业中的根源分析提供无与伦比的可见度。
主数据管理
主数据管理使企业可以管理企业中的信息,并通过价值链对信息进行同步。通过它可以将企业中的多个系统、多个部门甚至和业务伙伴的主数据(比如产品、客户、供应商等信息)进行排列;也可以确保那些必需的流程、策略和过程落实到位,使干净的数据可以作为新数据引入或者将已存在的信息进行更新后依然保持干净。
对于大型企业,主数据管理(MDM)已经变成生产中的一个优先级比较高的事项。无论是在制造业或者零售业复杂的多层供应链中运行,在金融服务领域中的巩固,电信服务中不断变化的产品和服务绑定,能源领域中更好的控制风险和资产组合管理,或者全国范围内的统一的和有区别的客户服务,企业都在各个方面都面临着新的挑战,都希望有一种新的方式能够获取信息并做出反应。
摘要
下面这张表,总结了一个完整的BPM解决方案需要考虑的因素。
因素 | 说明 |
BPM/SOA | 将企业内部IT体系从业务流程建模和管理中抽象出来。 |
符合工业强度的流程引擎 | 用于运行业务流程实现。 |
设计环境 | 用于业务流程建模和仿真。 |
应用快速开发环境 | 用于实现业务流程。 |
客户工作空间 | 用于向业务流程的参与者展现当前的作业项。 |
监控和管理 | 用于维护业务流程管理系统的正常运行。 |
业务规则引擎 | 用于将企业中的业务规则与BPM进行关联。 |
业务活动监控 | 用于对业务流程进行实时分析,查看是否符合KPI,SLA等指标。 |
流程分析 | 为业务流程优化设计提供垂直分析。 |
流程重用 | 利用已有的业务流程。 |
BPM和文档管理 | BPM与企业内容管理系统整合解决方案。 |
BPM和CEP | 将事件与业务流程信息进行协作 |
BPM和MDM | 允许BPM获取全局的数据管理系统。 |
结论
BPM的本质就是与你需要的各种组件很好的集成,每个组件都具有特殊功能,以此获得一个功能完整的BPM解决方案。本文提供了一个简单的列表,罗列能够组成一个完整的BPM解决方案的所有组件,并描述了每一个组件的需求。这里也建议不同的用户角色,要对BPM解决方案中的不同组件进行评估。想要从业务流程管理系统给你的企业所带来的竞争力中获益,就要选择一个已经被证明了性能和可用性的全面的BPM解决方案。
这篇关于穿越BPM迷宫指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!