(57)【要約】【課題】ゲートウェイ内の処理負荷（データ加工処理等）にも応じて、ゲートウェイから他のゲートウェイに、代理処理を依頼することのできるゲートウェイを提供する。【解決手段】ゲートウェイ装置は、通信部と、データ加工部と、処理委譲部とを有する。通信部は、第１装置側からデータを受信し、第２装置側に前記データを送信するとともに、自装置の処理負荷状況を把握する。データ加工部は、前記第１装置側から受信した前記データを所定の形式に加工して、加工後の前記データを前記第２装置側に送信するために前記通信部に渡す。処理委譲部は、少なくとも自装置の処理負荷状況に基づいて、所定の状況の場合に、前記データを加工する処理と、前記データを前記第２装置側に送信する処理との、少なくともいずれかの処理を、他のゲートウェイ装置に委譲する。【選択図】図１
2020167481.tif 000002
【特許請求の範囲】
【請求項１】
第１装置側からデータを受信し、第２装置側に前記データを送信するとともに、自装置の処理負荷状況を把握する通信部と、
前記第１装置側から受信した前記データを所定の形式に加工して、加工後の前記データを前記第２装置側に送信するために前記通信部に渡すデータ加工部と、
少なくとも自装置の処理負荷状況に基づいて、所定の状況の場合に、前記データを加工する処理と、前記データを前記第２装置側に送信する処理との、少なくともいずれかの処理を、他のゲートウェイ装置に委譲する処理委譲部と、
を含むゲートウェイ装置。
【請求項２】
前記通信部が把握する前記処理負荷状況は、前記データ加工部による処理の処理負荷状況を含むものである、
請求項１に記載のゲートウェイ装置。
【請求項３】
前記処理委譲部は、前記他のゲートウェイ装置を識別するためのゲートウェイ識別情報と関連付けて、前記他のゲートウェイ装置への委譲優先度の情報を管理し、
前記処理委譲部は、前記他のゲートウェイ装置ごとの前記委譲優先度の情報に基づいて、前記他のゲートウェイ装置に委譲する際の、委譲先の前記他のゲートウェイ装置を選定する、
請求項１または２に記載のゲートウェイ装置。
【請求項４】
前記処理委譲部は、処理を前記他のゲートウェイ装置に委譲した結果として、前記他のゲートウェイ装置から、前記ゲートウェイ識別情報と関連付けられた前記他のゲートウェイ装置の状況情報を受け取り、前記他のゲートウェイ装置の状況情報に基づいて、前記委譲優先度の情報を更新する、
請求項３に記載のゲートウェイ装置。
【請求項５】
前記通信部が、委譲元のゲートウェイ装置から、前記データを加工する処理と、前記データを前記第２装置側に送信する処理との、少なくともいずれかの処理を委譲するための委譲依頼を受信した場合に、
前記データ加工部は、前記委譲依頼に含まれていた、ゲートウェイ識別情報と関連付けられた他のゲートウェイ装置の状況情報を抽出し、前記ゲートウェイ識別情報と関連付けられた前記他のゲートウェイ装置の前記状況情報を、前記データに付加する処理も行う、
請求項３または４に記載のゲートウェイ装置。
【請求項６】
前記通信部は、前記ゲートウェイ識別情報と関連付けられた前記他のゲートウェイ装置の前記状況情報を前記データに付加した結果である前記データを受信した前記第２装置側から、前記ゲートウェイ識別情報と関連付けられた前記状況情報に基づく統計処理の結果として、前記他のゲートウェイ装置に関する前記委譲優先度の情報を受信し、
前記処理委譲部は、前記第２装置から受信した前記委譲優先度の情報を用いて、前記処理委譲部が管理する前記委譲優先度の情報を更新する、
請求項５に記載のゲートウェイ装置。
【請求項７】
ゲートウェイ装置と、バックエンドサーバー装置と、センサーデバイスとを含む情報通信システムであって、
前記ゲートウェイ装置は、
第１装置側からデータを受信し、第２装置側に前記データを送信するとともに、自装置の処理負荷状況を把握する通信部と、
前記第１装置側から受信した前記データを所定の形式に加工して、加工後の前記データを前記第２装置側に送信するために前記通信部に渡すデータ加工部と、
少なくとも自装置の処理負荷状況に基づいて、所定の状況の場合に、前記データを加工する処理と、前記データを前記第２装置側に送信する処理との、少なくともいずれかの処理を、他のゲートウェイ装置に委譲する処理委譲部と、
を含み、
前記センサーデバイスは、
センサーと、
前記センサーから得られた情報を前記ゲートウェイ装置に送信する通信部と、
を備える前記第１装置であって、
前記バックエンドサーバー装置は、
前記ゲートウェイ装置の前記通信部から送信される前記データを受信する通信部、
を備える前記第２装置である、
ところの情報通信システム。
【請求項８】
ゲートウェイ装置が、第１装置側から受信したデータを第２装置側へ送信するためのデータ処理方法であって、
前記第１装置側からデータを受信する過程と、
前記第１装置側から受信した前記データを所定の形式に加工して、加工後の前記データを前記第２装置側に送信する過程と、
前記第２装置側に前記データを送信すると過程と、
自装置の処理負荷状況を把握する過程と、
少なくとも自装置の処理負荷状況に基づいて、所定の状況の場合に、前記データを加工する処理と、前記データを前記第２装置側に送信する処理との、少なくともいずれかの処理を、他のゲートウェイ装置に委譲する過程と、
を含むデータ処理方法。
【請求項９】
コンピューターを、
第１装置側からデータを受信し、第２装置側に前記データを送信するとともに、自装置の処理負荷状況を把握する通信部と、
前記第１装置側から受信した前記データを所定の形式に加工して、加工後の前記データを前記第２装置側に送信するために前記通信部に渡すデータ加工部と、
少なくとも自装置の処理負荷状況に基づいて、所定の状況の場合に、前記データを加工する処理と、前記データを前記第２装置側に送信する処理との、少なくともいずれかの処理を、他のゲートウェイ装置に委譲する処理委譲部と、
を含むゲートウェイ装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲートウェイ装置、情報通信システム、データ処理方法、およびプログラムに関する。
【背景技術】
【０００２】
いわゆるＩｏＴ機器を活用したデータ通信ネットワークシステムが、社会インフラストラクチャー等として広く利用されるようになってきている。こういったシステムでは、センサーデバイスで取得した情報をバックエンドサーバー側で収集する形態が広く用いられている。上記のようなデータ通信ネットワークシステムを構成するＩｏＴ機器の数は膨大である。送信遅延やデータ欠落をできるだけ起こすことなく、ＩｏＴ機器側で取得されたデータを、バックエンドサーバー側に送り届けることが強く求められる。
【０００３】
データ収集を行うひとつのシステムモデルは、センサー等を備える多数のＩｏＴ機器から、ゲートウェイ装置にデータが送信される。ゲートウェイ装置は、例えば地域ごとなどといった単位で、ＩｏＴ機器からのデータを集約し、上位のサーバーに対して送信する。ゲートウェイについては、故障したり、通信が切断されたりすることも考えられる。しかしながら、そのような不具合の状況が生じた場合にも、データが欠落することなく、データの収集が継続されることが望ましい。
【０００４】
特許文献１の第００２５段落には、複数のセンサーと、複数のゲートウェイ装置を含んで、データを、データ管理サーバーに転送するシステムの構成が記載されている。また、特許文献１の第０１３５段落には、タイムスタンプおよび無線強度を基に、故障したゲートウェイ装置に所属するセンサーノードごとに、最適なゲートウェイ装置を選択することが記載されている。特許文献１の第０１３９段落には、代理センサーネットワーク開始情報に基づいて、センサーノードは、ゲートウェイ装置に対して、センサーネットワーク参加応答情報を送信して、無線センサーネットワークに接続することが記載されている。
【０００５】
特許文献２の第００１６段落には、通信ユニットは、電力系から収集された電力量を、ゲートウェイ（ＧＷ）経由でサーバーに送信する技術が記載されている。特許文献２の第００５７段落には、ゲートウェイは、周辺ゲートウェイのなかで自ゲートウェイの負荷が最大で、且つ自ゲートウェイの負荷が負荷基準閾値を超えた場合に、分散対象ユニットに対してゲートウェイ切り替え要求をユニキャストで送信する技術が記載されている。
【０００６】
なお、特許文献２の第００２８段落には、ゲートウェイ一覧テーブルが、ゲートウェイの収容ユニット数および転送トラフィック量を管理するものであることが記載されている。また、特許文献２の第００４８段落には、ゲートウェイの負荷は、上記の、ゲートウェイごとの収容ユニット数および転送トラフィック量に基づき算出されるものであることが記載されている。
【０００７】
特許文献３の第００１９段落には、検針データを収集するシステムに関して、ゲートウェイの処理負荷が高い状態にある場合に、業務通信に支障があると判断し、通信ユニットの参入先ゲートウェイを変更させる技術が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１４−０６４１２１
【特許文献２】特開２０１３−２１４８３５
【特許文献３】国際公開第２０１３／０９４０１３号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、先行技術を用いる場合、下記のような問題があった。
【００１０】
特許文献１に記載の技術を用いる場合、ゲートウェイの故障時に、センサーノードがデータの送信先を、故障中のゲートウェイからその隣接するゲートウェイに切り替えることができる。しかしながら、特許文献１に記載の技術を用いる場合、センサーノードの通信可能範囲に切り替え先のゲートウェイが存在していなければならないという制約があった。つまり、切り替え先のゲートウェイがセンサーノードの通信範囲外に存在する場合には、ゲートウェイの切り替えを行うことができないという問題があった。
【００１１】
特許文献２に記載の技術を用いる場合、ゲートウェイの負荷は、そのゲートウェイの収容ユニット数および転送トラフィック量に基づき算出されるものである。しかしながら、ゲートウェイが、センサーデバイスから取得されたデータを加工するためにデータ加工部を備える場合には、その加工処理の負荷は、上記の収容ユニット数および転送トラフィック量からは求められないという問題がある。つまり、特許文献２に記載の技術では、ゲートウェイ内部のデータ加工に基づく負荷に対応した切り替えを行うことができないという問題がある。
【００１２】
特許文献３では、ゲートウェイの負荷に基づく負荷分散について記載されているものの、ゲートウェイの負荷の具体的な内訳について何も言及されていない。
【００１３】
本発明は、上記の課題認識について行われたものであり、個々のゲートウェイ内の処理負荷（データ加工処理等の負荷）にも応じて、ゲートウェイから他のゲートウェイに、代理処理を依頼することのできる、ゲートウェイ装置、情報通信システム、データ処理方法、およびプログラムを提供しようとするものである。
【課題を解決するための手段】
【００１４】
上記の課題を解決するため、本発明の一態様によるゲートウェイ装置は、第１装置側からデータを受信し、第２装置側に前記データを送信するとともに、自装置の処理負荷状況を把握する通信部と、前記第１装置側から受信した前記データを所定の形式に加工して、加工後の前記データを前記第２装置側に送信するために前記通信部に渡すデータ加工部と、少なくとも自装置の処理負荷状況に基づいて、所定の状況の場合に、前記データを加工する処理と、前記データを前記第２装置側に送信する処理との、少なくともいずれかの処理を、他のゲートウェイ装置に委譲する処理委譲部と、を含む。
【００１５】
また、本発明の一態様による情報通信システムは、ゲートウェイ装置と、バックエンドサーバー装置と、センサーデバイスとを含む情報通信システムであって、前記ゲートウェイ装置は、第１装置側からデータを受信し、第２装置側に前記データを送信するとともに、自装置の処理負荷状況を把握する通信部と、前記第１装置側から受信した前記データを所定の形式に加工して、加工後の前記データを前記第２装置側に送信するために前記通信部に渡すデータ加工部と、少なくとも自装置の処理負荷状況に基づいて、所定の状況の場合に、前記データを加工する処理と、前記データを前記第２装置側に送信する処理との、少なくともいずれかの処理を、他のゲートウェイ装置に委譲する処理委譲部と、を含み、前記センサーデバイスは、センサーと、前記センサーから得られた情報を前記ゲートウェイ装置に送信する通信部と、を備える前記第１装置であって、前記バックエンドサーバー装置は、前記ゲートウェイ装置の前記通信部から送信される前記データを受信する通信部、を備える前記第２装置である、というものである。
【００１６】
また、本発明の一態様によるデータ処理方法は、ゲートウェイ装置が、第１装置側から受信したデータを第２装置側へ送信するためのデータ処理方法であって、前記第１装置側からデータを受信する過程と、前記第１装置側から受信した前記データを所定の形式に加工して、加工後の前記データを前記第２装置側に送信する過程と、前記第２装置側に前記データを送信すると過程と、自装置の処理負荷状況を把握する過程と、少なくとも自装置の処理負荷状況に基づいて、所定の状況の場合に、前記データを加工する処理と、前記データを前記第２装置側に送信する処理との、少なくともいずれかの処理を、他のゲートウェイ装置に委譲する過程と、を含むものである。
【００１７】
また、本発明の一態様は、コンピューターを、第１装置側からデータを受信し、第２装置側に前記データを送信するとともに、自装置の処理負荷状況を把握する通信部と、前記第１装置側から受信した前記データを所定の形式に加工して、加工後の前記データを前記第２装置側に送信するために前記通信部に渡すデータ加工部と、少なくとも自装置の処理負荷状況に基づいて、所定の状況の場合に、前記データを加工する処理と、前記データを前記第２装置側に送信する処理との、少なくともいずれかの処理を、他のゲートウェイ装置に委譲する処理委譲部と、を含むゲートウェイ装置として機能させるためのプログラムである。
【発明の効果】
【００１８】
本発明によれば、ゲートウェイの処理の過負荷等の状況も考慮して、より適切なゲートウェイに対して処理を委譲することができる。
【図面の簡単な説明】
【００１９】
【図１】第１実施形態による情報通信システムの、概略構成を示すブロック図である。
【図２】第１実施形態によるバックエンドサーバーの内部の概略機能構成を示すブロック図である。
【図３】第１実施形態によるゲートウェイの内部の概略機能構成を示すブロック図である。
【図４】第１実施形態によるセンサーデバイスの内部の概略機能構成を示すブロック図である。
【図５】第１実施形態によるゲートウェイ内の近傍ゲートウェイ格納部に格納されるデータの構成および例を示す概略図である。
【図６】第１実施形態によるバックエンドサーバーが受信するデータの構成および例を示す概略図である。
【図７】第１実施形態による情報通信システムの処理手順を示すフローチャートである。
【図８】第１実施形態による情報通信システムの処理手順（特に、ゲートウェイによる受信処理）を示すフローチャートである。
【図９】第１実施形態によるバックエンドサーバーがゲートウェイからデータを受信する際の処理の手順を示すフローチャートである。
【図１０】第１実施形態によるゲートウェイ間での委譲に関する処理の、委譲元の処理手順を示すフローチャートである。
【図１１】第１実施形態によるゲートウェイ間での委譲に関する処理の、委譲先の処理手順を示すフローチャートである。
【図１２】第２実施形態による情報通信システムの、概略機能構成を示すブロック図である。
【発明を実施するための形態】
【００２０】
次に、本発明を実施するための、複数の形態について説明する。
【００２１】
［第１実施形態］
図１は、本実施形態による情報通信システムの、概略構成を示すブロック図である。図示するように、情報通信システム１は、バックエンドサーバー１００と、ゲートウェイ２００と、センサーデバイス３００とを、含むシステムである。情報通信システム１は、例えば、Ｌ台（Ｌは、１以上の整数）のバックエンドサーバー１００と、Ｍ台（Ｍは、２以上の整数）のゲートウェイ２００と、Ｎ個（Ｎは、１以上の整数）のセンサーデバイス３００とを含むよう構成される。情報通信システム１を構成するバックエンドサーバー１００やゲートウェイ２００やセンサーデバイス３００の台数は、例えば、動的に変更されてもよい。なお、バックエンドサーバー１００や、ゲートウェイ２００や、センサーデバイス３００のそれぞれは、複数台存在する場合があるため、それぞれ、符号にサフィックスを付けて説明する場合がある。例えば、第２番目のバックエンドサーバーを「バックエンドサーバー１００−２」と呼んだり、第３番目のゲートウェイを「ゲートウェイ２００−３」と呼んだり、第４番目のセンサーデバイスを「センサーデバイス３００−４」と呼んだりすることがある。
【００２２】
図示する例では、Ｌ台のバックエンドサーバー１００−１から１００−Ｌまでの各々は、サーバー型コンピューターを用いて実現される。Ｌ台のバックエンドサーバー１００−１から１００−Ｌまでは、例えば、相互に協調し、全体として１つの論理的なサーバー装置として機能する。また、バックエンドサーバー１００は、いわゆるクラウドサーバーとして実現されていてもよい。バックエンドサーバー１００は、「バックエンドサーバー装置」とも呼ばれる。
【００２３】
Ｍ台（Ｍ≧２）のゲートウェイ２００のそれぞれは、近傍に存在する他のゲートウェイ２００との間で相互に通信を行うことができるよう、ネットワークに接続されている。個々のセンサーデバイス３００は、１個または複数のゲートウェイ２００と、直接通信を行えるようにネットワークに接続されている。また、１台のゲートウェイ２００の配下に複数のセンサーデバイスが存在していてもよい。ゲートウェイ２００は、「ゲートウェイ装置」とも呼ばれる。
【００２４】
センサーデバイス３００は、「ＩｏＴ機器」とも呼ばれるものである。センサーデバイス３００は、各種のセンサーを備えている。センサーデバイス３００は、センサーで検知したデータを、ゲートウェイ２００経由で、バックエンドサーバー１００に送ることができる。ここで、センサーが検知するデータは、例えば物理量を表すものであったり、画像や映像や音声であったりする。センサーが検知するデータはここに列挙したものには限られない。
【００２５】
センサーデバイス３００とゲートウェイ２００との間では、通信ネットワーク４０１を用いた双方向の通信が可能である。ゲートウェイ２００とバックエンドサーバー１００との間では、通信ネットワーク４０２を用いた双方向の通信が可能である。また、既述の通り、複数のゲートウェイ２００の相互間でも、通信ネットワーク４０１または４０２等を用いた双方向の通信が可能である。通信ネットワーク４０１および４０２のそれぞれの通信方式は、有線通信あるいは無線通信のいずれかに限定されるものではない。通信ネットワーク４０１および４０２のそれぞれでは、適宜選択される、所定の通信方式が用いられる。
【００２６】
図２は、各々のバックエンドサーバー１００の内部の概略機能構成を示すブロック図である。図示するように、バックエンドサーバー１００は、サーバー制御部１０１と、ゲートウェイ通信部１０２と、統計情報計算部１０３と、受信データ加工部１０４と、統計情報格納部１０５と、受信データ格納部１０６とを含む。これらの各部の機能は、例えば、コンピューター内のＣＰＵ（中央処理装置）、メインメモリー、２次記憶装置等を用いて実現される。各部の機能は、ＣＰＵ上で実行されるプログラムを用いて実現される。なお、各部の機能の少なくとも一部を、専用の回路（ハードウェア）で実現するようにしてもよい。各部の機能は、次の通りである。
【００２７】
サーバー制御部１０１は、バックエンドサーバー１００の全体の動きを制御する機能を有する。
【００２８】
ゲートウェイ通信部１０２は、ゲートウェイ２００との間での通信を行うものである。つまり、ゲートウェイ通信部１０２は、ゲートウェイ２００から送信されるデータを受信したり、ゲートウェイ２００に対してデータを送信したりする機能を有する。
【００２９】
統計情報計算部１０３は、各々のゲートウェイ２００について、通信処理や通信状態に関する統計情報の計算を行うものである。具体的には、統計情報計算部１０３は、ゲートウェイ２００から受信したデータから、ゲートウェイ間での委譲の際の中継の結果に関する情報を基に、ゲートウェイ２００ごとの委譲優先度の情報を計算する。統計情報計算部１０３は、データ送信が成功した実績が特に直近において多いゲートウェイ２００ほど、高い優先度となるように数値を算出する。
【００３０】
受信データ加工部１０４は、ゲートウェイ２００側から受信したデータを加工する処理を行う。
【００３１】
統計情報格納部１０５は、統計情報計算部１０３が算出した統計情報を記憶するものである。統計情報格納部１０５は、統計情報を記憶するための統計情報格納テーブルを内部に備える。
【００３２】
受信データ格納部１０６は、受信データ加工部１０４によって加工されたデータを記憶するものである。
【００３３】
上記の統計情報格納部１０５や受信データ格納部１０６は、例えば、磁気ハードディスク装置や、半導体メモリー等を用いて実現される。統計情報格納部１０５や受信データ格納部１０６は、適宜、ファイルシステムやデータベース管理システム（ＤＢＭＳ）を用いて、データを管理する。なお、統計情報格納部１０５や受信データ格納部１０６のためのデータ記憶手段は、バックエンドサーバー１００の外部に存在するデータベースサーバー装置やストレージサーバー装置等であってもよい。
【００３４】
図３は、各々のゲートウェイ２００の内部の概略機能構成を示すブロック図である。図示するように、ゲートウェイ２００は、ゲートウェイ制御部２０１と、サーバー通信部２０２（「第１通信部」と呼ぶ場合がある）と、センサー・ゲートウェイ通信部２０３（「第２通信部」と呼ぶ場合がある）と、受信データ加工部２０４と、受信データ格納部２０５と、近傍ゲートウェイ格納部２０６と、近傍ゲートウェイ処理委譲部２０７とを含む。これらの各部の機能は、例えば、コンピューター内のＣＰＵ（中央処理装置）、メインメモリー、２次記憶装置等を用いて実現される。各部の機能は、ＣＰＵ上で実行されるプログラムを用いて実現される。なお、各部の機能の少なくとも一部を、専用の回路（ハードウェア）で実現するようにしてもよい。各部の機能は、次の通りである。
【００３５】
ゲートウェイ制御部２０１は、ゲートウェイ２００の全体の動きを制御する機能を有する。ゲートウェイ制御部２０１は、ゲートウェイ２００の全体や、各処理部の負荷状況を把握してもよい。この負荷状況に依り、ゲートウェイは、データの加工処理や送信処理を行うか否かを判断することができる。これらの判断の詳細については、フローチャートを参照しながら後で詳述する。また、ゲートウェイ制御部２０１は、他のゲートウェイ２００からの委譲を受け付ける機能を有する。
【００３６】
サーバー通信部２０２は、バックエンドサーバー１００との間での通信を行うものである。つまり、サーバー通信部２０２は、バックエンドサーバー１００から送信されるデータを受信したり、バックエンドサーバー１００に対してデータを送信したりする機能を有する。
【００３７】
センサー・ゲートウェイ通信部２０３は、センサーデバイス３００や、他のゲートウェイ２００との間で通信を行うものである。つまり、センサー・ゲートウェイ通信部２０３は、センサーデバイス３００や他のゲートウェイ２００から送信されるデータを受信したり、センサーデバイス３００や他のゲートウェイ２００に対してデータを送信したりする機能を有する。
【００３８】
受信データ加工部２０４は、センサーデバイス３００から受信したデータを加工する処理を行う。受信データ加工部２０４は、センサーデバイス３００から受信したデータを、例えば、バックエンドサーバー１００側での収集に都合のよい形式等に加工する。
【００３９】
受信データ格納部２０５は、センサーデバイス３００から受信したデータを記憶する。受信データ格納部２０５は、受信データ加工部２０４による加工処理前のデータと、加工処理後のデータとの、いずれかまたは両方を格納してよい。
【００４０】
近傍ゲートウェイ格納部２０６は、自装置（ゲートウェイ２００）の、通信ネットワーク上における近傍に存在する他のゲートウェイ２００に関する情報を記憶する。近傍ゲートウェイ格納部２０６は、具体的には、上記の他のゲートウェイ２００の各々を識別するための識別情報（ゲートウェイＩＤ）と、各ゲートウェイ２００の属性情報を記憶する。上記の識別情報により、各ゲートウェイ２００を一意に特定可能である。また、近傍のゲートウェイ２００の属性情報は、適宜、更新される情報であってもよい。近傍ゲートウェイ格納部２０６が保持するデータの構成等については、後で別の図を参照しながら説明する。
【００４１】
近傍ゲートウェイ処理委譲部２０７は、自装置に何らかの障害が発生した場合や自装置が高負荷の状態にある場合に、センサーデバイス３００から受信したデータを加工する処理や、バックエンドサーバー１００にデータを転送する処理を、近傍のゲートウェイ２００に委譲するための処理を行うものである。
【００４２】
なお、実装の形態として、サーバー通信部２０２とセンサー・ゲートウェイ通信部２０３とがひとつの機能として統合されていてもよい。また、受信データ格納部２０５や近傍ゲートウェイ格納部２０６は、例えば、磁気ハードディスク装置や、半導体メモリー等を用いて実現される。
【００４３】
図４は、センサーデバイス３００の内部の概略機能構成を示すブロック図である。図示するように、センサーデバイス３００は、ゲートウェイ通信部３０１と、データ取得部３０２とを含む。これらの各部の機能は、例えば、コンピューターおよびプログラム等を用いて実現可能である。なお、各部の機能の少なくとも一部を、専用の回路（ハードウェア）で実現するようにしてもよい。各部の機能は、次の通りである。
【００４４】
ゲートウェイ通信部３０１は、ゲートウェイ２００との間での通信を行うものである。つまり、ゲートウェイ通信部３０１は、ゲートウェイ２００から送信されるデータを受信したり、ゲートウェイ２００に対してデータを送信したりする機能を有する。ゲートウェイ通信部３０１が受信するデータとして、例えば、センサーデバイス３００を設定したり制御したりするためのデータや、センサーデバイス３００上で稼働するプログラム等が含まれてよい。
【００４５】
データ取得部３０２は、各種センサーを用いて実世界の情報を取得する。データ取得部３０２は、取得した情報を適宜、デジタルデータの形式で出力できるようにする。データ取得部３０２は、取得したデータを外部に送信するために、ゲートウェイ通信部３０１に渡す。
【００４６】
図５は、ゲートウェイ２００内の近傍ゲートウェイ格納部２０６に格納されるデータの構成および例を示す概略図である。近傍ゲートウェイに関するこのデータは、例えば、テーブルの形式で表現され得る。近傍ゲートウェイ格納部２０６が記憶するテーブルは、ゲートウェイＩＤと、委譲優先度と、委譲可否の各項目を有する。このテーブルの各行のデータが、１台の近傍のゲートウェイ２００に対応する。各項目のデータの意味は、次の通りである。
【００４７】
ゲートウェイＩＤは、委譲先となり得る近傍のゲートウェイを一意に識別するための識別情報である。委譲優先度は、委譲が可能なゲートウェイ２００が複数存在する場合において、どのゲートウェイ２００が優先されるかを表す数値のデータである。一例として、委譲優先度の数値が高いほど、そのゲートウェイ２００が優先される度合いが高い。委譲可否は、その時点においてゲートウェイ２００が委譲可能なものであるか否かを表すものである。このテーブルが有するデータのうち、委譲優先度および委譲可否の項目は、ゲートウェイの負荷の状況や、実際の委譲処理の状況および結果等に応じて、適宜更新され得るものである。
【００４８】
図５では、近傍ゲートウェイ格納部２０６のデータをテーブル形式で構成する例を示した。ただし、近傍ゲートウェイ格納部２０６は、代わりに、同等の情報を持つ他の形式で近傍のゲートウェイ２００の情報を持つようにしてもよい。
【００４９】
図６は、バックエンドサーバー１００が受信するデータの構成および例を示す概略図である。同図に示すデータは、ＪＳＯＮ形式で記述されたデータである。なお、「ＪＳＯＮ」は、ＪａｖａＳｃｒｉｐｔ （登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎの略である。ＪＳＯＮ形式のデータでは、左右の中括弧（開くカーリーブレースおよび閉じるカーリーブレース）や、左右の大括弧（開く角括弧および閉じる角括弧）を用いたブロック構造が表されている。また、ＪＳＯＮ形式のデータでは、基本的に、キーとキーバリュー（値）との対を用いて表現されている。なお、バックエンドサーバー１００が受信するデータは、ＪＳＯＮ形式に限らず、他の形式で記述されていてもよい。
【００５０】
図示するデータにおける、第２行目から第７行目までは、データを転送した複数のゲートウェイ２００の全体に関する情報を持つ。第２行目の「ｇａｔｅｗａｙ−ｉｄ」というキーワードは、データ取得元のセンサーデバイス３００が最初に転送を依頼したゲートウェイの識別情報を表す。本例では、その値は「ｇａｔｅｗａｙ１」というゲートウェイＩＤである。第３行目の「ｒｅｌａｙ−ｇａｔｅｗａｙ」（中継ゲートウェイ）というキーワードは、ゲートウェイＩＤ「ｇａｔｅｗａｙ１」のゲートウェイ２００から委譲された複数のゲートウェイの情報を表す。その値は、３対の、ゲートウェイＩＤと状況情報との対のリストである。具体的には、そのリストの第１から第３の要素は、次の通りである。第１要素として、ゲートウェイＩＤ「ｇａｔｅｗａｙ２」に、状況情報「ｃｏｎｎｅｃｔｉｏｎ  ｅｒｒｏｒ」（通信接続エラー）が対応付いている。第２要素として、ゲートウェイＩＤ「ｇａｔｅｗａｙ３」に、状況情報「Ｈｉｇｈ  ｌｏａｄ」（高負荷）が対応付いている。第３要素として、ゲートウェイＩＤ「ｇａｔｅｗａｙ４」に、状況情報「ｓｕｃｃｅｓｓ」（通信成功）が対応付いている。上記の情報は、次に記載する経過を表す。
【００５１】
（１）即ち、データ取得元のセンサーデバイス３００は、まず、ゲートウェイＩＤ「ｇａｔｅｗａｙ１」のゲートウェイ２００に、データの転送を依頼した。
（２）ゲートウェイＩＤ「ｇａｔｅｗａｙ１」のゲートウェイ２００は、ゲートウェイＩＤ「ｇａｔｅｗａｙ２」のゲートウェイ２００に、処理および転送を委譲した。
（３）委譲先であるゲートウェイＩＤ「ｇａｔｅｗａｙ２」のゲートウェイ２００では、「通信接続エラー」の状況が生じた。このため、ゲートウェイＩＤ「ｇａｔｅｗａｙ２」のゲートウェイ２００は、ゲートウェイＩＤ「ｇａｔｅｗａｙ３」のゲートウェイ２００に、処理および転送をさらに委譲した。
（４）委譲先であるゲートウェイＩＤ「ｇａｔｅｗａｙ３」のゲートウェイ２００では、「高負荷」の状況が生じた。このため、ゲートウェイＩＤ「ｇａｔｅｗａｙ３」のゲートウェイ２００は、ゲートウェイＩＤ「ｇａｔｅｗａｙ４」のゲートウェイ２００に、処理および転送をさらに委譲した。
（５）委譲先であるゲートウェイＩＤ「ｇａｔｅｗａｙ４」のゲートウェイ２００では、通信を行うために障害となる状況がなく、処理および転送が成功した。これにより、状況情報「ｓｕｃｃｅｓｓ」が記録された。
【００５２】
第８行目は、キーワード「ｄａｔｅｔｉｍｅ」を有し、データの転送が行われた日時のタイムスタンプの情報を表す。図示する例では、タイムスタンプの形式は「ＹＹＹＹ−ＭＭ−ＤＤＴＨＨ：ＭＭ：ＳＳ．ｔｔｔＺ」である。「ＹＹＹＹ−ＭＭ−ＤＤ」は、年・月・日を表す。「ＨＨ：ＭＭ：ＳＳ」は、時・分・秒を表す。「．ｔｔｔ」は、秒未満の時刻を表し、千分の一秒単位の数値である。「Ｚ」は協定世界時（ＵＴＣ，Coordinated Universal Time）による表記であることを表す。このタイムスタンプは、例えば、通信が成功した日時を表す。本例では、このタイムスタンプは、ゲートウェイＩＤ「ｇａｔｅｗａｙ４」のゲートウェイ２００によって付与される。
【００５３】
第９行目から第１５行目までは、センサーデバイス３００側で生成されたデータが引き継がれたものである。第９行目のキーワード「ｓｅｎｓｏｒ−ｄａｔａ」は、センサーデバイス３００が生成したデータであることを表す。
【００５４】
第１１行目から第１３行目までは、３対の、キーワードと値の対のリストである。
第１１行目の第１の対において、キーワード「ｓｅｎｓｏｒ−ｉｄ」は、センサーデバイス３００を一意に識別するための識別情報であることを表す。そして、その値は「ｓｅｎｓｏｒ１」である。第１２行目の第２の対において、キーワード「ｄａｔｅｔｉｍｅ」は、日時のタイムスタンプであることを表す。タイムスタンプの形式については既に説明した通りである。タイムスタンプの値は「２０１８−０８−０１Ｔ１２：２５：００．０００Ｚ」（２０１８年０８月０１日１２時２５分００秒０００  ＵＴＣ）である。第１３行目の第３の対において、キーワード「ｔｅｍｐｅｒａｔｕｒｅ」は、センサー値が温度であることを表す。値は「２０」（単位は度、摂氏）である。
【００５５】
次に、情報通信システム１が動作する際の処理手順について説明する。なお、以下の説明における状況として、障害等が発生するよりも前には、センサーデバイス３００が取得したデータが、ゲートウェイ２００を介して、バックエンドサーバー１００まで正常に送達されていた。ここで「障害等」には、通信接続段あるいはその他の理由による通信接続エラーの状況や、ゲートウェイ２００等の装置の高負荷によって、バックエンドサーバーへのデータの送達を直接行うことができない状況を含む。障害等が発生した後には、ゲートウェイ２００によって、他のゲートウェイ２００への委譲が試みられる。他のゲートウェイ２００への委譲は、複数の段階にわたって繰り返されてよい。つまり、委譲先であるゲートウェイ２００は、障害等の事情に応じて、さらに他のゲートウェイ２００への処理等の委譲を行うことができる。
【００５６】
図７は、情報通信システム１の処理手順を示すフローチャートである。以下、このフローチャートに沿って説明する。
【００５７】
ステップＳ１１において、センサーデバイス３００のデータ取得部３０２は、センサーを用いて、実世界の情報を取得する。データ取得部３０２が取得する情報の種類は、任意であるが、例えば、温度、湿度、圧力、流量等であり、また、静止画像や、動画や、音声等であってもよい。データ取得部３０２は、アナログセンサーあるいはデジタルセンサーを用いて取得した情報を、送信可能な形式のデジタルデータの形式に整える。また、データ取得部３０２は、センサーデバイスの属性情報（センサーデバイスの識別情報等）や、データを取得した日時の情報を、適宜、付加するようにしてもよい。
【００５８】
ステップＳ１２において、ゲートウェイ通信部３０１は、データ取得部３０２が取得し、整形したデータを、接続されている所定のゲートウェイ２００に送信する。
【００５９】
ステップＳ１３において、ゲートウェイ２００は、センサーデバイス３００から送信されたデータを受信する。ゲートウェイ２００がデータを受信する処理の詳細については、次に図８を参照しながら説明する。
【００６０】
図８は、情報通信システム１の処理手順を示すフローチャートである。このフローチャートは、特に、ゲートウェイ２００による受信の処理を中心に示すものである。以下、このフローチャートに沿って説明する。
【００６１】
ステップＳ２１において、ゲートウェイ２００のセンサー・ゲートウェイ通信部２０３は、センサーデバイス３００から送信されるデータを受信する。受信されたデータは、受信データ加工部２０４にも渡される。
【００６２】
ステップＳ２２において、受信データ加工部２０４は、ステップＳ２１で受信されたデータを加工する。加工処理の内容は様々であってよい。加工処理の内容の一つは、バックエンドサーバー１００が期待するデータ形式に合うようにデータを加工することである。また、加工処理が、自装置（ゲートウェイ２００）の識別情報（ゲートウェイＩＤ）を、データ内に付加する処理を含んでもよい。また、加工処理が、データの単位変換の処理を含むものでもよい。単位変換とは、例えば、温度の、摂氏から華氏への変換（あるいはその逆の変換）であってよい。また、単位変換とは、例えば、メートル法の系からヤード・ポンド法の系への変換（あるいはその逆の変換）であってよい。単位変換とは、例えば、外貨交換レートに基づく通貨単位の変換であってよい。また、ここに例示した変換以外の変換であってもよい。また、加工処理が、例えば複数のセンサーデバイス３００から受信したデータを１本のデータに統合する処理を含むものでもよい。
【００６３】
ステップＳ２３において、ゲートウェイ制御部２０１は、自装置（ゲートウェイ２００）が、バックエンドサーバー１００と通信可能であるか否かを調べ、判断する。具体的には、ゲートウェイ制御部２０１は、バックエンドサーバー１００との通信が接続されている状態であるか否か、サーバー通信部２０２のその時点での処理負荷が充分に低いか否か。通信ネットワークのレイテンシーが充分に小さいか否か、通信に関するその他の障害が生じていないかどうか、といったことを判断する。これらに基づき、バックエンドサーバーと通信可能であるとゲートウェイ制御部２０１が判断する場合（ステップＳ２３：ＹＥＳ）、次のステップＳ２４に進む。何らかの理由で通信可能ではない場合（ステップＳ２３：ＮＯ）、ステップＳ２５の処理に進む。
【００６４】
ステップＳ２４において、サーバー通信部２０２は、加工済みのデータを、バックエンドサーバー１００に送信する。本ステップの処理が終わると、ステップＳ２８に進む。
【００６５】
ステップＳ２５に進んだ場合、ステップＳ２５において、ゲートウェイ制御部２０１の制御により、受信データ加工部２０４は、バックエンドサーバー１００に送信するための加工済みのデータを、一旦、受信データ格納部２０５に書き込む。なお、他のゲートウェイ２００に送信を委譲することが決まると、そのデータは、受信データ格納部２０５から読み出される。
【００６６】
ステップＳ２６において、近傍ゲートウェイ処理委譲部２０７は、処理委譲先のゲートウェイ２００を選定する。この際、近傍ゲートウェイ処理委譲部２０７は、近傍ゲートウェイ格納部２０６を参照し、近傍のゲートウェイ２００ごとに、委譲可否を判定する。また、近傍ゲートウェイ処理委譲部２０７は、近傍ゲートウェイ格納部２０６を参照し、近傍のゲートウェイ２００ごとの委譲優先度を判断する。つまり、近傍ゲートウェイ処理委譲部２０７は、委譲可能であるゲートウェイ２００のうち、最も優先度の高いゲートウェイ２００を、処理委譲先として選定する。
【００６７】
ステップＳ２７において、近傍ゲートウェイ処理委譲部２０７は、ステップＳ２６で選定されたゲートウェイ２００に、データの送信等の処理を委譲する。なお、処理の委譲の手順等の詳細については後で別の図を参照しながら説明する。
【００６８】
ステップＳ２８において、バックエンドサーバー１００は、当該ゲートウェイ２００または委譲先のゲートウェイ２００から送信されたデータを受信する。バックエンドサーバー１００による受信の処理の詳細については、次の図９を参照しながら説明する。
【００６９】
上の、フローチャートを参照した説明では、ゲートウェイ２００は、受信したデータの加工処理を行った後で、バックエンドサーバー１００へのデータ送信を委譲するか否かの判定を行うようにした。代わりに、次のようにしてもよい。即ち、ゲートウェイ２００は、データを受信した後で且つそのデータの加工処理を行う前に、その時点での処理負荷等に基づいて、データの加工処理とバックエンドサーバー１００へのデータ送信の処理とを、他のゲートウェイ２００に委譲するか否かを判断すてもよい。判断の結果、ゲートウェイ２００は、データの加工処理とバックエンドサーバー１００へのデータ送信の処理とをまとめて、他のゲートウェイ２００に委譲することもできる。
【００７０】
図９は、バックエンドサーバー１００がゲートウェイ２００からデータを受信する際の処理の手順を示すフローチャートである。以下、このフローチャートに沿って説明する。
【００７１】
ステップＳ３１において、バックエンドサーバー１００のゲートウェイ通信部１０２は、ゲートウェイ２００から送信されたデータを受信する。
【００７２】
ステップＳ３２において、サーバー制御部１０１は、ステップＳ３１で受信したデータの内部を参照して、そのデータがゲートウェイ２００間で委譲された記録を持つものであるか否かを判定する。言い換えれば、そのデータが複数のゲートウェイ２００を経由して送信されたものであるか否かを確認する。バックエンドサーバー１００が受信するデータの構造は、図６に示して説明した通りである。つまり、受信されたデータの中の、キーワード「ｒｅｌａｙ−ｇａｔｅｗａｙ」で表される部分を参照することにより、そのデータがゲートウェイ２００間での委譲によって送信されてきたものであるか否かがわかる。データの委譲があった場合（ステップＳ３２：ＹＥＳ）、次のステップＳ３３に進む。データの委譲がなかった場合（ステップＳ３２：ＮＯ）、ステップＳ３６の処理に飛ぶ。
【００７３】
ステップＳ３３において、統計情報計算部１０３は、ステップＳ３１で受信したデータから、中継ゲートウェイの情報を抽出する。つまり、統計情報計算部１０３は、キーワード「ｒｅｌａｙ−ｇａｔｅｗａｙ」で表される部分を抽出する。統計情報計算部１０３が抽出する中継ゲートウェイの情報は、図６を参照しながら説明したように、ゲートウェイ２００の識別情報と状況情報の対のリストとして表されている。そのリストのうちの最後の対においては、状況情報が「ｓｕｃｃｅｓｓ」（通信成功）である。そのリストのうちの最後以外の対においては、状況情報は委譲理由を表している。
【００７４】
図６に示した例においては、最後の対の、ゲートウェイＩＤは「ｇａｔｅｗａｙ４」であり、状況情報は「ｓｕｃｃｅｓｓ」（通信成功）である。その他の対は、次の通りである。即ち、ゲートウェイＩＤ「ｇａｔｅｗａｙ２」に対応して、状況情報「ｃｏｎｎｅｃｔｉｏｎ  ｅｒｒｏｒ」（通信接続エラー）が格納されている。また、ゲートウェイＩＤ「ｇａｔｅｗａｙ３」に対応して、状況情報「Ｈｉｇｈ  ｌｏａｄ」（高負荷）が格納されている。
【００７５】
ステップＳ３４において、統計情報計算部１０３は、中継ゲートウェイの経路途中のゲートウェイ２００（ただし、「通信成功」である最後のゲートウェイ２００を除く）の委譲理由を抽出する。上記の例における、「ｇａｔｅｗａｙ２」に対して、状況情報「ｃｏｎｎｅｃｔｉｏｎ  ｅｒｒｏｒ」（通信接続エラー）が委譲理由である。また、「ｇａｔｅｗａｙ３」に対して、状況情報「Ｈｉｇｈ  ｌｏａｄ」（高負荷）が委譲理由である。統計情報計算部１０３は、これらの委譲理由を、それぞれのゲートウェイＩＤと関連付ける形で、統計情報格納部１０５の、統計情報格納テーブルに書き込む。
【００７６】
ステップＳ３５において、受信データ加工部１０４は、受信したデータから、中継ゲートウェイの情報を削除する。
【００７７】
ステップＳ３６において、受信データ加工部１０４は、受信したデータを、受信データ格納部１０６に書き込む。
【００７８】
ステップＳ３７において、統計情報計算部１０３は、データ送信元のゲートウェイ２００に関する統計情報を、統計情報格納部１０５に書き込む。本ステップで記録される統計情報としては、例えば、次のようなものがある。即ち、所定期間内における当該ゲートウェイ２００からのデータ受信回数や、当該ゲートウェイ２００からのデータ受信間隔や、受信データサイズなどの情報が含まれる。ただし、その他の情報を統計情報として統計情報格納部１０５に書き込むようにしてもよい。
【００７９】
図１０はおよび図１１は、ゲートウェイ２００による委譲の処理を中心とした処理手順を示すフローチャートである。ここで、委譲元のゲートウェイはゲートウェイ２００−１である。また、委譲先のゲートウェイはゲートウェイ２００−２である。図１０は、委譲元のゲートウェイ２００−１の処理の手順を示す。また、図１１は、委譲先のゲートウェイ２００−２の処理の手順を示す。これらの両図のフローチャートは、結合子（Ａ，Ｂ，Ｃ）で結合されている。このフローチャートは、ゲートウェイ２００−１で生じた、バックエンドサーバー１００に送信すべき１件のデータの処理に対応するものである。以下、これらのフローチャートに沿って、処理手順を説明する。
【００８０】
図１０のステップＳ１０１において、ゲートウェイ制御部２０１は、バックエンドサーバー１００に対してデータを送信する必要が生じた際に、バックエンドサーバー１００との間の通信可否を調べ、判定する。
【００８１】
次にステップＳ１０２は、ステップＳ１０１での判定に基づく分岐の処理である。バックエンドサーバー１００との間で通信が可能である場合には、ステップＳ１０３に進む。バックエンドサーバー１００との間で通信が不可能である場合には、ステップＳ１０４に進む。
【００８２】
次にステップＳ１０３に進んだ場合、ゲートウェイ２００−１は、他のゲートウェイ２００への処理の委譲を行わない。この場合、ゲートウェイ２００−１のサーバー通信部２０２は、データをバックエンドサーバー１００に送信する。送信が完了すると、ゲートウェイ２００−１は、本フローチャート全体の処理を終了する。
【００８３】
次にステップＳ１０４に進んだ場合、近傍ゲートウェイ処理委譲部２０７は、近傍ゲートウェイ格納部２０６から、近傍のゲートウェイの一覧リストの情報を読み出す。近傍ゲートウェイ格納部２０６が保持するデータについては、図５を参照しながら説明した通りである。
【００８４】
次にステップＳ１０５において、近傍ゲートウェイ処理委譲部２０７は、ステップＳ１０４において取得したリスト内に、委譲先となり得るゲートウェイ２００が存在するか否かを判断し、処理を分岐する。この判定は、近傍ゲートウェイ格納部が保持していた、ゲートウェイ２００ごとの委譲可否の項目に基づいて行われる。委譲先のゲートウェイ２００がある場合には、ステップＳ１０６に進む。委譲先のゲートウェイ２００がない場合には、ステップＳ１０７に進む。
【００８５】
次にステップＳ１０６に進んだ場合、近傍ゲートウェイ処理委譲部２０７は、ステップＳ１０４で取得したゲートウェイ２００のリスト内から、委譲可否が「可」であり、且つ委譲優先度が最高である近傍のゲートウェイ２００（これが、ゲートウェイ２００−２）に、処理を委譲する。本ステップの処理の終了後、結合子Ａにより、ゲートウェイ２００−２側の、図１１のステップＳ１２１の処理に移る。
【００８６】
次にステップＳ１０７に進んだ場合、即ち他のゲートウェイ２００への委譲が不可である場合、受信データ加工部２０４は、受信データ格納部２０５にデータを格納する。このデータは、状況が変わったとき、つまりゲートウェイ２００−１やゲートウェイ２００―２からバックエンドサーバー１００への通信が可能になったときに、改めて受信データ格納部２０５から取り出され得る。本ステップの処理の終了後、このフローチャート全体の処理を終了する。
【００８７】
ステップＳ１０８に処理が移るのは、委譲先であるゲートウェイ２００−２の処理で、図１１のステップＳ１２８あるいはステップＳ１３４の処理が終わったときである。つまり、委譲先のゲートウェイ２００でデータの送信が完了したときに、委譲元に制御が戻され、ステップＳ１０８に移る。ステップＳ１０８において、受信データ加工部２０４は、受信データ格納部２０５から、委譲先への委譲の対象であったデータを削除する。本ステップの終了後、ステップＳ１０９に移る。
【００８８】
ステップＳ１０９に処理が移るのは、（１）ステップＳ１０８の処理を終えたときと、（２）委譲先であるゲートウェイ２００−２の処理で、図１１のステップＳ１３３あるいはステップＳ１３５の処理が終わったときである。この（２）は、つまり、委譲先においてもデータの送信が完了しなかった場合である。ステップＳ１０９において、近傍ゲートウェイ処理委譲部２０７は、近傍ゲートウェイ格納部２０６の、委譲可否の情報を更新する。つまり、委譲先のゲートウェイ２００からデータの送信ができたか否かの通知を受け、その通知に依り、ゲートウェイ２００ごとの委譲可否の情報を最新の状態に設定する。また、近傍ゲートウェイ処理委譲部２０７は、近傍ゲートウェイ格納部２０６の、委譲優先度の情報を併せて更新してよい。本ステップの処理の終了後、このフローチャート全体の処理を終了する。
【００８９】
図１１のゲートウェイ２００−２（委譲先）のフローチャートへの、委譲元側からのエントリーポイントは、ステップＳ１２１（結合子Ａ）である。また、委譲元側への復帰のポイントは、ステップＳ１２８またはステップＳ１３４（結合子Ｂ）と、ステップＳ１３３またはステップＳ１３５（結合子Ｃ）とである。このフローチャートから、再委譲先のゲートウェイ２００の処理に移るポイントは、ステップＳ１３２（結合子Ａ）である。再委譲先からのこのフローチャートへの復帰のポイントは、Ｓ１３４（結合子Ｂ）と、Ｓ１３５（結合子Ｃ）とである。
【００９０】
なお、委譲先のゲートウェイ２００から、再委譲先のゲートウェイ２００への委譲が行われる場合の、再委譲先での処理の手順は、この図１１と同じである。
【００９１】
図１１のステップＳ１２１から始まる処理は、センサー・ゲートウェイ通信部２０３が、委譲元であるゲートウェイ２００からデータ送信依頼を受信したことをトリガーとして実行される。ステップＳ１２１において、ゲートウェイ制御部２０１は、委譲を受け付けられるか否かを確認する。自装置（ゲートウェイ２００）自身の重大な障害がない限りは、ゲートウェイ制御部２０１は、委譲を受け付ける。
【００９２】
次に、ステップＳ１２２において、ゲートウェイ制御部２０１は、バックエンドサーバー１００との間の通信可否を調べ、判定する。
【００９３】
次のステップＳ１２３は、ステップＳ１２２での判定に基づく分岐の処理である。バックエンドサーバー１００との間で通信が可能である場合には、ステップＳ１２４に進む。バックエンドサーバー１００との間で通信が不可能である場合には、ステップＳ１２９に進む。
【００９４】
次に、ステップＳ１２４に進んだ場合、ゲートウェイ制御部２０１は、自装置（ゲートウェイ２００）の負荷状況を確認する。言い換えれば、ゲートウェイ制御部２０１は、委譲元から委譲された処理を実行しても問題がない程度の負荷状況であるか否かを、確認する。具体的な方法としては、ゲートウェイ制御部２０１は、自装置（ゲートウェイ２００）における、全体の、あるいは各機能部（サーバー通信部２０２や、センサー・ゲートウェイ通信部２０３や、受信データ加工部２０４等の各々）の、負荷状況等を常にモニタリングする。負荷状況の指標は、ＣＰＵ使用率、入出力チャネル使用率、磁気ディスク装置等を使用する場合にはその使用率や入出力待ち時間等、主記憶装置と補助記憶装置との間のページング等の発生率などを含む。ゲートウェイ制御部２０１は、その負荷状況をトータルに数値化する。例えば、ゲートウェイ制御部２０１は、負荷を表す数値が大きいほど高負荷であるような数値を算出できるようにする。そして、ゲートウェイ制御部２０１は、ステップＳ１２４に進んで時点で算出された負荷の数値が、予め定めた閾値以上であるか否かにより、負荷状況を確認する。
【００９５】
次に、ステップＳ１２５において、ステップＳ１２４での確認の結果に基づく分岐を行う。自装置が低負荷（例えば、上記の負荷数値が閾値未満）である場合には、ステップＳ１２６に進む。自装置が高負荷（例えば、上記の負荷数値が閾値以上）である場合には、ステップＳ１２９に進む。
【００９６】
次に、ステップＳ１２６に進んだ場合、即ちバックエンドサーバー１００にデータを送信することが可能である場合、受信データ加工部２０４は、送信するデータ内に委譲情報を格納する。具体的には、受信データ加工部２０４は、図６で説明したデータ内のキーワード「ｒｅｌａｙ−ｇａｔｅｗａｙ」で表されるデータを、送信用のデータ内に正しく設定する。
【００９７】
次に、ステップＳ１２７において、サーバー通信部２０２は、ステップＳ１２６で設定した委譲情報を含むデータを、バックエンドサーバー１００に送信する。
【００９８】
次に、ステップＳ１２８において、ゲートウェイ制御部２０１は、バックエンドサーバーへの送信が完了したことを、委譲元のゲートウェイ２００に通知する。このときに、自装置のゲートウェイＩＤに関連付けて委譲元のゲートウェイ２００に対して通知される状況情報は「ｓｕｃｃｅｓｓ」（通信成功）である。本ステップの処理が終了すると、図１０のステップＳ１０８に戻る。
【００９９】
なお、この「ｓｕｃｃｅｓｓ」（通信成功）の通知を受けたゲートウェイ２００側では、近傍ゲートウェイ処理委譲部２０７が、近傍ゲートウェイ格納部２０６内の情報を更新する。つまり、「ｓｕｃｃｅｓｓ」（通信成功）の通知を行ったゲートウェイ２００のゲートウェイＩＤに関連付けられた委譲可否は「可」に更新される。また、そのゲートウェイＩＤに関連付けられた委譲優先度が上げられる。これにより、バックエンドサーバー１００へのデータの送信が成功したゲートウェイ２００は、次回以後に、委譲先として選定されやすくなる。
【０１００】
ステップＳ１２９に進んだ場合、即ち、自装置からバックエンドサーバー１００へのデータ送信を行えなかった場合、近傍ゲートウェイ処理委譲部２０７は、再委譲先のゲートウェイ２００を選定するための処理をする。
【０１０１】
ステップＳ１３０において、近傍ゲートウェイ処理委譲部２０７は、近傍ゲートウェイ格納部２０６から、近傍のゲートウェイの一覧リストの情報を読み出す。このリストの情報については、図５を参照しながら説明した通りである。
【０１０２】
次に、ステップＳ１３１において、近傍ゲートウェイ処理委譲部２０７は、ステップＳ１３０で取得したリスト内に、委譲先となり得る近傍のゲートウェイ２００が存在するか否かを判定する。この判定は、近傍ゲートウェイ格納部が保持していた、ゲートウェイ２００ごとの委譲可否の項目に基づいて行われる。委譲先のゲートウェイ２００がある場合には、ステップＳ１３２に進む。委譲先のゲートウェイ２００がない場合には、ステップＳ１３３に進む。
【０１０３】
次に、ステップＳ１３２に進んだ場合、委譲可能であるゲートウェイ２００のうち、最も優先度の高いゲートウェイ２００を処理委譲先として選定し、そのゲートウェイ２００に処理を委譲する。再委譲先のゲートウェイ２００での処理は、本フローチャートのステップＳ１２１（結合子Ａによる結合）である。
【０１０４】
次に、ステップＳ１３３に進んだ場合、ゲートウェイ制御部２０１は、委譲不可理由を委譲元のゲートウェイ２００に通知する。ここで通知される委譲不可理由は、前記のステップＳ１２３での判断結果に基づく「ｃｏｎｎｅｃｔｉｏｎ  ｅｒｒｏｒ」（通信接続エラー）や、ステップＳ１２５での判断結果に基づく「Ｈｉｇｈ  ｌｏａｄ」（高負荷）である。委譲不可理由は、自装置のゲートウェイＩＤと関連付ける形で、委譲元に通知される。
【０１０５】
ステップＳ１３４は、再委譲先の（あるいは、さらにその再委譲先等の）ゲートウェイ２００において、バックエンドサーバー１００へのデータの送信が完了した場合の、復帰ポイントである。ステップＳ１３４において、ゲートウェイ制御部２０１は、再委譲先のゲートウェイ２００から通知された、単独の状況情報またはリスト化された状況情報に、自装置の状況情報を付加し、その情報を委譲元に通知する。自装置の状況情報は、「ｃｏｎｎｅｃｔｉｏｎ  ｅｒｒｏｒ」（通信接続エラー）や、「Ｈｉｇｈ  ｌｏａｄ」（高負荷）等である（図６の「ｒｅｌａｙ−ｇａｔｅｗａｙ」も参照）。本ステップ終了後は、委譲元のゲートウェイ２００の処理に戻る（結合子Ｂ）。
【０１０６】
ステップＳ１３５は、再委譲先の（あるいは、さらにその再委譲先等の）ゲートウェイ２００において、バックエンドサーバー１００へのデータの送信が完了しなかった場合の、復帰ポイントである。ステップＳ１３５において、ゲートウェイ制御部２０１は、再委譲先のゲートウェイ２００から通知された、単独の状況情報またはリスト化された状況情報に、自装置の状況情報を付加し、その情報を委譲元に通知する。自装置の状況情報は、「ｃｏｎｎｅｃｔｉｏｎ  ｅｒｒｏｒ」（通信接続エラー）や、「Ｈｉｇｈ  ｌｏａｄ」（高負荷）等である（図６の「ｒｅｌａｙ−ｇａｔｅｗａｙ」も参照）。本ステップ終了後は、委譲元のゲートウェイ２００の処理に戻る（結合子Ｃ）。
【０１０７】
なお、再委譲先でのデータ送信が成功したか否かに関わらず、ステップＳ１３３や、Ｓ１３４や、Ｓ１３５における、委譲元への通知の際には、ゲートウェイ制御部２０１は、自装置においてデータ送信できなかった理由を通知する。この通知は、委譲元のゲートウェイ２００において、近傍ゲートウェイ格納部２０６内の、委譲可否および委譲優先度の項目に反映される。つまり、それ自身でもデータの送信を行えず、委譲先（再委譲先）のゲートウェイも存在しないようなゲートウェイ２００に関しては、委譲可否が「不可」と設定される。また、それ自身ではデータの送信を行えないものの、データ送信を行える委譲先（再委譲先）のゲートウェイ２００を持っているようなゲートウェイ２００に関しては、委譲可否が「不可」と設定され、委譲優先度がそれまでよりも相対的に下げられる。これらにより、委譲先のゲートウェイ２００を選定する際の選定精度が向上する。
【０１０８】
大元（委譲元）のゲートウェイ２００においても、委譲先であるゲートウェイ２００であっても、そこからの委譲先であるゲートウェイ２００から状況情報の通知を受けた場合には、近傍ゲートウェイ格納部２０６の情報は更新される。状況情報は、委譲先のゲートウェイ２００から、ゲートウェイＩＤに関連付けられた形で通知される。その通知は、複数のゲートウェイ２００に関する状況情報を含む場合がある（図６の「ｒｅｌａｙ−ｇａｔｅｗａｙ」を参照）。それらの状況情報が関連付けられたゲートウェイＩＤごとに、近傍ゲートウェイ処理委譲部２０７は、近傍ゲートウェイ格納部２０６内の情報を更新する。具体的には、近傍ゲートウェイ処理委譲部２０７は、委譲可否のデータを切り替えたり、委譲優先度の値を上げたり下げたりする。
【０１０９】
なお、委譲可否が一旦「不可」となったゲートウェイ２００の情報が永久に「不可」であり続けることを避けるために、近傍ゲートウェイ処理委譲部２０７が、所定時間間隔ごとに委譲可否を強制的に「可」にリセットするようにしてもよい。委譲可否を強制的に「可」にリセットすることにより、そのゲートウェイ２００に対する委譲が試みられることとなる。ここでの所定時間は、適宜設定されるものであり、例えば、１分、１０分、１時間、３時間、１２時間、２４時間等といった長さである。
【０１１０】
［変形例］
ここまでに説明した実施形態では、近傍ゲートウェイ格納部２０６に格納されているゲートウェイ２００ごとの情報は、委譲処理の結果を受けた場合にのみ更新されていた。変形例として、バックエンドサーバー１００が情報を配信するととによって、ゲートウェイ２００内の近傍ゲートウェイ格納部２０６の情報を更新するようにしてもよい。
【０１１１】
具体的には、バックエンドサーバー１００の統計情報格納部１０５の情報は、受信したデータに含まれるゲートウェイ２００ごとの状況情報に基づいて、随時更新される。また、統計情報計算部１０３は、統計情報格納部１０５に蓄積される統計情報を基に、ゲートウェイ２００ごとの委譲優先度を計算する。つまり、ここで計算される委譲優先度は、ゲートウェイ２００ごとに、データ送信が成功しやすい度合いを表す数値である。ゲートウェイ通信部１０２は、統計情報計算部１０３が算出したゲートウェイ２００ごとの委譲優先度の値の集合を、ゲートウェイ２００に対して配信する。バックエンドサーバー１００とゲートウェイ２００との間の通信が障害等で接続できない場合には、バックエンドサーバー１００からの配信データが、他のゲートウェイ２００を経由して届けられるようにしてもよい。ゲートウェイ２００は、バックエンドサーバー１００からこの配信を受信する。そして、ゲートウェイ２００の近傍ゲートウェイ処理委譲部２０７は、配信された委譲優先度のデータを用いて、自装置の近傍ゲートウェイ格納部２０６の情報を更新する。
【０１１２】
この変形例を用いる場合には、より広い範囲のゲートウェイ２００から収集された情報に基づいて、各ゲートウェイ２００の情報を一斉に更新できるメリットが生じる。つまり、各ゲートウェイ２００の状況に基づく学習効果が、比較的早く多くのゲートウェイ２００に伝搬する。
【０１１３】
以上説明した本実施形態の機能の要点は、次に記載する通りである。なお、サーバー通信部２０２とセンサー・ゲートウェイ通信部２０３とゲートウェイ制御部２０１との機能を有する部分を、以下では、通信部と呼ぶ。また、受信データ加工部２０４と受信データ格納部２０５との機能を有する部分を、以下では、データ加工部と呼ぶ。また、近傍ゲートウェイ処理委譲部２０７と、近傍ゲートウェイ格納部２０６との機能を有する部分を、以下では、処理委譲部と呼ぶ。
【０１１４】
通信部は、第１装置側（センサーデバイス３００側）からデータを受信し、第２装置側（バックエンドサーバー１００側）に前記データを送信するとともに、自装置（ゲートウェイ２００）の処理負荷状況を把握する。データ加工部は、前記第１装置側から受信した前記データを所定の形式に加工して、加工後の前記データを前記第２装置側に送信するために通信部に渡す。処理委譲部は、少なくとも自装置の処理負荷状況に基づいて、所定の状況の場合（故障や高負荷等の場合）に、前記データを加工する処理と、前記データを前記第２装置側に送信する処理との、少なくともいずれかの処理を、他のゲートウェイ２００に委譲する。
【０１１５】
通信部が把握する前記の処理負荷状況は、前記データ加工部（受信データ加工部２０４）による処理の処理負荷状況を含むものである。
【０１１６】
処理委譲部は、前記他のゲートウェイ２００を識別するためのゲートウェイ識別情報（ゲートウェイＩＤ）と関連付けて、前記他のゲートウェイ装置への委譲優先度の情報（例えば、数値情報）を管理する。処理委譲部は、前記他のゲートウェイ２００ごとの前記委譲優先度の情報に基づいて、前記他のゲートウェイ２００に処理を委譲する際の、委譲先のゲートウェイ装置２００を選定する。
【０１１７】
処理委譲部は、処理を前記他のゲートウェイ２００に委譲した結果として、他のゲートウェイ２００から、前記ゲートウェイ識別情報と関連付けられた前記他のゲートウェイ２００の状況情報を受け取り、前記他のゲートウェイ装置の状況情報に基づいて、前記委譲優先度の情報を更新する。
【０１１８】
通信部が、委譲元のゲートウェイ２００から、前記データを加工する処理と、前記データを前記第２装置側に送信する処理との、少なくともいずれかの処理を委譲するための委譲依頼を受信した場合に、前記データ加工部は、前記委譲依頼に含まれていた、ゲートウェイ識別情報と関連付けられた他のゲートウェイ装置の状況情報を抽出し、前記ゲートウェイ識別情報と関連付けられた前記他のゲートウェイ装置の前記状況情報を、前記データに付加する処理も行う（図６を参照）。
【０１１９】
通信部は、前記ゲートウェイ識別情報と関連付けられた前記他のゲートウェイ装置の前記状況情報を前記データに付加した結果である前記データを受信した前記第２装置側から、前記ゲートウェイ識別情報と関連付けられた前記状況情報に基づく統計処理の結果として、前記他のゲートウェイ装置に関する前記委譲優先度の情報を受信する。処理委譲部は、前記第２装置から受信した前記委譲優先度の情報を用いて、前記処理委譲部が管理する前記委譲優先度の情報を更新する。これにより、第２装置から、多数のゲートウェイにおいて管理される委譲優先度の情報を一斉に更新することができる。つまり、システム内の全体に学習効果が早く伝搬する。
【０１２０】
［第２実施形態］
次に、第２実施形態について説明する。なお、前実施形態において既に説明した事項については以下において説明を省略する場合がある。ここでは、本実施形態に特有の事項を中心に説明する。
【０１２１】
図１２は、第２実施形態による情報通信システムの、概略機能構成を示すブロック図である。図示するように、本実施形態による情報通信システム２は、バックエンドサーバー１５０と、ゲートウェイ２５０と、センサーデバイス３５０とを含んで構成される。バックエンドサーバー１５０と、ゲートウェイ２５０と、センサーデバイス３５０とが通信ネットワークで接続され、３層の構成を成すことは、第１実施形態における構成と同様である。このブロック図内においては、バックエンドサーバー１５０と、ゲートウェイ２５０とには、符号のサフィックスを付けている。なお、ゲートウェイ２５０を「第１装置」と呼ぶ場合がある。また、バックエンドサーバー１５０を「第２装置」と呼ぶ場合がある。
【０１２２】
バックエンドサーバー１５０と、ゲートウェイ２５０と、センサーデバイス３５０とは、それぞれ、第１実施形態におけるバックエンドサーバー１００と、ゲートウェイ２００と、センサーデバイス３００と同様の機能を有する。
【０１２３】
ゲートウェイ２５０の各々は、通信部２５２と、データ加工部２５４と、処理委譲部２５７とを含んで構成される。これら各部と、第１実施形態におけるゲートウェイ２００内の各部との機能の関係（対応付け）は、次の通りである。即ち、通信部２５２は、概ね、第１実施形態におけるサーバー通信部２０２と、センサー・ゲートウェイ通信部２０３と、ゲートウェイ制御部２０１との機能を有する。データ加工部２５４は、概ね、第１実施形態における受信データ加工部２０４と、受信データ格納部２０５との機能を有する。処理委譲部２５７は、概ね、第１実施形態における近傍ゲートウェイ処理委譲部２０７と、近傍ゲートウェイ格納部２０６との機能を有する。ただし、図１２に示す各部への機能の配置のしかたが、上記の対応付けと異なっていてもよい。
【０１２４】
本実施形態の各部の機能要点は、次の通りである。
【０１２５】
通信部２５２は、第１装置側（センサーデバイス３５０側）からデータを受信し、第２装置側（バックエンドサーバー１００側）に前記データを送信するとともに、自装置（ゲートウェイ２５０）の処理負荷状況を把握する。
【０１２６】
データ加工部２５４は、前記第１装置側から受信した前記データを所定の形式に加工して、加工後の前記データを前記第２装置側に送信するために通信部２５２に渡す。
【０１２７】
処理委譲部２５７は、少なくとも自装置の処理負荷状況に基づいて、所定の状況の場合（故障や高負荷等の場合）に、前記データを加工する処理と、前記データを前記第２装置側に送信する処理との、少なくともいずれかの処理を、他のゲートウェイ２５０に委譲する。
【０１２８】
以上説明した複数の実施形態のいずれにおいても、各装置（バックエンドサーバー、ゲートウェイ、センサーデバイス等）の少なくとも一部の機能をコンピューターで実現することができる。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、一時的に、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【０１２９】
以上説明した複数の実施形態のいずれかによれば、ゲートウェイが故障したり、高負荷であったり、通信不可である場合などに、他のゲートウェイにデータ送信を委譲することができる。つまり、ゲートウェイの処理の過負荷等の状況も考慮して、より適切なゲートウェイに対して処理を委譲することができる。そのとき、データ送信できた実績や、できなかった実績に基づいて、ゲートウェイごとの優先度の情報が更新される。これにより、ゲートウェイから他のゲートウェイに処理（加工処理や送信処理）を委譲する場合に、より成功しやすいゲートウェイに対して委譲することのできる度合いが高まる。また、これにより、委譲のためのオーバーヘッド処理が削減される。つまり、委譲先のゲートウェイの委譲可否および負荷状況等を、システム全体として学習することによって、無駄な委譲をなくす。これにより、ネットワークやゲートウェイの負荷をおさえながらデータ送信が可能となる。
【０１３０】
言い換えれば、ゲートウェイが自身の負荷状況を他のゲートウェイに通知することで、データ送信処理の委譲先から除外し、ゲートウェイ、および、ネットワークに無駄な負荷をかけなくて済むようになる。
【０１３１】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。また、装置内の各部が有する機能を、他の部が有していてもよい。
【産業上の利用可能性】
【０１３２】
本発明は、例えば、多数のＩｏＴ機器を用いたデータ収集に使用することができる。一例として、プラント制御システム、環境データ収集システム、社会インフラストラクチャーシステム等を含む幅広い分野に利用することができる。なお、本発明の利用範囲はここに例示したものには限られない。
【符号の説明】
【０１３３】
１，２  情報通信システム
１００  バックエンドサーバー（第２装置、バックエンドサーバー装置）
１０１  サーバー制御部
１０２  ゲートウェイ通信部
１０３  統計情報計算部
１０４  受信データ加工部
１０５  統計情報格納部
１０６  受信データ格納部
１５０  バックエンドサーバー（第２装置、バックエンドサーバー装置）
２００  ゲートウェイ（ゲートウェイ装置）
２０１  ゲートウェイ制御部
２０２  サーバー通信部（第１通信部）
２０３  センサー・ゲートウェイ通信部（第２通信部）
２０４  受信データ加工部
２０５  受信データ格納部
２０６  近傍ゲートウェイ格納部
２０７  近傍ゲートウェイ処理委譲部
２５０  ゲートウェイ（ゲートウェイ装置）
３００  センサーデバイス（第１装置）
３０１  ゲートウェイ通信部
３０２  データ取得部
３５０  センサーデバイス（第１装置）
４０１，４０２  通信ネットワーク
【図１】
2020167481.tif 000003
【図２】
2020167481.tif 000004
【図３】
2020167481.tif 000005
【図４】
2020167481.tif 000006
【図５】
2020167481.tif 000007
【図６】
2020167481.tif 000008
【図７】
2020167481.tif 000009
【図８】
2020167481.tif 000010
【図９】
2020167481.tif 000011
【図１０】
2020167481.tif 000012
【図１１】
2020167481.tif 000013
【図１２】
2020167481.tif 000014