(58)【調査した分野】(Int.Cl.,DB名)
前記コンピュータが、PDMパラメータの各次元において、前記PDMパラメータの条件付き限度、属性、優先順位、およびフォールトトレランス動作からなる組のうちの1つを定義することをさらに含む請求項1に記載の方法。
前記フォールトトレランス機能および前記バックトラッキング機能は、各PDMパラメータとPDMパラメータ群とのうちの一方について定義される、請求項3に記載の方法。
前記コンピュータが、マイグレーション障害の場合に前記フォールトトレランス機能およびバックトラッキング機能によって前記PDMパラメータを再調整するために、複数回の再試行と手動介入とのうちの一方を可能にすること、をさらに含む請求項3に記載の方法。
前記マイグレーションアプリケーションは、クラウド環境と非クラウド環境とのうちの一方における実測値に基づいて前記複数のPDMパラメータの1つまたは複数の次元を定義するようにさらに構成される、請求項6に記載のコンピューティングデバイス。
前記クラウドマイグレーションは、単一移行元から複数移行先へのマイグレーション、複数移行元から単数移行先へのマイグレーション、および複数移行元から複数移行先へのマイグレーションのうちの1つを含む、請求項12に記載のプログラム。
【発明を実施するための形態】
【0012】
以下の詳細な説明では、本明細書の一部をなす添付図面を参照する。図面では、文脈により別様に示す場合を除き、同様の符号は典型的には同様のコンポーネントを示す。詳細な説明、図面および特許請求の範囲に記載の例示の実施形態は、限定的であることを意図するものではない。本明細書で示す主題の趣旨および範囲から逸脱することなく、他の実施形態も採用可能であり、他の変更も可能である。本明細書において一般的に述べ、図面に図示する本開示の態様は、様々な構成で配置、代替、組み合わせ、分離、および設計可能であり、それらはすべて本明細書で明示的に企図されていることが容易に理解されるであろう。
【0013】
本開示は、特にクラウドマイグレーション用パラメータ化モデルの実装に関する方法、装置、システム、デバイスおよび/またはコンピュータプログラム製品を概略的に示す。
【0014】
すなわち、1つまたは複数の多次元パラメータを有するパラメータ化動的モデル(PDM)を使用して、クラウドネットワークまたは非クラウドネットワークからクラウドネットワークへデータおよびアプリケーションを移動するマイグレーションシステムおよび方法のための技術を示す。PDMパラメータは、移行先クラウドがクラウドマイグレーションの成功のために満たす必要があると考えられるサービスレベル合意(SLA)要件を表すことができる。PDMは、PDMにおいて順序付けパラメータとして定義された順序付けに従い、クラウド環境においてPDMパラメータに作用するPDMを実行するように構成されたモデル実行コード(MEC:Model Execution Code)モジュールを含み得る。このPDM−MEC方式のマイグレーションシステムは、MECコードの実行中においてマイグレーション時のフォールトトレランスまたはエラー回復を含むかまたは提供することも可能である。
【0015】
図1に、本明細書に記載の少なくとも一部の実施形態により構成された、クラウドマイグレーション用パラメータ化動的モデル(PDM)を実装することができるシステムの一例を示す。
【0016】
図1に示すように、
図100は、個人または法人顧客108および109のために様々なアプリケーション、データストレージ、データ処理、またはこれらと同等のものなどのサービスをホストすることができるサービスプロバイダ102(クラウド1)を示す。サービスプロバイダ102は、サービスを提供する1つまたは複数のサイト(サーバ群)を含むことができ、1つもしくは複数のサーバ104および/または、ファイアウォール、ルータなどの1つもしくは複数の特殊用途デバイス106を使用することができる。顧客にサービスを提供するために、サービスプロバイダ102は複数のサーバ、特殊用途デバイス、物理または仮想データストアなどを使用することができる。したがって、サービスプロバイダ102が顧客のためにホストするアプリケーションまたは格納するデータは、ハードウェアおよびソフトウェアコンポーネントの複合アーキテクチャを含み得る。顧客(ホストされるアプリケーションまたはデータの所有者)に提供されるサービスレベルは、サービスプロバイダ102が特定の方法で実装することができる、サーバ処理、メモリおよびネットワーキングなど多くのサービスパラメータに基づいて決定され得る。
【0017】
クラウド方式のサービスプロバイダは、異種アーキテクチャを有することができ、同様のサービスを異なるパラメータと共に提供することができる。例えば、データ記憶容量、処理能力、サーバレイテンシおよび同様のパラメータなどは、クラウドごとに異なり得る。また、サービスパラメータは提供されるサービスによって異なっていてもよい。クラウド間(または非クラウドネットワークからクラウドへの)マイグレーションを自動化し、効率を向上させるために、フォールトトレランス機能およびバックトラッキング機能を備える一部の実施形態により、パラメータ化動的モデルを使用することができる。多次元パラメータを、パラメータの実行順序と共に、例えば優先度に応じて完全手動、完全自動、または半自動で定義することができる。モデル実行コード(MEC)は、定義された要件の満足状態および移行元と移行先のクラウドのサービスレベルの比較に基づいて、シームレスな移行を確実なものにするようにPDMで定義されているパラメータの順序に従ってマイグレーションを実行することができる。
【0018】
図100において、サービスプロバイダ102(クラウド1)はマイグレーション処理における移行元クラウドとすることができ、サービスプロバイダ112(クラウド2)は移行先クラウドとすることができる。サービスプロバイダ102と同様に、サービスプロバイダ112も1つまたは複数のサーバ114と1つまたは複数の特殊用途デバイス116を使用してそのサービスを提供することができる。サービスプロバイダ102のサーバ104の1つ、サービスプロバイダ112のサーバ114の1つ、または他のクラウド110の1つまたは複数のサーバ118上で実行されるサードパーティサービスによって、PDMの定義およびMECの実行を管理し、実行することができる。
【0019】
図2に、本明細書に記載の少なくとも一部の実施形態により構成された、クラウドマイグレーションにおいて使用可能なパラメータ化動的モデルの一例とPDMパラメータの一例を概念的に示す。
【0020】
図2に示すように、
図200には、一部の例示の実施形態による、3つのパラメータ222、224、226と、各パラメータの3つの次元を備えるPDM220の一例を視覚化した図を示す。
図200にはさらに、レイテンシの例示のパラメータ230をその次元232、234および236と共に示す。例えば、次元232は例示のパラメータ230の上限(例えば1ミリ秒)を定義し、次元234はパラメータがクリティカルではないこと(フォールトトレランス機能と共に使用することができる)を規定し、パラメータ236はさらにフォールトトレランス規則(例えば「約0.99ミリ秒の場合はスキップする」)を定義することができる。
【0021】
PDMは、n次元空間における複数の次元に区分化可能な複数のパラメータにわたって定義されるアプリケーションの要件を定義する際に柔軟性、堅牢性および精度を持たせ、それによってマイグレーションの必要に応じて任意の種類のアプリケーションの要件を定義することを実質的に可能にすることができる。各PDMパラメータは、マイグレーション処理のために定義する必要がある任意の制御ユニットまたは定義ユニットを表すことができる。パラメータによって、記憶域、レイテンシ、計算能力、パワーバックアップ、動作可能時間、および同様のサービスレベルを定義することができる。各パラメータは、複数の次元も有し得る。したがって、マイグレーションにかかわるパラメータの数および複雑度を表現することができる。一部の実施形態では、PDMはNXN次元モデルとすることができ、行列モデルまたは対称モデルである必要はない。
【0022】
PDMにおけるパラメータは、それによって測定可能な要素を有する任意の単位を含むことができる。例えば、アプリケーションパラメータは100GBの最小記憶域を定義することができる。この場合、このパラメータは、MinSpace=100GBと設定することができる。測定可能性は論理的なものであってもよく、数値的なもののみとは限らない。例えば、三重冗長性を必要とするアプリケーションの場合、パラメータはTripleDataRedundancy=TRUEと定義することができる。
【0023】
実施形態によるシステムは、自動、手動または半自動でPDMを定義させることによりプログラムすることができる。例えば、ホストされているアプリケーションがチケット予約のアプリケーションである場合、あるモジュールが必要最大記憶域、ピーク時負荷限度、トランザクション処理タイムアウトなどを自動的に決定してもよい。次に、これらを自動的にPDMに取り込むことができる。この自動取り込みモジュールにおいて、PDMによって収集されたパラメータを上書きまたは微調整する手動ステップも含めることができる。
【0024】
取り込み済みPDMは、パラメータの実現の順序付けなどの実行データをさらに含んでもよい(例えば、ディスク記憶域は後で増やせるため、x個のユニットのレイテンシ時間の方が最大可用ディスク記憶域よりも重要な要素である)。実行データは、モデル実行コード(MEC)が使用する、PDMにおける他の種類のパラメータを基本的に定義または含むことができる。MECをPDMに含めることができ、移行先クラウド上、またはPDMの要件を実施してPDMで定められている順序づけに従ってアプリケーションを移行させようとするサードパーティサービス上で実行することができる。
【0025】
図3に、本明細書に記載の少なくとも一部の実施形態により構成された、サードパーティサービスが実行可能なモデル実行コードモジュールによるPDMの実行を示す。
【0026】
このMECは、PDMにおいて実行データ(または順序定義)によって指示されている通りにPDMを実行するように調整することができる。あるいは実行データは、MECに記憶してもよい。MECは様々な方法で設計することができる。例えば、シェルスクリプト、スクリプト、高水準プログラミング言語を使用してMECを作成してもよい。一例として、MECはパラメータを獲得してそれを移行先の環境に適用することができる。パラメータの値が移行先の環境で満たされない場合、MECは障害を返すことができる。他の実施形態では、MECは、任意の時点でマイグレーション障害があった場合に、複数回の再試行または手動介入を行ってPDMパラメータを再調整することを可能にする、フォールトトレランス機能およびバックトラッキング機能を含んでもよい。マイグレーション試行のエラー報告および最終報告は、マイグレーションアプリケーションまたはデータの所有者がカスタマイズ可能な方法で、MECによって出力してもよい。
【0027】
図3に示すように、
図300は、移行元クラウド352から、サードパーティマイグレーションシステム340によって管理されている移行先クラウド354へのアプリケーションのマイグレーションを概念的に示している。1つまたは複数のサーバ342によってマイグレーション用PDMを定義することができ、マイグレーション実行コードを実行することができる。PDMは多次元パラメータとして複合マイグレーション条件を含むことができる。前述のように、対称性は多次元PDMの要件である必要がない。
図300に示す例では、3つの例示のパラメータ(P1 344,P2 346およびP3 348)が含まれている。パラメータP1 344およびP2 346はそれぞれ2つの次元を有し、3番目のパラメータP3 348は単一の次元を有する。
【0028】
実施形態によっては、パラメータはパフォーマンスパラメータと必ずしも一対一対応である必要がない。概念パラメータを作成することもできる。例えば、移行先クラウドにおけるモデル実行、実行の順序付け、エラー処理および報告、一時ファイル作成およびクリーンアップもパラメータとして取り込むことができる。実施形態によるPDMとMECの組み合わせによって、マイグレーション処理中のデータとコードの分離を行ってもよい。また、この組み合わせにより、クラウドマイグレーションの問題を捕捉するために適用可能なPDM形式の柔軟性のあるデータ構造を実現する。
【0029】
図4に、本明細書に記載の少なくとも一部の実施形態により構成された、PDMパラメータの順序付けの一例を示す。
【0030】
図4の
図400に示すように、実行のためのPDMパラメータの順序付けは、パラメータからパラメータ、次元から次元、または次元からパラメータとすることができる。
図400では、例示のパラメータP1 462、P2 464およびP3 466がパイチャート形式で概念的に視覚化され、各パラメータの次元がパイチャートの区分で表されている。
【0031】
一例によると、パラメータの順序は、P3 466の次元D1からP1 462の次元D3に続くステップ472を含んでいてもよい(次元から次元への順序)。他の例示のステップ474は、P1 462の次元D4からP2 464に続いてもよい(次元からパラメータへの順序)。
【0032】
図5に、本明細書に記載の少なくとも一部の実施形態により構成された、クラウドマイグレーション用PDMを実装するために使用可能な汎用コンピューティングデバイス500を示す。例えば、コンピューティングデバイス500は
図3の1つまたは複数のサーバ342として使用することができる。例示の基本構成502では、コンピューティングデバイス500は1つまたは複数のプロセッサ504とシステムメモリ506とを含む。プロセッサ504とシステムメモリ504との間の通信のためにメモリバス508を使用することができる。この基本構成502は、
図5において内側の破線内のコンポーネントで表されている。
【0033】
所望の構成に応じて、プロセッサ504は任意の種類のものであってよく、これにはマイクロプロセッサ(μP)、マイクロコンピュータ(μC)、デジタル信号プロセッサ(DSP)またはこれらの任意の組み合わせが含まれるがこれらには限定されない。プロセッサ504は、レベルキャッシュメモリ512、プロセッサコア514およびレジスタ516などの1つまたは複数のキャッシュレベルを含むことができる。この例示のプロセッサコア514は、算術論理演算ユニット(ALU)、浮動小数点ユニット(FPU)、デジタル信号処理コア(DSPコア)、またはこれらの任意の組み合わせを含むことができる。プロセッサ504と共に例示のメモリコントローラ518も使用することができ、または実施態様によってはメモリコントローラ518はプロセッサ504の内部コンポーネントであってもよい。
【0034】
所望の構成に応じて、システムメモリ506はどのような種類であってもよく、揮発性メモリ(RAMなど)、不揮発性メモリ(ROM、フラッシュメモリなど)またはこれらの任意の組み合わせを含むが、これらには限定されない。システムメモリ506は、オペレーティングシステム520、1つまたは複数のアプリケーション522、およびプログラムデータ524を含むことができる。アプリケーション522は、クラウド管理アプリケーション、マイグレーション管理アプリケーション、または同様のアプリケーションとすることができ、これには、入力の受信、本明細書に記載のようにマイグレーションの顧客要件を満たすパラメータ化動的モデルの開発、更新および実行を行うことができるモデル実行コード526が含まれる。プログラムデータ524は、特に本明細書に記載のPDM528などを含むことができる。
【0035】
コンピューティングデバイス500は、追加の機能または装備や、基本構成502と任意の所望のデバイスおよびインターフェースとの間の通信を容易にする追加のインターフェースを有してもよい。例えば、バス/インターフェースコントローラ530を使用して、基本構成502と1つまたは複数のデータ記憶装置532とのストレージインターフェースバス534を介した通信を容易にしてもよい。データ記憶装置532は、1つもしくは複数の取外し式ストレージデバイス536、1つもしくは複数の非取外し式ストレージデバイス538、またはこれらの組み合わせとすることができる。取外し式ストレージデバイスおよび非取外し式ストレージデバイスの例をいくつか挙げると、フレキシブルディスクドライブやハードディスクドライブ(HDD)などの磁気ディスク、コンパクトディスク(CD)ドライブまたはデジタル多用途ディスク(DVD)ドライブなどの光ディスクドライブ、ソリッドステートドライブ(SSD)、およびテープドライブなどがある。コンピュータ記憶媒体の例としては、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータなどの情報の記憶のための任意の方法または技術で実装された揮発性および不揮発性媒体、取外し式および非取外し式媒体などがある。
【0036】
システムメモリ506、取外し式ストレージデバイス536および非取外し式ストレージデバイス538は、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリもしくはその他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、ソリッドステートドライブ、もしくはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくはその他の磁気ストレージデバイス、または所望の情報を記憶するために使用可能かつコンピューティングデバイス500がアクセス可能な他の任意の媒体を含むが、これらには限定されない。このようなコンピュータ記憶媒体は、コンピューティングデバイス500の一部であってもよい。
【0037】
コンピューティングデバイス500は、バス/インターフェースコントローラ530を介して様々なインターフェースデバイス(例えば1つまたは複数の出力装置542、1つまたは複数の周辺インターフェース544、および1つまたは複数の通信装置566)から基本構成502への通信を容易にするインターフェースバス540を含んでもよい。出力装置542の例としては、グラフィク処理ユニット548およびオーディオ処理ユニット550などがあり、これらを1つまたは複数のA/Vポート552を介してディスプレイまたはスピーカなどの様々な外部装置と通信するように構成することができる。1つまたは複数の例示の周辺インターフェース544は、シリアルインターフェースコントローラ554またはパラレルインターフェースコントローラ556を含んでもよく、これを入力装置(例えばキーボード、マウス、ペン、音声入力装置、タッチ入力装置など)などの外部装置またはその他の周辺装置(例えばプリンタ、スキャナなど)と1つまたは複数のI/Oポート558を介して通信するように構成することができる。例示の通信装置566は、ネットワークコントローラ560を含み、これを1つまたは複数の通信ポート564を介してネットワーク通信リンクで1つまたは複数の他のコンピューティングデバイス562と通信をしやすくするように構成することができる。1つまたは複数の他のコンピューティングデバイス562は、データセンターにおけるサーバ、顧客コンピュータおよび同等のデバイスを含むことができる。
【0038】
ネットワーク通信リンクは、通信媒体の一例とすることができる。通信媒体は、典型的にはコンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータにより、搬送波またはその他の搬送機構などの変調データ信号の形で具現化可能であり、かつ、任意の情報配信媒体を含むことができる。「変調データ信号」は、信号内の情報を符号化するようにその特性の1つまたは複数が設定または変更された信号とすることができる。例えば、通信媒体は、有線接続、直接有線接続などの有線媒体、音響、高周波(RF)、マイクロ波、赤外線(IR)およびその他の無線媒体などの無線媒体を含むがこれらには限定されない。本明細書で使用するコンピュータ可読媒体という用語は、記憶媒体と通信媒体の両方を含み得る。
【0039】
コンピューティングデバイス500は、上述の機能のいずれかを含む汎用または専用サーバ、メインフレーム、または同様のコンピュータの一部として実装可能である。コンピューティングデバイス500は、ラップトップコンピュータ構成と非ラップトップコンピュータ構成の両方を含むパーソナルコンピュータとして実装することも可能である。
【0040】
例示の実施形態は、クラウドマイグレーションにおける仮説およびスキーマレス構成管理のために要件メトリクスの対話型シミュレーションを実装する方法を含むことができる。これらの方法は、本明細書に記載の構造を含む任意の数の方法で実装することができる。そのような1つの方法は、本開示に記載の種類のデバイスの機械操作によるものであってもよい。他の任意的な方法は、方法の個々の操作のうちの1つまたは複数について、1人または複数の操作者が操作の一部を行い、他の操作を機械が行う組み合わせで行い得るものとすることもできる。このような操作者は、互いに1カ所に配置される必要はなく、各操作者をプログラムの一部を実行する機械のみと共に配置することができる。他の例では、機械により自動化可能な事前に選択された基準などによって、人間との対話を自動化することができる。
【0041】
図6は、本明細書に記載の少なくとも一部の実施形態により構成され、
図5のデバイス500などのコンピューティングデバイスまたは
図3の1つまたは複数のサーバ342によって実行可能なクラウドマイグレーション用パラメータ化動的モデルを提供する方法の一例を示す流れ図である。例示の方法は、ブロック622、624および/または626の1つまたは複数によって例示されるような1つまたは複数の操作、機能、または動作を含むことができる。ブロック622〜626に記載の操作は、コンピューティングデバイス610のコンピュータ可読媒体620などのコンピュータ可読媒体に、コンピュータ実行可能命令として記憶することもできる。
【0042】
クラウドマイグレーション用パラメータ化動的モデルを提供する例示の処理は、ブロック622「PDMパラメータおよび実行データを定義する」から開始することができ、
図2のパラメータ220などの多次元動的パラメータを、移行元クラウド、移行先クラウド、または
図3のサーバ342などのサードパーティエンティティにおけるサーバ管理マイグレーションによって、実行データと共に定義することができる。
【0043】
ブロック622に続いてブロック624「定義されたパラメータ順序に従ってMECを実行する」に進み、例えばPDMにおいて順序パラメータによって定義された順序に従って、PDMパラメータを
図5のMEC526により実行することができる。
【0044】
ブロック624に続いてブロック626「エラー/障害が検出された場合、フォートトレランス規則/バックトラッキング規則を適用する」に進む。ブロック626では、PDMにおける定義に従ってフォールトトレランス処置およびバックトラッキング処置を行うことができる。例えば、パラメータをスキップしたり、マイグレーションを停止したり、警告を出したりなどすることができる。
【0045】
上記の処理に含まれる各ブロックは例示のためのものである。クラウドマイグレーション用パラメータ化動的モデルの提供は、これよりも少ないブロックまたは追加のブロックを含む同様の処理によって実装することもできる。一部の例では、これらのブロックを異なる順序で実行してもよい。他の例では、様々なブロックを削除してもよい。さらに他の例では、様々なブロックを分割して増やしたり、組み合わせてブロックを少なくしたりすることもできる。
【0046】
図7に、本明細書に記載の少なくとも一部の実施形態により構成された、例示のコンピュータプログラム製品700のブロック図を示す。一部の例では、
図7に示すように、コンピュータプログラム製品700は、例えばプロセッサによって実行されると本明細書に記載の機能を実現可能な1つまたは複数の機械可読命令704も含む信号伝達媒体702を含むことができる。したがって、例えば
図5のプロセッサ504を参照すると、モデル実行コード526は、媒体702によってプロセッサ504に伝達された命令704に応答して
図7に示すタスクのうちの1つまたは複数のタスクを開始し、本明細書に記載のクラウドマイグレーション用パラメータ化動的モデルの提供に関連付けられた動作を行うことができる。これらの命令の一部は、本明細書に記載の一部の実施形態により、例えばPDMパラメータおよび実行データを定義するための命令、定義されたパラメータ順序に従ってMECを実行する命令、ならびに、エラーまたは障害が検出された場合にフォールトトレランス規則および/またはバックトラッキング規則を適用する命令を含むことができる。
【0047】
一部の実施態様では、
図7に示す信号伝達媒体702は、ハードディスクドライブ、ソリッドステートドライブ、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、デジタルテープ、メモリなどのコンピュータ可読媒体706を包含し得るがこれらには限定されない。一部の実施形態では、信号伝達媒体702は、メモリ、読取り/書込み(R/W)CD、R/WDVDなどの記録可能媒体708を包含するが、これらには限定されない。一部の実施態様では、信号伝達媒体702は、デジタルおよび/またはアナログ通信媒体(例えば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど)などの通信媒体710を包含し得るがこれらには限定されない。したがって、例えばプログラム製品700は、RF信号伝達媒体によってプロセッサ504の1つまたは複数のもモジュールに伝達することができ、その場合、信号伝達媒体702は無線通信媒体710(例えばIEEE802.11に準拠した無線通信媒体)によって伝達される。
【0048】
一部の例示の実施形態によると、クラウドマイグレーション用パラメータ化動的モデル(PDM)を実装する方法は、PDMによって、移行元クラウドから移行先クラウドにマイグレーションのために満たすべきサービスレベル合意要件が定義され、各パラメータが1つまたは複数の次元を有する複数のPDMパラメータを決定することと、PDMによって定義された順序に従ってPDMを実行することによってクラウドマイグレーションを実行することとを含むことができる。
【0049】
他の実施形態によると、この方法はPDMパラメータの各次元において、PDMパラメータの条件付き限度、属性、優先順位、およびフォールトトレランス動作からなる組のうちの1つを定義することを含んでもよい。PDMパラメータの順序は、少なくとも1つのフォールトトレランス機能および少なくとも1つのバックトラッキング機能を備えるモデル実行コード(MEC)によって定義することができる。MECは、PDMとPDMとは異なるMECモジュールとのうちの一方の一部であってもよい。フォールトトレランス定義およびバックトラッキング機能は、各PDMパーメータとPDMパラメータ群とのうちの一方について定義してもよい。
【0050】
他の実施形態によると、この方法は、マイグレーションが失敗した場合にフォールトトレランス機能およびバックトラッキング機能によってPDMパラメータを再調整するために、複数回の再試行と手動介入のうちの一方を実行可能にすることも含み得る。順序は、パラメータからパラメータへの連続と次元から次元への連続とのうちの少なくとも一方を含み得る。この方法は、さらに、自動定義と手動定義とのうちの少なくとも一方により前記複数のPDMパラメータを決定すること、ユーザが、1つもしくは複数のPDMパラメータの上書きと微調整とのうちの一方を行うことができるようにすること、および/またはクラウド環境と非クラウド環境とのうちの一方における実測値に基づいて前記複数のPDMパラメータの1つもしくは複数の次元を定義することを含み得る。
【0051】
さらに他の例によると、移行元クラウド運営者、移行先クラウド運営者およびサードパーティサービス業者のうちの1者または複数者によって、複数のPDMパラメータを決定することができ、PDMを実行することができる。PDMパラメータは、サーバレイテンシ、記憶限度、割当て記憶容量、スケーラビリティファクタ、バックアップ保証、計算能力、パワーバックアップ、動作可能時間保証、ピーク期間負荷、トランザクション処理タイムアウト、同時利用上限ユーザ数、データロールバック容量、リアルタイムミラリング機能、資源利用状況報告機能、監査証跡機能、サポート機能、および/または並列コンピューティング環境のためのコードの自動並列化からなる組のうちの少なくとも1つを定義することができる。PDMパラメータの次元は、数値および論理値のうちの1つまたは複数を含むことができる。少なくとも2つのPDMパラメータは、異なる次元数を有してもよい。さらに、この方法は、ユーザの要求に基づいて、マイグレーション試行に関連付けられたエラー報告と最終報告とのうちの少なくとも一方を提供することを含むことができる。クラウドマイグレーションは、単一移行元から複数移行先へのマイグレーション、複数移行元から単一移行先へのマイグレーション、および複数移行元から複数移行先へのマイグレーションのうちの1つを含み得る。
【0052】
他の例示の実施形態によると、クラウドマイグレーション用パラメータ化動的モデル(PDM)を実装するコンピューティングデバイスは、命令を記憶するように構成されたメモリと、命令と共にマイグレーションアプリケーションを実行するように構成された処理ユニットとを含むことができる。マイグレーションアプリケーションは、PDMによって移行元クラウドから移行先クラウドへのマイグレーションのために満たすべきサービスレベル合意要件が定義され、各パラメータが1つまたは複数の次元を有する複数のPDMパラメータを決定してもよく、PDMによって定義された順序に従ってPDMを実行してもよい。
【0053】
一部の例によると、マイグレーションアプリケーションは、PDMパラメータの各次元において、PDMパラメータの条件付き限度、属性、優先順位、およびフォールトトレランス動作からなる組のうちの1つをさらに定義してもよい。PDMパラメータの順序は、少なくとも1つのフォールトトレランス機能と少なくとも1つのバックトラッキング機能とを備えるモデル実行コード(MEC)によって定義することができる。MECは、PDMとPDMとは異なるMECモジュールとのうちの一方の一部とすることができる。フォールトトレランス定義およびバックトラッキング機能は、各PDMパラメータとPDMパラメータ群とのうちの一方について定義してもよい。マイグレーションアプリケーションは、マイグレーション障害があった場合にフォールトトレランス機能およびバックトラッキング機能によりPDMパラメータを再調整するために、複数回の再試行と手動介入とのうちの一方を実行可能にしてもよい。
【0054】
他の例によると、順序は、パラメータからパラメータへの連続と次元から次元への連続とのうちの少なくとも一方を含み得る。マイグレーションアプリケーションは、さらに、自動定義と手動定義とのうちの少なくとも一方により前記複数のPDMパラメータを決定すること、1つもしくは複数のPDMパラメータの上書きと微調整とのうちの一方を行うことができるようにすること、および/またはクラウド環境と非クラウド環境とのうちの一方における実測値に基づいて前記複数のPDMパラメータの1つもしくは複数の次元を定義することを行うことができる。移行元クラウド運営者、移行先クラウド運営者およびサードパーティサービス業者のうちの1者または複数者によって、前記複数のPDMパラメータを決定することができ、PDMを実行することができる。
【0055】
他の例によると、PDMパラメータは、サーバレイテンシ、記憶限度、割当て記憶容量、スケーラビリティファクタ、バックアップ保証、計算能力、パワーバックアップ、動作可能時間保証、ピーク期間負荷、トランザクション処理タイムアウト、同時利用上限ユーザ数、データロールバック容量、リアルタイムミラリング機能、資源利用状況報告機能、監査証跡機能、サポート機能、および/または並列コンピューティング環境のためのコードの自動並列化からなる組のうちの少なくとも1つを定義することができる。PDMパラメータの次元は、数値および論理値のうちの1つまたは複数を含むことができる。少なくとも2つのPDMパラメータは、異なる次元数を有する。マイグレーションアプリケーションは、さらに、ユーザの要求に基づいて、マイグレーション試行に関連付けられたエラー報告と最終報告とのうちの少なくとも一方を提供してもよい。さらに、クラウドマイグレーションは、単一移行元から複数移行先へのマイグレーション、複数移行元から単一移行先へのマイグレーション、および複数移行元から複数移行先へのマイグレーションのうちの1つを含むことができる。
【0056】
他の例示の実施形態によると、コンピュータ可読記憶媒体に、クラウドマイグレーション用パラメータ化動的モデル(PDM)を実装するための命令が記憶されていてもよい。これらの命令は、PDMによって移行元クラウドから移行先クラウドへのマイグレーションのために満たすべきサービスレベル合意要件が定義され、各パラメータが1つまたは複数の次元を有する複数のPDMパラメータを決定することと、PDMによって定義された順序に従ってPDMを実行することによってクラウドマイグレーションを行うこととを含むことができる。
【0057】
他の例によると、命令は、PDMパラメータの各次元において、PDMパラメータの条件付き限度、属性、優先順位、およびフォールトトレランス動作からなる組のうちの1つをさらに定義してもよい。PDMパラメータの順序は、少なくとも1つのフォールトトレランス機能と少なくとも1つのバックトラッキング機能とを備えるモデル実行コード(MEC)によって定義される。MECは、PDMとPDMとは異なるMECモジュールとのうちの一方の一部である。フォールトトレランス定義およびバックトラッキング機能は、各PDMパラメータとPDMパラメータ群とのうちの一方について定義される。命令は、マイグレーション障害があった場合にフォールトトレランス機能およびバックトラッキング機能によりPDMパラメータを再調整するために、複数回の再試行と手動介入とのうちの一方を実行可能にすることも含み得る。
【0058】
他の例によると、順序は、パラメータからパラメータへの連続と次元から次元への連続とのうちの少なくとも一方を含み得る。命令は、さらに、自動定義と手動定義とのうちの少なくとも一方により前記複数のPDMパラメータを決定すること、ユーザが1つまたは複数のPDMパラメータの上書きと微調整とのうちの一方を行うことができるようにすること、および/またはクラウド環境と非クラウド環境とのうちの一方における実測値に基づいて前記複数のPDMパラメータの1つまたは複数の次元を定義することを含むことができる。移行元クラウド運営者、移行先クラウド運営者およびサードパーティサービス業者のうちの1者または複数者によって前記複数のPDMパラメータを決定することができ、PDMを実行することができる。
【0059】
いくつかの例によると、PDMパラメータは、サーバレイテンシ、記憶限度、割当て記憶容量、スケーラビリティファクタ、バックアップ保証、計算能力、パワーバックアップ、動作可能時間保証、ピーク期間負荷、トランザクション処理タイムアウト、同時利用上限ユーザ数、データロールバック容量、リアルタイムミラリング機能、資源利用状況報告機能、監査証跡機能、サポート機能、および/または並列コンピューティング環境のためのコードの自動並列化からなる組のうちの少なくとも1つを定義することができる。PDMパラメータの次元は、数値および論理値のうちの1つまたは複数を含むことができる。少なくとも2つのPDMパラメータは、異なる次元数を有してもよい。命令は、さらに、ユーザの要求に基づいて、マイグレーション試行に関連付けられたエラー報告と最終報告とのうちの少なくとも一方を提供することを含んでもよい。クラウドマイグレーションは、単一移行元から複数移行先へのマイグレーション、複数移行元から単一移行先へのマイグレーション、および複数移行元から複数移行先へのマイグレーションのうちの1つを含むことができる。
【0060】
システムの側面でのハードウェアの実装形態とソフトウェアの実装形態との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般に(いつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点で)コスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび/またはシステムおよび/または他の技術をもたらすことができる様々な達成手段があり(例えば、ハードウェア、ソフトウェア、および/またはファームウェア)、好ましい達成手段は、プロセスおよび/またはシステムおよび/または他の技術が導入される状況によって異なる。例えば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび/またはファームウェアの達成手段を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実装形態を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および/またはファームウェアのなんらかの組み合わせを選択することができる。
【0061】
前述の詳細な説明では、ブロック図、フローチャート、および/または例の使用によって、装置および/またはプロセスの様々な実施形態を説明してきた。そのようなブロック図、フローチャート、および/または例が1つまたは複数の機能および/または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および/または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組み合わせにより、個別におよび/または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、1つまたは複数のコンピュータ上で動作する1つまたは複数のコンピュータプログラムとして(例えば、1つまたは複数のコンピュータシステム上で動作する1つまたは複数のプログラムとして)、1つまたは複数のプロセッサ上で動作する1つまたは複数のプログラムとして(例えば、1つまたは複数のマイクロプロセッサ上で動作する1つまたは複数のプログラムとして)、ファームウェアとして、あるいは実質上それらの任意の組み合わせとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに/またはソフトウェアおよび/もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。
【0062】
本開示は、本出願に記載の特定の実施形態にのみ限定されるものではない。これらの実施形態は様々な態様を例示することを意図したものである。当業者には明らかなように、本開示の趣旨および範囲から逸脱することなく、多くの変更および変形態様が可能である。上記の説明から、本明細書に列挙されているものに加えて、本開示の範囲における機能的に同等の方法および装置が当業者には明らかであろう。そのような変更および変形態様は、添付の特許請求の範囲に含まれるものと意図されている。本開示は、添付の特許請求の範囲の記載と、そのような特許請求の範囲が権利を与えられる等価物の全範囲によってのみ限定されるべきである。本開示は、特定の方法、試薬、化合物組成または生体系に限定されず、これらは当然ながら異なり得ることを理解すべきである。本明細書で使用する用語は、特定の実施形態について説明するためだけのものにすぎず、限定的であることを意図したものではないことも理解すべきである。
【0063】
さらに、本明細書に記載された主題のメカニズムを様々な形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フロッピーディスク、ハードディスクドライブ、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、デジタルテープ、コンピュータメモリ、ソリッドステートドライブなどの記録可能なタイプの媒体、ならびに、デジタル通信媒体および/またはアナログ通信媒体(例えば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど)の通信タイプの媒体が含まれるが、それらには限定されない。
【0064】
本明細書で説明したやり方で装置および/またはプロセスを記載し、その後そのように記載された装置および/またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および/またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインタフェース、およびアプリケーションプログラムのうちの1つもしくは複数、タッチパッドもしくはスクリーンなどの1つもしくは複数の相互作用装置、ならびに/またはフィードバックループおよびコントロールモータを含むコントロールシステム(例えば、ガントリーシステムの位置検知用および/もしくは速度検知用フィードバック、コンポーネントの移動用および/もしくは数量の調整用コントロールモータ)を含むことを、当業者は理解するであろう。
【0065】
通常のデータ処理システムは、データコンピューティング/通信システムおよび/またはネットワークコンピューティング/通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。本明細書に記載された主題は、様々なコンポーネントをしばしば例示しており、これらのコンポーネントは、他の様々なコンポーネントに包含されるか、または他の様々なコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例示にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の2つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的に接続可能な、および/もしくは物理的に相互作用するコンポーネント、ならびに/またはワイヤレスに相互作用可能な、および/もしくはワイヤレスに相互作用するコンポーネント、ならびに/または論理的に相互作用する、および/もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
【0066】
本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。様々な単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
【0067】
通常、本明細書において、特に添付の特許請求の範囲(例えば、添付の特許請求の範囲の本体部)において使用される用語は、全体を通じて「オープンな(open)」用語として意図されていることが、当業者には理解されよう(例えば、用語「含む(including)」は、「含むがそれに限定されない(including but not limited to)」と解釈されるべきであり、用語「有する(having)」は、「少なくとも有する(having at least)」と解釈されるべきであり、用語「含む(includes)」は、「含むがそれに限定されない(includes but is not limited to)」と解釈されるべきである、など)。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。例えば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含む場合であっても、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではない(例えば、「a」および/または「an」は、「少なくとも1つの」または「1つまたは複数の」を意味すると解釈されるべきである)。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう(例えば、他の修飾語なしでの「2つの記載(two recitations)」の単なる記載は、少なくとも2つの記載、または2つ以上の記載を意味する)。
【0068】
さらに、「A、BおよびC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(例えば、「A、B、およびCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方(one of the terms)、当該用語のいずれか(either of the terms)、または両方の用語(both terms)を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。例えば、句「AまたはB」は、「A」または「B」あるいは「AおよびB」の可能性を含むことが理解されよう。
【0069】
さらに、本開示の特徴または態様がマーカッシュ群により記載される場合、それによって本開示がマーカッシュ群の任意の個々の要素または要素の部分集合についても説明されることが当業者にはわかるであろう。
【0070】
当業者ならわかるように、例えば書面による説明を提供するなどのあらゆる目的において、本明細書で開示されているすべての範囲は、考えられるあらゆる部分範囲およびその部分範囲の組み合わせも含む。記載の範囲はすべて、少なくとも2等分、3等分、4等分、5等分、10等分などに分割された同じ範囲を十分に説明し、可能にするものであることを容易に認識することができる。非限定的な例として、本明細書に記載の各範囲は、下3分の1、中間3分の1、上3分の1などに容易に分割可能である。また、当業者ならわかるように、「〜まで」、「少なくとも」、「〜を超える」、「〜未満」などすべての言語は、記載されている数を含み、前述のような部分範囲にその後分割可能な範囲を指す。最後に、当業者ならわかるように、範囲は、個々の要素のそれぞれを含む。したがって、例えば1〜3個のセルを有する群とは、1、2または3個のセルを有する群を指す。同様に、1〜5個のセルを有する群は、1、2、3、4または5個のセルを有する群を指す、という具合である。
【0071】
本明細書では様々な態様および実施形態について説明したが、当業者には他の態様および実施形態も明らかであろう。本明細書で開示する様々な態様および実施形態は、例示のためのものであり、限定することを意図したものではなく、真の範囲および趣旨は以下の特許請求の範囲によって示される。