CN107635012A - 一种消息匹配方法、服务器和计算机可读存储介质 - Google Patents
一种消息匹配方法、服务器和计算机可读存储介质 Download PDFInfo
- Publication number
- CN107635012A CN107635012A CN201710969697.7A CN201710969697A CN107635012A CN 107635012 A CN107635012 A CN 107635012A CN 201710969697 A CN201710969697 A CN 201710969697A CN 107635012 A CN107635012 A CN 107635012A
- Authority
- CN
- China
- Prior art keywords
- message
- messages
- match
- matched
- matching
- 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.)
- Granted
Links
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种消息匹配方法、服务器和计算机可读存储介质。所述方法通过创建消息链的方式将同一笔交易的至少一条同类型的消息链接起来,并将消息链中的最新消息输入匹配池中。根据匹配规则和待匹配消息的索引列索引出至少两个具有相同索引列的待匹配消息。根据对应的匹配规则对待匹配消息进行配对并根据匹配结果修改消息的匹配状态。所述方法为机构设置匹配池以降低机构间的交叉影响,在消息中设置索引列缩小查询范围以提高消息匹配速度。并且,所述方法支持多种数据类型的匹配、多种匹配模式和匹配算法,使得系统更具灵活性。
Description
技术领域
本发明涉及互联网领域,具体地,涉及网络通信技术领域,更具体地,涉及一种消息匹配方法、服务器和计算机可读存储介质。
背景技术
次贷危机之后监管改革要求建立OTC(Over The Counter,场外交易市场)衍生交易确认制度,根据G20监管目标与市场发展需要,场外衍生品市场已建成交易确认、交易压缩、投资组合对账、非中央对手清算保证金管理相关服务的专业平台。其中,匹配引擎作为上述业务场景的技术支撑,需要支撑多种匹配模式,多种匹配规则,多种待匹配数据格式,多种数据来源的业务数据匹配,提供稳定,可信,高效的匹配服务。
目前SWIFT(Society for Worldwide Interbank FinancialTelecommunications,环球银行金融电信协会)的Accord匹配引擎作为外汇衍生品市场交易确认的主流产品,提供基于SWIFT标准报文格式的报文的匹配功能。SWIFT Accord目前采用集中匹配的模式,在中央服务器支持来自多个报文数据来源的匹配,并将匹配结果分类反馈给客户端用户。同时针对交易机构的特殊场景,支持手动的方式自设规则。但是此方法匹配流程单一且操作复杂,匹配效率较低,因此不能满足场外交易的业务需求。
发明内容
有鉴于此,本发明提供了一种消息匹配方法、服务器和计算机可读存储介质,采用多种匹配模式和匹配规则高效快速地匹配消息。
第一方面,提供一种消息匹配方法,包括:
接收消息,判断所述消息有效性,所述消息包括SWIFT报文和交易数据;
对有效消息进行消息预处理以选择所有消息链中最新的非删除类型的消息进入匹配池;
进行匹配预处理获取匹配规则和匹配域映射关系,所述匹配域映射关系为在匹配规则中消息域之间的对应关系;
对于匹配池中的所有消息,索引获取具有相同索引列的至少两个待匹配消息,所述索引列为交易的唯一编码和需完全匹配的核心要素域的哈希值;以及
根据所述匹配规则对所述至少两个待匹配消息进行配对;
其中,所述消息链包括与相同交易相关的至少一条相同类型的消息;所述匹配池为在匹配引擎中为交易机构设置的单独处理队列。
进一步地,根据所述匹配规则对所述至少两个待匹配消息进行配对包括:
对消息数据进行全半角处理;
根据匹配规则对交易双方消息的核心要素和非核心要素进行匹配;
若交易双方消息的核心要素和非核心要素均完全一致,则将该消息的匹配状态设置为完全匹配状态并生成匹配明细文件;
若交易双方消息的核心要素完全一致,影响最终结果的非核心要素的相似度为1,则将该消息的匹配状态设置为完全匹配状态并生成匹配明细文件;
若交易双方消息的核心要素完全一致,影响最终结果的非核心要素的相似度达到设定的阈值,则将该消息的匹配状态设置为部分匹配状态。
进一步地,通过将非核心要素字符串之间公共字符的长度除以非核心要素字符串之间的编辑距离与非核心要素字符串之间公共字符的长度的和来计算对应要素的相似度;
所述非核心要素的相似度为所有所述对应要素的相似度的加权和。
进一步地,对有效消息进行预处理包括:
判断接收到的有效消息的操作类型;
在所述有效消息为新增消息时,新增消息链,所述有效消息进入匹配池;
在所述有效消息为修改消息时,所述有效消息进入匹配池;
在所述有效消息为删除消息时,所述有效消息不进入匹配池。
进一步地,若无法找到所述有效消息对应的消息链或对应的消息链已被取消,且所述有效消息为修改消息时,新增消息链,所述有效消息进入匹配池;
若无法找到所述有效消息对应的消息链或对应的消息链已被取消,且所述有效消息为删除消息时,不新增消息链,所述有效消息不进入匹配池。
进一步地,若找到所述有效消息对应的关联消息链中最新消息为待匹配状态,且所述有效消息为修改消息时,加入消息链并作为最新消息进入匹配池;
若找到所述有效消息对应的关联消息链中最新消息为待匹配状态,且所述有效消息为删除消息时,加入消息链但不进入匹配池。
进一步地,若找到所述有效消息对应的关联消息链中最新消息是匹配状态,且所述有效消息为修改消息时,系统将匹配的消息自动解绑,所述有效消息加入消息链并和解绑的对方的消息进入匹配池;
若找到所述有效消息对应的关联消息链中最新消息是匹配状态,且所述有效消息为删除消息时,系统将匹配的消息自动解绑,所述有效消息加入消息链但不进入匹配池,解绑的对方的消息进入匹配池。
进一步地,判断所述消息有效性包括:
在消息所属机构在消息头中的唯一标识合法,并在系统中找到对应的唯一标识时,判断所述消息有效;
在不同机构之间所发送的消息的信用证号码相同时,判断所述消息有效;
在相同机构发送的消息的信用证号码相同时,判断所述消息无效;
在收到的消息为技术重发的消息时,判断所述消息无效。
进一步地,若交易的修改消息先于新增消息到达系统,则系统将该修改消息作为该交易的第一条消息增加一个消息链;该笔交易的新增消息到达系统后,独立增加一个消息链。
进一步地,根据所述匹配规则对所述至少两个待匹配消息进行配对还包括:
在检测到设置为部分匹配状态的消息错配时,进入手工匹配界面。
第二方面,提供一种服务器,包括:
至少一个处理器;
存储器,用于存储所述处理器可执行的指令;
所述处理器被配置为执行上述任一项所述的方法。
第三方面,提供一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现上述任一项所述的方法。
在本实施例中,所述方法通过创建消息链的方式将同一笔交易的至少一条同类型的消息链接起来,并将消息链中的最新消息输入匹配池中。根据匹配规则和待匹配消息的索引列索引出至少两个具有相同索引列的待匹配消息。根据消息域对应的匹配规则对待匹配消息进行配对并根据匹配结果修改消息的匹配状态。所述方法为机构设置匹配池以降低机构间的交叉影响,在消息中设置索引列缩小查询范围以提高消息匹配速度。并且,所述方法支持多种数据类型的匹配、多种匹配模式和匹配算法,使得系统更具灵活性。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是本实施例的报文匹配方法的流程图;
图2是本实施例的报文匹配方法中索引待匹配报文的流程图;
图3是本实施例的报文匹配方法中待匹配报文核心匹配流程图;
图4是本实施例的报文匹配方法的匹配状态示意图;
图5是本实施例的实现消息匹配方法的软件模块结构示意图;
图6是本实施例的实现消息匹配方法的硬件架构示意图;
图7是本实施例的集中匹配系统示意图;
图8是本实施例的服务器的示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本技术领域人员应理解,所述匹配方法支持多种数据类型的匹配,包括SWIFT报文和交易数据。SWIFT报文是tag\value格式下的源文件,需要按照格式进行解析。交易数据是直接连接数据库通过DBlink的方式直接获取的数据。以下以SWIFT报文为本发明实施例来阐述所述消息匹配方法、服务器和计算机可读存储介质,所述方法同样适用于交易数据。
图1是本实施例的报文匹配方法的流程图。如图1所示,在步骤S110,在系统接收到报文后,进行报文解析以判断报文的有效性。
具体地,报文所属机构在报文头中的唯一标识合法并且在系统中找到对应的唯一标识,判断该报文为有效报文。报文所属机构在报文头中的唯一标识为BIC(BANKINGIDENTIFY CODE,银行识别码)。例如,SWIFT(Society for Worldwide InterbankFinancial Telecommunications,环球银行金融电信协会)BIC是根据SWIFT代码编制的银行识别码,这个代码在全世界银行系统是唯一的。在不同机构之间所发送的报文的信用证号码相同时,判断所述报文有效,所述信用证号码为报文的标识。在相同机构发送的报文的信用证号码相同时,判断所述报文无效。在收到的报文为技术重发的报文时,判断所述报文无效。
在步骤S120,对接收到的有效报文进行报文预处理以选择所有报文链中最新的非删除类型的报文进入匹配池。匹配池为系统为每家机构设置单独的处理队列,每个队列交由不同的线程实现匹配逻辑的处理,从而降低机构间的交叉影响。报文链包括与相同交易相关的至少一条相同类型的报文,报文间通过发报行编号和相关业务编号两个域进行链接,相关业务编号域中存放了该报文相关联的报文的发报行编号,进而形成了报文链。应理解,也可根据需要采用其他域进行链接。
具体地,判断有效报文的操作类型。报文操作类型包括新增报文、修改报文和删除报文。新增报文表示一笔交易的第一条报文。修改报文为对交易款项修改的报文。删除报文为在系统中取消对应的交易的报文。
若有效报文为新增报文,新增报文链,该有效报文进入匹配池。
若有效报文为修改报文,该有效报文进入匹配池。当无法找到该有效报文对应的报文链或对应的报文链已被取消时,则新增报文链,该有效报文作为第一条报文进入匹配池。当找到的该有效报文对应的报文链中的最新报文是待匹配状态时,该有效报文加入报文链并作为最新报文进入匹配池,将报文链中非最新报文的状态设置为无效状态。当该有效报文对应的报文链中的最新报文是部分匹配或完全匹配状态时,系统将匹配的两条报文自动解绑。该有效报文加入报文链中作为最新报文进入匹配池,被解绑的对方的报文也进入匹配池。将报文链中非最新报文的状态设置为无效状态。
若所述有效报文为删除报文,该有效报文不进入匹配池。当无法找到该有效报文对应的报文链或对应的报文链已被取消时,该有效报文不加入报文链且不进入匹配池。当找到的该有效报文对应的报文链中的最新报文是待匹配状态时,该有效报文加入报文链中作为最新报文但不进入匹配池,将报文链中非最新报文的状态设置为无效状态。当该有效报文对应的报文链中的最新报文是部分匹配或完全匹配状态时,系统将匹配的两条报文自动解绑。该有效报文加入报文链中作为最新报文,不进入匹配池,将报文链中非最新报文的状态设置为无效状态。被解绑的对方的报文需进入匹配池。
在步骤S130,进行匹配预处理获取匹配规则和匹配域映射关系。匹配规则包括市场规则和自设规则。匹配算法对用户透明,用户可根据实际需求自设匹配阈值和匹配规则,更好的满足市场成员的要求,增加系统的灵活性。匹配域映射关系为在匹配规则中报文域之间的对应关系。
部分市场匹配规则如表1所示:
表1
交易字段的对应匹配说明如表2:
表2
在步骤S140,根据报文的索引列在匹配池中索引获取具有相同索引列的待匹配报文。报文的索引列为交易的唯一编码和需完全匹配的核心要素域的哈希值。通过报文的索引列可缩小查询范围,提高报文匹配的速度。
在匹配规则中匹配要分为核心要素、非核心要素和不影响结果的要素。核心要素包括交易机构双方的唯一标识BIC,交易的起息日,货币或金额的数量等。影响结果的非核心要素包括业务范围,分笔结算提示,付款结算指示,基金或受益人,条款和协议,交易日,汇率,中间行和账户行等。不影响结果的要素包括发报行编号、报文操作类型、联系信息、交易方式、经纪人费用、清算代理识别、抵押标识等。
在步骤S150,根据匹配规则将待匹配报文配对。
具体地,对报文数据进行全半角处理。
根据交易双方中SWIFT交易确认会员的规则匹配待匹配报文的核心要素。首先判断是否由互斥标识,若存在则匹配不成功,若不存在则根据匹配规则对核心要素进行匹配。核心要素匹配不成功的待匹配报文进入匹配池。
根据匹配规则按照优先级对核心要素匹配成功的待匹配报文进行非核心要素的匹配。若匹配成功,将报文的匹配状态设置为完全匹配并生成匹配明细文件。若匹配不成功,对影响匹配结果的非核心要素进行相似度计算。
一对要素的相似度计算方法为:
S(A,B)=LCS(A,B)/(LD(A,B)+LCS(A,B))
LD(A,B):计算字符串A和B之间的编辑距离。LCS(A,B):计算字符串A和B的最长公共字符的长度。
非核心要素的相似度为所有对应要素的相似度的加权和:
S=∑WiSi
Wi表示要素权重,Si表示一对要素的相似度。
例如,存在一组待匹配报文的非核心要素对AB和CD。
A=GGATCGA,B=GAATTCAGTTA,C=ADHDKLJKGDST,D=ADRBKLKDUT,元素对AB的要素权重为0.8,元素对CD的要素权重为0.2。
A:GGA-TC-G--A
B:GAATTCAGTTA
则LD(A,B)=LD(7,11)=5,LCS(A,B)=6
S(A,B)=LCS(A,B)/(LD(A,B)+LCS(A,B))=5/(5+6)=54.5%
C:ADHDKLJKGDST
D:ADRBKL-K-DUT
则LD(C,D)=LD(12,10)=5,LCS(C,D)=7
S(C,D)=LCS(C,D)/(LD(C,D)+LCS(C,D))=5/(5+6)=41.7%
该组待匹配报文非核心要素的相似度:
S=∑WiSi=W(AB)*S(A,B)+W(CD)*S(C,D)
=54.5%*0.8+41.7%*0.2=51.9%
若非核心要素的前置条件域相似度小于1,则该要素对的相似度默认为0。若所计算的相似度为1,则将报文的匹配状态设置为完全匹配并生成匹配明细文件。若所计算的相似度小于1但大于设定的阈值,则将报文的匹配状态设置为部分匹配状态。若所计算的相似度小于设定的阈值,则报文匹配不成功进入匹配池中。
从上述步骤可看出,在本实施例中,所述方法通过创建报文链的方式将同一笔交易的至少一条同类型的报文链接起来,并将报文链中的最新报文输入匹配池中。根据匹配规则和待匹配报文的索引列索引出至少两个具有相同索引列的待匹配报文。根据报文域对应的匹配规则对待匹配报文进行配对并根据匹配结果修改报文的匹配状态。所述方法为机构设置匹配池以降低机构间的交叉影响,在报文中设置索引列缩小查询范围以提高报文匹配速度。并且,所述方法支持多种数据类型的匹配、多种匹配模式和匹配算法,使得系统更具灵活性。
图2是本实施例的报文匹配方法中索引待匹配报文的流程图。如图2所示,在步骤S210,接收报文并判断报文的有效性。具体地,报文所属机构在报文头中的唯一标识合法并且在系统中找到对应的唯一标识BIC,判断该报文为有效报文。在不同机构之间所发送的报文的信用证号码相同时,判断所述报文有效,所述信用证号码为报文的标识。在相同机构发送的报文的信用证号码相同时,判断所述报文无效。在收到的报文为技术重发的报文时,判断所述报文无效。系统不对无效报文进行处理。
在步骤S220,判断接收到的有效报文是否存在对应的报文链。所述报文链包括与相同交易相关的至少一条相同类型的报文。若不存在该有效报文对应的报文链或对应的报文链已被取消,执行步骤S250。若存在该有效报文对应的报文链,执行步骤S230。
在步骤S230,系统解绑已经匹配的报文。被解绑的对方的报文进入匹配池。
在步骤S240,该有效报文加入报文链作为最新报文。
在步骤S250,判断该有效报文的操作类型,若该有效报文为新增报文或修改报文,则进入匹配池。
在步骤S260,进行匹配预处理获取匹配规则和匹配域映射关系。匹配规则包括市场规则和自设规则。匹配域映射关系为在匹配规则中报文域之间的对应关系。
在步骤S270,根据报文的索引列在匹配池中索引获取具有相同索引列的待匹配报文。报文的索引列为交易的唯一编码和需完全匹配的核心要素域的哈希值。通过报文的索引列可缩小查询范围,提高报文匹配的速度。待匹配报文进入核心匹配流程。
在本实施例中,匹配算法对用户透明,用户可根据实际需求自设匹配阈值和匹配规则。并且通过报文中配置的索引列缩小查询范围,提高报文匹配的速度。
图3是本实施例的报文匹配方法中待匹配报文核心匹配流程图。图4是本实施例的报文匹配方法中手工匹配流程图。如图3所示,在步骤S310,对报文数据进行全半角预处理。
在步骤S320,根据匹配规则判断该组待匹配报文的核心要素是否相等。若该组待匹配报文存在互斥标识或核心要素匹配不相等执行步骤S360。若该组待匹配报文不存在互斥标识且核心要素相等,执行步骤S330。
在步骤S330,根据匹配规则判断该组待匹配报文的非核心要素是否相等。若该组待匹配报文的非核心要素相等,执行步骤S3B0。若该组待匹配报文的非核心要素不相等,执行步骤S340。
在步骤S340,计算该组待匹配报文的相似度。
一对要素的相似度计算方法为:
S(A,B)=LCS(A,B)/(LD(A,B)+LCS(A,B))
LD(A,B):计算字符串A和B之间的编辑距离。LCS(A,B):计算字符串A和B的最长公共字符的长度。
非核心要素的相似度为所有对应要素的相似度的加权和:
S=∑WiSi
Wi表示要素权重,Si表示一对要素的相似度。
例如,存在一组待匹配报文的非核心要素对AB和CD。
A=GGATCGA,B=GAATTCAGTTA,C=ADHDKLJKGDST,D=ADRBKLKDUT,元素对AB的要素权重为0.8,元素对CD的要素权重为0.2。
A:GGA-TC-G--A
B:GAATTCAGTTA
则LD(A,B)=LD(7,11)=5,LCS(A,B)=6
S(A,B)=LCS(A,B)/(LD(A,B)+LCS(A,B))=5/(5+6)=54.5%
C:ADHDKLJKGDST
D:ADRBKL-K-DUT
则LD(C,D)=LD(12,10)=5,LCS(C,D)=7
S(C,D)=LCS(C,D)/(LD(C,D)+LCS(C,D))=5/(5+6)=41.7%
该组待匹配报文非核心要素的相似度:
S=∑WiSi=W(AB)*S(A,B)+W(CD)*S(C,D)
=54.5%*0.8+41.7%*0.2=51.9%
在步骤S350,判断待匹配报文的相似度是否大于设定的阈值。若相似度小于设定的阈值,执行步骤S360。若相似度大于设定的阈值,则执行步骤S370。其中,阈值可由用户来设定。
在步骤S360,匹配失败的报文进入匹配池。
在步骤S370,判断待匹配报文是否存在被解绑的已部分匹配的报文。若存在被解绑的已部分匹配的报文,执行步骤S380。若不存在被解绑的已部分匹配的报文执行步骤S390。
在步骤S380,判断该组待匹配报文的相似度是否大于原组相似度。若不大于,则执行步骤S360。若大于,则执行步骤S390。
在步骤S390,判断该组待匹配报文的相似度是否为1。若相似度为1,则执行步骤S3B0。若相似度不为1,执行步骤S3A0。
在步骤S3A0,设置该组报文的匹配状态为部分匹配状态并记录该组报文的相似度。
在步骤S3B0,设置该组报文的匹配状态为完全匹配状态并移出匹配池,生成匹配明细文件。
在本实施例中,匹配算法对用户透明,用户可根据实际需求自设匹配阈值和匹配规则,使得交易平台更具灵活性。
在本实施例的另一种实施方式中,可对部分匹配状态的报文进行错配检验。若部分匹配状态的报文存在错配现象,则进入手动匹配流程。具体地,在报文的匹配状态被设置部分匹配之后,匹配系统进行检验,若设置为部分匹配状态的报文存在错配情况,进入手工匹配流程。若匹配系统接收到非核心要素相等的消息,将该组报文设置为完全匹配状态并移出匹配池。若匹配系统接收到非核心要素不相等的消息,提示相应错误。
图4是本实施例的报文匹配方法的匹配状态示意图。如图4所示,匹配池中未匹配成功和新增的报文的匹配状态均为待匹配状态41。根据匹配规则非核心要素和核心要素均相等时,设置该组报文的匹配状态为完全匹配状态42。根据匹配规则核心要素相等,影响结果的非核心要素的相似度为1时,设置该组报文的匹配状态为完全匹配状态42。在手动匹配流程中经过强制匹配成功的报文设置为完全匹配状态42。根据匹配规则核心要素相等,不影响结果的非核心要素的相似度小于1大于设定的阈值时,设置该组报文的匹配状态为部分匹配状态43。待匹配状态41和部分匹配状态43的报文在有效期限内未达成交易,设置该报文为失效状态。失效的交易仍旧允许保留在系统的数据库中,只供查询。完全匹配状态42和待匹配状态43的报文接解绑后更新匹配状态为待匹配状态。
图5是本实施例的实现消息匹配方法的软件模块结构示意图。如图5所示,所述系统包括WEB应用模块51、匹配管理模块52、消息代理模块53和匹配引擎模块54。WEB应用模块51用于向匹配管理模块52和匹配引擎模块54提供数据。匹配管理模块52用于选择进入匹配池的有效消息并根据消息的匹配周期进行匹配任务的调度。消息代理模块53用于接收消息并对接收到的消息进行解析以判断消息的有效性。匹配引擎模块54用于根据消息匹配规则对匹配池中的待匹配消息进行配对。WEB应用模块51包括匹配查询应用511、匹配查询服务512、匹配周期管理应用513和规则管理应用514。匹配管理模块52包括匹配周期管理服务521和匹配任务调度522。消息代理模块53包括消息接收531和消息解析532。匹配引擎模块54包括匹配服务541和规则服务542。其中,匹配查询应用511用于向匹配查询服务512提供匹配数据。匹配周期管理应用513用于向匹配周期管理服务521提供匹配周期相关的数据,例如消息的有效期限和消息匹配所用时间等。规则管理应用514用于向规则服务542提供相对应的匹配规则。消息代理模块53用于接收并解析消息以选择有效的消息提供给匹配周期管理服务521。匹配周期管理服务521用于向匹配任务调度522提供有效消息和消息匹配周期等,便于系统根据消息类型和周期调整匹配任务。匹配任务调度522将匹配任务输入匹配服务541进行消息的匹配。规则服务542用于在消息匹配过程中提供对应的匹配规则。其中,WEB应用模块51、匹配管理模块52、消息代理模块53和匹配引擎模块54之间采用REST(Representational State Transfer,表述性状态转移)接口连接。REST是一组架构约束条件和原则。可以根据这些原则设计以系统资源为中心的Web服务,包括使用不同语言编写的客户端如何通过HTTP处理和传输资源状态。REST接口用于连接系统前后台的通信。
图6是本实施例的实现报文匹配方法的硬件架构示意图。如图6所示,所述匹配引擎架构包括服务器61、匹配节点62、Oracle数据库63和Redis数据库64。服务器61用于向匹配节点发送交易的消息。匹配节点62用于判断接收到的消息的有效性,对有效消息进行消息预处理以选择进入匹配池的消息和根据匹配规则将匹配池中的待匹配消息进行配对。Redis数据库64用于存储匹配规则,在匹配引擎管理者更新匹配规则时,规则管理服务向Redis节点发出规则更新通知,所有Redis节点获得该更新。Oracle数据库63用于存储匹配过程中所产生的数据,如消息状态、消息匹配明细文件,审计数据和日志数据等;还用于存储匹配引擎运行所需的初始化数据,比如市场规则,自设规则以及计算是否部分匹配的阀值等。
交易服务器61与匹配节点62之间的接口采用轻量级的REST接口,为将来交易后系统架构的升级,如使用分布式的高性能框架,提供便携性。并且,为满足系统的高性能和高可用性,充分利用各个匹配节点的处理能力,实现负载均衡。
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。由此衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡。例如采用采用互联网和微信平台使用的软件负载均衡方案Nginx。负载均衡Nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且Nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询和权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查。
Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Oracle数据库是甲骨文公司的一款关系数据库管理系统。Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。
在本实施例的其中一个实施方式中,为满足机构大量交易确认业务需求,提供交易后集中匹配系统。
图7是本实施例的集中匹配系统示意图。如图7所示,所述集中匹配系统包括交易后处理平台72、机构71和机构72。应理解,在集中匹配系统中至少由两个机构。
机构71和机构72达成交易意向之后,向交易后处理平台72发送确认交易消息。所述确认交易消息包括需要确认的交易信息,如对手方的唯一标识BIC、交易类型、交易数额和起息日等。
在交易后处理平台72中对所有机构提交的确认交易消息进行配对处理。当一组确认交易消息的核心要素和非核心要素根据市场匹配规则完全一致时为完全匹配状态,即该笔交易得到确认。
当一组确认交易消息的核心要素根据市场匹配规则完全一致,非核心要素的相似度达到设定的阈值则为部分匹配状态,即该组确认交易消息所代表的交易需要进一步地确认。
其他的确认交易消息均为待匹配状态,即确认交易消息所代表的交易处于待确认状态。
其中,集中匹配系统中市场匹配规则中设定的阈值为系统中所有市场产品统一的一个初始化设定参数,系统上线后不可修改。也即系统集中匹配界面与消息匹配界面的使用不同的阈值。
图8是本实施例的服务器的示意图。图8所示的服务器为通用数据处理装置,其包括通用的计算机硬件结构,其至少包括处理器81和存储器82。处理器81和存储器82通过总线83连接。存储器82适于存储处理器81可执行的指令或程序。处理器81可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器81通过执行存储器82所存储的指令,从而执行如上所述的本实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线83将上述多个组件连接在一起,同时将上述组件连接到显示控制器84和显示装置以及输入/输出(I/O)装置85。输入/输出(I/O)装置85可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置85通过输入/输出(I/O)控制器86与系统相连。
本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品。
本发明是参照根据本实施例的方法、装置(设备)和计算机程序产品的流程图来描述的。应理解可由计算机程序指令实现流程图中的每一流程。
这些计算机程序指令可以存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现流程图一个流程或多个流程中指定的功能。
也可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程中指定的功能的装置。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种消息匹配方法,包括:
接收消息,判断所述消息有效性,所述消息包括SWIFT报文和交易数据;
对有效消息进行消息预处理以选择所有消息链中最新的非删除类型的消息进入匹配池;
进行匹配预处理获取匹配规则和匹配域映射关系,所述匹配域映射关系为在匹配规则中消息域之间的对应关系;
对于匹配池中的所有消息,索引获取具有相同索引列的至少两个待匹配消息,所述索引列为交易的唯一编码和需完全匹配的核心要素域的哈希值;以及
根据所述匹配规则对所述至少两个待匹配消息进行配对;
其中,所述消息链包括与相同交易相关的至少一条相同类型的消息;所述匹配池为在匹配引擎中为交易机构设置的单独处理队列。
2.根据权利要求1所述的消息匹配方法,其特征在于,根据所述匹配规则对所述至少两个待匹配消息进行配对包括:
对消息数据进行全半角处理;
根据匹配规则对交易双方消息的核心要素和非核心要素进行匹配;
若交易双方消息的核心要素和非核心要素均完全一致,则将该消息的匹配状态设置为完全匹配状态并生成匹配明细文件;
若交易双方消息的核心要素完全一致,影响最终结果的非核心要素的相似度为1,则将该消息的匹配状态设置为完全匹配状态并生成匹配明细文件;
若交易双方消息的核心要素完全一致,影响最终结果的非核心要素的相似度达到设定的阈值,则将该消息的匹配状态设置为部分匹配状态。
3.根据权利要求2所述的消息匹配方法,其特征在于,通过将非核心要素字符串之间公共字符的长度除以非核心要素字符串之间的编辑距离与非核心要素字符串之间公共字符的长度的和来计算对应要素的相似度;
所述非核心要素的相似度为所有所述对应要素的相似度的加权和。
4.根据权利要求1所述的消息匹配方法,其特征在于,对有效消息进行预处理包括:
判断接收到的有效消息的操作类型;
在所述有效消息为新增消息时,新增消息链,所述有效消息进入匹配池;
在所述有效消息为修改消息时,所述有效消息进入匹配池;
在所述有效消息为删除消息时,所述有效消息不进入匹配池。
5.根据权利要求4所述的消息匹配方法,其特征在于,若无法找到所述有效消息对应的消息链或对应的消息链已被取消,且所述有效消息为修改消息时,新增消息链,所述有效消息进入匹配池;
若无法找到所述有效消息对应的消息链或对应的消息链已被取消,且所述有效消息为删除消息时,不新增消息链,所述有效消息不进入匹配池。
6.根据权利要求4所述的消息匹配方法,其特征在于,若找到所述有效消息对应的关联消息链中最新消息为待匹配状态,且所述有效消息为修改消息时,加入消息链并作为最新消息进入匹配池;
若找到所述有效消息对应的关联消息链中最新消息为待匹配状态,且所述有效消息为删除消息时,加入消息链但不进入匹配池。
7.根据权利要求4所述的消息匹配方法,其特征在于,若找到所述有效消息对应的关联消息链中最新消息是匹配状态,且所述有效消息为修改消息时,系统将匹配的消息自动解绑,所述有效消息加入消息链并和解绑的对方的消息进入匹配池;
若找到所述有效消息对应的关联消息链中最新消息是匹配状态,且所述有效消息为删除消息时,系统将匹配的消息自动解绑,所述有效消息加入消息链但不进入匹配池,解绑的对方的消息进入匹配池。
8.根据权利要求1所述的消息匹配方法,其特征在于,判断所述消息有效性包括:
在消息所属机构在消息头中的唯一标识合法,并在系统中找到对应的唯一标识时,判断所述消息有效;
在不同机构之间所发送的消息的信用证号码相同时,判断所述消息有效;
在相同机构发送的消息的信用证号码相同时,判断所述消息无效;
在收到的消息为技术重发的消息时,判断所述消息无效。
9.根据权利要求4所述的消息匹配方法,其特征在于,若交易的修改消息先于新增消息到达系统,则系统将该修改消息作为该交易的第一条消息增加一个消息链;该笔交易的新增消息到达系统后,独立增加一个消息链。
10.根据权利要求1或2所述的消息匹配方法,其特征在于,根据所述匹配规则对所述至少两个待匹配消息进行配对还包括:
在检测到设置为部分匹配状态的消息错配时,进入手工匹配界面。
11.一种服务器,包括:
至少一个处理器;
存储器,用于存储所述处理器可执行的指令;
所述处理器被配置为执行如权利要求1-10中任一项所述的方法。
12.一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710969697.7A CN107635012B (zh) | 2017-10-18 | 2017-10-18 | 一种消息匹配方法、服务器和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710969697.7A CN107635012B (zh) | 2017-10-18 | 2017-10-18 | 一种消息匹配方法、服务器和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107635012A true CN107635012A (zh) | 2018-01-26 |
CN107635012B CN107635012B (zh) | 2020-05-08 |
Family
ID=61104458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710969697.7A Active CN107635012B (zh) | 2017-10-18 | 2017-10-18 | 一种消息匹配方法、服务器和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107635012B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669737A (zh) * | 2018-12-19 | 2019-04-23 | 百度在线网络技术(北京)有限公司 | 应用处理方法、装置、设备和介质 |
CN111402057A (zh) * | 2020-03-31 | 2020-07-10 | 中国工商银行股份有限公司 | 交易报文匹配方法、装置、计算设备以及介质 |
CN112035530A (zh) * | 2020-09-17 | 2020-12-04 | 中国银行股份有限公司 | 一种分布式实时支付系统中的交易报文匹配方法及系统 |
CN113901264A (zh) * | 2021-11-12 | 2022-01-07 | 央视频融媒体发展有限公司 | 一种影视类属性数据源间的周期性实体匹配方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101484924A (zh) * | 2004-06-09 | 2009-07-15 | 美国银行股份有限公司 | 自动化交易处理系统和方法 |
CN101854298A (zh) * | 2010-05-19 | 2010-10-06 | 中国农业银行股份有限公司 | 报文的自动链接方法、账务修正方法及系统 |
CN103345480A (zh) * | 2013-06-19 | 2013-10-09 | 西北工业大学 | 一种基于规则合并的数据流预测方法 |
US20150228021A1 (en) * | 2008-10-21 | 2015-08-13 | The Nasdaq Omx Group, Inc. | Calculating adjusted transaction matching parameter of a data item based on a determined variability of a transaction matching parameter for the data item |
CN106779629A (zh) * | 2016-11-11 | 2017-05-31 | 广州普惠创新金融信息服务有限公司 | 一种基于分类交易系统的卖方子系统的安全交割方法、装置和系统 |
-
2017
- 2017-10-18 CN CN201710969697.7A patent/CN107635012B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101484924A (zh) * | 2004-06-09 | 2009-07-15 | 美国银行股份有限公司 | 自动化交易处理系统和方法 |
US20150228021A1 (en) * | 2008-10-21 | 2015-08-13 | The Nasdaq Omx Group, Inc. | Calculating adjusted transaction matching parameter of a data item based on a determined variability of a transaction matching parameter for the data item |
CN101854298A (zh) * | 2010-05-19 | 2010-10-06 | 中国农业银行股份有限公司 | 报文的自动链接方法、账务修正方法及系统 |
CN103345480A (zh) * | 2013-06-19 | 2013-10-09 | 西北工业大学 | 一种基于规则合并的数据流预测方法 |
CN106779629A (zh) * | 2016-11-11 | 2017-05-31 | 广州普惠创新金融信息服务有限公司 | 一种基于分类交易系统的卖方子系统的安全交割方法、装置和系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669737A (zh) * | 2018-12-19 | 2019-04-23 | 百度在线网络技术(北京)有限公司 | 应用处理方法、装置、设备和介质 |
CN109669737B (zh) * | 2018-12-19 | 2023-04-18 | 百度在线网络技术(北京)有限公司 | 应用处理方法、装置、设备和介质 |
CN111402057A (zh) * | 2020-03-31 | 2020-07-10 | 中国工商银行股份有限公司 | 交易报文匹配方法、装置、计算设备以及介质 |
CN112035530A (zh) * | 2020-09-17 | 2020-12-04 | 中国银行股份有限公司 | 一种分布式实时支付系统中的交易报文匹配方法及系统 |
CN112035530B (zh) * | 2020-09-17 | 2023-11-21 | 中国银行股份有限公司 | 一种分布式实时支付系统中的交易报文匹配方法及系统 |
CN113901264A (zh) * | 2021-11-12 | 2022-01-07 | 央视频融媒体发展有限公司 | 一种影视类属性数据源间的周期性实体匹配方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107635012B (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190205993A1 (en) | Transaction data categorizer system and method | |
US20210174440A1 (en) | Providing virtual markers based upon network connectivity | |
JP6959415B2 (ja) | 不透明ブロックチェーンを使用することによる全体清算方法及びシステム | |
US20210264516A1 (en) | Asset cards for tracking divisible assets in a distributed ledger | |
US20170206269A1 (en) | Trust scores and/or competence ratings of any entity | |
US12002017B2 (en) | Method and system for multi-account check processing via blockchain | |
CA3125137A1 (en) | Account manager virtual assistant using machine learning techniques | |
CN107635012A (zh) | 一种消息匹配方法、服务器和计算机可读存储介质 | |
US20210287303A9 (en) | Scoring trustworthiness, competence, and/or compatibility of any entity for activities including recruiting or hiring decisions, composing a team, insurance underwriting, credit decisions, or shortening or improving sales cycles | |
US20160239853A1 (en) | Method and system for providing insights to merchants based on consumer transaction history | |
CN110892431A (zh) | 用于改进交易处理和路由的方法和系统 | |
US20230116362A1 (en) | Scoring trustworthiness, competence, and/or compatibility of any entity for activities including recruiting or hiring decisions, composing a team, insurance underwriting, credit decisions, or shortening or improving sales cycles | |
WO2017044563A1 (en) | Method and system for intelligent storage and distribution of media keys for content delivery | |
AU2017229694A1 (en) | Method and system for point to point transaction processing | |
US20220358185A1 (en) | Traversing data structures for compliance | |
CN117273929A (zh) | 一种票据交易优化方法、装置、计算机设备和存储介质 | |
CN114331105A (zh) | 电子汇票的处理系统、方法、电子设备和存储介质 | |
CN115374983A (zh) | 对象风险评估方法、装置、存储介质及电子设备 | |
Chen et al. | Cortex-AI on blockchain | |
US20140012657A1 (en) | Clearinghouse for electronic coupons | |
Liu et al. | Technology and cryptocurrency valuation | |
CN102915497B (zh) | 基于互联网的安全性信息交互装置及方法 | |
US11783280B2 (en) | System and method for carrier selection | |
US20240211940A1 (en) | Systems and methods for multi-entity blockchain-based event break prevention | |
US20230127714A1 (en) | Systems and methods for consensus in a blockchain network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |