JP7428458B2 - 装置、及びプログラム - Google Patents

装置、及びプログラム Download PDF

Info

Publication number
JP7428458B2
JP7428458B2 JP2019126665A JP2019126665A JP7428458B2 JP 7428458 B2 JP7428458 B2 JP 7428458B2 JP 2019126665 A JP2019126665 A JP 2019126665A JP 2019126665 A JP2019126665 A JP 2019126665A JP 7428458 B2 JP7428458 B2 JP 7428458B2
Authority
JP
Japan
Prior art keywords
remote
communication
local
address
messaging
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019126665A
Other languages
English (en)
Other versions
JP2020053014A (ja
Inventor
シーガー カイラ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2020053014A publication Critical patent/JP2020053014A/ja
Application granted granted Critical
Publication of JP7428458B2 publication Critical patent/JP7428458B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Systems (AREA)

Description

一般に、分散コンピューティングは、分散システムを利用するコンピュータ科学の分野を参照し得る。分散システムは、構成要素が1つまたは複数の異なるネットワーク接続デバイス上に配置されているシステムを含み得る。典型的には、分散システムの構成要素は、目的を達成するために、互いにメッセージを渡すことなどによって労力を調整する。分散システム内で動作するコンピュータプログラムは通常、分散プログラムと称される。分散プログラムは、目的を達成するために分散システムの1つまたは複数の構成要素によって実行される1つまたは複数のスレッドで構成された集合プロセスである。
本明細書に記載の1つまたは複数の実施形態による分散コンピューティングシステムの例示的な態様を示す図である。
本明細書に記載の1つまたは複数の実施形態による分散コンピューティングシステム内のデバイス間の通信の例示的な態様を示す図である。
本明細書に記載の1つまたは複数の実施形態による分散コンピューティングシステムのプロセス間の通信の確立の例示的な態様を示す図である。
本明細書に記載の1つまたは複数の実施形態による分散コンピューティングシステム内のデバイスの例示的な態様を示す図である。
本明細書に記載の1つまたは複数の実施形態による分散コンピューティング環境の例示的な態様を示す図である。
本明細書に記載の1つまたは複数の実施形態による第1の論理フローの実施形態を示す図である。
本明細書に記載の1つまたは複数の実施形態による記憶媒体の実施形態を示す図である。
本明細書に記載の1つまたは複数の実施形態によるコンピューティングアーキテクチャの実施形態を示す図である。
本明細書に記載の1つまたは複数の実施形態による通信アーキテクチャの実施形態を示す図である。
様々な実施形態は、一般に、分散コンピューティングシステムのプロセス間の通信などのための、多重接続メッセージングエンドポイントのための技法を対象とする。いくつかの実施形態は、特に、コネクション型フレームワークで実施される分散コンピューティング(DC)スレッド、またはそれを含むDCプロセス間のコネクションレス型ファブリックを介した通信を対象とする。いくつかの実施形態では、この通信の確立はワイヤアップと称されることがある。多くの実施形態では、分散コンピューティングデバイス上の様々なDCプロセスは、それぞれのコネクションマネージャ(CM)エンドポイントを利用して、それぞれのメッセージングエンドポイントを介して通信を確立することができる。これらおよび他の実施形態が説明され特許請求される。
分散コンピューティングシステムが直面するいくつかの課題の1つとして、過度のコンピューティングオーバーヘッドおよび不必要なネットワーク競合なしには、異なるDCプロセス、またはその中のDCスレッド間で通信を確立することができないことが挙げられる。そのような課題は、コネクション型フレームワーク内で動作するDCプロセスおよびDCスレッド、およびコネクションレス型ファブリックをトラバースしなければならないそれらの間の通信から生じる可能性がある。時として、これらの課題によって、コネクション管理のためにサードパーティソリューションからの支援に大きく依拠することになり得る。例えば、オペレーティングシステム(OS)のサポート、ならびに、進行および管理のための追加のスレッドリソースが必要になる場合がある。1つまたは複数の実施形態では、通信は、プロセス情報についてプロセスマネージャを必要とするアプリケーションプログラミングインターフェース(API)規格を利用し得る。これらの要件によって、サードパーティライブラリに依存することになる可能性があり、典型的には、非効率な伝送制御プロトコル(TCP)/インターネットプロトコル(IP)の一括交換および/または同期を伴う。
さらに、コネクション管理は、高度な機能セットを公開することができない特殊なプロセス管理システムおよび/またはインターフェースに依拠する場合がある。例えば、専用の進行スレッドは、コネクション管理およびメッセージングを含む、ファイル記述子のセットに対してOSからの更新を監視し得る。さらに複雑さを増して、これらの通信技法は、ブロッキングをもたらすメッセージング方式を実施する可能性がある。例えば、各メッセージングコネクションは、イーサネット(登録商標)を介したコネクション管理がどのように取り扱われるかと同じまたは類似するように、別個の専用ソケットに依拠し得る。これらおよび他の要因により、機能が制限されて、様々なDCスレッド間の通信が非効率的になる可能性がある。そのような制限は、分散コンピューティングシステムの性能を低下させる可能性があり、性能が不十分で適用性が減少した、柔軟性のないシステムに寄与する。
本明細書で説明される様々な実施形態は、コネクション型フレームワークがコネクションレス型トランスポートを介してワイヤアップすることを効率的かつ効果的に可能にするコネクション管理方式を含む。例えば、コネクション管理方式は、高速で信頼性のある、コネクションレス型ファブリック上の多重接続メッセージングエンドポイントのコネクション管理ニーズに対処することができる。多くの実施形態では、通信管理スレッドの必要性を排除するために完了キューと組み合わせてユーザスレッドを利用しながら、各DCプロセスのコネクション管理のための専用リソース(例えば、CMエンドポイント)を作成することができる。1つまたは複数の実施形態では、プロセスに対するすべてのメッセージングコネクションは、各デバイス上の共通のメッセージングエンドポイントを介して実現することができ、確立される接続ごとに新しいメッセージングエンドポイントを作成する必要性を防ぐ。いくつかの実施形態では、独立したファブリックエンドポイントを確立することができ、ノンブロッキング通信方式を使用して、コネクション管理を同じプロセス上の他の動作と効果的にインターリーブすることができる。様々な実施形態において、最適化された通信方式および検出能力を、自己接続の場合(例えば、同じプロセス内の2つのスレッド間の接続)に使用することができる。
本明細書に記載のいくつかの実施形態は、以下のうち1つまたは複数を含み、実現し、かつ/または実装することができる。いくつかの実施形態は、サードパーティ依存性がない人工知能フレームワークにおける高性能コネクションレス型ファブリックの使用を対象としたコネクション管理方式を含み得る。多くの実施形態は、コネクション型フレームワークがコネクションレス型トランスポートをワイヤアップすることを可能にし得る。1つまたは複数の実施形態は、コネクション管理専用のプロセスごとにホストファブリックインターフェース(HFI)コマンドキュー通信コンテキストを作成することができる。そのような実施形態は、メッセージングのためにただ1つの追加のコンテキストを必要とし得る。様々な実施形態において、これら2つのコンテキストはすべての通信に再利用することができる。いくつかの実施形態では、コネクション管理交換プロトコルは、メッセージングアドレス交換においてコネクション管理コンテキストアドレスをピギーバックすることができる。様々な実施形態は、コネクション要求について完了キューを断続的にポーリングするために非同期ノンブロッキング機能を利用することができる。いくつかの実施形態では、これは、進行エンジンを刺激すること、接続作成時に許容可能な定期的進行を維持すること、およびメイン計算との無視できる程度の干渉を導入することのうち1つまたは複数を容易にし得る。これらおよび他の方法で、本明細書に記載の様々な実施形態は、正確で最適化された動的かつスケーラブルな様式で、分散コンピューティング構成要素間の効率的かつ信頼性のある通信を可能にすることができ、これによって、能力の増大および適用可能性の増大を含む、複数の技術的効果および利点がもたらされる。
一実施形態では、例えば、装置は、プロセッサと、プロセッサによって実行されたときにプロセッサに以下のうち1つまたは複数を実施させる命令を含むメモリとを含むことができる。いくつかの実施形態では、プロセッサに、ローカルコネクションマネージャCMエンドポイントアドレスに受信バッファをポストさせることができる。いくつかのそのような実施形態では、受信バッファは、リモートCMアドレスブロックおよびリモートメッセージングアドレスブロックを含むコネクションイニシエータフォーマットにおける第1の通信のためのものであり得る。様々な実施形態において、プロセッサに、受信バッファ内でコネクションイニシエータフォーマットの第1の通信を識別させることができる。このような様々な実施形態では、第1の通信は、リモートCMアドレスブロック内のリモートCMエンドポイントアドレスと、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含むことができる。いくつかの実施形態では、リモートメッセージエンドポイントアドレスとの通信を可能にするために、プロセッサに、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新させることができる。1つまたは複数の実施形態では、プロセッサに、リモートCMエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第2の通信を生成させることができる。1つまたは複数のそのような実施形態では、コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含むことができ、第2の通信は、ローカルメッセージングエンドポイントアドレスブロック内のローカルメッセージングエンドポイントアドレスを含むことができる。多くの実施形態において、プロセッサに、第1の通信および第2の通信に基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立させることができる。
別の実施形態では、例えば、装置は、プロセッサと、プロセッサによって実行されたときにプロセッサに以下のうち1つまたは複数を実施させる命令を含むメモリとを含むことができる。様々な実施形態において、プロセッサに、ローカルCMエンドポイントアドレスからリモートCMエンドポイントアドレスに送信するための、コネクションイニシエータフォーマットにおける第1の通信を生成させることができる。そのような様々な実施形態において、コネクションイニシエータフォーマットはローカルCMアドレスブロックおよびローカルメッセージングアドレスブロックを含み得る。いくつかの実施形態では、プロセッサに、第1の通信に基づいてローカルCMエンドポイントアドレスに受信バッファをポストさせることができる。多くの実施形態では、プロセッサに、コネクションレスポンダフォーマットの第2の通信を識別させることができる。多くのそのような実施形態では、コネクションレスポンダフォーマットは、リモートメッセージングアドレスブロックを含むことができ、第2の通信は、リモートメッセージングエンドポイントアドレスブロック内のリモートメッセージングエンドポイントアドレスを含むことができる。いくつかの実施形態では、リモートメッセージエンドポイントアドレスとの通信を可能にするために、プロセッサに、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新させることができる。1つまたは複数の実施形態において、プロセッサに、第1の通信、第2の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立させることができる。
本明細書で使用される表記法および命名法を全般的に参照すると、以下の詳細な説明の1つまたは複数の部分は、コンピュータまたはコンピュータネットワーク上で実行されるプログラム手順に関して提示され得る。これらの手順の記述および表現は、それらの研究の本質を他の当業者に最も効果的に伝えるために当業者によって使用されている。手順はここでは、および一般的には、所望の結果をもたらす自己矛盾のない一連の操作であると考えられる。これらの操作は、物理量の物理的操作を必要とするものである。必ずというわけではないが通常、これらの量は、記憶、転送、結合、比較、およびその他の操作が可能な電気信号、磁気信号、または光信号の形をとる。主に一般的な用法上の理由から、これらの信号をビット、値、要素、記号、文字、用語、数などとして参照することが好都合であることがあることが証明されている。しかしながら、これらの用語および類似の用語はすべて適切な物理量に関連付けられるべきであり、それらの量に適用される単なる便利なラベルであることに留意されたい。
さらに、これらの操作は、追加または比較などの用語において参照されることが多く、これらは一般に人間のオペレータによって行われる精神的操作に関連する。しかしながら、1つまたは複数の実施形態の一部を形成する本明細書に記載の操作のいずれにおいても、そのような人間のオペレータの能力は必要ではなく、ほとんどの場合に望ましいものでもない。むしろ、これらの操作は機械操作である。様々な実施形態の動作を実行するための有用な機械は、本明細書の教示に従って書き込まれる、内部に記憶されたコンピュータプログラムによって選択的に起動または構成されるものとしての汎用デジタルコンピュータを含み、かつ/または、必要な目的のために特別に構築される装置を含む。様々な実施形態はまた、これらの動作を実行するための装置またはシステムに関する。これらの装置は、要求される目的のために特別に構築されてもよく、または汎用コンピュータを含んでもよい。これらの様々な機械に必要な構造は、与えられた説明から明らかであろう。
ここで図面を参照するが、全体を通して同様の要素を指すのに同様の参照符号が使用されている。以下の記述では、説明の目的で、その完全な理解を提供するために多数の具体的な詳細が述べられている。しかしながら、これらの具体的な詳細がなくても新規の実施形態を実践することができることは明らかであろう。他の事例では、その説明を容易にするために、よく知られている構造およびデバイスがブロック図の形で示されている。その意図は、特許請求の範囲内のすべての修正形態、等価形態、および代替形態を網羅することである。
図1は、本明細書に記載の1つまたは複数の実施形態による環境100内の分散コンピューティングシステム101の例示的な態様を示す。分散コンピューティングシステム101は、本明細書に記載の1つまたは複数の他の分散コンピューティングシステムまたはその構成要素と同じまたは類似のものであってもよい。分散コンピューティングシステム101は、コネクションレス型ファブリック114を介して通信するローカルデバイス102およびリモートデバイス152を含み得る。いくつかの実施形態では、ローカルデバイス102は、コネクション型フレームワーク104内で動作するDCプロセス106を含み得、リモートデバイス152は、コネクション型フレームワーク154内で動作する別のDCプロセス156を含み得る。本明細書に記載の1つまたは複数の実施形態では、DCプロセス106およびDCプロセス156は、コネクションレス型ファブリック114を介して通信することができる。多くの実施形態において、DCプロセス106とDCプロセス156との間の通信は、ローカルデバイス102に位置するCMエンドポイント108およびメッセージングエンドポイント110、ならびに、リモートデバイス152に位置するCMエンドポイント158およびメッセージングエンドポイント160を用いて促進され得る。実施形態はこの文脈に限定されない。
いくつかの実施形態では、分散コンピューティングシステム101は、集中コンピューティング目的の1つまたは複数の態様を実行するためにローカルデバイス102およびリモートデバイス152を利用することができる。例えば、分散コンピューティングシステム101は、高性能コンピューティング(HPC)、人工知能(AI)作業負荷、および機械学習(ML)作業負荷のうち1つまたは複数のために利用され得る。2つのデバイス102、152のみが分散コンピューティングシステム101に関して示されているが、任意の数のデバイスが集合的に分散コンピューティングシステム101を形成してもよいことが理解されるであろう。様々な実施形態において、「ローカル」(例えば、ローカルデバイス102)の使用および「リモート」(例えば、リモートデバイス152)の使用は、ネットワーク(例えば、コネクションレス型ファブリック214)を介して接続されたデバイスを区別するための説明の明確化のために使用され得る。いくつかの実施形態では、ローカルデバイス102およびリモートデバイス152は、複製の、類似の、または異なるデバイスであってもよい。例えば、ローカルデバイス102はサーバデバイスを含んでもよく、リモートデバイス152はクライアントデバイスを含んでもよく、またはその逆であってもよい。さらなる例では、ローカルデバイス102およびリモートデバイス152はコモディティコンピューティングプラットフォームであってもよく、または、ローカルデバイス102は第1のタスク(例えばDCプロセス106)に対して最適化されてもよく、一方、リモートデバイス152は第2のタスク(例えばDCプロセス156)に対して最適化される。
いくつかの実施形態では、ローカルデバイス102およびリモートデバイス152は、コネクションレス型ファブリック114を介して通信することができる。多くの実施形態では、コネクションレス型ファブリック114は、インターネットなど、各エンドポイントセット間に専用の通信経路がないネットワークを参照し得る。いくつかの実施形態では、コネクションレス型ファブリック114は、データが送信される前に回線が確立されることを要求しなくてもよい。1つまたは複数の実施形態では、コネクションレス型ファブリック114を介して送信される情報パケットは、コネクションレス型ファブリックを介して送信されるいかなる他の情報パケットとも無関係にルーティングすることができる。様々な実施形態において、コネクションレス型ファブリック114は、Intel(登録商標)Omni-Pathアーキテクチャなどの高性能通信アーキテクチャを含み、および/またはそれを利用することができる。一方、多くの実施形態では、コネクション型フレームワーク104、154は、通信構成要素間の専用経路に依存し得る。いくつかの実施形態では、コネクション型フレームワーク104、154は、HPCフレームワーク、AIフレームワーク、およびMLフレームワーク(例えば、MXNet)のうち1つまたは複数など、分散コンピューティングに使用される任意のプログラミングフレームワークを含むことができる。いくつかの実施形態では、コネクション型フレームワーク104、154は、同じかまたは類似していてもよい。
本明細書で説明される様々な実施形態は、コネクション型フレームワーク104、154がコネクションレス型ファブリック114を介してワイヤアップすることを効率的かつ効果的に可能にするコネクション管理方式を含む。場合によっては、CMエンドポイント108は、メッセージングエンドポイント110、160を介して通信を確立することを担当することができる。多くの実施形態では、通信管理スレッドの必要性を排除するための、各DCプロセスのコネクション管理のための専用リソース(例えば、DCプロセス106のためのCMエンドポイント108およびDCプロセス156のためのCMエンドポイント158)を作成することができる。1つまたは複数の実施形態では、すべてのメッセージングコネクションを、各デバイス上の各プロセスのための共通のメッセージングエンドポイント(例えば、ローカルデバイス102上のメッセージングエンドポイント110およびリモートデバイス152上のメッセージングエンドポイント160)を介して実現することができる。1つまたは複数のそのような実施形態では、これにより、図2に関してなど、以下でより詳細に論じるように、プロセスによって確立される接続ごとに新しいメッセージングエンドポイントを作成する必要性を防ぐことができる。多くの実施形態では、本明細書に記載の1つまたは複数の特徴および/または構成要素は、コネクション型フレームワーク(例えばコネクション型フレームワーク104)をコネクションレス型ファブリック(例えばコネクションレス型ファブリック114)にポートするために必要なコネクション管理に対する高性能かつ低依存性の解決策を提供する。
本明細書に記載の多くの実施形態は、以下のうち1つまたは複数を含み、実現し、かつ/または実装することができる。いくつかの実施形態は、サードパーティ依存性がない人工知能フレームワークにおける高性能コネクションレス型ファブリックの使用を対象としたコネクション管理方式を含み得る。多くの実施形態は、コネクション型フレームワークがコネクションレス型トランスポートをワイヤアップすることを可能にし得る。1つまたは複数の実施形態は、コネクション管理(例えば、CMエンドポイント108)専用のプロセス(例えば、DCプロセス106)ごとにホストファブリックインターフェース(HFI)コマンドキュー通信コンテキストを作成することができる。そのような実施形態は、メッセージング(例えば、メッセージングエンドポイント110)のためにただ1つの追加のコンテキストを必要とし得る。様々な実施形態において、これら2つのコンテキストはすべての通信に再利用することができる。
図2は、本明細書に記載の1つまたは複数の実施形態による環境200内の分散コンピューティングシステム201の例示的な態様を示す。分散コンピューティングシステム201は、本明細書に記載の1つまたは複数の他の分散コンピューティングシステムまたはその構成要素と同じまたは類似のものであってもよい。分散コンピューティングシステム201は、コネクションレス型ファブリック214を介して通信するローカルデバイス202およびリモートデバイス252を含み得る。いくつかの実施形態では、ローカルデバイス202は、対応する1つまたは複数のCMエンドポイント208-1、208-2、208-nとともに1つまたは複数のDCプロセス206-1、206-2、206-nを含むことができ、リモートデバイス252は、対応する1つまたは複数のCMエンドポイント258-1、258-2、258-nとともに1つまたは複数のDCプロセス256-1、256-2、256-nを含むことができる。本明細書に記載の様々な実施形態では、ローカルデバイス202上のDCプロセス206のうち1つまたは複数は、リモートデバイス252上のDCプロセス256のうち1つまたは複数と通信することができる。そのような様々な実施形態では、DCプロセス間の通信は対応するCMエンドポイントを介してセットアップすることができ、それぞれのメッセージングエンドポイント210-1、210-2、210-nおよびメッセージングエンドポイント260-1、260-2、260-nを介して行うことができる。いくつかの実施形態では、CMエンドポイント208およびメッセージングエンドポイント210からの1つまたは複数の通信またはその一部は、コネクションレス型ファブリック214を介して送信される前に、マルチプレクサ212によって多重化することができ、CMエンドポイント258およびメッセージングエンドポイント260からの1つまたは複数の通信またはその一部は、コネクションレス型ファブリック214を介して送信される前に、マルチプレクサ262によって多重化することができる。同様に、いくつかのそのような実施形態では、マルチプレクサ212、262は、コネクションレス型ファブリック214を介して受信される通信を逆多重化することができる。実施形態はこの文脈に限定されない。
多くの実施形態では、CMエンドポイント208、258およびメッセージングエンドポイント210、260はネットワークエンドポイントを含み得る。そのような多くの実施形態では、ネットワークエンドポイントは、高速で信頼できる相互接続(例えば、コネクションレス型ファブリック214)上のコマンドキュー通信コンテキストを含むかまたはそれを参照し得る。いくつかの実施形態では、コネクションレス型エンドポイント(例えば、メッセージングエンドポイント210)は、単一のエンドポイントリソースが他のプロセスに多重接続されることを可能にし得る。様々な実施形態において、コネクションレス型エンドポイントは、アドレスを用いてグローバルに識別され得る。そのような様々な実施形態では、これらのアドレスは、エンドポイント間で通信するためにエンドポイント間で交換されなければならない場合がある。したがって、本明細書に記載の1つまたは複数の実施形態は、メッセージングエンドポイント間の通信を可能にするために、アドレス交換にCMエンドポイントを利用することができる。
いくつかの実施形態では、独立した通信チャネルである2つの多重接続リソース(例えば、CMエンドポイント208-1およびメッセージングエンドポイント210-1)が、ペアワイズコネクション管理交換のために、プロセス(例えばDCプロセス206-1)ごとに使用され得る。いくつかの実施形態では、1つのエンドポイント(例えばCMエンドポイント208-1)をコネクション管理専用とすることができ、プロセスによるすべてのコネクション(例えば、DCプロセス206-1のためのすべてのコネクション)のためのメッセージングを取り扱う単一のコネクションレス型エンドポイント(例えばメッセージングエンドポイント210-1)のコネクションを管理することができる。様々な実施形態において、コネクション管理エンドポイント(例えばCMエンドポイント208-1)は、ネームサーバプロセス(例えばDCプロセス206-1)上で使用されてもよい。このような様々な実施形態では、CMエンドポイントは、入来するコネクション要求を待ち(例えば、DCプロセス206-1のためのCMエンドポイント208-1)、メッセージングエンドポイントの既知アドレスのリストに受信されているコネクション要求内のアドレスを追加し(例えば、CMエンドポイント258-1から受信されている、DCプロセス256-1に対するコネクション要求に応答して、メッセージングエンドポイント210-1の既知のアドレスのリストにメッセージングエンドポイント260-1のアドレスが追加される)、対応するメッセージングエンドポイントのアドレスの要求プロセスに戻る(例えば、CMエンドポイント208-1はメッセージングエンドポイント210-1のアドレスをCMエンドポイント258-1に送信する)。コネクションを要求するプロセス(例えば、CMエンドポイント258-1)の観点からは、要求は、メッセージングエンドポイントのアドレス(例えば、メッセージングエンドポイント260-1のアドレス)とともにネームサーバ(例えば、CMエンドポイント208-1)に送信され、ネームサーバプロセスのメッセージングエンドポイントのアドレス(例えば、メッセージングエンドポイント210-1のアドレス)が応答して受信され、ネームサーバプロセスのメッセージングエンドポイントのアドレス(例えば、メッセージングエンドポイント210-1のアドレス)が、要求側デバイスのメッセージングエンドポイント(例えば、メッセージングエンドポイント260-1)の既知のアドレスリストに追加される。
様々な実施形態において、上述のアドレス交換プロセスはノンブロッキング方式で動作し、この方式においては、(例えば、マルチプレクサ212および/またはマルチプレクサ262を介して)以前に確立されたコネクション間のメッセージングとインターリーブされながら交換が行われる。これは、確立されるコネクションごとに新しいコネクションファイル記述子が作成されるソケットコネクション管理モデルとは対照的である。さらに、通信を確立するために使用されるエンドポイント(例えば、CMエンドポイント208、258)はコネクションレス型であるため、単一のエンドポイントリソースのみがコネクション管理交換の存続期間中に作成され得、同様に、ローカルデバイス202とリモートデバイス252の両方の上でのメッセージングのプロセスあたり、単一の他のエンドポイント(例えば、メッセージングエンドポイント210、260)のみが使用される。
いくつかの実施形態では、前述のように、本明細書に記載のコネクション管理モデルの実装は、コネクション管理専用のプロセスごとのエンドポイントの作成を利用することができる(例えば、各DCプロセスはそれぞれのCMエンドポイントを有する)。様々な実施形態において、CMエンドポイントは、以下でより詳細に説明されるように(例えば、図3および図4を参照されたい)、データを送受信することができ、関連する完了キューを有することができる。1つまたは複数の実施形態では、プロセスがネームサーバとして(例えば、メッセージキューサーバとして)使用されるように意図されている場合、コネクションマネージャエンドポイントは特定のアドレスに関連付けることができる。いくつかの実施形態では、別個のCMエンドポイント(例えばCMエンドポイント208-1)は、コネクション管理通信が、プロセス(例えばDCプロセス206-1)が実行する他のいかなるメッセージングとも干渉しないことを確実にすることができる。例えば、CMエンドポイントは、マルチプレクサ212を介するなどして、コネクション管理を同じ実行スレッド内の他の動作と重ね合わせるために、ノンブロッキング通信のみを使用することができる。多くの実施形態において、未処理のコネクション管理動作の完了は、ネームサーバについて定期的にチェックされ得、そうでなければ未処理のコネクション管理動作は、コネクション管理に関連しない送信または受信動作が要求されるときに、ただし、コネクション管理に関連しない送信または受信動作が完了する前に、強制的に完了させられる。様々な実施形態において、優先度が、メッセージの多重化と共に使用されてもよい。いくつかの実施形態では、完了キュー機構は、コネクションレス型ファブリック214の非同期機能(例えば、Intel(登録商標)Omni-Pathファブリックの非同期機能)を利用することができる。
図3は、本明細書に記載の1つまたは複数の実施形態による環境300内の分散コンピューティングシステム301のプロセス間の通信の確立の例示的な態様を示す。分散コンピューティングシステム301は、本明細書に記載の1つまたは複数の他の分散コンピューティングシステムまたはその構成要素と同じまたは類似のものであってもよい。分散コンピューティングシステム301は、コネクションレス型ファブリック314を介して通信を確立するリモートデバイス352およびローカルデバイス302を含み得る。様々な実施形態において、リモートデバイス352は、リモートCMエンドポイントアドレス372およびリモートメッセージングエンドポイントアドレス374を有するコネクションイニシエータ370と、リモート受信バッファ378を有するリモート完了キュー376とを含むリモートCMエンドポイント358と、リモートアドレスマッピング380と、リモートメッセージングエンドポイント360とを含むことができる。多くの実施形態では、ローカルデバイス302は、ローカル受信バッファ328を含むローカル完了キュー326、および、ローカルメッセージングエンドポイントアドレス324を含むコネクションレスポンダ320を有するローカルCMエンドポイント308と、ローカルアドレスマッピング330と、ローカルメッセージングエンドポイント310とを含むことができる。1つまたは複数の実施形態では、本明細書で説明されているコネクション管理方式によるコネクション管理交換は、以下でより詳細に説明されるように、リモートデバイス352とローカルデバイス302との間で実行され得る。実施形態はこの文脈に限定されない。
様々な実施形態では、コネクション管理交換は、ローカルデバイス302が、ローカル完了キュー326内のローカル受信バッファ328を介してなど、ワイルドカード送信元アドレスを用いてノンブロッキング受信をポストすることによって開始することができる。そのような様々な実施形態では、ローカルデバイス302はネームサーバを含むか、またはネームサーバであり得る。多くの実施形態では、ポストされている受信は、リモートプロセスからのコネクション管理要求のサービスを可能にし得る。そのような多くの実施形態では、ポストされている受信はノンブロッキング受信であり得る。図示の実施形態では、受信は、送信者(例えば、リモートデバイス352)のコネクション管理エンドポイントアドレス(例えば、リモートCMエンドポイントアドレス372)、および、コネクション管理に関連しないメッセージングに使用されるエンドポイントのアドレス(例えば、リモートメッセージングエンドポイントアドレス374)を含むメッセージを予期するローカル受信バッファ328を使用する。いくつかの実施形態では、ブールフラグ(例えば、図4のキューステータスインジケータ432を参照)を使用して、入来するコネクション要求を解決するためにポストされている受信に関連するその完了キュー(例えばローカル完了キュー326)を一貫してチェックしてサービスすべきであることをネームサーバにリマインドすることができる。いくつかの実施形態では、以下でより詳細に説明されるように、ネームサーバは、コネクション管理に関連しないメッセージの任意のブロッキング送信または受信を定期的に中断することができる。いくつかのそのような実施形態において、これによって、ネームサーバが応答を待っているリモートプロセスをブロックしないことを確実にすることができる。
いくつかの実施形態では、リモートデバイス352は、CMエンドポイントアドレスおよびメッセージングエンドポイントアドレスの各々のブロックを含むフォーマットにおけるコネクションイニシエータ370においてコネクション要求を送信することができる。いくつかのそのような実施形態では、コネクションイニシエータ370は、ノンブロッキング送信で送信され得る。したがって、305において、リモートデバイス352は、ローカル完了のローカル受信バッファ328における受信のために、リモートCMエンドポイントアドレス372およびリモートメッセージングエンドポイントアドレス374を有するコネクションイニシエータ370をローカルデバイス302に送信することができる。さらに、ノンブロッキング受信を、ネームサーバのメッセージングエンドポイントアドレスを予期する、リモート完了キュー376のリモート受信バッファ378によってポストすることができる。いくつかの実施形態では、未処理のコネクション要求を変数によって追跡することができる(例えば、図4のキューステータスインジケータ482を参照)。いくつかのそのような実施形態では、プロセスが他のプロセスからのメッセージの送信および受信を開始することを決定したときに、このインジケータを使用してすべての未処理のコネクション要求を強制的に完了させることができる。
1つまたは複数の実施形態では、ローカルデバイス302は、ローカル完了キュー326内でコネクションイニシエータ370を識別することができる。1つまたは複数のそのような実施形態では、ローカル完了キュー326内でのコネクションイニシエータ370の識別に応答して、307において、リモートメッセージングエンドポイントアドレス374をローカルアドレスマッピング330に記憶することができる。さらに、ローカルデバイス322は、メッセージングエンドポイントアドレスのブロックを含むフォーマットにおいてコネクションレスポンダ320を送信することができる。したがって、309において、ローカルデバイス302は、リモート完了キュー376のリモート受信バッファ378における受信のために、ローカルメッセージングエンドポイントアドレス324を有するコネクションレスポンダ320をリモートデバイス352に送信することができる。多くの実施形態では、ローカルデバイス302は、コネクションイニシエータ370の処理中または処理後のいずれかにローカル受信バッファ328を再ポストすることができる。
いくつかの実施形態では、リモートデバイス352はリモート完了キュー376内でコネクションレスポンダ320を識別することができる。いくつかのそのような実施形態では、リモート完了キュー376内でのコネクションレスポンダ320の識別に応答して、311において、ローカルメッセージングエンドポイントアドレス324をリモートアドレスマッピング380に記憶することができる。多くの実施形態では、ローカルメッセージングエンドポイントアドレス324を有するコネクションレスポンダ320は、ネームサーバのメッセージングエンドポイントアドレスを予期する、リモート完了キュー376のリモート受信バッファ378によってポストされるノンブロッキング受信を介して受信される。多くの実施形態では、アドレス交換が完了すると、ローカルメッセージングエンドポイント310とリモートメッセージングエンドポイント360との間のメッセージングが、313において開始することができる。
図4は、本明細書に記載の1つまたは複数の実施形態による環境400内の分散コンピューティングシステム401内のリモートデバイス452およびローカルデバイス402の例示的な態様を示す。分散コンピューティングシステム401は、本明細書に記載の1つまたは複数の他の分散コンピューティングシステムまたはその構成要素と同じまたは類似のものであってもよい。環境400において、分散コンピューティングシステム401は、リモートデバイス452およびローカルデバイス402を含み得る。リモートデバイス452は、1つまたは複数のDCスレッド461を有するDCプロセス456と、キューステータスインジケータ482と、完了キュー476を有するCMエンドポイント458と、リモートアドレスマッピング480と、メッセージングエンドポイント460とを含み得る。ローカルデバイス402は、1つまたは複数のDCスレッド411を有するDCプロセス406と、キューステータスインジケータ432と、完了キュー426を有するCMエンドポイント408と、ローカルアドレスマッピング430と、メッセージングエンドポイント410とを含み得る。1つまたは複数の実施形態では、上述したように、キューステータスインジケータ482は、DCプロセス456が完了キュー476内の要求および/または応答のステータスを追跡することを可能にすることができ、キューステータスインジケータ432は、DCプロセス406が完了キュー426内の要求および/または応答のステータスを追跡することを可能にすることができる。実施形態はこの文脈に限定されない。
様々な実施形態において、DCプロセス406、456は、1つまたは複数のDCスレッド411、461を含み得る。そのような様々な実施形態において、同じDCプロセスの2つのDCスレッドは通信しようとし得る。そのような状況では、スレッドが同じコネクション管理エンドポイント(例えば、DCプロセス456内のDCスレッドのためのCMエンドポイント458)を共有するため、短縮交換が実施され得る。いくつかの実施形態では、短縮交換は、コネクション管理エンドポイントのスレッドセーフな使用法が保証されることを必要とし得る。多くの実施形態では、短縮交換は、図3に関して説明されたコネクション管理交換の一部分のみを必要とし得る。いくつかの実施形態では、これは両方のスレッドがすでにメッセージングエンドポイントを知っているという事実から生じ得る。様々な実施形態において、DCプロセス456の各DCスレッド461は、共通のCMエンドポイント458およびメッセージングエンドポイント460を利用することができる。同様に、DCプロセス406の各DCスレッド411は、共通のCMエンドポイント408およびメッセージングエンドポイント410を利用することができる。
いくつかの実施形態では、コネクション管理交換を要求するスレッドは、それが接続しているネームサーバアドレスがそのコネクション管理エンドポイントアドレスと同じであるか否かを最初にチェックすることができる。同じである場合、要求側スレッドはこのアドレスを送信して、ネームサーバに自己接続を通知し、それ自体のメッセージングアドレスをアドレスマッピング(例えば、リモートアドレスマッピング480)に保存することができる。様々な実施形態において、これは要求側で交換を終了させることができる。ネームサーバは、入来する要求が同一のCMエンドポイントアドレスを含むか否か、および/または、自己接続が識別されているか否かをチェックすることができる。そうである場合、ネームサーバは、そのメッセージングアドレスを既知のパートナとしてアドレスマッピングに保存する。
図5は、本明細書に記載の1つまたは複数の実施形態による分散コンピューティング環境500の例示的な態様を示す。分散コンピューティング環境500は、コネクション型フレームワーク504およびDCプロセス506を有するアプリケーション層540と、パラメータサーバインターフェース542と、CMエンドポイント508およびメッセージングエンドポイント510を有するトランスポート層546と、コネクションレス型ファブリック514とを含み得る。本明細書に記載の1つまたは複数の実施形態では、分散コンピューティング環境500の態様または構成要素を使用して、本明細書に記載の1つまたは複数の分散コンピューティングシステムの態様または構成要素を実装することができる。多くの実施形態では、コネクション型フレームワーク504はアプリケーション層540上で動作し得、一方、CMエンドポイント508およびメッセージングエンドポイント510はトランスポート層546上で動作する。実施形態はこの文脈に限定されない。
いくつかの実施形態において、パラメータサーバインターフェース542の実施態様(例えば、Ps-Lite実施態様)は、コネクション型フレームワーク504のプッシュプル通信モデルを定義し得る。そのような実施態様はそのイベント駆動型アーキテクチャモデルのために専用の受信スレッドを使用し得る。このメッセージング受信スレッドには、プロセスに対する入来するコネクション要求を取り扱う役割もあり得る。多くの実施形態において、これら2つの別個の通信チャネルは、別個のコネクションレス型ファブリックエンドポイント(例えば、CMエンドポイント508およびメッセージングエンドポイント510)を通じてカプセル化することができる。そのような多くの実施形態では、各エンドポイントは別個のメッセージングコンテキスト(例えば、別個のIntel(登録商標)Performance Scaled Messaging 2(PSM2)コンテキスト)にマッピングすることができる。いくつかの実施形態では、イベントがそれぞれの通信チャネルによっていつ受信されるかを決定するために、異なる完了キューが使用されてもよい。いくつかのそのような実施形態では、受信コネクション管理チャネルは、上に概説した、自己接続の事例を含む可能性がある通信を確立するための手順に従うことができる。
様々な実施形態では、最初に、少なくとも1つの接続が確立されるまで、すべてのメッセージング通信をブロックすることができる。その後、いくつかの実施形態では、コネクション管理を枯渇させることも、またはブロックすることもことなく通信を進行させるために(例えば、マルチプレクサを介して)コネクション管理およびメッセージングを、最適にインターリーブすることができる。したがって、コネクション管理を最適に処理するために、コネクション管理エンドポイントを受信メッセージング処理のラウンドロビンスケジューリングに、低い優先度で追加することができる。様々な実施形態では、インターバルコネクション管理ポーリングを利用することができる。そのような様々な実施形態では、(例えば、Ps-Liteに対する)進行セマンティクスが許容可能な進行を維持するためにプロセスの完了キューでのポーリングを必要とするため、インターバルコネクション管理ポーリングは割り込みモデルよりも優先して選択され得る。したがって、PSM2はそのようなセマンティクスを本来的に提供せず、OSサポートを必要とするため、コネクション管理のための割り込みモデルはPSM2処理の文脈においては非効率的であり得る。さらに、コネクション管理およびメッセージングをインターリーブすることによって、PSM2コネクション管理完了キュー上で専用ポーリングを行うためのバックグラウンドスレッドを作成することを回避することができる。そのような場合、ポーリング専用のスレッドは、すでに高度にスレッド化された環境で不要な競合を追加することになる。
図6は、分散コンピューティングプロセスおよび/またはスレッド間の通信のための接続を確立することに関連して様々な実施形態において実行され得る動作を表すことができる論理フロー600の一実施形態を示す。論理フロー600は、本明細書に記載の1つまたは複数の構成要素/デバイスによって実行され得る動作のうちいくつかまたはすべてを表すことができる。実施形態はこの文脈に限定されない。
例示の実施形態では、論理フロー600はブロック602において開始することができる。ブロック602「ローカルCMエンドポイントアドレスに受信バッファをポストする、受信バッファはコネクションイニシエータフォーマットにおける第1の通信のためのものであり、コネクションイニシエータフォーマットは、リモートCMアドレスブロックおよびリモートメッセージングアドレスブロックを含む」において、コネクションイニシエータフォーマットにおける第1の通信を、ローカルCMエンドポイントアドレスにポストすることができる。様々な実施形態において、コネクションイニシエータフォーマットはリモートCMアドレスブロックおよびリモートメッセージングアドレスブロックを含み得る。例えば、ローカル受信バッファ328が、ローカルデバイス302によってローカル完了キュー326においてポストされてもよい。いくつかのそのような例では、ローカル受信バッファ328は、リモートCMエンドポイントアドレス372およびリモートメッセージングエンドポイントアドレス374を含むコネクションイニシエータ370を受信することができる。
引き続き、ブロック604「受信バッファ内のコネクションイニシエータフォーマットの第1の通信を識別する、第1の通信はリモートCMアドレスブロック内のリモートCMエンドポイントアドレスおよびリモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスを含む」において、コネクションイニシエータフォーマットの第1の通信が受信バッファ内で識別され得る。いくつかの実施形態では、第1の通信は、リモートCMアドレスブロック内のリモートCMエンドポイントアドレスと、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含むことができる。例えば、リモートCMエンドポイントアドレス372およびリモートメッセージングエンドポイントアドレス374を有するコネクションイニシエータ370が、ローカルデバイス302のローカルCMエンドポイント308によってローカル受信バッファ328内で識別され得る。
ブロック606「リモートメッセージングエンドポイントアドレスとの通信を可能にするためにリモートメッセージングエンドポイントアドレスを用いてアドレスマッピングを更新する」に進んで、リモートメッセージングエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスを用いてアドレスマッピングを更新することができる。例えば、ローカルデバイス302のローカルアドレスマッピング330が、リモートメッセージングエンドポイントアドレス374によって更新され得る。ブロック608「リモートCMエンドポイントアドレスに送信するためのコネクションレスポンダフォーマットにおける第2の通信を生成する、コネクションレスポンダフォーマットはローカルメッセージングアドレスブロックを含み、第2の通信はローカルメッセージングエンドポイントアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む」において、コネクションレスポンダフォーマットにおける第2の通信が、リモートCMエンドポイントアドレスへの送信のために生成され得る。いくつかの実施形態では、コネクションレスポンダフォーマットはローカルメッセージングアドレスブロックを含み得る。例えば、ローカルメッセージングエンドポイントアドレス324を有するコネクションレスポンダ320が、コネクションイニシエータ370において識別されるリモートCMエンドポイントアドレス372への送信のためにローカルCMエンドポイント308によって生成され得る。
引き続き、ブロック610「第1の通信、第2の通信、およびアドレスマッピングに基づいてリモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介してリモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立する」において、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信が確立され得る。例えば、ローカルメッセージングエンドポイント310およびリモートメッセージングエンドポイント360を介したローカルデバイス302のローカルDCプロセススレッドとリモートデバイス352のリモートDCプロセススレッドとの間の通信が、ローカルメッセージングエンドポイントアドレス324およびリモートメッセージングエンドポイントアドレス374を介して確立され得る。
図7は、記憶媒体700の一実施形態を示す。記憶媒体700は、光学、磁気または半導体記憶媒体のような、任意の非一時的コンピュータ可読記憶媒体または機械可読記憶媒体を含んでもよい。様々な実施形態において、記憶媒体700は製造品を含んでもよい。いくつかの実施形態において、記憶媒体700は、図6の論理フロー600に関するものなど、本明細書に記載の1つまたは複数の論理フローまたは動作を実施するためのコンピュータ実行可能命令のようなコンピュータ実行可能命令を記憶することができる。コンピュータ可読記憶媒体または機械可読記憶媒体の例は、揮発性メモリまたは不揮発性メモリ、取り外し可能または取り外し不能メモリ、消去可能または消去不能メモリ、書き込み可能または書き換え可能メモリなどを含む、電子データを記憶することが可能な任意の有形の媒体を含み得る。コンピュータ実行可能命令の例は、ソースコード、コンパイル済みコード、解釈済みコード、実行可能コード、静的コード、動的コード、オブジェクト指向コード、ビジュアルコードなどのような任意の適切なタイプのコードを含み得る。実施形態はこの文脈に限定されない。
図8は、前述のような様々な実施形態を実施するのに適し得る例示的なコンピューティングアーキテクチャ800の一実施形態を示す。様々な実施形態において、コンピューティングアーキテクチャ800は、電子デバイスを含むかまたは電子デバイスの一部として実装することができる。いくつかの実施形態では、コンピューティングアーキテクチャ800は、例えば、本明細書で説明されている1つまたは複数の構成要素を実装または利用する分散処理システムを表すことができる。いくつかの実施形態では、コンピューティングアーキテクチャ800は、例えば、本明細書で説明されている1つまたは複数の技法を実施または利用する本明細書に記載の分散処理システム内のコンピュートノードを表すことができる。実施形態はこの文脈に限定されない。
本出願において使用されるとき、用語「システム」および「構成要素」および「モジュール」は、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連エンティティを参照することを意図しており、その例は、例示的なコンピューティングアーキテクチャ800によって提供される。例えば、構成要素は、限定されないが、プロセッサ上で作動しているプロセス、プロセッサ、ハードディスクドライブ、(光および/または磁気記憶媒体の)複数の記憶ドライブ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであり得る。例として、サーバ上で作動しているアプリケーションとサーバの両方が構成要素になり得る。1つまたは複数の構成要素がプロセスおよび/または実行スレッド内に存在することができ、構成要素を1つのコンピュータ上に局在化すること、および/または2つ以上のコンピュータ間に分散させることができる。さらに、構成要素は、動作を調整するために様々なタイプの通信媒体によって互いに通信可能に結合され得る。調整は、一方向または双方向の情報交換を含み得る。例えば、構成要素は、通信媒体を介して通信される信号の形で情報を通信することができる。情報は、様々な信号線に割り当てられる信号として実装することができる。そのような割り当てにおいて、各メッセージが信号である。しかしながら、さらなる実施形態は、代替的にデータメッセージを利用してもよい。そのようなデータメッセージは様々な接続にわたって送信されてもよい。例示的な接続は、パラレルインターフェース、シリアルインターフェース、およびバスインターフェースを含む。
コンピューティングアーキテクチャ800は、1つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入出力(I/O)構成要素、電源などのような、様々な一般的なコンピューティング要素を含む。しかしながら、実施形態は、コンピューティングアーキテクチャ800による実装に限定されない。
図8に示すように、コンピューティングアーキテクチャ800は、処理装置804と、システムメモリ806と、システムバス808とを備える。処理装置804は、限定ではないが、AMD(登録商標)Athlon(登録商標)、Duron(登録商標)およびOpteron(登録商標)プロセッサ、ARM(登録商標)アプリケーション、内蔵セキュアプロセッサ、IBM(登録商標)およびMotorola(登録商標)DragonBall(登録商標)およびPowerPC(登録商標)プロセッサ、IBMおよびSony(登録商標)およびCellプロセッサ、Intel(登録商標)Celeron(登録商標)、Core(2)Duo(登録商標)、Itanium(登録商標)、Pentium(登録商標)、Xeon(登録商標)、およびXScale(登録商標)プロセッサ、ならびに類似のプロセッサを含む、様々な市販のプロセッサのいずれかであってもよい。デュアルマイクロプロセッサ、マルチコアプロセッサ、および他のマルチプロセッサアーキテクチャも処理装置804として利用することができる。
システムバス808は、システムメモリ806を含むがこれに限定されないシステム構成要素に処理装置804へのインターフェースを提供する。システムバス808は、様々な市販のバスアーキテクチャのうちのいずれかを使用して、メモリバス(メモリコントローラありまたはなし)、周辺バス、およびローカルバスにさらに相互接続することができるいくつかのタイプのバス構造のうちのいずれかとすることができる。インターフェースアダプタは、スロットアーキテクチャを介してシステムバス808に接続することができる。例示的なスロットアーキテクチャは、限定ではなく、アクセラレーテッドグラフィックスポート(AGP)、カードバス、(拡張)業界標準アーキテクチャ((E)ISA)、マイクロチャネルアーキテクチャ(MCA)、NuBus、周辺構成要素相互接続(拡張)(PCI(X))、PCI Express、パーソナルコンピュータメモリカード国際協会(PCMCIA)などを含み得る。
システムメモリ806は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ(例えば1つまたは複数のフラッシュアレイ)、強誘電性ポリマーメモリ、オボニックメモリ、相変化メモリまたは強誘電体メモリなどのポリマーメモリ、シリコン-酸化物-窒化物-酸化物-シリコン(SONOS)メモリ、磁気または光カード、独立ディスク(RAID)ドライブの冗長アレイなどのデバイスのアレイ、ソリッドステートメモリデバイス(例えば、USBメモリ、ソリッドステートドライブ(SSD))、および情報を記憶するのに適した他の任意のタイプの記憶媒体のような、1つまたは複数の高速メモリユニットの形態の様々なタイプのコンピュータ可読記憶媒体を含むことができる。図8に示す実施形態では、システムメモリ806は、不揮発性メモリ810および/または揮発性メモリ812を含むことができる。いくつかの実施形態において、システムメモリ806はメインメモリを含み得る。基本入出力システム(BIOS)は、不揮発性メモリ810に記憶することができる。
コンピュータ802は、内蔵(または外付け)ハードディスクドライブ(HDD)814、取り外し可能磁気ディスク818に対して読み書きするための磁気フロッピーディスクドライブ(FDD)816、および、取り外し可能光ディスク822(例えばCD-ROMまたはDVD)に対して読み書きするための光ディスクドライブ820を含む、1つまたは複数の低速メモリユニットの形態の様々なタイプのコンピュータ可読記憶媒体を含むことができる。HDD814、FDD816、および光ディスクドライブ820は、それぞれHDDインターフェース824、FDDインターフェース826、および光ドライブインターフェース828によってシステムバス808に接続することができる。外部ドライブ実装のためのHDDインターフェース824は、ユニバーサルシリアルバス(USB)および電気電子技術者協会(IEEE)994インターフェース技術の少なくとも一方または両方を含むことができる。様々な実施形態において、これらのタイプのメモリは、メインメモリまたはシステムメモリに含まれなくてもよい。
ドライブおよび関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などの揮発性および/または不揮発性の記憶を可能にする。例えば、オペレーティングシステム830、1つまたは複数のアプリケーションプログラム832、他のプログラムモジュール834、およびプログラムデータ836を含む複数のプログラムモジュールをドライブおよびメモリユニット810、812に記憶することができる。一実施形態では、1つまたは複数のアプリケーションプログラム832、他のプログラムモジュール834、およびプログラムデータ836は、例えば、本明細書で説明されている様々な技法、アプリケーション、および/または構成要素を含むかまたは実装することができる。
ユーザは、1つまたは複数の有線/無線入力デバイス、例えばキーボード838およびマウス840などのポインティングデバイスを介してコマンドおよび情報をコンピュータ802に入力することができる。他の入力デバイスは、マイクロホン、赤外線(IR)リモコン、無線周波数(RF)リモコン、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、手袋、グラフィックスタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン(例えば、容量性、抵抗性など)、トラックボール、トラックパッド、センサ、スタイラスなどを含み得る。これらおよび他の入力デバイスは、システムバス808に結合されている入力デバイスインターフェース842を通じて処理装置804に接続されることが多いが、パラレルポート、IEEE994シリアルポート、ゲームポート、USBポート、IRインターフェースなどのような他のインターフェースによって接続することができる。
モニタ844または他のタイプの表示デバイスもまた、ビデオアダプタ846などのインターフェースを介してシステムバス808に接続されている。モニタ844は、コンピュータ802の内部にあってもよく、または外部にあってもよい。モニタ844に加えて、コンピュータは典型的には、スピーカ、プリンタなどのような他の周辺出力デバイスを含む。
コンピュータ802は、リモートコンピュータ848などの1つまたは複数のリモートコンピュータへの有線および/または無線通信を介した論理接続を使用してネットワーク環境で動作することができる。様々な実施形態では、ネットワーク環境を介して1つまたは複数の移行が起こり得る。リモートコンピュータ848は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースの娯楽機器、ピアデバイスまたは他の一般的なネットワークノードとすることができ、典型的には、コンピュータ802に関連して説明した要素の多くまたは全部を含むが、簡潔にするために、メモリ/記憶デバイス850のみが示されている。示されている論理接続は、ローカルエリアネットワーク(LAN)852および/またはより大規模なネットワーク、例えばワイドエリアネットワーク(WAN)854への有線/無線接続を含む。そのようなLANおよびWANネットワーク環境は、オフィスおよび企業では一般的であり、イントラネットなどの社内規模のコンピュータネットワークを容易にし、それらはすべて、例えばインターネットなどのグローバル通信ネットワークに接続することができる。
LANネットワーク環境で使用されるとき、コンピュータ802は、有線および/または無線通信ネットワークインターフェースまたはアダプタ856を介してLAN852に接続される。アダプタ856は、LAN852への有線および/または無線通信を容易にすることができ、それはまた、アダプタ856の無線機能と通信するためにその上に配置された無線アクセスポイントを含むことができる。
WANネットワーク環境において使用されるとき、コンピュータ802はモデム858を含むことができ、または、WAN854上の通信サーバに接続されるか、または、インターネットなどによってWAN854を介した通信を確立するための他の手段を有する。内部にあってもよく、または外部にあってもよく、有線および/または無線デバイスであってもよいモデム858は、入力デバイスインターフェース842を介してシステムバス808に接続する。ネットワーク環境において、コンピュータ802に関して示したプログラムモジュール、またはその一部は、リモートメモリ/記憶デバイス850に記憶することができる。図示のネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用できることは理解されよう。
コンピュータ802は、無線通信(例えば、IEEE 802.16無線変調技法)において動作可能に配置された無線デバイスなどのIEEE 802ファミリの規格を使用して、有線および無線デバイスまたはエンティティと通信するように動作可能である。これは、とりわけ、少なくともWi-Fi(またはWireless Fidelity)、WiMax、およびBluetooth(登録商標)無線技術を含む。したがって、通信は、従来のネットワークのように事前定義された構造、または単に、少なくとも2つのデバイス間のアドホック通信とすることができる。Wi-Fiネットワークは、IEEE 802.11x(a、b、g、nなど)と呼ばれる無線技術を使用して、安全で信頼性の高い高速無線接続を提供する。Wi-Fiネットワークは、コンピュータを、互いに、インターネットに、および有線ネットワーク(IEEE 802.3関連媒体および機能を使用する)に接続するために使用することができる。
図9は、仮想マシン移行など、前述のような様々な実施形態を実施するのに適した例示的な通信アーキテクチャ900のブロック図を示している。通信アーキテクチャ900は、送信機、受信機、送受信機、無線機、ネットワークインターフェース、ベースバンドプロセッサ、アンテナ、増幅器、フィルタ、電源などのような様々な一般的な通信要素を含む。しかしながら、実施形態は、通信アーキテクチャ900による実装に限定されない。
図9に示すように、通信アーキテクチャ900は、1つまたは複数のクライアント902およびサーバ904を備える。いくつかの実施形態では、通信アーキテクチャは、本明細書に記載の構成要素、アプリケーション、および/または技法のうち1つまたは複数の部分を含むかまたは実装することができる。クライアント902およびサーバ904は、クッキーおよび/または関連するコンテキスト情報など、それぞれのクライアント902およびサーバ904にローカルな情報を記憶するために利用することができる1つまたは複数のそれぞれのクライアントデータストア908およびサーバデータストア910に動作可能に接続される。様々な実施形態において、サーバ904のうちいずれか1つは、サーバデータストア910のいずれかの上のクライアント902のうちいずれか1つから受信されるデータの記憶と共に、本明細書に記載の論理フローまたは動作のうち1つまたは複数、および、図7の記憶媒体700を実装することができる。1つまたは複数の実施形態では、クライアントデータストア(複数可)908またはサーバデータストア(複数可)910のうち1つまたは複数は、本明細書に記載の構成要素、アプリケーション、および/または技法の1つまたは複数の部分にアクセス可能なメモリを含み得る。
クライアント902およびサーバ904は、通信フレームワーク906を使用して互いに情報を通信することができる。通信フレームワーク906は、任意の周知の通信技法およびプロトコルを実装することができる。通信フレームワーク906は、パケット交換網(例えば、インターネットなどの公衆ネットワーク、企業イントラネットなどの私設ネットワークなど)、回線交換網(例えば、公衆交換電話網)、または(適切なゲートウェイおよび変換装置を用いた)パケット交換網と回線交換網との組み合わせとして実施することができる。
通信フレームワーク906は、通信ネットワークを受け入れ、通信し、接続するように構成された様々なネットワークインターフェースを実装することができる。ネットワークインターフェースは、入出力インターフェースの特殊な形式と考えることができる。ネットワークインターフェースは、限定ではないが、直接接続、Ethernet(登録商標)(例えば、太い、細い、ツイストペア10/100/1900 Base Tなど)、トークンリング、無線ネットワークインターフェース、セルラーネットワークインターフェース、IEEE 802.11axネットワークインターフェース、IEEE 802.16ネットワークインターフェース、IEEE 802.20ネットワークインターフェースなどを含む接続プロトコルを利用することができる。さらに、様々な通信ネットワークタイプと連携するために複数のネットワークインターフェースを使用することができる。例えば、ブロードキャストネットワーク、マルチキャストネットワーク、およびユニキャストネットワークを介した通信を可能にするために、複数のネットワークインターフェースを利用することができる。処理要件がより大きい速度および容量を要求する場合、クライアント902およびサーバ904によって必要とされる通信帯域幅をプール、負荷平衡、および他の様態で増加させるために、分散型ネットワークコントローラアーキテクチャが同様に利用され得る。通信ネットワークは、限定ではないが、直接相互接続、安全なカスタム接続、私設ネットワーク(例えば企業イントラネット)、公衆ネットワーク(例えばインターネット)、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、インターネット上のノードとしてのオペレーティングミッション(OMNI:Operating Missions as Nodes on the Internet)、ワイドエリアネットワーク(WAN)、無線ネットワーク、セルラーネットワーク、および他の通信ネットワークを含む有線および/または無線ネットワークのうちいずれか1つおよび組み合わせであり得る。
様々な実施形態は、ハードウェア要素、ソフトウェア要素、または両方の組み合わせを使用して実施することができる。ハードウェア要素の例は、プロセッサ、マイクロプロセッサ、回路、回路要素(例えば、トランジスタ、抵抗器、コンデンサ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどを含み得る。ソフトウェアの例は、ソフトウェア構成要素、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、またはそれらの任意の組み合わせを含み得る。ハードウェア要素および/またはソフトウェア要素を使用して実施形態が実施されるかの判定は、所望の計算速度、電力レベル、耐熱性、処理サイクル予算、入力データ速度、出力データ速度、メモリリソース、データバス速度および他の設計上または性能上の制約などの任意の数の要因に従って変化し得る。
少なくとも1つの実施形態の1つまたは複数の態様は、機械によって読み出されると、機械に、本明細書に記載の技法を実施するための論理を作成される、プロセッサ内の様々な論理を表す機械可読媒体に記憶された代表的な命令によって実施され得る。「IPコア」として知られるそのような表現は、有形機械可読媒体に記憶され、実際に論理またはプロセッサを製造する製造機械にロードするために様々な顧客または製造施設に供給され得る。いくつかの実施形態は、例えば、機械によって実行された場合に機械に実施形態による方法および/または動作を実行させることができる命令または命令セットを記憶することができる機械可読媒体または物品を使用して実施することができる。そのような機械は、例えば、任意の適切な処理プラットフォーム、コンピューティングプラットフォーム、コンピューティングデバイス、処理デバイス、コンピューティングシステム、処理システム、コンピュータ、プロセッサなどを含み得、ハードウェアおよび/またはソフトウェアの任意の適切な組み合わせを使用して実装され得る。機械可読媒体または物品は、例えば、任意の適切なタイプのメモリユニット、メモリデバイス、メモリ物品、メモリ媒体、記憶デバイス、記憶物品、記憶媒体、および/または記憶ユニット、例えば、メモリ、取り外し可能または取り外し不能媒体、消去可能または消去不能媒体、書き込み可能または書き換え可能媒体、デジタルまたはアナログ媒体、ハードディスク、フロッピーディスク、コンパクトディスク読み出し専用メモリ(CD-ROM)、記録可能コンパクトディスク(CD-R)、書き換え可能コンパクトディスク(CD-RW)、光ディスク、磁気媒体、磁気光媒体、取り外し可能なメモリカードまたはディスク、様々なタイプのデジタル多用途ディスク(DVD)、テープ、カセットなどを含んでもよい。命令は、任意の適切な高レベルプログラミング言語、低レベルプログラミング言語、オブジェクト指向プログラミング言語、ビジュアルプログラミング言語、コンパイル済みプログラミング言語および/または解釈済みプログラミング言語を使用して実装される、ソースコード、コンパイル済みコード、解釈済みコード、実行可能コード、静的コード、動的コード、暗号化コードなどの任意の適切なタイプのコードを含み得る。
以下の実施例はさらなる実施形態に関するものであり、これから多数の置換および構成が明らかとなろう。
実施例1は装置であり、装置は、プロセッサと、命令を含むメモリとを備え、命令は、プロセッサによって実行されると、プロセッサに、ローカルCMエンドポイントアドレスに受信バッファをポストすることであって、受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、コネクションイニシエータフォーマットは、リモートCMアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストすることと、受信バッファ内でコネクションイニシエータフォーマットの第1の通信を識別することであって、第1の通信は、リモートCMアドレスブロック内のリモートCMエンドポイントアドレスと、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別することと、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新することと、リモートCMエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第2の通信を生成することであって、コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、第2の通信は、ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む、生成することと、第1の通信、第2の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立することとを行わせる。
実施例2は、実施例1の主題を含み、リモートDCプロセススレッドおよびローカルDCプロセススレッドはコネクション型フレームワーク内で動作し、第1の通信および第2の通信はコネクションレス型メッシュをトラバースする。
実施例3は、実施例1の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、ローカルDCプロセススレッドの実行に応答して受信バッファをポストさせる命令を含む。
実施例4は、実施例1の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、ローカルDCプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別させる命令を含む。
実施例5は、実施例1の主題を含み、第1の通信は、ネームサーバアドレスに基づいて受信バッファに送信される。
実施例6は、実施例1の主題を含み、第2の通信は、リモートDCプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
実施例7は、実施例1の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、受信バッファ内での第1の通信の識別に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第2の受信バッファをポストさせる命令を含む。
実施例8は、実施例1の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含むコネクションイニシエータフォーマットにおける第3の通信に基づいて、第2のリモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立させる命令を含む。
実施例9は、実施例8の主題を含み、第1の通信および第3の通信は、時分割多重化を介してインターリーブされる。
実施例10は、実施例1の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、第2のローカルCMエンドポイントアドレスにおいて受信される第3の通信に基づいて、第2のリモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立させる命令を含み、第2のリモートDCプロセススレッドおよびローカルDCプロセススレッドは、第2のリモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して通信する。
実施例11は、実施例10の主題を含み、第1の通信および第3の通信は、時分割多重化を介してインターリーブされる。
実施例12は、実施例1の主題を含み、受信バッファおよびローカルCMエンドポイントアドレスは完了キューに位置する。
実施例13は、実施例1の主題を含み、ローカルDCプロセススレッドはアプリケーション層上で実行し、ローカルCMエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
実施例14は装置であり、装置は、プロセッサと、命令を含むメモリとを備え、命令は、プロセッサによって実行されると、プロセッサに、ローカルCMエンドポイントアドレスからリモートCMエンドポイントアドレスに送信するための、コネクションイニシエータフォーマットにおける第1の通信を生成することであって、コネクションイニシエータフォーマットは、ローカルCMアドレスブロックと、ローカルメッセージングアドレスブロックとを含み、第1の通信は、ローカルCMアドレスブロック内のローカルCMエンドポイントアドレスと、ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスとを含む、生成することと、第1の通信に基づいてローカルCMエンドポイントアドレスに受信バッファをポストすることと、受信バッファにおいて、コネクションレスポンダフォーマットの第2の通信を識別することであって、コネクションレスポンダフォーマットは、リモートメッセージングアドレスブロックを含み、第2の通信は、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスを含む、識別することと、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新することと、第1の通信、第2の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立することとを行わせる。
実施例15は、実施例14の主題を含み、リモートDCプロセススレッドおよびローカルDCプロセススレッドはコネクション型フレームワーク内で動作し、第1の通信および第2の通信はコネクションレス型メッシュをトラバースする。
実施例16は、実施例14の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、ローカルDCプロセススレッドの実行に応答して受信バッファをポストさせる命令を含む。
実施例17は、実施例14の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、ローカルDCプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別させる命令を含む。
実施例18は、実施例14の主題を含み、リモートCMエンドポイントアドレスは、ネームサーバアドレスを含む。
実施例19は、実施例14の主題を含み、第1の通信は、リモートDCプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
実施例20は、実施例14の主題を含み、メモリは、プロセッサによって実行されると、プロセッサに、第2のローカルCMエンドポイントアドレスから第2のリモートCMエンドポイントアドレスへの第3の通信の送信に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第2の受信バッファをポストさせる命令を含む。
実施例21は、実施例20の主題を含み、第3の通信はコネクションイニシエータフォーマットのものであり、ローカルCMアドレスブロック内の第2のローカルCMエンドポイントアドレスおよびローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む。
実施例22は、実施例21の主題を含み、第1の通信および第3の通信は、時分割多重化を介してインターリーブされる。
実施例23は、実施例14の主題を含み、受信バッファおよびローカルCMエンドポイントアドレスは完了キューに位置する。
実施例24は、実施例14の主題を含み、ローカルDCプロセススレッドはアプリケーション層上で実行し、ローカルCMエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
実施例25は命令のセットを含む少なくとも1つの非一時的コンピュータ可読媒体であり、命令は、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、ローカルCMエンドポイントアドレスに受信バッファをポストすることであって、受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、コネクションイニシエータフォーマットは、リモートCMアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストすることと、受信バッファ内でコネクションイニシエータフォーマットの第1の通信を識別することであって、第1の通信は、リモートCMアドレスブロック内のリモートCMエンドポイントアドレスと、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別することと、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新することと、リモートCMエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第2の通信を生成することであって、コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、第2の通信は、ローカルメッセージングエンドポイントブロック内のローカルメッセージングエンドポイントアドレスを含む、生成することと、第1の通信、第2の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立することとを行わせる。
実施例26は、実施例25の主題を含み、リモートDCプロセススレッドおよびローカルDCプロセススレッドはコネクション型フレームワーク内で動作し、第1の通信および第2の通信はコネクションレス型メッシュをトラバースする。
実施例27は、実施例25の主題を含み、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、ローカルDCプロセススレッドの実行に応答して受信バッファをポストさせる命令を含む。
実施例28は、実施例25の主題を含み、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、ローカルDCプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別させる命令を含む。
実施例29は、実施例25の主題を含み、第1の通信は、ネームサーバアドレスに基づいて受信バッファに送信される。
実施例30は、実施例25の主題を含み、第2の通信は、リモートDCプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
実施例31は、実施例25の主題を含み、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、受信バッファ内での第1の通信の識別に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第2の受信バッファをポストさせる命令を含む。
実施例32は、実施例25の主題を含み、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含むコネクションイニシエータフォーマットにおける第3の通信に基づいて、第2のリモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立させる命令を含む。
実施例33は、実施例32の主題を含み、第1の通信および第3の通信は、時分割多重化を介してインターリーブされる。
実施例34は、実施例25の主題を含み、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、第2のローカルCMエンドポイントアドレスにおいて受信される第3の通信に基づいて、第2のリモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立させる命令を含み、第2のリモートDCプロセススレッドおよびローカルDCプロセススレッドは、第2のリモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して通信する。
実施例35は、実施例34の主題を含み、第1の通信および第3の通信は、時分割多重化を介してインターリーブされる。
実施例36は、実施例25の主題を含み、受信バッファおよびローカルCMエンドポイントアドレスは完了キューに位置する。
実施例37は、実施例25の主題を含み、ローカルDCプロセススレッドはアプリケーション層上で実行し、ローカルCMエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
実施例38は命令のセットを含む少なくとも1つの非一時的コンピュータ可読媒体であり、命令は、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、ローカルCMエンドポイントアドレスからリモートCMエンドポイントアドレスに送信するための、コネクションイニシエータフォーマットにおける第1の通信を生成することであって、コネクションイニシエータフォーマットは、ローカルCMアドレスブロックと、ローカルメッセージングアドレスブロックとを含み、第1の通信は、ローカルCMアドレスブロック内のローカルCMエンドポイントアドレスと、ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスとを含む、生成することと、第1の通信に基づいてローカルCMエンドポイントアドレスに受信バッファをポストすることと、受信バッファにおいて、コネクションレスポンダフォーマットの第2の通信を識別することであって、コネクションレスポンダフォーマットは、リモートメッセージングアドレスブロックを含み、第2の通信は、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスを含む、識別することと、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新することと、第1の通信、第2の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立することとを行わせる。
実施例39は、実施例38の主題を含み、リモートDCプロセススレッドおよびローカルDCプロセススレッドはコネクション型フレームワーク内で動作し、第1の通信および第2の通信はコネクションレス型メッシュをトラバースする。
実施例40は、実施例38の主題を含み、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、ローカルDCプロセススレッドの実行に応答して受信バッファをポストさせる命令を含む。
実施例41は、実施例38の主題を含み、プロセッサ回路によって実行されるのに応答して、プロセッサ回路に、ローカルDCプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別させる命令を含む。
実施例42は、実施例38の主題を含み、リモートCMエンドポイントアドレスは、ネームサーバアドレスを含む。
実施例43は、実施例38の主題を含み、第1の通信は、リモートDCプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
実施例44は、実施例38の主題を含み、プロセッサ回路によって実行されると、プロセッサ回路に、第2のローカルCMエンドポイントアドレスから第2のリモートCMエンドポイントアドレスへの第3の通信の送信に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第2の受信バッファをポストさせる命令を含む。
実施例45は、実施例44の主題を含み、第3の通信はコネクションイニシエータフォーマットのものであり、ローカルCMアドレスブロック内の第2のローカルCMエンドポイントアドレスおよびローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む。
実施例46は、実施例45の主題を含み、第1の通信および第3の通信は、時分割多重化を介してインターリーブされる。
実施例47は、実施例38の主題を含み、受信バッファおよびローカルCMエンドポイントアドレスは完了キューに位置する。
実施例48は、実施例38の主題を含み、ローカルDCプロセススレッドはアプリケーション層上で実行し、ローカルCMエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
実施例49はコンピュータ実施方法であり、コンピュータ実施方法は、ローカルCMエンドポイントアドレスに受信バッファをポストすることであって、受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、コネクションイニシエータフォーマットは、リモートCMアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストすることと、受信バッファ内でコネクションイニシエータフォーマットの第1の通信を識別することであって、第1の通信は、リモートCMアドレスブロック内のリモートCMエンドポイントアドレスと、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別することと、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新することと、リモートCMエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第2の通信を生成することであって、コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、第2の通信は、ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む、生成することと、第1の通信、第2の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立することとを含む。
実施例50は、実施例49の主題を含み、リモートDCプロセススレッドおよびローカルDCプロセススレッドはコネクション型フレームワーク内で動作し、第1の通信および第2の通信はコネクションレス型メッシュをトラバースする。
実施例51は、実施例49の主題を含み、ローカルDCプロセススレッドの実行に応答して受信バッファをポストすることを含む。
実施例52は、実施例49の主題を含み、ローカルDCプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別することを含む。
実施例53は、実施例49の主題を含み、第1の通信は、ネームサーバアドレスに基づいて受信バッファに送信される。
実施例54は、実施例49の主題を含み、第2の通信は、リモートDCプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
実施例55は、実施例49の主題を含み、受信バッファ内での第1の通信の識別に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第2の受信バッファをポストすることを含む。
実施例56は、実施例49の主題を含み、別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含むコネクションイニシエータフォーマットにおける第3の通信に基づいて、第2のリモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立することを含む。
実施例57は、実施例56の主題を含み、第1の通信および第3の通信は、時分割多重化を介してインターリーブされる。
実施例58は、実施例49の主題を含み、第2のローカルCMエンドポイントアドレスにおいて受信される第3の通信に基づいて、第2のリモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立することを含み、第2のリモートDCプロセススレッドおよびローカルDCプロセススレッドは、第2のリモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して通信する。
実施例59は、実施例58の主題を含み、第1の通信および第3の通信は、時分割多重化を介してインターリーブされる。
実施例60は、実施例49の主題を含み、受信バッファおよびローカルCMエンドポイントアドレスは完了キューに位置する。
実施例61は、実施例49の主題を含み、ローカルDCプロセススレッドはアプリケーション層上で実行し、ローカルCMエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
実施例62はコンピュータ実施方法であり、コンピュータ実施方法は、ローカルCMエンドポイントアドレスからリモートCMエンドポイントアドレスに送信するための、コネクションイニシエータフォーマットにおける第1の通信を生成することであって、コネクションイニシエータフォーマットは、ローカルCMアドレスブロックと、ローカルメッセージングアドレスブロックとを含み、第1の通信は、ローカルCMアドレスブロック内のローカルCMエンドポイントアドレスと、ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスとを含む、生成することと、第1の通信に基づいてローカルCMエンドポイントアドレスに受信バッファをポストすることと、受信バッファにおいて、コネクションレスポンダフォーマットの第2の通信を識別することであって、コネクションレスポンダフォーマットは、リモートメッセージングアドレスブロックを含み、第2の通信は、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスを含む、識別することと、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新することと、第1の通信、第2の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立することとを含む。
実施例63は、実施例62の主題を含み、リモートDCプロセススレッドおよびローカルDCプロセススレッドはコネクション型フレームワーク内で動作し、第1の通信および第2の通信はコネクションレス型メッシュをトラバースする。
実施例64は、実施例62の主題を含み、ローカルDCプロセススレッドの実行に応答して受信バッファをポストすることを含む。
実施例65は、実施例62の主題を含み、ローカルDCプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別することを含む。
実施例66は、実施例62の主題を含み、リモートCMエンドポイントアドレスは、ネームサーバアドレスを含む。
実施例67は、実施例62の主題を含み、第1の通信は、リモートDCプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
実施例68は、実施例62の主題を含み、第2のローカルCMエンドポイントアドレスから第2のリモートCMエンドポイントアドレスへの第3の通信の送信に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第2の受信バッファをポストすることを含む。
実施例69は、実施例68の主題を含み、第3の通信はコネクションイニシエータフォーマットのものであり、ローカルCMアドレスブロック内の第2のローカルCMエンドポイントアドレスおよびローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む。
実施例70は、実施例69の主題を含み、第1の通信および第3の通信は、時分割多重化を介してインターリーブされる。
実施例71は、実施例62の主題を含み、受信バッファおよびローカルCMエンドポイントアドレスは完了キューに位置する。
実施例72は、実施例62の主題を含み、ローカルDCプロセススレッドはアプリケーション層上で実行し、ローカルCMエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
実施例73は装置であり、装置は、ローカルCMエンドポイントアドレスに受信バッファをポストするための手段であって、受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、コネクションイニシエータフォーマットは、リモートCMアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストするための手段と、受信バッファ内でコネクションイニシエータフォーマットの第1の通信を識別するための手段であって、第1の通信は、リモートCMアドレスブロック内のリモートCMエンドポイントアドレスと、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別するための手段と、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新するための手段と、リモートCMエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第2の通信を生成するための手段であって、コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、第2の通信は、ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む、生成するための手段と、第1の通信、第2の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立するための手段とを備える。
実施例74は、実施例73の主題を含み、リモートDCプロセススレッドおよびローカルDCプロセススレッドはコネクション型フレームワーク内で動作し、第1の通信および第2の通信はコネクションレス型メッシュをトラバースする。
実施例75は、実施例73の主題を含み、ローカルDCプロセススレッドの実行に応答して受信バッファをポストするための手段を備える。
実施例76は、実施例73の主題を含み、ローカルDCプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別するための手段を備える。
実施例77は、実施例73の主題を含み、第1の通信は、ネームサーバアドレスに基づいて受信バッファに送信される。
実施例78は、実施例73の主題を含み、第2の通信は、リモートDCプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
実施例79は、実施例73の主題を含み、受信バッファ内での第1の通信の識別に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第2の受信バッファをポストするための手段を備える。
実施例80は、実施例73の主題を含み、別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含むコネクションイニシエータフォーマットにおける第3の通信に基づいて、第2のリモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立するための手段を備える。
実施例81は、実施例80の主題を含み、第1の通信および第3の通信は、時分割多重化を介してインターリーブされる。
実施例82は、実施例73の主題を含み、第2のローカルCMエンドポイントアドレスにおいて受信される第3の通信に基づいて、第2のリモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立するための手段を備え、第2のリモートDCプロセススレッドおよびローカルDCプロセススレッドは、第2のリモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して通信する。
実施例83は、実施例82の主題を含み、第1の通信および第3の通信は、時分割多重化を介してインターリーブされる。
実施例84は、実施例73の主題を含み、受信バッファおよびローカルCMエンドポイントアドレスは完了キューに位置する。
実施例85は、実施例73の主題を含み、ローカルDCプロセススレッドはアプリケーション層上で実行し、ローカルCMエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
実施例86は装置であり、装置は、ローカルCMエンドポイントアドレスからリモートCMエンドポイントアドレスに送信するための、コネクションイニシエータフォーマットにおける第1の通信を生成するための手段であって、コネクションイニシエータフォーマットは、ローカルCMアドレスブロックと、ローカルメッセージングアドレスブロックとを含み、第1の通信は、ローカルCMアドレスブロック内のローカルCMエンドポイントアドレスと、ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスとを含む、生成するための手段と、第1の通信に基づいてローカルCMエンドポイントアドレスに受信バッファをポストするための手段と、受信バッファにおいて、コネクションレスポンダフォーマットの第2の通信を識別するための手段であって、コネクションレスポンダフォーマットは、リモートメッセージングアドレスブロックを含み、第2の通信は、リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスを含む、識別するための手段と、リモートメッセージエンドポイントアドレスとの通信を可能にするために、リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新するための手段と、第1の通信、第2の通信、およびアドレスマッピングに基づいて、リモートメッセージングエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスを介して、リモートDCプロセススレッドとローカルDCプロセススレッドとの間の通信を確立するための手段とを備える。
実施例87は、実施例86の主題を含み、リモートDCプロセススレッドおよびローカルDCプロセススレッドはコネクション型フレームワーク内で動作し、第1の通信および第2の通信はコネクションレス型メッシュをトラバースする。
実施例88は、実施例86の主題を含み、ローカルDCプロセススレッドの実行に応答して受信バッファをポストするための手段を備える。
実施例89は、実施例86の主題を含み、ローカルDCプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて受信バッファ内の通信を識別するための手段を備える。
実施例90は、実施例86の主題を含み、リモートCMエンドポイントアドレスは、ネームサーバアドレスを含む。
実施例91は、実施例86の主題を含み、第1の通信は、リモートDCプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される。
実施例92は、実施例86の主題を含み、第2のローカルCMエンドポイントアドレスから第2のリモートCMエンドポイントアドレスへの第3の通信の送信に応答して、コネクションイニシエータフォーマットにおける別の通信のために、第2の受信バッファをポストするための手段を備える。
実施例93は、実施例92の主題を含み、第3の通信はコネクションイニシエータフォーマットのものであり、ローカルCMアドレスブロック内の第2のローカルCMエンドポイントアドレスおよびローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む。
実施例94は、実施例93の主題を含み、第1の通信および第3の通信は、時分割多重化を介してインターリーブされる。
実施例95は、実施例86の主題を含み、受信バッファおよびローカルCMエンドポイントアドレスは完了キューに位置する。
実施例96は、実施例86の主題を含み、ローカルDCプロセススレッドはアプリケーション層上で実行し、ローカルCMエンドポイントアドレスおよびローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる。
例示的な実施形態の前述の説明は、例示および説明を目的として提示されている。網羅的であること、または本開示を開示された正確な形態に限定することは意図されていない。本開示に照らして、多くの修正形態および変形形態が可能である。本開示の範囲は、この詳細な説明によってではなく、むしろ添付の特許請求の範囲によって限定されることが意図されている。本願の優先権を主張する将来出願される出願は、開示されている主題を異なる方法で特許請求することができ、概して、本明細書において様々に開示されるかまたは他の様態で明示されるような1つまたは複数の限定のいずれかのセットを含む。
他の可能な項目
(項目1)
装置であって、
プロセッサと、
命令を含むメモリと
を備え、
上記命令は、上記プロセッサによって実行されると、上記プロセッサに、
ローカルコネクションマネージャ(CM)エンドポイントアドレスに受信バッファをポストすることであって、上記受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、上記コネクションイニシエータフォーマットは、リモートCMアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストすることと、
上記受信バッファ内で上記コネクションイニシエータフォーマットの第1の通信を識別することであって、上記第1の通信は、上記リモートCMアドレスブロック内のリモートCMエンドポイントアドレスと、上記リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別することと、
上記リモートCMエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第2の通信を生成することであって、上記コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、上記第2の通信は、上記ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む、生成することと、
上記第1の通信および上記第2の通信に基づいて、上記リモートメッセージングエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスを介して、リモート分散コンピューティング(DC)プロセススレッドとローカルDCプロセススレッドとの間の通信を確立することと
を行わせる、装置。
(項目2)
上記メモリは、上記プロセッサによって実行されると、上記プロセッサに、
上記リモートメッセージエンドポイントアドレスとの通信を可能にするために、上記リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新させることと、
上記第1の通信、上記第2の通信、および上記アドレスマッピングに基づいて上記リモートメッセージングエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスを介して、上記リモートDCプロセススレッドと上記ローカルDCプロセススレッドとの間の通信を確立することと
を行わせる命令を含む、項目1に記載の装置。
(項目3)
上記リモートDCプロセススレッドおよび上記ローカルDCプロセススレッドはコネクション型フレームワーク内で動作し、上記第1の通信および上記第2の通信はコネクションレス型メッシュをトラバースする、項目1に記載の装置。
(項目4)
上記メモリは、上記プロセッサによって実行されると、上記プロセッサに、上記ローカルDCプロセススレッドの実行に応答して上記受信バッファをポストさせる命令を含む、項目1に記載の装置。
(項目5)
上記メモリは、上記プロセッサによって実行されると、上記プロセッサに、上記ローカルDCプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて上記受信バッファ内の通信を識別させる命令を含む、項目1に記載の装置。
(項目6)
上記第2の通信は、上記リモートDCプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される、項目1に記載の装置。
(項目7)
上記メモリは、上記プロセッサによって実行されると、上記プロセッサに、上記受信バッファ内での上記第1の通信の識別に応答して、上記コネクションイニシエータフォーマットにおける別の通信のために、第2の受信バッファをポストさせる命令を含む、項目1に記載の装置。
(項目8)
上記メモリは、上記プロセッサによって実行されると、上記プロセッサに、別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含む上記コネクションイニシエータフォーマットにおける第3の通信に基づいて、第2のリモートDCプロセススレッドと上記ローカルDCプロセススレッドとの間の通信を確立させる命令を含む、項目1に記載の装置。
(項目9)
上記第1の通信および上記第3の通信は、時分割多重化を介してインターリーブされる、項目8に記載の装置。
(項目10)
上記メモリは、上記プロセッサによって実行されると、上記プロセッサに、第2のローカルCMエンドポイントアドレスにおいて受信される第3の通信に基づいて、第2のリモートDCプロセススレッドと上記ローカルDCプロセススレッドとの間の通信を確立させる命令を含み、上記第2のリモートDCプロセススレッドおよび上記ローカルDCプロセススレッドは、第2のリモートメッセージングエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスを介して通信する、項目1に記載の装置。
(項目11)
上記第1の通信および上記第3の通信は、時分割多重化を介してインターリーブされる、項目10に記載の装置。
(項目12)
上記受信バッファおよび上記ローカルCMエンドポイントアドレスは完了キューに位置する、項目1に記載の装置。
(項目13)
上記ローカルDCプロセススレッドはアプリケーション層上で実行し、上記ローカルCMエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる、項目1に記載の装置。
(項目14)
命令のセットを含む少なくとも1つの非一時的コンピュータ可読媒体であり、上記命令は、プロセッサ回路によって実行されるのに応答して、上記プロセッサ回路に、
ローカルコネクションマネージャ(CM)エンドポイントアドレスからリモートCMエンドポイントアドレスに送信するための、コネクションイニシエータフォーマットにおける第1の通信を生成することであって、上記コネクションイニシエータフォーマットは、ローカルCMアドレスブロックと、ローカルメッセージングアドレスブロックとを含み、上記第1の通信は、上記ローカルCMアドレスブロック内の上記ローカルCMエンドポイントアドレスと、上記ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスとを含む、生成することと、
上記第1の通信に基づいて上記ローカルCMエンドポイントアドレスに受信バッファをポストすることと、
上記受信バッファにおいて、コネクションレスポンダフォーマットの第2の通信を識別することであって、上記コネクションレスポンダフォーマットは、リモートメッセージングアドレスブロックを含み、上記第2の通信は、上記リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスを含む、識別することと、
上記第1の通信および上記第2の通信に基づいて、上記リモートメッセージングエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスを介して、リモート分散コンピューティング(DC)プロセススレッドとローカルDCプロセススレッドとの間の通信を確立することと
を行わせる、少なくとも1つの非一時的コンピュータ可読媒体。
(項目15)
上記プロセッサ回路によって実行されると、上記プロセッサ回路に、
上記リモートメッセージエンドポイントアドレスとの通信を可能にするために、上記リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新させることと、
上記第1の通信、上記第2の通信、および上記アドレスマッピングに基づいて上記リモートメッセージングエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスを介して、上記リモートDCプロセススレッドと上記ローカルDCプロセススレッドとの間の通信を確立することと
を行わせる命令を含む、項目14に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目16)
上記プロセッサ回路によって実行されるのに応答して、上記プロセッサ回路に、上記ローカルDCプロセススレッドの実行に応答して上記受信バッファをポストさせる命令を含む、項目14に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目17)
上記プロセッサ回路によって実行されるのに応答して、上記プロセッサ回路に、上記ローカルDCプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて上記受信バッファ内の通信を識別させる命令を含む、項目14に記憶の少なくとも1つの非一時的コンピュータ可読媒体。
(項目18)
上記リモートCMエンドポイントアドレスは、ネームサーバアドレスを含む、項目14に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目19)
上記第1の通信は、上記リモートDCプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される、項目14に記載の少なくとも1つの非一時的コンピュータ可読媒体。
(項目20)
コンピュータ実施方法であって、
ローカルコネクションマネージャ(CM)エンドポイントアドレスからリモートCMエンドポイントアドレスに送信するための、コネクションイニシエータフォーマットにおける第1の通信を生成することであって、上記コネクションイニシエータフォーマットは、ローカルCMアドレスブロックと、ローカルメッセージングアドレスブロックとを含み、上記第1の通信は、上記ローカルCMアドレスブロック内の上記ローカルCMエンドポイントアドレスと、上記ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスとを含む、生成することと、
上記第1の通信に基づいて上記ローカルCMエンドポイントアドレスに受信バッファをポストすることと、
上記受信バッファにおいて、コネクションレスポンダフォーマットの第2の通信を識別することであって、上記コネクションレスポンダフォーマットは、リモートメッセージングアドレスブロックを含み、上記第2の通信は、上記リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスを含む、識別することと、
上記第1の通信および上記第2の通信に基づいて、上記リモートメッセージングエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスを介して、リモート分散コンピューティング(DC)プロセススレッドとローカルDCプロセススレッドとの間の通信を確立することと
を含む、コンピュータ実施方法。
(項目21)
第2のローカルCMエンドポイントアドレスから第2のリモートCMエンドポイントアドレスへの第3の通信の送信に応答して、上記コネクションイニシエータフォーマットにおける別の通信のために、第2の受信バッファをポストすることを含む、項目20に記載のコンピュータ実施方法。
(項目22)
上記第3の通信は上記コネクションイニシエータフォーマットのものであり、上記ローカルCMアドレスブロック内の上記第2のローカルCMエンドポイントアドレスおよび上記ローカルメッセージングアドレスブロック内の上記ローカルメッセージングエンドポイントアドレスを含む、項目21に記載のコンピュータ実施方法。
(項目23)
上記第1の通信および上記第3の通信は、時分割多重化を介してインターリーブされる、項目22に記載のコンピュータ実施方法。
(項目24)
上記リモートメッセージエンドポイントアドレスとの通信を可能にするために、上記リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新させることと、
上記第1の通信、上記第2の通信、および上記アドレスマッピングに基づいて上記リモートメッセージングエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスを介して、上記リモートDCプロセススレッドと上記ローカルDCプロセススレッドとの間の通信を確立することと
を含む、項目20に記載のコンピュータ実施方法。
(項目25)
上記ローカルDCプロセススレッドはアプリケーション層上で実行し、上記ローカルCMエンドポイントアドレスおよび上記ローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる、項目20に記載のコンピュータ実施方法。

