ネットワーク中継方法及び中継装置及びクライアント計算機
【課題】複数のネットワークに分散されて配置されたサーバ計算機、クライアント計算機において、サーバ計算機の状態変化に合わせて接続するサーバ計算機の選択を、クライアント計算機のクライアントアプリケーションプログラムに意識させることなく、高効率、高速、高信頼に行う。
【解決手段】クライアント計算機13aの要求に応じて、任意のサーバ計算機22bへ中継するネットワーク中継プログラム5を用いたネットワーク中継方法において、前記サーバ計算機22bが、提供するサービス情報を含んだマルチキャストパケットを送信するパケット送信ステップと、前記ネットワーク中継プログラム5が、前記マルチキャストパケットに基づいてデータベースを作成及び検索し、中継するサーバ計算機22bを決定するサーバ計算機検索ステップと、前記ネットワーク中継プログラム5が中継するネットワーク中継ステップからなることを特徴とするネットワーク中継方法。
【解決手段】クライアント計算機13aの要求に応じて、任意のサーバ計算機22bへ中継するネットワーク中継プログラム5を用いたネットワーク中継方法において、前記サーバ計算機22bが、提供するサービス情報を含んだマルチキャストパケットを送信するパケット送信ステップと、前記ネットワーク中継プログラム5が、前記マルチキャストパケットに基づいてデータベースを作成及び検索し、中継するサーバ計算機22bを決定するサーバ計算機検索ステップと、前記ネットワーク中継プログラム5が中継するネットワーク中継ステップからなることを特徴とするネットワーク中継方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば社会インフラの監視制御システムに用いられるネットワーク中継方法及び中継装置及びクライアント計算機の改良に関する。
【背景技術】
【0002】
従来の電力、ガス、水道、公共交通機関等といった社会インフラの監視制御システムにおいては、監視制御を行う区域を定めその区域毎に制御所を配置し監視制御を行い、この制御所単位にLAN(Local Area Network)を構築しLAN上に監視制御を行うサーバ計算機及びサーバ計算機から監視情報を取得し、制御処理を行うクライアント計算機を配置して監視制御業務を行っている。
【0003】
システムの信頼性を高める為に、サーバ計算機は2以上の計算機により冗長化され、その中の1台をオンライン計算機として運用し、オンライン計算機に何らかの異常が発生した場合には、その他の計算機がバックアップする二重系(または多重系)のシステムを構成するのが常である。
【0004】
近年、産業システムの高度化、計算機ネットワークの高性能化、計算機自体の高性能化に伴い、従来は区域毎に実施していた監視制御業務を、地理的に分散された複数の制御所間をネットワークにより結合し、ある制御所において事故の発生等により負荷が高くなった場合には、一部の監視制御対象についてその監視制御権限を他区域の制御所に与え、業務負荷を軽減するようにしている。また、ある制御所のサーバ計算機が全て停止した場合には、他区域の制御所のサーバ計算機によりバックアップを行うといった、より高性能、耐障害性の高い監視制御システムが求められている。
【0005】
従来、制御所内に配置された複数のサーバ計算機における冗長化の方式としては、特許文献1に示すようにIPアドレスとMAC(Media Access Control)アドレスの関連付けを利用し、オンライン計算機が有するべきIPアドレスを定め、このIPアドレスを計算機間で引き継ぐ方式がある。
【0006】
これによれば、オンライン計算機の健全性をバックアップ計算機により監視し、オンライン計算機の障害を検出した場合にはバックアップ計算機によってオンライン計算機が有するIPアドレスをARP(Address Resolution Protocol)を用いて引き継ぐ。
【0007】
オンライン計算機となる計算機のIPアドレスが変更されることは無いので、クライアント計算機で動作するクライアントアプリケーションプログラムはオンライン計算機の変更に備えた処理を具備する必要はないので、オンライン計算機の変更に対処するように作成する場合と比較して、クライアントアプリケーションプログラムの作成が容易となる。
【0008】
さらに、クライアントアプリケーションプログラムには特別な処理を入れることなく適切なサーバ計算機への接続を中継する方法としては特許文献2に示す方法が知られている。
【0009】
即ち、クライアント計算機が接続されたネットワークの位置情報等と、事前または要求が行われた際にクライアントアプリケーションプログラムを利用するユーザーが入力したデータベースに基づいて、接続すべきサーバ計算機へ中継を行う方法である。
【0010】
また、広くインターネットで利用されているDNS(Domain Name System)サーバを利用し、サービスを提供する計算機のURLに対応するIPアドレスを切り替える方法や、サービスを提供する計算機が複数ある場合にはDNSサーバが応答するIPアドレスをクライアント計算機からの問い合わせの度に変更することでサーバ計算機の負荷分散を行う方法もある。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2006-253900号公報
【特許文献2】特許第3941562号
【発明の概要】
【発明が解決しようとする課題】
【0012】
上述した特許文献1に記載の方法においては、IPアドレスとMACアドレスを用いた方式であるため、ARP情報であるブロードキャストパケットが到達するように、サーバ計算機を同一ネットワーク内に配置する必要がある。また、サーバ計算機がルータ装置を介して複数のネットワークに配置されている場合にはARP情報を用いてサーバ計算機の引継ぎをすることはできないという課題がある。
【0013】
これに対して、異なるネットワークを仮想的に同一ネットワークとして扱う、L2TP(Layer2 Tunnel Protocol)を利用する手法があるが、L2TPではネットワークデータにL2TPヘッダを付加するので、ネットワークデータの断片化が発生する場合がある。この断片化を防ぐためには計算機やネットワーク機器のMTU(Maximum Transmission Unit)の変更が必要となり、ネットワーク伝送効率が低下するだけでなくネットワーク機器の設定作業が煩雑となる。
【0014】
さらに、特許文献2に記載の方法においては、クライアント計算機が接続されたネットワークの位置情報に基づいて接続するサーバ計算機を決定するものであって、サーバ計算機に障害が発生した場合を考慮したものではない。
【0015】
また、DNSサーバを利用した場合にはDNSサーバへの問い合わせ処理が集中することになる。そして、DNSサーバに障害が発生した場合には接続するべきサーバ計算機のIPアドレスを取得することができなくなる。
【0016】
これに対して、DNSサーバを冗長化しバックアップ用の二次DNSサーバを運用することや、ネットワーク毎にDNSサーバを配置してDNSサーバの高信頼を高める方法もある。
【0017】
しかし、DNSサーバ間でのIPアドレス情報の更新遅延の発生及び1次DNSサーバに障害が発生した場合には問い合わせ処理の遅延が発生することになり高い応答性能を求められる監視制御システムに適用することはできない。
【0018】
本発明は上述した課題を解決するためになされたものであり、ルータ装置を介して接続され、ARP情報であるブロードキャストパケットが到達しない複数のネットワークに分散配置されたサーバ計算機とクライアント計算機とを中継するにあたり、サーバ計算機の状態変化に合わせて接続すべきサーバ計算機の選択を、クライアント計算機のクライアントアプリケーションプログラムに意識させることなく効率よく、高速、高信頼に行うことができるようにしたネットワーク中継方法を得ることを目的とする。
【課題を解決するための手段】
【0019】
複数のネットワークに分散されて配置されたサーバ計算機とクライアント計算機をルータ装置を介して接続し、クライアント計算機の要求に応じて、任意のサーバ計算機へネットワークデータをネットワーク中継装置を用いて中継するネットワーク中継方法において、前記サーバ計算機がネットワーク中継プログラムを備えた前記ネットワーク中継装置に、前記サーバ計算機が提供するサービス情報を含んだデータを送信するデータ送信ステップと、受信した前記データに基づいて前記ネットワーク中継装置により、データベースを更新するデータベース更新処理ステップと、前記ネットワーク中継装置により、前記データベースを検索し、前記クライアント計算機と中継するサーバ計算機を決定するサーバ計算機検索ステップと、前記ネットワーク中継装置により、前記サーバ計算機検索ステップで決定されたサーバ計算機に中継するネットワーク中継ステップからなるネットワーク中継方法であることを特徴とする。
【発明の効果】
【0020】
本発明によれば、複数のネットワークに分散されて配置されたサーバ計算機と、クライアント計算機とを中継する中継方法において、サーバ計算機の状態変化に合わせて接続するサーバ計算機の選択を、クライアント計算機のクライアントアプリケーションプログラムに意識させることなく、高効率、高速、高信頼に行うことが可能である。
【図面の簡単な説明】
【0021】
【図1】本発明におけるネットワークの全体を示す構成図。
【図2】本発明のサーバ計算機、クライアント計算機で動作するアプリケーションプログラムの関係図。
【図3】実施形態1におけるデータベース更新処理手順を示すフローチャート。
【図4】実施形態1におけるサーバ計算機から送信されるマルチキャストパケットのデータ内容の一例を示す図。
【図5】実施形態1におけるネットワーク中継プログラムのデータベースのデータ内容の一例を示す図。
【図6】実施形態1におけるサーバ計算機検索とネットワークデータ中継処理手順を説明するフローチャート。
【図7】実施形態1におけるサーバ計算機検索方法に用いるデータベースの一例を示す図。
【図8】実施形態2におけるサーバ計算機から送信されるマルチキャストパケットのデータ内容の一例を示す図。
【図9】実施形態2におけるネットワーク中継プログラムのデータベースの一例を示す図。
【図10】実施形態2におけるデータベース更新処理手順を説明するフローチャート。
【図11】実施形態2におけるサーバ計算機検索とネットワークデータ中継処理手順を説明するフローチャート。
【図12】実施形態3におけるクライアント計算機とネットワーク中継装置との関係図。
【発明を実施するための形態】
【0022】
以下、本発明に係るネットワーク中継方法及び中継装置の実施形態について、図面を参照して説明する。
【0023】
(実施形態1)
図1は、本発明の実施形態1の全体的構成を示す。なお本実施形態では説明を容易にするため、一般的な監視制御システムにおいてクライアント計算機のクライアントアプリケーションプログラムがサーバ計算機で動作しているサーバアプリケーションプログラムへTCP/IPにより通信を行う場合について説明する。
【0024】
地理的に離れた制御所1及び制御所2にネットワーク11及びネットワーク21がそれぞれ構築されている。ネットワーク11にはサーバ計算機12a、12b、12cとクライアント計算機13a、13bが、また、ネットワーク21にはサーバ計算機22a、22bとクライアント計算機23aがそれぞれ接続されている。
【0025】
サーバ計算機12a、12b、12c及び22a、22bにはそれぞれサーバアプリケーションプログラムが、また、クライアント計算機13a、13b及び23aにはそれぞれクライアントアプリケーションプログラムが備えられている。さらに、各計算機には少なくともネットワーク11、21へ接続可能なハードウェア、キーボード、マウス、ディスプレイ装置等の使用者が入出力を行うためのハードウェアが備わっている。
【0026】
ネットワーク11、21はルータ14、24を介してそれぞれ広域ネットワーク3に接続されており、例えばネットワーク11のクライアント計算機13aからネットワーク21のサーバ計算機22bへのネットワークデータは、クライアント計算機13aからルータ14、広域ネットワーク3、ルータ24を経てサーバ計算機22bへ伝達可能である。
【0027】
サーバ計算機12a、12b、12c及び22a、22bでは制御所1、2が管轄する監視制御対象とする装置の監視制御を行うサーバアプリケーションプログラムが動作しており、制御所1、2を跨いだサーバ計算機12a、12b、12cと22a、22bの間による監視制御権のバックアップ、複数のサーバ計算機12a、12b、12c及び22a、22bによる重複した監視制御が可能となっている。
【0028】
図2は図1記載のサーバ計算機22b、クライアント計算機13aについて計算機上で動作するアプリケーションプログラムの関係を示した図である。サーバ計算機22bでは、サーバアプリケーションプログラム61、62が動作している。
【0029】
本実施形態1では2つのサーバアプリケーションプログラム61、62が、それぞれ制御所1、2の監視制御権限を有するサーバプログラムとして動作し、例えばサーバアプリケーションプログラム61はポート番号60061、サーバアプリケーションプログラム62はポート番号60062を利用して、クライアント計算機にサービスを提供することとする。
【0030】
クライアント計算機13aではクライアントアプリケーションプログラム41、42とネットワーク中継プログラム5が動作している。ネットワーク中継プログラム5はクライアントアプリケーションプログラム41、42のネットワークゲートウェイとして動作する。
【0031】
すなわちクライアントアプリケーションプログラム41、42とサーバアプリケーションプログラム61、62との全てのネットワーク通信はネットワーク中継プログラム5を介して行われる。また、ネットワーク中継プログラム5はサーバ計算機12a、12b、12c及び22a、22bから送信されるサービス情報を受信し、ネットワーク中継プログラム5のデータベースへの登録及び削除を行う。
【0032】
サーバ計算機22bと同様に、サーバ計算機12a、12b、12c及び22aについてもそれぞれに設けたサーバアプリケーションプログラムが動作し、また、クライアント計算機13b及び23aについても同様にそれぞれに設けたクライアントアプリケーションプログラム、及びネットワーク中継プログラム5が動作する。
【0033】
このように構成された本実施形態1において、以下に、クライアント計算機13aのネットワーク中継プログラム5が、ネットワーク11、21に接続されるサーバ計算機12a、12b、12c及び22a、22bから送信されるサービス情報が含まれたマルチキャストパケットを受信し、その受信した情報内容のネットワーク中継プログラム5のデータベースに対する登録及び削除を行う、データベース更新処理について図3を参照して説明する。
【0034】
まず、マルチキャストパケットの受信待ちをしているネットワーク中継プログラム5は、サーバ計算機12a、12b、12c及び22a、22bのいずれかから送信されたマルチキャストパケットを受信する(S301)。
【0035】
なお、図4にサーバ計算機12a、12b、12c及び22a、22bから送信されるマルチキャストパケットのデータ内容の一例を示す。マルチキャストパケットのデータ内容にはサーバ計算機のIPアドレス、ポート番号、サービス状態が含まれ、例えばIPアドレスが192.168.12.101のサーバ計算機が、ポート番号60062でサービスを提供中であればサービス状態が実行中であることを示す1:実行とし、提供中で無ければサービス状態が停止中であることを示す0:停止とする。なお、図4では、サービス状態が停止中であることから0としている。
【0036】
ここでサーバ計算機のIPアドレスはデータ送信を行ったサーバ計算機である必要はなく、例えばサーバ計算機12aのIPアドレスが192.168.12.101であり、サーバ計算機22bのIPアドレスが192.168.22.102であり、また、サーバ計算機12aでサービスされていたポート番号60062のサービスをサーバ計算機22bで引継ぎ実行する場合にはサーバ計算機22bからパケット71、72の2つのパケットを送信するようにしても良い。
【0037】
また、図5はネットワーク中継プログラムのデータベースの一例であり、サーバ計算機からのマルチキャストパケットに基づいて、現在サービスを提供中のサーバ計算機のIPアドレスとポート番号の組合せが登録されている。ここでは、IPアドレスが192.168.12.101のサーバ計算機がポート番号60061、60062、60064でサービスを提供しており、192.168.22.102のサーバ計算機がポート番号60063でサービスを提供していることを示している。
【0038】
図3の更新処理に戻って、ネットワーク中継プログラム5が受信したマルチキャストパケット(S301)のデータ内容のIPアドレス、ポート番号がデータベースに登録されているか検索を行う(S302)。一致するデータが存在しなかった場合(S303のNO)には、マルチキャストパケットのデータ内容のサービス状態が実行であるか否かの確認を行う(S304)。
【0039】
サービス状態が実行である場合(S304のYES)にはネットワーク中継プログラムのデータベースへIPアドレス、ポート番号の登録を行う(S305)。
【0040】
そしてポート番号のTCP/IPソケットが作成されているか否かを確認する(S306)。既にポート番号でのソケットが作成されている場合(S306のYES)には、マルチキャストパケットの受信処理(S301)へ戻る。
【0041】
ポート番号でのTCP/IPソケットが作成されていない場合(S306のNO)にはポート番号でソケットを作成する(S307)。サービス状態が停止である場合(S304のNO)にはデータベースへの登録・削除処理は行わず再びマルチキャストパケットの受信処理(S301)へ戻る。
【0042】
受信したマルチキャストパケットのデータ内容のIPアドレス、ポート番号と一致するデータが既にデータベースに登録されていた場合(S303のYES)にもマルチキャストパケットのデータ内容のサービス状態が実行であるか否かの確認を行う(S308)。サービス状態が実行である場合(S308のYES)にはデータベースへの登録・削除処理は行わず、再びマルチキャストパケットの受信処理(S301)へ戻る。
【0043】
サービス状態が停止である場合(S308のNO)にはネットワーク中継プログラムのデータベースから検索した(S302)データの削除を行う(S309)。さらにネットワーク中継プログラムのデータベースからポート番号が一致するデータの検索を行い(S310)、検索結果に一致するデータが存在する場合(S311のYES)にはマルチキャストパケットの受信処理(S301)へ戻り、検索に一致するデータが存在しない場合(S311のNO)には、そのポート番号で作成されているソケットの破棄を行う(S312)。
【0044】
次にクライアントアプリケーションプログラムとサーバアプリケーションプログラムとのネットワーク通信を中継するためのサーバ計算機の検索、及び、ネットワークデータ中継処理について図6を参照して説明する。
【0045】
まず、図3のデータベース更新処理ステップ(S307)で作成したソケットについて、クライアントアプリケーションプログラムからの接続待ちを行う(S601)。クライアントアプリケーションプログラムに接続されると、ネットワーク中継プログラム5のデータベースから、接続に用いられたポート番号と一致するデータの検索を行う(S602)。検索の結果、ポート番号と一致するデータが見つからなかった場合(S603のNo)にはクライアントアプリケーションプログラムとの通信を終了し(S604)、接続待ち(S601)へ戻る。
【0046】
検索の結果、ポート番号と一致するデータが見つかった場合(S603のYES)にはデータに記載のIPアドレス及びポート番号への接続処理を行い(S605)、クライアントアプリケーションプログラムとサーバアプリケーションプログラムとの通信の中継処理を行う(S606)。
【0047】
通信の中継処理を開始後、通信が切断されたか否かのチェック処理を行い(S607)、切断を検出した場合(S607のYES)には通信の終了処理(S604)を行い、接続待ち(S601)へ戻る。通信の切断が行われていない場合(S607のNO)にはデータ中継処理(S606)に戻り中継処理を継続する。
【0048】
また、ネットワーク中継プログラム5のデータベースから、接続に用いられたポート番号に一致するデータの検索(S602)を行った結果、複数のデータが一致した場合には最初に検索にマッチしたデータに記載のIPアドレスへ中継する。
【0049】
或いは、ネットワークの利用効率を加味して、ネットワーク中継プログラム5が動作するクライアント計算機のIPアドレスと検索された複数のデータのIPアドレスとの比較を行い、同一ネットワークに属するサーバ計算機のIPアドレスへ中継しても良い。
【0050】
また、図7aのように事前にサーバ計算機へトレースルート(traceroute)コマンド等を利用してネットワーク距離(一般的にはホップ数と呼ばれるネットワークデータパケットが到達するまでに経由するルータ等の中継装置の個数)を算出しておき、このネットワーク距離がもっとも小さいサーバ計算機のIPアドレスへ中継するようにしても良い。
【0051】
さらに図7bのように、クライアント計算機に事前にサーバ計算機の優先順位を示した優先度データベースを作成しておき、この優先度が最も高い計算機のIPアドレスへ中継するようにしても良い。
【0052】
本実施形態1によれば、サーバ計算機から提供されるサービス情報の追加・削除に伴い送信されるマルチキャストパケットを、ネットワーク中継プログラム5が受信しデータベースを直ちに更新処理するので、以降のクライアントアプリケーションプログラムからの接続要求に対して当該サービスを提供するサーバ計算機のサーバアプリケーションプログラムへネットワークデータを中継することができる。
【0053】
また複数のサーバ計算機から同一のサービスが提供されている場合にはネットワーク距離のもっとも短いサーバ計算機を選択するようにすれば、ネットワークアドレスの異なる各ネットワークに配置されたサーバ計算機、クライアント計算機において、サーバ計算機の状態変化に合わせて接続するサーバ計算機の選択を、クライアント計算機のクライアントアプリケーションプログラムに意識させることなく効率よく、高速、高信頼に中継することができる。
【0054】
更に、事前にクライアント計算機にサーバ計算機の優先順位を示した優先度データベースを作成しておき、この優先度が最も高いサーバ計算機のIPアドレスへ中継するようにしても効率よく、高速、高信頼に中継することができる。
【0055】
(実施形態2)
次に、本発明に係るネットワーク中継方法の実施形態2を、図8乃至図10を参照して説明する。なお全体の構成は実施形態1における図1と同一構成のため、重複する説明は省略する。
【0056】
図8は、図4で説明した同様のサーバ計算機12a、12b、12c及び22a、22bから送信されるマルチキャストパケットのデータ内容の一例である。本実施形態2では、マルチキャストパケットのデータにはサーバ計算機のIPアドレス、ポート番号、サービス状態に加えてサーバ計算機の負荷状況が含まれている点が図4と異なる。ここで負荷状況とは数値が大きいほど、そのサーバ計算機の負荷状況が軽く、小さいほど負荷状況が大きいことを表しているものとする。
【0057】
ここでサーバ計算機のIPアドレスはデータ送信を行ったサーバ計算機である必要はなく、例えばサーバ計算機12aのIPアドレスが192.168.12.101でありサーバ計算機22bのIPアドレスが192.168.22.102としたとき、サーバ計算機12aでサービスされていたポート番号60062のサービスをサーバ計算機22bで引継ぐ場合には、サーバ計算機22bから図8の2つのパケット81、82を送信すれば良い。このときサーバ計算機12aについてのパケット81の負荷状況は数値が0で、サービス停止であるため、その値を0としてサーバ計算機22bから送信する。
【0058】
図9はネットワーク中継プログラムのデータベースの一例であり、現在サービスを提供中のサーバ計算機のIPアドレス、ポート番号及びサーバ計算機の負荷状況の組合せが登録されているとする。
【0059】
そして、本実施形態2において、図10を参照してクライアント計算機13aのネットワーク中継プログラム5が、サーバ計算機12a、12b、12c及び22a、22bから送信されるサービス情報が含まれたマルチキャストパケットを受信し、ネットワーク中継プログラム5のデータベースへの登録及び削除を行う、データベース更新処理について説明する。
【0060】
ネットワーク中継プログラム5はマルチキャストパケットの受信待ちをしており、サーバ計算機12a、12b、12c及び22a、22bのいずれかから送信されたマルチキャストパケットを受信する(S1001)。
【0061】
次に受信したマルチキャストパケットのデータ内容のIPアドレス、ポート番号が、ネットワーク中継プログラム5のデータベースに登録されているか検索を行う(S1002)。IPアドレスとポート番号とが一致するデータが存在しなかった場合(S1003のNO)、マルチキャストパケットのデータ内容のサービス状態が実行であるかの確認を行う(S1004)。
【0062】
その結果、サービス状態が実行である場合(S1004のYES)にはネットワーク中継プログラム5のデータベースへIPアドレス、ポート番号、負荷状況の登録を行う(S1005)。
【0063】
そしてポート番号のTCP/IPソケットが作成されているか確認する(S1006)。ポート番号でソケットが作成されている場合(S1006のYES)にはマルチキャストパケットの受信処理(S1001)へ戻る。ポート番号のTCP/IPソケットが作成されていない場合(S1006のNO)にはポート番号でソケット作成する(S1007)。
【0064】
サービス状態が停止である場合(S1004のNO)にはデータベースへの登録・削除処理は行わず再びマルチキャストパケットの受信処理(S1001)へ戻る。
【0065】
受信したマルチキャストパケットのデータ内容のIPアドレス、ポート番号と一致するデータが既にデータベースに登録されていた場合(S1003のYES)にも、マルチキャストパケットのデータ内容のサービス状態が実行であるかの確認を行う(S1008)。
【0066】
サービス状態が実行である場合(S1008のYES)にはデータベースの該当データの負荷状態をマルチキャストパケットで受信したデータ内容の負荷状況に更新(S1009)し、登録・削除処理は行わず再びマルチキャストパケットの受信処理(S1001)へ戻る。
【0067】
サービス状態が停止である場合(S1008のNO)にはネットワーク中継プログラムのデータベースから検索した(S1002)データの削除を行う(S1010)。
【0068】
さらにネットワーク中継プログラム5のデータベースについてポート番号が一致するデータの検索を行い(S1011)、一致するデータが存在する場合(S1012のYES)にはマルチキャストパケットの受信処理(S1001)へ戻り、一致するデータが存在しない場合(S1012のNO)には、そのポート番号で作成されているソケットの破棄を行う(S1013)。
【0069】
次に、図11を参照してクライアントアプリケーションプログラムからサーバアプリケーションプログラムとの通信を中継するサーバ計算機検索、ネットワークデータ中継処理について説明する。
【0070】
まず、図3のデータベース更新処理ステップ(S307)で作成したソケットについて、クライアントアプリケーションプログラムからの接続待ちを行う(S1101)。クライアントアプリケーションプログラムに接続されると、ネットワーク中継プログラム5のデータベースから、接続に用いられたポート番号に一致するデータの検索を行う(S1102)。
【0071】
検索の結果、ポート番号に一致するデータが見つからなかった場合(S1103のNo)には、クライアントアプリケーションプログラムとの通信を終了し(S1104)、接続待ち(S1101)へ戻る。
【0072】
検索の結果、ポート番号と一致するデータが見つかった場合(S1103のYES)には、一致するデータの中から負荷状況の値が一番大きい計算機を選択して、接続するIPアドレスを決定する(S1105)。そして、データに記載のIPアドレス及びポート番号への接続処理を行い(S1106)、クライアントアプリケーションプログラムとサーバアプリケーションプログラムとの通信の中継処理を行う(S1107)。
【0073】
通信の中継処理を開始後、通信が切断されたか否かのチェック処理を行い(S1108)、切断されている場合(S1108のYES)には通信の終了処理(S1104)を行い、接続待ち(S1101)へ戻る。通信が接続されている場合(S1108のNO)にはデータ中継処理(S1107)に戻り中継処理を継続する。
【0074】
また、ネットワーク中継プログラム5のデータベースから、接続に用いられたポート番号に一致するデータの検索(S1102)を行った結果、複数のデータが一致し、接続先のIPアドレス決定処理(S1105)において負荷状況の値が一番大きい計算機が複数ある場合には、最初に検索にマッチしたデータに記載のIPアドレスへ中継しても良い。
【0075】
さらに、図7bのように、クライアント計算機に事前にサーバ計算機の優先順位を示した優先度データベースを作成しておき、この優先度が最も高い計算機のIPアドレスへ中継しても良い。
【0076】
本実施形態2によれば、実施形態1の効果に加え、同一サービスを提供するサーバ計算機が複数ある場合には負荷が一番低いサーバ計算を選択してネットワークデータを中継することができるので、複数のサーバ計算機が同一サービスを提供する場合にはサーバ計算機の負荷やネットワークコストが最小となるサーバ計算機を選択し、クライアント計算機のクライアントアプリケーションプログラムに意識させることなく効率よく、高速、高信頼に行うネットワーク中継方法することができる。
【0077】
(実施形態3)
次に、本発明に係るネットワーク中継方法の実施形態3を、図12を参照して説明する。なお、実施形態1及び実施形態2と同一の構成部分には同一の符号を付し、重複する説明は省略する。
【0078】
本実施形態では、実施形態1及び2におけるネットワーク中継プログラム5がクライアント計算機13a、13b及び23a内で動作するのではなく、図12のようにクライアント計算機13aとネットワーク11との間に接続するネットワーク中継装置10内で動作する。
【0079】
ネットワーク中継装置10は、クライアント計算機13aのLANインターフェース7と接続されたLANインターフェース8と、ネットワーク11に接続されたLANインターフェース9を備える。
【0080】
なお、LANインターフェース8に接続するクライアント計算機は単数とは限らず、複数接続することによって、多くのクライアント計算機からの中継要求に応じることが可能となる。
【0081】
本実施形態における作用は、図3及び図10と同様であるため、説明を省略する。
【0082】
本実施形態によれば、実施形態1及び2の効果に加え、複数のクライアント計算機からの中継要求に応じる場合、ネットワーク中継プログラムを各クライアント計算機に内蔵する必要がない。そのため、煩雑な各クライアント計算機へのネットワーク中継プログラムの内蔵操作を行う必要が無くなることに加え、各クライアント計算機の記憶部使用量を節約することが可能である。
【0083】
以上の本発明の実施形態1乃至3において、サーバ計算機がサービス情報を含んだマルチキャストパケットを、ネットワークで接続される全てのネットワーク中継プログラム5に送信しているが、マルチキャストパケットを用いた一斉同報通信である必要は無く、各サーバと各ネットワーク中継プログラム5が個別にサービス情報を含むデータのやり取りを行っても良い。
【符号の説明】
【0084】
1、2…制御所
3…広域ネットワーク
5…ネットワーク中継プログラム
7、8、9…LANインターフェース
10…ネットワーク中継装置
11、21…ネットワーク
12a、12b、12c、22a、22b…サーバ計算機
13a、13b、23c…クライアント計算機
14、24…ルータ
41、42…クライアントアプリケーションプログラム
61、62…サーバアプリケーションプログラム
71、72、81、82…マルチキャストパケット
【技術分野】
【0001】
本発明は、例えば社会インフラの監視制御システムに用いられるネットワーク中継方法及び中継装置及びクライアント計算機の改良に関する。
【背景技術】
【0002】
従来の電力、ガス、水道、公共交通機関等といった社会インフラの監視制御システムにおいては、監視制御を行う区域を定めその区域毎に制御所を配置し監視制御を行い、この制御所単位にLAN(Local Area Network)を構築しLAN上に監視制御を行うサーバ計算機及びサーバ計算機から監視情報を取得し、制御処理を行うクライアント計算機を配置して監視制御業務を行っている。
【0003】
システムの信頼性を高める為に、サーバ計算機は2以上の計算機により冗長化され、その中の1台をオンライン計算機として運用し、オンライン計算機に何らかの異常が発生した場合には、その他の計算機がバックアップする二重系(または多重系)のシステムを構成するのが常である。
【0004】
近年、産業システムの高度化、計算機ネットワークの高性能化、計算機自体の高性能化に伴い、従来は区域毎に実施していた監視制御業務を、地理的に分散された複数の制御所間をネットワークにより結合し、ある制御所において事故の発生等により負荷が高くなった場合には、一部の監視制御対象についてその監視制御権限を他区域の制御所に与え、業務負荷を軽減するようにしている。また、ある制御所のサーバ計算機が全て停止した場合には、他区域の制御所のサーバ計算機によりバックアップを行うといった、より高性能、耐障害性の高い監視制御システムが求められている。
【0005】
従来、制御所内に配置された複数のサーバ計算機における冗長化の方式としては、特許文献1に示すようにIPアドレスとMAC(Media Access Control)アドレスの関連付けを利用し、オンライン計算機が有するべきIPアドレスを定め、このIPアドレスを計算機間で引き継ぐ方式がある。
【0006】
これによれば、オンライン計算機の健全性をバックアップ計算機により監視し、オンライン計算機の障害を検出した場合にはバックアップ計算機によってオンライン計算機が有するIPアドレスをARP(Address Resolution Protocol)を用いて引き継ぐ。
【0007】
オンライン計算機となる計算機のIPアドレスが変更されることは無いので、クライアント計算機で動作するクライアントアプリケーションプログラムはオンライン計算機の変更に備えた処理を具備する必要はないので、オンライン計算機の変更に対処するように作成する場合と比較して、クライアントアプリケーションプログラムの作成が容易となる。
【0008】
さらに、クライアントアプリケーションプログラムには特別な処理を入れることなく適切なサーバ計算機への接続を中継する方法としては特許文献2に示す方法が知られている。
【0009】
即ち、クライアント計算機が接続されたネットワークの位置情報等と、事前または要求が行われた際にクライアントアプリケーションプログラムを利用するユーザーが入力したデータベースに基づいて、接続すべきサーバ計算機へ中継を行う方法である。
【0010】
また、広くインターネットで利用されているDNS(Domain Name System)サーバを利用し、サービスを提供する計算機のURLに対応するIPアドレスを切り替える方法や、サービスを提供する計算機が複数ある場合にはDNSサーバが応答するIPアドレスをクライアント計算機からの問い合わせの度に変更することでサーバ計算機の負荷分散を行う方法もある。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2006-253900号公報
【特許文献2】特許第3941562号
【発明の概要】
【発明が解決しようとする課題】
【0012】
上述した特許文献1に記載の方法においては、IPアドレスとMACアドレスを用いた方式であるため、ARP情報であるブロードキャストパケットが到達するように、サーバ計算機を同一ネットワーク内に配置する必要がある。また、サーバ計算機がルータ装置を介して複数のネットワークに配置されている場合にはARP情報を用いてサーバ計算機の引継ぎをすることはできないという課題がある。
【0013】
これに対して、異なるネットワークを仮想的に同一ネットワークとして扱う、L2TP(Layer2 Tunnel Protocol)を利用する手法があるが、L2TPではネットワークデータにL2TPヘッダを付加するので、ネットワークデータの断片化が発生する場合がある。この断片化を防ぐためには計算機やネットワーク機器のMTU(Maximum Transmission Unit)の変更が必要となり、ネットワーク伝送効率が低下するだけでなくネットワーク機器の設定作業が煩雑となる。
【0014】
さらに、特許文献2に記載の方法においては、クライアント計算機が接続されたネットワークの位置情報に基づいて接続するサーバ計算機を決定するものであって、サーバ計算機に障害が発生した場合を考慮したものではない。
【0015】
また、DNSサーバを利用した場合にはDNSサーバへの問い合わせ処理が集中することになる。そして、DNSサーバに障害が発生した場合には接続するべきサーバ計算機のIPアドレスを取得することができなくなる。
【0016】
これに対して、DNSサーバを冗長化しバックアップ用の二次DNSサーバを運用することや、ネットワーク毎にDNSサーバを配置してDNSサーバの高信頼を高める方法もある。
【0017】
しかし、DNSサーバ間でのIPアドレス情報の更新遅延の発生及び1次DNSサーバに障害が発生した場合には問い合わせ処理の遅延が発生することになり高い応答性能を求められる監視制御システムに適用することはできない。
【0018】
本発明は上述した課題を解決するためになされたものであり、ルータ装置を介して接続され、ARP情報であるブロードキャストパケットが到達しない複数のネットワークに分散配置されたサーバ計算機とクライアント計算機とを中継するにあたり、サーバ計算機の状態変化に合わせて接続すべきサーバ計算機の選択を、クライアント計算機のクライアントアプリケーションプログラムに意識させることなく効率よく、高速、高信頼に行うことができるようにしたネットワーク中継方法を得ることを目的とする。
【課題を解決するための手段】
【0019】
複数のネットワークに分散されて配置されたサーバ計算機とクライアント計算機をルータ装置を介して接続し、クライアント計算機の要求に応じて、任意のサーバ計算機へネットワークデータをネットワーク中継装置を用いて中継するネットワーク中継方法において、前記サーバ計算機がネットワーク中継プログラムを備えた前記ネットワーク中継装置に、前記サーバ計算機が提供するサービス情報を含んだデータを送信するデータ送信ステップと、受信した前記データに基づいて前記ネットワーク中継装置により、データベースを更新するデータベース更新処理ステップと、前記ネットワーク中継装置により、前記データベースを検索し、前記クライアント計算機と中継するサーバ計算機を決定するサーバ計算機検索ステップと、前記ネットワーク中継装置により、前記サーバ計算機検索ステップで決定されたサーバ計算機に中継するネットワーク中継ステップからなるネットワーク中継方法であることを特徴とする。
【発明の効果】
【0020】
本発明によれば、複数のネットワークに分散されて配置されたサーバ計算機と、クライアント計算機とを中継する中継方法において、サーバ計算機の状態変化に合わせて接続するサーバ計算機の選択を、クライアント計算機のクライアントアプリケーションプログラムに意識させることなく、高効率、高速、高信頼に行うことが可能である。
【図面の簡単な説明】
【0021】
【図1】本発明におけるネットワークの全体を示す構成図。
【図2】本発明のサーバ計算機、クライアント計算機で動作するアプリケーションプログラムの関係図。
【図3】実施形態1におけるデータベース更新処理手順を示すフローチャート。
【図4】実施形態1におけるサーバ計算機から送信されるマルチキャストパケットのデータ内容の一例を示す図。
【図5】実施形態1におけるネットワーク中継プログラムのデータベースのデータ内容の一例を示す図。
【図6】実施形態1におけるサーバ計算機検索とネットワークデータ中継処理手順を説明するフローチャート。
【図7】実施形態1におけるサーバ計算機検索方法に用いるデータベースの一例を示す図。
【図8】実施形態2におけるサーバ計算機から送信されるマルチキャストパケットのデータ内容の一例を示す図。
【図9】実施形態2におけるネットワーク中継プログラムのデータベースの一例を示す図。
【図10】実施形態2におけるデータベース更新処理手順を説明するフローチャート。
【図11】実施形態2におけるサーバ計算機検索とネットワークデータ中継処理手順を説明するフローチャート。
【図12】実施形態3におけるクライアント計算機とネットワーク中継装置との関係図。
【発明を実施するための形態】
【0022】
以下、本発明に係るネットワーク中継方法及び中継装置の実施形態について、図面を参照して説明する。
【0023】
(実施形態1)
図1は、本発明の実施形態1の全体的構成を示す。なお本実施形態では説明を容易にするため、一般的な監視制御システムにおいてクライアント計算機のクライアントアプリケーションプログラムがサーバ計算機で動作しているサーバアプリケーションプログラムへTCP/IPにより通信を行う場合について説明する。
【0024】
地理的に離れた制御所1及び制御所2にネットワーク11及びネットワーク21がそれぞれ構築されている。ネットワーク11にはサーバ計算機12a、12b、12cとクライアント計算機13a、13bが、また、ネットワーク21にはサーバ計算機22a、22bとクライアント計算機23aがそれぞれ接続されている。
【0025】
サーバ計算機12a、12b、12c及び22a、22bにはそれぞれサーバアプリケーションプログラムが、また、クライアント計算機13a、13b及び23aにはそれぞれクライアントアプリケーションプログラムが備えられている。さらに、各計算機には少なくともネットワーク11、21へ接続可能なハードウェア、キーボード、マウス、ディスプレイ装置等の使用者が入出力を行うためのハードウェアが備わっている。
【0026】
ネットワーク11、21はルータ14、24を介してそれぞれ広域ネットワーク3に接続されており、例えばネットワーク11のクライアント計算機13aからネットワーク21のサーバ計算機22bへのネットワークデータは、クライアント計算機13aからルータ14、広域ネットワーク3、ルータ24を経てサーバ計算機22bへ伝達可能である。
【0027】
サーバ計算機12a、12b、12c及び22a、22bでは制御所1、2が管轄する監視制御対象とする装置の監視制御を行うサーバアプリケーションプログラムが動作しており、制御所1、2を跨いだサーバ計算機12a、12b、12cと22a、22bの間による監視制御権のバックアップ、複数のサーバ計算機12a、12b、12c及び22a、22bによる重複した監視制御が可能となっている。
【0028】
図2は図1記載のサーバ計算機22b、クライアント計算機13aについて計算機上で動作するアプリケーションプログラムの関係を示した図である。サーバ計算機22bでは、サーバアプリケーションプログラム61、62が動作している。
【0029】
本実施形態1では2つのサーバアプリケーションプログラム61、62が、それぞれ制御所1、2の監視制御権限を有するサーバプログラムとして動作し、例えばサーバアプリケーションプログラム61はポート番号60061、サーバアプリケーションプログラム62はポート番号60062を利用して、クライアント計算機にサービスを提供することとする。
【0030】
クライアント計算機13aではクライアントアプリケーションプログラム41、42とネットワーク中継プログラム5が動作している。ネットワーク中継プログラム5はクライアントアプリケーションプログラム41、42のネットワークゲートウェイとして動作する。
【0031】
すなわちクライアントアプリケーションプログラム41、42とサーバアプリケーションプログラム61、62との全てのネットワーク通信はネットワーク中継プログラム5を介して行われる。また、ネットワーク中継プログラム5はサーバ計算機12a、12b、12c及び22a、22bから送信されるサービス情報を受信し、ネットワーク中継プログラム5のデータベースへの登録及び削除を行う。
【0032】
サーバ計算機22bと同様に、サーバ計算機12a、12b、12c及び22aについてもそれぞれに設けたサーバアプリケーションプログラムが動作し、また、クライアント計算機13b及び23aについても同様にそれぞれに設けたクライアントアプリケーションプログラム、及びネットワーク中継プログラム5が動作する。
【0033】
このように構成された本実施形態1において、以下に、クライアント計算機13aのネットワーク中継プログラム5が、ネットワーク11、21に接続されるサーバ計算機12a、12b、12c及び22a、22bから送信されるサービス情報が含まれたマルチキャストパケットを受信し、その受信した情報内容のネットワーク中継プログラム5のデータベースに対する登録及び削除を行う、データベース更新処理について図3を参照して説明する。
【0034】
まず、マルチキャストパケットの受信待ちをしているネットワーク中継プログラム5は、サーバ計算機12a、12b、12c及び22a、22bのいずれかから送信されたマルチキャストパケットを受信する(S301)。
【0035】
なお、図4にサーバ計算機12a、12b、12c及び22a、22bから送信されるマルチキャストパケットのデータ内容の一例を示す。マルチキャストパケットのデータ内容にはサーバ計算機のIPアドレス、ポート番号、サービス状態が含まれ、例えばIPアドレスが192.168.12.101のサーバ計算機が、ポート番号60062でサービスを提供中であればサービス状態が実行中であることを示す1:実行とし、提供中で無ければサービス状態が停止中であることを示す0:停止とする。なお、図4では、サービス状態が停止中であることから0としている。
【0036】
ここでサーバ計算機のIPアドレスはデータ送信を行ったサーバ計算機である必要はなく、例えばサーバ計算機12aのIPアドレスが192.168.12.101であり、サーバ計算機22bのIPアドレスが192.168.22.102であり、また、サーバ計算機12aでサービスされていたポート番号60062のサービスをサーバ計算機22bで引継ぎ実行する場合にはサーバ計算機22bからパケット71、72の2つのパケットを送信するようにしても良い。
【0037】
また、図5はネットワーク中継プログラムのデータベースの一例であり、サーバ計算機からのマルチキャストパケットに基づいて、現在サービスを提供中のサーバ計算機のIPアドレスとポート番号の組合せが登録されている。ここでは、IPアドレスが192.168.12.101のサーバ計算機がポート番号60061、60062、60064でサービスを提供しており、192.168.22.102のサーバ計算機がポート番号60063でサービスを提供していることを示している。
【0038】
図3の更新処理に戻って、ネットワーク中継プログラム5が受信したマルチキャストパケット(S301)のデータ内容のIPアドレス、ポート番号がデータベースに登録されているか検索を行う(S302)。一致するデータが存在しなかった場合(S303のNO)には、マルチキャストパケットのデータ内容のサービス状態が実行であるか否かの確認を行う(S304)。
【0039】
サービス状態が実行である場合(S304のYES)にはネットワーク中継プログラムのデータベースへIPアドレス、ポート番号の登録を行う(S305)。
【0040】
そしてポート番号のTCP/IPソケットが作成されているか否かを確認する(S306)。既にポート番号でのソケットが作成されている場合(S306のYES)には、マルチキャストパケットの受信処理(S301)へ戻る。
【0041】
ポート番号でのTCP/IPソケットが作成されていない場合(S306のNO)にはポート番号でソケットを作成する(S307)。サービス状態が停止である場合(S304のNO)にはデータベースへの登録・削除処理は行わず再びマルチキャストパケットの受信処理(S301)へ戻る。
【0042】
受信したマルチキャストパケットのデータ内容のIPアドレス、ポート番号と一致するデータが既にデータベースに登録されていた場合(S303のYES)にもマルチキャストパケットのデータ内容のサービス状態が実行であるか否かの確認を行う(S308)。サービス状態が実行である場合(S308のYES)にはデータベースへの登録・削除処理は行わず、再びマルチキャストパケットの受信処理(S301)へ戻る。
【0043】
サービス状態が停止である場合(S308のNO)にはネットワーク中継プログラムのデータベースから検索した(S302)データの削除を行う(S309)。さらにネットワーク中継プログラムのデータベースからポート番号が一致するデータの検索を行い(S310)、検索結果に一致するデータが存在する場合(S311のYES)にはマルチキャストパケットの受信処理(S301)へ戻り、検索に一致するデータが存在しない場合(S311のNO)には、そのポート番号で作成されているソケットの破棄を行う(S312)。
【0044】
次にクライアントアプリケーションプログラムとサーバアプリケーションプログラムとのネットワーク通信を中継するためのサーバ計算機の検索、及び、ネットワークデータ中継処理について図6を参照して説明する。
【0045】
まず、図3のデータベース更新処理ステップ(S307)で作成したソケットについて、クライアントアプリケーションプログラムからの接続待ちを行う(S601)。クライアントアプリケーションプログラムに接続されると、ネットワーク中継プログラム5のデータベースから、接続に用いられたポート番号と一致するデータの検索を行う(S602)。検索の結果、ポート番号と一致するデータが見つからなかった場合(S603のNo)にはクライアントアプリケーションプログラムとの通信を終了し(S604)、接続待ち(S601)へ戻る。
【0046】
検索の結果、ポート番号と一致するデータが見つかった場合(S603のYES)にはデータに記載のIPアドレス及びポート番号への接続処理を行い(S605)、クライアントアプリケーションプログラムとサーバアプリケーションプログラムとの通信の中継処理を行う(S606)。
【0047】
通信の中継処理を開始後、通信が切断されたか否かのチェック処理を行い(S607)、切断を検出した場合(S607のYES)には通信の終了処理(S604)を行い、接続待ち(S601)へ戻る。通信の切断が行われていない場合(S607のNO)にはデータ中継処理(S606)に戻り中継処理を継続する。
【0048】
また、ネットワーク中継プログラム5のデータベースから、接続に用いられたポート番号に一致するデータの検索(S602)を行った結果、複数のデータが一致した場合には最初に検索にマッチしたデータに記載のIPアドレスへ中継する。
【0049】
或いは、ネットワークの利用効率を加味して、ネットワーク中継プログラム5が動作するクライアント計算機のIPアドレスと検索された複数のデータのIPアドレスとの比較を行い、同一ネットワークに属するサーバ計算機のIPアドレスへ中継しても良い。
【0050】
また、図7aのように事前にサーバ計算機へトレースルート(traceroute)コマンド等を利用してネットワーク距離(一般的にはホップ数と呼ばれるネットワークデータパケットが到達するまでに経由するルータ等の中継装置の個数)を算出しておき、このネットワーク距離がもっとも小さいサーバ計算機のIPアドレスへ中継するようにしても良い。
【0051】
さらに図7bのように、クライアント計算機に事前にサーバ計算機の優先順位を示した優先度データベースを作成しておき、この優先度が最も高い計算機のIPアドレスへ中継するようにしても良い。
【0052】
本実施形態1によれば、サーバ計算機から提供されるサービス情報の追加・削除に伴い送信されるマルチキャストパケットを、ネットワーク中継プログラム5が受信しデータベースを直ちに更新処理するので、以降のクライアントアプリケーションプログラムからの接続要求に対して当該サービスを提供するサーバ計算機のサーバアプリケーションプログラムへネットワークデータを中継することができる。
【0053】
また複数のサーバ計算機から同一のサービスが提供されている場合にはネットワーク距離のもっとも短いサーバ計算機を選択するようにすれば、ネットワークアドレスの異なる各ネットワークに配置されたサーバ計算機、クライアント計算機において、サーバ計算機の状態変化に合わせて接続するサーバ計算機の選択を、クライアント計算機のクライアントアプリケーションプログラムに意識させることなく効率よく、高速、高信頼に中継することができる。
【0054】
更に、事前にクライアント計算機にサーバ計算機の優先順位を示した優先度データベースを作成しておき、この優先度が最も高いサーバ計算機のIPアドレスへ中継するようにしても効率よく、高速、高信頼に中継することができる。
【0055】
(実施形態2)
次に、本発明に係るネットワーク中継方法の実施形態2を、図8乃至図10を参照して説明する。なお全体の構成は実施形態1における図1と同一構成のため、重複する説明は省略する。
【0056】
図8は、図4で説明した同様のサーバ計算機12a、12b、12c及び22a、22bから送信されるマルチキャストパケットのデータ内容の一例である。本実施形態2では、マルチキャストパケットのデータにはサーバ計算機のIPアドレス、ポート番号、サービス状態に加えてサーバ計算機の負荷状況が含まれている点が図4と異なる。ここで負荷状況とは数値が大きいほど、そのサーバ計算機の負荷状況が軽く、小さいほど負荷状況が大きいことを表しているものとする。
【0057】
ここでサーバ計算機のIPアドレスはデータ送信を行ったサーバ計算機である必要はなく、例えばサーバ計算機12aのIPアドレスが192.168.12.101でありサーバ計算機22bのIPアドレスが192.168.22.102としたとき、サーバ計算機12aでサービスされていたポート番号60062のサービスをサーバ計算機22bで引継ぐ場合には、サーバ計算機22bから図8の2つのパケット81、82を送信すれば良い。このときサーバ計算機12aについてのパケット81の負荷状況は数値が0で、サービス停止であるため、その値を0としてサーバ計算機22bから送信する。
【0058】
図9はネットワーク中継プログラムのデータベースの一例であり、現在サービスを提供中のサーバ計算機のIPアドレス、ポート番号及びサーバ計算機の負荷状況の組合せが登録されているとする。
【0059】
そして、本実施形態2において、図10を参照してクライアント計算機13aのネットワーク中継プログラム5が、サーバ計算機12a、12b、12c及び22a、22bから送信されるサービス情報が含まれたマルチキャストパケットを受信し、ネットワーク中継プログラム5のデータベースへの登録及び削除を行う、データベース更新処理について説明する。
【0060】
ネットワーク中継プログラム5はマルチキャストパケットの受信待ちをしており、サーバ計算機12a、12b、12c及び22a、22bのいずれかから送信されたマルチキャストパケットを受信する(S1001)。
【0061】
次に受信したマルチキャストパケットのデータ内容のIPアドレス、ポート番号が、ネットワーク中継プログラム5のデータベースに登録されているか検索を行う(S1002)。IPアドレスとポート番号とが一致するデータが存在しなかった場合(S1003のNO)、マルチキャストパケットのデータ内容のサービス状態が実行であるかの確認を行う(S1004)。
【0062】
その結果、サービス状態が実行である場合(S1004のYES)にはネットワーク中継プログラム5のデータベースへIPアドレス、ポート番号、負荷状況の登録を行う(S1005)。
【0063】
そしてポート番号のTCP/IPソケットが作成されているか確認する(S1006)。ポート番号でソケットが作成されている場合(S1006のYES)にはマルチキャストパケットの受信処理(S1001)へ戻る。ポート番号のTCP/IPソケットが作成されていない場合(S1006のNO)にはポート番号でソケット作成する(S1007)。
【0064】
サービス状態が停止である場合(S1004のNO)にはデータベースへの登録・削除処理は行わず再びマルチキャストパケットの受信処理(S1001)へ戻る。
【0065】
受信したマルチキャストパケットのデータ内容のIPアドレス、ポート番号と一致するデータが既にデータベースに登録されていた場合(S1003のYES)にも、マルチキャストパケットのデータ内容のサービス状態が実行であるかの確認を行う(S1008)。
【0066】
サービス状態が実行である場合(S1008のYES)にはデータベースの該当データの負荷状態をマルチキャストパケットで受信したデータ内容の負荷状況に更新(S1009)し、登録・削除処理は行わず再びマルチキャストパケットの受信処理(S1001)へ戻る。
【0067】
サービス状態が停止である場合(S1008のNO)にはネットワーク中継プログラムのデータベースから検索した(S1002)データの削除を行う(S1010)。
【0068】
さらにネットワーク中継プログラム5のデータベースについてポート番号が一致するデータの検索を行い(S1011)、一致するデータが存在する場合(S1012のYES)にはマルチキャストパケットの受信処理(S1001)へ戻り、一致するデータが存在しない場合(S1012のNO)には、そのポート番号で作成されているソケットの破棄を行う(S1013)。
【0069】
次に、図11を参照してクライアントアプリケーションプログラムからサーバアプリケーションプログラムとの通信を中継するサーバ計算機検索、ネットワークデータ中継処理について説明する。
【0070】
まず、図3のデータベース更新処理ステップ(S307)で作成したソケットについて、クライアントアプリケーションプログラムからの接続待ちを行う(S1101)。クライアントアプリケーションプログラムに接続されると、ネットワーク中継プログラム5のデータベースから、接続に用いられたポート番号に一致するデータの検索を行う(S1102)。
【0071】
検索の結果、ポート番号に一致するデータが見つからなかった場合(S1103のNo)には、クライアントアプリケーションプログラムとの通信を終了し(S1104)、接続待ち(S1101)へ戻る。
【0072】
検索の結果、ポート番号と一致するデータが見つかった場合(S1103のYES)には、一致するデータの中から負荷状況の値が一番大きい計算機を選択して、接続するIPアドレスを決定する(S1105)。そして、データに記載のIPアドレス及びポート番号への接続処理を行い(S1106)、クライアントアプリケーションプログラムとサーバアプリケーションプログラムとの通信の中継処理を行う(S1107)。
【0073】
通信の中継処理を開始後、通信が切断されたか否かのチェック処理を行い(S1108)、切断されている場合(S1108のYES)には通信の終了処理(S1104)を行い、接続待ち(S1101)へ戻る。通信が接続されている場合(S1108のNO)にはデータ中継処理(S1107)に戻り中継処理を継続する。
【0074】
また、ネットワーク中継プログラム5のデータベースから、接続に用いられたポート番号に一致するデータの検索(S1102)を行った結果、複数のデータが一致し、接続先のIPアドレス決定処理(S1105)において負荷状況の値が一番大きい計算機が複数ある場合には、最初に検索にマッチしたデータに記載のIPアドレスへ中継しても良い。
【0075】
さらに、図7bのように、クライアント計算機に事前にサーバ計算機の優先順位を示した優先度データベースを作成しておき、この優先度が最も高い計算機のIPアドレスへ中継しても良い。
【0076】
本実施形態2によれば、実施形態1の効果に加え、同一サービスを提供するサーバ計算機が複数ある場合には負荷が一番低いサーバ計算を選択してネットワークデータを中継することができるので、複数のサーバ計算機が同一サービスを提供する場合にはサーバ計算機の負荷やネットワークコストが最小となるサーバ計算機を選択し、クライアント計算機のクライアントアプリケーションプログラムに意識させることなく効率よく、高速、高信頼に行うネットワーク中継方法することができる。
【0077】
(実施形態3)
次に、本発明に係るネットワーク中継方法の実施形態3を、図12を参照して説明する。なお、実施形態1及び実施形態2と同一の構成部分には同一の符号を付し、重複する説明は省略する。
【0078】
本実施形態では、実施形態1及び2におけるネットワーク中継プログラム5がクライアント計算機13a、13b及び23a内で動作するのではなく、図12のようにクライアント計算機13aとネットワーク11との間に接続するネットワーク中継装置10内で動作する。
【0079】
ネットワーク中継装置10は、クライアント計算機13aのLANインターフェース7と接続されたLANインターフェース8と、ネットワーク11に接続されたLANインターフェース9を備える。
【0080】
なお、LANインターフェース8に接続するクライアント計算機は単数とは限らず、複数接続することによって、多くのクライアント計算機からの中継要求に応じることが可能となる。
【0081】
本実施形態における作用は、図3及び図10と同様であるため、説明を省略する。
【0082】
本実施形態によれば、実施形態1及び2の効果に加え、複数のクライアント計算機からの中継要求に応じる場合、ネットワーク中継プログラムを各クライアント計算機に内蔵する必要がない。そのため、煩雑な各クライアント計算機へのネットワーク中継プログラムの内蔵操作を行う必要が無くなることに加え、各クライアント計算機の記憶部使用量を節約することが可能である。
【0083】
以上の本発明の実施形態1乃至3において、サーバ計算機がサービス情報を含んだマルチキャストパケットを、ネットワークで接続される全てのネットワーク中継プログラム5に送信しているが、マルチキャストパケットを用いた一斉同報通信である必要は無く、各サーバと各ネットワーク中継プログラム5が個別にサービス情報を含むデータのやり取りを行っても良い。
【符号の説明】
【0084】
1、2…制御所
3…広域ネットワーク
5…ネットワーク中継プログラム
7、8、9…LANインターフェース
10…ネットワーク中継装置
11、21…ネットワーク
12a、12b、12c、22a、22b…サーバ計算機
13a、13b、23c…クライアント計算機
14、24…ルータ
41、42…クライアントアプリケーションプログラム
61、62…サーバアプリケーションプログラム
71、72、81、82…マルチキャストパケット
【特許請求の範囲】
【請求項1】
複数のネットワークに分散されて配置されたサーバ計算機とクライアント計算機をルータ装置を介して接続し、クライアント計算機の要求に応じて、任意のサーバ計算機へネットワークデータをネットワーク中継装置を用いて中継するネットワーク中継方法において、
前記サーバ計算機がネットワーク中継プログラムを備えた前記ネットワーク中継装置に、前記サーバ計算機が提供するサービス情報を含んだデータを送信するデータ送信ステップと、
受信した前記データに基づいて前記ネットワーク中継装置により、データベースを更新するデータベース更新処理ステップと、
前記ネットワーク中継装置により、前記データベースを検索し、前記クライアント計算機と中継するサーバ計算機を決定するサーバ計算機検索ステップと、
前記ネットワーク中継装置により、前記サーバ計算機検索ステップで決定されたサーバ計算機に中継するネットワーク中継ステップからなる
ことを特徴とするネットワーク中継方法。
【請求項2】
前記サーバ計算機検索ステップは複数のサーバ計算機で同一のサービスが提供される場合には、クライアント計算機と同一ネットワークに属するサーバ計算機を優先して、前記中継するサーバ計算機を、前記データベースから取得すること
を特徴とする請求項1記載のネットワーク中継方法。
【請求項3】
前記サーバ計算機検索ステップは複数のサーバ計算機で同一のサービスが提供される場合には、クライアント計算機に事前に決定した優先度データベースに基づき、前記中継するサーバ計算機を、前記データベースから取得すること
を特徴とする請求項1記載のネットワーク中継方法。
【請求項4】
前記サーバ計算機検索ステップは複数のサーバ計算機で同一のサービスが提供される場合には、前記サーバ計算機とクライアント計算機のネットワーク距離を用いて、前記中継するサーバ計算機を、前記データベースから取得すること
を特徴とする請求項1記載のネットワーク中継方法。
【請求項5】
前記データ送信ステップは、前記サーバ計算機が前記ネットワーク中継プログラムに、前記サーバ計算機のサービス情報と負荷情報を含んだデータを送信することと、
前記サーバ計算機検索ステップは複数のサーバ計算機で同一のサービスが提供される場合には、前記サーバ計算機の負荷情報を用いて、前記中継するサーバ計算機を、前記データベースから取得すること
を特徴とする請求項1記載のネットワーク中継方法。
【請求項6】
複数のネットワークに分散されて配置されたサーバ計算機とクライアント計算機をルータ装置を介して接続し、クライアント計算機の要求に応じて、任意のサーバ計算機へネットワークデータをネットワーク中継手段を用いて中継するようにしたネットワーク中継システムに用いられるクライアント計算機は、
前記サーバ計算機が提供するサービス情報を含んだデータを受信するデータ受信手段と、
前記データに基づいてデータベースを作成するデータベース作成処理手段と、
前記データベースを検索し、前記クライアント計算機に中継するサーバ計算機を決定するサーバ計算機検索手段と、
前記サーバ計算機検索手段によって決定されたサーバ計算機に中継する前記ネットワーク中継手段と
を備えることを特徴とするクライアント計算機。
【請求項7】
複数のネットワークに分散されて配置されたサーバ計算機とクライアント計算機をルータ装置を介して接続し、クライアント計算機の要求に応じて、任意のサーバ計算機へネットワークデータをネットワーク中継装置を用いて中継するようにしたネットワーク中継システムに用いられるネットワーク中継装置は、
前記サーバ計算機が提供するサービス情報を含んだデータを受信するデータ受信手段と、
前記データに基づいてデータベースを作成するデータベース作成処理手段と、
前記データベースを検索し、前記クライアント計算機に中継するサーバ計算機を決定するサーバ計算機検索手段とを備え、
前記サーバ計算機検索手段によって決定されたサーバ計算機に中継することを特徴とするネットワーク中継装置。
【請求項1】
複数のネットワークに分散されて配置されたサーバ計算機とクライアント計算機をルータ装置を介して接続し、クライアント計算機の要求に応じて、任意のサーバ計算機へネットワークデータをネットワーク中継装置を用いて中継するネットワーク中継方法において、
前記サーバ計算機がネットワーク中継プログラムを備えた前記ネットワーク中継装置に、前記サーバ計算機が提供するサービス情報を含んだデータを送信するデータ送信ステップと、
受信した前記データに基づいて前記ネットワーク中継装置により、データベースを更新するデータベース更新処理ステップと、
前記ネットワーク中継装置により、前記データベースを検索し、前記クライアント計算機と中継するサーバ計算機を決定するサーバ計算機検索ステップと、
前記ネットワーク中継装置により、前記サーバ計算機検索ステップで決定されたサーバ計算機に中継するネットワーク中継ステップからなる
ことを特徴とするネットワーク中継方法。
【請求項2】
前記サーバ計算機検索ステップは複数のサーバ計算機で同一のサービスが提供される場合には、クライアント計算機と同一ネットワークに属するサーバ計算機を優先して、前記中継するサーバ計算機を、前記データベースから取得すること
を特徴とする請求項1記載のネットワーク中継方法。
【請求項3】
前記サーバ計算機検索ステップは複数のサーバ計算機で同一のサービスが提供される場合には、クライアント計算機に事前に決定した優先度データベースに基づき、前記中継するサーバ計算機を、前記データベースから取得すること
を特徴とする請求項1記載のネットワーク中継方法。
【請求項4】
前記サーバ計算機検索ステップは複数のサーバ計算機で同一のサービスが提供される場合には、前記サーバ計算機とクライアント計算機のネットワーク距離を用いて、前記中継するサーバ計算機を、前記データベースから取得すること
を特徴とする請求項1記載のネットワーク中継方法。
【請求項5】
前記データ送信ステップは、前記サーバ計算機が前記ネットワーク中継プログラムに、前記サーバ計算機のサービス情報と負荷情報を含んだデータを送信することと、
前記サーバ計算機検索ステップは複数のサーバ計算機で同一のサービスが提供される場合には、前記サーバ計算機の負荷情報を用いて、前記中継するサーバ計算機を、前記データベースから取得すること
を特徴とする請求項1記載のネットワーク中継方法。
【請求項6】
複数のネットワークに分散されて配置されたサーバ計算機とクライアント計算機をルータ装置を介して接続し、クライアント計算機の要求に応じて、任意のサーバ計算機へネットワークデータをネットワーク中継手段を用いて中継するようにしたネットワーク中継システムに用いられるクライアント計算機は、
前記サーバ計算機が提供するサービス情報を含んだデータを受信するデータ受信手段と、
前記データに基づいてデータベースを作成するデータベース作成処理手段と、
前記データベースを検索し、前記クライアント計算機に中継するサーバ計算機を決定するサーバ計算機検索手段と、
前記サーバ計算機検索手段によって決定されたサーバ計算機に中継する前記ネットワーク中継手段と
を備えることを特徴とするクライアント計算機。
【請求項7】
複数のネットワークに分散されて配置されたサーバ計算機とクライアント計算機をルータ装置を介して接続し、クライアント計算機の要求に応じて、任意のサーバ計算機へネットワークデータをネットワーク中継装置を用いて中継するようにしたネットワーク中継システムに用いられるネットワーク中継装置は、
前記サーバ計算機が提供するサービス情報を含んだデータを受信するデータ受信手段と、
前記データに基づいてデータベースを作成するデータベース作成処理手段と、
前記データベースを検索し、前記クライアント計算機に中継するサーバ計算機を決定するサーバ計算機検索手段とを備え、
前記サーバ計算機検索手段によって決定されたサーバ計算機に中継することを特徴とするネットワーク中継装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−70255(P2011−70255A)
【公開日】平成23年4月7日(2011.4.7)
【国際特許分類】
【出願番号】特願2009−218557(P2009−218557)
【出願日】平成21年9月24日(2009.9.24)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成23年4月7日(2011.4.7)
【国際特許分類】
【出願日】平成21年9月24日(2009.9.24)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]