CN105051687A - 应用部署方法和设备 - Google Patents

应用部署方法和设备 Download PDF

Info

Publication number
CN105051687A
CN105051687A CN201380000827.6A CN201380000827A CN105051687A CN 105051687 A CN105051687 A CN 105051687A CN 201380000827 A CN201380000827 A CN 201380000827A CN 105051687 A CN105051687 A CN 105051687A
Authority
CN
China
Prior art keywords
resource
application
deployment
product
description file
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
CN201380000827.6A
Other languages
English (en)
Other versions
CN105051687B (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.)
Shanghai Pengbang Industrial 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
Publication of CN105051687A publication Critical patent/CN105051687A/zh
Application granted granted Critical
Publication of CN105051687B publication Critical patent/CN105051687B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提供一种应用部署方法和设备,其中方法包括:接收应用部署请求,请求包括资源包的资源包标识、至少一个方法制品、每个方法制品与资源包中资源描述文件中的一个抽象方法之间的对应关系、以及每个方法制品的方法制品信息;根据资源包标识获取资源包,资源包包括:资源描述文件和部署计划;资源描述文件描述了抽象方法,部署计划引用了抽象方法;根据每个方法制品与资源包中资源描述文件中的一个抽象方法之间的对应关系,将方法制品信息增加到资源描述文件中以形成应用部署描述文件;根据应用部署描述文件执行部署计划引用的抽象方法的方法制品。本发明提高了应用部署的可扩展性。

Description

