(57)【要約】【課題】DBMSやアプリケーションを限定せず汎用的に、かつDBMSやアプリケーションを変更することなく透過的に、DBMSへの接続が複数存在した場合でも、プライマリDBMSとバックアップDBMSへのデータ処理要求の投入順序の同一性を保障し、整合性のとれたデータ複製を行う。【解決手段】アプリケーションサーバ3300-1、3300-2、…、3300-nのミドルウェア3320は、複数のDBMSへデータ処理要求を発行する際、順序制御サーバ3400に処理許可を申請し、許可が得られたらデータ処理要求を多重化し発行する。システム全体で常に１つのデータ処理要求のみが、多重化、処理されるため、DBMSへの複数の接続があったとしても、プライマリDBMS3110とバックアップDBMS3210へのデータ処理要求の投入順序の同一性を保証し、整合性の取れたデータの複製を行う。【選択図】図１
2007200086.tif 000002
【特許請求の範囲】
【請求項１】
１以上のアプリケーションサーバと複数のデータベースサーバとを計算機システムに備え、前記アプリケーションサーバで稼動するアプリケーションプログラムからDBMSへ出されるデータ処理要求を多重化するデータ複製システムにおいて、多重化したデータ処理要求の全てが少なくともデータベースサーバに到達するまでの期間、他のデータ処理要求のDBMSへの投入を制限することにより、複数のDBMSへのデータ処理要求の投入順序の同一性を保証することを特徴とするデータ複製システム。
【請求項２】
多重化したデータ処理要求の処理応答を検出する検出手段と、全ての処理応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限する制限手段とを備え、システム全体で常に１つのデータ処理要求のみを多重化、処理することを特徴とする請求項１記載のデータ複製システム。
【請求項３】
アプリケーションサーバとデータベースサーバとの間のデータ処理要求の転送を行うミドルウェアを備え、前記ミドルウェアに、多重化したデータ処理要求の全てがデータベースサーバに到達したことを検出する検出手段と、全ての到達応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限する制限手段とを備え、システム全体で常に１つのデータ処理要求のみを多重化、投入することを特徴とする請求項１記載のデータ複製システム。
【請求項４】
前記検出手段および前記制限手段を各アプリケーションサーバのミドルウェアに備えることを特徴とする請求項２または３記載のデータ複製システム。
【請求項５】
各アプリケーションサーバからのデータ処理要求を多重化して複数のデータベースシステムに転送するデータ処理要求制御サーバを備え、前記データ処理要求制御サーバに前記検出手段および前記制限手段を備えることを特徴とする請求項２または３記載のデータ複製システム。
【請求項６】
データ処理要求の処理順序を制御する順序制御サーバを備えることを特徴とする請求項２または３記載のデータ複製システム。
【請求項７】
各アプリケーションサーバに、他のアプリケーションサーバとデータ処理要求の処理順序を制御するために処理許可交渉を行う許可申請交渉手段を備えることを特徴とする請求項２または３記載のデータ複製システム。
【請求項８】
順序制御サーバと、１以上のアプリケーションサーバと、複数のデータベースサーバとを計算機システムに備え、
前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSとを備え、
前記アプリケーションサーバは、アプリケーションプログラムと、ミドルウェアとを備え、
前記ミドルウェアは、アプリケーションプログラムが発行するデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換する複数のDB接続手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記DB接続手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する応答が返ってきたときに前記完了通知手段によりデータ処理要求の完了を前記順序制御サーバに通知する制御手段とを備え、
前記順序制御サーバは、データ処理要求の処理の許可申請を受け付ける申請受付手段と、データ処理要求の処理の許可を通知する許可通知手段と、データ処理要求の完了通知を受け付ける通知受付手段と、前記許可通知手段により処理の許可を通知したデータ処理要求の完了通知が前記通知受付手段で受け付けられるまで他のデータ処理要求の処理に対して許可を与えない許可申請制御手段とを備えることを特徴とするデータ複製システム。
【請求項９】
順序制御サーバと、１以上のアプリケーションサーバと、複数のデータベースサーバと、データ処理要求制御サーバとを計算機システムに備え、
前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSとを備え、
前記アプリケーションサーバは、アプリケーションプログラムと、ミドルウェアとを備え、
前記ミドルウェアは、アプリケーションプログラムが発行するデータ処理要求を前記データ処理要求制御サーバへ送信し、前記データ処理要求制御サーバから受信したデータ処理の応答を前記アプリケーションプログラムへ通知するアプリケーションサーバ側送受信手段を備え、
前記データ処理要求制御サーバは、前記アプリケーションサーバ側送受信手段からデータ処理要求を受信すると共に前記アプリケーションサーバ側送受信手段へデータ処理の応答を送信するデータ処理要求制御サーバ側送受信手段と、前記データ処理要求制御サーバ側送受信手段で受信したデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換する複数のDB接続手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の完了を通知する完了通知手段と、前記データ処理要求制御サーバ側送受信手段で受信したデータ処理要求を多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記DB接続手段を通じてDBMSへ送出し、多重化した全てのデータ処理要求に対する応答が返ってきたときに前記完了通知手段によりデータ処理要求の完了を前記順序制御サーバに通知する制御手段とを備え、
前記順序制御サーバは、データ処理要求の処理の許可申請を受け付ける申請受付手段と、データ処理要求の処理の許可を通知する許可通知手段と、データ処理要求の完了通知を受け付ける通知受付手段と、前記許可通知手段により処理の許可を通知したデータ処理要求の完了通知が前記通知受付手段で受け付けられるまで他のデータ処理要求の処理に対して許可を与えない許可申請制御手段とを備えることを特徴とするデータ複製システム。
【請求項１０】
１以上のアプリケーションサーバと、複数のデータベースサーバとを計算機システムに備え、
前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSとを備え、
前記アプリケーションサーバは、アプリケーションプログラムと、ミドルウェアとを備え、
前記ミドルウェアは、アプリケーションプログラムが発行するデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換する複数のDB接続手段と、他のアプリケーションサーバとデータ処理要求の処理の許可申請の交渉を行う許可申請交渉手段と、前記許可申請交渉手段へデータ処理要求の処理の許可を申請する許可申請手段と、前記許可申請交渉手段から許可通知を受け付ける許可受付手段と、前記許可申請交渉手段へデータ処理要求の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記DB接続手段を通じてDBMSへ送出し、多重化した全てのデータ処理要求に対する応答が返ってきたときに前記完了通知手段によりデータ処理要求の完了を前記許可申請交渉手段に通知する制御手段とを備え、
前記許可申請交渉手段は、処理の許可を通知したデータ処理要求の完了通知が前記通知受付手段で受け付けられるまで、他のデータ処理要求の処理に対して許可を与えないことを特徴とするデータ複製システム。
【請求項１１】
順序制御サーバと、１以上のアプリケーションサーバと、複数のデータベースサーバとを計算機システムに備え、
前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSと、データベースサーバ側ミドルウェアとを備え、
前記データベースサーバ側ミドルウェアは、前記アプリケーションサーバからデータ処理要求を受信したときに到達応答を前記アプリケーションサーバに送信すると共に、前記アプリケーションサーバへデータ処理の応答を送信するデータベースサーバ側送受信手段と、前記データベースサーバ側送受信手段を通じて前記アプリケーションサーバから受信したデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備え、
前記アプリケーションサーバは、アプリケーションプログラムと、アプリケーションサーバ側ミドルウェアとを備え、
前記アプリケーションサーバ側ミドルウェアは、前記データベースサーバ側送受信手段との間でデータの送受信を行うアプリケーションサーバ側送受信手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の投入の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記アプリケーションサーバ側送受信手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する到達応答が返ってきたときに前記完了通知手段によりデータ処理要求の投入の完了を前記順序制御サーバに通知する制御手段とを備え、
前記順序制御サーバは、データ処理要求の処理の許可申請を受け付ける申請受付手段と、データ処理要求の処理の許可を通知する許可通知手段と、データ処理要求の投入の完了通知を受け付ける通知受付手段と、前記許可通知手段により処理の許可を通知したデータ処理要求の投入の完了通知が前記通知受付手段で受け付けられるまで他のデータ処理要求の処理に対して許可を与えない許可申請制御手段とを備えることを特徴とするデータ複製システム。
【請求項１２】
順序制御サーバと、１以上のアプリケーションサーバと、複数のデータベースサーバと、データ処理要求制御サーバとを計算機システムに備え、
前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSと、データベースサーバ側ミドルウェアとを備え、
前記データベースサーバ側ミドルウェアは、前記データ処理要求制御サーバからデータ処理要求を受信したときに到達応答を前記データ処理要求制御サーバに送信すると共に、前記データ処理要求制御サーバへデータ処理の応答を送信するデータベースサーバ側送受信手段と、前記データベースサーバ側送受信手段を通じて前記データ処理要求制御サーバから受信したデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備え、
前記アプリケーションサーバは、アプリケーションプログラムと、アプリケーションサーバ側ミドルウェアとを備え、
前記アプリケーションサーバ側ミドルウェアは、アプリケーションプログラムが発行するデータ処理要求を前記データ処理要求制御サーバへ送信し、前記データ処理要求制御サーバから受信したデータ処理の応答を前記アプリケーションプログラムへ通知するアプリケーションサーバ側送受信手段を備え、
前記データ処理要求制御サーバは、前記アプリケーションサーバ側送受信手段との間でデータの送受信を行う第１の送受信手段と、前記データベースサーバ側送受信手段との間でデータの送受信を行う第２の送受信手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の投入の完了を通知する完了通知手段と、前記第１の送受信手段で受信したデータ処理要求を多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記第２の送受信手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する到達応答が返ってきたときに前記完了通知手段によりデータ処理要求の投入の完了を前記順序制御サーバに通知する制御手段とを備え、
前記順序制御サーバは、データ処理要求の処理の許可申請を受け付ける申請受付手段と、データ処理要求の処理の許可を通知する許可通知手段と、データ処理要求の投入の完了通知を受け付ける通知受付手段と、前記許可通知手段により処理の許可を通知したデータ処理要求の到達の完了通知が前記通知受付手段で受け付けられるまで他のデータ処理要求の処理に対して許可を与えない許可申請制御手段とを備えることを特徴とするデータ複製システム。
【請求項１３】
１以上のアプリケーションサーバと、複数のデータベースサーバとを計算機システムに備え、
前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSと、データベースサーバ側ミドルウェアとを備え、
前記データベースサーバ側ミドルウェアは、前記アプリケーションサーバからデータ処理要求を受信したときに到達応答を前記アプリケーションサーバに送信すると共に、前記アプリケーションサーバへデータ処理の応答を送信するデータベースサーバ側送受信手段と、前記データベースサーバ側送受信手段を通じて前記アプリケーションサーバから受信したデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備え、
前記アプリケーションサーバは、アプリケーションプログラムと、ミドルウェアとを備え、
前記ミドルウェアは、前記データベースサーバ側送受信手段との間でデータの送受信を行うアプリケーションサーバ側送受信手段と、他のアプリケーションサーバとデータ処理要求の処理の許可申請の交渉を行う許可申請交渉手段と、前記許可申請交渉手段へデータ処理要求の処理の許可を申請する許可申請手段と、前記許可申請交渉手段から許可通知を受け付ける許可受付手段と、前記許可申請交渉手段へデータ処理要求の投入の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記アプリケーションサーバ側送受信手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する到達応答が返ってきたときに前記完了通知手段によりデータ処理要求の投入の完了を前記許可申請交渉手段に通知する制御手段とを備え、
前記許可申請交渉手段は、処理の許可を通知したデータ処理要求の到達の完了通知が前記通知受付手段で受け付けられるまで、他のデータ処理要求の処理に対して許可を与えないことを特徴とするデータ複製システム。
【請求項１４】
１以上のアプリケーションサーバと複数のデータベースサーバとを備え、前記アプリケーションサーバで稼動するアプリケーションプログラムからDBMSへ出されるデータ処理要求を多重化する計算機システムにおけるデータ複製方法において、多重化したデータ処理要求の全てが少なくともデータベースサーバに到達するまでの期間、他のデータ処理要求のDBMSへの投入を制限することにより、複数のDBMSへのデータ処理要求の投入順序の同一性を保証することを特徴とするデータ複製方法。
【請求項１５】
多重化したデータ処理要求の処理応答を検出し、全ての処理応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限することにより、システム全体で常に１つのデータ処理要求のみを多重化、処理することを特徴とする請求項１４記載のデータ複製方法。
【請求項１６】
アプリケーションサーバとデータベースサーバとの間のデータ処理要求の転送をミドルウェアが受け持ち、前記ミドルウェアにおいて、多重化したデータ処理要求の全てがデータベースサーバに到達したことを検出し、全ての到達応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限することにより、システム全体で常に１つのデータ処理要求のみを多重化、投入することを特徴とする請求項１４記載のデータ複製方法。
【請求項１７】
多重化したデータ処理要求の全てがデータベースサーバに到達したことを検出する処理、および全ての到達応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限する処理を各アプリケーションサーバのミドルウェアにおいて実行することを特徴とする請求項１５または１６記載のデータ複製方法。
【請求項１８】
各アプリケーションサーバからのデータ処理要求を多重化して複数のデータベースシステムに転送するデータ処理要求制御サーバにおいて、多重化したデータ処理要求の全てがデータベースサーバに到達したことを検出する処理、および全ての到達応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限する処理を実行することを特徴とする請求項１５または１６記載のデータ複製方法。
【請求項１９】
データ処理要求の処理順序を順序制御サーバにおいて制御することを特徴とする請求項１５または１６記載のデータ複製方法。
【請求項２０】
各アプリケーションサーバに備わる許可申請交渉手段が、他のアプリケーションサーバとデータ処理要求の処理順序を制御するために処理許可交渉を行うことを特徴とする請求項１５または１６記載のデータ複製方法。
【請求項２１】
アプリケーションプログラムとミドルウェアとを備え、データ処理要求の処理順序を制御する順序制御サーバおよびDBMSを有するデータベースサーバに接続されたアプリケーションサーバ装置であって、前記ミドルウェアは、アプリケーションプログラムが発行するデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換する複数のDB接続手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記DB接続手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する応答が返ってきたときに前記完了通知手段によりデータ処理要求の完了を前記順序制御サーバに通知する制御手段とを備えたことを特徴とするアプリケーションサーバ装置。
【請求項２２】
アプリケーションプログラムとミドルウェアとを備え、DBMSを有するデータベースサーバに接続されたアプリケーションサーバ装置であって、前記ミドルウェアは、アプリケーションプログラムが発行するデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換する複数のDB接続手段と、他のアプリケーションサーバとデータ処理要求の処理の許可申請の交渉を行う許可申請交渉手段と、前記許可申請交渉手段へデータ処理要求の処理の許可を申請する許可申請手段と、前記許可申請交渉手段から許可通知を受け付ける許可受付手段と、前記許可申請交渉手段へデータ処理要求の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記DB接続手段を通じてDBMSへ送出し、多重化した全てのデータ処理要求に対する応答が返ってきたときに前記完了通知手段によりデータ処理要求の完了を前記許可申請交渉手段に通知する制御手段とを備えることを特徴とするアプリケーションサーバ装置。
【請求項２３】
アプリケーションプログラムとミドルウェアとを備え、データ処理要求の処理順序を制御する順序制御サーバおよびDBMSを有するデータベースサーバに接続されたアプリケーションサーバ装置であって、前記ミドルウェアは、前記データベースサーバとの間でデータの送受信を行う送受信手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の投入の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記送受信手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する到達応答が返ってきたときに前記完了通知手段によりデータ処理要求の投入の完了を前記順序制御サーバに通知する制御手段とを備えることを特徴とするアプリケーションサーバ装置。
【請求項２４】
アプリケーションプログラムとミドルウェアとを備え、DBMSを有するデータベースサーバに接続されるアプリケーションサーバ装置であって、前記ミドルウェアは、前記データベースサーバとの間でデータの送受信を行う送受信手段と、他のアプリケーションサーバとデータ処理要求の処理の許可申請の交渉を行う許可申請交渉手段と、前記許可申請交渉手段へデータ処理要求の処理の許可を申請する許可申請手段と、前記許可申請交渉手段から許可通知を受け付ける許可受付手段と、前記許可申請交渉手段へデータ処理要求の投入の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記送受信手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する到達応答が返ってきたときに前記完了通知手段によりデータ処理要求の投入の完了を前記許可申請交渉手段に通知する制御手段とを備えることを特徴とするアプリケーションサーバ装置。
【請求項２５】
データ処理要求の処理順序を制御する順序制御サーバ、１以上のアプリケーションサーバ、および複数のデータベースサーバに接続されるデータ処理要求制御サーバ装置であって、前記アプリケーションサーバからデータ処理要求を受信すると共に前記アプリケーションサーバへデータ処理の応答を送信する送受信手段と、前記送受信手段で受信したデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換する複数のDB接続手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の完了を通知する完了通知手段と、前記送受信手段で受信したデータ処理要求を多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記DB接続手段を通じてDBMSへ送出し、多重化した全てのデータ処理要求に対する応答が返ってきたときに前記完了通知手段によりデータ処理要求の完了を前記順序制御サーバに通知する制御手段とを備えることを特徴とするデータ処理要求制御サーバ装置。
【請求項２６】
データ処理要求の処理順序を制御する順序制御サーバ、１以上のアプリケーションサーバ、および複数のデータベースサーバに接続されるデータ処理要求制御サーバ装置であって、前記アプリケーションサーバとの間でデータの送受信を行う第１の送受信手段と、前記データベースサーバとの間でデータの送受信を行う第２の送受信手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の投入の完了を通知する完了通知手段と、前記第１の送受信手段で受信したデータ処理要求を多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記第２の送受信手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する到達応答が返ってきたときに前記完了通知手段によりデータ処理要求の投入の完了を前記順序制御サーバに通知する制御手段とを備えることを特徴とするデータ処理要求制御サーバ装置。
【請求項２７】
ストレージと前記ストレージのデータを管理するDBMSとミドルウェアとを備え、１以上のアプリケーションサーバに接続されたデータベースサーバ装置であって、前記ミドルウェアは、前記アプリケーションサーバからデータ処理要求を受信したときに到達応答を前記アプリケーションサーバに送信すると共に、前記アプリケーションサーバへデータ処理の応答を送信する送受信手段と、前記送受信手段を通じて前記アプリケーションサーバから受信したデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備えることを特徴とするデータベースサーバ装置。
【請求項２８】
データ処理要求の処理順序を制御する順序制御サーバおよびDBMSを有するデータベースサーバに接続されたアプリケーションサーバを構成するコンピュータを、アプリケーションプログラムが発行するデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換する複数のDB接続手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記DB接続手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する応答が返ってきたときに前記完了通知手段によりデータ処理要求の完了を前記順序制御サーバに通知する制御手段として機能させるためのプログラム。
【請求項２９】
DBMSを有するデータベースサーバに接続されたアプリケーションサーバを構成するコンピュータを、アプリケーションプログラムが発行するデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換する複数のDB接続手段と、他のアプリケーションサーバとデータ処理要求の処理の許可申請の交渉を行う許可申請交渉手段と、前記許可申請交渉手段へデータ処理要求の処理の許可を申請する許可申請手段と、前記許可申請交渉手段から許可通知を受け付ける許可受付手段と、前記許可申請交渉手段へデータ処理要求の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記DB接続手段を通じてDBMSへ送出し、多重化した全てのデータ処理要求に対する応答が返ってきたときに前記完了通知手段によりデータ処理要求の完了を前記許可申請交渉手段に通知する制御手段として機能させるためのプログラム。
【請求項３０】
データ処理要求の処理順序を制御する順序制御サーバおよびDBMSを有するデータベースサーバに接続されたアプリケーションサーバを構成するコンピュータを、前記データベースサーバとの間でデータの送受信を行う送受信手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の投入の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記送受信手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する到達応答が返ってきたときに前記完了通知手段によりデータ処理要求の投入の完了を前記順序制御サーバに通知する制御手段として機能させるためのプログラム。
【請求項３１】
DBMSを有するデータベースサーバに接続されるアプリケーションサーバを構成するコンピュータを、前記データベースサーバとの間でデータの送受信を行う送受信手段と、他のアプリケーションサーバとデータ処理要求の処理の許可申請の交渉を行う許可申請交渉手段と、前記許可申請交渉手段へデータ処理要求の処理の許可を申請する許可申請手段と、前記許可申請交渉手段から許可通知を受け付ける許可受付手段と、前記許可申請交渉手段へデータ処理要求の投入の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記送受信手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する到達応答が返ってきたときに前記完了通知手段によりデータ処理要求の投入の完了を前記許可申請交渉手段に通知する制御手段として機能させるためのプログラム。
【請求項３２】
データ処理要求の処理順序を制御する順序制御サーバ、１以上のアプリケーションサーバ、および複数のデータベースサーバに接続されるデータ処理要求制御サーバを構成するコンピュータを、前記アプリケーションサーバからデータ処理要求を受信すると共に前記アプリケーションサーバへデータ処理の応答を送信する送受信手段と、前記送受信手段で受信したデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換する複数のDB接続手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の完了を通知する完了通知手段と、前記送受信手段で受信したデータ処理要求を多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記DB接続手段を通じてDBMSへ送出し、多重化した全てのデータ処理要求に対する応答が返ってきたときに前記完了通知手段によりデータ処理要求の完了を前記順序制御サーバに通知する制御手段として機能させるためのプログラム。
【請求項３３】
データ処理要求の処理順序を制御する順序制御サーバ、１以上のアプリケーションサーバ、および複数のデータベースサーバに接続されるデータ処理要求制御サーバを構成するコンピュータを、前記アプリケーションサーバとの間でデータの送受信を行う第１の送受信手段と、前記データベースサーバとの間でデータの送受信を行う第２の送受信手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の投入の完了を通知する完了通知手段と、前記第１の送受信手段で受信したデータ処理要求を多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記第２の送受信手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する到達応答が返ってきたときに前記完了通知手段によりデータ処理要求の投入の完了を前記順序制御サーバに通知する制御手段として機能させるためのプログラム。
【請求項３４】
ストレージと前記ストレージのデータを管理するDBMSとを備え、１以上のアプリケーションサーバに接続されたデータベースサーバを構成するコンピュータを、前記アプリケーションサーバからデータ処理要求を受信したときに到達応答を前記アプリケーションサーバに送信すると共に、前記アプリケーションサーバへデータ処理の応答を送信する送受信手段と、前記送受信手段を通じて前記アプリケーションサーバから受信したデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースを用いた計算機システムのストレージに蓄積されたデータの消失に備えて、データを複製しておくデータ複製システムおよびデータ複製方法に関する。
【背景技術】
【０００２】
１以上のアプリケーションサーバとデータベースサーバとを備え、アプリケーションサーバ上で稼動するアプリケーションプログラム（以下、単にアプリケーションと記す）の処理内容に基づいてデータベースサーバ上のデータを参照、更新する計算機システムが従来より各種提案ないし実用化されている（例えば特許文献１参照）。このような計算機システムにおいては、データベースサーバに蓄積されたデータの消失に備えて、データを複製しておくことが重要である。
【０００３】
データベースに蓄積されたデータの消失に備えてデータを複製しておくデータ複製システムの従来技術の一例が、非特許文献１および非特許文献２に記載されている。
【０００４】
図１８を参照すると、非特許文献１および非特許文献２に記載されたデータ複製システム（以下、従来のデータ複製システムと記す）は、サービスを提供するアプリケーションサーバ1300と、このアプリケーションサーバ1300にデータを提供するプライマリ側のデータベースサーバ1100と、このプライマリ側のデータベースサーバ1100の複製であるバックアップ側のデータベースサーバ1200とを備える。
【０００５】
プライマリ側のデータベースサーバ1100は、データを格納するストレージ1120と、このストレージ1120内のデータを管理するデータベースマネジメントシステム（以下、DBMSと記す）1110とを備える。
【０００６】
バックアップ側のデータベースサーバ1200も、データを格納するストレージ1220と、このストレージ1220内のデータを管理するDBMS1210とを備える。
【０００７】
アプリケーションサーバ1300は、DBMSにデータ処理要求を発行するアプリケーション1310と、複数のアプリケーションに対し共通な機能を提供するミドルウェア1320とを備える。本例の場合、ミドルウェア1320は、アプリケーション1310が発行するデータ処理要求をDBMS1110およびDBMS1210固有のデータ処理要求に変換し、その逆にDBMS1110およびDBMS1210からの固有のデータ処理の応答をアプリケーション1310への応答に変換するDB接続手段1321およびDB接続手段1322と、変換される前のデータ処理要求を多重化する多重化手段1323とを備える。
【０００８】
通常、DB接続手段1321、1322におけるアプリケーション1310との間のインタフェースには、例えばJDBC(Java(登録商標) DataBase Connectivity)などの標準規格のインタフェースが使用される。
【０００９】
他方、DB接続手段1321、1322におけるDBMS1110、1210との間のインタフェースは、当該DBMS固有のインタフェースが使用される。
【００１０】
多重化手段1323もまた、標準規格のインタフェースを備えるため、アプリケーション1310からはDB接続手段のように、DB接続手段からはアプリケーションのように認識される。すなわち多重化手段1323は、他の構成要素から意識されず、透過的である。
【００１１】
このような構成を有する従来のデータ複製システムは、次のように動作する。
【００１２】
アプリケーション1310がDBMS1110にデータ処理を依頼する場合、DB接続手段1321の備える標準インタフェースに基づく標準的なデータ処理要求を、ミドルウェア1320を介して発行する。
【００１３】
標準的なデータ処理要求を受け取ったミドルウェア1320においては、まず多重化手段1323が、そのデータ処理要求を多重化して、同じデータ処理要求をDB接続手段1321とDB接続手段1322に送る。
【００１４】
DB接続手段1321はプライマリDBMS1110固有のデータ処理要求に変換し、DB接続手段1322はバックアップDBMS1210固有のデータ処理要求に変換し、それぞれのDBMSに送る。
【００１５】
プライマリ側のDBMS1110とバックアップ側のDBMS1210は、論理的に同じデータ処理要求を受けるため、同じデータ処理を行う。その結果、プライマリ側のストレージ1120内のデータとバックアップ側のストレージ1220内のデータは、同じように処理されるため、プライマリ側のストレージ1120のデータとバックアップ側のストレージ1220のデータは同じデータとなる。すなわち、プライマリ側のストレージ1120のデータが、バックアップ側のストレージ1220に複製されることと同様の効果が得られる。
【００１６】
上記のデータ複製システムは、多重化手段1323がアプリケーション1310やDB接続手段1321、1322、さらにはDBMS1110、1210等から透過的なため、アプリケーションサーバ1300とプライマリデータベースサーバ1100のみから構成されている既存の計算機システムに対し、他の構成要素を変更することなく、多重化手段1323、DB接続手段1322、およびバックアップDBサーバ1200を追加するだけで、データ複製を行うことができる。
【００１７】
また、多重化手段1323は、アプリケーション1310とDB接続手段1321の間で、データ処理要求が個々のDBMS固有のものに変換される前の標準的な状態で多重化するため、既存のアプリケーション1310やDBMS1110の種類に依存することなく汎用的に適用することが可能である。
【００１８】
また、一方のデータベースサーバが故障しても、もう一方のデータベースサーバがアプリケーション1310にデータを供給できるため、無停止でサービスを提供し続けることができる。
【００１９】
【特許文献１】特開2005-165610号公報
【特許文献２】特開昭60-237551号公報
【非特許文献１】藤山健一郎,中村暢達,平池龍一, "データベース同期複製のためのJavaAPIの拡張", 情報処理学会 第67回全国大会, 1K-5, 2005.
【非特許文献２】藤山健一郎,中村暢達,平池龍一, "DB接続API拡張による異種DB間データ同期複製方式", FIT2005 第4回情報科学技術フォーラム, C-031, 2005.
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかしながら、上述した従来のデータ複製システムには、DBMSへの接続が複数存在する場合、例えばDBMSに接続するアプリケーションサーバが複数存在する場合に、データ複製に失敗するという問題があった。以下、この点について詳述する。
【００２１】
上述した従来のデータ複製システムは、プライマリ側のDBMSとバックアップ側のDBMSに同じデータ処理を行わせることでデータ複製を実現している。そのため、DBMSへのデータ処理要求の投入順序はプライマリ側とバックアップ側で同じ順序である必要がある。単一の接続の場合、その接続内において、複数のデータ処理要求の順序が入れ替わることはない。しかし、アプリケーションサーバが複数存在して、それぞれがDBMSに接続する場合、それぞれの接続には関連性はないため、ネットワーク遅延などが発生した場合、各アプリケーションから発行されるデータ処理要求のDBMSへの投入順序（DBMSへの到達のタイミング）が、プライマリ側のDBMSとバックアップ側のDBMSで同じになる保証は無い。
【００２２】
例えば図１９の場合、プライマリ側のDBMS2110にはデータ処理要求1-1の後に、データ処理要求1-2が投入されているが、バックアップ側のDBMS2210には、データ処理要求1-1の後に、データ処理要求1-2が到達する前に、別の接続で、データ処理要求2-1が投入されている。このようにデータ処理要求の投入順序が異なれば、データ処理の内容も異なり、その結果、データの不整合が発生し、複製は失敗してしまう。
【００２３】
通常、複数の送信元が発行するメッセージを複数の受信先が処理する順序の同一性を保証する場合、例えば特許文献２に見られるように、メッセージに順序番号を付与し、受信先はその順序番号に基づき処理するようにする。これを図１８のデータ複製システムに適用するには、DB接続手段1321、1322からDBMS1110、1210に送出されるデータ処理要求に順序番号を付加し、DBMS1110、1210ではデータ処理要求に付加された順序番号どおりにデータ処理要求を処理すれば良い。
【００２４】
しかし、DB接続手段1321、1322におけるDBMS1110、1210との間のインタフェースはDBMS依存の固有インタフェースであり、使用されるプロトコルもDBMS依存のものである。従って、DB接続手段1321、1322からDBMS1110、1210に送出されるデータ処理要求に順序番号を付加することは、DBMS依存のプロトコルを改良することになる。このため、DBMSそのものを改造する必要があるため、既存のDBMSに追加で適用することは困難である。また、適用できたとしても、その改造はDBMS固有のアドホックな実装となり、DBMSの種類を問わず汎用的に適用するのは困難である。
【００２５】
『発明の目的』
本発明の目的は、DBMSやアプリケーションから成る計算機システムにおいて、DBMSへの接続が複数存在する場合にも、それら接続間でのプライマリDBMS、バックアップDBMSへのデータ処理要求の投入順序の同一性を保証し、不整合なくデータ複製を行えるデータ複製システムを提供することにある。
【課題を解決するための手段】
【００２６】
本発明の第１のデータ複製システムは、１以上のアプリケーションサーバと複数のデータベースサーバとを計算機システムに備え、前記アプリケーションサーバで稼動するアプリケーションプログラムからDBMSへ出されるデータ処理要求を多重化するデータ複製システムにおいて、多重化したデータ処理要求の全てが少なくともデータベースサーバに到達するまでの期間、他のデータ処理要求のDBMSへの投入を制限することにより、複数のDBMSへのデータ処理要求の投入順序の同一性を保証することを特徴とする。
【００２７】
本発明の第２のデータ複製システムは、第１のデータ複製システムにおいて、多重化したデータ処理要求の処理応答を検出する検出手段と、全ての処理応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限する制限手段とを備え、システム全体で常に１つのデータ処理要求のみを多重化、処理することを特徴とする。
【００２８】
本発明の第３のデータ複製システムは、第１のデータ複製システムにおいて、アプリケーションサーバとデータベースサーバとの間のデータ処理要求の転送を行うミドルウェアを備え、前記ミドルウェアに、多重化したデータ処理要求の全てがデータベースサーバに到達したことを検出する検出手段と、全ての到達応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限する制限手段とを備え、システム全体で常に１つのデータ処理要求のみを多重化、投入することを特徴とする。
【００２９】
本発明の第４のデータ複製システムは、第２または第３のデータ複製システムにおいて、前記検出手段および前記制限手段を各アプリケーションサーバのミドルウェアに備えることを特徴とする。
【００３０】
本発明の第５のデータ複製システムは、第２または第３のデータ複製システムにおいて、各アプリケーションサーバからのデータ処理要求を多重化して複数のデータベースシステムに転送するデータ処理要求制御サーバを備え、前記データ処理要求制御サーバに前記検出手段および前記制限手段を備えることを特徴とする。
【００３１】
本発明の第６のデータ複製システムは、第２または第３のデータ複製システムにおいて、データ処理要求の処理順序を制御する順序制御サーバを備えることを特徴とする。
【００３２】
本発明の第７のデータ複製システムは、第２または第３のデータ複製システムにおいて、各アプリケーションサーバに、他のアプリケーションサーバとデータ処理要求の処理順序を制御するために処理許可交渉を行う許可申請交渉手段を備えることを特徴とする。
【００３３】
本発明の第８のデータ複製システムは、順序制御サーバと、１以上のアプリケーションサーバと、複数のデータベースサーバとを計算機システムに備え、前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSとを備え、前記アプリケーションサーバは、アプリケーションプログラムと、ミドルウェアとを備え、前記ミドルウェアは、アプリケーションプログラムが発行するデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換する複数のDB接続手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記DB接続手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する応答が返ってきたときに前記完了通知手段によりデータ処理要求の完了を前記順序制御サーバに通知する制御手段とを備え、前記順序制御サーバは、データ処理要求の処理の許可申請を受け付ける申請受付手段と、データ処理要求の処理の許可を通知する許可通知手段と、データ処理要求の完了通知を受け付ける通知受付手段と、前記許可通知手段により処理の許可を通知したデータ処理要求の完了通知が前記通知受付手段で受け付けられるまで他のデータ処理要求の処理に対して許可を与えない許可申請制御手段とを備えることを特徴とする。
【００３４】
本発明の第９のデータ複製システムは、順序制御サーバと、１以上のアプリケーションサーバと、複数のデータベースサーバと、データ処理要求制御サーバとを計算機システムに備え、前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSとを備え、前記アプリケーションサーバは、アプリケーションプログラムと、ミドルウェアとを備え、前記ミドルウェアは、アプリケーションプログラムが発行するデータ処理要求を前記データ処理要求制御サーバへ送信し、前記データ処理要求制御サーバから受信したデータ処理の応答を前記アプリケーションプログラムへ通知するアプリケーションサーバ側送受信手段を備え、前記データ処理要求制御サーバは、前記アプリケーションサーバ側送受信手段からデータ処理要求を受信すると共に前記アプリケーションサーバ側送受信手段へデータ処理の応答を送信するデータ処理要求制御サーバ側送受信手段と、前記データ処理要求制御サーバ側送受信手段で受信したデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換する複数のDB接続手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の完了を通知する完了通知手段と、前記データ処理要求制御サーバ側送受信手段で受信したデータ処理要求を多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記DB接続手段を通じてDBMSへ送出し、多重化した全てのデータ処理要求に対する応答が返ってきたときに前記完了通知手段によりデータ処理要求の完了を前記順序制御サーバに通知する制御手段とを備え、前記順序制御サーバは、データ処理要求の処理の許可申請を受け付ける申請受付手段と、データ処理要求の処理の許可を通知する許可通知手段と、データ処理要求の完了通知を受け付ける通知受付手段と、前記許可通知手段により処理の許可を通知したデータ処理要求の完了通知が前記通知受付手段で受け付けられるまで他のデータ処理要求の処理に対して許可を与えない許可申請制御手段とを備えることを特徴とする。
【００３５】
本発明の第１０のデータ複製システムは、１以上のアプリケーションサーバと、複数のデータベースサーバとを計算機システムに備え、前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSとを備え、前記アプリケーションサーバは、アプリケーションプログラムと、ミドルウェアとを備え、前記ミドルウェアは、アプリケーションプログラムが発行するデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換する複数のDB接続手段と、他のアプリケーションサーバとデータ処理要求の処理の許可申請の交渉を行う許可申請交渉手段と、前記許可申請交渉手段へデータ処理要求の処理の許可を申請する許可申請手段と、前記許可申請交渉手段から許可通知を受け付ける許可受付手段と、前記許可申請交渉手段へデータ処理要求の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記DB接続手段を通じてDBMSへ送出し、多重化した全てのデータ処理要求に対する応答が返ってきたときに前記完了通知手段によりデータ処理要求の完了を前記許可申請交渉手段に通知する制御手段とを備え、前記許可申請交渉手段は、処理の許可を通知したデータ処理要求の完了通知が前記通知受付手段で受け付けられるまで、他のデータ処理要求の処理に対して許可を与えないことを特徴とする。
【００３６】
本発明の第１１のデータ複製システムは、順序制御サーバと、１以上のアプリケーションサーバと、複数のデータベースサーバとを計算機システムに備え、前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSと、データベースサーバ側ミドルウェアとを備え、前記データベースサーバ側ミドルウェアは、前記アプリケーションサーバからデータ処理要求を受信したときに到達応答を前記アプリケーションサーバに送信すると共に、前記アプリケーションサーバへデータ処理の応答を送信するデータベースサーバ側送受信手段と、前記データベースサーバ側送受信手段を通じて前記アプリケーションサーバから受信したデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備え、前記アプリケーションサーバは、アプリケーションプログラムと、アプリケーションサーバ側ミドルウェアとを備え、前記アプリケーションサーバ側ミドルウェアは、前記データベースサーバ側送受信手段との間でデータの送受信を行うアプリケーションサーバ側送受信手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の投入の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記アプリケーションサーバ側送受信手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する到達応答が返ってきたときに前記完了通知手段によりデータ処理要求の投入の完了を前記順序制御サーバに通知する制御手段とを備え、前記順序制御サーバは、データ処理要求の処理の許可申請を受け付ける申請受付手段と、データ処理要求の処理の許可を通知する許可通知手段と、データ処理要求の投入の完了通知を受け付ける通知受付手段と、前記許可通知手段により処理の許可を通知したデータ処理要求の投入の完了通知が前記通知受付手段で受け付けられるまで他のデータ処理要求の処理に対して許可を与えない許可申請制御手段とを備えることを特徴とする。
【００３７】
本発明の第１２のデータ複製システムは、順序制御サーバと、１以上のアプリケーションサーバと、複数のデータベースサーバと、データ処理要求制御サーバとを計算機システムに備え、前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSと、データベースサーバ側ミドルウェアとを備え、前記データベースサーバ側ミドルウェアは、前記データ処理要求制御サーバからデータ処理要求を受信したときに到達応答を前記データ処理要求制御サーバに送信すると共に、前記データ処理要求制御サーバへデータ処理の応答を送信するデータベースサーバ側送受信手段と、前記データベースサーバ側送受信手段を通じて前記データ処理要求制御サーバから受信したデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備え、前記アプリケーションサーバは、アプリケーションプログラムと、アプリケーションサーバ側ミドルウェアとを備え、前記アプリケーションサーバ側ミドルウェアは、アプリケーションプログラムが発行するデータ処理要求を前記データ処理要求制御サーバへ送信し、前記データ処理要求制御サーバから受信したデータ処理の応答を前記アプリケーションプログラムへ通知するアプリケーションサーバ側送受信手段を備え、前記データ処理要求制御サーバは、前記アプリケーションサーバ側送受信手段との間でデータの送受信を行う第１の送受信手段と、前記データベースサーバ側送受信手段との間でデータの送受信を行う第２の送受信手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の投入の完了を通知する完了通知手段と、前記第１の送受信手段で受信したデータ処理要求を多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記第２の送受信手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する到達応答が返ってきたときに前記完了通知手段によりデータ処理要求の投入の完了を前記順序制御サーバに通知する制御手段とを備え、前記順序制御サーバは、データ処理要求の処理の許可申請を受け付ける申請受付手段と、データ処理要求の処理の許可を通知する許可通知手段と、データ処理要求の投入の完了通知を受け付ける通知受付手段と、前記許可通知手段により処理の許可を通知したデータ処理要求の到達の完了通知が前記通知受付手段で受け付けられるまで他のデータ処理要求の処理に対して許可を与えない許可申請制御手段とを備えることを特徴とする。
【００３８】
本発明の第１３のデータ複製システムは、１以上のアプリケーションサーバと、複数のデータベースサーバとを計算機システムに備え、前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSと、データベースサーバ側ミドルウェアとを備え、前記データベースサーバ側ミドルウェアは、前記アプリケーションサーバからデータ処理要求を受信したときに到達応答を前記アプリケーションサーバに送信すると共に、前記アプリケーションサーバへデータ処理の応答を送信するデータベースサーバ側送受信手段と、前記データベースサーバ側送受信手段を通じて前記アプリケーションサーバから受信したデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備え、前記アプリケーションサーバは、アプリケーションプログラムと、ミドルウェアとを備え、前記ミドルウェアは、前記データベースサーバ側送受信手段との間でデータの送受信を行うアプリケーションサーバ側送受信手段と、他のアプリケーションサーバとデータ処理要求の処理の許可申請の交渉を行う許可申請交渉手段と、前記許可申請交渉手段へデータ処理要求の処理の許可を申請する許可申請手段と、前記許可申請交渉手段から許可通知を受け付ける許可受付手段と、前記許可申請交渉手段へデータ処理要求の投入の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記アプリケーションサーバ側送受信手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する到達応答が返ってきたときに前記完了通知手段によりデータ処理要求の投入の完了を前記許可申請交渉手段に通知する制御手段とを備え、前記許可申請交渉手段は、処理の許可を通知したデータ処理要求の到達の完了通知が前記通知受付手段で受け付けられるまで、他のデータ処理要求の処理に対して許可を与えないことを特徴とする。
【００３９】
本発明の第１のデータ複製方法は、１以上のアプリケーションサーバと複数のデータベースサーバとを備え、前記アプリケーションサーバで稼動するアプリケーションプログラムからDBMSへ出されるデータ処理要求を多重化する計算機システムにおけるデータ複製方法において、多重化したデータ処理要求の全てが少なくともデータベースサーバに到達するまでの期間、他のデータ処理要求のDBMSへの投入を制限することにより、複数のDBMSへのデータ処理要求の投入順序の同一性を保証することを特徴とする。
【００４０】
本発明の第２のデータ複製方法は、第１のデータ複製方法において、多重化したデータ処理要求の処理応答を検出し、全ての処理応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限することにより、システム全体で常に１つのデータ処理要求のみを多重化、処理することを特徴とする。
【００４１】
本発明の第３のデータ複製方法は、第１のデータ複製方法において、アプリケーションサーバとデータベースサーバとの間のデータ処理要求の転送をミドルウェアが受け持ち、前記ミドルウェアにおいて、多重化したデータ処理要求の全てがデータベースサーバに到達したことを検出し、全ての到達応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限することにより、システム全体で常に１つのデータ処理要求のみを多重化、投入することを特徴とする。
【００４２】
本発明の第４のデータ複製方法は、第２または第３のデータ複製方法において、多重化したデータ処理要求の全てがデータベースサーバに到達したことを検出する処理、および全ての到達応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限する処理を各アプリケーションサーバのミドルウェアにおいて実行することを特徴とする。
【００４３】
本発明の第５のデータ複製方法は、第２または第３のデータ複製方法において、各アプリケーションサーバからのデータ処理要求を多重化して複数のデータベースシステムに転送するデータ処理要求制御サーバにおいて、多重化したデータ処理要求の全てがデータベースサーバに到達したことを検出する処理、および全ての到達応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限する処理を実行することを特徴とする。
【００４４】
本発明の第６のデータ複製方法は、第２または第３のデータ複製方法において、データ処理要求の処理順序を順序制御サーバにおいて制御することを特徴とする。
【００４５】
本発明の第７のデータ複製方法は、第２または第３のデータ複製方法において、各アプリケーションサーバに備わる許可申請交渉手段が、他のアプリケーションサーバとデータ処理要求の処理順序を制御するために処理許可交渉を行うことを特徴とする。
【００４６】
本発明の第１のアプリケーションサーバ装置は、アプリケーションプログラムとミドルウェアとを備え、データ処理要求の処理順序を制御する順序制御サーバおよびDBMSを有するデータベースサーバに接続されたアプリケーションサーバ装置であって、前記ミドルウェアは、アプリケーションプログラムが発行するデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換する複数のDB接続手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記DB接続手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する応答が返ってきたときに前記完了通知手段によりデータ処理要求の完了を前記順序制御サーバに通知する制御手段とを備えたことを特徴とする。
【００４７】
本発明の第２のアプリケーションサーバ装置は、アプリケーションプログラムとミドルウェアとを備え、DBMSを有するデータベースサーバに接続されたアプリケーションサーバ装置であって、前記ミドルウェアは、アプリケーションプログラムが発行するデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換する複数のDB接続手段と、他のアプリケーションサーバとデータ処理要求の処理の許可申請の交渉を行う許可申請交渉手段と、前記許可申請交渉手段へデータ処理要求の処理の許可を申請する許可申請手段と、前記許可申請交渉手段から許可通知を受け付ける許可受付手段と、前記許可申請交渉手段へデータ処理要求の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記DB接続手段を通じてDBMSへ送出し、多重化した全てのデータ処理要求に対する応答が返ってきたときに前記完了通知手段によりデータ処理要求の完了を前記許可申請交渉手段に通知する制御手段とを備えることを特徴とする。
【００４８】
本発明の第３のアプリケーションサーバ装置は、アプリケーションプログラムとミドルウェアとを備え、データ処理要求の処理順序を制御する順序制御サーバおよびDBMSを有するデータベースサーバに接続されたアプリケーションサーバ装置であって、前記ミドルウェアは、前記データベースサーバとの間でデータの送受信を行う送受信手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の投入の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記送受信手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する到達応答が返ってきたときに前記完了通知手段によりデータ処理要求の投入の完了を前記順序制御サーバに通知する制御手段とを備えることを特徴とする。
【００４９】
本発明の第４のアプリケーションサーバ装置は、アプリケーションプログラムとミドルウェアとを備え、DBMSを有するデータベースサーバに接続されるアプリケーションサーバ装置であって、前記ミドルウェアは、前記データベースサーバとの間でデータの送受信を行う送受信手段と、他のアプリケーションサーバとデータ処理要求の処理の許可申請の交渉を行う許可申請交渉手段と、前記許可申請交渉手段へデータ処理要求の処理の許可を申請する許可申請手段と、前記許可申請交渉手段から許可通知を受け付ける許可受付手段と、前記許可申請交渉手段へデータ処理要求の投入の完了を通知する完了通知手段と、アプリケーションプログラムが発行するデータ処理要求を取得して多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記送受信手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する到達応答が返ってきたときに前記完了通知手段によりデータ処理要求の投入の完了を前記許可申請交渉手段に通知する制御手段とを備えることを特徴とする。
【００５０】
本発明の第１のデータ処理要求制御サーバ装置は、データ処理要求の処理順序を制御する順序制御サーバ、１以上のアプリケーションサーバ、および複数のデータベースサーバに接続されるデータ処理要求制御サーバ装置であって、前記アプリケーションサーバからデータ処理要求を受信すると共に前記アプリケーションサーバへデータ処理の応答を送信する送受信手段と、前記送受信手段で受信したデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換する複数のDB接続手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の完了を通知する完了通知手段と、前記送受信手段で受信したデータ処理要求を多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記DB接続手段を通じてDBMSへ送出し、多重化した全てのデータ処理要求に対する応答が返ってきたときに前記完了通知手段によりデータ処理要求の完了を前記順序制御サーバに通知する制御手段とを備えることを特徴とする。
【００５１】
本発明の第２のデータ処理要求制御サーバ装置は、データ処理要求の処理順序を制御する順序制御サーバ、１以上のアプリケーションサーバ、および複数のデータベースサーバに接続されるデータ処理要求制御サーバ装置であって、前記アプリケーションサーバとの間でデータの送受信を行う第１の送受信手段と、前記データベースサーバとの間でデータの送受信を行う第２の送受信手段と、前記順序制御サーバへデータ処理要求の処理の許可を申請する許可申請手段と、前記順序制御サーバから許可通知を受け付ける許可受付手段と、前記順序制御サーバへデータ処理要求の投入の完了を通知する完了通知手段と、前記第１の送受信手段で受信したデータ処理要求を多重化し、前記許可申請手段による申請に対して前記許可受付手段で許可通知が受け付けられていることを条件に前記多重化した各々のデータ処理要求を前記第２の送受信手段を通じて前記DBMSへ送出し、多重化した全てのデータ処理要求に対する到達応答が返ってきたときに前記完了通知手段によりデータ処理要求の投入の完了を前記順序制御サーバに通知する制御手段とを備えることを特徴とする。
【００５２】
本発明のデータベースサーバ装置は、ストレージと前記ストレージのデータを管理するDBMSとミドルウェアとを備え、１以上のアプリケーションサーバに接続されたデータベースサーバ装置であって、前記ミドルウェアは、前記アプリケーションサーバからデータ処理要求を受信したときに到達応答を前記アプリケーションサーバに送信すると共に、前記アプリケーションサーバへデータ処理の応答を送信する送受信手段と、前記送受信手段を通じて前記アプリケーションサーバから受信したデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備えることを特徴とする。
【００５３】
『作用』
本発明にあっては、多重化したデータ処理要求の処理応答を検出し、全ての処理応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限するか、あるいは、多重化したデータ処理要求の全てがデータベースサーバに到達したことを検出し、全ての到達応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限することにより、つまり、多重化したデータ処理要求の全てが少なくともデータベースサーバに到達するまでの期間、他のデータ処理要求のDBMSへの投入を制限することにより、複数のDBMSへのデータ処理要求の投入順序の同一性を保証する。
【発明の効果】
【００５４】
本発明によれば、DBMSやアプリケーションプログラムから成る計算機システムにおいて、DBMSへの接続が複数存在する場合にも、それら接続間でのプライマリDBMS、バックアップDBMSへのデータ処理要求の投入順序の同一性を保証し、不整合なくデータ複製を行うことができる。その理由は、多重化したデータ処理要求の全てが少なくともデータベースサーバに到達するまでの期間、他のデータ処理要求のDBMSへの投入を制限したことにより、複数のDBMSへのデータ処理要求の投入順序の同一性が保証されるからである。
【００５５】
特に、多重化したデータ処理要求の全てがデータベースサーバに到達したことを検出し、全ての到達応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限する方法によれば、全ての処理応答が出揃うまで他のデータ処理要求のDBMSへの投入を制限する方法に比べて、処理の高速化が可能である。
【発明を実施するための最良の形態】
【００５６】
『第１の実施の形態』
次に本発明の第１の実施の形態について図面を参照して詳細に説明する。
【００５７】
［構成の説明］
図１を参照すると、本発明の第１の実施の形態にかかるデータ複製システムは、サービスを提供するn個のアプリケーションサーバ3300-1、3300-2、…、3300-nと、このアプリケーションサーバ3300-1、3300-2、…、3300-nにデータを提供するプライマリ側のデータベースサーバ3100と、プライマリ側のデータベースサーバ3100の複製であるバックアップ側のデータベースサーバ3200と、データ処理要求の処理順序を制御する順序制御サーバ3400とを備えている。各アプリケーションサーバ3300-1、3300-2、…、3300-n、各データベースサーバ3100、3200および順序制御サーバ3400を実現するコンピュータは、物理的に別々であっても良いし、同じコンピュータであっても良い。
【００５８】
プライマリ側のデータベースサーバ3100は、データを格納するストレージ3120と、このストレージ3120内のデータを管理するDBMS3110とを備える。バックアップ側のデータベースサーバ3200も、データを格納するストレージ3220と、このストレージ3220内のデータを管理するDBMS3210とを備える。
【００５９】
アプリケーションサーバ3300-1、3300-2、…、3300-nは、DBMSにデータ処理要求を発行するアプリケーション3310と、複数のアプリケーションに対し共通な機能を提供するミドルウェア3320とを備える。
【００６０】
ミドルウェア3320は、アプリケーション3310が発行するデータ処理要求をDBMS固有のデータ処理要求に変換し、その逆にDBMSからの固有のデータ処理の応答をアプリケーション3310への応答に変換するDB接続手段3321、3322と、データ処理要求のトラップ、多重化、DB接続手段3321、3322への転送、およびデータ処理応答のトラップ、アプリケーション3310への転送を行う制御手段3323と、データ処理要求の処理許可を順序制御サーバ3400に申請する許可申請手段3324と、処理許可申請の許可を順序制御サーバ3400から受け付ける許可受付手段3325と、DBMSのデータ処理の完了を順序制御サーバ3400に通知する完了通知手段3326とを備える。
【００６１】
順序制御サーバ3400は、各アプリケーションサーバ3300-1、3300-2、…、3300-nのミドルウェア3320からの処理許可申請を受け付ける申請受付手段3420と、処理許可申請への許可をミドルウェア3320に通知する許可通知手段3430と、DBMSのデータ処理の完了通知をミドルウェア3320から受け付ける通知受付手段3440と、処理許可申請の順序を制御する許可申請制御手段3410とを備える。
【００６２】
［動作の説明］
次に図１と図２（図２−１および図２−２）のフローチャートを参照して、本実施の形態の動作について詳細に説明する。
【００６３】
アプリケーション3310がプライマリDBMS3110にデータ処理を依頼する場合、DB接続手段3321の備える標準規格インタフェースに基づく標準規格のデータ処理要求を、ミドルウェア3320を介して発行する（ステップS4101）。
【００６４】
標準規格のデータ処理要求を受け取ったミドルウェア3320においては、まず制御手段3323が、そのデータ処理要求をトラップする（ステップS4102）。次に許可申請手段3324を介して、順序制御サーバ3400に対し、データ処理要求の処理許可を申請する（ステップS4103）。そして、制御手段3323は処理許可を受け付けるまで、データ処理要求を発行せず待機する（ステップS4104）。
【００６５】
一方、順序制御サーバ3400は、申請受付手段3420が、処理許可申請を受け付け、それを許可申請制御手段3410に転送する（ステップS4201）。許可申請制御手段3410は、次々と申請される処理許可申請を例えばFIFOメモリ等に蓄積し、常に１つの処理許可申請に対してのみ、許可を与えるように動作する（ステップS4202）。すなわち、他に許可中の処理許可申請が無ければ、もっとも早く申請された処理許可申請に対してのみ、許可を与える。他の許可中の処理許可申請があれば、その処理許可申請の完了通知を受け付けるまで、それ以外の処理許可申請には許可を与えない。許可が与えられると、許可通知手段3430は処理許可申請を行ったミドルウェア3320に対して、処理許可を通知する（ステップS4203）。許可申請制御手段3410は、許可を与えた処理許可申請の完了通知を受け取るまで、他の処理許可申請には許可を与えず、待機する（ステップS4204）。
【００６６】
再び、ミドルウェア3320においては、許可受付手段3325が、処理許可を受け付ける（ステップS4105）。処理許可を受け付けると、制御手段3323は、トラップしていたデータ処理要求を多重化し、DB接続手段3321,3322にそれぞれ発行する（ステップS4106）。
【００６７】
DB接続手段3321、3322は、受け付けた標準規格のデータ処理要求を、対応するDBMS固有のデータ処理要求に変換し、DBMS3110、3210に発行する（ステップS4301）。データ処理要求を受け付けたDBMS3110、3210は、その処理要求に従いストレージ3120、3220のデータを処理する（ステップS4401）。要求されたデータ処理は論理的に同じデータ処理であるので、プライマリ側のストレージ3120内のデータとバックアップ側のストレージ3220内のデータは、同じように処理されるため、プライマリ側のストレージ3120のデータとバックアップ側のストレージ3220のデータは同じデータとなる。すなわち、プライマリ側のストレージ3120のデータが、バックアップ側のストレージ3220に複製されることと同様の効果が得られる。
【００６８】
DBMS3110、3210は、データ処理の結果を、データ処理応答としてDB接続手段3321、3322に返す（ステップS4402）。データ処理応答を受け取ったDB接続手段3321、3322は、このDBMS固有のデータ処理応答を、標準規格のデータ処理応答に変換して、制御手段3323に返す（ステップS4302）。この時点まで、制御手段3323は、両方のDBMSのデータ処理応答が揃うまで待機している（ステップS4107）。
【００６９】
両方のDBMSのデータ処理応答が揃ったら、完了通知手段3326は、データ処理が完了した旨を順序制御サーバ3400に通知する（ステップS4108）。同時に制御手段3323は、２つのデータ処理応答のうち、１つのみをアプリケーション3310に返す（ステップS4109）。データ処理が正常に行われていれば、その応答は論理的には同じであり、標準規格のデータ処理応答に変換された場合、同じ応答となるので、どちらの応答を返してもかまわない。アプリケーション3310は、１つのデータ処理要求に対し、１つのデータ処理応答を受け取るため、データ複製等の処理を意識することなく、サービスを提供することができる（ステップS4110）。
【００７０】
一方、順序制御サーバ3400は、通知受付手段3440が許可を与えた処理許可申請に対する完了通知を受け取ると、それを許可申請制御手段3410に転送する（ステップS4205）。完了通知を受けた許可申請制御手段3410は、現在許可を与えている処理許可申請が完了したとみなして、この申請を抹消する（ステップS4206）。そして、次の処理許可申請があれば、その処理許可申請に対して、許可を与える。
【００７１】
以上のように動作することで、システム全体で常に１つのデータ処理要求のみ多重化、処理するようにする。
【００７２】
［効果の説明］
次に本実施の形態の効果について説明する。
【００７３】
本実施の形態では、順序制御サーバによってデータ処理要求の処理許可申請を制御することで、データ処理要求のプロトコル自体を変更することなく、システム全体で常に１つのデータ処理要求のみが、多重化、処理されるように構成されているため、DBMSへの複数の接続があったとしても、プライマリDBMSとバックアップDBMSへのデータ処理要求の投入順序の同一性を保証できるので、データの複製を正しく行うことができる。
【００７４】
また、このように常にデータを複製しているため、一方のデータベースサーバが故障しても、もう一方のデータベースサーバがデータを提供できるため、無停止でサービスを提供し続けることができる。
【００７５】
また、このデータ複製を、DBMSやアプリケーションを限定せず汎用的に、かつDBMSやアプリケーションを変更することなく透過的に、付与することができる。したがって、例えば、レプリケーション機能を備えていないDBMSや異なるDBMS間ででも、データ複製を行うことができる。
【００７６】
『第２の実施の形態』
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
【００７７】
［構成の説明］
図３を参照すると、本発明の第２の実施の形態にかかるデータ複製システムは、サービスを提供するn個のアプリケーションサーバ15300-1、15300-2、…、15300-nと、このアプリケーションサーバ15300-1、15300-2、…、15300-nにデータを提供するプライマリ側のデータベースサーバ15100と、プライマリ側のデータベースサーバ15100の複製であるバックアップ側のデータベースサーバ15200と、データ処理要求の処理順序を制御する順序制御サーバ15400と、アプリケーションサーバ15300-1、15300-2、…、15300-nからのデータ処理要求を制御するデータ処理要求制御サーバ15500とを備えている。各アプリケーションサーバ15300-1、15300-2、…、15300-n、各データベースサーバ15100、15200、順序制御サーバ15400およびデータ処理要求制御サーバ15500を実現するコンピュータは、物理的に別々であっても良いし、同じコンピュータであっても良い。
【００７８】
プライマリ側のデータベースサーバ15100は、第１の実施の形態におけるプライマリ側のデータベースサーバ3100と同様のストレージ15120とDBMS15110とを備える。バックアップ側のデータベースサーバ15200も、第１の実施の形態におけるバックアップ側のデータベースサーバ3200と同様のストレージ15220とDBMS15210とを備える。
【００７９】
アプリケーションサーバ15300-1、15300-2、…、15300-nは、DBMSにデータ処理要求を発行するアプリケーション15310と、複数のアプリケーションに対し共通な機能を提供するミドルウェア15320とを備える。
【００８０】
ミドルウェア15320は、データ処理要求の送信とそれに対する応答の受信を行う送受信手段15321を備える。
【００８１】
順序制御サーバ15400は、第１の実施の形態における順序制御サーバ3400と同様の、申請受付手段15420と、許可通知手段15430と、通知受付手段15440と、許可申請制御手段15410とを備える。
【００８２】
データ処理要求制御サーバ15500は、第１の実施の形態におけるミドルウェア3320と同様の、DB接続手段15510、15520と、制御手段15530と、許可申請手段15540と、許可受付手段15550と、完了通知手段15560とを備え、また、アプリケーションサーバ15300-1、15300-2、…、15300-nの送受信手段15321とデータ処理要求およびその応答の送受信を行う送受信手段15570を備える。
【００８３】
［動作の説明］
次に図３と図４（図４−１および図４−２）のフローチャートを参照して、本実施の形態の動作について詳細に説明する。
【００８４】
アプリケーションサーバ15300-1のアプリケーション15310がプライマリDBMS15110にデータ処理を依頼する場合、標準規格インタフェースに基づく標準規格のデータ処理要求を、ミドルウェア15320を介して発行する（ステップS16101）。標準規格のデータ処理要求を受け取ったミドルウェア15320では、送受信手段15321が、そのデータ処理要求を、データ処理要求制御サーバ15500に転送する（ステップ16102）。
【００８５】
データ処理要求制御サーバ15500の送受信手段15570は、受け取ったデータ処理要求を制御手段15530に発行する（ステップ16501）。以降、図４のステップS16502〜S16508で示される本実施の形態におけるデータ処理要求制御サーバ15500の動作、およびステップS16201〜S16206で示される本実施の形態における順序制御サーバ15400の動作、およびステップS16301〜S16302で示される本実施の形態におけるデータ処理要求制御サーバ15500の動作、およびステップS16401〜S16402で示される本実施の形態におけるデータベースサーバ15100、15200の動作は、図２のステップS4102〜S4108で示される第１の実施の形態におけるアプリケーションサーバ3300の動作、およびステップS4201〜S4206で示される第１の実施の形態における順序制御サーバ3400の動作、およびステップS4301〜S4302で示される第１の実施の形態におけるアプリケーションサーバ3300の動作、およびステップS4401〜S4402で示される第１の実施の形態におけるデータベースサーバ3100,3200の動作と、それぞれ同一であるため、説明は省略する。
【００８６】
両方のDBMSのデータ処理応答が揃ったら、制御手段15530は、２つのデータ処理応答のうち、１つのみを送受信手段15570に返す（ステップS16509）。データ処理が正常に行われていれば、その応答は論理的には同じであり、標準規格のデータ処理応答に変換された場合、同じ応答となるので、どちらの応答を返してもかまわない。送受信手段15570は、受け取ったデータ処理応答を、アプリケーションサーバ15300-1に転送する（ステップS16510）。送受信手段15321は、受け取ったデータ処理応答を、アプリケーションサーバ15310に返す（ステップS16103）。アプリケーション15310は、１つのデータ処理要求に対し、１つのデータ処理応答を受け取るため、データ複製等の処理を意識することなく、サービスを提供することができる（ステップS16104）。
【００８７】
以上のように動作することで、システム全体で常に１つのデータ処理要求のみが、両方のデータベースサーバに投入されるようにする。
【００８８】
［効果の説明］
次に本実施の形態の効果について説明する。
【００８９】
本実施の形態では、第１の実施の形態と同様の効果が得られると同時に、データ処理要求制御機能をデータ処理要求制御サーバに集約することにより保守性が向上し、また、データ処理要求制御機能をアプリケーションサーバから独立させることによりアプリケーションサーバを軽量化することができる。
【００９０】
『第３の実施の形態』
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。
【００９１】
［構成の説明］
図５を参照すると、本発明の第３の実施の形態にかかるデータ複製システムは、サービスを提供するn個のアプリケーションサーバ9300-1、9300-2、…、9300-nと、このアプリケーションサーバ9300-1、9300-2、…、9300-nにデータを提供するプライマリ側のデータベースサーバ9100と、このプライマリ側のデータベースサーバ9100の複製であるバックアップ側のデータベースサーバ9200とを備える。各アプリケーションサーバ9300-1、9300-2、…、9300-nおよび各データベースサーバ9100、9200を実現するコンピュータは、物理的に別々であっても良いし、同じコンピュータであっても良い。
【００９２】
プライマリ側のデータベースサーバ9100は、第１の実施の形態におけるプライマリ側のデータベースサーバ3100と同様のストレージ9120とDBMS9110とを備える。バックアップ側のデータベースサーバ9200も、第１の実施の形態におけるバックアップ側のデータベースサーバ3200と同様のストレージ9220とDBMS9210とを備える。
【００９３】
アプリケーションサーバ9300-1、9300-2、…、9300-nは、DBMSにデータ処理要求を発行するアプリケーション9310と、複数のアプリケーションに対し共通な機能を提供するミドルウェア9320とを備える。
【００９４】
ミドルウェア9320は、第１の実施の形態におけるミドルウェア3320と同様の、DB接続手段9321、9322と、制御手段9323と、許可申請手段9324と、許可受付手段9325と、完了通知手段9326とを備え、また、他のアプリケーションサーバのミドルウェアと許可申請交渉を行う許可申請交渉手段9327を備える。
【００９５】
［動作の説明］
次に図５および図６のフローチャートを参照して、本実施の形態の動作について詳細に説明する。
【００９６】
図６のステップS10101〜S10110、およびステップS10301〜S10302で示される本実施の形態におけるアプリケーションサーバ9300の動作、およびステップS10401〜S10402で示される本実施の形態におけるデータベースサーバ9100,9200の動作は、図２のステップS4101〜S4110、およびステップS4301〜S4302で示される第１の実施の形態におけるアプリケーションサーバ3300の動作、およびステップS4401〜S4402で示される第１の実施の形態におけるデータベースサーバ3100,3200の動作と同一であるため、説明は省略する。
【００９７】
許可申請交渉手段9327は、許可申請手段9324から許可申請を受けると、他のアプリケーションサーバのミドルウェアの許可申請交渉手段と許可を通知して良いか交渉する。本実施の形態では交渉方式としてトークンパッシング方式を用いる。勿論、この方式に限定するものではない。
【００９８】
トークンパッシング方式では、ある動作を排他的に行いたいモジュール同士が、トークンと呼称するシステム内で唯一のオブジェクトをやり取りし、そのトークンを所持しているモジュールのみが特権的に望む動作を実行するという方式である。本実施の形態では、トークンを所持している許可申請交渉手段のみが、許可申請に対し許可を通知する。
【００９９】
まず、許可申請を受けた許可申請交渉手段9327は、自身を含めたシステム内すべての許可申請交渉手段に、トークン取得要求を申請する（ステップS10201）。トークンが開放されていれば、許可申請交渉手段9327は、トークンを取得し、許可受付手段9325に処理許可を通知する（ステップS10202）。トークンが開放されていなければ、許可申請交渉手段9327は、トークンを取得できるまで待機する。
【０１００】
許可通知後、許可申請交渉手段9327は、完了通知を受けるまで、トークンを確保し続ける（ステップ10203）。
【０１０１】
完了通知手段9326から完了通知を受けた許可申請交渉手段9327は、トークンを開放する（ステップS10205）。以降、自身を含めたシステム内すべての許可申請交渉手段からトークン取得要求があれば、その許可申請交渉手段にトークンを渡す。
【０１０２】
以上のように動作することで、システム全体で常に１つのデータ処理要求のみが、両方のデータベースサーバに投入されるようにする。
【０１０３】
［効果の説明］
次に本実施の形態の効果について説明する。
【０１０４】
本実施の形態では、第１の実施の形態と同様の効果が得られると同時に、順序制御サーバのような単一故障点を持たないため、可用性を向上させることができる。
【０１０５】
『第４の実施の形態』
次に、本発明の第４の発明を実施するための最良の形態について図面を参照して詳細に説明する。
【０１０６】
［構成の説明］
図７を参照すると、本発明の第４の実施の形態は、サービスを提供する複数のアプリケーションサーバ5300-1、5300-2、…、5300-nと、このアプリケーションサーバ5300-1、5300-2、…、5300-nにデータを提供するプライマリ側のデータベースサーバ5100と、このプライマリ側のデータベースサーバ5100の複製であるバックアップ側のデータベースサーバ5200と、データ処理要求の投入順序を制御する順序制御サーバ5400とを備える。各アプリケーションサーバ5300-1、5300-2、…、5300-n、各データベースサーバ5100、5200および順序制御サーバ5400を実現するコンピュータは、物理的に別々であっても良いし、同じコンピュータであっても良い。
【０１０７】
プライマリデータベースサーバ5100は、第１の実施の形態におけるプライマリデータベースサーバ3100と同様のストレージ5120とDBMS5110とを備え、また、データベースサーバ側のデータ処理要求の制御を行うミドルウェア5130を備える。このミドルウェア5130は、アプリケーションサーバ5300-1、5300-2、…、5300-nとの間でデータ処理要求、その到達応答およびデータ処理の応答の送受信を行う送受信手段5131と、第１の実施の形態におけるDB接続手段3321と同様のDB接続手段5132とを備える。
【０１０８】
バックアップ側のデータベースサーバ5200は、第１の実施の形態におけるバックアップ側のデータベースサーバ3200と同様のストレージ5220とDBMS5210とを備え、また、データベースサーバ側のデータ処理要求の制御を行うミドルウェア5230を備える。このミドルウェア5230は、アプリケーションサーバ5300-1、5300-2、…、5300-nとの間でデータ処理要求、その到達応答およびデータ処理の応答の送受信を行う送受信手段5231と、第１の実施の形態におけるDB接続手段3322と同様のDB接続手段5232とを備える。
【０１０９】
アプリケーションサーバ5300-1、5300-2、…、5300-nは、DBMSにデータ処理要求を発行するアプリケーション5310と、複数のアプリケーションに対し共通な機能を提供するミドルウェア5320とを備える。
【０１１０】
ミドルウェア5320は、第１の実施の形態におけるミドルウェア3320と同様の、制御手段5323と、許可申請手段5324と、許可受付手段5325と、完了通知手段5326とを備え、また、プライマリ側のデータベースサーバ5100およびバックアップ側のデータベースサーバ5200とデータ処理要求、その到達応答およびデータ処理の応答の送受信を行う送受信手段5321、5322とを備える。ただし、本実施の形態では、送受信手段5321、5322を通じてプライマリ側のデータベースサーバ5100およびバックアップ側のデータベースサーバ5200に対して送信したデータ処理要求について、その到達応答が返されてきた時点で、完了通知手段5326により順序制御サーバ5400にデータ処理要求の投入の完了が通知される点が第１の実施の形態と相違する。
【０１１１】
順序制御サーバ5400は、第１の実施の形態における順序制御サーバ3400と同様の、申請受付手段5420と、許可通知手段5430と、通知受付手段5440と、許可申請制御手段5410とを備える。ただし、本実施の形態では、通知受付手段5440は、データ処理要求の投入の完了の通知を受け付け、許可申請制御手段5410は、データ処理要求の投入の完了の通知を受け付けると次のデータ処理要求の処理の許可申請に対して許可を与える点が第１の実施の形態と相違する。
【０１１２】
［動作の説明］
次に図７と図８（図８−１および図８−２）のフローチャートを参照して、本実施の形態の動作について詳細に説明する。
【０１１３】
図８のステップS6101〜S6105で示される本実施の形態における、アプリケーション5310、制御手段5323、許可申請手段5324、許可受付手段5325の動作は、図２のステップS4101〜S4105で示される第１の実施の形態における、アプリケーション3310、制御手段3323、許可申請手段3324、許可受付手段3325の動作と同一のため、説明は省略する。
【０１１４】
また、ステップS6201〜S6206で示される本実施の形態における順序制御サーバ5400の動作は、図２のステップS4201〜S4206で示される第１の実施の形態における順序制御サーバ3400の動作と同一のため、説明は省略する。
【０１１５】
アプリケーションサーバ5300-1、5300-2、…、5300-nのミドルウェア5320において、処理許可を受け付けると、制御手段5323は、トラップしていたデータ処理要求を多重化し、送受信手段5321、5322にそれぞれ発行する（ステップS6106）。送受信手段5321、5322は、それぞれ受け取ったデータ処理要求を、データベースサーバ5100、5200に転送する（ステップS6301）。
【０１１６】
データベースサーバ5100、5200のミドルウェア5130、5230において、送受信手段5131、5231は、データ処理要求を受け取ったら、到達した旨を知らせる到達応答を、アプリケーションサーバの送受信手段5321、5322に返信する（ステップS6401）。アプリケーションサーバの送受信手段5321、5322は、到達応答を受け取ったら、到達応答があった旨を完了通知手段5326に通知する（ステップS6302）。完了通知手段5326は、両方のデータベースサーバからの到達応答が揃ったら、すなわち、両方のデータベースサーバにデータ処理要求が投入されたことが確認されたら、データ処理要求の投入が完了した旨を順序制御サーバ5400に通知する（ステップS6307）。
【０１１７】
再び、データベースサーバ5100、5200のミドルウェア5130、5230においては、送受信手段5131,5231は、受け取ったデータ処理要求をDB接続手段5132、5232に発行する（ステップS6402）。DB接続手段5132、5232は、受け付けた標準規格のデータ処理要求を、対応するDBMS固有のデータ処理要求に変換し、DBMS5110、5210に発行する（ステップS6403）。
【０１１８】
データ処理要求を受け付けたDBMS5110、5210は、その処理要求に従いストレージ5120、5220のデータを同じように処理し、プライマリストレージ5120のデータが、バックアップストレージ5220に複製されることと同様の効果が得られる（ステップS6404）。
【０１１９】
DBMS5110、5210は、データ処理の結果を、データ処理応答としてDB接続手段5132、5232に返す（ステップS6405）。データ処理応答を受け取ったDB接続手段5132、5232は、このDBMS固有のデータ処理応答を、標準規格のデータ処理応答に変換して、送受信手段5131、5231に返す（ステップS6406）。送受信手段5131、5231は、受け取った標準規格のデータ処理応答を、アプリケーションサーバに転送する（ステップS6407）。アプリケーションサーバの送受信手段5321、5322は、データ処理応答を受け取ったら、制御手段5323に転送する（ステップS6303）。この時点まで、制御手段5323は、両方のデータ処理応答が揃うまで待機している（ステップS6108）。両方のDBMSのデータ処理応答が揃ったら、制御手段5323は、２つのデータ処理応答のうち、１つのみをアプリケーション5310に返す（ステップS6109）。データ処理が正常に行われていれば、その応答は論理的には同じであり、標準規格のデータ処理応答に変換された場合、同じ応答となるので、どちらの応答を返してもかまわない。アプリケーション5310は、１つのデータ処理要求に対し、１つのデータ処理応答を受け取るため、データ複製等の処理を意識することなく、サービスを提供することができる（ステップS6110）。
【０１２０】
このように動作することで、システム全体で常に１つのデータ処理要求のみが、両方のデータベースサーバに投入されるようにする。
【０１２１】
［効果の説明］
次に本実施の形態の効果について説明する。
【０１２２】
本実施の形態では、第１の実施の形態と同様の効果が得られると同時に、より高速にデータ処理を行うことができる。その理由は、アプリケーションサーバとデータベースサーバ間のデータ処理要求の転送をミドルウェアが受け持つことで、データ処理要求がデータベースサーバに投入されたことを検出できるため（第１の形態では、AP〜DB間の転送はDB接続手段が受け持っており、DB固有のプロトコルのため、検出できない）、データ処理要求がデータベースサーバに投入された時点で、順序制御サーバに完了を通知することができ、データベースからの処理応答を待って次のデータ処理要求を発行する第１の実施の形態に比べて、データ処理要求の発行をより早く行うことができるためである。
【０１２３】
『第５の実施の形態』
次に、本発明の第５の実施の形態について図面を参照して詳細に説明する。
【０１２４】
［構成の説明］
図９を参照すると、本発明の第５の実施の形態にかかるデータ複製システムは、サービスを提供するn個のアプリケーションサーバ17300-1、17300-2、…、17300-nと、このアプリケーションサーバ17300-1、17300-2、…、17300-nにデータを提供するプライマリ側のデータベースサーバ17100と、プライマリ側のデータベースサーバ17100の複製であるバックアップ側のデータベースサーバ17200と、データ処理要求の処理順序を制御する順序制御サーバ17400と、アプリケーションサーバ17300-1、17300-2、…、17300-nからのデータ処理要求を制御するデータ処理要求制御サーバ17500とを備える。各アプリケーションサーバ17300-1、17300-2、…、17300-n、各データベースサーバ17100、17200および順序制御サーバ17400を実現するコンピュータは、物理的に別々であっても良いし、同じコンピュータであっても良い。
【０１２５】
プライマリ側のデータベースサーバ17100は、第４の実施の形態におけるプライマリデータベースサーバ5100と同様の、ストレージ17120と、DBMS17110と、ミドルウェア17130とを備える。このミドルウェア17130は、第４の実施の形態におけるミドルウェア5130と同様の送受信手段17131と、DB接続手段17132とを備える。
【０１２６】
バックアップ側のデータベースサーバ17200も、第４の実施の形態におけるバックアップデータベースサーバ5200と同様のストレージ17220と、DBMS17210と、ミドルウェア17230とを備える。ミドルウェア17230は、第４の実施の形態におけるミドルウェア5230と同様の送受信手段17231とDB接続手段17232とを備える。
【０１２７】
アプリケーションサーバ17300-1、17300-2、…、17300-nは、DBMSにデータ処理要求を発行するアプリケーション17310と、複数のアプリケーションに対し共通な機能を提供するミドルウェア17320とを備える。
【０１２８】
ミドルウェア17320は、データ処理要求の送受信を行う送受信手段17321を備える。
【０１２９】
順序制御サーバ17400は、第４の実施の形態における順序制御サーバ5400と同様の、申請受付手段17420と、許可通知手段17430と、通知受付手段17440と、許可申請制御手段17410とを備える。
【０１３０】
データ処理要求制御サーバ17500は、第４の実施の形態におけるミドルウェア5320と同様の、送受信手段17510、17520と、制御手段17530と、許可申請手段17540と、許可受付手段17550と、完了通知手段17560とを備え、また、データ処理要求の送受信を行う送受信手段17570を備える。
【０１３１】
［動作の説明］
次に図９と図１０（図１０−１および図１０−２）のフローチャートを参照して、本実施の形態の動作について詳細に説明する。
【０１３２】
アプリケーションサーバ17300-1のアプリケーション17310がプライマリDBMS17110にデータ処理を依頼する場合、標準規格インタフェースに基づく標準規格のデータ処理要求を、ミドルウェア17320を介して発行する（ステップS18101）。標準規格のデータ処理要求を受け取ったミドルウェア17320では、送受信手段17321が、そのデータ処理要求を、データ処理要求制御サーバ17500に転送する（ステップ18102）。
【０１３３】
送受信手段17570は、受け取ったデータ処理要求を制御手段17530に発行する（ステップ18501）。以降、図１０のステップS18502〜S18508で示される本実施の形態におけるデータ処理要求制御サーバ17500の動作、およびステップS18201〜S18206で示される本実施の形態における順序制御サーバ17400の動作、およびステップS18301〜S18303で示される本実施の形態におけるデータ処理要求制御サーバ17500の動作、およびステップS18401〜S18407で示される本実施の形態におけるデータベースサーバ17100,17200の動作は、図８のステップS6102〜S6108で示される第４の実施の形態におけるアプリケーションサーバ5300の動作、およびステップS6201〜S6206で示される第４の実施の形態における順序制御サーバ5400の動作、およびステップS6301〜S6303で示される第４の実施の形態におけるアプリケーションサーバ5300の動作、およびステップS6401〜S6407で示される第４の実施の形態におけるデータベースサーバ5100,5200の動作と同一であるため、説明は省略する。
【０１３４】
両方のDBMSのデータ処理応答が揃ったら、制御手段17530は、２つのデータ処理応答のうち、１つのみを送受信手段17570に返す（ステップS18509）。データ処理が正常に行われていれば、その応答は論理的には同じであり、標準規格のデータ処理応答に変換された場合、同じ応答となるので、どちらの応答を返してもかまわない。
【０１３５】
送受信手段17570は、受け取ったデータ処理応答を、アプリケーションサーバ17300-1に転送する（ステップS18510）。送受信手段17321は、受け取ったデータ処理応答を、アプリケーション17310に返す（ステップS18103）。アプリケーション17310は、１つのデータ処理要求に対し、１つのデータ処理応答を受け取るため、データ複製等の処理を意識することなく、サービスを提供することができる（ステップS18104）。
【０１３６】
以上のよううに動作することで、システム全体で常に１つのデータ処理要求のみが、両方のデータベースサーバに投入されるようにする。
【０１３７】
［効果の説明］
次に本実施の形態の効果について説明する。
【０１３８】
本実施の形態では、第４の実施の形態と同様の効果が得られると同時に、データ処理要求制御機能をデータ処理要求制御サーバに集約することにより保守性が向上し、また、データ処理要求制御機能をアプリケーションサーバから独立させることによりアプリケーションサーバを軽量化することができる。
【０１３９】
『第６の実施の形態』
次に、本発明の第６の実施の形態について図面を参照して詳細に説明する。
【０１４０】
［構成の説明］
図１１を参照すると、本発明の第６の実施の形態は、サービスを提供するn個のアプリケーションサーバ11300-1、11300-2、…、11300-nと、このアプリケーションサーバ11300-1、11300-2、…、11300-nにデータを提供するプライマリ側のデータベースサーバ11100と、プライマリ側のデータベースサーバ11100の複製であるバックアップ側のデータベースサーバ11200とを備える。各アプリケーションサーバ11300-1、11300-2、…、11300-nおよび各データベースサーバ11100、11200を実現するコンピュータは、物理的に別々であっても良いし、同じコンピュータであっても良い。
【０１４１】
プライマリデータベースサーバ11100は、第４の実施の形態におけるプライマリデータベースサーバ5100と同様の、ストレージ11120と、DBMS11110と、ミドルウェア11130とを備える。ミドルウェア11130は、第４の実施の形態におけるミドルウェア5130と同様の送受信手段11131とDB接続手段11132とを備える。
【０１４２】
バックアップ側のデータベースサーバ11200も、第４の実施の形態におけるバックアップデータベースサーバ5200と同様の、ストレージ11220と、DBMS11210と、ミドルウェア11230とを備える。ミドルウェア11230は、第４の実施の形態におけるミドルウェア5230と同様の送受信手段11231とDB接続手段11232とを備える。
【０１４３】
アプリケーションサーバ11300-1、11300-2、…、11300-nは、DBMSにデータ処理要求を発行するアプリケーション11310と、複数のアプリケーションに対し共通な機能を提供するミドルウェア11320とを備える。
【０１４４】
ミドルウェア11320は、第４の実施の形態におけるミドルウェア5320と同様の、送受信手段11321,11322と、制御手段11323と、許可申請手段11324と、許可受付手段11325と、完了通知手段11326とを備え、また、他のアプリケーションサーバのミドルウェアと許可申請交渉を行う許可申請交渉手段11327を備える。
【０１４５】
［動作の説明］
次に図１１と図１２（図１２−１および図１２−２）のフローチャートを参照して、本実施の形態の動作について詳細に説明する。
【０１４６】
図１２のステップS12101〜S12110、およびステップS12301〜S12303で示される本実施の形態におけるアプリケーションサーバ11300の動作、およびステップS12401〜S12407で示される本実施の形態におけるデータベースサーバ11100,11200の動作は、図８のステップS6101〜S6110、およびステップS6301〜S6303で示される第４の実施の形態におけるアプリケーションサーバ5300の動作、およびステップS6401〜S6407で示される第１の実施の形態におけるデータベースサーバ5100,5200の動作と同一であるため、説明は省略する。
【０１４７】
許可申請交渉手段11327は、許可申請手段11324から許可申請を受けると、他のアプリケーションサーバのミドルウェアの許可申請交渉手段と許可を通知して良いか交渉する。本実施の形態では交渉方式としてトークンパッシング方式を用いるが、この方式に限定するものではない。
【０１４８】
まず、許可申請を受けた許可申請交渉手段11327は、自身を含めたシステム内すべての許可申請交渉手段に、トークン取得要求を申請する（ステップS12201）。トークンが開放されていれば、許可申請交渉手段11327は、トークンを取得し、許可受付手段11325に処理許可を通知する（ステップS12202）。トークンが開放されていなければ、許可申請交渉手段11327は、トークンを取得できるまで待機する。許可通知後、許可申請交渉手段11327は、完了通知を受けるまで、トークンを確保し続ける（ステップ12203）。完了通知手段11326から完了通知を受けた許可申請交渉手段11327は、トークンを開放する（ステップS12205）。以降、自身を含めたシステム内すべての許可申請交渉手段からトークン取得要求があれば、その許可申請交渉手段にトークンを渡す。
【０１４９】
以上のように動作することで、システム全体で常に１つのデータ処理要求のみが、両方のデータベースサーバに投入されるようにする。
【０１５０】
［効果の説明］
次に本実施の形態の効果について説明する。
【０１５１】
本実施の形態では、第４の実施の形態と同様の効果が得られると同時に、順序制御サーバのような単一故障点を持たないため、可用性を向上させることができる。
【０１５２】
『その他の実施の形態』
以上、本発明を実施するための最良の形態について説明したが、本発明は以上の実施の形態に限定されず、その他各種の付加変更が可能である。
【０１５３】
例えば、本発明の各実施の形態では、順序制御サーバやデータ処理要求制御サーバを１つの別個のサーバとしているが、これらの機能は、アプリケーションサーバのどれか一つ、あるいはデータベースサーバのどれか一つが兼ね備えても構わない。
【０１５４】
あるいは、複数の順序制御サーバやデータ処理要求制御サーバを用意し、例えば、１つの順序制御サーバが故障などによって機能しなくなった場合、自動的に別の順序制御サーバに順序制御機能をフェイルオーバーさせるような構成でも構わない。
【０１５５】
あるいは、通常時は順序制御サーバによって許可申請制御を行っているが、順序制御サーバが故障などによって機能しなくなった場合、アプリケーションサーバのミドルウェア同士が、互いに交渉して、許可申請制御を行う方式に移行するようにしても良い。
【０１５６】
また、本発明の各実施の形態では、アプリケーションサーバ群と１つのプライマリ側のデータベースサーバとを備えるシステムに対し、１つのバックアップ側のデータベースサーバを設ける１対１構成を採用したが、これ以外の構成も考えられる。構成の幾つかの変形例を以下に示す。なお、以下の変形例は一例であり、これらに限定するものではない。
【０１５７】
１）変形例１（１対Ｎ構成）
本変形例の概要を図１３に示す。図１３を参照すると、本変形例は、１つのアプリケーションサーバ群19300と、１つのプライマリ側のデータベースサーバ19310と、複数のバックアップ側のデータベースサーバ19320-1、19320-2、…、19320-nとを備える。
【０１５８】
プライマリ側のデータベースサーバ19310のデータは、バックアップ側のデータベースサーバ19320-1、19320-2、…、19320-n全てに複製される。
【０１５９】
本変形例は、アプリケーションサーバ群19300の各アプリケーションが、１つのバックアップ側のデータベースサーバだけでなく、複数のバックアップ側のデータベースサーバ19320-1、19320-2、…、19320-nに、それぞれデータ処理要求を発行するようにすることで実現できる。
【０１６０】
本変形例においては、バックアップ側のデータベースサーバが複数存在するため、プライマリ側のデータベースサーバ19310を含め複数のデータベースサーバで同時に障害が発生しても、残ったデータベースサーバのデータを用いて、サービスを継続できる。
【０１６１】
２）変形例２（Ｎ対１構成）
本変形例の概要を図１４に示す。図１４を参照すると、本変形例は、複数のアプリケーションサーバ群20300-1、20300-2、…、20300-nと、複数のプライマリ側のデータベースサーバ20310-1、20310-2、…、20310-nと、１つのバックアップ側のデータベースサーバ20320とを備える。
【０１６２】
複数のプライマリ側のデータベースサーバ20310-1、20310-2、…、20310-nのデータは、バックアップ側のデータベースサーバ20320に集約して複製される。
【０１６３】
本変形例は、バックアップ側のデータベースサーバ20320が、複数のアプリケーションサーバ群20300-1、20300-2、…、20300-nから発行されるデータ処理要求を、自身内の論理的に異なる領域に適用するようにすることで実現できる。
【０１６４】
本変形例は、アプリケーションサーバ群と１つのプライマリ側のデータベースサーバとを備えるシステムの数だけバックアップシステムを用意する必要が無いので、システム構築のコストを軽減できる。
【０１６５】
３）変形例３（Ｎ対Ｍ構成）
本変形例の概要を図１５に示す。図１５を参照すると、本変形例は、複数のアプリケーションサーバ群21300-1、21300-2、…、21300-nと、複数のプライマリ側のデータベースサーバ21310-1、21310-2、…、21310-nと、複数のバックアップ側のデータベースサーバ21320-1,21320-2...21320-mとを備える。
【０１６６】
プライマリ側のデータベースサーバ21310-1、21310-2、…、21310-nのうちの１つのプライマリデータ側のデータベースサーバのデータは、バックアップ側のデータベースサーバ21320-1、21320-2、…、21320-mのうちの１つ以上のバックアップ側のデータベースに複製される。
【０１６７】
本変形例は、アプリケーションサーバ群21300-1、21300-2、…、21300-nの各アプリケーションが、１つのバックアップ側のデータベースサーバだけでなく、複数のバックアップ側のデータベースサーバ21320-1、21320-2、…、21320-mのうちの１つ以上のバックアップ側のデータベースサーバにそれぞれデータ処理要求を発行するようにし、かつ、バックアップ側のデータベースサーバ21320-1、21320-2、…、21320-mが、それぞれ複数のアプリケーションサーバ群21300-1、21300-2、…、21300-nから発行されるデータ処理要求を、自身内の論理的に異なる領域に適用するようにすることで実現できる。
【０１６８】
本変形例は、１対Ｎ構成のように複数のバックアップ側のデータベースが存在するため耐障害性が高く、Ｎ対１構成のようにデータを集約して複製するためバックアップ側のデータベースの数を少なくすることでシステム構築のコストを軽減できる。
【０１６９】
４）変形例４（連鎖構成）
本変形例の概要を図１６に示す。図１６を参照すると、本変形例は、１つのアプリケーションサーバ群22300と、１つのプライマリ側のデータベースサーバ22310と、縦続接続された複数のバックアップ側のデータベースサーバ22320-1、22320-2、…、22320-nとを備える。
【０１７０】
プライマリ側のデータベースサーバ22310のデータは、バックアップ側のデータベースサーバ22320-1、22320-2、…、22320-n全てに複製される。
【０１７１】
本変形例は、バックアップ側のデータベースサーバ22320-1、22320-2、…、22320-nが、データ処理要求を受けるだけでなく、別のバックアップ側のデータベースサーバに転送するようにすることで実現できる。
【０１７２】
本変形例は、１対Ｎ構成のように複数のバックアップ側のデータベースサーバが存在するため耐障害性が高く、また、アプリケーションサーバ群22300の各アプリケーションはバックアップ型のデータベースサーバ22320-1の１つに対してのみデータ処理要求を発行し、各バックアップ側のデータベースサーバ22320-1、22320-2、…、22320-nも１つのバックアップ側のデータベースサーバに対してのみデータ処理要求を発行するので、１つの構成要素にデータ処理要求発行の負荷が集中することを避けることができる。
【０１７３】
５）変形例５（相互構成）
本変形例の概要を図１７に示す。図１７を参照すると、本変形例は、アプリケーションサーバ群23310、23320と、データベースサーバ23311、23321とを備える。
【０１７４】
データベースサーバ23311のデータは、データベースサーバ23321に複製され、データベースサーバ23321のデータは、データベースサーバ23311に複製される。
【０１７５】
本実施例は、アプリケーションサーバ群23310が、データベースサーバ23311をプライマリ側のデータベースサーバ、データベースサーバ23321をバックアップ側のデータベースサーバとみなし、また、アプリケーションサーバ群23320が、データベースサーバ23321をプライマリ側のデータベースサーバ、データベースサーバ23311をバックアップ側のデータベースサーバとみなすように動作し、かつ、データベースサーバ23311、23321が、それぞれアプリケーションサーバ群23310、23320から発行されるデータ処理要求を、自身内の論理的に異なる領域に適用するようにすることで実現できる。
【０１７６】
本変形例は、バックアップシステムでもアプリケーションを動作させサービスを提供することで、システムを無駄なく活用することができる。また、アプリケーションサーバ群と１つのデータベースサーバからなるシステムが既に複数ある場合、バックアップ用データベースサーバを新たに用意しなくても、同期複製を行える。なお、本構成は２個のシステムから構成されているが、それ以上でもかまわない。
【０１７７】
また、本発明の各実施の形態におけるデータ多重化機能を実現する各構成要素は、その機能をハードウェア的に実現することはもちろん、コンピュータとプログラムとで実現することができる。プログラムは、磁気ディスクや半導体メモリ等のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における構成要素として機能させる。
【産業上の利用可能性】
【０１７８】
本発明は、DBMSを用いてサービスを提供するシステムにおいて、高い信頼性を持つシステムの構築といった用途に適用できる。
【図面の簡単な説明】
【０１７９】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２−１】本発明の第１の実施の形態の動作を示す流れ図である。
【図２−２】本発明の第１の実施の形態の動作を示す流れ図である。
【図３】本発明の第２の実施の形態の構成を示すブロック図である。
【図４−１】本発明の第２の実施の形態の動作を示す流れ図である。
【図４−２】本発明の第２の実施の形態の動作を示す流れ図である。
【図５】本発明の第３の実施の形態の構成を示すブロック図である。
【図６】本発明の第３の実施の形態の動作を示す流れ図である。
【図７】本発明の第４の実施の形態の構成を示すブロック図である。
【図８−１】本発明の第４の実施の形態の動作を示す流れ図である。
【図８−２】本発明の第４の実施の形態の動作を示す流れ図である。
【図９】本発明の第５の実施の形態の構成を示すブロック図である。
【図１０−１】本発明の第５の実施の形態の動作を示す流れ図である。
【図１０−２】本発明の第５の実施の形態の動作を示す流れ図である。
【図１１】本発明の第６の実施の形態の構成を示すブロック図である。
【図１２−１】本発明の第６の実施の形態の動作を示す流れ図である。
【図１２−２】本発明の第６の実施の形態の動作を示す流れ図である。
【図１３】１対Ｎ構成の変形例を示すブロック図である。
【図１４】Ｎ対１構成の変形例を示すブロック図である。
【図１５】Ｎ対Ｍ構成の変形例を示すブロック図である。
【図１６】連鎖構成の変形例を示すブロック図である。
【図１７】相互構成の変形例を示すブロック図である。
【図１８】従来のデータ複製システムの構成を示すブロック図である。
【図１９】従来のデータ複製システムの問題点の説明図である。
【符号の説明】
【０１８０】
3100…プライマリ側のデータベースサーバ
3110…プライマリ側のDBMS
3120…プライマリ側のストレージ
3200…バックアップ側のデータベースサーバ
3210…バックアップ側のDBMS
3220…バックアップ側のストレージ
3300-1、3300-2、…、3300-n…アプリケーションサーバ
3310…アプリケーション
3320…ミドルウェア
3321、3322…DB接続手段
3323…制御手段
3324…許可申請手段
3325…許可受付手段
3326…完了通知手段
3400…順序制御サーバ
3410…許可申請制御手段
3420…申請受付手段
3430…許可通知手段
3440…通知受付手段
【図１】
2007200086.tif 000003
【図２−１】
2007200086.tif 000004
【図２−２】
2007200086.tif 000005
【図３】
2007200086.tif 000006
【図４−１】
2007200086.tif 000007
【図４−２】
2007200086.tif 000008
【図５】
2007200086.tif 000009
【図６】
2007200086.tif 000010
【図７】
2007200086.tif 000011
【図８−１】
2007200086.tif 000012
【図８−２】
2007200086.tif 000013
【図９】
2007200086.tif 000014
【図１０−１】
2007200086.tif 000015
【図１０−２】
2007200086.tif 000016
【図１１】
2007200086.tif 000017
【図１２−１】
2007200086.tif 000018
【図１２−２】
2007200086.tif 000019
【図１３】
2007200086.tif 000020
【図１４】
2007200086.tif 000021
【図１５】
2007200086.tif 000022
【図１６】
2007200086.tif 000023
【図１７】
2007200086.tif 000024
【図１８】
2007200086.tif 000025
【図１９】
2007200086.tif 000026