为软件系统准备安装和更新技术方案

技术编号:16048861 阅读:50 留言:0更新日期:2017-08-20 08:32
本发明专利技术扩展到用于为软件系统准备安装和更新的方法、系统和计算机程序产品。本发明专利技术的各方面包括创建软件更新包,其可被选择以自动安装任何数量的软件组件的基本上任何数量的代码改变以更新软件系统(例如,云设备)。在一个方面中,软件更新包包括:对针对多个软件组件的代码改变的引用以及对用于安装代码改变的安装工件的引用,并且还指示多个软件组件之间的相互依赖性。在另一方面中,软件更新包包括对用于验证软件更新包使软件系统转换到目标状态的验证代码的引用。在再一方面中,软件更新包明确地指示在多遍安装过程中的不同遍期间,针对不同安装工件的安装工件引用将被处理。

【技术实现步骤摘要】
【国外来华专利技术】为软件系统准备安装和更新
技术介绍
1.背景和相关技术计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已经改变了我们生活和工作的方式。计算机系统现在通常执行在计算机系统出现之前被手动执行的大量任务(例如,文字处理、调度、会计等)。最近,计算机系统已经被彼此耦合并且被耦合到其他电子设备,以形成计算机系统和其他电子设备可以在其上传送电子数据的有线和无线计算机网络。因此,许多计算任务的执行跨多个不同的计算机系统和/或多个不同的计算环境被分布。为了执行计算任务,计算机系统运行软件。例如,为了提供文字处理功能,计算机系统运行文字处理软件(应用)。软件不断演进,以包括更新的功能,例如,以纠正错误、解决安全问题、添加特征等。软件开发者可以不时地向他们的软件发布包含更新的功能的更新。计算机系统用户可以在它们的计算机系统上安装更新,以向它们的软件添加更新的功能。在独立的计算环境中(例如,在家庭用户台式计算机上),安装更新是相对直截了当的过程。许多应用和操作系统已经内置了使用网络(例如,因特网)连接来确定更新何时可用的更新器(其他软件)。一些更新器在更新可用时自动警告用户(例如,通过用户界面)。其他更新器至少允许用户在他们需要时检查更新。当更新可用时,用户可以选择更新,并且更新器自动为用户安装更新。在云计算环境中,应用和操作系统在分布式和/或联网环境中被运行,如例如在公共和私有云中被运行。在云计算环境中,硬件可以被配置为虚拟机(“VM”)。可以为诸如管理、计算、存储和联网之类的不同功能分配虚拟机。管理VM可以包括向客户端或客户提供管理功能的各种不同的互操作管理软件应用。管理功能可以包括对管理VM、计算VM、存储VM和联网VM的配置、部署、监控和更新。不同的开发组可以拥有并负责维护不同的管理软件应用。因此,针对不同管理软件应用发布更新的时间安排可以变化。一些开发组可以按计划发布更新,并且其他开发组可以在自组织的基础上发布更新。即使当更新按计划被发布时,不同的开发组也可以有不同的计划。因此,在任何给定时间,一些不同数量和种类的管理软件应用更新可能可用于在云计算环境中运行的管理VM。云计算环境中的更新也可以被手动执行。管理员可以标识要安装的多个更新,手动制定安装计划(例如,如何关闭并启动系统,确定用于安装更新的指定的顺序等),并且然后根据安装计划来安装更新(例如,关闭并启动系统,以指定的顺序安装更新等)。然而,由于管理软件应用必须互操作但是经常由不同的组开发,所以对一个管理软件应用的更新可以导致另一管理软件应用以意外的方式操作。意外的操作可能由一个开发组不知道针对另一开发组的应用的要求、管理员的安装计划的问题等导致。在一些云计算环境中,软件和硬件由相同实体拥有(或至少在其控制之下)。例如,软件公司可能具有用于员工的私有云。私有云可以包括运行软件的各种硬件组件,包括由软件公司开发的各种不同的内插管理软件应用。在这些云计算环境中,技术人员和工程师可以(物理和虚拟地)完全访问硬件和软件。完全访问硬件和软件使技术人员和工程师更容易些地标识和解决管理VM处的操作问题。在其他云计算环境中,软件由一个实体开发,并且在由各种其他不同实体管理和控制的硬件上运行。例如,软件公司可以开发用于管理云计算环境中的VM的管理软件。管理软件可以包括许多不同的互操作管理软件应用。各种其他第三方(例如,其他公司)可以购买和运行不同互操作软件应用中的一些或全部来管理在它们控制下的硬件上运行的VM。一些第三方可以使用管理软件来管理在仅由公司使用的私有云中的VM。其他第三方可以使用管理软件来管理被转售给外部客户的VM。在一些环境中,第三方运行复杂的多节点私有云设备,其向多个租户提供基础架构即服务(“IaaS”)服务。在这些其他云计算环境中更新管理软件应用通常也由管理员手动执行。然而,在这些其他云计算环境中,标识和解决管理VM处的操作问题可能会困难得多。例如,不同的第三方可以在它们的硬件上安装管理软件应用的不同组合。不同的第三方也可以具有不同的更新组合,并且可能还安装了附加修复(第三方可能希望以自己的速度进行更新)。因此,即使第三方安装了相同的管理软件应用,管理软件应用也可能处于不同的更新并且可能安装了不同的修复。基于管理软件应用的数量以及针对每个管理软件应用的更新和应用的修复的数量,非常大量的不同组合是可能的。管理软件应用和更新(可能还有修复)的每个不同组合都可能导致不同的操作问题。组合的绝对数量可能使软件开发方的技术人员和工程师更加难以标识和解决第三方管理VM处的管理软件操作问题。例如,甚至可能难以标识用于管理VM的先前运行状态。另外,第三方可能限制对它们的软件、硬件和操作数据(例如,日志)的(物理和/或虚拟的)访问。例如,第三方可能不具有网络(例如,因特网)连通性。受限的访问可能是由于第三方或第三方的客户的要求。例如,如果医疗保健提供方是第三方云提供商的客户,则医疗保健提供方可能会限制那些可以访问患者医疗保健数据的人。具有对软件、硬件和数据中的一个或多个的受限访问进一步增加了技术人员和工程师在尝试标识和解决第三方管理VM处的管理软件操作问题时的困难。此外,第三方可能要求以不违反指定的服务水平协议(“SLA”)的方式执行更新。在管理软件应用提供方和第三方之间可以有一个SLA。这一SLA可以规定管理主管可以引发的最大停机时间。第三方与它的客户之间可以有另一SLA。这一另一SLA规定了客户对于其资产将面临的最大停机时间。因此,任何更新以及任何必要的故障排除无法在一个或两个SLA下不造成成本的情况下关闭第三方的管理VM达任何大量时间。以不违反客户SLA的方式安装软件更新增加了安装复杂性。
技术实现思路
本专利技术扩展到用于为软件系统准备安装和更新的方法、系统和计算机程序产品。各种不同的开发组管理用于软件系统(例如,云设备)的多个对应(以及可能是互操作的)软件组件(例如,应用、操作系统等)的代码的开发。每个不同的开发组可以在不同和变化的时间发布用于它们的一个或多个对应软件组件的代码改变(例如,更新和/或修复)。本专利技术的各方面包括创建软件更新包,其可被选择以自动用于安装任何数量的软件组件的基本上任何数量的代码改变以更新软件系统。在一个方面中,软件更新包包括:对针对多个软件组件的代码改变的引用以及对用于安装代码改变的安装工件的引用,并且还指示多个软件组件之间的相互依赖性。在另一方面中,软件更新包包括对用于验证软件更新包已经将软件系统转换到目标状态的验证代码的引用。在又一方面中,软件更新包明确地指示在用于更新软件系统的多遍安装过程中的不同遍期间,针对不同安装工件的安装工件引用将被处理。本专利技术的附加特征和优点将在下面的描述中被阐述,并且部分地将从描述中显而易见,或者可以通过本专利技术的实践而被了解。本专利技术的特征和优点可以通过所附权利要求中特别指出的仪器和组合而被实现和获得。根据以下描述和所附权利要求,本专利技术的这些和其它特征将变得更加显而易见,或者可以通过如在下文中阐述的本专利技术的实践而被了解。附图说明为了描述可以获得本专利技术的上述和其它优点和特征的方式,将通过参考在附图中示出的其具体实现方式来提供对上面简要描述的本专利技术的更具体的描述。理解这些附图仅描绘了本专利技术的一些本文档来自技高网
...
为软件系统准备安装和更新

【技术保护点】
一种用于在计算机系统处使用的方法,所述方法用于生成软件更新包,所述软件更新包用于使云设备在不必通过任何中间状态更新的情况下、从一个或多个先前状态中的任何先前状态直接更新到目标状态,所述云设备运行多个互操作的软件组件,所述多个软件组件中的每个软件组件由不同的对应管理开发组维护,所述方法包括:构建系统将在不同时间发布的对所述多个互操作软件组件的代码改变合并成所述软件更新包,所述软件更新包用于在客户设备处进行处理以在所述客户设备处将多个代码改变共同地安装到所述云设备,所述构建系统通过以下来合并代码改变:收集用于更新所述云设备的所述代码改变,所述代码改变包括针对所述多个互操作软件组件中的每个互操作软件组件的一个或多个代码改变,针对每个软件组件的所述一个或多个代码改变已经由用于所述软件组件的管理开发组发布;为所述云设备创建所述软件更新包,包括:为软件更新包版本制定物料凭单(BOM),所述软件更新包版本是用于更新所述云设备的多个软件更新包版本的线性进展中的下一版本,所述线性进展中的一个或多个先前版本对应于一个或多个先前状态,所述物料凭单(BOM)指示对所述云设备的适用性以及如何访问所述代码改变;制定清单,所述清单:包括对用于安装所述多个代码改变的管理工件的引用;并且指示来自所述多个代码改变之中的代码改变之间的相互依赖性;以及将所述凭单或物料和清单包括在所述软件更新包中;以及使所述软件更新包可用,从而使得运行所述云设备的实体能够使所述云设备从一个或多个先前状态中的任何先前状态更新到目标状态。...

【技术特征摘要】
【国外来华专利技术】2014.10.27 US 14/525,1761.一种用于在计算机系统处使用的方法,所述方法用于生成软件更新包,所述软件更新包用于使云设备在不必通过任何中间状态更新的情况下、从一个或多个先前状态中的任何先前状态直接更新到目标状态,所述云设备运行多个互操作的软件组件,所述多个软件组件中的每个软件组件由不同的对应管理开发组维护,所述方法包括:构建系统将在不同时间发布的对所述多个互操作软件组件的代码改变合并成所述软件更新包,所述软件更新包用于在客户设备处进行处理以在所述客户设备处将多个代码改变共同地安装到所述云设备,所述构建系统通过以下来合并代码改变:收集用于更新所述云设备的所述代码改变,所述代码改变包括针对所述多个互操作软件组件中的每个互操作软件组件的一个或多个代码改变,针对每个软件组件的所述一个或多个代码改变已经由用于所述软件组件的管理开发组发布;为所述云设备创建所述软件更新包,包括:为软件更新包版本制定物料凭单(BOM),所述软件更新包版本是用于更新所述云设备的多个软件更新包版本的线性进展中的下一版本,所述线性进展中的一个或多个先前版本对应于一个或多个先前状态,所述物料凭单(BOM)指示对所述云设备的适用性以及如何访问所述代码改变;制定清单,所述清单:包括对用于安装所述多个代码改变的管理工件的引用;并且指示来自所述多个代码改变之中的代码改变之间的相互依赖性;以及将所述凭单或物料和清单包括在所述软件更新包中;以及使所述软件更新包可用,从而使得运行所述云设备的实体能够使所述云设备从一个或多个先前状态中的任何先前状态更新到目标状态。2.根据权利要求1所述的方法,还包括:形成包括一个或多个管理工件的有效载荷;以及将所述有效载荷包括在所述软件更新包中;并且其中包括对用于安装所述多个代码改变的管理工件的引用包含包括对所述有效载荷的引用。3.根据权利要求1所述的方法,其中使所述软件更新包可用包括将所述软件更新包存储在网络位置处,所述网络位置对于运行所述云设备的所述实体可访问。4.根据权利要求1所述的方法,其中包括对用于安装所述多个代码改变的管理工件的引用的所述清单包含包括对以多遍安装过程中的指定遍为目标的管理工件的引用的所述清单。5.一种用于在计算机系统处使用的方法,所述方法用于生成在将云设备更新到目标状态时降低安装复杂度的软件更新包,所述云设备运行多个互操作的软件组件,所述多个软件组件中的每个软件组件由不同的对应管理开发组维护,所述方法包括:构建系统将对所述多个互操作软件组件的代码改变合并成所述软件更新包,所述软件更新包用于在客户设备处进行处理以在所述客户设备处将多个代码改变共同地安装到所述云设备,所述构建系统通过以下来合并代码改变:收集用于更新所述云设备的多个代码改变,所述多个代码改变包括针对所述多个软件组件中的每个软件组件的一个或多个代码改变,针对每个软件组件的所述一个或多个代码改变已经由针对所述软件组件的管理开发组发布;为所述云设备创建软件更新包,所述软件更新包用于安装使所述云设备达到所述目标状态的所述多个代...

【专利技术属性】
技术研发人员:S·帕塔萨拉斯J·S·扎贝尔M·R·佩恩塔K·I·阿布拉汉姆S·J·克拉克杭浩捷M·M·霍尔希德F·塞拉西尼J·R·因卡纳托
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1