后期设备配置和基于行为模式的验证
文献发布时间:2023-06-19 10:32:14
优先权声明
本申请要求享有于2018年7月13日提交的标题为“Systems and Methods OfDynamic Late Stage Device Configuration For A Multi-Cloud ServiceEnvironment”的第62/697,800号美国临时专利申请的权益,其全部内容通过引用整体地并入本文。
技术领域
本公开涉及云计算,更具体地,涉及多云服务环境中的定制设备配置和基于行为模式的验证。
背景技术
云计算通常是指经由网络(诸如互联网)可访问的可扩展计算资源的使用。一系列计算资源(通常被称为“云”)可以向用户提供各种服务或资源。服务可以是各种类型,其可以包括例如软件应用、平台、基础设施和/或数据存储。此类服务的名称可能包括软件即服务(Software-as-a-Service,SaaS)或基础设施即服务(Infrastructure-as-a-Service,IaaS)等。其他“云资源”不仅可以指由基于云的系统提供的服务,还可以指此类云服务提供商供应的资源。示例可以包括用于特定应用的基于云的存储或虚拟化计算机。云服务和/或资源可以提供公共云、私有云或混合云,以便于向各种客户交付云服务和/或资源。
通常,为了与某个基于云的服务通信,通常需要特定代理与该基于云的服务通信,并且只与该云服务类型通信。通过这种方式,利用云服务的设备被锁定在被配置用于该设备的特定云服务类型中。对于在多云服务环境中运行的设备的未来可扩展性、重用性和兼容性,这种方法是一个严重的问题。
附图说明
上文简要概述的本公开的更详细描述可通过参考各种实施例来获得,其中一些实施例在附图中示出。虽然附图图示了本公开的选定实施例,但是这些附图不应被认为是对其范围的限制,因为本公开可以允许其他同等有效的实施例。
图1A示出了根据本文描述的一个实施例的、被预配置有与特定云服务直接相关联的云代理的设备的示例。
图1B示出了根据本文描述的一个实施例的、被配置有设备管理组件的系统。
图2A示出了根据本文描述的一个实施例的根据本公开的各种实施例的、在动态定制之前的设备的示例框图。
图2B示出了根据本文描述的一个实施例的根据本公开的各种实施例的、在动态定制之后的具有云服务能力的设备的示例框图。
图3示出了根据本文描述的一个实施例的根据本公开的各种实施例的、针对基于云的环境动态配置定制设备的示例功能框图。
图4示出了根据本文描述的一个实施例的根据本公开的各种实施例的、针对基于云的环境的定制设备的动态配置方法的示例流程图。
图5示出了根据本文描述的一个实施例的根据本公开的各种实施例的、动态配置定制设备的示例功能框图,其包括对基于云的环境的验证。
图6示出了根据本文描述的一个实施例的根据本公开的各种实施例的、动态配置方法的示例流程图,其包括针对基于云的环境对定制设备进行验证。
图7示出了根据本文描述的一个实施例的根据本公开的各种实施例的、动态配置定制设备的示例功能框图,其包括针对基于云的环境的验证、分析以及模式引擎。
图8示出了根据本文描述的一个实施例的、用于检验设备的配置的方法的流程图。
图9示出了根据本文描述的一个实施例的、用于检验用于特定云计算环境的设备的配置的方法的流程图。
图10示出了根据本文描述的一个实施例的、用于跨多个云计算环境检验设备的配置的方法的流程图。
图11示出了根据本文描述的一个实施例的针对云服务合约的基准测试(baselinetest)序列。
在可能的情况下,使用相同的附图标记来表示附图中相同的元件。然而,在一个实施例中公开的元件可以有益地用于其他实施例,而无需具体叙述。
发明内容
本文描述的一个实施例提供了一种针对基于云的环境动态配置设备的方法。该方法包括接收设备的配置请求。该方法还包括处理配置请求以确定一个或多个定制特性。另外,该方法包括用一个或多个定制特性配置设备以动态更新设备。该方法还包括基于一个或多个定制特性从用于设备的储存库中确定软件模块。该方法包括在设备上安装软件模块。该方法还包括在设备上执行多部分检验操作,其中多部分检验操作至少包括多云检验操作和运行时行为分析。
本文描述的另一个实施例提供了一种系统,该系统包括一个或多个计算机处理器和包含计算机程序代码的存储器,当该计算机程序代码由一个或多个计算机处理器的操作执行时,执行用于在设备上执行多部分检验操作的操作。该操作包括用一个或多个定制特性配置该设备,以动态更新该设备。该操作还包括基于一个或多个定制特性,选择并在设备上安装软件模块。另外,该操作包括,在第一云计算环境内在设备上执行软件模块期间,在时间窗口内收集针对多个预定义数据值的数据。该操作还包括分析所收集的数据以识别软件模块的一个或多个执行行为模式。该操作将所识别的一个或多个执行行为模式与用于软件模块的一个或多个预定义的预期行为模式进行比较。该操作还包括,在确定所识别的一个或多个执行行为模式与软件模块的一个或多个预定义的预期行为模式不对应时,生成并传输通知。
本文描述的另一个实施例提供了包含计算机程序代码的非暂时性计算机可读介质,当该计算机程序代码由一个或多个计算机处理器的操作执行时,执行操作。该操作包括用一个或多个定制特性配置设备,并基于该一个或多个定制特性在该设备上安装软件模块。该操作还包括跨多个云计算环境执行所安装的软件模块的检验操作,对于多个云计算环境中的每一个,在该云计算环境内在设备上执行软件模块。检验操作还包括在软件模块的执行期间,在时间窗口内收集针对多个预定义数据值的数据。另外,检验操作包括分析所收集的数据以识别软件模块的一个或多个执行行为模式。该操作还包括选择用于软件模块的一个或多个预定义的预期行为模式。该操作包括将所识别的一个或多个执行行为模式与所选择的软件模块的一个或多个预定义的预期行为模式进行比较。该操作还包括,在确定所识别的一个或多个执行行为模式与用于软件模块的一个或多个预定义的预期行为模式不对应时,生成并传输通知。
具体实施方式
云计算通常是指经由网络(诸如互联网)可访问的可扩展计算资源的使用。一组计算资源(通常称为“云”)可以向用户提供各种服务或资源。服务可以是各种类型,其可以包括例如软件应用、平台、基础设施和/或数据存储。此类服务的名称可能包括软件即服务(SaaS)或基础设施即服务(IaaS)等。其他“云资源”不仅可以指由基于云的系统提供的服务,还可以指此类云服务提供商供应的资源。示例可以包括用于特定应用的基于云的存储或虚拟化计算机。云服务和/或资源可以提供公共云、私有云或混合云,以便于向各种客户交付云服务和/或资源。
通常,为了与某个基于云的服务通信,通常需要特定代理与该基于云的服务通信,并且只与该云服务类型通信。例如,对于与
为了解决兼容性和重用等问题,如本公开所述,可以利用用于针对基于云的环境动态配置设备的系统和方法。一个或多个设备可能已完成制造,但如果没有适当的云服务代理,则无法在云服务环境中运行。一个或多个设备可以利用由设备制造商提供的定制引导库(customization bootstrap library)来安装适当的云服务代理。另外,可以选择与定制的云服务代理和设备将被部署的环境相适应的固件版本。现在完全定制的设备被及时配置以部署到云服务环境中。由于该方法是高度可配置的,因此相同的设备可以动态地重新配置并重新部署到不同的云服务环境中,以满足客户的各种需求。
本公开的实施例提供了几个益处。这些包括但不限于,设备的增强的可制造性。本公开的各种实施例,用于提供可以在不具有与云服务提供商(cloud service provider)的定义的关系的情况下制造以及在部署到客户的非常后期的制造的设备的方法,包括在客户站点本身处可以以即时(Just-In-Time,JIT)方式被配置,以提供兼容的云服务提供商设备,同时帮助保证设备的有效操作的可能性。
此外,实施例设想了用于提供设备的方法,该设备可高度被配置有能够被动态改变以用于各种特定于应用的配置中的诸如定制的云服务代理、设备功能性和/或固件的元素。
最后,实施例设想了用于提供设备和支持基础设施而不是分析云服务提供商与相关联设备之间的通信的方法。基于对通信的分析和云服务提供商和/或相关联设备的观察到的行为,动态配置可以被传送到设备,以基于分析出的数据在一个或多个设备上执行一个或多个动作。
图1A示出了与特定云服务直接相关联的特定设备。在一个示例中,示出了云服务提供商(cloud service provider)100a。这种云服务提供商可以提供具有这种提供商的典型特征的任何类型的服务或资源。示例可以包括但不限于客户管理服务或诸如存储的资源。将与云服务一起利用的设备120a与云代理110a绑定,并且该配对能够经由通信路径130与相关联的云服务提供商100a通信。
应当理解,设备-云代理配对是针对特定云服务提供商绑定的,并且不灵活。这意味着设备不可能针对新的或不同的云服务提供商而重新配置或重新部署。以这种方式,每个云服务提供商100a、100b至任何数量100n分别需要设备120a、120b、120n和云代理110a、110b、110n的通信绑定对。
图1B示出了根据本文描述的一个实施例的被配置有设备管理组件的系统。如图所示,系统150包括经由网络185互连的设备管理系统160和设备190。通常,网络135代表任何合适的数据通信网络,其示例包括(但不限于)局域网(local area network,LAN)、广域网(wide area network,WAN)、IEEE802.11无线网络等。
设备管理系统160包括一个或多个计算机处理器112、存储器165和网络接口控制器179。存储器165包含设备管理组件170和操作系统178。通常,设备管理组件170代表能够在设备190上安装软件模块并验证软件模块的操作的软件逻辑。如本文所述,软件模块是指任何软件组件,包括(但不限于)设备固件、软件应用、用于软件应用的模块、软件应用的套件等。通常,操作系统178代表用于计算设备的任何合适的操作系统。设备管理系统160通信耦合到数据储存180,在所描绘的实施例中,数据储存180包含软件模块182、预定义行为模式183和基准测试184。
设备190包括处理器192、存储器193和网络接口控制器197。在本公开的各种实施例中使用的任何通用计算机系统可以是例如具有通用计算机处理器的通用计算机。例如,处理器162和192可以包括基于英特尔PENTIUM型处理器、摩托罗拉PowerPC、SunUltraSPARC、惠普PA-RISC处理器、基于ARM的处理器或任何其他类型处理器的处理器。通常,处理器162和192代表任何合适的处理器,包括市场上可获得的处理器,诸如从英特尔公司可获得的众所周知的Pentium类处理器。还可以获得许多其他处理器。这种处理器通常执行可以是例如但不限于
存储器165和193通常代表任何合适形式的可寻址计算机存储器。例如,存储器165和193可以代表易失性存储器(例如,静态随机存取存储器(static random-accessmemory,SRAM)和/或非易失性存储器(例如,闪存)。更一般地,可以使用与本文描述的功能性一致的任何合适形式的存储设备。通常,处理器和操作系统共同定义了计算机平台,对于该计算机平台,以高级编程语言编写应用程序。应当理解,本公开的实施例不限于特定计算机系统平台、处理器、操作系统或网络。而且,对于本领域技术人员来说,显然本公开不限于特定编程语言或计算机系统。此外,应当理解,也可以使用其他合适的编程语言和其他适当的计算机系统。
计算机系统的一个或多个部分可以分布在耦合到通信网络的一个或多个计算机系统上。例如,如上所述,确定可用功率容量的计算机系统可以远离系统管理器。这些计算机系统也可以是通用计算机系统。例如,本公开的各个方面可以分布在被配置为向一个或多个客户端计算机提供服务(例如,服务器)的一个或多个计算机系统中,或者作为分布式系统的一部分来执行整体任务。例如,本公开的各个方面可以在客户端-服务器或多层(multi-tier)系统上执行,该多层系统包括分布在一个或多个服务器系统中的组件,这些组件根据本公开的各个实施例执行各种功能。这些组件可以是使用通信协议(例如,TCP/IP)在通信网络(例如,互联网)上通信的可执行代码、中间代码(例如,IL代码)或解释代码(例如,Java)。例如,一个或多个数据库服务器可用于存储用于设计与本公开的实施例相关联的布局的设备数据,诸如预期功耗。
如图所示,设备管理组件170包含软件模块安装组件和软件模块验证组件175。在一个实施例中,设备管理组件170可以针对基于云的环境动态配置设备190。例如,设备管理组件170可以接收设备的配置请求,并且可以处理该配置请求以确定一个或多个定制特性。设备管理组件170可以用一个或多个定制特性配置设备,以动态更新设备。在一个实施例中,软件模块安装组件172基于一个或多个定制特性从用于设备的软件模块储存库182为设备确定软件模块。软件模块安装组件172将软件模块安装在设备上。
然后,软件模块验证组件175可以在设备上执行多部分检验操作,其中多部分检验操作至少包括多云检验操作和运行时行为分析。例如,软件模块验证组件175可以针对安装在设备190上的软件模块194执行来自基准测试184的测试序列。然后,软件模块验证组件175可以确定软件模块194响应于各种测试是否如预期的那样运行(例如,如基准测试184中所规定的)。在一个实施例中,测试包括根据更高级工作流(这里也称为合约)的操作序列。另外,合约中的每个操作可以对应于软件模块194对云服务提供的应用程序接口(Application Program Interface,API)的多个API调用。在这样的示例中,基准测试184可以指定API调用的序列以及API调用中的一个或多个的参数值。
另外,软件模块验证组件175可以对安装在设备190上的软件模块194执行运行时行为分析。例如,在软件模块194的执行期间,软件模块验证组件175可以接收由数据收集组件195针对多个预定义数据度量收集的数据值。多个预定义数据度量可以包括但不限于:软件模块194在时间窗口期间传输的数据消息的数量、软件模块194在时间窗口期间处理的事务的数量、设备190的性能度量(例如处理器使用、内存使用、网络使用等)等等。
然后,软件模块验证组件175可以确定从软件模块194的执行中展示的行为模式,并且可以将所展示的行为模式与数据储存180中的一个或多个预定义的预期行为模式183进行比较。如果模式基本上彼此匹配,软件模块验证组件175可以确定软件模块194被成功安装并且如预期的那样运行。在比较模式时,软件模块验证组件175可以计算两个模式之间的差异度量(例如,通过执行模式数据的统计分析,诸如Kolmogorov-Smirnov测试),并且可以将所计算的差异度量与预定的最大差异度量进行比较。如果所计算的差异度量小于预定义的最大差异度量,则软件模块验证组件175可以确定模式基本上彼此匹配。如果软件模块验证组件175确定模式基本上不匹配(例如,如果所计算的差异度量超过预定义的最大值),则软件模块验证组件175可以生成并传输通知,指示安装的软件模块194可能存在问题。
在一个实施例中,在设备190的设备类型未知的情况下,软件模块验证组件175可以使用由数据收集组件195收集的数据来将设备190分类为多个已知设备类型之一。例如,可以训练机器学习分类器,以基于表示设备行为和属性的输入,将设备分类为多个已知设备类型之一。然后,软件模块验证组件175可以将从数据收集组件195收集的数据输入到机器学习分类器中,以确定设备190的预测设备类型。预测设备类型可以用于例如选择要安装在设备190上的软件模块182,确定要使用哪些预定义的行为模式183来测试设备190的操作,从基准测试184中选择哪些基准测试来对设备执行,等等。
图2A示出了根据本公开的各种实施例的、在动态定制之前的设备的示例框图。本公开的实施例设想了在动态定制之前的设备200,该设备200包括几个硬件和/或软件模块,这些硬件和/或软件模块用于为本公开的益处提供必要的灵活性。
动态定制前设备200可以至少具有物理硬件层210。应当理解,在一些实施例中,该硬件本质上可以是虚拟的。这种硬件210代表设备200的操作系统220在其上交互以提供设备本身的期望功能性的基础。
边缘框架230层也可以被利用,并且包含诸如用于定义设备200本身的特性(例如,温度传感器)的功能性和/或提供必要功能性以执行其设计功能。这种功能的一个示例可以是引导加载器(bootloader),其中这种层对于允许将定制配置以及诸如设备固件的基础加载到设备200上是必要的。以这种方式,设备200可以具有一组硬件或类似的能力,然而,可以基于可用的动态定制将设备200用作利用对设备200可用的可用资源的任何设备200。
应当理解,动态定制前设备200虽然在一些环境中起作用,但是在被本公开的系统和方法转换成配置的设备之前,其不能在云服务提供商环境中操作。
图2B示出了根据本公开的各种实施例的、在动态定制之后的设备的示例框图。一旦设备200已经完成了本文描述的动态定制过程的实施例,转换就随着包含特定云通信代理240层而发生。该层特定于特定云计算环境,并且可以在云服务提供商环境中在部署时(deployment time)动态配置,以允许特定应用的最大灵活性。以这种方式,不能在云服务提供商环境中使用的配置前设备200被转换成具有云服务能力的设备250,并且可以被部署到适当的云服务提供商环境中,并且根据需要针对不同的云服务提供商环境适当地被动态重新部署。
图3示出了根据本公开的各种实施例、针对基于云的环境而动态配置定制设备的示例功能框图。本公开的实施例将产生若干artifact的研发(Research and Development,R&D)功能设想用于将设备200转换成最终连接到云服务提供商340的具有云服务能力的设备250。
R&D 300可以向最终负责设备200的制造的制造功能310提供一般指导、方向、规格和/或其他支持。此外,R&D 300可以负责创建和维护在将设备200转换成具有云服务能力的设备250时使用的artifact的各种库和/或储存库。例如,R&D可以生成图1C所示的和以上讨论的基准测试184。定制引导库320可用于确定要使用的适当的云通信代理240层。如本文所述,该层特定于特定云服务提供商,并且可以在云服务提供商环境中在部署时动态配置,以允许特定应用的最大灵活性。该层也可以用于向特定设备(例如,恒温器)提供功能性并定义其定制功能。固件储存库330可用于向设备提供功能性或增强设备的操作系统220的功能性。定制引导库320和固件储存库330可以是制造期间的本地资源、能够经由网络联系以动态地重新配置设备的具有云服务能力的设备250可用的远程资源、或者两种环境的某种组合,诸如用于已部署的设备的本地升级选项。
应当理解,这些系统和操作的示例是多种多样的,并且在设想到本公开的益处的情况下,存在各种各样的组合。还设想到任何相关联的硬件本质上可以是虚拟的,并且物理设备不是本公开的一些实施例的要求。
图4示出了根据本公开的各种实施例的、针对基于云的环境的定制设备的动态配置方法的示例流程图。将设备200转换成具有云服务能力的设备250的流程的一个实施例可以从设备200联系、被联系或服从库以检索正确的云定制代理400开始。应当理解,这些代理可以是商业云服务提供商、测试代理、或除了部署到云服务提供商之外的目的的定制设备200的期望的其他代理。
设备200可以联系定制引导库410,该定制引导库410可以是本地的、远程的或某种组合,并且包含各种云代理或在设备200的各种部署应用中使用的其他定制代码。设备200将接收并安装正确的代理420,并且可以进行用于确定代理是否正确、是否被适当地加载的自测试,和/或应用所需的其他测试。
设备200现在可以联系固件储存库440,固件储存库440可以是本地的、远程的或某种组合,并且包含在设备200的各种部署应用中使用的各种操作代码。设备200将接收并安装正确的固件版本450,并且可以进行用于确定固件是否正确、是否被适当地加载的自测试,和/或应用所需的其他测试。
类似于代理过程,应当理解,这些固件版本可以用于给定接收平台的各种应用。这可以包括除了部署到云服务提供商之外的目的的定制设备200的期望。具有云服务能力的设备250现在可以与云服务提供商460或通过该过程已经发生的定制所确定的其他服务进行通信。
图5示出了根据本公开的各种实施例的、动态配置定制设备的示例功能框图,其包括对基于云的环境的验证。在这种情况下,验证可以是对具有云服务能力的设备250的验证,其中具有云服务能力的设备250已被完全配置但尚未被部署直到针对验证库500或相关联的验证服务对其进行测试。以这种方式,具有云服务能力的设备250可以被确认为与接近的云服务提供商一起按预期运行。可替换地,如果验证没有如预期的那样运行,则定制的元素或设备200本身可以被更改以允许实际云服务提供商510的期望的结果。
应当理解,转换的几个元素可能需要改变,这是本公开的实施例的益处,其允许可扩展的云服务提供商解决方案的最大灵活性和快速部署。
图6示出了根据本公开的各种实施例的、动态配置方法的示例流程图,包括针对基于云的环境对定制设备进行验证。应当理解,验证不需要作为设备部署的一部分进行。实施例设想了对具有云服务能力的设备250的操作的验证可以在任何物理设备的部署之外执行,并且可以在任何这样的部署之前执行。
另外,实施例将验证子过程600设想为将设备200转换成具有云服务能力的设备250并最终将其部署到云服务提供商的更大流程的一部分。在这样的过程中,在定制步骤之后,可以运行验证子过程600,并确定设备是否被验证620或准备在云服务提供商中利用。验证储存库610可用于存储设备200完成验证的必要元素。如果这种配置被验证,则该过程可以继续到安装正确的代理420,并如图4的实施例一样继续进行。如果配置未被验证,则该过程可以返回以检索正确的代理400,如示例中所示。
应当理解,存在该过程的各种实施例,其中该过程可以在被验证的情况下停止、在各种配置上迭代、在安装正确的固件450之后验证、和/或在与注册的云服务的初始通信460之后验证。在本公开中设想了多个验证点,并且可以以一次性和/或周期性的方式利用这些验证点来验证云服务提供商、设备和/或系统的连续操作。
图7示出了根据本公开的各种实施例的、动态配置定制设备的示例功能框图,其包括针对基于云的环境的验证、分析以及模式引擎。在这种情况下,由于云服务提供商720可以用设备交易大量信息,并且可以本地存储在事件日志中,或者在系统日志针对所有设备进行远程存储,所以存在分析该交易的数据模式的好处,并且有机会将该数据处理成系统的可动作活动。
可以被收集的数据的示例包括但不限于地址、TLS参数、连接细节(例如,IP地址、端口、代理/无代理)、协议(例如,MQTT、HTTP)、利用的加密、定时信息、消息细节和/或数据模式。应当理解,数据的类型和量是多种多样的,并且设想的公开不依赖于数据的任何单一类型或量。
一旦被收集或被交易,数据就可以被分析引擎700处理,以确定是否存在任何特性。另外,可以在正被处理的数据和可能存在于模式储存库710中的现有模式之间进行比较。基于相对模式和匹配类型(例如,精确匹配、模糊匹配、不匹配...),可以采取相对应的行动。仅举几例。
在一个示例中,如果所有交易的数据停止一段时间,则可以确定具有云服务能力的设备250不再适当地运行,并且如果可能的话,应该远程地重置以尝试重启可能发生故障的设备。在另一示例中,如果在某个特定TCP端口上的所有交易数据突然增加了10000%,则可以确定拒绝服务(Denial Of Service,DOS)攻击正在进行。作为一个可能的动作,具有云服务能力的设备250可以动态地更改其配置,以关闭流量流出的端口。
在又一示例中,如果云服务提供商的特性(例如,定时)已经从最初部署的“云服务提供商A”改变为由分析引擎700和模式储存库710识别的“云服务提供商B”,则具有云服务能力的设备250可以动态地配置其云代理以与“云服务提供商B”一起操作。以这种方式,操作员不需要重新安装或重新部署物理产品,也不需要重新部署固件,因为分析引擎700可以辨识云服务提供商的改变,并且通过现有知识,针对新的云服务环境动态地重新配置和重新部署其本身。
图8是示出根据本文描述的一个实施例的、用于检验设备的配置的方法的流程图。如图所示,方法1000开始于框1010,其中设备管理组件170接收设备的配置请求。设备管理组件170处理配置请求以确定设备的一个或多个定制特性(框1020)。然后,设备管理组件170用一个或多个定制特性配置设备,以动态更新设备(框1030)。
在框1040,软件模块安装组件172基于一个或多个定制特性从设备的储存库中确定软件模块。软件模块安装组件172将软件模块安装在设备上(框1050)。然后,软件模块验证组件175为设备执行多部分检验操作,该多部分验证操作至少包括多云检验操作和运行时行为分析(框1060),并且方法1000结束。在为设备执行多部分检验操作时,软件模块验证组件175可以执行操作序列,每个操作由设备或云计算环境中的云服务执行。
图9是示出根据本文描述的一个实施例的、用于针对特定云计算环境检验设备的配置的方法的流程图。如图所示,方法1100开始于框1110,其中设备管理组件170用一个或多个定制特性配置设备,以动态更新设备。软件模块安装组件172基于一个或多个定制特性选择软件模块并将其安装在设备上(框1120)。
然后,软件模块验证组件175针对软件模块执行一组基准测试(框1125)。在目标云计算环境内,在设备上执行软件模块期间,软件模块验证组件175收集时间窗口的针对多个预定义数据度量的数据(框1130)。例如,在设备上执行的数据收集组件195可以收集针对多个预定义数据度量的数据值并将其传输到软件模块验证组件175。
软件模块验证组件175分析收集的数据以识别软件模块的一个或多个执行行为模式(框1140)。然后,软件模块验证组件175将所识别的一个或多个执行行为模式与软件模块的一个或多个预定义的预期行为模式进行比较(框1150)。如果软件模块验证组件175确定所识别的模式与预定义的模式不匹配,则软件模块验证组件175生成并传输通知(框1160),指示软件模块没有如期望的那样起作用,并且方法1100结束。另一方面,如果软件模块验证组件175确定模式匹配,则软件模块验证组件175可以提供软件模块以预期方式起作用的指示。
图10是示出根据本文描述的一个实施例的、用于跨多个云计算环境检验设备的配置的方法的流程图。方法1200开始于框1210,其中设备管理组件170用一个或多个定制特性配置设备,并且软件模块安装组件172基于一个或多个定制特性在设备上安装软件模块。然后,软件模块验证组件175检验所安装的软件模块的运行(框1220)。在这样做时,软件模块验证组件175在设备上执行软件模块(框1230),并且在软件模块的执行期间,软件模块验证组件175在时间窗口内收集针对多个预定义数据度量的数据(框1240)。软件模块验证组件175从软件模块中选择一个或多个预定义的预期行为模式(框1250),并将所识别的一个或多个执行行为模式与所选择的一个或多个预定义的预期行为模式进行比较(框1260)。如果软件模块验证组件175确定模式基本上彼此匹配,则软件模块验证组件175可以确定软件模块正在按预期运行。例如,软件模块验证组件175可以计算所识别的和预定义的行为模式之间的统计的差异度量,并且可以将所计算的差异度量与预定义的差异阈值度量进行比较。如果所计算的差异度量小于预定义阈值,则软件模块验证组件175可以确定模式基本上彼此匹配。否则,软件模块验证组件175可以确定模式不匹配。在所描绘的示例中,软件模块验证组件175确定模式基本上不匹配,并且生成和传输指示软件模块没有按预期运行的通知(框1270),并且方法1200结束。
图11示出了根据本文描述的一个实施例的、针对云服务合约的基准测试序列。如图所示,图示1300示出了合约操作1310(1)-(N)的序列。通常,合约操作1310(1)-(N)中的每一个表示可以在软件模块(例如,云计算环境的代理)和云服务之间执行的更高级操作。如图所示,合约操作的序列1310(1)-(N)中的每个合约操作由一组相应的云服务API调用组成,其中合约操作1310(1)涵盖云服务API调用120(1)-(N),合约操作1310(N)涵盖云服务API调用130(1)-(N)。值得注意的是,尽管对于各种云计算环境,各个API调用和在API调用中使用的参数在云服务之间可以不同,但是合约操作1310(1)-(N)在给定服务的各种云特定实施方式之间通常将保持相同。这样,通过针对更高级别的合约操作执行多部分检验操作,实施例可以跨多个不同的云计算环境检验软件模块的性能(例如,每一个都有不同的API调用,组成给定的更高级别的合约操作)。
在前面,参考了各种实施例。然而,本公开的范围不限于具体描述的实施例。相反,所描述的特征和元素的任何组合,无论是否与不同的实施例相关,都被设想来实施和实践所设想的实施例。此外,尽管实施例可以实现优于其他可能的解决方案或现有技术的优点,但是特定的优点是否由给定的实施例实现并不限制本公开的范围。因此,前面的各方面、特征、实施例和优点仅仅是说明性的,并且不被认为是所附权利要求的要素或限制,除非在权利要求中明确陈述。
本文公开的各种实施例可以实施为系统、方法或计算机程序产品。因此,各方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或结合软件和硬件方面的实施例(这些方面在本文中通常被称为“电路”、“模块”或“系统”)的形式。此外,各方面可以采取在一个或多个计算机可读介质中提现的计算机程序产品的形式,该计算机可读介质具有体现在其上的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是非暂时性计算机可读介质。非暂时性计算机可读介质可以是,例如,但不限于电子、磁、光、电磁、红外或半导体系统、装置或设备,或前述的任何合适的组合。非暂时性计算机可读介质的更具体的示例(非穷举列表)可以包括以下:具有一条或多条导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM或闪存)、光纤、便携式光盘只读存储器(compact disc read-only memory,CD-ROM)、光存储设备、磁存储设备或前述的任何合适的组合。体现在计算机可读介质上的程序代码可以使用任何适当的介质来传输,包括但不限于无线、有线、光纤电缆、RF等,或前述的任何合适的组合。
用于执行本公开各方面的操作的计算机程序代码可以用一种或多种编程语言的任意组合来编写。此外,这种计算机程序代码可以使用单个计算机系统或者通过彼此通信的多个计算机系统来执行(例如,使用局域网(LAN)、广域网(WAN)、互联网等)。虽然前面的各种特征是参照流程图和/或框图描述的,但是本领域普通技术人员将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机逻辑实现(例如,计算机程序指令、硬件逻辑、两者的组合等)。通常,计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器。此外,使用处理器执行这样的计算机程序指令产生了能够执行流程图和/或框图框中指定的功能或动作的机器。
附图中的流程图和框图说明了本公开的各种实施例的可能实现的架构、功能和/或操作。在这点上,流程图或框图中的每个框可以表示模块、代码段或代码部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。还应当注意,在一些替代实施方式中,框中提到的功能可以不按图中提到的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意到,框图和/或流程图说明的每个框以及框图和/或流程图说明中的框的组合可以由执行指定功能或动作的基于专用硬件的系统或者专用硬件和计算机指令的组合来实现。
应当理解,以上描述旨在说明性的,而非限制性的。通过阅读和理解以上描述,许多其他实施例是显而易见的。尽管本公开描述了具体的示例,但是应当认识到,本公开的系统和方法不限于本文描述的示例,而是可以在所附权利要求的范围内进行修改来实施。因此,说明书和附图被认为是说明性的,而不是限制性的。因此,本公开的范围应当参照所附权利要求以及这些权利要求所赋予的等同物的全部范围来确定。
- 后期设备配置和基于行为模式的验证
- 用于模块化验证设备配置的方法