(57)【要約】【課題】更新時刻をデータベース内に取り込んで管理することにより、更新情報ファイルが排除できるデータベースの等価方法を提供する。【解決手段】ネットワークに対し接続、切断が行われる複数のサーバで構成される計算機の分散システムにおいて各サーバのデータベース間のデータ等価を行う方法であって、各データをこれの更新時刻を付加した更新レコードとしてデータベース中に格納する工程と、ネットワークから切断された後に再度接続されたサーバが自サーバの最終更新時刻を所定のサーバに送信する工程と、上記所定のサーバが上記最終更新時刻を受信した時に自データベースを検索して上記最終更新時刻以降の更新レコードを上記ネットワークに再度接続されたサーバに送信する工程と、上記ネットワークに再度接続されたサーバが送信された更新レコードに従って自データベースの更新を行う工程と、を備えた。【選択図】図２
2005157897.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに対し接続、切断が行われる複数のサーバで構成される計算機の分散システムにおいて各サーバのデータベース間のデータ等価を行うデータベースの等価方法であって、
各データをこれの更新時刻を付加した更新レコードとしてデータベース中に格納する工程と、
ネットワークから切断された後に再度接続されたサーバが自サーバの最終更新時刻を所定のサーバに送信する工程と、
上記所定のサーバが上記最終更新時刻を受信した時に自データベースを検索して上記最終更新時刻以降の更新レコードを上記ネットワークに再度接続されたサーバに送信する工程と、
上記ネットワークに再度接続されたサーバが送信された更新レコードに従って自データベースの更新を行う工程と、
を備えたことを特徴とするデータベースの等価方法。
【請求項２】
上記データベースの等価が、それぞれに一次的なデータの更新が行われる２つのマスターサーバ間で行われ、上記マスターサーバ間における、受信した上記最終更新時刻に従って一次的なデータの更新による上記更新レコードを送信する主系マスターサーバと、送信された上記更新レコードを受信し上記一次的なデータの更新に従った二次的なデータの更新を自データベースに行う従系マスターサーバとの切替え制御を行う工程をさらに備えたことを特徴とする請求項１に記載のデータベースの等価方法。
【請求項３】
上記最終更新時刻以降の更新レコードを送信する工程において、複数の他サーバより受信した上記最終更新時刻についてそれぞれに上記最終更新時刻以降の更新レコードを送信すると共に、上記自データベースの更新を行う工程を上記最終更新時刻を送信した各サーバにおいてそれぞれに上記送信された更新レコードに従って行うことを特徴とする請求項１又は２に記載のデータベースの等価方法。
【請求項４】
上記ネットワークにデータの最終更新時刻を記憶するファイルと共に汎用データベースを備えたサーバが接続されており、
上記汎用データベースを備えたサーバから上記最終更新時刻を所定のサーバに送信する工程と、
上記所定のサーバが上記最終更新時刻を受信した時に自データベースを検索して上記最終更新時刻以降の更新レコードを上記汎用データベースを備えたサーバに送信する工程と、
上記汎用データベースを備えたサーバが送信された更新レコードを所望の形式で上記汎用データベースに保存する工程と、
を備えたことを特徴とする請求項１ないし３のいずれか１項に記載のデータベースの等価方法。
【請求項５】
上記データベースの等価が、一次的なデータの更新が行われる３つ以上のマスターサーバを含むサーバ間で行われ、上記マスターサーバ間における、受信した上記最終更新時刻に従って一次的なデータの更新による上記更新レコードを送信する主系マスターサーバと、送信された上記更新レコードを受信し上記一次的なデータの更新に従った二次的なデータの更新を自データベースに行う従系マスターサーバとの切替え制御を行う工程をさらに備えたことを特徴とする請求項３に記載のデータベースの等価方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数サーバがネットワーク接続されて構成される計算機の分散システムにおいて、サーバがある期間、ネットワークから切り離されても、各サーバのデータベースを常に最新の状態、すなわち同一の状態に保つためのデータベースの等価方法に関する。
【背景技術】
【０００２】
従来のデータベースの等価方法では、マスターサーバにネットワークを介して複数のサーバが接続されたシステムにおいて、マスターサーバは現在のデータが格納された現在データベースを更新すると、その更新データを例えば接続された１つのサーバであるサーバＡに送信してサーバＡの現在データベースを更新させる。サーバＡが未接続になると、マスターサーバはこれに設けられた未更新フラグファイルのレコードのフラグを立て、サーバＡを接続する際に、フラグを立てた未接続期間のレコード番号に対応する現在データベースの更新データを抽出してサーバＡに送信し、サーバＡの現在データベースを更新させる。このようにしてサーバＡを接続させる場合、未接続期間に更新したデータ(差分データ)のみを送信して等価時間を短縮していた(例えば特許文献１参照)。
【０００３】
【特許文献１】特開２０００−３５９１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の方法では、データベースとは別に更新情報ファイル(未更新フラグファイル)が必要であり、リソースを余分にとってしまうという問題があった。またマスターサーバからの更新情報は他サーバに等価できるが、逆に他サーバの更新をマスターサーバに等価できないという問題があった。
【０００５】
本発明は上記の課題を解決することを目的としており、更新時刻等の更新に関する情報をデータベース内に取り込んで管理することにより、更新情報ファイルが排除でき、また二重系のような両サーバから更新される場合のデータ等価が行えるデータベースの等価方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明は、ネットワークに対し接続、切断が行われる複数のサーバで構成される計算機の分散システムにおいて各サーバのデータベース間のデータ等価を行うデータベースの等価方法であって、各データをこれの更新時刻を付加した更新レコードとしてデータベース中に格納する工程と、ネットワークから切断された後に再度接続されたサーバが自サーバの最終更新時刻を所定のサーバに送信する工程と、上記所定のサーバが上記最終更新時刻を受信した時に自データベースを検索して上記最終更新時刻以降の更新レコードを上記ネットワークに再度接続されたサーバに送信する工程と、上記ネットワークに再度接続されたサーバが送信された更新レコードに従って自データベースの更新を行う工程と、を備えたことを特徴とするデータベースの等価方法にある。
【発明の効果】
【０００７】
この発明では、複数サーバに存在するデータベース間の等価方法において、更新情報ファイルが排除でき、またさらにマスターサーバの多重系や、サーバの動的な追加削除、別形式のデータベースへの保存が簡易な工程で実現できる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は本発明の実施の形態１によるデータベース間の等価を行うシステムの構成図を示す。図１において、マスターサーバ１０１は、データベース１０２、データベース更新プログラム１０３、データベース等価プログラム１０４を備える。またサーバＡ１１１はネットワーク１０６を介してマスターサーバ１０１に接続された１つのサーバを例示し、サーバＡ１１１はデータベース１０９、データベース等価受信プログラム１０５を備える。また、従来のようなデータに更新時刻を付加して保存するファイルは存在しない代わりに、各サーバのデータベース１０２、１０９上の全てのレコード２０１、２０２についてデータにそれぞれ更新時刻が付加されている。なお詳細な説明は省略するが、当然ながらネットワーク１０６に伝送される各データはアドレス制御等により発信元と送信先が分かるよういなっている。また、本願における各プログラムはそれぞれのコンピュータ等のハードウェア資源を利用して所定の機能を達成する機能ブロックとして示されたものであり、これららの機能に従って以下の動作が行われる。
【０００９】
次に動作について説明すると、マスターサーバ１０１はデータベース更新情報(更新する実際のデータ)１０７があれば、データベース更新プログラム１０３がデータベース１０２の当該レコード２０１を更新し、更新時刻を設定する(これを一次的なデータの更新とする)。
【００１０】
そしてマスターサーバ１０１とサーバＡ１１１が接続状態にあれば、データベース等価プログラム１０４によって、更新データはサーバＡ１１１上のデータベース等価受信プログラム１０５に送られ、データベース１０９の当該レコード２０２を更新し、等価が行われる(これを上記一次的なデータの更新に従う二次的なデータの更新とする)。
【００１１】
前項でマスターサーバ１０１とサーバＡ１１１が非接続状態で、データ送信できない場合も特にマスターサーバ１０１は特別な動作はしない。そしてサーバＡ１１１がネットワーク１０６すなわちマスターサーバ１０１へ接続される度に、データベース等価受信プログラム１０５が前回接続時の最終更新時刻をマスターサーバ１０１のデータベース等価プログラム１０４に送信する。マスターサーバ１０１のデータベース等価プログラム１０４は受信したサーバＡ１１１の最終更新時刻から最新時刻までの更新データをデータベース１０２の更新時刻に基づき取得し、サーバＡ１１１に送信することで、サーバ１１１Ａが切断していた間のデータ等価が行われる。
【００１２】
これを図１のシステムでのデータベース間の等価動作を示す図２の処理フローに従って説明すると、サーバＡ１１１がマスターサーバ１０１へ接続される度に前回接続時の最終更新時刻をマスターサーバ１０１に送信する(Ｓ２０１，Ｓ２１３)。マスターサーバ１０１は受信したサーバＡ１１１の最終更新時刻以降の最新時刻までの更新レコードをデータベース１０２の更新時刻に基づき検索してサーバＡ１１１に送信する(Ｓ２０３)。サーバＡ１１１ではデータベース更新情報待ち状態で(Ｓ２１５)、マスターサーバ１０１から更新レコードが送られてくると、データベース１０９のレコード２０２の更新が行われ、これによりサーバＡ１１１が切断されていた間のデータ等価が行われる。その後、マスターサーバ１０１が切断されるまでは、レコードの更新があればその都度行われ(Ｓ２１７，Ｓ２１９)、切断されるとサーバＡ１１１は再接続待ち状態になる(Ｓ２２１)。一方、マスターサーバ１０１は、更新レコード送信後、データ更新が有れば(Ｓ２０５)、データベース１０２に更新データと更新時刻を書き込んでレコードを更新し(Ｓ２０７)、サーバＡ１１１が切断されていなければ(Ｓ２０９)更新レコードを送信(Ｓ２１１)、切断されていれば接続を待つ。
【００１３】
このように処理を行うことにより、従来、マスターサーバにあった更新情報ファイルが不要になり、またサーバＡ接続時、非接続時によってマスターサーバの動作を変えないので、処理を簡素化できる。
【００１４】
実施の形態２．
図３は本発明の実施の形態２によるデータベース間の等価を行うシステムの構成図を示す。上記実施の形態と同一もしくは相当部分は同一符号で示し説明は省略する(以下同様)。マスターサーバＡ１０１とマスターサーバＢ１０８はホットスタンバイ形式の二重系を構成する計算機のペアの一例である。両サーバには二重系管理プログラム１２０、１２１がそれぞれ存在し互いにネットワーク１０６を介してリンクしており、マスターサーバＡ１０１、マスターサーバＢ１０８のどちらが主系計算機であるかをデータベース更新プログラム１０３、１１３およびデータベース等価プログラム１０４、１１０に通知する。
【００１５】
次に動作について説明すると、マスターサーバＡ１０１が主系で、Ｂ１０８が従系である場合、更新データは図３中の実線のように流れる。データベース更新情報１０７から入力されたデータは、データベース更新プログラム１０３によって、マスターサーバＡ１０１のデータベース１０２にその更新時刻および更新データが書込まれる。書込まれたデータはデータベース等価プログラム１０４によりマスターサーバＢ１０８上のデータベース等価プログラム１１０に送られ、マスターサーバＢ上のデータベース１０９に書込まれる。なお、マスターサーバＢ上のデータベース更新プログラム１１３は、二重系管理プログラム１２１から情報を通知され、従系の間はデータベース１０９の更新を行わないようにする。
【００１６】
また、マスターサーバＢ１０８がネットワーク１０６に接続していなかった場合は等価は行われず、マスターサーバＢ１０８がネットワーク１０６に再接続されて復帰した時点でマスターサーバＢ１０８上のデータベース等価プログラム１１０がマスターサーバＡ１０１上のデータベース等価プログラム１０４に最終更新時刻を送信し、マスターサーバＡ１０１上のデータベース等価プログラム１０４はデータベース１０２から受信最終更新時刻以降のデータを送信することによって、切断中の更新データが等価される。
【００１７】
図３のシステムでのデータベース間の等価動作を図４の処理フローに示す。図４においてマスターサーバＡ１０１とマスターサーバＢ１０８は同一フローチャートになり、一方が主系の時に他方は必ず従系になる。図２と同一符号の部分は同一もしくは対応ステップを示す。図４の動作はマスターサーバＡ１０１とマスターサーバＢ１０８のうちの主系側が図２に示す実施の形態１のマスターサーバ１０１側の動作になり、従系側がサーバＡ１１１側の動作になる。そして二重系管理プログラム１２１による主系、従系の切替えをステップＳ２００、Ｓ２０４およびＳ２１８でチェックして系の切替えを行っている点が異なる。
【００１８】
このようにして実施の形態２ではマスターサーバ二重系を実現することが可能となる。
【００１９】
実施の形態３．
図５は本発明の実施の形態３によるデータベース間の等価を行うシステムの構成図を示す。このシステムではマスターサーバＡ１０１およびマスターサーバＢ１０８に関しては実施の形態２と同様であり、これにさらに実施の形態１におけるサーバＡ１１１に相当する更新データ入力を行わないサーバとしてサーバＣ３０１、サーバＤ４０１がネットワーク１０６上に存在する。サーバＣ３０１は更新時刻とデータからなるレコード３０２を格納するデータベース３０３およびデータベース等価受信プログラム３０４を備え、例えば新規参入のサーバとして示されたサーバＤ４０１も同様に更新時刻とデータからなるレコード４０２を格納するデータベース４０３およびデータベース等価受信プログラム３０４を備える。
【００２０】
図６は図５のシステムにおけるマスターサーバＡ１０１の処理フローを示す。図２、図４と同一符号の部分は同一もしくは対応ステップを示す。実施の形態２における図４の処理フローと比較して、主系時の処理を処理ルーチン１(ステップＳ２０１〜Ｓ２１１、Ｓ２２２を含む)としてまとめ、複数のサーバからの最終更新時刻受信に対応している点が異なっている。ステップＳ２２２では、系の切替えがあった時の処理ルーチン１の終了通知でルーチンの終了としている。すなわち主系時においては、複数のサーバからの最終更新時刻の受信を待ち(ステップＳ６０１)、受信したサーバ毎に処理ルーチン１を起動して実行し(ステップＳ６０３)、系の切替えがあったら(ステップＳ２０４)、処理ルーチン１に終了通知を発行する。
【００２１】
図６の処理フローから、例えば主系のマスターサーバＡ１０１は、等価を要求するサーバが従系マスターサーバＢ１０８であるか、サーバＣ３０１であるかを知る必要はなく、同じように処理ルーチン１を実行する。そのため処理は簡素化されるという利点がある。これにより、例えば当初存在していなかったサーバＤ４０１が途中でシステムに参入したとしても、サーバＤは主系のマスターサーバであるサーバＡ１０１に最終更新時刻を送信するだけで、元から存在していたサーバＣ３０１と同様に等価のサービスを受けることができる。なおこの実施の形態３は図１に示す実施の形態１の構成のシステムにおいてサーバが追加された場合においても同様に実施可能である。
【００２２】
つまり、このシステムはプログラムに変更を加えることなく、動的に等価データベースを持つサーバの数を増減させることが可能である。
【００２３】
実施の形態４．
図７は本発明の実施の形態４によるデータベース間の等価を行うシステムの構成図を示す。マスターサーバＡ１０１、マスターサーバＢ１０８、サーバＣ３０１に関しては、実施の形態３と同様である。サーバＤ４０１にはデータ等価受信プログラム４０４の他に、汎用データベースＩ／Ｆ(インタフェース)プログラム４０５、最終更新時刻ファイル４０６、汎用データベース４０３ａが存在する。
【００２４】
実施の形態４では、サーバＤ４０１もサーバＣ３０１と同様に最終更新時刻を主系マスターサーバＡ１０１に送信することにより、等価サービスを受けられる。ただし、受信したデータは汎用データベースＩ／Ｆプログラム４０５によって、元のデータベース(特に図示せず)とは別の汎用データベース４０３ａに、別の形式４０２としてデータ保存され、この更新時刻は、最終更新時刻ファイル４０６に上書きされる。これは最終更新時刻を送信するだけで等価サービスが受けられる特長を利用して、最終更新時刻ファイル６０４だけを追加し、データ自体は、汎用データベースＩ／Ｆプログラム４０５を変更することにより、任意のデータベースに任意の形式で保存できるようにしたものである。
【００２５】
これにより、任意の形式のサーバにおいて、最終更新時刻ファイルを送信することにより任意のデータベースに任意の形式で更新レコードが保存され等価サービスが受けられる。
【００２６】
実施の形態５．
図８は本発明の実施の形態５によるデータベース間の等価を行うシステムの構成図を示す。マスターサーバＡ１０１、マスターサーバＢ１０８、サーバＤ４０１に関しては、実施の形態３と同様である。実施の形態５では、マスターサーバＣ３０１ａが追加される。マスターサーバＣ３０１ａの構成は、マスターサーバＡ１０１、マスターサーバＢ２０１と同様であり、データベース３０２、データベース更新プログラム３０３、データベース等価プログラム３０４および二重系管理プログラム３０６を備えると共に、データベース更新情報３０７が入力される。
【００２７】
実施の形態５でのマスターサーバＣ３０１ａの動きはマスターサーバＡ１０１、マスターサーバＢ１０８と同様である。ただし従系になったマスターサーバが実施の形態３では固定の相手先に最終更新情報を送信するのに対し、図８では二重系管理プログラム３０６に主系サーバを問い合わせた後、主系サーバに最終更新時刻を送信する点が異なる。他の動作は実施の形態３と同様である。
【００２８】
このようにして実施の形態５ではマスターサーバの多重系を実現することが可能となる。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施の形態１によるデータベース間の等価を行うシステムの構成図である。
【図２】図１のシステムでのデータベース間の等価動作を示す処理フローである。
【図３】本発明の実施の形態２によるデータベース間の等価を行うシステムの構成図である。
【図４】図３のシステムでのデータベース間の等価動作を示す処理フローである。
【図５】本発明の実施の形態３によるデータベース間の等価を行うシステムの構成図である。
【図６】図５のシステムでのデータベース間の等価動作を示す処理フローである。
【図７】本発明の実施の形態４によるデータベース間の等価を行うシステムの構成図である。
【図８】本発明の実施の形態５によるデータベース間の等価を行うシステムの構成図である。
【符号の説明】
【００３０】
１０１  マスターサーバ(Ａ)、１０２，１０９，３０３，４０３  データベース、１０３，１１３  データベース更新プログラム、１０４  データベース等価プログラム、１０５，３０４，４０４  データベース等価受信プログラム、１０６  ネットワーク、１０７，１１７  データベース更新情報、１０８  マスターサーバ(Ｂ)、１１１  サーバＡ、１２０，１２１  二重系管理プログラム、２０１，２０２，３０２，４０２  (更新)レコード、３０１  サーバＣ、４０１  サーバＤ、４０３ａ  汎用データベース、４０５  汎用データベースＩ／Ｆプログラム、４０６  最終更新時刻ファイル。
【図１】
2005157897.tif 000003
【図２】
2005157897.tif 000004
【図３】
2005157897.tif 000005
【図４】
2005157897.tif 000006
【図５】
2005157897.tif 000007
【図６】
2005157897.tif 000008
【図７】
2005157897.tif 000009
【図８】
2005157897.tif 000010