(57)【要約】【課題】複数のネットワークに分散されて配置されたサーバ計算機、クライアント計算機において、サーバ計算機の状態変化に合わせて接続するサーバ計算機の選択を、クライアント計算機のクライアントアプリケーションプログラムに意識させることなく、高効率、高速、高信頼に行う。【解決手段】クライアント計算機13aの要求に応じて、任意のサーバ計算機22bへ中継するネットワーク中継プログラム5を用いたネットワーク中継方法において、前記サーバ計算機22bが、提供するサービス情報を含んだマルチキャストパケットを送信するパケット送信ステップと、前記ネットワーク中継プログラム5が、前記マルチキャストパケットに基づいてデータベースを作成及び検索し、中継するサーバ計算機22bを決定するサーバ計算機検索ステップと、前記ネットワーク中継プログラム5が中継するネットワーク中継ステップからなることを特徴とするネットワーク中継方法。【選択図】図２
2011070255.tif 000002
【特許請求の範囲】
【請求項１】
複数のネットワークに分散されて配置されたサーバ計算機とクライアント計算機をルータ装置を介して接続し、クライアント計算機の要求に応じて、任意のサーバ計算機へネットワークデータをネットワーク中継装置を用いて中継するネットワーク中継方法において、
前記サーバ計算機がネットワーク中継プログラムを備えた前記ネットワーク中継装置に、前記サーバ計算機が提供するサービス情報を含んだデータを送信するデータ送信ステップと、
受信した前記データに基づいて前記ネットワーク中継装置により、データベースを更新するデータベース更新処理ステップと、
前記ネットワーク中継装置により、前記データベースを検索し、前記クライアント計算機と中継するサーバ計算機を決定するサーバ計算機検索ステップと、
前記ネットワーク中継装置により、前記サーバ計算機検索ステップで決定されたサーバ計算機に中継するネットワーク中継ステップからなる
ことを特徴とするネットワーク中継方法。
【請求項２】
前記サーバ計算機検索ステップは複数のサーバ計算機で同一のサービスが提供される場合には、クライアント計算機と同一ネットワークに属するサーバ計算機を優先して、前記中継するサーバ計算機を、前記データベースから取得すること
を特徴とする請求項１記載のネットワーク中継方法。
【請求項３】
前記サーバ計算機検索ステップは複数のサーバ計算機で同一のサービスが提供される場合には、クライアント計算機に事前に決定した優先度データベースに基づき、前記中継するサーバ計算機を、前記データベースから取得すること
を特徴とする請求項１記載のネットワーク中継方法。
【請求項４】
前記サーバ計算機検索ステップは複数のサーバ計算機で同一のサービスが提供される場合には、前記サーバ計算機とクライアント計算機のネットワーク距離を用いて、前記中継するサーバ計算機を、前記データベースから取得すること
を特徴とする請求項１記載のネットワーク中継方法。
【請求項５】
前記データ送信ステップは、前記サーバ計算機が前記ネットワーク中継プログラムに、前記サーバ計算機のサービス情報と負荷情報を含んだデータを送信することと、
前記サーバ計算機検索ステップは複数のサーバ計算機で同一のサービスが提供される場合には、前記サーバ計算機の負荷情報を用いて、前記中継するサーバ計算機を、前記データベースから取得すること
を特徴とする請求項１記載のネットワーク中継方法。
【請求項６】
複数のネットワークに分散されて配置されたサーバ計算機とクライアント計算機をルータ装置を介して接続し、クライアント計算機の要求に応じて、任意のサーバ計算機へネットワークデータをネットワーク中継手段を用いて中継するようにしたネットワーク中継システムに用いられるクライアント計算機は、
前記サーバ計算機が提供するサービス情報を含んだデータを受信するデータ受信手段と、
前記データに基づいてデータベースを作成するデータベース作成処理手段と、
前記データベースを検索し、前記クライアント計算機に中継するサーバ計算機を決定するサーバ計算機検索手段と、
前記サーバ計算機検索手段によって決定されたサーバ計算機に中継する前記ネットワーク中継手段と
を備えることを特徴とするクライアント計算機。
【請求項７】
複数のネットワークに分散されて配置されたサーバ計算機とクライアント計算機をルータ装置を介して接続し、クライアント計算機の要求に応じて、任意のサーバ計算機へネットワークデータをネットワーク中継装置を用いて中継するようにしたネットワーク中継システムに用いられるネットワーク中継装置は、
前記サーバ計算機が提供するサービス情報を含んだデータを受信するデータ受信手段と、
前記データに基づいてデータベースを作成するデータベース作成処理手段と、
前記データベースを検索し、前記クライアント計算機に中継するサーバ計算機を決定するサーバ計算機検索手段とを備え、
前記サーバ計算機検索手段によって決定されたサーバ計算機に中継することを特徴とするネットワーク中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば社会インフラの監視制御システムに用いられるネットワーク中継方法及び中継装置及びクライアント計算機の改良に関する。
【背景技術】
【０００２】
従来の電力、ガス、水道、公共交通機関等といった社会インフラの監視制御システムにおいては、監視制御を行う区域を定めその区域毎に制御所を配置し監視制御を行い、この制御所単位にＬＡＮ（Local Area Network）を構築しＬＡＮ上に監視制御を行うサーバ計算機及びサーバ計算機から監視情報を取得し、制御処理を行うクライアント計算機を配置して監視制御業務を行っている。
【０００３】
システムの信頼性を高める為に、サーバ計算機は２以上の計算機により冗長化され、その中の１台をオンライン計算機として運用し、オンライン計算機に何らかの異常が発生した場合には、その他の計算機がバックアップする二重系（または多重系）のシステムを構成するのが常である。
【０００４】
近年、産業システムの高度化、計算機ネットワークの高性能化、計算機自体の高性能化に伴い、従来は区域毎に実施していた監視制御業務を、地理的に分散された複数の制御所間をネットワークにより結合し、ある制御所において事故の発生等により負荷が高くなった場合には、一部の監視制御対象についてその監視制御権限を他区域の制御所に与え、業務負荷を軽減するようにしている。また、ある制御所のサーバ計算機が全て停止した場合には、他区域の制御所のサーバ計算機によりバックアップを行うといった、より高性能、耐障害性の高い監視制御システムが求められている。
【０００５】
従来、制御所内に配置された複数のサーバ計算機における冗長化の方式としては、特許文献１に示すようにIPアドレスとMAC（Media Access Control）アドレスの関連付けを利用し、オンライン計算機が有するべきIPアドレスを定め、このIPアドレスを計算機間で引き継ぐ方式がある。
【０００６】
これによれば、オンライン計算機の健全性をバックアップ計算機により監視し、オンライン計算機の障害を検出した場合にはバックアップ計算機によってオンライン計算機が有するIPアドレスをARP（Address Resolution Protocol）を用いて引き継ぐ。
【０００７】
オンライン計算機となる計算機のIPアドレスが変更されることは無いので、クライアント計算機で動作するクライアントアプリケーションプログラムはオンライン計算機の変更に備えた処理を具備する必要はないので、オンライン計算機の変更に対処するように作成する場合と比較して、クライアントアプリケーションプログラムの作成が容易となる。
【０００８】
さらに、クライアントアプリケーションプログラムには特別な処理を入れることなく適切なサーバ計算機への接続を中継する方法としては特許文献２に示す方法が知られている。
【０００９】
即ち、クライアント計算機が接続されたネットワークの位置情報等と、事前または要求が行われた際にクライアントアプリケーションプログラムを利用するユーザーが入力したデータベースに基づいて、接続すべきサーバ計算機へ中継を行う方法である。
【００１０】
また、広くインターネットで利用されているDNS（Domain Name System）サーバを利用し、サービスを提供する計算機のURLに対応するIPアドレスを切り替える方法や、サービスを提供する計算機が複数ある場合にはDNSサーバが応答するIPアドレスをクライアント計算機からの問い合わせの度に変更することでサーバ計算機の負荷分散を行う方法もある。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開2006-253900号公報
【特許文献２】特許第3941562号
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上述した特許文献１に記載の方法においては、IPアドレスとMACアドレスを用いた方式であるため、ARP情報であるブロードキャストパケットが到達するように、サーバ計算機を同一ネットワーク内に配置する必要がある。また、サーバ計算機がルータ装置を介して複数のネットワークに配置されている場合にはARP情報を用いてサーバ計算機の引継ぎをすることはできないという課題がある。
【００１３】
これに対して、異なるネットワークを仮想的に同一ネットワークとして扱う、L2TP（Layer2 Tunnel Protocol）を利用する手法があるが、L2TPではネットワークデータにL2TPヘッダを付加するので、ネットワークデータの断片化が発生する場合がある。この断片化を防ぐためには計算機やネットワーク機器のMTU（Maximum Transmission Unit）の変更が必要となり、ネットワーク伝送効率が低下するだけでなくネットワーク機器の設定作業が煩雑となる。
【００１４】
さらに、特許文献２に記載の方法においては、クライアント計算機が接続されたネットワークの位置情報に基づいて接続するサーバ計算機を決定するものであって、サーバ計算機に障害が発生した場合を考慮したものではない。
【００１５】
また、DNSサーバを利用した場合にはDNSサーバへの問い合わせ処理が集中することになる。そして、DNSサーバに障害が発生した場合には接続するべきサーバ計算機のIPアドレスを取得することができなくなる。
【００１６】
これに対して、DNSサーバを冗長化しバックアップ用の二次DNSサーバを運用することや、ネットワーク毎にDNSサーバを配置してDNSサーバの高信頼を高める方法もある。
【００１７】
しかし、DNSサーバ間でのIPアドレス情報の更新遅延の発生及び1次DNSサーバに障害が発生した場合には問い合わせ処理の遅延が発生することになり高い応答性能を求められる監視制御システムに適用することはできない。
【００１８】
本発明は上述した課題を解決するためになされたものであり、ルータ装置を介して接続され、ARP情報であるブロードキャストパケットが到達しない複数のネットワークに分散配置されたサーバ計算機とクライアント計算機とを中継するにあたり、サーバ計算機の状態変化に合わせて接続すべきサーバ計算機の選択を、クライアント計算機のクライアントアプリケーションプログラムに意識させることなく効率よく、高速、高信頼に行うことができるようにしたネットワーク中継方法を得ることを目的とする。
【課題を解決するための手段】
【００１９】
複数のネットワークに分散されて配置されたサーバ計算機とクライアント計算機をルータ装置を介して接続し、クライアント計算機の要求に応じて、任意のサーバ計算機へネットワークデータをネットワーク中継装置を用いて中継するネットワーク中継方法において、前記サーバ計算機がネットワーク中継プログラムを備えた前記ネットワーク中継装置に、前記サーバ計算機が提供するサービス情報を含んだデータを送信するデータ送信ステップと、受信した前記データに基づいて前記ネットワーク中継装置により、データベースを更新するデータベース更新処理ステップと、前記ネットワーク中継装置により、前記データベースを検索し、前記クライアント計算機と中継するサーバ計算機を決定するサーバ計算機検索ステップと、前記ネットワーク中継装置により、前記サーバ計算機検索ステップで決定されたサーバ計算機に中継するネットワーク中継ステップからなるネットワーク中継方法であることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、複数のネットワークに分散されて配置されたサーバ計算機と、クライアント計算機とを中継する中継方法において、サーバ計算機の状態変化に合わせて接続するサーバ計算機の選択を、クライアント計算機のクライアントアプリケーションプログラムに意識させることなく、高効率、高速、高信頼に行うことが可能である。
【図面の簡単な説明】
【００２１】
【図１】本発明におけるネットワークの全体を示す構成図。
【図２】本発明のサーバ計算機、クライアント計算機で動作するアプリケーションプログラムの関係図。
【図３】実施形態１におけるデータベース更新処理手順を示すフローチャート。
【図４】実施形態１におけるサーバ計算機から送信されるマルチキャストパケットのデータ内容の一例を示す図。
【図５】実施形態１におけるネットワーク中継プログラムのデータベースのデータ内容の一例を示す図。
【図６】実施形態１におけるサーバ計算機検索とネットワークデータ中継処理手順を説明するフローチャート。
【図７】実施形態１におけるサーバ計算機検索方法に用いるデータベースの一例を示す図。
【図８】実施形態２におけるサーバ計算機から送信されるマルチキャストパケットのデータ内容の一例を示す図。
【図９】実施形態２におけるネットワーク中継プログラムのデータベースの一例を示す図。
【図１０】実施形態２におけるデータベース更新処理手順を説明するフローチャート。
【図１１】実施形態２におけるサーバ計算機検索とネットワークデータ中継処理手順を説明するフローチャート。
【図１２】実施形態３におけるクライアント計算機とネットワーク中継装置との関係図。
【発明を実施するための形態】
【００２２】
以下、本発明に係るネットワーク中継方法及び中継装置の実施形態について、図面を参照して説明する。
【００２３】
（実施形態１）
図１は、本発明の実施形態１の全体的構成を示す。なお本実施形態では説明を容易にするため、一般的な監視制御システムにおいてクライアント計算機のクライアントアプリケーションプログラムがサーバ計算機で動作しているサーバアプリケーションプログラムへTCP/IPにより通信を行う場合について説明する。
【００２４】
地理的に離れた制御所1及び制御所2にネットワーク11及びネットワーク21がそれぞれ構築されている。ネットワーク11にはサーバ計算機12a、12b、12cとクライアント計算機13a、13bが、また、ネットワーク21にはサーバ計算機22a、22bとクライアント計算機23aがそれぞれ接続されている。
【００２５】
サーバ計算機12a、12b、12c及び22a、22bにはそれぞれサーバアプリケーションプログラムが、また、クライアント計算機13a、13b及び23aにはそれぞれクライアントアプリケーションプログラムが備えられている。さらに、各計算機には少なくともネットワーク11、21へ接続可能なハードウェア、キーボード、マウス、ディスプレイ装置等の使用者が入出力を行うためのハードウェアが備わっている。
【００２６】
ネットワーク11、21はルータ14、24を介してそれぞれ広域ネットワーク3に接続されており、例えばネットワーク11のクライアント計算機13aからネットワーク21のサーバ計算機22bへのネットワークデータは、クライアント計算機13aからルータ14、広域ネットワーク3、ルータ24を経てサーバ計算機22bへ伝達可能である。
【００２７】
サーバ計算機12a、12b、12c及び22a、22bでは制御所1、2が管轄する監視制御対象とする装置の監視制御を行うサーバアプリケーションプログラムが動作しており、制御所1、2を跨いだサーバ計算機12a、12b、12cと22a、22bの間による監視制御権のバックアップ、複数のサーバ計算機12a、12b、12c及び22a、22bによる重複した監視制御が可能となっている。
【００２８】
図2は図１記載のサーバ計算機22b、クライアント計算機13aについて計算機上で動作するアプリケーションプログラムの関係を示した図である。サーバ計算機22bでは、サーバアプリケーションプログラム61、62が動作している。
【００２９】
本実施形態１では２つのサーバアプリケーションプログラム61、62が、それぞれ制御所1、2の監視制御権限を有するサーバプログラムとして動作し、例えばサーバアプリケーションプログラム61はポート番号60061、サーバアプリケーションプログラム62はポート番号60062を利用して、クライアント計算機にサービスを提供することとする。
【００３０】
クライアント計算機13aではクライアントアプリケーションプログラム41、42とネットワーク中継プログラム5が動作している。ネットワーク中継プログラム5はクライアントアプリケーションプログラム41、42のネットワークゲートウェイとして動作する。
【００３１】
すなわちクライアントアプリケーションプログラム41、42とサーバアプリケーションプログラム61、62との全てのネットワーク通信はネットワーク中継プログラム5を介して行われる。また、ネットワーク中継プログラム5はサーバ計算機12a、12b、12c及び22a、22bから送信されるサービス情報を受信し、ネットワーク中継プログラム5のデータベースへの登録及び削除を行う。
【００３２】
サーバ計算機22bと同様に、サーバ計算機12a、12b、12c及び22aについてもそれぞれに設けたサーバアプリケーションプログラムが動作し、また、クライアント計算機13b及び23aについても同様にそれぞれに設けたクライアントアプリケーションプログラム、及びネットワーク中継プログラム5が動作する。
【００３３】
このように構成された本実施形態１において、以下に、クライアント計算機13aのネットワーク中継プログラム5が、ネットワーク11、21に接続されるサーバ計算機12a、12b、12c及び22a、22bから送信されるサービス情報が含まれたマルチキャストパケットを受信し、その受信した情報内容のネットワーク中継プログラム5のデータベースに対する登録及び削除を行う、データベース更新処理について図３を参照して説明する。
【００３４】
まず、マルチキャストパケットの受信待ちをしているネットワーク中継プログラム5は、サーバ計算機12a、12b、12c及び22a、22bのいずれかから送信されたマルチキャストパケットを受信する（S301）。
【００３５】
なお、図４にサーバ計算機12a、12b、12c及び22a、22bから送信されるマルチキャストパケットのデータ内容の一例を示す。マルチキャストパケットのデータ内容にはサーバ計算機のIPアドレス、ポート番号、サービス状態が含まれ、例えばIPアドレスが192.168.12.101のサーバ計算機が、ポート番号60062でサービスを提供中であればサービス状態が実行中であることを示す1：実行とし、提供中で無ければサービス状態が停止中であることを示す0：停止とする。なお、図４では、サービス状態が停止中であることから0としている。
【００３６】
ここでサーバ計算機のIPアドレスはデータ送信を行ったサーバ計算機である必要はなく、例えばサーバ計算機12aのIPアドレスが192.168.12.101であり、サーバ計算機22bのIPアドレスが192.168.22.102であり、また、サーバ計算機12aでサービスされていたポート番号60062のサービスをサーバ計算機22bで引継ぎ実行する場合にはサーバ計算機22bからパケット71、72の２つのパケットを送信するようにしても良い。
【００３７】
また、図５はネットワーク中継プログラムのデータベースの一例であり、サーバ計算機からのマルチキャストパケットに基づいて、現在サービスを提供中のサーバ計算機のIPアドレスとポート番号の組合せが登録されている。ここでは、IPアドレスが192.168.12.101のサーバ計算機がポート番号60061、60062、60064でサービスを提供しており、192.168.22.102のサーバ計算機がポート番号60063でサービスを提供していることを示している。
【００３８】
図３の更新処理に戻って、ネットワーク中継プログラム5が受信したマルチキャストパケット（S301）のデータ内容のIPアドレス、ポート番号がデータベースに登録されているか検索を行う（S302）。一致するデータが存在しなかった場合（S303のNO）には、マルチキャストパケットのデータ内容のサービス状態が実行であるか否かの確認を行う（S304）。
【００３９】
サービス状態が実行である場合（S304のYES）にはネットワーク中継プログラムのデータベースへIPアドレス、ポート番号の登録を行う（S305）。
【００４０】
そしてポート番号のTCP/IPソケットが作成されているか否かを確認する（S306）。既にポート番号でのソケットが作成されている場合（S306のYES）には、マルチキャストパケットの受信処理（S301）へ戻る。
【００４１】
ポート番号でのTCP/IPソケットが作成されていない場合（S306のNO）にはポート番号でソケットを作成する（S307）。サービス状態が停止である場合（S304のNO）にはデータベースへの登録・削除処理は行わず再びマルチキャストパケットの受信処理（S301）へ戻る。
【００４２】
受信したマルチキャストパケットのデータ内容のIPアドレス、ポート番号と一致するデータが既にデータベースに登録されていた場合（S303のYES）にもマルチキャストパケットのデータ内容のサービス状態が実行であるか否かの確認を行う（S308）。サービス状態が実行である場合（S308のYES）にはデータベースへの登録・削除処理は行わず、再びマルチキャストパケットの受信処理（S301）へ戻る。
【００４３】
サービス状態が停止である場合（S308のNO）にはネットワーク中継プログラムのデータベースから検索した（S302）データの削除を行う（S309）。さらにネットワーク中継プログラムのデータベースからポート番号が一致するデータの検索を行い（S310）、検索結果に一致するデータが存在する場合（S311のYES）にはマルチキャストパケットの受信処理（S301）へ戻り、検索に一致するデータが存在しない場合（S311のNO）には、そのポート番号で作成されているソケットの破棄を行う（S312）。
【００４４】
次にクライアントアプリケーションプログラムとサーバアプリケーションプログラムとのネットワーク通信を中継するためのサーバ計算機の検索、及び、ネットワークデータ中継処理について図６を参照して説明する。
【００４５】
まず、図３のデータベース更新処理ステップ（S307）で作成したソケットについて、クライアントアプリケーションプログラムからの接続待ちを行う（S601）。クライアントアプリケーションプログラムに接続されると、ネットワーク中継プログラム5のデータベースから、接続に用いられたポート番号と一致するデータの検索を行う（S602）。検索の結果、ポート番号と一致するデータが見つからなかった場合（S603のNo）にはクライアントアプリケーションプログラムとの通信を終了し（S604）、接続待ち（S601）へ戻る。
【００４６】
検索の結果、ポート番号と一致するデータが見つかった場合（S603のYES）にはデータに記載のIPアドレス及びポート番号への接続処理を行い（S605）、クライアントアプリケーションプログラムとサーバアプリケーションプログラムとの通信の中継処理を行う（S606）。
【００４７】
通信の中継処理を開始後、通信が切断されたか否かのチェック処理を行い（S607）、切断を検出した場合（S607のYES）には通信の終了処理（S604）を行い、接続待ち（S601）へ戻る。通信の切断が行われていない場合（S607のNO）にはデータ中継処理（S606）に戻り中継処理を継続する。
【００４８】
また、ネットワーク中継プログラム5のデータベースから、接続に用いられたポート番号に一致するデータの検索（S602）を行った結果、複数のデータが一致した場合には最初に検索にマッチしたデータに記載のIPアドレスへ中継する。
【００４９】
或いは、ネットワークの利用効率を加味して、ネットワーク中継プログラム5が動作するクライアント計算機のIPアドレスと検索された複数のデータのIPアドレスとの比較を行い、同一ネットワークに属するサーバ計算機のIPアドレスへ中継しても良い。
【００５０】
また、図７ａのように事前にサーバ計算機へトレースルート（traceroute）コマンド等を利用してネットワーク距離（一般的にはホップ数と呼ばれるネットワークデータパケットが到達するまでに経由するルータ等の中継装置の個数）を算出しておき、このネットワーク距離がもっとも小さいサーバ計算機のIPアドレスへ中継するようにしても良い。
【００５１】
さらに図７ｂのように、クライアント計算機に事前にサーバ計算機の優先順位を示した優先度データベースを作成しておき、この優先度が最も高い計算機のIPアドレスへ中継するようにしても良い。
【００５２】
本実施形態１によれば、サーバ計算機から提供されるサービス情報の追加・削除に伴い送信されるマルチキャストパケットを、ネットワーク中継プログラム5が受信しデータベースを直ちに更新処理するので、以降のクライアントアプリケーションプログラムからの接続要求に対して当該サービスを提供するサーバ計算機のサーバアプリケーションプログラムへネットワークデータを中継することができる。
【００５３】
また複数のサーバ計算機から同一のサービスが提供されている場合にはネットワーク距離のもっとも短いサーバ計算機を選択するようにすれば、ネットワークアドレスの異なる各ネットワークに配置されたサーバ計算機、クライアント計算機において、サーバ計算機の状態変化に合わせて接続するサーバ計算機の選択を、クライアント計算機のクライアントアプリケーションプログラムに意識させることなく効率よく、高速、高信頼に中継することができる。
【００５４】
更に、事前にクライアント計算機にサーバ計算機の優先順位を示した優先度データベースを作成しておき、この優先度が最も高いサーバ計算機のIPアドレスへ中継するようにしても効率よく、高速、高信頼に中継することができる。
【００５５】
（実施形態２）
次に、本発明に係るネットワーク中継方法の実施形態２を、図８乃至図１０を参照して説明する。なお全体の構成は実施形態１における図１と同一構成のため、重複する説明は省略する。
【００５６】
図８は、図４で説明した同様のサーバ計算機12a、12b、12c及び22a、22bから送信されるマルチキャストパケットのデータ内容の一例である。本実施形態２では、マルチキャストパケットのデータにはサーバ計算機のIPアドレス、ポート番号、サービス状態に加えてサーバ計算機の負荷状況が含まれている点が図４と異なる。ここで負荷状況とは数値が大きいほど、そのサーバ計算機の負荷状況が軽く、小さいほど負荷状況が大きいことを表しているものとする。
【００５７】
ここでサーバ計算機のIPアドレスはデータ送信を行ったサーバ計算機である必要はなく、例えばサーバ計算機12aのIPアドレスが192.168.12.101でありサーバ計算機22bのIPアドレスが192.168.22.102としたとき、サーバ計算機12aでサービスされていたポート番号60062のサービスをサーバ計算機22bで引継ぐ場合には、サーバ計算機22bから図８の２つのパケット81、82を送信すれば良い。このときサーバ計算機12aについてのパケット81の負荷状況は数値が0で、サービス停止であるため、その値を0としてサーバ計算機22bから送信する。
【００５８】
図９はネットワーク中継プログラムのデータベースの一例であり、現在サービスを提供中のサーバ計算機のIPアドレス、ポート番号及びサーバ計算機の負荷状況の組合せが登録されているとする。
【００５９】
そして、本実施形態２において、図１０を参照してクライアント計算機13aのネットワーク中継プログラム5が、サーバ計算機12a、12b、12c及び22a、22bから送信されるサービス情報が含まれたマルチキャストパケットを受信し、ネットワーク中継プログラム5のデータベースへの登録及び削除を行う、データベース更新処理について説明する。
【００６０】
ネットワーク中継プログラム5はマルチキャストパケットの受信待ちをしており、サーバ計算機12a、12b、12c及び22a、22bのいずれかから送信されたマルチキャストパケットを受信する（S1001）。
【００６１】
次に受信したマルチキャストパケットのデータ内容のIPアドレス、ポート番号が、ネットワーク中継プログラム5のデータベースに登録されているか検索を行う（S1002）。IPアドレスとポート番号とが一致するデータが存在しなかった場合（S1003のNO）、マルチキャストパケットのデータ内容のサービス状態が実行であるかの確認を行う（S1004）。
【００６２】
その結果、サービス状態が実行である場合（S1004のYES）にはネットワーク中継プログラム5のデータベースへIPアドレス、ポート番号、負荷状況の登録を行う（S1005）。
【００６３】
そしてポート番号のTCP/IPソケットが作成されているか確認する（S1006）。ポート番号でソケットが作成されている場合（S1006のYES）にはマルチキャストパケットの受信処理（S1001）へ戻る。ポート番号のTCP/IPソケットが作成されていない場合（S1006のNO）にはポート番号でソケット作成する（S1007）。
【００６４】
サービス状態が停止である場合（S1004のNO）にはデータベースへの登録・削除処理は行わず再びマルチキャストパケットの受信処理（S1001）へ戻る。
【００６５】
受信したマルチキャストパケットのデータ内容のIPアドレス、ポート番号と一致するデータが既にデータベースに登録されていた場合（S1003のYES）にも、マルチキャストパケットのデータ内容のサービス状態が実行であるかの確認を行う（S1008）。
【００６６】
サービス状態が実行である場合（S1008のYES）にはデータベースの該当データの負荷状態をマルチキャストパケットで受信したデータ内容の負荷状況に更新（S1009）し、登録・削除処理は行わず再びマルチキャストパケットの受信処理（S1001）へ戻る。
【００６７】
サービス状態が停止である場合（S1008のNO）にはネットワーク中継プログラムのデータベースから検索した（S1002）データの削除を行う（S1010）。
【００６８】
さらにネットワーク中継プログラム5のデータベースについてポート番号が一致するデータの検索を行い（S1011）、一致するデータが存在する場合（S1012のYES）にはマルチキャストパケットの受信処理（S1001）へ戻り、一致するデータが存在しない場合（S1012のNO）には、そのポート番号で作成されているソケットの破棄を行う（S1013）。
【００６９】
次に、図１１を参照してクライアントアプリケーションプログラムからサーバアプリケーションプログラムとの通信を中継するサーバ計算機検索、ネットワークデータ中継処理について説明する。
【００７０】
まず、図３のデータベース更新処理ステップ（S307）で作成したソケットについて、クライアントアプリケーションプログラムからの接続待ちを行う（S1101）。クライアントアプリケーションプログラムに接続されると、ネットワーク中継プログラム5のデータベースから、接続に用いられたポート番号に一致するデータの検索を行う（S1102）。
【００７１】
検索の結果、ポート番号に一致するデータが見つからなかった場合（S1103のNo）には、クライアントアプリケーションプログラムとの通信を終了し（S1104）、接続待ち（S1101）へ戻る。
【００７２】
検索の結果、ポート番号と一致するデータが見つかった場合（S1103のYES）には、一致するデータの中から負荷状況の値が一番大きい計算機を選択して、接続するIPアドレスを決定する（S1105）。そして、データに記載のIPアドレス及びポート番号への接続処理を行い（S1106）、クライアントアプリケーションプログラムとサーバアプリケーションプログラムとの通信の中継処理を行う（S1107）。
【００７３】
通信の中継処理を開始後、通信が切断されたか否かのチェック処理を行い（S1108）、切断されている場合（S1108のYES）には通信の終了処理（S1104）を行い、接続待ち（S1101）へ戻る。通信が接続されている場合（S1108のNO）にはデータ中継処理（S1107）に戻り中継処理を継続する。
【００７４】
また、ネットワーク中継プログラム5のデータベースから、接続に用いられたポート番号に一致するデータの検索（S1102）を行った結果、複数のデータが一致し、接続先のIPアドレス決定処理（S1105）において負荷状況の値が一番大きい計算機が複数ある場合には、最初に検索にマッチしたデータに記載のIPアドレスへ中継しても良い。
【００７５】
さらに、図７ｂのように、クライアント計算機に事前にサーバ計算機の優先順位を示した優先度データベースを作成しておき、この優先度が最も高い計算機のIPアドレスへ中継しても良い。
【００７６】
本実施形態２によれば、実施形態１の効果に加え、同一サービスを提供するサーバ計算機が複数ある場合には負荷が一番低いサーバ計算を選択してネットワークデータを中継することができるので、複数のサーバ計算機が同一サービスを提供する場合にはサーバ計算機の負荷やネットワークコストが最小となるサーバ計算機を選択し、クライアント計算機のクライアントアプリケーションプログラムに意識させることなく効率よく、高速、高信頼に行うネットワーク中継方法することができる。
【００７７】
（実施形態３）
次に、本発明に係るネットワーク中継方法の実施形態３を、図１２を参照して説明する。なお、実施形態１及び実施形態２と同一の構成部分には同一の符号を付し、重複する説明は省略する。
【００７８】
本実施形態では、実施形態１及び２におけるネットワーク中継プログラム5がクライアント計算機13a、13b及び23a内で動作するのではなく、図12のようにクライアント計算機13aとネットワーク11との間に接続するネットワーク中継装置10内で動作する。
【００７９】
ネットワーク中継装置10は、クライアント計算機13aのLANインターフェース7と接続されたLANインターフェース8と、ネットワーク11に接続されたLANインターフェース9を備える。
【００８０】
なお、ＬＡＮインターフェース8に接続するクライアント計算機は単数とは限らず、複数接続することによって、多くのクライアント計算機からの中継要求に応じることが可能となる。
【００８１】
本実施形態における作用は、図３及び図１０と同様であるため、説明を省略する。
【００８２】
本実施形態によれば、実施形態１及び２の効果に加え、複数のクライアント計算機からの中継要求に応じる場合、ネットワーク中継プログラムを各クライアント計算機に内蔵する必要がない。そのため、煩雑な各クライアント計算機へのネットワーク中継プログラムの内蔵操作を行う必要が無くなることに加え、各クライアント計算機の記憶部使用量を節約することが可能である。
【００８３】
以上の本発明の実施形態１乃至３において、サーバ計算機がサービス情報を含んだマルチキャストパケットを、ネットワークで接続される全てのネットワーク中継プログラム5に送信しているが、マルチキャストパケットを用いた一斉同報通信である必要は無く、各サーバと各ネットワーク中継プログラム5が個別にサービス情報を含むデータのやり取りを行っても良い。
【符号の説明】
【００８４】
１、２…制御所
３…広域ネットワーク
５…ネットワーク中継プログラム
７、８、９…ＬＡＮインターフェース
１０…ネットワーク中継装置
１１、２１…ネットワーク
１２ａ、１２ｂ、１２ｃ、２２ａ、２２ｂ…サーバ計算機
１３ａ、１３ｂ、２３ｃ…クライアント計算機
１４、２４…ルータ
４１、４２…クライアントアプリケーションプログラム
６１、６２…サーバアプリケーションプログラム
７１、７２、８１、８２…マルチキャストパケット 
【図１】
2011070255.tif 000003
【図２】
2011070255.tif 000004
【図３】
2011070255.tif 000005
【図４】
2011070255.tif 000006
【図５】
2011070255.tif 000007
【図６】
2011070255.tif 000008
【図７】
2011070255.tif 000009
【図８】
2011070255.tif 000010
【図９】
2011070255.tif 000011
【図１０】
2011070255.tif 000012
【図１１】
2011070255.tif 000013
【図１２】
2011070255.tif 000014