WO2014057743A1 - コンピュータによるコンポーネントの動作状態の検出 - Google Patents

コンピュータによるコンポーネントの動作状態の検出 Download PDF

Info

Publication number
WO2014057743A1
WO2014057743A1 PCT/JP2013/073504 JP2013073504W WO2014057743A1 WO 2014057743 A1 WO2014057743 A1 WO 2014057743A1 JP 2013073504 W JP2013073504 W JP 2013073504W WO 2014057743 A1 WO2014057743 A1 WO 2014057743A1
Authority
WO
WIPO (PCT)
Prior art keywords
character string
output
component
command
distance
Prior art date
Application number
PCT/JP2013/073504
Other languages
English (en)
French (fr)
Inventor
博志 荒木
長谷川 徹
Original Assignee
インターナショナル・ビジネス・マシーンズ・コーポレーション
日本アイ・ビー・エム株式会社
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 インターナショナル・ビジネス・マシーンズ・コーポレーション, 日本アイ・ビー・エム株式会社 filed Critical インターナショナル・ビジネス・マシーンズ・コーポレーション
Priority to JP2014540779A priority Critical patent/JP6147269B2/ja
Publication of WO2014057743A1 publication Critical patent/WO2014057743A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Definitions

  • the present invention relates to detection of a component operating state by a computer in a computer system. More specifically, the present invention relates to detection of a component operating state using a command on a command line interface (hereinafter referred to as a “CLI command”) by a computer. It relates to a detection method.
  • a command on a command line interface hereinafter referred to as a “CLI command”
  • a system When a computer system becomes larger, a system may be configured by combining a plurality of general-purpose modules and devices. In such a system, in order to examine the operating state of each module or device, a CLI command provided by them is called and a program for analyzing an output character string corresponding to the CLI command (hereinafter referred to as an “output analysis program”) is created. May be used.
  • the output analysis program Since the output analysis program is created to monitor the system status, the failure of the output analysis program has a great impact on system testing. For example, it is necessary to check whether the system under test is operating correctly before executing the system test, and this check cannot be performed if the output analysis program does not work.
  • JP 2010-271875 A Japanese Patent No.4796664
  • An object of the present invention is to solve / reduce the problem when the above-described conventional output analysis program is used. Specifically, even when the output format for the CLI command is changed, the CLI is changed. By analyzing the output character string for the command, it is possible to detect / confirm the operating state of the system (component, module, device, etc.) to be tested.
  • the present invention provides a method for a computer to detect an operating state of a component in a computer system including a plurality of components.
  • the method includes a step of sending a CLI command to the component, a step of receiving an output character string for the CLI command from the component, a label character string indicating the meaning of the data as the output character string, and a data character string indicating the data itself.
  • the step of decomposing into significant partial character strings, the step of setting regular expressions corresponding to each of the significant partial character strings, and the difference between each of the set regular expressions and the corresponding significant partial character string are calculated as the character string distance.
  • an output character string for a CLI command from a component is decomposed into significant partial character strings, and each significant partial character string is compared with a corresponding regular expression to detect the operation state of the component. Even if the output format for the CLI command is changed, the operation state of the component can be detected and output.
  • FIG. 4 is a diagram of an embodiment in which the output character string of FIG. 3 is decomposed into significant partial character strings.
  • FIG. 3 is a diagram showing a flow of an embodiment of the method of the present invention.
  • FIG. 3 is a diagram showing a flow of an embodiment of the method of the present invention.
  • FIG. 1 is a diagram showing a configuration example of a computer system in which the method of the present invention is implemented.
  • the system 100 includes a host (server) 10, a PC (terminal) 20, and a network drive 30 that are communicably connected to each other via an Ethernet (registered trademark) switch (LAN switch) 40.
  • the network drive 30 includes storage means such as an HDD or a tape drive.
  • Each of these apparatuses is one of “components” used in the present invention, and a module or a device associated with each apparatus can be one of “components”.
  • FIG. 1 only one host (server) 10, PC (terminal) 20, and network drive 30 are illustrated. However, this is merely an example, and each device has an arbitrary number of two or more. It goes without saying that the number can be included.
  • the method of the present invention is executed by calling the software downloaded from the server 10 or the network drive 30 or the software stored in its own storage means (HDD or the like) in the configuration of FIG. It is carried out by doing. Needless to say, the method of the present invention can be implemented by a stand-alone PC not connected to the network.
  • FIG. 2 is a block diagram showing a configuration example of a computer that executes the method of the present invention.
  • FIG. 2 illustrates a configuration example of the PC 20 of FIG.
  • the PC 20 includes an arithmetic processing unit (CPU) 200, a storage unit 210, and various I / Fs 220 that are connected to each other via a bus 230.
  • the various I / Fs 220 are used as a general term including an input I / F, an output I / F, an external storage I / F, an external communication I / F, etc., and each I / F is an input such as a corresponding keyboard and mouse.
  • the unit 240 is connected to a display unit 250 such as a CRT or LCD, an external storage unit 260 such as a USB-connected semiconductor memory or HDD, and the like.
  • the storage unit 210 can include a semiconductor memory such as a RAM and a ROM, an HDD, and the like.
  • a df command used in a Linux (registered trademark) system will be described as an example of a CLI command.
  • the df command is a command for outputting information (such as the remaining disk capacity) of the file system mounted on the system.
  • the CLI command that can be used in the present invention is not limited to the df command, and any other CLI command can be used.
  • FIG. 3 shows an embodiment of an output character string for the df command.
  • Filesystem in the first column means a file system (device) name.
  • 1K-blocks in the second column means the maximum size (capacity).
  • Used in the third column means the size used.
  • Available in the fourth column means an available size (remaining amount).
  • Use% in the fifth column means the ratio (%) of the used size.
  • “Mounted on” in the sixth column means the mount destination of the device.
  • the second and subsequent rows indicate actual data. For example, in Use% in the fifth column, device: / dev / sda2 is 91% used, device: tmpfs is 0% used, and device: / dev / gpfs0 is 30% used Respectively.
  • FIG. 4 shows an embodiment in which the output character string for the df command in FIG. 3 is broken down into significant partial character strings.
  • each part enclosed by curve is equivalent to a significant partial character string.
  • the significant partial character string means a meaningful partial character string in the output character string.
  • the meaningful partial character string can be classified as follows, for example.
  • (I) Character string indicating the meaning of data (Filesystem, Used, etc.)
  • (Ii) Character string representing the data itself (/ dev / sda2, 115357916, etc.)
  • (Iii) Character string to make the output easier to see (blank part, delimiter, line feed, etc.)
  • a character string representing the meaning of data can be called a label character string for convenience because the same output can always be expected regardless of the environment and timing for executing the command.
  • a character string representing the data itself and (iii) a character string for making the output easier to see can be output depending on the environment and timing of executing the command, so each is referred to as a data character string for convenience. Can do.
  • a regular expression that matches the corresponding part of the actual output can be defined as long as the command output format does not change for all significant substrings.
  • the regular expression is not uniquely determined. For example, in the case of the above “Use%” column, output of a real value of “99.5%” is not permitted, but it may be possible in practice. Therefore, when deciding on a regular expression, it is more preferable to use a regular expression that does not match for "data that you want to warn or stop".
  • i-th significant substring is the label string ⁇ B ⁇ i
  • O (o1, o2,...
  • the character string distance D (ei, oi) between ei and oi is defined as a function having the following properties for i where 1 ⁇ i ⁇ N.
  • D (ei, oi) 0 if the actual output oi matches the defined regular expression ei
  • D (ei, oi) increases as the actual output oi differs from the defined regular expression.
  • D (ei, oi) is a real number of 0 or more, for example, the character string distance D (ei, oi) can be calculated using the edit distance (Edit Distance).
  • step S11 the computer sends a CLI command to the component.
  • the CLI command is, for example, the df command described above.
  • step S12 the computer receives an output character string for the CLI command from the component.
  • the output character string is, for example, an output character string for the df command exemplified in FIG. 3 described above.
  • step S13 the received output character string is decomposed into a significant partial character string including a label character string representing the meaning of the data and a data character string representing the data itself.
  • the significant partial character string may further include a character string that is easy to see for the user as a data character string.
  • step S14 a regular expression corresponding to each of the obtained significant partial character strings is set.
  • the contents of the regular expression are as already described above, and what is defined in advance for each significant partial character string is stored in the storage means (memory) and can be called and used.
  • step S15 a difference between each set regular expression and the corresponding significant partial character string is calculated as a character string distance.
  • the calculation of the character string distance is as described in the above (D) character string distance D (ei, oi), and is calculated for each significant partial character string.
  • the calculated character string distance is compared with a corresponding predetermined threshold value.
  • the predetermined threshold is individually set for the corresponding significant partial character string (label character string).
  • T1 Loose threshold
  • T1 to T3 T1 * N, where N is the total number of significant substrings
  • step S17 the operation state of the component is output according to the comparison result in step S16. Specifically, according to the comparison result, at least one of leaving the result in a log of the storage device or displaying a warning on the display device is performed.
  • step S18 it is determined whether or not the comparison between all the character string distances and the corresponding threshold value has been completed. If the determination result is No, the process returns to step S16, and steps S16 and S17 are repeated. If the determination result is Yes, the series of processing ends. The user can confirm the operation state of the component later by viewing the information (result) stored in the log later. Also, the warning displayed on the display device allows the user to stop the operation of the component immediately when the warning is displayed.
  • step S21 i ⁇ N is determined.
  • D (ei, oi) * W (i) ⁇ ⁇ T2 is determined in step S22.
  • T2 is the strict threshold described above.
  • W (i) means the weight coefficient of the i-th significant substring.
  • W (i) represents the magnitude of the degree (importance) of the problem with respect to the difference between ei and oi. For example, for the i-th significant partial character string, W (i) is set to a large value if a warning is to be issued if the prepared regular expression ei and the output oi are slightly different. Conversely, even if the regular expression ei and the output oi are slightly different, if it is not a big problem (not important), W (i) is set to a small value.
  • a series of flows (steps) shown in FIG. 6 can be generally expressed as follows.
  • (A) When the CLI command C is executed, the output character string is divided into significant character strings O (C) ⁇ o1,..., ON ⁇ .
  • C) The product D (ei, oi) * W (i) is compared with the threshold values T1 and T2.

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)

