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

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

Info

Publication number
WO2015021604A1
WO2015021604A1 PCT/CN2013/081410 CN2013081410W WO2015021604A1 WO 2015021604 A1 WO2015021604 A1 WO 2015021604A1 CN 2013081410 W CN2013081410 W CN 2013081410W WO 2015021604 A1 WO2015021604 A1 WO 2015021604A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
deployed
node
template
platform
Prior art date
Application number
PCT/CN2013/081410
Other languages
English (en)
French (fr)
Inventor
朱洁
张楚雄
张毅
Original Assignee
华为技术有限公司
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
Priority to EP13891536.8A priority Critical patent/EP2945055A4/en
Priority to KR1020157023115A priority patent/KR101782457B1/ko
Priority to CN201380001370.0A priority patent/CN104583945B/zh
Priority to CN201810011915.0A priority patent/CN108052340B/zh
Priority to CN201810012326.4A priority patent/CN108319463B/zh
Priority to JP2016520235A priority patent/JP6164440B2/ja
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2013/081410 priority patent/WO2015021604A1/zh
Priority to AU2013397867A priority patent/AU2013397867B2/en
Publication of WO2015021604A1 publication Critical patent/WO2015021604A1/zh
Priority to US14/820,977 priority patent/US9696984B2/en
Priority to US15/618,851 priority patent/US10191730B2/en
Priority to US16/220,962 priority patent/US10649761B2/en

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

