面向服务的体系结构(SOA) 之 关于BPM

什么是BPM

很多情况下企业当中所提供的服务不是由一个分布式业务流程就可以完成的,整个服务的提供需要多个分布式流程有机的组合,于是BPM就应运而生了。要将现有的服务通过配置、编排(关于配置与编排的区别后面将说明)以满足具体的业务流程的目的就不得不借助于工作流的相关内容。毕竟各个服务之间的配合是为了提供一项合理的业务流程,这样的话就必须要设计流程,说白了就是各个服务谁先谁后的问题。

从字面上理解BPM所要做的就是对整个业务流程进行管理。这其中包括很多方面,比如分析业务、实现业务功能、检测业务流程、建立相应的操作流程的工具等等。在真正开始动手之前通常要做的将业务分解成已有的底层服务可以处理的小模块。

实施思路

流程分解后最底层的一个个活动就是服务。服务是业务流程的组成部分。要想让服务发挥作用就必须先考虑业务流程。从业务流程的观点来看,这些个服务是基本服务还是组合服务无关紧要,重要的是服务执行了必要的业务功能。然而流程服务是不同的东西,因为流程服务的目的是体现整个业务流程(或某个部分)。

可以通过自顶向上的方法将一个问题、系统或流程不断分解为更小的内容,直到抵达服务的层次。或者采用自底向上的方式依靠底层的服务组合为更通用的块来建立业务流程。当然方法不是唯一的,只是提供一个参考而已。每种方法都有利弊。自底向上会产生不必要的服务或者产生满足不了业务需求的服务。而自顶向下很可能遇到技术上的困难,或实现上复杂的服务。

例如:如果要实现一个新的业务流程。这个业务流程就是顶层我们需要实现的流程,而既存的系统或者说服务就是这个业务流程的底层,毋庸置疑底层是负责提供一些用服务方式体现的基本业务功能。下面的工作就是采用自顶向下的方式把整个流程分解成为小块,把复杂的流程分解为下层服务可以处理的小模块。

具体技术----BPM工具和引擎

一般具体到实现到流程上就是有关工作流的层面的事情了。再具体一点说的话就是需要使用BPEL将整个流程描述出来。BPEL是一个抽象的概念,具体根据不同的流程引擎会有不同的表现形式。比如使用JBPM的时候那么担当描述部分的就是JBPM自身的所提供的JPDL,当使用普元的BPS平台的时候担当描述部分的将是普元自带的描述流程的语言。不过实现的方式是类似的:将流程节点与现有的服务绑定,最终发布定义,启动流程,执行流程等等。核心思想都是将现有的服务利用起来通过编排或配置产生新的符合需求的新服务。通过业务流程建模工具或引擎可以用来从现有的服务中组合(“配置”)出新的组合服务或流程服务。

JBPM仅仅是BPM的实现方式之一,所以之前如果对JBPM有所了解的话将有助于理解及使用BPM。和JBPM类似,BPM的要做的就是将复杂的业务划分为一个个简单的服务,然后分清哪些是必须要人参与的那些是可以借助IT自动完成的,随后配置和编排。当流程定制完成那么就可以开始执行整个的业务了。当然这其中需要一个中央控制者来协调所有活动。

 “配置”与“编排”

通过组合现有的服务来设计更高层次的服务和流程这个方法叫做“配置”。在配置的过程中通常有一个中央控制者协调流程的所有活动。整个的组合本身可以当作服务使用。

另一个方法是“编排”,没有谁服从于谁的概念,每个部分负责一个或多个流程中的步骤,处于流程之中的时候很难了解整个流程的全貌。“编排”由于没有中央控制器的约束所以更容易伸缩,但是没有管理者的一大弊端就是出现问题不知道该如何去处理。

其他细节问题

BPMSOA的关系中还有很多是需要考虑的细节,类似JBPM集成到单个系统中一样。需要考虑角色与组织和BPM的关系,需要涉及到权限相关的内容,或者说是系统前台和后台的问题。这些问题将在后面的文章中具体描述。

原文链接:http://blog.csdn.net/beijiguangyong/article/details/9566961

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值