(57)【要約】【課題】クライアントとサーバ間の応答時間の短縮に優れた中継装置を提供すること。【解決手段】実施形態の中継装置は、取得部と、選択部と、通信部とを備える。取得部は、ネットワークを介して接続された複数の演算装置の負荷を示す第１の負荷情報を取得する。選択部は、前記第１の負荷情報に基づき前記複数の演算装置から第１の演算装置を選択する。通信部は、情報処理装置からの入力信号を前記第１の演算装置へ送信し、前記入力信号に対応する出力信号を前記演算装置から受信して前記情報処理装置へ送信する。【選択図】図２
2018045442.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された複数の演算装置の負荷を示す第１の負荷情報を取得する取得部と、
前記第１の負荷情報に基づき前記複数の演算装置から第１の演算装置を選択する選択部と、
情報処理装置からの入力信号を前記第１の演算装置へ送信し、前記入力信号に対応する出力信号を前記演算装置から受信して前記情報処理装置へ送信する通信部と、
を備える中継装置。
【請求項２】
前記第１の負荷情報は、各演算装置の応答時間を含み、
前記選択部は、前記応答時間に基づき前記第１の演算装置を選択する請求項１の中継装置。
【請求項３】
前記応答時間は、演算時間及び伝送時間を含み、
前記選択部は、前記演算時間及び伝送時間に基づき前記第１の演算装置を選択する請求項２の中継装置。
【請求項４】
前記取得部は、各演算装置の負荷を計測して前記第１の負荷情報を取得し、また、他の中継装置による各演算装置の負荷の計測から生成された第２の負荷情報を取得し、
前記選択部は、前記第１及び第２の負荷情報に基づき前記第１の演算装置を選択する請求項１乃至３の何れか一つの中継装置。
【請求項５】
前記選択部は、前記第１の負荷情報に基づき２以上の演算装置を選択した場合、前記第２の負荷情報に基づき前記２以上の演算装置から１の前記第１の演算装置を選択する請求項４の中継装置。
【請求項６】
前記取得部は、演算種別に応じた前記第１の負荷情報を取得し、
前記通信部は、前記情報処理装置から演算種別を含む前記入力信号を受信し、
前記選択部は、前記入力信号に含まれた演算種別及び前記第１の負荷情報に基づき前記第１の演算装置を選択する請求項１乃至５の何れか一つの中継装置。
【請求項７】
前記選択部は、前記第１の負荷情報に基づき前記複数の演算装置から３以上の演算装置を選択し、
前記通信部は、前記入力信号を前記３以上の演算装置へ送信し、前記３以上の演算装置からの出力信号を比較して、１の出力信号を選択し、選択した１の出力信号を前記情報処理装置へ送信する請求項１乃至６の何れか一つの中継装置。
【請求項８】
前記通信部は、追加演算装置から追加情報を受信し、
前記取得部は、前記追加演算装置の負荷を計測し、計測結果に基づき前記第１の負荷情報を更新する請求項１乃至７の何れか一つの中継装置。
【請求項９】
ネットワークを介して接続された複数の演算装置と、
前記複数の演算装置の負荷を示す第１の負荷情報を取得し、前記第１の負荷情報に基づき前記複数の演算装置から第１の演算装置を選択し、ネットワークを介して接続された情報処理装置からの入力信号を前記第１の演算装置へ送信し、前記入力信号に対応する出力信号を前記演算装置から受信して前記情報処理装置へ送信する中継装置と、
を備える中継システム。
【請求項１０】
ネットワークを介して接続された複数の演算装置の負荷を示す第１の負荷情報を取得する手順と、
前記第１の負荷情報に基づき前記複数の演算装置から第１の演算装置を選択する手順と、
ネットワークを介して接続された情報処理装置からの入力信号を前記第１の演算装置へ送信し、前記入力信号に対応する出力信号を前記演算装置から受信して前記情報処理装置へ送信する手順と、
をコンピュータに実行させる中継プログラム。
【請求項１１】
ネットワークを介して接続された複数の演算装置の負荷を示す第１の負荷情報を取得し、
前記第１の負荷情報に基づき前記複数の演算装置から第１の演算装置を選択し、
ネットワークを介して接続された情報処理装置からの入力信号を前記第１の演算装置へ送信し、
前記入力信号に対応する出力信号を前記演算装置から受信して前記情報処理装置へ送信する中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、中継装置、中継システム、中継プログラム、及び中継方法に関する。
【背景技術】
【０００２】
クライアントサーバ型の制御システムにおいて、同時に多数のクライアントから複数のサーバへのアクセスが発生すると、ネットワークの負荷が増大し、リアルタイムな制御を行うことが難しくなることがある。特に、小さいサイズのパケットを大量に処理する場合、複数のサーバのネットワークインタフェースでの処理負荷が増大する。例えば、負荷を軽減するために、複数のパケットを統合して送信する手法が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許４２８７７５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
中継装置でデータの同一性を判定し複数のパケットを統合する場合、複数の拠点からサーバへの通信があると、中継装置が複数存在することとなり、サーバでの処理負荷が増大するおそれがある。
【０００５】
本発明の目的は、クライアントとサーバ間の応答時間の短縮に優れた中継装置、中継システム、中継プログラム、及び中継方法を提供することである。
【課題を解決するための手段】
【０００６】
実施形態の中継装置は、取得部と、選択部と、通信部とを備える。取得部は、ネットワークを介して接続された複数の演算装置の負荷を示す第１の負荷情報を取得する。選択部は、前記第１の負荷情報に基づき前記複数の演算装置から第１の演算装置を選択する。通信部は、情報処理装置からの入力信号を前記第１の演算装置へ送信し、前記入力信号に対応する出力信号を前記演算装置から受信して前記情報処理装置へ送信する。
【図面の簡単な説明】
【０００７】
【図１】実施形態１に係る伝送中継システムの一例を示す構成図である。
【図２】実施形態１に係る伝送中継システムの一例を示すシーケンス図である。
【図３】実施形態１に係る伝送中継システムにおける演算装置テーブルの一例を示す図である。
【図４】実施形態１に係る伝送中継システムにおける情報交換処理の一例を示すシーケンス図である。
【図５】実施形態１に係る伝送中継システムにおける演算時間及び伝送時間算出の一例を示す図である。
【図６】実施形態１に係る伝送中継システムにおける演算装置テーブルの他の例を示す図である。
【図７】実施形態２に係る伝送中継システムの一例を示す構成図である。
【図８】実施形態２に係る伝送中継システムの多数決処理の一例を示すシーケンス図である。
【図９】実施形態３に係る伝送中継システムの一例を示す構成図である。
【図１０】実施形態３に係る伝送中継システムの追加処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【０００８】
以下、各実施形態に係る伝送中継システムについて、図面を参照して説明する。
【０００９】
（実施形態１）  
図１は、実施形態１に係る伝送中継システムの構成例を示す図である。伝送中継システムは、各地域に設置された複数のクライアントデバイス、各地域に設置された中継装置、各地域の中継装置と広域ネットワークを介して接続された複数のサーバにより構成される。
【００１０】
一例を挙げると、図１に示すように、伝送中継システムは、地域Ａに設置された複数の端末装置１０ａ１、１０ａ２、地域Ａに設置された中継装置３０ａ、地域Ｂに設置された複数の端末装置１０ｂ１、１０ｂ２、地域Ｂに設置された中継装置３０ｂ、地域Ａ及びＢに設置された中継装置３０ａ、３０ｂと広域ネットワーク４０を介して接続された複数の演算装置５０ａ、５０ｂ、５０ｃにより構成される。また、端末装置１０ａ１、１０ａ２は、中継装置３０ａとローカルネットワーク２０ａを介して接続され、端末装置１０ｂ１、１０ｂ２は、中継装置３０ｂとローカルネットワーク２０ｂを介して接続される。
【００１１】
なお、説明を分かり易くするため、端末装置１０ａ１、１０ａ２、１０ｂ１、１０ｂ２を端末装置１０と略記し、中継装置３０ａ、３０ｂを中継装置３０と略記し、演算装置５０ａ、５０ｂ、５０ｃを演算装置５０と略記することがある。また、端末装置１０と中継装置３０が接続されるケースについて説明するが、端末装置１０と中継装置３０を一つのデバイスで構成するようにしてもよい。
【００１２】
伝送中継システムでは、端末装置１０が制御対象デバイス（情報処理装置）との入出力を行い、演算装置５０が制御対象デバイスからの検知信号６０（入力信号）に従って制御演算を行い、制御信号６１（出力信号）を出力し、中継装置３０が端末装置１０と演算装置５０の通信を中継するシステムである。
【００１３】
広域ネットワーク４０は、例えばインターネットや専用回線などの広域な有線通信回線であっても良いし、３Ｇなどの広域な無線通信回線でも良い。広域ネットワーク４０の通信プロトコルに、ＴＣＰ（Transmission Control Protocol）やＵＤＰ（User Datagram Protocol）等の単純なプロトコルを用いても良いし、ＨＴＴＰＳ（Hypertext Transfer Protocol Secure）等のセキュリティの高いプロトコルを用いても良い。ローカルネットワーク２０は、例えばＰｒｏｆｉｂｕｓ、ＭｏｄｂｕｓやＴＣ−ｎｅｔなどのフィールドバス、イーサネット（登録商標）などのローカルな有線通信回線を用いても良いし、無線ＬＡＮや９２０ＭＨｚ帯等のローカルな無線通信回線を用いても良い。
【００１４】
例えば、端末装置１０（クライアントデバイス）は、伝送部１１、入力部１２、及び制御部１３等を備える。入力部１２は、制御対象デバイスから検知信号６０を受け取る。制御部１３は、制御対象デバイスに制御信号６１を出力する。伝送部１１は、中継装置３０と通信を行う。
【００１５】
検知信号６０とは、制御対象デバイスが設置された環境に関する環境情報、制御対象デバイスの状態に関する状態情報、又は各種の記憶媒体から読み取られたリード情報である。例えば、環境情報は明るさや温度、湿度、気圧、天候などを示す情報や、緯度、経度、高度などの位置情報や、速度、加速度、圧力などの物理情報や、文字列、画像、映像、音声などの多次元の情報である。状態情報は制御対象デバイスの電源状態（例えばオン又はオフ）や電流値や電圧値、圧力値、動作の状態などを示す情報や、ビット値、バイト値などのデジタル情報である。リード情報については後に説明する。
【００１６】
制御信号６１とは、制御対象デバイスを動作させるための信号であり、電源状態や電流値や電圧値、圧力値、動作の状態などを示す情報や、ビット値、バイト値などのデジタル情報である。また、検知信号と制御信号は、一定回数の検知信号と制御信号のやり取りを行い、制御対象デバイスを動作させるトランザクション処理としても良い。
【００１７】
例えば、本実施形態の伝送中継システムを交通システムに適用する場合、制御対象デバイスは駅務機器となる。例えば、駅務機器は、自動改札機、自動精算機、及び自動券売機等である。制御対象デバイスが自動改札機の場合、検知信号６０は無線通信媒体（所謂、無線カード）から読み取られたリード情報等であり、制御信号６１は通行を制御するゲートの駆動信号等である。この場合のリード情報は、無線通信媒体のID、入場記録（入場駅及び入場日時）、出場記録（出場駅及び出場時刻）、及び金額情報のうちの少なくとも一つとなる。一般的に、自動改札機の場合、検知信号６０に対する制御信号６１の高速応答が要求される。また、制御対象デバイスが自動精算機の場合（且つ演算装置５０側で精算処理を行うようなクラウド精算システムの場合）、検知信号６０は無線通信媒体から読み取られたリード情報であり、制御信号６１はリード情報から算出される不足金額情報等である。自動精算機において要求される制御信号６１の応答は、自動改札機において要求される制御信号６１の応答より遅くてもよい。なお、自動改札機及び自動精算機のそれぞれにおいて、応答信号の要求時間が異なる複数の処理を実行するケースも含まれる。交通システムにおいては、多数の自動改札機が設置され、これら多数の自動改札機のそれぞれから多数の検知信号が高頻度で送信され、多数の自動精算機が設置され、これら多数の自動精算機のそれぞれから多数の検知信号が送信される。本実施形態の伝送中継システムはこのような条件の交通システムにおいて応答時間を短縮することができる。
【００１８】
なお、本実施形態の伝送中継システムは、上記説明した駅務システムへの適用に限定されるものではなく、防災システム、水処理システム等の様々な社会インフラシステム、及びビル制御等の様々な産業システムに適用することができる。また、制御対象デバイスは、例えば、プラント、防災システム、交通システム等の社会インフラシステムのハードウェア、ソフトウェアでも良いし、産業システム、家電、ＰＣ、情報端末等のハードウェア、ソフトウェアでも良い。
【００１９】
中継装置３０は、伝送部３１（通信部）、負荷計測部３２（取得部）、負荷分散部３３（選択部）、情報交換部３４（取得部）、及び演算装置テーブル３５等を備える。伝送部３１は、端末装置１０及び演算装置５０と通信を行う。負荷計測部３２は、演算装置の応答時間やネットワークの遅延時間を計測し負荷情報を取得する。負荷分散部３３は、複数の演算装置の負荷情報に基づき、複数の演算装置の中から１以上の演算装置（１以上の第１の演算装置）を選択する。情報交換部３４は、複数の中継装置３０間で負荷情報を交換する。演算装置テーブル３５は、演算装置のアドレスや負荷情報等を格納する。
【００２０】
また、演算装置５０（サーバ）は、伝送部５１、演算部５２、及び負荷推定部５３等を備える。伝送部５１は、中継装置３０と通信を行う。演算部５２は、検知信号６０に基づき制御信号６１を生成する制御演算を行う。負荷推定部５３は、演算装置５０で行う演算処理に要する時間やＣＰＵ負荷を推定する。
【００２１】
端末装置１０、中継装置３０、演算装置５０の各機能は、バスで接続されたＣＰＵ（Central Processing Unit）やメモリや補助記憶装置などを利用したソフトウェアで実現されても良いし、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されても良い。また、ソフトウェアとハードウェアの組み合わせにより実現されても良い。演算装置５０は、インターネット上に仮想的に構築され、ＣＰＵやメモリ等のリソースを動的に増減可能なクラウドサーバとして構成しても良い。また、各装置のソフトウェアを格納する媒体は、コンピュータシステムに内蔵されるハードディスクやＳＳＤ等の補助記憶装置を用いて実現されても良いし、ＲＡＭ等の主記憶装置を用いて実現されても良い。
【００２２】
図２は、実施形態１に係る伝送中継システムにおける検知信号と制御信号の中継方式の一例を示すシーケンス図である。端末装置１０は制御対象デバイスから検知信号６０を受け取り（ＳＴ１０１）、中継装置３０に送信する（ＳＴ１０２）。中継装置３０は負荷情報に基づき検知信号６０の送信先の１以上の演算装置５０を判定する（ＳＴ３０４）。例えば、中継装置３０が、送信先として演算装置５０ａと演算装置５０ｂを選択した場合、選択した演算装置５０ａと演算装置５０ｂに検知信号６０を送信する（ＳＴ３０５）。
【００２３】
送信先の判定には、負荷情報を用いる。例えば、中継装置と演算装置の間の応答時間を負荷情報とする。事前に中継装置３０が各演算装置に対し応答時間を確認するための確認パケット６２を送信し（ＳＴ３０１）、各演算装置からの応答パケット６３が返信されるまでの時間を計測し、応答時間とする（ＳＴ３０２）。応答時間の最も短い演算装置５０を送信先としてもよいし、適当な応答時間を閾値とし、閾値以内の１以上の演算装置５０を送信先としても良い。応答時間を確認するためのパケットとして、例えばpingコマンドを用いても良い。中継装置３０は、負荷情報を取得した際に、演算装置テーブル３５を更新する。
【００２４】
演算装置テーブル３５の一例を図３に示す。演算装置テーブル３５は、演算装置を一意に識別するためのＩＤ７０、演算装置に任意に付けられる名前７１、演算装置のネットワーク上のアドレスを示すＩＰアドレス７２、演算装置の稼働状態を示す状態７３、中継装置と演算装置の間の物理的距離７４、中継装置と演算装置の間の応答時間７５、物理的距離７４や応答時間から算出される演算装置の優先度７６で構成される。
【００２５】
中継装置３０が、複数の演算装置５０との応答時間を計測した際に、応答時間７５を更新し、優先度７６を算出する。演算装置テーブル３５において、ＩＤ７０、名前７１、ＩＰアドレス７２、物理的距離７４はユーザが任意に設定する。また、中継装置３０は演算装置５０の稼働状態を検出し、演算装置５０の稼働状態を状態７３に反映する。例えば、状態７３は、稼働中、遅延、故障、新規等の情報を示す。新たに追加された演算装置５０で、応答時間を計測してないものに対して、新規という状態を付加してもよい。また、中継装置３０と演算装置５０との距離に対する想定応答時間より測定応答時間が遅い場合、遅延という状態を付加してもよい。また、中継装置３０は、所定時間内に演算装置５０から応答が返ってこない場合、演算装置５０や演算装置５０までの通信経路に異常があったとみなし、故障という状態を付加してもよい。優先度７６は、状態７３、物理的距離７４、及び応答時間７５の少なくとも一つから算出される。例えば、状態が稼働中であり、応答時間の短いものから順に高い値を優先度７６に割り当てる。また、状態が稼働中であり、応答時間が同じ場合には距離を参照し（応答時間／距離）、距離の短いものから順に高い値を優先度７６に割り当てる。
【００２６】
中継装置３０が、演算装置５０ａ及び５０ｂを選択し、選択した演算装置５０ａ及び５０ｂに対して検知信号６０を送信した場合、検知信号６０を受信した演算装置５０ａ及び５０ｂは、演算処理を行い検知信号６０に従い制御信号６１ａ及び６１ｂを生成し（ＳＴ５０ａ−１）（ＳＴ５０ｂ−１）、制御信号６１ａ及び６１ｂを中継装置３０に送信する（ＳＴ５０ａ−２）（ＳＴ５０ｂ−２）。
【００２７】
中継装置３０は、最も早く制御信号６１ａを受信した場合には制御信号６１ａを端末装置１０に送信し、最も早く制御信号６１ｂを受信した場合には制御信号６１ｂを端末装置１０に送信する（ＳＴ３０６）。
【００２８】
或いは、中継装置３０が、一定時間内に複数の制御信号６１ａ及び６１ｂを受信する場合、受信した複数の制御信号６１ａ及び６１ｂを比較照合し、全て同一であれば制御信号６１ａ又は６１ｂを端末装置１０に送信するようにしてもよい。
【００２９】
或いは、中継装置３０が、一定時間内に複数の制御信号（例えば３以上の制御信号）を受信する場合、受信した複数の制御信号６１の多数決に基づき一つの制御信号６１を選択し、選択した制御信号６１を端末装置１０に送信するようにしてもよい。例えば、中継装置３０が、三つの制御信号６１を受信し、二つの制御信号６１が一致する場合には、一致した二つの制御信号６１のうちの一方の制御信号６１を選択し、選択した制御信号６１を端末装置１０に送信するようにしてもよい。
【００３０】
中継装置３０は、検知信号６０を送信してから制御信号６１（全ての制御信号６１）を受信するまでの応答時間を計測し（ＳＴ３０７）、計測された応答時間に基づき負荷情報を更新する。次回以降は、更新された負荷情報に基づき送信先を判定する。
【００３１】
制御信号６１を受信した端末装置１０は、制御信号６１に従い制御対象デバイスを制御し動作させる（ＳＴ１０３）。
【００３２】
次の周期においても、同様に端末装置１０が検知信号６０を中継装置３０に送信し、中継装置３０が検知信号６０の送信先を判定する。このような処理により、応答時間の短い演算装置５０に検知信号６０を送信することが可能となる。その結果、応答時間の短縮を図ることができる。
【００３３】
図４は、実施形態１に係る伝送中継システムにおける複数の中継装置３０の間で演算装置テーブル３５の情報を交換するシーケンスの一例を示す図である。図４に示すシーケンスと、図１に示すシーケンスとで、実質的に同一の処理には同一の符号を付し、実質的に同一処理についての説明は適宜省略する。
【００３４】
中継装置３０ａが負荷を算出後（ＳＴ３０ａ−２）、他の中継装置３０ｂと演算装置テーブル３５の情報を交換する（ＳＴ３０ａ−３）。つまり、中継装置３０ａは、他の中継装置３０ｂで計測して生成された演算装置テーブル３５の情報を取得する。なお、制御開始時の確認パケットにより負荷を算出した後に、情報交換を行っても良いし、演算装置５０から返答される制御信号６１から負荷を算出した後に（ＳＴ３０ａ−７）、情報交換を行っても良い（ＳＴ３０ａ−８）。その際は、１台の中継装置３０ａが、全中継装置の台数分、図３に示す演算装置テーブル３５を保持する。
【００３５】
このような処理により、他の中継装置で収集（測定）された負荷情報（応答時間や優先度）を考慮し、演算装置５０を選択することができる。例えば、中継装置３０ａで測定された負荷情報Ｌａ及び中継装置３０ｂで測定された負荷情報Ｌｂが、以下のケースを想定する。
負荷情報Ｌａ：
演算装置５０ａ（距離10km／応答時間1ms）、演算装置５０ｂ（距離10km／応答時間1ms）
負荷情報Ｌｂ：
演算装置５０ａ（距離10km／応答時間1ms）、演算装置５０ｂ（距離10km／応答時間2ms）
負荷情報Ｌａに含まれる演算装置５０ｂの応答時間に対して、負荷情報Ｌｂに含まれる演算装置５０ｂの応答時間が劣ることが分かる（中継装置３０ａから演算装置５０ｂまでの距離と中継装置３０ｂから演算装置５０ｂまでの距離は同じ10km）。このようなケースでは、何らかの事情で演算装置５０ｂへの通信経路が不安定になっている、又は演算装置５０ｂそのものが不安定になっているようなことが想定される。例えば、中継装置３０ａは、負荷情報Ｌａに基づき、演算装置５０ａ及び５０ｂを選択し、さらに、負荷情報Ｌｂに基づき、選択した演算装置５０ａ及び５０ｂから演算装置５０ａを選択することができる。つまり、中継装置３０ａは、負荷情報Ｌａ及び負荷情報Ｌｂに基づき、演算装置５０ａを選択することができ、処理の安定化と応答時間の短縮化を図ることができる。
【００３６】
或いは、中継装置３０ａが演算装置５０ａの応答時間の平均値ＡＶ１ａ及び最大値Ｍａｘ１ａと、演算装置５０ｂの応答時間の平均値ＡＶ１ｂ及び最大値Ｍａｘ１ｂを測定し、中継装置３０ｂが演算装置５０ａの応答時間の平均値ＡＶ２ａ及び最大値Ｍａｘ２ａと、演算装置５０ｂの応答時間の平均値ＡＶ２ｂ及び最大値Ｍａｘ２ｂを測定するようにしてもよい。例えば、中継装置３０ａは、平均値ＡＶ１ａ、最大値Ｍａｘ１ａ、平均値ＡＶ１ｂ、最大値Ｍａｘ１ｂ、平均値ＡＶ２ａ、最大値Ｍａｘ２ａ、平均値ＡＶ２ｂ、及び最大値Ｍａｘ２ｂに基づき、演算装置５０ａ又は５０ｂを選択するようにしてもよい。なお、平均値だけを用いるようにしてもよいし、最大値だけを用いるようにしてもよい。
【００３７】
図５は、実施形態１に係る伝送中継システムにおける演算時間の伝送例を示す図である。図５に示すように、検知信号６０を受信した演算装置５０は、演算処理を行い、その処理時間である演算時間６４を記録する。演算装置５０は、中継装置３０に検知信号６０を送信する際、検知信号６０と演算時間６４を格納含めたパケットとして中継装置３０に送信する。中継装置３０は、検知信号６０を送信してから制御信号６１を受信するまでの時間を計測し、応答時間６５を測定する。ここで、応答時間６５から演算時間６４を引いた値が、中継装置３０から演算装置５０までの往復の伝送時間となる。
【００３８】
図６は、実施形態１に係る伝送中継システムにおける演算装置テーブル３５の他の例を示す図である。図６に示すように、演算装置テーブル３５に演算時間７７と伝送時間７８を設け、演算装置５０で計測した演算時間と、中継装置３０で計測した伝送時間を格納しても良い。中継装置３０は、図６に示す演算装置テーブル３５に基づき、演算装置５０に負荷がかかっているか、伝送路に負荷がかかっているかを判別し、演算装置５０を選択することが可能となる。
【００３９】
例えば、負荷の軽い演算装置を優先的に選択するように設定されている場合には、中継装置３０は、同じ応答時間の演算装置５０の中から、負荷の軽い演算装置５０を優先的に選択する。また、負荷の軽い伝送路を優先的に選択するように設定されている場合には、中継装置３０は、同じ応答時間の演算装置５０の中から、負荷の軽い伝送路に接続された演算装置５０を優先的に選択する。
【００４０】
また、演算時間と伝送時間に異なる重みを付けて、演算時間と伝送時間の総和で優先度を決定し、中継装置３０が、優先度に基づき演算装置を選択するようにしてもよい。
【００４１】
また、検知信号６０と制御信号６１を送信するパケットに演算の種別を格納し、演算の種別によって個別に演算時間７７を管理してもよい。つまり、中継装置３０が、演算種別に応じた負荷情報を含む演算装置テーブル３５を生成するようにしてもよい。
【００４２】
例えば、中継装置３０は、端末装置１０から演算種別を含む検知信号を受信し、演算種別に応じた負荷情報を含む演算装置テーブル３５に基づき、演算装置５０を選択する。つまり、中継装置３０は、検知信号に含まれた演算処理を実行するにあたり有利な中継装置３０（演算時間の短い中継装置３０）を選択することができる。
【００４３】
実施形態１によれば、中継装置３０が演算装置５０の応答時間を常時計測することで、応答時間の短い演算装置に検知信号６０を送信することが可能であり、端末装置１０からみた演算処理の応答時間を短縮することが可能となる。また、演算処理の種別に応じた応答時間の短い演算装置に検知信号６０を送信することが可能であり、端末装置１０からみた演算処理の応答時間を短縮することが可能となる。
【００４４】
（実施形態２）  
図７は、実施形態２に係る伝送中継システムの構成例を示す図である。図７に示す実施形態２に係る伝送中継システムと、図１に示す実施形態１に係る伝送中継システムとで、実質的に同一の構成には同一の符号を付し、実質的に同一処理についての説明は適宜省略する。
【００４５】
図７に示すように、実施形態２に係る伝送中継システムでは、中継装置３０は、さらに多数決部３６を備える。多数決部３６は、複数の演算装置５０から送信される制御信号の多数決をとり、過半数のものを採用する。例えば、５つの制御信号のうち、過半数の３つの制御信号が同じ場合、３つの制御信号のうちの１の制御信号を採用する。なお、中継装置３０は、演算装置テーブル３５に基づき、検知信号の送信先となる複数の演算装置５０を選択するものとする。
【００４６】
図８は、実施形態２に係る伝送中継システムの多数決処理のシーケンスの一例を示す図である。図８に示すシーケンスと、図１に示すシーケンスとで、実質的に同一の処理には同一の符号を付し、実質的に同一処理についての説明は適宜省略する。
【００４７】
検知信号６０を受信した中継装置３０は、演算装置テーブル３５の優先度に基づき、送信先を判定する（ＳＴ３０４）。その際、優先度の高い上位から３つ以上の演算装置５０を選択し、これら演算装置５０に検知信号６０を送信する（ＳＴ３０５）。例えば、３つの演算装置５０ａ、５０ｂ、及び５０ｃが選択されるケースについて説明する。
【００４８】
検知信号６０を受信した各演算装置５０ａ、５０ｂ、及び５０ｃは、演算処理を行い（ＳＴ５０ａ−１）（ＳＴ５０ｂ−１）（ＳＴ５０ｃ−１）、演算結果である制御信号６１ａ、６１ｂ、及び６１ｃを中継装置３０に送信する（ＳＴ５０ａ−２）（ＳＴ５０ｂ−２）（ＳＴ５０ｃ−２）。中継装置３０は受信した制御信号６１ａ、６１ｂ、及び６１ｃの多数決を取り、過半数のものを採用し（ＳＴ３０８）、端末装置１０に送信する（ＳＴ３０６）。
【００４９】
実施形態２によれば、少なくとも１台の演算装置５０が誤った演算を行った場合においても、短い応答時間で制御対象デバイスを正常に動作させることが可能となる。
【００５０】
（実施形態３）  
図９に、実施形態３に係る伝送中継システムの構成例を示す図である。図９に示す実施形態３に係る伝送中継システムと、図１に示す実施形態１に係る伝送中継システムとで、実質的に同一の構成には同一の符号を付し、実質的に同一処理についての説明は適宜省略する。
【００５１】
中継装置３０は、さらに追加受付部３７を備える。演算装置５０は、さらに追加通知部５４を備える。追加受付部３７は、演算装置５０からの追加通信を受信し、演算装置テーブル３５に演算装置５０を登録する機能を有する。追加通知部５４は、システムの全ての中継装置３０に追加通知を送信する機能を有する。
【００５２】
図１０は、実施形態３に係る伝送中継システムの追加処理のシーケンスの一例を示す図である。図１０に示すシーケンスと、図１に示すシーケンスとで、実質的に同一の処理には同一の符号を付し、実質的に同一処理についての説明は適宜省略する。
【００５３】
例えば、演算装置５０は、起動後に任意の処理を行ったあと、追加通知パケット６６を中継装置３０ａ及び３０ｂに送信する（ＳＴ５００）。追加通知パケット６６には、演算装置テーブル３５に格納するための情報として、演算装置５０の名前、IPアドレス、中継装置３０との距離等を含めても良い。また、演算装置５０のスペックとして、CPUクロック数、メモリ容量、OSの種別等を含めても良い。
【００５４】
追加通知パケット６６を受信した中継装置３０ａ及び３０ｂは、追加通知パケット６６に含まれている上記の情報に基づき演算装置テーブル３５に、演算装置５０の情報を追加する（ＳＴ３０ａ−０）（ＳＴ３０ｂ−０）。その後、確認パケット６２を演算装置５０に送信し（ＳＴ３０ａ−１）（ＳＴ３０ｂ−１）、応答パケット６３を受信するまでの時間を計測し、応答時間とする（ＳＴ３０ａ−２）（ＳＴ３０ｂ−２）。応答時間を演算装置テーブル３５に格納し、実施形態１と同様に優先度を算出する。
【００５５】
なお、追加通知パケット６６を送信するタイミングは、システムの起動時でも良いし、システムの稼働中でも良い。
【００５６】
実施形態３によれば、演算装置５０を動的に追加することができ、システムの演算性能を容易に拡張することが可能となる。
【００５７】
なお、上記した実施形態１、２、３に係る伝送中継システムにおける処理はいくつかのソフトウェアによって実行することが可能である。このため、上記処理の手順を実行するいくつかのプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこれらプログラムを端末装置１０、中継装置３０、演算装置５０へインストールして実行するだけで、上記処理を容易に実現することができる。例えば、端末装置１０、中継装置３０、演算装置５０は、上記プログラムをネットワーク経由でダウンロードし、ダウンロードしたプログラムを記憶し、プログラムのインストールを完了することができる。或いは、端末装置１０、中継装置３０、演算装置５０は、上記プログラムを情報記憶媒体から読み取り、読み取ったプログラムを記憶し、プログラムのインストールを完了することができる。
【００５８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００５９】
１０…端末装置
１１…伝送部
１２…入力部
１３…制御部
２０…ローカルネットワーク
３０…中継装置
３１…伝送部
３２…負荷計測部
３３…負荷分散部
３４…情報交換部
３５…演算装置テーブル
３６…多数決部
３７…追加受付部
４０…広域ネットワーク
５０…演算装置
５１…伝送部
５２…演算部
５３…負荷推定部
５４…追加通知部
６０…検知信号
６１…制御信号
６２…確認パケット
６３…応答パケット
６４…演算時間
６５…応答時間
６６…追加通知パケット
７１…名前
７２…アドレス
７３…状態
７４…物理的距離
７５…応答時間
７６…優先度
７７…演算時間
７８…伝送時間
【図１】
2018045442.tif 000003
【図２】
2018045442.tif 000004
【図３】
2018045442.tif 000005
【図４】
2018045442.tif 000006
【図５】
2018045442.tif 000007
【図６】
2018045442.tif 000008
【図７】
2018045442.tif 000009
【図８】
2018045442.tif 000010
【図９】
2018045442.tif 000011
【図１０】
2018045442.tif 000012