JP2008046847A - アダプタ生成装置、方法およびプログラム - Google Patents

アダプタ生成装置、方法およびプログラム Download PDF

Info

Publication number
JP2008046847A
JP2008046847A JP2006221572A JP2006221572A JP2008046847A JP 2008046847 A JP2008046847 A JP 2008046847A JP 2006221572 A JP2006221572 A JP 2006221572A JP 2006221572 A JP2006221572 A JP 2006221572A JP 2008046847 A JP2008046847 A JP 2008046847A
Authority
JP
Japan
Prior art keywords
character string
information
unit
script
connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006221572A
Other languages
English (en)
Other versions
JP4869831B2 (ja
Inventor
Masaru Miyoshi
優 三好
Yoshihiro Ootsuka
祥広 大塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2006221572A priority Critical patent/JP4869831B2/ja
Publication of JP2008046847A publication Critical patent/JP2008046847A/ja
Application granted granted Critical
Publication of JP4869831B2 publication Critical patent/JP4869831B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】オペレータの操作ログから、NMSのインタフェースアダプタとして利用されるスクリプトを生成するアダプタ生成装置、方法およびプログラムを提供する。
【解決手段】アダプタ生成装置は、NMSが用いる設定機能であり対象NEごとに仕様が異なるアダプタ部(スクリプトファイル)を自動生成するために、オペレータのCLI上の操作をキャプチャする機能、スクリプトとして必要最低限の情報のみを表示する機能、その情報を用いて装置にて操作を再現する機能、テキストで表示されたコマンドや応答条件を画面上で変更する機能、変更されたスクリプトを実行する機能、本発明装置専用の見易さを重視したスクリプトを汎用のスクリプトフォーマットに変換しアダプタを生成する機能、対象装置のコンフィグレーションファイルを取得するバックアップ機能、本発明装置を接続したIPネットワークの構成を検出する機能を有する。
【選択図】図1

Description

本発明は、ネットワーク管理装置およびネットワーク管理プログラムに関し、特にTelnet、FTP(File Transfer Protocol)、SSH(Secure SHell)などのユーザ名およびパスワードなどを必要とするCLI(Command Line Interface)上で、ユーザと機器との対話型の通信を行なう通信プロトコルを用いた接続装置、情報取得や装置に対するパラメータ設定試験を行なう装置の技術に関する。
従来、インターネットに代表される通信ネットワークを構成するルータやスイッチといったNetwork Element(またはNetwork Equipment。以下NEとする)に対して、情報収集やパラメータ設定、動作確認試験といった管理を実行するNetwork Management System(以下NMSとする)では、対象の機器であるNEに対してCLIを通じてコマンド送信などを実行する機能が存在する。
また、対象の機器が様々なベンダから構成される複数種別の機器から構成される場合、それぞれに異なるインタフェース仕様に合わせて送信するコマンド文字列や接続するプロトコルを変更する。
ここで、各機種特有の処理機能は、PerlやExpectのようなスクリプトである簡易で柔軟な言語(汎用言語)で記述され、管理システムであるNMSが対象NEを決定し、決定された対象NEに合わせたスクリプトを選択し実行する方法が知られている。これらのスクリプトを、NMSのインタフェースアダプタと呼ぶ。インタフェースアダプタの製造方法についてはスクリプトのコーディングのほか、既存の記述が用いられている(非特許文献1および特許文献1参照)。
一方、NEに対して起動・再起動・停止、各種パラメータ追加・変更・削除、情報収集、といった運用作業を行なうために、ネットワーク運用者はTelnet、FTP、SSHといった通信プロトコルを用いて自端末からNEに接続し、CLI上でコマンドを実行し、NEからの応答を確認する。
これらの作業には、情報取得や機器の動作確認試験など、例えば、1日に1回、1時間に1回と定期的に同様の操作を行なうルーチンワークが含まれる。
これらのルーチンワークとなる操作に対し、スクリプト言語や通信ソフトなどの特定のソフトウェアで動作するマクロやシェルスクリプトのコードに、一連の処理を記述しておくことで、一連の処理を一つのコマンド処理で実行することや、タイマーを設定して特定の時間に動作させ、スケジューリングにより何度も同じ操作を実行させるといったことが簡単に行なうことができる。
しかしながら、上述のようなマクロやスクリプトのコードを記述するためには、スクリプト言語や通信ソフトなどの特定のソフトウェアで動作するマクロのコードに関する知識が必要である。これらのマクロコードを記述するにはネットワーク運用に必要なCLI上の操作手順とは異なった知識が必要となるため、知識を持たないネットワーク運用者がコードを書くことは難しい。
また、ネットワーク運用者が知識を持っている場合でも、その場で実現したいルーチンワークのスクリプト記述を行なうために、スクリプトの文法などの記述ルールを調べる手間がかかる。
また、ネットワーク運用者がスクリプトやマクロコードを記述できた場合においても、記述したコードを実際のNEに対して実行し、その結果が期待通りであることを確認しなければ、実際の業務に用いることはできない。
そのため、スクリプトやマクロコードを実際の業務に用いるためには、スクリプトやマクロコードの開発ステップと、実際のNEに対する試験ステップとの、2つのステップが必要となる。
そこで、ネットワーク運用者のコマンド処理とその応答の一部を記録し、スクリプトと同様のテキストフォーマットで表示することで、オペレータに見やすい処理記録スクリプトを生成し、その処理記録スクリプトを前述のスクリプトやマクロコードと同様に利用することができる技術が、例えば、非特許文献2に記載される技術として知られている。
この場合、実際のネットワーク運用者の処理からスクリプトが生成されるため、試験を行なう必要はなく、上述の問題が解決できる。
NTT技術ジャーナルVol.17 No.8,2005年8月号,pp.14〜17,インタフェース触診・調合技術,三好優,木村辰幸 特開2006−72806号公報 http://www.dar.cojp/product/SNMP/DA/index.html インターネット(2006/5/31確認) Digital Architect社Webページ,Device Authority:デバイスオーソリティ〈ネットワークデバイスの資産管理、一括自動設定変更ツール〉
しかしながら、非特許文献2に示される技術においても、ネットワーク運用者のコマンド処理から生成できるスクリプトは、一連の実際の処理がシーケンシャルに記録されるだけであることから、以下の(ア)から(エ)に示す例のような、高度な応用が出来ないという問題点がある。
(ア)NEの応答によって次に実行するコマンドを変更すること(分岐処理記述の追加)が出来ない。
例)NEのCPU使用率を検出するコマンドのあと、80%以上ならばアクセス制限を行なうコマンドを実行するが、80%未満ならばコマンドを実行しないで処理を終了する、ことが出来ない。
(イ)コマンドを送信する前に明示的に待ち時間を設定すること(待ち時間処理記述の追加)が出来ない。
例)1分間で受信したパケット数を計測するために、受信パケット数を表示するコマンドを実行したあと1分間明示的に待ち状態とし、再度同じコマンドを実行することが出来ない。
(ウ)コマンド送信後、NEからの応答待ち時間を設定すること(タイムアウト時間処理記述の追加)が出来ない。
例)コマンド送信後、応答が10秒なかった場合、NEとの接続を切断することが出来ない。
(エ)外部アプリケーションから実行される場合に、特定のパラメータを受け、同時に実行すること(外部引数処理の追加)が出来ない。
例)外部アプリケーションが、IPアドレス192.168.1.1を送信し、そのIPアドレス192.168.1.1が付けられたインタフェースであるEhternet0に関するトラヒックやルーティング情報、アクセスリストの情報を取得することが出来ない。また、外部アプリケーションは送信するIPアドレスを変更することによって実行する対象となるインタフェースを変更することが出来ない。
また、ルーチンワークにおいて、ネットワーク運用者はNEの応答に関わらず、上記の(ア)から(エ)に示す例のような処理を行なうことが多い。
しかし、多くの場合、NEの応答により、複数の選択肢から次の処理を決定する高度な作業が存在する。これらの判断を反映したスクリプトは、上記非特許文献2に示されるようなシーケンシャルな実行記録だけではなく、複数の処理記述が必要であるため、生成できない。
つまり、単一の状況の実行は簡単化し、正常に実行できるが、与えられたパラメータや応答に対して処理を変更できないため、柔軟性を欠くという問題がある。
また、対象となる機器の種別や、種別が同じ機器でも開発ベンダが異なる機器群が混在するネットワーク環境においては、機器ごとにインタフェースアダプタを用意する必要があるという問題がある。例えば、管理システムに一つの機能を追加するだけでも、インタフェースアダプタとなるスクリプトファイルは機器の種別の数だけ開発が必要となる。
また、機器側のOSの更新や機能の追加による仕様変更や、新しい機器の導入といったネットワークの増改築によってもNMSのインタフェースアダプタを作成しなければならないという問題がある。
スクリプト言語によって記述されるインタフェースアダプタの作成には、やはりスクリプト言語の実装知識が必要となるため、開発者にはネットワーク管理とは異なるスキルが必要となる。
結果、上記のような機器やネットワーク構成の変更に合わせ、その場で(オンサイト)で対応するインタフェースアダプタを構築し、利用するといった柔軟性を持っていないという問題がある。
本発明は、このような事情に鑑みてなされたもので、その目的は、オペレータの操作ログから、NMSのインタフェースアダプタとして利用されるスクリプトを生成するアダプタ生成装置、方法およびプログラムを提供することにある。
この発明は上述した課題を解決するためになされたもので、請求項1に記載の発明は、端末とネットワークを介して接続されるアダプタ生成装置であり、ユーザより入力された第1の文字列を送信する入出力手段と、前記入出力手段から受信した第1の文字列を前記端末に送信し、前記送信した第1の文字列の応答である第2の文字列を前記端末から受信し、前記受信した第2の文字列を前記入出力手段に送信する送受信手段と、前記第1の文字列と前記第2の文字列とを取得するキャプチャ手段と、前記取得した第2の文字列と前記第1の文字列とを関連付けて、前記端末へ文字列を送信するためのスクリプトを生成するスクリプト生成手段と、を有することを特徴とするアダプタ生成装置である。
請求項2に記載の発明は、同一の処理に対するスクリプトの記述と汎用的に用いられる汎用言語による記述とを関連付けて変換ルールとして予め記憶している変換ルール記憶手段と、前記生成したスクリプトを前記変換ルールに基づいてアダプタ言語の記述に変換することにより、前記端末へ文字列を送信するための汎用言語により記述されるアダプタファイルを生成するアダプタ生成手段と、を有することを特徴とする請求項1に記載のアダプタ生成装置である。
請求項3に記載の発明は、汎用言語により記述される文字列の記述と追加的な制御を実行するための文字列の記述である追加挿入可能記述とを関連付けてアダプタ追加パターンファイルルールとして予め記憶しているアダプタ追加パターンファイルルール記憶手段を有し、前記アダプタ生成手段が、前記アダプタファイルの記述から文字列の記述を検出し、前記検出した文字列の記述に基づいて前記アダプタ追加パターンファイルルールから追加挿入可能記述を抽出し、前記抽出した追加挿入可能記述を表示し、前記表示した追加挿入可能記述の中から選択された追加挿入可能記述を前記アダプタファイルに追記する、ことを特徴とする請求項1または請求項2に記載のアダプタ生成装置である。
請求項4に記載の発明は、前記スクリプトまたは前記アダプタファイルに基づいて、前記端末へ文字列を送信する自動実行手段、を有することを特徴とする請求項1から請求項3に記載のアダプタ生成装置である。
請求項5に記載の発明は、端末のシステム情報と関連付けて前記端末と接続するための接続情報を予め記憶する接続情報記憶手段と、接続先の端末を指定する接続先情報を受信する接続先入力手段と、前記接続先入力手段の受信した接続先情報に基づいて、前記接続先情報の端末に関するシステム情報を検出するプロダクト検出手段と、前記プロダクト検出手段が検出したシステム情報と関連する接続情報を前記接続情報記憶部から選択し、前記選択した接続情報に基づき前記接続先情報の端末へ接続するログイン手段と、を有することを特徴とする請求項1から請求項4に記載のアダプタ生成装置である。
請求項6に記載の発明は、前記ログイン手段が、前記選択した接続情報を識別する接続情報識別情報を前記スクリプト生成手段に送信し、前記スクリプト生成手段が、前記ログイン手段から受信した接続情報識別情報に基づいた記述を前記スクリプトファイルまたはアダプタファイルに記述し、前記自動実行手段が、前記スクリプトファイルまたはアダプタファイルの前記接続情報識別情報に基づいた記述により、前記接続情報識別情報を前記ログイン手段に送信し、前記ログイン手段が、前記自動実行手段から受信した接続情報識別情報に基づいて、接続情報を前記接続情報記憶部から選択し、前記選択した接続情報に基づき前記接続先情報の端末へ接続する、ことを特徴とする請求項5に記載のアダプタ生成装置である。
請求項7に記載の発明は、前記端末の設定情報を保存するためのNEコンフィグファイル記憶手段と、前記端末に接続し、前記接続した端末の設定情報を前記端末から取得し、前記取得した設定情報を前記NEコンフィグファイル記憶手段に保存するバックアップ手段と、前記NEコンフィグファイル記憶手段に保存される設定情報に基づいて端末に接続し、前記接続した端末の設定情報を、前記設定情報に基づいて変更するロールバック手段と、を有することを特徴とする請求項1から請求項6に記載のアダプタ生成装置である。
請求項8に記載の発明は、前記アダプタ生成装置のIPアドレスの情報と検索するIPアドレスの範囲の情報とシードデバイスのIPアドレスの情報とに基づき、ネットワーク上の端末を検出するディスカバリ手段、を有することを特徴とする請求項1から請求項7に記載のアダプタ生成装置である。
請求項9に記載の発明は、端末とネットワークを介して接続されるアダプタ生成装置で用いられるアダプタ生成方法であり、入出力方法が、ユーザより入力された第1の文字列を送信する入出力過程と、送受信方法が、前記入出力方法から受信した第1の文字列を前記端末に送信し、前記送信した第1の文字列の応答である第2の文字列を前記端末から受信し、前記受信した第2の文字列を前記入出力方法に送信する送受信過程と、キャプチャ方法が、前記第1の文字列と前記第2の文字列とを取得するキャプチャ過程と、スクリプト生成方法が、前記取得した第2の文字列と前記第1の文字列とを関連付けて、前記端末へ文字列を送信するためのスクリプトを生成するスクリプト生成過程と、を有することを特徴とするアダプタ生成方法である。
請求項10に記載の発明は、端末とネットワークを介して接続されるコンピュータに、ユーザより入力された第1の文字列を送信する入出力手段と、前記入出力手段から受信した第1の文字列を前記端末に送信し、前記送信した第1の文字列の応答である第2の文字列を前記端末から受信し、前記受信した第2の文字列を前記入出力手段に送信する送受信手段と、前記第1の文字列と前記第2の文字列とを取得するキャプチャ手段と、前記取得した第2の文字列と前記第1の文字列とを関連付けて、前記端末へ文字列を送信するためのスクリプトを生成するスクリプト生成手段と、の機能を実行させるアダプタ生成プログラムである。
この発明によれば、設定処理記録を行なう機能により、ネットワーク管理者が特定のスクリプト言語やマクロコードの記述方法に関する知識を持たずとも、システムがネットワーク管理者の操作からスクリプト言語やマクロコードの生成と同様の記述を生成し、さらに、設定処理記録補助を行なう機能により、該記述に条件分岐処理や、待ち時間を指定する処理といった、シーケンシャルに進められるネットワーク管理者の処理記録からは生成できない記述を利用者(ネットワーク運用者)の簡易な操作や既存文からの自動置き換えにより、追記し、アダプタを生成することができるという効果を奏する。
また、本発明によれば、外部パラメータをスクリプトの動作内容に反映するために、処理コマンドの一部を特定の定義文字に置き換え、外部アプリケーションからの実行依頼を、パラメー夕の内容によって柔軟に変更することができるという効果を奏する。
また、本発明によれば、視認性を維持するための表示部と実行に必要なコードを処理する実行部を有するだけでなく、その表示スクリプトを既存の汎用スクリプト言語フォーマットに変換することができるという効果を奏する。
以下、図面を参照して、本発明の実施の形態について説明する。図1は、この発明の一実施形態によるアダプタ生成装置の構成を示す概略ブロック図である。
アダプタ生成装置1は、NE2とネットワークNW3とを介して接続されている。また、ユーザAは、アダプタ生成装置1を用いて、NE2との通信や処理を実行する。
なお、ユーザAとは、オペレータ、ネットワーク管理者、操作者などのユーザである。
まず、アダプタ生成装置1において、スクリプトを生成するためのブロックについて説明する。
CLI部131は、従来の特定の通信ソフトや特定のOS(オペレーティングシステム)上でのCLIによるコマンドプロンプトと同様に、仮装端末として、ユーザAから入力される送信コマンドを表示し、NE2の応答情報を表示する機能を有する。
GUI部101は、CLIやスクリプトファイルをコンポーネントとして格納し、入力や表示をユーザAに提示する機能を持つ。
GUI部101は、表示装置と入力装置とを有しており、ユーザAが入力した入力情報を、または、ユーザAが確認するための出力情報を、表示装置を介してユーザAへ表示する機能を有する。また、GUI部101は、ユーザAが入力装置を用いて入力した入力情報を受信する機能を有する。
ここで、例えば、表示装置とはCRT(Cathode Ray Tube)や液晶表示装置等であり、入力装置とはキーボードやマウス等の入力デバイスのことである。
実施の形態においては、CLI部131によるCLIの表示および入力と、GUI部101によるGUIの表示および入力とがある。図2を用いて、この関係を説明する。
図2に示されるように、GUIの中に、対象選択画面、ファイルツリー画面、スクリプト表示画面、CLIコンソールがある。実施の形態においては、このように、GUIの一部にCLIがある。
一般的には、ユーザAは、GUIにおいてはマウスを用いて選択や入力の操作をし、GUI上のCLI部分をマウスで選択した後、CLIにおいてキーボードでコマンドなどを入力し、NE2との接続やNE2での処理を実行する。
図1のアダプタ生成装置1の説明に戻り、NE−IF部132は、GUI部101またはCLI部131から入力されたユーザAからの入力に基づいて、TelnetやFTP、SSHといったプロトコルでNE2と接続し、NE2へコマンドを送信し、NE2からの応答を受信する機能を有する。
キャプチャ部141は、NE−IF部132とCLI部131との間で送受信される文字列情報を取得する機能を有する。例えば、キャプチャ部141は、ユーザAがCLI部131に入力しNE−IF部132を介してNE2へ送信する送信文字列(コマンド)と、送信した文字列の応答であるNE2から受信する応答文字列とを、取得する。
なお、文字列とは、複数の文字からなるものであり、改行などの制御文字を含んでもよい。
なお、キャプチャ部141は、NE−IF部132とCLI部131との間で送受信される文字列情報を取得するため、キャプチャ部141が取得する文字列情報である送信文字列および応答文字列には、例えば通信プロトコルに関する部分はなく、ユーザAがCLI部131により入力した文字列、NE−IF部132がCLI部131の表示装置に表示する文字列、および、リターンキーや改行コードの情報が含まれる。
また、キャプチャ部141は、取得した送信文字列および応答文字列である文字列情報を、ログとしてログ記憶部151に保存する機能を有する。
また、キャプチャ部141は、取得した送信文字列および応答文字列である文字列情報を、後述のスクリプト生成部142に送信する。
スクリプト生成部142は、キャプチャ部141が取得した文字列情報からスクリプトを生成する機能を有する。また、スクリプト生成部142は、生成したスクリプトをスクリプトファイルとしてスクリプト記憶部152に記憶する機能を有する。
スクリプト生成部142は、例えば、コマンドとNE2からの応答文字列の一部、該通信時のログインユーザ名やパスワード、プロトコル情報を明示的に記録し、スクリプトを生成し、ユーザAにGUI部101を通じて生成したスクリプトを表示させる機能を有する。スクリプト生成部142は、例えば、図2のスクリプト生成画面に、生成したスクリプトを表示する。
なお、スクリプト生成部142は、接続しているNE2を識別できる情報、例えば、NE2のIPアドレス情報などをスクリプトにファイル名として記述しておく。これにより、NE2毎に、スクリプトファイルが作成される。
スクリプト生成部142が、キャプチャ部141から受信した文字列情報からスクリプトを生成する方法は後に詳述する。
アダプタ生成部143は、スクリプト記憶部152に保存されたスクリプトファイルからスクリプトファイルを選択し、選択したスクリプトファイルの情報を、本発明による装置がない環境においてもユーザAが実行した処理内容を再実行させることができるExpectなど汎用のスクリプト言語フォーマット(汎用言語)に、変換ルール記憶部155に予め記憶される変換ルールに基づいて変換し、変換したスクリプトファイルをアダプタファイルとしてアダプタファイル記憶部153に保存する機能を有する。
また、アダプタ生成部143は、処理内容の自動変換では記述されない条件分岐やタイムアウト処理、待ち時間処理、外部APからの引き数受付処理を、アダプタ追加パターンファイルルール記憶部154に予め格納されている処理記述に基づいて、アダプタファイルに追記する機能を有する。
変換ルール記憶部155には、同一の処理に対する、スクリプト生成部142が生成するスクリプトによる記述と、Expectなどの汎用のスクリプト言語フォーマットによる記述とが、対応付けられて予め記憶されている。
例えば、図16から18に示すように、同一の処理についてスクリプトによる記述と汎用のスクリプト言語(汎用言語)による記述とが関連付けて予め保存されている。
また、同一の処理であるため、1つのコマンドを示す文字列の関連付けでもよいし、または、複数のコマンドからなる文字列との関連付けでもよい。
例えば、図16(A)に示すように、1つの処理に対して、スクリプトファイルの記述「telnet.setTimeoutSeconds(5)」と汎用言語の記述「set timeout 5」とが関連付けて記憶されている。
また、例えば、図18(B)に示すように、スクリプトファイルの記述による複数の行からなる処理に対して、汎用言語の記述の複数の行からなる処理が関連付けて予め記憶されている。
文字列パターンとは、このように、図16(A)に示すように、複数の文字列からなるものであってもよいし、図18(B)に示すように、複数の行からなる文字列であってもよい。
なお、ここでは説明のために、図16(A)では引数の5まで記述しているが、コマンド部分とそのコマンドの引数の部分とを検出できるようにし、検出したコマンド部分に対して、1つのコマンドまたは複数のコマンドのよる同一の処理に対して、スクリプトファイルの記述と汎用言語の記述とが関連付けて記憶されるようしてもよい。また、アダプタ生成部143も、コマンドと引数とを検出できるようにしてもよい。
アダプタファイル記憶部153には、アダプタ生成部143で生成された汎用スクリプト言語フォーマットで記述されたアダプタファイルが格納される。
アダプタ追加パターンファイルルール記憶部154には、アダプタファイルに追記するための、条件分岐やタイムアウト処理、待ち時間処理、外部APからの引き数受付処理などの、処理記述のパターンが予め格納されている。
自動実行部144は、GUI部101またはCLI部131による手動接続により、または後述の自動接続部171による自動接続により、アダプタ生成装置1がNE2に接続後、スクリプト記憶部152に保存されたスクリプトファイルまたはアダプタファイル記憶部153に保存されたアダプタファイルに基づいて、CLI部131とNE−IF部132とを通じて、NE2にコマンド情報を送信する機能を有する。
自動実行部144は、例えば、スクリプトファイルからコマンド情報を抜き出し、抜き出したコマンド情報をCLI部131とNE−IF部132とを通じてNE2に送信する。
なお、自動実行部144は、アダプタ生成装置1がNE2と接続した後、NE2を識別する情報、例えばNE2のIPアドレスに基づいて、スクリプトファイルを選択する。
また、自動実行部144は、NE2の応答からスクリプトファイルまたはアダプタファイルに記述された条件に合致する応答を検出し、検出に応じて次のコマンド情報を送信する機能を有する。
また、自動実行部144はタイマー部145を有しており、タイマー部145が有するタイマー機能により、例えば、予め設定された時刻に予め指定されたNE2に対し接続し、スクリプトに記述された処理を実行する機能を有する。
なお、図1においては、図の簡略のために、自動実行部144は、スクリプト記憶部152およびアダプタファイル記憶部153と直接に接続されていないが、実際には、自動実行部144はスクリプト記憶部152およびアダプタファイル記憶部153と直接に接続されており、スクリプトファイルまたはアダプタファイルをスクリプト記憶部152またはアダプタファイル記憶部153から取得することが可能である。
自動接続部171は、予め決められたログインユーザ名やパスワードを保持している接続パターン記憶部181から、NE2に応じたユーザ名やパスワードを取得し、取得したユーザ名やパスワードの情報をCLI部131を介してNE2に送信し、CLI部131を介してNE2との自動接続を実行する機能を有する。
また、自動接続部171は、NE2の機種やバージョンなどに応じて、接続する機能を有する。自動接続部171については、後に詳述される。
(記録)
次に、図3を用いて、アダプタ生成装置1がNE2と接続した後、ユーザAが入力するコマンドと、NE2からの応答を記録する概要を説明する。
図3のステップF1からステップF6を用いて、ユーザAがCLI部131とNE−IF部132を用いて実行するオペレーションを説明する。また、図3のG1からG7を用いて、ユーザAのオペレーションに基づいて、キャプチャ部141およびスクリプト生成部142が実行するスクリプトの生成について説明する。
ユーザAは、アダプタ生成装置1のCLI部131を通じて、対象となるNE2と接続する。
このとき、アダプタ生成装置1が、対象のIPアドレスを指定し、該IPアドレスを持つ対象となるNE2に接続を行ない、ユーザ名とパスワードを送信する。また、後述するように、接続パターンファイルである接続パターンに格納されているユーザ名とパスワードを対象となるNE2に送信することで自動接続する方法がある。
なお、接続の直後、後述のバックアップ機能がNE2の設定ファイルをダウンロードし、設定ファイルに一意の名前をつけてNE2の設定情報を保存することができる。
なお、ここでは、アダプタ生成装置1がNE2とTelnetによりNE2に接続した後について説明する。
まず、アダプタ生成装置1がNE2とTelnetによりNE2に接続する(ステップF1)。次に、NE2との接続に応じて、NE−IF部132によりCLI部131の表示装置にプロンプトが表示される(ステップF2)。
その後、ユーザAは、CLI部131の入力装置よりコマンドを入力し、NE−IF部132を介してNE2へコマンドを送信する(ステップF3)。NE−IF部132は、送信したコマンドの応答情報をNE2より受信し、受信した応答情報に基づいてCLI部131の表示装置に応答情報を表示する(ステップF4)。
以降、ステップF3とステップF4とが繰り返される。
ユーザAが、CLI部131の入力装置よりNE2との接続終了を示すコマンド(例えば、EXIT)を入力し送信する(ステップF5)と、アダプタ生成装置1とNE2とのTelnetによる接続が切断される(ステップF6)。
コマンドなどの記録をするためには、ユーザAは、記録の前に、例えば、図2の記録開始ボタンを押す。
図3の説明に戻り、ステップF2において、ユーザAが記録開始ボタンを押したことにより、キャプチャ部141およびスクリプト生成部142は待ち状態(ステップG1)から、スクリプトを生成するモード(ステップH1、および、ステップG2からG4)に移行する。
スクリプトを生成するモードにおいては、キャプチャ部141は、ステップF3とステップF4とにおいて、CLI部131とNE−IF部132との間で送受信される文字列情報を取得する(ステップH1)。
キャプチャ部141が取得した文字列情報に基づいて、スクリプト生成部142はスクリプトを生成し、生成したスクリプトをスクリプト表示画面(図2参照)に表示する。
ユーザAが、CLI部131の入力装置よりNE2との接続終了を示すコマンド(例えば、EXIT)を送信する(ステップF5)ことに応じて、スクリプト生成部142は生成したスクリプトをスクリプトファイルとしてスクリプト記憶部152に保存する(ステップG7)。
なお、記録停止ボタン(図2参照)の押下に応じて、スクリプト生成部142は、生成したスクリプトをスクリプトファイルとしてスクリプト記憶部152に保存するようにしてもよい。
その後、スクリプト生成部142は、待ち状態(ステップG1)に戻る。
(スクリプトの生成)
次に、キャプチャ部141とスクリプト生成部142とが、スクリプトを生成する方法について説明する。
アダプタ生成装置1がNE2とTelnetによりNE2に接続した後(図3のステップF1)、ユーザAはNE2の仮想端末としてのCLI部131を用いてコマンドを入力し実行し、その応答である応答情報をNE2から取得する。コマンドおよび応答情報はCLI部131上に表示される。
このとき、CLI部131上の表示情報全てをキャプチャ部141が保存する。
キャプチャ部141は表示情報全てを保存しログに記録すると共に、スクリプト生成部142に表示情報を送信する。
スクリプト生成部142は表示情報の一部を抜き出し、スクリプト情報を加えて記録する。
スクリプト生成部142が抜き出す情報は、ユーザAの操作によって表示されるコマンド文字列(以降U1とする)と、そのコマンド文字列送信に対する応答情報の、最後の行の最後の文字(以降U2とする)および、最後の行の一番先頭の文字(以降U3とする)とを記録する。また、コマンド送信の決定キー(Enterキー)(以降U4とする)を記録する。
これらU1からU4の4種類の情報は、一つのコマンドを送信するタイミングで記録される。つまり、一つのコマンドごとに4種類の情報が抜き出され、記録される。
なお、スクリプト生成部142は、改行コードを検出することにより、文字列が行として改行されていることを検出し、また、文字列の最後の行であることを検出することにより、文字列の最後の行を検出する。
また、U2の最後の行の最後の文字およびU3の最後の行の一番前の文字は、最低一文字を記録するものとするが、二文字以上を記録することとしても良い。または、最後の行全体を記録することとしても良い。
また、U2やU3で記録する文字列のパターンが、そのコマンドの応答中(最後の行以外または最後の行の最後や最初の文字以外)に出現した場合、一意になる文字数を記録することとして、記録する文字数を可変にすることとしても良い。
または、送信したコマンド文字列U1は、送信したコマンド文字列U1と、送信したコマンド文字列U1に対するNE2からの応答情報の全ての文字列(U5とする)と、コマンド送信の決定キー(Enterキー)U4とを、関連付けてスクリプトとして記録してもよい。なおU5は、U2またはU3に相当するものである。
(スクリプト生成の具体例)
次に、キャプチャ部141とスクリプト生成部142とが、スクリプトを生成する具体的な例を、オペレーションの例と記録の例とを用いて、説明する。
なお、説明において、NE2との接続は既に完了しており、NE−IF部132によりCLI部131の表示装置にプロンプトが表示されており(図2のステップF2参照)、記録開始ボタンは既に押下されているものとする。
また、説明はCLI部131に表示される文字列を用いて説明する。なお、説明のために、CLI部131の表示装置における改行コードを<改行>とし、コマンドの入力を決定するために入力されるエンターキーの入力を<Enterキー入力>として表記している。これは、実際には、CLI部131の表示装置に表示されるものではなく、説明のための表記である。
なお、説明においては、U2およびU3として、文字数を二文字として説明する。
(ステップV1)まず、CLI部131には、ステップV1に示されるような、プロンプト「Cisco1#」が表示されている。
Cisco1#
(ステップV2)次に、ステップV1のプロンプトが出ている状態で、オペレータは、CLI部131を用いてコマンド「show interfaces」を入力し、NE−IF部132を介してNE2へ送信する。
Cisco1# show interfaces<Enterキー入力>
(ステップV3)ステップV2のコマンドの送信に応じて、例えば、以下のような応答情報をNE−IF部132がNE2から受信し、CLI部131に表示する。
Fastnet0/0 is up, line protocol is up <改行>
Hardware is AmdFE, address is 000d.286a.98e0 (bia 000d.286a.98e0) <改行>
Internet address is 192.168.10.1/24<改行>
MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, <改行>
reliability 255/255, txload 1/255, rxload 1/255<改行>
Encapsulation ARPA, loopback not set<改行>
Keepalive set (10 sec) <改行>
Full-duplex, 100Mb/s, 100BaseTX/FX<改行>
(途中省略)<改行>
355 lost carrier, 0 no carrier<改行>
0 output buffer failures, 0 output buffers swapped out<改行>
Cisco1#
(ステップV4)このとき、スクリプト生成部142が、最後に受信した1行の文字列「Cisco1#」を抽出しておく。抽出した文字列より、U2とU3は、「Ci」と「1#」とになる。
(ステップV5)次に、オペレータは、例えばコマンド「show version」を入力し、NE2へ送信する。
Cisco1# show version<Enterキー入力>
(V6)送信したコマンド「show version」に対する、NE2からの応答は以下のようになる。
(応答文字列省略。)<改行>
Cisco1#
このとき、スクリプト生成部142が、最後に受信した1行の文字列「Cisco1#」を抽出する。抽出した文字列より、U2とU3は、「Ci」と「1#」とになる。
(ステップV7)このとき、スクリプトは以下のようになり、スクリプトの最後の4行が、上記に対応して、このタイミングで追加して記録される。
この意味の概要は、U2とU3である、「Ci」と「1#」を受信した場合、U3である「show version」とU4である「Enter」を送信する、ということである。なお、U4である「Enter」を送信するとは、Enterキーの入力を送信することである。
スクリプトの詳細な説明については、後に説明する。
telnet.send('show interfaces')
telnet.sendSpecial('Enter')

