一种swift报文处理方法及装置制造方法

文档序号:7819666阅读:429来源:国知局
一种swift报文处理方法及装置制造方法
【专利摘要】本发明实施例公开了一种SWIFT报文处理方法及装置,可利用MQ实现SWIFT报文的处理,同时提高开发效率和代码易读性。本发明实施例方法包括:与银行清算系统对应的本地消息队列MQ,本地MQ中的本地队列管理器与SWIFT Alliance服务器对应的目标MQ的目标队列管理器之间建立有通信连接,且本地队列管理器的远程队列与目标队列管理器的接收队列对应,本地队列管理器的接收队列与目标队列管理器的远程队列对应;银行清算系统与本地MQ建立通信连接;银行清算系统通过通信连接获取MQ配置信息;银行清算系统根据MQ配置信息将待发送的SWIFT报文放入指定的本地队列管理器的远程队列。
【专利说明】—种SWIFT报文处理方法及装置

【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其涉及一种SWIFT报文处理方法及装置。

【背景技术】
[0002]SWIFT Alliance服务器为 SWIFT (Society for Worldwide Interbank FinancialTelecommunicat1ns,环球同业银行金融电讯协会)组织提供的报文收发系统,其标准化、规范化的报文成为银行间支付清算的最主要手段。
[0003]目前,银行清算系统的通信模块一般基于C语言实现,通过调用CASmf的接口与SWIFT Alliance服务器通信并收发SWIFT报文,然而,随着SWIFT Alliance服务器的升级,SWIFT Alliance服务器不再支持CASmf,而且,C语言实现的程序可读性较差,故利用CASmf收发SWIFT报文已不适应当前业务发展的需求。


【发明内容】

[0004]本发明实施例提供了一种SWIFT报文处理方法及装置,可利用MQ实现SWIFT报文的处理,同时提高开发效率和代码易读性。
[0005]本发明实施例的第一方面提供一种SWIFT报文处理方法,包括与银行清算系统对应的本地消息队列MQ,所述本地MQ中的本地队列管理器与SWIFT Alliance服务器对应的目标MQ的目标队列管理器之间建立有通信连接,且所述本地队列管理器的远程队列与所述目标队列管理器的接收队列对应,所述本地队列管理器的接收队列与所述目标队列管理器的远程队列对应;
[0006]所述银行清算系统与所述本地MQ建立通信连接;
[0007]所述银行清算系统通过所述通信连接获取MQ配置信息;
[0008]所述银行清算系统根据所述MQ配置信息将待发送的SWIFT报文放入指定的本地队列管理器的远程队列,使得所述待发送的SWIFT报文被发送至与所述指定的本地队列管理器的远程队列对应的目标队列管理器的接收队列。
[0009]可选地,所述方法还包括:
[0010]所述银行清算系统根据所述MQ配置信息从指定的本地队列管理器的接收队列中获取待接收的SWIFT报文。
[0011]可选地,所述银行清算系统与所述本地MQ建立通信连接包括:
[0012]所述银行清算系统使用工厂模式获取队列管理器实例;
[0013]所述银行清算系统基于所述队列管理器实例与所述本地MQ建立通信连接。
[0014]可选地,所述银行清算系统根据所述MQ配置信息将待发送的SWIFT报文放入指定的本地队列管理器的远程队列包括:
[0015]所述银行清算系统根据所述MQ配置信息,通过调用MQ API的公用类提供的公共方法将待发送的SWIFT报文放入指定的本地队列管理器的远程队列。
[0016]可选地,所述银行清算系统根据所述MQ配置信息从指定的本地队列管理器的接收队列中获取待接收的SWIFT报文包括:
[0017]所述银行清算系统根据所述MQ配置信息,通过调用MQ API的公用类提供的公共方法从指定的本地队列管理器的接收队列中获取待接收的SWIFT报文。
[0018]本发明实施例第二方面提供了一种SWIFT报文处理装置,包括银行清算系统以及与银行清算系统对应的本地消息队列MQ,所述本地MQ中的本地队列管理器与SWIFTAlliance服务器对应的目标MQ的目标队列管理器之间建立有通信连接,且所述本地队列管理器的远程队列与所述目标队列管理器的接收队列对应,所述本地队列管理器的接收队列与所述目标队列管理器的远程队列对应;所述银行清算系统包括:
[0019]连接单元,用于与所述本地MQ建立通信连接;
[0020]获取单元,用于通过所述通信连接获取MQ配置信息;
[0021]第一执行单元,用于根据所述MQ配置信息将待发送的SWIFT报文放入指定的本地队列管理器的远程队列,使得所述待发送的SWIFT报文被发送至与所述指定的本地队列管理器的远程队列对应的目标队列管理器的接收队列。
[0022]所述银行清算系统还包括:
[0023]第二执行单元,用于根据所述MQ配置信息从指定的本地队列管理器的接收队列中获取待接收的SWIFT报文。
[0024]可选地,所述连接单元包括:
[0025]获取模块,用于使用工厂模式获取队列管理器实例;
[0026]连接模块,用于基于所述队列管理器实例与所述本地MQ建立通信连接。
[0027]可选地,所述第一执行单元,具体用于根据所述MQ配置信息,通过调用MQ API的公用类提供的公共方法将待发送的SWIFT报文放入指定的本地队列管理器的远程队列。
[0028]可选地,所述第二执行单元,具体用于根据所述MQ配置信息,通过调用MQ API的公用类提供的公共方法从指定的本地队列管理器的接收队列中获取待接收的SWIFT报文。
[0029]本发明实施例提供的技术方案中,银行清算系统和SWIFT Alliance服务器均安装有各自对应的消息队列MQ,银行清算系统基于本地MQ建立的本地队列管理器与SWIFTAlliance服务器对应的目标MQ的目标队列管理器之间建立有通信连接,且本地队列管理器的每一个远程队列都对应一个目标队列管理器的接收队列,每一个目标队列管理器的远程队列都对应本地队列管理器的一个接收队列,银行清算系统与本地MQ建立通信连接,并通过该通信连接获取MQ配置信息,在利用该MQ配置信息确定指定的本地队列管理器的远程队列后,将待发送的SWIFT报文放入指定的本地队列管理器的远程队列,使得待发送的SffIFT报文被发送至与该指定的本地队列管理器的远程队列对应的目标队列管理器的接收队列。因此相对于现有技术,本发明实施例可利用MQ实现SWIFT报文的处理,同时提高开发效率和代码易读性。

【专利附图】

【附图说明】
[0030]图1为本发明实施例中SWIFT报文处理方法一个实施例示意图;
[0031]图2为本发明实施例中SWIFT报文处理装置一个实施例示意图。

