(57)【要約】【課題】ネットワーク接続されたコンピュータ間のデータ共通化を円滑にかつ確実に図れるようにする。【解決手段】クライアント１のデータベース１１に保持されているデータから当該データベース１１の無二の状態を示す値を導出するとともに、サーバ２のデータベース２１に保持されているデータから当該データベース２１の無二の状態を示す値を導出し、双方の無二の状態を示す値を随時比較して、異なる値であることを検知したときをクライアント１が有するデータベース１１とサーバ２が有するデータベース２１のデータ連携が必要な時期と認識して、クライアント１からサーバ２へデータ連携に必要なデータを送信する。【選択図】      図１
2006039598.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ間で共通化すべきデータを保持するデータ保持手段を有する第１のコンピュータと、この第１のコンピュータにて保持される前記共通化すべきデータを保持するためのデータ保持手段を有する第２のコンピュータとをネットワークで接続してなるコンピュータシステムのデータ連携方法であって、
前記第１のコンピュータのデータ保持手段に保持されているデータから当該データ保持手段の無二の状態を示す値を導出するとともに、前記第２のコンピュータのデータ保持手段に保持されているデータから当該データ保持手段の無二の状態を示す値を導出し、双方の無二の状態を示す値を随時比較して、異なる値であることを検知したときを前記第１のコンピュータが有するデータ保持手段と前記第２のコンピュータが有するデータ保持手段のデータ連携が必要な時期と認識して、前記第１のコンピュータから前記第２のコンピュータへデータ連携に必要なデータを送信することを特徴とするコンピュータシステムのデータ連携方法。
【請求項２】
前記第１のコンピュータから前記第２のコンピュータへデータ連携に必要なデータを送信する毎に、前記第１のコンピュータのデータ保持手段に保持されているデータから当該データ保持手段の無二の状態を示す値を導出するとともに、前記第２のコンピュータのデータ保持手段に保持されているデータから当該データ保持手段の無二の状態を示す値を導出し、双方の無二の状態を示す値を比較して、一致するまでは前記第１のコンピュータから前記第２のコンピュータへデータ連携に必要なデータを送信し、一致するとデータの送信を終了することを特徴とする請求項１に記載のコンピュータシステムのデータ連携方法。
【請求項３】
前記第１のコンピュータが有するデータ保持手段と前記第２のコンピュータが有するデータ保持手段のデータ連携が必要な時期と認識すると、双方のデータ保持手段に保持されているデータをそれぞれ一定数のレコード単位で分割してそのレコード単位のデータ毎に前記無二の状態を示す値を導出して比較し、双方の値が異なるレコード単位のデータをそれぞれさらに分割して前記無二の状態を示す値を導出し比較する処理をドリルダウン式に繰返すことにより、前記第１のコンピュータから前記第２のコンピュータへ送信されるデータ連携に必要なデータを確定することを特徴とする請求項１または２に記載のコンピュータシステムのデータ連携方法。
【請求項４】
前記第１のコンピュータが有するデータ保持手段と前記第２のコンピュータが有するデータ保持手段のデータ連携を開始する前に、双方のコンピュータの性能に関する情報を基に前記データ保持手段から一度に読出し可能なデータ件数を算出し、このデータ件数を最初の分割の際のレコード件数とすることを特徴とする請求項３に記載のコンピュータシステムのデータ連携方法。
【請求項５】
前記第１のコンピュータのデータ保持手段に保持されているデータから導出した当該データ保持手段の無二の状態を示す値と前記第２のコンピュータのデータ保持手段に保持されているデータから導出した当該データ保持手段の無二の状態を示す値とを比較した結果、一致することが検知されたことを示す情報を保持するステップを含むことを特徴とする請求項1乃至４のいずれかに記載のコンピュータシステムのデータ連携方法。
【請求項６】
前記無二の状態を示す値は、ハッシュ値であることを特徴とする請求項１乃至５のいずれか１項に記載のコンピュータシステムのデータ連携方法。
【請求項７】
前記無二の状態を示す値はハッシュ値であり、２種類以上のハッシュ関数を用いてそれぞれ算出された双方のハッシュ値を比較、あるいは前記第１及び第２のコンピュータの各データ保持手段にそれぞれ保持されているデータの並び順を入替えて算出された双方のハッシュ値を比較することを特徴とする請求項１乃至５のいずれか１項に記載のコンピュータシステムのデータ連携方法。
【請求項８】
コンピュータ間で共通化すべきデータを保持するデータ保持手段を有する第１のコンピュータと、この第１のコンピュータにて保持される前記共通化すべきデータを保持するためのデータ保持手段を有する第２のコンピュータとをネットワークで接続してなるコンピュータシステムのデータ連携装置において、
前記第１のコンピュータのデータ保持手段に保持されているデータから当該データ保持手段の無二の状態を示す値を導出する第１の値導出手段と、
前記第２のコンピュータのデータ保持手段に保持されているデータから当該データ保持手段の無二の状態を示す値を導出する第２の値導出手段と、
前記第１及び第２の各値導出手段によりそれぞれ導出された値を随時比較して一致するか否かを判定する値比較手段と、
この値比較手段により双方の無二の状態を示す値が異なると判定されたことを条件に前記第１のコンピュータから前記第２のコンピュータへデータ連携に必要なデータを送信させる送信開始制御手段と、
を具備したことを特徴とするコンピュータシステムのデータ連携装置。
【請求項９】
前記送信開始制御手段によるデータ送信開始後は、前記値比較手段により双方の無二の状態を示す値が一致すると判定されたことを条件にデータ送信を終了させる送信終了制御手段、
をさらに具備したことを特徴とする請求項８に記載のコンピュータシステムのデータ連携装置。
【請求項１０】
双方のデータ保持手段に保持されているデータをそれぞれ一定数のレコード単位で分割してそのレコード単位のデータ毎に前記無二の状態を示す値を導出して比較し、双方の値が異なるレコード単位のデータをそれぞれさらに分割して前記無二の状態を示す値を導出し比較する処理をドリルダウン式に繰返すことにより、前記第１のコンピュータから前記第２のコンピュータへ送信されるデータ連携に必要なデータを確定する送信データ確定手段、
をさらに具備したことを特徴とする請求項８または９のいずれか１項に記載のコンピュータシステムのデータ連携装置。
【請求項１１】
前記送信データ確定手段は、双方のコンピュータの性能に関する情報を基に前記データ保持手段から一度に読出し可能なデータ件数を算出し、このデータ件数を最初の分割の際のレコード件数とすることを特徴とする請求項１０に記載のコンピュータシステムのデータ連携装置。
【請求項１２】
前記値比較手段により双方の無二の状態を示す値が一致することが判定される毎に、一致した旨を示す情報を保持する共通化確認情報保持手段、
をさらに具備したことを特徴とする請求項８乃至１１のいずれか１項に記載のコンピュータシステムのデータ連携装置。
【請求項１３】
前記無二の状態を示す値は、ハッシュ値であることを特徴とする請求項８乃至１２のいずれか１項に記載のコンピュータシステムのデータ連携装置。
【請求項１４】
前記無二の状態を示す値はハッシュ値であり、２種類以上のハッシュ関数を用いてそれぞれ算出された双方のハッシュ値を比較、あるいは前記第１及び第２のコンピュータの各データ保持手段にそれぞれ保持されているデータの並び順を入替えて算出された双方のハッシュ値を比較することを特徴とする請求項８乃至１２のいずれか１項に記載のコンピュータシステムのデータ連携装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＡＮ（Local Area Network）あるいはインターネット等のネットワークを通じて接続されたコンピュータシステムにおいて、特定のコンピュータと該コンピュータと属性関係にある関連コンピュータとの間でデータの共通化を図るために利用されるデータ連携方法及びデータ連携装置に関する。
【背景技術】
【０００２】
例えばクライアントコンピュータ（以下、クライアントと略称する）とサーバコンピュータ（以下、サーバと略称する）とをＬＡＮで接続してなるコンピュータシステムの中には、クライアントが有するデータベースに保持されている全てのデータをサーバもデータベース上で保持することでデータの共通化を図るようにしたシステムがある。この種のコンピュータシステムでは、データの共通化のために、特定コンピュータとして位置付けられるクライアントと、このクライアントと属性関係にある関連コンピュータとして位置付けられるサーバとの間でデータの連携が必要であった。
【０００３】
従来、この種のコンピュータシステムにおけるデータ連携の起動方法としては、ユーザが手動で行う方法の他、データ連携を開始する時刻を予め登録しておく方法やコンピュータ間の接続が確立したときに自動的に開始する方法等が知られていた。また、データベースの更新内容を更新履歴として保存し、更新履歴の件数が予め設定された閾値を超えるとデータ連携を開始する方法もあった（例えば、特許文献１参照）。
【特許文献１】特開２００４−８６８００公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、これらの従来方法では、一方のコンピュータのデータベースが更新されても即座に他方のコンピュータとデータの共通化を図ることは困難であった。また、一方のコンピュータのデータベースから何らかの原因でデータが消去または変更されてしまった場合や、ネットワーク上の問題などによりデータ連携のためのコンピュータ間データ送信が完了しなかった場合に、データの共通化が図れなくなるという問題もあった。
【０００５】
本発明はこのような事情に基づいてなされたもので、その目的とするところは、ネットワーク接続されたコンピュータ間のデータ共通化を円滑にかつ確実に図ることができるコンピュータシステムのデータ連携方法及びデータ連携装置を提供しようとするものである。
【課題を解決するための手段】
【０００６】
コンピュータ間で共通化すべきデータを保持するデータ保持手段を有する第１のコンピュータと、この第１のコンピュータにて保持される共通化すべきデータを保持するためのデータ保持手段を有する第２のコンピュータとを、ネットワークで接続してなるコンピュータシステムの本発明に係るデータ連携方法は、第１のコンピュータのデータ保持手段に保持されているデータから当該データ保持手段の無二の状態を示す値を導出するとともに、第２のコンピュータのデータ保持手段に保持されているデータから当該データ保持手段の無二の状態を示す値を導出し、双方の無二の状態を示す値を随時比較して、異なる値であることを検知したときを第１のコンピュータが有するデータ保持手段と第２のコンピュータが有するデータ保持手段のデータ連携が必要な時期と認識して、第１のコンピュータから第２のコンピュータへデータ連携に必要なデータを送信する手順を有するものである。
【０００７】
また、本発明に係るデータ連携方法は、第１のコンピュータから第２のコンピュータへデータ連携に必要なデータを送信する毎に、第１のコンピュータのデータ保持手段に保持されているデータから当該データ保持手段の無二の状態を示す値を導出するとともに、第２のコンピュータのデータ保持手段に保持されているデータから当該データ保持手段の無二の状態を示す値を導出し、双方の無二の状態を示す値を比較して、一致するまでは第１のコンピュータから第２のコンピュータへデータ連携に必要なデータを送信し、一致するとデータの送信を終了する手順を含むものである。
【０００８】
また、本発明に係るデータ連携方法は、第１のコンピュータが有するデータ保持手段と第２のコンピュータが有するデータ保持手段のデータ連携が必要な時期と認識すると、双方のデータ保持手段に保持されているデータをそれぞれ一定数のレコード単位で分割してそのレコード単位のデータ毎に無二の状態を示す値を導出して比較し、双方の値が異なるレコード単位のデータをそれぞれさらに分割して前記無二の状態を示す値を導出し比較する処理をドリルダウン式に繰返すことにより、第１のコンピュータから第２のコンピュータへ送信されるデータ連携に必要なデータを確定する手順をさらに含むものである。
【０００９】
ここで、第１のコンピュータが有するデータ保持手段と第２のコンピュータが有するデータ保持手段のデータ連携を開始する前に、双方のコンピュータの性能に関する情報を基にデータ保持手段から一度に読出し可能なデータ件数を算出し、このデータ件数を最初の分割の際のレコード件数とする手順を含むと好都合である。
【００１０】
また、第１のコンピュータのデータ保持手段に保持されているデータから導出した当該データ保持手段の無二の状態を示す値と第２のコンピュータのデータ保持手段に保持されているデータから導出した当該データ保持手段の無二の状態を示す値とを比較した結果、一致することが検知されたことを示す情報、例えばその時点の時刻を保持するステップを含むことが望ましい。
【００１１】
また、本発明に係るデータ連携方法において、無二の状態を示す値としては、ハッシュ値を使用するとよい。
【００１２】
この場合において、２種類以上のハッシュ関数を用いてそれぞれ算出された双方のハッシュ値を比較、あるいは前記第１及び第２のコンピュータの各データ保持手段にそれぞれ保持されているデータの並び順を入替えて算出された双方のハッシュ値を比較することが望ましい。
【００１３】
また、同コンピュータシステムの本発明に係るデータ連携装置は、第１のコンピュータのデータ保持手段に保持されているデータから当該データ保持手段の無二の状態を示す値を導出する第１の値導出手段と、第２のコンピュータのデータ保持手段に保持されているデータから当該データ保持手段の無二の状態を示す値を導出する第２の値導出手段と、第１及び第２の各値導出手段によりそれぞれ導出された値を随時比較して一致するか否かを判定する値比較手段と、この値比較手段により双方の無二の状態を示す値が異なると判定されたことを条件に第１のコンピュータから第２のコンピュータへデータ連携に必要なデータを送信させる送信開始制御手段とを備えたものである。
【００１４】
また、本発明に係るデータ連携装置は、データ送信開始後、値比較手段により双方の無二の状態を示す値が一致すると判定されたことを条件にデータ送信を終了させる送信終了制御手段をさらに備えるとよい。
【００１５】
また、双方のデータ保持手段に保持されているデータをそれぞれ一定数のレコード単位で分割してそのレコード単位のデータ毎に無二の状態を示す値を導出して比較し、双方の値が異なるレコード単位のデータをそれぞれさらに分割して無二の状態を示す値を導出し比較する処理をドリルダウン式に繰返すことにより、第１のコンピュータから第２のコンピュータへ送信されるデータ連携に必要なデータを確定する送信データ確定手段をさらに備えるとより好都合である。
【００１６】
ここで、送信データ確定手段は、双方のコンピュータの性能に関する情報を基に前記データ保持手段から一度に読出し可能なデータ件数を算出し、このデータ件数を最初の分割の際のレコード件数とすることが望ましい。
【００１７】
また、値比較手段により双方の無二の状態を示す値が一致することが判定される毎に、一致した旨を示す情報、たとえばその時点の時刻を保持する共通化確認時刻保持手段を備えるとさらに好都合である。
【００１８】
また、本発明に係るデータ連携装置においても、無二の状態を示す値としては、ハッシュ値を使用するとよい。
【００１９】
この場合において、２種類以上のハッシュ関数を用いてそれぞれ算出された双方のハッシュ値を比較、あるいは前記第１及び第２のコンピュータの各データ保持手段にそれぞれ保持されているデータの並び順を入替えて算出された双方のハッシュ値を比較することが望ましい。
【発明の効果】
【００２０】
かかる手段を講じた本発明によれば、ネットワーク接続されたコンピュータ間のデータ共通化を円滑にかつ確実に図ることができるコンピュータシステムのデータ連携方法及びデータ連携装置を提供できる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明を実施するための最良な形態について、図面を参照しながら説明する。
【００２２】
なお、この実施の形態は、以下においてクライアントと略称されるクライアントコンピュータと、同じくサーバと略称されるサーバコンピュータとを、ＬＡＮで接続してなるコンピュータシステムに本発明を適用した場合である。なお、コンピュータ間を接続するネットワークはＬＡＮに限定されるものではなく、インターネットやＩＳＤＮ（Integrated Services Digital Network）等であってもよい。また、説明の便宜上、クライアントを１台とするが、複数台のクライアントが接続されたコンピュータシステムにも本発明は同様に適用できるものである。
【００２３】
図１は本実施の形態におけるコンピュータシステムの概略構成図であり、第１のコンピュータであるクライアント１と、第２のコンピュータであるサーバ２とが、ＬＡＮ３によって双方向通信自在に接続されている。
【００２４】
クライアント１は、サーバ２との間で共通化すべきデータを保持するデータ保持手段としてデータベース１１を有している。また、ＣＰＵ等を主体に構成されたクライアント制御部１２、ＲＯＭ領域及びＲＡＭ領域を有するメモリ部１３、ＬＡＮ３を通じてのデータ通信を司る通信インターフェイス部１４、サーバ２とのデータ通信状態等を表示するための表示部１５等を備えている。
【００２５】
サーバ２は、クライアント１のデータベース１１にて保持される共通化すべきデータを保持するためのデータ保持手段としてデータベース２１を有している。また、ＣＰＵ等を主体にしたサーバ制御部２２、ＲＯＭ領域及びＲＡＭ領域を有するメモリ部２３、ＬＡＮ３に接続される通信インターフェイス部２４等を備えている。
【００２６】
クライアント１とサーバ２の各データベース１１，１２は、例えばリレーショナルデータベースを用いている。因みに、コンピュータ間で共通すべきデータは、クライアント１のデータベース１１にて保持される全てのデータであってもよいし、特定のフィールド単位のデータであってもよい。
【００２７】
かかる構成のコンピュータシステムにおいて、クライアント制御部１２及びサーバ制御部２２には、それぞれデータベース１１，２１にアクセスするための例えばＪＤＢＣドライバ等のデータベースドライバ３１と、メモリ部１３，２３に対するデータの書込み及び読出しを管理するキャッシュマネージャ３２と、本発明のデータ連携方法に関する機能をクライアント１及びサーバ２に実現させるためのデータ連携ツール３３の各プログラムが常駐している。
【００２８】
そして、データ連携ツール３３の起動により、クライアント制御部１２は、図２の流れ図に示される手順の処理ルーチンを実行するものとなっている。
【００２９】
先ず、クライアント制御部１２は、ステップＳ１として、自己のデータベース（対象データベース）１１に保存されている共通化すべきデータ全体を、一定の規則であるハッシュ関数にしたがってハッシュ値Ａに変換して、無二の状態を示す値（ハッシュ値）を導出する（第１の値導出手段）。そして、このハッシュ値Ａをキャッシュマネージャ３２に与えて、メモリ部１３の所定ＲＡＭ領域に上書き記憶させる。
【００３０】
次に、クライアント制御部１２は、ステップＳ２としてサーバ２のデータベース２１に保持されている共通化すべきデータから同一のハッシュ関数にしたがって無二の状態を示す値であるハッシュ値Ｂを導出することを、通信インターフェイス部１４を介してＬＡＮ３経由でサーバ２のデータ連携ツール３３に依頼する。
【００３１】
これにより、サーバ制御部２２は、データ連携ツール３３の作用により自己のデータベース（連携データベース）２１に保存されている共通化すべきデータ全体を、同一のハッシュ関数にしたがって無二の状態を示す値であるハッシュ値Ｂに変換する（第２の値導出手段）。そして、このハッシュ値Ｂを通信インターフェイス部２４を介してＬＡＮ３経由でクライアント１のデータ連携ツール３３に戻す。
【００３２】
そこで、クライアント制御部１２は、ステップＳ３としてサーバ２からハッシュ値Ｂを取得したことを検知すると、ステップＳ４として当該ハッシュ値Ｂとメモリ部１３の所定ＲＡＭ領域に記憶されたハッシュ値Ａとを比較し、一致するか否かを判定する（値比較手段）。
【００３３】
ここで、双方のハッシュ値Ａ，Ｂが一致する場合には、クライアント１とサーバ２との間でデータの共通化が図られていると認識できる。そこで以後、クライアント制御部１２は、双方のハッシュ値Ａ，Ｂが一致しなくなるまで、ステップＳ１〜Ｓ４の各処理を随時繰り返し実行する。
【００３４】
これに対し、双方のハッシュ値Ａ，Ｂが一致しない場合には、クライアント１とサーバ２との間で共通化すべきデータが共通でなくなったと認識できる。そこでクライアント制御部１２は、クライアント１とサーバ２との間でデータ連携が必要な時期と認識する。そして、ステップＳ５として表示部１５にデータ共通化処理中である旨を表示させた後、ステップＳ６として後述する設定最適化処理を実行し、続いてステップＳ７として後述するデータ転送処理を実行する（送信開始制御手段）。
【００３５】
また、クライアント制御部１２は、ステップＳ８〜Ｓ１１として前記ステップＳ１〜Ｓ４と同一の処理を実行する。すなわちステップＳ８として、自己のデータベース１１に保存されている共通化すべきデータ全体をハッシュ値Ａに変換し、このハッシュ値Ａをメモリ部１３の所定ＲＡＭ領域に上書き記憶させる。次いで、ステップＳ９としてサーバ２のデータベース２１に保持されている共通化すべきデータから同一のハッシュ関数にしたがってハッシュ値Ｂを取得することをサーバ２のデータ連携ツール３３に依頼する。そして、ステップＳ１０としてサーバ２からハッシュ値Ｂを取得したことを検知すると、ステップＳ１１として当該ハッシュ値Ｂとメモリ部１３の所定ＲＡＭ領域に記憶されたハッシュ値Ａとを比較し、一致するか否かを判定する（値比較手段）。
【００３６】
ここで、双方のハッシュ値Ａ，Ｂが一致していない場合には、再度、データ転送処理を実行する。こうして、双方のハッシュ値Ａ，Ｂが一致するまでデータ転送処理を繰り返し実行し、一致したならば、クライアント１とサーバ２との間でデータの共通化が図られたので、クライアント制御部１２は、ステップＳ１２として表示部１５のデータ共通化処理中表示を消去する（送信終了制御手段）。その後、ステップＳ１の処理に戻る。
【００３７】
図３は前記設定最適化処理の要部手順を示す流れ図である。すなわちクライアント制御部１２は、前記ステップＳ６にて設定最適化処理を開始すると、先ず、ステップＳ２１としてクライアント１に実装されているメモリ部１３の空き容量Ｐ１を調査する。
【００３８】
次に、クライアント制御部１２は、ステップＳ２２としてデータベース１１に保存されているデータの平均データ長Ｑ１を調査する。例えば、データベース１１に保存されているデータのなかから所定件数（例えば１０００件程度）をサンプリングし、そのデータ長の平均値を求める。
【００３９】
次に、クライアント制御部１２は、ステップＳ２３として上記空き容量Ｐ１と平均データ長Ｑ１とから、下記（１）式により、データベース１１から一度に読み出すことができる最大データ件数Ｃ１を算出する。
【００４０】
Ｃ１＝（Ｐ１÷Ｑ１）×０．８  …（１）
すなわち、平均データ長Ｑ１は実際の値と異なり長くなる可能性もあるため、係数０．８を乗算して、最大データ読出し件数Ｃ１を２０％程度低く見積もる。
【００４１】
次に、クライアント制御部１２は、ステップＳ２４として関連コンピュータであるサーバ２に対して、データベース２１から一度に読み出すことができる最大データ件数Ｃ２の算出を、通信インターフェイス部１４を介してＬＡＮ３経由でサーバ２のデータ連携ツール３３に依頼する。
【００４２】
これにより、サーバ制御部２２は、データ連携ツール３３の作用により、サーバ２に実装されているメモリ部２３の空き容量Ｐ２とデータベース１１に保存されているデータの平均データ長Ｑ２とを調査し、下記（２）式により、データベース２１から一度に読み出すことができる最大データ件数Ｃ２を算出する。
【００４３】
Ｃ２＝（Ｐ２÷Ｑ２）×０．８  …（２）
そして、この最大データ件数Ｃ２を、通信インターフェイス部２４を介してＬＡＮ３経由でクライアント１のデータ連携ツール３３に戻す。
【００４４】
そこで、クライアント制御部１２は、ステップＳ２５としてサーバ２から最大データ件数Ｃ２を取得したことを検知すると、ステップＳ２６として双方の最大データ件数Ｃ１，Ｃ２を比較し、小さい方を、データベース１１，２１からの最初の分割の際のレコード件数、つまりは当初分割件数Ｃとして設定して、この設定最適化処理を終了する。
【００４５】
図４は前記データ転送処理の要部手順を示す流れ図である。すなわちクライアント制御部１２は、上記設定最適化処理を終了すると、それに引き続いてデータ転送処理を開始する。先ず、ステップＳ３１としてデータベース１１に保存されているデータを、上記設定最適化処理で設定された当初分割件数Ｃで分割する。例えば、データベース１１に保存されているデータの件数が十万件で、当初分割件数Ｃが一万件であれば、データベース１１に保存されているデータを一万件単位のブロックで１０ブロックに分割する。
【００４６】
次に、クライアント制御部１２は、ステップＳ３２として分割したブロック毎にそのブロック内のデータから前記と同様にしてハッシュ値Ａ１，Ａ２，…を導出する。また、ステップＳ３３としてサーバ２のデータベース２１に保持されている共通化すべきデータを分割件数Ｃで分割すること、及びその分割されたブロック毎にハッシュ値Ｂ１，Ｂ２…を導出することを、通信インターフェイス部１４を介してＬＡＮ３経由でサーバ２のデータ連携ツール３３に依頼する。
【００４７】
これにより、サーバ制御部２２は、データ連携ツール３３の作用により自己のデータベース２１に保存されている共通化すべきデータ全体を分割件数Ｃで分割し、その分割したブロック毎にそのブロック内のデータからハッシュ値Ｂ１，Ｂ２，…を導出する。そして、これらのハッシュ値Ｂ１，Ｂ２を、通信インターフェイス部２４を介してＬＡＮ３経由でクライアント１のデータ連携ツール３３に戻す。
【００４８】
そこで、クライアント制御部１２は、ステップＳ３４としてサーバ２からハッシュ値Ｂ１，Ｂ２…を取得したことを検知すると、ステップＳ３５としてそれぞれ対応するブロック毎にハッシュ値を比較し、双方のハッシュ値Ａｎ，Ｂｎ（ｎはブロック番号）が一致しないブロックを抽出する。
【００４９】
次に、クライアント制御部１２は、ステップＳ３６としてハッシュ値が一致しないとして抽出したブロックのレコード件数Ｄを調査する。そして、ステップＳ３７としてこのレコード件数Ｄが予め設定されたしきい値件数Ｅより少ないかどうかを判断する。ここで、レコード件数Ｄがしきい値件数Ｅ以上の場合には、クライアント制御部１２は、ステップＳ３８〜Ｓ４４の処理を実行する。
【００５０】
ステップＳ３８では、新たな分割件数Ｃ′を現在の分割件数Ｃの１／２に設定する。ステップＳ３９では、ハッシュ値が一致しないとして抽出したブロックのデータを、この新たな分割件数Ｃ′で分割する。ステップＳ４０では、分割したブロック毎にそのブロック内のデータからハッシュ値Ａ１，Ａ２を導出する。ステップＳ４１では、データベース２１の同一ブロックに保持されているデータを新たな分割件数Ｃ′で分割すること、及びその分割されたブロック毎にハッシュ値Ｂ１，Ｂ２を導出することを、通信インターフェイス部１４を介してＬＡＮ３経由でサーバ２のデータ連携ツール３３に依頼する。ステップＳ４２ではサーバ２からハッシュ値Ｂ１，Ｂ２を取得するのを待機する。ステップＳ４３ではそれぞれ対応するブロックのハッシュ値Ａｎ，Ｂｎを比較して、双方が一致しないブロックを抽出する。ステップＳ４４では、ハッシュ値が一致しないとして抽出したブロックのレコード件数Ｄを調査する。そして、このレコード件数Ｄが依然としてしきい値件数Ｅ以上の場合には、ＳＴ３８〜ＳＴ４４の処理を繰返す。
【００５１】
すなわち、双方のデータベース１１，２１に保持されているデータをそれぞれ一定数のレコード単位で分割してそのレコード単位のデータ毎にハッシュ値を導出して比較し、双方のハッシュ値が異なるレコード単位のデータをそれぞれさらに分割してハッシュ値を導出し比較する処理をドリルダウン式に繰返す。
【００５２】
そして、抽出ブロックのレコード件数Ｄがしきい値件数Ｅ未満になったならば、クライアント制御部１２は、ステップＳ４５としてこの抽出ブロック（最終抽出ブロック）のレコード毎にそのレコードのデータからハッシュ値Ａ１，Ａ２，…を導出する。また、ステップＳ４６としてサーバ２のデータベース２１に保持されている最終抽出ブロックのレコード毎にハッシュ値Ｂ１，Ｂ２…を導出することを、通信インターフェイス部１４を介してＬＡＮ３経由でサーバ２のデータ連携ツール３３に依頼する。
【００５３】
これにより、サーバ制御部２２は、データ連携ツール３３の作用により自己のデータベース２１に保存されている共通化すべきデータのうち最終抽出ブロック内の各データについて個々にハッシュ値Ｂ１，Ｂ２，…を導出する。そして、これらのハッシュ値Ｂ１，Ｂ２を、通信インターフェイス部２４を介してＬＡＮ３経由でクライアント１のデータ連携ツール３３に戻す。
【００５４】
そこで、クライアント制御部１２は、ステップＳ４７としてサーバ２からハッシュ値Ｂ１，Ｂ２…を取得したことを検知すると、ステップＳ４８としてそれぞれ対応するレコード毎にハッシュ値を比較する。そして、双方のハッシュ値Ａｎ，Ｂｎが一致しないレコードを、クライアント１とサーバ２とのデータ連携に必要最小限な差分データとして抽出する（送信データ確定手段）。
【００５５】
しかる後、クライアント制御部１２は、ステップＳ４９としてこの差分データとして抽出したレコードを、通信インターフェイス部１４を介してＬＡＮ３経由でサーバ２に送信する。そして、この差分データの更新をデータ連携ツール３３に依頼したならば、このデータ転送処理を終了する。
【００５６】
これにより、サーバ制御部２２は、データ連携ツール３３の作用により、クライアント１から受信した差分データに基づいてデータベース２１を更新する。因みに、この差分データの更新が正常に行われると、クライアント１のデータベース１１に保存されている共通化すべき全データのハッシュ値と、サーバ２のデータベース２１に保存された対応データのハッシュ値とが一致するので、クライアント制御部１２は、前述したステップＳ１２の処理に進むことになる。
【００５７】
ここで、上記しきい値件数Ｅについて説明する。本実施の形態では、クライアント１が有するデータベース１１とサーバ２が有するデータベース２１のデータ連携が必要な時期と認識すると、双方のデータベース１１，２１に保持されているデータをそれぞれ一定数のレコードからなるデータブロックに分割し、そのデータブロック毎にハッシュ値を導出して比較し、双方のハッシュ値が異なるデータブロックをそれぞれさらに分割してハッシュ値を導出し比較する処理をドリルダウン式に繰返す。この処理を最終段階，つまりデータブロックのレコード数が一つになるまで繰返すことにより、クライアント１とサーバ２とのデータ連携に必要最小限な差分データを得ることができる。しかし、分割して得た全てのデータブロックにおいてハッシュ値が異なる場合を想定すると、ハッシュ値の算出及び比較に要する処理負荷は、分割段階が２分割，４分割，１６分割というように増加すれば増加するほど大きくなる傾向がある。
【００５８】
そこで本実施の形態では、データブロックのレコード件数が上記しきい値件数Ｅ未満になると、双方のデータブロックのレコード毎にハッシュ値を計算し比較して、異なるレコードをクライアント１とサーバ２のデータ連携に必要最小限な差分データを得るようにしている。
【００５９】
一般に、レコード毎にハッシュ値を計算し比較する処理に要する負荷は、レコード件数が多ければ多いほど高い。そこで、分割して得た全てのデータブロックのハッシュ値を算出し比較する処理に要する処理負荷（処理時間）と、そのデータブロック１つを構成するレコード毎にハッシュ値を算出し比較する処理に要する処理負荷（処理時間）とをそれぞれ求めて合計し、この処理負荷（処理時間）の合計が最も小さくなるデータブロックのレコード件数をしきい値件数Ｅと設定する。こうすることにより、最適なパフォーマンスを得ることができる。
【００６０】
このように本実施の形態においては、クライアント１とサーバ２とにそれぞれ実装されたデータ連携ツール３３の作用により、クライアント１のデータベース１１に保持されているデータから当該データベース１１の無二の状態を示すハッシュ値Ａを導出するとともに、サーバ２のデータベース２１に保持されているデータから当該データベース２１の無二の状態を示すハッシュ値Ｂを導出し、双方のハッシュ値Ａ，Ｂを随時比較して、異なる値であることを検知したときをクライアント１が有するデータベース１１とサーバ２が有するデータベース２１のデータ連携が必要な時期と認識して、クライアント１からサーバ２へデータ連携に必要なデータを送信するようにしている。
【００６１】
したがって、双方のハッシュ値Ａ，Ｂを比較する周期を数秒程度の短周期に設定することによって、クライアント１のデータベース１１に更新があった場合に、即座にデータ連携に必要なデータ（差分データ）がサーバ２に転送されるので、短時間のうちにデータの共通化を図ることができる。また、サーバ２のデータベース２１から何らかの理由でデータが消去または変更されてしまった場合でも、即座にクライアント１からサーバ２にデータ連携に必要なデータが送信されるので、やはり短時間のうちにデータの共通化を図ることができるようになる。しかも、データ連携に必要なデータとして送信されるデータは必要最小限な差分データのみであるので、トラフィック量を低減でき、通信負荷を軽減できる効果を奏する。
【００６２】
また、本実施の形態においては、クライアント１からサーバ２へデータ連携に必要なデータを送信する毎に、クライアント１のデータベース１１に保持されているデータからハッシュ値を導出するとともに、サーバ２の更新後のデータベース２１に保持されているデータからハッシュ値を導出し、双方のハッシュ値を比較して、一致するまではクライアント１からサーバ２へ差分データを送信し、一致するとデータの送信を終了するようにしている。したがって、クライアント１とサーバとの間のネットワーク上の問題等によりデータ連携のためのコンピュータ間データ送信がエラーとなった場合には、正常に完了するまで同一差分データの送信が繰返されるので、確実にデータの共通化を図ることができる。
【００６３】
このように、本実施の形態によれば、データ共通化のためのデータ連携の起動を、クライアント１の状態から判断する機能、サーバ２の状態から判断する機能及びデータ送信エラーから判断する機能の３つの機能を、１つのデータ連携ツール３３によって実現可能となる。
【００６４】
また、本実施の形態においては、クライアント１が有するデータベース１１とサーバ２が有するデータベース２１のデータ連携が必要な時期と認識すると、双方のデータベース１１，２１に保持されているデータをそれぞれ一定数のレコード単位で分割してそのレコード単位のデータ毎にハッシュ値を導出して比較し、双方のハッシュ値が異なるレコード単位のデータをそれぞれさらに分割してハッシュ値を導出し比較する処理をドリルダウン式に繰返すことにより、クライアント１からサーバ２へ送信されるデータ連携に必要なデータ（差分データ）を確定するようにしている。
【００６５】
したがって、データベース１１，２１の更新履歴を検証せずともクライアント１からサーバ２へ送信が必要なデータを抽出することができるので、データベース１１，２１の更新履歴の検証作業を省略することができる。また、クライアント１とサーバ２とがそれぞれ有する更新時間のずれを意識することなく、サーバ２に対して送信が必要なデータをクライアント１のデータベース１１から抽出できる。さらに、更新履歴を持たないデータベースを用いたコンピュータ間であっても、そのコンピュータ間のデータ連携に必要なデータを容易に抽出できる利点がある。また、更新履歴の検証作業がないことから、データ送信途中で問題が発生した場合でも問題発生の原因や発生地点まで作業を戻す必要がなく、従来システムのようなロールバック作業を行わずとも、もう一度データ連携が必要なデータの抽出作業を行うことによりいつでもサーバ２に対して送信が必要なデータを抽出できる利点もある。
【００６６】
さらに、本実施の形態においては、クライアント１が有するデータベース１１とサーバが有するデータベース２１のデータ連携が必要な時期と認識し、そのデータ連携に必要なデータを絞り込む際に、双方のコンピュータの性能に関する情報として実装メモリ１３，２３の空き容量とデータベース１１，２１に保存されているデータの平均データ長とから、データベース１１，２１から一度に読出し可能なデータ件数Ｃ１，Ｃ２を算出し、このデータ件数Ｃ１，Ｃ２を比較して値が小さい方を最初の分割の際のレコード件数としている。そして、この分割件数でデータベース１１，２１のデータを分割してそのブロックのデータ毎にハッシュ値を導出して比較し、双方のハッシュ値が異なるブロックのデータをそれぞれさらに分割してハッシュ値を導出し比較する処理をドリルダウン式に繰返すことで、データの絞込みを行っている。
【００６７】
通常、データベースと比較して実装メモリの空き容量が少ないことは容易に想定され、一度に大量のデータをデータベースから読み出すことができない可能性が高い。そこで、適当な件数毎に分割してデータベース１１からデータを読み出し、そのデータをハッシュ値に変換する必要がある。本実施の形態では、上述したような分割件数算出手法を取り入れているので、機種変更やデータ量の変化に合わせた最適な環境の設定、つまりは分割件数の事前設定を必要とせずに効率のよいデータの絞込み処理が可能である。
【００６８】
それに加えて、本実施の形態においては、クライアント１とサーバ２の双方のデータベース１１，２１の状態を比較する際に、そのデータベース１１，２１の無二の状態を示す値、つまりハッシュ値を用いて行っている。したがって、データベース１１，２１に保存されている実際のデータを直接使うことはないので、データベース１１，２１内の情報が外部に漏れるおそれはなく、セキュリティの面でも安心である。
【００６９】
ところで、データベース１１，２１の運用上、データ連携に必要なデータの保存場所が「ある程度規則性を持って追記やアップデータが行われるために偏りがあるケース」と「ランダムに追加やアップデータが行われるために偏りが少ないケース」とが考えられる。前者の場合は、本実施の形態のドリルダウン式を実用することによって、十分なパフォーマンスを得ることができる。一方、後者の場合は、更新履歴の日付やＩＤ等の並び替えによってデータ連携に必要なデータを偏らせることができるキーを最初に特定しておき、このキーによるデータの並べ替え（ソート）を行った後にドリルダウンを実行することによって、パフォーマンスをより一層高められるようになる。
【００７０】
次に、本発明の第２の実施の形態について図５を用いて説明する。なお、この第２の実施の形態も、図１に示したコンピュータシステムに適用した場合であり、図５はクライアント制御部１２がデータ連携ツール３３の起動により実行する処理ルーチンを示す図であって、図２と共通の処理ステップについては同一符号を付してその説明を省略する。
【００７１】
図５に示すように、第２の実施の形態では、クライアント１のデータベース１１に保持されているデータから導出された当該データベース１１の無二の状態を示すハッシュ値Ａと、サーバ２のデータベース２１に保持されているデータから導出された当該データベース２１の無二の状態を示すハッシュ値Ｂとを比較し（ステップＳ４，Ｓ１１）、一致することを検知した場合に、クライアント制御部１２が、ステップＳ１３及びステップＳ１４の処理を追加実行する。
【００７２】
すなわちステップＳ１３では、クライアント１が内蔵するシステム時計（不図示）によって計時されている現在の日付及び時刻のデータをデータ共通化確認時間として取得する。そして、このデータ共通化確認時間をメモリ部１３の所定ＲＡＭ領域に上書き記憶させる。
【００７３】
ステップＳ１４では、双方の共通化すべきデータが共通であることを示す共通化確認ログと上記データ共通化確認時間の書込みを指令することを、通信インターフェイス部１４を介してＬＡＮ３経由でサーバ２のデータ連携ツール３３に依頼する。これにより、サーバ制御部２２は、データ連携ツール３３の作用により共通化確認ログとデータ共通化確認時間をメモリ部２３の所定ＲＡＭ領域に上書き記憶させる（共通化確認情報保持手段）。
【００７４】
このように第２の実施の形態によれば、上記ステップＳ１３，Ｓ１４の各処理を追加することによって、クライアント１とサーバ２の双方の共通化すべきデータが共通であることを確認した最新の時間が常に記憶保持されるので、この確認時間の時点においてクライアント１とサーバ２の双方の共通化すべきデータが共通であることを証明できる。前述したように、双方のハッシュ値Ａ，Ｂを比較する周期は数秒程度の短周期に設定されるので、上記確認時間から常にクライアント１とサーバ２の双方の共通化すべきデータが共通であることを証明できるようになる。
【００７５】
なお、この発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【００７６】
例えば、前記実施の形態では、コンピュータ間で共通化すべきデータを保持するデータ保持手段を有する第１のコンピュータをクライアントとし、この第１のコンピュータにて保持される前記共通化すべきデータを保持するためのデータ保持手段を有する第２のコンピュータをサーバとしたが、サーバ２側のデータ連携ツール３３が主体として起動することにより、サーバ２が第１のコンピュータとして機能し、クライアント１が第２のコンピュータとして機能して、コンピュータ間のデータ共通化を図るようにしてもよい。また、サーバとクライアントの関連があるコンピュータシステムに限定されるものではなく、第２のコンピュータを第１のコンピュータのバックアップ機としてネットワーク接続してなるコンピュータシステムにも本発明のデータ連携技術を適用できるものである。
【００７７】
また、前記実施の形態では、コンピュータ間で共通化すべきデータを保持するデータ保持手段としてのデータベースを１個として説明したが、データ保持手段が複数のデータベースあるいはデータファイルに跨っていてもよい。
【００７８】
また、前記実施の形態では、クライアント１が有するデータベース１１とサーバ２が有するデータベース２１のデータ連携が必要な時期と認識した際に、双方のコンピュータ（クライアント１とサーバ２）の性能に関する情報を基にデータベースから一度に読出し可能なデータ件数を算出し、このデータ件数を最初の分割の際のレコード件数Ｃとしたが、このレコード件数Ｃを算出するタイミングは上記に限定されるものではない。一般に、システムの起動後に環境が激変することは少ないので、システムの起動時にレコード件数Ｃを算出し設定してもよい。
【００７９】
また、前記実施の形態では、コンピュータの性能に関する情報として、実装メモリ１３，２３の空き容量とデータベース１１，２１に保存されているデータの平均データ長を例示したが、当該情報はこれに限定されるものではなく、例えばデータベース１１，２１に保存されているデータの件数やコンピュータ間を繋ぐネットワークの実効速度や、ＣＰＵの処理速度などを考慮してもよい。また。これ以外の情報を基にデータベース１１，２１から一度に読出し可能なデータ件数を算出してもよい。
【００８０】
また、前記実施の形態では、クライアント１の表示部１５において、データ共通化処理中を表示するようにしたが、例えばネットワーク３を介して別途接続された監視用コンピュータの画面に、クライアント１とサーバ２とのデータ共通化の状況を常時表示させるようにしてもよい。
【００８１】
また、前記第２の実施の形態では、クライアント１とサーバ２の双方の共通化すべきデータが共通であることを確認した時点の日時を、一致することが検知されたことを示す情報として保持したが、日時以外の情報、例えばフラグを保持し、このフラグがセットされている場合には一致していると確認できるようにしてもよい。また、情報を保持する記憶部はＲＡＭ１３，２３に限定されるものではなく、例えばハードディスク１１，２１上で記憶保持することも可能である。
【００８２】
また、前記実施の形態では、１種類のハッシュ関数を用いてデータベース１１，２１に保存されている共通化すべきデータ全体のハッシュ値Ａ，Ｂを算出し比較して、一致する場合にはデータ連携の必要な時期でないと判断したが、異なる２種類以上のハッシュ関数を用いてデータベース１１に保存されている共通化すべきデータ全体のハッシュ値Ａ１，Ａ２，…を算出するとともに同一種類のハッシュ関数を用いてデータベース２１に保存されている共通化すべきデータ全体のハッシュ値Ｂ１，Ｂ２，…を算出し、同一種類のハッシュ関数で算出されたハッシュ値Ａ１：Ｂ２，Ａ２：Ｂ２，…をそれぞれ比較して、いずれか１つでも一致しない場合にはデータ連携の必要な時期であると判断してもよい。あるいは、データベース１１，２１に保存されている共通化すべきデータを、例えば先頭のレコードと２番目のレコードとを入替えたり先頭のレコードを最後尾のレコードの後に付ける等、並び順を入替え、その都度ハッシュ値Ａ，Ｂを算出し比較して、いずれか１つでも一致しない場合にはデータ連携の必要な時期であると判断してもよい。このように複数種のハッシュ値を比較することによってデータ共通化判定の精度を高めることができ、より一層の信頼性向上を図ることができるようになる。
【００８３】
また、前記実施の形態では、データベース１１，２１の種類をリレーショナルデータベースとしたが、データベース１１，２１のデータ内容からハッシュ値を算出しているので、他の種類のデータベースを用いたシステムや異なる種類のデータベースを用いたシステムに本発明を適用できるのは言うまでもないことである。
【００８４】
さらに、前記実施の形態ではデータベースに保存されているデータの無二の状態を示す値としてハッシュ値を例示したが、ハッシュ値以外の値でも無二の状態を示すことができる値であれば本発明に適用することができる。
【００８５】
この他、前記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を組合わせてもよい。
【図面の簡単な説明】
【００８６】
【図１】本発明の一実施の形態であるコンピュータシステムの概略構成図。
【図２】同実施の形態においてクライアント制御部がデータ連携ツールの起動により実行する処理ルーチンの要部を示す流れ図。
【図３】図２における設定最適化処理の内容を具体的に示す流れ図。
【図４】図２におけるデータ転送処理の内容を具体的に示す流れ図。
【図５】本発明の第２の実施の形態においてクライアント制御部がデータ連携ツールの起動により実行する処理ルーチンの要部を示す流れ図。
【符号の説明】
【００８７】
１…クライアント、２…サーバ、１１，２１…データベース、１２…クライアント制御部、１３，２３…メモリ部、１４，２４…通信インターフェイス部、１５…表示部、３１…データベースドライバ、３２…キャッシュマネージャ、３３…データ連携ツール。
【図１】
2006039598.tif 000003
【図２】
2006039598.tif 000004
【図３】
2006039598.tif 000005
【図４】
2006039598.tif 000006
【図５】
2006039598.tif 000007