一种用于在客户机(1)和服务器(2)之间进行鲁棒通信以执行交易的方法,包括以下步骤:客户机(1)通过交易请求(21)发起要由服务器执行的交易,等待(13)来自服务器计算机(2)的交易确认请求(22),并且在接收到响应时,发送交易确认响应(23)。在发送交易确认响应(23)之后,客户机装置(1)不能随意中止交易,而是被迫等待并接受来自服务器计算机(2)的交易结果消息(24),或者在服务器侧失败的情况下,接受服务器侧交易中止消息(25)。务器侧交易中止消息(25)。务器侧交易中止消息(25)。
【技术实现步骤摘要】
用于鲁棒通信的方法和系统
[0001]本专利技术涉及交易数据处理系统领域。本专利技术涉及一种用于在客户机与服务器之间进行鲁棒通信以执行交易的方法,以及在客户机装置和服务器计算机中执行的相应方法。
技术介绍
[0002]交易系统中的一个问题是参与的计算机之间的通信并不总是可靠。例如,在客户机为移动装置的情况下,随着客户机的位置的变化,可能会暂时失去通信。如果在交易(例如商品订购或货币交易)期间发生这种情况,至关重要的是确保客户机和与其通信的服务器都得到相同的交易结果。此外,客户机可能会认为服务器尚未收到订单,并通过用户操作或负责该订购的软件过程再次触发了该订单。这可能导致同一交易的多次执行。
技术实现思路
[0003]因此,本专利技术的目的是创建一种用于在最初提到的类型的客户机和服务器之间进行鲁棒通信的方法,以解决上述问题。
[0004]这些目的通过根据本专利技术的用于客户机和服务器之间的鲁棒通信的方法来实现。
[0005]在一个实施例中,用于本文描述的方法的计算机程序产品可加载到构成本文描述的客户机装置或服务器计算机的数字计算机或计算机系统的内部存储器中,并且包括使得客户机装置或服务器计算机的一个或多个处理器分别执行该方法的各个步骤的计算机可执行指令。在另一个实施例中,计算机程序产品包括其上记录有计算机可执行指令的计算机可读介质。所述计算机可读介质优选地是非暂时性的;即,是有形的。在又一个实施例中,计算机程序被体现为可再现的计算机可读信号,并且因此可以以这种信号的形式被发送。
[0006]根据本专利技术的其他方面,其他实施例是显而易见的。方法专利技术的特征可以与装置专利技术的特征相结合,反之亦然。
附图说明
[0007]下面将参考附图中示出的示例性实施例更详细地解释本专利技术的主题,附图示意性地示出了:
[0008]图1在成功交易的情况下,客户机装置和服务器计算机以及它们之间交互的序列图;
[0009]图2在交易不成功的情况下,客户机装置和服务器计算机以及它们之间交互的序列图。
[0010]在附图标记列表中以汇总形式列出了附图中使用的附图标记及其含义。原则上,图中相同的部分具有相同的附图标记。
具体实施方式
[0011]图1示意性地示出了用于在客户机1和服务器2之间进行鲁棒通信以执行交易的方
法的序列图。客户机装置1和服务器计算机2都是计算机化的装置,通常包括数字数据处理单元。典型地,客户机装置1包括用于与另一数据处理装置进行通信的用户接口和/或通信接口。
[0012]所述方法包括以下步骤:
[0013]·
客户机基于用户输入,确定(11)交易详情;
[0014]在实施例中,客户机是在由用户控制的装置上运行的软件应用,其中交易请求是基于用户输入生成的。该交易可以是例如购买或转移商品或资金的订单(例如“订购两个苹果”)。在实施例中,客户机由在另一上下文中执行交易的软件控制。
[0015]所述方法还包括以下步骤:
[0016]·
客户机生成(12)并向服务器发送交易请求21,该交易请求21包括交易的详情和标识该交易的交易UUID;
[0017]客户机存储该交易UUID,并在以后的步骤中将附有该UUID的输入消息与该UUID标识的交易相关联。
[0018]生成该请求的步骤(12)可能已经涉及与服务器的交互,例如检查要订购的商品是否可供应,或者用户的帐户是否有足够的资金来支付该商品。这可以称为业务逻辑建立。在某些情况下,业务逻辑建立可以包含UUID。
[0019]通常,可以使用业务逻辑设置来确保交易的服务器侧部分具有所有必需的资源,以最大化最终交易请求21的成功。这是可选的,因为并非每个用例都依赖于它。
[0020]例如,业务逻辑设置可以用于维护交易的服务器侧会话。在电子商务服务器的情况下,这可以是向(与UUID关联的)购物车中添加一个或多个商品,这样最终的购买请求就不会出现缺货的情况。在这种情况下,业务逻辑设置将把库存商品预留给购物车。交易请求21将会最终结帐。
[0021]在已经检查了这样的应用侧或业务侧条件并且在一定程度上准备好从业务侧执行交易之后,客户机生成交易请求21。
[0022]该方法还包括以下步骤:
[0023]·
客户机在向服务器发送交易请求21后,等待第一超时时间段(13),以等待服务器发送的交易确认请求22;
[0024]·
可选地,可以是这种情况,在等待时,客户机
[0025]o不被允许再发送具有同一UUID的交易请求;
[0026]·
服务器,在接收到交易请求21后,生成(31)并向客户机发送交易确认请求22,该交易确认请求22包括交易UUID;
[0027]生成交易确认请求22的步骤(31)可以涉及完整的业务逻辑建立。服务器存储和跟踪交易UUID,并将它与服务器侧稍后生成的交易结果相关联。如上所述,在已经通过较早的交互被完成的部分业务逻辑设置的实施例中,可以在生成交易确认请求22之前对应用或业务侧进行最终检查。
[0028]例如,如果不是所有服务器侧资源都可用于进行处理,则服务器可以拒绝交易请求21。例如,如果我们想向帐户X支付2000美元,而我们自己的帐户中没有足够的资金。
[0029]在业务应用的上下文中看到,使得发送交易确认请求22的步骤与从业务或应用侧建立交易有关。其余步骤用于协调客户机装置1和服务器计算机2,以确保在处理步骤33中
仅执行一次交易,并确保客户机装置1和服务器计算机2都被正确告知执行结果。
[0030]客户机接收交易确认请求22的事实使客户机知道交易请求21没有在传输中丢失。这进一步意味着,客户机可以确信服务器来负责完成交易,并且客户机可以简单地等待最终结果。如下所示,最终结果可以是交易成功或中止。
[0031]在实施例中,发送交易确认请求22由客户机发起。例如,它是由轮询服务器的客户机触发。或者,客户机监视服务器的相应状态,并且在检测到该状态的改变时,获取交易确认请求22,这涉及到发送交易确认请求22的服务器。
[0032]该方法还包括以下步骤:
[0033]·
如果在第一超时时间段到期之前接收到包含该交易UUID的交易确认请求22,则客户机生成(14)并发送包含该交易UUID的交易确认响应23,随后等待(15)来自服务器的包含该交易UUID的交易结果消息24,并且在等待时
[0034]o不能中止该交易;
[0035]·
如果在第一超时时间段到期之前没有接收到交易确认请求22,则客户机中止与该交易UUID相关联的客户机侧交易请求处理;
[0036]在实施例中,客户机对于同一订单发送具有不同的第二交易UUID的另一个交易请求21,并且通过等待(13)第一超时时间段以等待具有第二交易UUID的交易确认请求22来开始针对该第二交易UUID的相同处理。
[0037]该方法还本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种用于客户机(1)和服务器(2)之间以执行交易的鲁棒通信方法,,所述方法包括以下步骤:基于用户输入,客户机确定(11)交易的详情;客户机生成(12)并向服务器发送交易请求(21),所述交易请求(21)包括交易的详情和标识该交易的交易UUID;在向服务器发送交易请求(21)后,客户机等待(13)第一超时时间段,以等待由所述服务器发送的交易确认请求(22);在接收到交易请求(21)后,服务器生成(31)并向所述客户机发送交易确认请求(22),所述交易确认请求(22)包括所述交易UUID;如果在第一超时时间段过期前,接收到包括所述交易UUID的交易确认请求(22),客户机生成(14)和发送包括所述交易UUID的交易确认响应(23),并且随后等待(15)来自服务器的包含交易UUID的交易结果消息(24),并且在等待时不能中止该交易;如果在第一超时时间段到期之前没有接收到交易确认请求(22),则客户机中止与交易UUID相关联的客户机侧交易请求处理;如果在中止客户机侧交易请求处理后,接收到交易确认请求(22),则客户机不响应服务器,或者向服务器发送中止消息;向客户机发送交易确认请求(22)后,服务器等待(32)第二超时时间段,以等待客户机发送的交易确认响应(23);如果在第二超时时间段到期之前接收到交易确认响应(23),则服务器处理(33)交易并将包括交易UUID的交易结果消息(24)发送给客户机;如果在第二超时时间段到期之前没有接收到交易确认响应(23),则服务器中止(34)服务器侧交易处理,并且将包括交易UUID的服务器侧交易中止消息(25)发送给客户机;如果接收到服务器侧交易中止消息(25),则客户机中止(17)客户机侧交易请求处理;如果接收到交易结果消息(24),则客户机处理(16)交易结果消息(24)。2.根据权利要求1所述的方法,包括:在所述客户机已经向所述服务器发送了所述交易请求(21)之后,以及在所述客户机正在等待(13)第一超时时间段期间,以等待由所述服务器发送的所述交易确认请求(22),不允许客户机发送具有同一UUID的另一个交易请求。3.根据权利要求1或2所述的方法,包括:在所述客户机生成(12)并发送交易请求(21)的步骤之前,在所述客户机装置(1)与所述服务器计算机(2)之间进行交互以用于建立业务逻辑的至少一部分。4.根据权利要求3所述的方法,所述交互包括UUID。5.根据权利要求1或2所述的方法,包括:在所述客户机生成(12)并发送交易请求(21)的步骤之前,在所述客户机装置(1)与所述服务器计算机(2)之间没有用于建立业务逻辑的至少一部分的的交互。6.根据权利要求1或2所述的方法,包括以下步骤:当等待针对所述交易UUID的交易确认请求(22)时,所述客户机中止与所述交易UUID相关联的交易,并为同一订单发送具有一个不同交易UUID的另一交易请求(21)。
7.根据...
【专利技术属性】
技术研发人员:盖,
申请(专利权)人:盖,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。