【具体实施方式】
[0032]本发明实施例提供了一种SWIFT报文处理方法及装置,可利用MQ实现SWIFT报文的处理,同时提高开发效率和代码易读性,以下分别进行详细说明。
[0033]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0034]本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三…第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0035]请参阅图1,本发明实施例中SWIFT报文处理方法一个实施例包括:
[0036]在本实施例中,银行清算系统作为客户端,在银行的专线骨干网内通过TCP/IP协议连接安装在前置机上的MQ,以访问作为服务端的SWIFT Alliance服务器。其中,SWIFTAlliance服务器也安装有MQ,SWIFT Alliance通过MQ与银行清算系统建立通信连接。MQ为IBM提供的用于传输数据的商业中间件,具有消息队列管理功能,适用于分布式计算环境或异构系统之中,在本实施例中,MQ应用均部署于安装了 Linux的小型前置机上,。
[0037]在本实施例中,银行清算系统基于本地MQ建立本地队列管理器,该本地队列管理器与SWIFT Alliance服务器对应的目标MQ的目标队列管理器之间建立有通信连接,需要说明的是,在发明的技术方案中,本地队列管理器的每一个远程队列都对应一个目标队列管理器的接收队列,每一个目标队列管理器的远程队列都对应本地队列管理器的一个接收队列。
[0038]101、银行清算系统与本地MQ建立通信连接;
[0039]当需要处理SWIFT报文时,银行清算系统需要先与本地MQ建立通信连接,在本实施例中,银行清算系统使用工厂模式获取队列管理器实例,以建立银行清算系统与本地MQ之间的通信连接。
[0040]102、银行清算系统通过通信连接获取MQ配置信息;
[0041]在建立银行清算系统与本地MQ之间的通信连接之后,银行清算系统通过该通信连接获取MQ配置信息,其中,该MQ配置信息用于指定接收待发送的SWIFT报文的本地队列管理器的远程队列以及指定获取待接收的SWIFT报文的本地队列管理器的接收队列。在本实施例中,可以通过构造封装类实现对MQ配置信息的读取,具体此处对MQ配置信息的获取方式不作限定。
[0042]103、银行清算系统根据MQ配置信息将待发送的SWIFT报文放入指定的本地队列管理器的远程队列;
[0043]在获取MQ配置信息后,在发送SWIFT报文时,银行清算系统根据该MQ配置信息的指示,将待发送的SWIFT报文放入指定的本地队列管理器的远程队列,使得该待发送的SffIFT报文被发送至与该指定的本地队列管理器的远程队列对应的目标队列管理器的接收队列。在本实施例中,银行清算系统可以通过本地MQ发送SWIFT报文至与SWIFT Alliance服务器对应的目标MQ的接收队列,在实际应用过程中,在SWIFT Alliance服务器接收到SffIFT报文时,SWIFT Al I iance服务器向本地MQ返回第一响应消息,由此,本地队列管理器需要创建本地回条队列,以接收SWIFT Alliance服务器返回的第一响应消息,其中,该第一响应消息是从业务层面上说的,包括SWIFT Alliance服务器对接收到的SWIFT报文进行规则校验后返回ACK或者NAK。可选地,在本实施例中,在SWIFT AlIiance服务器接收到SWIFT报文时,如果银行清算系统要求SWIFT Alliance服务器向本地MQ反馈通讯层面的report,则本地队列管理器需要针对report创建单独的report接收队列,用于接收report。
[0044]104、银行清算系统根据MQ配置信息从指定的本地队列管理器的接收队列中获取待接收的SWIFT报文;
[0045]在获取MQ配置信息后,在接收SWIFT报文时,银行清算系统根据该MQ配置信息的指示,从指定的本地队列管理器的接收队列中获取待接收的SWIFT报文。在本实施例中,SWIFT Alliance服务器可以通过目标MQ发送SWIFT报文至与银行清算系统对应的本地MQ的接收队列,在银行清算系统接收到SWIFT报文时,银行清算系统向目标MQ返回第二响应消息。
[0046]在本实施例中,将MQ API所提供的连接队列、关闭连接、提交事务、回滚事务以及接收/发送消息等方法封装在一个公用类中,银行清算系统MQ API的公用类提供的公共方法便完成银行清算系统与所述本地MQ之间的数据交互,以实现将通过调用MQ API的公用类提供的公共方法将待发送的SWIFT报文放入指定的本地队列管理器的远程队列以及通过调用MQ API的公用类提供的公共方法从指定的本地队列管理器的接收队列中获取待接收的SWIFT报文。在本实施例中,通过使用IBM提供的产品MQ可以实现稳定、完全和高效的数据报文的存储和转发,并且MQ提供特有的异步传输机制,能够基于消息传输和异步事务处理实现应用整合与数据交换,只需要简单调用MQ API即可使用通道在不同的队列管理器之间传递消息,不必考虑底层系统和网络的复杂性,其稳定安全的消息传输机制有效提高了报文的处理效率,减少报文在传输过程中可能产生的错误,消除数据泄漏等不安全因素。
[0047]本发明实施例提供的技术方案中,银行清算系统和SWIFT Alliance服务器均安装有各自对应的消息队列MQ,银行清算系统基于本地MQ建立的本地队列管理器与SWIFTAlliance服务器对应的目标MQ的目标队列管理器之间建立有通信连接,且本地队列管理器的每一个远程队列都对应一个目标队列管理器的接收队列,每一个目标队列管理器的远程队列都对应本地队列管理器的一个接收队列,银行清算系统与本地MQ建立通信连接,并通过该通信连接获取MQ配置信息,在利用该MQ配置信息确定指定的本地队列管理器的远程队列后,将待发送的SWIFT报文放入指定的本地队列管理器的远程队列,使得待发送的SffIFT报文被发送至与该指定的本地队列管理器的远程队列对应的目标队列管理器的接收队列。因此相对于现有技术,本发明实施例可利用MQ实现SWIFT报文的处理,同时提高开发效率和代码易读性。
[0048]上面对本发明实施例中的SWIFT报文处理方法进行了描述,下面对本发明实施例中的SWIFT报文处理装置进行描述,请参阅图2,本发明实施例中SWIFT报文处理装置一个实施例包括:与银行清算系统对应的本地消息队列MQ,所述本地MQ中的本地队列管理器与SWIFT Alliance服务器对应的目标MQ的目标队列管理器之间建立有通信连接,且所述本地队列管理器的远程队列与所述目标队列管理器的接收队列对应,所述本地队列管理器的接收队列与所述目标队列管理器的远程队列对应;所述银行清算系统包括:
[0049]连接单元201,用于与所述本地MQ建立通信连接;
[0050]获取单元202,用于通过所述通信连接获取MQ配置信息;
[0051]第一执行单元203,用于根据所述MQ配置信息将待发送的SWIFT报文放入指定的本地队列管理器的远程队列,使得所述待发送的SWIFT报文被发送至与所述指定的本地队列管理器的远程队列对应的目标队列管理器的接收队列。
[0052]为便于理解,下面以一具体应用场景为例,对本实施例中SWIFT报文处理装置内部运作流程进行描述:
[0053]SWIFT报文处理装置包括银行清算系统以及与银行清算系统对应的本地消息队列MQ,所述本地MQ中的本地队列管理器与SWIFT Alliance服务器对应的目标MQ的目标队列管理器之间建立有通信连接,且所述本地队列管理器的远程队列与所述目标队列管理器的接收队列对应,所述本地队列管理器的接收队列与所述目标队列管理器的远程队列对应;所述银行清算系统中的连接单元201与所述本地MQ建立通信连接;获取单元202通过所述通信连接获取MQ配置信息;第一执行单元203根据所述MQ配置信息将待发送的SWIFT报文放入指定的本地队列管理器的远程队列,使得所述待发送的SWIFT报文被发送至与所述指定的本地队列管理器的远程队列对应的目标队列管理器的接收队列。
[0054]在本实施例中,所述银行清算系统还包括:
[0055]第二执行单元204,用于根据所述MQ配置信息从指定的本地队列管理器的接收队列中获取待接收的SWIFT报文。
[0056]可选地,所述连接单元201包括:
[0057]获取模块2011,用于使用工厂模式获取队列管理器实例;
[0058]连接模块2012,用于基于所述队列管理器实例与所述本地MQ建立通信连接。
[0059]可选地,所述第一执行单元203,具体用于根据所述MQ配置信息,通过调用MQ API的公用类提供的公共方法将待发送的SWIFT报文放入指定的本地队列管理器的远程队列。
[0060]可选地,所述第二执行单元204,具体用于根据所述MQ配置信息,通过调用MQ API的公用类提供的公共方法从指定的本地队列管理器的接收队列中获取待接收的SWIFT报文。
[0061]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0062]在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0063]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0064]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0065]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0066]以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【权利要求】
1.一种SWIFT报文处理方法,其特征在于,包括与银行清算系统对应的本地消息队列MQ,所述本地MQ中的本地队列管理器与SWIFT Alliance服务器对应的目标MQ的目标队列管理器之间建立有通信连接,且所述本地队列管理器的远程队列与所述目标队列管理器的接收队列对应,所述本地队列管理器的接收队列与所述目标队列管理器的远程队列对应; 所述银行清算系统与所述本地MQ建立通信连接; 所述银行清算系统通过所述通信连接获取MQ配置信息; 所述银行清算系统根据所述MQ配置信息将待发送的SWIFT报文放入指定的本地队列管理器的远程队列,使得所述待发送的SWIFT报文被发送至与所述指定的本地队列管理器的远程队列对应的目标队列管理器的接收队列。
2.如权利要求1所述的SWIFT报文处理方法,其特征在于,所述方法还包括: 所述银行清算系统根据所述MQ配置信息从指定的本地队列管理器的接收队列中获取待接收的SWIFT报文。
3.如权利要求2所述的SWIFT报文处理方法,其特征在于,所述银行清算系统与所述本地MQ建立通信连接包括: 所述银行清算系统使用工厂模式获取队列管理器实例; 所述银行清算系统基于所述队列管理器实例与所述本地MQ建立通信连接。
4.如权利要求3所述的SWIFT报文处理方法,其特征在于,所述银行清算系统根据所述MQ配置信息将待发送的SWIFT报文放入指定的本地队列管理器的远程队列包括: 所述银行清算系统根据所述MQ配置信息,通过调用MQ API的公用类提供的公共方法将待发送的SWIFT报文放入指定的本地队列管理器的远程队列。
5.如权利要求3所述的SWIFT报文处理方法,其特征在于,所述银行清算系统根据所述MQ配置信息从指定的本地队列管理器的接收队列中获取待接收的SWIFT报文包括: 所述银行清算系统根据所述MQ配置信息,通过调用MQ API的公用类提供的公共方法从指定的本地队列管理器的接收队列中获取待接收的SWIFT报文。
6.一种SWIFT报文处理装置,其特征在于,包括银行清算系统以及与银行清算系统对应的本地消息队列MQ,所述本地MQ中的本地队列管理器与SWIFT Alliance服务器对应的目标MQ的目标队列管理器之间建立有通信连接,且所述本地队列管理器的远程队列与所述目标队列管理器的接收队列对应,所述本地队列管理器的接收队列与所述目标队列管理器的远程队列对应;所述银行清算系统包括: 连接单元,用于与所述本地MQ建立通信连接; 获取单元,用于通过所述通信连接获取MQ配置信息; 第一执行单元,用于根据所述MQ配置信息将待发送的SWIFT报文放入指定的本地队列管理器的远程队列,使得所述待发送的SWIFT报文被发送至与所述指定的本地队列管理器的远程队列对应的目标队列管理器的接收队列。
7.如权利要求6所述的SWIFT报文处理装置,其特征在于,所述银行清算系统还包括: 第二执行单元,用于根据所述MQ配置信息从指定的本地队列管理器的接收队列中获取待接收的SWIFT报文。
8.如权利要求6或7所述的SWIFT报文处理装置,其特征在于,所述连接单元包括: 获取模块,用于使用工厂模式获取队列管理器实例; 连接模块,用于基于所述队列管理器实例与所述本地MQ建立通信连接。
9.如权利要求8所述的SWIFT报文处理装置,其特征在于, 所述第一执行单元,具体用于根据所述MQ配置信息,通过调用MQ API的公用类提供的公共方法将待发送的SWIFT报文放入指定的本地队列管理器的远程队列。
10.如权利要求8所述的SWIFT报文处理装置,其特征在于, 所述第二执行单元,具体用于根据所述MQ配置信息,通过调用MQ API的公用类提供的公共方法从指定的本地队列管理器的接收队列中获取待接收的SWIFT报文。
【文档编号】H04L12/863GK104333515SQ201410647348
【公开日】2015年2月4日 申请日期:2014年11月14日 优先权日:2014年11月14日
【发明者】曾毅锋, 胡平, 曹颖, 张利珍, 林寿宏, 刘姝, 谢沙, 蔡跃进, 何嘉杰, 戴大虎 申请人:中国建设银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1