Definitions

  • the present invention relates to the field of cloud computing, and in particular, to an application upgrade method and apparatus. Background technique
  • the core idea of cloud computing is to manage and schedule a large number of computing resources connected by network.
  • the computing resource pool provides resources and services to users according to users' needs.
  • the network that provides such computing resources is called cloud.
  • the cloud platform is a platform that provides cloud-based services to application developers.
  • PaaS Platinum as a Service, Service Platform
  • the generalized cloud computing refers to the need for developers to obtain on demand through the network in an easy-to-expand manner.
  • Service The PaaS provides a customized middleware platform as a service to users. The essence is to serve the Internet resources as a programmable interface, providing third-party developers with commercially valuable resources and service platforms.
  • the middleware platform also referred to as a platform node, is a general service with standard program interfaces and protocols, and is usually located between hardware and applications or between an operating system and an application.
  • PaaS C SP Cloud Service Prov logo, cloud service provider
  • C SP can design, develop and optimize platform nodes, while application developers only need to be on the platform. Above the node is focused on the development of application nodes, which brings great convenience to development.
  • PaaS C SP currently only provides a fixed version of the platform node to application developers, maintaining the version of the platform node for all applications. If the application developer needs to upgrade an application node, the upgraded application node requires a version of the platform node. If the version of the platform node does not meet the requirements of the upgraded application node, the application node update fails and the application cannot run normally.
  • Embodiments of the present invention provide a method and apparatus for applying an upgrade to ensure that an upgraded application can operate normally.
  • the first aspect of the present invention provides an application upgrade method, including: receiving an application deployment request, where the application deployment request includes an application deployment to be deployed.
  • the application deployment package to be deployed describes the application node template to be deployed, the identifier of the deployed application, the identifier of the deployed application node template, the identifier of the first platform node template, and the application node template to be deployed. a platform section, a version requirement of the template, and an upgrade identifier of the deployed application node template upgrade indicated by the identifier of the deployed application node template to be deployed by the application node template to be deployed;
  • the version of the platform node template is required to obtain a first platform node upgrade package that satisfies the version requirement of the application node template to be deployed on the first platform node template;
  • the application node indicated by the identifier of the application node to be upgraded is upgraded by using the application deployment package to be deployed.
  • the application deployment package to be deployed further includes a relationship template that describes the application node template to be deployed, where the upgrade identifier is carried in the relationship template;
  • the application deployment package to be deployed further includes a node type corresponding to the application node template to be deployed, and the upgrade identifier is carried in the node type execution.
  • the determining the identifier of the application node to be upgraded is specifically: determining that the identifier of all the application nodes corresponding to the identifier of the deployed application node template is an identifier of the application node to be upgraded; or
  • an identifier of the at least one deployed application node corresponding to the identifier of the deployed application node template, the identifier of the application node that is determined to be upgraded is specifically:
  • the method further includes: obtaining, according to the deployed application identifier, a description file of the stored deployed application deployment package;
  • the method further includes: before the upgrading the first platform node according to the first platform node upgrade package, the method further includes:
  • a second aspect of the embodiments of the present invention provides an application upgrade method, including:
  • An application deployment package to be deployed is generated, and the application deployment package to be deployed describes the to-be-deployed application deployment package.
  • the application node template of the deployment the identifier of the deployed application, the identifier of the first platform node template, the identifier of the deployed application node template, the version requirement of the application node template to be deployed, the version of the first platform node template, and the The deployed application node template for the deployed application section indicated by the identifier of the deployed application node template, and the upgrade identifier of the template upgrade;
  • the application deployment request is sent to an application deployment server.
  • the application deployment package to be deployed further includes a relationship template that describes the application node template to be deployed, where the upgrade identifier is carried in the relationship template;
  • the application deployment package to be deployed further includes a node type corresponding to the application node template to be deployed, and the upgrade identifier is carried in the node type execution.
  • the application deployment package to be deployed further includes: at least one deployed corresponding to the identifier of the deployed application node template The ID of the application node.
  • the method further includes: deploying the package according to the deployed application And the first platform node template of the deployed application indicated by the deployed application identifier, where the first platform node template uses the deployed application node template as a source node template.
  • a third aspect of the embodiments of the present invention provides an application deployment server, including: a receiving module, configured to receive an application deployment request, where the application deployment request includes an application deployment package to be deployed; and the application deployment package description to be deployed
  • the application node template to be deployed the identifier of the deployed application, the identifier of the deployed application node template, the identifier of the first platform node template, the version requirement of the application node template to be deployed to the first platform node template, and the The application node template to be deployed is used to upgrade the deployed application node template upgrade indicated by the identifier of the deployed application node template. Identifying, and sending the application deployment package of the application to be deployed to the determining module and the upgrading module;
  • a determining module configured to receive an application deployment package of the application to be deployed sent by the receiving module, and determine, according to the upgrade identifier, that the application deployment package to be deployed is a deployed application indicated by the identifier of the deployed application And an identifier of the first platform node corresponding to the identifier of the first platform node template, and a first platform for obtaining the identifier indication of the first platform node, according to the deployed application identifier a version of the node; and determining, according to the version of the first platform node, that the version of the first platform node is lower than a version requirement of the application node template to be deployed to the first platform node template;
  • the first platform node upgrade package that satisfies the version requirement of the application node template to be deployed on the first platform node template, and sends the first a platform node upgrade package to the upgrade module;
  • the upgrade module is configured to receive the first platform node upgrade package sent by the determining module, and use the first platform node upgrade package to upgrade the first platform node indicated by the identifier of the first platform node ;
  • the determining module is further configured to determine an identifier of the application node to be upgraded according to the identifier of the deployed application node template, and send the identifier of the application node to be upgraded to the upgrade module;
  • the upgrade module is further configured to receive an application deployment package of the to-be-deployed application sent by the receiving module, and receive an identifier of the application node to be upgrade sent by the determining module, and use the to-be-used
  • the deployed application deployment package upgrades the application node indicated by the identifier of the application node to be upgraded.
  • the application deployment package to be deployed further includes a relationship template that describes the application node template to be deployed, where the upgrade identifier is carried in the relationship template;
  • the application deployment package to be deployed further includes a node type corresponding to the application node template to be deployed, and the upgrade identifier is carried in the node type execution.
  • the determining module is specifically configured to: determine that the identifiers of all the application nodes corresponding to the identifiers of the deployed application node templates are to be The identity of the upgraded application node; or
  • an identifier of the at least one deployed application node corresponding to the identifier of the deployed application node template, the identifier of the application node that is determined to be upgraded is specifically:
  • the determining module is further configured to:
  • the upgrade module is also used to:
  • a fourth aspect of the embodiments of the present invention provides a user equipment, including: a generating module, configured to generate an application deployment package to be deployed, where the application deployment package to be deployed describes an application node template to be deployed, and deployed Application logo, first The identifier of the platform node template, the identifier of the deployed application node template, the version requirement of the application node template to be deployed to the first platform node template, and the application node template to be deployed are used for the deployed application node.
  • the upgrade ID of the deployed application node template upgrade indicated by the identifier of the template;
  • the generating module is further configured to generate an application deployment request, and send the application deployment request to the sending module, where the application deployment request includes the application deployment package to be deployed;
  • the sending module is configured to receive the application deployment request sent by the generating module, and send the application deployment request to an application deployment server.
  • the application deployment package to be deployed further includes a relationship template that describes the application node template to be deployed, where the upgrade identifier is carried in the relationship template;
  • the application deployment package to be deployed further includes a node type corresponding to the application node template to be deployed, and the upgrade identifier is carried in the node type execution.
  • the application deployment package to be deployed further includes: at least one deployed corresponding to the identifier of the deployed application node template The ID of the application node.
  • the user equipment further includes: a determining module, configured to deploy a description file of the application according to the deployed application, The first platform node template of the deployed application indicated by the deployed application identifier is determined, and the first platform node template uses the deployed application node template as a source node template.
  • a fifth aspect of the embodiments of the present invention provides an application deployment server, including: a receiver, configured to receive an application deployment request, where the application deployment request includes an application deployment package to be deployed; and the application deployment package description to be deployed
  • the application node template to be deployed, the identifier of the deployed application, the identifier of the deployed application node template, the identifier of the first platform node template, the version requirement of the application node template to be deployed to the first platform node template, and the The application node template to be deployed is used to upgrade the deployed application node template upgrade indicated by the identifier of the deployed application node template. And sending the application deployment package to be deployed to the processor;
  • the processor is configured to:
  • the receiver And receiving, by the receiver, the application deployment package to be deployed, and determining, according to the upgrade identifier, that the application deployment package to be deployed is an upgrade package of the deployed application indicated by the identifier of the deployed application;
  • the version of the platform node template is required to obtain a first platform node upgrade package that satisfies the version requirement of the application node template to be deployed on the first platform node template;
  • the application node indicated by the identifier of the application node to be upgraded is upgraded by using the application deployment package to be deployed.
  • the application deployment package to be deployed further includes a relationship template that describes the application node template to be deployed, where the upgrade identifier is carried in the relationship template;
  • the application deployment package to be deployed further includes a node type corresponding to the application node template to be deployed, and the upgrade identifier is carried in the node type execution.
  • the processor is specifically configured to: determine that the identifiers of all the application nodes corresponding to the identifiers of the deployed application node templates are to be upgraded The identity of the application node; or
  • the application deployment package to be deployed further includes: an identifier of the at least one deployed application node corresponding to the identifier of the deployed application node template, the identifier of the application node that is determined to be upgraded is specifically: Determining, by the application deployment package, the at least one deployed application section corresponding to the identifier of the deployed application node template, where the identifier of the application node is an identifier of the application node to be upgraded.
  • the processor is further configured to:
  • a sixth aspect of the embodiments of the present invention provides a user equipment, including: a processor, configured to generate an application deployment package to be deployed, where the application deployment package to be deployed describes an application node template to be deployed, and deployed
  • the identifier of the application, the identifier of the first platform node template, the identifier of the deployed application node template, the version requirement of the application node template to be deployed to the first platform node template, and the application node template to be deployed are used for the An upgrade identifier of the deployed application node template upgrade indicated by the identifier of the deployed application node template;
  • the transmitter is configured to receive the application deployment request sent by a processor, and send the application deployment request to an application deployment server.
  • the application deployment package to be deployed further includes a relationship template that describes the application node template to be deployed, where the upgrade identifier is carried in the relationship template;
  • the application deployment package to be deployed further includes a node type corresponding to the application node template to be deployed, and the upgrade identifier is carried in the node type execution.
  • the application deployment package to be deployed further includes: at least one deployed application corresponding to the identifier of the deployed application node template The identity of the node.
  • the processor is further configured to: determine, according to the description file of the deployed application deployment package, The first platform node template of the deployed application indicated by the application identifier is deployed, and the first platform node template uses the deployed application node template as a source node template.
  • the application description file in the application deployment package to be deployed describes the version requirement of the application node template to be deployed on the first platform node template.
  • the application deployment server determines that the version of the first platform node is lower than the version of the application node template to be deployed to the first platform node template, the application deployment server searches the first platform according to the application node template to be deployed.
  • the version of the node template requires the first platform node upgrade package.
  • the application deployment server upgrades the first platform node according to the obtained first platform node upgrade package.
  • the version of the first platform node after the upgrade meets the version requirement of the application node template to be deployed on the first platform node template, so as to ensure that the upgraded application can run normally.
  • FIG. 1A is a schematic structural diagram of an application template described in an application deployment description file on which an application deployment method is provided according to an embodiment of the present invention
  • FIG. 1B is a schematic structural diagram of a plan corresponding to FIG. 1A according to an embodiment of the present invention.
  • FIG. 2 is a schematic flowchart of an application upgrade method according to an embodiment of the present invention
  • FIG. 3 is a schematic flowchart of an application upgrade method according to an embodiment of the present invention
  • FIG. 4 is a schematic flowchart of an application upgrade method according to an embodiment of the present invention
  • the schematic diagram of the upgrade application node app obtained by the application deployment server according to the description of the application deployment package A and the application deployment package B in the embodiment of the present invention
  • FIG. 6 is an application deployment server upgrade according to an embodiment of the present invention. Schematic diagram of the application node;
  • FIG. 7 is a schematic diagram of an application deployment package to be deployed according to an embodiment of the present invention
  • FIG. 8 is a schematic structural diagram of an application deployment server according to an embodiment of the present invention
  • FIG. 9 is a schematic structural diagram of a user equipment according to an embodiment of the present invention.
  • FIG. 10 is a schematic structural diagram of another user equipment according to an embodiment of the present disclosure; Schematic diagram of the server;
  • FIG. 12 is a schematic structural diagram of still another user equipment according to an embodiment of the present invention. detailed description
  • the embodiment of the invention provides an application upgrade method, which can be applied to the TOSCA standard and can be applied to other aspects, and is not limited to the TOSCA standard.
  • the information required for deploying an application is described in an application deployment package named Cloud Service Archive (CSAR) in the application deployment server.
  • the application deployment package contains at least one application deployment description file with the suffix ste.
  • the application deployment description file of the ste can describe the deployment information of the application in the XML language.
  • the root element of the application deployment description file of the ste is the application template Service. Template. That is to say, in the embodiment of the present invention, the application template ServiceTemplate can be used to completely describe the information of the application to be deployed.
  • FIG. 1A is a schematic structural diagram of an application template described in an application deployment description file based on an application upgrade method according to an embodiment of the present invention.
  • the embodiment of the present invention uses a TopologyTemplate to describe an application topology.
  • the application topology includes node templates for four nodes: al, a2, a3, and a4, that is, each node template represents a node deployed by the application (that is, if the application is deployed multiple times, each node The template corresponds to a plurality of such nodes), and the identifier of each node template is given on the application topology.
  • the type of each NodeTemplate is defined by the NodeType (the type attribute of the NodeTemplate describes the NodeType corresponding to the NodeTemplate ).
  • the NodeType defines the properties of the node (defined by Properties), the interface of the node (defined by the interface collection Interfaces), and the NodeTemplate is an instance of NodeType.
  • Each NodeType corresponds to a Node Type Implementation (NTI), which describes the deployment artifacts of the node corresponding to the NodeType and the method artifacts of all methods contained in the Interface in the NodeType.
  • NTI Node Type Implementation
  • Each side of the connection node in the TopologyTemplate is a RelationshipTemplate, and the relationship template corresponds to the application node template.
  • Each application deployment package also includes a plan, as shown in Figure IB, Figure 1 B is A schematic structural diagram of a plan corresponding to FIG. 1A of the embodiment of the present invention.
  • the plan is an executable workflow, which is actually a workflow composed of a plurality of referenced methods. Executing the workflow is actually the method artifact corresponding to each method that constitutes the workflow.
  • the application deployment server runs the method products corresponding to the methods corresponding to the tasks one by one according to the definition of the plan. See, for example, Figure 1B, which includes tasks cl, c2, and c3.
  • the execution order is to execute the task cl first, then the task c2, and then the task c3; and the cl, c2 and c3 are the methods corresponding to the interface in the NodeType.
  • each ServiceTemplate includes a boundary (defined by BoundaryDefinitions), and some components defined in the ServiceTemplate are presented to the user within the BoundaryDefinitions; the components are the above-mentioned NodeTemplate, deployment artifacts, method artifacts, and the like.
  • an application deployment package contains information required to deploy the application, such as: application deployment description files, plans, deployed products of nodes, and method products of each method.
  • the application deployment description file describes the complete topology of the application, the information about the deployed product of the node in the topology, the method of the node template in the topology, and the method product information step.
  • the topology template describes each node template, and the logical relationship between the node templates.
  • the node template on the topology may include: an application node template and a platform node template.
  • the application node template refers to a node of an application to be deployed that is maintained and used by the user equipment
  • the platform node template refers to a node of the application to be deployed that is run and maintained by the server.
  • FIG. 2 is a schematic flowchart of an application upgrade method according to an embodiment of the present invention.
  • the execution body of the method in this embodiment is an application deployment server. As shown in FIG. 2, the method includes:
  • Step 201 Receive an application deployment request, where the application deployment request includes an application deployment package to be deployed.
  • the application deployment package to be deployed describes the application node template to be deployed, the deployed application identifier, the identifier of the deployed application node template, the identifier of the first platform node template, and the application node template to be deployed.
  • Platform node module The version requirement of the board, and the application node template to be deployed is used to upgrade the upgraded version of the deployed application node template indicated by the identifier of the deployed application node template.
  • the application node template to be deployed the deployed application identifier, the identifier of the first platform node template, the identifier of the deployed application node template, the version requirement of the application node template to be deployed to the first platform node template, and
  • the upgrade identifier of the deployed application node template upgrade indicated by the identifier of the deployed application node template to be deployed is described in an application description file.
  • the platform node template indicated by the identifier of the first platform node template and the application node template indicated by the deployed application node template identifier are described in a description file in the application deployment package indicated by the deployed application identifier.
  • the upgrade identifier of the deployed application node template that is to be deployed by the application node template to be deployed may be represented by Patch For.
  • the upgrade identifier refers to an upgrade identifier of the deployed application node template that is to be deployed by the application node template to be deployed to the deployed application node template.
  • the application deployment package to be deployed further includes a relationship template that describes the application node template to be deployed, where the upgrade identifier is carried in the relationship template, or the application deployment package to be deployed further includes an application to be deployed.
  • the node type corresponding to the node template is executed, and the upgrade identifier is carried in the node type execution.
  • a deployed application includes multiple nodes, and the node is equivalent to a module.
  • the charging application includes a database module and a management module.
  • the user device When the application needs to be deployed, the user device generates an application deployment package to be deployed and sends it to the application deployment server through the application deployment request.
  • the application deployment server After receiving the application deployment package, the application deployment server deploys the application deployment description file, deployment artifacts, method products, and planned application deployment according to the application deployment package.
  • application deployments include initial deployment, updates, or upgrades. It is assumed in the embodiment of the present invention that the application deployment package to be deployed is an upgrade package for upgrading the deployed application.
  • the application deployment server will apply each time it receives an application deployment package. All application description information in the deployment package is logged to the database.
  • Step 202 Determine, according to the upgrade identifier, that the application deployment package to be deployed is an upgrade package of the deployed application indicated by the identifier of the deployed application.
  • the application deployment server performs the upgrade according to the upgrade identifier that is carried in the relationship template that describes the application node template to be deployed, or according to the node type that is carried in the application node template to be deployed.
  • the identifier determines that the application deployment package to be deployed is an upgrade package for the deployed application.
  • Step 203 Obtain an identifier of the first platform node corresponding to the identifier of the first platform node template, and obtain a version of the first platform node indicated by the identifier of the first platform node, according to the deployed application identifier.
  • the application deployment server stores the version or capability of each node of each deployed application. And applying, by the application deployment server, the version of the first platform node corresponding to the identifier of the first platform node template from the version information of each platform node of the stored deployed application according to the deployed application identifier. And determining, according to the version requirement of the first platform node template and the obtained version of the first platform node, that the version of the first platform node is lower than the application to be deployed. The version requirement of the node template for the first platform node template.
  • the version of the first platform node is lower than the version requirement of the application node template to be deployed to the first platform node template, that is, the version number of the version of the first platform node is smaller than the application node template pair to be deployed.
  • the version number of the version requirement indication of a platform node template is lower than the version requirement of the application node template to be deployed to the first platform node template, that is, the version number of the version of the first platform node is smaller than the application node template pair to be deployed.
  • Step 204 Determine, according to the first platform node version, that the version of the first platform node is lower than the version requirement of the application node template to be deployed to the first platform node template.
  • Step 205 Acquire, according to the version requirement of the application node template to be deployed, the first platform node upgrade package that meets the version requirement of the application node template to be deployed on the first platform node template.
  • the application deployment server obtains the application node template that meets the to-be-deployed according to the version requirement of the first platform node template of the application node template to be deployed.
  • the first platform node upgrade package for the version of the first platform node template.
  • the application deployment package to be deployed may not include the identifier of the deployed application node; when the application deployment package does not include the identifier of the deployed application node, the application deployment server may be configured according to the identifier of the deployed application. Acquiring an identifier of all the first platform nodes corresponding to the identifier of the first platform node template, and upgrading, by using the first platform node upgrade package, the first platform node indicated by the identifier of each of the first platform nodes.
  • Step 207 Determine an identifier of an application node to be upgraded.
  • the application deployment server may determine that the identifiers of all the application nodes corresponding to the identifiers of the deployed application node templates are the identifiers of the application nodes to be upgraded.
  • the application deployment package to be deployed further includes: an identifier of the at least one deployed application node corresponding to the identifier of the deployed application node template, determining the identifier of the application node to be upgraded And determining, by the application deployment package, an identifier of the at least one deployed application node corresponding to the identifier of the deployed application node template as an identifier of an application node to be upgraded.
  • Step 208 Upgrade the application node indicated by the identifier of the application node to be upgraded by using the application deployment package to be deployed.
  • the application deployment server may use the application deployment package to be deployed, and upgrade the The application node indicated by the identity of the deployed application node.
  • the application node that is used to upgrade the identifier of the application node to be upgraded is: obtaining an identifier of all the deployed application nodes corresponding to the identifier of the deployed application node template;
  • Application deployment package upgrades each An application node indicated by the identity of the deployed application node.
  • the plan is an upgrade plan, and the corresponding application node can be upgraded according to the upgrade plan.
  • the application description file in the application deployment package to be deployed describes the version requirement of the application node template to be deployed on the first platform node template.
  • the application deployment server determines that the version of the first platform node is lower than the version of the application node template to be deployed to the first platform node template
  • the application deployment server searches the first platform according to the application node template to be deployed.
  • the version of the node template requires the first platform node upgrade package.
  • the application deployment server upgrades the first platform node according to the obtained first platform node upgrade package.
  • the version of the first platform node after the upgrade meets the version requirement of the application node template to be deployed on the first platform node template, so as to ensure that the upgraded application can run normally.
  • the description file of the stored deployed application deployment package is obtained according to the deployed application identifier; and the description file of the deployed application deployment package is determined according to the obtained description file of the deployed application deployment package.
  • the second platform node template that uses the first platform node template as a source node template is obtained; the version requirement of the upgraded first platform node to the second platform node and the second platform node version are obtained; determining the second platform node
  • the method is further lower than the version of the first platform node that is upgraded by the first platform node to the second platform node, and the method further includes: according to the first platform node upgrade package And obtaining, by the upgraded first platform node, the version of the second platform node, the second platform node upgrade package that meets the upgraded first platform node to the version of the second platform node; according to the second platform node Upgrade the package and upgrade the second platform node.
  • the obtaining the version of the second platform node is specifically: obtaining the identifier of the second platform node according to the identifier of the second platform node template and the identifier of the first platform node, and the identifier of the second platform node and the second
  • the identifier of the platform node template corresponds to the same, and the deployment number is the same as the number corresponding to the identifier of the first platform node.
  • the application deployment server describes, in the description file of the deployed application deployment package, a second platform that uses the first platform node template as a source node template. After the node template, the version requirement of the upgraded first platform node to the second platform node and the version of the second platform node are obtained.
  • the embodiment of the invention provides an application upgrade method, which can be performed by a user equipment. As shown in Figure 3, the method includes:
  • Step 30 Generate an application deployment package to be deployed, where the application deployment package to be deployed describes the application node template to be deployed, the identifier of the first platform node template, the identifier of the deployed application node template, and the application to be deployed.
  • the version of the first platform node template is required by the node template, and the application node template to be deployed is used to upgrade the deployed application node template indicated by the identifier of the deployed application node template.
  • the application deployment package to be deployed further includes a relationship template that describes the application to be deployed, a template, and the upgrade identifier is carried in a relationship template that describes the application node template to be deployed; or
  • the deployed application deployment package is further executed by the node type corresponding to the application node template to be deployed; the upgrade identifier is carried in the execution of the node type, and the upgrade identifier is the application node template to be deployed for the The upgrade ID of the deployed application node template upgrade indicated by the identifier of the deployed application node template.
  • Step 302 Generate an application deployment request, where the application deployment request includes the application deployment package to be deployed.
  • Step 303 Send the application deployment request to an application deployment server.
  • the application description file in the application deployment package to be deployed describes the version requirement of the application node template to be deployed on the first platform node template. Therefore, the application deployment server may determine the first platform node template according to the application node template to be deployed, when the version of the first platform node is lower than the version of the application node template to be deployed. The version requires the first platform node upgrade package. Afterwards, the application deployment server upgrades the first platform node according to the obtained first platform node upgrade package. Making the version of the first platform node after the upgrade meet the waiting The version of the application node template deployed on the first platform node template ensures that the upgraded application runs normally. Specifically, after receiving the application deployment package to be deployed, the application deployment server may perform any action performed by the application deployment server described in FIG. 2 . The actual examples of the present invention will not be described in detail herein.
  • the application deployment package to be deployed may further include: an identifier of the at least one deployed application node corresponding to the identifier of the deployed application node template, so that the application deployment server uses the to-be-deployed The application deployment package upgrades the application node indicated by the identity of the deployed application node.
  • the method further includes: determining, according to the profile of the deployed application deployment package, the first platform node template of the deployed application indicated by the deployed application identifier, where the first platform node template is The deployed application node template is used as the source node template.
  • the application description file in the application deployment package to be deployed describes the version requirement of the application node template to be deployed on the first platform node template.
  • the application deployment server determines that the version of the first platform node is lower than the version of the application node template to be deployed to the first platform node template, the application deployment server searches the first platform according to the application node template to be deployed.
  • the version of the node template requires the first platform node upgrade package.
  • the application deployment server upgrades the first platform node according to the obtained first platform node upgrade package.
  • the version of the first platform node after the upgrade meets the version requirement of the application node template to be deployed on the first platform node template, so as to ensure that the upgraded application can run normally.
  • An embodiment of the present invention provides an application upgrade method, and the application upgrade method is applied to the TOSCA standard. As shown in FIG. 4, the method includes:
  • Step 401 The application deployment server deploys the application deployment package.
  • the process of deploying an application deployment package is the same as the prior art.
  • the embodiment of the present invention assumes that the application deployment package submitted by the user equipment to the application deployment server is the application deployment package B, and the identifier of the application deployment package B (that is, the identifier of the application) is appB.
  • the node template app, the node template apache, and the description file in the application deployment package are described in the description file.
  • the node template app is an application node template deployed by the application deployment package B, and the user equipment is responsible for providing resources. That is, in the application deployment package B, the deployment artifacts and method artifacts for the node template app are included.
  • the node template apache and the node template j avaModule are platform node templates, and the C SP server is responsible for providing resources and ensuring that the provided resources meet all deployment requirements in the application deployment package. It is assumed that the application deployment server successfully deploys the application according to the application deployment package B, and writes the contents of the two relationship templates into the application information table in the database maintained by the application deployment server, as shown in Table 1. In the embodiment of the present invention, an application appB that has been successfully deployed and run is referred to as a deployed application.
  • Step 402 The user equipment generates an application deployment package to be deployed.
  • the application deployment package to be deployed is an upgrade package for the deployed application (appB).
  • the upgrade package (that is, the application deployment package to be deployed) for the deployed application is the application deployment package A
  • the application deployment package A can correspond to the application node template app (that is, the identifier of the deployed application node template).
  • Application node upgrade Specifically, after the application deployment server receives the application deployment package appB, the deployment server deploys the application according to appB. Nodes, such as application nodes and platform nodes, are generated for each node template in the appB package, so that each node template corresponds to a node that has been successfully deployed and running.
  • the description file of the application deployment package A describes the application node template appPatch to be deployed, and describes the upgrade identifier of the deployed application node template app in the relationship template describing the application node template appPatch to be deployed. Further, the The upgrade ID can also be described in the NTI corresponding to the application node template appPatch to be deployed.
  • the user equipment determines, according to the description file of the appB, the application node template app as the source node template in the relationship template describing the application node template app to be deployed, and uses the platform node template as the template Destination platform node template.
  • the application node template app is used as the source node template
  • the platform node template apache is used as the target node template. Therefore, the user equipment describes the version requirement of the deployed platform node template apache of the application node template appPatch to be deployed in the description file of the application deployment package A.
  • the content of the version requirement is determined by the user equipment according to the upgrade content of the application node.
  • the platform node template apache is required to support Servlet 3.0, so the platform node apache needs to be upgraded to Tomcat 7.0.
  • the requirements of this version indicate that after the application node corresponding to the application node template app is upgraded by appA, the platform node corresponding to the platform node template apache can support Servlet 3.0 (that is, the platform node needs to be upgraded to Tomcat 7.0) to ensure the upgraded application.
  • the application node corresponding to the node template app can run normally.
  • the user device obtains the description file of the appB by: obtaining the description file of the appB from the file stored by itself, or obtaining the description file of the appB by sending a request to the application deployment server.
  • the application deployment package A also provides a deployment artifact and a method artifact of the application node appPatch, and the method artifact is a patchApp.
  • the application node template appPatch to be deployed is referred to as the first platform node template in the version requirement of the deployed platform node template
  • the first platform node template is Another platform node template in the version requirement of another platform node template is referred to as a second platform node template.
  • the version requirement may be a version requirement
  • the version requirement may be a specific version number or a certain capability of a version.
  • FIG. 5 is a diagram showing an application of the upgrade application node app obtained by the application deployment server according to the description of the application deployment package A and the application deployment package B in the embodiment of the present invention. Intention.
  • the application node template appPacth described in the application deployment package A is an upgrade node of the application node template app described in the package B for the deployed application.
  • the identifier of the relationship between the two node templates is used to describe the relationship between the two node templates (for example, the upgrade identifier), and the upgrade identifier may be described by other fields.
  • Application Deployment Package A also describes the version requirement of the application node template appPacth for the platform node template apache described in the deployed application deployment package B, represented by Requirement For Apache (Apache as a platform node template).
  • PatchForApp refers to the appPatch node template in application deployment package A is an upgrade for the app application node template
  • RequirementForApache describes the version requirement of the application node template appPatch for the platform node template apache. Since application deployment package B is a deployment package for an already deployed application, and appA is an upgrade for the application node template app.
  • ⁇ Deployed product type is Patch
  • the application node template appPatch is defined in the topology template TopologyTemplate with the node template NodeTemplate element, and the version requirement requirementOfApp and the deployment product DaOfAppPatch are specified in the node template element.
  • the relationship template PatchForAp indicates that the appPatch application node template and the application application node template in the application deployment package B have an upgrade identifier, such as PatchFor.
  • the source element indicates the identifier of the source application node template (the identifier of the application node template to be deployed) by the SourceElement
  • the target element indicates the identifier of the target application node template (the identifier of the deployed application node template) appB : app.
  • the attribute "externalref" indicates that the application node template app is defined in the external application description file, and the external application description file is named appB .tosca by the prefix "appB" and "Import” elements.
  • RequirementForApache of the relational template RelationshipTemplate defines the version requirements of the appPatch application node template for Apache in the application deployment package B.
  • the source version requirement requiresOfAppPatch is defined by SourceElement
  • the target deployment capability appB is defined by TargetElement: cap capability Of A ache.
  • the attribute "externalref” indicates that the deployment capability capabilityOfApache is defined in the external application description file
  • the prefix "appB” and “Import” elements indicate that the external application description file is appB.tosca.
  • the upgrade plan upgrade is also defined in the topology, and its type is Http: ⁇ www. example.com/UpgradePlan.
  • the definition of the product patchAp and the definition of the version requirement requireOf AppPatch for the application node template appPatch are given in the NodeType.
  • the method product patchApp will be called in the application deployment server execution upgrade plan
  • the constraint Constraint field in the version requirement requireOfAppPatch and the attribute constraint type constraintType takes the value http://www.example.com/PropertyConstraints/supportServlet3 It indicates that the application deployment server needs to find out which software version contains the capability of the supportServlet3 in the database according to the above values.
  • the description file of the application deployment package A may further include the identifier of the deployed application node, such as app l.
  • the identifier of the deployed application node is an identifier of an application node that needs to be upgraded.
  • the identifier of the application node template to be upgraded, such as app can also be specified by an upgrade identifier such as apptchFor. If the application deployment package A's description file does not separately indicate the identity of the deployed application node, only the identity of the deployed application node template, such as app, is indicated in the upgrade ID.
  • the application deployment server upgrades all the application nodes corresponding to the identified app of the deployed application node template when the application is upgraded. For example, appB is first deployed in Nanjing and then deployed in Shanghai.
  • the application nodes of the deployed application node template are: Application node app l of Nanjing and app2 app2 of Shanghai.
  • a number will be generated. For example, when appB is deployed in Nanjing, the number 1 is generated, indicating that app l is generated by the first deployment of appB.
  • the number 2 is generated, indicating that app2 is the second deployment of appB. Generated, this number can be used to determine which nodes are generated by the same deployment.
  • the plan in the deployment package appA can be as follows:
  • invokePlan (appInstance identifier, stopplan identifier);
  • patchApp (appInstance identifier);
  • invokePlan (appInstance identifier, startPlan identifier);
  • the input parameters are first defined, where the input parameter "applnstance ID" indicates that the identity of the deployed application node is app 1.
  • the interface invokePlan is an API provided by the application deployment server to the user device. The user device can access the management plan defined in the application deployment package A by calling the API.
  • the API has two parameters, the first parameter is the identity of the deployed application node, and the second parameter is the plan ID that needs to be called. The steps of the plan are given in the element plan model PlanModel.
  • the upgrade plan is as follows:
  • appB : stopplan ⁇ is defined in appB .tosca;
  • appB startplan ⁇ is defined in appB .tosca; ⁇ /PlanModel>
  • the identifier of the deployed application node is not specified, and the application deployment server obtains the identifier app of the deployed application node template, and finds the corresponding application template identifier app corresponding to the deployed application template identifier app according to the application identifier appB.
  • the IDs of all deployed application nodes (such as app 1 and app2) are upgraded for all deployed application nodes corresponding to the identity app of the deployed application node template.
  • the user device directly executes the "appB: plan" to invoke the plan defined in appB .tosca to generate the upgrade.
  • the above program can make the application deployment server know that the identifier of the deployed application is "appB", and the application node corresponding to the identifier "app" of the deployed application node template needs to be upgraded.
  • Step 403 The user equipment generates an application deployment request, where the application deployment request includes the application deployment package A.
  • Step 404 The application deployment server receives an application deployment request.
  • Step 405 The application deployment server determines that the deployment package is an upgrade package for the deployed application (appB).
  • the description file of the application deployment package to be deployed may describe the application node template to be deployed, the identifier of the first platform node template, the identifier of the deployed application node template, and the application node template to be deployed.
  • the application deployment server determines, according to the application node template to be deployed, an upgrade identifier of the deployed application node template upgrade indicated by the identifier of the deployed application node template, where the deployment package is an upgrade for the deployed application. package.
  • the application deployment server checks the deployment descriptor file appA.tosca of the application deployment package A, and the discovery description file appA.tosca contains the upgrade identifier "PatchFor", and/or the source application node template (ie, the application node template to be deployed) appPatch
  • the deployed artifact type is "Patch”.
  • Application deployment server can identify The PatchFor relationship type, or the type of deployed artifact is "Patch", so that the application deployment package A can be determined to be an upgrade package. Further, the application deployment server can also check the upgrade plan upgrade to find its type as
  • Step 406 The application deployment server upgrades the deployed application node according to the application deployment package to be deployed.
  • the steps of the application deployment server to upgrade the deployed application node are as follows:
  • Step 4061 Obtain an identifier of the first platform node. Go to step 4062.
  • the application deployment server After receiving the application deployment package A to be deployed, the application deployment server searches for the deployment package information table stored in the application deployment server according to the URL of the description file included in the "Import" element in the description file of the application deployment package A.
  • the location of the description file is File: ste ste / appB .tosca .
  • the description file of the application deployment package B is then obtained by the location File ://ste/appB .tosca of the description file.
  • the deployment package information table is shown in Table 2.
  • the deployed application node template app As shown in FIG. 7, in the topology description of appB.tosca, the deployed application node template app, platform node template apache and j avaModule are defined, and the relationship between these node templates is defined.
  • the definition of the main information in the topology description is given below.
  • the deployment capabilityOfApache is described, and the definition of the deployment capability is included in the CapabilityDefinition element of the apache's NodeType capability.
  • the platform node template apache also gives a description of the deployment product DaOfApache.
  • the deployment capability capabilityOfJM is described, and the definition of the deployment capability is included in the CapabilityDefinition of the NodeType of j avaModul.
  • the start and stop management plans are also described in the topology description.
  • the deployment capability is a version requirement for a platform node template, such as a capability of a version, or a supported version.
  • capabilityOfApache is given in the NodeType of apache.
  • constraint Contraint is given in this definition, and its attribute value constraintType indicates that the capability "supports Servlet 2.0".
  • the application deployment server may first determine whether the application deployment package appA includes the identifier of the deployed application node "app l ", and the identifier of the deployed application node "app l " is used to indicate the application node that needs to be upgraded. If the deployed application deployment package includes the identifier of the deployed application node, the application deployment server may obtain the deployed application node indicated by the identifier of the deployed application node in the database; and deploy the package according to the application to be deployed. And upgrading an application node indicated by the identifier of the deployed application node. For example, suppose the plan in the application deployment request describes the identity of the deployed application node as "app l ", and the application deployment server looks up the identity of the deployed application node app l in its stored deployment application information table.
  • the application deployment server acquires all the identifiers corresponding to the identifiers of the deployed application node templates according to the identifier of the deployed application node template.
  • the identifier of the deployed application node is used to upgrade the application node indicated by the identifier of each deployed application node by using the application deployment package to be deployed. Further, before upgrading each application node, the application deployment server determines that the version is lower than the application node template to be deployed. And identifying, by using the first platform node upgrade package, the first platform node indicated by the identifier of the first platform node, by using an identifier of the first platform node that is required for the version of the first platform node template.
  • the identifier of one application node template can correspond to the identifiers of multiple application nodes.
  • the application deployment server determines to upgrade all application nodes corresponding to the identifiers of the deployed application node templates deployed in the application deployment request.
  • the application deployment server determines, according to the identifier of the deployed application node template, that the identifier of the application node to be upgraded is: determining that the identifiers of all the application nodes corresponding to the identifiers of the deployed application node templates are to be upgraded.
  • the ID of the application node Therefore, you need to get the identity of all application nodes.
  • the application deployment server may search for the identifiers of all the application nodes corresponding to the application node template app according to the app in the deployment application information table, and obtain the identifier of the application node as ⁇ app l , App2 ⁇ .
  • the application deployment server upgrades each application node app l and app2 separately.
  • the application deployment request may further include the deployed application identifier (as an optional method, the deployed application identifier may be the identifier of the deployed application deployment package or the URL of the application description file or the location of the application description file. ).
  • the application deployment server searches for the identifiers of all the application nodes corresponding to the application node template app in the deployment application information table according to the identifier of the application node template.
  • the application deployment server is based on the identifier of the deployed application deployment package or the application description file.
  • the location of the URL or the application description file, and the identifier of all the application nodes corresponding to the application node template app of the deployed application are found in the stored deployment application information table, and the identifier of the application node is ⁇ app l , app2 ⁇ . Upgrade each application node separately.
  • the deployment application information table is shown in Table 3.
  • the deployment application information table records the relationship between the identifier of the node, the identifier of the deployed application, and the identifier of the node template.
  • the deployment number indicates the application deployment.
  • the nodes with the same deployment number are generated in the same deployment.
  • the identifier of the node includes an identifier of the application node and an identifier of the platform node.
  • Step 4062 Determine whether the version of the first platform node meets the version requirement of the application node template to be deployed in the application deployment package to be deployed on the first platform node template. If no, go to step 4063, and if yes, go to step 4068.
  • the application deployment server obtains the identifier Apache1 of the first platform node with the same deployment number 1 from the database according to the identifier of the application node to be upgraded, appl and deployment number 1, according to the identifier of the first platform node template. Obtaining a version of the first platform node according to the identifier Apache1 of the first platform node. Specifically, the application deployment server searches the database according to the identifier of the first platform node Apache1, and obtains the deployment capability of the first platform node Apache1. This embodiment assumes that the current deployment product of the first platform node Apache 1 is Tomcat 6.0. As shown in Table 4, only Servlet 2.0 can be supported, so the version of the first platform node Apachel is Tomcat 6.0.
  • the identifier Apache1 of the first platform node having the same deployment number as appl is obtained from Table 3 according to the first platform node template identifier.
  • the apachel of the capabilityOfApache can only provide the deployment capability of "supporting Servlet 2.0", that is, the version supported by the platform node indicated by the identifier of the first platform node is Tomcat 6.0.
  • the application implementation information table is shown in Table 4.
  • the application deployment server obtains the version of the first platform node according to the identifier of the first platform node template, and determines that the version of the first platform node cannot meet the application node template to be deployed to the first platform node template. Version requirements. For example, the application deployment server obtains the first platform nodes Apache 1 and Apache2 according to the identifier of the first platform node template in Table 3, and determines that the version of the first platform node Apache 1 is only supportServlet2 or Tomcat 6.0, but cannot satisfy the application to be deployed. The version of the node template for the first platform node template requires Servlet 3.0 or Tomcat 6.0. Therefore, step 4063 is performed.
  • the application deployment server also needs to determine the version of the first platform node Apache2 with the same deployment number as app2.
  • the number of the department number is the same as the ID of the first platform node. That is, the deployment number corresponding to the identifier of the acquired first platform node is the same as the deployment number corresponding to the identifier of the application node.
  • Apache2 determines that the version of the first platform node Apache2 is Servlet3.0. Therefore, it is determined that the capability of the first platform node satisfies the version requirement of the application node template to be deployed on the first platform node template.
  • Step 4063 Obtain a first platform node upgrade package.
  • the first platform node upgrade package that satisfies the version requirement of the application node template to be deployed on the first platform node template is obtained according to the version requirement of the application node template to be deployed to the first platform node template.
  • the version of the first platform node is obtained according to the identifier of the first platform node (for example, the application deployment server may obtain the version of the platform node from the deployed product name of the platform node), and determine that the application node to be deployed is satisfied.
  • the template is applied to the version of the first platform node template, and then the upgrade package corresponding to the determined version of the application node template to be deployed to the first platform node template is obtained.
  • the application deployment server obtains the version of Apache l from the Apache l deployment product name to Tomcat 6.0 according to Table 4.
  • the version required for Apachel is Tomcat 7.0.
  • the application deployment server obtains the upgrade package location from Table 5 that can upgrade Apache l from Tomcat 6.0 to Tomcat 7.0 according to the determined version of Tomcat 7.0.
  • the location of the upgrade package is File://appcontainer/apache/update/appE, and the upgrade is obtained from this location.
  • Package appE. Table 5 Deploying Product Information Table
  • the application node template to be deployed is configured to the first platform node.
  • the version requirements of the board can also be the capabilities supported by the version, such as supports ervlet3. The embodiments of the present invention are not described in detail herein.
  • Step 4064 Determine that the version of the second platform node is lower than the version requirement of the first platform node template to the second platform node template. Otherwise, step 4067 is directly performed.
  • the application deployment server determines, according to the stored description file of the deployed application deployment package, that the profile of the deployed application deployment package has a target node template that uses the first platform node template as a source node template (ie, For the second platform node template). Further, the application deployment server determines, according to the relationship template of the description file, a target node template that uses the first platform node template as a source node template in the relationship template. The embodiment of the present invention uses the first platform node template as a target node template of the source node template as the second platform node template.
  • the apache node template is used as the source node template
  • the javaModule is used as the target node template. Therefore, the javaModule node template acts as the second platform node template.
  • the application deployment server determines that the first platform node Apache will be upgraded to Tomcat 7.0 based on the source node template and the target node matching table of the target node template (see Table 6).
  • the corresponding node of the second platform node template j avaModule needs to support JDK 1.6.
  • Step 4056 Obtain a second platform node upgrade package. Go to step 4066.
  • the second platform node upgrade package is obtained according to the version requirement of the first platform node to the second platform node.
  • the upgrade package can upgrade the platform node corresponding to the node template j avaModule to JDK1.6, and the second platform node upgrade package is upgrade package D.
  • Step 4066 Upgrade the second platform node according to the second platform node upgrade package. Go to step 4067.
  • step 4066 the application deployment server needs to continue to determine whether the profile of the deployed application deployment package has a target node template (ie, a third node template) that uses the second platform node template as a source node template. And repeat steps 4064 and 4065) until the version requirements of any node are met after the upgrade.
  • a target node template ie, a third node template
  • Step 4067 Upgrade the first platform node according to the first platform node upgrade package. Go to step 4068.
  • Step 4068 Upgrade the application node of the deployed application according to the application deployment package to be deployed.
  • the application deployment package of the deployed application is also generated by the user equipment. Therefore, upgrading the deployed application actually refers to upgrading the application node corresponding to the deployed application.
  • the upgrade process may be upgraded according to the information described in the plan of the application deployment package to be deployed.
  • the application deployment package describes the application node template to be deployed, the identifier of the first platform node template, and the deployed.
  • the identifier of the application node template, the version requirement of the application node template to be deployed, and the upgrade identifier of the application node template to be deployed and the upgrade of the deployed application node template may be used.
  • the application deployment package which upgrades the application node indicated by the identifier of the deployed application node template.
  • the platform node upgrade Since the upgrade package of the platform node is maintained by the application deployment server, if the installation fails, unless the application deployment server can respond in time to failure, the platform node upgrade is finally guaranteed. Successful, otherwise the application upgrade must fail, and the application node will not run normally even if the upgrade is successful. If the platform node is upgraded first, if the application node fails to be upgraded, it is likely that the user equipment introduced an error in the process of constructing the application node upgrade package. At this time, the CSP can return the error information to the user equipment, and the error information includes the occurrence. The identifier of the wrong application node is modified by the user equipment and then the new application deployment package to be deployed is submitted.
  • the application deployment server only needs to install the modified application deployment package to be deployed, and no need to upgrade the platform node. Therefore, in the above upgrade process, when the application deployment package of the first application node, the upgrade package of the first platform node, and the upgrade package of the second platform node are obtained until the nth platform node upgrade package, In the subsequent order, the nth platform node and the n-1th platform node are upgraded in sequence until the second platform node, the first platform node, and the first application node.
  • Step 407 The application deployment server returns an upgrade response information to the user equipment.
  • each platform node is successfully upgraded, it needs to write a new version of the platform node to the database because it has a new version.
  • the application upgrade method provided by the embodiment of the present invention describes the version requirement of the application node template to be deployed to the first platform node template in the application description file of the application deployment package to be deployed.
  • the application deployment server determines that the version of the first platform node is lower than the version of the application node template to be deployed to the first platform node template
  • the application deployment server searches the first platform according to the application node template to be deployed.
  • the version of the node template requires the first platform node upgrade package.
  • the application deployment server upgrades the first platform node according to the obtained first platform node upgrade package.
  • An embodiment of the present invention provides an application deployment server 80, as shown in FIG. 8, which includes:
  • the receiving module 801 is configured to receive an application deployment request, where the application deployment request includes an application deployment package to be deployed, and the application deployment package to be deployed describes the application node template to be deployed, the identifier of the deployed application, and the deployed
  • the identifier of the application node template, the identifier of the first platform node template, the version requirement of the application node template to be deployed, and the application node template to be deployed are used for the deployed application node template.
  • the upgrade identifier of the deployed application node template upgrade indicated by the identifier, and the application deployment package of the application to be deployed is sent to the determining module 802 and the upgrading module 803;
  • the determining module 802 is configured to receive an application deployment package of the to-be-deployed application sent by the receiving module 801, and determine, according to the upgrade identifier, the to-be-deployed application An upgrade package of the deployed application indicated by the deployment package for the identifier of the deployed application; and an identifier for acquiring the first platform node corresponding to the identifier of the first platform node template according to the deployed application identifier And obtaining a version of the first platform node indicated by the identifier of the first platform node; and determining that the version of the first platform node is lower than the version of the application node template to be deployed to the first platform node template
  • the upgrade identifier is an upgrade identifier used by the application node template to be deployed to upgrade the deployed application node template indicated by the identifier of the deployed application node template.
  • the first platform node upgrade package that satisfies the version requirement of the application node template to be deployed on the first platform node template, and sends the first a platform node upgrade package to the upgrade module;
  • the upgrade module 803 is configured to receive the first platform node upgrade package sent by the determining module 802, and use the first platform node upgrade package to upgrade the first indicator of the first platform node identifier Platform node
  • the determining module 802 is further configured to determine an identifier of the application node to be upgraded according to the identifier of the deployed application node template, and send the identifier of the application node to be upgraded to the upgrade module 803;
  • the upgrade module 803 is further configured to receive an application deployment package of the application to be deployed sent by the receiving module 801, and receive an identifier of the application node to be upgrade sent by the determining module 802, and use The application deployment package to be deployed upgrades the application node indicated by the identifier of the application node to be upgraded.
  • the application description file in the application deployment package to be deployed describes the version requirement of the application node template to be deployed on the first platform node template.
  • the upgrade module searches the first platform node template according to the application node template to be deployed.
  • the version requires the first platform node upgrade package.
  • the upgrade module upgrades the first platform node according to the obtained first platform node upgrade package. Making the version of the first platform node after the upgrade meet the application node mode to be deployed.
  • the board requires versioning of the first platform node template to ensure that the upgraded application works properly.
  • the application deployment package to be deployed further includes a relationship template that describes the application node template to be deployed, where the upgrade identifier is carried in the relationship template;
  • the application deployment package to be deployed further includes a node type corresponding to the application node template to be deployed, and the upgrade identifier is carried in the node type execution.
  • the determining module 802 is specifically configured to: determine that an identifier of all the application nodes corresponding to the identifier of the deployed application node template is an identifier of an application node to be upgraded; or
  • an identifier of the at least one deployed application node corresponding to the identifier of the deployed application node template, the identifier of the application node that is determined to be upgraded is specifically:
  • the determining module 802 is further configured to:
  • the upgrade module 803 is further configured to:
  • application deployment server provided by the embodiment of the present invention may perform any part of the execution of the application deployment server described in FIG. 2 to FIG.
  • the embodiments of the present invention will not be described in detail herein.
  • the application deployment server provided by the present invention describes the version requirements of the application node template to be deployed to the first platform node template in the application deployment file to be deployed.
  • the upgrade module searches the first platform node template according to the application node template to be deployed.
  • the version requires the first platform node upgrade package.
  • the upgrade module upgrades the first platform node according to the obtained first platform node upgrade package.
  • the version of the first platform node after the upgrade meets the version requirement of the application node template to be deployed on the first platform node template, so as to ensure that the upgraded application can run normally.
  • the embodiment of the present invention provides a user equipment 90, as shown in FIG. 9, including: a generating module 901, configured to generate an application deployment package to be deployed, where the application deployment package to be deployed describes an application node template to be deployed, The identifier of the deployed application, the identifier of the first platform node template, the identifier of the deployed application node template, the version requirement of the application node template to be deployed to the first platform node template, and the application node template to be deployed. And an upgrade identifier of the deployed application node template upgrade indicated by the identifier of the deployed application node template;
  • the generating module 901 is further configured to generate an application deployment request, and send the application deployment request to the sending module 902, where the application deployment request includes the application deployment package to be deployed;
  • the sending module 902 is configured to receive the application deployment request sent by the generating module 901, and send the application deployment request to an application deployment server.
  • the generating module of the user equipment generates an application deployment package to be deployed, and the application description file in the application deployment package to be deployed describes the application node model to be deployed.
  • the board requires versioning of the first platform node template.
  • the application deployment server determines that the version of the first platform node is lower than the version of the application node template to be deployed to the first platform node template
  • the application deployment server searches the first platform according to the application node template to be deployed.
  • the version of the node template requires the first platform node upgrade package.
  • the application deployment server upgrades the first platform node according to the obtained first platform node upgrade package.
  • the version of the first platform node after the upgrade meets the version requirement of the application node template to be deployed on the first platform node template, thereby ensuring that the upgraded application can run normally.
  • the application deployment package to be deployed further includes a relationship template that describes the application node template to be deployed, where the upgrade identifier is carried in the relationship template;
  • the application deployment package to be deployed is further executed by a node type corresponding to the application node template to be deployed, and the upgrade identifier is carried in the node type execution.
  • the application deployment package to be deployed generated by the generating module 901 further includes: an identifier of the at least one deployed application node corresponding to the identifier of the deployed application node template.
  • the user equipment further includes: a determining module 903, configured to determine, according to the description file of the deployed application deployment package, the first platform of the deployed application indicated by the deployed application identifier A node template, where the first platform node template uses the deployed application node template as a source node template.
  • the user equipment provided by the embodiment of the present invention may perform any part of the execution of the user equipment described in FIG. 2 to FIG.
  • the embodiments of the present invention are not described in detail herein.
  • the generating module of the user equipment generates the application deployment package to be deployed, and the application description file in the application deployment package to be deployed describes the version of the application node template to be deployed to the first platform node template. demand.
  • the application deployment server determines that the version of the first platform node is lower than the version of the application node template to be deployed to the first platform node template
  • the application deployment server searches the first platform according to the application node template to be deployed.
  • the version requirement of the node template gets the first level Platform upgrade package.
  • the application deployment server upgrades the first platform node according to the obtained first platform node upgrade package.
  • An embodiment of the present invention provides an application deployment server 1 10 , as shown in FIG. 11 , including:
  • the receiver 1 1 1 is configured to receive an application deployment request, where the application deployment request includes an application deployment package to be deployed, and the application deployment package to be deployed describes an application node template to be deployed, an identifier of the deployed application, and The identifier of the deployed application node template, the identifier of the first platform node template, the version requirement of the application node template to be deployed to the first platform node template, and the application node template to be deployed are used for the deployed application. An upgrade identifier of the deployed application node template upgrade indicated by the identifier of the node template, and sending the application deployment package to be deployed to the processor 1 12;
  • the processor 1 12 is configured to:
  • the application deployment package to be deployed Receiving, by the receiver 1 1 1 , the application deployment package to be deployed, and determining, according to the application node template to be deployed, the application deployment package to be deployed as An upgrade package of the deployed application indicated by the identifier of the deployment application; the upgrade identifier is used by the application node template to be deployed for the deployed application indicated by the identifier of the deployed application node template. Upgrade ID of the node template upgrade.
  • the first platform node upgrade package that satisfies the version requirement of the application node template to be deployed on the first platform node template; Upgrading the first platform node indicated by the identifier of the first platform node template by using the first platform node upgrade package;
  • the application node indicated by the identifier of the application node to be upgraded is upgraded by using the application deployment package to be deployed.
  • the application description file in the application deployment package to be deployed describes the version requirement of the application node template to be deployed on the first platform node template.
  • the processor determines that the version of the first platform node is lower than the version of the application node template to be deployed to the first platform node template, the processor searches the first platform node template according to the application node template to be deployed.
  • the version requires the first platform node upgrade package.
  • the processor upgrades the first platform node according to the obtained first platform node upgrade package.
  • the version of the first platform node meets the version requirement of the application node template to be deployed on the first platform node template, thereby ensuring that the upgraded application can run normally.
  • the application deployment package to be deployed further includes a relationship template that describes the application node template to be deployed, where the upgrade identifier is carried in the relationship template;
  • the application deployment package to be deployed further includes a node type corresponding to the application node template to be deployed, and the upgrade identifier is carried in the node type execution.
  • the processor 1 is specifically configured to: determine that the identifiers of all the application nodes corresponding to the identifiers of the deployed application node templates are identifiers of the application nodes to be upgraded; or
  • an identifier of the at least one deployed application node corresponding to the identifier of the deployed application node template, the identifier of the application node that is determined to be upgraded is specifically:
  • the processor 1 12 is also used to:
  • application deployment server provided by the embodiment of the present invention may perform any part of the execution of the application deployment server described in FIG. 2 to FIG.
  • the embodiments of the present invention will not be described in detail herein.
  • the application deployment server provided by the present invention describes the version requirements of the application node template to be deployed on the first platform node template in the application deployment file to be deployed.
  • the processor determines that the version of the first platform node is lower than the version of the application node template to be deployed to the first platform node template
  • the processor searches the first platform node template according to the application node template to be deployed.
  • the version requires the first platform node upgrade package.
  • the processor upgrades the first platform node according to the obtained first platform node upgrade package.
  • the version of the first platform node after the upgrade meets the version requirement of the application node template to be deployed on the first platform node template, thereby ensuring that the upgraded application can run normally.
  • An embodiment of the present invention provides a user equipment 120, as shown in FIG.
  • a processor 121 configured to generate an application deployment package to be deployed, where the application deployment package to be deployed describes an application node template to be deployed, The ID of the deployed application, the identifier of the first platform node template, the identifier of the deployed application node template, and the to be deployed And the application identifier of the application node template to the upgraded identifier of the deployed application node template indicated by the identifier of the deployed application node template;
  • the transmitter 122 is configured to receive the application deployment request sent by the processor, and send the application deployment request to an application deployment server.
  • the processor of the user equipment generates an application deployment package to be deployed, and then generates an application deployment request according to the application deployment package to be deployed, and sends the application deployment request to the transmitter, and then sends the application deployment request to the transmitter through the transmitter.
  • the application deployment server automatically upgrades the platform node and the application node according to the application deployment package to be deployed in the application deployment request, thereby improving the automation of the application upgrade and reducing manual intervention.
  • the application deployment package to be deployed further includes a relationship template that describes the application node template to be deployed, where the upgrade identifier is carried in the relationship template;
  • the application deployment package to be deployed is further executed by a node type corresponding to the application node template to be deployed, and the upgrade identifier is carried in the node type execution.
  • the application deployment package to be deployed generated by the processor 121 further includes: an identifier of the at least one deployed application node corresponding to the identifier of the deployed application node template.
  • the processor 121 is further configured to: determine, according to a description file of the deployed application deployment package, a first platform node template of the deployed application indicated by the deployed application identifier, where the first platform node template is deployed Apply the node template as the source node template.
  • the processor generates an application deployment package to be deployed according to the application developer's upgrade requirement, and the application description file in the application deployment package to be deployed describes the application node template to be deployed on the first platform node template. Version requirements.
  • the application deployment server determines that the version of the first platform node is lower than the version of the application node template to be deployed to the first platform node template, the application deployment server searches the first platform according to the application node template to be deployed.
  • the version of the node template requires the first platform node upgrade package.
  • the application deployment server upgrades the first platform node according to the obtained first platform node upgrade package.
  • the version of the first platform node after the upgrade meets the version requirement of the application node template to be deployed on the first platform node template, thereby ensuring that the upgraded application can run normally.
  • the disclosed systems, devices, and methods may be implemented in other ways.
  • the device embodiments described above are merely illustrative.
  • the division of the unit is only a logical function division.
  • there may be another division manner for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be electrical, mechanical or otherwise.
  • the units described as separate components may or may not be physically separated, and the components displayed as the units may or may not be physical units, that is, may be located at one place, or may be distributed to a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
  • each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may be physically included separately, or two or more units may be integrated into one unit.
  • the above integrated unit can be implemented in the form of hardware or hard.
  • the form is implemented in the form of a software functional unit.

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应用信息表
Figure imgf000022_0001
步骤 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部署包信息表
Figure imgf000031_0001
如图 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部署应用信息表
Figure imgf000036_0001
步骤 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应用实现信息表
Figure imgf000037_0001
因此, 应用部署服务器根据所述第一平台节点模板的标识获取 所述第一平台节点的版本, 确定所述第一平台节点的版本不能满足 所述待部署的应用节点模板对第一平台节点模板的版本需求。 例 如, 应用部署服务器根据表 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部署制品信息表
Figure imgf000038_0001
作为一种可选方式, 待部署的应用节点模板对第一平台节点模 板的版本需求, 还可以是版本支持的能力, 如 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 ) 源节点模板和目标节点模板的版本需求匹配表
Figure imgf000039_0001
步骤 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应用实现信息表
Figure imgf000041_0001
需要说明的是, 本发明实施例提供的应用升级方法步骤的先后 顺序可以进行适当调整, 步骤也可以根据情况进行相应增减, 任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易想 到变化的方法, 都应涵盖在本发明的保护范围之内 , 因此不再赘 述。
由以上方案可知, 本发明实施例提供的应用升级方法, 在待部 署的应用部署包中的应用描述文件描述了待部署的应用节点模板对 第一平台节点模板的版本需求。 当应用部署服务器在确定第一平台 节点的版本低于所述待部署的应用节点模板对第一平台节点模板的 版本需求时, 应用部署服务器会根据所述待部署的应用节点模板对 第一平台节点模板的版本需求获取第一平台节点升级包。 之后, 应 用部署服务器根据获取的第一平台节点升级包升级第一平台节点。 使得升级后第一平台节点的版本满足所述待部署的应用节点模板对 第一平台节点模板的版本需求, 从而确保升级后的应用能正常运 行。 本发明实施例提供一种应用部署服务器 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、 一种应用升级方法, 其特征在于, 包括:
接收应用部署请求, 所述应用部署请求包含待部署的应用部署 包, 所述待部署的应用部署包描述了待部署的应用节点模板、 已部 署应用的标识、 已部署的应用节点模板的标识、 第一平台节点模板 的标识、 待部署的应用节点模板对第一平台节点模板的版本需求、 以及所述待部署的应用节点模板用于对所述已部署的应用节点模板 的标识所指示的已部署的应用节点模板升级的升级标识;
根据所述升级标识确定所述待部署的应用部署包为所述已部署 应用的标识指示的已部署应用的升级包;
根据所述已部署的应用标识获取与所述第一平台节点模板的标 识对应的第一平台节, 的标识, 以及获取所述第一平台节, 的标识 指示的第一平台节点的版本;
根据所述第一平台节点的版本确定所述第一平台节点的版本低 于所述待部署的应用节点模板对第一平台节点模板的版本需求; 根据所述待部署的应用节点模板对第一平台节点模板的版本需 求, 获取满足所述待部署的应用节点模板对第一平台节点模板的版 本需求的第一平台节点升级包;
使用所述第一平台节点升级包, 升级所述第一平台节点的标识 指示的所述第一平台节点;
确定待升级的应用节点的标识;
使用所述待部署的应用部署包, 升级所述待升级的应用节点的 标识指示的应用节点。
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任意一项权利要求所述的用户设备, 其 特征在于, 所述处理器还用于: 根据已部署的应用部署包的描述文 件, 确定所述已部署应用标识指示的已部署应用的第一平台节点模 板, 所述第一平台节点模板将已部署的应用节点模板作为源节点模 板。
PCT/CN2013/081410 2013-08-13 2013-08-13 一种应用升级方法、装置 WO2015021604A1 (zh)

