(57)【要約】【課題】DBMSへの接続が複数存在する場合にも、DBMS依存のプロトコルの変更なしに、それら接続間でのプライマリDBMS、バックアップDBMSへのデータ処理要求の投入順序の同一性を保証し、不整合なくデータ複製が行えるようにする。【解決手段】アプリケーションサーバ7300-1〜7300-nのアプリケーション7310からDBMSへ出される標準規格のデータ処理要求に順序番号を付与して多重化し、アプリケーションサーバ側のミドルウェア7320からプライマリDBサーバおよびバックアップDBサーバのミドルウェア7130,7230へ転送する。データベースサーバ側の各ミドルウェア7130,7230は、順序制御手段7132,7232により、付加された順序番号通りにデータ処理要求を処理すべくDB接続手段7133,7233に発行し、DB接続手段7133,7233は発行されたデータ処理要求をDBMS7110,7210固有のデータ処理要求に変換しDBMS7110,7210へ投入する。【選択図】図１
2007200085.tif 000002
【特許請求の範囲】
【請求項１】
１以上のアプリケーションサーバと複数のデータベースサーバとを計算機システムに備え、前記アプリケーションサーバで稼動するアプリケーションプログラムからDBMSへ出されるデータ処理要求を多重化するデータ複製システムにおいて、アプリケーションサーバのアプリケーションプログラムからDBMSへ出されるデータ処理要求の前記DBMSへの転送を行うアプリケーションサーバ側ミドルウェアおよびデータベースサーバ側ミドルウェアとを備え、前記アプリケーションサーバ側ミドルウェアから前記データベースサーバ側ミドルウェアへの多重化されたデータ処理要求の投入順序の同一性を、順序制御プロトコルで保証し、前記データベースサーバ側ミドルウェアにおいて前記データ処理要求を前記DBMS固有のデータ処理要求に変換して前記DBMSへ投入することを特徴とするデータ複製システム。
【請求項２】
アプリケーションサーバとデータベースサーバとの間にデータ処理要求制御サーバを備え、アプリケーションサーバ側ミドルウェアの一部の機能を前記データ処理要求制御サーバに集約したことを特徴とする請求項１記載のデータ複製システム。
【請求項３】
データ処理要求の順序番号を管理する順序制御サーバを備えることを特徴とする請求項１記載のデータ複製システム。
【請求項４】
アプリケーションサーバ側ミドルウェアに、他のアプリケーションサーバ側ミドルウェアとデータ処理要求の順序番号の交渉を行う順序番号交渉手段を備えることを特徴とする請求項１記載のデータ複製システム。
【請求項５】
順序制御サーバと、１以上のアプリケーションサーバと、複数のデータベースサーバとを計算機システムに備え、
前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSと、データベースサーバ側ミドルウェアとを備え、
前記データベースサーバ側ミドルウェアは、前記アプリケーションサーバから順序番号付きのデータ処理要求を受信すると共に前記アプリケーションサーバへデータ処理の応答を送信するデータベースサーバ側送受信手段と、前記順序番号付きのデータ処理要求を順序番号の順番どおりに処理して発行する順序制御手段と、前記順序制御手段により発行されたデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備え、
前記アプリケーションサーバは、アプリケーションプログラムと、アプリケーションサーバ側ミドルウェアとを備え、
前記アプリケーションサーバ側ミドルウェアは、前記データベースサーバ側送受信手段との間でデータの送受信を行うアプリケーションサーバ側送受信手段と、前記順序制御サーバから順序番号を取得する順序番号取得手段と、アプリケーションプログラムが発行するデータ処理要求を取得し、該取得したデータ処理要求に前記順序番号取得手段により取得した順序番号を付与して多重化し、該多重化した各々の順序番号付きのデータ処理要求を前記アプリケーションサーバ側送受信手段を通じて前記データベースサーバへ送信する制御手段とを備え、
前記順序制御サーバは、ユニークな順序番号を生成する順序番号管理手段と、前記順序番号取得手段からの要求に応じて前記順序番号管理手段で生成された順序番号を前記順序番号取得手段に通知する順序番号通知手段とを備えることを特徴とするデータ複製システム。
【請求項６】
順序制御サーバと、１以上のアプリケーションサーバと、複数のデータベースサーバと、データ処理要求制御サーバとを計算機システムに備え、
前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSと、データベースサーバ側ミドルウェアとを備え、
前記データベースサーバ側ミドルウェアは、前記データ処理要求制御サーバから順序番号付きのデータ処理要求を受信すると共に前記データ処理要求制御サーバへデータ処理の応答を送信するデータベースサーバ側送受信手段と、前記順序番号付きのデータ処理要求を順序番号の順番どおりに発行する順序制御手段と、前記順序制御手段により発行されたデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備え、
前記アプリケーションサーバは、アプリケーションプログラムと、アプリケーションサーバ側ミドルウェアとを備え、
前記アプリケーションサーバ側ミドルウェアは、アプリケーションプログラムが発行するデータ処理要求を前記データ処理要求制御サーバへ送信し、前記データ処理要求制御サーバから受信したデータ処理の応答を前記アプリケーションプログラムへ通知するアプリケーションサーバ側送受信手段を備え、
前記データ処理要求制御サーバは、前記アプリケーションサーバ側送受信手段との間でデータの送受信を行う第１の送受信手段と、前記データベースサーバ側送受信手段との間でデータの送受信を行う第２の送受信手段と、前記順序制御サーバから順序番号を取得する順序番号取得手段と、前記第１の送受信手段で受信されたデータ処理要求に前記順序番号取得手段により取得した順序番号を付与して多重化し、該多重化した各々の順序番号付きのデータ処理要求を前記第２の送受信手段を通じて前記データベースサーバへ送信する制御手段とを備え、
前記順序制御サーバは、ユニークな順序番号を生成する順序番号管理手段と、前記順序番号取得手段からの要求に応じて前記順序番号管理手段で生成された順序番号を前記順序番号取得手段に通知する順序番号通知手段とを備えることを特徴とするデータ複製システム。
【請求項７】
１以上のアプリケーションサーバと、複数のデータベースサーバとを計算機システムに備え、
前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSと、データベースサーバ側ミドルウェアとを備え、
前記データベースサーバ側ミドルウェアは、前記アプリケーションサーバから順序番号付きのデータ処理要求を受信すると共に前記アプリケーションサーバへデータ処理の応答を送信するデータベースサーバ側送受信手段と、前記順序番号付きのデータ処理要求を順序番号の順番どおりに発行する順序制御手段と、前記順序制御手段により発行されたデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備え、
前記アプリケーションサーバは、アプリケーションプログラムと、アプリケーションサーバ側ミドルウェアとを備え、
前記アプリケーションサーバ側ミドルウェアは、前記データベースサーバ側送受信手段との間でデータの送受信を行うアプリケーションサーバ側送受信手段と、他のアプリケーションサーバとユニークな順序番号の交渉を行う順序番号交渉手段と、前記順序番号交渉手段から順序番号を取得する順序番号取得手段と、アプリケーションプログラムが発行するデータ処理要求を取得し、該取得したデータ処理要求に前記順序番号取得手段により取得した順序番号を付与して多重化し、該多重化した各々の順序番号付きのデータ処理要求を前記アプリケーションサーバ側送受信手段を通じて前記データベースサーバへ送信する制御手段とを備えることを特徴とするデータ複製システム。
【請求項８】
１以上のアプリケーションサーバと複数のデータベースサーバとを計算機システムに備え、前記アプリケーションサーバで稼動するアプリケーションプログラムからDBMSへ出されるデータ処理要求を多重化する計算機システムにおけるデータ複製方法において、アプリケーションサーバのアプリケーションプログラムからDBMSへ出されるデータ処理要求の前記DBMSへの転送をアプリケーションサーバ側ミドルウェアとデータベースサーバ側ミドルウェアとで行い、前記アプリケーションサーバ側ミドルウェアから前記データベースサーバ側ミドルウェアへの多重化されたデータ処理要求の投入順序の同一性を、順序制御プロトコルで保証し、前記データベースサーバ側ミドルウェアにおいて前記データ処理要求を前記DBMS固有のデータ処理要求に変換して前記DBMSへ投入することを特徴とするデータ複製方法。
【請求項９】
１以上のアプリケーションサーバと複数のデータベースサーバとを計算機システムに備え、前記アプリケーションサーバで稼動するアプリケーションプログラムからDBMSへ出されるデータ処理要求を多重化する計算機システムにおけるデータ複製方法において、アプリケーションサーバのアプリケーションプログラムから前記DBMSへ出されるデータ処理要求に順序番号を付与して多重化し、アプリケーションサーバ側ミドルウェアからデータベースサーバ側ミドルウェアへ転送し、データベースサーバ側ミドルウェアにおいて、付加された順序番号通りに、データ処理要求を前記DBMS固有のデータ処理要求に変換して前記DBMSへ投入することを特徴とするデータ複製方法。
【請求項１０】
アプリケーションサーバとデータベースサーバとの間にデータ処理要求制御サーバを備え、アプリケーションサーバ側ミドルウェアの一部の機能を前記データ処理要求制御サーバに集約したことを特徴とする請求項８または９記載のデータ複製方法。
【請求項１１】
データ処理要求の順序番号を順序制御サーバで管理することを特徴とする請求項８または９記載のデータ複製方法。
【請求項１２】
各アプリケーションサーバ側ミドルウェアに備わる順序番号交渉手段が、他のアプリケーションサーバ側ミドルウェアとデータ処理要求の順序番号の交渉を行うことを特徴とする請求項８または９記載のデータ複製方法。
【請求項１３】
アプリケーションプログラムとアプリケーションサーバ側ミドルウェアとを備え、データ処理要求の順序番号を管理する順序制御サーバおよびDBMSを有するデータベースサーバに接続されたアプリケーションサーバ装置であって、前記アプリケーションサーバ側ミドルウェアは、前記データベースサーバに設けられたデータベースサーバ側ミドルウェアとの間でデータの送受信を行う送受信手段と、前記順序制御サーバから順序番号を取得する順序番号取得手段と、アプリケーションプログラムが発行するデータ処理要求を取得し、該取得したデータ処理要求に前記順序番号取得手段により取得した順序番号を付与して多重化し、該多重化した各々の順序番号付きのデータ処理要求を前記送受信手段を通じて前記データベースサーバ側ミドルウェアへ送信する制御手段とを備えることを特徴とするアプリケーションサーバ装置。
【請求項１４】
アプリケーションプログラムとアプリケーションサーバ側ミドルウェアとを備え、DBMSを有するデータベースサーバに接続されたアプリケーションサーバ装置であって、前記アプリケーションサーバ側ミドルウェアは、前記データベースサーバに設けられたデータベースサーバ側ミドルウェアとの間でデータの送受信を行う送受信手段と、他のアプリケーションサーバとユニークな順序番号の交渉を行う順序番号交渉手段と、前記順序番号交渉手段から順序番号を取得する順序番号取得手段と、アプリケーションプログラムが発行するデータ処理要求を取得し、該取得したデータ処理要求に前記順序番号取得手段により取得した順序番号を付与して多重化し、該多重化した各々の順序番号付きのデータ処理要求を前記送受信手段を通じて前記データベースサーバ側ミドルウェアへ送信する制御手段とを備えることを特徴とするアプリケーションサーバ装置。
【請求項１５】
データ処理要求の順序番号を管理する順序制御サーバ、１以上のアプリケーションサーバ、およびDBMSを有するデータベースサーバに接続されたデータ処理要求制御サーバ装置であって、前記アプリケーションサーバに設けられたアプリケーションサーバ側ミドルウェアとの間でデータの送受信を行う第１の送受信手段と、前記データベースサーバ側に設けられたデータベースサーバ側ミドルウェアとの間でデータの送受信を行う第２の送受信手段と、前記順序制御サーバから順序番号を取得する順序番号取得手段と、前記第１の送受信手段で受信されたデータ処理要求に前記順序番号取得手段により取得した順序番号を付与して多重化し、該多重化した各々の順序番号付きのデータ処理要求を前記第２の送受信手段を通じて前記データベースサーバ側ミドルウェアへ送信する制御手段とを備えることを特徴とするデータ処理要求制御サーバ装置。
【請求項１６】
ストレージと前記ストレージのデータを管理するDBMSとデータベースサーバ側ミドルウェアとを備え、１以上のアプリケーションサーバに接続されたデータベースサーバ装置であって、前記データベースサーバ側ミドルウェアは、前記アプリケーションサーバに設けられたアプリケーションサーバ側ミドルウェアから順序番号付きのデータ処理要求を受信すると共に前記アプリケーションサーバへデータ処理の応答を送信する送受信手段と、前記順序番号付きのデータ処理要求を順序番号の順番どおりに処理して発行する順序制御手段と、前記順序制御手段により発行されたデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備えることを特徴とするデータベースサーバ装置。
【請求項１７】
ストレージと前記ストレージのデータを管理するDBMSとデータベースサーバ側ミドルウェアとを備え、データ処理要求制御サーバに接続されたデータベースサーバ装置であって、前記データベースサーバ側ミドルウェアは、前記データ処理要求制御サーバから順序番号付きのデータ処理要求を受信すると共に前記データ処理要求制御サーバへデータ処理の応答を送信する送受信手段と、前記順序番号付きのデータ処理要求を順序番号の順番どおりに処理して発行する順序制御手段と、前記順序制御手段により発行されたデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備えることを特徴とするデータベースサーバ装置。
【請求項１８】
データ処理要求の順序番号を管理する順序制御サーバおよびDBMSを有するデータベースサーバに接続されたアプリケーションサーバ装置を構成するコンピュータを、前記データベースサーバに設けられたデータベースサーバ側ミドルウェアとの間でデータの送受信を行う送受信手段と、前記順序制御サーバから順序番号を取得する順序番号取得手段と、アプリケーションプログラムが発行するデータ処理要求を取得し、該取得したデータ処理要求に前記順序番号取得手段により取得した順序番号を付与して多重化し、該多重化した各々の順序番号付きのデータ処理要求を前記送受信手段を通じて前記データベースサーバ側ミドルウェアへ送信する制御手段として機能させるためのプログラム。
【請求項１９】
DBMSを有するデータベースサーバに接続されたアプリケーションサーバ装置を構成するコンピュータを、前記データベースサーバに設けられたデータベースサーバ側ミドルウェアとの間でデータの送受信を行う送受信手段と、他のアプリケーションサーバとユニークな順序番号の交渉を行う順序番号交渉手段と、前記順序番号交渉手段から順序番号を取得する順序番号取得手段と、アプリケーションプログラムが発行するデータ処理要求を取得し、該取得したデータ処理要求に前記順序番号取得手段により取得した順序番号を付与して多重化し、該多重化した各々の順序番号付きのデータ処理要求を前記送受信手段を通じて前記データベースサーバ側ミドルウェアへ送信する制御手段として機能させるためのプログラム。
【請求項２０】
データ処理要求の順序番号を管理する順序制御サーバ、１以上のアプリケーションサーバ、およびDBMSを有するデータベースサーバに接続されたデータ処理要求制御サーバ装置を構成するコンピュータを、前記アプリケーションサーバに設けられたアプリケーションサーバ側ミドルウェアとの間でデータの送受信を行う第１の送受信手段と、前記データベースサーバ側に設けられたデータベースサーバ側ミドルウェアとの間でデータの送受信を行う第２の送受信手段と、前記順序制御サーバから順序番号を取得する順序番号取得手段と、前記第１の送受信手段で受信されたデータ処理要求に前記順序番号取得手段により取得した順序番号を付与して多重化し、該多重化した各々の順序番号付きのデータ処理要求を前記第２の送受信手段を通じて前記データベースサーバ側ミドルウェアへ送信する制御手段として機能させるためのプログラム。
【請求項２１】
ストレージと前記ストレージのデータを管理するDBMSとを備え、１以上のアプリケーションサーバに接続されたデータベースサーバ装置を構成するコンピュータを、前記アプリケーションサーバに設けられたアプリケーションサーバ側ミドルウェアから順序番号付きのデータ処理要求を受信すると共に前記アプリケーションサーバへデータ処理の応答を送信する送受信手段と、前記順序番号付きのデータ処理要求を順序番号の順番どおりに処理して発行する順序制御手段と、前記順序制御手段により発行されたデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段として機能させるためのプログラム。
【請求項２２】
ストレージと前記ストレージのデータを管理する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.
【非特許文献３】Xavier Defago, Andre Schiper and Peter Urban, "Totally Ordered Broadcast and Multicast Algorithms: A Comprehensive Survey", Technical Report DSC, Ecole Polytechnique Federale de Lausanne, 2000.
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかしながら、上述した従来のデータ複製システムには、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へのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備え、前記アプリケーションサーバは、アプリケーションプログラムと、アプリケーションサーバ側ミドルウェアとを備え、前記アプリケーションサーバ側ミドルウェアは、前記データベースサーバ側送受信手段との間でデータの送受信を行うアプリケーションサーバ側送受信手段と、前記順序制御サーバから順序番号を取得する順序番号取得手段と、アプリケーションプログラムが発行するデータ処理要求を取得し、該取得したデータ処理要求に前記順序番号取得手段により取得した順序番号を付与して多重化し、該多重化した各々の順序番号付きのデータ処理要求を前記アプリケーションサーバ側送受信手段を通じて前記データベースサーバへ送信する制御手段とを備え、前記順序制御サーバは、ユニークな順序番号を生成する順序番号管理手段と、前記順序番号取得手段からの要求に応じて前記順序番号管理手段で生成された順序番号を前記順序番号取得手段に通知する順序番号通知手段とを備えることを特徴とする。
【００３１】
本発明の第６のデータ複製システムは、順序制御サーバと、１以上のアプリケーションサーバと、複数のデータベースサーバと、データ処理要求制御サーバとを計算機システムに備え、前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSと、データベースサーバ側ミドルウェアとを備え、前記データベースサーバ側ミドルウェアは、前記データ処理要求制御サーバから順序番号付きのデータ処理要求を受信すると共に前記データ処理要求制御サーバへデータ処理の応答を送信するデータベースサーバ側送受信手段と、前記順序番号付きのデータ処理要求を順序番号の順番どおりに発行する順序制御手段と、前記順序制御手段により発行されたデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備え、前記アプリケーションサーバは、アプリケーションプログラムと、アプリケーションサーバ側ミドルウェアとを備え、前記アプリケーションサーバ側ミドルウェアは、アプリケーションプログラムが発行するデータ処理要求を前記データ処理要求制御サーバへ送信し、前記データ処理要求制御サーバから受信したデータ処理の応答を前記アプリケーションプログラムへ通知するアプリケーションサーバ側送受信手段を備え、前記データ処理要求制御サーバは、前記アプリケーションサーバ側送受信手段との間でデータの送受信を行う第１の送受信手段と、前記データベースサーバ側送受信手段との間でデータの送受信を行う第２の送受信手段と、前記順序制御サーバから順序番号を取得する順序番号取得手段と、前記第１の送受信手段で受信されたデータ処理要求に前記順序番号取得手段により取得した順序番号を付与して多重化し、該多重化した各々の順序番号付きのデータ処理要求を前記第２の送受信手段を通じて前記データベースサーバへ送信する制御手段とを備え、前記順序制御サーバは、ユニークな順序番号を生成する順序番号管理手段と、前記順序番号取得手段からの要求に応じて前記順序番号管理手段で生成された順序番号を前記順序番号取得手段に通知する順序番号通知手段とを備えることを特徴とする。
【００３２】
本発明の第７のデータ複製システムは、１以上のアプリケーションサーバと、複数のデータベースサーバとを計算機システムに備え、前記データベースサーバは、ストレージと、該ストレージのデータを管理するDBMSと、データベースサーバ側ミドルウェアとを備え、前記データベースサーバ側ミドルウェアは、前記アプリケーションサーバから順序番号付きのデータ処理要求を受信すると共に前記アプリケーションサーバへデータ処理の応答を送信するデータベースサーバ側送受信手段と、前記順序番号付きのデータ処理要求を順序番号の順番どおりに発行する順序制御手段と、前記順序制御手段により発行されたデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備え、前記アプリケーションサーバは、アプリケーションプログラムと、アプリケーションサーバ側ミドルウェアとを備え、前記アプリケーションサーバ側ミドルウェアは、前記データベースサーバ側送受信手段との間でデータの送受信を行うアプリケーションサーバ側送受信手段と、他のアプリケーションサーバとユニークな順序番号の交渉を行う順序番号交渉手段と、前記順序番号交渉手段から順序番号を取得する順序番号取得手段と、アプリケーションプログラムが発行するデータ処理要求を取得し、該取得したデータ処理要求に前記順序番号取得手段により取得した順序番号を付与して多重化し、該多重化した各々の順序番号付きのデータ処理要求を前記アプリケーションサーバ側送受信手段を通じて前記データベースサーバへ送信する制御手段とを備えることを特徴とする。
【００３３】
本発明の第１のデータ複製方法は、１以上のアプリケーションサーバと複数のデータベースサーバとを計算機システムに備え、前記アプリケーションサーバで稼動するアプリケーションプログラムからDBMSへ出されるデータ処理要求を多重化する計算機システムにおけるデータ複製方法において、アプリケーションサーバのアプリケーションプログラムからDBMSへ出されるデータ処理要求の前記DBMSへの転送をアプリケーションサーバ側ミドルウェアとデータベースサーバ側ミドルウェアとで行い、前記アプリケーションサーバ側ミドルウェアから前記データベースサーバ側ミドルウェアへの多重化されたデータ処理要求の投入順序の同一性を、順序制御プロトコルで保証し、前記データベースサーバ側ミドルウェアにおいて前記データ処理要求を前記DBMS固有のデータ処理要求に変換して前記DBMSへ投入することを特徴とする。
【００３４】
本発明の第２のデータ複製方法は、１以上のアプリケーションサーバと複数のデータベースサーバとを計算機システムに備え、前記アプリケーションサーバで稼動するアプリケーションプログラムからDBMSへ出されるデータ処理要求を多重化する計算機システムにおけるデータ複製方法において、アプリケーションサーバのアプリケーションプログラムから前記DBMSへ出されるデータ処理要求に順序番号を付与して多重化し、アプリケーションサーバ側ミドルウェアからデータベースサーバ側ミドルウェアへ転送し、データベースサーバ側ミドルウェアにおいて、付加された順序番号通りに、データ処理要求を前記DBMS固有のデータ処理要求に変換して前記DBMSへ投入することを特徴とする。
【００３５】
本発明の第３のデータ複製方法は、第１または第２のデータ複製方法において、アプリケーションサーバとデータベースサーバとの間にデータ処理要求制御サーバを備え、アプリケーションサーバ側ミドルウェアの一部の機能を前記データ処理要求制御サーバに集約したことを特徴とする。
【００３６】
本発明の第４のデータ複製方法は、第１または第２のデータ複製方法において、データ処理要求の順序番号を順序制御サーバで管理することを特徴とする。
【００３７】
本発明の第５のデータ複製方法は、第１または第２のデータ複製方法において、各アプリケーションサーバ側ミドルウェアに備わる順序番号交渉手段が、他のアプリケーションサーバ側ミドルウェアとデータ処理要求の順序番号の交渉を行うことを特徴とする。
【００３８】
本発明の第１のアプリケーションサーバ装置は、アプリケーションプログラムとアプリケーションサーバ側ミドルウェアとを備え、データ処理要求の順序番号を管理する順序制御サーバおよびDBMSを有するデータベースサーバに接続されたアプリケーションサーバ装置であって、前記アプリケーションサーバ側ミドルウェアは、前記データベースサーバに設けられたデータベースサーバ側ミドルウェアとの間でデータの送受信を行う送受信手段と、前記順序制御サーバから順序番号を取得する順序番号取得手段と、アプリケーションプログラムが発行するデータ処理要求を取得し、該取得したデータ処理要求に前記順序番号取得手段により取得した順序番号を付与して多重化し、該多重化した各々の順序番号付きのデータ処理要求を前記送受信手段を通じて前記データベースサーバ側ミドルウェアへ送信する制御手段とを備えることを特徴とする。
【００３９】
本発明の第２のアプリケーションサーバ装置は、アプリケーションプログラムとアプリケーションサーバ側ミドルウェアとを備え、DBMSを有するデータベースサーバに接続されたアプリケーションサーバ装置であって、前記アプリケーションサーバ側ミドルウェアは、前記データベースサーバに設けられたデータベースサーバ側ミドルウェアとの間でデータの送受信を行う送受信手段と、他のアプリケーションサーバとユニークな順序番号の交渉を行う順序番号交渉手段と、前記順序番号交渉手段から順序番号を取得する順序番号取得手段と、アプリケーションプログラムが発行するデータ処理要求を取得し、該取得したデータ処理要求に前記順序番号取得手段により取得した順序番号を付与して多重化し、該多重化した各々の順序番号付きのデータ処理要求を前記送受信手段を通じて前記データベースサーバ側ミドルウェアへ送信する制御手段とを備えることを特徴とする。
【００４０】
本発明のデータ処理要求制御サーバ装置は、データ処理要求の順序番号を管理する順序制御サーバ、１以上のアプリケーションサーバ、およびDBMSを有するデータベースサーバに接続されたデータ処理要求制御サーバ装置であって、前記アプリケーションサーバに設けられたアプリケーションサーバ側ミドルウェアとの間でデータの送受信を行う第１の送受信手段と、前記データベースサーバ側に設けられたデータベースサーバ側ミドルウェアとの間でデータの送受信を行う第２の送受信手段と、前記順序制御サーバから順序番号を取得する順序番号取得手段と、前記第１の送受信手段で受信されたデータ処理要求に前記順序番号取得手段により取得した順序番号を付与して多重化し、該多重化した各々の順序番号付きのデータ処理要求を前記第２の送受信手段を通じて前記データベースサーバ側ミドルウェアへ送信する制御手段とを備えることを特徴とする。
【００４１】
本発明の第１のデータベースサーバ装置は、ストレージと前記ストレージのデータを管理するDBMSとデータベースサーバ側ミドルウェアとを備え、１以上のアプリケーションサーバに接続されたデータベースサーバ装置であって、前記データベースサーバ側ミドルウェアは、前記アプリケーションサーバに設けられたアプリケーションサーバ側ミドルウェアから順序番号付きのデータ処理要求を受信すると共に前記アプリケーションサーバへデータ処理の応答を送信する送受信手段と、前記順序番号付きのデータ処理要求を順序番号の順番どおりに処理して発行する順序制御手段と、前記順序制御手段により発行されたデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備えることを特徴とする。
【００４２】
本発明の第２のデータベースサーバ装置は、ストレージと前記ストレージのデータを管理するDBMSとデータベースサーバ側ミドルウェアとを備え、データ処理要求制御サーバに接続されたデータベースサーバ装置であって、前記データベースサーバ側ミドルウェアは、前記データ処理要求制御サーバから順序番号付きのデータ処理要求を受信すると共に前記データ処理要求制御サーバへデータ処理の応答を送信する送受信手段と、前記順序番号付きのデータ処理要求を順序番号の順番どおりに処理して発行する順序制御手段と、前記順序制御手段により発行されたデータ処理要求を前記DBMSへのデータ処理要求に変換し、前記DBMSからのデータ処理の応答をアプリケーションプログラムへの応答に変換するDB接続手段とを備えることを特徴とする。
【００４３】
『作用』
本発明にあっては、アプリケーションサーバのアプリケーションプログラムからDBMSへ出されるデータ処理要求の前記DBMSへの転送をアプリケーションサーバ側ミドルウェアとデータベースサーバ側ミドルウェアとで受け持つことで、アプリケーションサーバ側ミドルウェアからデータベースサーバ側ミドルウェアへの多重化されたデータ処理要求の投入順序の同一性を、DBMS依存のプロトコルに変換する前の状態で、順序制御プロトコルで保証することを可能にし、そして、データベースサーバ側ミドルウェアにおいてデータ処理要求をDBMS固有のデータ処理要求に変換してDBMSへ投入する。
【発明の効果】
【００４４】
本発明によれば、DBMSへの接続が複数存在する場合にも、DBMS依存のプロトコルの変更なしに、それら接続間でのプライマリDBMS、バックアップDBMSへのデータ処理要求の投入順序の同一性を保証し、不整合なくデータ複製が行える。その理由は、アプリケーションサーバのアプリケーションプログラムからDBMSへ出されるデータ処理要求の前記DBMSへの転送をアプリケーションサーバ側ミドルウェアとデータベースサーバ側ミドルウェアとで行うことで、アプリケーションサーバ側ミドルウェアからデータベースサーバ側ミドルウェアへの多重化されたデータ処理要求の投入順序の同一性を、DBMS依存のプロトコルとは関係なく、順序制御プロトコルで保証しているからである。
【発明を実施するための最良の形態】
【００４５】
『第１の実施の形態』
次に本発明の第１の実施の形態について図面を参照して詳細に説明する
【００４６】
［構成の説明］
図１を参照すると、本発明の第１の実施の形態にかかるデータ複製システムは、サービスを提供する複数のアプリケーションサーバ7300-1、7300-2、…、7300-nと、このアプリケーションサーバ7300-1、7300-2、…、7300-nにデータを提供するプライマリ側のデータベースサーバ7100と、プライマリ側のデータベースサーバ7100の複製であるバックアップ側のデータベースサーバ7200と、データ処理要求の順序番号を管理する順序制御サーバ7400とを備える。各アプリケーションサーバ7300-1、7300-2、…、7300-n、各データベースサーバ7100、7200および順序制御サーバ7400を実現するコンピュータは、物理的に別々であっても良いし、同じコンピュータであっても良い。
【００４７】
プライマリ側のデータベースサーバ7100は、データを格納するストレージ7120と、このストレージ7120内のデータを管理するDBMS7110と、データ処理要求の制御を行うミドルウェア7130とを備える。
【００４８】
ミドルウェア7130は、データ処理要求の送受信を行う送受信手段7131と、順序番号に基づきデータ処理要求の順序を制御する順序制御手段7132と、標準規格のデータ処理要求をDBMS固有のデータ処理要求に変換し、その逆にDBMSからの固有のデータ処理応答を標準規格のデータ処理応答に変換するDB接続手段7133とを備える。
【００４９】
バックアップ側のデータベースサーバ7200は、データを格納するストレージ7220と、このストレージ7220内のデータを管理するDBMS7210と、データ処理要求の制御を行うミドルウェア7230とを備える。
【００５０】
ミドルウェア7230は、データ処理要求の送受信を行う送受信手段7231と、順序番号に基づきデータ処理要求の順序を制御する順序制御手段7232と、標準規格のデータ処理要求をDBMS固有のデータ処理要求に変換し、その逆にDBMSからの固有のデータ処理応答を標準規格のデータ処理応答に変換するDB接続手段7233とを備える。
【００５１】
アプリケーションサーバ7300-1、7300-2、…、7300-nは、DBMSにデータ処理要求を発行するアプリケーション7310と、複数のアプリケーションに対し共通な機能を提供するミドルウェア7320とを備える。
【００５２】
ミドルウェア7320は、データ処理要求の送受信を行う送受信手段7321、7322と、データ処理要求のトラップ、多重化、順序番号の付与、データベースサーバ側ミドルウェアへの転送、およびデータ処理応答のトラップ、転送を行う制御手段7323と、順序制御サーバ7400から順序番号を取得する順序番号取得手段7324とを備える。
【００５３】
順序制御サーバ7400は、システム全体でユニークな順序番号の管理を行う順序番号管理手段7410と、アプリケーションサーバ7300-1、7300-2、…、7300-nからの申請に対して順序番号を通知する順序番号通知手段7420とを備える。
【００５４】
［動作の説明］
次に図１および図２（図２−１および図２−２）のフローチャートを参照して、本実施の形態の動作について詳細に説明する。
【００５５】
アプリケーションサーバ7300-1、7300-2、…、7300-nにおいて、アプリケーション7310がプライマリDBMS7110にデータ処理を依頼する場合、DB接続手段7133の備える標準規格インタフェースに基づく標準規格のデータ処理要求を、ミドルウェア7320を介して発行する（ステップS8101）。
【００５６】
標準規格のデータ処理要求を受け取ったミドルウェア7320は、まず制御手段7323が、そのデータ処理要求を一旦、トラップする（ステップS8102）。通常、DB接続手段7133は、アプリケーションサーバ内のミドルウェア7320に配置され、アプリケーション7310は、DB接続手段7133の備える標準規格のインタフェースに対してデータ処理要求を発行しようとする。制御手段7323はDB接続手段7133と同様の標準規格インタフェースを備えるため、アプリケーション7310からは制御手段7323が、本来データ処理要求を発行すべきDB接続手段7133と同様に認識される。そのため、制御手段7323以下はアプリケーション7310からは意識されず、透過的である。
【００５７】
制御手段7323がデータ処理要求をトラップすると、順序番号取得手段7324は、順序制御サーバ7400から順序番号を取得する（ステップS8103）。このとき、順序制御サーバ7400において、順序番号通知手段7420は、順序番号取得手段7324からの順序番号取得要求を受け取り、順序番号管理手段7410に順序番号を問い合わせる（ステップS8201）。順序番号管理手段7410は、問い合わせに対し、システム全体でユニークな順序番号を与える（ステップS8202）。順序番号管理手段7410はシステム内において唯一の存在のため、単純に連続で番号を発行すれば、それがユニークな順序番号となる。順序番号通知手段7420は、与えられた順序番号を、順序番号取得手段7324に通知する（ステップS8203）。
【００５８】
再びアプリケーションサーバ7300-1、7300-2、…、7300-nにおいて、制御手段7323は、トラップしていたデータ処理要求に取得した順序番号を付与し、さらに多重化して、送受信手段7321、7322にそれぞれ発行する（ステップS8104）。順序番号を付与するということは、データ処理要求のプロトコルを変換するということだが、この時点では、データ処理要求は、仕様が公開されていないため変換することのできないデータベース独自のプロトコルではなく、仕様の公開された標準規格のプロトコルのため、プロトコルの変換は容易である。
【００５９】
送受信手段7321、7322は、それぞれ受け取った順序番号付きのデータ処理要求を、データベースサーバ7100、7200に転送する（ステップS8301）。
【００６０】
データベースサーバ7100、7200のミドルウェア7130、7230において、送受信手段7131、7231は、受け取った順序番号付きのデータ処理要求を順序制御手段7132、7232に転送する（ステップS8401）。
【００６１】
順序制御手段7132、7232は、受け取った順序番号付きのデータ処理要求に付与された順序番号を参照して、順序番号の順番どおりに、標準規格のデータ処理要求に戻し、DB接続手段7133、7233に発行する（ステップS8402）。
【００６２】
DB接続手段7133、7233は、受け付けた標準規格のデータ処理要求を、対応するDBMS固有のデータ処理要求に変換し、DBMS7110、7210に発行する（ステップS8403）。
【００６３】
データ処理要求を受け付けたDBMS7110、7210は、その処理要求に従いストレージ7120、7220のデータを同じように処理する（ステップS8404）。この結果、プライマリ側のストレージ7120のデータが、バックアップ側のストレージ7220に複製されることと同様の効果が得られる。
【００６４】
DBMS7110、7210は、データ処理の結果を、データ処理応答としてDB接続手段7133、7233に返す（ステップS8405）。データ処理応答を受け取ったDB接続手段7133、7233は、このDBMS固有のデータ処理応答を、標準規格のデータ処理応答に変換して、送受信手段7131、7231に返す（ステップS8406）。
【００６５】
送受信手段7131、7231は、受け取った標準規格のデータ処理応答を、アプリケーションサーバに転送する（ステップS8407）。アプリケーションサーバの送受信手段7321,7322は、データ処理応答を受け取ったら、制御手段に転送する（ステップS8302）。この時点まで、制御手段7323は、両方のデータ処理応答が揃うまで待機している（ステップS8105）。
【００６６】
両方のDBMSのデータ処理応答が揃ったら、制御手段7323は、２つのデータ処理応答のうち、１つのみをアプリケーション7310に返す（ステップS8106）。データ処理が正常に行われていれば、その応答は論理的には同じであり、標準規格のデータ処理応答に変換された場合、同じ応答となるので、どちらの応答を返してもかまわない。
【００６７】
アプリケーション7310は、１つのデータ処理要求に対し、１つのデータ処理応答を受け取るため、データ複製等の処理を意識することなく、サービスを提供することができる（ステップS8107）。
【００６８】
上述のように動作することで、標準規格のデータ処理要求にシステム全体でユニークな順序番号を付与し、送信先であるデータベースサーバにおいて、順序番号どおりにデータ処理が行われるようにする。
【００６９】
［効果の説明］
次に本実施の形態の効果について説明する。
【００７０】
本実施の形態では、アプリケーションサーバにおいて、仕様が公開されている標準規格のデータ処理要求の段階でプロトコルを変更、すなわち順序番号を付与し、データベースサーバにおいて、標準規格のデータ処理要求に戻して、付与された順番どおりにデータ処理を行うため、データベース独自のプロトコルに制限されることなく、プライマリ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は、第１の実施の形態におけるプライマリ側のデータベースサーバ7100と同様の、ストレージ15120と、DBMS15110と、ミドルウェア15130とを備える。
【００７６】
バックアップ側のデータベースサーバ15200も、第１の実施の形態におけるバックアップデータベースサーバ7200と同様の、ストレージ15220と、DBMS15210と、ミドルウェア15230とを備える。
【００７７】
アプリケーションサーバ15300-1、15300-2、…、15300-nは、DBMSにデータ処理要求を発行するアプリケーション15310と、複数のアプリケーションに対し共通な機能を提供するミドルウェア15320とを備える。
【００７８】
ミドルウェア15320は、データ処理要求の送受信を行う送受信手段15321を備える。
【００７９】
順序制御サーバ15400は、第１の実施の形態における順序制御サーバ7400と同様の、順序番号管理手段15410と順序番号通知手段15420とを備える。
【００８０】
データ処理要求制御サーバ15500は、第１の実施の形態におけるミドルウェア7320と同様の、送受信手段15510、15520と、制御手段15530と、順序番号取得手段15340とを備え、また、データ処理要求の送受信を行う送受信手段15550を備える。
【００８１】
［動作の説明］
次に図３および図４（図４−１および図４−２）のフローチャートを参照して、本実施の形態の動作について詳細に説明する。
【００８２】
アプリケーションサーバ15300-1のアプリケーション15310がプライマリDBMS15110にデータ処理を依頼する場合、標準規格インタフェースに基づく標準規格のデータ処理要求を、ミドルウェア15320を介して発行する（ステップS16101）。
【００８３】
標準規格のデータ処理要求を受け取ったミドルウェア15320においては、送受信手段15321が、そのデータ処理要求を、データ処理要求制御サーバ15500に転送する（ステップ16102）。
【００８４】
送受信手段15550は、受け取ったデータ処理要求を制御手段15530に発行する（ステップ16501）。以降、図４のステップS16502〜S16505で示される本実施の形態におけるデータ処理要求制御サーバ15500の動作、およびステップS16201〜S16203で示される本実施の形態における順序制御サーバ15400の動作、およびステップS16301〜S16302で示される本実施の形態におけるデータ処理要求制御サーバ15500の動作、およびステップS16401〜S16407で示される本実施の形態におけるデータベースサーバ15100,15200の動作は、図２のステップS8102〜S8105で示される第１の実施の形態におけるアプリケーションサーバ7300の動作、およびステップS8201〜S8203で示される第１の実施の形態における順序制御サーバ7400の動作、およびステップS8301〜S8302で示される第１の実施の形態におけるアプリケーションサーバ7300の動作、およびステップS8401〜S8407で示される第１の実施の形態におけるデータベースサーバ7100,7200の動作と同一であるため、説明は省略する。
【００８５】
両方のDBMSのデータ処理応答が揃ったら、制御手段15530は、２つのデータ処理応答のうち、１つのみを送受信手段15550に返す（ステップS16506）。データ処理が正常に行われていれば、その応答は論理的には同じであり、標準規格のデータ処理応答に変換された場合、同じ応答となるので、どちらの応答を返してもかまわない。
【００８６】
送受信手段15550は、受け取ったデータ処理応答を、アプリケーションサーバ15300-1に転送する（ステップS16507）。
【００８７】
送受信手段15321は、受け取ったデータ処理応答を、アプリケーション15310に返す（ステップS16103）。アプリケーション15310は、１つのデータ処理要求に対し、１つのデータ処理応答を受け取るため、データ複製等の処理を意識することなく、サービスを提供することができる（ステップS16104）。
【００８８】
以上のように動作することで、標準規格のデータ処理要求にシステム全体でユニークな順序番号を付与し、送信先であるデータベースサーバにおいて、順序番号どおりにデータ処理が行われるようにする。
【００８９】
［効果の説明］
次に本実施の形態の効果について説明する。
【００９０】
本実施の形態では、第１の実施の形態と同様の効果が得られると同時に、複数のアプリケーションサーバのデータ処理要求制御機能をデータ処理要求制御サーバに集約することにより保守性が向上し、また、データ処理要求制御機能をアプリケーションサーバから独立させることによりアプリケーションサーバを軽量化することができる。
【００９１】
『第３の実施の形態』
次に本発明の第３の実施の形態について図面を参照して詳細に説明する。
【００９２】
［構成の説明］
図５を参照すると、本発明の第３の実施の形態にかかるデータ複製システムは、サービスを提供するn個のアプリケーションサーバ9300-1、9300-2、…、9300-nと、このアプリケーションサーバ9300-1、9300-2、…、9300-nにデータを提供するプライマリ側のデータベースサーバ9100と、プライマリ側のデータベースサーバの複製であるバックアップ側のデータベースサーバ9200とを備える。各アプリケーションサーバ9300-1、9300-2、…、9300-n、各データベースサーバ9100、9200を実現するコンピュータは、物理的に別々であっても良いし、同じコンピュータであっても良い。
【００９３】
プライマリ側のデータベースサーバ9100は、第１の実施の形態におけるプライマリデータベースサーバ7100と同様の、ストレージ9120と、DBMS9110と、ミドルウェア9130とを備える。
【００９４】
バックアップ側のデータベースサーバ9200も、第１の実施の形態におけるプライマリ側のデータベースサーバ7200と同様の、ストレージ9220と、DBMS9210と、ミドルウェア9230とを備える。
【００９５】
アプリケーションサーバ9300-1、9300-2、…、9300-nは、DBMSにデータ処理要求を発行するアプリケーション9310と、複数のアプリケーションに対し共通な機能を提供するミドルウェア9320とを備える。
【００９６】
ミドルウェア9320は、第１の実施の形態におけるミドルウェア7320と同様の、送受信手段9321、9322と、制御手段9323と、順序番号取得手段9324とを備え、また、他のアプリケーションサーバのミドルウェアと順序番号交渉を行う順序番号交渉手段9325を備える。
【００９７】
［動作の説明］
次に図５および図６（図６−１および図６−２）のフローチャートを参照して、本実施の形態の動作について詳細に説明する。
【００９８】
図６のステップS10101〜S10107、およびステップS10301〜S10302で示される本実施の形態におけるアプリケーションサーバ9300の動作、およびステップS10401〜S10407で示される本実施の形態におけるデータベースサーバ9100,9200の動作は、図２のステップS8101〜S8107、およびステップS8301〜S8302で示される第１の実施の形態におけるアプリケーションサーバ7300の動作、およびステップS8401〜S8407で示される第１の実施の形態におけるデータベースサーバ7100,7200の動作と同一であるため、説明は省略する。
【００９９】
順序番号交渉手段9325は、順序番号取得手段9324からの順序番号取得問い合わせに対し、他のアプリケーションサーバのミドルウェアの順序番号交渉手段と交渉し、システム全体でユニークな順序番号を与える。本実施の形態では交渉方式としてトークン方式を用いる。勿論、本発明はこの方式に限定するものではない。
【０１００】
ここでトークンとは、順序番号を保持するシステム内で唯一のオブジェクトであり、アプリケーションサーバ9300-1、9300-2、…、9300-n内を巡回している。まず、順序番号取得の問い合わせを受けた順序番号交渉手段9325は、自身を含めたシステム内すべての順序番号交渉手段に、トークン取得要求を申請する（ステップS10201）。
【０１０１】
トークンが開放されていれば、順序番号交渉手段9325は、トークンを取得し、トークンが保持している順序番号を順序番号取得手段9324に通知する（ステップS10202）。トークンが開放されていなければ、順序番号交渉手段9325は、トークンを取得できるまで待機する。
【０１０２】
順序番号通知後、順序番号交渉手段9325は、トークンの保持する順序番号を増やし（更新し）、トークンを開放する（ステップS10203）。以降、自身を含めたシステム内すべての順序番号交渉手段からトークン取得要求があれば、その順序番号交渉手段にトークンを渡す。
【０１０３】
以上のように動作することで、標準規格のデータ処理要求にシステム全体でユニークな順序番号を付与し、送信先であるデータベースサーバにおいて、順序番号どおりにデータ処理が行われるようにする。
【０１０４】
［効果の説明］
次に本実施の形態の効果について説明する。
【０１０５】
本実施の形態では、第１の実施の形態と同様の効果が得られると同時に、順序制御サーバのような単一故障点を持たないため、可用性を向上させることができる。
【０１０６】
『その他の実施の形態』
以上、本発明を実施するための最良の形態について説明したが、本発明は以上の実施の形態に限定されず、その他各種の付加変更が可能である。
【０１０７】
例えば、本発明の各実施の形態では、順序制御サーバやデータ処理要求制御サーバを１つの別個のサーバとしているが、これらの機能は、アプリケーションサーバのどれか一つ、あるいはデータベースサーバのどれか一つが兼ね備えても構わない。
【０１０８】
あるいは、複数の順序制御サーバやデータ処理要求制御サーバを用意し、例えば、１つの順序制御サーバが故障などによって機能しなくなった場合、自動的に別の順序制御サーバに順序制御機能をフェイルオーバーさせるような構成でも構わない。
【０１０９】
あるいは、通常時は順序制御サーバによって順序番号制御を行っているが、順序制御サーバが故障などによって機能しなくなった場合、アプリケーションサーバのミドルウェア同士が、互いに交渉して、順序番号制御を行う方式に移行するようにしても良い。
【０１１０】
あるいは、本発明の実施の形態では、固定の順序制御サーバにより順序番号を付与する方法、アプリケーションサーバ間がトークン方式で順序番号を交渉する方法を用いたが、順序番号の生成あるいは付与の方法はこれらの方法に限定されず、例えば非特許文献３に記載される既存の順序制御プロトコルなど、任意の方法を用いることができる。
【０１１１】
また、本発明の各実施の形態では、アプリケーションサーバ群と１つのプライマリ側のデータベースサーバとを備えるシステムに対し、１つのバックアップ側のデータベースサーバを設ける１対１構成を採用したが、これ以外の構成も考えられる。構成の幾つかの変形例を以下に示す。なお、以下の変形例は一例であり、これらに限定するものではない。
【０１１２】
１）変形例１（１対Ｎ構成）
本変形例の概要を図７に示す。図７を参照すると、本変形例は、１つのアプリケーションサーバ群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を用いてサービスを提供するシステムにおいて、高い信頼性を持つシステムの構築といった用途に適用できる。
【図面の簡単な説明】
【０１３４】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２−１】本発明の第１の実施の形態の動作を示す流れ図である。
【図２−２】本発明の第１の実施の形態の動作を示す流れ図である。
【図３】本発明の第２の実施の形態の構成を示すブロック図である。
【図４−１】本発明の第２の実施の形態の動作を示す流れ図である。
【図４−２】本発明の第２の実施の形態の動作を示す流れ図である。
【図５】本発明の第３の実施の形態の構成を示すブロック図である。
【図６−１】本発明の第３の実施の形態の動作を示す流れ図である。
【図６−２】本発明の第３の実施の形態の動作を示す流れ図である。
【図７】１対Ｎ構成の変形例を示すブロック図である。
【図８】Ｎ対１構成の変形例を示すブロック図である。
【図９】Ｎ対Ｍ構成の変形例を示すブロック図である。
【図１０】連鎖構成の変形例を示すブロック図である。
【図１１】相互構成の変形例を示すブロック図である。
【図１２】従来のデータ複製システムの構成を示すブロック図である。
【図１３】従来のデータ複製システムの問題点の説明図である。
【符号の説明】
【０１３５】
7100…プライマリ側のデータベースサーバ
7110…プライマリ側のDBMS
7120…プライマリ側のストレージ
7130…ミドルウェア
7131…送受信手段
7132…順序制御手段
7133…DB接続手段
7200…バックアップ側のデータベースサーバ
7210…バックアップ側のDBMS
7220…バックアップ側のストレージ
7230…ミドルウェア
7231…送受信手段
7232…順序制御手段
7233…DB接続手段
7300-1、7300-2、…、7300-n…アプリケーションサーバ
7310…アプリケーション
7320…ミドルウェア
7321、7322…送受信手段
7323…制御手段
7324…順序番号取得手段
7400…順序制御サーバ
7410…順序番号管理手段
7420…順序番号通知手段
【図１】
2007200085.tif 000003
【図２−１】
2007200085.tif 000004
【図２−２】
2007200085.tif 000005
【図３】
2007200085.tif 000006
【図４−１】
2007200085.tif 000007
【図４−２】
2007200085.tif 000008
【図５】
2007200085.tif 000009
【図６−１】
2007200085.tif 000010
【図６−２】
2007200085.tif 000011
【図７】
2007200085.tif 000012
【図８】
2007200085.tif 000013
【図９】
2007200085.tif 000014
【図１０】
2007200085.tif 000015
【図１１】
2007200085.tif 000016
【図１２】
2007200085.tif 000017
【図１３】
2007200085.tif 000018