11.2.7.2. Web 服务-原子事务流程

原子事务(AT)旨在支持适合 ACID 语义的短持续时间交互。在 AT 范围内,Web 服务通常采用桥接来访问由 WS-T 控制的 XA 资源,如数据库和消息队列。当交易终止时,参与者将 AT 的结果决定传播到 XA 资源,每个参与者均采取适当的提交或回滚行动。

11.2.7.2.1. Atomic 事务过程
  1. 要启动 AT,客户端应用程序首先找到支持 WS-T 的 WS-C 激活器 Web 服务。
  2. 客户端向服务发送 WS-C CreateCoordinationContext 消息,并将 http://schemas.xmlsoap.org/ws/2004/10/wsat 指定为其协调类型。
  3. 客户端从激活服务接收适当的 WS-T 上下文。
  4. CreateCoordinationContext 消息的响应(事务上下文 )将其 reconcileType 元素设置为 WS-AT 命名空间 http://schemas.xmlsoap.org/ws/2004/10/wsat。它还提到了原子交易协调器端点,即 WS-C 注册服务,以供参与者参加。
  5. 客户端通常继续调用 Web 服务并完成事务,要么提交 Web 服务执行的所有更改,要么回滚。为了能够驱动这一完成,客户端必须通过向注册服务发送寄存器消息(在协调环境中返回端点),将自身注册为完成协议的参与者。
  6. 旦注册完成,客户端应用程序便会与 Web 服务交互,以完成其业务级别工作。每次调用业务 Web 服务时,客户端都会将事务上下文插入到 SOAP 标头块中,使得每次调用都会隐式地限制在交易范围内。支持 WS-AT 感知 Web 服务的工具包提供工具来连接 SOAP 标头块中的上下文与后端操作。这可确保通过 Web 服务进行的修改在与客户端相同的交易范围内进行,并接受交易协调员提交或回滚。
  7. 完成所有必要的应用程序工作后,客户端即可终止事务,以永久更改服务状态。完成参与者指示协调员尝试提交或回滚交易。提交或回滚操作完成后,会将状态返回给参与者以指明交易的结果。

详情请查看 Naryana 项目文档中的 WS-Coordination