基于多次跟踪执行的软件组件推荐制造技术

技术编号:13358825 阅读:90 留言:0更新日期:2016-07-17 16:48
可在根据软件组件的多次使用计算性能度量时生成推荐。跟踪服务可收集来自软件组件的多次使用的跟踪数据,其中每一次使用可以在不同条件下进行。性能度量分析可标识可能影响软件组件的性能的各种因素,随后以不同的递送机制将那些因素呈现给用户。在一个这类机制中,可生成一组推荐的硬件和软件配置,该生成为对软件组件的操作分析的一部分。

【技术实现步骤摘要】
【国外来华专利技术】相关申请的交叉引用本申请要求在2013年11月13日提交的名为“SoftwareComponentRecommendationBasedonMultipleTraceRuns(基于多次跟踪执行的软件组件推荐)”的美国专利申请序列号61/903,755、在2013年11月13日提交的名为“RelationshipGraphforSoftwareComponentRecommendations(软件组件推荐的关系图)”的美国专利申请序列号61/903,762、以及在2013年11月13日提交的名为“ComponentUsageRecommendationSystemwithRelationshipandPerformanceMatching(采用关系和性能匹配的组件使用推荐系统)”的美国专利申请序列号61/903,768的优先权和权益,这些申请所公开和教示的所有内容通过引用被明确结合于此。背景许多计算机编程语言具有大量可重用的软件组件,其中的许多可能是开源的。这些组件在质量方面可能从很差到优秀,并具有与之对应的性能特性范围。在许多语言中,存在数以十万计或甚至百万计的不同组件。这为开发者带来了一个困难的问题:如何从巨大的库中选择组件呢?概述可在根据软件组件的多次使用计算性能度量时生成推荐。跟踪服务可收集来自软件组件的多次使用的跟踪数据,其中每一次使用可以在不同条件下进行。性能度量分析可标识可能影响软件组件的性能的各种因素,随后以不同的递送机制将那些因素呈现给用户。在一个这类机制中,可生成一组推荐的硬件和软件配置,该生成为对软件组件的操作分析的一部分。推荐系统可通过跨可使用各种模块的多个应用分析模块使用图来标识兼容的和不兼容的软件组件以及其它推荐。该图可标识可被归类为“硬”关系(被定义为被另一模块调用或被并入另一模块)的模块关系,以及可被归类为“软”关系(可被标识为与另一模块一起被并入某应用中)的模块关系。该图可进一步标识潜在的互斥模块,互斥模块可在模块被移除并被第二个模块替代时被标识。该图可被用于为给定使用案例及其它使用推荐相关的模块或模块集合。使用推荐系统可基于用户提供的信息来建议硬件和软件配置以及其它兼容或有用的模块。在架构软件应用或浏览模块时,可向用户呈现按照其在类似硬件平台上或类似负荷下的性能来看、以及根据其基于可通过分析对各个模块的多次不同使用来收集的模块关系图中的关系的兼容性来看可兼容的模块。提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。附图简述在附图中,图1是示出用于软件组件推荐的系统的实施例的图示。图2是示出具有可生成组件推荐的设备的网络环境的实施例的图示。图3是示出带有关系的示例组件图的实施例的图示。图4是示出带有关系和性能数据两者的推荐的实施例的图示。图5是示出用于对跟踪数据进行参数分析的方法的实施例的流程图。图6是示出用于构建组件图的数据源的实施例的图示。图7是示出用于根据应用储存库来构建组件图的方法的实施例的流程图。图8是示出用于根据组件储存库来构建组件图的方法的实施例的流程图。图9是示出用于根据跟踪器数据来构建组件图的方法的实施例的流程图。图10是示出用于标识互斥关系的方法的实施例的流程图。图11是示出用于生成建议的方法的实施例的流程图。图12是示出用于在建议分析之前分析现有应用的方法的实施例的流程图。详细描述基于多次跟踪执行的模块推荐系统模块推荐系统可分析来自软件组件的多次使用的跟踪执行。该分析可标识软件组件在其下执行良好或糟糕的因素,并且这些因素可在推荐系统中被用于软件组件。因素可包括硬件和软件配置、输入参数、常规使用参数、以及其它因素。因素可通过将不同的跟踪数据集彼此比较并且确定有助于定义各个跟踪数据集之间的区别的主导因素来生成。主导因素可有助于标识对于各个软件组件的操作有利或不利的条件。这些条件可以若干种不同方式被使用来推荐软件组件及执行软件组件的条件。跟踪数据集可以是可在应用执行的同时被收集的任何类型的数据。在许多情况下,跟踪数据集可以是跟踪数据的时间串联序列,其可包括关于应用的性能和操作信息。这类序列可表示应用及其各个组件在执行和非满负荷期间可如何执行。在许多情况下,跟踪数据集可包括关于应用所感受到的负荷的信息,并且在一些情况下,负荷或其它信息可从对于跟踪数据或其它数据的分析中推导出。对于软件组件的有利或不利操作起作用的因素可作为软件组件统计用户界面的一部分被呈现给用户。软件组件统计列表可标识在充分利用该软件组件方面哪些因素是主导的,以及在部署该软件组件时要避免的因素。这类信息可对于可能正搜索要执行某个功能的软件组件的开发者而言是有帮助的。各因素可被实现为组件表现的预测模型。这类预测模型可包括可能影响组件的性能或其它度量的主导因素。在一个简单示例中,预测模型可估计在给定组件可能经历的一组硬件、软件、以及使用参数的情况下该组件用于处理请求的响应时间。用于软件组件推荐的关系图软件组件的关系图可标识各个可重用的软件组件之间的不同类型的关系。“硬”关系可存在于一个组件调用或包括另一组件的情形,而“软”关系可存在于开发者在同一应用中使用两个组件的情形。在一些情况下,在一个组件在应用的新修订中被另一组件代替时,可标识互斥关系。关系图可由多个不同数据来源创建。在一些情况下,可根据包含多个不同应用或组件的储存库中的数据来执行分析。通过分析应用,可标识各个常用组件之间的关系。在一些情况下,对于应用的不同版本的分析可标识其中一个组件可被移除而另一组件被添加,由此指示可能的互斥关系的情形。关系图可部分通过分析来自多个应用的跟踪器数据来收集。跟踪器数据可包括应用内所使用的组件的性能和操作数据,并且可标识“硬”和“软”关系两者。在一些情况下,关系图可由多个来源生成,包括来自多个储存库的数据以及通过跟踪多个应用而收集的跟踪器数据。各模块之间的关系可以按许多不同的方式来使用。在一个示例中,组件统计显示可包括到已知其各种关系的其它组件的链接。采用关系和性能匹配的组件使用推荐系统。组件使用推荐系统可使用性能匹配和组件关系两者来推荐各种组件或标识要替代的组件。对于各种组件,可标识在被执行时提高或降低组件的有效性的一组影响因素。此外,各组件之间本文档来自技高网...

【技术保护点】
一种在至少一个计算机处理器上执行的方法,所述方法包括:接收多个跟踪数据集,每一个所述跟踪数据集包括在监视第一软件组件时收集的性能数据的时间序列;分析所述多个跟踪数据集以确定导致所述跟踪数据集之间的差异的区别因素;以及向用户呈现所述区别因素。

【技术特征摘要】
【国外来华专利技术】2013.11.13 US 61/903,755;2013.11.13 US 61/903,762;1.一种在至少一个计算机处理器上执行的方法,所述方法包括:
接收多个跟踪数据集,每一个所述跟踪数据集包括在监视第一软件组件时收
集的性能数据的时间序列;
分析所述多个跟踪数据集以确定导致所述跟踪数据集之间的差异的区别因
素;以及
向用户呈现所述区别因素。
2.如权利要求1所述的方法,其特征在于,所述差异包括所述跟踪数据集之
间的性能差异。
3.如权利要求2所述的方法,其特征在于,所述区别因素包括硬件差异。
4.如权利要求3所述的方法,其特征在于,所述区别因素进一步包括软件差
异。
5.如权利要求4所述的方法,其特征在于,还包括对多个区别因素进行排名。
6.如权利要求5所述的方法,其特征在于,所述性能数据包括资源消耗数据。
7.如权利要求6所述的方法,其特征在于,所述资源消耗数据包括由以下各
项组成的组中的至少一个:
处理器资源消耗数据;
存储器资源消耗数据;以及
网络资源消耗数据。
8.如权利要求6所述的方法,其特征在于,所述性能数据包括使用数据。
9.如权利要求8所述的方法,其特征在于,所述使用数据包括由以下各项组

