(57)【特許請求の範囲】
【請求項１】
サービスクライアントと、複数のサービスサーバとがネットワークにより相互に接続され、前記複数のサービスサーバの内の一つのサービスサーバの提供するサービスをシミュレートするサービス仮想化システムであって、
前記第一のサービスサーバは、サービスクライアントから要求電文を受信して、それに対する応答電文を送信し、
前記第二のサービスサーバは、前記第一のサービスサーバから要求電文を受信して、それに対する応答電文を送信し、
前記サービス仮想化システムは、サービスクライアントと第一のサービスサーバ間、及び、前記第一のサービスサーバと第二のサービスサーバ間で送受信される電文を取得して、保存し、
前記サービス仮想化システムは、前記サービスクライアントと第一のサービスサーバ間、及び、前記第一のサービスサーバと第二のサービスサーバ間で送受信される要求電文と、それに対応する応答電文を対応づけて、加工電文テーブルに保持し、
前記サービス仮想化システムは、前記第一のサービスサーバから、前記サービスクライアントへの応答電文を、整合応答電文テーブルに保持し、
前記サービス仮想化システムは、
前記第一のサービスサーバから要求電文を受信して、受信した要求電文が、前記加工電文テーブルにないときには、その要求電文を前記第二のサービスサーバに送信し、それに対する前記第二のサービスサーバからの応答電文を、前記第一のサービスサーバに送信し、
前記第一のサービスサーバから要求電文を受信して、受信した要求電文が、前記加工電文テーブルにあるときには、前記加工電文テーブルと、前記整合応答電文テーブルとを参照し、前記整合応答電文テーブルに保持された応答電文と整合する応答電文を、前記加工電文テーブルより検索し、その応答電文を前記受信した要求電文に対応する応答電文として、前記第一のサービスサーバに送信することを特徴とするサービス仮想化システム。
【請求項２】
サービスクライアントと第一のサービスサーバ間、及び、前記第一のサービスサーバと第二のサービスサーバ間で送受信される電文は、整合ＩＤをキーとして対応付けられることを特徴とする請求項１記載のサービス仮想化システム。
【請求項３】
サービスクライアントと、第一のサービスサーバと、第二のサービスサーバとがネットワークにより相互に接続され、前記第二のサービスサーバの提供するサービスをシミュレートするサービス仮想化システムのサービス仮想化方法であって、
前記第一のサービスサーバが、サービスクライアントから要求電文を受信して、それに対する応答電文を送信するステップと、
前記第二のサービスサーバが、前記第一のサービスサーバから要求電文を受信して、それに対する応答電文を送信するステップと、
前記サービス仮想化システムが、サービスクライアントと第一のサービスサーバ間、及び、前記第一のサービスサーバと第二のサービスサーバ間で送受信される電文を取得して、保存するステップと、
前記サービス仮想化システムが、前記サービスクライアントと第一のサービスサーバ間、及び、前記第一のサービスサーバと第二のサービスサーバ間で送受信される要求電文と、それに対応する応答電文を対応づけて、加工電文テーブルに保持するステップと、
前記サービス仮想化システムは、前記第一のサービスサーバから、前記サービスクライアントへの応答電文を、整合応答電文テーブルに保持するステップと、
前記サービス仮想化システムが、前記第一のサービスサーバから要求電文を受信して、受信した要求電文が、前記加工電文テーブルにないときには、その要求電文を前記第二のサービスサーバに送信し、それに対する前記第二のサービスサーバからの応答電文を、前記第一のサービスサーバに送信するステップと、
前記サービス仮想化システムが、前記第一のサービスサーバから要求電文を受信して、受信した要求電文が、前記加工電文テーブルにあるときには、前記加工電文テーブルと、前記整合応答電文テーブルとを参照し、前記整合応答電文テーブルに保持された応答電文と整合する応答電文を、前記加工電文テーブルより検索し、その応答電文を前記受信した要求電文に対応する応答電文として、前記第一のサービスサーバに送信する送信するステップとを有することを特徴とするサービス仮想化方法。
【請求項４】
サービスクライアントと第一のサービスサーバ間、及び、前記第一のサービスサーバと第二のサービスサーバ間で送受信される電文は、整合ＩＤをキーとして対応付けられることを特徴とする請求項３記載のサービス仮想化方法。
【請求項５】
さらに、前記サービスクライアントが、前記第一のサービスサーバから受信する応答電文の情報を、前記サービス仮想化システムに通知するステップと、
前記サービス仮想化システムが、前記第一のサービスサーバから要求電文を受信して、受信した要求電文が、前記加工電文テーブルにあるときには、前記加工電文テーブルと、前記サービスクライアントより受信した応答電文の情報を参照し、前記受信した要求電文に対応する応答電文を、前記加工電文テーブルより検索し、その応答電文を前記第一のサービスサーバに送信するステップとを有することを特徴する請求項３記載のサービス仮想化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービス仮想化システム、及び、サービス仮想化方法に係り、特に、実稼動システムに負荷をかけることなく、より効率的な連動テストやシステムテスト及びリグレッションテストを可能とし、情報システム開発におけるテスト期間・工数削減、品質向上を促進するのに好適なサービス仮想化システム、及び、サービス仮想化方法に関する。
【背景技術】
【０００２】
サービス仮想化システムとは、ソフトウェアテストに必要な実環境のシステム、コンポーネント、サービスの動作を仮想化環境で再現することにより、テスト要員があたかも実環境を利用しているかのように、実施したいタイミングでアプリケーションソフトウェアをテストできるようにする手法である。これによって、並行開発や機能テスト時のアクセスやテスト環境の利用に関する問題を解決し、開発効率の向上とコスト削減を実現することができる。
【０００３】
例えば、非特許文献１には、従来のスタブを使ったテスト手法と、サービス仮想化というテスト手法が比較して論じられている。
【０００４】
また、特許文献１の”SERVICE MODELING AND VIRTUALIZATION”には、情報システムのテスト時に、テスト対象以外のいくつかの周辺サービス仮想化環境を提供する技術が開示されている。特許文献１記載の技術では、ソフトウェアサービスへの要求や応答を含むトランザクションに基づき、サービスモデルを生成し、そのサービスモデルにより、要求コマンドと応答属性が一致する応答をし、未知の要求コマンドや応答属性の場合、既定の応答をするようにしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第８１１２２６２号明細書
【非特許文献】
【０００６】
【非特許文献１】矢野、”品質とテスト効率化「サービス仮想化」というアプローチ”、[online]、株式会社アシスト、[平成２７年８月１１日検索]、インターネット＜ＵＲＬ：http://www.ashisuto.co.jp/corporate/column/technical-column/detail/1196090_2274.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来技術に示した特許文献１のサービス仮想化技術では、リクエストが既知のものであるか否かを判定し（Fig. 5, 510）、それにしたがって、応答を定めている（Fig. 5, 520, 525, 530, 515, Column 16, lines 38-51）。したがって、テストの精度を上げるためには、リクエストの既知のものを増やし、できるだけ応答を増やしておく必要があるが、そのためにテスト環境構築のための労力がかかることになる。テスト環境構築のための労力を減らすと、リクエストが未知のものが多くなり、テストの精度に問題がでてくる。
【０００８】
このように、従来では、現実のテスト環境の条件を網羅したサービス仮想化システムを、提供することは、事前の要求によって変化する応答などの既定困難な応答を返す必要があり、かつ、テスト環境の構築にさける人的資源は有限であるため、事実上困難であるという問題点があった。
【０００９】
本発明は、上記従来技術の問題点を解決するためになされたもので、その目的は、情報システムの連動テストやシステムテスト及びリグレッションテストにおいて、実テスト環境とサービス仮想化を併用することにより、実テスト環境にあまり負荷をかけずに、効率的にテストを行ない、テスト期間やテストの工数を削減し、テストによりソフトウェアの品質向上を可能にするサービス仮想化システムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明のサービス仮想化システムは、サービスＡクライアント、サービスＡサーバ、サービスＢサーバがネットワークにより相互に接続され、サービスＢサーバの提供するサービスをシミュレートするサービス仮想化システムである。サービスＡサーバは、サービスＡクライアントから要求電文を受信して、それに対する応答電文を送信し、サービスＢサーバは、サービスＡサーバから要求電文を受信して、それに対する応答電文を送信する。サービス仮想化システムは、サービスＡクライアントとサービスＡサーバ間、及び、サービスＡサーバとサービスＢサーバ間で送受信される電文を取得して、保存し、サービスＡクライアントとサービスＡサーバ間、及び、サービスＡサーバとサービスＢサーバ間で送受信される要求電文と、それに対応する応答電文を対応づけて、加工電文テーブルに保持し、サービスＡサーバから、サービスＡクライアントへの応答電文を、整合応答電文テーブルに保持する。そして、サービス仮想化システムは、サービスＡサーバから要求電文を受信して、受信した要求電文が、加工電文テーブルにないときには、その要求電文をサービスＢサーバに送信し、それに対するサービスＢサーバからの応答電文を、サービスＡサーバに送信し、サービスＡサーバから要求電文を受信して、受信した要求電文が、加工電文テーブルにあるときには、加工電文テーブルと、整合応答電文テーブルとを参照し、整合応答電文テーブルに保持された応答電文と整合する応答電文を、加工電文テーブルより検索し、その応答電文を受信した要求電文に対応する応答電文として、サービスサーバＡに送信する。
【発明の効果】
【００１１】
本発明によれば、情報システムの連動テストやシステムテスト及びリグレッションテストにおいて、実テスト環境とサービス仮想化を併用することにより、実テスト環境にあまり負荷をかけずに、効率的にテストを行ない、テスト期間やテストの工数を削減し、テストによりソフトウェアの品質向上を可能にするサービス仮想化システムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係るサービス仮想化システムを含むテスト環境システムの構成図である。
【図２】本発明の一実施形態に係るサービス仮想化システムを含むテスト環境システムの動作を説明するシーケンス図である。
【図３】テスト環境システムの動作のうちで、電文中継の処理を詳細に説明するシーケンス図である。
【図４】電文テキストの例を示す図である。
【図５】加工電文テーブルの例を示す図である。
【図６】整合応答電文テーブルの例を示す図である。
【図７】電文読込設定ファイルの例を示す図である。
【図８】電文フォーマットファイルの例を示す図である。
【図９】コンポーネント間で電文のやり取りの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明に係る一実施形態を、図１ないし図９を用いて説明する。
【００１４】
先ず、図１を用いて本発明の一実施形態に係るサービス仮想化システムを含むテスト環境システムの構成について説明する。図１は、本発明の一実施形態に係るサービス仮想化システムを含むテスト環境システムの構成図である。
【００１５】
本実施形態のテスト環境システムは、サービスＡクライアント１１０、サービスＡサーバ１２０と、サービスＢ仮想化システム１３０、サービスＢサーバ１４０と、これらのシステム間を接続するネットワーク１５０により実現されている。
【００１６】
サービスＡクライアント１１０は、サービスＡサーバ１２０に、サービスＡの機能を依頼するクライアントである。そして、サービスＡサーバ１２０は、サービスＢの機能をサービスＢサーバ１４０に依頼するものとする。本実施形態では、サービスＡが商品管理システムのアプリケーションソフトウェアを実行することにより得られる結果を得るサービスであり、サービスＢは、その商品管理システムのアプリケーションソフトウェアから利用されるデータベースシステムの提供するサービスであるものとする。
【００１７】
そして、サービスＢ仮想化システム１３０は、テスト環境化において、サービスＢサーバ１４０の機能をシミュレートして、サービスＡサーバ１２０から発せされる要求電文に対して、応答電文を返すシステムである。
【００１８】
ネットワーク１５０は、情報を他の計算機に伝送する伝送媒体であり、ローカルネットワーク（ＬＡＮ）でもよいし、インターネットのようなグローバルネットワークであってもよい。
【００１９】
サービスＢ仮想化システム１３０は、ハードウェアとしては、一般的な計算機（コンピュータ）により実現され、制御・演算部１３０ａ、入力部１３０ｂ、メモリ１３０ｃ、記憶部１３０ｄ、出力部１３０ｅからなる。制御・演算部１３０ａは、メモリ１３０ｃ上のプログラムを実行して、この装置の各部を制御する装置である。入力部１３０ｂは、マウスやキーボードなどの入力デバイスである。メモリ１３０ｃは、プログラムをロードし、ワークデータを保持する半導体記憶装置である。記憶部１３０ｃは、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などで大容量のデータ記憶装置である。出力部１３０ｅは、表示装置や印刷装置などのデータを出力する装置である。
【００２０】
サービスＢ仮想化システム１３０は、機能として、電文取得・保存部１３１と、電文読込・加工部１３２と、整合応答電文テーブル作成部１３３と、電文送受信部１３４と、サービス応答電文を受信する電文中継部１３５と、応答電文を決定する応答電文決定部１３６とを有する。
【００２１】
電文取得・保存部１３１は、サービスＡクライアント１１０とサービスＡサーバ１２０間、サービスＡサーバ１２０とサービスＢサーバ１４０間の電文を取得・保存する部分である。電文読込・加工部１３２は、いったん保存した電文情報を読込・加工する部分である。整合応答電文テーブル作成部１３３は、整合応答電文テーブル（後述）を作成する部分である。電文送受信部１３４は、サービスＡサーバ１２０から要求電文を受信し、サービスＡサーバ１２０に応答電文を送信する部分である。電文中継部１３５は、サービスＢサーバ１４０に要求電文を中継・送信し、サービスＢサーバ１４０から応答電文を受信する部分である。応答電文決定部１３６は、応答電文を決定する部分である。これらの機能は、制御・演算部１３０ａが、それぞれの機能を実行するプログラムをメモリ１３０ｃ上にロードして、実行することによりなされる。
【００２２】
サービスＢ仮想化システム１３０は、クライアントとサーバ間、サーバとサーバ間の電文を取得・保存しておき、電文を読込・加工する。そして、整合する応答電文の情報を取得する。次に、要求電文を受信し、認証要求等の読込・加工した電文情報に合致しない要求については、中継し、実サービスに連携し、整合する応答電文の情報を取得した要求については、読込・加工した電文情報に基づいて、応答を決定し、応答電文を送信する。このような機能を実現するため、高い処理能力を有する計算機、具体的には、大型計算機、高性能ワークステーションなどであることが望ましい。
【００２３】
サービスＡクライアント１１０も、ハードウェアとしては、一般的な計算機（コンピュータ）により実現され、制御・演算部１１０ａ、入力部１１０ｂ、メモリ１１０ｃ、記憶部１１０ｄ、出力部１１０ｅからなる。各々のハードウェアとしての機能は、サービスＢ仮想化システム１３０の所の説明と同様である。
【００２４】
サービスＡクライアント１１０は、機能として、要求電文を送信する要求電文送信部１１１と、応答電文を受信する応答電文受信部１１２を有する。これらの機能は、制御・演算部１１０ａが、それぞれの機能を実行するプログラムをメモリ１１０ｃ上にロードして、実行することによりなされる。
【００２５】
サービスＡクライアント１１０、サービスＡサーバ１２０、サービスＢサーバ１４０は、各種情報を処理するための処理能力を持った計算機であることが望ましい。サービスＡクライアント１１０は、一般のＰＣ（Personal Computer）でよい。サービスＡサーバ１２０、サービスＢサーバ１４０は、それぞれの業務プログラム、データベースシステムを実行する処理能力を有する計算機である必要がある。
【００２６】
サービスＡサーバ１２０、サービスＢサーバ１４０のハードウェアとしての構成は、一般のサーバ機器と同様である。
【００２７】
次に、図２ないし図８を用いて本発明の一実施形態に係るサービス仮想化システムを含むテスト環境システムの動作を説明する。図２は、本発明の一実施形態に係るサービス仮想化システムを含むテスト環境システムの動作を説明するシーケンス図である。図３は、テスト環境システムの動作のうちで、電文中継の処理を詳細に説明するシーケンス図である。図４は、電文テキストの例を示す図である。図５は、加工電文テーブルの例を示す図である。図６は、整合応答電文テーブルの例を示す図である。図７は、電文読込設定ファイルの例を示す図である。図８は、電文フォーマットファイルの例を示す図である。図９は、コンポーネント間で電文のやり取りの一例を示す図である
本実施形態では、サービスＡサーバ１２０が、商品管理システムのプログラムを実行するＷｅｂ／ＡＰサーバであり、サービスＡクライアント１１０がそのＷｅｂクライアントであり、サービスＢサーバ１４０が、ＤＢサーバである例を説明する。
【００２８】
先ず、図４ないし図８を用いて本実施形態で用いられるデータ構造について説明する。
【００２９】
電文テキスト４００は、図４に示されるように、サービスＡクライアント１１０と、サービスＡサーバ１２０間（Ｗｅｂ／ＡＰサービスを受けるための電文）、サービスＡサーバ１２０と、サービスＢサーバ１４０間（ＤＢサービスを受けるための電文）での電文をキャプチャして、一つのファイルとしてまとめたものである。
【００３０】
電文テキスト４００で、電文４００ａは、ユーザ認証の電文であり、電文４００ｂは、そのユーザ応答の電文である。
【００３１】
また、電文４００ｃは、サービスＡクライアント１１０からサービスＡサーバ１２０へのサービス要求電文であり、電文４００ｄは、サービスＡサーバ１２０からサービスＡクライアント１１０への、サービス要求電文に対するその応答電文である。サービス要求電文のフォーマットは、要求ＩＤ４０１（電文４００ｃの場合は、”req11”）、要求文４０２（電文４００ｃの場合は、”getList11”）、整合ＩＤ４０５（電文４００ｃの場合は、”mat1”）になる。一方、応答電文のフォーマットは、応答ＩＤ４０３（電文４００ｄの場合は、”res11”）、応答文４０４（電文４００ｄの場合は、”List111”）、整合ＩＤ４０６（電文４００ｄの場合は、”mat1”）になる。ここで、電文４００ｃの整合ＩＤ４０５の値”mat1”と、電文４００ｄの整合ＩＤ４０６の値”mat1”が、一致しているのは、電文４００ｃに対する応答が、応答電文４００ｅであることを意味している。このように、整合ＩＤは、要求電文と、その応答電文を結びつけるキーであり、要求電文、応答電文の文法として、規定されているものである。
【００３２】
加工電文テーブル５００Ａは、電文テキスト４００の内で、サービスＡクライアント１１０とサービスＡサーバ１２０との間でやり取りされる電文を、サービス要求電文と応答電文でペアにしてまとめたテーブルである。また、加工電文テーブル５００Ｂは、電文テキスト４００の内で、サービスＡサーバ１２０とサービスＢサーバ１４０との間でやり取りされる電文を、サービス要求電文と応答電文でペアにしてまとめたテーブルである。
【００３３】
加工電文テーブル５００Ａ、５００Ｂは、図５に示されるように、要求ＩＤ５０１、要求文５０２、応答ＩＤ５０３、応答文５０４、整合ＩＤ５０５の各フィールドからなり、それぞれ、電文テキスト４００の要求ＩＤ４０１、要求文４０２、応答ＩＤ４０３、応答文４０４、整合ＩＤ４０５（４０６）に対応している。
【００３４】
図６に示される整合応答電文テーブル６００は、サービスＢサーバ１４０に問合せることなく、サービスＢ仮想化システム１３０から、サービスＡサーバに応答するときの電文を返すときに、その応答電文に整合するサービスＡサーバ１２０から、サービスクライアント１１０への応答電文を保持するテーブルである。
【００３５】
整合応答電文テーブル６００のレコード６００ａは、サービスクライアント１１０からサービスＡサーバ１２０に、電文テキスト４００の電文４００ｄ（”req11 getList11”）が来たときに、サービスＡサーバ１２０は、サービスクライアント１１０に、”res31 List122”の電文を返すことを示している。これは、加工電文テーブル５００Ａのレコードｃから作られる。
【００３６】
また、整合応答電文テーブル６００のレコード６００ｂは、サービスクライアント１１０からサービスＡサーバ１２０に、電文テキスト４００の電文４００ｆ（”req41 addList41”）が来たときに、サービスＡサーバ１２０は、サービスクライアント１１０に、”res41 OK”の電文を返すことを示している。これは、加工電文テーブル５００Ａのレコードdから作られる。
【００３７】
整合応答電文テーブル６００は、テストをするものが、サービスＡクライアントが、サービスＡサーバに期待する応答電文を記述するものであり、テスト実施者が、予め記述しておく。これは、要求ＩＤと、要求文が一致しても、データベースの状態などにしたがって、必ずしもその応答が、加工電文テーブル５００Ａ、５００Ｂから一意的に定まるとは、決まっていないからである。例えば、サービスＢ仮想化システム１３０が、サービスサーバＡ１２０から、要求電文”req12 select12”を受けたときには、加工電文テーブル５００Ｂのレコード５００ｆ、５００ｈが該当し、どちらの応答電文を返していいか一意的には、定まらない。しかしながら、両者の整合ＩＤ５０５の”mat1”と”mat3”を参照し、それらの整合ＩＤと一致する加工電文テーブル５００Ａのレコード５００ａ、５００ｃを見て、整合ＩＤ”mat3”のレコード５００ｃの応答ＩＤ５０３、応答文５０４が、整合応答テーブル６００ａの応答ＩＤ６０１、応答文６０２と一致していることが分かる。したがって、整合ＩＤ５０５”mat3”のレコード５００ｈの応答ＩＤ５０３、応答文５０４を採用して、サービスＢ仮想化システム１３０が、要求電文”req12 select12”を受けたときに、応答電文”res32 record122”を返すものとする。
【００３８】
電文読込設定ファイル７００は、サービスＢ仮想化システム１３０が電文テキスト４００の中で読み込んで、加工電文テーブル５００Ａ、５００Ｂを作成するときの読込みのための設定ファイルである。図７に示される例では、電文ファイルパス（MsgFilePath）として、”PathMF”を、電文読込（MsgLoad）件数として、”１００”を設定しており、その他に電文読込の日時範囲（MsgLoadPeriod）として、”201503301200-201503301300”（２０１５年３月３０日１２時０分〜２０１５年３月３０日１３時０分）や、オプション（MsgLoadOption）として、”ALL”（すべて）」等を設定可能である。
電文フォーマットテーブル８００は、サービスＢ仮想化システム１３０が電文テキスト４００の中で読み込んで、加工電文テーブル５００Ａ、５００Ｂを作成するときに、電文４００のフォーマットを教えるためのファイルである。図８に示される例では、要求・応答ＩＤの位置及び文字列表現（reqresID）として、”3-7”（３カラム目から７カラム目）、re(q|s)[0-9][0-9]（ＩＤとして、req又は、resから始まり、それに数字が00-99のいずれかが付与される）、要求文・応答文の位置（reqresSentence）として、”11-22”（１１カラム目から２２カラム目）、整合ＩＤの位置（matID）として、”26-29”（2６カラム目から２９カラム目）を設定している。
【００３９】
以下、上で説明したデータ構造をふまえて、図２及び図３のシーケンス図を追いながら、本発明の一実施形態に係るサービス仮想化システムを含むテスト環境システムの動作を説明する。
【００４０】
（Ｉ）電文取得フェーズ
＜Ｓ２１１＞ないし＜Ｓ２３１＞は、電文を収集して、電文テキスト４００を作成するフェーズである。
【００４１】
＜Ｓ２１１＞要求電文送信
サービスＡクライアント１１０の要求電文送信部１１１は、サービスＡサーバ１２０への要求電文を送信する。
【００４２】
商品管理システムの例では、ＷｅｂクライアントであるサービスＡクライアント１１０の要求電文送信部１１１は、Ｗｅｂ／ＡＰサーバであるサービスＡサーバ１２０への要求電文を送信するといった場合が想定される。具体的には、受注登録要求電文の場合、日付、顧客コード、商品コード、数量、単価等である。
【００４３】
＜Ｓ２２１＞要求電文受信・送信
サービスＡサーバ１２０は、サービスＡクライアント１１０からの要求電文を受信・処理し、サービスＢサーバ１４０への要求電文を送信する。
【００４４】
商品管理システムの例では、Ｗｅｂ／ＡＰサーバであるサービスＡサーバ１２０は、ＷｅｂクライアントであるサービスＡクライアント１１０からの要求電文を受信・処理し、ＤＢサーバであるサービスＢサーバ１４０への要求電文を送信するといった場合が想定される。具体的には、受注登録要求電文の場合、日付、顧客コード、商品コード、数量、単価等に基づいて、受注登録のための処理をし、ＤＢサーバに日付、顧客コード、商品コード、数量、単価等を送信する。
【００４５】
＜Ｓ２４１＞要求電文受信
サービスＢサーバ１４０は、サービスＡサーバ１２０からの要求電文を受信・処理する。
【００４６】
商品管理システムの例では、ＤＢサーバであるサービスＢサーバ１４０は、Ｗｅｂ／ＡＰサーバであるサービスＡサーバ１２０からの要求電文を受信・処理するといった場合が想定される。具体的には、受注登録要求電文の場合、日付、顧客コード、商品コード、数量、単価等に基づいて、ＤＢサーバに受注を登録する。
【００４７】
＜Ｓ２４２＞応答電文送信
サービスＢサーバ１４０は、サービスＡサーバ１２０への応答電文を送信する。
【００４８】
商品管理システムの例では、ＤＢサーバであるサービスＢサーバ１４０は、Ｗｅｂ／ＡＰサーバであるサービスＡサーバ１２０の応答電文を送信するといった場合が想定される。具体的には、受注登録応答電文の場合、日付、登録結果コード等である。
【００４９】
＜Ｓ２２２＞応答電文受信・送信
サービスＡサーバ１２０は、サービスＢサーバ１４０からの応答電文を受信・処理し、サービスＡクライアント１１０への応答電文を送信する。
【００５０】
商品管理システムの例では、Ｗｅｂ／ＡＰサーバであるサービスＡサーバ１２０は、ＤＢサーバであるサービスＢサーバ１４０からの応答電文を受信・処理し、ＷｅｂクライアントであるサービスＡクライアント１１０への応答電文を送信するといった場合が想定される。具体的には、受注登録応答電文の場合、日付、登録結果コード等に基づいて、Ｗｅｂクライアントに受注登録結果を出力するための処理をし、Ｗｅｂクライアントに日付、登録結果コード等を送信する。
【００５１】
＜Ｓ２１２＞応答電文受信
サービスＡクライアント１１０の応答電文受信部１１２は、サービスＡサーバ１２０からの応答電文を受信・処理する。そして、最初の要求電文送信＜Ｓ２１１＞に戻る。
【００５２】
商品管理システムの例では、ＷｅｂクライアントであるサービスＡクライアント１１０の応答電文受信部１１２は、Ｗｅｂ／ＡＰサーバであるサービスＡサーバ１２０からの応答電文を受信・処理し、次の要求電文の送信に戻るといった場合が想定される。具体的には、受注登録応答電文の場合、日付、登録結果コード等に基づいて、Ｗｅｂクライアントに受注登録結果を出力する。
【００５３】
＜Ｓ２３１＞電文取得・保存
サービスＢ仮想化システム１３０の電文取得・保存部１３１は、サービスＡクライアント１１０とサービスＡサーバ１２０間、サービスＡサーバ１２０とサービスＢサーバ１４０間の要求・応答電文をパケットキャプチャ等の手法により取得する。
【００５４】
商品管理システムの例では、サービスＢ仮想化システム１３０の電文取得・保存部１３１は、ＷｅｂクライアントであるサービスＡクライアント１１０と、Ｗｅｂ／ＡＰサーバであるとサービスＡサーバ１２０間、Ｗｅｂ／ＡＰサーバであるサービスＡサーバ１２０と、ＤＢサーバであるサービスＢサーバ１４０間の要求・応答電文をパケットキャプチャ等の手法により取得するといった場合が想定される。具体的には、受注登録要求電文の場合、日付、顧客コード、商品コード、数量、単価等を含み、受注登録応答電文の場合、日付、登録結果コード等である。
【００５５】
（ＩＩ）テーブル作成フェーズ
＜Ｓ２３２＞及び＜Ｓ２３３＞は、収集され電文に基づいて、それを加工して、加工電文テーブル５００Ａ、５００Ｂと、整合応答テーブル６００を作成するフェーズである。
【００５６】
＜Ｓ２３２＞電文読込・加工
サービスＢ仮想化システム１３０の電文読込・加工部１３２は、電文読込設定ファイル７００の条件に基づいて、電文テキスト４００を読み込み、電文フォーマットテーブル８００を参照して、加工し、加工電文テーブル５００を作成する。
【００５７】
＜Ｓ２３３＞整合応答電文テーブル作成
サービスＢ仮想化システム１３０の整合応答電文テーブル作成部１３３は、テスト実施者の入力にしたがって、サービスＡクライアント１１０が、テスト時に返される応答電文を整合応答電文テーブル６００として作成する。
【００５８】
既に説明したように、本実施形態の例では、テスト時に、サービスＡクライアント１１０から、電文４００ｄ（”req11 getList11”）が来たときに、”res31 List112”の電文を返すようにしている。
【００５９】
また、テスト時に、サービスＡクライアント１１０から、電文４００ｆ（”req41 addList41”）が来たときに、”res41 OK”の電文を返すようにしている。
【００６０】
（ＩＩＩ）テストフェーズ
上記の（Ｉ）及び（ＩＩ）が、テスト準備フェーズであり、以下の＜Ｓ２１３＞〜＜Ｓ２４４＞が、テストフェーズである。
【００６１】
＜Ｓ２１３＞要求電文送信
サービスＡクライアント１１０の要求電文送信部１１１は、サービスＡサーバ１２０への要求電文を送信する。
【００６２】
商品管理システムの例では、ＷｅｂクライアントであるサービスＡクライアント１１０の要求電文送信部１１１は、Ｗｅｂ／ＡＰサーバであるサービスＡサーバ１２０への要求電文を送信するといった場合が想定される。具体的には、受注一覧要求電文の場合、日付、顧客コード、商品コード、数量、単価等である。
【００６３】
＜Ｓ２２３＞要求電文受信・送信
サービスＡサーバ１２０は、サービスＡクライアント１１０からの要求電文を受信・処理し、サービスＢサーバ１４０への要求電文を送信する。
【００６４】
商品管理システムの例では、Ｗｅｂ／ＡＰサーバであるサービスＡサーバ１２０は、ＷｅｂクライアントであるサービスＡクライアント１１０からの要求電文を受信・処理し、ＤＢサーバであるサービスＢサーバへの要求電文を送信するといった場合が想定される。具体的には、受注一覧要求電文の場合、日付、顧客コード、商品コード、数量、単価等に基づいて、受注一覧のための処理をし、ＤＢサーバに日付、顧客コード、商品コード、数量、単価等を送信する。
【００６５】
＜Ｓ２３４＞要求電文受信
サービスＢ仮想化システム１３０の電文送受信部１３４は、サービスＡサーバ１２０からの要求電文を受信・処理する。
【００６６】
商品管理システムの例では、サービスＢ仮想化システム１３０の電文送受信部１３４は、Ｗｅｂ／ＡＰサーバであるサービスＡサーバ１２０からの要求電文を受信・処理するといった場合が想定される。
【００６７】
＜Ｓ２３５＞電文中継
次に、サービスＢ仮想化システム１３０は、電文中継処理Ｓ２３５を行う。電文中継処理Ｓ２３５の処理は、図３を用いて後に詳細に説明する。
【００６８】
＜Ｓ２３６＞応答電文決定
サービスＢ仮想化システム１３０の応答電文決定部１３６は、電文中継２３５で電文中継「無」の場合、基本的には、受信した要求電文と加工電文テーブル５００Ｂに、整合応答電文テーブル６００に該当する電文のエントリがある場合には、サービスＢサーバ１４０からの応答も考慮して、応答電文を決定する。
【００６９】
商品管理システムの例では、サービスＢ仮想化システム１３０の応答電文決定部１３６は、電文中継２３５で電文中継「無」の場合、基本的には、Ｗｅｂ／ＡＰサーバであるサービスＡサーバ１２０から受信した要求電文と加工電文テーブル５００Ａ、５００Ｂに基づいて、整合応答電文テーブル６００に該当する電文のエントリがある場合には、サービスＡサーバ１２０と、サービスＢサーバ１４０間、ＷｅｂクライアントであるサービスＡクライアント１１０と、Ｗｅｂ／ＡＰサーバであるサービスＡサーバ１２０間の応答との対応も考慮し、応答電文を決定する。例えば、サービスＡクライアント１１０からの受注一覧要求電文のときに、サービスＢ仮想化システム１３０が、サービスＡサーバ１２０から受信した要求電文の要求ＩＤが”req12”、要求文が”select12”であったとする。このときに、整合応答電文テーブル６００のレコード６００ａの応答ＩＤ”res31”に基づいて、加工電文テーブル５００Ａのレコード５００ｃの整合ＩＤ”mat3”を検索する。そして、その整合ＩＤ”mat3”の加工電文テーブル５００Ｂのレコード５００ｈ（要求ＩＤ”req12”、応答ＩＤ”res32”）を検索し、サービスＢ仮想化システム１３０からサービスＡクライアント１１０への応答電文として、応答ＩＤ”res32”、応答文”record122”の応答電文を決定する（図９参照）。
＜Ｓ２３７＞応答電文送信
サービスＢ仮想化システム１３０の電文送受信部１３４は、サービスＡサーバ１２０への応答電文を送信する。
【００７０】
商品管理システムの例では、サービスＢ仮想化システム１３０の電文送受信部１３４は、Ｗｅｂ／ＡＰサーバであるサービスＡサーバ１２０への応答電文を送信するといった場合が想定される。具体的には、受注一覧応答電文の場合、日付、顧客コード、商品コード、数量、単価等である。
【００７１】
＜Ｓ２２４＞応答電文受信・送信
サービスＡサーバ１２０は、サービスＢサーバ１４０からの応答電文を受信・処理し、サービスＡクライアント１１０への応答電文を送信する。
【００７２】
商品管理システムの例では、Ｗｅｂ／ＡＰサーバであるサービスＡサーバ１２０は、サービスＢ仮想化システム１３０からの応答電文を受信・処理し、ＷｅｂクライアントであるサービスＡクライアント１１０への応答電文を送信するといった場合が想定される。具体的には、受注一覧応答電文の場合、日付、顧客コード、商品コード、数量、単価等に基づき、Ｗｅｂクライアントに受注一覧を出力するための処理をし、Ｗｅｂクライアントに日付、顧客コード、商品コード、数量、単価等を送信する。
【００７３】
＜Ｓ２１４＞応答電文受信
サービスＡクライアント１１０の応答電文受信部１１２は、サービスＡサーバ１２０からの応答電文を受信・処理し、＜Ｓ２１３＞に戻る。
【００７４】
商品管理システムの例では、ＷｅｂクライアントであるサービスＡクライアント１１０の応答電文受信部１１２は、サービスＡサーバ１２０であるＷｅｂ／ＡＰサーバからの応答電文を受信・処理し、次の要求電文の送信に戻るといった場合が想定される。具体的には、受注一覧応答電文の場合、日付、顧客コード、商品コード、数量、単価等に基づき、Ｗｅｂクライアントに受注一覧を出力する。
【００７５】
次に、図３を用いて中継処理Ｓ２３５の詳細について説明する。
【００７６】
＜Ｓ３０１＞受信要求電文中継有無判断
サービス仮想化システム１３０の電文中継部１３５は、加工電文情報５００に基づき、受信した要求電文の中継有無を判断し、「有」の場合、＜Ｓ３０２＞に遷移し、「無」の場合、終了に遷移する。
【００７７】
商品管理システムの例では、サービス仮想化システム１３０の電文中継部１３５は、受信した要求電文の中継有無を判断し、認証要求は加工電文情報５００に合致せず、電文中継「有」のため、＜Ｓ３０２＞に遷移し、受注登録要求、受注一覧要求は加工電文情報５００に合致し、電文中継「無」のため、終了に遷移するといった場合が想定される。
【００７８】
＜Ｓ３０２＞要求電文送信
サービスＢ仮想化システム１３０の電文中継部１３５は、電文送受信部１３４を使用し、サービスＢサーバ１４０への要求電文を送信する。
【００７９】
商品管理システムの例では、サービス仮想化システム１３０の電文中継部１３５は、電文送受信部１３４を使用し、ＤＢサーバであるサービスＢサーバ１４０への要求電文を送信するといった場合が想定される。具体的には、認証要求電文の場合、日付、暗号化されたユーザＩＤ、パスワード等を送信する。
【００８０】
＜Ｓ２４３＞要求電文受信
サービスＢサーバ１４０は、サービスＢ仮想化システム１３０からの要求電文を受信・処理する。
【００８１】
商品管理システムの例では、ＤＢサーバであるサービスＢサーバ１４０は、サービスＢ仮想化システム１３０からの要求電文を受信・処理するといった場合が想定される。具体的には、認証要求電文の場合、日付、暗号化されたユーザＩＤ、パスワード等に基づいて、ユーザＩＤ、パスワード等を復号し、ユーザを認証する。
【００８２】
＜Ｓ２４４＞応答電文送信
サービスＢサーバ１４０は、サービスＢ仮想化システム１３０への応答電文を送信する。
【００８３】
商品管理システムの例では、ＤＢサーバであるサービスＢサーバ１４０は、サービスＢ仮想化システム１３０への応答電文を送信するといった場合が想定される。具体的には、認証応答電文の場合、日付、認証結果コード等である。
【００８４】
＜Ｓ３０３＞応答電文受信
サービスＢ仮想化システム１３０の電文中継部１３５は、電文送受信部１３４を使用し、サービスＢサーバ１４０からの応答電文を受信する。
【００８５】
商品管理システムの例では、サービスＢ仮想化システム１３０の電文中継部１３５は、電文送受信部１３４を使用し、ＤＢサーバであるサービスＢサーバ１４０からの応答電文を受信するといった場合が想定される。具体的には、認証応答電文の場合、日付、認証結果コード等を受信する。
【００８６】
以上のように本実施形態によれば、サービス仮想化システムにて、クライアントとサーバ間、サーバとサーバ間の電文を取得・保存しておき、電文を読込・加工し、整合する応答電文の情報を取得し、要求電文を受信し、認証要求等の読込・加工した電文情報に合致しない要求については、中継し、実サービスに連携し、その他の要求については、基本的には、読込・加工した電文情報に基づき、特に、整合性の問題が生じるおそれのある応答電文に関連する要求については、他のサーバ、クライアントの要求・応答との対応も考慮して、応答を決定し、応答電文を送信する。これにより、サービス仮想化において、ネットワークレベルでのサービス仮想化時の認証データ暗号化や、事前の要求よって変化する応答等、既定困難な応答を含むサービス仮想化を実現するシステム及び方法を提供することができる。
【００８７】
また、（１）サービスＢ仮想化システム１３０の整合応答電文テーブル作成部１３３において、サービスＡクライアント１１０が期待する応答電文の情報を、サービスＡクライアント１１０からの通知し、それを整合応答電文として、加工電文テーブルを検索して、応答電文を求めるときに利用する、（２）サービスＢ仮想化システム１３０の応答電文決定部１３６において、電文中継２３５で電文中継「無」の場合で、受信した要求電文と加工電文テーブル５００Ｂにより、応答電文を決定するときには、加工電文テーブル５００Ｂの順序が上（又は下）のものを優先して応答電文を決定するなどの形態がある。
【００８８】
以上、本発明の実施形態を、商品管理システムに係るＷｅｂ／ＡＰ／ＤＢサーバ構成システムにおけるＷｅｂクライアントをサービスＡクライアント１１０、Ｗｅｂ／ＡＰサーバをサービスＡサーバ１２０、ＤＢサーバをサービスＢサーバ１４０とする商品管理システムを例として説明したが、例えば、金融、公共、製造、通信、流通といった業種、業界の企業情報システムなどにも適用可能である。
【００８９】
また、図１において、サービスＡクライアント１１０、サービスＡサーバ１２０、サービスＢ仮想化システム１３０、サービスＢサーバ１４０は、それぞれ１台ずつとなっているが、サービスＡクライアント１１０、サービスＡサーバ１２０、サービスＢ仮想化システム１３０、サービスＢサーバ１４０は、それぞれ複数台存在可能である。
【符号の説明】
【００９０】
１１０…サービスＡクライアント
１２０…サービスＡサーバ
１３０…サービスＢ仮想化システム
１３１…電文取得・保存部
１３２…電文読込・加工部
１３３…整合応答電文テーブル作成部
１３５…電文中継部
１３６…応答電文決定部
１４０…サービスＢサーバ
１５０…ネットワーク
【図１】
0006425634.tif 000002
【図２】
0006425634.tif 000003
【図３】
0006425634.tif 000004
【図４】
0006425634.tif 000005
【図５】
0006425634.tif 000006
【図６】
0006425634.tif 000007
【図７】
0006425634.tif 000008
【図８】
0006425634.tif 000009
【図９】
0006425634.tif 000010