JP5541292B2 - 分散システム、通信手段選択方法および通信手段選択プログラム - Google Patents

分散システム、通信手段選択方法および通信手段選択プログラム Download PDF

Info

Publication number
JP5541292B2
JP5541292B2 JP2011543937A JP2011543937A JP5541292B2 JP 5541292 B2 JP5541292 B2 JP 5541292B2 JP 2011543937 A JP2011543937 A JP 2011543937A JP 2011543937 A JP2011543937 A JP 2011543937A JP 5541292 B2 JP5541292 B2 JP 5541292B2
Authority
JP
Japan
Prior art keywords
communication
communication means
determination
node
unit
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
JP2011543937A
Other languages
English (en)
Other versions
JPWO2011045919A1 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2011543937A priority Critical patent/JP5541292B2/ja
Publication of JPWO2011045919A1 publication Critical patent/JPWO2011045919A1/ja
Application granted granted Critical
Publication of JP5541292B2 publication Critical patent/JP5541292B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、複数のノードを含む分散システムに関する。また、本発明は、複数のノードを含む分散システムにおいて、通信手段を選択する通信手段選択方法及び通信手段選択プログラムに関する。
分散システムには、複数の計算ノード(以下、ノード)が1つの筐体に収められたクラスタや、複数のノードやクラスタが1つの建物に収められたデータセンタ、広域ネットワークでノードやクラスタ、データセンタが相互に接続された広域分散システムなど様々な形態がある。また、分散システムのノードの一部が、物理的なマシンでなく、仮想化ソフトウェアにより1つのノードを分割した仮想マシン(VM)や、ハードウェアにより1つのノードを分割したパーティションとして構成されることもある。そして、このような分散システムでは、ノード上で実行されたユーザプログラム(以下、アプリケーションと呼ぶ)がお互いに通信して処理を行う。
分散システムのノードが多種多様であるのと同様に、ノード間の通信手段も多種多様である。例えば、一般的なイーサネット(登録商標)の上で行うTCP/IPなどのメッセージ通信、Infinibandなどクラスタ向けネットワークで提供されるRemote Direct Memory Access(RDMA)、さらに、パーティション間共有メモリを使った通信などがある。これらの通信手段には、それぞれ特長があるため、一般的には、分散システムが提供する通信手段の中から、アプリケーションを開発するプログラマが(高性能、高信頼、低消費電力など)適切な通信手段を選択して、利用している。しかし、アプリケーションを開発するプログラマがいつも適切な通信手段を選択するのは難しい。例えば、メッセージ通信とRDMAと共有メモリ通信とが利用可能な場合であれば、共有メモリ>RDMA>メッセージ通信の順に通信速度が大きいが、もともとソケットなどメッセージ通信が広く使われているため、結果的にメッセージ通信を利用するプログラマが多い。
そこで、通信ライブラリやオペレーティングシステム(以下、OS)などの下位レイヤーで、適切な通信手段を選択する通信手段選択方法が考案されている。関連する通信手段選択方式の例が特許文献1及び特許文献2に記載されている。
特許文献1には、サイズに応じて、通信手段を切り替える無線通信システムが記載されている。特許文献1に記載されている発明は、対向する第1及び第2の無線局間の無線回線の伝送路として、複数種類の伝送路のうち一の種類の伝送路を選択して無線通信する無線通信システムである。第1及び第2の無線局のそれぞれは、接続されたデータ端末から入力された少なくとも送信すべきデータの性質及びデータ量を分析するデータ分析手段と、データ分析手段による分析結果に応じて、複数種類の伝送路のうち、一の種類の伝送路を選択する伝送路選択手段と、伝送路選択手段により選択された一の種類の伝送路を使用した無線通信を行う通信手段とを有する。この発明では、送信すべきデータ(伝送しようとするデータ)の性質及びデータ量に応じて複数種類の伝送路の中から最適な伝送路を送信側の無線局で選択して無線通信することができる。また、送信すべきデータの性質及びデータ量を分析するデータ分析手段による分析結果だけでなく、更に速度情報と受信電界強度と位置情報とトラヒックの状況とに応じて、複数種類の伝送路のうち使用可能な一の種類の伝送路を選択するようにしたため、データの性質やデータサイズだけでなく、使用状況や電波受信環境などを加味した最適な伝送路の選択ができる。
特許文献2には、アプリケーションの特性(IPアドレス、ポートなど)に基づいて、通信路を切り替える通信装置が記載されている。特許文献2に記載されている発明による通信装置は、多種多様な通信方法でかつ複数のネットワークに接続可能である。この通信装置は、通信を実施する通信アプリケーションと、通信アプリケーションの通信内容に対して最適なネットワークを選択するネットワーク選択手段と、通信アプリケーションの特性を記憶するアプリケーション特性データベースと、通信アプリケーションの通信内容を学習しかつその学習結果に基づいてアプリケーション特性データベースを更新する通信内容学習手段とを備えている。すなわち、この通信装置は、使用するアプリケーションやサービスの状態及び過去の動作履歴に応じて経路の決定方法を動的に変更させることで、常に最適なネットワークを自動的に選択することを可能としている。
特開2004−343456号公報(段落0007〜0008、0016) 特開2007−282142号公報(段落0014、0017)
しかし、上記の各文献に記載された方法を用いても、一般的な通信経路選択手段では、互いに通信するアプリケーションの物理的な配置関係に基づいて最適な通信経路を選択できない。
その理由は、アプリケーションはIPアドレスなどの論理的な識別子で相手を特定して通信するため、通信相手及び自分の物理的な配置を特定できないからである。例えば、複数のアプリケーションが同一サーバの別のパーティション上で動作しており、それらが互いのIPアドレスだけを知っていて通信を始めた場合、それらのアプリケーションは、同一サーバ内の通信であるにもかかわらず、メッセージ通信で通信する可能性が高い。もし、お互いの位置が通信開始前に、同一サーバ内の別パーティションであることがわかれば、これらのアプリケーションは共有メモリを利用した通信を行うことが可能である。
そこで、本発明は、分散システムにおいて、アプリケーション間の通信を最適化することができる通信手段選択方法及び通信手段選択プログラムを提供することを目的とする。また、本発明は、アプリケーション間の通信を最適化することができる通信手段選択方法を適用した分散システムを提供することを目的とする。
本発明による分散システムは、複数のノードを含む分散システムであって、各ノードは、複数の通信手段を含み、ノードの物理的な位置情報とノード上で動作するアプリケーションの識別情報とを対応付けて記憶する記憶手段と、第1のノード上で動作するアプリケーションが第2のノード上で動作するアプリケーションと通信を行う際に、アプリケーションの識別情報に基づいて、記憶手段から第1のノード及び第2のノードの位置情報を抽出し、抽出した位置情報に基づいて、複数の通信手段から最適な通信手段を判定する通信手段判定手段と、通信手段判定手段の判定結果に基づいて、通信手段を選択する通信手段選択手段とを含むことを特徴とする。
本発明による通信手段選択方法は、複数のノードを含む分散システムにおいて、通信手段を選択する通信手段選択方法であって、ノードの物理的な位置情報とノード上で動作するアプリケーションの識別情報とを対応付けて記憶し、第1のノード上で動作するアプリケーションが第2のノード上で動作するアプリケーションと通信を行う際に、アプリケーションの識別情報に基づいて、第1のノード及び第2のノードの位置情報を抽出し、抽出した位置情報に基づいて、複数の通信手段から最適な通信手段を判定し、判定結果に基づいて、通信手段を選択することを特徴とする。
本発明による通信手段選択プログラムは、複数のノードを含む分散システムにおいて、通信手段を選択するための通信手段選択プログラムであって、ノードの物理的な位置情報とノード上で動作するアプリケーションの識別情報とを対応付けて記憶するコンピュータに、第1のノード上で動作するアプリケーションが第2のノード上で動作するアプリケーションと通信を行う際に、アプリケーションの識別情報に基づいて、第1のノード及び第2のノードの位置情報を抽出し、抽出した位置情報に基づいて、複数の通信手段から最適な通信手段を判定する通信手段判定処理と、判定結果に基づいて、通信手段を選択する通信手段選択処理とを実行させることを特徴とする。
本発明によれば、分散システムにおいて、アプリケーション間の通信を最適化することができる。
本発明による分散システムの第1の実施形態の構成例を示すブロック図である。 第1の実施形態における分散システムの動作例を示す流れ図である。 本発明による分散システムの第2の実施形態の構成例を示すプロック図である。 第2の実施形態における分散システムの動作例を示す流れ図である。 本発明による分散システムの具体的な実施例の構成を示す図である。 配置情報ファイルの具体例を示す説明図である。 マシン100のルーティング情報を示す説明図である。 本発明による分散システムの具体的な第2の実施例の動作を示す図である。 本発明による分散システムの最小の構成例を示すブロック図である。
実施形態1.
次に、本発明の実施形態について図面を参照して説明する。図1を参照すると、本発明の第1の実施形態における分散システムは、プログラムに従って動作するコンピュータ10とコンピュータ20とコンピュータ30とを含む。このうち、コンピュータ10とコンピュータ20とコンピュータ30とは、ネットワーク1を介して相互に接続される。また、少なくともコンピュータ20とコンピュータ30とは、ネットワーク2を介して相互に接続される。そして、コンピュータ10は、処理配置保存部11、通信手段判定部12及び処理配置管理部13を含む。また、コンピュータ20及びコンピュータ30は、ともに、通信指示部21、通信手段選択部22、第1の通信部23及び第2の通信部24を含む。さらに、コンピュータ20では、アプリケーション29に従った処理が実行され、コンピュータ30ではアプリケーション39に従った処理が実行される。
処理配置管理部13は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。処理配置管理部13は、アプリケーションの起動・終了・移動などを管理する機能を備えている。例えば、UNIX(登録商標)のrshコマンドのようなリモートシェル、ジョブディスパッチャ、仮想マシン管理用ツール等の機能が、処理配置管理部13が備えている機能に相当する。処理配置管理部13は、アプリケーションの起動の際には、アプリケーションのプログラム名と起動先のコンピュータ名とを指定する。また、処理配置管理部13は、アプリケーションを別コンピュータに移動させたときには、アプリケーションのプログラム名と移動先のコンピュータ名とを指定する。
処理配置保存部11は、具体的には、メモリや磁気ディスク装置、光ディスク装置等の記憶装置によって実現される。処理配置保存部11は、処理配置管理部13がアプリケーションを配置(起動・移動)した時の情報に基づく、アプリケーションの論理識別子とコンピュータの物理位置識別子との組を記憶する。アプリケーションの論理識別子は、アプリケーション同士の通信の際に相手を特定するために用いられる。アプリケーションの論理識別子としては、例えば、起動先のコンピュータのIPアドレスとアプリケーションが使用するポート番号との組がある。また、このアプリケーションの論理識別子の代わりに、コンピュータの論理識別子を指定してもよい。コンピュータの論理識別子としては、ホスト名やIPアドレスを使用できる。一方、コンピュータの物理位置識別子は、コンピュータの物理的な位置関係を示す。コンピュータの物理位置識別子としては、例えば、筐体番号がある。なお、本実施形態では、同一筐体内にあるコンピュータ同士は共有メモリ通信が使えるものとする。
通信手段判定部12は、具体的には、プログラムに従って動作する情報処理装置のCPU及びネットワークインタフェース部によって実現される。通信手段判定部12は、通信手段選択部22から通信手段の判定を要求する通信手段判定要求を受信し、以下の方法で適切な通信手段を判定する機能を備えている。ここで、通信手段判定要求には、通信元及び通信相手のアプリケーションの論理識別子が少なくとも含まれる。通信手段判定部12は、この論理識別子をキーにして処理配置保存部11を検索し、通信元及び通信相手のアプリケーションが動作するコンピュータの物理位置識別子を抽出する。さらに、通信手段判定部12は、抽出した2つの物理位置識別子を比較して最適な通信手段を判定し、判定結果を通信手段選択部22に返信する。例えば、通信手段判定部12は、筐体番号が一致していれば、「共有メモリ通信」を表す値を判定結果として返信し、一致していなければ、「メッセージ通信」を表す値を判定結果として返信する。なお、本実施形態では、通信手段には、ネットワークを介した端末間の通信だけでなく、同じハードウェア内において同じメモリを介してデータのやりとりを行う共有メモリ通信が含まれるものとする。
通信指示部21は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。通信指示部21は、アプリケーション29から送信要求が出力されると、それを通信手段選択部22に出力する。送信要求には、少なくとも、通信元(要求した)アプリケーションの論理識別子、通信相手のアプリケーションの論理識別子及び送信データ本体が含まれる。通信指示部21が備えている機能に相当する機能としては、例えば、UNIXのsendシステムコールやMPI(Message Passing Interface)のMPI_sendなどが挙げられる。
通信手段選択部22は、具体的には、プログラムに従って動作する情報処理装置のCPU及びネットワークインタフェース部によって実現される。通信手段選択部22は、通信指示部21が出力した送信要求から通信元及び通信相手のアプリケーションの論理識別子を抽出し、通信手段判定要求を作成して、通信手段判定部12に送信する機能を備えている。なお、通信手段選択部22は、送信要求に含まれる通信元及び通信相手のアプリケーションの論理識別子から、コンピュータの論理識別子を抽出して、通信手段判定要求を作成してもよい。また、通信手段選択部22は、通信手段判定部12から判定結果を受信し、その判定結果に基づいて、第1の通信部か、第2の通信部かのいずれかを選択する機能を備えている。通信手段選択部22は、例えば、判定結果が「メッセージ通信」を表す値ならば、第1の通信部を選択し、判定結果が「共有メモリ通信」を表す値ならば、第2の通信部を選択する。
第1の通信部23は、ネットワーク1を介してデータを送受信する。例えば、ネットワーク1がイーサネットである場合には、第1の通信部は、TCP/IPによる通信を行う。一方、第2の通信部24は、ネットワーク2を介してデータを送受信する。例えば、ネットワーク2が筐体内のインターコネクトである場合には、第2の通信部は、共有メモリによる通信を行う。
アプリケーション29及びアプリケーション39は、それぞれ、送信元のアプリケーション、送信先のアプリケーションであり、通信しながら、所定の処理を行う。
次に、図1及び図2のフローチャートを参照して本実施形態の全体の動作について説明する。
コンピュータ20のアプリケーション29が通信指示部21に通信要求を出力すると、通信指示部21は、アプリケーション29が出力した通信要求を通信手段選択部22に出力する(ステップS1)。ここで、送信要求には、少なくとも、通信元であるアプリケーション29の論理識別子、通信相手であるアプリケーション39の論理識別子及び送信データ本体が含まれる。
次いで、コンピュータ20の通信手段選択部22は、通信指示部21が出力した通信要求に基づいて通信手段選択要求を生成し、生成した通信手段選択要求をコンピュータ10の通信手段判定部12に送信する(ステップS2)。具体的には、通信手段選択部22は、通信指示部21が出力した送信要求から通信元であるアプリケーション29の論理識別子、通信相手であるアプリケーション39の論理識別子を抽出する。そして、通信手段選択部22は、抽出した論理識別子を用いて通信手段判定要求を生成し、通信手段判定部12に送信する。
次いで、コンピュータ10の通信手段判定部12は、通信手段選択要求を受信し、処理配置保存部11を参照して、通信手段を判定する。そして、通信手段判定部12は、判定結果をコンピュータ20の通信手段選択部22に返信する(ステップS3)。具体的には、通信手段判定部12は、受信した通信手段選択要求から、送信元及び送信相手のアプリケーションの論理識別子を抽出する。そして、通信手段判定部12は、抽出した論理識別子をキーにして処理配置保存部11を検索し、通信元及び通信相手のアプリケーションが動作するコンピュータの物理位置識別子を抽出する。そして、通信手段判定部12は、抽出した2つの物理位置識別子を比較して最適な通信手段を判定し、判定結果を通信手段選択部22に返信する。例えば、通信手段判定部12は、筐体番号が一致していれば、「共有メモリ通信」を表す値を判定結果として返信し、一致していなければ、「メッセージ通信」を表す値を判定結果として返信する。このように、通信手段判定部12は、処理配置保存部11が保存する情報に基づいて、通信手段判定要求に含まれる通信元及び通信先の処理実体の論理識別子を物理位置情報に変換し、変換した物理位置情報に基づいて、最も高速な通信手段を選択し、選択した通信手段を通信手段判定結果として、返信する。
次いで、コンピュータ20の通信手段選択部22は、通信手段判定部12から受信した判定結果に基づいて、通信手段の選択を行う(ステップS4)。
判定結果が「メッセージ通信」を表す値の場合(ステップS4のY)、コンピュータ20は、第1の通信部23を用いてコンピュータ30にデータを送信する(ステップS5)。
判定結果が「共有メモリ通信」を表す値の場合(ステップS6のY)、コンピュータ20は、第2の通信部24を用いてコンピュータ30にデータを送信する(ステップS7)。
また、判定結果が「メッセージ通信」でも「共有メモリ通信」でもない場合(例えば、対応する物理位置が登録されていない等の理由により判定できなかった場合)、通信手段選択部22は、エラー情報を出力する。
次に、本実施形態の効果について説明する。
本実施形態では、アプリケーションの論理的な識別子とノード(コンピュータ)の物理的な位置情報の関係を保存している。そして、アプリケーションが通信する時に、通信に関わるアプリケーションの論理的な識別子から、通信に関わるアプリケーションが動作するノードの物理的な位置情報を特定し、これらノードの間で利用可能な最も高速な通信手段を選択する。これにより、分散システムのアプリケーション間の通信手段として、アプリケーションが動作するノードの位置関係に基づいて、複数の通信手段を選択的に利用可能な場合に、最も高速なものを選択できるという効果が得られる。
実施形態2.
次に、本発明による分散システムの第2実施形態について説明する。第2の実施形態における分散システムは、第1の実施形態の構成に加えて、判定結果記憶部を含む。以下、本実施形態について、図面を参照して説明する。
図3を参照すると、本発明の第2の実施形態における分散システムは、第1の実施形態と同様に、コンピュータ10、コンピュータ20及びコンピュータ30を含む。同様に、コンピュータ10とコンピュータ20とコンピュータ30とは、ネットワーク1を介して相互に接続される。また、少なくともコンピュータ20とコンピュータ30とは、ネットワーク2を介して相互に接続される。同様に、コンピュータ10は、通信手段判定部12、処理配置管理部13を含み、さらに、処理配置保存部14を含む。そして、第1の実施形態と同様に、コンピュータ20及びコンピュータ30は、ともに、通信指示部21、第1の通信部23及び第2の通信部24を含み、さらに、通信手段選択部25(本実施形態では、第1の実施形態で示した通信手段選択部22に代えて、通信手段選択部25を含む。)及び判定結果記憶部26を含む。そして、コンピュータ20では、アプリケーション29が、コンピュータ30ではアプリケーション39が動作する点も第1の実施形態と同様である。
通信手段判定部12及び処理配置管理部13は、第1の実施形態と同様の構成である。すなわち、通信手段判定部12は、通信手段選択部22から通信手段判定要求を受信し、通信手段判定要求に含まれるアプリケーションの論理識別子をキーにして処理配置保存部14を検索する。そして、通信手段判定部12は、通信元及び通信相手のアプリケーションが動作するコンピュータの物理位置識別子を抽出し、抽出した2つの物理位置識別子を比較して最適な通信手段を判定し、判定結果を通信手段選択部22に返信する。また、処理配置管理部13は、アプリケーションの起動・終了・移動などを管理する。
処理配置保存部14は、処理配置管理部13がアプリケーションを配置(起動・移動)した時の情報に基づく、アプリケーションの論理識別子とコンピュータの物理位置識別子との組を記憶する。この第1の実施形態と同様の構成に加えて、本実施形態では、処理配置保存部14は、処理配置管理部13がアプリケーションを移動・停止させた時に、コンピュータ20の判定結果記憶部26に対して、該当記憶部分の削除を要求する機能を備えている。この削除要求には、少なくとも、移動・停止したアプリケーションの論理識別子が含まれる。本実施形態においては、処理配置保存部14は、具体的には、光ディスク装置や磁気ディスク装置等の記憶装置とプログラムに従って動作する情報処理装置のCPUとによって実現される。
通信指示部21、第1の通信部23及び第2の通信部24も、第1の実施の形態と同様である。すなわち、通信指示部21は、アプリケーション29から送信要求が出力されると、それを通信手段選択部25に出力する。第1の通信部23及び第2の通信部24は、それぞれ、ネットワーク1、ネットワーク2を介してデータを送受信する。
通信手段選択部25は、通信指示部21が出力した送信要求から通信元及び通信相手のアプリケーションの論理識別子を抽出し、抽出した論理識別子を用いて通信手段判定要求を作成して、通信手段判定部12に送信する。さらに、通信手段選択部25は、通信手段判定部12から判定結果を受信し、その判定結果に基づいて、第1の通信部23か、第2の通信部24かのいずれかを選択する。この第1の実施形態と同様の構成に加えて、本実施形態では、通信手段選択部25は、通信手段判定部12から受信した判定結果を判定結果記憶部26に記憶させる機能を備えている。通信手段選択部25が判定結果記憶部26に記憶させるのは、通信元及び通信相手のアプリケーションの論理識別子と、判定結果とである。さらに、通信手段選択部25は、送信要求から抽出した通信元及び通信相手のアプリケーションの論理識別子、又は、そこから抽出したコンピュータの論理識別子をキーに、判定結果記憶部26を検索する機能を備えている。そして、該当するエントリが見つかった場合には、通信手段選択部25は、そこに含まれる判定結果に基づいて、第1の通信部23か、第2の通信部24かのいずれかを選択する機能を備えている。
判定結果記憶部26は、具体的には、磁気ディスク装置や光ディスク装置等の記憶装置によって実現される。判定結果記憶部26は、通信手段判定部12による判定結果を記憶する。また、判定結果記憶部26は、通信元及び通信相手のアプリケーションの論理識別子と判定結果とを対応付けて記憶する。
アプリケーション29及びアプリケーション39も第1の実施形態と同様に、それぞれ、送信元のアプリケーション、送信先のアプリケーションであり、通信しながら、所定の処理を行う。
次に、図3及び図4のフローチャートを参照して本実施形態の全体の動作について説明する。
コンピュータ20のアプリケーション29が通信指示部21に通信要求を出力すると、通信指示部21は、アプリケーション29が出力した通信要求を通信手段選択部25に出力する(ステップS11)。ここで、送信要求には、少なくとも、通信元であるアプリケーション29の論理識別子、通信相手であるアプリケーション39の論理識別子及び送信データ本体が含まれる。
次いで、コンピュータ20の通信手段選択部25は、通信指示部21が出力した通信要求から、送信元及び送信相手のアプリケーションの論理識別子を抽出する。そして、コンピュータ20の通信手段選択部25は、通信要求から抽出したアプリケーションの論理識別子をキーにして、判断結果記憶部26を検索して、判定結果があるか否かを判定する(ステップS12)。すなわち、通信手段選択部25は、抽出した論理識別子によって識別されるアプリケーション間における最適な通信手段の判定結果が、すでに判定結果記憶部26に記憶されているか否かを判定する。例えば、通信手段選択部25は、通信要求に含まれる識別子に対応する判定結果がすでに記憶されているか否かを判定する。
そして、すでに判定結果があると判定した場合には、通信手段選択部25は、ステップS16に処理を移行する(ステップS12のY)。一方、判定結果がないと判定した場合には、通信手段選択部25は、ステップS13に処理を移行する(ステップS12のN)。
ステップS12において、判定結果がないと判定すると、コンピュータ20の通信手段選択部25は、抽出したアプリケーションの論理識別子を用いて通信手段選択要求を生成し、生成した通信手段選択要求をコンピュータ10の通信手段判定部12に送信する(ステップS13)。
次いで、コンピュータ10の通信手段判定部12は、通信手段選択部25から通信手段選択要求を受信すると、処理配置保存部11を参照して、通信手段を判定する。そして、通信手段判定部12は、判定結果をコンピュータ20の通信手段選択部25に返信する(ステップS14)。具体的には、通信手段判定部12は、受信した通信手段選択要求から、送信元及び送信相手のアプリケーションの論理識別子を抽出する。そして、通信手段判定部12は、抽出した論理識別子をキーにして処理配置保存部14を検索し、通信元及び通信相手のアプリケーションが動作するコンピュータの物理位置識別子を抽出する。そして、通信手段判定部12は、抽出した2つの物理位置識別子を比較して最適な通信手段を判定し、判定結果を通信手段選択部25に返信する。
次いで、コンピュータ20の通信手段選択部25は、受信した判定結果をアプリケーションの論理識別子とともに、判定結果記憶部26に記憶させる(ステップS15)。
ステップS12において判定結果があると判定した場合、又はステップS15において受信した判定結果を判定結果記憶部26に記憶させた場合、コンピュータ20の通信手段選択部25は、判定結果に基づいて通信手段の選択を行う(ステップS16)。具体的には、通信手段選択部25は、ステップS16において、判定結果が「メッセージ通信」であるか否かを判定する。
ステップS16において、判定結果が「メッセージ通信」を表す値であると判定した場合(ステップS16のY)、コンピュータ20は、第1の通信部を用いてコンピュータ30にデータを送信する(ステップS17)。一方、判定結果が「メッセージ通信」を表す値でないと判定した場合(ステップS16のN)、通信手段選択部25は、判定結果が「共有メモリ通信」であるか否かを判定する(ステップS18)。
ステップS18において、判定結果が「共有メモリ通信」を表す値であると判定した場合(ステップS18のY)、コンピュータ20は、第2の通信部を用いてコンピュータ30にデータを送信する(ステップS19)。
また、判定結果が「メッセージ通信」でも「共有メモリ通信」でもない場合(ステップS18のN)、通信手段選択部25は、エラー情報を出力する。
次に、本実施形態の効果について説明する。
本実施形態では、第1の実施形態と同様に、アプリケーションの論理的な識別子とノード(コンピュータ)の物理的な位置情報の関係を保存する。そして、アプリケーションが通信する時に、通信に関わるアプリケーションの論理的な識別子から、通信に関わるアプリケーションが動作するノードの物理的な位置情報を特定し、これらノードの間で利用可能な最も高速な通信手段を選択する。これにより、分散システムのアプリケーション間の通信手段として、アプリケーションが動作するノードの位置関係に基づいて、複数の通信手段を選択的に利用可能な場合に、最も高速なものを選択できるという効果が得られる。
さらに、本実施形態では、通信手段選択部25は、通信手段判定部12が返信した判定結果を、判定手段記憶部26に保存する。そして、通信手段選択部25は、判定手段記憶部26を参照し、通信手段を選択する。すでに同じ判定が行われている場合には、無駄な処理を重ねて行うことなく、その過去の判定結果を再利用して通信手段の選択を行う。これにより、他のノードと通信を行うたびに、通信手段選択部25と通信手段判定部12との間で行われる通信を減らすことができるという効果が得られる。
第1の実施形態及び第2の実施形態では、コンピュータ10、コンピュータ20及びコンピュータ30がそれぞれ別々にネットワーク1に接続されていると説明したが、例えば、コンピュータ10とコンピュータ20とが、又は、コンピュータ10とコンピュータ30とが1つコンピュータとして実現されていてもよい。
また、第1の実施形態及び第2の実施形態でコンピュータと示したものは、物理的な筐体を持つものだけを示すのではなく、例えば、ハードウェアによるパーティションやVMを含んでも構わない。
さらに、第1の実施形態及び第2の実施形態では、第1の通信部と第2の通信部との2種類の通信部を持つ構成を提示したが、3種類以上の通信部を持つ場合も同様に提供可能である。この場合、通信手段選択部22や通信手段選択部25の動作が、第3の通信部などを選択するための条件分岐が増えることになる。
次に、具体的な実施例を用いて本発明の動作を説明する。まず、本発明をLinux(登録商標)が搭載された複数のコンピュータで構成された分散システムに適用する例を示す。
図5は、本発明による分散システムの具体的な実施例の構成を示す図である。図5において、マシン100〜マシン103及びコントローラ110は、すべてLinuxが搭載されたコンピュータである。
マシン100とマシン101とは、1つの筐体に収められたコンピュータをハードウェアにおいて2つのパーティションに分割したものである。マシン102は、マシン100及びマシン101と同じ部屋の中に設置されている。マシン103は、マシン100、マシン101及びマシン102とは少し離れた場所、例えば同じビルの他の階に設置されているとする。また、マシン100及びマシン101には、イーサネット、Infiniband及びインターコネクトの3種類の通信ハードウェアが搭載されている。また、マシン102には、イーサネット及びInfinibandが搭載されている。また、マシン103には、イーサネットが搭載されている。3種類のハードウェアは、Linuxのデバイスとして実現されており、それぞれ、”eth0”、“inf0”、”icon0”というデバイス名がつけられている。
また、コントローラ110は、マシン100〜マシン103とIP通信が可能な場所に設置されている。また、コントローラ110は、少なくともマシン100のデフォルトゲートウェイとして設定されている。
この分散システムでは、以下のルールに従って通信手段を選択することが可能である。
同一の筐体内である場合には、イーサネットを用いたIP通信やInfinibandを用いたRDMA通信、インターコネクトを用いた共有メモリ通信を選択することができる。
また、筐体は異なるが、同一の部屋内である場合には、イーサネットを用いたIP通信やInfinibandを用いたRDMA通信を選択することができる。
また、筐体も部屋も異なる場合には、イーサネットを用いたIP通信を選択することができる。
なお、通信速度は、イーサネットを用いたIP通信<Infinibandを用いたRDMA通信<インターコネクトを用いた共有メモリ通信の順番であるとする。本実施例では、可能な限り高速な通信手段を選択する。
この分散システムに対して、本発明は次のように適用できる。
本実施例において、第1および第2の実施形態における、コンピュータ10の処理配置保存部11と処理配置管理部13とは、コントローラ110上の分散シェルと配置情報ファイルとして実現される。また、通信手段判定部12は、コントローラ110上のサーバプロセスとして実現される。ここで、分散シェルは、遠隔のコンピュータ上にアプリケーションを実行するための遠隔実行コマンド(rsh、sshなど)を利用する。さらに、分散シェルは、アプリケーションの遠隔起動に成功した場合、その筐体番号や部屋番号などを遠隔のコンピュータの設定ファイルなどから取得し、遠隔のコンピュータのIPアドレスと組にして保存する。
一例として、マシン100〜マシン103の上に、アプリケーションを起動したあとの配置情報ファイルの内容を図6に示す。ここで、コンピュータとIPアドレスとの対応は、マシン100が10.99.99.100、マシン101が10.99.99.101、マシン102が10.99.99.102、マシン103が10.99.99.103であるとする。
また、通信指示部21、通信手段選択部22、第1の通信部23及び第2の通信部24は、いずれもマシン100〜マシン103上のオペレーティングシステム(OS)及び通信用ハードウェアの一部機能として実現されている。
マシン100が、マシン101と通信する場合、マシン100上のアプリケーションは、マシン101を宛先とするsendシステムコールを出力する。そして、マシン100上のアプリケーションは、マシン100のOSに宛先のIPアドレスとデータ本体とを出力する。この時点では、マシン100には、マシン101に対するルーティング設定がないため、マシン100は、最初のパケットをデフォルトゲートウェイであるコントローラ110に送信する。このパケットは、IP通信で送信されるので、送り元(マシン100)のIPアドレスと送り先(マシン101)のIPアドレスとを含む。
次いで、コントローラ110は、受信したパケットからマシン100のIPアドレスとマシン101のIPアドレスとを抽出する。そして、コントローラ110は、抽出したIPアドレスをキーにして、それぞれのマシンの筐体番号と部屋番号とを検索し、これらの番号から前述のルールに従って、適切な通信手段を選択する。本実施例の場合、マシン100のIPアドレス10.99.99.100から、部屋番号が1、筐体番号が1、マシン101のIPアドレス10.99.99.101から、部屋番号が1、筐体番号が1であるとわかる。これは、「同一の筐体内」の場合にあてはまるので、コントローラ110は、もっとも通信速度が大きい「共有メモリ通信」を選択する。
次いで、コントローラ110は、この判定結果を、マシン100に伝えるために、リモートコマンドを実行することで、マシン100のルーティング設定を変更する。具体的には、コントローラ110は、“rsh 10.99.99.100 route add 10.99.99.101 dev nwk0”というコマンドを実行する。このコマンドの後半の”route add 10.99.99.101 dev nwk0”の部分は、「10.99.99.101に送信するパケットはデバイス”nwk0”を使って送信する」というルーティング情報を設定している。
ルーティング情報が設定された後には、マシン100は、マシン101に送信するパケットを、“nwk0”すなわち、インターコネクトを用いた共有メモリ通信により送信するようになる。
マシン100からマシン102に通信が開始されるとき、マシン100からマシン103に通信が開始されるときも、同様の処理が行われる。そして、最終的にマシン100のルーティング情報が更新され、マシン100は、それぞれ最も高速な通信ハードウェアを用いて通信を行うようになる。図7に、通信開始前及び通信開始後のマシン100のルーティング情報(routeコマンドの出力)を示す。
以上のように、本実施例では、分散システムにおいて、アプリケーション間の通信手段として、アプリケーションが動作するノードの位置関係に基づいて、最も高速なものを選択することができる。
本実施例では、OSとしてLinuxを用いたが、Linux以外のOSであっても、ルーティング情報の設定機能があれば、本実施例と同様の実装が可能である。
次に、第2の実施例を用いて本発明の動作を説明する。ここでは、「プログラマブルフロー・スイッチ」と呼ばれるネットワークスイッチと仮想マシンとを含む分散システムに本発明を適用する例を示す。
「プログラマブルフロー・スイッチ」とは、実際にフローを処理するスイッチ部と、そのスイッチ部にどのようなフロー処理を行わせるかを指示する制御部(制御サーバー)とに分離したスイッチのことである。フロースイッチでは、スイッチ内でのパケットの流れ(フロー)を直接制御することができる。すなわち、フロースイッチは、パケットの送信元/送信先のIPアドレス、パケットの種類などに基づいて、そのパケットを何番のネットワークポートに出力するかを、フローテーブルと呼ばれる情報を用いて、制御する。「プログラマブルフロー・スイッチ」は、ネットワークスイッチを、フローテーブルの設定のインターフェースの部分で、スイッチ本体とコントローラとに分離したものである。プログラマブルフロー・スイッチは、2008年10月にNECから試作品が発表されている。
図8に、プログラマブルフロー・スイッチと仮想マシンとを組み合わせた分散システムの構成の一例を示す。なお、図8に示す例では、プログラマブルフロー・スイッチを仮想マシンモニタ(VMM)内の仮想スイッチ112として実装している。
この例でも、コンピュータの構成は実施例1と同様である。すなわち、図7に示されるように、マシン100及びマシン101は、1つの筐体に収められたコンピュータをハードウェアにおいて2つのパーティションに分割したものである。マシン102は、マシン100及びマシン101と同じ部屋の中に設置されている。マシン103は、マシン100、マシン101及びマシン102とは少し離れた場所、例えば同じビルの他の階に設置されているとする。また、マシン100及びマシン101には、イーサネット、Infiniband、インターコネクトの3種類の通信ハードウェアが搭載されている。また、マシン102には、イーサネット及びInfinibandが搭載されている。また、マシン103には、イーサネットが搭載されている。
そして、本実施例では、さらに、各マシンの上にVMMが搭載され、その上で仮想マシン(VM)が動作する。マシン100上でVM−A、マシン101上でVM−B、マシン102上でVM−C、マシン103上でVM−Dが動作しているものとする。
さらに、各コンピュータのVMM上では、通信ハードウェア毎の管理VMが動作する。すなわち、イーサネット通信用のVM、Infiniband用のVM及びインターコネクト用のVMが動作する。これらのVMは、アプリケーションが動作する通常のVMに対して、1つの通信ハードウェアを複数のハードウェアがあるかのように仮想化する機能(I/O仮想化機能)を備えている。
コントローラ111は、VM−A、VM−B、VM−C及びVM−DとIP通信が可能な場所に設置されている。また、コントローラ111は、VM−Aのデフォルトゲートウェイとして設定されている。
本実施例において、第1および第2の実施形態における、コンピュータ10の処理配置保存部11と処理配置管理部13とは、コントローラ111上のVM管理コンソールとVM配置情報ファイルとして実現される。また、通信手段判定部12は、コントローラ111上のサーバプロセスとして実現される。ここで、VM管理コンソールは、VMの起動、終了、移動させるためのVM制御コマンドを利用する。さらに、VM管理コンソールは、VMの起動に成功した場合、その筐体番号や部屋番号などを、VMのIPアドレスと組にして保存する。
また、通信指示部21及び通信手段選択部22は、仮想スイッチ112の一部機能として実現されている。第1の通信部23及び第2の通信部24は、通信ハードウェア用のVM及び通信用ハードウェアの一部機能として実現される。
VM−Aが、VM−Bと通信する場合、VM−A上のアプリケーションは、OSを介して、VM−Bを宛先とするIPパケットを出力する。そして、VM−A上のアプリケーションは、仮想スイッチ112にIPパケットを出力する。この時点では、仮想スイッチ112には、VM−AからVM−Bへの通信に対するフローの設定がない。そのため、プログラマブル・フロースイッチは、その基本機能により、最初のパケットの転送を保留し、パケットの一部をコントローラ111に送信する。このパケットには、送り元(VM−A)のIPアドレスと送り先(VM−B)のIPアドレスとが含まれる。
コントローラ111は、受信したパケットからVM−AのIPアドレスとVM−BのIPアドレスとを抽出し、これらをキーにして、それぞれのVMが動作するマシンの筐体番号と部屋番号とを検索する。そして、コントローラ111は、これらの番号から実施例1と同様のルールに従って、適切な通信手段、すなわち、通信用VMを選択する。本実施例の場合、コントローラ111は、「インターコネクト用VM」を選択する。
次いで、コントローラ111は、この判定結果に基づいて、VM−AからVM−Bへのパケットをインターコネクト通信用VMに送信するため、フロー設定情報を仮想スイッチ112に返信する。次いで、仮想スイッチ112は、受信したフロー設定情報に基づいて、フローテーブルを設定する。
フローテーブルが設定された後には、VM−Aは、VM−Bに送信するパケットを、インターコネクト通信用VMを経由して、インターコネクトを用いた共有メモリ通信により送信するようになる。
以上のように、本実施例では、分散システムにおいて、アプリケーション間の通信手段として、アプリケーションが動作するノードの位置関係に基づいて、最も高速なものを選択することができる。
以上のことから、本発明は、分散システムを構成するコンピュータ上に処理(プロセス、タスク、仮想マシン)を配置、又は、移動させるための処理配置管理手段と連携し、アプリケーション間の通信を最適化する通信手段選択方法および通信手段選択プログラム、これらを内包する分散システムに関するといえる。
また、本発明は、以下のような手段を備えているといえる。
本発明は、分散システムを構成するノードのうち、少なくとも1つの第1のノードが、処理配置保存部、通信手段判定部を有し、少なくとも1つの第2のノードが、通信指示部、通信手段選択部、2種以上の通信部を有することを特徴とする分散システムである。この分散システムにおいて、第1のノードの処理配置保存部は、処理配置管理部からアプリケーションやVMなどの処理実体が動作するノードの物理位置情報を入手し、処理配置保存部に保存する。一方、第2のノード上で実行されている処理実体が、第2のノードとは異なる第3のノード上の処理実体に対して通信をするために、通信指示部が呼び出された場合に、通信手段選択部が第1のノードの通信手段判定部に通信手段判定要求を送る。
第1のノードの通信手段判定部は、通信手段判定要求を受け取ると、処理配置保存部に保存された情報に基いて、通信手段判定要求に含まれる通信元と通信先の処理実体の論理識別子を物理的なノードの位置を示す物理位置情報に変換し、さらに、通信手段判定部は、この変換された物理位置情報に基いて、最も高速な通信手段を選択し、通信手段判定結果を、第2ノードに返す。通信手段選択部は、通信手段判定結果を受け取り、そこで指定された通信手段を提供する通信部を呼び出して、通信を行う。
さらに、第2ノードに通信手段判定結果を保存するための判定結果記憶部を有し、通信手段選択部が第1のノードの通信手段判定部に通信手段判定要求を送る前に、判定結果記憶部を参照し、対応する判定結果が見つかった場合は、その判定結果に基づいて通信手段を選択する。
以上のことから、本発明は、以下のような効果を奏する。
本発明が奏する効果は、分散システムのアプリケーション間の通信手段として、アプリケーションが動作するノードの位置関係に基づいて、複数の通信手段を選択的に利用可能な場合に、最も高速なものを選択できることである。その理由は、アプリケーションの論理的な識別子とノードの物理的な位置情報の関係を保存し、アプリケーションが通信を開始する時に、通信に関わるアプリケーションの論理的な識別子から、通信に関わるアプリケーションが動作するノードの物理的な位置情報を特定し、これらノードの間で利用可能な最も高速な通信手段を選択するように構成されているためである。
次に、本発明による分散システムの最小構成について説明する。図9は、分散システムの最小の構成例を示すブロック図である。図9に示すように、分散システムは、最小の構成要素として、記憶手段100、通信手段判定手段110及び通信手段選択手段120を含む。
図9に示す最小構成の分散システムでは、記憶手段100は、複数の通信手段を含むノードの物理的な位置情報とノード上で動作するアプリケーションの識別情報とを対応付けて記憶している。そして、通信手段判定手段110は、第1のノード上で動作するアプリケーションが第2のノード上で動作するアプリケーションと通信を行う際に、アプリケーションの識別情報に基づいて、記憶手段100から第1のノード及び第2のノードの位置情報を抽出し、抽出した位置情報に基づいて、複数の通信手段から最適な通信手段を判定する。次いで、通信手段選択手段120は、通信手段判定手段110の判定結果に基づいて、通信手段を選択する。
従って、最小構成の分散システムによれば、ノードの物理的な位置情報に基づいて通信手段を選択することで、アプリケーション間の通信を最適化することができる。
なお、本実施形態では、以下の(1)〜(5)に示すような分散システムの特徴的構成が示されている。
(1)分散システムは、複数のノードを含む分散システムであって、各ノードは、複数の通信手段を含み、ノードの物理的な位置情報とノード上で動作するアプリケーションの識別情報とを対応付けて記憶する記憶手段(例えば、処理配置保存部11及び処理配置管理部13によって実現される)と、第1のノード(例えば、コンピュータ20によって実現される)上で動作するアプリケーション(例えば、アプリケーション29によって実現される)が第2のノード(例えば、コンピュータ30によって実現される)上で動作するアプリケーション(例えば、アプリケーション39によって実現される)と通信を行う際に、アプリケーションの識別情報に基づいて、記憶手段から第1のノード及び第2のノードの位置情報を抽出し、抽出した位置情報に基づいて、複数の通信手段から最適な通信手段を判定する通信手段判定手段(例えば、通信手段判定部12によって実現される)と、通信手段判定手段の判定結果に基づいて、通信手段を選択する通信手段選択手段(例えば、通信手段選択部22によって実現される)とを含むことを特徴とする。
(2)分散システムは、通信手段判定手段が判定したアプリケーション間の最適な通信手段を記憶する判定結果記憶手段(例えば、判定結果記憶部26によって実現される)を含み、通信手段選択手段は、通信手段判定手段に判定要求を送信する前に、判定結果記憶手段を参照し、判定要求に対応する判定結果が記憶されている場合には、記憶されている判定結果に基づいて通信手段を選択するように構成されていてもよい。
(3)分散システムは、通信手段判定装置を備え、通信手段判定装置は、記憶手段と、通信手段判定手段とを含み、各ノードは、通信手段選択手段を含み、通信手段選択手段は、通信手段判定装置から受信した通信手段判定手段の判定結果に基づいて通信手段を選択するように構成されていてもよい。
(4)分散システムは、分散システムを構成するノードのうち、第1のノード(例えば、コンピュータ10によって実現される)が、処理配置保存手段(例えば、処理配置保存部11によって実現される)と、通信手段判定手段(例えば、通信手段判定部12によって実現される)とを含み、第2のノード(例えば、コンピュータ20によって実現される)が、通信指示手段(例えば、通信指示部21によって実現される)と、通信手段選択手段(例えば、通信手段選択部22によって実現される)と、2種以上の通信手段(例えば、第1の通信部や第2の通信部によって実現される)とを含み、第1のノードの処理配置保存手段は、処理実体(例えば、アプリケーション29)が動作するノードの物理的な位置を示す物理位置情報を保存し、通信手段選択手段は、第2のノード上で実行されている処理実体が、第2のノードとは異なる第3のノード(例えば、コンピュータ30によって実現される)上の処理実体(例えば、アプリケーション39)に対して通信をするために、通信指示手段を呼び出した場合に、第1のノードの通信手段判定手段に最適な通信手段の判定を要求する通信手段判定要求を送信し、第1のノードの通信手段判定手段は、通信手段判定要求を受信すると、処理配置保存手段が保存する情報に基づいて、通信手段判定要求に含まれる通信元及び通信先の処理実体の論理識別子を物理位置情報に変換し、変換した物理位置情報に基づいて、最も高速な通信手段を選択し、選択した通信手段を通信手段判定結果として、第2のノードに返信し、通信手段選択部は、第1のノードの通信手段判定部から通信手段判定結果を受信すると、通信手段判定結果に示された通信手段を用いて、通信を行うように構成されていてもよい。
(5)分散システムにおいて、第2ノードは、通信手段判定結果を保存するための判定結果記憶手段(例えば、判定結果記憶部26によって実現される)を備え、通信手段選択手段は、第1のノードの通信手段判定手段に通信手段判定要求を送信する前に、判定結果記憶手段を参照し、通信手段判定要求に対応する判定結果が記憶されている場合には、記憶されている判定結果に基づいて通信手段を選択するように構成されていてもよい。
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2009年10月15日に出願された日本特許出願2009−238611を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、データセンタのIT/NW統合管理製品等に適用できる。

