(57)【要約】【課題】データ処理の完了タイミングが異なる各系のデータ処理結果を比較可能にする。【解決手段】アプリケーション２０１、３０１は同じ一連のデータ処理を行って、処理結果を業務ＤＢ２０２、３０２に格納し、処理検知部２０３、３０３が自系のデータ処理の完了を検知し、主系２００の処理が先に完了した場合に、データ検索部２０７が業務ＤＢ２０２からデータを検索し、データ比較部２０８が同期管理部２１０に処理完了を通知し、同期管理部２１０の指示によりデータ検索部２０７は検索したデータを更新データ保管ＤＢ２０９に格納し、従系３００の処理が完了した場合に、データ検索部３０７が業務ＤＢ３０２からデータを検索し、データ比較部３０８が同期管理部２１０に処理完了を通知し、同期管理部２１０の指示により更新データ保管ＤＢ２０９から主系２００側のデータを取得し、データ検索部３０７が検索したデータと比較する。【選択図】図１
2011043865.tif 000002
【特許請求の範囲】
【請求項１】
一連のデータ処理を行い、各データ処理の結果を示す処理結果データを第１の蓄積領域に蓄積させる第１のデータ処理部と、
前記第１のデータ処理部と同じ一連のデータ処理を行い、各データ処理の結果を示す処理結果データを第２の蓄積領域に蓄積する第２のデータ処理部と、
前記一連のデータ処理の完了タイミングが前記第１のデータ処理部及び前記第２のデータ処理部において異なる場合に、前記一連のデータ処理が先に完了したデータ処理部の蓄積領域に蓄積されている処理結果データを先行処理結果データとして取得し、取得した先行処理結果データを先行処理結果データ蓄積領域に蓄積させるデータ取得部と、
前記一連のデータ処理が後に完了したデータ処理部の蓄積領域に蓄積されている処理結果データを後行処理結果データとして取得するとともに、前記先行処理結果データ蓄積領域から先行処理結果データを取得し、先行処理結果データと後行処理結果データとを比較するデータ比較部とを有することを特徴とするデータ処理装置。
【請求項２】
前記第１のデータ処理部及び前記第２のデータ処理部は、
前記一連のデータ処理を他方のデータ処理部よりも先に完了した場合に、他方のデータ処理部における前記一連のデータ処理の完了を待たずに、前記一連のデータ処理に後続するデータ処理を開始することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記データ処理装置は、更に、
前記第１のデータ処理部における前記一連のデータ処理の完了タイミングを検出する第１のタイミング検出部と、
前記第２のデータ処理部における前記一連のデータ処理の完了タイミングを検出する第２のタイミング検出部と、
前記第１のタイミング検出部及び前記第２のタイミング検出部における前記一連のデータ処理の完了タイミングの検出状況に基づき、前記第１のデータ処理部及び前記第２のデータ処理部のいずれが先に前記一連のデータ処理を完了したかを判定する先行判定部とを有し、
前記データ取得部は、
前記先行判定部により前記一連のデータ処理を先に完了したと判定されたデータ処理部の蓄積領域に蓄積されている処理結果データのうち前記一連のデータ処理の完了タイミングまでに蓄積された処理結果データを先行処理結果データとして取得し、
前記データ比較部は、
前記先行判定部により前記一連のデータ処理を後に完了したと判定されたデータ処理部の蓄積領域に蓄積されている処理結果データのうち前記一連のデータ処理の完了タイミングまでに蓄積された処理結果データを後行処理結果データとして取得することを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
前記第１のタイミング検出部及び前記第２のタイミング検出部は、
各々に対応するデータ処理部からの出力に前記一連のデータ処理の完了イベントを検出したタイミングを前記一連のデータ処理の完了タイミングとすることを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
前記第１のデータ処理部及び前記第２のデータ処理部は、
同じ入力データを入力し、入力した同じ入力データに対して同じ一連のデータ処理を行うことを特徴とする請求項１〜４のいずれかに記載のデータ処理装置。
【請求項６】
前記データ処理装置は、前記第１のデータ処理部と第１の蓄積領域を含む第１のデータ処理系と、前記第２のデータ処理部と第２の蓄積領域を含む第２のデータ処理系とに分類され、
前記第１のデータ処理系は、
前記データ取得部及び前記データ比較部を、第１のデータ取得部及び第１のデータ比較部として有し、
前記先行処理結果データ蓄積領域を、第１の先行処理結果データ蓄積領域として有し、
前記第２のデータ処理系は、
前記データ取得部及び前記データ比較部を、第２のデータ取得部及び第２のデータ比較部として有し、
前記先行処理結果データ蓄積領域を、第２の先行処理結果データ蓄積領域として有し、
前記第１のデータ取得部は、
前記第１のデータ処理部が前記一連のデータ処理を先に完了した場合に、前記第１の蓄積領域に蓄積されている処理結果データを先行処理結果データとして取得し、取得した先行処理結果データを前記第１の先行処理結果データ蓄積領域に蓄積させ、
前記第２のデータ取得部は、
前記第２のデータ処理部が前記一連のデータ処理を先に完了した場合に、前記第２の蓄積領域に蓄積されている処理結果データを先行処理結果データとして取得し、取得した先行処理結果データを前記第２の先行処理結果データ蓄積領域に蓄積させ、
前記第１のデータ比較部は、
前記第１のデータ処理部が前記一連のデータ処理を後に完了した場合に、前記第１の蓄積領域に蓄積されている処理結果データを後行処理結果データとして取得するとともに、前記第２の先行処理結果データ蓄積領域から先行処理結果データを取得し、先行処理結果データと後行処理結果データとを比較し、
前記第２のデータ比較部は、
前記第２のデータ処理部が前記一連のデータ処理を後に完了した場合に、前記第２の蓄積領域に蓄積されている処理結果データを後行処理結果データとして取得するとともに、前記第１の先行処理結果データ蓄積領域から先行処理結果データを取得し、先行処理結果データと後行処理結果データとを比較することを特徴とする請求項１〜５のいずれかに記載のデータ処理装置。
【請求項７】
一連のデータ処理を行い、各データ処理の結果を示す処理結果データを第１の蓄積領域に蓄積させる第１のデータ処理ステップと、
前記第１のデータ処理ステップと同じ一連のデータ処理を行い、各データ処理の結果を示す処理結果データを第２の蓄積領域に蓄積する第２のデータ処理ステップと、
前記一連のデータ処理の完了タイミングが前記第１のデータ処理ステップ及び前記第２のデータ処理ステップにおいて異なる場合に、前記一連のデータ処理が先に完了したデータ処理ステップの蓄積領域に蓄積されている処理結果データを先行処理結果データとして取得し、取得した先行処理結果データを先行処理結果データ蓄積領域に蓄積させるデータ取得ステップと、
前記一連のデータ処理が後に完了したデータ処理ステップの蓄積領域に蓄積されている処理結果データを後行処理結果データとして取得するとともに、前記先行処理結果データ蓄積領域から先行処理結果データを取得し、先行処理結果データと後行処理結果データとを比較するデータ比較ステップとを有することを特徴とするデータ処理方法。
【請求項８】
一連のデータ処理を行い、各データ処理の結果を示す処理結果データを第１の蓄積領域に蓄積させる第１のデータ処理ステップと、
前記第１のデータ処理ステップと同じ一連のデータ処理を行い、各データ処理の結果を示す処理結果データを第２の蓄積領域に蓄積する第２のデータ処理ステップと、
前記一連のデータ処理の完了タイミングが前記第１のデータ処理ステップ及び前記第２のデータ処理ステップにおいて異なる場合に、前記一連のデータ処理が先に完了したデータ処理ステップの蓄積領域に蓄積されている処理結果データを先行処理結果データとして取得し、取得した先行処理結果データを先行処理結果データ蓄積領域に蓄積させるデータ取得ステップと、
前記一連のデータ処理が後に完了したデータ処理ステップの蓄積領域に蓄積されている処理結果データを後行処理結果データとして取得するとともに、前記先行処理結果データ蓄積領域から先行処理結果データを取得し、先行処理結果データと後行処理結果データとを比較するデータ比較ステップとをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主系と従系で同じ処理を行わせる二重化システムにおいて、主系の処理結果と従系の処理結果を比較する技術に関する。
【背景技術】
【０００２】
従来の主系と従系で独立してデータ更新を行うシステムでのデータ比較は、定期的にデータの整合性を確認するヘルスチェック機能によりシステム間のデータ比較を行う方式が提案されている（たとえば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２９７６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のデータ比較技術は、同時に２系統でデータを同一に更新することを目的としている。
そのため、２系統でのデータの更新が完了したことを確認してデータの更新処理を完了とする、または、特許文献１のように定期的にデータの整合性を確認する手法がとられている。
このような従来手法は、系によってデータの更新タイミングが違うシステム、すなわち系間で非同期にデータ更新が行われるシステムには対応できないという課題がある。
また、２系統でのデータ更新の完了をもって更新処理を完了とするため１系統のみのデータ更新に比べ処理時間が長くなるという課題がある。つまり、一方の系のデータ更新が先に完了した場合でも他方の系のデータ更新が完了するまで、当該一方の系は次の処理に移行することができず、結果的に、当該一方の系の処理時間が長くなるという課題がある。
【０００５】
この発明は、上記のような課題を解決することを主な目的の一つとしており、系間で非同期にデータ処理が行われるシステムにおいて、データ処理の完了タイミングが異なる各系のデータ処理結果を比較可能にすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るデータ処理装置は、
一連のデータ処理を行い、各データ処理の結果を示す処理結果データを第１の蓄積領域に蓄積させる第１のデータ処理部と、
前記第１のデータ処理部と同じ一連のデータ処理を行い、各データ処理の結果を示す処理結果データを第２の蓄積領域に蓄積する第２のデータ処理部と、
前記一連のデータ処理の完了タイミングが前記第１のデータ処理部及び前記第２のデータ処理部において異なる場合に、前記一連のデータ処理が先に完了したデータ処理部の蓄積領域に蓄積されている処理結果データを先行処理結果データとして取得し、取得した先行処理結果データを先行処理結果データ蓄積領域に蓄積させるデータ取得部と、
前記一連のデータ処理が後に完了したデータ処理部の蓄積領域に蓄積されている処理結果データを後行処理結果データとして取得するとともに、前記先行処理結果データ蓄積領域から先行処理結果データを取得し、先行処理結果データと後行処理結果データとを比較するデータ比較部とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、第１のデータ処理部及び第２のデータ処理部において一連のデータ処理の完了タイミングが異なる場合でも、先にデータ処理が完了したデータ処理部の処理結果データを先行処理結果データ蓄積領域に蓄積させるため、双方のデータ処理部における一連のデータ処理が完了した時点で、先行処理結果データ蓄積領域に蓄積されている先行処理結果データを用いて双方のデータ処理部の処理結果を比較することできる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るデータ処理装置の構成例を示す図。
【図２】実施の形態２に係るデータ処理装置の構成例を示す図。
【図３】実施の形態３に係るデータ処理装置の構成例を示す図。
【図４】実施の形態１に係る主系アプリケーション及び従系アプリケーションの動作例を示すフローチャート図。
【図５】実施の形態１に係る処理検知部、データ検索部等の動作例を示すフローチャート図。
【図６】実施の形態１〜３に係るデータ処理装置のハードウェア構成例を示す図。
【図７】実施の形態１に係るシステム構成例を示す図。
【発明を実施するための形態】
【０００９】
実施の形態１．
本実施の形態及び実施の形態２以降では、非同期にデータ更新が行われる複数系統のシステム間で任意のタイミングで同一更新処理による更新データが同一であるかの比較を行う仕組みについて説明する。
【００１０】
図１は、本実施の形態に係るデータ処理装置１００の構成例を示す。
【００１１】
図１に示すように、本実施の形態に係るデータ処理装置１００は、主系２００（第１のデータ処理系）と従系３００（第２のデータ処理系）の２つのデータ処理系を有する。
つまり、本実施の形態に係るデータ処理装置１００は、主系２００、従系３００からなる二重系システムでそれぞれ同一の処理要求メッセージを受信しデータ更新を伴う処理を行う二重系システムの例である。
主系２００と従系３００は、例えば図７に示すように、ネットワークを介してクライアント装置に接続されたサーバ装置である。
【００１２】
主系２００には、主系アプリケーション２０１が含まれ、従系３００には、従系アプリケーション３０１が含まれる。
主系アプリケーション２０１と従系アプリケーション３０１は、同じメッセージを入力し、同じ一連のデータ処理を行う。
このため、主系アプリケーション２０１と従系アプリケーション３０１が正常に機能していれば、主系アプリケーション２０１のデータ処理結果と従系アプリケーション３０１のデータ処理結果は同じになる。
また、主系アプリケーション２０１と従系アプリケーション３０１は、異なるタイミングでメッセージを入力するため、データ処理の完了タイミングが異なる。
なお、主系アプリケーション２０１は第１のデータ処理部の例であり、従系アプリケーション３０１は第２のデータ処理部の例である。
【００１３】
次に、主系アプリケーション２０１以外の主系２００の構成要素及び従系アプリケーション３０１以外の従系３００の構成要素について説明する。
なお、主系２００と従系３００は、同期管理部２１０以外は、同じ構成になっている。
このため、以下では、対応関係になっている構成要素ごとに説明する。
【００１４】
業務ＤＢ２０２、３０２はアプリケーションで更新され、比較対象となるデータの保管機能である。
つまり、業務ＤＢ２０２は、主系アプリケーション２０１のデータ処理の結果を示す更新データ（処理結果データ）を蓄積保管する。
業務ＤＢ２０２は、第１の蓄積領域の例である。
また、業務ＤＢ３０２は、従系アプリケーション３０１のデータ処理の結果を示す更新データ（処理結果データ）を蓄積保管する。
業務ＤＢ３０２は、第２の蓄積領域の例である。
【００１５】
処理検知部２０３、３０３は、検知イベントテーブル２０４、３０４に登録されているイベントが発生したかを監視する機能である。
より具体的には、処理検知部２０３は、検知イベントテーブル２０４に登録されている処理イベントを検出することで、主系アプリケーション２０１における一連のデータ処理の種類を検出し、検知イベントテーブル２０４に登録されている完了イベントを検出することで、一連のデータ処理の完了（データ比較）タイミングを検出する。
処理イベントは、例えば、ユーザからのＤＢ更新要求メッセージの結果の更新イベントであり、完了イベントは、例えば、ユーザからのログアウト要求メッセージの受信イベントである。処理イベント及び完了イベントは、これらに限らない。
処理検知部２０３は、第１のタイミング検出部の例である。
また、処理検知部３０３は、検知イベントテーブル３０４に登録されている処理イベントを検出することで、従系アプリケーション３０１における一連のデータ処理の種類を検出し、検知イベントテーブル３０４に登録されている完了イベントを検出することで、一連のデータ処理の完了タイミングを検出する。
従系アプリケーション３０１は、第２のタイミング検出部の例である。
なお、処理検知部２０３及び処理検知部３０３は、同じ処理イベント及び完了イベントを用いる。
【００１６】
検知イベントテーブル２０４、３０４は、処理検知部２０３、３０３が検知するイベントの情報を登録するテーブルである。
つまり、検知イベントテーブル２０４、３０４は、主系アプリケーション２０１、従系アプリケーション３０１における一連のデータ処理の種類を表す処理イベントと完了タイミング（データ比較実行タイミング）を表す完了イベントの情報を登録している。
【００１７】
比較対象データテーブル２０５、３０５は、業務ＤＢ２０２、３０２に蓄積されているデータのうち、他方の系のデータとの比較の対象となるデータを登録するテーブルである。
【００１８】
検知イベントＤＢ２０６、３０６は、処理検知部２０３、３０３が検知したイベントの一時保管機能である。
【００１９】
データ検索部２０７、３０７は、業務ＤＢ２０２、３０２から比較対象となるデータを検索する機能である。
データ検索部２０７は第１のデータ取得部の例であり、データ検索部３０７は第２のデータ取得部の例である。
データ検索部２０７は、主系アプリケーション２０１における一連のデータ処理が従系アプリケーション３０１におけるデータ処理よりも先に完了する場合に、業務ＤＢ２０２に蓄積されているデータを取得し、取得したデータを更新データ保管ＤＢ２０９に出力し、更新データ保管ＤＢ２０９に蓄積させる。
一方、主系アプリケーション２０１における一連のデータ処理が従系アプリケーション３０１におけるデータ処理よりも後に完了する場合に、業務ＤＢ２０２に蓄積されているデータを取得し、取得したデータをデータ比較部２０８に出力し、データ比較部２０８にデータの比較を行わせる。
同様に、データ検索部３０７は、従系アプリケーション３０１における一連のデータ処理が主系アプリケーション２０１におけるデータ処理よりも先に完了する場合に、業務ＤＢ３０２に蓄積されているデータを取得し、取得したデータを更新データ保管ＤＢ３０９に出力し、更新データ保管ＤＢ３０９に蓄積させる。
一方、従系アプリケーション３０１における一連のデータ処理が主系アプリケーション２０１におけるデータ処理よりも後に完了する場合に、業務ＤＢ３０２に蓄積されているデータを取得し、取得したデータをデータ比較部３０８に出力し、データ比較部３０８にデータの比較を行わせる。
一連のデータ処理が先に完了したアプリケーションの業務ＤＢから取得するデータは先行処理結果データの例であり、一連のデータ処理が後に完了したアプリケーションの業務ＤＢから取得するデータは後行処理結果データの例である。
【００２０】
データ比較部２０８、３０８は比較対象の処理の完了を判別し、データ検索部２０７、３０８で検索した更新データを比較する機能である。
データ比較部２０８は第１のデータ比較部の例であり、データ比較部３０８は第２のデータ比較部の例である。
データ比較部２０８は、主系アプリケーション２０１における一連のデータ処理が従系アプリケーション３０１におけるデータ処理よりも先に完了する場合に、主系アプリケーション２０１において一連のデータ処理が完了した際に、同期管理部２１０に主系アプリケーション２０１における一連のデータ処理の完了を通知する。
また、データ比較部２０８は、主系アプリケーション２０１における一連のデータ処理が従系アプリケーション３０１におけるデータ処理よりも後に完了する場合に、主系アプリケーション２０１において一連のデータ処理が完了した際に、更新データ保管ＤＢ３０９に蓄積されているデータ（先行処理結果データ）を取得するとともに、業務ＤＢ２０２に蓄積されているデータ（後行処理結果データ）をデータ検索部２０７を通じて取得し、更新データ保管ＤＢ２０９からのデータと業務ＤＢ２０２からのデータを比較する。
同様に、データ比較部３０８は、従系アプリケーション３０１における一連のデータ処理が主系アプリケーション２０１におけるデータ処理よりも先に完了する場合に、従系アプリケーション３０１において一連のデータ処理が完了した際に、同期管理部２１０に従系アプリケーション３０１における一連のデータ処理の完了を通知する。
また、データ比較部３０８は、従系アプリケーション３０１における一連のデータ処理が主系アプリケーション２０１におけるデータ処理よりも後に完了する場合に、従系アプリケーション３０１において一連のデータ処理が完了した際に、更新データ保管ＤＢ２０９に蓄積されているデータ（先行処理結果データ）を取得するとともに、業務ＤＢ３０２に蓄積されているデータ（後行処理結果データ）をデータ検索部３０７を通じて取得し、更新データ保管ＤＢ２０９からのデータと業務ＤＢ３０２からのデータを比較する。
【００２１】
更新データ保管ＤＢ２０９、３０９は、データ検索部２０７、３０７が検索したデータの一時保管機能である。
更新データ保管ＤＢ２０９、３０９は、一連のデータ処理が先に完了したアプリケーションの業務ＤＢから取得するデータ、つまり先行処理結果データの蓄積領域であり、先行処理結果データ蓄積領域の例である。
【００２２】
同期管理部２１０は、主系２００と従系３００の対応する同一処理の完了を管理する機能である。
つまり、同期管理部２１０は、一連のデータ処理が先に完了する系のデータ比較部からの通知により、主系アプリケーション２０１、従系アプリケーション３０１のいずれが先に一連のデータ処理を完了したかを判定し、一連のデータ処理が後に完了する系のデータ比較部が更新データ保管ＤＢ２０９又は更新データ保管ＤＢ３０９から比較対象データを抽出できるように、一意の更新ＩＤを採番する。
また、同期管理部２１０は、一連のデータ処理が先に完了した系のデータ比較部に他方の系はデータ処理が未完了であることを通知する。
また、同期管理部２１０は、後に一連のデータ処理が完了した系のデータ比較部に、完了した処理に対応する更新ＩＤを通知し、当該データ比較部が更新データ保管ＤＢ２０９又は更新データ保管ＤＢ３０９から比較対象データを取得できるようにする。
同期管理部２１０は、データ処理装置１００で１つである。
なお、同期管理部２１０は、先行判定部の例である。
【００２３】
次に動作について説明する。
先ず、主系アプリケーション２０１及び従系アプリケーション３０１の動作例を図４のフローチャートを参照して説明する。
【００２４】
主系アプリケーション２０１及び従系アプリケーション３０１は、メッセージを入力しながら所定のデータ処理を行う（Ｓ４０１）、（第１のデータ処理ステップ）、（第２のデータ処理ステップ）。
次に、主系アプリケーション２０１及び従系アプリケーション３０１は、Ｓ４０１のデータ処理の結果を示すデータを業務ＤＢ２０２、３０２に格納する（Ｓ４０２）、（第１のデータ処理ステップ）、（第２のデータ処理ステップ）。
次に、主系アプリケーション２０１及び従系アプリケーション３０１は、Ｓ４０１のデータ処理の結果を示すログを出力する。処理検知部２０３、３０３は出力されたログを識別する（Ｓ４０３）。なお、このログは、Ｓ４０１が行われる度に出力されなくてもよいが、少なくとも一連のデータ処理を一意に識別可能な処理と完了時（たとえば、ログアウト処理）には出力される。
以上のＳ４０１〜Ｓ４０３の処理を一連のデータ処理が完了する（Ｓ４０４）まで続ける。
【００２５】
次に、主系アプリケーション２０１及び従系アプリケーション３０１以外の要素の動作例を図５のフローチャートを参照して説明する。
【００２６】
図５のフローチャートでは、図１に示すデータ処理装置１００において、非同期に送信される同一内容の処理要求メッセージを受信し、同一メッセージの処理を双方が完了したタイミングで更新されたデータを比較する例について説明する。
また、ここでは、主系２００へメッセージが先に送信され、後から従系３００へメッセージが送信される場合について説明する。
主系と従系のメッセージ送信の順番が変わる場合は、主系の処理が従系、従系の処理が主系の処理に変わる。
【００２７】
主系アプリケーション２０１は外部から処理要求メッセージＡ（例えば、商品注文メッセージなど）を受信すると、図４に示したように、要求された処理を実行し、業務ＤＢ２０２を更新する（処理結果を示すデータを業務ＤＢ２０２に格納する）。
処理検知部２０３は、主系アプリケーション２０１の振る舞いを判別可能なイベントを監視する。
例えば、主系アプリケーション２０１の出力ログ、送信メッセージのログ、ＤＢの更新ログなどである。
ここでは、主系アプリケーション２０１が出力するログを監視するものとし、主系アプリケーション２０１はメッセージＡの処理結果としてログＡを出力するものとする。
処理検知部２０３は、ログＡの検出により主系アプリケーション２０１における一連のデータ処理の実行（例えば、商品購入処理）を検知する。
検知イベントテーブル２０４には、ログＡを監視対象として事前に登録しておく。
処理検知部２０３は、イベントを検知すると（Ｓ５０１）、検知イベントテーブル２０４を照合し（Ｓ５０２）、検知したイベントが検知イベントテーブル２０４に登録されているログＡである場合（Ｓ５０３でＹＥＳ）に、ログＡはデータ比較を実行するイベントではないので（Ｓ５０４でＮＯ）、更新データの検索のために必要な情報とともに検知した情報（ログＡ）を検知イベントＤＢ２０６に保管する（Ｓ５０５）。
更新データの検索情報は、ＤＢのログなど処理検知部２０３が検知したイベント以外の情報でもよい。
【００２８】
次に、主系アプリケーション２０１で一連のデータ処理が実施され、一連のデータ処理の完了を示すメッセージＢ（例えばログアウト要求メッセージなど）を受信したとする。
本実施の形態に係るデータ処理装置１００では、一連の処理の完了時に更新データを比較するため、メッセージＢに対応するログＢをデータ比較を実行するイベントとして検知イベントテーブル２０４に登録しておく。
処理検知部２０３はログＢを検知すると、検知イベントテーブル２０４の登録内容からデータ比較を実行するイベントであることを判別し（Ｓ５０４でＹＥＳ）、データ比較部２０８にそれまでに検知イベントＤＢ２０６に保管されているイベントに対応する業務ＤＢ２０２内の更新データを比較するよう指示する。
データ比較部２０８は、データ検索部２０７に更新データの検索を指示する。
比較対象データテーブル２０５には、検知イベントＤＢ２０６に保管されるイベントで更新されるＤＢの情報をあらかじめ登録しておく。
データ検索部２０７は、検索指示を受けると、検知イベントＤＢ２０６から検索するイベントを特定し（Ｓ５０６）、さらに比較対象データテーブル２０５からイベントと関連づく業務ＤＢ２０２を特定し（Ｓ５０７）、そのＤＢから検知イベントＤＢ２０６に保管してある検索情報を用いて更新データを検索する（Ｓ５０８）（データ取得ステップ）。データ検索部２０７は、一連のデータ処理の完了タイミングまでに業務ＤＢ２０２に蓄積されたデータから検索する。
データ検索が完了するとデータ比較部２０８は、同期管理部２１０にメッセージＡに対応するデータ検索処理完了、つまり、主系アプリケーション２０１における一連のデータ処理の完了を通知する。
同期管理部２１０は、主系２００のメッセージＡの完了通知を受け取ると従系３００で対応する処理が完了しているかを確認する（Ｓ５０９）（データ取得ステップ）。
従系３００の処理が未完了である場合（Ｓ５０９でＮＯ）は、同期管理部２１０は、主系２００における一連のデータ処理が完了したことを記録し、比較時に比較対象データを識別するための一意の更新ＩＤを採番し、更新ＩＤと共に従系３００の処理が未完了であることをデータ比較部２０８に返答する。
データ比較部２０８が従系３００において比較対象の処理が未完了であることを受け取ると、データ検索部２０７がデータ比較部２０８からの指示を受け、検索結果（比較対象の更新データ）を更新データ保管ＤＢ２０９に保存する（Ｓ５１０）（データ取得ステップ）。
このとき、比較時に更新ＩＤでデータを取り出せるように検索結果と更新ＩＤを関連付けて保存する。
【００２９】
次に、従系３００側の動作について述べる。
従系３００側で同様に従系アプリケーション３０１が処理要求メッセージＡを受信し、引き続きメッセージＢを受信すると処理検知部３０３がログＡ及びログＢを検知し、データ比較部３０８からの指示でデータ検索部３０７が更新データを検索するまでの処理は主系２００の処理と同一である。
データ検索が完了するとデータ比較部３０８は、同期管理部２１０にメッセージＡに対応するデータ検索処理完了を通知する。
同期管理部２１０は、従系３００のメッセージＡの完了通知を受け取ると従系３００における一連のデータ処理が完了したことを記録する。
その後、主系２００で対応する処理が完了しているかを確認し（Ｓ５０９）、対応する主系２００の処理が完了していることを確認すると（Ｓ５０９でＹＥＳ）、従系３００に主系２００の処理が完了していることと主系２００の処理に対応する更新ＩＤを回答する。
従系のデータ比較部２０８は、同期管理部２１０から受け取った更新ＩＤに対応するデータを主系の更新データ保管ＤＢ２０９から取り出し（Ｓ５１１）（データ比較ステップ）、また、データ検索部２０７で検索した更新データを取得し、更新データ保管ＤＢ２０９からの主系２００の更新データと、データ検索部２０７からの従系３００の更新データを比較する（Ｓ５１２）（データ比較ステップ）。
【００３０】
以上のように、処理検知部でデータ更新、データ比較処理実行イベントを監視し、更新データを更新データ保管ＤＢに一時保管し、同期管理部でそれぞれの系の処理の完了を監視し、比較実行タイミングを制御するようにしているので、非同期にデータ更新が行われる複数系統のシステム間で特定処理完了のタイミングでデータ比較を実行することができる。
また、処理検知部は、アプリケーションのログ、データベースの更新ログなど既存のイベントを監視し、検知すべきイベントを検知イベントテーブル、イベントと更新データの関連付けを比較対象データテーブルに登録することにより、データを更新するプログラムの変更は行わずに既存のプログラムに対してデータ比較を実現することが可能となる。
【００３１】
また、アプリケーションによる一連のデータ処理と更新データの比較とを分離しているので、一連のデータ処理を先に完了した系のアプリケーションは、他方の系におけるデータ処理の完了を待たずに、後続のデータ処理に移行することができる。
【００３２】
なお、本実施の形態では、２重系から成るシステムでのデータ比較の動作について説明したが、３重系以上で構成される多重系システムにも適用可能である。
その場合は、同期管理部はすべての系の更新処理の完了を管理する。
また、データ比較部はすべての系の更新データと比較することで実現する。
【００３３】
なお、本実施の形態では、２重系システムのアプリケーション、メッセージが同一の場合について説明したが、アプリケーション、メッセージが一致はしないが（例えば、アプリケーションのバージョンアップ時など）処理単位でのデータ比較が可能な場合にも適用可能である。
その場合は、それぞれの系の検知イベントＴＢＬ２０４、３０４、比較対象データＴＢＬ２０５、３０５の登録内容をアプリケーションの処理に合わせることで実現する。
【００３４】
以上、本実施の形態では、
Ｄｉｓｋ非共有で、主系に送信されるオンラインメッセージと同一のメッセージを従系に送信することでデータ同期を行う多重系システムにおいて、以下の手段を備え、データ更新処理と連動したデータ比較を可能とするデータ比較方式を説明した。
（ａ）自系で行われた処理を特定するためのイベント（メッセージ受信、アプリケーション動作ログ出力、データ更新など）の発生を検知する処理検知部；
（ｂ）（ａ）の処理検知部が検知したイベントのうちアクションを起こす必要のあるイベントの情報を保管しておく検知イベントテーブル；
（ｃ）処理検知部が検知イベントテーブルに登録されているイベントを検知した場合にイベントに関する情報を保管する検知イベントＤＢ；
（ｄ）比較対象となる更新データを検索するデータ検索部；
（ｅ）比較対象の系の同一処理が完了しているかを判断し、処理が完了している場合はデータ検索部で検索したデータと比較対象の系のデータを比較し、比較対象の系の処理が未完了の場合はデータ検索部で検索したデータを保管するデータ比較部；
（ｆ）処理検知部で検知したイベントとイベントで更新されるＤＢの関連付けを定義、保管する比較対象データテーブル；
（ｇ）比較対象の系の処理が完了していない場合にデータ検索部で検索した更新データを保管しておく更新データ保管ＤＢ；
（ｈ）比較対象となる系の更新処理の完了、系間の比較対象データの関連性を管理する同期管理部。
【００３５】
また、本実施の形態では、処理検知部でデータ更新処理の完了を検知し、同期管理部で系毎のデータ更新処理の完了を管理することで、それぞれ非同期にデータ更新が行われる多重系システムのデータ比較を可能とするデータ比較方式を説明した。
【００３６】
また、本実施の形態では、処理検知部でデータ更新処理の完了を検知し、データ比較を実行することで処理の完了と連動してデータ比較を実行することを可能とするデータ比較方式を説明した。
【００３７】
また、本実施の形態では、データ更新、更新処理完了に関するイベントなど比較対象データの抽出に必要な情報、データ比較実行のトリガーとなる情報を検知イベントテーブルに登録し、処理検知部は、検知イベントテーブルに登録されているイベントの発生を監視することで、データの更新プログラムにデータ比較のための機能を組み込まずにデータ比較を可能とするデータ比較方式を説明した。
【００３８】
実施の形態２．
以上の実施の形態１では、検知イベントテーブル、比較対象データテーブルを各系に配置した例であるが各系のアプリケーション、ＤＢが同一であり検知イベントテーブル、比較対象データテーブルを共通化できる場合は図２のように検知イベントテーブル、比較対象データテーブルを１つの系に配置し、他の系から参照する構成でもよい。
このような構成の場合も動作は変わらない。
【００３９】
実施の形態３．
また、実施の形態１及び実施の形態２では、同期管理部を主系２００に配置していたが、図３に示すように、主系２００から独立させて同期管理部４０１として配置するようにしてもよい。
また、データ検索部、データ比較部及び更新データ保管部を主系２００及び従系３００にそれぞれ配置していたが、同様に、図３に示すように、主系２００及び従系３００から独立させてデータ検索部４０２、更新データ保管ＤＢ４０３及びデータ比較部４０４として配置するようにしてもよい。
なお、主系２００において、主系アプリケーション２０１、業務ＤＢ２０２、処理検知部２０３、検知イベントテーブル２０４、比較対象データテーブル２０５、検知イベントＤＢ２０６は図１に示したものと同様であり、従系３００において、従系アプリケーション３０１、業務ＤＢ３０２、処理検知部３０３、検知イベントテーブル３０４、比較対象データテーブル３０５、検知イベントＤＢ３０６は図１に示したものと同様である。
【００４０】
各要素の動作は、実施の形態１に示したとおりである。
具体的には、データ比較部４０４は、処理検知部２０３及び処理検知部３０３からログＢの検出を通知され、同期管理部４０１に主系２００及び従系３００における一連のデータ処理の完了を通知する。
また、データ比較部４０４は、ログＢの検出により、データ検索部４０２に業務ＤＢ２０２及び業務ＤＢ３０２から更新データを検索するよう指示し、データ検索部４０２が更新データを検索する。
同期管理部４０１では、データ比較部４０４からの通知の前後により主系２００及び従系３００のいずれが先に一連のデータ処理を完了したかを判定することができる。
ここでは、実施の形態１と同様に、主系２００が先に一連のデータ処理を完了したとする。
同期管理部４０１は、データ検索部４０２に先にデータ処理を完了した主系２００の更新データを更新データ保管ＤＢ４０３に格納させる。
また、従系３００でデータ処理が完了した際に、同期管理部４０１が主系２００と従系３００の双方でデータ処理が完了していることを確認し、データ比較部４０４が、更新データ保管ＤＢ４０３から主系２００の更新データ（先行処理結果データ）を取得し、データ検索部４０２から従系３００の更新データ（後行処理結果データ）を取得して、両更新データを比較する。
【００４１】
このように、図３に示す構成においても、実施の形態１と同様に、非同期にデータ更新が行われる複数系統のシステム間で特定処理完了のタイミングでデータ比較を実行することができる。
【００４２】
最後に、実施の形態１〜３に示したデータ処理装置１００のハードウェア構成例について説明する。
図６は、実施の形態１〜３に示すデータ処理装置１００のハードウェア資源の一例を示す図である。
なお、図６の構成は、あくまでもデータ処理装置１００のハードウェア構成の一例を示すものであり、データ処理装置１００のハードウェア構成は図６に記載の構成に限らず、他の構成であってもよい。
【００４３】
図６において、データ処理装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態１〜３で説明した「〜ＤＢ」は、ＲＡＭ９１４、磁気ディスク装置９２０等により実現される。
通信ボード９１５、キーボード９０２、マウス９０３、スキャナ装置９０７、ＦＤＤ９０４などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。
【００４４】
通信ボード９１５は、ネットワークに接続されている。例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）、ＳＡＮ（ストレージエリアネットワーク）などに接続されていても構わない。
【００４５】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
プログラム群９２３のプログラムは、ＣＰＵ９１１がオペレーティングシステム９２１、ウィンドウシステム９２２を利用しながら実行する。
【００４６】
また、ＲＡＭ９１４には、ＣＰＵ９１１に実行させるオペレーティングシステム９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭ９１４には、ＣＰＵ９１１による処理に必要な各種データが格納される。
【００４７】
また、ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。
データ処理装置１００の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム９２１が起動される。
【００４８】
上記プログラム群９２３には、実施の形態１〜３の説明において「〜部」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【００４９】
ファイル群９２４には、実施の形態１〜３の説明において、「〜の判断」、「〜の計算」、「〜の比較」、「〜の検索」、「〜の更新」、「〜の抽出」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１〜３で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００５０】
また、実施の形態１〜３の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、実施の形態１〜３の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態１〜３の「〜部」の手順や方法をコンピュータに実行させるものである。
【００５１】
このように、実施の形態１〜３に示すデータ処理装置１００は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【００５２】
１００  データ処理装置、２００  主系、２０１  主系アプリケーション、２０２  業務ＤＢ、２０３  処理検知部、２０４  検知イベントテーブル、２０５  比較対象データテーブル、２０６  検知イベントＤＢ、２０７  データ検索部、２０８  データ比較部、２０９  更新データ保管ＤＢ、２１０  同期管理部、３００  従系、３０１  従系アプリケーション、３０２  業務ＤＢ、３０３  処理検知部、３０４  検知イベントテーブル、３０５  比較対象データテーブル、３０６  検知イベントＤＢ、３０７  データ検索部、３０８  データ比較部、３０９  更新データ保管ＤＢ、４０１  同期管理部、４０２  データ検索部、４０３  更新データ保管ＤＢ、４０４  データ比較部。
【図１】
2011043865.tif 000003
【図２】
2011043865.tif 000004
【図３】
2011043865.tif 000005
【図４】
2011043865.tif 000006
【図５】
2011043865.tif 000007
【図６】
2011043865.tif 000008
【図７】
2011043865.tif 000009