一种ESB事务模型的设计与实现

  
2010/7/7 16:49:05
SOA(Service-Oriented Architecture,SOA)是一种软件构架,它由服务和基础设施构成,通过运行于基础设施之上的服务和服务的联合灵活地实现功能需求。

本文关键字: ESB SOA

3. 面向流程事务模型设计

首先简要介绍SynchroESB的体系架构,同时对SynchroESB环境下对事务处理功能需求进行了描述,然后提出了面向流程的事务模型的设计。

3.1. SynchroESB平台框架设计

SynchroESB系统是一个集中式管理分布式运行的ESB系统,它分为工具层、管理层和服务运行层。工具层包括实现流程的配置编排和管理的服务流程编排工具(Process Orchestration)和ESB系统管理的控制台;管理层是实现整个系统的功能管理控制的中心服务器(UltraServer);服务运行层由一台或多台实现服务的部署、运行、管理等功能的PeerServer服务器。服务流程通过服务流程编排工具配置、编排后由UltraServer部署服务流程的各个服务到相应的PeerServer服务器上进行运行,服务之间通过基于JMS技术的分布式规范消息路由(Distributed Normalized Message Router,DNMR)进行透明通信。SynchroESB系统的框架设计如图1所示:
                     
                                                  图1 SynchroESB框架设计图

如图1所示,组成服务流程的松散耦合的服务被部署到PeerServer服务器上运行,这些服务分为两类:流程控制服务与流程功能服务。流程控制服务的功能是控制消息的处理流程 如,消息的过滤、分发、聚合等;流程功能服务是对消息进行功能处理的服务如,存取数据库、访问JMS服务器、访问MIS系统等功能。

SynchroESB环境下的事务功能是保证流程中所有功能性服务对外部资源的修改,也就是事务性消息对服务流程中相关服务产生的影响,满足不同程度的事务性,包括在关键性服务流程中保证严格的ACID特性和非关键性服务流程通过补偿机制保证弱ACID特性。

3.2. 模型流程事务模型设计

POTM模型以Web服务事务模型为基础,由通过Web服务事务模型的事务协作框架修改得到的事务注册、事务协调/补偿、事务协调协议、分布通信和增加的基础服务功能与事务管理功能共六部分组成。POTM模型如图2所示。
                                                   

事务注册功能:基于服务流程拓扑结构和服务参加者的静态编制这样的应用场景,采用Web服务事务模型的事务参与者动态注册到事务协调者的注册方式,注册过程复杂、效率低也没有必要。POTM模型中,通过服务流程的事务配置属性,首先以服务流程为单位进行注册,服务流程运行时配置参数和相关协议的参数都已确定,运行时只需要进行事务划分就可以进行事务的协调,不需要运行时事务注册。不仅实现简单而且提高了效率;

事务协调/补偿功能:在Web服务事务模型中,事务划分的功能是由应用程序实现的。在SynchroESB环境下,不存在操作服务的应用程序,服务之间是松散耦合的。事务协调/补偿功能通过对事务消息的跟踪完成事务划分功能,并驱动相应的事务协调协议实例进行事务协调动作;

事务协调协议:按照对事务ACID特性的要求的严格程度相应地驱动事务的提交、回滚、补偿和出错处理;

事务管理功能:在事务协调协议实例执行补偿动作出错时,将把错误交给该功能模块,由用户根据业务功能逻辑进行适当地处理;

分布通信功能:实现分布的POTM之间的透明信息透明,使得多个POTM系统表现为单一虚拟的分布事务环境,实现事务的分布处理和冗余容错功能;

基础服务功能:为事务注册、事务协调/补偿、分布通信以及事务管理功能模块提供日志、持久保存实例对象和远程POTM实例中相关对象的备份功能,是POTM模型中系统容错、错误恢复的关键功能。

4. 相关实现

在SynchroESB系统环境中采用POTM模型来解决ESB系统中的服务流程的事务问题,主要实现了如下几个功能模块:在SynchroESB系统的服务流程编排工具上实现了事务可视化配置;在SynchroESB系统的ESB管理工具上实现了事务可视化管理;在SynchroESB系统的PeerServer上实现了POTM子系统;针对资源的类型实现了多种资源代理服务。POTM模型在SynchroESB系统环境下的应用框架如图3所示。
                                                       
                                                         图3 POTM模型在SynchroESB系统中的应用
POTM模型的实现以及SynchroESB事务功能框架的实现的关键部分POTM模型中的事务协调/补偿功能部件的实现。事务协调/补偿功能主要由完成各事务参与者之间的协调,需要补偿时驱动补偿服务执行,补偿服务运行出错向事务管理功能报告三个功能,其核心是两种事务协议的实现:原子事务协议、业务事务协议。

