BPM与ESB

BPM:业务流程管理 –监控处理流程的轨迹以及处理过程



开源:JBPM



场景:



  1.单一系统的协同工作比如审批流程,请假流程



  2.多个系统的集成,复用各个子系统,构建新的处理流程(流程的优化与流程的重组)



原理:



  状态机设计思想(Token机制)



编程模型:



ESB:服务总线 旨在对系统间通信进行统一管理 监控数据调用的过程。

1.ETL:



  数据层之间,主要在数据库层面上进行数据抽取过程——数据库层



2.ESB



  异构系统之间通过总线技术,实现系统交互—————系统通信层



3.BPM



  自动化流程处理,监控机制——————————-业务编排,系统组合服务



4.Batch



  批处理



===



http://www.infoq.com/cn/presentations/pxm-infodb-exchange-system-arch-design



http://www.infoq.com/cn/presentations/electricity-supplier-in-the-enterprise-service-bus



http://www.infoq.com/cn/presentations/Spring-Batch-large-data



https://blog.csdn.net/paul_lh/article/details/5884461



https://blog.csdn.net/yangdashan/article/details/83201604



https://www.zhihu.com/question/19914870



https://www.talkwithtrend.com/Question/384837



http://blog.sina.com.cn/s/blog_7fd9dbbb0102wccl.html



1.SOA-面向服务的架构,可以说是一种架构风格,一种IT系统咨询和建设的方法论,也可以说是一种新的商业模式,SOA核心从SOA定义可以看到包括两个方面内容,一个是抽象出服务,这些服务满足离散,松耦合,可复用,自治,无状态等基本特征,一个是服务可以灵活的组装和编排,满足流程整合和业务变化的需要。所以SOA是一个很宽泛的概念,只要满足上面两条,实施思路是符合上面两条都是SOA的思路。



2.ESB-企业服务总线,是SOA技术架构落地的一个基本部件,现在我们说的SOA集成平台基本都需要有ESB组件,ESB最基本功能即是实现点对点集成到总线式集成的转换,在这个过程中实现了消息协议的转换和适配,数据传输,数据转换和映射,路由等基本功能。ESB发展从原有的EAI以消息中间件为核心转化到现在的以服务为核心,但是仍然支持消息转换和接入。



3.Web-Service是一种技术方面的标准,真正的跨语言,跨平台,提供了标准的服务定义,服务注册,服务接入和访问的方式。在讲SOA时候我们会谈到需要实现操作方法和操作数据的解耦,web service可以比较好的做到这一点,包括我们用wsdl进行方法层面的定义,用xsd进行传输数据的定义。但是Web-Service和SOA架构风格没有直接关系,Web-Service只是一种实现方法,不用Web-Service也可以实现SOA架构风格,这一点必须明确。否则一谈到SOA就简单理解为web service就犯大错误了。



Axis2框架和CXF框架,不管是服务提供方还是服务消费方,都建议选择CXF框架,axis框架不管是老版本,还是最新的版本,总是存在兼容性方面的各种问题,这个我们在实践中遇到过很多,现在已经只推荐使用CXF框架。



SOA
SOA(Service-Oriented Architecture)面向服务的架构,其中的Service是灵魂,是核心。
SOA的目标是构建一个松散耦合的系统架构,可以将企业的应用程序及资源包装为一个个的商业服务,按照特定的合约及规约来请求和使用服务。



ESB
企业服务总线(ESB-Enterprise Service Bus)本质上是一个以消息通信为中心的底层基础设施,它负责治理企业的所有应用服务,以连接为导向,为服务请求者与服务调用者搭建起沟通的桥梁。包括服务连接、数据转换、事件转换、服务路由等功能。企业服务总线是保障SOA有效落地的底层基础设施,没有ESB,SOA就只会是一片飘在天上的云彩,最终会烟消云散。因此企业要基于SOA的架构方法论和思想去搭建智慧IT生态群落,就首先要搭建好底层的基础设施。



BPM
业务流程简单来说就是业务的处理流,或者说业务的流转过程。这里重要的不是“流程”这两个字,而是“业务”这两个字。



在企业内部,核心业务如下:
产品和服务的设计与开发
产品和服务的市场营销与销售
产品和服务的交付
客户服务管理



从上面我们知道了一个企业的核心业务,那么这些业务总要有对应的部门去处理,例如产品研发部负责新产品的设计及研发,市场部负责新产品的推广和宣传,销售部负责新产品的销售,售后部负责产品售后的相关服务,客户部负责客户的管理等,这些部门可以说就是企业的核心部门,是为企业创造价值带来利润的部门。这些部门的工作都是有前后的逻辑关系的,或者说是互相作用的,那么把这些部门的工作按照前后的逻辑关系和互相作用原理,串在一起就形成了一个流,这个流就是企业的核心业务流程,也是企业的价值链



SOA与ESB的关系
ESB是保障SOA有效落地的底层基础设施。SOA关注的是企业的整体IT架构,关注企业的各个IT系统怎样交互,它给出这些IT系统交互的策略与规约。而ESB关注的是具体的实现,即提供各个IT系统交互的具体实现,例如一个基于C语言开发的HR系统通过ESB与一个基于Java语言开发的财务系统进行服务的交互。



SOA与BPM的关系
SOA是从IT架构着手,按照服务的思想来分析及架构企业的IT系统。而BPM是从业务或者说企业的经营管理方面着手,从流程的角度出发,建立并持续改进企业流程。BPM可以及时响应企业的组织架构、业务交互及运营模式的灵活多变,并且可以满足企业内部、企业与伙伴之间的业务交互需求。



小结:
SOA/ESB的目标与BPM的目标是一致的,即都是通过解决企业的业务交互问题,来提升企业对环境及市场变化的响应能力,进而提高企业的敏捷性。只不过两者切入的角度不同,SOA是从企业的IT架构着手,建立起一个整合业务应用的服务平台,而BPM则是从企业的业务运营着手,解决IT与人、人与人、业务与业务的交互,建立起敏捷的、端到端的流程体系。



没有SOA/ESB之前,BPM产品已经得到了很多成功应用,只不过当遇到跨系统的交互时,采用传统的EAI的方式来解决交互问题,有了SOA/ESB,则可以通过标准的服务来直接实现交互。



基于SOA架构建立的BPM更能展现整合能力及系统的弹性;从另一个角度来看,理想的SOA架构,也需要BPM支撑,SOA中的服务,需要BPM来进行串接。而且通过业务流程梳理,识别与抽象出的业务服务,才是最有价值的服务,单纯的为了解耦而抽象出的技术连接服务,提供的价值是非常有限的。



SOA不限定采用何种技术,只要是开放、标准的技术即可,比如JMS、RESTful Service、Axis2、CXF等。



http://www.mamicode.com/info-detail-220283.html



Category web