JP2007193812A - ホスト間通信のためのシステム及び方法 - Google Patents

ホスト間通信のためのシステム及び方法 Download PDF

Info

Publication number
JP2007193812A
JP2007193812A JP2007009807A JP2007009807A JP2007193812A JP 2007193812 A JP2007193812 A JP 2007193812A JP 2007009807 A JP2007009807 A JP 2007009807A JP 2007009807 A JP2007009807 A JP 2007009807A JP 2007193812 A JP2007193812 A JP 2007193812A
Authority
JP
Japan
Prior art keywords
consumer application
consumer
host
memory
resource
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.)
Pending
Application number
JP2007009807A
Other languages
English (en)
Inventor
Machulsky Zorik
ゾリク・マヒュルスキー
Julian Satran
ジュリアン・サトラン
Lee Shalev
リー・シャレフ
Ilan Shimony
イラン・シモニー
Ben-Yehuda Shmuel
シュムエル・ベン・ユーダ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007193812A publication Critical patent/JP2007193812A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/104Grouping of entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 ホスト間通信のためのシステム及び方法を提供すること。
【解決手段】 本発明では、ホスト間通信のためのシステム及び方法が提供される。システムは、少なくとも1つのコンシューマ・アプリケーションの第1ホストを含むことができ、ホストは、コンシューマが第2ホストに連結された第2コンシューマと通信できるようにするために配置することができる。システムは、第1ホストと第2ホストを接続するために配置されたネットワークと、第1ホストと第2ホストの間の通信プロトコルを制御して第1コンシューマ及び第2コンシューマが互いに通信できるようにするために配置されたホスト間デバイス・コントローラとを更に含むことができる。
【選択図】 図1

Description

