(57)【要約】      （修正有）【課題】異常判定を適切に行うことができる情報処理装置を提供する。【解決手段】ゲートウェイ１０は、センサノード７０を用いたデータ取得方式を決定するデータ取得方式決定部１６と、決定した取得方式に従って、センサノード７０で計測された計測値及び性能値を取得する性能値取得部１２及びセンサ計測値取得部１３と、取得した計測値や性能値に基づいて、異常発生の有無を判定する異常判定部１４と、取得した性能値に基づいて、性能値の出現範囲を良否の度合ごとに複数のレベル範囲に区分けする性能レベルテーブル策定部１５と、を備え、データ取得方式決定部１６は、取得した性能値が含まれるレベル範囲と、異常発生の有無との組み合わせに基づいて、データ取得方式を決定する。【選択図】図３
2018097527.tif 000002
【特許請求の範囲】
【請求項１】
センサノードを用いたデータ取得についての取得方式を決定するデータ取得方式決定部と、
前記データ取得方式決定部が決定した取得方式に従って、前記センサノードで計測された計測データ及び前記センサノードの性能に関連する性能データを取得するデータ取得部と、
前記データ取得部が取得した前記計測データ及び／又は前記性能データに基づいて、異常発生の有無を判定する異常判定部と、
前記データ取得部が取得した前記性能データに基づいて、前記性能データのデータ値の出現範囲をデータ値の良否の度合ごとに複数のレベル範囲に区分けし、記憶部に記憶する区分け部と、を備え、
前記データ取得方式決定部は、前記データ取得部が取得した前記性能データのデータ値が含まれるレベル範囲を前記記憶部を参照して決定し、決定したレベル範囲と前記異常発生の有無との組み合わせに基づいて、前記取得方式を決定することを特徴とする情報処理装置。
【請求項２】
前記取得方式は、前記センサノードにおいて前記計測データ及び／又は前記性能データを取得するためのコマンド、前記センサノードにおける前記計測データ及び／又は前記性能データのサンプリング間隔、前記センサノードからの前記計測データ及び／又は性能データの送信間隔、の少なくとも１つを含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記区分け部は、予め定められたタイミングで前記区分けを繰り返し実行することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記データ取得方式決定部は、決定した取得方式を前記データ取得部が用いる前と用いた後の前記性能データのデータ値を取得し、取得した前記データ値が含まれるレベル範囲の異同に基づいて、前記取得方式を調整する、ことを特徴とする請求項１〜３のいずれか一項に記載の情報処理装置。
【請求項５】
前記区分け部は、前記異常判定部により異常ありと判定された時点を含む所定期間内に前記データ取得部が取得した前記性能データのデータ値に基づいて区分けを実行する、ことを特徴とする請求項１〜４のいずれか一項に記載の情報処理装置。
【請求項６】
前記区分け部は、前記異常判定部により異常ありと判定されたときの性能データのデータ値を取得し、各データ値の取得数に基づいて、区分けを実行することを特徴とする請求項１〜５のいずれか一項に記載の情報処理装置。
【請求項７】
前記データ取得方式決定部は、ユーザが希望する取得方式の入力を受け付け、前記ユーザが希望する取得方式に基づいて、前記センサノードを用いたデータ取得についての取得方式を決定する、ことを特徴とする請求項１〜６のいずれか一項に記載の情報処理装置。
【請求項８】
前記取得方式に前記センサノードにおける前記性能データのサンプリング間隔が含まれる場合には、
前記データ取得方式決定部は、前記性能データが補間可能なデータであるかを判定し、補間可能な場合に前記性能データのサンプリング間隔を長く調整する、ことを特徴とする請求項１〜７のいずれか一項に記載の情報処理装置。
【請求項９】
前記データ取得方式決定部は、第１のセンサノードの第１の性能データの取得方式を決定した場合に、前記第１のセンサノードと関連する機器の前記第１の性能データの取得方式及び／又は前記第１のセンサノードの前記第１の性能データに関連する第２の性能データの取得方式を、前記第１のセンサノードの前記第１の性能データの取得方式と同一の取得方式に決定する、ことを特徴とする請求項１〜８のいずれか一項に記載の情報処理装置。
【請求項１０】
センサノードを用いたデータ取得についての取得方式を決定し、
決定した前記取得方式に従って、前記センサノードで計測された計測データ及び前記センサノードの性能に関連する性能データを取得し、
取得した前記計測データ及び／又は前記性能データに基づいて、異常発生の有無を判定し、
取得した前記性能データに基づいて、前記性能データのデータ値の出現範囲をデータ値の良否の度合ごとに複数のレベル範囲に区分けし、記憶部に記憶する、処理をコンピュータが実行し、
前記取得方式を決定する処理では、取得した前記性能データのデータ値が含まれるレベル範囲を前記記憶部を参照して決定し、決定したレベル範囲と前記異常発生の有無との組み合わせに基づいて、前記取得方式を決定する、ことを特徴とする情報処理方法。
【請求項１１】
センサノードを用いたデータ取得についての取得方式を決定し、
決定した前記取得方式に従って、前記センサノードで計測された計測データ及び前記センサノードの性能に関連する性能データを取得し、
取得した前記計測データ及び／又は前記性能データに基づいて、異常発生の有無を判定し、
取得した前記性能データに基づいて、前記性能データのデータ値の出現範囲をデータ値の良否の度合ごとに複数のレベル範囲に区分けし、記憶部に記憶する、処理をコンピュータに実行させ、
前記取得方式を決定する処理では、取得した前記性能データのデータ値が含まれるレベル範囲を前記記憶部を参照して決定し、決定したレベル範囲と前記異常発生の有無との組み合わせに基づいて、前記取得方式を決定する、ことを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
最近、ＩｏＴ（Internet of Things）の拡大に伴い、情報処理装置に対して、多種多様なデバイスが多種多様な通信方式で接続されるようになっている。このような状況においては、接続されるデバイスの種別、通信方式、周辺の無線状況、利用アプリ等により、発生する障害（例えば、デバイスのハードウェア障害やソフトウェア障害、通信障害）は様々となる。このため、時々刻々と変化するＩｏＴ環境においては、デバイスのハードウェア性能、ソフトウェア性能、通信性能等を監視し、障害判定を実行することが重要である。
【０００３】
この場合、障害判定を高精度に実行するために高頻度で各種性能データを収集すると、ハードウェアや通信の負荷が高くなる。一方、ハードウェアや通信の負荷にならない程度の頻度で各種性能データを収集すると、障害判定に不十分となるおそれがある。
【０００４】
従来、通信量の履歴に基づいて、データ収集に伴うネットワーク負荷を平準化しつつ送信期限内のデータ収集を実現する技術が知られている（例えば、特許文献１等参照）。また、ルータノードにおいて、ＣＰＵや通信装置の処理性能に応じた速度（制限転送レート）を予め設定し、制限転送レートに基づいて測定間隔や送信間隔を設定する技術が知られている（例えば、特許文献２等参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１５／１０７５７４号
【特許文献２】特開２００８−４２４５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、住宅やオフィス等の一般の環境では、外乱（外からの電波侵入や遮蔽、干渉など）が不特定に発生し、通信量が毎日同じように変化するわけではないため、上述した従来の技術では適切にデータ収集を行うことができない。
【０００７】
１つの側面では、本発明は、異常判定を適切に行うことが可能な情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
一つの態様では、情報処理装置は、センサノードを用いたデータ取得についての取得方式を決定するデータ取得方式決定部と、前記データ取得方式決定部が決定した取得方式に従って、前記センサノードで計測された計測データ及び前記センサノードの性能に関連する性能データを取得するデータ取得部と、前記データ取得部が取得した前記計測データ及び／又は前記性能データに基づいて、異常発生の有無を判定する異常判定部と、前記データ取得部が取得した前記性能データに基づいて、前記性能データのデータ値の出現範囲をデータ値の良否の度合ごとに複数のレベル範囲に区分けし、記憶部に記憶する区分け部と、を備え、前記データ取得方式決定部は、前記データ取得部が取得した前記性能データのデータ値が含まれるレベル範囲を前記記憶部を参照して決定し、決定したレベル範囲と前記異常発生の有無との組み合わせに基づいて、前記取得方式を決定する、情報処理装置である。
【発明の効果】
【０００９】
異常判定を適切に行うことができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係る情報処理システムの構成を概略的に示す図である。
【図２】図２（ａ）は、ゲートウェイのハードウェア構成を示す図であり、図２（ｂ）は、ユーザ端末のハードウェア構成を示す図である。
【図３】センサノードとゲートウェイの機能ブロック図である。
【図４】性能値ＤＢのデータ構造の一例を示す図である。
【図５】図５（ａ）は、第１の実施形態に係る性能値取得部の処理を示すフローチャートであり、図５（ｂ）は、第１の実施形態に係るセンサ計測値取得部の処理を示すフローチャートである。
【図６】計測値ＤＢのデータ構造の一例を示す図である。
【図７】図７（ａ）、図７（ｂ）は、異常判定部による異常判定について説明するための図である。
【図８】図８（ａ）は、性能レベルテーブルのデータ構造の一例を示す図であり、図８（ｂ）は、性能値の正規分布の例を示す図である。
【図９】第１の実施形態に係る性能レベルテーブル策定部の処理を示すフローチャートである。
【図１０】取得方式テーブルのデータ構造の一例を示す図である。
【図１１】第２の実施形態におけるデータ取得方式決定部の処理を示すフローチャートである。
【図１２】第３の実施形態における性能レベルテーブル策定部の処理を示すフローチャートである。
【図１３】第４の実施形態における性能レベルテーブル策定部の処理を示すフローチャートである。
【図１４】性能値と異常発生回数の関係を示す図である。
【図１５】第５の実施形態の入力画面の一例を示す図である。
【図１６】第６の実施形態におけるデータ取得方式決定部の処理を示すフローチャートである。
【図１７】第７の実施形態におけるデータ取得方式決定部の処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
≪第１の実施形態≫
以下、情報処理システムの第１の実施形態について、図１〜図１０に基づいて詳細に説明する。
【００１２】
図１には、第１の実施形態に係る情報処理システム１００の構成が概略的に示されている。情報処理システム１００は、多数のセンサノード７０と、情報処理装置としてのゲートウェイ１０と、ユーザ端末６０と、を備える。ゲートウェイ１０とユーザ端末６０とは、ネットワーク８０に接続されている。
【００１３】
センサノード７０は、センサと、データ処理機能や無線通信機能を実装した装置である。例えば、センサノード７０は、温度、湿度、マンホール内の下水の水位やガス濃度などを計測し、計測値をゲートウェイ１０に対して無線通信にて送信する。また、センサノード７０は、センサノード７０自体の性能（ハードウェア性能、ソフトウェア性能、通信性能）を示すデータ（性能値）を計測する。なお、性能の種別（ハードウェア性能、ソフトウェア性能、通信性能）を、以下においては、カテゴリとも呼ぶものとする。
【００１４】
図３には、センサノード７０とゲートウェイ１０の機能ブロック図が示されている。図３に示すように、センサノード７０は、１又は複数のセンサ７２と、制御部７４と、を備える。
【００１５】
センサ７２は、温度や湿度などを計測するセンサや、水位やガス濃度などを計測するセンサを含む。
【００１６】
制御部７４は、ＣＰＵ（Central Processing Unit）がプログラムを実行することにより、性能値計測部７５、センサ計測部７６、通信部７７の機能を有する。性能値計測部７５は、通信部７７を介してゲートウェイ１０（性能値取得部１２）から通知されたサンプリング間隔と取得コマンドに基づいて、センサノード７０のハードウェアやソフトウェアの性能を示す性能データの値（性能値）を計測する。なお、ハードウェアやソフトウェアの性能を示す性能データ、すなわちカテゴリが「ハードウェア性能」や「ソフトウェア性能」である性能データには、例えば、ＣＰＵ使用率、メモリ使用率、ＨＤＤ（Hard Disk Drive）使用率、バッテリ残量、センサノード内温度、内部処理時間などが含まれる。
【００１７】
また、性能値計測部７５は、ゲートウェイ１０（性能値取得部１２）から通信性能を示す性能データの値（性能値）を取得するためのコマンド（サンプリングコマンド）を受信したときに、通信性能を示す性能データの値を計測する。なお、通信性能を示す性能データ、すなわちカテゴリが「通信性能」である性能データには、電波強度（ＲＳＳＩ：Received Signal Strength Indicator）、リンク品質（ＬＱ：Link Quality）、パケットエラー率（ＰＥＲ：Packet Error Rate）、ビットエラー率（ＢＥＲ：Bit Error Rate）、応答時間、再送回数、チャネル利用率、アクティブノード数などが含まれる。
【００１８】
センサ計測部７６は、ゲートウェイ１０（センサ計測値取得部１３）から通知されたサンプリング間隔と取得コマンドで、センサ７２による計測値（センサ計測値）を取得する。
【００１９】
性能値計測部７５及びセンサ計測部７６は、性能値取得部１２やセンサ計測値取得部１３から通知されたデータ送信間隔ごとに、未送信のデータをまとめて通信部７７を介して送信する。なお、性能値計測部７５及びセンサ計測部７６は、性能値取得部１２やセンサ計測値取得部１３からデータ要求コマンドを受信したときに、未送信のデータをまとめて、通信部７７を介してゲートウェイ１０に送信することとしてもよい。
【００２０】
ゲートウェイ１０は、例えば、電柱などに設置される装置である。ゲートウェイ１０は、センサノード７０において計測された性能値やセンサ計測値を受信し、受信した値に基づいて、センサノードを用いた性能値やセンサ計測値の取得方式（以下、「データ取得方式」と呼ぶ）を決定する。また、ゲートウェイ１０は、センサ計測値に基づいて異常（障害）の有無を判定し、異常（障害）に関する情報をネットワーク８０を介してユーザ端末６０に通知する。
【００２１】
図２（ａ）には、ゲートウェイ１０のハードウェア構成が示されている。図２（ａ）に示すように、ゲートウェイ１０は、ＣＰＵ９０、ＲＯＭ（Read Only Memory）９２、ＲＡＭ（Random Access Memory）９４、記憶部（ここではＨＤＤ）９６、通信部９７、及び可搬型記憶媒体用ドライブ９９等を備えている。通信部９７は、センサノード７０の通信部７７と無線通信する機能、及びネットワーク８０を介してユーザ端末６０と通信する機能を有する。ゲートウェイ１０の構成各部は、バス９８に接続されている。ゲートウェイ１０では、ＲＯＭ９２あるいはＨＤＤ９６に格納されているプログラム（情報処理プログラムを含む）、或いは可搬型記憶媒体用ドライブ９９が可搬型記憶媒体９１から読み取ったプログラム（情報処理プログラムを含む）をＣＰＵ９０が実行することにより、図３に示す各部の機能が実現される。なお、図３の各部の詳細については、後述する。
【００２２】
ユーザ端末６０は、ゲートウェイ１０から異常（障害）に関する情報を受信し、ユーザに報知する装置である。図２（ｂ）には、ユーザ端末６０のハードウェア構成が示されている。ユーザ端末６０は、図２（ｂ）に示すように、ゲートウェイ１０と同様、ＣＰＵ１９０、ＲＯＭ１９２、ＲＡＭ１９４、記憶部（ＨＤＤ）１９６、通信部１９７、表示部１９３、入力部１９５、及び可搬型記憶媒体１９１の読み取りが可能な可搬型記憶媒体用ドライブ１９９等を備えている。ユーザ端末６０の構成各部は、バス１９８に接続されている。表示部１９３は、液晶ディスプレイ等を含み、入力部１９５は、キーボード、マウス、タッチパネル等を含む。
【００２３】
次に、ゲートウェイ１０の機能について、図３に基づいて詳細に説明する。図３に示すように、ゲートウェイ１０は、ＣＰＵ９０がプログラムを実行することで、通信部１１、性能値取得部１２、センサ計測値取得部１３、異常判定部１４、区分け部としての性能レベルテーブル策定部１５、データ取得方式決定部１６、障害判定部１７、判定結果通知部１８、として機能する。なお、図３において図示されている、性能値ＤＢ３０、計測値ＤＢ３２、性能レベルテーブル３４、取得方式テーブル３６は、ＨＤＤ９６等に格納されている。
【００２４】
通信部１１は、センサノード７０の通信部７７との間で無線通信を行う。
【００２５】
性能値取得部１２は、後述するデータ取得方式決定部１６から通知されたデータの取得方式（取得コマンド、サンプリング間隔、データ送信間隔）を、通信部１１を介してセンサノード７０（性能値計測部７５）に通知する。この場合、センサノード７０は、通知されたデータ送信間隔で、ゲートウェイ１０とセンサノード７０との間の通信性能を示す複数の性能データや、センサノード７０のハードウェアやソフトウェアの性能を示す複数の性能データを性能値取得部１２に送信する。性能値取得部１２は、センサノード７０から送信されてきた各種性能データを取得し、性能値ＤＢ３０に格納する。また、性能値取得部１２は、性能値ＤＢ３０を更新した場合には、異常判定部１４に対して性能値ＤＢ３０の更新を通知する。
【００２６】
なお、性能値取得部１２は、センサノード７０との間にアクセスポイントやルータのような無線通信用の中継器が存在している場合に、中継器によって観測できる通信性能を示す複数の性能データや、中継器のハードウェアやソフトウェアの性能を示す複数の性能データを、中継器から受信して取得し、性能値ＤＢ３０に格納してもよい。また、性能値取得部１２は、ゲートウェイ１０自身のハードウェアやソフトウェアの性能を示す複数の性能データを、取得してもよい。
【００２７】
性能値ＤＢ３０は、図４に示すようなデータ構造を有する。具体的には、性能値ＤＢ３０は、「ノードＩＤ」、「タイムスタンプ」のフィールドの他、各種性能データの値を格納するフィールド（例えば、「ＲＳＳＩ」、「ＬＱ」、…等のフィールド）を有する。性能値ＤＢ３０には、各センサノード７０で得られる性能値（例えば、ＲＳＳＩやＬＱの値など）がセンサノード７０の識別情報であるノードＩＤと、性能値の取得日時を示すタイプスタンプとともに格納される。
【００２８】
なお、性能値取得部１２が、データ取得方式決定部１６から通知されたデータ送信間隔で性能データの送信をセンサノード７０に要求する場合には、性能値取得部１２はセンサノード７０にデータ送信間隔を通知しないものとする。また、性能値に変化があるときだけセンサノード７０が性能値取得部１２に対して性能値を送信する場合には、性能値取得部１２は、センサノード７０にデータ送信間隔を通知しないものとする。
【００２９】
（性能値取得部１２の処理）
ここで、性能値取得部１２の処理について、図５（ａ）のフローチャートに沿って詳細に説明する。なお、図５（ａ）の処理は、データ取得方式決定部１６からデータ取得方式が送信されてきた段階で開始される処理である。
【００３０】
図５（ａ）の処理では、まず、ステップＳ１０において、性能値取得部１２が、データ取得方式決定部１６からデータ取得方式（取得コマンド、サンプリング間隔、データ送信間隔）を受信する。次いで、ステップＳ１２では、性能値取得部１２は、通信部１１を介して、センサノード７０に、取得コマンド、サンプリング間隔、データ送信間隔を通知する。センサノード７０では、性能値計測部７５が、取得コマンド及びサンプリング間隔に基づいて、性能値を取得し、取得した性能値を通信部７７を介してゲートウェイ１０に送信する。
【００３１】
次いで、ステップＳ１４では、性能値取得部１２は、センサノード７０から性能値が送信されてくるまで待機する。性能値が送信されてきた場合、性能値取得部１２は、ステップＳ１６に移行し、送信されてきた性能値を取得し、性能値ＤＢ３０に格納する。
【００３２】
次いで、ステップＳ１８では、性能値取得部１２は、性能値ＤＢ３０に性能値を格納した旨を異常判定部１４に通知する。その後は、ステップＳ１４〜Ｓ１８の処理を繰り返すが、データ取得方式決定部１６から新たなデータ取得方式が送信されてきた段階で、性能値取得部１２は、図５（ａ）の処理を一旦終了し、図５（ａ）の処理を最初から実行しなおす。
【００３３】
ここで、通信性能を示す性能データには、何らかの通信パケットを送受信しないと取得できないデータがある。このため、性能値取得部１２がデータ取得方式決定部１６から受信するデータ取得方式には、通信性能を示す性能データをサンプリングするためのコマンド（サンプリングコマンド）が含まれる場合がある。性能値取得部１２は、サンプリングコマンドを取得した場合には、図５（ａ）の処理とは別に、サンプリングコマンドをサンプリング間隔に基づいてセンサノード７０に送信する。これにより、データ取得方式決定部１６が決定したサンプリング間隔で、すべての通信性能を示す性能データを取得することが可能となる。
【００３４】
図３に戻り、センサ計測値取得部１３は、データ取得方式決定部１６から通知された取得コマンド、サンプリング間隔、データ送信間隔をセンサノード７０（センサ計測部７６）に通知し、センサノード７０から、センサ７２が計測したデータ（センサ計測値）を受信する。また、センサ計測値取得部１３は、受信したセンサ計測値を計測値ＤＢ３２に格納するとともに、計測値ＤＢ３２の更新を異常判定部１４に通知する。
【００３５】
図６には、計測値ＤＢ３２のデータ構造の一例が示されている。図６に示すように、計測値Ｄ３２は、「ノードＩＤ」及び「タイムスタンプ」のフィールドと、各種センサ計測値を格納するフィールド（「温度」、「湿度」、…等のフィールド）と、を有する。計測値ＤＢ３２においては、各センサノード７０で得られるセンサ計測値（例えば、温度、湿度、水位、ガス濃度など）がセンサノード７０の識別情報であるノードＩＤと、センサ計測値の取得日時を示すタイプスタンプとともに格納される。
【００３６】
なお、センサ計測値取得部１３が、データ取得方式決定部１６から通知されたデータ送信間隔でセンサ計測値の送信をセンサノード７０に要求する場合には、センサ計測値取得部１３はセンサノード７０にデータ送信間隔を通知しないものとする。また、センサ計測値に変化があるときだけセンサノード７０がセンサ計測値取得部１３に対してセンサ計測値を送信する場合には、センサ計測値取得部１３は、センサノード７０にデータ送信間隔を通知しないものとする。
【００３７】
（センサ計測値取得部１３の処理）
ここで、センサ計測値取得部１３の処理について、図５（ｂ）のフローチャートに沿って詳細に説明する。
【００３８】
図５（ｂ）の処理では、まず、ステップＳ１１０において、センサ計測値取得部１３が、データ取得方式決定部１６からデータ取得方式（取得コマンド、サンプリング間隔、データ送信間隔）を受信する。次いで、ステップＳ１１２では、センサ計測値取得部１３は、通信部１１を介して、センサノード７０に、取得コマンド、サンプリング間隔、データ送信間隔を通知する。センサノード７０では、センサ計測部７６が、取得コマンド及びサンプリング間隔に基づいて、センサ７２を用いてセンサ計測値を取得し、取得したセンサ計測値を通信部７７を介してゲートウェイ１０に送信する。
【００３９】
次いで、ステップＳ１１４では、センサ計測値取得部１３は、センサノード７０からセンサ計測値が送信されてくるまで待機する。センサ計測値が送信されてきた場合、センサ計測値取得部１３は、ステップＳ１１６に移行し、送信されてきたセンサ計測値を取得し、計測値ＤＢ３２に格納する。
【００４０】
次いで、ステップＳ１１８では、センサ計測値取得部１３は、計測値ＤＢ３２にセンサ計測値を格納した旨を異常判定部１４に通知する。その後は、ステップＳ１１４〜Ｓ１１８の処理を繰り返すが、データ取得方式決定部１６から新たなデータ取得方式が送信されてきた段階で、センサ計測値取得部１３は、図５（ｂ）の処理を一旦終了し、図５（ｂ）の処理を最初から実行しなおす。
【００４１】
図３に戻り、異常判定部１４は、センサ計測値取得部１３から計測値ＤＢ３２の更新の通知を受信した場合、又は性能値取得部１２から性能値ＤＢ３０の更新の通知を受信した場合に、計測値ＤＢ３２又は性能値ＤＢ３０から直近のデータを取得し、異常の有無を判定する。そして、異常判定部１４は、判定した異常の有無をデータ取得方式決定部１６に通知する。また、異常判定部１４は、異常発生を検知した場合、異常発生と判定した元データ（ノードＩＤ、タイムスタンプ、データ名及びデータ値）を障害判定部１７に通知する。
【００４２】
ここで、異常判定部１４は、例えば、図７（ａ）において太線枠で示すように、センサ計測値や性能値の取得に失敗した場合に異常有りと判定することができる。また、異常判定部１４は、図７（ｂ）において太線枠で示すように、性能値と閾値の比較結果が異常を示す結果となった場合に異常有りと判定することができる。また、異常判定部１４は、エラーメッセージを受信したかなどに基づいて異常の発生有無を判定することができる。また、異常判定部１４は、計測値ＤＢ３２や性能値ＤＢ３０から直近データを複数個取得し、取得した複数個のデータの平均値や分散値等の特徴量が閾値を超えるか否かに基づいて異常の発生有無を判定してもよい。
【００４３】
性能レベルテーブル策定部１５は、性能値ＤＢ３０から、各種性能値をそれぞれ取得し、各性能値の取りうる範囲（出現範囲）を２つ以上のレベル範囲（例えば、「良」と「悪」の２つのレベル範囲や、「良」と「普通」と「悪」の３つのレベル範囲など）に区分けし、区分けに用いた閾値で記憶部としての性能レベルテーブル３４を更新する。性能レベルテーブル３４は、図８（ａ）に示すようなデータ構造を有する。なお、性能レベルテーブル３４は、基本的には、センサノード７０毎に策定されるが、例えば、同一の場所に同一の通信方式の同種のセンサノード７０が複数存在している場合には、これらのセンサノード７０をまとめて、１つの性能レベルテーブル３４を策定するようにしてもよい。また、例えば、無線通信状況等は、平日や休日、日中や夜間などによっても変化するため、曜日や時間ごとに性能レベルテーブル３４を策定するようにしてもよい。また、収集可能な性能データすべてについて性能レベルを策定してもよいが、取得コマンド、サンプリング間隔、データ送信間隔を調整するために必要な性能データのみに限定して、性能レベルテーブル３４を策定するようにしてもよい。
【００４４】
性能レベルテーブル策定部１５は、例えば、性能値の平均値や最頻値を基準にレベル範囲「良」、「悪」や「普通」を策定することができる。また、性能レベルテーブル策定部１５は、性能値の正規分布からレベル範囲「良」、「悪」や「普通」を策定することとしてもよい。例えば、図８（ｂ）に示すように、正規分布の端１０％を「悪」、その他を「良」としてもよいし、中心８０％を「普通」とし、「普通」の両隣を「良」、「悪」としてもよい。
【００４５】
なお、性能レベルテーブル策定部１５による性能レベルテーブル３４の更新処理は、新たに性能値が性能値ＤＢ３０に登録されるたびに行ってもよいし、一定時間（例えば１時間）毎に行ってもよい。また、性能レベルテーブル策定部１５は、異常判定部１４によって異常が有ると判定されたタイミングで性能レベルテーブル３４の更新処理を実行することとしてもよい。
【００４６】
（性能レベルテーブル策定部１５の処理）
ここで、性能レベルテーブル策定部１５の処理について、図９のフローチャートに沿って詳細に説明する。図９の処理は、前述したような更新処理のタイミングで実行される処理である。なお、図９の説明では、各性能データ（性能値）の出現範囲を「良」レベルと「悪」レベルの２つのレベル範囲に分ける場合を例にとり説明する。
【００４７】
図９の処理では、まず、ステップＳ１５０において、性能レベルテーブル策定部１５が、性能値ＤＢ３０から各性能データ（直近Ｘ個の性能値）を取得する。次いで、ステップＳ１５２では、性能レベルテーブル策定部１５が、各性能データを正規分布化する（図８（ｂ）参照）。
【００４８】
次いで、ステップＳ１５４では、性能レベルテーブル策定部１５が、各性能データの正規分布から「悪」レベルと「良」レベルに区分けする閾値を算出する。次いで、ステップＳ１５６では、性能レベルテーブル策定部１５が、算出した閾値が既に性能レベルテーブル３４に登録されているか否か（すなわち、算出した閾値を格納する欄が空でないか否か）を判断する。このステップＳ１５６の判断が否定された場合には、ステップＳ１５８に移行し、性能レベルテーブル策定部１５は、ステップＳ１５４で算出した閾値を性能レベルテーブル３４に登録する。その後は、図９の全処理を終了する。
【００４９】
一方、ステップＳ１５６の判断が肯定された場合には、ステップＳ１６０に移行し、性能レベルテーブル策定部１５は、新たに算出された閾値と登録済みの閾値との差分が所定値（δ）以上であるか否かを判断する。このステップＳ１６０の判断が肯定された場合、すなわち、新たに算出された閾値と登録済みの閾値との差分が極端に大きい場合には、新たに算出された閾値の信頼性が低いと考えられるため、ステップＳ１６２に移行し、性能レベルテーブル策定部１５は、性能データをより多く取得し、再度閾値を算出する。その後は、ステップＳ１６０に戻る。
【００５０】
一方、ステップＳ１６０の判断が否定された場合には、ステップＳ１６４に移行し、性能レベルテーブル策定部１５が、新たに算出された閾値と登録済み閾値の平均値で、性能レベルテーブル３４の閾値を更新する。その後は、図９の全処理を終了する。
【００５１】
性能レベルテーブル策定部１５は、以上のような処理を実行することで、性能レベルテーブル３４の閾値を適宜更新することが可能となっている。
【００５２】
図３に戻り、データ取得方式決定部１６は、異常判定部１４から受信した異常の有無と、性能値ＤＢ３０から取得した最新の性能データ（性能値）とを取得し、性能レベルテーブル３４と、取得方式テーブル３６とを参照して、異常有無と性能データ（性能値）とに応じたデータ取得方式を決定する。ここで、取得方式テーブル３６は、図１０に示すようなデータ構造を有する。なお、取得方式テーブル３６の「性能値」の各項目は、性能レベルＤＢ３４の「性能値」の各項目と一致している。
【００５３】
図１０に示すように、取得方式テーブル３６には、異常の「有」、「無」、性能レベルの「良」、「悪」に対応して、取得コマンド、サンプリング間隔、データ送信間隔が予め登録されている。以下、取得方式テーブル３６について詳細に説明する。
【００５４】
（１）異常が「無」で、性能レベルが「良」のとき
性能データを取得するための取得コマンドは、パケットサイズが大きいが詳細情報が取得できるコマンド（取得コマンドＡ，Ｃ，Ｅ）とする。
サンプリング間隔は、悪化傾向が判定できる程度に、間隔を長めとする（例えば、サンプリング間隔：１ｓ）。
データ送信間隔は、通信負荷をあまり上げない程度に頻繁な間隔とする（例えば、データ送信間隔：１ｓ）。
【００５５】
（２）異常が「無」で、性能レベルが「悪」のとき
性能データを取得するための取得コマンドは、情報としての精度が下がるが障害が判定できる程度の情報が取得できるコマンド（取得コマンドＢ，Ｄ，Ｅ）にして、パケットサイズを小さくし、通信負荷を下げる。
サンプリング間隔は、障害が判定できる程度にするため、（１）の場合よりも間隔を短くする（例えば、サンプリング間隔：５００ｍｓ又は１００ｍｓ）。なお、これにより、センサノード７０やゲートウェイ１０の負荷は上がる。
データ送信間隔は、通信負荷をあまり上げず、かつ判定タイミングが遅れない程度まで伸ばし（例えば、データ送信間隔：５ｓ又は１ｓ）、通信負荷を下げる。
【００５６】
（３）異常が「有」で、性能レベルが「良」のとき
（２）の場合と同様とする。
【００５７】
（４）異常が「有」で、性能レベルが「悪」のとき
性能データを取得するための取得コマンドは、情報としての精度が下がるが障害が判定できる程度の情報を取得できるコマンド（取得コマンドＢ，Ｄ，Ｅ）にして、パケットサイズを小さくし、通信負荷を下げる。
サンプリング間隔は、障害が判定できる程度にするため、間隔を短くする（例えば、サンプリング間隔：５００ｍｓ又は１００ｍｓ）。なお、これにより、センサノード７０やゲートウェイ１０の負荷は上がる。
データ送信間隔は、即座に障害が判定できる程度まで短くする（例えば、データ送信間隔：１ｓ）。なお、これにより、通信負荷は上がる。
【００５８】
なお、前述のように、通信性能データには、何らかの通信パケットを送受信しないと取得できないデータも含まれるため、図１０の取得方式テーブル３６には、サンプリングコマンドも格納されている。なお、サンプリングコマンドについても、（１）の場合には、パケットサイズが大きいが詳細情報が取得できるコマンド（サンプリングコマンドＸ）であり、（２）〜（４）の場合には、情報としての精度が下がるが障害が判定できる程度の情報を取得できるコマンド（サンプリングコマンドＹ）となっている。
【００５９】
ここで、図１０の取得方式テーブル３６において、カテゴリ「ハードウェア性能」の性能データについては、１つのコマンドで、複数の性能データを取得することが可能である。したがって、例えば、ＣＰＵ負荷は性能レベルが「悪」で、メモリ使用率等他の性能レベルが「良」の場合のように、１つでも「悪」レベルがある場合には、ハードウェア性能レベルを「悪」と判定してもよい。あるいは、各性能レベルの平均を求め、求めた平均を性能レベルとして用いてもよい。
【００６０】
図３に戻り、障害判定部１７は、異常判定部１４から異常が発生したことの通知を受信すると、異常発生したセンサノード７０において計測された直近データ（タイムスタンプが異常判定の時刻から近いデータ）を性能値ＤＢ３０から１個以上（Ｘ個）取得する。そして障害判定部１７は、取得したデータを分析し、障害内容（障害が発生したセンサノード７０のノードＩＤ、障害発生日時、障害内容）を特定し、特定した障害内容を判定結果通知部１８に通知する。
【００６１】
ここで、直近データをＸ個取得する場合、異常発生と判定したデータのタイムスタンプの直前Ｘ個を取得してもよいし、異常発生と判定したデータのタイムスタンプの前後Ｘ個を取得してもよい。
【００６２】
また、データが変化する周期や変化量等に基づいて個数Ｘを変更するようにしてもよい。たとえば、通信性能を示す性能データの場合はアトランダムに大きく変化するため、個数Ｘを大きく（例えばＸ＝５０）し、ハードウェアやソフトウェアの性能を示す性能データの場合は線形に変化することが多いので個数Ｘを小さく（例えばＸ＝１０）してもよい。
【００６３】
なお、障害判定部１７による判定手法としては、例えば、平均値、中央値、分散値等の特徴量の比較や、特徴量と閾値との比較、クラスタ分析やトレンド分析、正常時の学習パターンやクラスタとの比較等を利用することができる。
【００６４】
判定結果通知部１８は、障害判定部１７から受信した障害内容（ノードＩＤ、障害発生日時、障害内容）をユーザ端末６０に通知する。なお、判定結果通知部１８は、ユーザ端末６０に限らず、システム運用アプリ、見える化アプリ、システム管理者が利用する端末に対して、判定結果を通知することとしてもよい。
【００６５】
本第１の実施形態においては、性能レベルテーブル策定部１５によって適宜更新される性能レベルテーブル３４に基づいて、データ取得方式決定部１６が性能値の性能レベルを決定し、決定した性能レベルと、異常判定部１４の判定結果（異常発生有無）と、に基づいて、データ取得方式決定部１６がデータ取得方式を決定する。そして、性能値取得部１２及びセンサ計測値取得部１３は、決定されたデータ取得方式に基づいて、性能値やセンサ計測値を取得するようになっている。
【００６６】
以上の説明からわかるように、本実施形態では、性能値取得部１２とセンサ計測値取得部１３とにより、データ取得方式に従って性能値やセンサ計測値を取得するデータ取得部としての機能が実現されている。また、本実施形態では、障害判定部１７と判定結果通知部１８とにより、障害を判定し、出力する出力部としての機能が実現されている。
【００６７】
以上、詳細に説明したように、本第１の実施形態によると、性能値取得部１２及びセンサ計測値取得部１３は、データ取得方式決定部１６が決定したデータ取得方式に従って、センサノード７０で計測されたセンサ計測値及び性能値を取得し、異常判定部１４は、センサ計測値や性能値に基づいて、異常発生の有無を判定する。また、性能レベルテーブル策定部１５は、性能値の出現範囲を、性能値の良否に応じて複数のレベル範囲に適宜区分けして性能レベルテーブル３４を策定し、データ取得方式決定部１６は、直近の性能値が含まれるレベル範囲と、異常発生有無との組み合わせに基づいて、取得方式テーブル３６からデータ取得方式を決定する。これにより、本第１の実施形態では、実際に取得された性能値に基づいて適宜策定される性能レベルテーブル３４を用い、直近の性能値と異常有無とに応じて、データ取得方式（取得コマンド、サンプリング間隔、データ送信間隔）を最適化することができる。これにより、時々刻々と変化するＩｏＴ環境において、ハードウェアや通信の負荷をあまり上げることなく、高精度に性能の悪化や障害の検知及び判定が可能となる。
【００６８】
また、本第１の実施形態のゲートウェイ１０は、センサノード７０とゲートウェイ１０との間の通信方式や通信機能によらず適用可能であるため、様々な現場において展開することが可能である。
【００６９】
なお、上記第１の実施形態では、ゲートウェイ１０が有する各機能や各ＤＢ、各テーブルを、ネットワーク８０に接続されたサーバ（クラウド）が有していてもよい。
【００７０】
なお、上記第１の実施形態では、異常判定部１４が、センサ計測値及び性能値に基づいて異常の有無を判定する場合について説明したが、これに限らず、センサ計測値と性能値のいずれかに基づいて異常の有無を判定してもよい。
【００７１】
≪第２の実施形態≫
以下、第２の実施形態について、図１１に基づいて説明する。本第２の実施形態では、データ取得方式決定部１６がデータ取得方式（取得コマンド、サンプリング間隔、データ送信間隔）を決定した後、決定後のデータ取得方式を適用した後の各種性能データ（ハードウェア、ソフトウェア、通信性能）の性能値をデータ取得方式決定部１６が監視し、性能レベルに変化があった場合に、サンプリング間隔とデータ送信間隔のいずれかを調整する。
【００７２】
図１１は、本第２の実施形態における、データ取得方式決定部１６の処理を示すフローチャートである。図１１の処理では、まず、ステップＳ２００において、データ取得方式決定部１６が、データ取得方式を新たに決定するまで待機する。データ取得方式を新たに決定すると、ステップＳ２０２に移行し、データ取得方式決定部１６は、性能値取得部１２やセンサ計測値取得部１３にデータ取得方式を通知する。
【００７３】
次いで、ステップＳ２０４では、データ取得方式決定部１６は、データ取得方式を通知した後に性能値取得部１２が取得した性能データ（性能値）を性能値ＤＢ３０から取得する。次いで、ステップＳ２０６では、データ取得方式決定部１６が、データ取得方式を通知する前の性能レベルと通知した後の性能レベルとを比較する。
【００７４】
次いで、ステップＳ２０８では、データ取得方式決定部１６が、データ取得方式を通知する前の性能レベルと通知した後の性能レベルとの間に変化があるか否かを判断する。例えば、データ取得方式を通知する前が「良」で、データ取得方式を通知した後の性能レベルが「悪」であれば、変化があったと判断する。ステップＳ２０８の判断が否定された場合（変化がなかった場合）には、データ取得方式決定部１６は、ステップＳ２００に戻る。すなわち、性能レベルの変化がなかった場合には、データ取得方式（サンプリング間隔、データ送信間隔）は変更しない。一方、ステップＳ２０８の判断が肯定された場合（変化があった場合）には、ステップＳ２１０に移行する。
【００７５】
ステップＳ２１０に移行すると、データ取得方式決定部１６は、変化が悪化であったか否かを判断する。このステップＳ２１０の判断が否定された場合（良化であった場合）には、ステップＳ２００に戻る。すなわち、性能レベルが良くなった場合には、データ取得方式（サンプリング間隔、データ送信間隔）は変更しない。一方、ステップＳ２１０の判断が肯定された場合（悪化であった場合）には、ステップＳ２１２に移行する。
【００７６】
ステップＳ２１２に移行すると、データ取得方式決定部１６が、悪化した性能データのカテゴリが通信性能か否かを判断する。このステップＳ２１２の判断が否定された場合、ステップＳ２１４に移行し、データ取得方式決定部１６は、サンプリング間隔を延ばす。すなわち、ハードウェア性能もしくはソフトウェア性能が悪化した場合には、サンプリング間隔を延ばすことにより、センサノード７０やゲートウェイ１０の負荷を軽減する。なお、サンプリング間隔は、一定時間（例えば１０ｍｓ)ずつ延ばしてもよいし、変更前のサンプリング間隔と変更後のサンプリング間隔の平均に設定するようにしてもよい。その後は、ステップＳ２０２に戻り、サンプリング間隔を延ばした後のデータ取得方式を性能値取得部１２やセンサ計測値取得部１３に通知し、ステップＳ２０４以降の処理を実行する。
【００７７】
一方、ステップＳ２１２の判断が肯定された場合には、ステップＳ２１６に移行し、データ取得方式決定部１６は、サンプリングコマンドの送信間隔を延ばす。すなわち、通信性能が悪化した場合には、サンプリングコマンドの送信間隔を延ばすことにより、通信負荷を軽減する。その後は、ステップＳ２０２に戻り、サンプリングコマンドの送信間隔を延ばした後のデータ取得方式を性能値取得部１２やセンサ計測値取得部１３に通知し、ステップＳ２０４以降の処理を実行する。
【００７８】
以上、説明したように、本第２の実施形態によると、データ取得方式決定部１６は、データ取得方式を変更した後の性能値の性能レベルが変更前から悪化した場合に、データ取得方式の少なくとも１つを調整する（Ｓ２１４、Ｓ２１６）。これにより、ＩｏＴ環境に合わせて、ハードウェアや通信の負荷をより軽減することが可能となる。
【００７９】
なお、上記第２の実施形態では、性能レベルが良化した場合には、データ取得方式を調整しない場合について説明したが、これに限られるものではない。例えば、性能レベルが良化した場合に、サンプリング間隔及びサンプリングコマンドの送信間隔を短くするようにしてもよい。
【００８０】
≪第３の実施形態≫
以下、第３の実施形態について、図１２に基づいて説明する。本第３の実施形態では、性能レベルテーブル策定部１５において、異常判定部１４から異常が有りと通知された際の性能値の範囲を「悪」レベルと策定する。具体的には、本第３の実施形態では、第１の実施形態の図９の処理に代えて、図１２の処理を実行する。
【００８１】
図１２の処理では、まず、ステップＳ３００において、性能レベルテーブル策定部１５は、異常判定部１４から異常の有無を受信する。次いで、ステップＳ３０２では、性能レベルテーブル策定部１５は、異常ありか否かを判断する。ステップＳ３０２の判断が否定された場合には、ステップＳ３００に戻るが、肯定された場合には、ステップＳ３０４に移行する。
【００８２】
ステップＳ３０４に移行すると、性能レベルテーブル策定部１５は、性能値ＤＢ３０から異常ありの直近Ｘ個（１個以上）の性能値を取得する。なお、ステップＳ３０４では、性能レベルテーブル策定部１５は、異常ありと判定された時点を含む所定期間内に性能値取得部１２が取得した性能データの値（性能値）を取得しているといえる。次いで、ステップＳ３０６では、性能レベルテーブル策定部１５が、取得した性能値を正規分布化する。
【００８３】
次いで、ステップＳ３０８では、性能レベルテーブル策定部１５は、正規分布において、異常ありのときの性能値の範囲を「悪」とみなして、閾値を算出する。次いで、ステップＳ３１０では、性能レベルテーブル策定部１５は、算出した閾値と既に登録されている閾値とを比較し、良い方の値を性能レベルテーブル３４に登録する。このように、良い方の値を性能レベルテーブル３４に登録することで、過去に異常ありとなった際の性能値も含めて「悪」レベルにすることができる。その後は、ステップＳ３００に戻る。
【００８４】
以上、説明したように、本第３の実施形態によると、性能レベルテーブル策定部１５は、異常判定部１４により異常ありと判定された時点を含む所定期間内に性能値取得部１２が取得した性能データの値（性能値）に基づいて、性能レベルテーブル３４を策定する。これにより、実際に異常ありと判定された時点を含む所定期間内の性能値（Ｘ個の性能値）を「悪」レベルに属する性能値として扱い、閾値を決定するので、性能レベルテーブル３４を適切に策定できる。また、データ取得方式決定部１６は、上記のようにして策定された性能レベルテーブル３４を用いることで、データ取得方式を適切に決定することができる。
【００８５】
なお、上記第３の実施形態では、ステップＳ３０４で取得された性能値の最大値又は最小値を閾値に設定してもよい。
【００８６】
≪第４の実施形態≫
次に、第４の実施形態について、図１３、図１４に基づいて説明する。本第４の実施形態では、性能値の正規分布において「悪」レベルの占める割合が所定割合以上の場合に、性能レベルテーブル策定部１５が、異常発生回数に基づいて「悪」レベルの範囲を調整する。
【００８７】
図１３には、第４の実施形態における性能レベルテーブル策定部１５の処理がフローチャートにて示されている。なお、ステップＳ４００〜Ｓ４１０までの処理は、図１２のステップＳ３００〜３１０までの処理と同様となっている。
【００８８】
ステップＳ４００〜Ｓ４１０の処理が終了し、新たな閾値が性能レベルテーブル３４に登録されると、ステップＳ４１２に移行し、性能レベルテーブル策定部１５は、正規分布において、「悪」レベルの占める割合を算出する。
【００８９】
次いで、ステップＳ４１４では、性能レベルテーブル策定部１５が、「悪」レベルの占める割合が所定割合（例えば１５％）以上であるか否かを判断する。このステップＳ４１４の判断が否定された場合（所定割合未満であった場合）には、なにもせずに、ステップＳ４００に戻る。一方、ステップＳ４１４の判断が肯定された場合（所定割合以上であった場合）には、ステップＳ４１６に移行する。
【００９０】
ステップＳ４１６に移行すると、性能レベルテーブル策定部１５は、異常ありのときの性能値と、異常発生回数を算出する。この場合、例えば、図１４に示すような性能値と異常発生回数の関係を得ることができる。
【００９１】
次いで、ステップＳ４１８では、性能レベルテーブル策定部１５は、異常発生回数が一定数を超えた値を「悪」レベルの閾値とし、正規分布における「悪」レベルの占める割合を算出する。例えば、性能レベルテーブル策定部１５は、図１４において、異常発生回数を右側（大きい方）から見ていき、一定数（５回とする）を超えたときの値を「悪」レベルの閾値（図１４参照）とする。そして、閾値よりも小さい範囲が、正規分布において占める割合を算出する。
【００９２】
次いで、ステップＳ４２０では、正規分布における「悪」レベルの占める割合が所定割合（例えば１５％）以上であるか否かを判断する。このステップＳ４２０の判断が肯定された場合には、性能レベルテーブル策定部１５は、ステップＳ４２２に移行し、一定数を変更（例えば５から６に増加）して、ステップＳ４１６に戻る。
【００９３】
一方、ステップＳ４２０の判断が否定された場合、すなわち、正規分布における「悪」レベルの占める割合が所定割合（例えば１５％）未満である場合には、性能レベルテーブル策定部１５は、ステップＳ４２４に移行する。ステップＳ４２４では、性能レベルテーブル策定部１５は、「悪」レベルの閾値を性能レベルテーブル３４に登録する。なお、ステップＳ４２４の処理が終了した後は、ステップＳ４００に戻る。
【００９４】
以上説明したように、本第４の実施形態によると、ステップＳ４００〜Ｓ４１０において求めた閾値（「悪」レベルの閾値）では、正規分布において「悪」レベルが占める割合が所定割合以上になる場合に、異常発生回数に基づいて「悪」レベルを設定しなおすこととしている。これにより、データ取得方式決定部１６は、適切な閾値が設定された性能レベルテーブル３４に基づいてデータ取得方式を決定することが可能である。
【００９５】
なお、上記第４の実施形態では、ステップＳ４００〜Ｓ４１０が、図１２のステップＳ３００〜Ｓ３１０と同様である場合について説明したが、これに限られるものではない。例えば、ステップＳ４００〜Ｓ４１０に代えて、図９の処理（第１の実施形態の処理）を実行することとしてもよい。
【００９６】
≪第５の実施形態≫
次に、第５の実施形態について、図１５に基づいて説明する。
【００９７】
本第５の実施形態では、データ取得方式決定部１６が、運用管理アプリ等に対してユーザが入力したサンプリング間隔やデータ送信間隔を受け付け、受け付けた間隔に基づいて、データ取得方式（取得コマンド、サンプリング間隔、データ送信間隔）を調整する。
【００９８】
図１５には、運用管理アプリ等でユーザが入力に用いる入力画面の一例が示されている。図１５の入力画面には、ゲートウェイの種別や通信種別、センサノードの種別を入力することができる。また、入力画面にはサンプリング間隔及びデータ送信間隔を入力することができる。データ取得方式決定部１６は、図１５の入力画面に対してユーザが入力したサンプリング間隔やデータ送信間隔を受け付ける。そして、データ取得方式決定部１６は、受け付けたサンプリング間隔を上限値として、性能レベル毎のサンプリング間隔を策定する。また、データ取得方式決定部１６は、受け付けたデータ送信間隔を上限値として、性能レベル毎のデータ送信間隔を策定する。
【００９９】
以下、サンプリング間隔について説明する。
【０１００】
（１）異常が「無」で、性能レベルが「良」のとき
悪化傾向が判定できる程度でよいため、上限値である受け付けたサンプリング間隔を採用する。ただし、受け付けたサンプリング間隔で悪化傾向が判定できない場合は、悪化傾向が判定できる程度にサンプリング間隔を短くする。
【０１０１】
（２）異常が「無」で、性能レベルが「悪」のとき
障害が判定できる程度の性能値が必要であるため、受け付けたサンプリング間隔より一定時間（例えば１００ｍｓ）だけ短い時間を採用する。ただし、受け付けたサンプリング間隔で障害を十分判定できる場合は、受け付けたサンプリング間隔を採用する。あるいは、受け付けたサンプリング間隔より一定時間短くしても障害が判定できない場合は、障害が判定できる程度にサンプリング間隔を短くする。
【０１０２】
（３）異常が「有」で、性能レベルが「良」のとき
上記（２）の場合と同様とする。
【０１０３】
（４）異常が「有」で、性能レベルが「悪」のとき
上記（２）の場合と同様とする。
【０１０４】
なお、（１）〜（４）のいずれの場合においても、受け付けたサンプリング間隔で各種性能データを収集し、異常が有りと判定された際に、悪化傾向の判定又は障害の判定ができるか否かに基づいて、サンプリング間隔を調整することになる。
【０１０５】
次に、データ送信間隔について説明する。
【０１０６】
（１）異常が「無」で、性能レベルが「良」のとき
通信負荷をあまり上げない程度までデータ送信間隔を短くする。ただし、受け付けたデータ送信間隔で通信性能が悪化した場合は、通信性能が悪化しない程度に長くしたままの値を登録する。
【０１０７】
（２）異常が「無」で、性能レベルが「悪」のとき
通信負荷をあまり上げずかつ判定タイミングが遅れない程度であればよいため、受け付けたデータ送信間隔を採用する。
【０１０８】
（３）異常が「有」で、性能レベルが「良」のとき
上記（２）の場合と同様とする。
【０１０９】
（４）異常が「有」で、性能レベルが「悪」のとき
即座に障害を判定できる程度までデータ送信間隔を短くする必要があるため、受け付けたデータ送信間隔より一定時間（例えば１００ｍｓ）短い間隔をデータ送信間隔として採用する。
【０１１０】
なお、上記（１）〜（４）のいずれの場合においても、受け付けたデータ送信間隔に変更後、通信性能についての性能値を監視し、性能レベルが悪化するか否かで、データ送信間隔を調整することになる。
【０１１１】
なお、本第５の実施形態では、取得コマンドと、サンプリングコマンドについては、基本的には、ユーザは入力できないものとする。ただし、サンプリング間隔によっては使えない（応答時間がサンプリング間隔を超える）コマンドも存在するので、そのような場合には、サンプリング間隔に合うコマンドに変更するようにする。なお、サンプリング間隔に合うコマンドが存在しない場合には、応答時間に合わせて、サンプリング間隔を延ばすようにすればよい。
【０１１２】
上記のような調整において、受け付けたサンプリング間隔やデータ送信間隔を採用できなかった場合には、データ取得方式決定部１６は、その旨と、登録できなかった理由をユーザに対して通知する。
【０１１３】
以上、説明したように、本第５の実施形態によると、データ取得方式決定部１６は、ユーザが希望するサンプリング間隔とデータ送信間隔の入力を受け付け、受け付けたサンプリング間隔とデータ送信間隔を上限として、実際に用いるサンプリング間隔とデータ送信間隔を決定する。これにより、ユーザの希望を考慮したうえで、適切なサンプリング間隔とデータ送信間隔を決定することができる。
【０１１４】
なお、上記第５の実施形態は、第１〜第４の実施形態のいずれとも組み合わせることができる。
【０１１５】
≪第６の実施形態≫
次に、第６の実施形態について、図１６に基づいて説明する。本第６の実施形態は、データ取得方式決定部１６が、性能データそれぞれが補間可能なデータか否かを適宜判定し、補間可能な場合には、サンプリング間隔を調整する。
【０１１６】
図１６は、第６の実施形態に係るデータ取得方式決定部１６の処理を示すフローチャートである。図１６の処理は、性能値が性能値ＤＢ３０に新規登録されるたびに行われてもよいし、一定時間（例えば１時間）毎に行われてもよい。
【０１１７】
図１６の処理では、まず、ステップＳ６００において、データ取得方式決定部１６は、間引き率を初期値（＝０）に設定する。次いで、ステップＳ６０２では、データ取得方式決定部１６は、性能値ＤＢ３０から各性能データ（直近Ｘ個の性能値）を取得する。
【０１１８】
次いで、ステップＳ６０４では、データ取得方式決定部１６は、各性能データ（直近Ｘ個の性能値）の近似曲線を求め、決定係数を算出する。近似曲線としては、例えば、線形近似曲線、対数近似曲線、多項式近似曲線等を用いることができる。決定係数は、Ｒ−２乗値と呼ばれる数値であり、あてはまりの良さを示す係数である。決定係数は、０から１の間の数値であり、１に近いほどあてはまりが良いことを示す。
【０１１９】
次いで、ステップＳ６０６では、データ取得方式決定部１６は、決定係数＞閾値となる性能データがあるか否かを判断する。この場合の閾値は、例えば、０．９とすることができる。このステップＳ６０６の判断が肯定された場合には、ステップＳ６１０に移行し、データ取得方式決定部１６は、補間可能な性能データとする。そして、次のステップＳ６１２では、データ取得方式決定部１６は、新たな間引き率を定め（間引き率を引き上げ）、保存する。なお、新たな間引き率は、ステップＳ６１２が行われる度に、１／２→１／３→１／４→…と、定めるようにしてもよいし、その他の方法で新たな間引き率を定めるようにしてもよい。その後は、ステップＳ６０２に戻る。なお、間引き率が例えば１／４になった場合、サンプリング間隔は、データ取得方式決定部１６が決定したサンプリング間隔の４倍に設定される。
【０１２０】
一方、ステップＳ６０６の判断が否定された場合、すなわち、補間ができない場合には、ステップＳ６０８に移行し、データ取得方式決定部１６は、元の間引き率（初期値＝０）に戻す。なお、ステップＳ６０８では、前回ステップＳ６１２を行った直前の間引き率に戻すようにしてもよい。その後は、ステップＳ６０２に戻る。
【０１２１】
以上、説明したように、本第６の実施形態によると、データ取得方式決定部１６は、直近Ｘ個の性能値に基づいて、補間可能なデータであるかを判定し（Ｓ６０６）、補間可能と判定された場合には性能値のサンプリング間隔を長く調整する（Ｓ６１２）。このように、補間可能な場合には、サンプリング間隔を長くとり、なるべく少ない性能値を取得して、取得した性能値を補間するようにしているので、ハードウェアや通信の負荷を軽減することが可能となる。
【０１２２】
なお、上記第６の実施形態は、上述した第１〜第５の実施形態と組み合わせることが可能である。
【０１２３】
≪第７の実施形態≫
次に、第７の実施形態について、図１７に基づいて説明する。
【０１２４】
図１７には、本第７の実施形態のデータ取得方式決定部１６による処理がフローチャートにて示されている。図１７の処理では、まず、ステップＳ７００において、データ取得方式決定部１６は、異常判定部１４から、異常ありのセンサノード７０の性能データのデータ取得方式を決定する。なお、この場合のデータ取得方式決定方法は、上述した第１の実施形態と同様である。
【０１２５】
次いで、ステップＳ７０２では、データ取得方式決定部１６は、データ取得方式を決定した性能データと同じカテゴリの他の性能データのデータ取得方式も同様に（合わせて）決定する。例えば、ステップＳ７００において、あるセンサノード（第１のセンサノードとする）のカテゴリ「通信性能」に属する性能データ（例えばＲＳＳＩ）のデータ取得方式を決定した場合には、データ取得方式決定部１６は、第１のセンサノードのカテゴリ「通信性能」に属するＲＳＳＩ以外の性能データ（例えばＬＱ、応答時間など）のデータ取得方式をＲＳＳＩのデータ取得方式と同一のデータ取得方式に決定する。
【０１２６】
次いで、ステップＳ７０４では、データ取得方式決定部１６は、性能データのカテゴリが通信性能か否かを判断する。このステップＳ７０４の判断が肯定された場合、ステップＳ７０６に移行し、否定された場合、ステップＳ７０８に移行する。
【０１２７】
ステップＳ７０６に移行した場合（カテゴリが通信性能の場合）、データ取得方式決定部１６は、センサノードが接続しているゲートウェイや無線中継器から同時に接続している他のセンサノードＩＤを取得する。その後は、ステップＳ７１０に移行する。一方、ステップＳ７０８に移行した場合（カテゴリが通信性能以外の場合）、データ取得方式決定部１６は、不図示のセンサノード管理情報から同時に接続している同スペックの他のセンサノードＩＤを取得する。その後は、ステップＳ７１０に移行する。
【０１２８】
ステップＳ７０６又はＳ７０８を経て、ステップＳ７１０に移行すると、データ取得方式決定部１６は、ステップＳ７０６又はＳ７０８で取得したセンサノードＩＤの同じカテゴリの性能データのデータ取得方式も同様に（合わせて）決定する。例えば、ステップＳ７００において、第１のセンサノードのカテゴリ「通信性能」に属するＲＳＳＩのデータ取得方式を決定したとする。この場合、データ取得方式決定部１６は、第１のセンサノードと同時に接続されている第２のセンサノードのカテゴリ「通信性能」の性能データのデータ取得方式を、第１のセンサノードのデータ取得方式と同一のデータ取得方式に決定する。また、例えば、ステップＳ７００において、第１のセンサノードのカテゴリ「ハードウェア性能」に属する性能データのデータ取得方式を決定したとする。この場合、データ取得方式決定部１６は、第１のセンサノードと同スペックの第２のセンサノードのカテゴリ「ハードウェア性能」の性能データのデータ取得方式を第１のセンサノードのデータ取得方式と同一のデータ取得方式に決定する。
【０１２９】
以上のようにすることで、異常のあったセンサノードにおいて決定したデータ取得方式を、同じカテゴリの性能データのデータ取得方式や、異常のあったセンサノードと同様の異常が発生する可能性のあるセンサノードにおけるデータ取得方式にも流用するので、ＩｏＴ環境に合わせて、より高精度に性能の悪化や障害の検知及び判定が可能となる。
【０１３０】
なお、本第７の実施形態は、上述した第１〜第６の実施形態の少なくとも１つと組み合わせることが可能である。
【０１３１】
なお、上記第１〜第７の実施形態では、センサノード７０が下水に関するデータを計測する場合について説明したが、これに限らず、センサノード７０は、その他の様々なデータを計測することとしてもよい。
【０１３２】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録しておくことができる。
【０１３３】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３４】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１３５】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【０１３６】
なお、以上の第１〜第７の実施形態の説明に関して、更に以下の付記を開示する。
（付記１）  センサノードを用いたデータ取得についての取得方式を決定するデータ取得方式決定部と、
前記データ取得方式決定部が決定した取得方式に従って、前記センサノードで計測された計測データ及び前記センサノードの性能に関連する性能データを取得するデータ取得部と、
前記データ取得部が取得した前記計測データ及び／又は前記性能データに基づいて、異常発生の有無を判定する異常判定部と、
前記データ取得部が取得した前記性能データに基づいて、前記性能データのデータ値の出現範囲をデータ値の良否の度合ごとに複数のレベル範囲に区分けし、記憶部に記憶する区分け部と、を備え、
前記データ取得方式決定部は、前記データ取得部が取得した前記性能データのデータ値が含まれるレベル範囲を前記記憶部を参照して決定し、決定したレベル範囲と前記異常発生の有無との組み合わせに基づいて、前記取得方式を決定する、ことを特徴とする情報処理装置。
（付記２）  前記取得方式は、前記センサノードにおいて前記計測データ及び／又は前記性能データを取得するためのコマンド、前記センサノードにおける前記計測データ及び／又は前記性能データのサンプリング間隔、前記センサノードからの前記計測データ及び／又は性能データの送信間隔、の少なくとも１つを含むことを特徴とする付記１に記載の情報処理装置。
（付記３）  前記区分け部は、予め定められたタイミングで前記区分けを繰り返し実行することを特徴とする付記１又は２に記載の情報処理装置。
（付記４）  前記異常判定部の判定結果に基づいて、障害を判定し、出力する出力部を更に備える付記１〜３のいずれかに記載の情報処理装置。
（付記５）  前記データ取得方式決定部は、決定した取得方式を前記データ取得部が用いる前と用いた後の前記性能データのデータ値を取得し、取得した前記データ値が含まれるレベル範囲の異同に基づいて、前記取得方式を調整する、ことを特徴とする付記１〜４のいずれかに記載の情報処理装置。
（付記６）  前記データ取得方式決定部は、決定した取得方式を前記データ取得部が用いた後の前記性能データのデータ値が含まれるレベル範囲が、用いる前の前記性能データのデータ値が含まれるレベル範囲よりも悪化した場合に、前記取得方式を調整することを特徴とする付記５に記載の情報処理装置。
（付記７）  前記区分け部は、前記異常判定部により異常ありと判定された時点を含む所定期間内に前記データ取得部が取得した前記性能データのデータ値に基づいて区分けを実行する、ことを特徴とする付記１〜６のいずれかに記載の情報処理装置。
（付記８）  前記区分け部は、前記異常判定部により異常ありと判定されたときの性能データのデータ値を取得し、各データ値の取得数に基づいて、区分けを実行することを特徴とする付記１〜７のいずれかに記載の情報処理装置。
（付記９）  前記データ取得方式決定部は、ユーザが希望する取得方式の入力を受け付け、前記ユーザが希望する取得方式に基づいて、前記センサノードを用いたデータ取得についての取得方式を決定する、ことを特徴とする付記１〜８のいずれかに記載の情報処理装置。
（付記１０）  前記取得方式に前記センサノードにおける前記性能データのサンプリング間隔が含まれる場合には、
前記データ取得方式決定部は、前記性能データが補間可能なデータであるかを判定し、補間可能な場合に前記性能データのサンプリング間隔を長く調整する、ことを特徴とする付記１〜９のいずれかに記載の情報処理装置。
（付記１１）  前記データ取得方式決定部は、所定期間内に取得された前記性能データのデータ値の近似曲線を求め、該近似曲線の決定係数が閾値以上か否かに基づいて、前記性能データが補間可能なデータであるかを判定する、ことを特徴とする付記１０に記載の情報処理装置。
（付記１２）  前記データ取得方式決定部は、第１のセンサノードの第１の性能データの取得方式を決定した場合に、前記第１のセンサノードと関連する機器の前記第１の性能データの取得方式及び／又は前記第１のセンサノードの前記第１の性能データに関連する第２の性能データの取得方式を、前記第１のセンサノードの前記第１の性能データの取得方式と同一の取得方式に決定する、ことを特徴とする付記１〜１１のいずれかに記載の情報処理装置。
（付記１３）  センサノードを用いたデータ取得についての取得方式を決定し、
決定した前記取得方式に従って、前記センサノードで計測された計測データ及び前記センサノードの性能に関連する性能データを取得し、
取得した前記計測データ及び／又は前記性能データに基づいて、異常発生の有無を判定し、
取得した前記性能データに基づいて、前記性能データのデータ値の出現範囲をデータ値の良否の度合ごとに複数のレベル範囲に区分けし、記憶部に記憶する、処理をコンピュータが実行し、
前記取得方式を決定する処理では、取得した前記性能データのデータ値が含まれるレベル範囲を前記記憶部を参照して決定し、決定したレベル範囲と前記異常発生の有無との組み合わせに基づいて、前記取得方式を決定する、ことを特徴とする情報処理方法。
（付記１４）  センサノードを用いたデータ取得についての取得方式を決定し、
決定した前記取得方式に従って、前記センサノードで計測された計測データ及び前記センサノードの性能に関連する性能データを取得し、
取得した前記計測データ及び／又は前記性能データに基づいて、異常発生の有無を判定し、
取得した前記性能データに基づいて、前記性能データのデータ値の出現範囲をデータ値の良否の度合ごとに複数のレベル範囲に区分けし、記憶部に記憶する、処理をコンピュータに実行させ、
前記取得方式を決定する処理では、取得した前記性能データのデータ値が含まれるレベル範囲を前記記憶部を参照して決定し、決定したレベル範囲と前記異常発生の有無との組み合わせに基づいて、前記取得方式を決定する、ことを特徴とする情報処理プログラム。
【符号の説明】
【０１３７】
１０  ゲートウェイ（情報処理装置）
１２  性能値取得部（データ取得部の一部）
１３  センサ計測値取得部（データ取得部の一部）
１４  異常判定部
１５  性能レベルテーブル策定部（区分け部）
１６  データ取得方式決定部
１７  障害判定部（出力部の一部）
１８  判定結果通知部（出力部の一部）
３４  性能レベルテーブル（記憶部）
７０  センサノード
【図１】
2018097527.tif 000003
【図２】
2018097527.tif 000004
【図３】
2018097527.tif 000005
【図４】
2018097527.tif 000006
【図５】
2018097527.tif 000007
【図６】
2018097527.tif 000008
【図７】
2018097527.tif 000009
【図８】
2018097527.tif 000010
【図９】
2018097527.tif 000011
【図１０】
2018097527.tif 000012
【図１１】
2018097527.tif 000013
【図１２】
2018097527.tif 000014
【図１３】
2018097527.tif 000015
【図１４】
2018097527.tif 000016
【図１５】
2018097527.tif 000017
【図１６】
2018097527.tif 000018
【図１７】
2018097527.tif 000019