(57)【要約】【課題】デバイスデータに対して時刻情報を付与すること。【解決手段】デバイスからのデータを受信すると、前記データの受信時刻と、予め推定された前記デバイスの第１の遅延時間とを用いて、前記データの生成時刻を推定する生成時刻推定手順と、前記生成時刻を示す情報を前記データに付与する付与手順と、前記生成時刻を示す情報が付与されたデータを、前記データの宛先に送信する送信手順と、をコンピュータが実行することを特徴とする。【選択図】図４
2019213033.tif 000002
【特許請求の範囲】
【請求項１】
デバイスからのデータを受信すると、前記データの受信時刻と、予め推定された前記デバイスの第１の遅延時間とを用いて、前記データの生成時刻を推定する生成時刻推定手順と、
前記生成時刻を示す情報を前記データに付与する付与手順と、
前記生成時刻を示す情報が付与されたデータを、前記データの宛先に送信する送信手順と、
をコンピュータが実行することを特徴とする時刻付与方法。
【請求項２】
遅延時間を計測するためのメッセージを前記デバイスに送信し、前記メッセージと、前記メッセージに対する応答とに基づいて、前記デバイス毎又は前記デバイスが種別に応じて分類されるデバイス集合毎に、前記第１の遅延時間を推定する遅延時間推定手順を前記コンピュータが実行し、
前記生成時刻推定手順は、
前記データの受信時刻と、前記遅延時間推定手順により推定された第１の遅延時間とを用いて、前記生成時刻を推定する、ことを特徴とする請求項１に記載の時刻付与方法。
【請求項３】
前記生成時刻推定手順は、
前記受信時刻から、前記第１の遅延時間に対して１／２を乗じた時間を減算した時刻を前記生成時刻として推定する、ことを特徴とする請求項２に記載の時刻付与方法。
【請求項４】
前記遅延時間推定手順は、
前記メッセージの送信時刻と前記応答の受信時刻とから前記デバイスの第２の遅延時間を計測し、前記第２の遅延時間から前記第１の遅延時間を推定する、ことを特徴とする請求項２又は３に記載の時刻付与方法。
【請求項５】
前記遅延時間推定手順は、
予め設定されたＮ個の前記メッセージを前記デバイスに送信し、Ｎ個の前記メッセージの送信時刻と前記応答の受信時刻とからＮ個の前記第２の遅延時間をそれぞれ計測し、Ｎ個の前記第２の遅延時間の平均と、Ｎ個の前記第２の遅延時間の中央値と、Ｎ個の前記第２の遅延時間の経験分布関数に基づく数値計算値若しくは近似値と、Ｎ個の前記第２の遅延時間の累積分布関数に基づく数値計算値とのうちのいずかを前記第１の遅延時間として推定する、ことを特徴とする請求項４に記載の時刻付与方法。
【請求項６】
所定の時間毎に、ＮＴＰサーバとの間で、データ又はメッセージの送受信時刻を得るための時刻情報を同期させる同期手順を前記コンピュータが実行する、ことを特徴とする請求項１乃至５の何れか一項に記載の時刻付与方法。
【請求項７】
デバイスからのデータを受信すると、前記データの受信時刻と、予め推定された前記デバイスの第１の遅延時間とを用いて、前記データの生成時刻を推定する生成時刻推定手段と、
前記生成時刻を示す情報を前記データに付与する付与手段と、
前記生成時刻を示す情報が付与されたデータを、前記データの宛先に送信する送信手段と、
を有することを特徴とする時刻付与装置。
【請求項８】
コンピュータに、請求項１乃至６の何れか一項に記載の時刻付与方法における各手順を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時刻付与方法、時刻付与装置及びプログラムに関する。
【背景技術】
【０００２】
近年、ＩｏＴ（Internet of Things）の進展に伴い、通信ネットワークを介して様々なデバイスからデータを取得できるようになってきた。しかしながら、これらのデータのほとんどは活用されておらず、特に、複数のデバイスからそれぞれ取得可能なデータを組み合わせた活用に関しては皆無に近い。この原因の１つとしては、複数のデバイスからそれぞれ取得されたデータの時刻を同期させることが難しいことが挙げられる。
【０００３】
これに対して、様々な時刻同期の手法が従来から提案されている。これらの従来手法は、大きく２つの手法に分類することができる。１つ目の手法は、データを取得する前にデバイス同士が通信することにより、これらのデバイス同士が保持する時刻情報を同期させる手法である（例えば、非特許文献１参照）。２つ目の手法は、デバイスの性能等の特徴に基づいて、データに付与されている時刻情報のずれを補正する手法である（例えば、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】澤田, 志波, 小国, "加速度計測のための無線センサネットワークの実用的な時刻同期手法の開発," 土木学会論文集A1（構造・地震工学）, Vol.65, No.1（地震工学論文集第30巻）, 2009.
【非特許文献２】塚本, 小幡, 高松, 浅田, "無線センサネットワークによる行動と状況理解に関する研究," 富山県工業技術センター研究報告, No.25, 2011.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、例えば、単機能・単性能なセンサデバイス等の場合、時刻情報を保持することができない等の制約があるため、上記の１つ目の手法を用いることが難しいことがある。
【０００６】
また、仮に上記の１つ目の手法を用いてデバイス同士が保持する時刻情報を同期させたとしても、デバイスが正しい時刻情報を保持していない場合があるため、実際の正確な時刻とのずれが生じることがある。このことは、上記の２つ目の手法を用いた場合であっても同様である。
【０００７】
これに対して、デバイスから送信されたデータ（以降、「デバイスデータ」と表す。）に対して、当該デバイスデータが生成された時刻を示す時刻情報を付与することができれば、複数のデバイスからそれぞれ取得されたデータの時刻を同期させることができるようになる。
【０００８】
本発明は、上記の点に鑑みてなされたもので、デバイスデータに対して時刻情報を付与することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の実施の形態は、デバイスからのデータを受信すると、前記データの受信時刻と、予め推定された前記デバイスの第１の遅延時間とを用いて、前記データの生成時刻を推定する生成時刻推定手順と、前記生成時刻を示す情報を前記データに付与する付与手順と、前記生成時刻を示す情報が付与されたデータを、前記データの宛先に送信する送信手順と、をコンピュータが実行することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、デバイスデータに対して時刻情報を付与することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態における時刻付与システムの全体構成の一例を示す図である。
【図２】本発明の実施の形態における時刻付与装置のハードウェア構成の一例を示す図である。
【図３】本発明の実施の形態における時刻付与システムが実行する各処理の流れの一例を示す図である。
【図４】本発明の実施の形態における時刻付与装置の機能構成の一例を示す図である。
【図５】本発明の実施の形態における時刻補正処理の一例を示すフローチャートである。
【図６】本発明の実施の形態における遅延時間推定処理の一例を示すフローチャートである。
【図７】本発明の実施の形態における時刻付与処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について説明する。本発明の実施の形態では、デバイスデータに対して、当該デバイスデータが生成された時刻（以降、「生成時刻」とも表す。）を示す時刻情報を付与する時刻付与システム１について説明する。なお、本発明の実施の形態では、「時刻」との用語を用いるが、時刻には時分秒だけでなく、例えば、年月日等が含まれていても良い。
【００１３】
＜全体構成＞
まず、本発明の実施の形態における時刻付与システム１の全体構成について、図１を参照しながら説明する。図１は、本発明の実施の形態における時刻付与システム１の全体構成の一例を示す図である。
【００１４】
図１に示すように、本発明の実施の形態における時刻付与システム１は、時刻付与装置１０と、ＮＴＰ（Network Time Protocol）サーバ２０と、複数のデバイス３０と、１以上のデータ利用装置４０とを有する。また、デバイス３０とデータ利用装置４０とは、通信ネットワーク５０を介して通信可能に接続される。なお、通信ネットワーク５０は、例えば、ＴＣＰ／ＩＰプロトコルスタックをサポートするネットワークである。
【００１５】
時刻付与装置１０は、通信ネットワーク５０内のシステム環境（例えば、通信事業者のシステム環境）に設置されたコンピュータ又はコンピュータシステムである。時刻付与装置１０は、通信ネットワーク５０を介してデバイス３０からデータ利用装置４０に送信されるデバイスデータに対して、当該デバイスデータの生成時刻を示す時刻情報を付与する。なお、生成時刻とは、デバイスデータがデバイス３０で生成又は作成された時刻のことである。ただし、生成時刻は、デバイスデータがデバイス３０から送信された時刻であっても良い。
【００１６】
また、時刻付与装置１０は、ＮＴＰサーバ２０と通信を行って、自身が保持している時刻情報（すなわち、システムクロックの時刻情報）を補正する。なお、システムクロックとは、ＯＳ（Operating System）等により管理される時計機能のことである。
【００１７】
ＮＴＰサーバ２０は、通信ネットワーク５０内のシステム環境（例えば、通信事業者のシステム環境）に設置されたコンピュータ又はコンピュータシステムである。ＮＴＰサーバ２０は、時刻付与装置１０に対して正確な時刻情報を提供する。
【００１８】
デバイス３０は、デバイスデータを生成し、データ利用装置４０に送信する各種機器である。デバイス３０としては、例えば、種々のセンサデバイス等が挙げられる。なお、デバイス３０としては、通信ネットワーク５０を介して通信可能なデバイスであれば良く、例えば、家電製品、車両、ウェアラブルデバイス、ゲーム機器等であっても良い。また、複数のデバイス３０の各々は、その機能や性能、仕様等が異なっていても良い。
【００１９】
データ利用装置４０は、デバイス３０から受信したデバイスデータを種々のアプリケーションに活用するコンピュータ又はコンピュータシステムである。このようなアプリケーションとしては、例えば、デバイスデータの分析やデバイスデータを用いた予測等が挙げられる。データ利用装置４０又は当該データ利用装置４０が提供するアプリケーションは、例えば、アプリケーションを提供する事業者等により管理される。なお、データ利用装置４０は、例えば、クラウドサービス等のサービス形態で、デバイスデータを活用したアプリケーションを提供しても良い。
【００２０】
なお、図１に示す時刻付与システム１の全体構成は一例であって、他の構成であっても良い。例えば、ＮＴＰサーバ２０が、通信ネットワーク５０内のシステム環境に含まれていなくも良い。また、例えば、時刻付与装置１０とＮＴＰサーバ２０とが一体で構成されていても良い。
【００２１】
＜ハードウェア構成＞
次に、本発明の実施の形態における時刻付与装置１０のハードウェア構成について、図２を参照しながら説明する。図２は、本発明の実施の形態における時刻付与装置１０のハードウェア構成の一例を示す図である。
【００２２】
図２に示すように、本発明の実施の形態における時刻付与装置１０は、入力装置１１と、表示装置１２と、ＲＡＭ（Random Access Memory）１３と、ＲＯＭ（Read Only Memory）１４と、ＣＰＵ（Central Processing Unit）１５と、外部Ｉ／Ｆ１６と、通信Ｉ／Ｆ１７と、補助記憶装置１８とを有する。これら各ハードウェアは、それぞれがバス１９を介して通信可能に接続されている。
【００２３】
入力装置１１は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置１２は、例えばディスプレイ等であり、ユーザに対して処理結果等を表示するのに用いられる。なお、時刻付与装置１０は、入力装置１１及び表示装置１２のうちの少なくとも一方を有していなくても良い。
【００２４】
ＲＡＭ１３は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ１４は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＣＰＵ１５は、ＲＯＭ１４や補助記憶装置１８等からプログラムやデータをＲＡＭ１３上に読み出して処理を実行する演算装置である。
【００２５】
外部Ｉ／Ｆ１６は、外部装置とのインタフェースである。外部装置には、記録媒体１６ａ等がある。記録媒体１６ａとしては、例えば、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等が挙げられる。
【００２６】
通信Ｉ／Ｆ１７は、時刻付与装置１０が他の装置（例えば、ＮＴＰサーバ２０やデバイス３０、データ利用装置４０等）との間でデータ通信を行うためのインタフェースである。
【００２７】
補助記憶装置１８は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置１８に格納されているプログラムやデータには、例えば、ＯＳや当該ＯＳ上で動作する各種プログラム等がある。
【００２８】
本発明の実施の形態における時刻付与装置１０は、図２に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、図２に示す例では、本発明の実施の形態における時刻付与装置１０が１台の装置（コンピュータ）で実現されている場合について説明したが、これに限られない。本発明の実施の形態における時刻付与装置１０は、複数台の装置（コンピュータ）で実現されていても良い。
【００２９】
＜各処理の流れ＞
以降では、時刻付与システム１が実行する各処理の流れについて、図３を参照しながら説明する。図３は、本発明の実施の形態における時刻付与システム１が実行する各処理の流れの一例を示す図である。
【００３０】
本発明の実施の形態における時刻付与システム１は、時刻付与装置１０の時刻情報をＮＴＰサーバ２０の時刻情報で補正する「時刻補正処理」と、デバイス３０と時刻付与装置１０との間の遅延時間（デバイスデータの送受信に要する時間）を算出する「遅延時間推定処理」と、デバイスデータに対して、遅延時間を用いて算出された時刻情報を付与する「時刻付与処理」とを実行する。
【００３１】
時刻補正処理では、時刻付与装置１０は、時刻補正メッセージをＮＴＰサーバ２０に送信する（ステップＳ１１）。なお、時刻補正メッセージとは、例えば、現在時刻を示す時刻情報の取得をＮＴＰサーバ２０に要求するためのメッセージである。
【００３２】
次に、ＮＴＰサーバ２０は、時刻補正メッセージの応答として、時刻情報が含まれる応答メッセージを時刻付与装置１０に送信する（ステップＳ１２）。
【００３３】
そして、時刻付与装置１０は、応答メッセージを受信すると、当該応答メッセージに含まれる時刻情報で、自身が保持する時刻情報を補正する（ステップＳ１３）。これにより、時刻付与装置１０のシステムクロックの時刻情報が、ＮＴＰサーバ２０が管理する時刻情報（すなわち、正確な時刻を示す時刻情報）に同期される。
【００３４】
遅延時間推定処理では、時刻付与装置１０は、遅延時間計測メッセージをデバイス３０に送信する（ステップＳ２１）。なお、遅延時間計測メッセージとは、遅延時間の計測に用いられる所定のメッセージであり、例えば、ＩＣＭＰ（Internet Control Message Protocol）のｅｃｈｏ  ｒｅｑｕｅｓｔパケット等を用いることができる。
【００３５】
次に、デバイス３０は、遅延時間計測メッセージに対する応答として、応答メッセージを送信する（ステップＳ２２）。次に、時刻付与装置１０は、遅延時間計測メッセージの送信後、当該遅延時間計測メッセージに対する応答メッセージを時刻付与装置１０が受信するまでに要した時間（以降、「計測遅延時間」とも表す。）を計測する（ステップＳ２３）。
【００３６】
そして、時刻付与装置１０は、上記のステップＳ２１〜ステップＳ２３を所定の回数繰り返した後、全ての計測遅延時間から遅延時間（以降、この遅延時間を「推定遅延時間」とも表す。）を算出する（ステップＳ２４）。これにより、時刻付与装置１０とデバイス３０との間のデバイスデータの推定遅延時間が算出される。
【００３７】
時刻付与処理では、デバイス３０は、データ利用装置４０を宛先として、デバイスデータを送信する（ステップＳ３１）。このデバイスデータは、通信ネットワーク５０内の通信事業者のシステム環境に設置されている時刻付与装置１０に受信される。
【００３８】
次に、時刻付与装置１０は、デバイスデータを受信すると、推定遅延時間を用いて当該デバイスデータの生成時刻を算出した上で、この生成時刻を示す時刻情報を当該デバイスデータに付与する（ステップＳ３２）。
【００３９】
そして、時刻付与装置１０は、時刻情報が付与されたデバイスデータをデータ利用装置４０に送信する（ステップＳ３３）。これにより、時刻情報が付与されたデバイスデータがデータ利用装置４０に送信される。
【００４０】
＜機能構成＞
次に、本発明の実施の形態における時刻付与装置１０の機能構成について、図４を参照しながら説明する。図４は、本発明の実施の形態における時刻付与装置１０の機能構成の一例を示す図である。
【００４１】
図４に示すように、本発明の実施の形態における時刻付与装置１０は、通信処理部１１０と、時刻補正処理部１２０と、遅延時間推定処理部１３０と、時刻付与処理部１４０とを有する。これらの各処理部は、時刻付与装置１０にインストールされた１以上のプログラムがＣＰＵ１５に実行させる処理により実現される。
【００４２】
また、本発明の実施の形態における時刻付与装置１０は、計測遅延時間記憶部１５０と、推定遅延時間記憶部１６０とを有する。これらの各記憶部は、例えば補助記憶装置１８を用いて実現可能である。なお、これらの各記憶部のうちの少なくとも１つの記憶部が、例えば、時刻付与装置１０とネットワークを介して接続される記憶装置等を用いて実現されていても良い。
【００４３】
通信処理部１１０は、他の装置との間でデータ通信のための通信処理を実行する。ここで、通信処理部１１０には、デバイスデータ通信部１１１と、時刻補正メッセージ通信部１１２と、計測メッセージ通信部１１３とが含まれる。
【００４４】
デバイスデータ通信部１１１は、デバイス３０からのデバイスデータを受信すると共に、時刻情報が付与されたデバイスデータをデータ利用装置４０に送信する。
【００４５】
時刻補正メッセージ通信部１１２は、時刻補正メッセージをＮＴＰサーバ２０に送信すると共に、ＮＴＰサーバ２０からの応答メッセージを受信する。
【００４６】
計測メッセージ通信部１１３は、遅延時間計測メッセージをデバイス３０に送信すると共に、デバイス３０からの応答メッセージを受信する。
【００４７】
時刻補正処理部１２０は、時刻補正処理を実行する。ここで、時刻補正処理部１２０には、時刻情報補正部１２１が含まれる。時刻情報補正部１２１は、ＮＴＰサーバ２０からの応答メッセージに含まれる時刻情報で、時刻付与装置１０が保持する時刻情報（すなわち、システムクロックの時刻情報）を補正する。
【００４８】
遅延時間推定処理部１３０は、遅延時間推定処理を実行する。ここで、遅延時間推定処理部１３０には、対象設定部１３１と、送信回数設定部１３２と、遅延時間計測部１３３と、遅延時間算出部１３４とが含まれる。
【００４９】
対象設定部１３１は、推定遅延時間の算出する対象（算出対象）として、デバイス３０又はデバイス３０の集合を設定する。
【００５０】
送信回数設定部１３２は、遅延時間計測メッセージをデバイス３０に送信する回数（送信回数）Ｎを設定する。
【００５１】
遅延時間計測部１３３は、遅延時間計測メッセージと、当該遅延時間計測メッセージに対する応答メッセージとを用いて、計測遅延時間を計測する。そして、遅延時間計測部１３３は、計測遅延時間を計測遅延時間記憶部１５０に格納する。
【００５２】
遅延時間算出部１３４は、計測遅延時間記憶部１５０に記憶されているＮ個の計測遅延時間を用いて、推定遅延時間を算出する。そして、遅延時間算出部１３４は、推定遅延時間を推定遅延時間記憶部１６０に格納する。
【００５３】
時刻付与処理部１４０は、時刻付与処理を実行する。ここで、時刻付与処理部１４０には、受信時刻取得部１４１と、推定遅延時間取得部１４２と、生成時刻推定部１４３と、時刻付与部１４４とが含まれる。
【００５４】
受信時刻取得部１４１は、デバイス３０からのデバイスメッセージを受信した時刻を示す時刻情報を取得する。なお、デバイスメッセージを受信した時刻を示す時刻情報は、時刻付与装置１０のシステムクロックから取得される。
【００５５】
推定遅延時間取得部１４２は、推定遅延時間記憶部１６０から推定遅延時間を取得する。生成時刻推定部１４３は、受信時刻と推定遅延時間とを用いて、デバイスメッセージの生成時刻を算出する。時刻付与部１４４は、生成時刻を示す時刻情報をデバイスメッセージに付与する。
【００５６】
なお、図３に示す時刻付与装置１０の機能構成は一例であって、他の構成であっても良い。例えば、時刻付与装置１０が複数の装置（コンピュータ）で構成されている場合、遅延時間推定処理部１３０と時刻付与処理部１４０とをそれぞれ異なる装置が有していても良い。
【００５７】
＜時刻補正処理＞
以降では、本発明の実施の形態における時刻補正処理について、図５を参照しながら説明する。図５は、本発明の実施の形態における時刻補正処理の一例を示すフローチャートである。以降で説明する時刻補正処理は、例えば、予め設定された所定の時間毎に繰り返し実行される。
【００５８】
ステップＳ１０１：通信処理部１１０の時刻補正メッセージ通信部１１２は、時刻補正メッセージをＮＴＰサーバ２０に送信する。これにより、時刻補正メッセージを受信したＮＴＰサーバ２０から、当該時刻補正メッセージに対する応答メッセージが送信される。
【００５９】
ステップＳ１０２：通信処理部１１０の時刻補正メッセージ通信部１１２は、上記の時刻補正メッセージに対する応答メッセージを受信する。なお、応答メッセージには、ＮＴＰサーバ２０が保持する時刻情報が含まれる。
【００６０】
ステップＳ１０３：時刻補正処理部１２０の時刻情報補正部１２１は、応答メッセージに含まれる時刻情報で、時刻付与装置１０が保持する時刻情報を補正する。これにより、時刻付与装置１０が保持する時刻情報が、ＮＴＰサーバ２０が管理する時刻情報（すなわち、正確な時刻を示す時刻情報）に同期される。なお、時刻情報補正部１２１は、例えば、時刻付与装置１０とＮＴＰサーバ２０との間のデータ送受信に要する時間（すなわち、往復遅延時間）を考慮して、応答メッセージに含まれる時刻情報で、時刻付与装置１０が保持する時刻情報を補正する。
【００６１】
以上のように、本発明の実施の形態における時刻付与装置１０は、所定の時間毎に、ＮＴＰサーバ２０との間で時刻情報を同期する。これにより、本発明の実施の形態における時刻付与装置１０は、正確な時刻情報を保持しておくことができる。
【００６２】
＜遅延時間推定処理＞
次に、本発明の実施の形態における遅延時間推定処理について、図６を参照しながら説明する。図６は、本発明の実施の形態における遅延時間推定処理の一例を示すフローチャートである。以降で説明する遅延時間推定処理は、ネットワーク環境の変化等に伴う遅延時間の変動を考慮して、例えば、予め設定された所定の時間毎に繰り返し実行される。
【００６３】
ステップＳ２０１：遅延時間推定処理部１３０の対象設定部１３１は、推定遅延時間の算出対象のデバイス３０又はデバイス３０の集合を設定する。ここで、デバイス３０の数が少ない場合は、各デバイス３０を算出対象としても良いが、デバイス３０の数が膨大である場合、例えば、デバイス３０の種別等の特性情報に基づいて、これらのデバイス３０を複数の集合に分類した上で、この集合（以降、「デバイス集合Ｖ」とも表す。）を算出対象とすれば良い。
【００６４】
より具体的には、例えば、デバイス３０の総数がＭであり、各デバイス３０を算出対象とする場合は、対象設定部１３１は、デバイス３０１，デバイス３０２，・・・，デバイス３０ＭのＭ台の各デバイス３０をそれぞれ算出対象に設定すれば良い。一方で、例えば、デバイス３０の種別等の特性情報に基づいて、Ｍ台のデバイス３０がＣ（＜Ｍ）個のデバイス集合Ｖに分類される場合、対象設定部１３１は、デバイス集合Ｖ１，デバイス集合Ｖ２，・・・，デバイス集合ＶＣのＣ個の各デバイス集合Ｖをそれぞれ算出対象に設定すれば良い。
【００６５】
ステップＳ２０２：遅延時間推定処理部１３０の送信回数設定部１３２は、遅延時間計測メッセージの送信回数Ｎを設定する。なお、送信回数Ｎは予め決められた値を用いても良いし、ユーザにより指定された値を用いても良い。
【００６６】
以降のステップＳ２０３〜ステップＳ２０８は、算出対象（すなわち、デバイス３０又はデバイス集合Ｖ）毎に繰り返し実行される。ただし、上記のステップＳ２０１で設定された算出対象のうち、いくつかの算出対象を選択した上で、選択された算出対象毎に以降のステップＳ２０３〜ステップＳ２０８を繰り返し実行するようにしても良い。
【００６７】
ステップＳ２０３：通信処理部１１０の計測メッセージ通信部１１３は、遅延時間計測メッセージをデバイス３０に送信する。これにより、遅延時間計測メッセージを受信したデバイス３０から、当該遅延時間計測メッセージに対する応答メッセージが送信される。
【００６８】
ここで、デバイス集合Ｖが算出対象に設定されている場合、計測メッセージ通信部１１３は、当該デバイス集合Ｖに属するデバイス３０のうちの１台のデバイス３０に対して遅延時間計測メッセージを送信すれば良い。なお、このような１台のデバイス３０は、デバイス集合Ｖからランダムに選択されても良いし、デバイス集合Ｖから何等かの基準により選択されても良い。
【００６９】
ステップＳ２０４：通信処理部１１０の計測メッセージ通信部１１３は、上記の遅延時間計測メッセージに対する応答メッセージを受信する。
【００７０】
ステップＳ２０５：遅延時間推定処理部１３０の遅延時間計測部１３３は、遅延時間計測メッセージと、当該遅延時間計測メッセージに対する応答メッセージとを用いて、計測遅延時間を計測する。そして、遅延時間計測部１３３は、計測遅延時間を計測遅延時間記憶部１５０に格納する。
【００７１】
ここで、遅延時間計測部１３３は、例えば、上記のステップＳ２０３で送信された遅延時間計測メッセージの送信時刻と、上記のステップＳ２０４で受信した応答メッセージの受信時刻とを用いて、受信時刻と送信時刻との差を計測遅延時間とすれば良い。これは、ＲＴＴ（Round-Trip-Time）を計測する方法と同様の方法である。ただし、この方法に限られず、遅延時間計測部１３３は、遅延時間計測メッセージの送信後、当該遅延時間計測メッセージに対する応答メッセージを時刻付与装置１０が受信するまでに要した時間を計測することができる方法であれば、任意の方法を用いて良い。
【００７２】
ステップＳ２０６：遅延時間推定処理部１３０の遅延時間計測部１３３は、上記のステップＳ２０３で当該デバイス３０に対する遅延時間計測メッセージの送信回数がＮ以上となったか否かを判定する。
【００７３】
上記のステップＳ２０６において、当該デバイス３０に対する遅延時間計測メッセージの送信回数がＮ未満であると判定された場合、遅延時間推定処理部１３０は、ステップＳ２０３に戻る。これにより、当該デバイス３０に対して、遅延時間計測メッセージがＮ回送信される。
【００７４】
一方で、上記のステップＳ２０６において、当該デバイス３０に対する遅延時間計測メッセージの送信回数がＮ以上であると判定された場合、遅延時間推定処理部１３０は、ステップＳ２０７に進む。これにより、計測遅延時間記憶部１５０には、算出対象毎に、Ｎ個の遅延計測時間が格納される。
【００７５】
ステップＳ２０７：遅延時間推定処理部１３０の遅延時間算出部１３４は、計測遅延時間記憶部１５０に記憶されているＮ個の計測遅延時間を用いて、推定遅延時間を算出する。これにより、時刻付与装置１０と、デバイス３０（算出対象のデバイス３０又は算出対象のデバイス集合Ｖに属するデバイス３０）との間の遅延時間が推定される。
【００７６】
ここで、遅延時間算出部１３４は、例えば、以下の（ａ）〜（ｄ）のいずれかの方法により推定遅延時間を算出すれば良い。以降では、Ｎ個の計測遅延時間をｔ１，ｔ２，・・・，ｔＮ，推定遅延時間をＴで表す。
【００７７】
（ａ）計測遅延時間ｔ１，ｔ２，・・・，ｔＮの平均値を推定遅延時間Ｔとする。すなわち、遅延時間算出部１３４は、以下の式（１）により推定遅延時間Ｔを算出する。
【００７８】
【数１】
2019213033.tif 000003
（ｂ）計測遅延時間ｔ１，ｔ２，・・・，ｔＮの中央値を推定遅延時間Ｔとする。すなわち、計測遅延時間ｔ１，ｔ２，・・・，ｔＮを昇順に並び替えた上で、この並び替え後の計測遅延時間を改めてｔ１，ｔ２，・・・，ｔＮと表した場合、遅延時間算出部１３４は、以下の式（２）により推定遅延時間Ｔを算出する。
【００７９】
【数２】
2019213033.tif 000004
（ｃ）遅延時間算出部１３４は、計測遅延時間ｔ１，ｔ２，・・・，ｔＮの経験分布関数に基づいて、推定遅延時間Ｔを数値計算により算出する、又は、当該経験分布関数に対する近似関数を求めた上で、この近似関数から推定遅延時間Ｔを解析的に算出する。ここで、推定遅延時間がＴとなる確率Ｆ（Ｔ）は以下の式（３）で表される。なお、遅延時間算出部１３４により算出される推定遅延時間Ｔに対応する確率Ｆ（Ｔ）は、例えば、ユーザ等によって指定される。言い換えれば、遅延時間算出部１３４は、例えば、ユーザ等により指定された確率Ｆ（Ｔ）に対応する推定遅延時間Ｔを、上記の数値解析又は近似関数の解析により算出する。
【００８０】
【数３】
2019213033.tif 000005
（ｄ）遅延時間が或る確率分布に従うものと仮定した上で、遅延時間算出部１３４は、累積分布関数に基づいて、推定遅延時間Ｔを数値計算により算出する。例えば、遅延時間が正規分布に従うと仮定した場合、確率密度関数Ｆ（Ｔ）は以下の式（４）で表される。なお、遅延時間算出部１３４により算出される推定遅延時間Ｔに対応する確率Ｆ（Ｔ）は、例えば、ユーザ等によって指定される。（ｃ）と同様に、遅延時間算出部１３４は、例えば、ユーザ等により指定された確率Ｆ（Ｔ）に対応する推定遅延時間Ｔを、上記の数値解析により算出する。
【００８１】
【数４】
2019213033.tif 000006
ここで、μは計測遅延時間ｔｉ（ｉ＝１，２，・・・，Ｎ）の平均値、σは計測遅延時間ｔｉ（ｉ＝１，２，・・・，Ｎ）の標準偏差、ｅｒｆは誤差関数である。
【００８２】
ステップＳ２０８：遅延時間推定処理部１３０の遅延時間算出部１３４は、上記のステップＳ２０７で算出した推定遅延時間Ｔを推定遅延時間記憶部１６０に格納する。
【００８３】
なお、推定遅延時間Ｔは、算出対象毎に算出され、推定遅延時間記憶部１６０に記憶される。例えば、算出対象がデバイス３０であり、デバイス３０の総数がＭである場合、デバイス３０毎に、推定遅延時間Ｔ１，Ｔ２，・・・，ＴＭが算出され、推定遅延時間記憶部１６０に記憶される。また、例えば、算出対象がデバイス集合Ｖであり、デバイス集合Ｖの数がＣである場合、デバイス集合Ｖ毎に、推定遅延時間Ｔ１，Ｔ２，・・・，ＴＣが算出され、推定遅延時間記憶部１６０に記憶される。
【００８４】
以上のように、本発明の実施の形態における時刻付与装置１０は、デバイス３０との間の遅延時間が推定される。また、このとき、本発明の実施の形態における時刻付与装置１０は、デバイス３０の総数Ｍが膨大である場合、これらのデバイス３０が分類されたデバイス集合毎に遅延時間を推定する。これにより、デバイス３０の総数が膨大である場合であっても、遅延時間の推定精度を維持したまま、当該推定に伴う計算時間を削減することができる。
【００８５】
＜時刻付与処理＞
次に、本発明の実施の形態における時刻付与処理について、図７を参照しながら説明する。図７は、本発明の実施の形態における時刻付与処理の一例を示すフローチャートである。以降では、デバイス３０から、データ利用装置４０宛のデバイスデータが送信されたものとする。
【００８６】
ステップＳ３０１：通信処理部１１０のデバイスデータ通信部１１１は、デバイス３０からのデバイスデータを受信する。
【００８７】
ステップＳ３０２：時刻付与処理部１４０の受信時刻取得部１４１は、当該デバイスメッセージを受信した時刻を示す時刻情報を取得する。なお、デバイスメッセージを受信した時刻を示す時刻情報は、時刻付与装置１０のシステムクロックから取得される。
【００８８】
ステップＳ３０３：時刻付与処理部１４０の推定遅延時間取得部１４２は、推定遅延時間記憶部１６０に記憶されている推定遅延時間Ｔのうち、該当の推定遅延時間Ｔを取得する。すなわち、推定遅延時間取得部１４２は、当該デバイスデータの送信元のデバイス３０に対応する推定遅延時間Ｔ又は当該デバイスデータの送信元のデバイス３０が属するデバイス集合Ｖに対応する推定遅延時間Ｔを推定遅延時間記憶部１６０から取得する。
【００８９】
ステップＳ３０４：時刻付与処理部１４０の生成時刻推定部１４３は、上記のステップＳ３０２で取得した時刻情報が示す時刻（デバイスメッセージの受信時刻）と、推定遅延時間Ｔとを用いて、当該デバイスメッセージの生成時刻を算出する。すなわち、生成時刻推定部１４３は、推定遅延時間Ｔに対して１／２を乗じた時間を、当該デバイスメッセージの受信時刻から減ずることで、生成時刻を算出する。これにより、デバイスメッセージの生成時刻が推定される。
【００９０】
ステップＳ３０５：時刻付与処理部１４０の時刻付与部１４４は、生成時刻を示す時刻情報を当該デバイスメッセージに付与する。ここで、時刻付与部１４４は、当該デバイスメッセージのデータ構造における所定の位置に時刻情報を付与することができる。例えば、時刻付与部１４４は、ＯＳＩ参照モデルのアプリケーション層に該当するアプリケーションデータの内部構造に対して時刻情報を付与しても良いし、ネットワーク層に該当するＩＰヘッダに付与しても良い。ＩＰヘッダに時刻情報を付与する場合には、例えば、ＩＰヘッダの拡張情報のオプション領域にインターネットタイムスタンプとして書き込むことが考えられる。
【００９１】
なお、例えば、アプリケーションデータの内部構造に対して時刻情報が付与される場合、データ利用装置４０は、当該アプリケーションデータのどの位置に時刻情報が付与されているのかを特定するための情報を保持しておく必要がある。
【００９２】
ステップＳ３０６：通信処理部１１０のデバイスデータ通信部１１１は、上記のステップＳ３０５で時刻情報（生成時刻を示す時刻情報）が付与されたデバイスデータをデータ利用装置４０に送信（転送）する。
【００９３】
以上のように、本発明の実施の形態における時刻付与装置１０は、デバイスデータの受信時刻と、推定遅延時間とを用いて、当該デバイスデータの生成時刻を推定した上で、この推定した生成時刻を示す時刻情報を当該デバイスデータに付与する。そして、本発明の実施の形態における時刻付与装置１０は、時刻情報が付与されたデバイスデータを、データ利用装置４０に送信（転送）する。これにより、データ利用装置４０は、複数のデバイス３０から取得したデバイスデータを時刻で同期させることができるようになる。
【００９４】
しかも、本発明の実施の形態における時刻付与システム１では、様々なデバイス３０が共通的に利用する通信ネットワーク５０内のシステム環境（例えば、通信事業者のシステム環境）に設置された時刻付与装置１０がデバイスデータに対して時刻情報を付与する。また、このとき、本発明の実施の形態における時刻付与装置１０は、所定の時間毎に自身の時刻情報をＮＴＰサーバ２０と同期すると共に、デバイスの種別等によって異なる遅延時間を考慮した生成時刻を推定し、この推定した生成時刻を示す時刻情報をデバイスデータに対して付与する。
【００９５】
これにより、本発明の実施の形態における時刻付与システム１では、データ利用装置４０において、デバイスデータ同士を高い精度で時刻同期させることができるようになる。このため、例えば、データストリーミング等のリアルタイム性が要求される場合であっても、データ利用装置４０は、高い精度でデバイスデータを時刻同期させて活用することができるようになる。
【００９６】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００９７】
１        時刻付与システム
１０      時刻付与装置
２０      ＮＴＰサーバ
３０      デバイス
４０      データ利用装置
５０      通信ネットワーク
１１０    通信処理部
１１１    デバイスデータ通信部
１１２    時刻補正メッセージ通信部
１１３    計測メッセージ通信部
１２０    時刻補正処理部
１２１    時刻情報補正部
１３０    遅延時間推定処理部
１３１    対象設定部
１３２    送信回数設定部
１３３    遅延時間計測部
１３４    遅延時間算出部
１４０    時刻付与処理部
１４１    受信時刻取得部
１４２    推定遅延時間取得部
１４３    生成時刻推定部
１４４    時刻付与部
１５０    計測遅延時間記憶部
１６０    推定遅延時間記憶部
【図１】
2019213033.tif 000007
【図２】
2019213033.tif 000008
【図３】
2019213033.tif 000009
【図４】
2019213033.tif 000010
【図５】
2019213033.tif 000011
【図６】
2019213033.tif 000012
【図７】
2019213033.tif 000013