JP2018097695A - 監視装置、監視方法及び監視プログラム - Google Patents

監視装置、監視方法及び監視プログラム Download PDF

Info

Publication number
JP2018097695A
JP2018097695A JP2016242737A JP2016242737A JP2018097695A JP 2018097695 A JP2018097695 A JP 2018097695A JP 2016242737 A JP2016242737 A JP 2016242737A JP 2016242737 A JP2016242737 A JP 2016242737A JP 2018097695 A JP2018097695 A JP 2018097695A
Authority
JP
Japan
Prior art keywords
state
application
notification
status
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016242737A
Other languages
English (en)
Inventor
佳秀 野村
Yoshihide Nomura
佳秀 野村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016242737A priority Critical patent/JP2018097695A/ja
Publication of JP2018097695A publication Critical patent/JP2018097695A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】デバイス上のアプリケーション(アプリ)の動作を監視する監視装置を提供する。【解決手段】監視装置3において、状態遷移モデル記憶部31がアプリ(IoT分散アプリ)21の状態遷移モデルを記憶し、ログ記憶部32がアプリの動作状況ログを記憶する。状態判定部36が、デバイス2から状態通知を受信すると、動作状況ログからアプリの現在状態(b)を特定し、状態通知からアプリの現在状態(a)を特定する。状態判定部は、状態通知からアプリの状態遷移モデルを特定する。状態判定部は、現在状態(b)から現在状態(a)への遷移に付加されている遷移条件を満たさない場合に、アプリの動作が正常でないと判定する。【選択図】図1

Description

本発明は、監視装置、監視方法及び監視プログラムに関する。
様々なデバイスをインターネットで接続し、デバイスから得られるセンサー情報等を利用してサービスの提供等を行うIoT(Internet of Things)技術の利用が進んでいる。
また、スマートフォンが実行するアプリケーションの挙動が予めアプリケーション自身によりスマートフォンに登録された挙動と異なる場合には、当該アプリケーションの再起動を実施することで、アプリケーションの安定稼働を実現する技術がある。
また、監視対象のログ情報を読み込んで分類し、分類結果を基に平常時のログ遷移モデルを生成し、ログ分類結果とログ遷移モデルからログ遷移を分析し、ログ変化があった時に監視対象へ診断指示を行い、監視対象からの情報を基に障害有無を判定する技術がある。この技術によれば、監視対象の障害発生に関して精度良い判断を行うことができる。
また、基準となる第1状態遷移確率モデルと、ソフトウェアの運用中に求めた第2状態遷移確率モデルとで、あらかじめ設定した状態遷移毎の遷移確率を比較することにより異常度を求め、異常度と閾値を比較して異常であるか否かを判断する技術がある。この技術によれば、予想しないソフトウェアの異常動作に対しても異常を検知することができる。
また、コンポーネント間のメッセージ送受信に関わる記述を用いて各コンポーネントの抽象化済状態遷移モデルを作成し、該抽象化済状態遷移モデルを結合し、メッセージログを用いてさらに検出範囲を限定したシステム状態遷移モデルを作成する技術がある。この技術によれば、システム状態遷移モデルに対してデッドロック検出を行うことができる。
特開2013−142910号公報 特開2014−120001号公報 特開2012−141909号公報 特開2009−176081号公報
IoTでは、ネットワークやデバイスの接続状態を管理することはできるが、デバイス上のアプリケーションが正しく動作しているかを把握することが困難であるという問題がある。アプリケーションによって挙動は異なるため、アプリケーションが正しく動作しているかは開発者がアプリケーションの実行ログ等を見て判断する必要があり、接続されるデバイスの数が増えると対処が難しい。
本発明は、1つの側面では、デバイス上のアプリケーションの動作を監視することを目的とする。
1つの態様では、監視装置は、ログ記憶部と、第1特定部と、第2特定部と、第3特定部と、判定部と、通知部とを有する。ログ記憶部は、複数のデバイスから送信された状態通知に含まれるアプリの状態に基づいて各デバイスで動作するアプリの状態を記憶する。第1特定部は、複数のデバイスのうちの1つである第1デバイスから状態通知を受信すると、受信した状態通知に基づいてログ記憶部を検索して該第1デバイスで動作する第1アプリの第1状態を特定する。第2特定部は、受信した状態通知に含まれるアプリの状態を第1アプリの第2状態として特定する。第3特定部は、受信した状態通知に基づいて第1アプリに対応づけられた状態遷移モデルを特定する。判定部は、第1状態から第2状態への遷移が状態遷移モデルで定義された状態遷移に関する所定の条件を満たすか否かを判定する。通知部は、判定部により所定の条件を満たさないと判定された場合に、第1アプリにエラーが発生したことを通知する。
1つの側面では、本発明は、デバイス上のアプリケーションの動作を監視することができる。
図1は、実施例に係るIoTシステムの構成を示す図である。 図2は、アプリの状態遷移モデルの一例を示す図である。 図3は、アプリの状態遷移モデルの定義例を示す図である。 図4は、図2に示したアプリ状態遷移モデルに対応するXML記述を示す図である。 図5は、無線光センサーを用いて照度を測定して送信するアプリの状態遷移モデルの例を示す図である。 図6は、図5に示したアプリ状態遷移モデルに対応するXML記述を示す図である。 図7は、その他の遷移条件の記述例を示す図である。 図8は、ログ記憶部の一例を示す図である。 図9は、統計モデル記憶部の一例を示す図である。 図10は、アプリ状態可視化の画面例を示す図である。 図11は、状態通知の受信からアプリの動作判定までの処理の流れを示すシーケンス図である。 図12は、統計モデルを構築する処理の流れを示すシーケンス図である。 図13は、アプリ状態可視化の処理の流れを示すシーケンス図である。 図14は、状態通知受信時の状態判定部による処理のフローを示すフローチャートである。 図15は、タイマー起動時の状態判定部による処理のフローを示すフローチャートである。 図16は、実施例に係る監視プログラムを実行するコンピュータのハードウェア構成を示す図である。
以下に、本願の開示する監視装置、監視方法及び監視プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係るIoTシステムの構成について説明する。図1は、実施例に係るIoTシステムの構成を示す図である。図1に示すように、実施例に係るIoTシステム1は、デバイス2と監視装置3とを有する。デバイス2と監視装置3はインターネット等のネットワークで接続される。なお、ここでは説明の便宜上、1台のデバイス2のみを示したが、IoTシステム1は、複数のデバイス2を有する。
デバイス2は、通信機能を備え、監視装置3とネットワークを介して通信する。デバイス2は、例えば、温度センサー、光センサー等のセンサーを備え、センサーが検知した温度、照度等をインターネットを介して温度情報、照度情報等を利用する情報処理装置に送信する。
デバイス2は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等の処理装置を有し、デバイス2では、IoT分散アプリ21とログ収集プログラム22が動作する。
IoT分散アプリ21は、分散配置されるデバイス2で動作するアプリケーションである。以下では、IoT分散アプリ21を単にアプリ21と表す。アプリ21は、例えば、温度センサーを用いて測定した温度をインターネットを介して温度情報を利用する情報処理装置に送信する。
ログ収集プログラム22は、アプリ21のログを収集し、監視装置3に状態通知として送信する。状態通知には、デバイス2を識別するためのデバイスID、アプリ21の状態、ログを収集した時刻の情報が含まれる。
監視装置3は、状態遷移モデルを用いてアプリ21の動作を監視する装置である。監視装置3は、状態遷移モデル記憶部31と、ログ記憶部32と、通知設定情報記憶部33と、統計モデル記憶部34とを有する。また、監視装置3は、通信部35と、状態判定部36と、通知設定管理部37と、時間監視部38と、統計モデル構築部39と、状態遷移設定部40と、状態可視化部41とを有する。
状態遷移モデル記憶部31は、複数の種類のアプリ21について状態遷移モデルを記憶する。図2は、アプリ21の状態遷移モデルの一例を示す図である。図2は、温度センサーを用いて温度を測定して送信するアプリ21の状態遷移モデルを示す。図2に示すように、状態遷移モデルには、アプリ種別テンプレート部分46とアプリ固有拡張部分47とがある。
アプリ種別テンプレート部分46は、種別が同じアプリ21で共通な部分である。アプリ固有拡張部分47は、アプリ21に固有な部分であり、アプリ21用に拡張された部分である。図2では、アプリ種別テンプレート部分46には、GW起動、VM起動、アプリ起動、ミドルエラー、アプリエラーの5つの状態がある。
GW起動は、通信を行うためのゲートウェイが起動された状態である。VM起動は、アプリ21を実行するJava(登録商標)仮想マシンが起動された状態である。アプリ起動は、アプリ21が起動された状態である。ミドルエラーは、ミドルウェアにエラーが発生した状態である。アプリエラーは、アプリ21にエラーが発生した状態である。
状態間の矢印は、状態遷移を表す。例えば、VM起動の状態でエラーが発生すると、アプリ21は、ミドルエラーの状態に遷移する。また、VM起動の状態は30秒以内にアプリ起動に遷移する。「30秒以内」は、時間制限を表す。
アプリ固有拡張部分47には、温度センサー準備、温度データ送信、データ送信停止の3つの状態がある。温度センサー準備は、温度センサーによる温度測定の準備ができた状態である。温度データ送信は、温度データを送信する状態である。データ送信停止は、温度データ送信後にデータ送信を停止している状態である。例えば、データ送信停止の状態にあるアプリ21は、1分以内に温度データ送信の状態に遷移する。
図3は、アプリ21の状態遷移モデルの定義例を示す図である。図3において、矢頭がひし形の矢印は、全体と部分の集約関係を表し、矢頭側が全体であり、矢尾側が部分である。矢尾側の*は、全体が複数の部分から構成されることを表す。矢頭が三角の矢印は、汎化の関係を表し、矢印の方向が汎化の方向を表す。破線の矢印は継承関係を表す。
図3に示すように、アプリ21の状態遷移モデルは、複数の状態と遷移を持つ。温度センサー遷移モデル、光センサー遷移モデルは、状態遷移モデルを継承する。なお、アプリ21の状態遷移モデルにおける遷移の種類は、基本となる遷移モデルを継承して拡張されている。
図4は、図2に示したアプリ状態遷移モデルに対応するXML(eXtensible Markup Language)記述を示す図である。図2に示したアプリ状態遷移モデルは、図4に示すXML記述により状態遷移モデル記憶部31に記憶される。
図4において、<model:StateModel id=“temp−sennsor”>は、状態遷移モデルの識別子が“temp−sennsor”であることを表す。<State id=“ts01” name=“GW起動”/>は、状態遷移モデルに含まれる状態を定義し、状態の識別子が“ts01”であり、状態の名前が“GW起動”であることを表す。他の状態も同様に定義される。
<Trans id=“t01” from=“ts01” to=“ts02” type=“通常”/>は、状態遷移モデルに含まれる状態遷移を定義する。この定義は、状態の識別子が“t01”であり、“ts01”から“ts02”の遷移であり、遷移の種類が“通常”であることを表す。“通常”は、遷移に条件のない遷移であることを示す。
<Trans id=“t02” from=“ts02” to=“ts03” type=“時間制限”><Limit time=“30000msec”/>の“時間制限”は、遷移に時間制限があることを表す。また、<Limit time=“30000msec”/>は、制限時間が30秒であることを示す。他の状態遷移も同様に定義される。
図5は、アプリ状態遷移モデルの他の例を示す図である。図5は、無線光センサーを用いて照度を測定して送信するアプリ21の状態遷移モデルの例を示す。図5に示すように、アプリ種別テンプレート部分48には、GW起動、無線接続、アプリ起動、ミドルエラー、アプリエラーの5つの状態がある。無線接続は、無線光センサと無線で接続された状態である。アプリ固有拡張部分49には、照度データ送信、データ送信停止の2つの状態がある。照度データ送信は、照度データを送信する状態である。図6は、図5に示したアプリ状態遷移モデルに対応するXML記述を示す図である。
図7は、その他の遷移条件の記述例を示す図である。図7において、“プロパティ条件”は、プロパティの値に応じた遷移条件があることを表す。<Cond value=“t<20”/>は、プロパティtの値が20より小さいことが遷移条件であることを表す。
図1に戻って、ログ記憶部32は、アプリ21に関してデバイス2から送信された状態通知に含まれる情報を動作状況ログとして記憶する。図8は、ログ記憶部32の一例を示す図である。図8に示すように、ログ記憶部32は、IDと、種別と、エリアと、現在状態と、最終更新と、通知設定とをデバイス2毎に記憶する。
IDは、デバイス2を識別する識別子である。種別は、デバイス2で動作するアプリ21の状態遷移モデルを示す。エリアは、デバイス2が配置されている場所を示す。現在状態は、デバイス2の現在の状態を示す。最終更新は、デバイス2の状態が最後に更新された時刻を示す。
通知設定は、デバイス2へ通知する内容を示す。通知設定には、例えば、「通常」、「詳細リクエスト」がある。「通常」は、通常の情報を状態通知として送信するようにデバイス2に通知する。通常の情報には、デバイスID、アプリ21の現在状態、時刻情報が含まれる。「詳細リクエスト」は、トレースログ、プロセス一覧を収集して送信するようにデバイス2に通知する。
例えば、IDが「機器#1」であるデバイス2は、温度センサーで測定された温度を送信するアプリ21を動作させ、「事務所#1」に配置される。アプリ21の状態は「ts06」であり、状態の最終更新が行われた時刻は「10:15:30」であり、通知設定は「通常」である。
通知設定情報記憶部33は、デバイス2へ通知する内容をデバイス2毎に記憶する。通知設定情報記憶部33は、例えば、「通常」、「詳細リクエスト」をデバイス2毎に記憶する。
統計モデル記憶部34は、デバイス2に関する統計的な情報を記憶する。図9は、統計モデル記憶部34の一例を示す図である。図9は、デバイス2が配置されたエリア毎にデバイス2の状態毎にデバイス数を記憶する場合を示す。
図9に示すように、統計モデル記憶部34は、種別と、エリアと、現在状態と、デバイス数と、最終更新をエリア毎現在状態毎に記憶する。デバイス数は、エリア毎現在状態毎のデバイス2の数である。例えば、温度センサーで測定された温度を送信するアプリ21は、「事務所#1」に「ts06」のものが1つあり、「ts05」のものが2つある。
通信部35は、デバイス2と通信を行う。通信部35は、例えば、アプリ21又はログ収集プログラム22から、アプリ21の状態通知を受信し、受信したを状態通知を状態判定部36に渡す。また、通信部35は、ログ収集プログラム22から、通知設定の取得要求を受信し、通知設定情報記憶部33の設定通知をログ収集プログラム22に送信する。
状態判定部36は、通信部35からアプリ21の状態通知を受信すると、受信した状態通知に含まれるアプリ21の現在状態、ログ記憶部32が記憶するアプリ21の現在状態及び状態遷移モデル記憶部31に基づいて、アプリ21の動作を判定する。すなわち、状態判定部36は、ログ記憶部32が記憶するアプリ21の現在状態から、受信した状態通知に含まれるアプリ21の現在状態への遷移がアプリ21の状態遷移モデルに定義されているか否かに基づいてアプリ21の動作が正しいか否かを判定する。
状態判定部36は、第1特定部36aと、第2特定部36bと、第3特定部36cと、判定部36dと、通知部36eとを有する。
第1特定部36aはデバイス2から送信された状態通知を通信部35から受け取ると、状態通知に含まれるデバイスIDを用いてログ記憶部32を検索し、デバイス2で動作するアプリの現在状態(b)を特定する。
第2特定部36bは、状態通知に含まれる現在状態(a)を特定する。第3特定部36cは、状態遷移モデル記憶部31を参照し、状態通知に含まれるデバイスIDに対応する状態遷移モデルを特定する。
判定部36dは、第1特定部36aにより特定された現在状態(b)から第2特定部36bにより特定された現在状態(a)への遷移があるか否かを判定し、ない場合には、アプリ21の動作が異常であると判定する。
また、判定部36dは、アプリ21の遷移に遷移条件が付加されている場合には、遷移条件を満たすか否かを判定し、満たさない場合には、アプリ21の動作が正しくないと判定する。
通知部36eは、判定部36dによりアプリ21の動作に異常があると判定された場合に、表示装置にアプリ21の動作に異常があることを表示する。
また、状態判定部36は、一定時間毎に時間監視部38により起動され、ログ記憶部32が記憶するアプリ21の現在状態及び状態遷移モデル記憶部31に基づいて、アプリ21の動作を判定する。すなわち、状態判定部36は、ログ記憶部32が記憶するアプリ21の現在状態から他の状態への遷移を状態遷移モデル記憶部31から探し、探した遷移に時間制限がある場合に、時間制限を超えたか否かを判定する。そして、状態判定部36は、時間制限を超えた場合には、アプリ21の動作が正しくないと判定する。
通知設定管理部37は、通知設定情報記憶部33の通知設定を管理する。例えば、通知設定管理部37は、状態判定部36がアプリ21の動作が正しくないと判定した場合に、状態判定部36の指示に基づいて、アプリ21に対応する通知設定を「詳細リクエスト」に設定する。
時間監視部38は、時間を監視し、一定時間毎に状態判定部36及び統計モデル構築部39を起動する。状態判定部36と統計モデル構築部39を起動するタイミング及び時間間隔は、同じでもよく、異なってもよい。
統計モデル構築部39は、ログ記憶部32に基づいてエリア毎現在状態毎のデバイス数を集計し、統計モデル記憶部34に格納する。また、統計モデル構築部39は、定義されたエラー状態に集計結果がなった場合に、エラー通知を画面に表示する。例えば、統計モデル構築部39は、10%のデバイス2のアプリ21がエラー状態になったら緊急通知を表示装置に表示する。
状態遷移設定部40は、ユーザからの指示に基づいて、状態遷移モデル記憶部31にアプリ21の状態遷移モデルを設定する。また、状態遷移設定部40は、ユーザからの指示に基づいて、状態遷移モデル記憶部31が記憶する状態遷移モデルを削除又は更新する。
状態可視化部41は、統計モデル記憶部34の情報に基づいて、アプリ21の状態を可視化して表示装置に表示する。図10は、アプリ状態可視化の画面例を示す図である。図10は、あるエリアについて、各状態にあるデバイス2の割合を示す。図10に示すように、アプリ21がアプリ起動の状態にあるデバイス2は25%であり、アプリ21が温度データ送信の状態にあるデバイス2は50%であり、アプリ21がデータ送信停止の状態にあるデバイス2は25%である。
次に、状態通知の受信からアプリ21の動作判定までの処理の流れについて説明する。図11は、状態通知の受信からアプリ21の動作判定までの処理の流れを示すシーケンス図である。なお、ここでは、状態通知に含まれる現在状態への遷移がアプリ状態遷移モデルに定義され、遷移条件がある場合について説明する。
図11に示すように、通信部35は、デバイス2から状態通知を受信する(t1)と、受信した状態通知を状態判定部36に渡す(t2)。すると、状態判定部36は、状態通知を送信したデバイス2の現在状態をログ記憶部32から取得し(t3〜t4)、取得した現在状態を遷移元とし、受信した状態通知に含まれる現在状態を遷移先とする遷移の遷移条件を取得する(t5〜t6)。
そして、状態判定部36は、取得した遷移条件の条件判定を行う(t7)。そして、遷移条件が満たされれば、状態判定部36は、受信した状態通知に含まれる現在状態への状態更新をログ記憶部32に対して行う(t8〜t9)。
このように、状態判定部36は、遷移条件の条件判定を行うことによって、アプリ21の動作異常を検出することができる。なお、状態判定部36は、状態通知の受信とは独立に一定時間毎に時間監視部38からの状態確認通知により起動され(t10)、遷移条件が満たされているか否かをチェックする。
次に、統計モデルを構築する処理の流れについて説明する。図12は、統計モデルを構築する処理の流れを示すシーケンス図である。図12に示すように、統計モデル構築部39は、時間監視部38により一定時間毎に処理起動される(t11)と、状態遷移モデル記憶部31からアプリ21の状態リストを取得する(t12〜t13)。
そして、統計モデル構築部39は、ログ記憶部32から状態毎にデータを取得し(t14〜t15)、取得したデータを用いてエリア毎にデータ集計を行う(t16)。そして、統計モデル構築部39は、状態毎、エリア毎のデバイス数を統計モデル記憶部34に登録する(t17〜t18)。そして、統計モデル構築部39は、定義されたエラー状態になっているか否かを判定し、定義されたエラー状態になっている場合には、緊急通知を表示装置に表示する(t19)。
このように、統計モデル構築部39が統計モデルを構築して統計モデル記憶部34に登録することで、状態可視化部41は、アプリ21の状態を可視化して表示することができる。また、統計モデル構築部39が、定義されたエラー状態になっている場合に、緊急通知を表示装置に表示することで、エラーが特定の場所で同時多発している等の状況をユーザに認識させることができる。
次に、アプリ状態可視化の処理の流れについて説明する。図13は、アプリ状態可視化の処理の流れを示すシーケンス図である。図13に示すように、状態可視化部41は、ユーザから全体可視化指示を受け取る(t21)と、状態遷移モデル記憶部31から状態リストを取得する(t22〜t23)。
そして、状態可視化部41は、統計モデル構築部34から状態毎のデバイス数を取得する(t24〜t25)。そして、状態可視化部41は、全体数を集計し、各状態の割合を表示装置に表示する(t26〜t27)。
そして、状態可視化部41は、ユーザからエリア絞り込み指示を受け取る(t28)と、状態遷移モデル記憶部31から状態リストを取得する(t29〜t30)。
そして、状態可視化部41は、統計モデル構築部34から特定エリアの状態毎のデバイス数を取得する(t31〜t32)。そして、状態可視化部41は、特定エリアの全体数を集計し、各状態の割合を表示装置に表示する(t33〜t34)。
そして、状態可視化部41は、ユーザから詳細表示指示を受け取る(t35)と、状態遷移モデル記憶部31から状態リストを取得する(t36〜t37)。そして、状態可視化部41は、ログ記憶部32から特定のデバイスの情報を取得し(t38〜t39)、表示装置に表示する(t40)。
このように、状態可視化部41が状態毎あるいはエリア毎状態毎にアプリ21の状態表示するので、ユーザは、分散配置された複数のデバイス2で動作するアプリ21の状態を全体的に把握することができる。
次に、状態通知受信時の状態判定部36による処理のフローについて説明する。図14は、状態通知受信時の状態判定部36による処理のフローを示すフローチャートである。図14に示すように、状態判定部36は、デバイス2から状態通知を受信すると、状態通知からアプリ21の現在状態(a)を取得する(ステップS1)。
そして、状態判定部36は、動作状況ログをデバイスIDで検索して、対応するアプリ21の現在状態(b)を取得する(ステップS2)。そして、状態判定部36は、動作状況ログを用いてデバイスIDに対応する種別を特定し、特定した種別に対応する状態遷移モデルのXML記述を取得する(ステップS3)。
そして、状態判定部36は、状態遷移モデルのXML記述から、遷移元(from)が現在状態(b)と一致する遷移(Trans)を取得する(ステップS4)。そして、状態判定部36は、取得した遷移に遷移先(to)が状態通知に含まれる現在状態(a)と一致するものがあるか否かを判定し(ステップS5)、一致するものがない場合には、ステップS10へ進む。
一方、一致するものがある場合には、状態判定部36は、一致した遷移に時間制限があるか否かを判定し(ステップS6)、時間制限がない場合には、ステップS9へ進む。一方、時間制限がある場合には、状態判定部36は、現在状態(b)の最終更新時刻に制限時間を加え、遷移期限時刻を算出する(ステップS7)。
そして、状態判定部36は、現在時刻が遷移期限時刻を超えているか否かを判定する(ステップS8)。そして、状態判定部36は、超えていない場合には、動作状況ログを、受信した現在状態(a)に更新し(ステップS9)、超えた場合には、現在状態(b)をアプリエラーの状態に更新する(ステップS10)。
そして、状態判定部36は、エラー状態に遷移したか否かを判定し(ステップS11)、エラー状態に遷移した場合には、エラー情報を通知する(ステップS12)。ここで、「エラー状態」とは、例えば、図2に示したアプリエラー又はミドルエラーの状態である。
このように、状態判定部36は、アプリ21の状態遷移が状態遷移モデルの定義に従っているか否かを判定することによって、アプリ21の動作状況が正常か否かを判定することができる。
次に、タイマー起動時の状態判定部36による処理のフローについて説明する。図15は、タイマー起動時の状態判定部36による処理のフローを示すフローチャートである。図15に示すように、状態判定部36は、タイマーにより定期的に起動される(ステップS21)。
そして、状態判定部36は、動作状況ログから1つアプリ21の現在状態(b)を取得する(ステップS22)。そして、状態判定部36は、デバイス2に対応する種別を特定し、特定した種別に対応する状態遷移モデルのXML記述を取得する(ステップS23)。
そして、状態判定部36は、状態遷移モデルのXML記述から、遷移元(from)が現在状態(b)と一致する遷移(Trans)を取得する(ステップS24)。そして、状態判定部36は、一致した遷移に時間制限があるか否かを判定し(ステップS25)、時間制限がない場合には、ステップS30へ進む。一方、時間制限がある場合には、状態判定部36は、現在状態(b)の最終更新時刻に制限時間を加え、遷移期限時刻を算出する(ステップS26)。
そして、状態判定部36は、現在時刻が遷移期限時刻を超えているか否かを判定する(ステップS27)。そして、状態判定部36は、超えていない場合には、ステップS30へ進み、超えた場合には、現在状態(b)をアプリエラーの状態に更新し(ステップS28)、エラー情報を通知する(ステップS29)。
そして、状態判定部36は、動作状況ログに未処理のデバイス情報があるか否かを判定し(ステップS30)、ある場合には、ステップS22に戻り、ない場合には、処理を終了する。
このように、状態判定部36は、定期的にアプリ21の状態遷移の時間制限をチェックすることで、アプリ21が正しく動作しているか否かを判定することができる。
上述してきたように、実施例では、状態遷移モデル記憶部31がアプリ21の状態遷移モデルを記憶し、ログ記憶部32がアプリ21の動作状況ログを記憶する。そして、状態判定部36が、デバイス2から状態通知を受信すると、動作状況ログからアプリ21の現在状態(b)を特定し、状態通知からアプリの現在状態(a)を特定する。また、状態判定部36は、状態通知からアプリ21の状態遷移モデルを特定する。そして、状態判定部36は、現在状態(b)から現在状態(a)への遷移に付加されている遷移条件を満たさない場合に、アプリ21の動作が正常でないと判定する。したがって、監視装置3は、デバイス2で動作するアプリ21の動作を監視することができる。
また、実施例では、遷移条件に時間制限を含むこととしたので、監視装置3は、制限時間のある動作をアプリ21が正しく行っているかを監視することができる。
また、実施例では、統計モデル構築部39が動作状況ログを用いて統計モデルを構築して統計モデル記憶部34に格納し、状態可視化部41が、統計モデルを可視化して表示装置に表示する。したがって、監視装置3は、複数のアプリ21の全体的把握に有用な情報を提供することができる。
また、実施例では、統計モデル構築部39は、統計モデルが定義されたエラー状態になっている場合に、緊急通知を表示装置に表示するので、例えば、エラーが特定の場所で同時多発している等の状況をユーザに認識させることができる。
なお、実施例では、監視装置3について説明したが、監視装置3が有する構成をソフトウェアによって実現することで、同様の機能を有する監視プログラムを得ることができる。そこで、監視プログラムを実行するコンピュータについて説明する。
図16は、実施例に係る監視プログラムを実行するコンピュータのハードウェア構成を示す図である。図16に示すように、コンピュータ50は、メインメモリ51と、CPU52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
メインメモリ51は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU52は、メインメモリ51からプログラムを読み出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVDの読み書きを行う装置である。
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
そして、コンピュータ50において実行される監視プログラムは、DVDに記憶され、ODD57によってDVDから読み出されてコンピュータ50にインストールされる。あるいは、監視プログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ50にインストールされる。そして、インストールされた監視プログラムは、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
また、実施例では、デバイス2で1つのアプリ21が動作する場合について説明したが、本発明はこれに限定されるものではなく、デバイス2で複数のアプリ21が動作する場合にも同様に適用することができる。デバイス2で複数のアプリ21が動作する場合に、アプリ21及びログ収集プログラム22は、アプリ21を識別するためのアプリIDも状態通知に含めて監視装置3に送信する。監視装置3は、アプリIDからアプリ21の種別を判定してログ記憶部32の種別に書き込む。
1 IoTシステム
2 デバイス
3 監視装置
21 アプリ(IoT分散アプリ)
22 ログ収集プログラム
31 状態遷移モデル記憶部
32 ログ記憶部
33 通知設定情報記憶部
34 統計モデル記憶部
35 通信部
36 状態判定部
36a 第1特定部
36b 第2特定部
36c 第3特定部
36d 判定部
36e 通知部
37 通知設定管理部
38 時間監視部
39 統計モデル構築部
40 状態遷移判定部
41 状態可視化部
46,48 アプリ種別テンプレート部分
47,49 アプリ固有拡張部分
50 コンピュータ
51 メインメモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD

Claims (8)

  1. 複数のデバイスから送信された状態通知に含まれるアプリの状態に基づいて各デバイスで動作するアプリの状態を記憶するログ記憶部と、
    前記複数のデバイスのうちの1つである第1デバイスから状態通知を受信すると、受信した状態通知に基づいて前記ログ記憶部を検索して該第1デバイスで動作する第1アプリの第1状態を特定する第1特定部と、
    前記受信した状態通知に含まれるアプリの状態を前記第1アプリの第2状態として特定する第2特定部と、
    前記受信した状態通知に基づいて前記第1アプリに対応づけられた状態遷移モデルを特定する第3特定部と、
    前記第1状態から前記第2状態への遷移が前記状態遷移モデルで定義された状態遷移に関する所定の条件を満たすか否かを判定する判定部と、
    前記判定部により前記所定の条件を満たさないと判定された場合に、前記第1アプリにエラーが発生したことを通知する通知部と
    を有することを特徴とする監視装置。
  2. 前記所定の条件は、前記第1状態から前記第2状態への時間制限であることを特徴とする請求項1に記載の監視装置。
  3. 前記ログ記憶部が記憶するアプリの状態に基づいて、前記複数のデバイスで動作する複数のアプリの状態を集計する集計部と、
    前記集計部により集計された複数のアプリの状態を表示する表示部と
    をさらに有することを特徴とする請求項1に記載の監視装置。
  4. 前記集計部は、集計結果がエラー状態として定義されている場合に、緊急通知を行うことを特徴とする請求項3に記載の監視装置。
  5. 各デバイスでは1つのアプリが動作し、前記状態通知はデバイスで動作するアプリの状態を含むことを特徴とする請求項1〜4のいずれか1つに記載の監視装置。
  6. 各デバイスでは複数のアプリが動作し、前記状態通知はアプリを識別する識別子と該アプリの状態を含むことを特徴とする請求項1〜4のいずれか1つに記載の監視装置。
  7. コンピュータが、
    複数のデバイスから送信された状態通知に含まれるアプリの状態に基づいて各デバイスで動作するアプリの状態をログ記憶部に記憶し、
    前記複数のデバイスのうちの1つである第1デバイスから状態通知を受信すると、受信した状態通知に基づいて前記ログ記憶部を検索して該第1デバイスで動作する第1アプリの第1状態を特定し、
    前記受信した状態通知に含まれるアプリの状態を前記第1アプリの第2状態として特定し、
    前記受信した状態通知に基づいて前記第1アプリに対応づけられた状態遷移モデルを特定し、
    前記第1状態から前記第2状態への遷移が前記状態遷移モデルで定義された状態遷移に関する所定の条件を満たすか否かを判定し、
    前記所定の条件を満たさないと判定した場合に、前記第1アプリにエラーが発生したことを通知する
    処理を実行することを特徴とする監視方法。
  8. コンピュータに、
    複数のデバイスから送信された状態通知に含まれるアプリの状態に基づいて各デバイスで動作するアプリの状態をログ記憶部に記憶し、
    前記複数のデバイスのうちの1つである第1デバイスから状態通知を受信すると、受信した状態通知に基づいて前記ログ記憶部を検索して該第1デバイスで動作する第1アプリの第1状態を特定し、
    前記受信した状態通知に含まれるアプリの状態を前記第1アプリの第2状態として特定し、
    前記受信した状態通知に基づいて前記第1アプリに対応づけられた状態遷移モデルを特定し、
    前記第1状態から前記第2状態への遷移が前記状態遷移モデルで定義された状態遷移に関する所定の条件を満たすか否かを判定し、
    前記所定の条件を満たさないと判定した場合に、前記第1アプリにエラーが発生したことを通知する
    処理を実行させることを特徴とする監視プログラム。
JP2016242737A 2016-12-14 2016-12-14 監視装置、監視方法及び監視プログラム Pending JP2018097695A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016242737A JP2018097695A (ja) 2016-12-14 2016-12-14 監視装置、監視方法及び監視プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016242737A JP2018097695A (ja) 2016-12-14 2016-12-14 監視装置、監視方法及び監視プログラム

Publications (1)

Publication Number Publication Date
JP2018097695A true JP2018097695A (ja) 2018-06-21

Family

ID=62633610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016242737A Pending JP2018097695A (ja) 2016-12-14 2016-12-14 監視装置、監視方法及び監視プログラム

Country Status (1)

Country Link
JP (1) JP2018097695A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021018561A (ja) * 2019-07-19 2021-02-15 セイコーエプソン株式会社 情報処理装置の制御方法、プログラム、および通信システム
CN112970004A (zh) * 2018-11-16 2021-06-15 三菱电机株式会社 信息处理装置、信息处理方法及信息处理程序

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112970004A (zh) * 2018-11-16 2021-06-15 三菱电机株式会社 信息处理装置、信息处理方法及信息处理程序
JP2021018561A (ja) * 2019-07-19 2021-02-15 セイコーエプソン株式会社 情報処理装置の制御方法、プログラム、および通信システム
JP7306127B2 (ja) 2019-07-19 2023-07-11 セイコーエプソン株式会社 情報処理装置の制御方法、プログラム、および通信システム

Similar Documents

Publication Publication Date Title
US10437578B2 (en) Orchestration of software applications upgrade using automatic hang detection
US9519495B2 (en) Timed API rules for runtime verification
US7856575B2 (en) Collaborative troubleshooting computer systems using fault tree analysis
US8812911B2 (en) Distributed testing of a software platform
EP3220270B1 (en) System and method to configure distributed measuring devices and treat measurement data
US9064048B2 (en) Memory leak detection
US9495234B1 (en) Detecting anomalous behavior by determining correlations
US9170860B2 (en) Parallel incident processing
US11157373B2 (en) Prioritized transfer of failure event log data
US9602337B2 (en) Event and alert analysis in a distributed processing system
JP2018506104A (ja) 計測されたソフトウェアを分析するためのデータストリーム処理言語
US11550628B2 (en) Performing runbook operations for an application based on a runbook definition
US11323463B2 (en) Generating data structures representing relationships among entities of a high-scale network infrastructure
US10860454B2 (en) Analyzing large-scale data processing jobs
US20170063659A1 (en) Granularity-focused distributed system hierarchical health evaluation
US11960873B2 (en) System and method for managing a model for solving issues using a set of actions performed on the client environment
US11288164B2 (en) Dynamic distributed tracing instrumentation in a microservice architecture
US11416367B2 (en) Linking computing metrics data and computing inventory data
US20150370619A1 (en) Management system for managing computer system and management method thereof
JP2018097695A (ja) 監視装置、監視方法及び監視プログラム
US10382311B2 (en) Benchmarking servers based on production data
US10929364B2 (en) Assisted problem identification in a computing system
CN114676198A (zh) 一种面向多模数据库的基准评测系统及其构建方法
US20170111224A1 (en) Managing component changes for improved node performance
US20130151691A1 (en) Analyzing and Reporting Business Objectives in Multi-Component Information Technology Solutions