説明

コマンド投入装置、コマンド投入システム、コマンド投入方法およびそのプログラム

【課題】コンフィグ設定のためのコマンド投入を効率的に行う。
【解決手段】ルータ20へのコンフィグ設定のためのコマンド投入を行うコマンド投入装置10は、ルータ20との間で確立したセッションIDと、セッションにより接続されるルータ20のルータID、セッション状態を示したセッション管理情報131を記録する。そして、セッション管理情報131を参照して、このコマンドの投入先となるルータ20との間に確立中のセッションの中から、コマンド処理中ではないセッションを選択し、この選択したセッションを用いてコマンドを投入する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の異なるベンダの装置で構成されるIP(Internet Protocol)網におけるコンフィグ設定のためのコマンド投入技術に関する。
【背景技術】
【0002】
従来のシステムでは、単一ベンダの装置で構成される通信網を対象としており、また、サービスメニューやユーザ規模が小さかったため、コンフィグ設定のためのコマンド投入のたびにルータとのセッションの確立を行っていた。
【非特許文献1】NTT技術ジャーナル、「ネットワークサービスを支えるサービスアクティベーション技術」、[online]、[平成20年6月24日検索]、インターネット、<URL:http://www.ntt.co.jp/journal/0508/files/jn200508018.pdf >
【非特許文献2】清水他、「次世代ネットワークに向けた転送装置のconfig作成設定試験機能の試作」、社団法人電子情報通信学会 TM研究会、信学技報、Jul.2007
【発明の開示】
【発明が解決しようとする課題】
【0003】
今後のNGN(Next Generation Network)において、ユーザの規模の拡大、サービスメニューの多様化に伴い、通信網を構成するルータ等への遠隔によるコンフィグ設定のためのコマンド投入の頻度が増大する。また、1日あたり数十万オーダのコマンド投入処理にあたり、そのたびにルータとの間でセッションの確立と切断を行っていたのでは処理が間に合わないおそれもあり、また、コマンド投入の効率も悪い。そこで、本発明は、前記した問題を解決し、コンフィグ設定のためのコマンド投入を効率的に行うことを目的とする。
【課題を解決するための手段】
【0004】
前記した課題を解決するため、請求項1に記載の発明は、通信網に設置される1以上の装置へのコマンドを投入するコマンド投入装置であって、外部から、装置へ投入するコマンドの入力を受け付ける入力部と、入力されたコマンドをキューとして格納するキュー部と、キュー部に格納されたコマンドを転送部へ出力する転送制御部と、コマンドをセッション制御部へ出力する転送部と、装置との間に確立されたセッションの識別情報と、このセッションにより接続される装置の識別情報と、セッションが確立中か否かおよび当該セッションによるコマンド処理中か否かを示すセッション状態とを示したセッション管理情報を記憶する記憶部と、セッション管理情報を参照して、このコマンドの投入に用いるセッションを選択するセッション管理部と、装置との間でのセッションの確立および切断を行い、セッション管理部により指示されたセッションを用いて、転送部から出力されたコマンドを、このコマンドの投入先となる装置へ投入し、セッションのセッション状態をセッション管理部へ通知するセッション制御部とを備え、セッション管理部は、コマンドの投入に用いるセッションを選択するとき、セッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中のセッションの中から、コマンド処理中ではないセッションを選択し、この選択したセッションを用いてコマンドを投入するよう転送制御部へ指示し、セッション制御部により通知されたセッション状態を用いて、セッション管理情報のセッション状態情報を更新することを特徴とするコマンド投入装置とした。
【0005】
請求項7に記載の発明は、通信網に設置される1以上の装置へのコマンドを投入するコマンド投入方法であって、コマンドを投入するコマンド投入装置が、各装置との間でセッションを確立するステップと、外部から、装置へ投入するコマンドの入力を受け付けるステップと、入力されたコマンドをキュー部に格納するステップと、キュー部に格納されたコマンドを取り出すステップと、装置との間に確立されたセッションの識別情報と、このセッションにより接続される装置の識別情報と、セッションが確立中か否かおよびこのセッションによるコマンド処理中か否か示すセッション状態情報とを示したセッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中かつコマンド処理中ではないセッションを選択するステップと、この選択したセッションを用いて、コマンドの投入先となる装置へコマンドを投入するステップとを実行することを特徴とする。
【0006】
このようにすることで、コマンド投入装置は、通信網に設置される装置(ルータ等の通信装置)にコマンドを投入するとき、既にこの装置との間に確立されたセッションを用いて投入する。よって、コマンド投入装置は、コマンド投入のたびにセッションの接続切断を行う必要がなくなり、コマンド投入を効率的に行うことができる。
【0007】
請求項2は、請求項1に記載のコマンド投入装置において、キュー部は、コマンドのうち、同じ装置において並列処理を行うと競合する競合コマンドについて、投入先の装置ごとに格納する第1のキュー部と、前記競合コマンド以外のコマンドである非競合コマンドを格納する第2のキュー部とを備え、転送制御部は、投入先の装置ごとの第1のキュー部および第2のキュー部それぞれに格納されたコマンドを転送部へ出力し、セッション管理部は、転送制御部が第1のキュー部から競合コマンドを出力するとき、セッション管理情報を参照して、この競合コマンドの投入先の装置において、コマンド処理中か否かを判断し、当該装置においてコマンド処理中ではないとき、転送制御部に対し、競合コマンドを、転送部へ出力するよう指示することを特徴とする。
【0008】
請求項8に記載の発明は、請求項7に記載のコマンド投入方法において、コマンド投入装置のキュー部は、コマンドのうち、競合コマンドについて、投入先の装置ごとに格納する第1のキュー部と、非競合コマンドを格納する第2のキュー部とを備え、投入先の装置ごとの第1のキュー部および第2のキュー部それぞれに格納されたコマンドを取り出し、この取り出したコマンドが競合コマンドであるとき、セッション管理情報を参照して、この競合コマンドの投入先の装置において、競合コマンドのコマンド処理中か否かを判断し、当該装置においてコマンド処理中ではないとき、コマンドの投入先となる装置へコマンドを投入することを特徴とする。
【0009】
このようにすることで、コマンド投入装置は、投入コマンドについて、競合コマンド(configurationモードで投入する設定系コマンド)と、非競合コマンド(show等の参照系コマンドまたはpingやtraceroot等の試験系コマンド)とに分類し、それぞれ別のキュー部に格納する。そして、コマンド投入装置は、競合コマンドのキュー部に格納された競合コマンドについて、この競合コマンドの投入先である装置においてその前の競合コマンドのコマンド処理が完了してから投入する。よって、この装置において競合コマンドを並列処理することがなくなるので、このコマンド投入によりエラーが発生したときの原因解析を行いやすくなる。
【0010】
請求項3は、請求項1に記載のコマンド投入装置において、セッション管理部が、コマンドの投入に用いるセッションを選択するとき、セッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中のセッションがなかったとき、または、コマンドの投入先となる装置においてコマンド処理中であるとき、セッション制御部へ、コマンドの投入先となる装置との間に新たなセッションを確立するよう指示し、この確立したセッションを用いて、コマンドを投入するよう指示すること特徴とする。
【0011】
このようにすることで、コマンド投入装置は、このコマンドの投入先となる装置との間に確立中のセッションがなかったとき、または、コマンドの投入先となる装置においてコマンド処理中であるときでも、その装置へのセッションを確立し、コマンドを投入することができる。
【0012】
請求項4は、請求項3に記載のコマンド投入装置において、セッション管理部が、コマンドの投入に用いるセッションを選択するとき、セッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中のセッションがなかった場合、または、コマンドの投入先となる装置においてコマンド処理中である場合において、既に、自身のコマンド投入装置が確立可能な最大セッション数のセッションを各装置との間で確立済みであるとき、セッション制御部へ、コマンドの投入先となる装置との間に確立されたセッションの中から、コマンド処理を終了しているセッションを切断し、コマンドの投入先となる装置との間で新たなセッションを確立するよう指示し、この確立したセッションを用いて、コマンドを投入するよう指示すること特徴とする。
【0013】
このようにすることで、コマンド投入装置は、限られたセッション数で効率よくコマンドを投入できる。
【0014】
請求項5は、請求項2に記載のコマンド投入装置において、キュー部の第1のキュー部および第2のキュー部それぞれについて、入力されたコマンドを、このコマンドの優先度ごとに分けて格納するキューを有し、転送制御部は、キュー部の優先度の高いキューから優先的にコマンドを取り出すことを特徴とする。
【0015】
このようにすることで、コマンド投入装置は、投入対象のコマンドのうち、通常のコマンドコマンドよりも優先すべきコマンド(緊急コマンド等)について、優先的にコマンドを投入できる。
【0016】
請求項6は、請求項1ないし請求項5のいずれか1項に記載のコマンド投入装置と、このコマンド投入装置からのコマンドの投入を受け付ける装置を複数含むことを特徴とするコマンド投入システムとした。
【0017】
このようにすることで、請求項1ないし請求項5のいずれか1項に記載のコマンド投入装置と、このコマンド投入装置からのコマンドの投入を受け付ける複数の装置とを含むシステムを実現できる。
【0018】
請求項9は、コンピュータであるコマンド投入装置に、請求項7または請求項8に記載のコマンド投入方法を実行させるプログラムとした。
【0019】
このようにすることで、一般的なコンピュータに、請求項7または請求項8に記載のコマンド投入方法を実行させることができる。
【発明の効果】
【0020】
本発明によれば、ネットワークを構成する装置へのコンフィグ用のコマンド投入を効率的に行うことができる。
【発明を実施するための最良の形態】
【0021】
<概要>
以下、本発明を実施するための最良の形態(以下、実施の形態という)について説明する。図1は、本実施の形態のコマンド投入システムの構成例を示した図である。コマンド投入システムは、ルータ(装置)20へコンフィグ用のコマンドファイルを出力する上位システム30(30A,30B,30C)と、この上位システム30からのコマンドファイルを受信し、ルータ20へコマンドを投入するコマンド投入装置10と、このコマンドの投入先の装置であるルータ20(20A,20B,20C)とを含んで構成される。なお、この上位システム(外部装置)30は、例えば、コマンド投入装置10へコンフィグ用のコマンドファイルを出力するコンピュータにより実現される。また、ルータ20は、IP網等の通信網に設置されるルータである。
【0022】
なお、本実施の形態において、上位システム30から出力されるコマンドファイルに含まれるコマンドは以下の3つに分類される。(1)設定系コマンド:configurationモードで投入するコマンド全般、(2)参照系コマンド:主に特権モードで投入するshow等のコマンド、(3)試験系コマンド:同じく主に特権モードで投入するpingやtraceroot等のコマンド。
【0023】
ここで、(1)設定系コマンドは、同じルータ20で複数のコマンドを並列処理し、エラーが発生した場合にエラーの原因解析が困難となる。よって、この(1)設定系コマンドを、本実施の形態において競合コマンドとして扱う。また、(2)参照系コマンドおよび(3)試験系コマンドは、同じルータ20に複数のコマンドを並列処理した場合のエラー解析の問題は発生しない。よって、この(2)参照系コマンドおよび(3)試験系コマンドを、非競合コマンドとして扱う。さらに、各コマンドには、緊急コマンドとそれ以外のコマンド(通常コマンド)とがあるので、緊急コマンドは優先度の高いコマンドとして扱い、通常コマンドは優先度の低いコマンドとして扱うこととする。
【0024】
ここで、コマンド投入システムの動作概要を簡単に説明する。ここでは、既にコマンド投入装置10は、セッション制御部125により、ルータ20(20A〜20C)との間にセッションを確立しているものとする。そして、各セッションがどのルータ20と確立されているか、そのセッションが確立中か切断中か、接続先のルータ20において、コマンドによるコマンド処理が完了しているか否か等をセッション管理情報131に記録しているものとする。
【0025】
まず、コマンド投入装置10は、上位システム30からコマンドファイルの入力を受け付ける。このコマンド投入装置10のキュー部122は、競合コマンドキュー部(第1のキュー部)1221と、非競合コマンドキュー部(第2のキュー部)1222とを備える。なお、競合コマンドキュー部1221については、コマンドの投入先のルータ20ごとに用意される。つまり、競合コマンドキュー部1221は、ルータ20A,20B,20Cそれぞれについて用意される。
【0026】
キュー出力部121は、受け付けたコマンドファイルに含まれるコマンドのうち、競合コマンドについては、その競合コマンドの投入先となるルータ20ごとに分類する。そして、分類したコマンドを、そのコマンドの投入先となるそのルータ20についての競合コマンドキュー部1221へ格納する。また、キュー出力部121は、非競合コマンドについては非競合コマンドキュー部1222へ格納する。なお、非競合コマンドキュー部1222に格納するときには、投入先となるルータ20については特に考慮しない。つまり、非競合コマンドキュー部1222には投入先が異なるコマンドが格納されていてよい。
また、競合コマンドキュー部1221および非競合コマンドキュー部1222はそれぞれ、緊急コマンド等の優先度の高いコマンドと、通常コマンド等の優先度の低いコマンドとが分類して格納されるものとする。
【0027】
この後、転送制御部126は、これらの競合コマンドキュー部1221および非競合コマンドキュー部1222に蓄積されたコマンドを取り出し、転送部123へ出力する。そして、転送部123は、このコマンドを、セッション制御部125へ出力する。このとき、セッション管理部124は、このコマンド投入装置10とルータ20(20A〜20C)とのセッション状態を示したセッション管理情報131を参照して、このセッション制御部125がコマンドの投入に用いるセッションの振り分けを行う。ここでは、セッション管理部124は、転送制御部126が取り出したコマンドについて、そのコマンドの投入先となるルータ20との間に確立済みで、コマンド処理中ではないセッションを選択する。そして、セッション管理部124は、セッション制御部125に対し、選択したセッションを用いてコマンドを投入するよう指示する。つまり、コマンド投入装置10は、コマンド投入のたびにルータ20とのセッションの接続、切断を行うのではなく、いったんルータ20との間にセッションを確立したら、できるだけそのセッションを用いてコマンドの投入を行う。これにより、コマンド投入のためのセッションの接続、切断の回数を削減できるのでコマンド投入を効率的に行うことができる。
【0028】
なお、競合コマンドキュー部1221については、このコマンド投入装置10に接続される(または接続される可能性のある)ルータ20ごとに用意しておき、転送制御部126は、当該ルータ20におけるコマンド処理が完了したことを確認してから、このルータ20の競合コマンドキュー部1221のコマンド(競合コマンド)を転送部123へ出力するようにする。このようにすることで、コマンド投入装置10が、同じルータ20において競合コマンドが並列処理されるのを避けることができる。
【0029】
また、競合コマンドキュー部1221および非競合コマンドキュー部1222に格納されるコマンドは、そのコマンドによって分けられ、転送制御部126は、より優先度の高いコマンドから優先的にコマンドを取得することで、コマンド投入装置10はルータ20へ緊急コマンド等を優先的に投入することができる。
【0030】
<構成>
次に、このようなコマンド投入装置10の構成を詳細に説明する。コマンド投入装置10は、入力部11、処理部12、記憶部13および出力部14に分けられる。
【0031】
入力部11は、上位システム30から、1以上のコマンドをファイル形式で受け付ける。処理部12は、このコマンド投入装置10全体の制御を司り、主にルータ20とのセッションの確立および切断と、コマンド投入に用いるセッションの選択を行う。記憶部13は、このセッションの選択時に参照されるセッション管理情報131を記憶する。出力部14は、ルータ20へコマンドを出力する。
【0032】
入力部11および出力部14は、外部装置(上位システム30やルータ20)との間でデータの入出力を行うための入出力インタフェースから構成される。また、処理部12は、このコマンド投入装置10が備えるCPU(Central Processing Unit)によるプログラム実行処理や、専用回路等により実現される。さらに、記憶部13は、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等の記憶媒体から構成される。なお、コマンド投入装置10をプログラム実行処理により実現する場合、記憶部13には、このコマンド投入装置10の機能を実現するためのプログラムが記憶される。
【0033】
ここで、コマンド投入装置10が受け付けるコマンドファイルを説明する。図2は、図1のコマンド投入装置の受け付けるコマンドファイルを例示した図である。図2に示すように、コマンドファイルは、コマンドの投入先であるルータ20のルータID(例えば、IP(Internet Protocol)アドレス)と、コマンド種別、1以上のコマンドが含まれる。ここでのコマンド種別は、2つ示され(コマンド種別1,2)、例えば、そのコマンドが、緊急コマンドか、通常コマンドかというコマンド種別1と、設定系コマンドか、参照系コマンドまたは試験系コマンドかというコマンド種別2とが示される。例えば、図2に示すコマンドファイルは、IPアドレス「10.10.10.11」のルータ20に対し、「aaaaaaaaa」と「bbbbbbbbb」というコマンドを投入し、これらのコマンドのコマンド種別はいずれも「緊急(緊急コマンド)」で「設定系(設定系コマンド)」であることを示す。なお、このコマンドファイルに示されるコマンドは、例えば、CLI(Command line interface)コマンド等である。
【0034】
図1の入力部11は、上位システム30からこのコマンドファイルの入力を受け付けると、処理部12へ出力する。
【0035】
処理部12は、キュー出力部121と、競合コマンドキュー部1221および非競合コマンドキュー部1222を備えるキュー部122と、転送部123と、セッション管理部124と、セッション制御部125と、転送制御部126とを含んで構成される。
【0036】
キュー出力部121は、入力部11経由で入力されたコマンドファイルに含まれるコマンドが、競合コマンド(設定系コマンド)か、非競合コマンド(参照系コマンドまたは試験系コマンド)かを判断する。そして、このコマンドが、競合コマンドであれば、その競合コマンドの投入先のルータ20のルータIDを読み取り、このルータ20用の競合コマンドキュー部1221へ格納する。つまり、競合コマンドについては、投入先のルータ20ごとに分類して、そのルータ20用の競合コマンドキュー部1221へ格納する。一方、コマンドが非競合コマンドの場合は、投入先のルータ20に関係なく非競合コマンドキュー部1222へ格納する。なお、このコマンド(競合コマンドまたは非競合コマンド)が緊急コマンドであれば、各キュー部(競合コマンドキュー部1221および非競合コマンドキュー部1222)において優先度の高いコマンド用のブロックに格納するようにする。ここでは、緊急コマンドか、それ以外のコマンド(通常コマンド)かで優先度を分けて格納するが、そのコマンドの種別によって優先度を3つ以上の段階に分けて格納するようにしてもよい。その際には、予めその優先度の段階の数のキュー(ブロック)を用意しておくものとする。
【0037】
キュー部122は、所定領域に競合コマンド(競合コマンドのキュー)を格納する競合コマンドキュー部1221と、非競合コマンド(非競合コマンドのキュー)を格納する非競合コマンドキュー部1222とを備える。
【0038】
この競合コマンドキュー部1221は、前記したとおり、コマンドの投入先となるルータ20ごとに用意される。このように、競合コマンドについて、投入先となるルータ20ごとに別個のブロックに分けて格納するのは、このコマンド投入装置10は同じルータ20に複数の競合コマンドを並列処理させるのを避ける必要があるためである。
【0039】
なお、前記したとおり、競合コマンドキュー部1221および非競合コマンドキュー部1222は、緊急コマンド等、優先度の高いコマンドと、通常コマンド等、緊急コマンドよりも優先度の低いコマンドとをブロックを分けて格納する。このようにすることで、転送部123は、優先度の高い緊急コマンドについて、他のコマンドよりも優先的にルータ20へ転送することができる。また、このキュー部122は、例えば、このコマンド投入装置10の備えるRAM等の半導体メモリ上に形成される。
【0040】
転送部123は、後記する転送制御部126により取り出されたコマンド(コマンドのキュー)をセッション制御部125へ出力する。
【0041】
セッション管理部124は、セッション制御部125からルータ20との間に確立されたセッションの状態を示すセッション状態情報をセッション管理情報131に記録する。そして、このセッション管理情報131を参照して、セッション制御部125に対し、コマンド投入に用いるセッションの振り分けや、セッションの確立および切断を指示する。なお、このセッション管理部124は、各ルータ20との間で確立中のセッション数を、予め設定された最大セッション数以下にするものとする。また、このセッション管理部124は、セッション制御部125から受信した、ルータ20へのコマンド(競合コマンド)投入によるコマンド処理の完了メッセージを転送制御部126へ通知する。これにより、転送制御部126は、当該ルータ20への競合コマンドを、転送部123へ出力してよいことを知ることができる。このセッション管理部124が記録するセッション管理情報131の詳細は、図3を用いて後記する。
【0042】
セッション制御部125は、セッション管理部124からの指示に基づきルータ20との間でセッションの確立および切断や、確立されたセッションを用いたコマンド投入を行う。また、セッションの確立や切断、コマンド投入を行ったとき、または、そのコマンド投入後、投入先のルータ20においてコマンド処理が完了したとき、その状態をセッション状態情報としてセッション管理部124へ出力する。
【0043】
転送制御部126は、キュー部122から取り出したコマンドを転送部123へ出力する。ここで、転送制御部126は、競合コマンドキュー部1221から競合コマンドを取り出した場合、この取り出したこの競合コマンドの投入先であるルータ20において、競合コマンドによるコマンド処理が完了した後でなければ、この競合コマンドを転送部123へ出力しないようにセッション管理部124により制限される。これにより、コマンド投入装置10は、同じルータ20において前の競合コマンドによる処理が完了していないのに、次の競合コマンドを投入することを避けることができる。なお、この競合コマンドの投入先であるルータ20において、コマンド処理が完了したか否かは、セッション管理部124が、セッション管理情報131を参照して判断する。
【0044】
記憶部13は、前記したセッション管理情報131を記憶する。このセッション管理情報131は、ルータ20との間に確立されたセッションの状態を示す情報である。図3は、図1のセッション管理情報を例示した図である。図3に示すようにセッション管理情報131は、セッションIDごとに、そのセッションにより接続されるルータ20のルータID、投入コマンドのコマンド種別、セッション状態、セッション接続時間等が記録される。例えば、図3に示すセッション管理情報131は、セッションID「10010011001」のセッションは、ルータID「10.10.10.11」のルータ20との間で確立されたセッションであり、このルータ20には、「競合(競合コマンド)」が投入され、このコマンドによる「処理中(コマンド処理中)」であり、セッションの接続時間は「30(s)」であることを示す。なお、このセッション管理情報131は、ルータ20との間に確立中の合計セッション数、このコマンド投入装置10が確立する最大セッション数の情報もさらに含む。このセッション管理情報131は、セッション管理部124がコマンド投入に用いるセッションを選択するときに参照される。
【0045】
図1の出力部14は、セッション制御部125から出力されたコマンドをルータ20へ投入する。
【0046】
<処理手順>
次に、図1を参照しつつ、図4を用いてコマンド投入装置10の処理手順を説明する。図4は、図1のコマンド投入装置の処理手順を示したフローチャートである。ここでは、コマンド投入装置10が、ルータ20との間で既に最大セッション数以下の所定数のセッションを確立し、その確立されたセッションの状態をセッション管理情報131に記録しているものとする。
【0047】
まず、図1のコマンド投入装置10の入力部11は、上位システム30からコマンドファイルの入力を受け付ける(S101)。そして、入力部11は、このコマンドファイルを、キュー出力部121へ出力する。次に、キュー出力部121は、コマンドファイルに含まれる1以上のコマンドを分類し(S102)、キュー部122へ出力する(S103)。つまり、キュー出力部121は、コマンドファイルに含まれるコマンドが、競合コマンド(設定系コマンド)か、非競合コマンド(参照系コマンドまたは試験系コマンド)かを判断する。このコマンドが、競合コマンドであれば、その競合コマンドの投入先のルータ20のルータIDを読み取り、このルータ20用の競合コマンドキュー部1221へ格納する。一方、コマンドが非競合コマンドの場合は、投入先のルータ20に関係なく非競合コマンドキュー部1222へ格納する。なお、このコマンド(競合コマンドおよび非競合コマンド)が緊急コマンドであれば、各キュー部(競合コマンドキュー部1221および非競合コマンドキュー部1222)において優先度の高いコマンド用のブロックに格納するようにする。
【0048】
このようにしてキュー部122にコマンドのキューが形成されると、転送制御部126は、このキュー部122(競合コマンドキュー部1221および非競合コマンドキュー部1222)からコマンドを取り出し、この取り出したコマンドを転送部123へ出力する。そして、転送部123は、このコマンドをセッション制御部125へ出力する。
【0049】
ここで、セッション管理部124は、セッション管理情報131を参照して、転送制御部126が取得したコマンドと競合するコマンド(競合コマンド)を、このコマンドの投入先のルータ20において処理中のセッションがあるか否かを判断する(S104)。ここで、処理中のセッションがあれば(S104のYes)、そのセッションにより接続されるルータ20において競合コマンドの処理が完了しているか否かを判断する(S105)。ここで、競合コマンドの処理が完了していれば(S105のYes)、S107へ進む。一方、競合コマンドの処理が完了していなければ(S105のNo)、所定時間待ってから(S106)、S105へ戻り、再度この競合コマンドの処理が完了しているか否かを判断する。
【0050】
次に、セッション管理部124は、セッション管理情報131を参照して、このコマンドの投入先のルータ20との間でセッションを確立中、かつ、その確立中のセッションにおいてコマンド処理中ではないセッションがあるか否かを判断する(S107)。ここで、セッション管理情報131を参照して、このコマンドの投入先のルータ20との間でセッションを確立中、かつ、その確立中のセッションにおいてコマンド処理中ではないセッションがあるとき(S107のYes)、セッション管理部124は、転送制御部126へ、キュー部122から取得したコマンドを、転送部123へ出力するよう指示する。そして、転送部123は、このコマンドをセッション制御部125へ出力する。
【0051】
この後、このセッション制御部125は、このコマンドを、セッション管理部124により選択されたセッションを用いて、ルータ20へ投入する(S111)。そして、セッション管理部124は、当該セッションを用いてコマンドを投入したことをセッション管理情報131に記録し、セッション管理情報131を更新する(S112)。なお、このあと、セッション管理部124は、セッション制御部125経由で、コマンドの投入先であるルータ20から、コマンド処理が完了した旨のメッセージを受信すると、そのメッセージに基づきセッション管理情報131のセッション状態情報を「処理完了」に書き換え、セッション管理情報131を更新する。
【0052】
なお、S107において、セッション管理部124が、セッション管理情報131を参照して、コマンドの投入先のルータ20との間に確立中のセッションがないと判断したとき、または、確立中のセッションはあるけれども、そのセッションによりコマンド処理中であると判断したとき(S107のNo)、ルータ20との間のアイドリングセッションリソース(どのルータ20ともセッションを確立していないセッションリソース)があるか否かを判断する(S108)。つまり、セッション管理部124は、セッション管理情報131において、切断中のセッションがあるか否かを判断する。ここで、アイドリングセッションリソースがあれば(S108のYes)、セッション管理部124は、セッション制御部125に対し、このコマンドの投入先となるルータ20との間のセッション確立を指示する(S110)。そして、セッションの確立が成功すると、セッション管理部124は、このセッション確立をセッション管理情報131に記録する。この後、セッション制御部125は、この確立したセッションを用いて、ルータ20へコマンドを投入する(S111)。
【0053】
一方、S108において、アイドリングセッションリソースがなければ(S108のNo)、セッション管理部124は、セッション管理情報131を参照して、確立中のセッションのうち、このセッションの接続先のルータ20においてコマンド処理中ではないセッションを選択し、このセッションの切断を、セッション制御部125へ指示する(S109)。そして、セッション管理部124は、このセッションの切断を確認すると、S110へ進む。つまり、セッション管理部124は、コマンドの投入先のルータ20との間に新たなセッションを確立するよう、セッション制御部125へ指示し、セッション確立を確認すると、このセッションを用いてコマンド投入を行う(S111)。
【0054】
なお、S109において、切断対象のセッションの選択は、セッション管理情報131において、確立中のセッションとなっているセッションのうち、コマンド処理中ではないセッションが複数あれば、そのうち接続時間が最も長いセッションを選択するのが好ましい。このようにすることで、各セッション間の接続時間をできるだけ平準化できる。
【0055】
コマンド投入装置10は、以上のようなセッション制御を行うことで、上位システム30から出力されたコマンドを効率よくルータ20へ投入することができる。
【0056】
<具体例>
次に、コマンド投入装置10によるコマンド投入処理の具体例を説明する。図5は、図1のコマンド投入装置によるコマンド投入処理の例を示した図である。
【0057】
なお、図1のコマンド投入装置10が3つのルータ20(20A〜20C)との間に最大4本のセッション数を確立してルータ20へコマンドを投入する場合を例に説明する。ここでは、コマンド投入装置10がルータ20Aへ投入するコマンドは、コマンド1,4,6であり、ルータ20Bへ投入するコマンドは、コマンド2であり、ルータ20Cへ投入するコマンドは、コマンド3,5,7であるものとする。このうち、コマンド1,4,7は、非競合コマンドであり、コマンド2,3,5,6は、競合コマンドであるものとする。また、コマンド投入装置10は、コマンド1,2,3,4,5,6,7の順にルータ20へコマンドを投入するものとする。
【0058】
まず、コマンド投入装置10は、上位システム30からコマンドファイルの入力を受け付ける。そして、キュー出力部121はこのコマンドファイルに含まれるコマンドを分類して、キュー部122へ格納する。そして、転送制御部126が、このキュー部122からコマンドを取り出すと、このコマンドの投入先のルータIDをセッション管理部124が読み出す。そして、セッション管理部124は、セッション管理情報131を参照して、この投入先のルータ20との間に確立されたセッションがないと判断したとき、セッション制御部125に、このルータ20との間にセッションを確立するよう指示する。
【0059】
ここでは、コマンド1〜4の投入先であるルータ20A〜20Cとの間のセッションは未確立なので、セッション管理部124は、セッション制御部125に、コマンド1を投入するためのルータ20AとのセッションA、コマンド2を投入するためのルータ20BとのセッションB、コマンド3を投入するためのルータ20CとのセッションC、コマンド4を投入するためのルータ20AとのセッションDを確立するよう指示する。なお、前記したとおり、最大セッション数は4本なので、5本目のセッションの確立要求は行わない。
【0060】
コマンド投入装置10のセッション制御部125は、このようなセッション確立要求をルータ20A,20B,20Cに対し行う。そして、セッション制御部125は、このルータ20A,20B,20Cからセッション確立の応答を受信すると、セッション制御部125は、確立したセッションを用いて、ルータ20A〜20Cに対し、コマンド1〜4の投入を行う。
【0061】
ルータ20A〜20Cは、コマンド投入が完了すると(またはこのコマンドによる設定処理が終了すると)その旨を伝えるメッセージを、コマンド投入装置10へ通知する。ここで、コマンド投入装置10は、コマンド4の後、コマンド5をルータ20Cへ投入することになっているが、このコマンド5は、競合コマンドなので、このルータ20Cから、コマンド3の処理が完了した旨のメッセージを受信してからでないと投入できない。つまり、符号501に示す時点以降になれば、コマンド投入装置10はコマンド5が投入できる状態になる。
【0062】
コマンド投入装置10は、このルータ20Cから、コマンド3の処理が完了した旨のメッセージを受信した後、セッション管理部124は、セッション管理情報131を参照して、このルータ20Cとの間で確立されたセッションCを選択し、セッション制御部125は、このセッションCを用いてコマンド5を投入する。また、コマンド5に続くコマンド6についても、セッション管理部124は、セッション管理情報131を参照して、ルータ20Aにおいて競合コマンドの処理中ではないことを確認した上で、ルータ20Aとの間に確立されたセッションAを用いて投入する。
【0063】
次に、コマンド投入装置10は、コマンド7をルータ20Cへ投入しようとするが、符号502に示す時点では、まだ、セッションCは、このルータ20Cにおいてコマンド5による設定処理中なので、このセッションCを用いてコマンドを投入できない。よって、セッション管理部124は、セッション管理情報131を参照して、アイドリングセッションリソースを探す。ここで、図5に示すようにコマンド投入装置10は、既に4本のセッションを確立中であり、アイドリングセッションリソースはない。よって、セッション管理部124は、セッション管理情報131を参照して、既にルータ20においてコマンド処理を完了しているセッションのうち、最も接続時間の長いセッション(セッションB)を、このコマンド7の投入に用いるセッションとして選択する。そして、セッション管理部124は、セッション制御部125に対し、このセッションBの切断を指示する。これを受けてセッション制御部125は、ルータ20BへセッションBの切断要求を行い、このセッションBの切断を確認すると、今度は、ルータ20Cとの間に新たなセッション(セッションE)の確立要求を行う。そして、ルータ20Cからセッション確立の応答を受信すると、セッション制御部125は、確立したセッションEを用いて、ルータ20Cに対し、コマンド7の投入を行う。
【0064】
なお、コマンド投入装置10は、このようにしてルータ20A〜20Cとの間でセッションを確立した後、コマンド投入完了から所定時間経過したら、このセッションを切断するタイムアウト処理を行うようにしてもよい。
【0065】
このようにすることで、コマンド投入装置10は限られたセッション数を有効利用してルータ20へ効率よくコマンドを投入できる。また、非競合コマンドについては並列処理を可能とし、競合コマンドについてルータ20において並列処理を行わないようにするので、ルータ20に競合コマンドの投入によりエラーが発生した場合のエラーの原因解析が容易になる。
【0066】
なお、前記した実施の形態においてコマンド投入装置10は、主にルータ20へのコマンド投入を行うものとして説明したが、ルータ20以外の装置へのコマンド投入に応用してもよい。
【0067】
本実施の形態に係るコマンド投入装置10は、前記したような処理を実行させるプログラムによって実現することができ、そのプログラムをコンピュータによる読み取り可能な記憶媒体(CD−ROM等)に記憶して提供することも可能である。
【図面の簡単な説明】
【0068】
【図1】本実施の形態のコマンド投入システムの構成例を示した図である。
【図2】図1のコマンド投入装置の受け付けるコマンドファイルを例示した図である。
【図3】図1のセッション管理情報を例示した図である。
【図4】図1のコマンド投入装置の処理手順を示したフローチャートである。
【図5】図1のコマンド投入装置によるコマンド投入処理の例を示した図である。
【符号の説明】
【0069】
10 コマンド投入装置
11 入力部
12 処理部
13 記憶部
14 出力部
20(20A,20B,20C) ルータ
30 上位システム
121 キュー出力部
122 キュー部
123 転送部
124 セッション管理部
125 セッション制御部
125 転送部
126 転送制御部
131 セッション管理情報
1221 競合コマンドキュー部
1222 非競合コマンドキュー部

