论文部分内容阅读
Web服务是实现面向服务的架构(Service-Oriented Architecture,SOA)的方法之一。SOA的最大优点是可以通过组合已有的服务来快速开发部署新的业务,这些服务可以属于同一组织,也可分属不同的组织。组合不同组织的服务而建立的跨组织的协作会使得组合服务发起的事务通常处理的时间较长,并且通常需要操纵一些关键数据。传统的事务处理机制通常具有严格的ACID属性,对一些关键资源长期封锁以保证事务状态的一致性,却导致事务处理效率的降低。在Web服务环境下,为提高事务的处理效率,事务的ACID(atomicity, consistency, isolatioN, durability)属性通常被适当放松,以满足并发处理的需求。放松事务的隔离性可能会导致事务出现不一致的问题,但已有的Web服务事务处理规范并没有提供相应的解决方法,而是将这一问题交给开发者去解决,这增加了开发者的负担。
本文深入分析了Web服务事务处理的研究现状,并在此基础上提出了一个可保证放松隔离性的事务正确执行的机制,提出了保证事务一致性所需的协议。本文定义了事务之间的依赖关系,提出了Web服务事务依赖管理协议WS-DM(Web Services Transaction Dependence Management protocol),并实现了依赖检测和环路检测及解除算法。该算法能够检测并解除Web服务事务间的依赖以保证Web服务事务的一致性。本文还提出了发起者和协调器之间的协议WS-IC(Web Services Transaction Initiator and Coordinator protocol)。该协议定义了Web服务事务发起者与协调器之间用于解决Web服务冲突的交互接口,组合事务的发起者可以使用该协议通知协调器发起者对冲突的Web服务事务的处理决定:是重新执行还是取消;同样协调器也可以使用该协议通知发起者关于Web服务冲突的处理状态。最后,本文设计并实现了一个原型系统,对上述两个协议的可行性进行了验证。