面向隐式Serverless函数工作流的动态识别方法及系统技术方案

技术编号:35517587 阅读:10 留言:0更新日期:2022-11-09 14:35
本发明专利技术提出一种本发明专利技术提出一种面向隐式Serverless函数工作流的动态识别方法和系统。通过分析Serverless函数工作流托管服务的需求以及隐式工作流的编程特点,在多次识别操作执行之后,支持对既有的高相似度模型执行信息合并、去重,增量维护工作流结构的更新,降低识别的重复率、错误率。相应的识别结果可持久化存储,并可向Serverless函数计算平台的调度、监控等其他功能服务提供支持。监控等其他功能服务提供支持。监控等其他功能服务提供支持。

【技术实现步骤摘要】
面向隐式Serverless函数工作流的动态识别方法及系统


[0001]本专利技术涉及无服务器计算Serverless中函数工作流识别
,特别涉及一种面向隐式Serverless函数工作流的动态识别方法及系统。

技术介绍

[0002]Serverless计算平台对底层服务器进行了屏蔽,是云计算的一种。Serverless函数工作流服务是在Serverless函数计算基础之上,将各个Serverless函数按照业务需求组织成特定编排流程(如DAG图),整体托管给Serverless计算平台运行,可有效降低大数据、人工智能等应用计算构建的复杂度,其已成为云计算的一项重要服务。
[0003]目前,Serverless函数工作流往往借助Serverless计算平台(如FaaS)内置的编排工具构建,因此其拓扑结构等信息对Serverless计算平台显式可见。相关编排工具包括工作流编程语言及编程库等,如AWS Step Functions提供了States Language、OpenFaaS Faas

Flow编程库等。开发者按照相应的规则、语法编写形成工作流的定义脚本或程序,提交至Serverless计算平台进行解析,平台即可根据其所描述的程序结构按需实现工作流的实例化及运行,并可在运行过程中执行过程追踪、优化等。
[0004]但是,这种方式给开发者使用Serverless计算平台带来了较大的限制。一方面,各Serverless计算平台所定义的工作流方法差异性较大,基于其所实现的程序难以迁移、升级;另一方面,工作流所支持的模式较为有限,新模式的支持需要平台层面提供定制性的运行时支持,不利于复杂程序结构的实现,也影响了用户编程的灵活性。
[0005]因此,开发者常选择以隐式(自定义)的形式构建所需的Serverless函数工作流。其不直接使用平台所提供给的相应编排工具,仅基于Serverless函数调用指令组织程序逻辑,形成了不可被平台直接感知的工作流程序。这给程序构建提供了较好的灵活性,在程序语义上也更为简单,便于程序的开发维护。
[0006]但是,针对这类自定义的Serverless函数工作流程序,计算平台无法直接获取程序的一些关键信息,如工作流程序结构、函数依赖关系等,故而难以提供高效的运行时优化支持,如亲和性调度、数据预取、可观测性支持等。因此,对于开发者而言,其无法完全将程序托管至计算平台,仍需要付出较大成本维护隐式的Serverless函数工作流。这一问题尚未得到有效解决。
[0007]针对这一问题,Serverless函数计算平台需要识别隐式Serverless函数工作流,根据其关键信息,提供更深入的托管服务。隐式的Serverless函数工作流的关键信息都以硬编码形式表达,由于函数源文件可动态修改,且运行调用导致工作流中仅部分逻辑分支会被执行,Serverless函数工作流的实时表达存在动态性,可对既有识别结果的准确性产生干扰。由于这些问题,Serverless计算平台无法直接对其信息进行高效的提取、解析,隐式Serverless函数工作流的识别需要新的技术创新支持。

技术实现思路

