掌桥专利:专业的专利平台
掌桥专利
首页

轮询计算设备

文献发布时间:2023-06-19 11:55:48


轮询计算设备

背景技术

软件和/或应用程序会定期地发布,包括补丁(patch)和/或更新和/或操作系统和软件应用程序的新版本。这些补丁等等中的许多具有重要的功能和安全修复程序。

附图说明

现在将仅以示例的方式对附图进行参考,其中:

图1是示例轮询计算设备的框图;

图2是用以针对当前软件版本指示符来轮询受监视设备的示例方法的流程图;

图3是示例软件补丁差异设备的框图;

图4是用以基于当前软件版本指示符确定自从上次轮询以来已经更新了哪些受监视设备的示例方法的流程图;

图5是示例软件补丁分析设备的框图;

图6是用以生成报告的示例方法的流程图,该报告指示安装在受监视设备处的相应软件版本的统计信息;

图7是用以控制软件补丁的计算设备的示例系统的框图;

图8示出了图7系统的一部分,该部分示出了在示例轮询计算设备处的操作;

图9示出了图7系统的一部分,该部分示出了在示例软件补丁差异设备处的操作;

图10示出了图7系统的一部分,该部分示出了在示例软件补丁分析设备处的操作。

具体实施方式

软件和/或应用程序会定期地发布,包括补丁和/或更新和/或操作系统和应用程序的新版本。这些补丁等等中的许多具有重要的功能和安全修复程序。然而,在设备上,最初安装了较旧版本的软件和/或应用程序,并且可能未及时地安装补丁。另外,在一家可能会跟踪数千台设备上的数百个应用程序的公司中,跟踪是否安装了补丁可能会变得难以处理。当把这样的跟踪和/或应用程序更新外包时,例如,在“设备即服务”(DaaS)环境中,跟踪和/或软件更新可能针对数百万设备上的数千个应用程序,由于每个应用程序跨不同设备和/或不同公司可能具有十到十五个或更多个活动版本,所以这变得甚至更难以处理。

本公开涉及一种系统,该系统包括:轮询计算设备(例如,第一服务器),用以轮询受监视设备以接收安装在受监视设备处的软件的当前软件版本指示符。轮询计算设备可以使用轮询线程和/或虚拟机来轮询受监视设备,可以增加或减少轮询线程和/或虚拟机以调整轮询速率,从而使间隔时间与受监视设备的最小轮询间隔对齐、和/或与其接近。另外,可以每个给定的时间段轮询一次受监视设备,诸如每天一次、每周一次等等。轮询计算设备一般向软件补丁差异引擎提供安装在受监视设备处的软件的当前软件版本指示符。由于受监视设备的数量可能是数百万个,因此尽可能快地轮询受监视设备可能是重要的;然而,当对受监视设备轮询得过快时,轮询可能会使受监视设备处的处理资源不堪重负(overwhelmed),这可能会引起CPU(中央处理单元)突发(burst)等等,其可能中断受监视设备处的服务和/或被受监视设备的用户注意到和/或。因此,通过调整轮询速率以使间隔时间与受监视设备的最小轮询间隔对齐和/或与其接近,轮询计算设备在不引起例如CPU突发等等的情况下尽可能快地轮询受监视设备。

该系统进一步包括:从轮询计算设备接收当前软件版本指示符的软件补丁差异设备(例如,第二服务器)。软件补丁差异设备基于当前软件版本指示符确定自从上次轮询以来已经更新了哪些受监视设备。软件补丁差异设备将自从上次轮询以来已经更新的受监视设备的相应软件改变指示符发送到软件补丁分析设备。例如,软件补丁差异引擎可以使用加密函数(诸如散列函数)来产生受监视设备的当前软件版本指示符的相应标识符(例如,当前软件版本指示符是散列的),并且将当前软件版本指示符的相应标识符与安装在受监视设备处的软件的先前软件版本指示符的先前标识符(例如,也是使用加密函数和/或散列函数产生的)进行比较。以这种方式,软件补丁差异设备确定自从上次轮询以来已经更新了哪些受监视设备,并且将当前软件版本指示符提供给软件补丁分析设备。一般来说,自从上次轮询以来尚未更新的受监视设备的信息可能未发送或不会被发送到应用程序补丁分析设备。因此,没有为软件补丁分析设备提供所有受监视设备的信息,使得软件补丁分析设备可以更高效地操作。例如,由于受监视设备的数量可能是数百万个,而自从上次轮询以来接收软件更新的受监视设备的数量可能只是受监视设备总数的一小部分,因此软件补丁差异引擎会过滤向软件补丁分析设备发送的信息,以免使软件补丁分析设备的处理资源不堪重负。

该系统进一步包括:软件补丁分析设备(例如,第三服务器),其从软件补丁差异设备接收自从上次轮询以来已经更新的受监视设备的相应软件改变指示符。然后,软件补丁分析设备生成报告,该报告指示安装在受监视设备处的软件的相应软件版本的统计信息。所生成的报告可以用于使得和/或自动使得安装在受监视设备处的软件将例如经由软件更新设备利用可用软件版本进行自动更新。由于受监视设备的数目可能是数百万个,并且由于软件补丁分析设备接收到自从上次轮询以来已经更新的受监视设备的软件改变指示符,因此不会使软件补丁分析设备的处理资源不堪重负,并且允许软件补丁分析设备快速且高效地提供报告,该报告使得软件更新设备能够快速实施软件更新。

虽然在本文中使用术语“软件”,但术语应被理解为包括安装在受监视设备处的对其应用更新和/或补丁(等等)的应用程序,例如,用以配置受监视设备处的相应存储器和/或相应处理器以实行应用程序的功能,例如,更新的功能和/或根据补丁的功能等等。

参考图1,示意性地描绘了用以轮询受监视设备的轮询计算设备101。轮询计算设备101包括:存储指令114的存储器112、最小轮询间隔目标116和最大轮询间隔目标118。轮询计算设备101进一步包括:连接到存储器112的处理器120,处理器120用以执行指令114。指令114控制处理器120以:基于正被轮询的给定受监视设备的当前处理时间和先前被轮询的受监视设备的平均处理时间,确定用以轮询受监视设备队列中的受监视设备的间隔时间。指令114进一步控制处理器120以:调整轮询速率,使得间隔时间介于最小轮询间隔目标116和最大轮询间隔目标118之间。指令114进一步控制处理器120以:根据轮询速率来轮询队列中的受监视设备。指令114进一步控制处理器120以:响应于轮询,从队列中的受监视设备接收安装在受监视设备处的软件的当前软件版本指示符。指令114进一步控制处理器120以:向软件补丁差异设备发送当前软件版本指示符,软件补丁差异设备用以基于当前软件版本指示符确定自从上次轮询以来已经更新了哪些受监视设备。

例如,轮询计算设备101可以包括经由通信网络等等与受监视设备和软件补丁差异设备通信的服务器、云计算设备等等。因此,尽管未描绘,但轮询计算设备101可以包括通信接口等等,用以与通信网络通信。

另外,轮询计算设备101可以经由安装在受监视设备处的应用程序和/或轮询应用程序与受监视设备通信。应用程序和/或轮询应用程序可以是由不同于操作轮询计算设备101的实体安装在受监视设备处的第三方应用程序和/或轮询应用程序。实际上,在一些示例中,指令114进一步用以:经由安装在受监视设备处的轮询应用程序的应用编程接口(API)与受监视设备通信。

存储器112耦合到处理器120,并且包括可以是任何电子、磁性、光学或其他物理存储设备的非暂时性机器可读存储介质。存储器112的非暂时性机器可读存储介质可以包括例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器、存储驱动器、光盘等等。存储器112还可以用可执行操作指令和与处理器120通信的其他硬件(例如像,通信接口)进行编码。在其他示例中,要领会到,可以用基于云的存储系统替换存储器112。

存储器112还可以存储操作系统,该操作系统可由处理器120执行以向轮询计算设备101提供一般功能,例如,用以支持各种应用程序的功能,该应用程序诸如是用于访问轮询计算设备101的各种特征的用户界面。操作系统的示例包括实时操作系统(RTOS)、Windows™、macOS™、iOS™、Android™、Linux™和Unix™。存储器112可以附加地存储可由处理器120执行以向轮询计算设备101提供具体功能(诸如下面更详细描述的那些)的应用程序,并且可以包括指令114。

处理器120可以包括中央处理单元(CPU)、微控制器、微处理器、处理核心、现场可编程门阵列(FPGA)或类似物。处理器120和存储器112可以协作来执行诸如指令114之类的各种指令。

特别地,处理器120可以操作多个虚拟机和/或多个轮询线程(例如,在虚拟机处)来轮询受监视设备。可以通过调整用于与队列中的受监视设备通信的轮询线程的数量来调整轮询速率。例如,可以增加轮询线程的数量以降低轮询速率,而可以减少轮询线程的数量以增加轮询速率。

例如,指令114可以进一步控制处理器120以:当间隔时间小于最小轮询间隔目标116时,减少轮询线程的数量,直到轮询速率使得间隔时间等于最小轮询间隔目标116加上缓冲时间为止。

类似地,指令114可以进一步控制处理器120以:当间隔时间大于最大轮询间隔目标118时,增加轮询线程的数量,直到轮询速率使得间隔时间等于最小轮询间隔目标118加上缓冲时间为止。

然而,在一些示例中,指令114可以进一步控制处理器120以:根据轮询速率和缓冲时间来轮询队列中的受监视设备。因此,例如,可以引入缓冲时间来减慢轮询速率。

在又另外的示例中,指令114可以进一步控制处理器120以:与一个和/或多个受监视设备列表通信,以生成受监视设备的队列。例如,一个和/或多个列表可以包括部署受监视设备的不同公司的受监视设备列表;这些公司可能已经雇用了在设备即服务(DaaS)环境中操作轮询计算设备101的实体来维护受监视设备。该一个和/或多个列表可以包括与受监视设备相关联的公司标识符。

参考图2,描绘了用以轮询受监视设备的方法200的流程图。为了帮助解释方法200,将假设方法200可以利用轮询计算设备101来实行,并且具体地由实现指令114的处理器120来实行。实际上,方法200可以是轮询计算设备101轮询受监视设备的一种方式。另外,下面对方法200的讨论可以导致对处理器120、轮询计算设备101及其各种组件的进一步理解。另外,要强调的是,方法200可以不按照所示的确切顺序实行,并且各种框可以并行地而非按顺序实行,或者完全以不同的顺序实行。

在框201处开始,轮询计算设备101基于正被轮询的给定受监视设备的当前处理时间和先前被轮询的受监视设备的平均处理时间,确定用以轮询受监视设备队列中的受监视设备的间隔时间。

可以通过与存储受监视设备列表的一个和/或多个存储设备通信来确定队列。例如,轮询计算设备101可以轮询多个公司的受监视设备,并且受监视设备列表可以包括针对每个公司的相应列表。可以根据该列表生成队列,其中该队列指示要轮询受监视设备的次序。受监视设备的数量可以是数百个、数千个或数百万个等等。

另外,队列可以改变以移除或添加受监视设备。例如,当这样的受监视设备从列表中移除(例如,从受监视取消注册)或被添加到列表中(例如,被注册以受监视)时,可以移除受监视设备。当受监视设备未被委托,和/或操作受监视设备的公司脱离操作轮询计算设备101的实体的DaaS服务时,可能发生移除。类似地,当受监视设备被委托,和/或操作设备的公司加入操作轮询计算设备101的实体的DaaS服务时,可能发生添加。

在一些示例中,用以轮询受监视设备的间隔时间可以是从第一次轮询队列中的给定受监视设备到例如队列中的其他受监视设备被轮询之后第二次轮询给定受监视设备的时间。一般来说,将间隔时间控制在最小轮询间隔116(使得不过于频繁地轮询受监视设备,和/或防止受监视设备处的CPU突发)和最大轮询间隔118(使得对受监视设备的轮询不会太慢)之间。

可以通过首先确定针对单个轮询线程的正被轮询的受监视设备的当前处理时间来确定间隔时间,该当前处理时间可以被添加到针对单个轮询线程上的先前被轮询的设备的先前总处理时间。可以通过将先前被轮询的受监视设备的平均处理时间乘以先前被轮询的受监视设备的数量来确定先前的总处理时间。

该总和的总数(例如,当前处理时间加上先前的总处理时间)可以除以先前被轮询的受监视设备的数量加上“一”(例如,先前被轮询的受监视设备的数量加上当前被轮询的受监视设备的“一”)。因此,例如,可以在轮询计算设备101处确定用于在单个轮询线程处轮询受监视设备的处理时间的移动平均值。

另外,处理时间的移动平均值可以是针对用于轮询受监视设备的所有轮询线程的。例如,轮询计算设备101可以操作多个虚拟机,每个虚拟机可以操作多个轮询线程,以与受监视设备处的应用程序和/或轮询应用程序通信,以请求安装在受监视设备处的软件的当前软件版本指示符。轮询线程一般用于并行轮询受监视设备。

因此,在一些示例中,可以通过用处理时间的平均值和/或移动平均值除以轮询线程的数量来确定每个线程的处理时间。因此,可以通过用每个线程的处理时间乘以要轮询的受监视设备的总数来确定间隔时间。

间隔时间一般指示在给定轮询线程数量的情况下,两次处理单个受监视设备之间的间隔时间(例如,从轮询受监视设备一次,然后轮询队列中所有其他受监视设备,到再次轮询该受监视设备的时间)。当受监视设备的数量变化时,间隔时间可能会变化。间隔时间可以通过控制轮询线程的数量来控制。

在框203处,轮询计算设备101调整用于轮询受监视设备的轮询速率,使得间隔时间介于例如存储在存储器112中的最小轮询间隔目标116和最大轮询间隔目标118之间。换句话说,应该将间隔时间控制为大于最小轮询间隔目标116并且小于最大轮询间隔目标118。

在一些示例中,可以通过与受监视设备处的应用程序和/或轮询应用程序通信来确定最小轮询间隔目标116。该应用程序和/或轮询应用程序可以向轮询计算设备101提供可用于确定最小轮询间隔目标116的最大允许轮询请求数量(例如,每秒)。例如,最大允许轮询请求数量一般指示可以轮询受监视设备的速度,该最大允许轮询请求数量可用于确定最小轮询间隔目标116。一旦接收到最大允许轮询请求数量,就可以在存储器112处确定并预配置最小轮询间隔目标116。然而,在其他示例中,可以在存储器112处启发式地确定并预配置最小轮询间隔目标116。

在一些示例中,可以由系统管理员来预先确定最大轮询间隔目标118。在又另外的示例中,最大轮询间隔目标118可以基于受监视设备的总数,等等。最大轮询间隔目标118可以进一步指示轮询受监视设备的频率。例如,当要每天轮询受监视设备一次时,最大轮询间隔目标118可以被设置为二十四小时。

在一些示例中,在框203处,轮询计算设备101通过调整用于与队列中的受监视设备通信的轮询线程的数量来调整轮询速率。特别地,当间隔时间小于最小轮询间隔目标116时,可以减少轮询线程的数量,直到轮询速率使得间隔时间等于最小轮询间隔目标116加上缓冲时间为止。类似地,当间隔时间大于最大轮询间隔目标118时,可以增加轮询线程的数量,直到轮询速率使得间隔时间等于最小轮询间隔目标116加上缓冲时间为止。一般来说,调整轮询线程的数量以与最小轮询间隔目标116(例如,加上缓冲时间)对齐,以尽可能快地轮询受监视设备,同时降低受监视设备处CPU突发等等的可能性。

在一些示例中,调整轮询线程的数量,使得间隔时间比最小轮询间隔目标116高出约给定百分比,例如,高出约10%,等等。

在又另外的示例中,一旦队列中的受监视设备被轮询一次,轮询就可以结束,并且可以在给定的时间段之后重复。例如,轮询计算设备101可以每天轮询一次受监视设备、每周轮询一次受监视设备等等。

在框205处,轮询计算设备101根据轮询速率来轮询队列中的受监视设备。这样的轮询可以包括:在轮询之前,从密钥管理设备检索用于解密从受监视设备接收到的数据的加密密钥。

在框207处,轮询计算设备101响应于轮询从队列中的受监视设备接收安装在受监视设备处的软件的当前软件版本指示符。特别地,被轮询的受监视设备可以将安装在其上的软件应用程序,包括但不限于安装在受监视设备处的软件补丁的相应名称和相应版本号等等发送到轮询计算设备101。因此,安装在给定受监视设备处的软件的当前软件版本指示符可以包括:安装在给定受监视设备处的软件应用程序和/或软件补丁等等的相应名称和相应版本号的列表。因此,当前软件版本指示符表示安装在受监视设备处的软件和/或应用程序的快照。

另外,在一些示例中,可以以加密格式接收当前软件版本指示符,该加密格式可以经由从密钥管理设备接收到的加密密钥在轮询计算设备101处解密。

在框209处,轮询计算设备101向软件补丁差异设备发送当前软件版本指示符,该软件补丁差异设备用以基于当前软件版本指示符来确定自从上次轮询以来已经更新了哪些受监视设备。

在一些示例中,在框209处,当前软件版本指示符可以与受监视设备的设备标识符一起发送(例如,给定的受监视设备的设备标识符可以与用于给定的受监视设备的当前软件版本指示符一起发送,该设备标识符用于队列中)。设备标识符可以包括但不限于设备名称(例如,分配的字母数字名称)、媒体访问控制(MAC)地址、序列号等等。

在又另外的示例中,在框209处,当前软件版本指示符可以与关联于受监视设备的公司标识符一起发送(例如,与给定的受监视设备相关联的公司标识符可以与用于给定的受监视设备的当前软件版本指示符一起被发送)。公司标识符可以包括但不限于公司名称(例如,字母数字名称)、字母数字标识符(例如,分配的参考号)等等,并且可以与设备标识符一起被接收,如上所述。

接下来关注图3,其示意性地描绘了软件补丁差异设备301,以确定自从上次轮询以来更新的受监视设备。软件补丁差异设备301包括:存储指令314的存储器312。软件补丁差异设备301进一步包括:连接到存储器312的处理器320,处理器320用以执行指令314。指令314控制处理器320以:接收安装在受监视设备处的软件的当前软件版本指示符。指令314进一步控制处理器320以:使用加密函数316(例如,也存储在存储器312处),生成用于受监视设备的当前软件版本指示符的相应标识符。指令314进一步控制处理器320以:从存储设备中检索安装在受监视设备处的软件的先前软件版本指示符的相应的先前标识符,该相应的先前标识符使用加密函数316生成。指令314进一步控制处理器320以:针对当前软件版本指示符,将相应标识符与相应的先前标识符进行比较。指令314进一步控制处理器320以:当针对给定的受监视设备确定两者之间(例如,相应标识符与相应的先前标识符之间)的差异时:在存储设备处,用相应的当前软件版本指示符替换用于给定的受监视设备的相应的先前软件版本指示符。指令314进一步控制处理器320以:当针对给定的受监视设备确定两者之间(例如,相应标识符与相应的先前标识符之间)的差异时:向软件补丁分析设备发送给定的受监视设备的相应的软件改变指示符,以触发软件补丁分析设备生成报告,该报告指示安装在受监视设备处的相应软件版本的统计信息。

例如,软件补丁差异设备301可以包括经由通信网络等等与轮询计算设备101和软件补丁分析设备通信的服务器、云计算设备等等。因此,尽管未描绘,但软件补丁差异设备301可以包括通信接口等等,用于与通信网络通信。

实际上,软件补丁差异设备301可以由例如在DaaS环境中操作轮询计算设备101的同一实体来操作。

存储器312耦合到处理器320,并且包括可以是任何电子、磁性、光学或其他物理存储设备的非暂时性机器可读存储介质。存储器312的非暂时性机器可读存储介质可以包括例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器、存储驱动器、光盘等等。存储器312还可以用可执行操作指令和与处理器320通信的其他硬件(例如,诸如通信接口)进行编码。在其他示例中,要领会的是,可以用基于云的存储系统替换存储器312。

存储器312还可以存储操作系统,该操作系统可由处理器320执行以向软件补丁差异设备301提供一般功能,例如,用以支持各种应用程序的功能,该应用程序诸如是访问软件补丁差异设备301的各种特征的用户界面。操作系统的示例包括:实时操作系统(RTOS)、Windows™、macOS™、iOS™、Android™、Linux™和Unix™。存储器312可以附加地存储可由处理器320执行以向软件补丁差异设备301提供具体功能(诸如下面更详细描述的那些)的应用程序,并且可以包括指令314。

处理器320可以包括中央处理单元(CPU)、微控制器、微处理器、处理核心、现场可编程门阵列(FPGA)或类似物。处理器320和存储器312可以协作来执行诸如指令314的各种指令。

在一些示例中,加密函数316包括散列函数,然而,任何合适的加密函数都在本说明书的范围内。

在又另外的示例中,指令314可以进一步控制处理器320以:对当前软件版本指示符进行分区,并且使用加密函数316生成当前软件版本指示符的分区部分的子标识符。在这些示例中,指令314可以进一步控制处理器320以:通过将分区部分的子标识符与先前信息的相应分区部分的相应子标识符进行比较,来针对当前软件版本指示符实现相应标识符与相应的先前标识符的比较。

在又另外的示例中,指令314可以进一步控制处理器320以:与要在受监视设备处安装或更新的相应软件的安装软件标识符的列表通信。在这些示例中,指令314可以进一步控制处理器320以:当针对给定的受监视设备确定了差异时,与相应的软件改变指示符一起,包括根据列表确定的安装软件标识符。

在又另外的示例中,指令314可以进一步控制处理器320以:当确定了相应标识符与相应的先前标识符之间的差异时,为受监视设备的子集生成相应的软件改变指示符。在这些示例中,指令314可以进一步控制处理器320以:将该子集的相应的软件改变指示符发送到软件补丁分析设备。

在又另外的示例中,指令314可以进一步控制处理器320以:与相应的软件改变指示符一起,包括给定的受监视设备的设备标识符,如上所述。

在又另外的示例中,指令314可以进一步控制处理器320以:与相应的软件改变指示符一起,包括与给定的受监视设备相关联的公司标识符,如上所述。

在又另外的示例中,存储设备包括no-SQL(结构化查询语言)数据存储,并且指令314进一步控制处理器320以:与no-SQL数据存储进行通信。

参考图4,描绘了用以确定自从上次轮询以来更新的受监视设备的方法400的流程图。为了帮助解释方法400,将假设方法400可以用软件补丁差异设备301实行,并且具体地可以由实现指令314的处理器320实行。实际上,方法400可以是其中软件补丁差异设备301确定自从上次轮询以来更新的受监视设备的一种方式。另外,下面对方法400的讨论可以导致对处理器320、软件补丁差异设备301及其各种组件的进一步理解。另外,要强调的是,方法400可以不按照所示的确切顺序实行,并且各种框可以并行地而非按顺序实行,或者完全以不同的顺序执行。

在框401处开始,软件补丁差异设备301接收安装在受监视设备处的软件的当前软件版本指示符。例如,可以从轮询计算设备101接收当前软件版本指示符。如上所述,用于给定的受监视设备的当前软件版本指示符可以与受监视设备的设备标识符和/或与受监视设备相关联的公司标识符(和/或名称)一起接收。

在框403处,软件补丁差异设备301使用加密函数316生成受监视设备的当前软件版本指示符的相应标识符。加密函数316可以是散列函数和/或任何其他合适的加密函数,以生成当前软件版本指示符的唯一和/或计算上唯一的标识符。例如,当用于给定的受监视设备的当前软件版本指示符包括安装在给定的受监视设备处的软件应用程序(包括但不限于,安装在给定的受监视设备处的软件补丁)的相应名称和相应版本号的列表时,可以将该列表输入到散列函数中,该散列函数可用于为给定的受监视设备的当前软件版本指示符生成相应标识符(例如,散列)。

在框405处,软件补丁差异设备301从存储设备中检索安装在受监视设备处的软件的先前软件版本指示符的相应先前标识符,该相应的先前标识符是使用加密函数316生成的。例如,在方法400的先前迭代中,可能已经在软件补丁差异设备301处接收到安装在受监视设备处的软件的先前软件版本指示符的先前标识符,并且将其存储在存储设备处;在该先前迭代期间,可能已经使用加密函数316类似地生成先前软件版本指示符的先前标识符(在先前迭代期间,该先前软件版本指示符原本是当前软件版本指示符)。

在框407处,软件补丁差异设备301针对当前软件版本指示符,比较相应标识符与相应的先前标识符。例如,在框407处,软件补丁差异设备301例如逐一地比较从其接收相应的当前软件版本指示符的受监视设备的相应指示符与相应的先前标识符。

在框409处,软件补丁差异设备301确定给定的受监视设备的相应标识符和相应的先前标识符之间是否存在差异。当确定两者之间没有差异时(例如,在框409处的“否”判定),补丁差异设备301在框407处继续比较从其接收相应的当前软件版本指示符的受监视设备的相应标识符与相应的先前标识符。

然而,当针对给定的受监视设备确定两者之间的差异时(例如,在框409处的“是”判定),则在框411处,软件补丁差异设备301在存储设备处(例如,检索相应的先前标识符的位置)用相应的当前软件版本指示符替换用于给定的受监视设备的相应的先前软件版本指示符。

另外,在框413处,软件补丁差异设备301将给定的受监视设备的相应的软件改变指示符发送到软件补丁分析设备,以触发软件补丁分析设备生成报告,该报告指示安装在受监视设备处的相应软件版本的统计信息。如上所述,相应的软件改变指示符可以与设备标识符和/或相关联的公司标识符一起发送。

在一些示例中,在框413处发送的相应的软件改变指示符可以包括用于安装在给定的受监视设备处的软件的当前软件版本指示符。

在其他示例中,软件补丁差异设备301可以与要在受监视设备处安装或更新的相应软件的安装软件标识符的列表通信(例如,该列表可以存储在设备处,并且软件补丁差异设备301可以与存储该列表的设备和/或用于生成该列表的安装软件更新的队列通信)。当针对给定的受监视设备确定了差异时,在框413处发送的相应的软件改变指示符可以与相应的软件改变指示符一起,包括根据列表确定的安装软件标识符,例如,以指示排队等待安装的软件,和/或期望安装在给定的受监视设备处的软件。根据列表确定的、要安装在受监视设备处的软件可以是逐个公司进行的。

虽然未描绘,但可以在循环中重复框407至413,直到针对从其接收相应的当前软件版本指示符的受监视设备进行的比较发生为止。

另外,当实现方法400时,软件补丁差异设备301可以:当确定了相应标识符与相应的先前标识符之间的差异时,为受监视设备的子集生成相应的软件改变指示符;以及将该子集的相应的软件改变指示符发送到软件补丁分析设备。

例如,在实现方法400的框407至413时,软件补丁差异设备301可以:针对当前软件版本指示符,比较相应标识符与相应的先前标识符。当针对受监视设备的子集确定了两者之间的差异时,软件补丁差异设备301可以:在存储设备处,用相应的当前软件版本指示符替换用于受监视设备的子集的相应的先前软件版本指示符。软件补丁差异设备301还将受监视设备的子集的相应的软件改变指示符发送到软件补丁分析设备,以触发软件补丁分析设备生成报告,该报告指示安装在受监视设备处的相应软件版本的统计信息。一般来说,可能不会发送子集之外的受监视设备的任何信息。

因此,一般来说,软件补丁差异设备301可以过滤从轮询计算设备101接收的当前软件版本指示符,使得针对受监视设备的子集发送相应的软件改变指示符(例如,其可以包括用于受监视设备的子集的当前软件版本指示符),而不会发送子集之外的受监视设备的任何信息。因此,将自从先前轮询受监视设备以来在其上已经发生软件版本改变的受监视设备的相应的软件改变指示符(以及当前软件版本指示符)发送到软件补丁分析设备,而不会发送自从先前轮询被监视设备以来在其上尚未发生软件版本改变的受监视设备的任何信息。

结果,软件补丁分析设备接收自从先前轮询受监视设备以来在其上已经发生软件版本改变的受监视设备的数据。由于受监视设备的数量可能是数百万个,因此这样的方法可以减少在软件补丁分析设备处用于生成报告的处理时间。

另外,当首次注册给定的受监视设备和/或先前未对其进行轮询,并且软件补丁差异设备301(例如,第一次)接收安装在给定设备处的软件的当前软件版本指示符时,存储了安装在受监视设备处的软件的先前软件版本指示符的相应的先前标识符的存储设备将不具有给定的受监视设备的记录。这还导致在框409处的“是”判定(例如,框405和407可以包括从存储设备中检索空集,并且将用于给定设备的当前软件版本指示符的相应标识符与该空集进行比较,这导致在框409处的“是”的判定),使得框411包括:在存储设备处为给定受监视设备生成和填充记录。

类似地,在这些示例中,当首次注册给定的受监视设备,和/或先前未对其进行轮询,并且软件补丁差异设备301(例如,第一次)接收安装在给定设备处的软件的当前软件版本指示符时,框413导致相应的软件改变指示符(以及当前软件版本指示符)被发送到软件补丁分析设备,使得可以生成给定的受监视设备的记录(例如,其可以包括当前软件版本指示符)。

接下来关注图5,图5示意性地描绘了软件补丁分析设备501,用以生成报告,该报告指示安装在受监视设备处的软件的相应软件版本的统计信息。软件补丁分析设备501包括:存储指令514的存储器512。软件补丁分析设备501进一步包括:连接到存储器512的处理器520,处理器520用以执行指令514。指令514控制处理器520以:从软件补丁差异设备301接收用于受监视设备的子集的相应的软件改变指示符。该子集包括:自从先前轮询受监视设备以来在其上已经发生软件版本改变的受监视设备。相应的软件改变指示符包括:安装在子集的受监视设备处的软件的当前软件版本标识符。指令514进一步控制处理器520以:响应于接收到相应的软件改变指示符:用受监视设备的子集的当前软件版本标识符更新存储设备(例如,与以上关于软件补丁差异设备301描述的存储设备不同的存储设备)。指令514进一步控制处理器520以:响应于接收到相应的软件改变指示符:从软件版本存储设备中检索安装在受监视设备处的软件的可用软件版本指示符。指令514进一步控制处理器520以:响应于接收到相应的软件改变指示符:通过将可用软件版本指示符与受监视设备的子集的当前软件版本标识符进行比较,来生成报告,该报告指示安装在受监视设备处的相应软件版本的统计信息。指令514进一步控制处理器520以:通过将可用软件版本指示符与子集之外的受监视设备的先前确定的软件版本指示符进行比较来生成报告。指令514进一步控制处理器520以:响应于接收到相应的软件改变指示符:将报告发送到软件服务代理的通信设备,以对报告中标识的问题进行故障排除,这可以包括通信设备是软件更新设备的一种情况,该软件更新设备利用可用软件版本自动更新安装在受监视设备处的软件。

例如,软件补丁分析设备501可以包括经由通信网络等等与软件补丁差异设备301通信的服务器、云计算设备等等。因此,尽管未描绘,但软件补丁分析设备501可以包括通信接口等等,以与通信网络通信。

实际上,软件补丁分析设备501可以由例如DaaS环境中操作轮询计算设备101和软件补丁差异设备301的相同实体操作。

存储器512耦合到处理器520,并且包括可以是任何电子、磁性、光学或其他物理存储设备的非暂时性机器可读存储介质。存储器512的非暂时性机器可读存储介质可以包括例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器、存储驱动器、光盘等等。存储器512还可以用可执行操作指令和与处理器520通信的其他硬件(例如,诸如通信接口)进行编码。在其他示例中,要领会的是,可以用基于云的存储系统替换存储器512。

存储器512还可以存储操作系统,该操作系统可由处理器520执行以向软件补丁分析设备501提供一般功能,例如,支持各种应用程序的功能,该应用程序诸如是用于访问软件补丁分析设备501的各种特征的用户界面。操作系统的示例包括:实时操作系统(RTOS)、Windows™、macOS™、iOS™、Android™、Linux™和Unix™。存储器512可以附加地存储可由处理器520执行以向软件补丁分析设备501提供具体功能(诸如下面更详细描述的那些)的应用程序,并且可以包括指令514。

处理器520可以包括中央处理单元(CPU)、微控制器、微处理器、处理核心、现场可编程门阵列(FPGA)或类似物。处理器520和存储器512可以协作来执行诸如指令514的各种指令。

在一些示例中,由软件补丁分析设备501生成的报告用以使得安装在受监视设备处的软件利用可用软件版本自动更新。例如,指令514可以进一步使处理器520将报告发送到软件更新设备。

软件更新设备用以:从软件补丁分析设备501接收报告;以及作为响应,利用可用软件版本自动更新安装在受监视设备处的软件。

在这些示例中的一些示例中,软件更新设备用以:从软件补丁分析设备501接收报告;以及作为响应,在根据报告确定的已安装软件不是可用软件版本的情况下,利用可用软件版本自动更新安装在受监视设备处的软件。

在又另外的示例中,该软件更新设备用以:从软件补丁分析设备接收报告;以及作为响应,在根据报告确定的、并且逐公司地确定的已安装软件不是可用软件版本的情况下,自动更新受监视设备,该受监视设备与公司相关联。

在一些示例中,指令514可以进一步控制处理器520以:在报告中包括缺少给定的软件补丁的受监视设备列表。

在其他示例中,指令514可以进一步控制处理器520以:在报告中包括与受监视设备相关联的公司的公司标识符。在又另外的示例中,指令514进一步用以:从报告中过滤掉可用软件版本指示符不可用的软件的信息。

报告可以包括各种统计信息。在一些示例中,该报告包括:在至少给定时间段内缺少给定软件补丁的受监视设备列表,该列表按照在受监视设备处所缺少的软件补丁的数量排序。

在其他示例中,该报告包括:在至少给定时间段内缺少给定软件补丁的受监视设备列表,该列表按照在受监视设备处所缺少的软件补丁的数量排序。

在又另外的示例中,该报告包括:安装在受监视设备处的软件的列表,该列表按照缺少软件补丁的受监视设备的数量排序。

在又另外的示例中,该报告包括:安装在受监视设备处的软件的列表,该列表按照受监视设备缺少软件补丁的天数排序。

参考图6,描绘了用以生成报告的方法600的流程图,该报告指示安装在受监视设备处的软件的相应的软件版本的统计信息。为了帮助解释方法600,将假设方法600可以通过软件补丁分析设备501来实行,并且具体地由实现指令514的处理器520来实行。实际上,方法600可以是其中软件补丁分析设备501确定自从上次轮询以来更新的受监视设备的一种方式。另外,下面对方法600的讨论可以导致对处理器520、软件补丁分析设备501及其各种组件的进一步理解。另外,要强调的是,方法600可以不按所示的确切顺序实行,并且各种框可以并行地而非按顺序实行,或者完全以不同的顺序实行。

在框601处,软件补丁分析设备501从软件补丁差异设备301接收用于受监视设备的子集的相应软件改变指示符。该子集包括:自从先前轮询受监视设备以来在其上已经发生软件版本改变的受监视设备。相应的软件改变指示符包括:安装在子集的受监视设备处的软件的当前软件版本标识符。因此,如上所述,软件补丁分析设备501从软件补丁差异设备301接收软件改变指示符(例如,如上所述,具有当前软件版本指示符、设备标识符、公司标识符等等)。由于软件补丁差异设备301可以不发送自从先前轮询受监视设备以来在其上尚未发生软件版本改变的受监视设备的信息,因此软件补丁分析设备501可以以比从软件补丁差异设备301接收所有受监视设备的信息的情况下更高效的方式生成报告(如下所述),而不管自从先前轮询以来是否发生了软件版本改变。

在框603处,软件补丁分析设备501响应于接收到相应的软件改变指示符:用受监视设备的子集的当前软件版本标识符更新存储设备(例如,与以上关于软件补丁差异设备301描述的存储设备不同的存储设备)。当第一次接收到给定的受监视设备的当前软件版本标识符时,框603可以包括在存储设备处生成该给定的受监视设备的记录。

在框605处,软件补丁分析设备501从软件版本存储设备中检索安装在受监视设备处的软件的可用软件版本指示符。例如,软件版本存储设备可以存储可用软件版本指示符,其可以例如在针对安装在受监视设备处的软件发布新版本和/或补丁和/或更新时被定期更新。

在框607处,软件补丁分析设备501通过将可用软件版本指示符与受监视设备的子集的当前软件版本标识符进行比较来生成报告,该报告指示安装在受监视设备处的相应软件版本的统计信息。软件补丁分析设备501进一步通过将可用软件版本指示符与子集之外的受监视设备的先前确定的软件版本指示符进行比较来生成报告。该报告可以包括上述各种类型的统计信息,以及任何其他适当类型的统计信息。

在框609处,软件补丁分析设备501将报告发送到软件服务代理的通信设备,以对报告中标识的问题进行故障排除。在这些示例中,通信设备可以是软件更新设备,和/或软件服务代理可以是自动化软件服务代理。无论如何,该报告都可以导致安装在受监视设备处的软件利用可用软件版本来自动更新。在一些示例中,软件更新设备和/或自动化软件服务代理可以使得受监视设备基于报告进行更新。

接下来关注图7,其描绘了控制软件更新的系统700。系统700包括:轮询计算设备101;软件补丁分析设备501;以及与轮询计算设备101和软件补丁分析设备501通信的软件补丁差异设备301。虽然未描绘设备101、301、501的组件(例如,如图1、图3和图5中所示),但是仍将其理解为存在。

一般来说,系统700的组件经由通信网络通信。虽然在图7中未描绘这样的通信网络,但是系统700的各个组件之间的通信链路被描绘为双箭头。这样的通信链路可以根据需要为有线和/或无线的,和/或可以包括任何合适数量的通信网络。

系统700进一步包括多个受监视设备701-1、701-2 ...... 701-N(在下文中可互换地统称为受监视设备701,并且一般地被称为受监视设备701)。受监视设备701可以包括智能电话、膝上型计算机、个人计算机等等的任何合适的组合,其可以例如经由通信网络、和/或经由安装在受监视设备701处的轮询应用程序的应用编程接口(API)与轮询计算设备101通信。

虽然在图7中描绘了三台受监视设备701(例如,N=3),但是系统700的受监视设备701的数量“N”可以是数百万个。虽然并非所有受监视设备701都安装了相同的软件应用程序,但是跨受监视设备701安装的软件应用程序的数量可能是数百个、数千个或更高。

另外,不同的受监视设备701可以与不同的公司相关联,所有这些公司对于何时更新软件、和/或在受监视设备701处安装什么版本和/或什么软件补丁可以具有不同的要求。维护这样的软件应用程序对于单个公司来说可能是一项艰巨的任务。因此,公司可以将这样的维护外包给提供DaaS服务的实体;在这样的DaaS环境中,维护这样的软件应用程序可能是一项更大的任务。

因此,在一些示例中,系统700的计算设备101、301、501中的每一个可以由DaaS实体和/或在DaaS环境中操作,以控制跨受监视设备701的软件更新。

如上所述,轮询计算设备101用以:轮询受监视设备701以接收安装在受监视设备701处的软件的当前软件版本指示符;并且将当前软件版本指示符发送到软件补丁差异设备301。

软件补丁差异设备301用以:基于当前软件版本指示符,确定自从上次轮询以来受监视设备701中的哪些已被更新;以及向软件补丁分析设备501发送自上次轮询以来已被更新的受监视设备701的相应软件改变指示符。因此,软件补丁差异设备301充当轮询计算设备101和软件补丁分析设备501之间的过滤器,以发送例如针对受监视设备701的子集的相应软件改变指示符。该子集包括自先前轮询受监视设备701以来在其上已发生软件版本改变的受监视设备701。相应的软件改变指示符包括在子集的受监视设备701处所安装软件的当前软件版本标识符。

软件补丁分析设备501用以:响应于接收到自从上次轮询以来已经被更新的受监视设备701的相应的软件改变指示符来生成报告,该报告指示安装在受监视设备701处的软件的相应软件版本的统计信息。

如所描绘的,轮询计算设备101与受监视设备701的列表703(例如,其可以存储在存储设备处和/或维持在存储器112中)通信,并且该列表703可用于生成以上关于方法200描述的受监视设备701的队列。列表703可以包括受监视设备701的标识符,并且可以随着受监视设备701被移除或添加到系统700而被更新,例如,通过从公司计算设备逐个公司地接收受监视设备701的标识符列表等等来进行。

如所描绘的,软件补丁差异设备301与安装软件标识符的列表705(例如,其可以存储在存储设备处和/或维持在存储器312中)通信。安装软件标识符的列表705可以包括:在受监视设备701处排队等待安装和/或期望在受监视设备701处安装的版本和/或当前补丁的列表;例如,列表705可以根据要安装在受监视设备701处的软件更新队列生成,和/或可以包括要安装在受监视设备701处的软件更新队列。

如所描绘的,软件补丁差异设备301进一步与存储设备707通信,该存储设备707存储受监视设备701的先前软件版本指示符的标识符709。存储设备707可以包括no-SQL存储设备。例如,标识符709可能已经例如使用加密函数316在受监视设备701的先前轮询中生成并且存储在存储设备707处。因此,标识符709可以包括受监视设备701的先前软件版本指示符的散列。

如所描绘的,软件补丁分析设备501与存储设备和/或软件数据713的存储设备711通信。存储设备711可以包括:数据库和/或“大数据”存储设备,其存储:先前接收到的安装在受监视设备701处的软件的软件版本标识符(例如,如从软件补丁差异设备301接收的)。存储设备711可以进一步存储:安装在受监视设备701处的软件的可用版本的标识符,该可用版本可以与安装在受监视设备701处的软件的当前版本相同或不同。

例如,如所描绘的,软件补丁分析设备501与软件版本存储设备715通信,该软件版本存储设备715存储安装在受监视设备701处的软件的可用版本的标识符(即,不管是否安装了这样的可用版本,和/或这样的可用版本是否与安装在受监视设备701处的软件的当前版本相同)。例如,安装在受监视设备701处的软件的可用版本的标识符可以包括但不限于:软件补丁的标识符,和/或这样的软件补丁是否是强制性的(例如,逐个公司地)和/或根据任何合适的方案分类了的。例如,软件补丁可以分类为强制性的、或优选安装的、或可选的等等。

如所描绘的,软件补丁分析设备501与存储设备信息717的设备通信,该设备信息717可以包括受监视设备701的标识符,类似于受监视设备701的列表703。然而,设备信息717可以包括从其接收新注册或取消注册的受监视设备701的标识符的数据源。例如,新注册的受监视设备701可以是添加到系统700以便可以向其提供DaaS服务的受监视设备701,并且新取消注册的受监视设备701可以是从系统700移除的受监视设备701。这样的标识符可用于在存储设备711处为新注册或取消注册的受监视设备701生成或删除记录。

如所描绘的,软件补丁分析设备501与存储公司信息719的设备通信,该公司信息719可以包括添加到系统700或从系统700移除的公司的标识符,或者更具体地说,与为其新提供或移除DaaS服务的受监视设备701相关联的公司的标识符。这样的标识符可用于在存储设备711处为添加或移除的公司生成记录,和/或将存储设备711处的受监视设备的记录与相应的公司相关联。

如所描绘的,软件补丁分析设备501与向其发送由软件补丁分析设备501生成的报告的通信设备和/或软件更新设备721通信。通信设备和/或软件更新设备721可以与软件代理和/或自动化软件代理相关联,并且可以基于从软件补丁分析设备501接收到的报告自动更新受监视设备701。

现在参考图8、图9和图10描述系统700的操作。

接下来关注图8,其描绘了系统700中与轮询计算设备101的操作有关的一部分。特别地,在图8中,轮询计算设备101正在从受监视设备701处的应用程序和/或轮询应用程序接收最大允许轮询请求数量801,其可用于例如通过将最大允许轮询请求数量801除以受监视设备701的数量“N”来确定最小轮询间隔目标116。

轮询计算设备101可以进一步基于正被轮询的给定受监视设备701的当前处理时间来确定轮询受监视设备701的队列805中的受监视设备701的间隔时间803。轮询计算设备101可以进一步确定先前被轮询的受监视设备701的平均处理时间,例如,确定用于轮询受监视设备701的处理时间的移动平均值。特别地,如图8中描绘的,轮询计算设备101例如通过从列表703接收受监视设备701的标识符806-1、806-2、806-N(可互换地统称为标识符806,并且一般地被称为标识符806),并且将受监视设备701的标识符按顺序放置在队列805中,来生成受监视设备701的队列805。

例如,如所描绘的,首先轮询具有标识符806-1的第一受监视设备701-1,其次轮询具有标识符806-2的第二受监视设备701-2,依此类推,直到具有标识符806-N的最后一个受监视设备701-N被轮询为止。一旦最后一个受监视设备701-N被轮询,就可以再次轮询第一受监视设备701-1,依此类推。从第一次轮询第一受监视设备701-1到轮询完队列805中的所有受监视设备701(例如,在最后一个受监视设备701-N被轮询之后)然后再一次轮询第一受监视设备701-1的时间可以是间隔时间803。

另外,如所描绘的,轮询计算设备101正在操作多个轮询线程807-1、807-2……807-M(可互换地统称为轮询线程807,并且一般地被称为轮询线程807)以并行地轮询受监视设备701。因此,例如,轮询线程807-1可用于将轮询请求809发送到第一受监视设备701-1,而并行地,轮询线程807-2可用于将轮询请求809发送到第二受监视设备701-2,依此类推。因此,在图8中,轮询请求809被描绘为在轮询线程807上并行发送到受监视设备701,其中轮询请求809根据队列805在每个线程807上按顺序发送(例如,根据轮询速率)。作为响应,受监视设备701在轮询线程807上返回安装在受监视设备701处的软件的当前软件版本指示符811。当前软件版本指示符811中的每一个都可以加上时间戳。

用于轮询受监视设备701的处理时间的移动平均值可以除以轮询线程的数量“M”,以确定每个线程807轮询受监视设备701的处理时间。因此,例如,当存在“M”个线程807时,每个线程的处理时间是轮询受监视设备701的处理时间除以“M”。

因此,为了确定间隔时间803,可以将每个线程807轮询受监视设备701的处理时间乘以受监视设备701的数量“N”。

另外,也如图8中描绘的,可以通过增加或减少轮询线程807的数量“M”来调整间隔时间803,例如,将间隔时间803调整为介于最小轮询间隔目标116和最大轮询间隔目标118之间。一般来说,轮询计算设备101可以尝试尽可能快地轮询受监视设备701(例如,在不引起CPU突发的情况下),并且因此,可以调整轮询线程807的数量“M”,直到间隔时间803与最小轮询间隔目标116对齐为止,并且具体地调整为等于最小轮询间隔目标116加上缓冲时间。缓冲时间可以关于轮询线程807的数量“M”来确定,例如,通过增加比轮询线程807的数量多10%(等等)的线程来确定,这将使得间隔时间803大约等于最小轮询间隔目标116。

另外,在一些示例中,在轮询最后一个受监视设备701-N之后,在再次轮询第一受监视设备701-1之前可以发生等待时间,例如,使得受监视设备701每天被轮询一次、每周被轮询一次等等(例如,如最大轮询间隔目标118所表示的)。因此,虽然间隔时间803表示第一次和第二次轮询第一受监视设备701-1之间的时间,但是当队列805用于在轮询最后一个受监视设备701-N之后立即再次轮询受监视设备701时,调整后的间隔时间803可用于将轮询速率调整为尽可能地快(例如,使得间隔时间803高于最小轮询间隔目标116),而不必在轮询最后一个受监视设备701-N之后立即再次轮询所有受监视设备701。

然而,尽管图8描绘了调整受监视设备701的轮询速率的特定示例,但用于调整受监视设备701的轮询速率,使得间隔时间803介于最小轮询间隔目标116和最大轮询间隔目标118之间的任何合适的过程都在本说明书的范围内。

另外,如所描绘的,针对受监视设备701中的每一个的当前软件版本指示符811(例如,加时间戳的)例如与受监视设备701的相应设备标识符806一起被发送到软件补丁差异设备301。

接下来关注图9,其描绘了系统700中与软件补丁差异设备301的操作有关的一部分。特别地,在图9中,软件补丁差异设备301正在从轮询计算设备101接收当前软件版本指示符811,例如,和受监视设备701的相应设备标识符806一起。

对于当前软件版本指示符811中的每一个,软件补丁差异设备301使用加密函数316生成相应标识符909。例如,如所描绘的,从与设备标识符806-n相关联的指示符811-n生成标识符909。在一些示例中,相应标识符909可以包括指示符811-n的散列。

还如图9中描绘的,存储设备707存储例如从对受监视设备701的先前轮询中、从轮询计算设备101接收到的先前软件版本指示符811的标识符709。先前软件版本标识符709通常与相应设备标识符806(例如,与指示符811一起接收的相同设备标识符806)相关联地存储,并且可以包括在对受监视设备701的先前轮询中接收到的先前软件版本指示符811的散列。

如所描绘的,先前软件版本标识符709包括:与设备标识符806-n相关联地存储的示例先前标识符909-p。因此,例如,先前标识符909-p以与标识符909类似的方式(例如,使用加密函数316)根据与设备标识符806-n相关联的受监视设备701的先前接收到的指示符811生成。

因此,标识符909表示与设备标识符806-n相关联的受监视设备701处的软件的当前状态的指示,而标识符909-p表示与设备标识符806-n相关联的受监视设备701处的软件的先前状态的指示。

设备标识符806-n用于从存储设备707中检索标识符909-p,并且比较标识符909、909-p。

当确定两者之间的差异时(例如,自从生成标识符909-p以来,与设备标识符806-n相关联的受监视设备701处的软件已经改变和/或更新),将软件改变指示950发送到与设备标识符806-n相关联的受监视设备701的软件补丁分析设备501,并且在存储设备707处用标识符909替换先前标识符909-p,使得存储设备707存储与设备标识符806-n相关联的受监视设备701处的软件的当前状态的指示。

然而,当确定两者之间没有差异时(例如,标识符909、909-p是相同的,并且因此自从生成标识符909-p以来,与设备标识符806-n相关联的受监视设备701处的软件尚未改变和/或未更新),软件改变指示950不会发送到用于与设备标识符806-n相关联的受监视设备701的软件补丁分析设备501,并且另外,也不会在存储设备707处替换标识符909-p。

每个接收到的指示符811的标识符909的生成以类似的方式进行(例如,在循环中,直到指示符811用于生成相应标识符909为止),并且因此,软件补丁差异设备301在存储设备707处维持对受监视设备701处的软件状态的当前指示。另外,以这种方式,软件补丁差异设备301确定自从先前轮询受监视设备701以来在其上已经发生软件版本改变的受监视设备701的子集。

如所描绘的,将针对子集的软件改变指示符950发送到软件补丁分析设备501,而没有发送针对子集之外的受监视设备701(例如,自从先前轮询受监视设备701以来在其上尚未发生软件版本改变)的这样的软件改变指示符。

如所描绘的,发送到软件补丁分析设备501的软件改变指示符950包括:用于自从先前轮询受监视设备701以来在其上已经发生软件版本改变的受监视设备701的子集的当前软件版本指示符811(例如,加时间戳的),该当前软件版本指示符811也可以与相应设备标识符806一起发送。如所描绘的,发送到软件补丁分析设备501的软件改变指示符950进一步包括:用于子集的安装软件标识符955(例如,如从列表705接收的),该安装软件标识符955也可以与相应设备标识符806一起发送。因此,对于自从先前轮询受监视设备701以来已经发生软件版本改变的子集中的受监视设备701中的每一个,可以发送相应的软件改变指示符950,每个指示符950包括:相应受监视设备701的设备标识符806,以及相应受监视设备701的当前软件版本指示符811。在一些示例中(如所描绘的),相应的软件改变指示符950可以进一步包括:用于相应受监视设备701的相应的安装软件标识符955。软件改变指示符950可以一起发送,和/或发生标识符909与先前标识符909-p的比较。

另外,由于轮询计算设备101可以每天轮询一次、每周轮询一次受监视设备701等等,软件补丁差异设备301的操作也可以每天仅发生一次、每周仅发生一次等等;因此,在这些示例中,也可以每天一次、每周一次向软件补丁分析设备501发送软件改变指示符950等等。

接下来关注图10,其描绘了系统700中与软件补丁分析设备501的操作有关的一部分。特别地,在图10中,软件补丁分析设备501正在从软件补丁差异设备301接收软件改变指示符950。

如所描绘的,软件补丁分析设备501正在操作一个或多个报告生成器1001(例如,一个报告生成器和/或针对不同类型报告的不同报告生成器),该软件补丁分析设备501可以表示实现指令514的软件补丁分析设备501。

如所描绘的,报告生成器1001从软件版本存储设备715接收软件改变指示符950以及可用软件版本指示符1015。如所描绘的,报告生成器1001还可以从设备信息717接收自从上次轮询受监视设备701发生以来已注册或取消注册的受监视设备701的设备标识符1017,和/或报告生成器1001还可以接收自从上次轮询受监视设备701发生以来已添加或删除的公司的公司标识符1019。

自从先前轮询受监视设备701以来在其上已经发生软件版本改变的受监视设备701的子集的当前软件版本指示符811(例如,如加时间戳的并且与软件改变指示符950一起接收的)可用于在存储设备711处更新设备/软件数据713。特别地,当前软件版本指示符811可以存储在存储设备711处,并且替换任何先前接收到的软件版本指示符811。

然而,接收自从先前轮询受监视设备701以来在其上已经发生软件版本改变的受监视设备701的子集而非其他受监视设备701(例如,因为未有软件版本改变)的软件改变指示符950(其包括当前软件版本指示符811)。因此,不替换设备/软件数据713处的任何现有软件版本指示符811,使得设备/软件数据713包括对于子集而言接收的当前软件版本指示符811和对于该子集之外的受监视设备701而言先前确定的软件版本指示符(其是先前接收到的)两者。

报告生成器1001生成报告1050,该报告指示安装在受监视设备701处的相应软件版本的统计信息。报告生成器1001基于软件改变指示符950(例如,包括用于自从先前轮询受监视设备701以来在其上已经发生软件版本改变的受监视设备701的子集的当前软件版本指示符811)生成报告1050。报告生成器1001可以进一步基于可用软件版本指示符1015和对于子集之外的受监视设备701来说先前确定的软件版本指示符(例如,如存储在存储设备711中的)来生成报告1050。报告生成器1001可以进一步基于设备标识符1017和公司标识符1019生成报告1050。

可以至少通过以下方式来生成报告1050:将可用软件版本指示符1015与用于受监视设备的子集的当前软件版本指示符811(例如,如加时间戳的)进行比较;并且将可用软件版本指示符1015与对于子集之外的受监视设备701来说先前确定的软件版本指示符(例如,也如加时间戳的)进行比较。

报告1050可以包括但不限于:在至少给定时间段内缺少给定软件补丁(例如,如可用软件版本指示符1015表示的)的受监视设备701的列表,该列表按照在受监视设备701处缺少的软件补丁的数量、或者按照缺少软件补丁的受监视设备701的数量排序。该给定时间段可以是上周、上个月、去年和/或可以选择给定时间段(例如,根据“大数据”过程),使得所有受监视设备701的所有数据都包括在报告1050中。替换地,可以选择给定时间段(例如,根据“大数据”过程),使得受监视设备701的数据的一部分包括在报告1050中,例如,根据当前的、或先前确定的软件版本指示符811的时间戳进行过滤。

类似地,报告1050可以包括但不限于:安装在受监视设备701处的软件的列表,该列表按照缺少软件补丁的受监视设备的数量排序,或者按照受监视设备701缺少软件补丁的天数排序。

实际上,一般来说,报告1050可以概括为:未打补丁到最新软件版本的受监视设备701的数量;缺少最多数量的软件补丁的受监视设备701;具有最多天数未升级设备的软件应用程序(安装在受监视设备701处);具有最多天数利用未打补丁的软件应用程序的受监视设备701;等等。

另外,可以例如使用在报告生成器1001处接收到的任何数据,按照公司标识符、设备标识符等等进一步对报告1050的信息排序。

在一些示例中,报告1050可以包括其中包括的数据的可视化,包括但不限于图表、条形图等等。

在一些示例中,报告1050的生成可以根据“大数据”处理和/或数据库等等发生。

报告1050还可用于识别其中尚未安装强制性软件补丁的受监视设备701、和/或在受监视设备701处安装的具有软件补丁更新和/或安装软件补丁时的不良记录的软件。在一些示例中,与软件改变指示符950一起接收的、用于子集的安装软件标识符955可用于进一步过滤报告中的数据(例如,以示出计划的软件更新),和/或识别出计划要安装但尚未安装在受监视设备701处的软件补丁。在这些示例中的一些示例中,可以生成事件报告(其可以是报告1050的一部分),以指示计划要安装但尚未安装在受监视设备701处的软件补丁。

另外,如所描绘的,可以将报告1050发送到软件更新设备721,其可以使得安装在受监视设备701处的软件利用可用软件版本自动更新。例如,报告1050可用于识别缺少强制性软件补丁的受监视设备701,使得软件更新设备721使得这样的强制性软件补丁被安装在受监视设备701处,等等。然而,可以经由接收报告1050的软件更新设备721在受监视设备701处发生任何合适类型的软件更新。

应当意识到,以上提供的各种示例的特征和方面可以组合成也落入本公开范围内的另外的示例。

相关技术
  • 轮询计算设备
  • 通过轮询间隔和虚拟轮询的动态修改的无线网络中的轮询
技术分类

06120113106660