telnet.waitFor('Ci')
match = telnet.waitPrompt('1#')
telnet.send('show version')
telnet.sendSpecial('Enter')
(ステップV8)続いて、オペレータは、例えばコマンド「disable」を入力する。
Cisco1# disable<Enterキー入力>
(V9)送信したコマンド「disable」に応じて、NE2から以下のような応答が返ってくる。
Cisco1>
スクリプト生成部142が、この受信した最後の1行の文字列の「Cisco1>」の先頭2文字(U2)と最後の2文字(U3)とを記憶する。抽出した文字列より、U2とU3は、「Ci」と「1>」とになる。
(ステップV10)さらに、オペレータは、例えばコマンド「show version」入力する。
この時、先に記憶した文字と、入力したコマンドと、エンターキーの入力に基づいて、以下のようなスクリプトとして生成される。
telnet.waitFor('Ci')
match = telnet.waitPrompt('1>')
telnet.send('show version')
telnet.sendSpecial('Enter')
(ステップV11)生成されたスクリプトには、前のスクリプトの記述にさらに追記され、生成されたスクリプトは、以下のようになる。
telnet.send('show interfaces')
telnet.sendSpecial('Enter')

telnet.waitFor('Ci')
match = telnet.waitPrompt('1#')
telnet.send('show version')
telnet.sendSpecial('Enter')

telnet.waitFor('Ci')
match = telnet.waitPrompt('1#')
telnet.send('disable')
telnet.sendSpecial('Enter')

telnet.waitFor('Ci')
match = telnet.waitPrompt('1>')
telnet.send('show version')
telnet.sendSpecial('Enter')
以上のようにして、スクリプト生成部142は、コマンド文字列(U1)と、そのコマンド文字列送信に対する応答情報の最後の行の最後の文字(U2)と、該応答情報の最後の行の一番先頭の文字(U3)と、コマンド送信の決定キーであるEnterキー(U4)とに基づいてスクリプトを生成する。
なお説明においては、改行コードは行の最後に付けるものとして説明しているが、これに限られるものではなく、行の先頭、または、行の先頭と最後に付けるようにしてもよい。改行コードは、文字列において行を識別できるものであれば、いずれの改行コードを用いてもよい。
次に、ユーザAが、GUI部101と自動実行部144とを介して、例えば、GUI部101の図2のファイルツリー画面より、スクリプト記憶部152に保存してあるスクリプトファイルを選択することにより、選択されたスクリプトファイルに基づいて、自動実行部144が処理を実行する。
自動実行部144は、例えば、スクリプトファイルの記述を上から順に処理していく。例えば、上記スクリプトの一部であり、以下のようなスクリプトが書かれてある場合には、
telnet.waitFor('Ci')
match = telnet.waitPrompt('1#')
telnet.send('show version')
telnet.sendSpecial('Enter')
自動実行部144は、NE2から受信する文字列の最後の1行の先頭の2文字が「Ci」であり、最後の2文字が「1#」である場合に、「show version」の文字列と、決定キーである「Enter」に相当する制御文字列を、NE2へ送信する。
自動実行部144は、送信した後、スクリプトに次に記述されている行を実行する。
なお、具体的な処理については、後に、自動接続も含めたスクリプトファイルの生成と実行において、説明する。
(自動接続)
次に、アダプタ生成装置1が、NE2との接続を自動的に行う方法について説明する。なお、以下に説明する機能は、主に、図1の自動接続部171と接続パターン記憶部181とに関する機能である。
なお、以下に説明するネットワーク接続装置1は、アダプタ生成装置1の一部の機能であり、その対応については、後に説明する。
以下に説明するような接続方法を用いることにより、ネットワーク接続装置1は、例えば、接続するNE2が、同じメーカー製である場合や、バージョンが変わった場合などにおいても、NE2と接続することが可能となる。
まず、本発明の実施の形態に用いる基礎的な技術について概説する。
SNMP(Simple Network Management Protocol)とは、TCP/IPネットワークにおいて、ルータやコンピュータ、端末など、ネットワークに接続された通信機器(NE)をネットワーク経由で監視・制御するためのプロトコルである。
また、制御の対象となる機器(NE)は、MIB−II(Management Information Base−II)と呼ばれる管理情報データベースを持っており、管理を行なう機器は対象機器のMIB−IIに基づいて適切な設定を行なうものとする。
また、MIB−IIの1つにSysDescr情報があり、SysDescr情報には、対象NEの機器名や機器名のベンダ名(製造元の情報)や対象NEで動作するプログラムの情報(例えば、OS(オペレーティングシステム)のバージョンなど)などの対象NEのシステム情報が含まれる。
また、実施の形態においては、NEは、SNMPエージェント(Simple Network Management Protocol Agent)が動作しているものとする。ここで、SNMPエージェントとは、SNMPに対応したハブなどのネットワーク機器が備えているプログラムで、自機のMIB−IIを管理し、SNMPマネージャからの要求に従って、MIB−IIをSNMPマネージャに渡したり、自機の操作を行なったりするものである。
なお、本発明による実施の形態においては、後述するように、対象NEでSNMPエージェントが動作していない場合においても、適応可能である。
以下、図面を参照して、本発明の実施の形態について説明する。図4は、この発明の一実施形態によるネットワーク接続装置1の構成を示す概略ブロック図である。
同図において図1の各部に対応する部分には同一の符号を付け、その説明を省略する。
図4において、ネットワーク接続装置1は、ユーザAへ出力情報を表示し、また、ユーザAからの入力情報を受信する。また、ネットワーク接続装置1は、NE2へネットワーク3(NW3)を介してNE2と接続する。
ネットワーク接続装置1は、GUI部101、プロダクト検出部102、PING接続部103、SNMP接続部104、自動ログイン部105、手動ログイン部106、Telnet接続部107、接続パターンファイル生成部108、productcsv記憶部120、自動ログイン用接続パターンファイル記憶部121を有する。
なお、図4のプロダクト検出部102、自動ログイン部105、手動ログイン部106、接続パターンファイル生成部108は図1の自動接続部171に相当し、また、図4のPING接続部103、SNMP接続部104、Telnet接続部107は、図1のNE−IF部132に相当し、また、図4のproductcsv記憶部120、自動ログイン用接続パターンファイル記憶部121は図1の接続パターン記憶部181に相当するものである。
productcsv記憶部120は、NEの機器のOS名やNEの機器の製造元(ベンダ)を、図5に示すような、Product.csvファイルとして記憶する。Product.csvファイルには、NEの接続情報である後述のプロダクトファイルを一意に決定する文字列が記述されている。
図5のProduct.csvファイルには、NEの機器のOS名やNEの機器の製造元(ベンダ)の名が記述されている。これらは、ユーザAが管理しやすいような分類で任意に記述することが可能である。
例えば、同じ製造元のNEに対して同じログイン方法をしたい場合には、製造元により分類してもよいし、同じOSのNEに対して同じログイン方法をしたい場合には、同じOSにより分類してもよい。また、分類をどのようにするかも任意である。
例えば、図5においては、NEのOS名としてOS1、OS2006、OSY、OS1500、OSZ、OSXPがあり、NEのベンダ名としてRED、BLUE、GREEN、PURPLEがある。なお、NEのOS名には、NEのOS名だけでなくOSのバージョンを含めてもよく、NEのベンダ名には、NEのベンダ名だけでなくNEのシリーズ名やそのバージョンなどを含めた情報であってもよい。
自動ログイン用接続パターンファイル記憶部121は、複数の接続パターンファイルを記憶する機能を有する。例えば、図4に示すように、F01、F02、・・・、F08、・・・となる複数の接続パターンファイルを記憶する。
自動ログイン用接続パターンファイル記憶部121が記憶するそれぞれの接続パターンファイルには、該当する対象NEに接続するための情報(接続情報)が記憶されている。
接続パターンファイルの一例を図6に示す。実施の形態においては、接続パターンファイルはXML(eXtensible Markup Language)ファイルである。接続パターンファイルの一部には、対象NEのプロダクトを示すProduct.csvに記述される一つのユニークな文字列が存在し、この文字列により接続パターンファイルのそれぞれが識別される。
例えば、図6では、<product></product>タグで囲まれている「RED」という文字列が、この接続パターンファイルのユニークな文字列となる。
また、接続パターンファイルには、対象NEに接続するための情報である、ログイン名情報、パスワード情報とともに、対象NEが送信してくるプロンプトに関する情報であるプロンプト情報も記憶してある。ここで、プロンプト情報とは、対象NEが、認証のために送信してくる「Username:」や「Password:」などのプロンプトの文字列である。
例えば、図6において、<LoginName>タグと</LoginName>タグとで囲まれた文字列(例えば、「neso」)がユーザ名情報であり、<Password>タグと</Password>タグとで囲まれた文字列(例えば、「nesopassword」)がパスワード情報であり、<LoginPrompt>タグと</LoginPrompt>タグとで囲まれた文字列(例えば、「Username:」)がログインを入力するためのプロンプト情報であり、<PasswordPrompt>タグと</PasswordPrompt>タグとで囲まれた文字列(例えば「Password:」)がパスワードを入力するためのプロンプト情報である。
接続パターンファイルの例に示したタグ内の文字列についてはこの例に限るものではない。図6の例では接続パターンファイルは、インタフェース仕様(システム情報)ごとに一つのファイルが存在する前提で示されているが、タブ内の文字列を変更し全ての情報が一つのファイルにまとめられていても良い。
実施の形態においては、例えば図5に示すproductcsv記憶部120のProduct.csvファイルに含まれる文字列の1つと、例えば図6に示す自動ログイン用接続パターンファイル記憶部121が記憶する1つの接続パターンファイルの<product></product>タグで囲まれる文字列とが一致する。
図4のネットワーク接続装置1の説明に戻る。GUI部101は、表示装置と入力装置とを有しており、ユーザが入力するためのまたは確認するための出力情報をユーザAへ表示装置を介して表示し、ユーザBが入力装置を用いて入力した入力情報を受信する機能を有する。
ここで、例えば、表示装置とはCRT(Cathode Ray Tube)や液晶表示装置等であり、入力装置とはキーボードやマウス等の入力デバイスのことである。
例えば、GUI部101がユーザへ表示装置を介して出力する出力情報は、ユーザが接続を希望するNE(以降、対象NEとする)を指定するための情報であり、対象NEのIPアドレスを直接入力するための画面の情報や、対象NEのIPアドレスと関連付けられたアイコンを表示する画面の情報を表示する。
また、例えば、GUI部101がユーザから入力装置を介して受信する入力情報は、直接入力された対象NEのIP、または、選択されたアイコンに関連付けられた対象NEのIPアドレスである。
また、GUI部101は、入力したIPアドレスに基づいて、自動接続を行うのか、または、手動接続を行うのかの接続方法の情報を受信する機能を有する。
また、GUI部101は、入力された接続方法の情報が自動接続の場合には、入力された対象NEのIPアドレスをプロダクト検出部102および自動ログイン部105へ送信し、入力された接続方法の情報が手動接続の場合には、入力された対象NEのIPアドレスを手動ログイン部106へ送信する機能を有する。
プロダクト検出部102は、対象NEのIPアドレスをGUI部101から受信し、受信したIPアドレスに基づき、対象NEのプロダクト情報を検出し、検出したプロダクト情報を自動ログイン部105へ送信する機能を有する。
プロダクト検出部102が、受信したIPアドレスに基づき対象NEのプロダクト情報を検出する方法は、PING接続部103を介して対象NEが稼動しているか否かを検出し、稼動している場合には、SNMP接続部104を介して対象NEのMIB−IIの一つであるSysDescr情報を取得し、次に、取得したSysDescr情報(の文字列)がproductcsv記憶部120のProduct.csvファイルの記述内に存在するか否かを検出し、検出結果が存在する場合には、SysDescr情報(の文字列)と一致するProduct.csvファイルの記述をプロダクト情報として検出する。
PING接続部103は、プロダクト検出部102から受信したIPアドレスに基づき、IPアドレスにより指定されるNEが正常に稼動しているか否かの検出を行う機能を有する。
PING接続部103が行うIPアドレスにより指定されるNEが正常に稼動しているか否かの検出の方法は、例えば、PING接続部103が、IPアドレスにより指定されるNEに対してIPパケットを発行し、そのパケットがNEに正しく届き、NEから発行したIPパケットの応答が行われ、IPパケットの応答をNEから受信するか否かを検出することにより行う。
また、NEが正常に稼動していることの検出により、NEまでのネットワークが正常か否かの検出を行うことも可能である。
SNMP接続部104は、プロダクト検出部102から受信したIPアドレス情報に基づき、IPアドレスにより指定されるNE(対象NE)のMIB−IIの一つであるSysDescr情報を取得する機能を有する。
SNMP接続部104が、対象NEのMIB−IIの一つであるSysDescr情報を取得する方法は、例えば、対象NEとSNMPによるSNMP GetコマンドによりMIB−IIを取得し、MIB−IIの一つであるSysDescr情報を取得する。
自動ログイン部105は、IPアドレスをGUI部101から受信し、また、プロダクト検出部102から対象NEのプロダクト情報を受信し、受信したプロダクト情報に基づき接続パターンファイルを自動ログイン用接続パターンファイル記憶部121から選択し、選択した接続パターンファイルと受信したIPアドレスに基づいてTelnet接続部107を介して対象NEにログインをする機能を有する。
ここで、自動ログイン部105が受信したプロダクト情報に基づき接続パターンファイルを選択する方法は、自動ログイン部105が、接続パターンファイルにおいて<product></product>タグで囲まれている文字列が、受信したプロダクト情報と一致する接続パターンファイルを、自動ログイン用接続パターンファイル記憶部121から選択することにより実行する。
手動ログイン部106は、GUI部101から対象NEのIPアドレスを受信し、受信したIPアドレスについての接続するための接続情報を生成し、生成した接続情報に基づいて、受信したIPアドレスにより指定される対象NEへ接続する機能を有する。
また、手動ログイン部106は、生成した接続情報に基づいて、受信したIPアドレスにより指定される対象NEへ接続が成功した場合には、後述の接続パターンファイル生成部108を介して、生成した接続情報を接続パターンファイルとして自動ログイン用接続パターンファイル記憶部121に記憶する機能を有する。
Telnet接続部107は、IPアドレスと接続情報とを自動ログイン部105または手動ログイン部106から受信し、受信したIPアドレスにより指定される対象NEに、受信した接続情報に基づいて接続をする機能を有する。
接続パターンファイル生成部108は、手動ログイン部106からIPアドレスと接続情報とを受信し、受信したIPアドレスと接続情報に基づき接続パターンファイルを自動ログイン用接続パターンファイル記憶部121に生成する機能を有する。
次に、本発明の一実施形態によるネットワーク接続装置1の動作を図7と図8のフローチャート図を用いて説明する。
まず図7を用いて、第1の動作例として、接続対象であるNEのプロダクトを検出し、検出したNEのプロダクトが有効な接続パターンファイルを予め登録してあるXMLファイルから選択し、選択した接続パターンファイルの内容であるユーザ名やパスワードなどの接続情報に基づき、対象NEに自動ログインする場合の動作を説明する。
まず、GUI部101は、ユーザAからの接続するNE(対象NE)のIPアドレスの入力を受信する(ステップA2)。
次に、GUI部101は、ユーザAからの入力した対象NEに、自動接続するのか手動接続するのかの選択入力を受信する(ステップA3)。ここでは、ユーザAは自動接続を選択入力したとして説明する。
対象NEのIPアドレスを受信し、また、自動接続する接続方法の情報を受信したGUI部101は、対象NEのIPアドレスをプロダクト検出部102と自動ログイン部105へ送信する。
次に、対象NEのIPアドレスを受信したプロダクト検出部102は、PING接続部103を介して、対象NEが正常に稼動しているか否かの検出を実行する(ステップA4)。ここでは、対象NEは正常に稼動していると検出されたものとして説明する。
次に、プロダクト検出部102は、SNMP接続部104を介して、対象NEのMIB−IIの一つであるSysDescrの情報を取得する(ステップA5)。
次に、SNMP接続部104は、取得したSysDescrの文字列情報を、プロダクト検出部102に送信する。SysDescrの文字列情報をSNMP接続部104から受信したプロダクト検出部102は、SysDescrの文字列情報の中で、productcsv記憶部120のProduct.csvファイルに記述されているものを検出する(ステップA6)。ここでは、Product.csvにSysDescrの文字列が存在したものとして説明する。
Product.csvファイルにSysDescrの文字列と一致する文字列が存在することを検出した場合、プロダクト検出部102は自動ログイン部105に検出した文字列(プロダクト情報)を送信する(ステップA6)。
ここでは、SysDescrの文字列情報とProduct.csvに記述されている情報とで一致した文字列が「RED」であったとし、「RED」という文字列(プロダクト情報)を、プロダクト検出部102が自動ログイン部105へ送信するとして説明する。
次に、自動ログイン部105はプロダクト情報をプロダクト検出部102から受信し、受信したプロダクト情報(文字列の「RED」)に基づき、接続パターンファイルを自動ログイン用接続パターンファイル記憶部121から検索する(ステップA6)。
例えば、自動ログイン部105は、受信したプロダクト情報が「RED」という文字列の場合、<product>タグと</product>タグとで囲まれる文字列が「RED」である接続パターンファイルを、自動ログイン用接続パターンファイル記憶部121から選択する。
この場合、自動ログイン部105が選択した接続パターンファイルは、例えば、図6で示す接続パターンファイルであるとする。
次に、自動ログイン部105は、GUI部101から受信したIPアドレスにより指定される対象NEへ、選択した接続パターンファイルに基づき、Telnet接続部107を介して、ログインを実行する(ステップA7)。
自動ログイン部105が対象NEへログインを実行する方法は、例えば、まず、自動ログイン部105がIPアドレスにより指定される対象NEへTelnet接続部107を介してTelnetにより接続する。
その後、自動ログイン部105は、選択した接続パターンファイルの<LoginPrompt>タグと</LoginPrompt>タグとで囲まれた文字列または<PasswordPrompt>タグと</PasswordPrompt>タグとで囲まれた文字列が対象NEから送信されてくるのを待つ。
この場合、対象NEから「Username:」または「Password:」の文字列が送信されてくるのを待つことになる。
次に、自動ログイン部105は、対象NEから文字列を受信し、受信した文字列が、選択した接続パターンファイルの<LoginPrompt>タグと</LoginPrompt>タグとで囲まれた文字列の場合には<LoginName>タグと</LoginName>タグで囲まれた文字列を対象NEへ送信し、また、受信した文字列が選択した接続パターンファイルの<PasswordPrompt>タグと</PasswordPrompt>タグとで囲まれた文字列の場合には<Password>タグと</Password>タグとで囲まれた文字列を送信する。
この場合、対象NEから文字列「Username:」を受信した場合には、文字列「neso」を対象NEへ送信し、また、対象NEから文字列「Password:」を受信した場合には文字列「nesopassword」を対象NEへ送信する。
これにより、例えば、Telnetなどの通信プロトコル上による対象NEとの接続が完了し、その後、ユーザAは、CLI上で対象NEの設定などが行なえるようになる。
例えば、対象NEに接続したことにより、例えば、GUI部101が、CLIコンソールを生成し、生成したCLIコンソールに対象NEからのプロンプトを表示する(ステップA8)。その後、GUI部101が、CLIコンソールを介してユーザAからのコマンドを入力し対象NEへ送信し(ステップA9)、対象NEから応答を取得し、取得した応答をCLIコンソールへ表示する(ステップA10)。その後、GUI部101が、ステップA9とステップA10の処理を繰り返すことにより、ユーザAが対象NEの設定などをすることができる。
その後、GUI部101が、ユーザAからの対象NEとの接続終了の情報を受信し、受信した接続終了の情報を対象NEへ送信し(ステップA11)、対象NEと接続を切断し(ステップA12)、処理を終了する。
なお、自動ログイン部105は、先に選択した接続パターンファイルに、接続した後の対象NEからのプロンプト情報(例えば「>」)や、suやenableなどの権限を変更するコマンドの文字列と、それに関するパスワードプロンプト文字列やパスワード文字列が先に選択した接続パターンファイルにある場合には、これらを用いて、接続した対象NEにおいて、権限を変更する処理を実行する。
例えば、ステップA8において、対象NEからのプロンプトの文字列「>」を受信したことを自動ログイン部105が検出した場合、自動ログイン部105は、先に選択した接続パターンファイルに記述してある権利変更のコマンドである「su」または「enable」を送信し、パスワードを入力するためのプロンプトの文字列(例えば、「Password:」)を対象NEから受信するのを待ち、パスワードを入力するためのプロンプトの文字列を対象NEから受信すると、パスワード文字列を送信する。
以上により、自動ログイン部105が、選択した接続パターンファイルに基づき、対象NEに接続し、権限変更を実行することが可能となる。
なお、対象NEがユーザ名やパスワード入力を求めない場合に備え、図6で例示した接続パターンファイルのタグで囲まれた文字列に、例えば「BLANK」といった予約文字列を記述しておき、自動ログイン部105は、接続パターンファイルに基づき対象NEへユーザ名などを送信する場合に、タグで囲まれたユーザ名の文字列に予約文字列である「BLANK」を検出した場合には、ユーザ名などの文字列を送らずに、Enterキーの特殊文字(Enterキーに相当する文字情報)を送信することも可能である。
また、上記説明においては、プロダクト検出部102が、受信したSysDescr情報がproductcsv記憶部120のProduct.csvファイルの記述内に、SysDescrの文字列が存在することか否かを検出することにより、対象NEの接続先プロダクトの検出をしたが、productcsv記憶部120のProduct.csvファイルを用いず、プロダクト検出部102が、受信したSysDescr情報を自動ログイン部105へ送信し、自動ログイン部105が受信したSysDescr情報の文字列を含む接続パターンファイルを自動ログイン用接続パターンファイル記憶部121から直接選択するようにしてもよい。
第1の動作例では、接続するための接続パターンファイルが既に存在し、接続パターンファイルの情報を用いて自動接続する一実施形態によるネットワーク接続装置1の動作について述べた。
次に、一実施形態によるネットワーク接続装置1に接続パターンファイルが存在しない場合の動作について説明する。接続パターンファイルが存在しない場合に、CLIによる運用知識のみを用いて、以後の運用で自動ログインするための設定処理を行なう第2の動作例を図7と図8とを用いて説明する。
まず、図7において、GUI部101は、ユーザAからの接続するNE(対象NEとする)のIPアドレスの入力を受信する(ステップA2)。次に、GUI部101は、ユーザAからの入力した対象NEに、自動接続するのか手動接続するのかの選択入力を受信する(ステップA3)。ここまでの処理は、第1の動作例と同じである。次に、ステップA3で、ユーザAは手動接続を選択入力したとして説明する。
対象NEのIPアドレスを受信し、また、手動接続する接続方法の情報を受信したGUI部101は、対象NEのIPアドレスを手動ログイン部106へ送信する(図7のD1から図8のD1へ)。
次に、手動ログイン部106は、GUI部101を介してユーザAへ、接続パターンファイルの選択かプロンプト情報の入力の選択かを表示する(図8のステップB4)。ここでは、ユーザAは、プロンプト情報の入力を選択したものとして説明する。
次に、手動ログイン部106は、GUI部101を介してユーザAへ、接続に必要な情報(プロンプト情報)を入力するための画面を表示し、ユーザAがGUI部101を介して入力したプロンプト情報を受信する(ステップB5)。
例えば、手動ログイン部106が表示するプロンプト情報を入力するための画面は、図9に示すように、対象NEのIPアドレス、ログインプロンプト、ログインユーザ名、パスワードプロンプト、パスワードなどを入力する入力欄を有する。
ユーザAは、図9の入力画面の各入力欄に、それぞれに該当する情報を入力する。
ユーザAは、図9の入力画面に基づき、対象NEのIPアドレス、ログインユーザ名、パスワード、必要な場合はユーザ権限を変更するコマンドを入力する。さらに、ユーザAは、ログインユーザ名を入力する際のプロンプト文字列(例では「Username:」など)、パスワードを入力する際のプロンプト(例では「Password:」など)、ユーザ権限を変更するコマンドを入力する際のプロンプト文字列(例えば、「>」など)を入力する。
なお、手動ログイン部106は、プロンプト情報を入力するための画面を表示する時に、対象NEのIPアドレスの入力欄に、先に手動ログイン部106がGUI部101から受信した対象NEのIPアドレスを予め入力して表示してもよい。
次に、手動ログイン部106は、入力されたプロンプト情報の文字列情報に基づいて、自動ログインのための一時的な接続パターンファイル(テンポラリ接続パターンファイルとする)を、例えば手動ログイン部106のメモリ内に、生成する。
実施の形態においては、図9に示した画面により入力された情報は、例えば図6に示すXMLファイルに変換して保存される。例えば、テンポラリ接続パターンファイルには、タグ<LoginPrompt>と</LoginPrompt>との間には、例えば「Username:」などの入力された文字列、タグ<PasswordPrompt>と</PasswordPrompt>との間には例えば「Password:」などの入力された文字列が記述される。
また、テンポラリ接続パターンファイルにおいて、タグ<LoginName>と</LoginName>との間には入力されたユーザ名の文字列が記述され、<Password></Password>内には入力されたパスワード文字列が記述される。
さらにテンポラリ接続パターンファイルにおいて、図9の入力において権限を変更するコマンドが入力された場合には、<Prompt></Prompt>内に例えば入力された「>」の文字列が記述され、<EnableCommand></EnableCommand>には入力された「enable」や「su」といったコマンドの文字列が記述され、<EnablePassword></EnablePassword>内には権限を変更するための入力されたパスワードの文字列が記述される。
次に、手動ログイン部106が、生成したテンポラリ接続パターンファイルに基づき、Telnet接続部を介して、GUI部101から受信したIPアドレスにより指定される対象NEへ接続(自動ログイン)をする(ステップB6)。
ここで、手動ログイン部106が実行する対象NEへの接続(図8のステップB6)は、第1の動作例において、自動ログイン部105がプロダクトファイルに基づいて対象NEへ接続した接続(図7のステップA7)と同じである。
例えば、手動ログイン部106は、Telnet接続部107を介して対象NEに接続後、入力されたテンポラリプロダクトファイルのプロンプト情報である例えば「Username:」または「Password:」の文字列が、対象NEから送信されてくるのを待つ。
手動ログイン部106は、対象NEから上記文字列が送信されたのを検出後、<LoginPrompt></LoginPrompt>内の文字列である「Username:」を検出した場合、<LoginName></LoginName>内に記述されたユーザ名の文字列を、Telnet接続部107を介して対象NEへ送信する。
また、手動ログイン部106は、<PasswordPrompt></PasswordPrompt>内の文字列である「Username:」を検出した場合、<Password></Password>内に記述されたパスワード文字列を、Telnet接続部107を介して対象NEへ送信する。
ステップB6にて、手動ログイン部106が送信したユーザ名とパスワードが対象NEにとって正当でなく、手動ログイン部106が対象NEと接続できない場合、手動ログイン部106は、再度プロンプト情報の入力を実行し(ステップB5)、再度入力されたプロンプト情報に基づき対象NEと接続(ステップB6)を繰り返す。
ステップB6にて、手動ログイン部106が送信したユーザ名とパスワードが対象NEにとって正当であり、手動ログイン部106が対象NEと接続できた場合、手動ログイン部106が接続パターンファイル生成部を介して、自動ログイン用接続パターンファイル記憶部121に、テンポラリ接続パターンファイルに基づいて接続パターンファイルを生成する(ステップB7)。
ここでは、生成する接続パターンファイルとして、接続パターンファイル名には入力された接続対象のIPアドレスを用いる。例えば、IPアドレスが「192.168.1.5」だとすると、接続パターンファイル名として「192.168.1.5.adapter」といったIPアドレスに「adapter」を付ける命名則で、接続パターンファイルを生成する。
次に、対象NEとの接続ができたことより、ユーザAは対象NEの設定などを行う。以降の処理は、図7のステップA8からステップA12と同じである。
以上のようにして、対象NEと接続するための接続パターンファイルが、自動ログイン用接続パターンファイル記憶部121に、生成される。
以降、実施の形態におけるネットワーク接続装置1の自動ログイン部105が、生成した接続パターンファイルを用いて、対象NEと接続することが可能となる。
例えば、以降、同じ対象NEに接続する場合、自動ログイン部105はGUI部101から入力されたIPアドレスから同じIPアドレスを冠した接続パターンファイルを検索する(ステップB9)。接続パターンファイルを検出した場合、上記手順を自動でログイン処理を実行し、ログインする。(削除されるなどして)接続パターンファイルが存在しなかった場合、未知の対象としてユーザに異なる接続パターンファイルを選択させ、接続する。または該当する接続パターンファイルが存在しないものとして、第2の動作を繰返し、ユーザに必要な文字列を入力させ、接続パターンファイルを生成する。詳細については後に詳述する。
次に、図7と図8を用いて、自動的な接続に失敗した場合に、手動ログイン部106が接続処理を実行する動作を説明する。
まず、図7のステップA4で、対象NEのIPアドレスを受信したプロダクト検出部102が、PING接続部103を介して、対象NEが正常に稼動しているか否かの検出を実行し、対象NEは正常に稼動していなかった場合には、対象NEとの接続が不可能であるため、処理を終了する。
図7のステップA5において、プロダクト検出部102は、SNMP接続部104を介して対象NEのMIB−IIの一つであるSysDescrの情報を取得するが、対象NEがSNMP接続について応答がなかった場合(図7のD2)には、プロダクト検出部102は、対象NMのSNMPエージェントが動作していないことをメッセージ表示し(ステップB10)、選択ダイアログを表示し、ユーザAからのダイアログからの選択入力を待つ(ステップB11)。
プロダクト検出部102が表示する選択ダイアログには、接続パターンファイルの選択と、手動設定と、処理終了とがある。
ユーザAからの選択入力が、接続パターンファイルの選択の場合、手動ログイン部106が、GUI部101を介してユーザAへ、接続パターンファイルの選択かプロンプト情報の入力の選択かを表示する(ステップB4)。以降の処理は先に説明した手順と同様である。
ユーザAからの選択入力が、手動設定の場合、手動ログイン部106は、GUI部101を介してユーザAへ、接続に必要な情報(プロンプト情報)を入力するための画面を表示し、ユーザAがGUI部101を介して入力したプロンプト情報を入力する(ステップB5)。以降の処理は先に説明した手順と同様である。
図7のステップA6で、プロダクト検出部102が、productcsv記憶部120のProduct.csvファイルの記述内に、SNMP接続部104から受信したSysDescrの文字列が存在しないことを検出した場合(D3)、自動ログイン部105が、GUI部101から受信したIPアドレスの接続パターンファイルを自動ログイン用接続パターンファイル記憶部121から検索する(ステップB9)。
例えば、GUI部101から受信したIPアドレスが192.168.1.5だとすると、接続パターンファイル名が「192.168.1.5.adapter」である接続パターンファイルを、自動ログイン部105がproductcsv記憶部120から、検索する。
自動ログイン部105は、受信したIPアドレスの接続パターンファイルを自動ログイン用接続パターンファイル記憶部121から検索できた場合(E2)、検索した接続パターンファイルに基づいて、GUI部101から受信したIPアドレスにより指定される対象NEへ、Telnet接続部107を介して、ログインを実行する(ステップA7)。以降の処理は先に説明した手順と同様である。
自動ログイン部105は、受信したIPアドレスの接続パターンファイルを自動ログイン用接続パターンファイル記憶部121から検索できなかった場合(E2)、手動ログイン部106が、GUI部101を介してユーザAへ、接続パターンファイルの選択かプロンプト情報の入力の選択かを表示する(ステップB4)。以降の処理は先に説明した手順と同様である。
また、ステップB4の、手動ログイン部106が、GUI部101を介してユーザAへ、接続パターンファイルの選択かプロンプト情報の入力の選択かを表示し、ユーザAの選択が接続パターンファイルの選択であった場合、手動ログイン部106は、productcsv記憶部120からプロダクトファイルの一覧を取得し、取得したプロダクトファイルの一覧を、GUI部101を介してユーザAへ表示し、ユーザAからのプロダクトファイルの選択入力を待つ(ステップB8)。
ユーザAからのプロダクトファイルの選択入力を受信した手動ログイン部106は、受信した選択入力のプロダクトファイルをproductcsv記憶部120から取得し、取得した接続パターンファイルに基づいて、GUI部101から受信したIPアドレスにより指定される対象NEへ、Telnet接続部107を介して、ログインを実行する(ステップA7)。以降の処理は先に説明した手順と同様である。
以上のように、自動ログイン部105による処理において、対象NEに接続できない場合においても、手動ログイン部106が処理を実行することにより、対象NEと接続できる。
なお、実施の形態として、IPアドレスと関連する接続パターンファイルを、接続パターンファイル名が「192.168.1.5.adapter」として生成すると説明したが、これに限られるものではなく、例えば、接続パターンファイルの中で、タグ<IPADDRESS>と</IPADDRESS>との間に「192.168.1.5」と記述しておき、ファイル名は任意としてもよい。
この場合、自動ログイン部105は、接続パターンファイルの中でタグ<IPADDRESS>と</IPADDRESS>との間の文字列が、GUI部101から受信したIPアドレスと一致する接続パターンファイルを選択し、選択した接続パターンファイルに基づき、受信したIPアドレスにより指定されるNEに接続する機能を有するようにする。
なお、実施の形態として、IPアドレスと関連する接続パターンファイルを、接続パターンファイル名が「192.168.1.5.adapter」として生成する(ステップB7)として説明したが、更に、IPアドレスの後に接続パターンを生成した日時の情報を追加してユニークなファイル名を生成するようにしてもよい。
このようにして接続パターンファイルを生成することにより、自動ログイン部105がGUI部101から受信したIPアドレスの接続パターンファイルを自動ログイン用接続パターンファイル記憶部121から検索する(ステップB9)ときに、同じIPアドレスの接続パターンファイルが複数ある場合においても、自動ログイン部105が、例えば、生成された日時が新しい接続パターンファイルを選択するようにするようにして、1つの接続パターンファイルを選択するようにすることも可能である。
なお、接続パターンファイルにおいて、日時についての情報を、接続パターンファイルの中のタグで囲まれた情報として記述してもよい。この場合、自動ログイン部105は、例えば、接続パターンファイルが複数ある場合、接続パターンファイルのタグの中の日時において、日時が新しい接続パターンファイルを選択するようにする。
次に、接続パターンファイルが存在しない場合に、簡単な方法で接続パターンファイルを生成し、以後の運用で対象NEに自動接続するための設定処理を行なう手順を説明する。
接続パターンファイルに必要な文字列が入力されていることで、自動ログイン部105が自動ログインを行う手順については第1および第2の動作例にて説明した。
次に、第2の動作例で生成した接続パターンファイルを書き換えて、より汎用的な接続パターンファイルに変更する方法について述べる。
例えば、第2の動作例において生成した「192.168.1.1.adapter」という接続パターンファイル名の接続パターンファイル(以降、192.168.1.1接続パターンファイルとする)は、対象NEのIPアドレスが192.168.1.1である場合(のみ)に、自動ログイン部105により(ステップB9において)選択される。
従って、例えば、生成した接続パターンファイルである192.168.1.1接続パターンファイルをコピーし、接続パターンファイルのタグ<product>とタグ</product>との間の文字列(任意の文字列または空白(null文字)であり、例えば「XXX」とする)を変更する。例えば、文字列「XXX」を「ABC」にする。またproduct.csvファイルに、新たに文字列「ABC」の文字列を追記する。
これにより第1の具体例に新たに「ABC」という文字列で動作する手順が加わることになり、容易に「ABC」のプロダクト(SNMPによりSysDescrの文字列中に「ABC」の文字列が出現する)である対象NEへの自動ログインが実現することが可能となる。
次に、図10を用いて、対象NEに、複数のログイン方法がある場合のログインについて説明する。
例えば、対象NEに複数の接続ユーザが存在する場合や、ルータに管理者権限で自動ログインしたい場合と一般使用者権限でログインしたい場合とを使い分けたい場合などが該当する。
接続パターンファイルに、例えば、図10に示すように複数のパターン(default、login、enable、lab)の接続情報を記述しておくことで、多様なログインの方法(ログインパターン)を選択することができる。
図10の例では、タグ<default>と</default>とで囲まれた部分、タグ<login>と</login>とで囲まれた部分、タグ<enable>と</enable>とで囲まれた部分、タグ<lab>と</lab>とで囲まれた部分がそれぞれ異なったログインパターンとして記述されている。
それぞれdefault、login、enable、labというユニークな文字列で識別され、これらの文字列をユーザが選択することでログインパターンを変更し自動ログインする。
また、タグ<select>と</select>とで囲まれた部分に、複数のパターンの文字列を記述しておく(default、login、enable、lab)。
この場合、手動ログイン部106が、選択した接続パターンファイルに、複数のログイン方法がある場合には、選択した接続パターンファイルの複数のログイン方法からログイン方法を選択し、選択したログイン方法に基づいて接続する機能を有するようにする。
例えば、ステップB8にて、ユーザAからのプロダクトファイルの選択入力に応じて接続パターンファイルを取得した手動ログイン部106が、取得した接続パターンファイルのタグ<select>と</select>とで囲まれた部分に、複数のパターンの文字列があるか否かを検出する。
複数のパターンの文字列がある場合には、手動ログイン部106が、GUI部101を介して、選択した接続パターンファイルのタグ<select>と</select>とで囲まれた文字列(例えば、default、login、enable、lab)をユーザAに表示し、表示した文字列からのユーザAによる選択入力を待つ。
次に、手動ログイン部106が、表示した文字列からのユーザAの選択入力(例えばenable)を受信した場合、受信した選択入力のタグで囲まれる接続情報に基づき、GUI部101から受信したIPアドレスにより指定される対象NEへ、Telnet接続部107を介して、ログインを実行する(ステップA7)。
なお、自動ログイン部105は、対象NEとの接続のために選択した接続パターンファイルに複数のログイン方法がある場合には、defaultのログイン方法により接続する。このようにすることにより、ユーザが自動接続を選択した場合には、ユーザは、接続パターンファイルに複数のログイン方法がある場合においても、ログイン方法の選択をする必要がなく、対象NEに接続することが出来る。
以上説明したように、本実施の形態においては、NEの製造ベンダ(製造元の名称)や、NEのOS、NEのOSのバージョンなどと関連づけて、予めユーザ名やパスワードなどNEと接続するための接続情報を予め記憶装置に記憶しておく。
まず、接続対象NEのIPアドレスをユーザからユーザインタフェースを介して取得する。接続対象NEのIPアドレスを取得する方法は、IPアドレスをユーザが直接入力する方法や、ソフトウェアのGUIにおいて接続対象NEを選択させるアイコンをクリックして指定する方法を用いてもよい。
次に取得したIPアドレスを持つ接続対象NEのCLI上のインタフェース仕様を特定する。インタフェース仕様はNEのOSに依存することが多く、NEのOS種別が特定できれば、NEが送信する文字列情報のパターンすなわちCLIログインのインタフェース仕様を特定できる。
そのために、まずSNMPによってNEからMIB−IIのSysDescrオブジェクトのパラメータを取得し、NEやOSの製造ベンダ、OSのバージョンなどを特定する。
次に、特定したNEのOS、OSのバージョン、製造ベンダなどに基づき、記憶装置から接続情報を検索し、検索した接続情報に基づいて、接続対象NEへ接続する。
なお、SNMPエージェントと通信できない場合や、SNMPによる通信を行ないたくない場合には、あらかじめ製造ベンダ名をIPアドレスと共にソフトウェアに入力してもよい。または、あらかじめ接続前に対象NEのプロダクトがわかっている場合は、次の処理で行なう対象NE用のXMLファイルを、手動で直接選択してもよい。
以上説明した本発明により、製造プロダクトやNEのOSのバージョンなどの違いにより、CLI上でNEから送信される文字列情報の仕様が異なる複数のNEに対し自動ログインすることができ、特に新しいNEの導入時やOSのバージョン更改などで上記仕様が異なり接続できない場合でも、プログラミングによる再実装などの手順やエージェント技術を必要とせずにすぐに自動接続ができる。
また、以上説明した本発明により、仕様がそれぞれ異なるNEに対し、ログインユーザ名、ログインパスワード、ユーザの権限を変更する特殊なコマンド(UNIX(登録商標)のCLIにおけるsuコマンドやルータCLIにおけるenableなど)といったパラメータや、NEから送信される文字列情報のインタフェース仕様を、接続パターンファイルと呼ぶXML形式のテキストファイルに記述しておき、インタフェース仕様(対象NEのシステム情報)を読み込む機能と、インタフェース仕様に従ってNEに対して適切な文字列を送信し自動でログインする機能と、複数の異なる仕様を持つNEに対して接続パターンファイルに記述された文字列情報の違いによって自動ログインするために送信する文字列情報を変更し、ユーザが意識することなく自動ログインすることができる。
また、以上説明した本発明により、SNMPによって対象プロダクトやOSの情報を取得することで、複数あるXMLファイルからどの情報を用いて自動ログインするかを、自動で選択し、ログインすることができる。また、対象ごとに異なるXMLファイルを適用させるルールを登録する機能を有し、そのルールによって特定のNEに特定のXMLファイルを適用し、パスワードやユーザ名が異なっていても自動接続を行うことができる。
以上のように、本発明を用いると、オペレータが手動でCLIを利用し接続する知識のみしか持たない場合でも、以降のNEに対する自動接続設定を可能とする。
また、NEの製造ベンダやOSの違いにより、プロンプト情報の応答などインタフェース仕様が異なる多種類のNEに対する接続を自動で行なうことができる。NEの製造ベンダやOSの違いにより、プロンプト情報の応答などインタフェース仕様が異なる多種類のNEに対する接続を上記の方法により自動で行なうことができない場合でも、手動でCLIを利用し接続する場合と同等の知識のみで最初の一回以後の処理を自動接続する設定が可能となる。
また、未知でかつインタフェース仕様が異なるNEを監視することになった場合でも、ネットワーク管理装置のアプリケーションプログラムの開発・実装を行なうことなく、自動接続を行う設定ができる。
また、自動接続のみならず、権限の変更コマンドなど接続時に自動で行ないたい処理の設定を、オペレータが手動でCLIを利用し接続する場合と同等の知識のみある場合でも可能となる。
また、自動接続のみならず、権限の変更コマンドなど接続時に自動で行ないたい処理の設定を、ネットワーク管理装置のアプリケーションプログラムの開発・実装を行なうことなく可能となる。
また、ユーザ名やパスワードが異なる複数の対象に対し、自動接続が可能となる。
したがって、新規NEを導入し管理対象とする場合においても、ネットワーク管理装置の開発にかかる期間やコスト、手間を一切かけることなく、自動接続および以後の設定処理を継続することができる。
また、本発明は、CLIの接続に関係する応答を読み込む機能、SNMPによる対象のプロダクトを判定する機能、XMLによる設定定義を読み込み自動接続する機能を有することにより、設定を必要とせずに自動接続を行うことが可能となる。
また、本発明は、XMLの設定定義を表示・変更する複数のユーザインタフェースによる簡単化、設定定義の自動生成を行う機能、XML設定定義を選択する機能を有していることにより、CLIによる設定業務に必要なスキルや知識のみを用いるだけで、自動接続の設定を行い以後の自動接続を実現することが可能となる。
次に、図11を用いて、NEのSysDescr情報と、Product.csvファイルに含まれる文字列と、接続パターンファイルの<product></product>タグで囲まれる文字列との関連と、その動作について補足する。
図11の(1)に示すように、例えば、NE1からNE10がある。
ここで、NEの管理において、NE1からNE6は同じ接続方法であり(接続情報として、接続のためのユーザ名やパスワードなどが同じ)、また、NE7からNE10は同じ接続方法であるとする。
ここで、NE1からNE6までから取得したシステム情報であるSysDescr情報は、ベンダがベンダ1であり、それぞれのOSがOS2からOS7である、という情報を(文字列として)含んでいるとする。
また、NE7からNE10までから取得したシステム情報であるSysDescr情報は、OSがOS1であり、それぞれのベンダがベンダ2からベンダ5である、という情報を(文字列として)含んでいるとする。
例えば、図11(3)に示すように、Product.csvファイルに含まれる文字列が「ベンダ1」と「OS1」である場合、それぞれのNEのシステム情報であるSysDescr情報(の中の文字列の情報で)で、Product.csvファイルに含まれる文字列と一致する情報は、図11(2)に示すように、NE1からNE6は「ベンダ1」であり、NE7からNE10は「OS1」となる。
次に、実施の形態においては、図11(4)に示す接続パターンファイルの<product></product>タグで囲まれる文字列が、図11(2)に示した文字列と一致する接続パターンファイルを選択し、選択した接続パターンファイルの接続情報を用いて、それぞれのNEに接続することが可能となる。
ここで、図11の(3)と(4)に示すように、Product.csvファイルに含まれる文字列と、接続パターンファイルの<product></product>タグで囲まれる文字列は一致する。
また、図11のようにNE1からNE10がある場合において、新規にOSがOS1であるNE11が増設された場合においても、NE11にOS1の場合の接続方法を設定することのみで、NE11に接続することが可能となる。これは、NE11のシステム情報の一部がOS1と一致し、OS1の接続パターンファイルが選択され、選択されたOS1の接続パターンファイルに基づきNE11に接続することによる。
また、新規にベンダがベンダ1であるNE12が追加された場合においても、NE12にベンダ1の場合の接続方法を設定することのみで、NE12に接続することが可能となる。これは、NE12のシステム情報の一部がベンダ1と一致し、ベンダ1の接続パターンファイルが選択され、選択されたベンダ1の接続パターンファイルに基づきNE12に接続することによる。
〔第1の具体例〕記録
次に、上記説明した自動接続を用いた場合の、スクリプトファイルの生成について説明する。まず第1の具体例として、ユーザAによる設定処理の記録手順について述べる。
例えば、ユーザAは、図2の対象選択画面より、接続するNE2をアイコンにより選択する。次に、図1の自動接続部171が、選択されたNE2と接続する。
ここで、自動接続部171が、選択されたNE2と接続する方法は、図7から図8を用いて説明したように、選択されたNE2に対応する接続パターンファイルを自動ログイン接続パターンファイル記憶部121から選択し、選択した接続パターンファイルに基づき自動接続部171(または、より詳細には自動ログイン部105)が、NE2と接続の処理を実行する。
接続が完了した後、ユーザAが図2の記録開始ボタンを押すことにより、図3を用いて説明したように、ユーザAの入力とNE2からの応答とに基づいて、スクリプト生成部142がスクリプトを生成する。
ここで、スクリプト生成部142が生成するスクリプトには、自動接続の情報を含めることが可能である。
例えば、自動接続部171(または、より詳細には自動ログイン部105)が、選択した接続パターンファイルに基づきNE2と接続の処理を実行するときに、選択した接続パターンファイルを識別する情報、例えば接続パターンファイルのファイル名を、選択接続パターンファイル識別情報として記憶しておく。ここでは、選択接続パターンファイル識別情報である接続パターンファイルのファイル名を、「RedPattern.xml」として説明する。
説明の簡略のため、「自動接続部171(または、より詳細には自動ログイン部105)」を、「自動接続部171」として説明する。
接続が完了した後、ユーザAが図2の記録開始ボタンを押すことにより、自動接続部171が、選択接続パターンファイル識別情報を、スクリプト生成部142に送信する。
ユーザAが図2の記録開始ボタンを押すことにより、スクリプト生成部142は、スクリプトを生成するが、生成するスクリプトに、自動接続部171から受信した選択接続パターンファイル識別情報に基づいて、選択接続パターンファイル識別情報により自動接続するためのスクリプトを生成する。
この場合、例えば、ファイル名が「RedPattern.xml」である接続パターンファイルにより、自動接続するためのスクリプトを生成する。具体的には、後述する図12の(W1)から(W4)の行である。
その後、スクリプト生成部142は、図3を用いて説明したように、ユーザAの入力とNE2からの応答とに基づいて、スクリプト生成部142がスクリプトを生成する。具体的には、後述する図12の(W5)から(W18)の行である。
次に、自動実行部144は、スクリプトに基づいて実行する場合において、接続パターンファイルにより自動接続するための記述をスクリプトファイルから検出すると、検出した選択接続パターンファイル識別情報を、自動接続部171に送信する。
例えば、スクリプトの中に選択接続パターンファイル識別情報が、ファイル名が「RedPattern.xml」である接続パターンファイルにより接続する記述である場合、自動実行部144は、選択接続パターンファイル識別情報を、つまりファイル名が「RedPattern.xml」である接続パターンファイルにより接続するという情報を、自動接続部171に送信する。
選択接続パターンファイル識別情報を受信した自動接続部171は、受信した選択接続パターンファイル識別情報に基づいて、自動ログイン接続パターンファイル記憶部121から選択し、選択した接続パターンファイルに基づき、NE2と接続の処理を実行する。この場合、ファイル名が「RedPattern.xml」である接続パターンファイルが選択される。
以上のようにして生成された、自動接続の部分を含んだスクリプトファイルの一例を、図12を用いて説明する。なお、図12においては、スクリプトの行を図12の右側に示しており、以下に、図12のスクリプトの行毎に説明を行う。
(W0)function main(){
スクリプトの単位を示す記述である。例ではfunction main(){}内の記述をスクリプトの単位として表現している。なお、処理の始まりと終わりとが明示的に示されるならば、どのような記述でも構わない。
なお(W0)の行は、接続記録開始と同時に、スクリプトに記録される。
(W1)var telnet=newTelnet();
接続手段としてTelnetを用いることを明示的に宣言している。例えばFTPにより接続する場合には、var ftp =newFTP();といった記述により明示的に接続手段を記述する。
例で示しているvarといった記述は、明示的に接続手段が判断できる記述ならばどのようなものでも構わない。例では、Telnet接続を表すtelnetというインスタンスを生成していることを示している。接続記録開始と同時に記録される。Telnetで接続した場合には例に示したように記録されるというように、接続手段によって記述が決定される。
(W2)var pattern=Pattern(RedPattern.xml、lab):
自動ログインするために必要な、ユーザ名やログインパスワードといった情報を選択する情報を示す。例では、接続ファイルとしてRedPattern.xmlというファイルを読み込み、その中のlabというパターンを選択してログインすることを宣言している。
このパターンやxmlファイルを変更することでユーザ名等を変更してログインすることができる。自動接続しない場合にはこの記述を記録しないこともできる。また、ユーザ名やパスワードを直接このスクリプト内に記述する方法をとることもできる。
接続するタイミングで接続パターンが一意に決まり、接続記録開始と同時に記録される。
例として、本スクリプトファイルが参照するRedPattern.xmlファイルを図13に示す。これについては、後に詳述する。
(W3)telnet.setTimeoutSeconds(10);
接続後、応答が一定時間以上認められなかった場合、自動的にコネクションを切断する場合の時間を指定する。例では引数の(10)の設定により、10秒返事がなかった場合に切断する処理となっている。
また、引数の値を、例えば(−1)と設定することでタイムアウトによる切断処理を行なわず、応答を待ち続けるように動作させても良い。また、タイムアウトによる設定を記述せずに動作させるようにしても良い。
また、語頭のtelnetという文字列は(W1)で宣言したインスタンスtelnetを示しており、Telnet接続における処理に対する命令であることを明示的に示している。
この記述は接続記録開始と同時に記録される。数値(例では10)は接続記録開始時にあらかじめ決定されており、一意であるものとする。この数値はスクリプトファイルに記述後、ユーザAがGUI部101の画面上から自由に書き換えられるものとする。
(W4)telnet.autoLogin(pattern);
(W1)で宣言したTelnet接続にて、自動接続をする命令を示す記述である。この記述により、本発明のアダプタ生成装置は対象NEに接続する。例では、(W2)で宣言したpatternにて示されたパターンにより接続を試みる。
接続記録開始時に記述される。
(W0)から(W4)は、NE2と接続し、記録開始ボタン(図2または図3参照)が押した時点で上記の順で同時にスクリプトに記述される。
(W5)telnet.wait(‘To’);
(W6)match=telnet.waitPrompt(‘o>’);
接続後、NEの応答の最後の行の一部を記録したものが(W5)と(W6)である。
例では、ログイン後、NE2の応答が「Tokyo>」だった場合の記述例である。(W5)は最後の行の頭文字を記述する。(W6)は最後の行の行末文字を記録する。
記録される文字は、NE2から応答された文字のうち、一意になるパターンを記述するようにする。例では、最後の行の前に、Tという文字が含まれているため、(W5)の記述がToとなる。また、〉という文字が含まれるため(W6)の記述はo〉となる。
例えば、Tbという文字が応答の中に含まれている場合はTokと記述される。参考例を図14に示す。
記述のルールにおいて、この記述を用いて後に自動処理を行なう場合、「match=」が記述されている行のパターンのみ有効とするといった処理を行なうこともできる。
例えば、match=が記述されていない行は無視し、match=が記述されている行のみ、最後の行の行末に特定された文字列が検出された場合のみ、次の行を実行する。なお(W5)のパターンは無視する。
最後の行の行末に「o〉」が検出された場合のみ、以降の処理を継続する。
なお、(W5)の行頭に文字列「match=」を記述する場合、最後の行の行頭に「To」が検出された場合のみ以降の処理を継続するといった処理に変更される。
以上のように決めることにより、例えば、match=記述を検出した場合、NE2からの受信する応答の文字列の行頭が「To」であることを検出するまで待機する。検出できた場合、次の行へ進む。検出できなかった場合、例えば、予め決められた時間内に接続したNE2からの応答があるか否かにより、以降のよりを続けるか、接続を切断するかの、の処理を実行する。
この場合、「match=」が記述されないことにより(W5)の行は実行されないが、(W5)の行に応答の文字列の行頭が表示されるため、ユーザAがスクリプトを見た場合に、確認がしやすい、という効果がある。
(W7)telnet.send(‘enable’);
ユーザAが送信するコマンド文字列が記述されている。
(W7)ではtelnet上でenableというコマンドをユーザAがCLI部131にて入力し送信した場合に記述された例が示されている。
NE2に実際に送信するまでを一塊として記述する。
(W8)telnet.sendS(‘Enter’);
ユーザAがEnter(またはReturn)キーなどを操作し、コマンドをNE2に送信した場合に記録される。sendSの文字列Enterは実際にEnterとコマンドをうったのではなく、Enterキーを押したことを明示的に示している。
(W5)(W6)(W7)(W8)は、コマンドがNE2に送信された時点で上記の順で同時に記述される。
例ではEnterキーが押下された時点で(W5)から(W8)の記述が記録される。
この後はユーザAによる処理およびNEの応答の一部が上記(W5)から(W8)の記述に従って記述される。(W9)から(W12)、(W13)から(W16)がユーザAによって記述された例である。
(W17)telnet.disconnect();
(W18)}
ユーザAまたはNEによってコネクションが切断された場合、切断を明示的に示す記述が記録される。このとき、スクリプト記述の終わりを示す(W18)の記述が同時に記録される。
スクリプトには(W5)から(W8)、(W9)から(W12)、(W13)から(W16)のような4種の情報がどの種類の情報に属するかを判別する情報が自動的に追加される。スクリプト例に限らず、4種の情報を識別できるものである。
例えば、上記に説明したU1からU4の4種の情報を、それぞれ識別できるように、「telnet.wait」、「match=telnet.waitPrompt」、「telnet.send」、「telnet.sendS」と、それぞれ異なるスクリプトのコマンドの引き数として記述する。
なお、ログおよびスクリプトはユーザAが管理対象であるNE2に接続し切断するまでをひとつの記録単位とし記録されるものとする。つまりスクリプトは接続された際に記録開始しコマンドが入力されるたびに4種類の情報記録を繰返し切断された際に記録終了する。このとき、4種類の情報のほかに、接続対象のIPアドレス、ログインユーザ名、ログインパスワードといった接続に必要な情報をスクリプトファイル内に記録することができる。
なお、切断時、ログおよびスクリプトにGUIを通じファイル名を登録させてもよい。また、切断時間や接続時間、対象のIPアドレスなどを利用し一意のファイル名を自動的に追加しても良い。
なお、接続、切断を単位とするのではなく全ての記録を一つのファイルに別途まとめて記録しても良い。
また、このときキャプチャ部141はCLI上の表示情報を保存しなくともよい。その場合、本アダプタ生成装置は、通常のCLIを有するソフトウェアとして機能する。
なお、スクリプトの記録はユーザAによってCLI上で行なわれる接続処理、コマンド送信と受信の対話型処理、切断処理と並行して進められ、ユーザAの動作と同時にスクリプトコードが生成され、GUI上に表示される。しかし、GUI上に表示せず、スクリプトを保存することとしてもよい。
スクリプトは4種類の情報を、コマンド送信のたびに追記していくこととし、記録される順番は必ずコマンド送信と同じ順番で記録されるものとする。
図13は接続パターンファイルの一例である。なお、この接続パターンファイルは、図10に説明した接続パターンファイルと同様のものである。
接続パターンファイルには、複数のパターンを記述できる。例えば、図13においては、defaultとlabという二つのパターンが記述されている。なお、接続パターンファイルは、一例としてはXMLで記述されているが、同様の別形式で保存されていても構わない。
また、ログイン名(例では<LoginName>と</LoginName>とにより囲まれる文字列)とパスワード名(例では<Password>と<Password/>とにより囲まれる文字列)、ログイン名を送信する前に検出しなければならない文字列(例では<LoginPrompt>と</LoginPrompt>とにより囲まれる文字列)、パスワードを送信する前に検出しなければならない文字列(例では<PasswordPrompt>と</PasswordPrompt>とにより囲まれる文字列)、が記述されている。
また、記録する際に、Enterキーと同様にsendSに記述されるべき文字列を記述することができる。例えば、<special−key>?</special−key>であり、この記述がある場合、<special−key>と</special−key>とで囲まれる文字列である「?」を?キーとしてユーザが送信すると、Enterキーを押したようにコマンドを送信するようにされるようになる。
また、多くの応答情報があった際に画面送りを自動で行なうように、あらかじめ画面送りを自動で行なうコマンドを記述しておくことができる。例では<pager−off−cmd>terminal length 0</pager−off−cmd>の記述であり、再生時にこのPatternファイルが選択された場合、自動ログイン後にterminallength 0 コマンドを送信する。この場合、terminallength 0 コマンドは、画面送りを自動で行なうコマンドである。
〔第2の具体例〕再生、再利用
第1の具体例では、ユーザAによる操作をスクリプトおよびログとして記録する方法について述べた。
次に、記録したスクリプトを用いて自動実行する手順について説明する。
ユーザAは、GUI部101を介してアダプタファイル記憶部153に保存してあるスクリプトを選択する。このとき接続対象となるNE2をユーザAがIPアドレスを入力するなどして指定する。ただし、スクリプトに接続先のIPアドレスやログインユーザ名、パスワードが書いてある場合はその情報を利用し、自動接続をしてもよい。
ここでは、一例として、図12のスクリプトを選択し、図12のスクリプトを実行した際のアダプタ生成装置1の自動実行部144の動作について説明する。
まず、選択されたスクリプトファイルの(W0)の行を抽出し、function main()と書かれているか否かを検出することにより、選択されたスクリプトファイルがスクリプトであるか否かを検出する。
スクリプトファイルであることを検出した場合には、次の行である(W1)を実行する。スクリプトファイルでないことを検出した場合には、例えば、ワーニングメッセージを表示し以降の処理を中断する。
ここでは、スクリプトファイルであることを検出するため、次の行に進む。
次に、(W1)の行を抽出し、Telnetによる接続であることを検出し、Telnetセッションを起動する。
次に(W2)の行を抽出し、利用するログインパターンがRedPattern.xmlのlabというパターンであることを検出する。
次に(W3)の行を抽出し、NE2の応答が10秒確認できない場合、コネクションを切断することを決定する。
ここでは、10秒以内にNE2からの確認があるものとして説明する。
次に(W4)の行を抽出し、(W2)に記述しているログインパターンに基づいて、自動接続部171を介してNE2に接続する。
接続が成功した場合、NE2から応答がある。
次に(W5)の行を抽出する。(W5)の行から文字列「match=」を検出しないため、(W5)の行は無視して、次の行に進む。
なお、文字列「match=」記述を検出した場合には、NE2からの応答の行頭が「To」であることを検出するまで待機する。検出した場合、次の行へ進む。検出できなかった場合、(W3)の行で示されたように10秒間応答を待ち、10秒以内に検出できなかった場合、NE2との接続を切断する。
次に(W6)の行を抽出する。(W6)の行から文字列「match=」を検出するため、指定される文字列「o〉」が応答の文字列の行末に検出するまで待機する。行末に検出しない場合、(W3)の行で示されたように10秒間応答を待ち、10秒以内に検出できなかった場合、NE2との接続を切断する。10秒以内に検出した場合、次の行へ進む。
ここでは、10秒以内に文字列「o〉」を検出できた場合について説明する。
次に(W7)の行を抽出し、(W7)のsend行にある「enable」文字列をNE2に送信する。
次に(W8)の行を抽出し、(W8)のsendS行にある「Enter」を検出し、Enterキー送信時に送信される文字コードをNE2に送信する。
以降、(W9)から(W16)については、上記(W5)から(W8)の処理と同様に繰り返す。
その後(W17)の行を検出し、Telnetを切断する。
以上のように、スクリプトファイルに基づいて自動実行部144が以上の処理を実行したことにより、ユーザAがスクリプトを記録した時と同じ処理を繰り返すことが可能となる。
以上の方法により、ユーザAはCLI部131上の操作を行なうだけで、全く同様の処理を行なうマクロに相当するスクリプトを生成したこととなる。
またエディタ機能を具備したGUI部101上にスクリプトを表示することで、スクリプトの情報を変更することができるため、例えばコマンド文字列を変更することで送信されるコマンドが変わり、処理内容が変更される。処理内容が異なるマクロ相当の機能をコマンドの書き換えだけで生成することができる。
また、(W5)の情報のみに合致した場合に次のコマンドを送信したり、(W5)(W6)の情報に合致しなくとも次のコマンドを送信したりといった条件を変更することもできる。
このとき、NE2からの応答が多く、一画面で表示できない場合のページ送りを自動で行なうために、接続直後にページ送りを自動で行なうコマンドを送信しておく方法をとることができる。
また、タイマー部145によりスクリプトと対象を指定し、同時に時間を指定することで、毎日1度スクリプトを行なうなどタイマー設定、スケジューリングによる予約実行指定が可能となる。
〔第3の具体例〕アダプタ化
次に、第1の具体例で生成したスクリプトファイルを、汎用のスクリプト言語であるアダプタファイルに変換する手順について説明する。第1の具体例で生成したスクリプトは、第2の具体例のような手順でユーザAが処理内容を再利用するために必要な、例えば図12の(W5)(W6)(W7)(W8)の行のような、NE2から受信する最終行の文字列の先頭の文字列と最後の文字列と、それに応じて送信するコマンドの文字列と送信コードとの、4種の情報に限定することで、ユーザAが見やすく、変更しやすい利点があるが、本発明のアダプタ生成装置1上でしか実行ができない。
このスクリプトを汎用のスクリプト言語に変換することで、該スクリプト言語が動作する環境ならばどこでもその機能が実行することが可能となり、該スクリプト言語のファイルを外部システムが遠隔実行することが可能となる。したがって第1の具体例で生成したスクリプトがアダプタとして機能することが可能となる。
図15にスクリプトファイルをExpectフォーマットに変換する例を示す。なお、Expectとは、対話的なプログラムとのやりとりを自動化するプログラムである。なお、ここでは、Expectについて説明しているが、perlなどの言語でもよい。
また、図16から図18に、アダプタ生成部143が実行する第1の具体例で示したスクリプトをExpect言語に変換するルール例を示す。アダプタ生成部143が、このルールに従ってスクリプトファイルを変換することにより、Expect言語で記述されたアダプタファイルが一意に生成される。
なお、図16から図18に示すスクリプトをExpect言語に変換するルールは、変換ルール記憶部155に予め記憶されているものである。
〔第4の具体例〕アダプタ機能追加
次に、アダプタファイルに第3の具体例から変換される以外の機能、つまり、ユーザAのNE2に対する操作のキャプチャからは得られない情報を、アダプタファイルに追加記述する手順について説明する。
まずユーザAは、GUI部101を介して、アダプタ生成部143またはアダプタファイル記憶部153からアダプタファイルを選択し、GUI部101に選択したアダプタファイルの内容を表示する。
Expectなどスクリプト言語で記述されたアダプタファイルには、NE2との通信のやり取りがパターン化されて記述されており、アダプタ生成部143がそのパターンにあわせて追加挿入可能な記述パターン(追加挿入可能記述)を、追加記述の推薦としてGUI部101を介してユーザAに提示し、また、提示した記述パターンを挿入するか否かの選択の情報、例えば「挿入する」ボタンまたは「挿入しない」ボタンの選択を、GUI部101を介してユーザAに提示する。
なお、追加挿入可能な記述パターンは、アダプタ追加パターンファイルルール記憶部154に予め記憶してあるものである。アダプタ追加パターンファイルルール記憶部154には、アダプタファイルに記述されるパターンと、追加挿入可能な記述パターンとが関連づけられて記憶されている。なお、追加挿入可能な記述パターンとは、分岐処理や制御処理のための記述であり、また、例えばexpectにより記述されている記述である。
アダプタ生成部143は、アダプタファイルの記述されるパターンに基づいて、アダプタ追加パターンファイルルール記憶部154から追加挿入可能な記述パターンを検索し、追加記述の推薦としてGUI部101を介してユーザAに提示する。
ユーザAはその提示に対し、「挿入する」ボタンまたは「挿入しない」ボタンのいずれか一方を押すことにより、挿入するか否かの選択の情報を、GUI部101を介して入力する。
GUI部101は、ユーザAが入力した選択の情報をアダプタ生成部143に送信し、ユーザAの選択が「挿入する」である場合には、アダプタ生成部143が、提示した追加挿入可能な記述パターンを、アダプタファイルに挿入する。
追加が完了すると、アダプタ生成部143が、追加挿入可能な記述パターンが追加されたアダプタファイルを、アダプタファイル記憶部153に保存する。
つまり、アダプタ追加パターンファイルルール記憶部154には、アダプタファイルに記述されるパターンと、追加挿入可能な記述パターンとがアダプタ追加パターンファイルルールとして関連づけられて記憶されている。
アダプタ生成部143は、GUI部101からユーザAにより選択されたアダプタファイルをアダプタファイル記憶部153から読み出し、読み出したアダプタファイルの記述パターンに基づいて、アダプタ追加パターンファイルルール記憶部154から追加挿入可能な記述パターンを抽出し、抽出した追加挿入可能な記述パターンを、アダプタファイルに追記する。
なお、アダプタ生成部143は、抽出した追加挿入可能な記述パターンが複数ある場合には、複数の抽出した追加挿入可能な記述パターンをユーザAにGUI部101を介して表示し、複数の抽出した追加挿入可能な記述パターンの中から選択された抽出した追加挿入可能な記述パターンを追加するようにする。
以下、具体的な機能例と機能記述の挿入例について説明する。
まず、Expectの記述例について説明する。Expectの記述において、「expect{」の次の記述は、NE2からの応答情報であり、この応答情報を検出後、sendの後の記述により検出後にどのような情報をNEに送信するかを決定する。
この記述を複数用意することで、エラーメッセージなどの異常処理対処や、特定の文字列出現時に異なる処理を行なう。
なお、条件が異なる処理をアダプタファイルに追記するために、アダプタ生成部143は、ログ記憶部151に記録されているログ中に存在する通信履歴から、該コマンドに対するNE2からの応答文字列全てを抽出し、GUI部101に出力するようにしてもよい。
次に、本装置がコマンドをNE2へ送信した後に、NE2からの応答の待ち時間によってログアウトなど対処を行なう記述を挿入する場合を例として、追加挿入可能な記述パターンが挿入される方法を説明する。
より具体的には、アダプタファイルの記述に対し、図23に示すように、「timeout{XXX}」の記述を追加する場合について説明する。ここで、「XXX」は任意の文字列である。
スクリプト言語におけるアダプタファイルのコマンドを送信する記述には、一定のパターンが存在する。例えば、図23の、Expectファイルに関しては「send」記述の後に、「“」と「”」とで囲まれた文字列がくる(図23のXB参照)。
アダプタ生成部143は、文字列パターン「send」を検出した場合、アダプタ追加パターンファイルルール記憶部154から検出した文字列パターン「send」の次に来るパターンを検出し、検出したパターンが、例えば、「timeout{send_user(省略)」であるとすると、検出した文字列パターンのあとに「timeout{send_user(省略)」の記述挿入を推薦する画面を表示する(図23のXA参照)。
図23では、検出した文字列パターンが、X1、X2、X3で示される文字列であり、X1、X2、X3の候補が、XAで示される枠の中に示されている。
ユーザAは、XAで示される枠の中から、候補のX1、X2、X3のいずれかを選択、または、いずれも選択しない。
アダプタ生成部143は、選択された場合には、選択された文字列パターンをアダプタファイルに挿入する。
なお、アダプタ生成部143は、選択された文字列パターンを挿入する際、アダプタ追加パターンファイルルール記憶部154に保存されているアダプタ追加ファイルパターンをデフォルトで追加するが、アダプタ生成部143は、選択された文字列パターンの「“」と「”」とで囲まれた文字列を、自由に変更するようにユーザAに提示するようにしてもよい。
GUI部101上でユーザAはNE2からの応答文字列を一部選択する。選択した文字列の一部が条件としてアダプタのsendの後の記述に追記される。また、この条件のパラメータの部分などを変更することで、ユーザAがスクリプトを記録した場合以外の状況への対応記述が可能となる。
このように、ユーザAのNE2に対する操作のキヤプチャからは得られない情報を、予めアダプタ追加パターンファイルルール記憶部154に記憶しておき、アダプタ生成部143がアダプタファイルにより追加記述することにより、例えば、(ア)NEの応答によって次に実行するコマンドを変更することや(分岐処理記述の追加)、(イ)コマンドを送信する前に明示的に待ち時間を設定することや(待ち時間処理記述の追加)、(ウ)コマンド送信後、NEからの応答待ち時間を設定することや(タイムアウト時間処理記述の追加)、(エ)外部アプリケーションから実行される場合に、特定のパラメータを受け、同時に実行すること(外部引数処理の追加)が出来る。
(バックアップ、ロールバック、ディスカバリ)
次に、図1の説明に戻り、バックアップ部173、ロールバック部174、ディスカバリ部172の説明をする。
バックアップ部173は、NE2への接続時に、その時点でのNE2のコンフィグレーションファイルを取得し、設定内容をNEコンフィグファイル記憶部182に保存するバックアップ機能を有する。
ロールバック部174は、NEコンフィグファイル記憶部182に保存されたコンフィグレーションファイルをNE2に送信し、設定により変更されたNE2のコンフィグレーションをバックアップ時の内容にきり戻すロールバック機能を有する。
ディスカバリ部172は、本発明装置がネットワークNW3に接続されている際、PingやSNMPを用いてネットワークNW3に存在するNE2および接続関係をNE−IF部132を介して検出し、検出したNE2をユーザAにGUI部101を介して提示するディスカバリ機能を有する。
また、ディスカバリ部172とロールバック部174とは、タイマー部175と接続されている。タイマー部175が、一定時間毎または予め決められた時間に、ディスカバリ部172またはロールバック部174に信号を送信することにより、信号を受信したディスカバリ部172またはロールバック部174が、一定時間毎または予め決められた時間に、動作することが可能である。
〔第5の具体例〕バックアップ、ロールバック
次に、本発明装置がユーザAや自動実行部144によりNE2に対して処理を行なう前に、NE2の設定ファイルを本発明装置側にアップロードするバックアップ手順および、処理後にアップロードした該設定ファイルをNE2に送信し該設定ファイルの内容をNE2に反映するロールバックの手順について説明する。
なお、NE2の設定ファイルとは、NE2におけるルーティングなどの設定情報などの、NE2で用いる設定情報である。
本装置によりNE2の設定情報を手動または自動により変更することが可能であるが、変更の前にバックアップを取っておくことにより、変更前に戻すことが可能となる。なお、バックアップ部173が実行するバックアップは、履歴として設定情報をファイルとしてNEコンフィグファイル記憶部182に保存する。また、ロールバック部174は、NEコンフィグファイル記憶部182に保存された設定情報の中から任意に選択し、選択した設定情報に基づいてロールバックすることにより、選択した任意の設定情報にNE2の設定情報を戻すことが可能である。
バックアップ部173のバックアップ機能は、ユーザAによる接続時に起動される、または定期的に接続されるといったアクションによって動作し、ユーザAが選択したデバイスに接続する。
バックアップ機能の利用プロトコルとして、TFTPおよびFTPクライアント、サーバ機能の実装などが考えられる。
バックアップ機能には設定パラメータファイルがテキストファイルで用意されており、対象NE2のプロダクトごとに該テキストファイルに記述したパラメータを読み込んで動作する。
パラメータとして、例えば、プロダクト名(例えば:RED、BLUE)の情報、使用プロトコル名(例えば:TFTP、FTP)の情報、上記プロトコルのユーザ名およびパスワード(例えば、hoge、hogehoge。これは平文で可)の情報、ダウンロードファイル名や、ファイルのあるディレクトリ名(例えば:running−config)の情報がある。
なお、バックアップ部173には、すぐにバックアップの処理を実行してもよいし、または、タイマー部175によりユーザの時間指定によるタイマーによりバックアップの処理を実行するといった設定を行なうようにしても良い。
バックアップ部173は、バックアップの処理を実行した後、ダウンロードしたファイルについては、例えば、時間などを利用しユニークなファイル名を自動生成し、生成したファイル名で保存する。例えば、IPアドレスの情報、プロダクト名の情報、およびダウンロード時間の情報を、任意に組み合わせてファイル名を生成する。
次に、図19を用いてにバックアップ手順における、一例としてのバックアップ部173の動作を説明する。
まず、ユーザAがGUI部101により入力したIPアドレスを、GUI部101を介して受信する(ステップS1901)
次に、受信したIPアドレスに基づいて、接続パターン記憶部181(productcsv記憶部120)からプロダクト名を検出する(ステップS1902、S1903)。
次に、検出したプロダクト名に基づいて、自動ログイン用接続パターンファイル記憶部121から接続パターンファイルを取得する(ステップS1904、1905)。
取得した接続パターンファイルに基づいてNEと接続し、接続したNEの設定ファイルを取得する(ステップS1906、1907)。
取得したNEの設定ファイルをNEコンフィグファイル記憶部182に保存する(ステップS1908)。
ロールバック部174の動作においては、ユーザAがGUI部101を介してNEコンフィグファイル記憶部182に保存された設定ファイルを選択し、選択した設定ファイルに基づいて、バックアップと同様にNEに接続し、接続したNEの設定ファイルを選択した設定ファイルに基づいて変更する。
なお、NEコンフィグファイル記憶部182に保存される設定ファイルにはNEを識別するIPアドレスの情報が記憶されており、そのIPアドレスに基づいて、ロールバック部174は、NEと接続してもよい。
以上説明したように、バックアップ部173およびロールバック部174が、接続パターンファイルを用いて自動的にNEと接続することにより、簡単にNEの設定ファイルがバックアップされ、また、ロールバックすることが可能である。
また、バックアップ部173およびロールバック部174により、NEの設定ファイルが、バックアップされ、また、ロールバックさることにより、NEの管理が確実なものとなる。
〔第6の具体例〕ディスカバリ
次に、ディスカバリ部172が実行する、ディスカバリ手順について説明する。
まず、ディスカバリとは、本装置が接続するネットワークNW3のIPレイヤの接続関係(構成)を探索し、把握する機能である。ディスカバリ部172が有するディスカバリ機能によって、例えば図22に示すような画面から、接続対象となるNE2を選択できるため、ユーザAはNE2のIPアドレスを調べる必要なしに、簡単にNE2を指定することが可能となる。
ディスカバリ機能は、本装置に対してユーザAがディスカバリを実行する指示の入力をした場合に起動される。
まず、本装置の起動時に、ディスカバリ部172は、自端末のIPアドレス、ディスカバリレンジ、シードデバイスのアドレスの3つのパラメータを、ユーザAの入力としてGUI部101を介して、取得する。
次に、それぞれのパラメータについて説明する。
第1のパラメータである自端末のIPアドレスは、自端末設定済みのIPアドレスを探して決定する。さらに、ユーザがIPアドレスを指定する機能を持ってもよい。
第2のパラメータであるディスカバリレンジは、本装置がディスカバリを行なう対象IPアドレス空間のことであり、以下の二種類の設定方法により設定される。これらは、ユーザAの入力から受信する情報である。
ディスカバリレンジの第1の設定方法として、二つのIPアドレスと一つのサブネットマスク指定により範囲を設定する方法がある。例えば、例1として、ディスカバリレンジを、192.168.1.0から192.168.50.255として設定する。また、例2としてディスカバリレンジを192.168.1.0/24192.168.50.0/24として設定する。
ディスカバリレンジの第2の設定方法として、一つのIPアドレスと一つのサブネットマスク指定により範囲を設定する方法がある。例えば、例として、ディスカバリレンジを、192.168.1.0/24として設定する。これは、つまり192.168.1.0から192.168.1.255のことである。
第2のパラメータであるシードデバイスのアドレスは、LANを超えた範囲でディスカバリする場合に、最初にSNMP・MIB探索を行なうデバイスであるNE2のIPアドレスのことであり、操作者にディスカバリ機能実行時に指定させる。
一般的には、シードデバイスのIPアドレスにはゲートウェイのIPアドレスが設定される。なお、設定されるIPアドレスは、何でも構わない。シードデバイスのアドレスを設定しない場合、別動作にてディスカバリを継続することも可能である。
次にディスカバリ部172の動作概要を示す。
(ステップS2001)シードデバイスと指定されたアドレスに対してPingを送信し、応答を検出する。例えば、Pingは2回以上4回未満で終了とする。
(ステップS2002)シードデバイスに対してSNMP接続を試し、可能ならばSNMPの応答を取得する。SNMP walkによりMIB情報を全て取得する。SysDescrオブジェクトからプロダクト名(例:RED router 2611)を取得する。
(ステップS2003)シードデバイスのIPアドレスのサブネットマスクからネットワークアドレスを取得し、MIB情報から該ネットワークアドレス内のIPアドレスを検出する。検出したIPアドレスにPingを送信し、応答を検出した場合SNMPにて接続する。SysDescrオブジェクトを確認してプロダクトを確定する。
(ステップS2004)シードデバイスが所有する他のインタフェースに付けられたIPアドレスを検索し、Pingによって応答を確認する。なお、SNMP walkはSNMP GetとGet Nextとの組合せでも構わない。なお、SNMP walkと、SNMP GetとGet Nextとの組み合わせの、いずれを用いるかは、処理速度を重視した選択とするのが好ましい。
(ステップS2005)ステップS2004で探索したIPアドレスのサブネットマスクから同じネットワークアドレスを持つIPアドレスをMIBから探し出し、Pingを送信する。なお、ここで応答を検出したIPアドレスは、シードデバイスとは異なる新たなデバイスのはずである。
(ステップS2006)新たに見つけたデバイスに対し、シードデバイスと同様にステップS2002からステップS2005を繰返す。なお、指定されたアドレスレンジ外のIPアドレスに関する処理は行なわず、別アドレスを探す。また、以前に発見したアドレスを別ルートで発見した場合も処理を行なわず別アドレスを探す。該当するIPアドレスがなくなるまで、ステップS2002からステップS2005の処理を繰り返す。
次に、図20に示すネットワーク構成を例として、ディスカバリ手順を具体的に説明する。なお、図20のおいては、説明のために、サブネットマスクを/24で統一して説明しているが、サブネットマスクは、例えば/24から/30と可変としてもよい。
自端末IPアドレス192.168.1.4/24、シードデバイスIPアドレス192.168.1.1、ディスカバリ対象のIPアドレスの範囲を192.168.0.0/24から192.168.50.0/24と設定し、ディスカバリを実行した場合の動作は次のようになる。
(ステップS2101)192.168.1.4(自端末)が、192.168.1.1にPingする。
(ステップS2102)192.168.1.1からの応答を確認後、SNMP walkにより192.168.1.1のMIBを取得する。
(ステップS2103)192.168.1.1のプロダクトが確定される(例:RED 2611)。
(ステップS2104)192.168.1.1のサブネットマスクは/24である。よってネットワークアドレスは192.168.1.0/24であるため、アドレスレンジは192.68.1.1から192.168.1.254と検出する。
(ステップS2105)ステップS2102で取得したMIBから、ステップS2104で検出したアドレスレンジ192.168.1.1から192.168.1.254に該当するIPアドレスを検索し、192.168.1.2、192.168.1.3、192.168.1.4、192.168.1.5を検出する。
(ステップS2106)ステップS2105で検出した192.168.1.2、192.168.1.3、192.168.1.4、192.168.1.5にPingする。
(ステップS2107)ディスカバリ機能は、Pingの応答を検出し、検出したアドレスをDBに登録する。この場合、上記4つのアドレスからが応答が返ってくるので、シードデバイス(192.168.1.1)と接続しているものとみなし、上記4つのアドレスをDBに登録する。
(ステップS2108)続いて自ネットワークの外をディスカバリする動作に移り、ステップS2102で取得したMIBから、ステップS2104で検出したアドレスレンジ192.168.1.0から192.168.1.255に該当しないIPアドレスを検索し、192.168.10.1と192.168.20.1とを検出する。
(ステップS2109)ステップS2108で検出した192.168.10.1のサブネットマスクク/24(255.255.255.0)を、ステップS2102で取得したMIBから取得し、ネットワークアドレス192.168.10.0/24を算出する。
(ステップS2110)ステップS2109で算出した192.168.10.0/24内の対向IPアドレスを検索し、192.168.10.2を検出する。
(ステップS2111)ステップS2110で検出した192.168.10.2は、DBに登録されていない未知のIPアドレスのため、新しいデバイスとして検出する。
(ステップS2112)ステップS2111で新しいデバイスとして検出した192.168.10.2に対し、SNMP walk、プロダクトを確定する。
(ステップS2113)ステップS2108で検出したデバイス192.168.10.2のMIBから、192.168.10.1から192.168.10.254に該当するIPアドレスを検索し、192.168.10.1を検出するが、DBに登録されている既知のアドレスのため、192.168.10.2と192.168.10.1が直接接続していると検出し、デバイス192.168.10.2についての処理を終了する。
(ステップS2114)ステップS2108で検出したデバイス192.168.10.2のMIBから192.168.10.0から192.168.10.255に該当しないIPアドレスを検索し、192.168.30.2を検出する。
(ステップS2115)この時点で処理が完結していないステップS2108で検出した192.168.20.1とステップS2114で検出した192.168.30.2とを比較し、数値の小さい192.168.20.1を選択し、選択したデバイスに対して次の処理を行なう。
(ステップS2116)ステップS2115で選択した192.168.20.1のサブネットマスク/24(255.255.255.0)をMIBから取得し、ネットワークアドレス192.168.20.0/24を算出する。
(ステップS2117)ステップS2116で算出した192.168.20.0/24内の対向IPアドレスを検索し、192.168.20.3を検出する。
(ステップS2118)192.168.20.3はDBに登録されていない未知のIPアドレスのため、新しいデバイスと検出し、192.168.20.3に対しSNMP walk、プロダクトを確定する。
(ステップS2119)ステップS2118で確定したデバイス192.168.20.3のMIBから192.168.20.1から192.168.20.254に該当するIPアドレスを検索し、192.168.20.1が検出されるが、192.168.10.2と192.168.10.1が直接接続していると検出され確定されるので、192.168.20.3についての検索の処理を終了する。
(ステップS2120)ステップS2118で確定したデバイス192.168.20.3のMIBから192.168.20.1から192.168.20.254に該当しないIPアドレスを検索し、192.168.40.1を検出する。
(ステップS2121)この時点で処理が完結していないステップS2114で検出した192.168.30.2とステップS2120で検出した192.168.40.1とを比較し、数値の小さい192.168.30.2に対して検索の処理を行なう。
以下ステップS2116からステップS2119と同様の処理を繰り返す。そのため、処理の説明については、以下省略とする。
(ステップS2122)ネットワーク図にある192.168.60.1、192.168.60.3、192.168.100.YYY(ここでYYYは1から254の任意の自然数)の各アドレスは、最初に指定したアドレスレンジ範囲外のため、処理を終了し、今回設定されたパラメータではディスカバリされない。具体的には未処理アドレスが192.168.60.1のみになった時点で処理終了となる。
以上のようにして、ディスカバリ部172によるディスカバリ結果の一例としての接続関係を図21に示す。
なお、図21においては、L2スイッチ192.168.1.5/24については、IPレイヤのディスカバリに限定しているため、L2の接続関係を検出していない。
また、192.168.60.1/24は範囲外のIPアドレスであるが、範囲内のIPアドレス192.168.30.3などと同じデバイスのIPアドレスのため、検出がされている。
また、192.168.60.1の対向については処理を行っていないため、ネットワークが存在することのみわかっている状態で処理が終了している。
ディスカバリ部172によりNE2が検出され、検出されたNE2をユーザAにGUI部101を介して表示する。例えば、図22のように表示される。
ユーザAは、図22のように表示されるNE2を選択することにより、簡易に接続をするNE2を選択することが可能である。
以上説明したように、本発明によるアダプタ生成装置は、NMSが用いる設定機能であり対象NEごとに仕様が異なるアダプタ部(スクリプトファイル)を自動生成するために、オペレータのCLI上の操作をキャプチャする機能、スクリプトとして必要最低限の情報のみを表示する機能、その情報を用いて装置にて操作を再現する機能、テキストで表示されたコマンドや応答条件を画面上で変更する機能、変更されたスクリプトを実行する機能、本発明装置専用の見易さを重視したスクリプトを汎用のスクリプトフォーマットに変換しアダプタを生成する機能、対象装置のコンフィグレーションファイルを取得するバックアップ機能、本発明装置を接続したIPネットワークの構成を検出する機能を有する。
以上説明した本発明の有する機能により、操作者が特定のスクリプト言語やマクロコードの記述方法に関する知識を持たずとも、NEに対するCLI上のコマンド処理から、自動的にNMSが用いるアダプタを生成することが可能となり、ルーチンワークにおける操作者の負荷が軽減されるという効果を奏する。
また、通常のスクリプトやマクロコードの場合、CLIでコマンドを実行し動作確認をする目的から考えると、ネットワーク運用者にとって、自身が実行するコマンドおよびNEからの応答情報のみが有効な情報であるにもかかわらず、自動実行のためのスクリプト専用の定義処理を多く記述することになり、視認性、解読性が悪い。
そのため、例えば既に記述したスクリプトやマクロコードのなかから、一つのコマンドのパラメータなどを変更してコードを作り直すといった簡単な変更処理に向いていないといった問題がある。
その対処として、本発明により、ネットワーク運用者のコマンド処理とその応答のみを表示させ、スクリプトの実行処理をソフトウェアで隠蔽することによって、ネットワーク運用者の必要な情報に対する視認性を向上させるという効果を奏する。
一方、自動生成したスクリプトはシーケンシャルな動作手順が記述されるのみのため、NEの応答が異なる異常時などの処理に対応できない問題点が残るため、様々な局面において処理が必要であるアダプタにそのまま用いることができない。
そこで、本発明により、スクリプトに条件分岐、待機処理記述を追加する仕組みを追加することで、状況に応じて異なる処理を記述できる柔軟性ある記述を追加できるという効果を奏する。
本発明により、更に、外部アプリケーションから実行可能な記述に変換することで、NMSが用いるアダプタをスクリプトのプログラミング知識を持たずとも容易に生成することが出来るという効果を奏する。
また、本発明により、ディスカバリによってユーザは接続機器のIPアドレスを直接入力せずとも接続機器を選択する手段をえることができるという効果を奏する。
また、本発明により、バックアップによって、自動処理が行なわれたあとに自動処理の状態を元に戻すための情報を適宜蓄えることができるという効果を奏する。
なお、ログ記憶部151、スクリプト記憶部152、アダプタファイル記憶部153、アダプタ追加パターンファイルルール記憶部154、接続パターン記憶部181、NEコンフィグファイル記憶部182は、それぞれ、ハードディスク装置や光磁気ディスク装置、フラッシュメモリ等の不揮発性のメモリや、CR−ROM等の読み出しのみが可能な記憶媒体、RAM(Random Access Memory)のような揮発性のメモリ、あるいはこれらの組み合わせにより構成されるものとする。
なお、このアダプタ生成装置1は専用のハードウェアにより実現されるものであってもよく、また、このアダプタ生成装置1はメモリおよびCPU(中央演算装置)により構成され、アダプタ生成装置1の機能を実現するためのプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
本発明は、ネットワーク管理装置に用いて好適である。
この発明の一実施形態によるアダプタ生成装置の構成を示すブロック図である。 アダプタ生成装置におけるGUIとCUIとの関係を説明するための画面図である。 スクリプトの生成手順を説明するフローチャート図である。 一実施形態によるネットワーク接続装置の構成を示すブロック図である。 Product.csvファイルの1例を示す説明図である。 接続パターンファイルの第1の1例を示す説明図である。 図1のネットワーク接続装置の動作を示す第1のフローチャート図である。 図1のネットワーク接続装置の動作を示す第2のフローチャート図である。 1例としての入力画面を示す図である。 接続パターンファイルの第2の1例を示す説明図である。 システム情報とNEとの関連を示す説明図である。 スクリプト情報の例を示す図である。 接続パターンファイル情報の例を示す図である。 CLI情報をどのようにスクリプト記述に反映するかの例を示す図である。 本装置が記録したスクリプト情報をExpectフォーマットヘ変換する例を示す図である。 Expectフォーマットへの変換手順の対応表その1である。 Expectフォーマットへの変換手順の対応表その2である。 Expectフォーマットへの変換手順の対応表その3である。 バックアップの手順を示す図である。 ディスカバリ機能の動作手順の具体例を示すためのネットワーク構成例を示す図である。 具体例に示した手順によりディスカバリされたネットワーク構成を示す図である。 ディスカバリの結果を端末GUIに出力した例を示す図である。 新たな処理記述を追加するスクリプト生成部を示す画面を示す図である。
符号の説明
1 アダプタ生成装置
2 NE
3 NW
101 GUI部
131 CLI部
132 NE−IF部
141 キャプチャ部
142 スクリプト生成部
143 アダプタ生成部
144 自動実行部
145 タイマー部
171 自動接続部
172 ディスカバリ部
173 バックアップ部
174 ロールバック部
175 タイマー部
151 ログ記憶部
152 スクリプト記憶部
153 アダプタファイル記憶部
154 アダプタ追加パターンファイルルール記憶部
155 変換ルール記憶部
181 接続パターン記憶部
182 NEコンフィグファイル記憶部

Claims (10)

  1. 端末とネットワークを介して接続されるアダプタ生成装置であり、
    ユーザより入力された第1の文字列を送信する入出力手段と、
    前記入出力手段から受信した第1の文字列を前記端末に送信し、前記送信した第1の文字列の応答である第2の文字列を前記端末から受信し、前記受信した第2の文字列を前記入出力手段に送信する送受信手段と、
    前記第1の文字列と前記第2の文字列とを取得するキャプチャ手段と、
    前記取得した第2の文字列と前記第1の文字列とを関連付けて、前記端末へ文字列を送信するためのスクリプトを生成するスクリプト生成手段と、
    を有することを特徴とするアダプタ生成装置。
  2. 同一の処理に対するスクリプトの記述と汎用的に用いられる汎用言語による記述とを関連付けて変換ルールとして予め記憶している変換ルール記憶手段と、
    前記生成したスクリプトを前記変換ルールに基づいてアダプタ言語の記述に変換することにより、前記端末へ文字列を送信するための汎用言語により記述されるアダプタファイルを生成するアダプタ生成手段と、
    を有することを特徴とする請求項1に記載のアダプタ生成装置。
  3. 汎用言語により記述される文字列の記述と追加的な制御を実行するための文字列の記述である追加挿入可能記述とを関連付けてアダプタ追加パターンファイルルールとして予め記憶しているアダプタ追加パターンファイルルール記憶手段を有し、
    前記アダプタ生成手段が、
    前記アダプタファイルの記述から文字列の記述を検出し、前記検出した文字列の記述に基づいて前記アダプタ追加パターンファイルルールから追加挿入可能記述を抽出し、前記抽出した追加挿入可能記述を表示し、前記表示した追加挿入可能記述の中から選択された追加挿入可能記述を前記アダプタファイルに追記する、
    ことを特徴とする請求項1または請求項2に記載のアダプタ生成装置。
  4. 前記スクリプトまたは前記アダプタファイルに基づいて、前記端末へ文字列を送信する自動実行手段、
    を有することを特徴とする請求項1から請求項3に記載のアダプタ生成装置。
  5. 端末のシステム情報と関連付けて前記端末と接続するための接続情報を予め記憶する接続情報記憶手段と、
    接続先の端末を指定する接続先情報を受信する接続先入力手段と、
    前記接続先入力手段の受信した接続先情報に基づいて、前記接続先情報の端末に関するシステム情報を検出するプロダクト検出手段と、
    前記プロダクト検出手段が検出したシステム情報と関連する接続情報を前記接続情報記憶部から選択し、前記選択した接続情報に基づき前記接続先情報の端末へ接続するログイン手段と、
    を有することを特徴とする請求項1から請求項4に記載のアダプタ生成装置。
  6. 前記ログイン手段が、前記選択した接続情報を識別する接続情報識別情報を前記スクリプト生成手段に送信し、
    前記スクリプト生成手段が、前記ログイン手段から受信した接続情報識別情報に基づいた記述を前記スクリプトファイルまたはアダプタファイルに記述し、
    前記自動実行手段が、前記スクリプトファイルまたはアダプタファイルの前記接続情報識別情報に基づいた記述により、前記接続情報識別情報を前記ログイン手段に送信し、
    前記ログイン手段が、前記自動実行手段から受信した接続情報識別情報に基づいて、接続情報を前記接続情報記憶部から選択し、前記選択した接続情報に基づき前記接続先情報の端末へ接続する、
    ことを特徴とする請求項5に記載のアダプタ生成装置。
  7. 前記端末の設定情報を保存するためのNEコンフィグファイル記憶手段と、
    前記端末に接続し、前記接続した端末の設定情報を前記端末から取得し、前記取得した設定情報を前記NEコンフィグファイル記憶手段に保存するバックアップ手段と、
    前記NEコンフィグファイル記憶手段に保存される設定情報に基づいて端末に接続し、前記接続した端末の設定情報を、前記設定情報に基づいて変更するロールバック手段と、
    を有することを特徴とする請求項1から請求項6に記載のアダプタ生成装置。
  8. 前記アダプタ生成装置のIPアドレスの情報と検索するIPアドレスの範囲の情報とシードデバイスのIPアドレスの情報とに基づき、ネットワーク上の端末を検出するディスカバリ手段、
    を有することを特徴とする請求項1から請求項7に記載のアダプタ生成装置。
  9. 端末とネットワークを介して接続されるアダプタ生成装置で用いられるアダプタ生成方法であり、
    入出力方法が、ユーザより入力された第1の文字列を送信する入出力過程と、
    送受信方法が、前記入出力方法から受信した第1の文字列を前記端末に送信し、前記送信した第1の文字列の応答である第2の文字列を前記端末から受信し、前記受信した第2の文字列を前記入出力方法に送信する送受信過程と、
    キャプチャ方法が、前記第1の文字列と前記第2の文字列とを取得するキャプチャ過程と、
    スクリプト生成方法が、前記取得した第2の文字列と前記第1の文字列とを関連付けて、前記端末へ文字列を送信するためのスクリプトを生成するスクリプト生成過程と、
    を有することを特徴とするアダプタ生成方法。
  10. 端末とネットワークを介して接続されるコンピュータに、
    ユーザより入力された第1の文字列を送信する入出力手段と、
    前記入出力手段から受信した第1の文字列を前記端末に送信し、前記送信した第1の文字列の応答である第2の文字列を前記端末から受信し、前記受信した第2の文字列を前記入出力手段に送信する送受信手段と、
    前記第1の文字列と前記第2の文字列とを取得するキャプチャ手段と、
    前記取得した第2の文字列と前記第1の文字列とを関連付けて、前記端末へ文字列を送信するためのスクリプトを生成するスクリプト生成手段と、
    の機能を実行させるアダプタ生成プログラム。

JP2006221572A 2006-08-15 2006-08-15 アダプタ生成装置、方法およびプログラム Expired - Fee Related JP4869831B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006221572A JP4869831B2 (ja) 2006-08-15 2006-08-15 アダプタ生成装置、方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006221572A JP4869831B2 (ja) 2006-08-15 2006-08-15 アダプタ生成装置、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2008046847A true JP2008046847A (ja) 2008-02-28
JP4869831B2 JP4869831B2 (ja) 2012-02-08

Family

ID=39180539

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006221572A Expired - Fee Related JP4869831B2 (ja) 2006-08-15 2006-08-15 アダプタ生成装置、方法およびプログラム

Country Status (1)

Country Link
JP (1) JP4869831B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009271640A (ja) * 2008-05-01 2009-11-19 Nippon Telegr & Teleph Corp <Ntt> ネットワーク機器設定装置およびネットワーク機器設定方法
JP2010015512A (ja) * 2008-07-07 2010-01-21 Nippon Telegr & Teleph Corp <Ntt> コンフィグ設定管理モデル作成装置、コンフィグ設定管理モデル作成方法およびそのプログラム
JP2010045769A (ja) * 2008-07-14 2010-02-25 Ricoh Co Ltd 組み込み機器、遠隔処理方法およびプログラム
JP2010122929A (ja) * 2008-11-20 2010-06-03 Mitsubishi Electric Information Systems Corp 遠隔端末及び遠隔端末処理プログラム
JP2012059039A (ja) * 2010-09-09 2012-03-22 Nec Corp コマンド管理装置、その方法及びそのプログラム
JP2012093996A (ja) * 2010-10-27 2012-05-17 Hitachi Systems Ltd ドキュメント類自動生成機能付クライアントコンピュータ
JP2012185599A (ja) * 2011-03-04 2012-09-27 Encourage Technologies Co Ltd 情報処理システム、プログラム改修装置、プログラム改修方法、及びプログラム
JP2015052934A (ja) * 2013-09-06 2015-03-19 Kddi株式会社 作業システム及びプログラム
US10216863B2 (en) 2016-10-17 2019-02-26 Panasonic Intellectual Property Management Co. Ltd. Program generation method, program generation apparatus, and storage medium
CN111625397A (zh) * 2020-04-14 2020-09-04 北京捷通华声科技股份有限公司 业务日志备份方法、集群、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6276955A (ja) * 1985-09-30 1987-04-09 Matsushita Electric Ind Co Ltd 通信端末装置
JPH09186716A (ja) * 1995-12-28 1997-07-15 Sumitomo Electric Ind Ltd ネットワークトポロジ認識方法およびネットワークトポロジ認識装置
JPH10107839A (ja) * 1996-10-01 1998-04-24 Murata Mach Ltd 通信端末装置
JP2000090028A (ja) * 1998-09-10 2000-03-31 Toshiba Corp ネットワーク管理装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2007053485A (ja) * 2005-08-16 2007-03-01 Nec Corp ネットワーク機器制御システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6276955A (ja) * 1985-09-30 1987-04-09 Matsushita Electric Ind Co Ltd 通信端末装置
JPH09186716A (ja) * 1995-12-28 1997-07-15 Sumitomo Electric Ind Ltd ネットワークトポロジ認識方法およびネットワークトポロジ認識装置
JPH10107839A (ja) * 1996-10-01 1998-04-24 Murata Mach Ltd 通信端末装置
JP2000090028A (ja) * 1998-09-10 2000-03-31 Toshiba Corp ネットワーク管理装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2007053485A (ja) * 2005-08-16 2007-03-01 Nec Corp ネットワーク機器制御システム

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009271640A (ja) * 2008-05-01 2009-11-19 Nippon Telegr & Teleph Corp <Ntt> ネットワーク機器設定装置およびネットワーク機器設定方法
JP2010015512A (ja) * 2008-07-07 2010-01-21 Nippon Telegr & Teleph Corp <Ntt> コンフィグ設定管理モデル作成装置、コンフィグ設定管理モデル作成方法およびそのプログラム
JP2010045769A (ja) * 2008-07-14 2010-02-25 Ricoh Co Ltd 組み込み機器、遠隔処理方法およびプログラム
JP4691177B2 (ja) * 2008-07-14 2011-06-01 株式会社リコー 組み込み機器、遠隔処理方法およびプログラム
JP2010122929A (ja) * 2008-11-20 2010-06-03 Mitsubishi Electric Information Systems Corp 遠隔端末及び遠隔端末処理プログラム
JP2012059039A (ja) * 2010-09-09 2012-03-22 Nec Corp コマンド管理装置、その方法及びそのプログラム
JP2012093996A (ja) * 2010-10-27 2012-05-17 Hitachi Systems Ltd ドキュメント類自動生成機能付クライアントコンピュータ
JP2012185599A (ja) * 2011-03-04 2012-09-27 Encourage Technologies Co Ltd 情報処理システム、プログラム改修装置、プログラム改修方法、及びプログラム
JP2015052934A (ja) * 2013-09-06 2015-03-19 Kddi株式会社 作業システム及びプログラム
US10216863B2 (en) 2016-10-17 2019-02-26 Panasonic Intellectual Property Management Co. Ltd. Program generation method, program generation apparatus, and storage medium
CN111625397A (zh) * 2020-04-14 2020-09-04 北京捷通华声科技股份有限公司 业务日志备份方法、集群、装置、电子设备及存储介质
CN111625397B (zh) * 2020-04-14 2023-09-12 北京捷通华声科技股份有限公司 业务日志备份方法、集群、装置、电子设备及存储介质

Also Published As

Publication number Publication date
JP4869831B2 (ja) 2012-02-08

Similar Documents

Publication Publication Date Title
JP4869831B2 (ja) アダプタ生成装置、方法およびプログラム
US7475126B2 (en) Method and apparatus for system lineup and testing
CN109495308B (zh) 一种基于管理信息系统的自动化运维系统
US20110239189A1 (en) Software management system for network data processing systems
CN104536890B (zh) 测试系统、方法和装置
JP2001282655A (ja) ネットワークデバイス管理方法、装置、および記憶媒体
US7831959B1 (en) Method and apparatus to manage configuration for multiple file server appliances
KR20040051738A (ko) 이기종 네트워크 장비의 구성 관리를 위한 엑스엠엘 기반망 관리 시스템 및 방법
KR100865015B1 (ko) 실시간 통합 관리정보 데이터 변환 및 모니터링 장치 및 그방법
KR101913346B1 (ko) 클라우드 환경에서의 클라우드 서버 관리 방법 및 장치
JP7231518B2 (ja) パッケージ化支援システムおよびパッケージ化支援方法
CN108037937A (zh) 一种动态更新资源的方法
CN115357662A (zh) 一种数据同步的方法、装置及介质
CN109471621B (zh) 一种基于大数据的Linux系统下的工具构建方法
CN114237538A (zh) 一种投屏控制方法、服务器、投屏设备和系统
JP4636775B2 (ja) ネットワーク監視システム
JP4293169B2 (ja) ネットワーク機器制御システム
US8032540B1 (en) Description-based user interface engine for network management applications
Loddo et al. Marionnet: a virtual network laboratory and simulation tool
JP2006331202A (ja) 管理システム
Cisco Release Notes for Device Fault Manager 1.1 on Windows 2000 and Windows NT
CN110837612B (zh) 统一资源标识符uri数据的获取方法和装置、存储介质
JP2014186432A (ja) 電子機器、およびスクリプト生成装置
JP4675834B2 (ja) ネットワーク接続装置、方法およびプログラム
Choi Python Network Automation Labs: Ansible, pyATS, Docker, and the Twilio API

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080801

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110803

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110823

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111021

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111108

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111116

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141125

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees