CN113094026B - 代码处理方法和装置 - Google Patents

代码处理方法和装置 Download PDF

Info

Publication number
CN113094026B
CN113094026B CN202110385943.0A CN202110385943A CN113094026B CN 113094026 B CN113094026 B CN 113094026B CN 202110385943 A CN202110385943 A CN 202110385943A CN 113094026 B CN113094026 B CN 113094026B
Authority
CN
China
Prior art keywords
service
field
element information
serialization
communication area
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
Application number
CN202110385943.0A
Other languages
English (en)
Other versions
CN113094026A (zh
Inventor
何子南
王凯
邢培康
李炯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110385943.0A priority Critical patent/CN113094026B/zh
Publication of CN113094026A publication Critical patent/CN113094026A/zh
Application granted granted Critical
Publication of CN113094026B publication Critical patent/CN113094026B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开提供了一种代码处理方法,包括:响应于序列化指令,读取服务提供方的目标代码文本,并将所述目标代码文本转换为抽象语法树;基于所述抽象语法树解析所述目标代码文本,得到所述目标代码文本中由字段描述信息指示的业务要素信息;对所述业务要素信息进行序列化处理,得到至少一个序列化对象并保存,以实现为进行服务封装工作提供数据支持。本公开还提供了一种代码处理装置、一种电子设备及一种计算机存储介质。

Description

代码处理方法和装置
技术领域
本公开涉及计算机技术领域,特别是涉及一种代码处理方法和装置。
背景技术
服务提供方可以将其提供的互联网服务或产品应用功能,封装为开放API(Application Programming Interface,应用编程接口)以供其他平台调用。
在实现本公开技术方案过程中,发明人发现相关技术中的服务封装方法要求开发人员具备一定主机技术知识,在由主机代码文件生成服务描述文件时,常需引入人工进行字段转换处理,这存在服务封装专业要求高、人力投入成本大、易由人工操作引入错误的问题。
发明内容
本公开的一个方面提供了一种代码处理方法,包括:响应于序列化指令,读取服务提供方的目标代码文本,并将所述目标代码文本转换为抽象语法树;基于所述抽象语法树解析所述目标代码文本,得到所述目标代码文本中由字段描述信息指示的业务要素信息;对所述业务要素信息进行序列化处理,得到至少一个序列化对象并保存,以实现为进行服务封装工作提供数据支持。
可选地,所述抽象语法树中包括至少一种语法结构,所述基于所述抽象语法树解析所述目标代码文本,得到所述目标代码文本中由字段描述信息指示的业务要素信息,包括:利用与各所述语法结构关联的预设解析器,进行针对所述目标代码文本的解析处理,得到由所述字段描述信息指示的业务要素信息,其中,所述字段描述信息包括通讯区字段名称、通讯区字段顺序、通讯区字段长度、通讯区字段类型、通讯区字段描述、通讯区字段传输类型、通讯区字段偏移和通讯区顺序中的至少之一。
可选地,所述至少一个序列化对象至少包括程序定义对象、数据结构对象、方法定义对象和数据库处理方法对象;所述对所述业务要素信息进行序列化处理,得到至少一个序列化对象,包括:结合预设聚合规则,将至少一类业务要素信息序列化聚合处理为单个所述序列化对象,以此得到至少一个序列化对象。
可选地,所述方法还包括:响应于反序列化指令,对所述至少一个序列化对象进行反序列化处理,得到与各所述序列化对象关联的业务要素信息;根据与所述业务要素信息关联的字段描述信息,生成针对所述业务要素信息的服务描述文件;将所述服务描述文件发送给服务调用方,以使所述服务调用方基于所述服务描述文件进行服务调用。
可选地,所述根据与所述业务要素信息关联的字段描述信息,生成针对所述业务要素信息的服务描述文件,包括:根据与所述业务要素信息关联的字段描述信息,生成用于描述所述目标代码文本的通讯区结构及通讯区内部字段结构的结构描述文件。
可选地,所述根据与所述业务要素信息关联的字段描述信息,生成针对所述业务要素信息的服务描述文件,包括:根据与所述业务要素信息关联的字段描述信息,生成基于字段级别描述的字段传输类型的传输描述文件。
可选地,所述根据与所述业务要素信息关联的字段描述信息,生成针对所述业务要素信息的服务描述文件,包括:根据与所述业务要素信息关联的字段描述信息,生成用于规定向所述服务调用方返回的数据格式类型的格式描述文件。
可选地,所述根据与所述业务要素信息关联的字段描述信息,生成针对所述业务要素信息的服务描述文件,包括:根据与所述业务要素信息关联的字段描述信息,生成用于指导所述服务调用方进行外调服务测试的测试描述文件。
本公开的另一方面提供了一种代码处理装置,包括:第一处理模块,用于响应于序列化指令,读取服务提供方的目标代码文本,并将所述目标代码文本转换为抽象语法树;第二处理模块,用于基于所述抽象语法树解析所述目标代码文本,得到所述目标代码文本中由字段描述信息指示的业务要素信息;第三处理模块,用于对所述业务要素信息进行序列化处理,得到至少一个序列化对象并保存,以实现为进行服务封装工作提供数据支持。
可选地,所述抽象语法树中包括至少一种语法结构,所述第二处理模块包括:第一处理子模块,用于利用与各所述语法结构关联的预设解析器,进行针对所述目标代码文本的解析处理,得到由所述字段描述信息指示的业务要素信息,其中,所述字段描述信息包括通讯区字段名称、通讯区字段顺序、通讯区字段长度、通讯区字段类型、通讯区字段描述、通讯区字段传输类型、通讯区字段偏移和通讯区顺序中的至少之一。
可选地,所述至少一个序列化对象至少包括程序定义对象、数据结构对象、方法定义对象和数据库处理方法对象;所述第三处理模块包括:第二处理子模块,用于结合预设聚合规则,将至少一类业务要素信息序列化聚合处理为单个所述序列化对象,以此得到至少一个序列化对象。
可选地,所述装置还包括:第四处理模块,用于响应于反序列化指令,对所述至少一个序列化对象进行反序列化处理,得到与各所述序列化对象关联的业务要素信息;第五处理模块,用于根据与所述业务要素信息关联的字段描述信息,生成针对所述业务要素信息的服务描述文件;第六处理模块,用于将所述服务描述文件发送给服务调用方,以使所述服务调用方基于所述服务描述文件进行服务调用。
可选地,所述第五处理模块包括:第三处理子模块,用于根据与所述业务要素信息关联的字段描述信息,生成用于描述所述目标代码文本的通讯区结构及通讯区内部字段结构的结构描述文件。
可选地,所述第五处理模块包括:第四处理子模块,用于根据与所述业务要素信息关联的字段描述信息,生成基于字段级别描述的字段传输类型的传输描述文件。
可选地,所述第五处理模块包括:第五处理子模块,用于根据与所述业务要素信息关联的字段描述信息,生成用于规定向所述服务调用方返回的数据格式类型的格式描述文件。
可选地,所述第五处理模块包括:第六处理子模块,用于根据与所述业务要素信息关联的字段描述信息,生成用于指导所述服务调用方进行外调服务测试的测试描述文件。
本公开的另一方面提供了一种电子设备,包括一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本公开实施例的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现本公开实施例的方法。
本公开的另一方面提供了一种计算机程序产品,包括计算机可读指令,其中,所述计算机可读指令被执行时用于执行本公开实施例的代码处理方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中,
图1示意性示出了根据本公开实施例的代码处理方法和装置的系统架构;
图2示意性示出了根据本公开实施例的一种代码处理方法的流程图;
图3示意性示出了根据本公开实施例的一种序列化处理示意图;
图4示意性示出了根据本公开实施例的另一代码处理方法的流程图;
图5示意性示出了根据本公开实施例的一种反序列化处理示意图;
图6示意性示出了根据本公开实施例的一种生成主机程序文件的示意图;
图7示意性示出了根据本公开实施例的一种代码处理装置的框图;
图8示意性示出了根据本公开实施例的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性地,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了特征、操作、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、操作、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程代码处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开的实施例提供了一种代码处理方法以及能够应用该方法的处理装置。该方法具体可以包括如下操作,首先,响应于序列化指令,读取服务提供方的目标代码文本,并将目标代码文本转换为抽象语法树,然后基于抽象语法树解析目标代码文本,得到目标代码文本中由字段描述信息指示的业务要素信息,最后对业务要素信息进行序列化处理,得到至少一个序列化对象并保存,以实现为进行服务封装工作提供数据支持。
图1示意性示出了根据本公开实施例的代码处理方法和装置的系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该系统架构100包括用于提供互联网服务的提供方服务器101、用于执行服务封装操作的代理服务器102和进行互联网服务调用的调用方服务器103。
首先,代理服务器102响应于序列化指令,读取提供方服务器101中的目标代码文本,并将目标代码文本转换为抽象语法树,然后基于抽象语法树解析目标代码文本,得到目标代码文本中由字段描述信息指示的业务要素信息,最后对业务要素信息进行序列化处理,得到至少一个序列化对象并保存,以实现为进行服务封装工作提供数据支持。
以及,代理服务器102响应于反序列化指令,对至少一个序列化对象进行反序列化处理,得到与各序列化对象关联的业务要素信息,然后根据与业务要素信息关联的字段描述信息,生成针对业务要素信息的服务描述文件,最后将服务描述文件发送给调用方服务器103,以使调用方服务器103基于服务描述文件进行服务调用。
需要说明的是,本公开实施例的代码处理方法和装置可用于金融领域,也可用于除金融领域之外的任意领域。以下将结合附图和具体实施例详细阐述本公开。
图2示意性示出了根据本公开实施例的一种代码处理方法的流程图,如图2所示,方法200可以包括操作S210~S230。
在操作S210,响应于序列化指令,读取服务提供方的目标代码文本,并将目标代码文本转换为抽象语法树。
在本实施例中,具体地,提供互联网服务的服务提供方作为上游应用,在服务提供方需由代理服务器执行服务封装操作时,服务提供方可以向代理服务器发送序列化指令。请求调用互联网服务的服务调用方作为下游应用,当服务调用方请求从代理服务器中获取服务描述文件,且服务描述文件未由代理服务器封装生成时,服务调用方也可以向代理服务器发送序列化指令。序列化处理为将编程语言对象转换为字节序列的过程,通过将对象转换为有序字节流,在保证对象完整性和可传递性的基础上,方便在网络中传输和在本地文件中保存。
代理服务器响应于接收的序列化指令,读取服务提供方的目标代码文本,以及通过解析目标代码文本,实现将目标代码文本转换为关联的抽象语法树,抽象语法树为能被计算机快速遍历与处理的结构化对象。可选地,利用由官方提供的开源解析工具,对服务提供方的目标EGL(Enterprise Generation Language,业务编程语言)源代码进行解析处理,得到与目标EGL源代码对应的抽象语法树。
接下来,在操作S220,基于抽象语法树解析目标代码文本,得到目标代码文本中由字段描述信息指示的业务要素信息。
在本实施例中,具体地,抽象语法树中包括至少一种语法结构,利用与各语法结构关联的预设解析器,进行针对目标代码文本的解析处理,得到由字段描述信息指示的业务要素信息。可选地,利用预先建立的EGL语言解析系统,进行针对目标代码文本的解析处理,EGL语言解析系统中包括针对各EGL语法结构建立的解析器,与至少一种EGL语法结构关联的解析器部署于语言解析系统的策略链中。
利用与各语法结构关联的预设解析器,进行针对目标代码文本的语法解析处理,得到目标代码文本中包含的业务要素信息。图3示意性示出了根据本公开实施例的一种序列化处理示意图,如图3所示,在预先建立的EGL语言解析系统的策略链中,部署有例如与程序定义、数据结构定义、数据项定义、方法定义、语法结构、表达式、流程控制信息、方法调用信息、程序调用信息、数据库处理方法等语法结构关联的解析器,利用各解析器对目标代码文本进行逐句语法解析,得到与各语法结构关联的业务要素信息并保存。相对应地,业务要素信息例如包括程序定义信息、数据结构定义信息、数据项定义信息、方法定义信息、语法结构信息、表达式、流程控制信息、方法调用信息、程序调用信息、数据库处理方法等内容。
实际应用中,可通过目标代码文本的字段描述信息指示业务要素信息,字段描述信息包括通讯区字段名称、通讯区字段顺序、通讯区字段长度、通讯区字段类型、通讯区字段描述、通讯区字段传输类型、通讯区字段偏移和通讯区顺序中的至少之一。代码文本通常由多个通讯区构成,各通讯区中包含大量字段。利用预设解析器进行针对目标代码文本的解析处理,以此实现获取目标代码文本中的字段描述信息,该种设计无需要求开发人员具备主机技术知识,有利于降低服务封装专业性要求。
在字段描述信息中,通讯区字段传输类型描述通讯区中哪些字段为上传信息,以及哪些字段为下送信息。上传信息为由外围服务器经DSI(Display Serial InterfaceSpecification,显示器穿行接口规范)网关向服务提供方主机传递的字段信息,下送信息为由服务提供方主机经DSI网关向外围服务器返回的字段信息,同一字段可能仅是上传信息(例如入参)或仅是下送信息(例如结果信息),也可能既可以是上传信息也可以是下送信息。通讯区字段偏移信息描述字段在通讯区中的偏移量。
接下来,在操作S230,对业务要素信息进行序列化处理,得到至少一个序列化对象并保存,以实现为进行服务封装工作提供数据支持。
在本实施例中,具体地,对解析得到的业务要素信息进行序列化处理,实现将编程语言格式的业务要素信息转换为有序字节流,得到与业务要素信息关联的至少一个序列化对象。至少一个序列化对象至少包括程序定义对象、数据结构对象、方法定义对象和数据库处理方法对象。
可选地,结合预设聚合规则,将至少一类业务要素信息序列化聚合处理为单个序列化对象,以此得到至少一个序列化对象。示例性地,将程序定义信息序列化处理为程序定义对象,将数据结构定义信息、数据项定义信息序列化处理为数据结构对象,将方法定义信息、语法结构信息、表达式、流程控制信息、方法调用信息、程序调用信息序列化处理为方法定义对象,将数据库处理方法序列化处理为数据库处理方法对象。
将至少一个序列化对象持久化保存至代理服务器的磁盘中,以此完成通过解析器解析处理目标代码文本,得到目标代码文本中的业务要素信息和字段描述信息,实现为后续进行服务封装提供数据支持。
通过本公开实施例,响应于序列化指令,读取服务提供方的目标代码文本,并将目标代码文本转换为抽象语法树;基于抽象语法树解析目标代码文本,得到目标代码文本中由字段描述信息指示的业务要素信息;对业务要素信息进行序列化处理,得到至少一个序列化对象并保存,以实现为进行服务封装工作提供数据支持。通过利用预设解析器进行针对目标代码文本的解析处理,得到目标代码文本中由字段描述信息指示的业务要素信息,并将业务要素信息序列化处理为至少一个序列化对象并保存。本设计无需要求服务封装开发人员具备主机技术知识和掌握业务编程语言技能,有利于有效降低服务封装工作的专业性要求,能够有效取代人工解析得到字段描述信息的处理方式,有利于控制服务封装工作的人力投入成本,降低人工操作引入错误的出现概率。
图4示意性示出了根据本公开实施例的另一代码处理方法的流程图,如图4所示,方法400可以包括操作S410~S430。
在操作S410,响应于反序列化指令,对至少一个序列化对象进行反序列化处理,得到与各序列化对象关联的业务要素信息。
在本实施例中,具体地,当服务调用方请求从代理服务器中调用服务描述文件,且服务描述文件尚未由代理服务器封装生成时,服务调用方可以向代理服务器发送反序列化指令,反序列化指令用于请求将结构持久化的序列化对象还原为解析信息。
代理服务器响应于接收的反序列化指令,根据预设编码器进行针对至少一个序列化对象的反序列化处理,得到与各序列化对象关联的业务要素信息。由于业务要素信息是基于字段描述信息进行表征的,因此反序列化处理也可得到目标代码文本中的字段描述信息。字段描述信息例如可以包括通讯区字段名称、通讯区字段顺序、通讯区字段长度、通讯区字段类型、通讯区字段描述、通讯区字段传输类型、通讯区字段偏移和通讯区顺序等。
接下来,在操作S420,根据与业务要素信息关联的字段描述信息,生成针对业务要素信息的服务描述文件。
在本实施例中,具体地,根据与不同业务要素信息关联的字段描述信息,生成能够提供不同业务信息的服务描述文件。图5示意性示出了根据本公开实施例的一种反序列化处理示意图,如图5所示,根据与业务要素信息关联的字段描述信息,生成结构描述文件、传输描述文件、格式描述文件、测试描述文件共四类服务描述文件。
具体地,根据与业务要素信息关联的字段描述信息,生成用于描述目标代码文本的通讯区结构及通讯区内部字段结构的结构描述文件。具体地,根据通讯区顺序、通讯区字段名称、通讯区字段顺序以及通讯区字段描述,生成用于描述通讯区字段类型、通讯区结构、通讯区内部字段结构、通讯区间以及通讯区字段间关系的关于目标代码文本的结构描述文件。结构描述文件的格式可以是可扩展标记语言xml文件类型的DSR文件。
或者,可以根据与业务要素信息关联的字段描述信息,生成基于字段级别描述的字段传输类型的传输描述文件。具体地,可以根据通讯区字段名称、通讯区字段类型、通讯区字段长度、通讯区字段描述、通讯区字段传输类型,生成用于描述通讯区字段传输类型的传输描述文件。传输描述文件可以是文件扩展名为.SDEF的文件类型。
另外,还可以根据与业务要素信息关联的字段描述信息,生成用于规定向服务调用方返回的数据格式类型的格式描述文件。具体地,可以根据通讯区字段名称、通讯区字段类型、通讯区字段传输类型,生成用于规定向服务调用方返回的数据结构或数据格式类型的格式描述文件。格式描述文件可以是文件扩展名为.VJSON的文件类型。
此外,也可以根据与业务要素信息关联的字段描述信息,生成用于指导服务调用方进行外调服务测试的测试描述文件。具体地,根据通讯区字段名称、通讯区字段类型、通讯区字段传输类型,确定通讯区输入字段信息,生成用于指导服务调用方进行外调服务测试的测试描述文件。测试描述文件用于指导对封装服务进行测试的测试场景、测试用例、测试所需上送的报文信息,以及指导如何根据报文输入定义配置测试用报文等内容。测试描述文件可以是文件扩展名为.MD的文件类型。
接下来,在操作S430,将服务描述文件发送给服务调用方,以使服务调用方基于服务描述文件进行服务调用。
通过本公开实施例,响应于反序列化指令,对至少一个序列化对象进行反序列化处理,得到与各序列化对象关联的业务要素信息;根据与业务要素信息关联的字段描述信息,生成针对业务要素信息的服务描述文件;将服务描述文件发送给服务调用方,以使服务调用方基于服务描述文件进行服务调用。通过对至少一个序列化对象进行反序列化处理,得到与各序列化对象关联的业务要素信息,基于与业务要素信息关联的字段描述信息,生成针对业务要素信息的服务描述文件。本方案基本无需引入人工操作进行字段描述信息解析,无需由人工操作对不符合描述文件规范的字段进行转换,有利于控制人力投入成本,降低人工操作引入错误的出现概率,有利于实现一种高效、全自动化的服务封装方法。
图6示意性示出了根据本公开实施例的一种生成主机程序文件的示意图,针对服务提供方中不存在主机程序文件(主机DSR文件)的情况,根据主机程序通讯区中的通讯区顺序、通讯区字段名称、通讯区字段顺序、通讯区字段类型、通讯区字段长度、通讯区字段描述、通讯区字段传输类型等信息,生成对应的主机DSR文件。根据主机程序及生成的主机DSR文件,通过前述实施例方式生成服务封装需要的xmlDSR、SDEF、VJSON、MD服务描述文件。
图7示意性示出了根据本公开实施例的一种代码处理装置的框图。
如图7所示,装置700包括第一处理模块701、第二处理模块702和第三处理模块703。
具体地,第一处理模块701,用于响应于序列化指令,读取服务提供方的目标代码文本,并将目标代码文本转换为抽象语法树;第二处理模块702,用于基于抽象语法树解析目标代码文本,得到目标代码文本中由字段描述信息指示的业务要素信息;第三处理模块703,用于对业务要素信息进行序列化处理,得到至少一个序列化对象并保存,以实现为进行服务封装工作提供数据支持。
通过本公开实施例,响应于序列化指令,读取服务提供方的目标代码文本,并将目标代码文本转换为抽象语法树;基于抽象语法树解析目标代码文本,得到目标代码文本中由字段描述信息指示的业务要素信息;对业务要素信息进行序列化处理,得到至少一个序列化对象并保存,以实现为进行服务封装工作提供数据支持。通过利用预设解析器进行针对目标代码文本的解析处理,得到目标代码文本中由字段描述信息指示的业务要素信息,并将业务要素信息序列化处理为至少一个序列化对象并保存。本设计无需要求服务封装开发人员具备主机技术知识和掌握业务编程语言技能,有利于有效降低服务封装工作的专业性要求,能够有效取代人工解析得到字段描述信息的处理方式,有利于控制服务封装工作的人力投入成本,降低人工操作引入错误的出现概率。
作为一种可行的实施例,抽象语法树中包括至少一种语法结构,第二处理模块包括:第一处理子模块,用于利用与各语法结构关联的预设解析器,进行针对目标代码文本的解析处理,得到由字段描述信息指示的业务要素信息,其中,字段描述信息包括通讯区字段名称、通讯区字段顺序、通讯区字段长度、通讯区字段类型、通讯区字段描述、通讯区字段传输类型、通讯区字段偏移和通讯区顺序中的至少之一。
作为一种可行的实施例,至少一个序列化对象至少包括程序定义对象、数据结构对象、方法定义对象和数据库处理方法对象;第三处理模块包括:第二处理子模块,用于结合预设聚合规则,将至少一类业务要素信息序列化聚合处理为单个序列化对象,以此得到至少一个序列化对象。
作为一种可行的实施例,该装置还包括:第四处理模块,用于响应于反序列化指令,对至少一个序列化对象进行反序列化处理,得到与各序列化对象关联的业务要素信息;第五处理模块,用于根据与业务要素信息关联的字段描述信息,生成针对业务要素信息的服务描述文件;第六处理模块,用于将服务描述文件发送给服务调用方,以使服务调用方基于服务描述文件进行服务调用。
作为一种可行的实施例,第五处理模块包括:第三处理子模块,用于根据与业务要素信息关联的字段描述信息,生成用于描述目标代码文本的通讯区结构及通讯区内部字段结构的结构描述文件。
作为一种可行的实施例,第五处理模块包括:第四处理子模块,用于根据与业务要素信息关联的字段描述信息,生成基于字段级别描述的字段传输类型的传输描述文件。
作为一种可行的实施例,第五处理模块包括:第五处理子模块,用于根据与业务要素信息关联的字段描述信息,生成用于规定向服务调用方返回的数据格式类型的格式描述文件。
作为一种可行的实施例,第五处理模块包括:第六处理子模块,用于根据与业务要素信息关联的字段描述信息,生成用于指导服务调用方进行外调服务测试的测试描述文件。
需要说明的是,在本公开实施例中,装置部分的实施方式与方法部分的实施方式相同或类似,在此不再赘述。
根据本公开的实施例的模块中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者根据本公开实施例的模块中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一处理模块701、第二处理模块702和第三处理模块703中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一处理模块701、第二处理模块702和第三处理模块703中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。第一处理模块701、第二处理模块702和第三处理模块703中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的电子设备的框图。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800包括处理器810、计算机可读存储介质820。该电子设备800可以执行根据本公开实施例的方法。
具体地,处理器810例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器810还可以包括用于缓存用途的板载存储器。处理器810可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理模块或者是多个处理模块。
计算机可读存储介质820,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质820可以包括计算机程序821,该计算机程序821可以包括代码/计算机可执行指令,其在由处理器810执行时使得处理器810执行根据本公开实施例的方法或其任何变形。
计算机程序821可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序821中的代码可以包括一个或多个程序模块,例如包括模块821A、模块821B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器810执行时,使得处理器810可以执行根据本公开实施例的方法或其任何变形。
根据本公开的实施例,第一处理模块701、第二处理模块702和第三处理模块703中的至少一个可以实现为参考图8描述的计算机程序模块,其在被处理器810执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

Claims (9)

1.一种代码处理方法,包括:
响应于序列化指令,读取服务提供方的目标代码文本,并将所述目标代码文本转换为抽象语法树,其中,所述抽象语法树中包括至少一种语法结构;
基于所述抽象语法树解析所述目标代码文本,得到所述目标代码文本中由字段描述信息指示的业务要素信息,其中,所述基于所述抽象语法树解析所述目标代码文本,得到所述目标代码文本中由字段描述信息指示的业务要素信息,包括:利用与各所述语法结构关联的预设解析器,进行针对所述目标代码文本的解析处理,得到由所述字段描述信息指示的业务要素信息,其中,所述字段描述信息包括通讯区字段名称、通讯区字段顺序、通讯区字段长度、通讯区字段类型、通讯区字段描述、通讯区字段传输类型、通讯区字段偏移和通讯区顺序中的至少之一;
对所述业务要素信息进行序列化处理,得到至少一个序列化对象并保存,以实现为进行服务封装工作提供数据支持,其中,所述至少一个序列化对象至少包括程序定义对象、数据结构对象、方法定义对象和数据库处理方法对象;所述对所述业务要素信息进行序列化处理,得到至少一个序列化对象,包括:结合预设聚合规则,将至少一类业务要素信息序列化聚合处理为单个所述序列化对象,以此得到至少一个序列化对象。
2.根据权利要求1所述的方法,还包括:
响应于反序列化指令,对所述至少一个序列化对象进行反序列化处理,得到与各所述序列化对象关联的业务要素信息;
根据与所述业务要素信息关联的字段描述信息,生成针对所述业务要素信息的服务描述文件;
将所述服务描述文件发送给服务调用方,以使所述服务调用方基于所述服务描述文件进行服务调用。
3.根据权利要求2所述的方法,其中,所述根据与所述业务要素信息关联的字段描述信息,生成针对所述业务要素信息的服务描述文件,包括:
根据与所述业务要素信息关联的字段描述信息,生成用于描述所述目标代码文本的通讯区结构及通讯区内部字段结构的结构描述文件。
4.根据权利要求2所述的方法,其中,所述根据与所述业务要素信息关联的字段描述信息,生成针对所述业务要素信息的服务描述文件,包括:
根据与所述业务要素信息关联的字段描述信息,生成基于字段级别描述的字段传输类型的传输描述文件。
5.根据权利要求2所述的方法,其中,所述根据与所述业务要素信息关联的字段描述信息,生成针对所述业务要素信息的服务描述文件,包括:
根据与所述业务要素信息关联的字段描述信息,生成用于规定向所述服务调用方返回的数据格式类型的格式描述文件。
6.根据权利要求2所述的方法,其中,所述根据与所述业务要素信息关联的字段描述信息,生成针对所述业务要素信息的服务描述文件,包括:
根据与所述业务要素信息关联的字段描述信息,生成用于指导所述服务调用方进行外调服务测试的测试描述文件。
7.一种代码处理装置,包括:
第一处理模块,用于响应于序列化指令,读取服务提供方的目标代码文本,并将所述目标代码文本转换为抽象语法树,其中,所述抽象语法树中包括至少一种语法结构;
第二处理模块,用于基于所述抽象语法树解析所述目标代码文本,得到所述目标代码文本中由字段描述信息指示的业务要素信息,其中,所述基于所述抽象语法树解析所述目标代码文本,得到所述目标代码文本中由字段描述信息指示的业务要素信息,包括:利用与各所述语法结构关联的预设解析器,进行针对所述目标代码文本的解析处理,得到由所述字段描述信息指示的业务要素信息,其中,所述字段描述信息包括通讯区字段名称、通讯区字段顺序、通讯区字段长度、通讯区字段类型、通讯区字段描述、通讯区字段传输类型、通讯区字段偏移和通讯区顺序中的至少之一;
第三处理模块,用于对所述业务要素信息进行序列化处理,得到至少一个序列化对象并保存,以实现为进行服务封装工作提供数据支持,其中,所述至少一个序列化对象至少包括程序定义对象、数据结构对象、方法定义对象和数据库处理方法对象;所述对所述业务要素信息进行序列化处理,得到至少一个序列化对象,包括:结合预设聚合规则,将至少一类业务要素信息序列化聚合处理为单个所述序列化对象,以此得到至少一个序列化对象。
8.一种电子设备,包括:
一个或多个处理器;以及
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至6任一项所述的方法。
9.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至6任一项所述的方法。
CN202110385943.0A 2021-04-09 2021-04-09 代码处理方法和装置 Active CN113094026B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110385943.0A CN113094026B (zh) 2021-04-09 2021-04-09 代码处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110385943.0A CN113094026B (zh) 2021-04-09 2021-04-09 代码处理方法和装置

Publications (2)

Publication Number Publication Date
CN113094026A CN113094026A (zh) 2021-07-09
CN113094026B true CN113094026B (zh) 2024-02-06

Family

ID=76676144

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110385943.0A Active CN113094026B (zh) 2021-04-09 2021-04-09 代码处理方法和装置

Country Status (1)

Country Link
CN (1) CN113094026B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114489670A (zh) * 2022-01-14 2022-05-13 北京达佳互联信息技术有限公司 数据处理方法、装置、设备及存储介质
CN114237775A (zh) * 2022-02-21 2022-03-25 众连智能科技有限公司 一种并行执行方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293653A (zh) * 2015-05-19 2017-01-04 深圳市腾讯计算机系统有限公司 代码处理方法及装置
CN110737466A (zh) * 2019-10-16 2020-01-31 南京航空航天大学 基于静态程序分析的源代码编码序列表示方法
CN112130837A (zh) * 2020-09-25 2020-12-25 腾讯科技(深圳)有限公司 一种代码处理方法、装置及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8464234B2 (en) * 2011-10-24 2013-06-11 Google Inc. Pre-parsed headers for compilation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293653A (zh) * 2015-05-19 2017-01-04 深圳市腾讯计算机系统有限公司 代码处理方法及装置
CN110737466A (zh) * 2019-10-16 2020-01-31 南京航空航天大学 基于静态程序分析的源代码编码序列表示方法
CN112130837A (zh) * 2020-09-25 2020-12-25 腾讯科技(深圳)有限公司 一种代码处理方法、装置及存储介质

Also Published As

Publication number Publication date
CN113094026A (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
US10810110B1 (en) Methods, systems, and articles of manufacture for testing web services using a behavior-driven development domain specific language framework
US8413041B2 (en) Apparatus and method for parsing XML document by using external XML validator
US7870482B2 (en) Web browser extension for simplified utilization of web services
US8583413B2 (en) Computer method and apparatus for chaining of model-to-model transformations
CN113094026B (zh) 代码处理方法和装置
CN109831466B (zh) 微服务业务处理方法及nginx服务器
CN110457144A (zh) 一种实现前端应用的方法、装置、介质和设备
US20190354414A1 (en) Automatically building a web api definition from a microservice or web application
US20170013090A1 (en) Client-side aggregation of nested resource dependencies
WO2019029451A1 (zh) 发布移动应用的方法和电子设备
CN110737631A (zh) 一种基于Flink引擎的数据解析方法及装置
CN111859205A (zh) 一种用于批量处理任务的解析方法及设备
CN113761871A (zh) 富文本渲染方法、装置、电子设备以及存储介质
US8997116B2 (en) Event logging application programming interface (API)
CN112631590A (zh) 组件库生成方法、装置、电子设备和计算机可读介质
CN115357663A (zh) 基于增量数据同步组件的数据同步方法、系统及装置
CN113419740A (zh) 程序数据流的分析方法、装置、电子设备及可读存储介质
CN114443159A (zh) 一种插件处理装置、方法、计算机设备和存储介质
US20080066060A1 (en) Redirection interface system and method for CIM object manager provider
EP3872630B1 (en) Request processing method and apparatus, electronic device, and computer storage medium
KR20150133902A (ko) 소프트웨어 제품 라인에 기반한 서비스 개발 시스템 및 방법
CN109683992B (zh) 用于管理对象的方法和装置
CN111177089B (zh) 日志处理代码的生成方法和装置、计算机系统和存储介质
CN116841559A (zh) 代码转换方法、装置、设备、介质和程序产品
CN112783903B (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