CN116088855B - 开发方法、装置、电子设备和存储介质 - Google Patents
开发方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116088855B CN116088855B CN202310116279.9A CN202310116279A CN116088855B CN 116088855 B CN116088855 B CN 116088855B CN 202310116279 A CN202310116279 A CN 202310116279A CN 116088855 B CN116088855 B CN 116088855B
- Authority
- CN
- China
- Prior art keywords
- target
- resource controller
- generating
- resource
- script
- 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
- 238000011161 development Methods 0.000 title claims abstract description 64
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012545 processing Methods 0.000 claims abstract description 32
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012544 monitoring process Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 8
- 230000003993 interaction Effects 0.000 claims description 5
- 239000004744 fabric Substances 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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/35—Creation or generation of source code model driven
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本申请提供了一种开发方法、装置、电子设备和存储介质,旨在提高资源控制器开发的规范性和通用性。所述方法包括:基于可扩展标记语言XML,生成用于表征资源控制器的目标信息的目标脚本,所述目标信息至少包括:所述资源控制器的基础信息、以及所述资源控制器的服务处理逻辑;根据所述目标脚本,生成所述资源控制器。
Description
技术领域
本申请涉及软件开发技术领域,特别是涉及一种开发方法、装置、电子设备和存储介质。
背景技术
随着业务复杂性上升,往往需要对K8s资源控制器进行定制型的开发。开发人员通常使用官方提供的软件开发工具包(SDK,Software Development Kit)实现资源控制器开发,以致当前的开发方法受限于SDK支持的编程语言。
发明内容
鉴于上述问题,本申请实施例提供了一种开发方法、装置、电子设备和存储介质,以便克服上述问题或者至少部分地解决上述问题。
本申请实施例的第一方面,提供了一种开发方法,所述方法包括:
基于可扩展标记语言XML,生成用于表征资源控制器的目标信息的目标脚本,所述目标信息至少包括:所述资源控制器的基础信息、以及所述资源控制器的服务处理逻辑;
根据所述目标脚本,生成所述资源控制器。
可选地,根据所述目标脚本,生成所述资源控制器,包括:
对所述目标脚本进行语义分析,生成目标语义树;
根据所述目标语义树,生成所述资源控制器。
可选地,对所述目标脚本进行语义分析,生成目标语义树,包括:
生成用于表征所述目标脚本的根节点;
根据所述目标脚本表征的所述资源控制器的目标信息,生成子节点;
根据所述根节点和所述子节点,生成所述目标语义树。
可选地,根据所述目标脚本表征的所述资源控制器的目标信息,生成子节点,包括:
根据所述目标脚本表征的至少一个资源控制器的基础信息,生成所述根节点的至少一个第一子节点;
根据所述目标脚本表征的至少一个资源控制器各自的服务处理逻辑,生成所述至少一个第一子节点各自的第二子节点。
可选地,根据所述目标语义树,生成所述资源控制器,包括:
根据所述目标语义树中资源控制器对应的子节点,生成所述资源控制器对应的目标逻辑单元,所述目标逻辑单元用于执行所述资源控制器的服务处理逻辑;
利用内置的虚拟机编译所述目标逻辑单元,得到所述资源控制器。
可选地,所述目标逻辑单元为java插件,所述虚拟机为java虚拟机。
可选地,基于可扩展标记语言XML,生成用于表征资源控制器的目标信息的目标脚本,包括:
根据设定协议和所述目标信息,生成采用XML描述的目标脚本,所述设定协议包括用于存储所述目标信息的XML结构体。
可选地,所述设定协议包括以下至少一者:
第一结构体,用于存储所述资源控制器的基础信息;
第二结构体,用于存储所述资源控制器的服务处理逻辑。
可选地,所述资源控制器的服务处理逻辑至少包括:监听自定义资源CRD事件的业务逻辑。
可选地,根据所述目标脚本,生成所述资源控制器,包括:
根据所述目标脚本,生成所述资源控制器、以及所述资源控制器对应的目标集合,所述目标集合用于保存所述资源控制器与对应的CRD服务交互相关的变量和对象。
可选地,所述监听CRD事件包括监听CRD增加事件、监听CRD更新事件、以及监听CRD删除事件中的至少一者。
可选地,所述资源控制器的基础信息包括:所述资源控制器的id、以及所述资源控制器对应的CRD服务路径。
本申请实施例的第二方面,提供了一种开发装置,所述装置包括:
第一生成模块,用于基于可扩展标记语言XML,生成用于表征资源控制器的目标信息的目标脚本,所述目标信息至少包括:所述资源控制器的基础信息、以及所述资源控制器的服务处理逻辑;
第二生成模块,用于根据所述目标脚本,生成所述资源控制器。
本申请实施例的第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的开发方法的步骤。
本申请实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现如第一方面所述的开发方法的步骤。
本申请实施例的第五方面,提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如第一方面所述的开发方法的步骤。
本申请实施例包括以下优点:
本实施例中,提供了一种基于XML的资源控制器开发流程,借助于XML的通用性,使得该开发流程能够适用于不同编程语言和框架,且实现了资源控制器开发流程的标准化。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中一种开发方法的实施流程图;
图2是本申请实施例的一种资源控制器的开发标准的示意图;
图3是本申请实施例的一种目标语义树的示意图;
图4是本申请实施例的一种开发装置的结构示意图;
图5是本申请实施例中一种电子设备的示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
随着数字经济的发展,云原生技术在数字化转型中起着越来越重要的地位。Kubernetes(简称K8s)是一个轻便的和可扩展的开源平台,用于管理容器化应用和服务。K8s作为云原生体系的技术核心,具备完善的集群管理能力和资源调度能力。K8s中所有的内容均可以抽象为资源,通过对资源的实例化,可以为用户提供诸如服务发现、负载均衡、自动回滚等一系列功能。
K8s提供了诸多基础的资源类型,但随着业务量的增长,K8s资源与实际业务需求的结合是很有必要的。用户想要实例化更高级的资源,就必须实现自定义资源(CRD,CustomResource Define),并扩展其对应的资源控制器。在复杂的业务场景下,资源控制器开发会面临两个问题挑战:
(1)对于开发者来讲,资源控制器开发依赖于各自编程语言支持的SDK,缺少一个通用的、跨平台的开发标准,使得项目缺乏可读性和可扩展性。
(2)K8s官方提供的SDK当前仅支持几种编程语言(如java、python、javascript、csharp和go),对于官方支持编程语言覆盖之外的场景,需要自行额外开发,这使得开发的复杂性和成本将是巨大的。
针对上述相关技术中存在的问题,本申请提出了一种基于可扩展标记语言(XML,eXtensible Markup Language)脚本的K8s资源控制器开发方法,为资源控制器开发提供了一种开发标准,且解决了开发工作复杂性和局限性。
下面结合附图,通过一些实施例及其应用场景对本申请实施例提供的开发方法进行详细地说明。
第一方面,参照图1所示,为本申请实施例所提供的一种开发方法的实施流程图,该方法可以包括以下步骤:
步骤S11:基于可扩展标记语言XML,生成用于表征资源控制器的目标信息的目标脚本。
可以理解的是,XML可以用来标记数据、定义数据类型,是一种允许开发人员对自己的标记语言进行定义的源语言,具有通用性强、可扩展性良好、内容与形式分离、遵循严格的语法要求和保值性良好等优点,通过将XML引入对资源控制器的开发,能够实现对开发人员技术栈的友好接入,有利于实现资源控制器开发流程的跨平台标准化。
步骤S12:根据所述目标脚本,生成所述资源控制器。
其中,该目标脚本可以包含生成至少一个资源控制器所需的目标信息、以及该目标脚本的基础信息(如该目标脚本所支持XML的版本号和所支持的编码方式等)。
可以理解的是,K8s资源控制器用于监听资源的增加/更新/删除事件,并触发调谐(Reconcile)函数作为响应,整个调整过程被称作“调谐循环(Reconcile Loop)”或者“同步循环(Sync Loop)”。其中,Reconcile是一个使用资源对象的命名空间和资源对象名称来调用的函数,使得资源对象的实际状态与资源清单中定义的状态保持一致。调用完成后,Reconcile会将资源对象的状态更新为当前实际状态。
在具体实施时,开发人员可以在客户端采用XML编写上述调谐过程以生成目标脚本,并在生成目标脚本之后根据客户端所支持的编程语言和框架,对该目标脚本进行编译以在该客户端生成资源控制器,从而使得本申请提供的开发方法可以适用于不同编程语言和框架,在具备开发流程的标准化规范的前提下,兼顾了可扩展性。
采用本申请实施例的技术方案,提供了一种基于XML的资源控制器开发流程,借助于XML的通用性,使得该开发流程能够适用于不同编程语言和框架,且实现了资源控制器开发流程的标准化。
以下结合图2,对上述技术方案作进一步说明。如图2所示,本申请实施例提供了一种资源控制器的开发标准,包括:
步骤S21:根据设定协议和目标信息,生成采用XML描述的目标脚本,所述设定协议包括用于存储所述目标信息的XML结构体。
其中,目标信息至少包括:所述资源控制器的基础信息、以及所述资源控制器的服务处理逻辑。资源控制器的服务处理逻辑可以至少包括:监听自定义资源CRD事件的业务逻辑,用于实现对资源控制器的监听CRD事件的执行及响应逻辑定义。资源控制器的基础信息可以包括:资源控制器的id、以及资源控制器对应的CRD服务路径,该CRD服务路径可以用于资源控制器与K8s服务器中对应的CRD服务进行交互。
需要说明的是,在K8s上扩展资源类型的方式主要有以下三种:
第一种方式是CRD,CRD是k8s内置的资源类型,通过CRD资源可以将用户自定义资源类型转换为k8s上资源类型,;
第二种方式是自定义apiserver(K8s中的一种组件);
第三种方式就是修改K8s的源码,让其支持对应用户自定义资源类型。
可以理解的是,扩展自定义资源类型后,只能把对应资源类型的定义信息写入到K8s服务器中,不能让对应自定义类型资源实例化为一个自定义资源对象。故在扩展自定义资源类型后,还需要开发对应的资源控制器,将对应资源实例化为k8s上的资源对象,并专门负责监听对应的资源类型的资源变化。
为降低开发复杂度,开发人员主要采用第一种方式扩展资源类型。CRD作为Kubernetes为提高可扩展性,让开发人员去自定义资源的一种方式,CRD资源可以动态注册到Kubernetes集群中,注册完毕后,用户可以通过kubectl(操作K8s集群的命令行工具)来创建访问这个自定义的资源对象。但由于CRD仅是资源的定义,其仍然需要开发对应的资源控制器去监听CRD的各种事件并添加自定义的业务逻辑。
在具体实施时,该设定协议可以定义用于存储资源控制器生成所需各类信息(即监听CRD的各种事件的相关业务逻辑)的XML结构体、以及定义目标脚本所需包含的信息内容。开发人员可以根据该设定协议,选择适合的XML结构体以在客户端中进行目标脚本的编写及生成,有利于实现资源控制器开发流程的跨平台标准化,提高开发项目的可读性和可扩展性。
其中,所述设定协议可以包括以下至少一者:
第一结构体,用于存储所述资源控制器的基础信息,其中,该第一结构体可以至少包含两种属性值,该两种属性值分别用于表征资源控制器的id和对应的CRD服务路径;
第二结构体,用于存储所述资源控制器的服务处理逻辑,开发人员可以通过该第二结构体定义资源控制器对不同事件监听结果的处理。
可以理解的是,在该资源控制器为CRD控制器的情况下,上述第二结构体主要用于存储监听CRD事件的业务逻辑,该CRD事件可以包括监听CRD增加事件、监听CRD更新事件、以及监听CRD删除事件中的至少一者。
例如,该设定协议可以规定:第一结构体的名称为“handler”,第一结构体的XML路径语言(XPath,XML Path Language)为“/script(表征目标脚本)/handler”,该第一结构体用于存储资源控制器的id和对应的CRD服务路径;第二结构体可以包含以下至少一者:
名称为“on-add”的结构体,该结构体的XPath为“/script/handler[@id(表征存储资源控制器的id) and @path(表征对应的CRD服务路径)]/on-add”,该结构体用于存储监听CRD增加事件的业务逻辑;
名称为“on-update”的结构体,该结构体的XPath为“/script/handler[@id and @path]/on-update”,该结构体用于存储监听CRD更新事件的业务逻辑;
名称为“on-delete”的结构体,该结构体的XPath为“/script/handler[@id and @path]/on-delete”,该结构体用于存储监听CRD删除事件的业务逻辑。
步骤S22:对目标脚本进行语义分析,生成目标语义树,根据所述目标语义树,生成资源控制器。
在具体实施时,可以基于过程的服务组装思路(即目标脚本中各语句的执行顺序),将目标脚本解析为一个语义树,通过语义树的遍历次序(如深度优先前序遍历次序)来表征该目标脚本中各资源控制器所关联语句的执行顺序,便于后续根据该语义树,生成该目标脚本定义的多个资源控制器。
在一个实施例中,对所述目标脚本进行语义分析,生成目标语义树,包括:
生成用于表征所述目标脚本的根节点;
根据所述目标脚本表征的所述资源控制器的目标信息,生成子节点;
根据所述根节点和所述子节点,生成所述目标语义树。
在该实施例中,可以根据目标脚本中表征了各个资源控制器的目标信息的语句(或结构体),在表征该目标节点的根节点下生成对应的各个子节点,以便后续根据该各个子节点直接生成相应数量的资源控制器,从而提高开发效率。
作为一种可能的实施方式,如图3所示,考虑到一个资源控制器通常关联多个服务处理逻辑(如多个监听CRD事件的业务逻辑),故在生成目标语义树的过程中,可以根据目标脚本表征的至少一个资源控制器的基础信息,生成根节点的至少一个第一子节点,再根据目标脚本表征的至少一个资源控制器各自的服务处理逻辑,生成该至少一个第一子节点各自的第二子节点,以便后续根据该各个第一子节点和第二子节点,分别实现对各个资源控制器及其关联服务的生成及调整。
在生成目标语义树之后,客户端需要先根据该目标语义树中资源控制器对应的子节点,生成资源控制器对应的目标逻辑单元,即根据每个资源控制器对应的第一子节点和第二子节点,生成该资源控制器对应的目标逻辑单元,同时,还可以生成该资源控制器对应的目标集合,并利用内置的虚拟机编译目标逻辑单元。
其中,目标集合用于保存资源控制器与对应的CRD服务交互相关的变量和对象。目标逻辑单元是指:可用于执行对应资源控制器的服务处理逻辑的软件插件。考虑到java的跨平台特性,该软件插件可以是java插件(即java的内置插件,用于构建对K8S服务器中应用程序界面(API,Application Program Interface)的请求交互),以便后续采用客户端内置的java虚拟机对该目标逻辑单元进行编译,生成具有跨平台特点的资源控制器,使得资源控制器的开发无需依赖于特定的编译环境。
可以理解的是,客户端利用内置的虚拟机编译目标逻辑单元之后,即可得到对应的资源控制器,从而实现了基于客户端内置资源的资源控制器开发,且无需对K8s服务器的原生代码进行改造,具有非侵入性。可选地,在生成资源控制器之后,还可以对该资源控制器进行相关的验证测试。
示例性地,在生成资源控制器后,该资源控制器可以根据服务处理逻辑监听来自于K8s服务器的远程过程调用(RPC,RemoteProduce Call)并进行处理。以一个监听CRD增加事件为例,客户端将根据目标脚本中该监听CRD增加事件对应的结构体,生成对应的资源控制器和上下文环境变量集合(即目标集合),该目标集合包含该监听CRD增加事件的业务逻辑所关联资源的命名空间、名称、以及状态等变量。该资源控制器在生成后将执行该监听CRD增加事件的业务逻辑:根据状态变量判断是否在本次业务中发现了新作业,在发现了新作业的情况下,组装相应报文并向K8s服务器发起超文本传输协议(http,hyper texttransfer protocol)请求,以获取该资源控制器所监听CRD服务的详细状态。如果K8s返回的http状态码不是200,视为请求失败并忽略。如果返回的http状态码是200,则资源控制器判断对应作业正在调度中,即资源控制器可继续执行相关的调度逻辑。
基于上述实施例,本申请提出了一种基于XML开发K8S资源控制器的规范,提高了软件开发的可读性和可适配性,使得开发人员无需在资源控制器开发时引入额外的SDK或第三方工具,提升了开发效率;XML作为较为通用的协议,对于不同开发语言背景的开发人员都能快速上手,降低了开发成本,特别适用于云原生的开发场景;且整个开发过程无需对K8s服务器的原生代码进行改造,具有非侵入性。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
第二方面,图4是本申请实施例的一种开发装置的结构示意图,该装置包括:
第一生成模块,用于基于可扩展标记语言XML,生成用于表征资源控制器的目标信息的目标脚本,所述目标信息至少包括:所述资源控制器的基础信息、以及所述资源控制器的服务处理逻辑;
第二生成模块,用于根据所述目标脚本,生成所述资源控制器。
采用本申请实施例的技术方案,提供了一种基于XML的资源控制器开发流程,借助于XML的通用性,使得该开发流程能够适用于不同编程语言和框架,且实现了资源控制器开发流程的标准化。
可选地,所述第二生成模块包括:
语义树生成模块,用于对所述目标脚本进行语义分析,生成目标语义树;
控制器生成模块,用于根据所述目标语义树,生成所述资源控制器。
可选地,所述语义树生成模块包括:
根节点生成模块,用于生成用于表征所述目标脚本的根节点;
子节点生成模块,用于根据所述目标脚本表征的所述资源控制器的目标信息,生成子节点;
语义树生成子模块,用于根据所述根节点和所述子节点,生成所述目标语义树。
可选地,所述子节点生成模块包括:
第一子节点生成模块,用于根据所述目标脚本表征的至少一个资源控制器的基础信息,生成所述根节点的至少一个第一子节点;
第二子节点生成模块,用于根据所述目标脚本表征的至少一个资源控制器各自的服务处理逻辑,生成所述至少一个第一子节点各自的第二子节点。
可选地,所述控制器生成模块包括:
第一控制器生成子模块,用于根据所述目标语义树中资源控制器对应的子节点,生成所述资源控制器对应的目标逻辑单元,所述目标逻辑单元用于执行所述资源控制器的服务处理逻辑;
第二控制器生成子模块,用于利用内置的虚拟机编译所述目标逻辑单元,得到所述资源控制器。
可选地,所述目标逻辑单元为java插件,所述虚拟机为java虚拟机。
可选地,所述第一生成模块包括:
第一生成子模块,用于根据设定协议和所述目标信息,生成采用XML描述的目标脚本,所述设定协议包括用于存储所述目标信息的XML结构体。
可选地,所述设定协议包括以下至少一者:
第一结构体,用于存储所述资源控制器的基础信息;
第二结构体,用于存储所述资源控制器的服务处理逻辑。
可选地,所述资源控制器的服务处理逻辑至少包括:监听自定义资源CRD事件的业务逻辑。
可选地,所述第二生成模块包括:
第二生成子模块,用于根据所述目标脚本,生成所述资源控制器、以及所述资源控制器对应的目标集合,所述目标集合用于保存所述资源控制器与对应的CRD服务交互相关的变量和对象。
可选地,所述监听CRD事件包括监听CRD增加事件、监听CRD更新事件、以及监听CRD删除事件中的至少一者。
可选地,所述资源控制器的基础信息包括:所述资源控制器的id、以及所述资源控制器对应的CRD服务路径。
需要说明的是,装置实施例与方法实施例相近,故描述的较为简单,相关之处参见方法实施例即可。
本申请实施例还提供了一种电子设备,参照图5,图5是本申请实施例提出的电子设备的示意图。如图5所示,电子设备100包括:存储器110和处理器120,存储器110与处理器120之间通过总线通信连接,存储器110中存储有计算机程序,该计算机程序可在处理器120上运行,进而实现本申请实施例公开的开发方法中的步骤。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现如本申请实施例公开的所述开发方法。
本申请实施例还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如本申请实施例公开的所述开发方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、系统、设备、存储介质及程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种开发方法、装置、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (11)
1.一种开发方法,其特征在于,所述方法包括:
基于可扩展标记语言XML,生成用于表征资源控制器的目标信息的目标脚本,所述目标信息至少包括:所述资源控制器的基础信息、以及所述资源控制器的服务处理逻辑;
根据所述目标脚本,生成所述资源控制器;
根据所述目标脚本,生成所述资源控制器,包括:
对所述目标脚本进行语义分析,生成目标语义树;
根据所述目标语义树,生成所述资源控制器;
对所述目标脚本进行语义分析,生成目标语义树,包括:
生成用于表征所述目标脚本的根节点;
根据所述目标脚本表征的所述资源控制器的目标信息,生成子节点;
根据所述根节点和所述子节点,生成所述目标语义树;
根据所述目标脚本表征的所述资源控制器的目标信息,生成子节点,包括:
根据所述目标脚本表征的至少一个资源控制器的基础信息,生成所述根节点的至少一个第一子节点;
根据所述目标脚本表征的至少一个资源控制器各自的服务处理逻辑,生成所述至少一个第一子节点各自的第二子节点;
根据所述目标语义树,生成所述资源控制器,包括:
根据所述目标语义树中资源控制器对应的子节点,生成所述资源控制器对应的目标逻辑单元,所述目标逻辑单元用于执行所述资源控制器的服务处理逻辑;
利用内置的虚拟机编译所述目标逻辑单元,得到所述资源控制器。
2.根据权利要求1所述的方法,其特征在于,所述目标逻辑单元为java插件,所述虚拟机为java虚拟机。
3.根据权利要求1所述的方法,其特征在于,基于可扩展标记语言XML,生成用于表征资源控制器的目标信息的目标脚本,包括:
根据设定协议和所述目标信息,生成采用XML描述的目标脚本,所述设定协议包括用于存储所述目标信息的XML结构体。
4.根据权利要求3所述的方法,其特征在于,所述设定协议包括以下至少一者:
第一结构体,用于存储所述资源控制器的基础信息;
第二结构体,用于存储所述资源控制器的服务处理逻辑。
5.根据权利要求1-4任一所述的方法,其特征在于,所述资源控制器的服务处理逻辑至少包括:监听自定义资源CRD事件的业务逻辑。
6.根据权利要求5所述的方法,其特征在于,根据所述目标脚本,生成所述资源控制器,包括:
根据所述目标脚本,生成所述资源控制器、以及所述资源控制器对应的目标集合,所述目标集合用于保存所述资源控制器与对应的CRD服务交互相关的变量和对象。
7.根据权利要求5所述的方法,其特征在于,所述监听自定义资源CRD事件包括监听CRD增加事件、监听CRD更新事件、以及监听CRD删除事件中的至少一者。
8.根据权利要求1-4任一所述的方法,其特征在于,所述资源控制器的基础信息包括:所述资源控制器的id、以及所述资源控制器对应的CRD服务路径。
9.一种开发装置,其特征在于,所述装置包括:
第一生成模块,用于基于可扩展标记语言XML,生成用于表征资源控制器的目标信息的目标脚本,所述目标信息至少包括:所述资源控制器的基础信息、以及所述资源控制器的服务处理逻辑;
第二生成模块,用于根据所述目标脚本,生成所述资源控制器;
所述第二生成模块包括:
语义树生成模块,用于对所述目标脚本进行语义分析,生成目标语义树;
控制器生成模块,用于根据所述目标语义树,生成所述资源控制器;
所述语义树生成模块包括:
根节点生成模块,用于生成用于表征所述目标脚本的根节点;
子节点生成模块,用于根据所述目标脚本表征的所述资源控制器的目标信息,生成子节点;
语义树生成子模块,用于根据所述根节点和所述子节点,生成所述目标语义树;
所述子节点生成模块包括:
第一子节点生成模块,用于根据所述目标脚本表征的至少一个资源控制器的基础信息,生成所述根节点的至少一个第一子节点;
第二子节点生成模块,用于根据所述目标脚本表征的至少一个资源控制器各自的服务处理逻辑,生成所述至少一个第一子节点各自的第二子节点;
所述控制器生成模块包括:
第一控制器生成子模块,用于根据所述目标语义树中资源控制器对应的子节点,生成所述资源控制器对应的目标逻辑单元,所述目标逻辑单元用于执行所述资源控制器的服务处理逻辑;
第二控制器生成子模块,用于利用内置的虚拟机编译所述目标逻辑单元,得到所述资源控制器。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现如权利要求1至8中任一项所述的开发方法。
11.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现如权利要求1至8中任一项所述的开发方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310116279.9A CN116088855B (zh) | 2023-02-15 | 2023-02-15 | 开发方法、装置、电子设备和存储介质 |
PCT/CN2023/140337 WO2024169392A1 (zh) | 2023-02-15 | 2023-12-20 | 开发方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310116279.9A CN116088855B (zh) | 2023-02-15 | 2023-02-15 | 开发方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116088855A CN116088855A (zh) | 2023-05-09 |
CN116088855B true CN116088855B (zh) | 2023-06-23 |
Family
ID=86213886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310116279.9A Active CN116088855B (zh) | 2023-02-15 | 2023-02-15 | 开发方法、装置、电子设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116088855B (zh) |
WO (1) | WO2024169392A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116088855B (zh) * | 2023-02-15 | 2023-06-23 | 天翼云科技有限公司 | 开发方法、装置、电子设备和存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9912722B2 (en) * | 2001-04-02 | 2018-03-06 | Irving S. Rappaport | Method and system for facilitating the integration of a plurality of dissimilar systems |
CN106919434B (zh) * | 2017-03-22 | 2021-02-12 | 恒生电子股份有限公司 | 一种代码生成方法及装置 |
CN109976713A (zh) * | 2017-12-28 | 2019-07-05 | 中国电信股份有限公司 | 用于服务组装的脚本处理方法和装置 |
CN110580147B (zh) * | 2018-06-07 | 2022-07-05 | 阿里巴巴集团控股有限公司 | 一种应用程序的开发方法和装置 |
CN110888736A (zh) * | 2019-11-15 | 2020-03-17 | 北京浪潮数据技术有限公司 | 一种基于容器云平台的应用管理方法、系统及相关组件 |
US11762656B2 (en) * | 2020-07-13 | 2023-09-19 | Salesforce, Inc. | Service fabrication tool |
CN112764756B (zh) * | 2021-01-15 | 2024-09-17 | 广州华多网络科技有限公司 | 软件资源编译方法及其相应的装置、设备、介质 |
CN113805882A (zh) * | 2021-09-18 | 2021-12-17 | 上海波顿诺华智能科技有限公司 | 应用程序开发的方法、装置、电子设备及存储介质 |
CN115357369B (zh) * | 2022-10-21 | 2023-03-24 | 之江实验室 | 一种k8s容器云平台中CRD应用集成调用方法与装置 |
CN116088855B (zh) * | 2023-02-15 | 2023-06-23 | 天翼云科技有限公司 | 开发方法、装置、电子设备和存储介质 |
-
2023
- 2023-02-15 CN CN202310116279.9A patent/CN116088855B/zh active Active
- 2023-12-20 WO PCT/CN2023/140337 patent/WO2024169392A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024169392A1 (zh) | 2024-08-22 |
CN116088855A (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7483973B2 (en) | Gateway for service oriented state | |
US20050050311A1 (en) | Pluggable state meta-data processors based on meta information modeling in a service oriented architecture | |
US8954541B2 (en) | Method, computer-readable medium, and system for discovery and registration of controlled devices associated with self-describing modules | |
US7720953B2 (en) | System and method of data source detection | |
US20090300578A1 (en) | System and Method For Developing An Application For Extending Access to Local Software Of A Wireless Device | |
US20070168971A1 (en) | Multi-tiered model-based application testing | |
US10666744B2 (en) | Managing discovery and selection of service interface specifications | |
US7424722B2 (en) | Method and system for creating a dynamic OGSI service proxy framework using runtime introspection of an OGSI service | |
CN113434158B (zh) | 一种大数据组件的自定义管理方法、装置、设备及介质 | |
CN107294750B (zh) | 一种云集群能自识别的分布配置管理方法和装置 | |
CN116088855B (zh) | 开发方法、装置、电子设备和存储介质 | |
Pinheiro et al. | Model-based testing of RESTful web services using UML protocol state machines | |
CN102316169A (zh) | 一种实现快速业务聚合的方法及通用业务平台 | |
CN116755788A (zh) | 一种线上规则修改方法、装置、设备及存储介质 | |
US9665416B1 (en) | Asynchronous execution of computer operations | |
CN110659030A (zh) | Unity项目编译方法、系统、计算机设备及存储介质 | |
CN114371851A (zh) | 一种基于编译的网络设备自动化实现方法 | |
CN113656001A (zh) | 平台组件开发方法、装置、计算机设备及存储介质 | |
US20160170722A1 (en) | System and Method for Managing and Using Data Model | |
CN116360887A (zh) | 一种程序参数加载方法、装置、设备及存储介质 | |
Plebani et al. | MicroMAIS: executing and orchestrating Web services on constrained mobile devices | |
WO2006089387A1 (en) | Extending access to local software of a wireless device | |
Hendriks et al. | A systematic approach for interfacing component-based software with an active automata learning tool | |
CN114816357A (zh) | 一种服务于流程银行的服务编排系统 | |
CN114356520A (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 | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 100007 room 205-32, floor 2, building 2, No. 1 and No. 3, qinglonghutong a, Dongcheng District, Beijing Patentee after: Tianyiyun Technology Co.,Ltd. Address before: 100093 Floor 4, Block E, Xishan Yingfu Business Center, Haidian District, Beijing Patentee before: Tianyiyun Technology Co.,Ltd. |