JP6164440B2 - アプリケーションアップグレード方法および装置 - Google Patents

アプリケーションアップグレード方法および装置 Download PDF

Info

Publication number
JP6164440B2
JP6164440B2 JP2016520235A JP2016520235A JP6164440B2 JP 6164440 B2 JP6164440 B2 JP 6164440B2 JP 2016520235 A JP2016520235 A JP 2016520235A JP 2016520235 A JP2016520235 A JP 2016520235A JP 6164440 B2 JP6164440 B2 JP 6164440B2
Authority
JP
Japan
Prior art keywords
application
node
deployed
identifier
template
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016520235A
Other languages
English (en)
Other versions
JP2016521897A (ja
Inventor
▲潔▼ 朱
▲潔▼ 朱
楚雄 ▲張▼
楚雄 ▲張▼
毅 ▲張▼
毅 ▲張▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2016521897A publication Critical patent/JP2016521897A/ja
Application granted granted Critical
Publication of JP6164440B2 publication Critical patent/JP6164440B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Description

本発明は、クラウドコンピューティングの分野に関し、かつ特に、アプリケーションアップグレード方法および装置に関する。
クラウドコンピューティングのコアの考えは、ユーザ需要に応じてユーザにリソースおよびサービスを提供するためのコンピューティングリソースプールを構成するために、ネットワークを使用して接続された多量のコンピューティングリソースを統一的な方法で管理し、かつスケジューリングすることである。このようなコンピューティングリソースを提供するネットワークは、クラウドと呼ばれる。
クラウドプラットフォームは、アプリケーションデベロッパにクラウドベースのサービスを提供するプラットフォームである。PaaS(Platform as a Service)は、一般的なクラウドプラットフォームであり、かつデベロッパがオンデマンド容易拡張方法でネットワークを使用して必要なサービスを取得することを意味する一般化されたクラウドコンピューティングの一般的なサービスモードに属する。PaaSは、サービスとしてユーザに、カスタマイズされた方法で開発されるミドルウェアプラットフォームを提供する。基本的には、PaaSは、商業的価値を有するリソースおよびサービスプラットフォームをサードパーティデベロッパに提供するために、インターネットのリソースおよびサービスをプログラマブルインターフェースに変換する。プラットフォームノードとも呼ばれるミドルウェアプラットフォームは、標準的なプログラムインターフェースおよびプロトコルを有する一般的なサービスであり、一般的にハードウェアとアプリケーションとの間か、またはオペレーティングシステムとアプリケーションとの間に置かれる。PaaS CSP(Cloud Service Provider)は、例えば、アプリケーションサーバおよびデータベースのような様々なミドルウェアプラットフォームを提供する。CSPは、プラットフォームノードを設計し、開発し、かつ最適化することができ、かつアプリケーションデベロッパは、プラットフォームノード上でアプリケーションノードの開発に集中する必要があるのみであり、開発に大きな利便性をもたらす。
しかしながら現在、PaaS CSPは、固定バージョンのプラットフォームノードのみをアプリケーションデベロッパに提供しており、全てのアプリケーションに関してプラットフォームノードのバージョンをメンテナンスしている。もしアプリケーションデベロッパがアプリケーションノードをアップグレードする必要がある場合、アップグレードされたアプリケーションノードは、プラットフォームノードのバージョンの要件を有するが、もしプラットフォームノードのバージョンがアップグレードされたアプリケーションノードの要件を満たせない場合、アプリケーションノードはアップデートに失敗し、アプリケーションは正常に動作できない。
本発明の態様は、アップグレードされたアプリケーションが正常に動作できることを保証するために、アプリケーションアップグレード方法および装置を提供する。
前述の目的を達成するために、以下の技術的解決策が本発明の態様において使用される。
本発明の実施の第1態様は、
デプロイ予定のアプリケーションのデプロイメントパッケージを含むアプリケーションデプロイメント要求を受信するステップであって、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートの識別子と、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションのノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述している、ステップと、
アップグレード識別子に基づいて、デプロイ予定のアプリケーションのデプロイメントパッケージが、デプロイされたアプリケーションの識別子によって示されるデプロイされたアプリケーションのアップグレードパッケージであることを決定するステップと、
デプロイされたアプリケーションの識別子に基づいて、第1プラットフォームノードの識別子であり、かつ第1プラットフォームノードテンプレートの識別子に対応する識別子を取得するとともに、第1プラットフォームノードの識別子によって示される第1プラットフォームノードのバージョンを取得するステップと、
第1プラットフォームノードのバージョンに基づいて、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定するステップと、
第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たす第1プラットフォームノードアップグレードパッケージを取得するステップと、
第1プラットフォームノードアップグレードパッケージを使用することによって第1プラットフォームノードの識別子によって示される第1プラットフォームノードをアップグレードするステップと、
アップグレード予定のアプリケーションノードの識別子を決定するステップと、
デプロイ予定のアプリケーションのデプロイメントパッケージを使用することによってアップグレード予定のアプリケーションノードの識別子によって示されるアプリケーションノードをアップグレードするステップと
を含むアプリケーションアップグレード方法を提供する。
第1態様を参照して、第1の実施可能な方式において、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートを記述する関係テンプレートをさらに含み、かつアップグレード識別子は、関係テンプレートにおいて搬送され、または、
デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートに対応するノードタイプ実装をさらに含み、かつアップグレード識別子は、ノードタイプ実装において搬送される。
第1態様または第1の実施可能な方式を参照して、第2の実施可能な方式において、アップグレード予定のアプリケーションノードの識別子を決定するステップは特に、全アプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子を、アップグレード予定のアプリケーションノードの識別子として決定するステップであり、または
デプロイ予定のアプリケーションのデプロイメントパッケージが、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子をさらに含むとき、アップグレード予定のアプリケーションノードの識別子を決定するステップは特に、
少なくとも1つのデプロイされたアプリケーションノードの識別子であり、デプロイされたアプリケーションのノードテンプレートの識別子に対応し、かつアプリケーションデプロイメントパッケージに含まれる識別子を、アップグレード予定のアプリケーションノードの識別子として決定するステップである。
第1態様、第1の実施可能な方式、または第2の実施可能な方式を参照して、第3の実施可能な方式において、第1プラットフォームノードの識別子によって示される第1プラットフォームノードをアップグレードするステップの前に、方法は、デプロイされたアプリケーションの識別子に基づいて、デプロイされたアプリケーションのデプロイメントパッケージの記憶された記述ファイルを取得するステップと、
デプロイされたアプリケーションのデプロイメントパッケージの取得された記述ファイルに基づいて、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルが、第1プラットフォームノードテンプレートをソースノードテンプレートとして使用する第2プラットフォームノードテンプレートを記述していることを決定するステップと、
第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件と、第2プラットフォームノードのバージョンとを取得するステップと、
第2プラットフォームノードのバージョンが、第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件を下回っていると決定するステップと
をさらに含み、かつ
第1プラットフォームノードアップグレードパッケージを使用することによって第1プラットフォームノードをアップグレードするステップの前に、方法は、
第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件に基づいて、第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件を満たす第2プラットフォームノードアップグレードパッケージを取得するステップと、
第2プラットフォームノードアップグレードパッケージに基づいて第2プラットフォームノードをアップグレードするステップと
をさらに含む。
本発明の実施の第2態様は、
デプロイ予定のアプリケーションのデプロイメントパッケージを生成するステップであって、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、第1プラットフォームノードテンプレートの識別子と、デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述している、ステップと、
デプロイ予定のアプリケーションのデプロイメントパッケージを含むアプリケーションデプロイメント要求を生成するステップと、
アプリケーションデプロイメント要求を、アプリケーションデプロイメントサーバに送信するステップと
を含むアプリケーションアップグレード方法を提供する。
第2態様を参照して、第1の実施可能な方式において、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートを記述する関係テンプレートをさらに含み、かつアップグレード識別子は、関係テンプレートにおいて搬送され、または
デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートに対応するノードタイプ実装をさらに含み、かつアップグレード識別子は、ノードタイプ実装において搬送される。
第2態様または第1の実施可能な方式を参照して、第2の実施可能な方式において、デプロイ予定のアプリケーションのデプロイメントパッケージは、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子をさらに含む。
第2態様、第1の実施可能な方式、または第2の実施可能な方式を参照して、第3の実施可能な方式において、デプロイ予定のアプリケーションのデプロイメントパッケージを生成するステップの前に、方法は、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルに基づいて、デプロイされたアプリケーションの識別子によって示されるデプロイされたアプリケーションの第1プラットフォームノードテンプレートを決定するステップであって、第1プラットフォームノードテンプレートは、デプロイされたアプリケーションのノードテンプレートをソースノードテンプレートとして使用する、ステップをさらに含む。
本発明の実施の第3態様は、
デプロイ予定のアプリケーションのデプロイメントパッケージを含むアプリケーションデプロイメント要求を受信し、かつデプロイ予定のアプリケーションのアプリケーションデプロイメントパッケージを、決定モジュールおよびアップグレードモジュールに送信するように構成された受信モジュールであって、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートの識別子と、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述している、受信モジュールと、
受信モジュールによって送信されたデプロイ予定のアプリケーションのアプリケーションデプロイメントパッケージを受信するとともに、アップグレード識別子に基づいて、デプロイ予定のアプリケーションのデプロイメントパッケージが、デプロイされたアプリケーションの識別子によって示されるデプロイされたアプリケーションのアップグレードパッケージであることを決定し、デプロイされたアプリケーションの識別子に基づいて、第1プラットフォームノードの識別子であり、かつ第1プラットフォームノードテンプレートの識別子に対応する識別子を取得するとともに、第1プラットフォームノードの識別子によって示される第1プラットフォームノードのバージョンを取得し、第1プラットフォームノードのバージョンに基づいて、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定し、かつ第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たす第1プラットフォームノードアップグレードパッケージを取得するとともに、第1プラットフォームノードアップグレードパッケージをアップグレードモジュールに送信するように構成された決定モジュールと、
決定モジュールによって送信された第1プラットフォームノードアップグレードパッケージを受信するとともに、第1プラットフォームノードアップグレードパッケージを使用することによって第1プラットフォームノードの識別子によって示される第1プラットフォームノードをアップグレードするように構成されたアップグレードモジュールと
を備え、
決定モジュールは、デプロイされたアプリケーションのノードテンプレートの識別子に基づいて、アップグレード予定のアプリケーションノードの識別子を決定するとともに、アップグレード予定のアプリケーションノードの識別子をアップグレードモジュールに送信するようにさらに構成され、かつ
アップグレードモジュールは、受信モジュールによって送信されたデプロイ予定のアプリケーションのアプリケーションデプロイメントパッケージを受信し、決定モジュールによって送信されたアップグレード予定のアプリケーションノードの識別子を受信し、かつデプロイ予定のアプリケーションのデプロイメントパッケージを使用することによってアップグレード予定のアプリケーションノードの識別子によって示されるアプリケーションノードをアップグレードするようにさらに構成される、アプリケーションデプロイメントサーバを提供する。
第3態様を参照して、第1の実施可能な方式において、
デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートを記述する関係テンプレートをさらに含み、かつアップグレード識別子は、関係テンプレートにおいて搬送され、または
デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートに対応するノードタイプ実装をさらに含み、かつアップグレード識別子は、ノードタイプ実装において搬送される。
第3態様または第1の実施可能な方式を参照して、第2の実施可能な方式において、
決定モジュールは特に、全アプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子を、アップグレード予定のアプリケーションノードの識別子として決定するように構成され、または
デプロイ予定のアプリケーションのデプロイメントパッケージは、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子をさらに含むとき、アップグレード予定のアプリケーションノードの識別子を決定することは特に、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、デプロイされたアプリケーションのノードテンプレートの識別子に対応し、かつアプリケーションデプロイメントパッケージに含まれる識別子を、アップグレード予定のアプリケーションノードの識別子として決定することである。
第3態様、第1の実施可能な方式、または第2の実施可能な方式を参照して、第3の実施可能な方式において、決定モジュールは、
デプロイされたアプリケーションの識別子に基づいて、デプロイされたアプリケーションのデプロイメントパッケージの記憶された記述ファイルを取得し、
デプロイされたアプリケーションのデプロイメントパッケージの取得された記述ファイルに基づいて、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルが、第1プラットフォームノードテンプレートをソースノードテンプレートとして使用する第2プラットフォームノードテンプレートを記述していることを決定し、
第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件と、第2プラットフォームノードのバージョンとを取得し、
第2プラットフォームノードのバージョンが、第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件を下回っていると決定し、かつ
第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件に基づいて、第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件を満たす第2プラットフォームノードアップグレードパッケージを取得する
ようにさらに構成され、かつ
アップグレードモジュールは、第2プラットフォームノードアップグレードパッケージに基づいて第2プラットフォームノードをアップグレードするようにさらに構成される。
本発明の実施の第4態様は、
デプロイ予定のアプリケーションのデプロイメントパッケージを生成するように構成された生成モジュールであって、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、第1プラットフォームノードテンプレートの識別子と、デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述し、
生成モジュールは、アプリケーションデプロイメント要求を生成するとともに、アプリケーションデプロイメント要求を送信モジュールに送信するようにさらに構成され、アプリケーションデプロイメント要求は、デプロイ予定のアプリケーションのデプロイメントパッケージを含む、生成モジュールと、
生成モジュールによって送信されたアプリケーションデプロイメント要求を受信し、かつアプリケーションデプロイメント要求をアプリケーションデプロイメントサーバに送信するように構成された送信モジュールと
を備えるユーザ装置を提供する。
第4態様を参照して、第1の実施可能な方式において、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートを記述する関係テンプレートをさらに含み、かつアップグレード識別子は、関係テンプレートにおいて搬送され、または
デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートに対応するノードタイプ実装をさらに含み、かつアップグレード識別子は、ノードタイプ実装において搬送される。
第4態様または第1の実施可能な方式を参照して、第2の実施可能な方式において、デプロイ予定のアプリケーションのデプロイメントパッケージは、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子をさらに含む。
第4態様、第1の実施可能な方式、または第2の実施可能な方式を参照して、第3の実施可能な方式において、ユーザ装置は、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルに基づいて、デプロイされたアプリケーションの識別子によって示されるデプロイされたアプリケーションの第1プラットフォームノードテンプレートを決定するように構成された決定モジュールをさらに備え、第1プラットフォームノードテンプレートは、デプロイされたアプリケーションのノードテンプレートをソースノードテンプレートとして使用する。
本発明の実施の第5態様は、
デプロイ予定のアプリケーションのデプロイメントパッケージを含むアプリケーションデプロイメント要求を受信し、かつデプロイ予定のアプリケーションのデプロイメントパッケージをプロセッサに送信するように構成された受信機であって、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートの識別子と、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述している、受信機と、
受信機によって送信されたデプロイ予定のアプリケーションのデプロイメントパッケージを受信するとともに、アップグレード識別子に基づいて、デプロイ予定のアプリケーションのデプロイメントパッケージが、デプロイされたアプリケーションの識別子によって示されるデプロイされたアプリケーションのアップグレードパッケージであることを決定し、
デプロイされたアプリケーションの識別子に基づいて、第1プラットフォームノードの識別子であり、かつ第1プラットフォームノードテンプレートの識別子に対応する識別子を取得するとともに、第1プラットフォームノードの識別子によって示される第1プラットフォームノードのバージョンを取得し、
第1プラットフォームノードのバージョンに基づいて、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定し、
第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たす第1プラットフォームノードアップグレードパッケージを取得し、
第1プラットフォームノードアップグレードパッケージを使用することによって、第1プラットフォームノードテンプレートの識別子によって示される第1プラットフォームノードをアップグレードし、
アップグレード予定のアプリケーションノードの識別子を決定し、かつ
デプロイ予定のアプリケーションのデプロイメントパッケージを使用することによってアップグレード予定のアプリケーションノードの識別子によって示されるアプリケーションノードをアップグレードする
ように構成されたプロセッサと
を備えるアプリケーションデプロイメントサーバを提供する。
第5態様を参照して、第1の実施可能な方式において、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートを記述する関係テンプレートをさらに含み、かつアップグレード識別子は、関係テンプレートにおいて搬送され、または
デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートに対応するノードタイプ実装をさらに含み、かつアップグレード識別子は、ノードタイプ実装において搬送される。
第5態様または第1の実施可能な方式を参照して、第2の実施可能な方式において、プロセッサは特に、全アプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子を、アップグレード予定のアプリケーションノードの識別子として決定するように構成され、または
デプロイ予定のアプリケーションのデプロイメントパッケージは、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子をさらに含むとき、アップグレード予定のアプリケーションノードの識別子を決定することは特に、
少なくとも1つのデプロイされたアプリケーションノードの識別子であり、デプロイされたアプリケーションのノードテンプレートの識別子に対応し、かつアプリケーションデプロイメントパッケージに含まれる識別子を、アップグレード予定のアプリケーションノードの識別子として決定することである。
第5態様、第1の実施可能な方式、または第2の実施可能な方式を参照して、第3の実施可能な方式において、プロセッサは、
デプロイされたアプリケーションの識別子に基づいて、デプロイされたアプリケーションのデプロイメントパッケージの記憶された記述ファイルを取得し、
デプロイされたアプリケーションのデプロイメントパッケージの取得された記述ファイルに基づいて、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルが、第1プラットフォームノードテンプレートをソースノードテンプレートとして使用する第2プラットフォームノードテンプレートを記述していることを決定し、
第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件と、第2プラットフォームノードのバージョンとを取得し、
第2プラットフォームノードのバージョンが、第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件を下回っていると決定し、
第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件に基づいて、第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件を満たす第2プラットフォームノードアップグレードパッケージを取得し、かつ
第2プラットフォームノードアップグレードパッケージに基づいて第2プラットフォームノードをアップグレードするようにさらに構成される。
本発明の実施の第6態様は、
デプロイ予定のアプリケーションのデプロイメントパッケージを生成し、
デプロイ予定のアプリケーションのデプロイメントパッケージを含むアプリケーションデプロイメント要求を生成し、かつ
アプリケーションデプロイメント要求を送信機に送信する
ように構成されたプロセッサであって、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、第1プラットフォームノードテンプレートの識別子と、デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述している、プロセッサと、
プロセッサによって送信されたアプリケーションデプロイメント要求を受信し、かつアプリケーションデプロイメント要求を、アプリケーションデプロイメントサーバに
送信するように構成された送信機と
を備えるユーザ装置を提供する。
第6態様を参照して、第1の実施可能な方式において、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートを記述する関係テンプレートをさらに含み、かつアップグレード識別子は、関係テンプレートにおいて搬送され、または
デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートに対応するノードタイプ実装をさらに含み、かつアップグレード識別子は、ノードタイプ実装において搬送される。
第6態様または第1の実施可能な方式を参照して、第2の実施可能な方式において、デプロイ予定のアプリケーションのデプロイメントパッケージは、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子をさらに含む。
第6態様、第1の実施可能な方式、または第2の実施可能な方式を参照して、第3の実施可能な方式において、プロセッサは、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルに基づいて、デプロイされたアプリケーションの識別子によって示されるデプロイされたアプリケーションの第1プラットフォームノードテンプレートを決定するようにさらに構成され、第1プラットフォームノードテンプレートは、デプロイされたアプリケーションのノードテンプレートをソースノードテンプレートとして使用する。
デプロイ予定のアプリケーションのデプロイメントパッケージの中のアプリケーション記述ファイルは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を記述しているということを前述の解決策から理解できる。アプリケーションデプロイメントサーバは、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定するとき、アプリケーションデプロイメントサーバは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードアップグレードパッケージを取得する。その後、アプリケーションデプロイメントサーバは、取得された第1プラットフォームノードアップグレードパッケージに基づいて、第1プラットフォームノードをアップグレードする。このように、アップグレードされた第1プラットフォームノードのバージョンは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たし、それによって、アップグレードされたアプリケーションが正常に動作できることを保証する。
本発明の実施の技術的解決策をより明確に説明するために、以下に実施形態または従来技術を説明するために必要な添付図面を簡潔に説明する。当然ながら、以下の説明における添付図面は、本発明の単なる一部の実施形態を示しているに過ぎず、当業者は、創造的努力なしに、これらの添付図面からさらに他の図面を導き出すことができる。
本発明の実施形態における、アプリケーションアップグレード方法が基づくアプリケーションデプロイメント記述ファイルによって記述されるサービステンプレートの概略構造図である。 本発明の実施形態における、図1Aに対応するプランの概略構造図である。 本発明の実施形態における、アプリケーションアップグレード方法の概略フローチャートである。 本発明の実施形態における、アプリケーションアップグレード方法の概略フローチャートである。 本発明の実施形態における、アプリケーションアップグレード方法の概略フローチャートである。 アプリケーションデプロイメントパッケージAの記述およびアプリケーションデプロイメントパッケージBの記述に基づいて、アプリケーションデプロイメントサーバによって、本発明の実施形態におけるアプリケーションノードappのアップグレードを決定する概略図である。 本発明の実施形態における、アプリケーションデプロイメントサーバによって、デプロイされたアプリケーションノードをアップグレードする概略フローチャートである。 本発明の実施形態における、デプロイ予定のアプリケーションのデプロイメントパッケージの概略図である。 本発明の実施形態における、アプリケーションデプロイメントサーバの概略構造図である。 本発明の実施形態における、ユーザ装置の概略構造図である。 本発明の実施形態における、別のユーザ装置の概略構造図である。 本発明の実施形態における、別のアプリケーションデプロイメントサーバの概略構造図である。 本発明の実施形態における、さらに別のユーザ装置の概略構造図である。
以下に、本発明の実施形態における添付図面を参照しながら、本発明の実施形態の技術的解決策を明確かつ十分に説明する。当然ながら、説明される実施形態は、本発明の実施形態の全てではなく、単なる一部に過ぎない。当業者によって創造的な努力なしに本発明の実施形態に基づいて取得される他の全ての実施形態は、本発明の保護範囲であるものとする。
本発明の実施形態は、TOSCA規格に適用されうるアプリケーションアップグレード方法を提供し、または別の態様に適用されてもよく、TOSCA規格に限定されない。図1Aに示されるように、アプリケーションアップグレード方法は、以下を含む。
本発明の実施形態において、アプリケーションをデプロイするために必要な情報は、アプリケーションデプロイメントサーバ上のアプリケーションデプロイメントパッケージという名前のクラウドサービスアーカイブ(Cloud Service Archive, 略して、CSAR)に記述されている。アプリケーションデプロイメントパッケージは、steのファイル名拡張子を有する少なくとも1つのアプリケーションデプロイメント記述ファイルを含む。*.steアプリケーションデプロイメント記述ファイルは、アプリケーションのデプロイメント情報を記述するために、XML言語を使用してもよい。*.steアプリケーションデプロイメント記述ファイルのルート要素は、サービステンプレートである。すなわち、本発明の実施形態において、サービステンプレートは、デプロイされる必要があるアプリケーションについての情報を完全に記述するために使用されてもよい。*.steアプリケーションデプロイメント記述ファイルのサブ要素は、トポロジーテンプレートTopologyTemplateと、ノードタイプNodeTypeと、ノードテンプレートNodeTemplateと、関係タイプRelationshipTypeと、関係テンプレートRelationshipTemplateと、境界定義BoundaryDefinitions等を含む。アプリケーションデプロイメント記述ファイルにおけるルート要素とサブ要素との間の関係は、図1Aに示される。図1Aは、本発明の実施形態における、アプリケーションアップグレード方法が基づくアプリケーションデプロイメント記述ファイルによって記述されるサービステンプレートの概略構造図である。
図1Aに示されるように、本発明の実施形態において、TopologyTemplateは、アプリケーショントポロジーを描写するために使用される。アプリケーショントポロジーは、4つのノードa1、a2、a3、およびa4のためのノードテンプレートを含み、すなわち、各ノードテンプレートは、1つのアプリケーションデプロイメントの1つのノードを表す(すなわち、もしアプリケーションが複数回デプロイされる場合、各ノードテンプレートは、このタイプの複数のノードに対応する)。各ノードテンプレートの識別子は、アプリケーショントポロジーに提供される。各NodeTemplateのタイプは、NodeType(NodeTemplateに対応するNodeTypeを記述するNodeTemplateのタイプ属性)によって定義される。NodeTypeは、ノードの属性(Propertiesによって定義される)およびノードのインターフェース(インターフェースセットInterfacesによって定義される)等を定義する。NodeTemplateは、NodeTypeのインスタンスである。
各NodeTypeは、1つのノードタイプ実装(NodeType Implementation、略してNTI)に対応する。NTIは、NodeTypeに対応するノードのデプロイメントアーティファクトについての情報と、NodeTypeにおけるInterfaceに含まれる全方法のメソッドアーティファクトについての情報とを記述する。
アプリケーショントポロジー(TopologyTemplate)の中のノードに結合している各矢印線は、1つのRelationshipTemplateである。関係テンプレートは、アプリケーションノードテンプレートに対応する。
図1Bに示されるように、各アプリケーションデプロイメントパッケージは、プラン(Plan)をさらに含む。図1Bは、本発明の実施形態における図1Aに対応するプランの概略構造図である。プランは、実行可能なワークフローであり、かつ実際には、複数の参照方法を含むワークフローである。ワークフローを実行することは、実際には、ワークフローを形成する各方法に対応するメソッドアーティファクトを実行することである。プランが実行されるとき、アプリケーションデプロイメントサーバは、プランにおける定義に基づいて、順に各タスクに対応する方法に対応するメソッドアーティファクトを実行する。例えば、図1Bを参照すると、プランは、タスクc1、c2、およびc3を含んでいる。プランにおける定義によると、プランが実行されるとき、NodeTypeにおけるInterfaceに対応する方法であるタスクc1、タスクc2、およびタスクc3が、順に実行される。
また、各ServiceTemplateは、(BoundaryDefinitionsによって定義された)境界を含む。ServiceTemplate内で定義された幾つかの構成要素は、BoundaryDefinitionsにおいてユーザに提示される。構成要素は、前述のNodeTemplate、デプロイメントアーティファクト、およびメソッドアーティファクト等である。
前述の記載から理解できるように、1つのアプリケーションデプロイメントパッケージは、例えば、アプリケーションデプロイメント記述ファイル、プラン、ノードのデプロイメントアーティファクト、および各方法のメソッドアーティファクトのような、アプリケーションをデプロイするために必要な情報を含む。アプリケーションデプロイメント記述ファイルは、アプリケーションの完全なトポロジーと、トポロジーの中のノードのデプロイメントアーティファクトについての情報と、トポロジーの中のノードテンプレートにおける方法についての情報と、トポロジーの中のノードテンプレートのメソッドアーティファクトの情報およびステップとを記述している。
特に、ノードテンプレートと、ノードテンプレート間の論理的関係は、トポロジーに記述される。本発明の実施形態において、トポロジーの中のノードテンプレートは、アプリケーションノードテンプレートおよびプラットフォームノードテンプレートを含んでもよい。アプリケーションノードテンプレートは、ユーザ装置によってメンテナンスされかつ使用されるデプロイ予定のアプリケーションのノードを参照し、かつプラットフォームノードテンプレートは、サーバによって動作しかつメンテナンスされるデプロイ予定のアプリケーションのノードを参照する。
図2は、本発明の実施形態における、アプリケーションアップグレード方法の概略フローチャートである。この実施形態における方法は、アプリケーションデプロイメントサーバによって実行される。図2に示されるように、該方法は、以下のステップを含む。
ステップ201.デプロイ予定のアプリケーションのデプロイメントパッケージを含むアプリケーションデプロイメント要求を受信する。デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートの識別子と、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションのノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述している。
具体的には、デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、第1プラットフォームノードテンプレートの識別子と、デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションのノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とが、全てアプリケーション記述ファイルに記述される。第1プラットフォームノードテンプレートの識別子によって示されるプラットフォームノードテンプレートと、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるアプリケーションノードテンプレートとが、デプロイされたアプリケーションの識別子によって示されるアプリケーションデプロイメントパッケージの中の記述ファイルに記述される。
本発明の実施形態において、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションのノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子が、Patch Forによって表されてもよい。アップグレード識別子は、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションのノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子を参照する。デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートを記述する関係テンプレートをさらに含み、かつアップグレード識別子が、関係テンプレートにおいて搬送され、またはデプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートに対応するノードタイプ実装をさらに含み、かつアップグレード識別子は、ノードタイプ実装において搬送される。
なお、1つのデプロイされたアプリケーションは、複数のノードを含み、ノードは、例えば、データベースモジュールおよび管理モジュール等を含む課金アプリケーションのようなモジュールに相当する。アプリケーションが、デプロイされる必要があるとき、ユーザ装置は、デプロイ予定のアプリケーションのデプロイメントパッケージを生成し、かつアプリケーションデプロイメント要求を使用することによって、デプロイ予定のアプリケーションのデプロイメントパッケージをアプリケーションデプロイメントサーバに送信する。アプリケーションデプロイメントパッケージを受信した後、アプリケーションデプロイメントサーバは、アプリケーションデプロイメント記述ファイルと、デプロイメントアーティファクトと、メソッドアーティファクトと、アプリケーションデプロイメントパッケージのプランとに基づいて、アプリケーションデプロイメントを実行する。特に、アプリケーションデプロイメントは、初期デプロイメント、アップデート、またはアップグレード等を含む。本発明の実施形態において、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイされたアプリケーションをアップグレードするためのアップグレードパッケージであるとする。
特に、アプリケーションデプロイメントパッケージが受信される度に、アプリケーションデプロイメントサーバは、データベースに、アプリケーションデプロイメントパッケージの中の全アプリケーション記述情報を記録する。
ステップ202.アップグレード識別子に基づいて、デプロイ予定のアプリケーションのデプロイメントパッケージが、デプロイされたアプリケーションの識別子によって示されるデプロイされたアプリケーションのアップグレードパッケージであると決定する。
具体的には、アプリケーションデプロイメントサーバは、デプロイ予定のアプリケーションのノードテンプレートを記述する関係テンプレートに搬送されるアップグレード識別子に基づいて、または、デプロイ予定のアプリケーションのノードテンプレートに対応するノードタイプ実装に搬送されるアップグレード識別子に基づいて、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイされたアプリケーションのためのアップグレードパッケージであると決定する。
ステップ203.デプロイされたアプリケーションの識別子に基づいて、第1プラットフォームノードの識別子であり、かつ第1プラットフォームノードテンプレートの識別子に対応する識別子を取得し、かつ第1プラットフォームノードの識別子によって示される第1プラットフォームノードのバージョンを取得する。
具体的には、アプリケーションデプロイメントサーバは、デプロイされた各アプリケーションの各ノードのバージョンまたは能力を記憶する。アプリケーションデプロイメントサーバは、デプロイされたアプリケーションの各プラットフォームノードの記憶されたバージョン情報から、かつデプロイされたアプリケーションの識別子に基づいて、第1プラットフォームノードテンプレートの識別子に対応する第1プラットフォームノードのバージョンを取得する。さらに、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、第1プラットフォームノードの取得されたバージョンとに基づいて、アプリケーションデプロイメントサーバは、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定する。
第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っているとは、第1プラットフォームノードのバージョンのバージョン番号が、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件によって示されるバージョン番号未満であることを意味する。
ステップ204.第1プラットフォームノードのバージョンに基づいて、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定する。
ステップ205.第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たす第1プラットフォームノードアップグレードパッケージを取得する。
具体的には、アプリケーションデプロイメントサーバは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たす第1プラットフォームノードアップグレードパッケージを取得する。
ステップ206.第1プラットフォームノードアップグレードパッケージを使用することによって、第1プラットフォームノードの識別子により示される第1プラットフォームノードをアップグレードする。
任意に、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイされたアプリケーションノードの識別子を含まなくてもよい。アプリケーションデプロイメントパッケージは、デプロイされたアプリケーションノードの識別子を含まないとき、アプリケーションデプロイメントサーバは、デプロイされたアプリケーションの識別子に基づいて、全ての第1プラットフォームノードの識別子であり、かつ第1プラットフォームノードテンプレートの識別子に対応する識別子を取得してもよく、かつ各第1プラットフォームノードの識別子によって示される第1プラットフォームノードをアップグレードするために第1プラットフォームノードアップグレードパッケージを使用してもよい。
アップグレードプロセスは、従来技術におけるアップグレードプロセスと同一であり、詳細は、本発明において再度説明しない。
ステップ207.アップグレード予定のアプリケーションノードの識別子を決定する。
具体的には、アプリケーションデプロイメントサーバは、全アプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子を、アップグレード予定のアプリケーションノードの識別子として決定してもよい。
あるいは、デプロイ予定のアプリケーションのデプロイメントパッケージは、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子をさらに含むとき、アップグレード予定のアプリケーションノードの識別子を決定するステップは具体的には、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、デプロイされたアプリケーションのノードテンプレートの識別子に対応し、かつアプリケーションデプロイメントパッケージに含まれる識別子を、アップグレード予定のアプリケーションノードの識別子として決定するステップである。
ステップ208.デプロイ予定のアプリケーションのデプロイメントパッケージを使用することによって、アップグレード予定のアプリケーションノードの識別子により示されるアプリケーションノードをアップグレードする。
任意に、アプリケーションデプロイメントパッケージが、少なくとも1つのアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子を含むとき、アプリケーションデプロイメントサーバは、デプロイされたアプリケーションノードの識別子によって示されるアプリケーションノードをアップグレードするためにデプロイ予定のアプリケーションのデプロイメントパッケージを使用してもよい。
任意に、アップグレード予定のアプリケーションノードの識別子によって示されるアプリケーションノードをアップグレードするステップは具体的には、全てのデプロイされたアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子を取得し、かつデプロイ予定のアプリケーションのデプロイメントパッケージを使用することによってデプロイされる各アプリケーションノードの識別子によって示されるアプリケーションノードをアップグレードするステップである。
デプロイ予定のアプリケーションのデプロイメントパッケージは、アップグレードパッケージであるので、デプロイ予定のアプリケーションのデプロイメントパッケージのプラン(plan)は、アップグレードプランである。対応するアプリケーションノードは、アップグレードプランに基づいてアップグレードされてもよい。
従って、デプロイ予定のアプリケーションのデプロイメントパッケージの中のアプリケーション記述ファイルは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を記述している。アプリケーションデプロイメントサーバが、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定するとき、アプリケーションデプロイメントサーバは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて第1プラットフォームノードアップグレードパッケージを取得する。その後、アプリケーションデプロイメントサーバは、取得された第1プラットフォームノードアップグレードパッケージに基づいて第1プラットフォームノードをアップグレードする。このように、アップグレードされた第1プラットフォームノードのバージョンは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たし、それによって、アップグレードされたアプリケーションが正常に動作できることを保証する。
ステップ206の前に、デプロイされたアプリケーションのデプロイメントパッケージの記憶された記述ファイルが、デプロイされたアプリケーションの識別子に基づいて取得され、デプロイされたアプリケーションのデプロイメントパッケージの取得された記述ファイルに基づいて、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルが、第1プラットフォームノードテンプレートをソースノードテンプレートとして使用する第2プラットフォームノードテンプレートを記述していることが決定され、第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件と、第2プラットフォームノードのバージョンとが取得され、かつ第2プラットフォームノードのバージョンが、第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件を下回っていると決定される。第1プラットフォームノードアップグレードパッケージを使用することによって第1プラットフォームノードをアップグレードする前に、方法は、第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件に基づいて、第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件を満たす第2プラットフォームノードアップグレードパッケージを取得するステップと、第2プラットフォームノードアップグレードパッケージに基づいて第2プラットフォームノードをアップグレードするステップとをさらに含む。
さらに、第2プラットフォームノードのバージョンを取得するステップは、具体的には、第2プラットフォームノードテンプレートの識別子と、第1プラットフォームノードの識別子とに基づいて第2プラットフォームノードの識別子を取得するステップであって、第2プラットフォームノードの識別子は、第2プラットフォームノードテンプレートの識別子に対応し、かつデプロイメント番号は、第1プラットフォームノードの識別子に対応する番号と同一である。
さらに、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルが、第1プラットフォームノードテンプレートをソースノードテンプレートとして使用する第2プラットフォームノードテンプレートを記述していると決定した後、アプリケーションデプロイメントサーバは、第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件と、第2プラットフォームノードのバージョンとを取得する。
本発明の実施形態は、アプリケーションアップグレード方法を提供する。該方法は、ユーザ装置によって実行されてもよい。図3に示されるように、該方法は以下のステップを含む。
ステップ301.デプロイ予定のアプリケーションのデプロイメントパッケージを生成する。デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートと、第1プラットフォームノードテンプレートの識別子と、デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションのノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述している。
デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートを記述する関係テンプレートをさらに含み、かつ、アップグレード識別子は、デプロイ予定のアプリケーションのノードテンプレートを記述する関係テンプレートにおいて搬送され、またはデプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートに対応するノードタイプ実装をさらに含み、かつアップグレード識別子は、ノードタイプ実装において搬送される。アップグレード識別子は、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションのノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子である。
ステップ302.デプロイ予定のアプリケーションのデプロイメントパッケージを含むアプリケーションデプロイメント要求を生成する。
ステップ303.アプリケーションデプロイメント要求をアプリケーションデプロイメントサーバに送信する。
前述の解決策から理解できるように、デプロイ予定のアプリケーションのデプロイメントパッケージの中のアプリケーション記述ファイルは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を記述している。従って、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定するとき、アプリケーションデプロイメントサーバは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードアップグレードパッケージを取得してもよい。その後、アプリケーションデプロイメントサーバは、取得された第1プラットフォームノードアップグレードパッケージに基づいて、第1プラットフォームノードをアップグレードする。このように、アップグレードされた第1プラットフォームノードのバージョンは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たし、それによって、アップグレードされたアプリケーションが正常に動作できることを保証する。具体的に、デプロイ予定のアプリケーションのデプロイメントパッケージを受信した後、アプリケーションデプロイメントサーバが、図2に記載されたアプリケーションデプロイメントサーバによって実行される動作を実行してもよい。詳細は、本発明の実施形態において再度説明されない。
また、アプリケーションデプロイメントサーバが、デプロイ予定のアプリケーションのデプロイメントパッケージを使用し、デプロイされたアプリケーションノードの識別子によって示されるアプリケーションノードをアップグレードするために、デプロイ予定のアプリケーションのデプロイメントパッケージは、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子をさらに含んでもよい。
特に、ステップ301の前に、方法は、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルに基づいて、デプロイされたアプリケーションの識別子によって示されるデプロイされたアプリケーションの第1プラットフォームノードテンプレートを決定するステップをさらに含んでもよく、第1プラットフォームノードテンプレートは、デプロイされたアプリケーションのノードテンプレートをソースノードテンプレートとして使用する。
このように、デプロイ予定のアプリケーションのデプロイメントパッケージの中のアプリケーション記述ファイルは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を記述している。アプリケーションデプロイメントサーバが、第1プラットフォームノードのバージョンが第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定するとき、アプリケーションデプロイメントサーバは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードアップグレードパッケージを取得する。その後、アプリケーションデプロイメントサーバは、取得された第1プラットフォームノードアップグレードパッケージに基づいて、第1プラットフォームノードをアップグレードする。このように、アップグレードされた第1プラットフォームノードのバージョンは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たし、それによって、アップグレードされたアプリケーションが正常に動作できることを保証する。
本発明の実施形態は、アプリケーションアップグレード方法を提供する。アプリケーションアップグレード方法は、TOSCA規格に適用されるとする。図4に示されるように、アプリケーションアップグレード方法は、以下のステップを含む。
ステップ401.アプリケーションデプロイメントサーバは、アプリケーションデプロイメントパッケージに基づいてデプロイメントを実行する。
アプリケーションデプロイメントパッケージに基づいてデプロイメントを実行するプロセスは、従来技術におけるものと同一である。本発明の実施形態において、ユーザ装置によってアプリケーションデプロイメントサーバに提示されるアプリケーションデプロイメントパッケージは、アプリケーションデプロイメントパッケージBであり、かつアプリケーションデプロイメントパッケージBの識別子(すなわち、アプリケーションの識別子)は、appBであるとする。アプリケーションデプロイメントパッケージの中の記述ファイルは、ノードテンプレートappと、ノードテンプレートapacheと、ノードテンプレートjava(登録商標、以下同じ)Moduleと、ノードテンプレートapacheにのためのノードテンプレートappのデプロイメント要件(例えば、バージョン要件)を記述する関係テンプレートと、ノードテンプレートjavaModuleのためのノードテンプレートapacheのデプロイメント要件を記述する関係テンプレートとを記述している。ノードテンプレートappは、アプリケーションデプロイメントパッケージBを使用することによってデプロイされたアプリケーションのノードテンプレートであり、かつユーザ装置がリソースを提供する責任がある。すなわち、アプリケーションデプロイメントパッケージBは、ノードテンプレートappのためのデプロイメントアーティファクトおよびメソッドアーティファクト等を含む。ノードテンプレートapacheおよびノードテンプレートjavaModuleは、プラットフォームノードテンプレートであり、かつCSPサーバが、リソースを提供する責任があり、かつ提供されたリソースが、アプリケーションデプロイメントパッケージの中の全てのデプロイメント要件を満たすことを保証する。アプリケーションデプロイメントサーバが、アプリケーションデプロイメントパッケージBに基づいて、アプリケーションを正常にデプロイしかつ実行するとすると、表1に示されるように、前述の2つの関係テンプレートにおけるコンテンツを、データベースの中にあって、かつアプリケーションデプロイメントサーバによってメンテナンスされるアプリケーション情報テーブルに書き込む。本発明の実施形態において、正常にデプロイされ、かつ実行されるアプリケーションappBは、デプロイされたアプリケーションと呼ぶ。
Figure 0006164440
ステップ402.ユーザ装置は、デプロイ予定のアプリケーションのデプロイメントパッケージを生成する。デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイされたアプリケーション(appB)のためのアップグレードパッケージである。
デプロイされたアプリケーションのためのアップグレードパッケージ(すなわち、デプロイ予定のアプリケーションのデプロイメントパッケージ)が、アプリケーションデプロイメントパッケージAであるとする。アプリケーションデプロイメントパッケージAは、アプリケーションノードテンプレートapp(すなわち、デプロイされたアプリケーションのノードテンプレートの識別子)に対応するアプリケーションノードをアップグレードするために使用されうる。具体的には、アプリケーションデプロイメントパッケージappAを受信した後、アプリケーションデプロイメントサーバは、appAに基づいてアプリケーションをデプロイし、かつ例えばappAにおけるノードテンプレートのためのアプリケーションノードおよびプラットフォームノードのようなノードを生成し、その結果、ノードテンプレートは、正常にデプロイされ、かつ実行されるノードに対応する。
アプリケーションデプロイメントパッケージAの記述ファイルは、デプロイ予定のアプリケーションのノードテンプレートappPatchを記述しており、かつデプロイ予定のアプリケーションのノードテンプレートappPatchを記述する関係テンプレートにおけるデプロイされたアプリケーションのノードテンプレートappのアップグレード識別子を記述している。さらに、アップグレード識別子は、デプロイ予定のアプリケーションのノードテンプレートappPatchに対応するNTIに記述されてもよい。
また、アプリケーションデプロイメントパッケージAを生成する前に、ユーザ装置は、appBの記述ファイルに基づいて、アプリケーションノードテンプレートappがソースノードテンプレートとして使用され、かつプラットフォームノードテンプレートがデプロイ予定のアプリケーションノードのノードテンプレートappを記述する関係テンプレートにおける宛先プラットフォームノードテンプレートとして使用されることをさらに決定する必要がある。例えば、appBの記述ファイルにおける関係テンプレートに記述されたコンテンツを分析することによって、アプリケーションノードテンプレートappが、ソースノードテンプレートとして使用され、かつプラットフォームノードテンプレートapacheが、宛先ノードテンプレートとして使用されると理解される。従って、ユーザ装置は、アプリケーションデプロイメントパッケージAの記述ファイルにおいて、デプロイされたアプリケーションのプラットフォームノードテンプレートapacheのためのデプロイ予定のアプリケーションのノードテンプレートappPatchのバージョン要件を記述している。具体的には、バージョン要件のコンテンツは、アプリケーションノードのアップグレードのコンテンツに基づいて、ユーザ装置によって決定される。例えば、プラットフォームノードテンプレートapacheが、Servlet 3.0をサポートする必要があり、かつ従って、プラットフォームノードapacheは、Tomcat 7.0にアップグレードされる必要がある。バージョン要件は、アプリケーションノードテンプレートappに対応するアプリケーションノードがappAを使用してアップグレードされた後、アプリケーションノードテンプレートappに対応するアップグレードされたアプリケーションノードが、プラットフォームノードテンプレートapacheに対応するプラットフォームノードがServlet 3.0をサポートする(すなわち、プラットフォームノードがTomcat 7.0にアップグレードされる必要がある)ときにのみ、正常に動作できることを示す。
具体的には、ユーザ装置によって、appBの記述ファイルを取得する方法は、ユーザ装置によって記憶されたファイルからappBの記述ファイルを取得するステップ、または要求をアプリケーションデプロイメントサーバに送信することによってappBの記述ファイルを取得するステップであってもよい。
アプリケーションデプロイメントパッケージAは、アプリケーションノードテンプレートappPatchのデプロイメントアーティファクトおよびメソッドアーティファクトをさらに提供し、メソッドアーティファクトはpatchAppである。本発明の実施形態において、説明を容易にするために、デプロイされたアプリケーションのプラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートappPatchのバージョン要件におけるプラットフォームノードテンプレートは、第1プラットフォームノードテンプレートと呼ばれ、かつ別のプラットフォームノードテンプレートのための第1プラットフォームノードテンプレートのバージョン要件における別のプラットフォームノードテンプレートは、第2プラットフォームノードテンプレートと呼ぶ。具体的には、バージョン要件は、バージョン要件であってよく、かつバージョン要件は、バージョンが提供する特定のバージョン番号または能力であってよい。
アプリケーションデプロイメントパッケージAのアプリケーション識別子は、appAであり、かつアプリケーションノードテンプレートの識別子は、appPatchである。図5は、アプリケーションデプロイメントパッケージAの記述と、アプリケーションデプロイメントパッケージBの記述とに基づいて、アプリケーションデプロイメントサーバによって、本発明の実施形態におけるアプリケーションノードappのアップグレードを決定する概略図である。図5に示されるように、アプリケーションデプロイメントパッケージAの記述ファイルにより、アプリケーションデプロイメントパッケージAに記述されたアプリケーションノードテンプレートappPatchは、デプロイされたアプリケーションのデプロイメントパッケージBに記述されたアプリケーションノードテンプレートappのためのアップグレードノードであると理解されてもよい。例えば、PatchForフィールドは、2つのノードテンプレート間の関係の識別子(例えばアップグレード識別子など)を記述するために使用される。当然ながら、アップグレード識別子は、別のフィールドを使用することによって記述されてもよく、本発明の実施形態において限定されない。さらに、アプリケーションデプロイメントパッケージAは、デプロイされたアプリケーションのデプロイメントパッケージBに記述されたプラットフォームノードテンプレートapacheのためのアプリケーションノードテンプレートappPatchのバージョン要件をさらに記述し、バージョン要件は、RequirementForApache(Apacheは、プラットフォームノードテンプレートである)の形式で表現される。PatchForAppは、アプリケーションデプロイメントパッケージAにおけるappPatchノードテンプレートは、appアプリケーションノードテンプレートのアップグレードのために使用されることを示す。RequirementForApacheは、プラットフォームノードテンプレートapacheのためのアプリケーションノードテンプレートappPatchのバージョン要件を記述している。アプリケーションデプロイメントパッケージBは、デプロイされたアプリケーションのデプロイメントパッケージであり、かつappAは、アプリケーションノードテンプレートappのアップグレードのためである。従って、appAにおいて、アプリケーションデプロイメントパッケージBのアプリケーション記述ファイルappB.toscaに記述された幾つかの要素が、呼び出される必要がある。appBの記述ファイルは、appAの記述ファイルにインポートされる必要がある。例えば、appB.toscaファイルのURL(UniformResourceLocator,)は、場所属性を使用することによって提供されてもよい。特定の呼出しプログラムは、以下の通りである。
<Import namespace="appB:http://www.example.com/ste/Topology"
location=http://www.example.com/ste/appB.tosca
importType=" http://docs.oasis-open.org/tosca/ns/2011/12"/>
例えば、appA.toscaのTopologyTemplate要素において、図5に示されるアプリケーショントポロジー構造の記述が提供され、かつ具体的には、以下の通りであってもよい。
<TopologyTemplate>
<NodeTemplate identifier="appPatch" type="apppatchtype">
<Requirements>
<Requirement name=" requirementOfApp" //appPatchのバージョン要件が提供される。
type=" webAppContainerRequirement"/>
</Requirements>
<DeploymentArtifacts>
<DeploymentArtifact name="DaOfAppPatch" artifactType="Patch">
//デプロイメントアーティファクトタイプは、Patchである。
……//デプロイメントアーティファクトの具体的な記述
</DeploymentArtifact>
</ DeploymentArtifacts >
</NodeTemplate>
<RelationshipTemplate identifier="PatchForApp" type="PatchFor"> //論理的関係は、PatchForである。
<SourceElement ref="appPatch"/> //論理的関係におけるソースはappPatchである。
<TargetElement externalref="appB:app"/> //論理的関係におけるターゲットは、appである。
</RelationshipTemplate>
<RelationshipTemplate identifier="RequirementForApache" > //要件関係
<SourceElement ref="requirementOfAppPatch"/> //要件関係におけるソースappPatchのバージョン要件
<TargetElement externalref="appB:capabilityOfApache"/> //要件関係におけるターゲットapacheのデプロイメント能力
</RelationshipTemplate>
……//別の定義
<Plans>
<Plan identifier="upgrade" planType="http://www.example.com/UpgradePlan" >//Upgrade plan
……//別の管理プラン
</Plan>
</TopologyTemplate>
具体的には、アプリケーションデプロイメントパッケージAは、トポロジーテンプレートTopologyTemplateにおいて、アプリケーションノードテンプレートappPatchを定義するために、ノードテンプレートNodeTemplate要素を使用し、ノードテンプレート要素におけるバージョン要件requirementOfAppおよびデプロイメントアーティファクトDaOfAppPatchを特定する。関係テンプレートにおけるPatchForAppは、例えばPatchForのような関係のアップグレード識別子が、アプリケーションデプロイメントパッケージBにおけるappPatchアプリケーションノードテンプレートおよびappアプリケーションノードテンプレートに存在することを特定するために使用される。アップグレード識別子PatchForAppにおいて、SourceElementは、ソースアプリケーションノードテンプレートの識別子appPatch(デプロイ予定のアプリケーションのノードテンプレートの識別子)を特定するために使用され、かつTargetElementは、識別子appB、すなわち、ターゲットアプリケーションノードテンプレートのapp(デプロイされたアプリケーションのノードテンプレートの識別子)を特定するために使用される。TargetElementの記述において、属性"externalref"は、アプリケーションノードテンプレートappが、外部アプリケーション記述ファイルにおいて定義されることを特定し、かつプレフィックス"appB"および"Import"要素は、外部アプリケーション記述ファイルが、appB.toscaであることを特定するために使用される。また、関係テンプレートRelationshipTemplateのRequirementForApacheは、アプリケーションデプロイメントパッケージBにおけるApacheのためのappPatchアプリケーションノードテンプレートのバージョン要件を定義している。要件関係RequirementForApacheにおいて、SourceElementは、ソースバージョン要件requirementOfAppPatchを定義するために使用され、かつTargetElementは、ターゲットデプロイメント能力appB、すなわちcapabili
tyOfApacheを定義するために使用される。TargetElementの記述において、属性"externalref"は、デプロイメント能力capabilityOfApacheが、外部アプリケーション記述ファイルに定義されることを特定し、かつプレフィックス"appB"および"Import"要素は、外部アプリケーション記述ファイルが、appB.toscaであることを特定するために使用される。トポロジーにおいて、アップグレードプランupgradeもまた定義され、かつアップグレードプランのタイプは、http://www.example.com/UpgradePlanである。
アプリケーションノードテンプレートappPatchのノードタイプNodeTypeは、以下のように記述される。
<NodeType name="apppatchtype">
<Interfaces>
<Interface name="patchAppInterface">
<OperationName="patchApp"/> //メソッドpatchAppを定義する。
</Interface>
</Interfaces>
<RequirementDefinitions> //ノードappPatchのバージョン要件の定義
<RequirementDefinition name="requirementOfAppPatch"
requirementType="webAppContainerRequirement">
<Constraints>
<Constraint constraintType= "http://www.example.com/
PropertyConstraints/supportServlet3"/>
</Constraints>
</RequirementDefinition>
</RequirementDefinitions>
</NodeType>
このNodeTypeにおいて、アプリケーションノードテンプレートappPatchのメソッドアーティファクトpatchAppの定義と、バージョン要件requirementOfAppPatchの定義が提供される。メソッドアーティファクトpatchAppは、アプリケーションデプロイメントサーバがアップグレードプランを実装するときに呼び出される。バージョン要件requirementOfAppPatchにおける制約Constraintフィールドについて、Constraintフィールドの属性制約タイプconstraintTypeの値は、http://www.example.com/PropertyConstraints/supportServlet3であり、アプリケーションデプロイメントサーバが、前述の値に基づいてデータベースを探索する必要があることを示しており、どのソフトウェアバージョンが、supportServlet3の能力を含むかを見出す。
なお、アプリケーションデプロイメントパッケージAの記述ファイルは、例えばデプロイされたアプリケーションノードのapp1のような識別子をさらに含んでもよい。デプロイされたアプリケーションノードの識別子は、アップグレードされる必要があるアプリケーションノードの識別子である。例えば、アップグレード予定のアプリケーションノードテンプレートのappのような識別子は、前述のapptchForのようなアップグレード識別子によって特定されてもよい。もし、アプリケーションデプロイメントパッケージAの記述ファイルが、デプロイされたアプリケーションノードの識別子を独立して示さず、かつデプロイされたアプリケーションのノードテンプレートのappのような識別子のみがアップグレード識別子に示される場合、次いで、アプリケーションアップグレードを実行するとき、アプリケーションデプロイメントサーバが、デプロイされたアプリケーションのノードテンプレートの識別子appに対応する全アプリケーションノードをアップグレードする。例えば、もし、appBがまず南京にデプロイされ、かつ次いで、上海にデプロイされる場合、デプロイされたアプリケーションのノードテンプレートの識別子に対応するアプリケーションノードは、南京におけるアプリケーションノードapp1および上海におけるアプリケーションノードapp2である。数は、アプリケーションがデプロイされる度に生成される。例えば、appBが南京にデプロイされるとき、appBが初めてデプロイされるときにapp1が生成されることを示す数1が生成され、appBが上海にデプロイされるとき、appBが二度目にデプロイされるときにapp2が生成されることを示す数2が生成される。その数は、ノードが同一のデプロイメントに生成されることを決定するために使用されてもよい。デプロイ予定のアプリケーションのデプロイメントパッケージが、デプロイされたアプリケーションノードの識別子を含むとき、デプロイメントパッケージappAにおけるプランは、以下の通りであってもよい。
<Plan identifier="upgrade" planType="http://www.example.com/UpgradePlan" >
<InputParameters>
<InputParameter name="appInstance identifier" type="string">app1</InputParameter >
<InputParameter name="stopPlan identifier" type="string">stop</ InputParameter >
<InputParameter name="startPlan identifier" type="string" >start</ InputParameter >
</InputParameters>
<PlanModel>
invokePlan(appInstance identifier, stopplan identifier);
patchApp(appInstance identifier);
invokePlan(appInstance identifier, startPlan identifier);
</PlanModel>
</Plan>
本明細書において、入力パラメータが最初に定義される。入力パラメータ"appInstance identifier"は、デプロイされたアプリケーションノードの識別子がapp1であることを特定する。インターフェースinvokePlanは、ユーザ装置に対してアプリケーションデプロイメントサーバによって提供されるAPIである。ユーザ装置は、アプリケーションデプロイメントパッケージAにおいて定義された管理プランにアクセスするためにAPIを呼び出してもよい。APIは、2つのパラメータを有し、第1パラメータは、デプロイされたアプリケーションノードの識別子であり、かつ第2パラメータは、呼び出される必要があるプランの識別子である。プランの各ステップは、プランモデルPlanModel要素において提供される。
アプリケーションデプロイメントパッケージAが、デプロイされたアプリケーションノードの識別子を特定しないとき、アップグレードプランは、以下の通りである。
<Plan identifier="upgrade" planType="http://www.example.com/UpgradePlan" >
<InputParameters>
<InputParameter name="stopPlan identifier" type="string">stop</ InputParameter >
<InputParameter name="startPlan identifier" type="string" >start</ InputParameter >
</InputParameters>
<PlanModel>
appB: stopplan//Defined in appB.tosca
patchApp;
appB: startplan//Defined in appB.tosca
</PlanModel>
</Plan>
デプロイされたアプリケーションノードの識別子は、本明細書において特定されない。従って、アプリケーションデプロイメントサーバは、デプロイされたアプリケーションのノードテンプレートの識別子appを取得し、アプリケーション識別子appBに基づいて、全てのデプロイされたアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子appに対応する識別子(例えばapp1およびapp2)を見出し、かつデプロイされたアプリケーションのノードテンプレートの識別子appに対応する全てのデプロイされたアプリケーションノードをアップグレードする。ユーザ装置は、appB.toscaに定義されたプランを呼び出すための"appB: plan"を直接的に実行し、アップグレードを生成する。
前述のプログラムは、アプリケーションデプロイメントサーバに、デプロイされたアプリケーションの識別子が"appB"であり、かつデプロイされたアプリケーションのノードテンプレートの識別子"app"に対応するアプリケーションノードがアップグレードされる必要があることを学習させてもよい。
ステップ403.ユーザ装置は、アプリケーションデプロイメントパッケージAを含むアプリケーションデプロイメント要求を生成する。
ステップ404.アプリケーションデプロイメントサーバは、アプリケーションデプロイメント要求を受信する。
ステップ405.アプリケーションデプロイメントサーバは、デプロイメントパッケージが、デプロイされたアプリケーション(appB)のためのアップグレードパッケージであることを決定する。
具体的には、デプロイ予定のアプリケーションのデプロイメントパッケージの記述ファイルは、デプロイ予定のアプリケーションのノードテンプレートと、第1プラットフォームノードテンプレートの識別子と、デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、デプロイ予定のアプリケーションのノードテンプレートがデプロイされたアプリケーションのノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述してもよい。
アプリケーションデプロイメントサーバは、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションのノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子に基づいて、デプロイメントパッケージが、デプロイされたアプリケーションのためのアップグレードパッケージであることを決定する。
例えば、アプリケーションデプロイメントサーバは、アプリケーションデプロイメントパッケージAのデプロイメント記述ファイルappA.toscaを確認し、かつ記述ファイルappA.toscaが、アップグレード識別子"PatchFor"および/またはソースアプリケーションノードテンプレートappPatch(すなわち、デプロイ予定のアプリケーションのノードテンプレート)のデプロイメントアーティファクトタイプ"Patch"を含んでいることを見出す。アプリケーションデプロイメントサーバは、PatchForの関係タイプを識別してもよく、またはデプロイメントアーティファクトタイプが"Patch"であることを識別してもよく、かつ従って、アプリケーションデプロイメントパッケージAがアップグレードパッケージであると決定してもよい。また、アプリケーションデプロイメントサーバはさらに、アップグレードプランupgradeを確認し、アップグレードプランのタイプが、http://www.example.com/UpgradePlanであることを見出し、そのプランがアップグレードのために使用されるプランであることを決定し、かつ従って、アプリケーションデプロイメントパッケージAがアップグレードパッケージであることを決定してもよい。
ステップ406.アプリケーションデプロイメントサーバは、デプロイ予定のアプリケーションのデプロイメントパッケージに基づいて、デプロイされたアプリケーションノードをアップグレードする。
図6に示されるように、アプリケーションデプロイメントサーバによって、デプロイされたアプリケーションノードをアップグレードする特定のステップは以下の通りである。
ステップ4061.第1プラットフォームノードの識別子を取得する。ステップ4062を実行する。
デプロイ予定のアプリケーションのデプロイメントパッケージAを受信した後、記述ファイルのURLであり、かつアプリケーションデプロイメントパッケージAの記述ファイルの中の"Import"要素に含まれるURLに基づいて、アプリケーションデプロイメントサーバは、アプリケーションデプロイメントサーバによって記憶されたデプロイメントパッケージ情報テーブルから、記述ファイルの場所File://ste/appB.toscaを見出す。次いで、アプリケーションデプロイメントサーバは、記述ファイルの場所File://ste/appB.toscaに基づいて、アプリケーションデプロイメントパッケージBの記述ファイルを取得する。デプロイメントパッケージ情報テーブルは、表2に示される。
Figure 0006164440
図7に示されるように、appB.toscaのトポロジー記述において、デプロイされたアプリケーションのノードテンプレートappと、プラットフォームノードテンプレートapacheおよびjavaModuleと、これらのノードテンプレート間の関係とが、定義される。トポロジー記述における主要情報の定義を以下に提供する。
<TopologyTemplate>
<NodeTemplate identifier="app" type="apptype" >
<Requirement name=" requirementOfApp"
type=" webAppContainerRequirement"/>
// appのバージョン要件が提供される。
</NodeTemplate>

<NodeTemplate identifier="apache" type="appcontainertype">
<Capability name="capabilityOfApache"
type="webAppContainerCapability"/>
//apacheのデプロイメント能力が提供される。
<Requirement name=" requirementOfApache"
type=" JMRequirement"/>//apacheのバージョン要件が提供される。
<DeploymentArtifacts> //apacheのデプロイメントアーティファクト情報が提供される。
<DeploymentArtifact name="DaOfApache"
artifactType="appContainer">
……//デプロイメントアーティファクトの具体的な記述が提供される。
</DeploymentArtifact>
</ DeploymentArtifacts >
</NodeTemplate>
<NodeTemplate identifier="javaModule" type="javamoduletype">
//javaModuleのデプロイメント能力が提供される。
<Capability name="capabilityOfJM" type="JMCapability"/>
</NodeTemplate>
<RelationshipTemplate identifier="RequirementForApache" > //要件関係
<SourceElement ref="requirementOfApp"/> //要件関係におけるソースappのバージョン要件
<TargetElement ref="capabilityOfApache"/> //要件関係におけるターゲットapacheのデプロイメント能力
</RelationshipTemplate>
<RelationshipTemplate identifier="RequirementForJM" > //要件関係
<SourceElement ref="requirementOfApache"/> //要件関係におけるソースapacheのバージョン要件
<TargetElement ref="capabilityOfJM"/> //要件関係におけるターゲットjavaModuleのデプロイメント能力
</RelationshipTemplate>
……//別の定義
<Plans>
<Plan identifier="start" planType="http://www.example.com/StartPlan"/> //管理プラン開始が定義される。
<Plan identifier="stop" planType="http://www.example.com/StopPlan"/> //管理プラン停止が定義される。
……//別の管理プラン
</Plans>
</TopologyTemplate>
プラットフォームノードテンプレートapacheの定義は、デプロイメント能力capabilityOfApacheを記述している。デプロイメント能力の定義は、apacheのNodeTypeの能力定義CapabilityDefinition要素に含まれる。プラットフォームノードテンプレートapacheにおいて、デプロイメントアーティファクトDaOfApacheの記述もまた提供される。プラットフォームノードテンプレートjavaModuleの定義は、デプロイメント能力capabilityOfJMを記述している。デプロイメント能力の定義は、javaModuleのNodeTypeのCapabilityDefinitionに含まれる。トポロジー記述には、開始および停止管理プランもまた記述される。この実施形態において、デプロイメント能力は、例えば、バージョンが提供する能力、またはサポートされるバージョンのような、プラットフォームノードテンプレートのバージョン要件である。
例えば、プラットフォームノードテンプレートapacheのNodeTypeは、以下のように記述される。
<NodeType name="appcontainertype">
<CapabilityDefinitions> // apacheノードのデプロイメント能力の定義
<CapabilityDefinition name="capabilityOfApache"
capabilityType="webAppContainerCapability">
<Constraints>
<Constraint constraintType= "http://www.example.com/
PropertyConstraints/supportServlet2"/>
</Constraints>
</CapabilityDefinition>
</CapabilityDefinitions>
</NodeType>
デプロイメント能力capabilityOfApacheの定義は、apacheのNodeTypeに提供される。制約Constraintは、その定義において提供され、かつConstraintの属性値constraintTypeは、"supportServlet 2.0"の能力を示す。
アプリケーションデプロイメントサーバは、まず、アプリケーションデプロイメントパッケージappAが、デプロイされたアプリケーションノードの識別子"app1"を含んでいるか否かを判定してもよい。デプロイされたアプリケーションノードの識別子"app1"は、アップグレードされる必要があるアプリケーションノードを示すために使用される。もしデプロイされたアプリケーションのデプロイメントパッケージが、デプロイされたアプリケーションノードの識別子を含んでいる場合、アプリケーションデプロイメントサーバは、データベースから、デプロイされたアプリケーションノードの識別子によって示されるデプロイされたアプリケーションノードを取得し、デプロイ予定のアプリケーションのデプロイメントパッケージに基づいて、デプロイされたアプリケーションノードの識別子によって示されるアプリケーションノードをアップグレードする。例えば、アプリケーションデプロイメント要求におけるプランが、デプロイされたアプリケーションノードの識別子が"app1"であることを記述しているとすると、アプリケーションデプロイメントサーバは、デプロイされたアプリケーションノードの識別子app1のためのアプリケーションデプロイメントサーバによって記憶されたデプロイメントアプリケーション情報テーブルを探索する。
もし、デプロイ予定のアプリケーションのデプロイメントパッケージが、デプロイされたアプリケーションノードの識別子"app1"を含まない場合、アプリケーションデプロイメントサーバは、デプロイされたアプリケーションのノードテンプレートの識別子に基づいて、全てのデプロイされたアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子を取得し、かつ各デプロイされたアプリケーションノードの識別子によって示されるアプリケーションノードをアップグレードするために、デプロイ予定のアプリケーションのデプロイメントパッケージを使用する。さらに、各アプリケーションノードをアップグレードする前に、アプリケーションデプロイメントサーバは、バージョンが第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っている第1プラットフォームノードの識別子を決定し、かつ第1プラットフォームノードの識別子によって示される第1プラットフォームノードをアップグレードするために、第1プラットフォームノードアップグレードパッケージを使用する。
なお、同一のアプリケーションが、複数回デプロイされてもよく、かつ従って、1つのアプリケーションノードテンプレートの識別子が複数のアプリケーションノードの識別子に対応してもよい。デプロイ予定のアプリケーションのデプロイメントパッケージが、アプリケーションノードの識別子を特定しないとき、アプリケーションデプロイメントサーバは、アプリケーションデプロイメント要求におけるデプロイされたアプリケーションのノードテンプレートの識別子に対応する全アプリケーションノードをアップグレードすることを決定する。アプリケーションデプロイメントサーバが、デプロイされたアプリケーションのノードテンプレートの識別子に基づいて、アップグレード予定のアプリケーションノードの識別子を決定することは、具体的には、全アプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子を、アップグレード予定のアプリケーションノードの識別子として決定することである。従って、全アプリケーションノードの識別子は、取得される必要がある。例えば、デプロイされたアプリケーションのノードテンプレートの識別子がappであるとすると、アプリケーションデプロイメントサーバは、全アプリケーションノードの識別子であり、かつアプリケーションノードテンプレートappに対応する識別子を求めて、appに基づいて、デプロイメントアプリケーション情報テーブルを探索し、かつアプリケーションノードの識別子が{app1, app2}であることを取得してもよい。アプリケーションデプロイメントサーバは、アプリケーションノードapp1およびapp2のそれぞれをアップグレードする。また、アプリケーションデプロイメント要求は、デプロイされたアプリケーションの識別子(1つの任意の方法では、デプロイされたアプリケーションの識別子は、デプロイされたアプリケーションのデプロイメントパッケージの識別子、またはアプリケーション記述ファイルのURL、またはアプリケーション記述ファイルの場所であってもよい)をさらに含んでもよい。アプリケーションデプロイメントサーバが、全アプリケーションノードの識別子であり、かつアプリケーションノードテンプレートappに対応する識別子を求めて、アプリケーションノードテンプレートの識別子appに基づいて、デプロイメントアプリケーション情報テーブルを探索することは、具体的には、アプリケーションデプロイメントサーバが、デプロイされたアプリケーションの識別子であり、かつアプリケーションノードテンプレートappに対応する全アプリケーションノードの識別子を求めて、デプロイされたアプリケーションのデプロイメントパッケージの識別子、またはアプリケーション記述ファイルのURL、またはアプリケーション記述ファイルの場所に基づいて、記憶されたデプロイメントアプリケーション情報テーブルを探索し、かつアプリケーションノードの識別子が{app1, app2}であることを取得することである。各アプリケーションノードはアップグレードされる。
デプロイメントアプリケーション情報テーブルは、表3に示される。デプロイメントアプリケーション情報テーブルは、ノードの識別子と、デプロイされたアプリケーションの識別子と、ノードテンプレートの識別子との間のマッピング関係を記録する。デプロイメント番号は、アプリケーションデプロイメントを示すために使用される。同一のデプロイメント番号を有するノードが、同一のデプロイメントにおけるアプリケーションに対して生成される。ノードの識別子は、アプリケーションノードの識別子と、プラットフォームノードの識別子とを含む。
Figure 0006164440
ステップ4062.第1プラットフォームノードのバージョンが、デプロイ予定のアプリケーションのデプロイメントパッケージに記述されており、かつ第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件であるバージョン要件を満たすか否かを決定する。もし、満たさない場合、ステップ4063を実行し、満たす場合、ステップ4068を実行する。
まず、アプリケーションデプロイメントサーバは、アップグレード予定のアプリケーションノードの識別子app1およびデプロイメント番号1に基づくデータベースから、かつ第1プラットフォームノードテンプレートの識別子に基づいて、同一のデプロイメント番号1を有する第1プラットフォームノードの識別子Apache1を取得し、かつ第1プラットフォームノードの識別子Apache1に基づいて、第1プラットフォームノードのバージョンを取得する。具体的には、アプリケーションデプロイメントサーバは、第1プラットフォームノードの識別子Apache1に基づいてデータベースを探索し、かつ第1プラットフォームノードApache1のデプロイメント能力を取得する。この実施形態では、表4に示されるように、第1プラットフォームノードApache1の現在のデプロイメントアーティファクトは、Servlet 2.0のみをサポートすることができるTomcat 6.0であるとする。従って、第1プラットフォームノードのバージョン Apache1は、Tomcat 6.0である。
デプロイされたアプリケーションノードの識別子はapp1であるとする。app1と同一のデプロイメント番号を有する第1プラットフォームノードの識別子Apache1は、第1プラットフォームノードテンプレートの識別子に基づいて表3から取得される。CSPによって記憶されるアプリケーション実装情報テーブルから、Apache1のcapabilityOfApacheは、"supportServlet 2.0"のデプロイメント能力のみを提供できることが取得される。すなわち、第1プラットフォームノードの識別子Apache1によって示されるプラットフォームノードによってサポートされるバージョンが、Tomcat 6.0であることが取得される。アプリケーション実装情報テーブルは、表4に示される。
Figure 0006164440
従って、アプリケーションデプロイメントサーバは、第1プラットフォームノードテンプレートの識別子に基づいて第1プラットフォームノードのバージョンを取得し、かつ第1プラットフォームノードのバージョンが第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たすことができないと決定する。例えば、アプリケーションデプロイメントサーバは、表3における第1プラットフォームノードテンプレートの識別子に基づいて、第1プラットフォームノードApache1およびApache2を取得し、かつ第1プラットフォームノードのバージョンApache1は、supportServlet2またはTomcat 6.0のみであり、かつ第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件、すなわちServlet3.0またはTomcat 6.0をサポートすることを満たすことができないとを決定する。従って、ステップ4063が実行される。
アプリケーションデプロイメント要求が、例えばapp2のようなデプロイされたアプリケーションノードの識別子を含むとすると、アプリケーションデプロイメントサーバは、app2と同一のデプロイメント番号を有する第1プラットフォームノードのバージョンApache2をさらに決定する必要がある。具体的には、アプリケーションデプロイメントサーバが第1プラットフォームノードテンプレートの識別子に基づいて第1プラットフォームノードのバージョンを取得することは、アプリケーションノードの識別子によって示されるアプリケーションノードのデプロイメント番号を取得し、かつ第1プラットフォームノードテンプレートの識別子に基づいて、アプリケーションノードと同一のデプロイメント番号を有する第1プラットフォームノードの識別子を取得することである。すなわち、第1プラットフォームノードの取得された識別子に対応するデプロイメント番号は、アプリケーションノードの識別子に対応するデプロイメント番号と同一である。第1プラットフォームノードの取得された識別子Apache2に基づいて、第1プラットフォームノードのバージョンApache2がServlet3.0であると決定される。従って、第1プラットフォームノードの能力が、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たすと決定される。
ステップ4063.第1プラットフォームノードアップグレードパッケージを取得する。
具体的に、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たす第1プラットフォームノードアップグレードパッケージが取得される。例えば、初めに、第1プラットフォームノードのバージョンが、第1プラットフォームノードの識別子に基づいて取得され(例えば、アプリケーションデプロイメントサーバが、プラットフォームノードのデプロイメントアーティファクト名からプラットフォームノードのバージョンを取得してもよい)、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たすバージョンが決定され、かつ次いで、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たす決定されたバージョンに対応するアップグレードパッケージが取得される。
例えば、アプリケーションデプロイメントサーバは、表4に基づくApache1のデプロイメントアーティファクト名から、Apache1のバージョンがTomcat 6.0であることを取得し、一方で、デプロイメントアーティファクト情報テーブル(例えば表5)によると、Apache1のバージョンより後であり、かつApachelのためのデプロイ予定のアプリケーションノードの要件を満たすことができるバージョンは、Tomcat 7.0である。次いで、アプリケーションデプロイメントサーバは、表5から、決定されたバージョンTomcat 7.0に基づいて、Tomcat 6.0からTomcat 7.0にApache1をアップグレードするために使用されうるアップグレードパッケージの場所が、File://appcontainer/apache/update/appEであることを取得し、かつその場所からアップグレードパッケージappEを取得する。
Figure 0006164440
1つの任意の方法では、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件は、例えば、supportServlet3のようなバージョンサポート能力であってもよい。詳細は、本発明の実施形態において再度説明されない。
ステップ4064.第2プラットフォームノードのバージョンが、第2プラットフォームノードテンプレートのための第1プラットフォームノードテンプレートのバージョン要件を下回っていると決定する。そうでない場合、直接的にステップ4067を実行する。
ステップ4064を実行するステップの前に、記憶されたアプリケーションデプロイメントサーバは、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルに基づいて、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルが、第1プラットフォームノードテンプレートをソースノードテンプレートとして使用する宛先ノードテンプレート(すなわち、第2プラットフォームノードテンプレート)を記述していることを決定する。さらに、アプリケーションデプロイメントサーバは、記述ファイルの関係テンプレートに基づいて、第1プラットフォームノードテンプレートを関係テンプレートにおけるソースノードテンプレートとして使用する宛先ノードテンプレートを決定する。本発明の実施形態において、第1プラットフォームノードテンプレートをソースノードテンプレートとして使用する宛先ノードテンプレートは、第2プラットフォームノードと呼ばれる。
図5は、さらに実施例として使用される。方向を示す矢印が、apacheノードテンプレートとjavaModuleノードテンプレートの間に存在している。次いで、関係テンプレートにおいて、apacheノードテンプレートが、ソースノードテンプレートとして使用され、かつjavaModuleが、宛先ノードテンプレートとして使用される。従って、javaModuleノードテンプレートが、第2プラットフォームノードテンプレートとして使用される。アプリケーションデプロイメントサーバは、ソースノードテンプレートおよび宛先ノードテンプレートのためのバージョン要件マッチングテーブル(例えば表6)に基づいて、第1プラットフォームノードApacheが、Tomcat 7.0にアップグレードされる予定であることを決定する。第2プラットフォームノードテンプレートjavaModuleに対応するノードは、JDK 1.6をサポートする必要があるが、JavaModuleの現在のバージョンは、JDK1.5である。従って、第2プラットフォームノードのバージョンJDK1.5は、第2プラットフォームノードのためのアップグレードされる第1プラットフォームノードのバージョン要件(JDK 1.6)を下回っている。
Figure 0006164440
ステップ4065.第2プラットフォームノードアップグレードパッケージを取得する。ステップ4066を実行する。
具体的には、第2プラットフォームノードアップグレードパッケージは、第2プラットフォームノードのための第1プラットフォームノードのバージョン要件に基づいて取得される。
もし、アップグレードパッケージDが、アプリケーションデプロイメントサーバ上でメンテナンスされ、かつアップグレードパッケージが、ノードテンプレートjavaModuleに対応するプラットフォームノードをJDK1.6にアップグレードするために使用されうる場合、次いで、第2プラットフォームノードアップグレードパッケージは、アップグレードパッケージDである。
ステップ4066.第2プラットフォームノードアップグレードパッケージに基づいて第2プラットフォームノードをアップグレードする。ステップ4067を実行する。
なお、ステップ4066の前に、アプリケーションデプロイメントサーバは、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルが、第2プラットフォームノードテンプレートをソースノードテンプレートとして使用する宛先ノードテンプレート(すなわち、第3ノードテンプレート)を記述しているか否かを決定し続けるためにさらに必要であり、かつアップグレード後の任意のノードのバージョン要件が満たされるまで、ステップ4064および4065を繰り返し実行する。
ステップ4067.第1プラットフォームノードアップグレードパッケージに基づいて第1プラットフォームノードをアップグレードする。ステップ4068を実行する。
ステップ4068.デプロイ予定のアプリケーションのデプロイメントパッケージに基づいて、デプロイされたアプリケーションノードをアップグレードする。
プラットフォームノードはアプリケーションデプロイメントサーバによって管理され、一方で、アプリケーションノードはユーザ装置によって管理され、かつデプロイされたアプリケーションのアプリケーションデプロイメントパッケージはさらに、ユーザ装置によって生成される。従って、デプロイされたアプリケーションをアップグレードするステップは、実際には、デプロイされたアプリケーションに対応するアプリケーションノードをアップグレードするステップを参照する。アップグレードプロセスは、デプロイ予定のアプリケーションの取得されたデプロイメントパッケージの中のプラン(plan)に記述された情報に基づいて実行されてもよい。アプリケーションデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートと、第1プラットフォームノードテンプレートの識別子と、デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、デプロイ予定のアプリケーションのノードテンプレートがデプロイされたアプリケーションのノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述している。デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるアプリケーションノードをアップグレードするために使用されてもよい。
プラットフォームノードのアップグレードパッケージは、アプリケーションデプロイメントサーバによってメンテナンスされる。もし、プラットフォームノードがインストールされるのに失敗した場合、アプリケーションデプロイメントサーバが、タイムリーに失敗に応答し、かつプラットフォームノードの最終的に正常なアップグレードを保証することが可能でない限り、アプリケーションアップグレードは確実に失敗し、またはアプリケーションノードが正常にアップグレードされたとしても、アプリケーションノードは正常に動作することができない。もしプラットフォームノードが初めにアップグレードされる場合、かつ、もしアプリケーションノードがアップグレードに失敗する場合、アプリケーションノードアップグレードパッケージを構成するプロセスにおいてユーザ装置がエラーを発生させる可能性がある。この場合、CSPは、エラーが発生したアプリケーションノードの識別子を含むエラー情報をユーザ装置に返してもよい。ユーザ装置は修正を実行し、かつ次いで、再度、デプロイ予定のアプリケーションの新たなデプロイメントパッケージを提示する。アプリケーションデプロイメントサーバは、デプロイ予定のアプリケーションの修正されたデプロイメントパッケージをインストールする必要があるのみであり、かつ、それ以上はプラットフォームノードをアップグレードする必要はない。従って、前述のアップグレードプロセスにおいて、第1アプリケーションノードのデプロイ予定のアプリケーションのデプロイメントパッケージと、第1プラットフォームノードアップグレードパッケージと、第2プラットフォームノードアップグレードパッケージと、…、第nプラットフォームノードのアップグレードパッケージが取得されるとき、第nプラットフォームノードと、第(n-1)プラットフォームノードと、…、第2プラットフォームノードと、第1プラットフォームノードと、第1アプリケーションノードとが、順にアップグレードされてもよい。
ステップ407.アプリケーションデプロイメントサーバは、アップグレード応答情報をユーザ装置に返す。
特に、各プラットフォームノードが正常にアップデートされた後、プラットフォームノードは新たなバージョンを有し、かつ従って、プラットフォームノードの新たなバージョンは、データベースに書き込まれる必要がある。
例えば、アップグレードパッケージappEが、プラットフォームノードApache1をアップグレードするために使用された後、プラットフォームノードApache1は、正常にアップグレードされた後の新たなバージョン"supportServlet3"を有し、かつ従って、アプリケーション実装情報テーブルにおけるデプロイメントアーティファクト名および能力記述は、アップデートされる必要がある。アップデートされたアプリケーション実装情報テーブルは、表7に示される。能力記述またはデプロイメントアーティファクト名は、プラットフォームノードのバージョンを表してもよい。
Figure 0006164440
なお、本発明の実施形態で提供されるアプリケーションアップグレード方法のステップを実行する順番は、適宜調整されてもよく、かつステップは、状況に応じて相応に追加され、または削除されてもよい。本発明に開示された技術的範囲内で当業者によって実行される任意の変更は、本発明の保護範囲内であるものとし、詳細はここに再度説明されない。
前述の解決策から理解できるように、本発明の実施形態で提供されるアプリケーションアップグレード方法において、デプロイ予定のアプリケーションのデプロイメントパッケージの中のアプリケーション記述ファイルは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を記述している。アプリケーションデプロイメントサーバは、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定するとき、アプリケーションデプロイメントサーバは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードアップグレードパッケージを取得する。その後、アプリケーションデプロイメントサーバは、取得された第1プラットフォームノードアップグレードパッケージに基づいて、第1プラットフォームノードをアップグレードする。このように、アップグレードされた第1プラットフォームノードのバージョンは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たし、それによって、アップグレードされたアプリケーションが正常に動作できることを保証する。
本発明のこの実施形態は、アプリケーションデプロイメントサーバ80を提供する。図8に示されるように、アプリケーションデプロイメントサーバ80は、
デプロイ予定のアプリケーションのデプロイメントパッケージを含むアプリケーションデプロイメント要求を受信し、かつデプロイ予定のアプリケーションのデプロイメントパッケージを、決定モジュール802およびアップグレードモジュール803に送信するように構成された受信モジュール801であって、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートの識別子と、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述している、受信モジュール801と、
受信モジュール801によって送信されたデプロイ予定のアプリケーションのアプリケーションデプロイメントパッケージを受信するとともに、アップグレード識別子に基づいて、デプロイ予定のアプリケーションのデプロイメントパッケージが、デプロイされたアプリケーションの識別子によって示されるデプロイされたアプリケーションのアップグレードパッケージであると決定し、
デプロイされたアプリケーションの識別子に基づいて、第1プラットフォームノードの識別子であり、かつ第1プラットフォームノードテンプレートの識別子に対応する識別子を取得するとともに、第1プラットフォームノードの識別子によって示される第1プラットフォームノードのバージョンを取得し、
第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定し、ここでなお、アップグレード識別子は、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションのノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子であり、かつ
第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たす第1プラットフォームノードアップグレードパッケージを取得するとともに、第1プラットフォームノードアップグレードパッケージを、アップグレードモジュールに送信する
ように構成された決定モジュール802と、
決定モジュール802によって送信された第1プラットフォームノードアップグレードパッケージを受信するとともに、第1プラットフォームノードを使用することによって第1プラットフォームノードの識別子によって示される第1プラットフォームノードをアップグレードするために、パッケージをアップグレードするように構成されたアップグレードモジュール803と
を備え、
決定モジュール802は、デプロイされたアプリケーションのノードテンプレートの識別子に基づいて、アップグレード予定のアプリケーションノードの識別子を決定し、かつアップグレード予定のアプリケーションノードの識別子をアップグレードモジュール803に送信するようにさらに構成され、かつ
アップグレードモジュール803は、受信モジュール801によって送信されたデプロイ予定のアプリケーションのアプリケーションデプロイメントパッケージを受信し、決定モジュール802によって送信されたアップグレード予定のアプリケーションノードの識別子を受信し、かつデプロイ予定のアプリケーションのデプロイメントパッケージを使用することによってアップグレード予定のアプリケーションノードの識別子によって示されるアプリケーションノードをアップグレードするようにさらに構成される。
このように、デプロイ予定のアプリケーションのデプロイメントパッケージの中のアプリケーション記述ファイルは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を記述している。決定モジュールが、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定するとき、アップグレードモジュールは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードアップグレードパッケージを取得する。その後、アップグレードモジュールは、取得された第1プラットフォームノードアップグレードパッケージに基づいて、第1プラットフォームノードをアップグレードする。このように、アップグレードされた第1プラットフォームノードのバージョンは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たし、それによって、アップグレードされたアプリケーションが正常に動作できることを保証する。
なお、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートを記述する関係テンプレートをさらに含み、かつアップグレード識別子は、関係テンプレートにおいて搬送され、または
デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートに対応するノードタイプ実装をさらに含み、かつアップグレード識別子は、ノードタイプ実装において搬送される。
さらに、決定モジュール802は具体的に、全アプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子を、アップグレード予定のアプリケーションノードの識別子として決定するように構成され、または
デプロイ予定のアプリケーションのデプロイメントパッケージが、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子をさらに含むとき、アップグレード予定のアプリケーションノードの識別子を決定するステップは具体的に、
少なくとも1つのデプロイされたアプリケーションノードの識別子であり、デプロイされたアプリケーションのノードテンプレートの識別子に対応し、かつアプリケーションデプロイメントパッケージに含まれる識別子を、アップグレード予定のアプリケーションノードの識別子として決定するステップである。
決定モジュール802は、
デプロイされたアプリケーションの識別子に基づいて、デプロイされたアプリケーションのデプロイメントパッケージの記憶された記述ファイルを取得し、
デプロイされたアプリケーションのデプロイメントパッケージの取得された記述ファイルに基づいて、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルが、第1プラットフォームノードテンプレートをソースノードテンプレートとして使用する第2プラットフォームノードテンプレートを記述していることを決定し、
第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件と、第2プラットフォームノードのバージョンとを取得し、
第2プラットフォームノードのバージョンが、第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件を下回っていると決定し、かつ
第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件に基づいて、第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件を満たす第2プラットフォームノードアップグレードパッケージを取得するようにさらに構成される。
アップグレードモジュール803は、
第2プラットフォームノードアップグレードパッケージに基づいて第2プラットフォームノードをアップグレードするようにさらに構成される。
なお、本発明の実施形態において提供されるアプリケーションデプロイメントサーバは、図2から図6に記載されるアプリケーションデプロイメントサーバによって実行される任意のステップを実行してもよい。詳細は、本発明の実施形態において再度説明されない。
本発明において提供されるアプリケーションデプロイメントサーバを使用することによって、デプロイ予定のアプリケーションのデプロイメントパッケージの中のアプリケーション記述ファイルは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を記述している。決定モジュールが、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定するとき、アップグレードモジュールは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードアップグレードパッケージを取得する。その後、アップグレードモジュールは、取得された第1プラットフォームノードアップグレードパッケージに基づいて、第1プラットフォームノードをアップグレードする。このように、アップグレードされた第1プラットフォームノードのバージョンは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たし、それによって、アップグレードされたアプリケーションが正常に動作できることを保証する。
本発明のこの実施形態は、ユーザ装置90を提供する。図9に示されるように、ユーザ装置90は、
デプロイ予定のアプリケーションのデプロイメントパッケージを生成するように構成された生成モジュール901であって、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、第1プラットフォームノードテンプレートの識別子と、デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述し、
生成モジュール901が、アプリケーションデプロイメント要求を生成し、かつアプリケーションデプロイメント要求を送信モジュール902に送信するようにさらに構成され、アプリケーションデプロイメント要求は、デプロイ予定のアプリケーションのデプロイメントパッケージを含む、生成モジュール901と、
生成モジュール901によって送信されたアプリケーションデプロイメント要求を受信し、かつアプリケーションデプロイメント要求を、アプリケーションデプロイメントサーバに送信するように構成された送信モジュール902と
を備える。
このように、ユーザ装置の生成モジュールは、デプロイ予定のアプリケーションのデプロイメントパッケージを生成する。デプロイ予定のアプリケーションのデプロイメントパッケージの中のアプリケーション記述ファイルは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を記述している。アプリケーションデプロイメントサーバが、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定するとき、アプリケーションデプロイメントサーバは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードアップグレードパッケージを取得する。その後、アプリケーションデプロイメントサーバは、取得された第1プラットフォームノードアップグレードパッケージに基づいて、第1プラットフォームノードをアップグレードする。このように、アップグレードされた第1プラットフォームノードのバージョンは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たし、それによって、アップグレードされたアプリケーションが正常に動作できることを保証する。
なお、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートを記述する関係テンプレートをさらに含み、かつアップグレード識別子は、関係テンプレートにおいて搬送され、または、
デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートに対応するノードタイプ実装をさらに含み、かつアップグレード識別子は、ノードタイプ実装において搬送される。
生成モジュール901によって生成されたデプロイ予定のアプリケーションのデプロイメントパッケージは、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子をさらに含む。
また、図10に示されるように、ユーザ装置は、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルに基づいて、デプロイされたアプリケーションの識別子によって示されるデプロイされたアプリケーションの第1プラットフォームノードテンプレートを決定するように構成された決定モジュール903をさらに備える。第1プラットフォームノードテンプレートは、デプロイされたアプリケーションのノードテンプレートをソースノードテンプレートとして使用する。
なお、本発明の実施形態において提供されるユーザ装置は、図2から図6に記載されるユーザ装置によって実行される任意のステップを実行してもよい。詳細は、本発明の実施形態において再度説明されない。
本発明の実施形態に提供されるユーザ装置において、ユーザ装置の生成モジュールは、デプロイ予定のアプリケーションのデプロイメントパッケージを生成する。デプロイ予定のアプリケーションのデプロイメントパッケージの中のアプリケーション記述ファイルは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を記述している。アプリケーションデプロイメントサーバが、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定するとき、アプリケーションデプロイメントサーバは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードアップグレードパッケージを取得する。その後、アプリケーションデプロイメントサーバは、取得された第1プラットフォームノードアップグレードパッケージに基づいて、第1プラットフォームノードをアップグレードする。このように、アップグレードされた第1プラットフォームノードのバージョンは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たし、それによって、アップグレードされたアプリケーションが正常に動作できることを保証する。
本発明の実施形態は、アプリケーションデプロイメントサーバ110を提供する。図11に示されるように、アプリケーションデプロイメントサーバ110は、
デプロイ予定のアプリケーションのデプロイメントパッケージを含むアプリケーションデプロイメント要求を受信するとともに、デプロイ予定のアプリケーションのデプロイメントパッケージをプロセッサ112に送信するように構成された受信機111であって、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートの識別子と、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述している、受信機111と、
受信機111によって送信されたデプロイ予定のアプリケーションのデプロイメントパッケージを受信するとともに、アップグレード識別子に基づいて、デプロイ予定のアプリケーションのデプロイメントパッケージが、デプロイされたアプリケーションの識別子によって示されるデプロイされたアプリケーションのためのアップグレードパッケージであると決定し、ここではなお、アップグレード識別子が、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションのノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子であり、
デプロイされたアプリケーションの識別子に基づいて、第1プラットフォームノードの識別子であり、かつ第1プラットフォームノードテンプレートの識別子に対応する識別子を取得するとともに、第1プラットフォームノードの識別子によって示される第1プラットフォームノードのバージョンを取得し、
第1プラットフォームノードのバージョンに基づいて、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定し、
第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たす第1プラットフォームノードアップグレードパッケージを取得し、
第1プラットフォームノードアップグレードパッケージを使用することによって、第1プラットフォームノードテンプレートの識別子により示される第1プラットフォームノードをアップグレードし、
アップグレード予定のアプリケーションノードの識別子を決定し、かつ
デプロイ予定のアプリケーションのデプロイメントパッケージを使用することによってアップグレード予定のアプリケーションノードの識別子により示されるアプリケーションノードをアップグレードする
ように構成されたプロセッサ112と
を備える。
このように、デプロイ予定のアプリケーションのデプロイメントパッケージの中のアプリケーション記述ファイルは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を記述している。プロセッサが、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定するとき、プロセッサは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードアップグレードパッケージを取得する。その後、プロセッサは、取得された第1プラットフォームノードアップグレードパッケージに基づいて、第1プラットフォームノードをアップグレードする。このように、アップグレードされた第1プラットフォームノードのバージョンは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たし、それによって、アップグレードされたアプリケーションが正常に動作できることを保証する。
なお、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートを記述する関係テンプレートをさらに含み、かつアップグレード識別子は、関係テンプレートにおいて搬送され、または
デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートに対応するノードタイプ実装をさらに含み、かつアップグレード識別子は、ノードタイプ実装において搬送される。
さらに、プロセッサ112は具体的に、全アプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子を、アップグレード予定のアプリケーションノードの識別子として決定するように構成され、または
デプロイ予定のアプリケーションのデプロイメントパッケージは、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子をさらに含むとき、アップグレード予定のアプリケーションノードの識別子を決定するステップは特に、
少なくとも1つのデプロイされたアプリケーションノードの識別子であり、デプロイされたアプリケーションのノードテンプレートの識別子に対応し、かつアプリケーションデプロイメントパッケージに含まれる識別子をアップグレード予定のアプリケーションノードの識別子として決定するステップである。
プロセッサ112は、
デプロイされたアプリケーションの識別子に基づいて、デプロイされたアプリケーションのデプロイメントパッケージの記憶された記述ファイルを取得し、
デプロイされたアプリケーションのデプロイメントパッケージの取得された記述ファイルに基づいて、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルが、第1プラットフォームノードテンプレートをソースノードテンプレートとして使用する第2プラットフォームノードテンプレートを記述していることを決定し、
第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件と、第2プラットフォームノードのバージョンとを取得し、
第2プラットフォームノードのバージョンが、第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件を下回っていると決定し、
第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件に基づいて、第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件を満たす第2プラットフォームノードアップグレードパッケージを取得し、かつ
第2プラットフォームノードアップグレードパッケージに基づいて第2プラットフォームノードをアップグレードするようにさらに構成される。
なお、本発明の実施形態において提供されるアプリケーションデプロイメントサーバは、図2から図6に記載されるアプリケーションデプロイメントサーバによって実行される任意のステップを実行することができる。詳細は、本発明の実施形態において再度説明されない。
本発明において提供されるアプリケーションデプロイメントサーバを使用することによって、デプロイ予定のアプリケーションのデプロイメントパッケージの中のアプリケーション記述ファイルは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を記述している。プロセッサが、第1プラットフォームノードのバージョンが、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定するとき、プロセッサは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードアップグレードパッケージを取得する。その後、プロセッサは、取得された第1プラットフォームノードアップグレードパッケージに基づいて、第1プラットフォームノードをアップグレードする。このように、アップグレードされた第1プラットフォームノードのバージョンは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たし、それによって、アップグレードされたアプリケーションが正常に動作できることを保証する。
本発明の実施形態は、ユーザ装置120を提供する。図12に示されるように、ユーザ装置120は、
デプロイ予定のアプリケーションのデプロイメントパッケージを生成し、
デプロイ予定のアプリケーションのデプロイメントパッケージを含むアプリケーションデプロイメント要求を生成し、かつ
アプリケーションデプロイメント要求を送信機122に送信する
ように構成されたプロセッサ121であって、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、第1プラットフォームノードテンプレートの識別子と、デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件と、デプロイ予定のアプリケーションのノードテンプレートが、デプロイされたアプリケーションのノードテンプレートの識別子によって示されるデプロイされたアプリケーションノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述している、プロセッサ121と、
プロセッサによって送信されたアプリケーションデプロイメント要求を受信し、かつアプリケーションデプロイメント要求をアプリケーションデプロイメントサーバに送信するように構成された送信機122と
を備える。
このように、ユーザ装置のプロセッサは、デプロイ予定のアプリケーションのデプロイメントパッケージを生成し、デプロイ予定のアプリケーションのデプロイメントパッケージに基づいてアプリケーションデプロイメント要求を生成し、かつアプリケーションデプロイメント要求を送信機に送信する。次いで、送信機は、アプリケーションデプロイメント要求をアプリケーションデプロイメントサーバに送信する。アプリケーションデプロイメントサーバは、アプリケーションデプロイメント要求におけるデプロイ予定のアプリケーションのデプロイメントパッケージに基づいて、プラットフォームノードおよびアプリケーションノードを自動的にアップグレードする。従って、アプリケーションアップグレードの自動化度が上昇し、かつ人手の介入が低減される。
なお、デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートを記述する関係テンプレートをさらに含み、かつアップグレード識別子は、関係テンプレートにおいて搬送され、または
デプロイ予定のアプリケーションのデプロイメントパッケージは、デプロイ予定のアプリケーションのノードテンプレートに対応するノードタイプ実装をさらに含み、かつアップグレード識別子は、ノードタイプ実装において搬送される。
また、プロセッサ121によって生成されたデプロイ予定のアプリケーションのデプロイメントパッケージは、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつデプロイされたアプリケーションのノードテンプレートの識別子に対応する識別子をさらに含む。
プロセッサ121は、デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルに基づいて、デプロイされたアプリケーションの識別子によって示されるデプロイされたアプリケーションの第1プラットフォームノードテンプレートを決定するようにさらに構成され、第1プラットフォームノードテンプレートは、デプロイされたアプリケーションのノードテンプレートをソースノードテンプレートとして使用する。
なお、本発明の実施形態において提供されるユーザ装置は、図2から図6に記載されるユーザ装置によって実行される任意のステップを実行することができる。詳細は、本発明の実施形態において再度説明されない。
前述の解決策から理解できるように、プロセッサは、アプリケーションデベロッパのアップグレード要件に基づいて、デプロイ予定のアプリケーションのデプロイメントパッケージを生成し、デプロイ予定のアプリケーションのデプロイメントパッケージの中のアプリケーション記述ファイルは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を記述している。アプリケーションデプロイメントサーバが、第1プラットフォームノードのバージョンが第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を下回っていると決定するとき、アプリケーションデプロイメントサーバは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件に基づいて、第1プラットフォームノードアップグレードパッケージを取得する。その後、アプリケーションデプロイメントサーバは、取得された第1プラットフォームノードアップグレードパッケージに基づいて第1プラットフォームノードをアップグレードする。このように、アップグレードされた第1プラットフォームノードのバージョンは、第1プラットフォームノードテンプレートのためのデプロイ予定のアプリケーションのノードテンプレートのバージョン要件を満たし、それによって、アップグレードされたアプリケーションが正常に動作できることを保証する。
本発明における用語"および/または"は、関連オブジェクトを記述するための対応関係のみを記述し、かつ3つの関係が存在することを表している。例えば、Aおよび/またはBは、以下の3つの場合、すなわち、Aのみが存在する場合と、AおよびBの両方が存在する場合と、Bのみが存在する場合とを表すことができる。また、本明細書における文字"/"は、一般的に、関連オブジェクト間の"または"の関係を示している。
簡便かつ簡潔な説明のために、前述のシステム、装置、およびユニットの詳細な動作プロセスについて、前述の方法の実施形態における対応するプロセスが参照されてもよいことは当業者によって明確に理解され得、かつ詳細は再度ここに説明されない。
本アプリケーションで提供されるいくつかの実施形態において、開示されたシステム、装置、および方法は、他の方法で実施されうるということは理解されるべきである。例えば、説明された装置の実施形態は、単なる例示である。例えば、ユニット区分は、単に論理関数区分であり、かつ実際の実施においては、他の区分であってもよい。例えば、他の区分または構成要素は、別のシステムに組み合わされまたは統合されてもよく、あるいはいくつかの特徴が無視されまたは実行されなくてもよい。また、表示され若しくは説明された相互結合または直接結合、あるいは通信接続は、いくつかのインターフェースを使用して実装されてもよい。装置間またはユニット間の間接結合または通信接続は、電子的、機械的、または他の形態で実装されてもよい。
独立した部分として記載されたユニットは、物理的に独立していても、そうでなくてもよく、かつユニットとして表示された部分は、物理ユニットであっても、そうでなくてもよく、1つの位置に置かれても、または複数のネットワークユニットに分散されてもよい。実施形態の解決策の目的を達成するために、一部または全てのユニットが実際のニーズに応じて選択されてもよい。
また、本発明の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよく、または各ユニットが物理的に単独で存在してもよく、または2または3以上のユニットが1つのユニットに統合される。統合されたユニットは、ハードウェアの形態で実装されてもよく、またはソフトウェア機能ユニットに加えてハードウェアの形態で実装されてもよい。
前述の説明は、本発明の単なる特定の実施方法であるが、本発明の保護範囲を限定することを意図していない。本発明に開示された技術的範囲内で当業者によって容易に実行される任意の変更または置換は、本発明の保護範囲内であるものとする。従って、本発明の保護範囲は、特許請求の範囲に従うものとする。
80 アプリケーションデプロイメントサーバ
801 受信モジュール
802 決定モジュール
803 アップグレードモジュール
90 ユーザ装置
901 生成モジュール
902 送信モジュール
903 決定モジュール
110 アプリケーションデプロイメントサーバ
111 受信機
112 プロセッサ
120 ユーザ装置
121 プロセッサ
122 送信機

Claims (15)

  1. アプリケーションアップグレード方法であって、
    デプロイ予定のアプリケーションのデプロイメントパッケージを含むアプリケーションデプロイメント要求を受信するステップであって、前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、前記デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、前記デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートの識別子と、前記第1プラットフォームノードテンプレートのための前記デプロイ予定のアプリケーションの前記ノードテンプレートのバージョン要件と、前記デプロイ予定のアプリケーションの前記ノードテンプレートが、前記デプロイされたアプリケーションの前記ノードテンプレートの前記識別子によって示される前記デプロイされたアプリケーションの前記ノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述している、ステップと、
    前記アップグレード識別子に基づいて、前記デプロイ予定のアプリケーションの前記デプロイメントパッケージが、前記デプロイされたアプリケーションの前記識別子によって示される前記デプロイされたアプリケーションのアップグレードパッケージであることを決定するステップと、
    前記デプロイされたアプリケーションの前記識別子に基づいて、第1プラットフォームノードの識別子であり、かつ前記第1プラットフォームノードテンプレートの前記識別子に対応する識別子を取得するとともに、前記第1プラットフォームノードの前記識別子によって示される前記第1プラットフォームノードのバージョンを取得するステップと、
    前記第1プラットフォームノードの前記バージョンに基づいて、前記第1プラットフォームノードの前記バージョンが、前記第1プラットフォームノードテンプレートのための前記デプロイ予定のアプリケーションの前記ノードテンプレートの前記バージョン要件を下回っていると決定するステップと、
    前記第1プラットフォームノードテンプレートのための前記デプロイ予定のアプリケーションの前記ノードテンプレートの前記バージョン要件に基づいて、前記第1プラットフォームノードテンプレートのための前記デプロイ予定のアプリケーションの前記ノードテンプレートの前記バージョン要件を満たす第1プラットフォームノードアップグレードパッケージを取得するステップと、
    前記第1プラットフォームノードアップグレードパッケージを使用することによって前記第1プラットフォームノードの前記識別子によって示される前記第1プラットフォームノードをアップグレードするステップと、
    アップグレード予定のアプリケーションノードの識別子を決定するステップと、
    前記デプロイ予定のアプリケーションの前記デプロイメントパッケージを使用することによって前記アップグレード予定のアプリケーションノードの前記識別子によって示される前記アプリケーションノードをアップグレードするステップと
    含むアプリケーションアップグレード方法。
  2. 前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、前記デプロイ予定のアプリケーションの前記ノードテンプレートを記述する関係テンプレートをさらに含み、かつ前記アップグレード識別子は、前記関係テンプレートにおいて搬送され、または
    前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、前記デプロイ予定のアプリケーションの前記ノードテンプレートに対応するノードタイプ実装をさらに含み、かつ前記アップグレード識別子は、前記ノードタイプ実装において搬送される請求項1に記載の方法。
  3. アップグレード予定のアプリケーションノードの識別子を決定する前記ステップは、全アプリケーションノードの識別子であり、かつ前記デプロイされたアプリケーションの前記ノードテンプレートの前記識別子に対応する識別子を、前記アップグレード予定のアプリケーションノードの前記識別子として決定するステップを含み、または、
    前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつ前記デプロイされたアプリケーションの前記ノードテンプレートの前記識別子に対応する識別子をさらに含むとき、アップグレード予定のアプリケーションノードの識別子を決定する前記ステップは
    前記少なくとも1つのデプロイされたアプリケーションノードの識別子であり、前記デプロイされたアプリケーションの前記ノードテンプレートの前記識別子に対応し、かつアプリケーションデプロイメントパッケージに含まれる前記識別子を、前記アップグレード予定のアプリケーションノードの前記識別子として決定するステップを含む、請求項1または2に記載の方法。
  4. 前記第1プラットフォームノードの前記識別子によって示される前記第1プラットフォームノードをアップグレードする前記ステップの前に、前記方法は、前記デプロイされたアプリケーションの前記識別子に基づいて、前記デプロイされたアプリケーションのデプロイメントパッケージの記憶された記述ファイルを取得するステップと、
    前記デプロイされたアプリケーションの前記デプロイメントパッケージの前記取得された記述ファイルに基づいて、前記デプロイされたアプリケーションの前記デプロイメントパッケージの前記記述ファイルは、前記第1プラットフォームノードテンプレートをソースノードテンプレートとして使用する第2プラットフォームノードテンプレートを記述していると決定するステップと、
    第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件と、前記第2プラットフォームノードのバージョンとを取得するステップと、
    前記第2プラットフォームノードの前記バージョンが、前記第2プラットフォームノードのための前記アップグレードされた第1プラットフォームノードの前記バージョン要件を下回っていると決定するステップと
    を含み、かつ
    前記第1プラットフォームノードアップグレードパッケージを使用することによって前記第1プラットフォームノードをアップグレードする前記ステップの前に、前記方法は、
    前記第2プラットフォームノードのための前記アップグレードされた第1プラットフォームノードの前記バージョン要件に基づいて、前記第2プラットフォームノードのための前記アップグレードされた第1プラットフォームノードの前記バージョン要件を満たす第2プラットフォームノードアップグレードパッケージを取得するステップと、
    前記第2プラットフォームノードアップグレードパッケージに基づいて前記第2プラットフォームノードをアップグレードするステップと
    をさらに含む、請求項1〜3のいずれか一項に記載の方法。
  5. アプリケーションアップグレード方法において、
    デプロイ予定のアプリケーションのデプロイメントパッケージを生成するステップであって、前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、前記デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、第1プラットフォームノードテンプレートの識別子と、前記デプロイされたアプリケーションのノードテンプレートの識別子と、前記第1プラットフォームノードテンプレートのための前記デプロイ予定のアプリケーションの前記ノードテンプレートのバージョン要件と、前記デプロイ予定のアプリケーションの前記ノードテンプレートが、前記デプロイされたアプリケーションの前記ノードテンプレートの前記識別子によって示される前記デプロイされたアプリケーションの前記ノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述している、ステップと、
    アプリケーションデプロイメント要求を生成するステップであって、前記アプリケーションデプロイメント要求は、前記デプロイ予定のアプリケーションの前記デプロイメントパッケージを含む、ステップと、
    前記アプリケーションデプロイメント要求を、アプリケーションデプロイメントサーバに送信するステップと
    を含む、アプリケーションアップグレード方法。
  6. 前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、前記デプロイ予定のアプリケーションの前記ノードテンプレートを記述する関係テンプレートをさらに含み、かつ前記アップグレード識別子は、前記関係テンプレートにおいて搬送され、または
    前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、前記デプロイ予定のアプリケーションの前記ノードテンプレートに対応するノードタイプ実装をさらに含み、かつ前記アップグレード識別子は、前記ノードタイプ実装において搬送される、請求項5に記載の方法。
  7. 前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつ前記デプロイされたアプリケーションの前記ノードテンプレートの前記識別子に対応する識別子をさらに含む、請求項5または6に記載の方法。
  8. デプロイ予定のアプリケーションのデプロイメントパッケージを生成する前記ステップの前に、前記方法は、前記デプロイされたアプリケーションのデプロイメントパッケージの記述ファイルに基づいて、前記デプロイされたアプリケーションの前記識別子によって示される前記デプロイされたアプリケーションの前記第1プラットフォームノードテンプレートを決定するステップであって、前記第1プラットフォームノードテンプレートは、前記デプロイされたアプリケーションの前記ノードテンプレートをソースノードテンプレートとして使用する、ステップをさらに含む、請求項5〜7のいずれか一項に記載の方法。
  9. アプリケーションデプロイメントサーバであって、
    デプロイ予定のアプリケーションのデプロイメントパッケージを含むアプリケーションデプロイメント要求を受信し、かつ前記デプロイ予定のアプリケーションのアプリケーションデプロイメントパッケージを、決定モジュールおよびアップグレードモジュールに送信するように構成された受信モジュールであって、前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、前記デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、前記デプロイされたアプリケーションのノードテンプレートの識別子と、第1プラットフォームノードテンプレートの識別子と、前記第1プラットフォームノードテンプレートのための前記デプロイ予定のアプリケーションの前記ノードテンプレートのバージョン要件と、前記デプロイ予定のアプリケーションの前記ノードテンプレートが、前記デプロイされたアプリケーションの前記ノードテンプレートの前記識別子によって示される前記デプロイされたアプリケーションの前記ノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述している、受信モジュールと、
    前記受信モジュールによって送信された前記デプロイ予定のアプリケーションの前記アプリケーションデプロイメントパッケージを受信するとともに、前記アップグレード識別子に基づいて、前記デプロイ予定のアプリケーションの前記デプロイメントパッケージが、前記デプロイされたアプリケーションの前記識別子によって示される前記デプロイされたアプリケーションのアップグレードパッケージであることを決定し、前記デプロイされたアプリケーションの前記識別子に基づいて、第1プラットフォームノードの識別子であり、かつ前記第1プラットフォームノードテンプレートの前記識別子に対応する識別子を取得するとともに、前記第1プラットフォームノードの前記識別子によって示される前記第1プラットフォームノードのバージョンを取得し、前記第1プラットフォームノードの前記バージョンに基づいて、前記第1プラットフォームノードの前記バージョンが、前記第1プラットフォームノードテンプレートのための前記デプロイ予定のアプリケーションの前記ノードテンプレートの前記バージョン要件を下回っていると決定し、かつ前記第1プラットフォームノードテンプレートのための前記デプロイ予定のアプリケーションの前記ノードテンプレートの前記バージョン要件に基づいて、前記第1プラットフォームノードテンプレートのための前記デプロイ予定のアプリケーションの前記ノードテンプレートの前記バージョン要件を満たす第1プラットフォームノードアップグレードパッケージを取得するとともに、前記第1プラットフォームノードアップグレードパッケージを前記アップグレードモジュールに送信するように構成された前記決定モジュールと、
    前記決定モジュールによって送信された前記第1プラットフォームノードアップグレードパッケージを受信するとともに、前記第1プラットフォームノードアップグレードパッケージを使用することによって前記第1プラットフォームノードの前記識別子によって示される前記第1プラットフォームノードをアップグレードするように構成された前記アップグレードモジュールと
    を備え、
    前記決定モジュールは、前記デプロイされたアプリケーションの前記ノードテンプレートの前記識別子に基づいて、アップグレード予定のアプリケーションノードの識別子を決定するとともに、前記アップグレード予定のアプリケーションノードの前記識別子を前記アップグレードモジュールに送信するようにさらに構成され、かつ
    前記アップグレードモジュールは、前記受信モジュールによって送信された前記デプロイ予定のアプリケーションの前記アプリケーションデプロイメントパッケージを受信し、前記決定モジュールによって送信された前記アップグレード予定のアプリケーションノードの前記識別子を受信し、かつ前記デプロイ予定のアプリケーションの前記デプロイメントパッケージを使用することによって前記アップグレード予定のアプリケーションノードの前記識別子によって示される前記アプリケーションノードをアップグレードするようにさらに構成される、アプリケーションデプロイメントサーバ。
  10. 前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、前記デプロイ予定のアプリケーションの前記ノードテンプレートを記述する関係テンプレートをさらに含み、かつ前記アップグレード識別子は、前記関係テンプレートにおいて搬送され、または
    前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、前記デプロイ予定のアプリケーションの前記ノードテンプレートに対応するノードタイプ実装をさらに含み、かつ前記アップグレード識別子は、前記ノードタイプ実装において搬送される、請求項9に記載のアプリケーションデプロイメントサーバ。
  11. 前記決定モジュールは特に、全アプリケーションノードの識別子であり、かつ前記デプロイされたアプリケーションの前記ノードテンプレートの前記識別子に対応する識別子を、前記アップグレード予定のアプリケーションノードの前記識別子として決定するように構成され、または
    前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつ前記デプロイされたアプリケーションの前記ノードテンプレートの前記識別子に対応する識別子をさらに含むとき、アップグレード予定のアプリケーションノードの識別子を前記決定することは特に、前記少なくとも1つのデプロイされたアプリケーションノードの識別子であり、前記デプロイされたアプリケーションの前記ノードテンプレートの前記識別子に対応し、かつ前記アプリケーションデプロイメントパッケージに含まれる前記識別子を、前記アップグレード予定のアプリケーションノードの前記識別子として決定することである、請求項9または10に記載のアプリケーションデプロイメントサーバ。
  12. 前記決定モジュールは、
    前記デプロイされたアプリケーションの前記識別子に基づいて、前記デプロイされたアプリケーションのデプロイメントパッケージの記憶された記述ファイルを取得し、
    前記デプロイされたアプリケーションの前記デプロイメントパッケージの前記取得された記述ファイルに基づいて、前記デプロイされたアプリケーションの前記デプロイメントパッケージの前記記述ファイルが、前記第1プラットフォームノードテンプレートをソースノードテンプレートとして使用する第2プラットフォームノードテンプレートを記述していることを決定し、
    第2プラットフォームノードのためのアップグレードされた第1プラットフォームノードのバージョン要件と、前記第2プラットフォームノードのバージョンとを取得し、
    前記第2プラットフォームノードの前記バージョンが、前記第2プラットフォームノードのための前記アップグレードされた第1プラットフォームノードの前記バージョン要件を下回っていると決定し、かつ
    前記第2プラットフォームノードのための前記アップグレードされた第1プラットフォームノードの前記バージョン要件に基づいて、前記第2プラットフォームノードのための前記アップグレードされた第1プラットフォームノードの前記バージョン要件を満たす第2プラットフォームノードアップグレードパッケージを取得する
    ようにさらに構成され、かつ
    前記アップグレードモジュールは、前記第2プラットフォームノードアップグレードパッケージに基づいて前記第2プラットフォームノードをアップグレードするようにさらに構成される、請求項9〜11のいずれか一項に記載のアプリケーションデプロイメントサーバ。
  13. ユーザ装置において、
    デプロイ予定のアプリケーションのデプロイメントパッケージを生成するように構成された生成モジュールであって、前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、前記デプロイ予定のアプリケーションのノードテンプレートと、デプロイされたアプリケーションの識別子と、第1プラットフォームノードテンプレートの識別子と、前記デプロイされたアプリケーションのノードテンプレートの識別子と、前記第1プラットフォームノードテンプレートのための前記デプロイ予定のアプリケーションの前記ノードテンプレートのバージョン要件と、前記デプロイ予定のアプリケーションの前記ノードテンプレートが、前記デプロイされたアプリケーションの前記ノードテンプレートの前記識別子によって示される前記デプロイされたアプリケーションの前記ノードテンプレートをアップグレードするために使用されることを示すアップグレード識別子とを記述し、
    前記生成モジュールは、アプリケーションデプロイメント要求を生成するとともに、前記アプリケーションデプロイメント要求を送信モジュールに送信するようにさらに構成され、前記アプリケーションデプロイメント要求は、前記デプロイ予定のアプリケーションの前記デプロイメントパッケージを含む、生成モジュールと、
    前記生成モジュールによって送信された前記アプリケーションデプロイメント要求を受信し、かつ前記アプリケーションデプロイメント要求をアプリケーションデプロイメントサーバに送信するように構成された前記送信モジュールと
    を備えるユーザ装置。
  14. 前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、前記デプロイ予定のアプリケーションの前記ノードテンプレートを記述する関係テンプレートをさらに含み、かつ前記アップグレード識別子は、前記関係テンプレートにおいて搬送され、または
    前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、前記デプロイ予定のアプリケーションの前記ノードテンプレートに対応するノードタイプ実装をさらに含み、かつ前記アップグレード識別子は、前記ノードタイプ実装において搬送される、請求項13に記載のユーザ装置。
  15. 前記デプロイ予定のアプリケーションの前記デプロイメントパッケージは、少なくとも1つのデプロイされたアプリケーションノードの識別子であり、かつ前記デプロイされたアプリケーションの前記ノードテンプレートの前記識別子に対応する識別子をさらに含む、請求項13または14に記載のユーザ装置。
JP2016520235A 2013-08-13 2013-08-13 アプリケーションアップグレード方法および装置 Active JP6164440B2 (ja)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2016521897A JP2016521897A (ja) 2016-07-25
JP6164440B2 true JP6164440B2 (ja) 2017-07-19

Family

ID=52467924

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016520235A Active JP6164440B2 (ja) 2013-08-13 2013-08-13 アプリケーションアップグレード方法および装置

Country Status (7)

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

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101782457B1 (ko) * 2013-08-13 2017-09-28 후아웨이 테크놀러지 컴퍼니 리미티드 어플리케이션 업그레이드 방법 및 장치
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

Family Cites Families (54)

* 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
US20040261071A1 (en) * 2003-06-23 2004-12-23 Macronix International Co., Ltd. Peer version control system
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
US20110061046A1 (en) * 2008-12-18 2011-03-10 Virtual Computer, Inc. Installing Software Applications 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 ソフトウエア更新を適用した情報処理装置を検査するシステム
US8997078B2 (en) * 2011-04-12 2015-03-31 Pivotal Software, Inc. Release lifecycle management system for a multi-node application
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 中兴通讯股份有限公司 一种软件版本的动态更新方法及系统
BR112014012772A8 (pt) * 2011-12-01 2017-06-20 Tencent Tech Shenzhen Co Ltd método e sistema para aprimorar software
US9946526B2 (en) * 2011-12-07 2018-04-17 Excalibur Ip, Llc Development and hosting for platform independent applications
CN102495733A (zh) * 2011-12-08 2012-06-13 方正国际软件有限公司 应用程序与相关数据库脚本兼容性检测和升级维护的方法
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
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
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
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
KR101782457B1 (ko) * 2013-08-13 2017-09-28 후아웨이 테크놀러지 컴퍼니 리미티드 어플리케이션 업그레이드 방법 및 장치
US9753784B2 (en) * 2013-11-27 2017-09-05 At&T Intellectual Property I, L.P. Cloud delivery platform
EP3137989A4 (en) * 2014-04-30 2018-01-03 Pivotal Software, Inc. Fast deployment across cloud platforms

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6164440B2 (ja) アプリケーションアップグレード方法および装置
US10776104B2 (en) Systems and methods for tracking configuration file changes
US11561784B2 (en) Versioning of pipeline templates for continuous delivery of services on datacenters configured in cloud platforms
CN102413022B (zh) 一种应用调试方法和系统
US8181151B2 (en) Modeling and managing heterogeneous applications
CN102497454B (zh) 一种在应用服务平台系统中对应用进行灰度发布的方法
US8087013B2 (en) Assisted migration in a data processing environment
CN105051687B (zh) 应用部署方法和设备
US11356508B1 (en) Retry strategies for handling failures during continuous delivery of software artifacts in a cloud platform
US12056537B2 (en) Managing execution of continuous delivery pipelines for a cloud platform based data center
US11392366B1 (en) Optimized compilation of pipelines for continuous delivery of services on datacenters configured in cloud platforms
US20170237687A1 (en) Resource trees by management controller
Chen et al. MORE: A model-driven operation service for cloud-based IT systems
US20240256250A1 (en) Orchestration of upgrades of datacenters deployed in cloud platforms
JP6540287B2 (ja) 情報処理システム、情報処理方法、及び、プログラム
CN113760481A (zh) 一种分布式定时任务调度系统和方法
KR20160028248A (ko) 기기 등록 자동화 장치 및 이를 이용한 프로비저닝 자동화 방법
Chiponga et al. A version-based transformation proxy for service evolution
CN104298750A (zh) 用于实时系统通信的更新处理方法及装置
Wu et al. Design and Implementation of an Auto-Configuration and Cooperation Generation of Web Service User Interface Based on TR-069 Protocol
CN114706655A (zh) 请求处理方法、计算设备及计算机存储介质
CN118444960A (zh) 基于接口文档的数据模型自动建立方法、装置和系统

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161101

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170606

R150 Certificate of patent or registration of utility model

Ref document number: 6164440

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250