【特許請求の範囲】
【請求項1】
通信網に設置される1以上の装置へのコマンドを投入するコマンド投入装置であって、
外部装置から、前記装置へ投入するコマンドの入力を受け付ける入力部と、
前記入力されたコマンドをキューとして格納するキュー部と、
前記キュー部に格納されたコマンドを転送部へ出力する転送制御部と、
前記コマンドをセッション制御部へ出力する転送部と、
前記装置との間に確立されたセッションの識別情報と、このセッションにより接続される装置の識別情報と、前記セッションが確立中か否かおよび当該セッションによるコマンド処理中か否かを示すセッション状態とを示したセッション管理情報を記憶する記憶部と、
前記セッション管理情報を参照して、このコマンドの投入に用いるセッションを選択するセッション管理部と、
前記装置との間でのセッションの確立および切断を行い、前記セッション管理部により指示されたセッションを用いて、前記転送部から出力されたコマンドを、このコマンドの投入先となる装置へ投入し、前記セッションのセッション状態を前記セッション管理部へ通知するセッション制御部とを備え、
前記セッション管理部は、
前記コマンドの投入に用いるセッションを選択するとき、前記セッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中のセッションの中から、コマンド処理中ではないセッションを選択し、この選択したセッションを用いて前記コマンドを投入するよう前記転送制御部へ指示し、前記セッション制御部により通知されたセッション状態を用いて、前記セッション管理情報のセッション状態情報を更新することを特徴とするコマンド投入装置。
【請求項2】
前記キュー部は、
前記コマンドのうち、同じ装置において並列処理を行うと競合する競合コマンドについて、投入先の装置ごとに格納する第1のキュー部と、前記競合コマンド以外のコマンドである非競合コマンドを格納する第2のキュー部とを備え、
前記転送制御部は、
前記投入先の装置ごとの第1のキュー部および第2のキュー部それぞれに格納された前記コマンドを前記転送部へ出力し、
前記セッション管理部は、
前記転送制御部が前記第1のキュー部から競合コマンドを出力するとき、前記セッション管理情報を参照して、この競合コマンドの投入先の装置において、前記コマンド処理中か否かを判断し、当該装置において前記コマンド処理中ではないとき、前記転送制御部に対し、前記競合コマンドを、前記転送部へ出力するよう指示することを特徴とする請求項1に記載のコマンド投入装置。
【請求項3】
前記セッション管理部は、
前記コマンドの投入に用いるセッションを選択するとき、前記セッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中のセッションがなかったとき、または、前記コマンドの投入先となる装置においてコマンド処理中であるとき、
前記セッション制御部へ、前記コマンドの投入先となる装置との間に新たなセッションを確立するよう指示し、この確立したセッションを用いて、前記コマンドを投入するよう指示すること特徴とする請求項1に記載のコマンド投入装置。
【請求項4】
前記セッション管理部は、
前記コマンドの投入に用いるセッションを選択するとき、前記セッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中のセッションがなかった場合、または、前記コマンドの投入先となる装置においてコマンド処理中である場合において、既に、自身のコマンド投入装置が確立可能な最大セッション数のセッションを前記各装置との間で確立済みであるとき、
前記セッション制御部へ、前記コマンドの投入先となる装置との間に確立されたセッションの中から、前記コマンド処理を終了しているセッションを切断し、前記コマンドの投入先となる装置との間で新たなセッションを確立するよう指示し、この確立したセッションを用いて、前記コマンドを投入するよう指示すること特徴とする請求項3に記載のコマンド投入装置。
【請求項5】
前記キュー部の第1のキュー部および第2のキュー部それぞれについて、
前記入力されたコマンドを、コマンドの優先度ごとに分けて格納するキューを有し、
前記転送制御部は、
前記キュー部の優先度の高いキューから優先的に前記コマンドを取り出すことを特徴とする請求項2に記載のコマンド投入装置。
【請求項6】
請求項1ないし請求項5のいずれか1項に記載のコマンド投入装置と、このコマンド投入装置からのコマンドの投入を受け付ける前記装置を複数含むことを特徴とするコマンド投入システム。
【請求項7】
通信網に設置される1以上の装置へのコマンドを投入するコマンド投入方法であって、
前記コマンドを投入するコマンド投入装置が、
前記各装置との間でセッションを確立するステップと、
外部装置から、前記装置へ投入するコマンドの入力を受け付けるステップと、
前記入力されたコマンドをキュー部に格納するステップと、
前記キュー部に格納されたコマンドを取り出すステップと、
前記装置との間に確立されたセッションの識別情報と、このセッションにより接続される装置の識別情報と、前記セッションが確立中か否かおよびこのセッションによるコマンド処理中か否か示すセッション状態情報とを示したセッション管理情報を参照して、このコマンドの投入先となる装置との間に確立中かつ前記コマンド処理中ではないセッションを選択するステップと、
この選択したセッションを用いて、前記コマンドの投入先となる装置へ前記コマンドを投入するステップとを実行することを特徴とするコマンド投入方法。
【請求項8】
前記キュー部は、
前記コマンド投入装置は、
前記コマンドのうち、競合コマンドについて、投入先の装置ごとに格納する第1のキュー部と、非競合コマンドを格納する第2のキュー部とを備え、
投入先の装置ごとの第1のキュー部および第2のキュー部それぞれに格納された前記コマンドを取り出し、この取り出したコマンドが競合コマンドであるとき、前記セッション管理情報を参照して、この競合コマンドの投入先の装置において、前記競合コマンドのコマンド処理中か否かを判断し、当該装置において前記コマンド処理中ではないとき、前記コマンドの投入先となる装置へ前記コマンドを投入することを特徴とする請求項7に記載のコマンド投入方法。
【請求項9】
コンピュータである前記コマンド投入装置に、請求項7または請求項8に記載のコマンド投入方法を実行させるプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2010−44657(P2010−44657A)
【公開日】平成22年2月25日(2010.2.25)
【国際特許分類】
【出願番号】特願2008−209173(P2008−209173)
【出願日】平成20年8月15日(2008.8.15)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】