CN107220120A - 用于递送软件解决方案的方法和装置 - Google Patents

用于递送软件解决方案的方法和装置 Download PDF

Info

Publication number
CN107220120A
CN107220120A CN201610162398.8A CN201610162398A CN107220120A CN 107220120 A CN107220120 A CN 107220120A CN 201610162398 A CN201610162398 A CN 201610162398A CN 107220120 A CN107220120 A CN 107220120A
Authority
CN
China
Prior art keywords
strategy
software
software solution
hardware resource
strategy set
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.)
Pending
Application number
CN201610162398.8A
Other languages
English (en)
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.)
EMC Corp
Original Assignee
EMC 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 EMC Corp filed Critical EMC Corp
Priority to CN201610162398.8A priority Critical patent/CN107220120A/zh
Priority to US15/464,300 priority patent/US20170269905A1/en
Publication of CN107220120A publication Critical patent/CN107220120A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/5055Allocation 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 software capabilities, i.e. software resources associated or available to the machine

Landscapes

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

Abstract

本发明的实施方式提供了一种用于递送软件解决方案的方法和装置。该方法包括:接收与软件解决方案相关联的硬件需求和软件需求;根据该硬件需求和该软件需求,基于预定义的策略集合来确定硬件资源以及与软件解决方案相关联的递送内容;从硬件资源池中获取所确定的硬件资源;以及向该硬件资源递送该递送内容。本发明的实施方式利用预定义的策略集合来确定将向其递送软件解决方案的硬件资源以及与待递送的软件解决方案相关联的递送内容,从而提供了自动化的软件解决方案递送过程。

Description

用于递送软件解决方案的方法和装置
技术领域
本发明的实施方式涉及计算机领域,并且更具体地,涉及用于向硬件资源递送软件解决方案的方法和装置。
背景技术
在向终端用户提供产品时,产品制造商通常需要根据终端用户的需求从硬件资源池中获取终端用户所需的硬件资源,在所获取的硬件资源上部署所需的软件解决方案,并且随后在所部署的软件解决方案上进行相关测试,以确保终端用户的正常使用。
目前,上述硬件资源的获取过程以及软件解决方案的部署和测试过程中的至少一个过程是由制造商手动完成的,因而效率是很低的。
发明内容
因此,为了解决一个或多个现有技术中存在的问题,需要一种高效地向硬件资源递送软件解决方案的技术方案。
根据本发明实施方式的第一方面,提供了一种用于递送软件解决方案的方法。该方法包括:接收与该软件解决方案相关联的硬件需求和软件需求;根据该硬件需求和该软件需求,基于预定义的策略集合来确定硬件资源以及与该软件解决方案相关联的递送内容;从硬件资源池中获取所确定的硬件资源;以及向该硬件资源递送该递送内容。
在一些实施方式中,接收与该软件解决方案相关联的硬件需求和软件需求包括:分别接收与第一软件解决方案相关联的硬件需求和软件需求、以及与第二软件解决方案相关联的硬件需求和软件需求,该第一软件解决方案不同于该第二软件解决方案。
在一些实施方式中,该预定义的策略集合包括预定义的第一策略集合和第二策略集合,该第一策略集合不同于该第二策略集合;该方法进一步包括:分别向该第一软件解决方案和该第二软件解决方案指派该第一策略集合和该第二策略集合;并且其中基于预定义的策略集合来确定硬件资源以及与该软件解决方案相关联的递送内容包括:分别基于该第一策略集合和该第二策略集合来确定针对该第一软件解决方案的硬件资源和递送内容、以及针对该第二软件解决方案的硬件资源和递送内容。
在一些实施方式中,该预定义的策略集合包括全局的策略集合;并且其中基于预定义的策略集合来确定硬件资源以及与该软件解决方案相关联的递送内容包括:基于该全局的策略集合来分别确定针对该第一软件解决方案的硬件资源和递送内容、以及针对该第二软件解决方案的硬件资源和递送内容。
在一些实施方式中,该策略集合包括多个策略,该多个策略中的每一个包括属性集合与递送内容之间的映射关系,该属性集合中的每个属性表示与待递送的软件解决方案相关联的硬件需求或软件需求。
在一些实施方式中,该多个策略至少包括第一策略以及与该第一策略不同的第二策略。
在一些实施方式中,该属性集合中的每个属性被赋予权重;其中基于预定义的策略集合来确定硬件资源以及与该软件解决方案相关联的递送内容包括:将所接收的硬件需求和软件需求分别与该第一策略和该第二策略进行比较;基于该比较,分别针对该第一策略和该第二策略确定与所接收的硬件需求和软件需求相匹配的属性的权重的总和;响应于针对该第一策略的权重的总和大于针对该第二策略的权重的总和,基于该第一策略来确定该硬件资源和该递送内容。
根据本发明实施方式的第二方面,提供了一种用于递送软件解决方案的装置。该装置包括:需求处理单元,被配置为接收与该软件解决方案相关联的硬件需求和软件需求,并且根据该硬件需求和该软件需求,基于预定义的策略集合来确定硬件资源以及与该软件解决方案相关联的递送内容;硬件资源管理单元,被配置为从硬件资源池中获取所确定的硬件资源;以及递送单元,被配置为向该硬件资源递送该递送内容。
在一些实施方式中,该需求处理单元被进一步配置为:分别接收与第一软件解决方案相关联的硬件需求和软件需求、以及与第二软件解决方案相关联的硬件需求和软件需求,该第一软件解决方案不同于该第二软件解决方案。
在一些实施方式中,该预定义的策略集合包括预定义的第一策略集合和第二策略集合,该第一策略集合不同于该第二策略集合;该需求处理单元被进一步配置为:分别向该第一软件解决方案和该第二软件解决方案指派该第一策略集合和该第二策略集合;并且分别基于该第一策略集合和该第二策略集合来确定针对该第一软件解决方案的硬件资源和递送内容、以及针对该第二软件解决方案的硬件资源和递送内容。
在一些实施方式中,该预定义的策略集合包括全局的策略集合;并且其中该需求处理单元被进一步配置为:基于该全局的策略集合来分别确定针对该第一软件解决方案的硬件资源和递送内容、以及针对该第二软件解决方案的硬件资源和递送内容。
在一些实施方式中,该策略集合包括多个策略,该多个策略中的每一个包括属性集合与递送内容之间的映射关系,该属性集合中的每个属性表示与待递送的软件解决方案相关联的硬件需求或软件需求。
在一些实施方式中,该多个策略至少包括第一策略以及与该第一策略不同的第二策略。
在一些实施方式中,该属性集合中的每个属性被赋予权重;其中该需求处理单元被进一步配置为:将所接收的硬件需求和软件需求分别与该第一策略和该第二策略进行比较;基于该比较,分别针对该第一策略和该第二策略确定与所接收的硬件需求和软件需求相匹配的属性的权重的总和;响应于针对该第一策略的权重的总和大于针对该第二策略的权重的总和,基于该第一策略来确定该硬件资源和该递送内容。
根据本发明实施方式的第三方面,提供了一种服务器,包括:一个或多个处理器;存储有计算机程序指令的存储器,当由该一个或多个处理器执行该计算机程序指令时使得该服务器执行根据本发明实施方式的方法。
根据本发明实施方式的第四方面,提供了一种计算机程序产品,包括计算机程序指令,当由计算设备执行该计算机程序指令时使得该计算设备执行根据本发明实施方式的方法。
本发明的实施方式利用预定义的策略集合来确定将向其递送软件解决方案的硬件资源以及与待递送的软件解决方案相关联的递送内容,从而提供了自动化的软件解决方案递送过程。
附图说明
结合附图并参考以下详细说明,本发明的各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施方式。在附图中:
图1示出了本发明的实施方式可以实现于其中的示例性环境的框图;
图2示出了根据本发明的一个实施方式的用于递送软件解决方案的方法的流程图;
图3示出了软件需求和硬件需求的示例;
图4示出根据本发明的一个实施方式的用于递送软件解决方案的装置的框图;
图5示出了根据本发明实施方式的用于递送软件解决方案的装置的架构图;以及
图6示出了一个可以用来实施本发明实施方式的设备的示意性框图。
具体实施方式
下面将参考附图中示出的若干示例实施方式来描述本发明的原理。应当理解,描述这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
为了提高向硬件资源递送软件解决方案的效率,本发明的实施方式提供了一种通过策略驱动来向硬件资源递送软件解决方案的技术方案。
图1示出了本发明的实施方式可以实现于其中的示例性环境100的框图。如图1所示,环境100包括软件管理单元110和硬件资源管理单元120。
软件管理单元110被配置为从终端用户接收与待递送的软件解决方案相关联的需求111。需求111可以包括与该软件解决方案相关联的软件需求和硬件需求。软件管理单元110被进一步配置为根据需求111,基于预定义的策略集合来确定将要向其递送软件解决方案的硬件资源。
此外,软件管理单元110还被配置为与硬件资源管理单元120进行通信,以使得硬件资源管理单元120从硬件资源池121中获取所确定的硬件资源,例如硬件资源122。在一些实施方式中,硬件资源池121中的硬件资源可以包括聚合基础设施(Converged Infrastructure,CI)资源。在另一些实施方式中,硬件资源池121中的硬件资源可以包括定制的资源。
另外,软件管理单元110还被配置为基于预定义的策略集合来确与该软件解决方案相关联的递送内容,并且向所获取的硬件资源122递送该递送内容。
图2示出了根据本发明的一个实施方式的用于递送软件解决方案的方法200的流程图。在一些实施方式中,方法200可以由图1中所示出的软件管理单元110和硬件资源管理单元120来实施。因此,在下文中将参照图2并借助于图1所示的示例性环境100,详细描述根据本发明的实施方式的用于递送软件解决方案的方法。
如图2所示,在步骤S210,软件管理单元110从终端用户接收与待递送的软件解决方案相关联的需求111。需求111可以包括与待递送的软件解决方案相关联的软件需求和硬件需求。
作为一个示例,与待递送的软件解决方案相关联的软件需求可以包括待递送的软件解决方案的名称,例如人力资源管理方案、财务管理方案等。
作为一个示例,与待递送的软件解决方案相关联的硬件需求可以包括所需的硬件资源的型号(model)名称,例如Quanta(广达)、Rinjin等。此外,与待递送的软件解决方案相关联的硬件需求还可以包括计算需求和存储需求,例如对于CPU的需求和存储容量的需求。
可以理解,软件解决方案通常包括多个软件包。就此而言,与待递送的软件解决方案相关联的软件需求可以包括软件解决方案中的软件包的名称,例如Apache Server 1.0、MySQL Database 2.1等。
继续参照图2,在步骤S220,软件管理单元110根据与待递送的软件解决方案相关联的硬件需求和软件需求,基于预定义的策略集合来确定硬件资源以及与软件解决方案相关联的递送内容。作为一个示例,可以采用策略数据库来维护和管理预定义的策略集合。
在一些实施方式中,与软件解决方案相关联的递送内容包括部署(deployment)内容。部署内容的示例包括但是不限于:部署脚本的集合、与部署脚本相关联的软件包、以及配置文件。
在一些实施方式中,与软件解决方案相关联的递送内容还包括测试内容。测试内容的示例包括但是不限于:测试脚本的集合、顺序文件(sequence file)以及相关的可执行文件。
在一些实施方式中,预定义的策略集合可以是特定于待递送的软件解决方案。换言之,针对不同的软件解决方案采用不同的策略集合,从而可以避免出现同一需求与多个策略项匹配的情况。
具体而言,接收与软件解决方案相关联的硬件需求和软件需求可以包括:分别接收与第一软件解决方案相关联的硬件需求和软件需求、以及与第二软件解决方案相关联的硬件需求和软件需求,第一软件解决方案不同于第二软件解决方案。预定义的策略集合可以包括预定义的第一策略集合和第二策略集合,并且第一策略集合不同于第二策略集合。由此,方法200可以进一步包括分别向第一软件解决方案和第二软件解决方案指派第一策略集合和第二策略集合,并且基于预定义的策略集合来确定硬件资源以及与软件解决方案相关联的递送内容包括:分别基于第一策略集合和第二策略集合来确定针对第一软件解决方案的硬件资源和递送内容、以及针对第二软件解决方案的硬件资源和递送内容。
根据本发明的实施方式,多个策略中的每一个策略包括属性集合与递送内容之间的映射关系,该属性集合中的每个属性表示与待递送的软件解决方案相关联的硬件需求或软件需求。
可以理解,在实际应用中,终端用户可以采用任何适当的方式来向产品制造商提出与所需的软件解决方案相关联的软件需求和硬件需求。例如,终端用户可以采用订单的方式来提出该软件需求和硬件需求,如图3所示。
图3所示的订单包括订单编号。应当理解,在该示例中,订单编号被预先与待递送的软件解决方案相关联。由此,订单编号隐含地指明了待递送的软件解决方案。可替换地,取代订单编号,可以通过采用待递送的软件解决方案的名称而在订单中显式地指明待递送的软件解决方案。
图3所示的订单还包括多个订单项目。多个订单项目中的每一个包括所需的硬件资源的型号名称(例如Quanta或Rinjin)和将要向该硬件资源递送的软件包的名称(Apache Server 1.0或MySQL Database2.1)
在下文中将结合图3并参照以下的表1至表4来描述其中预定义的策略集合是特定于待递送的软件解决方案的实施方式。
表1
表2
表3
表4
待递送的软件解决方案的名称(未示出)例如可以为“人力资源管理方案”。如以上参照图3所描述的,订单编号可以预先与待递送的软件解决方案相关联。由此,表1至表4中的订单编号“12345”隐含地指明了待递送的软件解决方案。因而,表1至表4示出了特定于订单编号“12345”(即,特定于“人力资源管理方案”)的策略集合的示例,其中表1至表4中的每一个示出了该策略集合中的一个策略。
根据本发明的实施方式,多个策略中的每一个策略包括属性集合与递送内容之间的映射关系,该属性集合中的每个属性表示与待递送的软件解决方案相关联的硬件需求或软件需求。
例如,如表2所示的策略包括由属性“Model”、“Order No.”和“Package”构成的属性集合,其中属性“Model”表示与待递送的软件解决方案相关联的硬件需求,属性“Order No.”和“Package”表示与待递送的软件解决方案相关联的软件需求。
此外,如表2所示,递送内容可以包括部署内容,例如ApacheHigh_1.2。另外,如表2所示,递送内容还可以包括测试内容,例如ApacheTest_1.1。再者,递送内容还可以可选地包括与操作系统(OS)相关的内容,例如Ubuntu。应当理解,策略中可以不包括与操作系统相关的内容。在此情况下,可以根据硬件资源的型号来向硬件资源加载缺省的操作系统。
在一些实施方式中,预定义的策略集合可以不是特定于待递送的软件解决方案,而是全局的策略集合。换言之,针对不同的软件解决方案采用相同的策略集合。在此情况下,基于预定义的策略集合来确定硬件资源以及与软件解决方案相关联的递送内容包括:基于全局的策略集合来分别确定针对第一软件解决方案的硬件资源和递送内容、以及针对第二软件解决方案的硬件资源和递送内容。在一些实施方式中,多个策略至少包括第一策略以及与所述第一策略不同的第二策略,并且每个策略的属性集合中的每个属性可以被赋予权重。
在此情况下,基于预定义的策略集合来确定硬件资源以及与软件解决方案相关联的递送内容包括:将所接收的硬件需求和软件需求分别与第一策略和所述第二策略进行比较;基于该比较,分别针对第一策略和第二策略确定与所接收的硬件需求和软件需求相匹配的属性的权重的总和;响应于针对第一策略的权重的总和大于针对第二策略的权重的总和,基于第一策略来确定该硬件资源和递送内容。
举例而言,第一策略包括如表2所示的策略,并且第二策略包括如表4所示的策略。表2所示的策略的属性“Model”、“Order No.”和“Package”可以被分别赋予权重0.2、0.3和0.5。表4所示的策略的属性“Model”、“Order No.”和“Package”可以被分别赋予权重0.3、0.4和0.3。
例如,如果所接收的硬件需求和软件需求分别为“Model=Quanta”、“Package=Apache Server 1.0”,那么在确定采用如表2所示的策略还是采用如表4所示的策略来确定硬件资源和递送内容时可以执行以下操作:将所接收的硬件需求和软件需求分别与如表2所示的策略和如表4所示的策略进行比较;基于该比较,针对表2的策略,确定与所接收的需求相匹配的属性的权重的总和为0.7(0.2+0.5),而针对表4的策略,确定与所接收的需求相匹配的属性的权重的总和为0.6(0.3+0.3);响应于针对表2所示策略的权重的总和大于针对表4所示策略的权重的总和,基于表2所示的策略来确定硬件资源和递送内容。
由此,在采用全局的策略集合的实施方式中,通过为每个策略的每个属性赋予权重,可以避免出现同一需求与多个策略项匹配的情况。
应当理解,以上所描述的特定于待递送的软件解决方案的策略集合以及全局的策略集合仅仅是预定义的策略集合的具体示例。根据具体的应用场景,制造商可以预先定义除了以上所描述的策略集合之外的任何适当的策略集合,本发明实施方式的范围在此方面不受限制。
继续参照图2,在步骤S230,硬件资源管理单元120从硬件资源池121中获取所确定的硬件资源。在步骤S240,软件管理单元110向所确定的硬件资源递送所确定的递送内容。
图4示出根据本发明的一个实施方式的用于递送软件解决方案的装置400的框图。在一些实施方式中,装置400可以在图1所示的环境100中实施。
如图4所示,装置400包括需求处理单元410,被配置为接收与该软件解决方案相关联的硬件需求和软件需求,并且根据该硬件需求和该软件需求,基于预定义的策略集合来确定硬件资源以及与该软件解决方案相关联的递送内容;硬件资源管理单元420,被配置为从硬件资源池中获取所确定的硬件资源;以及递送单元430,被配置为向该硬件资源递送该递送内容。
在一些实施方式中,需求处理单元410被进一步配置为:分别接收与第一软件解决方案相关联的硬件需求和软件需求、以及与第二软件解决方案相关联的硬件需求和软件需求,该第一软件解决方案不同于该第二软件解决方案。
在一些实施方式中,该预定义的策略集合包括预定义的第一策略集合和第二策略集合,该第一策略集合不同于该第二策略集合;需求处理单元410被进一步配置为:分别向该第一软件解决方案和该第二软件解决方案指派该第一策略集合和该第二策略集合;并且分别基于该第一策略集合和该第二策略集合来确定针对该第一软件解决方案的硬件资源和递送内容、以及针对该第二软件解决方案的硬件资源和递送内容。
在一些实施方式中,该预定义的策略集合包括全局的策略集合;并且需求处理单元410被进一步配置为:基于该全局的策略集合来分别确定针对该第一软件解决方案的硬件资源和递送内容、以及针对该第二软件解决方案的硬件资源和递送内容。
在一些实施方式中,该策略集合包括多个策略,该多个策略中的每一个包括属性集合与递送内容之间的映射关系,该属性集合中的每个属性表示与待递送的软件解决方案相关联的硬件需求或软件需求。
在一些实施方式中,该多个策略至少包括第一策略以及与该第一策略不同的第二策略。
在一些实施方式中,该属性集合中的每个属性被赋予权重;并且需求处理单元410被进一步配置为:将所接收的硬件需求和软件需求分别与该第一策略和该第二策略进行比较;基于该比较,分别针对该第一策略和该第二策略确定与所接收的硬件需求和软件需求相匹配的属性的权重的总和;响应于针对该第一策略的权重的总和大于针对该第二策略的权重的总和,基于该第一策略来确定该硬件资源和该递送内容。
本发明的实施方式还提供了一种服务器,包括:一个或多个处理器;存储有计算机程序指令的存储器,当由所述一个或多个处理器执行所述计算机程序指令时使得所述服务器执行根据本发明实施方式的方法。
本发明的实施方式还提供了一种计算机程序产品,包括计算机程序指令,当由计算设备执行所述计算机程序指令时使得所述计算设备执行根据本发明实施方式的方法。
图5示出了根据本发明实施方式的用于递送软件解决方案的装置500的架构图。装置500可以作为图1所示的环境100的一种示例性实现方式。
如图5所示,装置500包括订单处理单元510、部署单元540和测试执行单元550。在一些实施方式中,订单处理单元510可以在图1的软件管理单元110或图4的需求处理单元410中实施。在一些实施方式中,部署单元540和测试执行单元550可以在图1的软件管理单元110或图4的递送单元430中实施。
作为一个示例,可以通过向现有的软件管理工具中添加订单处理单元510、部署单元540和测试执行单元550来实施这些单元。现有的软件管理工具的示例包括但是不限于Cumulus。如本领域中所已知的,Cumulus是一种基于云的制造解决方案,其目标在于将制造过程中的所有通用的计算和存储需求移动到数据中心中的基于云的平台上。
装置500进一步包括硬件资源管理单元530。在一些实施方式中,硬件资源管理单元530可以在图1中的硬件资源管理单元120或图4中的硬件资源管理单元420中实施。作为一个示例,可以利用现有的硬件管理工具来实施硬件资源管理单元530。现有的软件管理工具的示例包括但是不限于OnRack。如本领域中所已知的,OnRack是一种CI管理和协调软件,其提供了软件的基础设施管理和协调层所需的功能。此外,OnRack提供了软件抽象的集合,这些软件抽象从基础设施管理和协调层上部隐藏了聚合基础设施的细节。这些软件抽象可以采取RESTful API和分布/订阅API的形式。通过提供这种类型的API,基础设施层可以位于网络中可以与OnRack管理和协调工具进行通信的任何位置。
在下文中将结合图5并参照以上描述的表1和表2来描述装置500的各个单元的操作。
在步骤S1,订单处理单元510接收用户以订单形式提供的、与待递送的软件解决方案相关联的软件需求和硬件需求,并且对所接收的订单进行解析。
在步骤S2,针对每个订单项目,订单处理单元510利用“订单编号”和“型号名称”来访问策略数据库520,以例如通过表1确定相应的硬件资源配置(profile)。例如,订单处理单元510利用订单编号“12345”和型号名称“Quanta”来访问策略数据库520,以从中映射出相应的硬件资源配置“High(高级配置)”。这意味着,需要向型号名称“Quanta”并且资源配置为“High(高级配置)”的硬件资源递送由订单编号“12345”隐含地指明的软件解决方案。应当理解,“High(高级配置)”、“Medium(中等配置)”和“Low(低级配置)”可以由制造商来预先定义。
在步骤S3,订单处理单元510向硬件资源管理单元530发送资源发现请求,该请求中包括在步骤S2中确定的型号名称“Quanta”和资源配置“High”。
响应于接收到该资源发现请求,硬件资源管理单元530从硬件资源池(未示出)中确定与型号名称“Quanta”和资源配置“High”相匹配的硬件资源集合,从所确定的硬件资源集合选择可用的硬件资源,并且在步骤S4将所选择的硬件资源的信息发送至订单处理单元510。如图5所示,所选择的硬件资源的信息例如可以包括型号名称“Quanta”、IP地址、Mac地址等。此外,可选地,硬件资源管理单元530可以向所选择的硬件资源加载适当的操作系统。可替换地,可以由订单处理单元510来向所选择的硬件资源加载适当的操作系统。
接下来,订单处理单元510利用“订单编号”、“型号名称”和“软件包名称”来访问策略数据库520,以例如通过表2确定与软件解决方案相关联的部署内容和测试内容。例如,订单处理单元510利用订单编号“12345”、型号名称“Quanta”和软件包名称“Apache_1.0”来访问策略数据库520,以从中映射出相应的部署内容“ApacheHigh_1.2”和测试内容“ApacheTest_1.1”。这意味着,将在硬件资源管理单元530所选择的硬件资源上部署“ApacheHigh_1.2”并且执行测试“ApacheTest_1.1”。此外,订单处理单元510在该步骤获得的部署内容还包括相应的操作系统镜像的名称“Ubuntu”。可以由硬件资源管理单元530向所选择的硬件资源加载所确定的操作系统。可替换地,硬件资源管理单元530可以根据硬件资源的型号来向硬件资源加载缺省的操作系统。
在步骤S5,订单处理单元510向部署单元540提供所确定的部署内容(软件包),使得部署内容可以被提取出并且被推送到所选择的硬件资源上,并且使得部署脚本在所选择的硬件资源上运行。可替换地,所选择的硬件资源可以下载所提取出的部署内容。此外,部署单元540的操作还可以包括监管程序安装、虚拟机创建、系统配置和附加的软件应用安装等。
在步骤S6,订单处理单元510向测试执行单元550提供所确定的测试内容(软件包),以进行测试。具体地,例如,在通过向Cumulus中添加测试执行单元550的实现方式中,可以利用Cumulus Sequencer(定序器)来驱动Python格式的测试脚本的执行,并且可以在Python格式的顺序文件中定义工作流。此外,测试结果和错误细节可以由测试执行单元550收集并且向终端用户显示以用于进一步分析。
可以理解,本发明的实施方式利用预定义的策略集合提供了自动化的软件解决方案递送过程。此外,在将根据本发明实施方式的递送过程与Cumulus和OnRack相结合时可以提供统一的软件解决方案递送平台。具体而言,Cumulus是高度可扩展的,因为其能力仅仅取决于其测试执行系统和部署系统的数目,而每个系统可以支持100个或者更多个硬件资源。制造商可以非常快速地增加测试执行系统和部署系统的数目,而不会引起任何附加的操作困难。此外,Cumulus还支持在相同机器上执行不同的部署策略和测试策略。这使得可以在同一时间毫无困难地递送多个方案。再者,OnRack为资源发现和资源配置的读取提供了统一的API。这使得可以自动地发现目标资源。
图6示出了一个可以用来实施本发明实施方式的设备600的示意性框图。如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法100,可由处理单元601执行。例如,在一些实施例中,方法100可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序被加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法100的一个或多个步骤。
一般而言,本发明的各种示例实施方式可以在硬件或专用电路、软件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本发明的实施方式的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
而且,流程图中的各框可以被看作是方法步骤,和/或计算机程序代码的操作生成的操作,和/或理解为执行相关功能的多个耦合的逻辑电路元件。例如,本发明的实施方式包括计算机程序产品,该计算机程序产品包括有形地实现在计算机可读介质上的计算机程序,该计算机程序包含被配置为实现上文描述方法的程序代码。
在公开的上下文内,计算机可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。计算机可读介质可以是机器可读信号介质或机器可读存储介质。计算机可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机存储盘、存储盘、随机存储存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光存储设备、磁存储设备,或其任意合适的组合。
用于实现本发明的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
另外,尽管操作以特定顺序被描绘,但这并不应该理解为要求此类操作以示出的特定顺序或以相继顺序完成,或者执行所有图示的操作以获取期望结果。在某些情况下,多任务或并行处理会是有益的。同样地,尽管上述讨论包含了某些特定的实施细节,但这并不应解释为限制任何发明或权利要求的范围,而应解释为对可以针对特定发明的特定实施方式的描述。本说明书中在分开的实施方式的上下文中描述的某些特征也可以整合实施在单个实施方式中。相反地,在单个实施方式的上下文中描述的各种特征也可以分离地在多个实施方式或在任意合适的子组合中实施。
针对前述本发明的示例实施方式的各种修改、改变将在连同附图查看前述描述时对相关技术领域的技术人员变得明显。任何及所有修改将仍落入非限制的和本发明的示例实施方式范围。此外,前述说明书和附图存在启发的益处,涉及本发明的这些实施方式的技术领域的技术人员将会想到此处阐明的本发明的其他实施方式。
将会理解,本发明的实施方式不限于公开的特定实施方式,并且修改和其他实施方式都应包含于所附的权利要求范围内。尽管此处使用了特定的术语,但是它们仅在通用和描述的意义上使用,而并不用于限制目的。

Claims (16)

1.一种用于递送软件解决方案的方法,包括:
接收与所述软件解决方案相关联的硬件需求和软件需求;
根据所述硬件需求和所述软件需求,基于预定义的策略集合来确定硬件资源以及与所述软件解决方案相关联的递送内容;
从硬件资源池中获取所确定的硬件资源;以及
向所述硬件资源递送所述递送内容。
2.根据权利要求1所述的方法,其中接收与所述软件解决方案相关联的硬件需求和软件需求包括:
分别接收与第一软件解决方案相关联的硬件需求和软件需求、以及与第二软件解决方案相关联的硬件需求和软件需求,所述第一软件解决方案不同于所述第二软件解决方案。
3.根据权利要求2所述的方法,其中所述预定义的策略集合包括预定义的第一策略集合和第二策略集合,所述第一策略集合不同于所述第二策略集合;
所述方法进一步包括:
分别向所述第一软件解决方案和所述第二软件解决方案指派所述第一策略集合和所述第二策略集合;并且
其中基于预定义的策略集合来确定硬件资源以及与所述软件解决方案相关联的递送内容包括:
分别基于所述第一策略集合和所述第二策略集合来确定针对所述第一软件解决方案的硬件资源和递送内容、以及针对所述第二软件解决方案的硬件资源和递送内容。
4.根据权利要求2所述的方法,其中所述预定义的策略集合包括全局的策略集合;并且
其中基于预定义的策略集合来确定硬件资源以及与所述软件解决方案相关联的递送内容包括:
基于所述全局的策略集合来分别确定针对所述第一软件解决方案的硬件资源和递送内容、以及针对所述第二软件解决方案的硬件资源和递送内容。
5.根据权利要求1至4中任一项所述的方法,其中所述策略集合包括多个策略,所述多个策略中的每一个包括属性集合与递送内容之间的映射关系,所述属性集合中的每个属性表示与待递送的软件解决方案相关联的硬件需求或软件需求。
6.根据权利要求5所述的方法,其中所述多个策略至少包括第一策略以及与所述第一策略不同的第二策略。
7.根据权利要求6所述的方法,其中所述属性集合中的每个属性被赋予权重;
其中基于预定义的策略集合来确定硬件资源以及与所述软件解决方案相关联的递送内容包括:
将所接收的硬件需求和软件需求分别与所述第一策略和所述第二策略进行比较;
基于所述比较,分别针对所述第一策略和所述第二策略确定与所接收的硬件需求和软件需求相匹配的属性的权重的总和;
响应于针对所述第一策略的权重的总和大于针对所述第二策略的权重的总和,基于所述第一策略来确定所述硬件资源和所述递送内容。
8.一种用于递送软件解决方案的装置,包括:
需求处理单元,被配置为接收与所述软件解决方案相关联的硬件需求和软件需求,并且根据所述硬件需求和所述软件需求,基于预定义的策略集合来确定硬件资源以及与所述软件解决方案相关联的递送内容;
硬件资源管理单元,被配置为从硬件资源池中获取所确定的硬件资源;以及
递送单元,被配置为向所述硬件资源递送所述递送内容。
9.根据权利要求8所述的装置,其中所述需求处理单元被进一步配置为:
分别接收与第一软件解决方案相关联的硬件需求和软件需求、以及与第二软件解决方案相关联的硬件需求和软件需求,所述第一软件解决方案不同于所述第二软件解决方案。
10.根据权利要求9所述的装置,其中所述预定义的策略集合包括预定义的第一策略集合和第二策略集合,所述第一策略集合不同于所述第二策略集合;
所述需求处理单元被进一步配置为:
分别向所述第一软件解决方案和所述第二软件解决方案指派所述第一策略集合和所述第二策略集合;并且
分别基于所述第一策略集合和所述第二策略集合来确定针对所述第一软件解决方案的硬件资源和递送内容、以及针对所述第二软件解决方案的硬件资源和递送内容。
11.根据权利要求9所述的装置,其中所述预定义的策略集合包括全局的策略集合;并且
其中所述需求处理单元被进一步配置为:
基于所述全局的策略集合来分别确定针对所述第一软件解决方案的硬件资源和递送内容、以及针对所述第二软件解决方案的硬件资源和递送内容。
12.根据权利要求8至11中任一项所述的装置,其中所述策略集合包括多个策略,所述多个策略中的每一个包括属性集合与递送内容之间的映射关系,所述属性集合中的每个属性表示与待递送的软件解决方案相关联的硬件需求或软件需求。
13.根据权利要求12所述的装置,其中所述多个策略至少包括第一策略以及与所述第一策略不同的第二策略。
14.根据权利要求13所述的装置,其中所述属性集合中的每个属性被赋予权重;
其中所述需求处理单元被进一步配置为:
将所接收的硬件需求和软件需求分别与所述第一策略和所述第二策略进行比较;
基于所述比较,分别针对所述第一策略和所述第二策略确定与所接收的硬件需求和软件需求相匹配的属性的权重的总和;
响应于针对所述第一策略的权重的总和大于针对所述第二策略的权重的总和,基于所述第一策略来确定所述硬件资源和所述递送内容。
15.一种服务器,包括:
一个或多个处理器;
存储有计算机程序指令的存储器,当由所述一个或多个处理器执行所述计算机程序指令时使得所述服务器执行根据权利要求1-7中任一权利要求所述的方法。
16.一种计算机程序产品,包括计算机程序指令,当由计算设备执行所述计算机程序指令时使得所述计算设备执行根据权利要求1-7中任一权利要求所述的方法。
CN201610162398.8A 2016-03-21 2016-03-21 用于递送软件解决方案的方法和装置 Pending CN107220120A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610162398.8A CN107220120A (zh) 2016-03-21 2016-03-21 用于递送软件解决方案的方法和装置
US15/464,300 US20170269905A1 (en) 2016-03-21 2017-03-20 Method and apparatus for delivering software solutions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610162398.8A CN107220120A (zh) 2016-03-21 2016-03-21 用于递送软件解决方案的方法和装置

Publications (1)

Publication Number Publication Date
CN107220120A true CN107220120A (zh) 2017-09-29

Family

ID=59846963

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610162398.8A Pending CN107220120A (zh) 2016-03-21 2016-03-21 用于递送软件解决方案的方法和装置

Country Status (2)

Country Link
US (1) US20170269905A1 (zh)
CN (1) CN107220120A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112948023A (zh) * 2021-03-23 2021-06-11 弘大芯源(深圳)半导体有限公司 一种嵌入的可配置逻辑的实现方法
WO2022227677A1 (zh) * 2021-04-30 2022-11-03 华为云计算技术有限公司 一种部署解决方案的方法、系统、装置及服务器

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10977156B2 (en) * 2018-10-10 2021-04-13 International Business Machines Corporation Linking source code with compliance requirements
US11074062B1 (en) * 2019-08-14 2021-07-27 Amazon Technologies, Inc. Neural networks for software patch applicability

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060015841A1 (en) * 2004-06-30 2006-01-19 International Business Machines Corporation Control on demand data center service configurations
US20070240147A1 (en) * 2006-03-30 2007-10-11 Microsoft Corporation Servicing software through versioning
US20110320606A1 (en) * 2010-06-29 2011-12-29 International Business Machines Corporation Allocating Computer Resources in a Cloud Environment
US8191044B1 (en) * 2006-12-14 2012-05-29 Fannie Mae System and method for maintaining requirements traceability
CN102624558A (zh) * 2012-03-09 2012-08-01 浪潮通信信息系统有限公司 一种基于云计算技术解决通信行业网管系统性能瓶颈的方法
US20130173648A1 (en) * 2010-10-29 2013-07-04 Xiang Tan Software Application Recognition
CN103403682A (zh) * 2012-11-23 2013-11-20 华为技术有限公司 一种逻辑对象部署方法、相关装置及系统
CN103973793A (zh) * 2014-05-12 2014-08-06 中国航空无线电电子研究所 分布式航空电子测试系统
US20150106610A1 (en) * 2013-10-11 2015-04-16 International Business Machines Corporation Pluggable cloud enablement boot device and method that determines hardware resources via firmware
CN104823157A (zh) * 2012-09-12 2015-08-05 格林伊登美国控股有限责任公司 用于提供联络中心资源的动态弹性的系统和方法
US20150326496A1 (en) * 2012-12-27 2015-11-12 Telefonica, S.A. A computer-implemented method and a system for providing a networking service, and a computer program product adapted to perform the method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681323B1 (en) * 1999-11-29 2004-01-20 Toshiba America Information Systems, Inc. Method and system for automatically installing an initial software configuration including an operating system module from a library containing at least two operating system modules based on retrieved computer identification data

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060015841A1 (en) * 2004-06-30 2006-01-19 International Business Machines Corporation Control on demand data center service configurations
US20070240147A1 (en) * 2006-03-30 2007-10-11 Microsoft Corporation Servicing software through versioning
US8191044B1 (en) * 2006-12-14 2012-05-29 Fannie Mae System and method for maintaining requirements traceability
US20110320606A1 (en) * 2010-06-29 2011-12-29 International Business Machines Corporation Allocating Computer Resources in a Cloud Environment
US20130173648A1 (en) * 2010-10-29 2013-07-04 Xiang Tan Software Application Recognition
CN102624558A (zh) * 2012-03-09 2012-08-01 浪潮通信信息系统有限公司 一种基于云计算技术解决通信行业网管系统性能瓶颈的方法
CN104823157A (zh) * 2012-09-12 2015-08-05 格林伊登美国控股有限责任公司 用于提供联络中心资源的动态弹性的系统和方法
CN103403682A (zh) * 2012-11-23 2013-11-20 华为技术有限公司 一种逻辑对象部署方法、相关装置及系统
US20150326496A1 (en) * 2012-12-27 2015-11-12 Telefonica, S.A. A computer-implemented method and a system for providing a networking service, and a computer program product adapted to perform the method
US20150106610A1 (en) * 2013-10-11 2015-04-16 International Business Machines Corporation Pluggable cloud enablement boot device and method that determines hardware resources via firmware
CN103973793A (zh) * 2014-05-12 2014-08-06 中国航空无线电电子研究所 分布式航空电子测试系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112948023A (zh) * 2021-03-23 2021-06-11 弘大芯源(深圳)半导体有限公司 一种嵌入的可配置逻辑的实现方法
WO2022227677A1 (zh) * 2021-04-30 2022-11-03 华为云计算技术有限公司 一种部署解决方案的方法、系统、装置及服务器

Also Published As

Publication number Publication date
US20170269905A1 (en) 2017-09-21

Similar Documents

Publication Publication Date Title
CN109446072A (zh) 测试脚本的生成方法和装置
CN108369537A (zh) 启用fpga的计算实例
US10146665B2 (en) Systems and methods for providing dynamic and real time simulations of matching resources to requests
CN108737325A (zh) 一种多租户数据隔离方法、装置及系统
CN107220120A (zh) 用于递送软件解决方案的方法和装置
US11087255B2 (en) System and methods for fulfilling an order by determining an optimal set of sources and resources
CN112634047B (zh) 外汇交易模拟测试方法、装置、计算机设备及存储介质
CN111045932B (zh) 业务系统仿真处理方法、装置、电子设备及存储介质
US20180268375A1 (en) Method and apparatus for repair or maintenance control of devices
CN110209569A (zh) 接口测试方法、接口测试装置及存储介质
CN106649638A (zh) 一种大数据获取方法
CN107329834A (zh) 用于执行计算任务的方法和装置
US8661305B2 (en) Method and system for test vector generation
WO2017128304A1 (zh) 一种房产网房源显示方法及系统
CN107181606A (zh) 用于控制网络节点的方法和装置
CN109683917A (zh) 用于将应用部署于应用服务器的方法、设备以及介质
CN109087089A (zh) 一种支付方法、支付装置及终端设备
Chen et al. A theory of waiting time reporting and quality signaling
CN110515929B (zh) 书籍展示方法、计算设备及存储介质
CN109829678A (zh) 一种回滚处理方法、装置以及电子设备
CN106161516A (zh) 用于存储数据的方法、装置以及系统
Sabri et al. Smart attendance system by suing RFID
US11205092B2 (en) Clustering simulation failures for triage and debugging
CN117057935A (zh) 基于领域设计的数据处理方法、装置、设备及其存储介质
CN112307379B (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
TA01 Transfer of patent application right

Effective date of registration: 20200416

Address after: Massachusetts, USA

Applicant after: EMC IP Holding Company LLC

Address before: Ma Sazhusaizhou

Applicant before: EMC Corp.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20170929

RJ01 Rejection of invention patent application after publication