(57)【要約】  システム（１００）の障害が発生するタイミングを予測可能とすることを図る。分析装置（１０１）は、複数のノード（＃１〜Ｎ）のうち、期間（ｐｒｄ）の間に故障したノードの個数（Ｎｔ）が２［個］であると検出する。続けて、分析装置（１０１）は、検出した故障したノードの個数と期間（ｐｒｄ）とに基づいて、期間（ｐｒｄ）以降に単位時間当たりに故障するノードの個数（Ｎｐｅｒ）を算出して、故障するノードの個数（Ｎｐｅｒ）を出力する。システム（１００）の運用者は、故障するノードの個数（Ｎｐｅｒ）を閲覧して、たとえば、システム（１００）にノードを追加すべきか否かを判断する。たとえば、故障するノードの個数（Ｎｐｅｒ）がシステム（１００）の運用者の想定した値より大きければ、システム（１００）の運用者は、システム（１００）にノードを追加すべきと判断する。
2015104809.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
複数のノードのうちの一部のノードが故障しても機能を実現可能なシステムを運用中のいずれかの期間に前記複数のノードのうちの故障したノードの個数を検出し、
検出した前記故障したノードの個数と前記期間とに基づいて、前記期間以降に単位時間当たりに故障するノードの個数を算出する、
処理を実行することを特徴とする分析方法。
【請求項２】
前記コンピュータが、
算出した前記単位時間当たりに故障するノードの個数と、前記複数のノードのうちの前記期間の終了時刻に故障していないノードの個数とに基づいて、前記期間以降のいずれかの時刻に故障していないノードの個数を算出する、
処理を実行することを特徴とする請求項１に記載の分析方法。
【請求項３】
前記コンピュータが、
前記単位時間当たりに故障するノードの個数と、前記複数のノードのうちの前記期間の終了時刻に故障していないノードの個数とに基づいて、前記期間以降のいずれかの時刻に故障していないノードの個数が、予め記憶された前記機能を実現可能なノードの個数を示す所定数未満となるか否かを判断する、
処理を実行することを特徴とする請求項１または２に記載の分析方法。
【請求項４】
前記コンピュータが、
前記時刻に故障していないノードの個数が前記所定数未満であると判断した場合に、前記時刻に故障していないノードの個数と前記所定数とに基づいて、前記時刻までに前記システムに追加すべきノードの個数を算出する、
処理を実行することを特徴とする請求項３に記載の分析方法。
【請求項５】
前記追加すべきノードの個数を算出する処理は、
予め記憶されたノードの良品率と、前記時刻に故障していないノードの個数と、前記所定数とに基づいて、前記追加すべきノードの個数を算出することを特徴とする請求項４に記載の分析方法。
【請求項６】
前記コンピュータが、
ノード製造時における製造数単位であるロットごとに、予め記憶されたロット単位のノードの良品率と、前記時刻に故障していないノードの個数と、前記所定数とに基づいて、前記追加すべきノードの個数を算出し、
前記ロットごとに、予め記憶されたロット単位のノードの単価と、算出した前記追加すべきノードの個数とに基づいて、前記追加すべきノードの個数分のノードを前記システムに追加する際のコストを算出することを特徴とする請求項４に記載の分析方法。
【請求項７】
前記コンピュータが、
前記複数のノードのうちの前記終了時刻に故障していないノードの位置情報を受け付け、
前記終了時刻に故障していないノードのうち、算出した前記時刻に故障していないノードの個数分、前記時刻に故障していないノードをランダムに設定した場合に、受け付けた前記終了時刻に故障していないノードの位置情報に基づいて、前記時刻に故障していないノードによるマルチホップ通信を模擬するシミュレーションを実行し、
前記シミュレーションの実行結果から得られる通信可能なノードの個数と、予め記憶された前記機能を実現可能なノードの個数を示す所定数とを比較することにより、前記機能が実現可能か否かを判断する、
処理を実行することを特徴とする請求項２〜６のいずれか一つに記載の分析方法。
【請求項８】
前記シミュレーションを実行する処理は、
前記時刻に故障していないノードをランダムに設定して前記シミュレーションを所定回数実行し、
前記機能が実現可能か否かを判断する処理は、
前記所定回数実行した前記シミュレーションの実行結果ごとに、当該実行結果から得られる通信可能なノードの個数と、前記所定数とを比較することにより、前記機能が実現可能であるか否かを判断する、
ことを特徴とする請求項７に記載の分析方法。
【請求項９】
前記コンピュータが、
前記所定回数と、前記終了時刻に故障していないノードから前記時刻に故障していないノードを設定する場合にとり得る組合せの総数とに基づいて、前記機能が実現可能か否かを判断する処理の結果の尤もらしさを示す尤度を算出する、
ことを特徴とする請求項８に記載の分析方法。
【請求項１０】
前記検出する処理は、
前記複数のノードのうちの前記期間の開始時刻に通信可能なノードの個数と前記期間の終了時刻に通信可能なノードの個数との差分を前記故障したノードの個数として検出することを特徴とする請求項１〜９のいずれか一つに記載の分析方法。
【請求項１１】
コンピュータに、
複数のノードのうちの一部のノードが故障しても機能を実現可能なシステムを運用中のいずれかの期間に前記複数のノードのうちの故障したノードの個数を検出し、
検出した前記故障したノードの個数と前記期間とに基づいて、前記期間以降に単位時間当たりに故障するノードの個数を算出する、
処理を実行することを特徴とする分析プログラム。
【請求項１２】
複数のノードのうちの一部のノードが故障しても機能を実現可能なシステムを運用中のいずれかの期間に前記複数のノードのうちの故障したノードの個数を検出し、検出した前記故障したノードの個数と前記期間とに基づいて、前記期間以降に単位時間当たりに故障するノードの個数を算出する制御部を、
有することを特徴とする分析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分析方法、分析プログラム、および分析装置に関する。
【背景技術】
【０００２】
従来、システムの状態を分析して、システムの障害を検出する技術がある。関連する先行技術として、たとえば、センサーノードのオペレーティングシステムを保護するため、センサーノードのデータメモリアドレス空間にアプリケーション障害ドメインを作るものがある。また、ネットワークシミュレータにより事前予測を行う場合に、入力する実稼働状態における伝送路の負荷データとしてコマンド・レスポンス応答特性情報を用いる技術がある。（たとえば、下記特許文献１、２を参照。）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００９−５２２６６４号公報
【特許文献２】特開平７−５８７６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、システムに障害が発生するタイミングを検出することは難しい。【０００５】
１つの側面では、本発明は、システムの障害が発生するタイミングを予測可能とすることができる分析方法、分析プログラム、および分析装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、複数のノードのうちの一部のノードが故障しても機能を実現可能なシステムを運用中のいずれかの期間に複数のノードのうちの故障したノードの個数を検出し、検出した故障したノードの個数と期間とに基づいて、期間以降に単位時間当たりに故障するノードの個数を算出する分析方法、分析プログラム、および分析装置が提案される。
【発明の効果】
【０００７】
本発明の一態様によれば、システムの障害が発生するタイミングを予測可能とすることができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態１にかかるシステムの動作例を示す説明図である。
【図２】図２は、実施の形態１にかかるセンサーネットワークシステムの接続例を示す説明図である。
【図３】図３は、サーバのハードウェア構成例を示すブロック図である。
【図４】図４は、データ集約装置のハードウェア構成例を示すブロック図である。
【図５】図５は、ノードのハードウェア構成例を示すブロック図である。
【図６】図６は、実施の形態１にかかるサーバの機能構成例を示すブロック図である。
【図７】図７は、センサーネットワークシステムの開発から運用までのシナリオを示す説明図である。
【図８】図８は、良品率ＤＢの記憶内容の一例を示す説明図である。
【図９】図９は、全品検査品と抜き取り検査品との良品率の時間経過の一例を示す説明図である。
【図１０】図１０は、抜き取り検査品を冗長数散布した際の運用中良品率の時間経過を示す説明図である。
【図１１】図１１は、ノードを追加散布すべきか否かの判断と、追加すべきノードの個数の一例を示す説明図である。
【図１２】図１２は、ノードの追加散布の一例を示す説明図である。
【図１３】図１３は、ノードによるセンサーネットワークシステム運用処理手順の一例を示すフローチャートである。
【図１４】図１４は、分析処理手順の一例を示すフローチャートである。
【図１５】図１５は、実施の形態２にかかるセンサーネットワークシステムの接続例を示す説明図である。
【図１６】図１６は、シミュレータの機能構成例を示すブロック図である。
【図１７】図１７は、故障するノードをランダムに変えた場合のシミュレーションの結果の一例を示す説明図である。
【図１８】図１８は、ノードが構築する通信経路の変更の一例を示す説明図（その１）である。
【図１９】図１９は、ノードが構築する通信経路の変更の一例を示す説明図（その２）である。
【図２０】図２０は、ノードが構築する通信経路の変更の一例を示す説明図（その３）である。
【図２１】図２１は、ノードが構築する通信経路の変更の一例を示す説明図（その４）である。
【図２２】図２２は、機能維持指標値出力処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に図面を参照して、開示の分析方法、分析プログラム、および分析装置の実施の形態を詳細に説明する。
【００１０】
（実施の形態１の説明）
図１は、実施の形態１にかかるシステムの動作例を示す説明図である。実施の形態１にかかるシステム１００は、複数のノード＃１〜Ｎを含む。Ｎは、２以上の整数である。複数のノード＃１〜Ｎの各々のノードは、通信装置である。システム１００は、複数のノード＃１〜Ｎに処理を実行させるシステムである。たとえば、複数のノード＃１〜Ｎが、所定領域に散布されており、システム１００は、複数のノードの各ノードが有するセンサーから取得した計測結果を取得して、システム１００を利用する利用者に、所定領域の情報を提供するという機能を有する。また、システム１００は、複数のノード＃１〜Ｎに、ある処理を分散した処理を実行させて、ある時間以内に、ある処理の結果を利用者に提供するという機能を有してもよい。
【００１１】
ここで、システム１００は、複数のノード＃１〜Ｎのうちの一部のノードが故障しても機能を実現可能なシステムである。具体的に、複数のノードの個数を示すＮが、機能を実現可能なノードの個数より多ければ、システム１００は、複数のノード＃１〜Ｎのうちの一部のノードが故障しても機能を実現可能なシステムとなる。ここで、故障したノードとは、通信可能でないノードである。たとえば、通信可能でないノードとなる場合の一例としては、経年劣化により、ノードを形成するハードウェアの一部が破損した場合である。また、通信可能でないノードとなる場合の他の例としては、複数のノード＃１〜Ｎの電力が無くなった場合である。
【００１２】
ところで、一般的な工業製品は、機能を維持できる保障期間が設定される場合がある。ここで、工業製品の運用期間が保障期間を超えたとしても、工業製品はそのまま機能を維持できることが多いが、保障期間を超えた後の次の瞬間に故障する可能性があるため、どのタイミングで機能を維持できなくなるか予測することは難しい。
【００１３】
そこで、本実施の形態にかかる分析装置１０１は、複数のノード＃１〜Ｎの一部のノードが故障しても機能を実現可能なシステム１００の運用中の期間内で故障したノードの個数から、期間以降に単位時間当たりに故障するノードの個数を算出する。これにより、分析装置１０１は、システム１００の障害の発生タイミングが予測可能になる。たとえば、分析装置１０１は、期間以降に単位時間当たりに故障するノードの個数を用いて、故障していないノードの個数が、機能が維持できるノードの個数を下回る時刻をシステム１００の障害の発生タイミングとして算出することができる。また、システム１００の運用者が、期間以降に単位時間当たりに故障するノードの個数を閲覧することにより、システム１００の障害の発生タイミングを予測することもできる。
【００１４】
分析装置１０１は、複数のノード＃１〜Ｎの一部のノードが故障した際に、システム１００の障害の発生タイミングを予測可能にする、一部のノードが故障した期間以降に単位時間当たりに故障するノードの個数を算出するコンピュータである。分析装置１０１とシステム１００との関係について、分析装置１０１は、システム１００に直接接続し、故障したノードの個数を検出してもよい。または、システム１００が外部のネットワークから遮断された状態であるとする。このとき、システム１００に接続可能な携帯端末が、複数のノード＃１〜Ｎのうち、故障したノードの個数を取得し、分析装置１０１は、前述の携帯端末から、故障したノードの個数を検出してもよい。
【００１５】
また、故障したノードの個数の検出について、分析装置１０１が検出してもよいし、故障したノードに隣接するノードが検出してもよい。分析装置１０１が検出する例としては、分析装置１０１が複数のノード＃１〜Ｎから定期的にデータを受け付けるとする。このとき、ある時刻におけるデータ数より、ある時刻の次の時刻におけるデータ数が少ない際に、分析装置１０１は、ある時刻におけるデータ数と次の時刻におけるデータ数との差分を、故障したノードの個数として検出する。また、故障したノードに隣接するノードが検出する例としては、あるノードの隣接するノードから、ある時刻においてデータを受け付けたにも関わらず、次の時刻においてデータを受け付けない場合、あるノードは、隣接するノードが故障したとして検出する。
【００１６】
図１の（Ａ）の例では、分析装置１０１は、システム１００に直接接続する例を示す。そして、図１の（Ａ）の例では、いずれかの期間ｐｒｄの間に、ノード＃１、３が故障した場合を示す。いずれかの期間ｐｒｄは、システム１００の運用中の期間であればいつでもよい。たとえば、いずれかの期間ｐｒｄは、システム１００の運用開始時刻から現時刻までの期間でもよいし、システム１００が運用開始してから、故障したノードを初めて検出した時刻から現時刻までの期間でもよい。
【００１７】
分析装置１０１は、システム１００を運用中のいずれかの期間に複数のノードのうちの故障したノードの個数を検出する。図１の（Ａ）の例では、分析装置１０１は、期間ｐｒｄの間に故障したノードの個数Ｎｔが２［個］であると検出する。続けて、分析装置１０１は、検出した故障したノードの個数と期間ｐｒｄとに基づいて、期間ｐｒｄ以降に単位時間当たりに故障するノードの個数Ｎｐｅｒを算出する。単位時間は、どのような時間間隔でもよい。たとえば、システム１００は、単位時間を、１日、１０日、１か月等に設定することができる。
【００１８】
図１の（Ｂ）は、単位時間当たりに故障する個数を算出する値を、グラフ１１０を用いて図示したものである。グラフ１１０の横軸は、運用期間である。グラフ１１０の縦軸は、故障していないノードの個数を示す。たとえば、分析装置１０１は、Ｎｐｅｒ＝Ｎｔ／ｐｒｄにより算出する。
【００１９】
Ｎｐｅｒを算出後、分析装置１０１は、Ｎｐｅｒを出力する。システム１００の運用者は、Ｎｐｅｒを閲覧して、たとえば、システム１００にノードを追加すべきか否かを判断する。たとえば、Ｎｐｅｒがシステム１００の運用者の想定した値より大きければ、システム１００の運用者は、システム１００にノードを追加すべきと判断する。
【００２０】
次に、システム１００をセンサーネットワークシステムに適用した例を、図２を用いて説明する。
【００２１】
図２は、実施の形態１にかかるセンサーネットワークシステムの接続例を示す説明図である。センサーネットワークシステム２００は、複数のノード＃１〜Ｎが互いに通信を行い、ノードのデータを収集することができるシステムである。センサーネットワークシステム２００は、複数のノード＃１〜Ｎと、集約装置ＡＧと、ゲートウェイＧＷと、サーバ２０１と、データ分析コンピュータ２０２とを有する。サーバ２０１と、データ分析コンピュータ２０２とはネットワークＮＥＴにより接続される。ここで、サーバ２０１は、図１における分析装置１０１に相当する。
【００２２】
センサーネットワークシステム２００は、斜面などのセンシングフィールドＡＲに複数のノードを設け、ノードに含まれるセンサーが計測する圧力の値に基づいて、センシングフィールドＡＲの崩落を監視する。また、ノードは、斜面に限らず、たとえば、圃場や建造物などのコンクリート、土、水、空気などの物質で満たされた領域に設けられてもよい。また、ノードに含まれるセンサーは、たとえば、温度や水分量、振動の大きさなどを計測してもよい。
【００２３】
複数のノードの各ノードは、定期的に設定される通信経路に従ってマルチホップ通信によりデータを送受信する。通信経路は、センサーネットワークシステム２００の運用開始時に設定されたり、ノードが追加散布された際に設置されたりする。
【００２４】
集約装置ＡＧは、受信した収集データを集約し、集約したデータをサーバ２０１に送信する装置である。集約装置ＡＧは、センサーを有するノードであってもよい。
【００２５】
ゲートウェイＧＷは、サーバ２０１からの信号を集約装置ＡＧへ送信し、また、集約装置ＡＧからの信号をサーバ２０１へ送信する装置である。
【００２６】
サーバ２０１は、センサーネットワークシステム２００に散布されたノードのうち、単位時間当たりに故障したノードの個数を算出するコンピュータである。
【００２７】
データ分析コンピュータ２０２は、収集したデータを用いて、センシングフィールドＡＲの状態を分析するコンピュータである。
【００２８】
（サーバ２０１のハードウェア構成例）
図３は、サーバのハードウェア構成例を示すブロック図である。図３において、サーバ２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、を含む。また、サーバ２０１は、ディスクドライブ３０４およびディスク３０５と、通信インターフェース３０６と、を含む。また、ＣＰＵ３０１〜通信インターフェース３０６はバス３０７によってそれぞれ接続される。
【００２９】
ＣＰＵ３０１は、サーバ２０１の全体の制御を司る演算処理装置である。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される揮発性メモリである。
【００３０】
ディスクドライブ３０４は、ＣＰＵ３０１の制御に従ってディスク３０５に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ３０４には、たとえば、磁気ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク３０５は、ディスクドライブ３０４の制御で書き込まれたデータを記憶する不揮発性メモリである。たとえばディスクドライブ３０４が磁気ディスクドライブである場合、ディスク３０５には、磁気ディスクを採用することができる。また、ディスクドライブ３０４がソリッドステートドライブである場合、ディスク３０５には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
【００３１】
通信インターフェース３０６は、ネットワークと内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース３０６は、通信回線を通じてネットワークを介して他の装置に接続される。通信インターフェース３０６には、たとえば、モデムやＬＡＮアダプタなどを採用することができる。
【００３２】
また、センサーネットワークシステム２００の運用者が、直接サーバ２０１を操作する場合、サーバ２０１は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。
【００３３】
また、データ分析コンピュータ２０２のハードウェア構成については、図示しないが、ＣＰＵ、ＲＯＭ、ＲＡＭ、ディスクドライブ、ディスク、通信インターフェース、ディスプレイ、キーボード、マウスを有する。
【００３４】
（集約装置ＡＧのハードウェア構成例）
図４は、データ集約装置のハードウェア構成例を示すブロック図である。集約装置ＡＧは、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、大容量不揮発メモリ４０４と、Ｉ／Ｏ回路４０５と、無線通信回路４１１と、アンテナ４１２と、通信インターフェース４１３と、を有する。ＣＰＵ４０１は、集約装置ＡＧ全体の制御を司る演算処理装置である。また、集約装置ＡＧは、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、大容量不揮発メモリ４０４と、Ｉ／Ｏ回路４０５と、を接続するバス４０６を有する。集約装置ＡＧは、ノードと異なり外部電源に基づき動作してもよいし、内部電源に基づき動作してもよい。大容量不揮発メモリ４０４は、読書可能な記憶装置であって、電力供給が途絶えたときにおいても書き込まれた所定のデータを保持する。たとえば、大容量不揮発メモリ４０４は、ＨＤＤ、フラッシュメモリ等が採用される。
【００３５】
また、Ｉ／Ｏ回路４０５には、無線通信回路４１１およびアンテナ４１２と、通信インターフェース４１３が接続される。これにより、集約装置ＡＧは、無線通信回路４１１およびアンテナ４１２を介して、周辺のノードと無線通信することができる。さらに、集約装置ＡＧは、通信インターフェース４１３を介して、ＩＰのプロトコル処理などにより、サーバ２０１と通信を行うことができる。
【００３６】
（ノードのハードウェア構成例）
図５は、ノードのハードウェア構成例を示すブロック図である。図５の例では、複数のノード＃１〜Ｎのうち、ノード＃１を例として、ノード＃１のハードウェア構成を示す。ノード＃１以外の他のノードも、ノード＃１と同様のハードウェア構成となる。ノード＃１は、マイクロプロセッサ（以下、「ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）」と称する。）５０１と、センサー５０２と、無線通信回路５０３と、ＲＡＭ５０４と、ＲＯＭ５０５と、不揮発メモリ５０６と、アンテナ５０７と、ハーベスタ５０８と、バッテリ５０９と、を有する。ノード＃１は、ＭＣＵ５０１と、センサー５０２と、無線通信回路５０３と、ＲＡＭ５０４と、ＲＯＭ５０５と、不揮発メモリ５０６と、を接続するバス５１０を有する。
【００３７】
ＭＣＵ５０１は、ノード＃１の全体の制御を司る演算処理装置である。たとえば、ＭＣＵ５０１は、センサー５０２が検出したデータを処理する。センサー５０２は、設置箇所における所定の変位量を検出する装置である。センサー５０２は、たとえば、設置箇所の圧力を検出する圧電素子や、温度を検出する素子、光を検出する光電素子などを用いることができる。アンテナ５０７は、親機と無線通信する電波を送受信する。無線通信回路５０３（ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ））は、受信した無線電波を受信信号として出力し、送信信号を無線電波としてアンテナ５０７を介して送信する。無線通信回路５０３は、数１０ｃｍ付近にある他ノードと通信可能とする短距離無線が採用された通信回路でよい。
【００３８】
ＲＡＭ５０４は、ＭＣＵ５０１における処理の一時データを格納する記憶装置である。ＲＯＭ５０５は、ＭＣＵ５０１が実行する処理プログラムなどを格納する記憶装置である。不揮発メモリ５０６は、読書可能な記憶装置であって、電力供給が途絶えたときにおいても書き込まれた所定のデータを保持する。たとえば、不揮発メモリ５０６は、フラッシュメモリ等が採用される。
【００３９】
ハーベスタ５０８は、図１で説明したエナジーハーベスト素子であり、ノード＃１の設置箇所における外部環境、たとえば、光、振動、温度、無線電波（受信電波）などのエネルギー変化に基づき発電を行う装置である。また、ハーベスタ５０８は、センサー５０２によって検出された変位量に応じて発電を行ってもよい。バッテリ５０９は、ハーベスタ５０８により発電された電力を蓄える装置である。すなわち、ノード＃１は、外部電源などが不要であり、動作に要求される電力を自装置の内部で生成する。
【００４０】
（サーバ２０１の機能構成例）
図６は、実施の形態１にかかるサーバの機能構成例を示すブロック図である。サーバ２０１は、制御部６００と、良品率ＤＢ６１０と、を含む。制御部６００は、検出部６０１と、第１算出部６０２と、判断部６０３と、第２算出部６０４と、第３算出部６０５とを含む。制御部６００は、記憶装置に記憶された実施の形態１における分析プログラムをＣＰＵ３０１が実行することにより、制御部６００の機能を実現する。記憶装置とは、具体的には、たとえば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、ディスク３０５などである。また、検出部６０１〜第３算出部６０５の処理結果は、ＣＰＵ３０１が有するレジスタや、ＲＡＭ３０３等に記憶される。
【００４１】
また、サーバ２０１は、良品率ＤＢ６１０にアクセス可能である。良品率ＤＢ６１０は、ＲＡＭ３０３、ディスク３０５といった記憶装置に格納される。良品率ＤＢ６１０の記憶内容の一例は、図８で後述する。
【００４２】
検出部６０１は、センサーネットワークシステム２００を運用中のいずれかの期間に複数のノード＃１〜Ｎのうちの故障したノードの個数を検出する。たとえば、検出部６０１は、複数のノード＃１〜Ｎのうちのいずれかの期間の開始時刻に通信可能なノードの個数と、いずれかの期間の終了時刻に通信可能なノードの個数との差分を、故障したノードの個数として検出する。
【００４３】
第１算出部６０２は、検出部６０１が検出した故障したノードの個数といずれかの期間とに基づいて、いずれかの期間以降に単位時間当たりに故障するノードの個数を算出する。
【００４４】
また、第１算出部６０２は、単位時間当たりに故障するノードの個数と、複数のノード＃１〜Ｎのうちのいずれかの期間の終了時刻に故障していないノードの個数とに基づいて、いずれかの期間以降のいずれかの時刻に故障していないノードの個数を算出してもよい。ここで、故障していないノードとは、通信可能なノードである。以下、故障していないノードを、「運用中のノード」と呼称する場合がある。
【００４５】
たとえば、単位時間当たりに故障するノードの個数がＮｔであり、複数のノード＃１〜Ｎのうちのいずれかの期間の終了時刻Ｔｅｎｄに故障していないノードの個数Ｎｅｎｄとする。このとき、第１算出部６０２は、いずれかの時刻ｔに故障していないノードの個数を、Ｎｅｎｄ−Ｎｔ×（ｔ−Ｔｅｎｄ）／単位時間というように算出する。
【００４６】
判断部６０３は、単位時間当たりに故障するノードの個数と複数のノードのうちのいずれかの期間の終了時刻に故障していないノードの個数とに基づいて、いずれかの期間以降のいずれかの時刻に故障していないノードの個数が、所定数未満となるか否かを判断する。ここで、所定数は、機能を実現可能なノードの個数を示す数値である。以下、所定数を、「機能維持の閾値」と称する。機能維持の閾値は、良品率ＤＢ６１０や、ＲＡＭ３０３等に記憶される。いずれかの期間以降のいずれかの時刻に故障していないノードの個数について、判断部６０３は、第１算出部６０２と同様の方法で求める。
【００４７】
判断部６０３がいずれかの時刻に故障していないノードの個数が機能維持の閾値未満であると判断したとする。この場合に、第２算出部６０４は、いずれかの時刻に故障していないノードの個数と機能維持の閾値とに基づいて、いずれかの時刻までにセンサーネットワークシステム２００に追加すべきノードの個数を算出する。具体的な、追加すべきノードの個数の算出例は、図１１で後述する。
【００４８】
また、第２算出部６０４は、予め良品率ＤＢ６１０に記憶されたノードの良品率と、いずれかの時刻に故障していないノードの個数と、機能維持の閾値とに基づいて、追加すべきノードの個数を算出してもよい。また、第２算出部６０４は、ノード製造時における製造数単位であるロットごとに、ロット単位のノードの良品率と、いずれかの時刻に故障していないノードの個数と、機能維持の閾値とに基づいて、追加すべきノードの個数を算出してもよい。良品率に基づく追加すべきノードの個数の算出例も、図１１で後述する。
【００４９】
第３算出部６０５は、ロットごとに、予め良品率ＤＢ６１０に記憶されたロット単位のノードの単価と、算出した追加すべきノードの個数とに基づいて、追加すべきノードの個数分のノードをセンサーネットワークシステム２００に追加する際のコストを算出する。コストの算出例も、図１１で後述する。
【００５０】
図７は、センサーネットワークシステムの開発から運用までのシナリオを示す説明図である。開発から運用までのシナリオは、大きく分類して、開発シナリオ７０１と、配布シナリオ７０２と、設置シナリオ７０３と、運用シナリオ７０４とがある。また、開発から運用までのシナリオの途中で生成された情報が、良品率ＤＢ６１０に格納される。良品率ＤＢ６１０は、サーバ２０１が有するデータベースである。
【００５１】
開発シナリオ７０１は、製造業者によりノードの設計と製造とを繰り返すシナリオである。製造したノードに対する出荷検査が終了した後、設計者は、製造したノードと、ノードに付与した製造業者を特定するベンダーＩＤとロットを特定するロットＩＤと、サーバ２０１が行う機能認証試験（ＩＯＴ：ＩｎｔｅｒＯｐｅｒａｂｉｌｉｔｙ  Ｔｅｓｔｉｎｇ）を行うプログラムとを記憶する記憶媒体と、を卸業者に提供する。
【００５２】
ここで、ロットについて説明する。ロットは、ノード製造時における製造数単位である。小量生産、高単価なノードについて、製造業者は、全品検査を行い、正確な歩留まりをカウントする。また、高単価なノードについて、製造業者は、良品率を上げるために、製造時においてコストをかけたり、設計時において、回路の冗長性を考慮したりする。一方で、大量生産、低単価なノードについて、製造業者は、抜き取り検査で、ロット単位の歩留まり管理を行う。
【００５３】
ここで、出荷検査では、前述した全品検査または抜き取り検査が行われる。製造業者は、出荷段階において、ロットに含まれるノード群のうち良品であるノードの割合を示す出荷時良品率も記憶媒体に格納する。良品率は、全品検査が行われたノードなのか、または抜き取り検査が行われたノードなのかによって変動する値である。以下、全品検査が行われたノードを「全品検査ノード」と呼称する。また、抜き取り検査が行われたノードを「抜き取り検査ノード」と呼称する。全品検査ノードと抜き取り検査ノードとが同一のセンシングフィールドＡＲに混在しても、同一のプロトコルを実行することができれば、センサーネットワークシステム２００を構築することができる。
【００５４】
また、製造業者は、製造時または検査時において、ノードを運用する、またはノードの運用をシミュレーションした結果により得られる、運用期間と、運用期間中の良品率とを対応付けた出荷時良品率時間経過情報を記憶媒体に格納する。出荷時良品率と出荷時良品率時間経過情報については、図８で後述する。また、図１１で、出荷時良品率時間経過情報を図示する。
【００５５】
配布シナリオ７０２は、製造業者により製造が終了した後に行うシナリオであり、卸業者によりノードと記憶媒体とを配布するシナリオである。設置シナリオ７０３は、卸業者からノードと記憶媒体とを購入したセンサーネットワークシステム２００の設置者によりノードを設置するシナリオである。より詳細には、設置シナリオ７０３は、設置者により、ノードを設置する場所を計画し、ノードを取り付け、取り付けたノードを調節するシナリオである。サーバ２０１は、設置者の操作により、記憶媒体に格納された情報と、購入時のノードと記憶媒体との販売価格に基づくノードの単価と、取り付けたノードの総数とを、良品率ＤＢ６１０に格納する。
【００５６】
運用シナリオ７０４は、センサーネットワークシステム２００の運用者によりセンサーネットワークシステム２００を運用するシナリオである。より詳細には、運用シナリオ７０４は、運用サブシナリオ７１１とメンテナンスサブシナリオ７１２とを繰り返す。
【００５７】
運用サブシナリオ７１１は、運用者により、通常運用とロバスト制御とを行うシナリオである。通常運用は、たとえば、１０分ごとに行う運用である。ロバスト制御は、マイナーエラーが発生したときに行う運用である。
【００５８】
メンテナンスサブシナリオ７１２は、通常メンテナンスと緊急メンテナンスとを行うシナリオである。通常メンテナンスは、定期的に行うメンテナンスである。緊急メンテナンスは、緊急に行うメンテナンスである。たとえば、緊急メンテナンスとして、設置したノードのハードウェアに致命的な不具合が検出された際に、運用者は、設置したノードを、不具合を解消したノードとを取り替える。また、不具合が修理可能なものであれば、運用者は、設置したノードのうちの不具合がある箇所を修理する。また、何らかの追加機能を有するハードウェアにより不具合が解消するのであれば、運用者は、設置したノードにハードウェアを追加する。
【００５９】
通常運用と、ロバスト制御と、通常メンテナンスとは、図７に示すステップＳ７２１〜ステップＳ７２６を、サーバ２０１、ノードが実行することにより実現する。具体的に、通常運用は、ステップＳ７２１〜ステップＳ７２５が実行されることにより実現される。また、ロバスト制御は、ステップＳ７２６が実行されることにより実現される。また、通常メンテナンスは、ステップＳ７２３〜ステップＳ７２６が実行されることにより実現される。
【００６０】
ノードは、周囲の状態を計測する（ステップＳ７２１）。次に、データ分析コンピュータ２０２は、収集したデータを用いて、センシングフィールドＡＲのノードの状態を分析する（ステップＳ７２２）。続けて、サーバ２０１は、異常を検出したか否かを判断する（ステップＳ７２３）。たとえば、ノードが定期的にサーバ２０１にデータを送信するとして、前回データを送信してきたにも関わらず、今回データを送信してこなかったノードがあった場合に、サーバ２０１は、異常を検出したと判断する。
【００６１】
異常を検出しなかった場合（ステップＳ７２３：Ｎｏ）、サーバ２０１は、引き続きノードからのデータを受信する。異常を検出した場合（ステップＳ７２３：Ｙｅｓ）、サーバ２０１は、機能を維持できるか否かを判断する（ステップＳ７２４）。機能を維持できるか否かは、故障していないノードの個数と機能維持の閾値との比較により行える。
【００６２】
機能を維持できると判断した場合（ステップＳ７２４：Ｙｅｓ）、サーバ２０１は、警告をデータ分析コンピュータ２０２等に出力して（ステップＳ７２５）、引き続きノードからのデータを受信する。機能を維持できないと判断した場合（ステップＳ７２４：Ｎｏ）、サーバ２０１は、フェールセーフを行うべき旨を出力し（ステップＳ７２６）、引き続きノードからのデータを受信する。フェールセーフを行うべき旨を閲覧した運用者は、対策として、ノードを追加散布する。
【００６３】
図８は、良品率ＤＢの記憶内容の一例を示す説明図である。良品率ＤＢ６１０は、ＩＯＴプログラム８０１と、ＣＥＲＴ／Ａｕｔｈ８０２と、Ｔｒａｃｅ８０３とを記憶する。ＩＯＴプログラム８０１は、設置シナリオ７０３、運用シナリオ７０４時にサーバ２０１で実行されるプログラムである。たとえば、サーバ２０１は、ＩＯＴプログラム８０１に従って、ベンダーＩＤと、ロットＩＤとの取得要求をノードに通知する。このとき、ＩＤを通知しないノードがある場合、または、良品率ＤＢ６１０に登録されたベンダーＩＤ、ロットＩＤ以外のＩＤを通知したノードがある場合、サーバ２０１は、不明ＩＤとして処理する。
【００６４】
ＣＥＲＴ／Ａｕｔｈ８０２は、ベンダーＩＤと、ロットＩＤとの組ごとに、ノードに関する情報を記憶する。具体的に、ＣＥＲＴ／Ａｕｔｈ８０２は、ベンダーＩＤと、ロットＩＤと、単価と、出荷時良品率と、出荷時良品率時間経過情報とを記憶する。
【００６５】
ベンダーＩＤは、ノードを製造した製造業者を特定する情報である。ロットＩＤは、ロットを特定する情報である。単価は、購入時のノードと記憶媒体との販売価格に基づく、ノード一個当たりの価格である。出荷時良品率は、出荷段階において、ベンダーＩＤおよびロットＩＤにより特定されるノード群のうち良品であるノードの割合を示す。たとえば、全品検査ノードは、全てが良品であることが保障されるため、出荷時良品率は、１００［％］となる。出荷時良品率時間経過情報は、ベンダーＩＤおよびロットＩＤにより特定されるノード群の運用期間と運用中におけるノード群のうち良品であるノードの割合を示す良品率とを対応付けた情報である。たとえば、出荷時良品率時間経過情報は、ベンダーＩＤおよびロットＩＤにより特定されるノードを１００個運用させた際に、６０か月後に１個故障する、６１か月後に２個故障する、といった内容である。償却単価は、ベンダーＩＤおよびロットＩＤにより特定されるノード群の購入単価を使用期間で除した値である。
【００６６】
たとえば、図８では、全品検査ノードには、ベンダーＩＤとして１、ロットＩＤとして１が付与されており、単価がノード１つ当たり１００［円］であり、出荷時良品率が１００［％］であることを示す。
【００６７】
Ｔｒａｃｅ８０３は、センサーネットワークシステム２００の運用中に起きた状態変化を記憶するデータである。たとえば、Ｔｒａｃｅ８０３は、センサーネットワークシステム２００が運用開始してから、ベンダーＩＤおよびロットＩＤにより特定されるノード群のうち、何個故障したかを記憶する。
【００６８】
たとえば、図８の例では、２０か月目に、ベンダーＩＤとして１、ロットＩＤとして２が付与された抜き取り検査ノードが故障した個数が２個であり、３５か月目に、抜き取り検査ノードが故障した個数が３個であることを示す。
【００６９】
次に、図９と図１０とを用いて、全品検査品と抜き取り検査品との出荷時良品率時間経過情報について図示する。図９では、全品検査品を過不足無く散布した例と、抜き取り検査品とを過不足無く散布した場合を示す。また、図１０では、さらに、抜き取り検査品を冗長に散布した場合を示す。また、図９、図１０に示す出荷時良品率時間経過情報は、故障するノードをランダムで付加した際のシミュレーション結果である。
【００７０】
図９は、全品検査品と抜き取り検査品との良品率の時間経過の一例を示す説明図である。図９では、全品検査ノードの出荷時良品率時間経過情報と、抜き取り検査ノードの出荷時良品率時間経過情報とをグラフ９０１としてプロットした図を用いて、運用中良品率の時間経過を説明する。ここで、運用中良品率とは、センサーネットワークシステム２００の運用中における、センシングフィールドＡＲに散布すべきノードの個数に対して、良品であるノードの割合を示す。センシングフィールドＡＲに散布すべきノードの個数は、センサーネットワークシステム２００の運用者が指定する値である。たとえば、運用者は、センシングフィールドＡＲの面積を、ノードが隣のノード通信可能な面積で除した値を、センシングフィールドＡＲに散布すべきノードの個数に指定する。
【００７１】
グラフ９０１は、運用中良品率の時間経過を示すグラフである。グラフ９０１の横軸は運用期間を示す。グラフ９０１の縦軸は、運用中良品率を示す。また、センサーネットワークシステム２００の機能を維持できる運用中良品率の閾値を、点線９０２で示すように９０［％］とする。
【００７２】
全品検査ノードを１００［％］散布した場合に、全品検査ノードは、白抜きの菱型で表したプロットのような特性を示すとする。グラフ９０１は、全品検査ノードを１００［％］散布したセンサーネットワークシステム２００の運用を続けていき、６０か月を過ぎるあたりから、経年劣化により徐々に故障していく例を示す。このとき、時間経過に対する運用中良品率は、時間的に局所的な故障もありえるため多少上下するが、大局的には単調減少となる。そして、運用中良品率は、８２か月目頃に、点線９０２を下回る状態になるとする。運用開始の時点から、点線９０２を下回るまでの期間を「機能保障期間」と呼称する。全品検査ノードを１００［％］散布した際の機能保障期間は８２か月となる。
【００７３】
ここで、出荷時良品率時間経過情報と、センサーネットワークシステム２００を運用した際の時間経過に対する運用中良品率とは、異なる傾向を示すことがある。異なる傾向を示す理由としては、環境が一様では無いためである。すなわち、動作環境によっては、より早まる場合もあるし、遅くなることもあるため、出荷時良品率時間経過情報を用いて単純な補間処理を行うだけでは、センサーネットワークシステム２００の運用中のノードの劣化特性を方程式化することはできない。
【００７４】
一方、抜き取り検査ノードを１００［％］散布した場合に、抜き取り検査ノードは、白抜きの正方形で表したプロットのような特性を示すとする。抜き取り検査ノードにおいては、出荷時良品率が９５％であるから、品質には一定のバラツキがあり、全品検査ノードと同様に、品質劣化が始まる。グラフ９０１には、６０か月の時点で機能維持の閾値を下回る例を記載する。抜き取り検査ノードを１００［％］散布した際の機能保障期間は６０か月となる。抜き取り検査ノードにおいても、出荷からの劣化特性を単純な方程式で表現することはできない。
【００７５】
図１０は、抜き取り検査品を冗長数散布した際の運用中良品率の時間経過を示す説明図である。図１０では、グラフ９０１で示した状態から、さらに、抜き取り検査ノードを１２０［％］散布した際の出荷時良品率時間経過情報を、グラフ１００１としてプロットした図を用いて、運用中良品率の時間経過を説明する。
【００７６】
抜き取り検査ノードを１２０［％］散布した場合、白抜きの三角形で表したプロットのような特性を示す。抜き取り検査ノードを１２０［％］散布した場合のプロットは、抜き取り検査ノードを１００［％］散布した場合のプロットを、縦方向に２０［％］拡大したものとなる。
【００７７】
品質が安定しない抜き取り検査ノードであるが、２０［％］増量して散布することにより、図１０の例では、全品検査ノードと同じ機能保障期間である８２か月時点で追加散布のポイントを迎える。
【００７８】
次に、図１１を用いて、ノードを追加散布すべきか否かの判断方法と、追加散布すべきであればいくつ散布すべきかについて説明する。
【００７９】
図１１は、ノードを追加散布すべきか否かの判断と、追加すべきノードの個数の一例を示す説明図である。図１１の（Ａ）では、ノードを追加散布すべきか否かの判断と、全品検査ノードを追加するとした場合の追加すべきノードの個数の算出方法の一例を示す。また、図１１の（Ｂ）では、抜き取り検査ノードを追加するとした場合の追加すべきノードの個数の算出方法の一例を示す。また、図１１の（Ｃ）では、全品検査ノードと抜き取り検査ノードとのうち、どちらを追加散布したほうがよいかの指標となるコストの算出例について説明する。
【００８０】
図１１の（Ａ）で示すグラフ１１０１と白抜きの菱型は、全品検査ノードを１００［％］散布した際の出荷時良品率時間経過情報をプロットしたものである。また、白抜きの丸は、全品検査ノードを１００［％］散布して、実際にセンサーネットワークシステム２００を運用した際の、Ｔｒａｃｅ８０３から得られる故障したノードをプロットしたものである。
【００８１】
グラフ１１０１は、運用中良品率の時間経過を示すグラフである。グラフ１１０１が示すように、実際にセンサーネットワークシステム２００を運用した結果、出荷時良品率時間経過情報より環境が劣悪であったため、運用中良品率の低下が出荷時良品率時間経過情報より早く始まる。
【００８２】
サーバ２０１は、Ｔｒａｃｅ８０３を参照して、運用期間に対する故障数を表す劣化近似関数Ｅ＝ｆ（ｔ）を作成する。ここで、Ｅは、ノードの故障数である。ｔは運用期間である。作成例として、たとえば、サーバ２０１は、劣化近似関数ｆ（ｔ）を、ｆ（ｔ）＝ａｔ＋ｂであるとして、係数ａと定数ｂとを、Ｔｒａｃｅ８０３を参照して作成する。最も簡単な作成例として、サーバ２０１は、現時刻ｔｘにおける故障数Ｅｘと、前回ノードが故障したということを検出した時刻ｔｙにおけるＥｙとを、ｆ（ｔ）＝ａｔ＋ｂに代入し、ａとｂとを求める。また、サーバ２０１は、３つ以上の時刻ｔにおける故障数Ｅを用いて、最小自乗法によりａとｂとを求めてもよい。
【００８３】
ここで、劣化近似関数Ｅ＝ｆ（ｔ）が、運用期間ｔを用いる関数である理由について説明する。ノードがいくつ故障するかについては、ノードが散布される環境に大きく依存するものであり、散布されるノードの良品率や散布したノードの個数の影響は小さいものとなる。したがって、本実施の形態においては、サーバ２０１は、散布されるノードの良品率や散布したノードの個数は使用せず、運用期間ｔと故障したノードの個数Ｅとを用いて劣化近似関数Ｅ＝ｆ（ｔ）を作成する。
【００８４】
劣化近似関数ｆ（ｔ）を作成した後、サーバ２０１は、現時刻Ｔ以降のいずれかの時刻Ｔ＋Δｔに故障していないノードの個数Ｎ’を、下記（１）式を用いて算出する。
【００８５】
Ｎ’＝Ｎ＋α―ｆ（Ｔ＋Δｔ）  …（１）
【００８６】
ここで、Ｎは、センシングフィールドＡＲに散布すべきノードの個数であり、ノードの初期散布数である。αは、ノードを冗長に散布した個数である。そして、サーバ２０１は、センサーネットワークシステム２００にノードを追加すべきか否かを、下記（２）式で示す不等式を満たすか否かにより判断する。
【００８７】
Ｎ’＜機能維持の閾値  …（２）
【００８８】
（２）式を満たす場合、サーバ２０１は、センサーネットワークシステム２００にノードを追加すべきと判断する。一方、（２）式を満たさない場合、サーバ２０１は、センサーネットワークシステム２００にノードを追加しなくてよいと判断する。グラフ１１０１では、冗長散布を行っていないためα＝０であり、現時刻Ｔを７０か月目、現時刻Ｔ以降のいずれかの時刻Ｔ＋Δｔを７５か月目とする。このとき、グラフ１１０１より、ｆ（Ｔ＋Δｔ）は、（１００−８７）×０．０１×Ｎ＝０．１３×Ｎ［個］となる。サーバ２０１は、Ｎ’を（１）式を用いて下記のように算出する。
【００８９】
Ｎ’＝Ｎ＋０−０．１３×Ｎ＝０．８７×Ｎ［個］
【００９０】
そして、機能維持の閾値を、０．９０×Ｎとすると、サーバ２０１は、（２）式により、センサーネットワークシステム２００にノードを追加すべきと判断する。
【００９１】
次に、追加すべきノードの個数を算出する例について説明する。追加すべきノードの個数を算出する方法としては、第１の算出方法と、第２の算出方法とがある。第１の算出方法としては、機能維持の閾値とＮ’との差分を出荷時良品率で除した値を、追加すべき個数として算出する方法である。
【００９２】
第１の算出方法を用いた場合、全品検査ノードを追加散布する場合、サーバ２０１は、追加すべきノードの個数を、（０．９０×Ｎ−０．８７×Ｎ）／１＝０．０３×Ｎ［個］と算出する。また、抜き取り検査ノードを追加散布する場合、サーバ２０１は、追加すべきノードの個数を、（０．９０×Ｎ−０．８７×Ｎ）／０．９５＝０．０３１６×Ｎ［個］と算出する。
【００９３】
第２の算出方法は、散布数を調整すると出荷時良品率時間経過情報のプロット位置を変動することを利用して、追加すべきノードの個数を算出する方法である。第２の算出方法の具体的な方法について、グラフ１１０２を用いて説明する。
【００９４】
図１１の（Ｂ）で示すグラフ１１０２において、白抜きの正方形は、抜き取り検査ノードを１００［％］散布した際の出荷時良品率時間経過情報をプロットしたものである。また、白抜きの丸は、全品検査ノードを１００［％］散布して、実際にセンサーネットワークシステム２００を運用した際の、Ｔｒａｃｅ８０３から得られる故障したノードをプロットしたものである。また、白抜きの五角形は、抜き取り検査ノードを１１２．５［％］散布した際の出荷時良品率時間経過情報をプロットしたものである。１１２．５［％］という数値の理由については後述する。
【００９５】
第２の算出方法では、まず、現時刻Ｔ以降のいずれかの時刻Ｔ＋Δｔにおいて、機能維持の閾値と一致するように、散布数を決定する。具体的には、グラフ１１０２が示すように、抜き取り検査ノードを１００［％］散布した際の出荷時良品率時間経過情報から、いずれかの時刻Ｔ＋Δｔ＝７５か月目の時点において故障していないノードの個数は、８０［％］×Ｎ個である。したがって、抜き取り検査ノードを（０．９０×Ｎ）／（０．８０×Ｎ）＝１．１２５＝１１２．５［％］散布した際の出荷時良品率時間経過情報は、７５か月目の時点で機能維持の閾値と一致するようになる。
【００９６】
続けて、第２の算出方法では、現時刻Ｔにおいて、１１２．５［％］散布した際の出荷時良品率時間経過情報と、現時刻Ｔにおける全品検査ノードを１００［％］運用した際の故障していないノードの個数との差分を、追加すべき個数とする。具体的には、グラフ１１０２が示すように、抜き取り検査ノードを１１２．５［％］散布した際の出荷時良品率時間経過情報から、現時刻Ｔ＝７０か月目の時点において故障していないノードの個数は、０．９６×Ｎ［個］である。また、現時刻Ｔにおける全品検査ノードを１００［％］運用した際の故障していないノードの個数は、０．９１×Ｎ［個］である。したがって、サーバ２０１は、追加すべき個数を、（０．９６×Ｎ−０．９１×Ｎ）＝０．０５×Ｎ［個］と算出する。
【００９７】
サーバ２０１は、算出した追加すべき個数を用いて、センサーネットワークシステム２００に追加する際のコストを算出する。具体的には、サーバ２０１は、下記（３）式を用いて、ノードを追加する際のコストＣｏを算出する。下記（３）式が示すコストは、ノードにかかる費用を、ノードが運用できる運用期間で除していることから、償却単価を示す。
【００９８】
コストＣｏ＝追加すべきノードの個数×ノードの単価／運用期間  …（３）
【００９９】
サーバ２０１は、全品検査ノード、抜き打ち検査ノードのうち、いずれを追加した方がよいかについて、（３）式で得た結果を比較して、値が小さい方を追加すべきノードであると判断する。ここで、運用期間は全品検査ノード、抜き打ち検査ノードとで同一の値となるため、サーバ２０１は、下記（３’）式を用いて判断してもよい。
【０１００】
コストＣｏ＝追加すべきノードの個数×ノードの単価  …（３’）
【０１０１】
ここで、（３’）式を用いて、コストを算出する例を示す。全品検査ノードを追加すべきノードの個数が、０．０３×Ｎ［個］であり、抜き取り検査ノードを追加すべきノードの個数が、０．０５×Ｎ［個］であるとする。このとき、図１１の（Ｃ）では、サーバ２０１は、（３’）式を用いて、全品検査ノードを追加する際のコストＣｏ＿ａと、抜き取り検査ノードを追加する際のコストＣｏ＿ｐを、下記のように算出する。
【０１０２】
コストＣｏ＿ａ＝（０．０３×Ｎ）×１００＝３×Ｎ
コストＣｏ＿ｐ＝（０．０５×Ｎ）×８０＝４×Ｎ
【０１０３】
サーバ２０１は、コストＣｏ＿ａ、コストＣｏ＿ｐを比較して、全品検査ノードを追加した方がよいことを出力する。また、単に、サーバ２０１は、コストＣｏ＿ａ、コストＣｏ＿ｐを出力してもよい。センサーネットワークシステム２００の運用者は、コストＣｏ＿ａ、コストＣｏ＿ｐを閲覧して、どちらを追加するかを決定する。図１１の（Ｃ）の例では、運用者は、コストＣｏ＿ａの方が小さいため、全品検査ノードを追加すると決定する。
【０１０４】
図１２は、ノードの追加散布の一例を示す説明図である。図１２には、センサーネットワークシステム２００に、ノードを散布する様子を状態１〜６で示す。状態１〜６において、“ａ”を有する白抜きの丸は、運用中の全品検査ノードを示す。また、“ｐ”を有する白抜きの丸は、運用中の抜き取り検査ノードを示す。“ｘ”を有する白抜きの丸は、故障したノードを示す。
【０１０５】
図１２に示す状態１は、センサーネットワークシステム２００の運用開始時点を示す。状態１において、センサーネットワークシステム２００には、全品検査ノードが散布されており、抜き取り検査ノードは散布されていない。
【０１０６】
図１２に示す状態２は、図１２に示す状態１から８２か月経過した後の状態である。図１２に示す状態２では、故障したノードが２個存在する。図１２に示す状態２において、サーバ２０１は、センサーネットワークシステム２００にノードを追加すべきと判断する。
【０１０７】
図１２に示す状態３は、図１２に示す状態２の後、センサーネットワークシステム２００の運用者により、抜き取り検査ノードを追加散布した状態である。ここで、追加散布する際、センシングフィールドＡＲのどの領域にノードが不足しているのかは不明である。図１２に示す状態３の例では、運用者がノードを追加散布した領域が、偶然にノードが不足した領域であった場合を示す。
【０１０８】
図１２に示す状態４は、図１２に示す状態３の後、ある程度時間経過した状態である。図１２に示す状態４では、故障したノードが３個存在する。図１２に示す状態４において、サーバ２０１は、センサーネットワークシステム２００にノードを追加すべきと判断する。
【０１０９】
図１２に示す状態５は、図１２に示す状態４の後、センサーネットワークシステム２００の運用者により、抜き取り検査ノードを追加散布した状態である。図１２に示す状態５では、運用者がノードを追加散布したが、領域１２０１と、領域１２０２とが、ノードの散布密度が低く、センサーネットワークシステム２００の機能維持が困難である。図１２に示す状態５において、引き続き、サーバ２０１は、センサーネットワークシステム２００にノードを追加すべきと判断する。
【０１１０】
ここで、図１２に示す状態５では、運用中であるノードの個数が実質機能維持の閾値より多いにも関わらず、サーバ２０１がセンサーネットワークシステム２００にノードを追加すべきと判断することができる理由について説明する。前述したことをできるようにするには、センサーネットワークシステム２００の各ノードが、運用中のノードが近くにあると判断した場合、近隣のノードと通信しないという特性を有すればよい。運用中のノードが近くにあると判断する方法としては、たとえば、電波を受信した際の受信強度が所定の閾値以上である場合、運用中のノードが近くにあると判断する方法がある。
【０１１１】
このように、ノードの散布密度が高い領域に含まれるノード群の一部が、近隣のノードと通信しないことにより、サーバ２０１が検出する、故障していないノードの個数が減少して、ノードの散布密度が低い領域があれば、機能維持の閾値を下回ることになる。また、ノードの散布密度が高い領域に含まれるノード群のうちの近隣のノードと通信しないノードは、運用中のノードが故障すると、近隣のノードとの通信を再開することになる。したがって、近隣のノードと通信してなかったノードも、いつかは近隣のノードとの通信を再開することになるため、追加散布したノードが無駄になることはない。
【０１１２】
図１２に示す状態６は、図１２に示す状態５の後、センサーネットワークシステム２００の運用者により、抜き取り検査ノードを追加散布した状態である。図１２に示す状態６の例では、運用者がノードを追加散布した領域が、ノードが不足した領域と重なったため、サーバ２０１は、センサーネットワークシステム２００にノードを追加しなくてよいと判断する。
【０１１３】
図１２に示した運用が長期間行われることにより、サーバ２０１は、償却単価を定量化することができ、運用者は、（３）式、（３’）式等で求めた値を閲覧して、コスト最適なノードの散布計画を立てることができる。次に、図１３と図１４とを用いて、複数のノード＃１〜Ｎの各ノードとサーバ２０１とが行うフローチャートについて説明する。
【０１１４】
図１３は、ノードによるセンサーネットワークシステム運用処理手順の一例を示すフローチャートである。ノードによるセンサーネットワークシステム運用処理は、センサーネットワークシステム２００の運用開始および運用中にノードが行う処理である。ノードは、ノードの通信経路を設定する（ステップＳ１３０１）。次に、ノードは、経過時間Ｔを０に設定する（ステップＳ１３０２）。ステップＳ１３０１とステップＳ１３０２は、センサーネットワークシステム２００の運用開始時点で行う処理である。
【０１１５】
続けて、ノードは、ノードの追加散布通知を受け付けたか否かを判断する（ステップＳ１３０３）。ノードの追加散布通知は、後述するステップＳ１４１２の処理によりサーバ２０１から受け付ける。ノードの追加散布通知を受け付けていない場合（ステップＳ１３０３：Ｎｏ）、ノードは、通常運用処理を実行する（ステップＳ１３０４）。ここで、通常運用処理とは、センサー５０２による周囲の状態の計測や、ＭＣＵ５０１、無線通信回路５０３、アンテナ５０７による計測した結果の送信処理等である。
【０１１６】
次に、ノードは、故障したノードを検出したか否かを判断する（ステップＳ１３０５）。故障したノードを検出した場合（ステップＳ１３０５：Ｙｅｓ）、ノードは、故障したノードの個数Ｅｘと、現在の時刻ｔｘとをサーバに通知する（ステップＳ１３０６）。ステップＳ１３０６の処理終了後、または、故障したノードを検出していない場合（ステップＳ１３０５：Ｎｏ）、ノードは、ステップＳ１３０３の処理に移行する。
【０１１７】
ノードの追加散布通知を受け付けた場合（ステップＳ１３０３：Ｙｅｓ）、ノードは、ノードの通信経路を再設定する（ステップＳ１３０７）。ステップＳ１３０７の処理終了後、ノードは、ステップＳ１３０３の処理に移行する。ノードによるセンサーネットワークシステム運用処理を実行することにより、ノードは、通常運用を行うことができる。
【０１１８】
図１４は、分析処理手順の一例を示すフローチャートである。分析処理は、センサーネットワークシステム２００のノードの状態を分析する処理である。
【０１１９】
サーバ２０１は、初期運用ノード数Ｎと、冗長ノード数αとを記憶する（ステップＳ１４０１）。次に、サーバ２０１は、故障したノードの個数Ｅｘと故障した時刻ｔｘとを検出したか否かを判断する（ステップＳ１４０２）。検出する例として、サーバ２０１は、ステップＳ１３０６の処理による複数のノード＃１〜Ｎのいずれかからの通知を受け付けて、ある時刻において故障したノードの個数Ｅｘと故障した時刻ｔｘとを検出する。また、サーバ２０１は、集約装置ＡＧから、ある時刻において故障していない個数を受け付けて、前回受け付けたノードの個数との差があった際に、故障したノードの個数Ｅｘと故障した時刻ｔｘとを検出してもよい。
【０１２０】
故障したノードの個数Ｅｘと故障した時刻ｔｘとを検出していない場合（ステップＳ１４０２：Ｎｏ）、サーバ２０１は、ステップＳ１４０２の処理に移行する。故障したノードの個数Ｅｘと故障した時刻ｔｘとを検出した場合（ステップＳ１４０２：Ｙｅｓ）、サーバ２０１は、過去の故障したノードの個数および時刻と、Ｅｘ，ｔｘを用いて、劣化近似関数Ｅ＝ｆ（ｔ）を生成する（ステップＳ１４０３）。次に、サーバ２０１は、Ｎ’＝Ｎ＋α−ｆ（ｔｘ＋Δｔ）を計算する（ステップＳ１４０４）。
【０１２１】
続けて、サーバ２０１は、Ｎ’が機能維持の閾値以上か否かを判断する（ステップＳ１４０５）。Ｎ’が機能維持の閾値以上である場合（ステップＳ１４０５：Ｙｅｓ）、サーバ２０１は、ステップＳ１４０２の処理に移行する。
【０１２２】
Ｎ’が機能維持の閾値未満である場合（ステップＳ１４０５：Ｎｏ）、サーバ２０１は、Ｎ’と機能維持の閾値とを用いて、全品検査ノードを追加する際の追加すべきノードの個数Ｎａを算出する（ステップＳ１４０６）。続けて、サーバ２０１は、コストＣｏ＿ａ＝Ｃａ×Ｎａを計算する（ステップＳ１４０７）。次に、サーバ２０１は、Ｎ’と機能維持の閾値とを用いて、抜き取り検査ノードを追加する際の追加すべきノードの個数Ｎｐを算出する（ステップＳ１４０８）。続けて、サーバ２０１は、コストＣｏ＿ｐ＝Ｃｐ×Ｎｐを計算する（ステップＳ１４０９）。
【０１２３】
次に、サーバ２０１は、Ｃｏ＿ａ，Ｃｏ＿ｐのうち、値が小さい方を、追加すべきノードであるとして出力する（ステップＳ１４１０）。続けて、サーバ２０１は、運用者によりノードが追加散布されたことが入力されたか否かを判断する（ステップＳ１４１１）。運用者によりノードが追加散布されたことが入力されていない場合（ステップＳ１４１１：Ｎｏ）、サーバ２０１は、ステップＳ１４０２の処理に移行する。
【０１２４】
運用者によりノードが追加散布されたことが入力された場合（ステップＳ１４１１：Ｙｅｓ）、サーバ２０１は、集約装置ＡＧにノードの追加散布通知を通知する（ステップＳ１４１２）。ステップＳ１４１２の処理終了後、サーバ２０１は、ステップＳ１４０２の処理に移行する。
【０１２５】
以上説明したように、サーバ２０１によれば、センサーネットワークシステム２００の運用中の期間内で故障したノードの個数から、期間以降に単位時間当たりに故障するノードの個数を算出する。これにより、サーバ２０１は、センサーネットワークシステム２００の障害の発生タイミングが予測可能になる。
【０１２６】
また、サーバ２０１によれば、単位時間当たりに故障するノードの個数と、複数のノードのうちのいずれかの期間の終了時刻に故障していないノードの個数とに基づいて、いずれかの期間以降のいずれかの時刻に故障していないノードの個数を算出してもよい。これにより、運用者は、いずれかの時刻に故障していないノードの個数を閲覧して、ノードを追加散布すべきか否かの判断材料とすることができる。たとえば、運用者は、いずれかの時刻に故障していないノードの個数が想定より少なければ、機能維持の閾値より大きくても、ノードを追加すべきと判断してもよい。
【０１２７】
また、サーバ２０１によれば、単位時間当たりに故障するノードの個数と、いずれかの期間の終了時刻に故障していないノードの個数とに基づいて、いずれかの時刻に故障していないノードの個数が、機能維持の閾値未満となるか否かを判断してもよい。これにより、運用者は、判断結果を閲覧して、ノードを追加散布すべきか否かの判断材料とすることができる。たとえば、運用者は、いずれかの時刻に故障していないノードの個数が、機能維持の閾値未満であれば、ノードを追加すべきと判断してもよい。
【０１２８】
また、サーバ２０１によれば、いずれかの時刻に故障していないノードの個数と機能維持の閾値とに基づいて、いずれかの時刻までにセンサーネットワークシステム２００に追加すべきノードの個数を算出してもよい。これにより、運用者は、追加すべきノードの個数を閲覧して、追加するノードの個数を決定材料にすることができる。たとえば、運用者が、あるロットの散布していないノードを１２［個］ずつに小分けにして管理してあるとする。そして、サーバ２０１が、追加すべきノードの個数を２０［個］であると出力したとする。このとき、運用者は、１２×２＝２４［個］を追加するノードの個数とする。
【０１２９】
また、サーバ２０１によれば、ノードの良品率と、いずれかの時刻に故障していないノードの個数と、機能維持の閾値とに基づいて、追加すべきノードの個数を算出してもよい。これにより、運用者は、大量生産、低単価なノードを追加する場合でも、適切な追加すべきノードの個数を知ることができる。
【０１３０】
また、サーバ２０１によれば、ロットごとに追加すべきノードの個数を算出し、ロットごとに、ロット単位のノードの単価と、算出した追加すべきノードの個数とに基づいて、センサーネットワークシステム２００に追加する際のコストを算出してもよい。これにより、良品率の異なるノードが複数ある場合、運用者は、追加すべきノードとして、よりコストの小さいノードを選ぶことができる。また、実施の形態１では、全品検査ノードと、抜き取り検査ノードという、良品率が異なるノードが２種類であったが、３種類以上あってもよい。たとえば、製造業者が、抜き取り検査の段階で、ロットから抜き取るサンプル数を多くした、中品質、中単価なノードと、ロットから抜き取るサンプル数を少なくした、低品質、低単価なノードとを提供していたとする。このとき、サーバ２０１は、全品検査ノードと、良品率が中程度で、中単価な抜き取り検査と、良品率が低く、低単価な抜き取り検査と、のそれぞれのコストを算出してもよい。
【０１３１】
また、サーバ２０１によれば、複数のノードのうちのいずれかの期間の開始時刻に通信可能なノードの個数と、いずれかの期間の終了時刻に通信可能なノードの個数との差分を、故障したノードの個数として検出してもよい。これにより、サーバ２０１は、故障したノードを得ることができる。
【０１３２】
（実施の形態２の説明）
実施の形態１にかかるセンサーネットワークシステム２００では、複数のノード＃１〜Ｎの位置情報を用いず、いずれかの期間以降のいずれかの時刻における故障していないノードの個数と機能維持の閾値とを比較して、機能が維持できるか否かを判断する。しかしながら、いずれかの時刻における故障していないノードの個数が、機能維持の閾値未満であったとしても、故障していないノードの位置によっては、機能維持できる場合もある。そこで、実施の形態２にかかるセンサーネットワークシステムでは、複数のノード＃１〜Ｎの位置情報を用いて、機能維持できるか否かをシミュレーションする。なお、実施の形態１において説明した箇所と同様の箇所については、同一符号を付して図示および説明を省略する。
【０１３３】
図１５は、実施の形態２にかかるセンサーネットワークシステムの接続例を示す説明図である。実施の形態２にかかるセンサーネットワークシステム１５００は、複数のノードと、集約装置ＡＧと、ゲートウェイＧＷと、サーバ１５０１と、データ分析コンピュータ２０２と、シミュレータ１５０２とを有する。
【０１３４】
サーバ１５０１は、サーバ２０１が有する機能を有し、さらに、シミュレータ１５０２に、いずれかの期間の終了時点で故障していないノードの位置情報と、いずれかの期間以降のいずれかの時刻において故障していないノードの個数を通知する。または、サーバ１５０１は、シミュレータ１５０２に、いずれかの時刻において故障していないノードの個数の代わりに、いずれかの時刻において故障するノードの個数を通知してもよい。通知した後、サーバ１５０１は、シミュレータ１５０２から、シミュレーションの結果を受け付けて、センサーネットワークシステム１５００の運用者に出力する。
【０１３５】
シミュレータ１５０２は、いずれかの期間の終了時点で故障していないノードの位置情報と、いずれかの期間以降のいずれかの時刻において故障していないノードの個数を用いて、いずれかの時刻におけるノードのマルチホップ通信を模擬するコンピュータである。また、サーバ１５０１が、シミュレータ１５０２が行う機能を実行してもよい。シミュレータ１５０２のハードウェア構成は、サーバ１５０１と同様のハードウェアを有するため、説明を省略する。
【０１３６】
また、実施の形態２では、複数のノード＃１〜Ｎの各ノードの位置情報を用いる。ノードの位置情報を得るための一例として、一部のノードは、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）センサーを有し、ＧＰＳセンサーによって位置情報を取得可能であってもよい。そして、ＧＰＳを有さないノードは、ＧＰＳセンサーを有するノードの位置情報と、ＧＰＳセンサーを有するノードからの相対距離とに基づいて、自ノードの位置情報を算出すればよい。
【０１３７】
図１６は、シミュレータの機能構成例を示すブロック図である。シミュレータ１５０２は、制御部１６００を含む。制御部１６００は、受付部１６０１と、実行部１６０２と、判断部１６０３と、算出部１６０４とを含む。制御部１６００は、記憶装置に記憶された実施の形態２における分析プログラムをシミュレータ１５０２のＣＰＵが実行することにより、制御部１６００の機能を実現する。記憶装置とは、具体的には、たとえば、シミュレータ１５０２のＲＯＭ、ＲＡＭ、ディスクなどである。また、受付部１６０１〜算出部１６０４の処理結果は、シミュレータ１５０２のＣＰＵが有するレジスタや、ＲＡＭ等に記憶される。
【０１３８】
受付部１６０１は、複数のノード＃１〜Ｎのうちのいずれかの期間の終了時刻に故障していないノードの位置情報を受け付ける。
【０１３９】
実行部１６０２は、終了時刻に故障していないノードのうち、算出した時刻に故障していないノードの個数分、いずれかの時刻に故障していないノードをランダムに設定する。そして、実行部１６０２は、故障していないノードをランダムに設定した場合に、受付部１６０１が受け付けた、故障していないノードの位置情報に基づいて、いずれかの時刻に故障していないノードによるマルチホップ通信を模擬するシミュレーションを実行する。また、実行部１６０２は、故障するノードをランダムに設定してシミュレーションを実行してもよい。シミュレーションの様子は、図１７〜図２１で示す。
【０１４０】
また、実行部１６０２は、いずれかの時刻に故障していないノードをランダムに設定して、シミュレーションを所定回数実行してもよい。ここで、所定回数とは、センサーネットワークシステム１５００の運用者が設定する値である。たとえば、運用者は、予め、１回のシミュレーションにかかる時間を取得しておく。そして、運用者は、シミュレーションにかける時間を１回のシミュレーションにかかる時間で除した値を、所定回数として設定する。
【０１４１】
判断部１６０３は、実行部１６０２によるシミュレーションの実行結果から得られる通信可能なノードの個数と、機能維持の閾値とを比較することにより、機能が実現可能か否かを判断する。
【０１４２】
また、判断部１６０３は、実行部１６０２が所定回数実行したシミュレーションの実行結果ごとに、実行結果から得られる通信可能なノードの個数と、機能維持の閾値とを比較することにより、機能が実現可能であるか否かを判断する。たとえば、判断部１６０３は、機能を維持できたと判断した回数と、機能を維持できないと判断した回数とを出力する。
【０１４３】
算出部１６０４は、所定回数と、終了時刻に故障していないノードからいずれかの時刻に故障していないノードを設定する場合にとり得る組合せの総数とに基づいて、判断部１６０３の判断結果の尤もらしさを示す尤度を算出する。たとえば、算出部１６０４は、所定回数／（組合せの総数）を、値が大きいほど尤もらしい尤度として算出する。また、算出部１６０４は、（組合せの総数）／所定回数を算出し、値が小さいほど尤もらしい尤度として算出してもよい。尤度については、図１７で後述する。
【０１４４】
図１７は、故障するノードをランダムに変えた場合のシミュレーションの結果の一例を示す説明図である。図１７では、現時刻である時刻ｔ１以降の時刻ｔ２において、運用中の１２個のノードのうち、ノードが３個故障するであろうという予測の下、シミュレータ１５０２がパターン１〜３についてシミュレーションした結果を示す。ここで、図１７において、“ｓ”を有する白抜きの丸は、運用中のノードを示す。また、“ｘ１”を有する白抜きの丸は、現時刻である時刻ｔ１で故障中のノードを示す。また、“ｘ２”を有する白抜きの丸は、時刻ｔ１以降の時刻ｔ２で故障すると仮定したノードを示す。
【０１４５】
パターン１およびパターン３のシミュレーションにおいて、シミュレータ１５０２は、ノードの再接続などにより、機能維持として十分な計測を継続できると判断する。この時の判断基準は、計測したいポイント、測定密度指標を想定するセンシングフィールドＡＲに依存して定められたものとする。
【０１４６】
これに対し、パターン２のシミュレーションにおいて、シミュレータ１５０２は、センシングフィールドＡＲの東南部分の領域１７０１が十分に計測できておらず、機能維持できないと判断する。
【０１４７】
サーバ１５０１は、シミュレータ１５０２による、各パターンのシミュレーションの結果を取得して、故障確率を、下記（４）式を用いて算出する。
【０１４８】
故障確率＝１００×ｍ／ｎ［％］  …（４）
【０１４９】
ここで、ｍは、シミュレータ１５０２が機能維持できると判断した回数である。ｎは、シミュレーションを行った回数である。さらに、サーバ１５０１は、算出した故障確率の尤もらしさを示す尤度を、下記（５）式を用いて算出する。
【０１５０】
尤度＝ｎ／Ｃ  …（５）
【０１５１】
ここで、Ｃは、故障するノードの組合せの総数である。図１７の例では、サーバ１５０１は、（４）式を用いて、図１７の例における故障確率を下記のように算出する。
【０１５２】
故障確率＝１００×１／３＝３３［％］
【０１５３】
また、サーバ１５０１は、（５）式を用いて、図１７の例における尤度を算出する。故障するノードの組合せの総数Ｃは、15Ｃ3＝２２０である。
【０１５４】
尤度＝３／２２０＝０．０１４
【０１５５】
センサーネットワークシステム１５００の運用者は、故障確率を閲覧して、ノードを追加散布すべきか否かを判断する。また、センサーネットワークシステム１５００の運用者は、尤度を閲覧して、故障確率が信用にたる値か判断する。たとえば、センサーネットワークシステム１５００の運用者は、尤度が小さすぎると判断した場合、サーバ１５０１を操作して、シミュレータ１５０２に再度のシミュレーションを実行させる。
【０１５６】
次に、図１８〜図２１を用いて、シミュレータ１５０２が行う、ノードが構築する通信経路の模擬について説明を行う。図１８〜図２１において、“ｔ”を有する白抜きの丸は、運用中のノードであり、データを中継しない終端ノードを示す。また、“ｒ”を有する白抜きの丸は、運用中のノードであり、データを中継する中継ノードを示す。また、“ｓ”を有する白抜きの丸は、余剰のノードであり、近隣のノードとの通信を休止しているノードを示す。また、“ｘ”を有する白抜きの丸は、故障したノードを示す。
【０１５７】
図１８は、ノードが構築する通信経路の変更の一例を示す説明図（その１）である。図１８の（Ａ）では、故障したノードが無い状態におけるノードの通信経路を示す。また、図１８の（Ｂ）では、故障したノードが無い状態におけるノードの通信経路において、集約装置ＡＧにデータが集約する様子を示す。
【０１５８】
図１９は、ノードが構築する通信経路の変更の一例を示す説明図（その２）である。図１９の（Ａ）では、終端ノードの一つが故障した場合を示す。図１９の（Ａ）では、運用中のノード数は、２０から１９に減少する。これに対し、図１９の（Ｂ）では、中継ノードの一つが故障した場合を示す。図１９の（Ｂ）では、運用中のノード数は、２０から１２に減少する。このように、中継ノードが故障した場合の運用中のノード数が、終端ノードが故障する場合の運用中のノード数より大きく減少し、機能維持の閾値を下回る可能性がある。このような場合、集約装置ＡＧ、サーバ１５０１等が、通信経路の再構築をノードに指示するため、シミュレータ１５０２は、通信経路の再構築を模擬する。
【０１５９】
図２０は、ノードが構築する通信経路の変更の一例を示す説明図（その３）である。図２０の（Ａ）では、各ノードが近傍のノードに、通信経路の接続要求を送信し、仮接続を行う様子を示す。図２０の（Ｂ）では、終端ノードを、中継ノードとして割り当てる様子を示す。
【０１６０】
図２１は、ノードが構築する通信経路の変更の一例を示す説明図（その４）である。図２１では、中継ノードを割り当てて、通信経路の再構築を終了した状態を示す。このように、センサーネットワークシステム１５００では、中継ノードが故障したとしても、終端ノードを中継ノードとして割り当てることにより、運用中のノードの減少を抑えることができる。図１８〜図２１で示したように、シミュレータ１５０２は、中継ノードが故障したと仮定した場合、通信経路の再構築を行い、機能維持の閾値と比較して、機能維持できるか否かを判断する。
【０１６１】
図２２は、機能維持指標値出力処理手順の一例を示すフローチャートである。機能維持指標値出力処理は、ノードのマルチホップ通信を模擬するシミュレーション処理を実行し、機能が維持できるか否かの指標値を出力する処理である。シミュレータ１５０２は、現在時刻Ｔにおいて故障したノードの位置情報を加えて、現在時刻Ｔにおけるシミュレーションを実行する（ステップＳ２２０１）。
【０１６２】
次に、シミュレータ１５０２は、現在時刻Ｔにおけるシミュレーションの結果が、機能維持できるとなったか否かを判断する（ステップＳ２２０２）。機能維持できないとなった場合（ステップＳ２２０２：Ｎｏ）、シミュレータ１５０２は、ノードを追加配布すべき旨のアラームを出力する（ステップＳ２２０３）。アラームの出力先は、サーバ１５０１となる。アラームを受けたサーバ１５０１は、センサーネットワークシステム１５００の運用者が閲覧できるような方法で、アラームの内容を出力する。ステップＳ２２０３の処理終了後、シミュレータ１５０２は、機能維持指標値出力処理を終了する。
【０１６３】
一方、機能維持できるとなった場合（ステップＳ２２０２：Ｙｅｓ）、シミュレータ１５０２は、サーバ１５０１から、未来時刻となるＴ＋Δｔ時点で新たに故障するノードの個数ｅ＿Δｔを受け付ける（ステップＳ２２０４）。次に、シミュレータ１５０２は、故障カウントを０に設定する（ステップＳ２２０５）。続けて、シミュレータ１５０２は、未来時刻Ｔ＋Δｔにおけるシミュレーションを、所定回数行ったか否かを判断する（ステップＳ２２０６）。まだシミュレーションを所定回数行っていない場合（ステップＳ２２０６：Ｎｏ）、シミュレータ１５０２は、現在時刻Ｔで運用中のノードのうち、故障するノードをｅ＿Δｔ分、ランダムに設定する（ステップＳ２２０７）。
【０１６４】
次に、シミュレータ１５０２は、故障していないノードの位置情報を用いて、未来時刻Ｔ＋Δｔにおけるシミュレーションを実行する（ステップＳ２２０８）。続けて、シミュレータ１５０２は、未来時刻Ｔ＋Δｔにおけるシミュレーションの結果から得られる通信可能なノード数と機能維持の閾値とを比較して、機能維持できるとなったか否かを判断する（ステップＳ２２０９）。機能維持できるとならなかった場合（ステップＳ２２０９：Ｎｏ）、シミュレータ１５０２は、故障カウントをインクリメントする（ステップＳ２２１０）。ステップＳ２２１０の処理終了後、または、機能維持できるとなった場合（ステップＳ２２０９：Ｙｅｓ）、シミュレータ１５０２は、ステップＳ２２０６の処理に移行する。
【０１６５】
シミュレーションを所定回数行った場合（ステップＳ２２０６：Ｙｅｓ）、シミュレータ１５０２は、故障確率＝故障カウント／所定回数を計算する（ステップＳ２２１１）。続けて、シミュレータ１５０２は、尤度＝所定回数／（ｎからｅ＿Δｔを選ぶ組合せの個数Ｃ）を計算する（ステップＳ２２１２）。次に、シミュレータ１５０２は、故障確率と尤度とを出力する（ステップＳ２２１３）。故障確率と尤度との出力先は、サーバ１５０１となる。故障確率と尤度とを受けたサーバ１５０１は、センサーネットワークシステム１５００の運用者が閲覧できるような方法で、故障確率と尤度とを出力する。ステップＳ２２１３の処理終了後、シミュレータ１５０２は、機能維持指標値出力処理を終了する。
【０１６６】
機能維持指標値出力処理を実行することにより、センサーネットワークシステム１５００は、運用者に、ノードを追加すべきか否かの判断の材料となる、故障確率、尤度という機能が維持できるか否かの指標値を提供することができる。
【０１６７】
以上説明したように、シミュレータ１５０２によれば、終了時刻に故障していないノードのうち、算出したいずれかの時刻に故障していないノードの個数分、いずれかの時刻に故障していないノードをランダムに設定する。そして、シミュレータ１５０２は、終了時刻に故障していないノードの位置情報に基づいて、いずれかの時刻におけるシミュレーションを実行し、シミュレーションの実行結果から、機能が維持できたか否かを出力してもよい。これにより、運用者は、現時刻以降のいずれかの時刻において、故障していないノードの個数が、機能維持の閾値未満となったとしても、機能が維持できる可能性が高ければ、ノードを追加散布しないという判断を取ることができる。
【０１６８】
また、シミュレータ１５０２によれば、いずれかの時刻に故障していないノードをランダムに設定し、シミュレーションを所定回数繰り返して、機能維持できた回数と、機能維持できなかった回数とを出力してもよい。これにより、運用者は、機能維持できた回数と、機能維持できなかった回数とを閲覧して、ノードを追加すべきか否か判断することができる。
【０１６９】
また、シミュレータ１５０２によれば、所定回数と、いずれかの終了時刻に故障していないノードからいずれかの時刻に故障していないノードを設定する場合にとり得る組合せの総数とに基づいて、尤度を算出してもよい。これにより、運用者は、機能維持できた回数と、機能維持できなかった回数を信用できるか否かを判断できる。たとえば、機能維持できた回数が、機能維持できなかった回数より大きい値を示していても、尤度が尤もらしくないことを示す場合、運用者は、所定回数を増やしてシミュレータ１５０２にシミュレーションを行わせたり、ノードを追加すべきとしたりしてもよい。
【０１７０】
なお、実施の形態１、２で説明した分析方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本分析プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本分析プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０１７１】
１００  システム
１０１  分析装置
２００、１５００  センサーネットワークシステム
２０１  サーバ
６００、１６００  制御部
６０１  検出部
６０２  第１算出部
６０３  判断部
６０４  第２算出部
６０５  第３算出部
６１０  良品率ＤＢ
１６０１  受付部
１６０２  実行部
１６０３  判断部
１６０４  算出部
【図１】
2015104809.tif 000003
【図２】
2015104809.tif 000004
【図３】
2015104809.tif 000005
【図４】
2015104809.tif 000006
【図５】
2015104809.tif 000007
【図６】
2015104809.tif 000008
【図７】
2015104809.tif 000009
【図８】
2015104809.tif 000010
【図９】
2015104809.tif 000011
【図１０】
2015104809.tif 000012
【図１１】
2015104809.tif 000013
【図１２】
2015104809.tif 000014
【図１３】
2015104809.tif 000015
【図１４】
2015104809.tif 000016
【図１５】
2015104809.tif 000017
【図１６】
2015104809.tif 000018
【図１７】
2015104809.tif 000019
【図１８】
2015104809.tif 000020
【図１９】
2015104809.tif 000021
【図２０】
2015104809.tif 000022
【図２１】
2015104809.tif 000023
【図２２】
2015104809.tif 000024
【手続補正書】
【提出日】平成28年6月28日(2016.6.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータが、
複数のノードのうちの一部のノードが故障しても機能を実現可能なシステムを運用中のいずれかの期間に前記複数のノードのうちの故障したノードの個数を検出し、
検出した前記故障したノードの個数と前記期間とに基づいて、前記期間以降に単位時間当たりに故障するノードの個数を算出する、
処理を実行することを特徴とする分析方法。
【請求項２】
前記コンピュータが、
算出した前記単位時間当たりに故障するノードの個数と、前記複数のノードのうちの前記期間の終了時刻に故障していないノードの個数とに基づいて、前記期間以降のいずれかの時刻に故障していないノードの個数を算出する、
処理を実行することを特徴とする請求項１に記載の分析方法。
【請求項３】
前記コンピュータが、
前記単位時間当たりに故障するノードの個数と、前記複数のノードのうちの前記期間の終了時刻に故障していないノードの個数とに基づいて、前記期間以降のいずれかの時刻に故障していないノードの個数が、予め記憶された前記機能を実現可能なノードの個数を示す所定数未満となるか否かを判断する、
処理を実行することを特徴とする請求項１または２に記載の分析方法。
【請求項４】
前記コンピュータが、
前記時刻に故障していないノードの個数が前記所定数未満であると判断した場合に、前記時刻に故障していないノードの個数と前記所定数とに基づいて、前記時刻までに前記システムに追加すべきノードの個数を算出する、
処理を実行することを特徴とする請求項３に記載の分析方法。
【請求項５】
前記追加すべきノードの個数を算出する処理は、
予め記憶されたノードの良品率と、前記時刻に故障していないノードの個数と、前記所定数とに基づいて、前記追加すべきノードの個数を算出することを特徴とする請求項４に記載の分析方法。
【請求項６】
前記コンピュータが、
ノード製造時における製造数単位であるロットごとに、予め記憶されたロット単位のノードの良品率と、前記時刻に故障していないノードの個数と、前記所定数とに基づいて、前記追加すべきノードの個数を算出し、
前記ロットごとに、予め記憶されたロット単位のノードの単価と、算出した前記追加すべきノードの個数とに基づいて、前記追加すべきノードの個数分のノードを前記システムに追加する際のコストを算出することを特徴とする請求項４に記載の分析方法。
【請求項７】
前記コンピュータが、
前記複数のノードのうちの前記終了時刻に故障していないノードの位置情報を受け付け、
前記終了時刻に故障していないノードのうち、算出した前記時刻に故障していないノードの個数分、前記時刻に故障していないノードをランダムに設定した場合に、受け付けた前記終了時刻に故障していないノードの位置情報に基づいて、前記時刻に故障していないノードによるマルチホップ通信を模擬するシミュレーションを実行し、
前記シミュレーションの実行結果から得られる通信可能なノードの個数と、予め記憶された前記機能を実現可能なノードの個数を示す所定数とを比較することにより、前記機能が実現可能か否かを判断する、
処理を実行することを特徴とする請求項２〜６のいずれか一つに記載の分析方法。
【請求項８】
前記シミュレーションを実行する処理は、
前記時刻に故障していないノードをランダムに設定して前記シミュレーションを所定回数実行し、
前記機能が実現可能か否かを判断する処理は、
前記所定回数実行した前記シミュレーションの実行結果ごとに、当該実行結果から得られる通信可能なノードの個数と、前記所定数とを比較することにより、前記機能が実現可能であるか否かを判断する、
ことを特徴とする請求項７に記載の分析方法。
【請求項９】
前記コンピュータが、
前記所定回数と、前記終了時刻に故障していないノードから前記時刻に故障していないノードを設定する場合にとり得る組合せの総数とに基づいて、前記機能が実現可能か否かを判断する処理の結果の尤もらしさを示す尤度を算出する、
ことを特徴とする請求項８に記載の分析方法。
【請求項１０】
コンピュータに、
複数のノードのうちの一部のノードが故障しても機能を実現可能なシステムを運用中のいずれかの期間に前記複数のノードのうちの故障したノードの個数を検出し、
検出した前記故障したノードの個数と前記期間とに基づいて、前記期間以降に単位時間当たりに故障するノードの個数を算出する、
処理を実行することを特徴とする分析プログラム。
【請求項１１】
複数のノードのうちの一部のノードが故障しても機能を実現可能なシステムを運用中のいずれかの期間に前記複数のノードのうちの故障したノードの個数を検出し、検出した前記故障したノードの個数と前記期間とに基づいて、前記期間以降に単位時間当たりに故障するノードの個数を算出する制御部を、
有することを特徴とする分析装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分析方法、分析プログラム、および分析装置に関する。
【背景技術】
【０００２】
従来、システムの状態を分析して、システムの障害を検出する技術がある。関連する先行技術として、たとえば、センサーノードのオペレーティングシステムを保護するため、センサーノードのデータメモリアドレス空間にアプリケーション障害ドメインを作るものがある。また、ネットワークシミュレータにより事前予測を行う場合に、入力する実稼働状態における伝送路の負荷データとしてコマンド・レスポンス応答特性情報を用いる技術がある。（たとえば、下記特許文献１、２を参照。）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００９−５２２６６４号公報
【特許文献２】特開平７−５８７６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、システムに障害が発生するタイミングを検出することは難しい。
【０００５】
１つの側面では、本発明は、システムの障害が発生するタイミングを予測可能とすることができる分析方法、分析プログラム、および分析装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、複数のノードのうちの一部のノードが故障しても機能を実現可能なシステムを運用中のいずれかの期間に複数のノードのうちの故障したノードの個数を検出し、検出した故障したノードの個数と期間とに基づいて、期間以降に単位時間当たりに故障するノードの個数を算出する分析方法、分析プログラム、および分析装置が提案される。
【発明の効果】
【０００７】
本発明の一態様によれば、システムの障害が発生するタイミングを予測可能とすることができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態１にかかるシステムの動作例を示す説明図である。
【図２】図２は、実施の形態１にかかるセンサーネットワークシステムの接続例を示す説明図である。
【図３】図３は、サーバのハードウェア構成例を示すブロック図である。
【図４】図４は、データ集約装置のハードウェア構成例を示すブロック図である。
【図５】図５は、ノードのハードウェア構成例を示すブロック図である。
【図６】図６は、実施の形態１にかかるサーバの機能構成例を示すブロック図である。
【図７】図７は、センサーネットワークシステムの開発から運用までのシナリオを示す説明図である。
【図８】図８は、良品率ＤＢの記憶内容の一例を示す説明図である。
【図９】図９は、全品検査品と抜き取り検査品との良品率の時間経過の一例を示す説明図である。
【図１０】図１０は、抜き取り検査品を冗長数散布した際の運用中良品率の時間経過を示す説明図である。
【図１１】図１１は、ノードを追加散布すべきか否かの判断と、追加すべきノードの個数の一例を示す説明図である。
【図１２】図１２は、ノードの追加散布の一例を示す説明図である。
【図１３】図１３は、ノードによるセンサーネットワークシステム運用処理手順の一例を示すフローチャートである。
【図１４】図１４は、分析処理手順の一例を示すフローチャートである。
【図１５】図１５は、実施の形態２にかかるセンサーネットワークシステムの接続例を示す説明図である。
【図１６】図１６は、シミュレータの機能構成例を示すブロック図である。
【図１７】図１７は、故障するノードをランダムに変えた場合のシミュレーションの結果の一例を示す説明図である。
【図１８】図１８は、ノードが構築する通信経路の変更の一例を示す説明図（その１）である。
【図１９】図１９は、ノードが構築する通信経路の変更の一例を示す説明図（その２）である。
【図２０】図２０は、ノードが構築する通信経路の変更の一例を示す説明図（その３）である。
【図２１】図２１は、ノードが構築する通信経路の変更の一例を示す説明図（その４）である。
【図２２】図２２は、機能維持指標値出力処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に図面を参照して、開示の分析方法、分析プログラム、および分析装置の実施の形態を詳細に説明する。
【００１０】
（実施の形態１の説明）
図１は、実施の形態１にかかるシステムの動作例を示す説明図である。実施の形態１にかかるシステム１００は、複数のノード＃１〜Ｎを含む。Ｎは、２以上の整数である。複数のノード＃１〜Ｎの各々のノードは、通信装置である。システム１００は、複数のノード＃１〜Ｎに処理を実行させるシステムである。たとえば、複数のノード＃１〜Ｎが、所定領域に散布されており、システム１００は、複数のノードの各ノードが有するセンサーから取得した計測結果を取得して、システム１００を利用する利用者に、所定領域の情報を提供するという機能を有する。また、システム１００は、複数のノード＃１〜Ｎに、ある処理を分散した処理を実行させて、ある時間以内に、ある処理の結果を利用者に提供するという機能を有してもよい。
【００１１】
ここで、システム１００は、複数のノード＃１〜Ｎのうちの一部のノードが故障しても機能を実現可能なシステムである。具体的に、複数のノードの個数を示すＮが、機能を実現可能なノードの個数より多ければ、システム１００は、複数のノード＃１〜Ｎのうちの一部のノードが故障しても機能を実現可能なシステムとなる。ここで、故障したノードとは、通信可能でないノードである。たとえば、通信可能でないノードとなる場合の一例としては、経年劣化により、ノードを形成するハードウェアの一部が破損した場合である。また、通信可能でないノードとなる場合の他の例としては、複数のノード＃１〜Ｎの電力が無くなった場合である。
【００１２】
ところで、一般的な工業製品は、機能を維持できる保障期間が設定される場合がある。ここで、工業製品の運用期間が保障期間を超えたとしても、工業製品はそのまま機能を維持できることが多いが、保障期間を超えた後の次の瞬間に故障する可能性があるため、どのタイミングで機能を維持できなくなるか予測することは難しい。
【００１３】
そこで、本実施の形態にかかる分析装置１０１は、複数のノード＃１〜Ｎの一部のノードが故障しても機能を実現可能なシステム１００の運用中の期間内で故障したノードの個数から、期間以降に単位時間当たりに故障するノードの個数を算出する。これにより、分析装置１０１は、システム１００の障害の発生タイミングが予測可能になる。たとえば、分析装置１０１は、期間以降に単位時間当たりに故障するノードの個数を用いて、故障していないノードの個数が、機能が維持できるノードの個数を下回る時刻をシステム１００の障害の発生タイミングとして算出することができる。また、システム１００の運用者が、期間以降に単位時間当たりに故障するノードの個数を閲覧することにより、システム１００の障害の発生タイミングを予測することもできる。
【００１４】
分析装置１０１は、複数のノード＃１〜Ｎの一部のノードが故障した際に、システム１００の障害の発生タイミングを予測可能にする、一部のノードが故障した期間以降に単位時間当たりに故障するノードの個数を算出するコンピュータである。分析装置１０１とシステム１００との関係について、分析装置１０１は、システム１００に直接接続し、故障したノードの個数を検出してもよい。または、システム１００が外部のネットワークから遮断された状態であるとする。このとき、システム１００に接続可能な携帯端末が、複数のノード＃１〜Ｎのうち、故障したノードの個数を取得し、分析装置１０１は、前述の携帯端末から、故障したノードの個数を検出してもよい。
【００１５】
また、故障したノードの個数の検出について、分析装置１０１が検出してもよいし、故障したノードに隣接するノードが検出してもよい。分析装置１０１が検出する例としては、分析装置１０１が複数のノード＃１〜Ｎから定期的にデータを受け付けるとする。このとき、ある時刻におけるデータ数より、ある時刻の次の時刻におけるデータ数が少ない際に、分析装置１０１は、ある時刻におけるデータ数と次の時刻におけるデータ数との差分を、故障したノードの個数として検出する。また、故障したノードに隣接するノードが検出する例としては、あるノードの隣接するノードから、ある時刻においてデータを受け付けたにも関わらず、次の時刻においてデータを受け付けない場合、あるノードは、隣接するノードが故障したとして検出する。
【００１６】
図１の（Ａ）の例では、分析装置１０１は、システム１００に直接接続する例を示す。そして、図１の（Ａ）の例では、いずれかの期間ｐｒｄの間に、ノード＃１、３が故障した場合を示す。いずれかの期間ｐｒｄは、システム１００の運用中の期間であればいつでもよい。たとえば、いずれかの期間ｐｒｄは、システム１００の運用開始時刻から現時刻までの期間でもよいし、システム１００が運用開始してから、故障したノードを初めて検出した時刻から現時刻までの期間でもよい。
【００１７】
分析装置１０１は、システム１００を運用中のいずれかの期間に複数のノードのうちの故障したノードの個数を検出する。図１の（Ａ）の例では、分析装置１０１は、期間ｐｒｄの間に故障したノードの個数Ｎｔが２［個］であると検出する。続けて、分析装置１０１は、検出した故障したノードの個数と期間ｐｒｄとに基づいて、期間ｐｒｄ以降に単位時間当たりに故障するノードの個数Ｎｐｅｒを算出する。単位時間は、どのような時間間隔でもよい。たとえば、システム１００は、単位時間を、１日、１０日、１か月等に設定することができる。
【００１８】
図１の（Ｂ）は、単位時間当たりに故障する個数を算出する値を、グラフ１１０を用いて図示したものである。グラフ１１０の横軸は、運用期間である。グラフ１１０の縦軸は、故障していないノードの個数を示す。たとえば、分析装置１０１は、Ｎｐｅｒ＝Ｎｔ／ｐｒｄにより算出する。
【００１９】
Ｎｐｅｒを算出後、分析装置１０１は、Ｎｐｅｒを出力する。システム１００の運用者は、Ｎｐｅｒを閲覧して、たとえば、システム１００にノードを追加すべきか否かを判断する。たとえば、Ｎｐｅｒがシステム１００の運用者の想定した値より大きければ、システム１００の運用者は、システム１００にノードを追加すべきと判断する。
【００２０】
次に、システム１００をセンサーネットワークシステムに適用した例を、図２を用いて説明する。
【００２１】
図２は、実施の形態１にかかるセンサーネットワークシステムの接続例を示す説明図である。センサーネットワークシステム２００は、複数のノード＃１〜Ｎが互いに通信を行い、ノードのデータを収集することができるシステムである。センサーネットワークシステム２００は、複数のノード＃１〜Ｎと、集約装置ＡＧと、ゲートウェイＧＷと、サーバ２０１と、データ分析コンピュータ２０２とを有する。サーバ２０１と、データ分析コンピュータ２０２とはネットワークＮＥＴにより接続される。ここで、サーバ２０１は、図１における分析装置１０１に相当する。
【００２２】
センサーネットワークシステム２００は、斜面などのセンシングフィールドＡＲに複数のノードを設け、ノードに含まれるセンサーが計測する圧力の値に基づいて、センシングフィールドＡＲの崩落を監視する。また、ノードは、斜面に限らず、たとえば、圃場や建造物などのコンクリート、土、水、空気などの物質で満たされた領域に設けられてもよい。また、ノードに含まれるセンサーは、たとえば、温度や水分量、振動の大きさなどを計測してもよい。
【００２３】
複数のノードの各ノードは、定期的に設定される通信経路に従ってマルチホップ通信によりデータを送受信する。通信経路は、センサーネットワークシステム２００の運用開始時に設定されたり、ノードが追加散布された際に設置されたりする。
【００２４】
集約装置ＡＧは、受信した収集データを集約し、集約したデータをサーバ２０１に送信する装置である。集約装置ＡＧは、センサーを有するノードであってもよい。
【００２５】
ゲートウェイＧＷは、サーバ２０１からの信号を集約装置ＡＧへ送信し、また、集約装置ＡＧからの信号をサーバ２０１へ送信する装置である。
【００２６】
サーバ２０１は、センサーネットワークシステム２００に散布されたノードのうち、単位時間当たりに故障したノードの個数を算出するコンピュータである。
【００２７】
データ分析コンピュータ２０２は、収集したデータを用いて、センシングフィールドＡＲの状態を分析するコンピュータである。
【００２８】
（サーバ２０１のハードウェア構成例）
図３は、サーバのハードウェア構成例を示すブロック図である。図３において、サーバ２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、を含む。また、サーバ２０１は、ディスクドライブ３０４およびディスク３０５と、通信インターフェース３０６と、を含む。また、ＣＰＵ３０１〜通信インターフェース３０６はバス３０７によってそれぞれ接続される。
【００２９】
ＣＰＵ３０１は、サーバ２０１の全体の制御を司る演算処理装置である。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される揮発性メモリである。
【００３０】
ディスクドライブ３０４は、ＣＰＵ３０１の制御に従ってディスク３０５に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ３０４には、たとえば、磁気ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク３０５は、ディスクドライブ３０４の制御で書き込まれたデータを記憶する不揮発性メモリである。たとえばディスクドライブ３０４が磁気ディスクドライブである場合、ディスク３０５には、磁気ディスクを採用することができる。また、ディスクドライブ３０４がソリッドステートドライブである場合、ディスク３０５には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
【００３１】
通信インターフェース３０６は、ネットワークと内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース３０６は、通信回線を通じてネットワークを介して他の装置に接続される。通信インターフェース３０６には、たとえば、モデムやＬＡＮアダプタなどを採用することができる。
【００３２】
また、センサーネットワークシステム２００の運用者が、直接サーバ２０１を操作する場合、サーバ２０１は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。
【００３３】
また、データ分析コンピュータ２０２のハードウェア構成については、図示しないが、ＣＰＵ、ＲＯＭ、ＲＡＭ、ディスクドライブ、ディスク、通信インターフェース、ディスプレイ、キーボード、マウスを有する。
【００３４】
（集約装置ＡＧのハードウェア構成例）
図４は、データ集約装置のハードウェア構成例を示すブロック図である。集約装置ＡＧは、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、大容量不揮発メモリ４０４と、Ｉ／Ｏ回路４０５と、無線通信回路４１１と、アンテナ４１２と、通信インターフェース４１３と、を有する。ＣＰＵ４０１は、集約装置ＡＧ全体の制御を司る演算処理装置である。また、集約装置ＡＧは、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、大容量不揮発メモリ４０４と、Ｉ／Ｏ回路４０５と、を接続するバス４０６を有する。集約装置ＡＧは、ノードと異なり外部電源に基づき動作してもよいし、内部電源に基づき動作してもよい。大容量不揮発メモリ４０４は、読書可能な記憶装置であって、電力供給が途絶えたときにおいても書き込まれた所定のデータを保持する。たとえば、大容量不揮発メモリ４０４は、ＨＤＤ、フラッシュメモリ等が採用される。
【００３５】
また、Ｉ／Ｏ回路４０５には、無線通信回路４１１およびアンテナ４１２と、通信インターフェース４１３が接続される。これにより、集約装置ＡＧは、無線通信回路４１１およびアンテナ４１２を介して、周辺のノードと無線通信することができる。さらに、集約装置ＡＧは、通信インターフェース４１３を介して、ＩＰのプロトコル処理などにより、サーバ２０１と通信を行うことができる。
【００３６】
（ノードのハードウェア構成例）
図５は、ノードのハードウェア構成例を示すブロック図である。図５の例では、複数のノード＃１〜Ｎのうち、ノード＃１を例として、ノード＃１のハードウェア構成を示す。ノード＃１以外の他のノードも、ノード＃１と同様のハードウェア構成となる。ノード＃１は、マイクロプロセッサ（以下、「ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）」と称する。）５０１と、センサー５０２と、無線通信回路５０３と、ＲＡＭ５０４と、ＲＯＭ５０５と、不揮発メモリ５０６と、アンテナ５０７と、ハーベスタ５０８と、バッテリ５０９と、を有する。ノード＃１は、ＭＣＵ５０１と、センサー５０２と、無線通信回路５０３と、ＲＡＭ５０４と、ＲＯＭ５０５と、不揮発メモリ５０６と、を接続するバス５１０を有する。
【００３７】
ＭＣＵ５０１は、ノード＃１の全体の制御を司る演算処理装置である。たとえば、ＭＣＵ５０１は、センサー５０２が検出したデータを処理する。センサー５０２は、設置箇所における所定の変位量を検出する装置である。センサー５０２は、たとえば、設置箇所の圧力を検出する圧電素子や、温度を検出する素子、光を検出する光電素子などを用いることができる。アンテナ５０７は、親機と無線通信する電波を送受信する。無線通信回路５０３（ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ））は、受信した無線電波を受信信号として出力し、送信信号を無線電波としてアンテナ５０７を介して送信する。無線通信回路５０３は、数１０ｃｍ付近にある他ノードと通信可能とする短距離無線が採用された通信回路でよい。
【００３８】
ＲＡＭ５０４は、ＭＣＵ５０１における処理の一時データを格納する記憶装置である。ＲＯＭ５０５は、ＭＣＵ５０１が実行する処理プログラムなどを格納する記憶装置である。不揮発メモリ５０６は、読書可能な記憶装置であって、電力供給が途絶えたときにおいても書き込まれた所定のデータを保持する。たとえば、不揮発メモリ５０６は、フラッシュメモリ等が採用される。
【００３９】
ハーベスタ５０８は、図１で説明したエナジーハーベスト素子であり、ノード＃１の設置箇所における外部環境、たとえば、光、振動、温度、無線電波（受信電波）などのエネルギー変化に基づき発電を行う装置である。また、ハーベスタ５０８は、センサー５０２によって検出された変位量に応じて発電を行ってもよい。バッテリ５０９は、ハーベスタ５０８により発電された電力を蓄える装置である。すなわち、ノード＃１は、外部電源などが不要であり、動作に要求される電力を自装置の内部で生成する。
【００４０】
（サーバ２０１の機能構成例）
図６は、実施の形態１にかかるサーバの機能構成例を示すブロック図である。サーバ２０１は、制御部６００と、良品率ＤＢ６１０と、を含む。制御部６００は、検出部６０１と、第１算出部６０２と、判断部６０３と、第２算出部６０４と、第３算出部６０５とを含む。制御部６００は、記憶装置に記憶された実施の形態１における分析プログラムをＣＰＵ３０１が実行することにより、制御部６００の機能を実現する。記憶装置とは、具体的には、たとえば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、ディスク３０５などである。また、検出部６０１〜第３算出部６０５の処理結果は、ＣＰＵ３０１が有するレジスタや、ＲＡＭ３０３等に記憶される。
【００４１】
また、サーバ２０１は、良品率ＤＢ６１０にアクセス可能である。良品率ＤＢ６１０は、ＲＡＭ３０３、ディスク３０５といった記憶装置に格納される。良品率ＤＢ６１０の記憶内容の一例は、図８で後述する。
【００４２】
検出部６０１は、センサーネットワークシステム２００を運用中のいずれかの期間に複数のノード＃１〜Ｎのうちの故障したノードの個数を検出する。たとえば、検出部６０１は、複数のノード＃１〜Ｎのうちのいずれかの期間の開始時刻に通信可能なノードの個数と、いずれかの期間の終了時刻に通信可能なノードの個数との差分を、故障したノードの個数として検出する。
【００４３】
第１算出部６０２は、検出部６０１が検出した故障したノードの個数といずれかの期間とに基づいて、いずれかの期間以降に単位時間当たりに故障するノードの個数を算出する。
【００４４】
また、第１算出部６０２は、単位時間当たりに故障するノードの個数と、複数のノード＃１〜Ｎのうちのいずれかの期間の終了時刻に故障していないノードの個数とに基づいて、いずれかの期間以降のいずれかの時刻に故障していないノードの個数を算出してもよい。ここで、故障していないノードとは、通信可能なノードである。以下、故障していないノードを、「運用中のノード」と呼称する場合がある。
【００４５】
たとえば、単位時間当たりに故障するノードの個数がＮｔであり、複数のノード＃１〜Ｎのうちのいずれかの期間の終了時刻Ｔｅｎｄに故障していないノードの個数Ｎｅｎｄとする。このとき、第１算出部６０２は、いずれかの時刻ｔに故障していないノードの個数を、Ｎｅｎｄ−Ｎｔ×（ｔ−Ｔｅｎｄ）／単位時間というように算出する。
【００４６】
判断部６０３は、単位時間当たりに故障するノードの個数と複数のノードのうちのいずれかの期間の終了時刻に故障していないノードの個数とに基づいて、いずれかの期間以降のいずれかの時刻に故障していないノードの個数が、所定数未満となるか否かを判断する。ここで、所定数は、機能を実現可能なノードの個数を示す数値である。以下、所定数を、「機能維持の閾値」と称する。機能維持の閾値は、良品率ＤＢ６１０や、ＲＡＭ３０３等に記憶される。いずれかの期間以降のいずれかの時刻に故障していないノードの個数について、判断部６０３は、第１算出部６０２と同様の方法で求める。
【００４７】
判断部６０３がいずれかの時刻に故障していないノードの個数が機能維持の閾値未満であると判断したとする。この場合に、第２算出部６０４は、いずれかの時刻に故障していないノードの個数と機能維持の閾値とに基づいて、いずれかの時刻までにセンサーネットワークシステム２００に追加すべきノードの個数を算出する。具体的な、追加すべきノードの個数の算出例は、図１１で後述する。
【００４８】
また、第２算出部６０４は、予め良品率ＤＢ６１０に記憶されたノードの良品率と、いずれかの時刻に故障していないノードの個数と、機能維持の閾値とに基づいて、追加すべきノードの個数を算出してもよい。また、第２算出部６０４は、ノード製造時における製造数単位であるロットごとに、ロット単位のノードの良品率と、いずれかの時刻に故障していないノードの個数と、機能維持の閾値とに基づいて、追加すべきノードの個数を算出してもよい。良品率に基づく追加すべきノードの個数の算出例も、図１１で後述する。
【００４９】
第３算出部６０５は、ロットごとに、予め良品率ＤＢ６１０に記憶されたロット単位のノードの単価と、算出した追加すべきノードの個数とに基づいて、追加すべきノードの個数分のノードをセンサーネットワークシステム２００に追加する際のコストを算出する。コストの算出例も、図１１で後述する。
【００５０】
図７は、センサーネットワークシステムの開発から運用までのシナリオを示す説明図である。開発から運用までのシナリオは、大きく分類して、開発シナリオ７０１と、配布シナリオ７０２と、設置シナリオ７０３と、運用シナリオ７０４とがある。また、開発から運用までのシナリオの途中で生成された情報が、良品率ＤＢ６１０に格納される。良品率ＤＢ６１０は、サーバ２０１が有するデータベースである。
【００５１】
開発シナリオ７０１は、製造業者によりノードの設計と製造とを繰り返すシナリオである。製造したノードに対する出荷検査が終了した後、設計者は、製造したノードと、ノードに付与した製造業者を特定するベンダーＩＤとロットを特定するロットＩＤと、サーバ２０１が行う機能認証試験（ＩＯＴ：ＩｎｔｅｒＯｐｅｒａｂｉｌｉｔｙ  Ｔｅｓｔｉｎｇ）を行うプログラムとを記憶する記憶媒体と、を卸業者に提供する。
【００５２】
ここで、ロットについて説明する。ロットは、ノード製造時における製造数単位である。小量生産、高単価なノードについて、製造業者は、全品検査を行い、正確な歩留まりをカウントする。また、高単価なノードについて、製造業者は、良品率を上げるために、製造時においてコストをかけたり、設計時において、回路の冗長性を考慮したりする。一方で、大量生産、低単価なノードについて、製造業者は、抜き取り検査で、ロット単位の歩留まり管理を行う。
【００５３】
ここで、出荷検査では、前述した全品検査または抜き取り検査が行われる。製造業者は、出荷段階において、ロットに含まれるノード群のうち良品であるノードの割合を示す出荷時良品率も記憶媒体に格納する。良品率は、全品検査が行われたノードなのか、または抜き取り検査が行われたノードなのかによって変動する値である。以下、全品検査が行われたノードを「全品検査ノード」と呼称する。また、抜き取り検査が行われたノードを「抜き取り検査ノード」と呼称する。全品検査ノードと抜き取り検査ノードとが同一のセンシングフィールドＡＲに混在しても、同一のプロトコルを実行することができれば、センサーネットワークシステム２００を構築することができる。
【００５４】
また、製造業者は、製造時または検査時において、ノードを運用する、またはノードの運用をシミュレーションした結果により得られる、運用期間と、運用期間中の良品率とを対応付けた出荷時良品率時間経過情報を記憶媒体に格納する。出荷時良品率と出荷時良品率時間経過情報については、図８で後述する。また、図１１で、出荷時良品率時間経過情報を図示する。
【００５５】
配布シナリオ７０２は、製造業者により製造が終了した後に行うシナリオであり、卸業者によりノードと記憶媒体とを配布するシナリオである。設置シナリオ７０３は、卸業者からノードと記憶媒体とを購入したセンサーネットワークシステム２００の設置者によりノードを設置するシナリオである。より詳細には、設置シナリオ７０３は、設置者により、ノードを設置する場所を計画し、ノードを取り付け、取り付けたノードを調節するシナリオである。サーバ２０１は、設置者の操作により、記憶媒体に格納された情報と、購入時のノードと記憶媒体との販売価格に基づくノードの単価と、取り付けたノードの総数とを、良品率ＤＢ６１０に格納する。
【００５６】
運用シナリオ７０４は、センサーネットワークシステム２００の運用者によりセンサーネットワークシステム２００を運用するシナリオである。より詳細には、運用シナリオ７０４は、運用サブシナリオ７１１とメンテナンスサブシナリオ７１２とを繰り返す。
【００５７】
運用サブシナリオ７１１は、運用者により、通常運用とロバスト制御とを行うシナリオである。通常運用は、たとえば、１０分ごとに行う運用である。ロバスト制御は、マイナーエラーが発生したときに行う運用である。
【００５８】
メンテナンスサブシナリオ７１２は、通常メンテナンスと緊急メンテナンスとを行うシナリオである。通常メンテナンスは、定期的に行うメンテナンスである。緊急メンテナンスは、緊急に行うメンテナンスである。たとえば、緊急メンテナンスとして、設置したノードのハードウェアに致命的な不具合が検出された際に、運用者は、設置したノードを、不具合を解消したノードとを取り替える。また、不具合が修理可能なものであれば、運用者は、設置したノードのうちの不具合がある箇所を修理する。また、何らかの追加機能を有するハードウェアにより不具合が解消するのであれば、運用者は、設置したノードにハードウェアを追加する。
【００５９】
通常運用と、ロバスト制御と、通常メンテナンスとは、図７に示すステップＳ７２１〜ステップＳ７２６を、サーバ２０１、ノードが実行することにより実現する。具体的に、通常運用は、ステップＳ７２１〜ステップＳ７２５が実行されることにより実現される。また、ロバスト制御は、ステップＳ７２６が実行されることにより実現される。また、通常メンテナンスは、ステップＳ７２３〜ステップＳ７２６が実行されることにより実現される。
【００６０】
ノードは、周囲の状態を計測する（ステップＳ７２１）。次に、データ分析コンピュータ２０２は、収集したデータを用いて、センシングフィールドＡＲのノードの状態を分析する（ステップＳ７２２）。続けて、サーバ２０１は、異常を検出したか否かを判断する（ステップＳ７２３）。たとえば、ノードが定期的にサーバ２０１にデータを送信するとして、前回データを送信してきたにも関わらず、今回データを送信してこなかったノードがあった場合に、サーバ２０１は、異常を検出したと判断する。
【００６１】
異常を検出しなかった場合（ステップＳ７２３：Ｎｏ）、サーバ２０１は、引き続きノードからのデータを受信する。異常を検出した場合（ステップＳ７２３：Ｙｅｓ）、サーバ２０１は、機能を維持できるか否かを判断する（ステップＳ７２４）。機能を維持できるか否かは、故障していないノードの個数と機能維持の閾値との比較により行える。
【００６２】
機能を維持できると判断した場合（ステップＳ７２４：Ｙｅｓ）、サーバ２０１は、警告をデータ分析コンピュータ２０２等に出力して（ステップＳ７２５）、引き続きノードからのデータを受信する。機能を維持できないと判断した場合（ステップＳ７２４：Ｎｏ）、サーバ２０１は、フェールセーフを行うべき旨を出力し（ステップＳ７２６）、引き続きノードからのデータを受信する。フェールセーフを行うべき旨を閲覧した運用者は、対策として、ノードを追加散布する。
【００６３】
図８は、良品率ＤＢの記憶内容の一例を示す説明図である。良品率ＤＢ６１０は、ＩＯＴプログラム８０１と、ＣＥＲＴ／Ａｕｔｈ８０２と、Ｔｒａｃｅ８０３とを記憶する。ＩＯＴプログラム８０１は、設置シナリオ７０３、運用シナリオ７０４時にサーバ２０１で実行されるプログラムである。たとえば、サーバ２０１は、ＩＯＴプログラム８０１に従って、ベンダーＩＤと、ロットＩＤとの取得要求をノードに通知する。このとき、ＩＤを通知しないノードがある場合、または、良品率ＤＢ６１０に登録されたベンダーＩＤ、ロットＩＤ以外のＩＤを通知したノードがある場合、サーバ２０１は、不明ＩＤとして処理する。
【００６４】
ＣＥＲＴ／Ａｕｔｈ８０２は、ベンダーＩＤと、ロットＩＤとの組ごとに、ノードに関する情報を記憶する。具体的に、ＣＥＲＴ／Ａｕｔｈ８０２は、ベンダーＩＤと、ロットＩＤと、単価と、出荷時良品率と、出荷時良品率時間経過情報とを記憶する。
【００６５】
ベンダーＩＤは、ノードを製造した製造業者を特定する情報である。ロットＩＤは、ロットを特定する情報である。単価は、購入時のノードと記憶媒体との販売価格に基づく、ノード一個当たりの価格である。出荷時良品率は、出荷段階において、ベンダーＩＤおよびロットＩＤにより特定されるノード群のうち良品であるノードの割合を示す。たとえば、全品検査ノードは、全てが良品であることが保障されるため、出荷時良品率は、１００［％］となる。出荷時良品率時間経過情報は、ベンダーＩＤおよびロットＩＤにより特定されるノード群の運用期間と運用中におけるノード群のうち良品であるノードの割合を示す良品率とを対応付けた情報である。たとえば、出荷時良品率時間経過情報は、ベンダーＩＤおよびロットＩＤにより特定されるノードを１００個運用させた際に、６０か月後に１個故障する、６１か月後に２個故障する、といった内容である。償却単価は、ベンダーＩＤおよびロットＩＤにより特定されるノード群の購入単価を使用期間で除した値である。
【００６６】
たとえば、図８では、全品検査ノードには、ベンダーＩＤとして１、ロットＩＤとして１が付与されており、単価がノード１つ当たり１００［円］であり、出荷時良品率が１００［％］であることを示す。
【００６７】
Ｔｒａｃｅ８０３は、センサーネットワークシステム２００の運用中に起きた状態変化を記憶するデータである。たとえば、Ｔｒａｃｅ８０３は、センサーネットワークシステム２００が運用開始してから、ベンダーＩＤおよびロットＩＤにより特定されるノード群のうち、何個故障したかを記憶する。
【００６８】
たとえば、図８の例では、２０か月目に、ベンダーＩＤとして１、ロットＩＤとして２が付与された抜き取り検査ノードが故障した個数が２個であり、３５か月目に、抜き取り検査ノードが故障した個数が３個であることを示す。
【００６９】
次に、図９と図１０とを用いて、全品検査品と抜き取り検査品との出荷時良品率時間経過情報について図示する。図９では、全品検査品を過不足無く散布した例と、抜き取り検査品とを過不足無く散布した場合を示す。また、図１０では、さらに、抜き取り検査品を冗長に散布した場合を示す。また、図９、図１０に示す出荷時良品率時間経過情報は、故障するノードをランダムで付加した際のシミュレーション結果である。
【００７０】
図９は、全品検査品と抜き取り検査品との良品率の時間経過の一例を示す説明図である。図９では、全品検査ノードの出荷時良品率時間経過情報と、抜き取り検査ノードの出荷時良品率時間経過情報とをグラフ９０１としてプロットした図を用いて、運用中良品率の時間経過を説明する。ここで、運用中良品率とは、センサーネットワークシステム２００の運用中における、センシングフィールドＡＲに散布すべきノードの個数に対して、良品であるノードの割合を示す。センシングフィールドＡＲに散布すべきノードの個数は、センサーネットワークシステム２００の運用者が指定する値である。たとえば、運用者は、センシングフィールドＡＲの面積を、ノードが隣のノード通信可能な面積で除した値を、センシングフィールドＡＲに散布すべきノードの個数に指定する。
【００７１】
グラフ９０１は、運用中良品率の時間経過を示すグラフである。グラフ９０１の横軸は運用期間を示す。グラフ９０１の縦軸は、運用中良品率を示す。また、センサーネットワークシステム２００の機能を維持できる運用中良品率の閾値を、点線９０２で示すように９０［％］とする。
【００７２】
全品検査ノードを１００［％］散布した場合に、全品検査ノードは、白抜きの菱型で表したプロットのような特性を示すとする。グラフ９０１は、全品検査ノードを１００［％］散布したセンサーネットワークシステム２００の運用を続けていき、６０か月を過ぎるあたりから、経年劣化により徐々に故障していく例を示す。このとき、時間経過に対する運用中良品率は、時間的に局所的な故障もありえるため多少上下するが、大局的には単調減少となる。そして、運用中良品率は、８２か月目頃に、点線９０２を下回る状態になるとする。運用開始の時点から、点線９０２を下回るまでの期間を「機能保障期間」と呼称する。全品検査ノードを１００［％］散布した際の機能保障期間は８２か月となる。
【００７３】
ここで、出荷時良品率時間経過情報と、センサーネットワークシステム２００を運用した際の時間経過に対する運用中良品率とは、異なる傾向を示すことがある。異なる傾向を示す理由としては、環境が一様では無いためである。すなわち、動作環境によっては、より早まる場合もあるし、遅くなることもあるため、出荷時良品率時間経過情報を用いて単純な補間処理を行うだけでは、センサーネットワークシステム２００の運用中のノードの劣化特性を方程式化することはできない。
【００７４】
一方、抜き取り検査ノードを１００［％］散布した場合に、抜き取り検査ノードは、白抜きの正方形で表したプロットのような特性を示すとする。抜き取り検査ノードにおいては、出荷時良品率が９５％であるから、品質には一定のバラツキがあり、全品検査ノードと同様に、品質劣化が始まる。グラフ９０１には、６０か月の時点で機能維持の閾値を下回る例を記載する。抜き取り検査ノードを１００［％］散布した際の機能保障期間は６０か月となる。抜き取り検査ノードにおいても、出荷からの劣化特性を単純な方程式で表現することはできない。
【００７５】
図１０は、抜き取り検査品を冗長数散布した際の運用中良品率の時間経過を示す説明図である。図１０では、グラフ９０１で示した状態から、さらに、抜き取り検査ノードを１２０［％］散布した際の出荷時良品率時間経過情報を、グラフ１００１としてプロットした図を用いて、運用中良品率の時間経過を説明する。
【００７６】
抜き取り検査ノードを１２０［％］散布した場合、白抜きの三角形で表したプロットのような特性を示す。抜き取り検査ノードを１２０［％］散布した場合のプロットは、抜き取り検査ノードを１００［％］散布した場合のプロットを、縦方向に２０［％］拡大したものとなる。
【００７７】
品質が安定しない抜き取り検査ノードであるが、２０［％］増量して散布することにより、図１０の例では、全品検査ノードと同じ機能保障期間である８２か月時点で追加散布のポイントを迎える。
【００７８】
次に、図１１を用いて、ノードを追加散布すべきか否かの判断方法と、追加散布すべきであればいくつ散布すべきかについて説明する。
【００７９】
図１１は、ノードを追加散布すべきか否かの判断と、追加すべきノードの個数の一例を示す説明図である。図１１の（Ａ）では、ノードを追加散布すべきか否かの判断と、全品検査ノードを追加するとした場合の追加すべきノードの個数の算出方法の一例を示す。また、図１１の（Ｂ）では、抜き取り検査ノードを追加するとした場合の追加すべきノードの個数の算出方法の一例を示す。また、図１１の（Ｃ）では、全品検査ノードと抜き取り検査ノードとのうち、どちらを追加散布したほうがよいかの指標となるコストの算出例について説明する。
【００８０】
図１１の（Ａ）で示すグラフ１１０１と白抜きの菱型は、全品検査ノードを１００［％］散布した際の出荷時良品率時間経過情報をプロットしたものである。また、白抜きの丸は、全品検査ノードを１００［％］散布して、実際にセンサーネットワークシステム２００を運用した際の、Ｔｒａｃｅ８０３から得られる故障したノードをプロットしたものである。
【００８１】
グラフ１１０１は、運用中良品率の時間経過を示すグラフである。グラフ１１０１が示すように、実際にセンサーネットワークシステム２００を運用した結果、出荷時良品率時間経過情報より環境が劣悪であったため、運用中良品率の低下が出荷時良品率時間経過情報より早く始まる。
【００８２】
サーバ２０１は、Ｔｒａｃｅ８０３を参照して、運用期間に対する故障数を表す劣化近似関数Ｅ＝ｆ（ｔ）を作成する。ここで、Ｅは、ノードの故障数である。ｔは運用期間である。作成例として、たとえば、サーバ２０１は、劣化近似関数ｆ（ｔ）を、ｆ（ｔ）＝ａｔ＋ｂであるとして、係数ａと定数ｂとを、Ｔｒａｃｅ８０３を参照して作成する。最も簡単な作成例として、サーバ２０１は、現時刻ｔｘにおける故障数Ｅｘと、前回ノードが故障したということを検出した時刻ｔｙにおけるＥｙとを、ｆ（ｔ）＝ａｔ＋ｂに代入し、ａとｂとを求める。また、サーバ２０１は、３つ以上の時刻ｔにおける故障数Ｅを用いて、最小自乗法によりａとｂとを求めてもよい。
【００８３】
ここで、劣化近似関数Ｅ＝ｆ（ｔ）が、運用期間ｔを用いる関数である理由について説明する。ノードがいくつ故障するかについては、ノードが散布される環境に大きく依存するものであり、散布されるノードの良品率や散布したノードの個数の影響は小さいものとなる。したがって、本実施の形態においては、サーバ２０１は、散布されるノードの良品率や散布したノードの個数は使用せず、運用期間ｔと故障したノードの個数Ｅとを用いて劣化近似関数Ｅ＝ｆ（ｔ）を作成する。
【００８４】
劣化近似関数ｆ（ｔ）を作成した後、サーバ２０１は、現時刻Ｔ以降のいずれかの時刻Ｔ＋Δｔに故障していないノードの個数Ｎ'を、下記（１）式を用いて算出する。
【００８５】
Ｎ'＝Ｎ＋α―ｆ（Ｔ＋Δｔ）  …（１）
【００８６】
ここで、Ｎは、センシングフィールドＡＲに散布すべきノードの個数であり、ノードの初期散布数である。αは、ノードを冗長に散布した個数である。そして、サーバ２０１は、センサーネットワークシステム２００にノードを追加すべきか否かを、下記（２）式で示す不等式を満たすか否かにより判断する。
【００８７】
Ｎ'＜機能維持の閾値  …（２）
【００８８】
（２）式を満たす場合、サーバ２０１は、センサーネットワークシステム２００にノードを追加すべきと判断する。一方、（２）式を満たさない場合、サーバ２０１は、センサーネットワークシステム２００にノードを追加しなくてよいと判断する。グラフ１１０１では、冗長散布を行っていないためα＝０であり、現時刻Ｔを７０か月目、現時刻Ｔ以降のいずれかの時刻Ｔ＋Δｔを７５か月目とする。このとき、グラフ１１０１より、ｆ（Ｔ＋Δｔ）は、（１００−８７）×０．０１×Ｎ＝０．１３×Ｎ［個］となる。サーバ２０１は、Ｎ'を（１）式を用いて下記のように算出する。
【００８９】
Ｎ'＝Ｎ＋０−０．１３×Ｎ＝０．８７×Ｎ［個］
【００９０】
そして、機能維持の閾値を、０．９０×Ｎとすると、サーバ２０１は、（２）式により、センサーネットワークシステム２００にノードを追加すべきと判断する。
【００９１】
次に、追加すべきノードの個数を算出する例について説明する。追加すべきノードの個数を算出する方法としては、第１の算出方法と、第２の算出方法とがある。第１の算出方法としては、機能維持の閾値とＮ'との差分を出荷時良品率で除した値を、追加すべき個数として算出する方法である。
【００９２】
第１の算出方法を用いた場合、全品検査ノードを追加散布する場合、サーバ２０１は、追加すべきノードの個数を、（０．９０×Ｎ−０．８７×Ｎ）／１＝０．０３×Ｎ［個］と算出する。また、抜き取り検査ノードを追加散布する場合、サーバ２０１は、追加すべきノードの個数を、（０．９０×Ｎ−０．８７×Ｎ）／０．９５＝０．０３１６×Ｎ［個］と算出する。
【００９３】
第２の算出方法は、散布数を調整すると出荷時良品率時間経過情報のプロット位置を変動することを利用して、追加すべきノードの個数を算出する方法である。第２の算出方法の具体的な方法について、グラフ１１０２を用いて説明する。
【００９４】
図１１の（Ｂ）で示すグラフ１１０２において、白抜きの正方形は、抜き取り検査ノードを１００［％］散布した際の出荷時良品率時間経過情報をプロットしたものである。また、白抜きの丸は、全品検査ノードを１００［％］散布して、実際にセンサーネットワークシステム２００を運用した際の、Ｔｒａｃｅ８０３から得られる故障したノードをプロットしたものである。また、白抜きの五角形は、抜き取り検査ノードを１１２．５［％］散布した際の出荷時良品率時間経過情報をプロットしたものである。１１２．５［％］という数値の理由については後述する。
【００９５】
第２の算出方法では、まず、現時刻Ｔ以降のいずれかの時刻Ｔ＋Δｔにおいて、機能維持の閾値と一致するように、散布数を決定する。具体的には、グラフ１１０２が示すように、抜き取り検査ノードを１００［％］散布した際の出荷時良品率時間経過情報から、いずれかの時刻Ｔ＋Δｔ＝７５か月目の時点において故障していないノードの個数は、８０［％］×Ｎ個である。したがって、抜き取り検査ノードを（０．９０×Ｎ）／（０．８０×Ｎ）＝１．１２５＝１１２．５［％］散布した際の出荷時良品率時間経過情報は、７５か月目の時点で機能維持の閾値と一致するようになる。
【００９６】
続けて、第２の算出方法では、現時刻Ｔにおいて、１１２．５［％］散布した際の出荷時良品率時間経過情報と、現時刻Ｔにおける全品検査ノードを１００［％］運用した際の故障していないノードの個数との差分を、追加すべき個数とする。具体的には、グラフ１１０２が示すように、抜き取り検査ノードを１１２．５［％］散布した際の出荷時良品率時間経過情報から、現時刻Ｔ＝７０か月目の時点において故障していないノードの個数は、０．９６×Ｎ［個］である。また、現時刻Ｔにおける全品検査ノードを１００［％］運用した際の故障していないノードの個数は、０．９１×Ｎ［個］である。したがって、サーバ２０１は、追加すべき個数を、（０．９６×Ｎ−０．９１×Ｎ）＝０．０５×Ｎ［個］と算出する。
【００９７】
サーバ２０１は、算出した追加すべき個数を用いて、センサーネットワークシステム２００に追加する際のコストを算出する。具体的には、サーバ２０１は、下記（３）式を用いて、ノードを追加する際のコストＣｏを算出する。下記（３）式が示すコストは、ノードにかかる費用を、ノードが運用できる運用期間で除していることから、償却単価を示す。
【００９８】
コストＣｏ＝追加すべきノードの個数×ノードの単価／運用期間  …（３）
【００９９】
サーバ２０１は、全品検査ノード、抜き打ち検査ノードのうち、いずれを追加した方がよいかについて、（３）式で得た結果を比較して、値が小さい方を追加すべきノードであると判断する。ここで、運用期間は全品検査ノード、抜き打ち検査ノードとで同一の値となるため、サーバ２０１は、下記（３'）式を用いて判断してもよい。
【０１００】
コストＣｏ＝追加すべきノードの個数×ノードの単価  …（３'）
【０１０１】
ここで、（３'）式を用いて、コストを算出する例を示す。全品検査ノードを追加すべきノードの個数が、０．０３×Ｎ［個］であり、抜き取り検査ノードを追加すべきノードの個数が、０．０５×Ｎ［個］であるとする。このとき、図１１の（Ｃ）では、サーバ２０１は、（３'）式を用いて、全品検査ノードを追加する際のコストＣｏ＿ａと、抜き取り検査ノードを追加する際のコストＣｏ＿ｐを、下記のように算出する。
【０１０２】
コストＣｏ＿ａ＝（０．０３×Ｎ）×１００＝３×Ｎ
コストＣｏ＿ｐ＝（０．０５×Ｎ）×８０＝４×Ｎ
【０１０３】
サーバ２０１は、コストＣｏ＿ａ、コストＣｏ＿ｐを比較して、全品検査ノードを追加した方がよいことを出力する。また、単に、サーバ２０１は、コストＣｏ＿ａ、コストＣｏ＿ｐを出力してもよい。センサーネットワークシステム２００の運用者は、コストＣｏ＿ａ、コストＣｏ＿ｐを閲覧して、どちらを追加するかを決定する。図１１の（Ｃ）の例では、運用者は、コストＣｏ＿ａの方が小さいため、全品検査ノードを追加すると決定する。
【０１０４】
図１２は、ノードの追加散布の一例を示す説明図である。図１２には、センサーネットワークシステム２００に、ノードを散布する様子を状態１〜６で示す。状態１〜６において、"ａ"を有する白抜きの丸は、運用中の全品検査ノードを示す。また、"ｐ"を有する白抜きの丸は、運用中の抜き取り検査ノードを示す。"ｘ"を有する白抜きの丸は、故障したノードを示す。
【０１０５】
図１２に示す状態１は、センサーネットワークシステム２００の運用開始時点を示す。状態１において、センサーネットワークシステム２００には、全品検査ノードが散布されており、抜き取り検査ノードは散布されていない。
【０１０６】
図１２に示す状態２は、図１２に示す状態１から８２か月経過した後の状態である。図１２に示す状態２では、故障したノードが２個存在する。図１２に示す状態２において、サーバ２０１は、センサーネットワークシステム２００にノードを追加すべきと判断する。
【０１０７】
図１２に示す状態３は、図１２に示す状態２の後、センサーネットワークシステム２００の運用者により、抜き取り検査ノードを追加散布した状態である。ここで、追加散布する際、センシングフィールドＡＲのどの領域にノードが不足しているのかは不明である。図１２に示す状態３の例では、運用者がノードを追加散布した領域が、偶然にノードが不足した領域であった場合を示す。
【０１０８】
図１２に示す状態４は、図１２に示す状態３の後、ある程度時間経過した状態である。図１２に示す状態４では、故障したノードが３個存在する。図１２に示す状態４において、サーバ２０１は、センサーネットワークシステム２００にノードを追加すべきと判断する。
【０１０９】
図１２に示す状態５は、図１２に示す状態４の後、センサーネットワークシステム２００の運用者により、抜き取り検査ノードを追加散布した状態である。図１２に示す状態５では、運用者がノードを追加散布したが、領域１２０１と、領域１２０２とが、ノードの散布密度が低く、センサーネットワークシステム２００の機能維持が困難である。図１２に示す状態５において、引き続き、サーバ２０１は、センサーネットワークシステム２００にノードを追加すべきと判断する。
【０１１０】
ここで、図１２に示す状態５では、運用中であるノードの個数が実質機能維持の閾値より多いにも関わらず、サーバ２０１がセンサーネットワークシステム２００にノードを追加すべきと判断することができる理由について説明する。前述したことをできるようにするには、センサーネットワークシステム２００の各ノードが、運用中のノードが近くにあると判断した場合、近隣のノードと通信しないという特性を有すればよい。運用中のノードが近くにあると判断する方法としては、たとえば、電波を受信した際の受信強度が所定の閾値以上である場合、運用中のノードが近くにあると判断する方法がある。
【０１１１】
このように、ノードの散布密度が高い領域に含まれるノード群の一部が、近隣のノードと通信しないことにより、サーバ２０１が検出する、故障していないノードの個数が減少して、ノードの散布密度が低い領域があれば、機能維持の閾値を下回ることになる。また、ノードの散布密度が高い領域に含まれるノード群のうちの近隣のノードと通信しないノードは、運用中のノードが故障すると、近隣のノードとの通信を再開することになる。したがって、近隣のノードと通信してなかったノードも、いつかは近隣のノードとの通信を再開することになるため、追加散布したノードが無駄になることはない。
【０１１２】
図１２に示す状態６は、図１２に示す状態５の後、センサーネットワークシステム２００の運用者により、抜き取り検査ノードを追加散布した状態である。図１２に示す状態６の例では、運用者がノードを追加散布した領域が、ノードが不足した領域と重なったため、サーバ２０１は、センサーネットワークシステム２００にノードを追加しなくてよいと判断する。
【０１１３】
図１２に示した運用が長期間行われることにより、サーバ２０１は、償却単価を定量化することができ、運用者は、（３）式、（３'）式等で求めた値を閲覧して、コスト最適なノードの散布計画を立てることができる。次に、図１３と図１４とを用いて、複数のノード＃１〜Ｎの各ノードとサーバ２０１とが行うフローチャートについて説明する。
【０１１４】
図１３は、ノードによるセンサーネットワークシステム運用処理手順の一例を示すフローチャートである。ノードによるセンサーネットワークシステム運用処理は、センサーネットワークシステム２００の運用開始および運用中にノードが行う処理である。ノードは、ノードの通信経路を設定する（ステップＳ１３０１）。次に、ノードは、経過時間Ｔを０に設定する（ステップＳ１３０２）。ステップＳ１３０１とステップＳ１３０２は、センサーネットワークシステム２００の運用開始時点で行う処理である。
【０１１５】
続けて、ノードは、ノードの追加散布通知を受け付けたか否かを判断する（ステップＳ１３０３）。ノードの追加散布通知は、後述するステップＳ１４１２の処理によりサーバ２０１から受け付ける。ノードの追加散布通知を受け付けていない場合（ステップＳ１３０３：Ｎｏ）、ノードは、通常運用処理を実行する（ステップＳ１３０４）。ここで、通常運用処理とは、センサー５０２による周囲の状態の計測や、ＭＣＵ５０１、無線通信回路５０３、アンテナ５０７による計測した結果の送信処理等である。
【０１１６】
次に、ノードは、故障したノードを検出したか否かを判断する（ステップＳ１３０５）。故障したノードを検出した場合（ステップＳ１３０５：Ｙｅｓ）、ノードは、故障したノードの個数Ｅｘと、現在の時刻ｔｘとをサーバに通知する（ステップＳ１３０６）。ステップＳ１３０６の処理終了後、または、故障したノードを検出していない場合（ステップＳ１３０５：Ｎｏ）、ノードは、ステップＳ１３０３の処理に移行する。
【０１１７】
ノードの追加散布通知を受け付けた場合（ステップＳ１３０３：Ｙｅｓ）、ノードは、ノードの通信経路を再設定する（ステップＳ１３０７）。ステップＳ１３０７の処理終了後、ノードは、ステップＳ１３０３の処理に移行する。ノードによるセンサーネットワークシステム運用処理を実行することにより、ノードは、通常運用を行うことができる。
【０１１８】
図１４は、分析処理手順の一例を示すフローチャートである。分析処理は、センサーネットワークシステム２００のノードの状態を分析する処理である。
【０１１９】
サーバ２０１は、初期運用ノード数Ｎと、冗長ノード数αとを記憶する（ステップＳ１４０１）。次に、サーバ２０１は、故障したノードの個数Ｅｘと故障した時刻ｔｘとを検出したか否かを判断する（ステップＳ１４０２）。検出する例として、サーバ２０１は、ステップＳ１３０６の処理による複数のノード＃１〜Ｎのいずれかからの通知を受け付けて、ある時刻において故障したノードの個数Ｅｘと故障した時刻ｔｘとを検出する。また、サーバ２０１は、集約装置ＡＧから、ある時刻において故障していない個数を受け付けて、前回受け付けたノードの個数との差があった際に、故障したノードの個数Ｅｘと故障した時刻ｔｘとを検出してもよい。
【０１２０】
故障したノードの個数Ｅｘと故障した時刻ｔｘとを検出していない場合（ステップＳ１４０２：Ｎｏ）、サーバ２０１は、ステップＳ１４０２の処理に移行する。故障したノードの個数Ｅｘと故障した時刻ｔｘとを検出した場合（ステップＳ１４０２：Ｙｅｓ）、サーバ２０１は、過去の故障したノードの個数および時刻と、Ｅｘ，ｔｘを用いて、劣化近似関数Ｅ＝ｆ（ｔ）を生成する（ステップＳ１４０３）。次に、サーバ２０１は、Ｎ'＝Ｎ＋α−ｆ（ｔｘ＋Δｔ）を計算する（ステップＳ１４０４）。
【０１２１】
続けて、サーバ２０１は、Ｎ'が機能維持の閾値以上か否かを判断する（ステップＳ１４０５）。Ｎ'が機能維持の閾値以上である場合（ステップＳ１４０５：Ｙｅｓ）、サーバ２０１は、ステップＳ１４０２の処理に移行する。
【０１２２】
Ｎ'が機能維持の閾値未満である場合（ステップＳ１４０５：Ｎｏ）、サーバ２０１は、Ｎ'と機能維持の閾値とを用いて、全品検査ノードを追加する際の追加すべきノードの個数Ｎａを算出する（ステップＳ１４０６）。続けて、サーバ２０１は、コストＣｏ＿ａ＝Ｃａ×Ｎａを計算する（ステップＳ１４０７）。次に、サーバ２０１は、Ｎ'と機能維持の閾値とを用いて、抜き取り検査ノードを追加する際の追加すべきノードの個数Ｎｐを算出する（ステップＳ１４０８）。続けて、サーバ２０１は、コストＣｏ＿ｐ＝Ｃｐ×Ｎｐを計算する（ステップＳ１４０９）。
【０１２３】
次に、サーバ２０１は、Ｃｏ＿ａ，Ｃｏ＿ｐのうち、値が小さい方を、追加すべきノードであるとして出力する（ステップＳ１４１０）。続けて、サーバ２０１は、運用者によりノードが追加散布されたことが入力されたか否かを判断する（ステップＳ１４１１）。運用者によりノードが追加散布されたことが入力されていない場合（ステップＳ１４１１：Ｎｏ）、サーバ２０１は、ステップＳ１４０２の処理に移行する。
【０１２４】
運用者によりノードが追加散布されたことが入力された場合（ステップＳ１４１１：Ｙｅｓ）、サーバ２０１は、集約装置ＡＧにノードの追加散布通知を通知する（ステップＳ１４１２）。ステップＳ１４１２の処理終了後、サーバ２０１は、ステップＳ１４０２の処理に移行する。
【０１２５】
以上説明したように、サーバ２０１によれば、センサーネットワークシステム２００の運用中の期間内で故障したノードの個数から、期間以降に単位時間当たりに故障するノードの個数を算出する。これにより、サーバ２０１は、センサーネットワークシステム２００の障害の発生タイミングが予測可能になる。
【０１２６】
また、サーバ２０１によれば、単位時間当たりに故障するノードの個数と、複数のノードのうちのいずれかの期間の終了時刻に故障していないノードの個数とに基づいて、いずれかの期間以降のいずれかの時刻に故障していないノードの個数を算出してもよい。これにより、運用者は、いずれかの時刻に故障していないノードの個数を閲覧して、ノードを追加散布すべきか否かの判断材料とすることができる。たとえば、運用者は、いずれかの時刻に故障していないノードの個数が想定より少なければ、機能維持の閾値より大きくても、ノードを追加すべきと判断してもよい。
【０１２７】
また、サーバ２０１によれば、単位時間当たりに故障するノードの個数と、いずれかの期間の終了時刻に故障していないノードの個数とに基づいて、いずれかの時刻に故障していないノードの個数が、機能維持の閾値未満となるか否かを判断してもよい。これにより、運用者は、判断結果を閲覧して、ノードを追加散布すべきか否かの判断材料とすることができる。たとえば、運用者は、いずれかの時刻に故障していないノードの個数が、機能維持の閾値未満であれば、ノードを追加すべきと判断してもよい。
【０１２８】
また、サーバ２０１によれば、いずれかの時刻に故障していないノードの個数と機能維持の閾値とに基づいて、いずれかの時刻までにセンサーネットワークシステム２００に追加すべきノードの個数を算出してもよい。これにより、運用者は、追加すべきノードの個数を閲覧して、追加するノードの個数を決定材料にすることができる。たとえば、運用者が、あるロットの散布していないノードを１２［個］ずつに小分けにして管理してあるとする。そして、サーバ２０１が、追加すべきノードの個数を２０［個］であると出力したとする。このとき、運用者は、１２×２＝２４［個］を追加するノードの個数とする。
【０１２９】
また、サーバ２０１によれば、ノードの良品率と、いずれかの時刻に故障していないノードの個数と、機能維持の閾値とに基づいて、追加すべきノードの個数を算出してもよい。これにより、運用者は、大量生産、低単価なノードを追加する場合でも、適切な追加すべきノードの個数を知ることができる。
【０１３０】
また、サーバ２０１によれば、ロットごとに追加すべきノードの個数を算出し、ロットごとに、ロット単位のノードの単価と、算出した追加すべきノードの個数とに基づいて、センサーネットワークシステム２００に追加する際のコストを算出してもよい。これにより、良品率の異なるノードが複数ある場合、運用者は、追加すべきノードとして、よりコストの小さいノードを選ぶことができる。また、実施の形態１では、全品検査ノードと、抜き取り検査ノードという、良品率が異なるノードが２種類であったが、３種類以上あってもよい。たとえば、製造業者が、抜き取り検査の段階で、ロットから抜き取るサンプル数を多くした、中品質、中単価なノードと、ロットから抜き取るサンプル数を少なくした、低品質、低単価なノードとを提供していたとする。このとき、サーバ２０１は、全品検査ノードと、良品率が中程度で、中単価な抜き取り検査と、良品率が低く、低単価な抜き取り検査と、のそれぞれのコストを算出してもよい。
【０１３１】
また、サーバ２０１によれば、複数のノードのうちのいずれかの期間の開始時刻に通信可能なノードの個数と、いずれかの期間の終了時刻に通信可能なノードの個数との差分を、故障したノードの個数として検出してもよい。これにより、サーバ２０１は、故障したノードを得ることができる。
【０１３２】
（実施の形態２の説明）
実施の形態１にかかるセンサーネットワークシステム２００では、複数のノード＃１〜Ｎの位置情報を用いず、いずれかの期間以降のいずれかの時刻における故障していないノードの個数と機能維持の閾値とを比較して、機能が維持できるか否かを判断する。しかしながら、いずれかの時刻における故障していないノードの個数が、機能維持の閾値未満であったとしても、故障していないノードの位置によっては、機能維持できる場合もある。そこで、実施の形態２にかかるセンサーネットワークシステムでは、複数のノード＃１〜Ｎの位置情報を用いて、機能維持できるか否かをシミュレーションする。なお、実施の形態１において説明した箇所と同様の箇所については、同一符号を付して図示および説明を省略する。
【０１３３】
図１５は、実施の形態２にかかるセンサーネットワークシステムの接続例を示す説明図である。実施の形態２にかかるセンサーネットワークシステム１５００は、複数のノードと、集約装置ＡＧと、ゲートウェイＧＷと、サーバ１５０１と、データ分析コンピュータ２０２と、シミュレータ１５０２とを有する。
【０１３４】
サーバ１５０１は、サーバ２０１が有する機能を有し、さらに、シミュレータ１５０２に、いずれかの期間の終了時点で故障していないノードの位置情報と、いずれかの期間以降のいずれかの時刻において故障していないノードの個数を通知する。または、サーバ１５０１は、シミュレータ１５０２に、いずれかの時刻において故障していないノードの個数の代わりに、いずれかの時刻において故障するノードの個数を通知してもよい。通知した後、サーバ１５０１は、シミュレータ１５０２から、シミュレーションの結果を受け付けて、センサーネットワークシステム１５００の運用者に出力する。
【０１３５】
シミュレータ１５０２は、いずれかの期間の終了時点で故障していないノードの位置情報と、いずれかの期間以降のいずれかの時刻において故障していないノードの個数を用いて、いずれかの時刻におけるノードのマルチホップ通信を模擬するコンピュータである。また、サーバ１５０１が、シミュレータ１５０２が行う機能を実行してもよい。シミュレータ１５０２のハードウェア構成は、サーバ１５０１と同様のハードウェアを有するため、説明を省略する。
【０１３６】
また、実施の形態２では、複数のノード＃１〜Ｎの各ノードの位置情報を用いる。ノードの位置情報を得るための一例として、一部のノードは、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）センサーを有し、ＧＰＳセンサーによって位置情報を取得可能であってもよい。そして、ＧＰＳを有さないノードは、ＧＰＳセンサーを有するノードの位置情報と、ＧＰＳセンサーを有するノードからの相対距離とに基づいて、自ノードの位置情報を算出すればよい。
【０１３７】
図１６は、シミュレータの機能構成例を示すブロック図である。シミュレータ１５０２は、制御部１６００を含む。制御部１６００は、受付部１６０１と、実行部１６０２と、判断部１６０３と、算出部１６０４とを含む。制御部１６００は、記憶装置に記憶された実施の形態２における分析プログラムをシミュレータ１５０２のＣＰＵが実行することにより、制御部１６００の機能を実現する。記憶装置とは、具体的には、たとえば、シミュレータ１５０２のＲＯＭ、ＲＡＭ、ディスクなどである。また、受付部１６０１〜算出部１６０４の処理結果は、シミュレータ１５０２のＣＰＵが有するレジスタや、ＲＡＭ等に記憶される。
【０１３８】
受付部１６０１は、複数のノード＃１〜Ｎのうちのいずれかの期間の終了時刻に故障していないノードの位置情報を受け付ける。
【０１３９】
実行部１６０２は、終了時刻に故障していないノードのうち、算出した時刻に故障していないノードの個数分、いずれかの時刻に故障していないノードをランダムに設定する。そして、実行部１６０２は、故障していないノードをランダムに設定した場合に、受付部１６０１が受け付けた、故障していないノードの位置情報に基づいて、いずれかの時刻に故障していないノードによるマルチホップ通信を模擬するシミュレーションを実行する。また、実行部１６０２は、故障するノードをランダムに設定してシミュレーションを実行してもよい。シミュレーションの様子は、図１７〜図２１で示す。
【０１４０】
また、実行部１６０２は、いずれかの時刻に故障していないノードをランダムに設定して、シミュレーションを所定回数実行してもよい。ここで、所定回数とは、センサーネットワークシステム１５００の運用者が設定する値である。たとえば、運用者は、予め、１回のシミュレーションにかかる時間を取得しておく。そして、運用者は、シミュレーションにかける時間を１回のシミュレーションにかかる時間で除した値を、所定回数として設定する。
【０１４１】
判断部１６０３は、実行部１６０２によるシミュレーションの実行結果から得られる通信可能なノードの個数と、機能維持の閾値とを比較することにより、機能が実現可能か否かを判断する。
【０１４２】
また、判断部１６０３は、実行部１６０２が所定回数実行したシミュレーションの実行結果ごとに、実行結果から得られる通信可能なノードの個数と、機能維持の閾値とを比較することにより、機能が実現可能であるか否かを判断する。たとえば、判断部１６０３は、機能を維持できたと判断した回数と、機能を維持できないと判断した回数とを出力する。
【０１４３】
算出部１６０４は、所定回数と、終了時刻に故障していないノードからいずれかの時刻に故障していないノードを設定する場合にとり得る組合せの総数とに基づいて、判断部１６０３の判断結果の尤もらしさを示す尤度を算出する。たとえば、算出部１６０４は、所定回数／（組合せの総数）を、値が大きいほど尤もらしい尤度として算出する。また、算出部１６０４は、（組合せの総数）／所定回数を算出し、値が小さいほど尤もらしい尤度として算出してもよい。尤度については、図１７で後述する。
【０１４４】
図１７は、故障するノードをランダムに変えた場合のシミュレーションの結果の一例を示す説明図である。図１７では、現時刻である時刻ｔ１以降の時刻ｔ２において、運用中の１２個のノードのうち、ノードが３個故障するであろうという予測の下、シミュレータ１５０２がパターン１〜３についてシミュレーションした結果を示す。ここで、図１７において、"ｓ"を有する白抜きの丸は、運用中のノードを示す。また、"ｘ１"を有する白抜きの丸は、現時刻である時刻ｔ１で故障中のノードを示す。また、"ｘ２"を有する白抜きの丸は、時刻ｔ１以降の時刻ｔ２で故障すると仮定したノードを示す。
【０１４５】
パターン１およびパターン３のシミュレーションにおいて、シミュレータ１５０２は、ノードの再接続などにより、機能維持として十分な計測を継続できると判断する。この時の判断基準は、計測したいポイント、測定密度指標を想定するセンシングフィールドＡＲに依存して定められたものとする。
【０１４６】
これに対し、パターン２のシミュレーションにおいて、シミュレータ１５０２は、センシングフィールドＡＲの東南部分の領域１７０１が十分に計測できておらず、機能維持できないと判断する。
【０１４７】
サーバ１５０１は、シミュレータ１５０２による、各パターンのシミュレーションの結果を取得して、故障確率を、下記（４）式を用いて算出する。
【０１４８】
故障確率＝１００×ｍ／ｎ［％］  …（４）
【０１４９】
ここで、ｍは、シミュレータ１５０２が機能維持できると判断した回数である。ｎは、シミュレーションを行った回数である。さらに、サーバ１５０１は、算出した故障確率の尤もらしさを示す尤度を、下記（５）式を用いて算出する。
【０１５０】
尤度＝ｎ／Ｃ  …（５）
【０１５１】
ここで、Ｃは、故障するノードの組合せの総数である。図１７の例では、サーバ１５０１は、（４）式を用いて、図１７の例における故障確率を下記のように算出する。
【０１５２】
故障確率＝１００×１／３＝３３［％］
【０１５３】
また、サーバ１５０１は、（５）式を用いて、図１７の例における尤度を算出する。故障するノードの組合せの総数Ｃは、15Ｃ3＝２２０である。
【０１５４】
尤度＝３／２２０＝０．０１４
【０１５５】
センサーネットワークシステム１５００の運用者は、故障確率を閲覧して、ノードを追加散布すべきか否かを判断する。また、センサーネットワークシステム１５００の運用者は、尤度を閲覧して、故障確率が信用にたる値か判断する。たとえば、センサーネットワークシステム１５００の運用者は、尤度が小さすぎると判断した場合、サーバ１５０１を操作して、シミュレータ１５０２に再度のシミュレーションを実行させる。
【０１５６】
次に、図１８〜図２１を用いて、シミュレータ１５０２が行う、ノードが構築する通信経路の模擬について説明を行う。図１８〜図２１において、"ｔ"を有する白抜きの丸は、運用中のノードであり、データを中継しない終端ノードを示す。また、"ｒ"を有する白抜きの丸は、運用中のノードであり、データを中継する中継ノードを示す。また、"ｓ"を有する白抜きの丸は、余剰のノードであり、近隣のノードとの通信を休止しているノードを示す。また、"ｘ"を有する白抜きの丸は、故障したノードを示す。
【０１５７】
図１８は、ノードが構築する通信経路の変更の一例を示す説明図（その１）である。図１８の（Ａ）では、故障したノードが無い状態におけるノードの通信経路を示す。また、図１８の（Ｂ）では、故障したノードが無い状態におけるノードの通信経路において、集約装置ＡＧにデータが集約する様子を示す。
【０１５８】
図１９は、ノードが構築する通信経路の変更の一例を示す説明図（その２）である。図１９の（Ａ）では、終端ノードの一つが故障した場合を示す。図１９の（Ａ）では、運用中のノード数は、２０から１９に減少する。これに対し、図１９の（Ｂ）では、中継ノードの一つが故障した場合を示す。図１９の（Ｂ）では、運用中のノード数は、２０から１２に減少する。このように、中継ノードが故障した場合の運用中のノード数が、終端ノードが故障する場合の運用中のノード数より大きく減少し、機能維持の閾値を下回る可能性がある。このような場合、集約装置ＡＧ、サーバ１５０１等が、通信経路の再構築をノードに指示するため、シミュレータ１５０２は、通信経路の再構築を模擬する。
【０１５９】
図２０は、ノードが構築する通信経路の変更の一例を示す説明図（その３）である。図２０の（Ａ）では、各ノードが近傍のノードに、通信経路の接続要求を送信し、仮接続を行う様子を示す。図２０の（Ｂ）では、終端ノードを、中継ノードとして割り当てる様子を示す。
【０１６０】
図２１は、ノードが構築する通信経路の変更の一例を示す説明図（その４）である。図２１では、中継ノードを割り当てて、通信経路の再構築を終了した状態を示す。このように、センサーネットワークシステム１５００では、中継ノードが故障したとしても、終端ノードを中継ノードとして割り当てることにより、運用中のノードの減少を抑えることができる。図１８〜図２１で示したように、シミュレータ１５０２は、中継ノードが故障したと仮定した場合、通信経路の再構築を行い、機能維持の閾値と比較して、機能維持できるか否かを判断する。
【０１６１】
図２２は、機能維持指標値出力処理手順の一例を示すフローチャートである。機能維持指標値出力処理は、ノードのマルチホップ通信を模擬するシミュレーション処理を実行し、機能が維持できるか否かの指標値を出力する処理である。シミュレータ１５０２は、現在時刻Ｔにおいて故障したノードの位置情報を加えて、現在時刻Ｔにおけるシミュレーションを実行する（ステップＳ２２０１）。
【０１６２】
次に、シミュレータ１５０２は、現在時刻Ｔにおけるシミュレーションの結果が、機能維持できるとなったか否かを判断する（ステップＳ２２０２）。機能維持できないとなった場合（ステップＳ２２０２：Ｎｏ）、シミュレータ１５０２は、ノードを追加配布すべき旨のアラームを出力する（ステップＳ２２０３）。アラームの出力先は、サーバ１５０１となる。アラームを受けたサーバ１５０１は、センサーネットワークシステム１５００の運用者が閲覧できるような方法で、アラームの内容を出力する。ステップＳ２２０３の処理終了後、シミュレータ１５０２は、機能維持指標値出力処理を終了する。
【０１６３】
一方、機能維持できるとなった場合（ステップＳ２２０２：Ｙｅｓ）、シミュレータ１５０２は、サーバ１５０１から、未来時刻となるＴ＋Δｔ時点で新たに故障するノードの個数ｅ＿Δｔを受け付ける（ステップＳ２２０４）。次に、シミュレータ１５０２は、故障カウントを０に設定する（ステップＳ２２０５）。続けて、シミュレータ１５０２は、未来時刻Ｔ＋Δｔにおけるシミュレーションを、所定回数行ったか否かを判断する（ステップＳ２２０６）。まだシミュレーションを所定回数行っていない場合（ステップＳ２２０６：Ｎｏ）、シミュレータ１５０２は、現在時刻Ｔで運用中のノードのうち、故障するノードをｅ＿Δｔ分、ランダムに設定する（ステップＳ２２０７）。
【０１６４】
次に、シミュレータ１５０２は、故障していないノードの位置情報を用いて、未来時刻Ｔ＋Δｔにおけるシミュレーションを実行する（ステップＳ２２０８）。続けて、シミュレータ１５０２は、未来時刻Ｔ＋Δｔにおけるシミュレーションの結果から得られる通信可能なノード数と機能維持の閾値とを比較して、機能維持できるとなったか否かを判断する（ステップＳ２２０９）。機能維持できるとならなかった場合（ステップＳ２２０９：Ｎｏ）、シミュレータ１５０２は、故障カウントをインクリメントする（ステップＳ２２１０）。ステップＳ２２１０の処理終了後、または、機能維持できるとなった場合（ステップＳ２２０９：Ｙｅｓ）、シミュレータ１５０２は、ステップＳ２２０６の処理に移行する。
【０１６５】
シミュレーションを所定回数行った場合（ステップＳ２２０６：Ｙｅｓ）、シミュレータ１５０２は、故障確率＝故障カウント／所定回数を計算する（ステップＳ２２１１）。続けて、シミュレータ１５０２は、尤度＝所定回数／（ｎからｅ＿Δｔを選ぶ組合せの個数Ｃ）を計算する（ステップＳ２２１２）。次に、シミュレータ１５０２は、故障確率と尤度とを出力する（ステップＳ２２１３）。故障確率と尤度との出力先は、サーバ１５０１となる。故障確率と尤度とを受けたサーバ１５０１は、センサーネットワークシステム１５００の運用者が閲覧できるような方法で、故障確率と尤度とを出力する。ステップＳ２２１３の処理終了後、シミュレータ１５０２は、機能維持指標値出力処理を終了する。
【０１６６】
機能維持指標値出力処理を実行することにより、センサーネットワークシステム１５００は、運用者に、ノードを追加すべきか否かの判断の材料となる、故障確率、尤度という機能が維持できるか否かの指標値を提供することができる。
【０１６７】
以上説明したように、シミュレータ１５０２によれば、終了時刻に故障していないノードのうち、算出したいずれかの時刻に故障していないノードの個数分、いずれかの時刻に故障していないノードをランダムに設定する。そして、シミュレータ１５０２は、終了時刻に故障していないノードの位置情報に基づいて、いずれかの時刻におけるシミュレーションを実行し、シミュレーションの実行結果から、機能が維持できたか否かを出力してもよい。これにより、運用者は、現時刻以降のいずれかの時刻において、故障していないノードの個数が、機能維持の閾値未満となったとしても、機能が維持できる可能性が高ければ、ノードを追加散布しないという判断を取ることができる。
【０１６８】
また、シミュレータ１５０２によれば、いずれかの時刻に故障していないノードをランダムに設定し、シミュレーションを所定回数繰り返して、機能維持できた回数と、機能維持できなかった回数とを出力してもよい。これにより、運用者は、機能維持できた回数と、機能維持できなかった回数とを閲覧して、ノードを追加すべきか否か判断することができる。
【０１６９】
また、シミュレータ１５０２によれば、所定回数と、いずれかの終了時刻に故障していないノードからいずれかの時刻に故障していないノードを設定する場合にとり得る組合せの総数とに基づいて、尤度を算出してもよい。これにより、運用者は、機能維持できた回数と、機能維持できなかった回数を信用できるか否かを判断できる。たとえば、機能維持できた回数が、機能維持できなかった回数より大きい値を示していても、尤度が尤もらしくないことを示す場合、運用者は、所定回数を増やしてシミュレータ１５０２にシミュレーションを行わせたり、ノードを追加すべきとしたりしてもよい。
【０１７０】
なお、実施の形態１、２で説明した分析方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本分析プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本分析プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１７１】
上述した実施の形態１〜ｎに関し、さらに以下の付記を開示する。
【０１７２】
（付記１）コンピュータが、
複数のノードのうちの一部のノードが故障しても機能を実現可能なシステムを運用中のいずれかの期間に前記複数のノードのうちの故障したノードの個数を検出し、
検出した前記故障したノードの個数と前記期間とに基づいて、前記期間以降に単位時間当たりに故障するノードの個数を算出する、
処理を実行することを特徴とする分析方法。
【０１７３】
（付記２）前記コンピュータが、
算出した前記単位時間当たりに故障するノードの個数と、前記複数のノードのうちの前記期間の終了時刻に故障していないノードの個数とに基づいて、前記期間以降のいずれかの時刻に故障していないノードの個数を算出する、
処理を実行することを特徴とする付記１に記載の分析方法。
【０１７４】
（付記３）前記コンピュータが、
前記単位時間当たりに故障するノードの個数と、前記複数のノードのうちの前記期間の終了時刻に故障していないノードの個数とに基づいて、前記期間以降のいずれかの時刻に故障していないノードの個数が、予め記憶された前記機能を実現可能なノードの個数を示す所定数未満となるか否かを判断する、
処理を実行することを特徴とする付記１または２に記載の分析方法。
【０１７５】
（付記４）前記コンピュータが、
前記時刻に故障していないノードの個数が前記所定数未満であると判断した場合に、前記時刻に故障していないノードの個数と前記所定数とに基づいて、前記時刻までに前記システムに追加すべきノードの個数を算出する、
処理を実行することを特徴とする付記３に記載の分析方法。
【０１７６】
（付記５）前記追加すべきノードの個数を算出する処理は、
予め記憶されたノードの良品率と、前記時刻に故障していないノードの個数と、前記所定数とに基づいて、前記追加すべきノードの個数を算出することを特徴とする付記４に記載の分析方法。
【０１７７】
（付記６）前記コンピュータが、
ノード製造時における製造数単位であるロットごとに、予め記憶されたロット単位のノードの良品率と、前記時刻に故障していないノードの個数と、前記所定数とに基づいて、前記追加すべきノードの個数を算出し、
前記ロットごとに、予め記憶されたロット単位のノードの単価と、算出した前記追加すべきノードの個数とに基づいて、前記追加すべきノードの個数分のノードを前記システムに追加する際のコストを算出することを特徴とする付記４に記載の分析方法。
【０１７８】
（付記７）前記コンピュータが、
前記複数のノードのうちの前記終了時刻に故障していないノードの位置情報を受け付け、
前記終了時刻に故障していないノードのうち、算出した前記時刻に故障していないノードの個数分、前記時刻に故障していないノードをランダムに設定した場合に、受け付けた前記終了時刻に故障していないノードの位置情報に基づいて、前記時刻に故障していないノードによるマルチホップ通信を模擬するシミュレーションを実行し、
前記シミュレーションの実行結果から得られる通信可能なノードの個数と、予め記憶された前記機能を実現可能なノードの個数を示す所定数とを比較することにより、前記機能が実現可能か否かを判断する、
処理を実行することを特徴とする付記２〜６のいずれか一つに記載の分析方法。
【０１７９】
（付記８）前記シミュレーションを実行する処理は、
前記時刻に故障していないノードをランダムに設定して前記シミュレーションを所定回数実行し、
前記機能が実現可能か否かを判断する処理は、
前記所定回数実行した前記シミュレーションの実行結果ごとに、当該実行結果から得られる通信可能なノードの個数と、前記所定数とを比較することにより、前記機能が実現可能であるか否かを判断する、
ことを特徴とする付記７に記載の分析方法。
【０１８０】
（付記９）前記コンピュータが、
前記所定回数と、前記終了時刻に故障していないノードから前記時刻に故障していないノードを設定する場合にとり得る組合せの総数とに基づいて、前記機能が実現可能か否かを判断する処理の結果の尤もらしさを示す尤度を算出する、
ことを特徴とする付記８に記載の分析方法。
【０１８１】
（付記１０）前記検出する処理は、
前記複数のノードのうちの前記期間の開始時刻に通信可能なノードの個数と前記期間の終了時刻に通信可能なノードの個数との差分を前記故障したノードの個数として検出することを特徴とする付記１〜９のいずれか一つに記載の分析方法。
【０１８２】
（付記１１）コンピュータに、
複数のノードのうちの一部のノードが故障しても機能を実現可能なシステムを運用中のいずれかの期間に前記複数のノードのうちの故障したノードの個数を検出し、
検出した前記故障したノードの個数と前記期間とに基づいて、前記期間以降に単位時間当たりに故障するノードの個数を算出する、
処理を実行することを特徴とする分析プログラム。
【０１８３】
（付記１２）複数のノードのうちの一部のノードが故障しても機能を実現可能なシステムを運用中のいずれかの期間に前記複数のノードのうちの故障したノードの個数を検出し、検出した前記故障したノードの個数と前記期間とに基づいて、前記期間以降に単位時間当たりに故障するノードの個数を算出する制御部を、
有することを特徴とする分析装置。
【符号の説明】
【０１８４】
１００  システム
１０１  分析装置
２００、１５００  センサーネットワークシステム
２０１  サーバ
６００、１６００  制御部
６０１  検出部
６０２  第１算出部
６０３  判断部
６０４  第２算出部
６０５  第３算出部
６１０  良品率ＤＢ
１６０１  受付部
１６０２  実行部
１６０３  判断部
１６０４  算出部
【国際調査報告】
2015104809.tif 000025
2015104809.tif 000026
2015104809.tif 000027