(57)【要約】      （修正有）【課題】２つの通信ログを比較検証しやすくする技術を提供する。【解決手段】第一のサーバー機器と第一のクライアント機器との間の第一の通信ログを取得し、前記第一の通信ログを取得した通信環境に依存するパラメーターと識別子との対応を定義する識別子定義部と、前記識別子を用いて前記通信シーケンスを定義する通信シーケンス定義部とに分離し、前記識別子定義部で定義する前記パラメーターを、第二のサーバー機器と第二のクライアント機器との通信環境に適合させて、第二のクライアント機器において実行したときの前記第二のサーバー機器と前記第二のクライアント機器との間の第二の通信ログの通信環境に依存するパラメーターと識別子との対応を定義する識別子定義部と、前記パラメーターに対応付けて定義された前記識別子を用いて前記通信シーケンスを定義する通信シーケンス定義部と、に分離した第二のソースコードを生成する、ことを含む。【選択図】図１
2010258499.tif 000002
【特許請求の範囲】
【請求項１】
相互に通信可能な第一のサーバー機器と第一のクライアント機器との間の第一の通信ログを取得する第一通信ログ取得工程と、
前記第一の通信ログに基づいて前記第一の通信ログに示される通信シーケンスを再現するための第一の再現プログラムのソースコードであって、前記第一の通信ログを取得した通信環境に依存するパラメーターと識別子との対応を定義する識別子定義部と、前記パラメーターに対応付けて定義された前記識別子を用いて前記通信シーケンスを定義する通信シーケンス定義部と、に分離した第一のソースコードを生成する第一ソースコード生成工程と、
前記第一のソースコード内の前記識別子定義部で定義する前記パラメーターを、第二のサーバー機器と第二のクライアント機器との通信環境に適合させた適合ソースコードによる適合再現プログラムを、第二のクライアント機器において実行したときの前記第二のサーバー機器と前記第二のクライアント機器との間の第二の通信ログを取得する第二通信ログ取得工程と、
前記第二の通信ログに基づいて前記第二の通信ログに示される通信シーケンスを再現するための第二の再現プログラムのソースコードであって、前記第二の通信ログを取得した通信環境に依存するパラメーターと識別子との対応を定義する識別子定義部と、前記パラメーターに対応付けて定義された前記識別子を用いて前記通信シーケンスを定義する通信シーケンス定義部と、に分離した第二のソースコードを生成する第二ソースコード生成工程と、
を含む通信検証方法。
【請求項２】
相互に通信可能な第一のサーバー機器と第一のクライアント機器との間の第一の通信ログを取得する第一通信ログ取得機能と、
前記第一の通信ログに基づいて前記第一の通信ログに示される通信シーケンスを再現するための第一の再現プログラムのソースコードであって、前記第一の通信ログを取得した通信環境に依存するパラメーターと識別子との対応を定義する識別子定義部と、前記パラメーターに対応付けて定義された前記識別子を用いて前記通信シーケンスを定義する通信シーケンス定義部と、に分離した第一のソースコードを生成する第一ソースコード生成機能と、
前記第一のソースコード内の前記識別子定義部で定義する前記パラメーターを、第二のサーバー機器と第二のクライアント機器との通信環境に適合させた適合ソースコードによる適合再現プログラムを、第二のクライアント機器において実行したときの前記第二のサーバー機器と前記第二のクライアント機器との間の第二の通信ログを取得する第二通信ログ取得機能と、
前記第二の通信ログに基づいて前記第二の通信ログに示される通信シーケンスを再現するための第二の再現プログラムのソースコードであって、前記第二の通信ログを取得した通信環境に依存するパラメーターと識別子との対応を定義する識別子定義部と、前記パラメーターに対応付けて定義された前記識別子を用いて前記通信シーケンスを定義する通信シーケンス定義部と、に分離した第二のソースコードを生成する第二ソースコード生成機能と、
をコンピューターに実現させる通信検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信検証方法およびプログラムに関する。
【背景技術】
【０００２】
従来、ネットワーク上を行き来するパケットデータを取得し通信ログとして出力するパケットキャプチャー装置が知られている。通信ログは、例えば障害の原因を解析するために用いることができる。特許文献１には、推定されたネットワークパフォーマンスデータと、現実に取得したネットワークパフォーマンスデータとを比較して、障害の有無を検出することが記載されている。推定されたネットワークパフォーマンスデータとは、ネットワーク内のノードから得られたデータから冗長さを除去したデータやあるいは平均したデータに基づいて推定されたものであると記載されている。ネットワークパフォーマンスデータは、様々な異なる尺度を使用して定量化することができる機能値であり、例えばパケット損失率、遅延、スループット等であることが記述されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２４１５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットワークに接続された二つの機器の間でなされた通信シーケンスと、他の機器間でなされた通信シーケンスを比較検証する方法について考えるとき、例えば次のような方法が考えられる。それぞれ、パケットキャプチャー装置で通信ログを取得しておき、二つの通信ログを比較するという方法である。ここで、検証の対象としたいのは通信シーケンスであり、通信環境に応じて相違する情報は比較検証対象から除外したい。なぜなら通信環境に応じてそれらが相違するのは当然だからである。通信シーケンスとは例えば、あるリクエストを送信し、それに対するレスポンスを受信する、などのような通信の流れを意味する。通信環境に依存する相違点は、例えば、ＩＰアドレスやＭＡＣアドレス、ポート番号、パケット送受信に要した時間等である。通信ログのバイナリデータを単純に比較すると、上記の通信環境に依存する部分も相違点として挙げられるし、何よりバイナリデータは人間にとっては意味を理解しにくいので、通信シーケンスの相違とそれ以外の部分の相違とを分離するのが困難であり、通信シーケンスの相違の検証がしにくいという問題があった。また、バイナリデータである通信ログを人間にわかりやすいようにビジュアル化して表示する等の機能を持つ既存のツールを用いても、通信シーケンスの相違とそれ以外の部分の相違とを分離して検証する作業が手間であった。
【０００５】
本発明は、上記問題に鑑みてなされたもので、２つの通信ログを比較検証しやすくする技術を提供することを目的の一つとする。
【課題を解決するための手段】
【０００６】
（１）上記目的を達成するための通信検証方法は、相互に通信可能な第一のサーバー機器と第一のクライアント機器との間の第一の通信ログを取得し、前記第一の通信ログに基づいて前記第一の通信ログに示される通信シーケンスを再現するための第一の再現プログラムのソースコードであって、前記第一の通信ログを取得した通信環境に依存するパラメーターと識別子との対応を定義する識別子定義部と、前記パラメーターに対応付けて定義された前記識別子を用いて前記通信シーケンスを定義する通信シーケンス定義部と、に分離した第一のソースコードを生成し、前記第一のソースコード内の前記識別子定義部で定義する前記パラメーターを、第二のサーバー機器と第二のクライアント機器との通信環境に適合させた適合ソースコードによる適合再現プログラムを、第二のクライアント機器において実行したときの前記第二のサーバー機器と前記第二のクライアント機器との間の第二の通信ログを取得し、前記第二の通信ログに基づいて前記第二の通信ログに示される通信シーケンスを再現するための第二の再現プログラムのソースコードであって、前記第二の通信ログを取得した通信環境に依存するパラメーターと識別子との対応を定義する識別子定義部と、前記パラメーターに対応付けて定義された前記識別子を用いて前記通信シーケンスを定義する通信シーケンス定義部と、に分離した第二のソースコードを生成する、ことを含む。
【０００７】
本発明によると、ソースコード内の通信シーケンス定義部では、通信ログを取得する通信環境に応じて変動する可能性があるパラメーターを直接記述せず、ソースコード内の通信シーケンス定義部とは分離された識別子定義部にて定義された識別子を用いて記述する。なお、第一ソースコード生成工程と第二ソースコード生成工程において、識別子の命名規則は共通であり、同じ属性のパラメーターに対応付けて定義する識別子にはそれぞれの工程において同じ名前が用いられる。そして、第一のソースコードと第二のソースコードの２つのソースコード内の通信シーケンス定義部同士を比較する。そうすることによって、ネットワーク環境の相違によって変動する可能性のあるパラメーターを比較検証の対象から除外し、通信シーケンスを比較検証の対象とすることができる。その結果、通信シーケンス同士を比較検証しやすくすることができる。また、パラメーターを識別子定義部においてのみ定義するため、通信シーケンス定義部にパラメーターが直接記述してある場合と比較すると、通信環境に適合するパラメーターの設定作業の負担を軽減できる。
【０００８】
なお、以上のような通信検証方法は、この方法をコンピューターに実現させるプログラムの発明や、この方法を実施する装置の発明としても適用可能である。また、以上のような方法を実施する装置は、単独の装置によって実現される場合もあれば、複数の装置を組み合わせることによって実現される場合もあり、各種の態様を含むものである。一部がソフトウェアであり一部がハードウェアであったりするなど、適宜、変更可能である。さらに、前述のプログラムを記録する記録媒体としても発明は成立する。むろん、その記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態の構成を示すブロック図。
【図２】通信ログに含まれるパケット群の一例を示すシーケンス図。
【図３】通信検証処理を示すフローチャート。
【図４】（４Ａ）はパケット情報抽出ファイルを説明するための図、（４Ｂ）は通信シーケンス情報ファイルを説明するための図、（４Ｃ）は送受信データ情報ファイルを説明するための図。
【図５】通信検証処理によって生成されるソースコードを説明するための図。
【発明を実施するための形態】
【００１０】
ここでは、下記の順序に従って本発明の実施の形態について説明する。
（１）概要と構成：
（２）通信検証処理：
（３）他の実施形態：
【００１１】
（１）概要と構成：
図１は、本発明にかかる通信検証方法を実施する構成を説明するためのブロック図である。コンピューター５０（第一のクライアント機器），コンピューター５３（第二のクライアント機器）、プリンター５２（第一のサーバー機器および第二のサーバー機器）、パケットキャプチャー装置５１は、ＬＡＮ（Local Area Network）に接続されている。パケットキャプチャー装置５１は、コンピューター５０とプリンター５２との間で交わされるパケットデータを時系列順に取得し、パケットデータ群を示すバイナリデータを含む通信ログファイル（第一の通信ログ）を出力することができる。また、パケットキャプチャー装置５１は、コンピューター５３とプリンター５２との間で交わされるパケットデータを時系列順に取得し、当該パケットデータ群を示すバイナリデータを含む通信ログファイル（第二の通信ログ）を出力することができる。
【００１２】
コンピューター１０は、ＲＡＭ，ＲＯＭ，ＣＰＵ等を備える制御部２０とＨＤＤ（Hard Disk Device）３０とを備えており、ＲＯＭまたはＨＤＤ３０に記録された様々なプログラムを制御部２０で実行することができる。本実施形態においては、通信検証プログラム２１と編集プログラム２２と比較プログラム２３を実行することができる。
【００１３】
通信検証プログラム２１は、通信ログ取得部２１ａとソースコード生成部２１ｂとを備え、パケットキャプチャー装置５１から取得した通信ログに基づいて、当該通信ログファイルに示される通信シーケンスを再現するための再現プログラムを生成する機能を有している。通信ログ取得部２１ａは、第一の通信ログ３０ａを取得する第一通信ログ取得機能と第二の通信ログ３０ｂを取得する第二通信ログ取得機能を制御部２０に実現させるモジュールである。ソースコード生成部２１ｂは、第一の再現プログラムのソースコード３０ｃを生成する第一ソースコード生成機能と、第二の再現プログラムのソースコード３０ｅを生成する第二ソースコード生成機能を制御部２０に実現させるモジュールである。
【００１４】
編集プログラム２２は、テキストファイルを編集する機能をユーザーに提供するプログラムであり、本実施形態では、マウス５４やキーボード５５、ディスプレイ５６を用いてユーザーが第一のソースコード３０ｃを編集して適合ソースコード３０ｄを生成するために利用される。比較プログラム２３は、二つのファイルに含まれるデータを比較して、相違箇所を識別可能に表示する機能を提供するプログラムであり、本実施形態では、第一のソースコード３０ｃと第二のソースコード３０ｅを比較検証するために利用される。
【００１５】
本実施形態による通信検証方法の概要は次の通りである。まずコンピューター５０とプリンター５２との間でなされた通信をパケットキャプチャー装置５１がキャプチャーし、コンピューター１０の制御部２０は第一の通信ログ３０ａとして取得する（Ｓ１、Ｓ２）。例えばＵＳＢメモリーなどを介して取得する。コンピューター１０がＬＡＮに接続されていればＬＡＮを介して取得できてもよい。
【００１６】
通信検証プログラム２１によって生成された第一のソースコード３０ｃ（Ｓ３）は、コンピューター５０とプリンター５２との間でなされた通信シーケンスを再現するための第一の再現プログラムのソースコードである。本明細書においてプログラムとは、それに対応するソースコードが実行形式のオブジェクトコードに変換された状態を指している。第一のソースコード３０ｃに示される通信シーケンスを、コンピューター５３とプリンター５２との間で再現するために、ユーザーが編集プログラム２２を用いて、第一のソースコード３０ｃから通信環境に依存するパラメーターなどを適合させた適合ソースコード３０ｄを作成する（Ｓ４）。作成された適合ソースコード３０ｄはコンピューター５３に受け渡され適合ソースコード３０ｄによる適合再現プログラム２１０がコンピューター５３で（Ｓ５）実行される。
【００１７】
適合ソースコード３０ｄによる適合再現プログラム２１０を実行するコンピューター５３は、ＲＯＭ，ＲＡＭ，ＣＰＵ等を含む制御部２００を備えている。コンピューター５３の制御部２００は、適合再現プログラム２１０の他に、ＴＣＰ／ＩＰプログラム２２０やＬＡＮアダプタードライバープログラム２３０を実行可能である。ＴＣＰ／ＩＰプログラム２２０は、ＴＣＰやＵＤＰやＩＰなどのプロトコルスタックを含んでおり、各プロトコルに準拠した通信の実行を担当する。ＬＡＮアダプタードライバープログラム２３０は、コンピューター５３に備えられているＬＡＮアダプター４００を制御するためのドライバープログラムである。なお、もちろんコンピューター５０にも、ＬＡＮアダプターは備えられており、ＴＣＰ／ＩＰプログラム２２０やＬＡＮアダプタードライバープログラム２３０と同等のプログラムが実行可能である。
【００１８】
適合再現プログラム２１０は、ＴＣＰ／ＩＰプログラム２２０を使用して、コンピューター５３とプリンター５２との間で通信を実行するための処理命令を含んでいる。すなわち、適合ソースコード３０ｄにはコンピューター５３とプリンター５２との間で実行する通信シーケンスに対応する処理が記述されている。なお、第一のソースコード３０ｃと適合ソースコード３０ｄと第二のソースコード３０ｅは後述する共通のフォーマットに則って記述されている。コンピューター５３で適合再現プログラム２１０を実行している間、プリンター５２とコンピューター５３の間で、適合再現プログラム２１０の処理命令に対応する通信が行われる。その通信をパケットキャプチャー装置５１がキャプチャーし、コンピューター１０の制御部２０が第二の通信ログ３０ｂとして取得する（Ｓ６、Ｓ７）。
【００１９】
次に、通信検証プログラム２１によって、第二の通信ログ３０ｂに基づいて第二のソースコード３０ｅを生成する（Ｓ８）。ユーザーは比較プログラム２３によって第一のソースコード３０ｃと第二のソースコード３０ｅとを比較させ（Ｓ９）、ディスプレイ５６に識別可能に表示された相違点を検証する（Ｓ１０）。
【００２０】
（２）通信検証処理：
次に、通信検証プログラム２１の処理について説明する。まず図２は、コンピューター５３とプリンター５２との間で交わされた通信の一例を説明するためのシーケンス図である。シーケンス図の上から下に向かう方向は、過去からの時間経過を表している。一つの矢印が一つのパケットを表しており、矢印の根本側がそのパケットの送信元で矢印の先側がそのパケットの宛先を意味している。図２はＴＣＰ／ＩＰ通信を表している。パケットＰ１〜Ｐ３はコネクション確立シーケンスを示しており、パケットＰ４・Ｐ５はプリンター５２へのリクエストデータの送信シーケンスを示しており、パケットＰ６〜Ｐ９はそのリクエストに対するレスポンスデータの受信シーケンスを示している。パケットＰ９にはレスポンスデータがこのパケットで終了であることを示す情報が含まれており、パケットＰ１０〜Ｐ１２はそれを受けてコネクションの解消シーケンスを示している。シーケンス図として概略的に可視化すると図２のように表されるバイナリデータとしての通信ログを、コンピューター１０は、パケットキャプチャー装置５１から取得することができる。通信ログには、各パケットの出現タイミング（時系列順や出現時間間隔）、各パケットの内容を示す情報が詳細に含まれている。
【００２１】
図３は通信検証プログラム２１の通信検証処理を示すフローチャートである。本実施形態の通信検証方法の工程においては、通信検証処理は、図１に示したＳ２・Ｓ３とＳ７・Ｓ８のタイミングで二回実施される。
まず、制御部２０は、通信ログファイルを取得し（ステップＳ１００）、当該通信ログファイルに含まれるパケットデータを解析し（ステップＳ１０５）、パケット情報抽出ファイルを生成する（ステップＳ１１０）。具体的には制御部２０は、時系列順に１パケットずつ当該パケットに相当するデータに注目して当該パケットがどのような意味を持つパケットであるかを解析し、図４Ａに示すようなパケット情報抽出ファイルを生成する。
【００２２】
図４Ａに示すパケット情報抽出ファイルには、パケットの時系列順を識別するためのフレーム番号、パケットの再現タイミングを示すタイムスタンプ（基準とするパケットの出現タイミングからの経過時間）、当該パケットの通信に使用するプロトコルの種類（例えばＨＴＴＰ／ＴＣＰ／ＩＰ等）、ＩＰアドレス（送信元と宛先）、ＴＴＬ（Time To Live）情報、ＴＣＰの場合は、シーケンスにおける当該パケットの意味を表すＴＣＰフラグ（ＳＹＮ、ＦＩＮ、ＡＣＫ等）とシーケンス番号とＡＣＫ番号とポート番号（送信元と宛先）、ＵＤＰの場合はポート番号（送信元と宛先）、当該パケットに含まれるデータの実体と、当該データのサイズであるデータサイズが含まれている。制御部２０は、パケットデータに含まれるＩＰヘッダーやＴＣＰヘッダー等の該当するフィールドを参照してこれらの情報を得ることができる。
【００２３】
通信ログに含まれる全てのパケットについて上記の情報を抽出したパケット情報抽出ファイルを生成した後（なおＴＣＰ／ＩＰプログラム２２０で制御されるパケットについてはパケット情報抽出ファイル生成の対象外としてもよい）、制御部２０は、このパケット情報抽出ファイルに基づいて通信シーケンスと送受信データを分離し（ステップＳ１１５）、通信シーケンス情報ファイルと送受信データ情報ファイルを出力する（ステップＳ１２０、Ｓ１２５）。通信シーケンス情報ファイルは、図４Ｂに示すように、シーケンス時系列順、送受信データを管理するためのセッション番号、シーケンス種類（シーケンスの種類を示す情報）、データサイズ（送受信の中身のデータのサイズ）、タイムスタンプ（パケットの送受信タイミング（＝パケットの出現タイミング））等を含んでいる。セッション番号は、ＴＣＰの場合はコネクションに対応し、ＵＤＰの場合は例えば送受信双方のポート番号の組み合わせが同一である対に対応する。シーケンス種類は、ＴＣＰの場合はＴＣＰ＿ＣＯＮＮＥＣＴ（コネクションの確立）、ＴＣＰ＿ＳＥＮＤ（データ送信）、ＴＣＰ＿ＲＥＣＶ（データ受信）、ＴＣＰ＿ＣＬＯＳＥ（コネクションの解消）等を含んでおり、ＵＤＰの場合は、データ送信とデータ送信などを含んでいる。
【００２４】
送受信データ情報ファイルは、図４Ｃに示すように、送受信を管理するためのセッション番号、宛先ポート、送信データあるいは受信データの中身の実体を記述したファイルである。次に制御部２０は、通信シーケンス情報ファイルと送受信データ情報ファイルに基づいて、通信シーケンス定義部と識別子定義部とを分離してソースコード内に記述するフォーマットに従ってソースコードを構成するデータを整形し（ステップＳ１３０）、図５に示すようなソースコードのファイルを出力する（ステップＳ１３５）。ステップＳ１３５で生成されるソースコードは、通信ログに示される通信シーケンスを再現するための再現プログラムのソースコードである。
【００２５】
図５に示すように、ソースコード内では、識別子定義部と通信シーケンス定義部とが分離されている。通信シーケンス定義部は、例えば予め定めておいた名前で定義されるメンバー関数内の処理としてソースコード内の他の部分と分離されていてもよいし、また例えば図５に示すように、特定の文字列（#DIFF_AREA_START）で囲まれた部分として他の部分と分離されていてもよい。また識別子定義部は、ソースコードのクラス定義においてメンバー関数の定義の前に定義されている部分として区別されていてもよいし、または予め決められた特定の文字列で囲まれた部分として区別されていてもよい。通信シーケンス定義部には、図４Ｂの通信シーケンス情報ファイルに記載されている通信シーケンスを実行するための処理が順に記載されている。具体的には例えば図５に示すように、ＴＣＰのコネクション確立シーケンス、ＴＣＰのデータ送信シーケンス、ＴＣＰのデータ受信シーケンス、ＴＣＰのコネクション解消シーケンスを実行するための処理が記述されている。それぞれの処理名は予め決められた命名規則に則って決められている。例えば、ＴＣＰコネクション確立処理は「CSocketTcpClient.new」という名前を用いることが決められている。また、ＴＣＰコネクション確立処理の戻り値であるディスクリプターを代入する変数も、例えば「tcp_s*」と命名することが決められている（「*」には図４Ｂで説明したセッション番号を示す数字が入る）。データ送信処理、データ受信処理、コネクション解消処理もそれぞれ「write」「read」「close」と名前が決められており、同一コネクションに属するデータ送信処理、データ受信処理、コネクション解消処理は、当該コネクション確立処理の戻り値であるディスクリプターを用いて定義される。
【００２６】
識別子定義部には、通信環境等に依存して変動するパラメーターと識別子との対応が定義されている。例えば、宛先ＩＰアドレスや宛先ポート番号、送信データ等が、識別子としての変数に代入されている。なお、マクロ定義という形式であってもよい（識別子＝マクロ定義名）。通信シーケンス定義部では、通信シーケンス情報ファイルに示されるシーケンス時系列順に通信シーケンスを実現するための処理が記述されている。通信シーケンス定義部では、パラメーターを直接記述せず、識別子定義部にて定義された識別子を記述している。このようにパラメーターが代入された変数名（識別子）を用いて通信シーケンスの処理を記述すると、再現プログラム実行時に変数に対応するメモリ上のアドレスに格納されているパラメーターが参照される。また、マクロ定義という形式の場合は、例えばソースコードが実行形式のオブジェクトコードに変換される時に識別子文字列がパラメーター文字列に置換される。なお、識別子の命名規則はソースコード生成部２１ｂにおいて定められており、同じ属性のパラメーターに対応付けて定義する識別子には同じ名前が用いられる。例えば、宛先ポート番号という属性のパラメーターを代入する変数名は、「S*_PORT_NUMBER」を用い「*」の部分には異なるポート番号を区別するための数字を記述する等のような命名規則が用いられる。
【００２７】
図１に示すＳ２・Ｓ３の工程において上記の通信検証処理が実行された後、ユーザーは、生成されたこのソースコードのファイルを編集プログラム２２で編集する。具体的には、識別子定義部で定義されているパラメーターを、コンピューター５０とプリンター５２間の通信環境に依存する値から、コンピューター５３とプリンター５２間の通信環境に応じたものに適合させ、適合ソースコード３０ｄとしてＨＤＤ３０に保存する。このとき、各パラメーターは通信シーケンス定義部には直接記述されておらず識別子定義部にてまとめて定義されているため、ユーザーの作業負担を軽減することに貢献できる。
【００２８】
そして適合ソースコード３０ｄによる適合再現プログラム２１０をコンピューター５３において実行させる。そうすると、適合ソースコードに記述された通信シーケンスが、コンピューター５３とプリンター５２間で再現されるはずであるので、パケットキャプチャー装置５１にそのときの通信ログを取得させる。図１に示すＳ６〜Ｓ８に対応する工程では、上述したのと同様に通信検証処理が実行され、図５を用いて説明したようなフォーマットおよび識別子の命名規則に則った第二のソースコード３０ｅが生成される。
【００２９】
そして、第一のソースコード３０ｃと第二のソースコード３０ｅが生成された後、ユーザーは比較プログラム２３を用いて第一のソースコード３０ｃと第二のソースコード３０ｅを比較することができる。具体的には、識別子定義部と通信シーケンス定義部とはソースコード内で分離されて記述されているので、２つのソースコード内の通信シーケンス定義部同士を比較検証の対象とし、通信シーケンスに不一致点はないかどうかを検証する。同一の属性を持つパラメーターに対応する識別子は同一の名前で定義されているため、パラメーターの値が異なっても識別子名は同一であるので、通信環境に依存する相違は通信シーケンス定義部には影響しない。したがって、比較プログラム２３にて通信シーケンス定義部の文字列比較がなされたときパラメーターの相違は相違点としてユーザーに案内されない。
通信ログのバイナリデータ同士を、比較プログラム２３を用いて比較する構成と比べると、本実施形態のように通信ログのバイナリデータからソースコードの形に加工した状態で比較する構成では、ユーザーにとって理解しやすい形であるので比較検証がしやすい。さらに上述したように、通信環境に依存するパラメーターを容易に比較対象から除外することができるので、ユーザーは通信シーケンスの相違点をより検証しやすい。
【００３０】
（３）他の実施形態：
尚、本発明の技術的範囲は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加え得ることは勿論である。例えば、上記実施形態では、第一のサーバー機器と第二のサーバー機器とが同一である形態を説明したが、別々の機器であってもよい。また、上記実施形態では第一のクライアント機器と第二のクライアント機器とが別々の機器である形態を説明したが、これらは同一の機器であってもよい。また、上記実施形態では、コンピューター５０とコンピューター５３とコンピューター１０がそれぞれ別々の装置である形態を説明したが、コンピューター１０で実施された通信検証処理は例えばコンピューター５３で実施することができてもよいし、コンピューター５０で実施することができてもよい。また、上記実施形態では、比較プログラム２３を用いる形態を説明したが、必ずしも比較プログラム２３が利用される必要はなく、ユーザー自身が比較してももちろんよい。また、第一のサーバー機器あるいは第二のサーバー機器は、プリンターであることに限定されない。スキャナーやファクシミリを備えた複合機であってもよい。
【符号の説明】
【００３１】
１０：コンピューター、２０：制御部、２１：通信検証プログラム、２１ａ：通信ログ取得部、２１ｂ：ソースコード生成部、２２：編集プログラム、２３：比較プログラム、３０：ＨＤＤ、３０ａ：第一の通信ログ、３０ｂ：第二の通信ログ、３０ｃ：第一のソースコード、３０ｄ：適合ソースコード、３０ｅ：第二のソースコード、５０：コンピューター、５１：パケットキャプチャー装置、５２：プリンター、５３：コンピューター、５４：マウス、５５：キーボード、５６：ディスプレイ、２００：制御部、２１０：適合再現プログラム、２２０：ＴＣＰ／ＩＰプログラム、２３０：ＬＡＮアダプタードライバープログラム、４００：ＬＡＮアダプター。
【図１】
2010258499.tif 000003
【図２】
2010258499.tif 000004
【図３】
2010258499.tif 000005
【図４】
2010258499.tif 000006
【図５】
2010258499.tif 000007