应用部署方法和设备 技术领域 本发明涉及通信技术, 尤其涉及一种应用部署方法和设备。
背景技术
云计算是一种服务的交付和消费模式, 云服务供应商 (Cloud Service Provider, 简称: CSP)将云计算资源用网络连接起来并进行统一的管理、 分 配和调度, 构成一个资源池向云服务消费者 (Cloud Service Consumer, 简 称: CSC )提供服务。具体是由 CSP的应用部署服务器根据 CSC的应用部署请 求, 分配云计算资源并执行该应用部署请求对应的部署计划, 该应用部署请 求中包括应用部署包, 该部署包中包含部署应用所需要的所有数据。
例如, 在现有技术中 , TOSCA ( Topology and Orchestration Specification for Cloud Appl ications ) 标准规范化了应用的拓扑和运维 流程的描述方式; 根据该 T0SCA标准, 采用应用部署包描述部署应用所需的 全部信息, 该应用部署包至少包含一个描述文件, 该描述文件描述应用完整 拓扑、 拓扑中节点的部署制品信息、 拓扑中节点的方法和方法制品信息, 应 用部署包还包括节点的部署制品、 各方法的方法制品以及部署计划(Plan) 。 部署计划是可执行的工作流, 应用部署服务器分配云计算资源执行该部署计 应用的完整拓扑可以包含应用内容拓扑和资源拓扑, 拓扑中的节点包括 应用节点和资源节点。 例如在虚拟应用 (Virtual Appl ication, 简称: VA) 的应用部署模式中, 服务器可以给用户提供针对某一类型应用的资源包, 资 源包中提供了资源拓扑、 资源节点、 资源节点的部署制品和所有方法的方法 制品、 部署计划, 用户只需要使用应用部署设备 (Appl ication Deployer, 简称: AD ) 搜索到适合应用的资源包, 编排应用内容拓扑并添加应用节点的 部署制品即可。
然而, 与当前的部署计划中的方法对应的方法制品都是由服务器提供的 资源包中包含的, 用户只能按照部署计划去执行资源包中的方法制品以部署 应用。 因此, 现有的应用部署模式例如 VA虽然简便, 但是其封装度太高, 用 户无法在现有资源包的基础上进行扩展和二次开发从而导致应用的部署不灵 活, 无法满足用户的需求。 比如, 当用户希望了解及监控资源的部署过程, 如观察获得的云计算服务是否符合服务水平协议(service level agreement , 简称: SLA) 时, 当前的部署模式是不支持的, 从而无法满足用户的需求。 发明内容 本发明提供一种应用部署方法和设备, 以提高应用部署的可扩展性。 第一方面, 提供一种应用部署方法, 包括:
接收应用部署请求, 所述应用部署请求包括资源包的资源包标识、 至少 一个方法制品、 所述每个方法制品与所述资源包中资源描述文件描述的一个 抽象方法之间的对应关系、 以及所述每个方法制品的方法制品信息;
根据所述资源包标识获取所述资源包, 所述资源包包括: 所述资源描述 文件和部署计划; 所述资源描述文件描述了所述抽象方法, 所述部署计划引 用了所述抽象方法;
根据所述每个方法制品与所述资源包中资源描述文件描述的一个抽象方 法之间的对应关系, 将所述方法制品信息增加到所述资源描述文件中以形成 应用部署描述文件;
根据所述应用部署描述文件执行所述部署计划引用的抽象方法的方法制 品。
结合第一方面, 在第一种可能的实现方式中, 所述资源描述文件还描述 了应用节点和资源节点;所述抽象方法的描述包含在所述应用节点和 /或所述 资源节点的节点类型中。
结合第一方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述抽象方法包含在所述应用节点的节点类型中, 所述应用部署请求包含应 用节点的节点类型执行 NTI , 所述方法制品与所述资源包中资源描述文件描 述的抽象方法之间的对应关系在所述应用节点的节点类型执行 NTI中描述; 所述将所述方法制品信息增加到资源描述文件中具体为: 将所述应用节点的 NTI增加到资源描述文件中; 或, 所述抽象方法包含在所述资源节点的节点 类型中, 所述应用部署请求中包含边界定义, 所述方法制品与所述资源包中 资源描述文件描述的抽象方法之间的对应关系在所述边界定义中描述;所述 将所述方法制品信息增加到资源描述文件具体为: 将所述边界定义中描述的 所述方法制品信息增加到资源描述文件的资源节点的 NTI中。
结合第一方面的第二种可能的实现方式, 在第三种可能的实现方式中, 该方法进一歩包括: 修改资源描述文件中节点类型中的抽象方法的属性为普 通方法; 和 /或, 将应用部署请求包含的方法制品增加到资源包中。
结合第一方面的第二种可能的实现方式或者第三种可能的实现方式, 在 第四种可能的实现方式中, 所述应用部署请求还包括: 应用节点的部署制品; 在所述根据所述资源包标识获取所述资源包之后该方法还包括: 将所述应用 部署请求中所述应用节点的部署制品作为所述资源描述文件中应用节点的部 署制品
结合第一方面的第四种可能的实现方式, 在第五种可能的实现方式中, 所述应用部署请求还包括所述部署制品的部署制品信息, 所述将所述应用部 署请求中所述应用节点的部署制品作为所述资源描述文件中应用节点的部署 制品具体为: 将所述部署制品信息增加到资源描述文件中; 以及, 将所述应 用部署请求中所述应用节点的部署制品增加到资源包中。
结合第一方面至第一方面的第五种可能的实现方式中的任一种, 在第六 种可能的实现方式中, 在将所述方法制品信息增加到所述资源描述文件中以 形成应用部署描述文件之前, 还包括: 确定所述资源描述文件中用抽象标识 关键字标注的方法是抽象方法。
第二方面, 提供一种应用部署方法, 包括:
获取待部署应用的资源包的资源包标识, 根据所述资源包标识获取资源 包的资源描述文件, 所述资源描述文件中描述了至少一个抽象方法;
根据所述资源描述文件描述的至少一个抽象方法, 生成与每个所述抽象 方法对应的方法制品、 与所述方法制品的方法制品信息, 以及所述每个方法 制品与所述资源描述文件描述的一个抽象方法之间的对应关系;
生成应用部署请求, 所述应用部署请求包括所述资源包标识、 所述每个 方法制品与所述资源描述文件中的一个抽象方法之间的对应关系、 每个方法 制品的方法制品信息和所述方法制品;
向应用部署服务器发送所述应用部署请求。 结合第二方面, 在第一种可能的实现方式中, 所述根据所述资源包标识 获取资源包的资源描述文件, 包括: 向应用部署服务器发送资源包获取请求, 所述资源包获取请求中携带资源包标识; 接收应用部署服务器发送的与资源 包标识对应的资源包, 并从所述资源包中获取所述资源描述文件; 或者, 向 应用部署服务器发送资源描述文件获取请求, 所述资源描述文伯获取请求中 携带资源描述文件所属的资源包的资源包标识; 接收应用部署服务器发送的 与资源包标识对应的资源包包含的资源描述文件。
结合第二方面或第二方面的第一种可能的实现方式, 在第二种可能的实 现方式中, 所述资源描述文件描述了应用节点, 所述抽象方法包含在所述应 用节点的节点类型中; 所述根据所述资源描述文件描述的至少一个抽象方法 生成与每个所述抽象方法对应的方法制品, 包括: 根据所述资源描述文件中 包含在所述应用节点的节点类型中的抽象方法, 生成与所述应用节点的抽象 方法对应的方法制品;该方法进一歩包括:根据所述资源描述文件中描述的应 用节点在应用部署请求中描述所述应用节点; 所述方法制品与所述资源描述 文件中的抽象方法之间的对应关系以及所述方法制品信息在所述应用部署请 求中描述的应用节点的节点类型执行 NTI中描述。
结合第二方面至第二方面的第二种可能的实现方式中的任一种, 在第三 种可能的实现方式中, 所述资源描述文件还描述了资源节点; 所述抽象方法 包含在所述资源节点的节点类型中; 所述根据所述资源描述文件描述的至少 —个抽象方法生成与每个所述抽象方法对应的方法制品, 包括: 根据所述资 源描述文件中包含在所述资源节点的节点类型中的抽象方法, 生成与所述资 源节点的抽象方法对应的方法制品; 所述方法制品与所述资源描述文件中的 抽象方法之间的对应关系以及所述方法制品信息在所述应用部署请求中的边 界定义中描述。
结合第二方面的第二种可能的实现方式中,在第四种可能的实现方式中, 在所述向应用部署服务器发送应用部署请求之前, 还包括: 生成应用节点的 部署制品以及所述部署制品的部署制品信息, 所述应用部署请求还包括: 应 用节点的部署制品以及所述部署制品的部署制品信息。
结合第二方面的第四种可能的实现方式, 在第五种可能的实现方式中, 生成应用节点的部署制品以及所述部署制品的部署制品信息之前, 该方法还 包括: 确定所述资源描述文件中的应用节点用抽象标识关键字标注, 并且所 述资源描述文件不包括所述应用节点的部署制品信息。
第三方面, 提供一种应用部署服务器, 包括:
请求接收单元, 用于接收应用部署请求, 所述应用部署请求包括资源包 的资源包标识、 至少一个方法制品、 所述每个方法制品与所述资源包中资源 描述文件中的一个抽象方法之间的对应关系、 以及所述每个方法制品的方法 制品信息;
信息获取单元, 用于根据所述请求接收单元接收的所述应用部署请求包 括的所述资源包标识获取所述资源包, 所述资源包包括: 所述资源描述文件 和部署计划; 所述资源描述文件描述了所述抽象方法, 所述部署计划引用了 所述抽象方法;
信息处理单元, 用于根据所述请求接收单元接收的所述应用部署请求包 括的所述每个方法制品与所述资源包中资源描述文件中的一个抽象方法之间 的对应关系, 将所述方法制品信息增加到所述信息获取单元获取的所述资源 包中包括的所述资源描述文件中以形成应用部署描述文件;
应用部署单元, 用于根据所述信息处理单元形成的所述应用部署描述文 件执行所述部署计划引用的抽象方法的方法制品。
结合第三方面, 在第一种可能的实现方式中, 所述资源描述文件还描述 了应用节点和资源节点;所述抽象方法的描述包含在所述应用节点和 /或所述 资源节点的节点类型中。
结合第三方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述抽象方法包含在所述应用节点的节点类型中, 所述应用部署请求包含应 用节点的节点类型执行 NTI , 所述方法制品与所述资源包中资源描述文件中 的抽象方法之间的对应关系在所述应用节点的节点类型执行 NTI中描述; 所 述信息处理单元将所述方法制品信息增加到所述信息获取单元获取的所述资 源包中包括的所述资源描述文件中具体为: 将所述应用节点的 NTI增加到资 源描述文件中; 或, 所述抽象方法包含在所述资源节点的节点类型中, 所述 应用部署请求中包含边界定义, 所述方法制品与所述资源包中资源描述文件 中的抽象方法之间的对应关系在所述边界定义中描述; 所述信息处理单元将 所述方法制品信息增加到所述信息获取单元获取的所述资源包中包括的所述 资源描述文件具体为: 将所述边界定义中描述的所述方法制品信息增加到资 源描述文件的资源节点的 NTI中。
结合第三方面的第二种可能的实现方式, 在第三种可能的实现方式中, 所述信息处理单元进一歩用于: 修改所述信息获取单元获取的所述资源包中 包括的所述资源描述文件中节点类型中的抽象方法的属性为普通方法; 和 / 或, 将所述请求接收单元接收的所述应用部署请求包含的方法制品增加到资 源包中。
结合第三方面的第二种可能的实现方式或者第三种可能的实现方式, 在 第四种可能的实现方式中, 所述应用部署请求还包括: 应用节点的部署制品; 所述信息处理单元在所述信息获取单元根据所述资源包标识获取所述资源包 之后, 还用于将所述请求接收单元接收的所述应用部署请求中所述应用节点 的部署制品作为所述信息获取单元获取的所述资源包中包括的所述资源描述 文件中应用节点的部署制品。
结合第三方面的第四种可能的实现方式, 在第五种可能的实现方式中, 所述应用部署请求还包括所述部署制品的部署制品信息; 所述信息处理单元 将所述请求接收单元接收的所述应用部署请求中所述应用节点的部署制品作 为所述信息获取单元获取的所述资源包中包括的所述资源描述文件中应用节 点的部署制品具体为: 将所述部署制品信息增加到资源描述文件中; 以及, 将所述应用部署请求中所述应用节点的部署制品增加到资源包中。
结合第三方面至第三方面的第五种可能的实现方式中的任一种, 在第六 种可能的实现方式中, 所述信息处理单元在将所述请求接收单元接收的所述 应用部署请求包括的所述方法制品信息增加到所述信息获取单元获取的所述 资源包中包括的所述资源描述文件中以形成应用部署描述文件之前, 还用于 确定所述资源描述文件中用抽象标识关键字标注的方法是抽象方法。
第四方面, 提供一种应用部署设备, 包括:
信息获取单元, 用于获取待部署应用的资源包的资源包标识, 根据所述 资源包标识获取资源包的资源描述文件, 所述资源描述文件中描述了至少一 个抽象方法;
信息生成单元, 用于根据所述信息获取单元获取的所述资源描述文件描 述的至少一个抽象方法, 生成与每个所述抽象方法对应的方法制品; 请求生成单元, 用于生成应用部署请求, 所述应用部署请求包括所述信 息获取单元获取的所述资源包标识、 所述信息生成单元生成的每个方法制品 与所述信息获取单元获取的所述资源描述文件中的一个抽象方法之间的对应 关系、 每个方法制品的方法制品信息和所述方法制品;
部署请求单元, 用于向应用部署服务器发送所述请求生成单元生成的所 述应用部署请求。
结合第四方面, 在第一种可能的实现方式中, 所述信息获取单元根据所 述资源包标识获取资源包的资源描述文件具体为: 向应用部署服务器发送资 源包获取请求, 所述资源包获取请求中携带资源包标识; 接收应用部署服务 器发送的与资源包标识对应的资源包, 并从所述资源包中获取所述资源描述 文件; 或者, 向应用部署服务器发送资源描述文件获取请求, 所述资源描述 文伯获取请求中携带资源包标识; 接收应用部署服务器发送的与资源包标识 对应的资源包包含的资源描述文件。
结合第四方面或第四方面的第一种可能的实现方式, 在第二种可能的实 现方式中, 所述资源描述文件描述了应用节点, 所述抽象方法包含在所述应 用节点的节点类型中; 所述信息生成单元根据所述信息获取单元获取的所述 资源描述文件描述的至少一个抽象方法生成与每个所述抽象方法对应的方法 制品具体为: 根据所述资源描述文件中包含在所述应用节点的节点类型中的 抽象方法, 生成与所述应用节点的抽象方法对应的方法制品; 所述请求生成 单元进一歩用于根据所述信息获取单元获取的所述资源描述文件中描述的应 用节点在应用部署请求中描述所述应用节点; 所述方法制品与所述资源描述 文件中的抽象方法之间的对应关系以及所述方法制品信息在所述应用部署请 求中描述的应用节点的节点类型执行 NTI中描述。
结合第四方面至第四方面的第二种可能的实现方式中的任一种, 在第三 种可能的实现方式中, 所述资源描述文件还描述了资源节点; 所述抽象方法 包含在所述资源节点的节点类型中; 信息生成单元根据所述信息获取单元获 取的所述资源描述文件描述的至少一个抽象方法生成与每个所述抽象方法对 应的方法制品具体为: 根据所述资源描述文件中包含在所述资源节点的节点 类型中的抽象方法, 生成与所述资源节点的抽象方法对应的方法制品; 所述 方法制品与所述资源描述文件中的抽象方法之间的对应关系以及所述方法制 品信息在所述应用部署请求中的边界定义中描述。
结合第四方面的第三种可能的实现方式, 在第四种可能的实现方式中, 所述信息生成单元在所述部署请求单元向应用部署服务器发送所述请求生成 单元生成的所述应用部署请求之前, 生成应用节点的部署制品以及所述部署 制品的部署制品信息; 所述应用部署请求还包括: 应用节点的部署制品以及 所述部署制品的部署制品信息。
结合第四方面, 在第五种可能的实现方式中, 所述信息生成单元在生成 应用节点的部署制品以及所述部署制品的部署制品信息之前, 进一歩用于确 定所述信息获取单元获取的所述资源描述文件中的应用节点用抽象标识关键 字标注, 并且所述资源描述文件不包括所述应用节点的部署制品信息。
第五方面, 提供一种应用部署服务器, 包括: 通信接口、 处理器; 存储 器;
所述网络接口用于与外部设备进行通信, 接收应用部署请求, 所述应用 部署请求包括资源包的资源包标识、 至少一个方法制品、 所述每个方法制品 与所述资源包中资源描述文件描述的一个抽象方法之间的对应关系、 以及所 述每个方法制品的方法制品信息;
所述存储器存储应用程序;
所述处理器调用所述存储器中存储的应用程序, 根据所述资源包标识获 取所述资源包, 所述资源包包括: 所述资源描述文件和部署计划; 所述资源 描述文件描述了所述抽象方法, 所述部署计划引用了所述抽象方法; 根据所 述每个方法制品与所述资源包中资源描述文件描述的一个抽象方法之间的对 应关系, 将所述方法制品信息增加到所述资源描述文件中以形成应用部署描 述文件; 根据所述应用部署描述文件执行所述部署计划引用的抽象方法的方 法制品。
第六方面, 提供一种应用部署设备, 包括: 通信接口、 处理器; 存储器; 所述通信接口用于与外部设备进行通信, 获取待部署应用的资源包的资 源包标识, 根据所述资源包标识获取资源包的资源描述文件, 所述资源描述 文件中描述了至少一个抽象方法;
所述存储器存储应用程序;
所述处理器调用所述存储器中存储的应用程序, 根据所述资源描述文件 描述的至少一个抽象方法, 生成与每个所述抽象方法对应的方法制品; 生成 应用部署请求, 所述应用部署请求包括所述资源包标识、 所述每个方法制品 与所述资源描述文件描述的一个抽象方法之间的对应关系、 每个方法制品的 方法制品信息和所述方法制品;
所述通信接口进一歩用于向应用部署服务器发送所述应用部署请求。 本发明提供的应用部署方法和设备的技术效果是: 通过在资源包中设置 抽象方法, 部署应用的用户只需要提供与该抽象方法对应的方法制品即可满 足用户的自身需求, 所以相对于现有技术提高了应用部署的可扩展性。 附图说明 图 1A为本发明实施例提供的应用部署方法所基于的应用部署描述文件 描述的应用模板结构示意图;
图 1B为本发明实施例与图 1A对应的部署计划的结构示意图;
图 2为本发明实施例提供的应用部署方法中的应用部署描述文件描述的 应用拓扑示意图;
图 3为本发明实施例提供的应用部署方法的流程示意图;
图 4为本发明实施例提供的应用部署方法的流程示意图;
图 5为本发明实施例提供的应用部署方法的流程示意图;
图 6A为本发明实施例提供的应用部署方法中的资源描述文件的拓扑示 意图;
图 6B为本发明实施例提供的应用部署方法中的部署计划的示意图; 图 6C为本发明实施例提供的应用部署方法中的应用内容包与资源包的 对应示意图;
图 7为本发明实施例提供的应用部署服务器的结构示意图;
图 8为本发明实施例提供的应用部署设备实施例的结构示意图; 图 9为本发明实施例提供的应用部署服务器的实体结构示意图; 图 10为本发明实施例提供的应用部署设备的实体结构示意图。
具体实施方式
本发明实施例提供的应用部署方法, 可应用于 T0SCA标准也可以应用于 其他方面, 而并不局限于 T0SCA标准。
在本发明实施例中, 部署一个应用所需的信息在应用部署服务器中名为 云服务档案 (Cloud Service Archive , 简称: CSAR) 的应用部署包中描述。 应用部署包至少包含一个后缀为 ste的应用部署描述文件, 该 *. ste的应用 部署描述文件可以用 XML语言描述应用的部署信息, 该 *. ste的应用部署描 述文件的根元素为应用模板 Service Template o 也就是说本发明实施例中可 以用 ServiceTemplate来完整描述需部署的应用的信息。 *. ste的应用部署 描述文件的子元素包括拓扑模板 TopologyTemplate、节点类型 NodeType、节 点模板 NodeTemplate、 关系类型 RelationshipType、 关系模板
RelationshipTemplate, 边界定义 BoundaryDef initions等。 应用部署描述 文件中的根元素及子元素的关系如图 1A所示, 图 1A为本发明实施例提供的 应用部署方法所基于的应用部署描述文件描述的应用模板结构示意图。
如图 1A所示, 本发明实施例使用 TopologyTemplate来描绘一个应用拓 扑。 该应用拓扑中包含了分别针对 al、 a2、 a3和 a4四个节点的节点模板, 即每个节点模板表述一个节点。 每个 NodeTemplate的类型由 NodeType定义 (NodeTemplate的 type属性描述了该 NodeTemplate对应的 NodeType ) 。 NodeType定义了节点的属性 (用 Properties定义) 、 该节点的接口 (用接 口集合 Interfaces定义)等,而 NodeTemplate是 NodeType的实例。 Node type 中的接口集合 Interfaces可包含至少一个接口 Interface,而每个 Interface 中可包含一个或多个方法 (即 Operation) , 每个方法对应一个方法制品。 其中, 节点的方法是指操作该节点所需要的功能函数。例如, 一个典型的 Web 应用中包含应用服务器节点, 在部署该应用过程中需要对应用服务器的配置 文件进行配置(如设置数据库服务器的 IP地址和端口号) , 那么这个配置过 程可以封装成一个方法 (即 Operation) , 方法名为 config (即 Operation name ) , 参数为 DBIP (数据库服务器的 IP地址)和 DBP0RT (数据库服务器的 端口号) 。 方法制品是指上述方法对应的具体实现, 可以是一个可执行文件, 如脚本文件。 例如, 在上面的例子中, 方法 config的方法制品可以是 config. javao 同时, 每个节点都对应一个部署制品, 该部署制品是指该节点 的一个安装包或文件, 可以是一个镜像 image或一个可安装的软件包等; 例 如, Web 应用节点的部署制品是 WAR包。 每个 NodeType对应一个节点类型执行 (NodeType Implementation: 简 称 NTI ), NTI描述了该 NodeType对应的节点的部署制品以及 NodeType中的 Interface中包含的所有方法的方法制品的信息。 例如, 参见图 1A, 节点 al 的节点模板对应 NodeType中的 Interfaces中的每个 Interface描述了至少 一个方法, 每个方法对应一个方法制品; 而 NodeType对应的 NTI中则描述了 针对节点 al的部署制品以及所述的 NodeType中的 Interface中包含的所有 方法的方法制品的信息。
应用拓扑 TopologyTemplate中的连接节点的每条边都是一个
RelationshipTemplate。而 RelationshipTemplate为现有技术, 本发明实施 例在此不再详述。
每个应用部署包还包括部署计划 (Plan) , 如图 1B所示, 图 1B为本发 明实施例与图 1A对应的部署计划的结构示意图, 部署计划是可执行的工作 流, 实际上是由多个被引用的方法组成的工作流。 工作流中的每个歩骤要执 行的任务都是 NodeType中定义的方法,可以用标准化语言描述,如用 BPMN2. 0 描述。执行该工作流实际上就是执行组成该工作流的各方法对应的方法制品。 在执行部署计划时, 应用部署服务器根据部署计划的定义按序逐个运行各任 务对应的方法对应的方法制品。 例如参见图 1B, 该 plan中包括任务 cl、 c2 和 c3.按照 plan中的定义, 在执行该 plan时, 执行顺序是先执行任务 cl, 再执行任务 c2, 然后执行任务 c3; 而所述的 cl、 c2和 c3即是 NodeType中 的 interface对应的方法。 而在执行该方法时实际上是执行该方法对应的方 法制品, 比如在执行所述 c l时, 实际是执行 cl对应的方法制品。 而方法和 方法制品的对应关系定义在应用部署描述文件中的 NTI中。 因此, 应用部署 服务器可以根据应用部署描述文件中的 NTI中方法和方法制品的对应关系, 执行 NTI中 cl对应的方法制品。
另夕卜, 每个 ServiceTemplate中者附括边界 (用 BoundaryDefinitions 定义), ServiceTemplate内部定义的一些组件都在该 BoundaryDefinitions 内呈现给用户; 所述的组件即是上述的 NodeTemplateN 部署制品、 方法制品 等。
由上述说明可知, 一个应用部署包中包含了部署该应用所需要的信息, 应用部署描述文件、 部署计划、 节点的部署制品和各方法的方法制品。 其中, 应用部署描述文件描述了应用的完整拓扑、 拓扑中节点的部署制品信息、 拓 扑中节点的方法和方法制品信息, 该应用部署包还包括。
图 2为本发明实施例提供的应用部署方法中的应用部署描述文件描述的 应用拓扑示意图。 通常部署一个典型的 WEB应用, 其完整的应用拓扑可以包 含应用内容拓扑和资源拓扑两部分。 比如图 2中所示的, 该应用拓扑中包括 针对 AppWar、 DB、 Apache和 MySql四个节点的节点模板。 其中, AppWar和 DB是应用节点 (其部署制品分别为 War包和数据库文件) , AppWar和 DB这 两个节点的模板构成了应用内容拓扑; Apache和 MySql是资源节点 (其部署 制品分别为包含 Apache和 MySql软件的镜像文件) , Apache和 MySql这两 个节点构成了资源拓扑。
本发明实施例中, 应用拓扑中也包括应用节点和资源节点两种。 为了提 高应用部署的可扩展性,使得 CSC的应用部署设备 AD能够引入第三方监控对 自己的云计算资源进行实时监控, 本发明实施例设计了虚拟框架 (Virtual Framework, 简称: VF) 的应用部署模式。 在该 VF模式中, 资源包中包含抽 象方法以便 AD针对该抽象方法进行扩展。 也就是说, AD需要提供该抽象方 法的方法制品。 例如, 该方法制品是某程序文件 connectMonitor. py, 通过 执行该程序文件实现与第三方的监控。 因此, 通过将该程序文件作为方法制 品, 就可以实现第三方监控的引入, 满足 AD的需求。 当然, AD也可以扩展 其他需求, 同样只需提供与该需求对应的方法制品作为上述抽象方法的方法 制品即可。
图 3为本发明实施例提供的应用部署方法的流程示意图, 本实施例的方 法的执行主体是应用部署服务器, 如图 3所示, 该方法可以包括:
301、 接收应用部署请求, 所述应用部署请求包括资源包的资源包标识、 至少一个方法制品、 所述每个方法制品与所述资源包中资源描述文件描述的 —个抽象方法之间的对应关系、 以及所述每个方法制品的方法制品信息; 具体的, 所述每个方法制品与所述资源包中资源描述文件描述的一个抽 象方法之间的对应关系、 以及所述每个方法制品的方法制品信息可以在应用 部署描述文件中描述。 方法制品、 应用部署描述文件由应用内容包包括, 而 应用部署请求包含应用内容包和资源包标识。
其中, 应用部署服务器可以是负责部署应用的服务器, 该应用部署服务 器接收应用部署设备 AD发送的应用部署请求,所述应用部署请求包括资源包 的资源包标识、 至少一个方法制品、 所述每个方法制品与所述资源包中资源 描述文件描述的一个抽象方法之间的对应关系、 以及所述每个方法制品的方 法制品信息。 也就是说, 在应用部署请求中, 一个方法制品是与资源描述文 件描述的一个抽象方法对应的。
具体的,资源包是由资源提供者开发提供并已在应用部署服务器上注册。 应用部署服务器在资源包提供者注册资源包时为资源包创建的唯一 ID称为 资源包标识。该资源包是 VF模式下的资源包, 其中包含了使用该资源包所需 要的信息, 例如资源描述文件和部署计划; 其中资源描述文件描述了抽象方 法, 而部署计划中引用所述抽象方法。 抽象方法是在资源描述文件中缺少方 法制品信息, 且资源包中没有为该抽象方法定义方法制品。 因为一般的方法 在资源描述文件中是有其对应的方法制品信息的, 而本实施例定义的抽象方 法没有方法制品信息。
在发送应用部署请求之前, AD在应用部署服务器上搜索待部署应用的资 源包并获得该资源包的标识。 并通过向资源包标识获取资源包描述的资源描 述文件。 具体的, AD向应用部署服务器发送资源包获取请求, 所述资源包获 取请求中携带资源包标识; 接收应用部署服务器发送的与资源包标识对应的 资源包, 并从所述资源包中获取所述资源描述文件。 作为一种可选方式, AD 还向应用部署服务器发送资源描述文件获取请求, 所述资源描述文伯获取请 求中携带资源包标识; 接收应用部署服务器发送的与资源包标识对应的资源 包包含的资源描述文件。
在具体实现过程中, 资源包获取请求可以为 getResourcePackage请求, 并在该请求中携带资源包标识。 而资源描述文件获取请求可以为
getdescriptiondocument, 并在该请求中携带资源包标识。
AD在获取到资源描述文件后, 根据资源描述文件中对所需数据的描述, 提供使用该资源包所需要的数据: 如提供资源描述文件描述的抽象方法的方 法制品, 和 /或提供应用节点的部署制品。 具体的, AD根据对资源描述文件 中对抽象方法的描述生成对应的方法制品。 值得说明的是, AD生成方法制品 的过程属于用户编程过程, 本发明实施例在此不作详述。 AD会将生成的包括 方法制品和 /或部署制品, 以及描述这些数据的信息(如应用内容描述文件), 以应用内容包的形式携带在部署请求中, 并将资源包的资源包标识也携带在 部署请求中发送至应用部署服务器。
302、 根据所述资源包标识获取所述资源包, 所述资源包包括: 所述资源 描述文件和部署计划; 所述资源描述文件描述了所述抽象方法, 所述部署计 划引用了所述抽象方法;
在本歩骤中, 应用部署服务器根据应用部署请求中携带的资源包标识, 获取资源包, 所述资源包包括资源描述文件和部署计划; 所述资源描述文件 中描述了抽象方法, 所述部署计划引用了所述抽象方法。
进一歩的, 该资源描述文件中还描述了应用节点和资源节点; 所述抽象 方法的描述包含在所述应用节点和 /或所述资源节点的节点类型中。
303、根据所述每个方法制品与所述资源包中资源描述文件描述的一个抽 象方法之间的对应关系, 将所述方法制品信息增加到所述资源描述文件中以 形成应用部署描述文件;
可选的, 所述抽象方法包含在所述应用节点的节点类型中, 所述应用部 署请求包含应用节点的节点类型执行 NTI , 所述方法制品与所述资源包中资 源描述文件描述的抽象方法之间的对应关系在所述应用节点的节点类型执行 NTI中描述;所述将所述方法制品信息增加到资源描述文件中具体为: 将所述 应用节点的 NTI增加到资源描述文件中。
可选的, 所述抽象方法包含在所述资源节点的节点类型中, 所述应用部 署请求中包含边界定义, 所述方法制品与所述资源包中资源描述文件描述的 抽象方法之间的对应关系在所述边界定义中描述;所述将所述方法制品信息 增加到资源描述文件具体为: 将所述边界定义中描述的所述方法制品信息增 加到资源描述文件的资源节点的 NTI中。
进一歩的, 应用部署服务器还可以将方法制品增加到资源包中。 值得说 明的是: 应用节点的节点类型执行 NTI和边界定义可以包含在应用内容描述 文件中。
进一歩的, 当将抽象方法的方法制品信息增加到所述资源描述文件中之 后,还可以修改资源描述文件中节点类型描述的抽象方法的属性为普通方法。
进一歩的, 在执行该歩骤之前, 应用部署服务器可以根据以下方法资源 描述文件中是否定义了抽象方法: 确定所述资源描述文件中的方法用抽象标 识关键字标注, 且所述资源描述文件不包括所述方法的方法制品信息, 则确 定所述资源描述文件中描述的用抽象标识关键字标注的方法是抽象方法。
进一歩的, 所述应用部署请求还包括: 应用节点的部署制品以及所述部 署制品的部署制品信息; 在所述根据所述资源包标识获取所述资源包之后该 方法还包括: 将所述应用节点的部署制品信息增加到所述资源包的所述资源 描述文件中所述应用节点对应的节点类型执行 NTI中, 以及将所述应用部署 请求中所述应用节点的部署制品作为所述资源描述文件中应用节点的部署制 p
304、根据所述应用部署描述文件执行所述部署计划引用的抽象方法的方 法制品。
具体的, 所述应用部署描述文件定义了所述抽象方法, 而部署计划引用 了抽象方法 (即包含各抽象方法的名称) 。 部署计划实际上是由多个方法组 成的工作流, 执行该工作流实际上就是执行组成该工作流的各方法对应的方 法制品。 具体到抽象方法, 则是执行该抽象方法对应的方法制品, 而该方法 制品是 AD开发提供的, 所以执行该第一部署计划就可以引入了 AD利用该方 法制品扩展的自己的需求, 例如第三方监控。
在执行该歩骤之前, 应用部署服务器还可以根据应用部署描述文件、 资 源包和应用部署请求分别包含的各部署制品和方法制品, 以及资源包中的部 署计划生成应用部署包。 所述应用部署包包括所述部署计划, 所述应用部署 描述文件各部署制品和方法制品。其中, 方法制品包括抽象方法的方法制品。
本实施例的应用部署方法, 通过在资源包中设置抽象方法, 部署应用的 用户只需要提供与该抽象方法对应的方法制品即可满足用户的自身需求, 所 以相对于现有技术提高了应用部署的可扩展性。
图 4为本发明实施例提供的应用部署方法的流程示意图, 本方法的执行 主体是应用部署设备例如 AD, 如图 4所示, 该方法可以包括:
401、获取待部署应用的资源包的资源包标识, 根据所述资源包标识获取 资源包的资源描述文件, 所述资源描述文件中描述了至少一个抽象方法; 资源包包括: 资源描述文件和部署计划; 所述资源描述文件描述了至少 一个抽象方法。
如图 6B所述, 资源包中的部署计划引用了所述至少一个抽象方法, 如图 6B中 6和 7对应的方法。
具体的, 应用部署设备 AD在部署应用前, 可以通过界面搜索获取资源包 标识, 并通过向应用部署服务器发送资源包获取请求, 所述资源包获取请求 中携带资源包标识; 接收应用部署服务器发送的与资源包标识对应的资源 包, 并从所述资源包中获取所述资源描述文件; 作为一种可选方式, 应用部 署设备 AD可以向向应用部署服务器发送资源描述文件获取请求,资源描述文 件所属的资源包的资源包; 接收应用部署服务器发送的与资源包标识对应的 资源包包含的资源描述文件。
402、根据所述资源描述文件描述的至少一个抽象方法, 生成与每个所述 抽象方法对应的方法制品、 与所述方法制品的方法制品信息, 以及所述每个 方法制品与所述资源描述文件描述的一个抽象方法之间的对应关系;
具体的, AD在获取资源描述文件后, 根据所述资源描述文件中对抽象方 法的描述, 开发提供了与该抽象方法对应的方法制品, 并且是一个抽象方法 对应一个方法制品。
AD还描述了所述每一个方法制品与所述资源描述文件描述的一个抽象方 法之间的对应关系, 以及每个方法制品的方法制品信息。 具体的, 所述资源 描述文件描述了应用节点,所述抽象方法包含在所述应用节点的节点类型中; 述根据所述资源描述文件描述的至少一个抽象方法生成与每个所述抽象方法 对应的方法制品, 包括: 根据所述资源描述文件中包含在所述应用节点的节 点类型描述的抽象方法, 生成与所述应用节点的抽象方法对应的方法制品; 该方法进一歩包括: 根据所述资源描述文件中描述的应用节点在应用部 署请求中描述所述应用节点;
所述方法制品与所述资源描述文件描述的抽象方法之间的对应关系以及 所述方法制品信息在所述应用部署请求中描述的应用节点的节点类型执行 NTI中描述。
可选的, 所述资源描述文件还描述了资源节点; 所述抽象方法包含在所 述资源节点的节点类型中;所述根据所述资源描述文件描述的至少一个抽象 方法生成与每个所述抽象方法对应的方法制品, 包括: 根据所述资源描述文 件中包含在所述资源节点的节点类型描述的抽象方法, 生成与所述资源节点 的抽象方法对应的方法制品; 所述方法制品与所述资源描述文件描述的抽象 方法之间的对应关系以及所述方法制品信息在所述所述应用部署请求中的边 界定义中描述。
作为一种实施方式, 应用节点的节点类型执行 NTI , 以及边界定义都包 含在应用内容描述文件中, 应用部署请求包含应用内容描述文件。
此外, AD还确定所述资源描述文件中的应用节点用抽象标识关键字标注, 并且所述资源描述文件不包括所述应用节点的部署制品信息,则 AD根据所述 资源描述文件生成应用节点的部署制品以及所述部署制品的部署制品信息, 所述应用部署请求还包括: 应用节点的部署制品以及所述部署制品的部署制 自 值得说明的是,节应节点的部署制品信息也包含在应用节点的节点类型执 行 NTI。
403、 生成应用部署请求, 所述应用部署请求包括所述资源包标识、 所述 每个方法制品与所述资源描述文件描述的一个抽象方法之间的对应关系、 每 个方法制品的方法制品信息和所述方法制品; 向应用部署服务器发送所述应 用部署请求。
其中, 所述应用部署请求包括所述资源包标识、 所述每个方法制品与所 述资源描述文件中的一个抽象方法之间的对应关系、 每个方法制品的方法制 品信息和所述方法制品, 以使得所述应用部署服务器根据所述资源包标识获 取所述资源包, 并根据所述资源包和应用部署请求生成用于部署所述应用的 应用部署包, 所述应用部署包中包括应用部署描述文件、 部署计划、 抽象方 法对应的方法制品, 从而使得应用部署服务器根据应用部署描述文件在执行 所述部署计划时就会执行所述抽象方法对应的方法制品。该方法制品是 AD为 抽象方法提供的,从而实现了 AD通过提供抽象方法对应的方法制品的方式引 入 AD自己的需求。
进一歩的, AD生成应用节点的部署制品以及所述部署制品的部署制品信 息之前, 该方法还包括: 确定所述资源描述文件中的应用节点用抽象标识关 键字标注, 并且所述资源描述文件不包括所述应用节点的部署制品信息。
图 5为本发明实施例提供的应用部署方法的流程示意图, 本实施例对应 用部署方法的详细完整的流程进行描述, 包括获取资源描述文件、 AD如何根 据资资源描述文件生成应用部署请求中携带的内容、 以及应用部署服务器如 何根据资源包和应用内容包生成应用部署包并执行部署计划的整个过程。 如 图 5所示, 该方法包括:
501、获取待部署应用的资源包的资源包标识, 根据所述资源包标识获取 资源包的资源描述文件;
其中, 假设 AD在应用部署服务器上搜索资源, 以部署一个 WEB应用。 例 如, 在部署该 WEB应用时, 需要使用到数据库 DB和应用包 War。 并假设 AD 找到的符合需求的资源包的标识是 MoniRes , 该资源包的完整拓扑可以参见 图 6A, 该资源包包含的部署计划参见图 6B。 图 6A为本发明实施例提供的应 用部署方法中的资源描述文件的拓扑示意图, 图 6B为本发明实施例提供的应 用部署方法中的部署计划的示意图。 如图 6A所示, 该资源描述文件含节点 War— A、 DB— A、 Apache和 Mysql的节点模板。 其中, Apache和 MySql为资源 节点, Apache的 NodeType为 ApacheServer, 以及 Apache的
NodeTypelmplementation (NTI )为 ApacheServerNTL MySql的 NodeType为 MySQLServer, 以及 MySql的 NodeTypelmplementation (NTI ) 为
MySQLServerNTI o ApacheServer和 MySQLServer这两个 NodeType中各定义 一个抽象方法 (该抽象方法可以是在 NodeType中的 Interface中定义的) , 名为 startMonitor (该抽象方法是在本实施例中举例的名字, 具体实施中当 然也可以是其他的方法名称) 。 也就是说, 两资源节点各包含一个名为 startMonitor的抽象方法。
本实施例中, 抽象方法的定义可包含在节点的 NodeType中, 其具体的定 义方式可以为: 给方法 Operation添加一个可选的, Optional的属性, 如抽 象 abstract , 若该属性值为 yes , 则表示该方法为抽象方法; 若为 no , 则为 普通方法; 默认为 no。 具体定义方式为:
<Interfaces>
<Interface name= " string")
< Operation name= string " abstract= "yes | no " />
如上所示, 方法 Operation定义在 Interfaces的 Interface下, 方法名 用名字 name属性描述, 也就是说方法名就是上述的 Operation name的对 string字段的取值。 属性 abstract表示该名为 string字段的取值的方法是 否为抽象方法。 参见上述的定义例子, 其含义是, 在 Interfaces中包含一个
Interface , 该 Interface的名禾尔 ( Interface name ) 是对 string字段的耳又 值, 在该 Interface中又包含一个方法, 该方法名称也是对 string字段的取 值 ( Operation name= string ) , 并且该方法的 abstract属性耳又值为 yes , 即该方法 string是抽象方法。 例如, 上述的 Apache节点和 MySql节点的抽 象方法 startMoni tor可定义为:
<Interfaces>
<Interf ace name= "monitor ">
< Operation name= " startMonitor" " abstract= "yes " 〃 /〉
</Interf ace>
</Interfaces>
如上所示, 由于方法 startMonitor的属性 abstract的值为 yes , 故该 startMonitor方法为抽象方法。
另外, 为了给抽象方法指定方法制品, 所以本实施例将两个资源节点的 抽象方法包含在资源描述文件的边界 BoundaryDef initions中以呈现给用 户。 而在 BoundaryDef init ions中包含的 Operation定义在独立 Interface , 并且能够映射至节点类型中的 interface。 例如, Apache节点和 MySql节点 的抽象方法 startMonitor在 BoundaryDef initions中的描述方式为:
<Interfaces>
< Interface name= "monitor— boundary,, >
< Operat ion name= " startMonitor— MySql〃〉
<NodeOperation nodeRef= " MySql " interfaceName= "monitor " operationName= " startMonitor"/)
</ Operation >
< Operation name= " startMonitor— Apache
<NodeOperation nodeRef= " Apache " interfaceName= "monitor" operationName= " startMonitor"/)
</ Operation >
</ Interface >
</ Interfaces)
···. II 其他定义
</ BoundaryDefinitions)
如上所示, BoundaryDefinitions中定义 Interfaces禾口 Interface, Interface的名称 name为 "监听边界: monitor— boundary,, 。 该名为 monitor— boundary 的 Interface描述了两个 Operation, 分另 lj为
startMonitor MySql和 startMonitor— Apache, 表示该两个方法为分别针对 MySql和 Apache 节点的抽象方法。 startMonitor— MySql定义了一个
NodeOperation, 表示 startMonitor— MySql映射至该 NodeOperatior
NodeOperation包含 3个属性, 用于指向一个方法, nodeRef描述节点名, interfaceName描述接口名, operationName描述方法的名称。例如,此例中, startMonitor MySql 对应 MySql节点中 monitor接口中的 startMonitor方 法, 而 startMonitor Apache 对应 Apache节点中 monitor接口中的 startMonitor方法。 比如, 结合上面的对于 MySql节点的抽象方法
startMonitor的定义, 以及附图 6A所示, 该节点 MySql对应的 Nodetype是 MySQLServer, 该 MySQLServer中包含名称为 "monitor 〃的 Interface。 在 该 Interface "monitor 〃下定义了名称为 " startMonitor"的抽象方法
( abstract的属性为 yes ) ; 那么, 按照上述的在 BoundaryDefinitions呈 现的名称为 " startMonitor〃的抽象方法, 其通过 NodeOperation映射到(或 者说对应到) MySQLServer中的抽象方法。 映射的方法就是如上所示的, 节 点名 (nodeRef ) 是 " MySql " (指出了节点名即可, 就知道抽象方法是在该 节点对应的 Nodetype中的 interface定义的) , 接口名 ( interfaceName ) 是 "monitor" , 方法名 ( operationName ) 是 " startMonitor" , 这样京尤建 立了 BoundaryDefinitions中的抽象方法与实际节点的抽象方法之间的映射 关系。 Apache节点中的抽象方法的映射道理相同, 不再赘述。
如图 6A所示, Apache节点和 MySql节点的抽象方法 startMonitor都已 包含在图 6B部署计划 Bui ldPlan中, 例如, 图 6B的部署计划 Bui ldPlan引 用了:
"Apache. instal lApp― MySql. start― MySql. instal lDB― MySql. getNetwor kinf o一 Apache, conf ig一 Apache. startMonitor― MySql. startMonitor― Apa che. start " ; 该 Bui ldPlan中包含了 Apache— startMonitor和
MySql— startMonitor,所以 AD需提供分别针对这两个抽象方法的方法制品即 可在 Bui ldPlan中调用。
如图 6A所示, War— A节点和 DB— A节点的 NodeType分别为 WebApp— A和 AppDB— A, WebApp— A和 AppDB— A中没有定义方法, 也就是说, 两抽象应用节 点 War— A和 DB— A的节点类型中不包含任何方法。 因此, War— A和 DB— A的节 点类型为抽象 NodeType ( abstract NodeType ) , 故该两节点为抽象应用节 点。 由于抽象应用节点的 NodeType中并不包含部署制品以及 Node Type中定 义的 Operation都是抽象方法。 因此, AD需提供抽象应用节点的部署制品, 和 Operation的方法制品。 由于在图 6A所示的例子中, WebApp— A和 AppDB— A 中没有定义方法, 因此, AD只需提供两抽象应用节点的部署制品即可。并且, 如上所述的, 抽象方法在资源描述文件中用抽象标识 abstract标注, 并该节 点的在 NTI中不包含对应的方法制品的内容。 抽象应用节点在资源描述文件 中也用抽象标识 abstract标注,且在资源描述文件中也不包含该节点的部署 制品信息。 即抽象应用节点是没有对应的部署制品的应用节点, 并且如果抽 象应用节点包含方法, 则抽象应用节点包含的所有方法为抽象方法。 作为一 种可选方案, 抽象应用节点包含的抽象方法可以不用抽象标识 abstract标 注。
参见上述的图 6A, 资源包中包含使用该资源包所需要的信息, 其中包括 描述图 6A中所示拓扑信息的资源描述文件、 以及图 6B所示的部署计划等, 该资源描述文件描述了应用拓扑、 抽象应用节点、 资源节点。 需要说明的是, 本实施例是以资源节点包含抽象方法(即抽象方法是在资源节点的 Nodetype 中的 Interface中定义的) 为例进行说明。 具体实施中, 抽象方法可以包含 在抽象应用节点和 /或资源节点中 (和 /或, 表示至少包含在抽象应用节点和 资源节点的任一方) , 并且部署计划中使用了抽象方法。
由上述的描述可知, AD使用资源包还需要提供的数据包括: 应用节点的 部署制品、 所有抽象方法 (本实施例是以资源节点有抽象方法为例) 的方法 制品 (如上所述, 抽象方法没有方法制品, 需要提供) , 为了区别抽象应用 节点中抽象方法的方法制品和资源节点中抽象方法的方法制品, 可以将抽象 应用节点中抽象方法的方法制品称为应用方法制品, 将资源节点中抽象方法 的方法制品称为资源方法制品。
502、 AD解析资源包的资源描述文件, 描述与资源包中的节点对应的节 点;
其中, AD解析资源包 MoniRes的资源描述文件, 获取资源描述文件的 NodeType为 WebApp— A和 AppDB— A以及应用节点 War— A和 DB— A中携带抽象标 识关键字, 分别创建应用节点的节点类型 WebApp和 AppDB。 其中, 节点类型 WebApp包含了 WebApp— A的所有内容, AppDB也包含了 AppDB— A的所有内容。
WebApp的 NodeTemplate 是 AppWar, AppDB的 NodeTemplate是 DB。 AppWar 和 DB就是应用节点。
可选的, 参见图 6C所示, AD可以进一歩创应用内容描述文件, 并将上 述创建的节点模板, 节点类型及 NTI包含在应用内容描述文件中。
参见图 6C, 图 6C为本发明实施例提供的应用部署方法中的应用内容包 与资源包的对应示意图。 由于 WebApp和 AppDB的节点类型包含了 WebApp— A 和 AppDB— A的所有内容, 应用节点 AppWar和 DB的 NodeType分别为 WebApp 和 AppDB, 抽象应用节点 War— A和 DB— A的 NodeType分别为 WebApp— A和 AppDB— A。所以, 应用节点 AppWar和 DB分别对应于资源描述文件中的应用节 点 War— A和 DB— Ao
503、 AD创建 WebApp和 AppDB的 NTI , 并在 NTI中描述 AppWar和 DB的 部署制品;
其中, AD在应用内容描述文件中创建 WebApp和 AppDB的 NTI (NTI中可 以描述 NodeType的部署制品和方法制品信息),分别为 WebAppNTI和 AppDBNTI (见图 6C ) 。 AD还在 WebAppNTI和 AppDBNTI中分别描述部署制品 app. war 和 app. db。由于应用节点 AppWar和 DB的 NodeType分另 lj为 WebApp和 AppDB, 而 WebAppNTI和 AppDBNTI分别是 WebApp和 AppDB的 NTI , 所以上述的部署 制品 app. war和 app. db是分别对应应用节点 AppWar和 DB的部署制品。
另外, 由于应用节点 AppWar和 DB分别对应于资源描述文件中应用节点 War— A和 DB— A。所以, 在 WebAppNTI和 AppDBNTI中描述的 AppWar和 DB的部 署制品 app. war和 app. db的信息对应于应用节点 War— A和 DB— A的部署制品 信息。 而由于本实施例的应用节点 War— A和 DB— A不包含任何方法, 所以 WebAppNTI和 AppDBNTI中只描述了部署制品信息。 如果资源包的 War— A和 DB— A的 NodeType中定义了抽象方法, 则在 WebAppNTI和 AppDBNTI中也要描 述抽象方法的方法制品信息, 如描述抽象方法和方法制品的对应关系, 即在 应用内容描述文件中的与抽象应用节点对应的应用节点的 NTI中描述方法制 品与资源包中资源描述文件中的抽象应用节点的抽象方法之间的对应关系。
504、 AD在应用内容描述文件中的 BoundaryDefinitions中描述资源包 中资源节点的节点类型中定义的抽象方法的方法制品信息以及方法制品与资 源描述文件中的抽象方法的对应关系;
由于本实施例中, 资源包的抽象方法为资源节点的节点类型中定义的抽 象方法, 通过 BoundaryDefinitions呈现给用户。 而针对抽象方法的方法制 品信息也描述在应用内容描述文件中的 BoundaryDefinitions , 即在应用内 容描述文件中的边界定义 BoundaryDefinition中描述方法制品与资源包中 资源描述文件中的资源节点的抽象方法之间的对应关系。
其中, AD在上述应用内容描述文件中的 BoundaryDefinitions中描述资 源节点 (即 Apache和 Mysql ) 定义的抽象方法 startMonitor的资源方法制 品 (即 connectMonitor. py)。本实施例采用如下方法在 BoundaryDefinitions 中描述方法制品。 具体的, 一种可选的方式为通过^ w ?c¾ /fe i ?i io ^中 的方 ifac ts描述如下:
name= " string,, interf aceName=
" string,, operationName=
artifactRef= " string " />
···. II 其他定义
</ BoundaryDefinitions) BoundaryDefinitions中的 ImplementationArtifacts下會够定义多个 ImplementationArtif act。每个 ImplementationArtifact描述 ^ ^个方法制品 的信息。 ImplementationArtifact具有 5个属性, 議 e属性为该
ImplementationArtifact的 ID, interfaceName为所描述的方法制品对应的 抽象方法在资源描述文件中 BoundaryDefinitions中的接口名;
operationName为所描述的方法制品对应的方法在资源描述文件中
BoundaryDefinitions中的方法名; artifactType为方法制品的类型, 其中, 方法制品的类型中包含了该方法制品的脚本文件的文件类型,例如 Python脚 本的方法制品类型为
"http : //docs. oasisopen. org/ tosca/ns/ScriptArtif act/Python" ; ar t i f ac t Ref为引用的方法制品的名称。
作为一个具体的例子, 方法制品 connectMonitor. py在应用内容描述文 件中 :
name= " startMonitorlA MySql interfaceName= " monitor— boundary ,, operationName " startMonitor MySql " artifactType
" http : //docs. oasisopen. org/tosca/ns/ScriptArtifact/Python " artifactRef= "connectMonitor. py" /> name= " startMonitorlA Apache interfaceName= " monitor— boundary ,, operationName " startMonitor Apache ,, artifactType
" http : //docs. oasisopen. org/tosca/ns/ScriptArtifact/Python " artifactRef= "connectMonitor. py" />
</ BoundaryDefinitions) connectMonitor. py对应的资源描述文件中的抽象方法为
startMonitor。节点 MySql的节点模板中的 startMonitor在资源描述文件中 BoundaryDef initions的接口名禾口方法名分另 lj为 monitor— boundary禾口 startMonitor— MySql。 因此, 针对 MySql节点的抽象方法 startMonitor的 ImplementationArtif act的 interfaceName属性禾口 operationName属性的值 分别为 monitor— boundary禾口 startMonitor— MySql ; 由于 connectMonitor. py 为 Python脚本, 故 artifactType属性的值为
http : //docs. oasisopen. org/ tosca/ ns/ScriptArtif act/Python, 而 artifactRef属性的值为 connectMonitor. py (直接引用该程序文件) 。 针对 Apache节点的抽象方法 startMonitor的 ImplementationArtif act类似, 这 里不再赘。
505、 AD将上述创建的应用内容描述文件和部署制品 app. war和 app. db、 以及与抽象方法 startMonitor对应的方法制品 connectMonitor. py携带在应 用部署请求中发送给应用部署服务器, 其中应用部署请求中包含还资源包标 识;
其中, AD会在应用内容描述文件中的边界定义中描述 AD提供的方法制 品 connectMonitor. py与资源包中的抽象方法 startMonitor之间的对应关 系, 以及 connectMonitor. py的方法制品信息。 本实施例由于抽象方法是包 含在资源节点中, 所以应用内容描述文件描述的是方法制品与资源节点中的 抽象方法 startMonitor之间的对应关系。如果具体实施中资源包中具有包含 在抽象应用节点中的抽象方法, AD还需提供与该抽象应用节点的抽象方法对 应的应用方法制品, 并在应用内容描述文件中描述应用方法制品与抽象应用 节点中的抽象方法之间的对应关系。
506、 应用部署服务器接收 AD发送的应用部署请求, 并根据请求中携带 的资源包标识获取资源包;
其中, 应用部署服务器接收到 AD发送的应用部署请求, 该应用部署请求 至少包含资源包的资源包标识、 至少一个方法制品、 所述每个方法制品与所 述资源包中资源描述文件中的一个抽象方法之间的对应关系、 以及所述每个 方法制品的方法制品信息。 作为一个例子, 所述每个方法制品与所述资源包 中资源描述文件中的一个抽象方法之间的对应关系、 以及所述每个方法制品 的方法制品信息包含在应用内容描述文件中。
例如, 本实施例中,
资源包 ID为: MoniRes;
应用节点的部署制品: app. war和 app. db;
应用方法制品: 由于本实施例的抽象应用节点没有方法, 因此应用内容 包中没有应用方法制品;
资源方法制品: connectMonitor. py;
图 6C的应用内容描述文件。
应用内容描述文件描述了如下信息:
应用节点的部署制品信息: 应用节点 AppWar的部署制品 app. war, 应用 节点 DB的部署制品 app. db, 应用内容描述文件中描述的是这些部署制品的 信息; 应用节点的应用方法制品信息: 由于本实施例的抽象应用节点没有方 法, 因此应用内容描述文件没有应用节点的应用方法制品信息。
应用节点与所述资源描述文件中应用节点的对应关系: 应用节点 AppWar 和 DB分别对应于抽象应用节点 War— A和 DB— A (体现在应用节点 AppWar和 DB 的 NodeType分别包含应用节点 War— A和 DB— A的 NodeType ) ;
方法制品与所述资源包中资源节点抽象方法的对应关系: 资源方法制品 connectMonitor. py对应于资源节点 Apache和 MySql的抽象方法
startMonitor (由于本实施例采用 T0SCA描述, 抽象方法 startMonitor在 BoundaryDefinition中需要描述在新的 Interface和 Operation下, 所以, 方法制品 connectMonitor. py对应于抽象方法 startMonitor在
BoundaryDefinition中对应的 Interface禾口 Operation) 。
应用部署服务器根据资源包 ID获取的资源包。应用部署服务器获取的资 源包包含资源描述文件、 部署计划。 资源描述文件描述了该资源包能支持的 应用拓扑、 抽象应用节点、 资源节点和部署计划。 其中, 资源节点定义了抽 象方法, 部署计划使用了抽象方法。
例如, 本实施例中,
部署计划: 见图 6B;
此外, 资源描述文件还可以包括引用的部署制品和方法制品: 主要为资 源节点的部署制品和非抽象方法的方法制品, 与本实施例的流程关系不大, 这里不做赘述。
应用拓扑: 见图 6A;
应用节点: War— A和 DB— A;
资源节点: Apache和 MySql ;
应用节点和 /或资源节点定义了抽象方法:本实施例的抽象应用节点没有 定义方法, 资源节点 Apache和 MySql分别定义了一个抽象方法, 都叫做 startMonitor;
部署计划使用了抽象方法; 见图 6B, 部署计划 (即 BuildPlan) 的第 6、 7歩使用了名为 startMonitor的抽象方法。
507、将所述应用部署请求中所述应用节点的部署制品作为所述资源描述 文件中应用节点的部署制品。
具体的, 将所述部署制品信息增加到资源描述文件中。 进一歩的, 应用 部署服务器还可以将所述应用部署请求中所述应用节点的部署制品增加到 资源包中。
其中, 应用部署服务器将所述应用内容描述文件中描述的所述应用节点 的部署制品的信息, 拷贝到所述资源包的所述资源描述文件中所述抽象应用 节点对应的节点类型执行 NodeTypelmplementation中,作为所述抽象应用节 点的部署制品的信息。
具体的, 参见图 6C, 由于应用节点 AppWar和 DB的 NodeType (WebApp 和 AppDB) 分别包含了应用节点 War— A和 DB— A的 NodeType (WebApp— A和 DB— A) ) 。 而节点类型 WebApp和 AppDB的部署制品的信息都描述在对应的 NTI中 (即 WebAppNTI和 AppDBNTI ) 。故只需在资源包的资源描述文件中修 改 WebAppNTI和 AppDBNTI的 nodeType属性为 WebApp— A和 AppDB— A (即表示 WebAppNTI 和 AppDBNTI分别是 WebApp— A和 AppDB— A的 NTI ) , 然后修改 WebApp— A和 AppDB— A的属性为普通节点即可, 修改的方式例如是, 可以删除 WebApp— A和 AppDB— A的 abstract属性, 比如删除整个 abstract=yes; 或者 是将 abstract的属性修改为 no, 比如将 abstract=yes修改为 abstract=no0 表示现在原资源包中的抽象应用节点 War— A和 DB— A已经都具有了部署制品, 所以成为普通节点。
508、根据所述每个方法制品与所述资源包中资源描述文件中的一个抽象 方法之间的对应关系, 将所述方法制品信息增加到所述资源描述文件中以形 成应用部署描述文件;
应用部署服务器处理资源包中的资源节点的抽象方法: 根据方法制品与 所述资源节点包含的抽象方法的对应关系, 将所述抽象方法的方法制品信息 增加到资源描述文件中以形成应用部署描述文件;修改所述抽象方法的属性 为普通方法, 进一歩的可以将抽象方法的方法制品增加到资源包中。 其中的 将抽象方法的方法制品信息增加到资源描述文件中以形成应用部署描述文件 具体为: 将所述应用内容描述文件中边界定义中描述的方法制品与资源包中 资源描述文件中资源节点的抽象方法之间的对应关系增加到资源描述文件的 资源节点的 NTI中。
具体的, 由于资源包中资源节点的抽象方法 startMonitor定义在资源节 点的 NodeType中, 而通过在 BoundaryDef inition中通过新的 Interface和 Operation下呈现给用户。 而应用部署请求中资源节点的方法制品
connectMonitor. py在 BoundaryDef inition中的描述对应于抽象方法 startMonitor在 BoundaryDef inition中对应的 Interface禾口 Operatior 因 此, 具体的处理流程为:
第一歩: 获取应用部署请求中 (也可以是应用部署请求中应用内容描棕 文件中) BoundaryDef inition中的 ImplementationArtifact的
interfaceName和 operationName的值;
第二歩:在资源描述文件中的 BoundaryDef inition査找 NodeOperation。 其中, 査找的 NodeOperation的 Interface name禾口 Operation Name的值分 别等于从应用部署请求获取的 Interface Name和 Operation name的值; 第三歩: 获耳又所述 NodeOperation的 nodeRef、 interfaceName n operationName的值;
第四歩: 将应用部署请求中 BoundaryDef inition中的
ImplementationArtifact信息全部拷贝至资源描述文件中节点名为获取的 nodeRef值的节点的 NodeType的 NTI中的 ImplementationArtifacts项下, 并修改 NTI中的 ImplementationArtifact的属性 interfaceName和
operationName的值为所述 NodeOperation的 interfaceName禾口
operationName的值; 第五歩: 删除资源节点的节点类型中抽象方法的 abstract属性, 或修改 资源节点的节点类型中抽象方法的 abstract的取值。其中, 该抽象方法的节 点名为节点名为第三歩获取的 nodeRef 的值, 接口名为第三歩获取的 interfaceName的值, 方法名为第三歩获取的 operationName的值。
下面阐述处理 MySql中抽象方法 startMonitor的具体过程,处理 Apache 中抽象方法 startMonitor的具体过程类似:
资源包中 MySql的抽象方法 startMonitor在 BoundaryDef inition中的 描述可以参见前面所述, 而应用内容包中资源方法制品 connectMonitor. py 在 BoundaryDef inition中的描述在前面也已经描述过。
第一歩: 获取应用部署请求中 (也可以是应用部署请求中应用内容描棕 文件中) ImplementationArtifact的 interfaceName禾口 operationName的值 分别为 monitor— boundary禾口 startMonitor— MySql ;
第二歩:获耳又 NodeOperation,其中,该 NodeOperation的属性 Interface name禾口 Operation name的值分别为 monitor— boundary禾口
startMonitor— MySql的: 该 NodeOperation示例如下:
<NodeOperation nodeRef= "MySql " interfaceName= "monitor" operationName= " startMonitor"/
第三歩: 获取的 NodeOperation的属性 nodeRef interfaceName和 operationName的值分别为 MySql、 monitor禾口 startMonitor;
第四歩:将应用部署请求中的 ImplementationArtifact信息全部拷贝至
MySql的 NodeType ( §卩 ApacheServer) 的 NTI ( §卩 ApacheServerNTI ) 中, 然后将 ImplementationArtifact的属性 interfaceName禾口 operationName的 值分别修改为 monitor和 startMonitor;
第五歩: 删除 MySql中 monitor接口中 startMonitor方法的 abstract 属性, 或者修改 abstract属性的取值, 比如由 abstract=yes修改为 abstract=nO o
本实施例是以抽象方法包含在资源节点的节点类型中为例进行说明的, 当抽象方法包含在抽象应用节点的节点类型中时, 所述方法制品与所述资源 包中资源描述文件中的抽象方法之间的对应关系在所述应用节点的节点类型 执行 NTI中描述。 并且这种情况下, 将所述抽象方法的方法制品信息增加到 资源描述文件中以形成应用部署描述文件具体为: 将所述应用内容描述文件 中的与所述抽象应用节点对应的应用节点的 NTI增加到资源描述文件中以形 成应用部署描述文件。
509、应用部署服务器根据根据所述应用部署描述文件执行所述部署计划 引用的抽象方法的方法制品。
例如, 在本实施例中, 应用部署服务器将应用内容包中的部署制品 (即 app. war n app. db ) 、 和资源方法制品 (即 connectMonitor. py ) 拷贝至资 源包。 根据所述应用部署描述文件、 包含抽象方法的方法制品的资源包以及 所述部署计划生成应用部署包, 所述应用部署包包括所述部署计划、 所述应 用部署描述文件和抽象方法的方法制品。
本实施例中, AD为待部署的应用搜索到资源包 MoniRes后, 根据资源包 中资源描述文件对抽象方法的描述, 知道只要用程序实现了与第三方监控建 立连接的过程, 并将该程序文件 ( connectMonitor. py) 作为 Apache节点和 MySql节点的抽象方法 startMonitor的方法制品即可实现 AD需求; 通过在 资源包中设置抽象方法, 部署应用的用户只需要提供与该抽象方法对应的方 法制品即可满足用户的自身需求, 所以相对于现有技术提高了应用部署的可 扩展性。
值得说明的是, 本发明实施例还提供一种可选方案, 即 AD在获取待部署 应用的资源包的资源包标识, 根据所述资源包标识获取资源包的资源描述文 件后, 还可以根据资源描述文件描述的普通方法, 生成与普通方法对应的方 法制品、 所述方法制品的方法制品信息、 以及所述所述每个方法制品与所述 资源描述文件中的一个普通方法之间的对应关系,并在应用部署请求中 AD生 成的信息, 以便于应用部署服务器根据所述应用部署描述文件执行所述部署 计划引用的普通方法的方法制品时执行 AD发送的方法制品。
具体的, AD可以采用图 3-图 5所示的方法在应用部署请求中携带所述方 法制品的方法制品信息、 以及所述所述每个方法制品与所述资源描述文件中 的一个普通方法之间的对应关系。 如果该普通方法的方法制品是应用节点的 方法制品, AD可以在应用节点的 NTI中携带方法制品信息以及该方法制品与 资源描述文件中应用节点的该方法的对应关系。 如果该普通方法的方法制品 是资源节点的方法制品, AD可以在应用内容描述文件的边界定义中携带方法 制品信息以及该方法制品与资源描述文件中资源节点的该方法的对应关系。 应用部署服务器在收到 AD发送的应用部署请求后,可以根据应用部署请 求确定 AD发送的方法制品是针对资源描述文件中抽象方法的方法制品还是 针对资源描述文件中的普通方法的方法制品, 如果是针对资源描述文件中抽 象方法的方法制品, 应用部署服务器按图 2-图 5对应的实施例的相关歩骤处 理。 如果是针对资源描述文件中普通方法的方法制品, 应用部署服务器需要 先删除资源包中该普通方法的方法制品, 再将应用部署请求中携带的普通方 法的方法制品作为资源描述文件中该普通方法的方法制品。 进一歩的, 应用 部署服务器还可以删除资源描述文件中该普通方法的方法制品信息, 而将应 用部署请求中该普通方法的方法制品信息增加到资源描述中。 其中, 将应用 部署请求中该普通方法的方法制品信息增加到资源描述中的具体方法, 可以 参见图 3-图 5对应实施例的相应描述, 本发明实施例在不再详述。 作为另一 种可选方式, 应用部署请求中的普通方法的方法制品可以与资源包中的普通 方法的方法制品名称相同, 以及方法制品的信息也相同。 则应用部署服务器 可以直接将应用部署请求中的普通方法的方法制品作为应用部署时需执行的 方法制品即可。
图 7为本发明实施例提供的应用部署服务器的结构示意图, 该服务器可 以执行本发明任意实施例的方法, 如图 7所示, 该服务器可以包括: 请求接 收单元 71、 信息获取单元 72、 信息处理单元 73和应用部署单元 74; 其中, 请求接收单元 71, 用于接收应用部署请求, 所述应用部署请求包括资源 包的资源包标识、 至少一个方法制品、 所述每个方法制品与所述资源包中资 源描述文件描述的一个抽象方法之间的对应关系、 以及所述每个方法制品的 方法制品信息;
信息获取单元 72, 用于根据所述请求接收单元接收的所述应用部署请求 包括的所述资源包标识获取所述资源包, 所述资源包包括: 所述资源描述文 件和部署计划; 所述资源描述文件描述了所述抽象方法, 所述部署计划引用 了所述抽象方法;
信息处理单元 73, 用于根据所述请求接收单元接收的所述应用部署请求 包括的所述每个方法制品与所述资源包中资源描述文件描述的一个抽象方法 之间的对应关系, 将所述方法制品信息增加到所述信息获取单元获取的所述 资源包中包括的所述资源描述文件中以形成应用部署描述文件; 应用部署单元 74, 用于根据所述信息处理单元形成的所述应用部署描述 文件执行所述部署计划引用的抽象方法的方法制品。
进一歩的, 所述资源描述文件还描述了应用节点和资源节点; 所述抽象 方法的描述包含在所述应用节点和 /或所述资源节点的节点类型中。
进一歩的, 所述抽象方法包含在所述应用节点的节点类型中, 所述应用 部署请求包含应用节点的节点类型执行 NTI , 所述方法制品与所述资源包中 资源描述文件描述的抽象方法之间的对应关系在所述应用节点的节点类型执 行 NTI中描述;所述信息处理单元 73将所述方法制品信息增加到所述信息获 取单元 72获取的所述资源包中包括的所述资源描述文件中具体为:将所述应 用节点的 NTI增加到资源描述文件中; 或,
所述抽象方法包含在所述资源节点的节点类型中, 所述应用部署请求中 包含边界定义, 所述方法制品与所述资源包中资源描述文件描述的抽象方法 之间的对应关系在所述边界定义中描述;所述信息处理单元 73将所述方法制 品信息增加到所述信息获取单元 72获取的所述资源包中包括的所述资源描 述文件具体为: 将所述边界定义中描述的所述方法制品信息增加到资源描述 文件的资源节点的 NTI中。
进一歩的, 所述信息处理单元 73进一歩用于: 修改所述信息获取单元 72获取的所述资源包中包括的所述资源描述文件节点类型描述的抽象方法的 属性为普通方法; 和 /或, 将所述请求接收单元 71接收的所述应用部署请求 包含的方法制品增加到资源包中。
进一歩的, 所述应用部署请求还包括: 应用节点的部署制品; 所述信息 处理单元 73在所述信息获取单元 72根据所述资源包标识获取所述资源包之 后,还用于将所述请求接收单元 71接收的所述应用部署请求中所述应用节点 的部署制品作为所述信息获取单元 72获取的所述资源包中包括的所述资源 描述文件中应用节点的部署制品。
进一歩的, 所述应用部署请求还包括所述部署制品的部署制品信息; 所 述信息处理单元 73将所述请求接收单元 71接收的所述应用部署请求中所述 应用节点的部署制品作为所述信息获取单元 72获取的所述资源包中包括的 所述资源描述文件中应用节点的部署制品具体为: 将所述部署制品信息增加 到资源描述文件中; 以及, 将所述应用部署请求中所述应用节点的部署制品 增加到资源包中。
进一歩的, 所述信息处理单元 73在将所述请求接收单元 71接收的所述 应用部署请求包括的所述方法制品信息增加到所述信息获取单元 72获取的 所述资源包中包括的所述资源描述文件中以形成应用部署描述文件之前, 还 用于确定所述资源描述文件中用抽象标识关键字标注的方法是抽象方法。
图 8为本发明实施例提供的应用部署设备实施例的结构示意图, 该设备 可以执行本发明任意实施例的方法, 该设备例如是 AD; 如图 8所示, 该设备 可以包括: 信息获取单元 81、 信息生成单元 82、 请求生成单元 83和部署请 求单元 84; 其中,
信息获取单元 81, 用于获取待部署应用的资源包的资源包标识, 根据所 述资源包标识获取资源包的资源描述文件, 所述资源描述文件中描述了至少 一个抽象方法;
信息生成单元 82, 用于根据所述信息获取单元 81获取的所述资源描述 文件描述的至少一个抽象方法, 生成与每个所述抽象方法对应的方法制品、 与所述方法制品的方法制品信息, 以及所述每个方法制品与所述资源描述文 件描述的一个抽象方法之间的对应关系;
请求生成单元 83, 用于生成应用部署请求, 所述应用部署请求包括所述 信息获取单元 81获取的所述资源包标识、 所述信息生成单元 82生成的每个 方法制品与所述信息获取单元 81获取的所述资源描述文件描述的一个抽象 方法之间的对应关系、 每个方法制品的方法制品信息和所述方法制品; 部署请求单元 84, 用于向应用部署服务器发送所述请求生成单元 83生 成的所述应用部署请求。
进一歩的,所述信息获取单元 81根据所述资源包标识获取资源包的资源 描述文件具体为: 向应用部署服务器发送资源包获取请求, 所述资源包获取 请求中携带资源包标识; 接收应用部署服务器发送的与资源包标识对应的资 源包, 并从所述资源包中获取所述资源描述文件; 或者, 向应用部署服务器 发送资源描述文件获取请求, 所述资源描述文伯获取请求中携带资源描述文 件所属的资源包的资源包标识; 接收应用部署服务器发送的与资源包标识对 应的资源包包含的资源描述文件。 进一歩的, 所述资源描述文件描述了应用节点, 所述抽象方法包含在所 述应用节点的节点类型中; 所述信息生成单元 82根据所述信息获取单元 81 获取的所述资源描述文件描述的至少一个抽象方法生成与每个所述抽象方法 对应的方法制品具体为: 根据所述资源描述文件中包含在所述应用节点的节 点类型中的抽象方法, 生成与所述应用节点的抽象方法对应的方法制品; 所 述请求生成单元 83进一歩用于根据所述信息获取单元 81获取的所述资源描 述文件中描述的应用节点在应用部署请求中描述所述应用节点; 所述方法制 品与所述资源描述文件中的抽象方法之间的对应关系以及所述方法制品信息 在所述应用部署请求中描述的应用节点的节点类型执行 NTI中描述。
进一歩的, 所述资源描述文件还描述了资源节点; 所述抽象方法包含在 所述资源节点的节点类型中; 信息生成单元 82根据所述信息获取单元 81获 取的所述资源描述文件描述的至少一个抽象方法生成与每个所述抽象方法对 应的方法制品具体为: 根据所述资源描述文件中包含在所述资源节点的节点 类型中的抽象方法, 生成与所述资源节点的抽象方法对应的方法制品; 所述 方法制品与所述资源描述文件中的抽象方法之间的对应关系以及所述方法制 品信息在所述应用部署请求中的边界定义中描述。
进一歩的, 所述信息生成单元 82在所述部署请求单元 84向应用部署服 务器发送所述请求生成单元 83生成的所述应用部署请求之前,根据所述资源 描述文件生成应用节点的部署制品以及所述部署制品的部署制品信息; 所述 应用部署请求还包括: 应用节点的部署制品以及所述部署制品的部署制品信 息。
进一歩的,所述信息生成单元 82在根据所述资源描述文件生成应用节点 的部署制品以及所述部署制品的部署制品信息之前, 进一歩用于确定所述信 息获取单元 81获取的所述资源描述文件中的应用节点用抽象标识关键字标 注, 并且所述资源描述文件不包括所述应用节点的部署制品信息。
图 9为本发明实施例提供的应用部署服务器的实体结构示意图, 用于实 现如本发明实施例所述的应用部署方法, 其工作原理可以参见前述方法实施 例。 如图 9所示, 该应用部署服务器可以包括: 存储器 901、 处理器 902、 总 线 903和通信接口 904。 处理器 902和存储器 901和通信接口 904之间通过 总线 903连接并完成相互间的通信。 处理器 902可能为单核或多核中央处理 单元 (central processing unit , 简称: CPU) , 或者为特定集成电路
( appl ication specific integrated circuit , 简称: ASIC) , 或者为被酉己 置成实施本发明实施例的一个或多个集成电路。 存储器 901可以为高速 RAM 存储器, 也可以为非易失性存储器 (non-volati le memory) , 例如至少一个 磁盘存储器。
其中, 所述通信接口 904用于与外部设备进行通信, 接收应用部署请求, 所述应用部署请求包括资源包的资源包标识、 至少一个方法制品、 所述每个 方法制品与所述资源包中资源描述文件描述的一个抽象方法之间的对应关 系、 以及所述每个方法制品的方法制品信息。
所述存储器 901存储应用程序; 所述处理器 902调用所述存储器 901中 存储的应用程序, 根据所述资源包标识获取所述资源包, 所述资源包包括: 所述资源描述文件和部署计划; 所述资源描述文件描述了所述抽象方法, 所 述部署计划引用了所述抽象方法; 根据所述每个方法制品与所述资源包中资 源描述文件描述的一个抽象方法之间的对应关系, 将所述方法制品信息增加 到所述资源描述文件中以形成应用部署描述文件; 根据所述应用部署描述文 件执行所述部署计划引用的抽象方法的方法制品。
进一歩的, 所述资源描述文件还描述了应用节点和资源节点; 所述抽象 方法的描述包含在所述应用节点和 /或所述资源节点的节点类型中。
进一歩的, 所述抽象方法包含在所述应用节点的节点类型中, 所述应用 部署请求包含应用节点的节点类型执行 NTI , 所述方法制品与所述资源包中 资源描述文件描述的抽象方法之间的对应关系在所述应用节点的节点类型执 行 NTI中描述;所述处理器 902将将所述方法制品信息增加到资源描述文件中 具体为: 将所述应用节点的 NTI增加到资源描述文件中; 或, 所述抽象方法 包含在所述资源节点的节点类型中, 所述应用部署请求中包含边界定义, 所 述方法制品与所述资源包中资源描述文件描述的抽象方法之间的对应关系在 所述边界定义中描述;所述处理器 902将所述方法制品信息增加到资源描述 文件具体为: 将所述边界定义中描述的所述方法制品信息增加到资源描述文 件的资源节点的 NTI中。
进一歩的, 所述处理器 902进一歩用于修改资源描述文件中节点类型中 的抽象方法的属性为普通方法;和 /或, 将应用部署请求包含的方法制品增加 到资源包中。
进一歩的, 所述应用部署请求还包括: 应用节点的部署制品; 所述处理 器 902, 还用于在所述根据所述资源包标识获取所述资源包之后, 将所述应 用部署请求中所述应用节点的部署制品作为所述资源描述文件中应用节点的 部署制品。
进一歩的, 所述应用部署请求还包括所述部署制品的部署制品信息; 所 述处理器 902将所述应用部署请求中所述应用节点的部署制品作为所述资源 描述文件中应用节点的部署制品具体为: 将所述部署制品信息增加到资源描 述文件中; 以及, 将所述应用部署请求中所述应用节点的部署制品增加到资 源包中。
进一歩的, 所述处理器 902在将所述方法制品信息增加到所述资源描述 文件中以形成应用部署描述文件之前, 用于确定所述资源描述文件中用抽象 标识关键字标注的方法是抽象方法。
图 10为本发明实施例提供的应用部署设备的实体结构示意图,用于实现 如本发明实施例所述的应用部署方法,其工作原理可以参见前述方法实施例。 如图 10所示, 该应用部署设备可以包括: 存储器 1001、 处理器 1002、 总线 1003和通信接口 1004。 处理器 1002和存储器 1001和通信接口 1004之间通 过总线 1003连接并完成相互间的通信。 处理器 1002可能为单核或多核中央 处理单元 (central processing unit , 简称: CPU) , 或者为特定集成电路 ( appl ication specific integrated circuit , 简称: ASIC) , 或者为被配 置成实施本发明实施例的一个或多个集成电路。 存储器 1001可以为高速 RAM 存储器, 也可以为非易失性存储器 (non-volati le memory) , 例如至少一个 磁盘存储器。
其中, 所述通信接口 1004用于与外部设备进行通信, 获取待部署应用的 资源包的资源包标识, 根据所述资源包标识获取资源包的资源描述文件, 所 述资源描述文件中描述了至少一个抽象方法。
所述存储器 1001存储应用程序; 所述处理器 1002调用所述存储器 1001 中存储的应用程序, 根据所述资源描述文件描述的至少一个抽象方法, 生成 与每个所述抽象方法对应的方法制品、 与所述方法制品的方法制品信息, 以 及所述每个方法制品与所述资源描述文件描述的一个抽象方法之间的对应关 系; 生成应用部署请求, 所述应用部署请求包括所述资源包标识、 所述每个 方法制品与所述资源描述文件中的一个抽象方法之间的对应关系、 每个方法 制品的方法制品信息和所述方法制品;所述通信接口 1004进一歩用于向应用 部署服务器发送所述应用部署请求。
进一歩的,所述处理器 1002根据所述资源包标识获取资源包的资源描述 文件具体为: 向应用部署服务器发送资源包获取请求, 所述资源包获取请求 中携带资源包标识; 接收应用部署服务器发送的与资源包标识对应的资源 包, 并从所述资源包中获取所述资源描述文件; 或者, 向应用部署服务器发 送资源描述文件获取请求, 所述资源描述文伯获取请求中携带资源描述文件 所属的资源包的资源包标识; 接收应用部署服务器发送的与资源包标识对应 的资源包包含的资源描述文件。
进一歩的, 所述资源描述文件描述了应用节点, 所述抽象方法包含在所 述应用节点的节点类型中;所述处理器 1002根据所述资源描述文件描述的至 少一个抽象方法生成与每个所述抽象方法对应的方法制品具体为: 根据所述 资源描述文件中包含在所述应用节点的节点类型中描述的抽象方法, 生成与 所述应用节点的抽象方法对应的方法制品; 所述处理器 1002进一歩用于: 根 据所述资源描述文件中描述的应用节点在应用部署请求中描述所述应用节 点; 所述方法制品与所述资源描述文件中描述的抽象方法之间的对应关系以 及所述方法制品信息在所述应用部署请求中描述的应用节点的节点类型执行 NTI中描述。
进一歩的, 所述资源描述文件还描述了资源节点; 所述抽象方法包含在 所述资源节点的节点类型中;所述处理器 1002根据所述资源描述文件描述的 至少一个抽象方法生成与每个所述抽象方法对应的方法制品具体为: 根据所 述资源描述文件中包含在所述资源节点的节点类型中描述的抽象方法, 生成 与所述资源节点的抽象方法对应的方法制品; 所述方法制品与所述资源描述 文件中描述的抽象方法之间的对应关系以及所述方法制品信息在所述应用部 署请求中的边界定义中描述。
进一歩的,所述处理器 1002在所述向应用部署服务器发送应用部署请求 之前, 还用于生成应用节点的部署制品以及所述部署制品的部署制品信息, 所述应用部署请求还包括: 应用节点的部署制品以及所述部署制品的部署制 进一歩的,所述处理器 1002生成应用节点的部署制品以及所述部署制品 的部署制品信息之前, 确定所述资源描述文件中的应用节点用抽象标识关键 字标注, 并且所述资源描述文件不包括所述应用节点的部署制品信息。
本领域普通技术人员可以理解: 实现上述各方法实施例的全部或部分歩 骤可以通过程序指令相关的硬件来完成。 前述的程序可以存储于一计算机可 读取存储介质中。 该程序在执行时, 执行包括上述各方法实施例的歩骤; 而 前述的存储介质包括: R0M、 RAM, 磁碟或者光盘等各种可以存储程序代码的 介质。
最后应说明的是: 以上各实施例仅用以说明本发明的技术方案, 而非对 其限制; 尽管参照前述各实施例对本发明进行了详细的说明, 本领域的普通 技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换; 而这些修改或者替换, 并 不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (1)

  1. 权 利 要 求 书
    1、 一种应用部署方法, 其特征在于, 包括:
    接收应用部署请求, 所述应用部署请求包括资源包的资源包标识、 至少 一个方法制品、 所述每个方法制品与所述资源包中资源描述文件描述的一个 抽象方法之间的对应关系、 以及所述每个方法制品的方法制品信息;
    根据所述资源包标识获取所述资源包, 所述资源包包括: 所述资源描述 文件和部署计划; 所述资源描述文件描述了所述抽象方法, 所述部署计划引 用了所述抽象方法;
    根据所述每个方法制品与所述资源包中资源描述文件描述的一个抽象方 法之间的对应关系, 将所述方法制品信息增加到所述资源描述文件中以形成 应用部署描述文件;
    根据所述应用部署描述文件执行所述部署计划引用的抽象方法的方法制
    P
    2、 根据权利要求 1所述的方法, 其特征在于, 所述资源描述文件还描述 了应用节点和资源节点;
    所述抽象方法的描述包含在所述应用节点和 /或所述资源节点的节点类 型中。
    3、 根据权利要求 2所述的方法, 其特征在于, 所述抽象方法包含在所述 应用节点的节点类型中, 所述应用部署请求包含应用节点的节点类型执行 NTI ,所述方法制品与所述资源包中资源描述文件描述的抽象方法之间的对应 关系在所述应用节点的节点类型执行 NTI中描述;所述将所述方法制品信息 增加到资源描述文件中具体为: 将所述应用节点的 NTI增加到资源描述文件 中;
    所述抽象方法包含在所述资源节点的节点类型中, 所述应用部署请求中 包含边界定义, 所述方法制品与所述资源包中资源描述文件描述的抽象方法 之间的对应关系在所述边界定义中描述;所述将所述方法制品信息增加到资 源描述文件具体为: 将所述边界定义中描述的所述方法制品信息增加到资源 描述文件的资源节点的 NTI中。
    4、 根据权利要求 3所述的方法, 其特征在于, 该方法进一歩包括: 修改资源描述文件中节点类型中的抽象方法的属性为普通方法; 和 /或 将应用部署请求包含的方法制品增加到资源包中。
    5、 根据权利要求 3或 4所述的方法, 其特征在于, 所述应用部署请求还 包括: 应用节点的部署制品; 在所述根据所述资源包标识获取所述资源包之 后该方法还包括:
    将所述应用部署请求中所述应用节点的部署制品作为所述资源描述文件 中应用节点的部署制品。
    6、 根据权利要求 5所述的方法, 其特征在于, 所述应用部署请求还包括 所述部署制品的部署制品信息, 所述将所述应用部署请求中所述应用节点的 部署制品作为所述资源描述文件中应用节点的部署制品具体为:
    将所述部署制品信息增加到资源描述文件中; 以及
    将所述应用部署请求中所述应用节点的部署制品增加到资源包中。
    7、 根据权利要求 1-6任一所述的方法, 其特征在于, 在将所述方法制品 信息增加到所述资源描述文件中以形成应用部署描述文件之前, 还包括: 确定所述资源描述文件中用抽象标识关键字标注的方法是抽象方法。
    8、 一种应用部署方法, 其特征在于, 包括:
    获取待部署应用的资源包的资源包标识, 根据所述资源包标识获取资源 包的资源描述文件, 所述资源描述文件中描述了至少一个抽象方法;
    根据所述资源描述文件描述的至少一个抽象方法, 生成与每个所述抽象 方法对应的方法制品、 与所述方法制品的方法制品信息, 以及所述每个方法 制品与所述资源描述文件描述的一个抽象方法之间的对应关系;
    生成应用部署请求, 所述应用部署请求包括所述资源包标识、 所述每个 方法制品与所述资源描述文件中的一个抽象方法之间的对应关系、 每个方法 制品的方法制品信息和所述方法制品;
    向应用部署服务器发送所述应用部署请求。
    9、 根据权利要求 8所述的方法, 其特征在于, 所述根据所述资源包标识 获取资源包的资源描述文件, 包括:
    向应用部署服务器发送资源包获取请求, 所述资源包获取请求中携带资 源包标识; 接收应用部署服务器发送的与资源包标识对应的资源包, 并从所 述资源包中获取所述资源描述文件; 或者, 向应用部署服务器发送资源描述文件获取请求, 所述资源描述文 伯获取请求中携带资源描述文件所属的资源包的资源包标识; 接收应用部署 服务器发送的与资源包标识对应的资源包包含的资源描述文件。
    10、 根据权利要求 8或 9所述的方法, 其特征在于, 所述资源描述文件 描述了应用节点, 所述抽象方法包含在所述应用节点的节点类型中; 所述根 据所述资源描述文件描述的至少一个抽象方法生成与每个所述抽象方法对应 的方法制品, 包括: 根据所述资源描述文件中包含在所述应用节点的节点类 型中的抽象方法,生成与所述应用节点的抽象方法对应的方法制品;该方法进 一歩包括:
    根据所述资源描述文件中描述的应用节点在应用部署请求中描述所述应 用节点;
    所述方法制品与所述资源描述文件中的抽象方法之间的对应关系以及所 述方法制品信息在所述应用部署请求中描述的应用节点的节点类型执行 NTI 中描述。
    11、 根据权利要求 8-10任一所述的方法, 其特征在于, 所述资源描述文 件还描述了资源节点; 所述抽象方法包含在所述资源节点的节点类型中; 所述根据所述资源描述文件描述的至少一个抽象方法生成与每个所述抽 象方法对应的方法制品, 包括: 根据所述资源描述文件中包含在所述资源节 点的节点类型中的抽象方法, 生成与所述资源节点的抽象方法对应的方法制 品;
    所述方法制品与所述资源描述文件中的抽象方法之间的对应关系以及所 述方法制品信息在所述应用部署请求中的边界定义中描述。
    12、 根据权利要求 10所述的方法, 其特征在于, 在所述向应用部署服务 器发送应用部署请求之前, 还包括:
    根据所述资源描述文件生成应用节点的部署制品以及所述部署制品的部 署制品信息, 所述应用部署请求还包括: 应用节点的部署制品以及所述部署 制品的部署制品信息。
    13、 根据权利要求 12所述的方法, 其特征在于, 所述根据资源描述文件 生成应用节点的部署制品以及所述部署制品的部署制品信息之前, 该方法还 包括: 确定所述资源描述文件中的应用节点用抽象标识关键字标注, 并且所述 资源描述文件不包括所述应用节点的部署制品信息。
    14、 一种应用部署服务器, 其特征在于, 包括:
    请求接收单元, 用于接收应用部署请求, 所述应用部署请求包括资源包 的资源包标识、 至少一个方法制品、 所述每个方法制品与所述资源包中资源 描述文件描述的一个抽象方法之间的对应关系、 以及所述每个方法制品的方 法制品信息;
    信息获取单元, 用于根据所述请求接收单元接收的所述应用部署请求包 括的所述资源包标识获取所述资源包, 所述资源包包括: 所述资源描述文件 和部署计划; 所述资源描述文件描述了所述抽象方法, 所述部署计划引用了 所述抽象方法;
    信息处理单元, 用于根据所述请求接收单元接收的所述应用部署请求包 括的所述每个方法制品与所述资源包中资源描述文件描述的一个抽象方法之 间的对应关系, 将所述方法制品信息增加到所述信息获取单元获取的所述资 源包中包括的所述资源描述文件中以形成应用部署描述文件;
    应用部署单元, 用于根据所述信息处理单元形成的所述应用部署描述文 件执行所述部署计划引用的抽象方法的方法制品。
    15、 根据权利要求 14所述的服务器, 其特征在于, 所述资源描述文件还 描述了应用节点和资源节点;
    所述抽象方法的描述包含在所述应用节点和 /或所述资源节点的节点类 型中。
    16、 根据权利要求 15所述的服务器, 其特征在于, 所述抽象方法包含在 所述应用节点的节点类型中, 所述应用部署请求包含应用节点的节点类型执 行 NTI , 所述方法制品与所述资源包中资源描述文件描述的抽象方法之间的 对应关系在所述应用节点的节点类型执行 NTI中描述; 所述信息处理单元将 所述方法制品信息增加到所述信息获取单元获取的所述资源包中包括的所述 资源描述文件中具体为: 将所述应用节点的 NTI增加到资源描述文件中; 或 所述抽象方法包含在所述资源节点的节点类型中, 所述应用部署请求中 包含边界定义, 所述方法制品与所述资源包中资源描述文件描述的抽象方法 之间的对应关系在所述边界定义中描述; 所述信息处理单元将所述方法制品 信息增加到所述信息获取单元获取的所述资源包中包括的所述资源描述文件 具体为: 将所述边界定义中描述的所述方法制品信息增加到资源描述文件的 资源节点的 NTI中。
    17、 根据权利要求 16所述的服务器, 其特征在于,
    所述信息处理单元进一歩用于: 修改所述信息获取单元获取的所述资源 包中包括的所述资源描述文件中节点类型描述的抽象方法的属性为普通方法; 和 /或,将所述请求接收单元接收的所述应用部署请求包含的方法制品增加到 资源包中。
    18、 根据权利要求 16或 17所述的服务器, 其特征在于, 所述应用部署 请求还包括: 应用节点的部署制品;
    所述信息处理单元在所述信息获取单元根据所述资源包标识获取所述资 源包之后, 还用于将所述请求接收单元接收的所述应用部署请求中所述应用 节点的部署制品作为所述信息获取单元获取的所述资源包中包括的所述资源 描述文件中应用节点的部署制品。
    19、 根据权利要求 18所述的服务器, 其特征在于, 所述应用部署请求还 包括所述部署制品的部署制品信息;
    所述信息处理单元将所述请求接收单元接收的所述应用部署请求中所述 应用节点的部署制品作为所述信息获取单元获取的所述资源包中包括的所述 资源描述文件中应用节点的部署制品具体为:
    将所述部署制品信息增加到资源描述文件中; 以及
    将所述应用部署请求中所述应用节点的部署制品增加到资源包中。
    20、 根据权利要求 14-19任一所述的服务器, 其特征在于, 所述信息处 理单元在将所述请求接收单元接收的所述应用部署请求包括的所述方法制品 信息增加到所述信息获取单元获取的所述资源包中包括的所述资源描述文件 中以形成应用部署描述文件之前, 还用于确定所述资源描述文件中用抽象标 识关键字标注的方法是抽象方法。
    21、 一种应用部署设备, 其特征在于, 包括:
    信息获取单元, 用于获取待部署应用的资源包的资源包标识, 根据所述 资源包标识获取资源包的资源描述文件, 所述资源描述文件中描述了至少一 个抽象方法; 信息生成单元, 用于根据所述信息获取单元获取的所述资源描述文件描 述的至少一个抽象方法, 生成与每个所述抽象方法对应的方法制品、 与所述 方法制品的方法制品信息, 以及所述每个方法制品与所述资源描述文件描述 的一个抽象方法之间的对应关系;
    请求生成单元, 用于生成应用部署请求, 所述应用部署请求包括所述信 息获取单元获取的所述资源包标识、 所述信息生成单元生成的每个方法制品 与所述信息获取单元获取的所述资源描述文件描述的一个抽象方法之间的对 应关系、 每个方法制品的方法制品信息和所述方法制品;
    部署请求单元, 用于向应用部署服务器发送所述请求生成单元生成的所 述应用部署请求。
    22、 根据权利要求 21所述的设备, 其特征在于, 所述信息获取单元根据 所述资源包标识获取资源包的资源描述文件具体为:
    向应用部署服务器发送资源包获取请求, 所述资源包获取请求中携带资 源包标识; 接收应用部署服务器发送的与资源包标识对应的资源包, 并从所 述资源包中获取所述资源描述文件;
    或者, 向应用部署服务器发送资源描述文件获取请求, 所述资源描述文 伯获取请求中携带资源描述文件所属的资源包的资源包标识; 接收应用部署 服务器发送的与资源包标识对应的资源包包含的资源描述文件。
    23、 根据权利要求 21或 22所述的设备, 其特征在于, 所述资源描述文 件描述了应用节点, 所述抽象方法包含在所述应用节点的节点类型中;
    所述信息生成单元根据所述信息获取单元获取的所述资源描述文件描述 的至少一个抽象方法生成与每个所述抽象方法对应的方法制品具体为: 根据 所述资源描述文件中包含在所述应用节点的节点类型中的抽象方法, 生成与 所述应用节点的抽象方法对应的方法制品;
    所述请求生成单元进一歩用于根据所述信息获取单元获取的所述资源描 述文件中描述的应用节点在应用部署请求中描述所述应用节点;
    所述方法制品与所述资源描述文件中的抽象方法之间的对应关系以及所 述方法制品信息在所述应用部署请求中描述的应用节点的节点类型执行 NTI 中描述。
    24、 根据权利要求 21-23任一所述的设备, 其特征在于, 所述资源描述 文件还描述了资源节点; 所述抽象方法包含在所述资源节点的节点类型中; 信息生成单元根据所述信息获取单元获取的所述资源描述文件描述的至 少一个抽象方法生成与每个所述抽象方法对应的方法制品具体为: 根据所述 资源描述文件中包含在所述资源节点的节点类型中的抽象方法, 生成与所述 资源节点的抽象方法对应的方法制品;
    所述方法制品与所述资源描述文件中的抽象方法之间的对应关系以及所 述方法制品信息在所述应用部署请求中的边界定义中描述。
    25、 根据权利要求 24所述的设备, 其特征在于, 所述信息生成单元在所 述部署请求单元向应用部署服务器发送所述请求生成单元生成的所述应用部 署请求之前, 根据所述资源描述文件生成应用节点的部署制品以及所述部署 制品的部署制品信息; 所述应用部署请求还包括: 应用节点的部署制品以及 所述部署制品的部署制品信息。
    26、 根据权利要求 21所述的设备, 其特征在于, 所述信息生成单元在根 据资源描述文件生成应用节点的部署制品以及所述部署制品的部署制品信息 之前, 进一歩用于确定所述信息获取单元获取的所述资源描述文件中的应用 节点用抽象标识关键字标注, 并且所述资源描述文件不包括所述应用节点的 部署制品信息。
    27、 一种应用部署服务器, 其特征在于, 包括: 通信接口、 处理器; 存 储器;
    所述通信接口用于与外部设备进行通信, 接收应用部署请求, 所述应用 部署请求包括资源包的资源包标识、 至少一个方法制品、 所述每个方法制品 与所述资源包中资源描述文件描述的一个抽象方法之间的对应关系、 以及所 述每个方法制品的方法制品信息;
    所述存储器存储应用程序;
    所述处理器调用所述存储器中存储的应用程序, 根据所述资源包标识获 取所述资源包, 所述资源包包括: 所述资源描述文件和部署计划; 所述资源 描述文件描述了所述抽象方法, 所述部署计划引用了所述抽象方法; 根据所 述每个方法制品与所述资源包中资源描述文件描述的一个抽象方法之间的对 应关系, 将所述方法制品信息增加到所述资源描述文件中以形成应用部署描 述文件; 根据所述应用部署描述文件执行所述部署计划引用的抽象方法的方 法制品。
    28、 根据权利要求 27所述的服务器, 其特征在于,
    所述资源描述文件还描述了应用节点和资源节点;
    所述抽象方法的描述包含在所述应用节点和 /或所述资源节点的节点类 型中。
    29、 根据权利要求 28所述的服务器, 其特征在于,
    所述抽象方法包含在所述应用节点的节点类型中, 所述应用部署请求包 含应用节点的节点类型执行 NTI , 所述方法制品与所述资源包中资源描述文 件描述的抽象方法之间的对应关系在所述应用节点的节点类型执行 NTI中描 述;所述处理器将将所述方法制品信息增加到资源描述文件中具体为:将所述 应用节点的 NTI增加到资源描述文件中; 或
    所述抽象方法包含在所述资源节点的节点类型中, 所述应用部署请求中 包含边界定义, 所述方法制品与所述资源包中资源描述文件描述的抽象方法 之间的对应关系在所述边界定义中描述;所述处理器将所述方法制品信息增 加到资源描述文件具体为: 将所述边界定义中描述的所述方法制品信息增加 到资源描述文件的资源节点的 NTI中。
    30、 根据权利要求 29所述的服务器, 其特征在于,
    所述处理器进一歩用于修改资源描述文件中节点类型中的抽象方法的属 性为普通方法; 和 /或, 将应用部署请求包含的方法制品增加到资源包中。
    31、 根据权利要求 29或 30所述的服务器, 其特征在于, 所述应用部署 请求还包括: 应用节点的部署制品;
    所述处理器, 还用于在所述根据所述资源包标识获取所述资源包之后, 将所述应用部署请求中所述应用节点的部署制品作为所述资源描述文件中应 用节点的部署制品。
    32、 根据权利要求 31所述的服务器, 其特征在于, 所述应用部署请求还 包括所述部署制品的部署制品信息;
    所述处理器将所述应用部署请求中所述应用节点的部署制品作为所述资 源描述文件中应用节点的部署制品具体为: 将所述部署制品信息增加到资源 描述文件中; 以及, 将所述应用部署请求中所述应用节点的部署制品增加到 资源包中。 33、 根据权利要求 27-32任一所述的服务器, 其特征在于, 所述处理器在将所述方法制品信息增加到所述资源描述文件中以形成应 用部署描述文件之前, 用于确定所述资源描述文件中用抽象标识关键字标注 的方法是抽象方法。
    34、 一种应用部署设备, 其特征在于, 包括: 通信接口、 处理器; 存储 器;
    所述通信接口用于与外部设备进行通信, 获取待部署应用的资源包的资 源包标识, 根据所述资源包标识获取资源包的资源描述文件, 所述资源描述 文件中描述了至少一个抽象方法;
    所述存储器存储应用程序;
    所述处理器调用所述存储器中存储的应用程序, 根据所述资源描述文件 描述的至少一个抽象方法, 生成与每个所述抽象方法对应的方法制品、 与所 述方法制品的方法制品信息, 以及所述每个方法制品与所述资源描述文件描 述的一个抽象方法之间的对应关系; 生成应用部署请求, 所述应用部署请求 包括所述资源包标识、 所述每个方法制品与所述资源描述文件中的一个抽象 方法之间的对应关系、 每个方法制品的方法制品信息和所述方法制品; 所述通信接口进一歩用于向应用部署服务器发送所述应用部署请求。
    35、 根据权利要求 34所述的设备, 其特征在于,
    所述处理器根据所述资源包标识获取资源包的资源描述文件具体为: 向应用部署服务器发送资源包获取请求, 所述资源包获取请求中携带资 源包标识; 接收应用部署服务器发送的与资源包标识对应的资源包, 并从所 述资源包中获取所述资源描述文件;
    或者, 向应用部署服务器发送资源描述文件获取请求, 所述资源描述文 伯获取请求中携带资源描述文件所属的资源包的资源包标识; 接收应用部署 服务器发送的与资源包标识对应的资源包包含的资源描述文件。
    36、 根据权利要求 34或 35所述的设备, 其特征在于, 所述资源描述文 件描述了应用节点, 所述抽象方法包含在所述应用节点的节点类型中; 所述处理器根据所述资源描述文件描述的至少一个抽象方法生成与每个 所述抽象方法对应的方法制品具体为: 根据所述资源描述文件中包含在所述 应用节点的节点类型中的抽象方法, 生成与所述应用节点的抽象方法对应的 方法制品;
    所述处理器进一歩用于:
    根据所述资源描述文件描述的应用节点在应用部署请求中描述所述应用 节点;
    所述方法制品与所述资源描述文件描述的抽象方法之间的对应关系以及 所述方法制品信息在所述应用部署请求中描述的应用节点的节点类型执行 NTI中描述。
    37、 根据权利要求 34-36任一所述的设备, 其特征在于, 所述资源描述 文件还描述了资源节点; 所述抽象方法包含在所述资源节点的节点类型中; 所述处理器根据所述资源描述文件描述的至少一个抽象方法生成与每个 所述抽象方法对应的方法制品具体为:
    根据所述资源描述文件中包含在所述资源节点的节点类型中的抽象方 法, 生成与所述资源节点的抽象方法对应的方法制品;
    所述方法制品与所述资源描述文件中的抽象方法之间的对应关系以及所 述方法制品信息在所述应用部署请求中的边界定义中描述。
    38、 根据权利要求 36所述的设备, 其特征在于,
    所述处理器在所述向应用部署服务器发送应用部署请求之前, 还用于根 据所述资源描述文件生成应用节点的部署制品以及所述部署制品的部署制品 信息, 所述应用部署请求还包括: 应用节点的部署制品以及所述部署制品的 部署制品信息。
    39、 根据权利要求 38所述的设备, 其特征在于,
    所述处理器根据所述资源描述文件生成应用节点的部署制品以及所述部 署制品的部署制品信息之前, 确定所述资源描述文件中的应用节点用抽象标 识关键字标注,并且所述资源描述文件不包括所述应用节点的部署制品信息。
CN201380000827.6A 2013-05-31 2013-05-31 应用部署方法和设备 Active CN105051687B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/076559 WO2014190544A1 (zh) 2013-05-31 2013-05-31 应用部署方法和设备

Publications (2)

Publication Number Publication Date
CN105051687A true CN105051687A (zh) 2015-11-11
CN105051687B CN105051687B (zh) 2018-01-09

Family

ID=51987900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380000827.6A Active CN105051687B (zh) 2013-05-31 2013-05-31 应用部署方法和设备

Country Status (4)

Country Link
US (1) US20160080479A1 (zh)
EP (1) EP2988211A4 (zh)
CN (1) CN105051687B (zh)
WO (1) WO2014190544A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108270726A (zh) * 2016-12-30 2018-07-10 杭州华为数字技术有限公司 应用实例部署方法及装置
WO2018201778A1 (zh) * 2017-05-04 2018-11-08 中兴通讯股份有限公司 部署云应用系统的方法及装置
CN109144522A (zh) * 2017-06-19 2019-01-04 中兴通讯股份有限公司 应用部署方法、装置、设备和计算机可读存储介质
CN113515288A (zh) * 2021-04-26 2021-10-19 中国工商银行股份有限公司 基于发布单元的自动化部署方法及装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9910652B2 (en) * 2015-11-30 2018-03-06 International Business Machines Corporation Deploying applications
CN106961453A (zh) * 2016-01-08 2017-07-18 中兴通讯股份有限公司 基于tosca的服务调用方法及装置
US11223536B2 (en) 2016-04-04 2022-01-11 At&T Intellectual Property I, L.P. Model driven process for automated deployment of domain 2.0 virtualized services and applications on cloud infrastructure
US10579427B2 (en) * 2017-02-01 2020-03-03 Datera, Inc. Method and system for translating resource requirement of application into tangible infrastructural resources
CN108446123A (zh) * 2017-02-14 2018-08-24 北京金山云网络技术有限公司 一种应用程序部署方法及装置
US11381476B2 (en) * 2018-12-11 2022-07-05 Sap Se Standardized format for containerized applications
US11212366B2 (en) 2018-12-11 2021-12-28 Sap Se Kubernetes as a distributed operating system for multitenancy/multiuser
CN109618002B (zh) * 2019-01-11 2022-07-05 武汉斗鱼鱼乐网络科技有限公司 一种微服务网关优化方法、装置及存储介质
JP2023007730A (ja) * 2021-07-02 2023-01-19 キヤノン株式会社 情報処理システム、情報処理方法、プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060080413A1 (en) * 2004-06-17 2006-04-13 International Business Machines Corporation Method and system for establishing a deployment plan for an application
US20070011328A1 (en) * 2004-05-20 2007-01-11 Bea Systems, Inc. System and method for application deployment service
CN101882076A (zh) * 2010-04-06 2010-11-10 武汉理工大学 一种基于控件的制造网格资源封装方法
CN102110009A (zh) * 2009-12-28 2011-06-29 中国移动通信集团公司 一种在虚拟化平台中部署应用的方法及虚拟平台管理器
WO2011162744A1 (en) * 2010-06-22 2011-12-29 Hewlett-Packard Development Company, L.P. Methods and systems for planning application deployment
CN102377598A (zh) * 2010-08-26 2012-03-14 中国移动通信集团公司 一种互联网应用托管系统、设备和方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8615731B2 (en) * 2004-08-25 2013-12-24 Mohit Doshi System and method for automating the development of web services that incorporate business rules
US9015710B2 (en) * 2011-04-12 2015-04-21 Pivotal Software, Inc. Deployment system for multi-node applications
US9268589B2 (en) * 2011-12-09 2016-02-23 Yahoo! Inc. Method and system for deploying multiple distributed application stacks on a target machine
US9063746B2 (en) * 2012-06-22 2015-06-23 Sap Se Deployment of software applications on a cloud computing platform
US8667486B2 (en) * 2012-06-26 2014-03-04 Google Inc. Automatic provisioning of a software platform to a device ecosystem

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011328A1 (en) * 2004-05-20 2007-01-11 Bea Systems, Inc. System and method for application deployment service
US20060080413A1 (en) * 2004-06-17 2006-04-13 International Business Machines Corporation Method and system for establishing a deployment plan for an application
CN102110009A (zh) * 2009-12-28 2011-06-29 中国移动通信集团公司 一种在虚拟化平台中部署应用的方法及虚拟平台管理器
CN101882076A (zh) * 2010-04-06 2010-11-10 武汉理工大学 一种基于控件的制造网格资源封装方法
WO2011162744A1 (en) * 2010-06-22 2011-12-29 Hewlett-Packard Development Company, L.P. Methods and systems for planning application deployment
CN102377598A (zh) * 2010-08-26 2012-03-14 中国移动通信集团公司 一种互联网应用托管系统、设备和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张慧翔: "《基于中间件技术的可重构应用的研究与实现》", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108270726A (zh) * 2016-12-30 2018-07-10 杭州华为数字技术有限公司 应用实例部署方法及装置
CN108270726B (zh) * 2016-12-30 2021-05-11 华为技术有限公司 应用实例部署方法及装置
WO2018201778A1 (zh) * 2017-05-04 2018-11-08 中兴通讯股份有限公司 部署云应用系统的方法及装置
CN108809683A (zh) * 2017-05-04 2018-11-13 中兴通讯股份有限公司 部署云应用系统的方法及装置
CN109144522A (zh) * 2017-06-19 2019-01-04 中兴通讯股份有限公司 应用部署方法、装置、设备和计算机可读存储介质
CN109144522B (zh) * 2017-06-19 2023-08-01 中兴通讯股份有限公司 应用部署方法、装置、设备和计算机可读存储介质
CN113515288A (zh) * 2021-04-26 2021-10-19 中国工商银行股份有限公司 基于发布单元的自动化部署方法及装置
CN113515288B (zh) * 2021-04-26 2024-02-23 中国工商银行股份有限公司 基于发布单元的自动化部署方法及装置