Priority Applications (11)

Application Number Priority Date Filing Date Title
KR1020157023115A KR101782457B1 (ko) 2013-08-13 2013-08-13 어플리케이션 업그레이드 방법 및 장치
CN201380001370.0A CN104583945B (zh) 2013-08-13 2013-08-13 一种应用升级方法、装置
CN201810011915.0A CN108052340B (zh) 2013-08-13 2013-08-13 一种应用升级方法、装置
CN201810012326.4A CN108319463B (zh) 2013-08-13 2013-08-13 一种应用升级方法、装置
JP2016520235A JP6164440B2 (ja) 2013-08-13 2013-08-13 アプリケーションアップグレード方法および装置
EP13891536.8A EP2945055A4 (en) 2013-08-13 2013-08-13 METHOD AND DEVICE FOR UPGRADING THE APPLICATION
PCT/CN2013/081410 WO2015021604A1 (zh) 2013-08-13 2013-08-13 一种应用升级方法、装置
AU2013397867A AU2013397867B2 (en) 2013-08-13 2013-08-13 Application upgrade method and device
US14/820,977 US9696984B2 (en) 2013-08-13 2015-08-07 Application upgrade method and apparatus
US15/618,851 US10191730B2 (en) 2013-08-13 2017-06-09 Application upgrade method and apparatus
US16/220,962 US10649761B2 (en) 2013-08-13 2018-12-14 Application upgrade method and apparatus

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 (1)

