CN111866171B - 报文处理方法、装置、电子设备和介质 - Google Patents
报文处理方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN111866171B CN111866171B CN202010754721.7A CN202010754721A CN111866171B CN 111866171 B CN111866171 B CN 111866171B CN 202010754721 A CN202010754721 A CN 202010754721A CN 111866171 B CN111866171 B CN 111866171B
- Authority
- CN
- China
- Prior art keywords
- transaction
- processing
- sub
- messages
- real
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种报文处理方法,包括:响应于交易***发送的交易处理请求,接收交易请求报文。分离交易请求报文,以获得a条实时事务子报文和b条准实时事务子报文,其中,a、b为大于等于1的整数。以同步处理方式处理a条实时事务子报文。以异步处理方式处理b条准实时事务子报文。另外,本公开还提供了一种报文处理装置,电子设备以及计算机可读存储介质。本公开提供的方法和装置例如可以应用于金融领域或其他领域的报文处理技术中。
Description
技术领域
本公开涉及网络技术领域,特别是涉及一种报文处理方法、装置、电子设备和介质。
背景技术
目前全球大部分银行的核心***仍然采用IBM大型机***或小型机***,随着网络技术的快速发展,同时为了适应银行的核心***随着银行日益剧增的各项业务对性能容量需求的弹性调整,一些银行已经开始尝试将其核心***逐步向以用户作为接受的服务对象的云进行迁移。例如,服务器集群构成的IaaS(Infrastructure-as-a-Service,基础设施即服务)和PaaS(Platform-as-a-Service,平台即服务)。其中,IaaS提供给用户的服务是对所有计算基础设施的利用,包括处理CPU(Central Processing Unit,中央处理器)、内存、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作***和应用程序,而PaaS提供给用户的服务是把客户采用提供的开发语言和工具开发的或收购的应用程序部署到供应商的云计算基础设施上去。
由于全球性银行的各分支机构的业务目标不同,所以在很长一段时间内会出现多种***架构的异构核心***并存的局面,使得在异构核心***之间进行账务处理成为日常事务。而对于银行核心***来说,账务处理对***处理效率和事务一致性均有较高的要求,因此在技术上需要确保现有的业务一致性原则不变化,尤其在账务处理方面要保证各方***记账一致。同时部分国家、地区还对交易信息数据安全性有非常高的要求。
为了实现在银行的核心***之间账务处理事务的高效率、事务数据的强一致性以及高安全性,相关技术也提供了一些在异构银行核心***之间实现账务处理的机制。但是,相关技术提供的报文处理方法,无法满足对处理效率和事务一致性的要求。
发明内容
有鉴于此,为了实现银行各处理事务对高效率、事务数据的强一致性以及高安全性的要求,至少部分地克服相关技术提供的报文处理方法,无法满足对处理效率和事务一致性的要求的上述技术问题。本公开提供了一种报文处理方法、装置、电子设备和介质。
为实现上述目的,本公开的一个方面提供了一种报文处理方法,包括:响应于交易***发送的交易处理请求,接收交易请求报文,分离上述交易请求报文,以获得a条实时事务子报文和b条准实时事务子报文,其中,a、b为大于等于1的整数,以同步处理方式处理上述a条实时事务子报文,以及以异步处理方式处理上述b条准实时事务子报文。
根据本公开的实施例,上述分离上述交易请求报文,以获得a条实时事务子报文和b条准实时事务子报文包括:获取预先配置的分离规则,其中,上述分离规则包括n个分离指标和分别与每个分离指标对应的事务处理方式,上述事务处理方式包括同步处理方式和异步处理方式,n为大于等于1的整数,基于上述n个分离指标,分离上述交易请求报文,以分离出c条交易请求子报文,其中,c为大于1的整数,从上述c条交易请求子报文中分离出与上述同步处理方式对应的交易请求子报文,以获得上述a条实时事务子报文,以及从上述c条交易请求子报文中分离出与上述异步处理方式对应的交易请求子报文,以获得上述b条准实时事务子报文。
根据本公开的实施例,上述分离规则还包括分别与上述同步处理方式对应的子事务处理优先级,上述以同步处理方式处理a条实时事务子报文包括:针对上述交易请求报文,按照与上述同步处理方式对应的子事务处理优先级,同步处理上述a条实时事务子报文。
根据本公开的实施例,上述方法还包括:生成与上述交易请求报文对应的唯一标识,以及为上述a条实时事务子报文和上述b条准实时事务子报文分配对应的唯一标识。
根据本公开的实施例,上述方法还包括:基于上述唯一标识,获取与上述交易请求报文对应的同步处理结果以及异步处理结果,检测上述异步处理结果是否与上述同步处理结果一致,在上述异步处理结果与上述同步处理结果不一致的情况下,以及基于上述同步处理结果,修复上述异步处理结果。
根据本公开的实施例,上述交易请求报文包括m条交易请求报文,m为大于等于1的整数,上述分离交易请求报文包括:获取预设指标参数,其中,上述预设指标参数用于确定与交易请求报文对应的处理优先级,基于上述预设指标参数,确定与每条交易请求报文对应的处理优先级,以及按照上述处理优先级,分离上述每条交易请求报文。
为实现上述目的,本公开的另一个方面提供了一种报文处理装置,包括:报文接收模块,用于响应于交易***发送的交易处理请求,接收交易请求报文,报文分离模块,用于分离上述交易请求报文,以获得a条实时事务子报文和b条准实时事务子报文,其中,a、b为大于等于1的整数,同步处理模块,用于以同步处理方式处理上述a条实时事务子报文,以及异步处理模块,用于以异步处理方式处理上述b条准实时事务子报文。
根据本公开的实施例,上述报文分离模块包括:规则获取子模块,用于获取预先配置的分离规则,其中,上述分离规则包括n个分离指标和分别与每个分离指标对应的事务处理方式,上述事务处理方式包括同步处理方式和异步处理方式,n为大于等于1的整数,第一分离子模块,用于基于上述n个分离指标,分离上述交易请求报文,以分离出c条交易请求子报文,其中,c为大于1的整数,第二分离子模块,用于从上述c条交易请求子报文中分离出与上述同步处理方式对应的交易请求子报文,以获得上述a条实时事务子报文,以及第三分离子模块,用于从上述c条交易请求子报文中分离出与上述异步处理方式对应的交易请求子报文,以获得上述b条准实时事务子报文。
根据本公开的实施例,上述分离规则还包括分别与上述同步处理方式对应的子事务处理优先级,上述同步处理模块包括:同步处理子模块,用于针对上述交易请求报文,按照与上述同步处理方式对应的子事务处理优先级,同步处理上述a条实时事务子报文。
根据本公开的实施例,上述装置还包括:生成子模块,用于生成与上述交易请求报文对应的唯一标识,分配子模块,用于为上述a条实时事务子报文和上述b条准实时事务子报文分配对应的唯一标识。
根据本公开的实施例,上述装置还包括:结果获取模块,用于基于上述唯一标识,获取与上述交易请求报文对应的同步处理结果以及异步处理结果,结果检测模块,用于检测上述异步处理结果是否与上述同步处理结果一致,以及结果处理模块,用于在上述异步处理结果与上述同步处理结果不一致的情况下,基于上述同步处理结果,修复上述异步处理结果。
根据本公开的实施例,上述交易请求报文包括m条交易请求报文,m为大于等于1的整数,上述报文分离模块包括:指标获取子模块,用于获取预设指标参数,其中,上述预设指标参数用于确定与交易请求报文对应的处理优先级,优先级确定子模块,用于基于上述预设指标参数,确定与每条交易请求报文对应的处理优先级,以及分离子模块,用于按照上述处理优先级,分离上述每条交易请求报文。
为实现上述目的,本公开的另一方面提供了一种电子设备,包括:一个或多个处理器,存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的方法。
为实现上述目的,本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上所述的方法。
为实现上述目的,本公开的另一方面提供了一种计算机程序,上述计算机程序包括计算机可执行指令,上述指令在被执行时用于实现如上所述的方法。
由上可见,与现有技术相比,本公开提供的报文处理方法,解决了银行的异构核心***之间账务处理过程中关键数据一致性的问题,同时又克服了相关技术中单一使用柔性事务机制所带来的处理效率低下的技术缺陷,提出了一种报文处理方法,通过可配置化的事务分离机制和准实时的交易处理方式,支持根据事务一致性要求,将对报文处理有高实效、强一致性要求的实时事务子报文从交易报文中分离出来,以同步处理的方式进行处理,对除了实时事务子报文之外的、可异步处理的非强一致性要求的准实时事务子报文,以异步处理的方式进行处理,能够根据不同的使用场景灵活调整事务的分离规则,尽量减少柔性事务处理开销,在提升***的报文处理效率的基础上,还可以兼顾***的并发度,并因此达到实现处理事务的高效率、事务数据的强一致性以及高安全性的技术效果。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了适用于本公开实施例的可以应用报文处理方法和装置的***架构;
图2示意性示出了根据本公开实施例的报文处理方法的流程图;
图3示意性示出了根据本公开实施例的报文处理装置的框图;
图4示意性示出了根据本公开另一实施例的报文处理装置的框图;
图5示意性示出了根据本公开实施例的图4所示的报文处理装置中接入模块的工作流程图;
图6示意性示出了根据本公开实施例的图4所示的报文处理装置中核对模块的工作流程图;
图7示意性示出了根据本公开实施例的适于实现上文描述的报文处理方法的计算机可读存储介质产品的示意图;以及
图8示意性示出了根据本公开实施例的适于实现上文描述的报文处理方法的电子设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了上述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程用户身份认证装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行***使用或者结合指令执行***使用。
为了实现银行的异构核心***之间账务处理事务的高效率、事务数据的强一致性以及高安全性,相关技术也提供了一些在异构银行核心***之间实现账务处理的机制。主要包括以下几种:(1)交易方通过报文方式传递扣账指令或者入账指令,接收方按指令处理对应账务,并按会计核算要求完成头寸清算处理;如果涉及账务联动处理,接收方向下一级发送扣账指令或者入账指令,下一级接收到指令后完成对应处理。(2)采用柔性事务机制,如补偿型、两阶段型,通过事务管理机制,将原本单一的账务处理事务拆分为多个子事务步骤,并逐步完成各个子事务,只有所有子事务完成后,该笔账务处理才算成功。(3)通过区块链技术,将账本记录在各个***中,账务处理时,将指令分发到各***中,再根据区块链的可信链路判断规则,确定交易后各节点的账本数据。
但是,相关技术提供的上述处理方法,虽然能够满足事务一致性的要求,但是方法(1)和(2)没有根据账务处理的特性进行优化,使得数据处理的链路较长,导致交易处理效率和并发处理能力无法满足银行业务的处理要求,无法满足处理事务的高效率以及高安全性的要求。方法(3)虽然可以通过加密技术对账本进行加密,但是复杂的加解密处理对***开销大、效率低,而简单的加解密处理无法保障数据的安全性,也不适宜在银行核心***的账务处理中应用。
鉴于此,本公开为了克服现有异步事务处理技术在银行核心***应用过程中存在的效率不足,提供了一种可配置化的事务分离模型,实现实时事务(例如,账户余额更新)与准实时事务(例如,账务核算)相分离,结合准实时的异步处理模型,在保证关键信息强一致性的同时,有效提高***处理效率,满足处理事务的高效率以及高安全性的要求。
本公开的实施例提供了一种报文处理方法、装置、电子设备和介质。其中,报文处理方法包括报文分离阶段和报文处理阶段。在报文分离阶段,首先,响应于交易***发送的交易处理请求,接收交易请求报文。接着,分离接收到的交易请求报文,以获得a条实时事务子报文和b条准实时事务子报文,其中,a、b为大于等于1的整数。在报文处理阶段,以同步处理方式处理上述a条实时事务子报文,以异步处理方式处理上述b条准实时事务子报文。
本公开的实施例,通过可配置化的事务分离机制和准实时的交易处理方式,支持根据事务一致性要求,将对报文处理有高实效、强一致性要求的实时事务子报文从交易报文中分离出来,以同步处理的方式进行处理,对除了实时事务子报文之外的、可异步处理的非强一致性要求的准实时事务子报文,以异步处理的方式进行处理,能够根据不同的使用场景灵活调整事务的分离规则,尽量减少柔性事务处理开销,在提升***的报文处理效率的基础上,还可以兼顾***处理事务的并发度,并因此达到实现处理事务的高效率、事务数据的强一致性以及高安全性的技术效果。
需要说明的是,本公开提供的报文处理方法和装置可用于金融领域的账务处理事务中,也可用于除金融领域之外的任意领域的报文处理中,本公开提供的报文处理的方法和装置的应用领域不做限定。
图1示意性示出了适用于本公开实施例的可以应用报文处理方法和装置的***架构100。需要注意的是,图1所示仅为可以应用本公开实施例的***架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1所示,根据该实施例的***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如支付类应用、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开的实施例所提供的报文处理方法一般可以由服务器105执行。相应地,本公开的实施例所提供的报文处理装置一般可以设置于服务器105中。本公开的实施例所提供的报文处理方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开的实施例所提供的报文处理装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
图2示意性示出了根据本公开实施例的报文处理方法的流程图。
如图2所示,该报文处理方法可以包括操作S210~操作S240。
在操作S210,响应于交易***发送的交易处理请求,接收交易请求报文。
根据本公开的实施例,报该文处理方法应用于如图1中所示的服务器,负责接收交易***发送的交易处理请求,服务器作为交易处理请求的接收方,对接收到的交易处理请求进行处理,以返回交易请求的处理结果。
在操作S220,分离交易请求报文,以获得a条实时事务子报文和b条准实时事务子报文。其中,a、b为大于等于1的整数。
根据本公开的实施例,实时事务(子)报文是具有高时效性、高一致性要求的事务报文。例如,可以是用于执行账户余额更新的事务报文。相对于实时事务(子)报文,准实时事务(子)报文是非高时效性、非高一致性要求的事务报文。例如,可以是用于执行账务核算的事务报文。
具体地,对银行来说,实时事务的特点是满足业务强一致性、高时效要求,在银行的核心***中可以包含但不限于客户账户余额更新、客户交易限额累计、产品份额更新等处理步骤。准实时事务的特点是满足业务最终一致性、低时效要求,在银行的核心***中可以包含但限于内部清算账户余额更新、交易报文生成、消息通知等处理步骤,这些步骤不影响主体流程的成功与失败。
在操作S230,以同步处理方式处理a条实时事务子报文。
根据本公开的实施例,实时事务(子)报文要求交易各方的数据要保证全部提交成功或全部回滚。因此,可以采用同步处理方式,保证实时事务的强一致性。
在操作S240,以异步处理方式处理b条准实时事务子报文。
根据本公开的实施例,准实时事务子报文,可以通过多笔交易的异步、并行处理来降低***的开销,其处理结果不影响交易结果的返回,对于异步处理失败的情况,通过对账进行补充处理。因此,可以采用异步处理方式,保证准实时事务的最终一致性。在以同步处理方式处理实时事务子报文之后,可以将同步处理结果实时返回给对应的交易***。
需要说明的是,由于银行业务繁多复杂,一台服务器可能与多台交易***建立网络连接,进行数据处理任务的交互。因此,服务器接收到的交易处理请求可以是一条交易处理请求,也可以是多条交易处理请求。多条交易处理请求中的每一条交易处理请求的处理方法可以参照上述操作S210~操作S240的相关描述,此处不再赘述。
通过本公开的实施例,解决了异构核心***之间账务处理过程中关键数据一致性的问题,同时又克服了相关技术中单一使用柔性事务机制所带来的处理效率低下的技术缺陷,提出了一种报文处理方法,通过可配置化的事务分离机制和准实时的交易处理方式,支持根据事务一致性要求,将对报文处理有高实效、强一致性要求的实时事务子报文从交易报文中分离出来,以同步处理的方式进行处理,对除了实时事务子报文之外的、可异步处理的非强一致性要求的准实时事务子报文,以异步处理的方式进行处理,能够根据不同的使用场景灵活调整事务的分离规则,尽量减少柔性事务处理开销,在提升***的报文处理效率的基础上,还可以兼顾***的并发度,并因此达到实现处理事务的高效率、事务数据的强一致性以及高安全性的技术效果。
作为一种可选的实施例,前述操作S220(分离前述交易请求报文,以获得a条实时事务子报文和b条准实时事务子报文)可以包括:获取预先配置的分离规则,其中,前述分离规则包括n个分离指标和分别与每个分离指标对应的事务处理方式,前述事务处理方式包括同步处理方式和异步处理方式,n为大于等于1的整数;基于前述n个分离指标,分离前述交易请求报文,以分离出c条交易请求子报文,其中,c为大于1的整数;从前述c条交易请求子报文中分离出与前述同步处理方式对应的交易请求子报文,以获得前述a条实时事务子报文;从前述c条交易请求子报文中分离出与前述异步处理方式对应的交易请求子报文,以获得前述b条准实时事务子报文。
根据本公开的实施例,分离指标可以是账号规则、币种规则、金额规则以及交易类型规则中的一个或者多个规则,本公开对此不做限定。
作为一种可选的实施例,前述分离规则还可以包括分别与前述同步处理方式对应的子事务处理优先级,前述以同步处理方式处理前述a条实时事务子报文包括:针对前述交易请求报文,按照与前述同步处理方式对应的子事务处理优先级,同步处理前述a条实时事务子报文。
可选地,分离指标可以是账号规则。在接收到交易处理请求之后,可以捕获交易请求报文中的账号信息,并按照账号组成规则,判定该交易请求报文中的账号为客户账号还是银行内部账号。如果是客户账号,则可以按照客户账号规则分离出客户记账报文,与客户账号对应的事务处理方式为同步处理方式,即指定为实时处理事务,并为其分配处理优先级。如果是银行内部账号,则可以按照银行内部账号规则分离出银行内部记账报文,与银行内部账号对应的事务处理方式为异步处理方式,即指定为准实时处理事务。
可选地,分离指标可以是币种规则。在接收到交易处理请求之后,可以捕获交易请求报文中的币种信息:第一,比较交易双方币种的一致性,判定是否需要币种兑换处理。如果需要进行兑换处理,则可以按照币种兑换规则分离出交易额币种兑换报文,指定为实时处理事务并分配优先级。如果不需要进行兑换处理,则可以按照币种兑换规则,可以跳过此事务处理。第二,与***预设本地币种比较,判定交易双方是否为外币交易。如果是外币交易,则可以按照外币交易管理规则分离出外币交易额累计与判限报文,指定为实时处理事务并分配优先级。如果不是外币交易,则可以按照外币交易管理规则,可以跳过此事务处理。
可选地,分离指标可以是金额规则。在接收到交易处理请求之后,可以捕获交易请求报文中的交易金额信息,并按照交易金额数量,判定是否为大额交易。如果是大额交易,则可以按照金额管控规则分离出交易金额判限与登记报文,指定为实时处理事务并分配优先级。如果不是大额交易,则可以按照金额管控规则,可以跳过此事务处理。
可选地,分离指标可以是交易类型规则。在接收到交易处理请求之后,可以捕获交易请求报文中的交易类型信息,如:判定是否为现金交易。如果是现金交易,则可以按照现金管理规则分离出现金交易处理报文,指定为准实时处理事务。判定是否为票据兑付交易,如果是票据兑付交易,则可以按照票据管理规则分离出票据处理报文,指定为准实时处理事务。如果是转账交易,则按转账规则分离转账报文,指定为实时处理事务并分配优先级。
通过本公开的实施例,提供多种分离指标,使得该报文处理方法可以根据不同的业务场景灵活调整事务分离规则,灵活多变,适用场景范围广。
作为一种可选的实施例,前述方法还可以包括:生成与前述交易请求报文对应的唯一标识;为前述a条实时事务子报文和前述b条准实时事务子报文分配对应的唯一标识。
根据本公开的实施例,在接收到多个交易处理请求的情况下,为了将分离之后的各分离事务子报文,即以同步处理方式处理的实时事务子报文和以异步处理方式处理的准实时事务子报文,进行正确的组装和匹配,本公开为每一条交易处理请求生成交易ID(Identity document,唯一编码),并分配给与之匹配的实时事务子报文和准实时事务子报文。
作为一种可选的实施例,前述方法还可以包括:基于前述唯一标识,获取与前述交易请求报文对应的同步处理结果以及异步处理结果;检测前述异步处理结果是否与前述同步处理结果一致;在前述异步处理结果与前述同步处理结果不一致的情况下,基于前述同步处理结果,修复前述异步处理结果。
根据本公开的实施例,接收到同步处理结果和异步处理结果之后,以同步处理结果为准,交易ID为标识,对两者进行核对,检测两者是否一致,如果一致,则表明异步处理结果正确。如果不一致,则表明异步处理结果不正确,需要对异步处理结果进行修复。
通过本公开的实施例,依赖唯一的交易ID对与之对应的交易请求报文分离出的多个事务进行异步核对,对异常情况进行自动修复,保证业务在多个异构***间的事务最终一致性,从而满足银行核心***对数据准确性的高要求。
作为一种可选的实施例,前述交易请求报文可以包括m条交易请求报文,m为大于等于1的整数,前述分离交易请求报文包括:获取预设指标参数,其中,前述预设指标参数用于确定与交易请求报文对应的处理优先级;基于前述预设指标参数,确定与每条交易请求报文对应的处理优先级;按照前述处理优先级,分离每条交易请求报文。
为了提高服务器的事务处理效率,在服务器接收到多条交易处理请求的情况下,可以将多条交易处理请求放入等待队列,并缓存交易处理请求的报文信息。优选地,可以根据多条交易处理请求的处理优先级,将多个交易处理请求放入不同的等待队列。
根据本公开的实施例,根据预设指标参数,结合***设定的规则,可以确定每一笔交易对应的优先级。预设指标参数可以包括每个交易处理请求中的交易类型、交易响应时效以及***接收时间中的一个或者多个指标,本公开对此不做限定。
作为一种可选的实施例,可以根据交易请求报文中的交易类型、交易响应时效等指标参数,结合***设定规则,确定每一笔交易的优先级。特别地,如果根据交易类型、交易响应时效等指标参数确定的优先级相同,则可以再结合***接收时间,确定每一笔交易的优先级。
通过本公开的实施例,根据多种预设指标参数对多个交易处理请求进行优先级的确定,可以提高***的并发性,提升***处理效率。
图3示意性示出了根据本公开实施例的报文处理装置的框图。
如图3所示,该报文处理装置300可以包括报文接收模块310、报文分离模块320、同步处理模块330以及异步处理模块340。
报文接收模块310,用于例如执行前述参考图2中所述的操作S210,响应于交易***发送的交易处理请求,接收交易请求报文。
报文分离模块320,用于例如执行前述参考图2中所述的操作S220,分离前述交易请求报文,以获得a条实时事务子报文和b条准实时事务子报文,其中,a、b为大于等于1的整数。
同步处理模块330,用于例如执行前述参考图2中所述的操作S230,以同步处理方式处理前述a条实时事务子报文。
异步处理模块340,用于例如执行前述参考图2中所述的操作S240,以异步处理方式处理前述b条准实时事务子报文。
作为一种可选的实施例,前述报文分离模块320可以包括:规则获取子模块,用于获取预先配置的分离规则,其中,前述分离规则包括n个分离指标和分别与每个分离指标对应的事务处理方式,前述事务处理方式包括同步处理方式和异步处理方式,n为大于等于1的整数;第一分离子模块,用于基于前述n个分离指标,分离前述交易请求报文,以分离出c条交易请求子报文,其中,c为大于1的整数;第二分离子模块,用于从前述c条交易请求子报文中分离出与前述同步处理方式对应的交易请求子报文,以获得前述a条实时事务子报文;第三分离子模块,用于从前述c条交易请求子报文中分离出与前述异步处理方式对应的交易请求子报文,以获得前述b条准实时事务子报文。
作为一种可选的实施例,前述分离规则还包括分别与前述同步处理方式对应的子事务处理优先级,前述同步处理模块330包括:同步处理子模块,用于针对前述交易请求报文,按照与前述同步处理方式对应的子事务处理优先级,同步处理前述a条实时事务子报文。
作为一种可选的实施例,前述装置还可以包括:生成子模块,用于生成与前述交易请求报文对应的唯一标识;分配子模块,用于为前述a条实时事务子报文和前述b条准实时事务子报文分配对应的唯一标识。
作为一种可选的实施例,前述装置还可以包括:结果获取模块,用于基于前述唯一标识,获取与前述交易请求报文对应的同步处理结果以及异步处理结果;结果检测模块,用于检测前述异步处理结果是否与前述同步处理结果一致;结果处理模块,用于在前述异步处理结果与前述同步处理结果不一致的情况下,基于前述同步处理结果,修复前述异步处理结果。
作为一种可选的实施例,前述交易请求报文包括m条交易请求报文,m为大于等于1的整数,前述报文分离模块320可以包括:指标获取子模块,用于获取预设指标参数,其中,前述预设指标参数用于确定与交易请求报文对应的处理优先级;优先级确定子模块,用于基于前述预设指标参数,确定与每条交易请求报文对应的处理优先级;分离子模块,用于按照前述处理优先级,分离前述每条交易请求报文。
需要说明的是,报文处理装置部分的实施例方式与上述报文处理方法部分的实施例方式对应类似,并且所达到的技术效果也对应类似,在此不再赘述。
本公开提供的一套可配置化的事务分离和准实时的异步处理模型,可以缩短交易处理流程,从而提升***的效率与并发度。为了便于理解,下面结合图4~图6详细描述本公开的另一具体实施方式。
图4示意性示出了根据本公开另一实施例的报文处理装置的框图。
如图4所示,该报文处理装置400可以包括接入模块410、事务分离模块420、一致性更新模块430、异步合并处理模块440和核对模块450。
接入模块410作为报文处理装置400这一***模型的入口,负责接收各交易***(请求方)发送的业务处理请求。可以根据业务处理请求的优先级,将各个业务处理请求放入不同的等待队列,并缓存业务处理请求的报文信息,同时检测已经处理完毕的业务处理请求,根据处理结果返回给交易***(请求方)。较优地,可以从等待队列中获取优先级最高的业务处理请求进行处理。
事务分离模块420作为报文处理装置400这一***模型的关键模块之一,负责按用户定制的分离规则将交易请求报文中具有高时效、强一致性要求的实时事务处理步骤与其他准实时事务处理步骤相分离,将实时事务处理请求送入一致性更新模块430,将准实时事务处理请求送入异步合并处理模块440。事务分离模块420为分离后的每个事务处理步骤(实时事务处理步骤和准实时事务处理步骤)分配同一个的交易ID。
需要说明的是,事务分离模块420可以包括三个组件,分别是规则配置器、交易ID生成器和事务分离器。
规则配置器:依赖银行账务处理的关键要素进行规则配置,关键要素可以包含但不限于以下规则:账号规则、币种规则、交易金额规则以及交易类型规则。
交易ID生成器:为每一笔交易生成唯一的编号,用于将事务分离后各分离模块的组装与匹配。
事务分离器:接收来自经过规则配置器分解出的子报文,并根据规则配置器指定的实时与准实时性要求,分配到一致性更新模块和异步更新模块。由于一致性更新模块***开销较大,一般资源有限,如果***空闲的资源不足,则根据规则配置器给各子报文分配的优先级进行排序等待,各交易之间可以按照交易请求的时间先后顺序进行等待。
事务分离模块420的具体工作过程描述如下:
首先,预先按照交易类型,配置规则配置器f1(x),f2(x),f3(x),......,fn(x),可以根据交易报文中的关键要素分离出不同的处理事务。
其次,接收来自接入模块410送入的交易处理请求信息,将交易请求报文送入事务分离器,事务分离器根据交易类型从规则配置器中获取分离函数,并按一定规则从报文中解析出关键要素E(e1,e2,e3,......,en)。例如,在银行核心***场景,可以选取账号、交易类型、交易币种、交易金额等作为关键要素,从而得到分离后的事务子报文T。
T1=f1(e1,e2,e3,......,en)
T2=f2(e1,e2,e3,......,en)
......
Tc=fm(e1,e2,e3,......,en)
接着,每一笔交易事务分离成功后,交易ID生成器将通过序号发生器为生成唯一的数字编号,分配给该笔交易的各个事务子报文,并同步通知接入模块。
最后,将分离后的事务子报文按规则配置器的约定,分离出实时处理子事务Ts和准实时处理子事务Ta,将Ts事务报文送入一致性更新模块430,Ta事务报文送入异步合并处理模块440。
一致性更新模块430作为报文处理装置400这一***模型的关键模块之一,在一个***模型中可以并列存在多(q,q为大于1的整数)组一致性更新模块(一致性更新模块1,一致性更新模块2,......,一致性更新模块q),以提高***的吞吐量。接收来自事务分离模块420的实时事务处理请求,将同一交易ID的请求放入同一组一致性更新模块430中,在一组一致性更新模块430中采用补偿处理方式实现事务处理逻辑的强一致,在同一交易ID的事务处理完毕之后,将同步处理结果返回到接入模块410,并同时送入核对模块450。
异步合并处理模块440作为报文处理装置400这一***模型的关键模块之一,负责接收来自事务分离模块420的准实时事务处理请求,可以将多个交易ID的请求进行合并处理,且事务处理不依赖于交易发生的先后顺序,通过日志信息生成交易报文和非关键信息的更新。异步合并处理模块440的处理结果无须返回接入模块410,按一定的周期送入核对模块450即可。
核对模块450负责对报文处理装置400这一***的处理结果进行核对与修正。该模块接收来自一致性更新模块430和异步合并处理模块440的处理结果,并以一致性更新模块430的处理结果为准、交易ID为标识核对两者的处理结果是否一致。如果不一致,则将对异步合并处理模块440的处理结果进行修复。
图5示意性示出了根据本公开实施例的图4所示的报文处理装置中接入模块的工作流程图。
如图5所示,前述接入模块410可以包括三个组件,分别是优先级判断器510、请求等待器520以及处理结果管理器530。
优先级判断器510:接收到多个交易请求(如图所示交易请求1,交易请求2,......,交易请求m)之后,根据交易请求报文中的交易类型、交易响应时效等指标参数,结合***设定规则,确定每一笔交易的优先级。特别地,如果按照指标参数确定的优先级相同,则可以按照该交易的***接收时间来确定相应地优先级顺序。
请求等待器520:执行操作S510,检测***(指报文处理装置400)是否接受该交易处理请求。若接受,则将该交易处理请求转移至处理结果管理器530中。若不接受,则返回请求等待器520。可以按照接入模块410确定好的优先级顺序多进程并行处理,对于尚未开始处理的交易处理请求可以放入请求等待器520中。如果短时间内交易处理请求数量较多,请求等待器520的容量饱和,***可以优先取消优先级最低的等待交易处理请求,并通知交易***即请求方该交易失败。
处理结果管理器530:当交易处理请求被***接受之后,可以进入处理队列,对应交易处理请求将从请求等待器520中转移到处理结果管理器530中,将处理结果转移至事务分离模块420。同时接收来自一致性更新模块430的处理结果。处理结果管理器530具备超时管理集中,如果在预设时间内,***未完成交易处理,则可以通知请求方该交易异常,并向后续模块发送监测指令,以确认***处理结果。
需要说明的是,接入模块410是整个报文处理装置400的出入口,交易请求方在发起交易后,需要实时等待接入模块410返回的处理结果。
下面以银行异地转账为例(转出账户A属于***S1与转入账户B属于***S2),说明一致性更新模块430与异步合并处理模块440的工作机制:
首先,事务分离模块420将交易分为五个事务。其中,实时事务1:T1-账户A余额更新和转出交易限额累计;实时事务2:T2-账户B余额更新和转入交易限额累计;准实时事务3:T3-***S1内部清算账户余额更新;准实时事务4:T4-***S2内部清算账户余额更新;准实时事务5:T5-消息通知文件生成与传输。第一笔交易,假设分配的交易ID为1,可以将T1、T2送入一致性更新模块430;可以将T3、T4、T5送入异步合并处理模块440,送入的交易ID也为1。第二笔交易,假设分配的交易ID为2,可以将T1、T2送入一致性更新模块430;可以将T3、T4、T5送入异步合并处理模块440,送入的交易ID也为2。以此类推,第m笔交易,交易ID为m。
其次,假设一致性更新模块430中共有q个处理组件,将第一笔交易的T1、T2送入到第1个处理组件,第二笔交易的T1、T2送入到第2个处理组件......。以此类推,第m笔交易的T1、T2送入第m个处理组件(m>q),没有被送入处理组件的其他交易等待处理组件释放后,再送入处理组件进行处理。每个处理组件完成一笔交易的事务处理,通过柔性事务管理机制,保证每个交易的T1、T2一起成功或一起失败,并以交易ID和事务编号为索引键将处理结果发送给接入模块410和核对模块450。
接着,将m笔交易的T3、T4、T5送入到异步合并处理模块440,假设m交易都是在异步处理周期(较短时间)内完成,将这m笔交易的***S1内部清算账户余额更新、***S2内部清算账户余额更新和消息通知文件生成与传输进行合并处理,将多笔交易的输入要素转化为m维矩阵,通过统一的变换函数,转换为***业务量的变化值,并驱动数据库进行异步更新。每个事务处理均是独立的,某一个事务异常均不影响其他事务处理的成功与否。每笔交易的T3、T4、T5均可生成结果通知,以交易ID和事务编号为索引键将结果送给核对模块450。
最后,异步合并处理模块440的处理结果可以不送给接入模块410,每笔交易的处理结果均已每笔交易的T1、T2事务处理结果为准。
图6示意性示出了根据本公开实施例的图4所示的报文处理装置中核对模块的工作流程图。
如图6所示,本公开中核对模块450的作用主要是保证***数据的一致性,避免由于异步合并处理模块440中的事务未被正确处理而导致业务数据不一致。核对模块450采用消息队列方式缓存来自一致性更新模块430与异步合并处理模块440的处理结果信息。具体地,通过实时事务消息队列缓存来自一致性更新模块430的处理结果信息,通过准实时事务消息队列缓存来自异步合并处理模块440的处理结果信息。核对模块450通过事务分离规则同步模块610,将同步事务分离模块420中的规则逻辑,从对账消息报文中获取交易类型,从而匹配交易事务步骤,执行操作S610,从而按照交易ID维度核对各交易步骤是否完整。对账后,如果发现异步合并处理模块440中的事务全部或部分未处理成功,则通过差错处理模块620,从***日志中检索到对应交易信息,并进行补偿处理;如果未发现异常,则对账成功,通过对账结果入库模块630,将对应交易ID及***日志关键信息进行入库处理,以便交易请求方进行查询用于交易结果确认。
根据本公开的实施例的模块、子模块中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,报文接收模块310、报文分离模块320、同步处理模块330、异步处理模块340、规则获取子模块、第一分离子模块、第二分离子模块、第三分离子模块、同步处理子模块、生成子模块、分配子模块、结果获取子模块、结果检测子模块、结果处理模块、指标获取子模块、优先级确定子模块以及分离子模块中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,报文接收模块310、报文分离模块320、同步处理模块330、异步处理模块340、规则获取子模块、第一分离子模块、第二分离子模块、第三分离子模块、同步处理子模块、生成子模块、分配子模块、结果获取子模块、结果检测子模块、结果处理模块、指标获取子模块、优先级确定子模块以及分离子模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,报文接收模块310、报文分离模块320、同步处理模块330、异步处理模块340、规则获取子模块、第一分离子模块、第二分离子模块、第三分离子模块、同步处理子模块、生成子模块、分配子模块、结果获取子模块、结果检测子模块、结果处理模块、指标获取子模块、优先级确定子模块以及分离子模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图7示意性示出了根据本公开实施例的适于实现上文描述的报文处理方法的计算机可读存储介质产品的示意图。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在设备上运行时,程序代码用于使设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的报文处理方法中的前述各项操作(或步骤),例如,电子设备可以执行如图2中所示的操作S210,响应于交易***发送的交易处理请求,接收交易请求报文。操作S220,分离交易请求报文,以获得a条实时事务子报文和b条准实时事务子报文,其中,a、b为大于等于1的整数。操作S230,以同步处理方式处理所述a条实时事务子报文。操作S240,以异步处理方式处理所述b条准实时事务子报文。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、***或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图7所示,描述了根据本发明的实施方式的用户身份认证的程序产品70,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、***或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、***或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言-诸如Java,C++等,还包括常规的过程式程序设计语言-诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
图8示意性示出了根据本公开实施例的适于实现上文描述的报文处理方法的电子设备的框图。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,根据本公开实施例的电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的操作S210,响应于交易***发送的交易处理请求,接收交易请求报文。操作S220,分离交易请求报文,以获得a条实时事务子报文和b条准实时事务子报文,其中,a、b为大于等于1的整数。操作S230,以同步处理方式处理所述a条实时事务子报文。操作S240,以异步处理方式处理所述b条准实时事务子报文。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。***800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的报文处理方法,包括操作S210,响应于交易***发送的交易处理请求,接收交易请求报文。操作S220,分离交易请求报文,以获得a条实时事务子报文和b条准实时事务子报文,其中,a、b为大于等于1的整数。操作S230,以同步处理方式处理所述a条实时事务子报文。操作S240,以异步处理方式处理所述b条准实时事务子报文。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (14)
1.一种报文处理方法,用于银行异构核心***之间账务处理,包括:
响应于交易***发送的交易处理请求,接收交易请求报文;
分离所述交易请求报文,以获得a条实时事务子报文和b条准实时事务子报文,其中,a、b为大于等于1的整数;
以同步处理方式处理所述a条实时事务子报文;
以异步处理方式处理所述b条准实时事务子报文,其中,包括:在存在多笔交易处理请求时,将所述多笔交易处理请求的准实时事务子报文合并处理;
其中,所述合并处理不依赖于所述多笔交易处理请求发生的先后顺序,具体包括:
将所述多笔交易处理请求的准实时事务子报文的输入要素转化为多维矩阵,通过统一的变换函数,转换为***业务量的变化值,并进行异步更新。
2.根据权利要求1所述的方法,其中,所述分离所述交易请求报文,以获得a条实时事务子报文和b条准实时事务子报文包括:
获取预先配置的分离规则,其中,所述分离规则包括n个分离指标和分别与每个分离指标对应的事务处理方式,所述事务处理方式包括同步处理方式和异步处理方式,n为大于等于1的整数;
基于所述n个分离指标,分离所述交易请求报文,以分离出c条交易请求子报文,其中,c为大于1的整数;
从所述c条交易请求子报文中分离出与所述同步处理方式对应的交易请求子报文,以获得所述a条实时事务子报文;
从所述c条交易请求子报文中分离出与所述异步处理方式对应的交易请求子报文,以获得所述b条准实时事务子报文。
3.根据权利要求2所述的方法,其中,所述分离规则还包括分别与所述同步处理方式对应的子事务处理优先级,所述以同步处理方式处理所述a条实时事务子报文包括:
针对所述交易请求报文,按照与所述同步处理方式对应的子事务处理优先级,同步处理所述a条实时事务子报文。
4.根据权利要求2所述的方法,其中,所述方法还包括:
生成与所述交易请求报文对应的唯一标识;
为所述a条实时事务子报文和所述b条准实时事务子报文分配对应的唯一标识。
5.根据权利要求4所述的方法,其中,所述方法还包括:
基于所述唯一标识,获取与所述交易请求报文对应的同步处理结果以及异步处理结果;
检测所述异步处理结果是否与所述同步处理结果一致;
在所述异步处理结果与所述同步处理结果不一致的情况下,基于所述同步处理结果,修复所述异步处理结果。
6.根据权利要求1所述的方法,其中,所述交易请求报文包括m条交易请求报文,m为大于等于1的整数,所述分离所述交易请求报文包括:
获取预设指标参数,其中,所述预设指标参数用于确定与交易请求报文对应的处理优先级;
基于所述预设指标参数,确定与每条交易请求报文对应的处理优先级;
按照所述处理优先级,分离所述每条交易请求报文。
7.一种报文处理装置,用于银行异构核心***之间账务处理,包括:
报文接收模块,用于响应于交易***发送的交易处理请求,接收交易请求报文;
报文分离模块,用于分离所述交易请求报文,以获得a条实时事务子报文和b条准实时事务子报文,其中,a、b为大于等于1的整数;
同步处理模块,用于以同步处理方式处理所述a条实时事务子报文;
异步处理模块,用于以异步处理方式处理所述b条准实时事务子报文,其中,包括:在存在多笔交易处理请求时,将所述多笔交易处理请求的准实时事务子报文合并处理;
其中,所述合并处理不依赖于所述多笔交易处理请求发生的先后顺序,具体包括:
将所述多笔交易处理请求的准实时事务子报文的输入要素转化为多维矩阵,通过统一的变换函数,转换为***业务量的变化值,并进行异步更新。
8.根据权利要求7所述的装置,其中,所述分离模块包括:
规则获取子模块,用于获取预先配置的分离规则,其中,所述分离规则包括n个分离指标和分别与每个分离指标对应的事务处理方式,所述事务处理方式包括同步处理方式和异步处理方式,n为大于等于1的整数;
第一分离子模块,用于基于所述n个分离指标,分离所述交易请求报文,以分离出c条交易请求子报文,其中,c为大于1的整数;
第二分离子模块,用于从所述c条交易请求子报文中分离出与所述同步处理方式对应的交易请求子报文,以获得所述a条实时事务子报文;
第三分离子模块,用于从所述c条交易请求子报文中分离出与所述异步处理方式对应的交易请求子报文,以获得所述b条准实时事务子报文。
9.根据权利要求8所述的装置,其中,所述分离规则还包括分别与所述同步处理方式对应的子事务处理优先级,所述同步处理模块包括:
同步处理子模块,用于针对所述交易请求报文,按照与所述同步处理方式对应的子事务处理优先级,同步处理所述a条实时事务子报文。
10.根据权利要求8所述的装置,其中,所述装置还包括:
生成子模块,用于生成与所述交易请求报文对应的唯一标识;
分配子模块,用于为所述a条实时事务子报文和所述b条准实时事务子报文分配对应的唯一标识。
11.根据权利要求10所述的装置,其中,所述装置还包括:
结果获取模块,用于基于所述唯一标识,获取与所述交易请求报文对应的同步处理结果以及异步处理结果;
结果检测模块,用于检测所述异步处理结果是否与所述同步处理结果一致;
结果处理模块,用于在所述异步处理结果与所述同步处理结果不一致的情况下,基于所述同步处理结果,修复所述异步处理结果。
12.根据权利要求7所述的装置,其中,所述交易请求报文包括m条交易请求报文,m为大于等于1的整数,所述报文分离模块包括:
指标获取子模块,用于获取预设指标参数,其中,所述预设指标参数用于确定与交易请求报文对应的处理优先级;
优先级确定子模块,用于基于所述预设指标参数,确定与每条交易请求报文对应的处理优先级;
分离子模块,用于按照所述处理优先级,分离所述每条交易请求报文。
13.一种电子设备,包括:
一个或多个处理器;以及
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至6中任一项所述的方法。
14.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被处理器执行时用于实现权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010754721.7A CN111866171B (zh) | 2020-07-30 | 2020-07-30 | 报文处理方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010754721.7A CN111866171B (zh) | 2020-07-30 | 2020-07-30 | 报文处理方法、装置、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111866171A CN111866171A (zh) | 2020-10-30 |
CN111866171B true CN111866171B (zh) | 2023-08-22 |
Family
ID=72946537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010754721.7A Active CN111866171B (zh) | 2020-07-30 | 2020-07-30 | 报文处理方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111866171B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112541830A (zh) * | 2020-12-29 | 2021-03-23 | 中国工商银行股份有限公司 | 用于事务一致性的处理方法、处理装置、和处理*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407922A (zh) * | 2014-10-29 | 2015-03-11 | 中国建设银行股份有限公司 | 一种异步批处理调度方法及*** |
CN110264358A (zh) * | 2019-06-13 | 2019-09-20 | 深圳前海微众银行股份有限公司 | 一种交易处理方法及装置 |
CN110288255A (zh) * | 2019-06-28 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种分布式事务的流程保障方法及装置 |
CN110942393A (zh) * | 2019-11-11 | 2020-03-31 | 支付宝(杭州)信息技术有限公司 | 基于主子账户的交易处理方法和装置、电子设备 |
CN111179090A (zh) * | 2020-01-02 | 2020-05-19 | 中国银行股份有限公司 | 一种交易数据处理方法、装置及设备 |
CN111402057A (zh) * | 2020-03-31 | 2020-07-10 | 中国工商银行股份有限公司 | 交易报文匹配方法、装置、计算设备以及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10387881B2 (en) * | 2015-10-02 | 2019-08-20 | Chicago Mercantile Exchange Inc. | Virtual payment processing system |
-
2020
- 2020-07-30 CN CN202010754721.7A patent/CN111866171B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407922A (zh) * | 2014-10-29 | 2015-03-11 | 中国建设银行股份有限公司 | 一种异步批处理调度方法及*** |
CN110264358A (zh) * | 2019-06-13 | 2019-09-20 | 深圳前海微众银行股份有限公司 | 一种交易处理方法及装置 |
CN110288255A (zh) * | 2019-06-28 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种分布式事务的流程保障方法及装置 |
CN110942393A (zh) * | 2019-11-11 | 2020-03-31 | 支付宝(杭州)信息技术有限公司 | 基于主子账户的交易处理方法和装置、电子设备 |
CN111179090A (zh) * | 2020-01-02 | 2020-05-19 | 中国银行股份有限公司 | 一种交易数据处理方法、装置及设备 |
CN111402057A (zh) * | 2020-03-31 | 2020-07-10 | 中国工商银行股份有限公司 | 交易报文匹配方法、装置、计算设备以及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111866171A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022529967A (ja) | ブロックチェーン・ネットワークからのデータの抽出 | |
CN112291372B (zh) | 区块链的异步落账方法、装置、介质及电子设备 | |
US10673835B2 (en) | Implementing single sign-on in a transaction processing system | |
CN110413676A (zh) | 数据库的访问方法及其装置、电子设备和介质 | |
US20140089156A1 (en) | Addresses in financial systems | |
CN113094434A (zh) | 数据库同步方法、***、装置、电子设备及介质 | |
CN111800434A (zh) | 一种多渠道资产对接平台及其工作方法 | |
CN112288577B (zh) | 分布式服务的交易处理方法、装置、电子设备和介质 | |
CN112837157A (zh) | 区块链中定时智能合约的注册、执行方法、装置和*** | |
CA3059719C (en) | Payment processing method, device, medium and electronic device | |
CN110033280B (zh) | 支付防抖方法及装置 | |
CN112837154A (zh) | 区块链中定时智能合约的注册、执行方法和装置 | |
CN112184411A (zh) | 一种账户处理方法和装置 | |
CN111866171B (zh) | 报文处理方法、装置、电子设备和介质 | |
CN113191906A (zh) | 业务数据的处理方法、装置、电子设备和存储介质 | |
CN112116326A (zh) | 一种基于共享平台的公积金业务处理方法和*** | |
US20230208659A1 (en) | Blockchain apparatus and method for mobile edge computing | |
US12014226B2 (en) | Microservice platform message management system | |
CN116366353A (zh) | 基于x86平台的业务登录方法、装置、介质及平台 | |
EP4365808A1 (en) | Data verification method and apparatus | |
AU2022245375A1 (en) | Reducing transaction aborts in execute-order-validate blockchain models | |
CN115842866A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
CN110784551A (zh) | 基于多租户的数据处理方法、装置、设备和介质 | |
CN111415245A (zh) | 一种开户方法和装置 | |
US20240103939A1 (en) | System And Method for Implementing Micro-Application Environments |
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 |