(57)【要約】  データの完全性を確保するための処理の負担を軽減する。  クライアント装置は、センサーにより検出された物理量を示す複数のデータを取得する。クライアント装置は、取得された複数のデータのうち少なくとも一部のデータを含むデータ列（複数のユニット）と、このデータ列に含まれるデータの数を示す第１情報（ユニットカウント）とを含むデータセット（セクション）をサーバー装置に送信する。サーバー装置は、クライアント装置からデータセットを受信する。サーバー装置は、受信されたデータセットを処理する。クライアント装置は、サーバー装置において受信されたデータセットに含まれるデータの数と第１情報により示されるデータの数とが相違することを示す条件が満たされる場合には、データセットをサーバー装置に再送する。
2018078913.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置において、センサーにより検出された物理量を示す複数のデータを取得する取得部と、
前記クライアント装置において、前記取得された複数のデータのうち少なくとも一部のデータを含むデータ列と、当該データ列に含まれるデータの数を示す第１情報とを含むデータセットをサーバー装置に送信する送信部と、
前記サーバー装置において、前記クライアント装置から前記データセットを受信する受信部と、
前記サーバー装置において、前記受信されたデータセットを処理する処理部と、
前記クライアント装置において、前記サーバー装置において受信された前記データセットに含まれる前記データの数と前記第１情報により示されるデータの数とが相違することを示す条件が満たされる場合には、前記データセットを前記サーバー装置に再送する再送部と
を備えるデータ収集システム。
【請求項２】
前記サーバー装置において、前記受信されたデータセットに含まれる前記データの数と前記第１情報により示されるデータの数とが一致する場合には、前記クライアント装置に応答を返す応答部をさらに備え、
前記再送部は、前記データセットが送信されてから前記応答を受信しないまま所定の時間経過した場合には、前記データセットを前記サーバー装置に再送する
請求項１に記載のデータ収集システム。
【請求項３】
前記クライアント装置において、前記送信されたデータセットをメモリーに記憶させ、
前記応答を受信した場合には、前記メモリーに記憶された前記データセットを削除するメモリー制御部をさらに備え、
前記再送部は、前記メモリーに記憶された前記データセットを前記サーバー装置に再送する
請求項２に記載のデータ収集システム。
【請求項４】
前記データセットは、当該データセットを識別する識別情報を含み、
前記処理部は、前記受信されたデータセットを記憶部に記憶させ、当該データセットと同一の識別情報を含む新たなデータセットが再送された場合には、前記受信部により前記新たなデータセットが受信されたことに応じて、前記記憶部に記憶された前記データセットに代えて、前記受信された新たなデータセットを前記記憶部に記憶させる
請求項１から３のいずれか１項に記載のデータ収集システム。
【請求項５】
前記送信されたデータセットは、先頭に当該データセットが初めて送信されたものであることを示す第２情報を含み、
前記サーバー装置において、前記クライアント装置から受信した前記データセットに前記第２情報が含まれる場合には、当該データセットに含まれる前記データの受信に応じて当該データを順次出力する出力部をさらに備える
請求項１から４のいずれか１項に記載のデータ収集システム。
【請求項６】
前記データセットは、後尾に当該データセットの終了を示す終了情報を含み、
前記出力部は、前記データセットに含まれる前記終了情報が受信される前に、前記データの出力を開始する
請求項５に記載のデータ収集システム。
【請求項７】
前記出力部は、端末装置からの要求に応じて、前記データの出力を行い、
前記再送部は、前記出力部による前記データの出力が行われていない期間に前記データセットを再送する
請求項５又は６に記載のデータ収集システム。
【請求項８】
前記再送部は、前記サーバー装置において受信された前記データセットに含まれる前記データの欠損率が第１閾値以下となる期間に前記データセットを再送する
請求項１から７のいずれか１項に記載のデータ収集システム。
【請求項９】
前記データセットは、優先度を含み、
前記再送部は、複数のデータセットを再送する場合には、前記複数のデータセットに含まれる優先度に応じた順番に従って前記複数のデータセットを再送する
請求項１から８のいずれか１項に記載のデータ収集システム。
【請求項１０】
前記再送部は、前記データセットに含まれる前記データの一部又は全部を削除する加工を前記データセットに施し、前記加工されたデータセットを再送する
請求項１から９のいずれか１項に記載のデータ収集システム。
【請求項１１】
前記加工されたデータセットは、当該データセットが加工されたことを示す第３情報を含み、
前記処理部は、前記受信されたデータセットに前記第３情報が含まれる場合には、前記受信されたデータセットに含まれる前記データに基づいて、前記加工により削除されたデータを補完するデータを生成する
請求項１０に記載のデータ収集システム。
【請求項１２】
前記再送部は、前記データセットを複数に分割して複数のデータセットを生成し、前記生成された複数のデータセットを再送する
請求項１から１１のいずれか１項に記載のデータ収集システム。
【請求項１３】
前記クライアント装置において、前記送信部により送信される前記データセットをメモリーに記憶させ、前記データセットが送信されると、前記メモリーに記憶された前記データセットを削除するメモリー制御部をさらに備え、
前記送信部は、前記メモリーに記憶された前記データセットの数が第２閾値以上の場合には、前記データセットに含まれる前記データの一部を削除して送信する
請求項１から１２のいずれか１項に記載のデータ収集システム。
【請求項１４】
クライアント装置において、センサーにより検出された物理量を示す複数のデータを取得するステップと、
前記クライアント装置において、前記取得された複数のデータのうち少なくとも一部のデータを含むデータ列と、当該データ列に含まれるデータの数を示す第１情報とを含むデータセットをサーバー装置に送信するステップと、
前記サーバー装置において、前記クライアント装置から前記データセットを受信するステップと、
前記サーバー装置において、前記受信されたデータセットを処理するステップと、
前記クライアント装置において、前記サーバー装置において受信された前記データセットに含まれる前記データの数と前記第１情報により示されるデータの数とが相違することを示す条件が満たされる場合には、前記データセットを前記サーバー装置に再送するステップと
を備えるデータ収集方法。
【請求項１５】
センサーにより検出された物理量を示す複数のデータを取得する取得部と、
前記取得された複数のデータのうち少なくとも一部のデータを含むデータ列と、当該データ列に含まれるデータの数を示す第１情報とを含むデータセットをサーバー装置に送信する送信部と、
前記サーバー装置において受信された前記データセットに含まれる前記データの数と前記第１情報により示されるデータの数とが相違することを示す条件が満たされる場合には、前記データセットを前記サーバー装置に再送する再送部と
を備えるクライアント装置。
【請求項１６】
センサーにより検出された物理量を示す複数のデータを取得する取得部と、前記取得された複数のデータのうち少なくとも一部のデータを含むデータ列と、当該データ列に含まれるデータの数を示す第１情報とを含むデータセットをサーバー装置に送信する送信部と、前記データセットが送信されてから応答を受信しないまま所定の時間経過した場合には、前記データセットを前記サーバー装置に再送する再送部とを有するクライアント装置から前記データセットを受信する受信部と、
前記受信されたデータセットを処理する処理部と、
前記受信されたデータセットに含まれる前記データの数と前記第１情報により示されるデータの数とが一致する場合には、前記クライアント装置に前記応答を返す応答部と
を備えるサーバー装置。
【請求項１７】
コンピュータに、
センサーにより検出された物理量を示す複数のデータを取得するステップと、
前記取得された複数のデータのうち少なくとも一部のデータを含むデータ列と、当該データ列に含まれるデータの数を示す第１情報とを含むデータセットをサーバー装置に送信するステップと、
前記サーバー装置において受信された前記データセットに含まれる前記データの数と前記第１情報により示されるデータの数とが相違することを示す条件が満たされる場合には、前記データセットを前記サーバー装置に再送するステップと
を実行させるためのプログラム。
【請求項１８】
コンピュータに、
センサーにより検出された物理量を示す複数のデータを取得する取得部と、前記取得された複数のデータのうち少なくとも一部のデータを含むデータ列と、当該データ列に含まれるデータの数を示す第１情報とを含むデータセットをサーバー装置に送信する送信部と、前記データセットが送信されてから応答を受信しないまま所定の時間経過した場合には、前記データセットを前記サーバー装置に再送する再送部とを有するクライアント装置から前記データセットを受信するステップと、
前記受信されたデータセットを処理するステップと、
前記受信されたデータセットに含まれる前記データの数と前記第１情報により示されるデータの数とが一致する場合には、前記クライアント装置に前記応答を返すステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサーから出力されたデータを収集する技術に関する。
【背景技術】
【０００２】
センサーから出力されたデータを収集する技術が知られている。例えば、特許文献１には、センサーにより車両の位置を示すデータを収集して、リアルタイムでセンターに送信することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２７６２０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載された技術のように、通信回線を介してデータを送信する場合には、その送信中にデータが欠損する場合がある。この場合、データの完全性が確保するには、例えばデータの欠損管理を行って、欠損したデータを再送する必要がある。しかし、例えば１秒間に数百〜数千のデータが収集される場合、これらのデータの一つひとつについて欠損管理を行うと、欠損管理に必要なデータ量が増大し、データの完全性を確保するための処理の負担が増える。
本発明は、データの完全性を確保するための処理の負担を軽減することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、クライアント装置において、センサーにより検出された物理量を示す複数のデータを取得する取得部と、前記クライアント装置において、前記取得された複数のデータのうち少なくとも一部のデータを含むデータ列と、当該データ列に含まれるデータの数を示す第１情報とを含むデータセットをサーバー装置に送信する送信部と、前記サーバー装置において、前記クライアント装置から前記データセットを受信する受信部と、前記サーバー装置において、前記受信されたデータセットを処理する処理部と、前記クライアント装置において、前記サーバー装置において受信された前記データセットに含まれる前記データの数と前記第１情報により示されるデータの数とが相違することを示す条件が満たされる場合には、前記データセットを前記サーバー装置に再送する再送部とを備えるデータ収集システムを提供する。【０００６】
本発明は、クライアント装置において、センサーにより検出された物理量を示す複数のデータを取得するステップと、前記クライアント装置において、前記取得された複数のデータのうち少なくとも一部のデータを含むデータ列と、当該データ列に含まれるデータの数を示す第１情報とを含むデータセットをサーバー装置に送信するステップと、前記サーバー装置において、前記クライアント装置から前記データセットを受信するステップと、前記サーバー装置において、前記受信されたデータセットを処理するステップと、前記クライアント装置において、前記サーバー装置において受信された前記データセットに含まれる前記データの数と前記第１情報により示されるデータの数とが相違することを示す条件が満たされる場合には、前記データセットを前記サーバー装置に再送するステップとを備えるデータ収集方法を提供する。【０００７】
本発明は、センサーにより検出された物理量を示す複数のデータを取得する取得部と、前記取得された複数のデータのうち少なくとも一部のデータを含むデータ列と、当該データ列に含まれるデータの数を示す第１情報とを含むデータセットをサーバー装置に送信する送信部と、前記サーバー装置において受信された前記データセットに含まれる前記データの数と前記第１情報により示されるデータの数とが相違することを示す条件が満たされる場合には、前記データセットを前記サーバー装置に再送する再送部とを備えるクライアント装置を提供する。【０００８】
本発明は、センサーにより検出された物理量を示す複数のデータを取得する取得部と、前記取得された複数のデータのうち少なくとも一部のデータを含むデータ列と、当該データ列に含まれるデータの数を示す第１情報とを含むデータセットをサーバー装置に送信する送信部と、前記データセットが送信されてから応答を受信しないまま所定の時間経過した場合には、前記データセットを前記サーバー装置に再送する再送部とを有するクライアント装置から前記データセットを受信する受信部と、前記受信されたデータセットを処理する処理部と、前記受信されたデータセットに含まれる前記データの数と前記第１情報により示されるデータの数とが一致する場合には、前記クライアント装置に前記応答を返す応答部とを備えるサーバー装置を提供する。【０００９】
本発明は、コンピュータを、センサーにより検出された物理量を示す複数のデータを取得するステップと、前記取得された複数のデータのうち少なくとも一部のデータを含むデータ列と、当該データ列に含まれるデータの数を示す第１情報とを含むデータセットをサーバー装置に送信するステップと、前記サーバー装置において受信された前記データセットに含まれる前記データの数と前記第１情報により示されるデータの数とが相違することを示す条件が満たされる場合には、前記データセットを前記サーバー装置に再送するステップとして実行させるためのプログラムを提供する。【００１０】
本発明は、コンピュータを、センサーにより検出された物理量を示す複数のデータを取得する取得部と、前記取得された複数のデータのうち少なくとも一部のデータを含むデータ列と、当該データ列に含まれるデータの数を示す第１情報とを含むデータセットをサーバー装置に送信する送信部と、前記データセットが送信されてから応答を受信しないまま所定の時間経過した場合には、前記データセットを前記サーバー装置に再送する再送部とを有するクライアント装置から前記データセットを受信するステップと、前記受信されたデータセットを処理するステップと、前記受信されたデータセットに含まれる前記データの数と前記第１情報により示されるデータの数とが一致する場合には、前記クライアント装置に前記応答を返すステップとして実行させるためのプログラムを提供する。
【発明の効果】
【００１１】
本発明によれば、データの完全性を確保するための処理の負担を軽減することができる。
【図面の簡単な説明】
【００１２】
【図１】データ収集システム１の一例を示す図。
【図２】クライアント装置２０のハードウェア構成の一例を示す図。
【図３】サーバー装置３０のハードウェア構成の一例を示す図。
【図４】データ収集システム１の機能構成の一例を示す図。
【図５】セクションのデータフォーマットの一例を示す図。
【図６】クライアント装置２０の処理の一例を示すフローチャート。
【図７】サーバー装置３０の処理の一例を示すフローチャート。
【図８】クライアント装置２０の処理の一例を示すフローチャート。
【図９】セクションの再送方法の一例を説明する図。
【図１０】再送されたセクションの格納方法の一例を説明する図。
【図１１】変形例に係るデータの欠損率の一例を示す図。
【発明を実施するための形態】
【００１３】
構成
図１は、本実施形態に係るデータ収集システム１の一例を示す図である。データ収集システム１は、各種のセンサー１０から出力されたデータを収集し、まとめて管理する仕組みを提供する。例えばセンシング対象が車である場合には、エンジンの回転数を計測する回転計、車の速度を計測する速度計、ステアリングの角度を計測する角度計、燃料噴射量計、温度計、車の位置を測定するＧＰＳ（Global Positioning System）等、車に設けられた各種のセンサー１０から出力されたデータが収集される。
【００１４】
各センサー１０は、センサー素子とＡＤ変換回路とを含む。各センサー１０は、所定のサンプリング周期で物理量を検出（計測）し、検出した物理量を示すデータを生成して出力する。各センサー１０からは、例えば１秒間に数百〜数千個のデータが出力される。１個のデータには、センサー１０により計測された１つの計測値が含まれる。つまり、１００個のデータには、延べ１００回分の計測値が含まれる。
【００１５】
データ収集システム１は、クライアント装置２０と、サーバー装置３０と、端末装置４０とを備える。クライアント装置２０、サーバー装置３０、及び端末装置４０は、通信回線２を介して接続される。通信回線２には、例えば移動通信ネットワークが含まれる。移動通信ネットワークにおいては、３Ｇ、ＬＴＥ（Long Term Evolution）、Ｗｉ−Ｆｉ（登録商標）、ＷｉＭＡＸ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の無線通信規格を用いて通信が行われる。ただし、通信回線２は、移動通信ネットワークだけでなく、無線又は有線の他の通信回線が含まれてもよい。クライアント装置２０は、通信回線３を介して各センサー１０に接続される。通信回線３においては、所定の通信規格を用いて通信が行われる。この所定の通信規格としては、例えばＣＡＮ（Controller Area Network）プロトコルが用いられる。
【００１６】
なお、図１に示されるセンサー１０の数は、クライアント装置２０の数、サーバー装置３０の数、及び端末装置４０の数は例示に過ぎず、これに限定されない。例えば、センサー１０の数は、図１に例示する数より多くてもよいし、少なくてもよい。また、複数のクライアント装置２０が設けられてもよい。
【００１７】
図２は、クライアント装置２０のハードウェア構成の一例を示す図である。クライアント装置２０は、センサー１０から出力されたデータをサーバー装置３０に送信する処理を行う。クライアント装置２０は、プロセッサー２１と、メモリー２２と、通信インタフェース２３と、ストレージ２４とを備える。プロセッサー２１、メモリー２２、通信インタフェース２３、及びストレージ２４は、バス２５を介して接続される。
【００１８】
プロセッサー２１は、プログラムをメモリー２２に読み出して実行することにより、クライアント装置２０の各部を制御するとともに、各種の処理を行う。プロセッサー２１としては、例えばＣＰＵ（Central Processing Unit）が用いられる。メモリー２２は、プロセッサー２１により実行されるプログラムを記憶する。メモリー２２としては、例えばＲＯＭ（Read Only Memory）又はＲＡＭ（Random Access Memory）が用いられる。
【００１９】
通信インタフェース２３は、通信回線２に接続され、所定の無線通信規格に従ってサーバー装置３０とデータ通信を行う。また、通信インタフェース２３は、通信回線３に接続され、所定の通信規格に従ってセンサー１０とデータ通信を行う。ストレージ２４は、各種のデータ及びプログラムを記憶する。ストレージ２４としては、例えばハードディスク又はフラッシュメモリが用いられる。ストレージ２４には、クライアント装置２０にクライアント側の処理を実行させるためのクライアントプログラムが記憶される。
【００２０】
図３は、サーバー装置３０のハードウェア構成の一例を示す図である。サーバー装置３０は、非リアルタイムの処理とリアルタイムの処理とを行う。非リアルタイムの処理は、例えばクライアント装置２０から受信したデータを蓄積する処理である。これにより、センサー１０から出力されたデータがまとめて管理される。このデータは、例えばセンシング対象の状況についての各種の分析に用いられる。そのため、非リアルタイムの処理では、データの正確性が要求される。一方、リアルタイムの処理は、例えばクライアント装置２０から受信したデータをリアルタイムで端末装置４０に送信する処理（以下、「リアルタイム送信処理」という。）である。なお、リアルタイムとは、完全に同時である必要はなく、多少の時間の遅延があってもよい。このデータは、例えばセンシング対象の現在の状況をユーザーが把握するのに用いられる。そのため、リアルタイムの処理では、即時性が要求される。
【００２１】
サーバー装置３０は、プロセッサー３１と、メモリー３２と、通信インタフェース３３と、ストレージ３４とを備える。プロセッサー３１、メモリー３２、通信インタフェース３３、及びストレージ３４は、バス３５を介して接続される。
【００２２】
プロセッサー３１は、プログラムをメモリー３２に読み出して実行することにより、サーバー装置３０の各部を制御するとともに、各種の処理を行う。プロセッサー３１としては、例えばＣＰＵが用いられる。メモリー３２は、プロセッサー３１により実行されるプログラムを記憶する。メモリー３２としては、例えばＲＯＭ又はＲＡＭが用いられる。
【００２３】
通信インタフェース３３は、通信回線２に接続され、所定の通信規格に従ってクライアント装置２０とデータ通信を行う。ストレージ３４は、各種のデータ及びプログラムを記憶する。ストレージ３４としては、例えばハードディスク又はフラッシュメモリが用いられる。ストレージ３４には、サーバー装置３０にサーバー側の処理を実行させるためのサーバープログラムが記憶される。
【００２４】
端末装置４０は、上述したリアルタイム送信処理により送信されたデータの出力に用いられる。端末装置４０としては、例えばクライアントコンピュータ、タブレット端末、スマートフォン等の装置が用いられる。端末装置４０は、サーバー装置３０から受信したデータをディスプレイに表示する。このデータの表示は、例えばブラウザーにより行われてもよい。また、ディスプレイには、データそのものが表示されてもよいし、画像を用いてデータを可視化したものが表示されてもよい。
【００２５】
図４は、データ収集システム１の機能構成の一例を示す図である。データ収集システム１は、取得部１０１と、送信部１０２と、メモリー制御部１０３と、再送部１０４と、受信部１０５と、出力部１０６と、処理部１０７と、計数部１０８と、応答部１０９として機能する。この例では、取得部１０１、送信部１０２、メモリー制御部１０３、及び再送部１０４は、クライアント装置２０に実装される。受信部１０５、出力部１０６、処理部１０７、計数部１０８、及び応答部１０９はサーバー装置３０に実装される。
【００２６】
取得部１０１は、プロセッサー２１がメモリー２２に記憶されたクライアントプログラムを実行して、通信インタフェース２３を制御することにより実現される。取得部１０１は、センサー１０により検出された物理量を示す複数のデータを取得する。
【００２７】
送信部１０２は、プロセッサー２１がメモリー２２に記憶されたクライアントプログラムを実行して、通信インタフェース２３を制御することにより実現される。送信部１０２は、取得部１０１により取得された複数のデータのうち少なくとも一部のデータを含むデータ列と、このデータ列に含まれるデータの数を示す情報とを含むデータセットをサーバー装置３０に送信する。以下の説明では、このデータセットをセクションという。また、セクションに含まれるデータをユニットという。
【００２８】
図５は、セクションのデータフォーマットの一例を示す図である。セクションには、ＳＯＳ（Start of Section）と、複数のユニットと、ＥＯＳ（End of Section）とが含まれる。ＳＯＳは、セクションの開始を示す情報である。ＳＯＳは、セクションの先頭に含まれる。複数のユニットは、例えばセンサー１０から時系列に沿って出力された一連のデータである。ＥＯＳは、セクションの終了を情報である。ＥＯＳは、セクションの後尾に含まれる。ＳＯＳ及びＥＯＳは、データの欠損管理に用いられる。
【００２９】
ＳＯＳには、計測ＩＤと、再送フラグと、加工フラグと、優先度とが含まれる。計測ＩＤは、各計測単位を一意に識別する情報である。この計測単位とは、データの生成が開始されてから終了するまでの期間をいう。例えばセンシング対象が車である場合には、車のエンジンが始動されてから停止されるまでの期間が、１つの計測単位となる。再送フラグは、セクションが再送されたものか否かを示す情報である。例えば、セクションが再送されたものでない場合、すなわち始めて送信されたものである場合には、再送フラグの値は０になる。一方、セクションが再送されたものである場合には、再送フラグの値は１になる。
【００３０】
加工フラグは、セクションが加工されているか否かを示す情報である。例えば、セクションが加工されていない場合には、加工フラグの値は０になる。一方、セクションが加工された場合には、加工フラグの値は１になる。このセクションの加工は、例えばセクションに含まれるユニットの一部又は全部を削除したり、ユニットの値を任意の方法により変更したりすることにより行われる。なお、この任意の方法は、予め定められていてもよい。
【００３１】
優先度は、セクションを再送するときの優先度を示す情報である。この優先度は、例えばセクションに含まれるデータの種類や重要度等の所定の条件に従って予め各セクションに付与される。ここでは、優先度は１〜３の数字で表され、優先度「１」が最も高く、優先度「３」が最も低いものとする。ただし、優先度を表す記号は、これに限定されない。例えば優先度は、数値以外の記号（例えば、「High」、「Low」等の文字列）により表されてもよい。また、優先度は、２段階又は４段階以上の段階に区分されてもよい。つまり、優先度は、セクションを再送するときの優先度を示す情報であれば、どのような表現を用いて表されてもよい。
【００３２】
ＥＯＳには、ユニットカウントと、シリアルナンバーとが含まれる。ユニットカウントは、セクションに含まれるユニットの数を示す情報である。シリアルナンバーは、同一の計測単位に係るセクションを一意に識別する情報である。上述した計測ＩＤとシリアルナンバーにより、セクションが一意に識別される。
【００３３】
図４に戻り、受信部１０５は、プロセッサー３１がメモリー３２に記憶されたサーバープログラムを実行して、通信インタフェース３３を制御することにより実現される。受信部１０５は、クライアント装置２０からセクションを受信する。
【００３４】
出力部１０６は、プロセッサー３１がメモリー３２に記憶されたサーバープログラムを実行して、通信インタフェース３３を制御することにより実現される。出力部１０６は、受信部１０５により受信されたセクションのＳＯＳに、このセクションが初めて送信されたものであることを示す情報、例えば再送フラグ「０」が含まれる場合には、このセクションに含まれるユニットの受信に応じてこのユニットを端末装置４０に順次出力する。
【００３５】
処理部１０７は、プロセッサー３１がメモリー３２に記憶されたサーバープログラムを実行することにより実現される。処理部１０７は、受信部１０５により受信されたセクションを処理する。この処理においては、例えばセクションが記憶部に記憶される。この記憶部としては、例えばストレージ３４が用いられる。ただし、記憶部は、ストレージ３４に限定されず、例えばサーバー装置３０の外部に設けられたストレージ装置であってもよい。
【００３６】
計数部１０８は、プロセッサー３１がメモリー３２に記憶されたサーバープログラムを実行することにより実現される。計数部１０８は、受信部１０５により受信されたセクションに含まれるユニットの数を計数する。
【００３７】
応答部１０９は、プロセッサー３１がメモリー３２に記憶されたサーバープログラムを実行して、通信インタフェース３３を制御することにより実現される。応答部１０９は、計数部１０８により計数されたユニットの数とＥＯＳに含まれるユニットカウントにより示されるユニットの数とが一致する場合には、クライアント装置２０に応答を返す。この応答としては、例えばＡＣＫ（ACKnowledgement）が用いられる。
【００３８】
メモリー制御部１０３は、プロセッサー２１がメモリー２２に記憶されたクライアントプログラムを実行することにより実現される。メモリー制御部１０３は、送信部１０２により送信されたセクションをメモリー２２に記憶させ、サーバー装置３０から応答、例えばＡＫＣを受信した場合には、メモリー２２に記憶されたセクションを削除する。セクションが記憶される領域としては、例えばメモリー２２の再送用メモリー領域が用いられる。この再送用メモリー領域においては、例えばキュー方式でデータが記憶される。
【００３９】
再送部１０４は、プロセッサー２１がメモリー２２に記憶されたクライアントプログラムを実行して、通信インタフェース２３を制御することにより実現される。再送部１０４は、計数部１０８により計数されたユニットの数とＥＯＳに含まれるユニットカウントにより示されるユニットの数とが相違することを示す条件が満たされた場合には、このセクションをサーバー装置３０に再送する。このセクションは、例えばメモリー２２の再送用メモリー領域から読み出されて送信される。セクションを再送する条件は、例えばセクションが送信されてからＡＣＫを受信しないまま所定の時間経過したという条件である。ただし、セクションを再送する条件はこれに限定されず、計数部１０８により計数されたユニットの数とＥＯＳに含まれるユニットカウントにより示されるユニットの数とが相違することを示すものであれば、どのような条件であってもよい。
【００４０】
動作
次に、図６〜８を参照して、データ収集システム１の動作について説明する。図６及び８は、クライアント装置２０の処理の一例を示すフローチャートである。図７は、サーバー装置３０の処理の一例を示すフローチャートである。
【００４１】
センサー１０は、所定のサンプリング周期で物理量を検出し、検出した物理量を示すデータを順次出力する。このデータは、通信回線３を介してクライアント装置２０に送信される。このとき、データは、ＣＡＮプロトコルに従って送信されてもよい。図６に示す処理は、このデータがクライアント装置２０に入力されたときに開始される。
【００４２】
ステップＳ１１において、取得部１０１は、入力されたデータを順次取得する。これにより、取得部１０１は、複数のデータを取得する。取得部１０１は、取得した各データに、センサーＩＤ及びタイムスタンプを付加する。このセンサーＩＤは、データを出力したセンサー１０を一意に識別する情報である。タイムスタンプは、計測を開始した日時を起点とした、データが取得された日時までの経過時間を示す情報である。
【００４３】
ステップＳ１２において、送信部１０２は、ステップＳ１１において取得されたデータを用いてセクションを生成し、生成したセクションをサーバー装置３０に送信する。１つのセクションには、複数のデータが含まれる。例えば、センサー１０のサンプリング周期が１０００Ｈｚであり、セクションの生成周期が５０Ｈｚである場合には、１つのセクションに、センサー１０から出力されたデータが２０個含まれる。
【００４４】
この例では、図５に示すように、セクションには、ＳＯＳと、複数のユニットと、ＥＯＳとが含まれる。ＳＯＳには、計測ＩＤ「ＡＡＡ」と、再送フラグと、加工フラグと、優先度「２」とが含まれる。このセクションは再送されたものではないため、再送フラグの値は０である。また、このセクションは加工されていないため、加工フラグの値は０である。各ユニットには、データと、センサーＩＤと、タイムスタンプとが含まれる。ＥＯＳには、ユニットカウント「Ｎ」とシリアルナンバー「１」とが含まれる。このユニットカウントは、セクションにＮ個のユニットが含まれることを示す。
【００４５】
図６に戻り、ステップＳ１３において、メモリー制御部１０３は、ステップＳ１２において送信されたセクションをメモリー２２の再送用メモリー領域に記憶させる。このとき、セクションは、例えばキュー方式で再送用メモリー領域に記憶される。
【００４６】
ステップＳ１２において送信されたセクションがサーバー装置３０に到達すると、図７に示す処理が開始される。
【００４７】
ステップＳ２１において、受信部１０５は、クライアント装置２０からセクションを受信する。ここで、通信回線２の状況によっては、データの欠損が発生する場合がある。例えば、クライアント装置２０から２０個のユニットを含むセクションが送信された場合に、サーバー装置３０においては、これらのユニットのうち１８個のユニットしか受信されない場合がある。
【００４８】
ステップＳ２２において、出力部１０６は、ステップＳ２１において受信したセクションが再送されたものか否かを判断する。この例では、セクションのＳＯＳに含まれる再送フラグの値が０であるため、セクションが再送されたものではないと判断される（ステップＳ２２の判断がＮＯ）。この場合、フローはステップＳ２３に進む。
【００４９】
ステップＳ２３において、出力部１０６は、リアルタイム送信処理を行う。このリアルタイム送信処理は、ステップＳ２１において受信したセクションのＥＯＳを受信する前に開始される。リアルタイム送信処理では、セクションに含まれる各ユニットが、それぞれ受信に応じて端末装置４０に順次送信される。
【００５０】
ステップＳ２４において、処理部１０７は、セクションのＥＯＳが受信されると、このセクションをストレージ３４に格納する。
【００５１】
ステップＳ２５において、計数部１０８は、ステップＳ２１において受信されたセクションに含まれるユニットの数を計数する。
【００５２】
ステップＳ２６において、応答部１０９は、ステップＳ２５において計数されたユニットの数と、ステップＳ２１において受信されたセクションのＥＯＳに含まれるユニットカウントにより示されるユニットの数とが一致するか否かを判断する。これらのユニットの数が一致する場合（ステップＳ２６の判断がＹＥＳ）、セクションのデータが欠損していないことを示す。この場合、フローはステップＳ２７に進む。
【００５３】
ステップＳ２７において、応答部１０９は、クライアント装置２０にＡＣＫを送信する。このＡＣＫには、ステップＳ２１において受信されたセクションに含まれるＳＯＳとＥＯＳとが含まれる。この例では、ＳＯＳには、計測ＩＤ「ＡＡＡ」が含まれる。また、ＥＯＳには、シリアルナンバー「１」が含まれる。
【００５４】
一方、上述したステップＳ２６においてユニットの数が一致しないと判断された場合には（ステップＳ２６の判断がＮＯ）、セクションのデータが欠損していることを示す。この場合、上述したステップＳ２７の処理は行われない。
【００５５】
クライアント装置２０においては、上述したステップＳ１２においてサーバー装置３０にセクションが送信された後、図８に示す処理が開始される。
【００５６】
ステップＳ３１において、再送部１０４は、サーバー装置３０からＡＣＫを受信したか否かを判断する。ＡＣＫが受信された場合には（ステップＳ３１の判断がＹＥＳ）、ステップＳ１２において送信されたセクションのデータが欠損していないことを示す。この場合、この処理はステップＳ３２に進む。
【００５７】
ステップＳ３２において、メモリー制御部１０３は、メモリー２２の再送用メモリー領域から、上述したステップＳ１３において記憶されたセクションを削除する。この例では、サーバー装置３０から受信したＡＣＫには計測ＩＤ「ＡＡＡ」及びシリアルナンバー「１」が含まれる。この場合、同一の計測ＩＤ「ＡＡＡ」及びシリアルナンバー「１」を含むセクションが再送用メモリー領域から削除される。
【００５８】
一方、上述したステップＳ３１においてＡＣＫを受信しないまま所定の時間が経過した場合、すなわちタイムアウトした場合には（ステップＳ３１の判断がＮＯ）、フローはステップＳ３３に進む。
【００５９】
ステップＳ３３において、再送部１０４は、メモリー２２の再送用メモリー領域に記憶されたセクションをサーバー装置３０に再送する。このセクションのＳＯＳには、上述したステップＳ１２で送信されたセクションと同様に、計測ＩＤ「ＡＡＡ」、再送フラグ、加工フラグ、及び優先度「２」が含まれる。ただし、このセクションは再送されるため、再送フラグの値は「１」に変更される。また、このセクションが加工された場合には、加工フラグの値は「１」に変更される。また、このセクションのＥＯＳには、上述したステップＳ１２で送信されたセクションと同様に、ユニットカウント「Ｎ」及びシリアルナンバー「１」が含まれる。
【００６０】
図９は、セクションの再送方法の一例を説明する図である。以下の説明では、シリアルナンバーが「１」〜「５」であるセクションを「セクション１」〜「セクション５」という。ここでは、クライアント装置２０からサーバー装置３０にセクション１〜５が送信され、このうちセクション２及び４については、送信中にデータが欠損した場合を想定する。この場合、メモリー２２の再送用メモリー領域には、セクション２及び４が記憶される。
【００６１】
セクション２及び４は、例えば所定のタイミングで再送される。この所定のタイミングは、例えば上述したステップＳ３１の判断がＮＯになってから所定の時間が経過したときであってもよい。他の例において、この所定のタイミングは、再送用メモリー領域に記憶されたセクションの数が所定数に達したときであってもよい。
【００６２】
また、セクション２及び４が再送される順番は、再送用メモリー領域に記憶された順番、すなわちセクション２、４という順番であってもよい。他の例において、セクション２及び４が再送される順番は、セクション２及び４に含まれる優先度に応じた順番であってもよい。例えば、セクション２に含まれる優先度が２であり、セクション４に含まれる優先度が１である場合には、セクション４、２という順番で再送されてもよい。
【００６３】
また、再送部１０４は、セクションに含まれるユニットの一部又は全部を削除する加工をセクションに施し、加工されたセクションを再送してもよい。例えば、セクションに含まれるユニットが所定数置き（例えば、１つ置き）に削除されてもよいし、セクションに含まれる特定の種類のデータを含むユニットが削除されてもよい。この加工は、例えば再送用メモリー領域に記憶された全てのセクションに施されてもよいし、再送用メモリー領域に記憶されたセクションのうち、所定の条件を満たすセクションだけに施されてもよい。この所定の条件は、例えば優先度が閾値以下であるという条件であってもよい。
【００６４】
例えば、セクション２に含まれる優先度が２であり、セクション４に含まれる優先度が１であり、優先度に係る閾値が２である場合には、セクション２の優先度が閾値以下になる。この場合、セクション２だけが加工される。このように、セクション２が加工された場合、セクション２に含まれる加工フラグの値が１に変更される。
【００６５】
図８に戻り、ステップＳ３４において、メモリー制御部１０３は、ステップＳ３３において再送されたセクションをメモリー２２の再送用メモリー領域に記憶させる。
【００６６】
上述したステップＳ３３において再送されたセクションがサーバー装置３０に到達すると、再び図７に示す処理が開始される。
【００６７】
ステップＳ２１において、受信部１０５は、クライアント装置２０からセクションを受信する。
【００６８】
ステップＳ２２において、出力部１０６は、ステップＳ２１において受信したセクションが再送されたものか否かを判断する。この例では、セクションのＳＯＳに含まれる再送フラグの値が「１」であるため、セクションが再送されたものであると判断される（ステップＳ２２の判断がＹＥＳ）。この場合、フローは、ステップＳ２３の処理を飛ばしてステップＳ２４に進む。
【００６９】
ステップＳ２４において、処理部１０７は、セクションのＥＯＳを受信すると、このセクションをストレージ３４に格納する。このとき、処理部１０７は、ストレージ３４に記憶されたセクションの中から、ステップＳ２１において受信された新たなセクションと同一の計測ＩＤ及びシリアルナンバーを含むセクションを選択する。そして、処理部１０７は、選択されたセクションに代えて、新たなセクションをストレージ３４に記憶させる。
【００７０】
図１０は、再送されたセクションの格納方法の一例を説明する図である。ここでは、クライアント装置２０からサーバー装置３０にセクション１〜５が送信され、これらのセクション１〜５がストレージ３４に格納されている場合を想定する。ただし、これらのセクション１〜５のうち、セクション２及び４のデータは欠損している。この場合、セクション２及び４がクライアント装置２０からサーバー装置３０に再送される。
【００７１】
再送されたセクション２が受信されると、このセクション２によりストレージ３４に格納された既存のセクション２が上書きされる。また、再送されたセクション４が受信されると、このセクション４によりストレージ３４に格納された既存のセクション４が上書きされる。これにより、データが欠損したセクション２及び４に代えて、再送されたセクション２及び４が格納される。
【００７２】
また、処理部１０７は、ステップＳ２１において受信されたセクションにユニットを削除する加工が施されている場合には、このセクションに含まれるユニットに基づいて、加工により削除されたユニットを補完するデータを生成してもよい。このデータの生成では、例えばセクションに含まれるユニットのうち、削除されたユニットの前後にあったユニットが用いられてもよい。ただし、データの生成で用いられるユニットは、削除されたユニットの前後にあったユニットに限定されず、例えば削除されたユニットと対応する位置にあるユニットであってもよいし、セクションに含まれる全てのユニットであってもよい。
【００７３】
例えば、セクション２に含まれる加工フラグの値が「１」である場合には、セクション２が加工されていると判断される。この場合、セクション２に含まれるユニットにおいて、加工により削除されたユニットの前後にあったユニットに基づいて、削除されたユニットを補完するデータが生成されてもよい。この場合、処理部１０７は、生成されたデータを用いて、セクション２から削除されたユニットを補間してから、セクション２をストレージ３４に格納してもよい。
【００７４】
このようにして、再送されたセクションが格納された後は、ステップＳ２５以降の処理が行われる。この処理は、初めて送信されたセクションを受信したときと同様である。
【００７５】
上述した実施形態によれば、複数のデータを一つにまとめてセクションとし、セクション単位でデータの欠損管理を行っているため、データ一つひとつについて欠損管理を行う場合に比べて、欠損管理に必要なデータ量が少なくなる。これにより、データの完全性を確保するための処理の負担が軽減される。
【００７６】
また、上述したリアルタイム送信処理においては、ＥＯＳが受信される前にデータの送信が開始され、セクションに含まれるユニットの受信に応じてユニットが順次送信されるため、センサー１０からデータが出力されてから、このデータが端末装置４０において出力されるまでにかかる時間を短縮することができる。
【００７７】
変形例
上述した実施形態は、本発明の一例である。この実施形態は、以下のように変形してもよい。また、以下の変形例を組み合わせて実施してもよい。
【００７８】
変形例１
上述した実施形態において、再送部１０４は、受信部１０５により受信されたセクションに含まれるデータの欠損率が閾値Ｈ１以下となる期間に再送を行ってもよい。データの欠損率と通信帯域には、相関関係があると考えられる。例えばデータの欠損率と通信帯域とは、通信帯域が狭いほどデータの欠損率が高くなるという関係にある。閾値Ｈ１には、例えば通信帯域が十分に広いと推定されるようなデータの欠損率が設定されてもよい。
【００７９】
データの欠損率は、セクションに含まれるユニットの総数に対する欠損したユニットの数の割合である。再送部１０４は、例えば以下のようにしてデータの欠損率を算出する。まず、上述したように、ＡＣＫには、ＥＯＳに含まれるユニットカウント（以下、「第１ユニットカウント」という。）が含まれる。また、サーバー装置３０からクライアント装置２０に計数部１０８により計数されたユニットの数を示すユニットカウント（以下、「第２ユニットカウント」という。）が送信される。この第２ユニットカウントは、ＡＣＫに含まれて送信されてもよい。この場合、第１ユニットカウントにより示されるユニットの数に対する、第２ユニットカウントにより示される
ユニットの数の割合がデータの欠損率として算出される。
【００８０】
図１１は、データの欠損率の一例を示す図である。この例では、期間Ｔ１は、データの欠損率が閾値Ｈ１より大きい。一方、期間Ｔ２は、データの欠損率が閾値Ｈ１以下になっている。この場合、再送部１０４は、期間Ｔ１の間はセクションの再送を行わず、期間Ｔ２の間にセクションの再送を行ってもよい。
【００８１】
仮に、通信帯域が狭いときにセクションが再送されると、セクションの再送により通信帯域が占められてしまう場合がある。このとき、例えば別のセクションのリアルタイム送信処理が並行して行われると、このリアルタイム送信処理におけるデータの送信に遅延が発生する場合がある。この変形例によれば、通信帯域が狭いと推定される期間には、セクションの再送が行われないため、このような遅延の発生が防止される。
【００８２】
変形例２
上述した実施形態において、再送部１０４は、リアルタイム送信処理が行われていない期間にセクションを再送してもよい。この場合、リアルタイム送信処理は、例えば端末装置４０からの要求に応じて行われる。したがって、端末装置４０からの要求がない場合には、リアルタイム送信処理は行われない。この場合、サーバー装置３０からクライアント装置２０にリアルタイム送信処理が行われていないことを示す情報を送信される。再送部１０４は、この情報を受信したことに応じて、セクションの再送を行う。
【００８３】
この変形例によれば、セクションの再送と、別のセクションのリアルタイム送信処理とが並行して行われることがないため、リアルタイム送信処理におけるデータの送信の遅延の発生が防止される。
【００８４】
変形例３
上述した実施形態において、再送部１０４は、セクションを複数に分割して複数のセクションを生成し、生成された複数のセクションを再送してもよい。このセクションの分割は、例えば上述した変形例１で説明したデータの欠損率が閾値Ｈ１より大きいときに行われてもよい。他の例において、このセクションの分割は、再送された回数に応じて行われてもよい。また、再送された回数が多いほど、セクションの分割数を増やしてもよい。
【００８５】
変形例４
上述した実施形態において、送信部１０２は、通信帯域が狭いと推定される場合には、セクションに含まれるユニットの一部又は全部を削除する加工をセクションに施し、加工されたセクションを送信してもよい。例えば、セクションに含まれるユニットが所定数置き（例えば、１つ置き）に削除されてもよいし、セクションに含まれる特定の種類のユニットが削除されてもよい。
【００８６】
この場合、メモリー制御部１０３は、送信部１０２により送信されるセクションをメモリー２２に記憶させる。セクションが記憶される領域としては、例えばメモリー２２内の送信用メモリー領域が用いられる。この送信用メモリー領域においては、上述した再送用メモリー領域と同様に、例えばキュー方式でデータが記憶される。
【００８７】
送信部１０２は、送信用メモリー領域に記憶されたセクションをサーバー装置３０に送信する。メモリー制御部１０３は、送信部１０２により送信されたセクションを送信用メモリー領域から削除する。
【００８８】
ここで、通信帯域が狭い場合には、送信用メモリー領域に記憶されたセクションの送信が完了しないまま、送信用メモリー領域に新たなセクションが記憶されるため、送信用メモリー領域に記憶されるセクションの数が増えていく。この送信用メモリー領域に記憶されたセクションの数が多いと、通信帯域が狭いと推定される。そこで、送信部１０２は、例えば送信用メモリー領域に記憶されたセクションの数が閾値以上になった場合には、セクションを加工してから送信してもよい。この閾値は、例えば通信帯域が狭いと推定されるような送信用メモリー領域内のセクションの数が設定されてもよい。
【００８９】
この場合、加工されたセクションに含まれる加工フラグの値が１に変更されてもよい。また、処理部１０７は、上述した実施形態と同様に、このセクションに含まれるユニットに基づいて、加工により削除されたユニットを補完するデータを生成してもよい。
【００９０】
他の例において、上述のようにして通信帯域が狭いと推定される場合、送信用メモリー領域に記憶されたセクションを送信せずに、このセクションが再送用メモリー領域に記憶されてもよい。この場合、このセクションは、上述したセクションの再送と同様の方法でサーバー装置３０に送信される。
【００９１】
変形例５
上述した実施形態において、セクションを再送する条件を満たすか否かを判定する方法は、サーバー装置３０から返されるＡＣＫを用いた方法に限定されない。例えば、図７に示すステップＳ２６の判断がＮＯである場合に、サーバー装置３０からクライアント装置２０に再送の要求が行われてもよい。この場合、サーバー装置３０から再送の要求を受信すると、セクションを再送する条件を満たすと判定され、セクションの再送が行われる。
【００９２】
他の例において、図７に示すステップＳ２６の判断がＮＯである場合に、サーバー装置３０からクライアント装置２０にエラーが送信されてもよい。この場合、サーバー装置３０からエラーを受信すると、セクションを再送する条件を満たすと判定され、セクションの再送が行われる。
【００９３】
変形例６
上述した実施形態において、セクションの出力は、サーバー装置３０から端末装置４０への送信に限定されない。例えば、サーバー装置３０に設けられたディスプレイにセクションに含まれるデータが表示されてもよい。他の例において、サーバー装置３０に接続されたプリンターによりセクションに含まれるデータが印刷されてもよい。
【００９４】
変形例７
上述した実施形態において、セクションに含まれるデータは、単一のセンサー１０から出力されたデータに限定されない。例えば、セクションには、複数のセンサー１０から出力されたデータが含まれてもよい。この場合、例えば一のセンサー１０のサンプリング周期が１０００Ｈｚであり、他のセンサー１０のサンプリング周期が１００Ｈｚであり、セクションの生成周期が５０Ｈｚである場合には、１つのセクションに、一のセンサー１０から出力されたデータが２０個、他のセンサー１０から出力されたデータが２個含まれる。
【００９５】
また、セクションを生成する際は、特定の１又は複数のセンサー１０から出力されたデータのみを同じセクションにまとめてもよい。この特定のセンサー１０は、例えば同様の種類又は重要度のデータを出力するものであってもよい。これは、セクション毎に優先度が付与されるため、１つのセクションに異なる種類又は重要度のデータが含まれると、優先度を付与するのが難しいからである。
【００９６】
また、１つのセクションに含まれるユニットの数はセクション毎に変化してもよい。例えば、あるセクションにはＮ個のユニットが含まれ、その次に送信されるセクションにはＭ個（Ｎ個とは異なる個数）のユニットが含まれてもよい。
【００９７】
変形例８
データ収集システム１において行われる処理のステップは、上述した実施形態で説明した例に限定されない。この処理のステップは、矛盾のない限り、入れ替えられてもよい。本発明は、データ収集システム１において行われる処理のステップを備えるデータ収集方法として提供されてもよい。
【００９８】
変形例９
本発明は、クライアント装置２０において実行されるクライアントプログラム又はサーバー装置３０において実行されるサーバープログラムとして提供されてもよい。これらのプログラムは、インターネットなどの通信回線を介してダウンロードされてもよい。また、これらのプログラムは、磁気記録媒体（磁気テープ、磁気ディスクなど）、光記録媒体（光ディスクなど）、光磁気記録媒体、半導体メモリーなどの、コンピュータが読取可能な記録媒体に記録した状態で提供されてもよい。
【符号の説明】
【００９９】
１：データ収集システム、１０：センサー、２０：クライアント装置、３０：サーバー装置、４０：端末装置、１０１：取得部、１０２：送信部、１０３：メモリー制御部、１０４：再送部、１０５：受信部、１０６：出力部、１０７：処理部、１０８：計数部、１０９：応答部
【図１】
2018078913.tif 000003
【図２】
2018078913.tif 000004
【図３】
2018078913.tif 000005
【図４】
2018078913.tif 000006
【図５】
2018078913.tif 000007
【図６】
2018078913.tif 000008
【図７】
2018078913.tif 000009
【図８】
2018078913.tif 000010
【図９】
2018078913.tif 000011
【図１０】
2018078913.tif 000012
【図１１】
2018078913.tif 000013
【国際調査報告】
2018078913.tif 000014
2018078913.tif 000015