面向服务的体系结构(SOA)——(3)关于BPM
什么是BPM
很多情况下企业当中所提供的服务不是由一个分布式业务流程就可以完成的,整个服务的提供需要多个分布式流程有机的组合,于是BPM就应运而生了。要将现有的服务通过配置、编排(关于配置与编排的区别后面将说明)以满足具体的业务流程的目的就不得不借助于工作流的相关内容。毕竟各个服务之间的配合是为了提供一项合理的业务流程,这样的话就必须要设计流程,说白了就是各个服务谁先谁后的问题。
从字面上理解BPM所要做的就是对整个业务流程进行管理。这其中包括很多方面,比如分析业务、实现业务功能、检测业务流程、建立相应的操作流程的工具等等。在真正开始动手之前通常要做的将业务分解成已有的底层服务可以处理的小模块。
实施思路
流程分解后最底层的一个个活动就是服务。服务是业务流程的组成部分。要想让服务发挥作用就必须先考虑业务流程。从业务流程的观点来看,这些个服务是基本服务还是组合服务无关紧要,重要的是服务之星了必要的业务功能。然而流程服务是不同的东西,因为流程服务的目的是体现整个业务流程(或某个部分)。
可以通过自顶向上的方法将一个问题、系统或流程不断分解为更小的内容,直到抵达服务的层次。或者采用自底向上的方式依靠底层的服务组合为更通用的块来建立业务流程。当然方法不是唯一的,只是提供一个参考而已。每种方法都有利弊。自底向上会产生不必要的服务或者产生满足不了业务需求的服务。而自顶向下很可能遇到技术上的困难,或实现上复杂的服务。
例如:如果要实现一个新的业务流程。这个业务流程就是顶层我们需要实现的流程,而既存的系统或者说服务就是这个业务流程的底层,毋庸置疑底层是负责提供一些用服务方式体现的基本业务功能。下面的工作就是采用自顶向下的方式把整个流程分解成为小块,把复杂的流程分解为下层服务可以处理的小模块。
具体技术----BPM工具和引擎
一般具体到实现到流程上就是有关工作流的层面的事情了。再具体一点说的话就是需要使用BPEL将整个流程描述出来。BPEL是一个抽象的概念,具体根据不同的流程引擎会有不同的表现形式。比如使用JBPM的时候那么担当描述部分的就是JBPM自身的所提供的JPDL,当使用普元的BPS平台的时候担当描述部分的将是普元自带的描述流程的语言。不过实现的方式是类似的:将流程节点与现有的服务绑定,最终发布定义,启动流程,执行流程等等。核心思想都是将现有的服务利用起来通过编排或配置产生新的符合需求的新服务。通过业务流程建模工具或引擎可以用来从现有的服务中组合(“配置”)出新的组合服务或流程服务。
JBPM仅仅是BPM的实现方式之一,所以之前如果对JBPM有所了解的话将有助于理解及使用BPM。和JBPM类似,BPM的要做的就是将复杂的业务划分为一个个简单的服务,然后分清哪些是必须要人参与的那些是可以借助IT自动完成的,随后配置和编排。当流程定制完成那么就可以开始执行整个的业务了。当然这其中需要一个中央控制者来协调所有活动。
“配置”与“编排”
通过组合现有的服务来设计更高层次的服务和流程这个方法叫做“配置”。在配置的过程中通常有一个中央控制者协调流程的所有活动。整个的组合本身可以当作服务使用。
另一个方法是“编排”,没有谁服从于谁的概念,每个部分负责一个或多个流程中的步骤,处于流程之中的时候很难了解整个流程的全貌。“编排”由于没有中央控制器的约束所以更容易伸缩,但是没有管理者的一大弊端就是出现问题不知道该如何去处理。
其他细节问题
BPM和SOA的关系中还有很多是需要考虑的细节,类似JBPM集成到单个系统中一样。需要考虑角色与组织和BPM的关系,需要涉及到权限相关的内容,或者说是系统前台和后台的问题。这些问题将在后面的文章中具体描述。
面向服务的体系结构(SOA)——(3)关于BPM的更多相关文章
- 面向服务的体系结构(SOA)——(1)目标与核心概念
什么是SOA? 常常听到人们拿OOP和SOA一起来说事,诸如SOA是否可以代替面向对象(OOP)或者两者比哪个更加有优势?直接回答有难度举个例子可能显得答案更容易理解.小孩子问你该认真写作业呢?还是高 ...
- 面向服务的体系结构(SOA)——(5)关于MEP(Message Exchange Patterns)
SOA中的MEP和JavaEE中的JMS类似,当然了就应该是类似的,因为都是关于消息方面的.一个是对系统架构当中消息的解决思路,一个是针对Java平台中的消息的具体解决办法(严格说不是具体的,只是提供 ...
- 面向服务的体系结构(SOA)——(4)对于服务的理解
在接触SOA之前对"服务"这个词没有太多的感触,无非就是为别人做事情么.当然在SOA中这个词也脱离不了这层基本的涵义,但是具体到实际的架构中对这个词的理解就更加深刻了.本文就以&q ...
- 面向服务的体系结构(SOA)——(2)ESB介绍及职责
企业服务总线(Enterprise Service Bus)是SOA的基础设施,之所以这么说是因为要达到SOA的目标(增强灵活性)就必须有调用服务的方法,ESB的存在有效的保证了消费者能够调用供应者提 ...
- SOA 面向服务的体系结构
SOA:面向服务的体系结构(service-oriented architecture) 是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来. 接口是采 ...
- SOA(面向服务的体系结构)
SOA(面向服务的体系结构) 面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务 ...
- SOA (面向服务的体系结构)
面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台.操作系统和编程语言 ...
- 面向服务架构(SOA)和企业服务总线(ESB)
http://www.cnblogs.com/shanyou/archive/2008/04/19/1161452.html 学习和研究在企业中实施面向服务架构(SOA),简单回顾SOA和ESB,重点 ...
- 从面向服务架构(SOA)学习:微服务时代应该借鉴的5条经验教训
[编者按]本文作者为 Matt McLarty,通过介绍 SOA 的兴衰变化,总结了微服务应该借鉴的5条经验教训.文章系国内 ITOM 管理平台 OneAPM 编译呈现. SOA 的兴衰变化让我们更了 ...
随机推荐
- boost状态机学习二(秒表)
基础主题:秒表 下面我们要为一个机械秒表建模一个状态机.这样一个秒表通常会有两个按钮. * Start/Stop * Reset 同时有两种状态: * Stoped: 表针停留在上次停止时的位置: o ...
- MySQL索引的创建、删除和查看
MySQL索引的创建.删除和查看 此文转自http://blogold.chinaunix.net/u3/93470/showart_2001536.html 1.索引作用 在索引列上,除了上面提到的 ...
- Windows 下的.NET+ Memcached安装
转载请标明出处: http://www.yaosansi.com/ 原文:http://www.yaosansi.com/post/1396.html Memcached官方:http://danga ...
- SQL中CONVERT转化函数的用法
格式:CONVERT(data_type,expression[,style])说明:此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,c ...
- smarty中math函数的用法
在查看项目代码时,发现smart代码中有这样写. {if $auctionInfo.printingNum} 印数:{math equation="cid/1000" cid=$a ...
- Linux下远程cp命令scp
2014-2.19 PS1.在用此命令cpLinux与Linux之间的数据时发现有些服务器上默认没有安装scp但用yum -y install scp提示么有这样的包 后来发现原来scp工具的安装包 ...
- Who Gets the Most Candies?(线段树 + 反素数 )
Who Gets the Most Candies? Time Limit:5000MS Memory Limit:131072KB 64bit IO Format:%I64d &am ...
- 自定义 array_map() 对应的递归函数 array_map_recursive()
array_walk 有个原生递归函数 array_walk_recursive($arr, 'function', 'words'),但是 array_map 却没有对应的递归函数 array_ma ...
- [Effective JavaScript 笔记] 第10条:避免使用with
with特性,提供的任何“便利”都更让其变得不可靠和低效率. with语句的用法,可以很方便地避免对对象的重复引用.上面的代码整理成下面的形式 function status(info){ var w ...
- [Effective JavaScript 笔记]第23条:永远不要修改arguments对象
arguments对象并不是标准的Array类型的实例.arguments对象不能直接调用Array方法. arguments对象的救星call方法 使得arguments可以品尝到数组方法的美味,知 ...