一种基于执行路径相似度的云服务API适配方法组成比例

技术编号:20915046 阅读:24 留言:0更新日期:2019-04-20 09:24
发明专利技术涉及一种基于执行路径相似度的云服务API适配方法。针对多云部署需要面对不同云计算平台的多样性与复杂性等问题,本发明专利技术使用以功能为单位的执行轨迹构建功能依赖图,通过公式计算以及最大公共子图等方法对功能依赖图进行分析,获取不同云服务提供商代码之间的相似性,从而界定管理模式的适用范围。同时,利用以模块为单位的执行轨迹构建执行轨迹图,基于规则分析规范化的执行轨迹,并以此构建多云管理模式。

A Cloud Service API Adaptation Method Based on Similarity of Execution Path

The invention relates to a cloud service API adaptation method based on execution path similarity. In order to solve the problems of diversity and complexity of different cloud computing platforms in multi-cloud deployment, the present invention uses function-based execution trajectories to construct functional dependency graphs, analyzes functional dependency graphs by formula calculation and maximum common subgraph, obtains similarities among codes of different cloud service providers, and defines the application scope of management modes. At the same time, the execution trajectory diagram is constructed by using the execution trajectory of modules, and the normalized execution trajectory is analyzed based on rules, and then the multi-cloud management mode is constructed.

【技术实现步骤摘要】
一种基于执行路径相似度的云服务API适配方法
本专利技术涉及一种基于执行路径相似度的云服务API适配方法,属于软件

技术介绍
随着IT技术的快速发展,互联网应用逐渐成为业务创新、企业提质增效的重要推动力。因此,保障互联网应用的服务质量至关重要。然而,近年来互联网应用全球化服务需求与云计算厂商服务质量地域性矛盾逐渐显现,迫切需要多云统一管理技术,采用“分治”思想对互联网应用所服务的用户进行地域逻辑划分,并选择该地域服务质量的较好的云计算厂商进行部署。多云统一管理技术可以应对应用本地化、单云失效等可用性问题,主要分为基于适配模式和基于代理模式两类。适配模式是多云管理系统的构造与云计算厂商提供的SDK紧耦合,由于云计算厂商SDK的异构性,致使系统的构造复杂度与被管理的云计算厂商数量成正比。代理模式是屏蔽云计算厂商SDK之间的差异性,凝练出通用的多云管理模式,简化多云统一管理系统构造的复杂度。当前,基于代理模式的多云管理技术因其管理模式的通用性和系统构造的简便性,逐渐成为热点问题。通用的多云管理模式是云服务代理系统的核心,尽管Apache顶级开源项目Libcloud(http://libcloud.apache.org/),Jclouds(https://jcloud.apache.org/),Deltacloud(http://deltacloud.apache.org/)都试图解决该问题,但目前均还停留在工程层面,没有明确多云管理模式适用的云厂商与功能的范围,同时缺乏明确的管理模式的规则描述。
技术实现思路
本专利技术的目的:使用多云部署需要面对不同云计算平台的多样性与复杂性等问题,实现云服务代理的通用管理。本专利技术的原理:本专利技术建立多云管理服务接口与云计算平台接口之间的关联规则,从而指导生成适配代码。该方法利用以功能为单位的执行轨迹构建功能依赖图,通过公式计算以及最大公共子图等方法对功能依赖图进行分析,获取不同云服务提供商代码之间的相似性,从而界定管理模式的适用范围。同时利用以模块为单位的执行轨迹构建执行轨迹图,基于规则分析规范化的执行轨迹,并以此构建多云管理模式。本专利技术技术解决方案:一种基于执行路径相似度的云服务API适配方法,其特点在于实现步骤如下:第一步,执行路径表示。本专利技术对云服务调用代理代码动态插桩,在方法调用处获取执行路径信息,包括方法的唯一标识号、方法所在组件的唯一标识号、方法的调用者等。本专利技术主要获取每个功能的执行路径,要求保留函数的调用关系,所以采用路径树的方式来描述执行路径。路径树中每一个树节点表示一个功能或者模块,有向边表示调用关系。树节点X的数据描述为:X={FuncUID,CalleeList,CallerUID,Info},其中,FuncUID为每次函数调用生成的全局唯一标识符,CalleeList表示当前函数调用的子函数列表,这里子函数的先后顺序表示着调用的时序关系,CallerUID表示当前函数调用者的全局唯一标识符,包含当前函数调用的相关信息。Info的数据描述信息如下:Info={FuncType,PackagePath,CloudName,FuncName},其中,FuncType为当前的输出粒度(1表示按功能划分的输出结果,0表示按模块划分的输出结果),PackagePath为当前函数所在的包路径,CloudName为当前函数隶属的云服务提供商,FuncName为函数名。代码可能存在循环和递归结构,而这两种代码结构可能导致整个执行路径过于繁复。为了方便后续的处理,本专利技术通过以下约简规则来简化路径树的结构:(1)如果节点X的连续孩子节点X1,X2,…,Xn的Info信息相同,则只保留第一个孩子节点X1。(2)如果节点X1,X2,…,Xn的Info信息相同,且对任意Xi,Xi+1为父子关系,路径中存在递归调用,只保留第一个节点X1。第二步,功能关系图构建。特定公有云提供商的代码对于功能描述是一致的。将不同功能的路径树节点聚合,保留边与边的关系可以得到功能关系图,节点表示某一功能,边表示存在的调用关系。其中,孤立点表示在整个功能过程中没有调用其他功能,也没有被其他功能所调用。点的度越高,被调用或调用其他功能的次数越多。功能比较会涉及到不同云服务提供商的功能依赖图之间的对比,但是不同云服务提供商对于相同功能的描述会有差异。所以要对功能关系图进行预处理,判断哪些描述是相同的。本专利技术通过人工构建语义映射,将不同云服务提供商的描述映射到统一的描述以对比不同的云服务提供商的功能描述是否相同。云服务提供商A的功能x与云服务提供商B的功能y所表达的语义是否相同的结果为:Result=String.compare(Hash(A.x),Hash(B.y)),其中,Result为比较结果,String.compare为字符串比较函数,Hash为语义映射将不同的云服务商的描述转化为标准描述。第三步,功能关系图相似度计算。本专利技术通过图的相似度分析对不同的云服务提供商的功能依赖图进行评估,以得出云服务提供商之间的相似性关系,从而限定多云管理模式的适用范围。统计不同云服务提供商的功能依赖图之间共有节点与差异节点的数目。两家云服务提供商的功能依赖图相似度为,图节点交集除以图节点并集的比例。当相似度大于或等于该阈值时,认为该相似度所对应的两个云服务提供商可以被方法同时覆盖。当相似度小于该阈值时,认为该相似度所对应的两个云服务提供商不能够被多云管理模式所覆盖。第四步,规范化执行路径选择。对于多个公有云提供商共有的功能,需要有多云管理规范以指导编写代码,本专利技术通过从不同公有云提供商的执行路径中提取信息,选取最合适的执行路径作为多云管理模式的规则。将云服务提供商的功能实现划分为模块,根据模块目的统一命名,通过细粒度插桩信息得到每个功能的执行路径。将同一功能的不同云服务提供商的执行路径聚合成执行路径图。将相同模块聚合成一个节点,边的权值表示模块之间存在关系的云服务提供商的数量。基于执行路径图,本专利技术选择合适的规范化执行路径作为管理模式的规则,通过生成目标代码来完成有效性验证。代码生成过程是先由每个模块逐一完成,最终将以模块为单位的执行路径串接起来,以实现生成目标代码的目的,通过验证代码的有效性证明管理模式的有效性。某一功能的规范化执行路径的提取方法为,通过对多家云服务提供商对同一功能的执行路径图分析,从执行路径图的统一起始节点出发,对当前节点的后继节点进行规则判断。判定是否可以优先节点,如果不能确定再选择边权值最大的后继节点,最终返回选择的规范化执行路径。第五步,自动代码生成。本专利技术以基于多云管理模式的自动代码生成作为成果展示的核心,在使用公有云时,可以通过直接安装不同公有云的SDK,从而根据不同公有云提供适配的调用代码。本专利技术代码生成的对象基于管理模式的规则自动生成源码,处于在公有云所提供的RestfulAPI与应用开发者之间,用于屏蔽不同公有云API的差异性。利用图模型等手段解析执行路径所关联的规则从而界定适用范围以及规则,触发自动代码生成器源码改动。本专利技术使用插桩的方式获取信息,插桩粒度分别为以函数或功能为单位、以模块为单位。以功能为单位的插桩使用Python的装饰器完成,而以模块为单位的插桩本文档来自技高网...

【技术保护点】
1.一种基于执行路径相似度的云服务API适配方法,方法特征在于实现步骤如下:第一步,执行路径表示:对云服务调用代理代码动态插桩,在方法调用处获取执行路径信息,包括方法的唯一标识号、方法所在组件的唯一标识号、方法的调用者等;第二步,功能关系图构建:特定公有云提供商的代码对于功能描述是一致的。将不同功能的路径树节点聚合,保留边与边的关系可以得到功能关系图,节点表示某一功能,边表示存在的调用关系;第三步,功能关系图相似度计算:通过图的相似度分析对不同的云服务提供商的功能依赖图进行评估,以得出云服务提供商之间的相似性关系,从而限定多云管理模式的适用范围;第四步,规范化执行路径选择:对于多个公有云提供商共有的功能,需要有多云管理规范以指导编写代码,本专利技术通过从不同公有云提供商的执行路径中提取信息,选取最合适的执行路径作为多云管理模式的规则;第五步,自动代码生成:以基于多云管理模式的自动代码生成作为成果展示的核心,在使用公有云时,可以通过直接安装不同公有云的SDK,从而根据不同公有云提供适配的调用代码。

【技术特征摘要】
1.一种基于执行路径相似度的云服务API适配方法,方法特征在于实现步骤如下:第一步,执行路径表示:对云服务调用代理代码动态插桩,在方法调用处获取执行路径信息,包括方法的唯一标识号、方法所在组件的唯一标识号、方法的调用者等;第二步,功能关系图构建:特定公有云提供商的代码对于功能描述是一致的。将不同功能的路径树节点聚合,保留边与边的关系可以得到功能关系图,节点表示某一功能,边表示存在的调用关系;第三步,功能关系图相似度计算:通过图的相似度分析对不同的云...

【专利技术属性】
技术研发人员:花磊
申请(专利权)人:苏州博纳讯动软件有限公司
类型:发明
国别省市:江苏,32

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

1