説明

通信制御プログラムおよび通信制御方法

1つの伝送路上での障害により異なるコンピュータ上のプロセス間通信が中断するのを防止する。コンピュータ(1)の通信制御部(1b)は、任意のプロセスからの接続要求に応じて、通信装置(1c)、(1d)のうち少なくとも1つを選択し、選択した通信装置を介した物理コネクションを確立する。通信制御部(1b)は、確立された1以上の物理コネクションを1つに纏めた論理接続を定義する。また、論理接続に含まれる物理コネクションに障害が発生すると、通信制御部(1b)は、障害が発生した物理コネクションと異なる通信装置を介した物理コネクションを再確立して、論理接続に含める。そして、プロセスからの論理接続に適合する通信要求を受け取ると、通信制御部(1b)は、そのとき論理接続に含まれる物理コネクションを介して、通信要求に応じた通信を行う。

【発明の詳細な説明】
【技術分野】
本発明はコンピュータ間の通信を制御するための通信制御プログラムおよび通信制御方法に関し、特に多重化された伝送路を用いて通信を行うための通信制御プログラムおよび通信制御方法に関する。
【背景技術】
LAN(Local Area Network)等でコンピュータを接続する場合、異なるコンピュータ間には1つの伝送経路しか存在しないことがほとんどである。ただし、1つの伝送路で接続していると、その伝送路に障害が発生したとき、コンピュータ間の通信が途絶えてしまう。そこで、高い信頼性が必要な場合、通信機器の二重化が必要となる。
たとえば、システムに2つのLANアダプタを設ける。そして、一方のLANアダプタを運用系ホストとし、他方のLANアダプタを待機系ホストとする。運用系ホストに障害が発生した場合、運用系ホストのLANアダプタを無効状態にし、待機系ホストのLANアダプタを有効状態にする(たとえば、特許文献1参照)。これにより、LANアダプタに障害が発生したときに、別のLANアダプタを介して通信を復帰させることができる。
また、複数の通信アダプタを搭載したシステムで通信アダプタを切り替えたとき、切り替え先の通信アダプタからARP(Address Resolution Protocol)要求メッセージを同報送信する技術もある(たとえば、特許文献2参照)。これにより、切り替え先の通信アダプタは、障害発生時に他の装置のMAC(Media Access Control)アドレスを取得し、通信状態を確立することができる。
【特許文献1】 特開平9−326810号公報
【特許文献2】 特開平10−320327号公報
ところで、現在の多くのネットワークでは、パケットの転送に失敗すると、成功するまでパケット転送をリトライする。所定回数のリトライによってもパケット転送が成功しなければ、アプリケーション等のプロセスがコネクションの切断を認識し、別の伝送経路を介してコネクションを接続する。
しかし、従来のコネクションの切り替え方法では、実際に伝送経路に障害が発生してから、アプリケーション等のプロセスがコネクション切断を認識するまでに時間がかかっていた。すなわち、パケット送信のリトライが複数回失敗するまで、伝送線路の障害が検知されない。そのため、パケット送信のリトライを行っている間、異なるコンピュータ上のプロセス間の通信が停止する。その結果、ネットワーク全体としての処理能力が低下してしまう。
また、異なるコンピュータ間の複数経路として、物理的に経路が異なっている場合、経路の途中のみを複数経路として多重化されている場合が多い。たとえば、上記特許文献1や特許文献2では、LANアダプタ(通信アダプタ)のみが二重化されている。また、ルータなどの途中の装置を経由した先の伝送経路が複数あり、効率の良い経路を選択することもできる。しかし、システムの用途によっては、伝送路の一部のみが二重化では信頼性が不十分な場合がある。また、ルータなどの装置による経路選択を行うと、複数の経路を同時に使うなどの自由度が奪われてしまう。
【発明の開示】
本発明はこのような点に鑑みてなされたものであり、1つの伝送路上での障害により異なるコンピュータ上のプロセス間通信が中断するのを防止した通信管理プログラムを提供することを目的とする。
本発明では上記課題を解決するために、図1に示すような機能を実現する通信制御プログラムが提供される。本発明に係る通信制御プログラムは、複数の伝送経路のそれぞれに接続された複数の通信装置を介して他の装置と通信を行うためのものである。この通信制御プログラムに従ってコンピュータ1は、以下の処理を実行する。
コンピュータ1は、任意のプロセスからの接続要求に応じて、通信装置1c、1dのうち少なくとも1つを選択し、選択した通信装置を介した物理コネクションを確立する。次に、コンピュータ1は、確立された1以上の物理コネクションを1つに纏めた論理接続を定義する。さらに、コンピュータ1は、論理接続に含まれる物理コネクションに障害が発生すると、障害が発生した物理コネクションと異なる通信装置を介した物理コネクションを再確立して、論理接続に含める。そして、コンピュータ1は、プロセス1aからの論理接続に適合する通信要求を受け取ると、そのとき論理接続に含まれる物理コネクションを介して、通信要求に応じた通信を行う。
これにより、プロセス1aからの接続要求に対して、1以上の物理コネクションを確立するとともに、それらの物理コネクションを1つに纏めた論理接続が定義される。物理コネクションに障害が発生すれば、別の通信装置を介して再接続が行われる。論理接続に含まれる物理コネクションの確立が維持される。そして、プロセス1aから論理接続に適合する通信要求が出されると、論理接続に含まれる物理コネクションを介して通信が行われる。
また、上記課題を解決するために、複数の伝送経路のそれぞれに接続された複数の通信装置を介して他の装置と通信を行うための通信制御方法において、任意のプロセスからの接続要求に応じて、前記通信装置のうち少なくとも1つを選択し、選択した前記通信装置を介した物理コネクションを確立し、確立された1以上の前記物理コネクションを1つに纏めた論理接続を定義し、前記論理接続に含まれる前記物理コネクションに障害が発生すると、障害が発生した前記物理コネクションと異なる前記通信装置を介した物理コネクションを再確立して、前記論理接続に含め、前記プロセスからの前記論理接続に適合する通信要求を受け取ると、そのとき前記論理接続に含まれる前記物理コネクションを介して、前記通信要求に応じた通信を行う、ことを特徴とする通信制御方法が提供される。
このような通信制御方法によれば、プロセスからの接続要求に対して、1以上の物理コネクションを確立するとともに、それらの物理コネクションを1つに纏めた論理接続が定義される。物理コネクションに障害が発生すれば、別の通信装置を介して再接続が行われる。論理接続に含まれる物理コネクションの確立が維持される。そして、プロセスから論理接続に適合する通信要求が出されると、論理接続に含まれる物理コネクションを介して、通信が行われる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
図1は、実施の形態に適用される発明の概念図である。
図2は、本実施の形態のシステム構成例を示す図である。
図3は、コンピュータのハードウェア構成例を示す図である。
図4は、コンピュータの機能ブロック図である。
図5は、本実施の形態における接続形態の概念図である。
図6は、通信管理情報テーブルのデータ構造例を示す図である。
図7は、経路管理情報テーブルのデータ構造例を示す図である。
図8は、物理管理情報テーブルのデータ構造例を示す図である。
図9は、状態管理ツリーの例を示す図である。
図10は、通信管理ツリーの例を示す図である。
図11は、コネクション確立手順を示すシーケンス図である。
図12は、情報テーブルの状態遷移の前半を示す図である。
図13は、情報テーブルの状態遷移の後半を示す図である。
図14は、コネクション確立時のサーバ側の処理手順を示すフローチャートである。
図15は、コネクション確立時のクライアント側の処理手順を示すフローチャートである。
図16は、クライアント側のコンピュータによるコネクション異常検出時の手順を示すシーケンス図である。
図17は、情報テーブルの状態遷移の前半を示す図である。
図18は、情報テーブルの状態遷移の後半を示す図である。
図19は、サーバ側のコンピュータによるコネクション異常検出時の手順を示すシーケンス図である。
図20は、情報テーブルの状態遷移の前半を示す図である。
図21は、情報テーブルの状態遷移の後半を示す図である。
図22は、サーバ側のコンピュータでのコネクション異常時の処理手順を示すフローチャートである。
図23は、クライアント側のコンピュータでのコネクション異常時の処理手順を示すフローチャートである。
図24は、接続経路の選択手順を示すフローチャートである。
図25は、複数の経路で通信を行う場合のサーバ側の通信管理情報テーブルの例を示す図である。
図26は、複数の経路で通信を行う場合のクライアント側の通信管理情報テーブルの例を示す図である。
図27は、複数の経路で通信を行う場合のサーバ側の物理管理情報テーブルの例を示す図である。
図28は、複数の経路で通信を行う場合のクライアント側の物理管理情報テーブルの例を示す図である。
図29は、分割が不要な場合の転送例を示す図である。
図30は、分割転送が行われる場合の第1の例を示す図である。
図31は、分割転送が行われる場合の第2の例を示す図である。
図32は、分割転送が行われる場合の第3の例を示す図である。
図33は、分割転送の処理を示すシーケンス図である。
【発明を実施するための最良の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、実施の形態に適用される発明の概念図である。本発明では、複数のコンピュータ1,2間に複数の伝送路3,4を持つ伝送システムに適用される。コンピュータ1は、複数の通信装置1c,1dを有する。コンピュータ1内のプロセス1aからの通信要求は、通信制御部1bが受け取る。この通信制御部1bが通信装置1c、1dを制御して、コンピュータ2との間の通信を行う。同様に、コンピュータ2は、複数の通信装置2c,2dを有する。コンピュータ2内のプロセス2aからの通信要求は、通信制御部2bが受け取る。この通信制御部2bが通信装置2c、2dを制御してコンピュータ1との間で通信を行う。
各コンピュータ1,2の通信制御部1b、2bは、複数の伝送路3,4上で確立される物理コネクションをひとまとめに管理し、仮想的に1つの伝送システム(論理接続)として利用できるようにしている。そして、仮想的な伝送経路(論理接続)を介したデータ通信環境を、ユーザが実行させるプロセス1a,2aに提供する。
具体的には、通信制御部1bは、任意のプロセスからの接続要求に応じて、通信装置1c、1dのうち少なくとも1つを選択し、選択した通信装置を介した物理コネクションを確立する。次に、通信制御部1bは、確立された1以上の物理コネクションを1つに纏めた論理接続を定義する。また、通信制御部1bは、論理接続に含まれる物理コネクションに障害が発生すると、障害が発生した物理コネクションと異なる通信装置を介した物理コネクションを再確立して、論理接続に含める。そして、通信制御部1bは、プロセスからの論理接続に適合する通信要求を受け取ると、そのとき論理接続に含まれる物理コネクションを介して、通信要求に応じた通信を行う。
このようにして、仮想的な伝送路(論理接続)に含まれる物理的な伝送路3,4の選択を、システムの動作状況に応じて動的に行うことができるようにする。その結果、通信の信頼性を向上させることが可能となる。たとえば、利用可能な複数の伝送路3,4を同時に利用すれば、伝送性能を高めることができる。
ここで、本発明における接続関係は、異なるコンピュータ1,2同士の接続識別子(例えばIPアドレス)、利用されるコンピュータ1上の装置名、途中経路を特定するための経路情報、通信を行うアプリケーション同士の通信識別子(例えばTCPポート番号)、および物理コネクションを識別するための通信通番を用いて管理することができる。たとえば、論理接続は、コンピュータ1,2双方の接続識別子と通信識別子の組で認識できる。物理的な通信はそれに加え、通信通番を含めて認識する。つまり、論理的な通信は複数の物理的な通信をまとめたものである。ただし、物理的な通信は、通信制御部1b,2bにおいて認識されていればよく、プロセス1a,2aが認識する必要はない。
このように、本発明に係る通信では、論理的(外部的)な通信と物理的(内部的)な通信の2種類の通信接続形態がある。論理的な接続形態(論理接続)は、複数の伝送路3,4を任意に利用可能な物理コネクションである。論理接続が外部的とは、通信管理機能の外に位置するプロセス1a,2aから認識される接続形態という意味である。物理的な接続形態は、任意の通信装置と、その通信装置に接続された伝送路を利用した物理コネクションである。物理的な接続形態が内部的とは、通信管理機能の外に位置するプロセス1a,2aからは存在が隠されているという意味である。
このようなシステム上で通信を依頼するプロセス1a,2aは、相手接続識別子と自分と相手の通信識別子を指定することにより、通信を開始する。このとき、通信制御部1b、2bでは、通信装置の稼働状態等を加味して、適当な通信装置や伝送路を自動的に選択し、物理コネクションを確立する。従って、利用者からの利用方法を変更せずに,自動的に信頼性の向上や性能向上が図ることが可能となり、利用者からの利用を中断させること無しに装置の交換や増設なども行うことができる。
また、通信装置や伝送路の故障を検出した場合には、自動的に利用可能な装置や経路を判断して、再接続要求を同一通信通番を使って通信を再開する。このとき、プロセス1a,2aは、論理接続によって互いに通信しているものと認識しているため、伝送路上の障害の発生を意識せずに、継続して通信を行うことができる。したがって、ユーザアプリケーション等によって生成されるプロセスへの通信サービスの信頼性が向上する。
さらに複数の通信通番を利用することで、自動的に複数の経路を選択して同時に接続を行う形態をとることができる。この場合、同時に複数経路での通信を行うことにより、プロセス1a,2a間の通信速度を向上させることができる。また、1つの伝送路に障害が発生しても、他の伝送路を介した物理コネクションが確立されていればプロセス1a,2a間の通信が途絶えることもなく、信頼性も向上する。
また、複数の物理コネクションが確立された場合、1つの物理コネクションがとぎれる毎に再接続してもよいし、接続された全ての物理コネクションがとぎれたときに、再接続を行ってもよい。
図2は、本実施の形態のシステム構成例を示す図である。図2に示すように、複数のコンピュータ100,200,300が2つのスイッチ装置410,420を介して接続されている。これにより、各コンピュータ間は、スイッチ装置410を介した伝送経路と、スイッチ装置420を介した伝送経路との2つの伝送経路が設けられている。
図3は、コンピュータのハードウェア構成例を示す図である。コンピュータ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信装置106、107が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス108を介してCPU101に送信する。
通信装置106は、スイッチ装置410に接続されている。通信装置106は、スイッチ装置410を介して、他のコンピュータとの間でデータの送受信を行う。
通信装置107は、スイッチ装置420に接続されている。通信装置107は、スイッチ装置420を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、コンピュータ100のハードウェア構成例を示したが、他のコンピュータ200,300も同様のハードウェア構成で実現することができる。
次に、上記のようなハードウェア構成のシステムにおいて、本実施の形態の実現に必要な機能を、コンピュータ100とコンピュータ200との関係に着目して説明する。
図4は、コンピュータの機能ブロック図である。コンピュータ100には、通信管理情報テーブル111、経路管理情報テーブル112、物理管理情報テーブル113、ユーザプロセス121、論理通信管理部122、接続識別情報管理部123、利用装置選択部124、および物理通信管理部125が設けられている。
通信管理情報テーブル111には、ユーザプロセス121に対して提供する論理的な通信経路(論理接続)の情報が管理されている。
経路管理情報テーブル112には、通信相手までの伝送経路(通信装置や伝送路)が管理されている。
物理管理情報テーブル113には、物理的な伝送路上に構築されたコネクション(物理コネクション)の接続状況が管理されている。
ユーザプロセス121は、アプリケーションプログラム等に基づいて処理を実行するプロセスである。ユーザプロセス121は、他のコンピュータと通信する場合、サーバとして機能するものとクライアントとして機能するものとがある。クライアントとして機能するユーザプロセス121は、サーバとの通信を伴う処理を指示する操作入力等に応じて、通信開始要求を出力する。この通信開始要求には、相手接続識別子/自通信識別子/相手通信識別子が含まれる。
論理通信管理部122は、ユーザプロセス121から出力された通信開始要求を受け取ると、通信管理情報テーブル111を作成する。論理通信管理部122は、通信管理情報テーブル111に基づいて、論理接続の状態を木構造(通信管理ツリー)で認識する。論理通信管理部122で通信管理情報テーブル111が作成されると、通信管理ツリーが更新される。その後、通信開始要求の内容は、接続識別情報管理部123に送られる。
接続識別情報管理部123は、経路管理情報テーブル112に基づいて物理接続の状態を木構造(状態管理ツリー)で認識し、有効な識別子であるか、どの装置が利用されるかの判断を行う。接続識別情報管理部123は、判断結果を、利用装置選択部124に渡す。
利用装置選択部124は、ラウンドロビン方式などを使いながら、どの装置/経路を利用するかを負荷状況に応じて判断する。利用装置選択部124は、利用する経路を選択すると、選択した経路に接続された物理通信管理部125に対して通信確立を依頼する。
物理通信管理部125は、利用装置選択部124からの通信開始要求に応じて、経路管理情報テーブル112を作成し、接続確立を試みる。接続確立に失敗した場合には、物理通信管理部125は、処理を利用装置選択部124へ戻し、利用装置を再選択させる。そして、物理通信管理部125は、再選択された利用装置を用いて、再接続を試みる。
コンピュータ200にも、コンピュータ100と同様に、通信管理情報テーブル211、経路管理情報テーブル212、物理管理情報テーブル213、ユーザプロセス221、論理通信管理部222、接続識別情報管理部223、利用装置選択部224、および物理通信管理部225が設けられている。各構成要素の機能は、コンピュータ100内の同名の構成要素と同じである。
ここで、通信識別情報と接続識別情報との関係について説明する。
図5は、本実施の形態における接続形態の概念図である。図5に示すように、コンピュータ100は、接続識別情報131を用いて、通信に使用する通信装置106,107を選択する。同様に、コンピュータ200は、接続識別情報231を用いて、通信に使用する通信装置206,207を選択する。
ここで、コンピュータ100の接続識別子を「1」とし、コンピュータ200の接続識別子を「2」とする。また、コンピュータ100の通信装置106の識別子を「A」、通信装置107の識別子を「B」とする。さらに、コンピュータ200の通信装置206の識別子を「C」、通信装置207の識別子を「D」とする。
通信装置106と通信装置206とが伝送路31で接続されており、この伝送路の識別子を「X」とする。また、通信装置107と通信装置207とが伝送路32で接続されており、この伝送路の識別子を「Y」とする。
このような接続関係が双方のコンピュータ100,200で認識され、各種情報テーブルに登録される。
図6は、通信管理情報テーブルのデータ構造例を示す図である。通信管理情報テーブル111は、論理接続毎に生成され、生成された各通信管理情報テーブルそれぞれに通信識別子が付与される。通信管理情報テーブル111には、自プロセスの立場、論理通信管理識別子、自接続識別子、相手接続識別子、物理通信、自通信識別子、相手通信識別子、再接続可否、および確立の欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連づけられている。
自プロセスの立場の欄には、自コンピュータ上で通信を行うユーザプロセスが、サーバかクライアントかを示す識別子が設定される。論理通信管理識別子の欄には、プロセスから認識される論理接続を一意に識別するための識別情報が設定される。自接続識別子には、ネットワーク上での自コンピュータの識別情報(たとえば、IPアドレス)が設定される。相手接続識別子の欄には、ネットワーク上での相手コンピュータの識別情報が設定される。物理通信の欄には、通信に利用すると伝送路の識別情報が設定される。自通信識別子の欄には、通信を行うユーザプロセスを識別するための識別情報が設定される。相手通信識別子の欄には、通信相手のユーザプロセスを識別するための識別情報が設定される。再接続可否の欄には、再接続が可能か否かが設定される。再接続が可能であれば、再接続可否「Y」である。確立の欄は、物理コネクションが確立してるか否かを示す情報が設定される。図6の例では、物理コネクションが確立していれば、確立の欄に「○」が設定される。
図7は、経路管理情報テーブルのデータ構造例を示す図である。経路管理情報テーブル112には、経路識別子、相手接続識別子、利用装置、経路、利用回線数、利用可否の欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連づけられている。
経路識別子の欄には、通信経路の識別情報(通信装置の識別情報と伝送路の識別情報との組)が設定される。相手接続識別子の欄には、通信相手のコンピュータの接続識別子(たとえば、IPアドレス)が設定される。利用装置の欄には、通信装置の識別情報が設定される。経路の欄には、伝送路の識別情報が設定される。利用回線数の欄には、その通信経路で通信している回線(物理コネクション)の数が設定される。利用可否の欄には、物理経路を利用可能か否かが設定される。図7の例では、利用可能であれば利用可否「○」であり、利用不可能であれば利用可否「×」である。
図8は、物理管理情報テーブルのデータ構造例を示す図である。物理管理情報テーブル113には、物理通信管理識別子、論理通信管理識別子、通信通番、経路情報、および通信状態の欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連づけられている。
物理通信管理識別子の欄には、物理コネクションを一意に識別するための識別情報が設定される。論理通信管理識別子の欄には、物理コネクションが属する論理接続を一意に識別するための識別情報が設定される。通信通番の欄には、同じ論理接続に属する物理通信の中の通し番号が設定される。経路情報の欄には、通信に使用する伝送経路の識別情報が設定される。通信状態の欄には、通信状態を示す情報が設定される。図8の例では、通信が可能であれば通信状態「○」であり、通信不可能であれば通信状態「×」である。
このような構造のデータに基づいて状態管理ツリーや通信管理ツリーが構成される。
図9は、状態管理ツリーの例を示す図である。状態管理ツリー41では、コンピュータ100自身の接続識別子「1」(自接続識別子)がルートに設定される。自接続識別子の下位構造として、通信相手のコンピュータ200の接続識別子「2」(相手接続識別子)が設定される。相手接続識別子の下位構造として、利用装置(通信装置106,107)の識別子「A」、「B」が設定される。利用装置の下位構造として、その利用装置に接続されている経路(伝送路31,32)の識別子「X」、「Y」が設定される。
図10は、通信管理ツリーの例を示す図である。通信管理ツリー42では、コンピュータ100自身の接続識別子「1」(自接続識別子)がルートに設定される。自接続識別子の下位構造として、通信相手のコンピュータ200の接続識別子「2」(相手接続識別子)が設定される。相手接続識別子の下位構造として、論理接続の識別情報である論理通信管理識別子「C1」、「C2」が設定される。論理接続の下位構造として、物理通信の識別情報である通信通番「P11」、「P12」、「P2」が設定される。
以上のような構成のシステムによって、以下の様な処理が行われる。まず、ユーザプロセス121から通信開始要求(相手接続識別子、自通信識別子、および相手通信識別子を含む)が出されると、論理通信管理部122によって通信管理情報テーブル111が作成される。通信開始要求に対応する通信管理情報テーブル111が作成されることで、論理通信管理部122において認識される通信管理ツリーが更新される。その後、接続確立をするために、通信開始要求が接続識別情報管理部123へ送られる。
接続識別情報管理部123は、経路管理情報テーブル112を参照し、状態管理ツリーを認識する。そして、接続識別情報管理部123は、相手接続識別子に対応するコンピュータへの伝送路があるが、また、その伝送路を介した通信にどの通信装置が利用されるかの判断を行い。接続識別情報管理部123は、判断結果を利用装置選択部124へ送る。
利用装置選択部124は、相手接続識別子で示されるコンピュータに対して通信可能な通信装置の負荷状況(たとえば、利用回線数)の判断を行い、ラウンドロビン方式などを使いながら利用する通信装置を判断する。利用する通信装置の情報は、物理通信管理部125に送られる。
物理通信管理部125は、管理情報テーブルを作成し、接続確立を試みる。すなわち、物理通信管理部125は、接続要求をコンピュータ200に送信し、接続可能の返信を受け取ると、接続を確立する。もし、失敗した場合には利用装置選択部124へ制御を戻す。すると、利用装置選択部124で他の通信装置が選択され物理通信管理部125に通知される。物理通信管理部125は、通知された通信情報を利用して再接続を試み、成功した場合は、経路管理情報テーブル212や物理管理情報テーブル213を更新する。そして、物理コネクションが確立されたことが論理通信管理部122に伝えられ、通信管理情報テーブル111が更新される。
通信相手のコンピュータ200では、物理通信管理部225が物理通信管理部125からの接続要求を受け、論理通信管理部222に伝える。その後、論理通信管理部222、接続識別情報管理部223、利用装置選択部224が協働し、ユーザプロセス221からの接続開始要求出力時と同様に、使用する通信装置の選択および、通信管理情報テーブル211、経路管理情報テーブル212、物理管理情報テーブル213の更新を行う。接続要求に応じて接続が可能であれば、物理通信管理部225が接続可能の応答を返信し、コンピュータ100から確立宣言が送られてくると、物理コネクションを確立する。そして、物理コネクションが確立されたことが論理通信管理部222に伝えられ、通信管理情報テーブル211が更新される。
その後、ユーザプロセス121と他のコンピュータ200上の他のユーザプロセス221との間の通信が開始される。
なお、物理通信管理部125は、1つの論理接続に対して、複数の伝送路を介した物理コネクションを確立することもできる。この場合、物理通信管理部125は、各物理コネクションに対して通信通番を1から順に設定する。異常時の再接続には同一の通信通番を用いて、別の伝送路を介した再接続要求を出す。物理コネクションの再接続が確立すると、障害発生以前と同様の通信通番により通信が可能となる。
なお、再接続を可能とするために、接続確立後に両端点で自通信識別子に対する接続要求を、論理接続が切断されるまで受け付けられるようにしておく。通常、プロセスがサーバとして機能していれば、クライアントからの接続要求を受け付けることができる。プロセスがクライアントとして機能していた場合、サーバ機能(少なくとも接続要求の受け付け機能)を予め起動しておく。
接続確立後の通常通信時は、論理通信管理部122から物理通信管理部125へ直接要求が出される。物理通信管理部125からコンピュータ200の物理通信管理部225にデータが渡される。物理通信管理部225は、受け取ったデータを論理通信管理部222に渡す。そして、論理通信管理部222がデータをユーザプロセス221に渡す。
通信開始後、異常が発生すると、物理通信管理部125と物理通信管理部225との双方若しくは、どちらか一方で異常を検出する。たとえば、InfiniBandアーキテクチャを用いた通信装置であれば伝送路上の障害を検知し、上位の制御部(物理通信管理部125,225)に通知することができる。
ここで、物理通信管理部125が障害を検出した場合、利用装置選択部124に対して、利用する通信装置の再選択を依頼する。そして、物理通信管理部125は、利用装置選択部124で選択された通信装置を介した通信の再接続を行う。この際、障害が発生した物理コネクションと再接続された物理コネクションとは、同一の通信通番が使用される。
再接続の際の接続要求を受け取った物理通信管理部225は、接続要求を論理通信管理部222に渡す。論理通信管理部222は、受け取った接続要求が再接続要求かどうかを、同一の接続識別子/通信識別子/通信通番が通信管理情報テーブル211に存在するかどうかで判断する。判断結果は接続識別情報管理部223に伝えられる。接続識別情報管理部223は、再接続要求であれば、既存の物理コネクションの接続識別情報を物理管理情報テーブル213から破棄し、再接続要求を受付ける。
ここで、障害が両方のコンピュータ100,200で検出される場合がある。その場合、再接続要求は要求が先に届いた方を優先する。ただし、同時(再接続完了前)に出てしまった場合は、クライアント若しくはサーバ(ユーザプロセスの機能による区別)の何れか一方の要求が優先される。たとえば、サーバ側の再接続要求を優先する場合には、サーバ側のコンピュータにおいてクライアント側のコンピュータから送られた再接続要求が破棄される。なお、最初の接続時に要求を出した方(通常はクライアント側)の要求を優先させるように設定してもよい。
再接続確立後は確立前に完了していなかった送受信要求を、新たな物理コネクションを介して自動的に再要求する。そのため、ユーザプロセスは、通信障害の発生や再確立を意識する必要がない。
また、1つの論理接続において複数経路を同時に利用する場合は、複数の通信通番によって接続を行う。この場合、論理接続配下に複数の物理通信が束ねられ、論理通信管理部122、222が持っている分割ルールに乗っ取って負荷分散が行われ、並列に通信が行われる。
さらに、複数経路を同時に使う場合の障害発生時も通常と同様に、再度、利用装置選択部124によって選択された通信装置を使って、同一の通信通番によって、再接続が試みられる。
以下に、本実施の形態における処理を詳細に説明する。
図11は、コネクション確立手順を示すシーケンス図である。図11では、サーバ側の処理を左側に示し、クライアント側の処理を右側に示している。ここで、コンピュータ100内のユーザプロセス121がサーバであり、コンピュータ200内のユーザプロセス221がクライアントの場合を例に採り、コネクションが正常に確立したときの流れを説明する。
まず、クライアント側のユーザプロセス221からの通信開始要求に応答して、コンピュータ200が接続相手を選択する(ステップS11)。なお、通信開始要求には、通信相手を特定するために、相手接続識別子、自通信識別子および相手通信識別子が含まれる。これにより、接続相手としてコンピュータ100が選択されたものとする。このとき、サーバ側のコンピュータ100では、接続要求を待ち受けている(ステップS12)。
コンピュータ200からコンピュータ100に対して、接続要求が発行される(ステップS13)。その後、コンピュータ200は、返信の待ち受け状態となる(ステップS14)。
コンピュータ100は、接続要求を受け取ると、接続要求を返信する(ステップS15)。その後、コンピュータ100は、確立宣言の待ち受け状態となる(ステップS16)。
接続要求の返信を受け取ったコンピュータ200は、確立宣言を発行する(ステップS17)。その後、コンピュータ200は、コネクション確立状態となる(ステップS18)。また、確立宣言を受け取ったコンピュータ100も、コネクション確立状態となる(ステップS19)。
このような手順でコネクションが確立される。以下に、コネクション確立時の通信管理情報テーブルと物理管理情報テーブルとの内容の遷移状況について、図12,図13を参照して説明する。なお、図12、図13では、通信管理情報テーブルに関し、サーバ側の情報を上段に示し、クライアント側の情報を下段に示している。同様に、物理管理情報テーブルに関し、サーバ側の情報を上段に示し、クライアント側の情報を下段に示している。
図12は、情報テーブルの状態遷移の前半を示す図である。
第1の状態(ST1)は、コネクション確立開始前の状態である。コネクション確立開始前は、サーバ側の通信管理情報テーブル111には、自プロセスの立場「サーバ」、論理通信管理識別子「C1」、自接続識別子「1」、相手接続識別子「−」、物理通信「−−」、自通信識別子「10」、相手通信識別子「−−」、再接続可否「−」、確立「×」が設定されている。ここで「−」は、情報が登録されていないことを示している。また、確立「×」は、コネクションが確立していないことを示している。
一方、クライアント側の通信管理情報テーブル211には、自プロセスの立場「クライアント」、論理通信管理識別子「C2」、自接続識別子「2」、相手接続識別子「1」、物理通信「−−」、自通信識別子「99」、相手通信識別子「10」、再接続可否「Y」、確立「×」が設定されている。ここで「−」は、情報が登録されていないことを示している。また、確立「×」は、コネクションが確立していないことを示している。
このように、クライアント側の通信管理情報テーブル211には、通信開始要求で示される相手識別子と相手通信識別子とが登録される。このとき、物理管理情報テーブル113,213には、情報は登録されていない。
第2の状態(ST2)は、クライアント側における接続相手選択(ステップS11)後の状態である。クライアント側のコンピュータ200から接続相手を選択すると、クライアント側の通信管理情報テーブル211に、物理通信「P2」が設定される。
このとき、クライアント側の物理管理情報テーブル213には、物理通信管理識別子「P2」、論理通信管理識別子「C2」、通信通番「1」、経路情報「CX」、通信状態「×」が設定される。
第3の状態(ST3)は、サーバからの接続要求返信(ステップS15)後の状態である。サーバ側のコンピュータ100から接続要求の返信が行われると、サーバ側の通信管理情報テーブル111に、相手接続識別子「2」、相手通信識別子「99」、再接続可否「Y」が設定される。
このとき、サーバ側の物理管理情報テーブル113には、物理通信管理識別子「P1」、論理通信管理識別子「C1」、通信通番「1」、経路情報「AX」、通信状態「×」が設定される。
図13は、情報テーブルの状態遷移の後半を示す図である。
第4の状態(ST4)は、クライアントからの確立宣言発行(ステップS17)後の状態を示している。クライアント側のコンピュータ200から確立宣言が発行されると、クライアント側の通信管理情報テーブル211に、確立「○」が設定される。確立「○」は、コネクションが確立していることを示すフラグである。このとき、クライアント側の物理管理情報テーブル213の通信状態が「○」(通信が可能であることを示す)に変更される。
第5の状態(ST5)は、コネクション確立(ステップS19)後の状態を示している。サーバ側のコンピュータ100では、確立宣言を受け取ると、通信管理情報テーブル111に確立「○」を設定する。このとき、サーバ側の物理管理情報テーブル113の通信状態が「○」に変更される。
このようにして、物理コネクションが確立され、サーバとクライアントとの双方の通信管理情報テーブルと物理管理情報テーブルとに、論理接続および物理接続の情報が登録される。
次に、コネクション確立時のサーバ側のコンピュータ100とクライアント側のコンピュータ200との処理手順を詳細に説明する。
図14は、コネクション確立時のサーバ側の処理手順を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS21]サーバ側のコンピュータ100は、接続要求が来たか否かを判断する。接続要求が来た場合には処理がステップS22に進められる。接続要求が来なければ、ステップS21の処理を繰り返し、接続要求が来るのを待つ。
[ステップS22]コンピュータ100は、受け取った接続要求が、接続可能な相手からの接続要求か否かを判断する。接続可能な相手からの接続要求であれば、処理がステップS23に進められる。接続不可能な相手からの接続要求であれば、処理がステップS29に進められる。
[ステップS23]コンピュータ100は、接続相手が再接続手段を提供しているか否かを示す情報を記憶する。なお、再接続手段の提供の有無は、たとえば、接続要求に含まれる情報に基づいて判断する。その場合、クライアント側のコンピュータ200は、自身が再接続手段を提供しているか否かを示す情報を付加して、接続要求を送信する。
[ステップS24]コンピュータ100は、接続可能であることをクライアント側のコンピュータ200に返信する。
[ステップS25]コンピュータ100は、ステップS24における返信後、一定時間が経過したか否かを判断する。一定時間が経過した場合には、処理がステップS29に進められる。一定時間経過していなければ、処理がステップS26に進められる。
[ステップS26]コンピュータ100は、クライアント側のコンピュータ200から返信が来たか否かを判断する。返信が来たら処理がステップS27に進められる。返信が来なければ、処理がステップS25に進められ、時間経過の判断が行われる。
[ステップS27]コンピュータ100は、受け取った返信が確立宣言か否かを判断する。確立宣言であれば処理がステップS28に進められる。確立宣言でなければ(たとえば、接続拒否の通知)、処理がステップS30に進められる。
[ステップS28]コンピュータ100は、確立を完了し処理を終了する。
[ステップS29]コンピュータ100は、接続要求が接続不可能な相手から送られた場合、または接続可能の返信後、クライアント側のコンピュータ200から一定時間返信が来なかった場合、コンピュータ200に対して接続拒否を返信する。
[ステップS30]コンピュータ100は、接続拒否を返信後、またはステップS27で確立宣言以外の返信を受け取ったとき、確立失敗と判断し、処理が終了する。
図15は、コネクション確立時のクライアント側の処理手順を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS41]クライアント側のコンピュータ200は、接続相手を選択する。
[ステップS42]コンピュータ200は、接続相手のコンピュータ100に対して接続要求を送信する。
[ステップS43]コンピュータ200は、接続要求送信後、一定時間経過したか否かを判断する。一定時間経過した場合、処理がステップS51に進められる。一定時間経過していなければ、処理がステップS44に進められる。
[ステップS44]コンピュータ200は、サーバ側のコンピュータ100から返信が来たか否かを判断する。返信が来た場合、処理がステップS45に進められる。返信が来なければ、処理がステップS43に進められる。
[ステップS45]コンピュータ200は、受け取った返信が接続可能の返信か否かを判断する。接続可能の返信であれば、処理がステップS46に進められる。接続不可能の返信であれば、処理がステップS52に進められる。
[ステップS46]コンピュータ200は、接続の確立が可能か否かを判断する。接続の確立が可能であれば処理がステップS47に進められる。接続の確立が不可能であれば、処理がステップS51に進められる。
[ステップS47]コンピュータ200は、相手のコンピュータ100が再接続手段を有しているか否かを判断する。相手のコンピュータ100が再接続手段を有していれば、処理がステップS48に進められる。再接続手段を有していなければ、処理がステップS49に進められる。
[ステップS48]コンピュータ200は、自分の通信識別子でサーバを立てる。
[ステップS49]コンピュータ200は、コンピュータ100に対して、確立宣言を返信する。
[ステップS50]コンピュータ200は、確立を完了し、処理を終了する。
[ステップS51]コンピュータ200は、接続要求送信後の一定時間返信が無い場合、またはステップS46において確立不可と判断した場合、コンピュータ100に対して接続拒否を返信する。
[ステップS52]コンピュータ200は、接続拒否を返信後、またはステップS45において接続不可の返信を受け取った後、確立失敗と判断し、処理を終了する。
次に、クライアント側でコネクション異常を検出したときの処理について詳細に説明する。
図16は、クライアント側のコンピュータによるコネクション異常検出時の手順を示すシーケンス図である。図16では、サーバ側の処理を左側に示し、クライアント側の処理を右側に示している。ここで、コンピュータ100内のユーザプロセス121がサーバであり、コンピュータ200内のユーザプロセス221がクライアントの場合を例に採り、コネクションの再確立が正常に終了したときの流れを説明する。
まず、クライアント側のコンピュータ200が物理コネクションの異常を検出し、再接続経路を選択する(ステップS61)。これにより、再接続相手としてコンピュータ100が選択される。このとき、サーバ側のコンピュータ100では、再接続要求を待ち受けている(ステップS62)。
コンピュータ200からコンピュータ100に対して、再接続要求が発行される(ステップS63)。その後、コンピュータ200は、返信の待ち受け状態となる(ステップS64)。
コンピュータ100は、再接続要求を受け取ると、再接続要求に対する返信を行う(ステップS65)。その後、コンピュータ100は、確立宣言の待ち受け状態となる(ステップS66)。
再接続要求の返信を受け取ったコンピュータ200は、確立宣言を発行する(ステップS67)。その後、コンピュータ200は、コネクション確立状態となる(ステップS68)。また、確立宣言を受け取ったコンピュータ100も、コネクション確立状態となる(ステップS69)。
このような手順でコネクションが再確立される。以下に、クライアント側で異常を検出し再接続要求を出した場合の通信管理情報テーブルと物理管理情報テーブルとの内容の遷移状況について、図17,図18を参照して説明する。なお、図17、図18では、通信管理情報テーブルに関し、サーバ側の情報を上段に示し、クライアント側の情報を下段に示している。同様に、物理管理情報テーブルに関し、サーバ側の情報を上段に示し、クライアント側の情報を下段に示している。
図17は、情報テーブルの状態遷移の前半を示す図である。
第1の状態(ST11)は、クライアント側における障害検出後の状態である。コネクション確立開始前は、サーバ側の通信管理情報テーブル111には、自プロセスの立場「サーバ」、論理通信管理識別子「C1」、自接続識別子「1」、相手接続識別子「2」、物理通信「P1」、自通信識別子「10」、相手通信識別子「99」、再接続可否「Y」、確立「○」が設定されている。
一方、クライアント側の通信管理情報テーブル211には、自プロセスの立場「クライアント」、論理通信管理識別子「C2」、自接続識別子「2」、相手接続識別子「1」、物理通信「−−」、自通信識別子「99」、相手通信識別子「10」、再接続可否「Y」、確立「×」が設定されている。
このように、クライアント側の通信管理情報テーブル211には、通信開始要求で示される相手識別子と相手通信識別子とが登録される。このとき、サーバ側の物理管理情報テーブル113には、物理通信管理識別子「P1」、論理通信管理識別子「C1」、通信通番「1」、経路情報「AX」、通信状態「○」が設定されている。クライアント側の物理管理情報テーブル213には、情報は登録されていない。
第2の状態(ST12)は、クライアント側における再接続経路が選択され(ステップS61)、再接続要求発行(ステップS63)後の状態である。クライアント側のコンピュータ200から再接続要求が発行されると、クライアント側の通信管理情報テーブル211に、物理通信「P4」が設定される。
このとき、クライアント側の物理管理情報テーブル213には、物理通信管理識別子「P4」、論理通信管理識別子「C2」、通信通番「1」、経路情報「DX」、通信状態「×」が設定される。
第3の状態(ST13)は、サーバからの再接続要求返信(ステップS65)後の状態である。サーバ側のコンピュータ100では、再接続要求により障害の発生を知り、通信管理情報テーブル111の確立が「×」に変更される。このとき、サーバ側の物理管理情報テーブル113は、通信状態が「×」に変更される。
図18は、情報テーブルの状態遷移の後半を示す図である。
第4の状態(ST14)は、クライアントからの確立宣言発行(ステップS67)後の状態を示している。クライアント側のコンピュータ200から確立宣言が発行されると、クライアント側の通信管理情報テーブル211の確立が「○」に変更される。また、クライアント側の物理管理情報テーブル213の通信状態が「○」に変更される。
第5の状態(ST15)は、コネクション確立(ステップS69)後の状態を示している。サーバ側のコンピュータ100では、確立宣言を受け取ると、通信管理情報テーブル111の確立が「○」に変更される。このとき、サーバ側の物理管理情報テーブル113の通信状態が「○」に変更される。
このようにして、クライアント側からの再接続要求に応じて、障害が発生した伝送路と別の伝送路を用いた再接続が自動的に行われる。
次に、サーバ側で障害を検出し、再接続要求を出力する場合の手順について詳細に説明する。
図19は、サーバ側のコンピュータによるコネクション異常検出時の手順を示すシーケンス図である。図19では、サーバ側の処理を左側に示し、クライアント側の処理を右側に示している。ここで、コンピュータ100内のユーザプロセス121がサーバであり、コンピュータ200内のユーザプロセス221がクライアントの場合を例に採り、コネクションの再確立が正常に終了したときの流れを説明する。
まず、サーバ側のコンピュータ100が物理コネクションの異常を検出し、再接続経路を選択する(ステップS71)。これにより、再接続相手としてコンピュータ200が選択される。このとき、クライアント側のコンピュータ200では、再接続要求を待ち受けている(ステップS72)。
コンピュータ100からコンピュータ200に対して、再接続要求が発行される(ステップS73)。その後、コンピュータ100は、返信の待ち受け状態となる(ステップS74)。
コンピュータ200は、再接続要求を受け取ると、再接続要求に対する返信を行う(ステップS75)。その後、コンピュータ200は、確立宣言の待ち受け状態となる(ステップS76)。
再接続要求の返信を受け取ったコンピュータ100は、確立宣言を発行する(ステップS77)。その後、コンピュータ100は、コネクション確立状態となる(ステップS78)。また、確立宣言を受け取ったコンピュータ200も、コネクション確立状態となる(ステップS79)。
このような手順でコネクションが再確立される。以下に、サーバ側で異常を検出し再接続要求を出した場合の通信管理情報テーブルと物理管理情報テーブルとの内容の遷移状況について、図20,図21を参照して説明する。なお、図20、図21では、通信管理情報テーブルに関し、サーバ側の情報を上段に示し、クライアント側の情報を下段に示している。同様に、物理管理情報テーブルに関し、サーバ側の情報を上段に示し、クライアント側の情報を下段に示している。
図20は、情報テーブルの状態遷移の前半を示す図である。
第1の状態(ST21)は、サーバ側における障害検出後の状態である。コネクション確立開始前は、サーバ側の通信管理情報テーブル111には、自プロセスの立場「サーバ」、論理通信管理識別子「C1」、自接続識別子「1」、相手接続識別子「2」、物理通信「−−」、自通信識別子「10」、相手通信識別子「99」、再接続可否「Y」、確立「×」が設定されている。
一方、クライアント側の通信管理情報テーブル211には、自プロセスの立場「クライアント」、論理通信管理識別子「C2」、自接続識別子「2」、相手接続識別子「1」、物理通信「P2」、自通信識別子「99」、相手通信識別子「10」、再接続可否「Y」、確立「○」が設定されている。
このとき、クライアント側の物理管理情報テーブル213には、物理通信管理識別子「P2」、論理通信管理識別子「C2」、通信通番「1」、経路情報「CX」、通信状態「○」が設定されている。サーバ側の物理管理情報テーブル113には、情報は登録されていない。
第2の状態(ST22)は、サーバ側における再接続経路が選択され(ステップS71)、再接続要求発行(ステップS73)後の状態である。サーバ側のコンピュータ100から接続要求が発行されると、サーバ側の通信管理情報テーブル111に、物理通信「P3」が設定される。
このとき、サーバ側の物理管理情報テーブル113には、物理通信管理識別子「P3」、論理通信管理識別子「C1」、通信通番「1」、経路情報「BY」、通信状態「×」が設定される。
第3の状態(ST23)は、クライアント側からの再接続要求返信(ステップS75)後の状態である。クラインと側のコンピュータ200では、再接続要求により障害の発生を知り、通信管理情報テーブル211の確立が「×」に変更される。このとき、クライアント側の物理管理情報テーブル213は、通信状態が「×」に変更される。
図21は、情報テーブルの状態遷移の後半を示す図である。
第4の状態(ST24)は、サーバからの確立宣言発行(ステップS77)後の状態を示している。サーバ側のコンピュータ100から確立宣言が発行されると、サーバ側の通信管理情報テーブル111の確立が「○」に変更される。また、サーバ側の物理管理情報テーブル113の通信状態が「○」に変更される。
第5の状態(ST25)は、コネクション確立(ステップS79)後の状態を示している。クライアント側のコンピュータ200では、確立宣言を受け取ると、通信管理情報テーブル211の確立が「○」に変更される。このとき、クライアント側の物理管理情報テーブル213の通信状態が「○」に変更される。
このようにして、サーバ側からの再接続要求に応じて、障害が発生した伝送路と別の伝送路を用いた再接続が自動的に行われる。
次に、コネクション異常時の各コンピュータ内での処理内容について説明する。
図22は、サーバ側のコンピュータでのコネクション異常時の処理手順を示すフローチャートである。以下、図22に示す処理をステップ番号に沿って説明する。
[ステップS81]物理コネクションの障害を検出したサーバ側のコンピュータ100は、クライアント側のコンピュータ200に対して再接続可能か否かを判断する。再接続可能であれば、処理がステップS82に進められる。再接続が不可能であれば、処理がステップS89に進められる。
[ステップS82]コンピュータ100は、再接続経路を選択する。
[ステップS83]コンピュータ100は、切断された物理コネクションにおいて使用していたものと同一通信識別子を用いて、再接続要求を送信する。
[ステップS84]コンピュータ100は、相手(クライアント側のコンピュータ200)から再接続要求が届いたか否かを判断する。再接続要求が届いた場合には、処理がステップS85に進められる。再接続要求が届いていない場合には、処理がステップS86に進められる。
[ステップS85]コンピュータ100は、クライアント側のコンピュータ200から送られた再接続要求を棄却する。
[ステップS86]コンピュータ100は、再接続要求に対する返事が来たか否かを判断する。再接続要求への返事が来た場合には、処理がステップS87に進められる。返事が届いていない場合には、処理がステップS84に進められる。
[ステップS87]コンピュータ100は、再接続要求に対する返事の内容が、再接続の棄却の通知か否かを判断する。棄却の通知であれば、処理がステップS89に進められる。棄却の通知でなければ、処理がステップS88に進められる。
[ステップS88]コンピュータ100は、ステップS82で選択した通信経路によりコネクション(物理コネクション)を再確立し、処理を終了する。
[ステップS89]コンピュータ100は、コネクションの切断を確定し、処理を終了する。
図23は、クライアント側のコンピュータでのコネクション異常時の処理手順を示すフローチャートである。以下、図23に示す処理をステップ番号に沿って説明する。
[ステップS91]物理コネクションの障害を検出したクライアント側のコンピュータ200は、サーバ側のコンピュータ100に対して再接続可能か否かを判断する。再接続可能であれば、処理がステップS92に進められる。再接続が不可能であれば、処理がステップS99に進められる。
[ステップS92]コンピュータ200は、再接続経路を選択する。
[ステップS93]コンピュータ200は、切断された物理コネクションにおいて使用していたものと同一通信識別子を用いて、再接続要求を送信する。
[ステップS94]コンピュータ200は、相手(サーバ側のコンピュータ100)から再接続要求が届いたか否かを判断する。再接続要求が届いた場合には、処理がステップS95に進められる。再接続要求が届いていない場合には、処理がステップS96に進められる。
[ステップS95]コンピュータ200は、サーバ側のコンピュータ100から送られた再接続要求を認める。その後、処理がステップS98に進められる。
[ステップS96]コンピュータ100は、再接続要求に対する返事が来たか否かを判断する。再接続要求への返事が来た場合には、処理がステップS97に進められる。返事が届いていない場合には、処理がステップS94に進められる。
[ステップS97]コンピュータ100は、再接続要求に対する返事の内容が、再接続の棄却の通知か否かを判断する。棄却の通知であれば、処理がステップS94に進められる。棄却の通知でなければ、処理がステップS98に進められる。
[ステップS98]コンピュータ100は、ステップS92で選択した通信経路によりコネクション(物理コネクション)を再確立し、処理を終了する。
[ステップS99]コンピュータ100は、コネクションの切断を確定し、処理を終了する。
次に、接続経路の選択方法について説明する。
接続経路を選択する際には、経路管理情報テーブルが参照され、利用回線数の少ない接続経路が選択される。たとえば、図7に示すような内容の経路管理情報テーブル112の場合、経路識別子「AX」の経路が選択される。
図24は、接続経路の選択手順を示すフローチャートである。なお、以下の説明では、コンピュータ100において接続経路を選択するのもとして説明する。以下、図24に示す処理をステップ番号に沿って説明する。
[ステップS101]コンピュータ100は、利用可能な経路のうち、利用回線数が最も少ない経路選択する。この際、複数の経路が選択される場合もある。
[ステップS102]コンピュータ100は、選択された経路が1つか否かを判断する。1つであれば、処理がステップS104に進められる。複数選択された場合には、処理がステップS103に進められる。
[ステップS103]コンピュータ100は、経路識別子が小さい(文字の配列として先にくる)経路を選択する。たとえば、経路識別子がアルファベットで示されていれば、Aが最も小さな値となり、Zが最も大きな値となる。
[ステップS104]コンピュータ100は、選択された1つの経路を、接続経路として決定する。
ところで、上記の説明は、コンピュータ間に1回線の物理コネクションが確立された場合の例であるが、1つの論理接続において、複数の物理接続を確立してもよい。同時に複数の経路を用いて接続した場合、通信管理情報テーブルの物理通信の欄に、複数の物理通信管理識別子が登録される。
図25は、複数の経路で通信を行う場合のサーバ側の通信管理情報テーブルの例を示す図である。図25に示す通信管理情報テーブル111では、論理通信管理識別子「C1」の論理接続に対して、物理通信管理識別子「P1」、「P2」の2つの物理コネクションが確立している。
図26は、複数の経路で通信を行う場合のクライアント側の通信管理情報テーブルの例を示す図である。図26に示す通信管理情報テーブル211では、論理通信管理識別子「C2」の論理接続に対して、物理通信管理識別子「P3」、「P4」の2つの物理コネクションが確立している。
図27は、複数の経路で通信を行う場合のサーバ側の物理管理情報テーブルの例を示す図である。図27に示す物理管理情報テーブル113は、共通の論理通信管理識別子「C1」の物理コネクションに関する物理管理情報が2つ登録されている。それぞれの接続は、接続経路が異なっている。
図28は、複数の経路で通信を行う場合のクライアント側の物理管理情報テーブルの例を示す図である。図28に示す物理管理情報テーブル213は、共通の論理通信管理識別子「C2」の物理コネクションに関する物理管理情報が2つ登録されている。それぞれの接続は、接続経路が異なっている。
次に、1つの論理接続に対して複数の物理コネクションを行った場合のデータ転送方法について説明する。
複数経路での通信におけるデータ転送方法では、分割を行うために、転送時にネゴシエーションパケットを送信する。ネゴシエーションパケットは、通信通番の最も若い物理コネクションで送信側から送られ、返答が要求される。返答が要求されるのは、複数経路でのデータ転送が必要な場合のみである。
以下に、分割送受信の例を説明する。以下の説明において、送信側から受信側へは、要求パケットが送信される。要求パケットには、転送サイズと分割サイズとの情報が含まれる。転送サイズは、転送データの全体のサイズである。分割サイズは、1つの物理コネクションを介して送信可能なデータの最大量である。また、要求パケットを受信した受信側からは、返信パケットが送信側へ返される。返信パケットには、受信サイズが含まれる。受信サイズは、受信側で受信可能なデータサイズである。
図29は、分割が不要な場合の転送例を示す図である。この例では、物理コネクション数が2本、転送サイズが1KB、分割サイズが1MB、受信サイズが1KBである。このように、転送サイズよりも分割サイズの方が大きい場合、送信側から受信側へ要求パケットを送信後、データの送信が行われる。この際、転送サイズ<分割サイズであるため、2本の物理コネクションが確立されていても、データの分割転送は行われず、一本の物理コネクション(送信側「P1」、受信側「P3」)で転送される。
図30は、分割転送が行われる場合の第1の例を示す図である。この例では、物理コネクション数が2本、転送サイズが8MB、分割サイズが1MB、受信サイズが8MBである。このように、分割サイズよりも転送サイズの方が大きい場合、2本の物理コネクションを利用した分割転送が行われる。この場合、送信側から要求パケットが送信されると、受信側から返信パケットが返される。
送信側では返信パケットに含まれる受信サイズにより、転送サイズ分のデータを受信側で受信可能であることを認識し、データの分割転送を開始する。図30の例では、送信側「P1」から受信側「P3」への1MBの転送と、送信側「P2」から受信側「P4」への1MBの転送とが交互に行われる。そして、8回の転送により、8MB分のデータが転送される。
図31は、分割転送が行われる場合の第2の例を示す図である。この例では、物理コネクション数が2本、転送サイズが7MB、分割サイズが2MB、受信サイズが7MBである。このように、転送サイズを分割サイズで分割したときに余りが生じる場合、最後のデータ転送では、余りの分のデータのみが転送される。図31の例では、送信側「P1」から受信側「P3」への2MBの転送と、送信側「P2」から受信側「P4」への2MBの転送とが交互に行われる。そして、2MB分の転送が3回行われた後、4回目の転送では、残りの1MB分のデータが転送される。
図32は、分割転送が行われる場合の第3の例を示す図である。この例では、物理コネクション数が2本、転送サイズが8MB、分割サイズが2MB、受信サイズが5MBである。このように、受信サイズよりも転送サイズが大きい場合、受信サイズ分のデータのみが転送される。図32の例では、送信側「P1」から受信側「P3」への2MBの転送と、送信側「P2」から受信側「P4」への2MBの転送とが交互に行われる。そして、2MB分の転送が2回行われた後、3回目の転送では、残りの1MB分のデータが転送される。すなわち、全体で5MBのデータ転送が行われる。
次に、分割転送を行うときの送信側のコンピュータと受信側のコンピュータとの処理の流れについて説明する。
図33は、分割転送の処理を示すシーケンス図である。以下、図33に示す処理をステップ番号に沿って説明する。なお、以下の説明では、コンピュータ100からコンピュータ200へデータ転送が行われるものとする。
[ステップS111]受信側のコンピュータ200では、要求パケットの受信を待っている。
[ステップS112]送信側のコンピュータ100は、ユーザプロセス等からの要求に応答して、要求パケットを受信側のコンピュータ200に送信する。
[ステップS113]要求パケットを受信したコンピュータ200は、要求パケットに含まれる転送サイズと分割サイズとの情報を比較する。そして、コンピュータ200は、転送サイズが分割サイズよりも大きいか否かを判断する。転送サイズの方が大きければ、所定がステップS114に進められる。そうでなければ、処理がステップS118に進められる。
[ステップS114]コンピュータ200は、AN=0、AS=受信サイズに設定し、処理をステップS127に進める。
[ステップS115]要求パケットを送信したコンピュータ100においても受信側のコンピュータ200と同様に、転送サイズと分割サイズとの情報を比較する。そして、コンピュータ100は、転送サイズが分割サイズよりも大きいか否かを判断する。転送サイズの方が大きければ、所定がステップS116に進められる。そうでなければ、処理がステップS117に進められる。
[ステップS116]コンピュータ100は、AN=0、AS=転送サイズに設定し、処理をステップS126に進める。
[ステップS117]コンピュータ100は、コンピュータ200からの返信パケットの受信を待つ。
[ステップS118]コンピュータ200は、コンピュータ100に対して、受信サイズの情報を含めた返信パケットを送信する。
[ステップS119]返信パケットを受信したコンピュータ100は、転送サイズを、受信サイズと等しくする。
[ステップS120]コンピュータ100は、PNを物理コネクション数、PSを分割サイズ、TSを転送サイズ(受信サイズと等しい)とし、LOOPとANとの値を求める。LOOPは、TS÷(PS×PN)の商である。このときの余りをLSとする。ANは、LS÷PSの商である。このときの余りをASとする。
[ステップS121]コンピュータ200は、PNを物理コネクション数、PSを分割サイズ、TSを受信サイズとし、LOOPとANとの値を求める。LOOPは、TS÷(PS×PN)の商である。このときの余りをLSとする。ANは、LS÷PSの商である。このときの余りをASとする。
[ステップS122]コンピュータ100は、確立されている各物理コネクションを介して、分割サイズ分のデータ転送をLOOPで示される回数分実行する。
[ステップS123]コンピュータ200は、確立されている各物理コネクションを介して、分割サイズ分のデータをLOOPで示される回数分受信する。
[ステップS124]コンピュータ100は、通信通番がAN以下の物理コネクションを介して、分割サイズ分のデータ転送を実行する。
[ステップS125]コンピュータ200は、通信通番がAN以下の物理コネクションを介して、分割サイズ分のデータを受信する。
[ステップS126]コンピュータ100は、通信通番がAN以下の物理コネクションを介して、AS分のデータ転送を実行する。
[ステップS127]コンピュータ200は、通信通番がAN以下の物理コネクションを介して、AS分のデータを受信する。
以上のようにして、1つの論理接続に対して複数の物理コネクションを確立した場合に、複数の物理コネクションを利用した効率的なデータ転送が可能となる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、コンピュータが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto−Optical disc)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上説明したように本発明では、1以上の物理コネクションを1つに纏めた論理接続を定義し、物理コネクションに障害が発生すれば、別の通信装置を介して再接続を行い、論理接続に適合する通信要求に応じて、論理接続に含まれる物理コネクションを介して通信を行うようにした。そのため、通信要求を出すプロセスからは1つの論理接続が継続して接続されているものと認識される。その結果、通信障害発生時のリトライ処理が不要となり、通信の継続性が保たれ、信頼性の高いコンピュータ間通信が実現される。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【図1】

【図2】

【図3】

【図4】

【図5】

【図6】

【図7】

【図8】

【図9】

【図10】

【図11】

【図12】

【図13】

【図14】

【図15】

【図16】

【図17】

【図18】

【図19】

【図20】

【図21】

【図22】

【図23】

【図24】

【図25】

【図26】

【図27】

【図28】

【図29】

【図30】

【図31】

【図32】

【図33】


【特許請求の範囲】
【請求項1】
複数の伝送経路のそれぞれに接続された複数の通信装置を介して他の装置と通信を行うための通信制御プログラムにおいて、
コンピュータに、
任意のプロセスからの接続要求に応じて、前記通信装置のうち少なくとも1つを選択し、選択した前記通信装置を介した物理コネクションを確立し、
確立された1以上の前記物理コネクションを1つに纏めた論理接続を定義し、
前記論理接続に含まれる前記物理コネクションに障害が発生すると、障害が発生した前記物理コネクションと異なる前記通信装置を介した物理コネクションを再確立して、前記論理接続に含め、
前記プロセスからの前記論理接続に適合する通信要求を受け取ると、そのとき前記論理接続に含まれる前記物理コネクションを介して、前記通信要求に応じた通信を行う、
処理を実行させることを特徴とする通信制御プログラム。
【請求項2】
前記論理接続には、前記他の装置を一意に識別するための相手接続識別子、前記プロセスを一意に識別する自通信識別子、および前記他の装置内の通信相手となる他のプロセスを一意に識別するための相手通信識別子が含められ、前記プロセスからの前記通信要求で指定された通信相手の情報が、前記論理接続に含まれる前記相手接続識別子、前記自通信識別子、および前記相手通信識別子と一致したときに、前記論理接続に適合すると判断する処理を実行させることを特徴とする請求の範囲第1項記載の通信制御プログラム。
【請求項3】
前記プロセスがクライアントとして機能する場合、前記物理コネクションの確立のとき、前記プロセスと同じ前記通信識別子を有するサーバプロセスを起動し、前記他の装置からの再接続要求を受け取ったとき、前記サーバプロセスが前記物理コネクションの再確立を実行する処理を実行させることを特徴とする請求の範囲第2項記載の通信制御プログラム。
【請求項4】
前記物理コネクションの1つが遮断されたとき、前記物理コネクションの再確立を実行させることを特徴とする請求の範囲第1項記載の通信制御プログラム。
【請求項5】
全ての前記物理コネクションが遮断されたとき、前記物理コネクションの再確立を実行させることを特徴とする請求の範囲第1項記載の通信制御プログラム。
【請求項6】
前記論理接続に適合する通信要求を受け取ると、そのとき前記論理接続に含まれる複数の前記物理コネクションに負荷を分散させて、前記通信要求に応じた通信を実行させることを特徴とする請求の範囲第1項記載の通信制御プログラム。
【請求項7】
複数の伝送経路のそれぞれに接続された複数の通信装置を介して他の装置と通信を行うための通信制御方法において、
任意のプロセスからの接続要求に応じて、前記通信装置のうち少なくとも1つを選択し、選択した前記通信装置を介した物理コネクションを確立し、
確立された1以上の前記物理コネクションを1つに纏めた論理接続を定義し、
前記論理接続に含まれる前記物理コネクションに障害が発生すると、障害が発生した前記物理コネクションと異なる前記通信装置を介した物理コネクションを再確立して、前記論理接続に含め、
前記プロセスからの前記論理接続に適合する通信要求を受け取ると、そのとき前記論理接続に含まれる前記物理コネクションを介して、前記通信要求に応じた通信を行う、
ことを特徴とする通信制御方法。
【請求項8】
複数の伝送経路のそれぞれに接続された複数の通信装置を介して他の装置と通信を行うための通信制御装置において、
任意のプロセスからの接続要求に応じて、前記通信装置のうち少なくとも1つを選択し、選択した前記通信装置を介した物理コネクションを確立する物理コネクション手段と、
前記物理コネクション手段で確立された1以上の前記物理コネクションを1つに纏めた論理接続を定義する論理接続定義手段と、
前記論理接続に含まれる前記物理コネクションに障害が発生すると、障害が発生した前記物理コネクションと異なる前記通信装置を介した物理コネクションを再確立して、前記論理接続に含める通信再接続手段と、
前記プロセスからの前記論理接続に適合する通信要求を受け取ると、そのとき前記論理接続に含まれる前記物理コネクションを介して、前記通信要求に応じた通信を行う通信手段と、
を有することを特徴とする通信制御装置。
【請求項9】
複数の伝送経路のそれぞれに接続された複数の通信装置を介して他の装置と通信を行うための通信制御プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
任意のプロセスからの接続要求に応じて、前記通信装置のうち少なくとも1つを選択し、選択した前記通信装置を介した物理コネクションを確立し、
確立された1以上の前記物理コネクションを1つに纏めた論理接続を定義し、
前記論理接続に含まれる前記物理コネクションに障害が発生すると、障害が発生した前記物理コネクションと異なる前記通信装置を介した物理コネクションを再確立して、前記論理接続に含め、
前記プロセスからの前記論理接続に適合する通信要求を受け取ると、そのとき前記論理接続に含まれる前記物理コネクションを介して、前記通信要求に応じた通信を行う、
処理を実行させることを特徴とする通信制御プログラムを記録したコンピュータ読み取り可能な記録媒体。

【国際公開番号】WO2004/077781
【国際公開日】平成16年9月10日(2004.9.10)
【発行日】平成18年6月8日(2006.6.8)
【国際特許分類】
【出願番号】特願2004−568758(P2004−568758)
【国際出願番号】PCT/JP2003/002277
【国際出願日】平成15年2月27日(2003.2.27)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】