Application Number Title Priority Date Filing Date
US14/820,977 Continuation US9696984B2 (en) 2013-08-13 2015-08-07 Application upgrade method and apparatus

Publications (1)

Publication Number Publication Date
WO2015021604A1 true WO2015021604A1 (zh) 2015-02-19

Family

ID=52467924

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/081410 WO2015021604A1 (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)

Families Citing this family (15)

* 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
CN108809683B (zh) * 2017-05-04 2022-07-15 中兴通讯股份有限公司 部署云应用***的方法及装置
US10749743B2 (en) 2017-06-12 2020-08-18 Microsoft Technology Licensing, Llc Upgrade a version of a service
CN107844314B (zh) * 2017-12-22 2020-12-18 税友软件集团股份有限公司 一种升级Weblogic应用程序的方法及***
CN110308914B (zh) * 2018-03-27 2023-08-22 阿里巴巴(中国)有限公司 升级处理方法、装置、设备、***及计算机可读存储介质
CN109032634B (zh) * 2018-07-16 2021-11-26 北京百度网讯科技有限公司 用于更新应用的方法、装置、设备和计算机可读存储介质
CN109388415A (zh) * 2018-09-27 2019-02-26 深圳供电局有限公司 一种应用自动化更新装置、***和方法
CN112035146B (zh) * 2020-09-11 2023-10-24 百富计算机技术(深圳)有限公司 固件更新方法、安全设备和计算机可读存储介质
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 (3)

