(57)【要約】【課題】共有メモリ・ファイル転送セットアップおよび使用を改善するための方法およびシステムを提供する。【解決手段】方法は、ハードウェア・ノード間に接続されたネットワーク・リンクを構成することを含む。共有ストレージ・リンク毎に、各ハードウェア・ノードは、コマンド・セクションおよびデータ・ストレージ・セクションを含む。ハードウェア・ディスク・ドライブについてのストレージ容量は、ハードウェア・ノードの数に基づいて判断され、ハードウェア・ディスク・ドライブは、ハードウェア・ノードに接続される。ソフトウェア・エージェントは、ハードウェア・ノードのそれぞれの中にインストールされ、ネットワーク・リンクについてのプロパティが構成される。各ソフトウェア・エージェントが有効にされ、接続性状態、帯域幅、および負荷状況が、ネットワーク・リンクのそれぞれについてテストされる。各ハードウェア・ノードが、ハードウェア・ディスク・ドライブに登録され、ハードウェア・ディスク・ドライブとハードウェア・ノードとの間の通信が、ネットワーク・リンクを介して有効にされる。【選択図】図５
2020526981.tif 000002
【特許請求の範囲】
【請求項１】
共有メモリ・ファイル転送のための方法であって、
送信機ホスト・ハードウェア・ノードのプロセッサによって、前記送信機ホスト・ハードウェア・ノードと受信機ホスト・ハードウェア・ノードとの間でストレージ・デバイスを介してデータ・ファイルを転送するための複数のネットワーク・リンクのうちの利用可能な数を判断することと、
前記プロセッサによって、前記複数のネットワーク・リンクのそれぞれについて関連優先度レベルを判断することと、
前記プロセッサによって、前記受信機ホスト・ハードウェア・ノードに前記データ・ファイルを転送するための要求を受信することと、
前記プロセッサによって、前記要求に応答して、前記データ・ファイルを複数のセグメントに分割することと、
前記プロセッサによって、送信シーケンスを前記複数のセグメントに割り当てることと、
前記プロセッサによって、前記受信機ホスト・ハードウェア・ノードに前記データ・ファイルを説明するサマリを送信することと、
前記プロセッサによって、前記複数のネットワーク・リンクのそれぞれについて転送比率を判断することと、
前記プロセッサによって、それぞれの前記転送比率に基づいて、前記受信機ホスト・ハードウェア・ノードに前記複数のネットワーク・リンクを介して前記複数のセグメントを送信することと、
前記プロセッサによって、前記受信機ホスト・ハードウェア・ノードから、それぞれの前記セグメントの受信成功を示す、前記複数のデータ・セグメントの各セグメントについて確認応答通知を受信することと、
前記プロセッサによって、セグメント・プール・ストレージ・デバイスからそれぞれの前記セグメントのコピーを削除することと、
前記プロセッサによって、前記複数のネットワーク・リンクおよび前記ストレージ・デバイスを介して前記受信機ホスト・ハードウェア・ノードへ、転送されているそれぞれの前記セグメントについての転送レートを記録することと、
を含む、方法。
【請求項２】
前記複数のネットワーク・リンクを介して前記複数のセグメントを前記送信することが、前記複数のネットワーク・リンクのそれぞれについての占有帯域幅、転送レート、およびネットワーク・レイテンシにさらに基づく、請求項１に記載の方法。
【請求項３】
前記プロセッサによって、前記記録する間に、判断されたそれぞれの前記転送レートを記憶することをさらに含む、請求項１に記載の方法。
【請求項４】
前記複数のネットワーク・リンクが、ＴＣＰ／ＩＰネットワーク・リンクを含む、請求項１に記載の方法。
【請求項５】
前記プロセッサによって、前記セグメント・プール・ストレージ・デバイスが、それぞれの前記複数のセグメントのコピーをもはや含んでいないことを判断することをさらに含む、請求項１に記載の方法。
【請求項６】
コンピュータ可読メモリ・ユニットに連結されたプロセッサを含む送信機ホスト・ハードウェア・ノードであって、前記メモリ・ユニットが、前記コンピュータ・プロセッサによる実行時に共有メモリ・ファイル転送の使用および改善方法を実装する命令を含み、前記方法が、
前記プロセッサによって、前記送信機ホスト・ハードウェア・ノードと受信機ホスト・ハードウェア・ノードとの間でストレージ・デバイスを介してデータ・ファイルを転送するための複数のネットワーク・リンクのうちの利用可能な数を判断することと、
前記プロセッサによって、前記複数のネットワーク・リンクのそれぞれについて関連優先度レベルを判断することと、
前記プロセッサによって、前記受信機ホスト・ハードウェア・ノードに前記データ・ファイルを転送するための要求を受信することと、
前記プロセッサによって、前記要求に応答して、前記データ・ファイルを複数のセグメントに分割することと、
前記プロセッサによって、送信シーケンスを前記複数のセグメントに割り当てることと、
前記プロセッサによって、前記受信機ホスト・ハードウェア・ノードに前記データ・ファイルを説明するサマリを送信することと、
前記プロセッサによって、前記複数のネットワーク・リンクのそれぞれについて転送比率を判断することと、
前記プロセッサによって、それぞれの前記転送比率に基づいて、前記受信機ホスト・ハードウェア・ノードに前記複数のネットワーク・リンクを介して前記複数のセグメントを送信することと、
前記プロセッサによって、前記受信機ホスト・ハードウェア・ノードから、それぞれの前記セグメントの受信成功を示す、前記複数のデータ・セグメントの各セグメントについて確認応答通知を受信することと、
前記プロセッサによって、セグメント・プール・ストレージ・デバイスからそれぞれの前記セグメントのコピーを削除することと、
前記プロセッサによって、前記複数のネットワーク・リンクおよび前記ストレージ・デバイスを介して前記受信機ホスト・ハードウェア・ノードへ、転送されているそれぞれの前記セグメントについての転送レートを記録することと、を含む、送信機ホスト・ハードウェア・ノード。
【請求項７】
前記複数のネットワーク・リンクを介して前記複数のセグメントを前記送信することが、前記複数のネットワーク・リンクのそれぞれについての占有帯域幅、転送レート、およびネットワーク・レイテンシにさらに基づく、請求項６に記載の送信機ホスト・ハードウェア・ノード。
【請求項８】
前記方法が、前記プロセッサによって、前記記録する間に、判断されたそれぞれの前記転送レートを記憶することをさらに含む、請求項６に記載の送信機ホスト・ハードウェア・ノード。
【請求項９】
前記複数のネットワーク・リンクが、ＴＣＰ／ＩＰネットワーク・リンクを含む、請求項６に記載の送信機ホスト・ハードウェア・ノード。
【請求項１０】
前記方法が、前記プロセッサによって、前記セグメント・プール・ストレージ・デバイスが、それぞれの前記複数のセグメントのコピーをもはや含んでいないことを判断することをさらに含む、請求項６に記載の送信機ホスト・ハードウェア・ノード。
【請求項１１】
コンピュータ可読プログラム・コードを記憶するコンピュータ可読ハードウェア・ストレージ・デバイスを含む、コンピュータ・プログラム製品であって、前記コンピュータ可読プログラム・コードが、ホスト・ハードウェア・ノードのプロセッサによる実行時に共有メモリ・ファイル転送の使用および改善方法を実施するアルゴリズムを含み、前記方法が、請求項１ないし５のいずれかのステップを含む、コンピュータ・プログラム製品。
【請求項１２】
共有メモリ・ファイル転送セットアップ方法であって、
ネットワーク・コントローラ・ハードウェア・デバイスのプロセッサによって、複数のハードウェア・ノード間に接続された複数のネットワーク・リンクを構成することであって、前記複数のハードウェア・ノードの各ハードウェア・ノードが、コマンド・セクションおよびデータ・ストレージ・セクションを含む、前記構成することと、
前記プロセッサによって、前記複数のハードウェア・ノードの数に基づいて、ハードウェア・ディスク・ドライブについてのストレージ容量を判断することと、
前記プロセッサによって、前記ストレージ容量に基づいて、少なくとも１つのストレージ・リンクを介して前記ハードウェア・ディスク・ドライブを前記複数のハードウェア・ノードに接続することと、
前記プロセッサによって、前記複数のハードウェア・ノードのそれぞれの中にソフトウェア・エージェントをインストールすることと、
前記プロセッサによって、前記複数のネットワーク・リンクおよび前記少なくとも１つのストレージ・リンクについてのプロパティを構成することと、
前記プロセッサによって、それぞれの前記ソフトウェア・エージェントを有効にすることと、
それぞれの前記ソフトウェア・エージェントを実行する前記プロセッサによって、前記複数のネットワーク・リンクおよび前記少なくとも１つのストレージ・リンクのそれぞれについて接続性状態、帯域幅、および負荷状況をテストすることと、
前記プロセッサによって、それぞれの前記コマンド・セクションを介して、それぞれの前記ハードウェア・ノードを前記ハードウェア・ディスク・ドライブに登録することと、
前記プロセッサによって、前記複数のネットワーク・リンクおよび前記少なくとも１つのストレージ・リンクを介して前記ハードウェア・ディスク・ドライブと前記複数のハードウェア・ノードとの間の通信を有効にすることと、
を含む、方法。
【請求項１３】
前記ハードウェア・ディスク・ドライブについての前記ストレージ容量を前記判断することが、前記複数のネットワーク・リンクのそれぞれについての帯域幅にさらに基づく、請求項１２に記載の方法。
【請求項１４】
前記複数のネットワーク・リンクおよび前記少なくとも１つのストレージ・リンクについての前記プロパティが、前記複数のネットワーク・リンクおよび前記少なくとも１つのストレージ・リンクについての優先度レベル、ならびに前記テストに関連付けられた指定された時間フレームを含む、請求項１２に記載の方法。
【請求項１５】
前記複数のネットワーク・リンクが、ＴＣＰ／ＩＰネットワーク・リンクを含む、請求項１２に記載の方法。
【請求項１６】
共有メモリ・ファイル転送方法であって、
受信機ホスト・ハードウェア・ノードのプロセッサによって、追加ハードウェア・ノードからデータ・ファイルを転送するための要求を受信することと、
前記プロセッサによって、前記データ・ファイルを説明するサマリを受信することと、
前記プロセッサによって、複数のネットワーク・リンク、ストレージ・リンク、およびストレージ・デバイスを介して前記追加ハードウェア・ノードから、前記データ・ファイルの複数のデータ・セグメントを受信することであって、前記複数のネットワーク・リンク、前記ストレージ・リンク、および前記ストレージ・デバイスが、前記受信機ホスト・ハードウェア・ノードと前記追加ハードウェア・ノードとの間に接続される、前記受信することと、
前記プロセッサによって、それぞれの前記セグメントの受信成功を示す、前記複数のデータ・セグメントの各セグメントについて確認応答通知を、前記追加ハードウェア・ノードへ送信することと、
前記プロセッサによって、前記複数のネットワーク・リンク、前記ストレージ・リンク、および前記ストレージ・デバイスを介して前記追加ハードウェア・ノードから前記受信機ホスト・ハードウェア・ノードへ、転送されているそれぞれの前記セグメントについての転送レートを記録することと、
前記プロセッサによって、前記データ・ファイルの全てのセグメントが、前記受信機ホスト・ハードウェア・ノードによって受信されたと判断することと、
前記プロセッサによって、前記複数のデータ・セグメントから前記データ・ファイルを構築することと、
を含む、方法。
【請求項１７】
前記要求が、前記複数のネットワーク・リンクのそれぞれの可用性に基づいて判断される、請求項１６に記載の方法。
【請求項１８】
前記要求が、前記複数のネットワーク・リンクのそれぞれについての関連優先度レベルに基づいてさらに判断される、請求項１７に記載の方法。
【請求項１９】
前記プロセッサによって、前記記録する間に、判断されたそれぞれの前記転送レートを記憶することをさらに含む、請求項１６に記載の方法。
【請求項２０】
前記複数のネットワーク・リンクが、ＴＣＰ／ＩＰネットワーク・リンクを含む、請求項１６に記載の方法。
【請求項２１】
コンピュータ可読プログラム・コードを記憶するコンピュータ可読ハードウェア・ストレージ・デバイスを含む、コンピュータ・プログラム製品であって、前記コンピュータ可読プログラム・コードが、ホスト・ハードウェア・ノードのプロセッサによる実行時に共有メモリ・ファイル転送方法を実施するアルゴリズムを含み、前記方法が、
前記プロセッサによって、追加ハードウェア・ノードからデータ・ファイルを転送するための要求を受信することと、
前記プロセッサによって、前記データ・ファイルを説明するサマリを受信することと、
前記プロセッサによって、複数のネットワーク・リンク、ストレージ・リンク、およびストレージ・デバイスを介して前記追加ハードウェア・ノードから、前記データ・ファイルの複数のデータ・セグメントを受信することであって、前記複数のネットワーク・リンク、前記ストレージ・リンク、および前記ストレージ・デバイスが、前記受信機ホスト・ハードウェア・ノードと前記追加ハードウェア・ノードとの間に接続される、前記受信することと、
前記プロセッサによって、それぞれの前記セグメントの受信成功を示す、前記複数のデータ・セグメントの各セグメントについて確認応答通知を、前記追加ハードウェア・ノードへ送信することと、
前記プロセッサによって、前記複数のネットワーク・リンク、前記ストレージ・リンク、および前記ストレージ・デバイスを介して前記追加ハードウェア・ノードから前記受信機ホスト・ハードウェア・ノードへ、転送されているそれぞれの前記セグメントについての転送レートを記録することと、
前記プロセッサによって、前記データ・ファイルの全てのセグメントが、前記受信機ホスト・ハードウェア・ノードによって受信されたと判断することと、
前記プロセッサによって、前記複数のデータ・セグメントから前記データ・ファイルを構築することと、を含む、コンピュータ・プログラム製品。
【請求項２２】
前記要求が、前記複数のネットワーク・リンクのそれぞれの可用性に基づいて判断される、請求項２１に記載のコンピュータ・プログラム製品。
【請求項２３】
前記要求が、前記複数のネットワーク・リンクのそれぞれについての関連優先度レベルに基づいてさらに判断される、請求項２２に記載のコンピュータ・プログラム製品。
【請求項２４】
前記方法が、前記プロセッサによって、前記記録する間に、判断されたそれぞれの前記転送レートを記憶することをさらに含む、請求項２１に記載のコンピュータ・プログラム製品。
【請求項２５】
前記複数のネットワーク・リンクが、ＴＣＰ／ＩＰネットワーク・リンクを含む、請求項２１に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、メモリ内で効率的にデータを転送する方法に関し、特に、複数のハードウェア・ノード間に接続されるネットワーク・リンクを評価し、ネットワーク・リンクを介して送信ハードウェア・ノードから受信機ハードウェア・ノードへデータ・ファイルの異なる部分を送信する方法および関連システムに関する。
【背景技術】
【０００２】
実行中のアプリケーションに関してサーバ間でデータを転送するプロセスが、よく知られている。ネットワーク・モデルおよび関連プロトコルに関して、現在多数の解決策が存在する。代替的な現在の解決策は、標準の共有ストレージおよび分散型ファイル・システムに関連し、典型的には、データを記憶するためだけに使用され、それによって通信およびファイル転送プロセスを制限する。同様に、典型的な共有ストレージおよび分散型ファイル・システムは、データ転送遅延時間に関連し、共有ストレージ環境においてデータを転送するための標準的な速度を提供するだけである。
【０００３】
しかしながら、前述の解決策は、帯域幅制限および安定性の問題に関連する場合があり、それによって、企業システムの性能を制限する。さらには、前述の解決策は、データ・チャネル・フェイルオーバの解決策を防止するために有効にされないことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、当技術分野において、共有ストレージ環境においてデータ転送プロセスを高速化するための自己発見プロセスを提供する必要性が存在する。さらには、当技術分野において、ＩＰネットワークが機能不全であると判断されるときに代替チャネルに関する自動フェイルオーバ・プロセスを提供し、それによってデータ転送についての高い可用性を提供する必要性が存在する。
【課題を解決するための手段】
【０００５】
発明の第１の態様は、共有メモリ・ファイル転送セットアップおよび改善方法であって、ネットワーク・コントローラ・ハードウェア・デバイスのプロセッサによって、複数のハードウェア・ノード間に接続された複数のネットワーク・リンクを構成することであって、複数のハードウェア・ノードの各ハードウェア・ノードが、コマンド・セクションおよびデータ・ストレージ・セクションを含む、構成することと、プロセッサによって、複数のハードウェア・ノードの数に基づいて、ハードウェア・ディスク・ドライブについてのストレージ容量を判断することと、プロセッサによって、ストレージ容量に基づいて、少なくとも１つのストレージ・リンクを介してハードウェア・ディスク・ドライブを複数のハードウェア・ノードに接続することと、プロセッサによって、複数のハードウェア・ノードのそれぞれの中にソフトウェア・エージェントをインストールすることと、プロセッサによって、複数のネットワーク・リンクおよび少なくとも１つのストレージ・リンクについてのプロパティを構成することと、プロセッサによって、それぞれのソフトウェア・エージェントを有効にすることと、それぞれのソフトウェア・エージェントを実行するプロセッサによって、複数のネットワーク・リンクおよび少なくとも１つのストレージ・リンクのそれぞれについて接続性状態、帯域幅、および負荷状況をテストすることと、プロセッサによって、それぞれのコマンド・セクションを介して、それぞれのハードウェア・ノードをハードウェア・ディスク・ドライブに登録することと、プロセッサによって、複数のネットワーク・リンクおよび少なくとも１つのストレージ・リンクを介してハードウェア・ディスク・ドライブと複数のハードウェア・ノードとの間の通信を有効にすることと、を含む方法を提供する。
【０００６】
発明の第２の態様は、共有メモリ・ファイル転送の使用および改善方法であって、受信機ホスト・ハードウェア・ノードのプロセッサによって、追加ハードウェア・ノードからデータ・ファイルを転送するための要求を受信することと、プロセッサによって、データ・ファイルを説明するサマリを受信することと、プロセッサによって、複数のネットワーク・リンク、ストレージ・リンク、およびストレージ・デバイスを介して追加ハードウェア・ノードから、データ・ファイルの複数のデータ・セグメントを受信することであって、複数のネットワーク・リンク、ストレージ・リンク、およびストレージ・デバイスが、受信機ホスト・ハードウェア・ノードと追加ハードウェア・ノードとの間に接続される、受信することと、プロセッサによって、それぞれのセグメントの受信成功を示す、複数のデータ・セグメントの各セグメントについて確認応答通知を、追加ハードウェア・ノードへ送信することと、プロセッサによって、複数のネットワーク・リンク、ストレージ・リンク、およびストレージ・デバイスを介して追加ハードウェア・ノードから受信機ホスト・ハードウェア・ノードへ、転送されているそれぞれのセグメントについての転送レートを記録することと、プロセッサによって、データ・ファイルの全てのセグメントが、受信機ホスト・ハードウェア・ノードによって受信されたと判断することと、プロセッサによって、複数のデータ・セグメントからデータ・ファイルを構築することと、を含む、方法を提供する。
【０００７】
発明の第３の態様は、コンピュータ可読プログラム・コードを記憶するコンピュータ可読ハードウェア・ストレージ・デバイスを含む、コンピュータ・プログラム製品であって、コンピュータ可読プログラム・コードが、ホスト・ハードウェア・ノードのプロセッサによる実行時に共有メモリ・ファイル転送の使用および改善方法を実施するアルゴリズムを含み、方法が、プロセッサによって、追加ハードウェア・ノードからデータ・ファイルを転送するための要求を受信することと、プロセッサによって、データ・ファイルを説明するサマリを受信することと、プロセッサによって、複数のネットワーク・リンク、ストレージ・リンク、およびストレージ・デバイスを介して追加ハードウェア・ノードから、データ・ファイルの複数のデータ・セグメントを受信することであって、複数のネットワーク・リンク、ストレージ・リンク、およびストレージ・デバイスが、受信機ホスト・ハードウェア・ノードと追加ハードウェア・ノードとの間に接続される、受信することと、プロセッサによって、それぞれのセグメントの受信成功を示す、複数のデータ・セグメントの各セグメントについて確認応答通知を、追加ハードウェア・ノードへ送信することと、プロセッサによって、複数のネットワーク・リンク、ストレージ・リンク、およびストレージ・デバイスを介して追加ハードウェア・ノードから受信機ホスト・ハードウェア・ノードへ、転送されているそれぞれのセグメントについての転送レートを記録することと、プロセッサによって、データ・ファイルの全てのセグメントが、受信機ホスト・ハードウェア・ノードによって受信されたと判断することと、プロセッサによって、複数のデータ・セグメントからデータ・ファイルを構築することと、を含む、コンピュータ・プログラム製品を提供する。
【０００８】
発明の第４の態様は、共有メモリ・ファイル転送の使用および改善方法であって、送信機ホスト・ハードウェア・ノードのプロセッサによって、送信機ホスト・ハードウェア・ノードと受信機ホスト・ハードウェア・ノードとの間でストレージ・デバイスを介してデータ・ファイルを転送するための複数のネットワーク・リンクのうちの利用可能な数を判断することと、プロセッサによって、複数のネットワーク・リンクのそれぞれについて関連優先度レベルを判断することと、プロセッサによって、受信機ホスト・ハードウェア・ノードにデータ・ファイルを転送するための要求を受信することと、プロセッサによって、要求に応答して、データ・ファイルを複数のセグメントに分割することと、プロセッサによって、送信シーケンスを複数のセグメントに割り当てることと、プロセッサによって、受信機ホスト・ハードウェア・ノードにデータ・ファイルを説明するサマリを送信することと、プロセッサによって、複数のネットワーク・リンクのそれぞれについて転送比率を判断することと、プロセッサによって、それぞれの転送比率に基づいて、受信機ホスト・ハードウェア・ノードに複数のネットワーク・リンクを介して複数のセグメントを送信することと、プロセッサによって、それぞれのセグメントの受信成功を示す、複数のデータ・セグメントの各セグメントについて確認応答通知を、受信機ホスト・ハードウェア・ノードから受信することと、プロセッサによって、セグメント・プール・ストレージ・デバイスからそれぞれのセグメントのコピーを削除することと、プロセッサによって、複数のネットワーク・リンクおよびストレージ・デバイスを介して受信機ホスト・ハードウェア・ノードへ、転送されているそれぞれのセグメントについての転送レートを記録することと、を含む、方法を提供する。
【０００９】
発明の第５の態様は、コンピュータ可読メモリ・ユニットに連結されたプロセッサを含む送信機ホスト・ハードウェア・ノードであって、メモリ・ユニットが、コンピュータ・プロセッサによる実行時に共有メモリ・ファイル転送の使用および改善方法を実施する命令を含み、方法が、プロセッサによって、送信機ホスト・ハードウェア・ノードと受信機ホスト・ハードウェア・ノードとの間でストレージ・デバイスを介してデータ・ファイルを転送するための複数のネットワーク・リンクのうちの利用可能な数を判断することと、プロセッサによって、複数のネットワーク・リンクのそれぞれについて関連優先度レベルを判断することと、プロセッサによって、受信機ホスト・ハードウェア・ノードにデータ・ファイルを転送するための要求を受信することと、プロセッサによって、要求に応答して、データ・ファイルを複数のセグメントに分割することと、プロセッサによって、送信シーケンスを複数のセグメントに割り当てることと、プロセッサによって、受信機ホスト・ハードウェア・ノードにデータ・ファイルを説明するサマリを送信することと、プロセッサによって、複数のネットワーク・リンクのそれぞれについて転送比率を判断することと、プロセッサによって、それぞれの転送比率に基づいて、受信機ホスト・ハードウェア・ノードに複数のネットワーク・リンクを介して複数のセグメントを送信することと、プロセッサによって、それぞれのセグメントの受信成功を示す、複数のデータ・セグメントの各セグメントについて確認応答通知を、受信機ホスト・ハードウェア・ノードから受信することと、プロセッサによって、セグメント・プール・ストレージ・デバイスからそれぞれのセグメントのコピーを削除することと、プロセッサによって、複数のネットワーク・リンクおよびストレージ・デバイスを介して受信機ホスト・ハードウェア・ノードへ、転送されているそれぞれのセグメントについての転送レートを記録することと、を含む、送信機ホスト・ハードウェア・ノードを提供する。
【発明の効果】
【００１０】
本発明は、無許可のメディア複製を防止することが可能な簡単な方法および関連システムを有利に提供する。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態による、共有メモリ・ファイル転送プロセスを改善するシステムを示す。
【図２】本発明の実施形態による、共有メモリ・ファイル転送プロセスを改善するエージェント起動プロセスを示す。
【図３】本発明の実施形態による、共有メモリ・ファイル転送プロセスを改善するセットアップ・コードを構築するための、図１のシステムにより可能なプロセス・フローを詳細化したアルゴリズムを示す。
【図４】本発明の実施形態による、共有メモリ・ファイル転送プロセスを改善するための、図１のシステムにより可能なプロセス・フローを詳細化したアルゴリズムを示す。
【図５】本発明の実施形態による、共有メモリ・ファイル転送プロセスを改善するための、図１のシステムにより可能な代替プロセス・フローを詳細化した、図４のアルゴリズムに対する代替アルゴリズムを示す。
【図６】本発明の実施形態による、共有メモリ・ファイル転送プロセスを改善するための、図１のシステムにより使用されるコンピュータ・システムを示す。
【図７】本発明の実施形態による、クラウド・コンピューティング環境を示す。
【図８】本発明の実施形態による、クラウド・コンピューティング環境によって提供される機能抽象レイヤのセットを示す。
【発明を実施するための形態】
【００１２】
図１は、本発明の実施形態による、共有メモリ・ファイル転送プロセスを改善するシステム１００を示す。典型的なサーバ・ベースのデータ転送プロセスは、アプリケーション・レイヤ・レベルにおいて実行されるプロセスに関連する。さらには、典型的なデータ転送プロセスは、異なる種類のプロトコル間の相互通信を可能にし得る。例えば、プロトコルは、イーサネット（Ｒ）、ファイバ・チャネル、およびＳＣＳＩを含み得る。前述のプロセスは、帯域幅制限および安定性の問題を引き起こし、それによって、企業システムの性能を制限することがある。
【００１３】
システム１００は、ユーザが、データ転送を必要とする全てのノード（例えば、ノード１０７および１０８）のために１つまたは複数のＴＣＰ／ＩＰネットワーク・リンク（例えば、ネットワーク・リンク１２２ａ．．．１２２ｎ）を構成することを可能にする。１つまたは複数のＴＣＰ／ＩＰネットワーク・リンクおよび１つまたは複数の（ＦＣまたはＩＢなど）ストレージ・リンクが、システム１００によって実行されるように、共有ディスク（例えば、ノードの数および関連する帯域幅によって判断されるサイズを有する）は、関連するノードについての各ストレージ・コントローラにアタッチされる。
【００１４】
システム１００は、共有ストレージ環境において高速かつ安全なファイル転送プロセスを可能にする改善されたプロセスを可能にし、それによって、共有ストレージ環境においてファイル転送スロットルを動的に解決する。システム１００は、ファイル転送プロセスに基づいてより効率的なストレージのコピーを提供することによって、ファイル転送プロセスの速度を増加させる。さらには、システム１００は、現在のファイル転送状態に従って、ファイル転送初期化中にファイルを転送する方法を判断するための高度なアルゴリズムを利用する。
【００１５】
システム１００は、
１．共有ストレージ・クラウド環境内でファイル転送速度を増加させるアーキテクチャ
２．ファイルを転送するためのプロセスを判断するメカニズム
３．現在のファイル転送状態に従って特定のファイル転送方法を選択するためのソフトウェア・コード
４．システム機能不全の間の透明性のあるフェイルオーバ解決策
を提供する。
【００１６】
システム１００は、リアルタイムの転送能力に対する割合に基づいてファイル転送中に転送負荷を指定されたチャネルへ割り当てるための改善されたプロセスを可能にし、それによって、少なくとも１つのチャネルが利用可能である限り、転送プロセスが完結することを保証する。さらには、チャネルに関連する転送コードが、動的に更新される。
【００１７】
図１のシステム１００は、ネットワーク・リンク１２２ａ．．．１２２ｎを介したＩＰネットワーク１０４およびストレージ・ネットワーク１１０を通して、ホスト（例えば、受信機）ハードウェア・ノード１０８（インストール済みソフトウェア・エージェント１０８ａを含む）に接続された、ホスト（例えば、送信機）ハードウェア・ノード１０７（インストール済みソフトウェア・エージェント１０７ａを含む）を含む。システム１００は、追加的に、ホスト・ハードウェア・ノード１０７およびホスト・ハードウェア・ノード１０８に類似の複数のハードウェア・ノードを含み得る。ＩＰネットワーク１０４は、ネットワーク・リンク１２２ａ、１２２ｂ、１２２ｃ、および１２２ｄを介してホスト・ハードウェア・ノード１０７をホスト・ハードウェア・ノード１０８に接続する、ルータ１１２ａ．．．１１２ｎおよびネットワーク接続ストレージ（ＮＡＳ）デバイス１１５を含む。ストレージ・ネットワーク１１０は、ネットワーク・リンク１２２ｅおよび１２２ｎを介してホスト・ハードウェア・ノード１０７をホスト・ハードウェア・ノード１０８に接続するストレージ・デバイス／システム１１８を含む。ストレージ・デバイス／システム１１８は、共有ブロック・ストレージ１１８ａ、ブロック・ストレージ１１８ｂ、およびブロック・ストレージ１１８ｃを含む。ホスト・ハードウェア・ノード１０７およびホスト・ハードウェア・ノード１０８は、それぞれ組み込み型コンピュータを含み得る。組み込み型コンピュータは、本明細書において、専門機能を実行するために特別に設計された（機能が固定された、またはプログラマブルな）コンピュータ・ハードウェアおよびソフトウェアの組み合わせを含む専用コンピュータとして定義される。プログラマブル組み込み型コンピュータは、専門プログラミング・インターフェースを含んでもよい。さらには、ホスト・ハードウェア・ノード１０７、ホスト・ハードウェア・ノード１０８、ＩＰネットワーク１０４、およびストレージ・ネットワーク１１０は、それぞれ、図１〜８に関連して説明されるプロセスを実行するための、専門の（汎用ではない）ハードウェアおよび回路（すなわち、専門の個別非汎用的アナログ、デジタル、およびロジック・ベース回路）を含む専門ハードウェア・デバイスを含み得る。専門の個別非汎用的アナログ、デジタル、およびロジック・ベース回路は、独自仕様の特別に設計されたコンポーネント（例えば、共有メモリ・ファイル転送プロセスを改善するための自動化プロセスを実施するためだけに設計された専門集積回路）を含み得る。ホスト・ハードウェア・ノード１０７、ホスト・ハードウェア・ノード１０８、ＩＰネットワーク１０４、およびストレージ・ネットワーク１１０は、それぞれ専門メモリを含んでもよい。専門メモリは、単一のメモリ・システムを含んでもよい。代替的には、専門メモリは、複数のメモリ・システムを含んでもよい。ホスト・ハードウェア・ノード１０７、ホスト・ハードウェア・ノード１０８、ＩＰネットワーク１０４、およびストレージ・ネットワーク１１０は、それぞれセンサ、プロセッサ、ならびに追加のソフトウェアおよび専門回路を含んでもよい。センサは、特に、ＧＰＳセンサ、デジタル・メディア検索ストリーミング・センサ、ネットワーク・トラフィック・センサなどを含んでもよい。ＩＰネットワーク１０４およびストレージ・ネットワーク１１０は、特に、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、ワイヤレス・ネットワークなどを含む任意の種類のネットワークを含んでもよい。
【００１８】
システム１００は、以下のような共有メモリ・ファイル転送プロセスを実行するためのホスト・ハードウェア・ノード１０７およびホスト・ハードウェア・ノード１０８を構成するセットアップ・プロセスを可能にする。
【００１９】
ネットワーク・リンク１２２ａ．．．１２２ｎ（例えば、ＴＣＰ／ＩＰネットワーク・リンク）は、ハードウェア・ノード１０７およびホスト・ハードウェア・ノード１０８との間のデータ送信のために構成される。これに応じて、共有ディスク（ストレージ・デバイス／システム１１８など）は、データ転送のためにハードウェア・ノード１０７およびホスト・ハードウェア・ノード１０８に接続される。共有ディスクのサイズは、システム１００内のノードの数、および関連するネットワーク・リンクの帯域幅によって判断され得る。さらに、ソフトウェア・エージェント１０７ａおよび１０８ａは、それぞれハードウェア・ノード１０７およびホスト・ハードウェア・ノード１０８内にインストールされる。ネットワーク・リンク１２２ａ．．．１２２ｎのそれぞれが、各ネットワーク・リンクの優先度に関連付けられた優先度プロパティを含む関連プロパティに関して構成される。優先度は、自動値または数値に設定され得る。より高い数値は、エージェントがデータを転送するために前述のリンクを使用すべきであることを示す、より高い優先度を表す。例えば、２の値を含むネットワーク・リンクは、１の値を含むネットワーク・リンクの２倍のデータを転送することが可能とされ得る。自動値は、ソフトウェア・エージェントが、各ソフトウェア・リンクの現在の負荷状況を判断し、関連するネットワーク・リンクの帯域幅を十分に確保するように、関連する負荷状況に基づいて数値を自動的に設定することを可能にする。自動値は、関連する負荷状況が変化したときに動的に修正されてもよい。発見時間のプロパティは、ソフトウェア・エージェントが優先度を判断するためにネットワーク・リンクの帯域幅をテストする時間を判断するために使用され得る。各ソフトウェア・エージェントは、プロパティを判断するための各ネットワーク・リンクの接続性状態、帯域幅使用率、および負荷状況をテストするために実行される。共有ストレージ・リンクは、（ａ）ストレージ・ネットワーク１１０をロックし、ホスト・ハードウェア・ノード１０７および１０８を（共有）ストレージ・ネットワーク１１０に登録するための、ソフトウェア・エージェントを実行するために有効にされる。ホスト・ハードウェア・ノード１０７および１０８のそれぞれが、ストレージ・ネットワーク１１０の指定されたセクションに関連付けられる。例えば、ホスト・ハードウェア・ノード１０７および１０８のそれぞれが、１００ＭＢのストレージに関連付けられてもよく、ストレージ・ネットワーク１１０のそれぞれの指定されたセクションが、ストレージ・ネットワーク１１０内にシーケンシャルに位置してもよい。最初の１ＭＢは、コマンド・セクション（例えば、下記図２のコマンド・セクション２０２ａ．．．２０８ａを参照）を含み、残りの９９ＭＢは、データ・セクション（例えば、下記図２のデータ・セクション２０２ｂ．．．２０８ｂを参照）を含み得る。ホスト・ハードウェア・ノード１０７および１０８のそれぞれに関連する全てのプロトコルが、データを転送するために構成されるように、コマンド・セクションは、ノード情報（例えば、ＵＵＩＤなど）を中継するために有効にされ得る。同様に、各データ・セクションは、実際のデータを転送するために構成される。全てのピア・ノードが、全ての利用可能なリンクを通して構成されるように、ソフトウェア・エージェントのそれぞれが、ネットワーク・リンクの全てに関して開始される。関連する結果が、後のデータ転送に使用するために保存される。
【００２０】
システム１００は、以下の通り、ホスト・ハードウェア・ノード１０７とホスト・ハードウェア・ノード１０８との間でデータを転送するための転送プロセスを可能にする。
【００２１】
ホスト・ハードウェア・ノード１０７からホスト・ハードウェア・ノード１０８にファイルを転送するプロセスが開始されるときに、エージェント１０７ａおよび１０８ａが、ハードウェア・ノード１０７と１０８との間で利用可能なネットワーク・リンク（例えば、ネットワーク・リンク１２２ａ．．．１２２ｎ）の数を判断する。さらには、ネットワーク・リンクのそれぞれについての優先度が判断される。これに応じて、エージェント１０７ａまたは１０８ａあるいはその両方は、並行送信のために送信用ファイルを小さなセグメントに分割する。例えば、４ＧＢのＩＳＯファイルが、ハードウェア・ノード１０７および１０８の間で転送される必要があることがあり、全部で４つの利用可能なリンク（すなわち、２つのＴＣＰ／ＩＰリンクおよび２つのストレージ・リンク）があり、１つのＴＣＰ／ＩＰリンクおよび１つのストレージ・リンクに重い負荷があると判断される。したがって、エージェント１０７ａまたは１０８ａあるいはその両方は、前述の２つのリンクにより低い優先度を設定する。各送信の反復において、エージェント１０７ａまたは１０８ａあるいはその両方が、負荷の高いリンクを通して１ＭＢを送信し、他の２つのリンクを通して５ＭＢを送信する。負荷の高いリンクのうちの１つのワークロードが減少したことが（データ転送中に）さらに検出される場合、追加のデータ・セグメントが、このネットワーク・リンクを介して送信される。さらには、１つのリンクが切断され、または機能不全である場合、エージェント１０７ａまたは１０８ａあるいはその両方が、機能不全を検出し、関連する優先度に基づいて別の利用可能なリンクを通してデータ・セグメント・データを再送信する。
【００２２】
図２は、本発明の実施形態による、共有メモリ・ファイル転送プロセスを改善するエージェント起動プロセス２００を示す。エージェント起動プロセス２００は、エージェント２０２が修正され、それによってエージェント２０４〜２０８を形成することを示す。エージェント２０２は、コマンド・セクション２０２ａ、データ・セクション２０２ｂ、およびメタデータ２０２ｃを含む。エージェント２０４は、コマンド・セクション２０４ａ、データ・セクション２０４ｂ、およびメタデータ２０４ｃを含む。エージェント２０６は、コマンド・セクション２０６ａ、データ・セクション２０６ｂ、およびメタデータ２０６ｃを含む。エージェント２０８は、コマンド・セクション２０８ａ、データ・セクション２０８ｂ、およびメタデータ２０８ｃを含む。共有ストレージ・リンクが検出されるとき、エージェント２０２は、共有ディスク・ドライブをロックするためのプロセスを実行し、その後、関連（ハードウェア）ノードをディスク・ドライブに登録する。各ノードは、共有ディスク・ドライブの関連部分を含む。例えば、構成可能なストレージのうちの１００ＭＢ。各ノードの共有ディスク・ドライブの関連部分は、共有ディスク・ドライブ上にシーケンシャルに位置する。最初の１ＭＢ（構成可能）が、コマンド・セクション（例えば、コマンド・セクション２０２ａ）と指定され、残りのサイズが、データ・セクション（例えば、データ・セクション２０２ｂ）と指定される。コマンド・セクションは、ＵＵＩＤなどのノード情報を設定し、ノードに命令する（例えば、プロトコル）ために有効にされる。データ・セクションは、データを転送するために使用される。第１のノードが第２のノードへのデータ転送を要求するとき、以下のステップが実行される。
【００２３】
初期化ステップが、ノードＡとノードＢとの間の全ての利用可能リンクについての状態（例えば、優先度、負荷、帯域幅など）に基づいて実行される。これに応じて、ノードＡ内のエージェントは、使用するリンクおよび各リンク間のデータ分割方法を判断する。ノードＡ内のエージェントは、ネゴシエーション・コマンドをノードＢの選択されたストレージ・リンクのコマンド・セクション内に書き込み、それによって、ノードＡがデータ転送のために関連リンクへのアクセスを要求したことを、ノードＢ内のエージェントに通知する。さらに、転送用データのセクションを指定するコマンドが発行される。ノードＢ内のエージェントが、ネゴシエーション・コマンドに合意する場合、ノードＢ内のエージェントは、確認応答コマンドをノードＡのコマンド・セクション内に書き込む。ノードＢ内のエージェントがネゴシエーション・コマンドに合意しない場合、ノードＢ内のエージェントは、ノードＡのコマンド・セクション内に置かれた新たなネゴシエーション期間を提案し、ノードＡ内のエージェントは、新たなネゴシエーション期間を受け入れる。これに応じて、全てのデータがノードＡとノードＢとの間で転送されるまで、エージェントＡは、データをノードＡのデータ・セクション内に書き込み、ノードＢ内のエージェントは、ノードＡのデータ・セクションからデータを受信する。データ転送プロセスの間、ノードＡまたはノードＢが、新たな転送期間を提案する（例えば、このリンク上の負荷が大きすぎる）場合、ノードＡまたはノードＢは、新たな期間をノードＡのコマンド・セクション内に書き込む。例えば、送信および受信プロセスの間、データを拡大または減少させる期間。追加コマンドが、ノードＡのコマンド・セクション内に置かれ得る。例えば、ノードＢがデータの一部を失う場合、ノードＢは、再送信を要求してノードＡのコマンド・セクション内に再送信コマンドを書き込んでもよい。
【００２４】
図３は、本発明の実施形態による、共有メモリ・ファイル転送プロセスを改善するセットアップ・コードを構築するための、図１のシステム１００により可能なプロセス・フローを詳細化したアルゴリズムを示す。図３のアルゴリズム内の各ステップは、コンピュータ・コードを実行するコンピュータ・プロセッサによって、任意の順番で有効にされ、実行され得る。ステップ３００において、ハードウェア・ノード間に接続されたネットワーク・リンク（例えば、ＴＣＰ／ＩＰネットワーク・リンク）が構成される。各ハードウェア・ノードは、コマンド・セクションおよびデータ・ストレージ・セクションを含む。ステップ３０２において、ハードウェア・ディスク・ドライブについてのストレージ容量が、ハードウェア・ノードの数（および任意選択で、ネットワーク・リンクのそれぞれについての帯域幅）に基づいて判断される。ステップ３０４において、ハードウェア・ディスク・ドライブが、ストレージ容量に基づいて、ハードウェア・ノードに（ストレージ・リンクを介して）接続される。ステップ３０８において、ソフトウェア・エージェントが、各ハードウェア・ノード内にインストールされる。ステップ３１０において、ネットワーク・リンクおよびストレージ・リンクについてのプロパティが構成される。プロパティは、ネットワーク・リンクおよびストレージ・リンクについての優先度レベル、ならびにテスト・プロセスに関連する指定された時間フレームを含み得る。ステップ３１２において、各ソフトウェア・エージェントが有効にされる。ステップ３１４において、接続性状態、帯域幅、および負荷状況が、ネットワーク・リンクおよびストレージ・リンクのそれぞれについてテストされる。ステップ３１８において、各ハードウェア・ノードが、ハードウェア・ディスク・ドライブに登録される。ステップ３２０において、ハードウェア・ディスク・ドライブとハードウェア・ノードとの間の通信が、ネットワーク・リンクおよびストレージ・リンクを介して有効にされる。
【００２５】
図４は、本発明の実施形態による、共有メモリ・ファイル転送プロセスを改善するための、図１のシステム１００により可能なプロセス・フローを詳細化したアルゴリズムを示す。図４のアルゴリズム内の各ステップは、コンピュータ・コードを実行するコンピュータ・プロセッサによって、任意の順番で有効にされ、実行され得る。ステップ４００において、データ・ファイルを転送するための要求が、（受信機ホスト・ハードウェア・ノードによって、各ネットワーク・リンクの可用性に基づいて）追加のハードウェア・ノードから受信される。ステップ４０２において、データ・ファイルを説明するサマリが受信される。ステップ４０４において、データ・ファイルのデータ・セグメントが、ネットワーク・リンク、ストレージ・リンク、およびストレージ・デバイスを介して追加のハードウェア・ノードから受信される。ネットワーク・リンク、ストレージ・リンク、およびストレージ・デバイスは、受信機ホスト・ハードウェア・ノードと追加のハードウェア・ノードとの間に接続される。ステップ４０８において、各セグメントについての確認応答通知が、追加ハードウェア・ノードに送信される。確認応答通知は、各セグメントの受信成功を示す。ステップ４１０において、追加ハードウェア・ノードから受信機ホスト・ハードウェア・ノードに転送されているそれぞれのセグメントについての転送レートが、ネットワーク・リンク、ストレージ・リンク、およびストレージ・デバイスを介して記録される。ステップ４１２において、データ・ファイルの全てのセグメントが受信機ホスト・ハードウェア・ノードによって受信されたと、判断される。ステップ４１４において、データ・ファイルが、データ・セグメントから再構築される。ステップ４１８において、各転送レートが記憶される。
【００２６】
図５は、本発明の実施形態による、共有メモリ・ファイル転送プロセスを改善するための、図１のシステム１００により可能な代替プロセス・フローを詳細化した、図４のアルゴリズムに対する代替アルゴリズムを示す。図５のアルゴリズム内の各ステップは、コンピュータ・コードを実行するコンピュータ・プロセッサによって、任意の順番で有効にされ、実行され得る。ステップ５００において、ストレージ・デバイスを介して送信機ホスト・ハードウェア・ノードと受信機ホスト・ハードウェア・ノードとの間でデータ・ファイルを転送するためのネットワーク・リンクの利用可能な数が、送信機ホスト・ハードウェア・ノードによって判断される。ステップ５０２において、ネットワーク・リンクのそれぞれについての関連優先度レベルが、判断される。ステップ５０４において、受信機ホスト・ハードウェア・ノードにデータ・ファイルを転送するための要求が、受信される。ステップ５０８において、ステップ５０４の要求に応答して、データ・ファイルが複数のセグメントに分割される。ステップ５１０において、送信シーケンスが、セグメントに割り当てられる。ステップ５１２において、データ・ファイルを説明するサマリが、受信機ホスト・ハードウェア・ノードに送信される。ステップ５１４において、ネットワーク・リンクのそれぞれについての転送比率が、判断される。ステップ５１８において、セグメントが、各転送比率に基づいてネットワーク・リンクを介して受信機ホスト・ハードウェア・ノードに送信される。セグメントを送信することは、ネットワーク・リンクのそれぞれについての占有帯域幅、転送レート、およびネットワーク・レイテンシにさらに基づいてもよい。ステップ５２０において、データ・セグメントの各セグメントについての確認応答通知が、受信機ホスト・ハードウェア・ノードから受信される。確認応答通知は、各セグメントの受信成功を示す。ステップ５２２において、各セグメントのコピーが、セグメント・プール・ストレージ・デバイスから削除される。ステップ５２４において、ネットワーク・リンクを介して転送されているそれぞれのセグメントについての転送レートが、記録され、記憶される。ステップ５２８において、セグメント・プール・ストレージ・デバイスが各セグメントのコピーをもはや含まないことが、判断される。
【００２７】
図６は、本発明の実施形態による、共有メモリ・ファイル転送プロセスを改善するための、図１のシステムにより使用され、または含まれるコンピュータ・システム９０（例えば、ハードウェア・ノード１０７またはハードウェア・ノード１０８あるいはその両方）を示す。
【００２８】
本発明の態様は、完全なハードウェア実施形態、完全なソフトウェア実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、または、本明細書では全て概して「回路」、「モジュール」、もしくは「システム」と呼ばれ得る、ソフトウェアおよびハードウェア態様を組み合わせた実施形態の形式をとってもよい。
【００２９】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有する、コンピュータ可読記憶媒体を含んでもよい。
【００３０】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持し、記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または前述したものの任意の適当な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体の、より具体的な例の非網羅リストは、以下の、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチカードまたは記録された命令を有する溝内の隆起構造などの機械的に符号化されたデバイス、および前述したものの任意の適当な組み合わせを含む。本明細書で用いられるコンピュータ可読記憶媒体は、本来、電波もしくは他の自由伝播する電磁波、導波管もしくは他の送信媒体を通って伝播する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、または電線を通って送信される電気信号などの、一時的信号であると解釈されるべきではない。
【００３１】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはその組み合わせを介して外部コンピュータまたは外部ストレージ・デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを含み得る。各コンピューティング／処理装置内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体内の記憶用に、コンピュータ可読プログラム命令を転送する。
【００３２】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはＳｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、１つもしくは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的かつリモート・コンピュータ上で部分的に、またはリモート・コンピュータもしくはサーバ上で完全に、実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを通して、ユーザのコンピュータに接続されてもよい。あるいは、接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを通して）外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することによって、コンピュータ可読プログラム命令を実行し得る。
【００３３】
本発明の態様は、本発明の実施形態による、方法、デバイス（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本明細書において説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実施され得ると理解されたい。
【００３４】
コンピュータまたは他のプログラマブル・データ処理デバイスのプロセッサによって実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックにおいて指定される機能／動作を実施する手段を作り出すように、これらのコンピュータ可読プログラム命令は、機械を生成するために、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理デバイスのプロセッサに提供されてもよい。記憶される命令を有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックにおいて指定される機能／動作の態様を実施する命令を含む製品を含むように、これらのコンピュータ可読プログラム命令は、また、コンピュータ、プログラマブル・データ処理デバイス、または他のデバイス、あるいはその組み合わせが特定の方法で機能するように指示し得る、コンピュータ可読記憶媒体に記憶されてもよい。
【００３５】
コンピュータ、他のプログラマブル・デバイス、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックにおいて指定された機能／動作を実施するように、コンピュータ可読プログラム命令は、また、一連の動作ステップが、コンピュータ実施されたプロセスを生成するためにコンピュータ、他のプログラマブル・デバイス、または他のデバイス上で実行されるようにするために、コンピュータ、他のプログラマブル・データ処理デバイス、または他のデバイス上にロードされてもよい。
【００３６】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考えられる実施のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための１つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表してもよい。いくつかの代替的な実施において、ブロック内に記載された機能は、図面中に記載された順序以外で発生してもよい。例えば、連続して示される２つのブロックが、実際には、実質的に同時に実行されてもよく、または、ブロックが、関係する機能性次第で、逆の順序で実行されることがあってもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせが、指定された機能もしくは動作を実行し、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用ハードウェア・ベース・システムによって実施され得ることにも留意されたい。
【００３７】
図６に示されるコンピュータ・システム９０は、プロセッサ９１、プロセッサ９１に連結された入力デバイス９２、プロセッサ９１に連結された出力デバイス９３、ならびにプロセッサ９１にそれぞれ連結されたメモリ・デバイス９４および９５を含む。入力デバイス９２は、特に、キーボード、マウス、カメラ、タッチスクリーンなどであってもよい。出力デバイス９３は、特に、プリンタ、プロッタ、コンピュータ・スクリーン、磁気テープ、リムーバブル・ハード・ディスク、フロッピー（Ｒ）・ディスクなどであってもよい。メモリ・デバイス９４および９５は、特に、ハード・ディスク、フロッピー（Ｒ）・ディスク、磁気テープ、コンパクト・ディスク（ＣＤ）またはデジタル・メディア・ディスク（ＤＶＤ）などの光学ストレージ、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、読み出し専用メモリ（ＲＯＭ）などであってもよい。メモリ・デバイス９５は、コンピュータ・コード９７を含む。コンピュータ・コード９７は、デジタル・メディア・コンテンツ転送防止プロセスを改善するためのプロセスを可能にするアルゴリズム（例えば、図３および図４のアルゴリズム）を含む。プロセッサ９１は、コンピュータ・コード９７を実行する。メモリ・デバイス９４は、入力データ９６を含む。入力データ９６は、コンピュータ・コード９７により必要な入力を含む。出力デバイス９３は、コンピュータ・コード９７からの出力を表示する。メモリ・デバイス９４および９５のいずれかもしくは両方（または、読み出し専用メモリ・デバイス９６などの１つもしくは複数の追加メモリ・デバイス）は、アルゴリズム（例えば、図３、４、および５のアルゴリズム）を含んでもよく、そこに具現化されたコンピュータ可読プログラム・コードを有する、またはそこに記憶された他のデータを有する、あるいはその両方であるコンピュータ使用可能媒体（または、コンピュータ可読媒体もしくはプログラム・ストレージ・デバイス）として使用されてもよい。コンピュータ可読プログラム・コードは、コンピュータ・コード９７を含む。概して、コンピュータ・システム９０のコンピュータ・プログラム製品（または代替的には、製品）は、コンピュータ使用可能媒体（または、プログラム・ストレージ・デバイス）を含み得る。
【００３８】
いくつかの実施形態では、ハード・ドライブ、光学ディスク、または他の書き込み可能、書き換え可能、もしくはリムーバブル・ハードウェア・メモリ・デバイス９５から記憶およびアクセスされるのではなく、記憶されたコンピュータ・プログラム・コード８４（例えば、アルゴリズムを含む）は、読み出し専用メモリ（ＲＯＭ）デバイス８５などの静的非リムーバブル読み出し専用記憶媒体上に記憶されてもよく、またはそのような静的非リムーバブル読み出し専用媒体８５から直接プロセッサ９１によってアクセスされてもよい。同様に、いくつかの実施形態において、記憶されたコンピュータ・プログラム・コード９７は、コンピュータ可読ファームウェア８５として記憶されてもよく、またはハード・ドライブもしくは光学ディスクなどの、より動的なもしくはリムーバブルなハードウェア・データ記憶デバイス９５からではなく、そのようなファームウェア８５から直接プロセッサ９１によってアクセスされてもよい。
【００３９】
さらに、本発明の構成要素のいずれかは、共有メモリ・ファイル転送プロセスを改善するために提案するサービス供給者によって、考案され、統合され、ホストされ、維持され、配備され、管理され、サービスされるなどであってもよい。したがって、本発明は、コンピュータ可読コードをコンピュータ・システム９０に統合することを含む、コンピューティング・インフラを配備すること、考案すること、統合すること、ホストすること、維持すること、または統合すること、あるいはその組み合わせのためのプロセスを開示する。コンピュータ・システム９０と組み合わせたコードは、ハードウェア・システムについての予測される将来の状態および関連する動作属性を判断する方法を実行することが可能である。別の実施形態において、発明は、予約購読、広告、または料金、あるいはその組み合わせ単位で、発明のプロセス・ステップを実行するビジネス方法を提供する。すなわち、ソリューション・インテグレータなどのサービス供給者は、共有メモリ・ファイル転送プロセスを改善するためのプロセスを可能にするように提案し得る。この場合、サービス供給者は、１つまたは複数の顧客に対し、発明のプロセス・ステップを実行するコンピュータ・インフラを考案し、維持し、サポートするなどすることができる。これと引き換えに、サービス供給者は、予約購読もしくは料金またはその両方の合意のもとに顧客から支払いを受けることができ、またはサービス供給者は、１つまたは複数の第三者へのコンテンツ広告販売から支払いを受けることができ、あるいはその両方である。
【００４０】
図６は、ハードウェアおよびソフトウェアの特定の構成として、コンピュータ・システム９０を示しているが、当業者には既知であるハードウェアおよびソフトウェアの任意の構成が、図６の特定のコンピュータ・システム９０と併せて上述した目的に利用されてもよい。例えば、メモリ・デバイス９４および９５は、別々のメモリ・デバイスではなく単一のメモリ・デバイスの一部であってもよい。
【００４１】
クラウド・コンピューティング環境
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書に挙げる教示の実施は、クラウド・コンピューティング環境に限定されないと理解されるべきである。むしろ、本発明の実施形態は、現在既知の、または後に開発される任意の他の種類のコンピューティング環境と併せて実施されることが可能である。
【００４２】
クラウド・コンピューティングは、最小の管理労力またはサービス・プロバイダとの対話で迅速に供給され、解放され得る、構成可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス）の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも５つの特性、少なくとも３つのサービス・モデル、および少なくとも４つの配備モデルを含み得る。
【００４３】
特性は、以下の通りである。
オンデマンド・セルフサービス：クラウド消費者は、サービス・プロバイダとの人との対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的に供給し得る。
幅広いネットワーク・アクセス：機能は、ネットワーク上で利用可能であり、異種シン・クライアントまたはシック・クライアント・プラットフォーム（例えば、携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する標準的なメカニズムを通してアクセスされる。
リソースの共用：プロバイダのコンピューティング・リソースが、マルチテナント型モデルを使用して複数の消費者にサービスするためにプールされ、異なる物理リソースおよび仮想リソースが要求に従って動的に割り当ておよび再割り当てされる。消費者が、概して、提供されるリソースの正確な場所に対する制御または知識を有しないが、より抽象度の高いレベル（例えば、国、州、またはデータセンタ）において場所を指定することが可能であり得るという点において、位置独立の意味がある。
スピーディな拡張性：機能は、場合によっては自動的に、即座にスケール・アウトするようにスピーディかつ弾力的に供給され、即座にスケール・インするようにスピーディに解放され得る。消費者に対しては、供給に利用可能な機能が、多くの場合無制限であるように見え、いつでも任意の量で購入可能である。
サービスが測定可能であること：クラウド・システムは、サービスの種類（例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント）に適したある抽象度レベルにおいて計測機能を活用することによって、リソース使用を自動的に制御し、最適化する。リソース使用量は、モニタリングされ、制御され、報告されて、利用サービスのプロバイダおよび消費者の両方に透明性をもたらし得る。
【００４４】
サービス・モデルは、以下の通りである。
サービスとしてのソフトウェア（ＳａａＳ）：消費者に提供される機能は、クラウド・インフラ上で実行中のプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース（例えば、ウェブ・ベースの電子メール）を通して、様々なクライアント・デバイスからアクセス可能である。消費者は、限定されたユーザ固有アプリケーションの構成設定は例外である可能性があるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能ですら含む、基礎的なクラウド・インフラを管理または制御しない。
サービスとしてのプラットフォーム（ＰａａＳ）：消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して考案された、消費者が作成したアプリケーションまたは消費者が取得したアプリケーションを、クラウド・インフラ上に配備することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎的なクラウド・インフラを管理または制御しないが、配備されたアプリケーション、および、可能な限りアプリケーション・ホスティング環境構成に対して制御を行う。
サービスとしてのインフラ（ＩａａＳ）：消費者に提供される機能は、処理、ストレージ、ネットワーク、ならびに消費者がオペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを配備および実行することが可能な、他の基本コンピューティング・リソースを供給することである。消費者は、基礎的なクラウド・インフラを管理または制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションに対して制御を行い、および、選択ネットワーキング・コンポーネント（例えば、ホスト・ファイアウォール）の可能な限り限定的な制御を行う。
【００４５】
配備モデルは、以下の通りである。
プライベート・クラウド：クラウド・インフラは、組織のためだけに動作される。クラウド・インフラは、その組織または第三者によって管理されてもよく、構内または構外に存在し得る。
コミュニティ・クラウド：クラウド・インフラは、複数の組織によって共有され、共有の関心事（例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項）を有する特定のコミュニティをサポートする。クラウド・インフラは、その組織または第三者によって管理されてもよく、構内または構外に存在し得る。
パブリック・クラウド：クラウド・インフラは、一般大衆または大きな業界団体に利用可能とされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：クラウド・インフラは、一意なエンティティのままであるが、データおよびアプリケーション・ポータビリティを可能にする標準化技術または固有技術（例えば、クラウド間のロード・バランシングのためのクラウド・バースティング）によって結合された、２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）の合成物である。
【００４６】
クラウド・コンピューティング環境は、無国籍、低結合、モジュール性、および意味相互運用性を中心としたサービス指向型である。クラウド・コンピューティングの中心にあるのは、相互接続されたノードのネットワークを含むインフラである。
【００４７】
ここで図７を参照すると、例示的なクラウド・コンピューティング環境５０が示されている。図示するように、クラウド・コンピューティング環境５０は、クラウド消費者によって使用されるローカル・コンピューティング・デバイス、例えば、携帯情報端末（ＰＤＡ）もしくは携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車コンピュータ・システム５４Ｎ、あるいはその組み合わせが通信し得る、１つまたは複数のクラウド・コンピューティング・ノード１０を含む。ノード１０は、互いに通信し得る。それらは、上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはその組み合わせなどの、１つまたは複数のネットワーク内で物理的または仮想的にグループ化されてもよい（図示せず）。これによって、クラウド・コンピューティング環境５０が、インフラ、プラットフォーム、またはソフトウェア、あるいはその組み合わせを、クラウド消費者がローカル・コンピューティング・デバイス上でリソースを維持する必要がないサービスとして提案することが可能となる。図７に示されるコンピューティング・デバイス５４Ａ、５４Ｂ、５４Ｃ、および５４Ｎの種類は、単なる例示であるように意図され、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続あるいはその組み合わせを経て（例えば、ウェブ・ブラウザを用いて）、任意の種類のコンピュータ化デバイスと通信し得ると理解される。
【００４８】
ここで図８を参照すると、クラウド・コンピューティング環境５０（図７を参照）によって提供される機能抽象レイヤのセットが示されている。図８に示されるコンポーネント、レイヤ、および機能は、単なる例示であるように意図され、発明の実施形態はそれらに限定されないと、予め理解されるべきである。図示するように、以下のレイヤおよび対応する機能が、提供される。
【００４９】
ハードウェアおよびソフトウェア・レイヤ６０は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム６１、ＲＩＳＣ（Reduced Instruction Set Computer）アーキテクチャ・ベース・サーバ６２、サーバ６３、ブレード・サーバ６４、ストレージ・デバイス６５、ならびにネットワークおよびネットワーキング・コンポーネント６６を含む。いくつかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア６７およびデータベース・ソフトウェア６８を含む。
【００５０】
仮想レイヤ７０は、仮想エンティティの以下の例、仮想サーバ７１、仮想ストレージ７２、仮想プライベート・ネットワークを含む仮想ネットワーク７３、仮想アプリケーションおよびオペレーティング・システム７４、ならびに仮想クライアント７５が提供され得る、抽象レイヤを提供する。
【００５１】
１つの例では、管理レイヤ８０は、後述する機能を提供し得る。リソース供給８１は、クラウド・コンピューティング環境内でタスクを実行するために利用される、コンピューティング・リソースおよび他のリソースの動的な調達を提供する。計測および価格設定８２は、リソースが、クラウド・コンピューティング環境内で利用されるときのコスト追跡、およびこれらのリソースの消費に対する課金または請求を提供する。１つの例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、データおよび他のリソースについての保護だけでなく、クラウド消費者およびタスクについての本人確認を提供する。ユーザ・ポータル８３は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理８４は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソース割り当ておよび管理を提供する。サービス水準合意（ＳＬＡ）計画および遂行８５は、将来の要件がＳＬＡに従って予期されるクラウド・コンピューティング・リソースの事前配置および調達を提供する。
【００５２】
ワークロード・レイヤ８９は、クラウド・コンピューティング環境が利用され得る機能性の例を提供する。このレイヤから提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション９１、ソフトウェア開発およびライフサイクル管理９２、仮想クラスルーム教育配信９３、データ解析処理９４、トランザクション処理９５、ならびに共有メモリ・ファイル転送プロセスの改善９６を含む。
【００５３】
本発明の実施形態が、本明細書において例示の目的で説明されてきたが、多くの修正および変更が、当業者には明らかとなるであろう。したがって、添付の特許請求の範囲は、本発明の範囲内に入るものとしてそのような修正および変更の全てを包含するように意図される。
【符号の説明】
【００５４】
１００  システム
１０４  ＩＰネットワーク
１０７，１０８  ホスト・ハードウェア・ノード 
１０７ａ，１０８ａ  ソフトウェア ・エージェント
１１０  ストレージ・ネットワーク
１１５  ネットワーク接続ストレージ（ＮＡＳ）デバイス
１１８  ストレージ・デバイス／システム
１１８ａ  共有ブロック・ストレージ
１１８ｂ，１１８ｃ  ブロック・ストレージ
１２２ａ．．．１２２ｎ  ネットワーク・リンク
【図１】
2020526981.tif 000003
【図２】
2020526981.tif 000004
【図３】
2020526981.tif 000005
【図４】
2020526981.tif 000006
【図５】
2020526981.tif 000007
【図６】
2020526981.tif 000008
【図７】
2020526981.tif 000009
【図８】
2020526981.tif 000010
【手続補正書】
【提出日】令和2年5月13日(2020.5.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
共有メモリ・ファイル転送のための方法であって、
送信機ホスト・ハードウェア・ノードのプロセッサによって、前記送信機ホスト・ハードウェア・ノードと受信機ホスト・ハードウェア・ノードとの間でストレージ・デバイスを介してデータ・ファイルを転送するための複数のネットワーク・リンクのうちの利用可能な数を判断することと、
前記プロセッサによって、前記複数のネットワーク・リンクのそれぞれについて関連優先度レベルを判断することと、
前記プロセッサによって、前記受信機ホスト・ハードウェア・ノードに前記データ・ファイルを転送するための要求を受信することと、
前記プロセッサによって、前記要求に応答して、前記データ・ファイルを複数のセグメントに分割することと、
前記プロセッサによって、送信シーケンスを前記複数のセグメントに割り当てることと、
前記プロセッサによって、前記受信機ホスト・ハードウェア・ノードに前記データ・ファイルを説明するサマリを送信することと、
前記プロセッサによって、前記複数のネットワーク・リンクのそれぞれについて転送比率を判断することと、
前記プロセッサによって、それぞれの前記転送比率に基づいて、前記受信機ホスト・ハードウェア・ノードに前記複数のネットワーク・リンクを介して前記複数のセグメントを送信することと、
前記プロセッサによって、前記受信機ホスト・ハードウェア・ノードから、それぞれの前記セグメントの受信成功を示す、前記複数のデータ・セグメントの各セグメントについて確認応答通知を受信することと、
前記プロセッサによって、セグメント・プール・ストレージ・デバイスからそれぞれの前記セグメントのコピーを削除することと、
前記プロセッサによって、前記複数のネットワーク・リンクおよび前記ストレージ・デバイスを介して前記受信機ホスト・ハードウェア・ノードへ、転送されているそれぞれの前記セグメントについての転送レートを記録することと、
を含む、方法。
【請求項２】
前記複数のネットワーク・リンクを介して前記複数のセグメントを前記送信することが、前記複数のネットワーク・リンクのそれぞれについての占有帯域幅、転送レート、およびネットワーク・レイテンシにさらに基づく、請求項１に記載の方法。
【請求項３】
前記プロセッサによって、前記記録する間に、判断されたそれぞれの前記転送レートを記憶することをさらに含む、請求項１に記載の方法。
【請求項４】
前記複数のネットワーク・リンクが、ＴＣＰ／ＩＰネットワーク・リンクを含む、請求項１に記載の方法。
【請求項５】
前記プロセッサによって、前記セグメント・プール・ストレージ・デバイスが、それぞれの前記複数のセグメントのコピーをもはや含んでいないことを判断することをさらに含む、請求項１に記載の方法。
【請求項６】
コンピュータ可読メモリ・ユニットに連結されたプロセッサを含む送信機ホスト・ハードウェア・ノードであって、前記メモリ・ユニットが、前記コンピュータ・プロセッサによる実行時に共有メモリ・ファイル転送の使用および改善方法を実装する命令を含み、前記方法が、
前記プロセッサによって、前記送信機ホスト・ハードウェア・ノードと受信機ホスト・ハードウェア・ノードとの間でストレージ・デバイスを介してデータ・ファイルを転送するための複数のネットワーク・リンクのうちの利用可能な数を判断することと、
前記プロセッサによって、前記複数のネットワーク・リンクのそれぞれについて関連優先度レベルを判断することと、
前記プロセッサによって、前記受信機ホスト・ハードウェア・ノードに前記データ・ファイルを転送するための要求を受信することと、
前記プロセッサによって、前記要求に応答して、前記データ・ファイルを複数のセグメントに分割することと、
前記プロセッサによって、送信シーケンスを前記複数のセグメントに割り当てることと、
前記プロセッサによって、前記受信機ホスト・ハードウェア・ノードに前記データ・ファイルを説明するサマリを送信することと、
前記プロセッサによって、前記複数のネットワーク・リンクのそれぞれについて転送比率を判断することと、
前記プロセッサによって、それぞれの前記転送比率に基づいて、前記受信機ホスト・ハードウェア・ノードに前記複数のネットワーク・リンクを介して前記複数のセグメントを送信することと、
前記プロセッサによって、前記受信機ホスト・ハードウェア・ノードから、それぞれの前記セグメントの受信成功を示す、前記複数のデータ・セグメントの各セグメントについて確認応答通知を受信することと、
前記プロセッサによって、セグメント・プール・ストレージ・デバイスからそれぞれの前記セグメントのコピーを削除することと、
前記プロセッサによって、前記複数のネットワーク・リンクおよび前記ストレージ・デバイスを介して前記受信機ホスト・ハードウェア・ノードへ、転送されているそれぞれの前記セグメントについての転送レートを記録することと、を含む、送信機ホスト・ハードウェア・ノード。
【請求項７】
共有メモリ・ファイル転送セットアップ方法であって、
ネットワーク・コントローラ・ハードウェア・デバイスのプロセッサによって、複数のハードウェア・ノード間に接続された複数のネットワーク・リンクを構成することであって、前記複数のハードウェア・ノードの各ハードウェア・ノードが、コマンド・セクションおよびデータ・ストレージ・セクションを含む、前記構成することと、
前記プロセッサによって、前記複数のハードウェア・ノードの数に基づいて、ハードウェア・ディスク・ドライブについてのストレージ容量を判断することと、
前記プロセッサによって、前記ストレージ容量に基づいて、少なくとも１つのストレージ・リンクを介して前記ハードウェア・ディスク・ドライブを前記複数のハードウェア・ノードに接続することと、
前記プロセッサによって、前記複数のハードウェア・ノードのそれぞれの中にソフトウェア・エージェントをインストールすることと、
前記プロセッサによって、前記複数のネットワーク・リンクおよび前記少なくとも１つのストレージ・リンクについてのプロパティを構成することと、
前記プロセッサによって、それぞれの前記ソフトウェア・エージェントを有効にすることと、
それぞれの前記ソフトウェア・エージェントを実行する前記プロセッサによって、前記複数のネットワーク・リンクおよび前記少なくとも１つのストレージ・リンクのそれぞれについて接続性状態、帯域幅、および負荷状況をテストすることと、
前記プロセッサによって、それぞれの前記コマンド・セクションを介して、それぞれの前記ハードウェア・ノードを前記ハードウェア・ディスク・ドライブに登録することと、
前記プロセッサによって、前記複数のネットワーク・リンクおよび前記少なくとも１つのストレージ・リンクを介して前記ハードウェア・ディスク・ドライブと前記複数のハードウェア・ノードとの間の通信を有効にすることと、
を含む、方法。
【請求項８】
前記ハードウェア・ディスク・ドライブについての前記ストレージ容量を前記判断することが、前記複数のネットワーク・リンクのそれぞれについての帯域幅にさらに基づく、請求項７に記載の方法。
【請求項９】
前記複数のネットワーク・リンクおよび前記少なくとも１つのストレージ・リンクについての前記プロパティが、前記複数のネットワーク・リンクおよび前記少なくとも１つのストレージ・リンクについての優先度レベル、ならびに前記テストに関連付けられた指定された時間フレームを含む、請求項７に記載の方法。
【請求項１０】
前記複数のネットワーク・リンクが、ＴＣＰ／ＩＰネットワーク・リンクを含む、請求項７に記載の方法。
【請求項１１】
共有メモリ・ファイル転送方法であって、
受信機ホスト・ハードウェア・ノードのプロセッサによって、追加ハードウェア・ノードからデータ・ファイルを転送するための要求を受信することと、
前記プロセッサによって、前記データ・ファイルを説明するサマリを受信することと、
前記プロセッサによって、複数のネットワーク・リンク、ストレージ・リンク、およびストレージ・デバイスを介して前記追加ハードウェア・ノードから、前記データ・ファイルの複数のデータ・セグメントを受信することであって、前記複数のネットワーク・リンク、前記ストレージ・リンク、および前記ストレージ・デバイスが、前記受信機ホスト・ハードウェア・ノードと前記追加ハードウェア・ノードとの間に接続される、前記受信することと、
前記プロセッサによって、それぞれの前記セグメントの受信成功を示す、前記複数のデータ・セグメントの各セグメントについて確認応答通知を、前記追加ハードウェア・ノードへ送信することと、
前記プロセッサによって、前記複数のネットワーク・リンク、前記ストレージ・リンク、および前記ストレージ・デバイスを介して前記追加ハードウェア・ノードから前記受信機ホスト・ハードウェア・ノードへ、転送されているそれぞれの前記セグメントについての転送レートを記録することと、
前記プロセッサによって、前記データ・ファイルの全てのセグメントが、前記受信機ホスト・ハードウェア・ノードによって受信されたと判断することと、
前記プロセッサによって、前記複数のデータ・セグメントから前記データ・ファイルを構築することと、
を含む、方法。
【請求項１２】
前記要求が、前記複数のネットワーク・リンクのそれぞれの可用性に基づいて判断される、請求項１１に記載の方法。
【請求項１３】
前記要求が、前記複数のネットワーク・リンクのそれぞれについての関連優先度レベルに基づいてさらに判断される、請求項１２に記載の方法。
【請求項１４】
前記プロセッサによって、前記記録する間に、判断されたそれぞれの前記転送レートを記憶することをさらに含む、請求項１１に記載の方法。
【請求項１５】
前記複数のネットワーク・リンクが、ＴＣＰ／ＩＰネットワーク・リンクを含む、請求項１１に記載の方法。
【請求項１６】
コンピュータ可読メモリ・ユニットに連結されたプロセッサを含む受信機ホスト・ハードウェア・ノードであって、前記メモリ・ユニットが、前記プロセッサによる実行時に共有メモリ・ファイル転送の使用および改善方法を実装する命令を含み、前記方法が、
前記プロセッサによって、追加ハードウェア・ノードからデータ・ファイルを転送するための要求を受信することと、
前記プロセッサによって、前記データ・ファイルを説明するサマリを受信することと、
前記プロセッサによって、複数のネットワーク・リンク、ストレージ・リンク、およびストレージ・デバイスを介して前記追加ハードウェア・ノードから、前記データ・ファイルの複数のデータ・セグメントを受信することであって、前記複数のネットワーク・リンク、前記ストレージ・リンク、および前記ストレージ・デバイスが、前記受信機ホスト・ハードウェア・ノードと前記追加ハードウェア・ノードとの間に接続される、前記受信することと、
前記プロセッサによって、それぞれの前記セグメントの受信成功を示す、前記複数のデータ・セグメントの各セグメントについて確認応答通知を、前記追加ハードウェア・ノードへ送信することと、
前記プロセッサによって、前記複数のネットワーク・リンク、前記ストレージ・リンク、および前記ストレージ・デバイスを介して前記追加ハードウェア・ノードから前記受信機ホスト・ハードウェア・ノードへ、転送されているそれぞれの前記セグメントについての転送レートを記録することと、
前記プロセッサによって、前記データ・ファイルの全てのセグメントが、前記受信機ホスト・ハードウェア・ノードによって受信されたと判断することと、
前記プロセッサによって、前記複数のデータ・セグメントから前記データ・ファイルを構築することと、を含む、受信機ホスト・ハードウェア・ノード。
【国際調査報告】
2020526981.tif 000011
2020526981.tif 000012