BPM概述

BPM定义:
对企业业务流程进行包括设计、执行、监控和优化在内的全生命周期管理方法。
BPM包括设计、执行、监控和优化四个阶段,是一种不断迭代循环的全生命周期管理方法,它既是管理准则又是技术平台。作为管理准则,BPM关注于战略性业务目标,指导整个组织的资源部署,使业务流程能更有效地实现客户价值。作为技术平台,BPM提供一系列软件工具来优化流程,使抽象的目标变得具体,联系业务数据处理,监控流程行为并实现自动化,根据不同的事件和结果进行实时的决策,从而提升业务流程的敏捷性。

BPM主要用途:
业务流程自动化,
整合应用系统,实现异构系统之间无缝交流,
企业流程建模分析。这个是BPM的核心,在详细了解企业流程划分之后,用全局的视角,对一堆的流程进行梳理,并给出企业流程全局图。
监控企业活动,实现企业流程持续改进。

BPM的特点:
1 流程可视化(使用BPMN、UML等)
2 流程操作独立化,即能够象关系数据库系统操作表一样操作流程
3 流程直接部署运行(从可视化的BPMN映射到WS4BPEL)
4 流程跨应用集成(与其它流程和Web服务)
5 流程监控

BPM的三种类型:
系统到系统的流程:涉及到多个应用之间数据结构的转换,
人到人的流程:最复杂的一种流程,与现实概念的业务流程定义最为接近
人到系统的流程:人启动系统流程,创建事务.

BPM的优点:
BPM的好处在于它能够提供任何类型流程的控制和视图。这是对流程进行评估的重要基础,而可靠的评估能够对业务流程进行分析与改进。这个过程通常涉及到将流程逻辑从底层应用中分离出来,这样企业就能在不影响底层应用的基础上改变流程。

BPM产品:
IBM Websphere系列产品,BEA AquaLogic系列产品,Microsoft Biztalk Server,Oracle BPEL Process Manager,jBoss jBPM Server

BPM与工作流的关系:
总的来说,BPM属于管理和组织层面,更全面,是工作流的发展和延伸,可以说工作流是BPM的一个子集.

工作流:描述人与计算机的一系列交互,在开发人员中经常被谈到
BPM:范围更广,更多的用于业务人员,涉及更多的非技术问题:分析,组织的效率。

业务过程管理包括对业务过程的分析,计划,设计,实施,运行,监控,和仿真各个方面。相较于工作流,它更属于是管理和组织的概念;而工作流则侧重技术层面的实施和运行业务程。从这种角度看,工作流可以说是业务流程管理的子集。基于这两个概念,现在有工作流管理系统和业务过程管理系统之分.这两种系统的区别就在于工作流管理系统只能定义和运行业务过程,而业务过程管理系统还能监控运行的业务过程和分析评价业务过程的效能。
详细来说:
1.应用范围不同.BPM更加广泛,是一种跨组织的业务流程描述语言和工具.而工作流更多描述的是业务部门,或某个组织内部的业务流程.
2.统一的流程架构.BPM增强了流程之间进行衔接、协调的功能,提供了一个统一的流程体系.
3.去除"甲方优势".就是说工作流与已有系统连接,需要去迎合已有系统的需求,而BPM有一个更加公平的规范.
4.更强的持续改进能力.
5.BPM一定是企业级的。要实施BPM,一定要树立流程战略、 流程设计、流程实施和流程监控的循环管理理念:从企业的发展战略出发制定流程的战略,将战略指标分解为流程的目标体系,通过流程实现战略的落地;根据流程战略进行业务流程的梳理、设计和优化;通过组织结构和信息系统的调整来实施业务流程;通过流程合规管理和流程绩效监控,对流程 执行情况进行监控,根据结果调整业务流程设计。
6.最重要的,BPM和SOA紧密结合.

BPM和SOA
BPM与SOA的本质是截然不同的:SOA是一种架构方法;BPM则是一组流程协调管理理念。
但两者的结合完美的解决了IT技术与业务的鸿沟.SOA提供架构方法,用IT技术把系统实现为一个个独立的服务,BPM把它们管理起来.

BPM的实现可以没有SOA的支持,但这样很难给企业带来希望的竞争优势。事实表明,在过去的几年中,快速变化、整合、分布等方面的困难阻碍了BPM的应用,而SOA的使用可以让这种情况得到极大的改善。SOA支持诸多改变,包括业务流程的改变、部门调整带来的改变、竞争对手的改变、客户行为的改变等等。SOA允许企业能够灵活地将组成业务流程和底层IT基础架构的各个要素视为可以重用或组合的标准组件(服务),以获得随时变化的业务竞争优势。SOA可以使企业区别对待“要做什么”和“怎么做”的问题。从业务流程的运作方式中抽象出服务的定义,从而赋予业务更高的灵活性和更快速的响应能力。这种抽象允许在不改变底层技术的情况下对业务流程进行修改;同样,技术基础架构的改变也不会影响到业务流程。作为SOA项目的切入点之一,BPM反过来在很大程度上又推动着SOA的发展。

这里我们可以看一下IBM的CBM图:(IBM组件化业务模型CBM:零售业范例)


组件化业务模型图(component business model),模型中的每一个组件对应于企业中的一个服务或一项功能. 基于他们,可以区别出构成企业竞争优势的独特业务组件和为了维持业务运行所必需的一般业务组件,并决定如何进行投资.

我们就可以从这张图中细化,导出用BPMN建模的业务流程,再根据不同的组件生成具体的WEB SERVICE或SCA组件.然后把BPMN转换成BPEL,这样我们就完成了一个SOA系统的构建.当然具体实施没有这么简单,但从这个过程我们可以了解一下BPM如何被结合在SOA框架当中来.其中之所以导出BPMN图,主要是因为我觉得这个时候应该还是业务人员在使用它,如果是BPEL的图形编辑器,它是按程序员的概念定义模块,不利于业务人员阅读.

SOA与BPM得结合方式:
BPEL+WSDL,BPEL作为SCA得一个构件.

BPEL应用SCA的某个构件.比如说BPEL的一个变量为一个SCA的构件

参考文献:
http://www.amteam.org/k/BPM/2007-9/602089.html
http://www.huahu.com.cn/Default.aspx?tabid=292&forumid=5&threadid=25&scope=posts

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BPM(Business Process Management)框架是一种用于管理和优化业务流程的软件框架。它提供了一套工具和方法,帮助企业设计、执行、监控和优化业务流程。在Java开发中,有许多BPM框架可供选择,如Activiti、Camunda、JBPM等。这些框架提供了丰富的功能和组件,可以帮助开发人员快速构建和部署业务流程。 以下是一个使用Activiti框架的Java BPM框架的示例: ```java import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngineConfiguration; import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.repository.Deployment; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; public class JavaBPMFrameworkExample { public static void main(String[] args) { // 创建流程引擎配置 ProcessEngineConfiguration cfg = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration(); ProcessEngine processEngine = cfg.buildProcessEngine(); // 部署流程定义文件 RepositoryService repositoryService = processEngine.getRepositoryService(); Deployment deployment = repositoryService.createDeployment() .addClasspathResource("processes/myProcess.bpmn20.xml") .deploy(); // 启动流程实例 RuntimeService runtimeService = processEngine.getRuntimeService(); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess"); // 处理任务 TaskService taskService = processEngine.getTaskService(); Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); System.out.println("当前任务:" + task.getName()); // 完成任务 taskService.complete(task.getId()); // 销毁流程引擎 processEngine.close(); } } ``` 这个示例演示了如何使用Activiti框架创建一个简单的Java BPM应用。首先,我们创建了一个流程引擎配置,并使用内存数据库进行配置。然后,我们部署了一个BPMN流程定义文件,并启动了一个流程实例。接下来,我们处理了任务并完成了它。最后,我们关闭了流程引擎。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值