本発明は、一般的には、コンピュータ及びプロセッサのアーキテクチャの分野に関する。具体的には、本発明はホスト間通信のためのシステム及び方法に関する。
コンピュータ科学における多くの分野のなかでも、高性能コンピューティング(HPC)アプリケーション及びデータベースの分野において、メッセージの受け渡し及びリモート・ダイレクト・メモリ・アクセスのための高速で効果的かつ安全な機構が必要である。HPCは、スーパーコンピュータ及びスーパーコンピュータで稼働するソフトウェアの開発に集中して取り組むコンピュータ科学の一部門である。この部門の主な分野は、例えば、プログラムを細かいコードに分割して、各々のコードを別個の処理ノードによって同時に実行できるようにする並列処理アルゴリズム及び並列処理ソフトウェアの開発である。
例えば、インテル社(カリフォルニア州サンタ・クララ所在)とカーネギーメロン大学の合同で開発されたiWARPマルチプロセッシング・スーパーコンピュータ等の幾つかの技術は、こうした必要性に対する解決策の提供を試みる。しかしながら、現行の解決策は、一般的には、とりわけこうしたシステム及び技術のホスト又はコンシューマの安全性及びメモリ保護に関連する欠点に悩ませられる。
例えば、ホストのメモリ領域及びメッセージ・キューを保護するために提案される解決策は、メモリ・タグを利用することによるものである。しかしながら、メモリ・タグは、種々の攻撃において、容易に偽造され再利用され、結果としてホスト・メモリに危害を与える可能性がある。こうした問題は、多数のオペレーティング・システムが同じメモリを共有する仮想化システムにおいては、なおさら重大である。
本発明の実施形態は、ホスト間通信のためのシステム及び方法を提供することができる。
本発明の第1の態様によれば、ホスト間通信のためのシステムが提供される。システムは、少なくとも1つのコンシューマ・アプリケーションの第1ホストを含むことができ、ホストは、コンシューマが第2ホストに連結された第2コンシューマと通信できるようにするために配置することができる。システムは、第1ホストと第2ホストを接続するために配置されたネットワークと、第1ホストと第2ホストの間の通信プロトコルを制御して第1コンシューマ及び第2コンシューマが互いに通信できるようにするために配置されたホスト間デバイス・コントローラとを更に含むことができる。
本発明の第2の態様によれば、第1ホスト上に設置された第1コンシューマ・アプリケーションと第2ホスト上に設置された第2コンシューマ・アプリケーションとの間の通信を確立するための、コンピュータで実行される方法が提供される。この方法は、第1コンシューマ・アプリケーションの仮想デバイス上に、第1コンシューマ・アプリケーションのために匿名の接続リソース割り当てを作成するステップと、仮想デバイス上での動作の実行を可能にする第1のタイプからのリソース資格証明を第1コンシューマ・アプリケーションに付与するステップと、第2コンシューマ・アプリケーションから接続要求を受信したとき、第1コンシューマ・アプリケーションのポリシーに基づいて命令を第2コンシューマ・アプリケーションに送信するステップを含むことができる。
本発明の第3の態様によれば、第2ホスト上に設置された第2コンシューマ・アプリケーションから前述の第1メモリ領域への読取り及び書込みリモート・ダイレクト・メモリ・アクセス(RDMA)動作のために、第1ホスト上に設置された第1コンシューマ・アプリケーションの第1メモリ領域を公示する方法が提供される。
この方法は、第1メモリ領域を公示するために第1のタイプからのIO要求をホスト間デバイス・コントローラへ送信するステップと、第1メモリ領域のメモリ・ウィンドウ資格証明(CAPw)を生成するステップと、IO要求及びCAPwをホスト間デバイス・コントローラ上に設置された第1コンシューマ・アプリケーションの仮想デバイスに送信するステップとを含むことができる。この方法は、前述のCAPwと連結された第1仮想デバイス上にメモリ領域リソースを作成するステップと、第1メモリ領域リソースにアクセスできるようにする装置資格証明を生成するステップと、装置資格証明を第2コンシューマ・アプリケーションに送信するステップとを更に含むことができる。
本発明の実施形態を、例示としてのみ、添付の図面を参照してここで説明する。
概説
ここで、本発明の実施形態による、ホスト間通信のためのシステム100の論理構造の概略ブロック図である図1を参照する。下記の詳細な説明において、「コンシューマ」という用語は、IO装置又は別のコンシューマにアクセスすることを許可されるオペレーティング・システム/パーティション、処理ノード、アプリケーション等を説明するために用いられる。
システム100は、例えばホストA10、ホストB20及びホストC30等のホストを含むことができ、それらは、ネットワーク40を通じて、互いに、及び外部システムと接続することができ、かつ、ホスト間デバイス・コントローラ50にも接続することができる。特定のアプリケーションに応じて、ネットワーク40は、例えば、インフィニバンド高速直列コンピュータ・バス、ギガビット・イーサネット、Myricom Inc(カリフォルニア州アルカディア所在)が開発したMyrinet(登録商標)ネットワークのような高速ローカル・エリア・ネットワーク・システム、又は何か他の種類の高速相互接続ネットワーク等とすることができる。
コンシューマA12、B22、及びC32は、それぞれホストA、B及びCの一部とすることができる。図1に示されるように、ホストは、ホストの一部であるコンシューマと連結されるホスト・ゲートウェイ(HG)によって定められる。例えば、ホストA10は、HG A14と連結することができるコンシューマ12(A乃至Z)を含むことができる。HG A、B及びCは、暗号形式で署名し、例えば、HG A14と連結可能なメモリ・ユニット16等のHGと連結されるメモリ・ユニットへの伝達を意図されたデータの機能資格証明を検証することができるということに注目するべきである。
メモリ・ユニット16、26及び36は、各々のHGと論理的に連結される。各々のメモリ・ユニットは、コンシューマ・アプリケーションと連結される、より小さいメモリ・セクション(図示せず)を含むことができる。
ホスト間デバイス・コントローラ50は、システム100の種々のホスト間の通信プロトコルを制御することができる。装置50をホスト10、20及び30で共用して、コンシューマ・アプリケーションを互いに通信可能にすることができる。図1に示されるように、システム100において、装置50を独立したコンポーネントとして実装することができるが、しかし、装置50を、各々のHGの一部として、又は各々のホスト内の別個のコンポーネントとして実装することもできるということに注目するべきである。もう一つの方法として、装置50を、図1には示されていないが各々のホストの一部である他のコンポーネントと連結してもよい。
本発明の実施形態によれば、他のコンシューマ・アプリケーションからメッセージを自発的に受信し、他のコンシューマによるダイレクト・メモリ・アクセスのためにそのメモリを自発的に公示する各々のコンシューマ・アプリケーションは、ホスト間デバイス・コントローラ50上に仮想デバイス(VD)を作成することができる。システム100の特定の実装に応じて、管理エンティティを集中させることができるか、又は分散させることができるということに注目するべきである。
装置資格証明は、他のコンシューマ・アプリケーションからメッセージを自発的に受信するとともに、又は他のコンシューマによるダイレクト・メモリ・アクセスのためにそのメモリを自発的に公示するコンシューマを、仮想デバイスの所有者(以下、「所有者」と定義する)として識別することができ、VDの所有者に特別許可された、仮想デバイス上のIO要求、一連のIO要求、IOプログラム又は一組のIOプログラムの実行権を該コンシューマに付与することができる。
所有者は、自身のVD上に2種類のリソースを作成することが可能である。
例えば、1つは、VD A60、VD B70及びVD C80内の、それぞれ「ConResource B」62、「ConResource A」72及び「ConResource Y」等の、メッセージを受信するための接続リソースである。接続リソースは「受信キュー」と関連付けることができる。従って、接続リソースの所有者は、こうしたキューに対してホスト・バッファを予め掲示することが可能であり、「所有者」コンシューマにメッセージを自発的に送信することができるコンシューマ(以下「ユーザ」と定義する)は、メッセージをFIFO原則においてこうしたバッファ内に置かれるように送信することが可能である。
例えば、もう1つは、VD B70内の「MemResource X」74等の、ダイレクト・メモリ・アクセスを可能にするためのメモリ・リソースである。メモリ・リソースは、公示されたメモリ領域と関連付けることができる。
本発明の実施形態によれば、「ユーザ」に該ユーザとの通信経路を構築するように要求することができる。通信経路を構築した結果、所有者の仮想デバイス上に接続リソースを作成することができる。ユーザがリソースにアクセスして、例えば「メッセージ送信」等の、こうしたリソースに対してユーザに許可されるIO要求、一連のIO要求、IOプログラム又は一組のIOプログラムを実行できるようにする資格証明を、ユーザに付与することができる。「所有者」コンシューマに属する遠隔メモリに自発的にアクセスすることができる「ユーザ」は、下記の詳説で説明されるように、対応するメモリ・リソースに対する、ユーザ・メモリ・ウィンドウの資格証明を得なければならない可能性があるということに注目するべきである。
図1に示される例においては、異なるホストにそれぞれ属するコンシューマA12、コンシューマB22及びコンシューマC32は、ホスト間デバイス・コントローラ50上に、各自の仮想デバイスVD A60、VD B70及びVD C80を個々に作成する。自発的に互いに通信することができるコンシューマA及びBは、自身の装置上に、個々の通信リソースを作成する。従って、コンシューマAは、接続リソースBの「ConResource B」62をVD A60上に作成することができ、コンシューマBにこうしたリソースへのアクセスを許可することができ、一方で、コンシューマBは、接続リソースAの「ConResource A」72をVD B70上に作成することができ、コンシューマAがアクセスできるようにする。図1に示されるように、コンシューマBはまた、コンシューマXのためのメモリ・リソース「MemResource X」74を作成することができ、コンシューマXがコンシューマBのメモリにダイレクト・アクセスできるようにする。コンシューマCは、接続リソースの「ConResource Y」82をコンシューマYの使用のために作成することができる。
本発明の実施形態によれば、所有者及びユーザ・コンシューマは、例えば、一連のIO要求又は一組のIOプログラム等のIO要求、IOプログラムを仮想デバイス上で実行することができる。所有者コンシューマは、自身の仮想デバイスのリソースでそれらを用いたり実行することができ、一方で、ユーザ・コンシューマは、他のコンシューマの仮想デバイスのリソースで、それらを用いたり実行することができる。IOプログラムのIO要求側の実行が完了すると、IO要求又はIOプログラムを開始したコンシューマに出力を送信することができる。更なる詳細を下記に詳述する。
コンシューマ間の接続の確立、及びコンシューマ間の種々の通信動作を、下記の詳説において説明する。
接続の確立
ここで、本発明の実施形態による、2つのコンシューマ・アプリケーション間の接続を確立するための方法のフロー・チャート図である図2を参照する。同一のコンシューマ間に多数の接続を確立することができ、以下の通りに、各々の接続を確立することができるということに注目するべきである。
他のコンシューマからメッセージを自発的に受信することができる所有者コンシューマAは、例えば、対応するユーザ・コンシューマがない接続リソース等の匿名の接続リソース割り当てを自身の仮想デバイス上に作成することができる(ステップ200)。所有者コンシューマに付与された資格証明及びパラメータとしてのポートを含むことができる「接続リソース割り当て」IO要求を受信すると、接続リソース割り当てを所有者の仮想デバイス内に作成することができる。
接続リソース割り当て=〔所有者資格証明、ポート〕
所有者コンシューマであるコンシューマAの仮想デバイス内に設置されたIOプログラムは、接続リソース割り当て要求を処理することができ、接続リソースを作成することができる。次に、接続リソースは、コンシューマAに「所有者接続リソース資格証明」を付与することができる(ステップ202)。
コンシューマAにメッセージを自発的に送信できるユーザ・コンシューマBは、接続IO要求をコンシューマAの仮想デバイスAに送信できる。結果として、仮想デバイスAは、「ユーザ」装置資格証明及びパラメータとしてのポートを含むことができるコンシューマBから、接続IO要求を受信できる(ステップ204)。
接続=〔ユーザ資格証明、ポート〕
コンシューマAによって設定されたポリシーに応じて、接続リソースに、送られてくる接続要求を自動的に受諾するように命令する(ステップ206)か、又は、接続要求が届いた時にコンシューマAに明示的に通知するように命令する(ステップ206A)かのどちらかが可能である。後者の場合は、コンシューマAは、「受諾」又は「拒否」命令に応答することを要求される。
いずれにしても、接続要求が受諾される時に、匿名接続リソースは接続リソースBになることができる。それに応じて、ホスト間デバイス・コントローラ50は、ユーザ接続リソース資格証明を生成することができ(ステップ208)、接続リソースBを通じたコンシューマAとの今後の通信のために、資格証明をコンシューマBに送信することができる(ステップ210)。
接続確立後の動作
上記の例において、所有者コンシューマと例えばコンシューマA及びB等のユーザ・コンシューマ間の接続が個々に確立された後に、コンシューマAは、「受信後バッファ」IOメッセージを送信して、コンシューマBからメッセージを受信するために仮想デバイスA内に要求されたスペースがあることを検証することができる。コンシューマAは、「受信後バッファ」IOメッセージ内に、仮想デバイスの所有者としての権利を証明するための所有者装置資格証明と、パラメータとしてのバッファ長を含むことができる。
受信後バッファ=〔所有者資格証明、バッファ〕
各々の「受信後バッファ」IOメッセージを、例えばコンシューマA等の所有者コンシューマから、例えばHG A等の個々のホスト・ゲートウェイを通して、ホスト間デバイス・コントローラへ送信できる。ホスト・ゲートウェイは、後の無認可アクセスからメモリを保護することができる、ウィンドウ資格証明等の資格証明を生成することができる。ウィンドウ資格証明は、接続リソースと関連付けられ、ホスト間デバイス・コントローラ50上のそのコンテキスト内に格納することができる。
例えばコンシューマB等のユーザ・コンシューマが、例えばコンシューマA等の所有者コンシューマにメッセージを自発的に送信する時に、以下の動作を実行することができる。
コンシューマBは、HG Bに「送信」IO要求を提示することができる。IO要求のパラメータは、コンシューマBの、仮想デバイスAの接続リソースにアクセスする「ユーザ」権を証明する装置リソース資格証明を含むことができ、また、ローカル・メモリ領域機能(例えば、各々の要素がアドレス、長さ及びアクセス許可を含むことができる、スキャッタ・ギャザー・リスト)を含むことができる。
送信=〔ユーザ資格証明、メモリ領域機能〕
HG Bは、ウィンドウ資格証明を生成して、それをホスト間デバイス・コントローラ上の仮想デバイスAへ「送信」IO要求と共に送信することができる。選択的に、HG Bは、ここでは即値データとして参照される所定量のデータ・ペイロードを付加することできる。この場合、即値データのサイズがメッセージ全体に及ぶ場合は、ウィンドウ資格証明は送信されない。
仮想デバイスAはIO要求を処理することができる。仮想デバイスA上の接続リソースにアクセスすることができ、受信されたメッセージを適合させるために利用できる受信バッファがあるかどうかを検証することができる。予め掲示されたバッファがない場合には、仮想デバイスAは、受信された要求を中断し、対応するステータスをHG Bに送り返し、HG BがそれをコンシューマBに転送することがある。
受信バッファが利用できる時には、装置接続リソース内に格納された受信バッファのメモリ・ウィンドウ資格証明を用いて、即値データ(存在する場合には)を、ダイレクト・メモリ・アクセス(DMA)動作においてHG Aを介して受信バッファに送信することができる。次に、残存するデータ・ペイロードを持ってくるために(必要な場合には)、「読取り」要求をHG Bへ送信することができる。読取り要求をHG Bによって処理することができ、読取りデータを仮想デバイスAへ送り返すことができる。後者は、データを予め掲示されたバッファへ供給することができ、バッファが属するコンシューマAに「完了」要求を生成することができる(求められた場合に)。
所有者コンシューマは、多数のコンシューマからメッセージを自発的に受信することができる。この場合、所有者コンシューマは、自身の仮想デバイス上に、受信キューと関連付けられた共有接続リソースを作成できる。共有接続リソースに自発的にアクセスするコンシューマは、「ユーザ」装置資格証明、及びパラメータとしてのポートを提供して、IO要求の「接続共有リソース」を発することができる。所有者装置の仮想デバイスは、コンシューマに、共有接続リソースに対してメッセージを送信する権利をコンシューマに付与する、「ユーザ」共有リソース資格証明を送り返すことができる。
マルチキャスティング
ここで、本発明の実施形態による、ホスト間マルチキャスト通信のためのシステムの概略ブロック図である図3を参照する。以前に説明された要素は、説明を平易に保つために繰り返して説明しない。
ホスト間デバイス・コントローラは、全てのマルチキャスト活動を制御するためにマルチキャスト仮想デバイス90を含むことができる。例えばマルチキャスト群M等のマルチキャスト群は、マルチキャスト仮想デバイス90上のリソースとして表わすことができる。マルチキャスト群を結合するために、ユーザ・コンシューマは、特別なIO要求をマルチキャスト仮想デバイス90に送信することができる。コンシューマがマルチキャスト群を結合することが可能である場合は、それに応じて、対応する「ユーザ・リソース資格証明」をコンシューマに付与することができる。こうした資格証明は、マルチキャスト群に送信される各々のメッセージ内で提供することが要求される。マルチキャスト群の1つを対象とするメッセージを受信すると、ホスト間デバイス・コントローラは、マルチキャスト群の構成要素によって所有される仮想デバイスの共有接続リソースにメッセージを複製することができる。
リモート・ダイレクト・メモリ・アクセス手順
本発明の実施形態によれば、ホスト間通信のためのシステムは、異なるホスト上に設置されたコンシューマ間での、リモート・ダイレクト・メモリ・アクセス(DMA)の読取り及び書込み動作を可能にする。
こうしたRDMA動作を可能にするために、アドレス指定されたメモリ領域を、開始コンシューマに最初に公示するべきである。公示プロシージャは、メモリ・アクセス動作を開始するコンシューマに装置資格証明を与えることができる。
ここで、本発明の例示的な実施形態による、メモリ公示のための方法の概略フロー・チャート図である図4を参照する。この例においては、コンシューマBは、ホストBのメモリ領域をコンシューマAに公示することができる。
コンシューマBは、「コンシューマへのメモリ公示」IOメッセージを、ホスト間デバイス・コントローラ内の仮想デバイスBへ送信する(ステップ400)ことによってプロシージャを開始することができる。IOメッセージのパラメータは、仮想デバイスBの所有者としてコンシューマBを識別する所有者装置資格証明と、資格証明が送信されるべき相手であるコンシューマを識別するコンシューマIDと、例えばアドレス、長さ、アクセス許可等のメモリB領域機能とを含むことができる。
「コンシューマへのメモリ公示」=〔所有者資格証明、コンシューマID、メモリ領域機能〕
IOメッセージをHG Bによって処理する時に、HG Bは、メモリB領域のメモリ・ウィンドウ資格証明CAPを生成することができ(ステップ402)、それをIOメッセージと共に、ホスト間デバイス・コントローラへ送信することができる(ステップ404)。仮想デバイスBは、IOメッセージを受信することができ、ホスト間デバイス・コントローラのサービスを用いて、仮想デバイスB上に「メモリ領域」リソースを作成することができる(ステップ406)。リソースは、メモリ・ウィンドウ資格証明CAPを含むことができる。次に、ホスト間デバイス・コントローラは、作成された「メモリ領域」リソースへのアクセスを許可する装置資格証明を生成することができ(ステップ408)、それを、上記で説明されたホスト接続送信プロシージャを用いてコンシューマAへ送信することができる(ステップ410)。
別の選択肢は、ホスト間デバイス・コントローラがリソース資格証明を生成し、それを、公示するコンシューマBへ戻すことである。コンシューマBは、それをコンシューマAに送信するべきである。
ここで、本発明の例示的な実施形態による、リモート・ダイレクト・メモリ・アクセス書込み動作のための方法のフロー・チャート図である図5を参照する。この例においては、コンシューマAは、ホストBのメモリ領域への書込みトランザクションを実行することができる。アドレス指定されたホストBのメモリ領域は、上記で説明されたようにコンシューマAへ公示されており、対応する「メモリ領域」リソースは、仮想デバイスB上に作成されている。
従って、コンシューマAは、「書込み」IO要求を仮想デバイスBへ送信することができる(ステップ500)。IO要求と共に、コンシューマAは、ホストBのメモリ領域機能(装置資格証明、アドレス及び長さ)と、ホストAのメモリ領域であるローカル・メモリ領域機能(アドレス、長さ、アクセス許可)とを供給できる。HG Aは、ホストAのメモリ領域のウィンドウ機能CAPを生成でき、それをIO要求と共に仮想デバイスBへ送信できる(ステップ502)。性能を高めるために、HG Aは、IO要求に、ここでは即値データとして参照される所定量のデータ・ペイロードを添付することができる。即値データの最大サイズは、例えば接続が確立される時などの初期段階で、HG Aとホスト間デバイスの間で取り決めることができる。データ・ペイロード全体が許可された即値データのサイズと適合する場合は、ウィンドウ資格証明はHG Aによって送信されない。
選択的に、データ・ペイロードのサイズが、IO要求と共に供給された即値データのサイズを上回る場合は、「書込み」IO要求を受信する時に、仮想デバイスBは、ホストAのメモリ領域に対する「読取り」トランザクションを実行することができる。その領域のウィンドウ資格証明が供給される。トランザクションをHG Aによって処理することができ、データを仮想デバイスBに返すことができる。
次に、ホスト間デバイス・コントローラは、装置資格証明から読出されたメモリ・ウィンドウ資格証明を用いて、仮想デバイスBの「メモリ領域」リソースにアクセスすることができ(ステップ504)、ホストBのメモリ領域にHG Bを介してデータを書込むことができる(ステップ506)。
ここで、本発明の例示的な実施形態による、リモート・ダイレクト・メモリ・アクセスの読取り動作のための方法のフロー・チャート図である図6を参照する。この例においては、コンシューマAは、ホストBのメモリ領域からの読取りトランザクションを実行することができる。アドレス指定されたホストBのメモリ領域は、上述の通り、コンシューマAに公示され、対応する「メモリ領域」リソースが仮想デバイスB上に作成されている。
従って、コンシューマAは、「読取り」IO要求を仮想デバイスBへ送信することができる(ステップ600)。IO要求と共に、コンシューマAは、ホストBのメモリ領域特性(装置資格証明、アドレス及び長さ)と、ホストAのメモリ領域であるローカル・メモリ領域機能(アドレス、長さ、アクセス許可)とを供給することができる。HG Aは、ホストAのメモリ領域のウィンドウ資格証明を生成することができ、それをIO要求と共に、仮想デバイスBに送信することができる(ステップ602)。
「読取り」IO要求を受信すると、仮想デバイスBは、装置資格証明から読出されたメモリ・ウィンドウ資格証明を用いて、仮想デバイスBの「メモリ領域」リソースにアクセスすることができる(ステップ604)。次に、仮想デバイスBは、ホストBのメモリ領域に対する「読取り」トランザクションを実行することができる(ステップ606)。トランザクションは、トランザクションの正当性を検証することができるHG Bを通過することができると、読取りデータを読出すためにDMA動作を開始することができる。
次に、仮想デバイスBは、ホストAのメモリ領域のウィンドウ資格証明を用いて、データをHG Aに戻すように送信することができる(ステップ608)。HG Aは、データのアクセスを検証することができると、個々のメモリ領域に対するDMA動作を完了することができる。
上記で簡潔に述べたように、本発明の実施形態によれば、所有者及びユーザ・コンシューマは、例えば、仮想デバイス上の一連のIO要求又は一組のIOプログラム等のIO要求、IOプログラムを実行することが可能である。所有者コンシューマは、自身の仮想デバイスのリソース上でそれらを用いて実行することができる。例えば、所有者コンシューマは、多数の接続リソースを生成するために、(及びこうした接続リソースに要求を予め掲示するために)、またメモリ領域を公示するようにメモリ・リソースを生成するために、1つのIOプログラムを自身の仮想デバイスに送信することができる。
ユーザ・コンシューマは、例えば、他のコンシューマの仮想デバイスのリソース上の一連のIO要求又は一組のIOプログラム等のIO要求、IOプログラムを用いて実行することができる。例えば、ユーザ・コンシューマは、接続リソースを用いて他のコンシューマにメッセージを送信し、1つのIOプログラムにカプセル化された全ての動作を行う、所有者コンシューマのメモリ・リソースへの一連のRDMA書込み動作を実行することができる。
IO要求又はIOプログラムの実行が完了すると、出力を、IO要求又はIOプログラムを開始したコンシューマ、即ち第1例の所有者コンシューマ及び第2例のユーザ・コンシューマに送信することができる。
上記の説明において、本発明を徹底的に理解してもらうために、幾多の具体的な詳細が示された。しかしながら、本発明はこうした具体的な詳細がなくとも実施することができるということは、当業者にとっては明白であろう。他の場合において、従来のアルゴリズム及び処理のための周知の回路、制御論理及びコンピュータ・プログラム命令の詳細は、本発明を不必要に曖昧にしないために詳しくは示さない。
本発明の態様を具体化するソフトウェア・プログラミング・コードは、典型的には、コンピュータ可読媒体等の常設格納装置に保持される。クライアント・サーバ環境において、こうしたソフトウェア・プログラミング・コードをクライアント上又はサーバ上に格納することができる。ソフトウェア・プログラミング・コードを、データ処理システムで用いるためにどのような種類の既知媒体上でも具体化できる。これは、限定されないが、ディスク・ドライブ、磁気テープ、コンパクト・ディスク(CD)、デジタル・ビデオ・ディスク(DVD)等の磁気記憶装置及び光記憶装置、及び、信号が変調される搬送波があってもなくても伝達媒体内で具体化されるコンピュータ命令信号を含む。例えば、伝達媒体は、インターネット等の通信ネットワークを含むことができる。更に、本発明をコンピュータ・ソフトウェア内で具体化できる一方、本発明を実装するのに必要な機能を、アプリケーション特有の集積回路又は他のハードウェア、又はハードウェア・コンポーネントとソフトウェアの幾つかの組み合わせ等のハードウェア・コンポーネントを用いて、一部分において或いは全体において代替的に具体化することができる。例えば、ホスト間デバイス・コントローラ50を、コンピュータ・ソフトウェアにおいて、又は代替的には、一部分において又は全体においてハードウェア・コンポーネントを用いて具体化できる。
本発明は、典型的には、コンピュータ又は同様の装置を制御するために一組のプログラム命令を含むコンピュータ・プログラムとして実装される。こうした命令を、システムに予め読み込むか、或いはCD−ROM等の記憶媒体に記録するか、或いは、インターネット又は携帯電話ネットワーク等のネットワーク上でダウンロードするために利用できるようにして与えることができる。
本発明の範囲から逸脱することなく、前述のものに対して改良及び変更を行うことができる。
本発明が、上文に具体的に示され、説明されたものに限定されないということは、当業者に認められるであろう。むしろ、本発明の範囲は、従来技術にはないものの変形及び変更と同様に、上文で説明された種々の特徴の組み合わせ及び副次的な組み合わせの両方を含み、前述の説明を読んだ時に、当業者ならば思いつくことであろう。
本発明の実施形態による、ホスト間通信のためのシステムの論理構造の概略ブロック図である。 本発明の実施形態による、2つのコンシューマ・アプリケーション間の接続を確立するための方法のフロー・チャート図である。 本発明の実施形態による、ホスト間マルチキャスト通信のためのシステムの概略ブロック図である。 本発明の例示的な実施形態による、メモリ公示のための方法の概略フロー・チャート図である。 本発明の例示的な実施形態による、リモート・ダイレクト・メモリ・アクセスの書込み動作のための方法のフロー・チャート図である。 本発明の例示的な実施形態による、リモート・ダイレクト・メモリ・アクセスの読取り動作のための方法のフロー・チャート図である。
符号の説明
10、20、30:ホスト
12、22、32:コンシューマ・アプリケーション
14、24、34:ホスト・ゲートウェイ
16、26、36:メモリ
40:ネットワーク
50:ホスト間デバイス・コントローラ
60、70、80:仮想デバイス
62、72、82:コンリソース
74:Memリソース
66、76、86:接続共有リソース
90:マルチキャスト仮想デバイス
92、94:群のリソース
100:システム

