CN103391257A - 一种报文存储、转发方法、装置及系统 - Google Patents
一种报文存储、转发方法、装置及系统 Download PDFInfo
- Publication number
- CN103391257A CN103391257A CN2012101404408A CN201210140440A CN103391257A CN 103391257 A CN103391257 A CN 103391257A CN 2012101404408 A CN2012101404408 A CN 2012101404408A CN 201210140440 A CN201210140440 A CN 201210140440A CN 103391257 A CN103391257 A CN 103391257A
- Authority
- CN
- China
- Prior art keywords
- message
- key element
- element value
- stored
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种报文存储、转发方法、装置及系统,所述方法包括接收待存储的报文;在接收的待存储报文中确定用于唯一标识所述报文的关键要素值;确定关键要素值存储区中是否写入有确定的所述关键要素值,其中所述关键要素值存储区中存储有数据库中已存储报文分别对应的关键要素值;如果是,则将接收到的待存储报文丢弃;如果否,则将接收的待存储报文存储至数据库中,并将确定的关键要素值写入所述关键要素值存储区中。采用本申请这里提出的技术方案,能够较好地节省系统的存储资源。
Description
技术领域
本申请涉及网络数据通信技术领域,尤其涉及一种报文存储、转发方法、装置及系统。
背景技术
报文,是计算机系统之间交换信息的载体。报文存储转发,是一种信息交换技术,是指在计算机系统间交换信息之前(或者交换信息失败以后)将报文进行持久化存储,并且在合适的时间从持久化存储的报文中取出相应报文进行交换(或者重新发送)。报文存储转发系统是指在网络通信节点中,对需要交换转发的报文,完成逻辑判决与缓冲存储的功能,并在适当时机再把报文发送出去,这种先接收后存储再转发的工作方式称为报文存储转发工作方式。
如图1所示,报文存储转发系统包括至少两个计算机系统(如图1中的企业应用系统和外部应用系统),两个计算机系统之间通过负责计算机系统之间通讯的通讯前置系统连接。其中,在业务链路上,通讯前置系统通常介于不同业务域的计算机系统之间,负责在计算机系统之间进行信息交换。在两个计算机系统之间进行报文交换,存在至少两种情况,一种情况是:对于同一个报文,允许多次交换。另一种情况是,对于同一个报文,只允许唯一交换一次。对于同一个报文,只允许唯一交换一次的情况下,现有技术中报文存储转发的方式通常是基于消息队列来完成的,对于一个报文来说,其处理过程如下:
步骤一:企业应用系统将待交换的报文写入到待交换报文队列中存储。
步骤二:通讯前置系统在待交换报文队列中获取报文,将获取的报文转发给外部应用系统。
步骤三:外部应用系统接收由通讯前置系统发来的报文,并对该报文进行处理,在完成对该报文的处理之后,通过通讯前置系统发送响应报文。
步骤四:通讯前置系统将接收到的响应报文存储到响应报文队列中,企业应用系统可以在响应报文队列中获得与交换报文对应的响应报文。
下面以银行ATM设备中的一笔跨行转账业务为例,来进一步阐述现有技术中报文存储转发的过程,如图2所示:
步骤201,ATM设备将用户发来的跨行转账请求,发送至本行业务系统中。
步骤202,本行业务系统处理转账请求,生成跨行转账消息,并将生成的跨行转账消息写入请求队列中存储。
步骤203,跨行通讯前置系统从请求队列中取出跨行转账消息。
步骤204,跨行通讯前置系统根据取出的跨行转账消息通过金融网络向对应的银行发起转账请求。
步骤205,金融网络将接收到的他行发来的转账结果发送给跨行通讯前置系统。
步骤206,跨行通讯前置系统将转账结果写入到响应队列中存储。
步骤207,本行业务系统从响应队列中取出存储的转账结果。
步骤208,本行业务系统将取出的转账结果反馈给ATM设备,并在ATM设备上向用户展示相应信息。
由上述处理过程可知,现有技术中报文存储、转发方法,在报文存储转发过程中,如果计算机系统硬件或者软件出现故障,在存储过程中会使得一条消息被多次写入,浪费系统的存储资源,并且在处理过程中,也可能存在一条消息被多次转发,造成中央处理器(CPU)处理资源的浪费,进而影响了系统的处理性能。
发明内容
本申请实施例提供一种报文存储方法及装置,能够较好地节省系统的存储资源。
相应地,本申请实施例提供一种报文转发方法及装置,能够较好的节省CPU处理资源,提高系统的处理性能。
相应地,本申请实施例提供一种报文存储转发系统和装置,能够保证在至少两个不同的计算机系统之间进行报文通讯时,同一个报文只被存储和转发一次。
本申请实施例技术方案如下:
一种报文存储方法,包括:接收待存储的报文;在接收的待存储报文中确定用于唯一标识所述报文的关键要素值;确定关键要素值存储区中是否写入有确定的所述关键要素值,其中所述关键要素值存储区中存储有数据库中已存储报文分别对应的关键要素值;如果是,则将接收到的待存储报文丢弃;如果否,则将接收的待存储报文存储至数据库中,并将确定的关键要素值写入所述关键要素值存储区中。
一种报文转发方法,包括:在数据库存储的报文中获得待转发的报文;在获得的报文中确定用于唯一标识所述报文的关键要素值;确定幂等性控制存储区中是否写入有确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值;如果是,则将获得的报文丢弃;如果否,则将获得的报文转发。
一种报文存储装置,包括:接收单元,用于接收待存储的报文;确定单元,用于在接收单元接收的待存储报文中确定用于唯一标识所述报文的关键要素值;判断单元,用于确定关键要素值存储区中是否写入有确定单元确定的所述关键要素值,其中所述关键要素值存储区中存储有数据库中已存储报文分别对应的关键要素值;执行单元,用于在判断单元的判断结果为是时,将接收到的待存储报文丢弃,以及在判断单元的判断结果为否时,将接收单元接收的待存储报文存储至数据库中,并将确定单元确定的关键要素值写入所述关键要素值存储区中。
一种报文转发装置,包括:获得单元,用于在数据库存储的报文中获得待转发的报文;确定单元,用于在获得单元获得的报文中确定用于唯一标识所述报文的关键要素值;判断单元,用于确定幂等性控制存储区中是否写入有确定单元确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值;执行单元,用于在判断单元的判断结果为是时,则将获得单元获得的报文丢弃,以及在判断单元判断的结果为否时,将获得单元获得的报文转发。
一种报文存储转发系统,包括报文存储装置和报文转发装置,其中:报文存储装置,用于接收待存储的报文,在接收的待存储报文中确定用于唯一标识所述报文的关键要素值,以及确定关键要素值存储区中是否写入有确定的所述关键要素值,其中所述关键要素值存储区中存储有数据库中已存储报文分别对应的关键要素值,如果是,则将接收到的待存储报文丢弃,如果否,则将接收的待存储报文存储至数据库中,并将确定的关键要素值写入所述关键要素值存储区中;报文转发装置,用于在数据库存储的报文中获得报文存储装置存储的待转发的报文,以及在获得的报文中确定用于唯一标识所述报文的关键要素值,确定幂等性控制存储区中是否写入有确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值,如果是,则将获得的报文丢弃,如果否,则将获得的报文转发。
一种报文存储转发装置,包括:接收单元,用于接收待存储的报文;确定单元,用于在接收单元接收的待存储报文中确定用于唯一标识所述报文的关键要素值;判断单元,用于确定关键要素值存储区中是否写入有确定单元确定的所述关键要素值,其中所述关键要素值存储区中存储有数据库中已存储报文分别对应的关键要素值;执行单元,用于在判断单元的判断结果为是时,将接收到的待存储报文丢弃,以及在判断单元的判断结果为否时,将接收单元接收的待存储报文存储至数据库中,并将确定单元确定的关键要素值写入所述关键要素值存储区中;获得单元,用于在数据库存储的报文中获得待转发的报文;所述确定单元,还用于在获得单元获得的报文中确定用于唯一标识所述报文的关键要素值;所述判断单元,还用于确定幂等性控制存储区中是否写入有确定单元确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值;所述执行单元,用于在判断单元的判断结果为是时,将获得单元获得的报文丢弃,以及在判断单元的判断结果为否时,将获得单元获得的报文转发。
采用上述技术方案,在对待存储的报文进行存储时,通过确定用于唯一标识所述待存储报文的关键要素值是否在关键要素值存储区中已经存储,如果是,则将所述待存储报文丢弃,反之,将所述待存储的报文存储至数据库中,并将该报文的关键要素值写入到关键要素值存储区中,可以避免一条报文被多次存储,能够较好地节省系统的存储资源。在转发报文时,通过用于确定唯一标识待转发报文的关键要素值是否在幂等性存储区中已经存储,如果是,则将所述待转发报文丢弃,反之,转发该报文,这样,可以避免一条报文被多次转发,能够较好地节省CPU的处理资源,提高系统的处理性能。本申请上述提出的技术方案,可以应用在不同业务领域的系统中,能够较好地避免一条报文被多次重复处理的问题,尤其是在金融网络交易中,能够避免一笔交易被多次重复处理,可能造成用户或者企业账户的资金损失,以成为实现网络金融交易的安全保障。
附图说明
图1为现有技术中,提出的报文转发系统的结构组成示意图;
图2为现有技术中,提出的金融系统中报文转发方法流程图;
图3为本申请实施例一中,提出的报文存储方法流程图;
图4为本申请实施例一中,提出的报文存储装置结构组成示意图;
图5为本申请实施例二中,提出的报文转发方法流程图;
图6为本申请实施例二中,提出的报文转发装置结构组成示意图;
图7为本申请实施例三中,提出的报文存储、转发系统的结构组成示意图;
图8为本申请实施例三中,提出的报文存储转发方法流程图;
图9为本申请实施例四中,提出的金融系统中银行转账处理流程图。
具体实施方式
针对现有技术在报文存储、转发过程中,当计算机系统的硬件或者软件出现故障时,在存储过程中会使得一条报文被多次写入,重复存储浪费系统的存储资源,并且在报文被转发过程中,也可能存在一条报文被多次重复转发,造成CPU处理资源的浪费,进而影响了系统的处理性能的问题,本申请实施例这里提出的技术方案,通过用于唯一标识报文的关键要素值来避免同一条报文被多次存储及其转发,以能够较好地节省系统的存储资源和CPU处理资源,提高系统的处理性能。
下面将结合各个附图对本申请实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细地阐述。
实施例一
本申请实施例一这里提出一种报文存储方法,如图3所示,其具体过程如下:
步骤31,接收待存储的报文。
需要说明的是,在网络通信系统中,可能会由于网络重试或者系统故障等原因,生成多条待存储的报文。所以,接收到的待存储报文中,可能存在与已经存储的报文重复的报文,即同一条报文可能多次被存储。
步骤32,在接收的待存储报文中确定用于唯一标识所述报文的关键要素值。
需要说明的是,对于每个报文来说,在报文中,需要选择相同的信息作为该报文的关键要素值。例如,对于两个报文:报文123和报文456来说,若选择报文123标识信息中的第1个数字“1”作为关键要素值,则对于报文456来说,也必须选择报文456中第1个数字“4”作为关键要素值。
其中,报文是计算机系统之间交换信息的载体,可以是携带有交易信息的一段计算机符号、一段字符串或者字节。报文的关键要素值,可以但不限于是将组成该报文的字符串中的一部分字符作为该报文的关键要素值,也可以将组成该报文的全部字符串作为该报文的关键要素值,只要可以唯一标识该报文的值就可以作为报文的关键要素值,也就是说每一个报文对应一个唯一关键要素值,不同报文的关键要素值也一定不同。
步骤33,判断关键要素值存储区中是否写入有确定的所述关键要素值,其中所述关键要素值存储区中存储有数据库中已存储报文分别对应的关键要素值。如果判断结果为是,执行步骤34,反之,执行步骤35。
其中,对于每个已经存储在数据库中的报文来说,关键要素值存储区均存储了对应该些已经存储的报文的关键要素值。关键要素值存储区可以但不限于是数据库的一部分,也可以是设置在网络通信系统中任意一个存储设备上。较佳地,本申请实施例这里,将关键要素值存储区作为数据库的一部分。
具体地,可以将确定出的关键要素值作为键值,确定在关键要素值存储区中,是否写入有所述确定出的关键要素值。如果关键要素值存储区中存储有相同的键值,则确定该报文已经在数据库中存储过,执行步骤34,反之,关键要素值存储区中未存储有相同的键值,则确定该报文未在数据库中存储过,执行步骤35。
步骤34,关键要素值存储区中已经存储确定出的关键要素值,则确定数据库中已经对与该关键要素值对应的报文已经存储,不需要对该报文进行重复存储,则此时将该待存储报文丢弃。
步骤35,关键要素值存储区中未存储确定出的关键要素值,则确定数据库中未对与该关键要素值对应的报文进行存储,则将接收的待存储报文存储至数据库中,并将确定的关键要素值写入所述关键要素值存储区中。
较佳地,本申请实施例一这里提出的待存储的报文,可以但不限于是用于承载请求处理的请求报文,或者是用于响应所述请求报文的响应报文。
在报文存储至数据库以后,进一步地,还可以在数据库存储的报文中获得待转发的报文,在获得的报文中确定用于唯一标识所述报文的关键要素值,确定幂等性控制存储区中是否写入有确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值,如果是,则将获得的报文丢弃,如果否,则将获得的报文转发。
相应地,本申请实施例一这里还提出一种报文存储装置,其具体结构组成如图4所示,包括:
接收单元41,用于接收待存储的报文。
确定单元42,用于在接收单元41接收的待存储报文中确定用于唯一标识所述报文的关键要素值。
判断单元43,用于确定关键要素值存储区中是否写入有确定单元42确定的所述关键要素值,其中所述关键要素值存储区中存储有数据库中已存储报文分别对应的关键要素值。
执行单元44,用于在判断单元43的判断结果为是时,将接收单元41接收到的待存储报文丢弃,以及在判断单元43的判断结果为否时,将接收单元41接收的待存储报文存储至数据库中,并将确定单元42确定的关键要素值写入所述关键要素值存储区中。
具体地,所述执行单元44,还用于在数据库存储的报文中获得待转发的报文,在获得的报文中确定用于唯一标识所述报文的关键要素值,确定幂等性控制存储区中是否写入有确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值,如果是,则将获得的报文丢弃,如果否,则将获得的报文转发。
具体地,所述报文是请求报文,或者是用于响应所述请求报文的响应报文。
本申请实施例一这里提出的报文存储方法,可以避免在报文的存储过程中,由于网络重试或者系统故障等原因,造成的一条报文被多次存储的问题,能够较好地节省系统的存储资源。并且,能够充分利用企业中已经存在的数据库作为存储资源,不需要再做额外的资金投入,能够较好地降低企业的成本。
实施例二
本申请实施例二这里提出一种报文转发方法,用于对数据库中已经存储的报文进行转发,如图5所示,其具体过程如下:
步骤51,在数据库存储的报文中获得待转发的报文。
需要说明的是,数据库存储的报文在被转发的过程中,可能会由于网络重试或者系统故障等原因,造成一条报文被转发失败,或者是该报文已经被转发成功,但是由于网络重试或者系统故障等原因,该报文仍然存储在数据库待转发报文存储区中,即同一条报文多次被转发。
步骤52,在获得的报文中确定用于唯一标识所述报文的关键要素值。
需要说明的是,对于每个报文来说,在报文中,需要选择相同的信息作为该报文的关键要素值。例如,对于两个报文:报文123和报文456来说,若选择报文123标识信息中的第1个数字“1”作为关键要素值,则对于报文456来说,也必须选择报文456中第1个数字“4”作为关键要素值。
其中,报文的关键要素值请参见上述实施例一中步骤32中的详细阐述,这里不再赘述。
步骤53,判断幂等性控制存储区中是否写入有确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值。如果判断结果为是,执行步骤54,反之,执行步骤55。
需要说明的是,幂等性控制,是指对于同一条报文,只允许转发一次。
其中,对于每个已经转发的报文来说,幂等性控制存储区均存储了对应该些已经被转发处理过的报文的关键要素值。幂等性控制存储区可以但不限于是数据库的一部分,也可以是设置在网络通信系统中任意一个存储设备上,较佳地,为了降低企业的成本,本申请实施例这里,将幂等性控制存储区作为数据库的一部分。
具体地,可以将步骤52中确定出的关键要素值作为键值,确定在幂等性控制存储区中,是否写入有所述确定出的关键要素值,如果幂等性控制存储区中存储有相同的键值,则确定该报文已经被转发处理过,执行步骤54,反之,幂等性控制存储区中未存储有相同的键值,则确定该报文未被转发处理过,执行步骤55。
步骤54,幂等性控制存储区中已经存储确定出的关键要素值,则确定数据库中存储的与该关键要素值对应的报文已经被转发处理过,则将该报文丢弃,不做转发处理。
步骤55,幂等性控制存储区中未存储确定出的关键要素值,则确定数据库中存储的与该关键要素值对应的报文未被转发处理过,则将该报文转发。
相应地,本申请实施例二这里还提出一种报文转发装置,如图6所示,包括:
获得单元61,用于在数据库存储的报文中获得待转发的报文;
确定单元62,用于在获得单元61获得的报文中确定用于唯一标识所述报文的关键要素值;
判断单元63,用于确定幂等性控制存储区中是否写入有确定单元62确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值;
执行单元64,用于在判断单元63的判断结果为是时,将获得单元61获得的报文丢弃,以及在判断单元63的判断结果为否时,将获得单元61获得的报文转发。
较佳地,本申请实施例二这里提出的报文,可以但不限于是用于承载请求转发处理的请求报文,或者是用于响应所述请求报文的响应报文。
本申请实施例二这里提出的报文转发方法,可以避免在对数据库中存储的待转发处理的报文中,由于网络重试或者系统故障等原因,造成的一条报文被执行多次转发处理的问题,能够较好地节省系统的处理资源。同时,本申请实施例二这里提出的技术方案,在涉及金融的网络交易中,能够避免同一笔网络交易被多次处理,造成用户或者企业账户的经济损失,从而提高了基于网络实现金融交易的安全性。并且,能够出充分利用企业中已经存在的数据库作为存储资源,不需要再做额外的资金投入加设中间存储设备,能够较好地降低企业的成本。
实施例三
在上述实施例一和实施例二的基础之上,本申请实施例三这里提出一种报文存储转发系统,包括报文存储装置和报文转发装置,其中:
报文存储装置,用于接收待存储的报文,在接收的待存储报文中确定用于唯一标识所述报文的关键要素值,以及确定关键要素值存储区中是否写入有确定的所述关键要素值,其中所述关键要素值存储区中存储有数据库中已存储报文分别对应的关键要素值,如果是,则将接收到的待存储报文丢弃,如果否,则将接收的待存储报文存储至数据库中,并将确定的关键要素值写入所述关键要素值存储区中。
报文转发装置,用于在数据库存储的报文中获得报文存储装置存储的待转发的报文,以及在获得的报文中确定用于唯一标识所述报文的关键要素值,确定幂等性控制存储区中是否写入有确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值,如果是,则将获得的报文丢弃,如果否,则将获得的报文转发。
需要说明的是,本申请实施例三这里提出的报文存储装置和报文转发装置可以独立设置,也可以分开设置在网络通信系统中的任意一个设备中。在异系统间进行报文转发时,还需要设置一个通讯前置装置,用于执行异系统间的报文转发。如图7所示的由企业应用系统和外部应用系统组成的异系统结构中,将报文存储装置作为数据库的一部分,将报文转发装置作为通讯前置装置的一部分,来进一步详细阐述报文存储转发的过程,如图8所示,具体过程如下:
步骤801,企业应用系统生成待交换的报文。例如,企业应用系统生成的待交换报文1、报文2、报文3......报文N。
步骤802,设置在数据库中的报文存储装置,接收企业应用系统发来的待交换报文,在待交换报文中确定唯一标识该报文的关键要素值。本申请实施例三这里以生成报文的序列号作为待交换报文的关键要素值。例如,报文1的关键要素值为“1”,报文“2”的关键要素值为“2”等等。
步骤803,报文存储装置以确定出的该待交换报文的关键要素值为键值,在关键要素值存储区中确定是否写入有所述关键要素值。例如以“1”为键值,在关键要素值存储区中查找,是否存在“1”。本申请实施例三这里假设关键要素值存储区中未写入关键要素值“1”。同样地,对于其它待交换报文2......报文N,其处理方法与报文1的处理方法相同,这里不再赘述。
步骤804,由于关键要素存储区中未写入待交换报文的关键要素值,所以报文存储装置将该待交换报文写入到数据库中存储等待下一步转发处理。例如,对于上述步骤803中,报文存储装置将该待交换报文1写入到数据库中存储,并将对应该报文的关键要素值“1”写入到数据库中的关键要素值存储区中存储。
步骤805,报文转发装置在数据库中存储的报文中获得等待交换处理的报文,并确定获得的待交换处理报文的关键要素值。这里仍然以报文1为例来详细阐述,在数据库中获得等待交换处理的报文1.,并确定报文1的关键要素值“1”。
步骤806,以确定出的报文的关键要素值为键值,判断幂等性控制存储区中是否写入有确定的关键要素值。本申请实施例三这里假设幂等性控制存储区中没有写入该报文的关键要素值。例如,以报文1的关键要素值“1”为键值,判断在幂等性存储区中是否写入过“1”。
步骤807,将该待交换处理的报文发送至通讯前置装置中等待处理。
步骤808,通讯前置装置获得等待交换处理的报文1,将获取的报文1转发给外部应用系统。
步骤809,外部应用系统接收由通讯前置装置发来的报文1,并对该报文1进行处理,在完成对该报文1的处理之后,通过通讯前置装置发送响应报文1的相应报文1V1。
步骤810,通讯前置装置将接收到的响应报文1V1存储到数据库中。
步骤811,企业应用系统在数据库中获得与交换报文对应的响应报文。
需要说明的是,上述步骤801~步骤810中,仅以一个待交换的报文(报文1)为例,来详细阐述本申请实施例三这里提出的技术方案,对于其它报文2~报文N,其处理过程与报文1相同,这里不再赘述。
其中,在步骤810之后,对响应报文的存储转发过程,可以但不限于采用以下两种方式或下述两种方式的组合形式:
第一种方式:采用本申请各实施例这里提出的技术方案,在对响应报文的存储过程中,可以采用本申请实施例这里提出的报文存储方法。在企业应用系统获得响应报文的过程中,也可以采用本申请实施例这里提出的报文转发方法。
第二种方式:在对响应报文的存储过程中,可以根据实际需要,直接对响应报文进行存储、转发。当系统因为硬件故障或者其它程序故障的原因,针对一条待交换的报文,生成多条对应该待交换报文的响应报文时,也可以多次存储。同时,企业应用系统也可以将存储的多条响应报文反馈给用户。
相应地,本申请实施例三这里还提出一种报文存储转发装置,包括:
接收单元,用于接收待存储的报文。
确定单元,用于在接收单元接收的待存储报文中确定用于唯一标识所述报文的关键要素值。
判断单元,用于确定关键要素值存储区中是否写入有确定单元确定的所述关键要素值,其中所述关键要素值存储区中存储有数据库中已存储报文分别对应的关键要素值。
执行单元,用于在判断单元的判断结果为是时,将接收到的待存储报文丢弃,以及在判断单元的判断结果为否时,将接收单元接收的待存储报文存储至数据库中,并将确定单元确定的关键要素值写入所述关键要素值存储区中。
获得单元,用于在数据库存储的报文中获得待转发的报文。
所述确定单元,还用于在获得单元获得的报文中确定用于唯一标识所述报文的关键要素值。
所述判断单元,还用于确定幂等性控制存储区中是否写入有确定单元确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值。
所述执行单元,用于在判断单元的判断结果为是时,将获得单元获得的报文丢弃,以及在判断单元的判断结果为否时,将获得单元获得的报文转发。
本申请实施例三这里提出的报文存储转发技术方案,可以避免在报文的存储过程中,由于网络重试或者系统故障等原因,造成的一条报文被多次存储的问题,能够较好地节省系统的存储资源。并且,能够充分利用企业中已经存在的数据库作为存储资源,不需要再做额外的资金投入,能够较好地降低企业的成本。在报文转发过程中,可以避免在对数据库中存储的待转发处理的报文中,由于网络重试或者系统故障等原因,造成的一条报文被执行多次转发处理的问题,能够较好地节省系统的处理资源。同时,本申请实施例三这里提出的技术方案,在金融的网络交易中,能够避免同一笔网络交易被多次处理,造成用户或者企业帐户的经济损失,从而提高了基于网络实现金融交易的安全性。并且,能够出充分利用企业中已经存在的数据库作为存储资源,不需要再做额外的资金投入加设中间存储设备,能够较好地降低企业的成本。
实施例四
在上述各实施例的技术方案基础上,本申请实施例四这里具体以银行中的ATM设备转账为例,来详细阐述本申请各实施例这里提出的报文存储、转发方法。需要说明的是,本申请实施例四这里提出的待发送报文表、响应报文表、幂等性控制表均是以报文的关键要素值作为标识,以表格的形式存储在数据库中,而本申请实施例四这里提出的报文的关键要素值,主要是指ATM机为转账请求生成的流水号。如图9所示,具体过程如下:
步骤901,ATM设备接收用户输入的转账信息,根据用户输入的转账信息,创建待发送报文信息,并将创建的转账请求发送至银行业务系统中。
其中,创建的转账请求中包含的信息可以但不限于采用下述表1的形式:
表1:
步骤902,设置在银行业务系统数据库中的报文存储装置,在转账请求中获得该请求的关键要素值。
其中,本申请实施例四这里,转账请求中携带的交易流水号作为每个转账请求的关键要素值。
步骤903,将确定出的关键要素值作为主键,在银行业务系统数据库中存储的关键要素值存储表中确定是否存在相同的键值。如果是则不对该转账请求存储,如果否,执行步骤904。
其中,存储的关键要素值存储表可以但不限于采用下述表2的形式:
表2
字段名称 | 类型 | 说明 | 是否主键 | 可否为空 |
流水号001 | 字符串 | 唯一标识一次转账请求,不重复 | 是 | 否 |
流水号002 | 字符串 | 唯一标识一次转账请求,不重复 | 是 | 否 |
...... | 字符串 | 唯一标识一次转账请求,不重复 | 是 | 否 |
流水号NNN | 字符串 | 唯一标识一次转账请求,不重复 | 是 | 否 |
步骤904,将所述转账请求写入到银行业务系统数据库中的待发送报文表中。其中,待发送报文表的具体形式可以但不限于采用表3的形式:
表3
步骤905,跨行通讯前置机在待发送报文表中获得待处理的转账请求,并确定该请求的关键要素值。这里仍然以流水号作为关键要素值。
步骤906,为保证交易的安全性,设置在跨行通讯前置机中的报文转发装置,将获得的流水号作为主键,在数据库中存储的幂等性控制表中确定所述流水号是否已经存在,如果存在,则该流水号对应的转账请求已经被处理过,不再对其进行处理,如果不存在,则执行步骤907。
其中,本申请实施例四这里提出的幂等性控制表,可以但不限于采用下述表4的形式:
表4
字段名称 | 类型 | 说明 | 是否主键 | 可否为空 |
流水号 | 字符串 | 唯一标识一次交易请求,不重复 | 是 | 否 |
步骤907,跨行通讯前置机将跨行转账消息通过金融网络向对应的银行发起转账请求。
步骤908,金融网络将接收到的他行发来的转账结果发送给跨行通讯前置系统。
步骤909,跨行通讯前置装置将转账结果写入到存储在银行系统数据库中响应报文表中存储。
其中,跨行前置装置将转行结果写入到响应报文表中存储时,可以采用本申请实施例上述提出的报文存储的技术方案,也可以不采用,直接将转账结果写入到响应报文表中。
一种较佳地实现方式,本申请实施例这里在对转账结果进行存储时,仍然采用本申请实施例提出的报文存储的技术方案,这样可以较好地节省数据库中的存储资源。
其中,存储相应报文表的具体过程请参见上述步骤901~步骤904中,对转账请求的存储过程,这里不再赘述。
具体地,响应报文表的具体形式可以但不限于采用下述表5的形式:
表5
步骤910,银行业务系统从响应报文表中取出存储的转账结果反馈给ATM设备,并在ATM设备上向用户展示相应信息。
其中,银行业务系统从响应报文表中取出存储的转账结果时,可以采用本申请实施例上述提出的报文转发的技术方案,也可以不采用,直接将转账结果从响应报文表中取出。
一种较佳地实现方式,本申请实施例这里在对转账结果进行转发时,仍然采用本申请实施例提出的报文转发的技术方案,这样可以较好地节省系统的处理资源。
其中,将响应报文表中的转账结果转发给银行业务系统的具体过程,请参见上述步骤905~步骤907中,对转账请求的转发过程,这里不再赘述。
本申请实施例四这里提出的ATM转账的技术方案,可以避免在转账请求存储过程中,由于网络重试或者ATM设备故障等原因,造成的一条转账请求被多次存储的问题,能够较好地节省系统的存储资源。并且,能够充分利用企业中已经存在的数据库作为存储资源,不需要再做额外的资金投入,能够较好地降低企业的成本。在转账请求转发过程中,可以避免由于网络重试或者系统故障等原因,造成的一条转账请求被执行多次转发处理的问题,能够较好地节省系统的处理资源。这样,可以避免同一笔交易被多次处理,造成用户或者企业帐户的经济损失,从而提高了资金交易的安全性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种报文存储方法,其特征在于,包括:
接收待存储的报文;
在接收的待存储报文中确定用于唯一标识所述报文的关键要素值;
确定关键要素值存储区中是否写入有确定的所述关键要素值,其中所述关键要素值存储区中存储有数据库中已存储报文分别对应的关键要素值;
如果是,则将接收到的待存储报文丢弃;
如果否,则将接收的待存储报文存储至数据库中,并将确定的关键要素值写入所述关键要素值存储区中。
2.如权利要求1所述的方法,其特征在于,所述报文是请求报文,或者是用于响应所述请求报文的响应报文。
3.如权利要求1所述的方法,其特征在于,还包括:
在数据库存储的报文中获得待转发的报文;
在获得的报文中确定用于唯一标识所述报文的关键要素值;
确定幂等性控制存储区中是否写入有确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值;
如果是,则将获得的报文丢弃;
如果否,则将获得的报文转发。
4.一种报文转发方法,其特征在于,包括:
在数据库存储的报文中获得待转发的报文;
在获得的报文中确定用于唯一标识所述报文的关键要素值;
确定幂等性控制存储区中是否写入有确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值;
如果是,则将获得的报文丢弃;
如果否,则将获得的报文转发。
5.如权利要求4所述的方法,其特征在于,所述报文是请求报文,或者是用于响应所述请求报文的响应报文。
6.一种报文存储装置,其特征在于,包括:
接收单元,用于接收待存储的报文;
确定单元,用于在接收单元接收的待存储报文中确定用于唯一标识所述报文的关键要素值;
判断单元,用于确定关键要素值存储区中是否写入有确定单元确定的所述关键要素值,其中所述关键要素值存储区中存储有数据库中已存储报文分别对应的关键要素值;
执行单元,用于在判断单元的判断结果为是时,将接收到的待存储报文丢弃,以及在判断单元的判断结果为否时,将接收单元接收的待存储报文存储至数据库中,并将确定单元确定的关键要素值写入所述关键要素值存储区中。
7.如权利要求6所述的装置,其特征在于,所述报文是请求报文,或者是用于响应所述请求报文的响应报文。
8.如权利要求6所述的装置,其特征在于,所述执行单元,还用于报文转发单元,用于在数据库存储的报文中获得待转发的报文;在获得的报文中确定用于唯一标识所述报文的关键要素值;确定幂等性控制存储区中是否写入有确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值;如果是,则将获得的报文丢弃;如果否,则将获得的报文转发。
9.一种报文转发装置,其特征在于,包括:
获得单元,用于在数据库存储的报文中获得待转发的报文;
确定单元,用于在获得单元获得的报文中确定用于唯一标识所述报文的关键要素值;
判断单元,用于确定幂等性控制存储区中是否写入有确定单元确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值;
执行单元,用于在判断单元的判断结果为是时,则将获得单元获得的报文丢弃,以及在判断单元的判断结果为否时,将获得单元获得的报文转发。
10.如权利要求9所述的装置,其特征在于,所述报文是请求报文,或者是用于响应所述请求报文的响应报文。
11.一种报文存储转发系统,其特征在于,包括报文存储装置和报文转发装置,其中:
报文存储装置,用于接收待存储的报文,在接收的待存储报文中确定用于唯一标识所述报文的关键要素值,以及确定关键要素值存储区中是否写入有确定的所述关键要素值,其中所述关键要素值存储区中存储有数据库中已存储报文分别对应的关键要素值,如果是,则将接收到的待存储报文丢弃,如果否,则将接收的待存储报文存储至数据库中,并将确定的关键要素值写入所述关键要素值存储区中;
报文转发装置,用于在数据库存储的报文中获得报文存储装置存储的待转发的报文,以及在获得的报文中确定用于唯一标识所述报文的关键要素值,确定幂等性控制存储区中是否写入有确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值,如果是,则将获得的报文丢弃,如果否,则将获得的报文转发。
12.一种报文存储转发装置,其特征在于,包括:
接收单元,用于接收待存储的报文;
确定单元,用于在接收单元接收的待存储报文中确定用于唯一标识所述报文的关键要素值;
判断单元,用于确定关键要素值存储区中是否写入有确定单元确定的所述关键要素值,其中所述关键要素值存储区中存储有数据库中已存储报文分别对应的关键要素值;
执行单元,用于在判断单元的判断结果为是时,将接收单元接收到的待存储报文丢弃,以及在判断单元的判断结果为否时,将接收单元接收的待存储报文存储至数据库中,并将确定单元确定的关键要素值写入所述关键要素值存储区中;
获得单元,用于在数据库存储的报文中获得待转发的报文;
所述确定单元,还用于在获得单元获得的报文中确定用于唯一标识所述报文的关键要素值;
所述判断单元,还用于确定幂等性控制存储区中是否写入有确定单元确定的关键要素值,其中所述幂等性控制存储区中存储有数据库中已转发报文分别对应的关键要素值;
所述执行单元,用于在判断单元的判断结果为是时,将获得单元获得的报文丢弃,以及在判断单元的判断结果为否时,将获得单元获得的报文转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101404408A CN103391257A (zh) | 2012-05-08 | 2012-05-08 | 一种报文存储、转发方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101404408A CN103391257A (zh) | 2012-05-08 | 2012-05-08 | 一种报文存储、转发方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103391257A true CN103391257A (zh) | 2013-11-13 |
Family
ID=49535418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101404408A Pending CN103391257A (zh) | 2012-05-08 | 2012-05-08 | 一种报文存储、转发方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103391257A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334340A (zh) * | 2017-07-17 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种跨环境数据通信方法、装置和系统 |
CN108537050A (zh) * | 2018-03-20 | 2018-09-14 | 中国建设银行股份有限公司 | 业务数据转移方法和相关装置 |
CN110111095A (zh) * | 2019-04-25 | 2019-08-09 | 银清科技(北京)有限公司 | 支付交易判重方法及支付系统 |
CN111342932A (zh) * | 2020-02-19 | 2020-06-26 | 望海康信(北京)科技股份公司 | 数据传输的方法、装置、设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101257441A (zh) * | 2008-02-29 | 2008-09-03 | 华为技术有限公司 | 转发报文的方法、设备、系统和接收报文的设备 |
CN101272351A (zh) * | 2008-05-14 | 2008-09-24 | 杭州华三通信技术有限公司 | 一种报文处理的方法和交换机 |
CN101389084A (zh) * | 2008-10-17 | 2009-03-18 | 中兴通讯股份有限公司 | 一种识别处理重复短消息的终端和方法 |
CN101621464A (zh) * | 2009-05-22 | 2010-01-06 | 杭州华三通信技术有限公司 | 一种报文处理方法和设备 |
CN101686209A (zh) * | 2008-09-24 | 2010-03-31 | 阿里巴巴集团控股有限公司 | 消息转发系统中存储消息的方法和装置 |
CN102170660A (zh) * | 2011-05-11 | 2011-08-31 | 北京交通大学 | 一种以aodv为基础的多路径路由的建立方法和系统 |
-
2012
- 2012-05-08 CN CN2012101404408A patent/CN103391257A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101257441A (zh) * | 2008-02-29 | 2008-09-03 | 华为技术有限公司 | 转发报文的方法、设备、系统和接收报文的设备 |
CN101272351A (zh) * | 2008-05-14 | 2008-09-24 | 杭州华三通信技术有限公司 | 一种报文处理的方法和交换机 |
CN101686209A (zh) * | 2008-09-24 | 2010-03-31 | 阿里巴巴集团控股有限公司 | 消息转发系统中存储消息的方法和装置 |
CN101389084A (zh) * | 2008-10-17 | 2009-03-18 | 中兴通讯股份有限公司 | 一种识别处理重复短消息的终端和方法 |
CN101621464A (zh) * | 2009-05-22 | 2010-01-06 | 杭州华三通信技术有限公司 | 一种报文处理方法和设备 |
CN102170660A (zh) * | 2011-05-11 | 2011-08-31 | 北京交通大学 | 一种以aodv为基础的多路径路由的建立方法和系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334340A (zh) * | 2017-07-17 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种跨环境数据通信方法、装置和系统 |
CN108537050A (zh) * | 2018-03-20 | 2018-09-14 | 中国建设银行股份有限公司 | 业务数据转移方法和相关装置 |
CN110111095A (zh) * | 2019-04-25 | 2019-08-09 | 银清科技(北京)有限公司 | 支付交易判重方法及支付系统 |
CN110111095B (zh) * | 2019-04-25 | 2021-10-22 | 银清科技有限公司 | 支付交易判重方法及支付系统 |
CN111342932A (zh) * | 2020-02-19 | 2020-06-26 | 望海康信(北京)科技股份公司 | 数据传输的方法、装置、设备及计算机可读存储介质 |
CN111342932B (zh) * | 2020-02-19 | 2022-09-16 | 望海康信(北京)科技股份公司 | 数据传输的方法、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104092717B (zh) | 消息处理方法及系统、消息目的端设备 | |
CN103905300B (zh) | 一种数据报文发送方法、设备及系统 | |
CN103248526B (zh) | 实现带外监控管理的通信设备、方法 | |
JP4763405B2 (ja) | データ・フロー・アプリケーションのためのネットワーク・オン・チップ半自動通信アーキテクチャ | |
CN105468302B (zh) | 一种处理数据的方法、装置及系统 | |
CN103391257A (zh) | 一种报文存储、转发方法、装置及系统 | |
EP4213038A1 (en) | Data processing method and apparatus based on distributed storage, device, and medium | |
CN105808374B (zh) | 一种快照处理方法及相关设备 | |
CN102957594A (zh) | 基于消息队列的消息处理方法、相关设备及系统 | |
CN106844108A (zh) | 一种数据存储方法、服务器以及存储系统 | |
CN113191901B (zh) | 一种交易业务处理方法、装置、设备和存储介质 | |
CN112134763B (zh) | 一种集群节点间分层消息传输方法、系统、设备及介质 | |
CN108924008A (zh) | 一种双控制器数据通信方法、装置、设备及可读存储介质 | |
CN101782990A (zh) | 支付结算综合业务系统中借记冲正业务处理系统及方法 | |
CN112596801B (zh) | 事务处理方法、装置、设备、存储介质、数据库 | |
CN102446335A (zh) | 资金划拨方法和系统 | |
CN103607360A (zh) | 一种报文处理方法、线卡及交换设备 | |
CN104252416B (zh) | 一种加速器以及数据处理方法 | |
CN102103530B (zh) | 快照方法、设备及系统 | |
CN105335217B (zh) | 一种服务器静默方法与系统 | |
CN104021033A (zh) | 一种繁忙处理节点的散列方法和系统 | |
CN108632321A (zh) | 基于大数据平台下资源调度的处理方法和装置 | |
CN103973581B (zh) | 一种报文数据处理方法、装置及系统 | |
CN104375967B (zh) | 一种应用于pci‑e的流量控制方法、设备及系统 | |
CN103117955A (zh) | 消息传输方法及装置、系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1189105 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20131113 |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1189105 Country of ref document: HK |