Abstract

 複数のコンポーネントを含むコンピュータ・システムにおいて、コンピュータがコンポーネントの動作状態を検出する。コンポーネントにコマンドライン・インタフェース上のコマンド(CLIコマンド)を送るステップS11と、コンポーネントからCLIコマンドに対する出力文字列を受け取るステップS12と、出力文字列をデータの意味を表すラベル文字列と、データ自体を表すデータ文字列とを含む有意部分文字列に分解するステップS13と、有意部分文字列の各々に対応する正規表現を設定するステップS14と、設定された正規表現の各々と対応する有意部分文字列との差異を文字列距離として算出するステップS15と、算出された文字列距離を対応する所定のしきい値と比較するステップS16と、比較の結果に応じて、コンポーネントの動作状態を出力するステップS17と、を含む。

Description

コンピュータによるコンポーネントの動作状態の検出
 本発明は、コンピュータ・システムにおけるコンピュータによるコンポーネントの動作状態の検出に関し、より具体的には、コンピュータによるコマンドライン・インタフェース上のコマンド(以下「CLIコマンド」と呼ぶ)を用いたコンポーネントの動作状態の検出方法に関する。
 コンピュータ・システムが大規模化してくると、複数の汎用的なモジュールやデバイスを組み合わせてシステムを構成することがある。このようなシステムにおいて、各モジュールやデバイスの動作状態を調べるために、それらが提供するCLIコマンドを呼び出し、そのCLIコマンドに対する出力文字列を解析するプログラム(以下「出力解析プログラム」と呼ぶ)を作成し利用することがある。
 出力解析プログラムを正しく作成するために、CLIコマンドに対する出力形式を知る必要があるが、通常CLIコマンドに対する詳細かつ厳密な出力形式を知ることは非常に困難である。そのため、ある時点での実際のCLIコマンドに対する出力形式に合わせてプログラミングすることになる。したがって、CLIコマンドに対する出力形式が変更された場合には、出力解析プログラムが正しく動作しなくなる可能性がある。例えば、テスト中に、CLIコマンドに対する出力形式が変更されたことによって出力解析プログラムが突然動作しなくなることもある。
 出力解析プログラムはシステムの状態を監視するために作られているため、出力解析プログラムが動かなくなることはシステムテストにおいて大きなインパクトがある。例えば、システムのテストを実行する前には、テスト対象のシステムが正しく動作しているか確認する必要があり、出力解析プログラムが動かない場合には、この確認が行えなくなってしまうからである。
特開2010-271875号公報 特許第4796664号公報
 本発明の目的は、上述した従来の出力解析プログラムを用いた場合の問題を解決/軽減することであって、具体的には、CLIコマンドに対する出力形式が変更された場合であっても、CLIコマンドに対する出力文字列を解析することにより、テスト対象のシステム(コンポーネント、モジュール、デバイス等)の動作状態を検出/確認することを可能にすることである。
 本発明は、複数のコンポーネントを含むコンピュータ・システムにおいて、コンピュータがコンポーネントの動作状態を検出するための方法を提供する。その方法は、コンポーネントにCLIコマンドを送るステップと、コンポーネントからCLIコマンドに対する出力文字列を受け取るステップと、出力文字列をデータの意味を表すラベル文字列と、データ自体を表すデータ文字列とを含む有意部分文字列に分解するステップと、有意部分文字列の各々に対応する正規表現を設定するステップと、設定された正規表現の各々と対応する有意部分文字列との差異を文字列距離として算出するステップと、算出された文字列距離を対応する所定のしきい値と比較するステップと、その比較の結果に応じて、コンポーネントの動作状態を出力するステップと、を含む。
 本発明の方法によれば、コンポーネントからのCLIコマンドに対する出力文字列を有意部分文字列に分解し、各有意部分文字列を対応する正規表現と比較して、そのコンポーネントの動作状態を検出するので、たとえCLIコマンドに対する出力形式が変更された場合であっても、コンポーネントの動作状態を検出し出力することができる。
本発明の方法が実施されるコンピュータ・システムの構成例を示すブロック図である。 本発明の方法を実行するコンピュータの構成例を示す図である。 CLIコマンドに対する出力文字列の一実施形態を示す図である。 図3の出力文字列を有意部分文字列に分解した一実施形態の図である。 本発明の方法の一実施形態のフローを示す図である。 本発明の方法の一実施形態のフローを示す図である。
 図面を参照しながら本発明の実施の形態を説明する。図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%使用済みであることをそれぞれ示している。
(B)有意部分文字列
 図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%の範囲にある整数の百分率の値」であると推測できる。
 また、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)についても同様に表すことができる。
 次に、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)を算出する。
 次に、図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を参照しながらさらに後述する。
 ステップ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以上であった場合も、ログの出力または警告表示をおこなって終了する。
 上述した実施形態により詳細に説明された本発明の方法によれば、CLIコマンドに対する出力形式が変更された場合であっても、CLIコマンドに対する出力文字列を解析することにより、テスト対象のシステム(コンポーネント、モジュール、デバイス等)の動作状態を検出/確認し、その動作を停止させる等の対応を適切におこなうことが可能となる。
 本発明の実施形態について、図を参照しながら説明をした。しかし、本発明はこれらの実施形態に限られるものではない。本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正、変形を加えた態様で実施できるものである。
 10 サーバー(ホスト)
 20 PC
 30 ネットワーク・ドライブ
 40 イーサネット(登録商標)・スイッチ(LANスイッチ)
 100 コンピュータ・システム

Claims (6)

  1.  複数のコンポーネントを含むコンピュータ・システムにおいて、コンピュータがコンポーネントの動作状態を検出するための方法であって、
     コンポーネントにコマンドライン・インタフェース上のコマンド(CLIコマンド)を送るステップと、
     前記コンポーネントから前記CLIコマンドに対する出力文字列を受け取るステップと、
     前記出力文字列をデータの意味を表すラベル文字列と、データ自体を表すデータ文字列とを含む有意部分文字列に分解するステップと、
     前記有意部分文字列の各々に対応する正規表現を設定するステップと、
     設定された前記正規表現の各々と、対応する前記有意部分文字列との差異を文字列距離として算出するステップと、
     算出された前記文字列距離を対応する所定のしきい値と比較するステップと、
     前記比較の結果に応じて、前記コンポーネントの動作状態を出力するステップと、を含む方法。
  2.  前記有意部分文字列は、前記出力文字列の前記データ文字列として、ユーザにとって見やすくなるための文字列をさらに含む、請求項1の方法。
  3.  前記正規表現は、対応する前記有意部分文字列が採り得る文字列範囲を含む、請求項1の方法。
  4.  前記文字列距離を算出するステップは、編集距離(Edit Distance)を用いて前記文字列距離を算出する、請求項1の方法。
  5.  前記コンポーネントの動作状態を出力するステップは、前記文字列距離が対応する所定のしきい値よりも大きい場合に、記憶装置のログに残すことあるいは表示装置に警告を表示させることの少なくともいずれか一方をおこなうことを含む、請求項1の方法。
  6.  請求項1~5のいずれか1項の各ステップを前記コンピュータに実行させるためのコンピュータ・プログラム。
PCT/JP2013/073504 2012-10-10 2013-09-02 コンピュータによるコンポーネントの動作状態の検出 WO2014057743A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014540779A JP6147269B2 (ja) 2012-10-10 2013-09-02 コンピュータによるコンポーネントの動作状態の検出

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012225435 2012-10-10
JP2012-225435 2012-10-10

Publications (1)

Publication Number Publication Date
WO2014057743A1 true WO2014057743A1 (ja) 2014-04-17

Family

ID=50433712

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/073504 WO2014057743A1 (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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105656758B (zh) * 2015-12-28 2018-11-16 广州酷狗计算机科技有限公司 消息收发方法、装置及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0461496A (ja) * 1990-06-29 1992-02-27 Nec Corp Isdnメッセージ正当性判定装置
JP2000092053A (ja) * 1998-09-10 2000-03-31 Fujitsu Ltd ネットワークの被監視装置及び監視装置
JP2002014849A (ja) * 2000-06-28 2002-01-18 Hitachi Ltd システム監視情報処理方法及びコンソール装置を制御するためのプログラムを記録したコンピュータで読み取り可能な記録媒体
US20080228466A1 (en) * 2007-03-16 2008-09-18 Microsoft Corporation Language neutral text verification
US20110066908A1 (en) * 2009-09-17 2011-03-17 Microsoft Corporation Similarity detection for error reports

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
JP2010271875A (ja) 2009-05-20 2010-12-02 Hitachi Ltd ネットワーク管理システムおよびプログラム
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0461496A (ja) * 1990-06-29 1992-02-27 Nec Corp Isdnメッセージ正当性判定装置
JP2000092053A (ja) * 1998-09-10 2000-03-31 Fujitsu Ltd ネットワークの被監視装置及び監視装置
JP2002014849A (ja) * 2000-06-28 2002-01-18 Hitachi Ltd システム監視情報処理方法及びコンソール装置を制御するためのプログラムを記録したコンピュータで読み取り可能な記録媒体
US20080228466A1 (en) * 2007-03-16 2008-09-18 Microsoft Corporation Language neutral text verification
US20110066908A1 (en) * 2009-09-17 2011-03-17 Microsoft Corporation Similarity detection for error reports

Also Published As

Publication number Publication date
US20140101432A1 (en) 2014-04-10
JPWO2014057743A1 (ja) 2016-09-05
JP6147269B2 (ja) 2017-06-14
US9292313B2 (en) 2016-03-22

Similar Documents

Publication Publication Date Title
JP6428070B2 (ja) 静的分析および性能データを使用するコードベースのリスク分析
JP2015043198A (ja) 解析システム、解析方法および解析プログラム
KR102204527B1 (ko) 애플리케이션을 업데이트하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체
WO2018122890A1 (ja) ログ分析方法、システムおよびプログラム
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
JP6147269B2 (ja) コンピュータによるコンポーネントの動作状態の検出
WO2013111334A1 (ja) 管理計算機、自動化作業手順出力方法、及び計算機読み取り可能な記憶媒体
US20160041892A1 (en) System for discovering bugs using interval algebra query language
US20090077537A1 (en) method of automatically generating test cases to test command line interfaces
US20130019157A1 (en) Defect form quality indication
US9361174B2 (en) Processing main cause errors and sympathetic errors in devices in a system
US10331818B2 (en) Simulation system and simulation method
JP2017182407A (ja) リスク検出装置およびリスク検出方法
JP6734228B2 (ja) 異常検出装置、および、異常検出方法
JP6280089B2 (ja) ホワイトリスト作成装置、ホワイトリスト作成方法およびホワイトリスト作成プログラム
WO2017104571A1 (ja) 情報処理装置、情報処理方法、及び、記録媒体
WO2017104657A1 (ja) 情報処理装置、情報処理方法、及び、記録媒体
TWI763169B (zh) 雲端資料中心的事件種類的預測系統和預測方法
US20240095559A1 (en) Steady range determination system, steady range determination method, and computer readable medium
WO2019163915A1 (ja) プロジェクト分析装置及びプログラム
US20240012833A1 (en) Systems and methods for seamlessly updating and optimizing a digital system
US20150379159A1 (en) System and method for generating random linked data according to an rdf dataset profile
US9594658B2 (en) Method for displaying operation states of modules included in computer system
CN114417219A (zh) 信息配置方法、装置及电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13845841

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014540779

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13845841

Country of ref document: EP

Kind code of ref document: A1