(57)【特許請求の範囲】
【請求項１】
コマンドに応じた処理を実行する情報処理装置において、
前記情報処理装置が受け付け可能な複数のコマンド名と、前記情報処理装置の処理に利用される複数の制御情報とを記憶する記憶部と、
文字入力を受け付け、１文字入力されるたびに、前記複数のコマンド名の中から入力された文字列と一致する一のコマンド名を確定できるかを判定するコマンド受け付け部と、
前記一のコマンド名が確定されると、前記複数の制御情報の中から、前記一のコマンド名に応じた処理の実行可否を検証するための検証用情報の収集を開始する情報収集部と、
収集された前記検証用情報に基づいて前記実行可否を検証し、実行可能と判定すると前記一のコマンド名に応じた処理を実行する処理実行部と、
を有する情報処理装置。
【請求項２】
前記処理実行部は、前記一のコマンド名に続いて入力されるオプション情報と前記検証用情報との整合性を検証することで、前記実行可否を検証する、
請求項１記載の情報処理装置。
【請求項３】
前記処理実行部は、前記一のコマンド名と１以上のオプション情報とを含む命令文の入力が完了するまでの間、前記一のコマンド名に続いてオプション情報が入力されるたびに、入力されたオプション情報と前記検証用情報との整合性を検証することで、前記実行可否を検証する、
請求項１記載の情報処理装置。
【請求項４】
前記命令文に含まれるオプション情報は、オプション名と引数とを含み、
前記記憶部は、前記複数のコマンド名のそれぞれに対応する複数のオプションリストをさらに記憶し、前記複数のオプションリストのそれぞれには、対応するコマンドとともに入力可能な１以上のオプション名のそれぞれに対応づけて、前記複数の制御情報のうち前記検証用情報として収集すべき制御情報の種別が登録され、
前記情報収集部は、前記複数のオプションリストのうち前記一のコマンド名に対応するオプションリストに登録された種別の制御情報を、前記複数の制御情報の中から前記検証用情報として収集する、
請求項３記載の情報処理装置。
【請求項５】
前記複数のオプションリストのそれぞれには、対応するコマンドに続けて入力可能な１以上のオプション名に対して優先度が付加されており、
前記情報収集部は、前記一のコマンド名に対応するオプションリストに登録された種別の制御情報のうち、優先度の高いオプション名に対応づけられた種別の制御情報を優先的に収集する、
請求項４記載の情報処理装置。
【請求項６】
前記情報収集部は、収集した前記検証用情報を前記記憶部に保存し、
前記コマンド受け付け部は、入力された一のオプション名および前記一のオプション名に対応する第１の引数について、前記検証用情報と整合しないと判定した場合には、入力された文字列の表示状態を前記一のオプション名および前記第１の引数が入力される直前の状態に戻し、
前記処理実行部は、前記コマンド受け付け部が前記直前の状態から前記一のオプション名および前記一のオプション名に対応する第２の引数の入力を受け付けたとき、前記記憶部に保存された前記検証用情報を用いて、前記一のオプション名および前記第２の引数の整合性を検証する、
請求項４または５記載の情報処理装置。
【請求項７】
前記情報処理装置は、ストレージシステムを制御するストレージ制御装置であり、
前記複数の制御情報は、前記ストレージシステムの構成をそれぞれ示す複数の構成情報を含む、
請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項８】
コンピュータが、
文字入力を受け付け、１文字入力されるたびに、前記コンピュータが受け付け可能な複数のコマンド名の中から、入力された文字列と一致する一のコマンド名を確定できるかを判定し、
前記一のコマンド名が確定されると、前記コンピュータの記憶部に記憶され、前記コンピュータの処理に利用される複数の制御情報の中から、前記一のコマンド名に応じた処理の実行可否を検証するための検証用情報の収集を開始し、
収集された前記検証用情報に基づいて前記実行可否を検証し、
実行可能と判定すると、前記一のコマンド名に応じた処理を実行する、
情報処理方法。
【請求項９】
コンピュータに、
文字入力を受け付け、１文字入力されるたびに、前記コンピュータが受け付け可能な複数のコマンド名の中から、入力された文字列と一致する一のコマンド名を確定できるかを判定し、
前記一のコマンド名が確定されると、前記コンピュータの記憶部に記憶され、前記コンピュータの処理に利用される複数の制御情報の中から、前記一のコマンド名に応じた処理の実行可否を検証するための検証用情報の収集を開始し、
収集された前記検証用情報に基づいて前記実行可否を検証し、
実行可能と判定すると、前記一のコマンド名に応じた処理を実行する、
処理を実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【０００２】
情報処理装置に対して処理の実行を命令するためのインタフェースの１つとして、ＣＬＩ（Command Line Interface）がある。ＣＬＩは、キーボードを用いて特定の文字列を入力することで情報処理装置に処理の実行を命令し、文字出力によって処理の実行結果を取得する形式のユーザインタフェースである。ＣＬＩは、ＧＵＩ（Graphical User Interface）と比較して、処理負荷が低く軽快な動作が可能である点や、動作環境の柔軟性が高い点などの多くの利点があることから、広く利用されている。
【０００３】
また、情報処理装置に対する処理の実行指示に関しては、次のような技術が提案されている。例えば、コマンドの入力時に１文字ごとにその妥当性を判断し、妥当性がない場合は直ちにエラー表示をする情報処理装置が提案されている。また、各機能に対して指定されたパラメータに基づいて手続きを実行し、その実行途中にパラメータの誤りがあった場合には手続きを中断して異常メッセージを表示し、パラメータが修正されると、パラメータが修正された機能から手続きを再開するシステムが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６２−６７６２１号公報
【特許文献２】特開平１−１５９７３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ＣＬＩを通じて入力されたコマンドに応じた処理の実行可否を検証するためには、情報処理装置に記憶された制御情報が参照される。近年、情報処理装置で実行される処理が複雑化するのに伴って、情報処理装置には膨大な数の制御情報が記憶され、上記の検証時においても膨大な数の制御情報が参照されるようになっている。このような膨大な数の制御情報の参照には長い時間がかかるため、コマンドの入力開始から、そのコマンドに応じた処理が完了するまでに時間が長くなるという問題がある。
【０００６】
１つの側面では、本発明は、コマンドの入力からそれに応じた処理の完了までの時間を短縮することが可能な情報処理装置、情報処理方法および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの案では、コマンドに応じた処理を実行する情報処理装置が提供される。この情報処理装置は、次のような記憶部、コマンド受け付け部、情報収集部および処理実行部を有する。記憶部は、情報処理装置が受け付け可能な複数のコマンド名と、情報処理装置の処理に利用される複数の制御情報とを記憶する。コマンド受け付け部は、文字入力を受け付け、１文字入力されるたびに、複数のコマンド名の中から入力された文字列と一致する一のコマンド名を確定できるかを判定する。情報収集部は、一のコマンド名が確定されると、複数の制御情報の中から、一のコマンド名に応じた処理の実行可否を検証するための検証用情報の収集を開始する。処理実行部は、収集された検証用情報に基づいて実行可否を検証し、実行可能と判定すると一のコマンド名に応じた処理を実行する。
【０００８】
また、１つの案では、上記の情報処理装置と同様の処理がコンピュータによって実行される情報処理方法が提供される。
さらに、１つの案では、上記の情報処理装置と同様の処理をコンピュータに実行させる情報処理プログラムが提供される。
【発明の効果】
【０００９】
１つの側面では、コマンドの入力からそれに応じた処理の完了までの時間を短縮できる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態に係る情報処理装置の構成例および処理例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの構成例を示す図である。
【図３】ＣＭのハードウェア構成例を示す図である。
【図４】コマンドラインの入力作業の比較例を示す図（その１）である。
【図５】コマンドラインの入力作業の比較例を示す図（その２）である。
【図６】ＣＭが備える処理機能の構成例を示すブロック図である。
【図７】構成情報記憶部に記憶される情報の例を示す図である。
【図８】ハードウェア情報記憶部に記憶される情報の例を示す図である。
【図９】コマンドリストの構成例を示す図である。
【図１０】オプションリストの構成例を示す図である。
【図１１】コマンド入力処理部の内部構成例を示すブロック図である。
【図１２】処理続行判定部の処理例を示すフローチャートである。
【図１３】コマンド解析部の処理例を示すフローチャートである。
【図１４】コマンド名確定処理の例を示すフローチャートである。
【図１５】コマンド名の入力作業の例を示す図である。
【図１６】オプション名確定処理の例を示すフローチャートである。
【図１７】オプション名の入力作業の例を示す図である。
【図１８】入力値確定処理の例を示すフローチャート（その１）である。
【図１９】入力値確定処理の例を示すフローチャート（その２）である。
【図２０】引数の入力作業の例を示す図である。
【図２１】コマンド実行判定処理の例を示すフローチャートである。
【図２２】情報収集部の処理例を示すフローチャートである。
【図２３】コマンドラインの入力作業の例を示す図である。
【図２４】情報変更処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係る情報処理装置の構成例および処理例を示す図である。情報処理装置１０は、入力されたコマンドに応じた処理を実行する。情報処理装置１０は、例えば、コンピュータとして実現される。
【００１２】
なお、図１に示した画面２１〜２４は、コマンドが入力されるコマンド入力画面の画面表示例をそれぞれ示す。
情報処理装置１０は、記憶部１１、コマンド受け付け部１２、情報収集部１３および処理実行部１４を有する。記憶部１１は、例えば、ＲＡＭ（Random Access Memory）やＨＤＤ（Hard Disk Drive）などの記憶装置として実現される。コマンド受け付け部１２、情報収集部１３および処理実行部１４の処理は、例えば、情報処理装置１０が備えるプロセッサが所定のプログラムを実行することで実現される。
【００１３】
記憶部１１には、情報処理装置が受け付け可能な複数のコマンド名と、情報処理装置１０の処理に利用される複数の制御情報とが記憶される。図１の例では、記憶部１１には、上記の複数のコマンド名が登録されたコマンドリスト１１ａと、上記の複数の制御情報が登録された制御情報リスト１１ｂとが記憶されている。
【００１４】
コマンド受け付け部１２は、ユーザの操作に応じた文字の入力を受け付ける。コマンド受け付け部１２は、コマンドリスト１１ａを参照しながら、１文字入力されるたびに、入力されたコマンド名を推定する（ステップＳ１）。すなわち、コマンド受け付け部１２は、１文字入力されるたびに、コマンドリスト１１ａに登録されたコマンド名の中から、入力された文字列と一致する唯一のコマンド名を確定できるかを判定する。
【００１５】
例えば、コマンド入力画面に「create」と入力されたとする。コマンドリスト１１ａには、コマンド名として「create volume」と「create raid-group」とが登録されている。このため、コマンド受け付け部１２は、この時点ではコマンド名を一意に確定できない。しかし、その後、画面２１に示すように「v」が入力されると、入力された文字列と一致する唯一のコマンド名が「create volume」に確定される（ステップＳ２）。すなわち、コマンド名「create volume」の全体が入力されるより前に、コマンド名が確定される。なお、コマンド受け付け部１２は、例えば、コマンド名が確定されると、画面２３に示すように、コマンド入力画面に確定されたコマンド名を表示させる。
【００１６】
情報収集部１３は、コマンド受け付け部１２によってコマンド名が「create volume」に確定されると、制御情報リスト１１ｂ内の複数の制御情報の中から、「create volume」に応じた処理の実行可否を検証するための検証用情報を収集する処理を開始する（ステップＳ３）。なお、例えば、検証用情報として収集すべき制御情報は、確定されたコマンド名に応じて決定される。
【００１７】
処理実行部１４は、「create volume」に応じた処理の実行可否を、情報収集部１３によって収集された検証用情報に基づいて検証する（ステップＳ４）。例えば、情報処理装置１０は、コマンド名と、これに続く１以上のオプション情報とを含む命令文に応じて、処理を実行するものとする。この場合、処理実行部１４は、確定されたコマンド名「create volume」に続いて入力されるオプション情報と、収集された検証用情報との整合性を検証することで、上記の実行可否を検証する。なお、図１の例では、画面２３に示すように、コマンド名「create volume」に続いてオプション情報「name 01」が入力されている。
【００１８】
処理実行部１４は、実行可否の検証によって実行可能と判定すると、確定されたコマンド名「create volume」に応じた処理を実行する（ステップＳ５）。処理が正常に実行されると、コマンド入力画面は、画面２４に示すように、次のコマンドの入力を待機する状態になる。
【００１９】
以上の情報処理装置１０によれば、コマンド名全体が入力されるより前にコマンド名を確定し、確定されたコマンド名に応じた処理の実行可否を検証するための検証用情報の収集を開始できる。これにより、コマンド名全体が入力されてから検証用情報の収集を開始するより、コマンド名の入力開始からコマンド名に応じた処理が完了するまでの時間を短縮できる。
【００２０】
〔第２の実施の形態〕
次に、第２の実施の形態として、図１の情報処理装置１０の例としてストレージ制御装置を適用した場合について説明する。
【００２１】
図２は、第２の実施の形態に係るストレージシステムの構成例を示す図である。図２に示すストレージシステムは、ＣＥ（Controller Enclosure）５０とＤＥ（Drive Enclosure）２００を有する。ＣＥ５０は、それぞれＤＥ２００と接続されたＣＭ（Controller Module）１００，１００ａを有する。ＣＭ１００，１００ａには、ホスト装置２１０と管理端末２２０が接続されている。
【００２２】
ＣＭ１００は、ホスト装置２１０からの要求に応じて、ＤＥ２００に搭載された記憶装置に対するアクセスを制御するストレージ制御装置である。ＣＭ１００は、例えば、ＤＥ２００に搭載された記憶装置を実記憶領域とする論理ボリュームを作成し、ホスト装置２１０から論理ボリュームに対するアクセス要求を受け付け、要求に応じたアクセス制御を実行する。ＣＭ１００ａも、ＣＭ１００と同様の処理を実行可能である。
【００２３】
ＤＥ２００には、ホスト装置２１０からのアクセス対象となる複数台の記憶装置が搭載されている。本実施の形態では例として、ＤＥ２００は、このような記憶装置としてＨＤＤ２０１，２０２，２０３，・・・が搭載されたディスクアレイ装置であるものとする。なお、ホスト装置２１０からのアクセス対象となる記憶装置は、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置であってもよい。
【００２４】
ホスト装置２１０は、例えば、ＤＥ２００内の記憶装置を使用して処理を実行する業務サーバである。
なお、ＣＭ１００，１００ａは、例えば、一方が運用系として動作し、他方が待機系として動作することができる。また、例えば、ＣＭ１００，１００ａは、それぞれ個別に設定された論理ボリュームに対するアクセス要求をホスト装置２１０から受け付けることもできる。この場合、例えば、ＣＭ１００，１００ａのうち一方に記憶された情報が、他方にバックアップされてもよい。また、ＣＭ１００，１００ａは、それぞれ個別のホスト装置２１０から個別の論理ボリュームに対するアクセス要求を受け付けてもよい。
【００２５】
さらに、ストレージシステムには、ＣＥ５０やＤＥ２００がそれぞれ複数台設けられていてもよい。例えば、ＣＭ１００，１００ａには、複数台のＤＥ２００が接続されていてもよい。また、ＣＭ１００，１００ａには、それぞれ個別のＤＥ２００が接続されていてもよい。この場合、ＣＭ１００，１００ａのうち、一方に設定される論理ボリュームの物理記憶領域は、一方に接続されたＤＥ２００だけでなく他方に接続されたＤＥ２００を用いて実現されてもよい。この場合、一方のＣＭは、他方のＣＭを通じて、他方のＣＭに接続されたＤＥ２００にアクセスしてもよい。
【００２６】
管理端末２２０は、ストレージシステムを管理する管理者によって操作される端末装置である。管理端末２２０には、キーボード２２１と表示装置２２２が接続されている。管理者は、表示装置２２２を視認しながらキーボード２２１を用いて管理端末２２０を操作することで、ＣＭ１００，１００ａに対して設定や状態表示などの各種の処理を実行させることができる。本実施の形態では、ＣＭ１００，１００ａは、このような処理の実行を指示するためのＣＬＩを管理端末２２０に提供する。ＣＭ１００を操作する場合を例示すると、表示装置２２２にはＣＭ１００からの情報に基づくＣＬＩ画面が表示され、管理者がキーボード２２１を用いてＣＬＩ画面にコマンドを入力すると、入力されたコマンドがＣＭ１００に送信される。ＣＭ１００は、受信したコマンドに応じた処理を実行する。
【００２７】
次に、ＣＭ１００，１００ａのハードウェア構成について説明する。ここでは例としてＣＭ１００について説明するが、ＣＭ１００ａもＣＭ１００と同様のハードウェアを用いて実現される。
【００２８】
図３は、ＣＭのハードウェア構成例を示す図である。ＣＭ１００は、例えば、図３に示すようなコンピュータとして実現される。ＣＭ１００は、プロセッサ１０１、ＲＡＭ１０２、ＳＳＤ１０３、ＣＡ（Channel Adapter）１０４、ＤＩ（Drive Interface）１０５およびＬＡＮ（Local Area Network）インタフェース１０６を有する。これらの構成要素は、バス１０７を介して接続されている。
【００２９】
プロセッサ１０１は、ＣＭ１００全体を統括的に制御する。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。また、プロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３０】
ＲＡＭ１０２は、ＣＭ１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００３１】
ＳＳＤ１０３は、ＣＭ１００の補助記憶装置として使用される。ＳＳＤ１０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。
ＣＡ１０４は、ホスト装置２１０と通信するためのインタフェースである。ＣＡ１０４とホスト装置２１０とは、例えば、ファイバチャネル（ＦＣ：Fibre Channel）やｉＳＣＳＩ（Internet Small Computer System Interface）などを用いたＳＡＮ（Storage Area Network）を介して接続される。
【００３２】
ＤＩ１０５は、ＤＥ２００と通信するためのインタフェースである。ＤＩ１０５は、例えば、ＳＡＳ（Serial Attached SCSI）インタフェースである。
ＬＡＮインタフェース１０６は、管理端末２２０と通信するためのインタフェースである。
【００３３】
以上のハードウェア構成によってＣＭ１００の処理機能が実現される。なお、ホスト装置２１０および管理端末２２０も、ＣＭ１００と同様のハードウェア構成を有するコンピュータとして実現することができる。
【００３４】
ところで、前述のように、ＣＭ１００，１００ａは管理端末２２０に対してＣＬＩを提供する。ＣＬＩとは、キーボードを使って特定の文字列を入力することで処理の実行を命令し、文字出力によって処理の実行結果を取得する形式のユーザインタフェースである。
【００３５】
ＣＬＩでは一般的に、コマンドプロンプトと呼ばれる入力待ちを示す文字列に続けて、「コマンド名  オプション  オプション・・・」のように、コマンド名とこれに対応する１以上のオプションとが入力される。コマンド名とオプション、オプションとオプションとの間は、それぞれスペースによって区切られる。コマンド名によって、実行させる処理内容が指定され、オプションによって処理内容の詳細が指定される。
【００３６】
オプションは、ユーザに任意の値の引数の指定を許可する場合、「オプション名  引数」のような構造で指定される。オプション名と引数との間はスペースによって区切られる。また、オプションはオプション名だけで指定される場合もある。コマンド名および１以上のオプションの入力に続いてEnterキーが押下されると、命令文が確定し、その命令文に応じた処理が実行される。
【００３７】
本実施の形態でも、以上のような形式で命令文が入力されるものとする。なお、コマンドプロンプトからEnterキーが押下されるまでに入力された１行の命令文は、コマンドラインと呼ばれる。
【００３８】
一方、ＣＭ１００，１００ａには、ＣＬＩを通じて設定や状態確認が可能な多くの論理的な操作対象がそれぞれ存在する。例えば、論理ボリューム、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）グループ、ストレージプール、ホストグループ、ポートグループ、ＬＵＮ（Logical Unit Number）グループなどがある。また、ＣＭ１００，１００ａには、ＣＬＩを通じて動作状態の確認が可能な多くの物理的なデバイスがそれぞれ搭載されている。例えば、ディスク（ＨＤＤやＳＳＤ）、電源ユニット、ＣＭ、ＣＡなどがある。このように、操作対象の数は膨大である。
【００３９】
また、複数のＣＭ（例えば、ＣＭ１００，１００ａ）が連携して動作する場合には、１つのＣＭでの操作対象の数はさらに膨大になり得る。例えば、ＣＭ１００，１００ａのうち一方に記憶された情報が他方にバックアップされるケースが考えられる。あるいは、ＣＭ１００，１００ａにそれぞれ個別の論理ボリュームが設定され、一方のＣＭに設定された論理ボリュームの物理記憶領域が、そのＣＭに接続されたＤＥ２００だけでなく他方のＣＭに接続されたＤＥ２００を用いて実現されるケースも考えられる。このようなケースでは、一方のＣＭは自ＣＭだけでなく、他方のＣＭに関する設定情報を保持する必要がある。このため、各ＣＭでの操作対象の数はさらに膨大になる。
【００４０】
このように操作対象が膨大であることから、ＣＭ１００，１００ａの管理のためのＣＬＩでは、入力されるコマンドラインの構造が非常に複雑になることが多い。そのため、コマンドラインを正しく入力するには慣れが必要である。コマンドラインを正しく入力できるまで何回も入力し直すというケースも頻出する。
【００４１】
なお、ＣＭ１００，１００ａにおいてＣＬＩを通じて操作が可能な代表的な機能としては、例えば、各種の表示機能、基本機能の設定機能、装置環境の設定機能、保守機能、ユーティリティ機能、工場出荷機能がある。各種表示機能としては、装置状態の表示、部品状態の表示などがある。基本機能の設定機能としては、ＲＡＩＤ管理、ホットスペア管理、省電力管理、ボリューム管理、ＬＵＮマッピング、Host Affinity設定、各種コピー設定などがある。装置環境の設定機能としては、ネットワーク設定、日付設定、ＳＮＭＰ（Simple Network Management Protocol）管理などがある。保守機能としては、強制縮退または組み込み、各部へのファームウェア適用、ログ採取、ダンプ採取などがある。ユーティリティ機能としては、イベント通知、性能情報表示、エラー情報表示、各種リカバリなどがある。工場出荷機能としては、出荷設定、初期化などがある。
【００４２】
ここで、図４，図５は、コマンドラインの入力作業の比較例を示す図である。この図４，図５を用いて、コマンドラインが入力された場合の従来の処理方法を用いた処理例について説明する。
【００４３】
図４，図５の例では、コマンド名として、論理ボリュームを新たに作成することを指示する「create volume」が指定されている。また、コマンド名に続いて、「type」、「size」、「name」、「rg-name」、「encryption」、「copy-protection」、「exc」というオプション名が指定されている。
【００４４】
「type」は、論理ボリュームのタイプを指定するオプション名であり、初期状態である図４の状態１−１では引数として「open」が指定されている。「size」は、論理ボリュームのサイズを指定するオプション名であり、状態１−１では引数として「100gb」（１００ギガバイト）が指定されている。「name」は、論理ボリュームの名称（Friendly name）を指定するオプション名であり、状態１−１では引数として「olun」が指定されている。「rg-name」は、論理ボリュームの作成先のＲＡＩＤグループを指定するオプション名であり、状態１−１では引数として「RG#0」が指定されている。「encryption」は、論理ボリュームにおいて暗号機能を有効にするかを指定するオプション名であり、状態１−１では有効にすることを示す「enable」が指定されている。「copy-protection」は、論理ボリュームに対するコピー制限機能を有効にするかを指定するオプション名であり、状態１−１では有効にすることを示す「enable」が指定されている。「exc」は、論理ボリュームに対する高速化キャッシュ機能を有効にするかを指定するオプション名であり、状態１−１では有効にすることを示す「enable」が指定されている。
【００４５】
ＣＬＩでは一般的に、Enterキーの押下（改行の入力）によってコマンドラインの入力完了が検知されると、入力された内容の解析や整合性チェックが行われる。この処理によって、入力されたコマンドラインの内容に基づく処理を実行可能と判定された場合に、その処理の実行が開始される。
【００４６】
入力された内容の解析は、コマンドラインの先頭から順に行われる。また、コマンドラインに記述されたオプションごとに、コマンドライン上の先頭のオプションから順番に整合性チェックが行われる。整合性チェックでは、オプションに含まれる引数の整合性が検証される。また、一般的に、整合性がないと判定されたオプションが１つでもあると、入力されたコマンドラインは破棄され、コマンドラインの先頭から再入力がユーザに要求される。
【００４７】
図４の状態１−１に示したコマンドラインの場合、まず、先頭のオプション名「type」とその引数「open」について整合性がチェックされ、次にオプション名「size」とその引数「100gb」について整合性がチェックされる。ここで、引数「100gb」について整合性がないと判定されたとする。例えば、論理ボリュームの作成される物理領域（例えば、ストレージプール）の残量が１００ギガバイト未満である場合に、整合性がないと判定される。この場合、例えば、状態１−１に示すように、オプション名「size」について、容量不足であることを示すエラー情報がＣＬＩ画面に表示される。そして、次の行にコマンドプロンプト（「CLI>」）が表示され、コマンドラインの先頭からの再入力が求められる。
【００４８】
次に、状態１−２に示すように、オプション名「size」の引数が「1gb」（１ギガバイト）に修正されたコマンドラインが入力されたとする。この場合に、オプション名「size」について整合性ありと判定されたとしても、次のオプション名「name」について整合性なしと判定されると、エラー情報が表示され、コマンドラインの再入力が求められる。なお、この例では、論理ボリュームのボリューム名はユニークでなくてはならないという条件があり、入力されたボリューム名「olun」はすでに登録済みであったものとする。
【００４９】
次に、状態１−３に示すように、ボリューム名がユニークな「olun#01」に修正されたものの、次のオプション名「rg-name」について整合性なしと判定されたとする。例えば、ＲＡＩＤグループ名「RG#0」のＲＡＩＤグループが未登録であったとする。この場合も、エラー情報が表示され、コマンドラインの再入力が求められる。
【００５０】
次に、図５の状態１−４に示すように、ＲＡＩＤグループ名が登録済みの「RG#1」に修正されたものの、次のオプション名「encryption」について整合性なしと判定されたとする。例えば、ストレージシステム全体についての暗号化機能が無効となっているために、作成した論理ボリュームの暗号化機能を有効にできないとする。この場合も、エラー情報が表示され、コマンドラインの再入力が求められる。
【００５１】
次に、状態１−５に示すように、論理ボリュームの暗号化機能が無効（disable）に修正されたものの、最後のオプション名「exc」について整合性なしと判定されたとする。例えば、ストレージシステム全体についての高速化キャッシュ機能が無効となっているために、作成した論理ボリュームの高速化キャッシュ機能を有効にできないとする。この場合も、エラー情報が表示され、コマンドラインの再入力が求められる。
【００５２】
そして、状態１−６に示すように、論理ボリュームの高速化キャッシュ機能が無効（disable）に修正されると、すべてのオプションについてのコマンド実行条件が満たされ、コマンドラインに基づく処理が実行される。処理が正常に完了すると、コマンドプロンプトが表示され、新たなコマンドラインを入力可能な状態に移行する。
【００５３】
以上の図４，図５の例のように、コマンドライン上の複数のオプションについて誤入力があり、整合性がないと判定されると、ユーザは、それらのオプションの数だけコマンドラインを先頭から再入力しなければならない。そのため、入力作業に大きな手間がかかるという問題がある。また、あるオプションについて誤入力と判定されたとき、それより前のオプションについては正しく入力されていても、コマンドラインの先頭からの再入力が必要となる。このため、同じ文字列を繰り返し入力しなくてはならず、作業効率が低くなってしまう。
【００５４】
さらに、オプションごとの整合性チェックでは、そのオプションに関係する多くの情報が収集され、参照される。収集される情報には、前述したような論理的な操作対象に関する情報（構成情報）や、物理的な操作対象に関する情報（ハードウェア情報）が含まれ得る。例えば、論理ボリュームのボリューム名が指定されるオプションについての整合性チェックでは、作成済みのすべての論理ボリュームについてのボリューム名が収集される。このように、整合性チェックでは構成情報やハードウェア情報が大量に収集されるので、その処理時間が長くなる。コマンドラインに複数のオプションが含まれる場合には、収集される情報の量はさらに膨大なものとなり、処理時間もさらに長くなる。
【００５５】
図４，図５で例示したように、従来のＣＬＩでは、Enterキーの押下によってコマンドラインの入力が完了しないと、整合性チェックが開始されない。このため、入力されたコマンドラインに基づく処理が開始されるまでに長い時間がかかってしまう。図４，図５の例のように複数のオプションについて誤入力があった場合には、コマンドラインに基づく処理が開始されるまでの時間はさらに長くなる。
【００５６】
また、あるオプションについて誤入力と判定されたとき、それより前のオプションについては正しく入力されていても、コマンドラインが再入力された後に同じオプションについての情報収集が再度行われる。このため、オプションの誤入力があると全く同じ情報収集が繰り返されるケースが多くなり、処理内容に無駄があり、非効率であるという問題もある。
【００５７】
第２の実施の形態において、ＣＭ１００，１００ａは、以上のような問題点を解決するための処理機能を備えている。
図６は、ＣＭが備える処理機能の構成例を示すブロック図である。なお、これ以後の説明では、ＣＭ１００について説明し、ＣＭ１００ａについての説明を省略する。ＣＭ１００ａは、ＣＭ１００と同様の処理を実行可能である。
【００５８】
ＣＭ１００は、管理情報記憶部１１０、構成情報記憶部１２０、ハードウェア（Ｈ／Ｗ）情報記憶部１３０、コマンド入力処理部１４０、装置情報変更処理部１５０およびアクセス制御部１６０を有する。管理情報記憶部１１０、構成情報記憶部１２０およびハードウェア情報記憶部１３０は、例えば、ＲＡＭ１０２またはＳＳＤ１０３の記憶領域として実現される。コマンド入力処理部１４０、装置情報変更処理部１５０およびアクセス制御部１６０の処理は、プロセッサ１０１が所定のプログラムを実行することで実現される。なお、このプログラムは、例えば、ＳＳＤ１０３に記憶される。
【００５９】
管理情報記憶部１１０は、コマンド名の一覧やオプション名の一覧など、コマンド入力処理部１４０の処理に必要な各種の管理情報を記憶する。構成情報記憶部１２０は、論理ボリュームやＲＡＩＤグループなどの論理的な操作対象に関する情報である構成情報を記憶する。ハードウェア情報記憶部１３０は、ＣＭ１００に搭載された、または接続されたハードウェア要素に関する情報であるハードウェア情報を記憶する。
【００６０】
コマンド入力処理部１４０は、管理端末２２０にＣＬＩ画面を表示させ、ＣＬＩ画面に対して入力された文字列を受信する。コマンド入力処理部１４０は、受信した文字列を解析し、その解析結果に基づいて、管理端末２２０から命令された処理を判別し、その処理の実行を装置情報変更処理部１５０に依頼する。また、コマンド入力処理部１４０は、受信した文字列を解析する際、構成情報記憶部１２０やハードウェア情報記憶部１３０から収集した情報に基づいて、入力されたオプションの整合性をチェックする。
【００６１】
装置情報変更処理部１５０は、コマンド入力処理部１４０から依頼された処理を実行する。依頼される処理は、主として、構成情報やハードウェア情報の一部を変更する処理である。
【００６２】
アクセス制御部１６０は、構成情報記憶部１２０およびハードウェア情報記憶部１３０を参照しながら、ホスト装置２１０からの要求に応じて論理ボリュームに対するアクセス制御を実行する。例えば、アクセス制御部１６０は、ＲＡＭ１０２にキャッシュ領域を確保し、ホスト装置２１０から論理ボリュームに対する書き込み要求を受信すると、書き込みデータをキャッシュ領域に書き込み、ホスト装置２１０に応答する。アクセス制御部１６０は、その後の非同期のタイミングで、キャッシュ領域に書き込んだ書き込みデータを、ＤＥ２００内の所定領域にライトバックする。
【００６３】
図７は、構成情報記憶部に記憶される情報の例を示す図である。構成情報記憶部１２０には、例えば、ボリューム管理テーブル１２１ａ，１２１ｂ，１２１ｃ，・・・、ＲＡＩＤグループ管理テーブル１２２ａ，１２２ｂ，１２２ｃ，・・・、ストレージプール管理テーブル１２３ａ，１２３ｂ，１２３ｃ，・・・、コピーセッション管理テーブル１２４ａ，１２４ｂ，１２４ｃ，・・・、ホストグループ管理テーブル１２５ａ，１２５ｂ，１２５ｃ，・・・、ポートグループ管理テーブル１２６ａ，１２６ｂ，１２６ｃ，・・・が登録される。
【００６４】
ボリューム管理テーブル１２１ａ，１２１ｂ，１２１ｃ，・・・は、論理ボリュームごとに作成されるテーブルである。各テーブルには、例えば、論理ボリュームの名称（Friendly Name）、容量、タイプ、作成先ＲＡＩＤグループ名、圧縮や暗号化等の有効・無効の情報などが登録される。
【００６５】
ＲＡＩＤグループ管理テーブル１２２ａ，１２２ｂ，１２２ｃ，・・・は、ＲＡＩＤグループごとに作成されるテーブルである。ＲＡＩＤグループとは、特定のＲＡＩＤレベルで書き込みが制御されるディスク群を指す。各テーブルには、ＲＡＩＤグループ名、ＲＡＩＤグループを構成するディスクのＩＤ、ＲＡＩＤレベル、どのストレージプールに属するかを示すプール情報などが登録される。
【００６６】
ストレージプール管理テーブル１２３ａ，１２３ｂ，１２３ｃ，・・・は、ストレージプールごとに作成されるテーブルである。ストレージプールとは、論理ボリュームを設定可能な物理記憶領域であり、１以上のＲＡＩＤグループによって構成される。各テーブルには、例えば、ストレージプール名、構成するＲＡＩＤグループのグループ名、使用量、未使用量、省電力設定（ＥＣＯ）情報などが登録される。
【００６７】
コピーセッション管理テーブル１２４ａ，１２４ｂ，１２４ｃ，・・・は、コピーセッションごとに作成されるテーブルである。各テーブルには、例えば、コピー元の論理ボリュームのボリューム名、コピー先の論理ボリュームのボリューム名、コピー処理の種別を示すモード情報、コピー処理の状態を示す状態情報などが登録される。
【００６８】
ホストグループ管理テーブル１２５ａ，１２５ｂ，１２５ｃ，・・・は、ホストグループごとに作成されるテーブルである。各テーブルには、例えば、ホストグループに属するホスト装置の識別情報、アクセス先の論理ボリュームのボリューム名、アクセスに使用される通信ポートのポート名などが登録される。
【００６９】
ポートグループ管理テーブル１２６ａ，１２６ｂ，１２６ｃ，・・・は、ポートグループごとに作成されるテーブルである。各テーブルには、ホスト装置との通信で利用される物理ポートやネットワーク機器の識別情報、各物理ポートやネットワーク機器の状態情報などが登録される。
【００７０】
図８は、ハードウェア情報記憶部に記憶される情報の例を示す図である。ハードウェア情報記憶部１３０には、例えば、ディスク管理テーブル１３１ａ，１３１ｂ，１３１ｃ，・・・、ＣＭ管理テーブル１３２ａ，１３２ｂ，１３２ｃ，・・・、電源管理テーブル１３３ａ，１３３ｂ，１３３ｃ，・・・が登録される。
【００７１】
ディスク管理テーブル１３１ａ，１３１ｂ，１３１ｃ，・・・は、ストレージシステムに接続されたＤＥごとに作成される。各テーブルには、例えば、ＤＥに搭載されたディスクのＩＤ、各ディスクの容量、性能、状態を示す情報が登録される。
【００７２】
ＣＭ管理テーブル１３２ａ，１３２ｂ，１３２ｃ，・・・は、ストレージシステムに含まれるＣＭごとに作成される。各テーブルには、ＣＭの識別情報、ＣＭに搭載されたデバイスの識別情報、ＣＭの状態情報、ＣＭに電源を供給する電源ユニットの識別情報が登録される。
【００７３】
電源管理テーブル１３３ａ，１３３ｂ，１３３ｃ，・・・は、ストレージシステムに含まれる電源ユニットごとに作成される。各テーブルには、電源ユニットの識別情報、供給可能な電力、状態情報が登録される。
【００７４】
次に、図９，図１０を用いて、管理情報記憶部１１０に記憶される情報の例について説明する。
図９は、コマンドリストの構成例を示す図である。図９に示すコマンドリスト１１１は、管理情報記憶部１１０に記憶される。
【００７５】
コマンドリスト１１１には、ＣＭ１００が受け付け可能なコマンド名の一覧があらかじめ登録されている。さらに、各コマンド名には情報収集フラグが対応づけてあらかじめ登録されている。情報収集フラグは、対応するコマンド名を含むコマンドライン上のオプションの整合性をチェックするための情報収集が必要か否かを示すフラグ情報である。情報収集フラグは、情報収集が必要の場合にはオンに設定され、不要の場合にはオフに設定される。
【００７６】
コマンドリスト１１１に登録されているすべてのコマンド名の中には、整合性チェックのための情報収集が不要なものがある。例えば、コマンド名「show status」のように、装置の総合ステータスを表示するためのコマンドの場合は、整合性チェックの必要はない。また、例えば、引数の妥当性を静的なチェックのみで実施できる場合も、整合性チェックの必要はない。このようなコマンド名の例としては、論理ボリュームに関する情報を表示させる「show volume」がある。「show volume」では、オプション名「output」に対して設定可能な引数として、テーブル形式で表示させる「table」、詳細情報を表示させる「detail」、リスト形式で表示させる「list」の中から選択的に入力される。このように、「show volume」は、あらかじめ決められた表示形式の中から選択させる機能しかないため、構成情報やハードウェア情報とは無関係であり、整合性チェックの必要性がない。
【００７７】
コマンドリスト１１１においてコマンド名に情報収集フラグを対応づけておくことで、整合性チェックのための情報収集が必要なコマンド名かそうでないかをコマンド入力処理部１４０が判別し、判別結果に応じた処理を実行できるようになる。その結果、コマンド入力処理部１４０の処理を効率化できる。
【００７８】
図１０は、オプションリストの構成例を示す図である。図１０に示すオプションリスト１１２ａ，１１２ｂ，１１２ｃ，・・・は、管理情報記憶部１１０に記憶される。オプションリスト１１２ａ，１１２ｂ，１１２ｃ，・・・は、コマンドリスト１１１に登録されたそれぞれ個別のコマンド名に対応づけられている。したがって、オプションリストは、コマンドリスト１１１に登録されたコマンド名と同じ数だけ管理情報記憶部１１０に記憶される。
【００７９】
各オプションリストには、コマンドラインにおいて対応するコマンド名に続けて記述可能なオプション名の一覧があらかじめ登録されている。さらに、各オプション名には、指定済みフラグ、必須オプションフラグ、収集対象情報、収集済みフラグおよび問い合わせフラグが対応づけられている。
【００８０】
指定済みフラグは、コマンドラインにおいて該当オプションを指定済みであるか否かを示すフラグ情報である。指定済みフラグは、コマンドラインの入力開始時には未指定を示すオフに設定され、指定済みになるとオンに設定される。
【００８１】
必須オプションフラグは、該当オプション名が、対応するコマンド名に続いて必ず指定されなければならない必須オプションのオプション名であるか否かを示すフラグ情報である。必須オプションフラグは、必須オプションの場合はオンに、必須オプションでない場合はオフにあらかじめ設定される。
【００８２】
収集対象情報は、該当オプション名について整合性チェックのために収集すべき情報を示す。収集対象情報としては、構成情報記憶部１２０やハードウェア情報記憶部１３０に記憶されている情報が指定される。
【００８３】
例えば、論理ボリュームの作成を指示するコマンド名「create volume」では、オプション名「name」によって論理ボリュームのボリューム名（Friendly Name）が指定される。Friendly Nameが満たすべき条件としては、例えば、（１）３２文字以内であること、（２）ユニークな名称であること、（３）装置内の特定のボリューム（例えばSystem Volume）と同じ名称でないこと、という条件がある。
【００８４】
これらのうち、条件（１），（３）は静的な条件であり、構成情報記憶部１２０やハードウェア情報記憶部１３０を参照せずにチェック可能である。しかし、条件（２）を満たすかチェックするためには、収集対象情報として、作成済みの他のすべての論理ボリュームのボリューム名のリスト（Volume Friendly Name List）が必要となる。具体的には、設定済みのすべてのボリューム管理テーブル１２１ａ，１２１ｂ，１２１ｃ，・・・からボリューム名が収集される。そして、オプション名「name」の引数として指定されたボリューム名と重複するボリューム名が登録済みか否かがチェックされる。
【００８５】
また、コマンド名「create volume」では、オプション名「size」によって論理ボリュームのサイズが指定される。このオプション名「size」については、引数として指定されたサイズの論理ボリュームを設定可能かを判定するための収集対象情報として、空き容量リスト、定義済みボリュームの容量総和、最大プール容量が指定される。空き容量リストは、論理ボリュームを設定可能な各ストレージプールにおける空き容量のリストであり、ストレージプール管理テーブル１２３ａ，１２３ｂ，１２３ｃ，・・・から収集される。定義済みボリュームの容量総和は、設定可能なストレージプールに定義済みの論理ボリュームの容量の総和を示し、ボリューム管理テーブル１２１ａ，１２１ｂ，１２１ｃ，・・・から収集される。最大プール容量は、設定可能なストレージプールの容量の総和を示し、ストレージプール管理テーブル１２３ａ，１２３ｂ，１２３ｃ，・・・から収集される。
【００８６】
収集済みフラグは、収集対象情報の項目に登録されたすべての情報について収集済みか否かを示すフラグ情報である。収集済みフラグは、コマンドラインの入力開始時には未収集を示すオフに設定され、収集済みになるとオンに設定される。
【００８７】
問い合わせフラグは、コマンド解析部１４２から情報収集部１４３に対して情報収集が完了したかの問い合わせを行ったか否かを示すフラグ情報である。問い合わせフラグは、コマンドラインの入力開始時には問い合わせを行っていないことを示すオフに設定され、問い合わせが行われると、該当する情報の収集が完了するまでの間、オンに設定される。該当オプション名および引数の入力が確定した段階で問い合わせフラグがオンに設定されると、このオプション名について整合性チェックのために必要な情報が優先的に収集されるようになる。
【００８８】
ところで、各オプションリストにおいては、オプション名が優先度の高い順に登録されている。優先度とは、コマンドラインにおいて指定される必要性の高さを示す。必ず指定されなければならないオプション名はオプションリストの上位に登録され、必ずしも指定されなくてもよいオプション名はオプションリストの下位に登録される。
【００８９】
後述するように、整合性チェックのための情報収集時には、オプションリストの上位から順にオプション名が選択され、選択されたオプション名に対応する収集対象情報が収集される。これにより、指定される必要性の高いオプションほど、その整合性チェックに必要な情報が先に収集されるようになる。その結果、情報収集の待ち合わせが発生する確率が低下し、情報収集に要する時間が短縮される。
【００９０】
次に、コマンド入力に応じたＣＭ１００の処理の詳細について説明する。
まず、図１１は、コマンド入力処理部の内部構成例を示すブロック図である。コマンド入力処理部１４０は、処理続行判定部１４１、コマンド解析部１４２および情報収集部１４３を有する。また、コマンド解析部１４２は、解析部１４２ａと検証部１４２ｂを有する。
【００９１】
なお、解析部１４２ａによって、図１のコマンド受け付け部１２の機能が実現される。また、情報収集部１４３によって、図１の情報収集部１３の機能が実現される。また、検証部１４２ｂと図６の装置情報変更処理部１５０とによって、図１の処理実行部１４の機能が実現される。
【００９２】
処理続行判定部１４１は、ユーザによるコマンド入力状態を監視し、特定の条件を満たす状態となった場合に処理全体を中断させる。
コマンド解析部１４２は、入力された文字列を解析し、その結果に応じた処理を実行できるかを判定する処理ブロックである。コマンド解析部１４２の解析部１４２ａは、文字が１文字入力するたびに解析処理を行い、コマンド名、オプション名、引数の入力を検知する。解析部１４２ａは、入力されたコマンド名が確定すると、整合性チェックのための情報収集を情報収集部１４３に依頼する。また、解析部１４２ａは、情報収集部１４３によって収集された情報を用いて整合性チェックを行う。
【００９３】
情報収集部１４３は、整合性チェックのために必要な情報を構成情報記憶部１２０やハードウェア情報記憶部１３０から収集する。
以下、これらの各部の処理についてフローチャートを用いて説明する。なお、以下の処理では、制御のためのフラグ情報として、コマンド名確定フラグ、オプション名確定フラグ、コマンド実行可能フラグが利用される。これらのフラグ情報は、ＲＡＭ１０２に一時的に記憶される。
【００９４】
図１２は、処理続行判定部の処理例を示すフローチャートである。なお、この図１２の処理は一定時間ごとに繰り返される。
［ステップＳ１１］処理続行判定部１４１は、最後に文字入力が行われた時刻から一定時間が経過したかを判定する。ここでいう文字入力は、Spaceキーを押下する操作も含む。一定時間が経過した場合、ステップＳ１３の処理が実行され、一定時間が経過していない場合、ステップＳ１２の処理が実行される。
【００９５】
［ステップＳ１２］処理続行判定部１４１は、文字を消去するキー入力があったか、具体的にはBack SpaceキーまたはDeleteキーが押下されたかを判定する。これらのいずれかのキー入力があった場合、ステップＳ１３の処理が実行される。これらのどちらの入力もなかった場合、処理が終了され、一定時間後に図１２の処理が再度実行される。
【００９６】
［ステップＳ１３］処理続行判定部１４１は、コマンド名確定フラグをオフに設定する。
［ステップＳ１４］処理続行判定部１４１は、オプション名確定フラグをオフに設定する。
【００９７】
［ステップＳ１５］処理続行判定部１４１は、コマンド実行可能フラグをオフに設定する。
［ステップＳ１６］処理続行判定部１４１は、情報収集部１４３によって収集された情報をクリアする。
【００９８】
なお、ステップＳ１３〜Ｓ１６の処理順は入れ替え可能である。
［ステップＳ１７］処理続行判定部１４１は、コマンドプロンプト以後に入力された文字列を消去し、再度コマンドプロンプトを表示して、文字入力を受け付け可能な状態に復帰する。
【００９９】
図１３は、コマンド解析部の処理例を示すフローチャートである。
［ステップＳ２１］コマンド解析部１４２の解析部１４２ａは、キー入力を監視し、キー入力を受け付けるとステップＳ２２の処理を実行する。ここでは、１文字の入力、Spaceキーの押下、Enterキーの押下のいずれかが検知された場合に、ステップＳ２２の処理が実行される。
【０１００】
［ステップＳ２２］解析部１４２ａは、コマンド名確定フラグがオンであるかを判定する。オンである場合、ステップＳ２４の処理が実行され、オフである場合、ステップＳ２３の処理が実行される。
【０１０１】
［ステップＳ２３］解析部１４２ａは、入力されたコマンド名を確定するコマンド名確定処理を実行する。
［ステップＳ２４］解析部１４２ａは、オプション名確定フラグがオンであるかを判定する。オンである場合、ステップＳ２６の処理が実行され、オフの場合、ステップＳ２５の処理が実行される。
【０１０２】
［ステップＳ２５］解析部１４２ａは、入力されたオプション名を確定するオプション名確定処理を実行する。
［ステップＳ２６］コマンド解析部１４２は、引数として入力された値を確定し、それに応じた処理を実行する入力値確定処理を実行する。
【０１０３】
［ステップＳ２７］解析部１４２ａは、コマンド実行フラグがオンであるかを判定する。オンである場合、ステップＳ２８が実行され、オフである場合、処理が終了される。
［ステップＳ２８］装置情報変更処理部１５０は、入力されたコマンドラインの内容に応じて構成情報やハードウェア情報の設定値を変更する情報変更処理を実行する。
【０１０４】
図１４は、コマンド名確定処理の例を示すフローチャートである。この図１４の処理は、図１３のステップＳ２３の処理に対応する。
［ステップＳ２３ａ］解析部１４２ａは、入力された文字列と前方一致するコマンド名を、コマンドリスト１１１から検索する。ここでいう入力された文字列とは、コマンドプロンプトの後にすでに入力済みの文字列に、図１３のステップＳ２１で入力された文字を加えた文字列である。
【０１０５】
［ステップＳ２３ｂ］解析部１４２ａは、入力された文字列と前方一致するコマンド名がコマンドリスト１１１に存在したかを判定する。存在した場合、ステップＳ２３ｄの処理が実行され、存在しなかった場合、ステップＳ２３ｃの処理が実行される。
【０１０６】
［ステップＳ２３ｃ］解析部１４２ａは、コマンドラインの入力受け付けを中断し、ＣＬＩ画面において入力を受け付けていた行の次の行に、コマンド名が間違っていることを示すエラーメッセージを表示する。そして、解析部１４２ａは、再度コマンドプロンプトを表示して、文字入力を受け付け可能な状態に復帰する。
【０１０７】
［ステップＳ２３ｄ］解析部１４２ａは、入力された文字列と一致するコマンド名が一意に定まるかを判定する。一意に定まる、すなわち、入力された文字列と前方一致するコマンド名が１つだけ存在する場合、ステップＳ２３ｆの処理が実行される。一方、一意に定まらない、すなわち、入力された文字列と前方一致するコマンド名が複数存在する場合、ステップＳ２３ｅの処理が実行される。
【０１０８】
［ステップＳ２３ｅ］解析部１４２ａは、入力済みの文字列の次に、ステップＳ２１で入力された文字を追加表示する。
［ステップＳ２３ｆ］解析部１４２ａは、コマンド名確定フラグをオンに設定する。これにより、次に１文字入力されたとき、図１３のステップＳ２５のオプション名確定処理が実行されるようになる。
【０１０９】
［ステップＳ２３ｇ］解析部１４２ａは、一意に定まったコマンド名、すなわち確定されたコマンド名を情報収集部１４３に通知して、そのコマンド名に対応する情報収集処理を開始するように依頼する。
【０１１０】
［ステップＳ２３ｈ］解析部１４２ａは、確定されたコマンド名をＣＬＩ画面に表示する。
ここで、図１５は、コマンド名の入力作業の例を示す図である。この図１５を用いて、図１４の処理の具体例について説明する。
【０１１１】
状態２−１では、コマンドプロンプトの後に「create」と入力され、さらにスペースが入力されている。この状態から、文字「v」が入力されたとする。このとき、図１４のステップＳ２３ｄにおいて、入力された文字列と一致するコマンド名が一意に定まらないと判定されたとする。この場合、状態２−２に示すように、ＣＬＩ画面に文字「v」が追加表示され、文字入力の受け付けが継続される。
【０１１２】
次に、文字「o」が入力され、ステップＳ２３ｄにおいて、入力された文字列と一致するコマンド名が「create volume」に確定されたとする。この場合、状態２−３に示すように、ＣＬＩ画面に確定されたコマンド名「create volume」が表示され、オプション名の入力待ち状態となる。これにより、ユーザによるコマンド名の入力操作が補助される。
【０１１３】
また、コマンド名「create volume」全体が入力される前に、コマンド名が「create volume」に確定した段階で、「create volume」に後続するオプションについての整合性チェックのための情報収集が開始される。このように情報収集が早期に開始されることにより、コマンドに応じた処理全体が完了するまでの時間を短縮できる。
【０１１４】
図１６は、オプション名確定処理の例を示すフローチャートである。この図１６の処理は、図１３のステップＳ２５の処理に対応する。
［ステップＳ２５ａ］解析部１４２ａは、Enterキーが押下されたかを判定する。押下された場合、ステップＳ２５ｂの処理が実行され、他の入力操作があった場合には、ステップＳ２５ｃの処理が実行される。
【０１１５】
［ステップＳ２５ｂ］解析部１４２ａは、確定されたコマンド名に対応する必須オプションがすべて入力されているかを検証するためのコマンド実行判定処理を実行する。
［ステップＳ２５ｃ］解析部１４２ａは、入力された文字列と前方一致するオプション名を、オプションリスト１１２ａ，１１２ｂ，１１２ｃ，・・・のうち、確定されたコマンド名に対応するオプションリストから検索する。ここでいう入力された文字列とは、確定されたコマンド名またはオプションの引数の後に入力された文字列に、図１３のステップＳ２１で入力された文字を加えた文字列である。また、これ以後のステップＳ２５ｄ〜Ｓ２５ｎで参照されるオプションリストは、ステップＳ２５で検索対象とされたオプションリストである。
【０１１６】
［ステップＳ２５ｄ］解析部１４２ａは、入力された文字列と前方一致するオプション名がオプションリストに存在したかを判定する。存在した場合、ステップＳ２５ｇの処理が実行され、存在しなかった場合、ステップＳ２５ｅの処理が実行される。
【０１１７】
［ステップＳ２５ｅ］解析部１４２ａは、コマンドラインの入力受け付けを中断し、ＣＬＩ画面において入力を受け付けていた行の次の行に、オプション名が間違っていることを示すエラーメッセージを表示する。
【０１１８】
［ステップＳ２５ｆ］解析部１４２ａは、エラーメッセージの次の行に、オプション名の入力直前と同じコマンドラインの文字列（図１３のステップＳ２１でキー入力を受け付ける直前での文字列）を表示し、文字入力を受け付け可能な状態に復帰する。
【０１１９】
［ステップＳ２５ｇ］解析部１４２ａは、入力された文字列と一致するオプション名が一意に定まるかを判定する。一意に定まる、すなわち、入力された文字列と前方一致するオプション名が１つだけ存在する場合、ステップＳ２５ｉの処理が実行される。一方、一意に定まらない、すなわち、入力された文字列と前方一致するオプション名が複数存在する場合、ステップＳ２５ｈの処理が実行される。
【０１２０】
［ステップＳ２５ｈ］解析部１４２ａは、入力済みの文字列の次に、ステップＳ２１で入力された文字を追加表示する。
［ステップＳ２５ｉ］解析部１４２ａは、一意に定まったオプション名、すなわち確定されたオプション名が、現在のコマンドライン上で未指定のオプション名かを判定する。この処理では、オプションリストにおいて、確定されたオプション名に対応するオプション指定済みフラグがオフである場合に未指定と判定され、オンである場合に指定済みと判定される。未指定のオプション名である場合、ステップＳ２５ｌの処理が実行され、指定済みのオプション名である場合、ステップＳ２５ｊの処理が実行される。
【０１２１】
［ステップＳ２５ｊ］解析部１４２ａは、コマンドラインの入力受け付けを中断し、ＣＬＩ画面において入力を受け付けていた行の次の行に、オプション名が重複して入力されていることを示すエラーメッセージを表示する。
【０１２２】
［ステップＳ２５ｋ］解析部１４２ａは、エラーメッセージの次の行に、オプション名の入力直前と同じコマンドラインの文字列（図１３のステップＳ２１でキー入力を受け付ける直前での文字列）を表示し、文字入力を受け付け可能な状態に復帰する。
【０１２３】
［ステップＳ２５ｌ］解析部１４２ａは、オプション名確定フラグをオンに設定する。これにより、次に１文字入力されたとき、図１３のステップＳ２６の入力値確定処理が実行されるようになる。
【０１２４】
［ステップＳ２５ｍ］解析部１４２ａは、オプションリストに登録されたオプション名のうち、確定されたオプション名に対応する指定済みフラグをオンに設定する。
［ステップＳ２５ｎ］解析部１４２ａは、確定されたオプション名をＣＬＩ画面に表示する。
【０１２５】
なお、ステップＳ２５ｌ〜Ｓ２５ｎの処理順は入れ替え可能である。
ここで、図１７は、オプション名の入力作業の例を示す図である。この図１７を用いて、図１６の処理の具体例について説明する。
【０１２６】
状態３−１では、コマンド名「create volume」の後に、オプション名「name」とその引数「olun#01」が指定され、さらにその後にオプション名の入力が継続されており、文字列「na」が入力済みである。この状態から、文字「m」が入力されると、図１６のステップＳ２５ｇで、入力されたオプション名が「name」であると確定されたとする。この場合、オプション名「name」全体が入力される前に、入力されたオプション名が確定され、ユーザの入力操作が補助される。
【０１２７】
しかし、ステップＳ２５ｉでは、オプション名「name」がすでに指定済みと判定され、状態３−２に示すように次の行にエラーメッセージが表示される。そして、次の行において、オプション名「name」の入力直前の状態でコマンドラインが復帰する。このように、オプション名の誤入力が自動判定されてユーザに通知されるとともに、ユーザは、誤入力されたオプション名の入力直前の状態から入力操作を再開できる。したがって、ユーザの利便性を高め、その作業効率を向上させることができる。
【０１２８】
図１８，図１９は、入力値確定処理の例を示すフローチャートである。この図１８，図１９の処理は、図１３のステップＳ２６の処理に対応する。
［ステップＳ２６ａ］解析部１４２ａは、EnterキーまたはSpaceキーが押下されたかを判定する。EnterキーまたはSpaceキーが押下された場合、ステップＳ２６ｄの処理が実行され、他の入力操作があった場合には、ステップＳ２６ｂの処理が実行される。
【０１２９】
［ステップＳ２６ｂ］解析部１４２ａは、入力された文字をＲＡＭ１０２に一時的に記録する。すでに記録されている文字がある場合、入力された文字をそれに追加して記録する。なお、一時記録される文字または文字列は、オプション名の後に入力された文字または文字列である。
【０１３０】
［ステップＳ２６ｃ］解析部１４２ａは、ＣＬＩ画面において、入力済みの文字列の次にステップＳ２１で入力された文字を追加表示する。これにより、図１８，図１９の処理が終了する。
【０１３１】
［ステップＳ２６ｄ］解析部１４２ａは、コマンドリスト１１１において、確定されたコマンド名に対応する情報収集フラグがオンであるかを判定する。オンである場合、ステップＳ２６ｆの処理が実行され、オフである場合、ステップＳ２６ｅの処理が実行される。
【０１３２】
［ステップＳ２６ｅ］確定されたコマンド名に対応する情報収集フラグがオフである場合、このコマンド名については整合性チェックのための情報収集が不要である。このため、コマンド解析部１４２の検証部１４２ｂは、入力されたオプション名および引数の妥当性を、情報収集部１４３を使用せずにチェックする。
【０１３３】
［ステップＳ２６ｆ］検証部１４２ｂは、確定されたオプション名についての整合性チェックのために必要な情報が収集済みかを、情報収集部１４３に問い合わせる。
このとき、情報収集部１４３は、確定されたコマンド名に対応するオプションリストを参照し、確定されたオプション名に対応する収集済みフラグがオンかオフかを判定する。収集済みフラグがオンの場合、情報収集部１４３は、問い合わせ対象のオプション名について必要な情報が収集済みであることを検証部１４２ｂに通知する。一方、収集済みフラグがオフの場合、情報収集部１４３は、問い合わせ対象のオプション名について必要な情報が収集済みでないことを検証部１４２ｂに通知する。
【０１３４】
［ステップＳ２６ｇ］検証部１４２ｂは、問い合わせの結果、情報収集済みであったかを判定する。情報収集済みであった場合、ステップＳ２６ｊの処理が実行され、情報収集済みでなかった場合、ステップＳ２６ｈの処理が実行される。
【０１３５】
［ステップＳ２６ｈ］検証部１４２ｂは、確定されたコマンド名に対応するオプションリストにおいて、確定されたオプション名に対応する問い合わせフラグをオンに設定する。
【０１３６】
［ステップＳ２６ｉ］検証部１４２ｂは、所定時間ディレイさせた後、ステップＳ２６ｆの処理を再度実行する。
［ステップＳ２６ｊ］検証部１４２ｂは、入力されたオプション名および引数の妥当性を、情報収集部１４３によって収集された情報を基にチェックする。この処理では、入力されたオプション名および引数と、収集された情報との整合性が検証される。
【０１３７】
［ステップＳ２６ｋ］解析部１４２ａは、ステップＳ２６ｅまたはステップＳ２６ｊでの妥当性チェックの結果、入力値が妥当であったかを判定する。妥当であった場合、ステップＳ２６ｏの処理が実行され、妥当でなかった場合、ステップＳ２６ｌの処理が実行される。
【０１３８】
［ステップＳ２６ｌ］解析部１４２ａは、コマンドラインの入力受け付けを中断し、ＣＬＩ画面において入力を受け付けていた行の次の行に、入力されたオプション名および引数が妥当でないことを示すエラーメッセージを表示する。
【０１３９】
［ステップＳ２６ｍ］解析部１４２ａは、ＲＡＭ１０２に一時的に記録されていた文字または文字列をクリアする。
［ステップＳ２６ｎ］解析部１４２ａは、エラーメッセージの次の行に、引数の入力直前と同じコマンドラインの文字列（図１３のステップＳ２１でキー入力を受け付ける直前での文字列）を表示し、文字入力を受け付け可能な状態に復帰する。
【０１４０】
なお、ステップＳ２６ｌ，Ｓ２６ｍの処理順、またはステップＳ２６ｍ，Ｓ２６ｎの処理順は、入れ替え可能である。ステップＳ２６ｌ〜Ｓ２６ｎが実行されると、図１８，図１９の処理が終了する。
【０１４１】
［ステップＳ２６ｏ］解析部１４２ａは、ステップＳ２１でEnterキーが押下されたかを判定する。押下された場合、ステップＳ２６ｓの処理が実行され、他の入力操作があった場合、ステップＳ２６ｐの処理が実行される。
【０１４２】
［ステップＳ２６ｐ］解析部１４２ａは、ＲＡＭ１０２に一時的に記録されていた文字または文字列をクリアする。
［ステップＳ２６ｑ］ステップＳ２６ｏでEnterキーが押下されていないと判定された場合、コマンドラインの入力は終了していない。このため、解析部１４２ａは、オプション名確定フラグをオフに設定する。これにより、次に１文字入力されたとき、図１３のステップＳ２５のオプション名確定処理が再度実行されるようになる。
【０１４３】
［ステップＳ２６ｒ］解析部１４２ａは、ＣＬＩ画面において、入力済みの文字列の次にステップＳ２１で入力された文字を追加表示する。
なお、ステップＳ２６ｐ〜Ｓ２６ｒの処理順は入れ替え可能である。ステップＳ２６ｐ〜Ｓ２６ｒの処理が実行されると、図１８，図１９の処理が終了する。
【０１４４】
［ステップＳ２６ｓ］解析部１４２ａは、確定されたコマンド名に対応する必須オプションがすべて入力されているかを検証するためのコマンド実行判定処理を実行する。
［ステップＳ２６ｔ］解析部１４２ａは、ＲＡＭ１０２に一時的に記録されていた文字または文字列をクリアする。
【０１４５】
［ステップＳ２６ｕ］解析部１４２ａは、オプション名確定フラグをオフに設定する。
なお、ステップＳ２６ｔ，Ｓ２６ｕの処理順は入れ替え可能である。ステップＳ２６ｔ，Ｓ２６ｕの処理が実行されると、図１８，図１９の処理が終了する。
【０１４６】
ここで、図２０は、引数の入力作業の例を示す図である。この図２０を用いて、図１８，図１９の処理の具体例について説明する。
状態４−１では、論理ボリュームのボリューム名を指定するオプション名「name」に続いて引数の入力が行われており、文字列「sampl」が入力済みである。この状態から、文字「e」が入力されると、引数の入力値は確定していないため、図１８のステップＳ２６ｂ，Ｓ２６ｃが実行され、状態４−２に示すような表示状態となる。
【０１４７】
次に、Enterキーが押下されると、引数の入力値が「Sample」と確定される。このとき、ステップＳ２６ｆにおいて、妥当性チェックのために必要な情報が収集済みかの問い合わせが行われる。収集済みであれば、ステップＳ２６ｊにおいて妥当性チェックが行われる。例えば、すべてのボリューム管理テーブル１２１ａ，１２１ｂ，１２１ｃ，・・・からボリューム名が収集される。これらの情報が収集済みでない場合には、ステップＳ２６ｉで一定時間待ち合わせが行われる。すべて収集済みになると、「Sample」と重複するボリューム名が登録済みかが判定され、登録済みでない場合に、図１９のステップＳ２６ｋで妥当と判定される。
【０１４８】
この後、図１３のステップＳ２８に進んで、入力されたコマンドラインの内容に応じた処理が装置情報変更処理部１５０によって実行される。処理が完了すると、状態４−３に示すように、新たなコマンドラインを入力可能な状態となる。
【０１４９】
なお、実際には、Enterキーの押下によってコマンドラインの入力終了が検知され、かつ整合性チェックが行われた後、次の図２１に示すように、コマンドラインの内容に基づく処理を実行可能か否かを判定する処理が実行される。
【０１５０】
図２１は、コマンド実行判定処理の例を示すフローチャートである。図１８の処理は、図１６のステップＳ２５ｂおよび図１９のステップＳ２６ｓの処理に対応する。
［ステップＳ１０１］解析部１４２ａは、入力されたコマンドラインにおいて、確定されたコマンド名についてのすべての必須オプションが指定されているかを判定する。具体的には、解析部１４２ａは、確定されたコマンド名に対応するオプションリストを参照し、必須オプションフラグがオンのオプション名の中に指定済みフラグがオフのオプション名があるかを判定する。この条件に該当するオプション名がある場合に、未指定の必須オプションがあると判定される。すべての必須オプションが指定されている場合、ステップＳ１０２の処理が実行され、未指定の必須オプションがある場合、ステップＳ１０３の処理が実行される。
【０１５１】
［ステップＳ１０２］解析部１４２ａは、コマンド実行フラグをオンに設定する。これにより、この後に図１３のステップＳ２７からステップＳ２８に進み、入力されたコマンドラインに応じた処理が実行されるようになる。
【０１５２】
［ステップＳ１０３］解析部１４２ａは、コマンドラインの入力受け付けを中断し、ＣＬＩ画面において入力を受け付けていた行の次の行に、指定しなければならないオプションが残っていることを示すエラーメッセージを表示する。
【０１５３】
［ステップＳ１０４］解析部１４２ａは、エラーメッセージの次の行に、入力済みのコマンドラインの文字列を再表示するとともに、その末尾にSpaceを追加表示して、文字入力を受け付け可能な状態に復帰する。
【０１５４】
以上の図２１の処理によれば、ユーザによりコマンドラインを確定する操作が行われたとき、確定されたコマンド名に続けて指定が必須なオプションがすべて指定されているかがチェックされる。そして、未指定のオプションがある場合には、ユーザは、入力済みの内容に続けてさらにオプションを指定可能になる。これにより、ユーザの誤入力が防止されるとともに、ユーザはコマンドラインの先頭から再入力する必要がなくなる。したがって、ユーザの利便性を高め、その作業効率を向上させることができる。
【０１５５】
図２２は、情報収集部の処理例を示すフローチャートである。情報収集部１４３は、図１４のステップＳ２３ｇで解析部１４２ａから情報収集処理を開始するように依頼されると、図２２の処理を実行する。
【０１５６】
［ステップＳ３１］情報収集部１４３は、オプションリスト１１２ａ，１１２ｂ，１１２ｃ，・・・の中から、解析部１４２ａから通知されたコマンド名に対応するオプションリストを検索する。以下、検索されたオプションリストを用いて処理が行われる。
【０１５７】
［ステップＳ３２］情報収集部１４３は、オプションリストに、問い合わせフラグがオンのオプション名があるかを判定する。問い合わせフラグがオンのオプション名が１つでもある場合には、ステップＳ３４の処理が実行され、問い合わせフラグがオンのオプション名が１つもない場合には、ステップＳ３３の処理が実行される。
【０１５８】
［ステップＳ３３］情報収集部１４３は、オプションリストから、問い合わせフラグがオフのオプション名のうち、先頭のオプション名を処理対象として選択する。
［ステップＳ３４］情報収集部１４３は、オプションリストから、問い合わせフラグがオンのオプション名のうち、先頭のオプション名を処理対象として選択する。
【０１５９】
［ステップＳ３５］情報収集部１４３は、オプションリストから、選択されたオプション名に対応する収集対象情報を読み込む。情報収集部１４３は、読み込んだ情報に基づいて、構成情報記憶部１２０やハードウェア情報記憶部１３０から、整合性チェックのために必要な情報を収集する。情報収集部１４３は、収集した情報をＲＡＭ１０２に一時的に保存する。
【０１６０】
［ステップＳ３６］情報収集部１４３は、オプションリストにおいて、選択されたオプション名に対応する収集済みフラグをオンに設定する。また、選択されたオプション名に対応する問い合わせフラグがオンである場合には、情報収集部１４３は、その問い合わせフラグをオフに設定する。
【０１６１】
［ステップＳ３７］情報収集部１４３は、オプションリストに、収集済みフラグがオフのオプション名があるかを判定する。収集済みフラグがオフのオプション名が１つでもある場合、ステップＳ３２の処理が再度実行される。収集済みフラグがオフのオプション名が１つもない場合、処理が終了する。
【０１６２】
以上の図２２の処理によれば、情報収集処理が依頼されたとき、オプションリストの先頭から順にオプション名が選択され、選択されたオプション名に対応する情報が収集される。オプションリストにおいては、指定される必要性に応じた優先度が高い順にオプション名が登録されているので、上記処理より先に指定される可能性の高いオプション名に対応する情報が優先的に収集される。したがって、オプション名と引数の入力が確定したときに、その整合性チェックのために必要な情報の収集が完了している可能性が高くなる。その結果、コマンドラインに応じた処理が完了するまでの時間を短縮できる。
【０１６３】
また、問い合わせフラグがオンのオプション名は、オフのオプション名より優先的に選択され、対応する情報の収集が実行される。問い合わせフラグは、入力が確定したオプション名および引数の整合性チェックを必要な情報収集が完了するまで待ち合わせる際に、オンに設定される。このため、問い合わせフラグがオンに設定されることで、事前にオプション名に付与されていた優先度に関係なく、すぐに情報収集が必要なオプション名を優先的に選択し、対応する情報収集を早期に実行できるようになる。これにより、整合性チェックが実行可能になるまでの待ち合わせ時間を短縮でき、その結果、コマンドラインに応じた処理が完了するまでの時間を短縮できる。
【０１６４】
ここで、図２３は、コマンドラインの入力作業の例を示す図である。
状態５−１では、コマンド名「create volume」の入力が確定され、オプション名の入力待ち状態となっている。この時点で、情報収集部１４３は、コマンド名「create volume」に対応するオプションリストに基づいて、整合性チェックのための情報収集を開始する。この情報収集は、図１４のステップＳ２３ｇでの依頼に応じて開始される。
【０１６５】
情報収集部１４３による情報収集処理（図２２）は、コマンド解析部１４２による以下の処理と並列に実行される。また、情報収集部１４３は、オプション名ごとに収集された情報をＲＡＭ１０２に一時的に保存しておく（図２２のステップＳ３５）。
【０１６６】
この後、状態５−２に示すように、論理ボリュームのボリューム名を指定するオプション名「name」と、文字列「sample」が入力され、Spaceキーの押下により引数「sample」が確定されたとする。コマンド解析部１４２の検証部１４２ｂは、オプション名「name」について情報収集部１４３によって収集された情報を用いて、オプション名「name」および引数「sample」の整合性チェックを行う（図１８のステップＳ２６ｇ）。
【０１６７】
ここで、引数「sample」が他の論理ボリュームのボリューム名と重複しており、妥当でないと判定されたとする。このとき、状態５−３に示すようにエラーメッセージが表示されるとともに、コマンド名「create volume」の次からのオプション名の入力待ち状態となる。
【０１６８】
次に、状態５−４に示すように、同じオプション名「name」が再度入力され、さらに引数「sample#0」が入力されたとする。ここで、情報収集部１４３によってオプション名「name」について収集された情報は、ＲＡＭ１０２に保存されたままである。このため、検証部１４２ｂは、保持されている情報を再度利用して、オプション名「name」および引数「sample#0」の整合性チェックを行うことができる。
【０１６９】
このように、情報収集部１４３は、入力されたコマンド名が確定すると、コマンドライン全体の入力し直しが行われるまでの間に、そのコマンド名に対応する各オプション名について、整合性チェックのための情報収集を１回ずつ実行し、収集した情報を保存しておく。そして、コマンド解析部１４２は、オプション名と引数の誤入力が行われ、同じオプション名についての入力が繰り返された場合でも、保存された情報を再利用して整合性チェックを実行する。このように、同じオプション名についての入力が繰り返された場合でも、そのオプション名についての情報収集が繰り返されることがないので、情報収集処理が効率化される。その結果、コマンド入力処理部１４０の処理負荷を軽減できる。また、オプション名ごとの整合性チェックの開始タイミングを早めることもでき、それによってコマンドラインに応じた処理が完了するまでの時間を短縮できる。
【０１７０】
図２４は、情報変更処理の例を示すフローチャートである。この図２４の処理は、図１３のステップＳ２８の処理に対応する。
［ステップＳ２８ａ］解析部１４２ａは、入力されたコマンドラインの内容を装置情報変更処理部１５０に通知し、その内容に応じた情報変更処理を依頼する。装置情報変更処理部１５０は、通知された内容に基づいて、構成情報記憶部１２０やハードウェア情報記憶部１３０の設定内容を変更する。
【０１７１】
［ステップＳ２８ｂ］解析部１４２ａは、コマンド実行可能フラグ、コマンド名確定フラグ、オプション名確定フラグを、すべてオンに設定する。
［ステップＳ２８ｃ］解析部１４２ａは、情報収集部１４３によって収集された情報をクリアする。
【０１７２】
［ステップＳ２８ｄ］解析部１４２ａは、ＣＬＩ画面において、入力されたコマンドラインの次の行に再度コマンドプロンプトを表示して、文字入力を受け付け可能な状態に復帰する。
【０１７３】
なお、上記の各実施の形態に示した装置（情報処理装置１０およびＣＭ１００，１００ａ）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１７４】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１７５】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【符号の説明】
【０１７６】
１０  情報処理装置
１１  記憶部
１１ａ  コマンドリスト
１１ｂ  制御情報リスト
１２  コマンド受け付け部
１３  情報収集部
１４  処理実行部
２１〜２４  画面
【図１】
0006558275.tif 000002
【図２】
0006558275.tif 000003
【図３】
0006558275.tif 000004
【図４】
0006558275.tif 000005
【図５】
0006558275.tif 000006
【図６】
0006558275.tif 000007
【図７】
0006558275.tif 000008
【図８】
0006558275.tif 000009
【図９】
0006558275.tif 000010
【図１０】
0006558275.tif 000011
【図１１】
0006558275.tif 000012
【図１２】
0006558275.tif 000013
【図１３】
0006558275.tif 000014
【図１４】
0006558275.tif 000015
【図１５】
0006558275.tif 000016
【図１６】
0006558275.tif 000017
【図１７】
0006558275.tif 000018
【図１８】
0006558275.tif 000019
【図１９】
0006558275.tif 000020
【図２０】
0006558275.tif 000021
【図２１】
0006558275.tif 000022
【図２２】
0006558275.tif 000023
【図２３】
0006558275.tif 000024
【図２４】
0006558275.tif 000025