CN113535419A - 一种服务编排方法和装置 - Google Patents
一种服务编排方法和装置 Download PDFInfo
- Publication number
- CN113535419A CN113535419A CN202010301332.9A CN202010301332A CN113535419A CN 113535419 A CN113535419 A CN 113535419A CN 202010301332 A CN202010301332 A CN 202010301332A CN 113535419 A CN113535419 A CN 113535419A
- Authority
- CN
- China
- Prior art keywords
- service
- script
- mapping
- result
- task
- 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 91
- 238000013515 script Methods 0.000 claims abstract description 243
- 238000013507 mapping Methods 0.000 claims abstract description 149
- 238000012545 processing Methods 0.000 claims abstract description 96
- 230000010354 integration Effects 0.000 claims description 36
- 238000004458 analytical method Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 238000011161 development Methods 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 13
- 238000006243 chemical reaction Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013499 data model Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
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是根据本发明实施例的服务编排方法中业务线与映射服务的关系示意图;
图5是根据本发明实施例的服务编排方法中任务队列数据模型示意图;
图6是根据本发明实施例的服务编排方法中任务队列中任务节点的排布示意图;
图7是根据本发明实施例的服务编排方法中任务节点的服务接口执行过程示意图;
图8是根据本发明实施例的服务编排方法中脚本解析的实现流程示意图;
图9是根据本发明实施例的服务编排方法中脚本解析接口设计示意图;
图10是根据本发明实施例的服务编排装置的主要模块的示意图;
图11是本发明实施例可以应用于其中的示例性系统架构图;
图12是适用于来实现本发明实施例的电子设备的计算机装置的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
下面对本发明实施例涉及到的技术术语进行解释。
服务编排:是将一些职责单一的服务进行排列组合,形成一个可以满足业务需求的大服务。
RPC:是远程过程调用(Remote Procedure Call)的缩写形式,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
泛化调用:一种通过动态代理的方式,完成不需要在客户端依赖服务提供接口即可完成RPC接口调用的方式。
ScriptEngineManager:JDK自带脚本解析引擎,可以用于解析多种语言脚本。其中,JDK(Java Development Kit)是Java语言的软件开发工具包。
Groovy:是一种基于JVM(Java虚拟机)的敏捷开发语言。
url:统一资源定位系统(Uniform Resource Locator)的缩写形式,是因特网的万维网服务程序上用于指定信息位置的表示方法。
线程池:一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。
图1是根据本发明实施例的服务编排方法的主要步骤的示意图。如图1所示,本发明实施例的服务编排方法,主要包括如下步骤:
步骤S101:根据调用请求中的接口名称和业务入参,获取预设的服务配置信息。当接收到业务线发送的调用请求时,根据调用请求中业务入参的业务标识和需要调用的接口名称,从业务信息中获取对应的服务配置信息。其中,服务配置信息用于根据业务需求自定义配置相关服务映射信息(包含入参、出参的包装、转换、过滤),调用链关系等,具体可以包括服务映射信息、服务调用信息和服务接口执行次序。
服务映射信息中包含用于整合每个任务节点的返回结果的脚本地址。服务调用信息中包含服务接口的接口名称、方法名称等;服务接口执行次序即服务接口的执行顺序。服务调用信息和服务接口执行次序反映服务之间的调用链关系。
步骤S102:根据所述服务映射信息中的脚本地址,获取对应的服务处理脚本,根据所述服务接口执行次序,对所述服务调用信息的服务接口进行分组,将归属于同一分组的所述服务接口作为任务节点,生成任务队列。服务处理脚本中实现有用于进行结果整合的处理逻辑,由开发人员预先编写,并存储。当获取服务配置信息后,即可解析服务配置信息的服务映射信息得到脚本地址,以获取该服务处理脚本。
获取服务处理脚本后,需要处理接口间的串并调用关系,实施例中按照服务接口执行次序的先后对服务接口进行排序,服务接口执行次序在先的,则排序在前,服务接口执行次序在后的,则排序在后,服务接口执行次序相同的构成一个分组。同一分组的所有服务接口为一个任务节点,且任务节点之内的服务接口为并行调用,任务节点之间为串行调用,所有任务节点按照服务接口执行次序构成任务队列。
步骤S103:按照所述任务节点中服务接口的服务接口执行次序,从所述任务队列中拉取所述任务节点,使用线程执行所述任务节点的服务接口,得到返回结果。按照每个任务节点中服务接口的服务接口执行次序,从任务队列中依次拉取每个任务节点。
当拉取到一个任务节点后,根据任务节点的服务接口数量确定线程数量,之后使用对应数量的线程并行执行该任务节点的所有服务接口,在该任务节点的每个服务接口执行完成后,合并各个线程的执行结果,得到返回结果。
步骤S104:使用所述服务处理脚本对所述返回结果进行组装,返回组装结果。结果组装的处理逻辑较为个性化,故可以根据业务需求编写服务处理脚本,使用该脚本对任务队列中每个任务节点的返回结果进行处理,最终可以将每个任务节点的返回结果以及组装结果返回给业务线。本实施例通过配置的方式,根据业务需求自定义服务映射关系、调用链关系,在无需开发的前提下,稍作配置即可满足业务需求。
图2是根据本发明实施例的服务编排方法的时序图。如图2所示,本发明实施例的服务编排方法由服务编排装置实现,该服务编排装置包括服务映射模块、服务调用模块和服务整合模块。其中,服务映射模块,用于为业务线定义服务配置信息,以及在接收来自业务线的RPC请求后,根据RPC请求中的接口名称和业务入参,获取为该业务线定义的服务配置信息。服务配置信息中定义有接口调用逻辑,调用方式可以是串行、并行。
服务调用模块,用于按照服务配置信息的设置,将业务入参转换为服务接口入参,之后执行具体接口调用逻辑得到返回结果。服务整合模块,用于将返回结果进行组装,并通过服务映射模块转换为业务所需结果后返回给业务线。后续将结合图3-图9对上述三个模块的具体处理过程进行详细说明。
需要注意的是,图2中1vsN是指1次RPC请求对应N个服务接口,并行映射是指N个服务接口可以并行执行,串行映射是指N个服务接口串行执行。比如1次RPC请求需要查询用户信息,而查询用户信息需要调用用户基础信息、用户账号信息和用户等级信息这三个服务,且这三个服务可以并行处理,这样1次RPC请求就对应了三个并行的服务接口。
图3是根据本发明实施例的服务编排方法的主要流程示意图。如图3所示,本发明实施例的服务编排方法由服务编排装置实现,主要包括如下步骤:
步骤S301:服务映射模块根据调用请求中的接口名称和业务入参,获取预设的服务配置信息。服务映射模块包含服务配置和服务解析两大功能,实施例中,服务配置由服务配置模块实现,服务解析由服务解析模块实现。
服务配置模块需要配置服务映射信息、服务调用信息和服务接口执行次序,这些配置组成服务配置信息。服务调用信息包括接口名称、方法名称、方法别名、注册中心地址等。其中,注册中心是指RPC服务的注册中心,用于服务提供者注册服务,服务消费者发现服务。
由于业务入参与服务接口入参的数据类型不同、字段名称不同,故需要在服务映射信息中配置业务入参与服务接口入参的映射关系(下文称为第一映射关系)。表1中结合具体例子示出了业务入参与服务接口入参的差异。
表1
服务映射信息除配置有第一映射关系之外,还配置有返回结果与业务处理结果的映射关系(下文称为第二映射关系),以及返回结果与任务执行次序的映射关系(下文称为第三映射关系)。其中,第二映射关系的配置与第一映射关系相似,也需要转换数据类型和字段名称,此处不再赘述。
第三映射关系保存在映射表中,用于后续根据业务需要,按照任务执行次序选择相应返回结果,进行结果整合。当一个任务节点中存在多个服务接口调用时,需要将多个服务接口的返回结果进行整合。比如,查询用户信息需要调用用户基础信息、用户账号信息和用户等级信息这三个服务,这三个服务在一个任务节点中,当接口并行调用结束后,需要将这三个服务的返回结果进行合并组装,然后进行下一任务节点的执行或者返回结果。
为了提高服务编排装置的灵活性,实施例中将第一至第二映射关系,以及结果整合均通过脚本实现,分别为入参映射脚本、返回结果映射脚本和结果整合脚本。上述脚本可以使用Groovy、Java、Python、JavaScript等语言编写。将脚本上传存储,比如上传至云存储。在持久化数据时,仅存储加密后的云存储链接(该链接指向对应脚本),既降低了存储压力又提高了数据的保密性。
以Groovy脚本为例,表1所示第一映射关系的配置可以通过如下代码实现(该代码即入参映射脚本):
在查询用户信息这一例子中,结果整合的配置可以通过如下Groovy脚本代码实现(该代码即结果整合脚本):
其中,UserbaseInfo信息由用户基础信息接口返回,UserAmount信息由用户账号信息返回,UserRank信息由用户等级信息接口返回。
一个业务线可以配置多个映射服务,故需要在服务配置模块中维护业务线与映射服务之间的关系。图4是根据本发明实施例的服务编排方法中业务线与映射服务的关系示意图。如图4所示,BusinessInfo为业务信息,ConfigInfo为服务配置信息,InterfaceInfo为服务接口信息,BusinessInfo与ConfigInfo之间为1对1的映射关系(图中使用带有两个1的特殊箭头表示),ConfigInfo与InterfaceInfo之间为1对多的映射关系(图中使用带有1*的特殊箭头表示)。表2为图4中涉及的各个对象的属性解释。
表2
按照上述方式定义好服务配置信息后,当服务映射模块接收到业务线发送来的调用请求时,可以由服务解析模块根据调用请求中的接口名称(即表1中的targetMethodName)和业务入参,获取该业务线对应的服务配置信息。其中,业务入参包括业务标识和token(令牌),在获取服务配置信息时,由接口名称和业务标识即可查找到唯一对应的服务配置信息。
步骤S302:服务映射模块解析服务配置信息中的服务映射信息,得到脚本内容。服务解析模块通过服务配置信息中的url获取入参映射脚本、返回结果映射脚本和结果整合脚本,将上述脚本分别解析为对应的byte数组形式进行存储。此处的解析即利用Java的文件IO解析技术解析脚本,得到实际脚本值,再将实际脚本值以byte流的形式存储。实施例中,先解析结果整合脚本,再解析入参映射脚本和返回结果映射脚本。
步骤S303:服务映射模块按照服务接口执行次序,将与调用请求中接口名称相同的全部服务接口进行排序和分组,生成任务队列。服务解析模块将获取的脚本解析成对应的脚本内容后,需要处理接口间的串并调用关系。具体地,服务解析模块按照sequence字段,将多个服务接口信息的服务接口进行排序,再根据sequence字段将服务接口进行分组来处理调用关系,最后生成任务队列,待服务调用模块执行。
图5是根据本发明实施例的服务编排方法中任务队列数据模型示意图。如图5所示,ExecuteTaskItem对象与InterfaceInfo对象相似,用于通过入参映射脚本、返回结果映射脚本和结果整合脚本对应的url拉取对应的脚本文件,并解析为实际脚本值。ExecuteQueue对象中executeTaskItemList属性为任务队列中的任务节点,可以是单个服务接口调用,也可以是多个服务接口调用;convertResultScript属性是在任务节点执行完成后将结果进行合并。下面进行举例说明。
假设当前配置A业务线的getOrder标识接口有5个服务接口,各服务接口定义的方法为:getOrderIdByPin、getAmountByOrderId、getCouponByOrderId、getReduceByOrderId和convertOrder。其中,getOrderIdByPin方法的sequence属性值为0,getAmountByOrderId、getCouponByOrderId和getReduceByOrderId方法的sequence属性值为1,convertOrder方法的sequence属性值为2。将sequence属性值相同的方法组成一个ExecuteQueue对象,ExecuteQueue对象中的每个方法即为每个ExecuteTaskItem对象。
图6是根据本发明实施例的服务编排方法中任务队列中任务节点的排布示意图。如图6所示,任务队列中包括3个任务节点,getOrderIdByPin对应的任务节点(下文称为第一任务节点)最先执行,getAmountByOrderId、getCouponByOrderId和getReduceByOrderId对应的任务节点(下文称为第二任务节点)中间执行,convertOrder对应的任务节点(下文称为第三任务节点)最后执行。该实施例中,可以使用convert ResultScript脚本在第二任务节点执行后,将这三个方法的执行结果进行合并组装,得到返回结果,用于调用第三任务节点的方法。
步骤S304:服务调用模块判断任务队列中是否存在未执行的任务节点,如果存在,则执行步骤S305;否则,执行步骤S310。服务调用模块从任务队列中依次拉取每个任务节点进行处理,处理过程包括步骤S305-步骤S309。
对于任务队列的各任务节点之间,通过串行处理得到返回结果。比如图6中第一任务节点执行完毕后,将其的返回结果作为调用第二任务节点中方法的输入;第二任务节点执行完毕后,将其返回结果作为调用第三任务节点中方法的输入。对于包含多个服务接口的任务节点(比如第二任务节点),通过并行处理得到返回结果。以此实现了接口串并行调用的控制。
步骤S305:服务调用模块判断脚本内容中是否存在与当前任务节点对应的入参映射脚本,如果存在,则执行步骤S306;否则,执行步骤S307。有些服务在调用时可以直接使用业务入参,无需调整数据类型、字段名称,故可以直接交由线程处理。
步骤S306:服务调用模块执行入参映射脚本,以将业务入参转换为服务接口入参,执行步骤S307。入参映射脚本通过before方法实现调用服务时入参的处理逻辑,用于将业务入参转换为服务接口入参。
步骤S307:服务调用模块将当前任务节点的服务接口交由线程处理,合并各线程的执行结果,得到返回结果。假设当前任务节点包含的服务接口有n个,则使用n个线程并行处理各个服务接口,在全部服务接口处理完毕后,可以使用结果整合脚本合并n个线程的执行结果,得到返回结果。该步骤的具体实现参见图7。
实施例中,由于在调用服务时,无法获取服务端的class文件或者jar包,故如果调用请求为RPC请求,则可以通过泛化调用执行对服务接口的调用处理,此时只需指定接口、方法、参数类型等。如果调用请求为Http请求,则在接口服务方提供支持的情况下,可以基于Http的形式进行调用。
步骤S308:服务调用模块判断脚本内容中是否存在与当前任务节点对应的返回结果映射脚本,如果存在,则执行步骤S309;否则执行步骤S304。有些服务的返回结果可以满足业务需求,无需调整数据类型、字段名称,故可以直接进入下一任务节点的处理。
步骤S309:服务调用模块执行返回结果映射脚本,以将返回结果转换为业务处理结果,执行步骤S304。返回结果映射脚本通过after方法实现调用服务后对返回结果的处理逻辑,用于将返回结果转换为业务处理结果(即业务需求的结果)。
步骤S310:服务整合模块执行结果整合脚本,以按照业务需求对任务队列中每个任务节点的返回结果/业务处理结果进行个性化组装,返回组装结果至业务线。服务整合模块用于对任务队列中每个任务节点的返回结果(或者业务处理结果)进行个性化处理,最终可以将各任务节点的返回结果(或者业务处理结果),以及处理后的结果返回给业务线。此处的个性化处理可以包括结果包装、组合、具体地个性化业务逻辑等。
该实施例中通过结果整合脚本执行组装处理,提高了服务编排的灵活性,保证了处理逻辑的个性化。在一优选的实施例中,每次任务节点执行完成后,将该任务节点的返回结果与任务执行次序(即任务节点中服务接口的服务接口执行次序)形成1vs1的映射关系,将该映射关系保存在映射表中(比如Java的map集合)。结果整合脚本只需根据业务需求从映射表中获取相应结果(返回结果或者业务处理结果)进行个性化处理(比如结果包装、组合、计算等业务逻辑)。
业务线在接入服务编排装置,并定义相应的服务配置信息后,会为该业务线分配唯一的业务标识(即表1的appId)和token,用于接口的鉴权校验,防止越权。故在另一优选的实施例中,步骤S302与步骤S303之间还可以对业务入参进行校验,即对业务入参中的业务标识和token进行校验,保证调用请求的合法性。
图7是根据本发明实施例的服务编排方法中任务节点的服务接口执行过程示意图。如图7所示,本发明实施例中任务节点的服务接口执行过程(即步骤S307),包括以下步骤:
步骤S701:遍历当前任务节点的服务接口,为每个服务接口分配一个线程。服务接口的调用处理依赖于executeTaskItemList中元素的个数。假设executeTaskItemList中包括n个元素,那么可以将这n个元素交由n个线程进行处理。使用与当前任务节点中服务接口数量相同的线程数量(线程数量通过计数器控制)去执行,保证每个服务接口由一个线程执行。
步骤S702:通过线程处理服务接口调用,在所有服务接口处理结束后,合并各线程的执行结果,得到返回结果。实施例中,使用线程的栅栏技术,保证在获取结果时,所有线程均已执行完成。
步骤S703:保存当前任务节点的返回结果。
需要注意的是,如果任务节点中的服务接口数量较多,线程池中空闲的线程较少,则可以进行分批处理,减少线程开销。在当前批服务接口执行完毕后,再执行下一批。
在一优选的实施例中,步骤S306和步骤S309的参数转换通过脚本进行解析实现,以达到灵活多变的效果。图8是根据本发明实施例的服务编排方法中脚本解析的实现流程示意图。如图8所示,本发明实施例中脚本解析的实现过程,包括以下步骤:
步骤S801:根据待解析脚本的脚本类型获取脚本引擎,在类初始化时,初始化脚本引擎。此处的待解析脚本可以是入参映射脚本和返回结果映射脚本。脚本类型可以是Groovy脚本、JavaScript脚本、Python脚本等。
以Groovy脚本为例,在选择脚本引擎时,可以采用JDK自带的ScriptEngineManager来获取脚本引擎,省去引入第三方jar包,避免引起jar包冲突。本实施例在类初始化时,初始化脚本引擎,通过该静态加载方式初始化脚本引擎,提升脚本引擎执行效率。
步骤S802:判断是否保存有待解析脚本的脚本编译包,如果没有,则执行步骤S803;否则,执行步骤S804。脚本编译包的保存可以采用本地缓存的方式,也可以采用分布式缓存的方式。对于本地缓存的脚本编译包,即判断本地缓存是否保存有该待解析脚本的脚本编译包。
步骤S803:解析待解析脚本,将获得的脚本内容进行编译打包,得到脚本编译包,保存脚本编译包,执行步骤S804。使用脚本引擎解析该待解析脚本,得到脚本内容。由于脚本内容的可变性不高,故可以采用本地缓存的方式保存脚本编译包,节省脚本编译时间,提升脚本解析效率。
步骤S804:根据脚本编译包执行待解析脚本。
步骤S805:输出执行结果。对于入参映射脚本,输出的即服务接口入参;对于返回结果映射脚本,输出的即业务处理结果。
图9是根据本发明实施例的服务编排方法中脚本解析接口设计示意图。如图9所示,脚本解析接口中的execStr方法支持文本类型脚本解析,execFile方法支持文件类型脚本解析,且该脚本解析接口可支持多种脚本语言扩展。
图10是根据本发明实施例的服务编排装置的主要模块的示意图。如图10所示,本发明实施例的服务编排装置1000,主要包括:
信息获取模块1001,用于根据调用请求中的接口名称和业务入参,获取预设的服务配置信息。当接收到业务线发送的调用请求时,根据调用请求中业务入参的业务标识和需要调用的接口名称,从业务信息中获取对应的服务配置信息。其中,服务配置信息用于根据业务需求自定义配置相关服务映射信息,调用链关系等,具体可以包括服务映射信息、服务调用信息和服务接口执行次序。
服务映射信息中包含用于整合每个任务节点的返回结果的脚本地址。服务调用信息中包含服务接口的接口名称、方法名称等;服务接口执行次序即服务接口的执行顺序。服务调用信息和服务接口执行次序反映服务之间的调用链关系。实施例中,该模块所实现的功能可以合并到服务解析模块1002中。
服务解析模块1002,用于根据所述服务映射信息中的脚本地址,获取对应的服务处理脚本,根据所述服务接口执行次序,对所述服务调用信息的服务接口进行分组,将归属于同一分组的所述服务接口作为任务节点,生成任务队列。服务处理脚本中实现有用于进行结果整合的处理逻辑,由开发人员预先编写,并存储。当获取服务配置信息后,即可解析服务配置信息的服务映射信息得到脚本地址,以获取该服务处理脚本。
获取服务处理脚本后,需要处理接口间的串并调用关系,实施例中按照服务接口执行次序的先后对服务接口进行排序,服务接口执行次序在先的,则排序在前,服务接口执行次序在后的,则排序在后,服务接口执行次序相同的构成一个分组。同一分组的所有服务接口为一个任务节点,且任务节点之内的服务接口为并行调用,任务节点之间为串行调用,所有任务节点按照服务接口执行次序构成任务队列。
服务调用模块1003,用于按照所述任务节点中服务接口的服务接口执行次序,从所述任务队列中拉取所述任务节点,使用线程执行所述任务节点的服务接口,得到返回结果。按照每个任务节点中服务接口的服务接口执行次序,从任务队列中依次拉取每个任务节点。
当拉取到一个任务节点后,根据任务节点的服务接口数量确定线程数量,之后使用对应数量的线程并行执行该任务节点的所有服务接口,在该任务节点的每个服务接口执行完成后,合并各个线程的执行结果,得到返回结果。
服务整合模块1004,用于使用所述服务处理脚本对所述返回结果进行组装,返回组装结果。结果组装的处理逻辑较为个性化,故可以根据业务需求编写服务处理脚本,使用该脚本对任务队列中每个任务节点的返回结果进行处理,最终可以将每个任务节点的返回结果以及组装结果返回给业务线。本实施例通过配置的方式,根据业务需求自定义服务映射关系、调用链关系,在无需开发的前提下,稍作配置即可满足业务需求。
另外,本发明实施例的服务编排装置1000还可以包括:入参转换模块和出参转换模块(图10中未示出)。其中,入参转换模块,用于在使用线程执行所述任务节点的服务接口之前,通过所述入参映射脚本将所述业务入参转换为所述服务接口入参。出参转换模块,用于在使用所述服务处理脚本对所述返回结果进行组装之前,通过所述返回结果映射脚本将所述返回结果转换为所述业务处理结果。
从以上描述可以看出,通过在服务配置信息中预先自定义服务映射信息、服务调用信息和服务接口执行次序,在接收到调用请求后,基于服务配置信息处理调用请求,无需开发即可满足业务需求,增加了服务调用的灵活性,降低了开发成本,提升了产品更新周期。
图11示出了可以应用本发明实施例的服务编排方法或服务编排装置的示例性系统架构1100。
如图11所示,系统架构1100可以包括终端设备1101、1102、1103,网络1104和服务器1105。网络1104用以在终端设备1101、1102、1103和服务器1105之间提供通信链路的介质。网络1104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备1101、1102、1103通过网络1104与服务器1105交互,以接收或发送消息等。终端设备1101、1102、1103上可以安装有各种通讯客户端应用。
终端设备1101、1102、1103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器1105可以是提供各种服务的服务器,例如管理员利用终端设备1101、1102、1103发送的调用请求进行处理的后台管理服务器。后台管理服务器可以获取服务配置信息,根据服务配置信息对调用请求进行处理,并将处理结果(例如组装结果)反馈给终端设备。
需要说明的是,本申请实施例所提供的服务编排方法一般由服务器1105执行,相应地,服务编排装置一般设置于服务器1105中。
应该理解,图11中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种服务编排方法。本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种服务编排方法。
下面参考图12,其示出了适用于来实现本发明实施例的电子设备的计算机系统1200的结构示意图。图12示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图12所示,计算机系统1200包括中央处理单元(CPU)1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储部分1208加载到随机访问存储器(RAM)1203中的程序而执行各种适当的动作和处理。在RAM 1203中,还存储有计算机系统1200操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
以下部件连接至I/O接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(CPU)1201执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括信息获取模块、服务解析、服务调用模块和服务整合模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,信息获取模块还可以被描述为“根据调用请求中的接口名称和业务入参,获取预设的服务配置信息的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据调用请求中的接口名称和业务入参,获取预设的服务配置信息;其中,所述服务配置信息包括服务映射信息、服务调用信息和服务接口执行次序;根据所述服务映射信息中的脚本地址,获取对应的服务处理脚本,根据所述服务接口执行次序,对所述服务调用信息的服务接口进行分组,将归属于同一分组的所述服务接口作为任务节点,生成任务队列;按照所述任务节点中服务接口的服务接口执行次序,从所述任务队列中拉取所述任务节点,使用线程执行所述任务节点的服务接口,得到返回结果;使用所述服务处理脚本对所述返回结果进行组装,返回组装结果。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (11)
1.一种服务编排方法,其特征在于,包括:
根据调用请求中的接口名称和业务入参,获取预设的服务配置信息;其中,所述服务配置信息包括服务映射信息、服务调用信息和服务接口执行次序;
根据所述服务映射信息中的脚本地址,获取对应的服务处理脚本,根据所述服务接口执行次序,对所述服务调用信息的服务接口进行分组,将归属于同一分组的所述服务接口作为任务节点,生成任务队列;
按照所述任务节点中服务接口的服务接口执行次序,从所述任务队列中拉取所述任务节点,使用线程执行所述任务节点的服务接口,得到返回结果;
使用所述服务处理脚本对所述返回结果进行组装,返回组装结果。
2.根据权利要求1所述的方法,其特征在于,所述服务映射信息配置有所述返回结果与任务执行次序的映射关系,所述服务处理脚本包括结果整合脚本;
使用所述服务处理脚本对所述返回结果进行组装,包括:
通过执行所述结果整合脚本,来按照所述任务执行次序,获取对应的返回结果进行个性化组装。
3.根据权利要求2所述的方法,其特征在于,所述服务映射信息还配置有所述业务入参与服务接口入参的映射关系,所述服务处理脚本还包括入参映射脚本,所述入参映射脚本用于实现所述业务入参与所述服务接口入参的映射;
使用线程执行所述任务节点的服务接口的步骤之前,所述方法还包括:
通过所述入参映射脚本将所述业务入参转换为所述服务接口入参。
4.根据权利要求2或3所述的方法,其特征在于,所述服务映射信息还配置有所述返回结果与业务处理结果的映射关系,所述服务处理脚本还包括返回结果映射脚本,所述返回结果映射脚本用于实现所述返回结果与所述业务处理结果的映射;
使用所述服务处理脚本对所述返回结果进行组装的步骤之前,所述方法还包括:
通过所述返回结果映射脚本将所述返回结果转换为所述业务处理结果;
使用所述服务处理脚本对所述返回结果进行组装,包括:
通过执行所述结果整合脚本,来按照所述任务执行次序,获取对应的业务处理结果进行个性化组装。
5.根据权利要求2所述的方法,其特征在于,使用线程执行所述任务节点的服务接口,得到返回结果,包括:
遍历所述任务节点的服务接口;
在所述任务节点包括多个所述服务接口的情况下,使用与服务接口数量相同的线程并行执行多个所述服务接口;
当所述任务节点的服务接口执行完成后,使用所述结果整合脚本合并多个所述线程的执行结果,得到返回结果。
6.根据权利要求3所述的方法,其特征在于,通过所述入参映射脚本将所述业务入参转换为所述服务接口入参,包括:
根据所述入参映射脚本的脚本类型,获取脚本引擎;
根据预保存的所述入参映射脚本的脚本编译包,执行所述入参映射脚本,输出所述服务接口入参。
7.根据权利要求6所述的方法,其特征在于,获取脚本引擎的步骤之后,所述方法还包括:
判断是否保存有所述入参映射脚本的脚本编译包;
在未保存所述脚本编译包的情况下,使用所述脚本引擎解析所述入参映射脚本,得到脚本内容;
将所述脚本内容进行编译打包,生成脚本编译包,保存所述脚本编译包。
8.一种服务编排装置,其特征在于,包括:
信息获取模块,用于根据调用请求中的接口名称和业务入参,获取预设的服务配置信息;其中,所述服务配置信息包括服务映射信息、服务调用信息和服务接口执行次序;
服务解析模块,用于根据所述服务映射信息中的脚本地址,获取对应的服务处理脚本,根据所述服务接口执行次序,对所述服务调用信息的服务接口进行分组,将归属于同一分组的所述服务接口作为任务节点,生成任务队列;
服务调用模块,用于按照所述任务节点中服务接口的服务接口执行次序,从所述任务队列中拉取所述任务节点,使用线程执行所述任务节点的服务接口,得到返回结果;
服务整合模块,用于使用所述服务处理脚本对所述返回结果进行组装,返回组装结果。
9.根据权利要求8所述的装置,其特征在于,所述服务映射信息配置有所述返回结果与任务执行次序的映射关系,所述服务处理脚本包括结果整合脚本;
所述服务整合模块,还用于通过执行所述结果整合脚本,来按照所述任务执行次序,获取对应的返回结果进行个性化组装。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010301332.9A CN113535419A (zh) | 2020-04-16 | 2020-04-16 | 一种服务编排方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010301332.9A CN113535419A (zh) | 2020-04-16 | 2020-04-16 | 一种服务编排方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113535419A true CN113535419A (zh) | 2021-10-22 |
Family
ID=78120281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010301332.9A Pending CN113535419A (zh) | 2020-04-16 | 2020-04-16 | 一种服务编排方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113535419A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416049A (zh) * | 2021-12-23 | 2022-04-29 | 北京来也网络科技有限公司 | 结合rpa和ai的服务接口的配置方法及装置 |
CN115543588A (zh) * | 2022-11-30 | 2022-12-30 | 成都中星世通电子科技有限公司 | 基于脚本编排的电磁感知任务执行方法、系统及终端 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020021237A (ko) * | 2000-09-14 | 2002-03-20 | 유찬영 | 임베디드 시스템의 통합 소프트웨어 개발 프레임워크를제공하는 실시간 미들웨어 장치 및 그 서비스 방법 |
US9098315B1 (en) * | 2014-06-20 | 2015-08-04 | Numerify, Inc. | Generic web service adaptor for performing web service operations for multiple web service providers |
WO2017193715A1 (zh) * | 2016-05-10 | 2017-11-16 | 中国银联股份有限公司 | 一种流程调度方法及装置、设备 |
CN110310034A (zh) * | 2019-06-28 | 2019-10-08 | 京东数字科技控股有限公司 | 一种应用于SaaS的服务编排、业务流程处理方法和装置 |
CN110351342A (zh) * | 2019-06-20 | 2019-10-18 | 平安科技(深圳)有限公司 | 业务指令处理方法、装置、计算机设备和存储介质 |
WO2020048391A1 (zh) * | 2018-09-04 | 2020-03-12 | 京东数字科技控股有限公司 | 基于多租户技术的web服务的部署、调用方法和装置 |
-
2020
- 2020-04-16 CN CN202010301332.9A patent/CN113535419A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020021237A (ko) * | 2000-09-14 | 2002-03-20 | 유찬영 | 임베디드 시스템의 통합 소프트웨어 개발 프레임워크를제공하는 실시간 미들웨어 장치 및 그 서비스 방법 |
US9098315B1 (en) * | 2014-06-20 | 2015-08-04 | Numerify, Inc. | Generic web service adaptor for performing web service operations for multiple web service providers |
WO2017193715A1 (zh) * | 2016-05-10 | 2017-11-16 | 中国银联股份有限公司 | 一种流程调度方法及装置、设备 |
WO2020048391A1 (zh) * | 2018-09-04 | 2020-03-12 | 京东数字科技控股有限公司 | 基于多租户技术的web服务的部署、调用方法和装置 |
CN110351342A (zh) * | 2019-06-20 | 2019-10-18 | 平安科技(深圳)有限公司 | 业务指令处理方法、装置、计算机设备和存储介质 |
CN110310034A (zh) * | 2019-06-28 | 2019-10-08 | 京东数字科技控股有限公司 | 一种应用于SaaS的服务编排、业务流程处理方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416049A (zh) * | 2021-12-23 | 2022-04-29 | 北京来也网络科技有限公司 | 结合rpa和ai的服务接口的配置方法及装置 |
CN114416049B (zh) * | 2021-12-23 | 2023-03-14 | 北京来也网络科技有限公司 | 结合rpa和ai的服务接口的配置方法及装置 |
WO2023115738A1 (zh) * | 2021-12-23 | 2023-06-29 | 北京来也网络科技有限公司 | 结合rpa和ai的服务接口的配置方法及装置 |
CN115543588A (zh) * | 2022-11-30 | 2022-12-30 | 成都中星世通电子科技有限公司 | 基于脚本编排的电磁感知任务执行方法、系统及终端 |
CN115543588B (zh) * | 2022-11-30 | 2023-03-10 | 成都中星世通电子科技有限公司 | 基于脚本编排的电磁感知任务执行方法、系统及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3816823A1 (en) | Webpage rendering method, device, electronic apparatus and storage medium | |
CN109002362B (zh) | 一种服务方法、装置、系统以及电子设备 | |
CN111176626B (zh) | 跨编程语言的代码调用方法及装置、介质、设备 | |
CN111581555B (zh) | 一种文档加载方法、装置、设备及存储介质 | |
CN113535419A (zh) | 一种服务编排方法和装置 | |
CN113821352A (zh) | 一种远程服务的调用方法和装置 | |
CN109213533A (zh) | 一种广告sdk动态加载方法、装置及终端 | |
CN110928545B (zh) | 组件分发方法、单页应用的开发方法、装置及存储介质 | |
CN111414154A (zh) | 前端开发的方法、装置、电子设备和存储介质 | |
EP3872630B1 (en) | Request processing method and apparatus, electronic device, and computer storage medium | |
CN113360377B (zh) | 一种测试方法和装置 | |
CN113094561A (zh) | 网页生成方法、网页生成装置、电子设备以及存储介质 | |
CN110764769B (zh) | 处理用户请求的方法和装置 | |
CN109683992A (zh) | 用于管理对象的方法和装置 | |
CN109669720B (zh) | 基于Promise的链式异步请求处理方法、装置及电子设备 | |
CN116781586A (zh) | 一种gRPC流量解析方法、装置、设备及介质 | |
CN109005163B (zh) | 一种http动态请求服务调用方法 | |
CN113626001B (zh) | 一种基于脚本的api动态编排方法及装置 | |
CN113779122B (zh) | 导出数据的方法和装置 | |
CN113709171A (zh) | 一种用于跨组件状态通信的方法和装置 | |
CN113596164A (zh) | 数据访问方法、装置、系统、设备和介质 | |
CN114064176A (zh) | 一种视图交互方法、装置、电子设备及计算机可读介质 | |
CN113722115A (zh) | 调用接口的方法、装置、设备和计算机可读介质 | |
CN112929453A (zh) | 一种共享session数据的方法和装置 | |
CN112860447A (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 |