(57)【要約】【課題】フィルタリング処理の負荷を低減すること。【解決手段】情報処理装置は、センサから送信されたイベントの実績データを参照して、フィルタリングに用いられるパスフィルタの関心領域にセンサ値が属するイベントを除外し、実績データからパスフィルタの関心領域にセンサ値が属するイベントが除外されたイベントの分布のクラスタ内のイベントの数に基づいてクラスタの形状に対応する関心領域を有するカットフィルタを生成する。【選択図】図１
2019016003.tif 000002
【特許請求の範囲】
【請求項１】
センサから送信されたイベントの実績データを参照して、フィルタリングに用いられるパスフィルタの関心領域にセンサ値が属するイベントを除外する除外部と、
前記実績データから前記パスフィルタの関心領域に前記センサ値が属するイベントが除外されたイベントの分布のクラスタ内のイベントの数に基づいて前記クラスタの形状に対応する関心領域を有するカットフィルタを生成する生成部と、
を有する情報処理装置。
【請求項２】
前記生成部は、前記イベントの数が上位から所定数に該当するクラスタを対象に、前記クラスタの形状に対応する関心領域を有するカットフィルタを生成する請求項１に記載の情報処理装置。
【請求項３】
前記生成部は、前記クラスタの形状を所定の形状を有するモデルに近似し、近似されたモデルの形状の関心領域を有するカットフィルタを生成する請求項１または２に記載の情報処理装置。
【請求項４】
前記カットフィルタ及び前記パスフィルタを用いて、前記センサが送信するイベントにフィルタリング処理を実行するフィルタリング処理部をさらに有する請求項１、２または３に記載の情報処理装置。
【請求項５】
前記フィルタリング処理部は、前記カットフィルタの関心領域外であるセンサ値のイベントを前記パスフィルタの関心領域にしたがってフィルタリングする請求項４に記載の情報処理装置。
【請求項６】
前記生成部により生成されたカットフィルタを前記センサもしくは前記センサを搭載する通信装置へ送信する請求項１、２または３に記載の情報処理装置。
【請求項７】
センサから出力されるセンサ値をイベントとして送信するイベント送信装置と、
前記イベント送信装置から送信されたイベントの実績データを参照して、フィルタリングに用いられるパスフィルタの関心領域にセンサ値が属するイベントを除外する除外部と、前記実績データから前記パスフィルタの関心領域に前記センサ値が属するイベントが除外されたイベントの分布のクラスタ内のイベントの数に基づいて前記クラスタの形状に対応する関心領域を有するカットフィルタを生成する生成部と、を有する情報処理装置と、
を有する情報処理システム。
【請求項８】
センサから送信されたイベントの実績データを参照して、フィルタリングに用いられるパスフィルタの関心領域にセンサ値が属するイベントを除外し、
前記実績データから前記パスフィルタの関心領域に前記センサ値が属するイベントが除外されたイベントの分布のクラスタ内のイベントの数に基づいて前記クラスタの形状に対応する関心領域を有するカットフィルタを生成する、
処理をコンピュータが実行する情報処理方法。
【請求項９】
センサから送信されたイベントの実績データを参照して、フィルタリングに用いられるパスフィルタの関心領域にセンサ値が属するイベントを除外し、
前記実績データから前記パスフィルタの関心領域に前記センサ値が属するイベントが除外されたイベントの分布のクラスタ内のイベントの数に基づいて前記クラスタの形状に対応する関心領域を有するカットフィルタを生成する、
処理をコンピュータに実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
ＩｏＴ（Internet  of  Things）デバイスから収集されるイベントをサーバ等に集約して処理するＩｏＴプラットフォームの提供が進んでいる。ＩｏＴプラットフォームでは、ＩｏＴデバイスから送信されたセンサデータを、そのセンサデータを希望するモジュールに対して転送するメッセージング基盤が利用される。このようなメッセージング基盤では、メッセージの中継時にフィルタリング処理が実行される場合がある。
【０００３】
例えば、データの発行−購読型、いわゆるＰｕｂ／Ｓｕｂ型のメッセージ基盤では、データの購読者（Subscriber）が関心を持つ領域がパスフィルタとして仲介者（Broker）により設定される。その上で、Brokerは、データの発行者（Publisher）から送信されるイベントにフィルタリング処理を実行して関心領域に属するイベントをSubscriberへ転送する。
【０００４】
このようなフィルタリング処理が実行される場合、Brokerに設定されるフィルタの数やPublisherによりイベントが発行される頻度が増加するのに伴ってフィルタリング処理にかかる負荷も増加する。これが一因となって、Brokerのプロセッサやメモリなどのハードウェアリソースが枯渇し、Brokerが処理するデータのスループットが低下する結果、Subscriberに対してイベントを迅速に転送できない場合がある。
【０００５】
このことから、Brokerにおけるフィルタリング処理の負荷を低減するために、パスフィルタを用いるフィルタリングの前に、複数のパスフィルタをクラスタリングすることにより生成された１次フィルタを用いてフィルタリングが実行される場合がある。この１次フィルタの生成時には、パスフィルタ間で重複または近接する関心領域がクラスタへ集約される。それ故、１次フィルタの関心領域のいずれにも属さないセンサ値のイベントにはパスフィルタを用いたフィルタリングを省略できる分、フィルタリングの回数を低減できる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１４１４６６号公報
【特許文献２】特開２００９−１６３７５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の技術では、依然として、フィルタリング処理の負荷を低減できない場合がある。
【０００８】
すなわち、上記のパスフィルタの関心領域は、Subscriberごとにコマンドを介して設定されるが、必ずしもパスフィルタ間で関心領域が重複したり、近接したりするとは限らない。例えば、パスフィルタの関心領域が分散する場合、パスフィルタの関心領域がクラスタリングされたクラスタの数、すなわち１次フィルタの数と、パスフィルタの数との間に差が生じにくい。このような状況の下、Publisherから送信されるイベントのセンサ値が一次フィルタの関心領域外に集中すると、パスフィルタの数と大差のない数の１次フィルタごとにフィルタリングが実行される。この場合、フィルタリングの実行回数は、パスフィルタごとにフィルタリングが実行される場合と変わらないので、Brokerのフィルタリング回数を低減することはできない。
【０００９】
なお、ここでは、Ｐｕｂ／Ｓｕｂ型のメッセージ基盤が利用されるbrokerのフィルタリング処理を例に挙げたが、メッセージ基盤が利用されないフィルタリング処理においても、上記の理由と同様の理由により、その計算処理にかかる負荷は低減できない場合がある。
【００１０】
１つの側面では、本発明は、フィルタリング処理の負荷を低減できる情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
一態様では、情報処理装置は、センサから取得した複数のイベントのうち、イベント受信装置が受信する条件に適合するイベントを判定するパスフィルタを生成するパスフィルタ生成部と、前記複数のイベントの取得実績に基づき、予め定められた領域ごとに取得した前記イベントの頻度を算出する頻度算出部と、前記パスフィルタに先立って前記条件に適合しないイベントを除外するカットフィルタを、算出された前記頻度に基づいて生成するカットフィルタ生成部と、を有する。
【発明の効果】
【００１２】
フィルタリング処理の負荷を低減できる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係るＩｏＴシステムに含まれる各装置の機能的構成の一例を示すブロック図である。
【図２】図２は、フィルタリング処理の一例を示す図である。
【図３Ａ】図３Ａは、フィルタリング処理の一例を示す図である。
【図３Ｂ】図３Ｂは、フィルタリング処理の一例を示す図である。
【図４】図４は、関心領域の一例を示す図である。
【図５】図５は、カットフィルタの一例を示す図である。
【図６】図６は、ヒストグラムの一例を示す図である。
【図７Ａ】図７Ａは、二次元のイベントの散布図の一例を示す図である。
【図７Ｂ】図７Ｂは、二次元のイベントの散布図の一例を示す図である。
【図７Ｃ】図７Ｃは、二次元のイベントの散布図の一例を示す図である。
【図７Ｄ】図７Ｄは、二次元のイベントの散布図の一例を示す図である。
【図８】図８は、実施例１に係るカットフィルタの生成処理の手順を示すフローチャートである。
【図９】図９は、実施例２に係るＩｏＴシステムに含まれる各装置の機能的構成の一例を示すブロック図である。
【図１０】図１０は、フィルタリング処理の一例を示す図である。
【図１１】図１１は、フィルタリング処理の一例を示す図である。
【図１２】図１２は、実施例１及び実施例２に係る情報処理プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して本願に係る情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムについて説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１５】
［システム構成］
図１は、実施例１に係るＩｏＴ（Internet  of  Things）システムに含まれる各装置の機能的構成の一例を示すブロック図である。図１に示すＩｏＴシステム１は、センサ３０からイベントを収集するＩｏＴサービスを提供するものである。このようなＩｏＴサービスの一環として、ＩｏＴシステム１は、センサ３０から収集されたイベントのセンサデータ、いわゆるビッグデータをＩｏＴプラットフォーム１０のバックエンドで各種のソリューションを実現するサービスやアプリケーション、ＡＩ（Artificial  Intelligence）、外部コンピュータなどに通知する。なお、ＩｏＴシステム１は、情報処理システムの一例である。
【００１６】
図１には、あくまで一例として、ＭＱＴＴ（Message  Queuing  Telemetry  Transport）などのＰｕｂ／Ｓｕｂ型のメッセージ基盤が利用される場合が例示されている。図１に示すように、ＩｏＴシステム１には、ＩｏＴプラットフォーム１０と、イベント送信装置４０と、イベント受信装置５０とが含まれる。なお、図１には、ＩｏＴプラットフォーム１０にイベント送信装置４０及びイベント受信装置５０が１つずつ収容される場合を例示したが、１つのＩｏＴプラットフォーム１０につき複数のイベント送信装置４０及び複数のイベント受信装置５０が収容されることとしてもかまわない。
【００１７】
ＩｏＴプラットフォーム１０は、上記のＩｏＴサービスを提供するコンピュータである。一実施形態として、ＩｏＴプラットフォーム１０は、上記のＩｏＴサービスに対応する機能を提供するクラウドとして実装することができる。この他、ＩｏＴプラットフォーム１０は、上記のＩｏＴサービスを提供するＷｅｂサーバとして実装されることとしてもかまわない。なお、ＩｏＴプラットフォーム１０は、情報処理装置の一例である。
【００１８】
図１に示すＰｕｂ／Ｓｕｂ型のメッセージングモデルの例で言えば、ＩｏＴプラットフォーム１０は、Brokerに対応する。例えば、ＩｏＴプラットフォーム１０は、イベント送信装置４０から送信されるイベントのＭＱＴＴメッセージを受け付けた場合、当該ＭＱＴＴメッセージで指定されたトピックにしたがってイベントをイベント受信装置５０へ転送する。このようにイベントをイベント受信装置５０へ転送する場合、ＩｏＴプラットフォーム１０は、Subscribeコマンドによりトピックの購読が設定済みであるイベント受信装置５０に対し、ＭＱＴＴメッセージを転送する。なお、ここでは、一例として、Ｐｕｂ／Ｓｕｂのメッセージ基盤が利用される場合を例示したが、必ずしもイベントの仲介を実行せずともかまわず、イベントをストレージに蓄積することとしてもかまわない。
【００１９】
イベント送信装置４０は、センサ３０により出力されるセンサ値のイベントをＩｏＴプラットフォーム１０に送信するデバイスである。例えば、イベント送信装置４０は、PublisherのＭＱＴＴクライアントが動作するＩｏＴデバイスに対応する。このようなＩｏＴデバイスの例として、スマートフォンや携帯電話機、ＰＨＳ（Personal  Handyphone  System）などを始め、スレート端末やタブレット端末などの携帯端末装置、指輪や腕輪などのガジェット、スマートグラスなどのウェアラブルデバイスなどが該当する。このようなＩｏＴデバイスには、任意のセンサ３０が内蔵または付設される。例えば、センサ３０は、温度センサや湿度センサ、加速度やジャイロなどのモーションセンサ、あるいは位置情報を測定するＧＰＳ（Global  Positioning  System）受信機などであってもかまわない。
【００２０】
イベント受信装置５０は、ＩｏＴプラットフォーム１０からイベントを受信する装置を指す。例えば、イベント受信装置５０は、SubscriberのＭＱＴＴクライアントが動作する環境を有し、イベント送信装置４０に割り当てられたトピックの購読が設定されたモジュールに対応する。このモジュールの例として、ＩｏＴプラットフォーム１０のバックエンドで各種のソリューションを実現するサービスやアプリケーション、ＡＩ、データセンタ外の任意のコンピュータなどが該当する。
【００２１】
このようなＩｏＴサービスの一環として、ＩｏＴプラットフォーム１０は、Subscriberによりセンサ値の関心領域が設定されたパスフィルタにしたがってセンサ３０から収集されるイベントにフィルタリング処理を実行する。
【００２２】
図２は、フィルタリング処理の一例を示す図である。図２には、センサ３０の一例として、温度センサにより出力される温度Ｔ（℃）のイベントがイベント送信装置４０によりパブリッシュされる例が示されている。さらに、図２には、イベント送信装置４０に割り当てられたトピックの購読がイベント受信装置５０−１〜５０−３により設定されている例が示されている。
【００２３】
図２に示すように、ＩｏＴプラットフォーム１０には、パスフィルタ１８−１、パスフィルタ１８−２及びパスフィルタ１８−３の３つのパスフィルタが設定されている。このうち、パスフィルタ１８−１には、イベント受信装置５０−１により５＜Ｔ＜１０という範囲が関心領域として登録されている。また、パスフィルタ１８−２には、イベント受信装置５０−２により１５＜Ｔ＜２５という範囲が関心領域として登録されている。さらに、パスフィルタ１８−３には、イベント受信装置５０−３により２０＜Ｔ＜３０という範囲が関心領域として登録されている。
【００２４】
これら３つのパスフィルタ１８−１〜１８−３が設定された状況の下、イベント送信装置４０からＩｏＴプラットフォーム１０へ温度の測定値のイベントがＭＱＴＴメッセージとして送信された場合、次のようなフィルタリング処理が実行される。
【００２５】
例えば、ＩｏＴプラットフォーム１０は、パスフィルタ１８−１を用いて、イベント送信装置４０から送信されたイベントをフィルタリングする。すなわち、ＩｏＴプラットフォーム１０は、温度の測定値がパスフィルタ１８−１に定義された関心領域「５＜Ｔ＜１０」に属するか否か、すなわち５℃よりも大きく、かつ１０℃よりも小さいか否かを判定する。この結果、温度の測定値が関心領域「５＜Ｔ＜１０」に属する場合、ＩｏＴプラットフォーム１０は、イベント受信装置５０−１にパブリッシュするイベントとして、当該イベントを抽出する。一方で、温度の測定値が関心領域「５＜Ｔ＜１０」に属さない場合、ＩｏＴプラットフォーム１０は、イベント受信装置５０−１にパブリッシュするイベントから、当該イベントを除外する。
【００２６】
また、ＩｏＴプラットフォーム１０は、パスフィルタ１８−２を用いて、イベント送信装置４０から送信されたイベントをフィルタリングする。すなわち、ＩｏＴプラットフォーム１０は、温度の測定値がパスフィルタ１８−２に定義された関心領域「１５＜Ｔ＜２５」に属するか否か、すなわち１５℃よりも大きく、かつ２５℃よりも小さいか否かを判定する。この結果、温度の測定値が関心領域「１５＜Ｔ＜２５」に属する場合、ＩｏＴプラットフォーム１０は、イベント受信装置５０−２にパブリッシュするイベントとして、当該イベントを抽出する。一方で、温度の測定値が関心領域「１５＜Ｔ＜２５」に属さない場合、ＩｏＴプラットフォーム１０は、イベント受信装置５０−２にパブリッシュするイベントから、当該イベントを除外する。
【００２７】
さらに、ＩｏＴプラットフォーム１０は、パスフィルタ１８−３を用いて、イベント送信装置４０から送信されたイベントをフィルタリングする。すなわち、ＩｏＴプラットフォーム１０は、温度の測定値がパスフィルタ１８−３に定義された関心領域「２０＜Ｔ＜３０」に属するか否か、すなわち２０℃よりも大きく、かつ３０℃よりも小さいか否かを判定する。この結果、温度の測定値が関心領域「２０＜Ｔ＜３０」に属する場合、ＩｏＴプラットフォーム１０は、イベント受信装置５０−３にパブリッシュするイベントとして、当該イベントを抽出する。一方で、温度の測定値が関心領域「２０＜Ｔ＜３０」に属さない場合、ＩｏＴプラットフォーム１０は、イベント受信装置５０−３にパブリッシュするイベントから、当該イベントを除外する。
【００２８】
このようにパスフィルタを用いてイベント送信装置４０から送信されるイベントのフィルタリング処理を行う場合、パスフィルタの数が多いほどフィルタリングが実行される回数も多くなる。例えば、Brokerに設定されたフィルタの数が１０個、Publisherが毎秒イベントを送信する場合、１分間で合計６００回のフィルタリングが実行されることになる。これが一因となって、Brokerのプロセッサやメモリなどのハードウェアリソースが枯渇し、Brokerが処理するデータのスループットが低下する結果、Subscriberに対してイベントを迅速に転送できない場合がある。
【００２９】
このことから、フィルタリング処理の負荷を低減するために、パスフィルタを用いるフィルタリングの前に、パスフィルタをクラスタリングすることにより生成された１次フィルタを用いてフィルタリングが実行される場合がある。
【００３０】
ここで、図３Ａ及び図３Ｂを参照して、パスフィルタを用いてフィルタリングが実行される場合と、パスフィルタの前段で１次フィルタを用いてフィルタリングが実行される場合とを対比する。
【００３１】
図３Ａ及び図３Ｂは、フィルタリング処理の一例を示す図である。図３Ａ及び図３Ｂに示すように、イベント送信装置４０に割り当てられたトピックを購読するイベント受信装置５０−１〜５０−ｎごとにセンサ値の関心領域が登録されたパスフィルタ１８−１〜１８−ｎがＩｏＴプラットフォーム１０に設定されている。さらに、図３Ａ及び図３Ｂには、ＩｏＴプラットフォーム１０のブロック内で温度の高低を示す評価軸が左右方向に示されている。この温度の評価軸は、一例として、左に位置する温度が低く右に位置するほど温度が高いことを意味する。さらに、図３Ａ及び図３Ｂに示す温度の評価軸上には、パスフィルタ１８−１〜１８−ｎごとに関心領域として登録された数値範囲に対応するブロックが模式的にプロットされている。なお、以下では、パスフィルタ１８−１〜１８−ｎを個別に識別せずに総称する場合に「パスフィルタ１８」と記載する。さらに、１次フィルタ１７−１〜１７−３を個別に識別せずに総称する場合に「１次フィルタ１７」と記載する。
【００３２】
図３Ａには、パスフィルタ１８−１〜１８−ｎを用いてフィルタリングが実行される例が示されている。この場合、図３Ａに示すように、イベント送信装置４０から送信されるイベントｅのセンサ値がどのような値であろうとも、パスフィルタ１８−１〜１８−ｎごとにフィルタリングが実行される。この結果、１つのイベントにつきｎ回のフィルタリングが実行されることがわかる。
【００３３】
一方、図３Ｂには、パスフィルタ１８−１〜１８−ｎの前段で１次フィルタ１７−１〜１７−３を用いてフィルタリングが実行される場合が示されている。図３Ｂに示すように、パスフィルタ１８−１〜１８−ｎの間で重複または近接する関心領域がクラスタリングにより１次フィルタ１７−１〜１７−３の３つにまで集約されている。ここで、イベント送信装置４０から送信されるイベントｅのセンサ値が１次フィルタ１７−１〜１７−３のいずれの関心領域にも属さない場合に着目する。この場合、１次フィルタ１７−１〜１７−３ごとに３回のフィルタリングが実行された段階で、イベントｅのセンサ値がパスフィルタ１８−１〜１８−ｎのいずれの関心領域にも属さないことを識別できる。それ故、パスフィルタ１８−１〜１８−ｎを用いたフィルタリングを省略できる結果、Brokerのフィルタリング回数を低減できる。
【００３４】
しかしながら、１次フィルタを用いてフィルタリングを実行するだけでは、必ずしもBrokerであるＩｏＴプラットフォーム１０により実行されるフィルタリングの回数を低減できるとは限らない。
【００３５】
図４は、関心領域の一例を示す図である。図４には、左右方向に温度の評価軸が示されており、一例として、左に位置する温度が低く右に位置するほど温度が高いことを意味する。さらに、図４に示す温度の評価軸上には、パスフィルタ１８−１〜１８−ｎごとに関心領域として登録された数値範囲に対応するブロックが細線で模式化されると共に、１次フィルタ１７−１〜１７−ｍごとに関心領域として登録された数値範囲に対応するブロックが太線で模式化されている。
【００３６】
背景技術の項でも説明した通り、パスフィルタの関心領域は、同一のトピックを購読するSubscriberごとにSubscribeコマンドを介して設定されるが、必ずしもパスフィルタ間で関心領域が重複したり、近接したりするとは限らない。例えば、パスフィルタの関心領域が分散する場合、パスフィルタの関心領域がクラスタリングされたクラスタの数、すなわち１次フィルタの数と、パスフィルタの数との間に差が生じにくい。
【００３７】
図４に示す例で言えば、パスフィルタ１８−１〜１８−ｎの間で重複または近接する関心領域がクラスタリングされるが、１次フィルタ１７−１〜１７−ｍのｍ個のクラスタにまでしか集約できない。このようにパスフィルタの関心領域が分散する場合、パスフィルタの関心領域の集約効果は低く、パスフィルタおよび１次フィルタの間で数の差が生じにくい。このような状況の下、一次フィルタ１７−１〜１７−ｍの関心領域外である領域Ｒ１に、イベント送信装置４０からＩｏＴプラットフォーム１０へパブリッシュされるイベントｅのセンサ値が集中すると、パスフィルタ１８−１〜１８−ｎのｎ個と大差のない１次フィルタ１７−１〜１７−ｍのｍ個ごとにフィルタリングが実行される。この場合、フィルタリングの実行回数は、パスフィルタごとにフィルタリングが実行される場合と変わらないので、Brokerにおけるフィルタリング回数を低減することはできない。
【００３８】
そこで、本実施例に係るＩｏＴシステム１では、パスフィルタの関心領域外の範囲でイベントが集中して分布する領域にセンサ値が属するイベントを除去するカットフィルタをパスフィルタの前段でフィルタリングに使用させる。
【００３９】
図５は、カットフィルタの一例を示す図である。図５にも、左右方向に温度の評価軸が示されており、一例として、左に位置する温度が低く右に位置するほど温度が高いことを意味する。また、図５に示す温度の評価軸上には、パスフィルタ１８−１〜１８−ｎごとに関心領域として登録された数値範囲に対応するブロックが細線で模式化されると共に、１次フィルタ１７−１〜１７−ｍごとに関心領域として登録された数値範囲に対応するブロックが太線で模式化されている。さらに、図５には、上記の温度の評価軸を横軸に有し、温度の階級ごとに当該階級の温度がセンサ値として計測されたイベントが発生する頻度を縦軸に有するヒストグラム６０が示されている。
【００４０】
図５に示すヒストグラム６０では、パスフィルタ１８−１〜１８−ｎの関心領域外、あるいは一次フィルタ１７−１〜１７−ｍの関心領域外である領域に、イベント送信装置４０からＩｏＴプラットフォーム１０へパブリッシュされるイベントｅのセンサ値が集中することがわかる。このように、パスフィルタ１８−１〜１８−ｎの関心領域外の範囲でイベントｅの発生頻度が集中して分布する領域にセンサ値が属するイベントｅを除外するカットフィルタ１６が生成される。
【００４１】
このようなカットフィルタ１６に用いるフィルタリングをパスフィルタ１８−１〜１８−ｎ及び一次フィルタ１７−１〜１７−ｍを用いるフィルタリングに先立って実行する。これにより、パスフィルタ１８−１〜１８−ｎの関心領域外の範囲にセンサ値が属するイベントｅが集中する場合でも、カットフィルタ１６を用いたフィルタリングを１度実行するだけでパスフィルタ１８−１〜１８−ｎ及び一次フィルタ１７−１〜１７−ｍのフィルタアウトを識別できる。
【００４２】
したがって、本実施例に係るＩｏＴシステム１によれば、フィルタリング処理の負荷を低減できる。
【００４３】
［ＩｏＴプラットフォーム１０の構成］
続いて、本実施例に係るＩｏＴプラットフォーム１０の機能的構成について説明する。図１に示すように、ＩｏＴプラットフォーム１０は、フィルタ記憶部１１と、実績記憶部１２と、登録受付部１３と、１次フィルタ生成部１４と、カットフィルタ生成部１５と、フィルタリング処理部１６とを有する。なお、ＩｏＴプラットフォーム１０は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば入力部や出力部などを有することとしてもかまわない。
【００４４】
図１に示す登録受付部１３、１次フィルタ生成部１４、カットフィルタ生成部１５及びフィルタリング処理部１６などの機能部は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などのハードウェアプロセッサにより仮想的に実現される。すなわち、プロセッサがＲＡＭ（Random  Access  Memory）等のメモリ上に上記のＩｏＴサービスを実現する情報処理プログラムをプロセスとして展開することにより、上記の機能部が仮想的に実現される。ここでは、プロセッサの一例として、ＣＰＵやＭＰＵを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによって実現されることとしてもかまわない。
【００４５】
また、図１に示すフィルタ記憶部１１及び実績記憶部１２などの機能部には、ＨＤＤ（Hard  Disk  Drive）、光ディスクやＳＳＤ（Solid  State  Drive）などの記憶装置を採用できる。なお、記憶装置は、必ずしも補助記憶装置でなくともよく、各種の半導体メモリ素子、例えばＲＡＭ、ＥＰＰＲＯＭやフラッシュメモリなども採用できる。
【００４６】
フィルタ記憶部１１には、各種のフィルタが記憶される。例えば、フィルタ記憶部１１には、イベント送信装置４０に割り当てられたトピックごとに、イベント受信装置５０により登録されるパスフィルタの他、１次フィルタ生成部１４により生成される１次フィルタやカットフィルタ生成部１５により生成されるカットフィルタなどが関連付けて記憶される。
【００４７】
実績記憶部１２は、イベントが発生する頻度の実績が記憶される。例えば、実績記憶部１２には、イベント送信装置４０から送信されるイベントのＭＱＴＴメッセージを受け付ける度に、ＭＱＴＴメッセージで指定されたトピックに関連付けて当該イベントのコンテンツ、例えばセンサ値等が後述のフィルタリング処理部１６により登録される。
【００４８】
登録受付部１３は、パスフィルタの登録を受け付ける処理部である。一実施形態として、登録受付部１３は、イベント受信装置５０からパスフィルタの登録要求を受け付ける。この登録要求には、一例として、イベント受信装置５０が購読中であるトピックのうちパスフィルタの適用対象とするトピックおよびパスフィルタなどが含まれる。そして、登録受付部１３は、当該登録要求にしたがってトピックに関連付けてパスフィルタをフィルタ記憶部１１へ登録する。なお、ここでは、一例として、パスフィルタの登録について説明したが、パスフィルタの関心領域を変更したり、フィルタ記憶部１１に登録中のパスフィルタを削除したりすることもできる。
【００４９】
１次フィルタ生成部１４は、１次フィルタを生成する処理部である。なお、ここでは、あくまで一例として、BrokerであるＩｏＴプラットフォーム１０で１次フィルタを用いてフィルタリングが実行される例を説明するが、必ずしも１次フィルタの生成および１次フィルタを用いるフィルタリングが実行されずともかまわない。
【００５０】
一実施形態として、１次フィルタ生成部１４は、フィルタ記憶部１１に新規のパスフィルタが登録されたり、あるいは登録済みのパスフィルタの関心領域の設定が変更されたりする場合、パスフィルタの新規登録や関心領域の設定変更が行われたトピックに関する１次フィルタの生成を開始する。例えば、１次フィルタ生成部１４は、フィルタ記憶部１１に記憶されたパスフィルタのうち、パスフィルタの新規登録や関心領域の設定変更が行われたトピックに関するパスフィルタを読み出す。そして、１次フィルタ生成部１４は、フィルタ記憶部１１から読み出されたパスフィルタをクラスタリングする。これにより、パスフィルタ間で重複または近接する関心領域がクラスタへ集約される。その上で、１次フィルタ生成部１４は、クラスタの形状に対応する関心領域を持つ１次フィルタをトピックに関連付けて登録する。なお、ここでは、パスフィルタの新規登録や関心領域の設定変更が行われた場合に１次フィルタが更新される場合を例示したが、更新の前後で各クラスタの形状に大差がない場合、必ずしも更新を実行せずともかまわない。
【００５１】
カットフィルタ生成部１５は、カットフィルタを生成する処理部である。ここで、カットフィルタの生成を開始するタイミングには、一例として、新規のカットフィルタを生成する局面と、カットフィルタを更新する局面とが含まれる。
【００５２】
例えば、前者の局面では、所定期間、例えば１週間にわたってイベント送信装置４０から送信されるイベントが実績記憶部１２に蓄積された場合、所定の数のイベントが実績記憶部１２に蓄積された場合などに、新規のカットフィルタの生成を開始することができる。この他、実績記憶部１２に記憶されたイベントをクラスタリングすることにより得られるクラスタのうち、包含するイベントの数が最多であるクラスタにおけるイベントの数が規定値に達することを条件に、新規のカットフィルタの生成を開始することもできる。
【００５３】
また、後者の局面では、新たにトピックの購読を行うイベント受信装置５０からパスフィルタの登録を受け付けた場合の他、センサ３０が出力するセンサ値の分布に大きな変化が生じる場合などに、カットフィルタの更新を実施することができる。例えば、分布の変化の検出方法の一例として、２つの分布におけるクラスタの形状の差分を比較する方法が挙げられる。例えば、実績記憶部１２に蓄積されたイベントのうちフィルタリング処理に適用中のカットフィルタの生成または更新に用いられたイベントの分布、および、フィルタリング処理に適用中のカットフィルタに更新されてから実績記憶部１２に蓄積されたイベントの分布ごとにクラスタリングを実行する。その上で、包含するイベントの数が最多であるクラスタ間で形状の差分が規定値以上である場合に、カットフィルタの更新を実施することができる。このような比較を行う場合、一例として、２つの分布の間におけるイベントの総数の差を同一または所定値以内に収めて比較が行われる。
【００５４】
図１に示すように、カットフィルタ生成部１５は、除去部１５ａと、クラスタリング部１５ｂと、生成部１５ｃとを有する。
【００５５】
除去部１５ａは、実績記憶部１２に記憶されたイベントの実績のうち、フィルタリングに用いられるパスフィルタの関心領域にセンサ値が属するイベントを除外する処理部である。
【００５６】
一実施形態として、フィルタリングが実施されるイベントのセンサ値の次元がｎ（自然数）である場合を例に挙げる。まず、除去部１５ａは、実績記憶部１２に記憶されたイベントを読み出す。例えば、新規のカットフィルタを生成する場合、除去部１５ａは、所定期間にわたって実績記憶部１２に蓄積されたイベントを読み出すこともできれば、所定数に達したイベントを実績記憶部１２から読み出すこともできる。また、カットフィルタの更新が行われる場合、除去部１５ａは、フィルタリング処理に適用中のカットフィルタに更新されてから実績記憶部１２に蓄積されたイベントを読み出す。このようにイベントが読み出された後、除去部１５ａは、ｎ次元空間上に分布するイベントのうち、カットフィルタの生成対象とするトピックに関連付けてフィルタ記憶部１１に登録されたパスフィルタの関心領域に属するイベントをトリム（除去）する。なお、ここでは、パスフィルタの関心領域に属するイベントを除去する場合を例示したが、パスフィルタの代わりに１次フィルタの関心領域に属するイベントを除去することとしてもかまわない。
【００５７】
クラスタリング部１５ｂは、除去部１５ａにより除去されずに残ったイベントの分布をクラスタリングする処理部である。
【００５８】
一実施形態として、クラスタリング部１５ｂは、実績記憶部１２から読み出されたイベントからパスフィルタの関心領域に属するイベントが除去部１５ａにより除去されたイベントの分布をｎ次元空間上でクラスタリングする。ここで実行されるクラスタリングには、一例として、Ｋ−Ｍｅａｎｓ法などの任意の手法を適用することができる。その上で、クラスタリング１５ｂは、クラスタリングにより得られたクラスタごとに、当該クラスタが内包するイベントの数をカウントする。このようにカウントされたスコアがクラスタスコアとして用いられる。
【００５９】
生成部１５ｃは、クラスタリングにより得られたクラスタに基づいてカットフィルタを生成する処理部である。
【００６０】
一実施形態として、生成部１５ｃは、クラスタリング部１５ｂによるクラスタリングで得られたクラスタのうち、クラスタスコアが所定の条件を満たすクラスタを抽出する。例えば、生成部１５ｃは、クラスタスコアが高い順から上位所定数のクラスタを抽出したり、クラスタスコアが所定の閾値以上であるクラスタを抽出したりすることができる。そして、生成部１５ｃは、上記の条件にしたがって抽出されたクラスタごとに、当該クラスタの形状を所定のモデルに近似する。その上で、生成部１５ｃは、当該モデルの形状に対応する関心領域を有するカットフィルタをトピックに関連付けてフィルタ記憶部１１へ登録する。なお、ここでは、あくまで一例として、クラスタの形状をモデルに近似する場合を例示したが、クラスタの形状そのものをカットフィルタの関心領域とすることができるのは言うまでもない。
【００６１】
フィルタリング処理部１９は、フィルタ記憶部１１に記憶されたフィルタを用いて、フィルタリング処理を実行する処理部である。
【００６２】
一実施形態として、フィルタリング処理部１９は、イベント送信装置４０から送信されるイベントのＭＱＴＴメッセージを受け付ける度に、カットフィルタ、１次フィルタ、パスフィルタの順の優先度でフィルタリング処理を実行する。なお、フィルタ記憶部１１に登録がないフィルタのフィルタリング処理はスキップされる。
【００６３】
より詳細には、フィルタリング処理部１９は、イベント送信装置４０からイベントを受け付ける度に、次のような処理を実行する。すなわち、イベントのＭＱＴＴメッセージで指定されたトピックに関連付けてカットフィルタがフィルタ記憶部１１に登録されている場合、フィルタリング処理部１９は、カットフィルタごとに当該カットフィルタの関心領域に当該イベントのセンサ値が属するか否かを判定することにより、カットフィルタを用いたフィルタリングを実行する。ここで、イベントのセンサ値がいずれかのカットフィルタの関心領域に属する場合、パスフィルタ１８及び一次フィルタ１７のフィルタアウトを識別できる。この場合、Subscriberであるイベント受信装置５０へのイベントの転送は実行されない。
【００６４】
一方、イベントのセンサ値がいずれのカットフィルタの関心領域にも属さない場合、フィルタリング処理部１９は、１次フィルタの登録がフィルタ記憶部１１に存在するか否かを判定する。このとき、１次フィルタの登録がある場合、フィルタリング処理部１９は、１次フィルタごとに当該１次フィルタの関心領域に当該イベントのセンサ値が属するか否かを判定することにより、１次フィルタを用いたフィルタリングを実行する。なお、１次フィルタの登録がない場合、１次フィルタを用いたフィルタリングはスキップされてパスフィルタを用いたフィルタリングが実行される。
【００６５】
このとき、イベントのセンサ値がいずれかの１次フィルタの関心領域に属する場合、当該１次フィルタのクラスタに含まれるパスフィルタ以外のパスフィルタのフィルタアウトを識別できる。この場合、フィルタリング処理部１９は、当該１次フィルタのクラスタに含まれるパスフィルタごとに当該パスフィルタの関心領域に当該イベントのセンサ値が属するか否かを判定することにより、パスフィルタを用いたフィルタリングを実行する。その後、フィルタリング処理部１９は、パスフィルタの関心領域にセンサ値が属するイベントを当該パスフィルタの登録を行ったイベント受信装置５０へ配信する。
【００６６】
また、イベントのセンサ値がいずれの１次フィルタの関心領域にも属さない場合、フィルタリング処理部１９は、１次フィルタのクラスタに含まれないパスフィルタごとに当該パスフィルタの関心領域に当該イベントのセンサ値が属するか否かを判定することにより、パスフィルタを用いたフィルタリングを実行する。その後、フィルタリング処理部１９は、パスフィルタの関心領域にセンサ値が属するイベントを当該パスフィルタの登録を行ったイベント受信装置５０へ配信する。
【００６７】
［一次元のイベントのカットフィルタ］
図６は、ヒストグラムの一例を示す図である。図６の（Ａ）に示すように、除去部１５ａは、所定の期間にわたって実績記憶部１２に蓄積されたイベントごとに当該イベントのセンサ値、本例では温度の測定値が属する階級の度数をカウントすることによりヒストグラムを生成する。ここで、図６の（Ａ）に示すグラフの縦軸は、度数を指し、横軸は、センサ値の階級を指す。さらに、図６の（Ａ）には、グラフの横軸上にパスフィルタ１８−１〜１８−７ごとに関心領域として登録された数値範囲に対応するブロックが模式化されており、パスフィルタ１８間で関心領域が重複する部分がハッチングにより示されている。
【００６８】
このように生成されたヒストグラムから、除去部１５ａは、パスフィルタ１８−１〜１８−７の関心領域、あるいはパスフィルタ１８のクラスタに対応する関心領域と重複する階級に階級値を持つイベントをトリムする。この結果、図６の（Ａ）に示すヒストグラムは、図６の（Ｂ）に示す通りに加工されることになる。
【００６９】
続いて、クラスタリング部１５ｂは、図６の（Ｂ）に示すヒストグラムの断片をクラスタと識別する。そして、生成部１５ｃは、クラスタごとに当該クラスタの面積を算出する。その上で、生成部１５ｃは、クラスタのうち面積が上位所定数となるクラスタを選択する。ここで、一例として、面積のランキングが上位２位までのクラスタを選択する場合を例示する。この場合、図６の（Ｃ）に示すように、クラスタＣ１およびクラスタＣ２が選択される。続いて、生成部１５ｃは、クラスタＣ１に含まれる階級の定義域Ｒ２を関心領域に持つカットフィルタ１６−１と、クラスタＣ２に含まれる階級の定義域Ｒ３を関心領域に持つカットフィルタ１６−２とを生成する。このように生成されたカットフィルタ１６がフィルタ記憶部１１に登録される。
【００７０】
［二次元のカットフィルタ生成処理］
図７Ａ〜図７Ｄは、二次元のイベントの散布図の一例を示す図である。図７Ａ〜図７Ｄに示す散布図の縦軸は、イベントｅに含まれる２つのセンサ値のうち一方のセンサ値に対応する物理量を指し、横軸は、もう一方のセンサ値に対応する物理量を指す。これらの物理量は、温度と湿度のように異なる物理量であってもよいし、多軸の加速度センサの加速度のように同種の物理量であってもかまわない。
【００７１】
まず、除去部１５ａは、所定の期間にわたって実績記憶部１２に蓄積されたイベントごとに当該イベントのセンサ値を２次元空間上にプロットすることにより、図７Ａに示す散布図を生成する。この図７Ａには、説明の便宜上、パスフィルタ１８−１〜１８−ｎの関心領域の境界が実線により示されている。そして、除去部１５ａは、２次元空間上にプロットされたイベントのうちパスフィルタ１８−１〜１８−ｎの関心領域に包含されるイベントをトリムする。この結果、図７Ａに示す散布図は、図７Ｂに示す散布図となる。
【００７２】
続いて、クラスタリング部１５ｂは、図７Ｂに示す散布図のイベントの分布をＫ−ｍｅａｎｓ法などを適用することによりクラスタリングする。その上で、生成部１５ｃは、クラスタリングにより得られた各クラスタの凸包を検出する。この結果、図７Ｃに示すクラスタの凸包ｃ１〜ｃ５が検出されることになる。その後、生成部１５ｃは、クラスタごとに当該クラスタの凸包を当該凸包に内接する楕円、例えば最大内接楕円を最小二乗法等を用いて算出する。この結果、図７Ｄに示すように、凸包の最大内接楕円ｓ１〜ｓ５が算出されることになる。
【００７３】
その上で、生成部１５ｃは、最大内接楕円ｓ１〜ｓ５のうち楕円が包含するイベントのプロット数が上位所定数となるクラスタを選択する。ここで、一例として、プロット数のランキングが上位２位までのクラスタを選択する場合を例示する。この場合、図７Ｄに示すように、凸包ｃ１の最大内接楕円ｓ１および凸包ｃ２の最大内接楕円ｓ２が選択される。続いて、生成部１５ｃは、最大内接楕円ｓ１を関心領域に持つカットフィルタ１６−１と、最大内接楕円ｓ２を関心領域に持つカットフィルタ１６−２とを生成する。このように生成されたカットフィルタ１６がフィルタ記憶部１１に登録される。
【００７４】
ここで、クラスタの凸包を最大内接楕円に近似することとしたのは、一側面として、カットフィルタの関心領域の内外判定を実行するには凸包よりも楕円の方が処理量および処理速度の面で有利であるからである。当然のことながら、凸包をカットフィルタの関心領域とすることができるのは言うまでもない。
【００７５】
［カットフィルタの生成処理］
図８は、実施例１に係るカットフィルタの生成処理の手順を示すフローチャートである。このカットフィルタの生成処理は、一例として、上述の通り、新規のカットフィルタを生成する条件、あるいはカットフィルタを更新する条件が満たされた場合に開始される。図８には、あくまで一例として、ＩｏＴプラットフォーム１０が二次元のイベントｅをフィルタリングする場合のカットフィルタの生成処理の手順が示されている。
【００７６】
図８に示すように、除去部１５ａは、実績記憶部１２から読み出されたイベントの散布図からパスフィルタ１８の関心領域に包含されるイベントを除去する（ステップＳ１０１）。
【００７７】
続いて、クラスタリング部１５ｂは、イベントの散布図からステップＳ１０１でパスフィルタの関心領域に包含されるイベントが除去されたイベントの分布をＫ−ｍｅａｎｓ法などを適用することによりクラスタリングする（ステップＳ１０２）。
【００７８】
その上で、生成部１５ｃは、ステップＳ１０２で得られた各クラスタの凸包を検出する（ステップＳ１０３）。その後、生成部１５ｃは、クラスタごとに当該クラスタの凸包を当該凸包に近似する楕円、例えば最大内接楕円を最小二乗法等を用いて算出する（ステップＳ１０４）。
【００７９】
そして、生成部１５ｃは、最大内接楕円ｓ１〜ｓ５のうち楕円が包含するイベントのプロット数が上位所定数となる最大内接楕円を選択する（ステップＳ１０５）。続いて、生成部１５ｃは、ステップＳ１０５で選択された最大内接楕円ごとに当該最大内接楕円を関心領域に持つカットフィルタ１６を生成する（ステップＳ１０６）。最後に、生成部１５ｃは、ステップＳ１０６で生成されたカットフィルタ１６をフィルタ記憶部１１に登録し（ステップＳ１０７）、処理を終了する。
【００８０】
［効果の一側面］
上述してきたように、本実施例に係るＩｏＴシステム１は、パスフィルタ１８の関心領域外の範囲でイベントが集中して分布する領域にセンサ値が属するイベントを除去するカットフィルタ１６をパスフィルタ１８や１次フィルタ１７の前段でフィルタリングに使用させる。これにより、パスフィルタ１８の関心領域外の範囲にセンサ値が属するイベントｅが集中する場合でも、カットフィルタ１６を用いたフィルタリングを１度実行するだけでパスフィルタ１８及び一次フィルタ１７のフィルタアウトを識別できる。したがって、本実施例に係るＩｏＴシステム１によれば、フィルタリング処理の負荷を低減できる。
【実施例２】
【００８１】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００８２】
［Ｐｕｂ−Ｓｕｂ型のメッセージングモデル以外への適用］
上記の実施例１では、Ｐｕｂ／Ｓｕｂのメッセージ基盤が利用される場合を例示したが、必ずしもイベントの仲介を実行せずともかまわず、イベントをストレージに蓄積することとしてもかまわない。この他、シューティングゲームの当たり判定など、受信したイベントを高速でフィルタリング処理する必要がある様々な分野において、フィルタ生成処理やフィルタリング処理を同様に適用できる。
【００８３】
［オフロード］
上記の実施例１では、各フィルタに対応するフィルタリング処理がBrokerであるＩｏＴプラットフォーム１０で実行される場合を例示したが、必ずしも全ての種類のフィルタに対応するフィルタリング処理をＩｏＴプラットフォーム１０で実行させずともかまわない。例えば、イベント送信装置４０が搭載するプロセッサの動作周波数、コア数またはキャッシュが所定の閾値以上である性能を有する場合、カットフィルタ１６や１次フィルタ１７を用いるフィルタリング処理をPublisherへオフロードすることができる。
【００８４】
図９は、実施例２に係るＩｏＴシステムに含まれる機能的構成の一例を示すブロック図である。図９に示すイベント送信装置６０は、図１に示すイベント送信装置４０に比べて、フィルタリング処理部６５を有する点が異なる。
【００８５】
ここで、上記のフィルタリング処理部６５は、イベント送信装置６０に搭載されるプロセッサがフィルタリングプログラムを実行することにより、仮想的に実現することができる。このフィルタリング処理部６５は、一例として、ＩｏＴプラットフォーム１０からオフロードされたカットフィルタ１６を用いて、フィルタリング処理を実行する。すなわち、フィルタリング処理部６５は、カットフィルタ１６ごとに当該カットフィルタ１６の関心領域にセンサ３０により出力されるセンサ値が属するか否かを判定する。このとき、イベントのセンサ値がいずれかのカットフィルタの関心領域に属する場合、パスフィルタ１８及び一次フィルタ１７のフィルタアウトを識別できる。この場合、Brokerへのパブリッシュは実行されないので、Brokerにおけるフィルタリング処理の負荷を軽減できる。なお、イベントのセンサ値がいずれのカットフィルタの関心領域にも属さない場合、フィルタリング処理部６５は、当該センサ値のイベントをBrokerであるＩｏＴプラットフォーム１０へパブリッシュする。
【００８６】
図１０は、フィルタリング処理の一例を示す図である。図１０には、カットフィルタ１６、１次フィルタ１７及びパスフィルタ１８を用いるフィルタリング処理のうちカットフィルタ１６を用いるフィルタリング処理がPublisherであるイベント送信装置６０にオフロードされた例が示されている。図１０に示すように、１つのカットフィルタ１６を用いるフィルタリング処理がイベント送信装置６０にオフロードされた場合、BrokerであるＩｏＴプラットフォーム１０では、フィルタリング回数を１回低減することができる。
【００８７】
図１１は、フィルタリング処理の一例を示す図である。図１１には、カットフィルタ１６、１次フィルタ１７及びパスフィルタ１８を用いるフィルタリング処理のうちカットフィルタ１６および１次フィルタ１７を用いるフィルタリング処理がPublisherであるイベント送信装置６０にオフロードされた例が示されている。図１１に示すように、１つのカットフィルタ１６を用いるフィルタリング処理と、４つの１次フィルタ１７−１〜１７−４を用いるフィルタリング処理とがイベント送信装置６０にオフロードされた場合、BrokerであるＩｏＴプラットフォーム１０では、フィルタリング回数を計５回低減することができる。
【００８８】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、登録受付部１３、１次フィルタ生成部１４、カットフィルタ生成部１５またはフィルタリング処理部１６をＩｏＴプラットフォーム１０の外部装置としてネットワーク経由で接続するようにしてもよい。また、登録受付部１３、１次フィルタ生成部１４、カットフィルタ生成部１５またはフィルタリング処理部１６を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のＩｏＴプラットフォーム１０の機能を実現するようにしてもよい。
【００８９】
［情報処理プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１２を用いて、上記の実施例と同様の機能を有する情報処理プログラムを実行するコンピュータの一例について説明する。
【００９０】
図１２は、実施例１及び実施例２に係る情報処理プログラムを実行するコンピュータのハードウェア構成例を示す図である。図１２に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【００９１】
ＨＤＤ１７０には、図１２に示すように、上記の実施例１で示した登録受付部１３、１次フィルタ生成部１４、カットフィルタ生成部１５及びフィルタリング処理部１６と同様の機能を発揮する情報処理プログラム１７０ａが記憶される。この情報処理プログラム１７０ａは、図１に示した登録受付部１３、１次フィルタ生成部１４、カットフィルタ生成部１５及びフィルタリング処理部１６の各構成要素と同様、統合又は分離してもかまわない。すなわち、ＨＤＤ１７０には、必ずしも上記の実施例１で示した全てのデータが格納されずともよく、処理に用いるデータがＨＤＤ１７０に格納されればよい。
【００９２】
このような環境の下、ＣＰＵ１５０は、ＨＤＤ１７０から情報処理プログラム１７０ａを読み出した上でＲＡＭ１８０へ展開する。この結果、情報処理プログラム１７０ａは、図１２に示すように、情報処理プロセス１８０ａとして機能する。この情報処理プロセス１８０ａは、ＲＡＭ１８０が有する記憶領域のうち情報処理プロセス１８０ａに割り当てられた領域にＨＤＤ１７０から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、情報処理プロセス１８０ａが実行する処理の一例として、図８〜図９に示す処理などが含まれる。なお、ＣＰＵ１５０では、必ずしも上記の実施例１で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【００９３】
なお、上記の情報処理プログラム１７０ａは、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶されておらずともかまわない。例えば、コンピュータ１００に挿入されるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に情報処理プログラム１７０ａを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から情報処理プログラム１７０ａを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに情報処理プログラム１７０ａを記憶させておき、コンピュータ１００がこれらから情報処理プログラム１７０ａを取得して実行するようにしてもよい。
【符号の説明】
【００９４】
１    ＩｏＴシステム
１０    ＩｏＴプラットフォーム
１１    フィルタ記憶部
１２    実績記憶部
１３    登録受付部
１４    １次フィルタ生成部
１５    カットフィルタ生成部
１５ａ  除去部
１５ｂ  クラスタリング部
１５ｃ  生成部
１６    フィルタリング処理部
３０    センサ
４０    イベント送信装置
５０    イベント受信装置
【図１】
2019016003.tif 000003
【図２】
2019016003.tif 000004
【図３Ａ】
2019016003.tif 000005
【図３Ｂ】
2019016003.tif 000006
【図４】
2019016003.tif 000007
【図５】
2019016003.tif 000008
【図６】
2019016003.tif 000009
【図７Ａ】
2019016003.tif 000010
【図７Ｂ】
2019016003.tif 000011
【図７Ｃ】
2019016003.tif 000012
【図７Ｄ】
2019016003.tif 000013
【図８】
2019016003.tif 000014
【図９】
2019016003.tif 000015
【図１０】
2019016003.tif 000016
【図１１】
2019016003.tif 000017
【図１２】
2019016003.tif 000018