Claims (9)

  1. 複数のノードを含む分散システムであって、
    各ノードは、複数の通信手段を含み、
    ノードの物理的な位置情報とノード上で動作するアプリケーションの識別情報とを対応付けて記憶する記憶手段と、
    第1のノード上で動作するアプリケーションが第2のノード上で動作するアプリケーションと通信を行う際に、アプリケーションの識別情報に基づいて、前記記憶手段から前記第1のノード及び前記第2のノードの位置情報を抽出し、抽出した位置情報に基づいて、複数の通信手段から最適な通信手段を判定する通信手段判定手段と、
    前記通信手段判定手段の判定結果に基づいて、通信手段を選択する通信手段選択手段とを
    含むことを特徴とする分散システム。
  2. 通信手段判定手段が判定したアプリケーション間の最適な通信手段を記憶する判定結果記憶手段を含み、
    通信手段選択手段は、前記通信手段判定手段に判定要求を送信する前に、前記判定結果記憶手段を参照し、前記判定要求に対応する判定結果が記憶されている場合には、前記記憶されている判定結果に基づいて通信手段を選択する
    請求項1記載の分散システム。
  3. 通信手段判定装置を備え、
    前記通信手段判定装置は、記憶手段と、通信手段判定手段とを含み、
    各ノードは、通信手段選択手段を含み、
    前記通信手段選択手段は、前記通信手段判定装置から受信した前記通信手段判定手段の判定結果に基づいて通信手段を選択する
    請求項1又は請求項2記載の分散システム。
  4. 分散システムを構成するノードのうち、第1のノードが、処理配置保存手段と、通信手段判定手段とを含み、第2のノードが、通信指示手段と、通信手段選択手段と、2種以上の通信手段とを含み、
    前記第1のノードの前記処理配置保存手段は、処理実体が動作するノードの物理的な位置を示す物理位置情報を保存し、
    前記通信手段選択手段は、第2のノード上で実行されている処理実体が、第2のノードとは異なる第3のノード上の処理実体に対して通信をするために、前記通信指示手段を呼び出した場合に、前記第1のノードの通信手段判定手段に最適な通信手段の判定を要求する通信手段判定要求を送信し、
    前記第1のノードの通信手段判定手段は、前記通信手段判定要求を受信すると、前記処理配置保存手段が保存する情報に基づいて、前記通信手段判定要求に含まれる通信元及び通信先の処理実体の論理識別子を物理位置情報に変換し、変換した前記物理位置情報に基づいて、最も高速な通信手段を選択し、選択した通信手段を通信手段判定結果として、前記第2のノードに返信し、
    前記通信手段選択部は、前記第1のノードの通信手段判定部から前記通信手段判定結果を受信すると、前記通信手段判定結果に示された通信手段を用いて、通信を行う
    ことを特徴とする分散システム。
  5. 第2ノードは、通信手段判定結果を保存するための判定結果記憶手段を備え、
    通信手段選択手段は、第1のノードの通信手段判定手段に通信手段判定要求を送信する前に、前記判定結果記憶手段を参照し、前記通信手段判定要求に対応する判定結果が記憶されている場合には、前記記憶されている判定結果に基づいて通信手段を選択する
    請求項4に記載の分散システム。
  6. 複数のノードを含む分散システムにおいて、通信手段を選択する通信手段選択方法であって、ノードの物理的な位置情報とノード上で動作するアプリケーションの識別情報とを対応付けて記憶し、
    第1のノード上で動作するアプリケーションが第2のノード上で動作するアプリケーションと通信を行う際に、アプリケーションの識別情報に基づいて、前記第1のノード及び前記第2のノードの位置情報を抽出し、抽出した位置情報に基づいて、複数の通信手段から最適な通信手段を判定し、
    判定結果に基づいて、通信手段を選択する
    ことを特徴とする通信手段選択方法。
  7. 判定したアプリケーション間の最適な通信手段を記憶し、
    判定要求を送信する前に、前記判定要求に対応する判定結果が記憶されている場合には、前記記憶されている判定結果に基づいて通信手段を選択する
    請求項6記載の通信手段選択方法。
  8. 複数のノードを含む分散システムにおいて、通信手段を選択するための通信手段選択プログラムであって、
    ノードの物理的な位置情報とノード上で動作するアプリケーションの識別情報とを対応付けて記憶するコンピュータに、
    第1のノード上で動作するアプリケーションが第2のノード上で動作するアプリケーションと通信を行う際に、アプリケーションの識別情報に基づいて、前記第1のノード及び前記第2のノードの位置情報を抽出し、抽出した位置情報に基づいて、複数の通信手段から最適な通信手段を判定する通信手段判定処理と、
    判定結果に基づいて、通信手段を選択する通信手段選択処理とを
    実行させるための通信手段選択プログラム。
  9. 通信手段判定処理で判定したアプリケーション間の最適な通信手段を記憶するコンピュータに、
    通信手段選択処理で、前記通信手段判定処理に判定要求を送信する前に、前記判定要求に対応する判定結果が記憶されている場合には、前記記憶されている判定結果に基づいて通信手段を選択する処理を実行させる
    請求項8記載の通信手段選択プログラム。
