情報記録装置、情報記録方法およびプログラム
【課題】センサデータなど、個々のデータ量が小さくデータ数の多いデータの検索結果を回答する際の処理のオーバーヘッドを低減する。
【解決手段】情報記録装置100において、情報選択部104が、情報一次保持部103の保持するデータのうち、相互に近似性の高いデータを選択し、情報切り出し部106が、情報選択部104の選択したデータを読み出してチャンクデータファイルを生成し、分散ファイルシステム111に保持させる。また、情報切り出し部106が、情報選択部104の選択したデータを情報一次保持部103から削除する。要求処理部101が、ホスト130から検索要求を受信すると、検索要求の一括回答フラグがYesの場合は、情報検索部109は、検索要求に適合するファイル名を索引保持部107から読み出し、読み出したファイル名を含む検索結果を要求処理部101が送信する。
【解決手段】情報記録装置100において、情報選択部104が、情報一次保持部103の保持するデータのうち、相互に近似性の高いデータを選択し、情報切り出し部106が、情報選択部104の選択したデータを読み出してチャンクデータファイルを生成し、分散ファイルシステム111に保持させる。また、情報切り出し部106が、情報選択部104の選択したデータを情報一次保持部103から削除する。要求処理部101が、ホスト130から検索要求を受信すると、検索要求の一括回答フラグがYesの場合は、情報検索部109は、検索要求に適合するファイル名を索引保持部107から読み出し、読み出したファイル名を含む検索結果を要求処理部101が送信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報記録装置、情報記録方法およびプログラムに関する。
【背景技術】
【0002】
センサなどのデータを記録し、記録したデータを検索可能とする、センサデータ向けの情報記録システムとして、uTupleSpace(非特許文献1、非特許文献2参照)など、幾つかのセンサ情報記録システムがある。
これら従来の代表的なセンサ情報記録システムは、センサからの1つ1つのデータをネットワーク経由で受け取り、システム内部に具備するRDBMS(Relational Database Management System、関係データベース管理システム)が保持するRDB(Relational Database、関係データベース)のテーブルの行に、それぞれのデータを格納する。また、該システムはアプリケーションからの検索要求をネットワーク経由で受信すると、SQL(Structured Query Language)による検索式を生成する。そして、センサ情報記録システムは、生成した検索式を含む検索要求をRDBMSに対して発行することにより、RDBMS内の該当するテーブルを検索して、検索式に合致する行の並びを取得する。センサ情報記録システムは、それぞれの行を個別にネットワーク送出可能な形式に変換し、それら変換結果をネットワーク経由で検索結果として返送する。
【0003】
ここで、センサデータの一般的な特徴として、一つ一つのデータ量が小さいことが挙げられる。典型的には、センサ値は数バイト程度、それにメタデータが付随しても高々数十バイト程度であることが多い。さらに、センサデータを活用する際の特徴として、データマイニング技術などを用いて、大量のデータを一括して処理する機会が多いことが挙げられる。また、センサデータは多種多様であり、データベースの構造(スキーマ、Schema)を一意に定められないことも特徴である。
【0004】
また、ネットワークを介してデータ取得を容易かつ効率的に行う技術として、分散ファイルシステムと呼ばれる技術がある。具体的には、OS(Operating System)に内蔵されている機能として、NFS(Network File System)やCIFS(Common Internet FIle System (SMB(Server Message Block))等が、またウェブ技術として、HTTP(Hypertext Transfer Protocol)およびその拡張である WebDAV(Distributed Authoring and Versioning protocol for the WWW)等が、またクラウド(Cloud)と称される技術として、GFS(Google(登録商標) File System)やHadoop等が広く用いられており、さらに、キーバリューストア(Key-Value store;KVS)と呼ばれる技術として、Dynamoやmemcached等の技術も同様の目的に広く用いられている。これら分散ファイルシステム技術を用いれば、データの集まりをファイルとして扱い、別のホストにあるファイルを容易に取得でき、さらに、これら技術はキャッシュ技術を含んでおり、キャッシュにヒットした際には転送負荷の低減効果が期待できる。また技術によっては、データの複製を管理する等により、耐故障性に優れるという特徴を有するものもある。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】荒川 豊、他4名、「実世界データ共有機構uTupleSpaceにおける動的スケール化方式の評価」、電子情報通信学会 IN研究会報告、2009年6月
【非特許文献2】中村 隆幸(Takayuki Nakamura)、他5名、「uTupleSpace: A Bi-Directional Shared Data Space for Wide-Area Sensor Network」、2nd International Workshop on Sensor Networks and Ambient Intelligence (SENAMI 2009)、2009年12月
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、前述したような特徴をもつ、センサデータに代表されるデータを取り扱うにあたって、従来のセンサ情報記録システムには、大量のデータを個別ばらばらのデータとして処理するため、処理オーバーヘッドが大きいという問題があった。具体的には次の箇所のオーバーヘッドが大きいことが特に問題であった。
【0007】
まず、RDB内にデータを格納する際、それぞれのデータが個別の行として格納されるため、検索のための索引情報などによる、記憶領域のオーバーヘッドが大きかった。個々のデータがある程度の大きさを持っているアプリケーションにおいては、これらのオーバーヘッドはデータに対して十分小さいとみなせるが、センサデータの場合は、個々のデータ量が小さいため、このオーバーヘッドは無視できない負担となっていた。
【0008】
次に、検索式に合致する行の並びを得る検索処理のオーバーヘッドが大きかった。大量のデータを一括して処理するために、検索式を用いてRDB内を検索すると、照合する行の数および合致する行の数が膨大になり、RDBMS内部の各データの照合を行う負荷および結果回答のための行の並びを一時的に蓄える負荷が大きくなっていた。個々のデータがある程度の大きさを持っているアプリケーションにおいては、総データ量との割合において、合致する行の数が比較的少なく、これらオーバーヘッドは十分小さいとみなせるが、センサデータの場合は、個々のデータ量が小さいため、このオーバーヘッドは無視できない負担となっていた。
【0009】
また、検索結果をネットワーク経由で転送するオーバーヘッドが大きかった。センサデータを用いるアプリケーションでは、大量の検索結果のデータを一括して処理することから、データ転送の際に、ネットワークに一定の負荷がかかる。一般に、分散ファイルシステム技術を用いれば、別のホストにあるデータの集まりをファイルとして取得する際、キャッシュによる転送負荷の低減効果が期待できる。しかし、検索結果をネットワーク経由で転送する場合は、検索を行って初めて検索結果が得られるので、検索結果を予めファイルとして保持しておくことはできない。したがって、上述のような分散ファイルシステム技術を用いてその利点を生かし、検索結果の転送の際のネットワーク負荷を軽減することは出来なかった。
【0010】
本発明は、このような事情を考慮してなされたものであり、その目的は、センサデータなど、個々のデータ量が小さくデータ数の多いデータの検索結果を回答する際の処理のオーバーヘッドを低減できる情報記録装置、情報記録方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0011】
[1]この発明は上述した課題を解決するためになされたもので、本発明の一態様による情報記録装置は、属性名と属性値とを含む情報を保持する情報保持部と、前記情報保持部が保持する前記情報のうち、前記属性名または前記属性値に関して予め定められた条件を満たす情報を選択する情報選択部と、前記情報選択部が選択した前記情報を含む前記予め定められた条件毎のファイルを生成し、前記情報選択部が選択した前記情報を前記情報保持部から削除する情報切り出し部と、を具備することを特徴とする。
【0012】
[2]また、本発明の一態様による情報記録装置は、上述の情報記録装置であって、前記情報選択部は、前記情報保持部が保持する前記情報のうち、前記情報の前記情報記録装置への登録要求の受信時刻または情報発生時刻が予め定められた範囲内にある、あるいは、情報を生成するセンサの種別が同じである、あるいは、情報発生地点相互間の距離が予め定められた閾値以下である、あるいは、特定の属性について同じ値を持つ、あるいは、特定の属性について値の差が予め定められた閾値以下である、あるいは、同じデータ属性を予め定められた個数以上含む、のいずれかの条件、あるいは、これらの条件を組み合わせて得られる条件を満たす情報を選択することを特徴とする。
【0013】
[3]また、本発明の一態様による情報記録装置は、上述の情報記録装置であって、前記情報切り出し部が生成した前記ファイルを保持する分散ファイルシステムをさらに具備することを特徴とする。
【0014】
[4]また、本発明の一態様による情報記録装置は、上述の情報記録装置であって、検索すべき情報の条件を示す検索要求信号を受信する要求通信部と、情報検索部と、をさらに具備し、前記情報切り出し部は、前記生成したファイルのファイル名と前記予め定められた条件とを示す索引情報をファイル毎に生成し、前記情報検索部は、前記検索すべき情報の条件を満たす情報を前記情報保持部から読み出し、前記索引情報が示す前記予め定められた条件が前記検索すべき情報の条件に矛盾しないファイルのファイル名を前記索引情報から読み出し、前記要求通信部は、前記情報検索部が前記情報保持部から読み出した前記情報と、前記情報検索部が前記索引情報から読み出したファイル名と、を含む検索結果情報を送信することを特徴とする。
【0015】
[5]また、本発明の一態様による情報記録方法は、属性名と属性値とを含む情報を保持する情報保持部を具備する情報記録装置の情報記録方法であって、前記情報保持部が保持する前記情報のうち、前記属性名または前記属性値に関して予め定められた条件を満たす情報を選択する情報選択ステップと、前記情報選択ステップにて選択した前記情報を含む前記予め定められた条件毎のファイルを生成し、前記情報選択ステップにて選択した前記情報を前記情報保持部から削除する情報切り出しステップと、を具備することを特徴とする。
【0016】
[6]また、本発明の一態様による情報記録方法は、上述の情報記録方法であって、前記情報選択ステップにて、前記情報保持部が保持する前記情報のうち、前記情報の前記情報記録装置への登録要求の受信時刻または情報発生時刻が予め定められた範囲内にある、あるいは、情報を生成するセンサの種別が同じである、あるいは、情報発生地点相互間の距離が予め定められた閾値以下である、あるいは、特定の属性について同じ値を持つ、あるいは、特定の属性について値の差が予め定められた閾値以下である、あるいは、同じデータ属性を予め定められた個数以上含む、のいずれかの条件、あるいは、これらの条件を組み合わせて得られる条件を満たす情報を選択することを特徴とする。
【0017】
[7]また、本発明の一態様による情報記録方法は、上述の情報記録方法であって、前記情報記録装置は分散ファイルシステムをさらに具備し、前記情報記録方法は、前記情報切り出し部が生成した前記ファイルを前記分散ファイルシステムが保持するファイル保持ステップをさらに具備することを特徴とする。
【0018】
[8]また、本発明の一態様による情報記録方法は、上述の情報記録方法であって、前記情報切り出しステップにて生成した前記ファイルのファイル名と前記予め定められた条件とを示す索引情報をファイル毎に生成する索引情報生成ステップと、検索すべき情報の条件を示す検索要求信号を受信する検索要求信号受信ステップと、前記検索すべき情報の条件を満たす情報を前記情報保持部から読み出し、前記索引情報が示す前記予め定められた条件が前記検索すべき情報の条件に矛盾しないファイルのファイル名を前記索引情報から読み出す情報検索ステップと、前記情報検索ステップにて前記情報保持部から読み出した前記情報と、前記情報検索ステップにて前記索引情報から読み出したファイル名と、を含む検索結果情報を送信する検索結果送信ステップと、を具備することを特徴とする。
【0019】
[9]また、本発明の一態様によるプログラムは、情報保持部を具備するコンピュータに、上述のいずれかの情報記録方法を実行させるプログラムである。
【発明の効果】
【0020】
本発明によれば、センサデータなど、個々のデータ量が小さくデータ数の多いデータの検索結果を回答する際の処理のオーバーヘッドを低減できる。
【図面の簡単な説明】
【0021】
【図1】本発明の一実施形態における情報記録装置100の概略構成を示す構成図である。
【図2】同実施形態における、登録要求の例を示す図である。
【図3】同実施形態における、センサデータテーブルの例を示す図である。
【図4】同実施形態における、チャンクデータファイルの例を示す図である。
【図5】同実施形態において、チャンクデータファイル生成後に情報一次保持部103が保持するセンサデータテーブルの例を示す図である。
【図6】同実施形態における、索引情報テーブルの例を示す図である。
【図7】同実施形態における、検索要求の例を示す図である。
【図8】同実施形態において、一括回答を行う場合の検索結果の例を示す図である。
【図9】同実施形態において、一括回答を行わない場合の検索結果の例を示す図である。
【図10】同実施形態において、情報記録装置100が、相互に近似するセンサデータの切り出しを行う処理手順を示すフローチャートである。
【図11】同実施形態において、情報記録装置100が、検索要求に対する検索結果を生成してホスト130に送信する処理手順を示すフローチャートである。
【発明を実施するための形態】
【0022】
以下、図面を参照して、本発明の一実施形態について説明する。
図1は、本発明の一実施形態における情報記録装置100の概略構成を示す構成図である。
同図において、情報記録装置100は、要求処理部101と、情報登録部102と、情報一次保持部(情報保持部)103と、情報選択部104と、情報切り出し部106と、索引保持部107と、情報検索部109と、分散ファイルシステム111とを具備する。情報選択部104は近似性算出部105を具備する。
また、情報記録装置100と、ホスト130と、センサ140−1〜140−3とは、ネットワーク120に接続している。ホスト130は、分散ファイルシステム131と、アプリケーション部132とを具備する。なお、ネットワーク120に接続されるセンサの個数は、同図に示す3個に限らず、1個以上であればよい。
なお、本実施形態では、情報記録装置100がセンサデータを扱う場合について説明するが、情報記録装置100が扱う情報は、センサデータに限らない。例えば、大規模なシミュレーションの結果など、情報数の多い情報であればよい。
【0023】
情報記録装置100は、ネットワーク120を介して、センサ140−1〜140−3から登録要求を受信し、受信した登録要求に含まれるセンサデータを情報一次保持部103に保持する。情報記録装置100は、さらに、情報一次保持部103が保持するセンサデータ相互間の近似性に基づいて、情報一次保持部103からセンサデータを選択し、選択したセンサデータをまとめたファイルを生成し、生成したファイルを分散ファイルシステム111に保持させる。また、情報記録装置100は、ネットワーク120を介して、ホスト130から検索要求を受信し、受信した検索要求に対する検索結果をホスト130に送信する。
要求処理部(要求通信部)101は、ネットワーク120に接続しており、ネットワーク120を介して、センサ140−1〜140−3から登録要求(登録要求信号)を受信し、ホスト130から検索要求(検索要求信号)を受信し、ホスト130に検索結果(検索結果信号)を送信する。
【0024】
情報登録部102は、センサ140−1〜140−3から送信される登録要求からセンサデータを読み出し、情報一次保持部103に書き込む。
情報一次保持部103は、情報登録部102が書き込むデータを保持する。
情報選択部104は、情報一次保持部103が保持するセンサデータの中から、予め定められた条件を満たすセンサデータを、相互に近似性の高いセンサデータとして選択する。近似性算出部105は、情報一次保持部103が保持するセンサデータが予め定められた条件を満たすか否かを判定することにより、センサデータ相互間の近似性を算出する。
情報切り出し部106は、情報選択部104が選択したセンサデータを、情報一次保持部103から読み出し、読み出したセンサデータを予め定められた条件毎にまとめたファイルを生成し、生成したファイルを分散ファイルシステム111に保持させる。また、情報切り出し部106は、読み出したセンサデータを情報一次保持部103から削除する。
【0025】
分散ファイルシステム111は、情報切り出し部106が生成したファイルを保持する。
索引保持部107は、分散ファイルシステム111が保持するファイルの索引情報を保持する。
情報検索部109は、ホスト130から送信される検索要求が示す検索条件に合致するセンサデータを情報一次保持部103から読み出し、また、索引保持部107が保持する索引情報の中から、当該検索条件に適合する索引情報を読み出し、あるいは、さらに分散ファイルシステム111からセンサデータを読み出して、検索結果を生成する。
【0026】
ホスト130は、アプリケーションを実行してサービスを提供するホストコンピュータであり、アプリケーション実行時に必要となったセンサデータを、情報記録装置100に対して検索要求にて要求する。
分散ファイルシステム131は、情報記録装置100の分散ファイルシステム111が保持するファイル(と同一のファイル)の送信を情報記録装置100から受けて、送信を受けた当該ファイルを保持し、アプリケーション部132に対して、分散ファイルシステム111が保持するファイルを提供する。
センサ140−1〜140−3は、センサデータを生成し、生成したセンサデータを含む登録要求を情報記録装置100に送信する。
ネットワーク120は、情報記録装置100とホスト130とセンサ140−1〜140−3とに接続し、これら相互間のデータを伝送する。
【0027】
次に、センサ140−1〜140−3が情報記録装置100に送信する、登録要求のデータ構成について説明する。
図2は、登録要求の例を示す図である。
同図に示すように、登録要求は、センサデータを含む。センサデータは、区切り記号「,」を挟んで相互に結合されたデータまたはメタデータを含む。データまたはメタデータは、区切り記号「=」を挟んで結合された属性(属性名)と値(属性値)とを含む。
同図に示すセンサデータは、色センサであるセンサ140−3が計測した色を示すデータである。センサ140−3は、部屋R1〜R3を移動するロボットに搭載されており、情報記録装置100に定期的にセンサデータを送信する。
【0028】
図2の例では、「色=黄」がセンサ140−3の計測した計測データであり、「センサID=3」と、「部屋=R1」と、「姿勢=寝」とがメタデータである。
計測データ「色=黄」は、計測データの属性「色」と計測値(センサ140−3が計測した色)「黄」と区切り記号「=」とを含む。「色」は、「赤」、「青」、「黄」のいずれかの値をとる。
同様に、メタデータの各々も、属性と、値と、区切り記号「=」とを含む。「センサID」は、センサ140−1〜140−3を識別する識別情報(Identifier;ID)であり、センサIDの値「1」、「2」、「3」は各々センサ140−1、140−2、140−3を示す。「部屋」は、計測時にセンサが位置する部屋の名前を示し、「R1」、「R2」、「R3」のいずれかの値をとる。「姿勢」は、計測時のロボットの姿勢を示し、「立」、「寝」のいずれかの値をとる。
【0029】
また、センサデータは、可読形式の1行のテキスト情報として表現されている。ここでいう可読形式とは、センサデータに含まれる区切り符号と、属性と、値とが、全て画面表示可能な文字符号のみを含むことをいう。例えば、図2の登録要求F150に含まれるセンサデータの文字列のうち、「セ」がシフトJIS2バイトコードの835a(16進表記、以下同様。)で表記され、「ン」が8393で表記されるなど、センサデータは、画面表示可能なコードで示される文字符号(制御コードや未定義のコードを含まない文字符号)のみを含む。なお、属性ないし値が、表示制御用の符号など、画面表示できない符号を含む場合、例えばバックスラッシュ等の、予め定められたエスケープ文字を前置することにより、画面表示できる文字符号に変換するようにしてもよい。また、例えばセンサの計測値に区切り記号として用いられている符号「=」が含まれる場合など、属性ないし値が、区切り符号を含む場合も、予め定められたエスケープ文字を前置することにより、属性ないし値の一部と区切り符号とを区別するようにしてもよい。
【0030】
次に、情報一次保持部103が保持するセンサデータテーブルのデータ構造について説明する。
図3は、センサデータテーブルの例を示す図である。
センサデータテーブルの各行は、センサから送信される登録要求に基づくセンサデータとなっている。なお、同図の例では、センサデータL11およびL13〜18は、センサ140−1〜140−3のいずれかから送信される登録要求に基づくセンサデータであり、センサデータL12は、物流追跡システムのセンサ(不図示)から送信される登録要求に基づくセンサデータである。
【0031】
ここで、センサデータテーブルの各センサデータは、登録要求に含まれるセンサデータそのものであってもよいし、登録要求に含まれるセンサデータを加工したものであってもよい。図3の例では、センサデータテーブルの各行L11〜L18は、登録要求に含まれるセンサデータに、情報記録装置100による当該登録要求の受信時刻を付加したセンサデータであり、受信時刻の古いセンサデータほど上側(行L11の側)に位置している。例えば、情報登録部102が、登録要求から読み出されたセンサデータに対して受信時刻の付加等の加工を行った後に、情報一次保持部103に書き込むようにしてもよい。
【0032】
次に、分散ファイルシステム111が保持するチャンクデータファイルのデータ構成について説明する。
図4は、チャンクデータファイルの例を示す図である。
チャンクデータファイルには、情報一次保持部103が保持するセンサデータのうち、相互に近似するセンサデータが含まれている。同図の例では、チャンクデータファイルの各センサデータL11、L14、L17は、図3の例で示した、情報一次保持部103が保持するセンサデータのうち、予め定められた条件「部屋=R1」を満たす点で相互に近似するセンサデータである。図4のファイルでは、図3の例で示した、情報一次保持部103が保持するセンサデータの中から、条件「部屋=R1」を満たすセンサデータが、時刻の古い順に3つ選択されている。図4の例では、条件「部屋=R1」と、時刻の古い順に3番目以内という条件とが予め定められており、この予め定めら得た条件に従ってファイルが生成されている。
また、チャンクデータファイルには、予め定められたファイル名生成規則に基づいて、ファイル名が付されている。図4の例では、条件「部屋=R1」を満たすセンサデータのチャンクデータファイルに付される固定の文字列「DAT」と、「部屋=R1」を満たすセンサデータを含むことを示す「R1」と、通し番号を示す固定の文字列「SER」と、通し番号「01」と、チャンクデータファイルを示す拡張子「.CNK」とを結合したファイル名「DATR1SER01.CNK」が付されている。
【0033】
次に、チャンクデータファイル生成後に情報一次保持部103が保持するセンサデータテーブルについて説明する。
図5は、チャンクデータファイル生成後に情報一次保持部103が保持するセンサデータテーブルの例を示す図である。
情報切り出し部106は、情報一次保持部103から相互に近似するセンサデータを選択してチャンクデータファイルを生成すると、チャンクデータファイルに含めたセンサデータを、情報一次保持部103が保持するセンサデータテーブルから削除する。図5では、情報切り出し部106が、図3のセンサデータテーブルから図4のチャンクデータファイルを生成した後の、センサデータテーブルが示されている。同図の例では、情報一次保持部103が保持するセンサデータテーブルには、図3のセンサデータテーブルに含まれるセンサデータL11〜L18から、図4のチャンクデータファイルに含まれるセンサデータL11とL14とL17とを除いたセンサデータL12とL13とL15とL16とL18とが含まれている。
【0034】
次に、索引保持部107が保持する索引情報テーブルのデータ構成について説明する。
図6は、索引情報テーブルの例を示す図である。
索引情報テーブルの各行は、索引情報となっている。索引情報は、チャンクデータファイルのインデックス情報であり、チャンクデータファイルのファイル名と、当該チャンクデータファイルに含まれるセンサデータに共通する条件を示す情報とが含まれる。
例えば、図6の索引情報テーブルは索引情報L21〜L24を含む。そして、索引情報L24は、図4に示したチャンクデータファイルの索引情報であり、ファイル名「DATR1SER01.CNK」を含み、また、センサデータに共通する条件として、当該ファイルが含むセンサデータのうち最古および最新の時刻情報(図4のセンサデータL11の時刻から同図のセンサデータL17までの時刻を示す時刻情報)と、条件「部屋=R1」を示す記述とを含む。
【0035】
次に、ホスト130が情報記録装置100に送信する、検索要求のデータ構成について説明する。
図7は、検索要求の例を示す図である。
検索要求は、検索式と一括回答フラグとを含む。例えば、図7の検索要求F151は、検索式F271と、一括回答フラグとを含む。検索式F271は、ホスト130が要求するセンサデータの条件を示す情報である。一括回答フラグは、後述する一括回答を行うか否かを示すフラグであり、「Yes」または「No」の値をとる。
図7の検索要求F151は、ホスト130が、「部屋=R1」かつ「姿勢=寝」を満たすセンサデータを要求していることを示し、また、一括回答を行うことを示している。
【0036】
次に、図8および図9を用いて、情報記録装置100がホスト130に送信する、検索結果のデータ構成について説明する。
図8は、一括回答を行う場合の検索結果の例を示す図である。
検索結果は、検索要求に対する回答であり、情報一次保持部103が保持するセンサデータのうち、検索要求が示す条件に合致するセンサデータを含む。ここで、検索要求が示す条件に「合致」するセンサデータとは、検索要求が示す条件の全てを満たすセンサデータをいう。
さらに、検索要求の一括回答フラグが「Yes」の場合は、検索結果は、分散ファイルシステム111が保持するチャンクデータファイルのうち、検索要求が示す条件に適合するファイルのファイル名を含む。一方、検索要求の一括回答フラグが「No」の場合は、検索結果は、分散ファイルシステム111が保持するチャンクデータファイルに含まれるセンサデータのうち、検索要求が示す条件に合致するセンサデータを含む。
【0037】
ここで、検索要求が示す条件に「適合」するファイルとは、当該ファイルの索引情報の示す条件(ファイルに含まれるセンサデータに共通する条件)が、検索要求の示す条件(検索式)に矛盾しないファイルをいう。検索要求の示す条件の全てについて、その属性が、索引情報に含まれない場合、あるいは、その属性が、索引情報に含まれ、かつ、その値が整合する(値が一致する。検索要求または索引情報が値の範囲を示す場合は、少なくとも一部が重なる。)場合は、当該ファイルは当該検索要求に適合する。一方、検索要求の示す条件のうち、いずれかの条件の属性が、索引情報に含まれ、かつ、その値が整合しない(値が異なる。検索要求または索引情報が値の範囲を示す場合は、重なる部分が無い。)場合は、当該ファイルは当該検索要求に適合しない。
【0038】
例えば、図7の検索要求F151の示す条件は、「部屋=R1」かつ「姿勢=寝」である。これと図6の索引情報L24が示す条件「時刻=○○○〜○○○」かつ「部屋=R1」とを対比すると、検索要求F151の示す属性「部屋」は、索引情報L24に含まれており、かつ、検索要求F151の示す値「R1」は、索引情報L24の示す値「R1」と一致する。また、検索要求F151の示す属性「姿勢」は、索引情報L24には含まれない。従って、索引情報L24は、検索要求F151に適合する。
一方、検索要求F151と図6の索引情報L23とを対比すると、検索要求F151の示す属性「部屋」は、索引情報L23に含まれており、かつ、検索要求F151の示す値「R1」は、索引情報L23の示す値「R2」と異なる。従って、索引情報L23は、検索要求F151に適合しない。
【0039】
図8は、図7の検索要求F151に対する検索結果F152の例を示しており、図5のセンサデータテーブルに含まれるセンサデータのうち、図7の検索要求F151の示す条件「部屋=R1」かつ「姿勢=寝」を満たすセンサデータL18を含む。
また、図7の検索要求F151の一括回答フラグは「Yes」となっているので、図8の検索結果F152は、図6の索引情報L21〜L24のうち、図7の検索要求F151の示す条件「部屋=R1」かつ「姿勢=寝」に適合する索引情報L24に含まれるファイル名「DATR1SER01.CNK」(図8のファイル名N11)を含む。
このように、一括回答とは、検索要求F151に対して、分散ファイルシステム111が保持する個々のセンサデータではなく、分散ファイルシステム111が保持するチャンクデータファイル名を回答することをいう。情報記録装置100が、検索要求F151に適合するチャンクデータファイルのファイル名をホスト130に回答することにより、ホスト130は、条件に合致するセンサデータを、当該ファイル内を検索して取得できる。
【0040】
図9は、一括回答を行わない場合の検索結果の例を示す図である。
同図の検索結果F153は、図8に示した一括回答を行う場合の検索結果F152と同様、図5のセンサデータテーブルに含まれるセンサデータのうち、図7の検索要求F151の示す条件「部屋=R1」かつ「姿勢=寝」を満たすセンサデータL18を含む。
一方、図9の検索結果F153は、チャンクデータファイルのファイル名は含まず、図7の検索要求F151が示す条件に適合するチャンクデータファイル(図4のチャンクデータファイル)に含まれるセンサデータL11、L14、L17のうち、条件に合致するセンサデータL14とL17とを含む。
【0041】
次に、情報記録装置100の動作について説明する。
図10は、情報記録装置100が、相互に近似するセンサデータの切り出しを行う処理手順を示すフローチャートである。
情報記録装置100は、予め定められた一定時間が経過する毎に同図に示す処理を開始する。なお、情報記録装置100が同図に示す処理を開始する契機は、予め定められた一定時間の経過に限らない。例えば、情報記録装置100が登録要求を処理し、情報一次保持部103の保持するセンサデータ数が一定個数に達したとき、あるいは、情報記録装置100が登録要求を処理し、情報一次保持部103が保持するセンサデータのうち、相互に近似性の高いセンサデータ数が一定個数に達したときなど、予め定められた一定時間の経過以外の契機で、処理を開始するようにしてもよい。
【0042】
情報記録装置100が同図の処理を開始する時点では、情報一次保持部103は、例えば図3のようにセンサデータL11〜L18をセンサデータテーブル内に保持している。これらのセンサデータのうち、センサデータL11、L14、L17は、条件「部屋=R1」と、時刻の古い順に3番目以内という条件とを満たす点で相互に近似する。
情報記録装置100は、以下に説明する処理により、このような相互に近似するセンサデータを切り出して1つのチャンクデータファイルに纏め、さらに、このチャンクデータの索引情報を生成する。
例えば、情報記録装置100は、図3のデータテーブルから相互に近似するセンサデータL11とL14とL17とを読み出し、これらのセンサデータを纏めて、図4に示したチャンクデータファイルを生成する。また、情報記録装置100は、読み出したセンサデータをセンサデータテーブルから削除して、図5のように、情報一次保持部103がセンサデータテーブル内に、残りのセンサデータL12、L13、L15、L16、L18を保持する状態とする。さらに、情報記録装置100は、図6の索引情報L24のように、生成したチャンクデータファイルのファイル名「DATR1SER01.CNK」と、当該チャンクデータファイルに含まれるセンサデータL11とL14とL17とに共通する条件を示す情報「時刻=○○○〜○○○,部屋=R1」とを含む索引情報を生成する。
【0043】
以下、情報記録装置100が行う図10の処理について、より詳細に説明する。
情報記録装置100が同図の処理を開始すると、まず、近似性算出部105が、情報一次保持部103が保持するセンサデータの中から相互に近似性の高いセンサデータを検出し、情報選択部104は、近似性算出部105が検出したセンサデータの中からファイル化の対象とするセンサデータを選択する。情報選択部104は、選択したセンサデータを示す情報と、選択条件を示す情報とを、情報切り出し部106に出力する。
【0044】
ここで、相互に近似性の高いセンサデータとは、予め定められた条件を共に満たすセンサデータをいう。
例えば、近似性算出部105は、登録要求受信時刻またはセンサデータ発生時刻などの時刻が近い、あるいは、扱うセンサの種別が同じである、あるいは、情報発生地点が近い、あるいは、特定の属性について同じ値を持つ、あるいは、特定の属性について値が近接している(差が予め定められた閾値以下である)、あるいは、属性=値の組の並びで表される2つのデータを比較したとき同じ属性を多数(予め定められた個数以上)含む、等の条件のいずれか、あるいは、これらの条件を組み合わせて得られる条件を用いて、条件を満たすセンサデータを相互に近似性の高いセンサデータとして検出する。
【0045】
さらに、時刻の近さの条件として、近似性算出部105は、例えば、両時間が予め定められた閾値時間以内である、あるいは、時刻の古い順または新しい順または中間のいずれかの部分から順に予め定められた個数だけ選択する、等の条件、あるいは、これらの条件を組み合わせて得られる条件を用いる。また、情報発生地点の近さの条件としては、例えば、両地点の距離が、予め定められた閾値距離内である、あるいは、予め定められた基準地点からの距離が、予め定められた閾値距離内である、あるいは、予め定められた基準地点に近い順に予め定められた個数だけ選択する、等の条件、あるいは、これらの条件を組み合わせて得られる条件を用いる。
例えば、近似性算出部105は、図3の情報一次保持部103が保持するセンサデータL11〜L18の中から、属性「部屋」の値が同じであり、かつ、登録要求の受信時刻が最も過去のものから順に3つ以内のデータを選択する。属性「部屋」の値が共に「R1」のセンサデータを3つ以内選択すると、センサデータL11、L14、L17となる。属性「部屋」の値が共に「R2」のセンサデータの場合は、センサデータL13、L16となる。属性「部屋」の値が共に「R3」のセンサデータの場合は、センサデータL14、L18となる。
【0046】
近似性算出部105が相互に近似性の高いセンサデータを検出すると、次に、情報選択部104は、近似性算出部105が検出したセンサデータの中からファイル化の対象とするセンサデータを選択する。例えば、情報選択部104は、相互に近似性の高いデータ数が多いセンサデータを選択する。上述の例の場合、近似性算出部105が検出したセンサデータのうち、属性「部屋」の値が共に「R1」のセンサデータとして検出したものは、センサデータL11とL14とL17との3個である。これに対して、属性「部屋」の値が共に「R2」、「R3」のセンサデータとして検出したものは、それぞれ、センサデータL13とL16、センサデータL14とL18の2個である。そこで、情報選択部104は、センサデータ数が最も多い、属性「部屋」の値が共に「R1」のセンサデータを選択する。
そして、情報選択部104は、選択したセンサデータを示す情報として、例えば、センサデータL11とL14とL17との、図3のセンサデータテーブル内における情報の古い順を示す、「1」と「4」と「7」とを、情報切り出し部106に出力する。また、情報選択部104は、選択条件を示す情報として、選択したうちで最古のセンサデータL11と最新のセンサデータL17との時刻を示す「時刻=○○○〜○○○」と、属性「部屋」の値を示す「部屋=R1」とを、情報切り出し部106に出力する(以上、手順S241)。
【0047】
情報切り出し部106は、情報選択部104から出力される情報に基づいて、当該情報が示すセンサデータを、情報一次保持部103から読み出す(手順S242)。そして、情報切り出し部106は、読み出したセンサデータを含むチャンクデータファイルを生成し、予め定められたファイル名生成規則に従って、生成したチャンクデータファイルにファイル名を付す。例えば、情報切り出し部106は、センサデータL11とL14とL17とを含む、図4のチャンクデータファイルを生成し、生成したチャンクデータファイルに、図4で説明したファイル名「DATR1SER01.CNK」を付す。
情報切り出し部106は、ファイル名を付したチャンクデータファイルを、分散ファイルシステム111に出力し、分散ファイルシステム111は、このチャンクデータファイルを保持する(以上、手順S243)。
【0048】
次に、情報切り出し部106は、生成したチャンクデータファイルのファイル名と、情報選択部104から出力された選択条件を示す情報とを含む索引情報を生成し、索引保持部107の索引情報テーブルに書き込む。例えば、情報切り出し部106は、手順S242で生成したチャンクデータファイルのファイル名「DATR1SER01.CNK」と、情報選択部104から出力される選択条件を示す情報「時刻=○○○〜○○○」および「部屋=R1」とを含む索引情報を生成し、図6の索引情報L24のように、索引保持部107の索引情報テーブルに書き込む(以上、手順S244)。
さらに、情報切り出し部106は、手順S242でチャンクデータファイルに含めたセンサデータを、情報一次保持部103のセンサデータテーブルから削除する(手順S245)。例えば、情報切り出し部106は、図3のセンサデータテーブルから、センサデータL11とL14とL17とを削除する。これにより、センサデータテーブルは、図5のようになる。
その後、情報記録装置100は、図10の処理を終了する。
【0049】
以上の処理によって、情報一次保持部103の持つデータの個数は一定程度に少ない状態で維持され、一方、相互に近似性の高い情報のみが集まったチャンクデータファイルが、分散ファイルシステム111上に次々と生成される。その際、各チャンクデータファイルは、1行に1センサデータが記述された可読なテキストファイル形式にて生成される。また、それらチャンクデータファイルの索引情報が、索引保持部107に構築される。
【0050】
図11は、情報記録装置100が、検索要求に対する検索結果を生成してホスト130に送信する処理手順を示すフローチャートである。
情報記録装置100は、ホスト130から検索要求を受信すると、同図の処理を開始する。
【0051】
情報記録装置100が同図の処理を開始する時点では、分散ファイルシステム111は、互いに共通するセンサデータを纏めたチャンクデータファイルを保持し、情報一次保持部103は、チャンクデータファイルのセンサデータを切り出した残りのセンサデータを保持している。また、索引保持部107は、分散ファイルシステム111の保持するチャンクデータファイルの索引情報を保持している。例えば、分散ファイルシステム111は、互いに共通するセンサデータL11とL14とL17とを纏めた図4のチャンクデータファイルを保持し、情報一次保持部103は、図5のように、残りのデータファイルL12とL13とL15とL16とL18を保持している。また、索引保持部107は、図6のように、図4のチャンクデータファイルの索引情報L24を含む索引情報を保持している。
【0052】
情報記録装置100は、以下に説明する処理により、ホスト130からの検索要求に含まれる検索式に基づいて、情報一次保持部103が保持するセンサデータのうち、検索式に合致するセンサデータを含み、さらに、分散ファイルシステムが保持するチャンクデータファイルのうち、検索式に適合するチャンクデータファイルのファイル名を含む検索結果を生成する。例えば、情報記録装置100は、図5のデータファイルのうち、図7の検索要求F151の検索式F271に合致するセンサデータL18を含み、さらに、検索式F271に適合する図4のチャンクデータフィルのファイル名「DATR1SER01.CNK」を含む、図8の検索結果F152を生成する。
あるいは、情報記録装置100は、情報一次保持部103が保持するセンサデータのうち、検索式に合致するセンサデータを含み、さらに、分散ファイルシステムがチャンクデータファイル内に保持するセンサデータのうち、検索式に合致するセンサデータを含む検索結果を生成する。例えば、情報記録装置100は、図5のデータファイルのうち、検索式F271に合致するセンサデータL18を含み、さらに、図4のチャンクデータフィル内のセンサデータのうち、検索式F271に合致するセンサデータL14とL17とを含む、図9の検索結果F153を生成する。
【0053】
以下、情報記録装置100が行う図11の処理について、より詳細に説明する。
要求処理部101が、ホスト130からネットワーク120を介して送信される検索要求を受信して、情報記録装置100が図11の処理を開始すると、要求処理部101は、受信した検索要求を情報検索部109に出力する。情報検索部109は、検索要求から検索式を読み出し、情報一次保持部103のセンサデータテーブルを検索して、検索式に合致するセンサデータを読み出す。
例えば、情報検索部109は、図7の検索要求F151から検索式F271(「部屋=R1,姿勢=寝」)を読み出し、図5の情報一次保持部103のセンサデータテーブルから、検索式F271に合致するセンサデータを読み出す。図8および図9で説明したように、図5のセンサデータのうち、検索式F271の条件「部屋=R1」と「姿勢=寝」とを共に満たすセンサデータL18が、検索式F271に合致する。そこで、情報検索部109は、このセンサデータL18を読み出す(以上、手順S281)。
情報検索部109は、読み出したセンサデータの各々をリストの1行とする回答リストを生成し、情報検索部109内部の回答リスト保持部(不図示)に一時的に保持しておく(手順S282)。
【0054】
次に、情報検索部109は、索引保持部107の索引情報テーブルを検索して、検索式に適合する索引情報を読み出す。
例えば、情報検索部109は、図6の索引保持部107の索引情報テーブルから、図7の検索式F271に適合する索引情報を読み出す。図8および図9で説明したように、図6の検索情報のうち、検索式F271の条件「部屋=R1」を満たし(属性および値が一致し)、条件「姿勢=寝」については属性が示されていない索引情報L24(「ファイル名=DATR1SER01.CNK,時刻=○○○〜○○○,部屋=R1」)が、検索式F271に適合する。そこで、情報検索部109は、この索引情報L24を読み出す(以上、手順S283)。
【0055】
次に、情報検索部109は、検索要求の一括回答フラグの値が「Yes」か否かを判定する(手順S284)。
一括回答フラグが「Yes」であると判定した場合(手順S284:Yes)は、情報検索部109は、手順S283で読み出した索引情報に含まれるファイル名を、情報検索部109内部に保持する回答リストに追加する。例えば、図7の検索要求F151の一括回答フラグは「Yes」であり、情報検索部109は、手順S283で読み出した索引情報L24に含まれるファイル名「DATR1SER01.CNK」を、回答リストに追加する(以上、手順S285)。
【0056】
一方、一括回答フラグの値が「No」の場合(手順S284:No)、この一括回答フラグは、ホスト130がチャンクデータファイル名ではなく個々のセンサデータを含む検索結果を要求していることを示している。そこで、情報検索部109は、手順S283で読み出した索引情報に含まれるファイル名のそれぞれについて、以下の手順を実施する。まず、分散ファイルシステム111からチャンクデータファイルを読み出し(手順S286)、読み出したチャンクデータファイルの各々を、手順S281と同様に検索して、検索式に合致するセンサデータを読み出し(手順S287)、読み出したセンサデータを、情報検索部109内部に保持する回答リストに追加する。
例えば、情報検索部109は、手順S283で読み出した索引情報L24に含まれるファイル名「DATR1SER01.CNK」に基づいて、分散ファイルシステム111から図4のチャンクデータファイルを読み出す。そして、このチャンクデータファイルから、図7の検索式F271「部屋=R1,姿勢=寝」に合致するセンサデータL14とL17とを読み出し、回答リストに追加する(以上、手順S288)。
【0057】
そして、情報検索部109は、要求処理部101に、回答リストを出力する。要求処理部101は、情報検索部109から出力される回答リストを含む検索結果を生成し、ネットワーク120を介してホスト130に送信する。
例えば、一括回答フラグが「Yes」の場合、要求処理部101は、手順S281で読み出したセンサデータL18と、手順S283で読み出したファイル名N11とから構成される回答リストを含む、図8の検索結果を送信する。一方、一括回答フラグが「No」の場合、要求処理部101は、手順S281で読み出したセンサデータL18と、手順S288で読み出したセンサデータL14とL17とから構成される回答リストを含む、図9の検索結果を送信する(以上、手順S289)。
その後、情報記録装置100は、図11の処理を終了する。
【0058】
情報記録装置100から送信される検索結果をホスト130が受信すると、ホスト130のアプリケーション部132は、受信した検索結果を以下のように用いることができる。
まず、検索結果のうち、センサデータが記載されている行は、検索式に合致するセンサデータそのものを示しているので、アプリケーション部132は、そのままデータとして自らの処理(アプリケーション実行)に用いることができる。例えば、図8の検索結果F152の1行目のセンサデータL18や、図9の検索結果F153の1〜3行目のセンサデータL18、L14、L17は、図7の検索要求F151の検索式F271に合致するセンサデータそのものであり、アプリケーション部132は、これらをそのままデータとして用いることができる。
【0059】
また、チャンクデータファイル名が記載されている行は、検索式に合致するセンサデータを含む可能性があるファイルのファイル名を示している。アプリケーション部132は、自らと同じくホスト130に含まれる分散ファイルシステム131から、この近時データファイル名のファイルを読み出す。一般に分散ファイルシステムは、ネットワークで接続された遠隔のコンピュータ上の情報を読み取る機能を提供するシステムである。本実施形態では、アプリケーション部132が分散ファイルシステム131からのファイルの読み出しを行うと、ホスト130と遠隔の情報記録装置100上にある分散ファイルシステム111が、自身の保持するチャンクデータファイルを分散ファイルシステム131へと転送し、分散ファイルシステム131が、転送されたチャンクデータファイルをアプリケーション部132に読み取らせる。アプリケーション部132は、図11の手順S281と同様に、読み取ったチャンクデータファイル内を検索して、検索式F271に合致するデータを読み出し、読み出したデータを自らの処理に用いることができる。
あるいはアプリケーション部132が、テキストエディタやワープロ、あるいは、テキスト処理言語Perl、Ruby、Python等の、テキストファイルを取り扱う一般的なソフトウェアを用いて、分散ファイルシステム131を経由して読み出したチャンクデータファイルを直接表示するようにしてもよい。チャンクデータファイルの各センサデータは、テキスト形式で格納されているので、ユーザがデータを読み取り、編集等の処理を行うことができる。
【0060】
以上述べたように、本実施形態では、扱うデータが適宜ファイルとして集められているので、情報記録装置100やホスト130は、ファイルの形のままでデータを取り扱うことができ、全てのデータを個別ばらばらのデータとして処理しなくてよく、処理オーバーヘッドを小さくできる。具体的には、次の箇所のオーバーヘッドを小さくできる。
【0061】
まず、情報記録装置100は、相互に近似するセンサデータをチャンクデータファイルに纏めて保持するので、センサデータを検索する際には、検索式に適合するチャンクデータファイルを選択して検索範囲を絞り込んだうえで、個々のチャンクデータファイル内を検索すればよい。したがって、1つのRDB内に大量のデータを保持する従来の方法と比較すると、1回の検索の対象とするデータ数を大幅に減らすことができ、大量のデータの中から高速にデータを読み出すための大掛かりな索引情報は不要である。これにより、索引情報等を保持する記憶領域のオーバーヘッドを小さくできる。
【0062】
次に、検索式に合致する行の並びを得る検索処理のオーバーヘッドを小さくできる。上述のように、情報記録装置100は、センサデータの検索の際に、検索式に適合するチャンクデータファイルを選択して検索範囲を絞り込んだうえで、個々のチャンクデータファイル内を検索すればよい。これにより、照合するセンサデータの個数を比較的少なくでき、照合を行う負荷を軽減できる。
また、一括回答を行う場合は、情報記録装置100は、チャンクデータファイル名を回答すればよいので、検索結果回答のために個々のセンサデータを一時的に蓄える必要が無い。したがって、検索結果のセンサデータを一時的に蓄えるためのセンサデータ読み書きの負荷が生じない。
【0063】
また、一括回答を行う場合は、検索結果をネットワーク経由で転送するオーバーヘッドを小さくできる。すなわち、一括回答を行う場合、情報記録装置100は、ホスト130にチャンクデータファイルのファイル名を送信すればよく、個々のデータを送信する従来の方法よりも通信量を少なくでき、ネットワークの負荷を軽減できる。また、情報記録装置100は、ホスト130にセンサデータを送信する際に、チャンクデータファイルに含めて送信するので、分散ファイルシステム111および131を用いて送信できる。したがって、キャッシュによる転送負荷の低減など、分散ファイルシステム技術を用いてネットワーク負荷を軽減できる。
【0064】
さらに、アプリケーション部132が分散ファイルシステム131経由でチャンクデータファイルとして読み出すセンサデータは、テキストファイルとして密に格納されている。すなわち、図4のセンサデータL11で、長さの異なる文字列「センサID」と「1」とが、いずれも余白を含まずに「=」を挟んで結合されているように、センサデータ、ひいては、チャンクデータファイルは、データを固定長とするための余白を含んでいない。したがって、保持領域のオーバーヘッドが小さい。
さらに、一括回答がYesの場合は、ホスト130のアプリケーション部132は、検索結果のセンサデータをファイルにて一括して読み出すことができ、センサデータを一括処理できる。したがって、センサデータが個別ばらばらに入力される場合のように、計算リソースや記憶リソースを確保したままでセンサデータを待ち受ける必要がなく、また、センサデータを一括して処理するために入力されるセンサデータを一時的にメモリに蓄える必要も無く、センサデータを一時的に保持する負荷を極めて小さくできる。
【0065】
さらに、個々のデータは可読テキスト形式で格納されており、例えば図11の手順S281以降で得られた情報一次保持部103の保持する情報からの検索結果を回答する際、従来必要とされていたマーシャリングおよびアンマーシャリング処理を行わなくて済む。
ここでいう「マーシャリング」とは、データをネットワーク送出可能な形式に変換する処理であり、「アンマーシャリング」とは、検索結果を受け取ったアプリケーションが該データをネットワーク送出可能な形式から復元する処理をいう。マーシャリングおよびアンマーシャリングは、例えば分散システムにおいてデータを伝送するために広く用いられる技術である。データを個別にネットワーク送出可能な形式に変換する従来の情報記録装置では、センサデータなど多数のデータを送信する際の、マーシャリングおよびアンマーシャリングの負荷が無視できない負担となっていた。すなわち、従来の情報記録装置では、可読でないバイナリ形式でデータをRDBに蓄積することが一般的であり、検索式による検索の後、検索結果の個々のデータをマーシャリング処理してネットワーク送出可能な形式に変換して送信し、受信側では、受信したデータをアンマーシャリング処理してアプリケーションが使いやすい形式へと変換していたが、この一連の処理は処理オーバーヘッドが大きい。一方、処理オーバーヘッドを回避するためにこれら処理の一部を行わないようにすると、可読でないバイナリ形式でデータが格納されているためデータを扱いにくい(例えばアプリケーション設計の際の負荷が大きくなる)という問題が生じる。また、センサデータとして計測される多種多様なデータを扱うために、スキーマを定めず、例えばオブジェクト指向等の柔軟性の高い方法でデータを格納することが従来行われていたが、一般には柔軟性の高いデータ構造ほどマーシャリングおよびアンマーシャリングの負荷が大きくなる傾向にある。
これに対して、本実施形態では、個々のデータは可読テキスト形式で格納されており、マーシャリングおよびアンマーシャリングが不要なので、センサデータとして計測される多種多様なデータを、スキーマを定めず扱いつつ、データ伝送に伴う負荷を極めて小さくでき、また、データが扱いにくいという問題も生じない。
【0066】
さらに、一括回答を行う場合は、例えば図11の手順S283以降で得られた、チャンクデータファイル名を該検索結果に含めればよく、ここでも、従来必要とされていたマーシャリングおよびアンマーシャリング処理を行わなくて済む。したがって、データ伝送に伴う負荷を極めて小さくできる。
さらに、本実施形態では、チャンクデータファイルを、分散ファイルシステムを経由して遠隔のコンピュータに転送するので、分散ファイルシステム技術の持つキャッシュによる転送負荷の低減効果を期待できる。さらに、分散ファイルシステム技術により遠隔のコンピュータ上のファイル読み出しが容易になる利点を活用でき、例えばテキストエディタで直接ファイルを開くことができる等、データ利用の利便性が向上する。さらに、一部の分散ファイルシステム技術の持つ、データの複製を管理する等により耐故障性に優れるという特徴も享受し得る。
【0067】
さらに、チャンクデータファイルは、相互に近似性の高いセンサデータを含んで構成される。このため、アプリケーション部132が分散ファイルシステム131経由でチャンクデータファイルとしてデータを読み出す際、無駄なデータが含まれる確率が比較的小さく、ネットワークを経由して無駄なデータの転送を抑止できる。さらに、アプリケーション部132が、チャンクデータファイル内を検索して検索式F271に合致するセンサデータを読み出す際に、検索式F271に合致しないセンサデータ含まれる確率が比較的小さいので、無駄なデータを選り分ける負荷を低減できる。
【0068】
なお、本実施の形態においては、センサデータ情報の符号化は、「属性=値」の組の並び形式で表現される可読形式の1行のテキスト情報であるが、本発明の範囲はこれに限定されるものではなく、不可読形式を含む任意の情報符号化方式にも適用できる。また、例えばXMLやJSON仕様等を用いて表現した、複数行からなる可読のテキスト情報に基づく情報符号化方式にも適用できる。
なお、本実施の形態においては、チャンクデータファイルは、分散ファイルシステム111上に作成されるが、本発明の範囲はこれに限定されるものではなく、OSが一般に提供する通常のファイルシステムや、あるいは、RDBMSやXMLデータベースシステム等の情報記録システム上に作成することもできる。あるいは、分散ファイルシステムとしてOSに内蔵されている機能であるNFSやCIFS(SMB)等を用いてもよい。あるいは、ウェブ技術のHTTPおよびその拡張であるWebDAV等、あるいは、クラウドと称される技術のGFSやHadoop等、あるいは、キーバリューストアと呼ばれる技術のDynamoやmemcached等を用いてもよい。
【0069】
なお、本発明の装置は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通じて提供することも可能である。
例えば、情報記録装置100の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の保持装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0070】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【産業上の利用可能性】
【0071】
本発明は、情報記録装置、情報記録方法およびプログラムに用いて好適である。
【符号の説明】
【0072】
100 情報記録装置
101 要求処理部
102 情報登録部
103 情報一次保持部
104 情報選択部
105 近似性算出部
106 情報切り出し部
107 索引保持部
109 情報検索部
111、131 分散ファイルシステム
120 ネットワーク
130 ホスト
132 アプリケーション部
140−1〜140−3 センサ
【技術分野】
【0001】
本発明は、情報記録装置、情報記録方法およびプログラムに関する。
【背景技術】
【0002】
センサなどのデータを記録し、記録したデータを検索可能とする、センサデータ向けの情報記録システムとして、uTupleSpace(非特許文献1、非特許文献2参照)など、幾つかのセンサ情報記録システムがある。
これら従来の代表的なセンサ情報記録システムは、センサからの1つ1つのデータをネットワーク経由で受け取り、システム内部に具備するRDBMS(Relational Database Management System、関係データベース管理システム)が保持するRDB(Relational Database、関係データベース)のテーブルの行に、それぞれのデータを格納する。また、該システムはアプリケーションからの検索要求をネットワーク経由で受信すると、SQL(Structured Query Language)による検索式を生成する。そして、センサ情報記録システムは、生成した検索式を含む検索要求をRDBMSに対して発行することにより、RDBMS内の該当するテーブルを検索して、検索式に合致する行の並びを取得する。センサ情報記録システムは、それぞれの行を個別にネットワーク送出可能な形式に変換し、それら変換結果をネットワーク経由で検索結果として返送する。
【0003】
ここで、センサデータの一般的な特徴として、一つ一つのデータ量が小さいことが挙げられる。典型的には、センサ値は数バイト程度、それにメタデータが付随しても高々数十バイト程度であることが多い。さらに、センサデータを活用する際の特徴として、データマイニング技術などを用いて、大量のデータを一括して処理する機会が多いことが挙げられる。また、センサデータは多種多様であり、データベースの構造(スキーマ、Schema)を一意に定められないことも特徴である。
【0004】
また、ネットワークを介してデータ取得を容易かつ効率的に行う技術として、分散ファイルシステムと呼ばれる技術がある。具体的には、OS(Operating System)に内蔵されている機能として、NFS(Network File System)やCIFS(Common Internet FIle System (SMB(Server Message Block))等が、またウェブ技術として、HTTP(Hypertext Transfer Protocol)およびその拡張である WebDAV(Distributed Authoring and Versioning protocol for the WWW)等が、またクラウド(Cloud)と称される技術として、GFS(Google(登録商標) File System)やHadoop等が広く用いられており、さらに、キーバリューストア(Key-Value store;KVS)と呼ばれる技術として、Dynamoやmemcached等の技術も同様の目的に広く用いられている。これら分散ファイルシステム技術を用いれば、データの集まりをファイルとして扱い、別のホストにあるファイルを容易に取得でき、さらに、これら技術はキャッシュ技術を含んでおり、キャッシュにヒットした際には転送負荷の低減効果が期待できる。また技術によっては、データの複製を管理する等により、耐故障性に優れるという特徴を有するものもある。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】荒川 豊、他4名、「実世界データ共有機構uTupleSpaceにおける動的スケール化方式の評価」、電子情報通信学会 IN研究会報告、2009年6月
【非特許文献2】中村 隆幸(Takayuki Nakamura)、他5名、「uTupleSpace: A Bi-Directional Shared Data Space for Wide-Area Sensor Network」、2nd International Workshop on Sensor Networks and Ambient Intelligence (SENAMI 2009)、2009年12月
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、前述したような特徴をもつ、センサデータに代表されるデータを取り扱うにあたって、従来のセンサ情報記録システムには、大量のデータを個別ばらばらのデータとして処理するため、処理オーバーヘッドが大きいという問題があった。具体的には次の箇所のオーバーヘッドが大きいことが特に問題であった。
【0007】
まず、RDB内にデータを格納する際、それぞれのデータが個別の行として格納されるため、検索のための索引情報などによる、記憶領域のオーバーヘッドが大きかった。個々のデータがある程度の大きさを持っているアプリケーションにおいては、これらのオーバーヘッドはデータに対して十分小さいとみなせるが、センサデータの場合は、個々のデータ量が小さいため、このオーバーヘッドは無視できない負担となっていた。
【0008】
次に、検索式に合致する行の並びを得る検索処理のオーバーヘッドが大きかった。大量のデータを一括して処理するために、検索式を用いてRDB内を検索すると、照合する行の数および合致する行の数が膨大になり、RDBMS内部の各データの照合を行う負荷および結果回答のための行の並びを一時的に蓄える負荷が大きくなっていた。個々のデータがある程度の大きさを持っているアプリケーションにおいては、総データ量との割合において、合致する行の数が比較的少なく、これらオーバーヘッドは十分小さいとみなせるが、センサデータの場合は、個々のデータ量が小さいため、このオーバーヘッドは無視できない負担となっていた。
【0009】
また、検索結果をネットワーク経由で転送するオーバーヘッドが大きかった。センサデータを用いるアプリケーションでは、大量の検索結果のデータを一括して処理することから、データ転送の際に、ネットワークに一定の負荷がかかる。一般に、分散ファイルシステム技術を用いれば、別のホストにあるデータの集まりをファイルとして取得する際、キャッシュによる転送負荷の低減効果が期待できる。しかし、検索結果をネットワーク経由で転送する場合は、検索を行って初めて検索結果が得られるので、検索結果を予めファイルとして保持しておくことはできない。したがって、上述のような分散ファイルシステム技術を用いてその利点を生かし、検索結果の転送の際のネットワーク負荷を軽減することは出来なかった。
【0010】
本発明は、このような事情を考慮してなされたものであり、その目的は、センサデータなど、個々のデータ量が小さくデータ数の多いデータの検索結果を回答する際の処理のオーバーヘッドを低減できる情報記録装置、情報記録方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0011】
[1]この発明は上述した課題を解決するためになされたもので、本発明の一態様による情報記録装置は、属性名と属性値とを含む情報を保持する情報保持部と、前記情報保持部が保持する前記情報のうち、前記属性名または前記属性値に関して予め定められた条件を満たす情報を選択する情報選択部と、前記情報選択部が選択した前記情報を含む前記予め定められた条件毎のファイルを生成し、前記情報選択部が選択した前記情報を前記情報保持部から削除する情報切り出し部と、を具備することを特徴とする。
【0012】
[2]また、本発明の一態様による情報記録装置は、上述の情報記録装置であって、前記情報選択部は、前記情報保持部が保持する前記情報のうち、前記情報の前記情報記録装置への登録要求の受信時刻または情報発生時刻が予め定められた範囲内にある、あるいは、情報を生成するセンサの種別が同じである、あるいは、情報発生地点相互間の距離が予め定められた閾値以下である、あるいは、特定の属性について同じ値を持つ、あるいは、特定の属性について値の差が予め定められた閾値以下である、あるいは、同じデータ属性を予め定められた個数以上含む、のいずれかの条件、あるいは、これらの条件を組み合わせて得られる条件を満たす情報を選択することを特徴とする。
【0013】
[3]また、本発明の一態様による情報記録装置は、上述の情報記録装置であって、前記情報切り出し部が生成した前記ファイルを保持する分散ファイルシステムをさらに具備することを特徴とする。
【0014】
[4]また、本発明の一態様による情報記録装置は、上述の情報記録装置であって、検索すべき情報の条件を示す検索要求信号を受信する要求通信部と、情報検索部と、をさらに具備し、前記情報切り出し部は、前記生成したファイルのファイル名と前記予め定められた条件とを示す索引情報をファイル毎に生成し、前記情報検索部は、前記検索すべき情報の条件を満たす情報を前記情報保持部から読み出し、前記索引情報が示す前記予め定められた条件が前記検索すべき情報の条件に矛盾しないファイルのファイル名を前記索引情報から読み出し、前記要求通信部は、前記情報検索部が前記情報保持部から読み出した前記情報と、前記情報検索部が前記索引情報から読み出したファイル名と、を含む検索結果情報を送信することを特徴とする。
【0015】
[5]また、本発明の一態様による情報記録方法は、属性名と属性値とを含む情報を保持する情報保持部を具備する情報記録装置の情報記録方法であって、前記情報保持部が保持する前記情報のうち、前記属性名または前記属性値に関して予め定められた条件を満たす情報を選択する情報選択ステップと、前記情報選択ステップにて選択した前記情報を含む前記予め定められた条件毎のファイルを生成し、前記情報選択ステップにて選択した前記情報を前記情報保持部から削除する情報切り出しステップと、を具備することを特徴とする。
【0016】
[6]また、本発明の一態様による情報記録方法は、上述の情報記録方法であって、前記情報選択ステップにて、前記情報保持部が保持する前記情報のうち、前記情報の前記情報記録装置への登録要求の受信時刻または情報発生時刻が予め定められた範囲内にある、あるいは、情報を生成するセンサの種別が同じである、あるいは、情報発生地点相互間の距離が予め定められた閾値以下である、あるいは、特定の属性について同じ値を持つ、あるいは、特定の属性について値の差が予め定められた閾値以下である、あるいは、同じデータ属性を予め定められた個数以上含む、のいずれかの条件、あるいは、これらの条件を組み合わせて得られる条件を満たす情報を選択することを特徴とする。
【0017】
[7]また、本発明の一態様による情報記録方法は、上述の情報記録方法であって、前記情報記録装置は分散ファイルシステムをさらに具備し、前記情報記録方法は、前記情報切り出し部が生成した前記ファイルを前記分散ファイルシステムが保持するファイル保持ステップをさらに具備することを特徴とする。
【0018】
[8]また、本発明の一態様による情報記録方法は、上述の情報記録方法であって、前記情報切り出しステップにて生成した前記ファイルのファイル名と前記予め定められた条件とを示す索引情報をファイル毎に生成する索引情報生成ステップと、検索すべき情報の条件を示す検索要求信号を受信する検索要求信号受信ステップと、前記検索すべき情報の条件を満たす情報を前記情報保持部から読み出し、前記索引情報が示す前記予め定められた条件が前記検索すべき情報の条件に矛盾しないファイルのファイル名を前記索引情報から読み出す情報検索ステップと、前記情報検索ステップにて前記情報保持部から読み出した前記情報と、前記情報検索ステップにて前記索引情報から読み出したファイル名と、を含む検索結果情報を送信する検索結果送信ステップと、を具備することを特徴とする。
【0019】
[9]また、本発明の一態様によるプログラムは、情報保持部を具備するコンピュータに、上述のいずれかの情報記録方法を実行させるプログラムである。
【発明の効果】
【0020】
本発明によれば、センサデータなど、個々のデータ量が小さくデータ数の多いデータの検索結果を回答する際の処理のオーバーヘッドを低減できる。
【図面の簡単な説明】
【0021】
【図1】本発明の一実施形態における情報記録装置100の概略構成を示す構成図である。
【図2】同実施形態における、登録要求の例を示す図である。
【図3】同実施形態における、センサデータテーブルの例を示す図である。
【図4】同実施形態における、チャンクデータファイルの例を示す図である。
【図5】同実施形態において、チャンクデータファイル生成後に情報一次保持部103が保持するセンサデータテーブルの例を示す図である。
【図6】同実施形態における、索引情報テーブルの例を示す図である。
【図7】同実施形態における、検索要求の例を示す図である。
【図8】同実施形態において、一括回答を行う場合の検索結果の例を示す図である。
【図9】同実施形態において、一括回答を行わない場合の検索結果の例を示す図である。
【図10】同実施形態において、情報記録装置100が、相互に近似するセンサデータの切り出しを行う処理手順を示すフローチャートである。
【図11】同実施形態において、情報記録装置100が、検索要求に対する検索結果を生成してホスト130に送信する処理手順を示すフローチャートである。
【発明を実施するための形態】
【0022】
以下、図面を参照して、本発明の一実施形態について説明する。
図1は、本発明の一実施形態における情報記録装置100の概略構成を示す構成図である。
同図において、情報記録装置100は、要求処理部101と、情報登録部102と、情報一次保持部(情報保持部)103と、情報選択部104と、情報切り出し部106と、索引保持部107と、情報検索部109と、分散ファイルシステム111とを具備する。情報選択部104は近似性算出部105を具備する。
また、情報記録装置100と、ホスト130と、センサ140−1〜140−3とは、ネットワーク120に接続している。ホスト130は、分散ファイルシステム131と、アプリケーション部132とを具備する。なお、ネットワーク120に接続されるセンサの個数は、同図に示す3個に限らず、1個以上であればよい。
なお、本実施形態では、情報記録装置100がセンサデータを扱う場合について説明するが、情報記録装置100が扱う情報は、センサデータに限らない。例えば、大規模なシミュレーションの結果など、情報数の多い情報であればよい。
【0023】
情報記録装置100は、ネットワーク120を介して、センサ140−1〜140−3から登録要求を受信し、受信した登録要求に含まれるセンサデータを情報一次保持部103に保持する。情報記録装置100は、さらに、情報一次保持部103が保持するセンサデータ相互間の近似性に基づいて、情報一次保持部103からセンサデータを選択し、選択したセンサデータをまとめたファイルを生成し、生成したファイルを分散ファイルシステム111に保持させる。また、情報記録装置100は、ネットワーク120を介して、ホスト130から検索要求を受信し、受信した検索要求に対する検索結果をホスト130に送信する。
要求処理部(要求通信部)101は、ネットワーク120に接続しており、ネットワーク120を介して、センサ140−1〜140−3から登録要求(登録要求信号)を受信し、ホスト130から検索要求(検索要求信号)を受信し、ホスト130に検索結果(検索結果信号)を送信する。
【0024】
情報登録部102は、センサ140−1〜140−3から送信される登録要求からセンサデータを読み出し、情報一次保持部103に書き込む。
情報一次保持部103は、情報登録部102が書き込むデータを保持する。
情報選択部104は、情報一次保持部103が保持するセンサデータの中から、予め定められた条件を満たすセンサデータを、相互に近似性の高いセンサデータとして選択する。近似性算出部105は、情報一次保持部103が保持するセンサデータが予め定められた条件を満たすか否かを判定することにより、センサデータ相互間の近似性を算出する。
情報切り出し部106は、情報選択部104が選択したセンサデータを、情報一次保持部103から読み出し、読み出したセンサデータを予め定められた条件毎にまとめたファイルを生成し、生成したファイルを分散ファイルシステム111に保持させる。また、情報切り出し部106は、読み出したセンサデータを情報一次保持部103から削除する。
【0025】
分散ファイルシステム111は、情報切り出し部106が生成したファイルを保持する。
索引保持部107は、分散ファイルシステム111が保持するファイルの索引情報を保持する。
情報検索部109は、ホスト130から送信される検索要求が示す検索条件に合致するセンサデータを情報一次保持部103から読み出し、また、索引保持部107が保持する索引情報の中から、当該検索条件に適合する索引情報を読み出し、あるいは、さらに分散ファイルシステム111からセンサデータを読み出して、検索結果を生成する。
【0026】
ホスト130は、アプリケーションを実行してサービスを提供するホストコンピュータであり、アプリケーション実行時に必要となったセンサデータを、情報記録装置100に対して検索要求にて要求する。
分散ファイルシステム131は、情報記録装置100の分散ファイルシステム111が保持するファイル(と同一のファイル)の送信を情報記録装置100から受けて、送信を受けた当該ファイルを保持し、アプリケーション部132に対して、分散ファイルシステム111が保持するファイルを提供する。
センサ140−1〜140−3は、センサデータを生成し、生成したセンサデータを含む登録要求を情報記録装置100に送信する。
ネットワーク120は、情報記録装置100とホスト130とセンサ140−1〜140−3とに接続し、これら相互間のデータを伝送する。
【0027】
次に、センサ140−1〜140−3が情報記録装置100に送信する、登録要求のデータ構成について説明する。
図2は、登録要求の例を示す図である。
同図に示すように、登録要求は、センサデータを含む。センサデータは、区切り記号「,」を挟んで相互に結合されたデータまたはメタデータを含む。データまたはメタデータは、区切り記号「=」を挟んで結合された属性(属性名)と値(属性値)とを含む。
同図に示すセンサデータは、色センサであるセンサ140−3が計測した色を示すデータである。センサ140−3は、部屋R1〜R3を移動するロボットに搭載されており、情報記録装置100に定期的にセンサデータを送信する。
【0028】
図2の例では、「色=黄」がセンサ140−3の計測した計測データであり、「センサID=3」と、「部屋=R1」と、「姿勢=寝」とがメタデータである。
計測データ「色=黄」は、計測データの属性「色」と計測値(センサ140−3が計測した色)「黄」と区切り記号「=」とを含む。「色」は、「赤」、「青」、「黄」のいずれかの値をとる。
同様に、メタデータの各々も、属性と、値と、区切り記号「=」とを含む。「センサID」は、センサ140−1〜140−3を識別する識別情報(Identifier;ID)であり、センサIDの値「1」、「2」、「3」は各々センサ140−1、140−2、140−3を示す。「部屋」は、計測時にセンサが位置する部屋の名前を示し、「R1」、「R2」、「R3」のいずれかの値をとる。「姿勢」は、計測時のロボットの姿勢を示し、「立」、「寝」のいずれかの値をとる。
【0029】
また、センサデータは、可読形式の1行のテキスト情報として表現されている。ここでいう可読形式とは、センサデータに含まれる区切り符号と、属性と、値とが、全て画面表示可能な文字符号のみを含むことをいう。例えば、図2の登録要求F150に含まれるセンサデータの文字列のうち、「セ」がシフトJIS2バイトコードの835a(16進表記、以下同様。)で表記され、「ン」が8393で表記されるなど、センサデータは、画面表示可能なコードで示される文字符号(制御コードや未定義のコードを含まない文字符号)のみを含む。なお、属性ないし値が、表示制御用の符号など、画面表示できない符号を含む場合、例えばバックスラッシュ等の、予め定められたエスケープ文字を前置することにより、画面表示できる文字符号に変換するようにしてもよい。また、例えばセンサの計測値に区切り記号として用いられている符号「=」が含まれる場合など、属性ないし値が、区切り符号を含む場合も、予め定められたエスケープ文字を前置することにより、属性ないし値の一部と区切り符号とを区別するようにしてもよい。
【0030】
次に、情報一次保持部103が保持するセンサデータテーブルのデータ構造について説明する。
図3は、センサデータテーブルの例を示す図である。
センサデータテーブルの各行は、センサから送信される登録要求に基づくセンサデータとなっている。なお、同図の例では、センサデータL11およびL13〜18は、センサ140−1〜140−3のいずれかから送信される登録要求に基づくセンサデータであり、センサデータL12は、物流追跡システムのセンサ(不図示)から送信される登録要求に基づくセンサデータである。
【0031】
ここで、センサデータテーブルの各センサデータは、登録要求に含まれるセンサデータそのものであってもよいし、登録要求に含まれるセンサデータを加工したものであってもよい。図3の例では、センサデータテーブルの各行L11〜L18は、登録要求に含まれるセンサデータに、情報記録装置100による当該登録要求の受信時刻を付加したセンサデータであり、受信時刻の古いセンサデータほど上側(行L11の側)に位置している。例えば、情報登録部102が、登録要求から読み出されたセンサデータに対して受信時刻の付加等の加工を行った後に、情報一次保持部103に書き込むようにしてもよい。
【0032】
次に、分散ファイルシステム111が保持するチャンクデータファイルのデータ構成について説明する。
図4は、チャンクデータファイルの例を示す図である。
チャンクデータファイルには、情報一次保持部103が保持するセンサデータのうち、相互に近似するセンサデータが含まれている。同図の例では、チャンクデータファイルの各センサデータL11、L14、L17は、図3の例で示した、情報一次保持部103が保持するセンサデータのうち、予め定められた条件「部屋=R1」を満たす点で相互に近似するセンサデータである。図4のファイルでは、図3の例で示した、情報一次保持部103が保持するセンサデータの中から、条件「部屋=R1」を満たすセンサデータが、時刻の古い順に3つ選択されている。図4の例では、条件「部屋=R1」と、時刻の古い順に3番目以内という条件とが予め定められており、この予め定めら得た条件に従ってファイルが生成されている。
また、チャンクデータファイルには、予め定められたファイル名生成規則に基づいて、ファイル名が付されている。図4の例では、条件「部屋=R1」を満たすセンサデータのチャンクデータファイルに付される固定の文字列「DAT」と、「部屋=R1」を満たすセンサデータを含むことを示す「R1」と、通し番号を示す固定の文字列「SER」と、通し番号「01」と、チャンクデータファイルを示す拡張子「.CNK」とを結合したファイル名「DATR1SER01.CNK」が付されている。
【0033】
次に、チャンクデータファイル生成後に情報一次保持部103が保持するセンサデータテーブルについて説明する。
図5は、チャンクデータファイル生成後に情報一次保持部103が保持するセンサデータテーブルの例を示す図である。
情報切り出し部106は、情報一次保持部103から相互に近似するセンサデータを選択してチャンクデータファイルを生成すると、チャンクデータファイルに含めたセンサデータを、情報一次保持部103が保持するセンサデータテーブルから削除する。図5では、情報切り出し部106が、図3のセンサデータテーブルから図4のチャンクデータファイルを生成した後の、センサデータテーブルが示されている。同図の例では、情報一次保持部103が保持するセンサデータテーブルには、図3のセンサデータテーブルに含まれるセンサデータL11〜L18から、図4のチャンクデータファイルに含まれるセンサデータL11とL14とL17とを除いたセンサデータL12とL13とL15とL16とL18とが含まれている。
【0034】
次に、索引保持部107が保持する索引情報テーブルのデータ構成について説明する。
図6は、索引情報テーブルの例を示す図である。
索引情報テーブルの各行は、索引情報となっている。索引情報は、チャンクデータファイルのインデックス情報であり、チャンクデータファイルのファイル名と、当該チャンクデータファイルに含まれるセンサデータに共通する条件を示す情報とが含まれる。
例えば、図6の索引情報テーブルは索引情報L21〜L24を含む。そして、索引情報L24は、図4に示したチャンクデータファイルの索引情報であり、ファイル名「DATR1SER01.CNK」を含み、また、センサデータに共通する条件として、当該ファイルが含むセンサデータのうち最古および最新の時刻情報(図4のセンサデータL11の時刻から同図のセンサデータL17までの時刻を示す時刻情報)と、条件「部屋=R1」を示す記述とを含む。
【0035】
次に、ホスト130が情報記録装置100に送信する、検索要求のデータ構成について説明する。
図7は、検索要求の例を示す図である。
検索要求は、検索式と一括回答フラグとを含む。例えば、図7の検索要求F151は、検索式F271と、一括回答フラグとを含む。検索式F271は、ホスト130が要求するセンサデータの条件を示す情報である。一括回答フラグは、後述する一括回答を行うか否かを示すフラグであり、「Yes」または「No」の値をとる。
図7の検索要求F151は、ホスト130が、「部屋=R1」かつ「姿勢=寝」を満たすセンサデータを要求していることを示し、また、一括回答を行うことを示している。
【0036】
次に、図8および図9を用いて、情報記録装置100がホスト130に送信する、検索結果のデータ構成について説明する。
図8は、一括回答を行う場合の検索結果の例を示す図である。
検索結果は、検索要求に対する回答であり、情報一次保持部103が保持するセンサデータのうち、検索要求が示す条件に合致するセンサデータを含む。ここで、検索要求が示す条件に「合致」するセンサデータとは、検索要求が示す条件の全てを満たすセンサデータをいう。
さらに、検索要求の一括回答フラグが「Yes」の場合は、検索結果は、分散ファイルシステム111が保持するチャンクデータファイルのうち、検索要求が示す条件に適合するファイルのファイル名を含む。一方、検索要求の一括回答フラグが「No」の場合は、検索結果は、分散ファイルシステム111が保持するチャンクデータファイルに含まれるセンサデータのうち、検索要求が示す条件に合致するセンサデータを含む。
【0037】
ここで、検索要求が示す条件に「適合」するファイルとは、当該ファイルの索引情報の示す条件(ファイルに含まれるセンサデータに共通する条件)が、検索要求の示す条件(検索式)に矛盾しないファイルをいう。検索要求の示す条件の全てについて、その属性が、索引情報に含まれない場合、あるいは、その属性が、索引情報に含まれ、かつ、その値が整合する(値が一致する。検索要求または索引情報が値の範囲を示す場合は、少なくとも一部が重なる。)場合は、当該ファイルは当該検索要求に適合する。一方、検索要求の示す条件のうち、いずれかの条件の属性が、索引情報に含まれ、かつ、その値が整合しない(値が異なる。検索要求または索引情報が値の範囲を示す場合は、重なる部分が無い。)場合は、当該ファイルは当該検索要求に適合しない。
【0038】
例えば、図7の検索要求F151の示す条件は、「部屋=R1」かつ「姿勢=寝」である。これと図6の索引情報L24が示す条件「時刻=○○○〜○○○」かつ「部屋=R1」とを対比すると、検索要求F151の示す属性「部屋」は、索引情報L24に含まれており、かつ、検索要求F151の示す値「R1」は、索引情報L24の示す値「R1」と一致する。また、検索要求F151の示す属性「姿勢」は、索引情報L24には含まれない。従って、索引情報L24は、検索要求F151に適合する。
一方、検索要求F151と図6の索引情報L23とを対比すると、検索要求F151の示す属性「部屋」は、索引情報L23に含まれており、かつ、検索要求F151の示す値「R1」は、索引情報L23の示す値「R2」と異なる。従って、索引情報L23は、検索要求F151に適合しない。
【0039】
図8は、図7の検索要求F151に対する検索結果F152の例を示しており、図5のセンサデータテーブルに含まれるセンサデータのうち、図7の検索要求F151の示す条件「部屋=R1」かつ「姿勢=寝」を満たすセンサデータL18を含む。
また、図7の検索要求F151の一括回答フラグは「Yes」となっているので、図8の検索結果F152は、図6の索引情報L21〜L24のうち、図7の検索要求F151の示す条件「部屋=R1」かつ「姿勢=寝」に適合する索引情報L24に含まれるファイル名「DATR1SER01.CNK」(図8のファイル名N11)を含む。
このように、一括回答とは、検索要求F151に対して、分散ファイルシステム111が保持する個々のセンサデータではなく、分散ファイルシステム111が保持するチャンクデータファイル名を回答することをいう。情報記録装置100が、検索要求F151に適合するチャンクデータファイルのファイル名をホスト130に回答することにより、ホスト130は、条件に合致するセンサデータを、当該ファイル内を検索して取得できる。
【0040】
図9は、一括回答を行わない場合の検索結果の例を示す図である。
同図の検索結果F153は、図8に示した一括回答を行う場合の検索結果F152と同様、図5のセンサデータテーブルに含まれるセンサデータのうち、図7の検索要求F151の示す条件「部屋=R1」かつ「姿勢=寝」を満たすセンサデータL18を含む。
一方、図9の検索結果F153は、チャンクデータファイルのファイル名は含まず、図7の検索要求F151が示す条件に適合するチャンクデータファイル(図4のチャンクデータファイル)に含まれるセンサデータL11、L14、L17のうち、条件に合致するセンサデータL14とL17とを含む。
【0041】
次に、情報記録装置100の動作について説明する。
図10は、情報記録装置100が、相互に近似するセンサデータの切り出しを行う処理手順を示すフローチャートである。
情報記録装置100は、予め定められた一定時間が経過する毎に同図に示す処理を開始する。なお、情報記録装置100が同図に示す処理を開始する契機は、予め定められた一定時間の経過に限らない。例えば、情報記録装置100が登録要求を処理し、情報一次保持部103の保持するセンサデータ数が一定個数に達したとき、あるいは、情報記録装置100が登録要求を処理し、情報一次保持部103が保持するセンサデータのうち、相互に近似性の高いセンサデータ数が一定個数に達したときなど、予め定められた一定時間の経過以外の契機で、処理を開始するようにしてもよい。
【0042】
情報記録装置100が同図の処理を開始する時点では、情報一次保持部103は、例えば図3のようにセンサデータL11〜L18をセンサデータテーブル内に保持している。これらのセンサデータのうち、センサデータL11、L14、L17は、条件「部屋=R1」と、時刻の古い順に3番目以内という条件とを満たす点で相互に近似する。
情報記録装置100は、以下に説明する処理により、このような相互に近似するセンサデータを切り出して1つのチャンクデータファイルに纏め、さらに、このチャンクデータの索引情報を生成する。
例えば、情報記録装置100は、図3のデータテーブルから相互に近似するセンサデータL11とL14とL17とを読み出し、これらのセンサデータを纏めて、図4に示したチャンクデータファイルを生成する。また、情報記録装置100は、読み出したセンサデータをセンサデータテーブルから削除して、図5のように、情報一次保持部103がセンサデータテーブル内に、残りのセンサデータL12、L13、L15、L16、L18を保持する状態とする。さらに、情報記録装置100は、図6の索引情報L24のように、生成したチャンクデータファイルのファイル名「DATR1SER01.CNK」と、当該チャンクデータファイルに含まれるセンサデータL11とL14とL17とに共通する条件を示す情報「時刻=○○○〜○○○,部屋=R1」とを含む索引情報を生成する。
【0043】
以下、情報記録装置100が行う図10の処理について、より詳細に説明する。
情報記録装置100が同図の処理を開始すると、まず、近似性算出部105が、情報一次保持部103が保持するセンサデータの中から相互に近似性の高いセンサデータを検出し、情報選択部104は、近似性算出部105が検出したセンサデータの中からファイル化の対象とするセンサデータを選択する。情報選択部104は、選択したセンサデータを示す情報と、選択条件を示す情報とを、情報切り出し部106に出力する。
【0044】
ここで、相互に近似性の高いセンサデータとは、予め定められた条件を共に満たすセンサデータをいう。
例えば、近似性算出部105は、登録要求受信時刻またはセンサデータ発生時刻などの時刻が近い、あるいは、扱うセンサの種別が同じである、あるいは、情報発生地点が近い、あるいは、特定の属性について同じ値を持つ、あるいは、特定の属性について値が近接している(差が予め定められた閾値以下である)、あるいは、属性=値の組の並びで表される2つのデータを比較したとき同じ属性を多数(予め定められた個数以上)含む、等の条件のいずれか、あるいは、これらの条件を組み合わせて得られる条件を用いて、条件を満たすセンサデータを相互に近似性の高いセンサデータとして検出する。
【0045】
さらに、時刻の近さの条件として、近似性算出部105は、例えば、両時間が予め定められた閾値時間以内である、あるいは、時刻の古い順または新しい順または中間のいずれかの部分から順に予め定められた個数だけ選択する、等の条件、あるいは、これらの条件を組み合わせて得られる条件を用いる。また、情報発生地点の近さの条件としては、例えば、両地点の距離が、予め定められた閾値距離内である、あるいは、予め定められた基準地点からの距離が、予め定められた閾値距離内である、あるいは、予め定められた基準地点に近い順に予め定められた個数だけ選択する、等の条件、あるいは、これらの条件を組み合わせて得られる条件を用いる。
例えば、近似性算出部105は、図3の情報一次保持部103が保持するセンサデータL11〜L18の中から、属性「部屋」の値が同じであり、かつ、登録要求の受信時刻が最も過去のものから順に3つ以内のデータを選択する。属性「部屋」の値が共に「R1」のセンサデータを3つ以内選択すると、センサデータL11、L14、L17となる。属性「部屋」の値が共に「R2」のセンサデータの場合は、センサデータL13、L16となる。属性「部屋」の値が共に「R3」のセンサデータの場合は、センサデータL14、L18となる。
【0046】
近似性算出部105が相互に近似性の高いセンサデータを検出すると、次に、情報選択部104は、近似性算出部105が検出したセンサデータの中からファイル化の対象とするセンサデータを選択する。例えば、情報選択部104は、相互に近似性の高いデータ数が多いセンサデータを選択する。上述の例の場合、近似性算出部105が検出したセンサデータのうち、属性「部屋」の値が共に「R1」のセンサデータとして検出したものは、センサデータL11とL14とL17との3個である。これに対して、属性「部屋」の値が共に「R2」、「R3」のセンサデータとして検出したものは、それぞれ、センサデータL13とL16、センサデータL14とL18の2個である。そこで、情報選択部104は、センサデータ数が最も多い、属性「部屋」の値が共に「R1」のセンサデータを選択する。
そして、情報選択部104は、選択したセンサデータを示す情報として、例えば、センサデータL11とL14とL17との、図3のセンサデータテーブル内における情報の古い順を示す、「1」と「4」と「7」とを、情報切り出し部106に出力する。また、情報選択部104は、選択条件を示す情報として、選択したうちで最古のセンサデータL11と最新のセンサデータL17との時刻を示す「時刻=○○○〜○○○」と、属性「部屋」の値を示す「部屋=R1」とを、情報切り出し部106に出力する(以上、手順S241)。
【0047】
情報切り出し部106は、情報選択部104から出力される情報に基づいて、当該情報が示すセンサデータを、情報一次保持部103から読み出す(手順S242)。そして、情報切り出し部106は、読み出したセンサデータを含むチャンクデータファイルを生成し、予め定められたファイル名生成規則に従って、生成したチャンクデータファイルにファイル名を付す。例えば、情報切り出し部106は、センサデータL11とL14とL17とを含む、図4のチャンクデータファイルを生成し、生成したチャンクデータファイルに、図4で説明したファイル名「DATR1SER01.CNK」を付す。
情報切り出し部106は、ファイル名を付したチャンクデータファイルを、分散ファイルシステム111に出力し、分散ファイルシステム111は、このチャンクデータファイルを保持する(以上、手順S243)。
【0048】
次に、情報切り出し部106は、生成したチャンクデータファイルのファイル名と、情報選択部104から出力された選択条件を示す情報とを含む索引情報を生成し、索引保持部107の索引情報テーブルに書き込む。例えば、情報切り出し部106は、手順S242で生成したチャンクデータファイルのファイル名「DATR1SER01.CNK」と、情報選択部104から出力される選択条件を示す情報「時刻=○○○〜○○○」および「部屋=R1」とを含む索引情報を生成し、図6の索引情報L24のように、索引保持部107の索引情報テーブルに書き込む(以上、手順S244)。
さらに、情報切り出し部106は、手順S242でチャンクデータファイルに含めたセンサデータを、情報一次保持部103のセンサデータテーブルから削除する(手順S245)。例えば、情報切り出し部106は、図3のセンサデータテーブルから、センサデータL11とL14とL17とを削除する。これにより、センサデータテーブルは、図5のようになる。
その後、情報記録装置100は、図10の処理を終了する。
【0049】
以上の処理によって、情報一次保持部103の持つデータの個数は一定程度に少ない状態で維持され、一方、相互に近似性の高い情報のみが集まったチャンクデータファイルが、分散ファイルシステム111上に次々と生成される。その際、各チャンクデータファイルは、1行に1センサデータが記述された可読なテキストファイル形式にて生成される。また、それらチャンクデータファイルの索引情報が、索引保持部107に構築される。
【0050】
図11は、情報記録装置100が、検索要求に対する検索結果を生成してホスト130に送信する処理手順を示すフローチャートである。
情報記録装置100は、ホスト130から検索要求を受信すると、同図の処理を開始する。
【0051】
情報記録装置100が同図の処理を開始する時点では、分散ファイルシステム111は、互いに共通するセンサデータを纏めたチャンクデータファイルを保持し、情報一次保持部103は、チャンクデータファイルのセンサデータを切り出した残りのセンサデータを保持している。また、索引保持部107は、分散ファイルシステム111の保持するチャンクデータファイルの索引情報を保持している。例えば、分散ファイルシステム111は、互いに共通するセンサデータL11とL14とL17とを纏めた図4のチャンクデータファイルを保持し、情報一次保持部103は、図5のように、残りのデータファイルL12とL13とL15とL16とL18を保持している。また、索引保持部107は、図6のように、図4のチャンクデータファイルの索引情報L24を含む索引情報を保持している。
【0052】
情報記録装置100は、以下に説明する処理により、ホスト130からの検索要求に含まれる検索式に基づいて、情報一次保持部103が保持するセンサデータのうち、検索式に合致するセンサデータを含み、さらに、分散ファイルシステムが保持するチャンクデータファイルのうち、検索式に適合するチャンクデータファイルのファイル名を含む検索結果を生成する。例えば、情報記録装置100は、図5のデータファイルのうち、図7の検索要求F151の検索式F271に合致するセンサデータL18を含み、さらに、検索式F271に適合する図4のチャンクデータフィルのファイル名「DATR1SER01.CNK」を含む、図8の検索結果F152を生成する。
あるいは、情報記録装置100は、情報一次保持部103が保持するセンサデータのうち、検索式に合致するセンサデータを含み、さらに、分散ファイルシステムがチャンクデータファイル内に保持するセンサデータのうち、検索式に合致するセンサデータを含む検索結果を生成する。例えば、情報記録装置100は、図5のデータファイルのうち、検索式F271に合致するセンサデータL18を含み、さらに、図4のチャンクデータフィル内のセンサデータのうち、検索式F271に合致するセンサデータL14とL17とを含む、図9の検索結果F153を生成する。
【0053】
以下、情報記録装置100が行う図11の処理について、より詳細に説明する。
要求処理部101が、ホスト130からネットワーク120を介して送信される検索要求を受信して、情報記録装置100が図11の処理を開始すると、要求処理部101は、受信した検索要求を情報検索部109に出力する。情報検索部109は、検索要求から検索式を読み出し、情報一次保持部103のセンサデータテーブルを検索して、検索式に合致するセンサデータを読み出す。
例えば、情報検索部109は、図7の検索要求F151から検索式F271(「部屋=R1,姿勢=寝」)を読み出し、図5の情報一次保持部103のセンサデータテーブルから、検索式F271に合致するセンサデータを読み出す。図8および図9で説明したように、図5のセンサデータのうち、検索式F271の条件「部屋=R1」と「姿勢=寝」とを共に満たすセンサデータL18が、検索式F271に合致する。そこで、情報検索部109は、このセンサデータL18を読み出す(以上、手順S281)。
情報検索部109は、読み出したセンサデータの各々をリストの1行とする回答リストを生成し、情報検索部109内部の回答リスト保持部(不図示)に一時的に保持しておく(手順S282)。
【0054】
次に、情報検索部109は、索引保持部107の索引情報テーブルを検索して、検索式に適合する索引情報を読み出す。
例えば、情報検索部109は、図6の索引保持部107の索引情報テーブルから、図7の検索式F271に適合する索引情報を読み出す。図8および図9で説明したように、図6の検索情報のうち、検索式F271の条件「部屋=R1」を満たし(属性および値が一致し)、条件「姿勢=寝」については属性が示されていない索引情報L24(「ファイル名=DATR1SER01.CNK,時刻=○○○〜○○○,部屋=R1」)が、検索式F271に適合する。そこで、情報検索部109は、この索引情報L24を読み出す(以上、手順S283)。
【0055】
次に、情報検索部109は、検索要求の一括回答フラグの値が「Yes」か否かを判定する(手順S284)。
一括回答フラグが「Yes」であると判定した場合(手順S284:Yes)は、情報検索部109は、手順S283で読み出した索引情報に含まれるファイル名を、情報検索部109内部に保持する回答リストに追加する。例えば、図7の検索要求F151の一括回答フラグは「Yes」であり、情報検索部109は、手順S283で読み出した索引情報L24に含まれるファイル名「DATR1SER01.CNK」を、回答リストに追加する(以上、手順S285)。
【0056】
一方、一括回答フラグの値が「No」の場合(手順S284:No)、この一括回答フラグは、ホスト130がチャンクデータファイル名ではなく個々のセンサデータを含む検索結果を要求していることを示している。そこで、情報検索部109は、手順S283で読み出した索引情報に含まれるファイル名のそれぞれについて、以下の手順を実施する。まず、分散ファイルシステム111からチャンクデータファイルを読み出し(手順S286)、読み出したチャンクデータファイルの各々を、手順S281と同様に検索して、検索式に合致するセンサデータを読み出し(手順S287)、読み出したセンサデータを、情報検索部109内部に保持する回答リストに追加する。
例えば、情報検索部109は、手順S283で読み出した索引情報L24に含まれるファイル名「DATR1SER01.CNK」に基づいて、分散ファイルシステム111から図4のチャンクデータファイルを読み出す。そして、このチャンクデータファイルから、図7の検索式F271「部屋=R1,姿勢=寝」に合致するセンサデータL14とL17とを読み出し、回答リストに追加する(以上、手順S288)。
【0057】
そして、情報検索部109は、要求処理部101に、回答リストを出力する。要求処理部101は、情報検索部109から出力される回答リストを含む検索結果を生成し、ネットワーク120を介してホスト130に送信する。
例えば、一括回答フラグが「Yes」の場合、要求処理部101は、手順S281で読み出したセンサデータL18と、手順S283で読み出したファイル名N11とから構成される回答リストを含む、図8の検索結果を送信する。一方、一括回答フラグが「No」の場合、要求処理部101は、手順S281で読み出したセンサデータL18と、手順S288で読み出したセンサデータL14とL17とから構成される回答リストを含む、図9の検索結果を送信する(以上、手順S289)。
その後、情報記録装置100は、図11の処理を終了する。
【0058】
情報記録装置100から送信される検索結果をホスト130が受信すると、ホスト130のアプリケーション部132は、受信した検索結果を以下のように用いることができる。
まず、検索結果のうち、センサデータが記載されている行は、検索式に合致するセンサデータそのものを示しているので、アプリケーション部132は、そのままデータとして自らの処理(アプリケーション実行)に用いることができる。例えば、図8の検索結果F152の1行目のセンサデータL18や、図9の検索結果F153の1〜3行目のセンサデータL18、L14、L17は、図7の検索要求F151の検索式F271に合致するセンサデータそのものであり、アプリケーション部132は、これらをそのままデータとして用いることができる。
【0059】
また、チャンクデータファイル名が記載されている行は、検索式に合致するセンサデータを含む可能性があるファイルのファイル名を示している。アプリケーション部132は、自らと同じくホスト130に含まれる分散ファイルシステム131から、この近時データファイル名のファイルを読み出す。一般に分散ファイルシステムは、ネットワークで接続された遠隔のコンピュータ上の情報を読み取る機能を提供するシステムである。本実施形態では、アプリケーション部132が分散ファイルシステム131からのファイルの読み出しを行うと、ホスト130と遠隔の情報記録装置100上にある分散ファイルシステム111が、自身の保持するチャンクデータファイルを分散ファイルシステム131へと転送し、分散ファイルシステム131が、転送されたチャンクデータファイルをアプリケーション部132に読み取らせる。アプリケーション部132は、図11の手順S281と同様に、読み取ったチャンクデータファイル内を検索して、検索式F271に合致するデータを読み出し、読み出したデータを自らの処理に用いることができる。
あるいはアプリケーション部132が、テキストエディタやワープロ、あるいは、テキスト処理言語Perl、Ruby、Python等の、テキストファイルを取り扱う一般的なソフトウェアを用いて、分散ファイルシステム131を経由して読み出したチャンクデータファイルを直接表示するようにしてもよい。チャンクデータファイルの各センサデータは、テキスト形式で格納されているので、ユーザがデータを読み取り、編集等の処理を行うことができる。
【0060】
以上述べたように、本実施形態では、扱うデータが適宜ファイルとして集められているので、情報記録装置100やホスト130は、ファイルの形のままでデータを取り扱うことができ、全てのデータを個別ばらばらのデータとして処理しなくてよく、処理オーバーヘッドを小さくできる。具体的には、次の箇所のオーバーヘッドを小さくできる。
【0061】
まず、情報記録装置100は、相互に近似するセンサデータをチャンクデータファイルに纏めて保持するので、センサデータを検索する際には、検索式に適合するチャンクデータファイルを選択して検索範囲を絞り込んだうえで、個々のチャンクデータファイル内を検索すればよい。したがって、1つのRDB内に大量のデータを保持する従来の方法と比較すると、1回の検索の対象とするデータ数を大幅に減らすことができ、大量のデータの中から高速にデータを読み出すための大掛かりな索引情報は不要である。これにより、索引情報等を保持する記憶領域のオーバーヘッドを小さくできる。
【0062】
次に、検索式に合致する行の並びを得る検索処理のオーバーヘッドを小さくできる。上述のように、情報記録装置100は、センサデータの検索の際に、検索式に適合するチャンクデータファイルを選択して検索範囲を絞り込んだうえで、個々のチャンクデータファイル内を検索すればよい。これにより、照合するセンサデータの個数を比較的少なくでき、照合を行う負荷を軽減できる。
また、一括回答を行う場合は、情報記録装置100は、チャンクデータファイル名を回答すればよいので、検索結果回答のために個々のセンサデータを一時的に蓄える必要が無い。したがって、検索結果のセンサデータを一時的に蓄えるためのセンサデータ読み書きの負荷が生じない。
【0063】
また、一括回答を行う場合は、検索結果をネットワーク経由で転送するオーバーヘッドを小さくできる。すなわち、一括回答を行う場合、情報記録装置100は、ホスト130にチャンクデータファイルのファイル名を送信すればよく、個々のデータを送信する従来の方法よりも通信量を少なくでき、ネットワークの負荷を軽減できる。また、情報記録装置100は、ホスト130にセンサデータを送信する際に、チャンクデータファイルに含めて送信するので、分散ファイルシステム111および131を用いて送信できる。したがって、キャッシュによる転送負荷の低減など、分散ファイルシステム技術を用いてネットワーク負荷を軽減できる。
【0064】
さらに、アプリケーション部132が分散ファイルシステム131経由でチャンクデータファイルとして読み出すセンサデータは、テキストファイルとして密に格納されている。すなわち、図4のセンサデータL11で、長さの異なる文字列「センサID」と「1」とが、いずれも余白を含まずに「=」を挟んで結合されているように、センサデータ、ひいては、チャンクデータファイルは、データを固定長とするための余白を含んでいない。したがって、保持領域のオーバーヘッドが小さい。
さらに、一括回答がYesの場合は、ホスト130のアプリケーション部132は、検索結果のセンサデータをファイルにて一括して読み出すことができ、センサデータを一括処理できる。したがって、センサデータが個別ばらばらに入力される場合のように、計算リソースや記憶リソースを確保したままでセンサデータを待ち受ける必要がなく、また、センサデータを一括して処理するために入力されるセンサデータを一時的にメモリに蓄える必要も無く、センサデータを一時的に保持する負荷を極めて小さくできる。
【0065】
さらに、個々のデータは可読テキスト形式で格納されており、例えば図11の手順S281以降で得られた情報一次保持部103の保持する情報からの検索結果を回答する際、従来必要とされていたマーシャリングおよびアンマーシャリング処理を行わなくて済む。
ここでいう「マーシャリング」とは、データをネットワーク送出可能な形式に変換する処理であり、「アンマーシャリング」とは、検索結果を受け取ったアプリケーションが該データをネットワーク送出可能な形式から復元する処理をいう。マーシャリングおよびアンマーシャリングは、例えば分散システムにおいてデータを伝送するために広く用いられる技術である。データを個別にネットワーク送出可能な形式に変換する従来の情報記録装置では、センサデータなど多数のデータを送信する際の、マーシャリングおよびアンマーシャリングの負荷が無視できない負担となっていた。すなわち、従来の情報記録装置では、可読でないバイナリ形式でデータをRDBに蓄積することが一般的であり、検索式による検索の後、検索結果の個々のデータをマーシャリング処理してネットワーク送出可能な形式に変換して送信し、受信側では、受信したデータをアンマーシャリング処理してアプリケーションが使いやすい形式へと変換していたが、この一連の処理は処理オーバーヘッドが大きい。一方、処理オーバーヘッドを回避するためにこれら処理の一部を行わないようにすると、可読でないバイナリ形式でデータが格納されているためデータを扱いにくい(例えばアプリケーション設計の際の負荷が大きくなる)という問題が生じる。また、センサデータとして計測される多種多様なデータを扱うために、スキーマを定めず、例えばオブジェクト指向等の柔軟性の高い方法でデータを格納することが従来行われていたが、一般には柔軟性の高いデータ構造ほどマーシャリングおよびアンマーシャリングの負荷が大きくなる傾向にある。
これに対して、本実施形態では、個々のデータは可読テキスト形式で格納されており、マーシャリングおよびアンマーシャリングが不要なので、センサデータとして計測される多種多様なデータを、スキーマを定めず扱いつつ、データ伝送に伴う負荷を極めて小さくでき、また、データが扱いにくいという問題も生じない。
【0066】
さらに、一括回答を行う場合は、例えば図11の手順S283以降で得られた、チャンクデータファイル名を該検索結果に含めればよく、ここでも、従来必要とされていたマーシャリングおよびアンマーシャリング処理を行わなくて済む。したがって、データ伝送に伴う負荷を極めて小さくできる。
さらに、本実施形態では、チャンクデータファイルを、分散ファイルシステムを経由して遠隔のコンピュータに転送するので、分散ファイルシステム技術の持つキャッシュによる転送負荷の低減効果を期待できる。さらに、分散ファイルシステム技術により遠隔のコンピュータ上のファイル読み出しが容易になる利点を活用でき、例えばテキストエディタで直接ファイルを開くことができる等、データ利用の利便性が向上する。さらに、一部の分散ファイルシステム技術の持つ、データの複製を管理する等により耐故障性に優れるという特徴も享受し得る。
【0067】
さらに、チャンクデータファイルは、相互に近似性の高いセンサデータを含んで構成される。このため、アプリケーション部132が分散ファイルシステム131経由でチャンクデータファイルとしてデータを読み出す際、無駄なデータが含まれる確率が比較的小さく、ネットワークを経由して無駄なデータの転送を抑止できる。さらに、アプリケーション部132が、チャンクデータファイル内を検索して検索式F271に合致するセンサデータを読み出す際に、検索式F271に合致しないセンサデータ含まれる確率が比較的小さいので、無駄なデータを選り分ける負荷を低減できる。
【0068】
なお、本実施の形態においては、センサデータ情報の符号化は、「属性=値」の組の並び形式で表現される可読形式の1行のテキスト情報であるが、本発明の範囲はこれに限定されるものではなく、不可読形式を含む任意の情報符号化方式にも適用できる。また、例えばXMLやJSON仕様等を用いて表現した、複数行からなる可読のテキスト情報に基づく情報符号化方式にも適用できる。
なお、本実施の形態においては、チャンクデータファイルは、分散ファイルシステム111上に作成されるが、本発明の範囲はこれに限定されるものではなく、OSが一般に提供する通常のファイルシステムや、あるいは、RDBMSやXMLデータベースシステム等の情報記録システム上に作成することもできる。あるいは、分散ファイルシステムとしてOSに内蔵されている機能であるNFSやCIFS(SMB)等を用いてもよい。あるいは、ウェブ技術のHTTPおよびその拡張であるWebDAV等、あるいは、クラウドと称される技術のGFSやHadoop等、あるいは、キーバリューストアと呼ばれる技術のDynamoやmemcached等を用いてもよい。
【0069】
なお、本発明の装置は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通じて提供することも可能である。
例えば、情報記録装置100の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の保持装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0070】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【産業上の利用可能性】
【0071】
本発明は、情報記録装置、情報記録方法およびプログラムに用いて好適である。
【符号の説明】
【0072】
100 情報記録装置
101 要求処理部
102 情報登録部
103 情報一次保持部
104 情報選択部
105 近似性算出部
106 情報切り出し部
107 索引保持部
109 情報検索部
111、131 分散ファイルシステム
120 ネットワーク
130 ホスト
132 アプリケーション部
140−1〜140−3 センサ
【特許請求の範囲】
【請求項1】
属性名と属性値とを含む情報を保持する情報保持部と、
前記情報保持部が保持する前記情報のうち、前記属性名または前記属性値に関して予め定められた条件を満たす情報を選択する情報選択部と、
前記情報選択部が選択した前記情報を含む前記予め定められた条件毎のファイルを生成し、前記情報選択部が選択した前記情報を前記情報保持部から削除する情報切り出し部と、
を具備することを特徴とする情報記録装置。
【請求項2】
前記情報選択部は、前記情報保持部が保持する前記情報のうち、前記情報の前記情報記録装置への登録要求の受信時刻または情報発生時刻が予め定められた範囲内にある、あるいは、情報を生成するセンサの種別が同じである、あるいは、情報発生地点相互間の距離が予め定められた閾値以下である、あるいは、特定の属性について同じ値を持つ、あるいは、特定の属性について値の差が予め定められた閾値以下である、あるいは、同じデータ属性を予め定められた個数以上含む、のいずれかの条件、あるいは、これらの条件を組み合わせて得られる条件を満たす情報を選択することを特徴とする請求項1に記載の情報記録装置。
【請求項3】
前記情報切り出し部が生成した前記ファイルを保持する分散ファイルシステムをさらに具備することを特徴とする請求項1または請求項2に記載の情報記録装置。
【請求項4】
検索すべき情報の条件を示す検索要求信号を受信する要求通信部と、
情報検索部と、
をさらに具備し、
前記情報切り出し部は、前記生成したファイルのファイル名と前記予め定められた条件とを示す索引情報をファイル毎に生成し、
前記情報検索部は、前記検索すべき情報の条件を満たす情報を前記情報保持部から読み出し、前記索引情報が示す前記予め定められた条件が前記検索すべき情報の条件に矛盾しないファイルのファイル名を前記索引情報から読み出し、
前記要求通信部は、前記情報検索部が前記情報保持部から読み出した前記情報と、前記情報検索部が前記索引情報から読み出したファイル名と、を含む検索結果情報を送信する
ことを特徴とする請求項1から3のいずれかの項に記載の情報記録装置。
【請求項5】
属性名と属性値とを含む情報を保持する情報保持部を具備する情報記録装置の情報記録方法であって、
前記情報保持部が保持する前記情報のうち、前記属性名または前記属性値に関して予め定められた条件を満たす情報を選択する情報選択ステップと、
前記情報選択ステップにて選択した前記情報を含む前記予め定められた条件毎のファイルを生成し、前記情報選択ステップにて選択した前記情報を前記情報保持部から削除する情報切り出しステップと、
を具備することを特徴とする情報記録方法。
【請求項6】
前記情報選択ステップにて、前記情報保持部が保持する前記情報のうち、前記情報の前記情報記録装置への登録要求の受信時刻または情報発生時刻が予め定められた範囲内にある、あるいは、情報を生成するセンサの種別が同じである、あるいは、情報発生地点相互間の距離が予め定められた閾値以下である、あるいは、特定の属性について同じ値を持つ、あるいは、特定の属性について値の差が予め定められた閾値以下である、あるいは、同じデータ属性を予め定められた個数以上含む、のいずれかの条件、あるいは、これらの条件を組み合わせて得られる条件を満たす情報を選択することを特徴とする請求項5に記載の情報記録方法。
【請求項7】
前記情報記録装置は分散ファイルシステムをさらに具備し、
前記情報記録方法は、前記情報切り出し部が生成した前記ファイルを前記分散ファイルシステムが保持するファイル保持ステップをさらに具備する
ことを特徴とする請求項5または請求項6に記載の情報記録方法。
【請求項8】
前記情報切り出しステップにて生成した前記ファイルのファイル名と前記予め定められた条件とを示す索引情報をファイル毎に生成する索引情報生成ステップと、
検索すべき情報の条件を示す検索要求信号を受信する検索要求信号受信ステップと、
前記検索すべき情報の条件を満たす情報を前記情報保持部から読み出し、前記索引情報が示す前記予め定められた条件が前記検索すべき情報の条件に矛盾しないファイルのファイル名を前記索引情報から読み出す情報検索ステップと、
前記情報検索ステップにて前記情報保持部から読み出した前記情報と、前記情報検索ステップにて前記索引情報から読み出したファイル名と、を含む検索結果情報を送信する検索結果送信ステップと、
を具備することを特徴とする請求項5から7のいずれかの項に記載の情報記録方法。
【請求項9】
情報保持部を具備するコンピュータに、請求項5から8のいずれかの項に記載の情報記録方法を実行させるプログラム。
【請求項1】
属性名と属性値とを含む情報を保持する情報保持部と、
前記情報保持部が保持する前記情報のうち、前記属性名または前記属性値に関して予め定められた条件を満たす情報を選択する情報選択部と、
前記情報選択部が選択した前記情報を含む前記予め定められた条件毎のファイルを生成し、前記情報選択部が選択した前記情報を前記情報保持部から削除する情報切り出し部と、
を具備することを特徴とする情報記録装置。
【請求項2】
前記情報選択部は、前記情報保持部が保持する前記情報のうち、前記情報の前記情報記録装置への登録要求の受信時刻または情報発生時刻が予め定められた範囲内にある、あるいは、情報を生成するセンサの種別が同じである、あるいは、情報発生地点相互間の距離が予め定められた閾値以下である、あるいは、特定の属性について同じ値を持つ、あるいは、特定の属性について値の差が予め定められた閾値以下である、あるいは、同じデータ属性を予め定められた個数以上含む、のいずれかの条件、あるいは、これらの条件を組み合わせて得られる条件を満たす情報を選択することを特徴とする請求項1に記載の情報記録装置。
【請求項3】
前記情報切り出し部が生成した前記ファイルを保持する分散ファイルシステムをさらに具備することを特徴とする請求項1または請求項2に記載の情報記録装置。
【請求項4】
検索すべき情報の条件を示す検索要求信号を受信する要求通信部と、
情報検索部と、
をさらに具備し、
前記情報切り出し部は、前記生成したファイルのファイル名と前記予め定められた条件とを示す索引情報をファイル毎に生成し、
前記情報検索部は、前記検索すべき情報の条件を満たす情報を前記情報保持部から読み出し、前記索引情報が示す前記予め定められた条件が前記検索すべき情報の条件に矛盾しないファイルのファイル名を前記索引情報から読み出し、
前記要求通信部は、前記情報検索部が前記情報保持部から読み出した前記情報と、前記情報検索部が前記索引情報から読み出したファイル名と、を含む検索結果情報を送信する
ことを特徴とする請求項1から3のいずれかの項に記載の情報記録装置。
【請求項5】
属性名と属性値とを含む情報を保持する情報保持部を具備する情報記録装置の情報記録方法であって、
前記情報保持部が保持する前記情報のうち、前記属性名または前記属性値に関して予め定められた条件を満たす情報を選択する情報選択ステップと、
前記情報選択ステップにて選択した前記情報を含む前記予め定められた条件毎のファイルを生成し、前記情報選択ステップにて選択した前記情報を前記情報保持部から削除する情報切り出しステップと、
を具備することを特徴とする情報記録方法。
【請求項6】
前記情報選択ステップにて、前記情報保持部が保持する前記情報のうち、前記情報の前記情報記録装置への登録要求の受信時刻または情報発生時刻が予め定められた範囲内にある、あるいは、情報を生成するセンサの種別が同じである、あるいは、情報発生地点相互間の距離が予め定められた閾値以下である、あるいは、特定の属性について同じ値を持つ、あるいは、特定の属性について値の差が予め定められた閾値以下である、あるいは、同じデータ属性を予め定められた個数以上含む、のいずれかの条件、あるいは、これらの条件を組み合わせて得られる条件を満たす情報を選択することを特徴とする請求項5に記載の情報記録方法。
【請求項7】
前記情報記録装置は分散ファイルシステムをさらに具備し、
前記情報記録方法は、前記情報切り出し部が生成した前記ファイルを前記分散ファイルシステムが保持するファイル保持ステップをさらに具備する
ことを特徴とする請求項5または請求項6に記載の情報記録方法。
【請求項8】
前記情報切り出しステップにて生成した前記ファイルのファイル名と前記予め定められた条件とを示す索引情報をファイル毎に生成する索引情報生成ステップと、
検索すべき情報の条件を示す検索要求信号を受信する検索要求信号受信ステップと、
前記検索すべき情報の条件を満たす情報を前記情報保持部から読み出し、前記索引情報が示す前記予め定められた条件が前記検索すべき情報の条件に矛盾しないファイルのファイル名を前記索引情報から読み出す情報検索ステップと、
前記情報検索ステップにて前記情報保持部から読み出した前記情報と、前記情報検索ステップにて前記索引情報から読み出したファイル名と、を含む検索結果情報を送信する検索結果送信ステップと、
を具備することを特徴とする請求項5から7のいずれかの項に記載の情報記録方法。
【請求項9】
情報保持部を具備するコンピュータに、請求項5から8のいずれかの項に記載の情報記録方法を実行させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2011−170791(P2011−170791A)
【公開日】平成23年9月1日(2011.9.1)
【国際特許分類】
【出願番号】特願2010−36423(P2010−36423)
【出願日】平成22年2月22日(2010.2.22)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成23年9月1日(2011.9.1)
【国際特許分類】
【出願日】平成22年2月22日(2010.2.22)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]