CN114337920B - 编码解析方法、装置及电子设备 - Google Patents
编码解析方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114337920B CN114337920B CN202111592597.XA CN202111592597A CN114337920B CN 114337920 B CN114337920 B CN 114337920B CN 202111592597 A CN202111592597 A CN 202111592597A CN 114337920 B CN114337920 B CN 114337920B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- coding
- minimum unit
- analyzed
- 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
- 238000004458 analytical method Methods 0.000 title claims abstract description 122
- 238000000034 method Methods 0.000 claims abstract description 56
- 238000006243 chemical reaction Methods 0.000 claims abstract description 24
- 230000008569 process Effects 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims description 12
- 230000007547 defect Effects 0.000 abstract description 6
- 238000011161 development Methods 0.000 abstract description 6
- 238000007405 data analysis Methods 0.000 abstract 1
- 238000013461 design Methods 0.000 description 26
- 238000004891 communication Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 230000009466 transformation Effects 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000012827 research and development Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000000547 structure data Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供一种编码解析方法、装置及电子设备。首先获取包括待解析流数据和配置文件信息的输入流数据,待解析流数据的编码格式为可变长的嵌套结构编码格式。然后根据目标配置规则迭代转化待解析流数据,得到目标结构化数据。再通过判断目标最小单元数据是否命中缓存数据,根据判断结果得到目标结构化数据对应目标编码数据,完成编码解析过程。迭代转化可以将待解析流数据的所有嵌套结构实现结构转化,屏蔽嵌套结构,增强可扩展性。通过判断目标最小单元数据是否命中缓存数据可以得到目标结构化数据对应的目标编码数据,显著减少重复数据解析次数,提升编码解析的效率,克服现有技术开发量大且不具备普适性等缺陷。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种编码解析方法、装置及电子设备。
背景技术
随着物联网和通信技术的快速发展及普及,智能终端等硬件设备已经深入到生活中的方方面面,人们对各类终端设备的实时、快速响应等体验要求日益增高。因此,提高设备与服务器之间的通信效率至关重要。设备与服务器之间的通信采用基于规则的编码传输,进而通过解码获取传输内容。此类通信场景通常具有数据量极大、编码格式样式繁多等特点。
由于不同设备的通信编码规则和长度不同,且编码的嵌套结构也不同,因而需要进行编码解析。现有技术中针对可变长多级嵌套编码的解析方法有两种。一种是首先从读取到的流数据中找出存在依赖关系的数据,然后进行抽离以组成一个大的虚拟数据块,进而再根据数据包的有效负载长度和数据块的长度进行分组,最后将分组后的数据放入定长的数据包以发往解码器进行解析。另一种方法是在系统的数据结构设计阶段,针对具体需求而专门设置解包规则,通过传参的方式将不同的消息长度传入解码器以进行编码解析。
然而,上述两种方法均存在不同程度缺陷,例如,第一种方法尽管可以优化数据结构,但在构建虚拟数据块时会额外增加开销,进而在处理大量重复性的数据时会对性能产生影响。第二种方法需要在系统设计阶段进行针对性设计,编程方式繁琐,边际成本较高,并且不具备普适性。
发明内容
本申请提供一种编码解析方法、装置及电子设备,针对现有技术中可变长多级嵌套编码的解析方法存在效率低下、程序维护困难、可扩展性差以及普适性欠缺等缺陷,提供一种编码解析方法,以克服现有技术存在的技术缺陷。
第一方面,本申请提供一种编码解析方法,包括:
获取输入流数据,获取到的所述输入流数据包括待解析流数据和配置文件信息,所述待解析流数据的编码格式为可变长的嵌套结构编码格式;
根据目标配置规则将所述待解析流数据进行迭代转化,得到所述待解析流数据对应的目标结构化数据,所述目标配置规则根据所述配置文件信息得到;
判断目标最小单元数据是否命中缓存数据,以根据判断结果得到所述目标结构化数据对应的目标编码数据,完成编码解析过程,所述目标最小单元数据为所述嵌套结构的最小单元对应数据。
在一种可能的设计中,所述根据判断结果得到所述目标结构化数据对应的目标编码数据,包括:
若所述目标最小单元数据未命中所述缓存数据,则对所述目标结构化数据进行编码解析,得到所述目标结构化数据对应的目标编码数据;
若所述目标最小单元数据命中所述缓存数据,将命中的缓存数据确定为所述目标结构化数据对应的目标编码数据。
在一种可能的设计中,所述判断目标最小单元数据是否命中缓存数据,包括:
获取所述嵌套结构的最小单元,得到所述目标最小单元数据;
将所述目标最小单元数据与所述缓存数据进行比对,判断所述缓存数据是否为所述目标最小单元数据所指征的请求提供服务;
若是,所述目标最小单元数据命中所述缓存数据;
若否,所述目标最小单元数据未命中所述缓存数据。
在一种可能的设计中,所述编码解析方法,还包括:
根据预设内存替换算法对已完成编码解析得到的目标编码数据进行缓存,得到所述缓存数据。
在一种可能的设计中,所述根据目标配置规则将所述待解析流数据进行迭代转化,得到所述待解析流数据对应的目标结构化数据,包括:
对所述待解析流数据的编码格式进行抽象,得到抽象类;
获取所述目标配置规则,根据所述目标配置规则生成所述抽象类对应的实体类;
对所述抽象类和所述实体类进行解析得到目标标签和目标值域;
根据所述目标标签、所述目标值域、预设编码解析规范以及自底向上的遍历方式对所述抽象类和所述实体类进行实例化,以对所述嵌套结构进行迭代转化;
直到所述待解析数据的所有嵌套结构被迭代转化,得到所述目标结构化数据。
在一种可能的设计中,在获取到所述输入流数据之后,还包括:
从硬盘中加载所获取到的所述输入流数据;
对所述输入流数据的数据类型进行判断,以区分出所述待解析流数据和所述配置文件信息。
在一种可能的设计中,所述根据所述配置文件信息得到所述目标配置规则,包括:
按照预设配置规则实时解析所述配置文件信息,得到所述目标配置规则;
存储所述目标配置规则。
在一种可能的设计中,所述对所述目标结构化数据进行编码解析,得到所述目标结构化数据对应的目标编码数据,包括:
获取所述目标结构化数据,以根据所述目标标签从预设解析标准中确定出目标解析方式;
利用所述目标解析方式解析所述目标值域,得到所述目标结构化数据对应的目标编码数据,所述目标编码数据的编码格式为所述预设解析标准对应的编码格式。
第二方面,本申请提供一种编码解析装置,包括:
获取模块,用于获取输入流数据,获取到的所述输入流数据包括待解析流数据和配置文件信息,所述待解析流数据的编码格式为可变长的嵌套结构编码格式;
迭代转化模块,用于根据目标配置规则将所述待解析流数据进行迭代转化,得到所述待解析流数据对应的目标结构化数据,所述目标配置规则根据所述配置文件信息得到;
解析模块,用于判断目标最小单元数据是否命中缓存数据,以根据判断结果得到所述目标结构化数据对应的目标编码数据,完成编码解析过程,所述目标最小单元数据为所述嵌套结构的最小单元对应数据。
在一种可能的设计中,所述解析模块,具体用于:
若所述目标最小单元数据未命中所述缓存数据,则对所述目标结构化数据进行编码解析,得到所述目标结构化数据对应的目标编码数据;
若所述目标最小单元数据命中所述缓存数据,将命中的缓存数据确定为所述目标结构化数据对应的目标编码数据。
在一种可能的设计中,所述解析模块,还具体用于:
获取所述嵌套结构的最小单元,得到所述目标最小单元数据;
将所述目标最小单元数据与所述缓存数据进行比对,判断所述缓存数据是否为所述目标最小单元数据所指征的请求提供服务;
若是,所述目标最小单元数据命中所述缓存数据;
若否,所述目标最小单元数据未命中所述缓存数据。
在一种可能的设计中,所述编码解析装置,还包括:缓存模块;所述缓存模块,用于:
根据预设内存替换算法对已完成编码解析得到的目标编码数据进行缓存,得到所述缓存数据。
在一种可能的设计中,所述迭代转化模块,具体用于:
对所述待解析流数据的编码格式进行抽象,得到抽象类;
获取所述目标配置规则,根据所述目标配置规则生成所述抽象类对应的实体类;
对所述抽象类和所述实体类进行解析得到目标标签和目标值域;
根据所述目标标签、所述目标值域、预设编码解析规范以及自底向上的遍历方式对所述抽象类和所述实体类进行实例化,以对所述嵌套结构进行迭代转化;
直到所述待解析数据的所有嵌套结构被迭代转化,得到所述目标结构化数据。
在一种可能的设计中,所述获取模块,还用于:
从硬盘中加载所获取到的所述输入流数据;
对所述输入流数据的数据类型进行判断,以区分出所述待解析流数据和所述配置文件信息。
在一种可能的设计中,所述编码解析装置,还包括:配置模块;所述配置模块,用于:
按照预设配置规则实时解析所述配置文件信息,得到所述目标配置规则;
存储所述目标配置规则。
在一种可能的设计中,所述解析模块,还具体用于:
获取所述目标结构化数据,以根据所述目标标签从预设解析标准中确定出目标解析方式;
利用所述目标解析方式解析所述目标值域,得到所述目标结构化数据对应的目标编码数据,所述目标编码数据的编码格式为所述预设解析标准对应的编码格式。
第三方面,本申请提供一种电子设备,包括:处理器,以及,
与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面所提供的任意一种可能的编码解析方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所提供的任意一种可能的编码解析方法。
第五方面,本申请还提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现第一方面所提供的任意一种可能的编码解析方法。
本申请提供一种编码解析方法、装置及电子设备。首先获取输入流数据,获取到的输入流数据包括待解析流数据和配置文件信息,其中待解析流数据的编码格式为可变长的嵌套结构编码格式。然后根据目标配置规则将待解析流数据进行迭代转化,得到待解析流数据对应的目标结构化数据,而目标配置规则根据配置文件信息得到。再通过判断目标最小单元数据是否命中缓存数据,以根据判断结果得到目标结构化数据对应的目标编码数据,完成编码解析过程,其中,目标最小单元数据为嵌套结构的最小单元对应数据。由于迭代转化可以将待解析流数据的所有嵌套结构实现结构转化,屏蔽从底层嵌套结构进行解析的解析逻辑,增强可扩展性。并且维护有缓存数据,通过判断目标最小单元数据是否命中缓存数据以根据判断结果得到目标结构化数据对应的目标编码数据,减少了短时间内数据的重复处理,提升了编码解析的效率,克服了现有技术中编码解析方法开发量大且不具备普适性等缺陷。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用场景示意图;
图2为本申请实施例提供的一种编码解析方法的流程示意图;
图3为本申请实施例提供的另一种编码解析方法的流程示意图;
图4为本申请实施例提供的再一种编码解析方法的流程示意图;
图5为本申请实施例提供的一种编码解析装置的结构示意图;
图6为本申请实施例提供的另一种编码解析装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的方法和装置的例子。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解,对下文所涉及到的术语做简单说明。
可变长的嵌套结构编码:是一种编码的格式,指编码后的数据单元长度不固定,并且内部具有嵌套结构。例如TLV编码,其中T(Tag,标签),L(Length,长度)为定长数据,V(Value,值域)为变长数据,其长度由L的值确定,并且Value域有可能嵌套TLV格式的数据。
结构化数据:具有面向对象的属性的一组数据,是高级语言中的对象。
流数据:是一组顺序、大量、快速、连续到达的数据序列,一般情况下,流数据可被视为一个随时间延续而无限增长的动态数据集合。
高实时:高实时指请求和响应的间隔时间足够短,以至于在用户感官上是同时发生的。
解码:将信息从一种格式转换为另一种格式的过程。
线程:线程是操作系统能够运算调度的最小单位,是进程中一个单一顺序的控制流。一个进程中可以并发多个线程,每条线程并行执行不同的任务。
在硬件设备与服务器之间的通信场景中,由于不同设备的通信编码规则和长度不同,且编码的嵌套结构也不同,因而需要进行编码解析。而现有技术中针对可变长多级嵌套编码的解析方法存在增加了额外开销,可能在处理大量重复性数据时对性能产生影响,以及往往需要针对每个结构单独进行研发,效率低下的同时,程序维护困难,可扩展性差,不具备普适性等缺陷。
针对现有技术存在的上述问题,本申请提供一种编码解析方法、装置及电子设备。本申请提供的编码解析方法的发明构思在于:利用获取到的输入流数据中的配置文件信息得到目标配置规则,利用目标配置规则对获取到的输入流数据中的待解析流数据的编码结构进行实时配置,以完成待解析流数据至其对应的目标结构化数据的迭代转化,目标结构化数据可以提供对每个可变长编码中最小单元的访问能力,并可以屏蔽底层解析逻辑,无需针对每种嵌套结构专门设计解码算法,减少了研发工作量,降低了边际成本,增强了可扩展性。进一步地,通过判断嵌套结构的最小单元对应数据是否命中缓存数据,即目标最小单元数据是否命中缓存数据,根据判断结果得到目标结构化数据对应的目标编码数据,完成编码解析过程。其中,通过对缓存数据的维护,一旦命名,则直接从缓存数据中读取目标结构化数据对应的目标编码数据,显著减少了海量重复数据的编码解析次数,提升了编码解析效率。
以下,对本申请实施例的示例性应用场景进行介绍。
图1为本申请实施例提供的一种应用场景示意图,如图1所示,大容量的硬件设备10与服务端20之间存在高实时交互的通信场景,而由于不同硬件设备的通信编码规则和长度不同,且编码的嵌套结构也不同,因而需要进行编码解析。电子设备30则被配置为可以执行本申请实施例提供的编码解析方法,以对可变长的嵌套结构编码格式的待解析流数据进行编码解析,得到目标编码数据,提升了编码解析效率,增强了可扩展性,解决了现有技术中对于可变长的嵌套结构编码格式的编码解析方法开发量大且不具备普适性的缺点。
硬件设备10可以与服务端20之间进行高实时交互通信场景的任意智能终端,硬件设备10与服务端20之间通信采用基于规则的编码传输得以实现,通信所用编码的编码格式为可变长的嵌套结构的编码格式。本申请实施例对于硬件设备10的具体结构、作用以及可实现的功能等不作限定。服务端20可以为计算机、智能终端、服务器、服务器集群等,以用于与硬件设备10之间进行高实时交互。本申请实施例对于服务端20的具体类型不作限定,图1中的服务端20以服务器为例示出。电子设备30可以为计算机、智能终端、服务器、服务器集群等,本申请实施例对电子设备30的具体类型不作限定,图1中的电子设备30以计算机为例示出。
需要说明的是,上述应用场景仅仅是示意性的,本申请实施例提供的编码解析方法、装置及电子设备包括但不仅限于上述应用场景。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例提供的一种编码解析方法的流程示意图。如图2所示,本申请实施例包括:
S101:获取输入流数据。
其中,获取到的输入流数据包括待解析流数据和配置文件信息,待解析流数据的编码格式为可变长的嵌套结构编码格式。
利用监听单元持续监听是否有流数据流入,若有则可监听到。监听到流入的流数据即为输入流数据,从而获取到输入流数据。当硬件设备与服务端交互时,监听单元即可监听到流数据流入。
获取到的输入流数据中包括有待解析流数据以及配置文件信息,其中配置文件信息是指待解析流数据专属的配置规则的集合。
在一种可能的设计中,一旦获取到输入流数据,即在获取到输入流数据之后,便可从硬盘中加载所获取到的输入流数据,例如通过资源加载模块加载输入流数据。并对输入流数据的数据类型进行判断,以对输入流数据中的待解析流数据和配置文件信息进行区分。例如,资源加载单元加载到输入流数据后,调用空闲子线程,由空闲子线程对输入流数据的数据类型进行判断,实现待解析流数据与配置文件信息的区分,进而空闲子线程将待解析流数据和配置文件信息转发至后续相应处理模块。
可选地,配置文件信息用于获得目标配置规则。
例如,针对空闲子线程转发来的配置文件信息,按照预设配置规则实时解析配置文件信息,以将配置文件信息转化为对应的配置规则,转化得到的配置规则为目标配置规则,即为得到目标配置规则。预设配置规则根据输入流数据的具体内容确定,对此,本申请实施例不作限定。
可选地,将目标配置规则进行存储,以备后续使用。
S102:根据目标配置规则将待解析流数据进行迭代转化,得到待解析流数据对应的目标结构化数据。
其中,目标配置规则根据配置文件信息得到。
针对空闲子线程转发来的待解析流数据,利用目标配置规则对待解析流数据进行迭代转化,将编码由流数据转化为结构化数据,迭代转化后得到的结构化数据即为待解析流数据对应的目标结构化数据。
例如,待解析流数据的编码格式为可变长的嵌套编码格式,使得待解析流数据的编码为二进制的字节流,不便于程序处理,因此通过本步骤的迭代转化可以将二进制字节流转化为面向对象的结构化数据,使得所有嵌套结构被结构化,便于后续单元解析。转化后得到的结构化数据即为目标结构化数据。
根据目标配置规则对待解析流数据的迭代转化,得到目标结构化数据的过程,实质为根据目标配置规则对编码结构进行实时配置,将所有嵌套结构被结构化,提供对每个可变长的嵌套结构中的最小单元的访问能力,对后续解析过程屏蔽编码中的嵌套结构,从而无需针对每种嵌套结构专门设计解析算法,减少研发工作量,降低边际成本。
目标配置规则根据配置文件信息得到,具体实现过程可参考步骤S101的可选实施例中的详细描述,在此不再赘述。
S103:判断目标最小单元数据是否命中缓存数据,以根据判断结果得到目标结构化数据对应的目标编码数据,完成编码解析过程。
其中,目标最小单元数据为嵌套结构的最小单元对应数据。
通过迭代转化得到目结构化数据,可以对每个可变长的嵌套结构的最小单元提供访问能力,因而则可从目标结构化数据获取到嵌套结构的最小单元对应数据,即目标最小单元数据。
判断目标最小单元数据是否命中缓存数据,根据判断结果得到目标结构化数据对应的目标编码数据,前舱编码解析过程。
例如,若目标最小单元数据命中,即判断结果为命中,则将命中的缓存数据确定为目标结构化数据对应的目标编码数据。其中,缓存数据是根据预设内存替换算法对已完成编码解析得到的目标编码数据进行缓存得到的,因而,一旦目标最小单元数据命中缓存数据,则可以直接从缓存数据中读取到编码解析后所要得到的目标编码数据,在处理海量重复流数据时可以显著减少解析次数,提升解析效率。
可选地,根据预设内存替换算法对已完成编码解析得到的目标编码数据进行对缓存,得到缓存数据。预设内存替换算法用于对缓存数据进行更新和替换,实现对缓存数据的维护,提升命中率。
反之,若目标最小单元数据未命中缓存数据,即判断结果为未命中,则对目标结构化数据进行编码解析,得到目标结构化数据对应的目标编码数据,完成编码解析。其中,对目标结构化数据的编码解析可以利用预设解析标准进行,预设解析标准的具体内容由需要的编码格式决定,本申请实施例对于预设解析标准的具体内容不作限定。
在一种可能的设计中,步骤S103中判断目标最小单元数据是否命中缓存数据可能的实现方式如图3所示。图3为本申请实施例提供的另一种编码解析方法的流程示意图。如图3所示,本申请实施例包括:
S201:获取嵌套结构的最小单元,得到目标最小单元数据。
S202:将目标最小单元数据与缓存数据进行比对,判断缓存数据是否为目标最小单元对应的目标结构化数据所指征的请求提供服务。
S203a:若是,目标最小单元数据命中缓存数据。
S203b:若否,目标最小单元数据未命中缓存数据。
迭代转化得到目结构化数据,使得对每个可变长的嵌套结构的最小单元提供访问能力。因而可以从目标结构化数据中获取嵌套结构的最小单元,得到目标最小单元数据。进而将目标最小单元数据与维护的缓存数据进行比对,判断是否可以用缓存数据为目标最小单元数据所指征的请求提供相应服务,若可以,即判断结果为命中,目标最小单元数据命中缓存数据。反之,若不可以,即判断结果为未命中,目标最小单元数据未命中缓存数据。
通过上述实施例描述可知,通过判断目标最小单元数据是否命中缓存数据,根据判断结果即可得到目标结构化数据对应的目标编码数据。例如,若判断结果为命中,则可以直接从缓存数据中读取到编码解析后得到的目标编码数据。若判断结果为未命中,则进一步对目标结构化数据进行编码解析,得到目标编码数据,完成编码解析过程。
本申请实施例提供的编码解析方法,首先获取输入流数据,并对输入流数据包括的待解析流数据和配置文件信息进行区分,然后通过迭代转化将待解析流数据的所有嵌套结构实现结构转化,对每个可变长的嵌套结构的最小单元提供访问能力,从而可以屏蔽底层的解析逻辑,增强可扩展性。并且维护有缓存数据,通过判断目标最小单元数据是否命中缓存数据,以根据判断结果得到目标结构化数据对应的目标编码数据,减少了短时间内数据的重复处理,提升了编码解析的效率,克服了现有技术中编码解析方法开发量大且不具备普适性等缺陷。
在上述实施例的基础上,图4为本申请实施例提供的再一种编码解析方法的流程示意图。如图4所示,本申请实施例包括:
S301:获取输入流数据。
获取到的输入流数据包括待解析流数据和配置文件信息,待解析流数据的编码格式为可变长的嵌套结构编码格式。
步骤S301可能的实现方式、原理及效果与步骤S101可能的实现方式、原理及效果相类似,在此不再赘述。
S302a:对待解析流数据的编码格式进行抽象,得到抽象类。
例如,利用抽象实体对待解析流数据的编码格式进行抽象处理,得到对应的抽象类。
S302b:获取目标配置规则,根据目标配置规则生成抽象类对应的实体类。
获取根据配置文件信息得到的目标配置规则,通过目标配置规则生成抽象类对应的实体类。
S302c:对抽象类和实体类进行解析得到目标标签和目标值域。
其中,目标标签为待解析数据的编码中的标签,目标值域为待解析数据的编码中的值域。
获得抽象类和实体类后,对抽象类和实体类进行解析,得到待解析数据的编码中的标签和待解析数据的编码中的值域,即得到目标标签和目标值域。
S302d:根据目标标签、目标值域、预设编码解析规范以及自底向上的遍历方式对抽象类和实体类进行实例化,以对嵌套结构进行迭代转化。
S302e:直到待解析数据的所有嵌套结构被迭代转化,得到目标结构化数据。
通过目标表情、目标值域以及预设编码解析规范以及自底向上逐步遍历的方式对抽象类和实体类实例化,达到对嵌套结构迭代转化的目的。其中,迭代转化循环进行,直到待解析数据的所有嵌套结构被迭代转化,得到待解析数据对应的目标结构化数据,实现二进制字节流至面向对象的结构化数据的转化,提供对每个可变长的嵌套结构中最小单元的访问能力,以屏蔽编码中的嵌套结构。
需要说明的是,预设解析规范的具体内容根据实例化的具体要求设置,对此,本申请实施例不作限定。
S303a:获取嵌套结构的最小单元,得到目标最小单元数据。
S303b:将目标最小单元数据与缓存数据进行比对,判断缓存数据是否为目标最小单元数据所指征的请求提供服务。
S303c:若是,目标最小单元数据命中缓存数据,将命中的缓存数据确定为目标结构化数据对应的目标编码数据。
S303d:若否,目标最小单元数据未命中缓存数据。
获取嵌套结构的最小单元,得到目标最小单元数据。将目标最小单元数据与缓存数据进行比对,判断缓存数据是否可以为目标最小单元数据所指征的请求提供服务,若可以,则表示目标最小单元数据命中缓存数据,从而可以直接从缓存数据中读取命中的缓存数据,得到目标编码数据。反之,若不可以,则表示目标最小单元数据未命中缓存数据,则进一步执行步骤S304a和步骤S304b,以对目标结构数据进行编码解析,得到目标结构化数据对应的目标编码数据,完成编码解析过程。
S304a:获取目标结构化数据,以根据目标标签从预设解析标准中确定出目标解析方式。
S304b:利用目标解析方式解析目标值域,得到目标结构化数据对应的目标编码数据。
其中,目标编码数据的编码格式为预设解析标准对应的编码格式。
例如可以设置有解析单元,该解析单元根据内置的解析算法进行解码,输入为目标结构化数据,输出即为目标结构化数据对应的目标编码数据。
在一种可能的设计中,设置的解析单元可以包括有标签选择算子和值域解析算子,输入目标结构化数据,可以理解为获取目标结构化数据。标签选择算子可以根据目标结构化数据中的目标标签,判断采用何种解析方式,即根据目标标签从预设解析标准中确定出目标解析方式。进而值域解析算子则根据所确定出的目标解析方式解析目标结构化数据中的目标值域,得到目标结构化数据对应的目标解码数据,完成编码解析过程。
可选地,解析单元内置的解析算法可以包括预设解析标准,从而使得目标编码数据的编码格式为预设解析标准对应的编码格式。具体地,预设解析标准的具体内容可以根据高实时交互场景中需要的编码格式进行设置,对此,本申请实施例不作限定。
可选地,获取输入流数据的监听单元还可以监听完成编码解析过程的目标编码数据,接收并整合编码解析后的目标编码数据。
本申请实施例提供的编码解析方法,首先获取输入流数据,并对输入流数据包括的待解析流数据和配置文件信息进行区分,然后通过迭代转化将待解析流数据的所有嵌套结构实现结构转化,对每个可变长的嵌套结构的最小单元提供访问能力,从而屏蔽编码中的嵌套结构,无需针对每种嵌套结构专门设计相应编码解析算法,减少研发工作量,降低边际成本,增强可扩展性,克服了现有技术中编码解析方法开发量大且不具备普适性等缺陷。此外,维护有缓存数据,通过判断目标最小单元数据是否命中缓存数据,以根据判断结果得到目标结构化数据对应的目标编码数据,减少了短时间内数据的重复处理,提升了编码解析的效率。
图5为本申请实施例提供的一种编码解析装置的结构示意图。如图5所示,本申请实施例提供的编码解析装置400,包括:
获取模块401,用于获取输入流数据。
其中,获取到的输入流数据包括待解析流数据和配置文件信息,待解析流数据的编码格式为可变长的嵌套结构编码格式。
迭代转化模块402,用于根据目标配置规则将待解析流数据进行迭代转化,得到待解析流数据对应的目标结构化数据。
其中,目标配置规则根据配置文件信息得到。
解析模块403,用于判断目标最小单元数据是否命中缓存数据,以根据判断结果得到目标结构化数据对应的目标编码数据,完成编码解析过程。
其中,目标最小单元数据为嵌套结构的最小单元对应数据。
在一种可能的设计中,解析模块403,具体用于:
若目标最小单元数据未命中缓存数据,则对目标结构化数据进行编码解析,得到目标结构化数据对应的目标编码数据;
若目标最小单元数据命中缓存数据,将命中的缓存数据确定为目标结构化数据对应的目标编码数据。
在一种可能的设计中,解析模块403,还具体用于:
获取嵌套结构的最小单元,得到目标最小单元数据;
将目标最小单元数据与缓存数据进行比对,判断缓存数据是否为目标最小单元数据所指征的请求提供服务;
若是,目标最小单元数据命中缓存数据;
若否,目标最小单元数据未命中缓存数据。
在图5基础上,图6为本申请实施例提供的另一种编码解析装置的结构示意图。如图6所示,本申请实施例提供的编码解析装置400,还包括:缓存模块404。该缓存模块404,用于:
根据预设内存替换算法对已完成编码解析得到的目标编码数据进行缓存,得到缓存数据。
在一种可能的设计中,迭代转化模块402,具体用于:
对待解析流数据的编码格式进行抽象,得到抽象类;
获取目标配置规则,根据目标配置规则生成抽象类对应的实体类;
对抽象类和实体类进行解析得到目标标签和目标值域;
根据目标标签、目标值域、预设编码解析规范以及自底向上的遍历方式对抽象类和实体类进行实例化,以对嵌套结构进行迭代转化;
直到待解析数据的所有嵌套结构被迭代转化,得到目标结构化数据。
在一种可能的设计中,获取模块401,还用于:
从硬盘中加载所获取到的输入流数据;
对输入流数据的数据类型进行判断,以区分出待解析流数据和配置文件信息。
在一种可能的设计中,编码解析装置400,还包括:配置模块。该配置模块,用于:
按照预设配置规则实时解析配置文件信息,得到目标配置规则;
存储目标配置规则。
在一种可能的设计中,解析模块403,还具体用于:
获取目标结构化数据,以根据目标标签从预设解析标准中确定出目标解析方式;
利用目标解析方式解析目标值域,得到目标结构化数据对应的目标编码数据,目标编码数据的编码格式为预设解析标准对应的编码格式。
本申请实施例提供的编码解析装置,可以执行上述方法实施例中的编码解析方法的相应步骤,其实现原理和技术效果类似,在此不再赘述。
本申请所提供的上述各装置实施例仅仅是示意性的,其中的模块划分仅仅是一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个模块可以结合或者可以集成到另一个系统。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。
图7为本申请实施例提供的一种电子设备的结构示意图。如图7所示,该电子设备500可以包括:至少一个处理器501和存储器502。图7示出的是以一个处理器为例的电子设备。
存储器502,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机执行指令。
存储器502可能包含高速RAM存储器,也可能还包括非易失性存储器(MoM-volatile memory),例如至少一个磁盘存储器。
处理器501用于执行存储器502存储的计算机执行指令,以实现编码解析方法。
其中,处理器501可能是一个中央处理器(CeMtral ProcessiMg UMit,简称为CPU),或者是特定集成电路(ApplicatioM Specific IMtegrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
可选地,存储器502既可以是独立的,也可以跟处理器501集成在一起。当存储器502是独立于处理器501之外的器件时,电子设备500,还可以包括:
总线503,用于连接处理器501以及存储器502。总线可以是工业标准体系结构(industry standard architecture,简称为ISA)总线、外部设备互连(peripheralcomponent,PCI)总线或扩展工业标准体系结构(extended industry standardarchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器502和处理器501集成在一块芯片上实现,则存储器502和处理器501可以通过内部接口完成通信。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-OMly Memory)、随机存取存储器(RAM,RaMdomAccessMemory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有计算机执行指令,计算机执行指令用于上述实施例中编码解析方法。
本申请还提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现上述实施例中编码解析方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种编码解析方法,其特征在于,包括:
获取输入流数据,获取到的所述输入流数据包括待解析流数据和配置文件信息,所述待解析流数据的编码格式为可变长的嵌套结构编码格式;
根据目标配置规则将所述待解析流数据进行迭代转化,得到所述待解析流数据对应的目标结构化数据,所述目标配置规则根据所述配置文件信息得到;
判断目标最小单元数据是否命中缓存数据,以根据判断结果得到所述目标结构化数据对应的目标编码数据,完成编码解析过程,所述目标最小单元数据为所述嵌套结构的最小单元对应数据。
2.根据权利要求1所述的编码解析方法,其特征在于,所述根据判断结果得到所述目标结构化数据对应的目标编码数据,包括:
若所述目标最小单元数据未命中所述缓存数据,则对所述目标结构化数据进行编码解析,得到所述目标结构化数据对应的目标编码数据;
若所述目标最小单元数据命中所述缓存数据,将命中的缓存数据确定为所述目标结构化数据对应的目标编码数据。
3.根据权利要求1所述的编码解析方法,其特征在于,所述判断目标最小单元数据是否命中缓存数据,包括:
获取所述嵌套结构的最小单元,得到所述目标最小单元数据;
将所述目标最小单元数据与所述缓存数据进行比对,判断所述缓存数据是否为所述目标最小单元数据所指征的请求提供服务;
若是,所述目标最小单元数据命中所述缓存数据;
若否,所述目标最小单元数据未命中所述缓存数据。
4.根据权利要求3所述的编码解析方法,其特征在于,所述编码解析方法,还包括:
根据预设内存替换算法对已完成编码解析得到的目标编码数据进行缓存,得到所述缓存数据。
5.根据权利要求2所述的编码解析方法,其特征在于,所述根据目标配置规则将所述待解析流数据进行迭代转化,得到所述待解析流数据对应的目标结构化数据,包括:
对所述待解析流数据的编码格式进行抽象,得到抽象类;
获取所述目标配置规则,根据所述目标配置规则生成所述抽象类对应的实体类;
对所述抽象类和所述实体类进行解析得到目标标签和目标值域,所述目标标签为所述待解析流数据的编码中的标签,所述目标值域为所述待解析流数据的编码中的值域;
根据所述目标标签、所述目标值域、预设编码解析规范以及自底向上的遍历方式对所述抽象类和所述实体类进行实例化,以对所述嵌套结构进行迭代转化;
直到所述待解析流数据的所有嵌套结构被迭代转化,得到所述目标结构化数据。
6.根据权利要求5所述的编码解析方法,其特征在于,在获取到所述输入流数据之后,还包括:
从硬盘中加载所获取到的所述输入流数据;
对所述输入流数据的数据类型进行判断,以区分出所述待解析流数据和所述配置文件信息。
7.根据权利要求6所述的编码解析方法,其特征在于,所述根据所述配置文件信息得到所述目标配置规则,包括:
按照预设配置规则实时解析所述配置文件信息,得到所述目标配置规则;
存储所述目标配置规则。
8.根据权利要求5所述的编码解析方法,其特征在于,所述对所述目标结构化数据进行编码解析,得到所述目标结构化数据对应的目标编码数据,包括:
获取所述目标结构化数据,以根据所述目标标签从预设解析标准中确定出目标解析方式;
利用所述目标解析方式解析所述目标值域,得到所述目标结构化数据对应的目标编码数据,所述目标编码数据的编码格式为所述预设解析标准对应的编码格式。
9.一种编码解析装置,其特征在于,包括:
获取模块,用于获取输入流数据,获取到的所述输入流数据包括待解析流数据和配置文件信息,所述待解析流数据的编码格式为可变长的嵌套结构编码格式;
迭代转化模块,用于根据目标配置规则将所述待解析流数据进行迭代转化,得到所述待解析流数据对应的目标结构化数据,所述目标配置规则根据所述配置文件信息得到;
解析模块,用于判断目标最小单元数据是否命中缓存数据,以根据判断结果得到所述目标结构化数据对应的目标编码数据,完成编码解析过程,所述目标最小单元数据为所述嵌套结构的最小单元对应数据。
10.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至8任一项所述的编码解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111592597.XA CN114337920B (zh) | 2021-12-23 | 2021-12-23 | 编码解析方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111592597.XA CN114337920B (zh) | 2021-12-23 | 2021-12-23 | 编码解析方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114337920A CN114337920A (zh) | 2022-04-12 |
CN114337920B true CN114337920B (zh) | 2024-03-26 |
Family
ID=81053714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111592597.XA Active CN114337920B (zh) | 2021-12-23 | 2021-12-23 | 编码解析方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114337920B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115203132B (zh) * | 2022-09-15 | 2022-12-06 | 上海波客实业有限公司 | 一种用于按需求快速提取op2文件架构的设计方法 |
CN115495082B (zh) * | 2022-11-21 | 2023-03-24 | 北京天元特通科技有限公司 | Tlv格式数据自动转换方法及相关设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0505305A2 (en) * | 1991-03-22 | 1992-09-23 | International Business Machines Corporation | General data stream parser and applications interface for same |
CN110704124A (zh) * | 2019-09-19 | 2020-01-17 | 国云科技股份有限公司 | 一种流数据结构化处理系统及方法 |
CN113613004A (zh) * | 2021-09-14 | 2021-11-05 | 百果园技术(新加坡)有限公司 | 图像编码方法、装置、电子设备及存储介质 |
-
2021
- 2021-12-23 CN CN202111592597.XA patent/CN114337920B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0505305A2 (en) * | 1991-03-22 | 1992-09-23 | International Business Machines Corporation | General data stream parser and applications interface for same |
CN110704124A (zh) * | 2019-09-19 | 2020-01-17 | 国云科技股份有限公司 | 一种流数据结构化处理系统及方法 |
CN113613004A (zh) * | 2021-09-14 | 2021-11-05 | 百果园技术(新加坡)有限公司 | 图像编码方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
IEC 61850标准中MMS映射分析及其编码/解码模块的设计;丁力;王晓茹;王林;;电力系统保护与控制(12);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114337920A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114337920B (zh) | 编码解析方法、装置及电子设备 | |
CN108628947B (zh) | 一种业务规则匹配处理方法、装置及处理设备 | |
CN112085166B (zh) | 一种卷积神经网络模型加速训练方法、装置、电子设备及存储介质 | |
US11470327B2 (en) | Scene aware video content encoding | |
CN114760369A (zh) | 一种协议元数据提取方法、装置、设备及存储介质 | |
CN116016628A (zh) | 一种api网关埋点分析方法及装置 | |
CN115774552A (zh) | 配置化的算法设计方法、装置、电子设备及可读存储介质 | |
CN111970539A (zh) | 基于深度学习和云计算服务的数据编码方法及大数据平台 | |
US8321846B2 (en) | Executable template | |
Hou et al. | RVTensor: a light-weight neural network inference framework based on the RISC-V architecture | |
Rangan et al. | Zeroploit: Exploiting zero valued operands in interactive gaming applications | |
CN113269319A (zh) | 深度学习模型的调优方法、编译方法及计算装置 | |
CN111095197B (zh) | 代码处理方法和设备 | |
CN116450347A (zh) | 视频的多任务处理方法、视频分析设备和存储介质 | |
CN107861807B (zh) | 程序调用的优化方法及装置 | |
US20230061087A1 (en) | Dynamic computation offloading to graphics processing unit | |
CN114611500A (zh) | 表达式处理方法、装置、电子设备及计算机可读存储介质 | |
CN113641674A (zh) | 一种自适应全局序号发生方法和装置 | |
CN112765022A (zh) | 一种基于数据流的Webshell静态检测方法及电子设备 | |
CN113705800A (zh) | 处理单元、相关装置和方法 | |
CN113761416A (zh) | 一种请求处理方法、装置、服务器和存储介质 | |
Chang et al. | Code Transform Model Producing High-Performance Program. | |
US12003732B2 (en) | Scene aware video content encoding | |
Li et al. | Heterogeneous platform-aware workload feature recognition for edge intelligence | |
CN114510471B (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 |