(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024132254
(43)【公開日】2024-09-30
(54)【発明の名称】コマンド提示装置、コマンド提示方法およびプログラム
(51)【国際特許分類】
G06F 11/34 20060101AFI20240920BHJP
【FI】
G06F11/34 138
G06F11/34 176
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2023042965
(22)【出願日】2023-03-17
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】松本 達也
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042MA14
5B042MC35
5B042MC40
(57)【要約】
【課題】あるコマンドの次に入力されるコマンドの候補を予測する際、予測のために別途コマンドの履歴情報を保存しておく必要なしに、コマンドの候補を予測できるようにする。
【解決手段】コマンド提示装置が、コンピュータシステムから操作ログを収集する操作ログ収集手段と、収集された操作ログから、その操作ログの記載ルールに従ってコマンドを抽出するコマンド抽出手段と、抽出されたコマンドの時系列で、あるコマンドの次に入力されるコマンドおよびその頻度を分析するコマンド傾向分析手段と、ユーザによるコマンドの入力を受け付ける入力手段と、コマンドの入力頻度の分析結果から、入力されたコマンドの次に入力されるコマンドの候補を検索する検索手段と、入力されたコマンドの次に入力されるコマンドの候補を提示する提示手段と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンピュータシステムから操作ログを収集する操作ログ収集手段と、
収集された操作ログから、その操作ログの記載ルールに従ってコマンドを抽出するコマンド抽出手段と、
抽出されたコマンドの時系列で、あるコマンドの次に入力されるコマンドおよびその頻度を分析するコマンド傾向分析手段と、
ユーザによるコマンドの入力を受け付ける入力手段と、
コマンドの入力頻度の分析結果から、入力されたコマンドの次に入力されるコマンドの候補を検索する検索手段と、
入力されたコマンドの次に入力されるコマンドの候補を提示する提示手段と、
を備えるコマンド提示装置。
【請求項2】
前記コマンド傾向分析手段は、あるコマンドの次に入力されるコマンドおよびその頻度に加えて、あるコマンドの次に入力されるコマンド列およびその頻度を分析し、
前記検索手段は、入力されたコマンドの次に入力されるコマンドの候補に加えて、入力されたコマンドの次に入力されるコマンド列の候補を検索し、
前記提示手段は、入力されたコマンドの次に入力されるコマンドの候補に加えて、入力されたコマンドの次に入力されるコマンド列の候補を提示する、
請求項1に記載のコマンド提示装置。
【請求項3】
コンピュータが、
コンピュータシステムから操作ログを収集し、
収集された操作ログから、その操作ログの記載ルールに従ってコマンドを抽出し、
抽出されたコマンドの時系列で、あるコマンドの次に入力されるコマンドおよびその頻度を分析し、
ユーザによるコマンドの入力を受け付け、
コマンドの入力頻度の分析結果から、入力されたコマンドの次に入力されるコマンドの候補を検索し、
入力されたコマンドの次に入力されるコマンドの候補を提示する、
ことを含むコマンド提示方法。
【請求項4】
コンピュータに、
コンピュータシステムから操作ログを収集することと、
収集された操作ログから、その操作ログの記載ルールに従ってコマンドを抽出することと、
抽出されたコマンドの時系列で、あるコマンドの次に入力されるコマンドおよびその頻度を分析することと、
ユーザによるコマンドの入力を受け付けることと、
コマンドの入力頻度の分析結果から、入力されたコマンドの次に入力されるコマンドの候補を検索することと、
入力されたコマンドの次に入力されるコマンドの候補を提示することと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コマンド提示装置、コマンド提示方法およびプログラムに関する。
【背景技術】
【0002】
ユーザが機器に対して行った操作が抽出される場合がある。
例えば、特許文献1には、ユーザが独自に機器の操作をおこなった、ユーザに固有の操作系列を抽出し、操作マニュアルをユーザ自身が作成できるようにすることが記載されている。
また、特許文献2には、ユーザがコンピュータシステムに入力したコマンドの履歴をとり、最新に投入されたコマンドと同一のコマンドの直後に投入されたことが履歴に記録されているコマンドで、所定の条件を満たすもののうち最新のものを予測コマンドとして選択することが記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平08-171589号公報
【特許文献2】特開平07-306847号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
あるコマンドの次に入力されるコマンドの候補を予測する際、予測のために別途コマンドの履歴情報を保存しておく必要なしに、コマンドの候補を予測できることが好ましい。
【0005】
本発明の目的の一例は、上述の課題を解決することのできるコマンド提示装置、コマンド提示方法およびプログラムを提供することである。
【課題を解決するための手段】
【0006】
本発明の第1の態様によれば、コマンド提示装置は、コンピュータシステムから操作ログを収集する操作ログ収集手段と、収集された操作ログから、その操作ログの記載ルールに従ってコマンドを抽出するコマンド抽出手段と、抽出されたコマンドの時系列で、あるコマンドの次に入力されるコマンドおよびその頻度を分析するコマンド傾向分析手段と、ユーザによるコマンドの入力を受け付ける入力手段と、コマンドの入力頻度の分析結果から、入力されたコマンドの次に入力されるコマンドの候補を検索する検索手段と、入力されたコマンドの次に入力されるコマンドの候補を提示する提示手段と、を備える。
【0007】
本発明の第2の態様によれば、コマンド提示方法は、コンピュータが、コンピュータシステムから操作ログを収集し、収集された操作ログから、その操作ログの記載ルールに従ってコマンドを抽出し、抽出されたコマンドの時系列で、あるコマンドの次に入力されるコマンドおよびその頻度を分析し、ユーザによるコマンドの入力を受け付け、コマンドの入力頻度の分析結果から、入力されたコマンドの次に入力されるコマンドの候補を検索し、入力されたコマンドの次に入力されるコマンドの候補を提示する、ことを含む。
【0008】
本発明の第3の態様によれば、プログラムは、コンピュータに、コンピュータシステムから操作ログを収集することと、収集された操作ログから、その操作ログの記載ルールに従ってコマンドを抽出することと、抽出されたコマンドの時系列で、あるコマンドの次に入力されるコマンドおよびその頻度を分析することと、ユーザによるコマンドの入力を受け付けることと、コマンドの入力頻度の分析結果から、入力されたコマンドの次に入力されるコマンドの候補を検索することと、入力されたコマンドの次に入力されるコマンドの候補を提示することと、を実行させるためのプログラムである。
【発明の効果】
【0009】
本発明によれば、あるコマンドの次に入力されるコマンドの候補を予測する際、予測のために別途コマンドの履歴情報を保存しておく必要なしに、コマンドの候補を予測できる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係るコマンド提示装置の構成の例を示す図である。
【
図2】実施形態に係るコマンドオブジェクトの構成の例を示す図である。
【
図3】実施形態に係るコマンドシナリオの構成の例を示す図である。
【
図4】実施形態に係るコマンド表の構成の例を示す図である。
【
図5】実施形態に係るコマンドの分析の単位の例を示す図である。
【
図6】実施形態に係る表示部による後コマンドの候補の表示の例を示す図である。
【
図7】実施形態に係るコマンド提示装置におけるデータの入出力の例を示す図である。
【
図8】実施形態に係るコマンド提示装置が操作ログを取得して行う処理の手順の例を示す図である。
【
図9】実施形態に係るコマンド提示装置がコマンドの入力を受けて行う処理の手順の例を示す図である。
【
図10】実施形態に係るコマンド提示装置の構成のもう1つの例を示す図である。
【
図11】実施形態に係るコマンド提示方法における処理の手順の例を示す図である。
【
図12】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、実施形態に係るコマンド提示装置の構成の例を示す図である。
図1に示す構成で、コマンド提示装置100は、コマンド収集蓄積部110と、コマンド提示部120とを備える。コマンド収集蓄積部110は、操作ログ収集部111と、コマンド抽出部112と、コマンド傾向分析部113と、操作ログ記憶部114と、ログルール記憶部115と、コマンド情報記憶部116とを備える。コマンド提示部120は、入力部121と、検索部122と、表示部123とを備える。
【0012】
コマンド提示装置100は、コンピュータシステムの操作ログを収集して分析し、あるコマンドに続けて入力されるコマンドの候補を示すコマンド情報を生成する。そして、コマンド提示装置100は、ユーザによるコマンドの入力を受け付け、入力されたコマンドに対して、そのコマンドの次に入力されるコマンドの候補を提示する。ここでいう操作ログは、ユーザが入力したコマンドを示すログである。
【0013】
以下では、コマンド提示装置100が、対話形式でコマンドの入力を受け付けるコンピュータシステムの操作手順書の作成支援に用いられる場合を例に説明する。ただし、コマンド提示装置100の用途は、これに限定されず、対話形式で文字列によるコマンドの入力を受け付けるいろいろなシステムにコマンド提示装置100を用いることができる。例えば、コマンド提示装置100が、コンピュータシステムの一部として構成され、対話形式でのユーザによるコマンドの入力に対して、そのコマンドの次に入力されるコマンドの候補を提示するようにしてもよい。
また、コマンド提示装置100が、コンピュータシステムの運用保守に用いられるようにしてもよい。例えば、コンピュータシステムがある程度の長期間動作し操作ログが蓄積されている状態で、運用保守作業の操作手順書を作成する場合に、コマンド提示装置100が用いられるようにしてもよい。
【0014】
コマンド収集蓄積部110は、コンピュータシステムなど操作ログ収集対象から操作ログを収集して分析し、分析で得られたコマンド情報を蓄積する。
【0015】
操作ログ記憶部114は、収集された操作ログを記憶する。
ログルール記憶部115は、ログルールを記憶する。ここでいうログルールは、ログの記載のルールである。ログルールは、特に、操作ログからコマンドを抽出するために参照される。例えば、ログルールが、コマンドを示す文字列のリストを含んでいてもよい。また、ログルールが、ログから文字列を抽出する一連の処理を行うモジュールを示していてもよい。
【0016】
コマンド情報記憶部116は、コマンド情報を記憶する。ここでいうコマンド情報は、コマンドの分析で得られた情報である。
コマンド情報が、あるコマンドの次に入力されるコマンドの候補を示すコマンドオブジェクトを含んでいてもよい。
【0017】
図2は、コマンドオブジェクトの構成の例を示す図である。
図2の例で、「コマンド名」欄A11には、コマンドオブジェクトが対象とするコマンドの名前が示される。
「後に使用される傾向のあるコマンド」欄A13には、コマンドオブジェクトが対象とするコマンドに続けて入力されるコマンドの候補と、各候補の出現頻度とが示される。
あるコマンド(対象コマンドとも称する)に続けて入力されるコマンドを、対象コマンドの後コマンドとも称する。
【0018】
「使用される時間の傾向」欄A12には、コマンドオブジェクトが対象とするコマンドが入力される時間帯の傾向が示される。コマンドが入力される時間帯の傾向は、例えば、毎日同じ時刻に入力されるコマンドのモジュール化をユーザが検討する場合に参照することができる。ただし、「使用される時間の傾向」欄は必須ではない。
【0019】
コマンド情報が、コマンドオブジェクトに加えて、あるいは代えて、あるコマンドに続けて入力されるコマンド列を示すコマンドシナリオを含んでいてもよい。
図3は、コマンドシナリオの構成の例を示す図である。
図3の例で、コマンドシナリオは、コマンドオブジェクトの列にて構成されている。先頭のコマンドオブジェクトO11は、コマンドシナリオが対象とするコマンドのコマンドオブジェクトである。コマンドオブジェクトO12とO13との列は、コマンドシナリオが対象とするコマンドに続けて入力されるコマンド列(一連のコマンド)の候補に含まれる各コマンドのコマンドオブジェクトである。
【0020】
コマンドシナリオに含まれるコマンド列の候補は、直前に示されるコマンドに続けて入力される頻度が高いコマンドのコマンドオブジェクトを列に並べたものであってもよい。この場合、
図3の例のように、コマンドオブジェクト(元のコマンドオブジェクトと称する)に示されるコマンドの候補のうち、出現頻度が最も高い候補のコマンドオブジェクトが、元のコマンドオブジェクトに後続する。
【0021】
図3では、コマンドオブジェクトO11に示されるコマンドの候補のうち、出現頻度が最も高い「コマンド1」のコマンドオブジェクトO12が、コマンドオブジェクトO11に後続している。また、コマンドオブジェクトO12に示されるコマンドの候補のうち、出現頻度が最も高い「コマンドA」のコマンドオブジェクトO13が、コマンドオブジェクトO12に後続している。
【0022】
あるいは、コマンドシナリオに含まれるコマンド列の候補は、コマンド列としての出現頻度が高いものであってもよい。この場合、元のコマンドオブジェクトに後続するコマンドオブジェクトは、元のコマンドオブジェクトに示されるコマンドの候補のうち、出現頻度が最も高い候補のコマンドオブジェクトとは限らない。
【0023】
操作ログ収集部111は、コンピュータシステムなど操作ログ収集対象から操作ログを収集し、収集した操作ログを操作ログ記憶部114に記憶させる。操作ログ収集部111は、操作ログ収集手段の例に該当する。
例えば、操作ログ収集部111は、操作ログ収集対象のログが格納されるディレクトリを定期的に監視し、ファイル名に基づいて操作ログのファイルを検知する。そして、操作ログ収集部111は、検知した操作ログのファイルに記載されている操作ログを収集する。
【0024】
例えば、操作ログのファイルが「operation_YYYYMMDDhhmmss.log」という命名規則で出力される場合について考える。この場合、操作ログ収集部111は、監視対象としているディレクトリに、「operation_20220101000000.log」のように命名規則に合致するファイルが新たに格納されていることを検知すると、そのファイルのコピー、または、そのファイルに記載されているログのコピーを取得する。
【0025】
コマンド抽出部112は、操作ログ記憶部114から操作ログを読み出し、読み出した操作ログからコマンドを抽出する。コマンド抽出部112が、操作ログから読み出したコマンドを1列に並べたコマンド表を生成するようにしてもよい。例えば、コマンド抽出部112は、操作ログを上から順(時刻の古い順)に参照し、操作ログ中に出現したコマンドを順にコマンド表に記録していく。
コマンド抽出部112は、コマンド抽出手段の例に該当する。コマンド表は、操作ログから抽出されたコマンドの時系列の例に該当する。
【0026】
図4は、コマンド表の構成の例を示す図である。
図4の例で、コマンド抽出部112は、操作ログからコマンドを抽出し、抽出したコマンドを1列に並べてコマンド表を生成している。コマンド抽出部112は、ログルール記憶部115が記憶しているログルールに基づいて、操作ログからコマンドを抽出する。
【0027】
ここで、操作ログ収集対象では、コマンドの実行結果に対する戻り値を操作ログ上に出力するように予め設定されていてもよい。そして、コマンド抽出部112が、操作ログからコマンドを抽出する際に、そのコマンドの実行結果に対する戻り値を参照して、エラーの発生の有無を判定するようにしてもよい。エラーが発生していると判定した場合、コマンド抽出部112が、そのコマンドをコマンド表に登録しないようにしてもよい。
【0028】
コマンド傾向分析部113は、操作ログから抽出されたコマンドの分析をおこなって、コマンド情報を生成する。コマンド傾向分析部113は、コマンド傾向分析手段の例に該当する。
例えば、コマンド傾向分析部113は、コマンド表の上から順(時刻の古い順)にコマンドを参照し、参照したコマンドがコマンド情報に既に登録されているか否かを判定する。参照したコマンドがコマンド情報に未登録であると判定した場合、コマンド傾向分析部113は、参照したコマンドをコマンド情報に登録し、その次のコマンドの出現頻度情報を、参照したコマンドの後コマンドの候補の情報として、参照したコマンドの情報に追加する。
一方、参照したコマンドがコマンド情報に既に登録されていると判定した場合、コマンド傾向分析部113は、参照したコマンドの後コマンドの候補の出現頻度を更新する。
【0029】
例えばコマンドオブジェクトの場合、コマンド傾向分析部113は、参照したコマンドのコマンドオブジェクトが既に生成されているか否かを判定する。コマンドオブジェクトが未だ生成されていないと判定した場合、コマンド傾向分析部113は、参照したコマンドのコマンドオブジェクトを生成する。そして、コマンド表上で、参照したコマンドの次のコマンドがある場合は、生成したコマンドオブジェクトに、次のコマンド情報を、後コマンドの候補の情報として追記する。
【0030】
一方、参照したコマンドのコマンドオブジェクトが既に生成されていると判定した場合、コマンド表上で、参照したコマンドの次のコマンドがあるときは、コマンド傾向分析部113は、次のコマンドの出現頻度を高めるように、参照したコマンドの後コマンドの候補の情報を更新する。
【0031】
図5は、コマンドの分析の単位の例を示す図である。
コマンド傾向分析部113は、
図5の例のように、操作ログ上でログインからログアウトまでを分析の単位として、コマンドの分析を行う。特に、コマンド傾向分析部113は、操作ログ上でログインからログアウトまでに出現する一連のコマンドを、前後関係の分析対象として扱う。
図5の例の場合、コマンド傾向分析部113は、コマンドBをコマンドAの後コマンドとして扱い、コマンドCをコマンドBの後コマンドとして扱う。また、コマンド傾向分析部113は、コマンドEをコマンドDの後コマンドとして扱い、コマンドFをコマンドEの後コマンドとして扱う。
【0032】
一方、コマンド傾向分析部113は、操作ログ上で隣り合うコマンドであっても、ログアウトおよびログインを挟んでいるコマンドは、前後関係の分析の対象外として扱う。
図5の例の場合、コマンド傾向分析部113は、コマンドDは、コマンドCの後コマンドには該当しないものとして扱う。
【0033】
例えば、コマンド抽出部112が、操作ログ上でログインからログアウトまでの間に出現するコマンドのコマンド表を生成するようにしてもよい。そして、コマンド傾向分析部113が、コマンド表ごとに、コマンドの分析を行うようにしてもよい。
【0034】
また、コマンド傾向分析部113が、一連のコマンドの出現頻度が高いと判定し、かつ、一連のコマンドに規則性があると判定した場合に、その一連のコマンドをコマンドシナリオとして登録するようにしてもよい。
コマンドの出現頻度については、コマンド傾向分析部113が、以下の3つの判定方式の何れかを用いるようにしてもよい。
【0035】
1. 出現頻度が所定の閾値よりも大きい場合、頻度「高」と判定する。この判定方式を、閾値方式とも称する。
2. 出現頻度が上位n位(n:任意の値)までのコマンドを頻度「高」と判定する。この判定方式を順位方式とも称する。
3. 閾値方式と順位方式と併用する。出現頻度が所定の閾値よりも大きく、かつ、出現頻度が上位n位以内のコマンドを頻度「高」と判定する。この判定方式をハイブリッド方式とも称する。
【0036】
この場合の出現頻度は、大きさを比較可能なものであればよく、特定のものに限定されない。例えば、この場合の出現頻度として、対象となっているコマンドの出現回数を、操作ログにおける(任意の)コマンドの出現回数で除算した割合を用いるようにしてもよいが、これに限定されない。
【0037】
一連のコマンドの規則性については、コマンド傾向分析部113が、出現頻度が所定の値以上のコマンドが連続する場合に、一連のコマンドに「規則性」があると判定するようにしてもよい。
例えば、操作ログ記憶部114が記憶している操作ログの中で、あるコマンドAの次にコマンドBが入力される頻度が所定の値以上となっており、かつ、コマンド列ABの次にコマンドCが入力される頻度も所定の値以上となっている場合、コマンド傾向分析部113は、コマンド列ABC(一連のコマンドABC)に規則性があると判定する。
さらに例えば、コマンドAの次にコマンドBが実行される頻度が50%であり、かつ、コマンド列ABの次にコマンドCが実行される頻度が50%である場合、コマンド傾向分析部113は、コマンド列ABC(一連のコマンドABC)に規則性があると判定する。
【0038】
この場合の、操作ログ記憶部114が記憶している操作ログに含まれるコマンドのデータから統計的に有意性のあるコマンドの組み合わせの規則を抽出する手法は、特定の手法に限定されない。例えば、操作ログ記憶部114が記憶している操作ログに含まれるコマンドのデータから統計的に有意性のあるコマンドの組み合わせの規則を抽出する手法として、公知のパターンマイニングの手法を用いるようにしてもよい。
【0039】
コマンド提示部120は、ユーザが入力したコマンドに対して、次に入力されることが予測されるコマンド(後コマンドの候補)を提示する。コマンド提示部120は、コマンド収集蓄積部110が生成したコマンド情報に基づいて、提示するコマンドを決定する。
【0040】
入力部121は、例えばキーボードおよびマウスなどの入力デバイスを備え、ユーザ操作を受け付ける。特に、入力部121は、ユーザによるコマンドの入力を受け付ける。入力部121は、入力手段の例に該当する。
検索部122は、コマンド情報記憶部116が記憶しているコマンド情報のうち、入力部121が入力を受け付けたコマンドのコマンド情報を検索する。これにより、検索部122は、入力部121が入力を受け付けたコマンドの後コマンドの候補の情報を取得する。検索部122は、検索手段の例に該当する。
表示部123は、例えば液晶パネルまたはLED(Light Emitting Diode、発光ダイオード)パネル等の表示画面を備え、各種画像を表示する。特に、表示部123は、入力部121が入力を受け付けたコマンドの後コマンドの候補の情報を表示する。表示部123は、表示手段の例に該当する。
【0041】
図6は、表示部123による後コマンドの候補の表示の例を示す図である。
図6の例で、表示部123は、ユーザ入力コマンドの表示領域A21に、入力部121が入力を受け付けたコマンドのコマンド名を表示している。入力部121が入力を受け付けたコマンドをユーザ入力コマンドとも称する。
また、表示部123は、コマンド候補の表示領域A22に、ユーザ入力コマンドの後コマンドの候補のコマンド名を表示している。
また、表示部123は、コマンドシナリオの表示領域A23に、ユーザ入力コマンドに続けて入力されるコマンド列の候補を示すコマンドシナリオを表示している。
【0042】
図7は、コマンド提示装置100におけるデータの入出力の例を示す図である。
図7の例で、操作ログ収集部111は、操作ログ収集対象となっているコンピュータシステム210の各々から操作ログを取得し、取得した操作ログを操作ログ記憶部114に記憶させる。コンピュータシステム210の集合を、コンピュータシステム群200とも表記する。
【0043】
コマンド抽出部112は、操作ログ記憶部114から操作ログを読み出し、ログルール記憶部115からログルールを読み出して、ログルールに基づいて、操作ログからコマンドを抽出する。コマンド抽出部112は、抽出したコマンドをコマンド傾向分析部113へ出力する。例えば、コマンド抽出部112は、抽出したコマンドをコマンド表の形式でコマンド傾向分析部113へ出力する。
コマンド傾向分析部113は、コマンド抽出部112が抽出したコマンドを分析してコマンド情報を生成し、コマンド情報記憶部116に記憶させる。あるいは、コマンド傾向分析部113は、コマンド情報記憶部116が記憶しているコマンド情報を、コマンドの分析結果に基づいて更新する。
【0044】
また、
図7は、コマンド傾向分析部113が、入力部121が入力を受け付けたコマンドの分析も行う場合の例を示している。コマンド傾向分析部113は、入力部121が入力を受け付けた一連のコマンドも、コマンド表に示されているコマンドと同様に分析を行い、分析結果に基づいてコマンド情報を生成または更新する。
あるいは、入力部121が入力を受け付けたコマンドについては、コマンド傾向分析部113による分析の対象外となっていてもよい。
【0045】
入力部121は、コマンドを入力するユーザ操作を受け付け、入力されたコマンドをコマンド傾向分析部113と検索部122とに出力する。
検索部122は、コマンド情報記憶部116が記憶しているコマンド情報のうち、入力部121が入力を受け付けたコマンドのコマンド情報を取得する。これにより、検索部122は、入力部121が入力を受け付けたコマンドの後コマンドの候補の情報を取得する。検索部122は、入力部121が入力を受け付けたコマンドの後コマンドの候補の情報を、表示部123に表示させる。
【0046】
図8は、コマンド提示装置100が操作ログを取得して行う処理の手順の例を示す図である。例えば、コマンド提示装置100は、
図8の処理を定期的に行う。
図8の処理で、操作ログ収集部111は、コンピュータシステムなど操作ログ収集対象から操作ログを収集する(ステップS101)。
次に、コマンド抽出部112は、収集された操作ログからコマンドを抽出する(ステップS102)。コマンド抽出部112は、例えばコマンド表のように、コマンド入力の順序を示す形式で、操作ログから抽出したコマンドの情報を生成する。
【0047】
次に、コマンド傾向分析部113は、コマンド抽出部112が操作ログから抽出したコマンドのそれぞれについて、そのコマンドがコマンド情報にあるか検索する(ステップS103)。例えば、コマンド傾向分析部113は、コマンド情報記憶部116が記憶しているコマンドオブジェクトのうち、分析対象となっているコマンド(コマンド抽出部112が操作ログから抽出したコマンドのそれぞれ)のコマンドオブジェクトがあるか検索する。
そして、コマンド傾向分析部113は、ステップS103での検索結果に基づいて、分析対象となっているコマンドがコマンド情報に登録済みか否かを判定する(ステップS104)。
【0048】
分析対象となっているコマンドが未だコマンド情報に登録されていないと判定した場合(ステップS104:NO)、コマンド傾向分析部113は、分析対象となっているコマンドをコマンド情報に登録する(ステップS111)。例えば、コマンド傾向分析部113は、分析対象となっているコマンドのコマンドオブジェクトを生成し、コマンド情報記憶部116に記憶させる。
ステップS111の後、コマンド提示装置100は、
図8の処理を終了する。
【0049】
一方、ステップS104で、分析対象となっているコマンドがコマンド情報に登録済みであると判定した場合(ステップS104:YES)、コマンド傾向分析部113は、分析対象となっているコマンドの後に実行されたコマンドの情報をコマンド情報に追記する(ステップS121)。
【0050】
ここでいう、分析対象となっているコマンドの後に実行されたコマンドは、分析対象となっているコマンドに続けて入力され、かつ、エラーが発生していないコマンドである。コマンド傾向分析部113は、該当するコマンドがある場合に、該当するコマンドの情報を、分析対象となっているコマンドの後コマンドの候補の情報として、コマンド情報に追記する。
ステップS121の後、コマンド提示装置100は、
図8の処理を終了する。
【0051】
例えば、ログ収集対象となっているコンピュータシステムのOSがLinux(登録商標)OSである場合、コマンド提示装置100が、以下のようにコマンドの抽出を行うようにしてもよい。
【0052】
<事前処理>
1. 対象とするシステムにて戻り値を自動出力するように設定する(PROMPT_COMMAND変数を設定するなど)。1.の処理は、例えば、ユーザが行うようにしてもよい。
2. /usr/binディレクトリ、または、/usr/sbinディレクトリからコマンド一覧を取得し「文字列リスト」を作成する。この「文字列リスト」は、ログルールとして用いることができる。2.の処理は、例えば、ユーザが行うようにしてもよい。
【0053】
<操作ログ取得時の処理>
1. 操作ログ収集部111は、操作ログを収集する。
2. コマンド抽出部112は、操作ログの一行目から順に読み込みを行う。
3. コマンド抽出部112は、操作ログの中から先頭にプロンプト(「#」などユーザが指定)が付与されている行をコマンド実行箇所として記録する。
4. コマンド抽出部112は、操作ログの中からコマンド実行箇所の次の行を「戻り値」として取得し、戻り値が0の場合、そのコマンドを有効コマンドとして記録する。
5. コマンド抽出部112は、3.の処理で記録したデータと、4.の処理で有効と判断したコマンドのリストとを比較し、一致するコマンドがあった場合に、操作ログ中のコマンドとして抽出する。
1.の処理は、
図8のステップS101の処理の例に該当する。2.から5.の処理は、
図8のステップS102の処理の例に該当する。
【0054】
図9は、コマンド提示装置100がコマンドの入力を受けて行う処理の手順の例を示す図である。例えば、コマンド提示装置100は、コマンドが入力されるごとに、
図9の処理を行う。
図9の処理で、入力部121は、ユーザによるコマンドの入力を受け付ける(ステップS201)。上述したように、入力部121が入力を受け付けたコマンドをユーザ入力コマンドとも称する。
【0055】
次に、検索部122は、コマンド情報記憶部116が記憶しているコマンド情報のうち、ユーザ入力コマンドのコマンド情報を検索する(ステップS202)。
そして、検索部122は、ステップS202での検索結果に基づいて、ユーザ入力コマンドのコマンド情報が既に登録されているか否かを判定する(ステップS203)。
【0056】
ユーザ入力コマンドのコマンド情報が既に登録されていると判定した場合(ステップS203:YES)、検索部122は検索で得られたコマンド情報をユーザに提示する(ステップS211)。例えば、検索部122は、ユーザ入力コマンドのコマンドオブジェクトに示される後コマンドの候補、および、ユーザ入力コマンドのコマンドシナリオに示されるコマンド列の候補を、表示部123に表示させる。
【0057】
次に、検索部122は、入力部121が次に入力を受け付けたコマンドが、検索部122が提示した後コマンドの候補から選択されたか否かを判定する(ステップS212)。
入力部121が次に入力を受け付けたコマンドが、後コマンドの候補から選択されていないと判定した場合(ステップS212:NO)、検索部122は、後コマンドの候補の情報を、ステップS201で入力されたユーザ入力コマンドのコマンドオブジェクトに登録する。
ステップS221の後、コマンド提示装置100は、
図9の処理を終了する。
【0058】
一方、ステップS212で、入力部121が次に入力を受け付けたコマンドが、後コマンドの候補から選択されたと判定した場合(ステップS212:YES)、検索部122は、ステップS201で入力されたユーザ入力コマンドのコマンドオブジェクトに含まれる後コマンドの情報を更新する(ステップS231)。具体的には、検索部122は、入力部121が次に入力を受け付けたコマンドが入力される頻度が高くなるように、後コマンドの情報を更新する。
ステップS231の後、コマンド提示装置100は、
図9の処理を終了する。
【0059】
一方、ステップS203で、ユーザ入力コマンドのコマンド情報が未だ登録されていないと判定した場合(ステップS203:NO)、検索部122は、ユーザ入力コマンドのコマンド情報を登録する(ステップS231)。例えば、検索部122は、ユーザ入力コマンドのコマンドオブジェクトを生成し、コマンド情報記憶部116に記憶させる。
ステップS241の後、コマンド提示装置100は、
図9の処理を終了する。
【0060】
以上のように、操作ログ収集部111は、コンピュータシステムから操作ログを収集する。コマンド抽出部112は、収集された操作ログから、その操作ログの記載ルールに従ってコマンドを抽出する。コマンド傾向分析部113は、抽出されたコマンドの時系列で、あるコマンドの次に入力されるコマンドおよびその頻度を分析する。入力部121は、ユーザによるコマンドの入力を受け付ける。検索部122は、コマンドの入力頻度の分析結果から、入力されたコマンドの次に入力されるコマンドの候補を検索する。表示部123は、入力されたコマンドの次に入力されるコマンドの候補を提示する。
【0061】
コマンド提示装置100によれば、コンピュータシステムから操作ログを収集してコマンドの抽出および分析を行うことができる。コマンド提示装置100によれば、この点で、あるコマンドの次に入力されるコマンドの候補を予測する際、予測のために別途コマンドの履歴情報を保存しておく必要なしに、コマンドの候補を予測できる。
【0062】
また、コマンド傾向分析部113は、あるコマンドの次に入力されるコマンドおよびその頻度に加えて、あるコマンドの次に入力されるコマンド列およびその頻度を分析する。検索部122は、入力されたコマンドの次に入力されるコマンドの候補に加えて、入力されたコマンドの次に入力されるコマンド列の候補を検索する。表示部123は、入力されたコマンドの次に入力されるコマンドの候補に加えて、入力されたコマンドの次に入力されるコマンド列の候補を提示する。
コマンド提示装置100によれば、単体のコマンドの候補だけでなく、コマンド列の候補も提示することができる。
【0063】
図10は、実施形態に係るコマンド提示装置の構成のもう1つの例を示す図である。
図10に示す構成で、コマンド提示装置610は、ログ収集部611と、コマンド抽出部612と、コマンド傾向分析部613と、入力部614と、検索部615と、提示部616とを備える。
【0064】
かかる構成でログ収集部611は、コンピュータシステムから操作ログを収集する。コマンド抽出部612は、収集された操作ログから、その操作ログの記載ルールに従ってコマンドを抽出する。コマンド傾向分析部613は、抽出されたコマンドの時系列で、あるコマンドの次に入力されるコマンドおよびその頻度を分析する。入力部614は、ユーザによるコマンドの入力を受け付ける。検索部615は、コマンドの入力頻度の分析結果から、入力されたコマンドの次に入力されるコマンドの候補を検索する。提示部616は、入力されたコマンドの次に入力されるコマンドの候補を提示する。
【0065】
ログ収集部611は、操作ログ収集手段の例に該当する。コマンド抽出部612は、コマンド抽出手段の例に該当する。コマンド傾向分析部613は、コマンド傾向分析手段の例に該当する。入力部614は、入力手段の例に該当する。検索部615は、検索手段の例に該当する。提示部616は、提示手段の例に該当する。
【0066】
コマンド提示装置610によれば、コンピュータシステムから操作ログを収集してコマンドの抽出および分析を行うことができる。コマンド提示装置610によれば、この点で、あるコマンドの次に入力されるコマンドの候補を予測する際、予測のために別途コマンドの履歴情報を保存しておく必要なしに、コマンドの候補を予測できる。
【0067】
図11は、実施形態に係るコマンド提示方法における処理の手順の例を示す図である。
図11に示すコマンド提示方法は、ログを収集すること(ステップS611)と、コマンドを抽出すること(ステップS612)と、コマンドの傾向を分析すること(ステップS613)と、コマンドを取得すること(ステップS614)と、検索を行うこと(ステップS615)と、提示を行うこと(ステップS616)と、を含む。
【0068】
ログを収集すること(ステップS611)では、コンピュータが、コンピュータシステムから操作ログを収集する。
コマンドを抽出すること(ステップS612)では、コンピュータが、収集された操作ログから、その操作ログの記載ルールに従ってコマンドを抽出する。
コマンドの傾向を分析すること(ステップS613)では、コンピュータが、抽出されたコマンドの時系列で、あるコマンドの次に入力されるコマンドおよびその頻度を分析する。
【0069】
コマンドを取得すること(ステップS614)では、コンピュータが、ユーザによるコマンドの入力を受け付ける。
検索を行うこと(ステップS615)では、コンピュータが、コマンドの入力頻度の分析結果から、入力されたコマンドの次に入力されるコマンドの候補を検索する。
提示を行うこと(ステップS616)では、コンピュータが、入力されたコマンドの次に入力されるコマンドの候補を提示するする。
【0070】
図11に示すコマンド提示方法によれば、コンピュータシステムから操作ログを収集してコマンドの抽出および分析を行うことができる。
図11に示すコマンド提示方法によれば、この点で、あるコマンドの次に入力されるコマンドの候補を予測する際、予測のために別途コマンドの履歴情報を保存しておく必要なしに、コマンドの候補を予測できる。
【0071】
図12は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図12に示す構成で、コンピュータ700は、CPU710と、主記憶装置720と、補助記憶装置730と、インタフェース740と、不揮発性記録媒体750とを備える。
【0072】
上記のコマンド提示装置100、および、コマンド提示装置610のうち何れか1つ以上またはその一部が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。各装置と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。また、インタフェース740は、不揮発性記録媒体750用のポートを有し、不揮発性記録媒体750からの情報の読出、および、不揮発性記録媒体750への情報の書込を行う。
【0073】
コマンド提示装置100がコンピュータ700に実装される場合、操作ログ収集部111と、コマンド抽出部112と、コマンド傾向分析部113と、検索部122との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0074】
また、CPU710は、プログラムに従って、操作ログ記憶部114、ログルール記憶部115、および、コマンド情報記憶部116など、コマンド提示装置100が処理を行うための記憶領域を主記憶装置720に確保する。コマンド提示装置100と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。表示部123による画像の表示は、インタフェース740が表示装置を備え、CPU710の制御に従って各種画像の表示することで実行される。入力部121によるユーザ操作の受け付けは、インタフェース740が入力デバイスを備え、CPU710の制御に従ってユーザ操作を受け付けることで実行される。
【0075】
コマンド提示装置610がコンピュータ700に実装される場合、ログ収集部611と、コマンド抽出部612と、コマンド傾向分析部613と、検索部615との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
【0076】
また、CPU710は、プログラムに従って、コマンド提示装置610が処理を行うための記憶領域を主記憶装置720に確保する。コマンド提示装置610と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って動作することで実行される。提示部616による情報の提示は、例えば、インタフェース740が表示装置を備え、CPU710の制御に従って各種画像の表示することで実行される。入力部614によるユーザ操作の受け付けは、インタフェース740が入力デバイスを備え、CPU710の制御に従ってユーザ操作を受け付けることで実行される。
【0077】
上述したプログラムのうち何れか1つ以上が不揮発性記録媒体750に記録されていてもよい。この場合、インタフェース740が不揮発性記録媒体750からプログラムを読み出すようにしてもよい。そして、CPU710が、インタフェース740が読み出したプログラムを直接実行するか、あるいは、主記憶装置720または補助記憶装置730に一旦保存して実行するようにしてもよい。
【0078】
なお、コマンド提示装置100、および、コマンド提示装置610が行う処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0079】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0080】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0081】
(付記1)
コンピュータシステムから操作ログを収集する操作ログ収集手段と、
収集された操作ログから、その操作ログの記載ルールに従ってコマンドを抽出するコマンド抽出手段と、
抽出されたコマンドの時系列で、あるコマンドの次に入力されるコマンドおよびその頻度を分析するコマンド傾向分析手段と、
ユーザによるコマンドの入力を受け付ける入力手段と、
コマンドの入力頻度の分析結果から、入力されたコマンドの次に入力されるコマンドの候補を検索する検索手段と、
入力されたコマンドの次に入力されるコマンドの候補を提示する提示手段と、
を備えるコマンド提示装置。
【0082】
(付記2)
前記コマンド傾向分析手段は、あるコマンドの次に入力されるコマンドおよびその頻度に加えて、あるコマンドの次に入力されるコマンド列およびその頻度を分析し、
前記検索手段は、入力されたコマンドの次に入力されるコマンドの候補に加えて、入力されたコマンドの次に入力されるコマンド列の候補を検索し、
前記提示手段は、入力されたコマンドの次に入力されるコマンドの候補に加えて、入力されたコマンドの次に入力されるコマンド列の候補を提示する、
請求項1に記載のコマンド提示装置。
【0083】
(付記3)
コンピュータが、
コンピュータシステムから操作ログを収集し、
収集された操作ログから、その操作ログの記載ルールに従ってコマンドを抽出し、
抽出されたコマンドの時系列で、あるコマンドの次に入力されるコマンドおよびその頻度を分析し、
ユーザによるコマンドの入力を受け付け、
コマンドの入力頻度の分析結果から、入力されたコマンドの次に入力されるコマンドの候補を検索し、
入力されたコマンドの次に入力されるコマンドの候補を提示する、
ことを含むコマンド提示方法。
【0084】
(付記4)
コンピュータに、
コンピュータシステムから操作ログを収集することと、
収集された操作ログから、その操作ログの記載ルールに従ってコマンドを抽出することと、
抽出されたコマンドの時系列で、あるコマンドの次に入力されるコマンドおよびその頻度を分析することと、
ユーザによるコマンドの入力を受け付けることと、
コマンドの入力頻度の分析結果から、入力されたコマンドの次に入力されるコマンドの候補を検索することと、
入力されたコマンドの次に入力されるコマンドの候補を提示することと、
を実行させるためのプログラム。
【符号の説明】
【0085】
100、610 コマンド提示装置
110 コマンド収集蓄積部
111 操作ログ収集部
112、612 コマンド抽出部
113、613 コマンド傾向分析部
114 操作ログ記憶部
115 ログルール記憶部
116 コマンド情報記憶部
120 コマンド提示部
121、614 入力部
122、615 検索部
123 表示部
611 ログ収集部
616 提示部