* 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
CN102495733A (zh) * 2011-12-08 2012-06-13 方正国际软件有限公司 应用程序与相关数据库脚本兼容性检测和升级维护的方法
CN103136013A (zh) * 2011-12-01 2013-06-05 腾讯科技(深圳)有限公司 软件升级方法和***

Family Cites Families (51)

* 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
US20110055299A1 (en) * 2008-12-18 2011-03-03 Virtual Computer, Inc. Managing User Data in a Layered Virtual Workspace
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
US9753713B2 (en) * 2010-10-22 2017-09-05 Microsoft Technology Licensing, Llc Coordinated upgrades in distributed systems
CN102006332B (zh) * 2010-12-03 2013-12-11 杭州华三通信技术有限公司 一种软件升级的方法和***
US9021465B2 (en) * 2010-12-15 2015-04-28 Red Hat Israel, Ltd. Downloading guest software updates by a hypervisor
US8261295B1 (en) * 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
JP5665188B2 (ja) * 2011-03-31 2015-02-04 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウエア更新を適用した情報処理装置を検査するシステム
US9015710B2 (en) * 2011-04-12 2015-04-21 Pivotal Software, Inc. Deployment system for multi-node applications
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
CN102413022B (zh) * 2011-12-31 2014-04-16 北京新媒传信科技有限公司 一种应用调试方法和***
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 (3)

