(57)【要約】  クライアントから受信したリクエストを、第一、第二の計算機システムで実行する場合に、二重系の処理の実行順序を一致させる。受信したリクエストを第一のシステム１０４と第二のシステム１０５に送信するシステム制御部１０３を備え、システム制御部は、第二のシステムへのリクエストの送信を保留し、第一のシステムの応答を待合せて、第一のシステムで業務処理が実行された順序で、第二のシステムにリクエストを送信し、第二のシステムでのリクエストの実行をシリアライズするため、第二のシステムからの応答を待って、次のリクエストを第二のシステムに送信することで、第一のシステムと第二のシステムで業務処理の実行順序を一致させるリクエスト実行判断部を備える。
2012160690.tif 000002
【特許請求の範囲】
【請求項１】
受信するリクエストを処理する多重化システムであって、
第一のシステムと、
第二のシステムと、
前記第一のシステムと前記第二のシステムに前記リクエストを送信するシステム制御部とを備え、
前記システム制御部は、
前記第一のシステムに前記リクエストを送信し、前記第二のシステムへの前記リクエストの送信を保留し、
前記第一のシステムからの前記リクエストに対する応答を待合わせ、前記第一のシステムで前記リクエストに対する業務処理が実行された順序で、前記第二のシステムに前記リクエストの業務処理を実行させるリクエスト実行判断部を有する、
ことを特徴とする多重化システム。
【請求項２】
請求項１に記載の多重化システムであって、
前記リクエスト実行判断部は、
前記第二のシステムでのリクエストの実行をシリアライズするため、送信したリクエストに対する前記第二のシステムからの応答を待って、前記第二のシステムに新たなリクエストを送信する、
ことを特徴とする多重化システム。
【請求項３】
請求項２に記載の多重化システムであって、
前記システム制御部は、
前記第二のシステムへの送信を保留するリクエストを設定するリクエスト設定テーブルを備え、
前記リクエスト実行判断部は、
前記リクエスト設定テーブルに設定されたリクエストを前記システム制御部が受信した場合に、前記第二のシステムへの当該リクエストの送信を保留し、
前記リクエスト設定テーブルに設定されていないリクエストを受信した場合には、当該リクエストの送信を保留せずに前記第二のシステムに送信する、
ことを特徴とする多重化システム。
【請求項４】
請求項３に記載の多重化システムであって、
前記リクエストには、パラメータ名と、当該パラメータ名に対応するパラメータと、シリアライズパラメータ名と、当該シリアライズパラメータ名に対応するシリアライズパラメータが含まれており、
前記リクエスト設定テーブルの設定項目には、前記パラメータと前記シリアライズパラメータ名を含み、
前記リクエスト実行判断部は、
前記リクエスト設定テーブル中に設定された前記シリアライズパラメータ名に対応する前記シリアライズパラメータが等しいリクエストごとに、前記第一のシステムと前記第二のシステムで業務処理の実行順序を一致させる、
ことを特徴とする多重化システム。
【請求項５】
請求項４に記載の多重化システムであって、
前記システム制御部は、
前記リクエストの前記シリアライズパラメータと、リクエスト開始時刻と、リクエスト確定時刻と、待機系実行中フラグとを設定するリクエスト管理テーブルを備え、
前記リクエスト実行判断部は、
前記第一のシステムから応答を受信した際、当該応答が前記リクエスト設定テーブルに設定されたリクエストに対する応答である場合には、
前記リクエスト管理テーブルの前記リクエスト確定時刻に、当該応答を受信した時刻、又は当該応答に記載された時刻を記録し、
当該応答のリクエストの前記シリアライズパラメータを特定し、
前記第二のシステムへの送信を保留している前記リクエストから、前記シリアライズパラメータが等しいリクエストを抽出し、
抽出したリクエストの中に、前記第二のシステムで実行されているリクエストがなく、かつ、最も古い前記リクエスト確定時刻より古い前記リクエスト開始時刻がない場合に、抽出した前記リクエストの中で前記リクエスト確定時刻が最も古いリクエストを前記第二のシステムに送信する、
ことを特徴とする多重化システム。
【請求項６】
請求項５に記載の多重化システムであって、
前記リクエスト実行判断部は、
前記第二のシステムから応答を受信した際、
該応答が前記リクエスト設定テーブルに設定されたリクエストに対する応答である場合には、当該リクエストの記録を前記リクエスト管理テーブルから削除し、
当該応答のリクエストの前記シリアライズパラメータを特定し、前記第二のシステムへの送信を保留している前記リクエストから、前記シリアライズパラメータが等しいリクエストを抽出し、抽出した前記リクエストの中に、最も古い前記リクエスト確定時刻より古い前記リクエスト開始時刻がない場合に、抽出した前記リクエストの中で、前記リクエスト確定時刻が最も古いリクエストを前記第二のシステムに送信する、
ことを特徴とする多重化システム。
【請求項７】
受信するリクエストを第一のシステムと第二のシステムで処理するよう制御するシステム制御部における多重化方法あって、
前記システム制御部は、
前記第一のシステムに前記リクエストを送信し、前記第二のシステムへの前記リクエストの送信を保留し、
前記第一のシステムからの前記リクエストに対する応答を待合わせることにより、前記第一のシステムで前記リクエストに対する業務処理が実行された順序で、前記第二のシステムに前記リクエストの業務処理を実行させる、
ことを特徴とする多重化方法。
【請求項８】
請求項７に記載の多重化方法であって、
前記システム制御部は、
前記第二のシステムでのリクエストの実行をシリアライズするため、送信したリクエストに対する前記第二のシステムからの応答を待って、前記第二のシステムに新たなリクエストを送信する、
ことを特徴とする多重化方法。
【請求項９】
請求項８に記載の多重化方法であって、
前記システム制御部は、
前記第二のシステムへの送信を保留するリクエストを設定するリクエスト設定テーブルを備え、
前記リクエスト設定テーブルに設定されたリクエストを受信した場合に、前記第二のシステムへの当該リクエストの送信を保留し、
前記リクエスト設定テーブルに設定されていないリクエストを受信した場合には、当該リクエストの送信を保留せずに前記第二のシステムに送信する、
ことを特徴とする多重化方法。
【請求項１０】
請求項９に記載の多重化方法であって、
前記リクエストには、パラメータ名と、当該パラメータ名に対応するパラメータと、シリアライズパラメータ名と、当該シリアライズパラメータ名に対応するシリアライズパラメータが含まれており、
前記リクエスト設定テーブルの設定項目には、前記パラメータと前記シリアライズパラメータ名を含み、
前記システム制御部は、
前記リクエスト設定テーブル中に設定された前記シリアライズパラメータ名に対応する前記シリアライズパラメータが等しいリクエストごとに、前記第一のシステムと前記第二のシステムで業務処理の実行順序を一致させる、
ことを特徴とする多重化方法。
【請求項１１】
請求項１０に記載の多重化方法であって、
前記システム制御部は、
前記リクエストのシリアライズパラメータと、リクエスト開始時刻と、リクエスト確定時刻と、待機系実行中フラグとを設定するリクエスト管理テーブルを備え、
前記第一のシステムから応答を受信した際、当該応答が前記リクエスト設定テーブルに設定されたリクエストに対する応答である場合には、当該リクエストの確定時刻として、当該応答を受信した時刻、又は当該応答に記載された時刻を前記リクエスト管理テーブルの前記リクエスト確定時刻に記録し、
当該応答のリクエストの前記シリアライズパラメータを特定し、
前記第二のシステムへの送信を保留しているリクエストから、前記シリアライズパラメータが等しいリクエストを抽出し、
抽出したリクエストのなかに、前記第二のシステムで実行されているリクエストがなく、かつ、最も古い前記リクエスト確定時刻より古い前記リクエスト開始時刻がない場合に、抽出した前記リクエストのなかで前記リクエスト確定時刻が最も古いリクエストを前記第二のシステムに送信する、
ことを特徴とする多重化方法。
【請求項１２】
請求項１１に記載の多重化方法であって、
前記システム制御部は、
前記第二のシステムから応答を受信した際、
該応答が前記リクエスト設定テーブルに設定されたリクエストに対する応答である場合には、当該リクエストの記録を前記リクエスト管理テーブルから削除し、
当該応答のリクエストの前記シリアライズパラメータを特定し、前記第二のシステムへの送信を保留しているリクエストから、前記シリアライズパラメータが等しいリクエストを抽出し、抽出した前記リクエストの中に、最も古い前記リクエスト確定時刻より古い前記リクエスト開始時刻がない場合に、抽出した前記リクエストの中で、前記リクエスト確定時刻が最も古いリクエストを前記第二のシステムに送信する、
ことを特徴とする多重化方法。
【請求項１３】
処理部と記憶部とを備え、受信するリクエストを第一のシステムと第二のシステムで処理するよう制御するシステム制御部のための多重化プログラムであって、
前記システム制御部の前記処理部で実行されることにより、
前記第一のシステムに前記リクエストを送信し、前記第二のシステムへの前記リクエストの送信を保留し、
前記第一のシステムからの前記リクエストに対する応答を待合わせ、前記第一のシステムで前記リクエストに対する業務処理が実行された順序で、前記第二のシステムに前記リクエストの業務処理を実行させる、
ことを特徴とする多重化プログラム。
【請求項１４】
請求項１３に記載の多重化プログラムであって、
前記システム制御部の前記処理部で実行されることにより、
前記第二のシステムでのリクエストの実行をシリアライズするため、送信したリクエストに対する前記第二のシステムからの応答を待って、前記第二のシステムに新たなリクエストを送信する、
ことを特徴とする多重化プログラム。
【請求項１５】
請求項１４に記載の多重化プログラムであって、
前記システム制御部の前記記憶部には、前記第二のシステムへの送信を保留するリクエストを設定するリクエスト設定テーブルを備えており、
前記システム制御部の前記処理部で実行されることにより、
前記リクエスト設定テーブルに設定されたリクエストを受信した場合に、前記第二のシステムへの当該リクエストの送信を保留し、
前記リクエスト設定テーブルに設定されていないリクエストを受信した場合には、当該リクエストの送信を保留せずに前記第二のシステムに送信する、
ことを特徴とする多重化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リクエストを本番系と待機系の２つの計算機システムに入力し、計算機システムの検証をするための多重化技術である。
【背景技術】
【０００２】
計算機システムに対して、プログラムの改修や設定の変更など実施する場合、待機系の計算機システムを用いて、動作検証を行う。例えば、本番系と待機系の２つの計算機システムに同じリクエストを入力して、２つの計算機システムからの応答を照合し、変更したシステムの動作を検証することが行われている。【０００３】
このような技術分野の背景技術としては、特許文献１、特許文献２がある。特許文献１には、本番系システム内で送受信されるデータをキャプチャー機器によりキャプチャーするキャプチャー処理と、キャプチャーされたデータをテスト機器へ転送するキャプチャーデータ転送処理と、転送されたデータを用いて本番系システムの運転テストを行なう処理とを行なうようにすることにより、本番系システムの改造を何ら行なうことなく、アプリケーションプログラムの開発工程における本番系システムとテスト支援装置との並行運転を行なうことが記載されている。【０００４】
また、特許文献２には、「業務処理を実行する複数のサーバ装置の機能を検証する検証システムにおいて、負荷分散装置と入力併走装置と出力照合装置とを備える。負荷分散装置は、クライアント装置の生成した入力を前記複数のサーバ装置のいずれかへ送信する。それらの複数のサーバ装置の中から機能の検証の対象とする本番サーバ装置を選び、その機能の検証のために検証サーバ装置とを設ける。そして、入力併走装置は、本番サーバ装置と検証サーバ装置とに同じ内容の入力を送信し、各々で同等の業務処理を実行させて、各々の出力データを出力照合装置により照合する。」と記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−７３０４３号公報
【特許文献２】特開２００７−２５７５８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明においても、背景技術と同様に、リクエストを本番系と待機系の２つの計算機システムに入力し、２つの計算機システムからの応答を照合することにより、待機系システムの動作検証を実施することを課題とする。【０００７】
しかしながら、２つの計算機システムにおいて、複数のリクエストを並列に実行した場合には、その実行順序が、本番系と待機系で一致しない可能性がある。例えば、クライアントＸから商品Ａを購入するリクエストを受信し、クライアントＹからも同じく商品Ａを購入するリクエストを受信したとする。この2つの処理が並列に実行された場合、本番系ではクライアントＸ、クライアントＹの順に処理が行われ、待機系では、クライアントＹ、クライアントＸの順に処理が行われる可能性がある。【０００８】
この場合、本番系では、クライアントＸの購入リクエストが成功、クライアントＹの購入リクエストが売り切れになり、テスト系では、クライアントＸの購入リクエストが売り切れ、クライアントＹの購入リクエストが成功となるケースが生じうる。このケースでは、２つのシステムが正常に動作しているにもかかわらず、応答が不一致になる。例えば、データベースを含むシステムにおいて、データを更新する処理を実行する場合、その応答は処理の実行順序によって変わる。そのため、処理の実行順序を一致させないと、システムの動作検証が実施できない。【０００９】
本発明の目的は、上述した課題を解決し、本番系と待機系で処理の実行順序を一致させることが可能な多重化システム、方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記の目的を達成するため、本発明においては、受信するリクエストを処理する多重化システムであって、第一のシステムと、第二のシステムと、第一のシステムと第二のシステムにリクエストを送信するシステム制御部とを備え、システム制御部は、第一のシステムにリクエストを送信し、第二のシステムへのリクエストの送信を保留し、第一のシステムからのリクエストに対する応答を待合わせ、第一のシステムでリクエストに対する処理が実行された順序で、第二のシステムにリクエストを実行させる構成の多重化システムを提供する。【００１１】
また、上記の目的を達成するため、本発明においては、受信するリクエストを第一のシステムと第二のシステムで処理するよう制御するシステム制御部における多重化方法あって、システム制御部は、第一のシステムにリクエストを送信し、第二のシステムへのリクエストの送信を保留し、第一のシステムからのリクエストに対する応答を待合わせることにより、第一のシステムでリクエストに対する業務処理が実行された順序で、第二のシステムにリクエストの業務処理を実行させる多重化方法を提供する。【００１２】
更に、上記の目的を達成するため、本発明においては、処理部と記憶部とを備え、受信するリクエストを第一のシステムと第二のシステムで処理するよう制御するシステム制御部のための多重化プログラムであって、システム制御部の処理部で実行されることにより、第一のシステムにリクエストを送信し、第二のシステムへの当該リクエストの送信を保留し、第一のシステムからのリクエストに対する応答を待合わせ、第一のシステムでリクエストに対する業務処理が実行された順序で、第二のシステムにリクエストの業務処理を実行させることを特徴とする多重化プログラムを提供する。
【発明の効果】
【００１３】
本発明の構成により、本番系と待機系で処理の実行順序を一致させることが可能な多重化システムを提供できる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施例の多重化システムの概要図である。
【図２】第１の実施例に係わる、システム制御部のハードウェア構成図である。
【図３】第１の実施例に係わる、システム制御部の機能図である。
【図４】第１の実施例に係わる、リクエスト実行判断部の動作を示すフローチャート図である。
【図５】第１の実施例に係わる、リクエスト設定テーブルの内容を例示する図である。
【図６】第１の実施例に係わる、リクエスト管理テーブルの内容を例示する図である。
【図７】第１の実施例に係わる、リクエスト実行判断部の動作を示すフローチャート図である。
【図８】第１の実施例に係わる、リクエスト実行判断部３０１の動作を示すフローチャート図である。
【発明を実施するための形態】
【００１５】
以下、実施例を図面に従い説明する。なお、多重化システムとして、本番系の第一のシステムと、待機系の第二のシステムからなる二重化システムを例示して説明するが、本発明の多重化システムは、それぞれ一個の本番系、待機系からなる二重化システムに限定されるものではない。
【実施例１】
【００１６】
図１は第１の実施例の多重化システムの概要図である。インターネット１０１を介してスイッチ１０２に入力されたリクエストは、第一のシステムである本番系１０４で、対応する業務処理が実行された後、その応答がインターネット１０１に返される。本実施例のシステムでは、システム制御部１０３を設けて、リクエストを本番系１０４と第二のシステムである待機系１０５の両方に送信する。そして、待機系１０５からの応答は、インターネット１０１に送り返すことはせず、応答結果の検証などに使用する。本番系１０４と待機系１０５は、同一のシステム構成を備えており、ロードバランサーを介して複数のアプリケーションサーバ(ＡＰ）と、それぞれのアプリケーションに対応するデータベース(ＤＢ)と、データ(Ｄａｔａ)から構成されるが、このような構成に限定されるものではない。【００１７】
本番系１０４や待機系１０５では、例えば、アプリケーションとしてオンラインショッピングなどの処理が、各アプリケーションサーバ（ＡＰ）で実行される。インターネット１０１からの入力としては、ある商品を購入するするリクエストなどが想定され、本番系１０４や待機系１０５からの業務処理が実行された後の応答としては、購入完了の応答などが想定される。【００１８】
図２は本実施例のシステム制御部１０３のハードウェア構成の一例を示す図である。図２より明らかなように、システム制御部１０３は通常のコンピュータ構成を有する。システム制御部１０３は、その内部に、バス２０１に接続された入出力インターフェース２０２を備え、ここに図示を省略したキーボードやディスプレイなどの入出力デバイスを接続できる。システムの管理者は、入出力デバイスを介して、システム制御部１０３を操作することができる。また、システム制御部１０３は、内部バス２０１に接続された、処理部となる中央処理部（Central Processing Unit：ＣＰＵ）２０３と、記憶部であるメモリ２０４を備え、メモリ２０４に格納されたプログラムを実行することができる。また、記憶装置インターフェース２０５と、記憶部であるディスク装置２０７を備え、ディスク装置２０７に格納されたプログラムをメモリ２０４に格納することができる。また、ネットワークインターフェース２０６を備え、スイッチ１０２や本番系１０４や待機系１０５と通信することができる。【００１９】
図３は、本実施例のシステム制御部１０３の機能構成の一例を示す図である。リクエスト実行判断部３０１はディスク装置２０７に格納されたプログラムであり、メモリ２０４に格納して、ＣＰＵ２０３によって実行されるプログラムとして実装される。また、リクエスト管理テーブル３０２、および、リクエスト設定テーブル３０３は、メモリ２０４に格納されるデータテーブルであり、後にその内容を図５、図６を用いて詳述する。【００２０】
図４は、本実施例のシステム制御部１０３がスイッチ１０２からリクエストを受信した場合の、リクエスト実行判断部３０１の動作の一例を示すフローチャートである。処理４０１において、リクエスト実行判断部３０１は、受信したリクエストを、本番系１０４に送信する。ここに、受信したリクエストとは、「http：//www.xxx.com/command=order&item_id=0001&user_id=0001」といった形式の電文である。【００２１】
リクエスト実行判断部３０１は、判断４０２において、受信したリクエストが、リクエスト設定テーブル３０３に登録されたリクエストか否かを判断する。本実施例においては、本番系と待機系で処理の実行順序を一致させる必要のあるリクエストを、このリクエスト設定テーブル３０３に予め登録しておく。【００２２】
図５は、リクエスト設定テーブル３０３の内容の一例を示す図である。図５に例示するように、リクエスト設定テーブル３０３には、パラメータ名５０１、パラメータ５０２、シリアライズパラメータ名５０３が登録される。図５の例では、パラメータ名５０１には「command」、パラメータ５０２には「order」、シリアライズパラメータ名５０３には「item_id」が登録されている。ここに、パラメータ名５０１とは受信したリクエストの「＝」ではさまれた項目の前半部分であり、パラメータ５０２とは受信したリクエストの「＝」ではさまれた項目の後半部分である。受信したリクエストが上述した「http：//www.xxx.com/command=order&item_id=0001&user_id=0001」の場合、「command=order」のパラメータ名が「command」であり、パラメータが「order」であることから、該当リクエストが、図５に例示したリクエスト設定テーブル３０３に登録されたリクエストであることが判断できる。なお、リクエスト設定テーブル３０３には、入出力デバイスなどを介して、予めシステムの管理者などが、本番系と待機系で処理の実行順序を一致させる必要のあるものを設定しているものとする。なお、この本番系と待機系で処理の実行順序を一致させる必要のあるパラメータとしては、上述の「order」の他、「reserve」などがある。【００２３】
図４の判断４０２の判断結果が「No」の場合、システム制御部１０３は、処理４０７において、受信したリクエストを待機系１０５に送信する。つまり、リクエスト設定テーブル３０３に登録されていないリクエストについては、本番系と待機系で処理の実行順序を一致させる必要がないので、順序の制御をせずに待機系で実行する。本実施例の多重化システムでは、リクエスト設定テーブル３０３に登録されたリクエストについては、本番系の処理の終了を待ち合わせて、待機系で処理を実行することにより、本番系と待機系で処理の実行順序を一致させる。判断４０２の判断結果が「Yes」の場合、システム制御部１０３は、処理４０３において、受信したリクエストをリクエスト管理テーブル３０２に登録する。【００２４】
図６は、リクエスト管理テーブル３０２の内容を例示する図である。図６に示すように、リクエスト管理テーブル３０２には、リクエスト６０１、シリアライズパラメータ６０２、開始時刻６０３、リクエスト確定時刻６０４、待機系実行フラグ６０５を登録する。リクエスト６０１とは、スイッチ１０２から受信した電文そのものであり、例えば、「http：//www.xxx.com/command=order&item_id=0001&user_id=0001」といった電文が登録される。シリアライズパラメータ６０２とは、リクエスト設定テーブル３０３のシリアライズパラメータ名に指定されたパラメータである。例えば、リクエストが、「http：//www.xxx.com/command=order&item_id=0001&user_id=0001」であり、シリアライズパラメータ名が「item_id」の場合、シリアライズパラメータには「0001」を設定する。開始時刻６０３には、処理４０１において該当リクエストを本番系１０４に送信した時刻を設定する。待機系実行フラグ６０５は、当該リクエストが、待機系１０５で実行中であることを示すフラグである。【００２５】
図７は、本実施例のシステム制御部１０３が、本番系１０４から業務処理が実行された後の応答を受信した場合の、リクエスト実行判断部３０１の動作を例示するフローチャートである。本番系１０４から応答を受信すると、リクエスト実行判断部３０１は、処理７０１において、応答をスイッチ１０２に送信する。また、判断７０７において、該応答がリクエスト設定テーブル３０３に設定されているリクエストに対する応答か否かを判断する。判断７０７の結果が「Yes」の場合、リクエスト実行判断部３０１は、処理７０２において、リクエスト管理テーブル３０２に対して、応答のもとになったリクエストのエントリにリクエスト確定時刻６０４を設定する。ここに、リクエスト確定時刻６０４とは、システム制御部１０３が応答を受信した時刻、あるいは、応答の電文に記載されているリクエスト確定時刻とする。【００２６】
続いて、処理７０３において、リクエスト実行判断部３０１は、リクエスト管理テーブル３０２から、該リクエストと同じシリアライズパラメータ６０２を持つエントリをすべて抽出する。例えば、上述のシリアライズパラメータ名「item_id」に対するシリアライズパラメータ「0001」を持つエントリを抽出する。判断７０４において、結果が「Yes」の場合、すなわち抽出したエントリについて、待機系実行フラグ６０５が設定されているエントリがなく、かつ、抽出したエントリの最も古いリクエスト確定時刻６０４より古いリクエスト開始時刻６０３がない場合、処理７０５に進む。【００２７】
判断７０４において、最も古いリクエスト確定時刻６０４より古いリクエスト開始時刻６０３がないことから、処理順序の逆転が発生する可能性がないと判断できる。なぜなら、最も古いリクエスト開始時刻６０３より後に開始されたリクエストは、最も古いリクエスト開始時刻６０３のリクエストが確定した時点で、未だ開始されておらず、実行順序の逆転は生じ得ないからである。そこで、処理７０５において、最も古いリクエスト確定時刻６０４のリクエストを待機系１０５に送信し、処理７０６において、該リクエストのエントリに待機系実行フラグ６０５を設定して終了する。なお、判断７０７、あるいは判断７０４の結果が「No」の場合も、そのまま終了する。【００２８】
図８は、システム制御部１０３が、待機系１０５から応答を受信した場合の、リクエスト実行判断部３０１の動作を例示するフローチャートである。待機系１０５から応答を受信すると、リクエスト実行判断部３０１は、判断８０６において、該応答がリクエスト設定テーブル３０３に設定されているリクエストに対する応答か否かを判断する。判断８０６の結果が「Yes」の場合、リクエスト実行判断部３０１は、処理８０１において、リクエスト管理テーブル３０２から、応答のもとになったリクエストのエントリを削除する。【００２９】
また、処理８０２において、該当リクエストと同じシリアライズパラメータ６０２をもつエントリをすべて抽出する。判断８０３において、抽出したエントリにおいて、最も古いリクエスト確定時刻６０４より古いリクエスト開始時刻６０３がない場合、処理８０４に進む。判断８０３において、最も古いリクエスト確定時刻６０４より古いリクエスト開始時刻６０３がないことから、処理の逆転が発生する可能性がないことを判断できる。そこで、処理８０４において、最も古いリクエスト確定時刻６０４のリクエストを待機系に送信し、処理８０５において、該リクエストのエントリに待機系実行フラグ６０５を設定する。【００３０】
以上説明した実施例の多重化システムでは、本番系と待機系で実行順序を一致させる必要があるリクエストを判別し、実行順序を一致させる必要があるリクエストを実行する場合に、待機系へのリクエスト送信を保留し。そして、本番系での実行完了の応答を待って、本番系で実行した順序に従って、１つずつ待機系にリクエストを送信する。このように、本番系では処理を多重で実行し、待機系では、実行順序を一致させる必要があるリクエストについては、その処理を１多重にシリアライズして実行する。本番系では、処理を多重で実行するため、本番系の性能は低下しない。【００３１】
また、上述した実施例の多重化システムでは、本番系で処理を開始した時刻を記録しておくとともに、処理が確定した時刻を応答リクエストに記載しておき、これらの時刻を使用して、実行順序の入れ替わりが発生しないことを確認して、待機系にリクエストを送信する。これにより、本番系と待機系でリクエストの実行順序を一致させることが出来る。【００３２】
更に、上述した実施例の多重化システムでは、第一のシステムと第二のシステムにリクエストを送信するシステム制御部のリクエスト実行判断部は、第二のシステムへのリクエストの送信を保留し、第一のシステムの応答を待合せて、第一のシステムで業務処理が実行された順序で、第二のシステムにリクエストを送信し、第二のシステムでのリクエストの実行をシリアライズするため、第二のシステムからの応答を待って、一つずつ、第二のシステムにリクエストを送信することで、第一のシステムと第二のシステムで業務処理の実行順序を一致させることが出来る。【００３３】
なお、本発明は上述した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したのであり、必ずしも説明の全ての構成を備えるものに限定されものではない。【００３４】
また、上述した実施例の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよいし、上述の通り、各構成、機能等を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやディスク装置のみならず、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体におくことができるし、必要に応じてネットワーク等を介してダウンロード、インストロールすることも可能である。
【産業上の利用可能性】
【００３５】
本発明は、リクエストを本番系と待機系の２つの計算機システムに入力し、計算機システムの検証をするための多重化技術として有用である。
【符号の説明】
【００３６】
１０１  インターネット
１０２  スイッチ
１０３  システム制御部
１０４  本番系
１０５  待機系
２０１  内部バス
２０２  入出力インターフェース
２０３  ＣＰＵ
２０４  メモリ
２０５  記憶装置インターフェース
２０６  ネットワークインターフェース
２０７  ディスク装置
３０１  リクエスト実行判断部
３０２  リクエスト管理テーブル
３０３  リクエスト設定テーブル
【図１】
2012160690.tif 000003
【図２】
2012160690.tif 000004
【図３】
2012160690.tif 000005
【図４】
2012160690.tif 000006
【図５】
2012160690.tif 000007
【図６】
2012160690.tif 000008
【図７】
2012160690.tif 000009
【図８】
2012160690.tif 000010
【国際調査報告】
2012160690.tif 000011
2012160690.tif 000012
2012160690.tif 000013
2012160690.tif 000014