CN110780912A - 利用分段支持的分层生成树软件补丁 - Google Patents

利用分段支持的分层生成树软件补丁 Download PDF

Info

Publication number
CN110780912A
CN110780912A CN201910653675.9A CN201910653675A CN110780912A CN 110780912 A CN110780912 A CN 110780912A CN 201910653675 A CN201910653675 A CN 201910653675A CN 110780912 A CN110780912 A CN 110780912A
Authority
CN
China
Prior art keywords
cluster
level
server
node
clusters
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
CN201910653675.9A
Other languages
English (en)
Other versions
CN110780912B (zh
Inventor
K.H.尤
A.A.默肯
T.D.菲茨西蒙斯
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 CN110780912A publication Critical patent/CN110780912A/zh
Application granted granted Critical
Publication of CN110780912B publication Critical patent/CN110780912B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种方法包括将节点分组为第一级集群。对于每个第一级集群,提升领导节点。对于具有超过预定阈值的大小的每个第一级集群,集群的节点被分组为第二级集群。对于每个第二级集群,提升领导节点。如果没有单个节点被信任来对其集群打补丁,则应用分段方案以使节点能够检查接收补丁的有效性。以分层方式应用该分组方案,直到发现所有集群的大小低于预定阈值。将软件补丁发送到第一级集群的领导节点,然后将软件补丁发送到下一级领导(如果有的话)或发送到相同集群内的所有其他节点。对于后续级,以分层方式完成补丁发送。

Description

利用分段支持的分层生成树软件补丁
技术领域
本发明一般涉及服务器-客户端网络,并且更具体地,涉及用于利用分段支持的分层生成树软件补丁的系统和方法。
背景技术
经常需要软件补丁来保持远程设备最新,这有助于防止诸如服务器-客户端网络的网络中的攻击的漏洞。黑客试图通过攻击过时设备的漏洞来利用那些设备。例如,黑客可能试图通过篡改在服务器-客户端网络中找到的特定设备的软件,跨网络注入、攻击和/或扩散恶意软件。示例设备包括网络交换机、用户计算机和物联网(Internet-of-Things,IoT)使能的设备,诸如家庭自动化设备、智能城市、传感器和其他设备。
大型网络中的软件补丁可能容易地变得难以管理并且容易受到攻击。目前,一些系统通过将补丁从单个服务器发送到大量节点来对网络的设备(例如,客户端节点)打补丁。然而,由于只有一台服务器负责更新所有节点,那些系统无法扩展以支持网络中的设备的数量的增加。这个问题在包括IoT设备的网络中被放大。此外,由于一些节点不可由服务器直接访问,所以在分发补丁时,服务器-客户端网络的一些节点(例如,私有子网、局域网、LAN等)可能对服务器来说难以触及。
发明内容
本发明的实施例提供了一种用于在服务器-客户端网络中对软件打补丁的计算机实现的方法。该计算机实现的方法的非限制性示例包括由服务器-客户端网络的服务器执行最小生成树(Minimum Spanning Tree,MST)算法,以将服务器-客户端网络的多个客户端节点分组为(group down into)多个第一级集群。对于多个第一级集群中的每个第一级集群,由服务器将第一级集群内的第一客户端节点提升(promote)为第一级集群的领导节点(leader node)。对于多个第一级集群中的、具有超过预定阈值大小的集群大小的每个第一级集群,由服务器执行MST算法以将第一级集群的非领导客户端节点分组为多个第二级集群。对于多个第二级集群中的每个第二级集群,由服务器将第二级集群内的第一客户端节点提升为第二级的领导节点。该方法包括由服务器向多个第一级集群的领导节点发送软件补丁,其中对于具有超过预定阈值大小的集群大小的、多个第一级集群的每个第一级集群,第一级集群的领导节点被配置为向第二级集群的领导节点发送软件补丁。
本发明的实施例提供了一种用于在服务器-客户端网络中对软件打补丁的系统。该系统包括至少一个服务器和多个客户端节点,其中服务器包括被配置为执行一种方法的一个或多个处理器。该方法的非限制性示例包括由服务器执行最小生成树(MST)算法,以将多个客户端节点分组为多个第一级集群。对于多个第一级集群中的每个第一级集群,由服务器将第一级集群内的第一客户端节点提升为第一级集群的领导节点。对于多个第一级集群中的、具有超过预定阈值大小的集群大小的每个第一级集群,由服务器执行MST算法以将第一级集群的非领导客户端节点分组为多个第二级集群。对于多个第二级集群中的每个第二级集群,由服务器将第二级集群内的第一客户端节点提升为第二级的领导节点。该方法包括由服务器向多个第一级集群的领导节点发送软件补丁,其中对于具有超过预定阈值大小的集群大小的、多个第一级集群的每个第一级集群,第一级集群的领导节点被配置为向第二级集群的领导节点发送软件补丁。
本发明的实施例提供了一种用于在服务器-客户端网络中对软件打补丁的计算机程序产品,该计算机程序产品包括具有实施在其中的程序指令的计算机可读存储介质。该程序指令可由具有一个或多个处理器的服务器-客户端网络的服务器执行,以使服务器执行一种方法。该方法的非限制性示例包括由服务器执行最小生成树(MST)算法,以将多个客户端节点分组为多个第一级集群。对于多个第一级集群中的每个第一级集群,由服务器将第一级集群内的第一客户端节点提升为第一级集群的领导节点。对于多个第一级集群中的、具有超过预定阈值大小的集群大小的每个第一级集群,由服务器执行MST算法以将第一级集群的非领导客户端节点分组为多个第二级集群。对于多个第二级集群中的每个第二级集群,由服务器将第二级集群内的第一客户端节点提升为第二级的领导节点。该方法包括由服务器向多个第一级集群的领导节点发送软件补丁,其中对于具有超过预定阈值大小的集群大小的、多个第一级集群的每个第一级集群,第一级集群的领导节点被配置为向第二级集群的领导节点发送软件补丁。
通过本发明的技术实现了附加的技术特征和益处。本发明的实施例和方面在本文中被详细描述,并且被视为要求保护的主题的一部分。为了更好地理解,请参考详细描述和附图。
附图说明
在说明书结论处的权利要求中具体指出并明确要求保护了本文描述的专利权的细节。根据结合附图的以下详细描述,本发明的实施例的前述和其他特征和优点是显而易见的,其中:
图1描绘了根据本发明的一个或多个实施例的云计算环境;
图2描绘了根据本发明的一个或多个实施例的抽象模型层;
图3描绘了能够实现本发明的一个或多个实施例的示例性计算机系统;
图4描绘了根据本发明的一个或多个实施例的示例分布式环境;
图5描绘了示出根据本发明的一个或多个实施例的用于对服务器-客户端网络中的节点打补丁的示例方法的流程图;
图6描绘了根据本发明的一个或多个实施例的示例生成树拓扑,其中网络被划分为初始级集群;
图7描绘了根据本发明的一个或多个实施例的另一示例生成树拓扑,其中网络被划分为初始级集群和第二级集群,并且其中领导节点用于初始级集群和第二级集群;
图8描绘了根据本发明的一个或多个实施例的另一示例生成树拓扑,其中网络被划分为初始级集群和第二级集群,并且其中为初始级集群和第二级集群分配了两个领导节点;
图9描绘了根据本发明的一个或多个实施例的另一示例生成树拓扑,其中网络被划分为初始级集群,并且其中为初始级集群分配了三个领导节点;并且
图10描绘了示出根据本发明的一个或多个实施例的另一示例方法的流程图。
本文描述的示图是说明性的。在不脱离本发明精神的情况下,可以对示图或其中描述的操作进行许多变化。例如,可以以不同的顺序执行动作,或者可以添加、删除或修改动作。此外,术语“耦合”及其变体描述了在两个元件之间具有通信路径,并且不暗示元件之间的直接连接而在它们之间没有中间元件/连接。所有这些变体都被视为说明书的一部分。
在所公开的实施例的附图和以下详细描述中,附图中示出的各种元件提供有两位或三位附图标记。除了少数例外(例如,图1-图2),每个附图标记的(多个)最左边位与其中它的元件被首先示出的图相对应。
具体实施方式
本文参考相关附图描述了本发明的各种实施例。在不脱离本发明的范围的情况下,可以设计本发明的替代实施例。在以下描述和附图中的元件之间阐述了各种连接和位置关系(例如,上方、下方、相邻等)。除非另有说明,这些连接和/或位置关系可以是直接的或间接的,并且本发明不意图在这方面是限制性的。因此,实体的耦合可以指直接或间接耦合,并且实体之间的位置关系可以是直接或间接的位置关系。此外,本文所述的各种任务和过程步骤可以并入具有本文未详细描述的附加步骤或功能的更全面的程序或过程中。
以下定义和缩写用于解释权利要求和说明书。如本文所使用的,术语“包括”、“包含”、“具有”或“含有”或其任何其他变体旨在覆盖非排他性的包括。例如,包括一列元件的组合物、混合物、过程、方法、物品或装置不一定仅限于那些元件,而是可以包括未明确列出的或这样的组合物、混合物、过程、方法、物品或装置固有的其他元件。
此外,本文使用术语“示例性”来意味着“用作示例、实例或例示”。本文描述为“示例性”的任何实施例或设计不一定被诠释为比其他实施例或设计更优选或更有利。术语“至少一个”和“一个或多个”可以理解为包括大于或等于一的任何整数,即一、二、三、四等。术语“多个”可以理解为包括大于或等于二的任何整数,即二、三、四、五等。术语“连接”可以包括间接“连接”和直接“连接”
术语“大约”、“基本上”、“近似”及其变体旨在包括与基于提交申请时可用的设备的特定量的测量相关联的误差程度。例如,“大约”可以包括给定值的±8%或5%或2%的范围。
为了简洁起见,本文可以详细描述或不详细描述与实现和使用本发明的方面相关的传统技术。具体地,实现本文描述的各种技术特征的计算系统和特定计算机程序的各种方面是众所周知的。因此,为了简洁,许多传统的实现细节在本文仅被简要提及或者被完全省略,而没有提供众所周知的系统和/或过程细节。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图1,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图1显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图2,其中显示了云计算环境50(图1)提供的一组功能抽象层。首先应当理解,图2所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图所示,提供下列层和对应功能:
硬件和软件层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。
现在转到与本发明的方面更具体相关的技术的概述,如上所述,经常需要软件补丁来保持远程设备最新(up-to-date),这有助于防止服务器-客户端网络中的攻击漏洞。黑客试图通过攻击过时设备的漏洞来利用那些设备。例如,黑客可能试图通过篡改在服务器-客户端网络中找到的特定设备的软件,跨网络注入、攻击和/或传播恶意软件。示例设备包括网络交换机、用户计算机、物联网(IoT)使能的设备,诸如家庭自动化设备、智能城市、传感器和其他设备。
大型网络中的软件补丁可能容易地变得难以管理并且容易受到攻击。目前,一些系统通过将补丁从单个服务器发送到大量节点来对网络的设备(例如,服务器-客户端网络的客户端节点)打补丁。然而,由于只有一台服务器负责更新所有节点,那些系统无法扩展以支持网络上的越来越多的设备。这个问题在包括IoT设备的网络中被放大。此外,由于一些节点不可由服务器直接访问,所以在分发补丁时,服务器-客户端网络的一些节点(例如,专用子网、局域网、LAN等)可能对服务器来说难以触及。
一些系统利用生成树拓扑来对网络上的节点进行聚类。然而,这些系统利用固定的软件存储库在每个集群中分发补丁,这意味着集群(例如,集群的单个节点)的单点攻击和故障可能导致整个集群的故障。此外,由于单个存储库用于对整个网络打补丁(例如,单个服务器对多个节点打补丁),服务器的网络资源负担沉重。例如,服务器可能没有足够的网络带宽、处理速度、存储器容量或其他系统资源在预定时间内对整个网络打补丁。随着集群大小增加,那些系统扩展得不太好。
一些系统利用分层聚类来并行处理任务,其中集群的配置针对正常工作流而动态配置。然而,那些系统没有考虑节点当中的关系,也没有基于那些关系对节点打补丁。
现在转向本发明的方面的概述,本发明的一个或多个实施例通过提供用于在服务器-客户端网络中对软件打补丁的生成树拓扑过程来解决现有技术的上述缺点。在本发明的一些实施例中,服务器-客户端网络包括至少一个服务器和多个客户端节点(例如,服务器-客户端网络的计算设备)。服务器将网络分解为多个集群,其中每个集群包括多个客户端节点。然后由服务器在每个集群中动态选择“领导”节点。服务器被配置为仅对每个集群的(多个)领导节点打补丁,而不对集群的其他节点打补丁。每个集群的领导的职责是对它们各自集群的其他节点打补丁。在本发明的一些实施例中,在集群的集群大小超过参数化阈值(例如,预定的最大节点数量)的情况下,集群被进一步划分为第二级集群。该划分重复,直到所有集群大小都低于参数化阈值。此外,在本发明的一些实施例中,在没有一个节点被完全信任来对整个集群打补丁的情况下(例如,节点可能有超过预定阈值的可能性被黑客攻击),可以在集群中提升多于一个领导,并且补丁将在相关联集群的多个领导节点当中被分段。非领导节点然后将与它们的相关联集群中的所有领导通信,以获得完整补丁。这允许集群的节点在接收补丁更新时针对领导执行自我检查,并且还减少领导必须传输到剩余节点的数据量。
本发明的上述方面通过提供一种能够以对大型网络高度可扩展的方式在服务器-客户端网络中对节点打补丁的系统来解决现有技术的缺点。由于服务器不负责直接对网络的每个节点打补丁,而是每个集群的一个或多个领导节点被分配来对它们的相关联集群的各个节点打补丁,因此服务器利用的计算资源减少了。在两个或更多个领导被分配给集群的情况下,领导必须传输到其他节点的数据量减少了,同时仍然允许每个节点在补丁更新中针对领导进行自我检查。对补丁的分段避免了给定集群中的单点攻击。
现在转到本发明的方面的更详细描述,图3示出了示出对实现本发明的一个或多个实施例有用的基于计算机的系统300的示例的高级框图。尽管示出了一个示例性计算机系统300,但是计算机系统300包括将计算机系统300连接到附加系统并且可以包括一个或多个广域网(Wide Area Network,WAN)和/或局域网(Local Area Network,LAN),诸如因特网、(多个)内联网和/或(多个)无线通信网络的通信路径326。计算机系统300和附加系统经由通信路径326进行通信(例如,以在它们之间通信传送数据)。
计算机系统300包括一个或多个处理器,诸如处理器302。处理器302连接到通信基础设施304(例如,通信总线、交叉杆(cross-over bar)或网络)。计算机系统300可以包括显示接口306,该显示接口306转发来自通信基础设施304(或来自未示出的帧缓冲器)的图形、文本和其他数据,用于在显示单元308上显示。计算机系统300还包括主存储器310,优选为随机存取存储器(Random Access Memory,RAM),并且还可以包括辅助存储器312。辅助存储器312可以包括例如硬盘驱动器314和/或可移动存储驱动器316,表示例如软盘驱动器、磁带驱动器或光盘驱动器。可移动存储驱动器316以本领域普通技术人员公知的方式从可移动存储单元318读取和/或向可移动存储单元318写入。可移动存储单元318表示例如软盘、光盘、磁带或光学盘等,其由可移动存储驱动器316读取和写入。可以理解,可移动存储单元318包括在其中存储有计算机软件和/或数据的计算机可读介质。
在本发明的一些替代实施例中,辅助存储器312可以包括用于允许计算机程序或其他指令被加载到计算机系统中的其他类似装置。这种装置可以包括例如可移动存储单元320和接口322。这种装置的示例可以包括程序包和包接口(诸如在视频游戏设备中找到的接口)、可移动存储芯片(诸如EPROM或PROM)和相关联的插座,以及允许软件和数据从可移动存储单元320传输到计算机系统300的其他可移动存储单元320和接口322。
计算机系统300还可以包括通信接口324。通信接口324允许软件和数据在计算机系统和外部设备之间传输。通信接口324的示例可以包括调制解调器、网络接口(诸如以太网卡)、通信端口或PCM-CIA插槽和卡等。经由通信接口324传输的软件和数据是信号的形式,该信号可以是例如电子信号、电磁信号、光学信号或能够由通信接口324接收的其他信号。这些信号经由通信路径(即信道)326被提供给通信接口324。通信路径326承载信号,并且可以使用电线或电缆、光纤、电话线、蜂窝电话链路、射频RF链路和/或其他通信信道而实现。
在本公开中,术语“计算机程序介质”、“计算机可用介质”和“计算机可读介质”通常用于指诸如主存储器310和辅助存储器312、可移动存储驱动器316和安装在硬盘驱动器314中的硬盘的介质。计算机程序(也称为计算机控制逻辑)存储在主存储器310和/或辅助存储器312中。计算机程序也可以经由通信接口324而被接收。这种计算机程序在运行时使得计算机系统能够执行本文讨论的本公开的特征。具体地,计算机程序在运行时使得处理器302能够执行计算机系统的特征。因此,这种计算机程序表示计算机系统的控制器。
现在参考图4,呈现了用于在服务器-客户端网络中对软件打补丁的示例分布式环境400。分布式环境400包括经由网络互连的多个客户端节点402(例如,计算设备)和服务器404。图4提供了利用生成树拓扑示出的仅一个示例系统的例示,并不暗示针对可以实现本发明的不同实施例的其他系统的任何限制。在不脱离由权利要求记载的本发明的范围的情况下,本领域技术人员可以对所描述的环境进行各种合适的修改。
在本发明的一些实施例中,服务器404是独立的计算设备、管理服务器、网络服务器、移动计算设备或能够接收、传送和处理数据的其他合适的电子设备和/或计算系统。在本发明的一些实施例中,服务器404是诸如在云计算环境50中利用多个计算机的服务器。在本发明的一些实施例中,服务器404是膝上型计算机、平板计算机、上网本计算机、个人计算机(Personal Computer,PC)、台式计算机、个人数字助理(Personal Digital Assistant,PDA)、智能电话或能够经由网络与分布式环境400内的客户端节点402和其他计算设备(未示出)通信的其他合适的可编程电子设备。在本发明的一些实施例中,服务器404是利用充当可在分布式环境400内访问的无缝资源的单个池的集群计算机和组件(例如,数据库服务器计算机、应用服务器计算机等)的计算系统。
如上所述,客户端节点402和服务器404被配置为通过网络进行通信。在本发明的一些实施例中,网络是电信网络、局域网(LAN)、广域网(WAN)(诸如因特网)、或三者的组合,并且可以包括有线、无线或光纤连接。在本发明的一些实施例中,网络包括能够接收和发送包括多媒体信号的数据、语音和/或视频信号的一个或多个有线和/或无线网络,其中该多媒体信号包括语音、数据和视频信息。一般来说,在本发明的一些实施例中,网络可以是可以支持分布式环境400内的客户端节点402、服务器404和/或其他计算设备(未示出)之间的通信的连接和协议的任何合适的组合。在本发明的一些实施例中,分布式环境400被实现为诸如云计算环境50(图1)的云计算环境的一部分。
每个客户端节点402表示服务器-客户端网络的客户端设备或组件。例如,在本发明的一些实施例中,客户端节点402是网络交换机、用户计算机、物联网(IoT)使能的设备,诸如家庭自动化设备,智能城市,传感器和能够执行应用、传送信息和/或从服务器404或其他节点接收信息的其他设备。每个客户端节点402包括可以被打补丁的软件。在本发明的一些实施例中,通过使用补丁命令和/或补丁文件来对每个客户端节点402的软件打补丁。在本发明的一些实施例中,客户端节点402各个是膝上型计算机、平板计算机、上网本计算机、个人计算机(PC)、台式计算机、个人数字助理(PDA)、智能电话、物联网(IoT)使能的设备和/或能够与分布式环境400内的各种组件和设备通信的其他合适的可编程电子设备。在本发明的一些实施例中,每个客户端节点402包括两个或更多个单独设备。在本发明的一些实施例中,每个客户端节点402是可编程电子移动设备、或能够执行机器可读程序指令并与分布式环境400内的其他计算设备(未示出)通信的可编程电子移动设备的组合。在本发明的一些实施例中,每个客户端节点402包括内部和外部硬件组件,诸如以上参考图3描绘和描述的那些组件。
如上所述,服务器404通常被配置为在服务器-客户端网络中对软件打补丁,其中在本发明的一些实施例中,服务器-客户端网络包括至少一个服务器和多个客户端节点(例如,服务器-客户端网络的计算设备)。如下面将参考图5-图10进一步详细解释的,服务器404将网络分解为多个集群,其中每个集群包括多个客户端节点。然后,由服务器404在每个集群中动态选择“领导”节点。服务器404被配置为向领导节点发送软件补丁。每个集群的领导被配置为对集群的其他节点打补丁。在本发明的一些实施例中,在集群的集群大小超过参数化阈值(例如,预定的最大节点数量)的情况下,集群被服务器404进一步划分为第二级集群。该划分重复,直到所有集群大小都低于参数化阈值。此外,在没有一个节点被完全信任来对整个集群打补丁的情况下(例如,节点可能有超过预定阈值的可能性被黑客攻击),可以在集群中提升多于一个领导,并且补丁然后在相关联集群的多个领导节点当中被分段。非领导节点然后将与它们的相关联集群中的所有领导通信,以获得完整补丁。
图5示出了根据本发明的一个或多个实施例的用于在服务器-客户端网络中对节点打补丁的示例方法500。在502处,服务器404执行最小生成树(MST)以对网络的客户端节点进行分组。具体地,服务器404执行MST算法以将网络中的所有节点分组为N0个集群,其中N是与集群数量相对应的参数,并且下标0表示第一级集群/初始级集群。图6示出了示出服务器404将网络划分为初始级的集群的示例的示例生成树拓扑600。
返回参考图5,在504处,服务器404为初始级(例如,第一集群级)处的每个集群确定集群的集群大小是否低于参数化阈值。在本发明的一些实施例中,参数化阈值是由用户设置和/或由服务器404确定的预定的最大节点数量。执行该检查以确保在步骤508中提升的任何节点都不会因为必须对集群的太多节点打补丁而负担过重。
在506处,如果确定处于初始级的集群不低于参数化阈值(例如,在给定集群中有太多节点),则然后服务器404执行MST算法以将该集群中的所有节点分组为Ni+1个集群,使得Ni+1个集群中的每一个的大小低于参数化阈值,其中i表示集群所属的级。图7示出了示例生成树拓扑700,其中服务器404将某个集群划分为第二级的集群,因为第一级的集群具有不低于参数化阈值(例如,最多三个节点)的集群大小。在本发明的一些实施例中,集群被细分的次数取决于分支因子b的值,其中对于N个节点,在层次结构中最多可以有logb(N)级。在本发明的一些实施例中,分支因子是二。
返回参考图5,在508处,服务器404基于诸如下面阐述的分段算法,为每个集群ci,n计算集群的领导计数ki,n,然后根据分段算法动态提升在组中的一个或多个领导,其中ci,n表示级i处的第n个集群的索引,其中下标n的范围为从0到Ni-1。给定集群中的领导的数量表示为ki,n。在本发明的一些实施例中,服务器404被配置为基于预定优先级来确定要提升给定集群的哪个节点,该预定优先级诸如哪个节点最靠近服务器404(例如,最短的相对物理距离、最短的网络跳数等)、哪个节点具有最低的相对延迟、哪个节点具有最高的相对带宽,和/或其他合适的优先级标准。例如,在本发明的一些实施例中,对于初始级集群(例如,第一级集群),服务器404被配置为如果集群的特定节点位于距服务器最短的距离处,则将该节点指定为领导节点。类似地,例如对于第二级集群,在本发明的一些实施例中,服务器404被配置为如果第二级集群的特定节点位于距第一级集群和/或服务器404的领导节点最短的距离处,则将该节点指定为领导节点。
如上所述,在508处,由服务器404确定每个集群中要提升多少领导节点以确保存在足够数量的领导节点。具体地,在本发明的一些实施例中,服务器404执行分段算法,该分段算法可以用来为每个集群ci,n计算ki,n个节点是否有高可能性足以对整个集群打补丁。例如,在本发明的一些实施例中,服务器404被配置为确定ki,n个节点有多不可能同时被黑客攻击。
以下是根据本发明的一个或多个实施例的用于确定ki,n个节点有多不可能将被黑客攻击的分段算法的例示性示例:
(1)从现有网络的历史收集诸如节点被黑客攻击的概率P的启发式数据;
(2)对于给定的网络(或者如果期望更细的粒度,则为网络内的集群),设置参数化置信水平C,以指示集群中有足够的领导的确定性,使得保证至少一个领导不被黑客攻击,这允许服务器404检测一个或多个领导何时被黑客攻击;
(3)计算x个节点被黑客攻击的概率:
P(x)=(N Choose x)*(1-P)N-x*Px
其中N是集群中的节点的总数;以及
(4)计算集群中最多x个节点被黑客攻击的概率,并且找到满足以下等式的最小X,其中X表示要在集群中使用的领导的数量:
Figure BDA0002136137290000141
以下是上述算法的例示性示例实现,其中集群大小N为100,并且节点被黑客攻击的概率P为2%或0.02:
a.将置信水平C设置为0.95,其表示至少一个领导不被黑客攻击的95%的目标置信度;
b.针对x的范围为0–100计算概率P(x):
P(0)=1*0.98100*0.020=0.1326
P(1)=100*0.9899*0.02=0.2706
P(2)=4950*0.9898*0.022=0.2734
……
c.将五个节点提升为领导,因为满足以下等式的最小X是五:
Figure BDA0002136137290000142
在本发明的一些实施例中,服务器404被配置为基于确定集群是否可以在预定的时间量内被打补丁来确定对于每个集群而言多少领导节点是足够的。例如,假设一个节点在给定时间只能发送或接收,并且对单个节点打补丁的时间为T秒(忽略开始/停止交易开销),如果集群中只有一个领导节点和N个接收节点,对集群打补丁的总时间TT为TT=N*T。如果集群中有两个领导节点和N个接收节点,对集群打补丁的总时间TT将为TT=(N/2)*(T/2)+(N/2)*(T/2)=N*T/2。如果分配一个领导来对集群中的第一节点子集打补丁,而分配第二个领导来并行地对集群中的第二节点子集打补丁,则对节点打一半补丁(half-patch)将花费时间为T/2,并且子集中只有N/2个节点。这样的打一半补丁过程需要(N/2)*(T/2)秒。在打一半补丁过程完成之后,领导将路由到下一个节点子集,并且重复该过程,这需要另一(N/2)*(T/2)秒,这导致对于具有两个领导节点的情况,总时间TT将为TT=N*T/2。因此,一般来说,如果对一个节点打补丁的时间为T秒,并且如果在给定集群中有L个领导和N个接收节点,那么总时间TT可以被计算为TT=N*T/L。在本发明的一些实施例中,服务器404计算为当前提升的领导执行补丁所估计的总时间,然后确定总时间是否超过预定的最大补丁时间。如果总时间超过预定的最大补丁时间,则为给定集群提升附加领导节点。
如图7中可以看到,生成树拓扑700示出了其中每个集群只有一个领导的两级集群被创建的示例实例。具体地,在第一集群级中创建一个集群c0,0,并且在第二集群级中创建两个集群c1,0和c1,1,其中第一级中的集群c0,0具有一个领导节点(k0,0=1),并且其中第二级中的集群c1,0和c1,1各自具有一个领导节点(k1,0=1,并且k1,1=1)。相反,图8示出了根据本发明的一个或多个实施例的另一示例生成树拓扑800,其中服务器404已经在第一集群级和第二集群级中的某些集群中提升了多于一个领导。具体地,在第一集群级中创建一个集群c0,0,并且在第二集群级中创建两个集群c1,0和c1,1,其中第一集群级中的集群c0,0具有两个领导节点(k0,0=2),并且第二集群级中的集群c1,1具有两个领导节点(k1,0=2,并且k1,1=1)。
在510处,软件补丁开始。对于n的范围为从0到N0-1的每个集群c0,n,服务器404被配置为将软件补丁划分为k0,n个片段,并且将每个片段分发到集群ci,n中的不同领导节点。如果k0,n等于一(即,如果给定集群只有一个领导),则整个软件补丁被发送到领导(即,没有片段)。如果集群中有两个或更多个领导,则创建两个或更多个片段(即,对于给定集群的每个领导,一个片段)。如在生成树拓扑800中可以看到,在该示例中,服务器404将软件补丁分段为两个片段,其中第一片段被发送到给定集群的第一领导节点,并且第二片段被发送到第二领导节点。
参考回图5,在512处,每个领导节点执行类似于以上步骤510的过程。具体地,对于i的范围为从1到I-1并且n的范围为从0到Ni-1,其中I表示网络中最高的集群级,ci-1,n的领导节点被配置为将软件补丁划分为ki,n个片段,然后将每个片段分发到ci,n中的不同领导。在514处,所有剩余节点然后从其相关联集群的领导取得补丁。
图9示出了根据本发明一个或多个实施例的另一示例生成树拓扑900,其中服务器404将给定集群的所有节点分配为集群的领导(例如,所有节点都是领导)。具体地,在第一集群级中创建一个集群c0,0,其中集群c0,0具有三个领导节点(k0,0=3)。服务器404将补丁文件分段为三个片段,并且将每个片段发送到相应节点。每个领导节点然后可以将其接收到的片段发送到集群中的其他节点。通过以这种方式分段补丁文件,如果某个节点被附接或故障,那么集群作为整体不会因为单个不可用的节点而故障。在本发明的一些实施例中,节点利用散列函数通过将散列与前一个和下一个片段进行比较来确保片段的安全性。
现在将参考图10描述服务器404的操作的附加细节,其中图10描绘了示出根据本发明的一个或多个实施例的方法1000的流程图。在1002处,由服务器-客户端网络的服务器执行MST算法,以将服务器-客户端网络的多个客户端节点分组为多个第一级集群。在1004处,对于多个第一级集群中的每个第一级集群,服务器将第一级集群内的第一客户端节点提升为第一级集群的领导节点。在本发明的一些实施例中,将第一级集群内的第一客户端节点提升为第一级集群的领导节点包括识别第一级集群的每个客户端节点的位置和服务器的位置,计算服务器的位置和第一级集群的每个客户端节点的位置之间的相对距离,然后选择到服务器的相对距离最短的客户端节点。
在1006处,对于多个第一级集群中的、具有超过预定阈值大小的集群大小的每个第一级集群,服务器执行MST算法以将第一级集群的非领导客户端节点分组为多个第二级集群。在1008处,对于多个第二级集群中的每个第二级集群,服务器将第二级集群内的第一客户端节点提升为第二级集群的领导节点。在1010处,由服务器将软件补丁发送到多个第一级集群的领导节点。对于多个第一级集群中的、具有超过预定阈值大小的集群大小的每个第一级集群,第一级集群的领导节点被配置为向第二级集群的领导节点发送软件补丁。
在本发明的一些实施例中,多个第二级集群中的每个第二级集群包括被配置为从第二级集群的领导节点取得软件补丁的非领导节点。
在本发明的一些实施例中,方法1000包括,对于多个第二级集群中的、具有超过预定阈值大小的集群大小的每个第二级集群,由服务器执行MST算法以将第二级集群的非领导客户端节点分组为多个第三级集群,然后对于多个第三级集群中的每个第三级集群,由服务器将第三级集群内的第一客户端节点提升为第三级集群的领导节点。在本发明的一些实施例中,多个第三级集群中的每个第三级集群包括被配置为从第三级集群的领导节点取得软件补丁的非领导节点。
在本发明的一些实施例中,方法1000包括,对于多个第一级集群中的至少一个第一级集群,由服务器进一步将至少一个第一级集群内的第二客户端节点提升为至少一个第一级集群的领导节点。在本发明的一些实施例中,通过服务器将软件补丁分段为第一部分和第二部分、将软件补丁的第一部分发送到至少一个第一级集群的第一客户端节点、并且将软件补丁的第二部分发送到至少一个第一级集群的第二客户端节点,来将软件补丁从服务器发送到多个第一级集群的领导节点。在本发明的一些实施例中,至少一个第一级集群的第一客户端节点被配置为将软件补丁的第一部分发送到多个第二级集群中的至少一个第二级集群的领导节点,并且至少一个第一级集群的第二客户端节点被配置为将软件补丁的第二部分发送到至少一个第二级集群的领导节点。
在任何可能的技术细节结合层面,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是--但不限于--电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以表示一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文描述的各实施例。

Claims (10)

1.一种用于在服务器-客户端网络中对软件打补丁的计算机实现的方法,所述计算机实现的方法包括:
由服务器-客户端网络的服务器执行最小生成树MST算法,以将服务器-客户端网络的多个客户端节点分组为多个第一级集群;
对于多个第一级集群中的每个第一级集群,由服务器将第一级集群内的第一客户端节点提升为第一级集群的领导节点;
对于多个第一级集群中的、具有超过预定阈值大小的集群大小的每个第一级集群,由服务器执行MST算法以将第一级集群的非领导客户端节点分组为多个第二级集群;
对于多个第二级集群中的每个第二级集群,由服务器将第二级集群内的第一客户端节点提升为第二级集群的领导节点;以及
由服务器向多个第一级集群的领导节点发送软件补丁,其中对于多个第一级集群中的、具有超过预定阈值大小的集群大小的每个第一级集群,第一级集群的领导节点被配置为向第二级集群的领导节点发送软件补丁。
2.根据权利要求1所述的计算机实现的方法,其中,多个第二级集群中的每个第二级集群包括被配置为从第二级集群的领导节点取得软件补丁的非领导节点。
3.根据权利要求1所述的计算机实现的方法,进一步包括:
对于多个第一级集群中的至少一个第一级集群,由服务器进一步将至少一个第一级集群内的第二客户端节点提升为该至少一个第一级的领导节点;
其中,将软件补丁从服务器发送到多个第一级集群的领导节点包括:
将软件补丁分段为第一部分和第二部分;
将软件补丁的第一部分发送到该至少一个第一级集群的第一客户端节点;以及
将软件补丁的第二部分发送到该至少一个第一级集群的第二客户端节点。
4.根据权利要求3所述的计算机实现的方法,其中,该至少一个第一级集群的第一客户端节点被配置为将软件补丁的第一部分发送到多个第二级集群中的至少一个第二级集群的领导节点,并且其中,该至少一个第一级集群的第二客户端节点被配置为将软件补丁的第二部分发送到至少一个第二级集群的领导节点。
5.根据权利要求1所述的计算机实现的方法,其中,将第一级集群内的第一客户端节点提升为第一级集群的领导节点包括:
识别第一级集群的每个客户端节点的位置和服务器的位置;
计算服务器的位置和第一级集群的每个客户端节点的位置之间的相对距离;以及
选择第一级集群中的、到服务器的相对距离最短的客户端节点。
6.根据权利要求1所述的计算机实现的方法,进一步包括:
对于多个第二级集群中的、具有超过预定阈值大小的集群大小的每个第二级集群,由服务器执行MST算法以将第二级集群的非领导客户端节点分组为多个第三级集群;以及
对于多个第三级集群中的每个第三级集群,由服务器将第三级集群内的第一客户端节点提升为第三级集群的领导节点。
7.根据权利要求6所述的计算机实现的方法,其中,多个第三级集群中的每个第三级集群包括被配置为从第三级集群的领导节点取得软件补丁的非领导节点。
8.一种计算机系统,包括:
处理器;以及
存储器,存储应用程序,其中所述应用程序在处理器上被执行时,执行根据权利要求1至7中任一项所述的方法的方法步骤。
9.一种计算机程序产品,包括具有实施在其中的程序指令的计算机可读存储介质,所述程序指令可由计算设备执行,以使计算设备执行根据权利要求1至7中任一项所述的方法的方法步骤。
10.一种包括模块的设备,所述模块被单独配置为执行根据权利要求1至7中任一项所述的方法的每个步骤。
CN201910653675.9A 2018-07-30 2019-07-19 利用分段支持的分层生成树软件补丁 Active CN110780912B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/048,702 2018-07-30
US16/048,702 US10776097B2 (en) 2018-07-30 2018-07-30 Hierarchical spanning tree software patching with fragmentation support

Publications (2)

Publication Number Publication Date
CN110780912A true CN110780912A (zh) 2020-02-11
CN110780912B CN110780912B (zh) 2023-05-19

Family

ID=69179335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910653675.9A Active CN110780912B (zh) 2018-07-30 2019-07-19 利用分段支持的分层生成树软件补丁

Country Status (2)

Country Link
US (1) US10776097B2 (zh)
CN (1) CN110780912B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11341328B2 (en) * 2018-11-30 2022-05-24 Hewlett Packard Enterprise Development Lp Dynamic grammar augmentation for editing multiple network switch configuration files as a single file
US11108640B2 (en) * 2018-12-20 2021-08-31 Advantest Corporation Controlling devices in a decentralized storage environment
US11119753B2 (en) 2019-05-06 2021-09-14 Paypal, Inc. Distributed autonomous patching system
US11645014B1 (en) * 2021-10-26 2023-05-09 Hewlett Packard Enterprise Development Lp Disaggregated storage with multiple cluster levels
US20230139509A1 (en) * 2021-10-29 2023-05-04 JFrog Ltd. Software release distribution across a hierarchical network

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120327766A1 (en) * 2011-06-24 2012-12-27 Cisco Technology, Inc. Level of hierarchy in mst for traffic localization and load balancing
CN103095804A (zh) * 2011-12-13 2013-05-08 微软公司 集群存储系统中的负载平衡
CN105703940A (zh) * 2015-12-10 2016-06-22 中国电力科学研究院 一种面向多级调度分布式并行计算的监控系统及监控方法
CN106170782A (zh) * 2013-04-26 2016-11-30 华为技术有限公司 用于在网络中的机器的大规模并行处理集群中创建高度可扩展的高可用性集群的系统和方法
US9626177B1 (en) * 2015-09-11 2017-04-18 Cohesity, Inc. Peer to peer upgrade management

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287180B1 (en) 2003-03-20 2007-10-23 Info Value Computing, Inc. Hardware independent hierarchical cluster of heterogeneous media servers using a hierarchical command beat protocol to synchronize distributed parallel computing systems and employing a virtual dynamic network topology for distributed parallel computing system
US20050028001A1 (en) 2003-07-29 2005-02-03 Jian Huang Secured software patching and upgrade method for densely deployed networks having spanning-tree topology
US8818787B2 (en) * 2011-01-31 2014-08-26 Yahoo! Inc. Method and system for predicting performance of software applications on prospective hardware architecture
US9645811B2 (en) * 2013-04-01 2017-05-09 Oc Acquisition Llc Fault tolerance for a distributed computing system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120327766A1 (en) * 2011-06-24 2012-12-27 Cisco Technology, Inc. Level of hierarchy in mst for traffic localization and load balancing
CN103095804A (zh) * 2011-12-13 2013-05-08 微软公司 集群存储系统中的负载平衡
CN106170782A (zh) * 2013-04-26 2016-11-30 华为技术有限公司 用于在网络中的机器的大规模并行处理集群中创建高度可扩展的高可用性集群的系统和方法
US9626177B1 (en) * 2015-09-11 2017-04-18 Cohesity, Inc. Peer to peer upgrade management
CN105703940A (zh) * 2015-12-10 2016-06-22 中国电力科学研究院 一种面向多级调度分布式并行计算的监控系统及监控方法

Also Published As

Publication number Publication date
US20200034132A1 (en) 2020-01-30
US10776097B2 (en) 2020-09-15
CN110780912B (zh) 2023-05-19

Similar Documents

Publication Publication Date Title
CN110780912B (zh) 利用分段支持的分层生成树软件补丁
US9672502B2 (en) Network-as-a-service product director
US9870580B2 (en) Network-as-a-service architecture
US11063815B2 (en) Building and fixing a dynamic application topology in a cloud based environment leveraging log file data
US20190147065A1 (en) Method and system for verification of deleted data for blockchains
US20190342391A1 (en) Requesting storage performance models for a configuration pattern of storage resources to deploy at a client computing environment
US10594781B2 (en) Dynamic healthchecking load balancing gateway
US9628505B2 (en) Deploying a security appliance system in a high availability environment without extra network burden
US10880172B2 (en) Optimization of cloud compliance services based on compliance actions
US9736272B2 (en) Generation and distribution of named, definable, serialized tokens
US11574254B2 (en) Adaptive asynchronous federated learning
US10623432B2 (en) Mitigating security risks utilizing continuous device image reload with data integrity
US10884885B2 (en) Proactively predicting failure in data collection devices and failing over to alternate data collection devices
US11017084B2 (en) Detection of malicious code fragments via data-flow isolation
US10901798B2 (en) Dependency layer deployment optimization in a workload node cluster
US20210406227A1 (en) Linking, deploying, and executing distributed analytics with distributed datasets
US20140068042A1 (en) Method and Apparatus for Accelerated Virtual Image Provisioning in Distributed Cloud Environments
US20170126484A1 (en) Providing recommended resolutions for events
US11153273B2 (en) Generating and managing names of instances
US11481502B2 (en) Technology for adaptive software discovery scan
US11119750B2 (en) Decentralized offline program updating
US20200089595A1 (en) Updating taint tags based on runtime behavior profiles
US10331650B2 (en) Updating web files based on detected legacy model file changes
US20180283884A1 (en) Synchronizing nodes at a meeting point
CN112135139A (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