CN117573222A - 基于编排引擎的模块调用方法、装置、计算机设备及介质 - Google Patents
基于编排引擎的模块调用方法、装置、计算机设备及介质 Download PDFInfo
- Publication number
- CN117573222A CN117573222A CN202311483375.3A CN202311483375A CN117573222A CN 117573222 A CN117573222 A CN 117573222A CN 202311483375 A CN202311483375 A CN 202311483375A CN 117573222 A CN117573222 A CN 117573222A
- Authority
- CN
- China
- Prior art keywords
- module
- target
- execution
- resource
- 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
- 238000000034 method Methods 0.000 title claims abstract description 200
- 238000004891 communication Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000002372 labelling Methods 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 13
- 239000000243 solution Substances 0.000 description 11
- 238000012545 processing Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 241000271897 Viperidae Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种基于编排引擎的模块调用方法、装置、计算机设备及介质,属于计算机技术领域。编排引擎包括控制层以及执行层,方法包括:响应于编排引擎启动,获取执行层的所有执行模块信息;根据执行模块信息更新预设置的目标注册表;接收调用方发送的资源调用请求,以使控制层对资源调用请求进行解析,确定与资源调用请求对应的资源模块信息;在更新后的目标注册表中确定与资源模块信息对应的目标执行模块以及目标执行模块中的目标模块方法;接收反馈参数,以使控制层向调用方发送反馈参数,其中,反馈参数为执行层调用目标执行模块并执行对应的目标模块方法后返回的参数。本申请实施例能够实现模块的动态调用,降低编排引擎的性能损耗。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于编排引擎的模块调用方法、装置、计算机设备及介质。
背景技术
多云管理平台的主要功能是对资源进行管理及编排,通常需要通过模块配置的方式对资源进行动态组装及编排。多云管理平台中各种资源的类型不同,需要使用不同的模块进行动态组装及编排,同时,不同模块的参数以及返回值都不可能相同。
目前,多云管理平台需要承接大量用户的同时在线访问及海量资源的编排调度管理,为了追求性能通常需要使用静态语言实现。静态语言需要预先明确地告诉编译器要处理的数据的类型,无法直接调用动态组装而来的资源模块。
故为了解决实现具备动态参数、动态返回值的资源模块的动态调用问题,通常使用反射技术先反射出资源对应的模块,再反射出模块对应的资源操作方法,并且在反射调用的过程中,还需要反射注入参数及获取返回值,因此在运行时需解析参数类型信息、查找方法等,由此可知反射调用相比直接调用方法要慢很多,并会导致多云管理平台的性能损耗增大,而在性能敏感的场景下这将是一个非常大的缺点。
发明内容
本申请实施例的主要目的在于提出一种基于编排引擎的模块调用方法、装置、计算机设备及介质,能够实现模块的动态调用,降低编排引擎的性能损耗。
为实现上述目的,本申请实施例的第一方面提出了一种基于编排引擎的模块调用方法,所述编排引擎包括控制层以及执行层,所述模块调用方法包括:
响应于编排引擎启动,获取所述执行层的所有执行模块信息,其中,所述执行模块信息对应的执行模块处于已注册状态;
根据所述执行模块信息更新预设置的目标注册表;
接收调用方发送的资源调用请求,以使所述控制层对所述资源调用请求进行解析,确定与所述资源调用请求对应的资源模块信息;
在更新后的目标注册表中确定与所述资源模块信息对应的目标执行模块以及所述目标执行模块中的目标模块方法;
接收反馈参数,以使所述控制层向所述调用方发送所述反馈参数,其中,所述反馈参数为所述执行层调用所述目标执行模块并执行对应的目标模块方法后返回的参数。
在一些实施例中,所述目标注册表包括模块注册表以及方法注册表,所述编排引擎还包括接口层;在所述获取所述执行层的所有执行模块信息之前,所述模块调用方法还包括:
获取所述接口层预定义的注册接口信息、入参类型以及返回值类型;
根据所述注册接口信息配置所述模块注册表,并根据所述入参类型以及所述返回值类型配置所述方法注册表。
在一些实施例中,所述目标注册表包括模块注册表以及方法注册表,所述编排引擎还包括接口层;在所述获取所述执行层的所有执行模块信息之前,所述模块调用方法还包括:
获取所述接口层预定义的注册接口信息、入参类型以及返回值类型;
根据所述注册接口信息配置所述模块注册表,并根据所述入参类型以及所述返回值类型配置所述方法注册表。
在一些实施例中,所述接收调用方发送的资源调用请求,以使所述控制层对所述资源调用请求进行解析,确定与所述资源调用请求对应的资源模块信息,包括:
通过所述接口层接收所述调用方发送的资源调用请求;
将所述资源调用请求发送至所述控制层,以使所述控制层对所述资源调用请求进行解析,确定所述资源调用请求的请求类型以及请求参数;
当所述请求类型与所述入参类型一致,对所述请求参数进行字段解析,确定模块名称以及方法名称;
根据所述模块名称以及所述方法名称生成资源模块信息。
在一些实施例中,所述在更新后的目标注册表中确定与所述资源模块信息对应的目标执行模块以及所述目标执行模块中的目标模块方法,包括:
在所述模块注册表中查找与所述模块名称对应的目标执行模块;
在所述方法注册表中查找与所述方法名称对应的目标模块方法,以在所述执行层中调用所述目标模块方法。
在一些实施例中,在所述获取所述接口层预定义的注册接口信息、入参类型以及返回值类型之后,所述模块调用方法还包括:
接收资源注册请求,并确定与所述资源注册请求对应的待注册模块;
通过所述接口层的注册接口信息标注所述待注册模块,得到待注册模块信息;
发送标注后的待注册模块至所述控制层,以使所述控制层将所述待注册模块信息注册至所述目标注册表。
在一些实施例中,所述接收反馈参数,以使所述控制层向所述调用方发送所述反馈参数,包括:
确定与所述目标模块方法对应的方法签名;
对所述目标模块方法进行入参,并控制所述执行层执行入参后的目标模块方法,以根据所述方法签名确定执行入参后的目标模块方法过程中生成的返回值;
接收所述执行层返回的所述返回值并进行统计,以得到反馈参数;
将所述反馈参数发送至所述控制层,以使所述控制层向所述调用方返回所述反馈参数。
在一些实施例中,在所述确定所述资源调用请求的请求类型以及请求参数之后,所述模块调用方法还包括:
当所述请求类型与所述入参类型不一致,生成错误信息;
向所述控制层发送所述错误信息,以使所述控制层向所述调用方返回所述错误信息。
本申请实施例的第二方面提出了一种基于编排引擎的模块调用装置,所述编排引擎包括控制层以及执行层,所述模块调用装置包括:
信息获取模块,用于响应于编排引擎启动,获取所述执行层的所有执行模块信息,其中,所述执行模块信息对应的执行模块处于已注册状态;
注册表更新模块,用于根据所述执行模块信息更新预设置的目标注册表;
请求解析模块,用于接收调用方发送的资源调用请求,以使所述控制层对所述资源调用请求进行解析,确定与所述资源调用请求对应的资源模块信息;
信息确定模块,用于在更新后的目标注册表中确定与所述资源模块信息对应的目标执行模块以及所述目标执行模块中的目标模块方法;
参数反馈模块,用于接收反馈参数,以使所述控制层向所述调用方发送所述反馈参数,其中,所述反馈参数为所述执行层调用所述目标执行模块并执行对应的目标模块方法后返回的参数。
本申请实施例的第三方面提出了一种计算机设备,所述计算机设备包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口、存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现如第一方面所述的基于编排引擎的模块调用方法的步骤。
本申请实施例的第四方面提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的基于编排引擎的模块调用方法的步骤。
本申请实施例提出的基于编排引擎的模块调用方法、装置、计算机设备及介质,具有如下有益效果:响应于编排引擎启动,获取执行层已经注册的所有执行模块信息,再根据执行模块信息更新预设置的目标注册表,确保目标注册表中已经注册了编排引擎中的所有执行模块信息,之后,接收调用方发送的资源调用请求,以使控制层对资源调用请求进行解析,确定与资源调用请求对应的资源模块信息,实现对资源模块信息的准确查找,在更新后的目标注册表中确定与资源模块信息对应的目标执行模块以及目标执行模块中的目标模块方法,本实施例通过目标注册表直接确定目标执行模块以及目标模块方法,实现了对执行模块以及模块方法的动态调用,无需通过反射技术进行模块以及方法的查找,从而避免反射技术带来的性能损耗,降低编排引擎的性能损耗,最后,接收执行层调用目标执行模块并执行对应的目标模块方法后返回的反馈参数,以使控制层向调用方发送反馈参数,实现对模块的动态调用,提高模块以及方法的调用效率。
附图说明
图1是本申请一个实施例提供的编排引擎的结构示意图;
图2是本申请一个实施例提供的基于编排引擎的模块调用方法的流程图;
图3是本申请另一实施例提供的基于编排引擎的模块调用方法的流程图;
图4是图2中步骤S103的具体流程图;
图5是图2中步骤S104的具体流程图;
图6是本申请另一实施例提供的基于编排引擎的模块调用方法的流程图;
图7是图2中步骤S105的具体流程图;
图8是本申请另一实施例提供的基于编排引擎的模块调用方法的流程图;
图9是本申请实施例提供的基于编排引擎的模块调用装置的结构示意图;
图10是本申请实施例提供的计算机设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
本申请实施例提供的一种基于编排引擎的模块调用方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机或者智能手表等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现上述方法的应用等,但并不局限于以上形式。
本申请实施例可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费计算机设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
多云管理平台的主要功能是对资源进行管理及编排,通常需要通过模块配置的方式对资源进行动态组装及编排。由于其具备扩展性高、便于集中式管理、资源分配率高等优点,被应用于诸多技术领域,例如,物流运输领域、游戏开发领域、车辆管理领域等等。然而,多云管理平台中各种资源的类型不同,需要使用不同的模块进行动态组装及编排,同时,不同模块的参数以及返回值都不可能相同。
目前,多云管理平台需要承接大量用户的同时在线访问及海量资源的编排调度管理,为了追求性能通常需要使用静态语言实现。静态语言需要预先明确地告诉编译器要处理的数据的类型,无法直接调用动态组装而来的资源模块。
故为了解决实现具备动态参数、动态返回值的资源模块的动态调用问题,通常使用反射技术先反射出资源对应的模块,再反射出模块对应的资源操作方法,并且在反射调用的过程中,还需要反射注入参数及获取返回值,因此在运行时需解析参数类型信息、查找方法等,由此可知反射调用相比直接调用方法要慢很多,并会导致多云管理平台的性能损耗增大,而在性能敏感的场景下这将是一个非常大的缺点。
为了解决上述问题,本实施例提供了一种基于编排引擎的模块调用方法、装置、计算机设备及介质,响应于编排引擎启动,获取执行层已经注册的所有执行模块信息,再根据执行模块信息更新预设置的目标注册表,确保目标注册表中已经注册了编排引擎中的所有执行模块信息,之后,接收调用方发送的资源调用请求,以使控制层对资源调用请求进行解析,确定与资源调用请求对应的资源模块信息,实现对资源模块信息的准确查找,在更新后的目标注册表中确定与资源模块信息对应的目标执行模块以及目标执行模块中的目标模块方法,本实施例通过目标注册表直接确定目标执行模块以及目标模块方法,实现了对执行模块以及模块方法的动态调用,无需通过反射技术进行模块以及方法的查找,从而避免反射技术带来的性能损耗,降低编排引擎的性能损耗,最后,接收执行层调用目标执行模块并执行对应的目标模块方法后返回的反馈参数,以使控制层向调用方发送反馈参数,实现对模块的动态调用,提高模块以及方法的调用效率。
请参照图1,图1是本申请实施例提供的编排引擎的结构示意图。
在一些实施例中,本实施例的编排引擎包括接口层100、控制层200以及执行层300。
其中,接口层100是编排引擎与外部系统或服务进行交互的入口,它负责接收外部请求,并将其转发到控制层200。接口层100可以提供多种类型的接口,如API(ApplicationProgramming Interface,应用程序编程接口)接口、消息队列接口等,以适应不同类型的服务调用。
值得注意的是,本实施例中的接口层100还用于定义模块的注册接口、入参类型以及返回值类型等等。
控制层200是编排引擎的核心部分,它负责解析接口层100传入的请求,并根据事先定义的规则进行流程控制和决策。控制层200可以根据不同的场景选择合适的执行流程,并调用执行层300来执行具体的操作。
值得注意的是,控制层200中预配置有模块注册表,控制层200还用于维护模块注册表,并根据不同的配置调用不同的编排流程,除此之外,控制层200还可以将输入参数传递进各个模块方法并返回数据给调用方。
执行层300是编排引擎的底层组件,它负责具体的任务执行和业务处理。执行层300用于根据控制层200的指令,执行相应的操作,如调用外部服务、执行数据库操作、发送消息等。执行层300的设计可以根据具体需求,对任务进行并发处理、事务管理等。
值得注意的是,本实施例中的执行层300可以根据接口约定实现各模块方法。
在一些实施例中,通过将功能划分到不同的层次,编排引擎可以实现灵活的业务流程控制和任务调度。接口层100提供了与外部系统交互的接口,控制层200负责流程控制和决策,而执行层300则承担具体的操作和任务执行。这种分层的设计使得编排引擎具备了高度可扩展性和灵活性,能够适应各种不同的业务需求。
本领域技术人员可以理解的是,图1中示出的示意图并不构成对本发明实施例的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,下面对本实施例中的模块调用方法进行具体说明。
请参照图2,图2是本申请实施例提供的基于编排引擎的模块调用方法的具体方法的流程图。在一些实施例中,基于编排引擎的模块调用方法包括但不限于步骤S101至步骤S105。
步骤S101,响应于编排引擎启动,获取执行层300的所有执行模块信息;
需要说明的是,执行模块信息对应的执行模块处于已注册状态。
在一些实施例中,响应于编排引擎启动,获取执行层300中处于已经注册状态的执行模块的执行模块信息,便于后续对目标注册表的更新,避免出现编排引擎中存在未注册的模块信息的情况。
需要说明的是,执行模块信息包括但不限于有执行模块名称、执行模块类别、执行模块方法等等,本实施例不做具体限制。
步骤S102,根据执行模块信息更新预设置的目标注册表;
在一些实施例中,根据执行模块信息更新预设置的目标注册表,以实现对编排引擎中已经注册的执行模块的实时更新,避免出现模块遗漏的情况。
步骤S103,接收调用方发送的资源调用请求,以使控制层200对资源调用请求进行解析,确定与资源调用请求对应的资源模块信息;
在一些实施例中,接收调用方发送的资源调用请求,以使控制层200对资源调用请求进行解析,从而避免在调用模块以及方法的过程中捕获类型错误,确定与资源调用请求对应的资源模块信息,从而实现对模块以及方法的准确确定,便于后续对模块以及方法的调用,提高调用的准确性以及安全性。
步骤S104,在更新后的目标注册表中确定与资源模块信息对应的目标执行模块以及目标执行模块中的目标模块方法;
在一些实施例中,在更新后的目标注册表中确定与资源模块信息对应的目标执行模块以及目标执行模块中的目标模块方法,从而实现对目标执行模块以及目标模块方法的查找,便于后续在执行层300中调用目标模块方法,以实现对模块方法的准确调用。
步骤S105,接收反馈参数,以使控制层200向调用方发送反馈参数。
需要说明的是,反馈参数为执行层300调用目标执行模块并执行对应的目标模块方法后返回的参数。
在一些实施例中,接收执行层300调用目标执行模块执行对应的模块方法后返回的反馈参数,以使控制层200向调用方发送反馈参数,使得调用者可以清楚地了解到方法的使用方式,保障了代码的稳定性和安全性。
请参照图3,图3是本申请另一实施例提供的基于编排引擎的模块调用方法的具体流程图。包括但不限于步骤S201至步骤S202。
需要说明的是,目标注册表包括模块注册表以及方法注册表。
值得注意的是,编排引擎的控制层200中有一个模块注册表,模块注册表用于存储不同的模块信息,表示为map[string]Provider类型,其中map的key是模块的名字,Provider是一个结构体,最主要的是定义了模块需要实现接口层100的模块接口,表示为Provider Module Interface。
编排引擎中还包括一个方法注册表,表示为map[string]ModuleAction,其中,map的key是方法名,ModuleAction是方法需要遵守的方法签名,约定了入参类型及返回值类型。
可以理解的是,入参类型以及返回值类型包括但不限于有整形、浮点型、布尔型等等,并且入参类型以及返回值类型可以为一种或者多种类型的组合,本实施例不做具体限制。
值得注意的是,步骤S201至步骤S202发生在获取执行层300的所有执行模块信息之前。
步骤S201,获取接口层100预定义的注册接口信息、入参类型以及返回值类型;
步骤S202,根据注册接口信息配置模块注册表,并根据入参类型以及返回值类型配置方法注册表。
在一些实施例的步骤S201至步骤S202中,首先,获取接口层100预定义的注册接口信息、入参类型以及返回值类型,之后,根据注册接口信息配置模块注册表,从而便于后续对不同模块的注册,提高模块的注册效率,并根据入参类型以及返回值类型配置方法注册表,通过配置入参类型和返回值类型,可以避免重复编写相似的代码,提高代码复用性,并且可以使代码更加清晰易懂,提高可读性。例如,在不同的业务流程中,可能需要使用相同的数据结构或对象,如果每个业务流程都单独实现,代码量将会非常庞大。而通过配置入参类型和返回值类型,可以将这些公共代码抽离出来,实现统一的数据传递和处理。
需要说明的是,根据注册接口信息配置模块注册表的过程即为在Provider结构体定义模块需要实现接口层100的模块接口的过程。
值得注意的是,本实施例中的注册接口信息包括Register方法和GetClient方法,其中,Register方法为负责实现注册该模块提供的方法,GetClient方法为负责将云厂商的认证信息传入,提供模块方法执行时所需要的客户端,本实施例通过使用Map的方式,可以直接跟据key查找出方法进行调用,性能更优。
可以理解的是,编排引擎的主要作用是将各类业务逻辑组合成复杂的业务流程或规则,如果每次都需要手动编写数据传递和处理的代码,会导致编码工作量大、效率低下。而通过配置入参类型和返回值类型,可以简化编程流程,减少手动编写代码的工作量,让开发者更专注于业务逻辑的实现。配置入参类型和返回值类型可以让编排引擎变得更加灵活,方便增加新的业务功能。
请参照图4,图4是本申请实施例提供的步骤S103的具体流程图。在一些实施例中,步骤S103具体包括但不限于步骤S301和步骤S304。
步骤S301,通过接口层100接收调用方发送的资源调用请求;
步骤S302,将资源调用请求发送至控制层200,以使控制层200对资源调用请求进行解析,确定资源调用请求的请求类型以及请求参数;
步骤S303,当请求类型与入参类型一致,对请求参数进行字段解析,确定模块名称以及方法名称;
步骤S304,根据模块名称以及方法名称生成资源模块信息。
在一些实施例的步骤S301至步骤S304中,在确定与资源调用请求对应的资源模块信息的过程中,首先,通过接口层100接收调用方发送的资源调用请求,再将资源调用请求发送至控制层200,以使控制层200对资源调用请求进行解析,确定资源调用请求的请求类型以及请求参数,从而避免在调用模块以及方法的过程中捕获类型错误,当请求类型与入参类型一致,对请求参数进行字段解析,确定模块名称以及方法名称,最后,根据模块名称以及方法名称生成资源模块信息,从而实现对模块以及方法的准确确定,便于后续对模块以及方法的调用,提高调用的准确性以及安全性。
需要说明的是,在控制层200对资源调用请求进行解析的过程中,控制层200首先读取资源调用请求中的配置文件,再基于预设的配置文件解析库,例如,Viper、Gcfg等,对配置文件中的字段名称或者参数位置进行解析,确定资源调用请求的请求类型以及请求参数,其中,请求参数为资源调用请求中所需的参数,当请求类型与定义好的入参类型一致,对请求参数进行字段解析,确定资源调用请求所请求的模块名称以及方法名称,从而避免使用反射技术在编译时捕获类型错误的情况,提高代码的安全性。
请参照图5,图5是本申请实施例提供的步骤S104的具体流程图。在一些实施例中,步骤S104具体包括但不限于步骤S401和步骤S402。
步骤S401,在模块注册表中查找与模块名称对应的目标执行模块;
步骤S402,在方法注册表中查找与方法名称对应的目标模块方法,以在执行层300中调用目标模块方法。
在一些实施例的步骤S401至步骤S402中,在确定与资源模块信息对应的目标执行模块以及目标执行模块的模块方法的过程中,首先,在模块注册表中查找与模块名称对应的目标执行模块,以实现对模块的精准查找,之后,在方法注册表中查找与方法名称对应的目标模块方法,从而实现对模块方法的查找,便于后续在执行层300中调用目标模块方法,以实现对模块方法的准确调用。
请参照图6,图6是本申请另一实施例提供的基于编排引擎的模块调用方法的具体流程图。包括但不限于步骤S501至步骤S503。
需要说明的是,步骤S501至步骤S503发生在获取接口层100预定义的注册接口信息、入参类型以及返回值类型之后。
步骤S501,接收资源注册请求,并确定与资源注册请求对应的待注册模块;
步骤S502,通过接口层100的注册接口信息标注待注册模块,得到待注册模块信息;
步骤S503,发送标注后的待注册模块至控制层200,以使控制层200将待注册模块信息注册至目标注册表。
在一些实施例的步骤S501至步骤S503中,首先,接收资源注册请求,并确定与资源注册请求对应的待注册模块,再通过接口层100的注册接口信息标注待注册模块,使得待注册模块能够实现注册接口信息所约定的方法,得到待注册模块信息,其中,待注册模块信息包括待注册模块的模块名称以及模块方法,最后,发送标注后的待注册模块至控制层200,以使控制层200将待注册模块信息注册至目标注册表,实现对待注册模块的注册,避免出现编排引擎中存在未注册的模块的情况,提高模块调用的准确性。
值得注意的是,在将待注册模块信息注册至目标注册表的过程中,将待注册模块信息中的模块名称注册至模块注册表,在使用中,注册时编排引擎的接口层100会调用模块实现的Register方法,将模块的方法注册至方法注册表,以完成对待注册模块的注册。
请参照图7,图7是本申请实施例提供的步骤S105的具体流程图。在一些实施例中,步骤S105具体包括但不限于步骤S601和步骤S604。
步骤S601,确定与目标模块方法对应的方法签名;
步骤S602,对目标模块方法进行入参,并控制执行层300执行入参后的目标模块方法,以根据方法签名确定执行入参后的目标模块方法过程中生成的返回值;
步骤S603,接收执行层300返回的返回值并进行统计,以得到反馈参数;
步骤S604,将反馈参数发送至控制层200,以使控制层200向调用方返回反馈参数。
在一些实施例的步骤S601至步骤S604中,在控制层200向调用方发送反馈参数的过程中,首先,确定与模块方法对应的方法签名,以确保方法的调用者传入的参数类型与方法所期望的参数类型相符合,避免了类型错误导致的运行时错误,再对目标模块方法进行入参操作,并控制执行层300执行入参后的目标模块方法,以根据方法签名确定执行入参后的目标模块方法过程中生成的返回值,通过统一的方法签名,可以实现代码的模块化、接口化,提高代码的可复用性和可维护性,保障了代码的稳定性和安全性,之后,接收执行层300返回的返回值,并对返回值进行统计,得到反馈参数,提高代码的可读性和可维护性,最后,将反馈参数发送至控制层200,以使控制层200向调用方返回反馈参数,使得调用者可以清楚地了解到方法的使用方式。
请参照图8,图8是本申请另一实施例提供的基于编排引擎的模块调用方法的具体流程图。包括但不限于步骤S701至步骤S702。
需要说明的是,步骤S701至步骤S702发生在确定资源调用请求的请求类型以及请求参数之后。
步骤S701,当请求类型与入参类型不一致,生成错误信息;
步骤S702,向控制层200发送错误信息,以使控制层200向调用方返回错误信息。
在一些实施例的步骤S701至步骤S702中,当请求类型与入参类型不一致,则生成错误信息,再向控制层200发送错误信息,以使控制层200向调用方返回错误信息,告知调用方当前输入的资源调用请求错误,以提高模块以及方法调用的准确性以及灵活性。
请参阅图9,本申请实施例还提供一种基于编排引擎的模块调用装置,可以实现上述基于编排引擎的模块调用方法,该装置包括:
信息获取模块801,用于响应于编排引擎启动,获取执行层300的所有执行模块信息,其中,执行模块信息对应的执行模块处于已注册状态;
注册表更新模块802,用于根据执行模块信息更新预设置的目标注册表;
请求解析模块803,用于接收调用方发送的资源调用请求,以使控制层200对资源调用请求进行解析,确定与资源调用请求对应的资源模块信息;
信息确定模块804,用于在更新后的目标注册表中确定与资源模块信息对应的目标执行模块以及目标执行模块中的目标模块方法;
参数反馈模块805,用于接收反馈参数,以使控制层200向调用方发送反馈参数,其中,反馈参数为执行层300调用目标执行模块并执行对应的目标模块方法后返回的参数。
可以理解的是,基于编排引擎的模块调用装置还包括注册表配置模块以及信息注册模块,注册表配置模块用于获取接口层100预定义的注册接口信息、入参类型以及返回值类型;以及根据注册接口信息配置模块注册表,并根据入参类型以及返回值类型配置所述方法注册表。
信息注册模块用于接收资源注册请求,并确定与资源注册请求对应的待注册模块;通过接口层100的注册接口信息标注待注册模块,得到待注册模块信息;以及发送标注后的待注册模块至控制层200,以使控制层200将待注册模块信息注册至目标注册表。
本申请实施例的基于编排引擎的模块调用装置用于执行上述实施例中的基于编排引擎的模块调用方法,其具体处理过程与上述实施例中的基于编排引擎的模块调用方法相同,此处不再一一赘述。
本申请实施例还提供了一种计算机设备,包括存储器和处理器,其中,存储器中存储有计算机程序,该计算机程序被处理器执行时处理器用于执行本申请上述实施例中的基于编排引擎的模块调用方法。
参照图10,图10是本申请实施例提供的计算机设备的硬件结构示意图。
下面结合图10对计算机设备的硬件结构进行详细说明。该计算机设备包括:处理器910、存储器920、输入/输出接口930、通信接口940和总线950。
处理器910,可以采用通用的CPU(Central Processin Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器920,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器920可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器920中,并由处理器910来调用执行本申请实施例的基于编排引擎的模块调用方法;
输入/输出接口930,用于实现信息输入及输出;
通信接口940,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;和总线950,在设备的各个组件(例如处理器910、存储器920、输入/输出接口930和通信接口940)之间传输信息;
其中处理器910、存储器920、输入/输出接口930和通信接口940通过总线950实现彼此之间在设备内部的通信连接。
本申请实施例还提供一种存储介质,该存储介质为计算机可读存储介质,计算机可读存储介质存储有计算机程序,在计算机程序被计算机执行时,计算机用于执行如本申请上述实施例中的基于编排引擎的模块调用方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图1至图9中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (10)
1.一种基于编排引擎的模块调用方法,其特征在于,所述编排引擎包括控制层以及执行层,所述模块调用方法包括:
响应于编排引擎启动,获取所述执行层的所有执行模块信息,其中,所述执行模块信息对应的执行模块处于已注册状态;
根据所述执行模块信息更新预设置的目标注册表;
接收调用方发送的资源调用请求,以使所述控制层对所述资源调用请求进行解析,确定与所述资源调用请求对应的资源模块信息;
在更新后的目标注册表中确定与所述资源模块信息对应的目标执行模块以及所述目标执行模块中的目标模块方法;
接收反馈参数,以使所述控制层向所述调用方发送所述反馈参数,其中,所述反馈参数为所述执行层调用所述目标执行模块并执行对应的目标模块方法后返回的参数。
2.根据权利要求1所述的基于编排引擎的模块调用方法,其特征在于,所述目标注册表包括模块注册表以及方法注册表,所述编排引擎还包括接口层;在所述获取所述执行层的所有执行模块信息之前,所述模块调用方法还包括:
获取所述接口层预定义的注册接口信息、入参类型以及返回值类型;
根据所述注册接口信息配置所述模块注册表,并根据所述入参类型以及所述返回值类型配置所述方法注册表。
3.根据权利要求2所述的基于编排引擎的模块调用方法,其特征在于,所述接收调用方发送的资源调用请求,以使所述控制层对所述资源调用请求进行解析,确定与所述资源调用请求对应的资源模块信息,包括:
通过所述接口层接收所述调用方发送的资源调用请求;
将所述资源调用请求发送至所述控制层,以使所述控制层对所述资源调用请求进行解析,确定所述资源调用请求的请求类型以及请求参数;
当所述请求类型与所述入参类型一致,对所述请求参数进行字段解析,确定模块名称以及方法名称;
根据所述模块名称以及所述方法名称生成资源模块信息。
4.根据权利要求3所述的基于编排引擎的模块调用方法,其特征在于,所述在更新后的目标注册表中确定与所述资源模块信息对应的目标执行模块以及所述目标执行模块中的目标模块方法,包括:
在所述模块注册表中查找与所述模块名称对应的目标执行模块;
在所述方法注册表中查找与所述方法名称对应的目标模块方法,以在所述执行层中调用所述目标模块方法。
5.根据权利要求2所述的基于编排引擎的模块调用方法,其特征在于,在所述获取所述接口层预定义的注册接口信息、入参类型以及返回值类型之后,所述模块调用方法还包括:
接收资源注册请求,并确定与所述资源注册请求对应的待注册模块;
通过所述接口层的注册接口信息标注所述待注册模块,得到待注册模块信息;
发送标注后的待注册模块至所述控制层,以使所述控制层将所述待注册模块信息注册至所述目标注册表。
6.根据权利要求1所述的基于编排引擎的模块调用方法,其特征在于,所述接收反馈参数,以使所述控制层向所述调用方发送所述反馈参数,包括:
确定与所述目标模块方法对应的方法签名;
对所述目标模块方法进行入参,并控制所述执行层执行入参后的目标模块方法,以根据所述方法签名确定执行入参后的目标模块方法过程中生成的返回值;
接收所述执行层返回的所述返回值并进行统计,以得到反馈参数;
将所述反馈参数发送至所述控制层,以使所述控制层向所述调用方返回所述反馈参数。
7.根据权利要求3所述的基于编排引擎的模块调用方法,其特征在于,在所述确定所述资源调用请求的请求类型以及请求参数之后,所述模块调用方法还包括:
当所述请求类型与所述入参类型不一致,生成错误信息;
向所述控制层发送所述错误信息,以使所述控制层向所述调用方返回所述错误信息。
8.一种基于编排引擎的模块调用装置,其特征在于,所述编排引擎包括控制层以及执行层,所述模块调用装置包括:
信息获取模块,用于响应于编排引擎启动,获取所述执行层的所有执行模块信息,其中,所述执行模块信息对应的执行模块处于已注册状态;
注册表更新模块,用于根据所述执行模块信息更新预设置的目标注册表;
请求解析模块,用于接收调用方发送的资源调用请求,以使所述控制层对所述资源调用请求进行解析,确定与所述资源调用请求对应的资源模块信息;
信息确定模块,用于在更新后的目标注册表中确定与所述资源模块信息对应的目标执行模块以及所述目标执行模块中的目标模块方法;
参数反馈模块,用于接收反馈参数,以使所述控制层向所述调用方发送所述反馈参数,其中,所述反馈参数为所述执行层调用所述目标执行模块并执行对应的目标模块方法后返回的参数。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口、存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7中任一项所述的基于编排引擎的模块调用方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的基于编排引擎的模块调用方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311483375.3A CN117573222A (zh) | 2023-11-08 | 2023-11-08 | 基于编排引擎的模块调用方法、装置、计算机设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311483375.3A CN117573222A (zh) | 2023-11-08 | 2023-11-08 | 基于编排引擎的模块调用方法、装置、计算机设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117573222A true CN117573222A (zh) | 2024-02-20 |
Family
ID=89859859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311483375.3A Pending CN117573222A (zh) | 2023-11-08 | 2023-11-08 | 基于编排引擎的模块调用方法、装置、计算机设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573222A (zh) |
-
2023
- 2023-11-08 CN CN202311483375.3A patent/CN117573222A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094922B (zh) | 应用程序免安装运行控制方法及其装置 | |
US7747683B2 (en) | Method and system for operating applications for remote terminal devices | |
US9477787B2 (en) | Method and apparatus for information clustering based on predictive social graphs | |
CN102939579A (zh) | 绑定用户接口元素和粒度反映处理的方法和装置 | |
US8856365B2 (en) | Computer-implemented method, computer system and computer readable medium | |
CN111324619B (zh) | 微服务系统中的对象更新方法、装置、设备和存储介质 | |
US11665247B2 (en) | Resource discovery agent computing device, software application, and method | |
US11537367B1 (en) | Source code conversion from application program interface to policy document | |
US9996344B2 (en) | Customized runtime environment | |
CN113625998B (zh) | 一种请求处理方法和装置 | |
CN101673217A (zh) | 一种实现远端程序调用的方法和系统 | |
CN116233217B (zh) | 基于路由的页面跳转方法、装置、电子设备及存储介质 | |
CN111158777A (zh) | 组件调用方法、装置及计算机可读存储介质 | |
CN117573222A (zh) | 基于编排引擎的模块调用方法、装置、计算机设备及介质 | |
EP2756396B1 (en) | Simulation of static members and parameterized constructors on an interface-based api | |
CN113157722B (zh) | 一种数据处理方法、装置、服务器、系统及存储介质 | |
US11614981B2 (en) | Handling of metadata for microservices processing | |
CN115373815A (zh) | 任务调度方法和装置、电子设备、存储介质 | |
CN115857878A (zh) | 一种开发框架生成方法及应用方法 | |
CN113760262A (zh) | 任务处理方法、装置、计算机系统和计算机可读存储介质 | |
CN116719627B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN117076160B (zh) | 组件调用方法、装置、设备和存储介质 | |
US11431823B1 (en) | Systems and methods for context-aware event ordering protocol for distributed service systems | |
KR20190009880A (ko) | 이벤트 기반 패키지 모듈 호출 방법 및 시스템 | |
Padmanabhan | Java EE 8 and Angular: A practical guide to building modern single-page applications with Angular and Java EE |
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 |