JP2005339538A - 分散データモデル - Google Patents

分散データモデル Download PDF

Info

Publication number
JP2005339538A
JP2005339538A JP2005143559A JP2005143559A JP2005339538A JP 2005339538 A JP2005339538 A JP 2005339538A JP 2005143559 A JP2005143559 A JP 2005143559A JP 2005143559 A JP2005143559 A JP 2005143559A JP 2005339538 A JP2005339538 A JP 2005339538A
Authority
JP
Japan
Prior art keywords
data
description
reference model
parcel
creating
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
JP2005143559A
Other languages
English (en)
Other versions
JP4991124B2 (ja
Inventor
Geoff Smith
ジェオフ・スミス
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.)
Agilent Technologies Inc
Original Assignee
Agilent Technologies Inc
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 Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of JP2005339538A publication Critical patent/JP2005339538A/ja
Application granted granted Critical
Publication of JP4991124B2 publication Critical patent/JP4991124B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】効率的なインターフェースメカニズムを提供する。
【解決手段】送信装置から受信装置にデータを転送する方法は、データの構造の記述を準備するステップと、該記述を送信装置および受信装置に提供するステップと、送信装置及び受信装置のそれぞれにおいて、実行中に、該記述を使用して該データ構造の参照モデルを作成するステップと、要求に応じて、送信装置において、該データで、該参照モデルのインスタンスを作成するステップと、該インスタンスにおけるデータをシリアル化するステップと、該シリアル化されたデータを、送信装置から受信装置に転送するステップと、該参照モデルに基づいて、受信装置において、該データのインスタンスを作成するステップと、を含む。
【選択図】図2

Description

本発明は、データを転送する方法に関する。
ルーターなどのネットワーク装置は、誤伝送や致命的な誤りを極小化するべく、広範囲に試験される。本出願の譲受人であるAgilent Technologies社のRouter Testerを含む様々な試験装置を市場において入手することができる。これらの試験装置は、通常、シミュレートされた様々な入力に対するルーターの応答を監視する。
ルーティングプロセスとは、簡単に言うと、ノードが、すべての可能な宛先に対する経路を見出すことである、と要約することができる。ルーティングは、レイヤ1(物理レイヤ)から上位のすべてのレイヤに存在している。但し、大部分の人々が慣れ親しんでいるルーティングは、レイヤ3(ネットワークレイヤ)において実行されるものであり、従って本明細書においても、レイヤ3の(および、より具体的には)IP(Internet Protocol)ルーティングのみを指すものとする。ルーターは、テーブルを使用して、パケットを転送すべき場所を判定する。これらのテーブルの更新は、ルーティングプロトコルによって実行される機能の1つである。それぞれのルーターは、1つ又は複数のプロトコルに応答する。
ルーティング情報を交換するプロトコルにより、世界中の複数のルーターが接続され、それらの異種ではあるが一般的には整合性を有しているルーティングテーブルを介して、それらのルーターに、ネットワークの共通のビューが提供される。ルーティングテーブルには、そのサイズとは無関係に、そのネットワーク上のすべての宛先に到達するためにルーターが必要とするすべての情報が保存されている。ネットワークのルーティングテーブルに寄与するよう使用されるルーティングプロトコルには、様々なものがある。BGP、OSPF、RIP、及びISISなどのプロトコルは、ネットワークの正しく且つ首尾一貫した状況を、該ネットワーク上のすべてのルーターに対して伝達するのに有用である。
既存のルーターテスタ(router tester)は、ネットワーク上に存在するライブデータ(live data)に特有のデータであって、特別に生成されたデータの「試験パケット」を使用し、ネットワークトラフィックをシミュレートする。これらの試験パケットは、被試験ネットワーク上のネットワーク装置に伝送される。トラフィックシミュレータシステム(これには、Router Testerが含まれる)によって試験されるパラメータには、ルーティングの検証、負荷下におけるQoS(Quality of Service)レベルの達成状況、及び他の装置との正確なインターワーキング(inter-working)が含まれる。又、これらの所謂「パケットブラスタ(Packet blaster)」の多くは、或るプロトコルに従ってメッセージを生成及び伝送することにより、該プロトコルに対し該ネットワーク装置が遵守する能力をも試験する。
図1は、トラフィックシミュレータ試験システム100のブロック図である。具体的には、このトライフィックシミュレータ試験システム100は、Agilent Technologies社が提供しているRouter Testerを概略的に表している。Router Testerは、ルーター試験システムの一例であり、具体的には、エンタープライズ(enterprise)、メトロ/エッジ(metro/edge)、コアルーティング(core routing)、及び光学ネットワーキング装置の性能を検証するためのマルチポート(multi-port)トラフィック生成、プロトコルエミュレーション、及び分析試験システムとして宣伝されている。このシステムは、一般に、被試験システム(この場合には、ルーター104である)に接続された複数のプロトコルエミュレーションカード(protocol emulation card)102nを有している。これらのプロトコルエミュレーションカード102nのそれぞれは、一般に、関連するメモリ及びI/Oを備えたプロセッサを有している。これらのプロトコルエミュレーションカード102nは、WINDOWS環境が稼働するPCなどのコンピュータ106によって制御される。該コンピュータ106は、グラフィカルユーザーインターフェースのようなインターフェース108に応答する。
プロトコルエミュレーションカード102nによって生成される試験パケットは、産業界の多くの規格団体によって定義されているような、通信プロトコルの規則及び解釈に従って構築される。使用されている通信プロトコルには、多くのものがあり、新しいプロトコルも継続的に開発されている。通常、新規のプロトコルは、当初、機器製造者によって開発され、実際にはその所有者のものである。多くの場合、該プロトコルは、その後、規格団体によって認可され、産業界において広範に実施されることになる。
トラフィックシミュレータ試験システムに関連する現在のソフトウェアアーキテクチャにおいては、グラフィカルユーザーインターフェース、スクリプティングAPI、構成(configuration)及び制御コンポーネント、プロトコル状態機械自体を含む、プロトコルエミュレーションによるソリューションのすべての部分をハードコーディングする必要がある。それぞれのプロトコルに必要な該ハードコーディングのために、大量のコードの生成に膨大な量の人的能力が使用されることとなる。このコードの多くの部分は、コンピュータ106を、それぞれの新しいプロトコルエミュレーションカード102nとインターフェースさせるために費やされる。
コンピュータ106を、それぞれの新しいプロトコルエミュレーションカード102nとインターフェースさせるための従来の手法によると、インターフェースを作成してインターフェース記述言語(Interface Description Language:IDL)によってハードコーディングする時点で、方法および関連パラメータが判明していることが必要である。このような状況下において、新しいプロトコルエミュレーションが作成されたり古いプロトコルが拡張されるたびに、毎回、新しい方法及びパラメータが継続的に生成される。この結果、数百もの方法及びパラメータを含む巨大なAPI(Application Programming Interface)が生成され、結果的にコードの集合体が生成され、これは、保守するのに費用を要する。又、既存の方法によれば、結果的に、APIがいくつかの異なるレイヤにおいて複製されることになり、この結果、これらの問題が更に悪化することになる。即ち、APIに対する個々の変更により(それがどれほど小さなものであったとしても)、システム内における大量のコード及び異なるレベルの更新が必要となる。又、この方法の副次的な影響の1つとして、それぞれのプロトコル及びそのそれぞれの更新について、固有のGUIを生成しなければならないことがある。即ち、APIと同様に、プロトコルの数が増大するに伴って、必要なGUIの実装も増大する。
上述の問題のいくつかを軽減する汎用のシステムを設計するべく、現在、努力が傾注されている。その一例が、下記の特許文献1に記述されている。この特許文献1(参照により、本明細書に取り入れられる)においては、外部のXMLプロトコル記述を使用して、汎用のPDUエンコード/デコードエンジンを駆動する。次の段階では、プロトコルエミュレータに対する汎用インターフェースを構築するが、該プロトコルエミュレータは、それぞれの新しいエミュレータ又はそれらの変更のたびに、新しいコード又はハードコーディングされたインターフェースの変更を必要としない。
この問題に対する既存の方法の1つは、DCOM又はCORBAなどのインターフェース記述言語(IDL)の使用である。しかしながら、IDLの場合には、それぞれのインターフェースの詳細がコンパイルの時点において判明していることが必要であるため、適切でないことがわかっている。別の選択肢は、データ構造を定義するための言語であるASN.1−aの使用である。既存のASN.1コンパイラは、このような構造をエンコード及びデコードするためのインターフェースコードを生成する。しかしながら、このASN.1も、IDLと同様に、それぞれのインターフェースについて具体的に記述されたコードを必要とするコンパイル時点のソリューションである。更に別の選択肢は、DOM(Document Object Medel)などの、利用可能なXMLデータモデルのうちの1つを使用することである。しかしながら、XMLデータは、帯域幅の使用が非効率的なテキストファイルとして伝送される。さらに、XMLデータは、時間のかかる解析を伴い、通常、非常にプロセッサ集約的な演算を必要とする。更には、DOM構造のナビゲーションは、低速であり、表データ(これは、プロトコルエミュレータインターフェースにおいて、一般的なものである)を自然に表現することができない。
米国特許出願第10/266,507号(公開番号:US20040068681A1)明細書
したがって、本発明者らは、すべての命令、構成データ、及びプロトコルエミュレーションからの出力を表す能力を有する新しいインターフェースメカニズムのニーズを認識した。更に、このようなメカニズムは、表データと同様に、階層構造データの場合にも十分な能力を有しているのがよい。
本発明の一つの側面によると、送信装置から受信装置にデータを転送する方法は、データの構造の記述を準備するステップと、該記述を送信装置および受信装置に提供するステップと、送信装置及び受信装置のそれぞれにおいて、実行中に、該記述を使用して該データ構造の参照モデルを作成するステップと、要求に応じて、送信装置において、該データによって、該参照モデルのインスタンスを作成するステップと、該インスタンスにおけるデータをシリアル化するステップと、該シリアル化されたデータを、送信装置から受信装置に転送するステップと、受信装置において、該参照モデルに基づいて、該データのインスタンスを作成するステップと、を含む。
本発明の他の側面によると、プロトコルエミュレーションと通信する方法は、プロトコルエミュレーションの制御に必要なデータの構造の記述を準備するステップと、該記述をコントローラおよび前記プロトコルエミュレーションに提供するステップと、コントローラおよびプロトコルエミュレーションのそれぞれにおいて、実行中に、該記述を使用して該データ構造の参照モデルを生成するステップと、要求に応じて、コントローラにおいて、該データによって前記参照モデルのインスタンスを作成するステップと、該インスタンスにおけるデータをシリアル化するステップと、該シリアル化されたデータを、コントローラからプロトコルエミュレーションに転送するステップと、プロトコルエミュレーションにおいて、該参照モデルに基づいて、該データのインスタンスを作成するステップと、を含む。
図面に関連して本発明の実施例に関する以下の詳細な説明を参照することにより、本発明について十分に理解することができよう。
尚、以下の説明においては、要素識別子に隣接して使用されている小文字の「n」は、図面に記述されている(又は、本明細書に記述されている)、要素番号に隣接した他の英子文字により示される特定の要素ではなく、その要素の非特定のインスタンス(instance)を表すものである。
本発明の実施例を参照するが、これらの例は、図面に示されている。これらの図面において、同じ参照符号は同じ要素を示している。以下の詳細な説明においては、コンピュータ可読媒体、関連するプロセッサ、データ生成、及び取得カード、並びにこれらに類似するものにおいて、データビット操作のルーチン及び記号的な表現(symbolic representation)によって実現可能な方法を示す。尚、本明細書においては、また一般的には、ルーチンとは、所望の結果をもたらすステップのシーケンスまたはアクション(動作)であると考えることができ、従って、これには、「プログラム」、「オブジェクト」、「関数」、「サブルーチン」、及び「手順」などの用語が含まれる。これらの記述及び表現は、当業者が自らの研究内容を他の当業者に効果的に伝達するのに使用される手段である。又、わかりやすくするべく、本明細書及び請求項における「ネットワーク」という用語は、通信ネットワーク、ネットワーク装置、他の通信装置、並びに、データの試験パケットを使用して試験可能な通信システムの1つ又は複数の側面のうちの1つ又は複数を示すよう使用されている。
Agilent Router Testerに類似した構成を有するルーターテスタ上の実現を参照して、本発明に従う方法の実施例について説明するが、本明細書に開示する方法は、様々なルーターテスタのうちの任意のものについて動作可能である。より端的に言えば、本明細書に開示されている方法は、特定の装置に本質的に関連づけられるものではなく、本明細書の開示されている手法に従うルーチンを用いて、様々な装置に使用可能である。具体的には、装置間においてデータを転送するための本明細書に記述されている方法は、ルーターテスタ機能に関して記述されているが、データ通信分野に一般的に適用可能である。又、本明細書に記述されている機能を実行することのできる機械には、Agilent Technologies, Inc.、Hewlett packard、及びTectronix, Inc.、並びに通信機器の他の製造者などの企業によって製造されるものが含まれる。
又、本明細書に記述されているソフトウェアに関し、当業者であれば、本明細書に概説されている手順を実行するソフトウェアを生成するためのプラットフォーム及び言語には、様々なものが存在することを認識するであろう。本発明の実施例は、C++を含むCの多数の変形のうちのいずれを使用しても実現可能である。但し、当業者であれば、好適なプラットフォーム及び言語の選択肢は、しばしば、構築する実際のシステムの詳細によって決定され、この結果、あるタイプのシステムにおいて動作することができるものが、別のシステムにおいては効果的ではない場合があることをも認識するであろう。又、本明細書に記述されているルーチン及び演算は、コンピュータ上においてソフトウェアとして実行されるものに限定されず、ハードウェアプロセッサ内においても実現可能であることを理解されたい。例えば、ルーチン及び演算を、様々な設計ツールを使用して、FGPAにおいて、またはASICにおいて、HDL(Hardware Design Language)により実現することができよう。
データ転送の方法
図2は、本発明の一実施例に従ってデータを転送する方法を概略的に示すブロック図である。この図示の方法は、第1の場所200aから第2の場所200bにデータを転送するためのものである。図1に示されているように、プロトコルエミュレータの場合には、第1の場所200aは、制御アプリケーションを実行するコンピュータ106(すなわち、「クライアント」)として考えることができ、第2の場所は、サービスアプリケーションを実行するプロトコルエミュレーションカード102n(すなわち、「サーバー」)として考えることができる。制御アプリケーションは、データを送受信するための通信ルーチンと共に、グラフィカルユーザーインターフェースを含む。サービスアプリケーションは、データを送受信するための通信ルーチンと共に、プロトコルエミュレーションアプリケーションを含んでいる。
わかりやすくするために、本発明の説明対象の実施例によって使用されるデータ構造を、「パーセル(Parcel)」と呼ぶ。パーセルとは、命令(command)、構成(configuration)データ、及び任意のルーチンからの出力を表すことのできる、柔軟な、注釈の付加されるデータ構造であると考えることができる。クライアントによって生成されるパーセルには、命令、セッションデータ、及びトポロジー(topology)が含まれることになろう。一方、プロトコルエミュレーションカードによって生成されるパーセルには、統計情報(statistics)、トポロジー、及びメッセージトレース(message trace)が含まれることになろう。
図2に示されている転送方法は、パーセル定義202aから始まっている(尚、これは、本明細書においては、「定義(definition)」又は「記述(description)」とも呼ばれる)。パーセル定義202nは、1つ又は複数のパーセルの要素(element)の記述を、その属性と共に提供する。好適なパーセルのデータ構造は、階層構造であり、ここで、それぞれのノードは、値(value)、サブノード、関数(function)、値の配列(array)、又は値の表(table)を含むことができる。パーセル定義202aは、パーセルのリストを提供すると共に、それぞれのパーセル、それぞれのノードのタイプ、及びノード間の相互関係を備える要素(ここでは、「ノード」と呼ぶ)を規定するテキストファイルと同程度に単純なものであってよい。また、それぞれのノードに、記述属性(descriptive attribute, この例については、後述する)を使用して、注釈を付加することができる。
パーセル定義202aを、XMLによって作成することが望ましいが、必ずしもこの必要はない。より具体的には、生成とその変更を容易にするべく、容易にアクセス可能なフォーマットで、パーセル記述をフォーマットするのが望ましい。XMLが提供するネストタグ構造(nested tag structure)によれば、階層関係構造および表構造の文書化を、容易に行うことができる。パーセル定義202aは、一般に、第1の場所200aに保存され、第1の場所200aにおいて稼働するアプリケーションによって実行(ランタイム)時に抽出される。
パーセル定義202aを解析し、パーセル参照モデル204aを生成する(これは、「参照モデル」とも呼ばれる)。一般に、パーセル参照モデルは、C++などによるデータ構造であり、ここから、パーセルのインスタンス(例:パーセルオブジェクト206b)を生成することができる(即ち、インスタンス化する(instantiate)ことができる)。恐らく、最も近い類似した構造は、C++における汎用タイプ(generic type)であろう。1つの相違点は、該汎用タイプは、コンパイル時に定義されなければならないが、パーセルは、実行中に導入されることができる。パーセルの場合には、そのタイプが、実際のパーセルが導出される元となる参照モデル204aによって定義される。使用の際には、動作中に必要となりうるすべての潜在的なパーセルの参照モデルを生成するよう、システムの起動時に、すべてのパーセル定義202nを解析することが有益であろう。但し、時間と記憶容量を考慮する必要がある場合には、現在のセッションに必要とされるであろう参照モデルのみを生成することが推奨されよう。
パーセルデータを取り扱う汎用インターフェースを提供することのできるParsel API(後述される)を使用して、パーセルオブジェクトを管理することができる。本発明の場合には、パーセルを取り扱う方法の1つは、第2の場所202bに伝送するためにそれらをシリアル化することである。保存/回復を目的とした適切なXMLを含む様々なフォーマットであって、他の場所との通信に好適なバイナリフォーマットに、パーセルをシリアル化することができる。概念的には、シリアル化とは、データ構造からのデータの採取と、伝送のための線形ファイル又はデータストリームの形成であると考えることができる。受信側で該バイナリストリームをデコードして該パーセルを復元するのに使用される参照モデル204nを識別することのできるデータ構造が提供される。この再構築中に、参照モデル204nに含まれている構造的な情報を使用し、該バイナリストリーム内のデータを解析する。
従って、第2の場所200bには、パーセル定義202aのコピー(パーセル定義202bとして示されている)が提供される。第2の場所200bは、このパーセル定義202aを解析して参照モデル204bを生成する(これは、参照モデル204aのコピーのはずである)。第2の場所200bは、バイナリデータ208を受信した際に、このパーセル参照モデル204bをインスタンス化し(instantiate)、結果として生成されたデータ構造に、このバイナリデータ208を実装する(populate)ことにより、パーセルオブジェクトを形成する。
類似のプロセスを使用して、パーセルオブジェクトを形成することができる。パーセル定義202aを使用し、該定義された要素のそれぞれについて、例えば、テキスト入力フィールドやラジオボタンなどの適切な入力メカニズムを有するグラフィカルユーザーインターフェースを生成する。ユーザーが所望の入力データを供給すると、参照モデル204nがインスタンス化され、パーセルオブジェクト206nに、その入力データが実装される。パーセル定義202nが提供されているパーセルオブジェクト206nの生成及び管理を取り扱うことのできる汎用APIを考案するのが有利である(この例については、後程開示する)。
IDLに基づいたソリューションとは対照的に、パーセルは、コンパイルされるコードの外部において定義されると共に、新しいパーセルの定義に伴って変更する必要のない汎用のAPIを使用する。この結果、アプリケーションフレームワークを変更又は増大させることなしに、将来のプロトコルソリューションに対応可能なアプリケーションフレームワークを構築することができる。又、この結果、第三者又は顧客の独自のソリューションを構築するために、該第三者または顧客にとって安定したインターフェースを生成することも可能である。従来のXMLソリューションとは対照的に、パーセル構造は、受信したデータパケットごとにではなく、前もって一度だけ定義されるのみである。必要なパーセル参照モデルを、アプリケーションの起動時点において構築することができ、よって、XMLを継続的に解析する必要性を軽減することができる。パーセルは、効率的なナビゲーションを実現するよう設計されることができ、XML DOMと比べ、サーチ(searching)が最小化される。パーセルは、効率的なバイナリエンコーディング(符号化)及びデコーディング(復号化)を実現するよう設計されることができ、XMLテキストと比べて、ソフトウェアシステム間の通信に要するバイナリデータパケットは相対的に小さい。又、パーセルは、表データを含むよう設計されることができ、多くのアプリケーションに対して無理なく適合することができる。
プロトコルエミュレータにおけるパーセルの使用
図3は、本発明の好適な一実施例に従うプロトコルエミュレーションシステム300のブロック図である。このシステム300は、一般に、Microsoft Windowsシステムの或るバージョンが稼働しているパーソナルコンピュータなどのホスト302と、少なくとも1つのプロトコルエミュレータカード304(これは、プロトコルエミュレータとも呼ばれる)とを備える、該カード304は、一般に、関連するメモリ及びI/O機能を有するプロセッサを備えている。プロトコルエミュレータが、アーキテクチャにおいて、パーソナルコンピュータに似ていることが有益であろう。少なくとも1つの実施例によれば、ホスト302は、クライアントとして構成されることができ、プロトコルエミュレータ304は、サーバーとして構成されることができる。
ホスト302は、他のアプリケーション及びオペレーティングシステムと共に、アプリケーション306を実行しており、該アプリケーション306は、プロトコルエミュレータ304の制御、特に、プロトコルエミュレータカード304との通信のためのルーチンを提供する。少なくとも1つの実施例によれば、このアプリケーションは、汎用のプロトコル独立型アプリケーションである。これは、アプリケーション306が、好ましくは、プロトコル固有の機能を欠いていることを意味している。このようなプロトコル固有の機能は、実際には、パーセル定義202nを使用して動的に生成される。アプリケーション306は、パーセル参照モデル204n(図2を参照されたい)の生成、保守、及び使用と共に、該参照モデルのインスタンス(例:パーセルオブジェクト206n)に含まれるデータのシリアル化、送信、受信、及びデシリアル化(de-serialization)の責任を担っている。前述のように、これらの機能に対して、APIに類似したインターフェースを提供することができ、これにより、それぞれの異なるプロトコルエミュレーションに、単一の汎用インターフェースを提供するようにすることが好ましい。
グラフィカルユーザーインターフェース310を提供し、これにより、ユーザーがプロトコルエミュレーションの起動を要求した際に、アプリケーション306が、グラフィカルユーザーインターフェース310を介してクライアント302とやり取りし、プロトコルエミュレータ304の制御に必要なパラメータを入力するためのフォームを表示するようにする。これは、パーセル定義202n又はパーセル参照モデル204n(図2を参照されたい)を使用して実現されることができる。適切なデータの入力が完了すると、アプリケーション306は、参照モデル204nのインスタンスを生成し、パーセルオブジェクト206nを形成する。アプリケーション306は、このパーセルオブジェクト206nをシリアル化し、シリアル化されたオブジェクトをプロトコルエミュレータ304に送信する。
プロトコルエミュレータ304は、他のアプリケーションと共に、アプリケーション308を実行しており、該アプリケーション308は、選択されたプロトコル309nのエミュレーション用のモジュールを含む。少なくとも1つの好適な実施例によれば、アプリケーション308は、パーセルを使用してホスト302と通信するためのルーチンを含む。一般的には、アプリケーション306に含まれているものに類似したルーチンを、アプリケーション308が含むことが好ましい。これは、パーセルとインターフェースする、APIに類似した汎用ルーチンを生成することによって実現されることができる。このようなルーチンの例については、後程提供される。
プロトコルエミュレータ304には、パーセル定義202nの更新済みのコピーが定期的に提供される。ホスト302が、起動の際に毎回、定義202nをプロトコルエミュレータ304に提供することが有益であろう。プロトコルエミュレータ304は、このパーセル定義202nを受信した際に、パーセルオブジェクト206nがインスタンス化されることのできる元となる一組のパーセル参照モデル204nを生成する。ホスト302から、シリアル化されたパーセルオブジェクトを受信した際に、関連するパーセルオブジェクト206nに基づいて、新しいパーセルオブジェクトがインスタンス化される。次いで、このオブジェクトを使用し、プロトコルエミュレータ304上で稼働するプロトコルエミュレーションルーチンによって必要とされるデータを提供する。このように、プロトコルエミュレータ304に新しいプロトコルエミュレーションを追加する際、ホスト302とプロトコルエミュレータ304(及びモジュール309n)間の通信を可能にするのに定義する必要のあるのは、新しいパーセル定義202nのみである。
パーセル
以下の説明は、パーセルの一実施例に焦点を合わせているが、当業者であれば、ここで説明されるパーセル構造に対する変更も可能であり、それらも依然として本発明の範囲に属することを認識するであろう。ここで説明される実施例においては、パーセルは、一般に、ヘッダと、一組の要素(element)と、を有している。一組の要素は、一般に、構造(structure)を提供するコンテナ(container)要素と、1つの値又は一連の値を保存するデータ要素という2つのカテゴリに分かれている。表1には、パーセルの一組の要素(「ノード」でない)のタイプの一例が示されている。
Figure 2005339538
それぞれの要素には、記述属性を使用して注釈を付加することができる。このような属性は、パーセルを文書化し、よって、パーセルが自己文書化(Self−documenting)することを可能にする。これらの属性を、パーセル定義や、(ことによると)パーセル参照モデルと共に保存することにより、パーセルを操作し且つこれとインターフェースするよう提供されるルーチンを、本質的に汎用的なものにすることができる(例えば、データ構造は、ルーチン内にコーディングされるのではなく、実行中に提供される)。例えば、これらの属性を使用することにより、汎用的なグラフィカルユーザーインターフェースを使用した任意のパーセルの提示及び編集に必要なすべての情報を提供することができる。表2には、可能な属性のいくつかの例が示されている。当業者であれば、この表2のリストがすべてを網羅してはおらず、本発明の実現形態に応じて、他の属性も有益であることを認識するであろう。
Figure 2005339538
表3には、XMLによるパーセル定義の一例が含まれている。具体的には、表3には、「addIpv4RoutePool」と「addIpv6RoutePool」という2つの命令(command)と共に、「bgpSessionData」と「routePools」という2つのパーセルの定義が含まれている。パーセル「bgp」は、bgpエミュレーションセッションを生成するのに必要な起動データを定義する。一方、パーセル「routePools」は、ルーティングプロトコルによって公にされる、到達可能な一組のアドレスを定義する。「routePools」内には、2つの表が定義されている(1つは、Ipv4アドレス、もう1つは、Ipv6アドレスに関するものである)。アドレスの範囲は、開始アドレス(start address)、プレフィックス長(prefix length)、及びカウント(count)を使用して、パラメータ的に定義されている。命令は、「routePools」パーセルを参照し、その内容を実装する。これらの命令は、ルートプール(route pool)表から選択された行を、パラメータとして使用する。
Figure 2005339538
Figure 2005339538
Figure 2005339538
要素には、しばしば、定義の内外において規定された他の値に応じて、異なる既定値を設定する必要がある。このような場合には、この種のタスクを実行するよう呼び出されることができるTCL(Tool Command Language)手順を内蔵(integration)することが有益であろう。このような機能を、XMLパーセル定義内に指定することができる。当業者であれば、このTCL内蔵を実行することができるであろうから、本明細書においては、この内蔵の具体的な詳細に関する説明は省略する。表4には、このTCL機能を内蔵するパーセル定義の一部の例が示されている。
Figure 2005339538
この例においては、「holdTimer」にどのような値が設定された場合にも、「keepalive」の既定値は、「holdTimer」の二倍に維持される。このTCL機能は、パーセルをインスタンス化する際(例:パーセルのインスタンスの生成)に実行されることができる。又、パーセル定義及び/又はモデルをレビューし、実行中にこのような機能によって影響を受ける値を更新するためのルーチンを生成することもできる。
パーセルの取り扱い
図4は、本発明の一実施例に従ってパーセル参照モデル204及びパーセルオブジェクト206を生成するためのパーセル定義202の使用を示すブロック図である。一般的に言えば、参照モデル204は、データ構造の詳細を含むすべてのパーセル属性のリポジトリ(repository)として機能する。尚、この説明対象の実施例の場合には、該構造に、階層構造ノードと基本表が含まれるが、本発明は、これらの構造に限定されるものではなく、例えば、リレーショナルな構造を含むように拡張することもできる。又、この参照モデル204により、パーセル間又はパーセルノード間におけるXML内のすべての相互参照(クロスレファレンス)が解決される。
図5は、パーセルオブジェクト206を生成する方法のフローチャートである。この方法は、ステップ500において始まる。次いで、ステップ502において、利用可能なXMLパーセル定義ファイル(例:パーセル定義ファイル206)の<parcel>タグが読みとられ、ファイルに対する該タグ名のルックアップテーブルを構築する。
ステップ504において、パーセル参照モデル204がまだ形成されていないパーセルオブジェクト206が要求されているならば、本方法は、ステップ506に進む。一方、そうでない場合には、本方法は、後述するステップ514に進む。ステップ506において、ステップ502において構築されたルックアップテーブルを読み取り、要求されているパーセルオブジェクト206に対応するXMLファイルを識別する。次いで、ステップ508において、該識別されたXMLファイルを、例えば、expatなどのパブリックドメインのXMLパーサー(parser)を使用して解析する。このXMLパーサーは、C++タグオブジェクトのベクトルを生成し、該ベクトルは、ステップ510における関連参照モデル204の構築に使用される。
図4に示されている例を参照すると、参照モデル204には、最上位レベルノードであるセット(1)が含まれており、これに、表ノード(2)と値ノード(6)が含まれている。そして、表ノード(2)は、値ノード(3)、配列ノード(4)、及び値ノード(5)という3つのノードを含む。この例のパーセルオブジェクト206においては、表ノード(2)の3つの行を生成することにより、12個のノードが生成される。
起動時にすべてのXMLファイルを解析し、セッション全体についてすべてのモデルが利用可能となるようにすることが有益であろう。但し、所与の試験セッションに必要とされるのがパーセルのサブセットのみである場合があり、この場合には、これは不要であろう。従って、図5に関連して説明する要求に基づいて解析することが有益であろう。
ステップ512において、マップを作成し、該マップを、参照パーセルオブジェクト(即ち、名前によってインデックス付けされた、参照モデル204によって記述されるパーセルオブジェクト)のマップを維持している参照モデル204と関連付ける。このことは、単一の参照モデル204が複数の参照パーセルオブジェクトの記述が含むことがあるため、望ましい。パーセルオブジェクト206がインスタンス化されるとき、このマップを使用することにより、所望のパーセルを記述する適切な参照モデル204(又は、その一部)を抽出することができる。
次いで、ステップ514において、パーセルオブジェクト206を構築するルーチンに対し、この参照モデル204を渡す。この結果、関連する参照モデル204から、新しいパーセルオブジェクト206が作成される(実際には、インスタンス化される)。一般に、パーセルオブジェクト206は、関連する参照モデル204を示すヘッダと、その参照モデル204内に記述されている要素に関係するデータを保持するためのデータ構造を有している。最初に作成されるときは、このデータ構造に、(提供されている場合には)属性内に定義されている既定値を実装する(populate)ことができる。値は、必要に応じて、ユーザー又は他のルーチンによって更新又は入力可能である。
パーセル206内のそれぞれのノードは、対応する参照パーセルノードを有している。しかしながら、表の存在は、その対応関係が必ずしも1対1ではないことを意味している。これは、パーセルオブジェクト206が、特定のノードについて、複数のインスタンス(テーブル内の行ごとに1つずつ)を有することがあるためである。尚、パーセルオブジェクト206は、参照モデル204内に含まれている属性情報を含む必要はない(但し、含んでもよい)。必要な場合には、参照パーセル204から属性情報を取得することができる。
パーセル内のそれぞれのノードにインデックスを割り当てることにより、パーセルオブジェクト206のノード間における効率的なナビゲーションを容易化することができる。図4のそれぞれのノード内の括弧内の数字は、このインデックス付けシステムの例を示している。参照モデル204において、それぞれの参照ノードには、インデックスが割り当てられている。セット又は表などのコンテナであるそれぞれの参照ノードは、そのメンバノードのインデックスを記録するよう構成されることができる。パーセルオブジェクト206内のそれぞれのノードは、その対応する参照ノード204と同一のインデックスを取得する。パーセルオブジェクト206内のアクティブ(active)ノードのパーセルインデックスのベクトルを、該オブジェクト内のノードの効率的なナビゲーションのために使用することができる。それぞれのアクティブノードは、そのインデックスを該ベクトル内に記録する。表の場合には、その表の現在の(又は選択された)行を指定することにより、複数の行(従って、ノードインスタンス)の存在を管理することができる。行を選択するとき、選択された行におけるノードは、自らをパーセルインデックスベクトルに登録する。こうして、現在の行におけるノードのみをナビゲートすることができる(ノードにアクセスすることができるようになる前に、行を選択する必要がある)。
パーセル定義をパーセルモデルに変換するプロセスについて十分に理解することができるように、以下に表を提示する。表5は、部分的なパーセル定義(3つの個別のパーセルが含まれている)を示しており、表6は、表5に含まれているパーセル定義に基づいた参照モデル(reference model)の概念的な例である。
Figure 2005339538
Figure 2005339538
実際に、パーセルは、自己文書化データモデルであるため、一群の汎用ルーチンを、該パーセルとインターフェースをとるよう定式化(formulate)することができる。このようなルーチンは、その機能の観点から、API(Application Program Interface)と考えることができる。パーセルの作成(例:インスタンスの作成)、パーセルの読み取り、及びパーセルの書き込みのためのルーチンを提供することが望ましい。表7には、読み取り及び書き込みインターフェースを含む、パーセルに対する汎用インターフェースを、自己文書化コードを使用して記述したルーチンの例が提供されている。
Figure 2005339538
Figure 2005339538
Figure 2005339538
Figure 2005339538
Figure 2005339538
Figure 2005339538
Figure 2005339538
Figure 2005339538
Figure 2005339538
パーセルの管理のための一連のルーチンを提供することが好ましい。このような管理は、クライアントアプリケーション(例:図3に示されている実施例におけるホスト302及びプロトコルエミュレータカード304)によって提供されることができる。但し、クライアントアプリケーションによってリンクされることのできる管理ルーチンのコレクション(collection,集まり)を提供することが有益であり、本明細書においては、このようなルーチンをパーセルストア(parcel store)と集合的に呼ぶことにする。好ましくは、パーセルストアは、パーセルを使用して通信するそれぞれのソフトウェアコンポーネントによって提供される。一例として、パーセルストアは、クライアントに代わってのパーセルの作成、パーセルのエンコーディング(符号化)及び宛先パーセルストアへの送信(例:シリアル化)、別のパーセルストアから到来したパーセルのデコーディング(復号化)及びバッファリング、及び新しいパーセルデータが利用可能な場合のクライアントへの通知の責任を担うことができる。表8には、パーセルストアに対するインターフェース用の自己文書化コードの例が提供されている。
Figure 2005339538
Figure 2005339538
Figure 2005339538
Figure 2005339538
Figure 2005339538
メッセージングシステムにおいて望ましい前述のパーセルストアの基本機能の1つが、バッファリングである。一般に、バッファリングとは、パーセル内に含まれている情報を処理するための受信(又は、送信)システムの準備が整うまで、パーセルを一時的に保持することを意味している。例えば、ホストの負荷を最小にすることが必要な場合には、クライアントは、送信側において、バッファからパーセルをプル(pull)することができる。代替的に、受信側の様々なタイプのバッファに対して送信側がパーセルをプッシュ(push)し、応答性を最適化することができる。XMLパーセル定義内においてバッファのタイプを規定し、パーセル参照モデルに知らしめることができる。代替的に、シリアル化されたパーセル内の情報に基づいて、該タイプを判定することもできる。クライアントインターフェースに影響を与えたり、ソフトウェアの再作成や再コンパイルを必要とすることなしに、XMLにおけるパーセルバッファタイプを調節することにより、アプリケーションの性能をチューニングすることができる。
表9には、適切なバッファタイプのいくつかの例が開示されている。
Figure 2005339538
帯域幅を節約すべく、送信の前に、パーセルをシリアル化することができる。尚、一般に、本明細書において使用されているこの「シリアル化」という用語は、パーセル内のデータを採取し(strip)、(通常は、要素のそれぞれのインデックスに基づいて)シリアルに配列するプロセスを意味している。受信側においてパーセルを再構築することができるように、シリアル化されたパーセルのヘッダ内に最小限の量の識別情報を提供する。表10には、パーセルの様々な要素のシリアル化について可能な1つのプロセスが記述されている。
Figure 2005339538
その他
以上、本発明の特定の実施例について説明してきたが、当業者であれば、本発明の原理と精神を逸脱することなしに、これらの実施例に変更を加えることができるということは、理解されたい。従って、本発明の範囲は、請求項及びその等価なものに規定されているとおりである。
例えば、定義及び参照モデルを含むパーセル構造を使用する利点の1つは、グラフィカルユーザーインターフェース(GUI)要素の構築を自動化することができるという点にある。換言すれば、パーセルの内容を、パーセル自体に基づいて導出されるフォーマットを使用して表示することができる。パーセル定義又は参照モデルを解析することにより、その場でインターフェースを構築することができる。このようなインターフェースを、パケットの内容を参照したり、パケットの作成及び編集に用いることができる。
図6は、表11に含まれているパーセル定義内に定義される表構造に基づいて構築されたインターフェースを示している。
Figure 2005339538
図7は、表12内に含まれているパーセル定義内に定義された値のセットに基づいて構築されたインターフェースを示す。図7の場合には、定義内に記述されているデータの階層構造特性を強調するよう、ツリー構造が選択されている。
Figure 2005339538
本発明の原理と精神を逸脱することなく、これらの実施例に加えることができる変更の別の例は、パーセルインスタンスを反復的に作成する機能の提供である。例えば、パーセル間において1つ又は複数の値が異なる一連のパーセルが所望される場合には、該反復機能を提供することにより、+1などの相対的な関係で、それらのパーセル値を定義することができる。こうして、パーセルの反復を使用することにより、単一のパーセルを使用して多くの異なるパーセルをパラメータによって生成することができる。プロトコルエミュレーションアプリケーションの例を用いると、1つのセッションのパーセルのみを使用して定義された、多くのセッションからなるセッションプールを作成することが、望ましい場合がある。これは、既定の増分(インクリメント)属性によってXMLモデル内の所定の値にタグ付けすることにより、実装されることができる。即ち、この増分を使用して、パーセルのそれぞれの反復におけるそれぞれの値を調節する。例えば、値には、「10」の既定の増分を指定することができる。第1パーセルにおいて値が50の場合には、パーセルを1回反復すれば、値は60になり、パーセルを2回反復すれば、値は70になる。又、この既定の増分は、増分関数によって算出することもできる。これにより、パーセル内の他の値に基づいて、該既定の増分値をインテリジェントに割り当てることができる。
トラフィックシミュレータ試験システムのブロック図。 本発明の実施例に従ってデータを転送する方法を概略的に示すブロック図。 本発明の好適な実施例に従う、プロトコルエミュレーションシステムのブロック図。 本発明の実施例に従う、パーセル参照モデルとパーセルオブジェクトを作成するためのパーセル定義の使用を示すブロック図。 パーセルオブジェクトを作成する方法のフローチャート。 パーセル定義内に定義されている表構造に基づいて構築されたインターフェースの画面キャプチャ(screen capture)。 パーセル定義内に定義されている値のセットに基づいて構築されたインターフェースの画面キャプチャ。
符号の説明
202 パーセル定義
204 参照モデル
206 パーセルオブジェクト

Claims (45)

  1. 送信装置から受信装置にデータを転送する方法であって、
    前記データの構造の記述を準備するステップと、
    前記記述を、前記送信装置および前記受信装置に提供するステップと、
    前記送信装置及び受信装置のそれぞれにおいて、実行中に、前記記述を使用して前記データ構造の参照モデルを作成するステップと、
    要求に応じて、前記送信装置において、前記データによって、前記参照モデルのインスタンスを作成するステップと、
    前記インスタンスにおける前記データをシリアル化するステップと、
    前記シリアル化されたデータを、前記送信装置から前記受信装置に転送するステップと、
    前記受信装置において、前記参照モデルに基づいて、前記データのインスタンスを作成するステップと、
    を含む、方法。
  2. 前記データの構造の記述を準備する前記ステップは、前記データ構造を記述するXMLファイルを作成することを含む、
    請求項1に記載の方法。
  3. 前記データの構造の前記記述は、外部プロセスに対する呼び出しを含む、
    請求項1に記載の方法。
  4. 前記データの構造の前記記述は、前記データ構造内の他の値に基づく値を含む、
    請求項1に記載の方法。
  5. 前記データの構造の記述を準備する前記ステップは、階層構造で前記データを記述することを含む、
    請求項1に記載の方法。
  6. 前記データの構造の記述を準備する前記ステップは、表を使用して前記データを記述することを含む、
    請求項1に記載の方法。
  7. 前記データの構造の記述を準備する前記ステップは、階層構造で、表を使用し、前記データを記述することを含む、
    請求項1に記載の方法。
  8. 前記データの構造の記述を準備する前記ステップは、値、配列、セット、表、およびキーが付けられた表などの定義された要素を使用して、前記データを記述することを含む、
    請求項1に記載の方法。
  9. 前記データの構造の記述を準備する前記ステップは、値を保持するための要素または他の要素、および、該要素の属性を定義することを含む、
    請求項1に記載の方法。
  10. 前記属性は、前記要素の記述名、前記要素の記述、前記要素の長さ、前記要素の提示フォーマット、および、前記要素の可能な値の範囲を含む、
    請求項9に記載の方法。
  11. 前記参照モデルを作成する前記ステップは、
    前記データのそれぞれの要素について、ノードを作成するステップと、
    前記参照モデルの前記ノードに、インデックス付けするステップと、
    を含む、請求項1に記載の方法。
  12. 前記データをシリアル化する前記ステップは、該データの要素が取得された前記ノードの前記インデックスに基づいて、線形に該データを順序付けすることを含む、
    請求項11に記載の方法。
  13. 前記データをシリアル化する前記ステップは、該データの要素が取得された前記ノードの前記インデックスに基づいて線形に順序付けされた該データで、バイナリファイルを作成することを含む、
    請求項1に記載の方法。
  14. 前記データをシリアル化する前記ステップは、XMLファイルを作成することを含む、
    請求項1に記載の方法。
  15. プロトコルエミュレーションと通信する方法であって、
    前記プロトコルエミュレーションの制御に必要なデータの構造の記述を準備するステップと、
    前記記述を、コントローラおよび前記プロトコルエミュレーションに提供するステップと、
    前記コントローラおよび前記プロトコルエミュレーションのそれぞれにおいて、実行中に、前記記述を使用して前記データ構造の参照モデルを生成するステップと、
    要求に応じて、前記コントローラにおいて、前記データによって前記参照モデルのインスタンスを作成するステップと、
    前記インスタンスにおける前記データをシリアル化するステップと、
    前記シリアル化されたデータを、前記コントローラから前記プロトコルエミュレーションに転送するステップと、
    前記プロトコルエミュレーションにおいて、前記参照モデルに基づいて、前記データのインスタンスを作成するステップと、
    を含む、方法。
  16. 前記データの構造の記述を準備する前記ステップは、前記データ構造を記述するXMLファイルを作成することを含む、
    請求項15に記載の方法。
  17. 前記データの構造の前記記述は、外部プロセスに対する呼び出しを含む、
    請求項15に記載の方法。
  18. 前記データの構造の前記記述は、前記データ構造内の他の値に基づく値を含む、
    請求項15に記載の方法。
  19. 前記データの構造の記述を準備する前記ステップは、階層構造で前記データを記述することを含む、
    請求項15に記載の方法。
  20. 前記データの構造の記述を準備する前記ステップは、表を使用して前記データを記述することを含む、
    請求項15に記載の方法。
  21. 前記データの構造の記述を準備する前記ステップは、階層構造で、表を使用し、前記データを記述することを含む、
    請求項15に記載の方法。
  22. 前記データの構造の記述を準備する前記ステップは、値、配列、セット、表、およびキーが付けられた表などの定義された要素を使用して、前記データを記述することを含む、
    請求項15に記載の方法。
  23. 前記データの構造の記述を準備する前記ステップは、値を保持するための要素または他の要素、および該要素の属性を定義することを含む、
    請求項15に記載の方法。
  24. 前記属性は、前記要素の記述名、前記要素の記述、前記要素の長さ、前記要素の提示フォーマット、および前記要素の可能な値の範囲を含む、
    請求項23に記載の方法。
  25. 前記参照モデルを作成する前記ステップは、
    前記データのそれぞれの要素について、ノードを作成するステップと、
    前記参照モデルの前記ノードにインデックス付けするステップと、
    を含む、請求項15に記載の方法。
  26. 前記データをシリアル化する前記ステップは、該データの要素が取得された前記ノードの前記インデックスに基づいて、線形に該データを順序付けすることを含む、
    請求項25に記載の方法。
  27. 前記データをシリアル化する前記ステップは、該データの要素が取得された元の前記ノードの前記インデックスに基づいて線形に順序付けされた該データで、バイナリファイルを作成することを含む、
    請求項15に記載の方法。
  28. 前記データをシリアル化する前記ステップは、XMLファイルを作成することを含む、
    請求項15に記載の方法。
  29. さらに、
    要求に応じて、前記プロトコルエミュレーションにおいて、データの第2のセットによって前記参照モデルのインスタンスを作成するステップと、
    前記インスタンスの前記データの第2のセットをシリアル化するステップと、
    前記シリアル化されたデータの第2のセットを、前記プロトコルエミュレーションから前記コントローラに転送するステップと、
    前記コントローラにおいて、前記参照モデルに基づいて、前記データの第2のセットのインスタンスを作成するステップと、
    を含む、請求項15に記載の方法。
  30. 前記データは、命令、セッションデータ、およびトポロジーのうちの少なくとも1つを有する、
    請求項15に記載の方法。
  31. 前記データの第2のセットは、統計情報、トポロジー、およびメッセージトレースのうちの少なくとも1つを有する、
    請求項29に記載の方法。
  32. 前記作成するステップは、前記コントローラにおいて、前記データによって前記参照モデルの複数のインスタンスを作成することを含み、それぞれの該インスタンスは、ユーザーによって提供される指示に基づいて変化する、
    請求項15に記載の方法。
  33. データを転送するシステムであって、
    一組のデータの構造の記述を含むクライアントコンピュータと、
    実行中に、前記記述を使用して前記構造の参照モデルを作成し、要求に応じて、該一組のデータが実装された前記参照モデルのインスタンスを作成する、前記クライアントコンピュータ上において動作可能なソフトウェアと、
    前記インスタンスにおける前記一組のデータをシリアル化して伝送する、前記クライアントコンピュータ上で動作可能な通信ソフトウェアと、
    受信装置において前記シリアル化された一組のデータを受信し、前記参照モデルに基づいて、前記一組のデータのインスタンスを作成するサーバーと、
    を備える、システム。
  34. 前記サーバーには、前記データ構造の前記記述が提供され、該サーバーは、該記述を使用して前記参照モデルのコピーを作成する、
    請求項33に記載のシステム。
  35. 前記クライアントコンピュータは、前記サーバーに対して、起動の際に前記記述を提供する、
    請求項34に記載のシステム。
  36. 前記サーバーは、プロトコルエミュレータを備え、前記データは、命令、セッションデータ、およびトポロジー情報を有する、
    請求項33に記載のシステム。
  37. 第2のデータ構造の記述を使用して該第2データ構造の第2の参照モデルを作成し、要求に応じて、データの第2のセットが実装された該第2の参照モデルのインスタンスを作成する、前記サーバー上で動作可能なソフトウェアと、
    前記インスタンスにおける前記データの第2のセットをシリアル化し、該シリアル化されたデータを前記クライアントコンピュータに伝送する、前記サーバーコンピュータ上で動作可能な通信ソフトウェアと、
    をさらに備える、請求項33に記載のシステム。
  38. 前記サーバーは、プロトコルエミュレータを備え、前記データの第2のセットは、統計情報、トポロジー、およびメッセージトレースのうちの少なくとも1つを有する、
    請求項35に記載のシステム。
  39. 前記ソフトウェアは、前記参照モデルのインスタンスを複数回生成して、複数のオブジェクトを作成する、
    請求項33に記載のシステム。
  40. それぞれのオブジェクトは、定義される方式において、他のオブジェクトと異なる、
    請求項33に記載のシステム。
  41. 前記データから独立した方式で、前記ソフトウェアとインターフェースするアプリケーションプログラミングインターフェースをさらに備える、
    請求項33に記載のシステム。
  42. 前記参照モデルに基づいてインターフェースを動的に構築するグラフィクスユーザーインターフェースをさらに備える、
    請求項33に記載のシステム。
  43. 前記参照モデルは、前記データを記述する属性を含む、
    請求項33に記載のシステム。
  44. 前記参照モデルに含まれる前記属性に基づいて、前記参照モデルの前記インスタンスにおけるデータを表示するためのインターフェースを動的に構築するグラフィクスユーザーインターフェースをさらに備える、
    請求項43に記載のシステム。
  45. プロトコルエミュレータを制御するシステムであって、
    前記プロトコルエミュレータを制御するのに使用される一組のデータの構造の記述を、該構造の参照モデルに変換する手段と、
    前記参照モデルのインスタンスを生成し、前記一組のデータを保持するオブジェクトを生成する手段と、
    前記オブジェクトにおける前記一組のデータをシリアル化して伝送する、ホスト上の通信手段と、
    前記シリアル化された一組のデータを受信し、前記参照モデルに基づいて、受信装置において前記一組のデータのインスタンスを作成するサーバー手段と、
    をさらに備え、
    前記プロトコルエミュレータは、前記サーバー手段上において、前記一組のデータに従って動作する、
    システム。
JP2005143559A 2004-05-21 2005-05-17 分散データモデル Expired - Fee Related JP4991124B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/851,303 2004-05-21
US10/851,303 US8086660B2 (en) 2004-05-21 2004-05-21 Distributed data model

Publications (2)

Publication Number Publication Date
JP2005339538A true JP2005339538A (ja) 2005-12-08
JP4991124B2 JP4991124B2 (ja) 2012-08-01

Family

ID=34465815

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005143559A Expired - Fee Related JP4991124B2 (ja) 2004-05-21 2005-05-17 分散データモデル

Country Status (5)

Country Link
US (1) US8086660B2 (ja)
JP (1) JP4991124B2 (ja)
CN (1) CN1700665A (ja)
DE (1) DE102005013301A1 (ja)
GB (1) GB2414312A (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984294B1 (en) * 2005-04-14 2011-07-19 Avaya Inc. Method and apparatus for trust based routing in data networks
WO2008054790A2 (en) * 2006-10-31 2008-05-08 Live Cargo, Inc. Systems and methods for optimized serialization
US8462369B2 (en) 2007-04-23 2013-06-11 International Business Machines Corporation Hybrid image processing system for a single field of view having a plurality of inspection threads
US8675219B2 (en) 2007-10-24 2014-03-18 International Business Machines Corporation High bandwidth image processing with run time library function offload via task distribution to special purpose engines
US9135073B2 (en) 2007-11-15 2015-09-15 International Business Machines Corporation Server-processor hybrid system for processing data
US9332074B2 (en) 2007-12-06 2016-05-03 International Business Machines Corporation Memory to memory communication and storage for hybrid systems
US8379963B2 (en) * 2008-03-28 2013-02-19 International Business Machines Corporation Visual inspection system
US8264972B2 (en) * 2008-05-30 2012-09-11 Spirent Communications, Inc. Method and apparatus for emulating network devices
US7958387B2 (en) 2008-05-30 2011-06-07 Spirent Communications, Inc. Realtime test result promulgation from network component test device
CN101957851B (zh) * 2010-09-26 2012-07-18 清华大学 一种用于仿真系统的配置数据的存储管理方法和装置
CN102594583B (zh) * 2011-11-23 2014-09-17 华为技术有限公司 流量监测和切换的方法、装置及系统
US9152740B1 (en) * 2012-01-18 2015-10-06 Msc.Software Corporation Interactive simulation and solver for mechanical, fluid, and electro-mechanical systems
CN103428192A (zh) * 2012-05-25 2013-12-04 腾讯科技(北京)有限公司 一种封装与解析二进制协议数据的方法和装置
US9652264B2 (en) * 2012-09-21 2017-05-16 Ixia Methods, systems, and computer readable media for providing a unified framework to support diverse data generation engines
US9356855B2 (en) * 2013-10-10 2016-05-31 Ixia Methods, systems, and computer readable media for providing for specification or autodiscovery of device under test (DUT) topology information
US9628356B2 (en) * 2013-10-10 2017-04-18 Ixia Methods, systems, and computer readable media for providing user interfaces for specification of system under test (SUT) and network tap topology and for presenting topology specific test results
US11182399B2 (en) 2018-09-04 2021-11-23 Spirent Communications, Inc. Effective correlation of multiple time-series result sets
US10917326B1 (en) 2019-08-23 2021-02-09 Keysight Technologies, Inc. Methods, systems, and computer readable media for debugging test traffic generation
DE102021200191B3 (de) 2021-01-11 2022-04-07 Geze Gmbh Verfahren zum Verarbeiten von Konfigurations-Daten einer Vielzahl von Entitäten, damit zusammenwirkende Verfahren und Vorrichtungen sowie Computerprogrammprodukt und Signalfolge

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222477A (ja) * 1997-01-24 1998-08-21 Internatl Business Mach Corp <Ibm> コンピュータ・システム間でデータ構造を転送する方法
JPH10285252A (ja) * 1997-02-10 1998-10-23 Advantest Corp 通信機器の試験・測定方法及び装置
JP2002108665A (ja) * 2000-09-29 2002-04-12 Toshiba Information Systems (Japan) Corp 電子データ配信システム、データベース・タグ書式データ変換インターフェース、タグ名・セル名変換インターフェース、セルデータ書込みインターフェース及び電子データ配信方法
JP2002152206A (ja) * 2000-11-10 2002-05-24 Hitachi Ltd ルータ装置の検証方式
JP2003163712A (ja) * 2001-11-22 2003-06-06 Hitachi Ulsi Systems Co Ltd ネットワーク装置およびプログラム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4745593A (en) * 1986-11-17 1988-05-17 American Telephone And Telegraph Company, At&T Bell Laboratories Arrangement for testing packet switching networks
US5818603A (en) * 1996-03-29 1998-10-06 Ricoh Company, Ltd. Method and system for controlling and communicating with machines using multiple communication formats
US5680585A (en) * 1995-03-31 1997-10-21 Bay Networks, Inc. Method and apparatus for defining data packet formats
US5822520A (en) * 1995-12-26 1998-10-13 Sun Microsystems, Inc. Method and apparatus for building network test packets
US5961589A (en) * 1997-09-09 1999-10-05 Intel Corporation Emulation of analog modem signaling over IDSN for translation-less interoperability with PSTN based H.324 system
US6167537A (en) * 1997-09-22 2000-12-26 Hewlett-Packard Company Communications protocol for an automated testing system
US20010011215A1 (en) * 1998-08-31 2001-08-02 Scott A. Beeker Network device simulation system and method
US6654761B2 (en) * 1998-07-29 2003-11-25 Inxight Software, Inc. Controlling which part of data defining a node-link structure is in memory
US6373822B1 (en) * 1999-01-08 2002-04-16 Cisco Technology, Inc. Data network protocol conformance test system
US6356950B1 (en) * 1999-01-11 2002-03-12 Novilit, Inc. Method for encoding and decoding data according to a protocol specification
US6710893B1 (en) * 1999-11-02 2004-03-23 Ricoh Co., Ltd. Automated system and method of testing a facsimile machine
US20040268242A1 (en) * 2000-08-09 2004-12-30 Microsoft Corporation Object persister
JP2002152317A (ja) * 2000-11-10 2002-05-24 Fujitsu Ltd 試験装置
US6993037B2 (en) * 2001-03-21 2006-01-31 International Business Machines Corporation System and method for virtual private network network address translation propagation over nested connections with coincident local endpoints
US20020156885A1 (en) * 2001-04-23 2002-10-24 Thakkar Bina Kunal Protocol emulator
US6928488B1 (en) * 2001-06-27 2005-08-09 Microsoft Corporation Architecture and method for serialization and deserialization of objects
US8089888B2 (en) * 2001-12-10 2012-01-03 Qualcomm Incorporated Method and apparatus for testing traffic and auxiliary channels in a wireless data communication system
US20030156548A1 (en) * 2002-02-15 2003-08-21 Sapp Kevin Allen Methods and systems for testing throughput of a packet-based communications node
FR2836568A1 (fr) 2002-02-28 2003-08-29 Bull Sa Procede iteratif de serialisation d'objets logiciels structures
US7278061B2 (en) * 2002-10-08 2007-10-02 Agilent Technologies, Inc. Building packets of data for testing a communication network
US7970779B2 (en) * 2003-09-12 2011-06-28 Oracle International Corporation Application interface including dynamic transform definitions

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222477A (ja) * 1997-01-24 1998-08-21 Internatl Business Mach Corp <Ibm> コンピュータ・システム間でデータ構造を転送する方法
JPH10285252A (ja) * 1997-02-10 1998-10-23 Advantest Corp 通信機器の試験・測定方法及び装置
JP2002108665A (ja) * 2000-09-29 2002-04-12 Toshiba Information Systems (Japan) Corp 電子データ配信システム、データベース・タグ書式データ変換インターフェース、タグ名・セル名変換インターフェース、セルデータ書込みインターフェース及び電子データ配信方法
JP2002152206A (ja) * 2000-11-10 2002-05-24 Hitachi Ltd ルータ装置の検証方式
JP2003163712A (ja) * 2001-11-22 2003-06-06 Hitachi Ulsi Systems Co Ltd ネットワーク装置およびプログラム

Also Published As

Publication number Publication date
US20050259594A1 (en) 2005-11-24
GB0504878D0 (en) 2005-04-13
CN1700665A (zh) 2005-11-23
GB2414312A (en) 2005-11-23
DE102005013301A1 (de) 2006-02-16
US8086660B2 (en) 2011-12-27
JP4991124B2 (ja) 2012-08-01

Similar Documents

Publication Publication Date Title
JP4991124B2 (ja) 分散データモデル
JP5462905B2 (ja) プロトコルエミュレータ
JP4509916B2 (ja) Snmp基盤のネットワーク管理装置および方法
US7467078B2 (en) Portable distributed application framework
US6836890B1 (en) Methods and systems for message translation and parsing of data structures in a distributed component architecture
US7739330B1 (en) Network router management interface with selective rendering of output
US7428725B2 (en) Inserting devices specific content
US7346842B1 (en) Methods and apparatus for incorporating a partial page on a client
US6883164B2 (en) Strategy for dynamically modeling ASN.1 data to an object model
CN110502212A (zh) 一种面向多语言的高并发在线开发支撑方法
US8150862B2 (en) Multiple related event handling based on XML encoded event handling definitions
US9519628B2 (en) Method for generating simple object access protocol messages and process engine
US20210099538A1 (en) Systems and methods for data exchange among network devices
CN106598575A (zh) 一种前端数据模拟的实现方法及系统
US7401326B1 (en) Compiling protocol analysis code using protocol database
CN112732572A (zh) 服务的测试方法、装置及系统、存储介质、电子装置
CN108804100B (zh) 创建界面元素的方法、装置、存储介质及移动终端
CN113596017B (zh) 一种协议解析方法、装置、软网关和存储介质
CN117278661B (zh) 一种工业物联网多协议解析方法及系统
KR20090000199A (ko) 웹 서버 어플리케이션 프레임워크와 상기 프레임워크를이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는컴퓨터로 읽을 수 있는 기록 매체
CN108173948A (zh) 一种分布式试验数据实时交换方法
CN115499889A (zh) 基于vpp的upf转发面实现方法、装置、系统及相关设备
CN112039691B (zh) 一种网络仿真平台中虚拟路由器自动配置方法和装置
Serin Design and test of the cross-format schema protocol (XFSP) for networked virtual environments
JP4708685B2 (ja) Cliコマンド投入方法/プログラム/プログラム記録媒体/装置、データ記録媒体

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070511

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070813

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110126

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110520

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110812

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: 20120403

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: 20120507

R150 Certificate of patent or registration of utility model

Ref document number: 4991124

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees