CN114625391A - 优化设备更新安排 - Google Patents

优化设备更新安排 Download PDF

Info

Publication number
CN114625391A
CN114625391A CN202111417620.1A CN202111417620A CN114625391A CN 114625391 A CN114625391 A CN 114625391A CN 202111417620 A CN202111417620 A CN 202111417620A CN 114625391 A CN114625391 A CN 114625391A
Authority
CN
China
Prior art keywords
update
computer
firmware
analysis program
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111417620.1A
Other languages
English (en)
Other versions
CN114625391B (zh
Inventor
A·O·特斯法斯曼
D·沃伦
C·贝尼
T·宾达斯
S·F·霍赛恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN114625391A publication Critical patent/CN114625391A/zh
Application granted granted Critical
Publication of CN114625391B publication Critical patent/CN114625391B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本公开涉及优化设备更新安排。公开了一种用于更新设备的计算机实现的方法。该计算机实现的方法包括识别与设备相关联的更新是可用的。该计算机实现的方法还包括确定与该设备相关联的可用更新是否被准许。该计算机实现的方法进一步包括:响应于与该设备相关联的可用更新被准许,确定用于在该设备上执行该更新的最佳安排时间。该计算机实现的方法进一步在该安排时间在该设备上执行该更新。

Description

优化设备更新安排
技术领域
本发明总体上涉及更新设备的领域,并且更具体地涉及优化安排软件和固件更新。
背景技术
软件更新修改、修复或更改计算机、手持式移动装置或智能电器上的任何当前软件程序。软件更新通常涉及小的改进而不是大的改变。软件更新可以解决任何新的安全问题、软件漏洞或现有软件的问题。通常,软件更新是设备继续运行而没有软件问题所必需的。保持软件更新最新确保设备运行最新软件。虽然较小的软件更新可以在需要更新的设备被用户使用时发生,但是较大的软件更新可以要求设备在执行软件更新时不在使用中。
固件更新是用于更新用户设备的固件的软件程序。固件更新将使用高级操作指令升级计算设备,而不需要升级用户设备的任何硬件。固件更新用于增强计算设备的能力或修复问题。在固件更新上保持最新使得计算设备能够有效地运行。
发明内容
根据本发明的一个实施例,公开了一种用于更新设备的计算机实现的方法。该计算机实现的方法包括识别与设备相关联的更新是可用的。该计算机实现的方法还包括确定与该设备相关联的可用更新是否被准许。该计算机实现的方法进一步包括:响应于与该设备相关联的可用更新被准许,确定用于在该设备上执行该更新的最佳安排时间。该计算机实现的方法进一步在该预定时间在该设备上执行该更新。
根据本发明的另一实施例,公开了一种用于更新设备的计算机程序产品。所述计算机程序产品包括一个或多个计算机可读存储介质以及存储在所述一个或多个计算机可读存储介质上的程序指令。程序指令包括用于识别与设备相关联的更新是可用的指令。程序指令还包括用于确定是否允许与设备相关联的可用更新的指令。所述程序指令进一步包括用于响应于与所述设备相关联的所述可用更新被准许,确定用于在所述设备上执行所述更新的最佳安排时间的指令。程序指令还包括用于在预定时间对设备执行更新的指令。
根据本发明的另一实施例,公开了一种用于更新设备的计算机***。计算机***包括一个或多个计算机处理器、一个或多个计算机可读存储介质、计算机程序指令,计算机程序指令被存储在一个或多个计算机可读存储介质上以用于由一个或多个计算机处理器执行。程序指令包括用于识别与设备相关联的更新是可用的指令。程序指令还包括用于确定是否允许与设备相关联的可用更新的指令。所述程序指令进一步包括用于响应于与所述设备相关联的所述可用更新被准许,确定用于在所述设备上执行所述更新的最佳安排时间的指令。程序指令还包括用于在预定时间对设备执行更新的指令。
附图说明
本公开中包括的附图被结合到说明书中并且形成说明书的一部分。它们展示了本披露的实施例,并且与说明书一起用于解释本披露的原理。这些附图仅说明某些实施例并且不限制本披露。
图1是根据本发明的至少一个实施例的用于安排固件更新的最佳时间的网络计算环境(一般指定为100)的功能框图。
图2是示出根据本发明的至少一个实施例的用于生成配置文件的操作步骤的流程图。
图3是描绘根据本发明的至少一个实施例的用于安排固件更新的操作步骤的流程图。
图4是根据本发明的至少一个实施例的用于安排软件更新的最佳时间的计算***(一般指定为400)的功能框图。
图5是描绘根据本发明的至少一个实施例的用于为子设备生成日历选项的操作步骤的流程图。
图6是描绘根据本发明的至少一个实施例的用于安排软件更新的操作步骤的流程图。
图7是示出根据本发明的至少一个实施例的适合于执行更新分析程序101的计算机(一般指定为700)的组件的框图。
图8是根据本发明的实施例的云计算环境。
图9是根据本发明的实施例的抽象模型层。
具体实施方式
本发明总体上涉及更新设备的领域,并且更具体地涉及优化安排软件和固件更新。
软件和固件的新版本被周期性地发布给用户以修复微小问题、安装新特征或以其他方式在计算设备(诸如服务器、膝上型计算机、手持式移动设备或智能电器)上更改当前软件或固件。保持计算设备上的软件和固件更新对于确保设备正在运行最新版本或设备没有任何缺陷是必要的。如果用户在更新他们的设备上延迟,则它可能导致设备滞后、冻结或以非预期方式表现,并且由此最终篡改用户的体验。在一些实例中,软件更新包括安全补丁。在这些实例中,在最新的软件更新上不保持设备最新可能将设备暴露于安全漏洞。
小更新可能能够在设备被用户使用时在设备的后台进行更新。通常,较大的更新要求设备暂时关闭或重启,从而使设备暂时不可用于用户。关闭或重新启动用户设备对于用户而言可能是繁重的并且干扰他们的时间表。由于这一点,许多用户在他们的设备上放弃完成更新。通常,用户设备上的提示可用于提醒用户立即或在用户指定的稍后时间点更新他们的设备的软件或固件。较大的更新还可能需要用户设备具有足够的电池充电水平同时还***到充电器中。
本发明的实施例认识到确定更新一组设备的最方便的时间是困难的,尤其是对于未绑定到单个位置和/或拥有严格安排使用的设备。例如,如果用户当前正在使用他们的设备,则立即更新设备可能在用户身上是繁重的,因为他们当前正在使用他们的设备。本发明的实施例进一步认识到,如果用户计划在安排时间更新他们的设备的软件,则当到了更新设备的软件的时间时,该安排时间可以更长地有益于用户。类似地,一些操作***在一般的低使用时间期间安排自动更新,这可能有益于一些用户而不是其他用户。用户还可能简单地忘记在安排时间执行更新,或者在安排更新时间电源和/或电力电缆可能不容易获得。这些场景中的任一个都可能导致用户的设备变得在软件更新上滞后,从而使该设备遭受可能的安全漏洞和非预期的性能问题。
本发明的实施例进一步认识到安排和执行***更新的以下问题或缺点:(i)用户可能不够了解或感觉舒适以自己执行***更新,从而需要来自更有经验的人的帮助;(ii)一些操作***强制更新而不咨询用户,由此潜在地导致数据和/或生产力的损失;(iii)经验不足的用户甚至可能不知道更新是可用的和/或需要的;以及(iv)如果设备在某个时间阈值内没有被更新,则重要的信息可能被无意地删除。
本发明的实施例通过分析用户的时间表以找到安排软件更新的最佳和方便的时间来改进前述缺陷。本发明的实施例认识到影响软件更新的最佳时间的许多因素。因而,本发明的实施例分析许多因素,包括但不限于用户的个人和工作日历、设备电池充电水平和/或设备充电阈值、设备屏幕时间、网络状态和Wi-Fi连接性,以确定并安排最佳时间来进行软件更新。在实施例中,为多个相互相关的设备确定相互可用的更新时间。在实施例中,将来设备更新的可用时间至少部分地基于设备针对更新的过去可用性和特定设备的过去更新时间来学习。
本发明的实施例还认识到,服务器计算机更新在许多不同级别上是复杂的。更新可以迫使***停机时间、要求用户重新登录到服务器计算机中、或者甚至可能与服务器不兼容。例如,如果服务器硬件级别不支持最新的固件更新,则服务器可能被要求保持在当前的较旧版本。相反,其他服务器可能不需要用于安装在这些服务器中的硬件级别的级别固件。在另一示例中,***级测试下的某些服务器计算机可要求用于验证的特定固件级别。然而,服务器的用户可能不希望对特定代码流的固件更新,但确实希望对其他代码流的更新。
本发明的实施例进一步认识到,跨服务器集群安排服务器更新对于服务器计算机管理员/IT团队既困难又繁重。例如,可能需要为数据中心的所有计算设备确定更新时间,以在单个计算设备上执行必要的/特定的固件更新,以便最小化停机时间或对其他设备的工作负荷的影响。此外,自动更新甚至可能不是选项,这是由于所需的不同级别的更新、必须执行更新的顺序、以及某些更新可能仅适用于某些服务器计算机的事实。例如,在***测试层面上,可存在集中于具有各种工作负荷运行时间的不同功能的多个测试隅角。在代码发布和更新期间,可能存在测试团队不需要服务器更新或对所有服务器的更新、与测试焦点无关的补丁、或不匹配特定硬件级别的补丁的时间。因而,本发明的实施例认识到需要考虑服务器组的特定服务器的特定工作负荷、可用性、硬件级别、使用性和更新要求来自动安排服务器组的机器更新。
本发明的实施例提供以下特征、特性、操作和/或优点中的一个或多个:(i)管理用于数据中心类环境中的特定服务器的代码更新/补丁;(ii)识别安排事件连同***工作负荷以自动确定执行软件更新/补丁的最佳时间,从而减少***停机时间;(iii)在***使用/测试期间基于服务器计算机可用性和固件子流更新要求来自动更新不同服务器计算机;以及(iv)基于服务器计算机可用性以及测试和使用中的服务器硬件级别来自动更新各种服务器计算机(例如,如果服务器计算机具有不支持特定固件更新的低级别Ficon卡,则识别出不以该低级别Ficon卡为目标的不同固件更新);以及基于***使用(需要使用被安排用于更新的特定服务器的其他服务器或计算设备的相互依赖)、服务器计算机可用性和固件子流更新要求来自动安排和更新服务器更新。
本发明可以是任何可能的技术细节水平集成的***、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有用于致使处理器执行本发明的方面的计算机可读程序指令的(一个或多个)计算机可读存储介质。
计算机可读存储介质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡或沟槽中的凸起结构之类的其上记录有指令的机械编码设备、以及上述的任意合适的组合。如本文中所使用的计算机可读存储介质不应被解释为瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。
本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编器指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言(包括面向对象的编程语言,如Salltalk、C++等)和常规的过程式编程语言(如“C”编程语言或类似的编程语言)的任何组合编写的源代码或目标代码。计算机可读程序指令可完全在用户”的计算机上执行、部分在用户”的计算机上执行、作为独立软件包执行、部分在用户”的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的方面。
本文中参考根据本发明的实施例的方法、设备(***)和计算机程序产品的流程图说明和/或框图描述本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或多个块中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,所述计算机可读存储介质可以指引计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得具有存储在其中的指令的计算机可读存储介质包括制品,所述制品包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得一系列操作步骤在计算机、其他可编程装置或其他设备上执行以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图图示了根据本发明的不同实施例的***、方法和计算机程序产品的可能实现的架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现规定的逻辑功能的一个或多个可执行指令。在一些替代实现方式中,框中所标注的功能可以不以图中所标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的***来实现,所述基于专用硬件的***执行指定的功能或动作或执行专用硬件与计算机指令的组合。
已经出于说明的目的呈现了本发明的不同实施例的描述,但并不旨在是穷尽性的或局限于所披露的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域的普通技术人员而言将是显而易见的。选择在此使用的术语以最佳地解释实施例的原理、实际应用或在市场上找到的技术上的技术改进,或使得本领域普通技术人员能够理解在此披露的实施例。
现在将参考附图详细描述本发明。图1是根据本发明的至少一个实施例的用于安排固件更新的最佳时间的网络计算环境(一般指定为100)的功能框图。图1提供了仅一个实现方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。在不脱离由权利要求陈述的本发明的范围的情况下,所属领域的技术人员可对所描绘的环境做出许多修改。
计算***100包括通过网络130互连的管理员服务器计算机105、更新分析服务器计算机135、和服务器计算机145。在本发明的不同实施例中,管理员服务器计算机105、更新分析服务器计算机135、和服务器计算机145中的每一个是计算设备,这些计算设备可以是独立设备、管理服务器、web服务器、移动设备、或能够接收、发送、和处理数据的任何其他电子设备或计算***。在实施例中,管理员服务器计算机100、更新分析服务器计算机135、和服务器计算机145表示诸如云计算环境中利用多个计算机作为服务器***的服务器计算***。在实施例中,管理员服务器计算机100、更新分析服务器计算机135、和服务器计算机145表示利用集群式计算机和组件(例如,数据库服务器计算机、应用服务器计算机、web服务器计算机等)的计算***,这些集群式计算机和组件当在网络计算环境100内被访问时充当单个无缝资源池。一般而言,管理员服务器计算机105、更新分析服务器计算机135、和服务器计算机145可表示能够执行机器可读程序指令并经由诸如网络130的网络彼此通信和与网络计算环境100内的其他设备(未描绘)通信的任何可编程电子设备或可编程电子设备的组合。
管理员服务器计算机105包括管理员时间表110和服务器列表111。在实施例中,管理员服务器计算机105调节服务器计算机145的更新。在实施例中,管理员服务器计算机105监视服务器计算机145的性能条件和工作负荷。在实施例中,管理员服务器计算机105将更新传输到网络130中的其他服务器,诸如服务器计算机145。在实施例中,管理员服务器计算机105自动地和/或通过用户管理员批准固件更新被分派给一个或多个服务器计算机145。
在实施例中,时间表110包含管理员服务器计算机105时间表的信息。在实施例中,时间表110包含关于管理员服务器105的关于在服务器计算机145上执行的更新的当前和/或未来工作负荷的信息。在实施例中,时间表110包含除了更新之外的其他管理任务的信息和时间。例如,这些管理任务可包括不同会议、午休、约会或与具有管理员特权的特定用户相关联的其他事件。在实施例中,时间表110包含关于来自服务器列表111的服务器计算机管理员105负责的服务器计算机145的将要经受更新的时间的信息。在实施例中,服务器列表111包含由服务器计算机管理器105管理的服务器计算机的列表。
在实施例中,优先级值被分配给包括在服务器列表111中的服务器计算机。例如,服务器计算机的较高优先级值将被放置在具有较低优先级值的服务器计算机之前以按照时间表110被更新。这意味着,具有较高优先级值的服务器计算机将在具有较低优先级值的服务器计算机之前被更新。在实施例中,优先级值基于确定服务器计算机145执行服务器更新的需要。例如,具有固件版本2.0的服务器将具有比具有固件版本2.1的服务器更高的更新需要。在实施例中,通过比较当前固件和固件更新来确定优先级值。在实施例中,通过添加或移除由服务器计算机管理员105管理的服务器计算机145,服务器列表111经受随时间推移的改变。
更新分析服务器135包括更新分析程序101,该更新分析程序101进一步包括固件更新分析器600、固件更新调度器140和***简档学习器500。在实施例中,固件更新分析器600是分析服务器计算机145的固件更新的更新分析程序101的模块或子程序。在实施例中,固件更新分析器600将包括在管理员时间表110中的信息与一个或多个服务器计算机145的可用性信息(下面参见图3进一步详细描述)组合,以确定特定的服务器计算机145是否需要更新,并且如果需要更新,则确定该更新是否是可允许的。
固件更新调度器140是为一个或多个服务器计算机145安排固件更新的更新分析程序101的模块或子程序。在实施例中,固件更新调度器140在服务器计算机145的工作负荷/事件时间表150内安排和存储固件更新提醒。在实施例中,固件更新调度器140安排固件更新提醒并将其存储在管理员服务器计算机105的时间表110内。
***简档学习器500是确定服务器计算机145的相应***配置简档155的更新分析程序101的模块或子程序。在实施例中,***简档学习器500确定服务器计算机145的固件或硬件级别。在实施例中,***简档学习器500确定服务器计算机145用于执行更新的可用时间。下面参见图2进一步详细描述***简档学习器500的进一步实施例。
服务器计算机145包括工作负荷/事件时间表150、***配置简档155、***固件级别160和***硬件级别165。在实施例中,服务器计算机145由管理员服务器计算机105管理。在实施例中,工作负荷/事件时间表150包括与特定服务器计算机145相关联的历史工作负荷数据。在实施例中,工作负荷/事件时间表150包括安排事件,诸如与特定服务器计算机145相关联的软件或固件更新、当前和/或未来工作负荷、以及***停机时间。在实施例中,***配置简档155包括用于服务器计算机145的相应配置参数。在实施例中,***配置简档155包括与服务器计算机145相关联的硬件和固件级别。在实施例中,更新分析程序101识别固件级别和硬件级别以确定服务器计算机145是否需要固件更新。在实施例中,基于用户提示或预定的无效配置来确定需要更新的固件级别。在实施例中,如果固件级别不能被打补丁,则这些固件级别作为例外被存储在***配置简档155中。在实施例中,基于用户提示、预定的无效配置或未支持的硬件来确定需要更新的硬件级别。在实施例中,如果硬件级别不能被打补丁,则这些硬件级别作为例外被存储在***配置简档155中。在实施例中,工作负荷/事件时间表150包括在***配置简档155中。
在实施例中,***配置简档155包括用于特定服务器计算机145的规则。服务器计算机145的规则可包括固件或硬件更新分析程序101的级别应或不应更新,以及允许或不允许更新的特定固件或硬件级别。服务器计算机145的规则可由特定服务器计算机145专用的固件或硬件要求来确定。
在实施例中,服务器计算机145具有多个固件级别。在实施例中,固件级别操作、管理和控制服务器计算机145。例如,服务器计算机145包含安装级别、激活级别和接受级别。通常,服务器固件的安装级别是已安装的,并且在被管理***断电和通电之后将被安装到存储器中。激活级别是活跃的并且在存储器中运行的服务器固件或功率子***固件的级别。接受级别是服务器或电源子***固件的备份级别。通常,所接受的固件级别是服务器用来移除安装级别的级别。在实施例中,***固件级别160包括关于安装级别、激活级别或接受级别中的一个或多个的信息。
在实施例中,***硬件级别165包括低级别或高级别硬件组件。通常,操作***的硬件级别控制物理***资源(例如,内存管理器、进程管理器和磁盘驱动器)的使用。如果用户提示、预定的无效配置或未支持的硬件指示,则硬件级别不应被升级。
在本发明的不同实施例中,更新分析程序101管理用于数据中心环境中的特定服务器计算机的软件更新或补丁。在实施例中,更新分析程序101确定需要服务器更新。在实施例中,更新分析程序101生成配置文件,如下面根据图3进一步详细描述的。在实施例中,更新分析程序101利用固件更新分析器600来确定安排服务器更新的最佳时间。更新分析程序101使用固件更新调度器140基于服务器计算机配置简档155来更新时间表110和服务器计算机工作负荷/事件时间表150。在实施例中,更新分析程序101根据时间表110安排最佳服务器更新时间。
在实施例中,管理员服务器计算机105利用***工作负荷来识别所安排的事件以确定执行固件更新或补丁的最佳时间,以便减少机器停机时间。在实施例中,管理员服务器计算机105基于一个或多个服务器计算机145的可用性、固件子流更新要求、或***使用来更新不同服务器计算机145。在实施例中,固件子流更新包括LPAR、OSA、CFCC(耦合)、功率和HMC/SE。在实施例中,管理员服务器计算机105基于服务器计算机可用性和硬件级别来更新不同服务器计算机145。例如,如果服务器计算机145不支持固件更新,则服务器计算机145可使用不以该低级别硬件为目标的特定更新。
在实施例中,更新分析程序101确定服务器更新的多个最佳时间。在这些实施例中,更新分析程序101为每个可用时间分配分数。在实施例中,更新分析程序101基于来自先前更新尝试的先前学习在所安排的最佳时间在服务器上自动执行更新。
在实施例中,更新分析程序101确定在工作负荷/事件时间表150与时间表110之间不存在重叠。例如,当任一时间表指示在那时存在日历事件时,更新分析程序101将确定在工作负荷/事件时间表150与时间表110之间不存在重叠。意味着如果工作负荷/事件时间表150指示在2020年1月4日从下午3点至下午4点存在事件,则更新分析程序101将确定在2020年1月4日从下午3点至下午4点这两个时间表之间不存在重叠。然而,如果两个时间表都指示在2020年1月4日从下午4点到下午5点没有安排的日历事件,则更新分析程序101将指示在工作负荷/事件时间表150与时间表110之间存在重叠。如果最初没有指示重叠时间,则更新分析程序101增加重叠时间量。例如,如果更新分析程序101确定在1月4日没有重叠可用时间,则更新分析程序101将重叠时间增加到两天以确定在1月4日和1月5日是否存在重叠可用时间。
图2是一般指定为200的描绘了根据本发明的至少一个实施例的用于生成***配置文件的操作步骤流程图。图2仅提供了一个实现方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。在不脱离由权利要求陈述的本发明的范围的情况下,所属领域的技术人员可对所描绘的环境做出许多修改。
在步骤S202,更新分析程序101识别服务器计算机固件级别。例如,更新分析程序101识别服务器计算机嵌入的软件指令以识别服务器计算机固件级别。在实施例中,所识别的固件级被存储在配置文件中,诸如***配置文件155。在实施例中,从服务器计算机145上的特定固件配置文件和操作***配置方案自动查询固件级别。在实施例中,服务器计算机145的固件级由具有管理员特权的用户手动地输入到***配置简档155中。
在步骤S204,更新分析程序101识别服务器计算机硬件级别。例如,更新分析程序101识别服务器计算机嵌入的软件指令以识别服务器计算机硬件级别。在实施例中,所识别的硬件级别被存储在配置文件中,诸如***配置文件155。在实施例中,从服务器计算机145上的特定硬件配置文件和操作***配置方案自动查询硬件级别。在实施例中,服务器计算机145的硬件级别由具有管理员特权的用户手动地输入到***配置简档155中。
在判定步骤S206中,更新分析程序101判断是否存在不需要更新的固件级别。在实施例中,更新分析程序101基于但不限于用户提示、预定无效配置和不支持的固件中的一个或多个来确定用于特定服务器计算机145的特定固件级别不应被更新。例如,如果当前固件级别不支持新更新,则可以确定不需要固件更新。例如,可能需要固件级别在服务器测试环境中保持不变,以模拟特定客户端操作以潜在地再现特定问题。例如,如果客户端先前遇到其固件的问题,则固件级别应保持不变以再现先前问题。如果判断为存在需要更新的固件级别(判断步骤S206的“是”分支),则更新分析程序101进入步骤S208。如果确定不存在需要更新的固件级别(确定步骤S206“否”分支),则更新分析程序101进行到确定步骤S210。
在步骤S208,更新分析程序101将关于需要更新的服务器计算机的哪些特定固件级别以及不需要更新和/或不应被更新的服务器计算机的哪些特定固件级别的信息存储在配置文件中。
在确定步骤S210,更新分析程序101确定是否存在不需要更新的硬件级别。在实施例中,更新分析程序101可基于但不限于用户提示、预定无效配置和不支持的硬件中的一个或多个来确定用于特定服务器计算机145的一个硬件的特定级别不应被更新。例如,预定的无效硬件配置可以包括分配给特定设备的***资源设置。在实施例中,不支持的硬件可以是***内的物理硬件不能支持更新。在实施例中,当硬件的未来未发布的原型级别在服务器计算机145中被测试时,可防止用固件的当前发布的级别来更新特定原型硬件以防止硬件失败。如果确定存在需要更新的硬件级别(确定步骤S210“是”分支),则更新分析程序101进入步骤S212。如果确定不存在需要更新的硬件级别(判断步骤S210“否”分支),则更新分析程序101进入步骤S214。
在步骤S212,更新分析程序101将关于需要更新的服务器计算机的哪些特定硬件级别以及不需要更新和/或不应被更新的服务器计算机的哪些特定硬件级别的信息存储在配置文件中。
在步骤S214,更新分析程序101检索服务器计算机工作负荷/事件时间表150并将其存储在***配置文件155中。
在步骤S216,更新分析程序101生成配置文件。
图3是描绘根据本发明的至少一个实施例的用于安排固件更新的操作步骤的流程图,一般指定为300。图3仅提供了一个实现方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。在不脱离由权利要求陈述的本发明的范围的情况下,所属领域的技术人员可对所描绘的环境做出许多修改。
在判定步骤S302处,更新分析程序101确定是否存在可用于服务器计算机(诸如服务器计算机145)的更新。如果确定不存在可用的更新(判定步骤S302的“否”分支),则更新分析程序101返回至操作步骤的开始。如果确定存在可用的更新(确定步骤S302的“是”分支),则更新分析程序101进行到确定步骤S304。
在判定步骤S304,更新分析程序101确定是否存在需要更新的服务器计算机。在实施例中,更新分析程序101基于但不限于用户提示、预定无效配置和不支持的固件中的一个或多个来确定服务器计算机是否需要更新。在实施例中,更新分析程序101将每个服务器计算机的当前固件级别与最近更新进行比较,以确定服务器计算机是否正在运行过时的版本。如果确定不存在需要更新的服务器计算机(判定步骤S304“否”分支),则更新分析程序101返回至操作步骤的开始。如果确定存在需要更新的服务器计算机(判断步骤S304“是”分支),则更新分析程序101进入步骤S306。
在步骤S306,更新分析程序101加载与服务器计算机相关联的***配置简档。例如,更新分析程序101加载根据以上图2的为特定服务器计算机145生成的***配置简档155。
在步骤S308,更新分析程序101确定在设定时间范围中时间表是否存在重叠。在实施例中,更新分析程序101将服务器计算机管理员时间表110与服务器计算机工作负荷/事件时间表150进行比较,以确定用于在预定时间范围内执行更新的重叠可用时间。如果确定在设定时间范围中时间表不存在重叠(确定步骤S310“否”分支),则更新分析程序101进行到步骤S312。如果判断在设定时间范围内时间表存在重叠(判断步骤S310“是”分支),则更新分析程序101进入步骤S314。
在步骤S312,更新分析程序101增加用于执行更新的预定时间范围。在实施例中,更新分析程序101可以增加时间范围中的时间量。例如,如果更新分析程序101检测到服务器计算机145和服务器计算机管理器105两者没有足够长的连续时间段来完成更新,则增加可执行更新的可接受时间段以确定在另一未来时间段设备之间是否存在重叠。如果确定要完成更新的未来时间段增加并且没有找到可接受的重叠时间段来完成更新,则更新分析程序101可以在服务器计算机145上执行强制更新。
在步骤S314,更新分析程序101安排固件更新。在实施例中,更新分析程序101基于比较管理时间表110和需要更新的一个或多个服务器计算机145的相应服务器计算机工作负荷/事件时间表150来安排一个或多个服务器计算机145的更新。在实施例中,更新分析程序101基于比较管理时间表110和所有服务器计算机145的相应服务器计算机工作负荷/事件时间表来为一个或多个服务器计算机145安排更新,以确定需要更新的一个或多个服务器计算机145的固件安排时间。例如,尽管仅一个服务器计算机145可需要更新,但其他服务器计算机145可依赖于需要更新的特定服务器计算机145。因而,基于管理员服务器计算机105的管理员时间表110、需要更新的特定服务器计算机145、以及可能依赖于需要更新的特定服务器计算机145的一个或多个另外的服务器计算机145来确定用于完成该更新的重叠时间,以来寻找使更新服务器计算机对这些其他依赖的服务器计算机的影响最小化的时间。在实施例中,用更新分析程序101一次更新服务器计算机145中的一个或多个。应当理解,可以重复图3的步骤,以便确定另外的服务器计算机145是否需要可用更新。
图4是根据本发明的至少一个实施例的用于安排软件更新的最佳时间的计算***(一般指定为400)的功能框图。图4提供了仅一个实现方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。在不脱离由权利要求陈述的本发明的范围的情况下,所属领域的技术人员可对所描绘的环境做出许多修改。
用户设备401可表示用户的计算设备,诸如膝上型计算机、平板计算机、上网本计算机、个人计算机、台式计算机、个人数字助理(PDA)、智能电话、可穿戴设备(例如,智能眼镜、智能手表、电子纺织品、AR头戴式耳机等)或本领域已知的任何可编程计算机***。设备401可以表示一个或多个设备。通常,设备401代表能够执行计算机可读程序指令的任何电子设备或电子设备的组合。
计算***400包括通过网络430互连的用户设备401和服务器135。用户设备401包括用户界面403和应用404。用户接口403是在诸如用户设备401之类的终端用户设备的用户与驻留在该设备上的多个应用(例如,应用404)之间提供接口的程序。用户界面,如用户界面403,是指节目呈现给用户的信息(如图形、文字、声音等),以及用户采用其控制节目的控制序列。存在各种类型的用户界面。在实施例中,用户界面403是图形用户界面。图形用户界面(GUI)是一种类型的用户界面,其允许用户通过图形图标和视觉指示器(诸如与基于文本的界面、键入的命令标签或文本导航相反的次级符号)与诸如计算机键盘和鼠标的电子设备交互。在计算中,响应于命令行接口的感知的陡峭学习曲线而引入GUI,所述命令行接口需要在键盘上键入命令。GUI中的动作通常通过对图形元素的直接操纵来执行。在另一实施例中,用户接口403是脚本或应用程序编程接口(API)。
应用404可以表示在用户设备401上操作的一个或多个应用(例如,应用套件)。在不同举例实施例中,应用404可以是位于用户设备上的应用。在其他实施例中,应用程序404可以是另一个移动设备应用程序(例如,一个网络浏览器、企业特定的消息传送应用程序、社交媒体应用程序、用于更新一个设备的软件、固件、和/或硬件级别的应用程序等)。例如,应用404是与服务器435相关联的客户端侧应用(例如,与更新分析程序101相关联的客户端侧应用)。
在另外的实施例中,根据本发明的不同实施例,应用404可操作以执行更新分析程序102的处理步骤(即,应用404可表示在用户设备401上操作的更新分析程序102)。例如,用户设备401的用户可接收更新提醒、查看为用户的设备安排的软件、固件和/或硬件更新、选择特定更新、以及利用应用404批准、拒绝和取消安排的更新。
用户设备401还包括更新通知***405、时间表410、设备状态415、位置服务420和设备角色425。在实施例中,更新通知***405是用于提醒用户设备401更新可用的更新分析程序102的组件或子程序。在一些实施例中,更新通知***405的提醒可以是一个弹出窗口或下拉框。在实施例中,时间表410还包括用户设备401的历史屏幕使用。例如,如果用户设备通常每周三从下午2点到下午5点被使用,则更新分析程序102将把该信息存储在时间表410中。在实施例中,时间表410包含用户设备401的历史充电水平。本领域技术人员将理解,时间表410可包含一个或多个用户设备401的用户的时间表(日历)。
在实施例中,设备状态415包括用户设备的不同性能条件,诸如设备充电水平和Wi-Fi状态。在实施例中,充电水平指示设备具有什么百分比的电池。在实施例中,充电水平指示设备当前是否正在充电。在实施例中,充电水平指示电池水平是否高于完成特定更新所需的预定阈值水平。在实施例中,设备状态415包括设备的历史使用和设备的历史充电时间。在实施例中,Wi-Fi状态可通过用户设备401到Wi-Fi的Wi-Fi连接的强度来分类。在实施例中,位置服务420包括用户设备的当前和未来位置的各种位置信息。在实施例中,设备角色425包括关于特定用户设备的各种信息,包括该设备是管理员设备还是子设备。
服务器435包括更新分析程序102,该更新分析程序102进一步包括设备固件更新分析器300、固件调度器440和设备简档学习器450。在实施例中,程序102是程序101的子程序。在实施例中,程序102与程序101不同或分开。在实施例中,设备固件更新分析器300是用于分析固件更新的更新分析程序102的模块或子程序。在实施例中,设备固件更新分析器300将具有服务器的可用性的管理员时间表与一个或多个用户设备401的可用性信息(下文参见图5进一步详细描述)组合,以确定特定用户设备401是否需要更新,并且如果需要更新,则确定该更新是否是允许的。
在实施例中,固件调度器440是用于在用户设备上安排更新的更新分析程序102的模块或子程序。在实施例中,固件调度器440在时间表410上安排和存储固件更新提醒。在实施例中,固件调度器440在用户设备401的时间表410内安排和存储固件更新提醒。
在实施例中,设备简档学习器450是更新分析程序102的模块或子程序,其确定用于执行更新的用户设备401的固件或硬件级别。在实施例中,设备简档学习器450确定用户设备401的可用时间。下面参见图6进一步详细描述设备简档学习器的进一步实施例。
在实施例中,用户设备401可要求软件更新、固件更新和/或硬件更新。在实施例中,更新分析程序102分析时间表410、设备状态415、位置服务420和设备角色425以确定更新用户设备401上的软件的最佳时间。在实施例中,更新分析程序102基于多个因素来确定更新软件的最佳时间,这些因素包括但不限于:设备用户时间表、设备的使用历史、设备的屏幕时间历史、设备的当前位置、设备的将来位置、设备的充电历史、设备的当前充电水平、设备的Wi-Fi连接性历史、和设备的当前Wi-Fi连接性中的一个或多个。在实施例中,更新分析程序102确定执行软件更新的时间,此时设备可能将不在使用中、将具有足够的充电水平和足够的Wi-Fi连接性。在实施例中,一旦确定了这样的最佳时间,更新分析程序102就将这样的更新的日期和时间安排在时间表410上。
在实施例中,用户可能需要帮助更新其设备上的软件、固件和/或硬件。因此,更新分析程序102可确定需要更新的设备是管理员设备还是子设备。在实施例中,当管理设备和子设备都可用时,更新分析程序102将为子设备安排软件更新。在实施例中,更新分析程序102将管理设备链接到一个或多个子设备。在实施例中,更新分析程序102通知管理设备一个或多个子设备的可用更新时间。在实施例中,更新分析程序102更新移动设备家族。
在实施例中,更新分析程序102为用户设备更新确定多个最佳时间。这里,更新分析程序102可为每个可用时间分配分数。在实施例中,更新分析程序102基于来自先前更新尝试的先前学习和/或先前完成的更新时间,在所安排的最佳时间在一个或多个用户设备上自动执行更新。
在实施例中,更新分析程序102确定在子时间表和管理员时间表之间不存在重叠的可用时间。在实施方式中,子时间表是需要更新的用户设备的时间表并且管理时间表是辅助更新的用户设备的时间表。例如,当任一时间表指示在那时存在日历事件时,更新分析程序102可以确定在子时间表和管理员时间表之间不存在重叠。如果最初没有指示重叠时间,则更新分析程序102增加重叠时间量。例如,如果更新分析程序102确定在1月4日没有重叠可用时间,则更新分析程序102将重叠时间增加到两天以确定在1月4日和1月5日是否存在重叠可用时间。
图5是描绘根据本发明的至少一个实施例的通常指定为500的用于为子设备生成日历选项的操作步骤的流程图。图5仅提供了一个实现方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。在不脱离由权利要求陈述的本发明的范围的情况下,所属领域的技术人员可对所描绘的环境做出许多修改。
在确定步骤S502,更新分析程序102确定是否存在可用的更新。如果确定不存在可用的更新(确定步骤S502,“否”分支),则更新分析程序101返回到步骤S502。如果确定存在可用的更新(确定步骤S502,“是”分支),则更新分析程序102进行到确定步骤S504。
在确定步骤S504,更新分析程序102确定用户设备是否需要可用更新(例如,软件、固件和/或硬件更新)。在实施例中,如果设备的硬件或固件不能支持可用的更新,则更新分析程序102确定用户设备不需要更新。如果确定设备不需要更新(确定步骤S504,“否”分支),则更新分析程序102返回到步骤S504。如果确定存在可用的更新(确定步骤S504,“是”分支),则更新分析程序102进行到步骤S506。
在步骤S506,更新分析程序102运行设备简档学习器。下面参见图6进一步详细解释设备简档学习器的实施例。
在确定步骤S508,更新分析程序102确定是否存在管理员设备以帮助更新子设备。如果确定不存在管理设备(确定步骤S508“否”分支),则更新分析程序101进行到步骤S510。如果确定存在管理设备(确定步骤S508“是”分支),则更新分析程序102进行到步骤S514。
在确定步骤S510,更新分析程序102确定在预定时间范围上时间表是否存在重叠。如果确定在预定的时间范围上时间表不存在重叠(确定步骤S510,“否”分支),则更新分析程序102进行到步骤S512。如果确定在设定时间范围上的时间表存在重叠(确定步骤S510,“是”分支),则更新分析程序102进行到步骤S516。
在步骤S512,更新分析程序102增加重叠时间。在实施例中,更新分析程序102可以增加时间范围中的时间量。例如,如果更新分析程序102检测到服务器管理设备和子设备两者没有足够长的连续时间段来完成更新,则增加可执行更新的可接受时间段以确定在另一未来时间段在管理设备和子设备之间是否存在重叠。如果确定要完成更新的未来时间段增加并且没有找到可接受的重叠时间段来完成更新,则更新分析程序102可对子设备执行强制更新。
在步骤S514,更新分析程序102向管理员设备生成日历选项。在实施例中,更新分析程序102将可用的更新时间存储在管理员设备的日历上。
在步骤S516,更新分析程序102向子设备生成日历选项。在实施例中,更新分析程序102将可用的更新时间存储在子设备的日历上。
图6是描绘根据本发明的至少一个实施例的用于安排用户设备更新的操作步骤的流程图(一般指定为600)。图6仅提供了一个实现方式的图示并且不暗示关于其中可以实现不同实施例的环境的任何限制。在不脱离由权利要求陈述的本发明的范围的情况下,所属领域的技术人员可对所描绘的环境做出许多修改。
在步骤S602,更新分析程序102确定设备用户的可用性。在实施例中,更新分析程序102基于时间表410确定设备用户的可用性。
在确定步骤S604,更新分析程序102确定用户是否可用。例如,如果设备更新要求用户输入,诸如输入口令、接受或拒绝更新、在更新期间选择各种用户选项等,则更新分析程序102可确定用户是否可用。如果确定用户不可用(确定步骤S604,“否”分支),则更新分析程序102进行到步骤S606。如果确定用户可用(确定步骤S604,“是”分支),则更新分析程序102进行到步骤S610。
在步骤S606,更新分析程序102确定用户事件类型。在实施例中,更新分析程序102确定日历事件的类型。例如,更新分析程序102确定日历事件是工作会议、医生的约会还是午餐。在实施例中,更新分析程序102通过在日历事件上指定的位置来确定用户事件类型。在实施例中,更新分析程序102提示用户指示事件类型。
在确定步骤S608,更新分析程序102确定用户事件是否需要使用该设备。例如,更新分析程序102确定用户事件是医生的预约并且不需要设备。在另一示例中,更新分析程序102确定用户事件是需要该设备的工作会议。在实施例中,更新分析程序102通过位置服务420在日历事件上指定的位置来确定用户事件是否需要使用设备。在实施例中,更新分析程序102确定用户事件是否需要使用跟踪设备的设备位置。例如,如果更新分析程序102确定设备在咖啡店,则更新分析程序102可确定事件不要求使用设备。在实施例中,更新分析程序102提示用户指示他们是否需要他们的设备用于事件。在实施例中,更新分析程序102访问类似事件类型的设备的历史使用,以确定用户事件是否需要使用该设备。如果确定事件不需要设备(确定步骤S608,“否”分支),则更新分析程序102进行到步骤S610。如果确定事件需要设备(确定步骤S608,“是”分支),则更新分析程序102进行到步骤S614。
在步骤S610,更新分析程序102分析设备用户的屏幕时间。在实施例中,更新分析程序102确定用户是否在特定时间历史上使用他们的设备。例如,更新分析程序102确定用户是否在周二下午6点历史上使用他们的设备。
在确定步骤S612,更新分析程序102确定用户设备当前是否在使用中。在实施例中,如果用户当前正在使用设备,则该设备在使用中。在实施例中,如果应用在设备上运行,则该设备在使用中。在实施例中,如果数据正被传输到设备和/或从设备传输,则设备在使用中。如果确定设备在使用中(确定步骤S612,“是”分支),则更新分析程序102进行到步骤S614。如果确定设备未在使用中(确定步骤S612,“否”分支),则更新分析程序102进行到确定步骤S616。
在确定步骤S616,更新分析程序102确定是否存在可接受的网络连接。在实施例中,可接受的网络连接是高于用于执行特定更新的预定阈值水平的网络速度。在实施例中,可接受的网络连接是高于用于执行特定更新的预定阈值水平的网络带宽。如果确定不存在可接受的网络连接(判断步骤S616,“否”分支),则更新分析程序102进行到步骤S614。如果确定装置具有可接受的网络连接(确定步骤S616,“是”分支),则更新分析程序102进行到确定步骤S618。
在确定步骤S618,更新分析程序102确定用户设备充电水平是否可接受。在实施例中,至少部分地基于高于用于执行特定更新的预定阈值水平的剩余电池寿命的百分比来确定可接受充电水平。在实施例中,基于在特定更新期间所消耗的电量进一步确定可接受充电水平。在实施例中,还可基于电池的类型、电池的寿命和特定用户设备的历史电池使用数据来确定可接受充电水平。如果确定不存在可接受的充电水平(确定步骤S618,“否”分支),则更新分析程序102进行到步骤S614。如果确定装置具有可接受的充电水平(确定步骤S618,“是”分支),则更新分析程序102进行到步骤S620。
在步骤S614,更新分析程序102将用于更新用户设备的预定时间段标记为在固件调度器440中不可用。
在步骤S620,更新分析程序102将用于更新用户设备的预定时间段标记为在固件调度器440中可用。
图7是示出根据本发明的至少一个实施例的适合于执行更新分析程序101和更新分析程序102的计算设备的组件(一般指定为700)的框图。计算设备700包括一个或多个处理器704(包括一个或多个计算机处理器)、通信结构702、存储器706(包括RAM716和高速缓存718)、持久性存储装置708(其进一步包括更新分析程序101(包括固件更新分析器600、固件更新调度器140和***简档学习器500))和更新分析程序102(包括设备固件更新分析器300、固件调度器440和设备简档学习器450)、通信单元712、(一个或多个)I/O接口714、显示器722和(一个或多个)外部设备720。应了解,图7仅提供一个实施例的说明,且不暗示关于可实施不同实施例的环境的任何限制。可以对所描绘的环境进行许多修改。
如所描绘的,计算设备700在通信结构702上操作,通信结构702提供(一个或多个)计算机处理器704、存储器706、持久性存储装置708、通信单元712和(一个或多个)输入/输出(I/O)接口714之间的通信。通信结构702可以利用适合于在(一个或多个)处理器704(例如,微处理器、通信处理器和网络处理器)、存储器706、(一个或多个)外部设备720和***内的任何其他硬件部件之间传递数据或控制信息的任何架构来实现。例如,通信结构702可以用一条或多条总线来实现。
存储器706和持久性存储器708是计算机可读存储介质。在所描绘的实施例中,存储器706包括随机存取存储器(RAM)716和高速缓存718。一般而言,存储器706可包括任何合适的易失性或非易失性的一个或多个计算机可读存储介质。
用于更新分析程序101和更新分析程序102的程序指令可被存储在持久性存储器708中,或更一般地,存储在任何计算机可读存储介质中,以供一个或多个相应的计算机处理器704经由存储器706的一个或多个存储器来执行。持久性存储器708可以是磁性硬盘驱动器、固态盘驱动器、半导体存储设备、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或能够存储程序指令或数字信息的任何其他计算机可读存储介质。
持久性存储器708所使用的介质也可以是可移除的。例如,可移动硬盘驱动器可用于持久性存储器708。其他示例包括光盘和磁盘、拇指驱动器和智能卡,其被***到驱动器中以便转移到也是持久性存储器708的一部分的另一计算机可读存储介质上。
在这些实例中,通信单元712提供与其他数据处理***或装置的通信。在这些实例中,通信单元712可以包括一个或多个网络接口卡。通信单元712可以通过使用物理和无线通信链路之一或两者来提供通信。在本发明的一些实施例的上下文中,不同输入数据的源可物理上远离计算装置700,使得可接收输入数据,且类似地经由通信单元712发射输出。
(一个或多个)I/O接口714允许与可以结合计算设备700操作的其他设备的数据输入和输出。例如,(一个或多个)I/O接口714可以提供到(一个或多个)外部设备720的连接,外部设备720可以是键盘、小键盘、触摸屏或其他合适的输入设备。(一个或多个)外部设备720还可以包括便携式计算机可读存储介质,例如拇指驱动器、便携式光盘或磁盘、以及存储卡。用于实施本发明的实施例的软件和数据可存储在这种便携式计算机可读存储介质上,并且可经由I/O接口714加载到持久性存储器708上。(一个或多个)I/O接口714还可以类似地连接到显示器722。显示器722提供向用户显示数据的机制,并且可以是例如计算机监视器。
应当理解,尽管本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便、按需的网络访问,所述可配置计算资源可以用最小的管理努力或与服务提供者的交互来快速配置和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可按需自动地单方面供应计算能力,诸如服务器时间和网络存储,而无需与服务的提供者的人类交互。
广泛的网络接入:能力在网络上是可用的并且通过标准机制来访问,所述标准机制促进由异构的瘦或厚客户端平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池化:提供者的计算资源被池化以使用多租户模型服务于多个消费者,其中不同的物理和虚拟资源根据需要被动态地指派和重新指派。存在位置独立性的意义,因为消费者通常对所提供资源的确切位置不具有控制或知识,但可能能够在较高抽象层级(例如,国家、州或数据中心)处指定位置。
快速弹性:可以快速且弹性地提供能力(在一些情况下,自动地)以快速缩小并且快速释放以快速放大。对于消费者,可用于供应的能力通常显得不受限制,并且可以在任何时间以任何数量购买。
测量的服务:云***通过利用适于服务类型(例如,存储、处理、带宽和活动用户账户)的某种抽象级别的计量能力来自动控制和优化资源使用。可监视、控制和报告资源使用,从而为所利用的服务的提供者和消费者两者提供透明度。
业务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端接口从不同客户端设备访问。消费者不管理或控制包括网络、服务器、操作***、存储或甚至个体应用能力的底层云基础结构,可能的例外是有限的用户特定的应用配置设置。
平台即服务(PaaS):向消费者提供的能力是在云基础结构上部署消费者创建或获取的应用,所述应用是使用提供者所支持的编程语言和工具来创建的。消费者不管理或控制包括网络、服务器、操作***或存储的底层云基础结构,但是具有对所部署的应用以及可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供消费者能够部署和运行可包括操作***和应用的任意软件的处理、存储、网络和其他基本计算资源。消费者不管理或控制底层云基础结构,而是具有对操作***、存储、所部署的应用的控制,以及对所选联网组件(例如,主机防火墙)的可能有限的控制。
部署模型如下:
私有云:云基础结构仅为组织操作。它可由组织或第三方管理,并且可存在于场所内或场所外。
社区云:云基础结构由若干组织共享并且支持具有共享的关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可由组织或第三方管理,并且可存在于场所内或场所外。
公共云:使云基础结构对公众或大型产业组可用并且由销售云服务的组织拥有。
混合云:云基础架构是两个或更多个云(私有、社区或公共的)的组成,这些云保持唯一实体但通过标准化或专有技术来绑定在一起,这些技术实现数据和应用便携性(例如,用于云之间的负载平衡的云突发)。
云计算环境是面向服务的,关注于状态、低耦合、模块性和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
图8是描绘根据本发明的至少一个实施例的云计算环境50的框图。云计算环境50包括一个或多个云计算节点10,云消费者使用的本地计算设备(诸如个人数字助理(PDA)或移动电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机***54N)可与云计算节点10通信。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础结构、平台和/或软件作为云消费者不需要维护本地计算设备上的资源的服务。应理解,图8中所示的计算装置54A-N的类型仅旨在是说明性的,且计算节点10和云计算环境50可经由任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化装置通信。
图9是描绘根据本发明的至少一个实施例的由图9中描绘的云计算环境50提供的功能抽象模型层的集合的框图。应预先理解,图9中所示的部件、层和功能旨在仅是说明性的,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作***74;以及虚拟客户端75。
在一个实例中,管理层80可提供下文所描述的功能。资源供应81提供用于执行云计算环境内的任务的计算资源和其他资源的动态获取。计量和定价82在云计算环境内利用资源时提供成本跟踪,并针对这些资源的消费进行计费或***。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及对数据和其他资源的保护。用户门户83为消费者和***管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)计划和履行85提供云计算资源的预安排和采购,根据SLA预期该云计算资源的未来要求。
工作负荷层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航91;软件开发和生命周期管理92;虚拟教室教育交付93;数据分析处理94;事务处理95;以及设备更新处理96。

