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