(57)【要約】【課題】  多重接続メッセージエンドポイントのための技法を提供すること。【解決手段】  様々な実施形態は、一般に、分散コンピューティングシステムのプロセス間の通信などのための、多重接続メッセージングエンドポイントのための技法を対象とする。いくつかの実施形態は、特に、コネクション型フレームワークで実施される分散コンピューティング（ＤＣ）スレッド、またはそれを含むＤＣプロセス間のコネクションレス型ファブリックを介した通信を対象とする。いくつかの実施形態では、この通信の確立はワイヤアップと称されることがある。多くの実施形態では、分散コンピューティングデバイス上の様々なＤＣプロセスは、それぞれのコネクションマネージャ（ＣＭ）エンドポイントを利用して、共通のメッセージングエンドポイントを介して通信を確立することができる。【選択図】図１
2020053014.tif 000002
【特許請求の範囲】
【請求項１】
装置であって
プロセッサと、
命令を含むメモリと
を備え、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
ローカルコネクションマネージャエンドポイントアドレス（ローカルＣＭエンドポイントアドレス）に受信バッファをポストすることであって、前記受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、前記コネクションイニシエータフォーマットは、リモートＣＭアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストすることと、
前記受信バッファ内で前記コネクションイニシエータフォーマットの第１の通信を識別することであって、前記第１の通信は、前記リモートＣＭアドレスブロック内のリモートＣＭエンドポイントアドレスと、前記リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別することと、
前記リモートメッセージングエンドポイントアドレスとの通信を可能にするために、前記リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新することと、
前記リモートＣＭエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第２の通信を生成することであって、前記コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、前記第２の通信は、前記ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む、生成することと、
前記第１の通信、前記第２の通信、および前記アドレスマッピングに基づいて、前記リモートメッセージングエンドポイントアドレスおよび前記ローカルメッセージングエンドポイントアドレスを介して、リモート分散コンピューティングプロセススレッド（リモートＤＣプロセススレッド）とローカルＤＣプロセススレッドとの間の通信を確立することと
を行わせる、装置。
【請求項２】
前記リモートＤＣプロセススレッドおよび前記ローカルＤＣプロセススレッドはコネクション型フレームワーク内で動作し、前記第１の通信および前記第２の通信はコネクションレス型メッシュをトラバースする、請求項１に記載の装置。
【請求項３】
前記メモリは、前記プロセッサによって実行されると、前記プロセッサに、前記ローカルＤＣプロセススレッドの実行に応答して前記受信バッファをポストさせる命令を含む、請求項１または２に記載の装置。
【請求項４】
前記メモリは、前記プロセッサによって実行されると、前記プロセッサに、前記ローカルＤＣプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて前記受信バッファ内の通信を識別させる命令を含む、請求項１〜３のいずれか一項に記載の装置。
【請求項５】
前記第１の通信は、ネームサーバアドレスに基づいて前記受信バッファに送信される、請求項１〜４のいずれか一項に記載の装置。
【請求項６】
前記第２の通信は、前記リモートＤＣプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される、請求項１〜５のいずれか一項に記載の装置。
【請求項７】
前記メモリは、前記プロセッサによって実行されると、前記プロセッサに、前記受信バッファ内での前記第１の通信の識別に応答して、前記コネクションイニシエータフォーマットにおける別の通信のために、第２の受信バッファをポストさせる命令を含む、請求項１〜６のいずれか一項に記載の装置。
【請求項８】
前記メモリは、前記プロセッサによって実行されると、前記プロセッサに、別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含む前記コネクションイニシエータフォーマットにおける第３の通信に基づいて、第２のリモートＤＣプロセススレッドと前記ローカルＤＣプロセススレッドとの間の通信を確立させる命令を含む、請求項１〜７のいずれか一項に記載の装置。
【請求項９】
前記第１の通信および前記第３の通信は、時分割多重化を介してインターリーブされる、請求項８に記載の装置。
【請求項１０】
前記メモリは、前記プロセッサによって実行されると、前記プロセッサに、第２のローカルＣＭエンドポイントアドレスにおいて受信される第３の通信に基づいて、第２のリモートＤＣプロセススレッドと前記ローカルＤＣプロセススレッドとの間の通信を確立させる命令を含み、前記第２のリモートＤＣプロセススレッドおよび前記ローカルＤＣプロセススレッドは、第２のリモートメッセージングエンドポイントアドレスおよび前記ローカルメッセージングエンドポイントアドレスを介して通信する、請求項１〜９のいずれか一項に記載の装置。
【請求項１１】
前記第１の通信および前記第３の通信は、時分割多重化を介してインターリーブされる、請求項１０に記載の装置。
【請求項１２】
前記受信バッファおよび前記ローカルＣＭエンドポイントアドレスは完了キューに位置する、請求項１〜１１のいずれか一項に記載の装置。
【請求項１３】
前記ローカルＤＣプロセススレッドはアプリケーション層上で実行し、前記ローカルＣＭエンドポイントアドレスおよび前記ローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる、請求項１〜１２のいずれか一項に記載の装置。
【請求項１４】
プログラムであって、プロセッサ回路に、
ローカルコネクションマネージャエンドポイントアドレス（ローカルＣＭエンドポイントアドレス）に受信バッファをポストする手順であって、前記受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、前記コネクションイニシエータフォーマットは、リモートＣＭアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストする手順と、
前記受信バッファ内で前記コネクションイニシエータフォーマットの第１の通信を識別する手順であって、前記第１の通信は、前記リモートＣＭアドレスブロック内のリモートＣＭエンドポイントアドレスと、前記リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別する手順と、
前記リモートメッセージングエンドポイントアドレスとの通信を可能にするために、前記リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新する手順と、
前記リモートＣＭエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第２の通信を生成する手順であって、前記コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、前記第２の通信は、前記ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む、生成する手順と、
前記第１の通信、前記第２の通信、および前記アドレスマッピングに基づいて、前記リモートメッセージングエンドポイントアドレスおよび前記ローカルメッセージングエンドポイントアドレスを介して、リモート分散コンピューティングプロセススレッド（リモートＤＣプロセススレッド）とローカルＤＣプロセススレッドとの間の通信を確立する手順と
を実行させる、プログラム。
【請求項１５】
前記プロセッサ回路に、前記ローカルＤＣプロセススレッドの実行に応答して前記受信バッファをポストする手順を実行させる、請求項１４に記載のプログラム。
【請求項１６】
前記プロセッサ回路に、前記ローカルＤＣプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて前記受信バッファ内の通信を識別する手順を実行させる、請求項１４または１５に記載のプログラム。
【請求項１７】
前記プロセッサ回路に、前記受信バッファ内での前記第１の通信の識別に応答して、前記コネクションイニシエータフォーマットにおける別の通信のために、第２の受信バッファをポストする手順を実行させる、請求項１４〜１６のいずれか一項に記載のプログラム。
【請求項１８】
前記プロセッサ回路に、別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含む前記コネクションイニシエータフォーマットにおける第３の通信に基づいて、第２のリモートＤＣプロセススレッドと前記ローカルＤＣプロセススレッドとの間の通信を確立する手順を実行させる、請求項１４〜１７のいずれか一項に記載のプログラム。
【請求項１９】
前記プロセッサ回路に、第２のローカルＣＭエンドポイントアドレスにおいて受信される第３の通信に基づいて、第２のリモートＤＣプロセススレッドと前記ローカルＤＣプロセススレッドとの間の通信を確立する手順を実行させ、前記第２のリモートＤＣプロセススレッドおよび前記ローカルＤＣプロセススレッドは、第２のリモートメッセージングエンドポイントアドレスおよび前記ローカルメッセージングエンドポイントアドレスを介して通信する、請求項１４〜１８のいずれか一項に記載のプログラム。
【請求項２０】
請求項１４から１９のいずれか一項に記載のプログラムを記憶するコンピュータ可読記憶媒体。
【請求項２１】
装置であって、
ローカルコネクションマネージャエンドポイントアドレス（ローカルＣＭエンドポイントアドレス）に受信バッファをポストするための手段であって、前記受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、前記コネクションイニシエータフォーマットは、リモートＣＭアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストするための手段と、
前記受信バッファ内で前記コネクションイニシエータフォーマットの第１の通信を識別するための手段であって、前記第１の通信は、前記リモートＣＭアドレスブロック内のリモートＣＭエンドポイントアドレスと、前記リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別するための手段と、
前記リモートメッセージングエンドポイントアドレスとの通信を可能にするために、前記リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新するための手段と、
前記リモートＣＭエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第２の通信を生成するための手段であって、前記コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、前記第２の通信は、前記ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む、生成するための手段と、
前記第１の通信、前記第２の通信、および前記アドレスマッピングに基づいて、前記リモートメッセージングエンドポイントアドレスおよび前記ローカルメッセージングエンドポイントアドレスを介して、リモート分散コンピューティングプロセススレッド（リモートＤＣプロセススレッド）とローカルＤＣプロセススレッドとの間の通信を確立するための手段と
を備える、装置。
【請求項２２】
前記ローカルＤＣプロセススレッドの実行に応答して前記受信バッファをポストするための手段を備える、請求項２１に記載の装置。
【請求項２３】
前記ローカルＤＣプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて前記受信バッファ内の通信を識別するための手段を備える、請求項２１または２２に記載の装置。
【請求項２４】
前記受信バッファ内での前記第１の通信の識別に応答して、前記コネクションイニシエータフォーマットにおける別の通信のために、第２の受信バッファをポストするための手段を備える、請求項２１〜２３のいずれか一項に記載の装置。
【請求項２５】
別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含む前記コネクションイニシエータフォーマットにおける第３の通信に基づいて、第２のリモートＤＣプロセススレッドと前記ローカルＤＣプロセススレッドとの間の通信を確立するための手段を備える、請求項２１〜２４のいずれか一項に記載の装置。
【請求項２６】
第２のローカルＣＭエンドポイントアドレスにおいて受信される第３の通信に基づいて、第２のリモートＤＣプロセススレッドと前記ローカルＤＣプロセススレッドとの間の通信を確立するための手段を備え、前記第２のリモートＤＣプロセススレッドおよび前記ローカルＤＣプロセススレッドは、第２のリモートメッセージングエンドポイントアドレスおよび前記ローカルメッセージングエンドポイントアドレスを介して通信する、請求項２１〜２５のいずれか一項に記載の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
一般に、分散コンピューティングは、分散システムを利用するコンピュータ科学の分野を参照し得る。分散システムは、構成要素が１つまたは複数の異なるネットワーク接続デバイス上に配置されているシステムを含み得る。典型的には、分散システムの構成要素は、目的を達成するために、互いにメッセージを渡すことなどによって労力を調整する。分散システム内で動作するコンピュータプログラムは通常、分散プログラムと称される。分散プログラムは、目的を達成するために分散システムの１つまたは複数の構成要素によって実行される１つまたは複数のスレッドで構成された集合プロセスである。
【図面の簡単な説明】
【０００２】
【図１】本明細書に記載の１つまたは複数の実施形態による分散コンピューティングシステムの例示的な態様を示す図である。
【０００３】
【図２】本明細書に記載の１つまたは複数の実施形態による分散コンピューティングシステム内のデバイス間の通信の例示的な態様を示す図である。
【０００４】
【図３】本明細書に記載の１つまたは複数の実施形態による分散コンピューティングシステムのプロセス間の通信の確立の例示的な態様を示す図である。
【０００５】
【図４】本明細書に記載の１つまたは複数の実施形態による分散コンピューティングシステム内のデバイスの例示的な態様を示す図である。
【０００６】
【図５】本明細書に記載の１つまたは複数の実施形態による分散コンピューティング環境の例示的な態様を示す図である。
【０００７】
【図６】本明細書に記載の１つまたは複数の実施形態による第１の論理フローの実施形態を示す図である。
【０００８】
【図７】本明細書に記載の１つまたは複数の実施形態による記憶媒体の実施形態を示す図である。
【０００９】
【図８】本明細書に記載の１つまたは複数の実施形態によるコンピューティングアーキテクチャの実施形態を示す図である。
【００１０】
【図９】本明細書に記載の１つまたは複数の実施形態による通信アーキテクチャの実施形態を示す図である。
【発明を実施するための形態】
【００１１】
様々な実施形態は、一般に、分散コンピューティングシステムのプロセス間の通信などのための、多重接続メッセージングエンドポイントのための技法を対象とする。いくつかの実施形態は、特に、コネクション型フレームワークで実施される分散コンピューティング（ＤＣ）スレッド、またはそれを含むＤＣプロセス間のコネクションレス型ファブリックを介した通信を対象とする。いくつかの実施形態では、この通信の確立はワイヤアップと称されることがある。多くの実施形態では、分散コンピューティングデバイス上の様々なＤＣプロセスは、それぞれのコネクションマネージャ（ＣＭ）エンドポイントを利用して、それぞれのメッセージングエンドポイントを介して通信を確立することができる。これらおよび他の実施形態が説明され特許請求される。
【００１２】
分散コンピューティングシステムが直面するいくつかの課題の１つとして、過度のコンピューティングオーバーヘッドおよび不必要なネットワーク競合なしには、異なるＤＣプロセス、またはその中のＤＣスレッド間で通信を確立することができないことが挙げられる。そのような課題は、コネクション型フレームワーク内で動作するＤＣプロセスおよびＤＣスレッド、およびコネクションレス型ファブリックをトラバースしなければならないそれらの間の通信から生じる可能性がある。時として、これらの課題によって、コネクション管理のためにサードパーティソリューションからの支援に大きく依拠することになり得る。例えば、オペレーティングシステム（ＯＳ）のサポート、ならびに、進行および管理のための追加のスレッドリソースが必要になる場合がある。１つまたは複数の実施形態では、通信は、プロセス情報についてプロセスマネージャを必要とするアプリケーションプログラミングインターフェース（ＡＰＩ）規格を利用し得る。これらの要件によって、サードパーティライブラリに依存することになる可能性があり、典型的には、非効率な伝送制御プロトコル（ＴＣＰ）／インターネットプロトコル（ＩＰ）の一括交換および／または同期を伴う。
【００１３】
さらに、コネクション管理は、高度な機能セットを公開することができない特殊なプロセス管理システムおよび／またはインターフェースに依拠する場合がある。例えば、専用の進行スレッドは、コネクション管理およびメッセージングを含む、ファイル記述子のセットに対してＯＳからの更新を監視し得る。さらに複雑さを増して、これらの通信技法は、ブロッキングをもたらすメッセージング方式を実施する可能性がある。例えば、各メッセージングコネクションは、イーサネット（登録商標）を介したコネクション管理がどのように取り扱われるかと同じまたは類似するように、別個の専用ソケットに依拠し得る。これらおよび他の要因により、機能が制限されて、様々なＤＣスレッド間の通信が非効率的になる可能性がある。そのような制限は、分散コンピューティングシステムの性能を低下させる可能性があり、性能が不十分で適用性が減少した、柔軟性のないシステムに寄与する。
【００１４】
本明細書で説明される様々な実施形態は、コネクション型フレームワークがコネクションレス型トランスポートを介してワイヤアップすることを効率的かつ効果的に可能にするコネクション管理方式を含む。例えば、コネクション管理方式は、高速で信頼性のある、コネクションレス型ファブリック上の多重接続メッセージングエンドポイントのコネクション管理ニーズに対処することができる。多くの実施形態では、通信管理スレッドの必要性を排除するために完了キューと組み合わせてユーザスレッドを利用しながら、各ＤＣプロセスのコネクション管理のための専用リソース（例えば、ＣＭエンドポイント）を作成することができる。１つまたは複数の実施形態では、プロセスに対するすべてのメッセージングコネクションは、各デバイス上の共通のメッセージングエンドポイントを介して実現することができ、確立される接続ごとに新しいメッセージングエンドポイントを作成する必要性を防ぐ。いくつかの実施形態では、独立したファブリックエンドポイントを確立することができ、ノンブロッキング通信方式を使用して、コネクション管理を同じプロセス上の他の動作と効果的にインターリーブすることができる。様々な実施形態において、最適化された通信方式および検出能力を、自己接続の場合（例えば、同じプロセス内の２つのスレッド間の接続）に使用することができる。
【００１５】
本明細書に記載のいくつかの実施形態は、以下のうち１つまたは複数を含み、実現し、かつ／または実装することができる。いくつかの実施形態は、サードパーティ依存性がない人工知能フレームワークにおける高性能コネクションレス型ファブリックの使用を対象としたコネクション管理方式を含み得る。多くの実施形態は、コネクション型フレームワークがコネクションレス型トランスポートをワイヤアップすることを可能にし得る。１つまたは複数の実施形態は、コネクション管理専用のプロセスごとにホストファブリックインターフェース（ＨＦＩ）コマンドキュー通信コンテキストを作成することができる。そのような実施形態は、メッセージングのためにただ１つの追加のコンテキストを必要とし得る。様々な実施形態において、これら２つのコンテキストはすべての通信に再利用することができる。いくつかの実施形態では、コネクション管理交換プロトコルは、メッセージングアドレス交換においてコネクション管理コンテキストアドレスをピギーバックすることができる。様々な実施形態は、コネクション要求について完了キューを断続的にポーリングするために非同期ノンブロッキング機能を利用することができる。いくつかの実施形態では、これは、進行エンジンを刺激すること、接続作成時に許容可能な定期的進行を維持すること、およびメイン計算との無視できる程度の干渉を導入することのうち１つまたは複数を容易にし得る。これらおよび他の方法で、本明細書に記載の様々な実施形態は、正確で最適化された動的かつスケーラブルな様式で、分散コンピューティング構成要素間の効率的かつ信頼性のある通信を可能にすることができ、これによって、能力の増大および適用可能性の増大を含む、複数の技術的効果および利点がもたらされる。
【００１６】
一実施形態では、例えば、装置は、プロセッサと、プロセッサによって実行されたときにプロセッサに以下のうち１つまたは複数を実施させる命令を含むメモリとを含むことができる。いくつかの実施形態では、プロセッサに、ローカルコネクションマネージャＣＭエンドポイントアドレスに受信バッファをポストさせることができる。いくつかのそのような実施形態では、受信バッファは、リモートＣＭアドレスブロックおよびリモートメッセージングアドレスブロックを含むコネクションイニシエータフォーマットにおける第１の通信のためのものであり得る。様々な実施形態において、プロセッサに、受信バッファ内でコネクションイニシエータフォーマットの第１の通信を識別させることができる。このような様々な実施形態では、第１の通信は、リモートＣＭアドレスブロック内のリモートＣＭエンドポイントアドレスと、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含むことができる。いくつかの実施形態では、リモートメッセージエンドポイントアドレスとの通信を可能にするために、プロセッサに、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新させることができる。１つまたは複数の実施形態では、プロセッサに、リモートＣＭエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第２の通信を生成させることができる。１つまたは複数のそのような実施形態では、コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含むことができ、第２の通信は、ローカルメッセージングエンドポイントアドレスブロック内のローカルメッセージングエンドポイントアドレスを含むことができる。多くの実施形態において、プロセッサに、第１の通信および第２の通信に基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立させることができる。
【００１７】
別の実施形態では、例えば、装置は、プロセッサと、プロセッサによって実行されたときにプロセッサに以下のうち１つまたは複数を実施させる命令を含むメモリとを含むことができる。様々な実施形態において、プロセッサに、ローカルＣＭエンドポイントアドレスからリモートＣＭエンドポイントアドレスに送信するための、コネクションイニシエータフォーマットにおける第１の通信を生成させることができる。そのような様々な実施形態において、コネクションイニシエータフォーマットはローカルＣＭアドレスブロックおよびローカルメッセージングアドレスブロックを含み得る。いくつかの実施形態では、プロセッサに、第１の通信に基づいてローカルＣＭエンドポイントアドレスに受信バッファをポストさせることができる。多くの実施形態では、プロセッサに、コネクションレスポンダフォーマットの第２の通信を識別させることができる。多くのそのような実施形態では、コネクションレスポンダフォーマットは、リモートメッセージングアドレスブロックを含むことができ、第２の通信は、リモートメッセージングエンドポイントアドレスブロック内のリモートメッセージングエンドポイントアドレスを含むことができる。いくつかの実施形態では、リモートメッセージエンドポイントアドレスとの通信を可能にするために、プロセッサに、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新させることができる。１つまたは複数の実施形態において、プロセッサに、第１の通信、第２の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立させることができる。
【００１８】
本明細書で使用される表記法および命名法を全般的に参照すると、以下の詳細な説明の１つまたは複数の部分は、コンピュータまたはコンピュータネットワーク上で実行されるプログラム手順に関して提示され得る。これらの手順の記述および表現は、それらの研究の本質を他の当業者に最も効果的に伝えるために当業者によって使用されている。手順はここでは、および一般的には、所望の結果をもたらす自己矛盾のない一連の操作であると考えられる。これらの操作は、物理量の物理的操作を必要とするものである。必ずというわけではないが通常、これらの量は、記憶、転送、結合、比較、およびその他の操作が可能な電気信号、磁気信号、または光信号の形をとる。主に一般的な用法上の理由から、これらの信号をビット、値、要素、記号、文字、用語、数などとして参照することが好都合であることがあることが証明されている。しかしながら、これらの用語および類似の用語はすべて適切な物理量に関連付けられるべきであり、それらの量に適用される単なる便利なラベルであることに留意されたい。
【００１９】
さらに、これらの操作は、追加または比較などの用語において参照されることが多く、これらは一般に人間のオペレータによって行われる精神的操作に関連する。しかしながら、１つまたは複数の実施形態の一部を形成する本明細書に記載の操作のいずれにおいても、そのような人間のオペレータの能力は必要ではなく、ほとんどの場合に望ましいものでもない。むしろ、これらの操作は機械操作である。様々な実施形態の動作を実行するための有用な機械は、本明細書の教示に従って書き込まれる、内部に記憶されたコンピュータプログラムによって選択的に起動または構成されるものとしての汎用デジタルコンピュータを含み、かつ／または、必要な目的のために特別に構築される装置を含む。様々な実施形態はまた、これらの動作を実行するための装置またはシステムに関する。これらの装置は、要求される目的のために特別に構築されてもよく、または汎用コンピュータを含んでもよい。これらの様々な機械に必要な構造は、与えられた説明から明らかであろう。
【００２０】
ここで図面を参照するが、全体を通して同様の要素を指すのに同様の参照符号が使用されている。以下の記述では、説明の目的で、その完全な理解を提供するために多数の具体的な詳細が述べられている。しかしながら、これらの具体的な詳細がなくても新規の実施形態を実践することができることは明らかであろう。他の事例では、その説明を容易にするために、よく知られている構造およびデバイスがブロック図の形で示されている。その意図は、特許請求の範囲内のすべての修正形態、等価形態、および代替形態を網羅することである。
【００２１】
図１は、本明細書に記載の１つまたは複数の実施形態による環境１００内の分散コンピューティングシステム１０１の例示的な態様を示す。分散コンピューティングシステム１０１は、本明細書に記載の１つまたは複数の他の分散コンピューティングシステムまたはその構成要素と同じまたは類似のものであってもよい。分散コンピューティングシステム１０１は、コネクションレス型ファブリック１１４を介して通信するローカルデバイス１０２およびリモートデバイス１５２を含み得る。いくつかの実施形態では、ローカルデバイス１０２は、コネクション型フレームワーク１０４内で動作するＤＣプロセス１０６を含み得、リモートデバイス１５２は、コネクション型フレームワーク１５４内で動作する別のＤＣプロセス１５６を含み得る。本明細書に記載の１つまたは複数の実施形態では、ＤＣプロセス１０６およびＤＣプロセス１５６は、コネクションレス型ファブリック１１４を介して通信することができる。多くの実施形態において、ＤＣプロセス１０６とＤＣプロセス１５６との間の通信は、ローカルデバイス１０２に位置するＣＭエンドポイント１０８およびメッセージングエンドポイント１１０、ならびに、リモートデバイス１５２に位置するＣＭエンドポイント１５８およびメッセージングエンドポイント１６０を用いて促進され得る。実施形態はこの文脈に限定されない。
【００２２】
いくつかの実施形態では、分散コンピューティングシステム１０１は、集中コンピューティング目的の１つまたは複数の態様を実行するためにローカルデバイス１０２およびリモートデバイス１５２を利用することができる。例えば、分散コンピューティングシステム１０１は、高性能コンピューティング（ＨＰＣ）、人工知能（ＡＩ）作業負荷、および機械学習（ＭＬ）作業負荷のうち１つまたは複数のために利用され得る。２つのデバイス１０２、１５２のみが分散コンピューティングシステム１０１に関して示されているが、任意の数のデバイスが集合的に分散コンピューティングシステム１０１を形成してもよいことが理解されるであろう。様々な実施形態において、「ローカル」（例えば、ローカルデバイス１０２）の使用および「リモート」（例えば、リモートデバイス１５２）の使用は、ネットワーク（例えば、コネクションレス型ファブリック２１４）を介して接続されたデバイスを区別するための説明の明確化のために使用され得る。いくつかの実施形態では、ローカルデバイス１０２およびリモートデバイス１５２は、複製の、類似の、または異なるデバイスであってもよい。例えば、ローカルデバイス１０２はサーバデバイスを含んでもよく、リモートデバイス１５２はクライアントデバイスを含んでもよく、またはその逆であってもよい。さらなる例では、ローカルデバイス１０２およびリモートデバイス１５２はコモディティコンピューティングプラットフォームであってもよく、または、ローカルデバイス１０２は第１のタスク（例えばＤＣプロセス１０６）に対して最適化されてもよく、一方、リモートデバイス１５２は第２のタスク（例えばＤＣプロセス１５６）に対して最適化される。
【００２３】
いくつかの実施形態では、ローカルデバイス１０２およびリモートデバイス１５２は、コネクションレス型ファブリック１１４を介して通信することができる。多くの実施形態では、コネクションレス型ファブリック１１４は、インターネットなど、各エンドポイントセット間に専用の通信経路がないネットワークを参照し得る。いくつかの実施形態では、コネクションレス型ファブリック１１４は、データが送信される前に回線が確立されることを要求しなくてもよい。１つまたは複数の実施形態では、コネクションレス型ファブリック１１４を介して送信される情報パケットは、コネクションレス型ファブリックを介して送信されるいかなる他の情報パケットとも無関係にルーティングすることができる。様々な実施形態において、コネクションレス型ファブリック１１４は、Ｉｎｔｅｌ（登録商標）Ｏｍｎｉ−Ｐａｔｈアーキテクチャなどの高性能通信アーキテクチャを含み、および／またはそれを利用することができる。一方、多くの実施形態では、コネクション型フレームワーク１０４、１５４は、通信構成要素間の専用経路に依存し得る。いくつかの実施形態では、コネクション型フレームワーク１０４、１５４は、ＨＰＣフレームワーク、ＡＩフレームワーク、およびＭＬフレームワーク（例えば、ＭＸＮｅｔ）のうち１つまたは複数など、分散コンピューティングに使用される任意のプログラミングフレームワークを含むことができる。いくつかの実施形態では、コネクション型フレームワーク１０４、１５４は、同じかまたは類似していてもよい。
【００２４】
本明細書で説明される様々な実施形態は、コネクション型フレームワーク１０４、１５４がコネクションレス型ファブリック１１４を介してワイヤアップすることを効率的かつ効果的に可能にするコネクション管理方式を含む。場合によっては、ＣＭエンドポイント１０８は、メッセージングエンドポイント１１０、１６０を介して通信を確立することを担当することができる。多くの実施形態では、通信管理スレッドの必要性を排除するための、各ＤＣプロセスのコネクション管理のための専用リソース（例えば、ＤＣプロセス１０６のためのＣＭエンドポイント１０８およびＤＣプロセス１５６のためのＣＭエンドポイント１５８）を作成することができる。１つまたは複数の実施形態では、すべてのメッセージングコネクションを、各デバイス上の各プロセスのための共通のメッセージングエンドポイント（例えば、ローカルデバイス１０２上のメッセージングエンドポイント１１０およびリモートデバイス１５２上のメッセージングエンドポイント１６０）を介して実現することができる。１つまたは複数のそのような実施形態では、これにより、図２に関してなど、以下でより詳細に論じるように、プロセスによって確立される接続ごとに新しいメッセージングエンドポイントを作成する必要性を防ぐことができる。多くの実施形態では、本明細書に記載の１つまたは複数の特徴および／または構成要素は、コネクション型フレームワーク（例えばコネクション型フレームワーク１０４）をコネクションレス型ファブリック（例えばコネクションレス型ファブリック１１４）にポートするために必要なコネクション管理に対する高性能かつ低依存性の解決策を提供する。
【００２５】
本明細書に記載の多くの実施形態は、以下のうち１つまたは複数を含み、実現し、かつ／または実装することができる。いくつかの実施形態は、サードパーティ依存性がない人工知能フレームワークにおける高性能コネクションレス型ファブリックの使用を対象としたコネクション管理方式を含み得る。多くの実施形態は、コネクション型フレームワークがコネクションレス型トランスポートをワイヤアップすることを可能にし得る。１つまたは複数の実施形態は、コネクション管理（例えば、ＣＭエンドポイント１０８）専用のプロセス（例えば、ＤＣプロセス１０６）ごとにホストファブリックインターフェース（ＨＦＩ）コマンドキュー通信コンテキストを作成することができる。そのような実施形態は、メッセージング（例えば、メッセージングエンドポイント１１０）のためにただ１つの追加のコンテキストを必要とし得る。様々な実施形態において、これら２つのコンテキストはすべての通信に再利用することができる。
【００２６】
図２は、本明細書に記載の１つまたは複数の実施形態による環境２００内の分散コンピューティングシステム２０１の例示的な態様を示す。分散コンピューティングシステム２０１は、本明細書に記載の１つまたは複数の他の分散コンピューティングシステムまたはその構成要素と同じまたは類似のものであってもよい。分散コンピューティングシステム２０１は、コネクションレス型ファブリック２１４を介して通信するローカルデバイス２０２およびリモートデバイス２５２を含み得る。いくつかの実施形態では、ローカルデバイス２０２は、対応する１つまたは複数のＣＭエンドポイント２０８−１、２０８−２、２０８−ｎとともに１つまたは複数のＤＣプロセス２０６−１、２０６−２、２０６−ｎを含むことができ、リモートデバイス２５２は、対応する１つまたは複数のＣＭエンドポイント２５８−１、２５８−２、２５８−ｎとともに１つまたは複数のＤＣプロセス２５６−１、２５６−２、２５６−ｎを含むことができる。本明細書に記載の様々な実施形態では、ローカルデバイス２０２上のＤＣプロセス２０６のうち１つまたは複数は、リモートデバイス２５２上のＤＣプロセス２５６のうち１つまたは複数と通信することができる。そのような様々な実施形態では、ＤＣプロセス間の通信は対応するＣＭエンドポイントを介してセットアップすることができ、それぞれのメッセージングエンドポイント２１０−１、２１０−２、２１０−ｎおよびメッセージングエンドポイント２６０−１、２６０−２、２６０−ｎを介して行うことができる。いくつかの実施形態では、ＣＭエンドポイント２０８およびメッセージングエンドポイント２１０からの１つまたは複数の通信またはその一部は、コネクションレス型ファブリック２１４を介して送信される前に、マルチプレクサ２１２によって多重化することができ、ＣＭエンドポイント２５８およびメッセージングエンドポイント２６０からの１つまたは複数の通信またはその一部は、コネクションレス型ファブリック２１４を介して送信される前に、マルチプレクサ２６２によって多重化することができる。同様に、いくつかのそのような実施形態では、マルチプレクサ２１２、２６２は、コネクションレス型ファブリック２１４を介して受信される通信を逆多重化することができる。実施形態はこの文脈に限定されない。
【００２７】
多くの実施形態では、ＣＭエンドポイント２０８、２５８およびメッセージングエンドポイント２１０、２６０はネットワークエンドポイントを含み得る。そのような多くの実施形態では、ネットワークエンドポイントは、高速で信頼できる相互接続（例えば、コネクションレス型ファブリック２１４）上のコマンドキュー通信コンテキストを含むかまたはそれを参照し得る。いくつかの実施形態では、コネクションレス型エンドポイント（例えば、メッセージングエンドポイント２１０）は、単一のエンドポイントリソースが他のプロセスに多重接続されることを可能にし得る。様々な実施形態において、コネクションレス型エンドポイントは、アドレスを用いてグローバルに識別され得る。そのような様々な実施形態では、これらのアドレスは、エンドポイント間で通信するためにエンドポイント間で交換されなければならない場合がある。したがって、本明細書に記載の１つまたは複数の実施形態は、メッセージングエンドポイント間の通信を可能にするために、アドレス交換にＣＭエンドポイントを利用することができる。
【００２８】
いくつかの実施形態では、独立した通信チャネルである２つの多重接続リソース（例えば、ＣＭエンドポイント２０８−１およびメッセージングエンドポイント２１０−１）が、ペアワイズコネクション管理交換のために、プロセス（例えばＤＣプロセス２０６−１）ごとに使用され得る。いくつかの実施形態では、１つのエンドポイント（例えばＣＭエンドポイント２０８−１）をコネクション管理専用とすることができ、プロセスによるすべてのコネクション（例えば、ＤＣプロセス２０６−１のためのすべてのコネクション）のためのメッセージングを取り扱う単一のコネクションレス型エンドポイント（例えばメッセージングエンドポイント２１０−１）のコネクションを管理することができる。様々な実施形態において、コネクション管理エンドポイント（例えばＣＭエンドポイント２０８−１）は、ネームサーバプロセス（例えばＤＣプロセス２０６−１）上で使用されてもよい。このような様々な実施形態では、ＣＭエンドポイントは、入来するコネクション要求を待ち（例えば、ＤＣプロセス２０６−１のためのＣＭエンドポイント２０８−１）、メッセージングエンドポイントの既知アドレスのリストに受信されているコネクション要求内のアドレスを追加し（例えば、ＣＭエンドポイント２５８−１から受信されている、ＤＣプロセス２５６−１に対するコネクション要求に応答して、メッセージングエンドポイント２１０−１の既知のアドレスのリストにメッセージングエンドポイント２６０−１のアドレスが追加される）、対応するメッセージングエンドポイントのアドレスの要求プロセスに戻る（例えば、ＣＭエンドポイント２０８−１はメッセージングエンドポイント２１０−１のアドレスをＣＭエンドポイント２５８−１に送信する）。コネクションを要求するプロセス（例えば、ＣＭエンドポイント２５８−１）の観点からは、要求は、メッセージングエンドポイントのアドレス（例えば、メッセージングエンドポイント２６０−１のアドレス）とともにネームサーバ（例えば、ＣＭエンドポイント２０８−１）に送信され、ネームサーバプロセスのメッセージングエンドポイントのアドレス（例えば、メッセージングエンドポイント２１０−１のアドレス）が応答して受信され、ネームサーバプロセスのメッセージングエンドポイントのアドレス（例えば、メッセージングエンドポイント２１０−１のアドレス）が、要求側デバイスのメッセージングエンドポイント（例えば、メッセージングエンドポイント２６０−１）の既知のアドレスリストに追加される。
【００２９】
様々な実施形態において、上述のアドレス交換プロセスはノンブロッキング方式で動作し、この方式においては、（例えば、マルチプレクサ２１２および／またはマルチプレクサ２６２を介して）以前に確立されたコネクション間のメッセージングとインターリーブされながら交換が行われる。これは、確立されるコネクションごとに新しいコネクションファイル記述子が作成されるソケットコネクション管理モデルとは対照的である。さらに、通信を確立するために使用されるエンドポイント（例えば、ＣＭエンドポイント２０８、２５８）はコネクションレス型であるため、単一のエンドポイントリソースのみがコネクション管理交換の存続期間中に作成され得、同様に、ローカルデバイス２０２とリモートデバイス２５２の両方の上でのメッセージングのプロセスあたり、単一の他のエンドポイント（例えば、メッセージングエンドポイント２１０、２６０）のみが使用される。
【００３０】
いくつかの実施形態では、前述のように、本明細書に記載のコネクション管理モデルの実装は、コネクション管理専用のプロセスごとのエンドポイントの作成を利用することができる（例えば、各ＤＣプロセスはそれぞれのＣＭエンドポイントを有する）。様々な実施形態において、ＣＭエンドポイントは、以下でより詳細に説明されるように（例えば、図３および図４を参照されたい）、データを送受信することができ、関連する完了キューを有することができる。１つまたは複数の実施形態では、プロセスがネームサーバとして（例えば、メッセージキューサーバとして）使用されるように意図されている場合、コネクションマネージャエンドポイントは特定のアドレスに関連付けることができる。いくつかの実施形態では、別個のＣＭエンドポイント（例えばＣＭエンドポイント２０８−１）は、コネクション管理通信が、プロセス（例えばＤＣプロセス２０６−１）が実行する他のいかなるメッセージングとも干渉しないことを確実にすることができる。例えば、ＣＭエンドポイントは、マルチプレクサ２１２を介するなどして、コネクション管理を同じ実行スレッド内の他の動作と重ね合わせるために、ノンブロッキング通信のみを使用することができる。多くの実施形態において、未処理のコネクション管理動作の完了は、ネームサーバについて定期的にチェックされ得、そうでなければ未処理のコネクション管理動作は、コネクション管理に関連しない送信または受信動作が要求されるときに、ただし、コネクション管理に関連しない送信または受信動作が完了する前に、強制的に完了させられる。様々な実施形態において、優先度が、メッセージの多重化と共に使用されてもよい。いくつかの実施形態では、完了キュー機構は、コネクションレス型ファブリック２１４の非同期機能（例えば、Ｉｎｔｅｌ（登録商標）Ｏｍｎｉ−Ｐａｔｈファブリックの非同期機能）を利用することができる。
【００３１】
図３は、本明細書に記載の１つまたは複数の実施形態による環境３００内の分散コンピューティングシステム３０１のプロセス間の通信の確立の例示的な態様を示す。分散コンピューティングシステム３０１は、本明細書に記載の１つまたは複数の他の分散コンピューティングシステムまたはその構成要素と同じまたは類似のものであってもよい。分散コンピューティングシステム３０１は、コネクションレス型ファブリック３１４を介して通信を確立するリモートデバイス３５２およびローカルデバイス３０２を含み得る。様々な実施形態において、リモートデバイス３５２は、リモートＣＭエンドポイントアドレス３７２およびリモートメッセージングエンドポイントアドレス３７４を有するコネクションイニシエータ３７０と、リモート受信バッファ３７８を有するリモート完了キュー３７６とを含むリモートＣＭエンドポイント３５８と、リモートアドレスマッピング３８０と、リモートメッセージングエンドポイント３６０とを含むことができる。多くの実施形態では、ローカルデバイス３０２は、ローカル受信バッファ３２８を含むローカル完了キュー３２６、および、ローカルメッセージングエンドポイントアドレス３２４を含むコネクションレスポンダ３２０を有するローカルＣＭエンドポイント３０８と、ローカルアドレスマッピング３３０と、ローカルメッセージングエンドポイント３１０とを含むことができる。１つまたは複数の実施形態では、本明細書で説明されているコネクション管理方式によるコネクション管理交換は、以下でより詳細に説明されるように、リモートデバイス３５２とローカルデバイス３０２との間で実行され得る。実施形態はこの文脈に限定されない。
【００３２】
様々な実施形態では、コネクション管理交換は、ローカルデバイス３０２が、ローカル完了キュー３２６内のローカル受信バッファ３２８を介してなど、ワイルドカード送信元アドレスを用いてノンブロッキング受信をポストすることによって開始することができる。そのような様々な実施形態では、ローカルデバイス３０２はネームサーバを含むか、またはネームサーバであり得る。多くの実施形態では、ポストされている受信は、リモートプロセスからのコネクション管理要求のサービスを可能にし得る。そのような多くの実施形態では、ポストされている受信はノンブロッキング受信であり得る。図示の実施形態では、受信は、送信者（例えば、リモートデバイス３５２）のコネクション管理エンドポイントアドレス（例えば、リモートＣＭエンドポイントアドレス３７２）、および、コネクション管理に関連しないメッセージングに使用されるエンドポイントのアドレス（例えば、リモートメッセージングエンドポイントアドレス３７４）を含むメッセージを予期するローカル受信バッファ３２８を使用する。いくつかの実施形態では、ブールフラグ（例えば、図４のキューステータスインジケータ４３２を参照）を使用して、入来するコネクション要求を解決するためにポストされている受信に関連するその完了キュー（例えばローカル完了キュー３２６）を一貫してチェックしてサービスすべきであることをネームサーバにリマインドすることができる。いくつかの実施形態では、以下でより詳細に説明されるように、ネームサーバは、コネクション管理に関連しないメッセージの任意のブロッキング送信または受信を定期的に中断することができる。いくつかのそのような実施形態において、これによって、ネームサーバが応答を待っているリモートプロセスをブロックしないことを確実にすることができる。
【００３３】
いくつかの実施形態では、リモートデバイス３５２は、ＣＭエンドポイントアドレスおよびメッセージングエンドポイントアドレスの各々のブロックを含むフォーマットにおけるコネクションイニシエータ３７０においてコネクション要求を送信することができる。いくつかのそのような実施形態では、コネクションイニシエータ３７０は、ノンブロッキング送信で送信され得る。したがって、３０５において、リモートデバイス３５２は、ローカル完了のローカル受信バッファ３２８における受信のために、リモートＣＭエンドポイントアドレス３７２およびリモートメッセージングエンドポイントアドレス３７４を有するコネクションイニシエータ３７０をローカルデバイス３０２に送信することができる。さらに、ノンブロッキング受信を、ネームサーバのメッセージングエンドポイントアドレスを予期する、リモート完了キュー３７６のリモート受信バッファ３７８によってポストすることができる。いくつかの実施形態では、未処理のコネクション要求を変数によって追跡することができる（例えば、図４のキューステータスインジケータ４８２を参照）。いくつかのそのような実施形態では、プロセスが他のプロセスからのメッセージの送信および受信を開始することを決定したときに、このインジケータを使用してすべての未処理のコネクション要求を強制的に完了させることができる。
【００３４】
１つまたは複数の実施形態では、ローカルデバイス３０２は、ローカル完了キュー３２６内でコネクションイニシエータ３７０を識別することができる。１つまたは複数のそのような実施形態では、ローカル完了キュー３２６内でのコネクションイニシエータ３７０の識別に応答して、３０７において、リモートメッセージングエンドポイントアドレス３７４をローカルアドレスマッピング３３０に記憶することができる。さらに、ローカルデバイス３２２は、メッセージングエンドポイントアドレスのブロックを含むフォーマットにおいてコネクションレスポンダ３２０を送信することができる。したがって、３０９において、ローカルデバイス３０２は、リモート完了キュー３７６のリモート受信バッファ３７８における受信のために、ローカルメッセージングエンドポイントアドレス３２４を有するコネクションレスポンダ３２０をリモートデバイス３５２に送信することができる。多くの実施形態では、ローカルデバイス３０２は、コネクションイニシエータ３７０の処理中または処理後のいずれかにローカル受信バッファ３２８を再ポストすることができる。
【００３５】
いくつかの実施形態では、リモートデバイス３５２はリモート完了キュー３７６内でコネクションレスポンダ３２０を識別することができる。いくつかのそのような実施形態では、リモート完了キュー３７６内でのコネクションレスポンダ３２０の識別に応答して、３１１において、ローカルメッセージングエンドポイントアドレス３２４をリモートアドレスマッピング３８０に記憶することができる。多くの実施形態では、ローカルメッセージングエンドポイントアドレス３２４を有するコネクションレスポンダ３２０は、ネームサーバのメッセージングエンドポイントアドレスを予期する、リモート完了キュー３７６のリモート受信バッファ３７８によってポストされるノンブロッキング受信を介して受信される。多くの実施形態では、アドレス交換が完了すると、ローカルメッセージングエンドポイント３１０とリモートメッセージングエンドポイント３６０との間のメッセージングが、３１３において開始することができる。
【００３６】
図４は、本明細書に記載の１つまたは複数の実施形態による環境４００内の分散コンピューティングシステム４０１内のリモートデバイス４５２およびローカルデバイス４０２の例示的な態様を示す。分散コンピューティングシステム４０１は、本明細書に記載の１つまたは複数の他の分散コンピューティングシステムまたはその構成要素と同じまたは類似のものであってもよい。環境４００において、分散コンピューティングシステム４０１は、リモートデバイス４５２およびローカルデバイス４０２を含み得る。リモートデバイス４５２は、１つまたは複数のＤＣスレッド４６１を有するＤＣプロセス４５６と、キューステータスインジケータ４８２と、完了キュー４７６を有するＣＭエンドポイント４５８と、リモートアドレスマッピング４８０と、メッセージングエンドポイント４６０とを含み得る。ローカルデバイス４０２は、１つまたは複数のＤＣスレッド４１１を有するＤＣプロセス４０６と、キューステータスインジケータ４３２と、完了キュー４２６を有するＣＭエンドポイント４０８と、ローカルアドレスマッピング４３０と、メッセージングエンドポイント４１０とを含み得る。１つまたは複数の実施形態では、上述したように、キューステータスインジケータ４８２は、ＤＣプロセス４５６が完了キュー４７６内の要求および／または応答のステータスを追跡することを可能にすることができ、キューステータスインジケータ４３２は、ＤＣプロセス４０６が完了キュー４２６内の要求および／または応答のステータスを追跡することを可能にすることができる。実施形態はこの文脈に限定されない。
【００３７】
様々な実施形態において、ＤＣプロセス４０６、４５６は、１つまたは複数のＤＣスレッド４１１、４６１を含み得る。そのような様々な実施形態において、同じＤＣプロセスの２つのＤＣスレッドは通信しようとし得る。そのような状況では、スレッドが同じコネクション管理エンドポイント（例えば、ＤＣプロセス４５６内のＤＣスレッドのためのＣＭエンドポイント４５８）を共有するため、短縮交換が実施され得る。いくつかの実施形態では、短縮交換は、コネクション管理エンドポイントのスレッドセーフな使用法が保証されることを必要とし得る。多くの実施形態では、短縮交換は、図３に関して説明されたコネクション管理交換の一部分のみを必要とし得る。いくつかの実施形態では、これは両方のスレッドがすでにメッセージングエンドポイントを知っているという事実から生じ得る。様々な実施形態において、ＤＣプロセス４５６の各ＤＣスレッド４６１は、共通のＣＭエンドポイント４５８およびメッセージングエンドポイント４６０を利用することができる。同様に、ＤＣプロセス４０６の各ＤＣスレッド４１１は、共通のＣＭエンドポイント４０８およびメッセージングエンドポイント４１０を利用することができる。
【００３８】
いくつかの実施形態では、コネクション管理交換を要求するスレッドは、それが接続しているネームサーバアドレスがそのコネクション管理エンドポイントアドレスと同じであるか否かを最初にチェックすることができる。同じである場合、要求側スレッドはこのアドレスを送信して、ネームサーバに自己接続を通知し、それ自体のメッセージングアドレスをアドレスマッピング（例えば、リモートアドレスマッピング４８０）に保存することができる。様々な実施形態において、これは要求側で交換を終了させることができる。ネームサーバは、入来する要求が同一のＣＭエンドポイントアドレスを含むか否か、および／または、自己接続が識別されているか否かをチェックすることができる。そうである場合、ネームサーバは、そのメッセージングアドレスを既知のパートナとしてアドレスマッピングに保存する。
【００３９】
図５は、本明細書に記載の１つまたは複数の実施形態による分散コンピューティング環境５００の例示的な態様を示す。分散コンピューティング環境５００は、コネクション型フレームワーク５０４およびＤＣプロセス５０６を有するアプリケーション層５４０と、パラメータサーバインターフェース５４２と、ＣＭエンドポイント５０８およびメッセージングエンドポイント５１０を有するトランスポート層５４６と、コネクションレス型ファブリック５１４とを含み得る。本明細書に記載の１つまたは複数の実施形態では、分散コンピューティング環境５００の態様または構成要素を使用して、本明細書に記載の１つまたは複数の分散コンピューティングシステムの態様または構成要素を実装することができる。多くの実施形態では、コネクション型フレームワーク５０４はアプリケーション層５４０上で動作し得、一方、ＣＭエンドポイント５０８およびメッセージングエンドポイント５１０はトランスポート層５４６上で動作する。実施形態はこの文脈に限定されない。
【００４０】
いくつかの実施形態において、パラメータサーバインターフェース５４２の実施態様（例えば、Ｐｓ−Ｌｉｔｅ実施態様）は、コネクション型フレームワーク５０４のプッシュプル通信モデルを定義し得る。そのような実施態様はそのイベント駆動型アーキテクチャモデルのために専用の受信スレッドを使用し得る。このメッセージング受信スレッドには、プロセスに対する入来するコネクション要求を取り扱う役割もあり得る。多くの実施形態において、これら２つの別個の通信チャネルは、別個のコネクションレス型ファブリックエンドポイント（例えば、ＣＭエンドポイント５０８およびメッセージングエンドポイント５１０）を通じてカプセル化することができる。そのような多くの実施形態では、各エンドポイントは別個のメッセージングコンテキスト（例えば、別個のＩｎｔｅｌ（登録商標）Ｐｅｒｆｏｒｍａｎｃｅ  Ｓｃａｌｅｄ  Ｍｅｓｓａｇｉｎｇ  ２（ＰＳＭ２）コンテキスト）にマッピングすることができる。いくつかの実施形態では、イベントがそれぞれの通信チャネルによっていつ受信されるかを決定するために、異なる完了キューが使用されてもよい。いくつかのそのような実施形態では、受信コネクション管理チャネルは、上に概説した、自己接続の事例を含む可能性がある通信を確立するための手順に従うことができる。
【００４１】
様々な実施形態では、最初に、少なくとも１つの接続が確立されるまで、すべてのメッセージング通信をブロックすることができる。その後、いくつかの実施形態では、コネクション管理を枯渇させることも、またはブロックすることもことなく通信を進行させるために（例えば、マルチプレクサを介して）コネクション管理およびメッセージングを、最適にインターリーブすることができる。したがって、コネクション管理を最適に処理するために、コネクション管理エンドポイントを受信メッセージング処理のラウンドロビンスケジューリングに、低い優先度で追加することができる。様々な実施形態では、インターバルコネクション管理ポーリングを利用することができる。そのような様々な実施形態では、（例えば、Ｐｓ−Ｌｉｔｅに対する）進行セマンティクスが許容可能な進行を維持するためにプロセスの完了キューでのポーリングを必要とするため、インターバルコネクション管理ポーリングは割り込みモデルよりも優先して選択され得る。したがって、ＰＳＭ２はそのようなセマンティクスを本来的に提供せず、ＯＳサポートを必要とするため、コネクション管理のための割り込みモデルはＰＳＭ２処理の文脈においては非効率的であり得る。さらに、コネクション管理およびメッセージングをインターリーブすることによって、ＰＳＭ２コネクション管理完了キュー上で専用ポーリングを行うためのバックグラウンドスレッドを作成することを回避することができる。そのような場合、ポーリング専用のスレッドは、すでに高度にスレッド化された環境で不要な競合を追加することになる。
【００４２】
図６は、分散コンピューティングプロセスおよび／またはスレッド間の通信のための接続を確立することに関連して様々な実施形態において実行され得る動作を表すことができる論理フロー６００の一実施形態を示す。論理フロー６００は、本明細書に記載の１つまたは複数の構成要素／デバイスによって実行され得る動作のうちいくつかまたはすべてを表すことができる。実施形態はこの文脈に限定されない。
【００４３】
例示の実施形態では、論理フロー６００はブロック６０２において開始することができる。ブロック６０２「ローカルＣＭエンドポイントアドレスに受信バッファをポストする、受信バッファはコネクションイニシエータフォーマットにおける第１の通信のためのものであり、コネクションイニシエータフォーマットは、リモートＣＭアドレスブロックおよびリモートメッセージングアドレスブロックを含む」において、コネクションイニシエータフォーマットにおける第１の通信を、ローカルＣＭエンドポイントアドレスにポストすることができる。様々な実施形態において、コネクションイニシエータフォーマットはリモートＣＭアドレスブロックおよびリモートメッセージングアドレスブロックを含み得る。例えば、ローカル受信バッファ３２８が、ローカルデバイス３０２によってローカル完了キュー３２６においてポストされてもよい。いくつかのそのような例では、ローカル受信バッファ３２８は、リモートＣＭエンドポイントアドレス３７２およびリモートメッセージングエンドポイントアドレス３７４を含むコネクションイニシエータ３７０を受信することができる。
【００４４】
引き続き、ブロック６０４「受信バッファ内のコネクションイニシエータフォーマットの第１の通信を識別する、第１の通信はリモートＣＭアドレスブロック内のリモートＣＭエンドポイントアドレスおよびリモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスを含む」において、コネクションイニシエータフォーマットの第１の通信が受信バッファ内で識別され得る。いくつかの実施形態では、第１の通信は、リモートＣＭアドレスブロック内のリモートＣＭエンドポイントアドレスと、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含むことができる。例えば、リモートＣＭエンドポイントアドレス３７２およびリモートメッセージングエンドポイントアドレス３７４を有するコネクションイニシエータ３７０が、ローカルデバイス３０２のローカルＣＭエンドポイント３０８によってローカル受信バッファ３２８内で識別され得る。
【００４５】
ブロック６０６「リモートメッセージングエンドポイントアドレスとの通信を可能にするためにリモートメッセージングエンドポイントアドレスを用いてアドレスマッピングを更新する」に進んで、リモートメッセージングエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスを用いてアドレスマッピングを更新することができる。例えば、ローカルデバイス３０２のローカルアドレスマッピング３３０が、リモートメッセージングエンドポイントアドレス３７４によって更新され得る。ブロック６０８「リモートＣＭエンドポイントアドレスに送信するためのコネクションレスポンダフォーマットにおける第２の通信を生成する、コネクションレスポンダフォーマットはローカルメッセージングアドレスブロックを含み、第２の通信はローカルメッセージングエンドポイントアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む」において、コネクションレスポンダフォーマットにおける第２の通信が、リモートＣＭエンドポイントアドレスへの送信のために生成され得る。いくつかの実施形態では、コネクションレスポンダフォーマットはローカルメッセージングアドレスブロックを含み得る。例えば、ローカルメッセージングエンドポイントアドレス３２４を有するコネクションレスポンダ３２０が、コネクションイニシエータ３７０において識別されるリモートＣＭエンドポイントアドレス３７２への送信のためにローカルＣＭエンドポイント３０８によって生成され得る。
【００４６】
引き続き、ブロック６１０「第１の通信、第２の通信、およびアドレスマッピングに基づいてリモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介してリモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立する」において、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信が確立され得る。例えば、ローカルメッセージングエンドポイント３１０およびリモートメッセージングエンドポイント３６０を介したローカルデバイス３０２のローカルＤＣプロセススレッドとリモートデバイス３５２のリモートＤＣプロセススレッドとの間の通信が、ローカルメッセージングエンドポイントアドレス３２４およびリモートメッセージングエンドポイントアドレス３７４を介して確立され得る。
【００４７】
図７は、記憶媒体７００の一実施形態を示す。記憶媒体７００は、光学、磁気または半導体記憶媒体のような、任意の非一時的コンピュータ可読記憶媒体または機械可読記憶媒体を含んでもよい。様々な実施形態において、記憶媒体７００は製造品を含んでもよい。いくつかの実施形態において、記憶媒体７００は、図６の論理フロー６００に関するものなど、本明細書に記載の１つまたは複数の論理フローまたは動作を実施するためのコンピュータ実行可能命令のようなコンピュータ実行可能命令を記憶することができる。コンピュータ可読記憶媒体または機械可読記憶媒体の例は、揮発性メモリまたは不揮発性メモリ、取り外し可能または取り外し不能メモリ、消去可能または消去不能メモリ、書き込み可能または書き換え可能メモリなどを含む、電子データを記憶することが可能な任意の有形の媒体を含み得る。コンピュータ実行可能命令の例は、ソースコード、コンパイル済みコード、解釈済みコード、実行可能コード、静的コード、動的コード、オブジェクト指向コード、ビジュアルコードなどのような任意の適切なタイプのコードを含み得る。実施形態はこの文脈に限定されない。
【００４８】
図８は、前述のような様々な実施形態を実施するのに適し得る例示的なコンピューティングアーキテクチャ８００の一実施形態を示す。様々な実施形態において、コンピューティングアーキテクチャ８００は、電子デバイスを含むかまたは電子デバイスの一部として実装することができる。いくつかの実施形態では、コンピューティングアーキテクチャ８００は、例えば、本明細書で説明されている１つまたは複数の構成要素を実装または利用する分散処理システムを表すことができる。いくつかの実施形態では、コンピューティングアーキテクチャ８００は、例えば、本明細書で説明されている１つまたは複数の技法を実施または利用する本明細書に記載の分散処理システム内のコンピュートノードを表すことができる。実施形態はこの文脈に限定されない。
【００４９】
本出願において使用されるとき、用語「システム」および「構成要素」および「モジュール」は、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連エンティティを参照することを意図しており、その例は、例示的なコンピューティングアーキテクチャ８００によって提供される。例えば、構成要素は、限定されないが、プロセッサ上で作動しているプロセス、プロセッサ、ハードディスクドライブ、（光および／または磁気記憶媒体の）複数の記憶ドライブ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および／またはコンピュータであり得る。例として、サーバ上で作動しているアプリケーションとサーバの両方が構成要素になり得る。１つまたは複数の構成要素がプロセスおよび／または実行スレッド内に存在することができ、構成要素を１つのコンピュータ上に局在化すること、および／または２つ以上のコンピュータ間に分散させることができる。さらに、構成要素は、動作を調整するために様々なタイプの通信媒体によって互いに通信可能に結合され得る。調整は、一方向または双方向の情報交換を含み得る。例えば、構成要素は、通信媒体を介して通信される信号の形で情報を通信することができる。情報は、様々な信号線に割り当てられる信号として実装することができる。そのような割り当てにおいて、各メッセージが信号である。しかしながら、さらなる実施形態は、代替的にデータメッセージを利用してもよい。そのようなデータメッセージは様々な接続にわたって送信されてもよい。例示的な接続は、パラレルインターフェース、シリアルインターフェース、およびバスインターフェースを含む。
【００５０】
コンピューティングアーキテクチャ８００は、１つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入出力（Ｉ／Ｏ）構成要素、電源などのような、様々な一般的なコンピューティング要素を含む。しかしながら、実施形態は、コンピューティングアーキテクチャ８００による実装に限定されない。
【００５１】
図８に示すように、コンピューティングアーキテクチャ８００は、処理装置８０４と、システムメモリ８０６と、システムバス８０８とを備える。処理装置８０４は、限定ではないが、ＡＭＤ（登録商標）Ａｔｈｌｏｎ（登録商標）、Ｄｕｒｏｎ（登録商標）およびＯｐｔｅｒｏｎ（登録商標）プロセッサ、ＡＲＭ（登録商標）アプリケーション、内蔵セキュアプロセッサ、ＩＢＭ（登録商標）およびＭｏｔｏｒｏｌａ（登録商標）ＤｒａｇｏｎＢａｌｌ（登録商標）およびＰｏｗｅｒＰＣ（登録商標）プロセッサ、ＩＢＭおよびＳｏｎｙ（登録商標）およびＣｅｌｌプロセッサ、Ｉｎｔｅｌ（登録商標）Ｃｅｌｅｒｏｎ（登録商標）、Ｃｏｒｅ（２）Ｄｕｏ（登録商標）、Ｉｔａｎｉｕｍ（登録商標）、Ｐｅｎｔｉｕｍ（登録商標）、Ｘｅｏｎ（登録商標）、およびＸＳｃａｌｅ（登録商標）プロセッサ、ならびに類似のプロセッサを含む、様々な市販のプロセッサのいずれかであってもよい。デュアルマイクロプロセッサ、マルチコアプロセッサ、および他のマルチプロセッサアーキテクチャも処理装置８０４として利用することができる。
【００５２】
システムバス８０８は、システムメモリ８０６を含むがこれに限定されないシステム構成要素に処理装置８０４へのインターフェースを提供する。システムバス８０８は、様々な市販のバスアーキテクチャのうちのいずれかを使用して、メモリバス（メモリコントローラありまたはなし）、周辺バス、およびローカルバスにさらに相互接続することができるいくつかのタイプのバス構造のうちのいずれかとすることができる。インターフェースアダプタは、スロットアーキテクチャを介してシステムバス８０８に接続することができる。例示的なスロットアーキテクチャは、限定ではなく、アクセラレーテッドグラフィックスポート（ＡＧＰ）、カードバス、（拡張）業界標準アーキテクチャ（（Ｅ）ＩＳＡ）、マイクロチャネルアーキテクチャ（ＭＣＡ）、ＮｕＢｕｓ、周辺構成要素相互接続（拡張）（ＰＣＩ（Ｘ））、ＰＣＩ  Ｅｘｐｒｅｓｓ、パーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）などを含み得る。
【００５３】
システムメモリ８０６は、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、ダブルデータレートＤＲＡＭ（ＤＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ（例えば１つまたは複数のフラッシュアレイ）、強誘電性ポリマーメモリ、オボニックメモリ、相変化メモリまたは強誘電体メモリなどのポリマーメモリ、シリコン−酸化物−窒化物−酸化物−シリコン（ＳＯＮＯＳ）メモリ、磁気または光カード、独立ディスク（ＲＡＩＤ）ドライブの冗長アレイなどのデバイスのアレイ、ソリッドステートメモリデバイス（例えば、ＵＳＢメモリ、ソリッドステートドライブ（ＳＳＤ））、および情報を記憶するのに適した他の任意のタイプの記憶媒体のような、１つまたは複数の高速メモリユニットの形態の様々なタイプのコンピュータ可読記憶媒体を含むことができる。図８に示す実施形態では、システムメモリ８０６は、不揮発性メモリ８１０および／または揮発性メモリ８１２を含むことができる。いくつかの実施形態において、システムメモリ８０６はメインメモリを含み得る。基本入出力システム（ＢＩＯＳ）は、不揮発性メモリ８１０に記憶することができる。
【００５４】
コンピュータ８０２は、内蔵（または外付け）ハードディスクドライブ（ＨＤＤ）８１４、取り外し可能磁気ディスク８１８に対して読み書きするための磁気フロッピーディスクドライブ（ＦＤＤ）８１６、および、取り外し可能光ディスク８２２（例えばＣＤ−ＲＯＭまたはＤＶＤ）に対して読み書きするための光ディスクドライブ８２０を含む、１つまたは複数の低速メモリユニットの形態の様々なタイプのコンピュータ可読記憶媒体を含むことができる。ＨＤＤ８１４、ＦＤＤ８１６、および光ディスクドライブ８２０は、それぞれＨＤＤインターフェース８２４、ＦＤＤインターフェース８２６、および光ドライブインターフェース８２８によってシステムバス８０８に接続することができる。外部ドライブ実装のためのＨＤＤインターフェース８２４は、ユニバーサルシリアルバス（ＵＳＢ）および電気電子技術者協会（ＩＥＥＥ）９９４インターフェース技術の少なくとも一方または両方を含むことができる。様々な実施形態において、これらのタイプのメモリは、メインメモリまたはシステムメモリに含まれなくてもよい。
【００５５】
ドライブおよび関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などの揮発性および／または不揮発性の記憶を可能にする。例えば、オペレーティングシステム８３０、１つまたは複数のアプリケーションプログラム８３２、他のプログラムモジュール８３４、およびプログラムデータ８３６を含む複数のプログラムモジュールをドライブおよびメモリユニット８１０、８１２に記憶することができる。一実施形態では、１つまたは複数のアプリケーションプログラム８３２、他のプログラムモジュール８３４、およびプログラムデータ８３６は、例えば、本明細書で説明されている様々な技法、アプリケーション、および／または構成要素を含むかまたは実装することができる。
【００５６】
ユーザは、１つまたは複数の有線／無線入力デバイス、例えばキーボード８３８およびマウス８４０などのポインティングデバイスを介してコマンドおよび情報をコンピュータ８０２に入力することができる。他の入力デバイスは、マイクロホン、赤外線（ＩＲ）リモコン、無線周波数（ＲＦ）リモコン、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、手袋、グラフィックスタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン（例えば、容量性、抵抗性など）、トラックボール、トラックパッド、センサ、スタイラスなどを含み得る。これらおよび他の入力デバイスは、システムバス８０８に結合されている入力デバイスインターフェース８４２を通じて処理装置８０４に接続されることが多いが、パラレルポート、ＩＥＥＥ９９４シリアルポート、ゲームポート、ＵＳＢポート、ＩＲインターフェースなどのような他のインターフェースによって接続することができる。
【００５７】
モニタ８４４または他のタイプの表示デバイスもまた、ビデオアダプタ８４６などのインターフェースを介してシステムバス８０８に接続されている。モニタ８４４は、コンピュータ８０２の内部にあってもよく、または外部にあってもよい。モニタ８４４に加えて、コンピュータは典型的には、スピーカ、プリンタなどのような他の周辺出力デバイスを含む。
【００５８】
コンピュータ８０２は、リモートコンピュータ８４８などの１つまたは複数のリモートコンピュータへの有線および／または無線通信を介した論理接続を使用してネットワーク環境で動作することができる。様々な実施形態では、ネットワーク環境を介して１つまたは複数の移行が起こり得る。リモートコンピュータ８４８は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースの娯楽機器、ピアデバイスまたは他の一般的なネットワークノードとすることができ、典型的には、コンピュータ８０２に関連して説明した要素の多くまたは全部を含むが、簡潔にするために、メモリ／記憶デバイス８５０のみが示されている。示されている論理接続は、ローカルエリアネットワーク（ＬＡＮ）８５２および／またはより大規模なネットワーク、例えばワイドエリアネットワーク（ＷＡＮ）８５４への有線／無線接続を含む。そのようなＬＡＮおよびＷＡＮネットワーク環境は、オフィスおよび企業では一般的であり、イントラネットなどの社内規模のコンピュータネットワークを容易にし、それらはすべて、例えばインターネットなどのグローバル通信ネットワークに接続することができる。
【００５９】
ＬＡＮネットワーク環境で使用されるとき、コンピュータ８０２は、有線および／または無線通信ネットワークインターフェースまたはアダプタ８５６を介してＬＡＮ８５２に接続される。アダプタ８５６は、ＬＡＮ８５２への有線および／または無線通信を容易にすることができ、それはまた、アダプタ８５６の無線機能と通信するためにその上に配置された無線アクセスポイントを含むことができる。
【００６０】
ＷＡＮネットワーク環境において使用されるとき、コンピュータ８０２はモデム８５８を含むことができ、または、ＷＡＮ８５４上の通信サーバに接続されるか、または、インターネットなどによってＷＡＮ８５４を介した通信を確立するための他の手段を有する。内部にあってもよく、または外部にあってもよく、有線および／または無線デバイスであってもよいモデム８５８は、入力デバイスインターフェース８４２を介してシステムバス８０８に接続する。ネットワーク環境において、コンピュータ８０２に関して示したプログラムモジュール、またはその一部は、リモートメモリ／記憶デバイス８５０に記憶することができる。図示のネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用できることは理解されよう。
【００６１】
コンピュータ８０２は、無線通信（例えば、ＩＥＥＥ  ８０２．１６無線変調技法）において動作可能に配置された無線デバイスなどのＩＥＥＥ  ８０２ファミリの規格を使用して、有線および無線デバイスまたはエンティティと通信するように動作可能である。これは、とりわけ、少なくともＷｉ−Ｆｉ（またはＷｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）、ＷｉＭａｘ、およびＢｌｕｅｔｏｏｔｈ（登録商標）無線技術を含む。したがって、通信は、従来のネットワークのように事前定義された構造、または単に、少なくとも２つのデバイス間のアドホック通信とすることができる。Ｗｉ−Ｆｉネットワークは、ＩＥＥＥ  ８０２．１１ｘ（ａ、ｂ、ｇ、ｎなど）と呼ばれる無線技術を使用して、安全で信頼性の高い高速無線接続を提供する。Ｗｉ−Ｆｉネットワークは、コンピュータを、互いに、インターネットに、および有線ネットワーク（ＩＥＥＥ  ８０２．３関連媒体および機能を使用する）に接続するために使用することができる。
【００６２】
図９は、仮想マシン移行など、前述のような様々な実施形態を実施するのに適した例示的な通信アーキテクチャ９００のブロック図を示している。通信アーキテクチャ９００は、送信機、受信機、送受信機、無線機、ネットワークインターフェース、ベースバンドプロセッサ、アンテナ、増幅器、フィルタ、電源などのような様々な一般的な通信要素を含む。しかしながら、実施形態は、通信アーキテクチャ９００による実装に限定されない。
【００６３】
図９に示すように、通信アーキテクチャ９００は、１つまたは複数のクライアント９０２およびサーバ９０４を備える。いくつかの実施形態では、通信アーキテクチャは、本明細書に記載の構成要素、アプリケーション、および／または技法のうち１つまたは複数の部分を含むかまたは実装することができる。クライアント９０２およびサーバ９０４は、クッキーおよび／または関連するコンテキスト情報など、それぞれのクライアント９０２およびサーバ９０４にローカルな情報を記憶するために利用することができる１つまたは複数のそれぞれのクライアントデータストア９０８およびサーバデータストア９１０に動作可能に接続される。様々な実施形態において、サーバ９０４のうちいずれか１つは、サーバデータストア９１０のいずれかの上のクライアント９０２のうちいずれか１つから受信されるデータの記憶と共に、本明細書に記載の論理フローまたは動作のうち１つまたは複数、および、図７の記憶媒体７００を実装することができる。１つまたは複数の実施形態では、クライアントデータストア（複数可）９０８またはサーバデータストア（複数可）９１０のうち１つまたは複数は、本明細書に記載の構成要素、アプリケーション、および／または技法の１つまたは複数の部分にアクセス可能なメモリを含み得る。
【００６４】
クライアント９０２およびサーバ９０４は、通信フレームワーク９０６を使用して互いに情報を通信することができる。通信フレームワーク９０６は、任意の周知の通信技法およびプロトコルを実装することができる。通信フレームワーク９０６は、パケット交換網（例えば、インターネットなどの公衆ネットワーク、企業イントラネットなどの私設ネットワークなど）、回線交換網（例えば、公衆交換電話網）、または（適切なゲートウェイおよび変換装置を用いた）パケット交換網と回線交換網との組み合わせとして実施することができる。
【００６５】
通信フレームワーク９０６は、通信ネットワークを受け入れ、通信し、接続するように構成された様々なネットワークインターフェースを実装することができる。ネットワークインターフェースは、入出力インターフェースの特殊な形式と考えることができる。ネットワークインターフェースは、限定ではないが、直接接続、Ｅｔｈｅｒｎｅｔ（登録商標）（例えば、太い、細い、ツイストペア１０／１００／１９００  Ｂａｓｅ  Ｔなど）、トークンリング、無線ネットワークインターフェース、セルラーネットワークインターフェース、ＩＥＥＥ  ８０２．１１ａｘネットワークインターフェース、ＩＥＥＥ  ８０２．１６ネットワークインターフェース、ＩＥＥＥ  ８０２．２０ネットワークインターフェースなどを含む接続プロトコルを利用することができる。さらに、様々な通信ネットワークタイプと連携するために複数のネットワークインターフェースを使用することができる。例えば、ブロードキャストネットワーク、マルチキャストネットワーク、およびユニキャストネットワークを介した通信を可能にするために、複数のネットワークインターフェースを利用することができる。処理要件がより大きい速度および容量を要求する場合、クライアント９０２およびサーバ９０４によって必要とされる通信帯域幅をプール、負荷平衡、および他の様態で増加させるために、分散型ネットワークコントローラアーキテクチャが同様に利用され得る。通信ネットワークは、限定ではないが、直接相互接続、安全なカスタム接続、私設ネットワーク（例えば企業イントラネット）、公衆ネットワーク（例えばインターネット）、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネット上のノードとしてのオペレーティングミッション（ＯＭＮＩ：Ｏｐｅｒａｔｉｎｇ  Ｍｉｓｓｉｏｎｓ  ａｓ  Ｎｏｄｅｓ  ｏｎ  ｔｈｅ  Ｉｎｔｅｒｎｅｔ）、ワイドエリアネットワーク（ＷＡＮ）、無線ネットワーク、セルラーネットワーク、および他の通信ネットワークを含む有線および／または無線ネットワークのうちいずれか１つおよび組み合わせであり得る。
【００６６】
様々な実施形態は、ハードウェア要素、ソフトウェア要素、または両方の組み合わせを使用して実施することができる。ハードウェア要素の例は、プロセッサ、マイクロプロセッサ、回路、回路要素（例えば、トランジスタ、抵抗器、コンデンサ、インダクタなど）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理デバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどを含み得る。ソフトウェアの例は、ソフトウェア構成要素、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、またはそれらの任意の組み合わせを含み得る。ハードウェア要素および／またはソフトウェア要素を使用して実施形態が実施されるかの判定は、所望の計算速度、電力レベル、耐熱性、処理サイクル予算、入力データ速度、出力データ速度、メモリリソース、データバス速度および他の設計上または性能上の制約などの任意の数の要因に従って変化し得る。
【００６７】
少なくとも１つの実施形態の１つまたは複数の態様は、機械によって読み出されると、機械に、本明細書に記載の技法を実施するための論理を作成される、プロセッサ内の様々な論理を表す機械可読媒体に記憶された代表的な命令によって実施され得る。「ＩＰコア」として知られるそのような表現は、有形機械可読媒体に記憶され、実際に論理またはプロセッサを製造する製造機械にロードするために様々な顧客または製造施設に供給され得る。いくつかの実施形態は、例えば、機械によって実行された場合に機械に実施形態による方法および／または動作を実行させることができる命令または命令セットを記憶することができる機械可読媒体または物品を使用して実施することができる。そのような機械は、例えば、任意の適切な処理プラットフォーム、コンピューティングプラットフォーム、コンピューティングデバイス、処理デバイス、コンピューティングシステム、処理システム、コンピュータ、プロセッサなどを含み得、ハードウェアおよび／またはソフトウェアの任意の適切な組み合わせを使用して実装され得る。機械可読媒体または物品は、例えば、任意の適切なタイプのメモリユニット、メモリデバイス、メモリ物品、メモリ媒体、記憶デバイス、記憶物品、記憶媒体、および／または記憶ユニット、例えば、メモリ、取り外し可能または取り外し不能媒体、消去可能または消去不能媒体、書き込み可能または書き換え可能媒体、デジタルまたはアナログ媒体、ハードディスク、フロッピーディスク、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、記録可能コンパクトディスク（ＣＤ−Ｒ）、書き換え可能コンパクトディスク（ＣＤ−ＲＷ）、光ディスク、磁気媒体、磁気光媒体、取り外し可能なメモリカードまたはディスク、様々なタイプのデジタル多用途ディスク（ＤＶＤ）、テープ、カセットなどを含んでもよい。命令は、任意の適切な高レベルプログラミング言語、低レベルプログラミング言語、オブジェクト指向プログラミング言語、ビジュアルプログラミング言語、コンパイル済みプログラミング言語および／または解釈済みプログラミング言語を使用して実装される、ソースコード、コンパイル済みコード、解釈済みコード、実行可能コード、静的コード、動的コード、暗号化コードなどの任意の適切なタイプのコードを含み得る。
【００６８】
以下の実施例はさらなる実施形態に関するものであり、これから多数の置換および構成が明らかとなろう。
【００６９】
実施例１は装置であり、装置は、プロセッサと、命令を含むメモリとを備え、命令は、プロセッサによって実行されると、プロセッサに、ローカルＣＭエンドポイントアドレスに受信バッファをポストすることであって、受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、コネクションイニシエータフォーマットは、リモートＣＭアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストすることと、受信バッファ内でコネクションイニシエータフォーマットの第１の通信を識別することであって、第１の通信は、リモートＣＭアドレスブロック内のリモートＣＭエンドポイントアドレスと、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別することと、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新することと、リモートＣＭエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第２の通信を生成することであって、コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、第２の通信は、ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む、生成することと、第１の通信、第２の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立することとを行わせる。
【００７０】
実施例２は、実施例１の主題を含み、リモートＤＣプロセススレッドおよびローカルＤＣプロセススレッドはコネクション型フレームワーク内で動作し、第１の通信および第２の通信はコネクションレス型メッシュをトラバースする。
【００７１】
実施例３は、実施例１の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、ローカルＤＣプロセススレッドの実行に応答して受信バッファをポストさせる命令を含む。
【００７２】
実施例４は、実施例１の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、ローカルＤＣプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別させる命令を含む。
【００７３】
実施例５は、実施例１の主題を含み、第１の通信は、ネームサーバアドレスに基づいて受信バッファに送信される。
【００７４】
実施例６は、実施例１の主題を含み、第２の通信は、リモートＤＣプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
【００７５】
実施例７は、実施例１の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、受信バッファ内での第１の通信の識別に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第２の受信バッファをポストさせる命令を含む。
【００７６】
実施例８は、実施例１の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含むコネクションイニシエータフォーマットにおける第３の通信に基づいて、第２のリモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立させる命令を含む。
【００７７】
実施例９は、実施例８の主題を含み、第１の通信および第３の通信は、時分割多重化を介してインターリーブされる。
【００７８】
実施例１０は、実施例１の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、第２のローカルＣＭエンドポイントアドレスにおいて受信される第３の通信に基づいて、第２のリモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立させる命令を含み、第２のリモートＤＣプロセススレッドおよびローカルＤＣプロセススレッドは、第２のリモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して通信する。
【００７９】
実施例１１は、実施例１０の主題を含み、第１の通信および第３の通信は、時分割多重化を介してインターリーブされる。
【００８０】
実施例１２は、実施例１の主題を含み、受信バッファおよびローカルＣＭエンドポイントアドレスは完了キューに位置する。
【００８１】
実施例１３は、実施例１の主題を含み、ローカルＤＣプロセススレッドはアプリケーション層上で実行し、ローカルＣＭエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
【００８２】
実施例１４は装置であり、装置は、プロセッサと、命令を含むメモリとを備え、命令は、プロセッサによって実行されると、プロセッサに、ローカルＣＭエンドポイントアドレスからリモートＣＭエンドポイントアドレスに送信するための、コネクションイニシエータフォーマットにおける第１の通信を生成することであって、コネクションイニシエータフォーマットは、ローカルＣＭアドレスブロックと、ローカルメッセージングアドレスブロックとを含み、第１の通信は、ローカルＣＭアドレスブロック内のローカルＣＭエンドポイントアドレスと、ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスとを含む、生成することと、第１の通信に基づいてローカルＣＭエンドポイントアドレスに受信バッファをポストすることと、受信バッファにおいて、コネクションレスポンダフォーマットの第２の通信を識別することであって、コネクションレスポンダフォーマットは、リモートメッセージングアドレスブロックを含み、第２の通信は、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスを含む、識別することと、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新することと、第１の通信、第２の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立することとを行わせる。
【００８３】
実施例１５は、実施例１４の主題を含み、リモートＤＣプロセススレッドおよびローカルＤＣプロセススレッドはコネクション型フレームワーク内で動作し、第１の通信および第２の通信はコネクションレス型メッシュをトラバースする。
【００８４】
実施例１６は、実施例１４の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、ローカルＤＣプロセススレッドの実行に応答して受信バッファをポストさせる命令を含む。
【００８５】
実施例１７は、実施例１４の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、ローカルＤＣプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別させる命令を含む。
【００８６】
実施例１８は、実施例１４の主題を含み、リモートＣＭエンドポイントアドレスは、ネームサーバアドレスを含む。
【００８７】
実施例１９は、実施例１４の主題を含み、第１の通信は、リモートＤＣプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
【００８８】
実施例２０は、実施例１４の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、第２のローカルＣＭエンドポイントアドレスから第２のリモートＣＭエンドポイントアドレスへの第３の通信の送信に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第２の受信バッファをポストさせる命令を含む。
【００８９】
実施例２１は、実施例２０の主題を含み、第３の通信はコネクションイニシエータフォーマットのものであり、ローカルＣＭアドレスブロック内の第２のローカルＣＭエンドポイントアドレスおよびローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む。
【００９０】
実施例２２は、実施例２１の主題を含み、第１の通信および第３の通信は、時分割多重化を介してインターリーブされる。
【００９１】
実施例２３は、実施例１４の主題を含み、受信バッファおよびローカルＣＭエンドポイントアドレスは完了キューに位置する。
【００９２】
実施例２４は、実施例１４の主題を含み、ローカルＤＣプロセススレッドはアプリケーション層上で実行し、ローカルＣＭエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
【００９３】
実施例２５は命令のセットを含む少なくとも１つの非一時的コンピュータ可読媒体であり、命令は、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、ローカルＣＭエンドポイントアドレスに受信バッファをポストすることであって、受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、コネクションイニシエータフォーマットは、リモートＣＭアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストすることと、受信バッファ内でコネクションイニシエータフォーマットの第１の通信を識別することであって、第１の通信は、リモートＣＭアドレスブロック内のリモートＣＭエンドポイントアドレスと、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別することと、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新することと、リモートＣＭエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第２の通信を生成することであって、コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、第２の通信は、ローカルメッセージングエンドポイントブロック内のローカルメッセージングエンドポイントアドレスを含む、生成することと、第１の通信、第２の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立することとを行わせる。
【００９４】
実施例２６は、実施例２５の主題を含み、リモートＤＣプロセススレッドおよびローカルＤＣプロセススレッドはコネクション型フレームワーク内で動作し、第１の通信および第２の通信はコネクションレス型メッシュをトラバースする。
【００９５】
実施例２７は、実施例２５の主題を含み、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、ローカルＤＣプロセススレッドの実行に応答して受信バッファをポストさせる命令を含む。
【００９６】
実施例２８は、実施例２５の主題を含み、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、ローカルＤＣプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別させる命令を含む。
【００９７】
実施例２９は、実施例２５の主題を含み、第１の通信は、ネームサーバアドレスに基づいて受信バッファに送信される。
【００９８】
実施例３０は、実施例２５の主題を含み、第２の通信は、リモートＤＣプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
【００９９】
実施例３１は、実施例２５の主題を含み、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、受信バッファ内での第１の通信の識別に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第２の受信バッファをポストさせる命令を含む。
【０１００】
実施例３２は、実施例２５の主題を含み、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含むコネクションイニシエータフォーマットにおける第３の通信に基づいて、第２のリモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立させる命令を含む。
【０１０１】
実施例３３は、実施例３２の主題を含み、第１の通信および第３の通信は、時分割多重化を介してインターリーブされる。
【０１０２】
実施例３４は、実施例２５の主題を含み、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、第２のローカルＣＭエンドポイントアドレスにおいて受信される第３の通信に基づいて、第２のリモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立させる命令を含み、第２のリモートＤＣプロセススレッドおよびローカルＤＣプロセススレッドは、第２のリモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して通信する。
【０１０３】
実施例３５は、実施例３４の主題を含み、第１の通信および第３の通信は、時分割多重化を介してインターリーブされる。
【０１０４】
実施例３６は、実施例２５の主題を含み、受信バッファおよびローカルＣＭエンドポイントアドレスは完了キューに位置する。
【０１０５】
実施例３７は、実施例２５の主題を含み、ローカルＤＣプロセススレッドはアプリケーション層上で実行し、ローカルＣＭエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
【０１０６】
実施例３８は命令のセットを含む少なくとも１つの非一時的コンピュータ可読媒体であり、命令は、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、ローカルＣＭエンドポイントアドレスからリモートＣＭエンドポイントアドレスに送信するための、コネクションイニシエータフォーマットにおける第１の通信を生成することであって、コネクションイニシエータフォーマットは、ローカルＣＭアドレスブロックと、ローカルメッセージングアドレスブロックとを含み、第１の通信は、ローカルＣＭアドレスブロック内のローカルＣＭエンドポイントアドレスと、ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスとを含む、生成することと、第１の通信に基づいてローカルＣＭエンドポイントアドレスに受信バッファをポストすることと、受信バッファにおいて、コネクションレスポンダフォーマットの第２の通信を識別することであって、コネクションレスポンダフォーマットは、リモートメッセージングアドレスブロックを含み、第２の通信は、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスを含む、識別することと、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新することと、第１の通信、第２の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立することとを行わせる。
【０１０７】
実施例３９は、実施例３８の主題を含み、リモートＤＣプロセススレッドおよびローカルＤＣプロセススレッドはコネクション型フレームワーク内で動作し、第１の通信および第２の通信はコネクションレス型メッシュをトラバースする。
【０１０８】
実施例４０は、実施例３８の主題を含み、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、ローカルＤＣプロセススレッドの実行に応答して受信バッファをポストさせる命令を含む。
【０１０９】
実施例４１は、実施例３８の主題を含み、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、ローカルＤＣプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別させる命令を含む。
【０１１０】
実施例４２は、実施例３８の主題を含み、リモートＣＭエンドポイントアドレスは、ネームサーバアドレスを含む。
【０１１１】
実施例４３は、実施例３８の主題を含み、第１の通信は、リモートＤＣプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
【０１１２】
実施例４４は、実施例３８の主題を含み、プロセッサ回路によって実行されると、プロセッサ回路に、第２のローカルＣＭエンドポイントアドレスから第２のリモートＣＭエンドポイントアドレスへの第３の通信の送信に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第２の受信バッファをポストさせる命令を含む。
【０１１３】
実施例４５は、実施例４４の主題を含み、第３の通信はコネクションイニシエータフォーマットのものであり、ローカルＣＭアドレスブロック内の第２のローカルＣＭエンドポイントアドレスおよびローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む。
【０１１４】
実施例４６は、実施例４５の主題を含み、第１の通信および第３の通信は、時分割多重化を介してインターリーブされる。
【０１１５】
実施例４７は、実施例３８の主題を含み、受信バッファおよびローカルＣＭエンドポイントアドレスは完了キューに位置する。
【０１１６】
実施例４８は、実施例３８の主題を含み、ローカルＤＣプロセススレッドはアプリケーション層上で実行し、ローカルＣＭエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
【０１１７】
実施例４９はコンピュータ実施方法であり、コンピュータ実施方法は、ローカルＣＭエンドポイントアドレスに受信バッファをポストすることであって、受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、コネクションイニシエータフォーマットは、リモートＣＭアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストすることと、受信バッファ内でコネクションイニシエータフォーマットの第１の通信を識別することであって、第１の通信は、リモートＣＭアドレスブロック内のリモートＣＭエンドポイントアドレスと、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別することと、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新することと、リモートＣＭエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第２の通信を生成することであって、コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、第２の通信は、ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む、生成することと、第１の通信、第２の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立することとを含む。
【０１１８】
実施例５０は、実施例４９の主題を含み、リモートＤＣプロセススレッドおよびローカルＤＣプロセススレッドはコネクション型フレームワーク内で動作し、第１の通信および第２の通信はコネクションレス型メッシュをトラバースする。
【０１１９】
実施例５１は、実施例４９の主題を含み、ローカルＤＣプロセススレッドの実行に応答して受信バッファをポストすることを含む。
【０１２０】
実施例５２は、実施例４９の主題を含み、ローカルＤＣプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別することを含む。
【０１２１】
実施例５３は、実施例４９の主題を含み、第１の通信は、ネームサーバアドレスに基づいて受信バッファに送信される。
【０１２２】
実施例５４は、実施例４９の主題を含み、第２の通信は、リモートＤＣプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
【０１２３】
実施例５５は、実施例４９の主題を含み、受信バッファ内での第１の通信の識別に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第２の受信バッファをポストすることを含む。
【０１２４】
実施例５６は、実施例４９の主題を含み、別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含むコネクションイニシエータフォーマットにおける第３の通信に基づいて、第２のリモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立することを含む。
【０１２５】
実施例５７は、実施例５６の主題を含み、第１の通信および第３の通信は、時分割多重化を介してインターリーブされる。
【０１２６】
実施例５８は、実施例４９の主題を含み、第２のローカルＣＭエンドポイントアドレスにおいて受信される第３の通信に基づいて、第２のリモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立することを含み、第２のリモートＤＣプロセススレッドおよびローカルＤＣプロセススレッドは、第２のリモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して通信する。
【０１２７】
実施例５９は、実施例５８の主題を含み、第１の通信および第３の通信は、時分割多重化を介してインターリーブされる。
【０１２８】
実施例６０は、実施例４９の主題を含み、受信バッファおよびローカルＣＭエンドポイントアドレスは完了キューに位置する。
【０１２９】
実施例６１は、実施例４９の主題を含み、ローカルＤＣプロセススレッドはアプリケーション層上で実行し、ローカルＣＭエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
【０１３０】
実施例６２はコンピュータ実施方法であり、コンピュータ実施方法は、ローカルＣＭエンドポイントアドレスからリモートＣＭエンドポイントアドレスに送信するための、コネクションイニシエータフォーマットにおける第１の通信を生成することであって、コネクションイニシエータフォーマットは、ローカルＣＭアドレスブロックと、ローカルメッセージングアドレスブロックとを含み、第１の通信は、ローカルＣＭアドレスブロック内のローカルＣＭエンドポイントアドレスと、ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスとを含む、生成することと、第１の通信に基づいてローカルＣＭエンドポイントアドレスに受信バッファをポストすることと、受信バッファにおいて、コネクションレスポンダフォーマットの第２の通信を識別することであって、コネクションレスポンダフォーマットは、リモートメッセージングアドレスブロックを含み、第２の通信は、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスを含む、識別することと、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新することと、第１の通信、第２の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立することとを含む。
【０１３１】
実施例６３は、実施例６２の主題を含み、リモートＤＣプロセススレッドおよびローカルＤＣプロセススレッドはコネクション型フレームワーク内で動作し、第１の通信および第２の通信はコネクションレス型メッシュをトラバースする。
【０１３２】
実施例６４は、実施例６２の主題を含み、ローカルＤＣプロセススレッドの実行に応答して受信バッファをポストすることを含む。
【０１３３】
実施例６５は、実施例６２の主題を含み、ローカルＤＣプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別することを含む。
【０１３４】
実施例６６は、実施例６２の主題を含み、リモートＣＭエンドポイントアドレスは、ネームサーバアドレスを含む。
【０１３５】
実施例６７は、実施例６２の主題を含み、第１の通信は、リモートＤＣプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
【０１３６】
実施例６８は、実施例６２の主題を含み、第２のローカルＣＭエンドポイントアドレスから第２のリモートＣＭエンドポイントアドレスへの第３の通信の送信に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第２の受信バッファをポストすることを含む。
【０１３７】
実施例６９は、実施例６８の主題を含み、第３の通信はコネクションイニシエータフォーマットのものであり、ローカルＣＭアドレスブロック内の第２のローカルＣＭエンドポイントアドレスおよびローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む。
【０１３８】
実施例７０は、実施例６９の主題を含み、第１の通信および第３の通信は、時分割多重化を介してインターリーブされる。
【０１３９】
実施例７１は、実施例６２の主題を含み、受信バッファおよびローカルＣＭエンドポイントアドレスは完了キューに位置する。
【０１４０】
実施例７２は、実施例６２の主題を含み、ローカルＤＣプロセススレッドはアプリケーション層上で実行し、ローカルＣＭエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
【０１４１】
実施例７３は装置であり、装置は、ローカルＣＭエンドポイントアドレスに受信バッファをポストするための手段であって、受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、コネクションイニシエータフォーマットは、リモートＣＭアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストするための手段と、受信バッファ内でコネクションイニシエータフォーマットの第１の通信を識別するための手段であって、第１の通信は、リモートＣＭアドレスブロック内のリモートＣＭエンドポイントアドレスと、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別するための手段と、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新するための手段と、リモートＣＭエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第２の通信を生成するための手段であって、コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、第２の通信は、ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む、生成するための手段と、第１の通信、第２の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立するための手段とを備える。
【０１４２】
実施例７４は、実施例７３の主題を含み、リモートＤＣプロセススレッドおよびローカルＤＣプロセススレッドはコネクション型フレームワーク内で動作し、第１の通信および第２の通信はコネクションレス型メッシュをトラバースする。
【０１４３】
実施例７５は、実施例７３の主題を含み、ローカルＤＣプロセススレッドの実行に応答して受信バッファをポストするための手段を備える。
【０１４４】
実施例７６は、実施例７３の主題を含み、ローカルＤＣプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別するための手段を備える。
【０１４５】
実施例７７は、実施例７３の主題を含み、第１の通信は、ネームサーバアドレスに基づいて受信バッファに送信される。
【０１４６】
実施例７８は、実施例７３の主題を含み、第２の通信は、リモートＤＣプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
【０１４７】
実施例７９は、実施例７３の主題を含み、受信バッファ内での第１の通信の識別に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第２の受信バッファをポストするための手段を備える。
【０１４８】
実施例８０は、実施例７３の主題を含み、別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含むコネクションイニシエータフォーマットにおける第３の通信に基づいて、第２のリモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立するための手段を備える。
【０１４９】
実施例８１は、実施例８０の主題を含み、第１の通信および第３の通信は、時分割多重化を介してインターリーブされる。
【０１５０】
実施例８２は、実施例７３の主題を含み、第２のローカルＣＭエンドポイントアドレスにおいて受信される第３の通信に基づいて、第２のリモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立するための手段を備え、第２のリモートＤＣプロセススレッドおよびローカルＤＣプロセススレッドは、第２のリモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して通信する。
【０１５１】
実施例８３は、実施例８２の主題を含み、第１の通信および第３の通信は、時分割多重化を介してインターリーブされる。
【０１５２】
実施例８４は、実施例７３の主題を含み、受信バッファおよびローカルＣＭエンドポイントアドレスは完了キューに位置する。
【０１５３】
実施例８５は、実施例７３の主題を含み、ローカルＤＣプロセススレッドはアプリケーション層上で実行し、ローカルＣＭエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
【０１５４】
実施例８６は装置であり、装置は、ローカルＣＭエンドポイントアドレスからリモートＣＭエンドポイントアドレスに送信するための、コネクションイニシエータフォーマットにおける第１の通信を生成するための手段であって、コネクションイニシエータフォーマットは、ローカルＣＭアドレスブロックと、ローカルメッセージングアドレスブロックとを含み、第１の通信は、ローカルＣＭアドレスブロック内のローカルＣＭエンドポイントアドレスと、ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスとを含む、生成するための手段と、第１の通信に基づいてローカルＣＭエンドポイントアドレスに受信バッファをポストするための手段と、受信バッファにおいて、コネクションレスポンダフォーマットの第２の通信を識別するための手段であって、コネクションレスポンダフォーマットは、リモートメッセージングアドレスブロックを含み、第２の通信は、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスを含む、識別するための手段と、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新するための手段と、第１の通信、第２の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートＤＣプロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立するための手段とを備える。
【０１５５】
実施例８７は、実施例８６の主題を含み、リモートＤＣプロセススレッドおよびローカルＤＣプロセススレッドはコネクション型フレームワーク内で動作し、第１の通信および第２の通信はコネクションレス型メッシュをトラバースする。
【０１５６】
実施例８８は、実施例８６の主題を含み、ローカルＤＣプロセススレッドの実行に応答して受信バッファをポストするための手段を備える。
【０１５７】
実施例８９は、実施例８６の主題を含み、ローカルＤＣプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別するための手段を備える。
【０１５８】
実施例９０は、実施例８６の主題を含み、リモートＣＭエンドポイントアドレスは、ネームサーバアドレスを含む。
【０１５９】
実施例９１は、実施例８６の主題を含み、第１の通信は、リモートＤＣプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
【０１６０】
実施例９２は、実施例８６の主題を含み、第２のローカルＣＭエンドポイントアドレスから第２のリモートＣＭエンドポイントアドレスへの第３の通信の送信に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第２の受信バッファをポストするための手段を備える。
【０１６１】
実施例９３は、実施例９２の主題を含み、第３の通信はコネクションイニシエータフォーマットのものであり、ローカルＣＭアドレスブロック内の第２のローカルＣＭエンドポイントアドレスおよびローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む。
【０１６２】
実施例９４は、実施例９３の主題を含み、第１の通信および第３の通信は、時分割多重化を介してインターリーブされる。
【０１６３】
実施例９５は、実施例８６の主題を含み、受信バッファおよびローカルＣＭエンドポイントアドレスは完了キューに位置する。
【０１６４】
実施例９６は、実施例８６の主題を含み、ローカルＤＣプロセススレッドはアプリケーション層上で実行し、ローカルＣＭエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
【０１６５】
例示的な実施形態の前述の説明は、例示および説明を目的として提示されている。網羅的であること、または本開示を開示された正確な形態に限定することは意図されていない。本開示に照らして、多くの修正形態および変形形態が可能である。本開示の範囲は、この詳細な説明によってではなく、むしろ添付の特許請求の範囲によって限定されることが意図されている。本願の優先権を主張する将来出願される出願は、開示されている主題を異なる方法で特許請求することができ、概して、本明細書において様々に開示されるかまたは他の様態で明示されるような１つまたは複数の限定のいずれかのセットを含む。
【０１６６】
他の可能な項目
（項目１）
装置であって、
プロセッサと、
命令を含むメモリと
を備え、
上記命令は、上記プロセッサによって実行されると、上記プロセッサに、
ローカルコネクションマネージャ（ＣＭ）エンドポイントアドレスに受信バッファをポストすることであって、上記受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、上記コネクションイニシエータフォーマットは、リモートＣＭアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストすることと、
上記受信バッファ内で上記コネクションイニシエータフォーマットの第１の通信を識別することであって、上記第１の通信は、上記リモートＣＭアドレスブロック内のリモートＣＭエンドポイントアドレスと、上記リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別することと、
上記リモートＣＭエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第２の通信を生成することであって、上記コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、上記第２の通信は、上記ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む、生成することと、
上記第１の通信および上記第２の通信に基づいて、上記リモートメッセージングエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスを介して、リモート分散コンピューティング（ＤＣ）プロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立することと
を行わせる、装置。
（項目２）
上記メモリは、上記プロセッサによって実行されると、上記プロセッサに、
上記リモートメッセージエンドポイントアドレスとの通信を可能にするために、上記リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新させることと、
上記第１の通信、上記第２の通信、および上記アドレスマッピングに基づいて上記リモートメッセージングエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスを介して、上記リモートＤＣプロセススレッドと上記ローカルＤＣプロセススレッドとの間の通信を確立することと
を行わせる命令を含む、項目１に記載の装置。
（項目３）
上記リモートＤＣプロセススレッドおよび上記ローカルＤＣプロセススレッドはコネクション型フレームワーク内で動作し、上記第１の通信および上記第２の通信はコネクションレス型メッシュをトラバースする、項目１に記載の装置。
（項目４）
上記メモリは、上記プロセッサによって実行されると、上記プロセッサに、上記ローカルＤＣプロセススレッドの実行に応答して上記受信バッファをポストさせる命令を含む、項目１に記載の装置。
（項目５）
上記メモリは、上記プロセッサによって実行されると、上記プロセッサに、上記ローカルＤＣプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて上記受信バッファ内の通信を識別させる命令を含む、項目１に記載の装置。
（項目６）
上記第２の通信は、上記リモートＤＣプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される、項目１に記載の装置。
（項目７）
上記メモリは、上記プロセッサによって実行されると、上記プロセッサに、上記受信バッファ内での上記第１の通信の識別に応答して、上記コネクションイニシエータフォーマットにおける別の通信のために、第２の受信バッファをポストさせる命令を含む、項目１に記載の装置。
（項目８）
上記メモリは、上記プロセッサによって実行されると、上記プロセッサに、別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含む上記コネクションイニシエータフォーマットにおける第３の通信に基づいて、第２のリモートＤＣプロセススレッドと上記ローカルＤＣプロセススレッドとの間の通信を確立させる命令を含む、項目１に記載の装置。
（項目９）
上記第１の通信および上記第３の通信は、時分割多重化を介してインターリーブされる、項目８に記載の装置。
（項目１０）
上記メモリは、上記プロセッサによって実行されると、上記プロセッサに、第２のローカルＣＭエンドポイントアドレスにおいて受信される第３の通信に基づいて、第２のリモートＤＣプロセススレッドと上記ローカルＤＣプロセススレッドとの間の通信を確立させる命令を含み、上記第２のリモートＤＣプロセススレッドおよび上記ローカルＤＣプロセススレッドは、第２のリモートメッセージングエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスを介して通信する、項目１に記載の装置。
（項目１１）
上記第１の通信および上記第３の通信は、時分割多重化を介してインターリーブされる、項目１０に記載の装置。
（項目１２）
上記受信バッファおよび上記ローカルＣＭエンドポイントアドレスは完了キューに位置する、項目１に記載の装置。
（項目１３）
上記ローカルＤＣプロセススレッドはアプリケーション層上で実行し、上記ローカルＣＭエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる、項目１に記載の装置。
（項目１４）
命令のセットを含む少なくとも１つの非一時的コンピュータ可読媒体であり、上記命令は、プロセッサ回路によって実行されるのに応答して、上記プロセッサ回路に、
ローカルコネクションマネージャ（ＣＭ）エンドポイントアドレスからリモートＣＭエンドポイントアドレスに送信するための、コネクションイニシエータフォーマットにおける第１の通信を生成することであって、上記コネクションイニシエータフォーマットは、ローカルＣＭアドレスブロックと、ローカルメッセージングアドレスブロックとを含み、上記第１の通信は、上記ローカルＣＭアドレスブロック内の上記ローカルＣＭエンドポイントアドレスと、上記ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスとを含む、生成することと、
上記第１の通信に基づいて上記ローカルＣＭエンドポイントアドレスに受信バッファをポストすることと、
上記受信バッファにおいて、コネクションレスポンダフォーマットの第２の通信を識別することであって、上記コネクションレスポンダフォーマットは、リモートメッセージングアドレスブロックを含み、上記第２の通信は、上記リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスを含む、識別することと、
上記第１の通信および上記第２の通信に基づいて、上記リモートメッセージングエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスを介して、リモート分散コンピューティング（ＤＣ）プロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立することと
を行わせる、少なくとも１つの非一時的コンピュータ可読媒体。
（項目１５）
上記プロセッサ回路によって実行されると、上記プロセッサ回路に、
上記リモートメッセージエンドポイントアドレスとの通信を可能にするために、上記リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新させることと、
上記第１の通信、上記第２の通信、および上記アドレスマッピングに基づいて上記リモートメッセージングエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスを介して、上記リモートＤＣプロセススレッドと上記ローカルＤＣプロセススレッドとの間の通信を確立することと
を行わせる命令を含む、項目１４に記載の少なくとも１つの非一時的コンピュータ可読媒体。
（項目１６）
上記プロセッサ回路によって実行されるのに応答して、上記プロセッサ回路に、上記ローカルＤＣプロセススレッドの実行に応答して上記受信バッファをポストさせる命令を含む、項目１４に記載の少なくとも１つの非一時的コンピュータ可読媒体。
（項目１７）
上記プロセッサ回路によって実行されるのに応答して、上記プロセッサ回路に、上記ローカルＤＣプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて上記受信バッファ内の通信を識別させる命令を含む、項目１４に記憶の少なくとも１つの非一時的コンピュータ可読媒体。
（項目１８）
上記リモートＣＭエンドポイントアドレスは、ネームサーバアドレスを含む、項目１４に記載の少なくとも１つの非一時的コンピュータ可読媒体。
（項目１９）
上記第１の通信は、上記リモートＤＣプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される、項目１４に記載の少なくとも１つの非一時的コンピュータ可読媒体。
（項目２０）
コンピュータ実施方法であって、
ローカルコネクションマネージャ（ＣＭ）エンドポイントアドレスからリモートＣＭエンドポイントアドレスに送信するための、コネクションイニシエータフォーマットにおける第１の通信を生成することであって、上記コネクションイニシエータフォーマットは、ローカルＣＭアドレスブロックと、ローカルメッセージングアドレスブロックとを含み、上記第１の通信は、上記ローカルＣＭアドレスブロック内の上記ローカルＣＭエンドポイントアドレスと、上記ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスとを含む、生成することと、
上記第１の通信に基づいて上記ローカルＣＭエンドポイントアドレスに受信バッファをポストすることと、
上記受信バッファにおいて、コネクションレスポンダフォーマットの第２の通信を識別することであって、上記コネクションレスポンダフォーマットは、リモートメッセージングアドレスブロックを含み、上記第２の通信は、上記リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスを含む、識別することと、
上記第１の通信および上記第２の通信に基づいて、上記リモートメッセージングエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスを介して、リモート分散コンピューティング（ＤＣ）プロセススレッドとローカルＤＣプロセススレッドとの間の通信を確立することと
を含む、コンピュータ実施方法。
（項目２１）
第２のローカルＣＭエンドポイントアドレスから第２のリモートＣＭエンドポイントアドレスへの第３の通信の送信に応答して、上記コネクションイニシエータフォーマットにおける別の通信のために、第２の受信バッファをポストすることを含む、項目２０に記載のコンピュータ実施方法。
（項目２２）
上記第３の通信は上記コネクションイニシエータフォーマットのものであり、上記ローカルＣＭアドレスブロック内の上記第２のローカルＣＭエンドポイントアドレスおよび上記ローカルメッセージングアドレスブロック内の上記ローカルメッセージングエンドポイントアドレスを含む、項目２１に記載のコンピュータ実施方法。
（項目２３）
上記第１の通信および上記第３の通信は、時分割多重化を介してインターリーブされる、項目２２に記載のコンピュータ実施方法。
（項目２４）
上記リモートメッセージエンドポイントアドレスとの通信を可能にするために、上記リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新させることと、
上記第１の通信、上記第２の通信、および上記アドレスマッピングに基づいて上記リモートメッセージングエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスを介して、上記リモートＤＣプロセススレッドと上記ローカルＤＣプロセススレッドとの間の通信を確立することと
を含む、項目２０に記載のコンピュータ実施方法。
（項目２５）
上記ローカルＤＣプロセススレッドはアプリケーション層上で実行し、上記ローカルＣＭエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる、項目２０に記載のコンピュータ実施方法。
【図１】
2020053014.tif 000003
【図２】
2020053014.tif 000004
【図３】
2020053014.tif 000005
【図４】
2020053014.tif 000006
【図５】
2020053014.tif 000007
【図６】
2020053014.tif 000008
【図７】
2020053014.tif 000009
【図８】
2020053014.tif 000010
【図９】
2020053014.tif 000011
【外国語明細書】
2020053014000001.pdf