[0008]在Serverless计算平台中,隐式的Serverless函数工作流的拓扑结构无法得到有效识别,导致平台难以对其运行提供深入的服务支持。本专利技术提出一种面向隐式Serverless函数工作流的动态识别方法,包括通用的迭代式Serverless函数工作流识别框架、基于函数调用关系的工作流动态识别模型,可实现对隐式Serverless函数工作流拓扑结构的高效识别。
[0009]具体来说针对现有技术的不足,本专利技术提出一种面向隐式Serverless函数工作流的动态识别方法,其中包括:
[0010]步骤1、通过比较待执行的隐式Serverless函数工作流程序和Serverless计算平台已有函数工作流程序,判断函数工作流程序是否更新函数源文件,若是则执行步骤2,否则Serverless计算平台运行当前的工作流模型,得到该隐式Serverless函数工作流程序的执行结果;
[0011]步骤2、从该函数工作流程序中提取函数调用关系,判断是否更新函数调用关系,若是则执行步骤3,否则Serverless计算平台运行当前的工作流模型,得到该隐式Serverless函数工作流程序的执行结果;
[0012]步骤3、识别该函数调用关系的工作流,作为当前工作流,判断Serverless计算平台的工作流数据库中是否存在与该当前工作流相似度大于阈值的历史数据流,若有则将该当前工作流与该历史数据流合并,得到更新数据流,替换该历史数据流合并存入该工作流数据库,否则将该当前工作流作为更新数据流存入该工作流数据库;以该更新数据流更新该Serverless计算平台的工作流模型,该Serverless计算平台运行该工作流模型,得到该隐式Serverless函数工作流程序的执行结果。
[0013]所述的面向隐式Serverless函数工作流的动态识别方法,其中该步骤2包括:Serverless计算平台对该隐式Serverless函数工作流程序进行编译,将其打包为容器,并将该容器分发至相应函数调用处理,以得到该隐式Serverless函数工作流程序的执行结果。
[0014]所述的面向隐式Serverless函数工作流的动态识别方法,其中该步骤2包括:对从该函数工作流程序中提取的函数调用关系进行过滤,去除其中重复的函数调用关系。
[0015]所述的面向隐式Serverless函数工作流的动态识别方法,其中该步骤2包括:判断该工作流数据库中是否存在该函数调用关系,若存在则没有更新函数调用关系,否则需更新函数调用关系。
[0016]本专利技术还提出了一种面向隐式Serverless函数工作流的动态识别系统,其中包括:
[0017]初始模块,用于通过比较待执行的隐式Serverless函数工作流程序和Serverless计算平台已有函数工作流程序,判断函数工作流程序是否更新函数源文件,若是则调用第一判断模块,否则Serverless计算平台运行当前的工作流模型,得到该隐式Serverless函数工作流程序的执行结果;
[0018]第一判断模块,用于从该函数工作流程序中提取函数调用关系,判断是否更新函数调用关系,若是则调用第二判断模块,否则Serverless计算平台运行当前的工作流模型,得到该隐式Serverless函数工作流程序的执行结果;
[0019]第二判断模块,用于识别该函数调用关系的工作流,作为当前工作流,判断Serverless计算平台的工作流数据库中是否存在与该当前工作流相似度大于阈值的历史数据流,若有则将该当前工作流与该历史数据流合并,得到更新数据流,替换该历史数据流合并存入该工作流数据库,否则将该当前工作流作为更新数据流存入该工作流数据库;以该更新数据流更新该Serverless计算平台的工作流模型,该Serverless计算平本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向隐式Serverless函数工作流的动态识别方法,其特征在于,包括:步骤1、通过比较待执行的隐式Serverless函数工作流程序和Serverless计算平台已有函数工作流程序,判断函数工作流程序是否更新函数源文件,若是则执行步骤2,否则Serverless计算平台运行当前的工作流模型,得到该隐式Serverless函数工作流程序的执行结果;步骤2、从该函数工作流程序中提取函数调用关系,判断是否更新函数调用关系,若是则执行步骤3,否则Serverless计算平台运行当前的工作流模型,得到该隐式Serverless函数工作流程序的执行结果;步骤3、识别该函数调用关系的工作流,作为当前工作流,判断Serverless计算平台的工作流数据库中是否存在与该当前工作流相似度大于阈值的历史数据流,若有则将该当前工作流与该历史数据流合并,得到更新数据流,替换该历史数据流合并存入该工作流数据库,否则将该当前工作流作为更新数据流存入该工作流数据库;以该更新数据流更新该Serverless计算平台的工作流模型,该Serverless计算平台运行该工作流模型,得到该隐式Serverless函数工作流程序的执行结果。2.如权利要求1所述的面向隐式Serverless函数工作流的动态识别方法,其特征在于,该步骤2包括:Serverless计算平台对该隐式Serverless函数工作流程序进行编译,将其打包为容器,并针对相应函数调用请求实例化函数容器以进行处理,以得到该隐式Serverless函数工作流程序的执行结果。3.如权利要求1所述的面向隐式Serverless函数工作流的动态识别方法,其特征在于,该步骤2包括:对从该函数工作流程序中提取的函数调用关系进行过滤,去除其中重复的函数调用关系;判断该工作流数据库中是否存在该函数调用关系,若存在则没有更新函数调用关系,否则需更新函数调用关系。4.如权利要求1所述的面向隐式Serverless函数工作流的动态识别方法,其特征在于,还包括,该Serverless计算平台根据Serverless函数工作流交互的两个关键时间点及关键交互信息,对工作流识别过程进行组织管理,以迭代的方式进行工作流的增量识别;识别框架在架构上分为3层,包括接口层、分析处理层、数据模型层;该两个关键时间点分别为函数程序提交时和函数调用运行时该关键交互信息,在函数程序提交时,关键交互信息为更新的函数程序源文件;在函数调用运行时,关键交互信息为函数的调用请求信息;该Serverless计算平台还设有基于函数调用关系的工作流动态识别模型;用于支撑Serverless函数工作流动态识别框架的基础数据模型,其支持迭代增量地扩展函数工作流的拓扑结构信息,并可通过相似性分析,支持重复模型的合并、去重,在更新时减少最终识别模型的重复率。5.一种面向隐式Serverless函数工作流的动态识别系统,其特征在于,包括:初始模块,用于通过比较待执行的隐式Serverless函...

【专利技术属性】
技术研发人员:史骁谭文婷赵晓芳
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1