CN118092874A - 一种基于图集扩展的api编排方法及装置 - Google Patents
一种基于图集扩展的api编排方法及装置 Download PDFInfo
- Publication number
- CN118092874A CN118092874A CN202410481076.4A CN202410481076A CN118092874A CN 118092874 A CN118092874 A CN 118092874A CN 202410481076 A CN202410481076 A CN 202410481076A CN 118092874 A CN118092874 A CN 118092874A
- Authority
- CN
- China
- Prior art keywords
- api
- arrangement
- scheme
- apis
- orchestration
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 239000008186 active pharmaceutical agent Substances 0.000 claims abstract description 155
- 238000010586 diagram Methods 0.000 claims abstract description 106
- 238000007619 statistical method Methods 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 claims description 33
- 238000011161 development Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 239000000203 mixture Substances 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 235000014510 cooky Nutrition 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于图集扩展的API编排方法及装置,方法包括:接收用户发送的编排请求;根据所述编排请求,匹配符合应用服务所需的API;根据查找的API以及预先建立的调用关系导航库建立API编排组合集,所述API编排组合集包括多个API编排方案,每个API编排方案包括至少两个API;将每个API编排方案中的API等效为节点,调用关系等效为有向边,获得多个API编排方案图;根据多个API编排方案图建立编排图集,基于所述编排图集进行统计分析和扩展,寻求满足应用服务需求的最优API编排方案并生成推荐信息发送至用户,该方法能够降低API编排难度。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于图集扩展的API编排方法及装置。
背景技术
为了便于向用户提供更好的服务,许多网络公司选择将其业务以API的方式发布,API(Application Programming Interface,应用程序编程接口)将服务、数据等一系列内封装成易于识别和访问的接口,供用户选择并构建满足其需求的应用服务。
专利文献CN109857377A公开了一种API编排方法,所述API编排方法包括:部署终端根据API开放平台的部署信息构建API编排引擎,以使得所述API编排引擎以插件的形式部署在所述API开放平台上;当所述API编排引擎检测到用户在所述API开放平台上触发的API编排请求时,所述API编排引擎根据所述API编排请求生成API子服务列表,以使得所述用户在所述API子服务列表中选择API子服务;当所述API编排引擎检测到所述用户选择所述API子服务完毕后,所述API编排引擎根据用户输入的编排信息并基于所述API子服务构建API调用服务。
然而,随着API服务的数量和种类快速增长,为API服务的编排带来巨大挑战,且应用需求也越来越复杂,上述方法虽然能够实现API的编排,但仍需要开发者选取合适的API,并需要了解所有的API接口及其调用关系,还涉及到基础的逻辑处理才能够完成,整个过程费时费力,使得开发难度高、周期长。
发明内容
本发明提供了一种基于图集扩展的API编排方法及装置,能够降低API编排的难度,有效减少开发成本并节约开发时间。
一种基于图集扩展的API编排方法,包括:
接收用户发送的编排请求;
根据所述编排请求,匹配符合应用服务所需的API;
根据匹配的API以及预先建立的调用关系导航库建立API编排组合集,所述API编排组合集包括多个API编排方案,每个API编排方案包括至少两个API;
将每个API编排方案中的API等效为节点,调用关系等效为有向边,获得多个API编排方案图;
根据多个API编排方案图建立编排图集,基于所述编排图集进行统计分析和扩展,寻求满足应用服务需求的最优API编排方案并生成推荐信息发送至用户。
进一步地,所述编排请求包括应用服务所需的功能语义描述;
所述API包括版本号、接口元数据对象和可用路径对象,所述接口元数据对象描述所述API的服务名称和功能;
根据所述编排请求,匹配符合应用服务所需的API,包括:
将所述编排请求中的功能语义描述与所述接口元数据对象描述的API的服务名称和功能进行匹配,将匹配成功的API确定为符合应用服务所需的API。
进一步地,所述调用关系导航库包括各API之间的惯用调用关系及其调用权值;
根据匹配的API以及预先建立的调用关系导航库建立API编排组合集,包括:
将匹配获得的API进行功能分类,获得分类集;
从所述分类集中选取相应的API,基于所述调用关系导航库获得选取的API与其他API之间惯用调用关系的调用权值,将调用权值大于预设权值的API进行组合,获得API编排方案,获得的多个API编排方案组成所述API编排组合集。
进一步地,基于所述编排图集进行统计分析和扩展,寻求满足应用服务需求的最优API编排方案,包括:
统计所述编排图集中各个节点和相应的有向边在所有API编排方案图中的出现次数;
对各个API编排方案图中出现次数小于最小预设阈值的节点和相应的有向边进行删除,获得待选编排图集;
基于所述待选编排图集进行扩展,生成扩展API编排方案图并加入至所述待选编排图集中,获得扩展编排图集;
统计所述扩展编排图集中出现次数大于最大预设阈值的API编排方案图作为最优API编排方案。
进一步地,基于所述待选编排图集进行扩展,生成扩展API编排方案图,包括:
对所述待选编排图集中的API编排方案图进行分析,判断各个API编排方案图之间是否存在API编排子方案图;
对存在的API编排子方案图增加新的节点及有向边,形成所述扩展API编排方案图。
进一步地,判断各个API编排方案图之间是否存在API编排子方案图,包括:
确定各个API编排方案图中的节点及有向边集合;
分析各个API编排方案图的节点集合之间的归属关系,对每个节点及有向边集合查找是否存在真子集,将其真子集对应的API编排方案图确定为API编排子方案图。
进一步地,获得扩展编排图集之后,还包括:
删除所述扩展编排图集中重复的API编排方案图。
进一步地,对存在的API编排子方案图增加新的节点及有向边,包括:
从所述分类集中查找不属于所述API编排子方案图的节点;
统计查找的不属于所述API编排子方案图的各个节点在所述待选编排图集中的出现次数,将出现次数最多的节点作为新的节点加入至所述API编排子方案图中,并根据新的节点的惯用调用关系增加相应的有向边。
一种基于图集扩展的API编排装置,包括:
接收模块,用于接收用户发送的编排请求;
匹配模块,用于根据所述编排请求,匹配符合应用服务所需的API;
组合模块,用于根据匹配的API以及预先建立的调用关系导航库建立API编排组合集,所述API编排组合集包括多个API编排方案,每个API编排方案包括至少两个API;
等效模块,用于将每个API编排方案中的API等效为节点,调用关系等效为有向边,获得多个API编排方案图;
推荐模块,用于根据多个API编排方案图建立编排图集,基于所述编排图集进行统计分析和扩展,寻求满足应用服务需求的最优API编排方案并生成推荐信息发送至用户。
进一步地,所述编排请求包括应用服务所需的功能语义描述;
所述API包括版本号、接口元数据对象和可用路径对象,所述接口元数据对象描述所述API的服务名称和功能;
所述查找模块根据所述编排请求,匹配符合应用服务所需的API,包括:
将所述编排请求中的功能语义描述与所述接口元数据对象描述的API的服务名称和功能进行匹配,将匹配成功的API确定为符合应用服务所需的API。
进一步地,所述调用关系导航库包括各API之间的惯用调用关系及其调用权值;
所述组合模块根据匹配的API以及预先建立的调用关系导航库建立API编排组合集,包括:
将匹配获得的API进行功能分类,获得分类集;
从所述分类集中选取相应的API,基于所述调用关系导航库获得选取的API与其他API之间惯用调用关系的调用权值,将调用权值大于预设权值的API进行组合,获得API编排方案,获得的多个API编排方案组成所述API编排组合集。
进一步地,所述推荐模块基于所述编排图集进行统计分析和扩展,寻求满足应用服务需求的最优API编排方案,包括:
统计所述编排图集中各个节点和相应的有向边在所有API编排方案图中的出现次数;
对各个API编排方案图中出现次数小于最小预设阈值的节点和相应的有向边进行删除,获得待选编排图集;
基于所述待选编排图集进行扩展,生成扩展API编排方案图并加入至所述待选编排图集中,获得扩展编排图集;
统计所述扩展编排图集中出现次数大于最大预设阈值的API编排方案图作为最优API编排方案。
进一步地,所述推荐模块基于所述待选编排图集进行扩展,生成扩展API编排方案图,包括:
对所述待选编排图集中的API编排方案图进行分析,判断各个API编排方案图之间是否存在API编排子方案图;
对存在的API编排子方案图增加新的节点及有向边,形成所述扩展API编排方案图。
进一步地,所述推荐模块判断各个API编排方案图之间是否存在API编排子方案图,包括:
确定各个API编排方案图中的节点及有向边集合;
分析各个API编排方案图的节点集合之间的归属关系,对每个节点及有向边集合查找是否存在真子集,将其真子集对应的API编排方案图确定为API编排子方案图。
进一步地,所述推荐模块获得扩展编排图集之后,还包括:
删除所述扩展编排图集中重复的API编排方案图。
进一步地,所述推荐模块对存在的API编排子方案图增加新的节点及有向边,包括:
从所述分类集中查找不属于所述API编排子方案图的节点;
统计查找的不属于所述API编排子方案图的各个节点在所述待选编排图集中的出现次数,将出现次数最多的节点作为新的节点加入至所述API编排子方案图中,并根据新的节点的惯用调用关系增加相应的有向边。
一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行上述的方法。
本发明提供的基于图集扩展的API编排方法及装置,通过将应用服务所需的API进行组合,并将组合获得的API编排方案等效为API编排方案图,获得编排图集,基于统计学方法对编排图集进行扩展和分析,最终获得最优API编排方案推荐给用户,使得用户能够快捷的获得推荐的API编排方案,降低API编排的难度,有效减少开发成本并节约开发时间。
附图说明
图1为本发明提供的基于图集扩展的API编排方法一种实施例的流程图。
图2为本发明提供的基于图集扩展的API编排方法中API一种实施例的结构示意图。
图3为本发明提供的基于图集扩展的API编排方法中建立API编排组合集一种实施例的流程图。
图4和图5为本发明提供的基于图集扩展的API编排方法中API组合的示意图。
图6为本发明提供的基于图集扩展的API编排方法中寻求最优API编排方案一种实施例的流程图。
图7为本发明提供的基于图集扩展的API编排装置一种实施例的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案做详细的说明。
参考图1,在一些实施例中,提供一种基于图集扩展的API编排方法,包括:
S1、接收用户发送的编排请求;
S2、根据所述编排请求,匹配符合应用服务所需的API;
S3、根据匹配的API以及预先建立的调用关系导航库建立API编排组合集,所述API编排组合集包括多个API编排方案,每个API编排方案包括至少两个API;
S4、将每个API编排方案中的API等效为节点,调用关系等效为有向边,获得多个API编排方案图;
S5、根据多个API编排方案图建立编排图集,基于所述编排图集进行统计分析和扩展,寻求满足应用服务需求的最优API编排方案并生成推荐信息发送至用户。
进一步地,步骤S1中,所述编排请求包括应用服务所需的功能语义描述。
具体地,参考图2,所述API包括版本号、接口元数据对象和可用路径对象,所述接口元数据对象描述所述API的服务名称和功能;
步骤S2中,根据所述编排请求,匹配符合应用服务所需的API,包括:
将所述编排请求中的功能语义描述与所述接口元数据对象描述的API的服务名称和功能进行匹配,将匹配成功的API确定为符合应用服务所需的API。
具体地,接口元数据对象描述了接口本身的基本信息,包括服务的名称,功能描述,接口URL地址,服务版本,作者联系方式和证书许可信息等。
可用路径对象是API 规范的核心,详细地描述了***包含的接口的信息,包括接口路径、请求方法、请求参数和返回值等。接口路径是到各具体接口的相对路径,与接口元数据对象中的 URL 字段连接组成完整的地址。请求方法指该接口所能接受的请求方法类型,常见的有 Post,Get,Delete,Put四种,分别对应增查删改四种指令,也提供了Options,Head,Trace和Patch 四种不常用的请求方法。请求参数有五个字段组成,描述了参数名称,是否必需,简要说明,参数输入位置和参数类型。其中,参数输入位置有四种值,Query 表示参数追加在 URL 地址之后,Path 表示参数直接放在请求路径中,Header 表示参数放在自定义的请求头中,Cookie 表示参数放在请求 的 Cookie 文本信息中。参数类型可分为整型数字,浮点型数字,字符串,布尔值,时间日期等类型。返回值是一个数组对象,描述了该接口可能出现的响应信息,每种响应信息都有其对应的响应码,响应描述和具体的响应文本。
此外,API还可以根据需要包含其他信息,如安全信息对象,服务器信息对象,分组信息,可重用组件对象,附加文档信息等。
具体地,本实施例中所述的API为Open API,Open API为企业或者公司将提供的数据、服务可供外部访问的资源打包成公共访问接口,允许用户通过web进行访问。而用户可以通过将两个或者两个以上的API所提供的数据、内容、服务等资源,通过一定的方式进行糅合,形成一个新的应用服务。
进一步地,本实施例中,用户可以根据自己所需要实现的应用服务发送编排请求,通过该编排请求描述所需的应用服务的功能,例如,用户需要设计一个能够在地图上查找租房信息的应用服务,则可以描述为“租房”“地图”。当接收到该编排请求时,访问各个API的接口元数据对象,查找与“租房”“地图”匹配的API,而查找到的匹配的API可能有多个。
进一步地,步骤S3中,所述调用关系导航库包括各API之间的惯用调用关系及调用权值;
参考图3,根据匹配的API以及预先建立的调用关系导航库建立API编排组合集,包括:
S31、将匹配获得的API进行功能分类,获得分类集;
S32、从所述分类集中选取相应的API,基于所述调用关系导航库获得选取的API与其他API之间惯用调用关系的调用权值,将调用权值大于预设权值的API进行组合,获得API编排方案,获得的多个API编排方案组成所述API编排组合集。
具体地,两个API之间可以通过输入参数集和输出参数集导出,也就是说,一个API的执行必须等待为其提供输入数据的API执行完成之后才能够进行,该执行顺序即为调用关系。而在一个应用服务中,可能包含多个API,而多个API之间存在串行组合关系和并行组合关系,在实现串行组合关系时,可以通过定义API的依赖顺序来确保它们按正确的顺序执行。例如,在SpringBoot框架中,可以通过注解和依赖注入来实现API之间的串行调用。此外,使用Serverless架构时,服务编排功能可以按照设定的顺序依次执行各个服务节点,并自动管理每个服务节点的状态转换,并行组合关系允许多个API同时执行,而不需要等待其他API完成;在并行组合关系中,可以利用多线程、异步处理和事件驱动等技术来同时执行多个API。例如,FastAPI和Uvicorn的结合利用了异步IO和多进程模式来实现请求的并行处理。在DataWorks的服务编排功能中,多个API或函数服务的调用可以在同一个容器实例内完成,有效降低了服务调用的网络开销,提升了性能。
在实际应用中,合理地结合串行和并行组合关系可以最大化地提高应用服务的性能和可靠性。例如,对于需要大量数据处理的服务,可以将数据获取和处理的API并行化以提高效率,同时在数据处理的最后阶段使用串行API来确保结果的正确性。此外,现代云平台和开发框架提供的服务编排工具和Serverless架构可以进一步简化API组合关系的管理。通过这些工具,开发者可以专注于业务逻辑的实现,而不必过多关注底层的技术细节。最后,为了确保***的健壮性,还需要考虑异常情况的处理。在串行和并行组合关系中,都需要有明确的策略来处理API执行失败的情况,例如通过重试机制、熔断机制或者向调用方提供明确的 error message。
参考图4,例如,一个应用服务包括两个API,分别为A和B,而B需要在A执行完成之后再执行,调用关系则为先调用A再调用B,A和B的组合关系为串行组合关系,参考图5,假设一个应用服务包括四个API,分别为A、B、C、D,其中A、B、C的输出数据作为D的输入数据,而A、B、C之间并不存在数据交换或者彼此调用,该API组合关系为并行组合关系,调用关系则为先调用A、B、C,再调用D。
而实际应用中,各个API的调用关系灵活多变,需要根据实际应用进行确定,这也是API编排技术中的难点。因此,本实施例中,可以通过大数据技术收集和分析大量的API调用日志,分析API之间的惯用调用关系,并建立调用关系导航库。
具体地,通过大数据分析各个应用服务中API之间的惯用调用关系,具体是通过以下步骤:首先,需要从各个应用服务中收集API调用的日志数据。这些数据通常包括API的名称、调用时间、调用者信息、调用参数、返回结果等;对收集到的日志数据进行清洗和预处理,以便进行后续的分析。这可能包括去除无效调用、格式化数据、处理缺失值等;根据清洗和预处理之后的日志数据,使用统计分析和机器学习算法来学习API之间的惯用调用关系。例如,可以通过关联规则学习来发现哪些API经常一起被调用,以及它们的调用顺序;根据API调用关系的频次,为每个API对分配一个调用权值。这个权值反映了API组合的常见程度和重要性。频次越高的API组合,其调用权值越大,反之。
采用关联规则学习API之间的惯用调用关系,包括:
根据清洗和预处理之后的日志数据,统计API调用组合的频次并计算支持度,根据支持度的计算结果生成频繁项集;
基于所述频繁项集生成关联规则;
对所述关联规则进行评估,筛选满足条件的关联规则获得相关API之间的惯用调用关系。
其中,频繁项集即经常一起出现的API调用组合,频繁项集的生成可以通过设置最小支持度阈值来筛选。
具体地,对于一个项集的出现频率,对于规则X→Y,支持度定义为:
;
其中,表示同时包含X和Y的事务项,所有项的数量是指所有事务的总数。
进一步地,对关联规则进行评估,可以采用置信度和提升度进行评估,置信度定义为对于规则X→Y,X出现的情况下,Y出现的条件概率:
;
提升度为衡量规则X→Y的有趣程度,定义为:
;
如果提升度大于1,表示X和Y之间存在正相关,如果提升度等于1,表示X和Y之间没有直接关系,如果提升度小于1,表示X和Y之间存在负相关关系。
进一步地,步骤S31中,由于上一步获得的API可能有多个,即使是同一个功能,也可能查找到多个API。因此,本实施例中按照功能将查找获得的API进行分类,获得分类集。
具体地,分类集的建立可以通过以下步骤进行:首先分析每个API的功能描述和实际使用情况,确定它们的主要职责和功能;制定一套分类标准,根据API的功能、用途和调用模式将其分为不同的类别,这些类别包括有数据获取、数据处理、用户交互、交互接口等;可以使用自然语言处理(NLP)技术和机器学习算法来自动化API的分类过程,通过训练模型识别API的功能描述和调用模式,可以实现高精度的自动分类。根据以上分析和分类过程,建立一个API功能分类集,这个集合包含了所有识别和分类的API,以及它们之间的调用关系和权值。
进一步地,步骤S32中,从各个功能不同的分类集中选择相应的API,基于所述调用关系导航库获得选取的API与其他API之间惯用调用关系的调用权值,将调用权值大于预设权值的API进行组合,从而获得API编排方案,而通过这样的方式能够产生多种组合方式,即形成多个API编排方案,而预设权值的设置,可以控制获得的API编排方案的数量,预设权值设置的越大,则获得的API编排方案的数量越少,计算量相对较少,反正,预设权值设置的越小,获得的API编排方案越多,则计算量越大。将获得的多个API编排方案组成所述API编排组合集。
通过上述方法获得的API编排组合集中包括的多个API编排方案,并不一定都正确或者并不一定满足实际需求,因此,本实施例提供的方法对其进行统计和扩展以寻求最优API编排方案推荐给用户。
进一步地,步骤S4中,将每个API编排方案中的API等效为节点,调用关系等效为有向边,从而将API编排方案等效为图,获得API编排方案图,参考图4,例如一个API编排方案中包括两个API,分别为A和B,将A和B等效为节点,调用关系为先调用A再调用B,则有向边为A指向B。参考图5,如果一个API编排方案中包括四个API,分别为A、B、C、D,调用关系为先调用A、B、C再调用D,则有向边分别为A指向D,B指向D,C指向D。
进一步地,参考图6,步骤S5中,基于所述编排图集进行统计分析和扩展,寻求满足应用服务需求的最优API编排方案,包括:
S51、统计所述编排图集中各个节点和相应的有向边在所有API编排方案图中的出现次数;
S52、对各个API编排方案图中出现次数小于最小预设阈值的节点和相应的有向边进行删除,获得待选编排图集;
S53、基于所述待选编排图集进行扩展,生成扩展API编排方案图并加入至所述待选编排图集中,获得扩展编排图集;
S54、统计所述扩展编排图集中出现次数大于最大预设阈值的API编排方案图作为最优API编排方案。
具体地,步骤S51中,统计所述编排图集中各个节点和相应的有向边在所有API编排方案图中的出现次数,具体地,可以利用图数据库或类似的数据结构存储API编排图集,便于高效地进行图遍历和统计分析。采用深度优先遍历和广度优先遍历对各个API编排方案图进行遍历,即从API编排方案图中的任意节点出发,沿着API编排方案图的边,访问所有节点有且只有一次。其中,深度优先遍历基本思想是从起始节点开始访问,并依次从其邻节点出发深度优先遍历,直到与起始节点相通的节点都被访问。广度优先遍历基本思想是从起始节点开始访问,并依次从其邻节点出发广度优先遍历,直到与起始节点相通的节点都被访问。
进一步地,步骤S52中,根据业务需求和历史数据分析确定最小预设阈值。对于各个API编排方案图中出现次数小于最小预设阈值的节点及其有向边,说明该调用关系可能不正确或者并不适用于设计所需的应用服务,因此将其进行删除。重新计算剩余节点和有向边的出现次数,以反映过滤后的变化。
进一步地,步骤S53中,基于所述待选编排图集进行扩展,生成扩展API编排方案图,包括:
S53a、对所述待选编排图集中的API编排方案图进行分析,判断各个API编排方案图之间是否存在API编排子方案图;
S53b、对存在的API编排子方案图增加新的节点及有向边,形成所述扩展API编排方案图。
进一步地,步骤S53a中,判断各个API编排方案图之间是否存在API编排子方案图,包括:
确定各个API编排方案图中的节点(API)及有向边(调用关系)集合;
分析各个API编排方案图的节点集合之间的归属关系,对这些集合进行比较分析,找出它们之间的归属关系,对每个节点及有向边集合查找是否存在真子集,将其真子集对应的API编排方案图确定为API编排子方案图。通过算法,如二分查找或哈希算法进行比较,高效地确定真子集的存在。如果找到真子集,那么对应的API编排方案图就可以被认定为子方案图。
具体地,例如采用二分查找对每个节点及有向边集合查找是否存在真子集,首先确定筛选真子集的条件,该条件决定了哪些元素属于真子集,将该条件作为输入,使用二分查找确定真子集的上边界和下边界,根据上边界和下边界提取真子集。
还可以采用哈希算法对每个节点及有向边集合查找是否存在真子集,首先确定满足真子集筛选的条件,并根据该条件创建哈希表,将待查找的数据集中的每个元素映射到哈希表中,哈希表的键可以是满足条件的元素或者根据条件计算获得的唯一标识符。遍历待查找的数据集,对每个元素,根据条件判断是否为某个元素的真子集,如果是,则采用哈希函数加入到哈希表中,最后,从哈希表中提取相应的真子集。
具体地,如果一个API编排方案图X的节点集合为A,有向边集合为B,如果存在另一个API编排方案图Y的节点集合为C,有向边集合为D,且C为A的真子集,D为B的真子集,则API编排方案图Y为API编排方案图X的编排子方案图。
如果不存在API编排子方案图,则基于待选编排图集查找最优API编排方案,即统计所述待选编排图集中出现次数大于最大预设阈值的API编排方案图作为最优API编排方案。
进一步地,步骤S53b中,对存在的API编排子方案图增加新的节点及有向边,包括:
从所述分类集中查找不属于所述API编排子方案图的节点;
统计查找的不属于所述API编排子方案图的各个节点在所述待选编排图集中的出现次数,将出现次数最多的节点作为新的节点加入至所述API编排子方案图中,并根据新的节点的惯用调用关系增加相应的有向边。
具体地,通过对API编排子方案图的扩展,选择出现次数最多的节点加入至API编排子方案图中,使得扩展编排图集中的API编排方案图准确性更高,贴近于应用服务的可能性更大。
然而,通过增加节点形成的扩展API编排方案图,有可能与图集中的其他API编排方案图重复,因此,获得扩展编排图集之后,还包括:
删除所述扩展编排图集中重复的API编排方案图。
获得扩展编排图集之后,统计所述扩展编排图集中出现次数大于最大预设阈值的API编排方案图作为最优API编排方案,将该最优API编排方案推荐给用户,可供用户参考便于设计出更加合理和满足应用需求的应用服务。
上述实施例提供的API编排方法,通过将应用服务所需的API进行组合,并将组合获得的API编排方案等效为API编排方案图,基于统计学方法对API编排方案图进行扩展和分析,最终获得最优API编排方案推荐给用户,使得用户能够快捷的获得推荐的API编排方案,降低API编排的难度,有效减少开发成本并节约开发时间。
参考图7,在一些实施例中,还提供一种基于图集扩展的API编排装置,包括:
接收模块201,用于接收用户发送的编排请求;
匹配模块202,用于根据所述编排请求,匹配符合应用服务所需的API;
组合模块203,用于根据查找的API以及预先建立的调用关系导航库建立API编排组合集,所述API编排组合集包括多个API编排方案,每个API编排方案包括至少两个API;
等效模块204,用于将每个API编排方案中的API等效为节点,调用关系等效为有向边,获得多个API编排方案图;
推荐模块205,用于根据多个API编排方案图建立编排图集,基于所述编排图集进行统计分析和扩展,寻求满足应用服务需求的最优API编排方案并生成推荐信息发送至用户。
进一步地,所述编排请求包括应用服务所需的功能语义描述;
所述API包括版本号、接口元数据对象和可用路径对象,所述接口元数据对象描述所述API的服务名称和功能;
匹配模块202根据所述编排请求,匹配符合应用服务所需的API,包括:
将所述编排请求中的功能语义描述与所述接口元数据对象描述的API的服务名称和功能进行匹配,将匹配成功的API确定为符合应用服务所需的API。
进一步地,所述调用关系导航库包括各API之间的惯用调用关系及其调用权值;
组合模块203根据匹配的API以及预先建立的调用关系导航库建立API编排组合集,包括:
将匹配获得的API进行功能分类,获得分类集;
从所述分类集中选取相应的API,基于所述调用关系导航库获得选取的API与其他API之间惯用调用关系的调用权值,将调用权值大于预设权值的API进行组合,获得API编排方案,获得的多个API编排方案组成所述API编排组合集。
进一步地,推荐模块204基于所述编排图集进行统计分析和扩展,寻求满足应用服务需求的最优API编排方案,包括:
统计所述编排图集中各个节点和相应的有向边在所有API编排方案图中的出现次数;
对各个API编排方案图中出现次数小于最小预设阈值的节点和相应的有向边进行删除,获得待选编排图集;
基于所述待选编排图集进行扩展,生成扩展API编排方案图并加入至所述待选编排图集中,获得扩展编排图集;
统计所述扩展编排图集中出现次数大于最大预设阈值的API编排方案图作为最优API编排方案。
进一步地,推荐模块204基于所述待选编排图集进行扩展,生成扩展API编排方案图,包括:
对所述待选编排图集中的API编排方案图进行分析,判断各个API编排方案图之间是否存在API编排子方案图;
对存在的API编排子方案图增加新的节点及有向边,形成所述扩展API编排方案图。
进一步地,推荐模块204判断各个API编排方案图之间是否存在API编排子方案图,包括:
确定各个API编排方案图中的节点及有向边集合;
分析各个API编排方案图的节点集合之间的归属关系,对每个节点及有向边集合查找是否存在真子集,将其真子集对应的API编排方案图确定为API编排子方案图。
进一步地,推荐模块204获得扩展编排图集之后,还包括:
删除所述扩展编排图集中重复的API编排方案图。
进一步地,所述推荐模块对存在的API编排子方案图增加新的节点及有向边,包括:
从所述分类集中查找不属于所述API编排子方案图的节点;
统计查找的不属于所述API编排子方案图的各个节点在所述待选编排图集中的出现次数,将出现次数最多的节点作为新的节点加入至所述API编排子方案图中,并根据新的节点的惯用调用关系增加相应的有向边。
具体实施方式请参考上述的方法实施例,在此不再赘述。
在一些实施例中,还提供一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行上述的方法。
上述实施例提供的API编排装置,通过将应用服务所需的API进行组合,并将组合获得的API编排方案等效为API编排方案图,基于统计学方法对API编排方案图进行扩展和分析,最终获得最优API编排方案推荐给用户,使得用户能够快捷的获得推荐的API编排方案,降低API编排的难度,有效减少开发成本并节约开发时间。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种基于图集扩展的API编排方法,其特征在于,包括:
接收用户发送的编排请求;
根据所述编排请求,匹配符合应用服务所需的API;
根据匹配的API以及预先建立的调用关系导航库建立API编排组合集,所述API编排组合集包括多个API编排方案,每个API编排方案包括至少两个API;
将每个API编排方案中的API等效为节点,调用关系等效为有向边,获得多个API编排方案图;
根据多个API编排方案图建立编排图集,基于所述编排图集进行统计分析和扩展,寻求满足应用服务需求的最优API编排方案并生成推荐信息发送至用户。
2.根据权利要求1所述的方法,其特征在于,所述编排请求包括应用服务所需的功能语义描述;
所述API包括版本号、接口元数据对象和可用路径对象,所述接口元数据对象描述所述API的服务名称和功能;
根据所述编排请求,匹配符合应用服务所需的API,包括:
将所述编排请求中的功能语义描述与所述接口元数据对象描述的API的服务名称和功能进行匹配,将匹配成功的API确定为符合应用服务所需的API。
3.根据权利要求1所述的方法,其特征在于,所述调用关系导航库包括各API之间的惯用调用关系及其调用权值;
根据匹配的API以及预先建立的调用关系导航库建立API编排组合集,包括:
将匹配获得的API进行功能分类,获得分类集;
从所述分类集中选取相应的API,基于所述调用关系导航库获得选取的API与其他API之间惯用调用关系的调用权值,将调用权值大于预设权值的API进行组合,获得API编排方案,获得的多个API编排方案组成所述API编排组合集。
4.根据权利要求3所述的方法,其特征在于,基于所述编排图集进行统计分析和扩展,寻求满足应用服务需求的最优API编排方案,包括:
统计所述编排图集中各个节点和相应的有向边在所有API编排方案图中的出现次数;
对各个API编排方案图中出现次数小于最小预设阈值的节点和相应的有向边进行删除,获得待选编排图集;
基于所述待选编排图集进行扩展,生成扩展API编排方案图并加入至所述待选编排图集中,获得扩展编排图集;
统计所述扩展编排图集中出现次数大于最大预设阈值的API编排方案图作为最优API编排方案。
5.根据权利要求4所述的方法,其特征在于,基于所述待选编排图集进行扩展,生成扩展API编排方案图,包括:
对所述待选编排图集中的API编排方案图进行分析,判断各个API编排方案图之间是否存在API编排子方案图;
对存在的API编排子方案图增加新的节点及有向边,形成所述扩展API编排方案图。
6.根据权利要求5所述的方法,其特征在于,判断各个API编排方案图之间是否存在API编排子方案图,包括:
确定各个API编排方案图中的节点及有向边集合;
分析各个API编排方案图的节点集合之间的归属关系,对每个节点及有向边集合查找是否存在真子集,将其真子集对应的API编排方案图确定为API编排子方案图。
7.根据权利要求4所述的方法,其特征在于,获得扩展编排图集之后,还包括:
删除所述扩展编排图集中重复的API编排方案图。
8.根据权利要求5所述的方法,其特征在于,对存在的API编排子方案图增加新的节点及有向边,包括:
从所述分类集中查找不属于所述API编排子方案图的节点;
统计查找的不属于所述API编排子方案图的各个节点在所述待选编排图集中的出现次数,将出现次数最多的节点作为新的节点加入至所述API编排子方案图中,并根据新的节点的惯用调用关系增加相应的有向边。
9.一种基于图集扩展的API编排装置,其特征在于,包括:
接收模块,用于接收用户发送的编排请求;
匹配模块,用于根据所述编排请求,匹配符合应用服务所需的API;
组合模块,用于根据匹配的API以及预先建立的调用关系导航库建立API编排组合集,所述API编排组合集包括多个API编排方案,每个API编排方案包括至少两个API;
等效模块,用于将每个API编排方案中的API等效为节点,调用关系等效为有向边,获得多个API编排方案图;
推荐模块,用于根据多个API编排方案图建立编排图集,基于所述编排图集进行统计分析和扩展,寻求满足应用服务需求的最优API编排方案并生成推荐信息发送至用户。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行如权利要求1-8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410481076.4A CN118092874B (zh) | 2024-04-22 | 2024-04-22 | 一种基于图集扩展的api编排方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410481076.4A CN118092874B (zh) | 2024-04-22 | 2024-04-22 | 一种基于图集扩展的api编排方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118092874A true CN118092874A (zh) | 2024-05-28 |
CN118092874B CN118092874B (zh) | 2024-07-16 |
Family
ID=91142363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410481076.4A Active CN118092874B (zh) | 2024-04-22 | 2024-04-22 | 一种基于图集扩展的api编排方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118092874B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857377A (zh) * | 2019-01-07 | 2019-06-07 | 平安科技(深圳)有限公司 | 一种api编排方法及装置 |
US20190325074A1 (en) * | 2018-04-18 | 2019-10-24 | International Business Machines Corporation | Application programing interface document generator |
US20200065160A1 (en) * | 2018-08-23 | 2020-02-27 | Fujitsu Limited | Automated api evaluation based on api parameter resolution |
CN112799661A (zh) * | 2021-02-01 | 2021-05-14 | 斑马网络技术有限公司 | 基于图谱的api编排方法及***、电子设备、存储介质 |
CN114281320A (zh) * | 2020-12-24 | 2022-04-05 | 深圳支流科技有限公司 | 一种api网关中的插件编排方法及*** |
CN117056043A (zh) * | 2023-07-27 | 2023-11-14 | 广东工业大学 | 一种用于scos的服务选择编排方法和*** |
CN117389521A (zh) * | 2023-10-16 | 2024-01-12 | 杭州海康机器人股份有限公司 | 一种仓储业务的生成***、方法 |
CN117873597A (zh) * | 2024-01-11 | 2024-04-12 | ***数智科技有限公司 | 一种通过可视化配置方式实现api编排的方法和*** |
-
2024
- 2024-04-22 CN CN202410481076.4A patent/CN118092874B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190325074A1 (en) * | 2018-04-18 | 2019-10-24 | International Business Machines Corporation | Application programing interface document generator |
US20200065160A1 (en) * | 2018-08-23 | 2020-02-27 | Fujitsu Limited | Automated api evaluation based on api parameter resolution |
CN109857377A (zh) * | 2019-01-07 | 2019-06-07 | 平安科技(深圳)有限公司 | 一种api编排方法及装置 |
CN114281320A (zh) * | 2020-12-24 | 2022-04-05 | 深圳支流科技有限公司 | 一种api网关中的插件编排方法及*** |
CN112799661A (zh) * | 2021-02-01 | 2021-05-14 | 斑马网络技术有限公司 | 基于图谱的api编排方法及***、电子设备、存储介质 |
CN117056043A (zh) * | 2023-07-27 | 2023-11-14 | 广东工业大学 | 一种用于scos的服务选择编排方法和*** |
CN117389521A (zh) * | 2023-10-16 | 2024-01-12 | 杭州海康机器人股份有限公司 | 一种仓储业务的生成***、方法 |
CN117873597A (zh) * | 2024-01-11 | 2024-04-12 | ***数智科技有限公司 | 一种通过可视化配置方式实现api编排的方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN118092874B (zh) | 2024-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Fan et al. | Incremental graph pattern matching | |
CN110609902B (zh) | 一种基于融合知识图谱的文本处理方法及装置 | |
Cordella et al. | A (sub) graph isomorphism algorithm for matching large graphs | |
Fan | Graph pattern matching revised for social network analysis | |
Shen et al. | Web service discovery based on behavior signatures | |
Becker et al. | A comparative survey of business process similarity measures | |
Kalashnikov et al. | Domain-independent data cleaning via analysis of entity-relationship graph | |
Fan et al. | Querying big graphs within bounded resources | |
CN108959244A (zh) | 地址分词的方法和装置 | |
CN111767547B (zh) | 一种基于复杂网络社团的软件漏洞检测方法 | |
CN115357904A (zh) | 一种基于程序切片和图神经网络的多类漏洞检测方法 | |
CN113626558B (zh) | 一种基于智能推荐的字段标准化的方法和*** | |
US20170220665A1 (en) | Systems and methods for merging electronic data collections | |
WO2022156086A1 (zh) | 人机交互方法、装置、设备及存储介质 | |
Reza et al. | Scalable pattern matching in metadata graphs via constraint checking | |
CN110765100B (zh) | 标签的生成方法、装置、计算机可读存储介质及服务器 | |
CN116541887B (zh) | 一种大数据平台数据安全保护方法 | |
CN118092874B (zh) | 一种基于图集扩展的api编排方法及装置 | |
CN111723122A (zh) | 数据间关联规则的确定方法、装置、设备及可读存储介质 | |
Whang et al. | Disinformation techniques for entity resolution | |
CN113076089B (zh) | 一种基于对象类型的api补全方法 | |
CN111291373B (zh) | 用于分析数据污染传播的方法、设备和计算机可读存储介质 | |
CN112837026A (zh) | 一种交付物循环依赖的分析方法、装置、设备及存储介质 | |
Carme et al. | The lixto project: Exploring new frontiers of web data extraction | |
Chen et al. | Analyzing User Behavior History for constructing user profile |
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 |