(57)【要約】【課題】登録対象の登録を確認する間に新たに受信したセンサ値を、サーバに、サーバ側のセンサ値の重複なく速やかに送信する。【解決手段】  中継装置１は、センサ２から逐次送信されるセンサ値を受信し、センサ値の生成時刻とセンサ値とを対応づけて、中継装置１の記憶装置１７にセンサデータとして記憶する受信手段１２と、第１のタイミングで、中継装置１の記憶装置１７にセンサデータとして記憶されサーバに登録されていないセンサ値を登録対象として設定し、登録対象の登録をサーバにリクエストする第１の登録リクエストを、サーバ３に送信する登録リクエスト手段１３と、第１の登録リクエストを送信後、第１の登録リクエストに対するレスポンスを受信しない場合、第２のタイミングで、第１の登録リクエストの登録対象の登録確認をリクエストする確認リクエストを、サーバに送信する確認リクエスト手段１４を備える。【選択図】      図１
2017016519.tif 000002
【特許請求の範囲】
【請求項１】
センサから送信されるセンサ値を、所定のタイミングでサーバに送信して、前記サーバにセンサ値を登録させる中継装置であって、
前記センサから逐次送信されるセンサ値を受信し、センサ値の生成時刻とセンサ値とを対応づけて、前記中継装置の記憶装置にセンサデータとして記憶する受信手段と、
第１のタイミングで、前記記憶装置に前記センサデータとして記憶され前記サーバに登録されていないセンサ値を登録対象として設定し、前記登録対象の登録を前記サーバにリクエストする第１の登録リクエストを、前記サーバに送信する登録リクエスト手段と、
前記第１の登録リクエストを送信後、前記第１の登録リクエストに対するレスポンスを受信しない場合、第２のタイミングで、前記第１の登録リクエストの登録対象の登録確認をリクエストする確認リクエストを、前記サーバに送信する確認リクエスト手段と
を備えることを特徴とする中継装置。
【請求項２】
前記確認リクエスト手段が前記第２のタイミングで前記確認リクエストを送信した後、前記第１の登録リクエストの登録対象が登録されていることが確認された場合、
前記登録リクエスト手段は、前記第１のタイミング後に受信した新たなセンサ値を登録対象として設定した、第２の登録リクエストを、前記サーバに送信する
ことを特徴とする請求項１に記載の中継装置。
【請求項３】
前記登録リクエスト手段は、
前記第１の登録リクエストの登録対象を識別する第１の識別子を、前記第１の登録リクエストに含ませるとともに、
前記第２の登録リクエストの登録対象を識別する第２の識別子を、前記第２の登録リクエストに含ませる
ことを特徴とする請求項２に記載の中継装置。
【請求項４】
前記確認リクエスト手段が前記第２のタイミングで前記確認リクエストを送信した後、前記第１の登録リクエストの登録対象が登録されていないことが確認された場合、
前記登録リクエスト手段は、前記第１の登録リクエストの登録対象に、前記第１のタイミング後に受信した新たなセンサ値を加えて設定した、第２の登録リクエストを、前記サーバに送信する
ことを特徴とする請求項１に記載の中継装置。
【請求項５】
前記登録リクエスト手段は、
前記第１の登録リクエストの登録対象を識別する第１の識別子を、前記第１の登録リクエストに含ませるとともに、
前記第１の識別子または新たに採番された第２の識別子を、前記第２の登録リクエストに含ませる
ことを特徴とする請求項４に記載の中継装置。
【請求項６】
前記確認リクエスト手段は、
前記第２のタイミングで前記確認リクエストを送信した後、前記確認リクエストに対するレスポンスを受信しない場合、第３のタイミングで、前記確認リクエストを再送する
ことを特徴とする請求項１に記載の中継装置。
【請求項７】
前記確認リクエスト手段は、前記第１の登録リクエストの登録対象を識別する第１の識別子を、前記確認リクエストに含ませる
ことを特徴とする請求項１または６に記載の中継装置。
【請求項８】
コンピュータに、請求項１ないし請求項７のいずれか１項に記載の手段として機能させるための中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサから送信されるセンサ値を、所定のタイミングでサーバに送信して、サーバにセンサ値を登録させる中継装置および中継プログラムに関する。
【背景技術】
【０００２】
昨今の情報機器の発達に伴い、Ｍ２Ｍ通信（Machine to Machine）が普及している。中継装置が、Ｍ２Ｍ通信を用いてセンサと接続し、一般的な通信を用いて、サーバに接続するシステムが考えられる。
【０００３】
このようなシステムにおいて中継装置は、センサから逐次送信されるセンサ値を受信するとともに、所定のタイミングで、センサから受信したセンサ値を登録するための登録リクエストを、サーバに送信する。サーバは、登録リクエストを受信すると、登録リクエストで特定されたセンサ値を一時的に蓄積する。中継装置からコミットリクエストを受信すると、サーバは、一時的に蓄積されたセンサ値を、データベース等で永続的に蓄積する（例えば非特許文献１参照。）。ここで、中継装置が送信したセンサ値をサーバが登録したことを確認できない場合、中継装置は、登録したことを確認できない登録リクエストを、サーバに再送する（非特許文献１の４．６  Ｍｅｓｓａｇｅ  ｏｒｄｅｒｉｎｇおよび４．３．３  ＱｏＳ  ２：Ｅｘａｃｔｌｙ  ｏｎｃｅ  ｄｅｌｉｖｅｒｙ）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】OASIS、" MQTT Version 3.1.1"、［online］、2014年10月29日、OASIS、［平成27年6月24日検索］、インターネット〈URL： http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の方法によると、登録対象の登録を確認する間に、新たにセンサ値を受信するにもかかわらず、この新たに受信したセンサ値を、サーバに適切に送信できない問題があった。
【０００６】
具体的には、再送した登録リクエストについてサーバで登録されたことが確認されるまで、登録リクエストの再送が繰り返される。従って、中継装置は、登録対象の登録を確認する間に新たに受信したセンサ値の送信を、待機する必要があった。或いは、中継装置は、登録対象の登録を確認する間に新たに受信したセンサ値について、異なるリクエストを作成して送信する必要があった。
【０００７】
また、再送する登録リクエストにおいて、新たに受信したセンサ値もまとめて登録する方法も考えられる。しかしながら、従来の方法において登録リクエストの内容を変更可能な仕様となっていないため、このような方法を採用することはできなかった。
【０００８】
このように、登録リクエストを再送する間に新たに受信したセンサ値は、サーバに遅れて送信されたり、煩雑な処理が伴ったりする場合がある。
【０００９】
従って本発明の目的は、登録対象の登録を確認する間に新たに受信したセンサ値を、サーバに、サーバ側のセンサ値の重複なくかつ速やかに送信する中継装置および中継プログラムを提供することである。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の第１の特徴は、センサから送信されるセンサ値を、所定のタイミングでサーバに送信して、サーバにセンサ値を登録させる中継装置に関する。第１の特徴に係る中継装置は、センサから逐次送信されるセンサ値を受信し、センサ値の生成時刻とセンサ値とを対応づけて、中継装置の記憶装置にセンサデータとして記憶する受信手段と、第１のタイミングで、記憶装置にセンサデータとして記憶されサーバに登録されていないセンサ値を登録対象として設定し、登録対象の登録をサーバにリクエストする第１の登録リクエストを、サーバに送信する登録リクエスト手段と、第１の登録リクエストを送信後、第１の登録リクエストに対するレスポンスを受信しない場合、第２のタイミングで、第１の登録リクエストの登録対象の登録確認をリクエストする確認リクエストを、サーバに送信する確認リクエスト手段とを備える。
【００１１】
確認リクエスト手段が第２のタイミングで確認リクエストを送信した後、第１の登録リクエストの登録対象が登録されていることが確認された場合、登録リクエスト手段は、第１のタイミング後に受信した新たなセンサ値を登録対象として設定した、第２の登録リクエストを、サーバに送信する。登録リクエスト手段は、第１の登録リクエストの登録対象を識別する第１の識別子を、第１の登録リクエストに含ませるとともに、第２の登録リクエストの登録対象を識別する第２の識別子を、第２の登録リクエストに含ませる。
【００１２】
確認リクエスト手段が第２のタイミングで確認リクエストを送信した後、第１の登録リクエストの登録対象が登録されていないことが確認された場合、登録リクエスト手段は、第１の登録リクエストの登録対象に、第１のタイミング後に受信した新たなセンサ値を加えて設定した、第２の登録リクエストを、サーバに送信する。登録リクエスト手段は、第１の登録リクエストの登録対象を識別する第１の識別子を、第１の登録リクエストに含ませるとともに、第１の識別子または新たに採番された第２の識別子を、第２の登録リクエストに含ませる。
【００１３】
確認リクエスト手段は、第２のタイミングで確認リクエストを送信した後、確認リクエストに対するレスポンスを受信しない場合、第３のタイミングで、確認リクエストを再送する。確認リクエスト手段は、第１の登録リクエストの登録対象を識別する第１の識別子を、確認リクエストに含ませる。
【００１４】
本発明の第２の特徴は、コンピュータに本発明の第１の特徴に記載の手段として機能させるための中継プログラムに関する。
【発明の効果】
【００１５】
本発明によれば、登録対象の登録を確認する間に新たに受信したセンサ値を、サーバに、サーバ側のセンサ値の重複なくかつ速やかに送信する中継装置および中継プログラムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態に係るデータ処理システムのシステム構成と、中継装置およびサーバの構成を説明する図である。
【図２】図２は、中継装置が記憶するセンサデータの一例を説明する図である。
【図３】図３は、サーバが記憶するリソースデータの一例を説明する図である。
【図４】図４は、本発明の実施の形態に係るデータ処理システムにおいて、中継装置が送信した登録リクエストをサーバが受信し、サーバが送信したレスポンスを中継装置が受信する場合の処理を説明するシーケンス図である。
【図５】図５は、本発明の実施の形態に係るデータ処理システムにおいて、サーバが中継装置から登録リクエストを受信しリソースデータを更新したものの、サーバが送信したレスポンスを中継装置が受信しなかった場合の処理を説明するシーケンス図である。
【図６】図６は、本発明の実施の形態に係るデータ処理システムにおいて、中継装置がサーバに登録リクエストを送信したものの、サーバが登録リクエストを受信しなかった場合の処理を説明するシーケンス図である。
【図７】図７は、本発明の実施の形態に係るデータ処理システムにおいて、中継装置が登録リクエストに対するレスポンスを受信しない場合であって、中継装置が送信した確認リクエストに対するレスポンスを中継装置が受信しない場合の処理を説明するシーケンス図である。
【図８】図８は、本発明の実施の形態に係るデータ処理システムにおいて、中継装置が登録リクエストに対するレスポンスを受信しない場合であって、中継装置が送信した確認リクエストをサーバが受信しない場合の処理を説明するシーケンス図である。
【図９】図９は、本発明の実施の形態に係る中継装置の処理を説明するフローチャートである。
【発明を実施するための形態】
【００１７】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
【００１８】
（データ処理システム）
図１を参照して、本発明の実施の形態に係るデータ処理システム５を説明する。データ処理システム５は、フィールドシステム４、およびサーバ３を備える。フィールドシステム４は、広域ネットワークＮ２を介してサーバ３と接続する。広域ネットワークＮ２は、インターネット網やモバイルネットワーク網などの相互に通信可能な通信ネットワークであって、有線ネットワークでも良いし無線ネットワークでも良い。
【００１９】
フィールドシステム４は、中継装置１およびセンサ２を備える。中継装置１およびセンサ２は、ローカルネットワークＮ１を介して接続される。ローカルネットワークＮ１は、Ｍ２Ｍ通信により接続されるネットワークであって、広域ネットワークＮ２と比べて狭い特定エリアの機器を接続するネットワークである。ローカルネットワークＮ１は、有線ネットワークでも良いし無線ネットワークでも良い。
【００２０】
（センサ）
センサ２は、所定の条件でセンサ値を取得し、通信部（図示せず）を介して、取得したセンサ値を中継装置１に送信する。センサ２は、逐次センサ値を取得して、ローカルネットワークＮ１を介して、中継装置１に送信する。
【００２１】
（中継装置）
中継装置１は、センサ２から送信されるセンサ値を、所定のタイミングでサーバ３に送信して、サーバ３にセンサ値を登録させる。また、送信したセンサ値が、サーバ３において登録されていない場合、再度、センサ値を送信して、サーバ３にセンサ値を登録させる。本発明の実施の形態において中継装置１は、センサ２からセンサ値を受信したタイミングと、センサ値がサーバ３に送信されるタイミングの差が小さくなるように、制御する。
【００２２】
中継装置１は、処理装置１１、通信部１６および記憶装置１７を備える一般的なコンピュータである。一般的なコンピュータが、所定の機能を実現するための中継プログラムを実行することにより、処理装置１１は、受信手段１２、登録リクエスト手段１３および確認リクエスト手段１４を備える。
【００２３】
通信部１６は、ローカルネットワークＮ１を介してセンサ２に接続するとともに、広域ネットワークＮ２を介してサーバ３に接続するためのインタフェースである。
【００２４】
記憶装置１７は、処理装置１１による処理結果や処理装置１１が参照するデータを記憶する記憶媒体であって、センサデータ１８を記憶する。センサデータ１８は、図２に示すように、センサ値の生成時刻とセンサ値とを対応づけたデータである。センサデータ１８の生成時刻は、センサ２がセンサ値を取得した時刻に対応する時刻であって、センサ２がセンサ値を取得した時刻、中継装置１がセンサ値を受信した時刻などである。
【００２５】
受信手段１２は、センサ２から逐次送信されるセンサ値を受信し、センサ値の生成時刻とセンサ値とを対応づけて、記憶装置１７にセンサデータ１８として記憶する。
【００２６】
登録リクエスト手段１３および確認リクエスト手段１４は、所定のタイミングで、登録リクエストおよび確認リクエストをそれぞれ送信する。所定のタイミングは、例えば、センサ値を３度受信した後や、毎分などであって、予め定められている。
【００２７】
登録リクエスト手段１３は、所定のタイミングで、センサ値をサーバ３に送信し、センサ値をサーバ３に登録させる。具体的には登録リクエスト手段１３は、第１のタイミングで、登録対象の登録をサーバ３にリクエストする第１の登録リクエストを、サーバ３に送信する。第１の登録リクエストにおいて、記憶装置１７にセンサデータ１８として記憶されサーバ３に登録されていないセンサ値が、登録対象として設定される。登録リクエストは、登録対象を特定するリソースＩＤ（識別子）を含む。サーバ３は、リソースＩＤと登録対象とを対応づけて登録する。登録対象として、各センサ値の生成時刻を含んでも良い。
【００２８】
登録リクエストに含まれる登録対象は、中継装置１の記憶装置１７にセンサデータ１８として記憶されたセンサ値のうち、サーバ３に登録されていないセンサ値である。登録リクエスト手段１３は、登録対象を指定した登録リクエストを送信した後、サーバ３から、登録が完了した旨のレスポンスを受信すると、登録対象のセンサ値がサーバ３で登録されたことを認識する。登録リクエスト手段１３は、サーバ３から受信するレスポンスや、後述の確認リクエストのレスポンスに応じて、登録リクエストに含める登録対象を特定する。
【００２９】
リソースＩＤは、データ処理システム５において、登録対象を識別するために、一定確率以上で重複が発生しないように採番される。リソースＩＤは、中継装置１が登録リクエストを送信し、その登録リクエストに含まれる登録対象が登録されるまで用いられる。なお、リソースＩＤに対応づけられる登録対象のセンサ値は、登録リクエストが送信される際に、新たに受信したセンサ値をさらに含む場合がある。
【００３０】
リソースＩＤは、そのリソースＩＤが付与された登録リクエストが最初に送信した時刻に基づいて付与されても良い。具体的には、リソースＩＤは、そのリソースＩＤが付与された登録リクエストに含まれるセンサデータを、中継装置１が受信した時刻に基づいて、採番される。
【００３１】
またリソースＩＤは、中継装置１内においてランダムに生成したＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）であっても良い。また、リソースＩＤは、そのリソースＩＤが付与された登録リクエストにおける登録対象のセンサ値から生成されるＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ  ５）によるチェックサム値であっても良い。
【００３２】
確認リクエスト手段１４は、登録リクエスト手段１３が送信したリクエストに対して、サーバ３で登録されたことを示すレスポンスを受信しない場合、登録リクエスト手段１３の登録対象がサーバ３に登録されているか否かを問い合わせる確認リクエストを送信する。具体的には確認リクエスト手段１４は、第１のタイミングで送信された第１の登録リクエストを送信後、第１の登録リクエストに対するレスポンスを受信しない場合、第２のタイミングで、第１の登録リクエストの登録対象の登録確認をリクエストする確認リクエストを、サーバ３に送信する。ここで、確認リクエスト手段１４は、登録対象が登録されているか否かが判別するまで、具体的には、確認リクエスト手段１４がサーバ３からレスポンスを受信するまで、確認リクエストを再送する。確認リクエストは、確認対象を特定するリソースＩＤを含む。
【００３３】
本発明の実施の形態において登録リクエスト手段１３および確認リクエスト手段１４は、センサ２からセンサ値が３回送信された後など、所定のタイミングに登録リクエストまたは確認リクエストを送信するように制御される。
【００３４】
（サーバ）
サーバ３は、中継装置１から送信されたセンサ値を登録して、サーバ３において登録されたことを示すレスポンスを送信するとともに、センサ値の登録確認に対して、レスポンスを送信する。
【００３５】
サーバ３は、処理装置３１、通信部３６および記憶装置３７を備える一般的なコンピュータである。一般的なコンピュータが、所定の機能を実現するためのサーバプログラムを実行することにより、処理装置３１は、登録手段３２および確認手段３３を備える。
【００３６】
通信部３６は、広域ネットワークＮ２を介して中継装置１に接続するためのインタフェースである。
【００３７】
記憶装置３７は、処理装置３１による処理結果や処理装置３１が参照するデータを記憶する記憶媒体であって、リソースデータ３８を記憶する。リソースデータ３８は、図３に示すように、リソースＩＤ（識別子）と、そのリソースとを対応づけたデータである。リソースは、複数のセンサ値の集合である。
【００３８】
登録手段３２は、中継装置１から登録リクエストを受信すると、登録リクエストに含まれるリソースＩＤと登録対象とを対応づけて、記憶装置３７のリソースデータ３８に記憶して、登録対象を登録する。また登録手段３２は、登録対象の登録が完了すると、その旨のレスポンスを中継装置１に送信する。
【００３９】
確認手段３３は、中継装置１から確認リクエストを受信すると、確認リクエストに含まれるリソースＩＤがリソースデータ３８に登録されているか否かを判定し、その旨のレスポンスを返信する。
【００４０】
（正常処理）
図４を参照して、本発明の実施の形態に係るデータ処理方法を説明する。図４に示す処理は、中継装置１が送信した登録リクエストをサーバ３が受信し、サーバ３が送信したレスポンスを中継装置１が受信する例を説明する。
【００４１】
センサ２は、逐次センサ値を中継装置１に送信する。図４に示す例においてセンサ２は、時間ｔ１、ｔ２、ｔ３、ｔ４、ｔ５、ｔ６…のタイミングで、センサ値を中継装置１に送信する。
【００４２】
中継装置１は、所定のタイミングで、センサ２から送信されたセンサ値をサーバ３に登録させるための登録リクエストで登録対象のリソースを送信する。図４に示す例では、時間ｔ３に対応する時間Ｔ１（第１のタイミング）、時間ｔ６に対応する時間Ｔ２（第２のタイミング）において、中継装置１が登録リクエストを送信する場合を説明する。
【００４３】
なお、登録リクエストを送信するタイミングは、図４に示すように、センサ値を受信するタイミングと同期する場合に限らず、非同期の場合も考えられる。具体的には、中継装置１は、センサ値を受信するタイミングとは別に、所定の時間間隔や条件を満たした際に、登録リクエストを送信するように制御しても良い。
【００４４】
時間Ｔ１になると中継装置１は、ステップＳ１０１において登録対象を識別するリソースＩＤを採番するとともに、登録対象を決定する。ここでは、中継装置１は、時間ｔ１からｔ３のセンサ値を保持するものの、これらのセンサ値は、サーバ３に登録されていないので、登録対象を、時間ｔ１からｔ３のセンサ値とする。また中継装置１は、リソースＩＤとして「１」を採番するとする。
【００４５】
ステップＳ１０２において中継装置１は、ステップＳ１０１で特定したリソースＩＤおよび登録対象を、サーバ３に送信する。サーバ３が登録リクエストを受信すると、ステップＳ１０３においてサーバ３の処理装置３１は、登録対象の時間ｔ１からｔ３のセンサ値を、リソースＩＤ「１」と対応づけて、記憶装置３７にリソースデータ３８として記憶する。リソースデータ３８の更新が完了すると、ステップＳ１０４においてサーバ３の処理装置３１は、登録完了したことを示すレスポンスを中継装置１に送信する。
【００４６】
時間Ｔ２になると中継装置１は、ステップＳ１０５において登録対象を識別するリソースＩＤを採番するとともに、登録対象を決定する。ここでは、中継装置１は、時間ｔ１からｔ６のセンサ値を保持するものの、サーバ３は、時間ｔ１からｔ３のセンサ値のみを記憶するので、登録対象を、時間ｔ４からｔ６のセンサ値とする。また中継装置１は、リソースＩＤとして「２」を採番するとする。
【００４７】
ステップＳ１０６において中継装置１は、ステップＳ１０５で特定したリソースＩＤおよび登録対象を含む登録リクエストを、サーバ３に送信する。サーバ３が登録リクエストを受信すると、ステップＳ１０７においてサーバ３の処理装置３１は、登録対象の時間ｔ４からｔ６のセンサ値を、リソースＩＤ「２」と対応づけて、記憶装置３７にリソースデータ３８として記憶する。この結果、リソースデータ３８は、リソースＩＤ「１」に対応づけられた時間ｔ１からｔ３のセンサ値と、リソースＩＤ「２」に対応づけられた時間ｔ４からｔ６のセンサ値を含む。リソースデータ３８の更新が完了すると、ステップＳ１０８においてサーバ３の処理装置３１は、登録完了したことを示すレスポンスを中継装置１に送信する。
【００４８】
（リソースデータの更新に成功し、中継装置１がレスポンスを受信しない場合）
図４を参照して登録リクエストやレスポンスが失敗なく送受信される場合を説明したが、登録リクエストがサーバ３に到着しない場合や、登録リクエストに対するレスポンスが中継装置１に到着しない場合が考えられる。登録リクエストまたはレスポンスが送信先に到着しない場合でも、図５および図６に示すように、中継装置１が確認リクエストを送信することにより、中継装置１は、センサ値がサーバ３側のセンサ値の重複なく速やかに送信されるように制御することを可能とする。
【００４９】
まず、サーバ３が中継装置１から登録リクエストを受信しリソースデータ３８を更新したもの、サーバ３が送信したレスポンスを中継装置１が受信しなかった場合を説明する。
【００５０】
すなわち、中継装置１の登録リクエスト手段１３は、時間Ｔ１において第１の登録リクエストを送信する。第１の登録リクエストには、記憶装置１７にセンサデータ１８として記憶されサーバ３に登録されていないセンサ値が、登録対象として設定される。ここで、登録リクエスト手段１３は、第１の登録リクエストの登録対象を識別するリソースＩＤ「１」を、第１の登録リクエストに含ませる。その後、レスポンスを中継装置１が受信しない場合、時間Ｔ２において中継装置１の確認リクエスト手段１４は、リソースＩＤ「１」を指定した第１の確認リクエストをサーバ３に送信する。
【００５１】
確認リクエスト手段１４が確認リクエストを送信した後、第１の登録リクエストの登録対象が登録されていることを示すレスポンスを受信した場合、登録リクエスト手段１３は、時間Ｔ２で、第２の登録リクエストを、サーバ３に送信する。第２の登録リクエストにおいて、時間Ｔ１後に受信した新たなセンサ値が、登録対象として設定される。また登録リクエスト手段１３は、第２の登録リクエストの登録対象を識別するリソースＩＤ「２」を、第２の登録リクエストに含ませる。
【００５２】
図５を参照して、処理を説明する。図４を参照して説明したように、時間Ｔ１になると中継装置１は、ステップＳ２０１において、登録対象を識別するリソースＩＤ「１」を採番するとともに、登録対象として、時間ｔ１からｔ３のセンサ値を決定する。ステップＳ２０２において中継装置１は、ステップＳ２０１で特定したリソースＩＤおよび登録対象を含む第１の登録リクエストを、サーバ３に送信する。サーバ３が第１の登録リクエストを受信すると、ステップＳ２０３においてサーバ３の処理装置３１は、登録対象の時間ｔ１からｔ３のセンサ値を、リソースＩＤ「１」と対応づけて、記憶装置３７にリソースデータ３８として記憶する。リソースデータ３８の更新が完了すると、ステップＳ２０４においてサーバ３の処理装置３１は、登録完了したことを示すレスポンスを中継装置１に送信する。
【００５３】
しかしながら、ステップＳ２０４でサーバ３が送信したレスポンスが中継装置１に到着せず、送信されたレスポンスを中継装置１が受信しないまま時間Ｔ２になると、中継装置１は、ステップＳ２０５においてリソースＩＤ「１」を指定した確認リクエストをサーバ３に送信する。ステップＳ２０６においてサーバ３はリソースデータ３８を参照して、リソースＩＤ「１」のセンサ値が登録されているか否かを判定する。サーバ３は、ステップＳ２０７でリソースＩＤ「１」のセンサ値が登録されていると判定すると、ステップＳ２０８において、リソースＩＤ「１」のセンサ値が登録されていることを示すレスポンスを中継装置１に送信する。
【００５４】
中継装置１は、ステップＳ２０８においてレスポンスを受信し、サーバ３において、リソースＩＤ「１」のセンサ値が登録されていることを把握すると、ステップＳ２０９において登録対象を識別する新たなリソースＩＤ「２」を採番するとともに、新たな登録対象として、時間ｔ４からｔ６のセンサ値を決定する。ステップＳ２１０において中継装置１は、ステップＳ２０９で特定したリソースＩＤおよび登録対象を含む第２の登録リクエストを、サーバ３に送信する。
【００５５】
サーバ３が第２の登録リクエストを受信すると、ステップＳ２１１においてサーバ３の処理装置３１は、登録対象の時間ｔ４からｔ６のセンサ値を、リソースＩＤ「２」と対応づけて、記憶装置３７にリソースデータ３８として記憶する。リソースデータ３８の更新が完了すると、ステップＳ２１２においてサーバ３の処理装置３１は、登録完了したことを示すレスポンスを中継装置１に送信する。
【００５６】
このような処理によれば、時間Ｔ１において中継装置１が送信した登録リクエストに対して、サーバ３において登録されたものの、中継装置１がレスポンスを受信しない場合であっても、時間Ｔ２において中継装置１がサーバ３に確認リクエストを送信して、サーバ３に登録されていることを確認する。これにより中継装置１は、時間Ｔ２において新たなセンサ値を登録することができるので、登録リクエストを遅滞なく送信することができる。
【００５７】
次に中継装置１がサーバ３に登録リクエストを送信したものの、サーバ３が登録リクエストを受信しなかった場合を説明する。
【００５８】
すなわち、中継装置１の登録リクエスト手段１３は、時間Ｔ１において第１の登録リクエストを送信する。ここで、登録リクエスト手段１３は、第１の登録リクエストの登録対象を識別するリソースＩＤ「１」を、第１の登録リクエストに含ませる。その後、サーバ３が第１の登録リクエストを受信しない場合、中継装置１は、サーバ３からレスポンスを受信しないまま、時間Ｔ２となる。時間Ｔ２において中継装置１の確認リクエスト手段１４は、リソースＩＤ「１」を指定した第１の確認リクエストをサーバ３に送信する。
【００５９】
確認リクエスト手段１４が確認リクエストを送信した後、第１の登録リクエストの登録対象が登録されていないことを示すレスポンスを受信した場合、登録リクエスト手段１３は、時間Ｔ２で、第１の登録リクエストの登録対象（時間ｔ１からｔ３のセンサ値）に、時間Ｔ１後に受信した新たなセンサ値（時間ｔ４からｔ６のセンサ値）を加えて設定した、第２の登録リクエストを、サーバ３に送信する。すなわち、第２の登録リクエストには、時間ｔ１からｔ６のセンサ値が、登録対象として設定される。また登録リクエスト手段１３は、第１の登録リクエストの登録対象を識別するリソースＩＤ「１」を、第２の登録リクエストに含ませる。ここで登録リクエスト手段１３は、前回利用したリソースＩＤ「１」に代わって、リソースＩＤ「２」などの、新たに採番したリソースＩＤを用いても良い。
【００６０】
図６を参照して、処理を説明する。図４を参照して説明したように、時間Ｔ１になると中継装置１は、ステップＳ３０１において、登録対象を識別するリソースＩＤ「１」を採番するとともに、登録対象として、時間ｔ１からｔ３のセンサ値を決定する。ステップＳ３０２において中継装置１は、ステップＳ３０１で特定したリソースＩＤおよび登録対象を含む第１の登録リクエストを、サーバ３に送信する。サーバ３が第１の登録リクエストを受信しないまま時間Ｔ２になると、換言すると、中継装置１が第１の登録リクエストに対するレスポンスを受信しないまま時間Ｔ２になると、中継装置１は、ステップＳ３０３においてリソースＩＤ「１」を指定した確認リクエストをサーバ３に送信する。ステップＳ３０４においてサーバ３はリソースデータ３８を参照して、リソースＩＤ「１」のセンサ値が登録されているか否かを判定する。サーバ３は、ステップＳ３０５でリソースＩＤ「１」のセンサ値が登録されていないと判定すると、ステップＳ３０６において、リソースＩＤ「１」のセンサ値が登録されていないことを示すレスポンスを中継装置１に送信する。
【００６１】
中継装置１は、ステップＳ３０６においてレスポンスを受信し、サーバ３において、リソースＩＤ「１」のセンサ値が登録されていないことを把握すると、ステップＳ３０７において前回利用したリソースＩＤ「１」を利用することを決定する。さらに中継装置１は、時間ｔ１からｔ６のセンサ値、すなわち、前回送信した登録リクエストに含まれる時間ｔ１からｔ３のセンサ値と、時間Ｔ１から時間Ｔ２の間に受信した時間ｔ４からｔ６のセンサ値を加えたセンサ値を、登録対象として決定する。ステップＳ３０８において中継装置１は、ステップＳ３０７で特定したリソースＩＤおよび登録対象を含む第２の登録リクエストを、サーバ３に送信する。サーバ３が第２の登録リクエストを受信すると、ステップＳ３０９においてサーバ３の処理装置３１は、登録対象の時間ｔ１からｔ６のセンサ値を、リソースＩＤ「１」と対応づけて、記憶装置３７にリソースデータ３８として記憶する。リソースデータ３８の更新が完了すると、ステップＳ３１０においてサーバ３の処理装置３１は、登録完了したことを示すレスポンスを中継装置１に送信する。
【００６２】
ステップＳ３０７において、前回利用したリソースＩＤ「１」を用いる場合を説明したが、これに限らない。中継装置１の登録リクエスト手段１３は、リソースＩＤ「２」などの、新たに採番したリソースＩＤを用いても良い。
【００６３】
このような処理によれば、時間Ｔ１において中継装置１が送信した登録リクエストがサーバ３に送信されない場合であっても、時間Ｔ２において中継装置１がサーバ３に確認リクエストを送信して、サーバ３に登録されていないことを確認する。これにより中継装置１は、時間Ｔ２において、登録されていないセンサ値と新たなセンサ値を登録することができるので、登録リクエストを遅滞なく送信することができる。
【００６４】
（中継装置１が確認リクエストに対するレスポンスを受信しない場合）
図５および図６を参照して、中継装置１が登録リクエストに対するレスポンスを受信しない場合でも、中継装置１が確認リクエストを送信することによってセンサ値を重複なく、かつ、遅滞なく送信できる場合を説明したが、確認リクエストがサーバ３に到着しない場合や、確認リクエストに対するレスポンスが中継装置１に到着しない場合が考えられる。確認リクエストまたはレスポンスが送信先に到着しない場合でも、図７および図８に示すシーケンスに従って処理されることにより、中継装置１は、センサ値がサーバ３側のセンサ値の重複なく速やかに送信されるように制御することを可能とする。
【００６５】
まず、サーバ３が確認リクエストを受信したものの、サーバ３が送信したレスポンスを中継装置１が受信しなかった場合を説明する。
【００６６】
すなわち、中継装置１の登録リクエスト手段１３は、時間Ｔ１において第１の登録リクエストを送信する。ここで、登録リクエスト手段１３は、第１の登録リクエストの登録対象を識別するリソースＩＤ「１」を、第１の登録リクエストに含ませる。登録リクエストに対するレスポンスを受信しない場合、確認リクエスト手段１４は、時間Ｔ２において確認リクエストを送信する。この確認リクエストは、第１の登録リクエストのリソースＩＤ「１」を含む。確認リクエスト手段１４は、時間Ｔ２において確認リクエストを送信した後、確認リクエストに対するレスポンスを受信しない場合、時間Ｔ３において、確認リクエストを再送する。
【００６７】
図７を参照して、処理を説明する。図７に示すステップＳ４０１ないしステップＳ４０７の処理は、図５を参照して説明したステップＳ２０１ないしステップＳ２０７の処理と同様である。
【００６８】
ステップＳ４０８においてサーバ３が、確認リクエストに対して、登録されている旨のレスポンスを送信したとしても、中継装置１が受信しないまま時間Ｔ３（第３のタイミング：時間ｔ９に対応）になると、中継装置１は、ステップＳ４０９においてリソースＩＤ「１」を指定した確認リクエストをサーバ３に送信する。ステップＳ４１０においてサーバ３は、受信した確認リクエストに基づいて、リソースＩＤ「１」のセンサ値が登録されているか否かを判定し、その結果を示すレスポンスを、中継装置１に送信する。
【００６９】
また、図８に示すように、登録リクエストに対するレスポンスを受信しないまま時間Ｔ２になり、ステップＳ５０５で送信された確認リクエストがサーバ３に送信されない場合がある。中継装置１が確認リクエストに対するレスポンスを受信しないまま時間Ｔ３になると、中継装置１は、ステップＳ５０６においてリソースＩＤ「１」を指定した確認リクエストをサーバ３に送信する。ステップＳ５０７においてサーバ３は、受信した確認リクエストに基づいて、リソースＩＤ「１」のセンサ値が登録されているか否かを判定し、その結果を示すレスポンスを、中継装置１に送信する。
【００７０】
図７および図８に示す例において、時間Ｔ１後に送信された登録リクエストはサーバ３において処理されている。従って、時間Ｔ３の後、サーバ３が、登録されている旨のレスポンスを送信し、中継装置１がそのレスポンスを受信した場合、その後中継装置１は、新たなリソースＩＤを採番するとともに、中継装置１が保持しサーバが保持しないセンサ値を登録対象とする登録リクエストを送信する。この登録リクエストの登録対象は、時間Ｔ１の後、時間Ｔ３までに受信した時間ｔ４からｔ９のセンサ値である。
【００７１】
なお、図７および図８に示す例において、時間Ｔ１で中継装置１が送信した登録リクエストに基づいてサーバ３が登録対象を登録しておらず、登録リクエストに対するレスポンスを受信していない場合を説明する。時間Ｔ３において中継装置１は、確認リクエストに対するレスポンスを受信して、中継装置１が送信した登録リクエストに基づいてサーバ３が登録していないことを確認すると、その後中継装置１は、中継装置１が保持しサーバ３が保持しないセンサデータについて登録リクエストを送信する。このときの登録対象は、時間Ｔ１で送信した登録リクエストの登録対象の時間ｔ１からｔ３のセンサ値に、時間Ｔ１の後、時間Ｔ３までに受信した時間ｔ４からｔ９のセンサ値を加えた、時間ｔ１からｔ９のセンサ値である。
【００７２】
このように、中継装置１が確認リクエストを送信後、レスポンスを受信しない場合でも、中継装置１は、確認リクエストの送信を繰り返す。また確認リクエストに対するレスポンスを受信したタイミングで、中継装置１は、中継装置１が保持しサーバ３が保持しないセンサ値について、登録リクエストを送信する。これにより中継装置１は、既に送信した登録リクエストの登録対象が、サーバ３で登録されているか否かを確認できたタイミングで、確認する間に送信されたセンサ値を登録対象に加えて登録リクエストを送信できるので、センサ値の遅延を抑制することができる。
【００７３】
（中継処理）
図９を参照して、本発明の実施の形態に係る中継装置１の処理を説明する。
【００７４】
まず中継装置１は、ステップＳ１において、センサデータの受信タイミング毎や指定された時間間隔等、あらかじめ定められたタイミング毎にセンサ２から新たなセンサ値を受信しているか否かを確認し、新たなセンサ値を受信していた場合、ステップＳ２において受信した新たなセンサ値を、記憶装置１７にセンサデータ１８として記憶する。ステップＳ１で新たなセンサ値を受信していない場合はステップＳ３に進む。ステップＳ３においてセンサ値をサーバ３に送信するタイミングであるか否か、すなわち、時間Ｔ１、Ｔ２等のタイミングであるか否かを判定する。センサ値をサーバ３に送信するタイミングでない場合、ステップＳ１に戻り、中継装置１は、ステップＳ１においてセンサ２からセンサ値を受信する。
【００７５】
一方、センサ値をサーバ３に送信するタイミングになると、ステップＳ４に進む。
【００７６】
ステップＳ４において、登録リクエストの最初の送信タイミングであるか否か、換言すると、既に送信した登録リクエストがあるか否かを判定する。最初の送信タイミングの場合、ステップＳ７に進み、そうでない場合、ステップＳ５に進む。ステップＳ５において、前回の送信タイミングで、最後に送信したリクエスト種別によって処理を振り分ける。
【００７７】
ステップＳ５において、前回の送信タイミングで登録リクエストを送信したと判定された場合、ステップＳ６に進む。ステップＳ６において、前回の送信タイミングで送信された登録リクエストに対して、登録された旨のレスポンスを受信したか否かを判定する。登録された旨のレスポンスを受信した場合、ステップＳ７に進む。
【００７８】
ステップＳ７において中継装置１は、新たなＩＤを採番して、送信対象に登録リクエストを前回送信した後に受信したセンサ値を設定した、登録リクエストを生成する。さらにステップＳ８において中継装置１は、ステップＳ７で生成した登録リクエストをサーバ３に送信する。この処理は、図４に示すシーケンス図の処理に対応する。
【００７９】
ステップＳ６の判定において、前回の送信タイミングで送信された登録リクエストに対して、登録された旨のレスポンスを受信していない場合、ステップＳ９に進む。ステップＳ９において中継装置１は、登録リクエスト前回送信時のリソースＩＤ（確認対象ＩＤ）について、サーバ３に確認リクエストを送信する。
【００８０】
確認リクエストに対してレスポンスを受信する場合、ステップＳ１１に進み、受信しない場合、ステップＳ１に戻る。
【００８１】
中継装置１は、確認リクエストに対する確認応答を受信すると、ステップＳ１１において、サーバ３において確認対象ＩＤが登録済みであるか否かを判定する。確認対象ＩＤが登録済みの場合、Ｓ７において中継装置１は、新たなＩＤを採番して、送信対象に登録リクエストを前回送信した後に受信したセンサ値を設定した、登録リクエストを生成する。さらにステップＳ８において中継装置１は、ステップＳ７で生成した登録リクエストをサーバ３に送信する。この処理は、図５に示すシーケンス図の処理に対応する。
【００８２】
ステップＳ１１において、確認対象ＩＤが登録済みでない場合、ステップＳ１２において、登録リクエストを生成する。この登録リクエストは、登録対象として、直近で送信した登録リクエストの登録対象のセンサ値と、この登録リクエストを送信後に新たに受信したセンサ値を設定する。またこの登録リクエストは、リソースＩＤを含み、リソースＩＤは、直近で送信した登録リクエストのリソースＩＤ（確認対象ＩＤ）でも良いし、このリソースＩＤとは異なるリソースＩＤであっても良い。さらにステップＳ８において中継装置１は、ステップＳ１２で生成した登録リクエストをサーバ３に送信する。この処理は、図６に示すシーケンス図の処理に対応する。
【００８３】
ステップＳ５において、前回の送信タイミングで確認リクエストを送信したと判定された場合、すなわち、前回の送信タイミングで、中継装置１が確認リクエストを送信したものの、そのレスポンスを受信しない場合、ステップＳ９に進む。ステップＳ９において中継装置１は、確認リクエスト前回送信時のＩＤ（確認対象ＩＤ）について、再度、サーバ３に確認リクエストを送信する。確認リクエストに対してレスポンスを受信する場合、ステップＳ１１に進み、受信しない場合、ステップＳ１に戻る。この処理は、図７および図８に示すシーケンス図の処理に対応する。
【００８４】
なお図９に示す各処理のうち、ステップＳ２の処理は、受信手段１２が担う。ステップＳ７、Ｓ８およびＳ１２の処理は、登録リクエスト手段１３が担う。ステップＳ９の処理は、確認リクエスト手段１４が担う。
【００８５】
このように本発明の実施の形態において、センサ値の登録リクエストがサーバ３に届かない場合、または、センサ値の登録リクエストに対するレスポンスが中継装置１に届かない場合でも、中継装置１は、確認リクエストをサーバ３に送信する。さらに中継装置１は、確認リクエストに対するレスポンスを受信して、サーバ３における登録対象を取得すると、サーバ３に登録されていない登録対象を特定して再度登録リクエストを送信する。これにより、センサ２からセンサ値を受信したタイミングから大きく遅れることなく、サーバ３がセンサ値を登録することができる。
【００８６】
さらに確認リクエストがサーバ３に届かない場合、または確認リクエストに対するレスポンスが中継装置１に届かない場合でも、中継装置１は、レスポンスを受信するまで確認リクエストの送信を繰り返す。さらに中継装置１は、確認リクエストに対するレスポンスを受信して、サーバ３における登録対象を取得すると、サーバ３に登録されていない登録対象を特定して再度登録リクエストを送信する。これにより、センサ２からセンサ値を受信したタイミングから大きく遅れることなく、サーバ３がセンサ値を登録することができる。
【００８７】
また本発明の実施の形態において、登録されていないデータを何度も送信することがないので、各装置および通信ネットワークの負担を軽減することができる。また登録リクエストを再送する間に、新たに受信したセンサ値を登録するための別のリクエストを生成し送信する必要がないので、各装置および通信ネットワークの負担が軽減することができる。
【００８８】
従って、本発明の実施の形態に係る方法によれば、登録対象の登録を確認する間に新たに受信したセンサ値を、サーバ３に、サーバ３側のセンサ値の重複なく速やかに送信することができる。
【００８９】
（その他の実施の形態）
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
【００９０】
例えば、本発明の実施の形態に記載したサーバは、図１に示すように一つのハードウェア上に構成されても良いし、その機能や処理数に応じて複数のハードウェア上に構成されても良い。また、既存の情報処理システム上に実現されても良い。
【００９１】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【符号の説明】
【００９２】
１  中継装置
２  センサ
３  サーバ
４  フィールドシステム
５  データ処理システム
Ｎ１  ローカルネットワーク
Ｎ２  広域ネットワーク
１１、３１  処理装置
１２  受信手段
１３  登録リクエスト手段
１４  確認リクエスト手段
１６、３６  通信部
１７、３７  記憶装置
１８  センサデータ
３２  登録手段
３３  確認手段
３８  リソースデータ
【図１】
2017016519.tif 000003
【図２】
2017016519.tif 000004
【図３】
2017016519.tif 000005
【図４】
2017016519.tif 000006
【図５】
2017016519.tif 000007
【図６】
2017016519.tif 000008
【図７】
2017016519.tif 000009
【図８】
2017016519.tif 000010
【図９】
2017016519.tif 000011