(57)【特許請求の範囲】
【請求項１】
少なくとも１台のクライアントで利用されるデータを管理するデータベースを有し、該データベースで管理されるデータの中で指定した時刻以降の差分データを要求する第１取得要求と該差分データ以外のデータも含まれる該データベースのデータを要求する第２取得要求とを送信してくるクライアントと通信するサーバーであって、
前記データベースで管理されるデータのネットワーク上のバックアップ先に対するバックアップ処理を実行するバックアップ手段と、
前記バックアップ先から取得されたバックアップ済みデータを用いて前記データベースのリストア処理を実行するリストア手段と、
前記クライアントから、時間情報を含む前記第１取得要求を受信する受信手段と、
前記第１取得要求に含まれる時間情報が、前記バックアップ処理と前記リストア処理との間の時刻を示すか否かを判定する判定手段と、
前記第１取得要求に含まれる時間情報が前記バックアップ処理と前記リストア処理との間の時刻を示さないと判定された場合には、前記クライアントに対して、該時間情報で示す時刻以降の差分データを送信する送信手段と、
前記第１取得要求に含まれる時間情報が前記バックアップ処理と前記リストア処理との間の時刻を示すと判定された場合には、前記クライアントに対してエラー応答を送信する応答手段と、を有し、
前記送信手段は、前記エラー応答を受信した前記クライアントからの前記第２取得要求の受信に応答して、前記データベースに含まれる前記リストア処理でリストアされた全てのデータを前記クライアントに送信することを特徴とするサーバー。
【請求項２】
前記データベースには、前記クライアントのユーザーごとに登録された設定データが管理されることを特徴とする請求項１に記載のサーバー。
【請求項３】
前記サーバーは、プリンタを備えるデジタル複合機であることを特徴とする請求項１または２に記載のサーバー。
【請求項４】
少なくとも１台のクライアントで利用されるデータを管理するデータベースを有し、該データベースで管理されるデータの中で指定した時刻以降の差分データを要求する第１取得要求と該差分データ以外のデータも含まれる該データベースのデータを要求する第２取得要求とを送信してくるクライアントと通信するサーバーにおける方法であって、
前記データベースで管理されるデータのネットワーク上のバックアップ先に対するバックアップ処理を実行するバックアップ工程と、
前記バックアップ先から取得されたバックアップ済みデータを用いて前記データベースのリストア処理を実行するリストア工程と、
前記クライアントから、時間情報を含む前記第１取得要求を受信する受信工程と、
前記第１取得要求に含まれる時間情報が、前記バックアップ処理と前記リストア処理との間の時刻を示すか否かを判定する判定工程と、
前記第１取得要求に含まれる時間情報が前記バックアップ処理と前記リストア処理との間の時刻を示さないと判定された場合には、前記クライアントに対して、該時間情報で示す時刻以降の差分データを送信する送信工程と、
前記第１取得要求に含まれる時間情報が前記バックアップ処理と前記リストア処理との間の時刻を示すと判定された場合には、前記クライアントに対してエラー応答を送信する応答工程と、を有し、
前記エラー応答を受信した前記クライアントからの前記第２取得要求の受信に応答して、前記データベースに含まれる前記リストア処理でリストアされた全てのデータが前記クライアントに送信されることを特徴とする方法。
【請求項５】
請求項１乃至３のいずれか一項に記載のサーバーの各手段としてコンピュータを機能させるためのプログラム。
【請求項６】
少なくとも１台のクライアントで利用されるデータを管理するデータベースを有するサーバーと、該データベースで管理されるデータの中で指定した時刻以降の差分データを要求する第１取得要求と該差分データ以外のデータも含まれる該データベースのデータを要求する第２取得要求とを送信するクライアントとを含むデータ同期システムであって、
前記サーバーは、
前記データベースで管理されるデータのネットワーク上のバックアップ先に対するバックアップ処理を実行するバックアップ手段と、
前記バックアップ先から取得されたバックアップ済みデータを用いて前記データベースのリストア処理を実行するリストア手段と、
前記クライアントから、時間情報を含む前記第１取得要求を受信する受信手段と、
前記第１取得要求に含まれる時間情報が、前記バックアップ処理と前記リストア処理との間の時刻を示すか否かを判定する判定手段と、
前記第１取得要求に含まれる時間情報が前記バックアップ処理と前記リストア処理との間の時刻を示さないと判定された場合には、前記クライアントに対して、該時間情報で示す時刻以降の差分データを送信する送信手段と、
前記第１取得要求に含まれる時間情報が前記バックアップ処理と前記リストア処理との間の時刻を示すと判定された場合には、前記クライアントに対してエラー応答を送信する応答手段と、を有し、
前記クライアントは、前記エラー応答を受信した場合に、前記サーバーに対して前記第２取得要求を送信する要求手段を有し、
前記サーバーは、前記エラー応答を受信した前記クライアントからの前記第２取得要求の受信に応答して、前記データベースに含まれる前記リストア処理でリストアされた全てのデータを前記クライアントに送信することを特徴とするデータ同期システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置間でデータの差分同期を行う際の情報処理装置とデータ同期方法およびデータ同期システムに関するものである。
【背景技術】
【０００２】
従来、情報処理装置間でデータの同期をする方法として、ネットワーク上のデータ転送量を削減するために、差分情報のみで同期を行う差分同期の方法がある。差分同期を行っている場合、一方の情報処理装置のデータを、過去のデータをリストアして復旧したときに、リストアによって消えてしまったデータを別の情報処理装置のデータを用いて更新する技術が提案されている（特許文献１）。また、サーバーとクライアント間でデータの同期をとる場合において、クライアントのデータは一時的に使用するのみで、常にサーバーのデータをマスターとする同期システムも提案されており、例えば、ネットワークが断絶していてもクライアント側の一時データの差分を保持しておいて同期を行うシステムが提案されている（特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１１５００７号公報
【特許文献２】特開２０１３−２５０７５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の方法では、マスター（サーバー）側でバックアップデータをリストアした場合であっても、スレーブ（クライアント）側のデータを用いて復旧することを前提としているため、リストア後のマスターにシステム全体を同期させる同期処理は実現できなかった。また、従来技術のような復旧を行わなかったとしても、マスターをリストアしたことによって消えたデータをスレーブが差分同期で検知できず、同期が失われる問題があった。さらに、特許文献２のような構成であっても、クライアント側が一時データを差分として保持しているようなときにサーバー側のデータをリストアすると、クライアントの一時データを削除することができず、その一時データを差分としてサーバーが更新されるためシステム全体を戻すことができなかった。
【０００５】
本発明は上記従来例に鑑みて成されたもので、サーバーでバックアップデータをリストアした場合でも、システム内の同期を維持できる情報処理装置とデータ同期方法およびデータ同期システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために本発明は以下の構成を有する。すなわち、
少なくとも１台のクライアントで利用されるデータを管理するデータベースを有し、該データベースで管理されるデータの中で指定した時刻以降の差分データを要求する第１取得要求と該差分データ以外のデータも含まれる該データベースのデータを要求する第２取得要求とを送信してくるクライアントと通信するサーバーであって、
前記データベースで管理されるデータのネットワーク上のバックアップ先に対するバックアップ処理を実行するバックアップ手段と、
前記バックアップ先から取得されたバックアップ済みデータを用いて前記データベースのリストア処理を実行するリストア手段と、
前記クライアントから、時間情報を含む前記第１取得要求を受信する受信手段と、
前記第１取得要求に含まれる時間情報が、前記バックアップ処理と前記リストア処理との間の時刻を示すか否かを判定する判定手段と、
前記第１取得要求に含まれる時間情報が前記バックアップ処理と前記リストア処理との間の時刻を示さないと判定された場合には、前記クライアントに対して、該時間情報で示す時刻以降の差分データを送信する送信手段と、
前記第１取得要求に含まれる時間情報が前記バックアップ処理と前記リストア処理との間の時刻を示すと判定された場合には、前記クライアントに対してエラー応答を送信する応答手段と、を有し、
前記送信手段は、前記エラー応答を受信した前記クライアントからの前記第２取得要求の受信に応答して、前記データベースに含まれる前記リストア処理でリストアされた全てのデータを前記クライアントに送信することを特徴とするサーバーが提供される。
【０００８】
また他の側面によれば本発明は以下の構成を有する。
【０００９】
少なくとも１台のクライアントで利用されるデータを管理するデータベースを有するサーバーと、該データベースで管理されるデータの中で指定した時刻以降の差分データを要求する第１取得要求と該差分データ以外のデータも含まれる該データベースのデータを要求する第２取得要求とを送信するクライアントとを含むデータ同期システムであって、
前記サーバーは、
前記データベースで管理されるデータのネットワーク上のバックアップ先に対するバックアップ処理を実行するバックアップ手段と、
前記バックアップ先から取得されたバックアップ済みデータを用いて前記データベースのリストア処理を実行するリストア手段と、
前記クライアントから、時間情報を含む前記第１取得要求を受信する受信手段と、
前記第１取得要求に含まれる時間情報が、前記バックアップ処理と前記リストア処理との間の時刻を示すか否かを判定する判定手段と、
前記第１取得要求に含まれる時間情報が前記バックアップ処理と前記リストア処理との間の時刻を示さないと判定された場合には、前記クライアントに対して、該時間情報で示す時刻以降の差分データを送信する送信手段と、
前記第１取得要求に含まれる時間情報が前記バックアップ処理と前記リストア処理との間の時刻を示すと判定された場合には、前記クライアントに対してエラー応答を送信する応答手段と、を有し、
前記クライアントは、前記エラー応答を受信した場合に、前記サーバーに対して前記第２取得要求を送信する要求手段を有し、
前記サーバーは、前記エラー応答を受信した前記クライアントからの前記第２取得要求の受信に応答して、前記データベースに含まれる前記リストア処理でリストアされた全てのデータを前記クライアントに送信することを特徴とするデータ同期システムが提供される。
【発明の効果】
【００１０】
本発明によれば、サーバーのリストアを行ってもクライアントとの同期を維持することができる。
【図面の簡単な説明】
【００１１】
【図１】システム構成図
【図２】デジタル複合機内の構成を示すブロック図
【図３】サーバー内の構成を示すブロック図
【図４】データ同期サーバー処理プログラムのブロック構成図
【図５】データ同期クライアント処理プログラムのブロック構成図
【図６】バックアップ処理のフローチャート
【図７】リストア処理のフローチャート
【図８】データベースで管理するデータ例を示す図
【図９】リストア後のデータベースで管理するデータ例を示す図
【図１０】サーバー側データ同期処理フローチャート
【図１１】クライアント側データ同期処理フローチャート
【図１２】実施例３でのサーバー側データ同期処理フローチャート
【図１３】リスト情報データ例を示す図
【図１４】実施例４でのクライアント側データ同期処理フローチャート
【図１５】画面例を示す図
【発明を実施するための形態】
【００１２】
［第１実施形態］
＜システム構成＞
以下、本発明を実施するための形態について図面を用いて説明する。図１は、本発明に係るシステム全体を示すシステム構成図である。このデータ同期システムには、データの差分同期を行う情報処理装置としてデジタル複合機１１０ａ、デジタル複合機１１０ｂ、サーバー１２０ａが、さらにデータのバックアップ先としてサーバー１２０ｂがネットワーク１００に接続されており、互いに通信可能なシステムである。実施例によって、差分同期システムのサーバーがデジタル複合機１１０ａの場合とサーバー１２０ａの場合とがあるが、サーバーは他の装置であってもよく、いずれかの情報処理装置がサーバーとして動作していればよい。なおデジタル複合機１１０ａ、１１０ｂを総称してデジタル複合機１１０と呼び、サーバー１２０ａ、１２０ｂを総称してサーバー１２０と呼ぶ。システムにはサーバーもクライアントであるデジタル複合機も少なくとも１台含まれている。
【００１３】
図２は、デジタル複合機１１０の構成を示すブロック図である。デジタル複合機１１０は、コントローラユニット２００、操作部２２０、スキャナ２３０、プリンタ２４０を含んでいる。コントローラユニット２００には、操作部２２０が接続されるとともに、画像入力デバイスであるスキャナ２３０や画像出力デバイスであるプリンタ２４０が接続される。
【００１４】
コントローラユニット２００は、具体的には、プロセッサーであるＣＰＵ（中央処理ユニット）２０２を有し、ＣＰＵ２０２は、ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）２０６に格納されているブートプログラムによりＯＳ（オペレーティングシステム）を立ち上げる。コントローラユニット２００は、このＯＳ上で、ＨＤＤ（ハードディスクドライブ）２０５に格納されているアプリケーションプログラムを実行し、これによって各種処理を実行する。このＣＰＵ２０２の作業領域としてはＲＡＭ（ランダムアクセスメモリ）２０３が用いられる。ＨＤＤ２０５は、上記アプリケーションプログラムや各種データを格納する。
【００１５】
ＣＰＵ２０２には、システムバス２１０を介して、ＲＯＭ２０６およびＲＡＭ２０３とともに、操作部Ｉ／Ｆ２０１、デバイスＩ／Ｆ２０４、ネットワークＩ／Ｆ２０７、画像処理を実行する画像処理部２０８が接続される。
【００１６】
操作部Ｉ／Ｆ２０１は、タッチパネルを有する操作部２２０とのインタフェースである。操作部Ｉ／Ｆ２０１は、操作部２２０に表示する各種データなどの情報を送出したり、ユーザーにより入力された情報をＣＰＵ２０２に送出したりする。デバイスＩ／Ｆ２０４には、スキャナ２３０およびプリンタ２４０が接続され、データや制御信号の入出力が行われる。ネットワークＩ／Ｆ２０７は、ネットワーク１００に接続され、ネットワーク１００を介してネットワーク１００上の各情報処理装置との間で情報の入出力（すなわち送信および受信）を行う。画像処理部２０８では、スキャナからの入力画像処理やプリンタへの出力画像処理、画像回転、画像圧縮、解像度変換、色空間変換、階調変換などの処理を行う。
【００１７】
図３は、サーバー１２０の構成を示すブロック図である。同図において、ＣＰＵ３０１は情報処理装置の演算・制御をつかさどる。ＲＡＭ３０２は、ＣＰＵ３０１の主メモリとして、及び実行プログラムの領域や該プログラムの実行エリアならびにデータエリアとして機能する。ＲＯＭ３０３はＣＰＵ３０１の動作処理手順を記憶している。ＲＯＭ３０３には情報処理装置の機器制御を行うシステムプログラムである基本ソフト（ＯＳ）を記録したプログラムＲＯＭと、システムを稼働するために必要な情報等が記録されているデータＲＯＭがある。また、ＲＯＭ３０３の代わりに、後述のＨＤＤ３０９を用いる場合もある。ネットワークインターフェース（Ｎｅｔｗｏｒｋ）３０４は、ネットワーク１００を介して他の情報処理装置とのデータ送受信等の通信を行う。ＶＲＡＭ（ビデオＲＡＭ）３０５は、情報処理装置のディスプレイ３０６の画面に表示させるための画像を展開し、その表示の制御を行う。ディスプレイ３０６は液晶ディスプレイ等の表示装置である。ＫＢＣ３０７は外部入力装置３０８からの入力信号を制御するためのコントローラである。ＫＢ３０８は利用者が行う操作を受け付けるための外部入力装置（ＫＢ）のひとつであり、例えばキーボードやマウス等のポインティングデバイスが用いられる。ＨＤＤ３０９はハードディスクドライブであり、アプリケーションプログラムや各種データ保存用に用いられる。伝送バス３００は上述した各ユニット間を接続するためのバス（アドレスバス、データバス、入出力バス、及び制御バス）である。
【００１８】
＜データ同期アプリケーション＞
本発明の第１の実施形態では、デジタル複合機１１０ａ上でデータ同期サーバーアプリケーション４００が動作し、デジタル複合機１１０ａおよびデジタル複合機１１０ｂ上でデータ同期クライアントアプリケーション５００が動作する構成で説明する。なおデータ同期サーバーアプリケーションをデータ同期管理アプリケーションと呼ぶ場合もある。
【００１９】
図４は、デジタル複合機１１０ａで動作するデータ同期サーバー処理プログラム４００のブロック構成図である。データ同期サーバーアプリケーション４００は、デジタル複合機１１０ｂなどからの処理要求を受信し、処理結果を送信する通信処理部４０１、処理の制御を行う制御部４０２、通信処理部４０１で受付けた要求を解析する要求解析部４０３、データベース４１０で保持するデータのバックアップ処理を実行するバックアップ処理部４０４、バックアップ処理部４０４が作成したバックアップデータを用いてデータベース４１０で保持するデータのリストア処理を実行するリストア処理部４０５、処理要求に応じてデータベース４１０にアクセスして、データの作成／更新／削除／参照を実行するデータアクセス部４０６、を有する。データベース４１０で保持するデータは、ＨＤＤ２０５やＲＡＭ２０３などに保存される。
【００２０】
データ同期サーバーアプリケーション４００およびデータベース４１０は、ＲＡＭ２０３、ＨＤＤ２０５、ＲＯＭ２０６のいずれかの記憶手段に記憶され、ＣＰＵ２０２により実行される。
【００２１】
図５は、デジタル複合機１１０ａおよびデジタル複合機１１０ｂで動作するデータ同期クライアント処理プログラム５００のブロック構成図である。データ同期クライアントアプリケーション５００は、コピーやＦＡＸなどの各種アプリケーション４１０からの処理要求を受信する処理受付部５０１、処理の制御を行う制御部５０２、処理受付部５０１で受付けた要求をジョブとして管理するジョブ管理部５０３、ネットワークインターフェース（Ｎｅｔｗｏｒｋ）２０７を介してデジタル複合機１１０ａ上のデータ同期サーバーアプリケーション４００と通信を行う通信処理部５０４、差分同期に関する情報を管理する同期情報管理部５０５を有する。ジョブ管理部５０３および同期情報管理部５０５で管理する情報は、ＨＤＤ２０５やＲＡＭ２０３などに保存される。各種アプリケーション５１０は、操作部２２０に表示するデータを管理し、操作部２２０でユーザーから入力されたデータを保持するとともに、データ同期クライアントアプリケーション５００の処理受付部５０１にデータ更新内容を通知する。
【００２２】
データ同期クライアントアプリケーション５００および各種アプリケーション５１０は、ＲＡＭ２０３、ＨＤＤ２０５、ＲＯＭ２０６のいずれかの記憶手段に記憶され、ＣＰＵ２０２により実行される。
【００２３】
＜同期動作＞
デジタル複合機１１０ｂで、ユーザー操作やコピー／ＦＡＸなどのアプリケーション処理実行によってデータに変更が発生した場合、データ同期クライアントアプリケーション５００が変更内容をデジタル複合機１１０ａ上のデータ同期サーバーアプリケーション４００に送信する。また、データ同期クライアントアプリケーション５００は、データ同期サーバーアプリケーション４００にデータ更新があるかどうかを定期的、もしくは必要に応じて問い合わせ、更新されたデータがあれば差分データとして取得して、各種アプリケーション５１０に差分データを反映する。
【００２４】
例えばアドレス帳のＦＡＸ番号などのアドレスデータを、データ同期サーバーアプリケーション４００が管理しているとする。アドレスデータを同期処理の対象としてデジタル複合機１１０ａ、デジタル複合機１１０ｂでともに使用する場合、アドレスデータの同期処理は以下のように処理される。デジタル複合機１１０ａで、アドレス帳アプリケーションにより管理されているアドレスデータＡをユーザー等が変更した場合、変更したアドレスデータＡをデータ同期クライアントアプリケーション５００に通知する。データ同期クライアントアプリケーション５００は、デジタル複合機１１０ａ上のデータ同期サーバーアプリケーション４００に変更されたアドレスデータＡを送信する。データ同期サーバーアプリケーション４００は、受信したアドレスデータＡをデータベース４１０に保存する。これにより変更がデータ同期サーバーアプリケーション４００により管理するデータベース４１０に反映される。この時の日時が最終更新日時として記録される。その後、デジタル複合機１１０ｂのデータ同期クライアントアプリケーション５００から、デジタル複合機１１０ａ上のデータ同期サーバーアプリケーション４００に対して更新の問い合わせが実行される。更新の問い合わせは例えば定期的に行われる。問い合わせに応じて、データ同期サーバーアプリケーション４００は、先ほどのアドレスデータＡを更新データとしてデータ同期クライアントアプリケーション５００に送信する。データ同期クライアントアプリケーション５００は、アドレスデータＡを受信したら、アドレスデータを管理するアドレス帳アプリケーションに受信したアドレスデータＡを渡して、デジタル複合機１１０ｂ内のデータを更新する。すなわち、データ同期クライアントアプリケーション５００は、受信した更新データを、当該更新データを管理するアプリケーションに渡してデータを更新させる。同期されるデータとしてアドレスデータを例に説明したが、他のデータでも同様に処理することでデータの差分同期を実現する。また、データを管理するアプリケーション、たとえばアドレス帳管理アプリケーションに、データ同期クライアントアプリケーション５００が統合されていてもよい。
【００２５】
このように、本実施形態のデータ同期システムでは、データの更新があるとそれがクライアントからサーバーに通知されて更新がサーバーのデータベースに反映される。さらに、前記クライアントから差分の取得要求（あるいは更新の問い合わせ或いは更新要求とも呼ぶ）があると、それに応じて差分データ（あるいは更新データ）をサーバーがクライアントに応答する。クライアントは差分データを受信して、それをクライアントのデータベースに反映する。これによりサーバーとクライアントのデータベースの同期が維持される。なお、本実施形態のデータベースにおいても、データベースの更新等に際してレコード間の意味的な無矛盾性を維持するための、通常のデータベースと同様の仕組みを有することが望ましいが、本実施形態ではその手順の説明は省略する。
【００２６】
＜データ同期サーバーアプリケーションによるバックアップ処理＞
データ同期サーバーアプリケーション４００が、データベース４１０の管理データのバックアップ処理を実行する際の処理を、図６のフローチャートを用いて説明する。バックアップ処理の指示は、ユーザー指示などの外部からの指示であっても、スケジュールや状態変化イベントなどのデジタル複合機１１０内部からの指示であってもよい。
【００２７】
データ同期サーバーアプリケーション４００の制御部４０２は、バックアップ実行の指示を検知したら、データアクセス部４０６に対してデータベース４１０へのアクセスを止めるように指示する（ステップＳ６０１）。次に制御部４０２はバックアップ処理部４０４にバックアップを指示し、バックアップ処理部４０４はデータベース４１０にアクセスして、対象のファイルを特定する（ステップＳ６０２）。バックアップ処理部４０４は、対象ファイルのサイズと、バックアップ先の空き容量を比較して、バックアップ可能な空き容量があるかどうか判断する（ステップＳ６０３）。ここでバックアップ先がデジタル複合機１１０ａのＨＤＤ２０５の場合には、空き容量はファイルシステムに問い合わせることで把握でき、バックアップ先がネットワーク上のストレージの場合には、ネットワーク１００を介して問い合わせることで把握できる。本実施例では、デジタル複合機１１０ａのＨＤＤ２０５上にバックアップする場合を例にして、説明を行う。ステップＳ６０３でバックアップ処理部４０４が空き容量が足りていると判断した場合、バックアップ処理実行時のデジタル複合機１１０ａの現在の日時情報（これをバックアップポイントまたはバックアップ時点とも呼ぶ。）を特定して保持する（ステップＳ６０４）。次にステップＳ６０５として、バックアップ処理部４０４は、データベース４１０の対象ファイルをバックアップ先のディレクトリにコピーする。コピーされたバックアップファイルには、ステップＳ６０４で例えば実時間タイマ等から読み込まれ、保持されている日時情報が関連付けられる。対象ファイル全てのコピーが完了したらバックアップ処理部４０４は処理完了を制御部４０２に通知する。制御部４０２は、バックアップ処理完了を検知したら、データアクセス部４０６にデータベース４１０へのアクセス許可を通知して（ステップＳ６０６）処理終了となる。
【００２８】
ステップＳ６０３で空き容量が不足するとバックアップ処理部４０４が判断した場合、過去のバックアップファイルを削除するかどうかを判断する（ステップＳ６０７）。ここの判断は、ユーザー指示であってもよいし、過去のバックアップファイルの作成日時等から削除可能かどうかの判断であってもよい。ステップＳ６０７で削除するとバックアップ処理部４０４が判断した場合、ステップＳ６０８でバックアップ処理部４０４が過去のバックアップファイルを削除して、ステップＳ６０３に戻る。ステップＳ６０７で削除しないとバックアップ処理部４０４が判断した場合、バックアップ指示元にバックアップを実行できないことを通知して、バックアップ処理失敗を制御部４０２に通知する。制御部４０２は、バックアップ不可通知を検知したら、データアクセス部４０６にデータベース４１０へのアクセス許可を通知して（ステップＳ６０９）、処理終了となる。
【００２９】
なお、本実施例では、ファイルベースのデータベースの場合を例に説明を行ったが、データベース４１０にバックアップ機能がある場合には、ステップＳ６０２で対象ファイルを特定するのではなく、データベース４１０にバックアップを指示して、バックアップファイルを作成してもよい。また、データベース４１０へのアクセス禁止／許可の処理（ステップＳ６０１、ステップＳ６０６およびステップＳ６０９）はデータベース４１０が実施しても、データ同期サーバーアプリケーション４００が実施してもよい。また、フルバックアップではなく、差分バックアップの場合も同じように、ステップＳ６０２でバックアップ処理部４０４がデータベース４１０に差分バックアップファイルの作成を要求して、ファイルを特定してもよい。
【００３０】
＜データ同期サーバーアプリケーションによるリストア処理＞
次に、データ同期サーバーアプリケーション４００が、データベース４１０の管理データのリストア処理を実行する際の処理を、図７のフローチャートを用いて説明する。リストア処理の指示は、ユーザー指示などの外部からの指示であっても、データベース内の不整合検知による修復指示などのデータベース４１０やデータ同期サーバーアプリケーション４００などの内部からの指示であってもよい。
【００３１】
データ同期サーバーアプリケーション４００の制御部４０２は、リストア実行の指示を検知したら、データアクセス部４０６に対してデータベース４１０へのアクセスを止めるように指示する（ステップＳ７０１）。次に制御部４０２はリストア処理部４０５にリストア対象のファイルとリストア実行を指示し、リストア処理部４０５はバックアップデータを特定して、それに関連付けられて保存されているバックアップ実行日時を特定し、保持する（ステップＳ７０２）。次に、リストア処理部４０５は、リストア処理実行日時としてデジタル複合機１１０ａの現在の日時情報（これをリストアポイントまたはリストア時点とも呼ぶ。）を特定して保持する（ステップＳ７０３）。ステップＳ７０４として、リストア処理部４０５はデータベース４１０にアクセスして、データベース４１０で管理する情報のうち、データ同期クライアントアプリケーション５００が動作する全デジタル複合機１１０の補正時間情報を、図８に示すクライアント装置情報８１０から取得して、保持しておく。
【００３２】
＜データベースの例＞
データベース４１０で管理するデータ例を図８に示す。クライアント装置情報８１０には、データベース同期サーバーアプリケーション４００とデータ同期処理を行っているデータ同期クライアントアプリケーション５００が動作する情報処理装置の情報（識別子（装置ＩＤ）８１１，（識別ＩＤ）８１２や名称８１３、当該情報処理装置への最終アクセス日時８１４など）が登録されている。クライアント装置情報８１０には、サーバーとクライアントの日時情報の差分を補正するための補正時間情報８１５も登録されている。なお、本例ではクライアント装置情報８１０はデータ同期サーバーアプリケーション４００のためのデータであって同期の対象としていないが、クライアントと共有する場合には同期の対象とすることができる。装置設定データ８２０には、情報処理装置が動作するために使用している各種設定データ（表示言語設定や標準プリント設定など）が、設定示すキー（Ｋｅｙ）８２１および対応する値（Ｖａｌｕｅ）８２２として登録されている。また、装置設定データ８２０には、対応する装置ＩＤ８２３、当該項目の最終更新日時８２４、データ更新日時８２５なども登録されている。最終更新日時８２４はクライアントにおいて当該データが最後に更新された日時であり、データ更新日時８２５は、その更新がデータベース４１０にコミットされた日時である。ユーザー認証用データ８３０には、情報処理装置を使用するための認証処理で使用されるユーザー識別情報（ＩＤ８３１／パスワード８３２）、ユーザー名称８３３やユーザーの権限、所属グループなどの情報が登録されている。また当該項目の最終更新日時８３４、データ更新一時８３５なども登録されている。ユーザー設定データ８４０には、ユーザー毎に登録された設定データ（アドレス帳のアドレスデータなど）が、設定示すキー（Ｋｅｙ）８４１および対応する値（Ｖａｌｕｅ）８４２として登録されている。また、ユーザー設定データ８４０には、対応する装置ＩＤ８４３、当該項目の最終更新日時８４４、データ更新一時８４５なども登録されている。
【００３３】
さて、図７に戻って、補正時間情報の退避が完了したら、リストア処理部４０５は、バックアップデータのファイルをデータベース４１０が管理する管理ファイルと差し替えてリストアを行い、データの不整合が無いかチェックする（ステップＳ７０５）。ステップＳ７０６では、リストア処理部４０５はデータベース４１０に、リストアしたデータの最終更新日時をステップＳ７０３で保持しておいたリストア実施日時で更新するように指示する。データベース４１０の処理が完了したら、ステップＳ７０７では、ステップＳ７０４で保持していた各デジタル複合機１１０の補正時間情報をリストア後のデータに対してそれぞれ適用するように、リストア処理部４０５がデータベース４１０に更新を指示する。補正時間情報の適用により、装置間の時間のずれが補正される。データベース４１０の処理が完了したら、リストア処理部４０５は、リストア前のデータベース４１０が管理していた管理ファイルを削除して、制御部４０２にリストア完了を通知する。制御部４０２はリストア完了を検知あるいは受信したら、データアクセス部４０６にデータベース４１０へのアクセス許可を通知して（ステップＳ７０８）処理終了となる。
【００３４】
バックアップ処理同様、本実施例では、ファイルベースのデータベースの場合を例に説明を行ったが、データベース４１０にリストア機能がある場合には、ステップＳ７０５で対象ファイルを差し替えるのではなく、データベース４１０に対象ファイルを渡してリストアを指示して、リストア処理を実行してもよい。また、差分バックアップの場合には、フルバックアップ時のデータと差分バックアップのデータからリストアするためのデータをデータベース４１０等で生成したのち、ステップＳ７０５の処理を実行してもよい。また、バックアップ時同様、データベース４１０へのアクセス禁止／許可の制御をデータベース４１０で実施してもデータ同期サーバーアプリケーション４００で実施してもよい。
【００３５】
図８のデータベース４１０で管理するデータ例に対して「2014/08/27 13:00:00.112」にバックアップ処理を実行し、リストア処理を「2014/08/28 08:00:00.225」に実行したときに、リストア処理後のデータを図９に示す。ステップＳ７０３で特定したリストア処理時間「2014/08/28 08:00:00.225」が、ステップＳ７０６で各データの最終更新日時に更新される。ここで、図７のリストア処理はデジタル複合機１１０ａで行われており、クライアント装置情報８１０から読み取られて保持されているデジタル複合機１１０ａの補正時間８１５の値はクライアント装置情報８１０に示される通り０である。そのため、補正前後の最終更新日時は同じ値である。
【００３６】
例えば、バックアップ処理の日時「2014/08/27 13:00:00.112」より後、かつリストア処理を「2014/08/28 08:00:00.225」より前の日時「2014/08/27 14:00:00.456」に、デジタル複合機１１０ｂで、ユーザー設定データ「fax_address_1」の値を「023-456-7890」に更新していたとする。そのとき、デジタル複合機１１０ｂがネットワークに接続されておらず、データ同期クライアントアプリケーション５００とデータ同期サーバーアプリケーション４００とが通信できなかった場合、デジタル複合機１１０ｂのデータ同期クライアントアプリケーション５００は「2014/08/27 14:00:00.456」に更新されたユーザー設定データとして、ジョブ管理部５０３にデータを保持しておく。リストア実行後の「2014/08/28 10:00:00.123」にデジタル複合機１１０ｂがネットワークに接続されて通信できるようになると、デジタル複合機１１０ｂのデータ同期クライアントアプリケーション５００はデータ同期サーバーアプリケーション４００に対して「2014/08/27 14:00:00.456」に更新されたユーザー設定データの更新を要求する。データ同期サーバーアプリケーション４００では、受信した更新要求から、データベース４１０で管理するユーザー設定データ「fax_address_1」を更新するかどうか、データアクセス部４０６が判断する。ここでリストア後の「fax_address_1」の最終更新日時が「2014/08/28 08:00:00.225」であり、更新を要求されたデータ、すなわち更新対象のデータの更新日時「2014/08/27 14:00:00.456」よりも後に更新されているとデータアクセス部４０６は判断する。このためデータアクセス部４０６はデータベース４１０へのデータ更新要求を行わずに処理成功とする。すなわち、デジタル複合機１１０ｂにおいて「2014/08/27 14:00:00.456」において行われた更新はデータベースに反映されず破棄される。このように、リストア処理実施前にクライアントで保持されていた処理内容すなわち更新データが存在したとしても、データ同期サーバーアプリケーション４００により管理されるデータベースをリストア処理直後の状態に維持することが可能である。
【００３７】
＜データ同期サーバーアプリケーションによる同期要求の処理＞
次に、リストア処理を「2014/08/28 08:00:00.225」に実行した後、デジタル複合機１１０ａとデジタル複合機１１０ｂとがそれぞれデータの差分同期のためのデータ取得要求（すなわち同期要求）を実施した場合の処理を図１０のフローチャートを用いて説明する。ここで、デジタル複合機１１０ａはリストア直前の「2014/08/28 07:59:10.487」に最後の差分データの取得要求（すなわち更新要求）を実行している。この最後の差分データの取得要求の日時を同期要求ポイント又は同期要求時点とも呼ぶ。一方デジタル複合機１１０ｂは、バックアップ処理より前の「2014/08/27 10:54.14.369」に最後の差分データの取得要求を行って以来、差分データの取得要求を実行していないとする。なお最後の差分データの取得要求の日時は、最後の同期の日時であり、最後の同期以降は同期が行われていないことを示す。データ同期クライアントアプリケーション５００の通信処理部５０４は、データ同期サーバーアプリケーション４００に対して更新の問い合わせ、すなわちデータの差分取得要求を行う際に、データ同期クライアントアプリケーション５００の同期情報管理部５０５が保持しているデータ毎の最後のデータ取得日時（最終取得日時）、すなわち最後に同期処理を行った際の差分データの取得日時を添付して送信する。なおデータの差分取得要求に添付された最終取得日時を、その日時以降に発生した差分を要求するという意味で、要求日時とも呼ぶ。
【００３８】
まず、デジタル複合機１１０ａのデータ同期クライアントアプリケーション５００から、最終取得日時である「2014/08/28 07:59:10.487」以降に生じた差分データに対する取得要求を受信した場合の、データ同期サーバーアプリケーション４００の処理について説明する。データ同期サーバーアプリケーション４００の通信処理部４０１が、データ同期クライアントアプリケーション５００からの要求を受信したら制御部４０２に要求受信を通知する（ステップＳ１００１）。制御部４０２は受信した要求を要求解析部４０３に渡し、要求の解析を依頼する。要求解析部４０３は、受信した要求から、要求元の装置がデジタル複合機１１０ａであることと、要求内容、たとえば要求を示す情報や要求に添付された要求日時「2014/08/28 07:59:10.487」を特定する（ステップＳ１００２）。制御部４０２は、要求解析部４０３から解析結果を取得したら、それが差分データ取得要求であるかどうかを判断（判定）する（Ｓ１００３）。差分データ取得要求だと制御部４０２が判断したら、差分要求に添付された要求日時「2014/08/28 07:59:10.487」を保持する（ステップＳ１００４）。ステップＳ１００５では、制御部４０２は、リストア処理部４０５からステップＳ７０２で特定したバックアップの行われた日時情報と、ステップＳ７０３で特定したリストア実施日時とを取得する。そして、要求日時が、バックアップ日時とリストア日時との間に含まれるかどうかを判断する（ステップＳ１００６）。要求日時がバックアップ日時とリストア日時の間になる場合には、制御部４０２は、要求元に対してデータ不整合エラーを応答するように通院処理部４０１に指示する。この場合には、クライアントの最後の更新がサーバーのバックアップとリストアとの間に行われており、サーバーのリストアによりクライアントのデータベースとサーバーのデータベースとの間に不整合を生じているためである。この例では要求日時「2014/08/28 07:59:10.487」は、バックアップ日時「2014/08/27 13:00:00.112」とリストア日時「2014/08/28 08:00:00.225」との間になる。したがって要求処理部４０１は、要求元であるデータ同期クライアントアプリケーション５００に対してデータ不整合エラーを応答し（ステップＳ１００７）、処理終了となる。
【００３９】
デジタル複合機１１０ａのデータ同期クライアントアプリケーション５００の通信処理部５０４は、データ同期サーバーアプリケーション４００からデータ不整合エラーが返却されてきたことを検知したら、同じデータに関して、差分データではなく、対象のデータファイル全体を要求する全データ取得要求をデータ同期サーバーアプリケーション４００に対して送信する。
【００４０】
データ同期サーバーアプリケーション４００が全データ取得要求を受信した場合、前述同様処理が実行されて、ステップＳ１００３で、制御部４０２が、受信した要求は差分データ取得要求ではないと判断する。その場合、制御部４０２は、データアクセス部４０６に対して全データ取得要求処理を依頼する。データアクセス部４０６は、処理実行時のデータ同期サーバーアプリケーション４００が動作するデジタル複合機１１０ａの日時を特定して保持しておく（ステップＳ１００８）。データアクセス部４０６は、データベース４１０に対してデータ取得要求を行い、要求されたデータを全て取得する（ステップＳ１００９）。データアクセス部４０６は取得したデータとステップＳ１００８で保持した日時情報を制御部４０２に応答し、制御部４０２は通信処理部４０１に取得したデータを要求元に送信するよう依頼する。通信処理部４０１は、日時情報とデータを所定のフォーマットに変換して、処理結果として要求元のデータ同期クライアントアプリケーション５００に送信し（ステップＳ１０１０）、処理終了となる。
【００４１】
データ同期クライアントアプリケーション５００は、通信処理部５０４で応答データを受信したら、通信処理部５０４が応答データを解析する。通信処理部５０４は、解析して特定した応答データを対象のアプリケーション５１０に通知し、アプリケーション５１０は、保持していたデータを削除して、新たにデータ同期サーバーアプリケーション４００から送信された応答データを登録する。また、通信処理部５０４は、解析して特定した日時情報で同期情報管理部５０５に最終データ取得日時情報の更新を依頼し、同期情報管理部５０５は保持していた最終データ取得日時情報を更新する。この日時情報が次回の要求日時となる。以上の手順によりデータ同期サーバーアプリケーション４００のデータベース４１０とクライアントのデータとが同期される。
【００４２】
次に、デジタル複合機１１０ｂのデータ同期クライアントアプリケーション５００から「2014/08/27 10:54.14.369」以降の差分データに対する取得要求を受信した場合の、データ同期サーバーアプリケーション４００の処理について図１０に即して説明する。手順は上述した通りであるので、一部簡潔に説明する。データ同期サーバーアプリケーション４００の通信処理部４０１が、データ同期クライアントアプリケーション５００からの差分データ取得要求を受信したら制御部４０２に要求受信を通知し、前述と同様の処理を実行する。差分要求日時「2014/08/27 10:54.14.369」がバックアップ日時よりも前の日時であるため、ステップＳ１００６で、制御部４０２は、要求日時はバックアップ日時とリストア日時の間にならないと判断し、ステップＳ１０１１に進む。ステップＳ１０１１では、制御部４０２は、データアクセス部４０６に対して、「2014/08/27 10:54.14.369」以降の差分データ取得要求を指示する。データアクセス部４０６は差分データ取得要求を受けたら、処理実行時のデータ同期サーバーアプリケーション４００が動作するデジタル複合機１１０ａの日時を特定して保持しておく（ステップＳ１０１１）。データアクセス部４０６は、データベース４１０に対して「2014/08/27 10:54.14.369」以降に更新されたデータの取得要求を行い、「2014/08/27 10:54.14.369」以降に生じた差分データを取得する（ステップＳ１０１２）。データアクセス部４０６は取得した差分データとステップＳ１０１１で保持した日時情報を制御部４０２に応答し、制御部４０２は通信処理部４０１に取得したデータを要求元に応答するよう依頼する。通信処理部４０１は、日時情報とデータを所定のフォーマットに変換して、処理結果として要求元のデータ同期クライアントアプリケーション５００に送信し（ステップＳ１０１３）、処理終了となる。
【００４３】
データ同期クライアントアプリケーション５００は、通信処理部５０４で応答データを受信したら、通信処理部５０４がデータを解析する。通信処理部５０４は、解析して特定したデータを対象のアプリケーション５１０に通知し、アプリケーション５１０は、保持していたデータを更新する。また、通信処理部５０４は、解析して特定した日時情報で同期情報管理部５０５に最終データ取得日時情報の更新を依頼し、同期情報管理部５０５は保持していた最終データ取得日時情報を更新する。この手順により、差分データを用いて、サーバーのデータベースとクライアントのデータベースとを同期することができる。なお要求日時がリストア日時よりも新しい場合は、リストア後のサーバーのデータベースとクライアントのデータベースとは既に同期済みであると判断できるため、この場合にも差分データのみで同期が可能である。
【００４４】
以上説明したように、サーバーのマスターデータをバックアップデータでリストアした場合、バックアップからリストアまでの期間にのみ存在したデータを保持しているクライアントに対してはエラーを返すことでクライアントのデータを破棄させて、データの不整合を解消できる。さらに、バックアップからリストアまでの期間にのみ存在したデータを保持していないクライアントに対しては、通常の差分同期処理を継続可能であるため、無駄な通信を行う必要がない。
【００４５】
本実施例では、ステップＳ１００７でデータ不整合エラーを応答するとしたが、ステップＳ１００８とステップＳ１００９の処理を実行して、全データと日時情報に加えてデータ不整合エラーの情報を応答しても構わない。その場合、データ同期クライアントアプリケーション５００は、全データ取得要求を行うのではなく、受信したデータと日時情報を用いてクライアントの保持するデータを削除して再登録すればよい。そうすることで、通信回数を減らすことが可能である。
【００４６】
なお上述した同期要求が、差分データを要求する要求と、対象データの全体を要求する要求とを含むものとみなすこともできる。
【００４７】
［第２の実施形態］
本発明の第２の実施形態では、データ不整合エラーを受信した際のデータ同期クライアントアプリケーション５００の処理が第１の実施形態と異なるため、異なる処理について説明を行う。
【００４８】
データ同期クライアントアプリケーション５００がデータ不整合エラーを受信した際の処理を図１１のフローチャートを用いて説明する。通信処理部５０４は、データ不整合エラーを受信したら要求したデータの種別が何であったかの判断を行う（ステップＳ１１０１）。ここで、たとえばユーザー認証用データ８３０のように、デジタル複合機１１０の機種によらず固定のデータ形式となるデータであると判断した場合、ステップＳ１１０２に進む。ステップＳ１１０２では、第１の実施形態と同様、通信処理部５０４が全データの取得を要求する。そして全データを取得したら対象のアプリケーション５１０にデータを通知し、アプリケーションが保持していた全キャッシュデータを削除して（ステップＳ１１０３）、取得したデータを登録して（ステップＳ１１０４）、同期処理終了となる。このとき最終データ同期日時も更新される。
【００４９】
ステップＳ１１０１で、同じくデジタル複合機１１０の機種によらず固定のデータ形式となるデータであるが、ユーザーやグループなどの単位でデータの取得要求を行うようなデータ（例えばユーザー設定データ８４０）の場合には、ステップＳ１１０５に進む。通信処理部５０４は、差分取得要求でデータ不整合エラーとなったユーザー／グループの全データ取得要求をデジタル複合機１１０ａ上のデータ同期サーバーアプリケーション４００に要求する。通信処理部５０４は、データ同期サーバーアプリケーション４００から要求したユーザー／グループの全データを取得したら受信したデータを解析する（ステップＳ１１０５）。通信処理部５０４は、解析して特定したデータを対象のアプリケーション５１０に通知し、アプリケーション５１０は、保持していたデータのうち、該当のユーザー／グループのデータのみを削除して（ステップＳ１１０６）、取得したデータを登録する（ステップＳ１１０７）。また、通信処理部５０４は、解析して特定した日時情報で同期情報管理部５０５に該当ユーザー／グループの最終データ取得日時情報の更新を依頼し、同期情報管理部５０５はユーザー／グループ単位で保持している最終データ取得日時情報を更新し（ステップＳ１１０７）、処理終了となる。
【００５０】
ステップＳ１１０１で、デジタル複合機１１０の機種やバージョンなどによって必要な設定値の種類や個数などに違いがあるデータの場合（例えば装置設定データ８２０）、すなわち項目の種類や数などのデータ形式が更新によって変化する可能性がある場合には、ステップＳ１１０８に進む。通信処理部５０４は、差分データ取得ではなく全データ取得要求を送信し、該当データの全データを取得する。通信処理部５０４は、取得したデータを対象のアプリケーション５１０に通知し、アプリケーション５１０は取得したデータで保持しているデータを更新する（ステップＳ１１０８）。このとき保持していたデータの削除は行わない。次に、通信処理部５０４は、デジタル複合機１１０ａのデータ同期サーバーアプリケーション４００に対して、対象データの全削除を要求する（ステップＳ１１０９）。データ同期サーバーアプリケーション４００は、全削除要求を受信したら、データベース４１０で保持している対象データを削除して、結果を応答する。次に、データ同期クライアントアプリケーション５００の通信処理部５０４は、アプリケーション５１０から保持している全データを取得して、そのデータでデジタル複合機１１０ａのデータ同期サーバーアプリケーション４００に全データの作成を要求する（ステップＳ１１１０）。データ同期サーバーアプリケーション４００は、受け付けたデータをデータベース４１０に登録して処理結果を応答し、処理終了となる。
【００５１】
以上説明したように、装置設定データ８２０のような、デジタル複合機１１０のシステムバージョンが更新されたときにデータのＫｅｙが増加されていくようなものに関しては、バックアップデータをデータベースにリストアすることによって、クライアントにしか増加したＫｅｙが存在しないようなケースが発生する。そのような場合であっても、サーバーのデータを反映した上で、クライアントの保持している全ＫｅｙとＶａｌｕｅでサーバーのデータを更新することで、データの不整合を解消することができる。さらに、ユーザー／グループ単位で扱うユーザー設定データのようなデータの場合には、全データを取得しなおすのではなく、ユーザー／グループ単位で必要なデータのみを再取得して不整合を解消できる。
【００５２】
［第３の実施形態］
本発明の第３の実施例では、データ同期サーバーアプリケーション４００がデータ不整合エラーを応答する判断処理が第１の実施形態とは異なるため、異なる処理について説明を行う。
【００５３】
第１、第２の実施形態では、デジタル複合機１１０ａ上でデータ同期サーバーアプリケーション４００が動作するとして説明していたが、本実施例では、サーバー１２０ａ上でデータ同期サーバーアプリケーション４００が動作する。
【００５４】
第１実施形態と同様、図８のデータベース４１０で管理するデータ例に対して「2014/08/27 13:00:00.112」にバックアップ処理を実行し、リストア処理を「2014/08/28 08:00:00.225」に実行する。そして、デジタル複合機１１０ａとデジタル複合機１１０ｂとがそれぞれデータの差分同期のためのデータ取得要求を実施した場合の処理を図１２のフローチャートを用いて説明する。ここで、デジタル複合機１１０ａはリストア直前の「2014/08/28 07:59:10.487」に差分データの取得要求を実行していて、デジタル複合機１１０ｂは「2014/08/27 10:54.14.369」以降、差分データの取得要求を実行していなかったとする。
【００５５】
まず、デジタル複合機１１０ａのデータ同期クライアントアプリケーション５００から「2014/08/28 07:59:10.487」以降の差分データに対する取得要求を受信した場合の、サーバー１２０ａ上のデータ同期サーバーアプリケーション４００の処理について図１２を参照して説明する。データ同期サーバーアプリケーション４００の通信処理部４０１が、データ同期クライアントアプリケーション５００からの要求を受信したら制御部４０２に要求受信を通知する（ステップＳ１２０１）。制御部４０２は受信した要求を要求解析部４０３に渡し、要求の解析を依頼する。要求解析部４０３は、受信した要求から、要求元のデジタル複合機がデジタル複合機１１０ａであることと、要求が「2014/08/28 07:59:10.487」以降の差分データ取得要求であることを特定する（ステップＳ１２０２）。制御部４０２は、要求解析部４０３から解析結果を取得したら、それが差分データ取得要求であるかどうかを判断する（Ｓ１２０３）。差分データ取得要求だと制御部４０２が判断したら、制御部４０２はリストア処理部４０５から未アクセスクライアントリスト情報を取得する（ステップＳ１２０４）。リストア処理部４０５が保持する未アクセスクライアントリスト情報は、リストア処理を実行したときに、データベース４１０にリストア処理部４０５がアクセスして、クライアント装置情報のリストを取得して生成する。
【００５６】
リストア処理部４０５は、リストア処理を行った際に、リストア処理とは不可分的にクライアント装置情報８１０にアクセスし、その装置ＩＤを取得し、装置ＩＤごとに、それぞれの装置で保持されているデータを関連付けた初期の未アクセスクライアントリストを作成する。ここでいうデータとは、全データ更新時に単位となる例えばデータファイルである。未アクセスクライアントリスト情報のデータ例を図１３に示す。未アクセスクライアントリスト情報では、クライアント装置と対象データの組み合わせで管理されている。図１３は本システムにおける未アクセスクライアントリスト情報の初期値の例である。すべてのクライアント装置と、該クライアント装置のデータとがリストに含まれている。
【００５７】
ステップＳ１２０５では、制御部４０２は、ステップＳ１２０２で特定した要求元のデジタル複合機１１０ａと要求内容の対象データ（例えば「Ｕｓｅｒ１」のユーザー設定データだったとする）の組み合わせが、未アクセスクライアントリスト情報に存在するかどうかを判断する。存在すると制御部４０２が判断した場合には、リストア処理部４０５に対して「デジタル複合機１１０ａ」で「ユーザー設定データ」の情報を未アクセスクライアントリスト情報から削除するように要求する。リストア処理部は、保持している未アクセスクライアントリスト情報を更新して、処理結果を制御部４０２に返す（ステップＳ１２０６）。制御部４０２は、通信処理部４０１にデータ不整合エラーを返却するように依頼し、通信処理部４０１は要求元のデジタル複合機１１０ａに対してデータ不整合エラーを応答して（ステップＳ１２０７）、処理終了となる。
【００５８】
デジタル複合機１１０ａのデータ同期クライアントアプリケーション５００の通信処理部５０４は、データ同期サーバーアプリケーション４００からデータ不整合エラーが返却されてきたことを検知したら、同じデータに関して、差分データではなく全データ取得要求（「Ｕｓｅｒ１」のユーザー設定データ全取得要求）をデータ同期サーバーアプリケーション４００に対して送信する。
【００５９】
データ同期サーバーアプリケーション４００が全データ取得要求を受信した場合、前述同様処理が実行されて、ステップＳ１２０３で、制御部４０２が差分データ取得要求ではないと判断する。その場合、制御部４０２は、データアクセス部４０６に対して全データ取得要求処理を依頼する。データアクセス部４０６は、処理実行時のデータ同期サーバーアプリケーション４００が動作するサーバー１２０ａの日時を特定して保持しておく（ステップＳ１２０８）。データアクセス部４０６は、データベース４１０に対してデータ取得要求を行い、要求されたデータを全て取得する（ステップＳ１２０９）。データアクセス部４０６は取得したデータとステップＳ１２０８で保持した日時情報を制御部４０２に応答し、制御部４０２はリストア処理部４０５に未アクセスクライアントリスト情報から要求元の情報処理装置と要求対象データの組み合わせを削除するよう依頼する（ステップＳ１２１０）。ここで、未アクセスクライアントリスト情報に該当データがなければそのまま成功とする。未アクセスクライアントリスト情報が更新できたら、制御部４０２は通信処理部４０１に取得したデータを要求元に送信するよう依頼する。通信処理部４０１は、日時情報とデータを所定のフォーマットに変換して、処理結果として要求元のデータ同期クライアントアプリケーション５００に送信し（ステップＳ１２１１）、処理終了となる。
【００６０】
データ同期クライアントアプリケーション５００は、通信処理部５０４で応答データを受信したら、通信処理部５０４がデータを解析する。通信処理部５０４は、解析して特定したデータを対象のアプリケーション５１０に通知し、アプリケーション５１０は、保持していたデータを削除して、新たにデータ同期サーバーアプリケーションから応答されたデータを登録する。ここで、取得したユーザー設定データは「Ｕｓｅｒ１」だけであるが、アプリケーション５１０は、全ユーザー／グループのユーザー設定データを削除する。また、通信処理部５０４は、解析して特定した日時情報で同期情報管理部５０５に最終データ取得日時情報の更新を依頼し、同期情報管理部５０５は保持していた全ユーザー／グループの最終データ取得日時情報を削除して、更新依頼を受けたユーザーの最終データ取得日時情報を更新する。
【００６１】
次に、デジタル複合機１１０ｂのデータ同期クライアントアプリケーション５００から「2014/08/27 10:54.14.369」以降の差分データに対する取得要求を受信した場合の、データ同期サーバーアプリケーション４００の処理について説明する。第１実施形態の場合には、ステップＳ１００６の判断に違いが出たが、本実施形態の場合には、デジタル複合機１１０ａのときと同じ処理となる。例えば、デジタル複合機１１０ｂの場合には対象データがユーザー認証用データであったとしたら、未アクセスクライアントリストから「D00002」の「ユーザー認証用データ」の組み合わせがリストから削除される。そして、データ同期クライアントアプリケーション５００の通信処理部５０４が、不整合エラー応答に応じて、ユーザー認証用データを全取得して対象のアプリケーション５１０に通知し、アプリケーション５１０は、保持していたデータを更新し、同期情報管理部５０５が最終データ同期日時を更新する。
【００６２】
以上説明したように、リストア処理実施後の最初の差分取得要求時にはデータ不整合エラーを返すようにすることで、データ同期の不整合を解消することが可能である。
【００６３】
［第４の実施形態］
本発明の第４の実施形態は、データ不整合エラーを受信した際のデータ同期クライアントアプリケーション５００の処理と、データ同期サーバーアプリケーション４００が応答するデータが異なるため、異なる処理について説明を行う。なお以下の説明でサーバーとは、デジタル複写機１１０またはサーバー１２０のいずれであってもよい。
【００６４】
データ不整合エラーを受信した際のデータ同期クライアントアプリケーション５００の処理を図１４のフローチャートを使用して説明する。データ同期サーバーアプリケーション４００がデータ不整合エラーを応答すると判断した場合、本実施形態ではデータ不整合エラーの情報とともに、ステップＳ１００５で特定したバックアップデータの日時情報を合わせて要求元に応答する。データ同期クライアントアプリケーション５００がデータ不整合エラーを受信した場合、データ同期サーバーアプリケーション４００から応答されたバックアップデータの日時情報を、通信処理部５０４が応答データから取得する（ステップＳ１４０１）。通信処理部５０４は、データ不整合エラーであることとバックアップデータの日時情報を使用して、デジタル複合機１１０の操作部２２０に選択ダイアログ（ユーザーインターフェース）を表示する。表示されるダイアログ例を図１５に示す。選択ダイアログ１５０１には、取得したバックアップデータの日時情報を使用して、サーバーのデータがいつの時点に戻っているかが表示される。さらに、再取得ボタン１５０２と再登録ボタン１５０３とが表示される。デジタル複合機１１０を使用しているユーザーは、デジタル複合機１１０内のデータを破棄してサーバーのデータを取得する（再取得ボタン１５０２を選択）か、デジタル複合機１１０内にあるデータをサーバーに再登録する（再登録ボタン１５０３を選択）か、選択する。選択結果を通信処理部５０４が検知したら、選択された内容に応じた処理を実行する（ステップＳ１４０３）。再取得ボタン１５０２を選択された場合、ステップＳ１４０５に進み、第１実施形態で説明した処理と同様、サーバーから対象データを全取得して、デジタル複合機１１０内のデータを破棄し、全取得したデータをデジタル複合機１１０内に登録しなおして同期処理は終了となる。再登録ボタン１５０３が選択された場合、ステップＳ１４０４に進む。ステップＳ１４０４では、通信処理部５０４が、アプリケーション５１０から対象データを全て取得して、データ同期サーバーアプリケーション４００に対して、データの更新要求を行う。データ同期サーバーアプリケーション４００は、受信したデータを用いてデータベース４１０に保持しているデータを全て更新し、結果を応答する。通信処理部５０４が更新要求成功を受信したら同期処理は終了となる。
【００６５】
以上説明したように、デジタル複合機１１０の管理者が管理するデータではなく、デジタル複合機１１０を使用するユーザーが管理するデータに関しては、管理者がサーバーのデータをリストアしたからといって、強制的にユーザーが登録したデータもバックアップ時に戻すのではなく、ユーザーが選択できるようにできる。
【００６６】
［その他の実施例］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６７】
１１０ａ：デジタル複合機、１２０ａ：サーバー、４００：データ同期サーバアプリケーション、５００：データ同期クライアントアプリケーション、４１０：データベース５１０：アプリケーション
【図１】
0006506527.tif 000002
【図２】
0006506527.tif 000003
【図３】
0006506527.tif 000004
【図４】
0006506527.tif 000005
【図５】
0006506527.tif 000006
【図６】
0006506527.tif 000007
【図７】
0006506527.tif 000008
【図８】
0006506527.tif 000009
【図９】
0006506527.tif 000010
【図１０】
0006506527.tif 000011
【図１１】
0006506527.tif 000012
【図１２】
0006506527.tif 000013
【図１３】
0006506527.tif 000014
【図１４】
0006506527.tif 000015
【図１５】
0006506527.tif 000016