(1)原子事务

在POTM模型中原子事务是指,一个或多个事务消息对流程相关的服务产生的影响是原子的。原子事务适合短时间运行、要求满足严格ACID事务特性的服务流程配置使用。

原子事务发起者(Atomic Transaction Beginner,ATB),发起事务消息的服务称为事务发起者,事务发起者可能是一个也可以是多个,ATB服务通过发送带有相应事务属性标识的消息实现事务的发起;原子事务结束者(Atomic Transaction Ender,ATE),事务消息最后到达的服务称为事务结束者,ATE可以由服务根据流程的拓扑情况主动表明自己的角色,也可以由事务协调者通过超时判断出ATE服务。从ATB发出第一个事务消息开始到ATE处理完最后一个事务消息结束称为一个原子事务(Atomic Transaction,AT)。在原子事务内相关的服务都是原子事务参与者(Atomic Transaction Participant,ATP)。

原子事务协调协议扩展了2PC协议,其事务状态转换如图4所示。
                                                        
                                                                              图4 原子事务协调协议

如图4所示Active状态表示事务处于活动状态;Ended状态表示事务的结束;Prepared状态表示准备好了提交;其他状态是中间状态。下面从ATP角度解释该协议:
ATP发送:发现自身没有使用事务资源时发出Exit消息给事务协调者,直接退出事务;在处理事务消息时出错了,回滚其做的工作,发送Halt消息通知协调者,由协调者回滚所有事务参与者;准备好提交和提交完成时分别发送Prepared消息和Committed消息到协调者,报告所处状态。

ATP接收:ATP接收并执行协调者发出的两阶段提交命令。

(2)业务事务

在POTM模型中业务事务是指,一个或多个事务消息对服务流程相关服务产生的影响是通过配置补偿服务来保证事务性资源一致性的事务协调类型。业务事务适合长时间运行、对ACID特性要求不严格、对一致性可以通过补偿实现的应用场景。

业务事务中根据服务流程的业务需求把流程中的服务划分成多个事务范围(Transaction Scope,TS),事务范围内的服务执行原子事务协议,所不同的是由指定的事务结束者(指接收事务范围内事务消息向事务范围外发送事务消息或不发送任何消息的服务)代替了ATE的角色。事务范围内的协调者是业务事务中的事务参与者,称为事务范围参与者(Transaction Scope Participant,TSP)。事务范围的补偿配置有两种方式,对事务范围本身的补偿服务配置和对事务范围内特定服务的补偿服务配置,执行事务范围补偿服务优先于执行服务的补偿服务。补偿服务运行失败将交给POTM的事务管理功能部件,通过可视化方式展现由用户根据业务场景决定如何处理(Handle)。

该协调协议是通过在Web服务事务规范的BusinessAgreementWithParticipantCompletion协议中去除“NotCompleting”状态和添加“Handling”状态得出的,其状态转换图如图5所示。由于在SynchroESB环境下,服务执行的事务协调协议是确定的,不存在不能完成协议的情况,所以去除了“NotCompleting”状态;添加“Handling”状态使得事务补偿出错时,可以通过事务管理功能部件根据业务需求进行适当处理。
                                                   
                                                                                       图5 业务事务协调协议

如图5所示,业务事务协调协议是事务协调者和TSP(即,事务范围的事务协调者)之间执行的协调协议。Active状态表示该事务正在活动;Ended状态表示事务结束。下面从TSP的角度解释该协议:

TSP发送:事务范围没有使用事务性资源时发送Exit消息退出事务;事务范围事务完成时发送Completed消息,等待协调者对事务进行补偿或者关闭;关闭完成时发送Closed消息;取消完成时发送Canceled消息;补偿完成时发送Compensated消息;活动过程中、补偿中和取消中失败将发送Fail消息;补偿过程中出错时发送Fail消息,通过人工处理结束事务。

TSP接收:当服务流程异常结束时事务协调者发送Cancel消息给活动的TSP,使其取消所做的工作;给完成了的TSP发送Compensate消息补偿所做工作;对于处于完成状态的TSP,如果没有配置补偿服务,协调者直接发送Close消息给TSP,使其结束事务。
 

责编:王立新
vsharing微信扫一扫实时了解行业动态
portalart微信扫一扫分享本文给好友

著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
推荐博客
创新平台技术,助力政企私有云..

创新平台技术,助力政企私有云建设金蝶中间件有限公司 奉继承 博士第16届软博会高峰论坛,2012.05.31……

畅享
首页
返回
顶部
×
    信息化规划
    IT总包
    供应商选型
    IT监理
    开发维护外包
    评估维权
客服电话
400-698-9918