面向服务的体系结构(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 的兴衰变化让我们更了 ...
随机推荐
- hdu 2041 超级楼梯
斐波那契数列,看清题意,当前为第一阶,给出M(每次只能跨1阶或2阶) 从第一阶到M,若M=1,从1-1不用走,0种方法 若M=2 从1-2 一种方法 -> 1.走一次一阶 若M=3 从1-3 ...
- linux (centos) 单机50w+链接 内核参数配置
1 突破系统最大fd 查看当前文件描述符的限制数目的命令: ulimit -n .修改文件描述符的限制数目 2.1 临时改变当前会话: ulimit -n 2.2 永久变更需要下面两个步骤: ./ ...
- 基于SSH2框架Struts2拦截器的登录验证实现(转)
大象在这里假设你已经弄清楚了Struts2拦截器的基本概念,可以进入实际运用了.那么我们在之前的基础上只需要做下小小的改变,就可以使用Struts2的拦截器机制实现登录的验证. 修改数 ...
- JavaScriptSerializer中日期序列化问题解决方案
JavaScriptSerializer中日期序列化问题解决方案 直接进入主题: class Student { public int age { get; set; } public DateTim ...
- WinFrom 只启动一个exe,并且获得焦点
只启动一个exe方法: using System; using System.Collections.Generic; using System.Runtime.InteropServices; us ...
- UIGestureRecognizer ios手势识别温习
1.UIGestureRecognizer介绍 手势识别在iOS上非常重要,手势操作移动设备的重要特征,极大的增加了移动设备使用便捷性. iOS系统在3.2以后,为方便开发这使用一些常用的手势,提供了 ...
- C函数tolower,与toupper
tolower 将大写转换成小写. 非字母字符不做出处理. 这个函数用法有点特殊他是处理字符的,而不是处理字符串的. 所谓的不能处理字符串不是说他不能处理字符串,他处理的时候对字符串必须是 ...
- EF图解
- 简单聊下IO复用
没图,不分析API Java中IO API的发展:Socket -> SocketChannel -> AsynchronousSocketChannelServerSocket -> ...
- Valid Pattern Lock(dfs + 暴力)
Valid Pattern Lock Time Limit: 2 Seconds Memory Limit: 65536 KB Pattern lock security is genera ...