(57)【特許請求の範囲】
【請求項１】
ストレージのデータを管理するDBMSと、
前記DBMSとアプリケーションとの間のインタフェースを有し且つ前記アプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、前記取得された操作情報がデータベースの更新に関する操作情報の場合、前記DBMSへのデータの操作情報を多重化するための処理を行う多重化手段と、を備えるアプリケーションサーバと、
を備えることを特徴とするデータ多重化システム。
【請求項２】
前記多重化手段は、
前記ＤＢＭＳに対応するアプリケーションサーバが、前記操作情報を前記他のＤＢＭＳに対応するアプリケーションサーバへ送信する手段と、
前記他のＤＢＭＳに対応するアプリケーションサーバが、受信した操作情報を前記他のＤＢＭＳに対応する操作情報に変換する変換手段と、
を備えることを特徴とする請求項１に記載のデータ多重化システム。
【請求項３】
前記変換手段は、ＤＢＭＳに対応するアドレスの変換と、ＤＢＭＳにアクセスするための認証情報の変換と、ＤＢＭＳの操作情報の表現形式の変換と、データベーススキーマの変換の少なくとも一つを行う
ことを特徴とする請求項２に記載のデータ多重化システム。
【請求項４】
前記変換手段は、ＤＢＭＳに対応するアドレスと、ＤＢＭＳにアクセスするための認証情報と、ＤＢＭＳの操作情報の表現形式と、データベーススキーマの少なくとも一つについて変換対象の対応関係を示す変更情報を参照して、受信した操作情報を前記他のＤＢＭＳに対応する操作情報に変換する
ことを特徴とする請求項３に記載のデータ多重化システム。
【請求項５】
前記DBMSと前記他のDBMSとによる同じ操作についての応答情報を比較する検証手段と、該検証手段の検証結果を通知する通知手段とを備えることを特徴とする請求項２、３または４記載のデータ多重化システム。
【請求項６】
前記アプリケーションから前記ミドルウェアへ発行された操作情報に基づく前記DBMSによるストレージに対する操作は、前記操作情報に基づく前記他のDBMSによるストレージに対する操作の完了を確認してから行うものであることを特徴とする請求項２、３、４または５記載のデータ多重化システム。
【請求項７】
前記取得手段で取得された前記DBMSへのデータの操作情報を前記ストレージとは異なるストレージに記録する記録手段を備えることを特徴とする請求項１記載のデータ多重化システム。
【請求項８】
プライマリシステムとバックアップシステムが通信回線を介して接続されている計算機システムにおいて、
プライマリシステムに、
ストレージのデータを管理するDBMSと、
前記DBMSとアプリケーションとの間のインタフェースを有し且つ前記アプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、該取得手段で取得された前記DBMSへのデータの操作情報のうちバックアップシステムへ送信すべき操作情報を識別する識別手段と、該識別手段で識別された操作情報をバックアップシステムへ送信する送信手段とを備えるアプリケーションサーバとを備え、
バックアップシステムに、
他のストレージのデータを管理する他のDBMSと、
前記送信手段により送信された操作情報を受信する受信手段と、該受信手段で受信された操作情報を前記他のDBMSへのデータの操作情報に適するように変更する変更手段と、該変更手段により変更された操作情報を再生し前記他のDBMSへ発行する再生手段とを備えるアプリケーションサーバとを備える
ことを特徴とするデータ多重化システム。
【請求項９】
プライマリシステムとバックアップシステムが通信回線を介して接続されている計算機システムにおいて、
プライマリシステムに、
ストレージのデータを管理するDBMSと、
前記DBMSとアプリケーションとの間のインタフェースを有し且つ前記アプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、該取得手段で取得された前記DBMSへのデータの操作情報のうちバックアップシステムへ送信すべき操作情報を識別する識別手段と、該識別手段で識別された操作情報をバックアップシステム側DBMSへのデータの操作情報に適するように変更する変更手段と、該変更手段により変更された操作情報をバックアップシステムへ送信する送信手段とを備えるアプリケーションサーバとを備え、
バックアップシステムに、
他のストレージのデータを管理する他のDBMSと、前記送信手段により送信された操作情報を受信する受信手段と、該受信手段で受信された操作情報を再生し前記他のDBMSへ発行する再生手段とを備える
ことを特徴とするデータ多重化システム。
【請求項１０】
プライマリシステムとバックアップシステムが通信回線を介して接続されている計算機システムにおいて、
プライマリシステムに、
ストレージのデータを管理するDBMSと、
前記DBMSとアプリケーションとの間のインタフェースを有し且つ前記アプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、該取得手段で取得された前記DBMSへのデータの操作情報のうちバックアップシステムへ送信すべき操作情報を識別する識別手段と、該識別手段で識別された操作情報をバックアップシステム側DBMSへのデータの操作情報に適するように変更する変更手段と、該変更手段により変更された操作情報を再生し前記ミドルウェアを通じて前記バックアップシステムのストレージを管理する他のDBMSに発行する再生手段とを備えるアプリケーションサーバとを備える
ことを特徴とするデータ多重化システム。
【請求項１１】
プライマリシステムにおけるデータ操作の応答情報とバックアップシステムにおけるデータ操作の応答情報を比較する検証手段と、該検証手段の検証結果を通知する通知手段とを備えることを特徴とする請求項８、９または１０に記載のデータ多重化システム。
【請求項１２】
プライマリシステムとバックアップシステムが通信回線を介して接続されている計算機システムにおいて、
プライマリシステムに、
ストレージのデータを管理するDBMSと、
前記DBMSとアプリケーションとの間のインタフェースを有し且つ前記アプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、該取得手段で取得された前記DBMSへのデータの操作情報のうちバックアップシステムへ送信すべき操作情報を識別する識別手段と、該識別手段で識別された操作情報をバックアップシステムへ送信する送信手段とを備えるアプリケーションサーバとを備え、
バックアップシステムに、
前記送信手段により送信された操作情報を受信する受信手段と、
該受信手段で受信された操作情報を前記ストレージと異なる他のストレージに記録する記録手段とを備える
ことを特徴とするデータ多重化システム。
【請求項１３】
１つのプライマリシステムと複数のバックアップシステムとから構成され、複数のバックアップシステムが、１つのプライマリシステムのデータの複製をそれぞれ格納することを特徴とする請求項８乃至１２の何れか１項に記載のデータ多重化システム。
【請求項１４】
複数のプライマリシステムと１つのバックアップシステムとから構成され、１つのバックアップシステムが、複数のプライマリシステムのデータの複製を集約して格納することを特徴とする請求項８乃至１２の何れか１項に記載のデータ多重化システム。
【請求項１５】
複数のプライマリシステムと複数のバックアップシステムとから構成され、それぞれのバックアップシステムが、複数のプライマリシステムの何れか複数のデータの複製を集約して格納することを特徴とする請求項８乃至１２の何れか１項に記載のデータ多重化システム。
【請求項１６】
１つのプライマリシステムと複数のバックアップシステムとから構成され、プライマリシステムの複製のデータをあるバックアップシステムが格納し、そのバックアップシステムの複製のデータをさらに別のバックアップシステムが格納する如く、連鎖的に複製のデータを格納することを特徴とする請求項８乃至１２の何れか１項に記載のデータ多重化システム。
【請求項１７】
ＤＢＭＳとのインタフェースを有するアプリケーションサーバであって、
アプリケーションの処理に必要なデータベースの操作情報を前記ＤＢＭＳに対して発行する手段と、
前記発行された操作情報がデータベースの更新に関する操作情報の場合、他のＤＢＭＳとのインタフェースを有する他のアプリケーションサーバに当該操作情報を送信する手段と、
前記他のアプリケーションサーバから前記他のＤＢＭＳに対する操作情報を受信した場合、前記他のＤＢＭＳに対する操作情報を、前記ＤＭＢＳに対する操作情報に変換して前記ＤＢＭＳに対して発行する手段と、
を備えることを特徴とするアプリケーションサーバ。
【請求項１８】
ＤＢＭＳとのインタフェースを有するアプリケーションサーバであって、
アプリケーションの処理に必要なデータベースの操作情報を前記ＤＢＭＳに対して発行する手段と、
前記発行された操作情報がデータベースの更新に関する操作情報の場合、前記操作情報を、他のＤＢＭＳに対する操作情報に変換して他のＤＢＭＳに対して発行する手段と、
を備えることを特徴とするアプリケーションサーバ。
【請求項１９】
アプリケーションサーバに、DBMSとアプリケーションとの間のインタフェースを有し且つ前記アプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェア設け、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得手段により取得し、取得した操作情報がデータベースの更新に関する操作情報の場合、前記DBMSへのデータの操作情報を多重化するための処理を行うことを特徴とするデータ多重化方法。
【請求項２０】
前記ＤＢＭＳへのデータの操作情報を多重化するための処理では、
前記ＤＢＭＳに対応するアプリケーションサーバが、前記操作情報を前記他のＤＢＭＳに対応するアプリケーションサーバへ送信し、
前記他のＤＢＭＳに対応するアプリケーションサーバが、受信した操作情報を前記他のＤＢＭＳに対応する操作情報に変換する
ことを特徴とする請求項１９に記載のデータ多重化方法。
【請求項２１】
前記DBMSと前記他のDBMSとによる同じ操作についての応答情報を検証手段により比較し、前記検証手段の検証結果を通知手段により通知することを特徴とする請求項１９又は２０に記載のデータ多重化方法。
【請求項２２】
前記アプリケーションから前記ミドルウェアへ発行された操作情報に基づく前記DBMSによるストレージに対する操作は、前記操作情報に基づく前記他のDBMSによるストレージに対する操作の完了を確認してから行うことを特徴とする請求項１９から２１のいずれか１項に記載のデータ多重化方法。
【請求項２３】
前記取得手段で取得された前記DBMSへのデータの操作情報を前記ストレージとは異なるストレージに記録手段により記録することを特徴とする請求項１９から２２のいずれか１項に記載のデータ多重化方法。
【請求項２４】
ＤＢＭＳとのインタフェースを有するアプリケーションサーバにおいて、アプリケーションの処理に必要な操作情報を前記ＤＢＭＳに対して発行し、
前記発行された操作情報がデータベースの更新に関する操作情報の場合、他のＤＢＭＳとのインタフェースを有する他のアプリケーションサーバに当該操作情報を送信し、
前記アプリケーションサーバが前記他のアプリケーションサーバから前記他のＤＢＭＳに対する操作情報を受信した場合、受信した操作情報を、自サーバがインタフェースを有するＤＢＭＳに対する操作情報に変換して発行する
ことを特徴とするデータ多重化方法。
【請求項２５】
ＤＢＭＳとのインタフェースを有するアプリケーションサーバにおいて、アプリケーションの処理に必要な操作情報を前記ＤＢＭＳに対して発行し、
前記発行された操作情報がデータベースの更新に関する操作情報の場合、当該操作情報を他のＤＢＭＳに対する操作情報に変換し、変換された操作情報を前記他のＤＢＭＳに対して発行する
ことを特徴とするデータ多重化方法。
【請求項２６】
バックアップシステムと通信回線を介して接続されているプライマリ計算機システムにおいて、
ストレージのデータを管理するDBMSと、
前記DBMSとアプリケーションとの間のインタフェースを有し且つ前記アプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、該取得手段で取得された前記DBMSへのデータの操作情報のうちバックアップシステムへ送信すべき操作情報を識別する識別手段と、該識別手段で識別された操作情報をバックアップシステムへ送信する送信手段とを備えるアプリケーションサーバと、
を備えることを特徴とするプライマリ計算機システム。
【請求項２７】
バックアップシステムに通信回線を介して接続されているプライマリ計算機システムにおいて、
ストレージのデータを管理するDBMSと、
前記DBMSとアプリケーションとの間のインタフェースを有し且つ前記アプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、該取得手段で取得された前記DBMSへのデータの操作情報のうちバックアップシステムへ送信すべき操作情報を識別する識別手段と、該識別手段で識別された操作情報をバックアップシステム側DBMSへのデータの操作情報に適するように変更する変更手段と、該変更手段により変更された操作情報をバックアップシステムへ送信する送信手段とを備えるアプリケーションサーバと、
を備えることを特徴とするプライマリ計算機システム。
【請求項２８】
バックアップシステムに通信回線を介して接続されているプライマリ計算機システムにおいて、
ストレージのデータを管理するDBMSと、
前記DBMSとアプリケーションとの間のインタフェースを有し且つ前記アプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、該取得手段で取得された前記DBMSへのデータの操作情報のうちバックアップシステムへ送信すべき操作情報を識別する識別手段と、該識別手段で識別された操作情報をバックアップシステム側DBMSへのデータの操作情報に適するように変更する変更手段と、該変更手段により変更された操作情報を再生し前記ミドルウェアを通じて前記バックアップシステムのストレージを管理する他のDBMSに発行する再生手段とを備えるアプリケーションサーバと、
を備えることを特徴とするプライマリ計算機システム。
【請求項２９】
自システムにおけるデータ操作の応答情報とバックアップシステムにおけるデータ操作の応答情報を比較する検証手段と、該検証手段の検証結果を通知する通知手段とを備えることを特徴とする請求項２６、２７または２８記載のプライマリ計算機システム。
【請求項３０】
プライマリシステムに通信回線を介して接続されているバックアップ計算機システムにおいて、
バックアップのＤＢＭＳと、
DBMSとアプリケーションとの間のインタフェースを有し且つ前記アプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアへ前記アプリケーションから発行された前記DBMSへのデータの操作情報を前記プライマリシステムから受信する受信手段と、前記受信手段で受信された操作情報を前記バックアップのDBMSへのデータの操作情報に適するように変更する変更手段と、該変更手段により変更された操作情報を再生し前記バックアップのDBMSへ発行する再生手段とを備えるアプリケーションサーバと、
を備えることを特徴とするバックアップ計算機システム。
【請求項３１】
プライマリシステムに通信回線を介して接続されているバックアップ計算機システムにおいて、
バックアップシステム側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とアプリケーションとの間のインタフェースを有し且つ前記アプリケーションからのアクセスを前記DBMSへのアクセスに変換するDBアクセス手段、前記アプリケーションから前記DBアクセス手段へ発行される前記DBMSへのデータの操作情報を取得する取得手段、該取得手段で取得された前記DBMSへのデータの操作情報のうちバックアップシステムへ送信すべき操作情報を識別する識別手段、該識別手段で識別された操作情報をバックアップシステム側DBMSへのデータの操作情報に適するように変更する変更手段、該変更手段により変更された操作情報を再生し前記DBアクセス手段を通じて前記バックアップシステムのストレージを管理する他のDBMSに発行する再生手段、として機能させるためのプログラム。
【請求項３７】
前記アプリケーションサーバを、自計算機におけるデータ操作の応答情報とバックアップシステムにおけるデータ操作の応答情報を比較する検証手段、該検証手段の検証結果を通知する通知手段、として機能させるための請求項３４、３５または３６記載のプログラム。
【請求項３８】
プライマリシステムに通信回線を介して接続されたバックアップシステムのアプリケーションサーバを、DBMSとアプリケーションとの間のインタフェースを有し且つ前記アプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアへ前記アプリケーションから発行された前記DBMSへのデータの操作情報を前記プライマリシステムから受信する受信手段、該受信手段で受信された操作情報を前記バックアップ側DBMSへのデータの操作情報に適するように変更する変更手段、該変更手段により変更された操作情報を再生し前記バックアップ側DBMSへ発行する再生手段、として機能させるためのプログラム。
【請求項３９】
プライマリシステムに通信回線を介して接続されたバックアップシステムのアプリケーションサーバを、DBMSとアプリケーションとの間のインタフェースを有し且つ前記アプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアへ前記アプリケーションから発行された前記DBMSへのデータの操作情報であってバックアップシステム側DBMSへのデータの操作情報に適するように変更された操作情報を前記プライマリシステムから受信する受信手段、該受信手段で受信された操作情報を再生し前記バックアップ側DBMSへ発行する再生手段、として機能させるためのプログラム。
【請求項４０】
プライマリシステムに通信回線を介して接続されているバックアップ計算機を、プライマリシステム側のアプリケーションサーバにおいてDBMSとアプリケーションとの間のインタフェースを有し且つ前記アプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアへ前記アプリケーションから発行された前記DBMSへのデータの操作情報であって自DBMSへのデータの操作情報に適するように変更され再生手段によって再生されて前記ミドルウェアを通じて発行された操作情報を受信し、前記ストレージのデータを管理するバックアップ側DBMS、として機能させるためのプログラム。
【請求項４１】
プライマリシステムに通信回線を介して接続されているバックアップ計算機を、DBMSとアプリケーションとの間のインタフェースを有し且つ前記アプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアへ前記アプリケーションから発行された前記DBMSへのデータの操作情報をプライマリシステムのアプリケーションサーバから受信する受信手段、該受信手段で受信された操作情報をストレージに記録する記録手段、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースのストレージに蓄積されたデータの消失に備えてデータを多重化（複製）しておくデータ多重化システム、データ多重化方法およびデータ多重化用プログラムに関する。
【背景技術】
【０００２】
従来のこの種のデータ多重化システムの一例が特許文献１に記載されている。図１を参照すると、特許文献１に記載されたデータ多重化システムは、サービスを提供するアプリケーションプログラム（以下アプリケーション）1100と、アプリケーション1100の処理に必要なデータを管理するデータベースマネジメントシステム（以下DBMS）1200と、プライマリディスクアレイ装置1300と、バックアップディスクアレイ装置1400と、それらを結ぶ通信回線1500とから構成されている。【０００３】
プライマリディスクアレイ装置1300は、データの入出力を一時的に記録するキャッシュ1301と、キャッシュされたデータをコピーし、バックアップディスクアレイ装置1400に転送する送信部1302と、データを実際に格納する記録部1303と、そしてこれらを制御する制御部1304とを備える。バックアップディスクアレイ装置1400は、データの入出力を一時的に記録するキャッシュ1401と、プライマリディスクアレイ装置1300から転送されたデータを受信し、キャッシュ1401にコピーする受信部1402と、データを実際に格納する記録部1403と、そしてこれらを制御する制御部1404とを備える。【０００４】
このような構成を有する従来のデータ多重化システムは、次のように動作する。すなわち、アプリケーション1100がDBMS1200を介してプライマリディスクアレイ装置1300にデータを書き込む際、そのデータは、まずキャッシュ1301に書き込まれ、その後、記憶部1303に格納される。送信部1302はキャッシュ1301内のデータをコピーし、バックアップディスクアレイ装置1400に通信回線1500を介して転送する。バックアップディスクアレイ装置1400に転送されたデータは受信部1402が受信し、キャッシュ1401にコピーする。キャッシュ1401にコピーされたデータは記憶部1403に格納される。【０００５】
このようにすることでプライマリディスクアレイ装置1300とバックアップディスクアレイ装置1400とに同一のデータを格納する。このようなデータ多重化システムは、一般にミラーリングシステムと呼ばれる。【０００６】
しかしながら、ミラーリングにおいては、実際に更新したデータと同量のデータ（あるいはそれに正比例するデータ操作情報）を転送するため、転送するデータ量が多く、データの多重化に広帯域な通信回線1500が必要、あるいは時間がかかるという問題があった。【０００７】
そこで、このような問題を解決するデータ多重化システムとして、特許文献２および特許文献３に見られるようなデータ多重化システムが知られている。図２を参照すると、特許文献２および特許文献３に記載されたデータ多重化システムは、プライマリシステム2100と、バックアップシステム2200と、それらを結ぶ通信回線2300とから構成されている。プライマリシステム2100は、サービスを提供するアプリケーション2110と、アプリケーションの処理に必要なデータを管理するプライマリDBMS2120と、データを実際に格納する記憶部2130とを備え、プライマリDBMS2120は、プライマリDBMS2120が行ったデータの操作情報を記録する操作ログ2121と、操作ログの内容をバックアップシステム2200に転送する送信部2122と、そしてこれらを制御する制御部2123とを備える。バックアップシステム2200は、データを管理するバックアップDBMS2220と、データを実際に格納する記憶部2230とを備え、バックアップDBMS2220は、プライマリシステム2100から転送された操作ログを受信する受信部2222と、そしてこれらを制御する制御部2223とを備える。【０００８】
このような構成を有するデータ多重化システムは、次のように動作する。すなわち、プライマリシステム2100においてアプリケーション2110がプライマリDBMS2120を介して記憶部2130へデータを書き込む等の操作を行う際、その操作情報を操作ログ2121に格納する。送信部2122は、操作ログ2121に格納された操作情報を通信回線2300を介してバックアップシステム2200に転送する。バックアップシステム2200に転送された操作情報は受信部2222が受信する。バックアップDBMS2220は、受信した操作情報に従って、記憶部2230にデータを書き込む等の操作を行う。【０００９】
このようにすることで、プライマリシステム2100の記憶部2130と、バックアップシステム2200の記憶部2230に同一のデータを格納する。このようなデータ多重化システムは、一般にレプリケーションシステムと呼ばれる。【００１０】
レプリケーションにおいては、ストレージにおける「操作したデータ」そのものの情報ではなく、より高位の「データへの操作情報」という抽象化された、より少ない情報を転送することによって、狭い通信帯域でも短時間でデータの多重化が行える。【００１１】
【特許文献１】特開２００３−１６７６８４号公報
【特許文献２】特開２００２−１０８６８１号公報
【特許文献３】特開２０００−４７９１９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上述したようにレプリケーションは狭い通信帯域の通信回線であってもデータ多重化が行えるという、ミラーリングにはない長所を有するが、以下のような問題点があった。【００１３】
第１の問題点は、システム全体の性能が大きく低下するということである。その理由は、レプリケーションはDBMSが提供する機能であり、一般にDBMSは処理負荷が高く、システムにおいて最もボトルネックと成りやすい構成要素のため、さらにレプリケーション機能を実現する処理を行わせた場合、DBMSの処理性能が大きく低下するからである。一方、ミラーリングにおいては、DBMSに処理負荷がかかることは無いが、転送するデータ量が膨大なため、転送処理に時間がかかってしまう。【００１４】
第２の問題点は、レプリケーション可能なDBMSが限定されるということである。その理由は、レプリケーション機能がDBMS毎に固有の機能であるため、レプリケーション機能に対応していないDBMSではレプリケーションを行うことができないからである。また、レプリケーションに対応しているDBMS同士でも、レプリケーションの方式（操作ログのフォーマット、転送プロトコル等）が異なるため、種類の異なるDBMS間でレプリケーションを行うことはできない。【００１５】
『発明の目的』
本発明の目的は、システムの性能を低下させずデータの多重化ができるデータ多重化システムを提供することにある。【００１６】
本発明の他の目的は、DBMSを限定することなくデータの多重化ができるデータ多重化システムを提供することにある。
【課題を解決するための手段】
【００１７】
本発明の第１のデータ多重化システムは、ストレージのデータを管理するDBMSと、標準規格のインタフェースを有し且つアプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、前記取得された操作情報がデータベースの更新に関する操作情報の場合、前記DBMSへのデータの操作情報を多重化するための処理を行う多重化手段と、を備えるアプリケーションサーバと、を備えることを特徴とする。
【００１８】
本発明の第２のデータ多重化システムは、第１のデータ多重化システムにおいて、前記多重化手段が、前記ＤＢＭＳに対応するアプリケーションサーバが、前記操作情報を前記他のＤＢＭＳに対応するアプリケーションサーバへ送信する手段と、前記他のＤＢＭＳに対応するアプリケーションサーバが、受信した操作情報を前記他のＤＢＭＳに対応する操作情報に変換する変換手段と、を備えることを特徴とする。
【００１９】
本発明の第３のデータ多重化システムは、第２のデータ多重化システムにおいて、前記変換手段が、ＤＢＭＳに対応するアドレスの変換と、ＤＢＭＳにアクセスするための認証情報の変換と、ＤＢＭＳの操作情報の表現形式の変換と、データベーススキーマの変換の少なくとも一つを行うことを特徴とする。
【００２０】
本発明の第４のデータ多重化システムは、第３のデータ多重化システムにおいて、前記変換手段は、ＤＢＭＳに対応するアドレスと、ＤＢＭＳにアクセスするための認証情報と、ＤＢＭＳの操作情報の表現形式と、データベーススキーマの少なくとも一つについて変換対象の対応関係を示す変更情報を参照して、受信した操作情報を前記他のＤＢＭＳに対応する操作情報に変換することを特徴とする。
【００２１】
本発明の第５のデータ多重化システムは、第２乃至第４のデータ多重化システムにおいて、前記DBMSと前記他のDBMSとによる同じ操作についての応答情報を比較する検証手段と、該検証手段の検証結果を通知する通知手段とを備えることを特徴とする。【００２２】
本発明の第６のデータ多重化システムは、第２乃至第５のデータ多重化システムにおいて、前記アプリケーションから前記ミドルウェアへ発行された操作情報に基づく前記DBMSによるストレージに対する操作は、前記操作情報に基づく前記他のDBMSによるストレージに対する操作の完了を確認してから行うものであることを特徴とする。【００２３】
本発明の第７のデータ多重化システムは、第１のデータ多重化システムにおいて、前記取得手段で取得された前記DBMSへのデータの操作情報を前記ストレージとは異なるストレージに記録する記録手段を備えることを特徴とする。【００２４】
本発明の第８のデータ多重化システムは、プライマリシステムとバックアップシステムが通信回線を介して接続されている計算機システムにおいて、プライマリシステムに、ストレージのデータを管理するDBMSと、標準規格のインタフェースを有し且つアプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、該取得手段で取得された前記DBMSへのデータの操作情報のうちバックアップシステムへ送信すべき操作情報を識別する識別手段と、該識別手段で識別された操作情報をバックアップシステムへ送信する送信手段とを備えるアプリケーションサーバとを備え、バックアップシステムに、他のストレージのデータを管理する他のDBMSと、前記送信手段により送信された操作情報を受信する受信手段と、該受信手段で受信された操作情報を前記他のDBMSへのデータの操作情報に適するように変更する変更手段と、該変更手段により変更された操作情報を再生し前記他のDBMSへ発行する再生手段とを備えるアプリケーションサーバとを備えることを特徴とする。
【００２５】
本発明の第９のデータ多重化システムは、プライマリシステムとバックアップシステムが通信回線を介して接続されている計算機システムにおいて、プライマリシステムに、ストレージのデータを管理するDBMSと、標準規格のインタフェースを有し且つアプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、該取得手段で取得された前記DBMSへのデータの操作情報のうちバックアップシステムへ送信すべき操作情報を識別する識別手段と、該識別手段で識別された操作情報をバックアップシステム側DBMSへのデータの操作情報に適するように変更する変更手段と、該変更手段により変更された操作情報をバックアップシステムへ送信する送信手段とを備えるアプリケーションサーバとを備え、バックアップシステムに、他のストレージのデータを管理する他のDBMSと、前記送信手段により送信された操作情報を受信する受信手段と、該受信手段で受信された操作情報を再生し前記他のDBMSへ発行する再生手段とを備えることを特徴とする。
【００２６】
本発明の第１０のデータ多重化システムは、プライマリシステムとバックアップシステムが通信回線を介して接続されている計算機システムにおいて、プライマリシステムに、ストレージのデータを管理するDBMSと、標準規格のインタフェースを有し且つアプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、該取得手段で取得された前記DBMSへのデータの操作情報のうちバックアップシステムへ送信すべき操作情報を識別する識別手段と、該識別手段で識別された操作情報をバックアップシステム側DBMSへのデータの操作情報に適するように変更する変更手段と、該変更手段により変更された操作情報を再生し前記ミドルウェアを通じて前記バックアップシステムのストレージを管理する他のDBMSに発行する再生手段とを備えるアプリケーションサーバとを備えることを特徴とする。
【００２７】
本発明の第１１のデータ多重化システムは、第８乃至第１０のデータ多重化システムにおいて、プライマリシステムにおけるデータ操作の応答情報とバックアップシステムにおけるデータ操作の応答情報を比較する検証手段と、該検証手段の検証結果を通知する通知手段とを備えることを特徴とする。【００２８】
本発明の第１２の多重化システムは、プライマリシステムとバックアップシステムが通信回線を介して接続されている計算機システムにおいて、プライマリシステムに、ストレージのデータを管理するDBMSと、標準規格のインタフェースを有し且つアプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、該取得手段で取得された前記DBMSへのデータの操作情報のうちバックアップシステムへ送信すべき操作情報を識別する識別手段と、該識別手段で識別された操作情報をバックアップシステムへ送信する送信手段とを備えるアプリケーションサーバとを備え、バックアップシステムに、前記送信手段により送信された操作情報を受信する受信手段と、該受信手段で受信された操作情報を前記ストレージと異なる他のストレージに記録する記録手段とを備えることを特徴とする。
【００２９】
本発明の第１３のデータ多重化システムは、第８乃至第１２のデータ多重化システムにおいて、１つのプライマリシステムと複数のバックアップシステムとから構成され、複数のバックアップシステムが、１つのプライマリシステムのデータの複製をそれぞれ格納することを特徴とする。【００３０】
本発明の第１４のデータ多重化システムは、第８乃至第１２のデータ多重化システムにおいて、複数のプライマリシステムと１つのバックアップシステムとから構成され、１つのバックアップシステムが、複数のプライマリシステムのデータの複製を集約して格納することを特徴とする。【００３１】
本発明の第１５のデータ多重化システムは、第８乃至第１２のデータ多重化システムにおいて、複数のプライマリシステムと複数のバックアップシステムとから構成され、それぞれのバックアップシステムが、複数のプライマリシステムの何れか複数のデータの複製を集約して格納することを特徴とする。【００３２】
本発明の第１６のデータ多重化システムは、第８乃至第１２のデータ多重化システムにおいて、１つのプライマリシステムと複数のバックアップシステムとから構成され、プライマリシステムの複製のデータをあるバックアップシステムが格納し、そのバックアップシステムの複製のデータをさらに別のバックアップシステムが格納する如く、連鎖的に複製のデータを格納することを特徴とする。【００３３】
本発明の第１のアプリケーションサーバは、ＤＢＭＳとのインタフェースを有するアプリケーションサーバであって、アプリケーションの処理に必要なデータベースの操作情報を前記ＤＢＭＳに対して発行する手段と、前記発行された操作情報がデータベースの更新に関する操作情報の場合、他のＤＢＭＳとのインタフェースを有する他のアプリケーションサーバに当該操作情報を送信する手段と、前記他のアプリケーションサーバから前記他のＤＢＭＳに対する操作情報を受信した場合、前記他のＤＢＭＳに対する操作情報を、前記ＤＭＢＳに対する操作情報に変換して前記ＤＢＭＳに対して発行する手段と、を備えることを特徴とする。
【００３４】
本発明の第２のアプリケーションサーバは、ＤＢＭＳとのインタフェースを有するアプリケーションサーバであって、アプリケーションの処理に必要なデータベースの操作情報を前記ＤＢＭＳに対して発行する手段と、前記発行された操作情報がデータベースの更新に関する操作情報の場合、前記操作情報を、他のＤＢＭＳに対する操作情報に変換して他のＤＢＭＳに対して発行する手段と、を備えることを特徴とする。
【００３５】
本発明の第１のデータ多重化方法は、アプリケーションサーバに、標準規格のインタフェースを有し且つアプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアを設け、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得手段により取得し、取得した操作情報がデータベースの更新に関する操作情報の場合、前記DBMSへのデータの操作情報を多重化するための処理を行うことを特徴とする。
【００３６】
本発明の第２のデータ多重化方法は、第１のデータ多重化方法において、前記ＤＢＭＳへのデータの操作情報を多重化するための処理では、前記ＤＢＭＳに対応するアプリケーションサーバが、前記操作情報を前記他のＤＢＭＳに対応するアプリケーションサーバへ送信し、前記他のＤＢＭＳに対応するアプリケーションサーバが、受信した操作情報を前記他のＤＢＭＳに対応する操作情報に変換することを特徴とする。
【００３９】
本発明の第３のデータ多重化方法は、第１又は第２のデータ多重化方法において、前記DBMSと前記他のDBMSとによる同じ操作についての応答情報を検証手段により比較し、前記検証手段の検証結果を通知手段により通知することを特徴とする。
【００４０】
本発明の第４のデータ多重化方法は、第１乃至第３のデータ多重化方法において、前記アプリケーションから前記ミドルウェアへ発行された操作情報に基づく前記DBMSによるストレージに対する操作は、前記操作情報に基づく前記他のDBMSによるストレージに対する操作の完了を確認してから行うことを特徴とする。
【００４１】
本発明の第５のデータ多重化方法は、第１乃至第４のデータ多重化方法において、前記取得手段で取得された前記DBMSへのデータの操作情報を前記ストレージとは異なるストレージに記録手段により記録することを特徴とする。本発明の第６のデータ多重化方法は、ＤＢＭＳとのインタフェースを有するアプリケーションサーバにおいて、アプリケーションの処理に必要な操作情報を前記ＤＢＭＳに対して発行し、前記発行された操作情報がデータベースの更新に関する操作情報の場合、他のＤＢＭＳとのインタフェースを有する他のアプリケーションサーバに当該操作情報を送信し、前記アプリケーションサーバが前記他のアプリケーションサーバから前記他のＤＢＭＳに対する操作情報を受信した場合、受信した操作情報を、自サーバがインタフェースを有するＤＢＭＳに対する操作情報に変換して発行することを特徴とする。本発明の第７のデータ多重化方法は、ＤＢＭＳとのインタフェースを有するアプリケーションサーバにおいて、アプリケーションの処理に必要な操作情報を前記ＤＢＭＳに対して発行し、前記発行された操作情報がデータベースの更新に関する操作情報の場合、当該操作情報を他のＤＢＭＳに対する操作情報に変換し、変換された操作情報を前記他のＤＢＭＳに対して発行することを特徴とする。
【００４２】
本発明の第１のプライマリ計算機システムは、バックアップシステムと通信回線を介して接続されているプライマリ計算機システムにおいて、ストレージのデータを管理するDBMSと、標準規格のインタフェースを有し且つアプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、該取得手段で取得された前記DBMSへのデータの操作情報のうちバックアップシステムへ送信すべき操作情報を識別する識別手段と、該識別手段で識別された操作情報をバックアップシステムへ送信する送信手段とを備えるアプリケーションサーバと、を備えることを特徴とする。
【００４３】
本発明の第２のプライマリ計算機システムは、バックアップシステムに通信回線を介して接続されているプライマリ計算機システムにおいて、ストレージのデータを管理するDBMSと、標準規格のインタフェースを有し且つアプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、該取得手段で取得された前記DBMSへのデータの操作情報のうちバックアップシステムへ送信すべき操作情報を識別する識別手段と、該識別手段で識別された操作情報をバックアップシステム側DBMSへのデータの操作情報に適するように変更する変更手段と、該変更手段により変更された操作情報をバックアップシステムへ送信する送信手段とを備えるアプリケーションサーバと、を備えることを特徴とする。
【００４４】
本発明の第３のプライマリ計算機システムは、バックアップシステムに通信回線を介して接続されているプライマリ計算機システムにおいて、ストレージのデータを管理するDBMSと、標準規格のインタフェースを有し且つアプリケーションからのアクセスを前記DBMSへのアクセスに変換する機能を有するミドルウェアと、前記アプリケーションから前記ミドルウェアへ発行される前記DBMSへのデータの操作情報を取得する取得手段と、該取得手段で取得された前記DBMSへのデータの操作情報のうちバックアップシステムへ送信すべき操作情報を識別する識別手段と、該識別手段で識別された操作情報をバックアップシステム側DBMSへのデータの操作情報に適するように変更する変更手段と、該変更手段により変更された操作情報を再生し前記ミドルウェアを通じて前記バックアップシステムのストレージを管理する他のDBMSに発行する再生手段とを備えるアプリケーションサーバと、を備えることを特徴とする。
【００４５】
本発明の第４のプライマリ計算機システムは、第１乃至第３のプライマリ計算機システムにおいて、自システムにおけるデータ操作の応答情報とバックアップシステムにおけるデータ操作の応答情報を比較する検証手段と、該検証手段の検証結果を通知する通知手段とを備えることを特徴とする。【００４６】
本発明の第１のバックアップ計算機システムは、プライマリシステムに通信回線を介して接続されているバックアップ計算機システムにおいて、バックアップのＤＢＭＳと、標準規格のインタフェースを有し且つアプリケーションからのアクセスをDBMSへのアクセスに変換する機能を有するミドルウェアへ前記アプリケーションから発行された前記DBMSへのデータの操作情報を前記プライマリシステムから受信する受信手段と、前記受信手段で受信された操作情報を前記前記バックアップのDBMSへのデータの操作情報に適するように変更する変更手段と、該変更手段により変更された操作情報を再生し前記バックアップのDBMSへ発行する再生手段とを備えるアプリケーションサーバと、を備えることを特徴とする。
【００４７】
本発明の第２のバックアップ計算機システムは、プライマリシステムに通信回線を介して接続されているバックアップ計算機システムにおいて、バックアップシステム側DBMSと、標準規格のインタフェースを有し且つアプリケーションからのアクセスをDBMSへのアクセスに変換する機能を有するミドルウェアへ前記アプリケーションから発行された前記DBMSへのデータの操作情報であってバックアップシステム側DBMSへのデータの操作情報に適するように変更された操作情報を前記プライマリシステムから受信する受信手段と、前記受信手段で受信された操作情報を再生し前記バックアップシステム側DBMSへ発行する再生手段とを備えるアプリケーションサーバと、を備えることを特徴とする。
【００４８】
本発明の第３のバックアップ計算機システムは、プライマリシステムに通信回線を介して接続されているバックアップ計算機システムにおいて、ストレージとバックアップシステム側DBMSとを備え、前記バックアップシステム側DBMSは、プライマリシステム側のアプリケーションサーバにおいて標準規格のインタフェースを有し且つアプリケーションからのアクセスをDBMSへのアクセスに変換する機能を有するミドルウェアへ前記アプリケーションから発行された前記DBMSへのデータの操作情報であってバックアップシステム側DBMSへのデータの操作情報に適するように変更され再生手段によって再生されて前記ミドルウェアを通じて発行された操作情報を受信し、前記ストレージのデータを管理するものであることを特徴とする。
【００４９】
本発明の第４のバックアップ計算機システムは、プライマリシステムに通信回線を介して接続されているバックアップ計算機システムにおいて、標準規格のインタフェースを有し且つアプリケーションからのアクセスをDBMSへのアクセスに変換する機能を有するアプリケーションサーバのミドルウェアへ前記アプリケーションサーバの前記アプリケーションから発行された前記DBMSへのデータの操作情報をプライマリシステムから受信する受信手段と、該受信手段で受信された操作情報をストレージに記録する記録手段とを備えることを特徴とする。
【００５０】
『作用』
本発明にあっては、標準規格のインタフェースを有し且つアプリケーションからのアクセスをDBMSへのアクセスに変換する機能を有するミドルウェアに対して、アプリケーションからDBMSへのデータの操作情報が発行されると、それが取得手段によって取得され、多重化に供される。つまり、典型的な構成にあっては、前記DBMSとは異なる他のDBMSに対して前記操作情報が適用され、他のDBSMで管理されるデータベースのデータがバックアップ元のDBSMで管理されるデータベースのデータと同じように操作される。
【発明の効果】
【００５１】
第１の効果は、システムの性能を低下させることなく、データの多重化ができることにある。その理由は、アプリケーションからミドルウェアへ発行されるDBMSへのデータの操作情報を多重化しており、この操作情報は抽象化されていてデータ量が少ないので、広帯域な通信回線を必要とせず短時間で行うことができ、またDBMSに処理負荷をかけないからである。【００５２】
第２の効果は、DBMSを限定することなくデータの多重化ができることにある。その理由は、アプリケーションやDBMSを限定しない標準的なインタフェースを備えたミドルウェアをアプリケーションとDBMSとの間に設けてあり、アプリケーションからDBMSへ発行される操作情報がアプリケーション及びDBMSによらず同じになるためである。
【図面の簡単な説明】
【００５３】
【図１】従来のデータ多重化システムの構成を示すブロック図である。
【図２】従来のデータ多重化システムの別の構成を示すブロック図である。
【図３】本発明の第１の実施の形態の構成を示すブロック図である。
【図４】本発明の第１の実施の形態の動作を示す流れ図である。
【図５】本発明の第１の実施の形態における取得手段の説明図である。
【図６】本発明の第１の実施の形態の変形例である１対Ｎ構成を示すブロック図である。
【図７】本発明の第１の実施の形態の変形例であるＮ対１構成を示すブロック図である。
【図８】本発明の第１の実施の形態の変形例であるＮ対Ｍ構成を示すブロック図である。
【図９】本発明の第１の実施の形態の変形例である連鎖構成を示すブロック図である。
【図１０】本発明の第１の実施の形態の変形例である相互構成を示すブロック図である。
【図１１】本発明の第１の実施の形態の変形例である並列構成を示すブロック図である。
【図１２】本発明の第２の実施の形態の構成を示すブロック図である。
【図１３】本発明の第２の実施の形態の動作を示す流れ図である。
【図１４】本発明の第３の実施の形態の構成を示すブロック図である。
【図１５】本発明の第３の実施の形態の別の構成例を示すブロック図である。
【図１６】本発明の第３の実施の形態の動作を示す流れ図である。
【図１７】本発明の第４の実施の形態の構成を示すブロック図である。
【図１８】本発明の第４の実施の形態の動作を示す流れ図である。
【符号の説明】
【００５４】
3100…プライマリシステム
3101…アプリケーションサーバ
3102…アプリケーション
3103…ミドルウェア
3104…DBアクセス手段
3105…取得手段
3106…識別手段
3107…識別情報格納部
3108…送信手段
3109…送信情報格納部
3121…データベースサーバ
3122…DBMS
3123…ストレージ
3200…バックアップシステム
3201…アプリケーションサーバ
3202…アプリケーション
3203…ミドルウェア
3204…DBアクセス手段
3205…再生手段
3206…変更手段
3207…変更情報格納部
3208…受信手段
3221…データベースサーバ
3222…DBMS
3223…ストレージ
3300…通信回線
【発明を実施するための最良の形態】
【００５５】
［第１の実施の形態］
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。【００５６】
『構成の説明』
図３を参照すると、本発明の第１の実施の形態は、プライマリシステム3100と、バックアップシステム3200と、それらを結ぶ通信回線3300とから構成されている。【００５７】
プライマリシステム3100は、サービスを提供するアプリケーションサーバ3101と、このアプリケーションサーバ3101にデータを提供するデータベースサーバ3121とを備える。【００５８】
データベースサーバ3121は、データを格納するストレージ3123と、このストレージ3123内のデータを管理するDBMS3122とを備える。【００５９】
アプリケーションサーバ3101は、サービスを提供するアプリケーション3102と、ミドルウェア3103とを備える。ミドルウェア3103は、アプリケーションサーバ3101上で稼働するアプリケーション3102をはじめとする複数のアプリケーションプログラムに対し共通な機能を提供するプログラムである。本例の場合、ミドルウェア3103は、アプリケーション3102からのアクセスをデータベースサーバ3121のDBMS3122へのアクセスに変換し、その逆にDBMS3122からの応答をアプリケーション3102への応答に変換するDBアクセス手段3104を備える。DBアクセス手段3104におけるアプリケーション3102との間のインタフェースには、例えばJDBC(Java（登録商標） Database Connectivity)などの標準規格のインタフェースが使用される。他方、DBアクセス手段3104におけるDBMS3122との間のインタフェースは、当該DBMS3122固有のインタフェースが使用される。【００６０】
またアプリケーションサーバ3101には、更に、データベースサーバ3121へのアクセスのためにアプリケーション3102からミドルウェア3103のDBアクセス手段3104に発行された操作情報を取得する取得手段3105と、この取得手段3105によって取得された操作情報のうちバックアップシステム3200へ送信すべき操作情報を識別する識別手段3106と、この識別に必要な情報を格納する識別情報格納部3107と、送信すべきと識別された操作情報をバックアップシステム3200に送信する送信手段3108と、送信先アドレスなど送信に必要な情報を格納する送信情報格納部3109とを備える。【００６１】
バックアップシステム3200は、アプリケーションサーバ3101のバックアップであるアプリケーションサーバ3201と、データベースサーバ3121のバックアップであるデータベースサーバ3221とを備える。【００６２】
データベースサーバ3221は、データを格納するストレージ3223と、このストレージ3223内のデータを管理するDBMS3222とを備える。ストレージ3223およびDBMS3222は、データベースサーバ3121のストレージ3123およびDBMS3122と全く同じものであっても良いし、ストレージ3123およびDBMS3122と異なる製造メーカ、異なる仕様のものであっても良い。【００６３】
アプリケーションサーバ3201は、アプリケーションサーバ3101から送信された操作情報を受信する受信手段3208と、この受信手段3208で受信された操作情報は本来はデータベースサーバ3121のDBMS3122に対して送信されたものであり、これをデータベースサーバ3221のDBMS3222に対する操作情報とするために必要な変更情報を格納する変更情報格納部3207と、この変更情報格納部3207に格納された変更情報に基づいて受信手段3206で受信された操作情報を変更する変更手段3206と、アプリケーション3102と同様のアプリケーション3202およびDBアクセス手段3204を有するミドルウェア3203と、変更手段3206から必要に応じて変更された操作情報を受け取り、DBアクセス手段3204に発行する再生手段3205とを備える。【００６４】
通信回線3300は、バス、シリアル、パラレル、ＬＡＮ、無線ＬＡＮ、インターネット、公衆回線などの任意の通信回線であり、また複数を組み合わせた多重化通信回線であっても良い。【００６５】
『動作の説明』
次に、図３および図４のフローチャートを参照して、本実施の形態の動作について詳細に説明する。【００６６】
まず、プライマリシステム3100において、アプリケーションサーバ3101のアプリケーション3102は、サービスを提供する際、必要に応じてミドルウェア3103のDBアクセス手段3104を介して、データベースサーバ3121のDBMS3122に接続し、処理に必要なデータの参照更新などを行う操作情報を発行する（ステップ401）。【００６７】
DBMS3122は、アプリケーション3102から発行された操作情報に基づき、ストレージ3123に対し、格納されたデータの参照・更新などの操作を行い、その結果である応答情報を返す（ステップ402）。【００６８】
アプリケーション3102は、DBMS3122からの応答情報を、DBアクセス手段3104を介して受け取る（ステップ403）。【００６９】
ステップ401の実行の際、取得手段3105は、アプリケーション3102がDBMS3122に発行した操作情報を取得する（ステップ404）。ここで、アプリケーション3102およびDBMS3122は、通常処理どおり、DBアクセス手段3104にのみ、それぞれ接続しようとする。したがって、取得手段3105は、アプリケーション3102およびDBMS3122からのDBアクセス手段3104への接続を透過的にトラップすることで、操作情報を取得する。具体例を図５を参照して説明する。【００７０】
取得手段3105がない場合、アプリケーション3102とDBアクセス手段3104とDBMS3122とは図５(1)に示されるようなインタフェース関係で相互に接続されている。図５(2)はいわゆるラッパによる取得手段3105の実現例であり、取得手段3105は、アプリケーション3102とはDBアクセス手段3104が有するAP-DBアクセス手段間インタフェースと同様のインタフェースで接続し、DBアクセス手段3104とはアプリケーション3102が有するAP-DBアクセス手段間インタフェースと同様のインタフェースで接続する。このため取得手段3105は、アプリケーション3102からはDBアクセス手段3104と同様に見え、DBアクセス手段3104からはアプリケーション3102と同様に見えるため、アプリケーション3102からのDBアクセス手段3104への接続を透過的にトラップすることができる。【００７１】
図５(3)は、DBアクセス手段3104に取得手段3105の機能を持たせることで、アプリケーション3102およびDBMS3122からのDBアクセス手段3104への接続を透過的にトラップする例を示す。具体的には、ミドルウェア3103を構成するJDBCドライバなどに取得手段3105の機能が実装される。【００７２】
また、取得手段3105による操作情報の取得は、DBアクセス手段3104を介しDBMS3122に接続する全てのアプリケーションに対し行っても良いし、特定のアプリケーションに対してのみ行っても良い。例えば、アプリケーション3102からDBMS3122への操作は、［接続認証（ユーザ・接続先）］→［操作（対象・操作）］というステップを踏むので、接続認証の際に特定のユーザあるいは特定の接続先（DBMS）で認証したアプリケーションからの操作情報のみを取得したり、操作において特定の対象（スキーマ）に対する操作を行うアプリケーションからの操作情報のみを取得する。この場合、ストレージ3123、3223全体ではデータは同じにならず、操作情報の多重化を行うアプリケーションに関するストレージ内データに関してデータが同一となる。これは、重要でないデータまで多重化する必要がないという理由に基づく変形例である。【００７３】
再び図４を参照すると、識別手段3106は、識別情報格納部3107に格納された識別情報に基づき、取得手段3105が取得した操作情報のうち、バックアップシステム3200に送信する操作情報を識別する（ステップ405）。例えば、識別手段3106は、送信するデータ量をさらに減少させるために、更新操作のみを送信するようにし、参照操作は送信せず破棄する、などが考えられる。これは、アプリケーション3102から発行される操作情報がSQL文（文字列）を含む場合、更新操作であれば、「UPDATE」「INSERT」等の更新を意味する文字列（SQLコマンド）が含まれるため、それらのコマンドを識別情報として識別情報格納部3107に格納しておき、識別手段3106は、操作情報を解析し、識別情報に登録されたコマンド文字列が出現している操作情報のみバックアップシステム3200に送信する操作情報と識別することで可能である。【００７４】
次に、送信手段3108は、識別手段3106が送信すべきものとして識別した操作情報を、送信情報格納部3109に格納された送信情報（例えばバックアップシステム3200のIPアドレス等）に基づき、通信回路3300を介してバックアップシステム3200に送信する（ステップ406）。【００７５】
バックアップシステム3200において、アプリケーションサーバ3201の受信手段3208は、プライマリシステム3100から送信された操作情報を受信する（ステップ407）。【００７６】
次に、変更手段3206は、受信手段3208が受信した操作情報を解析し、変更情報格納部3207に格納された変更情報に基づき、必要な箇所を変更する（ステップ408）。変更する場合の例としては、以下の(1)〜(4)のような場合が考えられる。【００７７】
(1)DBMS3122とDBMS3222でアクセスするアドレスが異なっている場合
DBMS3122のIPアドレスを例えば192.168.0.1とすると、DBMS3122をアクセスするアプリケーション3102の発行する操作情報にはそのIPアドレスが含まれている。しかし、バックアップシステム側ではDBMS3222をアクセスするので、アドレスを変換する必要がある。そこで、DBMS3222のIPアドレスを192.168.0.2とすると、192.168.0.1と192.168.0.2の対応関係が変更情報格納部3207に格納されており、変更手段3206は、受信手段3208で取得された操作情報に含まれるIPアドレス192.168.0.1を192.168.0.2に変更する。【００７８】
(2)認証情報が異なっている場合
アプリケーション3102がDBMS3122をアクセスする際のユーザ名／パスワードを例えばuser1/pass1とすると、DBMS3122をアクセスするアプリケーション3102の発行する操作情報にはそのような認証情報が含まれている。しかし、バックアップシステム側ではアプリケーション3202が操作情報を発行したかのようにみせる必要がある。そこで、アプリケーション3202がDBMS3222をアクセスする際のユーザ名／パスワードを例えばuser2/pass2とすると、user1/pass1とuser2/pass2の対応関係が変更情報格納部3207に格納されており、変更手段3206は、受信手段3208で取得された操作情報に含まれる認証情報user1/pass1をuser2/pass2に変更する。【００７９】
(3)操作情報のバージョンが異なっている場合
DBMS3122とDBMS3222とで操作情報のバージョンが異なる場合、DBMS3122をアクセスするアプリケーション3102の発行する操作情報を、DBMS3222のバージョンの操作情報に変更する必要がある。例えば、DBMS3122では「DECODE(key,val1,res1,val2,res2,res3)」と表現される操作情報が、DBMS3222では「CASE WHEN key=val1 THEN res1 WHEN
key=val2 THEN res2 ELSE res3」と表現される場合、前者の表現形式の文法と後者の表現形式の文法との対応関係が変更情報格納部3207に格納されており、変更手段3207は、受信手段3208で取得された操作情報に含まれる前者の表現形式を後者の表現形式に変更する。【００８０】
(4)異なるデータベーススキーマに適用したい場合
データベースサーバ3121側とデータベースサーバ3221側とでデータベースのテーブル名や構造が異なる場合、データベースサーバ3121をアクセスするアプリケーション3102の発行する操作情報を、データベースサーバ3221の該当する箇所がアクセスされるように操作情報を変更する必要がある。例えば、データベースサーバ3121側のテーブル名table1、レコード名recode1などが、データベースサーバ3221ではテーブル名table2、レコード名recode2などに対応する場合、その対応関係が変更情報格納部3207に格納されており、変更手段3207は、受信手段3208で取得された例えば「UPDATE table1 SET recode1 = x
WHERE key1 = y」という操作情報を、例えば「UPDATE table2 SET recode2 =
x WHERE key2 = y」という操作情報に変換する。【００８１】
次に、再生手段3205は、変更手段3206が必要に応じて変更した操作情報を再生し、DBアクセス手段3204を介して、データベースサーバ3221のDBMS3222 に発行する（ステップ409）。再生手段3205とアプリケーション3202およびDBアクセス手段3204間のインタフェース関係は、図５(2)で説明した取得手段3105とアプリケーション3102およびDBアクセス手段3104間のインタフェース関係と同様になっている。従って、DBアクセス手段3204からは、再生手段3205から発行された操作情報がアプリケーション3202から発行された操作情報のようにみえる。【００８２】
次に、DBMS3222は、再生手段3205が再生・発行した操作情報に基づき、ストレージ3223に対し、格納されたデータの更新などの操作を行い、その結果である応答情報を返す（ステップ410）。【００８３】
最後に、再生手段3205は、DBMS3222からの応答情報を、DBアクセス手段3204を介して受け取り、これを破棄する（ステップ411）。【００８４】
以上のようにバックアップシステム3200のストレージ3223のデータが、プライマリシステム3100のストレージ3123のデータと同様に操作されることにより、双方のストレージ3123、3223には、同一のデータが格納される。【００８５】
そのため、プライマリシステム3100で障害が発生し、ストレージ3123に格納されたデータが失われても、バックアップシステム3200のストレージ3223に同様のデータが格納されているため、このデータからストレージ3123のデータを復元し、サービスを継続することができる。【００８６】
あるいは、プライマリシステム3100のアプリケーション3102がバックアップシステム3200のストレージ3223のデータを参照するように操作情報、応答情報の経路を制御することで、サービスを継続することができる。【００８７】
あるいは、災害（ディザスタ）等でプライマリシステム3100全体が使用不能となった場合は、アプリケーション3202を起動し、バックアップシステム3200のみでサービスを継続することができる。【００８８】
次に、本実施の形態の効果について説明する。【００８９】
通信回線3300に広帯域を必要としない。その理由は、本実施の形態では、プライマリシステム3100のアプリケーションサーバ3101で動作するアプリケーション3102から発行される操作情報によってデータベースサーバ3121のストレージデータを操作すると同時に、その操作情報をバックアップシステム3200に転送し、バックアップシステム3200側のストレージデータを同じように操作することで、データの多重化を実現しており、プライマリシステム3100からバックアップシステム3200へ転送される操作情報によるデータ量は、図２で説明したレプリケーション方式と同程度で、図１で説明したミラーリングによる転送データ量より少なくなるためである。【００９０】
DBMSの処理に負荷をかけずにデータ多重化が行える。その理由は、図２で説明したレプリケーション方式のようにDBMSがデータ多重化処理に深く関与することがないためである。【００９１】
負荷分散のための多重実行が容易である。その理由は、アプリケーションサーバ3101はデータベースサーバ3121と異なり、負荷分散のための多重実行が容易だからである。これにより、システムの性能を低下させることなく、データの多重化を行うことができる。【００９２】
アプリケーション毎やDBMS毎にアドホックな機能を作り込むことなく、異なるDBMS間、たとえレプリケーション機能に対応していないDBMS間においても、データの多重化を行うことができる。その理由は、アプリケーションやDBMSを限定しない標準的なインタフェースを備えたミドルウェア3103のDBアクセス手段3104をアプリケーションとDBMSとの間に設けてあり、アプリケーションからDBMSへ発行される操作情報が、アプリケーション及びDBMSによらず同じになるためである。【００９３】
なお、本実施の形態では、ステップ402〜403は、ステップ404〜411と独立に行われる。つまり、いわゆる非同期多重のため、プライマリシステム3100においてストレージ3123へのデータ操作が行われていても、バックアップシステム3200においてストレージ3223へのデータ操作が行われていない状態がありえる。そのため、障害発生直前のデータおよびデータ操作情報は失われる可能性がある。そこで、ステップ402〜403を、ステップ411を待ってから行う、つまりバックアップシステム3200においてストレージ3223へのデータ操作の完了を確認してから、プライマリシステム3100においてストレージ3123へのデータ操作を行う、いわゆる同期多重を行っても構わない。【００９４】
また、本実施の形態では、プライマリシステム１つに対し、バックアップシステム１つという１対１構成を採用したが、これ以外の構成も考えられる。構成の幾つかの変形例を以下に示す。なお、以下の変形例は一例であり、これらに限定するものではない。【００９５】
１）変形例１（１対Ｎ構成）
本変形例の概要を図６に示す。図６を参照すると、本変形例は、１つのプライマリシステム510と、複数のバックアップシステム520-1、520-2、・・・、520-nとから構成される。複数のバックアップシステム520-1、520-2、・・・、520-nのストレージ521-1、521-2、・・・、521-nは、すべてプライマリシステム510のストレージ511と同じデータを格納する。【００９６】
本変形例は、プライマリシステム510の送信手段412（図３の送信手段3108に相当）が、複数のバックアップシステム520-1、520-2、・・・、520-nにそれぞれ操作情報を送信することによって実現できる。各バックアップシステム520-1、520-2、・・・、520-nの送信先アドレス等は、図３の送信情報格納部3109に相当する部分に格納されている。【００９７】
本変形例においては、バックアップシステムが複数存在するため、プライマリシステム510を含め複数のバックアップシステムで同時に障害が発生しても、残ったバックアップシステムのデータを用いて復旧ができる。【００９８】
２）変形例２（Ｎ対１構成）
本変形例の概要を図７に示す。図７を参照すると、本変形例は、複数のプライマリシステム610-1、610-2、・・・、610-nと、１つのバックアップシステム620とから構成される。【００９９】
複数のプライマリシステム610-1、610-2、・・・、610-nのストレージ611-1、611-2、・・・、611-nのデータは、バックアップシステム620のストレージ621に集約して複製される。【０１００】
本変形例は、バックアップシステム620の変更手段622（図３の変更手段3206に相当）が、複数のプライマリシステム610-1、610-2、・・・、610-nから送信される操作情報を、それぞれストレージ611の異なる領域、つまりDBMSレイヤで異なるスキーマに適用するように変更することによって実現できる。このような変更は、図３の変更情報格納部3207に相当する部分に各プライマリシステム610-1、610-2、・・・、610-nを特定するための情報（例えばIPアドレス）に対応して図３の実施の形態で説明したような変更情報を格納しておき、変更手段622が操作情報の送信元のプライマリシステムに対応する変更情報に基づいて操作情報を変更することで可能である。【０１０１】
なお、本変形例では、バックアップシステム620において変更手段622が操作情報の変更を行っているが、負荷分散のために、プライマリシステム610-1、610-2、・・・、610-nがそれぞれ変更手段を備え、事前に操作情報を変更してから、バックアップシステム620に送信するようにしても構わない。【０１０２】
本変形例は、プライマリシステムの数だけバックアップシステムを用意する必要が無いので、システム構築のコストを軽減できる。【０１０３】
３）変形例３（Ｎ対Ｍ構成）
本変形例の概要を図８に示す。図８を参照すると、本変形例は、複数のプライマリシステム710-1、710-2、・・・、710-nと、複数のバックアップシステム720-1、720-2、・・・、720-mとから構成される。【０１０４】
本変形例は、プライマリシステム710-1、710-2、・・・、710-nの送信手段712-1、712-2、・・・、712-n（図３の送信手段3108に相当）が、それぞれ複数のバックアップシステム720-1、720-2、・・・、720-mの何れか複数に操作情報を送信し、バックアップシステム720-1、720-2、・・・、720-mの変更手段722-1、722-2、・・・、722-m（図３の変更手段3206に相当）はそれぞれ、複数のプライマリシステムから受信した操作情報を、それぞれストレージ721-1、721-2、・・・、721-mの異なる領域、つまりDBMSレイヤで異なるスキーマに適用するように変更することによって実現できる。【０１０５】
各プライマリシステム710-1、710-2、・・・、710-nの送信情報格納部（図３の送信情報格納部3109に相当）には、操作情報を送信すべき複数のバックアップシステムの送信先アドレス等が格納されており、送信手段712-1、712-2、・・・、712-nはそれを参照して送信を行う。また、図３の変更情報格納部3207に相当する部分に各プライマリシステム610-1、610-2、・・・、610-nを特定するための情報（例えばIPアドレス）に対応して図３の実施の形態で説明したような変更情報が格納されており、変更手段722-1、722-2、・・・、722-mは操作情報の送信元のプライマリシステムに対応する変更情報に基づいて操作情報を変更する。【０１０６】
本変形例は、１対Ｎ構成のように複数のバックアップシステムが存在するため耐障害性が高く、Ｎ対１構成のようにデータを集約して複製するためバックアップシステムの数を少なくすることでシステム構築のコストを軽減できる。【０１０７】
４）変形例４（連鎖構成）
図９を参照すると、本変形例は、１つのプライマリシステム810と、このプライマリシステム810に縦列接続された少なくとも２つ以上のバックアップシステム820-1、820-2、・・・、820-nとから構成される。【０１０８】
複数のバックアップシステム820-1、820-2、・・・、820-nのストレージ821-1、821-2、・・・、821-nは、すべてプライマリシステム810のストレージ811と同じデータを格納する。【０１０９】
本変形例は、バックアップシステム820-1、820-2、・・・、820-nが、通信手段として図３の受信手段3208に相当する受信手段823-1、823-2、・・・、823-nだけでなく、この受信手段で受信した操作情報を後段のバックアップシステムへ送信する送信手段822-1、822-2・・・822-nを備え、まず、プライマリシステム810が操作情報をバックアップシステム820-1に送信し、次にバックアップシステム820-1が受信した操作情報をバックアップシステム820-2に送信し、次にバックアップシステム820-2が受信した操作情報をバックアップシステム820-3に送信し・・・と連鎖的に送受信を行うことによって実現できる。【０１１０】
本変形例は、１対Ｎ構成のように複数のバックアップシステムが存在するため耐障害性が高く、また、各システムは常に１つのバックアップシステムに対してのみ送受信を行うため、１つのシステムに負荷が集中することを避けることができる。【０１１１】
５）変形例５（相互構成）
本変形例の概要を図１０に示す。図１０を参照すると、本変形例は、システムＡ910、システムＢ920とから構成される。【０１１２】
アプリケーションＡ911に注目した場合、システムＡ910がプライマリシステムで、システムＢ920がバックアップシステムとなる。また、アプリケーションＢ921に注目した場合、システムＢ920がプライマリシステムで、システムＡ910がバックアップシステムとなる。【０１１３】
すなわちシステムＡ910ではアプリケーションＡ911がストレージ913に格納されたデータＡ914を用いて動作する。アプリケーションＡ911が発行した操作情報は、システムＢ920に送信され、システムＢ920は受信した操作情報に従い、ストレージ923にデータＡ914の複製であるデータＡ925を格納する。【０１１４】
一方、システムＢ920ではアプリケーションＢ921がストレージ923に格納されたデータＢ924を用いて動作する。アプリケーションＢ921が発行した操作情報は、システムＡ910に送信され、システムＡ910は受信した操作情報に従い、ストレージ913にデータＢ924の複製であるデータＢ915を格納する。【０１１５】
本変形例は、以上のように相互に相手をバックアップシステムとみなして動作することによって実現できる。本変形例は、バックアップシステムでもアプリケーションを動作させサービスを提供することで、システムを無駄なく活用することができる。なお、本構成は２個のシステムから構成されているが、それ以上でもかまわない。【０１１６】
６）変形例６（並列構成）
本変形例の概要を図１１に示す。図１１を参照すると、本変形例は、システムＡ1010、システムＢ1020から構成される。【０１１７】
２つのシステムは同格であり、互いにプライマリシステムでもあり、バックアップシステムでもある。すなわちシステムＡ1010ではアプリケーション1011がストレージ1013に格納されたデータ1014を用いて動作する。アプリケーション1011が発行した操作情報はシステムＢ1020に送信され、システムＢ1020は受信した操作情報に従い、ストレージ1023にデータ1014の複製であるデータ1024を格納する。【０１１８】
一方、システムＢ1020ではアプリケーション1021がストレージ1023に格納されたデータ1024を用いて動作する。アプリケーション1021が発行した操作情報はシステムＡ1010に送信され、システムＡ1010は受信した操作情報に従い、ストレージ1013にデータ1024の複製であるデータ1014を格納する。【０１１９】
さらにシステムＡ1010、システムＢ1020は、自分がデータを更新している間は、相手のデータ更新を許可しない、同期手段1012、1022を備える。【０１２０】
本変形例は、以上のように２つのシステムがデータを同期させるように並列に動作することによって実現できる。【０１２１】
本変形例は、バックアップシステムでもアプリケーションを動作させサービスを提供することで、システムを無駄なく活用することができ、また、アプリケーションの処理負荷を分散させることができる。【０１２２】
なお、本構成は２個のシステムから構成されているが、それ以上でもかまわない。【０１２３】
［第２の実施の形態］
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。【０１２４】
『構成の説明』
図１２を参照すると、本実施の形態は、プライマリシステム11100と、バックアップシステム11200と、第１の実施の形態と同様の通信回線3300とから構成されている。【０１２５】
プライマリシステム11100は、サービスを提供するアプリケーションサーバ11101と、第１の実施の形態と同様のDBMS3122およびストレージ3123を含むデータベースサーバ3121とを備える。【０１２６】
アプリケーションサーバ11101は、第１の実施の形態におけるアプリケーションサーバ3101と同様の、アプリケーション3102と、DBアクセス手段3104を有するミドルウェア3103と、取得手段3105と、識別手段3106と、識別情報格納部3107とを備え、また第１の実施の形態におけるアプリケーションサーバ3201と同様の、変更手段3206と、変更情報格納部3207と、再生手段3205とを備える。【０１２７】
バックアップシステム11200は、第１の実施の形態と同様のDBMS3222およびストレージ3223を含むデータベースサーバ3221を備える。【０１２８】
『動作の説明』
次に、図１２および図１３のフローチャートを参照して、本実施の形態の動作について詳細に説明する。【０１２９】
図１３のステップ1201〜1205で示される本実施の形態における、アプリケーション3102、DBMS3122、取得手段3105、識別手段3106の動作は、図４のステップ401〜405で示される第１の実施の形態における、アプリケーション3102、DBMS3122、取得手段3105、識別手段3106の動作と同一のため、説明は省略する。【０１３０】
変更手段3206は、識別手段3106が識別した操作情報を、変更情報3207に基づき、必要であれば変更し（ステップ1206）、再生手段3205に伝達する。【０１３１】
再生手段3205は、変更手段3206が必要に応じて変更した操作情報を、あたかもアプリケーション3102が発行した操作情報であるかのように再生し、DBアクセス手段3104を介して、バックアップシステム11200のデータベースサーバ3221のDBMS3222に発行する（ステップ1207）。再生された操作情報は、変更手段3206によって接続アドレスをDBMS3222に変更されているので、同じDBアクセス手段3104を経由しても、DBMS3122ではなく、DBMS3222に接続する。【０１３２】
次に、DBMS3222は、再生手段3205が再生・発行した操作情報に基づき、ストレージ3223に対し、格納されたデータの更新などの操作を行い、その結果である応答情報を返す（ステップ1208）。【０１３３】
最後に、再生手段3205は、DBMS3222からの応答情報を、DBアクセス手段3104を介して受け取り、これを破棄する（ステップ1209）。【０１３４】
この結果、プライマリシステム11100のストレージ3123と、バックアップシステム11200のストレージ3223には、同一のデータが格納される。【０１３５】
次に、本実施の形態の効果について説明する。【０１３６】
本実施の形態では、第１の実施の形態で得られる効果に加えて、バックアップシステムにアプリケーションサーバを必要としないため、システム構築のコストを軽減できる。【０１３７】
なお、本実施の形態では、ステップ1202〜1203は、ステップ1204〜1209と独立に行われる。つまり、いわゆる非同期多重のため、プライマリシステム11100においてストレージ3123へのデータ操作が行われていても、バックアップシステム11200においてストレージ3223へのデータ操作が行われていない状態がありえる。そのため、障害発生直前のデータおよびデータ操作情報は失われる可能性がある。そこで、ステップ1202〜1203を、ステップ1209を待ってから行う、つまりバックアップシステム11200においてストレージ3223へのデータ操作の完了を確認してから、プライマリシステム11100においてストレージ3123へのデータ操作を行う、いわゆる同期多重を行っても構わない。【０１３８】
また、本実施の形態においても、第１の実施の形態で述べた変形例１〜６と同様の変形が可能である。ただし、相互構成や並列構成の場合、バックアップシステム側にもアプリケーションサーバが必要である。【０１３９】
［第３の実施の形態］
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。【０１４０】
『構成の説明』
図１４を参照すると、本実施の形態は、バックアップシステム3200の代わりに、バックアップシステム13200を備えている点で、第１の実施の形態と構成が異なり、その他の構成は同じである。【０１４１】
バックアップシステム13200は、操作情報を格納するストレージサーバ13201を備える。【０１４２】
ストレージサーバ13201は、プライマリシステム3100のアプリケーションサーバ3101から送信された操作情報を受信する受信手段13202と、受信した操作情報を記録する記録手段13203と、操作情報を格納するストレージ13204とを備える。【０１４３】
『動作の説明』
次に、図１４および図１６のフローチャートを参照して、本実施の形態の動作について詳細に説明する。【０１４４】
図１６のステップ1401〜1406で示される本実施の形態における、アプリケーション3102、DBMS3122、取得手段3105、識別手段3106、送信手段3108の動作は、図４のステップ401〜406で示される第１の実施の形態における、アプリケーション3102、DBMS3122、取得手段3105、識別手段3106、送信手段3108の動作と同一のため、説明は省略する。【０１４５】
バックアップシステム13200において、ストレージサーバ13201の受信手段13202は、プライマリシステム3100から送信された操作情報を受信する（ステップ1407）。【０１４６】
記録手段13203は、受信手段13202が取得した操作情報を、ストレージ13204に格納する
（ステップ1408）。【０１４７】
この結果、ストレージ3123に格納されたデータそのものは多重化されないが、データを復元するのに必要な操作情報がストレージ13204に保存されているため、プライマリシステム3100で障害が発生し、ストレージ3123に格納されたデータが失われても、操作情報を再生しDBMS3122に再発行することで、データを復元することが可能である。ストレージ13204に保存された操作情報をDBMS3122に再発行する場合、可搬型であればストレージ3205をプライマリシステム3100に移動させて行う方法が考えられる。可搬型でないか、あるいは可搬型であっても、図１５のような構成にすれば通信回線3300を通じてバックアップシステム13200から遠隔で行うことが可能である。以下、図１５を参照して、本実施の形態におけるデータ復元時の動作例について、詳細に説明する。【０１４８】
まず、バックアップシステム13200において、記録管理手段13213は、ストレージ13204に格納された操作情報を読み出す。【０１４９】
次に、送受信手段13212は、記録管理手段13213が読み出した操作情報を、送信情報格納部13211に格納されたプライマリシステム13100の通信アドレスに基づき、プライマリシステム13100に送信する。【０１５０】
プライマリシステム13100において、アプリケーションサーバ13101の送受信手段13108は、バックアップシステム13200から送信された操作情報を受信し、取得・再生手段13105に伝達する。【０１５１】
次に、取得・再生手段13105は、送受信手段13018が受信した操作情報を、あたかもアプリケーション3102が発行した操作情報であるかのように再生し、DBアクセス手段3104を介して、データベースサーバ3121のDBMS3122に発行する。【０１５２】
DBMS3122は、取得・再生手段13105が再生・発行した操作情報に基づき、ストレージ3123に対し、格納されたデータの更新などの操作を行い、その結果である応答情報を返す。【０１５３】
最後に、取得・再生手段13105は、DBMS3122からの応答情報を、DBアクセス手段3104を介して受け取り、これを破棄する。【０１５４】
この結果、プライマリシステム13100のストレージ3123のデータは復旧される。【０１５５】
なお、図１４、１５の実施の形態では、ステップ1401〜1403は、ステップ1404〜1408と独立に行われる。つまり、いわゆる非同期多重のため、プライマリシステム13100においてストレージ3123へのデータ操作が行われていても、バックアップシステム13200において操作情報がストレージ13204に格納されていない状態がありえる。そのため、障害発生直前の操作情報は失われる可能性がある。そこで、ステップ1402〜1403を、ステップ1408を待ってから行う、つまりバックアップシステム13200においてストレージ13204への操作情報の記録の完了を確認してから、プライマリシステム3100,13100においてストレージ3123へのデータ操作を行う、いわゆる同期多重を行っても構わない。【０１５６】
また、本実施の形態においても、第１の実施の形態で述べた変形例１〜６と同様の変形が可能である。ただし、並列構成の場合、適用した場合には第１の実施の形態と同様になる。【０１５７】
また、データ操作開始から全ての操作情報を記録するのではなく、ミラーリング等の既存のデータ多重化技術を併用し、定期的にストレージ3123のバックアップを行い、それ以降ストレージ3123に対して行われた操作情報のみを差分として記録するようにしても構わない。【０１５８】
次に、本実施の形態の効果について説明する。【０１５９】
本実施の形態では、第１の実施の形態で得られる効果に加えて、バックアップシステムにDBMS等の構成要素を必要としないため、システム構築のコストを軽減できる。【０１６０】
また、操作情報を変更したり再生したり発行したりする必要が無いため、同期多重を行っても、システムの性能の低下を抑えることができる。【０１６１】
［第４の実施の形態］
次に、本発明の第４の実施の形態について図面を参照して詳細に説明する。【０１６２】
『構成の説明』
図１７を参照すると、本発明の第４の実施の形態は、プライマリシステム15100と、バックアップシステム15200と、第１の実施の形態と同様の通信回線3300とから構成されている。【０１６３】
プライマリシステム15100は、サービスを提供するアプリケーションサーバ15101と、第１の実施の形態と同様のDBMS3122およびストレージ3123を含むデータベースサーバ3121とを備える。【０１６４】
アプリケーションサーバ15101は、取得手段3105の代わりに、アプリケーション3102から発行される操作情報と、それに対するDBMS3122からの応答情報の両方を取得する取得手段15105と、識別手段3106の代わりに、取得手段3105で取得された操作情報および応答情報のうち、バックアップシステム15200へ送信すべき操作情報および応答情報を識別する識別手段15106と、識別情報格納部3107の代わりに、操作情報の識別だけでなく、応答情報の識別にも必要な情報を格納する識別情報格納部15107と、送信手段3108の代わりに、送信・受信両方の機能を持つ送受信手段15108と、応答情報を比較検証する検証手段15110と、検証結果を通知する通知手段15111と、を備えている点で第１の実施の形態のアプリケーションサーバ3100と構成が異なり、その他の構成は同じである。【０１６５】
バックアップシステム15200は、アプリケーションサーバ15101のバックアップであるアプリケーションサーバ15201と、第１の実施の形態と同様のDBMS3222およびストレージ3223を含むデータベースサーバ3121とを備える。【０１６６】
アプリケーションサーバ15201は、再生手段3205の代わりに、変更手段3206が変更した操作情報の再生と、DBMS3222からの応答情報の取得を行う再生・取得手段15205と、受信手段3208の代わりに、送信・受信両方の機能を持つ送受信手段15208と、プライマリシステム15100の通信アドレス等の送信に必要な情報を格納する送信情報格納部15209と、再生・取得手段15205が取得した応答情報のうち、プライマリシステム15100に送信すべき応答情報を識別する識別手段15210と、その識別に必要な情報を格納する識別情報格納部15211と、を備えている点で第１の実施の形態のアプリケーションサーバ3201と構成が異なり、その他の構成は同じである。【０１６７】
『動作の説明』
次に、図１７および図１８のフローチャートを参照して、本実施の形態の動作について詳細に説明する。【０１６８】
図１８のステップ1601〜1610で示される本実施の形態におけるアプリケーション3102、DBMS3122、取得手段15105、識別手段15106、送受信手段15108、送受信手段15208、変更手段3206、再生・取得手段15205、DBMS3222の動作は、図４のステップ401〜410で示される第１の実施の形態におけるアプリケーション3102、DBMS3122、取得手段3105、識別手段3106、送信手段3108、受信手段3208、変更手段3206、再生手段3205、DBMS3222の動作と同一のため、説明は省略する。【０１６９】
再生・取得手段15205は、DBMS3222からの応答情報を、DBアクセス手段3204を介して取得する（ステップ1611）。【０１７０】
次に、識別手段15210は、識別情報格納部15211に格納された識別情報基づき、再生・取得手段15205が取得した応答情報のうち、検証のためにプライマリシステム15100に送信する応答情報を識別する（ステップ1612）。例えば、送信するデータ量を減少させるために、操作の応答をコード化して送信するようにする、あるいは、一定回数おきに応答情報を送信するようする、などが考えられる。操作の応答をコード化して送信する例を以下に示す。【０１７１】
例えばJAVA（登録商標）におけるDBアクセスミドルウェアであるJDBCの場合、アプリケーションに返す応答はJAVA（登録商標）のオブジェクトであるが、このオブジェクトはサイズが大きいため、このオブジェクトを返すのではなく、その意味するところを単なるブーリアン値等に置き換えて、つまり操作成功なら真、失敗なら偽を返すようにする。具体的には、SQLを実行する操作であるStatement.executeQuery(SQL)は、成功ならResultSetオブジェクト、失敗ならSQLExceptionオブジェクトを返すため、ResultSetオブジェクトなら成功とみなして真、SQLExceptionオブジェクトなら失敗とみなして偽を送信する。この場合、どのオブジェクトなら真、偽かという対応表を識別情報として識別情報格納部15211に格納しておく。また、応答としてオブジェクトではなく、サイズの小さい単なる数値等（プリミティブ値）が返される場合もあるが、そのような応答はそのまま送信する。【０１７２】
次に、送受信手段15208は、識別手段15210が送信するように識別した応答情報を、送信情報格納部15209に格納されたプライマリシステム15100の通信アドレスに基づき、通信回路3300を介してプライマリシステム15100に送信する（ステップ1613）。【０１７３】
プライマリシステム15100において、送受信手段15108は、バックアップシステム15200から送信された応答情報を受信し（ステップ1614）、検証手段15110に伝達する。【０１７４】
また、プライマリシステム15100において、取得手段15105は、アプリケーション3102がDBMS3122の応答情報を受け取る（ステップ1603）際に、この応答情報を取得し（ステップ1615）、識別手段15106に伝達する。識別手段15106は、識別情報格納部15107に格納された識別情報に基づき、取得手段15105が取得した応答情報のうち、検証のために必要な応答情報を識別し（ステップ1616）、検証手段15110へ伝達する。識別方法は、ステップ1612と同様の方法を用いる。【０１７５】
次に、検証手段15110は、識別手段15106が識別したプライマリシステム15100の応答情報と、送受信手段15108が受信したバックアップシステム15200の応答情報とを比較し、検証する（ステップ1617）。【０１７６】
プライマリシステム15100の応答情報とバックアップシステム15200の応答情報とが一致すれば双方におけるデータ操作は成功し、データ多重化処理は正常に完了したとみなす。不一致であれば、データ多重化処理に異常が発生したとみなす。【０１７７】
最後に、通知手段15111は、検証の結果が異常であれば、通知を行う（ステップ1618）。通知先は、システム管理者や、この通知結果を用いて何らかの制御を行う手段、例えば該当するデータ操作を取り消し再試行する手段などが考えられる。また、異常が検出された場合にのみ結果を通知するだけでなく、検証の結果を常に通知しても構わない。【０１７８】
なお、本実施の形態では、ステップ1603は、ステップ1610〜1618と独立に行われる。そのため、異常を検出しても、それにかまわずアプリケーション3102の処理が進んでしまう。そこで、ステップ1603をステップ1610〜1618を待ってから行う、つまりデータ多重化処理が正常に完了したのを確認してから、アプリケーション3102に応答情報を返すようにしても構わない。【０１７９】
また、本実施の形態では、バックアップシステム15200からプライマリシステム15100に応答情報を送信し、検証を行っているが、検証手段をバックアップシステムに持たせ、プライマリシステム15100から応答情報もバックアップシステム15200に送信し、バックアップシステム15200で検証を行っても構わない。【０１８０】
あるいは通信回線300上の異なるシステム、あるいはそれら複数のシステム上で検証を行っても構わない。【０１８１】
特に１対Ｎ構成の場合などは、複数のバックアップシステムからの応答情報を単一のプライマリシステムで受信し、検証すると、一連の検証処理がボトルネックとなるため、負荷分散のためにバックアップシステムで検証を行ったほうが良い。【０１８２】
また、本実施の形態においても、第１の実施の形態で述べた変形例１〜６と同様の変形が可能である。【０１８３】
次に、本実施の形態の効果について説明する。【０１８４】
本実施の形態では、第１の実施の形態で得られる効果に加えて、DBMSの応答情報を比較し検証することで、データ操作の正常・異常を検知できるので、より確実にデータの多重化が行える。【０１８５】
以上本発明を実施するための最良の形態について説明したが、本発明は以上の実施の形態に限定されず、その他各種の付加変更が可能である。また、各実施の形態を組み合わせた形態も可能である。例えば、第４の実施の形態を１対Ｎ構成で用いて検証しながらデータの多重化を行うとともに、さらにＮ個のバックアップシステムに対し第３の実施の形態を連鎖構成で用いてデータの操作情報を記録しておく、といった形態等が考えられる。【０１８６】
また、本発明の各実施の形態におけるデータ多重化機能を実現する各構成要素は、その機能をハードウェア的に実現することはもちろん、コンピュータとプログラムとで実現することが出来る。プログラムは、磁気ディスクや半導体メモリ等のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における構成要素として機能させる。
【産業上の利用可能性】
【０１８７】
本発明は、DBMSを用いてサービスを提供するシステムにおいて、高い信頼性を持つシステムの構築といった用途に適用できる。
【図１】
0004844743.tif 000002
【図２】
0004844743.tif 000003
【図３】
0004844743.tif 000004
【図４】
0004844743.tif 000005
【図５】
0004844743.tif 000006
【図６】
0004844743.tif 000007
【図７】
0004844743.tif 000008
【図８】
0004844743.tif 000009
【図９】
0004844743.tif 000010
【図１０】
0004844743.tif 000011
【図１１】
0004844743.tif 000012
【図１２】
0004844743.tif 000013
【図１３】
0004844743.tif 000014
【図１４】
0004844743.tif 000015
【図１５】
0004844743.tif 000016
【図１６】
0004844743.tif 000017
【図１７】
0004844743.tif 000018
【図１８】
0004844743.tif 000019