JP6147269B2 - コンピュータによるコンポーネントの動作状態の検出 - Google Patents
コンピュータによるコンポーネントの動作状態の検出 Download PDFInfo
- Publication number
- JP6147269B2 JP6147269B2 JP2014540779A JP2014540779A JP6147269B2 JP 6147269 B2 JP6147269 B2 JP 6147269B2 JP 2014540779 A JP2014540779 A JP 2014540779A JP 2014540779 A JP2014540779 A JP 2014540779A JP 6147269 B2 JP6147269 B2 JP 6147269B2
- Authority
- JP
- Japan
- Prior art keywords
- character string
- output
- command
- component
- distance
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Debugging And Monitoring (AREA)
Description
本発明は、コンピュータ・システムにおけるコンピュータによるコンポーネントの動作状態の検出に関し、より具体的には、コンピュータによるコマンドライン・インタフェース上のコマンド(以下「CLIコマンド」と呼ぶ)を用いたコンポーネントの動作状態の検出方法に関する。
コンピュータ・システムが大規模化してくると、複数の汎用的なモジュールやデバイスを組み合わせてシステムを構成することがある。このようなシステムにおいて、各モジュールやデバイスの動作状態を調べるために、それらが提供するCLIコマンドを呼び出し、そのCLIコマンドに対する出力文字列を解析するプログラム(以下「出力解析プログラム」と呼ぶ)を作成し利用することがある。
出力解析プログラムを正しく作成するために、CLIコマンドに対する出力形式を知る必要があるが、通常CLIコマンドに対する詳細かつ厳密な出力形式を知ることは非常に困難である。そのため、ある時点での実際のCLIコマンドに対する出力形式に合わせてプログラミングすることになる。したがって、CLIコマンドに対する出力形式が変更された場合には、出力解析プログラムが正しく動作しなくなる可能性がある。例えば、テスト中に、CLIコマンドに対する出力形式が変更されたことによって出力解析プログラムが突然動作しなくなることもある。
出力解析プログラムはシステムの状態を監視するために作られているため、出力解析プログラムが動かなくなることはシステムテストにおいて大きなインパクトがある。例えば、システムのテストを実行する前には、テスト対象のシステムが正しく動作しているか確認する必要があり、出力解析プログラムが動かない場合には、この確認が行えなくなってしまうからである。
本発明の目的は、上述した従来の出力解析プログラムを用いた場合の問題を解決/軽減することであって、具体的には、CLIコマンドに対する出力形式が変更された場合であっても、CLIコマンドに対する出力文字列を解析することにより、テスト対象のシステム(コンポーネント、モジュール、デバイス等)の動作状態を検出/確認することを可能にすることである。
本発明は、複数のコンポーネントを含むコンピュータ・システムにおいて、コンピュータがコンポーネントの動作状態を検出するための方法を提供する。その方法は、コンポーネントにCLIコマンドを送るステップと、コンポーネントからCLIコマンドに対する出力文字列を受け取るステップと、出力文字列をデータの意味を表すラベル文字列と、データ自体を表すデータ文字列とを含む有意部分文字列に分解するステップと、有意部分文字列の各々に対応する正規表現を設定するステップと、設定された正規表現の各々と対応する有意部分文字列との差異を文字列距離として算出するステップと、算出された文字列距離を対応する所定のしきい値と比較するステップと、その比較の結果に応じて、コンポーネントの動作状態を出力するステップと、を含む。
本発明の方法によれば、コンポーネントからのCLIコマンドに対する出力文字列を有意部分文字列に分解し、各有意部分文字列を対応する正規表現と比較して、そのコンポーネントの動作状態を検出するので、たとえCLIコマンドに対する出力形式が変更された場合であっても、コンポーネントの動作状態を検出し出力することができる。
図面を参照しながら本発明の実施の形態を説明する。図1は、本発明の方法が実施されるコンピュータ・システムの構成例を示す図である。システム100は、イーサネット(登録商標)・スイッチ(LANスイッチ)40を介して相互に通信可能に接続されたホスト(サーバー)10、PC(端末)20、ネットワーク・ドライブ30を含む。ネットワーク・ドライブ30は、HDDやテープドライブ等の記憶手段を含む。これらの各装置は、本発明で使用する「コンポーネント」の1つとなり、また各装置に付随するモジュールやデバイスも「コンポーネント」の1つとなり得る。図1では、ホスト(サーバー)10、PC(端末)20、およびネットワーク・ドライブ30は、それぞれ1つしか描かれていないが、これはあくまで例示であって、各装置がそれぞれ2以上の任意の台数を含むことができることは言うまでもない。
本発明の方法は、図1の構成において、例えばPC20が、サーバー10やネットワーク・ドライブ30からからダウンロードしたソフトウェア、あるいは自己の内蔵する記憶手段(HDD等)内に保管されたソフトウェアを呼び出して実行することにより実施される。なお、ネットワークに接続されないスタンドアローンのPCによって、本発明の方法が実施可能であることは言うまでもない。
図2は、本発明の方法を実行するコンピュータの構成例を示すブロック図である。図2では、図1のPC20の構成例を例示している。PC20は、バス230を介して相互に接続された演算処理装置(CPU)200、記憶手段210、各種I/F220を含む。各種I/F220は、入力I/F、出力I/F、外部記憶I/F、外部通信I/F等を含む総称として用いられ、各I/Fが、それぞれ対応するキーボード、マウス等の入力手段240、CRT、LCD等の表示手段250、USB接続の半導体メモリやHDD等の外部記憶手段260等に接続する。記憶手段210は、RAM、ROM等の半導体メモリ、HDD等を含むことができる。
ここで、本発明の方法において使用する各用語について説明する。以下の説明では、CLIコマンドとしてLinux(登録商標)システムで用いられるdfコマンドを例にとり説明する。dfコマンドは、システムにマウントされたファイルシステムの情報(ディスク残量等)を出力させるためのコマンドである。なお、本発明で使用可能なCLIコマンドは、dfコマンドに限定されるものではなく、他の任意のCLIコマンドを使用することができる。
(A)出力文字列
図3にdfコマンドに対する出力文字列の一実施形態を示す。1列目のFilesystemは、ファイルシステム(デバイス)名を意味する。2列目の1K-blocksは、最大サイズ(容量)を意味する。3列目のUsedは、使用されているサイズを意味する。4列目のAvailableは、利用可能なサイズ(残量)を意味する。5列目のUse%は、使用されているサイズの割合(%)を意味する。6列目のMounted onは、デバイスのマウント先を意味する。各列において、2行目以降が実際のデータを示している。例えば、5列目のUse%においては、デバイス:/dev/sda2では91%使用済みであり、デバイス:tmpfsでは0%使用済みであり、デバイス:/dev/gpfs0では30%使用済みであることをそれぞれ示している。
図3にdfコマンドに対する出力文字列の一実施形態を示す。1列目のFilesystemは、ファイルシステム(デバイス)名を意味する。2列目の1K-blocksは、最大サイズ(容量)を意味する。3列目のUsedは、使用されているサイズを意味する。4列目のAvailableは、利用可能なサイズ(残量)を意味する。5列目のUse%は、使用されているサイズの割合(%)を意味する。6列目のMounted onは、デバイスのマウント先を意味する。各列において、2行目以降が実際のデータを示している。例えば、5列目のUse%においては、デバイス:/dev/sda2では91%使用済みであり、デバイス:tmpfsでは0%使用済みであり、デバイス:/dev/gpfs0では30%使用済みであることをそれぞれ示している。
(B)有意部分文字列
図4に、図3のdfコマンドに対する出力文字列を有意部分文字列に分解した一実施形態を示す。図4において、[・・・]で囲われた各部分が有意部分文字列に相当する。有意部分文字列は、出力文字列において意味のある部分文字列のことを意味する。意味のある部分文字列とは、例えば以下のように分類することができる。
(i)データの意味を表す文字列(Filesystem、Used等)
(ii)データ自体を表す文字列 (/dev/sda2、115357916等)
(iii)出力を見やすくするための文字列(空白部分、区切り文字、改行等)
ここで、(i)データの意味を表す文字列は、コマンドを実行する環境・タイミングに関わらず、常に同じ出力が現れることが期待できるので、便宜上、ラベル文字列と呼ぶことができる。また、(ii)データ自体を表す文字列と(iii)出力を見やすくするための文字列は、コマンドを実行する環境やタイミングによって出力が変化し得るので、便宜上、各々をデータ文字列と呼ぶことができる。
図4に、図3のdfコマンドに対する出力文字列を有意部分文字列に分解した一実施形態を示す。図4において、[・・・]で囲われた各部分が有意部分文字列に相当する。有意部分文字列は、出力文字列において意味のある部分文字列のことを意味する。意味のある部分文字列とは、例えば以下のように分類することができる。
(i)データの意味を表す文字列(Filesystem、Used等)
(ii)データ自体を表す文字列 (/dev/sda2、115357916等)
(iii)出力を見やすくするための文字列(空白部分、区切り文字、改行等)
ここで、(i)データの意味を表す文字列は、コマンドを実行する環境・タイミングに関わらず、常に同じ出力が現れることが期待できるので、便宜上、ラベル文字列と呼ぶことができる。また、(ii)データ自体を表す文字列と(iii)出力を見やすくするための文字列は、コマンドを実行する環境やタイミングによって出力が変化し得るので、便宜上、各々をデータ文字列と呼ぶことができる。
(C)正規表現
各有意部分文字列について、実際にCLIコマンドを実行しその出力を見ることで、「どのような出力があり得るのか」を推測することができる。この情報を元に、CLIコマンドにおける各有意部分文字列について、実際の出力とマッチする正規表現を定義することができる。例えば、上述したdfコマンドの出力のうち、「Use%」列について考える。dfコマンドの出力の詳細な定義を知らなくても、「Use%」という文字列等から、この列は対応するファイルシステムの使用量を百分率で表しているものだと推測できる。このことから、「Use%」列の値は、「0%から100%の範囲にある整数の百分率の値」であると推測できる。
各有意部分文字列について、実際にCLIコマンドを実行しその出力を見ることで、「どのような出力があり得るのか」を推測することができる。この情報を元に、CLIコマンドにおける各有意部分文字列について、実際の出力とマッチする正規表現を定義することができる。例えば、上述したdfコマンドの出力のうち、「Use%」列について考える。dfコマンドの出力の詳細な定義を知らなくても、「Use%」という文字列等から、この列は対応するファイルシステムの使用量を百分率で表しているものだと推測できる。このことから、「Use%」列の値は、「0%から100%の範囲にある整数の百分率の値」であると推測できる。
また、dfコマンドを何度か実行することで、この値の最後は常に%で終わる、という事実も確認できるはずである。したがって、この列に現れることが期待される値を、例えばUnix(登録商標)システムで一般的に用いられる正規表現で表すと“(0|[0-9][0-9]|100)%”となる。ここで、0と100は0〜100%の範囲を意味し、[0-9]と[0-9]は、1ケタ目が0〜9までの整数をとり、2ケタ目も同じように0〜9までの整数をとることを意味する。
このようにして、全ての有意部分文字列について、コマンド出力の形式が変わらない限り、実際の出力の対応する部分とマッチする正規表現を定義できる。ここで、本発明では出力形式の仕様が分からないことを前提としているので、正規表現は一意には定まらないことに注意する。例えば、上記の「Use%」列の場合、「99.5%」という実数値の出力は許容していないが、実際にはあり得るかもしれない。したがって、正規表現を決める場合、「警告を出して欲しいあるいは停止して欲しいデータ」に対しては、マッチしないような正規表現を用いるのがより好ましい。
(D)文字列距離
文字列距離を算出するために、最初に以下のような言葉を定義する。あるCLIコマンドCの、ある時点での実際の出力をO(C)とし、O(C)における有意部分文字列の列をO=(o1、o2、・・・、oN)とする。このCLIコマンドCに対して、それが出力すると期待できる出力として、期待出力Pを定義する。ただし、Pとは以下で定義するような(E、 A、 B)からなる3つ組である。
E = (e1、 e2、・・・、eN): eiはi番目の有意部分文字列に対する正規表現
A ={i|i番目の有意部分文字列がラベル文字列}
B ={i|i番目の有意部分文字列がデータ文字列}
# A + B = E かつ A ∩ B = 空集合だからBは必要ないが、説明の便宜上AとBの両方を導入する。
例えば、図4に示したdfコマンドに対する有意部分文字列の「Use%」列の20番目にある有意部分文字列(91%)を例に取ると、O=(o1、o2、・・・、oN)とE = (e1、 e2、・・・、eN)の中のo20とe20とは、
o20 = 91%
e20 =(0|[0-9][0-9]|100)%
と表すことができる。他の順番(i)の有意部分文字列(oi)についても同様に表すことができる。
文字列距離を算出するために、最初に以下のような言葉を定義する。あるCLIコマンドCの、ある時点での実際の出力をO(C)とし、O(C)における有意部分文字列の列をO=(o1、o2、・・・、oN)とする。このCLIコマンドCに対して、それが出力すると期待できる出力として、期待出力Pを定義する。ただし、Pとは以下で定義するような(E、 A、 B)からなる3つ組である。
E = (e1、 e2、・・・、eN): eiはi番目の有意部分文字列に対する正規表現
A ={i|i番目の有意部分文字列がラベル文字列}
B ={i|i番目の有意部分文字列がデータ文字列}
# A + B = E かつ A ∩ B = 空集合だからBは必要ないが、説明の便宜上AとBの両方を導入する。
例えば、図4に示したdfコマンドに対する有意部分文字列の「Use%」列の20番目にある有意部分文字列(91%)を例に取ると、O=(o1、o2、・・・、oN)とE = (e1、 e2、・・・、eN)の中のo20とe20とは、
o20 = 91%
e20 =(0|[0-9][0-9]|100)%
と表すことができる。他の順番(i)の有意部分文字列(oi)についても同様に表すことができる。
次に、1≦i≦Nなiに対して、eiとoiの文字列距離D(ei、oi)を、次のような性質を持つ関数と定義する。
(i)実際の出力oiが定義された正規表現eiと一致した場合、D(ei、oi)=0
(ii)実際の出力oiが定義された正規表現と異なれば異なるほどD(ei、oi)は大きくなる。
(iii)D(ei、oi)は0以上の実数
例えば文字列距離D(ei、oi)は、編集距離(Edit Distance)を用いて算出することができる。例えば、上述した「Use%」列のo20 = 91%、e20 =(0|[0-9][0-9]|100)%の場合を例にとると、実際の出力に“%”が無い場合、あるいは“105%”と100以外の3桁の数字になっている場合は、D(e20、o20)=1となり、これらの両方が違っている場合(%なしで100以外の3桁の数字)は、D(e20、o20)=2となる、といったように相違点が増えるにつれて数値が大きくなるように文字列距離D(ei、oi)を算出する。
(i)実際の出力oiが定義された正規表現eiと一致した場合、D(ei、oi)=0
(ii)実際の出力oiが定義された正規表現と異なれば異なるほどD(ei、oi)は大きくなる。
(iii)D(ei、oi)は0以上の実数
例えば文字列距離D(ei、oi)は、編集距離(Edit Distance)を用いて算出することができる。例えば、上述した「Use%」列のo20 = 91%、e20 =(0|[0-9][0-9]|100)%の場合を例にとると、実際の出力に“%”が無い場合、あるいは“105%”と100以外の3桁の数字になっている場合は、D(e20、o20)=1となり、これらの両方が違っている場合(%なしで100以外の3桁の数字)は、D(e20、o20)=2となる、といったように相違点が増えるにつれて数値が大きくなるように文字列距離D(ei、oi)を算出する。
次に、図5と図6を参照しながら、上述した(A)出力文字列、(B)有意部分文字列、(C)正規表現、および(D)文字列距離を用いた本発明の方法の一実施形態のフローについて説明する。なお、両図の方法のフローは、図2に例示したコンピュータ(PC20)が対応するソフトウェアを実行することにより実施される。
最初に図5を参照する。ステップS11において、コンピュータがコンポーネントにCLIコマンドを送る。CLIコマンドは、例えば上述したdfコマンド等である。ステップS12において、コンピュータがコンポーネントからCLIコマンドに対する出力文字列を受け取る。出力文字列は、例えば上述した図3に例示されるdfコマンドに対する出力文字列等である。ステップS13において、受け取った出力文字列をデータの意味を表すラベル文字列と、データ自体を表すデータ文字列とを含む有意部分文字列に分解する。有意部分文字列は、図4を参照して上述したように、データ文字列としてユーザにとって見やすくなるための文字列をさらに含むことができる。
ステップS14において、得られた有意部分文字列の各々に対応する正規表現を設定する。正規表現の内容は既に上述した通りであり、予め各有意部分文字列について定義したものを記憶手段(メモリ)に格納しておき、これを呼び出して使用することができる。ステップS15において、設定された正規表現の各々と、対応する有意部分文字列との差異を文字列距離として算出する。文字列距離の算出は、上述した(D)文字列距離D(ei、oi)において説明した通りであり、各有意部分文字列について算出される。
ステップS16において、算出された文字列距離を対応する所定のしきい値と比較する。所定のしきい値は、対応する有意部分文字列(ラベル文字列)に対して個別に設定される。しきい値として、例えば以下の3つのしきい値を定義する。
T1: ゆるいしきい値
T2: 厳しいしきい値(例えば、T2=T1*2)
T3: 全体のしきい値(例えば、T3=T1*N、Nは有意部分文字列の総数)
これらはシステム(コンポーネント)の特性によって静的に定義できる。この3つのしきい値T1〜T3と文字列距離D(ei、oi)との比較については、図6を参照しながらさらに後述する。
T1: ゆるいしきい値
T2: 厳しいしきい値(例えば、T2=T1*2)
T3: 全体のしきい値(例えば、T3=T1*N、Nは有意部分文字列の総数)
これらはシステム(コンポーネント)の特性によって静的に定義できる。この3つのしきい値T1〜T3と文字列距離D(ei、oi)との比較については、図6を参照しながらさらに後述する。
ステップS17において、ステップS16の比較の結果に応じて、コンポーネントの動作状態を出力する。具体的には、比較の結果に応じて、その結果を記憶装置のログに残す、あるいは表示装置に警告を表示させる、少なくともいずれか一方をおこなう。ステップS18において、全ての文字列距離と対応するしきい値との比較が終了したか否かを判定する。判定結果がNoの場合は、ステップS16に戻り、さらにステップS16とS17を繰り返す。判定結果がYesの場合は、一連の処理を終了する。ユーザは、ログに記憶された情報(結果)を後から見ることにより、コンポーネントの動作状態を事後的に確認することができる。また、表示装置に表示される警告によって、ユーザは警告が表示される時点で直ちにコンポーネントの動作を停止させることが可能となる。
次に、図6を参照しながら、上述した3つのしきい値T1〜T3と文字列距離D(ei、oi)との比較について説明する。ステップS20において、文字列距離D(ei、oi)の初期化をおこなう。すなわち、i=1およびS=0がセットされる。Sの意味は後述する。ステップS21において、i≦Nを判定する。この判定がYesの場合、ステップS22において、D(ei、oi)*W(i) ≧T2を判定する。ここで、T2は上述した厳しいしきい値である。
一方、W(i)は、i番目の有意部分文字列の重み係数を意味する。W(i)は、eiとoiが異なっていることに対する問題の程度(重要性)の大きさを表すものである。例えば、i番目の有意部分文字列について、事前に用意した正規表現eiと出力oiとが少しでも異なっていれば警告を出して欲しい場合、W(i)は大きい値に設定する。逆に、正規表現eiと出力oiとが多少異なっていても、それが大きな問題ではない(重要でない)場合は、W(i)は小さい値に設定する。
ステップS22の判定がYesの場合、ステップS27において、その結果をログに残すこと、あるいは警告表示のいずれか一方または双方をおこなう。ステップS22の判定がNoの場合、ステップS23において、D(ei、oi)*W(i) ≧T1を判定する。ここで、T1は上述したゆるいしきい値である。この判定がYesの場合、ステップS24において、その結果をログに残すこと、あるいは警告表示のいずれか一方または双方をおこなう。ステップS23の判定がNoの場合、ステップS25において、S=S+D(ei、oi)*W(i)、i=i+1をセットし、ステップS21に戻り一連のステップを繰り返す。ここで、SはD(ei、oi)*W(i)の合計、すなわちΣ(D(ei、oi)*W(i)、i=1〜N)を意味する。
ステップS21の判定がNoの場合、ステップS26において、S≧T3を判定する。すなわち、D(ei、oi)*W(i)の合計S(ΣD(ei、oi)、i=1〜N)を上述した全体のしきい値と比較する。この判定がYesの場合、ステップS27において、その結果をログに残すこと、あるいは警告表示のいずれか一方または双方をおこなう。ステップS26の判定がNoの場合、一連の処理を終了する。
図6に示した一連のフロー(ステップ)は、総括的に以下のように表現することができる。
(a)CLIコマンドCを実行したときに、その出力文字列を有意文字列O(C)= {o1、・・・、oN}に分割する。
(b)予めあらかじめ用意しておいた期待出力P を用いて、各iについて文字列距離D(ei、oi)と重みW(i)の積D(ei、oi)*W(i)を求める。
(c)積D(ei、oi)*W(i)としきい値T1、T2とを比較する。
(d)積D(ei、oi)*W(i)がT2以上であれば、ログの出力または警告表示をおこなって終了する。
(e)D(ei、oi)*W(i)が、T1以上であればログの出力または警告表示をおこなうが、コンポーネントの動作は継続する。
(f)さらに、全ての出力oiについての積D(ei、oi)*W(i)の和を考慮し、D(ei、oi)*W(i)の合計S(ΣD(ei、oi)*W(i)、i=1〜N)の値とT3との比較を最後に行い、この和がT3以上であった場合も、ログの出力または警告表示をおこなって終了する。
(a)CLIコマンドCを実行したときに、その出力文字列を有意文字列O(C)= {o1、・・・、oN}に分割する。
(b)予めあらかじめ用意しておいた期待出力P を用いて、各iについて文字列距離D(ei、oi)と重みW(i)の積D(ei、oi)*W(i)を求める。
(c)積D(ei、oi)*W(i)としきい値T1、T2とを比較する。
(d)積D(ei、oi)*W(i)がT2以上であれば、ログの出力または警告表示をおこなって終了する。
(e)D(ei、oi)*W(i)が、T1以上であればログの出力または警告表示をおこなうが、コンポーネントの動作は継続する。
(f)さらに、全ての出力oiについての積D(ei、oi)*W(i)の和を考慮し、D(ei、oi)*W(i)の合計S(ΣD(ei、oi)*W(i)、i=1〜N)の値とT3との比較を最後に行い、この和がT3以上であった場合も、ログの出力または警告表示をおこなって終了する。
上述した実施形態により詳細に説明された本発明の方法によれば、CLIコマンドに対する出力形式が変更された場合であっても、CLIコマンドに対する出力文字列を解析することにより、テスト対象のシステム(コンポーネント、モジュール、デバイス等)の動作状態を検出/確認し、その動作を停止させる等の対応を適切におこなうことが可能となる。
本発明の実施形態について、図を参照しながら説明をした。しかし、本発明はこれらの実施形態に限られるものではない。本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正、変形を加えた態様で実施できるものである。
10 サーバー(ホスト)
20 PC
30 ネットワーク・ドライブ
40 イーサネット(登録商標)・スイッチ(LANスイッチ)
100 コンピュータ・システム
20 PC
30 ネットワーク・ドライブ
40 イーサネット(登録商標)・スイッチ(LANスイッチ)
100 コンピュータ・システム
Claims (6)
- 複数のコンポーネントを含むコンピュータ・システムにおいて、コンピュータがコンポーネントの動作状態を検出するための方法であって、
コンポーネントにコマンドライン・インタフェース上のコマンド(CLIコマンド)を送るステップと、
前記コンポーネントから前記CLIコマンドに対する出力文字列を受け取るステップと、
前記出力文字列をデータの意味を表すラベル文字列と、データ自体を表すデータ文字列とを含む有意部分文字列に分解するステップと、
前記有意部分文字列の各々に対応する正規表現を設定するステップと、
設定された前記正規表現の各々と、対応する前記有意部分文字列との差異を文字列距離として算出するステップと、
算出された前記文字列距離を対応する所定のしきい値と比較するステップと、
前記比較の結果に応じて、前記コンポーネントの動作状態を出力するステップと、を含む方法。 - 前記有意部分文字列は、前記出力文字列の前記データ文字列として、ユーザにとって見やすくなるための文字列をさらに含む、請求項1の方法。
- 前記正規表現は、対応する前記有意部分文字列が採り得る文字列範囲を含む、請求項1の方法。
- 前記文字列距離を算出するステップは、編集距離(Edit Distance)を用いて前記文字列距離を算出する、請求項1の方法。
- 前記コンポーネントの動作状態を出力するステップは、前記文字列距離が対応する所定のしきい値よりも大きい場合に、記憶装置のログに残すことあるいは表示装置に警告を表示させることの少なくともいずれか一方をおこなうことを含む、請求項1の方法。
- 請求項1〜5のいずれか1項の各ステップを前記コンピュータに実行させるためのコンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012225435 | 2012-10-10 | ||
JP2012225435 | 2012-10-10 | ||
PCT/JP2013/073504 WO2014057743A1 (ja) | 2012-10-10 | 2013-09-02 | コンピュータによるコンポーネントの動作状態の検出 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2014057743A1 JPWO2014057743A1 (ja) | 2016-09-05 |
JP6147269B2 true JP6147269B2 (ja) | 2017-06-14 |
Family
ID=50433712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014540779A Expired - Fee Related JP6147269B2 (ja) | 2012-10-10 | 2013-09-02 | コンピュータによるコンポーネントの動作状態の検出 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9292313B2 (ja) |
JP (1) | JP6147269B2 (ja) |
WO (1) | WO2014057743A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105656758B (zh) * | 2015-12-28 | 2018-11-16 | 广州酷狗计算机科技有限公司 | 消息收发方法、装置及系统 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0461496A (ja) * | 1990-06-29 | 1992-02-27 | Nec Corp | Isdnメッセージ正当性判定装置 |
US5835690A (en) * | 1992-12-15 | 1998-11-10 | Microsoft Corporation | Header/footer text string parsing using callback routines for additional processing |
DE19725790A1 (de) * | 1997-06-18 | 1998-12-24 | Fischer Gmbh Gert | Verfahren zum selektiven Erfassen und Auslesen einer Zeichenkette |
JP3614682B2 (ja) * | 1998-09-10 | 2005-01-26 | 富士通株式会社 | ネットワークの被監視装置及び監視装置 |
JP4456734B2 (ja) | 2000-06-28 | 2010-04-28 | 株式会社日立製作所 | システム監視情報処理方法及びコンソール装置を制御するためのプログラムを記録したコンピュータで読み取り可能な記録媒体 |
US7313822B2 (en) * | 2001-03-16 | 2007-12-25 | Protegrity Corporation | Application-layer security method and system |
US20050060693A1 (en) * | 2003-08-27 | 2005-03-17 | Terry Robison | Command string parsing |
US20050076013A1 (en) * | 2003-10-01 | 2005-04-07 | Fuji Xerox Co., Ltd. | Context-based contact information retrieval systems and methods |
US7386441B2 (en) * | 2003-11-14 | 2008-06-10 | Xerox Corporation | Method and apparatus for processing natural language using auto-intersection |
US7508985B2 (en) * | 2003-12-10 | 2009-03-24 | International Business Machines Corporation | Pattern-matching system |
US20070263773A1 (en) * | 2006-03-03 | 2007-11-15 | Symbol Technologies, Inc. | Methods and apparatus for automated testing of a device through a command line interface |
US7512634B2 (en) * | 2006-06-05 | 2009-03-31 | Tarari, Inc. | Systems and methods for processing regular expressions |
US20080071783A1 (en) * | 2006-07-03 | 2008-03-20 | Benjamin Langmead | System, Apparatus, And Methods For Pattern Matching |
US7949670B2 (en) * | 2007-03-16 | 2011-05-24 | Microsoft Corporation | Language neutral text verification |
JP2010271875A (ja) | 2009-05-20 | 2010-12-02 | Hitachi Ltd | ネットワーク管理システムおよびプログラム |
US8453027B2 (en) * | 2009-09-17 | 2013-05-28 | Microsoft Corporation | Similarity detection for error reports |
US8458354B2 (en) * | 2010-01-27 | 2013-06-04 | Interdisciplinary Center Herzliya | Multi-pattern matching in compressed communication traffic |
US8522199B2 (en) * | 2010-02-26 | 2013-08-27 | Mcafee, Inc. | System, method, and computer program product for applying a regular expression to content based on required strings of the regular expression |
JP4796664B1 (ja) | 2011-06-10 | 2011-10-19 | 株式会社野村総合研究所 | 感性分析システム及びプログラム |
US20130262492A1 (en) * | 2012-03-28 | 2013-10-03 | International Business Machines Corporation | Determination and Handling of Subexpression Overlaps in Regular Expression Decompositions |
US8732183B2 (en) * | 2012-05-29 | 2014-05-20 | Sap Portals Israel Ltd | Comparing strings of characters |
-
2013
- 2013-09-02 JP JP2014540779A patent/JP6147269B2/ja not_active Expired - Fee Related
- 2013-09-02 WO PCT/JP2013/073504 patent/WO2014057743A1/ja active Application Filing
- 2013-09-10 US US14/022,674 patent/US9292313B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2014057743A1 (ja) | 2014-04-17 |
US9292313B2 (en) | 2016-03-22 |
JPWO2014057743A1 (ja) | 2016-09-05 |
US20140101432A1 (en) | 2014-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9772896B2 (en) | Identifying intervals of unusual activity in information technology systems | |
JP6756379B2 (ja) | ログ分析方法、システムおよびプログラム | |
KR102204527B1 (ko) | 애플리케이션을 업데이트하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체 | |
CN110019214A (zh) | 对数据拆分结果进行校验的方法和装置 | |
US10007583B2 (en) | Generating a data structure to maintain error and connection information on components and use the data structure to determine an error correction operation | |
US11106563B2 (en) | Log analysis device, log analysis method, and recording medium storing program | |
US10725839B2 (en) | Helping a hardware accelerator using software | |
JP6147269B2 (ja) | コンピュータによるコンポーネントの動作状態の検出 | |
US20200233734A1 (en) | Wait-and-see candidate identification apparatus, wait-and-see candidate identification method, and computer readable medium | |
US20090077537A1 (en) | method of automatically generating test cases to test command line interfaces | |
CN112583660B (zh) | 一种推荐平台的主域、备域测试对比方法、装置及系统 | |
US12001551B2 (en) | Warning apparatus, control method, and program | |
CN113485891A (zh) | 业务日志监控方法、装置、存储介质及电子设备 | |
JP2017151594A (ja) | 支援装置、支援方法及びプログラム | |
WO2017104657A1 (ja) | 情報処理装置、情報処理方法、及び、記録媒体 | |
WO2017104571A1 (ja) | 情報処理装置、情報処理方法、及び、記録媒体 | |
TWI763169B (zh) | 雲端資料中心的事件種類的預測系統和預測方法 | |
WO2022259559A1 (ja) | 判定装置、判定方法および判定プログラム | |
CN113722642B (zh) | 网页页面的转换方法、装置、电子设备以及存储介质 | |
CN111026610B (zh) | 服务器故障日志多级分析方法、系统、终端及存储介质 | |
WO2019163915A1 (ja) | プロジェクト分析装置及びプログラム | |
US9594658B2 (en) | Method for displaying operation states of modules included in computer system | |
US20220391792A1 (en) | Extraction device, extraction method, and extraction program | |
CN115604091A (zh) | 数据处理方法、装置、基板控制管理系统及电子设备 | |
WO2020065960A1 (ja) | 情報処理装置、制御方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160824 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170425 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170516 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6147269 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |