説明

プロトコルエミュレータ

【課題】ユーザーが再コンパイルを要することなく新たな能力をプロトコルエミュレーションスイーツに付加することが可能であり、ユーザーからはシステムのシームレスな部分であるように見えるようにした、新たなシステムを提供する。
【解決手段】プロトコルエミュレーション・システム200は、一般フォーマットを用いてプロトコルメッセージ内にフィールドを記述する少なくとも1つの記述と、少なくとも1つの記述を機械読み取り可能なテンプレートへと変換するアプリケーションと、テンプレートに基づいてプロトコルメッセージを作成するプロトコル有限状態機械と、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロトコルエミュレータに関する。
【背景技術】
【0002】
ルータ等のネットワークデバイスは、誤送信や重大エラーを最小限に抑えられるように徹底的にテストされるものである。市場には様々なテスト機器が出回っており、その中には本願の譲受人であるアジレント・テクノロジー社(Agilent Technologies)から出されているROUTER TESTERも含まれる。これらのテスト機器は、代表的にはシミュレーションされた様々な入力に対するルータ応答をモニタするものである。
【0003】
ルーティング処理を簡単に述べると、ノードが可能な全宛先への経路を探すことである。ルーティングは第一層(物理層)から上の全てに存在する。しかしながら、多くの人々がよく知るルーティングは、第三層(ネットワーク層)で生じているものであり、本願においては第三層の、より具体的にはインターネットプロトコル(IP)ルーティングのみを指すものとする。ルータはテーブルを使ってどこにパケットを送信するかを決定する。これらのテーブルの更新は、ルーティングプロトコルが実施する機能である。
【0004】
ルーティングプロトコルは、世界中のルータ間でのルーティング情報の交換し、各ルータの異種だが概ね整合性のあるルーティングテーブルを通じてネットワークの共通認識を提供するのを促進する。ルーティングテーブルは、サイズに関わりなくルータがネットワーク上の各宛先へと達する上で必要となる全ての情報を記憶している。ネットワークにおけるルーティングテーブルには、情報を配信する為に使われる様々なルーティングプロトコルがあり、その中にはBGP、OSPF、RIP及びISISが含まれる。ルータのパフォーマンスを改善する為に古いプロトコルはしばしば拡張され、そして新たなプロトコルが作られ続けている。一般に、新たなプロトコルはまず、機器製造業者により開発されるもので、事実上の所有権を発生するものである。当該業界の標準化組織が後にそのプロトコルを採用することも多い。
【0005】
周知のルータテスタは、ネットワーク上に存在する実データの典型であるデータのうち特別に作成した「テストパケット」を用いて、ネットワークトラヒックをシミュレートする。テストパケットは被検ネットワークを介してネットワークデバイスへと送られる。トラヒックシミュレータ・システム(ROUTER TESTERを含む)により試験されるパラメータとしては、ルーティング検証、負荷下でのクオリティ・オブ・サービス(QoS)レベルの達成度、他のデバイスとの相互作用の適正度が含まれる。これらのいわゆる「パケットブラスター」と呼ばれるものの多くは、更にネットワークデバイスがどれだけプロトコルに即していられるかの能力をプロトコルに準じてメッセージを形成・伝送することによりテストすることもできるものである。そのようなメッセージはプロトコルメッセージとして知られている。
【0006】
図1はトラヒックシミュレータ・テストシステム100のブロック図である。より具体的には、トラヒックシミュレータ・テストシステム100は、アジレント・テクノロジー社が提供しているROUTER TESTERを概略的に示したものである。しかしながらROUTER TESTERは、ルータテストシステムの一例にしか過ぎないものであり、具体的にはエンタープライズ、メトロ/エッジ、コアルーティング、及び光ネットワークデバイスの性能を検証する為に、マルチポートトラヒック生成、プロトコルエミュレーション(Protocol Emulation)、及び解析テストシステムとして発表されているものである。このシステムは一般に、この例においてはルータ104である被検システムに接続される複数のプロトコルエミュレーションカード102nを有する。プロトコルエミュレーションカード102nの各々は、一般にプロセッサ、関連メモリ、及びI/Oを有する。例えばウィンドウ環境を走らせるPCのようなコンピュータ106が、プロトコルエミュレーションカード102nを制御している。コンピュータ106は、グラフィカルユーザーインターフェースのようなインターフェース108に応答する。
【0007】
プロトコルエミュレーションカード102nが生成するテストパケット及びプロトコルメッセージは、業界における多くの標準化組織が定義するような通信プロトコルのルールと解釈に基づいて構築される。一般に、任意の所定のプロトコルに関連するプロトコルメッセージの大部分は、ルータ間のハンドシェーキング(hand shaking、初期接続手順)のプロセスにおいて利用される。ハンドシェーキングプロセスが定義済み状態(defined state)になると、殆どのルータ及びプロトコルエミュレータは有限状態機械(finite state machine)を使って様々なプロトコルメッセージに応答する。
【0008】
トラヒックシミュレータ・テストシステムに関する現在のソフトウエアアーキテクチャにおいては、グラフィカルユーザーインターフェース、記述(scripting)API、コンフィギュレーション及び制御コンポーネント、並びにプロトコル状態機械自体を含むプロトコルエミュレーション・ソリューションのうち全ての部分をハードコーディング(hard-coding)しなければならない。各プロトコルに要求されるハードコーディングには、大量のコード生成に多大な人的資源が投入される結果となっている。
【0009】
新たなプロトコル又は拡張の導入ペースが速くなると、テストスイーツをタイムリーに提供することがますます困難なものとなる。プロトコルエミュレーションへの新たな変更又は追加は、それぞれにソースコードの修正と、その後の再コンパイル処理を要することになる。プロトコルテスタの顧客は、しばしば未発表プロトコル又は拡張のテストを促進する為にプロトコルエミュレーションの変更能力を要求する。これを実現するには、そのような変更がシステム再コンパイル処理を要することなくできなければならない。
【0010】
いくつかの既存のプロトコルエミュレータには、プロトコルメッセージに付加できるユーザー定義オブジェクトの使用を通じていくらかのカスタマイズが可能なものもある。しかしながら、このようなカスタマイズは16進数コードで行われるもので、ユーザーは時に難解なコードに精通していなければならない。更に、そのように定義されたオブジェクトは固定であり、即ちネットワークを活性化するプロセスの間に変えることができないものである。オブジェクトはメインプロトコルメッセージの拡張に限定されており、このことはメッセージ本体の変更ができないことを意味している。
【0011】
現在、外部からソフトウエアへとコンフィギュレーションすることができる汎用システムを設計する試みがされている。その一例は、この参照により本願に含まれる同時係属中の特許文献1に記載されており、これは外部XMLプロトコル記述を利用して汎用PDU符号化/復号化エンジンを駆動するものである。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】米国特許出願第10/266,507号明細書
【発明の概要】
【発明が解決しようとする課題】
【0013】
よって本発明の発明者は、ユーザーが再コンパイルを要することなく新たな能力をプロトコルエミュレーションスイーツに付加することが可能であり、ユーザーからはシステムのシームレスな部分であるように見えるようにした新たな装置及び方法に対する必要性を認識するものである。
【課題を解決するための手段】
【0014】
本発明は、一般的なフォーマットを用いてプロトコルメッセージ内にフィールドを記述する少なくとも1つの記述(description)と、少なくとも1つの記述を機械読み取り可能なテンプレートへと変換するアプリケーションと、テンプレートに基づいてプロトコルメッセージを作成するプロトコル有限状態機械と、を有するプロトコルエミュレーション・システムを提供する。
【発明の効果】
【0015】
本発明によれば、ユーザーが再コンパイルを要することなく新たな能力をプロトコルエミュレーションスイーツに付加することが可能である。
【図面の簡単な説明】
【0016】
【図1】プロトコルエミュレーションテストシステムのブロック図である。
【図2】本発明の推奨される実施例に基づいてプロトコルメッセージを構築する為のアーキテクチャのブロック図である。
【図3】本発明の一実施例に基づいて構築されたグラフィカルユーザーインターフェースの画面を示す図である。
【発明を実施するための形態】
【0017】
以下の本発明の実施例の詳細説明を添付図と共に参照することにより、本発明を理解することができる。
【0018】
以下の説明において、要素に隣接する小文字nは、明細書中で要素符号に隣接する非イタリック体の文字を用いて表される特定の要素ではなく、非特定的に要素を表すものである。または修飾文字をつけたその符号で説明した全ての事例の一般的な集合を表すものである。
【0019】
以下、本発明の実施例を参照するが、これらは添付図に描かれているもので、全ての図を通じて同様の符号は同様の要素を表すものである。以下に示す本発明の方法に準じた説明は、コンピュータ読み取り可能媒体、関連プロセッサ、データ生成・取得カード等の中におけるデータビット処理のルーチン及び記号により実現することができる。本願においても一般的にも、ルーチンと言う場合、所望の結果を導き出すステップ又は動作の順序であると理解されるものであり、「プログラム」、「オブジェクト」、「機能」、「サブルーチン」及び「手順」という語を含むものである。これらの説明及び表現は、当業者が他の当業者にその作用の本質を効果的に伝える為に使用する手段である。便宜上、「ネットワーク」という語は、以下の説明及び請求項においては、データのテストパケットを使用してテストすることが可能な、通信ネットワーク、ネットワークデバイス、他の通信デバイス、及び通信システムのいずれか1つ又は複数の態様を意味する語として扱うものとする。
【0020】
方法を構成する実施例は、Agilent ROUTER TESTERと同様の構成を持つルータテスタに実現されるものとして説明するが、しかしながら本願に記載の方法は様々なルータテスタのいずれにおいても作動することができるものである。より明確に言えば、本願に示す方法はいずれの特定のデバイスにも固有に関係するものではなく、むしろ本願における教示内容に基づいて様々なデバイスを利用することができるものである。特に本願に記載した、あるデバイスから他のデバイスへとデータを伝送する為の方法は、ルータテスタ機能に関連して説明してはいるものの、これはデータコミュニケーション分野に広く適用することができるものである。本願に記載した機能を実施する機械には、アジレント・テクノロジー社、ヒューレット・パッカード社(Hewlett Packard)及びテクトロニクス社(Tektronix, Inc.)やその他の通信機器製造企業により製造されるものが含まれる。
【0021】
本願に記載のソフトウエアに関しては、当業者であれば本願にまとめた手順を実施するソフトウエアを作成する為のプラットフォーム及び言語には様々なものが存在することは周知である。本発明の実施例は、C++を含む数あるC言語のいずれを利用しても実現することができるものである。しかしながら、当業者には同じく周知のように、厳格なプラットフォーム及び言語の選択は、実際に構築されるシステムの詳細により決まるものであり、あるタイプのシステムにはうまく適合するものであっても、他のシステムにとっては非効率的である場合もある。また、本願に記載のルーチン及び計算は、コンピュータ上のソフトウエアにより実行されるものとは限られず、これはハードウエアプロセッサにより実現されるものであっても良い。例えば、ルーチン及び計算は、ASICS或いはFGPA中のHDL(Hardware Design Language、ハードウエア記述言語)で様々なデザインツールを用いて実現することも可能である。
【0022】
本願出願者は、プロトコルエミュレーションのある部分は一般的な手法での定義に向いている一方で、他の構成要素はスケーラビリティとパフォーマンスという観点からハードコード化されるのにより一層適していると判断している。一般的な手法で定義することができる部分のオンサイト・カスタマイゼーション(on-site customization)を可能とすることにより、顧客はプロトコルエミュレーションに更なる制御性とテスト拡張能力を得ることになるのである。顧客のインタラクションを促進する為に、一般定義部分を、例えばXMLのような読み取りが容易なファイル・フォーマットで提供することができる。このようなXMLファイルは、XMLで記述された情報への変更を閲覧することができるグラフィカルインターフェースの形成に使用することができる。この情報は、特定のプロトコルエミュレーションの有限状態機械による理解が可能な定義を構築する為に使用される。
【0023】
図2は、本発明の推奨される実施例に基づいてプロトコルメッセージを構築する為のプロトコルエミュレーション・システム200のブロック図である。このアーキテクチャ200は一般に、ホスト202とプロトコルエミュレータ204とを含んでいる。ホスト202は、アプリケーション208と共にグラフィカルユーザーインターフェース206に応答するコンピュータとして実現されることが一般的である。図2においては複数のアプリケーション208nが示されているが、本発明の厳密な実現例に応じて、アプリケーション208nは、単一のアプリケーション、または任意数のアプリケーションとして物理的に又は論理的に実現され得る。プロトコルエミュレータ204は一般に、プロトコルメッセージを生成する為に少なくとも1つのテンプレート212に応答するプロトコル有限状態機械210を含んでいる。コンピュータ202は一般に、プロトコルエミュレータ204へと命令を供給するクライアントとして働き、プロトコルエミュレータ204は一般にコンピュータ202の命令に応答するサーバとして働く。
【0024】
プロトコルメッセージ記述(description)215は、ホスト202または遠隔ロケーションに局所的に記憶されており、選択されたプロトコルメッセージタイプおよび付随のプロトコルパラメータ・オプションに関するフィールドおよびフィールド関係(field relationship)の全てまたは一部についての少なくとも1つの記述215を含んでいる。プロトコルメッセージ記述215nは、一般的なフォーマット(例えばフィールド記述215のフォーマットがプロトコル毎に異なることがない)でプロトコルデータユニット全体又はその一部を表している。プロトコルメッセージ記述215が有利であるとされるメッセージ例は、BGP4更新メッセージ、OSPFリンクステート更新パケット、ISISリンクステート・パケット、RIP更新メッセージ、LDPラベル・マッピング・メッセージ、RSVPパス・メッセージ、PIMジョイン・オア・レジスターメッセージ(PIM Join or Register Message)、IGMPメンバーシップ・リポートを含む。
【0025】
所定プロトコルのプロトコルメッセージ記述215nは、そのプロトコルに関わる一般的属性を持つプロトコル記述子(descriptor)から始まり、次にそのプロトコルに基づいて生成されるメッセージ中に存在し得るフィールドを各々が記述する複数のフィールド記述子が続く。フィールド記述子は様々な属性情報を含む場合もある。
【0026】
例えば、そのフィールドに関係する値でフルネームを指定することにより表示することができる。値自体に関しては、長さ、フォーマット及び初期値といった属性を提供することができる。プロトコルメッセージ記述215の利便性を更に強化する為に、あるフィールドの値をメッセージ(プロトコルメッセージ記述215に基づいて構築される)の複写毎にどのように変化させるかについての命令を設けることができる。特定メッセージ中に繰り返されるフィールドの場合、そのフィールドの値をインスタンス毎にどのように変化させるかが提供されるのである。例えば、増分値を設けることにより一連のネットワーク到達可能性表示子(network reachability indicators)の各々におけるIP値プレフィクス(prefix、接頭部)を調節することができる。
【0027】
XMLが記述言語として使用された場合、記述子はタグにより実現されており、これは階層構造が提供されることになるように既知の方法でネストさせる(nest、入れ子にする)ことができる。このような階層構造は、データ構造を通じた迅速で簡単なナビゲーションを提供するグラフィカルユーザーインターフェースの動的作成を助けるものである。
【0028】
プロトコルメッセージ記述子215は、参照により本願に含まれる特許文献1の一般的教示内容に基づいて形成することができる。表1は、BGP4更新メッセージ向けのプロトコル定義例を含んでいる。表1に示したデータ構造は、プロトコルメッセージ記述215nをXMLで表した例を示すものであり、当業者であれば、ここから他のメッセージ用の他のプロトコル定義及び他のプロトコルを作成する為の構造と目的を抽出することが可能である。
【表1】









【0029】
新たなプロトコルエミュレーションを作成する為に、アプリケーション208nは要求されたプロトコルメッセージ記述215nを取得し、これらをプロトコル参照モデル(protocol reference model)214へとロードする。参照モデル214は一般に、全ての選択されたプロトコルメッセージ記述215nに含まれるフィールドを記述するオブジェクト等のデータ構造を持っている。モデルは各プロトコルメッセージ記述215nを、例えばexpatのようなパブリックドメインXMLパーサー(parser)ソフトウエアを使って構文解析することにより構築することができる。プロトコル参照モデル214が構築されると、インスタンス216nが生成され、ユーザー指定値及び命令を実装される。
【0030】
インスタンス216nにより記憶された値を編集する場合、インスタンス216nはGUI206へと送られる。代わりに、GUI206がインスタンス216nの作成を要求しても良い。いずれの場合においても、GUI206はプロトコル参照モデル214中の選択フィールド、プロトコルメッセージ記述215n又はインスタンス216nに基づいてグラフィカルディスプレイを形成する。推奨される実施例においては、GUI206はプロトコルメッセージ記述215が示すネストデータ構造を模倣したツリーを構築して実装している。
【0031】
図3は、本発明の一実施例に基づいて構成されたグラフィカルユーザーインターフェース206のスクリーンを示している。図3に示したような画面を生成するには、例えばプロトコル参照モデル214の内容が分析されて表示フィールドとそのフォーマットが識別される。図3に示した例においては、階層データ構造が生成され、エントリ又は表示フィールドを実装されており、ここで各フィールドはツリーのノードである。こうして構成されたツリー構造は、データノードがそれらの記述子に基づいてフォーマットされている従来の階層的表示として表現することができる。
【0032】
図3に示した例においては、ユーザーが開始値(starting value)、終了値(ending value)、計数値(count)、及びステップ(step)を含む表示フィールドの特定の属性を調節することができ、プロトコルメッセージ記述215n(又はより適正にはインスタンス216n)の内容に基づいてフィールド毎の制御が可能となっている。例えば、そのフィールドの値が固定(又は他のフィールドに依存するもの)であることを特記する為にある属性を付加することができる。ユーザーがノードを見直してそのユーザーが使用することができるノードを調整すると、グラフィカルユーザーインターフェース206はその調整インスタンス216nをアプリケーション208nへと戻す。するとアプリケーション208nはその調整されたインスタンス216nに基づいてテンプレート212nを構築するのである。
【0033】
テンプレート212は、プロトコルメッセージの作成に関するプロトコル有限状態機械210に対する一群の命令である。プロトコル有限状態機械210に使用される、現在ハードコーディングされた命令に対応するように、このテンプレート212にはバイナリ(又は16進)フォーマットを使用するのが有益である。このようにすれば、現行のプロトコル有限状態機械はテンプレートと相互作用させる為の変更において、要求を小さくすることができる。図2を見ると、グラフィカルユーザーインターフェース206又はアプリケーション208nのいずれかを、プロトコルメッセージ記述215のコンパイラとして働くように構築することができる。テンプレート212は一般に、表2に示した3つの区分を持っている。
【表2】

【0034】
テンプレート212は一般に、非反復データから成る第一の部分(共通部分(Common Part)と称する)と、異なる値の同様にフォーマットされたデータの反復部分から成る第二の部分(反復部分(Repeating Part)と称する)を含んでいる。各テンプレート212nは、多数のメッセージを生成可能な基準メッセージ記述を表す。各テンプレート212nは共通部分を持っており、そして反復部分を持つ場合もある。共通部分は生成されたメッセージのシーケンス全体にわたって異なるフィールドを持つ場合がある。代表的には、共通部分は、トポロジーデータのメッセージヘッダおよび共通属性を表す。BGPにおいては、更新メッセージの共通部分はメッセージヘッダと経路属性を含む場合がある。反復部分は単一メッセージ中で何度か繰り返されるべきフィールド群を記述している。反復フィールドの1つ以上は、反復毎に定義された様式で変化するものであっても良い。反復部分は一般に、ネットワークトポロジーデータを表している。BGPにおいては、反復部分には通知すべき何千ものネットワークプレフィクスが含まれる場合がある。
【0035】
図2に戻るが、各インスタンス216はプロトコル要素(protocol element)のベクター(vector)として記憶される。テンプレート212はベクターのバイト・ストリング(byte-string)を符号化することにより形成することができる。バイト・ストリングは、プロトコル要素のベクター内で各使用可能フィールドのバイナリ値を連結することにより符号化することができる。ベクター表現(vector representation)と符号化表現(encoded representation)の両方を記憶することが有利な場合がある。このような場合、GUI206がベクター中の要素を操作すること(例えば値の変更、フィールドのイネーブル(enable)又はディスエーブル(disable))によりインスタンス216を更新する場合、対応するバイト・ストリングが更新される。ベクター中のいずれの要素にもフィールド変更子(field modifier)を適用することができる。このフィールド変更子はオフセット、フィールド幅、開始値、増分値又は計数値としてバイト・ストリングに対して符号化することができる。テンプレート212は一般に、符号化されたバイト・ストリングを付随したフィールド変更子の一群を含んでいる。
【0036】
実現可能なオプションとしては、テンプレートが何らかのセッション中に使用されるべきか否かを示すフラグ(又は他のデータ構造)を利用することがあげられる。この場合、いずれかの所定テンプレート212nのフラグが設定されると、このテンプレート212nがプロトコル有限状態機械210により使用され、メッセージが生成される。フラグはテンプレートの一部であっても、或いはレジスター又はテーブル等の他所に維持されるものであっても良い。
【0037】
動作中、プロトコル有限状態機械210は最初のハンドシェーク処理(initial handshake operation)を実施する。適正な時点において、プロトコル有限状態機械210は使用可能なテンプレート(オプションによっては、ONフラグのついているものに限られる)をアクセスし、テンプレートに基づいてメッセージの構築を開始する。
【0038】
プロトコルメッセージ記述215は、フィルタとしての利用にも適している。システム200のようなプロトコルエミュレーション・システムのユーザーは、一般にそのシステムへと伝送されてくるトラヒックを見たいものである。しかしながら、このようなトラヒックの量は非常に多く、メッセージ又はメッセージの部分のトラヒック全てにソートをかけることは大変である場合も考えられる。プロトコルメッセージ記述215利用の利点の一つは、入って来るメッセージストリームに適用して関心あるメッセージ又はメッセージ部分を識別することができるフィルタ定義のベースとして、これらが非常に素晴らしいものであるという点である。
【0039】
本発明の一実施例によれば、プロトコルメッセージ記述215はフィルタ217の形成に利用される。フィルタの構築には様々な方法を使用することができる。推奨される実施例においては、選択されたプロトコルメッセージ記述215nがプロトコル参照モデル214へとロードされ、GUI206を通じて変更用にユーザーへと表示される。ユーザーは、メッセージがフィルタ処理される使用可能フィールドの各々に値を与える。それらの値は、メッセージを取り込む(例えばそのメッセージが保存される)のか、或いはメッセージをフィルタする(例えばそのメッセージが破棄される)のかを指定するものとすることができる。フィルタ217は、そのメッセージを取り込む場合に保存すべきメッセージの部分(すなわち「フラグメント(fragment、断片)」)を識別する為に構築されるものである。テンプレート212の場合、GUI206及び/又はアプリケーション208nは、供給されたデータ(プロトコルメッセージ記述215と一緒に供給されたもの)に基づいてフィルタ217nを作成し、このフィルタ217nを保存用にプロトコルエミュレータ204へと送る。実際のフィルタ216の構造がプロトコルエミュレータの実用例と選択されたフィルタアルゴリズムに応じて変化するように、いずれのフィルタアルゴリズムを利用しても良い。
【0040】
動作中、フィルタ216がプロトコル有限状態機械210への入力データに適用される。フィルタ後に取り込まれたメッセージ又はそのフラグメントは、フラグメント取得データベース218中に記憶される。フラグメント取得データベース218はプロトコルエミュレータ204から離れているものでもローカルなものでも良い。
【0041】
フラグメント取得データベース218は取得したデータを取得レコード群として機械読取可能なフォーマットで記憶する。データベース218は、関連するフラグメントタイプ記述子を持つ単一の又は様々なフラグメントタイプを含むものとすることができる。人が読み取ることができる形式でフラグメントを提示する為に、アプリケーション208nはプロトコル参照モデル214を利用して、フラグメントのバイナリデータを一群のフィールド記述、値及びフォーマットルールへと復号化する。GUI206はグラフィック形式でそのフラグメントの内容をユーザーへと提示するものである。代わりに、アプリケーションプログラミングインターフェース(API)を構築することにより、このデータベースへのアクセスをいずれのアプリケーションからも可能とすることもできる。
【0042】
本発明の特定の実施例を図示し、説明して来たが、当業者には明らかなように、本願請求項及びこれに類するものに定義されている本発明の原理及び理念から離れることなく、これらの実施例に変更を加えることが可能であることは言うまでもない。
【0043】
例えば、プロトコルメッセージ記述215の利用は定義されたプロトコルエミュレーションの拡張を促進するものである。表3は、表2に示したフィールド定義にマルチキャストIPv6向けの拡張を加えたものである。
【表3】











【0044】
GUI206は、プロトコルメッセージ記述215に基づいて動的にグラフィック表示を作成するようにプログラムすることができるものである為、新たに定義されたプロトコルメッセージ記述215nへのユーザーインターフェースを作る為の更なるプログラミングは必要としないものである。更に、新たなプロトコルメッセージ記述215nに定義されたいずれかの複写動作が、プロトコルメッセージ記述215をテンプレート212へと変換するソフトウエア中に定義されていると仮定した場合、プロトコル有限状態機械210において新たな符号化処理は必要としない。
【符号の説明】
【0045】
100 プロトコルエミュレーション・システム 208n アプリケーション 210 有限状態機械 215n 記述

【特許請求の範囲】
【請求項1】
一般的なフォーマットを用いてプロトコルメッセージ内にフィールドを記述する少なくとも1つの記述と、
前記少なくとも1つの記述を機械読み取り可能なテンプレートへと変換するアプリケーションと、
前記テンプレートに基づいてプロトコルメッセージを作成するプロトコル有限状態機械と、
を有するプロトコルエミュレーション・システム。
【請求項2】
前記一般的なフォーマットがXMLを含む、請求項1に記載のプロトコルエミュレーション・システム。
【請求項3】
前記プロトコルメッセージがルータとのハンドシェーク処理で用いられる、請求項1に記載のプロトコルエミュレーション・システム。
【請求項4】
前記少なくとも1つの記述が複数の記述を含む、請求項1に記載のプロトコルエミュレーション・システム。
【請求項5】
前記アプリケーションが前記少なくとも1つの記述を基準モデルへと変換する、請求項1に記載のプロトコルエミュレーション・システム。
【請求項6】
ユーザーに前記記述のグラフィック表現を提示して前記記述内に含まれる値に対する変更を受け取るグラフィカルユーザーインターフェースを更に有し、
前記アプリケーションが、前記基準モデルのインスタンスを生成し、該インスタンスに前記グラフィカルユーザーインターフェースから受け取った値を代入する、
請求項5に記載のプロトコルエミュレーション・システム。
【請求項7】
前記アプリケーションが前記インスタンスを前記機械読取可能なテンプレートへと変換する、請求項6に記載のプロトコルエミュレーション・システム。
【請求項8】
前記テンプレートが16進法で符号化される、請求項1に記載のプロトコルエミュレーション・システム。
【請求項9】
前記記述をフィルタへと変換するアプリケーションを更に有し、
該フィルタは前記プロトコルエミュレーション・システムにより受信された複数のメッセージのフィルタ処理に用いられる、
請求項1に記載のプロトコルエミュレーション・システム。
【請求項10】
プロトコルエミュレータを制御する方法であって、
前記プロトコルエミュレータを制御する為にデータ構造の記述を作成するステップを有し、
前記記述は複数のプロトコルに一般的な言語を用いて形成されており、
前記記述を用いて前記データ構造の基準モデルを作成するステップと、
少なくとも幾つかのユーザー提供データで前記基準モデルのインスタンスを作成するステップと、
前記インスタンスを用いて、前記プロトコルエミュレータがプロトコルメッセージを作成する為に応答するテンプレートを作成するステップと、
前記テンプレートを前記プロトコルエミュレータへと伝送するステップと、
を有する方法。
【請求項11】
前記記述を作成するステップが、データ構造を記述するXMLファイルを作成することを含む、請求項10に記載の方法。
【請求項12】
前記記述が、少なくとも1つの値をプロトコルメッセージの複数のコピーにわたってどのように変化させるかについての命令を含む、請求項10に記載の方法。
【請求項13】
前記記述が、該記述中の他の値に基づく値を含む、請求項10に記載の方法。
【請求項14】
前記記述を作成するステップが、前記データを階層方式で記述することを含む、請求項10に記載の方法。
【請求項15】
前記データ構造の記述を作成するステップが、値を保持する為のフィールド、他のフィールド、又はフィールドの属性を定義することを含む、請求項10に記載の方法。
【請求項16】
前記属性が、前記フィールドのフルネーム、前記フィールドの長さ、前記フィールドの表示フォーマット、シーケンス命令、及び要素に関する適正値の範囲を含む、請求項15に記載の方法。
【請求項17】
前記記述に基づいてフィルタを作成するステップと、
前記フィルタを用いて前記プロトコルエミュレーション・システムにより受信された複数のメッセージをフィルタ処理するステップと、
を更に有する請求項10に記載の方法。
【請求項18】
プロトコルエミュレータを制御する方法であって、
前記プロトコルエミュレータにより使用される少なくとも1つのメッセージのXML記述を作成するステップと、
前記記述のグラフィック表示をユーザーへ提示するステップと、
前記ユーザーが前記記述の複数のフィールド内の値を調整するのを許可するステップと、
前記記述及びユーザーにより調整された前記値に基づいて、プロトコル有限状態機械を制御するテンプレートを作成するステップと、
を有する方法。
【請求項19】
前記ユーザーが一連のメッセージにおいて少なくとも1つのフィールドをメッセージ毎にどのように変化させるかを指定するのを許可するステップと、
少なくとも1つのフィールドをメッセージ毎にどのように変化させるかについての命令を前記テンプレートに含めるステップと、
を更に有する請求項18に記載の方法。
【請求項20】
前記記述の複数のフィールド内のフィルタ値を前記ユーザーに設定させるステップと、
前記記述及び前記ユーザーに設定させたフィルタ値に基づいてフィルタを作成するステップと、
前記フィルタを利用して前記プロトコルエミュレーション・システムが受信した複数のメッセージをフィルタ処理するステップと、
を更に有する請求項18に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2012−157056(P2012−157056A)
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【出願番号】特願2012−88703(P2012−88703)
【出願日】平成24年4月9日(2012.4.9)
【分割の表示】特願2005−158454(P2005−158454)の分割
【原出願日】平成17年5月31日(2005.5.31)
【出願人】(504090400)
【Fターム(参考)】