一种快速信息交互方法、本地服务器、异地服务器及***
技术领域
本申请涉及通信技术领域,具体涉及一种快速信息交互方法、本地服务器、异地服务器及***。
背景技术
随着网络技术的不断发展,网络应用日益增多,通过网络进行信息交互也变得越来越频繁。信息交互的种类有多种,其中包括数据更新式信息交互,即通过信息交互实现数据更新。如,在利用网络应用处理事务的过程中,经常需要根据变化条件将已有数据进行更新,此时即需要通过信息交互实现数据更新。通常,数据更新式信息交互会快速完成,但在某些情况,如,在为了提高***容量和异地容灾能力,将同一应用部署到异地的不同机房,该应用对应的数据库也异地部署的情况,由于数据更新式信息交互过程,在同一流程中,涉及到的数据操作存在跨异地机房的情况,导致数据更新式信息交互会产生延时,即在存在跨异地机房操作的情况,数据更新式信息交互的完成时间,比在通常情况下的完成时间长;且通常,这些需被更新的数据又必须在最短的时间之内同时完成更新,因此必须快速完成信息交互。
综上所述,由于现有技术存在耗时交互操作的问题,导致信息交互产生延时,即信息交互完成时间过长,降低了信息交互效率。
发明内容
本申请提供一种快速信息交互方法、本地服务器、异地服务器及***,以解决现有技术存在耗时交互操作的问题。
本申请提供一种快速信息交互方法,包括:
本地服务端接收客户端发送的数据更新请求;
所述本地服务端根据所述数据更新请求,将存储在本地的所述客户信息中的对应数据进行更新;
若所述数据已更新,则所述本地服务端根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求,向存储所述关联数据的异地服务端发送所述关联数据更新请求,并向所述客户端反馈所述数据更新成功信息。
可选的,所述本地服务端根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求,向存储所述关联数据的异地服务端发送所述关联数据更新请求,具体步骤包括:
所述本地服务端根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求;
所述本地服务端判断所述关联数据更新请求是否已生成;
若是,则所述本地服务端向存储所述关联数据的异地服务端发送所述关联数据更新请求;
若否,则所述本地服务端返回执行所述本地服务端根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求步骤。
可选的,所述向存储所述关联数据的异地服务端发送所述关联数据更新请求,具体步骤包括:
所述本地服务端向本地消息中间件发送所述关联数据更新请求;
所述本地消息中间件接收所述关联数据更新请求;
所述本地消息中间件向所述异地服务端发送所述关联数据更新请求。
可选的,还包括:
所述本地服务端判断是否有所述关联数据更新请求生成;
若有,则所述本地服务端判断所述本地消息中间件是否收到所述关联数据更新请求;
若未收到,则所述本地服务端返回执行所述本地服务端向本地消息中间件发送所述关联数据更新请求步骤。
可选的,还包括:
所述本地服务端判断所述本地消息中间件是否完成向所述异地服务端发送所述关联数据更新请求;
若完成,则所述本地服务端判断所述本地消息中间件是否接收到所述异地服务端反馈的已成功接收所述关联数据更新请求的信息;
若未接收到,则所述本地服务端返回执行所述本地消息中间件向所述异地服务端发送所述关联数据更新请求步骤。
可选的,若所述关联数据存储在至少两个所述异地服务端,则所述向存储所述关联数据的异地服务端发送所述关联数据更新请求,具体为:
所述本地服务端选定其中一个存储所述关联数据的异地服务端,并向被选定的存储所述关联数据的异地服务端发送所述关联数据更新请求。
相应的,本申请还提供一种本地服务器,包括:
数据更新请求接收单元,用于接收客户端发送的数据更新请求;
数据更新单元,用于根据所述数据更新请求,将存储在本地的所述客户信息中的对应数据进行更新;
信息发送单元,用于若所述数据已更新,则根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求,向存储所述关联数据的异地服务端发送所述关联数据更新请求,并向所述客户端反馈所述数据更新成功信息。
可选的,所述根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求,向存储所述关联数据的异地服务端发送所述关联数据更新请求,具体步骤包括:
根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求;
判断所述关联数据更新请求是否已生成;
若是,则向存储所述关联数据的异地服务端发送所述关联数据更新请求;
若否,则返回执行所述根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求步骤。
可选的,所述向存储所述关联数据的异地服务端发送所述关联数据更新请求,具体步骤包括:
向本地消息中间件发送所述关联数据更新请求;
所述本地消息中间件接收所述关联数据更新请求;
所述本地消息中间件向所述异地服务端发送所述关联数据更新请求。
可选的,还包括:
关联数据更新请求生成结果判断单元,用于判断是否有所述关联数据更新请求生成;
关联数据更新请求接收结果判断单元,用于接收所述关联数据更新请求生成结果判断单元的判断结果,若判断结果为有,则判断所述本地消息中间件是否收到所述关联数据更新请求;
第一返回单元,用于接收所述关联数据更新请求接收结果判断单元的判断结果,若判断结果为未收到,则返回执行所述向本地消息中间件发送所述关联数据更新请求步骤。
可选的,还包括:
关联数据更新请求发送结果判断单元,用于判断所述本地消息中间件是否完成向所述异地服务端发送所述关联数据更新请求;
异地服务端反馈信息接收结果判断单元,用于接收所述关联数据更新请求发送结果判断单元的判断结果,若判断结果为完成,则判断所述本地消息中间件是否接收到所述异地服务端反馈的已成功接收所述关联数据更新请求的信息;
第二返回单元,用于接收所述异地服务端反馈信息接收结果判断单元的判断结果,若判断结果为未接收到,则返回执行所述本地消息中间件向所述异地服务端发送所述关联数据更新请求步骤。
可选的,若所述关联数据存储在至少两个所述异地服务端,则所述向存储所述关联数据的异地服务端发送所述关联数据更新请求,具体为:
选定其中一个存储所述关联数据的异地服务端,并向被选定的存储所述关联数据的异地服务端发送所述关联数据更新请求。
本申请还提供一种快速信息交互方法,包括:
存储关联数据的异地服务端,接收本地服务端根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求;
所述异地服务端根据所述关联数据更新请求完成相应的所述关联数据的更新操作。
可选的,所述存储关联数据的异地服务端,接收本地服务端根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求,具体为:
存储关联数据的异地服务端的消息中间件,接收本地服务端根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求。
可选的,所述异地服务端根据所述关联数据更新请求完成相应的所述关联数据的更新操作,具体步骤包括:
所述异地服务端接收所述消息中间件发送的所述关联数据更新请求;
所述异地服务端解析所述关联数据更新请求,获得所述关联数据的变化值;
所述异地服务端根据所述关联数据的变化值,更新所述关联数据。
可选的,还包括:
所述异地服务端对应所述关联数据更新请求中的所述关联数据ID,判断所述关联数据的更新操作是否完成;
若未完成,则所述异地服务端返回执行所述异地服务端根据所述关联数据的变化值,更新所述关联数据步骤。
可选的,若所述关联数据存储在至少两个所述异地服务端,则所述存储关联数据的异地服务端,接收本地服务端根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求,具体为:
由本地服务端选定的存储所述关联数据的异地服务端的消息中间件,接收所述本地服务端根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求。
可选的,所述异地服务端根据所述关联数据更新请求完成相应的所述关联数据的更新操作,具体为:
被选定的存储所述关联数据的异地服务端根据所述关联数据更新请求完成相应的所述关联数据的更新操作。
可选的,所述被选定的存储所述关联数据的异地服务端根据所述关联数据更新请求完成相应的所述关联数据的更新操作,具体步骤包括:
所述被选定的存储所述关联数据的异地服务端接收所述消息中间件发送的所述关联数据更新请求;
所述被选定的存储所述关联数据的异地服务端解析所述关联数据更新请求,获得所述关联数据的变化值;
所述被选定的存储所述关联数据的异地服务端根据所述关联数据的变化值,更新存储在本地的所述关联数据;
所述被选定的存储所述关联数据的异地服务端根据所述关联数据更新请求,调用未被选定的存储所述关联数据的异地服务端的更新数据函数;
所述被选定的存储所述关联数据的异地服务端根据所述关联数据的变化值,通过所述更新数据函数更新未被更新的所述关联数据。
相应的,本申请还提供一种异地服务器,用于上述所述的快速信息交互方法,包括:
关联数据更新请求接收单元,用于接收本地服务器根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求;
关联数据更新单元,用于根据所述关联数据更新请求完成相应的所述关联数据的更新操作。
可选的,所述接收本地服务器根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求,具体为:
消息中间件接收本地服务器根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求。
可选的,所述根据所述关联数据更新请求完成相应的所述关联数据的更新操作,具体步骤包括:
所述接收所述消息中间件发送的所述关联数据更新请求;
所述解析所述关联数据更新请求,获得所述关联数据的变化值;
所述根据所述关联数据的变化值,更新所述关联数据。
可选的,还包括:
更新操作完成结果判断单元,用于对应所述关联数据更新请求中的所述关联数据ID,判断所述关联数据的更新操作是否完成;
步骤返回单元,用于接收所述更新操作完成结果判断单元的判断结果,若判断结果为未完成,则返回执行所述根据所述关联数据的变化值,更新所述关联数据步骤。
可选的,若所述关联数据存储在至少两个所述异地服务器,则所述根据所述关联数据更新请求完成相应的所述关联数据的更新操作,具体步骤包括:
接收所述消息中间件发送的所述关联数据更新请求;
解析所述关联数据更新请求,获得所述关联数据的变化值;
根据所述关联数据的变化值,更新存储在本地的所述关联数据;
根据所述关联数据更新请求,调用存储未被更新的所述关联数据的异地服务器的更新数据函数;
根据所述关联数据的变化值,通过所述更新数据函数更新未被更新的所述关联数据。
此外,本申请还提供一种快速信息交互***,包括:客户端、上述所述的本地服务器和上述所述的异地服务器。
与现有技术相比,本申请具有以下优点:
本申请提供的快速信息交互方法、本地服务器、异地服务器及***,通过本地服务端接收客户端发送的数据更新请求;所述本地服务端根据所述数据更新请求,将存储在本地的所述客户信息中的对应数据进行更新;若所述数据已更新,则所述本地服务端根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求,向存储所述关联数据的异地服务端发送所述关联数据更新请求,并向所述客户端反馈所述数据更新成功信息。该技术方案通过向异地服务端发送关联数据更新请求,让异地服务端完成关联数据的更新,避免出现耗时交互操作,实现快速完成信息交互,提高了信息交互效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请的其中一种快速信息交互方法实施例的流程图;
图2为本申请的本地服务器实施例的示意图;
图3为本申请的其中另一种快速信息交互方法实施例的流程图;
图4为本申请的异地服务器实施例的示意图;
图5为本申请的快速信息交互***实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请中,分别提供了一种快速信息交互方法和一种本地服务器、另一种快速信息交互方法和一种异地服务器以及一种快速信息交互***,以下为具体实施例:
如图1所示,其为本申请的其中一种快速信息交互方法实施例的流程图。所述方法包括如下步骤:
步骤S101:本地服务端接收客户端发送的数据更新请求。
当客户需要本地服务端提供数据更新服务时,则需要通过客户端向本地服务端发送数据更新请求,本地服务端需接收该数据更新请求,以便根据其执行相应的数据更新操作。具体的,本地服务端可以接收客户通过点击或按按键等方式发起的数据更新请求。
以支付业务为例进行说明,在本实施例中,本地服务端存储有付款方账户信息,付款方账户信息包括付款账户余额信息和电子票据信息等;所述电子票据可以为电子红包、电子打折卡等;当付款方使用其账户中的电子票据进行支付时,付款方即需通过客户端,如,手机、Pad或PC机等,向本地服务端发送电子票据支付请求,该电子票据支付请求即为数据更新请求,请求更新的数据包括付款方账户信息中的电子票据数据;本地服务端则需接收客户端发送的电子票据支付请求,以便根据其执行相应的数据更新操作,在本实施例中,具体可以为本地服务端的电子票据应用接收客户端发送的电子票据支付请求。
步骤S102:所述本地服务端根据所述数据更新请求,将存储在本地的所述客户信息中的对应数据进行更新。
数据更新请求信息可以包括被请求更新的数据ID和该数据的更新值即被请求更新的数据被更新后的数值,或者包括该数据的变化值即被请求更新的数据应该增加的值或减少的值等信息。在本地服务端接收到客户端发送的数据更新请求后,即需根据该数据更新请求信息中的被请求更新的数据ID,从本地服务端存储的客户信息中查找到相应的数据,根据该数据更新请求信息中的被请求更新的数据的更新值或其变化值,将存储在本地的客户信息中的对应数据进行更新。
在本实施例中,在付款方使用其账户中的电子票据进行支付时,电子票据支付请求请求更新的数据包括付款方账户信息中的电子票据数据,相应的,电子票据支付请求信息中包括电子票据数据ID和电子票据数据的更新值或其变化值。在本地服务端的电子票据应用接收到付款方通过客户端发送的电子票据支付请求后,即需根据该电子票据支付请求信息中的被请求更新的电子票据数据ID,从本地服务端存储的信息中查找到相应的电子票据数据,如,查找到的付款方账户信息中的电子票据数据的数值为3;接着需根据该电子票据支付请求信息中的被请求更新的电子票据数据的更新值或其变化值,将存储在本地的付款方账户信息中的电子票据数据进行更新,即对付款方账户中的被选用的电子票据进行核销,如,在本次支付业务中,付款方使用其账户中的一张电子票据进行支付,因此,电子票据数据的更新值为2、其变化值为1,即本地服务端的电子票据应用需用更新值2替换电子票据数据的数值3,或根据变化值1将电子票据数据的数值3变为2,完成对被选用的电子票据的核销操作。
步骤S103:若所述数据已更新,则所述本地服务端根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求,向存储所述关联数据的异地服务端发送所述关联数据更新请求,并向所述客户端反馈所述数据更新成功信息。
通常某项数据会存在与其具有关联关系的关联数据,该项数据被更新后,关联数据也要被更新,如,在学生期末成绩表中,某学生单项科目成绩数据的关联数据即为该学生的总成绩数据,单项科目成绩数据被更新后,对应的总成绩数据也要被更新。
在本实施例中,付款方选择使用电子票据支付交易款项给收款方。需说明的是,电子票据在被发放之前,发行者会在保证金账户中存有电子票据发行总量对应的保证金。因此,在这里保证金账户信息的保证金数据和收款方账户信息的收款账户余额数据,即为与电子票据数据具有关联关系的数据。在使用电子票据进行支付时,当被选用的电子票据被核销后,还需从该电子票据对应的保证金账户中扣减掉相应的保证金,及为收款方账户增加相应的收款账户余额,即电子票据数据被更新后,保证金数据、收款账户余额数据也要被更新。
需说明的是,在某些情况,某项数据和与其具有关联关系的关联数据,可能会被存储在异地不同的服务端,在将存储在本地服务端的某项数据更新后,还需将存储在异地服务端的关联数据进行更新。如,在本实施例中,为了提高***容量和异地容灾能力,电子票据支付应用被部署到异地不同的服务端,其中,电子票据支付应用包括电子票据应用和账务应用,异地部署后本地服务端有电子票据应用和账务应用,异地服务端也有电子票据应用和账务应用。在这种情况下,就会存在付款方账户信息被存储在本地服务端,保证金账户信息和收款方账户信息被存储在异地服务端。在将存储在本地服务端的电子票据数据更新后,还需将存储在异地服务端的保证金数据和收款账户余额数据进行更新。
在这种情况下,对存储在异地不同服务端的某项数据及其关联数据,进行更新的现有方式为,这里以电子票据支付为例进行说明,在本地服务端的电子票据应用对被选用的电子票据进行核销后,即电子票据数据被更新后,其会调用存储有保证金账户信息的异地服务端的账务应用,完成保证金的扣减操作,即完成保证金数据的更新操作。对于收款账户余额数据的更新,若收款方账户信息也存储在该异地服务端,该异地服务端的账务应用会同时完成收款账户余额数据的更新操作,若收款方账户信息存储在另一异地服务端,在本地服务端的电子票据应用完成电子票据数据的更新操作后,其会调用存储有保证金账户信息的异地服务端的账务应用,完成保证金的扣减操作,调用存储有收款方账户信息的异地服务端的账务应用,完成收款账户余额的增加操作,全部数据更新完毕后,本地服务端即会向客户端反馈支付成功信息。
由于本地服务端的电子票据应用调用异地服务端的账务应用的操作,属于跨异地服务端的操作,因此,该操作会产生较长的延时,如,若本地服务端的电子票据应用,调用其账务应用的操作完成时间为10ms,本地服务端与异地服务端之间的距离为1500公里以上,则本地服务端的电子票据应用,调用异地服务端的账务应用的操作将会产生30ms以上的延时,即该跨异地服务端操作的完成时间为40ms以上。由于上述的信息交互过程存在耗时交互操作,导致支付延时,即支付完成时间过长。
为了避免信息交互产生延时,在本申请提供的方法中,若上述步骤S102已完成对所述数据的更新操作,则在本步骤中所述本地服务端还需根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求,向存储所述关联数据的异地服务端发送所述关联数据更新请求,并向所述客户端反馈所述数据更新成功信息。即本地服务端在将存储在本地的被请求更新的数据更新完毕后,只需生成关联数据更新请求,向异地服务端发送该关联数据更新请求,并向所述客户端反馈所述数据更新成功信息即可,无需进行跨异地服务端调用函数完成存储在异地服务端的关联数据的更新操作,而关联数据的更新操作可以让存储关联数据的异地服务端完成。最终实现,通过向异地服务端发送关联数据更新请求,让异地服务端完成关联数据的更新,避免出现耗时交互操作,实现快速完成信息交互,提高了信息交互效率。需说明的是,在应用本申请提供的方法进行信息交互过程中,需要确保关联数据更新请求被投递到异地服务端,这样即可保证向所述客户端反馈的所述数据更新成功信息的正确性。
在本实施例中,所述本地服务端根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求,向存储所述关联数据的异地服务端发送所述关联数据更新请求,具体步骤包括:所述本地服务端根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求;所述本地服务端判断所述关联数据更新请求是否已生成;若是,则所述本地服务端向存储所述关联数据的异地服务端发送所述关联数据更新请求;若否,则所述本地服务端返回执行所述本地服务端根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求步骤。
具体到支付业务,在本实施例中,若上述步骤S102已完成对所述电子票据数据的更新操作,则在本步骤中,本地服务端的电子票据应用还需根据电子票据支付请求生成请求更新与电子票据数据有关联关系的关联数据的关联数据更新请求。由于电子票据数据的关联数据为保证金数据及收款账户余额数据,在这里,关联数据更新请求可以为电子票据支付单据。为了确保电子票据与电子票据支付单据状态的一致性,在电子票据数据已被更新的情况,即电子票据已被核销的情况,电子票据支付单据一定要创建成功。因此,在执行完生成电子票据单据步骤后,本地服务端的电子票据应用还需判断电子票据支付单据是否已生成;若是,则本地服务端的电子票据应用向存储保证金数据及收款账户余额数据的异地服务端发送电子票据单据;若否,则返回执行本地服务端的电子票据应用根据电子票据支付请求生成请求更新与电子票据数据有关联关系的关联数据的关联数据更新请求步骤。
需说明的是,在本实施例中,所述向存储所述关联数据的异地服务端发送所述关联数据更新请求,具体步骤包括:所述本地服务端向本地消息中间件发送所述关联数据更新请求;所述本地消息中间件接收所述关联数据更新请求;所述本地消息中间件向所述异地服务端发送所述关联数据更新请求。如,本地服务端的电子票据应用向本地消息中间件应用发送电子票据支付单据;本地消息中间件应用接收电子票据支付单据;本地消息中间件应用向异地服务端发送电子票据支付单据。
需说明的是,在本实施例中,在所述数据已更新后,本地服务端可以首先执行向所述客户端反馈所述数据更新成功信息,再执行根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求,向存储所述关联数据的异地服务端发送所述关联数据更新请求。在一些情况下,通过客户端发送数据更新请求的客户,在客户端感受到的仅是存储在本地服务端的被请求更新的数据的变化,而对存储在异地服务端的与该数据具有关联关系的关联数据的变化是无感知的。因此,在本步骤中,在被请求更新的数据被更新完毕后,本地服务端无需先执行根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求,向存储所述关联数据的异地服务端发送所述关联数据更新请求,即可首先执行向客户端反馈数据更新成功信息。。
如本实施例中的支付业务,付款方在实际支付过程中,感受到的仅是付款方账户中的电子票据的核销,而对保证金账户的保证金的扣减和收款方账户的收款账户余额的增加操作是无感知的。因此,在电子票据被核销后,本地服务端无需等待保证金的扣减和收款账户余额的增加操作完毕,即可向客户端反馈支付成功信息。且在电子票据被核销后,已向异地服务端发送电子票据支付单据,由异地服务端完成保证金的扣减和收款账户余额的增加操作。实现在同步支付过程不执行跨异地服务端的操作,避免出现耗时交互操作,实现快速完成支付过程,提高了支付效率。同时,异地服务端可以在接收到电子票据支付单据之后立即执行异步资金处理操作,确保收款方收款的及时性。
需说明的是,为了确保在关联数据请求生成后,消息中间件必须收到该关联数据请求,如,在电子票据支付单据生成后,则必须确保消息中间件收到该单据信息,在本实施例中,还包括:所述本地服务端判断是否有所述关联数据更新请求生成;若有,则所述本地服务端判断所述本地消息中间件是否收到所述关联数据更新请求;若未收到,则所述本地服务端返回执行所述本地服务端向本地消息中间件发送所述关联数据更新请求步骤。
为了确保在消息中间件收到关联数据请求后,也必须确保此关联数据请求能够投递到异地服务端,在本实施例中,还包括:所述本地服务端判断所述本地消息中间件是否完成向所述异地服务端发送所述关联数据更新请求;若完成,则所述本地服务端判断所述本地消息中间件是否接收到所述异地服务端反馈的已成功接收所述关联数据更新请求的信息;若未接收到,则所述本地服务端返回执行所述本地消息中间件向所述异地服务端发送所述关联数据更新请求步骤。
在这里还需说明的是,在本实施例中,若所述关联数据存储在至少两个所述异地服务端,则所述向存储所述关联数据的异地服务端发送所述关联数据更新请求,具体为:所述本地服务端选定其中一个存储所述关联数据的异地服务端,并向被选定的存储所述关联数据的异地服务端发送所述关联数据更新请求。如,在电子票据支付业务中,关联数据有保证金数据和收款账户余额数据,它们可能分别被存储在不同的异地服务端。在这种情况下,本地服务端可以选定存储有保证金的异地服务端,并向其发送电子票据支付单据,在该异地服务端完成保证金的扣减操作后,由其调用存储收款账户余额的异地服务端的账务应用,完成收款账户余额的增加操作。当然,在这种情况下,本地服务端也可以分别向存储有保证金的异地服务端和存储有收款账户余额的异地服务端分别发送电子票据支付单据,由这两个异地服务端分别完成相应的数据更新操作。
在上述的实施例中,提供了一种快速信息交互方法,与之相对应的,本申请还提供一种本地服务器。如图2所示,其为本申请的本地服务器实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种本地服务器,用于上述任意一项所述的快速信息交互方法,包括:
数据更新请求接收单元201,用于接收客户端发送的数据更新请求;
数据更新单元202,用于根据所述数据更新请求,将存储在本地的所述客户信息中的对应数据进行更新;
信息发送单元203,用于若所述数据已更新,则根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求,向存储所述关联数据的异地服务端发送所述关联数据更新请求,并向所述客户端反馈所述数据更新成功信息。
可选的,所述根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求,向存储所述关联数据的异地服务端发送所述关联数据更新请求,具体步骤包括:
根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求;
判断所述关联数据更新请求是否已生成;
若是,则向存储所述关联数据的异地服务端发送所述关联数据更新请求;
若否,则返回执行所述根据所述数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求步骤。
可选的,所述向存储所述关联数据的异地服务端发送所述关联数据更新请求,具体步骤包括:
向本地消息中间件发送所述关联数据更新请求;
所述本地消息中间件接收所述关联数据更新请求;
所述本地消息中间件向所述异地服务端发送所述关联数据更新请求。
可选的,还包括:
关联数据更新请求生成结果判断单元,用于判断是否有所述关联数据更新请求生成;
关联数据更新请求接收结果判断单元,用于接收所述关联数据更新请求生成结果判断单元的判断结果,若判断结果为有,则判断所述本地消息中间件是否收到所述关联数据更新请求;
第一返回单元,用于接收所述关联数据更新请求接收结果判断单元的判断结果,若判断结果为未收到,则返回执行所述向本地消息中间件发送所述关联数据更新请求步骤。
可选的,还包括:
关联数据更新请求发送结果判断单元,用于判断所述本地消息中间件是否完成向所述异地服务端发送所述关联数据更新请求;
异地服务端反馈信息接收结果判断单元,用于接收所述关联数据更新请求发送结果判断单元的判断结果,若判断结果为完成,则判断所述本地消息中间件是否接收到所述异地服务端反馈的已成功接收所述关联数据更新请求的信息;
第二返回单元,用于接收所述异地服务端反馈信息接收结果判断单元的判断结果,若判断结果为未接收到,则返回执行所述本地消息中间件向所述异地服务端发送所述关联数据更新请求步骤。
可选的,若所述关联数据存储在至少两个所述异地服务端,则所述向存储所述关联数据的异地服务端发送所述关联数据更新请求,具体为:
选定其中一个存储所述关联数据的异地服务端,并向被选定的存储所述关联数据的异地服务端发送所述关联数据更新请求。
与上述的快速信息交互方法相对应,本申请还提供另外一种快速信息交互方法。请参考图3,其为本申请提供的其中另外一种快速信息交互方法的实施例的流程示意图,本实施例与第一实施例内容相同的部分不再赘述,请参见实施例一中的相应部分。本申请提供的另外一种快速信息交互方法包括:
步骤S301:存储关联数据的异地服务端,接收本地服务端根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求。
当实施本申请的上述所述的快速信息交互方法的本地服务端,完成将存储在本地的被请求更新的数据进行更新的操作,即存储在本地的被请求更新的数据已被更新,其会根据从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的关联数据的关联数据更新请求,并向存储所述关联数据的异地服务端发送所述关联数据更新请求。此时,存储关联数据的异地服务端,需接收本地服务端根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求。
如,在支付业务中,若电子票据支付应用被部署在异地不同的服务端,其中,电子票据支付应用包括电子票据应用和账务应用,异地部署后本地服务端有电子票据应用和账务应用,异地服务端也有电子票据应用和账务应用。且付款方账户信息被存储在本地服务端、保证金账户信息和收款方账户信息被存储在异地服务端。在这种情况下,当实施本申请的上述所述的快速信息交互方法的本地服务端,完成将被选用的电子票据进行核销的操作,其会根据电子票据支付请求生成电子票据支付单据,并向存储保证金数据和收款账户余额数据的异地服务端发送该电子票据支付单据。该异地服务端需接收该电子票据支付单据信息。
需说明的是,在本实施例中,所述存储关联数据的异地服务端,接收本地服务端根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求,具体为:存储关联数据的异地服务端的消息中间件,接收本地服务端根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求。
步骤S302:所述异地服务端根据所述关联数据更新请求完成相应的所述关联数据的更新操作。
异地服务端通过上述步骤S301已接收到关联数据请求,在本步骤中,异地服务端需根据所述关联数据更新请求完成相应的所述关联数据的更新操作。如,在支付业务中,在异地服务端接收到电子票据支付单据后,需根据该单据完成保证金的扣减和收款账户余额的增加。
在本实施例中,所述异地服务端根据所述关联数据更新请求完成相应的所述关联数据的更新操作,具体步骤包括:所述异地服务端接收所述消息中间件发送的所述关联数据更新请求;所述异地服务端解析所述关联数据更新请求,获得所述关联数据的变化值;所述异地服务端根据所述关联数据的变化值,更新所述关联数据。如,在付款方选用了一张面值为5元的电子票据进行支付时,异地服务端解析电子票据支付单据,获得的关联数据的变化值就为5,异地服务端需根据该变化值,将保证金账户中扣减5元的保证金,将收款方账户中增加5元的收款账户余额。
为了确保在异地服务端收到关联数据请求后,其必须完成关联数据的更新操作,且仅根据该请求完一次关联数据更新操作,在本实施例中,还包括:所述异地服务端对应所述关联数据更新请求中的所述关联数据ID,判断所述关联数据的更新操作是否完成;若未完成,则所述异地服务端返回执行所述异地服务端根据所述关联数据的变化值,更新所述关联数据步骤;若完成,结束操作。如,在支付业务中,在异地服务端接收到电子票据支付单据信息后,其必须要完成保证金的扣减和收款账户余额的增加,期间遇到任何***异常,处理异常都需要进行重试,直至成果为止;因为电子票据在本地服务端已被核销,必须要确保电子票据核销和异步资金处理的最终一致性。且异地服务端针对同一个电子票据支付单据,只需成功地进行一次资金处理,因此,异地服务端可以根据电子票据支付单据的单据号做幂等性控制,确保资金处理的正确性。
需说明的是,在本实施例中,若所述关联数据存储在至少两个所述异地服务端,则所述存储关联数据的异地服务端,接收本地服务端根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求,具体为:由本地服务端选定的存储所述关联数据的异地服务端的消息中间件,接收所述本地服务端根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求。当然,在其它实施例中,若所述关联数据存储在至少两个所述异地服务端,本地服务端也可分别向不同的异地服务端发送关联数据请求,由存储有关联数据的异地服务端分别接收该关联数据请求。
在仅选定其中一个异地服务端接收关联数据请求的情况下,在本实施例中,所述异地服务端根据所述关联数据更新请求完成相应的所述关联数据的更新操作,具体为:被选定的存储所述关联数据的异地服务端根据所述关联数据更新请求完成相应的所述关联数据的更新操作。
与之相应的,在本实施例中,所述被选定的存储所述关联数据的异地服务端根据所述关联数据更新请求完成相应的所述关联数据的更新操作,具体步骤包括:所述被选定的存储所述关联数据的异地服务端接收所述消息中间件发送的所述关联数据更新请求;所述被选定的存储所述关联数据的异地服务端解析所述关联数据更新请求,获得所述关联数据的变化值;所述被选定的存储所述关联数据的异地服务端根据所述关联数据的变化值,更新存储在本地的所述关联数据;所述被选定的存储所述关联数据的异地服务端根据所述关联数据更新请求,调用未被选定的存储所述关联数据的异地服务端的更新数据函数;所述被选定的存储所述关联数据的异地服务端根据所述关联数据的变化值,通过所述更新数据函数更新未被更新的所述关联数据。
如,在支付业务中,本地服务端选定向存储有保证金账户信息的异地服务端发送电子票据支付单据信息,存储保证金数据的异地服务端的消息中间件应用接收该单据信息,并向其电子票据应用发送。存储保证金数据的异地服务端的电子票据应用接收该消息中间件应用发送的支付单据信息,并解析该支付单据信息,获得支付金额;存储保证金数据的异地服务端的电子票据应用调用本地账务应用,该账务应用根据该支付金额,扣减保证金账户中的保证金;接着存储保证金数据的异地服务端的电子票据应用调用存储收款账户余额数据的异地服务端的账务应用,该账务应用根据该支付金额,增加收款方账户中的收款账户余额。
在上述的实施例中,提供了另一种快速信息交互方法,与之相对应的,本申请还提供一种异地服务器。请参看图4,其为本申请的一种异地服务器的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种异地服务器,用于上述所述的另一种快速信息交互方法,包括:关联数据更新请求接收单元401,用于接收本地服务器根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求;关联数据更新单元402,用于根据所述关联数据更新请求完成相应的所述关联数据的更新操作。
可选的,所述接收本地服务器根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求,具体为:
消息中间件接收本地服务器根据其从客户端接收的数据更新请求生成请求更新与所述数据有关联关系的所述关联数据的关联数据更新请求。
可选的,所述根据所述关联数据更新请求完成相应的所述关联数据的更新操作,具体步骤包括:
所述接收所述消息中间件发送的所述关联数据更新请求;
所述解析所述关联数据更新请求,获得所述关联数据的变化值;
所述根据所述关联数据的变化值,更新所述关联数据。
可选的,还包括:
更新操作完成结果判断单元,用于对应所述关联数据更新请求中的所述关联数据ID,判断所述关联数据的更新操作是否完成;
步骤返回单元,用于接收所述更新操作完成结果判断单元的判断结果,若判断结果为未完成,则返回执行所述根据所述关联数据的变化值,更新所述关联数据步骤。
可选的,若所述关联数据存储在至少两个所述异地服务器,则所述根据所述关联数据更新请求完成相应的所述关联数据的更新操作,具体步骤包括:
接收所述消息中间件发送的所述关联数据更新请求;
解析所述关联数据更新请求,获得所述关联数据的变化值;
根据所述关联数据的变化值,更新存储在本地的所述关联数据;
根据所述关联数据更新请求,调用存储未被更新的所述关联数据的异地服务器的更新数据函数;
根据所述关联数据的变化值,通过所述更新数据函数更新未被更新的所述关联数据。
本申请实施例还提供一种快速信息交互***,如图5所示,该***包括客户端501、上述实施例所述的本地服务器502和上述实施例所述的异地服务器503。
以上对本申请提供的一种快速信息交互方法、本地服务器、异地服务器及***的实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。