(57)【要約】【課題】異なる階層に存在するユーザ情報の整合性を保持しつつ各階層の依存関係を考慮しながらデータの更新処理を行うユーザ情報同期システムを得る。【解決手段】ユーザ情報同期システム１００は、ユーザ情報管理サーバ１とサーバ５ａ、５ｂ、５ｃでシステムが構成され、ユーザ情報管理サーバ１にはユーザ情報管理サービスプログラム２、ユーザ情報管理ＤＢ３が備わる。ユーザ情報管理ＤＢ３にはユーザ情報管理テーブル４、サーバ情報管理テーブル１２が備わる。サーバ５ａ、５ｂ、５ｃには夫々、ユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃ、ユーザ情報リポジトリ７ａ、７ｂ、７ｃが備わる。ユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃにはユーザ情報更新のためのＡＰＩ）を集約したドライバを介して各種ユーザ情報リポジトリ７ａ、７ｂ、７ｃにアクセスする。【選択図】        図１
2004342039.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ情報を一括管理する第１のサーバと、前記第１のサーバとはネットワークを介して接続され、分散配置された複数の第２のサーバとから構成されるシステムのユーザ情報同期システムにおいて、
前記第１のサーバに備わり、前記ユーザ情報を管理する第１のプログラムと、
前記第１のサーバに備わり、前記ユーザ情報を保管するデータベースと、
前記第２のサーバに備わり、当該第２のサーバ上で管理されている前記ユーザ情報の更新および確定する第２のプログラムと
を備えることを特徴とするユーザ情報同期システム。
【請求項２】
第１のサーバにはユーザ情報の更新および確定順序を定めるユーザ情報相関マップを備え、第１のプログラムは、前記ユーザ情報相関マップに基づき、前記ユーザ情報の同期を制御するプログラムを備えることを特徴とする請求項１記載のユーザ情報同期システム。
【請求項３】
第１のサーバには第２のサーバ夫々のログオン状況を判別する判別手段を備え、第１のプログラムは、前記判別手段の判別結果に基づきにユーザ情報の更新を制御するプログラムを備えることを特徴とする請求項１記載のユーザ情報同期システム。
【請求項４】
第１のサーバには第２のサーバ夫々のログオン状況を判別する判別手段を備え、第２のプログラムは、前記判別手段の判別結果に基づきにユーザ情報の更新を制御するプログラムを備えることを特徴とする請求項１記載のユーザ情報同期システム。
【請求項５】
第１のサーバにはユーザ情報の更新および確定順序を定めるユーザ情報相関マップと、第２のサーバ夫々のログオン状況を判別する判別手段とを備え、第１のプログラムは、前記ユーザ情報相関マップと前記判別手段による判別結果に基づいてユーザ情報の更新を制御するプログラムを備えることを特徴とする請求項１記載のユーザ情報同期システム。
【請求項６】
第１のサーバにはユーザ情報の更新および確定順序を定めるユーザ情報相関マップと、第２のサーバ夫々のログオン状況を判別する判別手段とを備え、第１のプログラムは、前記ユーザ情報相関マップに基づきユーザ情報の更新を制御するプログラムを備え、第２のプログラムは、前記判別手段の判別結果に基づきにユーザ情報の更新を制御するプログラムを備えることを特徴とする請求項１記載のユーザ情報同期システム。
【請求項７】
第１のサーバにはユーザ情報の更新計画テーブルを備え、第１のプログラムは前記更新計画テーブルに沿ってユーザ情報の更新を制御するプログラムを備えることを特徴とする請求項１から請求項６のうちのいずれか１項記載のユーザ情報同期システム。
【請求項８】
ログオン状況を判別する判別手段は、第１のサーバに設けられた第３のプログラムによることを特徴とする請求項３から請求項７のうちのいずれか１項記載のユーザ情報同期システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、分散して管理されている種々の階層のユーザ情報に対して、整合性を保った同期処理を行うユーザ情報同期システムに関するものである。
【０００２】
【従来の技術】
従来、分散管理されているデータの整合性を保ちながら、データの更新処理を行うシステムとしては、データベース等、同種のデータの整合性を保持した更新システムや、データベース内のレコード情報と実データであるファイルシステムとの整合性を保持した更新システム等があった。
【０００３】
例えば、特許文献１には分散されたデータベースに対する更新処理システムに関し、分散されたデータベースのデータ更新におけるコミット、ロールバック処理について記述されている。
また、特許文献２には、ネットワークに接続され、データ管理を行う複数のサーバに蓄積されているデータの同一性を保持しつつデータ更新をするシステムについて記述されている。
【０００４】
【特許文献１】
特開平０８−０８７４３６号公報
【特許文献２】
特開平１０−２５４７４９号公報
【０００５】
【発明が解決しようとする課題】
従来、ユーザ情報のような各種階層（ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、Ｍ／Ｗ（Ｍｉｄｄｌｅ  Ｗａｒｅ）、アプリケーション、ディレクトリサーバ等）に分かれているデータに対して、各階層間に依存関係が存在するようなデータの整合性を保持し、同期をとった更新というものは考慮されていないという問題点があった。
【０００６】
この発明は上記のような問題点を解決するためになされたもので、異なる階層に存在するユーザ情報の整合性を保持しつつ各階層の依存関係を考慮しながらデータの更新処理を行うユーザ情報同期システムを得ることを目的とする。
【０００７】
【課題を解決するための手段】
この発明に係るユーザ情報同期システムは、ユーザ情報を一括管理する第１のサーバと、第１のサーバとはネットワークを介して接続され、分散配置された複数の第２のサーバとから構成されるシステムのユーザ情報同期システムにおいて、第１のサーバに備わり、ユーザ情報を管理する第１のプログラムと、第１のサーバに備わり、ユーザ情報を保管するデータベースと、第２のサーバに備わり、第２のサーバ上で管理されているユーザ情報の更新および確定する第２のプログラムとを備えるものである。
【０００８】
【発明の実施の形態】
以下に、この発明の実施の一形態について説明する。
実施の形態１．
この発明に係る実施の形態１について図１〜図５を参照して説明する。なお、図１は実施の形態１に係るユーザ情報同期システム１００の構成を示すブロック図であり、図２および図３は夫々、図１に示すユーザ情報管理テーブルとサーバ情報管理テーブルの詳細を示す図である。また、図４および図５は夫々、ユーザ情報同期システム１００のユーザ情報管理サービスプログラムとユーザ情報更新エージェントプログラムのフローチャートである。
【０００９】
ユーザ情報同期システム１００は、ユーザ情報管理サーバ１とサーバ５ａ、５ｂ、５ｃでシステムが構成される。ユーザ情報管理サーバ１にはユーザ情報管理サービスプログラム２、ユーザ情報管理ＤＢ３が備わる。また、ユーザ情報管理ＤＢ３にはユーザ情報管理テーブル４およびサーバ情報管理テーブル１２が備わる。サーバ５ａ、５ｂ、５ｃには夫々、ユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃと、ＯＳ、Ｍ／Ｗ、Ｄｉｒｅｃｔｏｒｙ  Ｓｅｒｖｉｃｅ７ｃ等を備えるユーザ情報リポジトリ７ａ、７ｂ、７ｃが備わる。ユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃにはユーザ情報更新のためのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を集約したドライバを介して各種ユーザ情報リポジトリ７ａ、７ｂ、７ｃにアクセスする。
【００１０】
なお、ユーザ情報管理テーブル４には図２に示すようにユーザＩＤをパラメータとしてＯＳ、ＡＰＰ１、ディレクトリサーバ１、更新状態の詳細が記述され、また、サーバ情報管理テーブル１２には図３に示すようにサーバ名、ＯＳ、ＯＳ種別、ＡＰＰ１、ディレクトリサーバの詳細が記述されている。
また例としてサーバが３つの場合について図示しているが、これに限らずより多くのサーバを備えても良いものである。
【００１１】
次にユーザ情報同期システム１００の動作について、図４および図５のフローチャートに沿って説明する。
【００１２】
まず、図４に示すようにユーザ情報管理サーバ１上のユーザ情報管理サービスプログラム２を実行する（ステップＳＴ１０１）。つぎにユーザ情報管理ＤＢ３内のユーザ情報管理テーブル４から未更新状態のユーザ情報データを抽出する（ステップＳＴ１０２）。抽出したユーザ情報データの中に未更新状態のユーザ情報データがあるか否かを判別し（ステップＳＴ１０３）、未更新状態のユーザ情報データがなければ終了する（ステップＳＴ１１１）。
【００１３】
未更新状態のユーザ情報データがあればサーバ情報管理テーブル１２内のサーバ情報と、抽出したユーザ情報データから、各サーバへ送信する新データ８ａ、８ｂ、８ｃを作成する（ステップＳＴ１０４）。作成したユーザ情報データである新データ８ａ、８ｂ、８ｃをサーバ５ａ、５ｂ、５ｃに送信する（ステップＳＴ１０５）。ユーザ情報管理サーバ１上のユーザ情報管理サービスプログラム２はユーザ情報データの送信後、ユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃからの通知を受信するまで待機する（ステップＳＴ１０６）。ステップＳＴ１０６の待機中におけるユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃの動作については後段で説明する。
【００１４】
待機していたユーザ情報管理サービスプログラム２がユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃからメッセージを受信し、受信したメッセージに失敗メッセージ１１があるか否かを判別する（ステップＳＴ１０７）。１つでも失敗メッセージ１１があれば、ロールバック命令をユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃに通知して（ステップＳＴ１０８）、終了する（ステップＳＴ１１１）。一方、受信したメッセージが全て成功メッセージ１０であれば、コミット命令をユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃに通知し（ステップＳＴ１０９）、ユーザ情報管理テーブル４内の更新状態の値を「更新済」に変更して（ステップＳＴ１１０）、終了する（ステップＳＴ１１１）。
【００１５】
つぎに図５に示すようにサーバ５ａ、５ｂ、５ｃ上のエージェントプログラム６ａ、６ｂ、６ｃは、ユーザ情報管理サーバ１上のユーザ情報管理サービスプログラム２から図４のステップＳＴ１０８で送られてくる新データ８を受信する（ステップＳＴ２０１）。これら受信した新データは各サーバ毎に新データ８ａ、８ｂ、８ｃとして記録される。
【００１６】
サーバ５ａ、５ｂ、５ｃでは受信した新データ８ａ、８ｂ、８ｃからユーザＩＤを抽出し、ユーザ情報が格納されているＯＳから現在のデータを旧データ９ａ、９ｂ、９ｃとして抽出し（ステップＳＴ２０２）、保管する（ステップＳＴ２０３）。つぎに対象ユーザ情報の更新を行う（ステップＳＴ２０４）。更新に成功したか否かを判別し（ステップＳＴ２０５）、成功したならば成功メッセージ１０をユーザ情報管理サービスプログラム２に通知し（ステップＳＴ２０６）、一方、更新に失敗したならば失敗メッセージ１１をユーザ情報管理サービスプログラム２に通知する（ステップＳＴ２０７）。図４のステップＳＴ１０７でこの通知を受信するが、この通知に基づき、ユーザ情報管理サービスプログラム２からの命令が通知されるまで待機する（ステップＳＴ２０８）。
【００１７】
ユーザ情報管理サービスプログラム２からの命令を待機していたユーザ情報更新エージェントポログラム６ａ、６ｂ、６ｃは、ユーザ情報管理サービスプログラム２からの命令を判別し（ステップＳＴ２０９）、その命令がロールバック命令ならば、更新したユーザ情報データを保管していた旧データ９ａ、９ｂ、９ｃに戻し（ステップＳＴ２１０）、保存していた旧データ９ａ、９ｂ、９ｃを削除する（ステップＳＴ２１１）。一方、その命令がコミット命令であれば保存していた旧データ９ａ、９ｂ、９ｃを削除して（ステップＳＴ２１１）、終了する（ステップＳＴ２１２）。
【００１８】
以上のように、データ更新前に旧情報を保管し、更新失敗時に元に戻すためのデータを持つことで、各サーバにおける異種のデータ層間においてでも整合性をとるが可能となる。
【００１９】
実施の形態２．
つぎにこの発明に係る実施の形態２について図６および図７を参照して説明する。なお、図６は実施の形態２に係るユーザ情報同期システム２００の構成を示すブロック図であり、図７はユーザ情報同期システム２００上のユーザ情報管理サービスプログラムのフローチャートである。
【００２０】
上述した実施の形態１のユーザ情報同期システム１００では、各対象を同列に更新の制御を実施するようにしたものであるが、実施の形態２のユーザ情報同期システム２００は依存関係マップを使用して各サーバの更新を制御するシステムである。この依存関係マップはユーザのログオンに関する依存関係をツリー上に表したものであって、例えばＯＳにログオンしなければアプリケーションにログオンできないものである。
【００２１】
図６に示すようにユーザ情報同期システム２００は、実施の形態１のユーザ情報同期システム１００に階層依存マップ１３を加えた構成であり、その他の構成要素は同様であって、それらの説明は省略する。
【００２２】
次にユーザ情報同期システム２００の動作について、図７のユーザ情報管理サービスプログラムのフローチャートに沿って説明する。また図５のユーザ情報更新エージェントプログラムのフローチャートを適宜参照する。
【００２３】
まず、図７に示すようにユーザ情報管理サーバ１上のユーザ情報管理サービスプログラム２を実行する（ステップＳＴ３０１）。つぎにユーザ情報管理ＤＢ３内のユーザ情報管理テーブル４から未更新状態のユーザ情報データを抽出する（ステップＳＴ３０２）。抽出したユーザ情報データの中に未更新状態のユーザ情報データがあるか否かを判別し（ステップＳＴ３０３）、未更新状態のユーザ情報データがなければ終了する（ステップＳＴ３１３）。
【００２４】
未更新状態のユーザ情報データがあればサーバ情報管理テーブル１２内のサーバ情報と、抽出したユーザ情報データから、各サーバへ送信する新データ８を作成する（ステップＳＴ３０４）。次に階層依存マップ１３とサーバ情報管理テーブル１２から更新順序を決定する（ステップＳＴ３０５）。その後、決定した順に更新データをサーバ５ａ、５ｂ、５ｃのユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃに送信し（ステップＳＴ３０６）、ユーザ情報管理サービスプログラム２はユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃからの通知を待つ（ステップＳＴ３０７）。ユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃにおける処理は、実施の形態１で説明したことと同様である。
【００２５】
ユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃからの通知をチェックし、受信したメッセージに失敗メッセージ１１があるか否かを判別する（ステップＳＴ３０８）。１つでも失敗メッセージ１１があれば、ロールバック命令をユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃに通知して（ステップＳＴ３０９）、終了する（ステップＳＴ３１３）。一方、受信したメッセージが全て成功メッセージ１０であれば、全てのユーザ更新情報について更新処理を行ったかのチェックを行う（ステップＳＴ３１０）。
【００２６】
ステップＳＴ３１０のチェックで、ユーザ更新情報が残っていればステップＳＴ３０６に戻り、繰り返し行う。一方、全てのユーザ更新情報について更新処理が終了していれば、コミット命令をユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃに通知し（ステップＳＴ３１１）、ユーザ情報管理テーブル４内の更新状態の値を「更新済」に変更して（ステップＳＴ３１２）、終了する（ステップＳＴ３１３）。
【００２７】
以上説明したように、データリポジトリの関係を階層マップ化して、上流よりデータ更新を行うことにより、既に使用済みのリポジトリのデータから更新していき、未使用のリポジトリのデータに更新することで、ユーザが下位のリポジトリのデータを使用する場合にも整合性を保つことができる。
【００２８】
実施の形態３．
つぎにこの発明に係る実施の形態３について図８〜図１１を参照して説明する。なお、図８は実施の形態３に係るユーザ情報同期システム３００の構成を示すブロック図であり、図９はユーザ情報同期システム３００のユーザ情報管理テーブルの詳細を示す図である。また、図１０および図１１は夫々、ユーザ情報同期システム３００のユーザ情報管理サービスプログラムとユーザ情報更新エージェントプログラムのフローチャートである。
【００２９】
上述した実施の形態１では、ユーザの状態を無視した更新のものであり、ユーザが、システムにログオンしている状態でユーザ情報を更新してしまった場合に不都合が発生する場合がある。実施の形態３はこれらの点に鑑みて構成され、ユーザ情報更新エージェントプログラムでユーザのログオン状態を監視し、サーバ側でユーザ情報の更新を制御するものである。
【００３０】
図８に示すようにユーザ情報同期システム３００は、実施の形態１のユーザ情報同期システム１００に、図９に示すようにシステムがログオンしているか否かの情報を付加したユーザ情報管理テーブル４ａを加えた構成であり、その他の構成要素は同様であって、それらの説明は省略する。
【００３１】
次にユーザ情報同期システム３００の動作について、図１０のユーザ情報管理サービスプログラムのフローチャートおよび図１１のユーザ情報更新エージェントプログラムのログオンチェック処理におけるフローチャートに沿って説明する。なお、ユーザ情報更新エージェントプログラムのユーザ情報更新処理におけるフローは実施の形態１と同様である。
【００３２】
まず、図１０に示すようにユーザ情報管理サーバ１上のユーザ情報管理サービスプログラム２を実行する（ステップＳＴ４０１）。つぎにユーザ情報管理データベース３内のユーザ情報管理テーブル４ａから未更新状態のユーザ情報データを抽出する（ステップＳＴ４０２）。抽出したユーザ情報データの中に未更新状態のユーザ情報データがあるか否かを判別する（ステップＳＴ４０３）。未更新状態のユーザ情報データがなければ終了する（ステップＳＴ４１６）。未更新状態のユーザ情報データがあればサーバ情報管理テーブル１２内のサーバ情報と、抽出したユーザ情報データから、各サーバへ送信する新データ８を作成する（ステップＳＴ４０４）。
【００３３】
つぎに、該当するサーバ５ａ、５ｂ、５ｃ上のユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃにユーザのログオンのチェックを命令し（ステップＳＴ４０５）、該当するユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃからの通知を受信するまで待機する（ステップＳＴ４０６）。ステップＳＴ４０６の待機中におけるユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃの動作については後段で説明する。
【００３４】
該当するユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃから通知があるとログオンしているか否かをチェックし（ステップＳＴ４０７）、ログオン中であれば一定時間待機し（ステップＳＴ４０８）、再度ステップＳＴ４０５に戻り、動作を繰り返し行う。一方、ログオフ中であれば作成したユーザ情報データである新データ８をサーバ５ａ、５ｂ、５ｃに送信する（ステップＳＴ４０９）。ユーザ情報管理サーバ１上のユーザ情報管理サービスプログラム２はユーザ情報データの送信後、ユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃからの通知を受信するまで待機する（ステップＳＴ４１０）。なお、ステップＳＴ４１０の待機中におけるユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃの動作は実施の形態１で図５を参照して説明したことと同様であり、ここでの説明は省略する。
【００３５】
待機していたユーザ情報管理サービスプログラム２がユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃからメッセージを受信し、受信したメッセージに失敗メッセージ１１があるか否かを判別する（ステップＳＴ４１１）。１つでも失敗メッセージ１１があれば、ロールバック命令をユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃに通知して（ステップＳＴ４１２）、全データについて処理が完了したか否かを判別し（ステップＳＴ４１５）、完了していなければステップＳＴ４０５に戻りデータ野処理を繰り返す。一方、完了していれば終了する（ステップＳＴ４１６）。
【００３６】
ステップＳＴ４１１において受信したメッセージが全て成功メッセージ１０であれば、コミット命令をユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃに通知し（ステップＳＴ４１３）、ユーザ情報管理テーブル４ａ内の更新状態の値を「更新済」に変更して（ステップＳＴ４１４）、全データについて処理が完了したか否かを判別し（ステップＳＴ４１５）、完了していなければステップＳＴ４０５に戻りデータ野処理を繰り返す。一方、完了していれば終了する（ステップＳＴ４１６）。
【００３７】
つぎにステップＳＴ４０６においてユーザ情報管理サービスプログラム２の待機中におけるユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃの動作について説明する。図１１に示すように、ユーザ情報管理サービスプログラム２からのログオンチェック命令を受信し（ステップＳＴ５０１）、受信した更新対象ユーザのユーザＩＤを基にユーザがログオンしているか否かのチェックを行う（ステップＳＴ５０２）。ログオン中であるか否かを判別し（ステップＳＴ５０３）、ログオン中であればログオン中である旨のメッセージをユーザ情報管理サービスプログラム２に送信し（ステップＳＴ５０４）、一方、ログオフ中ならばログオフ中である旨のメッセージをユーザ情報管理サービスプログラム２に送信して（ステップＳＴ５０５）、終了する（ステップＳＴ５０６）。
【００３８】
以上説明したように、ユーザがログオフ中のみデータの更新を行うことにより、ユーザが使用中の際に不整合が発生することを防ぐことができる。
【００３９】
実施の形態４．
つぎにこの発明に係る実施の形態４について図１２〜図１４を参照して説明する。なお、図１２は実施の形態４係るユーザ情報同期システムのユーザ情報管理サービスプログラムのフローチャートであり、図１３は階層依存マップの最上位のユーザ情報更新エージェントプログラムのフローチャートであり、図１４は階層依存マップの最上位以外のユーザ情報更新エージェントプログラムのフローチャートである。
【００４０】
上述した実施の形態３では、ユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃで監視していたログオンの状態をユーザ情報管理サーバ１側で集中制御するものであり、処理が集中するという不都合が発生する場合がある。従ってこの実施の形態４はユーザのログオン状態を監視し、個々のユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃ側でユーザ情報の更新を制御するものに関している。なお、この実施の形態４のユーザ情報同期システムの構成は、実施の形態２のユーザ情報同期システム２００と同様であり、それらの説明は省略する。
【００４１】
次に動作について図１２〜図１４のフローチャートに沿って説明する。
まず、図１２に示すようにユーザ情報管理サーバ１上のユーザ情報管理サービスプログラム２を実行する（ステップＳＴ６０１）。つぎにユーザ情報管理データベース３内のユーザ情報管理テーブル４ａから未更新状態のユーザ情報データを抽出し（ステップＳＴ６０２）、抽出したユーザ情報データの中に未更新状態のユーザ情報データがあるか否かを判別する（ステップＳＴ６０３）。未更新状態のユーザ情報データがなければ終了する（ステップＳＴ６１２）。
【００４２】
未更新状態のユーザ情報データがあればサーバ情報管理テーブル１２内のサーバ情報と、抽出したユーザ情報データから、各サーバへ送信する新データ８を作成する（ステップＳＴ６０４）。作成したユーザ情報データである新データ８をサーバ５ａ、５ｂ、５ｃに送信する際に、階層依存マップ１３も送信し（ステップＳＴ６０５）、新データ８の送信後、階層依存マップ１３の最上位にあたるユーザ情報更新エージェントプログラム６ａ（この場合、ユーザ情報更新エージェントプログラム６ａが最上位であるとする）に更新命令を送信し（ステップＳＴ６０６）、ユーザ情報更新エージェントプログラム６ａからの通知を受信するまで待機する（ステップＳＴ６０７）。ステップＳＴ６０７の待機中におけるユーザ情報更新エージェントプログラム６ａの動作については後段で説明する。
【００４３】
待機していたユーザ情報管理サービスプログラム２がユーザ情報更新エージェントプログラム６ａからメッセージを受信し、受信したメッセージに失敗メッセージ１１があるか否かを判別する（ステップＳＴ６０８）。１つでも失敗メッセージ１１があれば、ロールバック命令をユーザ情報更新エージェントプログラム６ａに通知して（ステップＳＴ６０９）、終了する（ステップＳＴ６１２）。一方、受信したメッセージが全て成功メッセージ１０であれば、コミット命令をユーザ情報更新エージェントプログラム６ａに通知し（ステップＳＴ６１０）、ユーザ情報管理テーブル４ａ内の更新状態の値を「更新済」に変更して（ステップＳＴ６１１）、終了する（ステップＳＴ６１２）。
【００４４】
つぎに、ユーザ情報更新エージェントプログラム６ａの動作について説明する。図１３のフローチャートに示すように、ステップＳＴ６０６でユーザ情報管理サービスプログラム２から送信された新データ８と階層依存マップ１３を受信する（ステップＳＴ７０１）。データ受信後、更新を保留した状態で、ユーザ情報管理サービスプログラム２からの更新命令を受信するまで待機する（ステップＳＴ７０２）。ユーザ情報管理サービスプログラム２から更新命令受信後（ステップＳＴ７０３）、サーバ５ａでは受信した新データ８ａからユーザＩＤを抽出し、ユーザ情報が格納されているＯＳから現在のデータを旧データ９ａとして抽出し（ステップＳＴ７０４）、保管する（ステップＳＴ７０５）。
【００４５】
つぎに受信した更新対象ユーザのユーザＩＤを基にユーザがログオンしているか否かのチェックを行う（ステップＳＴ７０６）。ログオン中であるか否かを判別し（ステップＳＴ７０７）、ログオン中であればログオフイベントを取得するまで待機し（ステップＳＴ７０８）、待機後、ステップＳＴ７０９に進み更新処理を進める。また、ステップＳＴ７０７においてログオフ中であれば、そのままステップＳＴ７０９に進み更新処理を進める。ステップＳＴ７０９においては、更新依存マップ１３において異なるユーザ情報更新エージェントプログラム６ｂ、６ｃへ更新許可を通知する。
【００４６】
つぎに対象ユーザ情報の更新を行う（ステップＳＴ７１０）。更新に成功したか否かを判別し（ステップＳＴ７１１）、成功したならば成功メッセージ１０をユーザ情報管理サービスプログラム２に通知し（ステップＳＴ７１２）、一方、更新に失敗したならば失敗メッセージ１１をユーザ情報管理サービスプログラム２に通知する（ステップＳＴ７１３）。図１２のステップＳＴ６０８でこの通知を受信するが、この通知に基づき、ユーザ情報管理サービスプログラム２からの命令が通知されるまで待機する（ステップＳＴ７１４）。
【００４７】
ユーザ情報管理サービスプログラム２からの命令を待機していたユーザ情報更新エージェントポログラム６ａは、ユーザ情報管理サービスプログラム２からの命令を判別し（ステップＳＴ７１５）、その命令がロールバック命令ならば、更新したユーザ情報データを保管していた旧データ９ａに戻し（ステップＳＴ７１６）、保存していた旧データ９ａを削除する（ステップＳＴ７１７）。一方、その命令がコミット命令であれば保存していた旧データ９ａを削除して（ステップＳＴ７１７）、終了する（ステップＳＴ７１８）。
【００４８】
次に最上位でないユーザ情報更新エージェントプログラム６ｂ、６ｃの動作について説明する。図１４のフローチャートに示すように、ユーザ情報管理サービスプログラム２からの新データ８および階層依存マップ１３を受信し（ステップＳＴ８０１）、データ受信後、更新を保留した状態で、ユーザ情報管理サービスプログラム２からの更新命令を受信するまで待機する（ステップＳＴ８０２）。階層依存マップ１３上の上位のユーザ情報更新エージェントプログラム６ａから更新命令受信後（ステップＳＴ８０３）、サーバ５ｂ、５ｃでは受信した新データ８ｂ、８ｃからユーザＩＤを抽出し、ユーザ情報が格納されているＯＳから現在のデータを旧データ９ｂ、９ｃとして抽出し（ステップＳＴ８０４）、保管する（ステップＳＴ８０５）。
【００４９】
つぎに受信した更新対象ユーザのユーザＩＤを基にユーザがログオンしているか否かのチェックを行う（ステップＳＴ８０６）。ログオン中であるか否かを判別し（ステップＳＴ８０７）、ログオン中であればログオフイベントを取得するまで待機し（ステップＳＴ８０８）、待機後、ステップＳＴ８０９に進み更新処理を進める。また、ステップＳＴ８０７においてログオフ中であれば、そのままステップＳＴ８０９に進み更新処理を進める。
【００５０】
つぎにステップＳＴ８０９で対象ユーザ情報の更新を行う。更新に成功したか否かを判別し（ステップＳＴ８１０）、成功したならば成功メッセージ１０をユーザ情報管理サービスプログラム２に通知し（ステップＳＴ８１１）、一方、更新に失敗したならば失敗メッセージ１１をユーザ情報管理サービスプログラム２に通知する（ステップＳＴ８１２）。図１２のステップＳＴ６０８でこの通知を受信するが、この通知に基づき、ユーザ情報管理サービスプログラム２からの命令が通知されるまで待機する（ステップＳＴ８１３）。
【００５１】
ユーザ情報管理サービスプログラム２からの命令を待機していたユーザ情報更新エージェントプログラム６ｂ、６ｃは、ユーザ情報管理サービスプログラム２からの命令を判別し（ステップＳＴ８１４）、その命令がロールバック命令ならば、更新したユーザ情報データを保管していた旧データ９ｂ、９ｃに戻し（ステップＳＴ８１５）、保存していた旧データ９ｂ、９ｃを削除する（ステップＳＴ８１６）。一方、その命令がコミット命令であれば保存していた旧データ９ｂ、９ｃを削除して（ステップＳＴ８１６）、終了する（ステップＳＴ８１７）。
【００５２】
実施の形態４のユーザ情報同期システムではユーザのログオンチェックを各ユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃで行うことによりユーザ情報管理サービスプログラム２での負荷の集中を防ぐことができる。
【００５３】
実施の形態５．
この実施の形態５は、上述した実施の形態２と実施の形態３とを組み合わせ、ユーザの使用状態（ログオン、ログオフ）をチェックしつつ、階層依存マップ１３にしたがいユーザ情報の更新を行うものである。詳しくは実施の形態２と実施の形態３の説明を参照する。
【００５４】
この実施の形態５により、ユーザがログオフ中の期間にデータの更新を行うことにより、ユーザが使用中に不整合が発生することを防ぐことが可能となる。
【００５５】
実施の形態６．
この実施の形態６は、上述した実施の形態２と実施の形態４とを組み合わせ、ユーザの使用状態（ログオン、ログオフ）をチェックしつつ、階層依存マップ１３にしたがいユーザ情報の更新を行うものである。詳しくは実施の形態２と実施の形態４の説明を参照する。
【００５６】
この実施の形態６により、ユーザがログオフ中の期間にデータの更新を行うことにより、ユーザが使用中に不整合が発生することを防ぐことが可能となる。
【００５７】
実施の形態７．
つぎにこの発明に係る実施の形態７について図１５および図１６を参照して説明する。なお、図１５は実施の形態７に係るユーザ情報同期システム４００の構成を示すブロック図であり、図１６はユーザ情報同期システム４００のユーザ情報管理サービスプログラムのフローチャートである。
【００５８】
実施の形態７は、上述した実施の形態１〜実施の形態６ではユーザ情報の更新の実行が手動で行うことになり、夜間にユーザがシステムを使用していないときに実行できないという不具合があり、この点に鑑みてスケジュールにしたがってユーザ情報の更新を実行しようとするものである。
【００５９】
図１５に示すようにユーザ情報同期システム４００は、実施の形態１のユーザ情報同期システム１００にスケジュールファイル１４を加えた構成であり、その他の構成要素は同様であって、それらの説明は省略する。
【００６０】
次にユーザ情報同期システム４００の動作について、図１６のユーザ情報管理サービスプログラムのフローチャートに沿って説明する。またユーザ情報更新エージェントプログラムの流れは実施の形態１で、図５を参照して説明したことと同様である。
【００６１】
まず、スケジュールファイル１４のチェックを行い（ステップＳＴ９０１）、更新時刻になっているか否かの判別を行う（ステップＳＴ９０２）。更新時刻になっていなければ一定時間待機した後（ステップＳＴ９０３）、ステップＳＴ９０１に戻り、スケジュールファイル１４のチェックを繰り返す。一方、更新時刻になっていれば、それ以降の更新処理を実施する。更新処理に関しては実施の形態１で説明したことと同様であり、その説明は省略する。
【００６２】
この実施の形態７により、ユーザ情報の更新をスケジュールに沿って行うことで、オペレータがいない時間帯でのユーザ情報の更新を行うことが可能となる。
【００６３】
実施の形態８．
つぎにこの発明に係る実施の形態８について図１７〜図１９を参照して説明する。なお、図１７は実施の形態８に係るユーザ情報同期システム５００の構成を示すブロック図であり、図１８および図１９は夫々、ユーザ情報同期システム５００のログオンチェックプログラムのフローチャートであり、ユーザ情報管理サービスプログラムのフローチャートである。
【００６４】
実施の形態８は、上述した実施の形態３ではユーザ情報管理プログラム２がログオンチェック機能も兼ねており、１つのプログラムに負荷がかかってしまうという不具合があり、この点に鑑みてユーザのログオンチェック機能を独立したプログラムとして設け、ユーザ情報管理プログラム２への負荷を減らそうとするものである。
【００６５】
図１７に示すようにユーザ情報同期システム５００は、実施の形態３のユーザ情報同期システム３００にログオンチェックプログラム１５を加えた構成であり、その他の構成要素は同様であり、それらの説明は省略する。
【００６６】
次に動作について図１８および図１９のフローチャートに沿って説明する。なお、ユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃのフローは実施の形態３で説明したことと同様であり、ここでの説明は省略する。
【００６７】
最初に、ログオンチェックプログラム１５のフローを説明する。
まず、図１８に示すように、ユーザ情報管理テーブル４ａからユーザ情報を取得する（ステップＳＴ１００１）。つぎにサーバ情報管理テーブル１２からログオンチェック対象サーバ（ＯＳ）を取得する（ステップＳＴ１００２）。各ユーザに対してログオンチェック命令をサーバ５ａ、５ｂ、５ｃのうちの対象となるサーバのユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃに送信する（ステップＳＴ１００３）。送信後は、ユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃからの通知を待つ（ステップＳＴ１００４）。
【００６８】
対象となるユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃからの通知を受信し（ステップＳＴ１００５）、そのユーザ情報更新エージェントプログラム６ａ、６ｂ、６ｃがログオン中であるか否かを判別する（ステップＳＴ１００６）。ログオン中ならばユーザ情報管理テーブル４ａのログオン状態カラムの値を「Ｙ」に設定し（ステップＳＴ１００７）、一方、ログオフ中ならばユーザ情報管理テーブル４ａのログオン状態カラムの値を「Ｎ」に設定する（ステップＳＴ１００８）。ステップＳＴ１００７またはステップＳＴ１００８の後、全ユーザが終了したか否かのチェックを行い（ステップＳＴ１００９）、終了していれば、一定時間待機後（ステップＳＴ１０１０）、ステップＳＴ１００１に戻って処理を繰り返し、一方、終了していなければステップＳＴ１００３に戻って処理を繰り返す。
【００６９】
次にユーザ情報管理サービスプログラム２のフローを説明する。
まず、図１９に示すように、ユーザ情報管理サーバ１上のユーザ情報管理サービスプログラム２を実行する（ステップＳＴ１１０１）。つぎにユーザ情報管理データベース３内のユーザ情報管理テーブル４ａから未更新状態のユーザ情報データを抽出する（ステップＳＴ１１０２）。抽出したユーザ情報データの中に未更新状態のユーザ情報データがあるか否かを判別し（ステップＳＴ１１０３）、未更新状態のユーザ情報データがなければ終了する（ステップＳＴ１１１５）。
【００７０】
一方、未更新状態のユーザ情報データがあればサーバ情報管理テーブル１２内のサーバ情報と、抽出したユーザ情報データから、各サーバへ送信する新データ８を作成する（ステップＳＴ１１０４）。つぎに、ユーザのログオン状態をチェックするためにユーザ情報管理テーブル４ａをチェックする（ステップＳＴ１１０５）。以後の更新処理に関しては実施の形態３で図１０を参照して説明したことと同様であり、その説明は省略する。
【００７１】
この実施の形態８により、ユーザ情報更新のために別途ログインチェックプログラム１５を設けたことにより、サーバ情報管理サービスプログラム２への負荷を減らすことが可能となる。
【００７２】
【発明の効果】
以上のように、この発明によれば、データ更新前に旧情報を保管し、更新失敗時に元に戻すためのデータを持つことで、異なる階層に存在するユーザ情報の整合性を保持しつつ各階層の依存関係を意識しながらデータの更新処理を行うことができるという効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１に係るユーザ情報同期システムの構成を示すブロック図である。
【図２】図１に示すユーザ情報管理テーブルの詳細を示す図である。
【図３】図１に示すサーバ情報管理テーブルの詳細を示す図である。
【図４】実施の形態１に係るユーザ情報同期システムのユーザ情報管理サービスプログラムのフローチャートである。
【図５】実施の形態１に係るユーザ情報同期システムのユーザ情報更新エージェントプログラムのフローチャートである。
【図６】この発明の実施の形態２に係るユーザ情報同期システムの構成を示すブロック図である。
【図７】実施の形態２のユーザ情報管理サービスプログラムのフローチャートである。
【図８】この発明の実施の形態３に係るユーザ情報同期システムの構成を示すブロック図である。
【図９】図８に示すユーザ情報管理テーブルの詳細を示す図である。
【図１０】実施の形態３のユーザ情報管理サービスプログラムのフローチャートである。
【図１１】実施の形態３のユーザ情報更新エージェントプログラムのフローチャートである。
【図１２】この発明の実施の形態４に係るユーザ情報同期システムのユーザ情報管理サービスプログラムのフローチャートである。
【図１３】実施の形態４の階層依存マップの最上位のユーザ情報更新エージェントプログラムのフローチャートである。
【図１４】実施の形態４の階層依存マップの最上位以外のユーザ情報更新エージェントプログラムのフローチャートである。
【図１５】この発明の実施の形態７に係るユーザ情報同期システムの構成を示すブロック図である。
【図１６】実施の形態７のユーザ情報管理サービスプログラムのフローチャートである。
【図１７】この発明の実施の形態８に係るユーザ情報同期システムの構成を示すブロック図である。
【図１８】実施の形態８のログオンチェックプログラムのフローチャートである。
【図１９】実施の形態８のユーザ情報管理サービスプログラムのフローチャートである。
【符号の説明】
１  ユーザ情報管理サーバ（第１のサーバ）、２  ユーザ情報管理サービスプログラム（第１のプログラム）、３  ユーザ情報管理ＤＢ（データベース）、４，４ａ  ユーザ情報管理テーブル、５ａ，５ｂ，５ｃ  サーバ（第２のサーバ）、６ａ，６ｂ，６ｃ  ユーザ情報更新エージェントプログラム（第２のプログラム）、７ａ、７ｂ、７ｃ  ユーザ情報リポジトリ、８ａ，８ｂ，８ｃ  新データ、９ａ，９ｂ，９ｃ  旧データ、１０  成功メッセージ、１１  失敗メッセージ、１２  サーバ情報管理テーブル、１３  階層依存マップ（ユーザ情報相関マップ）、１４  スケジュールファイル（更新計画テーブル）、１５  ログオンチェックプログラム（第３のプログラム）、１００，２００，３００，４００，５００  ユーザ情報同期システム。
【図１】
2004342039.tif 000003
【図２】
2004342039.tif 000004
【図３】
2004342039.tif 000005
【図４】
2004342039.tif 000006
【図５】
2004342039.tif 000007
【図６】
2004342039.tif 000008
【図７】
2004342039.tif 000009
【図８】
2004342039.tif 000010
【図９】
2004342039.tif 000011
【図１０】
2004342039.tif 000012
【図１１】
2004342039.tif 000013
【図１２】
2004342039.tif 000014
【図１３】
2004342039.tif 000015
【図１４】
2004342039.tif 000016
【図１５】
2004342039.tif 000017
【図１６】
2004342039.tif 000018
【図１７】
2004342039.tif 000019
【図１８】
2004342039.tif 000020
【図１９】
2004342039.tif 000021