Claims (10)

1.一种用于更新设备的计算机实现的方法,包括:
识别与所述设备相关联的更新可用;
确定是否允许与所述设备相关联的可用更新;
响应于与所述设备相关联的可用更新被准许,确定用于对所述设备执行所述更新的最佳安排时间;并且
在所述安排时间对所述设备执行所述更新。
2.根据权利要求1所述的计算机实现方法,其中,确定用于在所述设备上执行所述更新的最佳安排时间还基于:
确定所述设备和其工作负荷依赖于所述设备可用的一个或多个另外的设备的相互可用时间。
3.根据权利要求1所述的计算机实现方法,其中,确定用于在所述设备上执行所述更新的最佳安排时间进一步基于分析所述设备的用于执行更新的历史可用性或对所述设备执行更新的历史更新时间中的至少一个。
4.根据权利要求1所述的计算机实现方法,其中,确定用于在所述设备上执行所述更新的最佳安排时间进一步基于:
确定要执行所述更新的所述设备和向所述设备提供所述更新的管理员设备的相互可用时间。
5.根据权利要求1所述的计算机实现方法,其中,所述更新是固件子流更新,并且响应于至少部分地基于作为所述固件子流更新的目标的特定低级别硬件确定不允许所述固件子流更新:
确定将不把所述特定低级别硬件作为目标的替代固件子流更新是否可用;并且
响应于将不把所述特定低级别硬件作为目标的所述替代固件子流更新可用,在所述设备上执行所述替代固件子流更新。
6.根据权利要求1所述的计算机实现方法,其中,确定用于在所述设备上执行所述更新的所述最佳安排时间是基于以下各项:(i)所述设备的用户的日历,(ii)管理员设备时间表,(iii)所述设备的工作负荷,(iv)具有依赖于所述设备的相应工作负荷的另外的设备;(v)设备电池充电水平高于预定水平,(vi)设备历史屏幕时间数据,以及(vii)网络。
7.根据权利要求1所述的计算机实现方法,其中,所述设备是移动设备或服务器中的至少一个。
8.根据权利要求1所述的计算机实现方法,其中,所述更新是软件更新、固件更新或硬件更新中的至少一个。
9.一种用于更新设备的计算机程序产品,所述计算机程序产品包括一个或多个计算机可读存储介质以及存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令包括用于执行根据权利要求1至7中任一项所述的方法的步骤的指令。
10.一种用于更新设备的计算机***,包括:
一个或多个计算机处理器;
一个或多个计算机可读存储介质;以及
计算机程序指令,所述计算机程序指令存储在所述一个或多个计算机可读存储介质上以用于由所述一个或多个计算机处理器执行,
所述计算机程序指令包括用于执行根据权利要求1至7中任一项所述的方法的步骤的指令。
CN202111417620.1A 2020-12-14 2021-11-26 优化设备更新安排 Active CN114625391B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/120,747 US11392365B2 (en) 2020-12-14 2020-12-14 Optimizing device update scheduling
US17/120,747 2020-12-14

