(57)【要約】【課題】テスト後のシステムを本番システムとして速やかに稼動させる。【解決手段】支援システムは、端末から第１のシステムへ送信される第１のデータと、第１のシステムから端末へ送信される第２のデータとを受信し、第１のデータと第２のデータとを含む第１のシステムログを保持し、第１のデータと同じ内容を含む第３のデータを第２のシステムへ送信し、第３のデータと第２のシステムから送信される第４のデータとを含む第２のシステムログを保持し、第１のデータ及び第２のデータが示す端末及び第１のシステム間のセッションに関する情報と第３のデータ及び第４のデータが示す支援システム及び第２のシステム間のセッションに関する情報とを含むセッション情報を保持し、第１のシステムログと第２のシステムログとの差を抽出し、セッション情報に基づいて、第１のシステムを端末から切断させ、第２のシステムと端末とを接続させる。【選択図】図７
2013093727.tif 000002
【特許請求の範囲】
【請求項１】
一以上の端末、第１のシステム、及び、第２のシステムと接続される支援システムであって、
前記支援システムは、
プロセッサとメモリとインタフェースとを備え、
前記端末から前記第１のシステムへ送信される第１のデータと、前記第１のシステムから前記端末へ送信される第２のデータとを、前記インタフェースを介して受信する第１のシステム受信部と、
前記第１のデータと前記第２のデータとを含む第１のシステムログを、前記メモリに保持する第１のシステムログ取得部と、
前記第１のシステムログに基づいて、前記第１のデータと同じ内容を含む第３のデータを、前記第２のシステムへ送信する第２のシステム送信部と、
前記第３のデータと、前記第２のシステムから前記支援システムへ送信される第４のデータとを含む第２のシステムログを、前記メモリに保持する第２のシステムログ取得部と、
前記第１のデータ及び前記第２のデータが示す前記端末及び第１のシステム間のセッションに関する情報と、前記第３のデータ及び前記第４のデータが示す前記支援システム及び前記第２のシステム間のセッションに関する情報と、を含むセッション情報を前記メモリに保持するセッション管理部と、
前記第１のシステムログと、前記第２のシステムログとの差分を抽出する差分抽出部と、
前記セッション情報に含まれる前記端末及び第１のシステム間のセッションに関する情報に基づいて、前記第１のシステムを前記端末から切断させ、前記第２のシステムと前記端末とを接続させる系切替部と、を有することを特徴とする支援システム。
【請求項２】
前記第１のシステム受信部は、前記受信した第１のデータ又は第２のデータが、前記端末及び第１のシステム間のコネクションを切断するためのデータであるか否かを判定し、
前記判定の結果、前記受信した第１のデータ又は第２のデータが、前記端末及び第１のシステム間のコネクションを切断するためのデータである場合、前記セッション管理部は、前記端末及び第１のシステム間のセッションが切断されたことを示す値を前記セッション情報に格納し、
前記セッション管理部は、すべての前記端末及び前記第１のシステム間のセッションが切断されたことを示すか否かを判定し、
前記判定の結果、前記すべての端末及び第１のシステム間のセッションが切断された場合、前記系切替部は、前記第１のシステムを前記端末から切断させることを特徴とする請求項１に記載の支援システム。
【請求項３】
前記支援システムは、前記第１のシステム及び前記第２のシステムが提供するサービスに関するサービス情報を取得するサービス管理部を、更に有し、
前記サービス情報は、前記サービスによって送信されるデータから、前記セッションを識別するための情報を取得する方法を示し、
前記セッション管理部は、前記サービス情報を用いて識別された、前記第１のデータ、前記第２のデータ、前記第３のデータ及び前記第４のデータが示す前記セッションに関する情報を、前記セッション情報に格納することを特徴する請求項２に記載の支援システム。
【請求項４】
前記サービス情報が、前記データから前記セッション識別子を取得することによって前記セッションを識別する方法を示す場合、前記セッション管理部は、前記サービス情報が示す方法を用いて、前記第２のデータ又は前記第４のデータから前記セッション識別子を抽出し、
前記抽出された前記第２のデータ又は前記第４のデータのセッション識別子を、前記セッション情報に格納することを特徴とする請求項３に記載の支援システム。
【請求項５】
前記セッション管理部は、前記第２のデータから、第１のセッション識別子を抽出し、
前記セッション管理部は、前記第２のシステムから前記端末に対応するアドレスへ送信される前記第４のデータから、第２のセッション識別子を抽出し、
前記セッション管理部は、前記第１のセッション識別子と、前記第２のセッション識別子とを対応付けて、前記セッション情報に格納し、
前記第１のシステム受信部が、前記第１のセッション識別子を含む前記第１のデータを受信した場合、前記第２のシステム送信部は、前記セッション情報に基づいて前記第１のセッション識別子を前記第２のセッション識別子に置き換えられた、前記第１のデータの内容を含む前記第３のデータを、前記第２のシステムへ送信することを特徴とする請求項４に記載の支援システム。
【請求項６】
前記支援システムは、前記端末及び前記第１のシステムと接続される負荷分散装置と、更に、接続され、
前記系切替部は、
前記第１のシステムを前記端末から切断させる前に、前記負荷分散装置に系切替通知を送信し、
前記第２のシステムと前記端末とを接続させた後に、前記負荷分散装置に系切替終了通知を送信することを特徴とする請求項１に記載の支援システム。
【請求項７】
一以上の端末、第１のシステム、及び、第２のシステムと接続される支援システムによる支援方法であって、
前記支援システムは、プロセッサとメモリとインタフェースとを備え、
前記方法は、
前記支援システムが、前記端末から前記第１のシステムへ送信される第１のデータと、前記第１のシステムから前記端末へ送信される第２のデータとを、前記インタフェースを介して受信する第１のシステム受信手順と、
前記支援システムが、前記第１のデータと前記第２のデータとを含む第１のシステムログを、前記メモリに保持する第１のシステムログ取得手順と、
前記支援システムが、前記第１のシステムログに基づいて、前記第１のデータと同じ内容を含む第３のデータを、前記第２のシステムへ送信する第２のシステム送信手順と、
前記支援システムが、前記第３のデータと、前記第２のシステムから前記支援システムへ送信される第４のデータとを含む第２のシステムログを、前記メモリに保持する第２のシステムログ取得手順と、
前記支援システムが、前記第１のデータ及び前記第２のデータが示す前記端末及び第１のシステム間のセッションに関する情報と、前記第３のデータ及び前記第４のデータが示す前記支援システム及び前記第２のシステム間のセッションに関する情報と、を含むセッション情報を前記メモリに保持するセッション管理手順と、
前記支援システムが、前記第１のシステムログと、前記第２のシステムログとの差を抽出する差分抽出手順と、
前記支援システムが、前記セッション情報に含まれる前記端末及び第１のシステム間のセッションに関する情報に基づいて、前記第１のシステムを前記端末から切断させ、前記第２のシステムと前記端末とを接続させる系切替手順と、を含むことを特徴とする支援方法。
【請求項８】
前記第１のシステム受信手順は、前記受信した第１のデータ又は第２のデータが、前記端末及び第１のシステム間のコネクションを切断するためのデータであるか否かを判定する手順を含み、
前記判定の結果、前記受信した第１のデータ又は第２のデータが、前記端末及び第１のシステム間のコネクションを切断するためのデータである場合、前記セッション管理手順は、前記端末及び第１のシステム間のセッションが切断されたことを示す値を前記セッション情報に格納する手順を含み、
前記セッション管理手順は、すべての前記端末及び前記第１のシステム間のセッションが切断されたことを示すか否かを判定する手順を含み、
前記判定の結果、前記すべての端末及び第１のシステム間のセッションが切断された場合、前記系切替手順は、前記第１のシステムを前記端末から切断させる手順を含むことを特徴とする請求項７に記載の支援方法。
【請求項９】
前記方法は、前記支援システムが、前記第１のシステム及び前記第２のシステムが提供するサービスに関するサービス情報を取得するサービス管理手順を、更に含み、
前記サービス情報は、前記サービスによって送信されるデータから、前記セッションを識別するための情報を取得する方法を示し、
前記セッション管理手順は、前記サービス情報を用いて識別された、前記第１のデータ、前記第２のデータ、前記第３のデータ及び前記第４のデータが示す前記セッションに関する情報を、前記セッション情報に格納する手順を含むことを特徴する請求項８に記載の支援方法。
【請求項１０】
前記サービス情報が、前記データから前記セッション識別子を取得することによって前記セッションを識別する方法を示す場合、前記セッション管理手順は、前記サービス情報が示す方法を用いて、前記第２のデータ又は前記第４のデータから前記セッション識別子を抽出する手順と、
前記抽出された前記第２のデータ又は前記第４のデータのセッション識別子を、前記セッション情報に格納する手順と、を含むことを特徴とする請求項９に記載の支援方法。
【請求項１１】
前記セッション管理手順は、前記第２のデータから、第１のセッション識別子を抽出する手順を含み、
前記セッション管理手順は、前記第２のシステムから前記端末に対応するアドレスへ送信される前記第４のデータから、第２のセッション識別子を抽出する手順を含み、
前記セッション管理手順は、前記第１のセッション識別子と、前記第２のセッション識別子とを対応付けて、前記セッション情報に格納する手順を含み、
前記第１のシステム受信手順によって、前記第１のセッション識別子を含む前記第１のデータが受信された場合、前記第２のシステム送信手順は、前記セッション情報に基づいて前記第１のセッション識別子を前記第２のセッション識別子に置き換えられた、前記第１のデータの内容を含む前記第３のデータを、前記第２のシステムへ送信する手順を含むことを特徴とする請求項１０に記載の支援方法。
【請求項１２】
前記支援システムは、前記端末及び前記第１のシステムと接続される負荷分散装置と、更に、接続され、
前記系切替手順は、
前記第１のシステムを前記端末から切断させる前に、前記負荷分散装置に系切替通知を送信する手順と、
前記第２のシステムと端末とを接続させた後に、前記負荷分散装置に系切替終了通知を送信する手順とを含むことを特徴とする請求項７に記載の支援方法。
【請求項１３】
一以上の端末、第１のシステム、及び、第２のシステムと接続されるコンピュータに支援方法を実行させるための支援プログラムであって、
前記コンピュータは、プロセッサとメモリとインタフェースとを備え、
前記支援プログラムは、前記コンピュータに、
前記端末から前記第１のシステムへ送信される第１のデータと、前記第１のシステムから前記端末へ送信される第２のデータとを、前記インタフェースを介して受信する第１のシステム受信手順と、
前記第１のデータと前記第２のデータとを含む第１のシステムログを、前記メモリに保持する第１のシステムログ取得手順と、
前記第１のシステムログに基づいて、前記第１のデータと同じ内容を含む第３のデータを、前記第２のシステムへ送信する第２のシステム送信手順と、
前記第３のデータと、前記第２のシステムから前記支援システムへ送信される第４のデータとを含む第２のシステムログを、前記メモリに保持する第２のシステムログ取得手順と、
前記第１のデータ及び前記第２のデータが示す前記端末及び第１のシステム間のセッションに関する情報と、前記第３のデータ及び前記第４のデータが示す前記支援システム及び前記第２のシステム間のセッションに関する情報と、を含むセッション情報を前記メモリに保持するセッション管理手順と、
前記第１のシステムログと、前記第２のシステムログとの差を抽出する差分抽出手順と、
前記セッション情報に含まれる前記端末及び第１のシステム間のセッションに関する情報に基づいて、前記第１のシステムを前記端末から切断させ、前記第２のシステムと前記端末とを接続させる系切替手順と、を実行させることを特徴とする支援プログラム。
【請求項１４】
前記第１のシステム受信手順で、前記受信した第１のデータ又は第２のデータが、前記端末及び第１のシステム間のコネクションを切断するためのデータであるか否かを判定する手順を更に実行させ、
前記判定の結果、前記受信した第１のデータ又は第２のデータが、前記端末及び第１のシステム間のコネクションを切断するためのデータである場合、前記セッション管理手順で、前記端末及び第１のシステム間のセッションが切断されたことを示す値を前記セッション情報に格納する手順を更に実行させ、
前記セッション管理手順で、すべての前記端末及び前記第１のシステム間のセッションが切断されたことを示すか否かを判定する手順を更に実行させ、
前記判定の結果、前記すべての端末及び第１のシステム間のセッションが切断された場合、前記系切替手順で、前記第１のシステムを前記端末から切断させる手順を更に実行させることを特徴とする請求項１３に記載の支援プログラム。
【請求項１５】
前記支援プログラムは、前記コンピュータに、前記第１のシステム及び前記第２のシステムが提供するサービスに関するサービス情報を取得するサービス管理手順を、更に実行させ、
前記サービス情報は、前記サービスによって送信されるデータから、前記セッションを識別するための情報を取得する方法を示し、
前記セッション管理手順で、前記サービス情報を用いて識別された、前記第１のデータ、前記第２のデータ、前記第３のデータ及び前記第４のデータが示す前記セッションに関する情報を、前記セッション情報に格納する手順を更に実行させることを特徴する請求項１４に記載の支援プログラム。
【請求項１６】
前記サービス情報が、前記データから前記セッション識別子を取得することによって前記セッションを識別する方法を示す場合、前記セッション管理手順で、前記サービス情報が示す方法を用いて、前記第２のデータ又は前記第４のデータから前記セッション識別子を抽出する手順と、
前記抽出された前記第２のデータ又は前記第４のデータのセッション識別子を、前記セッション情報に格納する手順と、を更に実行させることを特徴とする請求項１５に記載の支援プログラム。
【請求項１７】
前記セッション管理手順で、前記端末へ送信される前記第２のデータから、第１のセッション識別子を抽出する手順を更に含み、
前記セッション管理手順で、前記第２のシステムから前記端末に対応するアドレスへ送信される前記第４のデータから、第２のセッション識別子を抽出する手順を更に実行させ、
前記セッション管理手順で、前記第１のセッション識別子と、前記第２のセッション識別子とを対応付けて、前記セッション情報に格納する手順を更に実行させ、
前記第１のシステム受信手順によって、前記第１のセッション識別子を含む前記第１のデータが受信された場合、前記第２のシステム送信手順で、前記セッション情報に基づいて前記第１のセッション識別子を前記第２のセッション識別子に置き換えられた、前記第１のデータの内容を含む前記第３のデータを、前記第２のシステムへ送信する手順を更に実行させることを特徴とする請求項１６に記載の支援プログラム。
【請求項１８】
前記コンピュータは、前記端末及び前記第１のシステムと接続される負荷分散装置と、更に接続され、
前記系切替手順で、
前記第１のシステムを前記端末から切断させる前に、前記負荷分散装置に系切替通知を送信する手順と、
前記第２のシステムと端末とを接続させた後に、前記負荷分散装置に系切替終了通知を送信する手順とを更に実行させることを特徴とする請求項１３に記載の支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、支援システムに関し、特に、計算機システムの移行を支援する支援システムに関する。
【背景技術】
【０００２】
近年、ＰＣサーバの性能向上に伴い、従来メインフレームが担ってきた基幹系システムに、ＰＣサーバを用いるオープン化が始まっている。ＰＣサーバのようなオープン系システムは、性能向上の進度が速く、次々と後継機種が提供されている。そして、一般的に、ＰＣサーバの保証期間は５年程度と短い。
【０００３】
これに対し、基幹系システムにおいて用いられるサービスは、基本的なサービスであるため、多くの場合内容が変わらない。また、基幹系システムにおいて用いられるサービスは、長期間、安定的に提供されることが求められる。この結果、基幹系システムの管理者は、基幹系システムにおいて稼動実績のあるサービスを更改した場合、更改に伴う障害を起こすことを許されない。
【０００４】
このため、例えば、基幹系システムのようなシステムを別のシステムに移行する場合、例えば、システムに用いられるハードウェアを後継機種に交換した場合、開発者は、システムの移行前に、新しいシステムを必ずテストする。
【０００５】
基幹系システムのテストには、本番系システムにおいて送受信されるデータをキャプチャし、キャプチャされたデータをテスト系システムへ転送することによって、キャプチャされたデータをテスト系システムが実行するテストがある。このテストは、本番系システムの出力結果とテスト系システムの出力結果との差を検出することによって、本番系システムとテスト系システムとの相違点を検出する方法である（例えば、特許文献１参照）。
【０００６】
また、ネットワークスイッチが、本番系システムへ入力されるパケットの宛先情報を変換し、ミラーポートから転送先システムへパケットを転送する方法が提案されている（例えば、特許文献２参照）。特許文献２は、ミラーポートから転送されたパケットを転送先システムに入力し、転送先システムにおいて実際の運用データと業務アプリケーションとを用いたテストを行う方法、及び、転送先システムに実際のトランザクションの負荷をかけることよってテストを行う方法が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−０７３０４３号公報
【特許文献２】特開２００９−０１０４５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
オープン系システムは、ハードウェア及びソフトウェアの更改時期が一致せず、それぞれのコンポーネントがその時点で提供されるバージョンに更改される場合が多い。従って、ハードウェアのみの移行又はソフトウェアの一部分の更改等、更改する頻度があがる。そして、更改の都度、テスト系システムが構築され、テストされ、さらにはテスト終了後、新システムが構築されるため、テスト工数が膨大となる。
【０００９】
特許文献１及び特許文献２記載の技術では、本番系システムに入力するデータのテスト系システムへの転送方法については記載されているが、テスト系システムをそのまま本番系システムとして稼動させることについては記載されていない。
【００１０】
本発明の主な目的は、第１のシステム（例えば、本番系システム／現行システム）と、第２のシステム（例えば、テスト系システム／新システム）を有するシステムで、第１のシステムと、第２のシステムとを並行稼動させ、両者の処理結果の差分に応じて、第２のシステムを現行システムとして稼動させることである。
【課題を解決するための手段】
【００１１】
本発明の代表的な一形態によると、一以上の端末、第１のシステム、及び、第２のシステムと接続される支援システムであって、前記支援システムは、プロセッサとメモリとインタフェースとを備え、前記端末から前記第１のシステムへ送信される第１のデータと、前記第１のシステムから前記端末へ送信される第２のデータとを、前記インタフェースを介して受信する第１のシステム受信部と、前記第１のデータと前記第２のデータとを含む第１のシステムログを、前記メモリに保持する第１のシステムログ取得部と、前記第１のシステムログに基づいて、前記第１のデータと同じ内容を含む第３のデータを、前記第２のシステムへ送信する第２のシステム送信部と、前記第３のデータと、前記第２のシステムから前記支援システムへ送信される第４のデータとを含む第２のシステムログを、前記メモリに保持する第２のシステムログ取得部と、前記第１のデータ及び前記第２のデータが示す前記端末及び第１のシステム間のセッションに関する情報と、前記第３のデータ及び前記第４のデータが示す前記支援システム及び前記第２のシステム間のセッションに関する情報と、を含むセッション情報を前記メモリに保持するセッション管理部と、前記第１のシステムログと、前記第２のシステムログとの差分を抽出する差分抽出部と、前記セッション情報に含まれる前記端末及び第１のシステム間のセッションに関する情報に基づいて、前記第１のシステムを前記端末から切断させ、前記第２のシステムと前記端末とを接続させる系切替部と、を有する。
【発明の効果】
【００１２】
本発明の一実施形態によると、テスト後の新システムを本番システムとして稼動させることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態に関わるテスト支援システムの物理的構成を示すブロック図である。
【図２】本発明の第１の実施形態のテスト支援ツールの物理的な構成と処理部とを示すブロック図である。
【図３Ａ】本発明の第１の実施形態のサービスプロファイルを示す説明図である。
【図３Ｂ】本発明の第１の実施形態のサービスプロファイル設定画面を示す説明図である。
【図４Ａ】本発明の第１の実施形態のスイッチ管理テーブルを示す説明図である。
【図４Ｂ】本発明の第１の実施形態の接続設定画面を示す説明図である。
【図５Ａ】本発明の第１の実施形態のセッション管理テーブルを示す説明図である。
【図５Ｂ】本発明の第１の実施形態の現行システムログ及び新システムログを示す説明図である。
【図６Ａ】本発明の第１の実施形態の差分情報テーブルを示す説明図である。
【図６Ｂ】本発明の第１の実施形態の差分情報表示画面を示す説明図である。
【図７】本発明の第１の実施形態のテスト支援ツールの処理を示すフローチャートである。
【図８】本発明の第１の実施形態の現行システムによってＷｅｂサービスが提供される場合における、現行システムと端末との間の通信データをテスト支援ツールが受信する処理を示すフローチャートである。
【図９】本発明の第１の実施形態の現行システムによってＷｅｂサービスが提供される場合における、テスト支援ツールが新システムへデータを送信する処理を示すフローチャートである。
【図１０】本発明の第１の実施形態の現行システムによってＷｅｂサービスが提供される場合における、テスト支援ツールが新システムからデータを受信する処理を示すフローチャートである。
【図１１】本発明の第１の実施形態の現行システムによってＦＴＰサービスが提供される場合における、現行システム及び端末間の通信データをテスト支援ツールが受信する処理を示すフローチャートである。
【図１２】本発明の第１の実施形態の現行システムによってＦＴＰサービスが提供される場合における、テスト支援ツールが新システムへデータを送信する処理を示すフローチャートである。
【図１３】本発明の第１の実施形態の現行システムによってＦＴＰサービスが提供される場合における、新システムがテスト支援ツールへデータを送信する処理を示すフローチャートである。
【図１４】本発明の第１の実施形態の差分抽出処理を示すフローチャートである。
【図１５】本発明の第１の実施形態の系切替処理を示すフローチャートである。
【図１６】本発明の第２の実施形態のテスト支援システムの構成を示すブロック図である。
【図１７】本発明の第２の実施形態のＬＢを示すブロック図である。
【図１８】本発明の第２の実施形態のテスト支援ツールにおける系切替処理を示すフローチャートである。
【図１９】本発明の第２の実施形態のＬＢにおける系切替処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
本発明は、現行システムへ入力されるデータと同じ内容のデータを新システムへ入力し、現行システムへの入力データ及び現行システムからの出力データと、新システムへの入力データ及び現行システムからの出力データとを比較することによって、現行システムと新システムとの相違点を抽出する。そして、現行システムにおけるセッションに関する情報と、新システムにおけるセッションに関する情報とを保持することによって、現行システムへ入力されるデータから新システムへ入力するデータを生成し、また、現行システムから新システムへの系切替のタイミングを取得する。
【００１５】
図１は、本発明の第１の実施形態に関わるテスト支援システムの物理的構成を示すブロック図である。
【００１６】
第１の実施形態のテスト支援システムは、テスト支援ツール１００、移行元の現行システム１０２、移行先の新システム１０４、端末１０３及びスイッチ１０１を備える。テスト支援ツール１００、現行システム１０２、新システム１０４、端末１０３はスイッチ１０１を含むネットワーク経由で接続される。
【００１７】
現行システム１０２は、本実施形態の移行処理の前において、本番系システムとして稼動する。現行システム１０２は、少なくとも一つの計算機を備え、端末１０３を用いるユーザにサービスを提供する。
【００１８】
テスト支援システムは、複数の端末１０３を備えてもよい。各端末１０３は、スイッチ１０１のポートに接続される。
【００１９】
新システム１０４は、本実施形態の移行処理の前において、テスト系システムである。後述する移行処理によって、現行システム１０２から新システム１０４へ、本番系システムが移行する。新システム１０４は、少なくとも一つの計算機を備え、端末１０３を用いるユーザにサービスを提供する。
【００２０】
新システム１０４は、少なくとも二つのポートによってスイッチ１０１と接続される。具体的には、新システム１０４のポートのうち、一つのポートは、テスト支援ツール１００を介してスイッチ１０１と接続される。
【００２１】
テスト支援ツール１００は、二つのポートによってスイッチ１０１と接続される。一つのポートは、現行システム１０２への入力データ及び現行システム１０２からの出力データを受信するためのポートであり、一つのポートは、スイッチ１０１の設定を変更するためのポートである。
【００２２】
スイッチ１０１は、現行システム１０２に接続されるポートと、新システム１０４に接続されるポートとをミラーリングする。これによって、端末１０３から現行システム１０２へ入力されるデータは、後述するテスト時においてテスト支援ツール１００を介して新システム１０４にも入力される。なお、本実施形態のスイッチ１０１は、ミラーリングが可能なネットワーク装置であればよく、例えば、ルータであってもよい。
【００２３】
また、後述するテスト及び移行処理が終了した場合、すなわち、新システム１０４が本番系システムとして稼動する場合、新システム１０４は、スイッチ１０１を介して端末１０３から送信されるデータを受信する。
【００２４】
新システム１０４に割り当てられるアドレス情報は、移行処理の前後において、現行システム１０２において割り当てられるアドレス情報と同じ値である。これによって、端末１０３は、移行の前後において、データを送信するための宛先を変更する必要がない。
【００２５】
また、現行システム１０２から端末１０３へデータを送信するための端末１０３のアドレス情報と、新システム１０４からテスト支援ツール１００へデータを送信するためのテスト支援ツール１００のアドレス情報は、同じ値である。これによって、新システム１０４から端末１０３へ送信されるデータを、テスト支援ツール１００が受信することができる。
【００２６】
図２は、本発明の第１の実施形態のテスト支援ツール１００の物理的な構成と処理部とを示すブロック図である。
【００２７】
図２に示すテスト支援ツール１００は、メモリ２００、プロセッサ２０１、蓄積装置２０２、入力装置２０３、出力装置２０４、ネットワークインタフェース２０５、及び、バス２０６を備える計算機である。メモリ２００、プロセッサ２０１、蓄積装置２０２、入力装置２０３、出力装置２０４、及び、ネットワークインタフェース２０５は、バス２０６によって接続される。
【００２８】
メモリ２００には、テスト支援ソフトウェア２１０が格納される。蓄積装置２０２には、プログラム又はデータ等が格納される。プロセッサ２０１は、蓄積装置２０２に格納されたプログラム及びデータを必要に応じてメモリ２００に読み出すことによって、テスト支援ソフトウェア２１０を実行する。
【００２９】
入力装置２０３は、キーボード又はマウス等の装置であり、ユーザがテスト支援ツール１００にデータを入力するために用いる装置である。出力装置２０４は、ディスプレイ又はプリンタ等の装置であり、ユーザにテスト支援ツール１００における処理の結果を出力するための装置である。テスト支援ツール１００は、ネットワークインタフェース２０５を介して、スイッチ１０１又は新システム１０４と通信する。
【００３０】
メモリ２００に格納されるテスト支援ソフトウェア２１０は、通信処理部２１１、現行システム受信処理部２１２、現行システムログ取得部２１３、新システム送信処理部２１４、新システム受信処理部２１５、新システムログ取得部２１６、セッション管理部２１７、差分抽出処理部２１８、及び、系切替処理部２１９を有する。
【００３１】
また、テスト支援ソフトウェア２１０は、サービスプロファイル２２０、現行システムログ２２１、新システムログ２２２、セッション管理テーブル２２３、差分情報テーブル２２４及びスイッチ管理テーブル２２５を、蓄積装置２０２に保持する。そして、テスト支援ソフトウェア２１０の各処理部の実行に伴い、適宜、蓄積装置２０２に保持された各テーブル等をメモリ２００に読み出す。
【００３２】
通信処理部２１１は、スイッチ１０１又は新システム１０４から、ネットワークインタフェース２０５を介してデータを受信する。また、新システム送信処理部２１４又は系切替処理部２１９から送信されるデータを、ネットワークインタフェース２０５へ送信する。
【００３３】
現行システム受信処理部２１２は、スイッチ１０１がミラーリングによってテスト支援ツール１００に送信した、現行システム１０２及び端末１０３間で通信されるデータを受信する。そして、受信した現行システム１０２及び端末１０３間で通信されるデータを解析する。
【００３４】
現行システムログ取得部２１３は、現行システム受信処理部２１２によって受信されたデータを入力された場合、入力されたデータに基づいて、現行システム１０２のログを生成する。そして、生成されたログを、現行システムログ２２１へ格納する。
【００３５】
新システム送信処理部２１４は、現行システムログ２２１から読み出されたデータを受信し、読み出されたデータが現行システム１０２へ送信されたデータであるか否かを判定する。読み出されたデータが現行システム１０２へ送信されたデータである場合、現行システムログ２２１から読み出されたデータを、新システム１０４へ送信されるデータに生成する。そして、生成されたデータを新システム１０４へ送信する。
【００３６】
新システム受信処理部２１５は、新システム１０４からテスト支援ツール１００へ送信されるデータを受信する。
【００３７】
新システムログ取得部２１６は、新システム送信処理部２１４によって送信されるデータ、及び、新システム受信処理部２１５によって受信されるデータを入力された場合、入力されたデータに基づいて、新システム１０４のログを生成する。そして、生成された新システム１０４のログを、新システムログ２２２へ格納する。
【００３８】
セッション管理部２１７は、現行システム１０２及び端末１０３間で通信されるデータから、現行システム１０２におけるセッションを示すセッション情報を取得する。また、新システム１０４及びテスト支援ツール１００間で通信されるデータから、新システム１０４におけるセッションを示すセッション情報を取得する。
【００３９】
そして、現行システム１０２におけるセッションを示すセッション情報と、新システムにおけるセッションを示すセッション情報とを対応付けて、セッション管理テーブル２２３に格納する。
【００４０】
差分抽出処理部２１８は、現行システムログ２２１と新システムログ２２２とを比較し、差分を検出する。そして、検出された差分を、出力装置２０４によって表示する。
【００４１】
系切替処理部２１９は、新システム１０４のテスト終了後、現行システム１０２をスイッチ１０１から切り離す。また、新システム１０４をスイッチ１０１へ接続することによって、新システム１０４と端末１０３とを接続する。また、テスト支援ツール１００を切り離す。
【００４２】
サービス管理部２３０は、サービスプロファイル２２０を参照し、データがいかなるサービスによって送信されたデータであるかを判定する。
【００４３】
なお、テスト支援ソフトウェア２１０に含まれる各処理部は、プログラムによって実装されてもよいし、物理的な集積回路によって実装されてもよい。また、各処理部は、後述する各処理ごとに分割されてもよく、また、複数の処理部を統合したプログラム又は集積回路として実装されてもよい。
【００４４】
また、テスト支援ソフトウェア２１０が蓄積装置２０２に保持する各データは、各データの内容がテスト支援ソフトウェア２１０の各処理部によって識別されれば、いかなる方法によって保持されてもよい。例えば、後述するテーブルによって保持されてもよいし、ＣＳＶ等の方法によって保持されてもよい。
【００４５】
図３Ａは、本発明の第１の実施形態のサービスプロファイル２２０を示す説明図である。
【００４６】
サービスプロファイル２２０は、サービス名１６０１、プロトコル１６０２、デフォルトポート１６０３、セッション識別１６０４、セッションキー１６０５、及び、モジュール名１６０６を有する。
【００４７】
サービス名１６０１は、現行システム１０２及び新システム１０４が提供するサービス名を示す。プロトコル１６０２は、サービス名１６０１が示すサービスが用いる通信プロトコルを示す。デフォルトポート１６０３は、プロトコル１６０２が示すプロトコルが用いるデフォルトポート番号（例えば、Ｗｅｂサービスはポート番号８０を用い、ＦＴＰはポート番号２１を用いる）を示す。
【００４８】
セッション識別１６０４は、サービス名１６０１が示すサービスにおいて、どのような識別情報を用いてセッションを識別するかを示す。例えば、サービス名１６０１がＷｅｂサービスを示す場合、セッション識別１６０４は、現行システム１０２が割り当てるセッションＩＤを示す。
【００４９】
セッションキー１６０５は、セッションＩＤ等のセッション識別情報がデータ部に含まれる場合、セッション識別情報を検出するためのキーとなる情報を示す。例えば、サービス名１６０１がｊａｖａによって作成されるＷｅｂサービスを示す場合、セッションキー１６０５には、”ｊｓｅｓｓｉｏｎｉｄ”が格納される。
【００５０】
モジュール名１６０６は、サービス名１６０１に対応したセッション管理を行うモジュール名を示す。すなわち、モジュール名１６０６が示すモジュールを用いることによって、テスト支援ツール１００は、各データからセッション識別情報を検出することができる。
【００５１】
なお、後述する差分抽出処理時、予め異なることが分かっている情報がある場合、更に差分抽出除外キーワードを、サービスプロファイル２２０に格納してもよい。これによって、差分比較に必要のない情報を処理せずに、提示する情報の精度を上げることができる。例えば、プロトコル１６０２がＨＴＴＰを示す場合、メッセージヘッダを示す値をサービスプロファイル２２０に格納してもよい。
【００５２】
図３Ｂは、本発明の第１の実施形態のサービスプロファイル設定画面１６１０を示す説明図である。
【００５３】
サービスプロファイル設定画面１６１０は、テスト支援ツール１００を実行するユーザが、現行システム１０２が提供するサービスを入力するためのインタフェースである。また、ユーザが、現行システム１０２が提供するサービスに従った、セッション管理に関わる情報をカスタマイズするためのインタフェースである。
【００５４】
サービスプロファイル設定画面１６１０は、テスト支援ツール１００の出力装置２０４に、サービス管理部２３０によって表示される。ユーザは、サービスプロファイル設定画面１６１０及び入力装置２０３を用いて、サービスプロファイルについての情報をテスト支援ツール１００に入力する。
【００５５】
サービスプロファイル設定画面１６１０は、サービス１６１１、及び、カスタマイズ領域１６１２〜カスタマイズ領域１６１７を含む。また、ＯＫボタン１６１８、及びキャンセルボタン１６１９を含む。
【００５６】
サービス１６１１には、所定のサービスが、例えばリストによって表示される。ユーザは、サービス１６１１に表示されたサービスを選択する。
【００５７】
また、カスタマイズ領域１６１２〜カスタマイズ領域１６１７は、現行システム１０２において提供されるサービスがユーザ又は管理者等によって新たに開発されたサービスである場合において、新たに開発されたサービスをユーザが登録するための領域である。
【００５８】
カスタマイズ領域１６１２は、サービス名を示し、サービスプロファイル２２０のサービス名１６０１に対応する。カスタマイズ領域１６１３は、プロトコルを示し、サービスプロファイル２２０のプロトコル１６０２に対応する。
【００５９】
カスタマイズ領域１６１４は、サービスによって用いられるポート番号を示し、サービスプロファイル２２０のカスタマイズ領域１６１４に対応する。カスタマイズ領域１６１５は、セッションを識別するための情報を示し、サービスプロファイル２２０のセッション識別１６０４に対応する。
【００６０】
カスタマイズ領域１６１６は、セッション識別情報を検出するためのキーとなる情報を示し、サービスプロファイル２２０のセッションキー１６０５に対応する。カスタマイズ領域１６１７は、セッション管理を行うモジュール名を示し、サービスプロファイル２２０のモジュール名１６０６に対応する。
【００６１】
ユーザがＯＫボタン１６１８を操作した場合、テスト支援ツール１００のサービス管理部２３０は、サービス１６１１において選択されたサービス名、又は、カスタマイズ領域１６１２〜カスタマイズ領域１６１７に入力されたカスタマイズ情報を、入力装置２０３を介して取得する。そして、取得された情報を、サービスプロファイル２２０へ格納する。また、取得された情報のうちモジュール名１６０６に対応するモジュールを取得し、後述する処理において用いるため、取得されたモジュールをメモリ２００に読み出す。
【００６２】
ユーザがキャンセルボタン１６１９を操作した場合、出力装置２０４は、サービスプロファイル設定画面１６１０を消去する。
【００６３】
図４Ａは、本発明の第１の実施形態のスイッチ管理テーブル２２５を示す説明図である。
【００６４】
スイッチ管理テーブル２２５は、テスト支援ツール１００がスイッチ１０１を管理するためのテーブルである。図４Ａのスイッチ管理テーブル２２５は、ポート番号１９０１、ポート名１９０２、有効化１９０３、ミラーポート１９０４、モード１９０５、及び、アドレス１９０６を含む。
【００６５】
ポート番号１９０１は、スイッチ１０１のポート番号を示す。ポート名１９０２は、スイッチ１０１の各ポートのポート名を示す。有効化１９０３は、各ポートの使用可又は不可を示す。
【００６６】
ミラーポート１９０４は、ミラーリングするポート番号、すなわち、データの送信元のポート番号を示す。モード１９０５は、ミラーリング時、送信元ポートのコピーするデータの向きを示す。図４Ａのモード１９０５には、例えば、”送信”、”受信”、又は、”送受信”が格納される。
【００６７】
アドレス１９０６は、各ポートに対応するアドレスが含まれる。本実施形態のスイッチ管理テーブル２２５は、ＩＰアドレスを含んだが、各ポートを識別できれば、ＭＡＣアドレス等、いかなるアドレスでもよい。
【００６８】
図４Ｂは、本発明の第１の実施形態の接続設定画面１９１０を示す説明図である。
【００６９】
図４Ｂの接続設定画面１９１０は、テスト支援ツール１００を実行するユーザが、スイッチ１０１へ送信される接続情報を設定するためのインタフェースである。サービス管理部２３０は、出力装置２０４に接続設定画面１９１０を表示する。ユーザは、入力装置２０３によって接続設定画面１９１０に値を入力し、これによって、サービス管理部２３０は、ユーザが設定した接続情報を取得する。
【００７０】
図４Ｂの接続設定画面１９１０は、ポート番号１９１１、ポート名１９１２、有効化１９１３、ミラーポート１９１４、モード１９１５、及び、アドレス１９１６を含む。
【００７１】
ポート番号１９１１は、スイッチ１０１のポート番号を示し、スイッチ管理テーブル２２５のポート番号１９０１に対応する。ポート名１９１２は、スイッチ１０１の各ポートのポート名を示し、スイッチ管理テーブル２２５のポート名１９０２に対応する。
【００７２】
有効化１９１３は、スイッチ１０１の各ポートの使用の有効又は無効を示し、スイッチ管理テーブル２２５の有効化１９０３に対応する。ミラーポート１９１４は、ミラーリングするポートのポート番号を示し、スイッチ管理テーブル２２５のミラーポート１９０４に対応する。
【００７３】
モード１９１５は、ミラーリング時、送信元ポートのコピーするデータの向きを示し、スイッチ管理テーブル２２５のモード１９０５に対応する。アドレス１９１６は、アドレスを示し、スイッチ管理テーブル２２５のアドレス１９０６に対応する。
【００７４】
例えば、図４Ｂに示す接続設定画面１９１０は、６番ポートが無効化され、７番ポートが１番ポートの送受信データをキャプチャするミラーポートであると接続設定画面１９１０に入力されていることを示す。また、２番ポート及び３番ポートに、各々端末１０３のポートが接続されることを示す。
【００７５】
さらに、図４Ａに示すスイッチ管理テーブル２２５は、図４Ｂに示す接続設定画面１９１０の入力に従って、値を格納された例である。
【００７６】
図５Ａは、本発明の第１の実施形態のセッション管理テーブル２２３を示す説明図である。
【００７７】
図５Ａのセッション管理テーブル２２３は、現行セッションＩＤ１７０１、送信元アドレス１７０２、送信元ポート番号１７０３、宛先アドレス１７０４、宛先ポート番号１７０５、開始時刻１７０６、終了時刻１７０７、新セッションＩＤ１７０８、開始時刻１７０９、及び、終了時刻１７１０等を格納する。
【００７８】
現行セッションＩＤ１７０１、送信元アドレス１７０２、送信元ポート番号１７０３、宛先アドレス１７０４、宛先ポート番号１７０５、開始時刻１７０６、及び、終了時刻１７０７は、現行システム１０２と端末１０３と間のセッションに関する情報を示す。
【００７９】
新セッションＩＤ１７０８、開始時刻１７０９、及び、終了時刻１７１０は、現行システム１０２と端末１０３と間のセッションを、新システム１０４とテスト支援ツール１００との間でテストした場合の、新システム１０４とテスト支援ツール１００との間のセッションの情報を示す。
【００８０】
現行セッションＩＤ１７０１は、現行システム１０２におけるセッションの識別子を示す。例えば、現行セッションＩＤ１７０１は、各エントリがＷｅｂサービスによるセッションを示す場合、現行システム１０２に備わるＷｅｂサーバが各セッションに割り当てるセッションＩＤ等を示す。
【００８１】
送信元アドレス１７０２は、端末１０３のアドレスを示す。現行セッションＩＤ１７０１が示すセッションは、送信元アドレス１７０２が示す端末１０３と、現行システム１０２との間のセッションを示す。図５Ａにおけるアドレスは、ＩＰアドレスによって表示される。
【００８２】
送信元ポート番号１７０３は、送信元アドレス１７０２が示す端末１０３のポートのうち、現行システムと端末１０３とのセッションに用いられるポートを示す。
【００８３】
宛先アドレス１７０４は、現行システム１０２のアドレスを示す。宛先ポート番号１７０５は、端末１０３とのセッションに用いられる現行システム１０２のポートを示す。
【００８４】
開始時刻１７０６は、現行システム１０２と端末１０３との間のセッションが開始された時刻を示す。終了時刻１７０７は、現行システム１０２と端末１０３との間のセッションが終了した時刻を示す。
【００８５】
新セッションＩＤ１７０８は、新システム１０４におけるセッションの識別子を示す。開始時刻１７０９は、新システム１０４とテスト支援ツール１００との間のセッションが開始される時刻を示す。終了時刻１７１０は、新システム１０４とテスト支援ツール１００との間のセッションが終了する時刻を示す。
【００８６】
図５Ｂは、本発明の第１の実施形態の現行システムログ２２１及び新システムログ２２２を示す説明図である。
【００８７】
図５Ｂに示すシステムログは、現行システム１０２の現行システムログ２２１又は新システム１０４の新システムログ２２２である。
【００８８】
現行システムログ２２１は、端末１０３及び現行システム１０２間で通信される各イベントデータを示す。すなわち、端末１０３から現行システム１０２へ送信されるデータ（入力データ）、及び、現行システム１０２から端末１０３へ送信されるデータ（出力データ）を示す。
【００８９】
新システムログ２２２は、テスト支援ツール１００及び新システム１０４間の通信される各イベントデータを示す。すなわち、テスト支援ツール１００から新システム１０４へ送信されるデータ（入力データ）、及び、新システム１０４からテスト支援ツール１００へ送信されるデータ（出力データ）を示す。
【００９０】
現行システムログ２２１及び新システムログ２２２は、現行システム１０２、端末１０３、新システム１０４へ送信されるデータに格納されるすべての値を含む。このため、後述する新システム送信処理部２１４は、現行システムログ２２１及び新システムログ２２２が示す内容に従って、データを送信するためのパケットを生成することが可能である。
【００９１】
現行システムログ２２１及び新システムログ２２２は、時刻１７２１、セッションＩＤ１７２２、送信元アドレス１７２３、送信元ポート番号１７２４、宛先アドレス１７２５、宛先ポート番号１７２６、シーケンス番号１７２７、コマンド１７２８、及び、データ１７２９を含む。
【００９２】
時刻１７２１は、各セッションにおいてイベント（送信、又は、受信）が発生した時点の時刻を示す。セッションＩＤ１７２２は、イベントが含まれるセッションの識別子を示す。現行システムログ２２１のセッションＩＤ１７２２は、現行セッションＩＤ１７０１に対応し、新システムログ２２２のセッションＩＤ１７２２は、新セッションＩＤ１７０８に対応する。
【００９３】
送信元アドレス１７２３は、イベントデータを送信した装置のアドレスを示す。具体的には、現行システムログ２２１の送信元アドレス１７２３には、端末１０３又は現行システム１０２のアドレスが含まれ、新システムログ２２２の送信元アドレス１７２３には、テスト支援ツール１００及び新システム１０４のアドレスが含まれる。
【００９４】
送信元ポート番号１７２４は、イベントデータを送信した装置の受信ポート番号を示す。
【００９５】
宛先アドレス１７２５は、イベントデータの送信相手の装置のアドレス情報を示す。宛先ポート番号１７２６は、イベントデータの送信相手の装置の受信ポート番号を示す。シーケンス番号１７２７は、イベントデータのシーケンス番号を示す。データ１７２９は、イベントデータのデータ部を示す。
【００９６】
図６Ａは、本発明の第１の実施形態の差分情報テーブル２２４を示す説明図である。
【００９７】
図６Ａの差分情報テーブル２２４は、ログステップ番号１８０１、現行システムログ１８０２、新システムログ１８０３、差分数１８０４、及び、差分データ１８０５（１８０５−１、１８０５−２）を含む。
【００９８】
ログステップ番号１８０１は、差分が検出された現行システムログ２２１の行番号を示す。現行システムログ２２１及び新システムログ２２２には、セッション毎に少なくとも一つのイベントデータが含まれる。このため、現行システムログ２２１及び新システムログ２２２をセッション毎にソートした場合における、差分が検出された行を示す。
【００９９】
現行システムログ１８０２は、差分を検出された現行システム１０２のデータを示す。現行システムログ１８０２は、現行システムログ２２１のデータ１７２９に対応する。
【０１００】
新システムログ１８０３は、差分を検出された現行システム１０２に対応する新システム１０４のデータを示す。新システムログ１８０３は、新システムログ２２２のデータ１７２９に対応する。
【０１０１】
差分数１８０４は、イベントデータの差分が存在する行の中で、存在する差分の数を示す。差分データ１８０５−１、及び、差分データ１８０５−２は、検出された差分のデータを示す。
【０１０２】
図６Ａに示す差分データ１８０５は、現行システムログ２２１において検出された差分のデータと、新システムログ２２２において検出された差分のデータを示す。なお、図６Ａに示す差分データ１８０５は、二つのみであるが、複数の差分データ１８０５が差分情報テーブル２２４に含まれてもよい。
【０１０３】
図６Ｂは、本発明の第１の実施形態の差分情報表示画面１８１０を示す説明図である。
【０１０４】
図６Ｂの差分情報表示画面１８１０は、差分情報テーブル２２４に基づいて、差分抽出処理部２１８によって出力装置２０４に表示される。
【０１０５】
図６Ｂの差分情報表示画面１８１０は、現行システムアドレス１８１１、差分総数１８１２、ログステップ番号１８１３、現行システムログ１８１４、新システムログ１８１５、及び、差分データ１８１６を含む。現行システムアドレス１８１１は、現行システムの、例えばＩＰアドレスなどのアドレスを示す。
【０１０６】
差分総数１８１２は、検出した差分数の総数を示す。ログステップ番号１８１３は、差分を検出された現行システムログ２２１及び新システムログ２２２の行番号すなわちメッセージ番号を示す。ログステップ番号１８１３は、差分情報テーブル２２４のログステップ番号１８０１に対応する。
【０１０７】
現行システムログ１８１４は、現行システムログ２２１の差分を含むデータを示す。新システムログ１８１５は、新システムログ２２２の差分を含むデータを示す。
【０１０８】
差分データ１８１６は、現行システムログ１８１４及び新システムログ１８１５の差分を示す。差分データ１８１６は、例えば異なる文字色、又は、ハッチングする等によって示される。差分データ１８１６は、差分情報テーブル２２４の差分データ１８０５に対応する。
【０１０９】
図７〜図１５にテスト支援ツール１００の処理の流れの例を示す。
【０１１０】
図７は、本発明の第１の実施形態のテスト支援ツール１００の処理を示すフローチャートである。
【０１１１】
図７に示す処理の開始時において、現行システムログ２２１、新システムログ２２２、及び、セッション管理テーブル２２３には、値が格納されていない。
【０１１２】
図７に示す処理は、ユーザの指示によって開始される。サービス管理部２３０は、ユーザの指示に従って、図３Ｂに示すサービスプロファイル設定画面１６１０を出力装置２０４に表示する（ステップ３００）。そして、サービスプロファイル設定画面１６１０を介したユーザからの入力を待つ。
【０１１３】
サービス管理部２３０は、ステップ３００において、現行システム１０２が提供するサービス（例えば、Ｗｅｂ、ファイル転送、及び、ＩＰ電話等）のサービスプロファイル２２０をあらかじめ保持している場合、ユーザがサービスを選択できるように、サービスプロファイル設定画面１６１０のサービス１６１１をリストによって表示してもよい。
【０１１４】
ステップ３００の後、サービス管理部２３０は、ユーザがサービスをサービス１６１１において選択したか否かを判定する（ステップ３０１）。ユーザがサービスをサービス１６１１において選択していない場合、サービス管理部２３０は、カスタマイズ領域１６１２〜カスタマイズ領域１６１７にサービスに関する情報（サービスプロファイル２２０に対応）が入力されたか否かを判定する（ステップ３０３）。
【０１１５】
ステップ３０３において、カスタマイズ領域１６１２〜カスタマイズ領域１６１７にサービスに関する情報が入力されていない場合、サービス管理部２３０は、ステップ３０１に戻り、ユーザによるサービスの入力を待つ。
【０１１６】
ステップ３０１においてユーザがサービスをサービス１６１１において選択したと判定された場合、サービス管理部２３０は、ステップ３０２を実行する。また、ステップ３０３においてカスタマイズ領域１６１２〜カスタマイズ領域１６１７にサービスに関する情報が入力されたと判定された場合、サービス管理部２３０は、入力されたサービスに関する情報をサービスプロファイル２２０に格納し、ステップ３０１を実行する。
【０１１７】
サービス管理部２３０は、ステップ３０１において選択されたサービスのサービスプロファイル２２０、又は、ステップ３０３において入力されたサービスのサービスプロファイル２２０のエントリを特定する。そして、特定されたサービスプロファイル２２０のエントリをメモリ２００に読み出す（ステップ３０２）。
【０１１８】
なお、サービス管理部２３０は、ステップ３０２において、現行システム１０２と端末１０３とが送受信するデータから、いかなるサービスが提供されているかを判定し、サービスプロファイル２２０を特定してもよい。
【０１１９】
ステップ３０２において、サービス管理部２３０は、読み出されたサービスプロファイル２２０のエントリに基づいて、テスト支援ツール１００の各処理部が、後述するステップ３０５及びステップ３０６において、図８〜図１０の処理を実行するか、又は、図１１〜図１３の処理を実行するかを決定する。
【０１２０】
例えば、メモリ２００に読み出されたサービスプロファイル２２０のセッション識別１６０４に”ＩＤ”が格納されている場合、セッションを識別するため、データに含まれるセッションＩＤを抽出する必要がある。このため、サービス管理部２３０は、ステップ３０５〜ステップ３０７において、図８〜図１０の処理を実行することを決定する。
【０１２１】
また、メモリ２００に読み出されたサービスプロファイル２２０のセッション識別１６０４に、データのヘッダ情報に格納されるコマンド名等が格納されている場合、又は、セッション識別１６０４に何も格納されていない場合、サービス管理部２３０は、セッションを識別するためにセッションＩＤを抽出する必要がない。このため、サービス管理部２３０は、ステップ３０５〜ステップ３０７において、図１１〜図１３の処理を実行することを決定する。
【０１２２】
なお、ステップ３０１、又は、ステップ３０３において、複数のサービスが選択又は入力された場合、サービス管理部２３０は、複数のサービスに対応するサービスプロファイル２２０のエントリを読み出す。そして、各エントリに対応する、ステップ３０５〜ステップ３０７における処理手順を決定する。
【０１２３】
ステップ３０２の後、サービス管理部２３０は、現行システム１０２及び新システム１０４がスイッチ１０１に接続するポート、並びに、現行システム１０２及び新システム１０４のアドレス（例えばＩＰアドレス）等を取得し、取得された各情報をスイッチ管理テーブル２２５に格納する。そして、スイッチ管理テーブル２２５に格納された接続情報に従って、スイッチ１０１を設定する（ステップ３０４）。
【０１２４】
ステップ３０４において、サービス管理部２３０は、例えば、図４Ｂに示す接続設定画面１９１０を出力装置２０４に表示し、接続設定画面１９１０を介して、ユーザから接続情報を取得してもよい。そして、取得された接続情報を、スイッチ管理テーブル２２５に格納してもよい。また、ステップ３０４において、ユーザがコマンドラインを用いてスイッチ管理テーブル２２５に接続情報を格納してもよい。
【０１２５】
ここで、ステップ３０４においてスイッチ管理テーブル２２５に格納される接続情報は、図４Ａに示すスイッチ管理テーブル２２５の接続情報である。
【０１２６】
ステップ３０４の後、テスト支援ツール１００の各処理部は、現行システム１０２と端末１０３との間で通信されるデータをログとして取得する（ステップ３０５）。ステップ３０５の後、テスト支援ツール１００の各処理部は、現行システム１０２に入力されるデータと同じデータを新システム１０４に入力し、新システム１０４から出力されるデータを取得する（ステップ３０６）。
【０１２７】
ステップ３０５及びステップ３０６の処理によって、テスト支援ツール１００は、現行システム１０２から新システム１０４へ切替える前のテストを実行する。また、ステップ３０５及びステップ３０６は、ステップ３０２において決定された処理手順に従って、ステップ３０５には、図８又は図１１が行われ、ステップ３０６には、図９及び図１０、又は、図１２及び図１３に示す処理が行われる。ステップ３０５とステップ３０６とは、並行して実行されてもよい。
【０１２８】
ステップ３０５及びステップ３０６の処理の後、テスト支援ツール１００のセッション管理部２１７は、現行システム１０２と端末１０３とのセッションがすべて終了したか否かを判定する（ステップ３０７）。ステップ３０７においてセッション管理部２１７は、セッション管理テーブル２２３のすべての終了時刻１７０７に、値が格納されている場合、現行システム１０２と端末１０３とのセッションがすべて終了したと判定する。
【０１２９】
現行システム１０２と端末１０３とのセッションが終了しない場合、すなわち、現行システム１０２と端末１０３とのセッションが終了するまで、ステップ３０５〜ステップ３０７が繰り返される。
【０１３０】
現行システム１０２と端末１０３とのセッションが終了した場合、差分抽出処理部２１８は、現行システム１０２及び端末１０３間の通信に関するシステムログ（現行システムログ２２１）と、新システム１０４及びテスト支援ツール１００間の通信に関するシステムログ（新システムログ２２２）との差分を抽出し、差分情報テーブル２２４を更新する（ステップ３０８）。
【０１３１】
ステップ３０８の後、差分抽出処理部２１８は、ステップ３０８の処理において、差分が抽出されたか否かを判定する（ステップ３０９）。差分が抽出されたと判定された場合、差分抽出処理部２１８は、差分情報テーブル２２４の更新結果に従って、抽出された差分の情報を出力装置２０４に表示する（ステップ３１０）。差分抽出処理部２１８は、例えば、図６Ｂに示す差分情報表示画面１８１０等に表示する。
【０１３２】
テスト支援ツール１００は、ステップ３０８〜ステップ３１０に示す処理によって、ステップ３０５及びステップ３０６におけるテストの結果を検証する。
【０１３３】
ステップ３０８において差分が抽出されなかったと判定された場合、テスト結果の検証を終了し、新システム１０４を本番系として稼動させるため、系切替処理部２１９は、現行システム１０２及びテスト支援ツール１００とを切り離し、新システム１０４を現行システムとして稼動させる系切替処理を行う（ステップ３１１）。
【０１３４】
図８〜図１０に示す処理は、Ｗｅｂサービス等の、セッションＩＤによってセッションを識別するサービスが現行システム１０２によって提供される場合の、系切替え処理前のテストである。
【０１３５】
図８は、本発明の第１の実施形態の現行システム１０２によってＷｅｂサービスが提供される場合における、現行システム１０２と端末１０３との間の通信データをテスト支援ツール１００が受信する処理を示すフローチャートである。
【０１３６】
図８に示す処理は、図７のステップ３０５に対応する。
【０１３７】
図８において、サービス管理部２３０は、スイッチ管理テーブル２２５に格納される接続情報を取得する（ステップ４０１）。取得される接続情報は、例えば、現行システム１０２のアドレス１９０６、及び、ポート番号１９１１等である。
【０１３８】
ステップ４０１の後、サービス管理部２３０は、ステップ４０１において取得された接続情報に従って、現行システム１０２及び端末１０３間で送受信されるデータを受信できるように、通信処理部２１１及びネットワークインタフェース２０５を初期化する。また、サービス管理部２３０は、受信するデータからセッション情報を検出するためのモジュールを、ステップ３０２において読み出されたサービスプロファイル２２０のモジュール名１６０６に初期化する（ステップ４０２）。
【０１３９】
図８〜図１０に示す処理において、現行システム１０２及び新システム１０４はＷｅｂサービスを提供する。Ｗｅｂサービスによるセッションは、一般的に、ＴＣＰセッションと必ずしも一致しない。このため、テスト支援ツール１００は、Ｗｅｂサービスによって送信されるデータを識別する場合、ＨＴＴＰによって送信されるデータ（すなわち、パケット）のデータ部に格納されるセッション情報を検出する必要がある。
【０１４０】
また、Ｗｅｂサービスのセッション情報は、Ｗｅｂサービスが生成されたプログラム言語に従って、異なるキーによってデータ部に格納される。このため、テスト支援ツール１００は、Ｗｅｂサービスが生成されたプログラム言語ごとに、セッション情報を検出するためのキーを保持する必要がある。
【０１４１】
例えば、ＷｅｂサービスがＰＨＰによって生成されている場合、セッション情報は、ＨＴＴＰのパケットのデータ部に、”ＰＨＰＳＥＳＳＩＤ”のキーによって格納される。このため、テスト支援ツール１００は、サービスプロファイル２２０のモジュール名１６０６に、ＰＨＰによって生成されたＷｅｂサービスのセッションを識別するためのモジュールを保持する。また、サービスプロファイル２２０のセッションキー１６０５に”ＰＨＰＳＥＳＳＩＤ”を保持する。
【０１４２】
そして、Ｗｅｂサービスによって送信されたデータを識別する場合、テスト支援ツール１００は、サービスプロファイル２２０のセッション識別１６０４、セッションキー１６０５及びモジュール名１６０６を用いて、データからセッションＩＤ等のセッション情報を検出する。
【０１４３】
本実施形態のテスト支援ツール１００は、データに格納されるセッション情報を検出し、検出されたセッション情報を保持することによって、現行システムへ入力するデータを、新システムへ入力するデータに変換することができる。
【０１４４】
ステップ４０２の後、現行システム受信処理部２１２は、現行システム１０２に接続されるスイッチ１０１のポートとミラーリングされるポート、すなわち、前述の例における７番ポートから、ネットワークインタフェース２０５及び通信処理部２１１がデータを受信するか否かを判定する（ステップ４０３）。７番ポートからデータを受信しない場合、現行システム受信処理部２１２は、７番ポートからデータを受信するのを待つ。ステップ４０３によって、現行システム受信処理部２１２は、現行システム１０２へ送信されるデータ、及び、現行システム１０２から送信されるデータを受信できる。
【０１４５】
７番ポートからデータを受信した場合、現行システム受信処理部２１２は、受信したデータがコネクションに関するデータであるか否かを判定する（ステップ４０４）。現行システム受信処理部２１２は、ステップ４０４において、例えば、受信したデータのヘッダにＴＣＰのＳＹＮフラグが含まれる場合、受信したデータがコネクションに関するデータであると判定する。
【０１４６】
本実施形態のコネクションに関するデータは、例えば、ＳＹＮフラグ、ＦＩＮフラグ、又は、ＲＳＴフラグなどのフラグを含むデータである。また、本実施形態のコネクションに関するデータ以外のデータは、例えば、ＡＣＫフラグなどのフラグを含むデータである。
【０１４７】
ステップ４０４において、受信したデータがコネクションに関するデータであると判定された場合、セッション管理部２１７は、後述するステップ４０６の処理のため、セッション管理テーブル２２３を読み出す（ステップ４０５）。
【０１４８】
ステップ４０５の後、セッション管理部２１７は、ステップ４０３において受信したコネクションに関するデータから、端末１０３のアドレスを抽出する。そして、読み出されたセッション管理テーブル２２３の送信元アドレス１７０２に、抽出された端末１０３のアドレスが格納されているか否かを判定する（ステップ４０６）。
【０１４９】
具体的には、ステップ４０６においてセッション管理部２１７は、抽出されたアドレスがセッション管理テーブル２２３の送信元アドレス１７０２に格納されており、かつ、セッション管理テーブル２２３の終了時刻１７０７に値が格納されていない場合、抽出された端末１０３のアドレスがセッション管理テーブル２２３に格納されていると判定する。
【０１５０】
ステップ４０６において、コネクションに関するデータから抽出された端末１０３のアドレスが、セッション管理テーブル２２３の送信元アドレス１７０２に格納されていないと判定された場合、受信したコネクションに関するデータは、新しいセッションを確立するためのデータである。このため、セッション管理部２１７は、コネクションに関するデータのヘッダ情報に基づいて、セッション管理テーブル２２３に新たなエントリを追加する（ステップ４０７）。
【０１５１】
具体的には、セッション管理部２１７は、ステップ４０７において、セッション管理テーブル２２３に新たなエントリを生成する。そして、生成された新たなエントリの送信元アドレス１７０２、送信元ポート番号１７０３、宛先アドレス１７０４、及び、宛先ポート番号１７０５に、コネクションに関するデータのヘッダ情報に含まれる、送信元アドレス、送信元ポート番号、宛先アドレス、及び、宛先ポート番号を格納する。また、開始時刻１７０６に、ステップ４０３においてデータを受信した時刻を格納する。
【０１５２】
また、ステップ４０７において、現行システムログ取得部２１３は、現行システムログ２２１に、ステップ４０３において受信したコネクションに関するデータを示す値を格納する。
【０１５３】
ステップ４０７の後、図８に示す処理が終了し、図７に示すステップ３０６が実行される。これは、ステップ４０７の後、現行システム１０２において新たなセッションが確立される。このため、現行システム１２０において新たなセッションが確立される際に、現行システム１０２におけるセッションに対応するセッションを、新システム１０４において確立するためである。
【０１５４】
ステップ４０７の後、ステップ３０６を実行することによって、本実施形態のテスト支援ツール１００は、現行システム１０２における処理と、新システム１０４における処理とを並行に実行することが可能である。
【０１５５】
ステップ４０６において、コネクションに関するデータから抽出された端末１０３のアドレスが、セッション管理テーブル２２３の送信元アドレス１７０２に格納されていると判定された場合、受信したコネクションに関するデータは、継続中のセッションにおいて送信されたコネクションに関するデータである。
【０１５６】
このため、セッション管理部２１７は、コネクションに関するデータから抽出された端末１０３のアドレスを送信元アドレス１７０２に含むセッション管理テーブル２２３のエントリを、コネクションに関するデータに含まれるヘッダ情報によって更新する（ステップ４０８）。
【０１５７】
具体的には、ステップ４０８においてセッション管理部２１７は、ステップ４０６においてコネクションに関するデータから抽出された端末１０３のアドレスを、送信元アドレス１７０２に含むエントリをセッション管理テーブル２２３から特定する。そして、セッション管理部２１７は、ステップ４０３において受信したデータにコネクションを確立するための値（例えば、ＳＹＮフラグ）が含まれている場合、特定されたエントリの送信元ポート番号１７０３を、コネクションに関するデータのヘッダ情報に含まれる、送信元のポート番号によって更新する。
【０１５８】
また、ステップ４０８においてセッション管理部２１７は、ステップ４０３において受信したデータに、コネクションを切断することを示す値（例えば、ＦＩＮフラグ）が含まれている場合、ステップ４０３においてデータを受信した時刻を、特定されたエントリの終了時刻１７０７に格納する。
【０１５９】
ステップ４０８によって、セッション管理テーブル２２３は、最新のセッションに従って更新される。ステップ４０８の後、ステップ４０９が実行される。
【０１６０】
ステップ４０４において、受信したデータがコネクションに関するデータではないと判定された場合、セッション管理部２１７は、ステップ３０２においてメモリ２００に読み出されたサービスプロファイル２２０のエントリのセッション識別１６０４、セッションキー１６０５、及び、モジュール名１６０６を用いて、受信したデータのデータ部からセッション情報を検出する。そして、セッション管理部２１７は、モジュール名１６０６によって、受信したデータからセッション情報が検出されるか否かを判定する（ステップ４１０）。
【０１６１】
ステップ４１０において、モジュール名１６０６によってセッション情報が検出されない場合、ステップ４０３において受信したデータによって現行システム１０２及び端末１０３間のセッションは変更されず、セッション管理部２１７は、セッション管理テーブル２２３を更新する必要がない。このため、ステップ４１０の後、ステップ４０９が実行される。
【０１６２】
ステップ４１０において、モジュール名１６０６によって受信したデータからセッション情報が検出された場合、受信したデータは、端末１０３から送信され、現行システム１０２から既に割り当て済みのセッション情報を含むデータか、又は、現行システム１０２から送信され、現行システム１０２によって新たなセッションに割り当てられたセッション情報を含むデータである。このため、セッション管理部２１７は、後述するステップ４１２のため、セッション管理テーブル２２３を読み出す（ステップ４１１）。
【０１６３】
ステップ４１１の後、セッション管理部２１７は、ステップ４１０において検出されたセッション情報がセッション管理テーブル２２３に格納されているか否かを判定する（ステップ４１２）。セッション管理部２１７は、具体的には、ステップ４１０において検出されたセッション情報に含まれるセッションＩＤを特定する。そして、特定されたセッションＩＤを現行セッションＩＤ１７０１に含み、かつ、終了時刻１７０７に値が格納されていないセッション管理テーブル２２３のエントリがある場合、ステップ４１０において検出されたセッション情報がセッション管理テーブル２２３に格納されていると判定する。
【０１６４】
ステップ４１２において、ステップ４１０において検出されたセッション情報がセッション管理テーブル２２３に格納されていると判定された場合、受信したデータは、現行システム１０２から既に割り当て済みのセッション情報を含むデータである。このため、セッション管理部２１７はセッション管理テーブル２２３を更新する必要がない。このため、ステップ４１２の後、ステップ４０９が実行される。
【０１６５】
ステップ４１２において、ステップ４１０において検出されたセッション情報がセッション管理テーブル２２３に格納されていないと判定された場合、受信したデータは、現行システム１０２から送信され、現行システム１０２によって割り当てられたセッションＩＤを端末１０３に送信するためのデータである。
【０１６６】
このため、ステップ４１０において検出されたセッション情報がセッション管理テーブル２２３に格納されていないと判定された場合、セッション管理部２１７は、ステップ４１０において検出されたセッション情報のセッションＩＤを、セッション管理テーブル２２３に格納する（ステップ４１３）。
【０１６７】
具体的には、セッション管理部２１７は、ステップ４１３において、ステップ４０３において受信したデータに含まれる端末１０３のアドレス及びポート番号を含むセッション管理テーブル２２３のエントリを特定する。そして、特定されたエントリの現行セッションＩＤ１７０１に、ステップ４１０において検出されたセッション情報のセッションＩＤを格納する。
【０１６８】
ステップ４０８、ステップ４１０、ステップ４１２、又は、ステップ４１３の後、現行システムログ取得部２１３は、ステップ４０３において受信したデータを示す値を現行システムログ２２１に追加する（ステップ４０９）。
【０１６９】
具体的には、ステップ４０９において現行システムログ取得部２１３は、ステップ４０３において受信したデータに基づいて、送信元アドレス１７２３、送信元ポート番号１７２４、宛先アドレス１７２５、及び、宛先ポート番号１７２６の値を、現行システムログ２２１の新たに生成されたエントリに格納する。また、現行システムログ取得部２１３は、新たに生成されたエントリの時刻１７２１に、ステップ４０３においてデータを受信した時刻を格納する。
【０１７０】
また、ステップ４０９において現行システムログ取得部２１３は、ステップ４０３においてデータを受信した時間を、現行システムログ２２１の新たなエントリの時刻１７２１に格納する。また、ステップ４０３において受信したデータのヘッダ情報から抽出されたシーケンス番号を、シーケンス番号１７２７に格納する。また、ステップ４０３において受信したデータのデータ部を、新たに生成されたエントリのデータ１７２９に格納する。
【０１７１】
また、ステップ４１２又はステップ４１３の後、ステップ４０９において現行システムログ取得部２１３は、ステップ４１０において検出されたセッション情報のセッションＩＤを、新たに生成されたエントリのセッションＩＤ１７２２に格納する。
【０１７２】
なお、ステップ４０８又はステップ４１０の後、ステップ４０９において現行システムログ取得部２１３は、セッションＩＤ１７２２に値を格納しない。これは、ステップ４０８又はステップ４１０の後において、ステップ４０３において受信したデータには、セッションＩＤが含まれていないためである。
【０１７３】
ステップ４０９の後、系切替処理部２１９は、ユーザから系切替を指示されたか否かを判定する（ステップ４１４）。系切替処理部２１９は、ユーザによって予め指定された条件を満たした場合、ユーザから系切替を指示されたと判定してもよい。
【０１７４】
ステップ４１４においてユーザから系切替を指示されていないと判定された場合、ステップ４０３が実行される。また、ステップ４１４において系切替が指示されたと判定された場合、図８に示す処理は終了し、図７に示すステップ３０６が実行される。
【０１７５】
図８に示す処理によって、テスト支援ツール１００は、現行システム１０２へ送信されるデータ、及び、現行システム１０２から送信されるデータに関するシステムログを取得できる。
【０１７６】
なお、図８に示す処理によって生成される現行システムログ２２１は、Ｗｅｂサービスの現行システムログ２２１として生成されてもよい。これによって、図８と並行して後述する図１１に示す処理が行われても、Ｗｅｂサービスの現行システムログ２２１とＦＴＰサービスの現行システムログ２２１とを識別できる。
【０１７７】
図９及び図１０は、ステップ３０６の新システム通信処理を示す。
【０１７８】
図９は、本発明の第１の実施形態の現行システム１０２によってＷｅｂサービスが提供される場合における、テスト支援ツール１００が新システム１０４へデータを送信する処理を示すフローチャートである。
【０１７９】
図８に示す処理が終了した後、サービス管理部２３０は、スイッチ管理テーブル２２５に格納される接続情報を取得する（ステップ５００）。ステップ５００において取得される接続情報は、例えば、端末１０３のポート番号１９０１及びアドレス１９１６、並びに、新システム１０４のアドレス１９１６である。
【０１８０】
ステップ５００の後、サービス管理部２３０は、ステップ５００において取得された接続情報に従って、新システム１０４とテスト支援ツール１００とによってデータを送受信できるように、通信処理部２１１及びネットワークインタフェース２０５を初期化する（ステップ５０１）。具体的には、新システム１０４が各端末１０３に送信したデータを、テスト支援ツール１００の各ポートが受信するように初期化する。
【０１８１】
ステップ５０１の後、現行システムログ取得部２１３は、現行システムログ２２１に含まれる１エントリをメモリ２００に読み出す（ステップ５０２）。以下、ステップ５０２において現行システムログ２２１から読み出されたエントリをエントリＸと記載する。
【０１８２】
なお、現行システム１０２及び新システム１０４によってＷｅｂサービス及びＦＴＰサービスが提供される場合、ステップ５０２において現行システムログ取得部２１３は、Ｗｅｂサービスの現行システムログ２２１のエントリ、すなわち、図８に示す処理によって生成された現行システムログ２２１のエントリを読み出す。
【０１８３】
ステップ５０２の後、現行システムログ取得部２１３は、送信元アドレス１７２３を参照することによって、エントリＸが端末１０３から送信されたデータを示すか否かを判定する（ステップ５０３）。現行システムログ取得部２１３は、エントリＸの送信元アドレス１７２３が、ステップ５００において取得された端末１０３のアドレス１９１６と同じ値を含む場合、エントリＸが端末１０３から送信されたデータを示すと判定する。
【０１８４】
エントリＸが端末１０３から送信されたデータではなく、現行システム１０２から送信されたデータを示す場合、図１０に示す処理が実行される。
【０１８５】
エントリＸが端末１０３から送信されたデータを示す場合、現行システムログ取得部２１３は、エントリＸがコネクションに関するデータを示すか否かを判定する（ステップ５０４）。現行システムログ取得部２１３は、例えば、エントリＸのコマンド１７２８に、コネクションの確立を要求するフラグ（例えば、ＳＹＮ）が含まれている場合、エントリＸがコネクションに関するデータを示すと判定する。
【０１８６】
ステップ５０４において、エントリＸがコネクションに関するデータを示すと判定された場合、セッション管理部２１７は、セッション管理テーブル２２３のエントリを読み出す（ステップ５０５）。具体的には、ステップ５０５においてセッション管理部２１７は、エントリＸの送信元アドレス１７２３、送信元ポート番号１７２４、宛先アドレス１７２５及び宛先ポート番号１７２６と同じ値を送信元アドレス１７０２、送信元ポート番号１７０３、宛先アドレス１７０４及び宛先ポート番号１７０５に含む、セッション管理テーブル２２３のエントリを読み出す。
【０１８７】
ステップ５０５の後、セッション管理部２１７は、ステップ５０５において読み出されたセッション管理テーブル２２３のエントリの開始時刻１７０９に、ステップ５０６における時刻を、新システム１０４におけるセッションの開始時刻として格納する（ステップ５０６）。また、ステップ５０６において新システムログ取得部２１６は、後述するステップ５０７において送信されるコネクションに関するデータを示す値を、新システムログ２２２に格納する。
【０１８８】
ステップ５０６の後、通信処理部２１１は、エントリＸが示す送信元アドレス１７２３、送信元ポート番号１７２４、宛先アドレス１７２５、宛先ポート番号１７２６、コマンド１７２８及びデータ１７２９に基づいて、新システム１０４とテスト支援ツール１００とのコネクションを確立する（ステップ５０８）。具体的には、エントリＸが示す値に基づいて、新システム１０４へコネクションに関するデータを送信する。なお、本実施形態に例において、現行システム１０２と新システム１０４とのアドレスは同じであり、端末１０３とテスト支援ツール１００とのアドレスは同じである。
【０１８９】
ステップ５０８によって、現行システム１０２及び端末１０３間で確立されたセッションに対応する、新システム１０４及びテスト支援ツール１００間のセッションが確立される。ステップ５０８の後、ステップ５０２が実行される。
【０１９０】
ステップ５０４において、エントリＸがコネクションに関するデータを示さないと判定された場合、セッション管理部２１７は、エントリＸにセッション情報が含まれているか否かを判定する（ステップ５１０）。
【０１９１】
ステップ５１０においてセッション管理部２１７は、ステップ３０２においてメモリ２００に読み出されたサービスプロファイル２２０のエントリのセッション識別１６０４、セッションキー１６０５、及び、モジュール名１６０６を用いて、エントリＸのデータ１７２９からセッション情報を検出する。そして、セッション管理部２１７は、セッション情報がデータ１７２９から検出された場合、エントリＸがセッション情報を含むと判定する。
【０１９２】
ステップ５１０において、エントリＸにセッション情報が含まれていないと判定された場合、エントリＸが示すデータによって、新システム１０４及びテスト支援ツール１００間のセッションは変更されず。セッション管理部２１７は、セッション管理テーブル２２３を更新する必要がない。このため、ステップ５１０の後、ステップ５１３が実行される。
【０１９３】
ステップ５１０において、エントリＸにセッション情報が含まれると判定された場合、エントリＸは、端末１０３から現行システム１０２へセッション情報を送信するためのデータである。このため、セッション管理部２１７は、エントリＸのセッションＩＤ１７２２の値を現行セッションＩＤ１７０１に含む、セッション管理テーブル２２３のエントリを読み出す（ステップ５１１）。
【０１９４】
ステップ５１１の後、セッション管理部２１７は、ステップ５１１において読み出されたセッション管理テーブル２２３のエントリの新セッションＩＤ１７０８から、新システム１０４によって割り当てられた新セッションＩＤを取得する。そして、セッション管理部２１７は、エントリＸに含まれるデータ１７２９のセッションＩＤ（すなわち、現行セッションＩＤ）を、取得された新セッションＩＤに置き換える（ステップ５１２）。
【０１９５】
なお、前述のとおり、ステップ５１２におけるエントリＸは、現行システム１０２によってセッションＩＤが割り当て済みのセッションを用いて、端末１０３から現行システム１０２へセッション情報を送信するためのデータである。このため、エントリＸが示す現行システム１０２におけるセッションには、後述する図１０の処理によって、新システム１０４におけるセッションが既に対応付けられている。その結果、ステップ５１２において、新セッションＩＤ１７０８には既に値が格納されており、セッション管理部２１７は、新セッションＩＤ１７０８を取得することができる。
【０１９６】
ステップ５１０又はステップ５１２の後、新システム送信処理部２１４は、エントリＸが含む値によって新システム１０４へ送信するデータを生成し、生成されたデータを新システム１０４へ送信する（ステップ５１３）。ステップ５１３の後、新システムログ取得部２１６は、新システム１０４へ送信したデータの値を、新システムログ２２２に格納する（ステップ５１４）。
【０１９７】
具体的には、ステップ５１４において新システムログ取得部２１６は、新システム１０４へ送信したデータに基づいて、送信元アドレス１７２３、送信元ポート番号１７２４、宛先アドレス１７２５、及び、宛先ポート番号１７２６の値を、新システムログ２２２の新たに生成されたエントリに格納する。また、新システムログ取得部２１６は、新たに生成されたエントリの時刻１７２１に、ステップ５１３においてデータを送信した時刻を格納する。
【０１９８】
ステップ５１４の後、系切替処理部２１９は、ユーザから系切替を指示されたか否かを判定する（ステップ５１５）。系切替処理部２１９は、ユーザによって予め指定された条件を満たした場合、ユーザから系切替を指示されたと判定してもよい。
【０１９９】
ステップ５１５において、系切替処理部２１９がユーザから系切替を指示されていないと判定された場合、現行システムログ取得部２１３は、現行システムログ２２１の１エントリを読み出す（ステップ５０２）。これは、新システム１０４へのデータの送信を継続するためである。
【０２００】
ステップ５１５において、系切替処理部２１９がユーザから系切替を指示されたと判定された場合、図９に示す処理は終了する。
【０２０１】
図９に示す処理によって、端末１０３から現行システム１０２へ送信されたデータと同じ内容のデータが、テスト支援ツール１００から新システム１０４へ送信される。また、セッション管理テーブル２２３が、現行システム１０２におけるセッションＩＤと新システム１０４におけるセッションＩＤとを対応させて保持することによって、端末１０３から現行システム１０２へ送信されたデータのうち、セッションＩＤのみを置き換えたデータを、新システム１０４へ送信できる。
【０２０２】
そして、これによって、現行システム１０２が端末１０３から送信されたデータによって行う処理と、新システム１０４がテスト支援ツール１００から送信されたデータによって行う処理とを比較することができる。
【０２０３】
図１０は、本発明の第１の実施形態の現行システム１０２によってＷｅｂサービスが提供される場合における、テスト支援ツール１００が新システム１０４からデータを受信する処理を示すフローチャートである。
【０２０４】
図９に示すステップ５０３において、エントリＸが端末１０３から送信されたデータではなく、現行システム１０２から送信されたデータを示す場合、図１０に示す処理が開始される。
【０２０５】
図１０の処理が開始された場合、現行システムログ取得部２１３は、エントリＸがコネクション切断データを示すか否かを判定する（ステップ６０１）。現行システムログ取得部２１３は、ステップ５０４と同様に、例えば、エントリＸのコマンド１７２８にコネクションの切断を要求するＦＩＮフラグが含まれている場合、エントリＸがコネクション切断データを示すと判定する。
【０２０６】
エントリＸがコネクション切断データを示す場合、ステップ５０２が実行され、現行システムログ２２１の新たなエントリが読み出される。これは、コネクション切断データが現行システム１０２から端末１０３に送信される場合においても、新システム１０４からコネクション切断データが送信されない場合があるため、現行システム１０２及び端末１０３間のコネクションの切断と、新システム１０４及びテスト支援ツール１００間のコネクションの切断とを同期する必要がないためである。
【０２０７】
エントリＸがコネクション切断データを示さない場合、新システム受信処理部２１５は、新システム１０４から何らかのデータを受信するか否かを判定する（ステップ６０２）。ステップ６０２によって、新システム受信処理部２１５は、新システム１０４から送信されるデータを待つ。
【０２０８】
ステップ６０２において新システム１０４から何らかのデータを受信した場合、新システム受信処理部２１５は、受信したデータがコネクション切断データであるか否かを判定する（ステップ６０３）。新システム受信処理部２１５は、例えば、受信したデータのヘッダにコネクションの切断を要求するＦＩＮフラグが含まれている場合、受信したデータがコネクション切断データを示すと判定する。
【０２０９】
受信したデータがコネクション切断データではない場合、ステップ６０４が実行される。受信したデータがコネクション切断データである場合、ステップ６０９が実行される。
【０２１０】
ステップ６０２において新システム１０４から受信したデータがコネクション切断データではない場合、セッション管理部２１７は、新システム１０４から受信したデータがセッション情報を含むか否かを判定する（ステップ６０４）。セッション管理部２１７は、図７に示すステップ３０２においてメモリ２００に読み出されたサービスプロファイル２２０のエントリのセッション識別１６０４、セッションキー１６０５、及び、モジュール名１６０６を用いて、新システム１０４から受信したデータのデータ部からセッション情報を検出する。そして、セッション管理部２１７は、セッション情報がデータ部から検出された場合、新システム１０４から受信したデータがセッション情報を含むと判定する。
【０２１１】
ステップ６０４において、新システム１０４から受信したデータがセッション情報を含まないと判定された場合、新システム１０４から受信したデータは、セッションを変更するためのデータではない。そして、セッション管理部２１７は、セッション管理テーブル２２３を更新する必要がないため、ステップ６０７が実行される。
【０２１２】
ステップ６０４において、新システム１０４から受信したデータがセッション情報を含むと判定された場合、新システム１０４から受信したデータは、セッションＩＤを割り当てるためのデータである可能性が高い。このため、セッション管理部２１７は、セッション管理テーブル２２３を読み出す（ステップ６０５）。
【０２１３】
ステップ６０５の後、セッション管理部２１７は、新システム１０４から受信したデータに含まれるセッション情報が、セッション管理テーブル２２３に保持されているか否かを判定する（ステップ６０６）。セッション管理部２１７は、新システム１０４から受信したデータのデータ部に含まれるセッションＩＤの値を、新セッションＩＤ１７０８に含むエントリがセッション管理テーブル２２３にある場合、新システム１０４から受信したデータに含まれるセッション情報が、セッション管理テーブル２２３に保持されていると判定する。
【０２１４】
新システム１０４から受信したデータに含まれるセッション情報が、セッション管理テーブル２２３に保持されていると判定された場合、新システム１０４から受信したデータは、テスト支援ツール１００と新システム１０４との間で既に確立したセッションに関するデータである。このため、セッション管理部２１７はセッション管理テーブル２２３を更新する必要がない。このため、ステップ６０６において新システム１０４から受信したデータに含まれるセッション情報がセッション管理テーブル２２３に保持されていると判定された場合、ステップ６０７が実行される。
【０２１５】
ステップ６０４又はステップ６０６の後、新システムログ取得部２１６は新システムログ２２２に、新システム１０４から受信したデータを示す値を追加する（ステップ６０７）。
【０２１６】
具体的には、ステップ６０７において新システムログ取得部２１６は、新システム１０４から受信したデータに基づいて、送信元アドレス１７２３、送信元ポート番号１７２４、宛先アドレス１７２５、及び、宛先ポート番号１７２６の値を、新システムログ２２２の新たに生成されたエントリに格納する。また、新システムログ取得部２１６は、新たに生成されたエントリの時刻１７２１に、ステップ６０２において新システム１０４からデータを受信した時刻を格納する。
【０２１７】
ステップ６０６において、新システム１０４から受信したデータに含まれるセッション情報はセッション管理テーブル２２３に保持されていないと判定された場合、新システム１０４から受信したデータは、新システム１０４によって割り当てられたセッションＩＤをテスト支援ツール１００に送信するためのデータであり、テスト支援ツール１００と新システム１０４とのセッションを確立するためのデータである。このため、セッション管理部２１７は、セッション管理テーブル２２３から現行システム１０２におけるセッションを示すエントリを抽出し、抽出されたエントリの新セッションＩＤ１７０８に、新システム１０４から受信したデータに含まれるセッションＩＤを格納する（ステップ６０８）。
【０２１８】
ステップ６０８においてセッション管理部２１７は、新システム１０４から受信したデータの宛先アドレス及び宛先ポート番号を、送信元アドレス１７０２及び送信元ポート番号１７０３に含むセッション管理テーブル２２３のエントリを特定する。そして、セッション管理部２１７は、特定されたセッション管理テーブル２２３のエントリの新セッションＩＤ１７０８に、新システム１０４から受信したデータに含まれるセッションＩＤを格納する。
【０２１９】
なお、新システム１０４から受信したデータが、テスト支援ツール１００及び新システム１０４間のセッションを確立するためのデータである場合、新システム１０４から受信したデータを示す値をセッション管理テーブル２２３に格納することによって、現行システム１０２及び端末１０３間のセッションと新システム１０４及びテスト支援ツール１００間のセッションとが対応付けられる。
【０２２０】
ステップ６０７又はステップ６０８の後、ステップ５０２が実行され、現行システムログ２２１の新たなエントリが読み出される。
【０２２１】
ステップ６０３において、新システム１０４から受信したデータがコネクション切断データであると判定された場合、セッション管理部２１７は、セッション管理テーブル２２３を読み出す（ステップ６０９）。これは、テスト支援ツール１００と新システム１０４とのコネクションを切断するべきか否かを判定するためである。
【０２２２】
ステップ６０９の後、セッション管理部２１７は、読み出されたセッション管理テーブル２２３に基づいて、新システム１０４から受信したデータのセッションに対応する、現行システム１０２及び端末１０３間のセッションが既に終了しているか否かを判定する（ステップ６１０）。
【０２２３】
ステップ６１０においてセッション管理部２１７は、新システム１０４から受信したデータに含まれる宛先アドレス及び宛先ポート番号と同じ値を、送信元アドレス１７０２及び送信元ポート番号１７０３に含むエントリを、セッション管理テーブル２２３から抽出する。そして、抽出されたエントリの終了時刻１７０７を参照し、値が格納されている場合、現行システム１０２及び端末１０３間のセッションが既に終了していると判定する。
【０２２４】
ステップ６１０において、新システム１０４から受信したデータのセッションに対応する現行システム１０２及び端末１０３間のセッションが既に終了していると判定された場合、新システム１０４によるセッションは切断されてもよいため、通信処理部２１１は、新システム１０４にセッションの切断を許可するデータを送信する。
【０２２５】
なお、ステップ６１０において、新システム１０４にセッションの切断を許可するデータを送信した場合、セッション管理部２１７は、セッション管理テーブル２２３に終了時刻１７１０に終了時刻を格納する。終了時刻１７１０に格納する終了時刻には、新システム１０４によるセッションが切断された時刻が格納される。
【０２２６】
また、ステップ６１０において、新システム１０４にセッションの切断を許可するデータを送信した場合、新システムログ取得部２１６は、ステップ６０２において新システム１０４から受信したデータを示す値を、新システムログ２２２に格納する。
【０２２７】
ステップ６１０において、新システム１０４にセッションの切断を許可するデータを送信された後、ステップ６１３が実行される。
【０２２８】
ステップ６１０において、新システム１０４から受信したデータのセッションに対応する現行システム１０２及び端末１０３間のセッションが終了していないと判定された場合、新システム送信処理部２１４は、新システム１０４から受信したコネクション切断データの送信先アドレス（すなわち、テスト支援ツール１００）と、新システム１０４とのコネクションを再度確立するため、新システム１０４にコネクションを確立するためのデータを送信する（ステップ６１１）。これは、現行システム１０２及び端末１０３間で確立されたセッションと、新システム１０４及びテスト支援ツール１００間で確立されたセッションとの同期を図るためである。
【０２２９】
ステップ６１１の後、セッション管理部２１７は、新システム１０４によって確立されたコネクションの情報を、セッション管理テーブル２２３に格納する（ステップ６１２）。具体的には、ステップ６１２においてセッション管理部２１７は、ステップ６１１において再度確立されたコネクションに用いられるテスト支援ツール１００のポート番号によって、ステップ６１０において抽出されたセッション管理テーブル２２３のエントリの、送信元ポート番号１７０３を更新する。
【０２３０】
ステップ６１０又はステップ６１２の後、系切替処理部２１９は、ステップ５１５と同じく、ユーザから系切替を指示されているか否かを判定する（ステップ６１３）。ユーザから系切替が指示されなかった場合、ステップ５０２が実行される。ユーザから系切替が指示された場合、図１０に示す処理を終了する。
【０２３１】
図１１〜図１３に示す処理は、ＦＴＰサービス等の、アドレス及びポート番号によってセッションを識別するサービスが現行システム１０２によって提供されている場合の処理である。
【０２３２】
図１１は、本発明の第１の実施形態の現行システム１０２によってＦＴＰサービスが提供される場合における、現行システム１０２及び端末１０３間の通信データをテスト支援ツール１００が受信する処理を示すフローチャートである。
【０２３３】
図１１に示す処理は、図７のステップ３０５に対応する。
【０２３４】
図１１において、サービス管理部２３０は、ステップ４０１と同じく、スイッチ管理テーブル２２５に格納される接続情報を取得する（ステップ７０１）。取得される接続情報は、例えば、現行システム１０２のアドレス１９０６、及び、ポート番号１９１１等である。
【０２３５】
ステップ７０１の後、サービス管理部２３０は、ステップ４０２と同じく、ステップ７０１において取得された接続情報に従って、現行システム１０２及び端末１０３間で送受信されるデータを受信できるように、通信処理部２１１及びネットワークインタフェース２０５を初期化する。また、サービス管理部２３０は、受信するデータからセッション情報を検出するためのモジュールを、ステップ３０２において読み出されたサービスプロファイル２２０のモジュール名１６０６に初期化する（ステップ７０２）。
【０２３６】
図１１〜図１３に示す処理において、現行システム１０２及び新システム１０４はＦＴＰサービスを提供する。ＦＴＰサービスによるセッションは、一般的に、最初に確立される制御用ＴＣＰセッションによって管理される。さらに、ＦＴＰサービスが制御用ＴＣＰセッションによって確立された後、現行システム１０２から端末１０３にＴＣＰセッションが再度確立される場合がある。
【０２３７】
この場合、本実施形態において、現行システム１０２から再度確立されたＴＣＰセッションは、現行システム１０２（すなわち、ＦＴＰサーバ）から送信されたデータ通信に用いられるデータ用セッションであると判定される。すなわち、現行システム１０２から再度確立されたＴＣＰセッションは、現行システム１０２と端末１０３とがセッションを確立するための制御用ＴＣＰセッションに属するセッションと判定される。
【０２３８】
ステップ７０２の後、現行システム受信処理部２１２は、ステップ４０３と同じく、現行システム１０２に接続されるスイッチ１０１のポートとミラーリングされたポート、すなわち、本実施形態における７番ポートから、ネットワークインタフェース２０５及び通信処理部２１１がデータを受信するか否かを判定する（ステップ７０３）。７番ポートからデータを受信しない場合、現行システム受信処理部２１２は、７番ポートからデータを受信するのを待つ。
【０２３９】
７番ポートからデータを受信した場合、現行システム受信処理部２１２は、ステップ４０４と同じく、受信したデータがコネクションに関するデータか否かを判定する（ステップ７０４）。現行システム受信処理部２１２は、ステップ７０４において、例えば、受信したデータのヘッダがＴＣＰのＳＹＮフラグを含む場合、受信したデータがコネクションに関するデータであると判定する。
【０２４０】
ステップ７０４において、受信したデータがコネクションに関するデータではないと判定された場合、コネクションに関するデータを示す値を現行システムログ２２１に格納するため、ステップ７０９が実行される。ここで、ＦＴＰサービスにおけるセッションは、セッションの両端のサーバ（本実施形態の端末１０３及び現行システム１０２、並びに、テスト支援ツール１００及び新システム１０４）のアドレス及びポート番号によって識別され、ＦＴＰサービスによるデータは、セッション情報の識別情報によって識別される必要がない。このため、セッション管理部２１７は、セッション管理テーブル２２３にセッション情報を格納する必要がない。
【０２４１】
ステップ７０４において、受信したデータがコネクションに関するデータであると判定された場合、セッション管理部２１７は、後述するステップ７０６の処理のため、セッション管理テーブル２２３を読み出す（ステップ７０５）。
【０２４２】
ステップ７０５の後、セッション管理部２１７は、ステップ４０６と同じく、ステップ７０３において受信したコネクションに関するデータから、端末１０３のアドレスを抽出する。そして、ステップ７０５において読み出されたセッション管理テーブル２２３の送信元アドレス１７０２に、抽出された端末１０３のアドレスが格納されているか否かを判定する（ステップ７０６）。
【０２４３】
具体的には、ステップ７０６においてセッション管理部２１７は、抽出されたアドレスがセッション管理テーブル２２３の送信元アドレス１７０２に格納されており、かつ、セッション管理テーブル２２３の終了時刻１７０７に値が格納されていない場合、抽出された端末１０３のアドレスがセッション管理テーブル２２３に格納されていると判定する。
【０２４４】
ステップ７０６において、コネクションに関するデータから抽出された端末１０３のアドレスが、セッション管理テーブル２２３の送信元アドレス１７０２に格納されていないと判定された場合、受信したコネクションに関するデータは、新しいセッションを確立するためのデータである。このため、セッション管理部２１７は、ステップ４０７と同じく、コネクションに関するデータのヘッダ情報に基づいて、セッション管理テーブル２２３に新たなエントリを追加する（ステップ７０７）。
【０２４５】
具体的には、ステップ７０７においてセッション管理部２１７は、セッション管理テーブル２２３に新たなエントリを生成する。そして、生成された新たなエントリの送信元アドレス１７０２、送信元ポート番号１７０３、宛先アドレス１７０４、及び、宛先ポート番号１７０５に、コネクションに関するデータのヘッダ情報に含まれる、送信元アドレス、送信元ポート番号、宛先アドレス、及び、宛先ポート番号を格納する。また、開始時刻１７０６に、ステップ７０３においてデータを受信した時刻を格納する。
【０２４６】
また、ステップ７０７において、現行システムログ取得部２１３は、現行システムログ２２１に、ステップ７０３において受信したコネクションに関するデータを示す値を格納する。
【０２４７】
ステップ７０７の後、図１１に示す処理が終了し、図７に示すステップ３０６が実行される。これは、ステップ７０７の後、現行システム１０２において新たなセッションが確立される。このため、現行システム１０２において新たなセッションが確立される際に、現行システム１０２におけるセッションに対応するセッションを、新システム１０４において確立するためである。
【０２４８】
ステップ７０７の後、ステップ３０６を実行することによって、本実施形態のテスト支援ツール１００は、現行システム１０２における処理と、新システム１０４における処理とを並行に実行することが可能である。
【０２４９】
ステップ７０６において、コネクションに関するデータから抽出された端末１０３のアドレスが、セッション管理テーブル２２３の送信元アドレス１７０２に格納されていると判定された場合、受信したコネクションに関するデータは、継続中のセッションにおいて送信されたコネクションに関するデータである。
【０２５０】
このため、セッション管理部２１７は、ステップ４０８と同じく、コネクションに関するデータから抽出された端末１０３のアドレスを送信元アドレス１７０２に含むセッション管理テーブル２２３のエントリを、コネクションに関するデータに含まれるヘッダ情報によって更新する（ステップ７０８）。
【０２５１】
具体的には、ステップ７０８において、セッション管理部２１７は、ステップ７０６においてコネクションに関するデータから抽出された端末１０３のアドレスを、送信元アドレス１７０２に含むエントリをセッション管理テーブル２２３から特定する。そして、セッション管理部２１７は、ステップ７０３において受信したデータにコネクションを確立するための値（例えば、ＳＹＮフラグ）が含まれている場合、特定されたエントリの送信元ポート番号１７０３を、コネクションに関するデータのヘッダ情報に含まれる、送信元のポート番号によって更新する。
【０２５２】
また、ステップ７０８においてセッション管理部２１７は、ステップ７０３において受信したデータに、コネクションを切断することを示す値（例えば、ＦＩＮフラグ）が含まれている場合、ステップ４０３においてデータを受信した時刻を、特定されたエントリの終了時刻１７０７に格納する。
【０２５３】
ステップ７０８によって、セッション管理テーブル２２３は、最新のセッションに従って更新される。
【０２５４】
ステップ７０４又はステップ７０８の後、現行システムログ取得部２１３は、ステップ７０３において受信したデータを示す値を、現行システムログ２２１に格納する（ステップ７０９）。
【０２５５】
具体的には、ステップ７０９において現行システムログ取得部２１３は、ステップ７０３において受信したデータに基づいて、送信元アドレス１７２３、送信元ポート番号１７２４、宛先アドレス１７２５、及び、宛先ポート番号１７２６の値を、現行システムログ２２１の新たに生成されたエントリに格納する。また、現行システムログ取得部２１３は、新たに生成されたエントリの時刻１７２１に、ステップ７０３においてデータを受信した時刻を格納する。
【０２５６】
ステップ７０９の後、系切替処理部２１９は、ステップ４１４と同じく、ユーザから系切替を指示されたか否かを判定する（ステップ７１０）。ステップ７１０において系切替指示がないと判定された場合、ステップ７０３が実行される。また、ステップ７１０において系切替指示があると判定された場合、図１１に示す処理が終了し、図７に示すステップ３０６が実行される。
【０２５７】
なお、図１１に示す処理によって生成される現行システムログ２２１は、ＦＴＰサービスの現行システムログ２２１として生成されてもよい。これによって、図１１と並行して図８に示す処理が行われても、Ｗｅｂサービスの現行システムログ２２１とＦＴＰサービスの現行システムログ２２１とを識別できる。
【０２５８】
図１２及び図１３は、ステップ３０６の新システム通信処理を示す。
【０２５９】
図１２は、本発明の第１の実施形態の現行システム１０２によってＦＴＰサービスが提供される場合における、テスト支援ツール１００が新システム１０４へデータを送信する処理を示すフローチャートである。
【０２６０】
図１１に示す処理が終了した後、サービス管理部２３０は、ステップ５００と同じく、スイッチ管理テーブル２２５に格納される接続情報を取得する（ステップ８００）。取得される接続情報は、例えば、端末１０３のポート番号１９０１及びアドレス１９１６、並びに、新システム１０４のアドレス１９１６である。
【０２６１】
ステップ８００の後、サービス管理部２３０は、取得された接続情報に従って、新システム１０４とテスト支援ツール１００とによってデータを送受信できるように、通信処理部２１１及びネットワークインタフェース２０５を初期化する（ステップ８０１）。具体的には、新システム１０４が各端末１０３に送信したデータを、テスト支援ツール１００の各ポートが受信するように初期化する。
【０２６２】
ステップ８０１の後、現行システムログ取得部２１３は、現行システムログ２２１に含まれる１エントリをメモリ２００に読み出す（ステップ８０２）。以下、ステップ８０２において現行システムログ２２１から読み出されたエントリをエントリＹと記載する。
【０２６３】
なお、現行システム１０２によってＷｅｂサービス及びＦＴＰサービスが提供される場合、ステップ８０２において現行システムログ取得部２１３は、ＦＴＰサービスのデータに関する現行システムログ２２１のエントリ、すなわち、図１１に示す処理によって生成された現行システムログ２２１のエントリを読み出す。
【０２６４】
ステップ８０２の後、現行システムログ取得部２１３は、送信元アドレス１７２３を参照することによって、エントリＹが端末１０３から送信されたデータを示すエントリであるか否かを判定する（ステップ８０３）。エントリＹが端末１０３から送信されたデータではなく、現行システム１０２から送信されたデータを示す場合、図１３に示す処理が実行される。
【０２６５】
エントリＹが端末１０３から送信されたデータを示す場合、現行システムログ取得部２１３は、エントリＹがコネクション設定データを示すか否かを判定する（ステップ８０４）。現行システムログ取得部２１３は、エントリＹのコマンド１７２８に、コネクションの確立を要求するフラグ（例えば、ＳＹＮ）が含まれている場合、エントリＹがコネクション設定データを示すと判定する。
【０２６６】
ステップ８０４において、エントリＹがコネクション設定データを示すと判定された場合、セッション管理部２１７は、セッション管理テーブル２２３のエントリをメモリ２００に読み出す（ステップ８０５）。具体的には、ステップ８０５においてセッション管理部２１７は、エントリＹの送信元アドレス１７２３と同じ値を送信元アドレス１７０２に含む、セッション管理テーブル２２３のエントリをメモリ２００に読み出す。
【０２６７】
ステップ８０５の後、セッション管理部２１７は、エントリＹの送信元ポート番号によって、ステップ８０５において読み出されたセッション管理テーブル２２３のエントリの送信元ポート番号１７０３を更新し、読み出されたエントリをセッション管理テーブル２２３に格納する（ステップ８０６）。また、ステップ８０６において新システムログ取得部２１６は、後述するステップ８０７において送信されるコネクションに関するデータを示す値を、新システムログ２２２に格納する。
【０２６８】
ステップ８０６の後、サービス管理部２３０は、ステップ８０６において更新されたセッション管理テーブル２２３のエントリの送信元アドレス１７０２、及び、送信元ポート番号１７０３に基づいて、新システム１０４及びテスト支援ツール１００間のコネクションを確立する（ステップ８０７）。これによって、現行システム１０２及び端末１０３間のコネクションに対応する新システム１０４及びテスト支援ツール１００間のコネクションが確立される。
【０２６９】
ステップ８０７の後、ステップ８０２が実行される。
【０２７０】
ステップ８０４において、エントリＹがコネクション設定データを示すと判定された場合、現行システムログ取得部２１３は、エントリＹがコネクション切断データを示すか否かを判定する（ステップ８０８）。現行システムログ取得部２１３は、エントリＹのコマンド１７２８に、コネクションの切断を要求するフラグ（例えば、ＦＩＮ）が含まれている場合、読み出されたエントリがコネクション切断データを示すと判定する。
【０２７１】
ステップ８０８において、エントリＹがコネクション切断データを示すと判定された場合、セッション管理部２１７は、セッション管理テーブル２２３のエントリをメモリ２００に読み出す（ステップ８０９）。具体的には、ステップ８０９においてセッション管理部２１７は、エントリＹの送信元アドレス１７２３と同じ値を送信元アドレス１７０２に含む、セッション管理テーブル２２３のエントリを読み出す。
【０２７２】
ステップ８０９の後、セッション管理部２１７は、ステップ８０９において読み出されたセッション管理テーブル２２３のエントリの終了時刻１７１０に値を格納する（ステップ８１０）。また、ステップ８１０において、通信処理部２１１は、ステップ８０９において読み出されたエントリに対応する新システム１０４におけるセッションを切断する。具体的には、新システム１０４へコネクション切断データを送信する。
【０２７３】
また、ステップ８１０において新システムログ取得部２１６は、新システム１０４へ送信されたコネクション切断データを示す値を、新システムログ２２２に格納する。
【０２７４】
ステップ８１０の後、系切替処理部２１９は、ステップ４１４と同じく、ユーザから系切替を指示されたか否かを判定する（ステップ８１５）。ユーザから系切替を指示されていない場合、ステップ８０３が実行される。ユーザから系切替を指示された場合、新システム１０４との通信処理を終了する。
【０２７５】
ステップ８０８において、エントリＹがコネクション切断データを示さないと判定された場合、現行システムログ取得部２１３は、エントリＹがデータ用セッションに関する情報を含むか否かを判定する（ステップ８１１）。現行システムログ取得部２１３は、例えば、エントリＹのデータ１７２９に”ＰＯＲＴ”で始まる文字列を含む場合、エントリＹがデータ用セッションに関する情報を含むと判定する。
【０２７６】
ステップ８１１において、エントリＹがデータ用セッションに関する情報を含まないと判定された場合、ステップ８１３が実行される。
【０２７７】
ステップ８１１において、エントリＹがデータ用セッションに関する情報を含むと判定された場合、セッション管理部２１７は、エントリＹに含まれる端末１０３のアドレスを、セッション管理テーブル２２３の送信元アドレス１７０２に含むセッション管理テーブル２２３のエントリを特定する。そして、セッション管理テーブル２２３の特定されたエントリの送信元アドレス１７０２及び送信元ポート番号１７０３の値によって、エントリＹのデータ１７２９に含まれる”ＰＯＲＴ”で始まる文字列を、更新する（ステップ８１２）。これによって、エントリＹを、テスト支援ツール１００及び新システム１０４間のデータ用セッション情報に更新する
ステップ８１１又はステップ８１２の後、新システム送信処理部２１４は、エントリＹを用いて、新システム１０４に送信するためのデータを生成し、生成されたデータを新システム１０４へ送信する（ステップ８１３）。なお、ステップ８１２の後のステップ８１３において、新システム送信処理部２１４は、データ１７２９を更新されたエントリＹを用いて、データを生成する。
【０２７８】
ステップ８１３の後、新システムログ取得部２１６は、ステップ８１３において新システム１０４へ送信されたデータを示す値を、新システムログ２２２に格納する（ステップ８１４）。
【０２７９】
具体的には、ステップ８１４において新システムログ取得部２１６は、新システム１０４へ送信したデータに基づいて、送信元アドレス１７２３、送信元ポート番号１７２４、宛先アドレス１７２５、及び、宛先ポート番号１７２６の値を、新システムログ２２２の新たに生成されたエントリに格納する。また、新システムログ取得部２１６は、新たに生成されたエントリの時刻１７２１に、ステップ８１３においてデータを送信した時刻を格納する。
【０２８０】
ステップ８１４の後、ステップ８０２が実行される。
【０２８１】
図１３は、本発明の第１の実施形態の現行システム１０２によってＦＴＰサービスが提供される場合における、新システム１０４がテスト支援ツール１００へデータを送信する処理を示すフローチャートである。
【０２８２】
図１２に示すステップ８０３において、エントリＹが現行システム１０２から送信されたデータを示すエントリであると判定された場合、図１３に示す処理が開始される。新システム受信処理部２１５は、新システム１０４からデータを受信するか否かを判定する（ステップ９０１）。
【０２８３】
新システム受信処理部２１５は、ステップ９０１において、新システム１０４からデータを受信するまで待つ。新システム１０４からデータを受信した場合、新システム１０４から受信したデータがコネクション切断データであるか否かを判定する（ステップ９０２）。新システム受信処理部２１５は、ステップ８０８と同じく、新システム１０４から受信したデータに、例えばＦＩＮフラグが含まれている場合、新システム１０４から受信したデータがコネクション切断データであると判定する。
【０２８４】
新システム１０４から受信したデータがコネクション切断データではない場合、新システム受信処理部２１５は、コネクション設定データであるか否かを判定する（ステップ９０３）。新システム受信処理部２１５は、ステップ８０４と同じく、新システム１０４から受信したデータに、例えばＳＹＮフラグが含まれている場合、新システム１０４から受信したデータがコネクション設定データであると判定する。
【０２８５】
ステップ９０３において新システム１０４から受信したデータがコネクション設定データでないと判定された場合、ステップ９０４が実行される。
【０２８６】
ステップ９０２において新システム１０４から受信したデータがコネクション切断データであると判定された場合、又は、ステップ９０３において新システム１０４から受信したデータがコネクション設定データであると判定された場合、セッション管理部２１７は、受信したデータ（コネクション設定データ又はコネクション切断データ）をデータ用セッションによるデータとみなし、受信したデータに含まれる値によってセッション管理テーブル２２３のエントリを更新する（ステップ９０５）。
【０２８７】
具体的には、ステップ９０５においてセッション管理部２１７は、受信したデータに含まれる宛先アドレス及び宛先ポート番号を、送信元アドレス１７０２及び送信元ポート番号１７０３に含むセッション管理テーブル２２３のエントリを抽出する。そして、抽出されたエントリを、受信したデータに含まれる値によって更新する。例えば、受信したデータに含まれるポート番号によって、抽出されたエントリの宛先ポート番号１７０５を更新する。
【０２８８】
ステップ９０３又はステップ９０５の後、新システムログ取得部２１６は、受信したデータを示す値を新システムログ２２２に格納する（ステップ９０４）。
【０２８９】
具体的には、ステップ９０４において新システムログ取得部２１６は、新システム１０４から受信したデータに基づいて、送信元アドレス１７２３、送信元ポート番号１７２４、宛先アドレス１７２５、及び、宛先ポート番号１７２６の値を、新システムログ２２２の新たに生成されたエントリに格納する。また、新システムログ取得部２１６は、新たに生成されたエントリの時刻１７２１に、ステップ９０１において新システム１０４からデータを受信した時刻を格納する。
【０２９０】
ステップ９０４の後、ステップ８１５と同じく、系切替処理部２１９は、ユーザから系切替を指示されたか否かを判定する（ステップ９０６）。ユーザから系切替を指示されていない場合、ステップ９０１が実行される。ユーザから系切替を指示された場合、図１３に示す処理が終了する。
【０２９１】
図１４は、本発明の第１の実施形態の差分抽出処理を示すフローチャートである。
【０２９２】
図１４に示す処理は、図７のステップ３０８に示す処理である。
【０２９３】
テスト支援ツール１００の差分抽出処理部２１８は、現行システムログ２２１から、セッションごとに複数のエントリを読み出す（ステップ１０００）。具体的には、差分抽出処理部２１８は、セッションＩＤ１７２２に同じ値を含む現行システムログ２２１のエントリを読み出す。また、セッションＩＤ１７２２に値が格納されていない場合、送信元アドレス１７２３、送信元ポート番号１７２４、宛先アドレス１７２５及び宛先ポート番号１７２６に格納される値の組合せが同じ、現行システムログ２２１のエントリを読み出す。
【０２９４】
ステップ１０００の後、差分抽出処理部２１８は、現行システムログ２２１から読み出されたエントリからセッションＩＤ１７２２、又は、送信元アドレス１７２３、送信元ポート番号１７２４、宛先アドレス１７２５及び宛先ポート番号１７２６に格納される値の組合せを取得する（ステップ１００１）。
【０２９５】
ステップ１００１においてセッションＩＤ１７２２が取得された場合、ステップ１００１の後、差分抽出処理部２１８は、セッション管理テーブル２２３を参照し、ステップ１００１において取得されたセッションＩＤ１７２２と同じ値を現行セッションＩＤ１７０１に含むエントリの新セッションＩＤ１７０８を特定する。そして、特定された新セッションＩＤ１７０８を、セッションＩＤ１７２２に含む新システムログ２２２のエントリを読み出す。
【０２９６】
また、ステップ１００１において、送信元アドレス１７２３、送信元ポート番号１７２４、宛先アドレス１７２５及び宛先ポート番号１７２６に格納される値の組合せが取得された場合、差分抽出処理部２１８は、取得された組合せを、送信元アドレス１７２３、送信元ポート番号１７２４、宛先アドレス１７２５及び宛先ポート番号１７２６に含む新システムログ２２２のエントリを読み出す（ステップ１００２）。
【０２９７】
ステップ１００１及びステップ１００２において読み出されるエントリは、各々少なくとも一つ以上である。差分抽出処理部２１８は、ステップ１０００及びステップ１００２において読み出された現行システムログ２２１及び新システムログ２２２から、時刻１７２１の順にそれぞれ一行抽出する（ステップ１００３）。
【０２９８】
ステップ１００３の後、差分抽出処理部２１８は、ステップ１００３において抽出された二つのエントリのデータ１７２９を比較し、二つのデータ１７２９が同じであるか否かを判定する（ステップ１００４）。
【０２９９】
なお、差分抽出処理部２１８は、例えば、データ１７２９に含まれるＨＴＴＰのヘッダフィールドの”Ｄａｔｅ”、”Ｌａｓｔ−Ｍｏｄｉｆｉｅｄ”、又は、セッションＩＤ等、予め異なることが分かっており、差分情報として比較する必要のないデータを、あらかじめサービスプロファイル２２０に保持しておいてもよい。そして、ステップ１００４における二つのデータ１７２９の比較の結果、前述のような、比較する必要のないデータが二つのデータ１７２９間の相違点として検出される場合も、差分抽出処理部２１８は、サービスプロファイル２２０を参照することによって、二つのデータ１７２９に相違はないと判定してもよい。
【０３００】
ステップ１００４において、二つのデータ１７２９が相違すると判定された場合、差分抽出処理部２１８は、二つのデータ１７２９を、差分情報として差分情報テーブル２２４に格納する（ステップ１００６）。
【０３０１】
ステップ１００４において、二つのデータ１７２９が同じであると判定された場合、又は、ステップ１００６の後、差分抽出処理部２１８は、ステップ１０００〜ステップ１００２において読み出された現行システムログ２２１及び新システムログ２２２の各エントリを、すべて比較し終えたか否かを判定する（ステップ１００７）。
【０３０２】
読み出された現行システムログ２２１及び新システムログ２２２の各エントリに比較していないエントリがある場合、差分抽出処理部２１８は、ステップ１００３に戻る。また、読み出された現行システムログ２２１及び新システムログ２２２の各エントリをすべて比較した場合、図１４に示す処理を終了する。
【０３０３】
なお、ステップ１０００において読み出されたエントリ以外に、現行システムログ２２１にエントリが格納されている場合、差分抽出処理部２１８は、すべてのエントリがステップ１００３〜ステップ１００７の処理を実行されるまで、図１４に示す処理を繰り返してもよい。
【０３０４】
図１４に示す処理によって、差分情報テーブル２２４に、現行システムログ２２１と新システムログ２２２との差分情報が格納される。
【０３０５】
図１５は、本発明の第１の実施形態の系切替処理を示すフローチャートである。
【０３０６】
図１５に示す処理は、図７のステップ３１１に示す処理である。
【０３０７】
系切替処理部２１９は、まず、系切替処理を行うための条件を示す情報を初期化する（ステップ１１００）。具体的には、ステップ１１００において系切替処理部２１９は、例えば、ステップ３０８において抽出された差分情報の数の所定の閾値を読み出す。また、ユーザによってあらかじめ入力された系切替処理の条件を読み出す。読み出された閾値又は条件を保持することによって、系切替処理を行うための条件を示す情報を初期化する。
【０３０８】
ステップ１１００において初期化された情報に基づいて、系切替処理部２１９が系切替を実行すると判定した場合、セッション管理部２１７は、セッション管理テーブル２２３を読み出す（ステップ１１０１）。
【０３０９】
ステップ１１０１の後、セッション管理部２１７は、現行システム１０２に継続中のセッションがあるか否かを判定する（ステップ１１０２）。セッション管理部２１７は、セッション管理テーブル２２３の終了時刻１７０７にすべて値が格納されている場合、現行システム１０２に継続中のセッションはないと判定する。
【０３１０】
ステップ１１０２において、現行システム１０２に継続中のセッションがあると判定された場合、系切替処理部２１９は、セッション管理テーブル２２３のすべてのエントリの終了時刻１７０７に値が格納されるまで、ステップ１１０３以降の処理の実行を待つ。なお、ステップ１１０２において、現行システム１０２に継続中のセッションがあると判定された場合、ステップ３０５が実行されてもよい。
【０３１１】
ステップ１１０２によって、現行システム１０２におけるセッションがすべて終了した後に、現行システム１０２から新システム１０４への切替処理が開始される。
【０３１２】
ステップ１１０２において、現行システム１０２に継続中のセッションがないと判定された場合、系切替処理部２１９は、現行システム受信処理部２１２に系切替を指示する（ステップ１１０３）。これによって、現行システム１０２及び端末１０３間において通信されるデータに、図３のステップ３０５〜ステップ３０８の処理を行うことを停止する。
【０３１３】
ステップ１１０３の後、系切替処理部２１９は、スイッチ管理テーブル２２５を読み出す（ステップ１１０４）。ステップ１１０４の後、系切替処理部２１９は、現行システム１０２と端末１０３とが相互に通信するためのスイッチ１０１におけるポート（１番ポート）を無効化（“ＯＦＦ”）するための指示を、スイッチ管理テーブル２２５を参照することによって生成する。そして、生成された指示をスイッチ１０１に送信する。これによって、系切替処理部２１９は、現行システム１０２に接続されるスイッチ１０１のポートを無効化する（ステップ１１０５）。
【０３１４】
ステップ１１０５の後、系切替処理部２１９は、テスト支援ツール１００に接続されるスイッチ１０１におけるポート（７番ポート）に割り当てられたミラーリングを解除するための指示を、スイッチ管理テーブル２２５を参照することによって生成する。そして、生成された指示をスイッチ１０１に送信する。これによって、系切替処理部２１９は、テスト支援ツール１００に接続されるスイッチ１０１におけるポートのミラーリングを解除する（ステップ１１０６）。
【０３１５】
ステップ１１０６の後、セッション管理部２１７は、新システム１０４に継続中のセッションがあるか否かを判定する（ステップ１１０７）。セッション管理部２１７は、セッション管理テーブル２２３のすべての終了時刻１７１０に値が格納されている場合、新システム１０４に継続中のセッションはないと判定する。
【０３１６】
ステップ１１０７において、継続中のセッションがあると判定された場合、セッション管理部２１７は、セッション管理テーブル２２３のすべてのエントリの終了時刻１７１０に値が格納されるまで、ステップ１１０８以降の処理の実行を待つ。なお、ステップ１１０７において、新システム１０４に継続中のセッションがあると判定された場合、ステップ３０６が実行されてもよい。
【０３１７】
ステップ１１０７によって、新システム１０４におけるセッションがすべて終了した後に、新システム１０４によって端末１０３にサービスが提供される。
【０３１８】
ステップ１１０７において、新システム１０４に継続中のセッションがないと判定された場合、系切替処理部２１９は、新システム１０４に接続されるスイッチ１０１におけるポート（６番ポート）を有効化（“ＯＮ”）する指示を、スイッチ管理テーブル２２５を参照することによって生成する。そして、生成された指示をスイッチ１０１に送信する。これによって、系切替処理部２１９は、新システム１０４に接続されるスイッチ１０１におけるポートを無効化する（ステップ１１０８）。
【０３１９】
ステップ１１０８の後、系切替処理部２１９は、ステップ１１０５、ステップ１１０６及びステップ１１０８における処理に従って、スイッチ管理テーブル２２５を更新する（ステップ１１０９）。
【０３２０】
ステップ１１０９の後、系切替処理部２１９は、テスト支援ツール１００をスイッチ１０１から切り離す。そして、テスト支援ツール１００に接続される新システム１０４におけるネットワークＩ／Ｆをダウンさせるよう、新システム１０４に指示する（ステップ１１１０）。
【０３２１】
図１５に示す処理によって、現行システム１０２におけるセッションがすべて終了した場合、端末１０３へサービスを提供するシステムが、現行システム１０２から新システム１０４へ切り替わることができる。
【０３２２】
第１の実施形態によれば、現行システム１０２へ入力されたデータに相当するデータを、新システム１０４へ入力することによって、現行システム１０２への入力データ及び現行システム１０２からの出力データと、新システム１０４への入力データ及び新システム１０４からの出力とを比較することができる。これによって、現行システム１０２と新システム１０４とのシステムの相違点を検証することができる。
【０３２３】
また、第１の実施形態によれば、現行システム１０２において新たなセッションが確立される毎に、新システム１０４においても新たなセッションを確立することによって、現行システム１０２と新システム１０４とを並行に稼動させることができる。
【０３２４】
また、第１の実施形態によれば、テスト支援ツール１００がすべてのセッションの終了時刻を保持することによって、すべてのセッションが終了した後に、現行システム１０２から新システム１０４への系切替を開始することができる。
【０３２５】
また、第１の実施形態によれば、Ｗｅｂサービスなど、セッション情報をデータ部に含むデータを送信するサービスが、現行システム１０２及び新システム１０４によって提供される場合、テスト支援ツール１００が、現行システム１０２のセッション情報と新システム１０４のセッション情報とを対応させて保持する。これによって、現行システム１０２へ入力されるデータを、新システム１０４へ入力するデータに更新することができる。
【０３２６】
（第２の実施形態）
第２の実施形態におけるテスト支援ツール１００は、系切替処理の前後において負荷分散装置に系切替を通知する。
【０３２７】
図１６は、本発明の第２の実施形態のテスト支援システムの構成を示すブロック図である。
【０３２８】
第２の実施形態のテスト支援システムは、テスト支援ツール１００、複数のスイッチ１０１（１０１−１〜１０１−ｎ）、複数の現行システム１０２（１０２−１〜１０２−ｎ）、複数の端末１０３及び新システム１０４を備える。第２の実施形態のテスト支援ツール１００、スイッチ１０１、現行システム１０２、端末１０３及び新システム１０４は、第１の実施形態のテスト支援ツール１００、スイッチ１０１、現行システム１０２、端末１０３及び新システム１０４と同じ機能を有する。
【０３２９】
第２の実施形態のテスト支援システムは、さらに、負荷分散装置（以下、ＬＢ）１２００を備える。ＬＢ１２００は、端末１０３にサービスを提供するシステムを、複数の現行システム１０２のうちのいずれかに振り分ける。
【０３３０】
ＬＢ１２００は、複数の端末１０３とネットワークを介して接続され、複数のスイッチ１０１に接続される。第２の実施形態の新システム１０４は、スイッチ１０１−１に接続される。また、現行システム１０２−１は、スイッチ１０１−１に接続される。
【０３３１】
図１７は、本発明の第２の実施形態のＬＢ１２００を示すブロック図である。
【０３３２】
ＬＢ１２００は、メモリ１３００、プロセッサ１３０１、蓄積装置１３０２、入力装置１３０３、出力装置１３０４、及び、ネットワークインタフェース１３０５を備える。これらの機能部は、バス１３０６を介して接続される。
【０３３３】
メモリ１３００は、負荷分散ソフトウェア１３１０を保持する。プロセッサ１３０１は、メモリ１３００に保持されるソフトウェアを実行する。蓄積装置１３０２は、データ及びプログラムを保持する。入力装置１３０３は、キーボード又はマウス等である。出力装置１３０４は、ディスプレイ等である。ネットワークインタフェース１３０５は、ネットワーク及びスイッチ１０１に接続するためのインタフェースである。
【０３３４】
負荷分散ソフトウェア１３１０は、通信処理部１３１１、移行処理部１３１２、負荷分散処理部１３１６、及び、設定情報１３１７を有する。設定情報１３１７は蓄積装置１３０２に保持され、負荷分散ソフトウェア１３１０の実行に伴い、適宜、メモリ１３００に読み出される。
【０３３５】
通信処理部１３１１は、端末１０３及び現行システム１０２と、ネットワークインタフェース１３０５を介してデータを送受信する。移行処理部１３１２は、現行システム１０２から新システム１０４への移行に対応して行われる、サービスの振り分け処理を示す情報を保持する。
【０３３６】
負荷分散処理部１３１６は、端末１０３に提供するサービスを、複数の現行システム１０２に振り分けて実行させる。設定情報１３１７は、いずれの現行システム１０２にいずれのサービスを実行させているかを示す情報を保持する。負荷分散処理部１３１６は、各現行システム１０２の状態を取得し、端末１０３との接続をどの現行システム１０２−１〜１０２−ｎに振り分けるかを決定する。
【０３３７】
図１８は、本発明の第２の実施形態のテスト支援ツール１００における系切替処理を示すフローチャートである。
【０３３８】
図１８に示す処理は、図７のステップ３１１のテスト支援ツール１００における系切替処理を示す。ステップ１１００〜ステップ１１１０は、図１５のステップ１１００〜ステップ１１１０と同じ処理である。
【０３３９】
ステップ１１０４の後、系切替処理部２１９は、ＬＢ１２００に、現行システム１０２−１の移行を開始する旨を通知（移行開始通知）する（ステップ１４００）。移行開始通知には、移行元のシステムの情報として、少なくとも、現行システム１０２−１のアドレスが含まれる。
【０３４０】
ステップ１１０９の後、系切替処理部２１９は、ＬＢ１２００に、新システム１０４と端末１０３とが接続された旨、すなわち、現行システム１０２−１の移行が終了した旨を通知（移行終了通知）する（ステップ１４０１）。移行終了通知には、移行先のシステムの情報として、少なくとも、新システム１０４のアドレスが含まれる。
【０３４１】
図１９は、本発明の第２の実施形態のＬＢ１２００における系切替処理を示すフローチャートである。
【０３４２】
移行処理部１３１２は、設定情報１３１７を読み出す（ステップ１５００）。ステップ１５００において読み出された設定情報１３１７に基づいて、負荷分散処理を開始する（ステップ１５０１）。
【０３４３】
移行処理部１３１２は、テスト支援ツール１００から何らかの通知を受信したか否かを判定する（ステップ１５０２）。ステップ１５０２において、テスト支援ツール１００から通知を受信しない場合、負荷分散処理部１３１６は、負荷分散処理を開始する（ステップ１５０９）。ステップ１５０９の後、ステップ１５１０が実行される。
【０３４４】
ステップ１５０２において、テスト支援ツール１００から何らかの通知を受信したと判定された場合、移行処理部１３１２は、受信した通知が移行開始通知であるか否かを判定する（ステップ１５０３）。ステップ１５０３において、受信した通知が移行開始通知であると判定された場合、受信した移行開始通知に含まれる移行元システム（すなわち、現行システム１０２−１）のシステム情報（例えば、アドレス）を抽出する（ステップ１５０４）。
【０３４５】
ステップ１５０４の後、移行処理部１３１２は、移行開始通知から抽出されたシステム情報を送信することによって、負荷分散処理部１３１６に現行システム１０２−１へのサービスの振り分けを停止するよう指示する（ステップ１５０５）。ステップ１５０５の後、ステップ１５１０が実行される。
【０３４６】
ステップ１５０３において、ステップ１５０３において、受信した通知が移行開始通知ではないと判定された場合、テスト支援ツール１００から受信した通知が移行終了通知であるか否かを判定する（ステップ１５０６）。受信した通知が移行終了通知ではない場合、ステップ１５１０が実行される。
【０３４７】
ステップ１５０６において、受信した通知が移行終了通知であると判定された場合、移行処理部１３１２は、移行終了通知に含まれる移行先システム（すなわち、新システム１０４）のシステム情報（例えば、アドレス）を抽出する（ステップ１５０７）。
【０３４８】
ステップ１５０７の後、移行処理部１３１２は、移行終了通知から抽出されたシステム情報を送信することによって、移行先システムへのサービスの振分け処理を開始するよう、負荷分散処理部１３１６に指示する（ステップ１５０８）。
【０３４９】
第２の実施形態によれば、現行システム１０２とテスト支援ツール１００とを切り離し、新システム１０４を新たな現行システムとして稼動させる際、ＬＢ１２００に移行による切替えを通知することによって、ＬＢ１２００が現行システム１０２へ処理振り分けを停止する。このため、システム全体のサービスを停止させることなく、新システム１０４に切替わることができる。
【０３５０】
なお、テスト支援ツール１００を、現行システム１０２及び新システム１０４内の、例えば、Ｗｅｂ  ＡＰサーバとＤＢＭＳとが接続されるスイッチに接続させ、第１の実施形態同様の構成としてもよい。これによって、端末１０３とシステムとの入出力データではなく、システム内のＤＢへの入出力を取得し、差分状況を検出することができる。
【０３５１】
本実施形態によれば、現行システム１０２へ入力されたデータに相当するデータを、新システム１０４へ入力することによって、現行システム１０２からの出力と、新システム１０４からの出力とを比較することができる。これによって、現行システム１０２と新システム１０４とのシステムの相違点を検証することができる。
【０３５２】
また、本実施形態によれば、テスト支援ツール１００がすべてのセッションの終了時刻を保持することによって、すべてのセッションが終了した後に、現行システム１０２から新システム１０４への系切替を開始することができる。
【０３５３】
また、本実施形態によれば、Ｗｅｂサービスなど、セッション情報をデータ部に含むデータを送信するサービスが、現行システム１０２及び新システム１０４によって提供される場合、テスト支援ツール１００が、現行システム１０２のセッション情報と新システム１０４のセッション情報とを対応させて保持する。これによって、現行システム１０２へ入力されるデータを、新システム１０４へ入力するデータに更新することができる。
【符号の説明】
【０３５４】
１００：テスト支援ツール、１０１：スイッチ、１０２：現行システム、１０３：端末、１０４：新システム、２１０：テスト支援ソフトウェア、２１１：通信処理部、２１２：現行システム受信処理部、２１３：現行システムログ取得部、２１４：新システム送信処理部、２１５：新システム受信処理部、２１６：新システムログ取得部、２１７：セッション管理部、２１８：差分抽出処理部、２１９：系切替処理部、２２０：サービスプロファイル、２２１：現行システムログ、２２２：新システムログ、２２３：セッション管理テーブル、２２４：差分情報テーブル、２２５：スイッチ管理テーブル、２３０：サービス管理部
【図１】
2013093727.tif 000003
【図２】
2013093727.tif 000004
【図３Ａ】
2013093727.tif 000005
【図３Ｂ】
2013093727.tif 000006
【図４Ａ】
2013093727.tif 000007
【図４Ｂ】
2013093727.tif 000008
【図５Ａ】
2013093727.tif 000009
【図５Ｂ】
2013093727.tif 000010
【図６Ａ】
2013093727.tif 000011
【図６Ｂ】
2013093727.tif 000012
【図７】
2013093727.tif 000013
【図８】
2013093727.tif 000014
【図９】
2013093727.tif 000015
【図１０】
2013093727.tif 000016
【図１１】
2013093727.tif 000017
【図１２】
2013093727.tif 000018
【図１３】
2013093727.tif 000019
【図１４】
2013093727.tif 000020
【図１５】
2013093727.tif 000021
【図１６】
2013093727.tif 000022
【図１７】
2013093727.tif 000023
【図１８】
2013093727.tif 000024
【図１９】
2013093727.tif 000025