【发布时间】:2010-10-15 11:29:17
【问题描述】:
想象 3 个系统组件: 1. 处理信用卡交易的外部电子商务网络服务 2.本地数据库存储处理结果 3. 本地 UI(或 win 服务)执行客户订单文档的支付处理
外部web服务显然不是事务性的,那么如何保证: 1. 从 Web 服务接收到的结果最终会保存到数据库中,即使当时无法访问数据库(网络问题,数据库超时) 2. 防止客户端在其他客户端发起付款但结果尚未成功保存到数据库时处理客户订单(并在某种恢复队列中等待)
目的是做具有非事务性系统组件的处理,并保证事务在失败的情况下不会被其他进程重复。
(请在售后付款处理的上下文中查看它,其中多个运营商可能会尝试手动付款处理;而不是网络结帐应用程序)
【问题讨论】:
标签: web-services architecture payment-gateway