\t成的组中的至少一个:
函数调用计数;以及
接收的输入参数。
10.如权利要求2所述的方法,其特征在于,所述第一软件组件是应用。
11.如权利要求10所述的方法,其特征在于,第一跟踪数据集是在第一硬件
配置上执行所述应用时收集的,而第二跟踪数据集是在第二硬件配置上执行所述应
用时收集的。
12.如权利要求2所述的方法,其特征在于,所述第一软件组件是可重用软件
组件。
13.如权利要求12所述的方法,其特征在于,第一跟踪数据集是在作为第一
应用的一部分执行所述可重用软件组件时收集的,而第二跟踪数据集是在作为第二
应用的一部分执行所述可重用软件组件时收集的。
14.一种系统,包括:
包括多个跟踪数据集的数据库,每一个所述跟踪数据集是在监视第一软件组
件时收集的性能数据的时间序列;
至少一个处理器;
在所述至少一个处理器上操作的分析引擎,所述分析引擎:
接收多个跟踪数据集,每一个所述跟踪数据集包括在监视第一软件组件
时收集的性能数据的时间序列;以及
分析所述多个跟踪数据集以确定导致所述跟踪数据集之间的差异的区别
因素。
15.如权利要求14所述的系统,其特征在于,进一步包括:
接收第一请求并返回所述区别因素作为对所述第一请求的响应的接口。
16.如权利要求15所述的系统,其特征在于,所述接口是应用编程接口。
17.如权利要求14所述的系统,其特征在于,所述第一软件组件是可重用软
件组件。
18.如权利要求17所述的系统,其特征在于,第一跟踪数据集是在执行使用
所述可重用软件组件的第一应用时收集的,而第二跟踪数据集是在执行使用所述可
重用软件组件的第二应用时收集的。
用于软件组件推荐的关系图
19.一种系统,包括:
包括软件组件的关系图的数据库,所述图包括作为节点的所述软件组件以及
作为边的关系;
图构建器,所述图构建器:
从应用接收第一跟踪器数据,所述应用包括第一多个所述软件组件;
标识所述应用中的所述软件组件;
确定所述应用中的第一软件组件被所述应用中的第二软件组件调用,并
且定义所述第一软件组件和所述第二软件组件之间的第一关系;
确定所述应用中的第三软件组件在所述应用中存在并且没有被所述第一
软件组件或所述第二软件组件调用,并且定义所述第一软件组件和所述第三
软件组件之间的第二关系,并且定义所述第二软件组件和所述第三软件组件
之间的第三关系。
20.如权利要求19所述的系统,其特征在于,进一步包括:
查询引擎,所述查询引擎接收包括所述第一软件组件的请求并返回以下各项
中的至少一个:所述第一关系,所述第二关系,以及所述第三关系。
21.如权利要求19所述的系统,其特征在于,所述第一关系是明确关系。
22.如权利要求21所述的系统,其特征在于,所述第二关系和所述第三关系
是隐含关系。
23.如权利要求22所述的系统,其特征在于,所述图构建器进一步:
从第二应用接收跟踪器数据,所述第二应用包括第二多个所述软件组件;
确定所述第三软件组件和所述第一软件组件在所述第二应用中存在,并且增
强所述第一软件组件和所述第三软件组件之间的所述第二关系。
24.如权利要求23所述的系统,其特征在于,所述增强包括加强所述第二关
系。
25.如权利要求24所述的系统,其特征在于,所述图构建器进一步:
从所述应用接收第二跟踪器数据,所述第二跟踪器数据包括来自所述应用的
第二版本的跟踪器数据,并且所述第一跟踪器数据包括来自所述应用的第一版本的
跟踪器数据;
确定所述第三软件组件在所述第一跟踪器数据中存在但在所述第二跟踪器数
据中不存在;
确定第四软件组件在所述第二跟踪器数据中存在但在所述第一跟踪器数据中
不存在;以及
定义所述第三软件组件和所述第四软件组件之间的第四关系,所述第四关系
是互斥关系。
26.如权利要求25所述的系统,其特征在于,进一步包括:
储存库扫描器,所述储存库扫描器:
从储存库中检索应用信息;
标识所述应用信息内的第二多个软件组件;以及
创建所述多个软件组件中的至少两个软件组件之间的至少一个关系。
27.如权利要求26所述的系统,其特征在于,所述存储库扫描器创建所述多
个软件组件中的至少两个软件组件之间...

【专利技术属性】
技术研发人员:T·瑟托R·克莱杰克
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

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

1