Publications (2)

Publication Number Publication Date
CN114625391A true CN114625391A (zh) 2022-06-14
CN114625391B CN114625391B (zh) 2023-02-10

Family

ID=80038619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111417620.1A Active CN114625391B (zh) 2020-12-14 2021-11-26 优化设备更新安排

Country Status (5)

Country Link
US (1) US11392365B2 (zh)
JP (1) JP2022094315A (zh)
CN (1) CN114625391B (zh)
DE (1) DE102021131913A1 (zh)
GB (1) GB2603597B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11662993B2 (en) * 2021-05-18 2023-05-30 Kyndryl, Inc. Autonomous management of temporal updates and rollbacks
US12008355B2 (en) * 2022-01-18 2024-06-11 Dell Products L.P. System and method for generating a specialized upgrade notification based on client intent for an application abstention
US20240020107A1 (en) * 2022-07-13 2024-01-18 Vmware Inc. Optimized deployment of updates across computing systems connected to a wide area network (wan)
US20240126529A1 (en) * 2022-10-12 2024-04-18 Haier Us Appliance Solutions, Inc. Household appliances update management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103221919A (zh) * 2010-11-16 2013-07-24 英特尔公司 在操作***(os)缺席的服务环境中供应固件的方法
US20130346955A1 (en) * 2012-06-21 2013-12-26 International Business Machines Corporation Calendar aware adaptive patching of a computer program
US20140059534A1 (en) * 2012-08-22 2014-02-27 General Electric Company Method and system for software management
JP2017142684A (ja) * 2016-02-10 2017-08-17 株式会社リコー 機器管理システム、機器管理装置およびプログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2333864B (en) 1998-01-28 2003-05-07 Ibm Distribution of software updates via a computer network
US6976251B2 (en) 2001-05-30 2005-12-13 International Business Machines Corporation Intelligent update agent
EP1763766A4 (en) * 2004-05-04 2009-04-01 Robert M Price SYSTEM AND METHOD FOR COMMUNICATING ELECTRONIC EQUIPMENT
US20070192763A1 (en) 2006-02-15 2007-08-16 Helvick Richard E Method and system for scheduling application of software updates
US20090089777A1 (en) * 2007-09-29 2009-04-02 Bruce Gordon Fuller Managing software updates in an automation environment
KR101157846B1 (ko) * 2007-10-11 2012-07-13 퀄컴 인코포레이티드 백그라운드 프로세스가 브로드캐스트 데이터를 수신할 수 있게 하는 스케줄링된 다운로드
US20090187899A1 (en) 2008-01-23 2009-07-23 International Business Machines Corporation Method for intelligent patch scheduling using historic averages of virtual i/o utilization and predictive modeling
US8966304B1 (en) * 2011-04-04 2015-02-24 Google Inc. Periodic system wakeup to update state
US11372672B2 (en) 2013-02-15 2022-06-28 Apple Inc. Centralized task scheduling
US9148465B2 (en) 2013-04-01 2015-09-29 Oracle International Corporation Update management for a distributed computing system
US9262152B1 (en) 2015-01-22 2016-02-16 Bank Of America Corporation Modular system including management and deployment of software updates and revisions
WO2016144297A1 (en) 2015-03-06 2016-09-15 General Electric Company Automatic deployment of control code
US9672028B1 (en) * 2015-11-19 2017-06-06 Ricoh Company, Ltd. Device management system, apparatus and method for notification and scheduling of firmware update
US10460324B1 (en) 2016-06-30 2019-10-29 Square, Inc. Customized communication scheduler
CN109219109A (zh) 2017-07-06 2019-01-15 索尼公司 无线通信方法和无线通信设备
US11429377B2 (en) * 2019-04-30 2022-08-30 Ford Global Technologies, Llc Vehicle update data sharing
CN112052023B (zh) * 2020-09-14 2024-01-26 艾体威尔电子技术(北京)有限公司 一种智能终端升级策略管理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103221919A (zh) * 2010-11-16 2013-07-24 英特尔公司 在操作***(os)缺席的服务环境中供应固件的方法
US20130346955A1 (en) * 2012-06-21 2013-12-26 International Business Machines Corporation Calendar aware adaptive patching of a computer program
US20140059534A1 (en) * 2012-08-22 2014-02-27 General Electric Company Method and system for software management
JP2017142684A (ja) * 2016-02-10 2017-08-17 株式会社リコー 機器管理システム、機器管理装置およびプログラム

Also Published As

Publication number Publication date
GB202117083D0 (en) 2022-01-12
CN114625391B (zh) 2023-02-10
US20220188090A1 (en) 2022-06-16
GB2603597B (en) 2024-04-10
DE102021131913A1 (de) 2022-06-15
JP2022094315A (ja) 2022-06-24
GB2603597A (en) 2022-08-10
US11392365B2 (en) 2022-07-19

Similar Documents

Publication Publication Date Title
CN114625391B (zh) 优化设备更新安排
CN110688123B (zh) 托管服务域中的自动应用部署的方法、***和存储介质
US20200412625A1 (en) Change management optimization in cloud environment
US9736199B2 (en) Dynamic and collaborative workflow authoring with cloud-supported live feedback
US11556321B2 (en) Deploying microservices across a service infrastructure
US11093289B2 (en) Provisioning disaster recovery resources across multiple different environments based on class of service
US10929118B2 (en) Cognitive microcode simulation, planning, and risk assessment
US10673775B2 (en) Orchestration engine using a blockchain for a cloud resource digital ledger
US20200065237A1 (en) Application monitoring with a decoupled monitoring tool
US11171825B2 (en) Context-based resource allocation with extended user concepts
US20210158174A1 (en) Equipment maintenance assistant training based on digital twin resources
US20180330297A1 (en) Intelligent key performance indicator catalog
US11782808B2 (en) Chaos experiment execution for site reliability engineering
US20200125353A1 (en) Product feature notification and instruction in a continuous delivery software development environment
US10169079B2 (en) Task status tracking and update system
US9513873B2 (en) Computer-assisted release planning
CN112348302A (zh) 具有无状态协调器的可扩展工作流引擎
US11687370B2 (en) Activity assignment based on resource and service availability
US20170075521A1 (en) Context sensitive active fields in user interface
US20210011947A1 (en) Graphical rendering of automata status
US11537994B2 (en) Mitigating disruptive effects of detected diminished working capacity
US10581702B2 (en) Automatic creation of standard service level agreements for architectures
US11880668B2 (en) Dynamically altering a code execution workflow during development using augmented reality
US11977922B2 (en) Resource reuse for pipeline workloads
US11099907B1 (en) Prerequisite driven dynamic infrastructure orchestration

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant