CN104583945A - 一种应用升级方法、装置 - Google Patents

一种应用升级方法、装置 Download PDF

Info

Publication number
CN104583945A
CN104583945A CN201380001370.0A CN201380001370A CN104583945A CN 104583945 A CN104583945 A CN 104583945A CN 201380001370 A CN201380001370 A CN 201380001370A CN 104583945 A CN104583945 A CN 104583945A
Authority
CN
China
Prior art keywords
application
disposed
template
mark
platform nodes
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
CN201380001370.0A
Other languages
English (en)
Other versions
CN104583945B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201810011915.0A priority Critical patent/CN108052340B/zh
Priority to CN201810012326.4A priority patent/CN108319463B/zh
Publication of CN104583945A publication Critical patent/CN104583945A/zh
Application granted granted Critical
Publication of CN104583945B publication Critical patent/CN104583945B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • H04L67/10Protocols in which an application is distributed across nodes in the network

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 Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供一种应用升级方法、装置,应用于云计算领域,能够保证升级后的应用能正常运行。所述应用升级方法用于应用部署服务器,包括:接收应用部署请求;确定待部署的应用部署包升级包;确定第一平台节点的版本低于所述待部署的应用节点模板对第一平台节点模板的版本需求;获取满足所述待部署的应用节点模板对第一平台节点模板的版本需求的第一平台节点升级包;使用所述第一平台节点升级包,升级所述第一平台节点的标识指示的所述第一平台节点;确定待升级的应用节点的标识;使用所述待部署的应用部署包,升级所述待升级的应用节点的标识指示的应用节点。本发明实施例提供一种应用升级方法、装置,应用于云计算领域的应用升级。

Description

一种应用升级方法、 装置 技术领域
本发明涉及云计算领域, 尤其涉及一种应用升级方法、 装置。 背景技术
云计算的核心思想是将大量用网络连接的计算资源统一管理和 调度, 构成计算资源池按用户的需求向用户提供资源和服务, 提供 这种计算资源的网络被称为云。
云平台是一种向应用开发者提供基于云的服务的平台。 PaaS ( Platform as a Service , 服务平台 ) 是一种常用的云平台, 属于常 见的广义云计算的服务模式, 所述广义云计算是指开发者通过网络 以按需、 易扩展的方式获得所需的服务。 所述 PaaS 将定制化研发 的中间件平台作为一种服务提供给用户, 其实质是将互联网的资源 服务化为可编程接口, 为第三方开发者提供有商业价值的资源和服 务平台。 其中, 所述中间件平台也被称为平台节点, 是具有标准的 程序接口和协议的通用服务, 通常位于硬件与应用之间或操作*** 与应用之间。 PaaS C SP ( Cloud Service Prov标识 er , 云服务供应 商 ) 提供种类繁多的中间件平台, 例如应用服务器、 数据库等, C SP 可以设计、 开发和优化平台节点, 而应用开发者则只需在平台 节点之上着重于应用节点的开发, 这就为开发带来了极大的方便。
但是目前 PaaS C SP 只向应用开发者提供固定版本的平台节 点, 为所有的应用维护平台节点的版本。 如果应用开发者需要升级 一个应用节点, 但升级后的应用节点对平台节点的版本有要求。 如 果平台节点的版本不能满足升级后的应用节点的要求, 就会造成应 用节点更新失败, 应用无法正常运行。
发明内容
本发明的实施例提供一种应用升级的方法、 装置, 以保证升级 后的应用能正常运行。 为达到上述目的, 本发明的实施例釆用如下技术方案: 本发明实施例的第一方面提供了一种应用升级方法, 包括: 接收应用部署请求, 所述应用部署请求包含待部署的应用部署 包, 所述待部署的应用部署包描述了待部署的应用节点模板、 已部 署应用的标识、 已部署的应用节点模板的标识、 第一平台节点模板 的标识、 待部署的应用节点模板对第一平台节, 模板的版本需求、 以及所述待部署的应用节点模板用于对所述已部署的应用节点模板 的标识所指示的已部署的应用节点模板升级的升级标识;
根据所述升级标识确定所述待部署的应用部署包为所述已部署 应用的标识指示的已部署应用的升级包;
根据所述已部署的应用标识获取与所述第一平台节点模板的标 识对应的第一平台节点的标识, 以及获取所述第一平台节点的标识 指示的第一平台节点的版本;
根据所述第一平台节点的版本确定所述第一平台节点的版本低 于所述待部署的应用节点模板对第一平台节点模板的版本需求; 根据所述待部署的应用节点模板对第一平台节点模板的版本需 求, 获取满足所述待部署的应用节点模板对第一平台节点模板的版 本需求的第一平台节点升级包;
使用所述第一平台节点升级包, 升级所述第一平台节点的标识 指示的所述第一平台节点;
确定待升级的应用节点的标识;
使用所述待部署的应用部署包, 升级所述待升级的应用节点的 标识指示的应用节点。
结合第一方面, 在第一种可实现方式中, 所述待部署的应用部 署包进一步包括描述所述待部署的应用节点模板的关系模板, 所述 升级标识携带在所述关系模板中;或
所述待部署的应用部署包进一步包括待部署的应用节点模板对 应的节点类型执行, 所述升级标识携带在所述节点类型执行中。
结合第一方面或第一种可实现方式, 在第二种可实现方式中, 所述确定待升级的应用节点的标识具体为: 确定与所述已部署的应 用节点模板的标识对应的所有的应用节点的标识为待升级的应用节 点的标识; 或
当所述待部署的应用部署包还包括: 与所述已部署的应用节点 模板的标识对应的至少一个已部署的应用节点的标识时, 所述确 定待升及的应用节点的标识具体为:
确定所述应用部署包包括的与所述已部署的应用节点模板的标 识对应的所述至少一个已部署的应用节, ^的标识为待升级的应用节 点的标识。
结合第一方面, 第一种可实现方式或第二种可实现方式, 在第 三种可实现方式中, 所述升级所述第一平台节点的标识指示的所述 第一平台节点之前, 该方法进一步包括: 根据所述已部署的应用标 识获取存储的已部署的应用部署包的描述文件;
根据获取的已部署的应用部署包的描述文件确定所述已部署的 应用部署包的描述文件中描述了将所述第一平台节点模板作为源节 点模板的第二平台节点模板;
获取升级后的第一平台节点对第二平台节点的版本需求以及第 二平台节点的版本;
确定所述第二平台节点的版本低于升级后的第一平台节点对第 二平台节点的版本需求;
所述根据所述第一平台节点升级包, 升级所述第一平台节点之 前, 所述方法还包括:
根据所述升级后的第一平台节点对第二平台节点的版本需求, 获取满足所述升级后的第一平台节点对第二平台节点的版本需求的 第二平台节点升级包;
根据所述第二平台节点升级包, 升级所述第二平台节点。
本发明实施例的第二方面, 提供了一种应用升级方法, 包 括:
生成待部署的应用部署包, 所述待部署的应用部署包描述了待 部署的应用节点模板、 已部署的应用的标识、 第一平台节点模板的 标识、 已部署的应用节点模板的标识、 待部署的应用节点模板对所 述第一平台节点模板的版本需求、 以及所述待部署的应用节点模板 用于对所述已部署的应用节点模板的标识所指示的已部署的应用节 , 模板升级的升级标识;
生成应用部署请求, 所述应用部署请求包含所述待部署的应用 部署包;
向应用部署服务器发送所述应用部署请求。
结合第二方面, 在第一种可实现方式中, 所述待部署的应用部 署包进一步包括描述所述待部署的应用节点模板的关系模板, 所述 升级标识携带在所述关系模板中;或
所述待部署的应用部署包进一步包括待部署的应用节点模板对 应的节点类型执行, 所述升级标识携带在所述节点类型执行中。
结合第二方面或第一种可实现方式, 在第二种可实现方式中, 所述待部署的应用部署包还包括: 与所述已部署的应用节点模板的 标识对应的至少一个已部署的应用节点的标识。
结合第二方面、 第一种可实现方式或第二种可实现方式的第三 种可实现方式中, 所述生成待部署的应用部署包之前, 该方法进一 步包括: 根据已部署的应用部署包的描述文件, 确定所述已部署应 用标识指示的已部署应用的第一平台节点模板, 所述第一平台节点 模板将已部署的应用节点模板作为源节点模板。 本发明实施例的第三方面提供了一种应用部署服务器, 包括: 接收模块, 用于接收应用部署请求, 所述应用部署请求包含待 部署的应用部署包; 所述待部署的应用部署包描述了待部署的应用 节点模板、 已部署应用的标识、 已部署的应用节点模板的标识、 第 一平台节点模板的标识、 待部署的应用节点模板对第一平台节点模 板的版本需求、 以及所述待部署的应用节点模板用于对所述已部署 的应用节点模板的标识所指示的已部署的应用节点模板升级的升级 标识, 并将所述待部署应用的应用部署包发送至确定模块和升级模 块;
确定模块, 用于接收所述接收模块发送的所述待部署应用的应 用部署包, 并根据所述升级标识确定所述待部署的应用部署包为所 述已部署应用的标识指示的已部署应用的升级包; 以及用于根据所 述已部署的应用标识获取与所述第一平台节点模板的标识对应的第 一平台节点的标识, 以及获取所述第一平台节点的标识指示的第一 平台节点的版本; 以及用于根据所述第一平台节点的版本确定所述 第一平台节点的版本低于所述待部署的应用节点模板对第一平台节 点模板的版本需求;
根据所述待部署的应用节点模板对第一平台节点模板的版本需 求, 获取满足所述待部署的应用节点模板对第一平台节点模板的版 本需求的第一平台节点升级包, 发送所述第一平台节点升级包至升 级模块;
所述升级模块, 用于接收所述确定模块发送的所述第一平台节 点升级包, 使用所述第一平台节点升级包, 升级所述第一平台节点 的标识指示的所述第一平台节点;
所述确定模块进一步用于根据所述已部署的应用节点模板的标 识确定待升级的应用节点的标识, 并发送所述待升级的应用节点的 标识至升级模块;
所述升级模块, 进一步用于接收所述接收模块发送的所述待部 署应用的应用部署包, 并接收所述确定模块发送的所述待升级的应 用节点的标识, 以及用于使用所述待部署的应用部署包升级所述待 升级的应用节点的标识指示的应用节点。
结合第三方面, 在第一种可实现方式中, 所述待部署的应用部 署包进一步包括描述所述待部署的应用节点模板的关系模板, 所述 升级标识携带在所述关系模板中;或
所述待部署的应用部署包进一步包括待部署的应用节点模板对 应的节点类型执行,所述升级标识携带在所述节点类型执行中。 结合第三方面或第一种可实现方式的第二种可实现方式中, 所 述确定模块具体用于: 确定与所述已部署的应用节点模板的标识对 应的所有的应用节点的标识为待升级的应用节点的标识; 或
当所述待部署的应用部署包还包括: 与所述已部署的应用节点 模板的标识对应的至少一个已部署的应用节点的标识时, 所述确 定待升及的应用节点的标识具体为:
确定所述应用部署包包括的与所述已部署的应用节点模板的标 识对应的所述至少一个已部署的应用节, ^的标识为待升级的应用节 点的标识。
结合第三方面、 第一种可实现方式或第二种可实现方式的第三 种可实现方式中, 所述确定模块还用于:
根据所述已部署的应用标识获取存储的已部署的应用部署包的 描述文件;
根据获取的已部署的应用部署包的描述文件确定所述已部署的 应用部署包的描述文件中描述了将所述第一平台节点模板作为源节 点模板的第二平台节点模板;
获取升级后的第一平台节点对第二平台节点的版本需求以及第 二平台节点的版本;
确定所述第二平台节点的版本低于升级后的第一平台节点对第 二平台节点的版本需求;
根据所述升级后的第一平台节点对第二平台节点的版本需求, 获取满足所述升级后的第一平台节点对第二平台节点的版本需求的 第二平台节点升级包;
所述升级模块还用于:
根据所述第二平台节点升级包, 升级所述第二平台节点。 本发明实施例的第四方面提供了一种用户设备, 包括: 生成模块, 用于生成待部署的应用部署包, 所述待部署的应用 部署包描述了待部署的应用节点模板、 已部署的应用的标识、 第一 平台节点模板的标识、 已部署的应用节点模板的标识、 待部署的应 用节点模板对第一平台节点模板的版本需求、 以及所述待部署的应 用节点模板用于对所述已部署的应用节点模板的标识所指示的已部 署的应用节点模板升级的升级标识;
所述生成模块进一步用于生成应用部署请求, 向发送模块发送 所述应用部署请求, 所述应用部署请求包含所述待部署的应用部署 包;
所述发送模块, 用于接收所述生成模块发送的所述应用部署请 求, 向应用部署服务器发送所述应用部署请求。
结合第四方面的第一种可实现方式中, 所述待部署的应用部署 包进一步包括描述所述待部署的应用节点模板的关系模板, 所述升 级标识携带在所述关系模板中;或
所述待部署的应用部署包进一步包括待部署的应用节点模板对 应的节点类型执行, 所述升级标识携带在所述节点类型执行中。
结合第四方面或第一种可实现方式, 在第二种可实现方式中, 所述待部署的应用部署包还包括: 与所述已部署的应用节点模板的 标识对应的至少一个已部署的应用节点的标识。
结合第四方面、 第一种可实现方式或第二种可实现方式的第三 种可实现方式中, 所述用户设备还包括: 确定模块, 用于根据已部 署的应用部署包的描述文件, 确定所述已部署应用标识指示的已部 署应用的第一平台节点模板, 所述第一平台节点模板将已部署的应 用节点模板作为源节点模板。
本发明实施例的第五方面提供了一种应用部署服务器, 包括: 接收机, 用于接收应用部署请求, 所述应用部署请求包含待部 署的应用部署包; 所述待部署的应用部署包描述了待部署的应用节 点模板、 已部署应用的标识、 已部署的应用节点模板的标识、 第一 平台节点模板的标识、 待部署的应用节点模板对第一平台节点模板 的版本需求、 以及所述待部署的应用节点模板用于对所述已部署的 应用节点模板的标识所指示的已部署的应用节点模板升级的升级标 识, 并将所述待部署的应用部署包发送至处理器;
所述处理器, 用于:
接收所述接收机发送的所述待部署的应用部署包, 并根据所述 升级标识确定所述待部署的应用部署包为所述已部署应用的标识指 示的已部署应用的升级包;
根据所述已部署的应用标识获取与所述第一平台节点模板的标 识对应的第一平台节点的标识, 以及获取所述第一平台节点的标识 指示的第一平台节点的版本;
根据所述第一平台节点的版本确定所述第一平台节点的版本低 于所述待部署的应用节点模板对第一平台节点模板的版本需求; 根据所述待部署的应用节点模板对第一平台节点模板的版本需 求, 获取满足所述待部署的应用节点模板对第一平台节点模板的版 本需求的第一平台节点升级包;
使用所述第一平台节点升级包, 升级所述第一平台节点模板的 标识指示的所述第一平台节点;
确定待升级的应用节点的标识;
使用所述待部署的应用部署包, 升级所述待升级的应用节点的 标识指示的应用节点。
结合第五方面的第一种可实现方式, 所述待部署的应用部署包 进一步包括描述所述待部署的应用节点模板的关系模板, 所述升级 标识携带在所述关系模板中;或
所述待部署的应用部署包进一步包括待部署的应用节点模板对 应的节点类型执行, 所述升级标识携带在所述节点类型执行中。
结合第五方面或第一种可实现方式的第二种可实现方式, 所述 处理器具体用于: 确定与所述已部署的应用节点模板的标识对应的 所有的应用节点的标识为待升级的应用节点的标识; 或
当所述待部署的应用部署包还包括: 与所述已部署的应用节点 模板的标识对应的至少一个已部署的应用节点的标识时, 所述确 定待升及的应用节点的标识具体为: 确定所述应用部署包包括的与所述已部署的应用节点模板的标 识对应的所述至少一个已部署的应用节, ^的标识为待升级的应用节 点的标识。
结合第五方面、 第一种可实现方式或第二种可实现方式的第三 种可实现方式中, 所述处理器还用于:
根据所述已部署的应用标识获取存储的已部署的应用部署包的 描述文件;
根据获取的已部署的应用部署包的描述文件确定所述已部署的 应用部署包的描述文件中描述了将所述第一平台节点模板作为源节 点模板的第二平台节点模板;
获取升级后的第一平台节点对第二平台节点的版本需求以及第 二平台节点的版本;
确定所述第二平台节点的版本低于升级后的第一平台节点对第 二平台节点的版本需求;
根据所述升级后的第一平台节点对第二平台节点的版本需求, 获取满足所述升级后的第一平台节点对第二平台节点的版本需求的 第二平台节点升级包;
根据所述第二平台节点升级包, 升级所述第二平台节点。 本发明实施例的第六方面提供了一种用户设备, 包括: 处理器, 用于生成待部署的应用部署包, 所述待部署的应用部 署包描述了待部署的应用节点模板、 已部署的应用的标识、 第一平 台节点模板的标识、 已部署的应用节点模板的标识、 待部署的应用 节点模板对第一平台节点模板的版本需求、 以及所述待部署的应用 节点模板用于对所述已部署的应用节点模板的标识所指示的已部署 的应用节点模板升级的升级标识;
生成应用部署请求, 所述应用部署请求包含所述待部署的应用 部署包;
向发射机发送所述应用部署请求; 所述发射机, 用于接收处理器发送的所述应用部署请求, 并向 应用部署服务器发送所述应用部署请求。
结合第六方面的第一种可实现方式中, 所述待部署的应用部署 包进一步包括描述所述待部署的应用节点模板的关系模板, 所述升 级标识携带在所述关系模板中;或
所述待部署的应用部署包进一步包括待部署的应用节点模板对 应的节点类型执行, 所述升级标识携带在所述节点类型执行中。
结合第六方面或第一种可实现方式的第二种可实现方式中, 所 述待部署的应用部署包还包括: 与所述已部署的应用节点模板的标 识对应的至少一个已部署的应用节点的标识。
结合第六方面、 第一种可实现方式或第二种可实现方式, 在第 三种可实现方式中, 所述处理器还用于: 根据已部署的应用部署包 的描述文件, 确定所述已部署应用标识指示的已部署应用的第一平 台节点模板, 所述第一平台节点模板将已部署的应用节点模板作为 源节点模板。
由以上方案可知, 在待部署的应用部署包中的应用描述文件描 述了待部署的应用节点模板对第一平台节点模板的版本需求。 当应 用部署服务器在确定第一平台节点的版本低于所述待部署的应用节 点模板对第一平台节点模板的版本需求时, 应用部署服务器会根据 所述待部署的应用节点模板对第一平台节点模板的版本需求获取第 一平台节点升级包。 之后, 应用部署服务器根据获取的第一平台节 点升级包升级第一平台节点。 使得升级后第一平台节点的版本满足 所述待部署的应用节点模板对第一平台节点模板的版本需求, 从而 确保升级后的应用能正常运行。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案, 下 面将对实施例或现有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例, 对于 本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以 根据这些附图获得其他的附图。
图 1 A 为为本发明实施例提供的应用部署方法所基于的应用部 署描述文件描述的应用模板结构示意图;
图 1 B 为本发明实施例提供的与图 1 A 对应的计划的结构示意 图;
图 2为本发明实施例提供的应用升级方法的流程示意图; 图 3为本发明实施例提供的应用升级方法的流程示意图; 图 4为本发明实施例提供的应用升级方法的流程示意图; 图 5为本发明实施例中应用部署服务器根据应用部署包 A的描 述以及应用部署包 B描述而得出的升级应用节点 app的示意图; 图 6为本发明实施例提供的应用部署服务器升级所述已部署的 应用节点的流程示意图;
图 7为本发明实施例提供的待部署的应用部署包示意图; 图 8 为本发明实施例提供的一种应用部署服务器的结构示意 图;
图 9为本发明实施例提供的一种用户设备的结构示意图; 图 10为本发明实施例提供的另一种用户设备的结构示意图; 图 1 1 为本发明实施例提供的另一种应用部署服务器的结构示 意图;
图 12为本发明实施例提供的又一种用户设备的结构示意图。 具体实施方式
下面将结合本发明实施例中的附图, 对本发明实施例中的技术 方案进行清楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明 一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本 领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例, 都属于本发明保护的范围。
本发明实施例提供一种应用升级方法, 可应用于 TOSCA 标准 也可以应用于其他方面, 而并不局限于 TOSCA标准。 如图 1 A所示 包括: 在本发明实施例中, 部署一个应用所需的信息在应用部署服务 器中名为云服务档案 ( Cloud Service Archive , 简称: C SAR ) 的应 用部署包中描述。 应用部署包至少包含一个后缀为 ste 的应用部署 描述文件, 该 * . ste 的应用部署描述文件可以用 XML 语言描述应用 的部署信息, 该 * . ste 的应用部署描述文件的根元素为应用模板 Service Template。 也就是说本发明 实施例 中 可以用 应用模板 ServiceTemplate来完整描述需部署的应用的信息。 * . ste的应用部署 描述文件的子元素包括拓朴模板 TopologyTemplate、 节点类型 NodeType , 节点模板 NodeTemplate , 关系类型 RelationshipType , 关系模板 RelationshipTemplate , 边界定义 Boundary Definitions等。 应用部署描述文件中的根元素及子元素的关系如图 1 A所示, 图 1 A 为本发明实施例提供的应用升级方法所基于的应用部署描述文件描 述的应用模板结构示意图。
如图 1 A所示, 本发明实施例使用 TopologyTemplate来描绘一 个应用拓朴。 该应用拓朴中包含了分别针对 a l、 a2、 a3 和 a4 四个 节点的节点模板, 即每个节点模板表述一次应用部署的一个节点 (也就是说, 如果应用被多次部署, 每个节点模板则对应多个该类 节 点 ) , 在应 用 拓朴上给 出 每个节 点模板的 标识 。 每个 NodeTemplate的类型由 NodeType定义 ( NodeTemplate的 type属性 描述了该 NodeTemplate对应的 NodeType ) 。 NodeType定义了节点 的属性(用 Properties定义)、 该节点的接口 (用接口集合 Interfaces 定义) 等, 而 NodeTemplate是 NodeType的实例。
每 个 NodeType 对 应 一 个 节 点 类 型 执 行 ( NodeType Implementation: 简称 NTI ) , ΝΤΙ描述了该 NodeType对应的节点 的部署制品以及 NodeType 中的 Interface 中包含的所有方法的方法 制品的信息。
应用拓朴 TopologyTemplate 中的连接节点的每条边都是一个 RelationshipTemplate , 关系模板与应用节点模板对应。
每个应用部署包还包括计划 ( Plan ) , 如图 I B所示, 图 1 B为 本发明实施例与图 1 A 对应的计划的结构示意图, 计划是可执行的 工作流, 实际上是由多个被引用的方法组成的工作流。 执行该工作 流实际上就是执行组成该工作流的各方法对应的方法制品。 在执行 计划时, 应用部署服务器根据计划的定义按序逐个运行各任务对应 的方法所对应的方法制品。 例如参见图 1 B , 该 plan 中包括任务 c l、 c2和 c3。 按照 plan 中的定义, 在执行该 plan时, 执行顺序是 先执行任务 c l , 再执行任务 c2 , 然后执行任务 c3 ; 而所述的 c l、 c2和 c3 即是 NodeType中的 interface对应的方法。
另 夕卜 , 每 个 ServiceTemplate 中 都 包 括 边 界 ( 用 BoundaryDefinitions 定义) , ServiceTemplate 内部定义的一些组件 都在该 BoundaryDefinitions 内呈现给用户; 所述的组件即是上述的 NodeTemplate、 部署制品、 方法制品等。
由上述说明可知, 一个应用部署包中包含了部署该应用所需要 的信息如: 应用部署描述文件、 计划、 节点的部署制品和各方法的 方法制品。 其中, 应用部署描述文件描述了应用的完整拓朴、 拓朴 中节点的部署制品信息、 拓朴中节点模板的方法和方法制品信息步 骤。
特别的, 该拓朴上描述了各个节点模板, 以及所述节点模板之 间的逻辑关系, 在本发明实施例中, 所述拓朴上的节点模板可以包 括: 应用节点模板和平台节点模板, 所述应用节点模板是指由用户 设备维护和使用的待部署应用的节点, 所述平台节点模板是指由服 务器运行和维护的待部署应用的节点。
图 2为本发明实施例提供的应用升级方法的流程示意图, 本实 施例的方法的执行主体是应用部署服务器, 如图 2 所示, 该方法包 括:
步骤 201、 接收应用部署请求, 所述应用部署请求包含待部署 的应用部署包。 所述待部署的应用部署包描述了待部署的应用节点 模板、 已部署的应用标识、 已部署的应用节点模板的标识、 第一平 台节点模板的标识、 待部署的应用节点模板对所述第一平台节点模 板的版本需求、 以及所述待部署的应用节点模板用于对所述已部署 的应用节点模板的标识所指示的已部署的应用节点模板升级的升级 标识。
具体的, 待部署的应用节点模板、 已部署的应用标识、 第一平 台节点模板的标识、 已部署的应用节点模板的标识、 待部署的应用 节点模板对第一平台节点模板的版本需求、 以及所述待部署的应用 节点模板用于对所述已部署的应用节点模板的标识所指示的已部署 的应用节点模板升级的升级标识都在应用描述文件中描述。 第一平 台节点模板的标识指示的平台节点模板和已部署的应用节点模板标 识指示的应用节点模板在已部署的应用标识指示的应用部署包中的 描述文件中描述。
在本发明实施例中, 所述待部署的应用节点模板用于对所述已 部署的应用节点模板的标识所指示的已部署的应用节点模板升级的 升级标识可以用 Patch For表示。 其中, 所述升级标识指的是所述待 部署的应用节点模板用于对所述已部署的应用节点模板的标识所指 示的已部署的应用节点模板升级的升级标识。 所述待部署的应用部 署包进一步包括描述所述待部署的应用节点模板的关系模板, 所述 升级标识携带在所述关系模板中;或所述待部署的应用部署包进一 步包括待部署的应用节点模板对应的节点类型执行, 所述升级标识 携带在所述节点类型执行中。
需要说明的是, 一个部署后的应用包含多个节点, 节点相当于 模块, 比如计费应用里面包含数据库模块和管理模块等。 应用需要 进行部署时, 用户设备会生成待部署的应用部署包通过应用部署请 求发送至应用部署服务器。 应用部署服务器在接收到该应用部署包 后, 会根据该应用部署包的应用部署描述文件、 部署制品、 方法制 品以及计划进行的应用部署。 特别的, 应用部署包括初始部署、 更 新或升级等。 在本发明实施例中假设所述待部署的应用部署包为对 已部署的应用进行升级的升级包。
特别的, 应用部署服务器每次在收到应用部署包时, 会将应用 部署包中的所有应用描述信息都记录到数据库中。
步骤 202、 根据所述升级标识确定所述待部署的应用部署包为 所述已部署应用的标识指示的已部署应用的升级包。
具体有, 所述应用部署服务器根据携带在描述所述待部署的应 用节点模板的关系模板中的所述升级标识, 或根据携带在待部署的 应用节点模板对应的节点类型执行中的所述升级标识确定所述部待 部署的应用部署包为针对已部署应用的升级包。
步骤 203、 根据所述已部署的应用标识获取与所述第一平台节 点模板的标识对应的第一平台节点的标识, 以及获取所述第一平台 节点的标识指示的第一平台节点的版本。
具体的, 应用部署服务器存储有各已部署应用的各节点的版本 或能力。 应用部署服务器根据所述已部署的应用标识从存储的已部 署应用的各平台节点的版本信息中获取与所述第一平台节点模板的 标识对应的第一平台节点的版本。 并根据所述待部署的应用节点模 板对所述第一平台节点模板的版本需求以及获取的所述第一平台节 点的版本, 确定所述第一平台节点的版本低于所述待部署的应用节 点模板对第一平台节点模板的版本需求。
所述第一平台节点的版本低于所述待部署的应用节点模板对第 一平台节点模板的版本需求即所述第一平台节点的版本的版本号小 于所述待部署的应用节点模板对第一平台节点模板的版本需求指示 的版本号。
步骤 204、 根据所述第一平台节点版本确定所述第一平台节点 的版本低于所述待部署的应用节点模板对第一平台节点模板的版本 需求。
步骤 205、 根据所述待部署的应用节点模板对第一平台节点模 板的版本需求, 获取满足所述待部署的应用节点模板对第一平台节 点模板的版本需求的第一平台节点升级包。
具体的, 应用部署服务器根据所述待部署的应用节点模板对第 一平台节点模板的版本需求, 获取满足所述待部署的应用节点模板 对第一平台节点模板的版本需求的第一平台节点升级包。 步骤 206、 使用所述第一平台节点升级包, 升级所述第一平台 节点的标识指示的所述第一平台节点。
可选的, 所述待部署的应用部署包可以不包括已部署的应用节 点的标识; 当应用部署包不包括已部署的应用节点的标识, 应用部 署服务器可以根据所述已部署应用的标识, 获取第一平台节点模板 的标识对应的所有的第一平台节点的标识, 使用所述第一平台节点 升级包分别升级每个所述第一平台节点的标识指示的第一平台节 点。
所述升级过程与现有技术相同, 本发明对此不再赘述。
步骤 207、 确定待升级的应用节点的标识。
具体的, 应用部署服务器可以确定与所述已部署的应用节点模 板的标识对应的所有的应用节点的标识为待升级的应用节点的标 识。
或, 当所述待部署的应用部署包还包括: 与所述已部署的应用 节点模板的标识对应的至少一个已部署的应用节点的标识时, 所 述确定待升及的应用节点的标识具体为: 确定所述应用部署包包括 的与所述已部署的应用节点模板的标识对应的所述至少一个已部署 的应用节点的标识为待升级的应用节点的标识。
步骤 208、 使用所述待部署的应用部署包, 升级所述待升级的 应用节点的标识指示的应用节点。
可选的, 当所述应用部署包包括: 至少一个与所述已部署的应 用节点模板的标识对应的应用节点的标识时, 应用部署服务器可以 使用所述待部署的应用部署包, 升级所述已部署的应用节点的标识 指示的应用节点。
可选的, 所述升级所述待升级的应用节点的标识指示的应用节 点具体为: 获取所述已部署应用节点模板的标识对应的所有已部署 的应用节点的标识; 使用所述待部署的应用部署包分别升级每个所 述已部署的应用节点的标识指示的应用节点。
由于所述待部署的应用部署包为升级包, 因此, 其计划 ( plan ) 为升级计划, 根据该升级计划即可将相应的应用节点升级。
因此, 在待部署的应用部署包中的应用描述文件描述了待部署 的应用节点模板对第一平台节点模板的版本需求。 当应用部署服务 器在确定第一平台节点的版本低于所述待部署的应用节点模板对第 一平台节点模板的版本需求时, 应用部署服务器会根据所述待部署 的应用节点模板对第一平台节点模板的版本需求获取第一平台节点 升级包。 之后, 应用部署服务器根据获取的第一平台节点升级包升 级第一平台节点。 使得升级后第一平台节点的版本满足所述待部署 的应用节点模板对第一平台节点模板的版本需求, 从而确保升级后 的应用能正常运行。
在步骤 206之前, 根据所述已部署的应用标识获取存储的已部 署的应用部署包的描述文件;根据获取的已部署的应用部署包的描 述文件确定所述已部署的应用部署包的描述文件中描述了将所述第 一平台节点模板作为源节点模板的第二平台节点模板;获取升级后 的第一平台节点对第二平台节点的版本需求以及第二平台节点版本; 确定第二平台节点的版本低于升级后的第一平台节点对第二平台节 点的版本需求;所述根据所述第一平台节点升级包, 升级所述第一 平台节点之前, 所述方法还包括: 根据所述升级后的第一平台节点 对第二平台节点的版本需求, 获取满足所述升级后的第一平台节点 对第二平台节点的版本需求的第二平台节点升级包; 根据所述第二 平台节点升级包, 升级所述第二平台节点。
此外, 所述获取第二平台节点的版本具体为: 根据所述第二平 台节点模板的标识以及第一平台节点的标识获取第二平台节点的标 识, 所述第二平台节点的标识与第二平台节点模板的标识对应, 且 部署编号与第一平台节点的标识对应的编号相同。
进一步的, 应用部署服务器在确定所述已部署的应用部署包的 描述文件中描述了将第一平台节点模板作为源节点模板的第二平台 节点模板之后, 获取升级后的第一平台节点对第二平台节点的版本 需求以及第二平台节点的版本。
本发明实施例提供了一种应用升级方法, 该方法可以由用户设 备执行。 如图 3所示, 该方法包括:
步骤 30 1、 生成待部署的应用部署包, 所述待部署的应用部署 包描述了待部署的应用节点模板、 第一平台节点模板的标识、 已部 署的应用节点模板的标识、 待部署的应用节点模板对所述第一平台 节点模板的版本需求、 以及所述待部署的应用节点模板用于对所述 已部署的应用节点模板的标识所指示的已部署的应用节点模板升级 的升级标识。
所述待部署的应用部署包进一步包括描述所述待部署的应用节 , ^模板的关系模板, 所述升级标识携带在描述所述待部署的应用节 点模板的关系模板中;或, 所述待部署的应用部署包进一步待部署 的应用节点模板对应的节点类型执行; 所述升级标识携带在所述节 点类型执行中, 所述升级标识为所述待部署的应用节点模板用于对 所述已部署的应用节点模板的标识所指示的已部署的应用节点模板 升级的升级标识。
步骤 302、 生成应用部署请求, 所述应用部署请求包含所述待 部署的应用部署包。
步骤 303、 向应用部署服务器发送所述应用部署请求。
由上述方案可知, 在待部署的应用部署包中的应用描述文件描 述了待部署的应用节点模板对第一平台节点模板的版本需求。 因 此, 应用部署服务器在确定第一平台节点的版本低于所述待部署的 应用节点模板对第一平台节点模板的版本需求时, 可以根据所述待 部署的应用节点模板对第一平台节点模板的版本需求获取第一平台 节点升级包。 之后, 应用部署服务器根据获取的第一平台节点升级 包升级第一平台节点。 使得升级后第一平台节点的版本满足所述待 部署的应用节点模板对第一平台节点模板的版本需求, 从而确保升 级后的应用能正常运行。 具体的, 应用部署服务器在收到所述待部 署的应用部署包之后, 可以执行图 2描述的应用部署服务器执行的 任一动作。 本发明实实例在此不再详述。
进一步的, 所述待部署的应用部署包还可以包括: 与所述已部 署的应用节点模板的标识对应的至少一个已部署的应用节点的标 识, 以便于所述应用部署服务器使用所述待部署的应用部署包, 升 级所述已部署的应用节点的标识指示的应用节点。
特别的, 步骤 301之前, 该方法进一步包括: 根据已部署的应 用部署包的描述文件, 确定所述已部署应用标识指示的已部署应用 的第一平台节点模板, 所述第一平台节点模板将已部署的应用节点 模板作为源节点模板。
这样一来, 由于在待部署的应用部署包中的应用描述文件描述 了待部署的应用节点模板对第一平台节点模板的版本需求。 当应用 部署服务器在确定第一平台节点的版本低于所述待部署的应用节点 模板对第一平台节点模板的版本需求时, 应用部署服务器会根据所 述待部署的应用节点模板对第一平台节点模板的版本需求获取第一 平台节点升级包。 之后, 应用部署服务器根据获取的第一平台节点 升级包升级第一平台节点。 使得升级后第一平台节点的版本满足所 述待部署的应用节点模板对第一平台节点模板的版本需求, 从而确 保升级后的应用能正常运行。 本发明实施例提供一种应用升级方法, 假设该应用升级方法应 用于 TOSCA标准, 如图 4所示, 包括:
步骤 401、 应用部署服务器对应用部署包进行部署。
对应用部署包进行部署的过程与现有技术相同。 本发明实施例 假设用户设备向应用部署服务器提交的应用部署包为应用部署包 B , 该应用部署包 B的标识 (也就是应用的标识) 为 appB。 所述应 用部署包中的描述文件中描述了节点模板 app、 节点模板 apache和 节点模板 j avaModule、 描述了节点模板 app对节点模板 apache的部 署需求 (如版本需求) 的关系模板、 描述节点模板 apache对节点模 板 j avaModule的部署需求的关系模板。 其中节点模板 app为应用部 署包 B部署的应用节点模板, 由用户设备负责提供资源。 即在应用 部署包 B 中包括针对节点模板 app的部署制品和方法制品等。 节点 模板 apache和节点模板 j avaModule是平台节点模板, 由 C SP服务 器负责提供资源, 并保证所提供的资源满足所述应用部署包中的所 有部署需求。 假设应用部署服务器根据所述应用部署包 B成功部署 运行该应用, 并将上述两个关系模板中的内容写入应用部署服务器 所维护的数据库中的应用信息表中, 如表 1 所示。 本发明实施例 中, 将已成功部署并运行的应用 appB称为已部署的应用。 表 1应用信息表
步骤 402、 用户设备生成待部署的应用部署包。 所述待部署的 应用部署包是针对已部署的应用 ( appB ) 的升级包。
假设所述针对已部署的应用的升级包(即待部署的应用部署包) 为应用部署包 A , 该应用部署包 A可以将应用节点模板 app (也就是 已部署的应用节点模板的标识)对应的应用节点升级。 具体的, 应 用部署服务器在收到应用部署包 appB后, 根据 appB部署该应用。 并针对 appB 包中的各节点模板生成节点, 如应用节点和平台节 点, 使得各节点模板与已成功部署并运行的节点对应。
所述应用部署包 A 的描述文件描述了待部署的应用节点模板 appPatch , 并在描述待部署的应用节点模板 appPatch 的关系模板中 描述了对已部署的应用节点模板 app 的升级标识。 进一步的, 所述 升级标识还可以在待部署的应用节点模板 appP atch 对应的 NTI 中 描述。
进一步的, 用户设备在生成应用部署包 A 之前, 还要根据 appB的描述文件确定在描述待部署的应用节点模板 app的关系模板 中将应用节点模板 app 作为源节点模板, 而将平台节点模板作为目 的平台节点模板。 作为一个例子, 通过分析 appB 的描述文件的关 系模板描述的内容, 可知应用节点模板 app 就作为源节点模板, 而 平台节点模板 apache作为目标节点模板。 因此, 用户设备在应用部 署包 A的描述文件中描述待部署的应用节点模板 appPatch对已部署 的平台节点模板 apache的版本需求。 具体的, 版本需求的内容由用 户设备根据对应用节点的升级内容确定。 比如要求平台节点模板 apache支持 Servlet 3.0 , 从而需要将平台节点 apache升级到 Tomcat 7.0。 该版本需求表明应用节点模板 app 所对应的应用节点经过 appA 升级之后, 平台节点模板 apache 所对应的平台节点能够支持 Servlet 3.0 ( 即所述平台节点需要升级到 Tomcat 7.0 ) , 才能保证升 级后的应用节点模板 app所对应的应用节点能够正常运行。
具体的, 用户设备获取 appB 的描述文件的方式可以为: 从自 身存储的文件中获取 appB 的描述文件, 或通过向应用部署服务器 发送请求获取 appB的描述文件。
所述应用部署包 A还提供了应用节点 appPatch的部署制品和方 法制品, 所述方法制品为 patchApp。 在本发明实施例中, 为了描述 方便, 将待部署的应用节点模板 appPatch对已部署的平台节点模板 的版本需求中的平台节点模板称为第一平台节点模板, 而将第一平 台节点模板对另一平台节点模板的版本需求中的另一平台节点模板 称为第二平台节点模板。 具体的, 所述版本需求可以为版本需求, 所述版本需求可以为具体的版本号或某版本具有的某个能力。
应用部署包 A 中的应用标识为 appA , 应用节点模板的标识为 appPatch。 图 5 为为本发明实施例中应用部署服务器根据应用部署 包 A的描述以及应用部署包 B描述而得出的升级应用节点 app的示 意图。 如图 5所示, 根据应用部署包 A的描述文件, 可知应用部署 包 A描述的应用节点模板 appPacth为针对已部署的应用部署包 B中 描述的应用节点模板 app的升级节点。 比如通过 PatchFor字段描述 出两个节点模板之间的关系的标识 (如升级标识) , 当然还可以通 过别的字段描述出升级标识, 本发明实施例在此不做限定。 此外, 应用部署包 A还描述了应用节点模板 appPacth对于已部署的应用部 署 包 B 中 描述的平 台 节点模板 apache 的版本需 求 , 通过 Requirement For Apache ( Apache为平台节点模板 ) 的形式表示。 其 中 PatchForApp指应用部署包 A中的 appPatch节点模板是用于 App 应用节点模板的升级, RequirementForApache 描述了应用节点模板 appPatch对平台节点模板 apache的版本需求。 由于应用部署包 B为 已经部署的应用的部署包, 且 appA 为针对应用节点模板 app 的升 级。 因此在 appA 中, 需要调用到一些在应用部署包 B 的应用描述 文件 appB.tosca中所描述的元素。 在 appA的描述文件中, 需要导入 appB 的描述文件。 比如, 可以通过属性 location给出该 appB.tosca 文件的 URL ( UniformResourceLocator, 统一资源定位符 URL ) , 具体调用程序如下:
<Import
name space="appB: http://www.example.com/ste/Topology"
location=http: //www. example.com/ste/appB. to sea importType="
http://docs.oasis-open.org/tosca/ns/2011/12"/> 作为一个例子, 在 appA.tosca的 TopologyTemplate元素中, 给 出了图 5所示的应用拓朴结构的描述, 具体可以如下所示:
<TopologyTemplate>
<NodeTemplate 标识 ="appPatch,, type="apppatchtype">
<Requirements>
<Requirement name=" requirementOfApp" II给 出 appPatch的版本需求
type=" webAppContainerRequirement"/>
</Requirements>
<DeploymentArtifacts>
<Deployment Artifact name="DaOf AppPatch" artifactType="Patch">
〃部署制品类型为 Patch
... ... //部署制品的具体描述
</DeploymentArtifact>
</ Deployment Artifacts >
</NodeTemplate>
<RelationshipTem late 标识 ="PatchForApp,, type="PatchFor"> 〃逻辑关系为 PatchFor
<SourceElement ref="appPatch"/>〃還辑关系源为 appPatch <TargetElement externalref="appB : app"/>〃還辑关系 目标为 app
</RelationshipTemplate>
<Relationshi Template 标识 ="RequirementForApache,, > II 需求关系
<S ourceElement ref="requirementOfAppPatch"/>〃需求关系 源为 appPatch的版本需求
<TargetElement externalref="appB : capability Of Apache"/> // 需求关系 目标为 apache的部署能力
</RelationshipTemplate> <Plans>
<Plan 标 识 ="upgrade" plan Type="http : //www. example.com/UpgradeP lan" >〃升级计 ¾J
... ... //其他管理计划
</Plan>
</TopologyTemplate> 具体的, 应用部署包 A中在拓朴模板 TopologyTemplate中用节 点模板 NodeTemplate元素定义了应用节点模板 appPatch , 并在节点 模板元素 中 指 明 了 版本需 求 requirementOfApp 和部署制 品 DaOfAppPatch。 通过关系模板 PatchForAp 指明所述 appPatch应用 节点模板与应用部署包 B 中 app 应用节点模板存在升级标识, 如 PatchFor。 在升级标识 PatchForApp 中, 通过 SourceElement指明源 应用节点模板的标识(待部署的应用节点模板的标识) appPatch , 通 过 TargetElement指明 目标应用节点模板的标识( 已部署的应用节点 模板的 标识 ) appB : app。 在 TargetElement 的描述 中 , 属性 "externalref"表明了应用节点模板 app定义在外部应用描述文件中, 通过前缀 "appB"和 "Import"元素指名 了 该外部应用描述文件为 appB .tosca 。 此 夕卜 , 关 系 模 板 RelationshipTemplate 的 RequirementForApache定义了所述 appPatch应用节点模板对应用部 署包 B 中 Apache 的版本需求。 在需求关系 RequirementForApache 中 , 通 过 SourceElement 定 义 了 源 版 本 需 求 requirementOfAppPatch , 通过 TargetElement 定义了 目标部署能力 appB : cap ability Of A ache。 在 TargetElement 的 描 述 中 , 属 性 "externalref"表明部署能力 capabilityOfApache定义在外部应用描述 文件中, 前缀" appB"和" Import"元素指出了该外部应用描述文件为 appB .tosca。 拓朴 中 还定义 了 升级计 划 upgrade , 其类 型 为 http:〃 www. example.com/UpgradePlan。
其中, 应用节点模板 appPatch的节点类型 NodeType 的描述如 下:
<NodeType name="apppatchtype">
<Interfaces>
<Interface name="patchAppInterface">
<OperationName="patchApp"/>〃定义方法 atchApp </Interface>
</Interfaces>
<RequirementDefinitions>〃节点 appPatch的版本需求定义
<RequirementDefinition
name="requirementOf AppPatch" requirementType="webAppContainerRequirement">
<Constraints>
<Contraint constraintType=
"http ://www. example. com/
Property Constraints/supportServlet3 "/>
</Constraints>
</RequirementDefinition>
</RequirementDefinitions>
</NodeType>
在该 NodeType 中给出了应用节点模板 appPatch 的方法制品 patchAp 的定义和版本需求 requirementOf AppPatch的定义。 其中, 方法制品 patchApp将在应用部署服务器执行升级计划中被调用, 版 本需求 requirementOfAppPatch 的中的约束 Contraint字段, 其属性 约 束 类 型 constraintType 取 值 http ://www.example. com/PropertyConstraints/supportServlet3 表明, 应用部署服务器需要根据上述取值, 在数据库中查找哪个软 件版本包含了这个 supportServlet3的能力, 。
需要说明的是, 应用部署包 A的描述文件中还可以进一步包含 已部署的应用节点的标识如 app l。 所述已部署的应用节点的标识为 需要升级的应用节点的标识。 也可以在上述描述中通过升级标识如 apptchFor 指明待升级应用节点模板的标识如: app。 如果应用部署 包 A的描述文件中没有单独指示包含已部署的应用节点的标识, 在 升级标识中仅指示了 已部署的应用节点模板的标识如 app。 则应用 部署服务器在进行应用升级时, 会针对已部署的应用节点模板的标 识 app所对应的所有应用节点进行升级。 比如, appB首先在南京进 行部署, 然后在上海进行了部署, 则已部署的应用节点模板的标识 对应的应用节点有: 南京的应用节点 app l 和上海的应用节点 app2。 当应用每次部署时, 会产生一个编号, 例如 appB 在南京部 署时产生编号 1 , 表明 app l 是 appB 第 1 次部署产生的, 在上海部 署时产生编号 2 , 表明 app2是 appB 第 2次部署产生的, 该编号可 以用于判断哪些节点是属于同一次部署产生的。 在待部署的应用部 署包包含已部署的应用节点的标识时, 部署包 appA 中的计划可以 如下:
<Plan 标 识 ="upgrade" plan Type="http : //www. example.com/UpgradePlan" >
<InputParameters>
<InputParameter name="applnstance 标 识 " type="string">app l </InputParameter >
<InputParameter name="stopPlan 标识 " type="string">stop</ InputParameter >
<InputParameter name="startPlan标识" type="string" >start</ InputParameter >
</InputParameters> <PlanModel>
invokePlan(appInstance标识, stopplan标识);
patchApp(appInstance标识);
invokePlan(appInstance标识, startPlan标识);
</PlanModel>
</Plan> 在该描述中首先定义了输入参数, 其中输入参数 " applnstance 标识 " 指明了 已部署的应用节点的标识为 app 1。 接口 invokePlan是 应用部署服务器向用户设备提供的 API , 用户设备可以通过调用该 API来访问定义在应用部署包 A的管理计划。 该 API有两个参数, 第一个参数为已部署的应用节点的标识, 第二个参数是需要调用的 计划标识。 在元素计划模型 PlanModel 中给出了该计划的各个步 骤。
当应用部署包 A中不指明已部署的应用节点的标识时, 升级计 划如下:
<Plan 标 识 ="upgrade" plan Type="http : //www. example.com/UpgradePlan" >
<InputParameters>
<InputParameter name="stopPlan标识 " type="string">stop</ InputParameter >
<InputParameter name="startPlan标识" type="string" >start</ InputParameter >
</InputParameters>
<PlanModel>
appB : stopplan〃定义在 appB .tosca中;
patchApp;
appB : startplan〃定义在 appB .tosca中; </PlanModel>
</Plan> 在该描述中没有指明已部署的应用节点的标识, 则应用部署服 务器获取所述已部署应用节点模板的标识 app , 并根据应用标识 appB找到与已部署的应用模板标识 app对应的所有已部署的应用节 点的标识 (如 app 1和 app2 ) , 对已部署的应用节点模板的标识 app 对应的所有 已部署的应用 节点进行升级。 用 户 设备直接执行 " appB: 计划" 来调用定义在 appB .tosca中的计划来生成该升级。
上述程序可以使得应用部署服务器获知已部署应用的标识是 " appB " 、 已部署的应用节点模板的标识 " app " 对应的应用节点 需要升级。
步骤 403、 用户设备生成应用部署请求, 所述应用部署请求包 含所述应用部署包 A。
步骤 404、 应用部署服务器接收应用部署请求。
步骤 405、 应用部署服务器判断所述部署包为针对已部署的应 用 ( appB ) 的升级包。
具体的, 所述待部署的应用部署包的描述文件可以描述了待部 署的应用节点模板、 第一平台节点模板的标识、 已部署的应用节点 模板的标识、 待部署的应用节点模板对第一平台节点模板的版本需 求以及所述待部署的应用节点模板与所述已部署的应用节点模板升 级的升级标识。
应用部署服务器根据所述待部署的应用节点模板用于对所述已 部署的应用节点模板的标识所指示的已部署的应用节点模板升级的 升级标识确定所述部署包为针对已部署应用的升级包。
作为一个例子, 应用部署服务器检查应用部署包 A的部署描述 文件 appA.tosca , 发现描 述文件 appA.tosca 包含升级标识 " PatchFor" , 和 /或源应用节点模板 ( 即待部署的应用节点模板) appPatch 的部署制品类型为 " Patch" 。 应用部署服务器可以识别 PatchFor 关系类型, 或部署制品的类型为 "Patch" , 从而可以确定应 用部署包 A为升级包。 进一步的, 应用部署服务器还可以检查升级 计 划 upgrade 发 现 其 类 型 为
" http ://www. example. com/UpgradePlan " , 确定该计戈l是用于升级 的计划, 从而确定判断应用部署包 A是升级包。
步骤 406、 应用部署服务器根据待部署的应用部署包升级已部 署的应用节点。
如图 6所示, 应用部署服务器升级所述已部署的应用节点的步 骤具体如下:
步骤 4061、 获取第一平台节点的标识。 执行步骤 4062。
应用部署服务器在收到待部署的应用部署包 A后, 根据应用部 署包 A的描述文件中的 " Import" 元素中包含的描述文件的 URL , 从应用部署服务器存储的部署包信息表中查找到该描述文件的位置 File:〃 ste/appB .tosca 。 然 后 通 过 该 描 述 文 件 的 位 置 File ://ste/appB .tosca获取应用部署包 B 的描述文件。 该部署包信息 表如表 2所示。 表 2部署包信息表
如图 7所示, 在 appB .tosca的拓朴描述中, 定义了 已部署的应 用节点模板 app、 平台节点模板 apache和 j avaModule , 并定义了这 些节点模板之间的关系。 下面给出主要信息在拓朴描述中的定义。
<TopologyTemplate>
<NodeTemplate 标识 ="app,, type="apptype" >
<Requirement name=" requirementOfApp"
type=" webAppContainerRequirement"/> 〃给出 app的版本需求
</NodeTemplate>
<NodeTemplate 标识 ="apache,, type="appcontainertype">
<Capability name="capability Of Apache"
type="webAppContainerCap ability "/>
〃给出 apache的部署能力
<Requirement name=" requirementOf Apache"
type=" JMRequirement"/>〃给出 apache的版本需求 <DeploymentArtifacts> 〃给出 apache的部署制品信息 <Deployment Artifact name="DaOf A ache"
artifactType="appContainer">
... ... //给出部署制品的具体描述
</DeploymentArtifact>
</ Deployment Artifacts >
</NodeTemplate>
<NodeTemplate 标识 ="j avaModule,, type="j avamoduletype"> 〃给出 j avaModule的部署能力
<Capability name="capabilityOfJM" type="JMCapability"/> </NodeTemplate>
<RelationshipTemplate 标识 ="RequirementForApache,, > 〃需 求关系
<SourceElement ref="requirementOfApp"/>〃需求关系源为 ap 的版本需求
<TargetElement ref="capabilityOfApache"/>〃需求关系 目标 为 apache的部署能力
</RelationshipTemplate> <RelationshipTem late 标识 ="RequirementForJM,, > 〃需求关 系
<SourceElement ref="requirementOfApache"/> 〃需求关系 源为 apache的版本需求
<TargetElement ref="capabilityOfJM"/> 〃需求关系 目标为 apache的部署能力
</RelationshipTemplate>
//其他定义
<Plans>
<Plan 标 识 ="start" planType="http ://www. example. com/StartPlan"/>〃定义管理计 ¾J start
<Plan 标 识 ="stop" plan Type="http : //www. example. com/StopPlan"/>〃定义管理计 ¾J stop
... ... //其他管理计划
</Plans>
</TopologyTemplate>
在平 台 节 点模板 apache 的 定义 中 , 描 述 了 部 署 能 力 capabilityOfApache , 对该部署 能力 的 定义 包含在 apache 的 NodeType 的能力定义 CapabilityDefinition 元素中。 平台节点模板 apache 中还给出 了部署制品 DaOfApache 的描述。 平台节点模板 j avaModule 的定义中, 描述了部署能力 capabilityOfJM , 对该部署 能力的定义包含在 j avaModul 的 NodeType 的 CapabilityDefinition 中。 在拓朴描述中还描述了 start和 stop管理计划。 本实施例中, 部 署能力为对平台节点模板的版本需求, 如某版本具有的能力, 或支 持的版本。
¾ ^口, 平台节 、模板 apache的 NodeType 4笛述 ¾口下:
<NodeType name="appcontainertype">
<CapabilityDefinitions> //apache节点的部署能力定义 <Capability Definition name="capability Of A ache" capabilityType="webAppContainerCap ability ">
<Constraints>
<Contraint constraintType= "http ://www. example. com/
Property Constraints/supportServlet2"/>
</Constraints>
</CapabilityDefinition>
</CapabilityDefinitions>
</NodeType>
在 apache 的 NodeType 中给出了部署能力 capabilityOfApache 的定义, 在该定义中给出了约束 Contraint , 其属性值 constraintType 表明了该能力 "支持 Servlet 2.0" 。
应用部署服务器可以首先判断应用部署包 appA 中是否包括已 部署的应用节点的标识 " app l " , 该已部署的应用节点的标识 " app l " 用于指示需要升级的应用节点。 若已部署的应用部署包包 括已部署的应用节点的标识, 应用部署服务器可以在数据库中获取 所述已部署的应用节点的标识指示的已部署的应用节点; 根据所述 待部署的应用部署包, 升级所述已部署的应用节点的标识指示的应 用节点。 比如, 假设应用部署请求中的计划中描述已部署的应用节 点的标识为 " app l " , 应用部署服务器会在其存储的部署应用信息 表中查找已部署的应用节点的标识 app l。
若待部署的应用部署包不包括该已部署的应用节点的标识 " app l " , 则应用部署服务器根据所述已部署应用节点模板的标 识获取与所述已部署应用节点模板的标识对应的所有已部署的应用 节点的标识; 使用所述待部署的应用部署包分别升级每个已部署的 应用节点的标识指示的应用节点。 进一步的, 在升级每一个应用节 点之前, 应用部署服务器确定版本低于所述待部署的应用节点模板 对第一平台节点模板的版本需求的第一平台节点的标识, 使用所述 第一平台节点升级包, 升级所述第一平台节点的标识指示的第一平 台节点。
需要说明的是, 由于同一个应用可以部署多次, 因此一个应用 节点模板的标识可以对应多个应用节点的标识。 在所述待部署的应 用部署包没有指定应用节点的标识时, 应用部署服务器确定升级与 应用部署请求中 已部署的应用节点模板的标识对应的所有应用节 点。 应用部署服务器根据所述已部署的应用节点模板的标识确定待 升及的应用节点的标识具体为: 确定与所述已部署的应用节点模板 的标识对应的所有的应用节点的标识为待升级的应用节点的标识。 因此需要获取所有应用节点的标识。 比如, 假设已部署的应用节点 模板的标识为 app , 应用部署服务器可以根据 app 在部署应用信息 表中查找与应用节点模板 app 对应的所有应用节点的标识, 得到应 用节点的标识为 {app l , app2 }。 应用部署服务器分别对每一个应用 节点 app l 和 app2进行升级。 进一步的, 应用部署请求中还可以包 含已部署的应用标识 (作为一种可选方式, 已部署的应用标识可以 为已部署的应用部署包的标识或应用描述文件的 URL或应用描述文 件的位置) 。 应用部署服务器在根据应用节点模板的标识 app 在部 署应用信息表中查找与应用节点模板 app 对应的所有应用节点的标 识具体为: 应用部署服务器根据已部署的应用部署包的标识或应用 描述文件的 URL或应用描述文件的位置, 在存储的部署应用信息表 中查找已部署应用的与应用节点模板 app 对应的所有应用节点的标 识, 得到应用节点的标识为 {app l , app2 }。 分别对每一个应用节点 进行升级。
所述部署应用信息表如表 3 所示。 所述部署应用信息表记录了 节点的标识, 已部署应用的标识和节点模板的标识的对应关系, 用 部署编号表明某次应用部署, 具有相同部署编号的节点为应用在同 一次部署中产生。 所述节点的标识即包括应用节点的标识和平台节 点的标识。 表 3部署应用信息表
步骤 4062、 判断第一平台节点的版本是否满足所述待部署的 应用部署包中描述的所述待部署的应用节点模板对第一平台节点模 板的版本需求。 若否, 执行步骤 4063, 若是, 执行步骤 4068。
首先, 应用部署服务器根据待升级的应用节点的标识 appl 及 部署编号 1, 根据第一平台节点模板的标识从数据库中获取具有相 同部署编号 1 的第一平台节点的标识 Apachel。 根据所述第一平台 节点的标识 Apachel 获取所述第一平台节点的版本。 具体的, 应用 部署服务器根据第一平台节点 Apachel 的标识, 在数据库中进行查 找, 获取第一平台节点 Apachel 的部署能力, 本实施例假设所述第 一平台节点 Apache 1 当前的部署制品是 Tomcat 6.0, 如表 4所示, 只能支持 Servlet 2.0, 因此第一平台节点 Apachel 的版本为 Tomcat 6.0。
假设已部署的应用节点的标识为 appl, 根据第一平台节点模板 标识从表 3中获取具有与 appl相同部署编号的第一平台节点的标识 Apachel 。 在 CSP 存 储 的 应 用 实 现 信 息 表 中 , 获 取 capabilityOfApache的 apachel 中只能提供 "支持 Servlet 2.0" 的部 署能力, 即获取第一平台节点的标识 apachel 指示的平台节点支持 的版本为 Tomcat 6.0。 所述应用实现信息表如表 4所示。 表 4应用实现信息表
因此, 应用部署服务器根据所述第一平台节点模板的标识获取 所述第一平台节点的版本, 确定所述第一平台节点的版本不能满足 所述待部署的应用节点模板对第一平台节点模板的版本需求。 例 如, 应用部署服务器根据表 3 中的第一平台节点模板的标识获取第 一平台节点 Apache 1 和 Apache2 , 并确定第一平台节点 Apache 1 的 版本只 supportServlet2 或 Tomcat 6.0 , 而不能满足待部署的应用节 点模板对第一平台节点模板的版本需求, 支持 Servlet3.0 或 Tomcat 6.0。 因此, 执行步骤 4063。
假设应用部署请求包含了 已部署的应用节点的标识,如 app2,则 应用部署服务器还需要确定具有 app2相同的部署编号的第一平台节 点 Apache2 的版本。 具体的应用服务器根据所述第一平台节点模板 的标识获取所述第一平台节点的版本为: 获取应用节点的标识指示 的应用节点的部署编号, 根据第一平台节点模板的标识获取具有应 用节点的编部编号相同的部署编号第一平台节点的标识。 也就是说, 所述获取的第一平台节点的标识对应的部署编号与所述应用节点的 标识对应的部署编号相 同 。 根据获取的第一平 台 节点的标识 Apache2确定第一平台节点 Apache2的版本为 Servlet3.0。 从而确定 第一平台节点的能力满足待部署的应用节点模板对第一平台节点模 板的版本需求。
步骤 4063、 获取第一平台节点升级包。 具体的: 根据所述待部署的应用节点模板对第一平台节点模板 的版本需求, 获取满足所述待部署的应用节点模板对第一平台节点 模板的版本需求的第一平台节点升级包。 比如: 首先根据第一平台 节点的标识获取第一平台节点的版本 ( 比如, 应用部署服务器可以 从平台节点的部署制品名中获取该平台节点的版本) , 并确定满足 所述待部署的应用节点模板对第一平台节点模板的版本, 然后获取 与所述确定的满足所述待部署的应用节点模板对第一平台节点模板 的版本对应的升级包。
作为一个例子, 应用部署服务器根据表 4从 Apache l 的部署制 品名中获取 Apache l 的版本为 Tomcat 6.0。 而通过部署制品信息表 (如表 5 ) 中, 高于 Apache l 的版本且可以满足待部署的应用节点 对 Apachel 需求的版本是 Tomcat 7.0。 然后, 应用部署服务器根据 确定的版本 Tomcat 7.0 , 从表 5中获取可以将 Apache l从 Tomcat 6.0 升 级 到 Tomcat 7.0 的 升 级 包 位 置 为 File ://appcontainer/apache/update/appE , 从 该 位 置 获取 升 级 包 appE。 表 5部署制品信息表
作为一种可选方式, 待部署的应用节点模板对第一平台节点模 板的版本需求, 还可以是版本支持的能力, 如 supports ervlet3。 本 发明实施例在此不再详述。
步骤 4064、 确定所述第二平台节点的版本低于所述第一平台 节点模板对第二平台节点模板的版本需求, 否则, 直接执行步骤 4067。
在执行此步骤 4064 之前, 应用部署服务器根据存储的已部署 的应用部署包的描述文件, 确定已部署的应用部署包的描述文件具 有将第一平台节点模板作为源节点模板的目标节点模板 ( 即为第二 平台节点模板) 。 进一步的, 应用部署服务器根据描述文件的关系 模板, 确定在关系模板中将第一平台节点模板作为源节点模板的目 标节点模板。 本发明实施例将所述将第一平台节点模板作为源节点 模板的目标节点模板作为第二平台节点模板。
仍以图 5为例, apache节点模板与 j avaModule节点模板之间有 箭头指向, 则在关系模板中, apache 节点模板作为源节点模板, 而 j avaModule作为 目标节点模板。 因此, j avaModule节点模板作为第 二平台节点模板。 而应用部署服务器根据源节点模板和目标节点模 板的版本需求匹配表 (如表 6 ) 确定, 第一平台节点 Apache将会升 级到 Tomcat 7.0。 第二平台节点模板 j avaModule的对应的节点需支 持 JDK 1 .6。 但是当前 JavaModule l 的版本是 JDK1 .5 , 因此第二平 台节点的版本 JDK1 .5 低于升级后的第一平台节点对第二平台节点 的版本需求 ( JDK 1 .6 ) 源节点模板和目标节点模板的版本需求匹配表
步骤 4065、 获取第二平台节点升级包。 执行步骤 4066。
具体的, 根据第一平台节点对第二平台节点的版本需求获取第 二第平台节点升级包。
假设应用部署服务器上维护了升级包 D , 该升级包可以将节点 模板 j avaModule 所对应平台节点升级到 JDK1 .6 , 则第二平台节点 升级包为升级包 D。
步骤 4066、 根据所述第二平台节点升级包, 升级第二平台节 点。 执行步骤 4067。
需要说明的是, 在步骤 4066 之前, 应用部署服务器还需要继 续确定已部署的应用部署包的描述文件是否具有将第二平台节点模 板作为源节点模板的目标节点模板 ( 即第三节点模板) 。 以及重复 执行步骤 4064 和 4065 ) , 直至升级后任意节点的版本需求均得到 满足。
步骤 4067、 根据第一平台节点升级包, 升级第一平台节点。 执行步骤 4068。
步骤 4068、 根据所述待部署的应用部署包, 升级所述已部署 应用的应用节点。
由于平台节点是应用部署服务器进行管理的, 而应用节点是用 户设备进行管理的, 已部署应用的应用部署包也是用户设备生成 的。 因此, 升级所述已部署的应用实际指的是升级已部署的应用对 应的应用节点。 所述升级过程可以根据获取的待部署的应用部署包 中计划 ( plan ) 描述的信息来升级, 所述应用部署包描述了待部署 的应用节点模板、 第一平台节点模板的标识、 已部署的应用节点模 板的标识、 待部署的应用节点模板对第一平台节点模板的版本需求 以及所述待部署的应用节点模板与所述已部署的应用节点模板升级 的升级标识, 可以使用所述待部署的应用部署包, 升级所述已部署 的应用节点模板的标识指示的应用节点。
由于平台节点的升级包是应用部署服务器维护的, 如果安装失 败, 除非应用部署服务器能够及时响应失败保证平台节点升级最终 成功, 否则应用升级必定失败, 应用节点即使升级成功也是无发正 常运行。 如果先升级平台节点, 如果应用节点升级失败, 则很可能 是用户设备在构造应用节点升级包的过程中引入了错误, 此时 C SP 可以将错误信息返回给用户设备, 所述错误信息包含发生错误的应 用节点的标识, 由用户设备进行修改之后再提交新的待部署的应用 部署包, 应用部署服务器只需安装修改过的待部署的应用部署包, 无需再去对平台节点进行升级。 因此, 在上述升级过程中, 当获取 了第一应用节点的待部署的应用部署包、 第一平台节点的升级包、 第二平台节点的升级包直至第 n平台节点升级包时, 可以按照从后 往前的顺序, 依次升级第 n平台节点、 第 n- 1 平台节点, 直至第二 平台节点、 第一平台节点及第一应用节点。
步骤 407、 应用部署服务器向用户设备返回升级响应信息。 特别的, 在每个平台节点成功升级后, 由于其具备了新的版 本, 因此需要将该平台节点新的版本写入数据库。
例如, 在使用升级包 appE 升级平台节点 Apache l 后, 因为平 台 节 点 Apache l 节 点 升 级 成 功 后 具 有 了 新 的 版 本 " supportServlet3 " , 因此需要将应用实现信息表中的部署制品名 和能力描述进行更新, 更新后的应用实现信息表如表 7 所示。 其 中, 能务描述或部署制品名都可以体现平台节点的版本。 表 7应用实现信息表
需要说明的是, 本发明实施例提供的应用升级方法步骤的先后 顺序可以进行适当调整, 步骤也可以根据情况进行相应增减, 任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易想 到变化的方法, 都应涵盖在本发明的保护范围之内 , 因此不再赘 述。
由以上方案可知, 本发明实施例提供的应用升级方法, 在待部 署的应用部署包中的应用描述文件描述了待部署的应用节点模板对 第一平台节点模板的版本需求。 当应用部署服务器在确定第一平台 节点的版本低于所述待部署的应用节点模板对第一平台节点模板的 版本需求时, 应用部署服务器会根据所述待部署的应用节点模板对 第一平台节点模板的版本需求获取第一平台节点升级包。 之后, 应 用部署服务器根据获取的第一平台节点升级包升级第一平台节点。 使得升级后第一平台节点的版本满足所述待部署的应用节点模板对 第一平台节点模板的版本需求, 从而确保升级后的应用能正常运 行。 本发明实施例提供一种应用部署服务器 80 , 如图 8 所示, 包 括:
接收模块 801 , 用于接收应用部署请求, 所述应用部署请求包 含待部署的应用部署包; 所述待部署的应用部署包描述了待部署的 应用节点模板、 已部署应用的标识、 已部署的应用节点模板的标 识、 第一平台节点模板的标识、 待部署的应用节点模板对第一平台 节点模板的版本需求、 以及所述待部署的应用节点模板用于对所述 已部署的应用节点模板的标识所指示的已部署的应用节点模板升级 的升级标识, 并将所述待部署应用的应用部署包发送至确定模块 802和升级模块 803 ;
所述确定模块 802 , 用于接收所述接收模块 801 发送的所述待 部署应用的应用部署包, 并根据所述升级标识确定所述待部署的应 用部署包为所述已部署应用的标识指示的已部署应用的升级包;以 及用于根据所述已部署的应用标识获取与所述第一平台节点模板的 标识对应的第一平台节点的标识, 以及获取所述第一平台节点的标 识指示的第一平台节点的版本; 以及用于确定所述第一平台节点的 版本低于所述待部署的应用节点模板对第一平台节点模板的版本需 求; 需要说明的, 所述升级标识为所述待部署的应用节点模板用于 对所述已部署的应用节点模板的标识所指示的已部署的应用节点模 板升级的升级标识。
根据所述待部署的应用节点模板对第一平台节点模板的版本需 求, 获取满足所述待部署的应用节点模板对第一平台节点模板的版 本需求的第一平台节点升级包, 发送所述第一平台节点升级包至升 级模块;
所述升级模块 803 , 用于接收所述确定模块 802发送的所述第 一平台节点升级包, 使用所述第一平台节点升级包, 升级所述第一 平台节点的标识指示的所述第一平台节点;
所述确定模块 802进一步用于根据所述已部署的应用节点模板 的标识确定待升级的应用节点的标识, 并发送所述待升级的应用节 点的标识至升级模块 803 ;
所述升级模块 803 , 进一步用于接收所述接收模块 801 发送的 所述待部署应用的应用部署包, 并接收所述确定模块 802发送的所 述待升级的应用节点的标识, 以及用于使用所述待部署的应用部署 包升级所述待升级的应用节点的标识指示的应用节点。
这样一来, 在待部署的应用部署包中的应用描述文件描述了待 部署的应用节点模板对第一平台节点模板的版本需求。 当确定模块 在确定第一平台节点的版本低于所述待部署的应用节点模板对第一 平台节点模板的版本需求时, 升级模块会根据所述待部署的应用节 点模板对第一平台节点模板的版本需求获取第一平台节点升级包。 之后, 升级模块根据获取的第一平台节点升级包升级第一平台节 点。 使得升级后第一平台节点的版本满足所述待部署的应用节点模 板对第一平台节点模板的版本需求, 从而确保升级后的应用能正常 运行。
需要说明的, 所述待部署的应用部署包进一步包括描述所述待 部署的应用节点模板的关系模板, 所述升级标识携带在所述关系模 板中;或
所述待部署的应用部署包进一步包括待部署的应用节点模板对 应的节点类型执行, 所述升级标识携带在所述节点类型执行中。
进一步的, 所述确定模块 802具体用于: 确定与所述已部署的 应用节点模板的标识对应的所有的应用节点的标识为待升级的应用 节点的标识; 或
当所述待部署的应用部署包还包括: 与所述已部署的应用节点 模板的标识对应的至少一个已部署的应用节点的标识时, 所述确 定待升及的应用节点的标识具体为:
确定所述应用部署包包括的与所述已部署的应用节点模板的标 识对应的所述至少一个已部署的应用节, 的标识为待升级的应用节 点的标识。
所述确定模块 802还用于:
根据所述已部署的应用标识获取存储的已部署的应用部署包的 描述文件;
根据获取的已部署的应用部署包的描述文件确定所述已部署的 应用部署包的描述文件中描述了将所述第一平台节点模板作为源节 点模板的第二平台节点模板;
获取升级后的第一平台节点对第二平台节点的版本需求以及第 二平台节点的版本;
确定所述第二平台节点的版本低于升级后的第一平台节点对第 二平台节点的版本需求;
根据所述升级后的第一平台节点对第二平台节点的版本需求, 获取满足所述升级后的第一平台节点对第二平台节点的版本需求的 第二平台节点升级包; 所述升级模块 803还用于:
根据所述第二平台节点升级包, 升级所述第二平台节点。
值得说明的是, 本发明实施例提供的应用部署服务器可以执行 图 2到图 6 中描述的应用部署服务器执行的任何部骤。 本发明实施 例在此不再详述。
本发明提供的应用部署服务器, 在待部署的应用部署包中的应 用描述文件描述了待部署的应用节点模板对第一平台节点模板的版 本需求。 当确定模块在确定第一平台节点的版本低于所述待部署的 应用节点模板对第一平台节点模板的版本需求时, 升级模块会根据 所述待部署的应用节点模板对第一平台节点模板的版本需求获取第 一平台节点升级包。 之后, 升级模块根据获取的第一平台节点升级 包升级第一平台节点。 使得升级后第一平台节点的版本满足所述待 部署的应用节点模板对第一平台节点模板的版本需求, 从而确保升 级后的应用能正常运行。 本发明实施例提供一种用户设备 90 , 如图 9所示, 包括: 生成模块 901 , 用于生成待部署的应用部署包, 所述待部署的 应用部署包描述了待部署的应用节点模板、 已部署的应用的标识、 第一平台节点模板的标识、 已部署的应用节点模板的标识、 待部署 的应用节点模板对第一平台节点模板的版本需求、 以及所述待部署 的应用节点模板用于对所述已部署的应用节点模板的标识所指示的 已部署的应用节点模板升级的升级标识;
所述生成模块 901 进一步用于生成应用部署请求, 向发送模块 902 发送所述应用部署请求, 所述应用部署请求包含所述待部署的 应用部署包;
所述发送模块 902 , 用于接收所述生成模块 901 发送的所述应 用部署请求, 向应用部署服务器发送所述应用部署请求。
这样一来, 用户设备的生成模块生成待部署的应用部署包, 在 待部署的应用部署包中的应用描述文件描述了待部署的应用节点模 板对第一平台节点模板的版本需求。 当应用部署服务器在确定第一 平台节点的版本低于所述待部署的应用节点模板对第一平台节点模 板的版本需求时, 应用部署服务器会根据所述待部署的应用节点模 板对第一平台节点模板的版本需求获取第一平台节点升级包。 之 后, 应用部署服务器根据获取的第一平台节点升级包升级第一平台 节点。 使得升级后第一平台节点的版本满足所述待部署的应用节点 模板对第一平台节点模板的版本需求, 从而确保升级后的应用能正 常运行。
需要说明的, 所述待部署的应用部署包进一步包括描述所述待 部署的应用节点模板的关系模板, 所述升级标识携带在所述关系模 板中;或
所述待部署的应用部署包进一步待部署的应用节点模板对应的 节点类型执行, 所述升级标识携带在所述节点类型执行中。
其中, 所述生成模块 901 生成的所述待部署的应用部署包还包 括: 与所述已部署的应用节点模板的标识对应的至少一个已部署的 应用节点的标识。
进步一的, 所述用户设备还包括, 如图 10 所示: 确定模块 903 , 用于根据已部署的应用部署包的描述文件, 确定所述已部署 应用标识指示的已部署应用的第一平台节点模板, 所述第一平台节 点模板将已部署的应用节点模板作为源节点模板。
值得说明的是, 本发明实施例提供的用户设备可以执行图 2到 图 6 中描述的用户设备执行的任何部骤。 本发明实施例在此不再详 述。
本发明实施例提供的用户设备, 用户设备的生成模块生成待部 署的应用部署包, 在待部署的应用部署包中的应用描述文件描述了 待部署的应用节点模板对第一平台节点模板的版本需求。 当应用部 署服务器在确定第一平台节点的版本低于所述待部署的应用节点模 板对第一平台节点模板的版本需求时, 应用部署服务器会根据所述 待部署的应用节点模板对第一平台节点模板的版本需求获取第一平 台节点升级包。 之后, 应用部署服务器根据获取的第一平台节点升 级包升级第一平台节点。 使得升级后第一平台节点的版本满足所述 待部署的应用节点模板对第一平台节点模板的版本需求, 从而确保 升级后的应用能正常运行。 本发明实施例提供一种应用部署服务器 1 10 , 如图 1 1所示, 包 括:
接收机 1 1 1 , 用于接收应用部署请求, 所述应用部署请求包含 待部署的应用部署包; 所述待部署的应用部署包描述了待部署的应 用节点模板、 已部署应用的标识、 已部署的应用节点模板的标识、 第一平台节点模板的标识、 待部署的应用节点模板对第一平台节点 模板的版本需求、 以及所述待部署的应用节点模板用于对所述已部 署的应用节点模板的标识所指示的已部署的应用节点模板升级的升 级标识, 并将所述待部署的应用部署包发送至处理器 1 12 ;
所述处理器 1 12 , 用于:
接收所述接收机 1 1 1 发送的所述待部署的应用部署包, 并根据 所述待部署的应用节点模板用于对所述升级标识确定所述待部署的 应用部署包为针对所述已部署应用的标识指示的已部署应用的升级 包; 需要说明的, 所述升级标识为所述待部署的应用节点模板用于 对所述已部署的应用节点模板的标识所指示的已部署的应用节点模 板升级的升级标识。
根据所述已部署的应用标识获取与所述第一平台节点模板的标 识对应的第一平台节点的标识, 以及获取所述第一平台节点的标识 指示的第一平台节点的版本;
根据所述第一平台节点版本确定所述第一平台节点的版本低于 所述待部署的应用节点模板对第一平台节点模板的版本需求;
根据所述待部署的应用节点模板对第一平台节点模板的版本需 求, 获取满足所述待部署的应用节点模板对第一平台节点模板的版 本需求的第一平台节点升级包; 使用所述第一平台节点升级包, 升级所述第一平台节点模板的 标识指示的所述第一平台节点;
确定待升级的应用节点的标识;
使用所述待部署的应用部署包, 升级所述待升级的应用节点的 标识指示的应用节点。
这样一来, 在待部署的应用部署包中的应用描述文件描述了待 部署的应用节点模板对第一平台节点模板的版本需求。 当处理器在 确定第一平台节点的版本低于所述待部署的应用节点模板对第一平 台节点模板的版本需求时, 处理器会根据所述待部署的应用节点模 板对第一平台节点模板的版本需求获取第一平台节点升级包。 之 后, 处理器根据获取的第一平台节点升级包升级第一平台节点。 使 得升级后第一平台节点的版本满足所述待部署的应用节点模板对第 一平台节点模板的版本需求, 从而确保升级后的应用能正常运行。
需要说明的, 所述待部署的应用部署包进一步包括描述所述待 部署的应用节点模板的关系模板, 所述升级标识携带在所述关系模 板中;或
所述待部署的应用部署包进一步包括待部署的应用节点模板对 应的节点类型执行, 所述升级标识携带在所述节点类型执行中。
进一步的, 所述处理器 1 12具体用于: 确定与所述已部署的应 用节点模板的标识对应的所有的应用节点的标识为待升级的应用节 点的标识; 或
当所述待部署的应用部署包还包括: 与所述已部署的应用节点 模板的标识对应的至少一个已部署的应用节点的标识时, 所述确 定待升及的应用节点的标识具体为:
确定所述应用部署包包括的与所述已部署的应用节点模板的标 识对应的所述至少一个已部署的应用节, 的标识为待升级的应用节 点的标识。
所述处理器 1 12还用于:
根据所述已部署的应用标识获取存储的已部署的应用部署包的 描述文件;
根据获取的已部署的应用部署包的描述文件确定所述已部署的 应用部署包的描述文件中描述了将所述第一平台节点模板作为源节 点模板的第二平台节点模板;
获取升级后的第一平台节点对第二平台节点的版本需求以及第 二平台节点的版本;
确定所述第二平台节点的版本低于升级后的第一平台节点对第 二平台节点的版本需求;
根据所述升级后的第一平台节点对第二平台节点的版本需求, 获取满足所述升级后的第一平台节点对第二平台节点的版本需求的 第二平台节点升级包;
根据所述第二平台节点升级包, 升级所述第二平台节点。
值得说明的是, 本发明实施例提供的应用部署服务器可以执行 图 2到图 6 中描述的应用部署服务器执行的任何部骤。 本发明实施 例在此不再详述。
本发明提供的应用部署服务器, 在待部署的应用部署包中的应 用描述文件描述了待部署的应用节点模板对第一平台节点模板的版 本需求。 当处理器在确定第一平台节点的版本低于所述待部署的应 用节点模板对第一平台节点模板的版本需求时, 处理器会根据所述 待部署的应用节点模板对第一平台节点模板的版本需求获取第一平 台节点升级包。 之后, 处理器根据获取的第一平台节点升级包升级 第一平台节点。 使得升级后第一平台节点的版本满足所述待部署的 应用节点模板对第一平台节点模板的版本需求, 从而确保升级后的 应用能正常运行。 本发明实施例提供一种用户设备 120 , 如图 12所示, 包括: 处理器 121 , 用于生成待部署的应用部署包, 所述待部署的应 用部署包描述了待部署的应用节点模板、 已部署的应用的标识、 第 一平台节点模板的标识、 已部署的应用节点模板的标识、 待部署的 应用节点模板对第一平台节点模板的版本需求、 以及所述待部署的 应用节点模板用于对所述已部署的应用节点模板的标识所指示的已 部署的应用节点模板升级的升级标识;
生成应用部署请求, 所述应用部署请求包含所述待部署的应用 部署包;
向发射机 122发送所述应用部署请求;
所述发射机 122 , 用于接收处理器发送的所述应用部署请求, 并向应用部署服务器发送所述应用部署请求。
这样一来, 用户设备的处理器生成待部署的应用部署包, 然后 根据所述待部署的应用部署包生成应用部署请求, 并发送给发射 机, 然后通过发射机将所述应用部署请求发送给应用部署服务器, 由应用部署服务器根据该应用部署请求中的待部署的应用部署包自 动进行平台节点和应用节点的升级, 因此, 提高应用升级的自动化 程度, 减少了人工干预。
需要说明的, 所述待部署的应用部署包进一步包括描述所述待 部署的应用节点模板的关系模板, 所述升级标识携带在所述关系模 板中;或
所述待部署的应用部署包进一步待部署的应用节点模板对应的 节点类型执行, 所述升级标识携带在所述节点类型执行中。
进一步的, 所述处理器 121 生成的所述待部署的应用部署包还 包括: 与所述已部署的应用节点模板的标识对应的至少一个已部署 的应用节点的标识。
所述处理器 121 还用于: 根据已部署的应用部署包的描述文 件, 确定所述已部署应用标识指示的已部署应用的第一平台节点模 板, 所述第一平台节点模板将已部署的应用节点模板作为源节点模 板。
值得说明的是, 本发明实施例提供的用户设备可以执行图 2到 图 6 中描述的用户设备执行的任何部骤。 本发明实施例在此不再详 述。 由以上方案可知, 处理器根据应用开发者的升级需求生成待部 署的应用部署包, 所述待部署的应用部署包中的应用描述文件描述 了待部署的应用节点模板对第一平台节点模板的版本需求。 当应用 部署服务器在确定第一平台节点的版本低于所述待部署的应用节点 模板对第一平台节点模板的版本需求时, 应用部署服务器会根据所 述待部署的应用节点模板对第一平台节点模板的版本需求获取第一 平台节点升级包。 之后, 应用部署服务器根据获取的第一平台节点 升级包升级第一平台节点。 使得升级后第一平台节点的版本满足所 述待部署的应用节点模板对第一平台节点模板的版本需求, 从而确 保升级后的应用能正常运行。
本发明中术语 "和 /或" , 仅仅是一种描述关联对象的关联关 系, 表示可以存在三种关系, 例如, A和 /或 B , 可以表示: 单独存 在 A , 同时存在 A和 B , 单独存在 B这三种情况。 另外, 本文中字 符 " /" , 一般表示前后关联对象是一种 "或" 的关系。
所属领域的技术人员可以清楚地了解到, 为描述的方便和简洁, 上述 描述的***, 装置和单元的具体工作过程, 可以参考前述方法实施例中的 对应过程, 在此不再赘述。
在本申请所提供的几个实施例中, 应该理解到, 所揭露的***, 装置 和方法, 可以通过其它的方式实现。 例如, 以上所描述的装置实施例仅仅 是示意性的, 例如, 所述单元的划分, 仅仅为一种逻辑功能划分, 实际实 现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成 到另一个***, 或一些特征可以忽略, 或不执行。 另一点, 所显示或讨论 的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单 元的间接耦合或通信连接, 可以是电性, 机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的, 作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地 方, 或者也可以分布到多个网络单元上。 可以根据实际的需要选择其中的 部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元 中, 也可以是各个单元单独物理包括, 也可以两个或两个以上单元集成在 一个单元中。 上述集成的单元既可以釆用硬件的形式实现, 也可以釆用硬 件加软件功能单元的形式实现。
以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围 并不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技 术范围内, 可轻易想到变化或替换, 都应涵盖在本发明的保护范围 之内。 因此, 本发明的保护范围应所述以权利要求的保护范围为

Claims (1)

  1. 权 利 要 求 书
    1、 一种应用升级方法, 其特征在于, 包括:
    接收应用部署请求, 所述应用部署请求包含待部署的应用部署 包, 所述待部署的应用部署包描述了待部署的应用节点模板、 已部 署应用的标识、 已部署的应用节点模板的标识、 第一平台节点模板 的标识、 待部署的应用节点模板对第一平台节点模板的版本需求、 以及所述待部署的应用节点模板用于对所述已部署的应用节点模板 的标识所指示的已部署的应用节点模板升级的升级标识;
    根据所述升级标识确定所述待部署的应用部署包为所述已部署 应用的标识指示的已部署应用的升级包;
    根据所述已部署的应用标识获取与所述第一平台节点模板的标 识对应的第一平台节, 的标识, 以及获取所述第一平台节, 的标识 指示的第一平台节点的版本;
    根据所述第一平台节点的版本确定所述第一平台节点的版本低 于所述待部署的应用节点模板对第一平台节点模板的版本需求; 根据所述待部署的应用节点模板对第一平台节点模板的版本需 求, 获取满足所述待部署的应用节点模板对第一平台节点模板的版 本需求的第一平台节点升级包;
    使用所述第一平台节点升级包, 升级所述第一平台节点的标识 指示的所述第一平台节点;
    确定待升级的应用节点的标识;
    使用所述待部署的应用部署包, 升级所述待升级的应用节点的 标识指示的应用节点。
    2、 根据权利要求 1 所述的方法, 其特征在于, 所述待部署的应 用部署包进一步包括描述所述待部署的应用节点模板的关系模板, 所述升级标识携带在所述关系模板中;或
    所述待部署的应用部署包进一步包括待部署的应用节点模板对 应的节点类型执行,所述升级标识携带在所述节点类型执行中。
    3、 根据权利要求 1或 2所述的方法, 其特征在于, 所述确定待 升级的应用节点的标识具体为: 确定与所述已部署的应用节点模板 的标识对应的所有的应用节点的标识为待升级的应用节点的标识; 或
    当所述待部署的应用部署包还包括: 与所述已部署的应用节点 模板的标识对应的至少一个已部署的应用节, 的标识时, 所述确定 待升及的应用节点的标识具体为:
    确定所述应用部署包包括的与所述已部署的应用节点模板的标 识对应的所述至少一个已部署的应用节, ^的标识为待升级的应用节 点的标识。
    4、 根据权利要求 1 至 3任意一项权利要求所述的方法, 其特征 在于, 所述升级所述第一平台节点的标识指示的所述第一平台节点 之前, 该方法进一步包括: 根据所述已部署的应用标识获取存储的 已部署的应用部署包的描述文件;
    根据获取的已部署的应用部署包的描述文件确定所述已部署的 应用部署包的描述文件中描述了将所述第一平台节点模板作为源节 点模板的第二平台节点模板;
    获取升级后的第一平台节点对第二平台节点的版本需求以及第 二平台节点的版本;
    确定第二平台节点的版本低于升级后的第一平台节点对第二平 台节点的版本需求;
    所述根据所述第一平台节点升级包, 升级所述第一平台节点之 前, 所述方法还包括:
    根据所述升级后的第一平台节点对第二平台节点的版本需求, 获取满足所述升级后的第一平台节点对第二平台节点的版本需求的 第二平台节点升级包;
    根据所述第二平台节点升级包, 升级所述第二平台节点。
    5、 一种应用升级方法, 其特征在于, 包括:
    生成待部署的应用部署包, 所述待部署的应用部署包描述了待 部署的应用节点模板、 已部署的应用的标识、 第一平台节点模板的 标识、 已部署的应用节点模板的标识、 待部署的应用节点模板对所 述第一平台节点模板的版本需求、 以及所述待部署的应用节点模板 用于对所述已部署的应用节点模板的标识所指示的已部署的应用节 , 模板升级的升级标识;
    生成应用部署请求, 所述应用部署请求包含所述待部署的应用 部署包;
    向应用部署服务器发送所述应用部署请求。
    6、 根据权利要求 5所述的方法, 其特征在于, 所述待部署的应 用部署包进一步包括描述所述待部署的应用节点模板的关系模板, 所述升级标识携带在所述关系模板中;或
    所述待部署的应用部署包进一步包括待部署的应用节点模板对 应的节点类型执行, 所述升级标识携带在所述节点类型执行中。
    7、 根据权利要求 5或 6所述的方法, 其特征在于, 所述待部署 的应用部署包还包括: 与所述已部署的应用节点模板的标识对应的 至少一个已部署的应用节点的标识。
    8、 如权利要求 5至 7任意一项权利要求所述的方法, 其特征在 于, 所述生成待部署的应用部署包之前, 该方法进一步包括: 根据 已部署的应用部署包的描述文件, 确定所述已部署应用标识指示的 已部署应用的第一平台节点模板, 所述第一平台节点模板将已部署 的应用节点模板作为源节点模板。
    9、 一种应用部署服务器, 其特征在于, 包括:
    接收模块, 用于接收应用部署请求, 所述应用部署请求包含待 部署的应用部署包; 所述待部署的应用部署包描述了待部署的应用 节点模板、 已部署应用的标识、 已部署的应用节点模板的标识、 第 一平台节点模板的标识、 待部署的应用节点模板对第一平台节点模 板的版本需求、 以及所述待部署的应用节点模板用于对所述已部署 的应用节点模板的标识所指示的已部署的应用节点模板升级的升级 标识, 并将所述待部署应用的应用部署包发送至确定模块和升级模 块; 确定模块, 用于接收所述接收模块发送的所述待部署应用的应 用部署包, 并根据所述升级标识确定所述待部署的应用部署包为所 述已部署应用的标识指示的已部署应用的升级包; 以及用于根据所 述已部署的应用标识获取与所述第一平台节点模板的标识对应的第 一平台节点的标识, 以及获取所述第一平台节点的标识指示的第一 平台节点的版本; 以及用于根据所述第一平台节点的版本确定所述 第一平台节点的版本低于所述待部署的应用节点模板对第一平台节 点模板的版本需求;
    根据所述待部署的应用节点模板对第一平台节点模板的版本需 求, 获取满足所述待部署的应用节点模板对第一平台节点模板的版 本需求的第一平台节点升级包, 发送所述第一平台节点升级包至升 级模块;
    所述升级模块, 用于接收所述确定模块发送的所述第一平台节 点升级包, 使用所述第一平台节点升级包, 升级所述第一平台节点 的标识指示的所述第一平台节点;
    所述确定模块进一步用于根据所述已部署的应用节点模板的标 识确定待升级的应用节点的标识, 并发送所述待升级的应用节点的 标识至升级模块;
    所述升级模块, 进一步用于接收所述接收模块发送的所述待部 署应用的应用部署包, 并接收所述确定模块发送的所述待升级的应 用节点的标识, 以及用于使用所述待部署的应用部署包升级所述待 升级的应用节点的标识指示的应用节点。
    10、 根据权利要求 9 所述的应用部署服务器, 其特征在于, 所 述待部署的应用部署包进一步包括描述所述待部署的应用节点模板 的关系模板, 所述升级标识携带在所述关系模板中;或
    所述待部署的应用部署包进一步包括待部署的应用节点模板对 应的节点类型执行, 所述升级标识携带在所述节点类型执行中。
    1 1、 根据权利要求 9 或 10 所述的应用部署服务器, 其特征在 于, 所述确定模块具体用于: 确定与所述已部署的应用节点模板的 标识对应的所有的应用节点的标识为待升级的应用节点的标识; 或 当所述待部署的应用部署包还包括: 与所述已部署的应用节点 模板的标识对应的至少一个已部署的应用节, 的标识时, 所述确定 待升及的应用节点的标识具体为: 确定所述应用部署包包括的与所 述已部署的应用节点模板的标识对应的所述至少一个已部署的应用 节点的标识为待升级的应用节点的标识。
    12、 根据权利要求 9至 1 1任意一项权利要求所述的应用部署服 务器, 其特征在于, 所述确定模块还用于:
    根据所述已部署的应用标识获取存储的已部署的应用部署包的 描述文件;
    根据获取的已部署的应用部署包的描述文件确定所述已部署的 应用部署包的描述文件中描述了将所述第一平台节点模板作为源节 点模板的第二平台节点模板;
    获取升级后的第一平台节点对第二平台节点的版本需求以及第 二平台节点的版本;
    确定所述第二平台节点的版本低于升级后的第一平台节点对第 二平台节点的版本需求;
    根据所述升级后的第一平台节点对第二平台节点的版本需求, 获取满足所述升级后的第一平台节点对第二平台节点的版本需求的 第二平台节点升级包;
    所述升级模块还用于:
    根据所述第二平台节点升级包, 升级所述第二平台节点。
    13、 一种用户设备, 其特征在于, 包括:
    生成模块, 用于生成待部署的应用部署包, 所述待部署的应用 部署包描述了待部署的应用节点模板、 已部署的应用的标识、 第一 平台节点模板的标识、 已部署的应用节点模板的标识、 待部署的应 用节点模板对第一平台节点模板的版本需求、 以及所述待部署的应 用节点模板用于对所述已部署的应用节点模板的标识所指示的已部 署的应用节点模板升级的升级标识; 所述生成模块进一步用于生成应用部署请求, 向发送模块发送 所述应用部署请求, 所述应用部署请求包含所述待部署的应用部署 包;
    所述发送模块, 用于接收所述生成模块发送的所述应用部署请 求, 向应用部署服务器发送所述应用部署请求。
    14、 根据权利要求 13 所述的用户设备, 其特征在于, 所述待部 署的应用部署包进一步包括描述所述待部署的应用节点模板的关系 模板, 所述升级标识携带在所述关系模板中;或
    所述待部署的应用部署包进一步包括待部署的应用节点模板对 应的节点类型执行, 所述升级标识携带在所述节点类型执行中。
    15、 根据权利要求 13或 14所述的用户设备, 其特征在于, 所述 待部署的应用部署包还包括: 与所述已部署的应用节点模板的标识 对应的至少一个已部署的应用节点的标识。
    16、 如权利要求 13至 15任意一项权利要求所述的用户设备, 其 特征在于, 所述用户设备还包括: 确定模块, 用于根据已部署的应 用部署包的描述文件, 确定所述已部署应用标识指示的已部署应用 的第一平台节点模板, 所述第一平台节点模板将已部署的应用节点 模板作为源节点模板。
    17、 一种应用部署服务器, 其特征在于, 包括:
    接收机, 用于接收应用部署请求, 所述应用部署请求包含待部 署的应用部署包; 所述待部署的应用部署包描述了待部署的应用节 点模板、 已部署应用的标识、 已部署的应用节点模板的标识、 第一 平台节点模板的标识、 待部署的应用节点模板对第一平台节点模板 的版本需求、 以及所述待部署的应用节点模板用于对所述已部署的 应用节点模板的标识所指示的已部署的应用节点模板升级的升级标 识, 并将所述待部署的应用部署包发送至处理器;
    所述处理器, 用于:
    接收所述接收机发送的所述待部署的应用部署包, 并根据所述 升级标识确定所述待部署的应用部署包为所述已部署应用的标识指 示的已部署应用的升级包;
    根据所述已部署的应用标识获取与所述第一平台节点模板的标 识对应的第一平台节, ^的标识, 以及获取所述第一平台节, ^的标识 指示的第一平台节点的版本;
    根据所述第一平台节点版本确定所述第一平台节点的版本低于 所述待部署的应用节点模板对第一平台节点模板的版本需求;
    根据所述待部署的应用节点模板对第一平台节点模板的版本需 求, 获取满足所述待部署的应用节点模板对第一平台节点模板的版 本需求的第一平台节点升级包;
    使用所述第一平台节点升级包, 升级所述第一平台节点模板的 标识指示的所述第一平台节点;
    确定待升级的应用节点的标识;
    使用所述待部署的应用部署包, 升级所述待升级的应用节点的 标识指示的应用节点。
    18、 根据权利要求 17所述的应用部署服务器, 其特征在于, 所 述待部署的应用部署包进一步包括描述所述待部署的应用节点模板 的关系模板, 所述升级标识携带在所述关系模板中;或
    所述待部署的应用部署包进一步包括待部署的应用节点模板对 应的节点类型执行, 所述升级标识携带在所述节点类型执行中。
    19、 根据权利要求 17 或 18 所述的应用部署服务器, 其特征在 于, 所述处理器具体用于: 确定与所述已部署的应用节点模板的标 识对应的所有的应用节点的标识为待升级的应用节点的标识; 或
    当所述待部署的应用部署包还包括: 与所述已部署的应用节点 模板的标识对应的至少一个已部署的应用节, 的标识时, 所述确定 待升及的应用节点的标识具体为:
    确定所述应用部署包包括的与所述已部署的应用节点模板的标 识对应的所述至少一个已部署的应用节, 的标识为待升级的应用节 点的标识。
    20、 根据权利要求 17至 19任意一项权利要求所述的应用部署服 务器, 其特征在于, 所述处理器还用于:
    根据所述已部署的应用标识获取存储的已部署的应用部署包的 描述文件;
    根据获取的已部署的应用部署包的描述文件确定所述已部署的 应用部署包的描述文件中描述了将所述第一平台节点模板作为源节 点模板的第二平台节点模板;
    获取升级后的第一平台节点对第二平台节点的版本需求以及第 二平台节点的版本;
    确定所述第二平台节点的版本低于升级后的第一平台节点对第 二平台节点的版本需求;
    根据所述升级后的第一平台节点对第二平台节点的版本需求, 获取满足所述升级后的第一平台节点对第二平台节点的版本需求的 第二平台节点升级包;
    根据所述第二平台节点升级包, 升级所述第二平台节点。
    21、 一种用户设备, 其特征在于, 包括:
    处理器, 用于生成待部署的应用部署包, 所述待部署的应用部 署包描述了待部署的应用节点模板、 已部署的应用的标识、 第一平 台节点模板的标识、 已部署的应用节点模板的标识、 待部署的应用 节点模板对第一平台节点模板的版本需求、 以及所述待部署的应用 节点模板用于对所述已部署的应用节点模板的标识所指示的已部署 的应用节点模板升级的升级标识;
    生成应用部署请求, 所述应用部署请求包含所述待部署的应用 部署包;
    向发射机发送所述应用部署请求;
    所述发射机, 用于接收处理器发送的所述应用部署请求, 并向 应用部署服务器发送所述应用部署请求。
    22、 根据权利要求 21 所述的用户设备, 其特征在于, 所述待部 署的应用部署包进一步包括描述所述待部署的应用节点模板的关系 模板, 所述升级标识携带在所述关系模板中;或 所述待部署的应用部署包进一步包括待部署的应用节点模板对 应的节点类型执行, 所述升级标识携带在所述节点类型执行中。
    23、 根据权利要求 21或 22所述的用户设备, 其特征在于, 所述 待部署的应用部署包还包括: 与所述已部署的应用节点模板的标识 对应的至少一个已部署的应用节点的标识。
    24、 如权利要求 21至 23任意一项权利要求所述的用户设备, 其 特征在于, 所述处理器还用于: 根据已部署的应用部署包的描述文 件, 确定所述已部署应用标识指示的已部署应用的第一平台节点模 板, 所述第一平台节点模板将已部署的应用节点模板作为源节点模 板。
CN201380001370.0A 2013-08-13 2013-08-13 一种应用升级方法、装置 Active CN104583945B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810011915.0A CN108052340B (zh) 2013-08-13 2013-08-13 一种应用升级方法、装置
CN201810012326.4A CN108319463B (zh) 2013-08-13 2013-08-13 一种应用升级方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/081410 WO2015021604A1 (zh) 2013-08-13 2013-08-13 一种应用升级方法、装置

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN201810011915.0A Division CN108052340B (zh) 2013-08-13 2013-08-13 一种应用升级方法、装置
CN201810012326.4A Division CN108319463B (zh) 2013-08-13 2013-08-13 一种应用升级方法、装置

Publications (2)

Publication Number Publication Date
CN104583945A true CN104583945A (zh) 2015-04-29
CN104583945B CN104583945B (zh) 2018-01-12

Family

ID=52467924

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201810012326.4A Active CN108319463B (zh) 2013-08-13 2013-08-13 一种应用升级方法、装置
CN201810011915.0A Active CN108052340B (zh) 2013-08-13 2013-08-13 一种应用升级方法、装置
CN201380001370.0A Active CN104583945B (zh) 2013-08-13 2013-08-13 一种应用升级方法、装置

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN201810012326.4A Active CN108319463B (zh) 2013-08-13 2013-08-13 一种应用升级方法、装置
CN201810011915.0A Active CN108052340B (zh) 2013-08-13 2013-08-13 一种应用升级方法、装置

Country Status (7)

Country Link
US (3) US9696984B2 (zh)
EP (1) EP2945055A4 (zh)
JP (1) JP6164440B2 (zh)
KR (1) KR101782457B1 (zh)
CN (3) CN108319463B (zh)
AU (1) AU2013397867B2 (zh)
WO (1) WO2015021604A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844314A (zh) * 2017-12-22 2018-03-27 税友软件集团股份有限公司 一种升级Weblogic应用程序的方法及***
WO2018201778A1 (zh) * 2017-05-04 2018-11-08 中兴通讯股份有限公司 部署云应用***的方法及装置
CN112035146A (zh) * 2020-09-11 2020-12-04 深圳市兆珑科技有限公司 固件更新方法、安全设备和计算机可读存储介质

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015021604A1 (zh) * 2013-08-13 2015-02-19 华为技术有限公司 一种应用升级方法、装置
US9998323B2 (en) * 2014-09-25 2018-06-12 Bank Of America Corporation Datacenter configuration management tool
US10318265B1 (en) * 2015-10-09 2019-06-11 Amazon Technologies, Inc. Template generation for deployable units
CN107479862A (zh) * 2016-06-07 2017-12-15 阿里巴巴集团控股有限公司 一种软件升级的灰度发布方法及***
US10353686B1 (en) * 2016-12-28 2019-07-16 Facebook, Inc. Application installation system
US10749743B2 (en) 2017-06-12 2020-08-18 Microsoft Technology Licensing, Llc Upgrade a version of a service
CN110308914B (zh) * 2018-03-27 2023-08-22 阿里巴巴(中国)有限公司 升级处理方法、装置、设备、***及计算机可读存储介质
CN109032634B (zh) * 2018-07-16 2021-11-26 北京百度网讯科技有限公司 用于更新应用的方法、装置、设备和计算机可读存储介质
CN109388415A (zh) * 2018-09-27 2019-02-26 深圳供电局有限公司 一种应用自动化更新装置、***和方法
WO2023275589A1 (en) * 2021-06-28 2023-01-05 Sensetime International Pte. Ltd. Methods and apparatuses for installing device application
US11861339B2 (en) * 2021-09-16 2024-01-02 Change Healthcare Holdings, Llc Systems and methods for deploying software applications using application catalogs
WO2023230642A1 (en) * 2022-05-31 2023-12-07 Technological Resources Pty Limited Ensuring backwards compatbility between a supervisory system and on-device control software

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040261071A1 (en) * 2003-06-23 2004-12-23 Macronix International Co., Ltd. Peer version control system
US20110061046A1 (en) * 2008-12-18 2011-03-10 Virtual Computer, Inc. Installing Software Applications in a Layered Virtual Workspace
CN102413022A (zh) * 2011-12-31 2012-04-11 北京新媒传信科技有限公司 一种应用调试方法和***
US20120102481A1 (en) * 2010-10-22 2012-04-26 Microsoft Corporation Coordinated Upgrades In Distributed Systems
CN102495733A (zh) * 2011-12-08 2012-06-13 方正国际软件有限公司 应用程序与相关数据库脚本兼容性检测和升级维护的方法
US20120159469A1 (en) * 2010-12-15 2012-06-21 Red Hat Israel, Ltd. Mechanism for downloading guest software updates by a hypervisor
US20120254850A1 (en) * 2011-03-31 2012-10-04 International Business Machines Corporation System for inspecting information processing unit to which software update is applied
US20120266156A1 (en) * 2011-04-12 2012-10-18 Vmware, Inc. Release lifecycle management system for a multi-node application
CN103136013A (zh) * 2011-12-01 2013-06-05 腾讯科技(深圳)有限公司 软件升级方法和***

Family Cites Families (45)

* 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
US6912711B1 (en) 2000-05-25 2005-06-28 International Business Machines Corporation Method of applying an update to a contained collection of program and data files based upon versions
US7478385B2 (en) 2003-01-17 2009-01-13 National Instruments Corporation Installing software using programmatic component dependency analysis
US20040148370A1 (en) * 2003-01-23 2004-07-29 Electronic Data Systems Corporation System and method for composing, configuring, deploying, and managing services using a graphical user interface
KR101169432B1 (ko) 2005-12-12 2012-07-27 삼성전자주식회사 자바 어플리케이션의 실행 환경 관리 시스템 및 방법
US8726267B2 (en) 2006-03-24 2014-05-13 Red Hat, Inc. Sharing software certification and process metadata
CN100549950C (zh) * 2006-07-14 2009-10-14 中兴通讯股份有限公司 分布式软件***的部署方法
US7874008B2 (en) * 2006-08-29 2011-01-18 International Business Machines Corporation Dynamically configuring extensible role based manageable resources
US7634488B2 (en) * 2006-11-13 2009-12-15 Ricoh Company, Ltd. Remote distribution/installation utility and associated method of deploying executable code
US8205194B2 (en) * 2007-06-29 2012-06-19 Microsoft Corporation Updating offline virtual machines or VM images
US20090133014A1 (en) 2007-11-16 2009-05-21 Nokia Corporation Methods, apparatuses and computer program product for automatic download of software dependencies on installation
KR100952166B1 (ko) * 2008-07-24 2010-04-09 인하대학교 산학협력단 그리드 데이터 베이스의 데이터 버전 관리 방법 및 장치
US8291378B2 (en) * 2008-07-29 2012-10-16 International Business Machines Corporation Simplified deployment modeling
US9280335B2 (en) * 2010-09-30 2016-03-08 International Business Machines Corporation Semantically rich composable software image bundles
US20100281475A1 (en) * 2009-05-04 2010-11-04 Mobile On Services, Inc. System and method for mobile smartphone application development and delivery
US8479098B2 (en) * 2009-08-12 2013-07-02 Ebay Inc. Reservation of resources and deployment of applications using an integrated development environment
US20120066672A1 (en) * 2010-03-16 2012-03-15 Salesforce.Com, Inc. Systems and Methods for Implementing Upgradeable Subscriber-Controlled Managed Package Components in a Multi-Tenant Environment
US9448790B2 (en) * 2010-04-26 2016-09-20 Pivotal Software, Inc. Rapid updating of cloud applications
US8661132B2 (en) * 2010-05-28 2014-02-25 International Business Machines Corporation Enabling service virtualization in a cloud
US8782748B2 (en) * 2010-06-22 2014-07-15 Microsoft Corporation Online service access controls using scale out directory features
US8407689B2 (en) * 2010-06-25 2013-03-26 Microsoft Corporation Updating nodes considering service model constraints
US8627310B2 (en) * 2010-09-30 2014-01-07 International Business Machines Corporation Capturing multi-disk virtual machine images automatically
CN102006332B (zh) * 2010-12-03 2013-12-11 杭州华三通信技术有限公司 一种软件升级的方法和***
US8261295B1 (en) * 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
CN102811136A (zh) * 2011-06-01 2012-12-05 南京中兴新软件有限责任公司 软件升级***及方法
TW201250482A (en) 2011-06-02 2012-12-16 Hon Hai Prec Ind Co Ltd System and method for updating virtual machine templates
US20130117749A1 (en) * 2011-11-03 2013-05-09 Microsoft Corporation Provisioning and Managing an Application Platform
CN102404147A (zh) * 2011-11-21 2012-04-04 中兴通讯股份有限公司 一种软件版本的动态更新方法及***
US9235398B2 (en) * 2011-12-07 2016-01-12 Yahoo! Inc. Development of platform independent applications
US20130166311A1 (en) * 2011-12-21 2013-06-27 The TriZetto Group System and Method for Provisioning and Deploying a Virtual Appliance to Implement Enterprise Solutions
US9043784B2 (en) * 2012-01-12 2015-05-26 Red Hat, Inc. Management of inter-dependent configurations of virtual machines in a cloud
US9047133B2 (en) * 2012-03-02 2015-06-02 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment
US10031783B2 (en) * 2012-03-02 2018-07-24 Vmware, Inc. Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure
CN102629207B (zh) * 2012-03-05 2016-12-14 浪潮通用软件有限公司 一种多租户环境运行实例分时更新的方法
US8667486B2 (en) * 2012-06-26 2014-03-04 Google Inc. Automatic provisioning of a software platform to a device ecosystem
US9348652B2 (en) * 2012-07-02 2016-05-24 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
CN102821162B (zh) * 2012-08-24 2016-04-27 上海和辰信息技术有限公司 云计算网络环境下面向松散云节点服务平台的***
US8997088B2 (en) * 2012-11-02 2015-03-31 Wipro Limited Methods and systems for automated deployment of software applications on heterogeneous cloud environments
US8875121B2 (en) * 2012-11-06 2014-10-28 Nvidia Corporation Framework for multi-type and multi-location firmware updates and hardware feature updates through a single interface protocol
CN102945175A (zh) * 2012-11-09 2013-02-27 杭州易和网络有限公司 一种基于云计算环境的终端软件在线升级***及其方法
US8924950B2 (en) 2012-12-17 2014-12-30 Itron, Inc. Utility node software/firmware update through a multi-type package
US9189224B2 (en) * 2013-07-11 2015-11-17 Oracle International Corporation Forming an upgrade recommendation in a cloud computing environment
WO2015021604A1 (zh) * 2013-08-13 2015-02-19 华为技术有限公司 一种应用升级方法、装置
US9753784B2 (en) * 2013-11-27 2017-09-05 At&T Intellectual Property I, L.P. Cloud delivery platform
CN106796508B (zh) * 2014-04-30 2020-09-04 皮沃塔尔软件公司 在云平台上的快速部署

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040261071A1 (en) * 2003-06-23 2004-12-23 Macronix International Co., Ltd. Peer version control system
US20110061046A1 (en) * 2008-12-18 2011-03-10 Virtual Computer, Inc. Installing Software Applications in a Layered Virtual Workspace
US20120102481A1 (en) * 2010-10-22 2012-04-26 Microsoft Corporation Coordinated Upgrades In Distributed Systems
US20120159469A1 (en) * 2010-12-15 2012-06-21 Red Hat Israel, Ltd. Mechanism for downloading guest software updates by a hypervisor
US20120254850A1 (en) * 2011-03-31 2012-10-04 International Business Machines Corporation System for inspecting information processing unit to which software update is applied
US20120266156A1 (en) * 2011-04-12 2012-10-18 Vmware, Inc. Release lifecycle management system for a multi-node application
CN103136013A (zh) * 2011-12-01 2013-06-05 腾讯科技(深圳)有限公司 软件升级方法和***
CN102495733A (zh) * 2011-12-08 2012-06-13 方正国际软件有限公司 应用程序与相关数据库脚本兼容性检测和升级维护的方法
CN102413022A (zh) * 2011-12-31 2012-04-11 北京新媒传信科技有限公司 一种应用调试方法和***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BINZ T 等: ""Portable Cloud Services Using TOSCA"", 《IEEE INTERNET COMPUTING,IEEE SERVICE CENTER》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018201778A1 (zh) * 2017-05-04 2018-11-08 中兴通讯股份有限公司 部署云应用***的方法及装置
CN107844314A (zh) * 2017-12-22 2018-03-27 税友软件集团股份有限公司 一种升级Weblogic应用程序的方法及***
CN112035146A (zh) * 2020-09-11 2020-12-04 深圳市兆珑科技有限公司 固件更新方法、安全设备和计算机可读存储介质
CN112035146B (zh) * 2020-09-11 2023-10-24 百富计算机技术(深圳)有限公司 固件更新方法、安全设备和计算机可读存储介质

Also Published As

Publication number Publication date
KR101782457B1 (ko) 2017-09-28
JP6164440B2 (ja) 2017-07-19
WO2015021604A1 (zh) 2015-02-19
US9696984B2 (en) 2017-07-04
EP2945055A1 (en) 2015-11-18
EP2945055A4 (en) 2016-05-25
US10649761B2 (en) 2020-05-12
US20150347123A1 (en) 2015-12-03
KR20150110766A (ko) 2015-10-02
CN104583945B (zh) 2018-01-12
CN108052340B (zh) 2021-03-30
CN108052340A (zh) 2018-05-18
AU2013397867A1 (en) 2015-08-27
US20190129709A1 (en) 2019-05-02
CN108319463B (zh) 2021-08-20
US20170277532A1 (en) 2017-09-28
AU2013397867B2 (en) 2017-05-18
US10191730B2 (en) 2019-01-29
JP2016521897A (ja) 2016-07-25
CN108319463A (zh) 2018-07-24

Similar Documents

Publication Publication Date Title
CN104583945A (zh) 一种应用升级方法、装置
US8949792B2 (en) Methods and systems for data service development
CN104536899A (zh) 一种基于智能集群的软件部署及其维护方法
WO2011014835A1 (en) Extensible framework to support different deployment architectures
CN110276074B (zh) 自然语言处理的分布式训练方法、装置、设备及存储介质
CN108215521B (zh) 标签在线打印方法、装置及***
CN107025108B (zh) 从源代码管理(scm)***将分级数据导出到产品生命周期管理(plm)***
CN109298900A (zh) 一种应用拆分以及按需加载方法、装置
CN112769706B (zh) 组件化路由方法及***
CA2846581A1 (en) Data infrastructure for providing interconnectivity between platforms, devices and operating systems
CN109104368B (zh) 一种请求连接方法、装置、服务器及计算机可读存储介质
CN111414350A (zh) 一种服务生成方法及装置
CN112083926A (zh) 一种Web用户界面生成方法及装置
KR20150133902A (ko) 소프트웨어 제품 라인에 기반한 서비스 개발 시스템 및 방법
Pérez et al. Facing interaction-rich rias: The orchestration model
CN109753767B (zh) 基于区块链的软件分发及更新方法和装置、服务器、客户端
CN109471632B (zh) 一种页面动态配置方法、装置、服务器及用户终端
CN111625866A (zh) 一种权限管理方法、***、设备及存储介质
EP4264415A1 (en) Automated platform for managing, deploying and orchestrating highly distributed service applications
CN112699042A (zh) 一种单元测试案例的生成方法及装置
WO2016057502A1 (en) Generating web browser views for applications
CN112667491A (zh) 虚拟机的功能测试方法及装置
CN115794659B (zh) 一种cfd软件的分布式并行测试方法、装置、设备及介质
CN108845803B (zh) 一种列表视图的更新方法、装置、设备及存储介质
CN115617381A (zh) 持续集成流水线生成方法、装置、服务器、介质及产品

Legal Events

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