(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下、添付図面を参照して本発明の実施形態について説明する。添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は本発明の原理に則った具体的な実施形態と実装例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
【0013】
本実施形態では、当業者が本発明を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本発明の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
【0014】
更に、本発明の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装しても良い。
【0015】
なお、以後の説明では「テーブル」形式によって本発明の各情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、DB、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「DB」、「キュー」等について単に「情報」や「データ」と呼ぶことがある。
【0016】
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
【0017】
以下では「機能」を主語(動作主体)として本発明の実施形態における各処理について説明を行うことがあるが、「機能」はプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。また、「機能」に対応する処理は、一部または全てが専用ハードウェアで実現してもよく、また、モジュール化されていても良い。
【0018】
<データ収集システムの構成>
図1は、本発明の実施形態によるデータ収集システムの概略構成を示す図である。データ収集システム100は、収集サーバ110と、当該収集サーバ110とネットワーク120を介して接続される複数の中間サーバ130と、収集サーバ110とネットワーク120を介して接続される、或いは中間サーバ130とネットワーク140を介して接続される、複数の宅内デバイス群150、170及び180と、を有している。
【0019】
収集サーバ110は、宅内デバイス群150、170及び180からの情報を収集し、収集した情報を基に、ユーザ160の要求に応答して或いは収集サーバ110の管理者に対してデータ可視化などのサービスを提供する。収集サーバ110の詳細な構成は
図2に示す。
【0020】
中間サーバ130は、収集サーバ110の負荷を少なくする目的で、宅内デバイス群150からの情報を、ネットワーク140を介して収集し、加工した上でネットワーク120を介して収集サーバ110に送信する機能を持つ。上記データ可視化のサービス(情報提供サービス)は、例えば、携帯電話(携帯デバイス)153や図示しないPC(パーソナルコンピュータ)に対してなされるものである。
【0021】
宅内デバイス群150は、ユーザ160の宅内にあるデバイス群である。宅内デバイス群150は、例えば、宅内の電力消費量情報を保有するスマートメータ151、複合センサ(防犯センサ等を含む)152、携帯電話153、ディスプレイ、PC等を含む。これらのデバイスは、直接ネットワーク140に接続されてもよいし、ゲートウェイ装置のようなものを介してネットワーク140に接続されてもよい。なお、複合センサ(防犯センサ等を含む)152は、ここでは、バッテリを内蔵しておりバッテリで駆動していると想定する。中間サーバは、参照番号170で示されるように、複数のユーザのデバイス群がネットワーク140を介して接続されるようにしても良い。また、中間サーバは、参照番号180で示されるように複数台存在するようにしても良い。本実施形態では、説明の簡略化のため、宅内デバイス群150からの情報収集の例で説明する。
【0022】
<収集サーバの構成>
図2は、収集サーバ110の概略構成を示す図である。収集サーバ110は、各機能を実行するCPU(単にプロセッサとも言う)200と、データベース240と、各機能に対応するプログラムを格納するメモリ(図示せず)と、を有している。
【0023】
CPU200は、メモリからプログラムを読み出して、ソフトウェアモジュール配信機能210と、データ受付・保存機能220と、データ可視化機能230と、を実現する。
【0024】
ソフトウェアモジュール配信機能210は、
図3で説明するソフトウェアモジュール管理フレームワークの上で管理されるソフトウェアモジュールを中間サーバ130に配信する機能である。
【0025】
データ受付・保存機能220は、中間サーバからのデータを受け付け、データベース240に保存する機能である。
【0026】
データ可視化機能230は、データベース240に保存されたデータをユーザ160に提示する機能である。
【0027】
これらの機能がどう使われるかは
図11及び12を参照して説明する。
【0028】
<中間サーバの構成>
図3は、本発明の実施形態による中間サーバ130の概略構成を示した図である。中間サーバ130は、各機能や各モジュールを実行・制御するCPU(プロセッサ)300と、ソフトウェアモジュール管理フレームワーク310と、ソフトウェアモジュール群320と、ソフトウェアモジュール構成データベース330と、を有している。
【0029】
ソフトウェアモジュール管理フレームワーク310は、
図4で説明するソフトウェアモジュールを管理するために、インストール・アンインストール機能311と、起動・停止機能312と、アップデート機能313と、を有している。
【0030】
インストール・アンインストール機能は、ソフトウェアモジュールをインストール・アンインストールする機能である。起動・停止機能312は、ソフトウェアモジュールの機能を停止したり、起動したりする機能である。アップデート機能313は、ソフトウェアモジュールのアップデート時に対象のソフトウェアモジュールを停止し、その後起動する機能である。なお、ここでインストールとは、ソフトウェアモジュールに含まれるファイル群をファイルシステムに展開するだけであり、インストールされたソフトウェアモジュールの機能自体は起動しない。したがって、既存のソフトウェアモジュールのバージョンアップ版をインストールする場合は、ファイルは展開されるが、動作中のソフトウェアモジュールは旧バージョンのもののままである。動作中のソフトウェアモジュールを更新するためには、更新版のインストール後、起動・停止機能312により、停止してから起動するか、更新機能313により、停止・起動指示を出す必要がある。以上のような機能を持つソフトウェアモジュール管理フレームワークの例としては、OSGiフレームワークがある。
【0031】
ソフトウェアモジュール管理フレームワーク310の管理対象として、ソフトウェアモジュール群320がある。ソフトウェアモジュール群320は、例えば、データ受付モジュール321と、リアルタイム処理モジュール322と、データフィルタモジュール323と、データ送信モジュール324と、を含んでいる。このような複数のソフトウェアモジュールが、ファイルシステム上に展開され、ソフトウェアモジュール構成データベース330にてバージョン番号・モジュール名・展開されているファイルパスが管理されている。
【0032】
データ受付モジュール321は、宅内デバイス群150から送信するデータを受け付ける機能を持つモジュールである。リアルタイム処理モジュール322は、データ受付モジュール321が受信したデータを基に、リアルタイムな対応が必要なものを処理するモジュールである。リアルタイム処理モジュール322の構成については
図5を参照して説明する。データフィルタモジュール323は、データ受付モジュール321が受信したデータを一時蓄積・加工する機能を持つモジュールである。データ受付モジュールの構成については
図6を参照して説明する。
【0033】
<ソフトウェアモジュールの構成>
図4は、ソフトウェアモジュール管理フレームワーク310上が管理する各ソフトウェアモジュールの構成を示す図である。各ソフトウェアモジュールは、バージョン情報410と、モジュール名420と、ソフトウェアモジュール本体430と、を有している。
【0034】
バージョン情報410は、ソフトウェアモジュールのバージョン番号である。モジュール名420は、ソフトウェアモジュールの名称である。ソフトウェアモジュール本体430には、ソフトウェアモジュールのプログラムロジックが格納されている。
【0035】
<リアルタイム処理モジュールの構成>
図5は、リアルタイム処理モジュール322の構成を示した図である。リアルタイム処理モジュールは、データマッチ機能510と、アクション機能520とを有している。
【0036】
データマッチ機能510は、入力データと予め定められたパターンを照合する機能である。アクション機能520は、予め定められたアクションに基づいた命令を実行する機能である。当該アクションには、例えば、収集データから異常が検知された場合に、異常を例えば携帯電話に通知することや、所定期間の電力使用量の合計が所定料を超えた場合にそのことを通知することが含まれる。これらの処理例は、
図9を参照して後述する。
【0037】
<データフィルタモジュールの構成>
図6は、データフィルタモジュール323の構成を示す図である。データフィルタモジュールは、データ一時蓄積機能610と、データ集計機能620と、を有している。
【0038】
データ一時蓄積機能610は、入力データを一時的に保存する機能である。データ集計機能620は、入力データを集計(総和、平均、不要データ破棄等)する機能である。これらの処理例については
図10を参照して後述する。
【0039】
<送信データ例>
図7は、宅内デバイス群150が中間サーバ130に送信するデータの例を示す図である。
データ751から755は、複合センサ(防犯センサ等を含む)152が送信するデータを示している。当該送信データは、例えば、機器ID710と、時刻情報720と、フラグ情報730と、バッテリ残量740と、を構成項目として有している。機器ID710は、機器を一意に識別・特定するための情報である。時刻720は、センサがデータを取得した時刻の情報である。フラグ730は、防犯センサが反応したか否かを示す識別情報である。フラグが1の場合、ガラスが割られた等、防犯上問題がある状況が検知されたことを意味する。バッテリ残量740は、センサの内蔵バッテリの残量を示す情報である。内蔵バッテリの残量は、バッテリ交換時期の推定などに活用することを想定している。
【0040】
データ791から795は、スマートメータ151が中間サーバ130に送信するデータ例を示している。機器ID760は、機器を一意に識別・特定するための情報である。時刻720は、スマートメータがデータを取得した時刻の情報である。今回は、1分おきにデータを取得するとする。電力使用量780は、1分間に宅内で消費した電力である。
【0041】
なお、データ751から795は、表のフォーマットになっているが、実際はバイナリ形式などにエンコードされて中間サーバに送信される。また、センサやスマートメータが直接中間サーバ130と通信する機能を持っていない場合は、ゲートウェイ装置にいったん接続し、ゲートウェイ装置が中間サーバ130と通信する実施形態もありえる。
【0042】
<データベースの内容>
図8は、データベース240に保存されるデータ例を示す図である。データ841は、複合センサ(防犯センサ等を含む)152からのデータを保存したものであり、所定時刻(2012/1/31 12:00:00)のデータ(バッテリ残量)を示している。なお、所定期間(2012/1/31 12:00:00〜12:04:00)のデータの平均値(バッテリ残量)を保存するようにしても良い。
【0043】
データ881は、スマートメータ151からのデータを保存したものであり、所定時刻(2012/1/31 12:00:00)のデータ(電力使用量)を示している。なお、所定期間(2012/1/31 12:00:00〜12:04:00)のデータ(電力使用量)の平均値を保存するようにしても良い。
【0044】
<リアルタイムモジュールの処理>
図9は、リアルタイム処理モジュール322による処理内容を説明するためのフローチャートである。以下、
図7のデータを受信した例を使って説明する。
(i)ステップ910
データ受付モジュール321は、宅内デバイス群からデータを受信する。今回の例では、データ受付モジュール321は、データ751及び791をまず受け取り、その1分後にデータ752及び792を受け取り、その1分後にさらにデータ753及び793を受け取り…のようにデータを受信する。データを受け取ると、即座に次のステップの処理が実行される。
(ii)ステップ920
データマッチ機能510は、受け取ったデータについて予めモジュール内に定められたマッチング処理を行う。今回は、フラグ730が「1」であるか否かのマッチングを行う。フラグが「1」に合致(マッチ)した場合、処理はステップ930に進み、合致しなければモジュールの処理は終了する。今回の例では、データ753を受け取った際に合致するものとする。
(iii)ステップ930
アクション機能520は、合致(マッチ)した内容に応じたアクションを行う。今回の例では、携帯電話153にメールを送信するアクションが実行される。
【0045】
<データフィルタモジュールの処理>
図10は、データフィルタモジュール323の処理内容を説明するためのフローチャートである。以下、
図7のデータを受信した例を使って説明する。
(i)ステップ1010
データ受付モジュール321は、宅内デバイス群からデータを受信する。今回の例では、データ751及び791をまず受け取り、その1分後にデータ752及び792を受け取り、さらにその1分後にデータ753及び793を受け取り…のようにデータを受信する。
(ii)ステップ1020
データ一時蓄積機能610は、受信データを定められた間隔だけ一時的に蓄積する。例えば、ここでは、5分間分のデータを蓄積するとする。つまり
図7のデータ全てが保存されることになる。
(iii)ステップ1030
データ集計機能620は、ステップ1020で蓄積したデータを集計する。今回の例では、フラグ730を省略、バッテリ残量740の平均を取り、電力使用量780の和を取る。結果、
図8のようなデータが生成される。
【0046】
なお、中間サーバ130が複数設置されている場合、それぞれの中間サーバ130が互いに通信し合い、他の中間サーバのデータの蓄積の程度や情報量等の情報を取得して、互いに収集サーバ110に対してデータを送信するタイミングを調整するようにしても良い。
【0047】
<データ集計全体処理>
図11は、データ収集全体の処理内容を説明するためのシーケンス図である。
(i)シーケンス1110
中間サーバ130が、宅内デバイス群150からデータを受信する。今回の例では、中間サーバ130は、データ751及び791をまず受け取り、その1分後にデータ752及び792を受け取り、さらにその1分後にデータ753及び793を受け取り…のようにデータを受信する。
(ii)シーケンス1120
リアルタイム処理モジュール322が、受け取ったデータを基に
図9で説明したような処理を行う。今回の例では、データ753を処理した際に、アクションとしてメールを携帯電話に送信する。
(iii)シーケンス1130
ユーザ160は、携帯電話153によって通知のメールを受け取り、それを見ることにより、防犯上の問題が発生したことを知ることができる。
(iv)シーケンス1140
データフィルタモジュール323は、受け取ったデータについて
図10で説明した処理を実行する。今回の例では、
図8のようなデータが生成され、生成されたデータが収集サーバ110に送信される。
(v)シーケンス1150
収集サーバ110は、受け取ったデータをデータベース240に保存する。ここでは、
図8のようなデータが保存される。
(vi)シーケンス1160
収集サーバ110は、データベース240のデータを可視化する。例えば、データを表にして出力したり、グラフ化したり、ユーザ160の要求に応じて当該情報を提供したり、収集サーバ110のディスプレイに表示する等して管理者に提示したりする。これにより、ユーザ160や収集サーバ110の管理者は、宅内の消費電力や防犯センサのバッテリ残量を知ることが出来る。
【0048】
<モジュール更新処理>
図12は、モジュール更新の処理内容を説明するためのシーケンス図である。
図9や
図10のリアルタイム処理モジュール322の処理、及びデータフィルタモジュール323の処理は一例であり、実際には、ユーザ160のニーズに合わせた処理を記述したモジュールを開発した上で、
図12のように、ソフトウェア配信機能210を使ってモジュールを入れ替えることで処理を変えることができる。
(i)シーケンス1210
収集サーバ110は、モジュール配信機能を用いて、リアルタイム処理モジュールやデータフィルタモジュール(それぞれ苦心されたモジュール)を中間サーバ130に配信する。
(ii)シーケンス1220
中間サーバ130は、受け取ったモジュールをインストール・アンインストール機能311を使って、中間サーバ130上のファイルシステムに展開する。
(iii)シーケンス1230
中間サーバ130は、アップデート機能312を用いて、展開されたソフトウェアモジュールを起動する。
【0049】
<まとめ>
本発明の実施形態では、宅内デバイス群(ゲートウェイ装置があっても良い)と収集サーバの間に中間サーバを設ける。中間サーバには、モジュール毎にリモートからソフトウェアをインストール・アンインストールできるソフトウェアモジュール管理フレームワークを設け、ソフトウェア管理フレームワーク上で動作するリアルタイム処理モジュールとデータフィルタモジュールを設ける。リアルタイム処理モジュールでは、デバイスから受信したデータを解析し、アクションが必要か否かを判定し、アクションが必要ならばデバイスにアクションを返す機能を持っている。アクションは中間サーバによって即座に送られるため、従来のように収集サーバからアクションを送信するよりもアクションが送信されるタイミングが早くなることが期待される。
【0050】
また、データフィルタモジュールは、受信したデータを一定期間一時保存し、一時保存したデータを集計、整形を行った上で、収集サーバに送信する機能を持っている。つまり、
図7のようなデータが直接収集サーバに送信される代わりに、
図8のようなデータが送信されるようになる。よって、収集サーバの負荷は軽減される。
【0051】
さらに、収集サーバはモジュール配信サーバとしても機能する。中間サーバ上のこれらのモジュールを配信、更新することで、リアルタイム処理モジュールやデータフィルタモジュールの処理をニーズに合わせて柔軟に変更できるようにする。このようにすることにより、収集サーバには、フィルタモジュールによりデータ量を削減されたデータのみが送信される。このため、収集サーバの負荷が軽減することが期待される。さらに、デバイスに対するアクションが収集サーバではなく、よりデバイスに近い中間サーバから発行されるため、アクションのレスポンスが早くなると期待される。
【0052】
本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0053】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【0054】
さらに、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【0055】
最後に、ここで述べたプロセス及び技術は本質的に如何なる特定の装置に関連することはなく、コンポーネントの如何なる相応しい組み合わせによってでも実装できることを理解する必要がある。更に、汎用目的の多様なタイプのデバイスがここで記述した教授に従って使用可能である。ここで述べた方法のステップを実行するのに、専用の装置を構築するのが有益であることが判るかもしれない。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。本発明は、具体例に関連して記述したが、これらは、すべての観点に於いて限定の為ではなく説明の為である。本分野にスキルのある者には、本発明を実施するのに相応しいハードウェア、ソフトウェア、及びファームウエアの多数の組み合わせがあることが解るであろう。例えば、記述したソフトウェアは、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0056】
さらに、上述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
【0057】
加えて、本技術分野の通常の知識を有する者には、本発明のその他の実装がここに開示された本発明の明細書及び実施形態の考察から明らかになる。記述された実施形態の多様な態様及び/又はコンポーネントは、データを管理する機能を有するコンピュータ化ストレージシステムに於いて、単独又は如何なる組み合わせでも使用することが出来る。明細書と具体例は典型的なものに過ぎず、本発明の範囲と精神は後続する請求範囲で示される。