【文献】
寺口俊伸,打つべし!打つべし!次世代コマンド! あしたのためのWindows PowerShell入門,Windows Server World,(株)IDGジャパン,2008年10月 1日,第13巻,第10号,pp.118-123
(58)【調査した分野】(Int.Cl.,DB名)
前記応答検知部は、前記コマンド送信部によりコマンドが送信されたタイミングから既定の時間内に、表示される文字列に基づいて、送信されたコマンドに対する応答を検知する
請求項4に記載の機器設定装置。
前記応答検知部は、前記コマンド送信部がソフトウェアの起動を指示するコマンドを送信した場合に、ウインドウタイトルの文字列に基づいて、前記コマンドの応答を検知する
請求項5に記載の機器設定装置。
前記応答検知部は、前記コマンド送信部によりコマンドが送信されたタイミングから既定の時間内に、既定の文字列が発見できなかった場合に、設定作業のエラーを通知する
請求項5に記載の機器設定装置。
前記コマンド送信部によるコマンドの送信処理、又は、前記応答検知部により検知された応答に応じて、設定作業の進捗状況を示す進捗データを他の端末に送信する進捗通知部
をさらに有する請求項4に記載の機器設定装置。
前記手順作成部は、ユーザに物理的操作を促す操作指示情報を表示させる作業部品と、自動的に対象機器にコマンドを送信させる作業部品とを少なくとも組み合わせる設定シナリオ情報を作成する
請求項1に記載の機器設定装置。
前記仮想マシンにおける、前記コマンド送信部によるコマンドの送信処理、又は、前記応答検知部により検知された応答に応じて、設定作業の進捗状況を示す進捗データを前記仮想マシンのホストに通知する進捗通知部
をさらに有する請求項14に記載の機器設定装置。
いずれかの仮想マシンにおいて設定シナリオ情報に従って設定作業が自動実行されている場合に、いずれの仮想マシンにおいても設定作業が自動実行されていない場合よりも、前記仮想マシンのホストがスリープ状態に移行する時間を長く設定するスリープ制御部
をさらに有する請求項14に記載の機器設定装置。
【発明を実施するための形態】
【0031】
[背景]
まず、本発明がなされた背景を説明する。
設定作業や保守作業の対象となる通信機器のメーカーや機種が増える中、それを保守する交換作業においても多種多様の設定作業が必要になり、保守作業員は、対応機種に応じた設定作業を、各種ツールを用いて手作業で設定している。そのため、保守作業員の習熟度により作業時間が異なる。また、設定漏れや入力ミス等が発生し作業品質が低下する可能性がある。
【0032】
より具体的には、対象機器毎のコマンドを理解していないと設定作業が行えない。そのため保守作業員に対し定期的に技術教育を行っているが、作業頻度の低い対象機器に対して技術スキルの維持が難しく、結果、設定作業中に手探りで作業を行いながら必要に応じてサポート側へ問合せたりしており、想定している設定作業時間が大幅に超過してしまう。
また、設定作業を行うパソコン環境が保守作業員毎に異なり、事務業務と併用して使用しているため、パソコンの設定情報は個々で異なる。それらのパソコンを保守作業で使用する場合、事前準備段階で各種パソコン環境の確認と保守作業に見合った設定変更を手動で実施している。また、設定に必要なアプリケーションソフトウェアがインストールされていない場合は新たにインストールを行い、作業完了後は追加したアプリケーションソフトウェアの削除を手動で行っているため、作業に時間を多く費やしている。
【0033】
対象機器毎に作業手順が異なり、保守作業員は、過去の経験やサポート側の指示に基づいて、対象機種や障害内容に応じて作業手順書に記載されたコマンドの読み替えや作業手順の組み替えを行っている。そのため、保守作業員の対応レベルがバラバラで均一な作業品質の提供が困難である。
保守作業においては、保守作業員による機器交換後に他社のSE作業者によるサーバ機との通信確認や、お客様による動作確認など様々な立場の人と連携して作業を行うのが特徴である。そのため保守作業員の作業進捗の定期的な報告は必須であるが、保守作業員が作業に没頭してしまうと報告を忘れてしまい、結果進捗状況の問合せや状況共有の遅れからクレームに発展することがある。
【0034】
そこで、本実施形態では、対象機器の保守作業において保守作業員の設定作業を補助する自動化設定ツールを用いることで、課題を解決する。
より具体的には、様々な対象機器のコマンドを「コマンド辞書」に蓄積させ、IPアドレスの設定やOSバージョンの変更等のやりたいことと関連付けさせる。これにより、コマンドが分からない対象機器であっても、やりたいこと(目的)を選択するだけで自動的にコマンドを引き出すことができる。
また、保守作業員毎に異なる設定用パソコンの設定情報を自動的に収集し「設定格納部(後述)」へ一時保管する。その後、パソコンの設定を対象機器との接続を可能とする設定に変更し、設定作業を実施するために必要なアプリケーションソフトウェアをインストールする。また作業完了後は、「設定格納部」で一時保管した保守作業前の設定情報を基にパソコンの設定を元の状態へ戻す。
様々な対象機器に対応した設定シナリオを作成する「シナリオ編集部(後述)」を用い、起動や設定投入、操作ログの採取などで使用するコマンドが定義された作業部品を組み合わせて、作業順序にしたがって構成して設定シナリオを作成する。
保守作業員が使用するパソコンで保守作業対象の通信機器に対して自動的に設定作業を行うため、作成した設定シナリオをシナリオ実行部(後述)で動作するツールへ変換させる。
シナリオ実行部(後述)は、対象機器に対して、設定作業を自動的に実行する。
設定シナリオの自動実行中に進捗状況をメールで通知させる。作業開始後、お客様と取り決めたタイミング(10分毎、30分毎、作業完了後など)で指定先に設定したメールアドレスへメール送信する。また、自動設定作業中にエラーが発生した時も指定先に設定したメールアドレスへメール送信できる。
【0035】
次に、本発明の実施形態を、図面を参照して説明する。
図1は、機器設定システム1の全体構成を例示する図である。
図1に例示するように、機器設定システム1は、機器設定装置2と、ハブ70と、設定対象である通信機器9とを含む。
機器設定装置2は、コンピュータ端末であり、通信機器9の設定作業を行う。例えば、機器設定装置2は、可搬型のコンピュータ端末であり、通信ケーブルを介して、通信機器9と接続し、通信機器9に通信ケーブルを介してコマンドを送信する。
本例の機器設定装置2は、ノートパソコンであり、シリアルケーブル82を介して通信機器9と接続すると共に、LANケーブル80及びハブ70を介して通信機器9と接続している。
【0036】
設定対象である通信機器9は、例えば、ファイアウォールやルーターなどのネットワーク機器である。
ハブ70は、ネットワーク通信を中継する中継装置であり、例えば、スイッチングハブである。
本例では、機器設定装置2が、設定対象である通信機器9にログインし、通信機器9の設定作業を行う。
【0037】
図2は、機器設定装置2のハードウェア構成を例示する図である。
図2に例示するように、機器設定装置2は、CPU200、メモリ202、HDD204、ネットワークインタフェース206(ネットワークIF206)、表示装置208、及び、入力装置210を有し、これらの構成はバス212を介して互いに接続している。
CPU200は、例えば、中央演算装置である。
メモリ202は、例えば、揮発性メモリであり、主記憶装置として機能する。
HDD204は、例えば、ハードディスクドライブ装置であり、不揮発性の記録装置としてコンピュータプログラムやその他のデータファイルを格納する。
ネットワークIF206は、有線又は無線で通信するためのインタフェースであり、例えば、LANケーブル80やシリアルケーブル82を介して通信機器9との通信を実現する。
表示装置208は、例えば、液晶ディスプレイである。
入力装置210は、例えば、キーボード及びマウスである。
【0038】
図3、
図4及び
図5は、機器設定装置2の機能構成を例示する図である。
図3に例示するように、本例の機器設定装置2には、機器設定プログラム5がインストールされると共に、シナリオデータベース600(シナリオDB600)、部品データベース610(部品DB610)、コマンドデータベース620(コマンドDB620)、及び設定格納部630が構成される。なお、部品DB610は、本発明に係る部品格納部の一例である。
機器設定プログラム5は、シナリオ管理部500、コマンド管理部510、作業部品管理部520、変換部530、シナリオ実行部540、進捗管理部550、入力ロック部560、通知部570、及び設定管理部580を有する。
なお、機器設定プログラム5の一部又は全部は、ASICなどのハードウェアにより実現されてもよい。
【0039】
機器設定プログラム5において、シナリオ管理部500は、機器の設定手順を示す設定シナリオ情報の管理を行う。例えば、シナリオ管理部500は、設定シナリオ情報の新規作成、編集、登録及び検索を行う。ここで、設定シナリオ情報(以下、設定シナリオ)とは、機器の設定手順を示す情報であり、例えば、機器の設定に用いる機能単位(プログラムモジュール)である作業部品の組合せと、これら作業部品の順序とを定義するデータファイルである。
本例のシナリオ管理部500は、
図4(A)に例示するように、シナリオ編集部502、シナリオ登録部504、及びシナリオ検索部506を含む。シナリオ編集部502は、本発明に係る手順作成部の一例である。
【0040】
シナリオ編集部502は、ユーザの入力操作に応じて、設定シナリオを編集する。例えば、シナリオ編集部502は、シナリオDB600から読み出した設定シナリオのテンプレートを編集して、新規の設定シナリオを作成する。
シナリオ登録部504は、シナリオ編集部502により編集された設定シナリオをテンプレートとしてシナリオDB600に登録する。例えば、シナリオ登録部504は、
図6(A)に例示するように、設定シナリオを、対象機器の製造元識別情報(例えば、メーカー名)、及び、対象機器の機種識別情報(例えば、機種名)に関連付けてシナリオDB600に登録する。
シナリオ検索部506は、シナリオDB600に登録されている設定シナリオの中から、検索キーワードに合致する設定シナリオを検索し、発見された設定シナリオをユーザに提示する。
【0041】
コマンド管理部510は、通信機器9の設定に用いるコマンドを管理する。例えば、コマンド管理部510は、コマンドの新規登録、コマンド情報の編集、及び検索等を行う。ここで、コマンドとは、機器に対して所望の動作を行わせるために機器に対して出力される命令であり、例えば、それぞれの機器について定義されているコマンドである。このようなコマンドは、メーカーや機種によって異なることがあるため、膨大な数となる。また、コマンド情報とは、コマンドに関連する情報であり、例えば、コマンドの対象機種やファームウェアを示す情報、コマンドの目的、又は、補足的な説明文である。
本例のコマンド管理部510は、
図4(B)に例示するように、コマンド情報編集部512、コマンド登録部514、コマンド検索部516、及びコマンドライン生成部518を含む。
【0042】
コマンド情報編集部512は、ユーザの入力操作に応じて、いずれかのコマンドについて、コマンド情報を編集する。例えば、コマンド情報編集部512は、コマンドDB620に登録されているコマンドについて、コマンドの目的、又は、補足説明文を編集する。
コマンド登録部514は、コマンド、及び、コマンド情報編集部512により編集されたコマンド情報を互いに関連付けてコマンドDB620に登録する。例えば、コマンド登録部514は、
図7に例示するように、コマンドと、コマンド情報(メーカー名、機種名、ファームウェア、大分類の目的、小分類の目的、及び補足説明文)とを互いに関連付けてコマンドDB620に登録する。コマンド情報は、コマンド情報編集部512による編集作業によって、随時追記されてもよい。
コマンド検索部516は、コマンドDB620に登録されているコマンド又はコマンド情報の中から、検索キーワードに合致するコマンド又はコマンド情報を検索し、発見されたコマンド又はコマンド情報をユーザに提示する。
コマンドライン生成部518は、コマンド検索部516により検索されたコマンドに基づいて、テキスト形式のコマンドラインを生成する。本例のコマンドライン生成部518は、コマンド検索部516により検索されたコマンドのうち、ユーザが選択したコマンドと、このコマンドについてユーザが入力した固有情報(パスワードやIPアドレスなど)とに基づいて、テキスト形式のコマンドラインを生成し、生成された複数のコマンドラインを纏めてテキストファイル(Setテキスト)として出力する。
【0043】
作業部品管理部520は、機器の設定作業の一部を実行するためのプログラムファイルである作業部品の管理を行う。例えば、作業部品管理部520は、作業部品の新規作成、編集、登録及び検索を行う。ここで、作業部品とは、設定作業の一部を実行するためのプログラムファイルであり、例えば、少なくとも1つのコマンドと、他の作業部品等とのデータの受け渡し(入出力)に関する定義情報とを含む。
本例の作業部品管理部520は、
図4(C)に例示するように、作業部品編集部522、作業部品登録部524、及び作業部品検索部526を含む。
【0044】
作業部品編集部522は、ユーザの入力操作に応じて、作業部品のパラメータ等を編集する。例えば、作業部品編集部522は、部品DB610から読み出した作業部品、又は、テンプレートである設定シナリオで指定された作業部品のパラメータを編集してカスタマイズする。
作業部品登録部524は、新たに作業部品が作成された場合に、作成された作業部品を部品DB610に登録する。例えば、作業部品登録部524は、
図6(B)に例示するように、作業部品を、この作業部品に対する編集権限情報、この作業部品により実行される内容である作業内容、この作業部品の実行中に入力受付を禁止するか否かを指定する入力ロック情報、及び、作業部品の実行に要する所要時間に関連付けて部品DB610に登録する。
作業部品検索部526は、部品DB610に登録されている作業部品又はその関連情報の中から、検索キーワードに合致する作業部品又はその関連情報を検索し、発見された作業部品又は関連情報をユーザ又は他の構成に提供する。
【0045】
変換部530は、シナリオ編集部502により作成された設定シナリオを、自動実行可能な形式に変換する。例えば、変換部530は、設定シナリオにより指定されている作業部品を部品DB610から読み出し、設定シナリオで定義された順序に、読み出された作業部品を配列し、パラメータ等の定義を行って、実行形式のプログラムファイルを生成する。
【0046】
シナリオ実行部540は、シナリオ編集部502により作成された設定シナリオに従って、設定シナリオで指定された作業部品を順次実行し、複数の作業からなる設定作業全体を自動実行する。例えば、シナリオ実行部540は、変換部530により変換された実行形式のプログラムファイルを実行する。
本例のシナリオ実行部540は、
図4(D)に例示するように、コマンド送信部542、応答検知部544、エラー通知部546、及び操作管理部548を含む。
【0047】
コマンド送信部542は、コマンドDB620に登録されている複数のコマンドを、シナリオ編集部502により作成された設定シナリオに対応する順序及びタイミングで、対象機器である通信機器9に対して順に送信する。例えば、コマンド送信部542は、設定シナリオで定義された作業部品の順序で、応答検知部544により直前の作業部品(コマンド)に対する応答が検知された後のタイミング、又は、操作管理部548により直前の作業部品で指示されたユーザの手動操作が検知された後のタイミングで、次の作業部品に含まれるコマンドを送信する。
【0048】
応答検知部544は、コマンド送信部542により送信されたコマンドに対する、対象機器である通信機器9からの応答を検知する。例えば、応答検知部544は、コマンド送信部542によりコマンドが送信されたタイミングから既定の時間内に、表示される文字列に基づいて、送信されたコマンドに対する応答を検知する。より具体的には、応答検知部544は、コマンド送信部542がターミナルソフトウェアを介してコマンドを送信した場合に、ターミナルソフトウェアの操作画面におけるコマンドの位置を保持し、保持されたコマンドの位置の後ろに出現する文字列に基づいて、応答を検知する。また、応答検知部544は、コマンド送信部542がソフトウェアの起動を指示するコマンドを送信した場合に、ソフトウェアの起動に伴って開かれるウインドウのウインドウタイトルの文字列に基づいて、コマンドの応答を検知する。
【0049】
エラー通知部546は、コマンド送信部542によりコマンドが送信されたタイミングから既定の時間内に、既定の文字列が発見できなかった場合に、エラーを他の構成に通知する。例えば、エラー通知部546は、既定の時間内に既定の文字列が発見できなかった場合に、通知部570に、設定作業のエラーを通知させる。
【0050】
操作管理部548は、実行中の作業部品がユーザに物理的操作(手動操作)を促す操作指示情報を表示させるものである場合に、この作業部品の実行として、手動操作通知部574(後述)に対して、ユーザに手動操作を促す操作指示情報を表示させる。操作指示情報は、例えば、クリック操作、キー入力、ケーブルの着脱、又はボタンの押下などを促すメッセージ(画像や文字列)であり、ユーザにとってマニュアルとなりうるものである。
操作管理部548は、操作指示情報で促した手動操作が既定の時間内に実行されたか否かを検知し、既定の時間内に手動操作が検知された場合に、次の作業部品の実行を許可する。
【0051】
進捗管理部550は、設定シナリオで定義された設定作業の進捗状況を管理する。より具体的には、進捗管理部550は、設定シナリオにより指定された作業部品の所要時間(目安)を合算して、設定作業全体の所要時間を予測する。さらに、進捗管理部550は、シナリオ実行部540により実行された作業部品に相当する所要時間を、設定作業全体の所要時間から差し引いて、設定作業の完了予想時刻を算出する。あるいは、現在時刻に未実行の作業部品の所要時間を足して、設定作業の完了予想時刻を算出してもよい。
また、進捗管理部550は、設定シナリオで指定された作業部品の中に、ユーザの手動操作を要求する作業部品が含まれている場合に、現在の進捗状況(実行済みの作業部品、又は、未実行の作業部品)と、設定シナリオにおける、手動操作を要求する作業部品の順序とに基づいて、ユーザによる手動操作が必要となるタイミング(予想時刻)を予測する。なお、進捗管理部550は、本発明に係るタイミング予測部の一例である。
【0052】
入力ロック部560は、進捗管理部550で管理される設定作業の進捗に応じて、ユーザによる入力操作の受付を禁止する。例えば、入力ロック部560は、コマンド送信部542がコマンドを送信する場合(すなわち、コマンドを送信する作業部品の実行時)に、少なくともコマンドが送信されるタイミングから、このコマンドの応答が検知されるタイミングまでの間、入力操作の受付を禁止する。これにより、設定作業の自動実行中に、ユーザの誤操作が設定作業に影響しないようにできる。なお、入力操作の受付禁止は、例えば、キーボードやマウスなどの入力デバイスを無効化してもよいし、入力デバイスが有効であってもターミナルソフトウェアなどのツール上で入力値を無視するようにしてもよい。
また、入力ロック部560は、ユーザの手動操作を要求する作業部品が実行されている場合に、入力操作の受付禁止を解除して、ユーザによる入力を可能にする。
本例の入力ロック部560は、実行中の作業部品に応じて、ユーザによる入力操作の受付を禁止し、又は、許可する。
【0053】
通知部570は、設定シナリオの進捗状況に応じて、ユーザに通知を行う。本例の通知部570は、
図5(A)に例示するように、リモート通知部572、手動操作通知部574、予想時刻通知部576、及び案内画像表示部578を含む。
リモート通知部572は、コマンド送信部542によるコマンドの送信処理、又は、応答検知部544により検知された応答に応じて、設定作業の進捗状況を示す進捗データを、機器設定装置2の他の端末に送信する。より具体的には、リモート通知部572は、進捗管理部550により管理されている設定シナリオの進捗状況を、ユーザの携帯電話又はタブレット端末などにメール通知する。これにより、ユーザは、設定作業の自動実行中に、機器設定装置2から離れていても、設定作業の進捗を確認することができる。
【0054】
手動操作通知部574は、進捗管理部550により管理されている設定作業の進捗状況に応じて、ユーザによる手動操作が必要なタイミングを通知する。例えば、手動操作通知部574は、操作管理部548からの指示に応じて、手動操作が必要なタイミングで、手動操作の内容を示す操作指示情報を表示装置208(
図2)に表示させる。また、手動操作通知部574は、手動操作を要求する作業部品の前の作業部品を実行しているタイミングで、間もなく手動操作が必要になる旨の予告通知を行ってもよい。
【0055】
予想時刻通知部576は、進捗管理部550により予測された手動操作のタイミング(予想時刻)をユーザに通知する。例えば、予想時刻通知部576は、進捗管理部550により予測された手動操作の予想時刻を、設定シナリオの自動実行の前又は自動実行中に、表示装置208(
図2)に表示させる。これにより、ユーザは、手動作業が必要になるタイミングまで、設定作業の現場から安心して離れることができる。
【0056】
案内画像表示部578は、入力ロック部560により入力操作の受付が禁止されている期間(すなわち、コマンドが順次自動的に送信されている期間)に、並行して実施できる作業(例えば、報告書の作成、設定作業に影響のないケーブルやカバーの着脱など)、又は、後に実施すべき作業を明示又は示唆する画像を表示装置208に表示させる。また、案内画像表示部578は、入力ロック部560により入力操作の受付が禁止されている期間に、広告画像(静止画又は動画)、又は、実行中の作業の内容を示す画像を表示させてもよい。
【0057】
設定管理部580は、機器設定装置2と対象機器とを互いに接続させる場合に、環境情報を収集して、環境に応じた設定変更を行い、対象機器の設定作業が完了した後に、対象機器と機器設定装置2との接続を解除した場合に、機器設定装置2を元の設定に戻す。本例の設定管理部580は、環境情報収集部582、設定変更部584、設定情報選択部586、及びスリープ設定部588を含み、環境情報を収集する作業部品と、収集された環境情報に応じて設定変更する作業部品と、設定作業完了後にデフォルトの設定に戻す作業部品とを実行することにより、これらの構成の機能を実現する。
【0058】
環境情報収集部582は、対象機器の環境情報を収集する。例えば、環境情報収集部582は、対象機器である通信機器9とケーブルで接続された場合に、対象機器のネットワーク環境に関する情報、対象機器のハードウェア環境に関する情報、及び、対象機器のソフトウェア環境に関する情報を収集する。本例の環境情報収集部582は、環境情報を収集する作業部品の実行として、対象機器である通信機器9の環境情報を自動収集する。
【0059】
設定変更部584は、設定情報選択部586により選択された設定情報を用いて、機器設定装置2の設定を変更する。本例の設定変更部584は、シナリオ実行部540と協働して、対象機器の環境情報に応じた設定変更を行う作業部品と、設定を元に戻す作業部品とを実行することによって、設定作業又は保守作業の前段に、対象機器の環境情報に応じた設定変更を行い、設定作業又は保守作業の後段に、設定を元に戻す設定変更を行う。「設定を元に戻す設定変更」には、設定情報をデフォルト値に戻すことと、設定作業又は保守作業に用いるためにインストールされたアプリケーションソフトウェアをアンインストールすることとが含まれる。
【0060】
設定情報選択部586は、設定格納部630に格納された複数の設定情報の中から、適用すべき設定情報を選択する。例えば、設定情報選択部586は、機器設定装置2が対象機器である通信機器9と同じネットワークに接続されている場合に、環境情報収集部582により収集された環境情報に対応する設定情報を設定格納部630から読み出し、設定変更部584に適用させる。また、設定情報選択部586は、設定作業が完了した後、機器設定装置2が対象機器と同じネットワークから外れた場合に、デフォルトの設定情報(例えば、設定シナリオを実行開始する直前の設定情報)を設定格納部630から読み出し、設定変更部584に適用させる。
【0061】
スリープ設定部588は、機器設定装置2が対象機器と同じネットワークに接続している場合に、デフォルト設定よりもスリープ(省電力モード)に入るまでの時間を長く設定変更する。例えば、スリープ設定部588は、機器設定装置2が対象機器と接続されている場合に、スリープに入るまでの時間を無限大に設定変更して、スリープ状態への移行を禁止する。本例のスリープ設定部588は、シナリオ実行部540により設定シナリオが実行されている間、スリープ状態への移行を禁止し、設定シナリオの実行が完了した後で、スリープに関する設定をデフォルト値に戻す。
【0062】
シナリオDB600は、
図6(A)に例示するように、設定シナリオを、メーカー名、機種名及び備考に関連付けて格納する。これにより、ユーザは、対象機器のメーカー名及び機種名によって、テンプレートとなる設定シナリオを絞り込むことができる。
【0063】
部品DB610は、
図6(B)に例示するように、作業部品を、作業部品に対する編集の可否を示す編集権限、作業部品により実施される作業の内容を示す作業内容、入力操作の受付の許可/禁止を示す入力ロック情報、及び、作業部品の実行に要する所要時間に関連付けて格納する。作業部品に編集権限が設定されているのは、作業部品によってカスタマイズが必要なものと、カスタマイズが不要なものがあり、さらには、カスタマイズによる弊害が大きなものも存在しうるからである。例えば、設定作業の本体を実行する前に、自機の設定を退避させて、環境情報に応じた設定変更を行う作業部品は、設定作業における環境や手順の統一性の観点から、編集を禁止して一律とした方が好ましい。
【0064】
コマンドDB620は、
図7に例示するように、コマンドを、メーカー名、機種名、ファームウェア、概要の目的、詳細な目的、及び補足説明からなるコマンド情報に関連付けて格納する。例えば、コマンド登録部514は、事前に通信機器9より採取したログ情報に基づいて、コマンド一覧が含まれたCSVファイルを生成し、生成されたCSVファイルに基づいて、コマンド及びコマンド情報をコマンドDB620に一括登録する。これにより、ユーザは、メーカー名や目的などに基づいて、コマンドを絞り込むことができる。また、補足説明には、参考情報として、コマンドの使用に関する留意事項などが含まれている。コマンドは、メーカー毎、機種毎に存在するため、膨大な数となるため、コマンド情報が不足するコマンドも存在しうる。そこで、コマンド情報編集部512は、コマンド情報の編集画面で、コマンドが登録された後で、コマンド情報の追記を可能にする。その際に、コマンド情報編集部512は、コマンドの目的(概要及び詳細)の候補を、プルダウンメニューで複数表示し、複数の候補からユーザに選択させる。このように、複数の候補から目的を選択させることによって、目的の表現を統一化して、検索しやすくしている。
このように、コマンド及びコマンド情報がコマンドDB620に追加登録されていくに従って、コマンドDB620がより使いやすいコマンド辞書に成長していく。
コマンド検索部516は、ユーザがやりたいこと(目的)を入力すると、対応するコマンドをコマンドDB620から抽出する。ユーザが、抽出されたコマンドの中から所望のコマンドを選択し、選択されたコマンドに必要なパラメータを入力すると、コマンド管理部510は、
図8に例示するように、コマンドライン(図中のテキストファイル「Setテキスト」)を自動生成する。
【0065】
設定格納部630は、
図6(C)に例示するように、複数の設定情報を、ハードウェアを特定するための識別情報と、環境情報と、設定情報の作成日時とに関連付けて格納する。環境情報には、対象機器と接続されていない状態である「個人」と、対象機器と接続された場合のその環境である「客先環境A」等とが存在する。これにより、対象機器と接続された状態と、対象機器との接続を解除した状態とで設定が変更される。さらに、対象機器と接続された状態であっても、対象機器の環境によって設定が異なることになる。また、ハードウェアの識別情報は、同じハードウェアに対して、退避した設定情報を戻すために使用される。設定情報の作成日時は、同一のハードウェアに関して、「個人」環境の設定情報が複数存在する場合に、例えば、直近の設定情報を適用するために使用される。
【0066】
図9は、機器設定処理(S10)のフローチャートである。なお、本例では、シナリオDB600に登録された設定シナリオをテンプレートとして、設定シナリオを作成する形態を説明するが、これに限定されるものではなく、例えば、設定シナリオをテンプレートなしに新規作成してもよい。
【0067】
図9に示すように、ステップ100(S100)において、シナリオ検索部506は、ユーザが入力したメーカー名及び機種名に基づいて、シナリオDB600に登録されている設定シナリオの中から、メーカー名及び機種名が一致する設定シナリオを絞り込む。例えば、メーカー毎の定型パターンをベースに作成する「テンプレート検索」と、既存シナリオをベースに参照作成する「既存シナリオ検索」の2通りから選択するようにしてもよい。「テンプレート検索」は、「メーカー名」を選択することで、シナリオDB600より、選択された設定シナリオのテンプレートを表示することができるようにしてもよい。「既存シナリオ検索」は、既存シナリオの作成時に登録した2つの検索キー(メーカー名/機種名)を選択することで、シナリオDB600より既存のシナリオを表示することができるようにしてもよい。また「既存シナリオ検索」の検索キー指定は、任意の検索ワードからも検索可能とし、検索ワードを入力することでシナリオDB600より既存のシナリオを表示するようにしてもよい。
【0068】
ステップ110(S110)において、シナリオ編集部502は、ユーザの操作に応じて、絞り込まれた設定シナリオの中から、選択された一つの設定シナリオをテンプレートとしてシナリオDB600から読み出す。設定シナリオが選択されると、シナリオ編集部502が、
図10に例示するように、設定シナリオを編集するためのGUIインタフェースを起動させる。
シナリオ編集部502は、読み出された設定シナリオに対して、ユーザの操作に応じた編集を加える。設定シナリオの編集には、作業部品の追加や削除、作業部品に含まれるパラメータの変更、作業部品の順序の変更などが含まれうる。
【0069】
より具体的には、
図10に例示するように、通信機器9の設定手順に従い、「シナリオ部品ウインドウ」より、必要な作業部品を「エディタウインドウ」の「シナリオ部」にドラッグ&ドロップすることで容易に設定シナリオを組み合わせることができる。
「シナリオ部」に登録された作業部品は、任意の順番にドラッグ&ドロップすることで設定シナリオにおける順番を変更することができる。また、不要な作業部品については、「エディタウインドウ」の「ゴミ箱」にドラッグ&ドロップすることで容易に設定シナリオから削除できる。
「シナリオ部」に登録した作業部品には、「受信マーカー」と「送信マーカー」、「作業名称」が用意されている。「受信マーカー」と「送信マーカー」は、作業手順で相互に必要なパラメータ数値がある場合、ここでフラグ設定することで各作業部品間でのパラメータ数値の引渡が可能になる。また、送受信関係は、1対1もしくは1対nの対応が可能である。
「作業名称」は、作業部品による作業内容を入力することができる。実際に入力した作業名称は、機器設定装置2上で実行形式型の設定シナリオを起動した後に表示される「自動実行ウインドウ」の「作業工程部」に表示されるボタン名として表示される。
作業部品毎に、通信機器9に投入するコマンドを指定することができる。「作業部品パラメータ設定部」の「コマンド欄」から、作成したテキストファイル「Setテキスト」を選択することで作業部品毎に関連付けを行う。
また作業部品毎に作業の予測時間を設定することができる。予測時間は、各部品を選択した時、「作業部品パラメータ設定部」の「作業予測時間」において、目安となる所要時間(予測時間)を入力することで設定できる。予測時間は、予めシステム内に組込まれており、ユーザが編集することも可能である。予測時間は、機器設定装置2上で実行形式型の設定シナリオを起動した後に、「自動実行ウインドウ」の「作業予測時間表示部」、及び「作業進捗メーター部」に表示される。
なお、設定シナリオのテンプレートを選択した場合は、予め必要な作業部品がセットされている状態で、「エディタウインドウ」の「シナリオ部」に表示される。
【0070】
なお、設定シナリオの前後の固定作業(PCの状態確認、変更、復元)に対する作業部品は標準実装とし、上位権限者のみが編集可能な項目としている。そのため一般のユーザ(例えば、シナリオ作成者)は変更することができない。
他の作業部品も標準実装しているが、シナリオ作成者で編集可能項目になっている。
作成した設定シナリオは、新規に名前を付けての保存や別名保存することでシナリオDB600に登録される。
【0071】
ステップ120(S120)において、ユーザは、設定作業に必要な作業部品が不足している場合に、S130の処理に移行し、作業部品が不足していない場合に、S140の処理に移行する。
【0072】
ステップ130(S130)において、作業部品管理部520は、ユーザの操作に応じて、作業部品の新規作成を行う。作業部品の新規作成は、既存の作業部品をカスタマイズするものでもよいし、コマンドの指定も含めて新規に作成されてもよい。
ここで、
図11に例示するように、部品DB610の目的は、プログラム言語の動作の仕組みを知らなくても準備されたコマンドラインの組合せで容易に対象機器を自動設定するための仕組を作成できる点にある。1つの作業部品は、「作業手順62」と、相互の作業部品と連携するための「受信マーカー61」及び「送信マーカー63」とで構成されている。作業手順をプログラム化する工程において、開発工程の標準化と効率化を行うために、「コマンドライン64」を関数としてモジュール化しており、「作業手順62」内においては、各手順が本来数百行必要でも1行のコマンド構成で組める様にしている。
「作業手順62」内で取得したパラメータを「送信マーカー63」に引き渡すことで、他の作業部品の「受信マーカー61」で受け取ることができる。この引渡の設定については、シナリオ編集部502によりGUIを介して設定することができる。これにより、個々の作業部品を修正することなく取得したパラメータ数値の引渡が可能である。
【0073】
ステップ140(S140)において、変換部530は、シナリオ管理部500により作成された設定シナリオに従って、複数の作業部品を配列し、実行形式型の設定シナリオを作成する。
【0074】
ステップ150(S150)において、シナリオ実行部540は、変換部530により作成された実行形式型の設定シナリオを実行する。なお、ユーザは、作業前に、機器設定装置2と対象機器である通信機器9を必要なケーブル(シリアルケーブル82、LANケーブル80)を用いて接続する必要がある。
シナリオ実行部540が実行形式型の設定シナリオを実行すると、
図12に例示する「自動実行ウインドウ」が立ち上がる。
「自動実行ウインドウ」は、「基本情報表示部」、「作業予測時間表示部」、「作業進捗メーター部」、「設定情報表示部」、及び「作業工程表示部」で構成される。「作業予測時間表示部」には、各作業部品に設定されている作業終了までの予測時間の合計時間が表示される。ただし、設定作業を一時中断し途中から再開した場合は、全体の予測時間から完了分を引いた時間が表示される。「作業進捗メーター部」では、進捗管理部550により管理されている進捗状況に応じて、完了した作業に応じて埋まっていき、すべて完了で100%表示になる。
【0075】
図13は、シナリオ実行部540により実行される実行形式型の設定シナリオを模式的に説明する図である。
図13に例示するように、ユーザが機器設定装置2で、
図12の「自動実行ウインドウ」の「作業工程表示部」の一番上の「自動シナリオボタン」を押すと、設定したシナリオ実行フローに従いシナリオが実行される。
シナリオ実行フロー内には、機器設定装置2の環境を変更するための作業部品として、「環境変更(退避)」及び「環境変更(復元)」が含まれている。
作業部品「環境変更(退避)」は、UWSC(Windows自動化ツール)の機能を使い、自動的に機器設定装置2の各設定(IPアドレス/サブネットマスク/デフォルトゲートウェイ/プライマリDNS/セカンダリDNS/スクリーンセーバー種類/電源オプション/スリープ)画面を開き、設定管理部580と協働して、該当する設定情報を確認して、機器設定装置2のPC名及び製造号機と関連付けて設定格納部630にデフォルト値として格納する。格納後、設定変更する作業部品が、設定管理部580と協働して、設定格納部630より自動実行に必要な環境情報を読込み、機器設定装置2上の設定を自動的に変更する。また設定作業に必要なターミナルソフトウェアやファイル転送ソフトウェアがインストールされていない場合は、UWSCの機能を使い自動的にインストールを実施する。
【0076】
なお、例えば、保守作業において保守作業員からサポート要員への経過報告は必須手順であるが、報告タイミングが多いと保守作業員の負荷が増加して本来の作業に集中できなくなることに起因する作業ミスを誘発したり、作業に没頭することによる経過報告忘れが発生したりする可能性がある。これらのミスを防止するため、設定シナリオの実行中は、通知部570が、進捗管理部550により管理されている進捗状況を自動的に通知する。通知のタイミングは、設定シナリオの作成時に任意の場所(作業開始時/各工程終了時/作業終了時/エラー発生時/指定時間指定)に組込むことができるため、指定したタイミングでの通知や保守作業員のオペレーションが必要なタイミングを事前に通知することができ、保守作業員の負担を軽減できる。
なお、通知については、機器設定装置2の表示装置208の画面にメッセージとしてポップアップ表示することや、サポート要員や保守作業員など指定先へメールで通知することができる。通知のタイミングについては、
図10の「作業部品パラメータ設定部」で設定シナリオの作成時にシナリオの任意の場所に設定できる。
【0077】
作業部品「環境変更(復元)」は、通信機器9のすべての設定が完了した後、作業部品「環境変更(退避)」で設定格納部630へ格納したデフォルト値を、UWSC(Windows自動化ツール)の機能を使い、設定格納部630より読み出し、読み出されたデフォルト値(設定情報)に基づいて機器設定装置2を元の設定状態に復元する。復元時には、機器設定装置のPC名及び製造号機を再取得して退避したデフォルト値の当該項目と照合して参照するため、誤って違う設定情報を適用することはない。また、作業部品「環境変更(復元)」は、インストールしたターミナルソフトウェアについてもUWSCの機能を使い自動的にアンインストールする。
【0078】
通信機器9の自動設定開始から終了までの間、機器設定装置2の入力操作を制限するため、入力装置210のオペレーション(キーボード入力、マウスボタン操作など)をロックする機能が装備されている。
また設定シナリオの実行中に保守作業員にオペレーションを促す際は、入力ロック部560が、ロック機能を解除し、オペレーション終了後に作業完了を示すウインドウへ完了の信号(OKボタンの押下など)を送ることで、再度自動的にロック機能を再開させる。ロックの解除タイミングは、
図10の「作業部品パラメータ設定部」でシナリオ作成時に任意のシナリオの場所に設定できる。
設定シナリオの自動実行中は、終了した作業工程のボタンを無効化およびグレーアウトすることで、保守作業員が作業進捗を目視確認できる機能を装備している。
操作管理部548は、シナリオ自動実行中の入力操作を、すべてタイムスタンプと一緒に記録する機能を有しており、自動設定終了後に作業ログ(テキストファイル)として機器設定装置2上に保管している。
【0079】
設定シナリオの自動実行中に発生する待ち時間を有効に活用するため、機器設定装置2の画面に文字や画像、動画で保守作業員またはお客様に向けてサイネージ表示する機能を装備している。例えば、案内画像表示部578は、「お客様が画面を見た際に一目で状況がわかるよう現状の進捗状況と完了予測時間」を文字で表示してもよいし、「保守作業員がお客様へ進捗報告する内容」を文字で表示してもよいし、「予め作成された自社製品の広告」を動画で表示してもよい。また、案内画像表示部578は、「保守完了報告書の書き方サンプル」を画像で表示してもよい。このように、案内画像表示部578は、設定シナリオの自動実行中に、様々な内容を設定シナリオの進捗状況に合わせたタイミングで表示することができる。サイネージ表示の指定タイミングについては、
図10の「作業部品パラメータ設定部」でシナリオ作成時に任意のシナリオの場所に設定できる。
【0080】
図14は、コマンド送信とその応答検知処理(S20)を説明するフローチャートである。
図14に示すように、ステップ200(S200)において、シナリオ実行部540は、実行形式型の設定シナリオからパラメータを1行読み込む。より具体的には、シナリオ実行部540は、設定シナリオに紐付けられたSetテキストファイルのテキストデータを1行読み込む。Setテキストファイルには、要素1として「区分」、要素2として「コマンド」、要素3として「待機文字」、要素4として「待機時間」が1行に含まれている。
【0081】
ステップ205(S205)において、シナリオ実行部540は、読み出されたパラメータを入力関数に引き渡す。
ステップ210(S210)において、コマンド送信部542は、入力関数に従って、コマンドを通信機器9に送信する。より具体的には、コマンド送信部542は、Tera Termなどのターミナルソフトウェアを介して、引き渡された「コマンド」(要素2)を実行する。
【0082】
ステップ215(S215)において、応答検知部544は、コマンド送信部542によりコマンドが送信されたタイミングから、時間の計測を開始し、コマンド送信後にターミナルソフトウェアの画面が変化するまで待機する。
ステップ220(S220)において、応答検知部544は、ターミナルソフトウェアの画面が変化すると、既定の文字列を検索する。より具体的には、応答検知部544は、ターミナルソフトウェアの画面におけるコマンドの位置を保持しており、保持された位置の後方で、「待機文字」(要素3)を検索する。
【0083】
ステップ225(S225)において、シナリオ実行部540は、既定の文字列が発見された場合に、S240の処理に移行し、既定の文字列が発見されなかった場合に、S230の処理に移行する。
【0084】
ステップ230(S230)において、シナリオ実行部540は、コマンド送信から既定の時間(要素4の「待機時間」)が経過したか否かを判定し、既定の時間が経過した場合に、S235の処理に移行し、既定の時間が経過していない場合に、S220の処理に戻る。
ステップ235(S235)において、エラー通知部546は、設定シナリオの自動実行中にエラーが発生した旨を通知部570に出力し、ユーザに通知させる。
【0085】
ステップ240(S240)において、シナリオ実行部540は、読み込まれたパラメータが最終行であるか否かを判定し、最終行である場合には、処理を終了し、最終行ではない場合に、S200の処理に戻って、次のパラメータについて処理を行う。
【0086】
このように、応答検知部544は、ターミナルソフトウェアの画面に表示される文字列に基づいて、コマンド実行の応答を検知し、コマンド送信部542は、応答検知部544により前のコマンドの応答が検知されたことを条件として、自動的に次のコマンドを実行する。
【0087】
図15は、アプリケーション起動の応答検知処理(S30)を説明するフローチャートである。
図15に示すように、ステップ300(S300)において、シナリオ実行部540は、実行形式型の設定シナリオからパラメータ(アプリケーションの起動を指示するもの)を1行読み込む。パラメータには、起動するアプリケーションを指定する情報と、アプリケーションのウインドウタイトルに表示される文字列と、待機時間が含まれている。
【0088】
ステップ305(S305)において、コマンド送信部542は、パラメータに従って、アプリケーションを起動させるコマンドを出力する。より具体的には、コマンド送信部542は、UWSCを介して、アプリケーションを起動させる「コマンド」を実行して、機器設定装置2上でアプリケーションを起動させる。アプリケーションは、例えば、通信機器9の設定作業又は保守作業に用いるソフトウェアである。
【0089】
ステップ310(S310)において、応答検知部544は、コマンド送信部542によりコマンドが送信されたタイミングから、時間の計測を開始し、コマンド送信後に画面が変化するまで待機する。
ステップ315(S315)において、応答検知部544は、画面が変化すると、アクティブウインドウのウインドウタイトルで既定の文字列を検索する。
【0090】
ステップ320(S320)において、シナリオ実行部540は、既定の文字列がウインドウタイトルで発見された場合に、S335の処理に移行し、既定の文字列がウインドウタイトルで発見されなかった場合に、S325の処理に移行する。
【0091】
ステップ325(S325)において、シナリオ実行部540は、コマンド送信から既定の時間(「待機時間」)が経過したか否かを判定し、既定の時間が経過した場合に、S330の処理に移行し、既定の時間が経過していない場合に、S310の処理に戻る。
ステップ330(S330)において、エラー通知部546は、設定シナリオの自動実行中にエラーが発生した旨を通知部570に出力し、ユーザに通知させる。
【0092】
ステップ335(S335)において、シナリオ実行部540は、アクティブウインドウのウインドウIDを取得し、取得されたウインドウIDを出力値とする。取得されたウインドウIDは、起動したアプリケーションの自動操作に用いられる。
【0093】
このように、応答検知部544は、アクティブウインドウのウインドウタイトルに既定の文字列が表示されたことに基づいて、起動指示したアプリケーションが正常起動したことを検知する。
【0094】
以上説明したように、本実施形態の機器設定装置2によれば、対象機器の設定作業や保守作業において、自動化設定ツールを使用することで、作業時間の短縮、設定漏れの削減、入力ミスの削減、確実な進捗報告が行える。これにより、作業品質の向上が期待できる。特に、作業時間に制約があり手作業では作業時間が超過してしまう場合や作業内容が複雑で手作業ではミスが起きやすい作業に対し、高い効果が期待できる。
【0095】
[変形例1]
次に、上記実施形態の変形例を説明する。
図16は、変形例1における機器設定装置2の機能構成を例示する図である。なお、本図に示された各構成のうち、
図3、
図4又は
図5に示された構成と実質的に同一のものには同一の符号が付されている。
図16に例示するように、変形例1の機器設定装置2では、ホスト側に、ホスト側設定プログラム50がインストールされ、仮想マシン側に、仮想マシン側設定プログラム52がインストールされる。すなわち、変形例1の機器設定装置2は、少なくともシナリオ実行部540を含む一部の機能を、仮想マシン上で実現する。
【0096】
本変形例では、ホスト側設定プログラム50は、シナリオ管理部500、コマンド管理部510、作業部品管理部520、仮想マシン起動部590、及びスリープ設定部588を有する。
仮想マシン起動部590は、少なくとも一つの仮想マシンを構築する。仮想マシン起動部590は、本発明に係る仮想マシン構築部の一例である。例えば、仮想マシン起動部590は、機器設定装置2のリソース上に仮想マシンを構築してもよいし、クラウドなどの外部リソース上に仮想マシンを構築してもよい。本例の仮想マシン起動部590は、並行して設定作業する対象機器の台数分だけ、機器設定装置2のリソース上に仮想マシンを起動させる。これに応じて、機器設定装置2において、ネットワークIF206が増設されることが好ましい。
スリープ設定部588は、いずれかの仮想マシンにおいて設定シナリオが実行されている場合に、いずれの仮想マシンにおいても設定シナリオが実行されていない場合よりも、機器設定装置2がスリープ状態に移行する時間を長く設定する。本例のスリープ設定部588は、いずれかの仮想マシンにおいて設定シナリオが実行されている場合に、スリープ状態に移行する時間を無限大にして、スリープ状態への移行を禁止する。
【0097】
本例の仮想マシン側設定プログラム52は、変換部530、シナリオ実行部540、進捗管理部550、入力ロック部560、通知部570、及び設定管理部580を有する。
入力ロック部560は、シナリオ実行部540が仮想マシン上で設定シナリオを実行している場合に、設定シナリオの進捗状況に応じて、この仮想マシンにおける入力操作の受付のみを禁止する。
通知部570は、仮想マシン上で実行されている設定シナリオの進捗状況に応じて、ホスト側に通知を行う。より具体的には、変形例1の手動操作通知部574は、仮想マシン上で実行されている設定シナリオの進捗状況に応じて、手動操作が必要なタイミングをホスト側に通知する。手動操作が必要なタイミングでは、入力ロック部560は、この仮想マシンにおける入力ロックを一時的に解除する。
【0098】
変形例1では、ホスト側と仮想マシン側とで共有される共有記録領域60が設けられている。
シナリオDB600、部品DB610、コマンドDB620、及び設定格納部630は、共有記録領域60内に構成され、ホスト側設定プログラム50及び仮想マシン側設定プログラム52の各構成によってアクセス可能である。
【0099】
変形例1では、上記構成によって、ホスト側で設定シナリオを作成し、作成された設定シナリオは、仮想マシン側で実行形式型の設定シナリオに変換され、シナリオ実行部540により自動実行される。なお、本変形例では、対象機器毎に仮想マシンが構築され、仮想マシンそれぞれが対象機器の環境に応じて設定されるため、ホスト側の設定情報を退避させたり復元したりする必要が無い。
【0100】
変形例1の機器設定装置2によれば、設定シナリオの自動実行中であっても、ホスト側で並行して別の作業を行うことができる。また、ホスト側と仮想マシン側で分離されるため、セキュリティ上好適である。すなわち、機器設定装置2の仮想マシン側だけが、対象機器と同じネットワークにアクセスしてコマンドの送信等を行い、ホスト側は、対象機器と通信する必要がない。さらに、設定作業の対象機器が複数台存在する場合でも、複数の仮想マシンを構築することによって、複数の対象機器に対して並行して設定作業を実施することができる。そもそも、設定作業をリモートで指示する設定方法では、機器設定装置2のコンピュータリソースをそれほど必要とせず、待ち時間が多く発生するため、設定作業の並列化は好適である。