Claims (17)

  1. ホスト間通信のためのシステムであって、
    第1コンシューマ・アプリケーションが第2ホストに連結された第2コンシューマ・アプリケーションと通信できるようにするために配置された、前記第1コンシューマ・アプリケーションの第1ホストと、
    前記第1ホストと第2ホストを接続するために配置されたネットワークと、
    前記第1ホストと前記第2ホストの間の通信プロトコルを制御して、前記第1コンシューマ・アプリケーションと前記第2コンシューマ・アプリケーションが互いに通信できるようにするために配置されたホスト間デバイス・コントローラと、
    を含むシステム。
  2. 前記第1コンシューマ・アプリケーションが、前記第2コンシューマ・アプリケーションと通信するために、前記第2コンシューマ・アプリケーションからメッセージを受信するように配置された仮想デバイスを前記ホスト間デバイス・コントローラ内に作成し、更に前記第1コンシューマ・アプリケーションと連結されたメモリにダイレクト・アクセスするように配置された、請求項1に記載のシステム。
  3. 前記第1コンシューマ・アプリケーションが、前記第2コンシューマ・アプリケーションからメッセージを受信するための接続リソースと、前記第1コンシューマ・アプリケーションと連結されたメモリへの第2コンシューマ・アプリケーションのダイレクト・アクセスを可能にするためのメモリ・リソースとを作成するように配置された、請求項2に記載のシステム。
  4. 前記ホスト間デバイス・コントローラが、前記第1コンシューマ・アプリケーションから複数のコンシューマ・アプリケーションへメッセージを送信するように配置されたマルチキャスト仮想デバイスを更に含む、請求項1に記載のシステム。
  5. 前記ホスト間デバイス・コントローラが、前記第1コンシューマ・アプリケーションと前記第2コンシューマ・アプリケーションとの間の、リモート・ダイレクト・メモリ・アクセス(RDMA)読取り及び書込み動作を可能にするように更に配置された、請求項2に記載のシステム。
  6. 前記仮想デバイスが、前記第1コンシューマ・アプリケーション又は前記第2コンシューマ・アプリケーションから受信される、IO要求、一連のIO要求、IOプログラム又は一組のIOプログラムのいずれかを実行するように更に配置された、請求項2に記載のシステム。
  7. 第1ホスト上に設置された第1コンシューマ・アプリケーションと第2ホスト上に設置された第2コンシューマ・アプリケーションとの間の通信を確立するための、コンピュータで実行される方法であって、前記方法が、
    前記第1コンシューマ・アプリケーションの仮想デバイス上に、前記第1コンシューマ・アプリケーションのために匿名の接続リソース割り当てを作成するステップと、
    前記仮想デバイス上での動作の実行を可能にする第1のタイプからのリソース資格証明を前記第1コンシューマ・アプリケーションに付与するステップと、
    前記第2コンシューマ・アプリケーションから接続要求を受信したとき、前記第1コンシューマ・アプリケーションのポリシーに基づいて命令を前記第2コンシューマ・アプリケーションに送信するステップと、
    を含む方法。
  8. 命令を送信する前記ステップが、前記第1コンシューマ・アプリケーションの前記ポリシーに基づいて、前記第2コンシューマ・アプリケーションに自動的に受諾命令を送信するステップを更に含む、請求項7に記載の方法。
  9. 命令を送信する前記ステップが、
    前記第1コンシューマ・アプリケーションに、前記第1コンシューマ・アプリケーションの前記ポリシーに基づいて、前記第2コンシューマ・アプリケーションからの前記接続要求が受信されたことを通知するステップと、
    前記第1コンシューマ・アプリケーションから受信された受諾命令又は拒否命令を送信するステップと、
    を更に含む、請求項7に記載の方法。
  10. 前記第1のタイプからの前記リソース資格証明が接続リソース資格証明である、請求項7に記載の方法。
  11. 第2コンシューマ・アプリケーションに送信される前記命令が、前記コンシューマ・アプリケーション間の接続を受諾するものである場合に、前記方法が、
    第2のタイプからの接続リソース資格証明を生成するステップと、
    前記第2コンシューマ・アプリケーションが前記仮想デバイスを介して前記第1コンシューマ・アプリケーションに対し今後通信することを可能にするために、前記第2のタイプからの前記接続リソース資格証明を送信するステップと、
    を含み、前記生成及び送信するステップが、前記第1のタイプのコンシューマによって実行される、請求項10に記載の方法。
  12. 前記第1コンシューマ・アプリケーションが前記第2コンシューマ・アプリケーションからメッセージを受信できるようにするステップと、前記第2コンシューマ・アプリケーションが前記第1コンシューマ・アプリケーションにメッセージを送信できるようにするステップとを更に含む、請求項11に記載の方法。
  13. 前記第1のタイプからの前記リソース資格証明が、共有リソース資格証明である、請求項7に記載の方法。
  14. 前記第1コンシューマ・アプリケーションが、多数のコンシューマ・アプリケーションからメッセージを受信できるようにするステップを更に含む、請求項13に記載の方法。
  15. 前記第2コンシューマ・アプリケーションが、複数のコンシューマ・アプリケーションに、マルチキャスト仮想デバイスを介してメッセージを送信できるようにするステップを更に含み、前記メッセージはマルチキャスト接続リソース資格証明を含む、請求項7に記載の方法。
  16. 第2ホスト上に設置された第2コンシューマ・アプリケーションから第1ホスト上に設置された第1コンシューマ・アプリケーションの第1メモリ領域への読取り及び書込みリモート・ダイレクト・メモリ・アクセス(RDMA)動作のために前記第1メモリ領域を公示する方法であって、
    前記第1メモリ領域を公示するために、第1のタイプからのIO要求をホスト間デバイス・コントローラへ送信するステップと、
    前記第1メモリ領域のメモリ・ウィンドウ資格証明(CAP)を生成するステップと、
    前記IO要求及び前記CAPを、前記ホスト間デバイス・コントローラ上に設置された前記第1コンシューマ・アプリケーションの仮想デバイスに送信するステップと、
    前記CAPと連結された前記第1仮想デバイス上に、メモリ領域リソースを作成するステップと、
    前記第1メモリ領域リソースにアクセスできるようにする装置資格証明を生成するステップと、
    前記装置資格証明を前記第2コンシューマ・アプリケーションに送信するステップと、
    を含む方法。
  17. 請求項1−16のいずれか1項に記載の方法の各ステップをコンピュータに実行させるためのプログラム。
JP2007009807A 2006-01-19 2007-01-19 ホスト間通信のためのシステム及び方法 Pending JP2007193812A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/334,833 US20070168454A1 (en) 2006-01-19 2006-01-19 System and method for host-to-host communication

Publications (1)

Publication Number Publication Date
JP2007193812A true JP2007193812A (ja) 2007-08-02

Family

ID=38264508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007009807A Pending JP2007193812A (ja) 2006-01-19 2007-01-19 ホスト間通信のためのシステム及び方法

Country Status (3)

Country Link
US (1) US20070168454A1 (ja)
JP (1) JP2007193812A (ja)
CN (1) CN101005507A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014532234A (ja) * 2011-09-29 2014-12-04 オラクル・インターナショナル・コーポレイション トランザクションミドルウェアマシン環境において複合メッセージヘッダをサポートするためのシステムおよび方法
JP2015527681A (ja) * 2012-09-07 2015-09-17 オラクル・インターナショナル・コーポレイション 分散型データグリッドクラスタにおけるメッセージ前処理をサポートするシステムおよび方法

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8411085B2 (en) 2008-06-27 2013-04-02 Microsoft Corporation Constructing view compositions for domain-specific environments
US8255192B2 (en) * 2008-06-27 2012-08-28 Microsoft Corporation Analytical map models
US8620635B2 (en) 2008-06-27 2013-12-31 Microsoft Corporation Composition of analytics models
US20090322739A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Visual Interactions with Analytics
US8117145B2 (en) * 2008-06-27 2012-02-14 Microsoft Corporation Analytical model solver framework
US8155931B2 (en) * 2008-11-26 2012-04-10 Microsoft Corporation Use of taxonomized analytics reference model
US8190406B2 (en) * 2008-11-26 2012-05-29 Microsoft Corporation Hybrid solver for data-driven analytics
US8103608B2 (en) * 2008-11-26 2012-01-24 Microsoft Corporation Reference model for data-driven analytics
US8145615B2 (en) * 2008-11-26 2012-03-27 Microsoft Corporation Search and exploration using analytics reference model
US8145593B2 (en) 2008-12-11 2012-03-27 Microsoft Corporation Framework for web services exposing line of business applications
US20100153565A1 (en) * 2008-12-11 2010-06-17 Microsoft Corporation Connection management in line-of-business
US8314793B2 (en) 2008-12-24 2012-11-20 Microsoft Corporation Implied analytical reasoning and computation
US8259134B2 (en) * 2009-06-19 2012-09-04 Microsoft Corporation Data-driven model implemented with spreadsheets
US8531451B2 (en) 2009-06-19 2013-09-10 Microsoft Corporation Data-driven visualization transformation
US8788574B2 (en) 2009-06-19 2014-07-22 Microsoft Corporation Data-driven visualization of pseudo-infinite scenes
US8866818B2 (en) 2009-06-19 2014-10-21 Microsoft Corporation Composing shapes and data series in geometries
US9330503B2 (en) 2009-06-19 2016-05-03 Microsoft Technology Licensing, Llc Presaging and surfacing interactivity within data visualizations
US8493406B2 (en) 2009-06-19 2013-07-23 Microsoft Corporation Creating new charts and data visualizations
US8692826B2 (en) 2009-06-19 2014-04-08 Brian C. Beckman Solver-based visualization framework
US8352397B2 (en) 2009-09-10 2013-01-08 Microsoft Corporation Dependency graph in data-driven model
US9043296B2 (en) 2010-07-30 2015-05-26 Microsoft Technology Licensing, Llc System of providing suggestions based on accessible and contextual information
US20150113602A1 (en) * 2012-05-08 2015-04-23 Serentic Ltd. Method and system for authentication of communication and operation
WO2015044713A1 (en) * 2013-09-26 2015-04-02 Continental Automotive Gmbh User message queue method for inter-process communication
CN106295391B (zh) * 2015-06-09 2021-02-19 联想(北京)有限公司 一种信息处理方法及电子设备
KR102484606B1 (ko) * 2016-03-11 2023-01-05 삼성전자주식회사 전자장치 및 그 제어방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020147810A1 (en) * 2001-01-22 2002-10-10 Traversat Bernard A. Peer-to-peer resource resolution
US20040123153A1 (en) * 2002-12-18 2004-06-24 Michael Wright Administration of protection of data accessible by a mobile device
WO2005036367A2 (en) * 2003-10-08 2005-04-21 Unisys Corporation Virtual data center that allocates and manages system resources across multiple nodes
JP2005250649A (ja) * 2004-03-02 2005-09-15 Nec Corp プロセス間通信アクセス制御方式及び方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020147810A1 (en) * 2001-01-22 2002-10-10 Traversat Bernard A. Peer-to-peer resource resolution
US20040123153A1 (en) * 2002-12-18 2004-06-24 Michael Wright Administration of protection of data accessible by a mobile device
WO2005036367A2 (en) * 2003-10-08 2005-04-21 Unisys Corporation Virtual data center that allocates and manages system resources across multiple nodes
JP2007508623A (ja) * 2003-10-08 2007-04-05 ユニシス コーポレーション 複数のノードにわたってシステムリソースを割り当てて管理する仮想データセンタ
JP2005250649A (ja) * 2004-03-02 2005-09-15 Nec Corp プロセス間通信アクセス制御方式及び方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014532234A (ja) * 2011-09-29 2014-12-04 オラクル・インターナショナル・コーポレイション トランザクションミドルウェアマシン環境において複合メッセージヘッダをサポートするためのシステムおよび方法
JP2015527681A (ja) * 2012-09-07 2015-09-17 オラクル・インターナショナル・コーポレイション 分散型データグリッドクラスタにおけるメッセージ前処理をサポートするシステムおよび方法
JP2015531512A (ja) * 2012-09-07 2015-11-02 オラクル・インターナショナル・コーポレイション 分散型データグリッドクラスタにおけるスケーラブルなメッセージバスをサポートするシステムおよび方法

Also Published As

Publication number Publication date
CN101005507A (zh) 2007-07-25
US20070168454A1 (en) 2007-07-19

Similar Documents

Publication Publication Date Title
JP2007193812A (ja) ホスト間通信のためのシステム及び方法
US10691839B2 (en) Method, apparatus, and system for manageability and secure routing and endpoint access
KR101712080B1 (ko) 신뢰 유닛들 사이의 키 리프레시
AU2014236872B2 (en) Method and system for identity-based authentication of virtual machines
JP6314236B2 (ja) トラフィックポリシーの実施をサポートするエンティティハンドルレジストリ
WO2021073151A1 (zh) 基于多网通信的数据传输方法及相关设备
US7617541B2 (en) Method and/or system to authorize access to stored data
US11841985B2 (en) Method and system for implementing security operations in an input/output device
Andersen et al. Democratizing authority in the built environment
US20080192750A1 (en) System and Method for Preventing IP Spoofing and Facilitating Parsing of Private Data Areas in System Area Network Connection Requests
CN107873129A (zh) 用于不受管理的设备的安全服务
GB2413045A (en) Providing port mapping information and subsequent access to a network resource with requestors using authorizing keys
US10048980B2 (en) Scalable policy assignment in an edge virtual bridging (EVB) environment
JP2003209543A (ja) セキュア・セッションを確立する方法および装置
US11861406B2 (en) Dynamic microservices allocation mechanism
JP6475910B2 (ja) 機密データパケットの交換のための時間ロックされたネットワーク及びノード
KR100799305B1 (ko) 다중 암호엔진을 사용하는 고성능 암호화 장치
JP2007193786A (ja) ネットワーク・プロトコル・スタック隔離のためのネットワーク・アーキテクチャ、方法、およびコンピュータ・プログラム(ネットワーク・プロトコル・スタック隔離)
JP7516530B2 (ja) ネットワークトラフィック分類においてユニバーサルターゲットを実装するためのシステムおよび方法
US7089378B2 (en) Shared receive queues
US8955155B1 (en) Secure information flow
JP2024501168A (ja) セキュアなメモリ共有方法
US20240232314A1 (en) Authenticator to authorize persistent operations
US7925801B2 (en) Method and system for protection and security of IO devices using credentials
Bhattacharya et al. Covert channel secure hypercube message communication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091026

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120626