CN105868032A - 一种支持多系统接入的报文处理系统及方法 - Google Patents
一种支持多系统接入的报文处理系统及方法 Download PDFInfo
- Publication number
- CN105868032A CN105868032A CN201610181792.6A CN201610181792A CN105868032A CN 105868032 A CN105868032 A CN 105868032A CN 201610181792 A CN201610181792 A CN 201610181792A CN 105868032 A CN105868032 A CN 105868032A
- Authority
- CN
- China
- Prior art keywords
- message
- receiving
- queue
- described message
- module
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种支持多系统接入的报文处理系统及方法,其中,所述系统包括:收报模块,用于通过消息队列MQ的接收队列接收不同接入系统发送来的报文;处理模块,用于根据所述报文的关键信息和预配置的路由参数确定所述报文的分发方向;发报模块,用于根据所述报文的分发方向并通过所述消息队列MQ中的远程发送队列向相应的接入系统发送所述报文。采用本发明,实现了多系统接入和同一个系统新旧系统版本并行接入;实现了海外分行之间不经过SWIFT Alliance而直接进行报文的相互流转;还实现了报文的自动化分发处理。
Description
技术领域
本发明涉及报文处理领域,更为具体而言,涉及一种支持多系统接入的报文处理系统及方法。
背景技术
以中国建设银行为例,其现有的投资托管系统、国内清算系统及海外清算系统与SWIFT Alliance系统的连接采取MQ直连的方式,存在以下方面的问题:
一、每个系统单独跟SWIFT Alliance系统连接,都需要独立搭建MQ,不利于集中管理,不能在一个集中系统平台上宏观掌握各系统与SWIFT Alliance的报文收发处理情况。
二、中国建设银行海外分行之间进行报文的相互流转,都需要通过SWIFT进行,流程较长、报文处理效率低且需支付手续费。
三、SWIFT Alliance只能允许系统单点接入,而随着中国建设银行新一代系统的发展,如新版投资托管系统,要求新旧系统能够实现并行接入SWIFTAlliance收发报,以完成系统过渡。而目前的SWIFT Alliance并不能实现新旧系统的并行接入。
故目前系统现状已不适应当前和未来业务发展。包括中国建设银行在内的诸多银行,亟需一套能够支持多系统接入和同一个系统新旧系统版本并行接入的报文处理系统。
发明内容
鉴于现有技术的上述缺陷,本发明实施方式提供了一种支持多系统接入的报文处理系统及方法,能够支持多系统接入和同一个系统新旧系统版本并行接入,还能实现报文的自动化分发。
具体地,本发明实施例提供了一种支持多系统接入的报文处理系统,其包括:
收报模块,用于通过消息队列MQ的接收队列接收不同接入系统发送来的报文;
处理模块,用于根据所述报文的关键信息和预配置的路由参数确定所述报文的分发方向;
发报模块,用于根据所述报文的分发方向并通过所述消息队列MQ中的远程发送队列向相应的接入系统发送所述报文。
相应地,本发明实施例还提供了一种支持多系统接入的报文处理方法,其包括:
通过消息队列MQ的接收队列接收不同接入系统发送来的报文;
根据所述报文的关键信息和预配置的路由参数确定所述报文的分发方向;
根据所述报文的分发方向并通过所述消息队列MQ中的远程发送队列向相应的接入系统发送所述报文。
采用本发明实施方式具有下述有益效果:
1)实现了多系统接入和同一个系统新旧系统版本并行接入;
2)实现了海外分行之间不经过SWIFT Alliance而直接进行报文的相互流转;
3)实现了报文的自动化分发处理。
附图说明
图1是根据本发明实施例的一种支持多系统接入的报文处理系统的框图的一例;
图2是应用本发明提供的报文处理系统的一种网络架构示意图;
图3是应用本发明提供的报文处理系统的一种通讯示意图;
图4是应用本发明提供的报文处理系统与SWIFT通讯的示意图
图5是根据本发明实施例的一种支持多系统接入的报文处理方法的流程示意图;
图6是根据本发明实施例的一种收报处理的流程示意图;
图7是根据本发明实施例的一种发报处理的流程示意图;
图8A是根据本发明实施例的一种获取需转发的报文的流程示意图;
图8B是根据本发明实施例的一种处理需转发的报文的流程示意图;
图9是根据本发明实施例的一种Report消息处理的流程示意图;
图10是根据本发明实施例的一种死信队列处理的流程示意图;
图11是根据本发明实施例的一种线程启动的流程示意图。
具体实施方式
为了便于理解本发明技术方案的各个方面、特征以及优点,下面结合附图对本发明进行具体描述。应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。
首先对本发明可能涉及到的名称或术语进行解释。
N-TIS:中国建设银行的投资托管系统。
SWIFT:SWIFT国际报文组织。
SWIFT Alliance系统:SWIFT组织提供的、应用于总行的报文收发系统,简称SA。
SWIFT报文:从SWIFT报文处理系统接收到的标准SWIFT格式的报文与从总行Alliance收到的SWIFT标准格式报文。
GMPS:中国建设银行的海外清算系统,SWIFT报文处理系统的一个组成部分,完成中国建设银行的国外分行的外汇清算功能。
MPS:中国建设银行的国内清算系统,SWIFT报文处理系统的一个组成部分,完成中国建设银行的国内分行的外汇清算功能。
MQ:IBM提供的用于传输数据的商业中间件,具有消息队列管理功能,适用于分布式计算环境或异构系统之中。可部署于本发明提供的报文处理系统与SWIFT Alliance之间,实现报文收发功能。
图1是根据本发明实施例的一种支持多系统接入的报文处理系统的框图的一例。参照图1,报文处理系统包括收报模块11,其用于通过消息队列MQ的接收队列接收不同接入系统发送来的报文;处理模块12,其用于根据所述报文的关键信息和预配置的路由参数确定所述报文的分发方向;以及发报模块13,其用于根据所述报文的分发方向并通过所述消息队列MQ中的远程发送队列向相应的接入系统发送所述报文。
采用本发明实施例提供的报文处理系统(下文又简称为GMX系统),通过根据报文的关键信息和预配置的路由参数确定所述报文的分发方向,从而能在接入不同接入系统的同时,实现对来自不同接入系统的报文的分发处理。
可选地,在本实施例的一种实现方式中,收报模块11包括收报子模块,用于通过接收进程对指定的接收队列进行轮询以接收所述报文;发报模块12包括发报子模块,用于通过发送进程调用所述消息队列MQ中与所述报文的分发方向对应的远程发送队列从而发送所述报文。进一步地,如图1中的虚线框所示,报文处理系统还可以通过总控模块14来执行对所述接收进程中的接收线程和所述发送进程中的发送线程的启动、停止和监控处理。
具体而言,在本实现方式中,使用MQ作为报文通讯中间件,对每一种接收报文分别建立本地队列接收通道并使用独立的侦听端口;对每个种类的发送报文分别建立对应的远程队列和通道。针对每一个接收队列启动一个接收线程;针对每一个发送队列启动一个发送线程。同时,所有的接收线程和发送线程可以由一个总控进程来启动、停止和监控。此外,针对ACK回条报文,可以建立独立的接收队列,如果需要,还可以创建report接收队列。
其中,以GMX系统与SA之间的通讯为例对report和ACK解释如下:当从本发明提供的GMX系统发出报文之后,SA可能返回两种response,一种叫做report,一种称为SWIFT回条。report是技术层面上的反馈,即当GMX系统的MQ发送报文到SA的MQ时,SA的MQ如果发现GMX系统要求反馈通讯层面的report,则会组装一个report报文,表示传输过程是否正常。在发报时,是否需要收到report报文是可选的,如果需要report则需要建立一个单独的队列。SWIFT的回条,则是从业务层面上说的,当SWIFT组织收到GMX系统发送的报文之后,进行规则校验,返回ACK或者NAK给GMX系统。
更具体而言,在本实现方式中,接收进程用于对指定的接收队列进行轮询,如果有报文,则进行收报处理,否则休眠进入下一个循环。如果MQ连接断开,并且在重试指定次数后仍然无法连接,则在记录日志并更新线程监控表后退出。之后可以由总控模块(总控进程)进行重启。
发送进程用于对待发送报文表(该表中登记有报文的关键信息)进行轮循,如果找到未被处理的发送报文,则进行发报处理,否则休眠进入下一个循环。如果MQ连接断开并且重试指定次数后仍无法连接,则在记录日志并更新线程监控表后退出。之后可以由总控模块(总控进程)进行重启。
总控进程则负责所有线程的启动、停止和监控,定时循环检查所需要启动的线程,如果线程不存在则启动,如果存在MQ无法连接等异常,则进行重启等修正处理。在启动或重启成功,或者有其它异常原因时,都需要更新缓存状态、更新线程监控表。其中,缓存可以使用JAVA类MAP,保存当前系统中装载的所有线程的ID号和线程对象。
可选地,在本实施例的一种实现方式中,所述报文的关键信息包括:所述报文的收报行和发报行。所述预配置的路由参数包括:与所述不同接入系统下的接入渠道一一对应的MAPID和用于基于所述报文的关键信息确定所述报文的来源路由MAPID和目的路由MAPID的路由规则(例如,一系列正则表达式)。当然,在其它实现方式中,路由规则不同,确定目的路由MAPID所需要的关键信息也可能不同,本领域技术人员根据需要可以灵活的配置报文的关键信息和路由规则,本发明对此不做具体限制。
其中,一个接入系统可以对应多个MAPID,一个MAPID就是一个接入渠道,而一个系统可以通过多个渠道接入GMX系统。比如,在海外清算系统这一接入系统下,可以包含纽约分行、香港分行和伦敦分行,这三者就对应三个MAPID,这三个MAPID可以作为来源路由MAPID同时接入GMX系统(代表报文来自这三个分行其中一家),这三个MAPID也可以作为目的路由MAPID(代表报文要发往这三个分行其中一家)。
可选地,在本实施例的一种实现方式中,处理模块12可以包括:解析子模块,用于解析所述报文获取所述报文的关键信息;确定子模块,用于根据所述报文的关键信息和所述预配置的路由参数进行匹配处理,确定所述报文的分发方向。
在该实现方式中,为了确定报文的分发方向,可以预先配置相关信息,包括:为不同系统的不同接入路径(或称作接入渠道)配置不同的MAPID以及预先配置的路由参数。
其中,MAPID是定义GMX总行报文系统的接入路径的参数。路由参数具体可包含以下信息:MAPID(唯一定义,例如“PBCBUS33XXX”表示建行纽约的接入路径)、名称(中文名称,对MAPID的信息进行说明)、连接方式(即接入GMX系统的方式,例如:交互接入、FTP接入、打印机接入等)、MAP类型、目的路由(即,指定某个MAPID接入)、后台服务日志登记等参数信息。这样,通过定义MAPID,就可以唯一定义GMX系统的所有接入路径,而对于同一个系统新旧版本的接入,通过定义不同的MAPID,也可以区分成不同的接入路径。
其中,MAP类型用于标识报文这个MAPID的来源或目的类型,包含如下几个参数:从SWIFT来、到SWIFT去、从分行来、到分行去、从分行来或到分行去。比如,如果建行纽约分行的MAPID是PCBCUS33XXX,MAPID的类型是从分行来或到分行去,则这个MAPID允许作为目的路由或者来源路由;再比如MAPID为MToGMPS,这个则只能作为目的路由,代表报文要发到GMPS系统去,则对应的MAP类型为从SWIFT来。
其中,路由参数可以通过维护路由参数信息表进行配置。所述路由参数信息表具体可包括:来源路由MAPID、目的路由MAPID、报文种类、说明、优先级、复制路由(即同一路由,可以实现路由两次,第二次发给复制路由MAPID。例如,在新旧系统同时接入GMX系统时,可以通过复制路由在GMX收到一笔报文的时候,同时分发给新旧系统从而实现新旧系统同时接收报文)、路由结束标志、路由参数启用标志、路由规则等。
基于以上配置,GMX系统通过定义MAPID实现了不同接入系统(包括同一系统的不同版本)的区别接入;通过配置路由参数并将报文的关键信息与路由规则进行匹配从而确定不同报文的来源路由MAPID和目的路由MAPID,也就确定了报文的分发方向。之后,GMX系统将报文交由相应的发送队列进行分发处理即可。
换言之,采用本实现方式,一方面,GMX系统可以同时连接不同的接入系统,以及将同一报文同时分发给新旧系统,达到新旧系统并行的效果;另一方面,可以实现建行内部分行之间流转的行内报文转发而无需通过SIWFT报文组织进行报文转发;再一方面,实现了报文的自动化处理,无需人工干预,从而实现高效率的报文收发处理流程。
在本实现方式中,一种根据报文的关键信息和预配置的路由参数进行匹配处理以确定报文分发方向的简单示例如下:GMX系统对于收到的每一笔报文,无论来自SWIFT还是来自其他接入系统,都对报文进行关键信息的解析,包括收报行、发报行等。通过解析报文的收报行和发报行,然后根据路由规则就可以获取到报文的来源路由MAPID和目的路由MAPID,例如,“RECEIVER LIKE PCBCUS33XXX”即表示收报行是建设银行纽约分行。其中,MAPID一般与各个银行(包括:收报行和发报行)在SWIFT的编码(SWIFTBIC CODE)一一对应。例如,如果是SWIFT发来的,就会识别来源路由MAPID是SWIFT,目的路由MAPID就是报文里面的收报行,不同接入系统的收报行是不同的,从而可以唯一识别出需要将报文发送给哪个系统。
可选地,在本实施例的一种实现方式中,如图1中的虚线框所示,报文处理系统还可以包括:存储模块15,用于根据预配置的存储路径将所述收报模块接收到的报文存储至指定路径;登记模块16,用于在待发送报文表中登记所述报文的关键信息。此时,所述发报模块13可以通过发送线程轮询待发送报文表从而获取所述报文。
以上结合附图对根据本发明实施例的一种报文处理系统进行了说明,下面结合本发明的应用场景,对所述报文处理系统及其有益效果进行说明。
图2是应用本发明提供的报文处理系统的一种网络架构示意图。如图2所示,报文处理系统的接入系统可以包括总行ALLIANCE系统、海外清算系统、国内清算系统和投资托管系统(未图示)。其中,EAIH是中国建设银行内部的消息集中分发中转系统,投资托管系统可包括新版投资托管系统和旧版投资托管系统。换言之,本发明提供的GMX系统可以理解为连接SWIFT Alliance的统一报文综合前置路由系统。
在图2所示网络架构中,报文处理系统可以具有图1所示实施例或实现方式中的结构和功能,并且可以通过前文提及通讯方式进行报文的收发。
图3是应用本发明提供的报文处理系统的一种通讯示意图。如图3所示,报文处理系统通过MQ与各个接入系统进行通讯,具体而言,通过MQ进行SWIFT报文的收发处理。
图4是应用本发明提供的报文处理系统与SWIFT通讯的示意图。报文处理系统通过MQ与SAA(SAA即SWIFT的客户端)连接,该客户端实际可安装于中国建设银行的北京数据中心。
参照图4,在本发明的一种具体实施例中,报文处理系统可以通过以下方式与SAA进行通讯:建立本地队列管理器QM_LOCAL;建立本地队列(Localqueue),用于接收SA发送的报文。其中SA的每一个远程发送队列,都对应报文处理系统本地队列管理器的一个接收队列;创建远程队列(Remote queue),用于发送报文到SA,其中每一个远程队列,都对应SA指定队列管理器的一个接收队列。此外,当报文处理系统发送一笔报文到SA之后,SA需要返回回条给我行总行报文处理系统,则需要创建一个用于接收SA回条的本地接收队列。可选地,还可以创建用于接收report报文的report接收队列。
图5是根据本发明实施例的一种支持多系统接入的报文处理方法的流程示意图,参照图5,所述方法包括:
50:通过消息队列MQ的接收队列接收不同接入系统发送来的报文。
52:根据所述报文的关键信息和预配置的路由参数确定所述报文的分发方向。
54:根据所述报文的分发方向并通过所述消息队列MQ中的远程发送队列向相应的接入系统发送所述报文。
采用本实施例提供的方法,不仅能接入不同的接入系统,还能实现对来自不同接入系统的报文的分发处理。
可选地,在本实施例的一种实现方式中,通过接收进程对指定的接收队列进行轮询以获取所述报文,从而实现处理50;通过发送进程调用所述消息队列MQ中与所述报文的分发方向对应的远程发送队列从而发送所述报文,从而实现处理54。
进一步可选地,可以通过总控进程执行对所述接收进程中的接收线程和所述发送进程中的发送线程进行启动、停止和监控处理。
可选地,在本实施例的一种实现方式中,所述报文的关键信息包括:所述报文的收报行和发报行;所述预配置的路由参数包括:与所述不同接入系统下的接入渠道一一对应的MAPID和用于基于所述报文的关键信息确定所述报文的来源路由MAPID和目的路由MAPID的路由规则。当然,由于路由规则可以根据需要灵活配置,与路由规则匹配的关键信息也可以灵活设置,因此,本发明并不对关键信息和路由参数进行明确限制。
可选地,在本实施例的一种实现方式中,通过以下方式实现处理54:解析所述报文获取所述报文的关键信息;根据所述报文的关键信息和所述预配置的路由参数进行匹配处理,确定所述报文的分发方向。
可选地,在本实施例的一种实现方式中,所述方法还包括:根据预配置的存储路径将所述收报模块接收到的报文存储至指定路径;在待发送报文表中登记所述报文的关键信息。这样,可以通过发送线程轮询待发送报文表从而获取待发送的报文。
可选地,在本实施例的一种实现方式中,不同的接入系统包括收发SIWFT报文的以下系统:SWIFT ALLIANCE系统、海外清算系统、国内清算系统和投资托管系统。
需要说明的是,本发明提供的系统实施例可以用于执行或实施本发明提供的方法实施例,而本发明提供的方法实施例又可以理解为本发明提供的系统实施例的逻辑处理过程。因此,在方法实施例中,关于相关名称、术语的解释,关于所执行处理或可执行处理的详细说明,以及关于有益效果的具体说明,请参见系统实施例中的说明,此处不再赘述。
为了便于本领域技术人员理解本发明,下面结合具体的设计示例对本发明的部分内容进行示例性地说明。下文描述的内容可以理解为前文提及的相应模块或步骤的具体实现或额外补充。
需要说明的是,在下文提及的各个表格以及对表格的登记、更新处理均可以基于现有报文处理方法进行理解,因此,除非特别指出,否则不再对各个表格及其作用进行说明。此外,图6-图11所表示的流程均通过流程图中记载的步骤说明,除非特别指出,否则不再对各个步骤进行文字赘述。
【收报处理】
功能描述:通过连接MQ轮询读取接收队列接收SWIFT报文,把报文保存到指定路径,并登记收报记录表Msgincome和待发送报文表TempOutHB。
具体功能:判断报文是否重复、读取报文路径、解析和保存报文、登记收文记录表和待发送报文表、ACK报文处理。
输入:MQ接收队列接收到报文。
输出:将报文保存至本地路径,并登记收文记录表和待发送报文表。
逻辑处理:如图6所示,包括启动和处理流程以及停止流程。
其中,启动和处理流程包括:连接MQ队列管理器连接MQ接收队列;进行循环处理。循环处理包括:判断MQ连接是否正常,如果MQ连接不正常则重新连接MQ,在MQ连接不成功的情况下,如果重连次数大于设定次数则退出流程,如果重连次数不大于设定次数则休眠一段时间,在MQ连接成功的情况下进行读取消息的处理;如果MQ连接正常,则进行读取消息的处理。所述读取消息的处理包括:如果读取消息不成功,则休眠一段时间;如果读取消息成功,则在消息是ACK时,解释报文、找到发报记录表和收报记录表中的原纪录并更新这两个表并、登记报文回条表和报文路由表,然后再次进行读取消息的处理;在消息不是ACK并且报文不重复时,解释报文、创建报文目录、登记收报记录表和发报记录表、保存文件,然后再次进行读取消息的处理;在消息不是ACK但报文重复时,再次进行读取消息的处理。
其中,停止流程包括:释放MQ队列连接、释放MQ队列管理器连接、停止线程。
【发报处理】
功能描述:GMX系统接收各接入系统(投资托管系统、MPS和GMPS)需要发送到SWIFT的报文以后,解析并保存报文信息到收报记录表和待发送报文表TempOutHB,进行发报处理。通过连接MQ,轮循读取待发送报文表TempOutHB,获取要发送的报文,并把报文放入发送队列,更新报文记录状态,并根据发送结果,通知报文源发起方。
具体功能:读取报文、发送报文、LRP(Logical Reply msg,即系统间握手通讯后的逻辑回条报文,属于系统层级的通讯报文)处理。
输入:待发送报文表TempOutHB中的待发报记录(待发送报文表TempOutHB中包含多条记录,每一条记录包含一条报文的信息)及相应的报文。
输出:发送成功或者失败,通知报文源发起方。
逻辑处理:如图7所示,包括启动和处理流程以及停止流程。
其中,启动和处理流程包括:连接MQ队列管理器连接MQ接收队列;进行循环处理。循环处理包括:判断MQ连接是否正常,如果MQ连接不正常则重新连接MQ,在MQ连接不成功的情况下,如果重连次数大于设定次数则退出流程,如果重连次数不大于设定次数则休眠一段时间,在MQ连接成功的情况下进行读取报文的处理;如果MQ连接正常,则进行读取报文的处理。所述读取报文的处理包括:在读取待发送报文表后,如果未读取到报文,则休眠一段时间;如果读取到报文,则更新发报记录表、收报记录表中状态(即该报文的状态)为“发送中”、发送报文、更新发报记录表、收报记录表中状态为“发送”、从待发送报文表删除已发送报文的记录、在不满足LRP条件的情况下继续读取待发送报文表、在满足LRP条件的情况下登记报文回条表和报文路由表并继续读取待发送报文表。
其中,停止流程包括:释放MQ队列连接、释放MQ队列管理器连接、停止线程。
【行内报文转发处理】
功能描述:对于建行内部分行之间流转的行内报文进行转发处理,通过读取待发送报文表TempOutHB获取行内报文,并将行内报文及回条报文保存到指定路径等待发送。
具体功能:查询行内报文或ACK报文、读取报文路径、解释报文、保存报文、登记收报记录表Msgincome和报文待路由处理表、返回ACK。
输入:行内报文。
输出:转发成功或失败消息,登记收报记录表MsgIncome、报文待路由表MsgRoute、发报记录表MsgOutgo。
逻辑处理:如图8A所示是获取需转发的报文的流程;如图8B所示是处理需转发的报文的流程。
其中,获取需转发的报文的流程包括:查询待发送报文表,获得待发送报文记录;根据待发送报文记录查询发报记录表;如果待发送报文记录已发送,则删除待发送报文表中的待发送报文记录;如果待发送报文记录未发送,则在报文不是回条报文的情况下,组装正常的发送报文并删除待发送报文表中的记录并更新发报记录表状态为已发送,在报文是回条报文的情况下,组装回条报文并发送然后删除待发送报文表中的记录并更新发报记录表状态为已发送。
其中,处理需转发的报文的流程包括:读取报文(例如,读取报文路径后根据报文路径读取报文)、解析报文、新增收报记录表记录、新增报文路由表记录。
【Report消息处理】
功能描述:通过连接MQ,轮循读取Report接收队列,如果读取到“原消息异常”或者“原消息超时”的Report消息,则更新原报文发报记录为失败,并发送LRP报文。设置REPORT条件为“原消息异常”和“原消息超时”的情况下发送report消息。
具体功能:接收和记录Report消息、更新发送报文状态、LRP处理。
输入:收到SAA发回的report消息。
输出:原发报记录状态变更并组LRP报文。
逻辑处理:如图9所示,包括启动和处理流程以及停止流程。
其中,启动和处理流程包括:连接MQ队列管理器连接MQ接收队列;进行循环处理。循环处理包括:判断MQ连接是否正常,如果MQ连接不正常则重新连接MQ,在MQ连接不成功的情况下,如果重连次数大于设定次数则退出流程,如果重连次数不大于设定次数则休眠一段时间,在MQ连接成功的情况下进行读取消息的处理;如果MQ连接正常,则进行读取消息的处理。所述读取消息的处理包括:判断是否读取到REPORT消息,如果未读取到REPORT消息,则休眠一段时间,如果读取到REPORT消息,则登记报文报表,在判断为异常消息时继续判断是否读取到REPORT消息,在判断为非异常消息时,找到发报记录表和收报记录表中的原纪录,更新发报记录表和收报记录表,如果不满足LRP条件则判断是否读取到REPORT消息,如果满足LRP条件则在登记报文回条表和报文路由表之后继续判断是否读取到REPORT消息。
其中,停止流程包括:释放MQ队列连接、释放MQ队列管理器连接、停止线程。
【死信队列处理】
功能描述:通过连接MQ,轮循读取死信队列,如果读取到消息,根据错误码进行判断,获取原发报的关键信息(报文发送日期MsgOutDate,报文发送序列号MsgOutSeq),判断是否要进行重新发报处理,并更新原发报记录状态。
具体功能:接收死信队列消息、更新发送报文状态、重新发报、LRP处理。
输入:读取死信队列消息。
输出:原发报记录状态变更和重新发报。
逻辑处理:如图10所示,包括启动和处理流程以及停止流程。
其中,启动和处理流程包括:连接MQ队列管理器;连接MQ接收队列;进行循环处理。所述循环处理包括:判断是否读取到死信队列消息,如果否,则休眠一段时间;如果是,则登记/更新死信队列信息表;在错误码不表示进入重新发送报文的流程时,记日志、记监控并重新判断是否读取到死信队列消息;在错误码表示进入重新发送报文的流程时,如果需要重发,则找到发报记录表和收报记录表的原纪录,重新发送报文并更新发送次数,然后重新判断是否读取到死信队列消息,如果不需要重发并且满足LRP条件,则登记报文回条表和报文路由表并更新收报记录表,之后重新判断是否读取到死信队列消息,如果不需要重发并且不满足LRP条件,则更新收报记录表并重新判断是否读取到死信队列消息。
其中,停止流程包括:释放MQ队列连接、释放MQ队列管理器连接、停止线程。
【系统启停与监控】
本发明的报文处理系统使用一个总控进程,负责管理所有的线程启动、停止和监控。其中,线程配置XML(可扩展标记语言)文件主要配置以下信息:serviceid-任务ID;servicename-任务描述;servicetype-任务类型,收或者发;mapid-匹配ID;runflag-1需要启动,0不需要启动;retrytimes-重试次数;retrypause-重试间隔时间;command-要执行的JAVA类;remark-备注。
示例性地,如图11所示是线程启动的流程示意图。
参照图11,关于步骤1,如果总控状态为停止,则跳出监控循环,停止所有线程。关于步骤2,可通过以下方式读取监控子线程记录:每次循环监控时,按XML配置的线程依次检查此线程在内存的状态,当一轮监控检查结束,则退出并休眠。关于步骤3和步骤4,服务第一次启动时,会把服务的主键和对象保存在缓存里,如果监控时发现没有,且又是需要启动的,则在MAPID中的oparetor=o时,执行启动线程。其中,MAPID表记录每个线程的手工操作标志,操作员可以通过操作这个表中的Operate来启停MAPID对应的线程。Operate=o表示启动(open);Operate=c表示停止(close)。关于步骤5,线程不能正常处理业务,包括MQ连接异常。关于步骤6,具体包括启动线程并更新线程缓存状态,更新线程监控表。关于步骤7,具体包括停止线程并更新缓存状态,和线程监控表。关于步骤8,具体包括停止线程后,启动线程并更新线程缓存状态,包括MQ状态。关于步骤9,具体包括更新线程状态、MQ连接状态、MQ各队列状态、队列深度,通道状态等信息
在死信队列的监控方面,可以间隔一定时间循环查询和展现死信队列信息表msgdeadletter中状态为“Active”的报文,并通过设计的监控页面为操作人员提供手工操作的“重发”、“取消”功能。其中,“重发”功能表示重新发送原报文,从通讯基本信息表casmfprm获取重发次数参数,从收报记录表msgincome中获取已经重发的次数,当已经重发的次数达到重发次数上限时,提示“已达重发次数上限,不能重发”;未达上线时,可以重发报文,并更新状态为“已重发”,更新收报记录表msgincome的重发次数加1,更新死信队列信息表msgdeadletter的重发次数加1。“取消”功能表示该笔报文发送失败,登记死信队列信息表msgdeadletter状态为“end”,更新收报记录表msgincome、发报记录表msgoutgo的状态为“发送失败”,并制作LRP报文返回给下游系统。
【网络环境】
本发明提供的方法和系统,在应用于具体的网络环境时需要遵循网络规范要求。以应用于中国建设银行的网络为例,可以充分利用现有的专线骨干网络资源,无需额外的网络建设。
本发明提供的方法和系统在应用和设计时可以采用B/S(浏览器/服务器)的网络体系结构,各操作用户(包括一级分行及其下属的二级分/支行)利用自己的客户机上浏览器,通过中国建设银行的网络登录相应的报文服务器、业务处理服务器,在集中的数据库中完成自己职责范围内的操作。
B/S的网络设计可以让所有的用户共享主机资源,主机承担了所有用户的信息处理任务,并实施数据的集中管理,从而在便于管理的同时,保证了数据的安全。并且,B/S的体系结构使所有的应用服务集中于服务器,也为系统的升级、功能扩展、集中维护等提供了极大的便利条件。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本领技术人员应当理解,以上所公开的仅为本发明的实施方式而已,当然不能以此来限定本发明之权利范围,依本发明实施方式所作的等同变化,仍属本发明权利要求所涵盖的范围。
Claims (16)
1.一种支持多系统接入的报文处理系统,其特征在于,所述系统包括:
收报模块,用于通过消息队列MQ的接收队列接收不同接入系统发送来的报文;
处理模块,用于根据所述报文的关键信息和预配置的路由参数确定所述报文的分发方向;
发报模块,用于根据所述报文的分发方向并通过所述消息队列MQ中的远程发送队列向相应的接入系统发送所述报文。
2.如权利要求1所述的系统,其特征在于,
所述收报模块包括收报子模块,用于通过接收进程对指定的接收队列进行轮询以接收所述报文;
所述发报模块包括发报子模块,用于通过发送进程调用所述消息队列MQ中与所述报文的分发方向对应的远程发送队列从而发送所述报文。
3.如权利要求2所述的系统,其特征在于,所述系统还包括:
总控模块,用于通过总控进程执行对所述接收进程中的接收线程和所述发送进程中的发送线程的启动、停止和监控处理。
4.如权利要求1所述的系统,其特征在于,
所述报文的关键信息包括:所述报文的收报行和发报行;
所述预配置的路由参数包括:与所述不同接入系统下的接入渠道一一对应的MAPID和用于基于所述报文的关键信息确定所述报文的来源路由MAPID和目的路由MAPID的路由规则。
5.如权利要求1或4所述的系统,其特征在于,所述处理模块包括:
解析子模块,用于解析所述报文获取所述报文的关键信息;
确定子模块,用于根据所述报文的关键信息和所述预配置的路由参数进行匹配处理,确定所述报文的分发方向。
6.如权利要求1所述的系统,其特征在于,所述系统还包括:
存储模块,用于根据预配置的存储路径将所述收报模块接收到的报文存储至指定路径;
登记模块,用于在待发送报文表中登记所述报文的关键信息。
7.如权利要求6所述的系统,其特征在于,所述发报模块还用于通过发送线程轮询所述待发送报文表从而获取所述报文。
8.如权利要求1所述的系统,其特征在于,所述不同的接入系统包括收发SIWFT报文的以下系统:
SWIFT ALLIANCE系统、海外清算系统、国内清算系统和投资托管系统。
9.一种支持多系统接入的报文处理方法,其特征在于,所述方法包括:
通过消息队列MQ的接收队列接收不同接入系统发送来的报文;
根据所述报文的关键信息和预配置的路由参数确定所述报文的分发方向;
根据所述报文的分发方向并通过所述消息队列MQ中的远程发送队列向相应的接入系统发送所述报文。
10.如权利要求9所述的方法,其特征在于,
通过消息队列MQ的接收队列接收不同接入系统发送来的报文包括:
通过接收进程对指定的接收队列进行轮询以获取所述报文;
根据所述报文的分发方向并通过所述消息队列MQ中的远程发送队列向相应的接入系统发送所述报文包括:
通过发送进程调用所述消息队列MQ中与所述报文的分发方向对应的远程发送队列从而发送所述报文。
11.如权利要求10所述的方法,其特征在于,所述方还包括:
通过总控进程执行对所述接收进程中的接收线程和所述发送进程中的发送线程进行启动、停止和监控处理。
12.如权利要求9所述的方法,其特征在于,
所述报文的关键信息包括:所述报文的收报行和发报行;
所述预配置的路由参数包括:与所述不同接入系统下的接入渠道一一对应的MAPID和用于基于所述报文的关键信息确定所述报文的来源路由MAPID和目的路由MAPID的路由规则。
13.如权利要求9或12所述的方法,其特征在于,根据所述报文的关键信息和预配置的路由参数确定所述报文的分发方向包括:
解析所述报文获取所述报文的关键信息;
根据所述报文的关键信息和所述预配置的路由参数进行匹配处理,确定所述报文的分发方向。
14.如权利要求9所述的方法,其特征在于,所述方法还包括:
根据预配置的存储路径将所述收报模块接收到的报文存储至指定路径;
在待发送报文表中登记所述报文的关键信息。
15.如权利要求14所述的方法,其特征在于,所述方法还包括:
通过发送线程轮询所述待发送报文表从而获取所述报文。
16.如权利要求9所述的方法,其特征在于,所述不同的接入系统包括收发SIWFT报文的以下系统:
SWIFT ALLIANCE系统、海外清算系统、国内清算系统和投资托管系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610181792.6A CN105868032A (zh) | 2016-03-28 | 2016-03-28 | 一种支持多系统接入的报文处理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610181792.6A CN105868032A (zh) | 2016-03-28 | 2016-03-28 | 一种支持多系统接入的报文处理系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105868032A true CN105868032A (zh) | 2016-08-17 |
Family
ID=56626054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610181792.6A Pending CN105868032A (zh) | 2016-03-28 | 2016-03-28 | 一种支持多系统接入的报文处理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105868032A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106803836A (zh) * | 2016-12-27 | 2017-06-06 | 中国银联股份有限公司 | 一种多中心文件转发处理方法及装置 |
CN107993141A (zh) * | 2017-11-22 | 2018-05-04 | 中国银行股份有限公司 | 数据处理方法和装置、服务器 |
CN110113495A (zh) * | 2019-05-10 | 2019-08-09 | 北京奇艺世纪科技有限公司 | App的远程控制方法、装置、电子设备及系统 |
CN110474827A (zh) * | 2019-08-15 | 2019-11-19 | 中国银行股份有限公司 | 一种fin报文多环境转发方法、设备以及系统 |
CN110519271A (zh) * | 2019-08-28 | 2019-11-29 | 中国银行股份有限公司 | 可支持多渠道文件传输的swift报文处理方法及系统 |
CN112202614A (zh) * | 2020-09-30 | 2021-01-08 | 中国银行股份有限公司 | 系统间的通信方法及装置 |
CN112291254A (zh) * | 2020-11-05 | 2021-01-29 | 中国人民银行清算总中心 | 一种用于可靠交易的消息处理方法及装置 |
CN113852610A (zh) * | 2021-09-06 | 2021-12-28 | 招银云创信息技术有限公司 | 报文处理方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1592268A (zh) * | 2003-09-02 | 2005-03-09 | 北京航空航天大学 | 航空专用网间的通信方法 |
CN104601483A (zh) * | 2013-10-31 | 2015-05-06 | 华为技术有限公司 | 报文转发方法、装置及转发设备 |
CN105407163A (zh) * | 2015-11-30 | 2016-03-16 | 中国建设银行股份有限公司 | 应用于反洗钱处理的数据处理系统及方法 |
-
2016
- 2016-03-28 CN CN201610181792.6A patent/CN105868032A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1592268A (zh) * | 2003-09-02 | 2005-03-09 | 北京航空航天大学 | 航空专用网间的通信方法 |
CN104601483A (zh) * | 2013-10-31 | 2015-05-06 | 华为技术有限公司 | 报文转发方法、装置及转发设备 |
CN105407163A (zh) * | 2015-11-30 | 2016-03-16 | 中国建设银行股份有限公司 | 应用于反洗钱处理的数据处理系统及方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106803836B (zh) * | 2016-12-27 | 2021-03-23 | 中国银联股份有限公司 | 一种多中心文件转发处理方法及装置 |
CN106803836A (zh) * | 2016-12-27 | 2017-06-06 | 中国银联股份有限公司 | 一种多中心文件转发处理方法及装置 |
CN107993141A (zh) * | 2017-11-22 | 2018-05-04 | 中国银行股份有限公司 | 数据处理方法和装置、服务器 |
CN110113495A (zh) * | 2019-05-10 | 2019-08-09 | 北京奇艺世纪科技有限公司 | App的远程控制方法、装置、电子设备及系统 |
CN110474827B (zh) * | 2019-08-15 | 2021-11-02 | 中国银行股份有限公司 | 一种fin报文多环境转发方法、设备以及系统 |
CN110474827A (zh) * | 2019-08-15 | 2019-11-19 | 中国银行股份有限公司 | 一种fin报文多环境转发方法、设备以及系统 |
CN110519271A (zh) * | 2019-08-28 | 2019-11-29 | 中国银行股份有限公司 | 可支持多渠道文件传输的swift报文处理方法及系统 |
CN110519271B (zh) * | 2019-08-28 | 2021-06-11 | 中国银行股份有限公司 | 可支持多渠道文件传输的swift报文处理方法及系统 |
CN112202614A (zh) * | 2020-09-30 | 2021-01-08 | 中国银行股份有限公司 | 系统间的通信方法及装置 |
CN112202614B (zh) * | 2020-09-30 | 2023-01-24 | 中国银行股份有限公司 | 系统间的通信方法及装置 |
CN112291254A (zh) * | 2020-11-05 | 2021-01-29 | 中国人民银行清算总中心 | 一种用于可靠交易的消息处理方法及装置 |
CN112291254B (zh) * | 2020-11-05 | 2023-05-05 | 中国人民银行清算总中心 | 一种用于可靠交易的消息处理方法及装置 |
CN113852610A (zh) * | 2021-09-06 | 2021-12-28 | 招银云创信息技术有限公司 | 报文处理方法、装置、计算机设备和存储介质 |
CN113852610B (zh) * | 2021-09-06 | 2024-03-05 | 招银云创信息技术有限公司 | 报文处理方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105868032A (zh) | 一种支持多系统接入的报文处理系统及方法 | |
CN104023020B (zh) | 针对移动设备的TypeB报文订阅推送系统及相应方法 | |
CN108040034A (zh) | 分布式实时通信中间件 | |
CN110266783B (zh) | 一种基于dds的铁路ctc系统通信平台 | |
EP2321908B1 (en) | Method and system for message processing | |
US8769262B2 (en) | VPN connection system and VPN connection method | |
JP4616159B2 (ja) | クラスタシステム、ロードバランサ、ノード振替方法およびノード振替プログラム | |
CN100446495C (zh) | 一种动态共享连接的方法和系统 | |
US8488448B2 (en) | System and method for message sequencing in a broadband gateway | |
CN101674255B (zh) | 一种企业服务总线的消息转发方法、服务器及其系统 | |
CN101370035A (zh) | 用于动态客户端/服务器网络管理的方法以及系统 | |
US10834033B2 (en) | Method and system for transferring messages between messaging systems | |
CN101854348A (zh) | Soa在外围系统访问核心支撑系统的实现方法 | |
EP2916522A1 (en) | File transmission method and system thereof | |
CN109756474A (zh) | 一种电力调度自动化系统的服务跨区域调用方法及装置 | |
CN102647437A (zh) | 调度集中方法及系统 | |
CN102054213A (zh) | 一种信息集成方法、装置及系统 | |
US20050270973A1 (en) | Cluster architecture communications | |
US8077699B2 (en) | Independent message stores and message transport agents | |
US7574525B2 (en) | System and method for managing communication between server nodes contained within a clustered environment | |
US8060568B2 (en) | Real time messaging framework hub to intercept and retransmit messages for a messaging facility | |
CN106302148B (zh) | 基于lbm的备份数据传输方法和系统 | |
JP2005092872A (ja) | サービス処理システムおよびその処理方法並びにその処理プログラム | |
CN105049481B (zh) | 一种支持多异构系统智能交互的方法 | |
CN109495462A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160817 |