CN110651256B - 用于在软件更新期间防止服务中断的系统和方法 - Google Patents

用于在软件更新期间防止服务中断的系统和方法 Download PDF

Info

Publication number
CN110651256B
CN110651256B CN201880032731.0A CN201880032731A CN110651256B CN 110651256 B CN110651256 B CN 110651256B CN 201880032731 A CN201880032731 A CN 201880032731A CN 110651256 B CN110651256 B CN 110651256B
Authority
CN
China
Prior art keywords
connector
server
machine
software update
machines
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.)
Active
Application number
CN201880032731.0A
Other languages
English (en)
Other versions
CN110651256A (zh
Inventor
托马斯·克鲁迪
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN110651256A publication Critical patent/CN110651256A/zh
Application granted granted Critical
Publication of CN110651256B publication Critical patent/CN110651256B/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
    • G06F8/658Incremental updates; Differential updates
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

用于防止计算系统中服务中断的系统和方法。该方法包括:在基于云的计算系统接收多个消息,所述多个消息用于启动要求多台远程计算机器重新启动系统的软件更新;以及由所述基于云的计算系统执行操作,以便通过以每次一台机器的方式调度所述软件更新和系统重新启动,使得在任何给定时间所述多台远程计算机器中仅一台远程计算机器的操作状态从在线状态转换为离线状态。

Description

用于在软件更新期间防止服务中断的系统和方法
相关申请的交叉引用
本申请要求于2017年6月9日提交的美国专利申请 No.15/619,052的优先权,其公开内容通过引用合并于此。
技术领域
本公开总体上涉及计算系统。更具体地,本公开涉及在软件(例如,操作系统)更新期间防止服务中断的实施系统和方法。
背景技术
作为思杰
Figure BDA0002276628380000013
云(
Figure BDA0002276628380000011
Cloud)的一部分,客户每个资源位置部署两个或更多个连接器。每个连接器都是基于
Figure BDA0002276628380000012
的机器。资源位置(resource location)是客户管理的相关资源(包括相关机器) 的集合。该连接器允许
Figure BDA0002276628380000014
Cloud中的云托管服务访问资源位置内部的资源。资源位置中的连接器被认为是单个“可用性集(availabilityset)”的一部分(意味着,只要在任何时候资源位置中不超过一个连接器离线,那么连接器就可以提供完整功能而不会引起运行中断)。
Figure BDA0002276628380000015
Cloud协调跨连接器的维护操作,以确保任何维护操作 (定义为:任何可能导致服务中断的操作)每次仅发生在一个连接器上,并且确保连接器正在积极处理任务时,不会在该连接器上发生维护操作。
然而,作为运行机器(任何类型的机器)的最佳实践的一部分,保持对机器进行打补丁并更新到最新的安全修复是必要的。这些补丁频繁地要求机器重新启动或有其它一些暂时服务中断,持续时间从五(5)分钟到一(1)小时。补丁典型地直接从操作系统(“OS”) 供应商分发到机器。
因为OS在不知道机器正处于准备好应用补丁的状态的情况下将补丁直接分发到机器,所以会出现第一个问题。典型地,OS将立即应用补丁,过早地终止连接器当前正在执行的任务。
因为当OS供应商发布安全补丁时,所有机器都大致同时应用该补丁,所以会发生第二个问题。由于安全补丁会导致暂时停机,因此,不只一台机器同时应用补丁会违反可用性集的原则(在任何给定时间该集中最多一台机器可以离线)并造成整个服务运行中断。
发明内容
本文描述了用于防止计算系统中服务中断的实施系统和方法。该方法包括:在基于云的计算系统接收多个消息,所述多个消息用于启动要求多台远程计算机器重新启动系统的软件更新;以及由所述基于云的计算系统执行操作,以便通过以每次一台机器的方式调度所述软件更新和系统重新启动,使得在任何给定时间所述多台远程计算机器中仅一台远程计算机器的操作状态从在线状态转换为离线状态。所述调度基于远程计算机器的负荷、所述远程计算机器的操作能力、由所述远程计算机器执行的操作的类型、一天中的时间、所述远程计算机器的操作状态以及所述多台远程计算机器的连接状态中的至少一项来进行。
在一些情况下,所述多台远程计算机器的软件更新和系统重新启动以与所述基于云的计算系统接收所述消息的顺序不同或相同的顺序被调度。所述远程计算机器的操作状态响应于所述远程计算机器从所述基于云的计算系统检索到所述多个消息中的相应消息而从在线状态转换为离线状态。当所述远程计算机器完成系统重新启动时,所述远程计算机器的操作状态从离线状态转换为在线状态。
在那些或其它情况下,所述基于云的计算系统接收通知,所述通知指示所述多台远程计算机器中的第一台已经完成了第一软件更新和第一系统重新启动。响应于该通知,所述基于云的计算系统执行操作以在所述多台远程计算机器中的第二台启动第二软件更新和第二系统重新启动。
在那些或其它情况下,第一机器执行操作以确定是否需要要求第一系统重新启动的第一软件更新。如果第一软件更新不要求第一系统重新启动,则第一机器自动调度第一软件更新。相反,如果第一软件更新要求第一系统重新启动,则第一机器将所述多个消息中的第一消息传送到所述基于云的计算系统。
附图说明
将参考附图描述实施例,其中在所有附图中,相同的标号表示相同的项目。
图1是示例性系统的图示。
图2是计算设备的示例性架构的图示。
图3A-3B(在本文中统称为“图3”)是用于防止在操作系统更新期间服务中断的示例性方法的流程图。
具体实施方式
容易理解的是,可以以各种各样的不同配置来布置和设计如本文一般描述的以及在附图中示出的实施例的组件。因此,下面对如附图所示的各种实施例的更详细的描述并非旨在限制本公开的范围,而仅是各种实施例的代表。尽管在附图中示出了实施例的各个方面,但是除非特别指出,否则附图不必按比例绘制。
在不脱离本发明的精神或基本特征的情况下,本发明可以以其它特定形式来体现。所描述的实施例在所有方面仅应被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由该详细描述来指示。落入权利要求等同含义和范围内的所有改变均应包含在其范围之内。
在整个说明书中对特征、优点或类似语言的引用并不意味着可以用本发明实现的所有特征和优点应该是或在本发明的任何单个实施例中。而是,提及特征和优点的语言应理解为是指结合实施例描述的特定特征、优点或特性包括在本发明的至少一个实施例中。因此,在整个说明书中对特征和优点以及类似语言的讨论可以但不必指代相同的实施例。
此外,在一个或多个实施例中,可以以任何适当的方式组合所描述的本发明的特征、优点和特性。根据本文的描述,相关领域的技术人员将认识到,可以在没有具体实施例的一个或多个特定特征或优点的情况下实践本发明。在其它情况下,在某些实施例中可能认识到可能并非在本发明的所有实施例中都存在的附加特征和优点。
在整个说明书中,对“一个实施例”、“一实施例”或类似语言的引用意味着结合所指的实施例描述的具体特征、结构或特性包括在本发明的至少一个实施例中。因此,在本说明书中的短语“在一个实施例中”、“在一实施例中”和类似的语言可以但并非必须都指代相同的实施例。
除非上下文另外明确指出,否则如本文中使用的单数形式的“一”、“一个”和“该”包括复数引用。除非另有定义,否则本文中使用的所有技术和科学术语具有与本领域普通技术人员通常理解的相同含义。如本文中所使用的,术语“包括”是指“包括但不限于”。
现在参考图1,提供了示例性系统100的图示。系统100被配置为使用由基于云的计算系统110托管的维护服务114,以促进软件(例如,OS)更新的应用的协调,使得在同一时间可用性集112中仅单个连接器1041,...,104M接收更新。以这种方式,跨用作可用性集112 的一部分的独立连接器1041,...,104M来协调更新(和对应的暂时中断)。可用性集112中没有两个(2)连接器1041,...,104M同时应用更新。
连接器在本领域中是众所周知的,因此在此将不进行详细描述。在某些情况下,每个连接器1041,...,104M是基于
Figure BDA0002276628380000041
的机器 (例如服务器)。每个连接器1041,...104M,都被安装成由基于云的计算系统110管理和控制资源位置。因此,每个连接器1041,...,104M用作基于云的计算系统110与资源位置106之间通信的信道,从而无需复杂的联网或基础架构配置即可进行云管理。每个连接器 1041,...,104M对基于云的计算系统110与资源位置106之间的所有通信进行认证和加密。连接器1041,...,104M与基于云的计算系统 110之间的所有通信都出站(outbound)。在操作期间,每个连接器1041,...,104M执行功能,以能够进行:活动目录(Active Directory,“AD”)管理;从资源位置106中的资源发布;应用程序和设备管理;用户组管理;以及机器向资源位置106的供给。
如图1中所示,针对资源位置106部署了M个连接器。M是等于或大于两(2)的整数,即,每个资源位置106部署了两(2)个或更多个连接器。这两个或更多个连接器被用于提供相对较高的可用性和相对较高的总处理能力。单个连接器无法提供这一点。例如,如果只有一个连接器并且其离线,则与基于云的计算系统110的连接性将丢失,并且服务将停止运行。
资源位置106包括客户(或公司)管理的资源的集合。资源可以包括但不限于计算设备102和/或AD 116。计算设备和AD在本领域中是众所周知的,因此在此将不进行描述。在此可以不受限制地使用任何已知的或以后知晓的计算设备和/或AD。例如,计算设备102包括但不限于台式计算机、个人计算机、个人数字助理、膝上型计算机和/或智能电话。AD 116包括但不限于单租户AD(例如
Figure BDA0002276628380000051
AD)。AD 116提供客户雇员的识别信息。该识别信息可以包括但不限于安全标识符(“SID”)。
本解决方案结合了云托管的维护服务114(例如Citrix Cloud服务) 110的能力,针对软件(例如OS)补丁的应用和即将发生的重新启动的进行,以每次最多一台机器的方式度跨连接器1041,...,104M调度维护操作。通过云托管的维护服务114而不是通过OS的控制(如传统系统中所进行的那样)来调度安全补丁应用。每个连接器1041,..., 104M定期监测自身以确定(a)是否存在需要应用的安全补丁,或者 (b)是否已自动应用了安全补丁并且即将进行重新启动。如果即将进行重新启动,则连接器1041,...,104M通过云托管的维护服务114 向其自身发送维护消息。然后,云托管的维护服务114跨不同的连接器对维护消息进行排序,确保(a)每次仅单个连接器处理安全补丁,和(b)在连接器完成任何长期运行任务之后,才向该连接器发布维护消息。维护服务114的报信应用编程接口(ApplicationProgramming Interface,“API”)118促进报信。API在本领域中是众所周知的,因此在此将不进行描述。
本解决方案可以用于机器需要执行可能导致本地机器上的服务中断的操作的任何情况。本解决方案提供一种在较大服务环境下跨多台机器以每次一台机器的方式执行操作的方法。例如,如果机器检测到其需要切换操作模式,但这样做会导致暂时中断运行,则可以使用相同的处理来协调模式的切换而不会导致服务中断运行。本解决方案还可以用于处理应用更新、病毒扫描程序更新以及使机器进入“即将进行重新启动”状态的其它更新操作。本解决方案确保在没有整体服务停机的情况下快速应用这些更新。
对于跨多台机器调度重新启动,存在各种传统解决方案。但是,这些传统解决方案未考虑长运行操作,并且典型地需要手动配置以基于交错的时间表来调度重新启动。本解决方案不依赖于任何时间表,使得重新启动以每次一台机器的方式尽可能快地进行。传统解决方案典型地在直接客户控制下,并且无法从云服务进行控制。传统解决方案只能提供重新启动能力,或者在某些情况下提供软件分发服务。本解决方案可用于可能导致本地系统暂时停机的任何操作。
现在参考图2,提供了托管维护服务(例如,图1的维护服务114) 的示例性计算设备200的图示。在这方面,计算设备200是基于云的计算系统(例如,图1的基于云的计算系统110)的一部分。基于云的计算系统可以包括以分布式方式布置的多个服务器。每个服务器与计算设备200相同或基本相似。
值得注意的是,图1的连接器1041,...,104M可具有与图2中所示的架构相同或相似的架构。这样,对图2的描述也适合于理解图1的连接器的硬件和/或软件架构。如上所述,图1的连接器1041,...,104M可以包括但不限于运行Windows OS的机器(或计算设备)(例如,个人计算机或服务器)。这样的机器(或计算设备)在本领域中是众所周知的,并且这里将不再详细描述。还应当理解,这样的机器可被修改以实现本文描述的全部或部分方法。这样的修改可以包括软件修改、硬件修改或两者的组合。
计算设备200可以包括比图2中所示的组件更多或更少的组件。然而,所示的组件足以公开实现本解决方案的说明性实施例。图2的硬件架构表示代表性计算设备的一个实施例,其被配置为能够如本文所述在操作系统更新期间防止服务中断。这样,图2的计算设备200 实现了本文描述的方法的至少一部分。
计算设备200的一些或全部组件可以作为硬件、软件和/或硬件和软件的组合来实现。硬件包括但不限于一个或多个电子电路。电子电路可以包括但不限于无源组件(例如,电阻器和电容器)和/或有源组件(例如,放大器和/或微处理器)。无源和/或有源组件可以改编为、布置为和/或编程为执行本文描述的方法、程序或功能中的一个或多个。
如图2中所示,计算设备200包括用户接口202、中央处理单元 (“CPU”)206、系统总线210、通过系统总线210连接到计算设备200 的其它部分并可由其访问的存储器212、以及连接到系统总线210的硬件实体214。用户接口可以包括输入设备和输出设备,其促进用于控制计算设备200的操作的用户-软件交互。输入设备包括但不限于物理和/或触摸键盘250。输入设备可以经由有线或无线连接(例如,
Figure BDA0002276628380000071
连接)连接到计算设备200。输出设备包括但不限于扬声器252、显示器254和/或发光二极管256。
至少一些硬件实体214执行涉及访问和使用存储器212的动作,该存储器可以是随机存取存储器(“RAM”)、盘驱动器和/或光盘只读存储器(“CD-ROM”)。硬件实体214可以包括盘驱动单元216,该盘驱动单元216包括计算机可读存储介质218,计算机可读存储介质218上存储有被配置为实现本文所描述的方法、程序或功能中的一个或多个的一组或多组指令220(例如,软件代码)。在计算设备 200执行指令220的过程中,指令220也可以全部或至少部分地驻留在存储器212内和/或CPU 206内。存储器212和CPU 206也可以构成机器可读介质。这里使用的术语“机器可读介质”是指存储所述一组或多组指令220的单个介质或多个介质(例如,集中式或分布式数据库和/或关联的缓存和服务器)。如本文所使用的,术语“机器可读介质”还指能够存储、编码或携带一组指令220以供计算设备200执行并且使计算设备200执行本公开的任何一个或多个方法的任何介质。
在某些情况下,硬件实体214包括被编程用于促进在操作系统更新期间防止服务中断的电子电路(例如,处理器)。在这方面,应当理解,电子电路可以访问并运行安装在计算设备200上的应用224。从以下对本解决方案的讨论中,软件应用224的功能是显而易见的。例如,软件应用被配置为执行下面关于图3描述的一个或多个操作。
现在参考图3,提供了用于在操作系统更新期间防止服务中断的示例性方法300的流程图。方法300提供一种确保在任何给定时间只有一个连接器由于软件更新和重新启动而离线的方法。在这方面,通过多个连接器更新和重新启动的软件被序列化。从客户的角度来看,连接器更多是不必对其进行管理的黑匣子。基于云的计算系统远程管理所有软件更新和重新启动将在何时进行,而无需任何客户帮助并且/或者没有任何连接器中断运行(即,所有连接器同时处于离线状态)。
每个连接器执行软件更新和重新启动的方式是基于所采用的OS 技术确定的。例如,根据传统的OS技术来实现软件更新。OS具有内置的自动软件更新特征。OS内置的自动软件更新特征在本领域中是众所周知的,因此在此将不进行描述。在此可以不受限制地使用任何已知或将来已知的OS内置自动软件更新特征。类似地,启动顺序在本领域中是众所周知的。在此可以不受限制地使用任何已知或将来已知的启动顺序。
如图3A中所示,方法300从302开始并继续至304,在304中可用性集(例如,图1的可用性集112)的第一连接器(例如,图1的连接器1041)执行操作以确定是否需要软件更新。如果需要软件更新[306:是],则第一连接器确定软件更新是否为需要其重新启动的类型。如果不是[308:否],则在310中第一连接器自动执行软件更新。此后,方法400返回到304。如果是[308:是],则执行312,其中第一连接器生成用于启动软件更新和重新启动处理的第一消息。如314所示,将第一消息从第一连接器传送到基于云的计算系统(例如,图1的基于云的计算系统110)。在316中,在基于云的计算系统接收第一消息并将其添加到消息列表(例如,图1的列表120)。
如318所示,304-314的操作也由第二连接器(例如,图1的连接器104M)执行。结果,第二连接器生成用于启动软件更新和重新启动处理的第二消息。然后,将第二消息从第二连接器传送到基于云的计算系统。在320中,在基于云的计算系统接收第二消息并将其添加到消息列表中。
接下来在322中,基于云的计算系统执行操作以确定第二连接器应当在第一连接器之前更新其软件。值得注意的是,连接器更新其软件的顺序可以与在基于云的计算系统接收消息的顺序相同或不同。这里,仅出于说明目的,第二连接器在第一连接器之前更新其软件,即使基于云的计算系统在第一消息之后接收到第二消息。
322的确定可以基于根据具体应用选择的各种参数来进行。参数包括但不限于连接器负荷、连接器操作能力、连接器正在执行的操作的类型(例如,与短运行应用相对的不能中断的长运行操作)、一天中的时间、连接器操作状态(例如,在线或离线)和/或所有连接器的连接状态(例如,离线连接器的数量与在线连接器的数量,或在线连接器的数量是否超过阈值(例如2))。
现在参考图3B,方法300继续到324,在324中,基于云的计算系统执行操作以使第二消息可用于第二连接器。在326中,第二连接器从基于云的计算系统检索第二消息。第二条消息在第二个连接器处触发软件更新和重新启动处理。因此,第二连接器将其操作状态从在线状态转换为离线状态,如328所示。然后,在330中第二连接器执行操作以根据OS内置自动软件更新特征来更新其软件。第二个连接器也重新启动。一旦重新启动,第二连接器的操作状态就从离线状态转换为在线状态,如332所示。此后,在334中,第二连接器发送通知,通知基于云的计算系统重新启动已完成并且已重新在线。响应于该通知,第二连接器执行操作以确定第一连接器现在应当在其它第三连接器之前更新其软件,如336所示。这时,基于云的计算系统发出第一连接器可使用的第一消息,如338所示。接下来在340 中,第一连接器从基于云的计算系统检索第一消息。响应于第一消息,第一连接器执行332-336的操作。一旦完成这些操作,第一连接器就通知基于云的计算系统它已完成其软件更新和重新启动。随后,执行346,在346中,方法300结束或执行其它处理。
鉴于上述情况,本解决方案提供一种系统,其中:连接器检测到该机器具有补丁和/或将要进行的重新启动;该连接器通过云服务 (例如,图1的维护服务器110)向自身发送消息以执行该补丁和/或重新启动;云服务通过(a)检查该机器当前是否正在执行长运行任务的状态和/或(b)检查是否还有其它机器处于维护模式(因此,当前机器不应处理可能导致服务中断的任何消息),确定将补丁和/或重新启动消息发送到相应连接器的最佳时间。在某些情况下,消息仅被发布到处于维护模式的机器或者可以在不影响整体服务可用性的情况下进入维护模式的机器。
尽管已经关于一个或多个实施方式示出和描述了本发明,但是本领域的其它技术人员在阅读并理解本说明书和附图之后将想到等同的变更和修改。另外,尽管可能已经仅关于几种实施方式中的一种实施方式公开了本发明的具体特征,但是这种特征可以与其它实施方式的一个或多个其它特征组合,这对于任何给定的或具体的应用可能是希望的和有利的。因此,本发明的广度和范围不应受到任何上述实施例的限制。而是,本发明的范围应根据所附权利要求及其等同物来限定。

Claims (18)

1.一种用于防止计算系统中服务中断的方法,包括:
由服务器接收多个消息,所述多个消息用于启动软件更新,所述软件更新要求多台连接器机器中的每一台系统重启,其中每个消息由所述多台连接器机器中相应的连接器机器经由所述服务器托管的维护服务发送至其自身;以及
由所述服务器执行操作以调度所述维护服务对所述多台连接器机器的维护操作,所述操作包括对所述多个消息进行排序以确保每次仅有一台连接器机器处理所述软件更新;
根据所述排序,使所述多个消息中的第一消息可用于从其发送了所述第一消息的连接器机器以触发所述连接器机器的所述软件更新;
由所述服务器接收通知,所述通知指示所述多台连接器机器中的第一台已经完成了第一软件更新或第一系统重启;以及
响应于所述通知,由所述服务器执行操作以在所述多台连接器机器中的第二台启动第二软件更新或第二系统重启,
从而在任何给定时间所述多台连接器机器中只有一台连接器机器从在线状态转换为离线状态。
2.根据权利要求1所述的方法,其中基于连接器机器的负荷、所述连接器机器的操作能力、由所述连接器机器执行的操作的类型、一天中的时间、所述连接器机器的操作状态以及所述多台连接器机器的连接状态中的至少一项来调度所述维护操作。
3.根据权利要求1所述的方法,其中以与所述服务器接收所述消息的顺序不同的顺序来调度所述多台连接器机器的软件更新和系统重启。
4.根据权利要求1所述的方法,其中以与所述服务器接收所述消息的顺序相同的顺序来调度所述多台连接器机器的软件更新和系统重启。
5.根据权利要求1所述的方法,其中响应于所述连接器机器从所述服务器检索到所述多个消息中的相应消息,所述连接器机器的操作状态从在线状态转换为离线状态。
6.根据权利要求1所述的方法,其中当所述连接器机器完成系统重启时,所述连接器机器的操作状态从离线状态转换为在线状态。
7.根据权利要求1所述的方法,还包括由所述多台连接器机器中的第一台连接器机器执行操作以确定是否需要要求第一系统重启的第一软件更新。
8.根据权利要求7所述的方法,还包括:如果所述第一软件更新不要求所述第一系统重启,则由所述第一台连接器机器自动调度所述第一软件更新。
9.根据权利要求7所述的方法,还包括:如果所述第一软件更新要求所述第一系统重启,则将所述多个消息中的第二消息从所述第一台连接器机器传送到所述服务器。
10.一种服务器,包括:
处理器;和
非暂时性计算机可读存储介质,其包括编程指令,所述编程指令被配置为使所述处理器实现用于防止所述服务器中服务中断的方法,其中所述编程指令包括指令,以:
接收多个消息,所述多个消息用于启动软件更新,所述软件更新要求多台连接器机器中的每一台系统重启,其中每个消息由所述多台连接器机器中相应的连接器机器经由所述服务器托管的维护服务发送至其自身;
调度所述维护服务对所述多台连接器机器的维护操作,所述操作包括对所述多个消息进行排序以确保每次仅有一台连接器机器处理所述软件更新;
根据所述排序,使第一消息可用于从其发送了所述第一消息的连接器机器以触发所述软件更新;
由所述服务器接收通知,所述通知指示所述多台连接器机器中的第一台已经完成了第一软件更新或第一系统重启;以及
响应于所述通知,由所述服务器执行操作以在所述多台连接器机器中的第二台启动第二软件更新或第二系统重启,
从而在任何给定时间所述多台连接器机器中仅有一台连接器机器从在线状态转换为离线状态。
11.根据权利要求10所述的服务器,其中基于连接器机器的负荷、所述连接器机器的操作能力、由所述连接器机器执行的操作的类型、一天中的时间、所述连接器机器的操作状态以及所述多台连接器机器的连接状态中的至少一项来调度所述维护操作。
12.根据权利要求10所述的服务器,其中以与所述服务器收所述消息的顺序不同的顺序来调度所述多台连接器机器的软件更新和系统重启。
13.根据权利要求10所述的服务器,其中以与所述服务器接收所述消息的顺序相同的顺序来调度所述多台连接器机器的软件更新和系统重启。
14.根据权利要求10所述的服务器,其中响应于所述连接器机器从所述服务器检索到所述多个消息中的相应消息,所述连接器机器的操作状态从在线状态转换为离线状态。
15.根据权利要求10所述的服务器,其中当所述连接器机器完成系统重启时,所述连接器机器的操作状态从离线状态转换为在线状态。
16.根据权利要求10所述的服务器,其中所述多台连接器机器的第一台连接器机器被配置为确定是否需要要求第一系统重启的第一软件更新。
17.根据权利要求16所述的服务器,其中如果所述第一软件更新不要求所述第一系统重启,则由所述第一台连接器机器自动调度所述第一软件更新。
18.根据权利要求16所述的服务器,其中如果所述第一软件更新要求所述第一系统重启,则所述第一台连接器机器将所述多个消息中的第二消息传送到所述服务器。
CN201880032731.0A 2017-06-09 2018-05-16 用于在软件更新期间防止服务中断的系统和方法 Active CN110651256B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/619,052 2017-06-09
US15/619,052 US10191732B2 (en) 2017-06-09 2017-06-09 Systems and methods for preventing service disruption during software updates
PCT/IB2018/053429 WO2018224900A1 (en) 2017-06-09 2018-05-16 Systems and methods for preventing service disruption during software updates

Publications (2)

Publication Number Publication Date
CN110651256A CN110651256A (zh) 2020-01-03
CN110651256B true CN110651256B (zh) 2021-06-25

Family

ID=62555103

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880032731.0A Active CN110651256B (zh) 2017-06-09 2018-05-16 用于在软件更新期间防止服务中断的系统和方法

Country Status (4)

Country Link
US (2) US10191732B2 (zh)
EP (1) EP3635547B1 (zh)
CN (1) CN110651256B (zh)
WO (1) WO2018224900A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10599544B2 (en) * 2017-11-22 2020-03-24 International Business Machines Corporation Determining reboot times of computing nodes
US11513817B2 (en) 2020-03-04 2022-11-29 Kyndryl, Inc. Preventing disruption within information technology environments
US11599837B2 (en) 2020-12-30 2023-03-07 Microsoft Technology Licensing, Llc Method and system for selection of users in feature rollout
US11567754B2 (en) * 2021-03-01 2023-01-31 Vmware, Inc. Techniques for non-disruptive operating system upgrade
US11662993B2 (en) 2021-05-18 2023-05-30 Kyndryl, Inc. Autonomous management of temporal updates and rollbacks
US11829743B2 (en) 2021-09-29 2023-11-28 Microsoft Technology Licensing, Llc Method and system for providing customized rollout of features

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282712B1 (en) * 1995-03-10 2001-08-28 Microsoft Corporation Automatic software installation on heterogeneous networked computer systems
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US5919247A (en) * 1996-07-24 1999-07-06 Marimba, Inc. Method for the distribution of code and data updates
US6202207B1 (en) * 1998-01-28 2001-03-13 International Business Machines Corporation Method and a mechanism for synchronized updating of interoperating software
US6226747B1 (en) * 1998-04-10 2001-05-01 Microsoft Corporation Method for preventing software piracy during installation from a read only storage medium
US6167567A (en) * 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
US6490722B1 (en) * 1999-03-30 2002-12-03 Tivo Inc. Software installation and recovery system
EP1292892A4 (en) * 2000-04-14 2006-11-15 Goahead Software Inc SYSTEM AND METHOD FOR UPGRADING NETWORKED EQUIPMENT
US7574481B2 (en) * 2000-12-20 2009-08-11 Microsoft Corporation Method and system for enabling offline detection of software updates
US7191438B2 (en) * 2001-02-23 2007-03-13 Lenovo (Singapore) Pte, Ltd. Computer functional architecture and a locked down environment in a client-server architecture
US7584467B2 (en) * 2003-03-17 2009-09-01 Microsoft Corporation Software updating system and method
US7546594B2 (en) * 2003-12-15 2009-06-09 Microsoft Corporation System and method for updating installation components using an installation component delta patch in a networked environment
US7509636B2 (en) * 2003-12-15 2009-03-24 Microsoft Corporation System and method for updating files utilizing delta compression patching
US8005937B2 (en) * 2004-03-02 2011-08-23 Fatpot Technologies, Llc Dynamically integrating disparate computer-aided dispatch systems
US9026908B2 (en) * 2004-05-22 2015-05-05 Oracle International Corporation Systems and methods for providing simultaneous access to documents
US7546595B1 (en) * 2004-10-14 2009-06-09 Microsoft Corporation System and method of installing software updates in a computer networking environment
US7590653B2 (en) * 2005-03-02 2009-09-15 Cassatt Corporation Automated discovery and inventory of nodes within an autonomic distributed computing system
JP2006268172A (ja) * 2005-03-22 2006-10-05 Nec Corp サーバシステムおよびオンラインソフトウェア更新方法
US8522228B1 (en) * 2006-03-31 2013-08-27 Vmware, Inc. Updating software on dormant disks
US8266616B1 (en) * 2006-05-11 2012-09-11 Hewlett-Packard Development Company, L.P. Computer system provisioning using templates
US8521853B2 (en) * 2007-06-29 2013-08-27 Alcatel Lucent Apparatus and method for server network management to provide zero planned retrofit downtime
US8505005B1 (en) * 2007-07-24 2013-08-06 United Services Automobile Association (Usaa) Multi-platform network-based software distribution
US20090144720A1 (en) 2007-11-30 2009-06-04 Sun Microsystems, Inc. Cluster software upgrades
US8185884B2 (en) * 2008-06-23 2012-05-22 Novell, Inc. System and method for offline updation of software in virtual machine (VM) images
US8341619B2 (en) 2009-05-13 2012-12-25 Oracle International Corporation Simplifying installation of software modules on heterogeneous remote systems
US8887144B1 (en) * 2009-09-04 2014-11-11 Amazon Technologies, Inc. Firmware updates during limited time period
US8296756B1 (en) * 2009-11-06 2012-10-23 Southern Company Services, Inc. Patch cycle master records management and server maintenance system
US8612398B2 (en) * 2010-03-11 2013-12-17 Microsoft Corporation Clean store for operating system and software recovery
US8505003B2 (en) * 2010-04-28 2013-08-06 Novell, Inc. System and method for upgrading kernels in cloud computing environments
US9003389B2 (en) * 2010-05-25 2015-04-07 Red Hat, Inc. Generating an encoded package profile based on executing host processes
US9038048B2 (en) * 2010-07-22 2015-05-19 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for protecting applications from races
US8544007B2 (en) * 2010-09-13 2013-09-24 Microsoft Corporation Customization, deployment and management of virtual and physical machine images in an enterprise system
US8635271B1 (en) * 2010-10-01 2014-01-21 Google Inc. Method and system for maintaining client cache coherency in a distributed network system
US9262148B2 (en) 2011-09-12 2016-02-16 Microsoft Technology Licensing, Llc Modular architecture for distributed system management
CN103139245A (zh) * 2011-11-25 2013-06-05 中兴通讯股份有限公司 网元升级方法及装置
US9405526B2 (en) * 2012-08-07 2016-08-02 Microsoft Technology Licensing, Llc Initiating update operations
US9038060B2 (en) * 2012-10-02 2015-05-19 Nextbit Systems Inc. Automatically installing operating system specific to a detected network
US8780655B1 (en) * 2012-12-24 2014-07-15 Arm Limited Method and apparatus for aligning a clock signal and a data strobe signal in a memory system
US8893114B1 (en) * 2013-09-06 2014-11-18 Symantec Corporation Systems and methods for executing a software package from within random access memory
US9442715B2 (en) 2014-07-28 2016-09-13 Microsoft Technology Licensing, Llc Patch process ensuring high availability of cloud application
CN106201561B (zh) * 2015-04-30 2019-08-23 阿里巴巴集团控股有限公司 分布式缓存集群的升级方法与设备
US9798534B1 (en) * 2015-07-01 2017-10-24 EMC IP Holding Company LLC Method and system to perform non-intrusive online disk firmware upgrades
US10223104B2 (en) * 2016-06-10 2019-03-05 International Business Machines Corporation Optimizing a build process by scaling build agents based on system need
US9983988B1 (en) * 2016-06-23 2018-05-29 Amazon Technologies, Inc. Resuming testing after a destructive event
US10289401B1 (en) * 2016-12-30 2019-05-14 Juniper Networks, Inc Systems and methods for efficiently downgrading operating systems installed on network devices
US10496398B2 (en) * 2017-07-25 2019-12-03 Aurora Labs Ltd. Hot updates to ECU software using tool chain

Also Published As

Publication number Publication date
US20190087177A1 (en) 2019-03-21
EP3635547B1 (en) 2022-04-27
EP3635547A1 (en) 2020-04-15
CN110651256A (zh) 2020-01-03
US10191732B2 (en) 2019-01-29
US20180357061A1 (en) 2018-12-13
US10649765B2 (en) 2020-05-12
WO2018224900A1 (en) 2018-12-13

Similar Documents

Publication Publication Date Title
CN110651256B (zh) 用于在软件更新期间防止服务中断的系统和方法
AU2016359508B2 (en) Page jumping method and apparatus
CN108737270B (zh) 一种服务器集群的资源管理方法和装置
CN108388479B (zh) 延迟消息推送方法、装置、计算机设备及存储介质
CN108566290B (zh) 服务配置管理方法、系统、存储介质和服务器
US10491704B2 (en) Automatic provisioning of cloud services
US9383992B2 (en) Enterprise wide software version recommendation
EP3764220B1 (en) Automatic application updates
US20180034709A1 (en) Method and Device for Asset Information Management
CN113742031B (zh) 节点状态信息获取方法、装置、电子设备及可读存储介质
CN110730090B (zh) 云环境中代理端批量更新方法、装置、介质及电子设备
CN103118100A (zh) 一种提高虚拟机应用的可用性的保障方法及系统
CN109428926B (zh) 一种调度任务节点的方法和装置
CN109391658B (zh) 一种账号数据同步方法及其设备、存储介质、终端
CN108536541B (zh) 流程引擎对象处理方法及装置
CN106657195B (zh) 任务处理方法和中继设备
CN111831503B (zh) 一种基于监控代理的监控方法和监控代理装置
CN110943925A (zh) 一种路由信息同步的方法以及相关装置
EP3659033B1 (en) Connector leasing for long-running software operations
JP5445177B2 (ja) 確定クロック判定プログラム及び方法、並びにノード装置
CN113760319B (zh) 一种更新应用的方法和系统
CN111179097B (zh) 保单批改的方法、装置、电子设备和存储介质
US20150081886A1 (en) Data network device discovery optimization to reduce data transfer volume
US20190102225A1 (en) Information processing device, information processing method, and non-transitory computer-readable medium storing program
CN117076124A (zh) 一种资源管理装置、方法、电子设备及存储介质

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