面向服务的体系结构(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 的兴衰变化让我们更了 ...
随机推荐
- Spring IoC、DI入门小程序
Alt+/智能提示xml配置文件节点及属性:在接口上使用Ctrl+T可以提示其实现类 一.IoC控制反转(将创建对象的权利交给spring)入门小程序 1.引入jar包 2.工程基本结构 3.新建Us ...
- ACM 马拦过河卒(动态规划)
解题思路: 用一个二维数组a[i][j]标记 马的位置和马的跳点(统称控制点)该位置=1: 再用一个二维数组f[i][j]表示行进的位置,如果前一行的当前列不是马的控制点,或者前一列的当前行不是马的控 ...
- c语言 函数传输传递的三种方式(值、指针、引用)
本文摘自<彻底搞定c指针> 一.三道考题开讲之前,我先请你做三道题目.(嘿嘿,得先把你的头脑搞昏才行……唉呀,谁扔我鸡蛋?)考题一,程序代码如下:void Exchg1(int x, in ...
- DROP TABLE ** CASCADE CONSTRAINTS PURGE删除表的时候级联删除从表外键
1.关于 cascade constraints 假设A为主表(既含有某一主键的表),B为从表(即引用了A的主键作为外键). 则当删除A表时,如不特殊说明,则 drop table A 系统会出现错误 ...
- glibc 简介:
glibc 编辑 glibc是GNU发布的libc库,即c运行库.glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc.glibc除了封装linux操作系统所提供的系统服 ...
- Telnet是什么?
Telnet协议是 用途一: 测试端口号 例子:测试本机的80端口是否打开 1.获得本机IP dos命令:ipconfig 可以看到本机的IP地址是192.168.0.102,当然这也是局域网IP,并 ...
- dedecms如何随机调用指定分类下的文章到网站首页
dedecms是全静态的,有时会因为其他事情好几天没写文章推荐到首页,那样对se不是很友好.原本ytkah是想在网站首页上半部分调用几篇id从200到500的文章随机展示的,这样每次更新首页给se的赶 ...
- 15 条实用 Linux/Unix 磁带管理命令
导读 磁带设备应只用于定期的文件归档或将数据从一台服务器传送至另一台.通常磁带设备与 Unix 机器连接,用 mt 或 mtx 控制.强烈建议您将所有的数据同时备份到磁盘(也许是云中)和磁带设备中. ...
- unity3d AssetBundle包加密
原地址:http://www.cnblogs.com/88999660/archive/2013/03/15/2961587.html 保护资源管理文件的相关内容 Unity允许用户使用AssetBu ...
- UIView 注意问题
1. UIView.userInteractionEnabled UIView.userInteractionEnabled默认值是YES http://blog.csdn.net/studyreco ...