Web服务是一种用于联系不同平台的技术。它又一系列说明说来处理各种复杂的事务。
Webservicestransactionsspecifications由IBM、BEA和Microsoft重量级公司开发。它最近被分成了三个主要工作组:WS-Coordination,WS-AtomicTransaction以及WS-BusinessActivity。
WS-Coordination定义了在Web服务之间发生的任何事务处理的底层基础。与WS-AtomicTransaction或WS-BusinessActivity一起使用时,WS-Coordination被用来定义注册Web服务以及协作Web服务来参与事务的机制。
从事务的观点看,WS-Coordination的作用是建立上下文环境,用来执行和管理参与事务的不同Web服务单元。而当WS-Coordination为事务形成基础时,它把事务协议的细节留给了另外两个说明书:WS-AtomicTransaction和WS-BusinessActivity.
WS-AtomicTransaction事实上非常类似于企业软件中一个现有的宽泛的协议:两段提交协议。尽管该协议的细节已经超出了Web服务的范围,但它运行的基础则是在两种资源之间达到同步以确保持续的输出。
笼统地说,两段提交协议以及WS-AtomicTransaction的核心都是短期操作,或者说,能够很快知道成功还是失败的事务处理。
另一方面,WS-BusinessActivity被设计用于长期运行的事务。另一个主要差异是其健壮性,因为与WS-AtomicTransaction相比,它可以处理事务场景。
WS-AtomicTransaction为事务提供了要么都做,要么不做的解决方案,而WS-BusinessActivity则提供了例如异常处理等功能来做进一步的补充。
既然我们已经提出了Web服务事务的概念,你或许会问在真实的Web服务应用中如何把事务组织在一起呢?和其它说明书一样,对于这个问题,你需要ApacheSoftwareFoundation提供的一种工具Kandula。
作为一个Apache项目。Kandula中的事务性功能很像Axis。而Axis是Apache开发的事实上的Web服务平台。由于该项目关注在Java上,因此Kandula中对于WS-*事务的支持也是一种Java的事务性工具。
评论