Claims (26)

  1. 装置であって
    プロセッサと、
    命令を含むメモリと
    を備え、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
    ローカルコネクションマネージャエンドポイントアドレス(ローカルCMエンドポイントアドレス)に受信バッファをポストすることであって、前記受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、前記コネクションイニシエータフォーマットは、リモートCMアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストすることと、
    前記受信バッファ内で前記コネクションイニシエータフォーマットの第1の通信を識別することであって、前記第1の通信は、前記リモートCMアドレスブロック内のリモートCMエンドポイントアドレスと、前記リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別することと、
    前記リモートメッセージングエンドポイントアドレスとの通信を可能にするために、前記リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新することと、
    前記リモートCMエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第2の通信を生成することであって、前記コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、前記第2の通信は、前記ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む、生成することと、
    前記第1の通信、前記第2の通信、および前記アドレスマッピングに基づいて、前記リモートメッセージングエンドポイントアドレスおよび前記ローカルメッセージングエンドポイントアドレスを介して、リモート分散コンピューティングプロセススレッド(リモートDCプロセススレッド)とローカルDCプロセススレッドとの間の通信を確立することと
    を行わせる、装置。
  2. 前記リモートDCプロセススレッドおよび前記ローカルDCプロセススレッドはコネクション型フレームワーク内で動作し、前記第1の通信および前記第2の通信はコネクションレス型メッシュをトラバースする、請求項1に記載の装置。
  3. 前記メモリは、前記プロセッサによって実行されると、前記プロセッサに、前記ローカルDCプロセススレッドの実行に応答して前記受信バッファをポストさせる命令を含む、請求項1または2に記載の装置。
  4. 前記メモリは、前記プロセッサによって実行されると、前記プロセッサに、前記ローカルDCプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて前記受信バッファ内の通信を識別させる命令を含む、請求項1~3のいずれか一項に記載の装置。
  5. 前記第1の通信は、メッセージキューサーバアドレスに基づいて前記受信バッファに送信される、請求項1~4のいずれか一項に記載の装置。
  6. 前記第2の通信は、前記リモートDCプロセススレッドの実行に応答してポストされているリモート受信バッファを介して受信される、請求項1~5のいずれか一項に記載の装置。
  7. 前記メモリは、前記プロセッサによって実行されると、前記プロセッサに、前記受信バッファ内での前記第1の通信の識別に応答して、前記コネクションイニシエータフォーマットにおける別の通信のために、第2の受信バッファをポストさせる命令を含む、請求項1~6のいずれか一項に記載の装置。
  8. 前記メモリは、前記プロセッサによって実行されると、前記プロセッサに、別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含む前記コネクションイニシエータフォーマットにおける第3の通信に基づいて、第2のリモートDCプロセススレッドと前記ローカルDCプロセススレッドとの間の通信を確立させる命令を含む、請求項1~7のいずれか一項に記載の装置。
  9. 前記第1の通信および前記第3の通信は、時分割多重化を介してインターリーブされる、請求項8に記載の装置。
  10. 前記メモリは、前記プロセッサによって実行されると、前記プロセッサに、第2のローカルCMエンドポイントアドレスにおいて受信される第3の通信に基づいて、第2のリモートDCプロセススレッドと前記ローカルDCプロセススレッドとの間の通信を確立させる命令を含み、前記第2のリモートDCプロセススレッドおよび前記ローカルDCプロセススレッドは、第2のリモートメッセージングエンドポイントアドレスおよび前記ローカルメッセージングエンドポイントアドレスを介して通信する、請求項1~9のいずれか一項に記載の装置。
  11. 前記第1の通信および前記第3の通信は、時分割多重化を介してインターリーブされる、請求項10に記載の装置。
  12. 前記受信バッファおよび前記ローカルCMエンドポイントアドレスは完了キューに位置し、前記完了キューは、データの送受信に使用される、請求項1~11のいずれか一項に記載の装置。
  13. 前記ローカルDCプロセススレッドはアプリケーション層上で実行し、前記ローカルCMエンドポイントアドレスおよび前記ローカルメッセージングエンドポイントアドレスはトランスポート層に関連付けられる、請求項1~12のいずれか一項に記載の装置。
  14. プログラムであって、プロセッサ回路に、
    ローカルコネクションマネージャエンドポイントアドレス(ローカルCMエンドポイントアドレス)に受信バッファをポストする手順であって、前記受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、前記コネクションイニシエータフォーマットは、リモートCMアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストする手順と、
    前記受信バッファ内で前記コネクションイニシエータフォーマットの第1の通信を識別する手順であって、前記第1の通信は、前記リモートCMアドレスブロック内のリモートCMエンドポイントアドレスと、前記リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別する手順と、
    前記リモートメッセージングエンドポイントアドレスとの通信を可能にするために、前記リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新する手順と、
    前記リモートCMエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第2の通信を生成する手順であって、前記コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、前記第2の通信は、前記ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む、生成する手順と、
    前記第1の通信、前記第2の通信、および前記アドレスマッピングに基づいて、前記リモートメッセージングエンドポイントアドレスおよび前記ローカルメッセージングエンドポイントアドレスを介して、リモート分散コンピューティングプロセススレッド(リモートDCプロセススレッド)とローカルDCプロセススレッドとの間の通信を確立する手順と
    を実行させる、プログラム。
  15. 前記プロセッサ回路に、前記ローカルDCプロセススレッドの実行に応答して前記受信バッファをポストする手順を実行させる、請求項14に記載のプログラム。
  16. 前記プロセッサ回路に、前記ローカルDCプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて前記受信バッファ内の通信を識別する手順を実行させる、請求項14または15に記載のプログラム。
  17. 前記プロセッサ回路に、前記受信バッファ内での前記第1の通信の識別に応答して、前記コネクションイニシエータフォーマットにおける別の通信のために、第2の受信バッファをポストする手順を実行させる、請求項14~16のいずれか一項に記載のプログラム。
  18. 前記プロセッサ回路に、別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含む前記コネクションイニシエータフォーマットにおける第3の通信に基づいて、第2のリモートDCプロセススレッドと前記ローカルDCプロセススレッドとの間の通信を確立する手順を実行させる、請求項14~17のいずれか一項に記載のプログラム。
  19. 前記プロセッサ回路に、第2のローカルCMエンドポイントアドレスにおいて受信される第3の通信に基づいて、第2のリモートDCプロセススレッドと前記ローカルDCプロセススレッドとの間の通信を確立する手順を実行させ、前記第2のリモートDCプロセススレッドおよび前記ローカルDCプロセススレッドは、第2のリモートメッセージングエンドポイントアドレスおよび前記ローカルメッセージングエンドポイントアドレスを介して通信する、請求項14~18のいずれか一項に記載のプログラム。
  20. 請求項14から19のいずれか一項に記載のプログラムを記憶するコンピュータ可読記憶媒体。
  21. 装置であって、
    ローカルコネクションマネージャエンドポイントアドレス(ローカルCMエンドポイントアドレス)に受信バッファをポストするための手段であって、前記受信バッファは、コネクションイニシエータフォーマットにおける通信のためのものであり、前記コネクションイニシエータフォーマットは、リモートCMアドレスブロックおよびリモートメッセージングアドレスブロックを含む、ポストするための手段と、
    前記受信バッファ内で前記コネクションイニシエータフォーマットの第1の通信を識別するための手段であって、前記第1の通信は、前記リモートCMアドレスブロック内のリモートCMエンドポイントアドレスと、前記リモートメッセージングアドレスブロック内のリモートメッセージングエンドポイントアドレスとを含む、識別するための手段と、
    前記リモートメッセージングエンドポイントアドレスとの通信を可能にするために、前記リモートメッセージングエンドポイントアドレスによってアドレスマッピングを更新するための手段と、
    前記リモートCMエンドポイントアドレスに送信するための、コネクションレスポンダフォーマットにおける第2の通信を生成するための手段であって、前記コネクションレスポンダフォーマットは、ローカルメッセージングアドレスブロックを含み、前記第2の通信は、前記ローカルメッセージングアドレスブロック内のローカルメッセージングエンドポイントアドレスを含む、生成するための手段と、
    前記第1の通信、前記第2の通信、および前記アドレスマッピングに基づいて、前記リモートメッセージングエンドポイントアドレスおよび前記ローカルメッセージングエンドポイントアドレスを介して、リモート分散コンピューティングプロセススレッド(リモートDCプロセススレッド)とローカルDCプロセススレッドとの間の通信を確立するための手段と
    を備える、装置。
  22. 前記ローカルDCプロセススレッドの実行に応答して前記受信バッファをポストするための手段を備える、請求項21に記載の装置。
  23. 前記ローカルDCプロセススレッドの実行を介したキューステータスインジケータの監視に基づいて前記受信バッファ内の通信を識別するための手段を備える、請求項21または22に記載の装置。
  24. 前記受信バッファ内での前記第1の通信の識別に応答して、前記コネクションイニシエータフォーマットにおける別の通信のために、第2の受信バッファをポストするための手段を備える、請求項21~23のいずれか一項に記載の装置。
  25. 別のリモートメッセージングエンドポイントアドレスおよび別のリモートメッセージングエンドポイントアドレスを含む前記コネクションイニシエータフォーマットにおける第3の通信に基づいて、第2のリモートDCプロセススレッドと前記ローカルDCプロセススレッドとの間の通信を確立するための手段を備える、請求項21~24のいずれか一項に記載の装置。
  26. 第2のローカルCMエンドポイントアドレスにおいて受信される第3の通信に基づいて、第2のリモートDCプロセススレッドと前記ローカルDCプロセススレッドとの間の通信を確立するための手段を備え、前記第2のリモートDCプロセススレッドおよび前記ローカルDCプロセススレッドは、第2のリモートメッセージングエンドポイントアドレスおよび前記ローカルメッセージングエンドポイントアドレスを介して通信する、請求項21~25のいずれか一項に記載の装置。
JP2019126665A 2018-09-27 2019-07-08 装置、及びプログラム Active JP7428458B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/143,954 2018-09-27
US16/143,954 US10749913B2 (en) 2018-09-27 2018-09-27 Techniques for multiply-connected messaging endpoints

Publications (2)

Publication Number Publication Date
JP2020053014A JP2020053014A (ja) 2020-04-02
JP7428458B2 true JP7428458B2 (ja) 2024-02-06

Family

ID=65231862

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019126665A Active JP7428458B2 (ja) 2018-09-27 2019-07-08 装置、及びプログラム

Country Status (5)

Country Link
US (1) US10749913B2 (ja)
EP (1) EP3629174A1 (ja)
JP (1) JP7428458B2 (ja)
KR (1) KR20200035853A (ja)
CN (1) CN110955533A (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001524290A (ja) 1997-05-06 2001-11-27 インターメック テクノロジーズ コーポレイション 設定可能なタイマを使用するハンドヘルド装置で、低信頼度のトランスポート層を利用した高信頼性のデータ処理方法及びその装置
JP2007531344A (ja) 2003-07-15 2007-11-01 テレフオンアクチーボラゲット エル エム エリクソン(パブル) パケット交換通信ネットワークにおけるコネクション指向の転送のための装置
JP2008515067A (ja) 2004-09-29 2008-05-08 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 ピア・ツー・ピア接続の確立方法
US20170187496A1 (en) 2015-12-29 2017-06-29 Amazon Technologies, Inc. Reliable, out-of-order transmission of packets
JP2017518651A (ja) 2014-03-13 2017-07-06 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 無線通信接続の確立方法及びシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6856619B1 (en) * 2000-03-07 2005-02-15 Sun Microsystems, Inc. Computer network controller
US7543067B2 (en) * 2001-08-01 2009-06-02 Canon Kabushiki Kaisha Flexible secure network data transfer and messaging
CN102457537B (zh) 2010-10-19 2015-11-25 阿里巴巴集团控股有限公司 一种传输控制协议的通信方法及服务器
US20160072908A1 (en) * 2014-09-09 2016-03-10 James Dinan Technologies for proxy-based multi-threaded message passing communication
US20180183695A1 (en) * 2016-12-28 2018-06-28 Intel Corporation Performance monitoring

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001524290A (ja) 1997-05-06 2001-11-27 インターメック テクノロジーズ コーポレイション 設定可能なタイマを使用するハンドヘルド装置で、低信頼度のトランスポート層を利用した高信頼性のデータ処理方法及びその装置
JP2007531344A (ja) 2003-07-15 2007-11-01 テレフオンアクチーボラゲット エル エム エリクソン(パブル) パケット交換通信ネットワークにおけるコネクション指向の転送のための装置
JP2008515067A (ja) 2004-09-29 2008-05-08 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 ピア・ツー・ピア接続の確立方法
JP2017518651A (ja) 2014-03-13 2017-07-06 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 無線通信接続の確立方法及びシステム
US20170187496A1 (en) 2015-12-29 2017-06-29 Amazon Technologies, Inc. Reliable, out-of-order transmission of packets

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
M. J. Rashti et al.,"iWARP redefined: Scalable connectionless communication over high-speed Ethernet",2010 International Conference on High Performance Computing,米国,IEEE,2010年12月19日,pp. 1-10,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5713192

Also Published As

Publication number Publication date
CN110955533A (zh) 2020-04-03
JP2020053014A (ja) 2020-04-02
US20190044982A1 (en) 2019-02-07
EP3629174A1 (en) 2020-04-01
KR20200035853A (ko) 2020-04-06
US10749913B2 (en) 2020-08-18

Similar Documents

Publication Publication Date Title
CN110892380B (zh) 用于流处理的数据处理单元
US10917344B2 (en) Connectionless reliable transport
US10673772B2 (en) Connectionless transport service
US20220318184A1 (en) Virtual rdma switching for containerized applications
US9985904B2 (en) Reliable, out-of-order transmission of packets
US10135726B2 (en) Virtualization port layer including physical switch port and logical switch port
CN115210693A (zh) 具有可预测时延的存储事务
US8010673B2 (en) Transitioning network traffic between logical partitions in one or more data processing systems
US9396101B2 (en) Shared physical memory protocol
US9542214B2 (en) Operating system virtualization for host channel adapters
US10901725B2 (en) Upgrade of port firmware and driver software for a target device
US10942729B2 (en) Upgrade of firmware in an interface hardware of a device in association with the upgrade of driver software for the device
US8539089B2 (en) System and method for vertical perimeter protection
US20150348177A1 (en) Managing lease transactions in distributed systems
JP7428458B2 (ja) 装置、及びプログラム
KR20130099993A (ko) 멀티미디어 멀티-파티 피어링(m2p2)을 위한 시스템 및 방법
US10284501B2 (en) Technologies for multi-core wireless network data transmission
US9965407B2 (en) Task management
US10176144B2 (en) Piggybacking target buffer address for next RDMA operation in current acknowledgement message
US10367883B2 (en) Computing resource management using dedicated leadership pool
WO2022218434A1 (zh) 一种计算节点管理系统及针对多个计算节点的管理方法
US20180181440A1 (en) Resource allocation system, apparatus allocation controller and apparatus recognizing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230925

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240122

R150 Certificate of patent or registration of utility model

Ref document number: 7428458

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150