JP2011543937A 2009-10-15 2010-10-12 分散システム、通信手段選択方法および通信手段選択プログラム Active JP5541292B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011543937A JP5541292B2 (ja) 2009-10-15 2010-10-12 分散システム、通信手段選択方法および通信手段選択プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009238611 2009-10-15
JP2009238611 2009-10-15
PCT/JP2010/006057 WO2011045919A1 (ja) 2009-10-15 2010-10-12 分散システム、通信手段選択方法および通信手段選択プログラム
JP2011543937A JP5541292B2 (ja) 2009-10-15 2010-10-12 分散システム、通信手段選択方法および通信手段選択プログラム

Publications (2)

Publication Number Publication Date
JPWO2011045919A1 JPWO2011045919A1 (ja) 2013-03-04
JP5541292B2 true JP5541292B2 (ja) 2014-07-09

Family

ID=43875975

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011543937A Active JP5541292B2 (ja) 2009-10-15 2010-10-12 分散システム、通信手段選択方法および通信手段選択プログラム

Country Status (3)

Country Link
US (1) US20120221621A1 (ja)
JP (1) JP5541292B2 (ja)
WO (1) WO2011045919A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101782554B1 (ko) * 2010-12-23 2017-10-10 한국전자통신연구원 가상 스위치를 이용한 개인 공간 구성 장치 및 그 방법
US8832217B2 (en) 2011-09-29 2014-09-09 Oracle International Corporation System and method for supporting different message queues in a transactional middleware machine environment
US9690638B2 (en) 2011-09-29 2017-06-27 Oracle International Corporation System and method for supporting a complex message header in a transactional middleware machine environment
US9116761B2 (en) * 2011-09-29 2015-08-25 Oracle International Corporation System and method for preventing single-point bottleneck in a transactional middleware machine environment
US9996403B2 (en) * 2011-09-30 2018-06-12 Oracle International Corporation System and method for providing message queues for multinode applications in a middleware machine environment
JP5930046B2 (ja) * 2012-08-17 2016-06-08 富士通株式会社 情報処理装置、及び情報処理装置の制御方法
JP6217386B2 (ja) * 2013-12-25 2017-10-25 富士通株式会社 マルチプロセッサ用プログラム生成方法
US10366359B2 (en) * 2015-11-18 2019-07-30 Microsoft Technology Licensing, Llc Automatic extraction and completion of tasks associated with communications

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06350666A (ja) * 1993-06-04 1994-12-22 Nec Corp 通信プロトコル間のゲート方式
JP2004535615A (ja) * 2001-03-08 2004-11-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 区分処理環境における共有i/o
JP2007043602A (ja) * 2005-08-05 2007-02-15 Fujitsu Ltd 通信制御サーバ
JP2008278478A (ja) * 2007-04-02 2008-11-13 Hitachi Ltd 計算機システム及び通信制御方法
JP2009253811A (ja) * 2008-04-09 2009-10-29 Nec Corp 端末装置、ネットワーク接続方法及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6105069A (en) * 1997-01-22 2000-08-15 Novell, Inc. Licensing controller using network directory services
US7213061B1 (en) * 1999-04-29 2007-05-01 Amx Llc Internet control system and method
US8274909B2 (en) * 2009-03-26 2012-09-25 Limelight Networks, Inc. Conditional protocol control
US8125927B2 (en) * 2008-06-18 2012-02-28 Solana Networks Inc. Method and system for network topology discovery

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06350666A (ja) * 1993-06-04 1994-12-22 Nec Corp 通信プロトコル間のゲート方式
JP2004535615A (ja) * 2001-03-08 2004-11-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 区分処理環境における共有i/o
JP2007043602A (ja) * 2005-08-05 2007-02-15 Fujitsu Ltd 通信制御サーバ
JP2008278478A (ja) * 2007-04-02 2008-11-13 Hitachi Ltd 計算機システム及び通信制御方法
JP2009253811A (ja) * 2008-04-09 2009-10-29 Nec Corp 端末装置、ネットワーク接続方法及びプログラム

Also Published As

Publication number Publication date
JPWO2011045919A1 (ja) 2013-03-04
WO2011045919A1 (ja) 2011-04-21
US20120221621A1 (en) 2012-08-30

Similar Documents

Publication Publication Date Title
JP5541292B2 (ja) 分散システム、通信手段選択方法および通信手段選択プログラム
US20220318184A1 (en) Virtual rdma switching for containerized applications
US10698717B2 (en) Accelerator virtualization method and apparatus, and centralized resource manager
US9244817B2 (en) Remote debugging in a cloud computing environment
JP5863771B2 (ja) 仮想マシン管理システム、及び仮想マシン管理方法
US7962587B2 (en) Method and system for enforcing resource constraints for virtual machines across migration
US20190108079A1 (en) Remote Procedure Call Method for Network Device and Network Device
EP2318926B1 (en) Method and system for low-overhead data transfer
US10127067B2 (en) Method and computing device for selecting protocol stack for virtual machines
CN111034160B (zh) 在负载均衡连接上具有虚拟vip和源代理的非dsr分布式负载均衡器
EP2835938B1 (en) Message publishing and subscribing method and apparatus
US20110239216A1 (en) Service providing system, a virtual machine server, a service providing method, and a program thereof
KR20160087706A (ko) 가상화 플랫폼을 고려한 분산 데이터 처리 시스템의 자원 할당 장치 및 할당 방법
CN107924332B (zh) Ict服务供应的方法和系统
CN110389711B (zh) 帮助端点设备实现sr-iov功能的方法、设备和非瞬态计算机可读介质
US11416267B2 (en) Dynamic hardware accelerator selection and loading based on acceleration requirements
CN109194589B (zh) 一种mdc实现方法及装置
CN114124740A (zh) 一种vnf实例化的方法和装置
JP4965562B2 (ja) 組込機器による外部との通信を代行サーバにより制御させる技術
JP6036445B2 (ja) 通信システム、中継装置、通信方法、及びプログラム
JP2006277204A (ja) 携帯通信端末装置
CN108353017B (zh) 计算系统和用于操作多网关虚拟机上的多个网关的方法
CN116489064B (zh) 一种内外场相结合的多模态网络试验环境构建方法和装置
JP2018164235A (ja) 通信端末および通信制御方法
CN118118348A (zh) 一种虚拟化网络功能vnf的实例化方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130904

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: 20140408

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140421

R150 Certificate of patent or registration of utility model

Ref document number: 5541292

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150