CN114968622A - 处理器接口管理方法、装置、设备及存储介质 - Google Patents
处理器接口管理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114968622A CN114968622A CN202210579720.2A CN202210579720A CN114968622A CN 114968622 A CN114968622 A CN 114968622A CN 202210579720 A CN202210579720 A CN 202210579720A CN 114968622 A CN114968622 A CN 114968622A
- Authority
- CN
- China
- Prior art keywords
- processor
- service
- interface
- service point
- execution code
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- 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/425—Lexical analysis
-
- 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
- G06F8/436—Semantic checking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及研发管理领域,公开了一种处理器接口管理方法、装置、设备及存储介质,该方法包括:将业务逻辑分解,得到至少一个业务点;基于业务点对应执行代码的编程语义,确定处理器类型,并将业务点编写至对应的处理器组件中;基于处理器类型,通过对应的处理器组件管理器管理处理器组件,得到对应的处理器接口,对处理器接口进行名称指定,确定对应的接口名称;当获取到业务请求时,根据业务请求调用的处理器接口的接口名称,从处理器组件管理器中调用对应的处理器组件执行业务请求。本方法通过组件化的方式使得处理器组件管理器统一组织接口业务,避免业务层逻辑不清、代码冗长,并且,通过业务点解耦后组件化,新增变更时不会引起级联修改。
Description
技术领域
本发明涉及研发管理领域,尤其涉及一种处理器接口管理方法、装置、设备及存储介质。
背景技术
现在java后台开发流行采用三层架构,即控制层、业务层和持久层,在一些流程长、流程节点多样化的场景中,例如车险报价业务,拥有多个流程节点,包含报价准备、续保检查、投保身份确认、车辆信息处理、投保人信息处理、车主信息处理、报价结算渠道业绩归属、报价方案推荐、报价配置信息获取、报价日志名单下发、报价日志记录等多个处理节点流程。在进行业绩归属时,分场景会通过邀请码、渠道设定、prs、业务员信息等信息进行报价结算,在推荐报价方案时,也可有历史报价方案、去年保单方案、渠道实时推荐方案、统一默认推荐方案等来源,在这些业务场景中,所有的业务点都集中在业务层,导致业务层逻辑不清、代码冗长,业务点的变更直接在业务层的全量代码上进行修改,容易影响整个流程,单元测试难度大。
发明内容
本发明的主要目的在于解决现有的后台开发在流程长的场景下业务点都集中在业务层,导致业务层逻辑不清、代码冗长的技术问题。
本发明第一方面提供了一种处理器接口管理方法,包括:获取输入的业务逻辑,并将所述业务逻辑分解,得到所述业务逻辑对应的至少一个业务点;获取所述业务点对应的执行代码,基于所述执行代码的编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中;基于所述处理器类型,将所述处理器组件通过对应的处理器组件管理器进行管理,得到对应的处理器接口,并对所述处理器接口进行名称指定,确定各处理器接口对应的接口名称;当获取到业务请求时,根据所述业务请求调用的处理器接口的接口名称,从所述处理器组件管理器中调用对应的处理器组件执行所述业务请求。
可选的,在本发明第一方面的第一种实现方式中,所述获取输入的业务逻辑,并将所述业务逻辑分解,得到所述业务逻辑对应的至少一个业务点包括:获取输入的业务逻辑,并解析所述业务逻辑,得到所述业务逻辑对应的逻辑关系表;根据所述逻辑关系表将所述业务逻辑分解成业务变量和表达式;根据所述业务变量和表达式,确定所述业务逻辑对应的至少一个业务点。
可选的,在本发明第一方面的第二种实现方式中,所述获取所述业务点对应的执行代码,基于所述执行代码的编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中包括:获取所述业务点对应的执行代码,并将所述执行代码输入预设的语法分析器中,通过所述语法分析器得到所述执行代码对应的抽象语法树;根据所述抽象语法树中的节点,解析所述执行代码对应的编程语义;基于所述编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中。
可选的,在本发明第一方面的第三种实现方式中,所述获取所述业务点对应的执行代码,并将所述执行代码输入预设的语法分析器中,通过所述语法分析器得到所述执行代码对应的抽象语法树包括:获取所述业务点对应的执行代码,并将所述执行代码输入所述语法分析器中,通过所述语法分析器对所述执行代码进行逐行扫描并分解成词法单元,其中,所述词法单元为编程语言中字符串形式的基本单词符号;将所述词法单元序列组合成数组;根据所述数组对所述执行代码进行语法分析,判断所述执行代码的语法是否正确;若是,则根据预设的执行代码语言规范,生成与所述执行代码对应的语法分析树;调用所述语法分析树中各节点对应的节点对象创建方法,创建节点对象,根据所述节点对象生成抽象语法树。
可选的,在本发明第一方面的第四种实现方式中,所述基于所述编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中包括:基于所述编程语义,确定所述业务点对应的处理器类型,其中,所述处理器类型包括顺序处理器和策略处理器;若所述业务点对应的处理器类型为策略处理器,则确定所述业务点的实现方式的数量,将所述业务点编写至对应数量的策略处理器组件;若所述业务点对应的处理器类型为顺序处理器,则根据所述业务逻辑拆分业务点的顺序,设置所述业务点的顺序值;所述业务逻辑对应的处理器类型为顺序处理器的业务点编写至顺序处理器组件。
可选的,在本发明第一方面的第五种实现方式中,所述根据所述业务请求调用的处理器接口的接口名称,从所述处理器组件管理器中调用对应的处理器组件执行所述业务请求包括:根据所述业务请求调用的处理器接口的接口名称,调用所述处理器组件管理器中对应的处理器组件;若调用的处理器组件为顺序处理器组件,则根据调用的顺序处理器组件的顺序值,确定所述顺序处理器组件的执行顺序,并按照所述执行顺序使用调用的顺序处理器组件执行所述业务请求;若调用的处理器组件为策略处理器组件,则根据所述业务请求中的请求参数,确定所述业务请求对应的实现方式,并根据所述业务请求对应的实现方式,确定执行的策略处理器组件;通过执行的策略处理器组件执行所述业务请求。
可选的,在本发明第一方面的第六种实现方式中,在所述根据所述业务请求调用的处理器接口的接口名称,从所述处理器组件管理器中调用对应的处理器组件执行所述业务请求之后,还包括:获取业务逻辑修改请求,并根据所述业务逻辑修改请求确定待修改业务点;通过所述处理器组件管理器确定所述待修改业务点对应的待修改处理器组件;根据所述业务逻辑修改请求,对所述待修改处理器组件进行修改,并将修改后的待修改处理器组件通过对应的处理器组件管理器进行管理。
本发明第二方面提供了一种处理器接口管理装置,包括:分解模块,用于获取输入的业务逻辑,并将所述业务逻辑分解,得到所述业务逻辑对应的至少一个业务点;组件模块,用于获取所述业务点对应的执行代码,基于所述执行代码的编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中;接口模块,用于基于所述处理器类型,将所述处理器组件通过对应的处理器组件管理器进行管理,得到对应的处理器接口,并对所述处理器接口进行名称指定,确定各处理器接口对应的接口名称;执行模块,用于当获取到业务请求时,根据所述业务请求调用的处理器接口的接口名称,从所述处理器组件管理器中调用对应的处理器组件执行所述业务请求。
可选的,在本发明第二方面的第一种实现方式中,所述分解模块具体用于:获取输入的业务逻辑,并解析所述业务逻辑,得到所述业务逻辑对应的逻辑关系表;根据所述逻辑关系表将所述业务逻辑分解成业务变量和表达式;根据所述业务变量和表达式,确定所述业务逻辑对应的至少一个业务点。
可选的,在本发明第二方面的第二种实现方式中,所述组件模块具体包括:语法树构建单元,用于获取所述业务点对应的执行代码,并将所述执行代码输入预设的语法分析器中,通过所述语法分析器得到所述执行代码对应的抽象语法树;解析单元,用于根据所述抽象语法树中的节点,解析所述执行代码对应的编程语义;组件编写单元,用于基于所述编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中。
可选的,在本发明第二方面的第三种实现方式中,所述语法树构建单元具体用于:获取所述业务点对应的执行代码,并将所述执行代码输入所述语法分析器中,通过所述语法分析器对所述执行代码进行逐行扫描并分解成词法单元,其中,所述词法单元为编程语言中字符串形式的基本单词符号;将所述词法单元序列组合成数组;根据所述数组对所述执行代码进行语法分析,判断所述执行代码的语法是否正确;若是,则根据预设的执行代码语言规范,生成与所述执行代码对应的语法分析树;调用所述语法分析树中各节点对应的节点对象创建方法,创建节点对象,根据所述节点对象生成抽象语法树。
可选的,在本发明第二方面的第四种实现方式中,所述组件编写单元具体用于:基于所述编程语义,确定所述业务点对应的处理器类型,其中,所述处理器类型包括顺序处理器和策略处理器;若所述业务点对应的处理器类型为策略处理器,则确定所述业务点的实现方式的数量,将所述业务点编写至对应数量的策略处理器组件;若所述业务点对应的处理器类型为顺序处理器,则根据所述业务逻辑拆分业务点的顺序,设置所述业务点的顺序值;所述业务逻辑对应的处理器类型为顺序处理器的业务点编写至顺序处理器组件。
可选的,在本发明第二方面的第五种实现方式中,所述执行模块具体用于:根据所述业务请求调用的处理器接口的接口名称,调用所述处理器组件管理器中对应的处理器组件;若调用的处理器组件为顺序处理器组件,则根据调用的顺序处理器组件的顺序值,确定所述顺序处理器组件的执行顺序,并按照所述执行顺序使用调用的顺序处理器组件执行所述业务请求;若调用的处理器组件为策略处理器组件,则根据所述业务请求中的请求参数,确定所述业务请求对应的实现方式,并根据所述业务请求对应的实现方式,确定执行的策略处理器组件;通过执行的策略处理器组件执行所述业务请求。
可选的,在本发明第二方面的第六种实现方式中,所述处理器接口管理装置还包括组件修改模块,所述组件修改模块具体用于:获取业务逻辑修改请求,并根据所述业务逻辑修改请求确定待修改业务点;通过所述处理器组件管理器确定所述待修改业务点对应的待修改处理器组件;根据所述业务逻辑修改请求,对所述待修改处理器组件进行修改,并将修改后的待修改处理器组件通过对应的处理器组件管理器进行管理。
本发明第三方面提供了一种处理器接口管理设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述处理器接口管理设备执行上述的处理器接口管理方法的步骤。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的处理器接口管理方法的步骤。
本发明的技术方案中,通过获取输入的业务逻辑,并将所述业务逻辑分解,得到所述业务逻辑对应的至少一个业务点;获取所述业务点对应的执行代码,基于所述执行代码的编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中;基于所述处理器类型,将所述处理器组件通过对应的处理器组件管理器进行管理,得到对应的处理器接口,并对所述处理器接口进行名称指定,确定各处理器接口对应的接口名称;当获取到业务请求时,根据所述业务请求调用的处理器接口的接口名称,从所述处理器组件管理器中调用对应的处理器组件执行所述业务请求。本方法通过组件化的方式使得处理器组件管理器统一组织接口业务,避免业务层逻辑不清、代码冗长,并且,通过业务点解耦后组件化,新增变更时不会引起级联修改。
附图说明
图1为本发明实施例中处理器接口管理方法的第一个实施例示意图;
图2为本发明实施例中处理器接口管理方法的第二个实施例示意图;
图3为本发明实施例中处理器接口管理方法的第三个实施例示意图;
图4为本发明实施例中处理器接口管理装置的一个实施例示意图;
图5为本发明实施例中处理器接口管理装置的另一个实施例示意图;
图6为本发明实施例中处理器接口管理设备的一个实施例示意图。
具体实施方式
本发明的技术方案中,通过获取输入的业务逻辑,并将所述业务逻辑分解,得到所述业务逻辑对应的至少一个业务点;获取所述业务点对应的执行代码,基于所述执行代码的编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中;基于所述处理器类型,将所述处理器组件通过对应的处理器组件管理器进行管理,得到对应的处理器接口,并对所述处理器接口进行名称指定,确定各处理器接口对应的接口名称;当获取到业务请求时,根据所述业务请求调用的处理器接口的接口名称,从所述处理器组件管理器中调用对应的处理器组件执行所述业务请求。本方法通过组件化的方式使得处理器组件管理器统一组织接口业务,避免业务层逻辑不清、代码冗长,并且,通过业务点解耦后组件化,新增变更时不会引起级联修改。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中处理器接口管理方法的第一个实施例包括:
101、获取输入的业务逻辑,并将业务逻辑分解,得到业务逻辑对应的至少一个业务点;
可以理解的是,本发明的执行主体可以为处理器接口管理装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在实际应用中,以车险报价业务为例,包含报价准备、续保检查、投保身份确认、车辆信息处理、投保人信息处理、车主信息处理、报价结算渠道业绩归属、报价方案推荐、报价配置信息获取、报价日志名单下发、报价日志记录等多个处理节点流程,在进行业绩归属时,分场景会通过邀请码、渠道设定、prs、业务员信息等信息进行报价结算,在推荐报价方案时,也可有历史报价方案、去年保单方案、渠道实时推荐方案、统一默认推荐方案等来源,可以根据车险报价业务的多个业务,对车险报价业务的业务逻辑进行业务逻辑的分解,得到多个车险报价业务的业务逻辑的多个业务点。
在本实施例中,分解就是业务流程的拆分,拆分原则就是单一职责原则,即业务流程拆分为一个业务点,每个业务点做单一的事情,车险报价业务包括报价准备、续保检查、投保身份确认、车辆信息处理、投保人信息处理、车主信息处理、报价结算渠道业绩归属、报价方案推荐、报价配置信息获取、报价日志名单下发、报价日志记录等多个业务点,可以通过每个业务点对应需要的业务参数和逻辑表达式进行区分,进行将业务逻辑进行分解得到业务点。
102、获取业务点对应的执行代码,基于执行代码的编程语义,确定业务点对应的处理器类型,并将业务点编写至对应的处理器组件中;
在本实施例中,根据不同的业务点,编程人员可以编写对应的执行代码后输入,业务拆分之后,具体实现是依靠代码执行的,需要实现对应业务点的对应处理器的代码,此外,也可以是预先设置好的执行代码,在进行业务逻辑分解后,通过预设的映射关系,获取业务点对应的执行代码。
在本实施例中,定义两种不同的处理器类型,顺序处理器OrderedHandler和策略处理器StrategicHandler,OrderedHandler代表业务逻辑的顺序执行,多个相同名称的处理器按照给定的顺序构成业务流程,StrategicHandler代表控制语义,可将原有复杂的switch语句和if-else语句进行策略组件化,当一个业务点在不同的条件下需要不同的实现方式,在代码的呈现上就是通过switch语句和if-else语句表达,比如有A、B、C三种实现,那么就需要使用三个策略处理器来分别实现,相当于把条件语句的每一个条件分支进行了策略组件化。
在实际应用中,编程中常见两种编程语义,一种是顺序执行,即代码运行时按照编写顺序进行,还有一种是控制语句,即代码运行过程中会根据设置的条件来判断执行哪一部分的代码。一个业务功能可以看作是由多个业务点组成,这些业务点存在先后顺序,我们将这些按顺序执行的业务点使用顺序处理器实现,这些业务点对应的处理器类型即为顺序处理器。一个业务点在不同的条件下会有不同的处理方式,不同的条件对应的就是不同的策略,这些不同的处理方式使用策略处理器实现,这些业务点对应的处理器类型即为策略处理器。
103、基于处理器类型,将处理器组件通过对应的处理器组件管理器进行管理,得到对应的处理器接口,并对处理器接口进行名称指定,确定各处理器接口对应的接口名称;
在本实施例中,编写一个顺序处理器组件管理器和策略处理器组件管理器。顺序处理器组件管理器用于组织管,处理器组件管理器里面会存放所有的已实现的业务处理器,并按照指定的名称和顺序分组按顺序存储,一个接口的实现只需要告诉管理器接口的标识名称,管理器就会调度对应名称的处理器并按顺序执行。
在本实施例中,接口即对外提供的业务功能,一个接口的业务功能会包含多个业务点,而一个处理器即提供了一个业务点的实现,可以看作一个接口是由多个处理器协作来工作的,处理器组件管理器对业务逻辑中相同类型的多个业务点对应的处理器进行统一管理,一套业务逻辑的多个处理器作为借口对外提供业务逻辑对应的业务功能,并对该接口指定一个名称,这个名称会关联接口对应的一系列处理器,一个名称标示的处理器会有多个,接口的名称唯一标示一个接口,因为处理器管理器中管理了各种的处理器,需要通过一个名称来告诉处理器,业务逻辑正在实现的接口功能是由哪些处理器来协作完成的。
104、当获取到业务请求时,根据业务请求调用的处理器接口的接口名称,从处理器组件管理器中调用对应的处理器组件执行业务请求。
在本实施例中,在基于处理器的组件式编程框架的应用下,以车险报价业务为例,将报价准备、续保检查、投保身份确认、车辆信息处理、投保人信息处理、车主信息处理、报价结算渠道业绩归属、报价方案推荐、报价配置信息获取、报价日志名单下发、报价日志记录等业务分别使用一个顺序处理器组件进行实现,并将这些流程节点处理器,通过顺序处理器组件管理器进行链式处理,这样使得各流程节点独立解耦的情况下,又协作完成整个报价业务,涉及到业绩归属和方案推荐等依据不同的条件来确认处理方案的流程节点,使用策略处理器来实现各种处理方案,使用策略模式通过策略处理器管理器来确认选择合适的处理方式,来实现业务请求。
在本实施例中,通过获取输入的业务逻辑,并将所述业务逻辑分解,得到所述业务逻辑对应的至少一个业务点;获取所述业务点对应的执行代码,基于所述执行代码的编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中;基于所述处理器类型,将所述处理器组件通过对应的处理器组件管理器进行管理,得到对应的处理器接口,并对所述处理器接口进行名称指定,确定各处理器接口对应的接口名称;当获取到业务请求时,根据所述业务请求调用的处理器接口的接口名称,从所述处理器组件管理器中调用对应的处理器组件执行所述业务请求。本方法通过组件化的方式使得处理器组件管理器统一组织接口业务,避免业务层逻辑不清、代码冗长,并且,通过业务点解耦后组件化,新增变更时不会引起级联修改。
请参阅图2,本发明实施例中处理器接口管理方法的第二个实施例包括:
201、获取输入的业务逻辑,并将业务逻辑分解,得到业务逻辑对应的至少一个业务点;
202、获取业务点对应的执行代码,并将执行代码输入语法分析器中,通过语法分析器对执行代码进行逐行扫描并分解成词法单元;
203、将词法单元序列组合成数组;
在本实施例中,在本实施例中,在词法分析过程中扫描执行代码的每条语句,边扫描边进行分词,得到执行代码的每条语句的词法单元。词法单元是语句的基本组成单元,词法单元可以是关键字、变量名、操作符、常量等,例如,获取到执行代码为“const a=1,const b=a+1;”,扫描第一条语句“const a=1,”,首先会扫描到“const”,生成一个词法单元表示“const”为关键字;接着扫描到“a”,生成一个词法单元表示“a”为变量名;然后扫描到“=”,生成一个词法单元表示“=”为操作符;再扫描到常量“1”,生成一个词法单元表示“1”为常量;最后扫描到标点符号“,”,生成一个词法单元表示“,”为标点符号。词法分析过程中将语句“const a=1,”的各个词法单元组成数组{const a=1,}。类似地,词法分系统将语句“const b=a+1;”转换为由词法单元组成的数组{const b=a+1;}。
204、根据数组对执行代码进行语法分析,判断执行代码的语法是否正确;
205、若是,则根据预设的执行代码语言规范,生成与执行代码对应的语法分析树;
206、调用语法分析树中各节点对应的节点对象创建方法,创建节点对象,根据节点对象生成抽象语法树;
在本实施例中,若执行代码的语法错误,可以将错误信息反馈给用户,接收用户返回的修改后的执行代码,对修改后的执行代码进行词法分析,将修改后的执行代码转换为由词法单元组成的数组,根据修改后的执行代码的由词法单元组成的数组生成所述抽象语法树。例如,语法分析器对执行代码“const a=1,const b=a+1;”进行分析,确定所述执行代码的第一条语句“const a=1,”的语法错误,该语句的结尾应该是分号而不是逗号。语法分析器将错误信息反馈给用户,接收用户返回的修改后的执行代码。例如,接收用户返回的修改后的执行代码“const a=1;const b=a+1;”。词法分析器对修改后的执行代码进行词法分析,得到修改后的执行代码的由词法单元组成的数组,例如得到{const a=1;},{const b=a+1;},语法分析器根据修改后的执行代码的由词法单元组成的数组生成所述抽象语法树。
在本实施例中,抽象语法树是在语法分析树的基础上建立的。其工作过程是依据自定义的抽象语法树的文法,解析分析语法树中的字符串并提取Token信息,同时根据各级不同的节点,如根节点、类节点类、方法节点类,分别调用各自对应的方法,创建节点对象,继而生成程序抽象语法树。
207、根据抽象语法树中的节点,解析执行代码对应的编程语义;
在本实施例中,编程中常见两种编程语义,一种是顺序执行,即代码运行时按照编写顺序进行,还有一种是控制语句,即代码运行过程中会根据设置的条件来判断执行哪一部分的代码,通过抽象语法树中的节点,识别执行代码中是否含有switch语句和if-else语句,进而确定执行代码对应的业务点的处理器类型。
208、基于编程语义,确定业务点对应的处理器类型,其中,处理器类型包括顺序处理器和策略处理器;
209、若业务点对应的处理器类型为策略处理器,则确定业务点的实现方式的数量,将业务点编写至对应数量的策略处理器组件;
在本实施例中,当一个业务点在不同的条件下需要不同的实现方式,在代码的呈现上就是通过switch语句和if-else语句表达,比如有A、B、C三种实现,那么就需要使用三个策略处理器来分别实现,相当于把条件语句的每一个条件分支进行了策略组件化了。
210、若业务点对应的处理器类型为顺序处理器,则根据业务逻辑拆分业务点的顺序,设置业务点的顺序值;
211、将业务逻辑对应的处理器类型为顺序处理器的业务点编写至顺序处理器组件;
在本实施例中,顺序处理器都有一个顺序值,名称相同的处理器即为一个业务的各个业务点实现,这些业务点的执行顺序按照预先设置的顺序值大小,由小到大的执行。
212、基于处理器类型,将处理器组件通过对应的处理器组件管理器进行管理,得到对应的处理器接口,并对处理器接口进行名称指定,确定各处理器接口对应的接口名称;
213、当获取到业务请求时,根据业务请求调用的处理器接口的接口名称,从处理器组件管理器中调用对应的处理器组件执行业务请求。
本实施例在上一实施例的基础上,详细描述了获取所述业务点对应的执行代码,基于所述执行代码的编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中的过程,通过获取所述业务点对应的执行代码,并将所述执行代码输入预设的语法分析器中,通过所述语法分析器得到所述执行代码对应的抽象语法树;根据所述抽象语法树中的节点,解析所述执行代码对应的编程语义;基于所述编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中。本方法通过组件化的方式使得处理器组件管理器统一组织接口业务,避免业务层逻辑不清、代码冗长,并且,通过业务点解耦后组件化,新增变更时不会引起级联修改。
请参阅图3,本发明实施例中处理器接口管理方法的第三个实施例包括:
301、获取输入的业务逻辑,并解析业务逻辑,得到业务逻辑对应的逻辑关系表;
302、根据逻辑关系表将业务逻辑分解成业务变量和表达式;
303、根据业务变量和表达式,确定业务逻辑对应的至少一个业务点;
在本实施例中,业务逻辑包含有多个业务点,通过将业务逻辑分解成得到业务变量和表达式,并通过预设的映射关系分解的业务变量和表达式对应的业务点,进而确定业务逻辑对应的至少一个业务点。
304、获取业务点对应的执行代码,基于执行代码的编程语义,确定业务点对应的处理器类型,并将业务点编写至对应的处理器组件中;
305、基于处理器类型,将处理器组件通过对应的处理器组件管理器进行管理,得到对应的处理器接口,并对处理器接口进行名称指定,确定各处理器接口对应的接口名称;
306、根据业务请求调用的处理器接口的接口名称,调用处理器组件管理器中对应的处理器组件,其中,处理器组件包括顺序处理器组件和策略处理器组件;
307、若调用的处理器组件为顺序处理器组件,则根据调用的顺序处理器组件的顺序值,确定顺序处理器组件的执行顺序,并按照执行顺序使用调用的顺序处理器组件执行业务请求;
308、若调用的处理器组件为策略处理器组件,则根据业务请求中的请求参数,确定业务请求对应的实现方式,并根据业务请求对应的实现方式,确定执行的策略处理器组件;
309、通过执行的策略处理器组件执行业务请求;
310、获取业务逻辑修改请求,并根据业务逻辑修改请求确定待修改业务点;
311、通过处理器组件管理器确定待修改业务点对应的待修改处理器组件;
312、根据业务逻辑修改请求,对待修改处理器组件进行修改,并将修改后的待修改处理器组件通过对应的处理器组件管理器进行管理。
在本实施例中,接口需要新增业务点时,只需要新增实现对应业务点的处理器组件,并将对应的组件交由管理器管理,即可实现新增;或者原有的业务点需要变更,只需对对应的业务点组件进行修改,而不会对其他的业务组件造成影响,即可实现变更。
本实施例在前实施例的基础上,详细描述了获取输入的业务逻辑,并将所述业务逻辑分解,得到所述业务逻辑对应的至少一个业务点的过程,通过获取输入的业务逻辑,并解析所述业务逻辑,得到所述业务逻辑对应的逻辑关系表;根据所述逻辑关系表将所述业务逻辑分解成业务变量和表达式;根据所述业务变量和表达式,确定所述业务逻辑对应的至少一个业务点。本方法通过组件化的方式使得处理器组件管理器统一组织接口业务,避免业务层逻辑不清、代码冗长,并且,通过业务点解耦后组件化,新增变更时不会引起级联修改。
上面对本发明实施例中处理器接口管理方法进行了描述,下面对本发明实施例中处理器接口管理装置进行描述,请参阅图4,本发明实施例中处理器接口管理装置一个实施例包括:
分解模块401,用于获取输入的业务逻辑,并将所述业务逻辑分解,得到所述业务逻辑对应的至少一个业务点;
组件模块402,用于获取所述业务点对应的执行代码,基于所述执行代码的编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中;
接口模块403,用于基于所述处理器类型,将所述处理器组件通过对应的处理器组件管理器进行管理,得到对应的处理器接口,并对所述处理器接口进行名称指定,确定各处理器接口对应的接口名称;
执行模块404,用于当获取到业务请求时,根据所述业务请求调用的处理器接口的接口名称,从所述处理器组件管理器中调用对应的处理器组件执行所述业务请求。
本发明实施例中,所述处理器接口管理装置运行上述处理器接口管理方法,所述处理器接口管理装置通过获取输入的业务逻辑,并将所述业务逻辑分解,得到所述业务逻辑对应的至少一个业务点;获取所述业务点对应的执行代码,基于所述执行代码的编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中;基于所述处理器类型,将所述处理器组件通过对应的处理器组件管理器进行管理,得到对应的处理器接口,并对所述处理器接口进行名称指定,确定各处理器接口对应的接口名称;当获取到业务请求时,根据所述业务请求调用的处理器接口的接口名称,从所述处理器组件管理器中调用对应的处理器组件执行所述业务请求。本方法通过组件化的方式使得处理器组件管理器统一组织接口业务,避免业务层逻辑不清、代码冗长,并且,通过业务点解耦后组件化,新增变更时不会引起级联修改。
请参阅图5,本发明实施例中处理器接口管理装置的第二个实施例包括:
分解模块401,用于获取输入的业务逻辑,并将所述业务逻辑分解,得到所述业务逻辑对应的至少一个业务点;
组件模块402,用于获取所述业务点对应的执行代码,基于所述执行代码的编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中;
接口模块403,用于基于所述处理器类型,将所述处理器组件通过对应的处理器组件管理器进行管理,得到对应的处理器接口,并对所述处理器接口进行名称指定,确定各处理器接口对应的接口名称;
执行模块404,用于当获取到业务请求时,根据所述业务请求调用的处理器接口的接口名称,从所述处理器组件管理器中调用对应的处理器组件执行所述业务请求。
在本实施例中,所述分解模块401具体用于:获取输入的业务逻辑,并解析所述业务逻辑,得到所述业务逻辑对应的逻辑关系表;根据所述逻辑关系表将所述业务逻辑分解成业务变量和表达式;根据所述业务变量和表达式,确定所述业务逻辑对应的至少一个业务点。
在本实施例中,所述组件模块402具体包括:语法树构建单元4021,用于获取所述业务点对应的执行代码,并将所述执行代码输入预设的语法分析器中,通过所述语法分析器得到所述执行代码对应的抽象语法树;解析单元4022,用于根据所述抽象语法树中的节点,解析所述执行代码对应的编程语义;组件编写单元4023,用于基于所述编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中。
在本实施例中,所述语法树构建单元4021具体用于:获取所述业务点对应的执行代码,并将所述执行代码输入所述语法分析器中,通过所述语法分析器对所述执行代码进行逐行扫描并分解成词法单元,其中,所述词法单元为编程语言中字符串形式的基本单词符号;将所述词法单元序列组合成数组;根据所述数组对所述执行代码进行语法分析,判断所述执行代码的语法是否正确;若是,则根据预设的执行代码语言规范,生成与所述执行代码对应的语法分析树;调用所述语法分析树中各节点对应的节点对象创建方法,创建节点对象,根据所述节点对象生成抽象语法树。
在本实施例中,所述组件编写单元4023具体用于:基于所述编程语义,确定所述业务点对应的处理器类型,其中,所述处理器类型包括顺序处理器和策略处理器;若所述业务点对应的处理器类型为策略处理器,则确定所述业务点的实现方式的数量,将所述业务点编写至对应数量的策略处理器组件;若所述业务点对应的处理器类型为顺序处理器,则根据所述业务逻辑拆分业务点的顺序,设置所述业务点的顺序值;所述业务逻辑对应的处理器类型为顺序处理器的业务点编写至顺序处理器组件。
在本实施例中,所述执行模块具体404用于:根据所述业务请求调用的处理器接口的接口名称,调用所述处理器组件管理器中对应的处理器组件;若调用的处理器组件为顺序处理器组件,则根据调用的顺序处理器组件的顺序值,确定所述顺序处理器组件的执行顺序,并按照所述执行顺序使用调用的顺序处理器组件执行所述业务请求;若调用的处理器组件为策略处理器组件,则根据所述业务请求中的请求参数,确定所述业务请求对应的实现方式,并根据所述业务请求对应的实现方式,确定执行的策略处理器组件;通过执行的策略处理器组件执行所述业务请求。
在本实施例中,所述处理器接口管理装置还包括组件修改模块405,所述组件修改模块405具体用于:获取业务逻辑修改请求,并根据所述业务逻辑修改请求确定待修改业务点;通过所述处理器组件管理器确定所述待修改业务点对应的待修改处理器组件;根据所述业务逻辑修改请求,对所述待修改处理器组件进行修改,并将修改后的待修改处理器组件通过对应的处理器组件管理器进行管理。
本实施例在上一实施例的基础上,详细描述了各个模块的具体功能,通过处理器接口管理装置上的各个模块通过组件化的方式使得处理器组件管理器统一组织接口业务,避免业务层逻辑不清、代码冗长,并且,通过业务点解耦后组件化,新增变更时不会引起级联修改。
上面图4和图5从模块化功能实体的角度对本发明实施例中的中处理器接口管理装置进行详细描述,下面从硬件处理的角度对本发明实施例中处理器接口管理设备进行详细描述。
图6是本发明实施例提供的一种处理器接口管理设备的结构示意图,该处理器接口管理设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对处理器接口管理设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在处理器接口管理设备600上执行存储介质630中的一系列指令操作,以实现上述处理器接口管理方法的步骤。
处理器接口管理设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的处理器接口管理设备结构并不构成对本申请提供的处理器接口管理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述处理器接口管理方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种处理器接口管理方法,其特征在于,所述处理器接口管理方法包括:
获取输入的业务逻辑,并将所述业务逻辑分解,得到所述业务逻辑对应的至少一个业务点;
获取所述业务点对应的执行代码,基于所述执行代码的编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中;
基于所述处理器类型,将所述处理器组件通过对应的处理器组件管理器进行管理,得到对应的处理器接口,并对所述处理器接口进行名称指定,确定各处理器接口对应的接口名称;
当获取到业务请求时,根据所述业务请求调用的处理器接口的接口名称,从所述处理器组件管理器中调用对应的处理器组件执行所述业务请求。
2.根据权利要求1所述的处理器接口管理方法,其特征在于,所述获取输入的业务逻辑,并将所述业务逻辑分解,得到所述业务逻辑对应的至少一个业务点包括:
获取输入的业务逻辑,并解析所述业务逻辑,得到所述业务逻辑对应的逻辑关系表;
根据所述逻辑关系表将所述业务逻辑分解成业务变量和表达式;
根据所述业务变量和表达式,确定所述业务逻辑对应的至少一个业务点。
3.根据权利要求1所述的处理器接口管理方法,其特征在于,所述获取所述业务点对应的执行代码,基于所述执行代码的编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中包括:
获取所述业务点对应的执行代码,并将所述执行代码输入预设的语法分析器中,通过所述语法分析器得到所述执行代码对应的抽象语法树;
根据所述抽象语法树中的节点,解析所述执行代码对应的编程语义;
基于所述编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中。
4.根据权利要求3所述的处理器接口管理方法,其特征在于,所述获取所述业务点对应的执行代码,并将所述执行代码输入预设的语法分析器中,通过所述语法分析器得到所述执行代码对应的抽象语法树包括:
获取所述业务点对应的执行代码,并将所述执行代码输入所述语法分析器中,通过所述语法分析器对所述执行代码进行逐行扫描并分解成词法单元,其中,所述词法单元为编程语言中字符串形式的基本单词符号;
将所述词法单元序列组合成数组;
根据所述数组对所述执行代码进行语法分析,判断所述执行代码的语法是否正确;
若是,则根据预设的执行代码语言规范,生成与所述执行代码对应的语法分析树;
调用所述语法分析树中各节点对应的节点对象创建方法,创建节点对象,根据所述节点对象生成抽象语法树。
5.根据权利要求3所述的处理器接口管理方法,其特征在于,所述基于所述编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中包括:
基于所述编程语义,确定所述业务点对应的处理器类型,其中,所述处理器类型包括顺序处理器和策略处理器;
若所述业务点对应的处理器类型为策略处理器,则确定所述业务点的实现方式的数量,将所述业务点编写至对应数量的策略处理器组件;
若所述业务点对应的处理器类型为顺序处理器,则根据所述业务逻辑拆分业务点的顺序,设置所述业务点的顺序值;
所述业务逻辑对应的处理器类型为顺序处理器的业务点编写至顺序处理器组件。
6.根据权利要求5所述的处理器接口管理方法,其特征在于,所述根据所述业务请求调用的处理器接口的接口名称,从所述处理器组件管理器中调用对应的处理器组件执行所述业务请求包括:
根据所述业务请求调用的处理器接口的接口名称,调用所述处理器组件管理器中对应的处理器组件;
若调用的处理器组件为顺序处理器组件,则根据调用的顺序处理器组件的顺序值,确定所述顺序处理器组件的执行顺序,并按照所述执行顺序使用调用的顺序处理器组件执行所述业务请求;
若调用的处理器组件为策略处理器组件,则根据所述业务请求中的请求参数,确定所述业务请求对应的实现方式,并根据所述业务请求对应的实现方式,确定执行的策略处理器组件;
通过执行的策略处理器组件执行所述业务请求。
7.根据权利要求1-6中任一项所述的处理器接口管理方法,其特征在于,在所述根据所述业务请求调用的处理器接口的接口名称,从所述处理器组件管理器中调用对应的处理器组件执行所述业务请求之后,还包括:
获取业务逻辑修改请求,并根据所述业务逻辑修改请求确定待修改业务点;
通过所述处理器组件管理器确定所述待修改业务点对应的待修改处理器组件;
根据所述业务逻辑修改请求,对所述待修改处理器组件进行修改,并将修改后的待修改处理器组件通过对应的处理器组件管理器进行管理。
8.一种处理器接口管理装置,其特征在于,所述处理器接口管理装置包括:
分解模块,用于获取输入的业务逻辑,并将所述业务逻辑分解,得到所述业务逻辑对应的至少一个业务点;
组件模块,用于获取所述业务点对应的执行代码,基于所述执行代码的编程语义,确定所述业务点对应的处理器类型,并将所述业务点编写至对应的处理器组件中;
接口模块,用于基于所述处理器类型,将所述处理器组件通过对应的处理器组件管理器进行管理,得到对应的处理器接口,并对所述处理器接口进行名称指定,确定各处理器接口对应的接口名称;
执行模块,用于当获取到业务请求时,根据所述业务请求调用的处理器接口的接口名称,从所述处理器组件管理器中调用对应的处理器组件执行所述业务请求。
9.一种处理器接口管理设备,其特征在于,所述处理器接口管理设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述处理器接口管理设备执行如权利要求1-7任一项所述的处理器接口管理方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的处理器接口管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210579720.2A CN114968622A (zh) | 2022-05-26 | 2022-05-26 | 处理器接口管理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210579720.2A CN114968622A (zh) | 2022-05-26 | 2022-05-26 | 处理器接口管理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968622A true CN114968622A (zh) | 2022-08-30 |
Family
ID=82954880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210579720.2A Pending CN114968622A (zh) | 2022-05-26 | 2022-05-26 | 处理器接口管理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968622A (zh) |
-
2022
- 2022-05-26 CN CN202210579720.2A patent/CN114968622A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6523171B1 (en) | Enhanced source code translator from procedural programming language (PPL) to an object oriented programming language (OOPL) | |
US7203929B1 (en) | Design data validation tool for use in enterprise architecture modeling | |
CN112463149B (zh) | 一种面向软件定义卫星的可复用代码库构建方法与装置 | |
US20040181783A1 (en) | Transformation apparatus, transformation method, transformation programs, and computer readable recording medium having the transformation program stored therein | |
CN111026670B (zh) | 测试用例的生成方法、测试用例的生成装置及存储介质 | |
CN115639980A (zh) | 一种低代码平台可拖拽的前端逻辑编排方法及装置 | |
CN108959496A (zh) | 基于动态代理的跨数据库访问方法及抽象数据访问方法 | |
CN113901083B (zh) | 基于多解析器的异构数据源操作资源解析定位方法和设备 | |
CN112379917A (zh) | 浏览器兼容性提升方法、装置、设备及存储介质 | |
US20100030745A1 (en) | Record Based Code Structure | |
CN112487112A (zh) | 一种组件联动配置的方法、装置、计算机设备及存储介质 | |
US11922137B1 (en) | Architecture discovery | |
US20220374212A1 (en) | Indexing and accessing source code snippets contained in documents | |
US9244706B2 (en) | Command line shell command generation based on schema | |
Cutillo et al. | Identification and extraction of'domain independent'components in large programs | |
Angulo et al. | An approach for creating kdm2psm transformation engines in adm context: The rute-k2j case | |
CN114968622A (zh) | 处理器接口管理方法、装置、设备及存储介质 | |
CN107577476A (zh) | 一种基于模块划分的安卓系统源码差异性分析方法、服务器及介质 | |
CN113885844A (zh) | 一种业务服务编排方法及相关装置 | |
CN113946324A (zh) | 一种展示高通量测序数据结果的交互式可视化报告系统 | |
CN112905153B (zh) | 一种面向软件定义卫星的软件并行构建方法以及装置 | |
Chaudhary et al. | Intelligent virtual research environment for natural language processing (IvrE-NLP) | |
Fraternali et al. | Almost rerere: An approach for automating conflict resolution from similar resolved conflicts | |
Stanev et al. | Method for information systems automated programming | |
CN116185372B (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 |