* 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
CN103136013A (zh) * 2011-12-01 2013-06-05 腾讯科技(深圳)有限公司 软件升级方法和***
CN102495733A (zh) * 2011-12-08 2012-06-13 方正国际软件有限公司 应用程序与相关数据库脚本兼容性检测和升级维护的方法

Also Published As

Publication number Publication date
KR101782457B1 (ko) 2017-09-28
JP6164440B2 (ja) 2017-07-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
CN104583945A (zh) 2015-04-29
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
WO2015021604A1 (zh) 一种应用升级方法、装置
CN107689882B (zh) 一种虚拟化网络中业务部署的方法和装置
US10382291B2 (en) Provisioning framework for binding related cloud services
US10452372B2 (en) Method and deployment module for managing a container to be deployed on a software platform
JP6329547B2 (ja) クラウドコンピューティング環境で使用するサービス管理エンジンを提供するためのシステムおよび方法
US10225140B2 (en) Portable instance provisioning framework for cloud services
US8775577B1 (en) System and method for configuration management service
US8887147B2 (en) Method for supporting new network element software versions in an element management system without upgrading
US8799453B2 (en) Managing networks and machines for an online service
CN102413022B (zh) 一种应用调试方法和***
US11356508B1 (en) Retry strategies for handling failures during continuous delivery of software artifacts in a cloud platform
US20160080479A1 (en) Application deployment method and device
US20140157262A1 (en) Multi-tier platform-as-a-service (paas) deployment reduced to single-tier architecture for development
KR20160067180A (ko) 가상 머신들을 관리하는 장치 및 방법
US10581823B2 (en) Web client plugin manager in vCenter managed object browser
US11349958B1 (en) Deployment of software releases on datacenters configured in cloud platforms
US20230035486A1 (en) Managing execution of continuous delivery pipelines for a cloud platform based data center
US11392361B2 (en) Software release orchestration for continuous delivery of features in a cloud platform based data center
KR100835272B1 (ko) 에스시에이 시스템에서의 컴포넌트 관리 장치 및 그 방법
US20220222125A1 (en) Enforcing system configuration freeze of services deployed via continuous delivery on datacenters configured in cloud platforms
CN112351114B (zh) 一种信息处理方法、装置以及存储介质
US20180167278A1 (en) A system and method for facilitating migration of server infrastructure services
US12035231B2 (en) Virtualization management method and apparatus
WO2021147375A1 (zh) 数据管理方法、装置、设备、计算机可读存储介质及***
WO2023147882A1 (en) Version-dependency information for management of a network service

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13891536

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2013891536

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20157023115

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2013397867

Country of ref document: AU

Date of ref document: 20130813

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: IDP00201505925

Country of ref document: ID

ENP Entry into the national phase

Ref document number: 2016520235

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE