(58)【調査した分野】(Int.Cl.,DB名)
前記処理能力メトリックは、処理のタイプ、スケジューラ優先順位、および同時に実行されるタスクの個数のうちの1つまたは複数にさらに基づく、請求項3に記載の方法。
前記顧客アプリケーションのために割り振られるメモリタイプの重み付き組合せに基づいて前記メモリメトリックを計算することであって、前記メモリタイプは、メインメモリ、フラッシュメモリ、ローカルメモリ、およびネットワークメモリのうちの1つまたは複数を含む、計算すること
をさらに含む、請求項3に記載の方法。
前記割り振られるメモリタイプは、事前定義の期間にわたって平均をとられる前記ソースクラウドコンピューティング環境での実際の割振りを表す、請求項6に記載の方法。
前記ソースクラウドコンピューティング環境および前記ターゲットクラウドコンピューティング環境内の前記性能パラメータは、各環境に関連する信頼性要因を表す信頼性パラメータをさらに含む、請求項9に記載のコンピューティングデバイス。
前記ターゲットクラウドコンピューティング環境内の前記性能メトリックは、前記ターゲットクラウドコンピューティング環境での顧客の所望の性能に基づいて重みを付けられる、請求項9に記載のコンピューティングデバイス。
【発明を実施するための形態】
【0012】
次の詳細な説明では、本明細書の一部を形成する添付図面を参照する。図面では、文脈がそうではないと規定しない限り、同様の記号が、通常は同様の構成要素を識別する。発明を実施するための形態、図面、および特許請求の範囲で説明される例示的実施形態は、限定的であることを意味するものではない。本明細書で提示される主題の趣旨または範囲から逸脱せずに、他の実施形態を利用することができ、他の変更を行うことができる。全般的に本明細書で説明され、図面に図示される本開示の態様を、さまざまな異なる構成で配置し、置換し、組み合わせ、分離し、設計することができ、そのすべてが本明細書で明示的に企図されていることが、たやすく理解されるであろう。
【0013】
本開示は、全般的には、なかんずく、クラウドサービスの間での転送時のアプリケーション性能を維持することに関する方法、装置、システム、デバイス、およびコンピュータプログラム製品についての説明となる。
【0014】
短く言うと、新しいサービスプロバイダがリソースの異なる混合物を有する場合であっても、アプリケーションを移行するために、使用されるリソースを追跡し、新しいクラウドベースのサービスプロバイダで提供されるコンピューティングリソース全体の類似するレベルを保証する技術を提示する。移行されるアプリケーションによって使用中のコンピューティングリソースと、使用されまたは消費されるコンピューティング能力のレベルとを識別することができる。コンピューティングリソースのそれぞれに、関連するサービスレベルに従ってスコアを割り当てることができる。たとえば、アプリケーション処理およびネットワーキング状況に対する影響による個々のスコアの重み付きの組合せとして生成される全体的なスコアを、移行されるアプリケーションが類似する性能レベルを受け取ることを保証するために既存のサービスプロバイダと新しいサービスプロバイダとの間でのサービスレベルの比較に使用することができる。加えて、個々のスコアおよび全体的なスコアを、新しいサービスプロバイダによって、類似する性能レベルを提供するためにそのリソースを正しく割り振るのに使用することができる。
【0015】
図1に、本明細書で説明される少なくともいくつかの実施形態に従って配置された、クラウドコンピューティング環境の間の転送時のアプリケーション性能の維持を実施できる、例のシステムを示す。
【0016】
図で100と示されているように、サービスプロバイダ102(クラウド1)は、個々の顧客もしくは企業顧客108および109のためにさまざまなアプリケーション、データストレージ、データ処理、または匹敵するサービスなどのサービスをホスティングすることができる。サービスプロバイダ102は、サービスを提供する1つまたは複数のデータセンタを含むことができ、1つもしくは複数のサーバ104および/またはファイヤウォール、ルータ、その他などの1つもしくは複数の特殊目的デバイス106を使用することができる。顧客にサービスを提供するために、サービスプロバイダ102は、複数のサーバ、特殊目的デバイス、物理データストアまたは仮想データストアなどを使用することができる。したがって、顧客のためにサービスプロバイダ102によってホスティングされるアプリケーションまたはサービスプロバイダ102によって格納されるデータは、ハードウェアコンポーネントおよびソフトウェアコンポーネントの複雑なアーキテクチャを伴う可能性がある。顧客(ホスティングされるアプリケーションまたはデータの所有者)に提供されるサービスレベルを、サービスプロバイダ102によって特定の形で実施され得るサーバ処理、メモリ、およびネットワーキングなどの複数のサービスパラメータに基づいて決定することができる。
【0017】
クラウドベースのサービスプロバイダは、異なるアーキテクチャを有する可能性があり、類似するサービスであるが別個のパラメータを有するサービスを提供する場合がある。たとえば、データストレージ容量、処理能力、サーバ待ち時間、および類似する態様は、クラウドごとに異なる可能性がある。さらに、サービスパラメータは、提供されるサービスに依存して変化する可能性がある。クラウドを比較することの重荷を減らし、移行されるアプリケーションに異なるサービスプロバイダによって類似するレベルの性能を提供できることを保証するために、いくつかの例の実施形態による重み付きスコアベースのシステムを使用することができる。
【0018】
図中の100では、移行プロセスにおいて、サービスプロバイダ102(クラウド1)をソースクラウドとすることができ、サービスプロバイダ112(クラウド2)をターゲットクラウドとすることができる。サービスプロバイダ102に似て、サービスプロバイダ112も、サービスを提供するために1つまたは複数のサーバ114および1つまたは複数の特殊目的デバイス116を使用することができる。性能レベル判定およびスコアリングを、サービスプロバイダ102のサーバ104のうちの1つ、サービスプロバイダ112のサーバ114のうちの1つ、または別のクラウド110の1つまたは複数のサーバ118上で実行されるサードパーティサービスによって管理し、実行することができる。
【0019】
図2に、本明細書で説明される少なくともいくつかの実施形態に従って配置された、クラウドコンピューティング環境の間の転送時にアプリケーション性能を維持する一例を示す。
【0020】
前に議論したように、サーバ処理、メモリ、およびネットワーキングなどのサービスパラメータは、異なるサービスプロバイダによってさまざまな形で実施される可能性がある。いくつかの例の実施形態によれば、クラウドコンピューティングアプリカビリティスコア(CCAS)メトリックは、クラウドコンピューティング構成状態と、顧客アプリケーションが必要とするまたは顧客アプリケーションに適切なサービスレベルおよびコンピューティング性能を提供する能力とを示す定量的な値を提供することができる。CCASメトリックは、類似するサービスレベルおよびアプリケーション性能を提供できる、異なるクラウドコンピューティング環境の比較を可能にすることができる。さらに、CCASは、任意のクラウドコンピューティング環境構成を任意の他のオプションの構成と比較することを可能にするスコアリングスケールを提供することができる。したがって、スコアリングスケールを、クラウドコンピューティング環境の間で移行すべきか否かの判断およびターゲットサービスプロバイダが類似する性能レベルを保証するためにシステムリソースをどのように割り振るべきかの判断を行うことを可能にするツールとして使用することができる。この判断は、事前定義のルールに基づいて自動的または顧客によって手動で行うことができる。
【0021】
図2に示されているように、
図200は、いくつかの例の実施形態による移行援助システムの1つの例の実施態様を示す。1つまたは複数の顧客アプリケーション226を、1つまたは複数のサーバ220によって管理されるソースクラウドコンピューティング環境222でホスティングすることができる。クラウドコンピューティング環境222は、使用可能な処理能力、実際の処理能力、異なるデータストレージオプションの組合せ(ローカル、リモート、高速アクセス、分散など)、および/またはネットワーク能力(帯域幅、待ち時間、アップタイム保証など)に基づいて、顧客アプリケーション226に性能レベルを提供することができる。
【0022】
移行モジュール、クラウドコンピューティング管理アプリケーション、または類似するシステムの一部として提供されるCCASツール238は、ソースクラウドコンピューティング環境222の個々のメトリックを識別し、メトリックの個々のスコアを計算し、個々のスコアの重み付きの組合せに基づいて全体的なスコア(CCAS)を判定することができる。ソースクラウドコンピューティング環境222のCCASを、1つまたは複数のサーバ230によって管理されるターゲットクラウドコンピューティング環境232での期待される性能レベルのベンチマークとして使用することができる。
【0023】
ターゲットクラウドコンピューティング環境232のCCASを、ターゲットクラウドコンピューティング環境によって提供される仕様またはターゲットクラウドコンピューティング環境上で動作する実際のシミュレーションに基づいて計算することができる。同一のCCASを達成するために、ターゲットシステム内で複数のオプションを有することが可能である場合がある。シミュレーションを動作させる場合には、包括的なテストケースを使用することができ、あるいは、より正確な比較のために、アプリケーション226の実際の動作条件をエミュレートする特定のシナリオを使用して(アプリケーション236)、ターゲットクラウドコンピューティング環境232での性能レベルを判定することができる。
【0024】
したがって、クラウドコンピューティングサービスの間での転送時のアプリケーション性能の維持は、次の2つのステージから開始することができる:起点サービスプロバイダでの性能レベルに基づく起点CCASの計算(1)およびターゲットサービスプロバイダでの(シミュレートされたまたは期待される)性能レベルに基づくターゲットCCASオプションの計算。CCASツール238は、起点CCASおよびターゲットCCASを比較し、ターゲットスコアがソーススコアと一致しまたはこれを超えるかどうかを判定することができる(この判定に基づいて、移行を自動的に開始することができる)。いくつかの例の実施形態では、顧客が移行に関する判断を行えるように、結果は、サードパーティエンティティ(たとえば、サーバ228上で実行される移行サービス)によって顧客に提供される。
【0025】
他の例の実施形態では、ソースCCASと一致するかこれを超える1つまたは複数の構成が識別されるまで、ターゲットCCASの個々のスコアの重み付けを調整することができる。さらに他の例の実施形態では、ソースクラウドコンピューティング環境222およびターゲットクラウドコンピューティング環境232は、あるサービスプロバイダの異なるサイトとすることができ、そのサービスプロバイダが、CCASツール238を動作させて、ターゲットサイトへの顧客アプリケーションの移行が性能レベルに対して悪影響を有するかどうかを判定することができる。
【0026】
図3に、本明細書で説明される少なくともいくつかの実施形態に従って配置された、クラウドコンピューティング環境の間の転送時のアプリケーション性能を維持するもう1つの例を示す。
【0027】
アプリケーション性能を維持するシステムの異なる構成が、
図300に示されている。1つまたは複数のサーバ320によって管理されるソースクラウドコンピューティング環境322は、アプリケーション326をホスティングすることができる。
図2で200と示されたシナリオとは異なって、ターゲットクラウドコンピューティング環境332のサーバ330は、CCASツール338を動作させ、ソースクラウドコンピューティング環境322から性能レベル情報を受信することができる。CCASツール338は、それ自体のクラウド(ターゲットクラウドコンピューティング環境332)から性能レベル情報(CCAS値)を受け取り、ソースクラウドコンピューティング環境322での性能レベルと一致しまたはこれを超えることができるかどうかを判定することができる。
【0028】
代替案では、CCASツール338は、少なくとも同一レベルの性能を提供できるように、重み付け値を調整し、そのアプリケーション336が移行されつつある顧客に提供できるコンピューティングリソース割振りの1つまたは複数の組合せを判定することができる。
【0029】
図4に、本明細書で説明される少なくともいくつかの実施形態に従って配置された、ソースクラウドコンピューティング環境およびターゲットクラウドコンピューティング環境ならびにCCAS環境に基づいて判定される移行に関する1つまたは複数のオプションについてCCASをどうのように計算できるのかを概念的に示す。
【0030】
図中の400に示されているように、移行ツール、性能管理ツール、または類似するエンティティは、処理能力442、メモリ444、およびネットワーキング446のスコアをソースクラウド440から受け取り、重み付きの形で組み合わせ(448)、ソースCCAS 462をもたらすことができる。移行経路の反対側では、処理能力452、メモリ454、およびネットワーキング456のスコアを、ターゲットクラウド450から受け取り、重み付きの形で組み合わせ(458)、ターゲットCCAS 460をもたらすことができる。ソースCCAS 462およびターゲットCCAS 460を比較して(464)、ターゲットクラウド450での性能レベルをソースクラウド440の性能レベルと一致させることができるかどうかを判定することができる。同一のまたは類似する性能レベルを、異なるリソース割振りを使用して提供することができるので、複数のオプション466を、比較結果から判定し、顧客に提供することができる。ソースクラウド性能レベルとの一致のためにリソース割振りを調整できるように、オプション466をターゲットクラウド450にフィードバックすることもできる。
【0031】
性能レベルおよび、それに関するCCASを、クラウドサーバコンピューティング要素すなわち処理能力、メモリストレージ効率、およびネットワーキングによって判定することができる。処理能力パラメータは、割り振られるプロセッサのタイプ(コンピューティングシステム内に複数のタイプの処理コアがある場合がある)ならびにクラウドコンピューティング環境サーバによって特定のタスク(1つまたは複数)および/またはアプリケーション(1つまたは複数)に割り振られる時間に依存する可能性がある。メモリストレージ効率パラメータは、処理時間に対する異なるタイプのメモリ要素の影響に焦点を合わせることができる。たとえば、クラウドコンピューティング環境内のデータストレージは、メインメモリ(DRAMのうちでアプリケーションを実行している間にプロセッサによって使用される部分)、フラッシュメモリ(使用可能なストレージの一部とすることができる高速の使用可能なメモリ)、ローカルストレージ(アプリケーションを走行させるコンピュータにローカルに接続された相対的に大きいメモリ/ディスクボリューム、動作クセシビリティはネットワーキング性能に依存しない)、およびネットワークメモリ(任意のクラウドサーバに配置された事実上無制限の量のメモリ/ディスク、アクセシビリティはネットワーキング性能に直接に依存する)を含むことができる。ネットワーキングパラメータは、クラウドコンピューティング環境の処理手段とメモリストレージに格納されたデータとの間の接続と定義することができる。ネットワーキングパラメータは、応答時間に関するクラウドコンピューティング性能に関するものとすることができる。
【0032】
全体的なメトリックCCASを、各クラウドコンピューティング要素(それに関してこの項が定義されなかった要素)のスコアリングスケールを提供することと、各クラウドコンピューティング要素にアプリケーション性能に対する影響に従って重み付け係数を割り当てることとに基づいて定義することができる。処理能力パラメータPRを、アプリケーションによって使用される実際の処理能力(APP)と定義することができ、このAPPは、使用可能な処理能力(PP)の分数であり、システムの処理能力によって乗算される。このパラメータを、使用量%および利用されるPPによって、次式として定義することができる。
[1] PR=ΣAPPi/PPi[%]*PPi
ここで、iは、特定のタイムスロットを指す。
【0033】
起点クラウドコンピューティング環境のサーバは、使用される処理のタイプ(サーバだけではなく、システムがヘテロジニアスアーキテクチャを有する場合があるので、プロセスが動作しつつある実際のCPU)、スケジューラ優先順位、および何個のタスクが同時に動作しつつあるのかを報告することができる。これを使用して、処理能力(PP)を計算することができる。平均値と最大値との両方を計算できるように、レポートを2〜3秒おきに生成することができる。
【0034】
異なるCPUが、異なるタイムスロットiに利用される場合がある。PPを、MIPS(百万命令毎秒)単位または事前定義のベンチマークレポートで測定することができる。ヘテロジニアスマルチコアアーキテクチャでは、異なるタイプのコアおよび特定のアクセラレーションハードウェアがある場合もある。アクセラレーションハードウェアが使用される場合には、その同等のMIPSを報告することができる。上記のパラメータを、オペレーティングシステムによってCCASツールに報告することができる。
【0035】
他の例の実施形態では、スコアリングパラメータPRを、既存の処理リソースがベンチマークタスクについて既知とすることができる標準時間までベンチマークタスクを実行するのに要する時間を測定することによって判定することができる。このオプションについて、PPを、標準時間と定義することができ、APPを、既存のクラウドコンピューティング環境処理リソースによってタスクを実行するのに費やされた実際の時間と定義することができる。
【0036】
メモリストレージパラメータ(MR)を、各メモリタイプのパラメータのリストとして定義することができる。各パラメータを、すべてのメモリタイプに関する割り振られたメモリの総量(TM)からの特定のタイプのメモリ(たとえば、メインメモリ(MM)、フラッシュメモリ(FM)、ローカルメモリ(LM)、およびネットワークメモリ(NM))のパーセンテージ量と定義することができる。
[2] TM=Σ(MM,FM,LM,NM)
【0037】
メモリパラメータは、メモリ割振り分布を提供することができる。しかし、所望のメモリ分布は、異なるアプリケーションについて異なる可能性がある。たとえば、大きいサイズのデータベースを管理するアプリケーションは、大きいローカルメモリを活用する可能性があるが、最適配送ルートを提供するアプリケーションは、より大きいメインメモリを好む可能性がある。このパラメータが、実際のメモリ分布がアプリケーションにとってより有益である可能性があるメモリ分布とどのように整列されるのかを表すことを可能にするために、追加の計算を実行することができる。メモリ分布平均値を計算することができ、ここで、各タイプのメモリは、その重み付け値(Mw(a))を有する。各メモリタイプの重み付け値は、アプリケーションに従って事前に決定することができる。たとえば、より高速のメモリは、より大きい重みを有することができる。
【0039】
ネットワーキング性能を、内部ネットワーキング構成および外部ネットワーキング構成に分割することができる。内部ネットワーキングは、クラウドコンピューティングサービスプロバイダの物理インフラストラクチャおよび仮想インフラストラクチャ内のコンピューティング要素のネットワーキングに関するものとすることができる。外部ネットワーキングは、クラウドコンピューティングサービスプロバイダの物理インフラストラクチャに顧客(1つまたは複数)を接続するネットワーキング物理インフラストラクチャに関するものとすることができる。
【0040】
内部ネットワーキングパラメータ(INR)を、実際の平均ネットワーク帯域幅(ANBW)とクラウドコンピューティングサービスプロバイダによって特定のサービスに割り振られる最大帯域幅とのパーセンテージ単位の比と定義することができる。
【0042】
外部ネットワーキングパラメータ(ENR)を、実際の平均ネットワーク応答時間(ART)と同一のアプリケーションについて期待される標準応答時間(RTS(a))とのパーセンテージ単位の比と定義することができる。
【0044】
いくつかの例の実施形態では、重み付けレベル(Nwi)および(Nwe)を、特定のアプリケーションに従って、それぞれ内部ネットワーキング能力および外部ネットワーキング能力について提供することができる。ネットワーキングパラメータ値を、それぞれの値の加重平均として計算することができる。
【0046】
全体的なスコアCCASを、式[1]から[6]までで説明されたパラメータの平均値として計算することができる。
[7] CCAS[%]=Average(PR,MR,NR)
【0047】
いくつかの例の実施形態では、追加のパラメータ(LR)を使用して、クラウドコンピューティング環境の信頼性スコアを表すことができる。LRは、特定のアプリケーションに依存しない可能性があるが、他のパラメータは依存する。
【0048】
前に議論したように、各パラメータの関連性は、異なるアプリケーションについて異なる可能性がある。たとえば、大きいサイズのデータベースを管理するアプリケーションは、おそらくは、メモリ性能パラメータを他のパラメータより重要と考える可能性があるが、多数のクライアントが同時に動作することを可能にするアプリケーションは、最も重要なパラメータとしてネットワーキング性能を好む可能性がある。
【0049】
特定のクライアント要件への準拠をパラメータ内で反映するために、CCASを、各パラメータの重み付きの値(Rw(a))を考慮に入れて計算することができる、上にリストした平均値を使用して計算することができる。各パラメータタイプの重み付け値は、アプリケーションに従って事前に決定することができる。
【0051】
性能レベルの判定および比較で処理能力パラメータ、データストレージ(メモリ)パラメータ、およびネットワーキングパラメータを使用する例の実施形態が説明されるが、実施形態は、これに限定されない。例の実施態様はまた、サーバ待ち時間、ストレージ限度またはクォータ、スケーラビリティ要因、バックアップ保証、アップタイム保証、リソース使用量報告、自動並列化、および類似物を使用して、本明細書で説明される原理を使用してクラウドコンピューティングアプリカビリティスコアを判定することもできる。
【0052】
図5に、クラウドコンピューティング環境の間で転送される時のアプリケーション性能の維持の例に使用できる汎用コンピューティングデバイス500を示す。たとえば、コンピューティングデバイス500を、
図1のサーバ104、114、または118として使用することができる。例の基本的な構成502では、コンピューティングデバイス500は、通常、1つまたは複数のプロセッサ504およびシステムメモリ506を含むことができる。メモリバス508を、プロセッサ504とシステムメモリ506との間の通信に使用することができる。基本的な構成502は、
図5では、内側の破線内のコンポーネントによって示される。
【0053】
所望の構成に応じて、プロセッサ504を、マイクロプロセッサ(μP)、マイクロコントローラ(μC)、デジタル信号プロセッサ(DSP)、またはその任意の組合せを含むがこれらに限定されない任意のタイプとすることができる。プロセッサ504は、(レベル)キャッシュメモリ512などの一つ又は複数のレベルのキャッシング、プロセッサコア514、およびレジスタ516を含むことができる。例のプロセッサコア514は、算術論理ユニット(ALU)、浮動点少数ユニット(FPU)、デジタル信号処理コア(DSPコア)、またはその任意の組合せを含むことができる。例のメモリコントローラ518を、プロセッサ504と共に使用することもでき、あるいは、いくつかの実施態様では、メモリコントローラ518を、プロセッサ504の内部部分とすることができる。
【0054】
所望の構成に応じて、システムメモリ506を、揮発性メモリ(RAMなど)、不揮発性メモリ(ROM、フラッシュメモリ、その他など)、またはその任意の組合せを含むがこれに限定されない任意のタイプのメモリとすることができる。システムメモリ506は、通常、オペレーティングシステム520、1つまたは複数のアプリケーション522、およびプログラムデータ524を含む。アプリケーション522は、移行モジュール526を含むクラウド管理アプリケーションを含むことができ、この移行モジュール526は、本明細書で説明されるソースクラウドおよびターゲットクラウドでの移行されるアプリケーションのために、個々の性能レベルの重み付きスコアならびに全体的なスコアを判定することができる。プログラムデータ524は、他のデータの中でも、本明細書で説明される性能データ528または類似物を含むことができる。
【0055】
コンピューティングデバイス500は、追加の特徴または機能性ならびに基本的な構成502と任意の所望の装置およびインターフェースとの間の通信を容易にするための追加のインターフェースを有することができる。たとえば、バス/インターフェースコントローラ530を使用して、基本的な構成502と1つまたは複数のデータストレージ装置532との間のストレージインターフェースバス534を介する通信を容易にすることができる。データストレージ装置532は、1つまたは複数の取外し式ストレージ装置536、1つまたは複数の非取外し式ストレージ装置538、またはその組合せとすることができる。取外し式ストレージ装置および非取外し式ストレージ装置の例は、2〜3例を挙げると、フレキシブルディスクドライブおよびハードディスクドライブ(HDD)などの磁気ディスク装置、コンパクトディスク(CD)ドライブまたはデジタル多用途ディスク(DVD)ドライブなどの光ディスクドライブ、ソリッドステートドライブ(SSD)、およびテープドライブを含む。例のコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の格納のための任意の方法または技術で実施される、揮発性および不揮発性の、取外し式および非取外し式の媒体を含むことができる。
【0056】
システムメモリ506、取外し式ストレージ装置536、および非取外し式ストレージ装置538は、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、ソリッドステートドライブ、または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ストレージ装置、あるいは所望の情報を格納するのに使用でき、コンピューティングデバイス500によってアクセスできる任意の他の媒体を含むが、これに限定はされない。そのようなすべてのコンピュータ記憶媒体を、コンピューティングデバイス500の一部とすることができる。
【0057】
コンピューティングデバイス500は、さまざまなインターフェース装置(たとえば、1つまたは複数の出力デバイス542、1つまたは複数の周辺インターフェース544、および1つまたは複数の通信デバイス566)から基本的な構成502へのバス/インターフェースコントローラ530を介する通信を容易にするインターフェースバス540を含むこともできる。例の出力デバイス542の一部は、1つまたは複数のA/Vポート552を介してディスプレイまたはスピーカなどのさまざまな外部装置へ通信するように構成できる、グラフィックス処理ユニット548およびオーディオ処理ユニット550を含む。1つまたは複数の例の周辺インターフェース544は、1つまたは複数のI/Oポート558を介して入力装置(たとえば、キーボード、マウス、ペン、音声入力装置、タッチ入力装置など)または他の周辺装置(たとえば、プリンタ、スキャナなど)などの外部装置と通信するように構成できる、シリアルインターフェースコントローラ554またはパラレルインターフェースコントローラ556を含むことができる。例の通信デバイス566は、1つまたは複数の通信ポート564を介するネットワーク通信リンク上での1つまたは複数の他のコンピューティングデバイス562との通信を容易にするように配置できる、ネットワークコントローラ560を含む。1つまたは複数の他のコンピューティングデバイス562は、データセンタのサーバ、顧客機器、または匹敵するデバイスを含むことができる。
【0058】
ネットワーク通信リンクは、通信媒体の1つの例とすることができる。通信媒体を、通常、搬送波または他のトランスポート機構などの変調されたデータ信号内のコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータによって具現化することができ、通信媒体は、任意の情報配信媒体を含むことができる。「変調されたデータ信号」は、信号内で情報を符号化する形でその特性のうちの1つまたは複数を設定されまたは変更された信号とすることができる。限定ではなく例として、通信媒体は、有線ネットワークまたは直接配線接続などの有線媒体と、音響、ラジオ周波数(RF)、マイクロ波、赤外線(IR)、および他の無線媒体などの無線媒体とを含むことができる。本明細書で使用される時に、用語コンピュータ可読媒体は、記憶媒体と通信媒体との両方を含むことができる。
【0059】
コンピューティングデバイス500を、汎用サーバ、特殊化されたサーバ、メインフレーム、または上記機能のいずれかを含む類似するコンピュータの一部として実施することができる。コンピューティングデバイス500を、ラップトップコンピュータ構成と非ラップトップコンピュータ構成との両方を含むパーソナルコンピュータとして実施することもできる。
【0060】
例の実施形態は、クラウドサーバの間での転送時にアプリケーション性能を維持する方法をも含むことができる。これらの方法を、本明細書で説明される構造を含む任意の個数の形で実施することができる。1つのそのような形は、本開示で説明されるタイプのデバイスの機械動作によるものとすることができる。もう1つのオプションの形は、方法の個々の動作のうちの1つまたは複数が、動作のいくつかを実行する1つまたは複数の人間のオペレータに関連して実行されることとすることができ、他の動作は、機械によって実行され得る。これらの人間のオペレータは、お互いと同一の位置に配置される必要はないが、それぞれは、プログラムの一部を実行する機械だけを有するものとすることができる。他の例では、人間の対話を、機械自動化できる事前に選択された判断基準によるなど、自動化することができる。
【0061】
図6は、本明細書で説明される少なくともいくつかの実施形態に従って配置された、
図5のデバイス500などのコンピューティングデバイスによって実行できる例の方法を示す流れ図である。例の方法は、ブロック622、624、626、628、および/または630のうちの1つまたは複数によって示されるように、1つまたは複数の動作、機能、またはアクションを含むことができる。ブロック622から630で説明される動作を、コンピューティングデバイス610のコンピュータ可読媒体620などのコンピュータ可読媒体内にコンピュータ実行可能命令として格納することもできる。
【0062】
クラウドサーバの間の転送時にアプリケーション性能を維持する例のプロセスは、ブロック622「個々のパラメータに基づいて現在のCCASを計算する」から開始することができ、ここで、ソースクラウドサーバ(たとえば、
図1のサーバ104)、ターゲットクラウドサーバ(たとえば、
図1のサーバ114)、またはサードパーティサーバ(たとえば、
図1のサーバ118)上で実行される移行モジュールまたはアプリケーション(たとえば、
図5の移行モジュール526)は、ソースクラウドベースのサービスプロバイダでのアプリケーションのクラウドコンピューティングアプリカビリティスコアを計算することができる。スコアは、まず、処理能力、ストレージ容量(またはメモリ)、およびネットワーク容量(たとえば、帯域幅)などの性能パラメータを識別することと、これらのパラメータの個々のスコアを判定することと、システム性能に対する影響に基づいて個々のパラメータに重み付け値を割り当てることと、重み付けされたスコアをソースサービスプロバイダに関する全体的なスコアに組み合わせることとによって判定され得る。
【0063】
ブロック622に、ブロック624「ターゲットCC環境(1つまたは複数)のCCAS(1つまたは複数)を計算する」が続くことができ、ここで、移行モジュール526は、ブロック622で実行された計算に似て、1つまたは複数のターゲットサービスプロバイダの個々のスコアおよび全体的なスコアを判定することができる。ブロック624に、オプションのブロック626「CCAS計算の重み付け値を調整する」が続くことができ、ここで、本明細書で議論されるように、ソースサービスプロバイダでの現在の性能レベルと一致するかこれを超えるために、重み付け値を、ターゲットサービスプロバイダのうちの1つまたは複数の全体スコア計算で調整することができる。
【0064】
オプションのブロック626に、ブロック628「CCAS計算結果に基づいてターゲットCC環境を判定する」が続くことができ、ここで、移行モジュール526は、アプリケーションを移行する先の1つまたは複数の適切なターゲットサービスプロバイダを判定し、顧客が、複数のターゲットサービスプロバイダまたはサービスパッケージの中で選択することを可能にすることができる。他の実施形態では、このプロセスを使用して、単一のターゲットサービスプロバイダでのサービスパラメータの最適混合物を判定するか、あるサービスプロバイダ内のサイト間転送について性能レベル一致を検証することができる。ブロック628に、オプションのブロック630「移行を実行する」が続くことができ、ここで、本明細書で議論するように、CCAS(1つまたは複数)を使用して行われた判定に基づいて、ターゲットサービスプロバイダまたはサイトへの移行を実行することができる。
【0065】
上で説明されたプロセスに含まれるブロックは、例示のためのものである。クラウドサーバ間の転送時のアプリケーション性能の維持を、より少数のブロックまたは追加のブロックを有する類似するプロセスによって実施することができる。いくつかの例では、ブロックを、異なる順序で実行することができる。いくつかの他の例では、さまざまなブロックを除去することができる。さらなる他の例では、さまざまなブロックを追加のブロックに分割し、または一緒により少数のブロックに組み合わせることができる。
【0066】
図7に、本明細書で説明される少なくともいくつかの実施形態に従って配置された、例のコンピュータプログラム製品のブロック図を示す。
【0067】
いくつかの例では、
図7に示されているように、コンピュータプログラム製品700は、たとえばプロセッサによって実行された時に、本明細書で説明される機能性を提供することができる1つまたは複数の機械可読命令704を含むこともできる信号担持媒体702を含むことができる。したがって、たとえば、
図5のプロセッサ504を参照すると、移行モジュール526は、本明細書で説明されるように、クラウドサーバ間の転送時のアプリケーション性能の維持に関連するアクションを実行するために媒体702によってプロセッサ504に伝えられる命令704に応答して、
図7に示されたタスクのうちの1つまたは複数に着手することができる。これらの命令のうちのいくつかは、たとえば、本明細書で説明される実施形態に従って、個々のパラメータに基づいて現在のCCASを計算する命令、ターゲットクラウドコンピューティング環境(1つまたは複数)のCCAS(1つまたは複数)を計算する命令、CCAS計算の重み付け値を調整する命令、およびCCAS比較結果に基づいてターゲットクラウドコンピューティング環境を判定する命令を含むことができる。
【0068】
いくつかの実施態様では、
図7に示された信号担持媒体702は、ハードディスクドライブ、ソリッドステートドライブ、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、デジタルテープ、メモリ、その他などであるがこれに限定されないコンピュータ可読媒体706を包含することができる。いくつかの実施態様では、信号担持媒体702は、メモリ、読み書き可能(R/W)CD、R/W DVDその他などであるがこれに限定されない記録可能媒体708を包含することができる。いくつかの実施態様では、信号担持媒体702は、デジタルおよび/またはアナログの通信媒体(たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど)などであるがこれに限定されない通信媒体710を包含することができる。したがって、たとえば、プログラム製品700を、RF信号担持媒体によってプロセッサ504の1つまたは複数のモジュールに伝えることができ、ここで、信号担持媒体702は、無線通信媒体710(たとえば、IEEE 802.11標準規格に準拠する無線通信媒体)によって伝えられる。
【0069】
いくつかの例によれば、クラウドコンピューティング環境の間での転送時にアプリケーション性能を維持する方法は、ソースクラウドコンピューティング環境内の顧客アプリケーションに関連する
のはどの複数の性能メトリックかを決定することと、ソースクラウドコンピューティング環境内の顧客アプリケーションに関連する性能メトリックに基づいて複数の性能パラメータを計算することと、重み付きの形で複数の性能パラメータをソースクラウドコンピューティングアプリカビリティスコア(CCAS)に組み合わせることと、ソースCCASに基づいて顧客アプリケーションのターゲットクラウドコンピューティング環境を適合させることとを含むことができる。
【0070】
他の実施形態によれば、性能メトリックは、処理能力メトリック、メモリメトリック、およびネットワーキングメトリックを含むことができ、方法は、使用可能な処理能力の分数としての顧客アプリケーションによって消費される実際の処理能力に基づいて処理能力メトリックを計算することをさらに含むことができる。処理能力メトリックは、処理のタイプ、スケジューラ優先順位、および同時に実行されるタスクの個数のうちの1つまたは複数にさらに基づくものとすることができる。処理能力メトリックは、事前定義の期間にわたって平均をとられるものとすることができる。方法は、顧客アプリケーションのために割り振られるメモリタイプの重み付き組合せに基づいてメモリメトリックを計算することであって、メモリタイプは、メインメモリ、フラッシュメモリ、ローカルメモリ、およびネットワークメモリのうちの1つまたは複数を含む、計算することをも含むことができる。
【0071】
さらなる例によれば、割り振られるメモリタイプは、事前定義の期間にわたって平均をとられるソースクラウドコンピューティング環境での実際の割振りを表すことができる。より高速のメモリタイプは、より低速のメモリタイプに対して相対的により大きい重み付け値を割り当てられるものとすることができる。ネットワーキングメトリックは、ソースクラウドコンピューティング環境内の、消費されるネットワーク帯域幅と割り振られるネットワーク帯域幅との比に基づく内部ネットワーキングメトリックと、ソースクラウドコンピューティング環境のサービスプロバイダと顧客との間の通信の、実際のネットワーク応答時間と標準的な期待されるネットワーク応答時間との比に基づく外部ネットワーキングパラメータとを含むことができる。内部ネットワーキングメトリックおよび外部ネットワーキングメトリックは、重み付けされた形で組み合わされ、事前定義の期間にわたって平均をとられるものとすることができる。
【0072】
さらなる他の例によれば、ターゲットクラウドコンピューティング環境を選択することは、ターゲットクラウドコンピューティング環境内の顧客アプリケーションに関連する
のはどの複数の性能メトリックかを決定することと、ターゲットクラウドコンピューティング環境内の顧客アプリケーションに関連する性能メトリックに基づいて複数の性能パラメータを計算することと、重み付きの形で複数の性能パラメータをターゲットCCASに組み合わせることと、ソースCCASとターゲットCCASとを比較することとを含むことができる。ターゲットクラウドコンピューティング環境内の性能メトリックは、シミュレーションに基づいて判定されるものとすることができ、ソースクラウドコンピューティング環境およびターゲットクラウドコンピューティング環境内の性能パラメータは、各環境に関連する信頼性要因を表す信頼性パラメータをさらに含むことができる。
【0073】
さらなる例によれば、ターゲットクラウドコンピューティング環境内の性能メトリックは、ターゲットクラウドコンピューティング環境での顧客の所望の性能に基づいて重みを付けられるものとすることができる。方法は、ターゲットクラウドコンピューティング環境での性能を検証するために、ターゲットクラウドコンピューティング環境への顧客アプリケーションの移行に続いてターゲットCCASを計算することをも含むことができる。方法は、複数のターゲットクラウドコンピューティング環境のターゲットCCASを計算することと、顧客に複数の候補クラウドコンピューティング環境オファーを提供することと、別個の重み付け要因に基づいて複数のターゲットクラウドコンピューティング環境構成のターゲットCCASを計算することと、顧客に複数のターゲットクラウドコンピューティング環境パッケージオファーを提供することとをさらに含むことができる。性能メトリックは、複数の顧客アプリケーションについて判定されるものとすることができ、重み付けは、個々の顧客アプリケーションに基づいて判定されるものとすることができる。方法は、性能パラメータを正規化することを含むことができ、性能パラメータは、パーセンテージとして正規化される。
【0074】
他の例によれば、クラウドコンピューティング環境の間での転送時にアプリケーション性能を維持するコンピューティングデバイスは、命令を格納するように構成されたメモリと、命令に関連して移行モジュールを実行するように構成された処理ユニットとを含むことができる。移行モジュールは、ソースクラウドコンピューティング環境内の顧客アプリケーションに関連する複数の性能メトリックを判定し、ソースクラウドコンピューティング環境内の顧客アプリケーションに関連する性能メトリックに基づいて複数の性能パラメータを計算し、重み付きの形で複数の性能パラメータをソースクラウドコンピューティングアプリカビリティスコア(CCAS)に組み合わせ、ソースCCASに基づいて顧客アプリケーションのターゲットクラウドコンピューティング環境を適合させることができる。
【0075】
いくつかの例によれば、性能メトリックは、処理能力メトリック、メモリメトリック、およびネットワーキングメトリックを含むことができる。移行モジュールは、使用可能な処理能力の分数としての顧客アプリケーションによって消費される実際の処理能力に基づいて処理能力メトリックを計算することもできる。処理能力メトリックは、処理のタイプ、スケジューラ優先順位、および同時に実行されるタスクの個数のうちの1つまたは複数にさらに基づくものとすることができる。処理能力メトリックは、事前定義の期間にわたって平均をとられるものとすることができる。移行モジュールは、さらに、顧客アプリケーションのために割り振られるメモリタイプの重み付き組合せに基づいてメモリメトリックを計算することができ、メモリタイプは、メインメモリ、フラッシュメモリ、ローカルメモリ、およびネットワークメモリのうちの1つまたは複数を含む。割り振られるメモリタイプは、事前定義の期間にわたって平均をとられるソースクラウドコンピューティング環境での実際の割振りを表すことができ、より高速のメモリタイプは、より低速のメモリタイプに対して相対的により大きい重み付け値を割り当てられるものとすることができる。
【0076】
さらなる例によれば、ネットワーキングメトリックは、ソースクラウドコンピューティング環境内の、消費されるネットワーク帯域幅と割り振られるネットワーク帯域幅との比に基づく内部ネットワーキングメトリックと、ソースクラウドコンピューティング環境のサービスプロバイダと顧客との間の通信の、実際のネットワーク応答時間と標準的な期待されるネットワーク応答時間との比に基づく外部ネットワーキングパラメータとを含むことができる。内部ネットワーキングメトリックおよび外部ネットワーキングメトリックは、重み付けされた形で組み合わされ、事前定義の期間にわたって平均をとられるものとすることができる。移行モジュールは、ターゲットクラウドコンピューティング環境内の顧客アプリケーションに関連する
のはどの複数の性能メトリックかを決定することと、ターゲットクラウドコンピューティング環境内の顧客アプリケーションに関連する性能メトリックに基づいて複数の性能パラメータを計算することと、重み付きの形で複数の性能パラメータをターゲットCCASに組み合わせることと、ソースCCASとターゲットCCASとを比較することとによってターゲットクラウドコンピューティング環境を選択することができる。
【0077】
さらに他の例によれば、ターゲットクラウドコンピューティング環境内の性能メトリックは、シミュレーションに基づいて判定されるものとすることができる。ソースクラウドコンピューティング環境およびターゲットクラウドコンピューティング環境内の性能パラメータは、各環境に関連する信頼性要因を表す信頼性パラメータをさらに含むことができる。ターゲットクラウドコンピューティング環境内の性能メトリックは、ターゲットクラウドコンピューティング環境での顧客の所望の性能に基づいて重みを付けられるものとすることができる。移行モジュールは、ターゲットクラウドコンピューティング環境での性能を検証するために、ターゲットクラウドコンピューティング環境への顧客アプリケーションの移行に続いてターゲットCCASを計算することもできる。
【0078】
さらなる他の例によれば、移行モジュールは、複数のターゲットクラウドコンピューティング環境のターゲットCCASを計算し、顧客に複数の候補クラウドコンピューティング環境オファーを提供することができる。移行モジュールは、さらに、別個の重み付け要因に基づいて複数のターゲットクラウドコンピューティング環境構成のターゲットCCASを計算し、顧客に複数のターゲットクラウドコンピューティング環境パッケージオファーを提供することができる。性能メトリックは、複数の顧客アプリケーションについて判定されるものとすることができ、重み付けは、個々の顧客アプリケーションに基づいて判定されるものとすることができる。移行モジュールは、性能パラメータを正規化することもでき、性能パラメータは、パーセンテージとして正規化される。
【0079】
さらなる例によれば、コンピュータ可読記憶媒体は、クラウドコンピューティング環境の間での転送時にアプリケーション性能を維持する命令をその上に格納されるものとすることができる。命令は、ソースクラウドコンピューティング環境内の顧客アプリケーションに関連する
のはどの複数の性能メトリックかを決定することと、ソースクラウドコンピューティング環境内の顧客アプリケーションに関連する性能メトリックに基づいて複数の性能パラメータを計算することと、重み付きの形で複数の性能パラメータをソースクラウドコンピューティングアプリカビリティスコア(CCAS)に組み合わせることと、ソースCCASに基づいて顧客アプリケーションのターゲットクラウドコンピューティング環境を適合させることとを含むことができる。
【0080】
他の実施形態によれば、性能メトリックは、処理能力メトリック、メモリメトリック、およびネットワーキングメトリックを含むことができ、命令は、使用可能な処理能力の分数としての顧客アプリケーションによって消費される実際の処理能力に基づいて処理能力メトリックを計算することを含むことができる。処理能力メトリックは、処理のタイプ、スケジューラ優先順位、および同時に実行されるタスクの個数のうちの1つまたは複数にさらに基づくものとすることができる。処理能力メトリックは、事前定義の期間にわたって平均をとられるものとすることができる。命令は、顧客アプリケーションのために割り振られるメモリタイプの重み付き組合せに基づいてメモリメトリックを計算することであって、メモリタイプは、メインメモリ、フラッシュメモリ、ローカルメモリ、およびネットワークメモリのうちの1つまたは複数を含む、計算することをも含むことができる。
【0081】
さらなる例によれば、割り振られるメモリタイプは、事前定義の期間にわたって平均をとられるソースクラウドコンピューティング環境での実際の割振りを表すことができる。より高速のメモリタイプは、より低速のメモリタイプに対して相対的により大きい重み付け値を割り当てられるものとすることができる。ネットワーキングメトリックは、ソースクラウドコンピューティング環境内の、消費されるネットワーク帯域幅と割り振られるネットワーク帯域幅との比に基づく内部ネットワーキングメトリックと、ソースクラウドコンピューティング環境のサービスプロバイダと顧客との間の通信の、実際のネットワーク応答時間と標準的な期待されるネットワーク応答時間との比に基づく外部ネットワーキングパラメータとを含むことができる。内部ネットワーキングメトリックおよび外部ネットワーキングメトリックは、重み付けされた形で組み合わされ、事前定義の期間にわたって平均をとられるものとすることができる。
【0082】
さらなる他の例によれば、ターゲットクラウドコンピューティング環境を選択することは、ターゲットクラウドコンピューティング環境内の顧客アプリケーションに関連する
のはどの複数の性能メトリックかを決定することと、ターゲットクラウドコンピューティング環境内の顧客アプリケーションに関連する性能メトリックに基づいて複数の性能パラメータを計算することと、重み付きの形で複数の性能パラメータをターゲットCCASに組み合わせることと、ソースCCASとターゲットCCASとを比較することとを含むことができる。ターゲットクラウドコンピューティング環境内の性能メトリックは、シミュレーションに基づいて判定されるものとすることができ、ソースクラウドコンピューティング環境およびターゲットクラウドコンピューティング環境内の性能パラメータは、各環境に関連する信頼性要因を表す信頼性パラメータをさらに含むことができる。
【0083】
さらなる例によれば、ターゲットクラウドコンピューティング環境内の性能メトリックは、ターゲットクラウドコンピューティング環境での顧客の所望の性能に基づいて重みを付けられるものとすることができる。命令は、ターゲットクラウドコンピューティング環境での性能を検証するために、ターゲットクラウドコンピューティング環境への顧客アプリケーションの移行に続いてターゲットCCASを計算することをも含むことができる。命令は、複数のターゲットクラウドコンピューティング環境のターゲットCCASを計算することと、顧客に複数の候補クラウドコンピューティング環境オファーを提供することと、別個の重み付け要因に基づいて複数のターゲットクラウドコンピューティング環境構成のターゲットCCASを計算することと、顧客に複数のターゲットクラウドコンピューティング環境パッケージオファーを提供することとをさらに含むことができる。性能メトリックは、複数の顧客アプリケーションについて判定されるものとすることができ、重み付けは、個々の顧客アプリケーションに基づいて判定されるものとすることができる。命令は、性能パラメータを正規化することを含むことができ、性能パラメータは、パーセンテージとして正規化される。
【0084】
システムの側面でのハードウェアの実装形態とソフトウェアの実装形態との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般に(いつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点で)コスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび/またはシステムおよび/または他の技術をもたらすことができるさまざまな達成手段があり(たとえば、ハードウェア、ソフトウェア、および/またはファームウェア)、好ましい達成手段は、プロセスおよび/またはシステムおよび/または他の技術が導入される状況によって異なる。たとえば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび/またはファームウェアの達成手段を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実装形態を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および/またはファームウェアのなんらかの組み合わせを選択することができる。
【0085】
前述の詳細な説明では、ブロック図、フローチャート、および/または例の使用によって、装置および/またはプロセスのさまざまな実施形態を説明してきた。そのようなブロック図、フローチャート、および/または例が1つまたは複数の機能および/または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および/または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組合せにより、個別におよび/または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、1つまたは複数のコンピュータ上で動作する1つまたは複数のコンピュータプログラムとして(たとえば、1つまたは複数のコンピュータシステム上で動作する1つまたは複数のプログラムとして)、1つまたは複数のプロセッサ上で動作する1つまたは複数のプログラムとして(たとえば、1つまたは複数のマイクロプロセッサ上で動作する1つまたは複数のプログラムとして)、ファームウェアとして、あるいは実質上それらの任意の組合せとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに/またはソフトウェアおよび/もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。
【0086】
本開示は、さまざまな態様の例示であることを意図された、本願で説明される特定の実施形態に関して限定されてはならない。当業者に明白であるように、多数の修正形態および変形形態を、その趣旨および範囲から逸脱せずに作ることができる。本開示の範囲内の機能的に同等の方法および装置は、本明細書に列挙された方法および装置に加えて、前述の説明から当業者に明白であろう。そのような修正形態および変形形態は、添付の特許請求の範囲に含まれることが意図されている。本開示は、添付の特許請求の範囲が権利を与えられる同等物の全範囲と共に、添付の特許請求の範囲の用語によってのみ限定されなければならない。本開示が、特定の方法、試薬、化合物合成物、または生体系に限定されず、これらの方法、化合物、または合成物が、もちろん変化し得ることを理解されたい。本明細書で使用される用語法が、特定の実施形態を説明するのみのためのものであって、限定的であることを意図されていないことをも理解されたい。
【0087】
さらに、本明細書に記載された主題のメカニズムをさまざまな形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フロッピー(登録商標)ディスク、ハードディスクドライブ、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、デジタルテープ、コンピュータメモリ、ソリッドステートドライブなどの記録可能なタイプの媒体、ならびに、デジタル通信媒体および/またはアナログ通信媒体(たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど)の通信タイプの媒体が含まれるが、それらには限定されない。
【0088】
本明細書で説明したやり方で装置および/またはプロセスを記載し、その後そのように記載された装置および/またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および/またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインタフェース、およびアプリケーションプログラムのうちの1つもしくは複数、タッチパッドもしくはスクリーンなどの1つもしくは複数の相互作用装置、ならびに/またはフィードバックループおよびコントロールモータを含むコントロールシステム(たとえば、ガントリーシステムの位置検知用および/もしくは速度検知用フィードバック、コンポーネントの移動用および/もしくは数量の調整用コントロールモータ)を含むことを、当業者は理解するであろう。
【0089】
通常のデータ処理システムは、データコンピューティング/通信システムおよび/またはネットワークコンピューティング/通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。本明細書に記載された主題は、さまざまなコンポーネントをしばしば例示しており、これらのコンポーネントは、他のさまざまなコンポーネントに包含されるか、または他のさまざまなコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例示にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の2つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の2つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的に接続可能な、および/もしくは物理的に相互作用するコンポーネント、ならびに/またはワイヤレスに相互作用可能な、および/もしくはワイヤレスに相互作用するコンポーネント、ならびに/または論理的に相互作用する、および/もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
【0090】
本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。さまざまな単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
【0091】
通常、本明細書において、特に添付の特許請求の範囲(たとえば、添付の特許請求の範囲の本体部)において使用される用語は、全体を通じて「オープンな(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つ以上の記載を意味する)。
【0092】
さらに、「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」の可能性を含むことが理解されよう。
【0093】
加えて、本開示の特徴または態様が、Markush groupに関して説明される場合に、当業者は、本開示が、これによってMarkush groupの任意の個々のメンバまたはメンバのサブグループに関しても説明されることを認めるであろう。
【0094】
当業者によって理解されるように、書かれた説明を提供することに関してなど、すべてにおいて、本明細書で開示されるすべての範囲は、任意のすべての可能な部分範囲およびその部分範囲の組合せをも包含する。すべてのリストされた範囲を、少なくとも等しい半分、1/3、1/4、1/5、1/10などに分割された同一の範囲を十分に記述し、可能にするものとしてたやすく認めることができる。非限定的な例として、本明細書で述べられる各範囲を、下側1/3、中央1/3、および上側1/3などにたやすく分解することができる。やはり当業者によって理解されるように、「up to(まで)」、「at least(少なくとも)」、「greater than(より大きい)」、「less than(より小さい)」、および類似物などのすべての言葉は、具陳された数を含み、その後に上で述べたように部分範囲に分割され得る範囲を指す。最後に、当業者によって理解されるように、範囲は、各個々のメンバを含む。したがって、たとえば、1〜3個の細胞を有する群は、1個、2個、または3個の細胞を有する群を指す。同様に、1〜5個の細胞を有する群は、1個、2個、3個、4個、または5個の細胞を有する群を指すなどである。
【0095】
さまざまな態様および実施形態を本明細書で開示したが、他の態様および実施形態が、当業者に明白であろう。本明細書で開示されたさまざまな態様および実施形態は、例示のためのものであって、限定的であることは意図されておらず、真の範囲および趣旨は、次の特許請求の範囲によって示される。