(57)【要約】【課題】コンフィグ設定のためのコマンド投入を効率的に行う。【解決手段】ルータ２０へのコンフィグ設定のためのコマンド投入を行うコマンド投入装置１０は、ルータ２０との間で確立したセッションＩＤと、セッションにより接続されるルータ２０のルータＩＤ、セッション状態を示したセッション管理情報１３１を記録する。そして、セッション管理情報１３１を参照して、このコマンドの投入先となるルータ２０との間に確立中のセッションの中から、コマンド処理中ではないセッションを選択し、この選択したセッションを用いてコマンドを投入する。【選択図】図１
2010044657.tif 000002
【特許請求の範囲】
【請求項１】
通信網に設置される１以上の装置へのコマンドを投入するコマンド投入装置であって、
外部装置から、前記装置へ投入するコマンドの入力を受け付ける入力部と、
前記入力されたコマンドをキューとして格納するキュー部と、
前記キュー部に格納されたコマンドを転送部へ出力する転送制御部と、
前記コマンドをセッション制御部へ出力する転送部と、
前記装置との間に確立されたセッションの識別情報と、このセッションにより接続される装置の識別情報と、前記セッションが確立中か否かおよび当該セッションによるコマンド処理中か否かを示すセッション状態とを示したセッション管理情報を記憶する記憶部と、
前記セッション管理情報を参照して、このコマンドの投入に用いるセッションを選択するセッション管理部と、
前記装置との間でのセッションの確立および切断を行い、前記セッション管理部により指示されたセッションを用いて、前記転送部から出力されたコマンドを、このコマンドの投入先となる装置へ投入し、前記セッションのセッション状態を前記セッション管理部へ通知するセッション制御部とを備え、
前記セッション管理部は、
前記コマンドの投入に用いるセッションを選択するとき、前記セッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中のセッションの中から、コマンド処理中ではないセッションを選択し、この選択したセッションを用いて前記コマンドを投入するよう前記転送制御部へ指示し、前記セッション制御部により通知されたセッション状態を用いて、前記セッション管理情報のセッション状態情報を更新することを特徴とするコマンド投入装置。
【請求項２】
前記キュー部は、
前記コマンドのうち、同じ装置において並列処理を行うと競合する競合コマンドについて、投入先の装置ごとに格納する第１のキュー部と、前記競合コマンド以外のコマンドである非競合コマンドを格納する第２のキュー部とを備え、
前記転送制御部は、
前記投入先の装置ごとの第１のキュー部および第２のキュー部それぞれに格納された前記コマンドを前記転送部へ出力し、
前記セッション管理部は、
前記転送制御部が前記第１のキュー部から競合コマンドを出力するとき、前記セッション管理情報を参照して、この競合コマンドの投入先の装置において、前記コマンド処理中か否かを判断し、当該装置において前記コマンド処理中ではないとき、前記転送制御部に対し、前記競合コマンドを、前記転送部へ出力するよう指示することを特徴とする請求項１に記載のコマンド投入装置。
【請求項３】
前記セッション管理部は、
前記コマンドの投入に用いるセッションを選択するとき、前記セッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中のセッションがなかったとき、または、前記コマンドの投入先となる装置においてコマンド処理中であるとき、
前記セッション制御部へ、前記コマンドの投入先となる装置との間に新たなセッションを確立するよう指示し、この確立したセッションを用いて、前記コマンドを投入するよう指示すること特徴とする請求項１に記載のコマンド投入装置。
【請求項４】
前記セッション管理部は、
前記コマンドの投入に用いるセッションを選択するとき、前記セッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中のセッションがなかった場合、または、前記コマンドの投入先となる装置においてコマンド処理中である場合において、既に、自身のコマンド投入装置が確立可能な最大セッション数のセッションを前記各装置との間で確立済みであるとき、
前記セッション制御部へ、前記コマンドの投入先となる装置との間に確立されたセッションの中から、前記コマンド処理を終了しているセッションを切断し、前記コマンドの投入先となる装置との間で新たなセッションを確立するよう指示し、この確立したセッションを用いて、前記コマンドを投入するよう指示すること特徴とする請求項３に記載のコマンド投入装置。
【請求項５】
前記キュー部の第１のキュー部および第２のキュー部それぞれについて、
前記入力されたコマンドを、コマンドの優先度ごとに分けて格納するキューを有し、
前記転送制御部は、
前記キュー部の優先度の高いキューから優先的に前記コマンドを取り出すことを特徴とする請求項２に記載のコマンド投入装置。
【請求項６】
請求項１ないし請求項５のいずれか１項に記載のコマンド投入装置と、このコマンド投入装置からのコマンドの投入を受け付ける前記装置を複数含むことを特徴とするコマンド投入システム。
【請求項７】
通信網に設置される１以上の装置へのコマンドを投入するコマンド投入方法であって、
前記コマンドを投入するコマンド投入装置が、
前記各装置との間でセッションを確立するステップと、
外部装置から、前記装置へ投入するコマンドの入力を受け付けるステップと、
前記入力されたコマンドをキュー部に格納するステップと、
前記キュー部に格納されたコマンドを取り出すステップと、
前記装置との間に確立されたセッションの識別情報と、このセッションにより接続される装置の識別情報と、前記セッションが確立中か否かおよびこのセッションによるコマンド処理中か否か示すセッション状態情報とを示したセッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中かつ前記コマンド処理中ではないセッションを選択するステップと、
この選択したセッションを用いて、前記コマンドの投入先となる装置へ前記コマンドを投入するステップとを実行することを特徴とするコマンド投入方法。
【請求項８】
前記キュー部は、
前記コマンド投入装置は、
前記コマンドのうち、競合コマンドについて、投入先の装置ごとに格納する第１のキュー部と、非競合コマンドを格納する第２のキュー部とを備え、
投入先の装置ごとの第１のキュー部および第２のキュー部それぞれに格納された前記コマンドを取り出し、この取り出したコマンドが競合コマンドであるとき、前記セッション管理情報を参照して、この競合コマンドの投入先の装置において、前記競合コマンドのコマンド処理中か否かを判断し、当該装置において前記コマンド処理中ではないとき、前記コマンドの投入先となる装置へ前記コマンドを投入することを特徴とする請求項７に記載のコマンド投入方法。
【請求項９】
コンピュータである前記コマンド投入装置に、請求項７または請求項８に記載のコマンド投入方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の異なるベンダの装置で構成されるＩＰ（Internet Protocol）網におけるコンフィグ設定のためのコマンド投入技術に関する。
【背景技術】
【０００２】
従来のシステムでは、単一ベンダの装置で構成される通信網を対象としており、また、サービスメニューやユーザ規模が小さかったため、コンフィグ設定のためのコマンド投入のたびにルータとのセッションの確立を行っていた。
【非特許文献１】ＮＴＴ技術ジャーナル、「ネットワークサービスを支えるサービスアクティベーション技術」、[online]、[平成20年6月24日検索]、インターネット、<URL:http://www.ntt.co.jp/journal/0508/files/jn200508018.pdf >
【非特許文献２】清水他、「次世代ネットワークに向けた転送装置のconfig作成設定試験機能の試作」、社団法人電子情報通信学会  ＴＭ研究会、信学技報、Jul.2007
【発明の開示】
【発明が解決しようとする課題】
【０００３】
今後のＮＧＮ（Next Generation Network）において、ユーザの規模の拡大、サービスメニューの多様化に伴い、通信網を構成するルータ等への遠隔によるコンフィグ設定のためのコマンド投入の頻度が増大する。また、１日あたり数十万オーダのコマンド投入処理にあたり、そのたびにルータとの間でセッションの確立と切断を行っていたのでは処理が間に合わないおそれもあり、また、コマンド投入の効率も悪い。そこで、本発明は、前記した問題を解決し、コンフィグ設定のためのコマンド投入を効率的に行うことを目的とする。
【課題を解決するための手段】
【０００４】
前記した課題を解決するため、請求項１に記載の発明は、通信網に設置される１以上の装置へのコマンドを投入するコマンド投入装置であって、外部から、装置へ投入するコマンドの入力を受け付ける入力部と、入力されたコマンドをキューとして格納するキュー部と、キュー部に格納されたコマンドを転送部へ出力する転送制御部と、コマンドをセッション制御部へ出力する転送部と、装置との間に確立されたセッションの識別情報と、このセッションにより接続される装置の識別情報と、セッションが確立中か否かおよび当該セッションによるコマンド処理中か否かを示すセッション状態とを示したセッション管理情報を記憶する記憶部と、セッション管理情報を参照して、このコマンドの投入に用いるセッションを選択するセッション管理部と、装置との間でのセッションの確立および切断を行い、セッション管理部により指示されたセッションを用いて、転送部から出力されたコマンドを、このコマンドの投入先となる装置へ投入し、セッションのセッション状態をセッション管理部へ通知するセッション制御部とを備え、セッション管理部は、コマンドの投入に用いるセッションを選択するとき、セッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中のセッションの中から、コマンド処理中ではないセッションを選択し、この選択したセッションを用いてコマンドを投入するよう転送制御部へ指示し、セッション制御部により通知されたセッション状態を用いて、セッション管理情報のセッション状態情報を更新することを特徴とするコマンド投入装置とした。
【０００５】
請求項７に記載の発明は、通信網に設置される１以上の装置へのコマンドを投入するコマンド投入方法であって、コマンドを投入するコマンド投入装置が、各装置との間でセッションを確立するステップと、外部から、装置へ投入するコマンドの入力を受け付けるステップと、入力されたコマンドをキュー部に格納するステップと、キュー部に格納されたコマンドを取り出すステップと、装置との間に確立されたセッションの識別情報と、このセッションにより接続される装置の識別情報と、セッションが確立中か否かおよびこのセッションによるコマンド処理中か否か示すセッション状態情報とを示したセッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中かつコマンド処理中ではないセッションを選択するステップと、この選択したセッションを用いて、コマンドの投入先となる装置へコマンドを投入するステップとを実行することを特徴とする。
【０００６】
このようにすることで、コマンド投入装置は、通信網に設置される装置（ルータ等の通信装置）にコマンドを投入するとき、既にこの装置との間に確立されたセッションを用いて投入する。よって、コマンド投入装置は、コマンド投入のたびにセッションの接続切断を行う必要がなくなり、コマンド投入を効率的に行うことができる。
【０００７】
請求項２は、請求項１に記載のコマンド投入装置において、キュー部は、コマンドのうち、同じ装置において並列処理を行うと競合する競合コマンドについて、投入先の装置ごとに格納する第１のキュー部と、前記競合コマンド以外のコマンドである非競合コマンドを格納する第２のキュー部とを備え、転送制御部は、投入先の装置ごとの第１のキュー部および第２のキュー部それぞれに格納されたコマンドを転送部へ出力し、セッション管理部は、転送制御部が第１のキュー部から競合コマンドを出力するとき、セッション管理情報を参照して、この競合コマンドの投入先の装置において、コマンド処理中か否かを判断し、当該装置においてコマンド処理中ではないとき、転送制御部に対し、競合コマンドを、転送部へ出力するよう指示することを特徴とする。
【０００８】
請求項８に記載の発明は、請求項７に記載のコマンド投入方法において、コマンド投入装置のキュー部は、コマンドのうち、競合コマンドについて、投入先の装置ごとに格納する第１のキュー部と、非競合コマンドを格納する第２のキュー部とを備え、投入先の装置ごとの第１のキュー部および第２のキュー部それぞれに格納されたコマンドを取り出し、この取り出したコマンドが競合コマンドであるとき、セッション管理情報を参照して、この競合コマンドの投入先の装置において、競合コマンドのコマンド処理中か否かを判断し、当該装置においてコマンド処理中ではないとき、コマンドの投入先となる装置へコマンドを投入することを特徴とする。
【０００９】
このようにすることで、コマンド投入装置は、投入コマンドについて、競合コマンド（configurationモードで投入する設定系コマンド）と、非競合コマンド（show等の参照系コマンドまたはpingやtraceroot等の試験系コマンド）とに分類し、それぞれ別のキュー部に格納する。そして、コマンド投入装置は、競合コマンドのキュー部に格納された競合コマンドについて、この競合コマンドの投入先である装置においてその前の競合コマンドのコマンド処理が完了してから投入する。よって、この装置において競合コマンドを並列処理することがなくなるので、このコマンド投入によりエラーが発生したときの原因解析を行いやすくなる。
【００１０】
請求項３は、請求項１に記載のコマンド投入装置において、セッション管理部が、コマンドの投入に用いるセッションを選択するとき、セッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中のセッションがなかったとき、または、コマンドの投入先となる装置においてコマンド処理中であるとき、セッション制御部へ、コマンドの投入先となる装置との間に新たなセッションを確立するよう指示し、この確立したセッションを用いて、コマンドを投入するよう指示すること特徴とする。
【００１１】
このようにすることで、コマンド投入装置は、このコマンドの投入先となる装置との間に確立中のセッションがなかったとき、または、コマンドの投入先となる装置においてコマンド処理中であるときでも、その装置へのセッションを確立し、コマンドを投入することができる。
【００１２】
請求項４は、請求項３に記載のコマンド投入装置において、セッション管理部が、コマンドの投入に用いるセッションを選択するとき、セッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中のセッションがなかった場合、または、コマンドの投入先となる装置においてコマンド処理中である場合において、既に、自身のコマンド投入装置が確立可能な最大セッション数のセッションを各装置との間で確立済みであるとき、セッション制御部へ、コマンドの投入先となる装置との間に確立されたセッションの中から、コマンド処理を終了しているセッションを切断し、コマンドの投入先となる装置との間で新たなセッションを確立するよう指示し、この確立したセッションを用いて、コマンドを投入するよう指示すること特徴とする。
【００１３】
このようにすることで、コマンド投入装置は、限られたセッション数で効率よくコマンドを投入できる。
【００１４】
請求項５は、請求項２に記載のコマンド投入装置において、キュー部の第１のキュー部および第２のキュー部それぞれについて、入力されたコマンドを、このコマンドの優先度ごとに分けて格納するキューを有し、転送制御部は、キュー部の優先度の高いキューから優先的にコマンドを取り出すことを特徴とする。
【００１５】
このようにすることで、コマンド投入装置は、投入対象のコマンドのうち、通常のコマンドコマンドよりも優先すべきコマンド（緊急コマンド等）について、優先的にコマンドを投入できる。
【００１６】
請求項６は、請求項１ないし請求項５のいずれか１項に記載のコマンド投入装置と、このコマンド投入装置からのコマンドの投入を受け付ける装置を複数含むことを特徴とするコマンド投入システムとした。
【００１７】
このようにすることで、請求項１ないし請求項５のいずれか１項に記載のコマンド投入装置と、このコマンド投入装置からのコマンドの投入を受け付ける複数の装置とを含むシステムを実現できる。
【００１８】
請求項９は、コンピュータであるコマンド投入装置に、請求項７または請求項８に記載のコマンド投入方法を実行させるプログラムとした。
【００１９】
このようにすることで、一般的なコンピュータに、請求項７または請求項８に記載のコマンド投入方法を実行させることができる。
【発明の効果】
【００２０】
本発明によれば、ネットワークを構成する装置へのコンフィグ用のコマンド投入を効率的に行うことができる。
【発明を実施するための最良の形態】
【００２１】
＜概要＞
以下、本発明を実施するための最良の形態（以下、実施の形態という）について説明する。図１は、本実施の形態のコマンド投入システムの構成例を示した図である。コマンド投入システムは、ルータ（装置）２０へコンフィグ用のコマンドファイルを出力する上位システム３０（３０Ａ,３０Ｂ,３０Ｃ）と、この上位システム３０からのコマンドファイルを受信し、ルータ２０へコマンドを投入するコマンド投入装置１０と、このコマンドの投入先の装置であるルータ２０（２０Ａ,２０Ｂ,２０Ｃ）とを含んで構成される。なお、この上位システム（外部装置）３０は、例えば、コマンド投入装置１０へコンフィグ用のコマンドファイルを出力するコンピュータにより実現される。また、ルータ２０は、ＩＰ網等の通信網に設置されるルータである。
【００２２】
なお、本実施の形態において、上位システム３０から出力されるコマンドファイルに含まれるコマンドは以下の３つに分類される。（１）設定系コマンド：configurationモードで投入するコマンド全般、（２）参照系コマンド：主に特権モードで投入するshow等のコマンド、（３）試験系コマンド：同じく主に特権モードで投入するpingやtraceroot等のコマンド。
【００２３】
ここで、（１）設定系コマンドは、同じルータ２０で複数のコマンドを並列処理し、エラーが発生した場合にエラーの原因解析が困難となる。よって、この（１）設定系コマンドを、本実施の形態において競合コマンドとして扱う。また、（２）参照系コマンドおよび（３）試験系コマンドは、同じルータ２０に複数のコマンドを並列処理した場合のエラー解析の問題は発生しない。よって、この（２）参照系コマンドおよび（３）試験系コマンドを、非競合コマンドとして扱う。さらに、各コマンドには、緊急コマンドとそれ以外のコマンド（通常コマンド）とがあるので、緊急コマンドは優先度の高いコマンドとして扱い、通常コマンドは優先度の低いコマンドとして扱うこととする。
【００２４】
ここで、コマンド投入システムの動作概要を簡単に説明する。ここでは、既にコマンド投入装置１０は、セッション制御部１２５により、ルータ２０（２０Ａ〜２０Ｃ）との間にセッションを確立しているものとする。そして、各セッションがどのルータ２０と確立されているか、そのセッションが確立中か切断中か、接続先のルータ２０において、コマンドによるコマンド処理が完了しているか否か等をセッション管理情報１３１に記録しているものとする。
【００２５】
まず、コマンド投入装置１０は、上位システム３０からコマンドファイルの入力を受け付ける。このコマンド投入装置１０のキュー部１２２は、競合コマンドキュー部（第１のキュー部）１２２１と、非競合コマンドキュー部（第２のキュー部）１２２２とを備える。なお、競合コマンドキュー部１２２１については、コマンドの投入先のルータ２０ごとに用意される。つまり、競合コマンドキュー部１２２１は、ルータ２０Ａ，２０Ｂ，２０Ｃそれぞれについて用意される。
【００２６】
キュー出力部１２１は、受け付けたコマンドファイルに含まれるコマンドのうち、競合コマンドについては、その競合コマンドの投入先となるルータ２０ごとに分類する。そして、分類したコマンドを、そのコマンドの投入先となるそのルータ２０についての競合コマンドキュー部１２２１へ格納する。また、キュー出力部１２１は、非競合コマンドについては非競合コマンドキュー部１２２２へ格納する。なお、非競合コマンドキュー部１２２２に格納するときには、投入先となるルータ２０については特に考慮しない。つまり、非競合コマンドキュー部１２２２には投入先が異なるコマンドが格納されていてよい。
また、競合コマンドキュー部１２２１および非競合コマンドキュー部１２２２はそれぞれ、緊急コマンド等の優先度の高いコマンドと、通常コマンド等の優先度の低いコマンドとが分類して格納されるものとする。
【００２７】
この後、転送制御部１２６は、これらの競合コマンドキュー部１２２１および非競合コマンドキュー部１２２２に蓄積されたコマンドを取り出し、転送部１２３へ出力する。そして、転送部１２３は、このコマンドを、セッション制御部１２５へ出力する。このとき、セッション管理部１２４は、このコマンド投入装置１０とルータ２０（２０Ａ〜２０Ｃ）とのセッション状態を示したセッション管理情報１３１を参照して、このセッション制御部１２５がコマンドの投入に用いるセッションの振り分けを行う。ここでは、セッション管理部１２４は、転送制御部１２６が取り出したコマンドについて、そのコマンドの投入先となるルータ２０との間に確立済みで、コマンド処理中ではないセッションを選択する。そして、セッション管理部１２４は、セッション制御部１２５に対し、選択したセッションを用いてコマンドを投入するよう指示する。つまり、コマンド投入装置１０は、コマンド投入のたびにルータ２０とのセッションの接続、切断を行うのではなく、いったんルータ２０との間にセッションを確立したら、できるだけそのセッションを用いてコマンドの投入を行う。これにより、コマンド投入のためのセッションの接続、切断の回数を削減できるのでコマンド投入を効率的に行うことができる。
【００２８】
なお、競合コマンドキュー部１２２１については、このコマンド投入装置１０に接続される（または接続される可能性のある）ルータ２０ごとに用意しておき、転送制御部１２６は、当該ルータ２０におけるコマンド処理が完了したことを確認してから、このルータ２０の競合コマンドキュー部１２２１のコマンド（競合コマンド）を転送部１２３へ出力するようにする。このようにすることで、コマンド投入装置１０が、同じルータ２０において競合コマンドが並列処理されるのを避けることができる。
【００２９】
また、競合コマンドキュー部１２２１および非競合コマンドキュー部１２２２に格納されるコマンドは、そのコマンドによって分けられ、転送制御部１２６は、より優先度の高いコマンドから優先的にコマンドを取得することで、コマンド投入装置１０はルータ２０へ緊急コマンド等を優先的に投入することができる。
【００３０】
＜構成＞
次に、このようなコマンド投入装置１０の構成を詳細に説明する。コマンド投入装置１０は、入力部１１、処理部１２、記憶部１３および出力部１４に分けられる。
【００３１】
入力部１１は、上位システム３０から、１以上のコマンドをファイル形式で受け付ける。処理部１２は、このコマンド投入装置１０全体の制御を司り、主にルータ２０とのセッションの確立および切断と、コマンド投入に用いるセッションの選択を行う。記憶部１３は、このセッションの選択時に参照されるセッション管理情報１３１を記憶する。出力部１４は、ルータ２０へコマンドを出力する。
【００３２】
入力部１１および出力部１４は、外部装置（上位システム３０やルータ２０）との間でデータの入出力を行うための入出力インタフェースから構成される。また、処理部１２は、このコマンド投入装置１０が備えるＣＰＵ（Central Processing Unit）によるプログラム実行処理や、専用回路等により実現される。さらに、記憶部１３は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ等の記憶媒体から構成される。なお、コマンド投入装置１０をプログラム実行処理により実現する場合、記憶部１３には、このコマンド投入装置１０の機能を実現するためのプログラムが記憶される。
【００３３】
ここで、コマンド投入装置１０が受け付けるコマンドファイルを説明する。図２は、図１のコマンド投入装置の受け付けるコマンドファイルを例示した図である。図２に示すように、コマンドファイルは、コマンドの投入先であるルータ２０のルータＩＤ（例えば、ＩＰ（Internet Protocol）アドレス）と、コマンド種別、１以上のコマンドが含まれる。ここでのコマンド種別は、２つ示され（コマンド種別１，２）、例えば、そのコマンドが、緊急コマンドか、通常コマンドかというコマンド種別１と、設定系コマンドか、参照系コマンドまたは試験系コマンドかというコマンド種別２とが示される。例えば、図２に示すコマンドファイルは、ＩＰアドレス「10.10.10.11」のルータ２０に対し、「aaaaaaaaa」と「bbbbbbbbb」というコマンドを投入し、これらのコマンドのコマンド種別はいずれも「緊急（緊急コマンド）」で「設定系（設定系コマンド）」であることを示す。なお、このコマンドファイルに示されるコマンドは、例えば、ＣＬＩ（Command line interface）コマンド等である。
【００３４】
図１の入力部１１は、上位システム３０からこのコマンドファイルの入力を受け付けると、処理部１２へ出力する。
【００３５】
処理部１２は、キュー出力部１２１と、競合コマンドキュー部１２２１および非競合コマンドキュー部１２２２を備えるキュー部１２２と、転送部１２３と、セッション管理部１２４と、セッション制御部１２５と、転送制御部１２６とを含んで構成される。
【００３６】
キュー出力部１２１は、入力部１１経由で入力されたコマンドファイルに含まれるコマンドが、競合コマンド（設定系コマンド）か、非競合コマンド（参照系コマンドまたは試験系コマンド）かを判断する。そして、このコマンドが、競合コマンドであれば、その競合コマンドの投入先のルータ２０のルータＩＤを読み取り、このルータ２０用の競合コマンドキュー部１２２１へ格納する。つまり、競合コマンドについては、投入先のルータ２０ごとに分類して、そのルータ２０用の競合コマンドキュー部１２２１へ格納する。一方、コマンドが非競合コマンドの場合は、投入先のルータ２０に関係なく非競合コマンドキュー部１２２２へ格納する。なお、このコマンド（競合コマンドまたは非競合コマンド）が緊急コマンドであれば、各キュー部（競合コマンドキュー部１２２１および非競合コマンドキュー部１２２２）において優先度の高いコマンド用のブロックに格納するようにする。ここでは、緊急コマンドか、それ以外のコマンド（通常コマンド）かで優先度を分けて格納するが、そのコマンドの種別によって優先度を３つ以上の段階に分けて格納するようにしてもよい。その際には、予めその優先度の段階の数のキュー（ブロック）を用意しておくものとする。
【００３７】
キュー部１２２は、所定領域に競合コマンド（競合コマンドのキュー）を格納する競合コマンドキュー部１２２１と、非競合コマンド（非競合コマンドのキュー）を格納する非競合コマンドキュー部１２２２とを備える。
【００３８】
この競合コマンドキュー部１２２１は、前記したとおり、コマンドの投入先となるルータ２０ごとに用意される。このように、競合コマンドについて、投入先となるルータ２０ごとに別個のブロックに分けて格納するのは、このコマンド投入装置１０は同じルータ２０に複数の競合コマンドを並列処理させるのを避ける必要があるためである。
【００３９】
なお、前記したとおり、競合コマンドキュー部１２２１および非競合コマンドキュー部１２２２は、緊急コマンド等、優先度の高いコマンドと、通常コマンド等、緊急コマンドよりも優先度の低いコマンドとをブロックを分けて格納する。このようにすることで、転送部１２３は、優先度の高い緊急コマンドについて、他のコマンドよりも優先的にルータ２０へ転送することができる。また、このキュー部１２２は、例えば、このコマンド投入装置１０の備えるＲＡＭ等の半導体メモリ上に形成される。
【００４０】
転送部１２３は、後記する転送制御部１２６により取り出されたコマンド（コマンドのキュー）をセッション制御部１２５へ出力する。
【００４１】
セッション管理部１２４は、セッション制御部１２５からルータ２０との間に確立されたセッションの状態を示すセッション状態情報をセッション管理情報１３１に記録する。そして、このセッション管理情報１３１を参照して、セッション制御部１２５に対し、コマンド投入に用いるセッションの振り分けや、セッションの確立および切断を指示する。なお、このセッション管理部１２４は、各ルータ２０との間で確立中のセッション数を、予め設定された最大セッション数以下にするものとする。また、このセッション管理部１２４は、セッション制御部１２５から受信した、ルータ２０へのコマンド（競合コマンド）投入によるコマンド処理の完了メッセージを転送制御部１２６へ通知する。これにより、転送制御部１２６は、当該ルータ２０への競合コマンドを、転送部１２３へ出力してよいことを知ることができる。このセッション管理部１２４が記録するセッション管理情報１３１の詳細は、図３を用いて後記する。
【００４２】
セッション制御部１２５は、セッション管理部１２４からの指示に基づきルータ２０との間でセッションの確立および切断や、確立されたセッションを用いたコマンド投入を行う。また、セッションの確立や切断、コマンド投入を行ったとき、または、そのコマンド投入後、投入先のルータ２０においてコマンド処理が完了したとき、その状態をセッション状態情報としてセッション管理部１２４へ出力する。
【００４３】
転送制御部１２６は、キュー部１２２から取り出したコマンドを転送部１２３へ出力する。ここで、転送制御部１２６は、競合コマンドキュー部１２２１から競合コマンドを取り出した場合、この取り出したこの競合コマンドの投入先であるルータ２０において、競合コマンドによるコマンド処理が完了した後でなければ、この競合コマンドを転送部１２３へ出力しないようにセッション管理部１２４により制限される。これにより、コマンド投入装置１０は、同じルータ２０において前の競合コマンドによる処理が完了していないのに、次の競合コマンドを投入することを避けることができる。なお、この競合コマンドの投入先であるルータ２０において、コマンド処理が完了したか否かは、セッション管理部１２４が、セッション管理情報１３１を参照して判断する。
【００４４】
記憶部１３は、前記したセッション管理情報１３１を記憶する。このセッション管理情報１３１は、ルータ２０との間に確立されたセッションの状態を示す情報である。図３は、図１のセッション管理情報を例示した図である。図３に示すようにセッション管理情報１３１は、セッションＩＤごとに、そのセッションにより接続されるルータ２０のルータＩＤ、投入コマンドのコマンド種別、セッション状態、セッション接続時間等が記録される。例えば、図３に示すセッション管理情報１３１は、セッションＩＤ「10010011001」のセッションは、ルータＩＤ「10.10.10.11」のルータ２０との間で確立されたセッションであり、このルータ２０には、「競合（競合コマンド）」が投入され、このコマンドによる「処理中（コマンド処理中）」であり、セッションの接続時間は「30（s）」であることを示す。なお、このセッション管理情報１３１は、ルータ２０との間に確立中の合計セッション数、このコマンド投入装置１０が確立する最大セッション数の情報もさらに含む。このセッション管理情報１３１は、セッション管理部１２４がコマンド投入に用いるセッションを選択するときに参照される。
【００４５】
図１の出力部１４は、セッション制御部１２５から出力されたコマンドをルータ２０へ投入する。
【００４６】
＜処理手順＞
次に、図１を参照しつつ、図４を用いてコマンド投入装置１０の処理手順を説明する。図４は、図１のコマンド投入装置の処理手順を示したフローチャートである。ここでは、コマンド投入装置１０が、ルータ２０との間で既に最大セッション数以下の所定数のセッションを確立し、その確立されたセッションの状態をセッション管理情報１３１に記録しているものとする。
【００４７】
まず、図１のコマンド投入装置１０の入力部１１は、上位システム３０からコマンドファイルの入力を受け付ける（Ｓ１０１）。そして、入力部１１は、このコマンドファイルを、キュー出力部１２１へ出力する。次に、キュー出力部１２１は、コマンドファイルに含まれる１以上のコマンドを分類し（Ｓ１０２）、キュー部１２２へ出力する（Ｓ１０３）。つまり、キュー出力部１２１は、コマンドファイルに含まれるコマンドが、競合コマンド（設定系コマンド）か、非競合コマンド（参照系コマンドまたは試験系コマンド）かを判断する。このコマンドが、競合コマンドであれば、その競合コマンドの投入先のルータ２０のルータＩＤを読み取り、このルータ２０用の競合コマンドキュー部１２２１へ格納する。一方、コマンドが非競合コマンドの場合は、投入先のルータ２０に関係なく非競合コマンドキュー部１２２２へ格納する。なお、このコマンド（競合コマンドおよび非競合コマンド）が緊急コマンドであれば、各キュー部（競合コマンドキュー部１２２１および非競合コマンドキュー部１２２２）において優先度の高いコマンド用のブロックに格納するようにする。
【００４８】
このようにしてキュー部１２２にコマンドのキューが形成されると、転送制御部１２６は、このキュー部１２２（競合コマンドキュー部１２２１および非競合コマンドキュー部１２２２）からコマンドを取り出し、この取り出したコマンドを転送部１２３へ出力する。そして、転送部１２３は、このコマンドをセッション制御部１２５へ出力する。
【００４９】
ここで、セッション管理部１２４は、セッション管理情報１３１を参照して、転送制御部１２６が取得したコマンドと競合するコマンド（競合コマンド）を、このコマンドの投入先のルータ２０において処理中のセッションがあるか否かを判断する（Ｓ１０４）。ここで、処理中のセッションがあれば（Ｓ１０４のＹｅｓ）、そのセッションにより接続されるルータ２０において競合コマンドの処理が完了しているか否かを判断する（Ｓ１０５）。ここで、競合コマンドの処理が完了していれば（Ｓ１０５のＹｅｓ）、Ｓ１０７へ進む。一方、競合コマンドの処理が完了していなければ（Ｓ１０５のＮｏ）、所定時間待ってから（Ｓ１０６）、Ｓ１０５へ戻り、再度この競合コマンドの処理が完了しているか否かを判断する。
【００５０】
次に、セッション管理部１２４は、セッション管理情報１３１を参照して、このコマンドの投入先のルータ２０との間でセッションを確立中、かつ、その確立中のセッションにおいてコマンド処理中ではないセッションがあるか否かを判断する（Ｓ１０７）。ここで、セッション管理情報１３１を参照して、このコマンドの投入先のルータ２０との間でセッションを確立中、かつ、その確立中のセッションにおいてコマンド処理中ではないセッションがあるとき（Ｓ１０７のＹｅｓ）、セッション管理部１２４は、転送制御部１２６へ、キュー部１２２から取得したコマンドを、転送部１２３へ出力するよう指示する。そして、転送部１２３は、このコマンドをセッション制御部１２５へ出力する。
【００５１】
この後、このセッション制御部１２５は、このコマンドを、セッション管理部１２４により選択されたセッションを用いて、ルータ２０へ投入する（Ｓ１１１）。そして、セッション管理部１２４は、当該セッションを用いてコマンドを投入したことをセッション管理情報１３１に記録し、セッション管理情報１３１を更新する（Ｓ１１２）。なお、このあと、セッション管理部１２４は、セッション制御部１２５経由で、コマンドの投入先であるルータ２０から、コマンド処理が完了した旨のメッセージを受信すると、そのメッセージに基づきセッション管理情報１３１のセッション状態情報を「処理完了」に書き換え、セッション管理情報１３１を更新する。
【００５２】
なお、Ｓ１０７において、セッション管理部１２４が、セッション管理情報１３１を参照して、コマンドの投入先のルータ２０との間に確立中のセッションがないと判断したとき、または、確立中のセッションはあるけれども、そのセッションによりコマンド処理中であると判断したとき（Ｓ１０７のＮｏ）、ルータ２０との間のアイドリングセッションリソース（どのルータ２０ともセッションを確立していないセッションリソース）があるか否かを判断する（Ｓ１０８）。つまり、セッション管理部１２４は、セッション管理情報１３１において、切断中のセッションがあるか否かを判断する。ここで、アイドリングセッションリソースがあれば（Ｓ１０８のＹｅｓ）、セッション管理部１２４は、セッション制御部１２５に対し、このコマンドの投入先となるルータ２０との間のセッション確立を指示する（Ｓ１１０）。そして、セッションの確立が成功すると、セッション管理部１２４は、このセッション確立をセッション管理情報１３１に記録する。この後、セッション制御部１２５は、この確立したセッションを用いて、ルータ２０へコマンドを投入する（Ｓ１１１）。
【００５３】
一方、Ｓ１０８において、アイドリングセッションリソースがなければ（Ｓ１０８のＮｏ）、セッション管理部１２４は、セッション管理情報１３１を参照して、確立中のセッションのうち、このセッションの接続先のルータ２０においてコマンド処理中ではないセッションを選択し、このセッションの切断を、セッション制御部１２５へ指示する（Ｓ１０９）。そして、セッション管理部１２４は、このセッションの切断を確認すると、Ｓ１１０へ進む。つまり、セッション管理部１２４は、コマンドの投入先のルータ２０との間に新たなセッションを確立するよう、セッション制御部１２５へ指示し、セッション確立を確認すると、このセッションを用いてコマンド投入を行う（Ｓ１１１）。
【００５４】
なお、Ｓ１０９において、切断対象のセッションの選択は、セッション管理情報１３１において、確立中のセッションとなっているセッションのうち、コマンド処理中ではないセッションが複数あれば、そのうち接続時間が最も長いセッションを選択するのが好ましい。このようにすることで、各セッション間の接続時間をできるだけ平準化できる。
【００５５】
コマンド投入装置１０は、以上のようなセッション制御を行うことで、上位システム３０から出力されたコマンドを効率よくルータ２０へ投入することができる。
【００５６】
＜具体例＞
次に、コマンド投入装置１０によるコマンド投入処理の具体例を説明する。図５は、図１のコマンド投入装置によるコマンド投入処理の例を示した図である。
【００５７】
なお、図１のコマンド投入装置１０が３つのルータ２０（２０Ａ〜２０Ｃ）との間に最大４本のセッション数を確立してルータ２０へコマンドを投入する場合を例に説明する。ここでは、コマンド投入装置１０がルータ２０Ａへ投入するコマンドは、コマンド１，４，６であり、ルータ２０Ｂへ投入するコマンドは、コマンド２であり、ルータ２０Ｃへ投入するコマンドは、コマンド３，５，７であるものとする。このうち、コマンド１，４，７は、非競合コマンドであり、コマンド２，３，５，６は、競合コマンドであるものとする。また、コマンド投入装置１０は、コマンド１，２，３，４，５，６，７の順にルータ２０へコマンドを投入するものとする。
【００５８】
まず、コマンド投入装置１０は、上位システム３０からコマンドファイルの入力を受け付ける。そして、キュー出力部１２１はこのコマンドファイルに含まれるコマンドを分類して、キュー部１２２へ格納する。そして、転送制御部１２６が、このキュー部１２２からコマンドを取り出すと、このコマンドの投入先のルータＩＤをセッション管理部１２４が読み出す。そして、セッション管理部１２４は、セッション管理情報１３１を参照して、この投入先のルータ２０との間に確立されたセッションがないと判断したとき、セッション制御部１２５に、このルータ２０との間にセッションを確立するよう指示する。
【００５９】
ここでは、コマンド１〜４の投入先であるルータ２０Ａ〜２０Ｃとの間のセッションは未確立なので、セッション管理部１２４は、セッション制御部１２５に、コマンド１を投入するためのルータ２０ＡとのセッションＡ、コマンド２を投入するためのルータ２０ＢとのセッションＢ、コマンド３を投入するためのルータ２０ＣとのセッションＣ、コマンド４を投入するためのルータ２０ＡとのセッションＤを確立するよう指示する。なお、前記したとおり、最大セッション数は４本なので、５本目のセッションの確立要求は行わない。
【００６０】
コマンド投入装置１０のセッション制御部１２５は、このようなセッション確立要求をルータ２０Ａ,２０Ｂ,２０Ｃに対し行う。そして、セッション制御部１２５は、このルータ２０Ａ,２０Ｂ,２０Ｃからセッション確立の応答を受信すると、セッション制御部１２５は、確立したセッションを用いて、ルータ２０Ａ〜２０Ｃに対し、コマンド１〜４の投入を行う。
【００６１】
ルータ２０Ａ〜２０Ｃは、コマンド投入が完了すると（またはこのコマンドによる設定処理が終了すると）その旨を伝えるメッセージを、コマンド投入装置１０へ通知する。ここで、コマンド投入装置１０は、コマンド４の後、コマンド５をルータ２０Ｃへ投入することになっているが、このコマンド５は、競合コマンドなので、このルータ２０Ｃから、コマンド３の処理が完了した旨のメッセージを受信してからでないと投入できない。つまり、符号５０１に示す時点以降になれば、コマンド投入装置１０はコマンド５が投入できる状態になる。
【００６２】
コマンド投入装置１０は、このルータ２０Ｃから、コマンド３の処理が完了した旨のメッセージを受信した後、セッション管理部１２４は、セッション管理情報１３１を参照して、このルータ２０Ｃとの間で確立されたセッションＣを選択し、セッション制御部１２５は、このセッションＣを用いてコマンド５を投入する。また、コマンド５に続くコマンド６についても、セッション管理部１２４は、セッション管理情報１３１を参照して、ルータ２０Ａにおいて競合コマンドの処理中ではないことを確認した上で、ルータ２０Ａとの間に確立されたセッションＡを用いて投入する。
【００６３】
次に、コマンド投入装置１０は、コマンド７をルータ２０Ｃへ投入しようとするが、符号５０２に示す時点では、まだ、セッションＣは、このルータ２０Ｃにおいてコマンド５による設定処理中なので、このセッションＣを用いてコマンドを投入できない。よって、セッション管理部１２４は、セッション管理情報１３１を参照して、アイドリングセッションリソースを探す。ここで、図５に示すようにコマンド投入装置１０は、既に４本のセッションを確立中であり、アイドリングセッションリソースはない。よって、セッション管理部１２４は、セッション管理情報１３１を参照して、既にルータ２０においてコマンド処理を完了しているセッションのうち、最も接続時間の長いセッション（セッションＢ）を、このコマンド７の投入に用いるセッションとして選択する。そして、セッション管理部１２４は、セッション制御部１２５に対し、このセッションＢの切断を指示する。これを受けてセッション制御部１２５は、ルータ２０ＢへセッションＢの切断要求を行い、このセッションＢの切断を確認すると、今度は、ルータ２０Ｃとの間に新たなセッション（セッションＥ）の確立要求を行う。そして、ルータ２０Ｃからセッション確立の応答を受信すると、セッション制御部１２５は、確立したセッションＥを用いて、ルータ２０Ｃに対し、コマンド７の投入を行う。
【００６４】
なお、コマンド投入装置１０は、このようにしてルータ２０Ａ〜２０Ｃとの間でセッションを確立した後、コマンド投入完了から所定時間経過したら、このセッションを切断するタイムアウト処理を行うようにしてもよい。
【００６５】
このようにすることで、コマンド投入装置１０は限られたセッション数を有効利用してルータ２０へ効率よくコマンドを投入できる。また、非競合コマンドについては並列処理を可能とし、競合コマンドについてルータ２０において並列処理を行わないようにするので、ルータ２０に競合コマンドの投入によりエラーが発生した場合のエラーの原因解析が容易になる。
【００６６】
なお、前記した実施の形態においてコマンド投入装置１０は、主にルータ２０へのコマンド投入を行うものとして説明したが、ルータ２０以外の装置へのコマンド投入に応用してもよい。
【００６７】
本実施の形態に係るコマンド投入装置１０は、前記したような処理を実行させるプログラムによって実現することができ、そのプログラムをコンピュータによる読み取り可能な記憶媒体（ＣＤ−ＲＯＭ等）に記憶して提供することも可能である。
【図面の簡単な説明】
【００６８】
【図１】本実施の形態のコマンド投入システムの構成例を示した図である。
【図２】図１のコマンド投入装置の受け付けるコマンドファイルを例示した図である。
【図３】図１のセッション管理情報を例示した図である。
【図４】図１のコマンド投入装置の処理手順を示したフローチャートである。
【図５】図１のコマンド投入装置によるコマンド投入処理の例を示した図である。
【符号の説明】
【００６９】
１０    コマンド投入装置
１１    入力部
１２    処理部
１３    記憶部
１４    出力部
２０（２０Ａ,２０Ｂ,２０Ｃ）  ルータ
３０    上位システム
１２１  キュー出力部
１２２  キュー部
１２３  転送部
１２４  セッション管理部
１２５  セッション制御部
１２５  転送部
１２６  転送制御部
１３１  セッション管理情報
１２２１  競合コマンドキュー部
１２２２  非競合コマンドキュー部
【図１】
2010044657.tif 000003
【図２】
2010044657.tif 000004
【図３】
2010044657.tif 000005
【図４】
2010044657.tif 000006
【図５】
2010044657.tif 000007