Also Published As

Publication number Publication date
CN105051687B (zh) 2018-01-09
WO2014190544A1 (zh) 2014-12-04
EP2988211A4 (en) 2016-06-01
EP2988211A1 (en) 2016-02-24
US20160080479A1 (en) 2016-03-17

Similar Documents

Publication Publication Date Title
CN105051687A (zh) 应用部署方法和设备
Sellami et al. PaaS-independent provisioning and management of applications in the cloud
CN107431651B (zh) 一种网络服务的生命周期管理方法及设备
US8775588B2 (en) Method and apparatus for transforming web service policies from logical model to physical model
Loutas et al. Towards a reference architecture for semantically interoperable clouds
US8874704B2 (en) Semi-automatic discovery and generation of useful service blueprints
US10671360B1 (en) Resource-aware compiler for multi-cloud function-as-a-service environment
Hirmer et al. Automating the Provisioning and Configuration of Devices in the Internet of Things.
Wu Service Computing: Concept, Method and Technology
Tigli et al. Lightweight service oriented architecture for pervasive computing
EP2779582B1 (en) Automatic mobile application discovery and integration in a mobile telecommunication device
US11303583B2 (en) Resource trees by management controller
Silva et al. Cloud DSL: A Language for Supporting Cloud Portability by Describing Cloud Entities.
Carnevale et al. Osmotic computing as a distributed multi-agent system: The body area network scenario
Puttonen et al. Cloud computing as a facilitator for web service composition in factory automation
CN104054308A (zh) 应用层资源选择的方法、装置和系统
Steinheimer et al. Autonomous decentralised M2M application service provision
Mindruta et al. A semantic registry for cloud services
Cubo et al. Reconfiguration of service failures in damasco using dynamic software product lines
Steinheimer et al. Decentralised system architecture for autonomous and cooperative M2M application service provision
Steinheimer et al. M2M application service provision: an autonomous and decentralised approach
CN111400300B (zh) 一种边缘设备管理方法、装置及管理设备
Chang et al. Adaptive edge process migration for iot in heterogeneous cloud-fog-edge computing environment
Hoare et al. A semantic-agent framework for PaaS interoperability
D'Ambrogio et al. A PaaS-based framework for automated performance analysis of service-oriented systems

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211115

Address after: 510670 Room 518, No. 91 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province

Patentee after: Guangzhou Fangwei Information Technology Co.,Ltd.

Address before: 518129 Huawei headquarters office building, Bantian, Longgang District, Shenzhen, Guangdong

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

Effective date of registration: 20211115

Address after: 314500 01, No. 4, South Zaoqiang street, No. 1, Nanmen Gongnong Road, Chongfu Town, Tongxiang City, Jiaxing City, Zhejiang Province

Patentee after: Jiaxing Qiyuan Network Information Technology Co.,Ltd.

Address before: 510670 Room 518, No. 91 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province

Patentee before: Guangzhou Fangwei Information Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220907

Address after: 201800 room 1026, 10th floor, No.3 Lane 733, Hewang Road, Jiading District, Shanghai

Patentee after: Shanghai Pengxi Semiconductor Co.,Ltd.

Address before: 314500 01, No. 4, South Zaoqiang street, No. 1, Nanmen Gongnong Road, Chongfu Town, Tongxiang City, Jiaxing City, Zhejiang Province

Patentee before: Jiaxing Qiyuan Network Information Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240102

Address after: 201899 5th floor, building 2, 333 Huangqing Road, Jiading District, Shanghai

Patentee after: SHANGHAI PENGBANG INDUSTRIAL Co.,Ltd.

Address before: 201800 room 1026, 10th floor, No.3 Lane 733, Hewang Road, Jiading District, Shanghai

Patentee before: Shanghai Pengxi Semiconductor Co.,Ltd.