CN115086442B - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN115086442B CN115086442B CN202210976949.XA CN202210976949A CN115086442B CN 115086442 B CN115086442 B CN 115086442B CN 202210976949 A CN202210976949 A CN 202210976949A CN 115086442 B CN115086442 B CN 115086442B
- Authority
- CN
- China
- Prior art keywords
- field
- template
- updated
- local
- determining
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本申请提供数据处理方法及装置,其中所述数据处理方法包括:接收待更新业务报文,其中,所述待更新业务报文携带有字段存在位图;基于所述字段存在位图在本地报文模板中确定待更新字段;根据所述待更新字段在所述待更新业务报文中筛选出待更新业务数据;根据待更新业务数据和所述待更新字段更新本地业务数据。本申请提供的方法,通过解析PMAP来确定哪些字段是需要进行更新的字段,打破了上下游服务间协议字段模板的强一致性约束,为应用系统的运维部署提供了滚动升级能力。
Description
技术领域
本申请涉及计算机技术领域,特别涉及数据处理方法。本申请同时涉及数据处理装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
在实际应用中,应用系统的实现通常由上下游业务实现,而上下游业务需要部署到不同的服务节点中,为了保证上下游业务之间能顺利沟通,需要在上下游业务的服务节点之间遵循相同的通信协议,常用的如Fast协议,Fast协议是一种二进制数据编码协议,运用模板文件,每次传输报文中无需发送字段描述信息,可以降低带宽占用。
在通过同一通信协议进行数据传输时,上下游系统的服务节点需要依赖同一个版本的协议字段模板,在协议字段模板中规定了如何应用类型的实例,如果模板不一致会导致数据报文解码异常(如程序崩溃、解码报错、字段数据错误等问题),而应用系统需要进行功能扩展时,就时常会对现有业务报文中的字段集合进行字段扩展,按照现有协议规范要求需要对协议模板文件进行更新升级,由于上下游服务间存在模板文件的强一致性约束,导致在实际运维变更过程中,需要对统一服务集群中的上下游服务节点在同一时间点对字段模板文件进行升级,升级变更影响面大,无法对运维变更实现滚动升级。
发明内容
有鉴于此,本申请实施例提供了数据处理方法。本申请同时涉及数据处理装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的上述问题。
根据本申请实施例的第一方面,提供了一种数据处理方法,包括:
接收待更新业务报文,其中,所述待更新业务报文携带有字段存在位图;
基于所述字段存在位图在本地报文模板中确定待更新字段;
根据所述待更新字段在所述待更新业务报文中筛选出待更新业务数据;
根据待更新业务数据和所述待更新字段更新本地业务数据。
根据本申请实施例的第二方面,提供了一种数据处理装置,包括:
接收模块,被配置为接收待更新业务报文,其中,所述待更新业务报文携带有字段存在位图;
确定模块,被配置为基于所述字段存在位图在本地报文模板中确定待更新字段;
筛选模块,被配置为根据所述待更新字段在所述待更新业务报文中筛选出待更新业务数据;
更新模块,被配置为根据待更新业务数据和所述待更新字段更新本地业务数据。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述数据处理方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现所述数据处理方法的步骤。
本申请提供的数据处理方法,接收待更新业务报文,其中,所述待更新业务报文携带有字段存在位图;基于所述字段存在位图在本地报文模板中确定待更新字段;根据所述待更新字段在所述待更新业务报文中筛选出待更新业务数据;根据待更新业务数据和所述待更新字段更新本地业务数据。
本申请实施例提供的方法,针对的是二进制通信协议在原有服务接口的基础上新增可选字段的场景,通过解析报文中的字段存在位图来确定哪些字段是需要进行更新的待更新字段,从而根据待更新字段对本地业务数据进行更新,本申请提供的方法,打破了上下游服务间协议字段模板的强一致性约束,为应用系统的运维部署提供了滚动升级能力。
附图说明
图1是本申请一实施例提供的一种数据处理方法的流程图;
图2是本申请一实施例提供的PMAP记录结构示意图;
图3是本申请一实施例提供的目标字节的读取过程示意图;
图4是本申请一实施例提供的待更新业务报文中的结构示意图;
图5是本申请一实施例提供的一种应用于旧模板向新模板发送消息的数据处理方法的处理流程图;
图6是本申请一实施例提供的一种应用于新模板向旧模板发送消息的数据处理方法的处理流程图;
图7是本申请一实施例提供的一种数据处理装置的结构示意图;
图8是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
FAST协议(protocol):二进制数据编码协议,运用模板文件,每次传输报文中无需发送字段描述信息,以降低带宽占用。
FAST模板(template):文件规定了如何对应用类型的一个实例(即字节流的一部分)进行编解码。
按照FAST协议规范,应用系统采用FAST协议作为系统间的数据编码传输协议时,上下游系统需要依赖同一个版本的协议字段模板定义文件,如果模板不一致易发生数据报文解码异常(如程序崩溃、解码报错、字段数据错误等情况)。
实际业务场景中,应用系统进行功能扩展时常常需要对现有业务报文中的字段集合进行字段扩展,按现有协议规范要求必须对协议模板文件进行变更升级。由于上下游服务间存在模板文件的强一致性约束,导致在实际运维变更过程中,需要对同一服务集群中的上下游服务节点在同一时间点同步升级模板文件,升级变更影响面大,无法对运维变更实现滚动升级。
基于此,在本申请中,提供了数据处理方法,本申请同时涉及数据处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例提供的一种数据处理方法的流程图,具体包括以下步骤:
步骤102:接收待更新业务报文,其中,所述待更新业务报文携带有字段存在位图。
需要说明的是,在实际应用中,应用系统往往会通过新增一个新的业务接口或在原有业务接口中新增可选字段这两种方式来实现业务变更。新增一个新的业务接口不涉及到原数据接口报文的兼容性问题,因此在本申请中不做考虑。本申请提供的方法进针对基于二进制数据编码协议在原有接口上新增可选字段的场景。
本申请提供的数据处理方法,应用于应用系统中的任一个服务节点中,待更新业务报文具体是指由应用系统中其他服务节点基于预设的二进制数据编码协议发送到当前服务节点的数据报文。为了便于理解,在本申请的实施例中以二进制数据编码协议为FAST协议为例,在实际应用中,本申请提供的方法还可以适用于其他类似FAST协议的、采用占位符标识字段存在性以及采用未终止符来标识字段截止的同类型的二进制序列化协议。
待更新业务报文是用于交换与传输的数据单元,报文里包括了要发送的完整的数据信息,以及字段存在位图(Presence Map,PMAP)。PMAP是一组bits位,以FAST协议为例,依据FAST协议规范,当报文记录中存在可选字段时,在报文中包括字段存在位图(PMAP),PMAP由一组字节(8位整数倍)用来描述可选字段在当前记录中的占位情况,字节中的每一位对应固定顺序位置下的可选字段占位情况(如0标识不存在,1标识存在),PMAP记录每字节的最高位是截止位,剩余7位用于实际标识可选字段的存在性,所以整个PMAP记录实际能够标识的最大可选字段数为PAMP记录字节数*7。字段存在位图用于记录所述待更新业务报文中携带的待更新字段。
参见图2,图2示出了本申请一实施例提供的PAMP记录结构示意图,如图2所示,在PMAP记录中,每8位代表一个字节,每个字节中的第1位为截止位,在读取PMAP记录的过程中是从左向右读取,当截止位是0时,表明当前字节并不是最终字节,在读取完当前字节后,还需要读取下一字节;当截止位是1时,表示当前字节是最终字节,读取完该当前字节后,PMAP记录读取完毕。每个字节中除去第1个截止位的其他位中用来标识每个位数对应的可选字段是否有赋值,0表示没有赋值,1表示有赋值。例如,某个位中的赋值为1,则表明该位对应的可选字段在当前的报文中是有赋值的。具体的,每个位数对应哪个可选字段需要记录在字段描述信息中,字段描述信息记录在本地的字段模板文件中。
步骤104:基于所述字段存在位图在本地报文模板中确定待更新字段。
需要注意的是,在实际应用中,字段存在位图中记录的是待更新业务报文中的字段的赋值情况,待更新业务报文是从其他服务节点发送到当前服务节点的,其他服务节点中的报文模板与本地报文模板之间可能一致,也可能存在差异,因此,需要根据字段存在位图在本地报文模板中确定待更新字段。即待更新字段具体是指从本地报文模板中确定的需要在当前次数据更新过程中进行更新的字段。
当待更新业务报文对应的报文模板与本地报文模板一致的情况下,可以确定字段存在位图中的可选字段与本地报文模板的字段是一一对应的;当待更新业务报文对应的报文模板与本地报文模板不一致的情况下,则可以确定字段存在位图中的可选字段与本地报文模板的字段存在差异。在本申请中,由于只考虑在原有接口上新增可选字段的场景,因此,可以确定字段存在位图与本地报文模板中的字段一定存在差异。
具体的,基于所述字段存在位图在本地报文模板中确定待更新字段,包括S1042:
S1042、根据所述字段存在位图确定所述待更新业务报文的参考模板信息。
其中,参考模板信息具体是指发送待更新业务报文对应的报文模板信息,例如,服务节点1向服务节点2发送了待更新业务报文,服务节点1是根据节点1中的报文模板生成的待更新业务报文,参考模板信息为节点1中报文模板对应的模板信息。参考模板信息中可以包括模板版本号、模板可选字段总数等等。
S1044、根据所述参考模板信息和所述本地报文模板的本地模板信息确定字段筛选策略。
在获得参考模板信息之后,可以通过将参考模板信息与本地模板信息之间进行比对,确定字段筛选策略,字段筛选策略具体是指筛选待更新字段的策略,在实际应用中,会存在两种情况,第一种是参考模板为旧模板,而本地模板是新模板;第二种是参考模板为新模板,而本地模板是旧模板。而这两种情况下确定待更新字段的方式有所不同,因此需要确定各自对应的字段筛选策略。
在实际应用中,可以根据模板版本号来确定参考模板和本地模板之间谁是新模板,从而确定字段筛选策略;也可以根据模板可选字段总数来确定参考模板和本地模板之间谁是新模板,从而确定字段筛选策略。
下面将对如何确定字段筛选策略进行进一步解释说明,具体的,根据所述参考模板信息和所述本地报文模板的本地模板信息确定字段筛选策略,包括S10442-S10446:
S10442、根据所述参考模板信息和所述本地报文模板的本地模板信息确定本地模板类型。
在获得参考模板信息和本地模板信息之后,可以对这两个信息进行信息比对,从而确定本地模板类型,本地模板类型用于确定本地报文模板是新模板还是旧模板。进一步的可以根据模板版本号来确定本地报文模板是新模板还是旧模板。
在实际应用中,除了根据模板版本号来确定本地模板类型,还可以根据模板可选字段总数来进行确定,具体的,根据所述参考模板信息和所述本地报文模板的本地模板信息确定本地模板类型,包括:
根据所述参考模板信息确定参考字段数量,根据所述本地模板信息确定本地字段数量;
在所述参考字段数量小于所述本地字段数量的情况下,确定本地模板类型为新模板;
在所述参考字段数量大于所述本地字段数量的情况下,确定本地模板类型为旧模板。
其中,参考字段数量具体是指在参考模板信息中携带的模板可选字段总数,本地字段数量具体是指在本地模板信息中携带的模板可选字段总数。若参考字段数量小于本地字段数量,则说明本地报文模板中的字段有所增加,则本地报文模板的本地模板类型为新模板。若参考字段数量大于本地字段数量,则说明参考报文模板中的字段有所增加,则本地报文模板的本地模板类型为旧模板。
S10444、在所述本地模板类型为新模板的情况下,确定所述字段筛选策略为新模板筛选策略。
在确定了本地模板类型为新模板的情况下,则确定字段筛选策略为新模板筛选策略。具体的,新模板筛选策略为根据所述字段存在位图中的截止位在所述本地报文模板中确定待更新字段。
S10446、在所述本地模板类型为旧模板的情况下,确定所述字段筛选策略为旧模板筛选策略。
在确定了本地模板类型为旧模板的情况下,则确定字段筛选策略为旧模板筛选策略。具体的,旧模板筛选策略为根据所述本地报文模板的本地模板信息和所述字段存在位图确定待更新字段。
S1046、基于所述字段筛选策略和所述字段存在位图在本地报文模板中确定待更新字段。
在通过上述方法确定了字段筛选策略之后,即可基于该字段筛选策略和PMAP在本地报文模板中确定待更新字段。
具体的,所述字段筛选策略包括新模板筛选策略或旧模板筛选策略;
基于所述字段筛选策略和所述字段存在位图在本地报文模板中确定待更新字段,包括S10462-S10464:
S10462、在所述字段筛选策略为新模板筛选策略的情况下,根据所述字段存在位图中的截止位在所述本地报文模板中确定待更新字段。
下面在S10462中对新模板筛选策略做进一步解释说明,当本地报文模板为新模板的情况下,则可以根据字段存在位图中的截止位在本地报文模板中确定待更新字段。
具体的,根据所述字段存在位图中的截止位在所述本地报文模板中确定待更新字段,包括:
在所述字段存在位图中确定目标字节,其中,所述目标字节包括字节截止位信息和字段标识信息;
根据所述字节截止位信息确定所述目标字节的字节类型;
在所述字节类型为中间字节的情况下,根据所述字段标识信息确定待更新字段,并确定下一目标字节;
在所述字节类型为截止字节的情况下,根据所述字段标识信息确定待更新字段。
其中,目标字节具体是指在读取PMAP过程中,当前正在处理的字节。例如,在PMAP中有3个字节,当处理到第1个字节时,第1个字节就是目标字节;当处理到第2个字节时,第2个字节就是目标字节。每个字节中一共有8位,其中第1位为字节截止位,第2-7位为字段标识位,字节截止位标识的信息即为字节截止位信息,字段标识位标识的信息即为字段标识信息。
在确定目标字节之后,即可根据目标字节中的字节截止位信息来确定目标字节的字节类型,其中,根据所述字节截止位信息确定所述目标字节的字节类型,包括:在所述字节截止位信息为截止信息的情况下,确定所述目标字节为截止字节;在所述字节截止位信息为非截止信息的情况下,确定所述目标字节为中间字节。
具体的,字节类型分为中间字节和截止字节,其中,中间字节具体是指字节截止位信息为非截止的字节;截止字节具体是指字节截止位信息为截止的字节。当字节截止位信息为1(截止信息)的情况下,可以确定目标字节为截止字节,当字节截止位信息为0(非截止信息)的情况下,可以确定目标字节为中间字节。
若目标字节为中间字节,则根据所述字段标识信息确定待更新字段,并确定下一目标字节,并重复上述步骤;若目标字节为截止字节,则根据所述字段标识信息确定待更新字段。
参见图3,图3示出了本申请一实施例提供的目标字节的读取过程示意图。如图3所示,首先获取目标字节c,并判断目标字节中的截止位(第1位)是否为1,若截止位为1则说明该目标字节为截止字节,则设置终止标志为1,然后进行字段标识位的读取;若截止位不是1,则说明该目标字节为中间字节,则直接进行字段标识位的读取。
c & 0x01表示对目标字节c的第2位进行与操作,用于确定目标字节c中的第2位是否为1,若是,则说明该字段标识位对应的可选字段是有赋值的;若否,则判断下一位。
c & 0x02表示对目标字节c的第3位进行与操作,具体的操作流程同目标字节c中的第2位;c & 0x04表示对目标字节c的第4位进行与操作;c & 0x08表示对目标字节c的第5位进行与操作;c & 0x010表示对目标字节c的第6位进行与操作;c & 0x20表示对目标字节c的第7位进行与操作;c & 0x40表示对目标字节c的第8位进行与操作。每个位数的具体判断逻辑相同,在此就不在赘述。
在对字段标识位中的信息进行识别筛选之后,再来判断终止标识是否为1,若为1,则可以结束对PMAP的读取操作;若不为1,则偏移到下一个目标字节,并执行上述处理。
当本地报文模板为新模板的情况下,在确定了每个字段标识信息之后,即可根据字段标识信息来确定待更新字段,具体的,根据所述字段标识信息确定待更新字段,包括:
获取字段描述信息;
根据所述字段标识信息和所述字段描述信息确定待更新字段。
其中,由于本地报文模板为新模板,因此本地报文模板会包括参考报文模板中的可选字段,此时,就可以根据待更新业务报文中的信息来确定待更新字段。具体的,经过上述步骤之后,已经可以在PMAP中根据字段标识信息确定哪些字段标识对应的可选字段携带有赋值数据,但是此时还不知道每个字段标识对应具体的哪个可选字段,因此还需要获取字段描述信息,字段描述信息记录在本地的字段模板文件中。在字段描述信息中保存有每个字段标识信息对应的字段信息,例如的1个字节中的第2位对应A字段,第1个字节中的第3位对应B字段,第2个字节中的第4位对应M字段等等。
在获取字段标识信息之后,即可知道哪些字节中的哪些位的值为1,例如第1个字节中的第2位为1,第2个字节中的第4位为1,则根据上述的字段描述信息可以确定待更新字段为A字段、M字段。
以上为本地报文模板为新模板的情况下的处理方式,即老模板应用向新模板应用发送报文的场景,在此场景下,由于新模板应用程序拥有最新的字段元数据信息,且老模板应用程序的报文中不可能出现新增的可选字段数据,所以在此场景下,新模板应用程序在解析PMAP记录时,只需要考虑收到截止位的场景,新模板应用程序对PMAP进行解码时,并不依据模板文件的字段描述信息来识别待更新业务报文中的待更新字段,而是根据待更新业务报文中的截止位来动态识别。
S10464、在所述字段筛选策略为旧模板筛选策略的情况下,根据所述本地报文模板的本地模板信息和所述字段存在位图确定待更新字段。
在介绍完新模板策略之后,在S10464中对旧模板筛选策略做进一步解释说明,当本地报文模板为旧模板的情况下,根据所述本地报文模板的本地模板信息和所述字段存在位图确定待更新字段。
具体的,根据所述本地报文模板的本地模板信息和所述字段存在位图确定待更新字段,包括:
根据所述本地模板信息在所述字段存在位图中确定目标字段标识信息;
获取字段描述信息;
根据所述目标字段标识信息和所述字段描述信息确定待更新字段。
当本地报文模板为旧模板时,即新模板应用程序向老模板应用程序发送待更新业务报文,在用老模板解析待更新业务报文中的PMAP时,会发现PMAP记录中标识的可选字段数大于当前程序模板对可选字段的解析范围,老模板可统计出待更新业务报文中新增的可选字段数。
在此场景下,根据本地模板信息在PMAP中确定对应的目标字段标识信息,例如本地模板信息中共有3个字节,共计20个可选字段,而参考模板信息中有25个可选字段,本地模板无法读取到参考模板信息中多出的5个可选字段,只需在PMAP中确定出前20个字段标识信息为目标字段标识信息。
参见图4,图4示出了本申请一实施例提供的待更新业务报文中的结构示意图,如图4所示,在待更新业务报文中的PMAP中记录有字段标识信息,在PMAP中根据本地模板信息确定前4位为目标字段标识信息。从本地的字段模板文件中获取字段描述信息。并根据目标字段标识信息和字段描述信息确定待更新字段。
按照FAST协议规范,字段数据标识方法采用StopBit概念,提供过最高比特位来区分字段实体,当最高比特位为0时,下一个字节与当前字节是同一个字段实体;当最高比特位为1是,下一个字节与当前字节是不同字段实体。
例如,对数字0进行二进制处理,其可以表示为“0000 0000”,在将最高比特位标识为1,表示为“1000 0000”,其中加粗的1代表其是一个字段实体。
又例如对数字942755进行二进制转换,其表示为“1110 0110 0010 1010 0011”,每个字节可以标识8位,则可以将其转换为“00111001010001011010 0011”,其中前2个加粗的0表示后面的字节与当前字节是1个字段实体,而最后一个加粗的1标识当前字节为当前字段实体的最后一个字节。
在实际应用中,针对超出本地报文模板中可选字段范围外的可选字段,逐个字段按照基础类型字段、字符串类型字段、复杂类型字段三种类型进行拟合匹配,直至符合二进制规范的8记录解析长度与实际报文数据部分长度一致。反之则逐级回退到上个拟合分支。
步骤106:根据所述待更新字段在所述待更新业务报文中筛选出待更新业务数据。
在确定了待更新字段之后,即可根据待更新字段在待更新业务报文中筛选每个待更新字段对应的初始待更新业务数据,此时的初始待更新业务数据是二进制,每8位数字中的最高比特位是用于标识字段实体的标识信息,因此,还需要将每8位中的最高比特位剔除,再将二进制的待更新业务数据进行转换,转换为实际的待更新业务数据。
具体的,根据所述待更新字段在所述待更新业务报文中筛选出待更新业务数据,包括:
获取所述待更新业务报文的报文数据;
根据所述待更新字段在所述报文数据中确定待更新业务数据。
在实际应用中,在待更新业务报文中还携带有具体的报文数据,该报文数据具体是指需要进行更新的业务数据的二进制表示形式,根据待更新字段在报文数据中可以获取到每个待更新字段对应的二进制表示形式,再将二进制标识的数据还原成待更新业务数据。
步骤108:根据待更新业务数据和所述待更新字段更新本地业务数据。
在获得待更新业务数据之后,即可根据待更新业务数据和待更新字段对本地业务数据进行更新,实现数据的交互。
本申请提供的数据处理方法,包括接收待更新业务报文,其中,所述待更新业务报文携带有字段存在位图;基于所述字段存在位图在本地报文模板中确定待更新字段;根据所述待更新字段在所述待更新业务报文中筛选出待更新业务数据;根据待更新业务数据和所述待更新字段更新本地业务数据。
通过本方法,针对的是二进制通信协议在原有服务接口的基础上新增可选字段的场景,通过解析报文中的字段存在位图来确定哪些字段是需要进行更新的待更新字段,从而根据待更新字段对本地业务数据进行更新,本申请提供的方法,打破了上下游服务间协议字段模板的强一致性约束,为应用系统的运维部署提供了滚动升级能力。
下述结合附图5,以本申请提供的数据处理方法在旧模板应用向新模板应用发送消息的应用为例,对所述数据处理方法进行进一步说明。其中,图5示出了本申请一实施例提供的一种应用于旧模板向新模板发送消息场景的数据处理方法的处理流程图,具体包括以下步骤:
步骤502:接收待更新业务报文,其中,所述待更新业务报文携带有PMAP。
步骤504:根据PMAP确定所述待更新业务报文的参考模板版本号V1,获取本地报文模板的本地模板版本号V2。
步骤506:根据参考模板版本号V1和本地模板版本号V2确定本地模板类型为新模板。
步骤508:在PMAP中确定目标字节,其中,所述目标字节包括字节截止位信息和字段标识信息。
步骤510:根据所述字节截止位信息确定所述目标字节的字节类型。
步骤512:在所述字节类型为中间字节的情况下,根据所述字段标识信息确定待更新字段,并确定下一目标字节。
步骤514:在所述字节类型为截止字节的情况下,根据所述字段标识信息确定待更新字段。
步骤516:获取所述待更新业务报文的报文数据。
步骤518:根据所述待更新字段在所述报文数据中确定待更新业务数据。
步骤520:根据待更新业务数据和所述待更新字段更新本地业务数据。
本实施例提供的方法,应用于本地报文模板为新模板的应用场景,即老模板应用向新模板应用发送报文的场景,在此场景下,由于新模板应用程序拥有最新的字段元数据信息,且老模板应用程序的报文中不可能出现新增的可选字段数据,所以在此场景下,新模板应用程序在解析PMAP记录时,只需要考虑收到截止位的场景,新模板应用程序对PMAP进行解码时,并不依据模板文件的字段描述信息来识别待更新业务报文中的待更新字段,而是根据待更新业务报文中的截止位来动态识别。通过PMAP来识别可选字段的信息,打破了上下游服务间协议字段模板的强一致性约束,为应用系统的运维部署提供了滚动升级能力。
下述结合附图6,以本申请提供的数据处理方法在新模板应用向旧模板应用发送消息的应用为例,对所述数据处理方法进行进一步说明。其中,图6示出了本申请一实施例提供的一种应用于新模板向旧模板发送消息场景的数据处理方法的处理流程图,具体包括以下步骤:
步骤602:接收待更新业务报文,其中,所述待更新业务报文携带有PMAP。
步骤604:根据PMAP确定所述待更新业务报文的参考字段数量8,获取本地报文模板的本地字段数量5。
步骤606:根据参考字段数量8和本地字段数量5确定本地模板类型为旧模板。
步骤608:根据所述本地模板信息在PMAP中确定目标字段标识信息。
步骤610:获取字段描述信息。
步骤612:根据所述目标字段标识信息和所述字段描述信息确定待更新字段。
步骤614:获取所述待更新业务报文的报文数据。
步骤616:根据所述待更新字段在所述报文数据中确定待更新业务数据。
步骤618:根据待更新业务数据和所述待更新字段更新本地业务数据。
本实施例提供的方法,应用于本地报文模板为旧模板的应用场景,即新模板应用向老模板应用发送报文的场景,在用老模板解析待更新业务报文中的PMAP时,会发现PMAP记录中标识的可选字段数大于当前程序模板对可选字段的解析范围,老模板可统计出待更新业务报文中新增的可选字段数。通过PMAP来识别可选字段的信息,打破了上下游服务间协议字段模板的强一致性约束,为应用系统的运维部署提供了滚动升级能力。
与上述数据处理方法实施例相对应,本申请还提供了数据处理装置实施例,图7示出了本申请一实施例提供的一种数据处理装置的结构示意图。如图7所示,该装置包括:
接收模块702,被配置为接收待更新业务报文,其中,所述待更新业务报文携带有字段存在位图;
确定模块704,被配置为基于所述字段存在位图在本地报文模板中确定待更新字段;
筛选模块706,被配置为根据所述待更新字段在所述待更新业务报文中筛选出待更新业务数据;
更新模块708,被配置为根据待更新业务数据和所述待更新字段更新本地业务数据。
可选的,所述确定模块704,进一步被配置为:
根据所述字段存在位图确定所述待更新业务报文的参考模板信息;
根据所述参考模板信息和所述本地报文模板的本地模板信息确定字段筛选策略;
基于所述字段筛选策略和所述字段存在位图在本地报文模板中确定待更新字段。
可选的,所述确定模块704,进一步被配置为:
根据所述参考模板信息和所述本地报文模板的本地模板信息确定本地模板类型;
在所述本地模板类型为新模板的情况下,确定所述字段筛选策略为新模板筛选策略;
在所述本地模板类型为旧模板的情况下,确定所述字段筛选策略为旧模板筛选策略。
可选的,所述确定模块704,进一步被配置为:
根据所述参考模板信息确定参考字段数量,根据所述本地模板信息确定本地字段数量;
在所述参考字段数量小于所述本地字段数量的情况下,确定本地模板类型为新模板;
在所述参考字段数量大于所述本地字段数量的情况下,确定本地模板类型为旧模板。
可选的,所述字段筛选策略包括新模板筛选策略或旧模板筛选策略;
可选的,所述确定模块704,进一步被配置为:
在所述字段筛选策略为新模板筛选策略的情况下,根据所述字段存在位图中的截止位在所述本地报文模板中确定待更新字段;
在所述字段筛选策略为旧模板筛选策略的情况下,根据所述本地报文模板的本地模板信息和所述字段存在位图确定待更新字段。
可选的,所述确定模块704,进一步被配置为:
在所述字段存在位图中确定目标字节,其中,所述目标字节包括字节截止位信息和字段标识信息;
根据所述字节截止位信息确定所述目标字节的字节类型;
在所述字节类型为中间字节的情况下,根据所述字段标识信息确定待更新字段,并确定下一目标字节;
在所述字节类型为截止字节的情况下,根据所述字段标识信息确定待更新字段。
可选的,所述确定模块704,进一步被配置为:
在所述字节截止位信息为截止信息的情况下,确定所述目标字节为截止字节;
在所述字节截止位信息为非截止信息的情况下,确定所述目标字节为中间字节。
可选的,所述确定模块704,进一步被配置为:
获取字段描述信息;
根据所述字段标识信息和所述字段描述信息确定待更新字段。
可选的,所述确定模块704,进一步被配置为:
根据所述本地模板信息在所述字段存在位图中确定目标字段标识信息;
获取字段描述信息;
根据所述目标字段标识信息和所述字段描述信息确定待更新字段。
可选的,所述筛选模块706,进一步被配置为:
获取所述待更新业务报文的报文数据;
根据所述待更新字段在所述报文数据中确定待更新业务数据。
本申请提供的数据处理装置,包括接收待更新业务报文,其中,所述待更新业务报文携带有字段存在位图;基于所述字段存在位图在本地报文模板中确定待更新字段;根据所述待更新字段在所述待更新业务报文中筛选出待更新业务数据;根据待更新业务数据和所述待更新字段更新本地业务数据。
通过本装置,针对的是二进制通信协议在原有服务接口的基础上新增可选字段的场景,通过解析报文中的字段存在位图来确定哪些字段是需要进行更新的待更新字段,从而根据待更新字段对本地业务数据进行更新,本申请提供的装置,打破了上下游服务间协议字段模板的强一致性约束,为应用系统的运维部署提供了滚动升级能力。
上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
图8示出了根据本申请一实施例提供的一种计算设备800的结构框图。该计算设备800的部件包括但不限于存储器810和处理器820。处理器820与存储器810通过总线830相连接,数据库850用于保存数据。
计算设备800还包括接入设备840,接入设备840使得计算设备800能够经由一个或多个网络860通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备840可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备800的上述部件以及图8中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图8所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备800可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备800还可以是移动式或静止式的服务器。
其中,处理器820执行所述计算机指令时实现所述的数据处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述数据处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。
Claims (11)
1.一种数据处理方法,其特征在于,包括:
接收待更新业务报文,其中,所述待更新业务报文携带有字段存在位图;
根据所述字段存在位图确定所述待更新业务报文的参考模板信息;
根据所述参考模板信息和本地报文模板的本地模板信息确定字段筛选策略,其中,所述字段筛选策略包括新模板筛选策略或旧模板筛选策略;
在所述字段筛选策略为新模板筛选策略的情况下,根据所述字段存在位图中的截止位在所述本地报文模板中确定待更新字段;在所述字段筛选策略为旧模板筛选策略的情况下,根据所述本地报文模板的本地模板信息和所述字段存在位图确定待更新字段;
根据所述待更新字段在所述待更新业务报文中筛选出待更新业务数据;
根据待更新业务数据和所述待更新字段更新本地业务数据。
2.如权利要求1所述的方法,其特征在于,根据所述参考模板信息和本地报文模板的本地模板信息确定字段筛选策略,包括:
根据所述参考模板信息和所述本地报文模板的本地模板信息确定本地模板类型;
在所述本地模板类型为新模板的情况下,确定所述字段筛选策略为新模板筛选策略;
在所述本地模板类型为旧模板的情况下,确定所述字段筛选策略为旧模板筛选策略。
3.如权利要求2所述的方法,其特征在于,根据所述参考模板信息和所述本地报文模板的本地模板信息确定本地模板类型,包括:
根据所述参考模板信息确定参考字段数量,根据所述本地模板信息确定本地字段数量;
在所述参考字段数量小于所述本地字段数量的情况下,确定本地模板类型为新模板;
在所述参考字段数量大于所述本地字段数量的情况下,确定本地模板类型为旧模板。
4.如权利要求1所述的方法,其特征在于,根据所述字段存在位图中的截止位在所述本地报文模板中确定待更新字段,包括:
在所述字段存在位图中确定目标字节,其中,所述目标字节包括字节截止位信息和字段标识信息;
根据所述字节截止位信息确定所述目标字节的字节类型;
在所述字节类型为中间字节的情况下,根据所述字段标识信息确定待更新字段,并确定下一目标字节;
在所述字节类型为截止字节的情况下,根据所述字段标识信息确定待更新字段。
5.如权利要求4所述的方法,其特征在于,根据所述字节截止位信息确定所述目标字节的字节类型,包括:
在所述字节截止位信息为截止信息的情况下,确定所述目标字节为截止字节;
在所述字节截止位信息为非截止信息的情况下,确定所述目标字节为中间字节。
6.如权利要求4所述的方法,其特征在于,根据所述字段标识信息确定待更新字段,包括:
获取字段描述信息;
根据所述字段标识信息和所述字段描述信息确定待更新字段。
7.如权利要求1所述的方法,其特征在于,根据所述本地报文模板的本地模板信息和所述字段存在位图确定待更新字段,包括:
根据所述本地模板信息在所述字段存在位图中确定目标字段标识信息;
获取字段描述信息;
根据所述目标字段标识信息和所述字段描述信息确定待更新字段。
8.如权利要求1所述的方法,其特征在于,根据所述待更新字段在所述待更新业务报文中筛选出待更新业务数据,包括:
获取所述待更新业务报文的报文数据;
根据所述待更新字段在所述报文数据中确定待更新业务数据。
9.一种数据处理装置,其特征在于,包括:
接收模块,被配置为接收待更新业务报文,其中,所述待更新业务报文携带有字段存在位图;
确定模块,被配置为根据所述字段存在位图确定所述待更新业务报文的参考模板信息;根据所述参考模板信息和本地报文模板的本地模板信息确定字段筛选策略,其中,所述字段筛选策略包括新模板筛选策略或旧模板筛选策略;在所述字段筛选策略为新模板筛选策略的情况下,根据所述字段存在位图中的截止位在所述本地报文模板中确定待更新字段;在所述字段筛选策略为旧模板筛选策略的情况下,根据所述本地报文模板的本地模板信息和所述字段存在位图确定待更新字段;
筛选模块,被配置为根据所述待更新字段在所述待更新业务报文中筛选出待更新业务数据;
更新模块,被配置为根据待更新业务数据和所述待更新字段更新本地业务数据。
10.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述计算机指令时实现权利要求1-8任意一项所述方法的步骤。
11.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-8任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210976949.XA CN115086442B (zh) | 2022-08-15 | 2022-08-15 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210976949.XA CN115086442B (zh) | 2022-08-15 | 2022-08-15 | 数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115086442A CN115086442A (zh) | 2022-09-20 |
CN115086442B true CN115086442B (zh) | 2022-12-27 |
Family
ID=83244036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210976949.XA Active CN115086442B (zh) | 2022-08-15 | 2022-08-15 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115086442B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110333883A (zh) * | 2019-05-31 | 2019-10-15 | 厦门网宿有限公司 | 一种更新持久化数据的方法及装置 |
CN111984659A (zh) * | 2020-07-28 | 2020-11-24 | 招联消费金融有限公司 | 数据更新方法、装置、计算机设备和存储介质 |
CN112346843A (zh) * | 2020-11-26 | 2021-02-09 | 上海金融期货信息技术有限公司 | 一种低延时fast协议的解析方法 |
WO2022021852A1 (zh) * | 2020-07-30 | 2022-02-03 | 浪潮(北京)电子信息产业有限公司 | 一种基于fpga的fast协议解码方法、装置及设备 |
CN114416723A (zh) * | 2021-12-15 | 2022-04-29 | 北京达佳互联信息技术有限公司 | 一种数据的处理方法、装置、设备及存储介质 |
CN114449063A (zh) * | 2022-01-17 | 2022-05-06 | 蚂蚁区块链科技(上海)有限公司 | 一种报文处理方法、装置及设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789668B (zh) * | 2016-12-12 | 2020-05-22 | 锐捷网络股份有限公司 | 一种处理报文的方法和装置 |
CN108154211B (zh) * | 2017-11-22 | 2020-08-28 | 阿里巴巴集团控股有限公司 | 二维码生成、业务处理方法、装置和设备以及二维码 |
US10909101B2 (en) * | 2019-04-19 | 2021-02-02 | Advanced New Technologies Co., Ltd. | Updating and querying a bitmap index |
CN113691486B (zh) * | 2020-05-19 | 2023-09-19 | 中移(成都)信息通信科技有限公司 | 报文修改的方法、装置、设备及存储介质 |
CN114422592A (zh) * | 2022-01-21 | 2022-04-29 | 深圳壹账通智能科技有限公司 | 报文转换方法、装置、计算机设备及计算机可读存储介质 |
-
2022
- 2022-08-15 CN CN202210976949.XA patent/CN115086442B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110333883A (zh) * | 2019-05-31 | 2019-10-15 | 厦门网宿有限公司 | 一种更新持久化数据的方法及装置 |
CN111984659A (zh) * | 2020-07-28 | 2020-11-24 | 招联消费金融有限公司 | 数据更新方法、装置、计算机设备和存储介质 |
WO2022021852A1 (zh) * | 2020-07-30 | 2022-02-03 | 浪潮(北京)电子信息产业有限公司 | 一种基于fpga的fast协议解码方法、装置及设备 |
CN112346843A (zh) * | 2020-11-26 | 2021-02-09 | 上海金融期货信息技术有限公司 | 一种低延时fast协议的解析方法 |
CN114416723A (zh) * | 2021-12-15 | 2022-04-29 | 北京达佳互联信息技术有限公司 | 一种数据的处理方法、装置、设备及存储介质 |
CN114449063A (zh) * | 2022-01-17 | 2022-05-06 | 蚂蚁区块链科技(上海)有限公司 | 一种报文处理方法、装置及设备 |
Non-Patent Citations (1)
Title |
---|
通用变长协议数据描述及解析方法研究;张志祥等;《舰船电子工程》;20150531(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115086442A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1214562C (zh) | 处理数据分组的方法 | |
CN112165331A (zh) | 数据压缩方法及其装置、数据解压方法及其装置、存储介质及电子设备 | |
KR20060090050A (ko) | 멀티미디어 메시지 전송 방법 및 시스템 | |
CN114666212A (zh) | 配置数据下发方法 | |
JP4800310B2 (ja) | リンクを伴うクライアントプロビジョニング | |
CN115086442B (zh) | 数据处理方法及装置 | |
CN110532081B (zh) | 一种定时任务处理方法及装置 | |
CN114579571A (zh) | 数据处理方法及装置 | |
US7908399B2 (en) | Compression of repeated patterns in full bandwidth channels over a packet network | |
CN108880559B (zh) | 数据压缩方法、数据解压缩方法、压缩设备及解压缩设备 | |
EP2566292A1 (en) | Method, system and mobile terminal for configuring access point and application information | |
CN1475047A (zh) | 使用请求-应答通信模式用于数据压缩的通信系统和方法 | |
CN115525260A (zh) | 一种基于protobuf的代码生成方法和装置 | |
CN111723007B (zh) | 一种测试用例的合并方法、系统、设备以及介质 | |
CN110545107A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN111126003A (zh) | 话单数据处理方法及装置 | |
CN113099271A (zh) | 视频辅助信息的编码、解码方法及电子设备 | |
CN112417843A (zh) | 一种IDcode标识解析系统及其实现方法 | |
CN112749139B (zh) | 日志文件处理方法、电子设备及存储介质 | |
EP1605595A1 (en) | Method for compressing a short message | |
CN113115337B (zh) | 一种基于mimo的5g多模终端传输控制方法及装置 | |
CN114650445B (zh) | 一种tlv数据包的过滤方法、存储介质及终端设备 | |
CN114285884A (zh) | 网关设备连接方法、网关设备管理方法、装置及存储介质 | |
CN112533158A (zh) | 一种WiFi模组通用化的方法及WiFi模组 | |
CN116931997A (zh) | 参数处理方法及装置 |
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 |