CN116048481A - 业务信息处理系统及方法 - Google Patents
业务信息处理系统及方法 Download PDFInfo
- Publication number
- CN116048481A CN116048481A CN202310012782.XA CN202310012782A CN116048481A CN 116048481 A CN116048481 A CN 116048481A CN 202310012782 A CN202310012782 A CN 202310012782A CN 116048481 A CN116048481 A CN 116048481A
- Authority
- CN
- China
- Prior art keywords
- record
- module
- service
- storage
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本说明书提供业务信息处理系统及方法,其中业务信息处理系统包括:业务模块、内存记录模块和解析记录模块,引入了解析记录模块,解析记录模块中可以存储业务记录的存储描述信息,该存储描述信息可以指示业务记录的记录标识和各个数据成员的结构信息,只需要通过该解析记录模块,即可正确、完整的访问内存记录模块中相应的业务记录的记录内容,正确解析业务记录中的各个数据成员,内存记录模块与业务模块解耦,各个需要访问内存记录模块的模块中无需重复开发相同的访问逻辑,避免了重复开发工作。
Description
技术领域
本说明书涉及数据存储技术领域,特别涉及一种业务信息处理系统。本说明书同时涉及一种业务信息处理方法,一种计算设备,以及一种计算机可读存储介质。
背景技术
随着计算机技术和互联网技术的快速发展,对信息的存储和管理需求也在不断增加,信息是每家企业重要的资产,业务上会有很多信息需要存储,程序中业务信息一般以对象或结构体的形式组织在一起,每一个这样的组织单元成为一条业务记录。为了提高业务记录的存取速度,在系统中一般会提前为业务信息建立多条空闲的记录,将这些业务记录组织管理起来的模块叫内存记录模块,以便于业务模块随时取用业务记录,提高存储效率。
现有技术中,业务记录里包括的数据成员具体是如何组织的,只有定义的业务模块可以获知,内存记录模和其他访问模块无法知道,要想访问内存记录模中的业务记录,只能基于使用内存记录模块的业务模块来实现,内存记录模块与业务模块高度耦合,每个业务模块要想访问内存记录模块中的业务记录时,均需要单独重新开发相应的访问逻辑,导致开发工作重复,且业务模块只能访问自身向内存记录中存储的业务记录,灵活性和复用性较差。
发明内容
有鉴于此,本说明书实施例提供了一种业务信息处理系统。本说明书同时涉及一种业务信息处理方法,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种业务信息处理系统,系统包括:业务模块、内存记录模块和解析记录模块;
业务模块,被配置为定义业务记录的第一记录结构属性,并按照设定编码规则生成存储信息编译文件,其中,第一记录结构属性包括业务记录的记录标识和业务记录的结构信息;
解析记录模块,被配置为根据设定解码规则解析存储信息编译文件,获得业务记录的第一记录结构属性,并根据第一记录结构属性,生成业务记录的存储描述信息,其中,存储描述信息用于其他模块访问内存记录模块中存储的业务记录的记录内容。
根据本说明书实施例的第二方面,提供了一种业务信息处理方法,应用于解析记录模块,方法包括:
根据设定解码规则解析存储信息编译文件,获得业务记录的第一记录结构属性,其中,存储信息编译文件为业务模块定义业务记录的第一记录结构属性并按照设定编码规则生成,第一记录结构属性包括业务记录的记录标识和业务记录的结构信息;
根据第一记录结构属性,生成业务记录的存储描述信息,其中,业务记录的存储描述信息用于其他模块访问内存记录模块中存储的业务记录的记录内容。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
存储器用于存储计算机可执行指令,处理器用于执行计算机可执行指令,以实现上述的业务信息处理方法的操作步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述的业务信息处理方法的操作步骤。
本说明书实施例提供的业务信息处理系统,包括:业务模块、内存记录模块和解析记录模块;业务模块,被配置为定义业务记录的第一记录结构属性,并按照设定编码规则生成存储信息编译文件,其中,第一记录结构属性包括业务记录的记录标识和业务记录的结构信息;解析记录模块,被配置为根据设定解码规则解析存储信息编译文件,获得业务记录的第一记录结构属性,并根据第一记录结构属性,生成业务记录的存储描述信息,其中,存储描述信息用于其他模块访问内存记录模块中存储的业务记录的记录内容。
这种情况下,在业务信息处理系统中引入了解析记录模块,解析记录模块可以基于业务记录的第一记录结构属性,生成业务记录的存储描述信息,该存储描述信息可以指示业务记录的记录标识以及业务记录的结构信息,只需要通过该解析记录模块,即可正确、完整的访问内存记录模块中相应的业务记录的记录内容,正确解析业务记录中的各个数据成员,内存记录模块与业务模块解耦,各个需要访问内存记录模块的模块中无需重复开发相同的访问逻辑,避免了重复开发工作,业务记录随取随用,提高了存储和访问效率;且其他模块可以通过解析记录模块中记录的存储描述信息,访问内存记录模块中相应的业务记录的记录内容,一个模块可以访问其他模块向内存记录模块中存储的业务记录的记录内容,提高了灵活性和复用性。
附图说明
图1是本说明书一实施例提供的一种业务信息处理系统的处理过程示意图;
图2是本说明书一实施例提供的一种业务信息处理系统的结构框图;
图3a是本说明书一实施例提供的一种业务信息的处理过程示意图;
图3b是本说明书一实施例提供的一种业务记录的写入过程示意图;
图3c是本说明书一实施例提供的一种编译过程示意图;
图3d是本说明书一实施例提供的一种业务记录的访问过程示意图;
图3e是本说明书一实施例提供的另一种业务信息处理系统的处理过程示意图;
图4是本说明书一实施例提供的一种业务信息处理方法的流程图;
图5是本说明书一实施例提供的另一种业务信息处理方法的流程图;
图6是本说明书一实施例提供的一种解析记录模块的结构示意图;
图7是本说明书一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
内存记录模块:业务上会有很多信息需要存储,程序中一般以对象或结构体的形式组织在一起,每一个这样的组织单元成为一条业务记录。为了提高业务记录的存取速度,在系统中一般会提前为业务信息建立多条空闲的记录,将这些记录组织管理起来叫记录模块(或内存记录模块),以便于业务模块随时取用,提高存储效率。
DWARF(Debugging With Attributed RecordFormats,一种调试信息格式):是一种调试文件格式,许多编译器和调试器都使用它来支持源代码级调试,主要是为编译器和调试器提供必要的调试信息,例如PC地址对应的文件名及行号等信息,以方便源码级调试,其包含足够的信息以供调试器完成特定的一些功能,例如显示当前栈帧(Stack Frame)下的局部变量,尝试修改一些变量,直接跳到函数末尾等。其有足够的可扩展性,可为多种语言提供调试信息。
GCC(GNU Compiler Collection,GNU编译器套件):是一种GUN下编程语言译器,即编辑器,该编译器套件包括C、C++、Objective-C、Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。)GCC的初衷是为GNU操作系统(一种由自由软件构成的类Unix操作系统)专门编写的一款编译器。
GDB(GNU symbolic debugger):是UNIX及UNIX-like下的调试工具。该工具能启动程序,可让被调试的程序在所指定的调置的断点处停住(断点可以是条件表达式),当程序被停住时,可以检查此时程序中所发生的事,还可以改变程序,将一个BUG产生的影响修正从而测试其他BUG。
PDB(Program Data Base,程序数据库):即程序的基本数据,是编译链接时生成的文件。PDB文件主要存储了调试程序时所需要的基本信息,主要包括源文件名、变量名、函数名、FPO(帧指针)、对应的行号等等。因为存储的是调试信息,所以一般情况下PDB文件是在Debug模式下才会生成。
需要说明的是,业务模块可以定义业务记录的记录基础属性,该记录基础属性可以包括记录标识(即业务记录名称,如“业务记录A”)、单条记录大小、业务记录数量等,业务模块可以基于该记录基础属性向内存记录模块申请该业务记录的存储空间。另外,业务模块还可以定义业务记录的记录结构属性,该记录结构属性可以包括记录标识、成员标识、成员偏移地址、数据类型、类型大小等,该记录结构属性可以提供给解析记录模块生成存储描述信息。
图1是本说明书一实施例提供的一种业务信息处理系统的处理过程示意图,如图1所示,记录标识为业务记录A,该业务记录A中包括int a、char b、float c、……等数据成员,a、b、c表示数据成员的成员标识,int、char、float表示数据成员的数据类型,int a表示a成员占4个字节,char b表示b成员占1个字节,float c表示c成员占4个字节,数据成员a的偏移地址为0,数据成员b的偏移地址为4,数据成员c的偏移地址为5。
内存记录模块中根据业务模块提供的记录基础属性预先建立有多条空闲的存储空间(即record),每条存储空间对应一个存储地址,如record 1对应存储地址1,record 2对应存储地址2,……record n对应存储地址n。内存记录模块会保存记录基础属性信息,并记录为该业务记录分配的存储空间的存储地址。
业务模块在存储业务记录A下具体的一条记录时,可以根据上述记录基础属性首先向内存记录模块申请写入一条记录,内存记录模块返回一个空闲的存储地址(如record1的存储地址1),业务模块可以将该业务记录A下的各个数据成员存储至内存记录模块返回的存储地址中。内存记录模块会标记返回给业务模块写入具体的记录内容的存储地址为非空闲,并标记返回的存储地址给业务记录A使用。
需要说明的是,上述方法中,业务记录里包括的数据成员具体是如何组织的,只有定义的业务模块可以获知,内存记录模块和其他访问模块无法知道,要想访问内存记录模块中的业务记录,只能基于使用内存记录模块的业务模块来实现,业务模块通过内存记录模块反馈的存储地址,以及自身定义的各数据成员的结构,访问展示业务记录中各个数据成员的详细信息。
虽然很多开发工具都带有查看内存记录模块的方式,但是只能从内存记录模块中获得业务记录的记录内容,无法获知该业务记录的记录内容如何组织为不同的数据成员,即业务记录里包括的数据成员具体是如何组织的,只有定义的业务模块可以获知,只能依赖业务模块才可以正确、完整的访问业务记录里包括的各数据成员,内存记录模块与业务模块高度耦合。
即使如强大调试功能的GDB也是这样,GDB在调试时获取数据成员的变量信息时也是利用DWARF格式进行解析,但对于动态申请的内存,只能获取到内存的详细内容信息,无法获知业务记录里包括的数据成员具体是如何组织的,从而无法正确将记录内容解析为正确的数据成员,以及正确解析出对应的数据类型。
示例的,业务记录A的一条记录为“0X12 0X34 0X56 0X78 0X33 0X11 0X22 0X330X44”,通过开发工具直接从内存记录模块中获取业务记录A的该条记录,只能获得记录内容为“0X12 0X34 0X56 0X78 0X33 0X11 0X22 0X330X44”,但是并不知道哪些内容可以组织为一个数据成员,且无法获知上述记录内容的数据类型,只有通过业务模块,才可以获知数据成员a为整型数据,占用4个字节,数据成员b为字符型数据,占用1个字节,数据成员c是单精度浮点型数据,占用4个字节,即业务记录A的该条记录应该解析为“0X12 0X340X560X78 0X33 0X11 0X22 0X33 0X44”,其中“0X12 0X34 0X56 0X78”为数据成员a,“0X33”为数据成员b,“0X11 0X22 0X33 0X44”为数据成员c。
需要说明的是,内存记录模块中的业务记录对于内存记录模块和其他模块来说,相当于一个黑盒,无法可视化,同时所有使用内存记录模块的业务模块都需要自己编写相关的访问单元,工作重复。
因而,本说明书实施例中针对上述问题需要实现一个通用的内存记录模块中业务记录的访问系统,该系统可以引入一个解析记录模块,存储业务记录中每一数据成员的详细组织信息,实现内存记录模块与业务模块解耦,任意模块通过该解析记录模块,可以解析访问内存记录模块中任意业务记录包括的各个数据成员,保证业务记录中数据成员的正确与完整性。
在本说明书中,提供了一种业务信息处理系统,本说明书同时涉及一种业务信息处理系统方法,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图2示出了根据本说明书一实施例提供的一种业务信息处理系统的结构框图,业务信息处理系统包括:业务模块202、内存记录模块204和解析记录模块206;
业务模块202,被配置为定义业务记录的第一记录结构属性,并按照设定编码规则生成存储信息编译文件,其中,第一记录结构属性包括业务记录的记录标识和业务记录的结构信息;
解析记录模块206,被配置为根据设定解码规则解析存储信息编译文件,获得业务记录的第一记录结构属性,并根据第一记录结构属性,生成业务记录的存储描述信息,其中,存储描述信息用于其他模块访问内存记录模块中存储的业务记录的记录内容。
具体的,业务记录是针对待存储业务信息,以对象或结构体的形式组织在一起获得的组织单元,一个组织单元即为一条业务记录,一条业务记录可以包括多个数据成员,每个数据成员可以占用至少一个字节。
需要说明的是,业务模块在编写代码时,可以定义业务记录的第一记录结构属性,并按照设定编码规则生成存储信息编译文件,该第一记录结构属性包括业务记录的记录标识和业务记录的结构信息,该结构信息可以包括成员标识、成员偏移地址、数据类型、类型大小等信息,其中,类型大小可以表示该类型的数据占用的字节数。因而,解析记录模块可以根据设定解码规则解析该存储信息编译文件,获得业务记录的第一记录结构属性,并根据获得的第一记录结构属性,生成该业务记录的存储描述信息,该存储描述信息可以指示业务记录中各个数据成员的结构,也即该存储描述信息中也可以包括记录标识、成员标识、成员偏移地址、数据类型、类型大小等信息,基于上述信息可以正确解析出业务记录的记录内容。
其中,设定解码规则和设定编码规则相对应,即解析记录模块可以采用与设定编码方式相同的解码方式,来解析存储信息编译文件,从而获得业务记录的第一记录结构属性。
示例的,图3a是本说明书一实施例提供的一种业务信息的处理过程示意图,如图3a所示,解析记录模块可以根据设定解码规则解析存储信息编译文件,获得业务记录的第一记录结构属性,并基于第一记录结构属性生成业务记录的存储描述信息,该存储描述信息包括记录标识、数据成员的成员域信息、……等,该成员域信息可以为成员标识、成员偏移地址、数据类型、类型大小、……等,基于上述信息可以指示业务记录中各个数据成员的结构。
本说明书实施例中,在业务信息处理系统中引入了解析记录模块,该解析记录模块可以被任意其他模块调用访问,解析记录模块中记录有多个业务记录的存储描述信息,该存储描述信息可以指示业务记录中各个数据成员的结构信息,后续访问模块可以基于该解析记录模块访问内存记录模块中业务记录的记录内容,按照正确的结构解析展示,内存记录模块和解析记录模块两者结合,可以自动完成业务记录中各个数据成员的结构分析,并保证展示(查询及修改)每一数据成员时的正确与完整性,内存记录模块与业务模块解耦。
本实施例一个可选的实施方式中,业务模块,进一步被配置为定义业务记录的第一记录基础属性,并将第一记录基础属性传输给内存记录模块;
内存记录模块,被配置为基于第一记录基础属性,为业务记录分配存储空间,并记录业务记录对应的存储空间的第一存储地址。
需要说明的是,业务模块在编写代码时可以定义业务记录的第一记录基础属性,该第一记录基础属性可以包括记录标识、单条记录大小、记录数量等信息。一个记录标识下可以有多条记录,该多条记录的大小、结构均相同,只是具体的数据不同,因而业务模块可以定义业务记录的第一记录基础属性,并将第一记录基础属性传输给内存记录模块,以向内存记录模块申请存储空间。
实际应用中,业务模块将第一记录基础属性传输给内存记录模块,内存记录模块会将记录标识、单条记录大小、记录数量存储起来,并创建该记录数量对应的空白存储空间,该存储空间的大小由单条记录大小决定,以供后续业务模块写入某记录的具体记录内容。并且,内存记录模块基于第一记录基础属性,为业务记录分配存储空间后,还可以记录该业务记录对应的存储空间的第一存储地址,也即记录业务记录和存储地址的对应关系,该存储地址是指业务记录在内存记录模块中的地址,该存储地址可以为内存记录模块中存储空间地址,以及该存储空间中子空间编号等。
示例的,如图3a所示,业务模块将记录标识、单条记录大小、记录数量等第一记录基础属性传输给内存记录模块,内存记录模块将记录标识、单条记录大小、记录数量等第一记录基础属性存储起来,创建该记录数量对应的空白存储空间,每个存储空间的大小由单条记录大小决定,以供后续业务模块写入具体的记录内容。如图3a所示,假设记录标识为业务记录A,假设业务记录A有n条记录,每条记录大小为P,此时内存记录模块为业务记录A分配n个空白的存储空间,每个存储空间大小为P,每个存储空间对应一个存储地址,因而业务记录A对应的存储地址为存储地址1-存储地址n,且内存记录模块中还可以存储有记录标识和对应的存储地址,如业务记录A-存储地址1;或者业务记录A-存储地址1-n。
本实施例一个可选的实施方式中,业务模块202,进一步被配置为:
调用传输函数将第一记录基础属性传输至内存记录模块204;或者,创建模板类接口,通过模板类接口向内存记录模块204传输第一记录基础属性。
具体的,模板是指根据参数类型生成函数和类的机制,即实现代码重用机制的一种工具,它可以实现类型参数化,把类型定义为参数,从而实现真正的代码可重用性,模板可以分为两类,一类是函数模板,使用函数模板,可以指定一组基于相同代码但是处理不同类型或类的函数;另一类是模板类,模板类(class templates)可以使用模板类创建对一个类型进行操作的类家族。
实际应用中,业务模块向内存记录模块传递信息时可以通过两种方式,一种为调用传输函数的方式,将记录标识、单条记录大小和记录数量等记录基础属性作为传输函数的参数传递至内存记录模块中;另一种为创建模板类接口,通过模板类接口向内存记录模块传入记录标识、单条记录大小和记录数量等记录基础属性,内存记录模块可以保存传入的记录标识、单条记录大小和记录数量等第一记录基础属性,并基于该第一记录基础属性预分配相应的存储空间(单条记录大小*记录数量)。
需要说明的是,使用模板类接口时,编译输出中业务记录的记录标识会被模板类名称包裹,这一特点可以用于后续解析记录模块获取记录标识(如记录类型名称),并基于该记录标识从内存记录模块中获取相应的存储地址。也即,将模板类名称作为关键字搜索提取记录标识和大小,也是内存记录模块和业务模块解耦的手段,后续通过该方式可以在解析记录模块中构建存储描述信息,比业务模块在访问时再去构建效率更高。
本说明书实施例中,可以通过两种方式实现业务模块向内存记录模块传递第一记录基础属性,大大提高了操作灵活性,更能适应不同的应用场景。
本实施例一个可选的实施方式中,第一记录基础属性包括记录标识;业务模块,进一步被配置为:
接收到记录标识下第一记录的写入指令的情况下,调用传输函数,获得传输函数的返回值,返回值为内存记录模块反馈的目标存储地址;或者,在接收到目标记录的写入指令的情况下,调用模板类接口,获得内存记录模块反馈的目标存储地址;其中,目标存储地址为内存记录模块针对记录标识分配的至少一个存储空间中任一存储空间的存储地址;
向目标存储地址写入第一记录的记录内容。
需要说明的是,业务模块先向内存记录模块传入第一记录基础属性,向内存记录模块申请存储空间,内存记录模块接收到该第一记录基础属性后,会基于第一记录基础属性分配对应的存储空间。之后,业务模块需要写入该记录标识下某一条具体的第一记录时,可以向内存记录模块申请写入,此时内存记录模块可以向业务模块返回针对该记录标识准备好的多个存储地址中的任一个,然后业务模块再基于内存记录模块返回的目标存储地址写入具体的记录内容。
另外,内存记录模块还可以标记返回给业务模块写入具体的记录内容的目标存储地址为非空闲,并标记返回的存储地址给业务记录A使用。
示例的,图3b是本说明书一实施例提供的一种业务记录的写入过程示意图,如图3b所示,内存记录模块中针对该业务记录A分配了n个空白的存储空间,存储地址分别为存储地址1-存储地址n,并记录“业务记录A-存储地址1(首地址)”。业务模块需要写入业务记录A下的某一条具体的业务记录时,可以通过记录标识“业务记录A”,从内存记录模块中获取一个空闲的存储地址,假设获取到的为存储地址1,此时业务模块可以按照该条业务记录中各个数据成员的成员类型对该存储地址1进行赋值,以将业务记录A下的该条记录写入内存记录模块的存储地址1,如图3b所示,该条记录为“0x12 0x34 0x56 0x78 0x33……0x110x22 0x33 0x44”。
本实施例一个可选的实施方式中,业务模块202,进一步被配置为:
通过编译器的设定编译命令编译代码,生成存储信息编译文件;或者,
生成自定义格式,根据自定义格式记录第一记录结构属性,生成存储信息编译文件,并在存储信息编译文件的设定位置处添加自定义格式;或者,
在设定操作系统下,通过设定调试选项,将第一记录结构属性输出为程序数据库文件,将程序数据库文件作为存储信息编译文件。
需要说明的是,设定编码规则可以为多种,如设定编码规则可以为通过编译器编译代码、自定义格式或者设定调试选项进行编码,生成存储信息编译文件。
第一种可能的实现方式中,可以通过编译器的设定编译命令编译代码,生成存储信息编译文件。以编译器为GCC为例,在GCC编译时增加-g(设定编译命令)选项,业务模块的编译输出为输出文件(如.so,.a,可执行文件等),由主程序加载;-g选项增加后,输出文件会根据DWARF协议格式增加调试信息,调试信息内有各个数据成员的结构信息,如成员标识、成员偏移地址、数据类型、类型大小等信息,后续解析记录模块可以根据DWARF协议格式解析出上述信息。
需要说明的是,在编写代码阶段,可以在代码中定义业务记录的第一记录结构属性,然后对编写好的代码进行编译,生成so文件,即业务模块执行程序,且还可以获得对应so文件的文件描述信息。获得的文件描述信息可以通过其他规则参杂在业务模块执行程序中,即业务模块执行程序和文件描述信息可以合并为一个文件,或者业务模块执行程序和文件描述信息也可以为两个独立文件。
示例的,图3c是本说明书一实施例提供的一种编译过程示意图,如图3c所示,假设针对业务记录TA(即struct TA),定义的第一记录结构属性为“structTA:int a;char b;int c”,此时编写的代码中结构体或类如下:struct TA{int a;char b;Int c;};画图时可以用左边的图表示,也可成为一个记录。编译该代码可以生成so文件,即业务模块执行程序(文件1),且还可以获得对应so文件的文件描述信息(文件2),如:{记录名称:TA;第一个成员属性名称a,类型int,相对偏移0,类型大小4,占用空间4;第二个成员属性名称b,类型char,相对偏移4,类型大小1,占用空间1;第一个成员属性名称c,类型int,相对偏移5,类型大小4,占用空间4}。上述文件1和文件2可以合并为一个文件,或两个文件独立。
第二种可能的实现方式中,可以生成自定义格式,根据该自定义格式记录第一记录结构属性,以生成存储信息编译文件,并在存储信息编译文件的设定位置处添加该自定义格式,用于后续解析记录模块按照该自定义格式解析存储信息编译文件。
实际应用中,业务模块可以自定义格式,即业务模块可以自定义头文件中的类或结构信息,按自定义格式保存业务记录的记录标识、成员标识、成员偏移地址、数据类型、类型大小等信息,以约定格式(如json等)追加到输出文件后,或另成解析文件。
第三种可能的实现方式中,在设定操作系统下,可以通过设定调试选项,将第一记录结构属性输出为程序数据库文件,将程序数据库文件作为存储信息编译文件。需要说明的是,在设定操作系统下,指定调试选项后会编译输出独立的.pdb文件(即程序数据库文件),该程序数据库文件带有调试信息,后续解析记录模块可以根据PDB文件协议格式,解析存储信息编译文件,获得相应的记录标识、成员标识、成员偏移地址、数据类型、类型大小等信息。
本说明书实施例中,业务模块可以通过三种不同的方式,将定义的第一记录结构属性(如记录标识、成员标识、成员偏移地址、数据类型、类型大小等信息),编码为存储信息编译文件,后续解析记录模块可以解析该存储信息编译文件,获得相应信息,以构建存储描述信息,方式灵活多变,适应不同的应用场景。
本实施例一个可选的实施方式中,解析记录模块206,进一步被配置为:
基于调试信息格式解析存储信息编译文件,获得业务记录的第一记录结构属性;或者,
从存储信息编译文件的设定位置处读取自定义格式,基于自定义格式,解析存储信息编译文件,获得业务记录的第一记录结构属性;或者,
基于程序数据库文件的协议格式,解析存储信息编译文件,获得业务记录的第一记录结构属性。
需要说明的是,业务模块在对定义的第一记录结构属性进行编码,获得存储信息编译文件时,可以通过三种不同的编码方式,相应的,解析记录模块在解析存储信息编译文件时,也存在对应的三种解析方式。
第一种可能的实现方式中,解析记录模块可以基于调试信息格式解析存储信息编译文件,获得业务记录的第一记录结构属性。需要说明的是,GCC编译器以输出文件(如.so,.a,可执行文件等)形式提供存储信息编译文件,解析记录模块可以依据DWARF协议格式解析输出文本内容,检索模板类名称,提取业务记录的记录标识,依据DWARF协议格式获取业务记录的记录标识、成员标识、成员偏移地址、数据类型、类型大小等信息,基于上述信息构建存储描述信息。
示例的,模板类可以为Mmm<struct aaa,10,100>,表示模板类名称为Mmm,记录标识为aaa,记录大小为10,记录数量为100。
第二种可能的实现方式中,解析记录模块可以从存储信息编译文件的设定位置处读取自定义格式,然后基于该自定义格式,解析存储信息编译文件,获得业务记录的第一记录结构属性。
需要说明的是,解析记录模块可以按约定从存储信息编译文件的设定位置处(如末尾)读取自定义格式,基于该业务模块的自定义格式进行解析,获取业务记录的记录标识、成员标识、成员偏移地址、数据类型、类型大小等信息,构建存储描述信息。
第三种可能的实现方式中,解析记录模块可以基于程序数据库文件的协议格式,解析存储信息编译文件,获得业务记录的第一记录结构属性。
需要说明的是,解析记录模块可以根据PDB文件协议格式,解析存储信息编译文件,获得相应的业务记录的记录标识、成员标识、成员偏移地址、数据类型、类型大小等信息,构建存储描述信息。
本说明书实施例中,业务模块可以通过三种不同的方式,编码生成存储信息编译文件,相应地,解析记录模块可以通过对应的方式,解析该存储信息编译文件,获得相应信息,以构建存储描述信息,编解码方式灵活多变,适应不同的应用场景。
本实施例一个可选的实施方式中,业务记录包括至少一个数据成员,每个数据成员占用至少一个字节,第一记录结构属性包括记录标识、成员标识、成员偏移地址、数据类型和类型大小,成员偏移地址基于占用的字节数确定;相应地,存储描述信息中也包括记录标识、成员标识、成员偏移地址、数据类型和类型大小。
需要说明的是,业务记录包括至少一个数据成员,每个数据成员占用至少一个字节。业务记录在定义第一记录结构属性时,即可基于占用字节数定义业务记录中各个数据成员的偏移地址,后续解析记录模块基于第一记录结构即可获得各个数据成员的偏移地址,在存储描述信息中记录该偏移地址;或者,业务记录在定义第一记录结构属性时,可以只定义各个数据成员占用的字节数,解析记录模块基于各个数据成员占用的字节数,可以确定出各个数据成员的偏移地址,将该偏移地址也记录在存储描述信息中。如此,后续基于存储描述信息即可获知业务记录中各个数据成员的类型、大小、占用字节数、偏移地址等信息,从而基于存储描述信息即可正确解析出业务记录包括的各个数据成员。
示例的,假设业务记录A中包括int a、char b、float c等数据成员,a、b、c表示数据成员的标识,int、char、float表示数据成员的类型,int a表示a成员占4个字节,char b表示b成员占1个字节,float c表示c成员占1个字节。此时,可以确定数据成员a的偏移地址为0,数据成员b的偏移地址为4,数据成员c的偏移地址为5。基于各个数据成员的偏移地址,结合业务记录A的其他结构信息(包括记录标识、成员标识、数据类型和类型大小等),可以生成业务记录A的存储描述信息。
本实施例一个可选的实施方式中,该业务信息处理系统还包括访问模块;
访问模块,被配置为接收针对目标记录的记录查询指令,并将记录查询指令中携带的目标记录标识传输至解析记录模块206;
解析记录模块206,被配置为查找目标记录标识对应的目标存储描述信息,从目标存储描述信息中获取目标记录标识的结构信息;根据目标记录标识,从内存记录模块中获取对应的第二存储地址;根据第二存储地址,从内存记录模块中获取目标记录的记录内容,并根据该结构信息,解析该记录内容获得包括的各个数据成员,将解析获得的各个数据成员返回给访问模块。
具体的,解析记录模块在根据目标记录标识,从内存记录模块中获取目标记录标识的第二存储地址时,解析记录模块可以向内存记录模块传输该目标记录标识,内存记录模块查询该目标记录标识对应的非空闲存储地址列表(即写入有具体的记录内容的存储地址列表),将该非空闲存储地址列表作为第二存储地址返回给解析记录模块,该解析记录模块基于该第二存储地址从内存记录模块中获取目标记录的记录内容,并基于结构信息正确解析出包括的各个数据成员,返回给访问模块。
另外,解析记录模块查找到记录标识对应的目标存储描述信息后,还可以将该目标存储描述信息返回给访问模块,以供访问模块可以基于该目标存储描述信息,对目标记录进行查看、编辑、修改等访问操作。
实际应用中,图3d是本说明书一实施例提供的一种业务记录的访问过程示意图,如图3d所示,由于访问模块不知道解析记录模块中存储有哪些业务记录的存储描述信息,因而访问模块可以先询问解析记录模块,确定解析记录模块中存储有哪些业务记录的存储描述信息,也即是访问模块向解析记录模块发送询问指令,解析记录模块返回自身记录有存储描述信息的可查记录标识,类似于一种目录。
访问模块获知到可查记录标识后,基于自身需求,指定一个要查询的目标记录标识,并将该目标记录标识传输至解析记录模块,解析记录模块查找目标记录标识对应的目标存储描述信息(包括目标记录标识和成员域信息),并从该目标存储描述信息中获取目标记录标识的结构信息,即成员域信息,该成员域信息包括各个数据成员的结构信息,如成员a、成员b和成员c的结构信息,每个成员的结构信息包括成员标识、成员偏移地址、数据类型、类型大小、……等。
解析记录模块获取到目标存储描述信息后,还可以将目标存储描述信息反馈给访问模块,使得访问模块可以获得目标记录标识,以及对应的结构信息,如“TA:inta、charb、intc;类型大小分别为4、1、4”。
解析记录模块可以基于该目标记录标识,从内存记录模块中获取对应的第二存储地址,并基于第二存储地址从内存记录模块中获取目标记录的记录内容,并根据各个数据成员的结构信息,解析该目标记录的记录内容获得包括的各个数据成员,将解析获得的各个数据成员返回给访问模块,如解析获得的各个数据成员为a(0x12 0x34 0x56 0x78),b(0x33),c(0x11 0x22 0x33 0x44)。
需要说明的是,解析记录模块中存储有不同业务记录对应的存储描述信息,该存储描述信息可以指示业务记录中各个数据成员的结构,只需要通过该解析记录模块,即可正确、完整的访问内存记录模块中相应业务记录的具体记录内容,正确解析记录内容中的各个数据成员,内存记录模块与业务模块解耦,各个需要访问内存记录模块的模块中无需重复开发相同的访问逻辑,避免了重复开发工作,业务记录随取随用,提高了存储和访问效率;且其他模块可以通过解析记录模块中记录的存储描述信息,访问内存记录模块中相应业务记录的记录内容,即一个模块可以访问其他模块向内存记录模块中存储的业务记录的记录内容,提高了灵活性和复用性。
本实施例一个可选的实施方式中,访问模块,进一步被配置为接收针对目标记录的修改指令,基于修改指令对目标记录的记录内容进行修改,获得更新记录内容,并将更新记录内容返回给解析记录模块;
解析记录模块,进一步被配置为对比记录内容和更新记录内容,确定目标记录的修改地址和修改内容,并基于修改地址和修改内容,对内存记录模块中存储的目标记录的记录内容进行修改。
需要说明的是,一个记录标识可以对应多条业务记录,在同一个记录标识下不同业务记录的属性、结构均相同,仅具体的记录内容不同,也即一个记录标识所对应的各个业务记录的记录内容可以构成一个N行M列的数据表,N表示该记录标识下业务记录的条数,M表示包括的数据成员个数。解析记录模块基于存储描述信息解析目标记录后,即可获得该目标记录对应的N行M列的数据表,解析记录模块可以将该数据表返回给访问模块,访问模块可以发起修改指令修改该数据表中的某个数据成员,获得更新记录内容,访问模块可以将该更新记录内容返回给解析记录模块,解析记录模块可以对比自身解析出的记录内容和访问模块返回的更新记录内容,确定目标记录的修改地址和修改内容,即修改了该记录标识下的第几条业务记录,修改为什么内容,之后解析记录模块核对校验通过后直接基于该修改地址和修改内容对内存记录模块中该条记录的记录内容进行修改。
示例的,假设目标记录为业务记录A,该业务记录A的数据成员为int a、char b、float c,该业务记录A在申请存储空间时,内存记录模块为其分配了100个空闲的存储空间,但是该100个空闲的存储空间中仅有80个存储空间写入了具体的记录内容,即此时解析记录模块基于“业务记录A”,可以从内存记录模块中获取到存储地址1-存储地址80,并基于存储地址1-存储地址80从内存记录模块中获取到业务记录A下的80条记录的记录内容,然后基于业务记录A的存储描述信息中记录的结构信息,对该80条记录内容进行解析获得其包括的各个数据成员,解析获得的各个数据成员如下表1所示,将该各个数据成员返回给访问模块。
假设访问模块将表1所示的记录内容修改为表2所示的更新记录内容,并将该更新记录内容返回给解析记录模块,该解析记录模块可以对比表1和表2,确定修改地址为存储地址3,修改内容为“0X13 0X36 0X66 0X48 0X98 0X510X62 0X34 0X51”,解析记录模块可以直接基于该修改地址和修改内容,对内存记录模块中存储地址3中的记录内容进行修改。
表1记录内容表
int a | char b | float c |
0X12 0X34 0X56 0X78 | 0X33 | 0X11 0X22 0X33 0X44 |
0X22 0X44 0X36 0X58 | 0X21 | 0X41 0X23 0X35 0X45 |
0X13 0X36 0X66 0X48 | 0X53 | 0X51 0X62 0X34 0X51 |
…… | …… | …… |
0X17 0X74 0X52 0X68 | 0X37 | 0X71 0X72 0X67 0X38 |
表2更新记录内容表
int a | char b | float c |
0X12 0X34 0X56 0X78 | 0X33 | 0X11 0X22 0X33 0X44 |
0X22 0X44 0X36 0X58 | 0X21 | 0X41 0X23 0X35 0X45 |
0X13 0X36 0X66 0X48 | 0X98 | 0X51 0X62 0X34 0X51 |
…… | …… | …… |
0X17 0X74 0X52 0X68 | 0X37 | 0X71 0X72 0X67 0X38 |
另外,访问模块对内存记录模块中目标记录标识下的记录内容进行修改时,除了上述向解析记录模块返回目标记录标识下的整个记录内容之外,访问模块还可以仅向解析记录模块返回修改的记录内容的修改地址和修改内容,以及该修改内容对应的原始内容。解析记录模块可以基于该修改地址在目标记录标识下的整个记录内容中找到该条记录内容,并将该条记录内容与访问模块传输的原始记录内容进行比较,若一致,则说明中途没有其他模块修改过该条记录内容,解析记录模块可以基于该修改地址和该修改内容,直接对内存记录模块中该修改地址处的记录内容进行修改;若不一致,则说明访问模块中存储的不是最新的记录内容,为避免修改冲突,可以返回确认信息,使访问模块重新获取最新的记录内容,再进行修改。
也就是说,解析记录模块仅在查找到的记录内容与访问模块传输的原始记录内容一致的情况下,才进行修改,解析记录模块必须获取到当前最新的记录内容后再进行修改,即第一模块修改完成后,第二模块才能在该修改的基础上再进行修改,不允许两个模块同时修改,每次仅允许一个模块对内存记录模块中的记录内容进行修改,避免了不同模块之间的修改冲突。
需要说明的是,访问模块除了可以展示要查询的目标记录包括的记录内容之外,还可以对目标记录的记录内容进行修改操作,仅通过解析记录模块即可实现对内存记录模块中业务记录的记录内容的修改,内存记录模块完全与业务模块解耦,各个需要访问内存记录模块的模块中无需重复开发相同的访问逻辑,避免了重复开发工作,业务记录随取随用,提高了存储和访问效率。
作为一种示例,图3e是本说明书一实施例提供的另一种业务信息处理系统的处理过程示意图,如图3e所示,业务记录A中包括int a、char b、float c、……等数据成员,a、b、c表示数据成员的标识,int、char、float表示数据成员的类型,int a表示a成员占4个字节,char b表示b成员占1个字节,float c表示c成员占4个字节。
内存记录模块可以基于业务模块的申请,预先建立有多条空闲的存储空间(即record),每条存储空间对应一个存储地址,如record 1对应存储地址1,record 2对应存储地址2,……record n对应存储地址n。内存记录模块存储“业务记录A”和对应的存储地址。
业务模块在需要存储业务记录A下具体的某条业务记录时,可以向内存记录模块申请,内容记录模块从存储地址1-n中任意选择一个存储地址返回,并记录返回的存储地址为非空闲,业务模块基于返回的存储地址写入该条业务记录的记录内容。
解析记录模块可以解析存储信息编译文件(业务模块预先定义第一记录结构属性,并按照设定编码规则生成),获得业务记录的第一记录结构属性,然后根据该第一记录结构属性生成业务记录的存储描述信息。
其中,该存储描述信息中包括记录标识、数据成员的成员域信息、……等,该成员域信息可以包括为成员标识、成员偏移地址、数据类型、类型大小、……等信息,基于上述信息可以指示业务记录中数据成员的结构。后续访问模块可以基于该解析记录模块访问内存记录模块中业务记录的记录内容,按照正确的结构解析展示记录内容包括的各个数据成员,内存记录模块和解析记录模块两者结合,可以自动完成业务记录中各个数据成员的结构分析,并保证展示(查询及修改)每一数据成员时的正确与完整性。
需要说明的是,只要解析记录模块中存储有某业务记录的存储描述信息,访问模块即可结合解析记录模块和内存记录模块实现该业务记录的记录内容的访问,也即访问模块可以访问任意模块向内存记录中存储的业务记录的记录内容,如此一个模块可以访问其他模块向内存记录中存储的业务记录的记录内容,提高了灵活性和复用性。
实际应用中,若未在业务信息处理系统中引入解析记录模块,则业务记录中数据成员的结构信息由业务模块自己定义,所以展示(查询及修改)记录内容也只能由业务模块完成,如果由内存记录模块完成访问,则需要内存记录模块获知业务模块定义的结构信息,导致内存记录模块与业务模块会高度依赖与耦合。
本说明书实施例提供的业务信息处理系统,引入了解析记录模块,解析记录模块可以基于业务记录的第一记录结构属性,生成业务记录的存储描述信息,该存储描述信息可以指示业务记录的记录标识以及各个数据成员的结构信息,只需要通过该解析记录模块,即可正确、完整的访问内存记录模块中相应的业务记录的记录内容,正确解析业务记录中的各个数据成员,内存记录模块与业务模块解耦,各个需要访问内存记录模块的模块中无需重复开发相同的访问逻辑,避免了重复开发工作,业务记录随取随用,提高了存储和访问效率;且其他模块可以通过解析记录模块中记录的存储描述信息,访问内存记录模块中相应的业务记录的记录内容,一个模块可以访问其他模块向内存记录中存储的业务记录的记录内容,提高了灵活性和复用性。
图4示出了根据本说明书一实施例提供的一种业务信息处理方法的流程图,如图4所示,业务信息处理方法包括如下步骤:
步骤402:业务模块定义业务记录的第一记录结构属性,并按照设定编码规则生成存储信息编译文件,其中,第一记录结构属性包括业务记录的记录标识和业务记录的结构信息。
本实施例一个可选的实施方式中,业务模块定义业务记录的第一记录结构属性,并按照设定编码规则生成存储信息编译文件,包括:
通过编译器的设定编译命令编译代码,生成存储信息编译文件;或者,
生成自定义格式,根据自定义格式记录第一记录结构属性,生成存储信息编译文件,并在存储信息编译文件的设定位置处添加自定义格式;或者,
在设定操作系统下,通过设定调试选项,将第一记录结构属性输出为程序数据库文件,将程序数据库文件作为存储信息编译文件。
步骤404:业务模块定义业务记录的第一记录基础属性,并将第一记录基础属性传输给内存记录模块。
本实施例一个可选的实施方式中,将第一记录基础属性传输给内存记录模块,包括:
调用传输函数将第一记录基础属性传输至内存记录模块;或者,创建模板类接口,通过模板类接口向内存记录模块传输第一记录基础属性。
步骤406:内存记录模块基于第一记录基础属性,为业务记录分配存储空间,并记录业务记录对应的存储空间的第一存储地址。
本实施例一个可选的实施方式中,第一记录基础属性包括记录标识;内存记录模块基于第一记录基础属性,为业务记录分配存储空间之后,还包括:
业务模块接收到记录标识下第一记录的写入指令的情况下,调用传输函数,获得传输函数的返回值,返回值为内存记录模块反馈的目标存储地址;或者,在接收到目标记录的写入指令的情况下,调用模板类接口,获得内存记录模块反馈的目标存储地址;其中,目标存储地址为内存记录模块针对记录标识分配的至少一个存储空间中任一存储空间的存储地址;
业务模块向目标存储地址写入第一记录的记录内容。
步骤408:解析记录模块根据设定解码规则解析该存储信息编译文件,获得业务记录的第一记录结构属性。
本实施例一个可选的实施方式中,解析记录模块根据设定解码规则,解析该存储信息编译文件,获得业务记录的第一记录结构属性,包括:
基于调试信息格式解析存储信息编译文件,获得业务记录的第一记录结构属性;或者。
从存储信息编译文件的设定位置处读取自定义格式,基于自定义格式,解析存储信息编译文件,获得业务记录的第一记录结构属性;或者,
基于程序数据库文件的协议格式,解析存储信息编译文件,获得业务记录的第一记录结构属性。
步骤410:解析记录模块根据第一记录结构属性,生成业务记录的存储描述信息,该存储描述信息用于其他模块访问内存记录模块中存储的业务记录的记录内容。
其中,业务记录包括至少一个数据成员,每个数据成员占用至少一个字节,第一记录结构属性包括记录标识、成员标识、成员偏移地址、数据类型和类型大小,成员偏移地址基于占用的字节数确定;相应地,存储描述信息中也包括记录标识、成员标识、成员偏移地址、数据类型和类型大小,业务记录的存储描述信息用于其他模块访问内存记录模块中存储的业务记录的记录内容。
步骤412:访问模块接收到针对目标记录的记录查询指令时,将记录查询指令中携带的目标记录标识传输至解析记录模块。
步骤414:解析记录模块查找目标记录标识对应的目标存储描述信息,从目标存储描述信息中获取目标记录标识的结构信息。
步骤416:解析记录模块根据目标记录标识,从内存记录模块中获取对应的第二存储地址,并根据第二存储地址,从内存记录模块中获取目标记录的记录内容;然后根据该结构信息,解析该记录内容获得包括的各个数据成员,将解析获得的各个数据成员返回给访问模块。
步骤418:访问模块接收针对目标记录的修改指令,基于修改指令对目标记录的记录内容进行修改,获得更新记录内容,并将更新记录内容返回给解析记录模块。
步骤420:解析记录模块对比记录内容和更新记录内容,确定目标记录的修改地址和修改内容,并基于该修改地址和修改内容,对内存记录模块中存储的目标记录的记录内容进行修改。
本说明书实施例提供的业务信息处理方法,在业务信息处理系统中引入了解析记录模块,解析记录模块可以基于业务记录的第一记录结构属性,生成业务记录的存储描述信息,该存储描述信息可以指示业务记录的记录标识以及各个数据成员的结构信息,只需要通过该解析记录模块,即可正确、完整的访问内存记录模块中相应的业务记录的记录内容,正确解析业务记录中的各个数据成员,内存记录模块与业务模块解耦,各个需要访问内存记录模块的模块中无需重复开发相同的访问逻辑,避免了重复开发工作,业务记录随取随用,提高了存储和访问效率;且其他模块可以通过解析记录模块中记录的存储描述信息,访问内存记录模块中相应的业务记录的记录内容,一个模块可以访问其他模块向内存记录中存储的业务记录的记录内容,提高了灵活性和复用性。
图5示出了根据本说明书一实施例提供的另一种业务信息处理方法的流程图,应用于上述业务信息处理系统中的解析记录模块,如图5所示,业务信息处理方法包括如下步骤:
步骤502:根据设定解码规则解析存储信息编译文件,获得业务记录的第一记录结构属性。
其中,存储信息编译文件为业务模块定义业务记录的第一记录结构属性并按照设定编码规则生成,第一记录结构属性包括业务记录的记录标识和业务记录的结构信息。
本实施例一个可选的实施方式中,根据设定解码规则解析存储信息编译文件,获得业务记录的第一记录结构属性,包括:
基于调试信息格式解析存储信息编译文件,获得业务记录的第一记录结构属性;或者。
从存储信息编译文件的设定位置处读取自定义格式,基于自定义格式,解析存储信息编译文件,获得业务记录的第一记录结构属性;或者,
基于程序数据库文件的协议格式,解析存储信息编译文件,获得业务记录的第一记录结构属性。
步骤504:根据第一记录结构属性,生成业务记录的存储描述信息,其中,业务记录的存储描述信息用于其他模块访问内存记录模块中存储的业务记录的记录内容。
本实施例一个可选的实施方式中,业务记录包括至少一个数据成员,每个数据成员占用至少一个字节,第一记录结构属性包括记录标识、成员标识、成员偏移地址、数据类型和类型大小,成员偏移地址基于占用的字节数确定;相应地,存储描述信息中也包括记录标识、成员标识、成员偏移地址、数据类型和类型大小。
本说明书实施例提供的业务信息处理方法,在业务信息处理系统中引入了解析记录模块,解析记录模块可以基于业务记录的第一记录结构属性,生成业务记录的存储描述信息,该存储描述信息可以指示业务记录的记录标识以及各个数据成员的结构信息,只需要通过该解析记录模块,即可正确、完整的访问内存记录模块中相应的业务记录的记录内容,正确解析业务记录中的各个数据成员,内存记录模块与业务模块解耦,各个需要访问内存记录模块的模块中无需重复开发相同的访问逻辑,避免了重复开发工作,业务记录随取随用,提高了存储和访问效率;且其他模块可以通过解析记录模块中记录的存储描述信息,访问内存记录模块中相应的业务记录的记录内容,一个模块可以访问其他模块向内存记录中存储的业务记录的记录内容,提高了灵活性和复用性。
上述为本实施例提供的业务信息处理方法的示意性方案。需要说明的是,该业务信息处理方法的技术方案与上述的业务信息处理系统的技术方案属于同一构思,业务信息处理方法的技术方案未详细描述的细节内容,均可以参见上述业务信息处理系统的技术方案的描述。
与上述方法实施例相对应,本说明书还提供了解析记录模块实施例,图6示出了本说明书一实施例提供的一种解析记录模块的结构示意图。如图6所示,该解析记录模块包括:
解析单元602,被配置为根据设定解码规则解析存储信息编译文件,获得业务记录的第一记录结构属性,其中,存储信息编译文件为业务模块定义业务记录的第一记录结构属性并按照设定编码规则生成,第一记录结构属性包括业务记录的记录标识和业务记录的结构信息;
生成单元604,被配置为根据第一记录结构属性,生成业务记录的存储描述信息,其中,业务记录的存储描述信息用于其他模块访问内存记录模块中存储的业务记录的记录内容。
可选地,解析单元602,进一步被配置为:
基于调试信息格式解析存储信息编译文件,获得业务记录的第一记录结构属性;或者。
从存储信息编译文件的设定位置处读取自定义格式,基于自定义格式,解析存储信息编译文件,获得业务记录的第一记录结构属性;或者,
基于程序数据库文件的协议格式,解析存储信息编译文件,获得业务记录的第一记录结构属性。
可选地,业务记录包括至少一个数据成员,每个数据成员占用至少一个字节,第一记录结构属性包括记录标识、成员标识、成员偏移地址、数据类型和类型大小,成员偏移地址基于占用的字节数确定;相应地,存储描述信息中也包括记录标识、成员标识、成员偏移地址、数据类型和类型大小,成员偏移地址基于占用的字节数确定。
本说明书实施例提供的解析记录模块可以基于业务记录的第一记录结构属性,生成业务记录的存储描述信息,该存储描述信息可以指示业务记录的记录标识以及各个数据成员的结构信息,只需要通过该解析记录模块,即可正确、完整的访问内存记录模块中相应的业务记录的记录内容,正确解析业务记录中的各个数据成员,内存记录模块与业务模块解耦,各个需要访问内存记录模块的模块中无需重复开发相同的访问逻辑,避免了重复开发工作,业务记录随取随用,提高了存储和访问效率;且其他模块可以通过解析记录模块中记录的存储描述信息,访问内存记录模块中相应的业务记录的记录内容,一个模块可以访问其他模块向内存记录中存储的业务记录的记录内容,提高了灵活性和复用性。
上述为本实施例的一种解析记录模块的示意性方案。需要说明的是,该解析记录模块的技术方案与上述的业务信息处理系统的技术方案属于同一构思,解析记录模块的技术方案未详细描述的细节内容,均可以参见上述业务信息处理系统的技术方案的描述。
图7示出了根据本说明书一实施例提供的一种计算设备的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备770可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,NetworkInterface Controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Networks)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)接口,等等。
在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
其中,处理器720用于执行如下计算机可执行指令,以实现上述的业务信息处理方法的操作步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的业务信息处理系统的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述业务信息处理系统的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于实现上述的业务信息处理方法的操作步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的业务信息处理系统的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述业务信息处理系统的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
计算机指令包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (12)
1.一种业务信息处理系统,其特征在于,所述系统包括:业务模块、内存记录模块和解析记录模块;
所述业务模块,被配置为定义业务记录的第一记录结构属性,并按照设定编码规则生成存储信息编译文件,其中,所述第一记录结构属性包括业务记录的记录标识和业务记录的结构信息;
所述解析记录模块,被配置为根据设定解码规则解析所述存储信息编译文件,获得所述业务记录的第一记录结构属性,并根据所述第一记录结构属性,生成所述业务记录的存储描述信息,其中,所述存储描述信息用于其他模块访问所述内存记录模块中存储的业务记录的记录内容。
2.根据权利要求1所述的业务信息处理系统,其特征在于,
所述业务模块,进一步被配置为定义业务记录的第一记录基础属性,并将所述第一记录基础属性传输给所述内存记录模块;
所述内存记录模块,被配置为基于所述第一记录基础属性,为所述业务记录分配存储空间,并记录所述业务记录对应的存储空间的第一存储地址。
3.根据权利要求2所述的业务信息处理系统,其特征在于,所述业务模块,进一步被配置为:
调用传输函数将所述第一记录基础属性传输至所述内存记录模块;或者,创建模板类接口,通过所述模板类接口向所述内存记录模块传输所述第一记录基础属性。
4.根据权利要求3所述的业务信息处理系统,其特征在于,所述第一记录基础属性包括记录标识;所述业务模块,进一步被配置为:
接收到所述记录标识下第一记录的写入指令的情况下,调用所述传输函数,获得所述传输函数的返回值,所述返回值为所述内存记录模块反馈的目标存储地址;或者,在接收到目标记录的写入指令的情况下,调用所述模板类接口,获得所述内存记录模块反馈的目标存储地址;其中,所述目标存储地址为所述内存记录模块针对所述记录标识分配的至少一个存储空间中任一存储空间的存储地址;
向所述目标存储地址写入所述第一记录的记录内容。
5.根据权利要求1-4任一项所述的业务信息处理系统,其特征在于,所述业务模块,进一步被配置为:
通过编译器的设定编译命令编译代码,生成所述存储信息编译文件;或者,
生成自定义格式,根据所述自定义格式记录所述第一记录结构属性,生成所述存储信息编译文件,并在所述存储信息编译文件的设定位置处添加所述自定义格式;或者,
在设定操作系统下,通过设定调试选项,将所述第一记录结构属性输出为程序数据库文件,将所述程序数据库文件作为所述存储信息编译文件。
6.根据权利要求1-4任一项所述的业务信息处理系统,其特征在于,所述解析记录模块,进一步被配置为:
基于调试信息格式解析所述存储信息编译文件,获得所述业务记录的第一记录结构属性;或者。
从所述存储信息编译文件的设定位置处读取所述自定义格式,基于所述自定义格式,解析所述存储信息编译文件,获得所述业务记录的第一记录结构属性;或者,
基于程序数据库文件的协议格式,解析所述存储信息编译文件,获得所述业务记录的第一记录结构属性。
7.根据权利要求1-4任一项所述的业务信息处理系统,其特征在于,所述系统还包括访问模块;
所述访问模块,被配置为接收针对目标记录的记录查询指令,并将所述记录查询指令中携带的目标记录标识传输至所述解析记录模块;
所述解析记录模块,被配置为查找所述目标记录标识对应的目标存储描述信息,从所述目标存储描述信息中获取所述目标记录标识的结构信息;根据所述目标记录标识,从所述内存记录模块中获取对应的第二存储地址;根据所述第二存储地址,从所述内存记录模块中获取所述目标记录的记录内容,并根据所述结构信息,解析所述记录内容获得包括的各个数据成员,将解析获得的各个数据成员返回给所述访问模块。
8.根据权利要求7所述的业务信息处理系统,其特征在于,
所述访问模块,进一步被配置为接收针对所述目标记录的修改指令,基于所述修改指令对所述目标记录的记录内容进行修改,获得更新记录内容,并将所述更新记录内容返回给所述解析记录模块;
所述解析记录模块,进一步被配置为对比所述记录内容和所述更新记录内容,确定所述目标记录的修改地址和修改内容,并基于所述修改地址和修改内容,对所述内存记录模块中存储的目标记录的记录内容进行修改。
9.根据权利要求1-4任一项所述的业务信息处理系统,其特征在于,所述业务记录包括至少一个数据成员,每个所述数据成员占用至少一个字节,所述第一记录结构属性包括记录标识、成员标识、成员偏移地址、数据类型和类型大小,所述成员偏移地址基于占用的字节数确定;相应地,所述存储描述信息中也包括记录标识、成员标识、成员偏移地址、数据类型和类型大小。
10.一种业务信息处理方法,其特征在于,应用于解析记录模块,所述方法包括:
根据设定解码规则解析存储信息编译文件,获得业务记录的第一记录结构属性,其中,所述存储信息编译文件为业务模块定义业务记录的第一记录结构属性并按照设定编码规则生成,所述第一记录结构属性包括业务记录的记录标识和业务记录的结构信息;
根据所述第一记录结构属性,生成所述业务记录的存储描述信息,其中,所述存储描述信息用于其他模块访问所述内存记录模块中存储的业务记录的记录内容。
11.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现上述权利要求10所述的业务信息处理方法的操作步骤。
12.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现上述权利要求10所述的业务信息处理方法的操作步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310012782.XA CN116048481A (zh) | 2023-01-05 | 2023-01-05 | 业务信息处理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310012782.XA CN116048481A (zh) | 2023-01-05 | 2023-01-05 | 业务信息处理系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116048481A true CN116048481A (zh) | 2023-05-02 |
Family
ID=86129038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310012782.XA Pending CN116048481A (zh) | 2023-01-05 | 2023-01-05 | 业务信息处理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116048481A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117435440A (zh) * | 2023-12-20 | 2024-01-23 | 麒麟软件有限公司 | 一种程序堆空间的动态分析方法及系统 |
-
2023
- 2023-01-05 CN CN202310012782.XA patent/CN116048481A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117435440A (zh) * | 2023-12-20 | 2024-01-23 | 麒麟软件有限公司 | 一种程序堆空间的动态分析方法及系统 |
CN117435440B (zh) * | 2023-12-20 | 2024-04-05 | 麒麟软件有限公司 | 一种程序堆空间的动态分析方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101334728B (zh) | 一种基于xml文档描述的界面生成方法和装置 | |
KR101224813B1 (ko) | 관계 모델링 | |
US7318215B1 (en) | Stored procedure interface language and tools | |
CN109032631B (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
EP2827244A1 (en) | Extension mechanism for scripting language compiler | |
JPH1040087A (ja) | ソフトウェア工学で使われるデータモデルの取り扱い方法 | |
CN111259067B (zh) | 一种基于Spring实现DAO接口的方法、装置及设备 | |
CN112287013B (zh) | 数据转换方法及适配器 | |
CN107015841B (zh) | 一种程序编译的预处理方法及程序编译设备 | |
CN114741070A (zh) | 代码生成方法、装置、电子设备及存储介质 | |
CN108052327A (zh) | 一种内核模块编译、加载方法及装置 | |
CN112799718A (zh) | 一种枚举文档的生成方法、装置、电子设备及存储介质 | |
CN116661756B (zh) | 一种基于低代码dsl的对象解析方法及装置 | |
CN113094252B (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
CN116048481A (zh) | 业务信息处理系统及方法 | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN101201750B (zh) | 利用语法词法分析工具为编解码提供数据的方法 | |
Loseto et al. | Linked Data (in low-resource) Platforms: a mapping for Constrained Application Protocol | |
CN109683900B (zh) | 针对elf文件调试信息的通用上位机符号查找与解析方法 | |
US20230113783A1 (en) | Cross-platform code conversion method and device | |
CN114816364A (zh) | 基于Swagger动态生成范本文件的方法、装置及应用 | |
JP6717140B2 (ja) | 解析プログラム、解析方法、及び解析装置 | |
CN114647439A (zh) | 一种代码扫描的方法、代码迁移的方法及相关装置 | |
CN114047923A (zh) | 错误代码定位方法、装置、存储介质以及电子设备 | |
Levin et al. | owlcpp: a C++ library for working with OWL ontologies |
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 |