(57)【要約】【課題】ネットワーク負荷を軽減させることができる負荷分散装置、負荷分散システム、プログラム及び負荷分散方法を提供すること。【解決手段】実施形態の負荷分散装置は、第１の通信部、第１の決定部、第１の集約部及び第２の通信部を備える。第１の通信部は、通信装置によって送信されたパケットを受信する。第１の決定部は、前記第１の通信部によって受信された第１の個別パケットの内容に基づき、前記第１の個別パケットの送信先を複数の演算装置の中から決定する。第１の集約部は、前記第１の決定部によって決定された送信先ごとに複数の前記第１の個別パケットを集約して第１の集約パケットを生成する。第２の通信部は、前記第１の集約パケットを、前記第１の決定部によって決定された送信先の演算装置に送信する。【選択図】図１
2019161603.tif 000002
【特許請求の範囲】
【請求項１】
通信装置によって送信されたパケットを受信する第１の通信部と、
前記第１の通信部によって受信された第１の個別パケットの内容に基づき、前記第１の個別パケットの送信先を複数の演算装置の中から決定する第１の決定部と、
前記第１の決定部によって決定された送信先ごとに複数の前記第１の個別パケットを集約して第１の集約パケットを生成する第１の集約部と、
前記第１の集約パケットを、前記第１の決定部によって決定された送信先の演算装置に送信する第２の通信部と、を備える負荷分散装置。
【請求項２】
前記第１の通信部によって受信された前記第１の個別パケットが、第２の集約パケットに含まれたものである場合、前記第２の集約パケットを前記第１の個別パケットに分離する第１の分離部をさらに備え、
前記第１の決定部は、前記第１の分離部によって分離された前記第１の個別パケットの内容に基づき、前記第１の個別パケットの送信先を複数の前記演算装置の中から決定する、請求項１に記載の負荷分散装置。
【請求項３】
前記第１の通信部によって受信された前記第１の個別パケットの送信元を記憶する記憶部をさらに備え、
前記第２の通信部は、前記第１の集約パケットに含まれる前記第１の個別パケットに対する応答としての第２の個別パケットを前記演算装置から受信し、
前記記憶部を参照して、前記第２の個別パケットの送信先を、前記第１の個別パケットの送信元に決定する第２の決定部をさらに備え、
前記第１の通信部は、前記第２の個別パケットを、前記第２の決定部によって決定された送信先に送信する、請求項１又は請求項２に記載の負荷分散装置。
【請求項４】
前記第２の通信部によって受信された前記第２の個別パケットが、第３の集約パケットに含まれたものである場合、前記第３の集約パケットを前記第２の個別パケットに分離する第２の分離部をさらに備える、請求項３に記載の負荷分散装置。
【請求項５】
前記第２の決定部によって決定された送信先ごとに複数の前記第２の個別パケットを集約して第４の集約パケットを生成する第２の集約部をさらに備え、
前記第１の通信部は、前記第４の集約パケットを、前記第２の決定部によって決定された送信先に送信する、請求項３又は請求項４に記載の負荷分散装置。
【請求項６】
前記第１の決定部は、前記第１の個別パケットに含まれる、前記第１の個別パケットの送信元である端末の識別情報である端末ＩＤを用いて、前記第１の個別パケットの送信先を決定する、請求項１乃至請求項５のいずれか１項に記載の負荷分散装置。
【請求項７】
前記第１の決定部は、前記第１の個別パケットに含まれる、トランザクションの識別情報であるトランザクションＩＤを用いて、前記第１の個別パケットの送信先を決定する、請求項１乃至請求項６のいずれか１項に記載の負荷分散装置。
【請求項８】
前記第１の決定部は、前記第１の個別パケットに含まれる、利用者の識別情報である利用者ＩＤを用いて、前記第１の個別パケットの送信先を決定する、請求項１乃至請求項７のいずれか１項に記載の負荷分散装置。
【請求項９】
前記第１の集約部は、高速集約部及び低速集約部を含み、
前記高速集約部は、前記低速集約部よりも第１の集約パケットを生成する頻度が高い、請求項１乃至請求項８のいずれか１項に記載の負荷分散装置。
【請求項１０】
通信装置、複数の負荷分散装置及び複数の演算装置を含み、
前記通信装置は、複数の負荷分散装置のいずれかにパケットを送信する第３の通信部を備え、
前記負荷分散装置のそれぞれは、
前記第３の通信部によって送信されたパケットを受信する第１の通信部と、
前記第１の通信部によって受信された第１の個別パケットの内容に基づき、前記第１の個別パケットの送信先を複数の前記演算装置の中から決定する第１の決定部と、
前記第１の決定部によって決定された送信先ごとに複数の前記第１の個別パケットを集約して第１の集約パケットを生成する第１の集約部と、
前記第１の集約パケットを、前記第１の決定部によって決定された送信先の演算装置に送信する第２の通信部と、を備え、
前記演算装置のそれぞれは、前記第２の通信部によって送信されたパケットを受信する第４の通信部を備える、負荷分散システム。
【請求項１１】
通信装置、複数の負荷分散装置及び複数の演算装置を含み、
前記通信装置は、複数の負荷分散装置にパケットを送信する第３の通信部を備え、
前記負荷分散装置のそれぞれは、
前記第３の通信部によって送信されたパケットを受信する第１の通信部と、
前記第１の通信部によって受信された第１の個別パケットの内容に基づき、前記第１の個別パケットの送信先を複数の前記演算装置の中から決定する第１の決定部と、
前記第１の決定部によって決定された送信先ごとに複数の前記第１の個別パケットを集約して第１の集約パケットを生成する第１の集約部と、
前記第１の集約パケットを、前記第１の決定部によって決定された送信先の演算装置に送信する第２の通信部と、を備え、
前記演算装置のそれぞれは、前記第２の通信部によって送信されたパケットを受信する第４の通信部を備える、負荷分散システム。
【請求項１２】
第１の通信部及び第２の通信部を備える負荷分散装置が備えるコンピューターを、
前記第１の通信部によって受信された第１の個別パケットの内容に基づき、前記第１の個別パケットの送信先を複数の演算装置の中から決定する第１の決定部と、
前記第１の決定部によって決定された送信先ごとに複数の前記第１の個別パケットを集約して第１の集約パケットを生成する第１の集約部と、
前記第１の集約パケットを、前記第１の決定部によって決定された送信先の演算装置に送信するように第２の通信部を制御する通信制御部と、して機能させるプログラム。
【請求項１３】
受信された第１の個別パケットの内容に基づき、前記第１の個別パケットの送信先を複数の演算装置の中から決定し、
決定された前記送信先ごとに複数の前記第１の個別パケットを集約して第１の集約パケットを生成し、
前記第１の集約パケットを、決定された前記送信先の演算装置に送信する、負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、負荷分散装置、負荷分散システム、プログラム及び負荷分散方法に関する。
【背景技術】
【０００２】
クライアントサーバー型のシステムにおいて、同時に多数のクライアントからサーバーへのアクセスが発生すると、サーバーの負荷が増大し、リアルタイムな制御を行うことが難しくなる。これを解決するために複数のサーバーに処理を割り振る手法がある。
また、クライアントサーバー型のシステムにおいて、サーバーに対するリクエストが高頻度で発生する場合、ネットワーク負荷が増大し、リアルタイムな制御が行えない可能性がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６０８２６７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態が解決しようとする課題は、ネットワーク負荷を軽減させることができる負荷分散装置、負荷分散システム、プログラム及び負荷分散方法を提供することである。
【課題を解決するための手段】
【０００５】
実施形態の負荷分散装置は、第１の通信部、第１の決定部、第１の集約部及び第２の通信部を備える。第１の通信部は、通信装置によって送信されたパケットを受信する。第１の決定部は、前記第１の通信部によって受信された第１の個別パケットの内容に基づき、前記第１の個別パケットの送信先を複数の演算装置の中から決定する。第１の集約部は、前記第１の決定部によって決定された送信先ごとに複数の前記第１の個別パケットを集約して第１の集約パケットを生成する。第２の通信部は、前記第１の集約パケットを、前記第１の決定部によって決定された送信先の演算装置に送信する。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係る通信システムの概要の一例を示すブロック図。
【図２】第１実施形態〜第３実施形態に係る通信システムに含まれる構成要素の要部回路構成の一例を示すブロック図。
【図３】第１実施形態〜第３実施形態に係る通信システムに含まれる構成要素の要部回路構成の一例を示すブロック図。
【図４】図３中の負荷分散装置の機能構成の一例を示すブロック図。
【図５】集約パケット及び個別パケットを説明するための図。
【図６】図３中の負荷分散装置の機能構成の一例を示すブロック図。
【図７】図３中の負荷分散装置の機能構成の一例を示すブロック図。
【図８】図３中の負荷分散装置の機能構成の一例を示すブロック図。
【図９】図３中の負荷分散装置の機能構成の一例を示すブロック図。
【図１０】図２中の端末装置のプロセッサーによる第１実施形態〜第３実施形態に係る処理のフローチャート。
【図１１】図２中の中継装置のプロセッサーによる第１実施形態に係る処理のフローチャート。
【図１２】図２中の中継装置のプロセッサーによる第１実施形態〜第３実施形態に係る処理のフローチャート。
【図１３】図３中の負荷分散装置のプロセッサーによる第１実施形態〜第３実施形態に係る処理のフローチャート。
【図１４】図３中の負荷分散装置のプロセッサーによる第１実施形態〜第３実施形態に係る処理のフローチャート。
【図１５】図３中の負荷分散装置のプロセッサーによる第１実施形態〜第３実施形態に係る処理のフローチャート。
【図１６】図３中の負荷分散装置のプロセッサーによる第１実施形態〜第３実施形態に係る処理のフローチャート。
【図１７】図３中の演算装置のプロセッサーによる第１実施形態に係る処理のフローチャート。
【図１８】図３中の演算装置のプロセッサーによる第１実施形態及び第３実施形態に係る処理のフローチャート。
【図１９】図３中の演算装置のプロセッサーによる第１実施形態〜第３実施形態に係る処理のフローチャート。
【図２０】第１実施形態に係る通信システムの情報の流れの一例を示すシーケンス図。
【図２１】第１実施形態に係る通信システムの情報の流れの一例を示すシーケンス図。
【図２２】送信先を選択する第１の方法を説明するための図。
【図２３】送信先を選択する第２の方法を説明するための図。
【図２４】送信先を選択する第３の方法を説明するための図。
【図２５】送信先を選択する第３の方法を説明するための図。
【図２６】第２実施形態に係る通信システムの概要の一例を示すブロック図。
【図２７】図２中の中継装置のプロセッサーによる第２実施形態に係る処理のフローチャート。
【図２８】図２中の演算装置のプロセッサーによる第２実施形態に係る処理のフローチャート。
【図２９】図２中の演算装置のプロセッサーによる第２実施形態に係る処理のフローチャート。
【図３０】第２実施形態に係る通信システムの情報の流れの一例を示すシーケンス図。
【図３１】第２実施形態に係る通信システムの情報の流れの一例を示すシーケンス図。
【図３２】図２中の中継装置のプロセッサーによる第３実施形態に係る処理のフローチャート。
【図３３】図２中の演算装置のプロセッサーによる第３実施形態に係る処理のフローチャート。
【図３４】第２実施形態に係る通信システムの情報の流れの一例を示すシーケンス図。
【図３５】第２実施形態に係る通信システムの情報の流れの一例を示すシーケンス図。
【発明を実施するための形態】
【０００７】
以下、いくつかの実施形態に係る通信システムについて図面を用いて説明する。なお、各図面及びその説明において同一の要素には同一の符号を付している。
〔第１実施形態〕
（構成）
まず、図１〜図３に基づいて第１実施形態に係る通信システム１の構成を説明する。図１は、第１実施形態に係る通信システム１の概要の一例を示すブロック図である。図２及び図３は、第１実施形態に係る通信システム１に含まれる構成要素の要部回路構成の一例を示すブロック図である。
通信システム１は、例えば、クライアントとして機能する端末装置１０とサーバーとして機能する演算装置４０とを含んで構成される、クライアントサーバーモデルのシステムである。あるいは、負荷分散装置３０と演算装置４０とが協働してサーバーとして機能する。通信システム１は、例えば、駅務システム、交通システム、防災システム、水処理システム等の社会インフラシステム、ビル制御システム、物流システム及び軍事システムなどの種々のシステムとして適用が可能である。なお、以下の実施形態では、通信システム１が駅務システムに適用される場合を例にして通信システム１の説明を行う。通信システム１は、一例として、複数の端末装置１０、複数の中継装置２０、負荷分散装置３０及び複数の演算装置４０を含む。なお、複数の端末装置１０のそれぞれは、例えば複数の地域Ａ（地域Ａ１、地域Ａ２、…、地域Ａｎ（ｎは、自然数。））のいずれかに設置される。なお、地域Ａ１に設置された端末装置１０を、端末装置１０−１−１、端末装置１０−１−２、…、地域Ａ２に設置された端末装置１０を、端末装置１０−２−１、端末装置１０−２−２、…、地域Ａｎに設置された端末装置１０を、端末装置１０−ｎ−１、端末装置１０−ｎ−２、…のように称するものとする。さらに、地域Ａ１に設置された端末装置１０を総称して端末装置１０−１、地域Ａ２に設置された端末装置１０を総称して端末装置１０−２、…、地域Ａｎに設置された端末装置１０を総称して端末装置１０−ｎのように称するものとする。また、地域Ａ１に設置された中継装置２０を中継装置２０−１、地域Ａ２に設置された中継装置２０を中継装置２０−２、…、地域Ａｎに設置された中継装置を中継装置２０−ｎのように称するものとする。
【０００８】
各地域Ａには、ネットワークＮＷ１がそれぞれ設けられている。なお、地域Ａ１に設けられたネットワークＮＷ１をネットワークＮＷ１−１、地域Ａ２に設けられたネットワークＮＷ１をネットワークＮＷ１−２、…、地域Ａｎに設けられたネットワークＮＷ１をネットワークＮＷ１−ｎと称するものとする。地域Ａｋ（ｋは、ｎ以下の自然数。）に設置された端末装置１０−ｋ及び中継装置２０−ｋは、ネットワークＮＷ１−ｋに接続する。
ネットワークＮＷ１は、典型的にはイントラネットなどのプライベートネットワークを含む通信網である。ネットワークＮＷ１は、典型的にはＬＡＮ（local area network）を含む通信網である。ネットワークＮＷ１は、インターネットを含む通信網であっても良い。ネットワークＮＷ１は、ＷＡＮ（wide area network）を含む通信網であっても良い。また、ネットワークＮＷ１は、Ｐｒｏｆｉｂｕｓ、Ｍｏｄｂｕｓ又はＴＣ−ｎｅｔなどのフィールドバスであってもよい。また、ネットワークＮＷ１は、無線回線でも良いし有線回線でも良く、無線回線と有線回線とが混在していても良い。また、ネットワークＮＷ１は、専用線又は公衆携帯電話網などを含む通信網であっても良い。
【０００９】
中継装置２０及び負荷分散装置３０は、ネットワークＮＷ２に接続する。ネットワークＮＷ２は、典型的にはインターネットを含む通信網である。ネットワークＮＷ２は、典型的にはＷＡＮを含む通信網である。ネットワークＮＷ２は、イントラネットなどのプライベートネットワークを含む通信網であっても良い。ネットワークＮＷ２は、ＬＡＮを含む通信網であっても良い。また、ネットワークＮＷ２は、無線回線でも良いし有線回線でも良く、無線回線と有線回線とが混在していても良い。また、ネットワークＮＷ２は、専用線又は公衆携帯電話網などを含む通信網であっても良い。
【００１０】
負荷分散装置３０及び演算装置４０は、ネットワークＮＷ３に接続する。ネットワークＮＷ３は、典型的にはイントラネットなどのプライベートネットワークを含む通信網である。ネットワークＮＷ３は、典型的にはＬＡＮを含む通信網である。ネットワークＮＷ３は、インターネットを含む通信網であっても良い。ネットワークＮＷ３は、ＷＡＮを含む通信網であっても良い。また、ネットワークＮＷ３は、無線回線でも良いし有線回線でも良く、無線回線と有線回線とが混在していても良い。また、ネットワークＮＷ３は、専用線又は公衆携帯電話網などを含む通信網であっても良い。
【００１１】
端末装置１０は、制御対象デバイスＤＡと接続する。あるいは、端末装置１０は、制御対象デバイスＤＡに内蔵される。またあるいは、端末装置１０と制御対象デバイスＤＡとは、一体の装置であっても良い。端末装置１０は、制御対象デバイスＤＡから送信されるデータに基づく処理を行う。また、端末装置１０は、制御対象デバイスＤＡにデータを送信することで、当該制御対象デバイスＤＡの制御などを行う。
制御対象デバイスＤＡは、例えば、駅務機器、プラント、製造機械、防災システム上の機器、交通システム上の機器、産業システム上の機器、医療機器、ＩｏＴ（internet of things）機器、家電、ＰＣ（personal computer）、タブレットＰＣ、スマートホン又はゲーム機などの各種機器である。例えば、通信システム１が駅務システムに適用される場合には、制御対象デバイスＤＡは、例えば駅務機器である。なお、駅務機器は、自動改札機、自動券売機及び自動券売機などである。
端末装置１０は、負荷分散装置３０又は演算装置４０を宛先とするリクエストなどを送信する。端末装置１０は、一例として、プロセッサー１１、ＲＯＭ（read-only memory）１２、ＲＡＭ（random-access memory）１３、補助記憶デバイス１４、第１の通信Ｉ／Ｆ１５、第２の通信Ｉ／Ｆ１６及びバス１７を含む。
【００１２】
プロセッサー１１は、端末装置１０の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー１１は、ＲＯＭ１２又は補助記憶デバイス１４などに記憶されたシステムソフトウェア、アプリケーションソフトウェア又はファームウェアなどのプログラムに基づいて、端末装置１０の各種の機能を実現するべく各部を制御する。プロセッサー１１は、例えば、ＣＰＵ（central processing unit）、ＭＰＵ（micro processing unit）、ＳｏＣ（system on a chip）、ＤＳＰ（digital signal processor）、ＧＰＵ（graphics processing unit）、ＡＳＩＣ（application specific integrated circuit）、ＰＬＤ（programmable logic device）又はＦＰＧＡ（field-programmable gate array）などである。あるいは、プロセッサー１１は、これらのうちの複数を組み合わせたものである。
【００１３】
ＲＯＭ１２は、プロセッサー１１を中枢とするコンピューターの主記憶装置に相当する。ＲＯＭ１２は、専らデータの読み出しに用いられる不揮発性メモリである。ＲＯＭ１２は、上記のプログラムを記憶する。また、ＲＯＭ１２は、プロセッサー１１が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。
【００１４】
ＲＡＭ１３は、プロセッサー１１を中枢とするコンピューターの主記憶装置に相当する。ＲＡＭ１３は、データの読み書きに用いられるメモリである。ＲＡＭ１３は、プロセッサー１１が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。
【００１５】
補助記憶デバイス１４は、プロセッサー１１を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス１４は、例えばＥＥＰＲＯＭ（electric erasable programmable read-only memory）、ＨＤＤ（hard disk drive）又はＳＳＤ（solid state drive）などである。補助記憶デバイス１４は、上記のプログラムを記憶する場合もある。また、補助記憶デバイス１４は、プロセッサー１１が各種の処理を行う上で使用するデータ、プロセッサー１１での処理によって生成されたデータ又は各種の設定値などを保存する。
【００１６】
ＲＯＭ１２又は補助記憶デバイス１４に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、端末装置１０は、当該プログラムがＲＯＭ１２又は補助記憶デバイス１４に記憶された状態で端末装置１０の管理者などへと譲渡される。しかしながら、端末装置１０は、当該プログラムがＲＯＭ１２又は補助記憶デバイス１４に記憶されない状態で当該管理者などに譲渡されても良い。また、端末装置１０は、当該プログラムとは別のプログラムがＲＯＭ１２又は補助記憶デバイス１４に記憶された状態で当該管理者などに譲渡されても良い。そして、後述する処理を実行するためのプログラムが別途に当該管理者などへと譲渡され、当該管理者又はサービスマンなどによる操作の下にＲＯＭ１２又は補助記憶デバイス１４へと書き込まれても良い。このときのプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークなどを介したダウンロードにより実現できる。
【００１７】
第１の通信Ｉ／Ｆ１５は、端末装置１０が制御対象デバイスＤＡと通信するためのインターフェースである。端末装置１０は、例えば、第１の通信Ｉ／Ｆ１５によって制御対象デバイスＤＡと接続する。第１の通信Ｉ／Ｆ１５は、制御対象デバイスＤＡから送信される検知信号５１を受信する。また、第１の通信Ｉ／Ｆ１５は、制御対象デバイスＤＡに対して制御信号５２を送信する。
検知信号５１は、例えば、環境情報、状態情報又はリード情報などである。環境情報は、制御対象デバイスＤＡが設置されている環境に関する情報である。環境情報は、例えば、明るさ、温度、湿度及び気圧等の天候に関する情報、緯度、経度及び高度等の位置情報、速度、加速度及び圧力等の物理情報、並びに文字列、画像、映像及び音声等のメディア情報などである。状態情報は、制御対象デバイスＤＡの状態に関する情報である。状態情報は、例えば、制御対象デバイスＤＡの電源がオンであるかオフであるかなどの電源の状態を示す情報、制御対象デバイスＤＡの回路の電流値及び電圧値、制御対象デバイスＤＡの動作の状態を示す情報、並びに制御対象デバイスＤＡの状態を示す物理量などである。リード情報は、例えば、制御対象デバイスＤＡが記憶媒体から読み取った情報である。制御対象デバイスＤＡが自動改札機又は自動精算機などである場合には、読み取る記憶媒体は、例えば、切符などであり、磁気によって情報を記憶した券若しくはカード等、接触型ＩＣチップ又は非接触型ＩＣチップを搭載したカード若しくは電子機器等、又はＱＲコード（登録商標）等の二次元コードなどである。
制御信号５２は、制御対象デバイスＤＡを制御するための信号又は制御対象デバイスを動作させるための信号などである。制御対象デバイスＤＡが自動改札機である場合、制御信号５２は、例えば、通行を制御するゲートを駆動させる駆動信号などである。また、制御対象デバイスＤＡが自動精算機である場合、制御信号５２は、リード情報などから算出される不足金額などを含む情報である。
なお、端末装置１０は、検知信号５１及び制御信号５２の送受信を複数回行って制御対象デバイスＤＡを動作させるトランザクション処理を行っても良い。
【００１８】
第２の通信Ｉ／Ｆ１６は、端末装置１０がネットワークＮＷ１などを介して通信するためのインターフェースである。なお、端末装置１０は、第１の通信Ｉ／Ｆ１５及び第２の通信Ｉ／Ｆ１６に代えて、第１の通信Ｉ／Ｆ１５及び第２の通信Ｉ／Ｆ１６の両方の役割を兼ねる通信Ｉ／Ｆを備えていても良い。
【００１９】
バス１７は、コントロールバス、アドレスバス及びデータバスなどを含み、端末装置１０の各部で授受される信号を伝送する。
【００２０】
中継装置２０は、端末装置１０と負荷分散装置３０との間の通信を中継する。中継装置２０は、端末装置１０から送信された複数のパケットを集約（結合）する機能を有する。この機能によって生成されたパケットを集約パケットと称するものとする。また、この機能によって集約されるパケットを個別パケットと称するものとする。したがって、集約パケットは、典型的には、複数の個別パケットと集約パケットのヘッダーとを含む。ただし、集約パケットに含まれる個別パケットは、必ずしも複数である必要はなく、１つであっても良い。この場合の集約パケットは、１つの個別パケットと、集約パケットのヘッダーとを含む。中継装置２０は、例えば、ゲートウェイなどである。中継装置２０は、一例として、プロセッサー２１、ＲＯＭ２２、ＲＡＭ２３、補助記憶デバイス２４、第１の通信Ｉ／Ｆ２５、第２の通信Ｉ／Ｆ２６及びバス２７を含む。中継装置２０は、通信装置の一例である。
【００２１】
プロセッサー２１は、中継装置２０の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー２１は、ＲＯＭ２２又は補助記憶デバイス２４などに記憶されたシステムソフトウェア、アプリケーションソフトウェア又はファームウェアなどのプログラムに基づいて、中継装置２０の各種の機能を実現するべく各部を制御する。プロセッサー２１は、例えば、ＣＰＵ、ＭＰＵ、ＳｏＣ、ＤＳＰ、ＧＰＵ、ＡＳＩＣ、ＰＬＤ又はＦＰＧＡなどである。あるいは、プロセッサー２１は、これらのうちの複数を組み合わせたものである。
【００２２】
ＲＯＭ２２は、プロセッサー２１を中枢とするコンピューターの主記憶装置に相当する。ＲＯＭ２２は、専らデータの読み出しに用いられる不揮発性メモリである。ＲＯＭ２２は、上記のプログラムを記憶する。また、ＲＯＭ２２は、プロセッサー２１が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。
【００２３】
ＲＡＭ２３は、プロセッサー２１を中枢とするコンピューターの主記憶装置に相当する。ＲＡＭ２３は、データの読み書きに用いられるメモリである。ＲＡＭ２３は、プロセッサー２１が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。
【００２４】
一例として、ＲＡＭ２３は、中継集約バッファーが割り当てられる。中継集約バッファーは、集約待ちの個別パケットが登録される。
【００２５】
補助記憶デバイス２４は、プロセッサー２１を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス２４は、例えばＥＥＰＲＯＭ、ＨＤＤ又はＳＳＤなどである。補助記憶デバイス２４は、上記のプログラムを記憶する場合もある。また、補助記憶デバイス２４は、プロセッサー２１が各種の処理を行う上で使用するデータ、プロセッサー２１での処理によって生成されたデータ又は各種の設定値などを保存する。
【００２６】
ＲＯＭ２２又は補助記憶デバイス２４に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、中継装置２０は、当該プログラムがＲＯＭ２２又は補助記憶デバイス２４に記憶された状態で中継装置２０の管理者などへと譲渡される。しかしながら、中継装置２０は、当該プログラムがＲＯＭ２２又は補助記憶デバイス２４に記憶されない状態で当該管理者などに譲渡されても良い。また、中継装置２０は、当該プログラムとは別のプログラムがＲＯＭ２２又は補助記憶デバイス２４に記憶された状態で当該管理者などに譲渡されても良い。そして、後述する処理を実行するためのプログラムが別途に当該管理者などへと譲渡され、当該管理者又はサービスマンなどによる操作の下にＲＯＭ２２又は補助記憶デバイス２４へと書き込まれても良い。このときのプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークなどを介したダウンロードにより実現できる。
【００２７】
第１の通信Ｉ／Ｆ２５は、中継装置２０がネットワークＮＷ１などを介して通信するためのインターフェースである。
【００２８】
第２の通信Ｉ／Ｆ２６は、中継装置２０がネットワークＮＷ２などを介して通信するためのインターフェースである。第２の通信Ｉ／Ｆ２６は、第３の通信部の一例である。なお、中継装置２０は、第１の通信Ｉ／Ｆ２５及び第２の通信Ｉ／Ｆ２６に代えて、第１の通信Ｉ／Ｆ２５及び第２の通信Ｉ／Ｆ２６の両方の役割を兼ねる通信Ｉ／Ｆを備えていても良い。
【００２９】
バス２７は、コントロールバス、アドレスバス及びデータバスなどを含み、中継装置２０の各部で授受される信号を伝送する。
【００３０】
負荷分散装置３０は、複数の端末装置１０から送信されるパケットを、複数の演算装置４０に振り分ける。なお、負荷分散装置３０は、インライン型及びワンアーム型のいずれの配置であっても良い。負荷分散装置３０は、一例として、プロセッサー３１、ＲＯＭ３２、ＲＡＭ３３、補助記憶デバイス３４、第１の通信Ｉ／Ｆ３５、第２の通信Ｉ／Ｆ３６及びバス３７を含む。
【００３１】
プロセッサー３１は、負荷分散装置３０の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー３１は、ＲＯＭ３２又は補助記憶デバイス３４などに記憶されたシステムソフトウェア、アプリケーションソフトウェア又はファームウェアなどのプログラムに基づいて、負荷分散装置３０の各種の機能を実現するべく各部を制御する。プロセッサー３１は、例えば、ＣＰＵ、ＭＰＵ、ＳｏＣ、ＤＳＰ、ＧＰＵ、ＡＳＩＣ、ＰＬＤ又はＦＰＧＡなどである。あるいは、プロセッサー３１は、これらのうちの複数を組み合わせたものである。
【００３２】
ＲＯＭ３２は、プロセッサー３１を中枢とするコンピューターの主記憶装置に相当する。ＲＯＭ３２は、専らデータの読み出しに用いられる不揮発性メモリである。ＲＯＭ３２は、上記のプログラムを記憶する。また、ＲＯＭ３２は、プロセッサー３１が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。
【００３３】
一例として、ＲＡＭ３３は、複数の第１の集約バッファーと、複数の第２の集約バッファーとが割り当てられる。第１の集約バッファー及び第２の集約バッファーは、集約待ちの個別パケットが登録される。第１の集約バッファーに登録された個別バッファーは、集約後に演算装置４０に送信される。なお、複数の第１の集約バッファーのそれぞれは、登録された個別パケットが集約後にどの演算装置４０に送信されるかが定められている。ＲＡＭ３３には、送信先である演算装置４０一台ごとに少なくとも１つ以上の第１の集約バッファーが割り当てられる。第２の集約バッファーに登録された個別バッファーは、集約後に中継装置２０に送信される。なお、複数の第２の集約バッファーのそれぞれは、登録された個別パケットが集約後にどの中継装置２０に送信されるかが定められている。ＲＡＭ３３には、送信先である中継装置２０一台ごとに少なくとも１つ以上の第２の集約バッファーが割り当てられる。
【００３４】
ＲＡＭ３３は、プロセッサー３１を中枢とするコンピューターの主記憶装置に相当する。ＲＡＭ３３は、データの読み書きに用いられるメモリである。ＲＡＭ３３は、プロセッサー３１が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。
【００３５】
補助記憶デバイス３４は、プロセッサー３１を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス３４は、例えばＥＥＰＲＯＭ、ＨＤＤ又はＳＳＤなどである。補助記憶デバイス３４は、上記のプログラムを記憶する場合もある。また、補助記憶デバイス３４は、プロセッサー３１が各種の処理を行う上で使用するデータ、プロセッサー３１での処理によって生成されたデータ又は各種の設定値などを保存する。
【００３６】
ＲＯＭ３２又は補助記憶デバイス３４に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、負荷分散装置３０は、当該プログラムがＲＯＭ３２又は補助記憶デバイス３４に記憶された状態で負荷分散装置３０の管理者などへと譲渡される。しかしながら、負荷分散装置３０は、当該プログラムがＲＯＭ３２又は補助記憶デバイス３４に記憶されない状態で当該管理者などに譲渡されても良い。また、負荷分散装置３０は、当該プログラムとは別のプログラムがＲＯＭ３２又は補助記憶デバイス３４に記憶された状態で当該管理者などに譲渡されても良い。そして、後述する処理を実行するためのプログラムが別途に当該管理者などへと譲渡され、当該管理者又はサービスマンなどによる操作の下にＲＯＭ３２又は補助記憶デバイス３４へと書き込まれても良い。このときのプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークなどを介したダウンロードにより実現できる。
【００３７】
第１の通信Ｉ／Ｆ３５は、負荷分散装置３０がネットワークＮＷ２などを介して通信するためのインターフェースである。第１の通信Ｉ／Ｆ３５は、第１の通信部の一例である。
【００３８】
第２の通信Ｉ／Ｆ３６は、負荷分散装置３０がネットワークＮＷ３などを介して通信するためのインターフェースである。第２の通信Ｉ／Ｆ３６は、第２の通信部の一例である。第２の通信Ｉ／Ｆ３６を制御するプロセッサー３１は、通信制御部の一例である。
なお、負荷分散装置３０は、第１の通信Ｉ／Ｆ３５及び第２の通信Ｉ／Ｆ３６に代えて、第１の通信Ｉ／Ｆ３５及び第２の通信Ｉ／Ｆ３６の両方の役割を兼ねる通信Ｉ／Ｆを備えていても良い。
【００３９】
バス３７は、コントロールバス、アドレスバス及びデータバスなどを含み、負荷分散装置３０の各部で授受される信号を伝送する。
【００４０】
演算装置４０は、端末装置１０などから送信されるデータに基づく処理を行うサーバーである。例えば、演算装置４０は、端末装置１０などから送信されたリクエストを受信し、当該リクエストに応じた処理を行う。そして、演算装置４０は、当該処理に基づき、リクエストの送信元に対してレスポンスを送信する。演算装置４０は、一例として、プロセッサー４１、ＲＯＭ４２、ＲＡＭ４３、補助記憶デバイス４４、通信Ｉ／Ｆ４５及びバス４６を含む。
【００４１】
プロセッサー４１は、演算装置４０の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー４１は、ＲＯＭ４２又は補助記憶デバイス４４などに記憶されたシステムソフトウェア、アプリケーションソフトウェア又はファームウェアなどのプログラムに基づいて、演算装置４０の各種の機能を実現するべく各部を制御する。プロセッサー４１は、例えば、ＣＰＵ、ＭＰＵ、ＳｏＣ、ＤＳＰ、ＧＰＵ、ＡＳＩＣ、ＰＬＤ又はＦＰＧＡなどである。あるいは、プロセッサー４１は、これらのうちの複数を組み合わせたものである。
【００４２】
ＲＯＭ４２は、プロセッサー４１を中枢とするコンピューターの主記憶装置に相当する。ＲＯＭ４２は、専らデータの読み出しに用いられる不揮発性メモリである。ＲＯＭ４２は、上記のプログラムを記憶する。また、ＲＯＭ４２は、プロセッサー４１が各種の処理を行う上で使用するデータ又は各種の設定値などを記憶する。
【００４３】
ＲＡＭ４３は、プロセッサー４１を中枢とするコンピューターの主記憶装置に相当する。ＲＡＭ４３は、データの読み書きに用いられるメモリである。ＲＡＭ４３は、プロセッサー４１が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアなどとして利用される。
【００４４】
ＲＡＭ４３は、処理バッファーが割り当てられる。処理バッファーには、処理待ちの個別パケットが登録される。
ＲＡＭ４３は、演算集約バッファーが割り当てられる。演算集約バッファーは、集約町の個別パケットが登録される。
【００４５】
補助記憶デバイス４４は、プロセッサー４１を中枢とするコンピューターの補助記憶装置に相当する。補助記憶デバイス４４は、例えばＥＥＰＲＯＭ、ＨＤＤ又はＳＳＤなどである。補助記憶デバイス４４は、上記のプログラムを記憶する場合もある。また、補助記憶デバイス４４は、プロセッサー４１が各種の処理を行う上で使用するデータ、プロセッサー４１での処理によって生成されたデータ又は各種の設定値などを保存する。
【００４６】
ＲＯＭ４２又は補助記憶デバイス４４に記憶されるプログラムは、後述する処理を実行するためのプログラムを含む。一例として、演算装置４０は、当該プログラムがＲＯＭ４２又は補助記憶デバイス４４に記憶された状態で演算装置４０の管理者などへと譲渡される。しかしながら、演算装置４０は、当該プログラムがＲＯＭ４２又は補助記憶デバイス４４に記憶されない状態で当該管理者などに譲渡されても良い。また、演算装置４０は、当該プログラムとは別のプログラムがＲＯＭ４２又は補助記憶デバイス４４に記憶された状態で当該管理者などに譲渡されても良い。そして、後述する処理を実行するためのプログラムが別途に当該管理者などへと譲渡され、当該管理者又はサービスマンなどによる操作の下にＲＯＭ４２又は補助記憶デバイス４４へと書き込まれても良い。このときのプログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク又は半導体メモリなどのようなリムーバブルな記憶媒体に記録して、あるいはネットワークなどを介したダウンロードにより実現できる。
【００４７】
通信Ｉ／Ｆ４５は、演算装置４０がネットワークＮＷ３などを介して通信するためのインターフェースである。通信Ｉ／Ｆ４５は、第４の通信部の一例である。
【００４８】
バス４６は、コントロールバス、アドレスバス及びデータバスなどを含み、演算装置４０の各部で授受される信号を伝送する。
【００４９】
負荷分散装置３０について、図４を用いてさらに説明する。図４は、負荷分散装置３０の機能構成の一例を示すブロック図である。
負荷分散装置３０は、一例として、第一受信部３０１、第一分離部３０２、送信先選択部３０３、複数の第一集約部３０４、複数の第一送信部３０５、第二受信部３０６、第二分離部３０７、返答先選択部３０８、複数の第二集約部３０９、複数の第二送信部３１０、返答先テーブル３１１及び条件管理部３１２を含む。なお、図４に示す中継装置２０ａ、中継装置２０ｂ、中継装置２０ｃ、…は、それぞれ中継装置２０−１〜中継装置２０−ｎのいずれかである。
【００５０】
第一受信部３０１は、中継装置２０から送信された第一集約パケット６０ａを受信する。そして、第一受信部３０１は、第一分離部３０２に当該第一集約パケット６０ａを渡す。第一集約パケット６０ａは、中継装置２０によって生成された集約パケット６０である。第一集約パケット６０ａに含まれる個別パケットは、端末装置１０によって送信されたものである。そして、当該個別パケットは、検知信号５１などを含む。なお、一例として、第１の通信Ｉ／Ｆ３５が、第一受信部３０１として機能する。
【００５１】
第一分離部３０２は、第一受信部３０１によって受信された集約パケットを個別パケットに分離する。そして、第一分離部３０２は、分離した個別パケットを送信先選択部３０３に渡す。一例として、プロセッサー３１が、第一分離部３０２として機能する。
【００５２】
ここで、集約パケット及び個別パケットについて、図５に基づいて説明する。図５は、集約パケット６０及び個別パケット７０を説明するための図である。集約パケット６０は、前述したように、集約パケット６０のヘッダーと、１以上の個別パケット７０とを含む。なお、図５に示す集約パケット６０は３個以上の個別パケットを示すが、個別パケットの数を限定するものではない。集約パケット６０のヘッダーは、パケット種別６１、送信元ＩＤ（identifier）６２及びシーケンス番号６３を含む
パケット種別６１は、パケットに格納された情報が制御信号であるか、ログ情報であるか、及び個別パケット又は集約パケットのいずれであるかなどといった、パケットの種別を示す値を含む。
送信元ＩＤ６２は、集約パケット６０の送信元を一意に識別する情報である。例えば、送信元ＩＤ６２は、送信元のＩＰアドレスとポート番号とのペア、又は送信元の装置を識別する符号などである。なお、第一集約パケット６０ａの場合、送信元は、中継装置２０である。したがって、第一集約パケット６０ａの送信元ＩＤ６２は、例えば、送信元である中継装置２０のＩＰアドレスとポート番号との組み合わせである。
シーケンス番号６３は、例えば、集約パケット６０の送信者である装置が集約パケット６０を送信する毎にインクリメントする番号を含む。当該装置は、シーケンス番号６３を１ずつ増加させても良いし、送信した集約パケットのサイズ分ずつ増加させても良い。
【００５３】
個別パケット７０は、端末ＩＤ７１、トランザクションＩＤ７２、利用者ＩＤ７３、データサイズ７４及びデータ７５を含む。
端末ＩＤ７１は、個別パケット７０の送信元である装置を一意に識別する情報である。端末ＩＤ７１は、例えば、送信元の装置のＭＡＣアドレスなどのネットワークインターフェースのＩＤ、又は当該装置のＩＰアドレスとポート番号との組み合わせである。
トランザクションＩＤ７２は、１回のトランザクションで複数の通信を行う際に１回のトランザクション中は変化しない識別番号である。トランザクションＩＤ７２は、トランザクション１回ごとにインクリメントされる値であっても良いし、乱数に基づいて生成された値などであっても良い。
利用者ＩＤ７３は、制御対象デバイスＤＡの利用者ごとに割り当てられた識別符号を含む。例えば、制御対象デバイスが自動改札機名度である場合、利用者ＩＤは、ＩＣカード乗車券などの乗車券のＩＤである。その他、利用者ＩＤは、制御対象デバイスを用いて提供されるサービスの利用者それぞれに割り当てられる会員番号、個人を識別する番号、又はクレジットカード番号などであっても良い。
データサイズ７４は、データ７５のデータ容量を示す値を含む。
データ７５は、個別パケットによって送信されるデータの本体にあたる。データ７５は、例えば、検知信号５１又は制御信号５２などを含む。
【００５４】
図４を用いた負荷分散装置３０の説明に戻る。
送信先選択部３０３は、第一分離部３０２から受け取った個別パケットそれぞれについて、どの演算装置４０に送信するかを決定する。そして、送信先選択部３０３は、それぞれの個別パケットを、送信先として決定した演算装置４０に対応する第一集約部３０４に渡す。また、送信先選択部３０３は、それぞれの個別パケットがどの端末装置１０から送信されたものであるかを示す返答先情報を返答先テーブル３１１に渡す。返答先情報は、例えば、個別パケットの送信元のアドレスと個別パケットを識別する情報とを関連付けた情報である。一例として、プロセッサー３１が、送信先選択部３０３として機能する。
【００５５】
複数の第一集約部３０４及び第一送信部３０５のそれぞれは、送信先である演算装置４０のそれぞれに対応する。例えば、図４には、第一集約部３０４として、第一集約部３０４ａ、第一集約部３０４ｂ、第一集約部３０４ｃ、…を示している。そして、第一送信部３０５として、第一送信部３０５ａ、第一送信部３０５ｂ及び第一送信部３０５ｃ、…を示している。第一集約部３０４ａ及び第一送信部３０５ａは演算装置４０ａに対応し、第一集約部３０４ｂ及び第一送信部３０５ｂは演算装置４０ｂに対応し、第一集約部３０４ｃ及び第一送信部３０５ｃは演算装置４０ｃに対応し、…。
【００５６】
第一集約部３０４のそれぞれは、送信先選択部３０３から受け取った個別パケットを記憶する。ここで個別パケットは、例えば、第１の集約バッファーに登録される。第１の集約バッファーは、例えば、ＲＡＭ３３上のバッファーである。
第一集約部３０４は、第１の集約条件が満たされている場合、条件管理部３１２による指示に基づき、記憶した個別パケットを集約して第二集約パケット６０ｂを生成する。第１の集約条件については、後述する。そして、第一集約部３０４は、生成した第二集約パケット６０ｂを、送信先の演算装置４０に対応する第一送信部３０５に渡す。例えば、第一集約部３０４ａであれば、第二集約パケット６０ｂを第一送信部３０５ａに渡す。一例として、プロセッサー３１が、第一集約部３０４として機能する。
【００５７】
第一送信部３０５のそれぞれは、第一集約部３０４から受け取った第二集約パケット６０ｂを、対応する演算装置４０に送信する。例えば、第一送信部３０５ａであれば、第二集約パケット６０ｂを演算装置４０ａに送信する。一例として、第２の通信Ｉ／Ｆ３６が、第一送信部３０５として機能する。
【００５８】
第二受信部３０６は、演算装置４０から送信されたパケットを受信する。例えば、第二受信部３０６は、第三集約パケット６０ｃを受信する。そして、第二受信部３０６は、第三集約パケット６０ｃを受信したならば、当該第三集約パケット６０ｃを第二分離部３０７に渡す。第三集約パケット６０ｃは、一例として、演算装置４０によって生成された集約パケットである。また、第三集約パケット６０ｃに含まれる個別パケットは、一例として、演算装置４０によって生成された個別パケットである。一例として、第２の通信Ｉ／Ｆ３６が、第二受信部３０６として機能する。
【００５９】
第二分離部３０７は、第三集約パケット６０ｃを個別パケットに分離する。そして、第二分離部３０７は、分離した個別パケットを返答先選択部３０８に渡す。一例として、プロセッサー３１が、第二分離部３０７として機能する。
【００６０】
返答先選択部３０８は、返答先テーブル３１１を参照して、第二分離部３０７から受け取った個別パケットそれぞれの送信先を決定する。そして、返答先選択部３０８は、それぞれの個別パケットを、送信先として決定した中継装置２０に対応する第二集約部３０９に渡す。一例として、プロセッサー３１が、送信先選択部３０３として機能する。
【００６１】
複数の第二集約部３０９及び第二送信部３１０のそれぞれは、送信先である中継装置２０のそれぞれに対応する。例えば、図４には、第二集約部３０９として、第二集約部３０９ａ、第二集約部３０９ｂ、第二集約部３０９ｃ、…を示している。そして、第二送信部３１０として、第二送信部３１０ａ、第二送信部３１０ｂ及び第二送信部３１０ｃ、…を示している。第二集約部３０９ａ及び第二送信部３１０ａは中継装置２０ａに対応し、第二集約部３０９ｂ及び第二送信部３１０ｂは中継装置２０ｂに対応し、第二集約部３０９ｃ及び第二送信部３１０ｃは中継装置２０ｃに対応し、…。
【００６２】
第二集約部３０９のそれぞれは、返答先選択部３０８から受け取った個別パケットを記憶する。ここで個別パケットは、例えば、第２の集約バッファーに登録される。第２の集約バッファーは、例えば、ＲＡＭ３３上のバッファーである。
第二集約部３０９は、第２の集約条件が満たされている場合、条件管理部３１２による指示に基づき、記憶した個別パケットを集約して第四集約パケット６０ｄを生成する。第２の集約条件については、後述する。そして、第二集約部３０９は、生成した第四集約パケット６０ｄを、送信先の中継装置２０に対応する第二送信部３１０に渡す。例えば、第二集約部３０９ａであれば、第四集約パケット６０ｄを第二送信部３１０ａに渡す。一例として、プロセッサー３１が第二集約部３０９として機能する。
【００６３】
第二送信部３１０のそれぞれは、受け取ったパケットを対応する中継装置２０に送信する。第二送信部３１０は、第二集約部３０９から第四集約パケット６０ｄを受け取ったならば、対応する中継装置２０に当該第四集約パケット６０ｄを送信する。例えば、第二送信部３１０ａは、第二集約部３０９ａから受け取った第四集約パケット６０ｄを中継装置２０ａに送信する。一例として、第１の通信Ｉ／Ｆ３５が、第二送信部３１０として機能する。
【００６４】
返答先テーブル３１１は、送信先選択部３０３から受け取った返答先情報を記憶する。返答先テーブル３１１は、例えば、ＲＡＭ３３又は補助記憶デバイス３４などに記憶される。返答先テーブル３１１は、パケットの送信元を記憶する記憶部の一例である。
【００６５】
条件管理部３１２は、複数の第一集約部３０４のうち、第１の集約条件が満たされたものに対し、個別パケットを集約して第二集約パケット６０ｂを生成するように指示する。また、条件管理部３１２は、複数の第二集約部３０９のうち、第２の集約条件が満たされたものに対し、個別パケットを集約して第四集約パケット６０ｄを生成するように指示する。第１の集約条件及び第２の集約条件については、後述する。一例として、プロセッサー３１が、条件管理部３１２として機能する。
【００６６】
図４に示す負荷分散装置３０は、中継装置２０から第一集約パケット６０ａを受信し、第二集約パケット６０ｂを演算装置４０ａに送信し、第三集約パケット６０ｃを演算装置４０から受信し、第四集約パケット６０ｄを中継装置２０に送信する。
しかしながら、演算装置４０は、個別パケットを集約せずに負荷分散装置３０に送信しても良い。この場合について、図６を用いて説明する。図６は、負荷分散装置３０の機能構成の一例を示すブロック図である。
【００６７】
図６に示すように、演算装置４０は、第三集約パケット６０ｃに代えて個別パケット７０ｃを負荷分散装置３０に送信する。個別パケット７０ｃは、第三集約パケット６０ｃに含まれる個別パケットと同様のものである。
第二受信部３０６は、演算装置４０によって送信された個別パケット７０ｃを受信する。そして、第二受信部３０６は、個別パケット７０ｃを受信したならば、当該個別パケット７０ｃを返答先選択部３０８に渡す。
返答先選択部３０８は、第二分離部３０７から個別パケットを受け取った場合と同様の処理をする。
【００６８】
以上より、演算装置４０から個別パケット７０ｃが送信される場合、第二分離部３０７は、不要である。また、演算装置４０が個別パケットを集約して第三集約パケット６０ｃを生成する時間がかからない。さらに、負荷分散装置３０が第三集約パケット６０ｃを分離する時間もかからない。このため、端末装置１０が個別パケットを送信してから応答を受け取るまでの時間が短くなる。また、これにより、制御対象デバイスＤＡに対する制御のリアルタイム性が向上する。
【００６９】
また、負荷分散装置３０は、中継装置２０に送信する個別パケットを集約しなくても良い。この場合について、図７を用いて説明する。図７は、負荷分散装置３０の機能構成の一例を示すブロック図である。
図７に示すように、返答先選択部３０８は、中継装置２０に送信する個別パケット７０ｄを集約しない場合、それぞれの個別パケット７０ｄを、送信先として決定した中継装置２０に対応する第二送信部３１０に渡す。
第二送信部３１０は、返答先選択部３０８から個別パケット７０ｄを受け取ったならば、対応する中継装置２０に当該個別パケット７０ｄを送信する。
【００７０】
以上より、負荷分散装置３０が中継装置２０に送信する個別パケットを集約しない場合、第二集約部３０９は不要である。また、負荷分散装置３０が中継装置２０に送信する個別パケットを集約して第四集約パケット６０ｄを生成する時間がかからない。このため、端末装置１０が個別パケットを送信してから応答を受け取るまでの時間が短くなる。また、これにより、制御対象デバイスＤＡに対する制御のリアルタイム性が向上する。
【００７１】
また、中継装置２０は、端末装置１０から受信した個別パケットを集約せずに負荷分散装置３０に送信しても良い。この場合について、図８を用いて説明する。図８は、負荷分散装置３０の機能構成の一例を示すブロック図である。
【００７２】
図８に示すように、中継装置２０は、第一集約パケット６０ａに代えて個別パケット７０ａを負荷分散装置３０に送信する。個別パケット７０ａは、第一集約パケット６０ａに含まれる個別パケットと同様のものである。
第一受信部３０１は、中継装置２０によって送信された個別パケット７０ａを受信する。そして、第一受信部３０１は、個別パケット７０ａを受信したならば、当該個別パケット７０ａを送信先選択部３０３に渡す。
送信先選択部３０３は、第一分離部３０２から個別パケットを受け取った場合と同様の処理をする。
【００７３】
以上より、中継装置２０から個別パケット７０ａが送信される場合、第一分離部３０２は、不要である。また、中継装置２０が個別パケットを集約して第一集約パケット６０ａを生成する時間がかからない。さらに、第一分離部３０２が第一集約パケット６０ａを分離する時間もかからない。このため、端末装置１０が個別パケットを送信してから応答を受け取るまでの時間が短くなる。また、これにより、制御対象デバイスＤＡに対する制御のリアルタイム性が向上する。
【００７４】
図２〜図５に示す構成のうちのいずれか２つ以上を組み合わせても良い。図２〜図５の構成を組み合わせたものを図６に示す。なお、図６に示す通信システム１では、負荷分散装置３０は、演算装置４０に送信するパケットを集約しなくても良いものとして示している。通信システム１の各装置は、送信するパケットを個別パケットのまま送信するか集約パケットとして送信するかについて、パケットの種別、端末装置１０の種別、中継装置２０の種別、又は演算装置４０の種別などに応じて決定しても良い。また、通信システム１は、送信するパケットを個別パケットとするか集約パケットとするかについて、それぞれ、端末装置１０の負荷、中継装置２０の負荷、演算装置４０の負荷又は各ネットワークの負荷に応じて決定しても良い。例えば、通信システム１は、比較的リアルタイム性が求められるパケットについては個別パケットとして送信し、比較的リアルタイム性が求められないパケットについては集約パケットとして送信しても良い。なお、以下の動作説明では、図６に示す構成の通信システム１を例に説明する。
【００７５】
（動作）
以下、第１実施形態に係る通信システム１の動作を図１０〜図２１などに基づいて説明する。以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。図１０は、端末装置１０のプロセッサー１１による処理のフローチャートである。プロセッサー１１は、ＲＯＭ１２又は補助記憶デバイス１４などに記憶されたプログラムに基づいてこの処理を実行する。図１１及び図１２は、中継装置２０のプロセッサー２１による処理のフローチャートである。プロセッサー２１は、ＲＯＭ２２又は補助記憶デバイス２４などに記憶されたプログラムに基づいてこの処理を実行する。なお、プロセッサー２１は、図１１の処理と図１２の処理とを並行又は並列で処理する。図１３〜図１６は、負荷分散装置３０のプロセッサー３１による処理のフローチャートである。プロセッサー３１は、ＲＯＭ３２又は補助記憶デバイス３４などに記憶されたプログラムに基づいてこの処理を実行する。なお、プロセッサー３１は、図１３の処理と図１４の処理と図１５の処理と図１６の処理とを並行又は並列で処理する。図１７〜図１９は、演算装置４０のプロセッサー４１による処理のフローチャートである。プロセッサー４１は、ＲＯＭ４２又は補助記憶デバイス４４などに記憶されたプログラムに基づいてこの処理を実行する。なお、プロセッサー４１は、図１７の処理と図１８の処理と図１９の処理とを並行又は並列で処理する。なお、プロセッサー１１、プロセッサー２１、プロセッサー３１又はプロセッサー４１がステップＳＮ（Ｎは、自然数。）の処理の後にステップＳ（Ｎ＋１）へと進む場合、このことを説明する記載を省略する場合がある。
また、図２０及び図２１は、通信システム１の情報の流れの一例を示すシーケンス図である。なお、図２０及び図２１は、通信システム１における第１実施形態に係る情報の流れを網羅するものではなく、図示しない情報の流れが存在しても良い。なお、図２１は図２０の続きである。
【００７６】
図１０のステップＳ１０１において端末装置１０のプロセッサー１１は、負荷分散装置３０を宛先とする個別パケットを生成するか否かを判定する。すなわち、プロセッサー１１は、例えば、制御対象デバイスＤＡから検知信号５１が入力されたか否かを確認する。プロセッサー１１は、個別パケットを生成しないならば、ステップＳ１１１においてＮｏと判定してステップＳ１０１を繰り返す。対して、プロセッサー１１は、個別パケットを生成するならば、ステップＳ１０１においてＹｅｓと判定してステップＳ１０２へと進む。
【００７７】
ステップＳ１０２においてプロセッサー１１は、負荷分散装置３０を宛先とする個別パケットを生成する。例えば、当該個別パケットは、ステップＳ１０１で入力された検知信号５１が含まれる。
【００７８】
ステップＳ１０３においてプロセッサー１１は、ステップＳ１０２で生成した個別パケットを中継装置２０に送信するように第２の通信Ｉ／Ｆ１６に対して指示する。この指示を受けて第２の通信Ｉ／Ｆ１６は、当該個別パケットを中継装置２０に送信する。送信された当該個別パケットは、中継装置２０の第１の通信Ｉ／Ｆ２５によって受信される。
【００７９】
一方、図１１のステップＳ２０１において中継装置２０のプロセッサー２１は、第１の通信Ｉ／Ｆ２５によって端末装置１０から送信されたパケットが受信されたか否かを判定する。プロセッサー２１は、端末装置１０から送信されたパケットが受信されないならば、ステップＳ２０１においてＮｏと判定してステップＳ２０２へと進む。
【００８０】
ステップＳ２０２においてプロセッサー２１は、第１の通信Ｉ／Ｆ２５によって負荷分散装置３０から送信されたパケットが受信されたか否かを判定する。プロセッサー２１は、負荷分散装置３０から送信されたパケットが受信されないならば、ステップＳ２０２においてＮｏと判定してステップＳ２０１へと戻る。かくして、プロセッサー２１は、端末装置１０から送信されたパケットが受信されるか、負荷分散装置３０から送信されたパケットが受信されるまでステップＳ２０１及びステップＳ２０２を繰り返す。
【００８１】
プロセッサー２１は、ステップＳ２０１及びステップＳ２０２の待受状態にあるときに端末装置１０から送信されたパケットが受信されたならば、ステップＳ２０１においてＹｅｓと判定してステップＳ２０３へと進む。
【００８２】
ステップＳ２０３においてプロセッサー２１は、ステップＳ２０１で受信されたパケットを集約するか否かを判定する。プロセッサー２１は、例えば、パケットの種別、中継装置２０の稼働状況、又はネットワークＮＷ２の負荷などに基づいて集約するか否かを判定する。一例として、プロセッサー２１は、パケットの種別が、特にリアルタイム性が要求されるパケットである場合に、集約しないと判定する。なお、特にリアルタイム性が要求されると判定されるパケットは、例えば制御対象デバイスＤＡが自動改札機であるパケットである。自動改札機は、自動券売機又は自動精算機などよりもリアルタイム性が要求されるためである。プロセッサー２１は、パケットを集約しないと判定したならば、ステップＳ２０３においてＮｏと判定してステップＳ２０４へと進む。
【００８３】
ステップＳ２０４においてプロセッサー２１は、ステップＳ２０１で受信された個別パケットを負荷分散装置３０に送信するように第１の通信Ｉ／Ｆ２５に対して指示する。この指示を受けて第１の通信Ｉ／Ｆ２５は、当該個別パケットを負荷分散装置３０に送信する。送信された当該個別パケットは、負荷分散装置３０の第１の通信Ｉ／Ｆ３５によって受信される。当該個別パケットは、個別パケット７０ａである。また、個別パケット７０ａは、第１の個別パケットの一例である。プロセッサー２１は、ステップＳ２０４の処理の後、ステップＳ２０１へと戻る。
【００８４】
対して、プロセッサー２１は、パケットを集約するならば、ステップＳ２０３においてＹｅｓと判定してステップＳ２０５へと進む。
ステップＳ２０５においてプロセッサー２１は、ステップＳ２０１で受信された個別パケットを中継集約バッファーに登録する。プロセッサー２１は、ステップＳ２０５の処理の後、ステップＳ２０１へと戻る。
【００８５】
また、図１２のステップＳ２１１においてプロセッサー２１は、中継集約条件を満たしているか否かを判定する。プロセッサー２１は、中継集約条件を満たしていないと判定するならば、ステップＳ２１１においてＮｏと判定してステップＳ２１１を繰り返す。中継集約条件は、例えば、以下の（１．１）〜（１．３）の条件のうちの少なくとも１つ以上を含む。
（１．１）中継集約バッファーに登録された個別パケットを前回集約してから一定時間以上経過した。
（１．２）中継集約バッファーに登録された個別パケットの数が一定以上になった。
（１．３）中継集約バッファーに登録された個別パケットのデータ容量の合計が一定以上になった。
プロセッサー２１は、例えば、中継集約条件に含まれる上記（１．１）〜（１．３）に示すような条件のうちのいずれかを満たすと判定したならば、中継集約条件を満たしていると判定し、ステップＳ２１１においてＹｅｓと判定してステップＳ２１２へと進む。
【００８６】
ステップＳ２１２においてプロセッサー２１は、中継集約バッファーに登録された個別パケットを集約して第一集約パケット６０ａを生成する。
【００８７】
ステップＳ２１３においてプロセッサー２１は、ステップＳ２１２で生成した第一集約パケット６０ａを負荷分散装置３０に送信するように第１の通信Ｉ／Ｆ２５に対して指示する。この指示を受けて第１の通信Ｉ／Ｆ２５は、当該第一集約パケット６０ａを負荷分散装置３０に送信する。送信された当該第一集約パケット６０ａは、負荷分散装置３０の第１の通信Ｉ／Ｆ３５によって受信される。プロセッサー２１は、ステップＳ２１３の処理の後、ステップＳ２１１へと戻る。
【００８８】
一方、図１３のステップＳ３０１において負荷分散装置３０のプロセッサー３１は、第１の通信Ｉ／Ｆ３５によって、中継装置２０から送信されたパケットが受信されるのを待ち受けている。プロセッサー３１は、中継装置２０から送信されたパケットが受信されたならば、ステップＳ３０１においてＹｅｓと判定してステップＳ３０１へと戻る。さらに、プロセッサー３１は、プロセス又はスレッドなどを新たに生成する。そして、プロセッサー３１は、当該プロセス又はスレッドなどにより、ステップＳ３０２〜ステップＳ３１０に示す処理を実行する。すなわち、プロセッサー１１は、ステップＳ３０２〜ステップＳ３１０に示す処理を、ステップＳ３０１に戻る処理と並行又は並列で実行する。なお、当該ステップＳ３０２〜ステップＳ３１０に示す処理は、当該ステップＳ３０２の直前のステップＳ３０１で受信されたパケットを対象として実行される。当該パケットを、以下「第１の対象パケット」と称するものとする。
【００８９】
ステップＳ３０２においてプロセッサー３１は、第１の対象パケットが集約パケットであるか否かを判定する。プロセッサー３１は、第１の対象パケットが集約パケットであるならば、ステップＳ３０２においてＹｅｓと判定してステップＳ３０３へと進む。
【００９０】
ステップＳ３０３においてプロセッサー３１は、第１の対象パケットを個別パケットに分離する。分離された個別パケットは、第１の個別パケットの一例である。集約パケットである第１の対象パケットは、第２の集約パケットの一例である。ステップＳ３０３の処理を実行するプロセッサー３１は、第１の分離部の一例である。
【００９１】
対して、プロセッサー３１は、第１の対象パケットが集約パケットでないならば、ステップＳ３０２においてＮｏと判定してステップＳ３０４へと進む。また、プロセッサー３１は、ステップＳ３０３の処理の後、ステップＳ３０４へと進む。
ステップＳ３０４においてプロセッサー３１は、送信先を選択する個別パケットを決定する。なお、送信先を選択する個別パケットを送信選択パケットと称するものとする。プロセッサー３１は、第１の対象パケットが個別パケットである場合には、当該個別パケットを送信選択パケットとして決定する。また、プロセッサー３１は、第１の対象パケットが集約パケットである場合には、第１の対象パケットから分離された個別パケットのうち、未だ送信選択パケットとして決定されていない個別パケットを処理対象として決定する。
【００９２】
ステップＳ３０５においてプロセッサー３１は、送信選択パケットをどの演算装置４０に送信するか選択する。プロセッサー３１は、選択した演算装置４０を送信先として決定する。プロセッサー３１は、送信選択パケットの送信先を、例えば、以下の（ａ）〜（ｃ）のいずれかの方法を用いて選択する。ステップＳ３０５の処理を実行するプロセッサー３１は、第１の決定部の一例である。
【００９３】
（ａ）第１の方法
送信先を選択する第１の方法について図２２を用いて説明する。図２２は、送信先を選択する第１の方法を説明するための図である。なお、説明を簡略化するため、以下の説明では中継装置２０を省略して記述する。図２２でも中継装置２０を省略して示している。
複数の端末装置１０から送信された個別パケット７０ａには、端末装置１０毎に異なる端末ＩＤ７１が格納されている。送信先選択部３０３（プロセッサー３１）は、端末ＩＤ７１を読み取り、送信先の演算装置４０を決定する。送信先選択部３０３は、たとえば、端末ＩＤ７１を演算装置４０の台数で割った余りが、演算装置ＩＤとなるように送信先を決定する。なお、演算装置ＩＤは、演算装置４０のそれぞれにユニークに割り当てられた識別情報である。以上の方法により、送信先選択部３０３は、図８に示すように、演算装置４０に均等に個別パケットの送信先を割り当てることができる。また、送信先選択部３０３は、端末ＩＤ７１を入力値、演算装置４０の台数を出力の閾値とするハッシュ関数又は射影などにより、送信先の演算装置４０を決定しても良い。このようにすることで、特定の端末装置１０は、特定の演算装置４０と通信を行うことになる。したがって、演算装置４０で特定の情報又は状態を保持するトランザクションを行う場合でも、負荷分散が可能となる。
【００９４】
（ｂ）第２の方法
送信先を選択する第２の方法について図２３を用いて説明する。図２３は、送信先を選択する第２の方法を説明するための図である。第２の方法では、送信先選択部３０３（プロセッサー３１）は、端末ＩＤ７１とトランザクションＩＤ７２とを用いて送信先を決定する。例えば、送信先選択部３０３は、端末ＩＤ７１とトランザクションＩＤ７２の和を、演算装置４０の台数で割った余りが演算装置ＩＤとなるように送信差を決定する。また、送信先選択部３０３は、端末ＩＤ７１とトランザクションＩＤ７２の和を入力値、演算装置４０の台数を出力の閾値とするハッシュ関数又は射影などにより、送信先の演算装置４０を決定しても良い。また、送信先選択部３０３は、端末ＩＤ７１とトランザクションＩＤ７２との和に代えて、端末ＩＤ７１とトランザクションＩＤ７２を入力とする任意の関数を用いても良い。
第１の方法のように端末ＩＤ７１だけで送信先の演算装置４０を決定する場合、特定の端末装置１０の利用者が多い場合には、特定の演算装置４０の負荷が他の演算装置４０の負荷に比べて高くなってしまう可能性がある。これに対し、第２の方法では、送信先の決定に端末ＩＤ７１だけでなくトランザクションＩＤ７２も用いるので、特定の端末装置１０の利用者が多いような場合でも、特定の演算装置４０の負荷が他の演算装置４０の負荷に比べて高くなることを防ぐことができる。
【００９５】
（ｃ）第３の方法
送信先を選択する第３の方法について図２４及び図２５を用いて説明する。図２４及び図２５は、送信先を選択する第３の方法を説明するための図である。第３の方法では、送信先選択部３０３（プロセッサー３１）は、利用者ＩＤ７３を用いて送信先を決定する。例えば、送信先選択部３０３は、利用者ＩＤ７３を、演算装置４０の台数で割った余りが演算装置ＩＤとなるように送信差を決定する。これにより、同じ利用者ＩＤ７３を持つパケットを特定の演算装置４０に割り当てることができる。また、送信先選択部３０３は、利用者ＩＤ７３を入力値、演算装置４０の台数を出力の閾値とするハッシュ関数又は射影などにより、送信先の演算装置４０を決定しても良い。
第１の方法及び第２の方法のように、端末ＩＤ７１、又は端末ＩＤ７１及びトランザクションＩＤ７２を用いる場合、端末装置１０を跨いだトランザクションを行う場合に演算装置４０で特定の情報又は状態などを保持することができない。例えば、端末装置１０に接続された制御対象デバイスＤＡが自動改札機である場合、利用者は入場時と出場時で異なる自動改札機を通過するため、端末装置１０も入場時と出常時で異なるものを利用することとなる。入場時の送信先である演算装置４０と出場時の送信先である演算装置４０とが同一の演算装置４０であるならば、当該演算装置４０に入場時の情報などを保持しておくことで、通信システム１は、運賃の割引などのサービスを提供することができる。第３の方法では、同じ利用者ＩＤ７３を持つパケットを特定の演算装置４０に割り当てるので、図２４及び図２５に示すように入場時の送信先である演算装置４０と出場時の送信先である演算装置４０とが同一の演算装置４０となる。
【００９６】
ステップＳ３０６においてプロセッサー３１は、送信選択パケットの送信元のアドレスを、送信選択パケットを識別する情報に関連付けて返答先テーブル３１１に記憶する。
【００９７】
ステップＳ３０７においてプロセッサー３１は、送信選択パケットを集約するか否かを判定する。プロセッサー３１は、例えば、パケットの種別、負荷分散装置３０の稼働状況、又はネットワークＮＷ３の負荷などに基づいて集約するか否かを判定する。一例として、プロセッサー３１は、パケットの種別が、特にリアルタイム性が要求されるパケットである場合に、集約しないと判定する。プロセッサー３１は、送信選択パケットを集約すると判定するならば、ステップＳ３０７においてＹｅｓと判定してステップＳ３０８へと進む。
【００９８】
ステップＳ３０８においてプロセッサー３１は、送信選択パケットを第１の集約バッファーに登録する。当該第１の集約バッファーは、ステップＳ３０５で選択された送信先に対応する第１の集約バッファーである。
【００９９】
対して、プロセッサー３１は、送信選択パケットを集約しないならば、ステップＳ３０７においてＮｏと判定してステップＳ３０９へと進む。
ステップＳ３０９においてプロセッサー３１は、送信選択パケットを演算装置４０に送信するように第２の通信Ｉ／Ｆ３６に対して指示する。この指示を受けて第２の通信Ｉ／Ｆ３６は、当該送信選択パケットを演算装置４０に送信する。送信された当該送信選択パケットは、演算装置４０の通信Ｉ／Ｆ４５によって受信される。当該送信選択パケットは、個別パケット７０ｂである。
【０１００】
プロセッサー３１は、ステップＳ３０８又はステップＳ３０９の処理の後、ステップＳ３１０へと進む。
ステップＳ３１０においてプロセッサー３１は、送信先が選択されていない個別パケットがあるか否かを判定する。プロセッサー３１は、第１の対象パケットが個別パケットである場合には、送信先が選択されていない個別パケットが無いと判定する。そして、プロセッサー３１は、第１の対象パケットが集約パケットである場合には、第１の対象パケットから分離された個別パケットのうち、未だ送信選択パケットとして決定されていない個別パケットがある場合に、送信先が選択されていない個別パケットがあると判定する。対して、プロセッサー３１は、未だ送信選択パケットとして決定されていない個別パケットが無い場合には、送信先が選択されていない個別パケットが無いと判定する。プロセッサー３１は、送信先が選択されていない個別パケットがあると判定するならば、ステップＳ３１０においてＹｅｓと判定してステップＳ３０５へと戻る。対して、プロセッサー３１は、送信先が選択されていない個別パケットがないと判定するならば、ステップＳ３１０においてＮｏと判定してステップＳ３０２〜ステップＳ３１０の処理を実行しているプロセス又はスレッドなどを終了する。
【０１０１】
また、図１４のステップＳ３１１においてプロセッサー３１は、第１の集約バッファーのそれぞれについて第１の集約条件を満たしているか否かを判定する。プロセッサー３１は、いずれの第１の集約バッファーも第１の集約条件を満たしていないと判定するならば、ステップＳ３１１においてＮｏと判定してステップＳ３１１を繰り返す。第１の集約条件は、たとえば、以下の（２．１）〜（２．３）の条件のうちの少なくとも１つ以上を含む。
（２．１）第１の集約バッファーに登録された個別パケットを前回集約してから一定時間以上経過した。
（２．２）第１の集約バッファーに登録された個別パケットの数が一定以上になった。
（２．３）第１の集約バッファーに登録された個別パケットのデータ容量の合計が一定以上になった。
プロセッサー２１は、第１の集約条件に含まれる上記（２．１）〜（２．３）に示すような条件のうちのいずれかを満たす第１の集約バッファーがあると判定したならば、ステップＳ３１１においてＹｅｓと判定してステップＳ３１１へと戻る。さらに、プロセッサー３１は、プロセス又はスレッドなどを新たに生成する。そして、プロセッサー３１は、当該プロセス又はスレッドなどにより、ステップＳ３１２及びステップＳ３１３に示す処理を開始する。すなわち、プロセッサー１１は、ステップＳ３１２から始まる処理を、ステップＳ３０１に戻る処理と並行又は並列で実行する。なお、当該ステップＳ３１２及びステップＳ３１３に示す処理は、当該ステップＳ３０２の直前のステップＳ３０１で第１の集約条件を満たすと判定された１つの第１の集約バッファーを対象として実行される。当該第１の集約バッファーを、以下「対象第１の集約バッファー」と称するものとする。
【０１０２】
ステップＳ３１２においてプロセッサー３１は、対象第１の集約バッファーに登録された個別パケットを集約して第二集約パケット６０ｂを生成する。ステップＳ３１２の処理を実行するプロセッサー３１は、第１の集約部の一例である。第二集約パケット６０ｂは、第１の集約パケットの一例である。
【０１０３】
ステップＳ３１３においてプロセッサー３１は、ステップＳ３１２で生成した第二集約パケット６０ｂを、対象第１の集約バッファーに対応する演算装置４０に送信するように第２の通信Ｉ／Ｆ３６に対して指示する。この指示を受けて第２の通信Ｉ／Ｆ３６は、当該第二集約パケット６０ｂを当該演算装置４０に送信する。送信された第二集約パケット６０ｂは、当該演算装置４０の通信Ｉ／Ｆ４５によって受信される。プロセッサー３１は、ステップＳ３１２及びステップＳ３１３の処理を実行しているプロセス又はスレッドなどを終了する。
【０１０４】
一方、図１７のステップＳ４０１において演算装置４０のプロセッサー４１は、通信Ｉ／Ｆ４５によってパケットが受信されるのを待ち受けている。プロセッサー４１は、パケットが受信されたならば、ステップＳ４０１においてＹｅｓと判定してステップＳ４０２へと進む。
【０１０５】
ステップＳ４０２においてプロセッサー４１は、ステップＳ４０１で受信されたパケットが集約パケットであるか否かを判定する。プロセッサー４１は、ステップＳ４０１で受信されたパケットが集約パケットであるならば、ステップＳ４０２においてＹｅｓと判定してステップＳ４０３へと進む。
【０１０６】
ステップＳ４０３においてプロセッサー４１は、ステップＳ４０１で受信されたパケットを個別パケットに分離する。
【０１０７】
ステップＳ４０４においてプロセッサー４１は、ステップＳ４０３において分離された個別パケットを処理バッファーに登録する。プロセッサー４１は、ステップＳ４０４の処理の後、ステップＳ４０１へと戻る。
【０１０８】
対して、プロセッサー４１は、ステップＳ４０１で受信されたパケットが集約パケットでないならば、ステップＳ４０２においてＮｏと判定してステップＳ４０５へと進む。
ステップＳ４０５においてプロセッサー４１は、ステップＳ４０１で受信された個別パケットを処理バッファーに登録する。プロセッサー４１は、ステップＳ４０５の処理の後、ステップＳ４０１へと戻る。
【０１０９】
また、図１８のステップＳ４１１においてプロセッサー４１は、処理待ちの個別パケットが処理バッファーに登録されているか否かを判定する。プロセッサー４１は、処理バッファーに個別パケットが登録されていないならば、ステップＳ４１１においてＮｏと判定してステップＳ４１２へと進む。
【０１１０】
ステップＳ４１２においてプロセッサー４１は、処理対象の個別パケットを決定する。処理対象のパケットは、例えば、処理バッファーに登録されている個別パケットの中で最初に処理バッファーに登録されたものである。プロセッサー４１は、処理対象として決定した個別パケットを処理バッファーから登録削除する。プロセッサー４１は、ステップＳ４１の処理の後、ステップＳ４１１へと戻る。さらに、プロセッサー４１は、プロセス又はスレッドなどを新たに生成する。そして、プロセッサー４１は、当該プロセス又はスレッドなどにより、ステップＳ４１３〜ステップＳ４１６に示す処理を開始する。すなわち、プロセッサー４１は、ステップＳ４１３〜ステップＳ４１６に示す処理を、ステップＳ４１１へと戻る処理と並行又は並列で実行する。なお、当該ステップＳ４１３〜ステップＳ４１６に示す処理は、当該ステップＳ４１３の直前のステップＳ４１２で処理対象として決定された個別パケットを対象として実行される。当該個別パケットを、以下「処理対象パケット」と証するものとする。
【０１１１】
ステップＳ４１３においてプロセッサー４１は、処理対象パケットに含まれるデータによって要求される処理を実行する。
【０１１２】
ステップＳ４１４においてプロセッサー４１は、ステップＳ４１３の処理に対応する応答として、個別パケットを生成する。当該個別パケットは、処理対象パケットの送信元の端末装置１０を宛先として送信される。当該個別パケットは、第２の個別パケットの一例である。
【０１１３】
ステップＳ４１５においてプロセッサー４１は、ステップＳ４１４で生成した個別パケットを集約するか否かを判定する。プロセッサー４１は、例えば、パケットの種別、演算装置４０の稼働状況、又はネットワークＮＷ３の負荷などに基づいて集約するか否かを判定する。一例として、プロセッサー４１は、パケットの種別が、特にリアルタイム性が要求されるパケットである場合に、集約しないと判定する。プロセッサー４１は、個別パケットを集約するならば、ステップＳ４１５においてＹｅｓと判定してステップＳ４１６へと進む。
【０１１４】
ステップＳ４１６においてプロセッサー２１は、ステップＳ４１４で生成した個別パケットを中継集約バッファーに登録する。
【０１１５】
対して、プロセッサー４１は、個別パケットを集約しないならば、ステップＳ４１５においてＮｏと判定してステップＳ４１７へと進む。
ステップＳ４１７においてプロセッサー４１は、ステップＳ４１４で生成した個別パケットを負荷分散装置３０に送信するように通信Ｉ／Ｆ４５に対して指示する。この指示を受けて通信Ｉ／Ｆ４５は、当該個別パケットを負荷分散装置３０に送信する。送信された当該個別パケットは、負荷分散装置３０の第１の通信Ｉ／Ｆ３５によって受信される。当該個別パケットは、個別パケット７０ｃである。
プロセッサー４１は、ステップＳ４１６又はステップＳ４１７の処理の後、ステップＳ４１３〜ステップＳ４１７の処理を実行しているプロセス又はスレッドなどを終了する。
【０１１６】
また、図１９のステップＳ４２１においてプロセッサー４１は、演算集約条件を満たしているか否かを判定する。プロセッサー４１は、演算集約条件を満たしていないと判定するならば、ステップＳ４２１においてＮｏと判定してステップＳ４２１を繰り返す。演算集約条件は、例えば、以下の（４．１）〜（４．３）の条件のうちの少なくとも１つ以上を含む。
（３．１）演算集約バッファーに登録された個別パケットを前回集約してから一定時間以上経過した。
（３．２）演算集約バッファーに登録された個別パケットの数が一定以上になった。
（３．３）演算集約バッファーに登録された個別パケットのデータ容量の合計が一定以上になった。
プロセッサー４１は、例えば、演算集約条件に含まれる上記（３．１）〜（３．３）に示すような条件のうちのいずれかを満たすと判定したならば、演算集約条件を満たしていると判定し、ステップＳ４２１においてＹｅｓと判定してステップＳ４２２へと進む。
【０１１７】
ステップＳ４２２においてプロセッサー４１は、演算集約バッファーに登録された個別パケットを集約して第三集約パケット６０ｃを生成する。第三集約パケット６０ｃは、第３の集約パケットの一例である。
【０１１８】
ステップＳ４２３においてプロセッサー４１は、ステップＳ４２２で生成した第三集約パケット６０ｃを負荷分散装置３０に送信するように通信Ｉ／Ｆ４５に対して指示する。この指示を受けて通信Ｉ／Ｆ４５は、当該第三集約パケット６０ｃを負荷分散装置３０に送信する。送信された当該第三集約パケット６０ｃは、負荷分散装置３０の第２の通信Ｉ／Ｆ３６によって受信される。プロセッサー４１は、ステップＳ４２３の処理の後、ステップＳ４２１へと戻る。
【０１１９】
一方、図１５のステップＳ３２１において負荷分散装置３０のプロセッサー３１は、第１の通信Ｉ／Ｆ３５によって、演算装置４０から送信されたパケットが受信されるのを待ち受けている。プロセッサー３１は、演算装置４０から送信されたパケットが受信されたならば、ステップＳ３２１においてＹｅｓと判定してステップＳ３２１へと戻る。さらに、プロセッサー３１は、プロセス又はスレッドなどを新たに生成する。そして、プロセッサー３１は、当該プロセス又はスレッドなどにより、ステップＳ３２２〜ステップＳ３３０に示す処理を実行する。すなわち、プロセッサー１１は、ステップＳ３２２〜ステップＳ３３０に示す処理を、ステップＳ３２１に戻る処理と並行又は並列で実行する。なお、当該ステップＳ３２２〜ステップＳ３３０に示す処理は、当該ステップＳ３２２の直前のステップＳ３２１で受信されたパケットを対象として実行される。当該パケットを、以下「第２の対象パケット」と称するものとする。
【０１２０】
ステップＳ３２２においてプロセッサー３１は、第２の対象パケットが集約パケットであるか否かを判定する。プロセッサー３１は、第２の対象パケットが集約パケットであるならば、ステップＳ３２２においてＹｅｓと判定してステップＳ３２３へと進む。
【０１２１】
ステップＳ３２３においてプロセッサー３１は、第２の対象パケットを個別パケットに分離する。分離された個別パケットは、第２の個別パケットの一例である。ステップＳ３２３の処理を実行するプロセッサー３１は、第２の分離部の一例である。
【０１２２】
対して、プロセッサー３１は、第２の対象パケットが集約パケットでないならば、ステップＳ３２２においてＮｏと判定してステップＳ３２４へと進む。また、プロセッサー３１は、ステップＳ３０３の処理の後、ステップＳ３２４へと進む。
ステップＳ３２４においてプロセッサー３１は、送信先を選択する個別パケットを決定する。なお、送信先を選択する個別パケットを返信選択パケットと称するものとする。プロセッサー３１は、第２の対象パケットが個別パケットである場合には、当該個別パケットを返信選択パケットとして決定する。また、プロセッサー３１は、第２の対象パケットが集約パケットである場合には、第２の対象パケットから分離された個別パケットのうち、未だ返信選択パケットとして決定されていない個別パケットを処理対象として決定する。
【０１２３】
ステップＳ３２５においてプロセッサー３１は、返答先テーブル３１１を参照して返信選択パケットをどの中継装置２０に送信するか選択する。なお、プロセッサー３１は、返信選択パケットの識別情報によってどの中継装置２０を送信先として選択すれば良いか特定する。ステップＳ３２５の処理を実行するプロセッサー３１は、第２の決定部の一例である。
【０１２４】
ステップＳ３２６においてプロセッサー３１は、返信選択パケットを集約するか否かを判定する。プロセッサー３１は、例えば、パケットの種別、負荷分散装置３０の稼働状況、又はネットワークＮＷ２の負荷などに基づいて集約するか否かを判定する。一例として、プロセッサー３１は、パケットの種別が、特にリアルタイム性が要求されるパケットである場合に、集約しないと判定する。プロセッサー３１は、返信選択パケットを集約すると判定するならば、ステップＳ３２６においてＹｅｓと判定してステップＳ３２７へと進む。
【０１２５】
ステップＳ３２７においてプロセッサー３１は、返信選択パケットを第２の集約バッファーに登録する。当該第２集約バッファーは、ステップＳ３２５で選択された送信先に対応する第２の集約バッファーである。
【０１２６】
対して、プロセッサー３１は、返信選択パケットを集約しないならば、ステップＳ３２６においてＮｏと判定してステップＳ３２８へと進む。
ステップＳ３２８においてプロセッサー３１は、返信選択パケットを演算装置４０に送信するように第２の通信Ｉ／Ｆ３６に対して指示する。この指示を受けて第２の通信Ｉ／Ｆ３６は、当該返信選択パケットを演算装置４０に送信する。送信された当該返信選択パケットは、演算装置４０の通信Ｉ／Ｆ４５によって受信される。当該返信選択パケットは、個別パケット７０ｄである。
【０１２７】
プロセッサー３１は、ステップＳ３２７又はステップＳ３２８の処理の後、ステップＳ３２９へと進む。
ステップＳ３２９においてプロセッサー３１は、送信先が選択されていない個別パケットがあるか否かを判定する。プロセッサー３１は、第２の対象パケットが個別パケットである場合には、送信先が選択されていない個別パケットが無いと判定する。そして、プロセッサー３１は、第２の対象パケットが集約パケットである場合には、第２の対象パケットから分離された個別パケットのうち、未だ返信選択パケットとして決定されていない個別パケットがある場合に、送信先が選択されていない個別パケットがあると判定する。対して、プロセッサー３１は、未だ返信選択パケットとして決定されていない個別パケットが無い場合には、送信先が選択されていない個別パケットが無いと判定する。プロセッサー３１は、送信先が選択されていない個別パケットがあると判定するならば、ステップＳ３２９においてＹｅｓと判定してステップＳ３２５へと戻る。対して、プロセッサー３１は、送信先が選択されていない個別パケットがないと判定するならば、ステップＳ３２９においてＮｏと判定してステップＳ３２２〜ステップＳ３２９の処理を実行しているプロセス又はスレッドなどを終了する。
【０１２８】
また、図１６のステップＳ３３１においてプロセッサー３１は、第２の集約バッファーのそれぞれについて第２の集約条件を満たしているか否かを判定する。プロセッサー３１は、いずれの第２の集約バッファーも第２の集約条件を満たしていないと判定するならば、ステップＳ３３１においてＮｏと判定してステップＳ３３１を繰り返す。第２の集約条件は、たとえば、以下の（４．１）〜（４．３）の条件のうちの少なくとも１つ以上を含む。
（４．１）第２の集約バッファーに登録された個別パケットを前回集約してから一定時間以上経過した。
（４．２）第２の集約バッファーに登録された個別パケットの数が一定以上になった。
（４．３）第２の集約バッファーに登録された個別パケットのデータ容量の合計が一定以上になった。
プロセッサー２１は、第２の集約条件に含まれる上記（４．１）〜（４．３）に示すような条件のうちのいずれかを満たす第２の集約バッファーがあると判定したならば、ステップＳ３３１においてＹｅｓと判定してステップＳ３３１へと戻る。さらに、プロセッサー３１は、プロセス又はスレッドなどを新たに生成する。そして、プロセッサー３１は、当該プロセス又はスレッドなどにより、ステップＳ３３２及びステップＳ３３３に示す処理を開始する。すなわち、プロセッサー１１は、ステップＳ３３２から始まる処理を、ステップＳ３０１に戻る処理と並行又は並列で実行する。なお、当該ステップＳ３３２及びステップＳ３３３に示す処理は、当該ステップＳ３０２の直前のステップＳ３０１で第２の集約条件を満たすと判定された１つの第２の集約バッファーを対象として実行される。当該第２の集約バッファーを、以下「対象第２の集約バッファー」と称するものとする。
【０１２９】
ステップＳ３３２においてプロセッサー３１は、対象第２の集約バッファーに登録された個別パケットを集約して第四集約パケット６０ｄを生成する。第四集約パケット６０ｄは、第４の集約パケットの一例である。ステップＳ３３２の処理を実行するプロセッサー３１は、第２の集約部の一例である。
【０１３０】
ステップＳ３３３においてプロセッサー３１は、ステップＳ３３２で生成した第四集約パケット６０ｄを、対象第２の集約バッファーに対応する演算装置４０に送信するように第２の通信Ｉ／Ｆ３６に対して指示する。この指示を受けて第２の通信Ｉ／Ｆ３６は、当該第四集約パケット６０ｄを当該演算装置４０に送信する。送信された第四集約パケット６０ｄは、当該演算装置４０の通信Ｉ／Ｆ４５によって受信される。プロセッサー３１は、ステップＳ３３２及びステップＳ３３３の処理を実行しているプロセス又はスレッドなどを終了する。
【０１３１】
一方、中継装置２０のプロセッサー２１は、ステップＳ２０１及びステップＳ２０２の待受状態にあるときに負荷分散装置３０から送信されたパケットが受信されたならば、ステップＳ２０２においてＹｅｓと判定してステップＳ２０６へと進む。
【０１３２】
ステップＳ２０６においてプロセッサー４１は、ステップＳ２０２で受信されたパケットが集約パケットであるか否かを判定する。プロセッサー４１は、ステップＳ２０２で受信されたパケットが集約パケットであるならば、ステップＳ２０６においてＹｅｓと判定してステップＳ２０７へと進む。
【０１３３】
ステップＳ２０７においてプロセッサー４１は、ステップＳ２０２で受信されたパケットを個別パケットに分離する。
【０１３４】
ステップＳ２０８においてプロセッサー２１は、ステップＳ２０７で分離した個別パケットのそれぞれを、それぞれの宛先である端末装置１０に送信するように第１の通信Ｉ／Ｆ２５に対して指示する。この指示を受けて第１の通信Ｉ／Ｆ２５は、当該個別パケットを各端末装置１０に送信する。送信された当該個別パケットは、各端末装置１０の第２の通信Ｉ／Ｆ１６によって受信される。プロセッサー２１は、ステップＳ２０８の処理の後、ステップＳ２０１へと戻る。
【０１３５】
対して、プロセッサー４１は、ステップＳ２０２で受信されたパケットが個別パケットであるならば、ステップＳ２０６においてＮｏと判定してステップＳ２０９へと進む。
ステップＳ２０９においてプロセッサー２１は、ステップＳ２０２で受信された個別パケットを、宛先である端末装置１０に送信するように第１の通信Ｉ／Ｆ２５に対して指示する。この指示を受けて第１の通信Ｉ／Ｆ２５は、当該個別パケットを端末装置１０に送信する。送信された当該個別パケットは、端末装置１０の第２の通信Ｉ／Ｆ１６によって受信される。プロセッサー２１は、ステップＳ２０９の処理の後、ステップＳ２０１へと戻る。
【０１３６】
一方、図１０のステップＳ１０４において端末装置１０のプロセッサー１１は、第２の通信Ｉ／Ｆ１６によって、ステップＳ１０３で送信した個別パケットに対する応答としての個別パケットが受信されるのを待ち受けている。プロセッサー１１は、当該個別パケットが受信されたならば、ステップＳ１０４においてＹｅｓと判定してステップＳ１０５へと進む。
【０１３７】
ステップＳ１０５においてプロセッサー１１は、ステップＳ１０４で受信された個別パケットに含まれるデータに基づく処理を行う。例えば、プロセッサー１１は、制御対象デバイスＤＡを制御するべく、制御信号５２を制御対象デバイスＤＡに送信するように第１の通信Ｉ／Ｆ１５に対して指示する。この指示を受けて第１の通信Ｉ／Ｆ１５は、当該制御信号５２を制御対象デバイスＤＡに送信する。送信された当該制御信号５２は、制御対象デバイスＤＡによって受信される。プロセッサー１１は、ステップＳ１０５の処理の後、ステップＳ１０１へと戻る。
【０１３８】
第１実施形態の通信システム１によれば、負荷分散装置３０は、演算装置４０に送信する個別パケットを集約して集約パケットとして送信する。これにより、演算装置４０に個別パケットを集約せずに送信する場合よりもネットワークＮＷ３の負荷及び演算装置４０の通信Ｉ／Ｆ４５の負荷などが軽減される。また、これにより、制御対象デバイスＤＡに対する制御のリアルタイム性が向上する。
【０１３９】
第１実施形態の通信システム１によれば、負荷分散装置３０は、中継装置２０から送信された集約パケットを個別パケットに分離する。したがって、負荷分散装置３０は、中継装置２０が集約パケットを送信してきた場合でも、正常に処理が可能である。中継装置２０が集約パケットを送信することで、個別パケットを集約せずに送信する場合よりも、ネットワークＮＷ２の負荷及び負荷分散装置３０の第１の通信Ｉ／Ｆ３５の負荷などが軽減される。また、これにより、制御対象デバイスＤＡに対する制御のリアルタイム性が向上する。
【０１４０】
第１実施形態の通信システム１によれば、負荷分散装置３０は、返答先テーブル３１１に、パケットの送信元を記憶しておく。これにより、負荷分散装置３０は、演算装置４０から送信された応答としてのパケットを正しい端末装置１０及び中継装置２０に送信することができる。
【０１４１】
第１実施形態の通信システム１によれば、負荷分散装置３０は、演算装置４０から送信された集約パケットを個別パケットに分離する。したがって、負荷分散装置３０は、演算装置４０が集約パケットを送信してきた場合でも、正常に処理が可能である。演算装置４０が集約パケットを送信することで、個別パケットを集約せずに送信する場合よりも、ネットワークＮＷ３の負荷及び負荷分散装置３０の第２の通信Ｉ／Ｆ３６の負荷などが軽減される。また、これにより、制御対象デバイスＤＡに対する制御のリアルタイム性が向上する。
【０１４２】
第１実施形態の通信システム１によれば、負荷分散装置３０は、中継装置２０に送信する個別パケットを集約して集約パケットとして送信する。これにより、中継装置２０に個別パケットを集約せずに送信する場合よりもネットワークＮＷ２の負荷及び中継装置２０の第２の通信Ｉ／Ｆ２６の負荷などが軽減される。また、これにより、制御対象デバイスＤＡに対する制御のリアルタイム性が向上する。
【０１４３】
〔第２実施形態〕
第２実施形態の通信システムは、負荷分散装置３０を複数用いることで負荷分散装置３０の負荷を軽減するものである。
【０１４４】
（構成）
図２６は、第２実施形態に係る通信システム１ｂの概要の一例を示すブロック図である。通信システム１ｂは、第１実施形態の通信システム１と異なり、負荷分散装置３０を複数含む。図２６には、負荷分散装置３０ａと負荷分散装置３０ｂの２台の負荷分散装置３０を示しているが、負荷分散装置３０の数を２台に限定するものではない。
【０１４５】
第２実施形態では、中継装置２０のＲＡＭ２３は、複数の中継集約バッファーが割り当てられる。複数の中継集約バッファーのそれぞれは、登録されている個別パケットが集約後にどの負荷分散装置３０に送信されるかが定められている。ＲＡＭ２３には、送信先である負荷分散装置３０一台ごとに少なくとも１つ以上の中継集約バッファーが割り当てられる。
【０１４６】
第２実施形態では、演算装置４０のＲＡＭ４３は、複数の演算集約バッファーが割り当てられる。複数の演算集約バッファーのそれぞれは、登録された個別パケットが集約後にどの負荷分散装置３０に送信されるかが定められている。ＲＡＭ２３には、送信先である負荷分散装置３０一台ごとに少なくとも１つ以上の中継集約バッファーが割り当てられる。
【０１４７】
通信システム１ｂのその他の構成について第１実施形態の通信システム１と同様であるので説明を省略する。
【０１４８】
（動作）
以下、第２実施形態に係る通信システム１ｂの動作を以下、図１０、図１２〜図１６、図１９、及び図２７〜図３１などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。端末装置１０のプロセッサー１１は、第１実施形態と同様に図１０に示す処理を実行する。中継装置２０は、第１実施形態の図１１及び図１２に代えて図２７及び図１２の処理を実行する。図２７は、中継装置２０のプロセッサー２１による処理のフローチャートである。プロセッサー２１は、ＲＯＭ２２又は補助記憶デバイス２４などに記憶されたプログラムに基づいてこの処理を実行する。負荷分散装置３０は、第１実施形態と同様に図１３〜図１６に示す処理を実行する。演算装置４０のプロセッサー４１は、第１実施形態の図１７〜図１９に代えて、図２８、図２９及び図１９に示す処理を実行する。図２９及び図３０は、演算装置４０のプロセッサー４１による処理のフローチャートである。プロセッサー４１は、ＲＯＭ４２又は補助記憶デバイス４４などに記憶されたプログラムに基づいてこの処理を実行する。
また、図３０及び図３１は、通信システム１ｂにおける第２実施形態に係る情報の流れの一例を示すシーケンス図である。なお、図３０及び図３１は、通信システム１ｂにおける情報の流れを網羅するものではなく、図示しない情報の流れが存在しても良い。なお、図３１は図３０の続きである。
なお、第２実施形態において第１実施形態と同様の動作については説明を省略する場合がある。
【０１４９】
中継装置２０のプロセッサー２１は、図２７のステップＳ２０１においてＹｅｓと判定したならば、ステップＳ２２１へと進む。
ステップＳ２２１においてプロセッサー２１は、ステップＳ２０１で受信された個別パケットをどの負荷分散装置３０に送信するかを決定する。例えば、プロセッサー２１は、当該個別パケットをどの負荷分散装置３０に送信するかをランダムに決定しても良いし、端末ＩＤ、トランザクションＩＤ又は利用者ＩＤなどを用いて決定しても良いし、負荷分散装置３０の稼働状態から決定しても良い。プロセッサー２１は、ステップＳ２２１の処理の後、ステップＳ２０３へと進む。
【０１５０】
プロセッサー２１は、ステップＳ２０３においてＮｏと判定したならば、ステップＳ２２２へと進む。
ステップＳ２２２においてプロセッサー２１は、ステップＳ２０１で受信された個別パケットをステップＳ２２１で決定した負荷分散装置３０に送信するように第２の通信Ｉ／Ｆ２６に対して指示する。この指示を受けて第２の通信Ｉ／Ｆ２６は、当該個別パケットを当該負荷分散装置３０に送信する。送信された当該個別パケットは、当該負荷分散装置３０の第１の通信Ｉ／Ｆ３５によって受信される。当該個別パケットは、個別パケット７０ａである。
【０１５１】
プロセッサー２１は、ステップＳ２０３においてＹｅｓと判定したならば、ステップＳ２２３へと進む。
ステップＳ２２３においてプロセッサー２１は、ステップＳ２０１で受信された個別パケットを、ステップＳ２２１で決定した送信先に対応する中継集約バッファーに登録する。プロセッサー２１は、ステップＳ２２３の処理の後、ステップＳ２０１へと戻る。
なお、プロセッサー２１は、複数の中継集約バッファーごとに図１２の処理を実行する。
【０１５２】
演算装置４０のプロセッサー４１は、図２８のステップＳ４０４又はステップＳ４０５の処理の後、ステップＳ４３１へと進む。
ステップＳ４３１においてプロセッサー４１は、ステップＳ４０４又はステップＳ４０５で処理バッファーに登録した個別パケットそれぞれについて、どの負荷分散装置３０から送信されたものであるかをＲＡＭ１３などに記憶させる。プロセッサー４１は、ステップＳ４３１の処理の後、ステップＳ４０１へと戻る。
【０１５３】
また、プロセッサー４１は、図２９のステップＳ４１の処理の後、ステップＳ４４１へと進む。
ステップＳ４４１においてプロセッサー４１は、ステップＳ４１４で生成した個別パケットをどの負荷分散装置３０に送信するか決定する。プロセッサー４１は、ステップＳ４３１で記憶した、処理対象パケットの送信元である負荷分散装置３０を、送信先の負荷分散装置３０として決定する。
【０１５４】
プロセッサー４１は、ステップＳ４１５においてＹｅｓと判定したならば、ステップＳ４４２へと進む。
ステップＳ４４２においてプロセッサー４１は、ステップＳ４１４で生成した個別パケットを、ステップＳ４４１で決定した送信先に対応する演算集約バッファーに登録する。
なお、プロセッサー４１は、複数の演算集約バッファーごとに図１９の処理を実行する。
【０１５５】
プロセッサー４１は、図２９のステップＳ４１５においてＮｏと判定したならば、ステップＳ４４３へと進む。
ステップＳ４４３においてプロセッサー４１は、ステップＳ４１４で生成した個別パケットをステップＳ４４１で決定した負荷分散装置３０に送信するように通信Ｉ／Ｆ４５に対して指示する。この指示を受けて通信Ｉ／Ｆ４５は、当該個別パケットを当該負荷分散装置３０に送信する。送信された当該個別パケットは、当該負荷分散装置３０の第１の通信Ｉ／Ｆ３５によって受信される。
プロセッサー４１は、ステップＳ４４２又はステップＳ４４３の処理の後、この処理を実行しているプロセス又はスレッドなどを終了する。
【０１５６】
第２実施形態の通信システム１ｂによれば、中継装置２０は、複数の負荷分散装置３０のいずれかにパケットを送信する。これにより、負荷分散装置３０が１台である場合に比べて、各負荷分散装置３０の負荷を軽減できる。
【０１５７】
〔第３実施形態〕
第３実施形態の通信システムは、負荷分散装置３０を複数用いることで可用性を向上させるものである。
【０１５８】
（構成）
第３実施形態の通信システム１ｂの構成は、第２実施形態の通信システム１ｂと同様であるので説明を省略する。
ただし、第３実施形態では、中継装置２０のＲＡＭ２３に割り当てられる中継集約バッファーは１つで良い。また、第３実施形態では、演算装置４０のＲＡＭ４３に割り当てられる演算集約バッファーは１つで良い。
【０１５９】
（動作）
以下、第３実施形態に係る通信システム１ｂの動作を以下、図１０、図１２〜図１６、図１８、図１９、及び図３１〜図３５などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。端末装置１０のプロセッサー１１は、第１実施形態と同様に図１０に示す処理を実行する。中継装置２０は、第１実施形態の図１１及び図１２に代えて図３１及び図１２の処理を実行する。図３１は、中継装置２０のプロセッサー２１による処理のフローチャートである。プロセッサー２１は、ＲＯＭ２２又は補助記憶デバイス２４などに記憶されたプログラムに基づいてこの処理を実行する。負荷分散装置３０は、第１実施形態と同様に図１３〜図１６に示す処理を実行する。演算装置４０のプロセッサー４１は、第１実施形態の図１７〜図１９に代えて、図３３、図１８及び図１９に示す処理を実行する。図３３は、演算装置４０のプロセッサー４１による処理のフローチャートである。プロセッサー４１は、ＲＯＭ４２又は補助記憶デバイス４４などに記憶されたプログラムに基づいてこの処理を実行する。
また、図３４及び図３５は、通信システム１ｂにおける第３実施形態に係る情報の流れの一例を示すシーケンス図である。なお、図３４及び図３５は、通信システム１ｂにおける情報の流れを網羅するものではなく、図示しない情報の流れが存在しても良い。なお、図３５は図３４の続きである。
なお、第３実施形態において第１実施形態と同様の動作については説明を省略する場合がある。
【０１６０】
中継装置２０のプロセッサー２１は、ステップＳ２０３においてＮｏと判定したならばステップＳ２３１へと進む。
ステップＳ２３１においてプロセッサー２１は、ステップＳ２０１で受信された個別パケットを複数の負荷分散装置３０それぞれに送信するように第１の通信Ｉ／Ｆ２５に対して指示する。この指示を受けて第１の通信Ｉ／Ｆ２５は、当該個別パケットを各負荷分散装置３０に送信する。送信された当該個別パケットは、各負荷分散装置３０の第１の通信Ｉ／Ｆ３５によって受信される。当該個別パケットは、個別パケット７０ａである。プロセッサー２１は、ステップＳ２３１の処理の後、ステップＳ２０１へと戻る。
【０１６１】
なお、第３実施形態では、プロセッサー２１は、図１２のステップＳ２１３において、ステップＳ２１２で生成した第一集約パケット６０ａを複数の負荷分散装置３０に送信するように第１の通信Ｉ／Ｆ２５に対して指示する。この指示を受けて第１の通信Ｉ／Ｆ２５は、当該第一集約パケット６０ａを各負荷分散装置３０に送信する。送信された当該第一集約パケット６０ａは、各負荷分散装置３０の第１の通信Ｉ／Ｆ３５によって受信される。
【０１６２】
演算装置４０のプロセッサー４１は、ステップＳ４０２においてＮｏと判定したならばステップＳ４５１へと進む。
【０１６３】
ステップＳ４５１においてプロセッサー４１は、ステップＳ４０１で受信された個別パケットが受信済みであるか否かを判定する。プロセッサー４１は、個別パケットが受信済みでないと判定するならば、ステップＳ４５１においてＮｏと判定してステップＳ４５２へと進む。
【０１６４】
ステップＳ４５２においてプロセッサー４１は、ステップＳ４０１で受信された個別パケットが受信済みであることをＲＡＭ４３などに記憶させる。当該記憶は、ステップＳ４５１及びステップＳ４５４の処理において用いられる。プロセッサー４１は、ステップＳ４５２の処理の後、ステップＳ４０５へと進む。
【０１６５】
対して、プロセッサー４１は、個別パケットが受信済みであると判定するならば、ステップＳ４５１においてＹｅｓと判定してステップＳ４５３へと進む。
ステップＳ４５３においてプロセッサー４１は、受信済みであると判定した個別パケットを破棄する。プロセッサー４１は、ステップＳ４５３の処理の後、ステップＳ４０１へと戻る。
【０１６６】
また、プロセッサー４１は、ステップＳ４０３の処理の後、ステップＳ４５４へと進む。
ステップＳ４５４においてプロセッサー４１は、ステップＳ４０３で分離した個別パケットそれぞれについて受信済みであるか否かを判定する。そして、プロセッサー４１は、受信済みであると判定した個別パケットを破棄する。
【０１６７】
ステップＳ４５５においてプロセッサー４１は、ステップ４０３で分離した個別パケットのうち破棄しなかったものについて、受信済みであることをＲＡＭ４３などに記憶させる。当該記憶は、ステップＳ４５１及びステップＳ４５４の処理において用いられる。
【０１６８】
ステップＳ４５６においてプロセッサー４１は、ステップ４０３で分離した個別パケットのうち破棄しなかったものを処理バッファーに登録する。プロセッサー４１は、ステップＳ４５６の処理の後、ステップＳ４０１へと戻る。
【０１６９】
なお、第３実施形態では、プロセッサー４１は、図１８のステップＳ４１７において、ステップＳ４１４で生成した個別パケット７０ｃを複数の負荷分散装置３０に送信するように通信Ｉ／Ｆ４５に対して指示する。この指示を受けて通信Ｉ／Ｆ４５は、当該個別パケット７０ｃを各負荷分散装置３０に送信する。送信された当該個別パケット７０ｃは、各負荷分散装置３０の第１の通信Ｉ／Ｆ３５によって受信される。
【０１７０】
また、第３実施形態では、プロセッサー４１は、図１９のステップＳ４２３において、ステップＳ４２２で生成した第三集約パケット６０ｃを複数の負荷分散装置３０に送信するように通信Ｉ／Ｆ４５に対して指示する。この指示を受けて通信Ｉ／Ｆ４５は、当該第三集約パケット６０ｃを各負荷分散装置３０に送信する。送信された当該第三集約パケット６０ｃは、各負荷分散装置３０の第２の通信Ｉ／Ｆ３６によって受信される。
【０１７１】
一方、中継装置２０のプロセッサー２１は、図３３のステップＳ２０６でＮｏと判定したならば、ステップＳ２３２へと進む。
ステップＳ２３２においてプロセッサー２１は、ステップＳ２０２で受信された個別パケットが受信済みであるか否かを判定する。プロセッサー２１は、個別パケットが受信済みでないと判定するならば、ステップＳ２３２においてＮｏと判定してステップＳ２３３へと進む。
【０１７２】
ステップＳ２３３においてプロセッサー２１は、ステップＳ４０１で受信された個別パケットが受信済みであることをＲＡＭ２３などに記憶させる。当該記憶は、ステップＳ２３２及びステップＳ２３５の処理において用いられる。プロセッサー２１は、ステップＳ２３３の処理の後、ステップＳ２０９へと進む。
【０１７３】
対して、プロセッサー２１は、個別パケットが受信済みであると判定するならば、ステップＳ２３２においてＹｅｓと判定してステップＳ２３４へと進む。
ステップＳ２３４においてプロセッサー２１は、受信済みであると判定した個別パケットを破棄する。プロセッサー２１は、ステップＳ２３４の処理の後、ステップＳ２０１へと戻る。
【０１７４】
また、プロセッサー２１は、ステップＳ２０７の処理の後、ステップＳ２３５へと進む。
ステップＳ２３５においてプロセッサー２１は、ステップＳ２０７で分離した個別パケットそれぞれについて受信済みであるか否かを判定する。そして、プロセッサー２１は、受信済みであると判定した個別パケットを破棄する。
【０１７５】
ステップＳ２３６においてプロセッサー２１は、ステップ２０７で分離した個別パケットのうち破棄しなかったものについて、受信済みであることをＲＡＭ２３などに記憶させる。当該記憶は、ステップＳ２３２及びステップＳ２３５の処理において用いられる。
【０１７６】
ステップＳ２３７においてプロセッサー２１は、ステップ２０７で分離した個別パケットのうち破棄しなかったもののそれぞれを、それぞれの宛先である端末装置１０に送信するように第１の通信Ｉ／Ｆ２５に対して指示する。この指示を受けて第１の通信Ｉ／Ｆ２５は、当該個別パケットを端末装置１０に送信する。送信された当該個別パケットは、端末装置１０の第２の通信Ｉ／Ｆ１６によって受信される。プロセッサー２１は、ステップＳ２３７の処理の後、ステップＳ２０１へと戻る。
【０１７７】
第３実施形態の通信システム１ｂによれば、中継装置２０は、複数の負荷分散装置３０にパケットを送信する。これにより、いずれかの負荷分散装置３０に故障が発生した場合でも、他の負荷分散装置３０が、端末装置１０と演算装置４０との間の通信を正常に行うことができる。
【０１７８】
上記の実施形態は以下のような変形も可能である。
負荷分散装置３０は、パケットの種別などに応じて第１の集約条件を変えても良い。この場合、負荷分散装置３０は、異なる第１の集約条件ごとの第１の集約バッファーを備える。例えば、負荷分散装置３０は、特にリアルタイム性が要求されると判定したパケットを、それ以外のパケットとは異なる第１の集約バッファーに登録する。なお、特にリアルタイム性が要求されると判定されるパケットは、例えば制御対象デバイスＤＡが自動改札機であるパケットである。自動改札機は、自動券売機又は自動精算機などよりもリアルタイム性が要求されるためである。
なお、特にリアルタイム性が要求されると判定されたパケットが登録される第１の集約バッファーを以下「高速集約バッファー」といい、それ以外のパケットがされる第１の集約バッファーを以下「低速集約バッファー」というものとする。高速集約バッファーについての第１の集約条件は、例えば以下の（５．１）〜（５．３）の条件のうちの少なくとも１つ以上を含む。
（５．１）高速集約バッファーに登録された個別パケットを前回集約してから時間Ｔ１以上経過した。
（５．２）高速集約バッファーに登録された個別パケットの数がＮ１個以上になった。
（５．３）高速集約バッファーに登録された個別パケットのデータ容量の合計がＸ１以上になった。
そして、低速集約バッファーについての第１の集約条件は、例えば以下の（６．１）〜（６．３）の条件のうちの少なくとも１つ以上を含む。
（６．１）低速集約バッファーに登録された個別パケットを前回集約してから時間Ｔ２以上経過した。
（６．２）低速集約バッファーに登録された個別パケットの数がＮ２個以上になった。
（６．３）低速集約バッファーに登録された個別パケットのデータ容量の合計がＸ２以上になった。
ただし、Ｔ１＜Ｔ２、Ｎ１≦Ｎ２、Ｘ１≦Ｘ２である。
以上のようにすることで、高速集約バッファーでは、低速集約バッファーよりも集約を実行する頻度が高い。したがって、負荷分散装置３０は、特にリアルタイム性が要求されると判定したパケットを、それ以外のパケットよりも短い時間で演算装置４０に送信することができる。
また、負荷分散装置３０は、高速集約バッファーで集約された集約パケットの送信先と低速集約バッファーで集約された集約パケットの送信先とが別々の演算装置４０となるようにしても良い
なお、高速集約バッファーに登録された個別パケットを集約するプロセッサー３１は、高速集約部の一例である。また、低速集約バッファーに登録された個別パケットを集約するプロセッサー３１は、低速集約部の一例である。
また、負荷分散装置３０は、パケットの種別などに応じて、上記の第１の集約条件の場合と同様に第２の集約条件を変えても良い。これにより、負荷分散装置３０は、特にリアルタイム性が要求されると判定したパケットを、それ以外のパケットよりも短い時間で端末装置１０に送信することができる。
【０１７９】
端末装置１０は、個別パケット７０ａを、中継装置２０を経由せずに負荷分散装置３０に送信しても良い。また、負荷分散装置３０は、個別パケット７０ｄを、中継装置２０を経由せずに端末装置１０に送信しても良い。この場合、端末装置１０は、通信装置の一例である。
【０１８０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１８１】
１，１ｂ……通信システム、１０……端末装置、１１，２１，３１，４１……プロセッサー、１２，２２，３２，４２……ＲＯＭ、１３，２３，３３，４３……ＲＡＭ、１４，２４，３４，４４……補助記憶デバイス、１５，２５，３５……第１の通信Ｉ／Ｆ、１６，２６，３６……第２の通信Ｉ／Ｆ、１７，２７，３７，４６……バス、２０……中継装置、３０……負荷分散装置、４０……演算装置、４５……通信Ｉ／Ｆ、３０１……第一受信部、３０２……第一分離部、３０３……送信先選択部、３０４……第一集約部、３０５……第一送信部、３０６……第二受信部、３０７……第二分離部、３０８……返答先選択部、３０９……第二集約部、３１０……第二送信部、３１１……返答先テーブル、３１２……条件管理部、ＤＡ……制御対象デバイス
【図１】
2019161603.tif 000003
【図２】
2019161603.tif 000004
【図３】
2019161603.tif 000005
【図４】
2019161603.tif 000006
【図５】
2019161603.tif 000007
【図６】
2019161603.tif 000008
【図７】
2019161603.tif 000009
【図８】
2019161603.tif 000010
【図９】
2019161603.tif 000011
【図１０】
2019161603.tif 000012
【図１１】
2019161603.tif 000013
【図１２】
2019161603.tif 000014
【図１３】
2019161603.tif 000015
【図１４】
2019161603.tif 000016
【図１５】
2019161603.tif 000017
【図１６】
2019161603.tif 000018
【図１７】
2019161603.tif 000019
【図１８】
2019161603.tif 000020
【図１９】
2019161603.tif 000021
【図２０】
2019161603.tif 000022
【図２１】
2019161603.tif 000023
【図２２】
2019161603.tif 000024
【図２３】
2019161603.tif 000025
【図２４】
2019161603.tif 000026
【図２５】
2019161603.tif 000027
【図２６】
2019161603.tif 000028
【図２７】
2019161603.tif 000029
【図２８】
2019161603.tif 000030
【図２９】
2019161603.tif 000031
【図３０】
2019161603.tif 000032
【図３１】
2019161603.tif 000033
【図３２】
2019161603.tif 000034
【図３３】
2019161603.tif 000035
【図３４】
2019161603.tif 000036
【図３５】
2019161603.tif 000037