(57)【要約】【課題】ＨＤＤを交換した場合や、新規にサーバー機能を有効化した場合等にも各クライアントからの更新要求の順序を保証できるようにする。【解決手段】サーバー装置は、時刻補正要否情報に基づきクライアント装置の時刻の補正を行うか否かを判定する判定手段と、判定手段によりクライアント装置の時刻の補正を行うと判定された場合、時刻の補正要求をクライアント装置に送信する送信手段と、を有する。クライアント装置は、サーバー装置より時刻の補正要求を受信した場合、サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う時刻補正手段と、時刻補正処理の終了後、同期処理を再開する制御手段と、を有する。【選択図】図８Ａ
2018073283.tif 000002
【特許請求の範囲】
【請求項１】
サーバー装置とクライアント装置とでデータの同期処理を行うシステムであって、
前記サーバー装置は、
時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する判定手段と、
前記判定手段により前記クライアント装置の時刻の補正を行うと判定された場合、時刻の補正要求を前記クライアント装置に送信する送信手段と、
を有し、
前記クライアント装置は、
前記サーバー装置より前記時刻の補正要求を受信した場合、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う時刻補正手段と、
前記時刻補正処理の終了後、前記同期処理を再開する制御手段と、
を有するシステム。
【請求項２】
前記時刻補正手段は、前記時刻補正処理として、前記クライアント装置の時刻を取得し、取得した時刻を含む時刻補正要求を前記サーバー装置へ送信し、前記サーバー装置より前記時刻補正要求が成功したことを示す情報を受信すると、前記時刻補正処理を終了する請求項１記載のシステム。
【請求項３】
前記サーバー装置は、データのリストア処理の際に、前記時刻補正要否情報に時刻の補正を必要であることを示す情報を設定する設定手段を更に有する請求項１又は２記載のシステム。
【請求項４】
前記判定手段は、前記クライアント装置よりデータの取得要求を受信した際に、前記時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する請求項１乃至３何れか１項記載のシステム。
【請求項５】
前記判定手段は、前記クライアント装置よりデータの更新要求を受信した際に、前記時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する請求項１乃至３何れか１項記載のシステム。
【請求項６】
データ取得処理、又はデータ更新処理が完了したのち、前記サーバー装置より前記時刻の補正要求を受信した場合、前記時刻補正手段は、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う請求項１乃至５何れか１項記載のシステム。
【請求項７】
データ更新処理が完了したのち、前記サーバー装置より前記時刻の補正要求を受信した場合、前記時刻補正手段は、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う請求項１乃至５何れか１項記載のシステム。
【請求項８】
前記クライアント装置は、画像形成装置である請求項１乃至７何れか１項記載のシステム。
【請求項９】
前記サーバー装置は、画像形成装置である請求項１乃至７何れか１項記載のシステム。
【請求項１０】
クライアント装置とデータの同期処理を行うサーバー装置であって、
時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する判定手段と、
前記判定手段により前記クライアント装置の時刻の補正を行うと判定された場合、時刻の補正要求を前記クライアント装置に送信する送信手段と、
を有するサーバー装置。
【請求項１１】
サーバー装置とデータの同期処理を行うクライアント装置であって、
前記サーバー装置より時刻の補正要求を受信した場合、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う時刻補正手段と、
前記時刻補正処理の終了後、前記同期処理を再開する制御手段と、
を有するクライアント装置。
【請求項１２】
サーバー装置とクライアント装置とでデータの同期処理を行うシステムが実行する情報処理方法であって、
前記サーバー装置が、時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する判定工程と、
前記サーバー装置が、前記判定工程により前記クライアント装置の時刻の補正を行うと判定された場合、時刻の補正要求を前記クライアント装置に送信する送信工程と、
前記クライアント装置が、前記サーバー装置より前記時刻の補正要求を受信した場合、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う時刻補正工程と、
前記クライアント装置が、前記時刻補正処理の終了後、前記同期処理を再開する制御工程と、
を含む情報処理方法。
【請求項１３】
クライアント装置とデータの同期処理を行うサーバー装置が実行する情報処理方法であって、
時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する判定工程と、
前記判定工程により前記クライアント装置の時刻の補正を行うと判定された場合、時刻の補正要求を前記クライアント装置に送信する送信工程と、
を含む情報処理方法。
【請求項１４】
サーバー装置とデータの同期処理を行うクライアント装置が実行する情報処理方法であって、
前記サーバー装置より時刻の補正要求を受信した場合、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う時刻補正工程と、
前記時刻補正処理の終了後、前記同期処理を再開する制御工程と、
を含む情報処理方法。
【請求項１５】
クライアント装置とデータの同期処理を行うコンピュータを、
時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する判定手段と、
前記判定手段により前記クライアント装置の時刻の補正を行うと判定された場合、時刻の補正要求を前記クライアント装置に送信する送信手段と、
して機能させるためのプログラム。
【請求項１６】
サーバー装置とデータの同期処理を行うコンピュータを、
前記サーバー装置より時刻の補正要求を受信した場合、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う時刻補正手段と、
前記時刻補正処理の終了後、前記同期処理を再開する制御手段と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム、サーバー装置、クライアント装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
情報処理装置間でデータを同期する場合に、ネットワーク上のデータ転送量を削減するために、差分情報のみで同期を行う差分同期の方法がある。また差分同期を行っている場合にマスター（サーバー）からバックアップしたデータをリストアした場合に、リストアしたことによって消えたデータを正しく差分同期する方法がある（特許文献１）。
また、サーバーが計時する時刻（以下、サーバー時刻）とクライアントが計時する時刻（以下、クライアント時刻）との差分値である補正時間情報をサーバーが記憶して管理する方法がある（特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−８１１８９号公報
【特許文献２】特開２０１６−３１５９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
サーバー機能が動作する情報処理装置のＨＤＤが故障してしまった場合には、ＨＤＤを交換後、リストアを行い再度、サーバーとして動作させることや、バックアップしておいたデータを他の情報処理装置にリストアしサーバーとして動作させることが考えられる。しかし、ＨＤＤを交換してしまった場合や、新規にサーバー機能を有効化した際には、サーバーが管理しているサーバー時刻とクライアント時刻との差分値である補正時間情報がクリアされてしまうこととなる。そのため、クライアントからの要求に含まれる時刻をサーバーが管理する時刻へと正しく変換することができなくなり、各クライアントから更新要求の順序を保証できずに、後から更新されたデータ値よりも前の値がデータベースに反映されてしまう可能性がある。
本発明は、ＨＤＤを交換した場合や、新規にサーバー機能を有効化した場合等にも各クライアントからの更新要求の順序を保証できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、サーバー装置とクライアント装置とでデータの同期処理を行うシステムであって、前記サーバー装置は、時刻補正要否情報に基づき前記クライアント装置の時刻の補正を行うか否かを判定する判定手段と、前記判定手段により前記クライアント装置の時刻の補正を行うと判定された場合、時刻の補正要求を前記クライアント装置に送信する送信手段と、を有し、前記クライアント装置は、前記サーバー装置より前記時刻の補正要求を受信した場合、前記サーバー装置とのデータの同期処理を中断し、時刻補正処理を行う時刻補正手段と、前記時刻補正処理の終了後、前記同期処理を再開する制御手段と、を有する。
【発明の効果】
【０００６】
本発明によれば、ＨＤＤを交換した場合や、新規にサーバー機能を有効化した場合等にも各クライアントからの更新要求の順序を保証できるようにすることができる。
【図面の簡単な説明】
【０００７】
【図１】差分同期システムのシステム構成の一例を示す図である。
【図２】デジタル複合機のハードウェア構成の一例を示す図である。
【図３】サーバーのハードウェア構成の一例を示す図である。
【図４】データ同期サーバーアプリケーション等の構成の一例を示す図である。
【図５】データ同期クライアントアプリケーション等の構成の一例を示す図である。
【図６】管理データのバックアップ処理の一例を示すフローチャートである。
【図７】管理データのリストア処理の一例を示すフローチャートである。
【図８Ａ】実施形態１の同期処理の一例を示すフローチャート（その１）である。
【図８Ｂ】実施形態１の同期処理の一例を示すフローチャート（その２）である。
【図９】サーバーアプリケーションの情報処理の一例を示すフローチャートである。
【図１０】実施形態１の取得要求処理の一例を示すフローチャートである。
【図１１】更新要求処理の一例を示すフローチャートである。
【図１２】実施形態２の同期処理の一例を示すフローチャートである。
【図１３】実施形態２の取得要求処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
図１は、差分同期システムのシステム構成の一例を示す図である。データの差分同期を行うデジタル複合機１１０ａ、デジタル複合機１１０ｂ、サーバーＰＣ１２０ａ、データのバックアップ先としてサーバーＰＣ１２０ｂがネットワーク１００を介して通信可能に接続されているシステムである。差分同期システムのサーバーがデジタル複合機１１０ａの場合とサーバーＰＣ１２０ａの場合とがあるが、それぞれサーバーはデジタル複合機１１０ａであってもサーバーＰＣ１２０ａであってもよく、何れかの装置で動作していればよい。デジタル複合機は、画像形成装置の一例である。
【００１０】
図２は、デジタル複合機１１０のハードウェア構成の一例を示す図である。デジタル複合機１１０は、コントローラユニット２００、操作部２２０、スキャナ２３０、プリンタ２４０を含んでいる。コントローラユニット２００には、操作部２２０が接続されると共に、画像入力デバイスであるスキャナ２３０や画像出力デバイスであるプリンタ２４０が接続される。
コントローラユニット２００は、より具体的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０２を有する。ＣＰＵ２０２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０６に格納されているブートプログラムによりＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を立ち上げる。コントローラユニット２００は、このＯＳ上で、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２０５に格納されているアプリケーションプログラムを実行し、これによって各種処理を実行する。このＣＰＵ２０２の作業領域としてはＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３が用いられる。ＨＤＤ２０５は、アプリケーションプログラムや各種データを格納する。
ＣＰＵ２０２には、システムバス２１０を介して、ＲＯＭ２０６及びＲＡＭ２０３と共に、操作部Ｉ／Ｆ２０１、デバイスＩ／Ｆ２０４、Ｎｅｔｗｏｒｋ  Ｉ／Ｆ２０７、画像処理部２０８が接続される。
操作部Ｉ／Ｆ２０１は、タッチパネルを有する操作部２２０とのインタフェースである。操作部Ｉ／Ｆ２０１は、操作部２２０に表示する各種データ等の情報を送出したり、ユーザーにより入力された情報をＣＰＵ２０２に送出したりする。デバイスＩ／Ｆ２０４には、スキャナ２３０及びプリンタ２４０が接続され、データや制御信号の入出力が行われる。Ｎｅｔｗｏｒｋ  Ｉ／Ｆ２０７は、ネットワーク１００に接続され、ネットワーク１００を介してネットワーク１００上の各装置との間で情報の入出力を行う。画像処理部２０８は、スキャナからの入力画像処理やプリンタへの出力画像処理、画像回転、画像圧縮、解像度変換、色空間変換、階調変換等の処理を行う。
【００１１】
図３は、サーバーＰＣ１２０のハードウェア構成の一例を示す図である。ＣＰＵ３０１は、サーバーの演算・制御を司る。ＲＡＭ３０２は、ＣＰＵ３０１の主メモリとして、及び実行プログラムの領域やプログラムの実行エリアならびにデータエリアとして機能する。ＲＯＭ３０３は、ＣＰＵ３０１の動作処理手順を記憶しているＲＯＭである。ＲＯＭ３０３にはサーバーの機器制御を行うシステムプログラムである基本ソフト（ＯＳ）を記録したプログラムＲＯＭと、システムを稼働するために必要な情報等が記録されているデータＲＯＭとがある。また、ＲＯＭ３０３の代わりに、ＨＤＤ３０９が用いられる場合もある。Ｎｅｔｗｏｒｋ  Ｉ／Ｆ３０４は、ネットワーク１００を介して他の装置とのデータ送受信等の通信を行う。ＶＲＡＭ（ＶｉｄｅｏＶＲＡＭ）３０５は、サーバーのＤｉｓｐｌａｙ３０６の画面に表示させるための画像を展開し、その表示の制御を行う。Ｄｉｓｐｌａｙ３０６は、ディスプレイ等の表示装置（Ｄｉｓｐｌａｙ）である。ＫＢＣ３０７は、外部入力装置（ＫＢ）３０８からの入力信号を制御するためのコントローラ（ＫＢＣ）である。ＫＢ３０８は、利用者が行う操作を受け付けるための外部入力装置（ＫＢ）であり、例えばキーボードやマウス等のポインティングデバイスが用いられる。ＨＤＤ３０９は、ハードディスクドライブ（ＨＤＤ）であり、アプリケーションプログラムや各種データ保存用に用いられる。バス３００は、上述した各ユニット間を接続するための伝送バス（アドレスバス、データバス、入出力バス、及び制御バス）である。
【００１２】
＜実施形態１＞
実施形態１では、デジタル複合機１１０ａ上でデータ同期サーバーアプリケーション４００が動作し、デジタル複合機１１０ａ及びデジタル複合機１１０ｂ上でデータ同期クライアントアプリケーション５００が動作する構成で説明する。データ同期サーバーアプリケーション４００は、以下、単にサーバーアプリケーション４００という。また、データ同期クライアントアプリケーション５００は、以下、単にクライアントアプリケーション５００という。サーバーアプリケーション４００が動作する装置は、サーバー装置の一例である。また、クライアントアプリケーション５００が動作する装置は、クライアント装置の一例である。
本実施形態の構成ではデジタル複合機１１０ａのＣＰＵ２０２がＲＯＭ２０６又はＨＤＤ２０５に記憶されたサーバーアプリケーション４００のプログラムを実行することにより、サーバーアプリケーション４００の機能が実現される。また、デジタル複合機１１０ａのＣＰＵ２０２がＲＯＭ２０６又はＨＤＤ２０５に記憶されたクライアントアプリケーション５００のプログラムを実行することにより、クライアントアプリケーション５００の機能が実現される。また、デジタル複合機１１０ｂのＣＰＵ２０２がＲＯＭ２０６又はＨＤＤ２０５に記憶されたクライアントアプリケーション５００のプログラムを実行することにより、クライアントアプリケーション５００の機能が実現される。
【００１３】
図４は、サーバーアプリケーション４００等のソフトウェア構成の一例を示す図である。サーバーアプリケーション４００は、以下の複数の処理部から構成される。通信処理部４０１は、デジタル複合機１１０ｂ等からの処理要求を受信し、処理結果を送信する。制御部４０２は、処理の制御を行う。要求解析部４０３は、通信処理部４０１で受け付けた要求を解析する。バックアップ処理部４０４は、データベース４１０で保持するデータのバックアップ処理を実行する。リストア処理部４０５は、バックアップ処理部４０４が作成したバックアップデータを用いてデータベース４１０で保持するデータのリストア処理を実行する。データアクセス部４０６は、処理要求に応じてデータベース４１０にアクセスして、データの作成／更新／削除／参照を実行する。データベース４１０で保持するデータは、ＨＤＤ２０５又はＲＡＭ２０３等に保存される。
【００１４】
図５は、クライアントアプリケーション５００等のソフトウェア構成の一例を示す図である。クライアントアプリケーション５００は、以下の複数の処理部から構成される。処理受付部５０１は、コピーやＦＡＸ等の各種アプリケーションからの処理要求、データ管理アプリケーション５１０からの処理要求を受信する。制御部５０２は、処理の制御を行う。ジョブ管理部５０３は、処理受付部５０１で受付けた要求をジョブとして管理する。通信処理部５０４は、Ｎｅｔｗｏｒｋ  Ｉ／Ｆ２０７を介してデジタル複合機１１０ａ上のサーバーアプリケーション４００と通信を行う。同期情報管理部５０５は、差分同期に関する情報を管理する。ジョブ管理部５０３及び同期情報管理部５０５で管理する情報は、ＨＤＤ２０５又はＲＡＭ２０３等に保存される。データ管理アプリケーション５１０は、操作部２２０に表示するデータを管理し、操作部２２０を介してユーザーから入力されたデータを保持すると共に、クライアントアプリケーション５００の処理受付部５０１にデータ更新内容を通知する。
デジタル複合機１１０ｂで、ユーザー操作やコピー／ＦＡＸ等のアプリケーション処理実行によってデータに変更が発生した場合、クライアントアプリケーション５００が変更内容をサーバーアプリケーション４００に送信する。また、クライアントアプリケーション５００は、サーバーアプリケーション４００にデータ更新があるかどうかを定期的、又は必要に応じて問い合わせる。クライアントアプリケーション５００は、更新されたデータがあれば差分データとして取得して、データ管理アプリケーション５１０に差分データを反映する。
【００１５】
例えば、アドレス帳のＦＡＸ番号等のアドレスデータを、サーバーアプリケーション４００が管理しているとする。アドレスデータをデジタル複合機１１０ａ、デジタル複合機１１０ｂで共に使用する場合、アドレスデータの同期処理は以下のように処理される。デジタル複合機１１０ａでアドレスデータＡが変更された場合、変更されたアドレスデータＡがクライアントアプリケーション５００に通知される。クライアントアプリケーション５００は、デジタル複合機１１０ａ上のサーバーアプリケーション４００に変更されたアドレスデータＡを送信する。サーバーアプリケーション４００は、受信したアドレスデータＡをデータベース４１０に保存する。その後、デジタル複合機１１０ｂのクライアントアプリケーション５００から、デジタル複合機１１０ａ上のサーバーアプリケーション４００に対して更新の問い合わせが実行される。サーバーアプリケーション４００は、先ほどのアドレスデータＡを更新データとしてクライアントアプリケーション５００に送信する。クライアントアプリケーション５００は、アドレスデータＡを受信したら、アドレスデータを管理するアドレス帳アプリケーションに受信したアドレスデータＡを渡して、デジタル複合機１１０ｂ内のデータを更新する。
同期されるデータとしてアドレスデータを例に説明したが、他のデータでも同様に処理することでデータの差分同期を実現することができる。
【００１６】
差分同期を行う上でデジタル複合機１１０ａ上のサーバーアプリケーション４００の基準となる時刻と、クライアントアプリケーション５００が動作するデジタル複合機１１０ｂの時刻と、の差異を正しく補正することが必要となる。表Ａを用いてサーバー側の基準時刻と、クライアントの時刻との差分を管理する方法について説明する。
【表１】
2018073283.tif 000003
クライアントアプリケーション５００は、サーバーアプリケーション４００に対してデジタル複合機１１０ｂの時計が変更された場合や予め定めた所定のタイミングで時刻補正の要求を行う。ここで所定のタイミングとは、サーバーアプリケーション４００との同期を初めて開始する場合や、デジタル複合機１１０ｂが起動されたときや、予め定めた所定時間経過後等のタイミングである。サーバーアプリケーション４００は、時刻の補正要求を受信するとデータベース４１０で保持するデジタル複合機１１０ｂの補正時間を更新する。例えばサーバー時刻が「２０１６／０６／２７１０：００．００．００」でクライアント時刻が「２０１６／０６／２７１０：００．３４．２５４」の場合は表Ａの２行目の様に「＋００：００．３４．２５４」が補正時間として算出されデータベースに保持される。
ここでその後の更新要求に含まれるクライアントの時刻が「２０１６／０６／２７  １０：０２．４５．２７４」であったとする。このときサーバーアプリケーション４００は、この値から補正時間を減算してサーバー時刻に変換した「２０１６／０６／２７  １０：０２．１１．０２０」のリクエストとして処理することとなる。この様にすることで、クライアント間の時計に差異がある場合であっても、サーバーの基準となる時刻に変換した上で処理することで、クライアント間のリクエストの順序関係を保証している。
【００１７】
次にサーバーアプリケーション４００が、データベース４１０の管理データのバックアップ処理を実行する際の処理を、図６のフローチャートを用いて説明する。バックアップ処理の指示は、ユーザー指示等の外部からの指示であっても、スケジュールや状態変化イベント等のデジタル複合機１１０内部からの指示であってもよい。
Ｓ６０１において、制御部４０２は、バックアップ実行の指示を検知したら、データアクセス部４０６に対してデータベース４１０へのアクセスを止めるように指示する。
Ｓ６０２において、制御部４０２は、バックアップ処理部４０４にバックアップを指示する。バックアップ処理部４０４は、データベース４１０にアクセスして、対象のファイルを特定する。
Ｓ６０３において、バックアップ処理部４０４は、対象ファイルのサイズと、バックアップ先の空き容量と、を比較して、バックアップ可能な空き容量があるかどうか判断する。ここで、バックアップ処理部４０４は、バックアップ先がデジタル複合機１１０ａのＨＤＤ２０５の場合には、空き容量はファイルシステムに問い合わせることで把握できる。また、バックアップ処理部４０４は、バックアップ先がネットワーク上のストレージの場合には、ネットワーク１００を介して問い合わせることで把握できる。本実施形態では、デジタル複合機１１０ａのＨＤＤ２０５上にバックアップする場合を例にして、説明を行う。バックアップ処理部４０４は、空き容量があると判定した場合（Ｓ６０３においてＹｅｓ）、Ｓ６０４に進み、空き容量がないと判定した場合（Ｓ６０３においてＮｏ）、Ｓ６０７に進む。
【００１８】
Ｓ６０４において、バックアップ処理部４０４は、バックアップ処理実行時のデジタル複合機１１０ａの日時情報を特定して保持する。
次にＳ６０５において、バックアップ処理部４０４は、データベース４１０の対象ファイルをバックアップ先のディレクトリにコピーする。対象ファイル全てのコピーが完了したらバックアップ処理部４０４は、バックアップ処理完了を制御部４０２に通知する。
Ｓ６０６において、制御部４０２は、バックアップ処理完了を検知したら、データアクセス部４０６にデータベース４１０へのアクセス許可を通知して、図６に示す処理を終了とする。
一方、Ｓ６０７において、バックアップ処理部４０４は、過去のバックアップファイルを削除するかどうかを判断する。バックアップ処理部４０４は、ユーザー指示に基づき、判断をしてもよいし、過去のバックアップファイルの作成日時等から削除可能かどうかの判断をしてもよい。バックアップ処理部４０４は、過去データを削除すると判定した場合（Ｓ６０７においてＹｅｓ）、Ｓ６０８に進み、過去データを削除しないと判定した場合（Ｓ６０７においてＮｏ）、Ｓ６０９に進む。
Ｓ６０８において、バックアップ処理部４０４は、過去のバックアップファイルを削除する。そして、バックアップ処理部４０４は、Ｓ６０３に戻る。
一方、Ｓ６０９において、バックアップ処理部４０４は、バックアップ指示元にバックアップを実行できないことを通知して、バックアップ処理失敗を制御部４０２に通知する。制御部４０２は、バックアップ不可通知を検知したら、データアクセス部４０６にデータベース４１０へのアクセス許可を通知して、図６に示す処理を終了する。
【００１９】
本実施形態では、ファイルベースのデータベースの場合を例に説明を行った。しかしデータベース４１０にバックアップ機能がある場合には、Ｓ６０２で対象ファイルを特定するのではなく、制御部４０２は、データベース４１０にバックアップを指示して、バックアップファイルを作成してもよい。また、データベース４１０へのアクセス禁止／許可の処理（Ｓ６０１、Ｓ６０６及びＳ６０９）はデータベース４１０が実施しても、サーバーアプリケーション４００が実施してもよい。また、フルバックアップではなく、差分バックアップの場合も同じように、Ｓ６０２でバックアップ処理部４０４がデータベース４１０に差分バックアップファイルの作成を要求して、ファイルを特定してもよい。
【００２０】
次に、サーバーアプリケーション４００が、データベース４１０の管理データのリストア処理を実行する際の処理を、図７のフローチャートを用いて説明する。リストア処理の指示は、ユーザー指示等の外部からの指示であっても、データベース内の不整合検知による修復指示等のデータベース４１０やサーバーアプリケーション４００等の内部からの指示であってもよい。
Ｓ７０１において、制御部４０２は、リストア実行の指示を検知したら、データアクセス部４０６に対してデータベース４１０へのアクセスを止めるように指示する。
次にＳ７０２において、制御部４０２は、リストア処理部４０５にリストア対象のファイルとリストア実行を指示する。リストア処理部４０５は、バックアップデータを特定して、バックアップ実行日時を特定し、保持する。
次にＳ７０３において、リストア処理部４０５は、リストア処理実行日時としてデジタル複合機１１０ａの日時情報を特定して保持する。
Ｓ７０４において、リストア処理部４０５は、データベース４１０にアクセスして、データベース４１０で管理する情報のうち、クライアントアプリケーション５００が動作する全デジタル複合機１１０の補正時間情報を取得して、保持しておく。
データベース４１０で管理するデータ例を表Ｂに示す。
【００２１】
【表２】
2018073283.tif 000004
【００２２】
クライアント装置情報には、サーバーアプリケーション４００とデータの同期処理を行っているクライアントアプリケーション５００が動作する装置の情報（識別子や名称等）が登録されている。またクライアント装置情報に、サーバーとクライアントとの日時情報の差分を補正するための補正時間情報も登録されている。処理装置設定データには、装置が動作するために使用している各種設定データ（表示言語設定や標準プリント設定等）が登録されている。ユーザー認証用データには、装置を使用するための認証処理で使用される情報（ＩＤ／ＰＡＳＳＷＯＲＤ等）やユーザーの権限、所属グループ等の情報が登録されている。ユーザー設定データには、ユーザー毎に登録された設定データ（アドレス帳のアドレスデータ等）が登録されている。表Ｂにおける最終取得日時とは、クライアントアプリケーション５００が最後にデータ取得を行った日時である。またデータ更新日時とは、クライアントアプリケーションから最後にデータの更新が行われた日時である。これらの時刻は何れもサーバーアプリケーション４００が基準とする時刻が設定されている。
【００２３】
補正時間情報の退避が完了したら、Ｓ７０５において、リストア処理部４０５は、バックアップデータのファイルをデータベース４１０が管理する管理ファイルと差し替え、データの不整合が無いかチェックする。
Ｓ７０６において、リストア処理部４０５は、Ｓ７０４で保持していた全デジタル複合機１１０の補正時間情報をリストア後のデータに対して更新するように、データベース４１０に指示する。データベース４１０の処理が完了したら、リストア処理部４０５は、リストア前のデータベース４１０が管理していた管理ファイルを削除して、制御部４０２にリストア完了を通知する。
Ｓ７０７において、制御部４０２は、リストア完了を検知したら、サーバーとクライアントの日時情報の差分を補正するための補正時間情報を更新する必要であることを示す、時刻補正要否情報の値をＴＲＵＥに更新する。
ここで時刻補正要否情報の一例について表Ｃを用いて説明する。Ｓ７０７の処理により時刻補正要否情報はデジタル複合機１１０ａ、デジタル複合機１１０ｂの両者共にＴＲＵＥが設定された状態となる。この状態では時刻補正が必要であることを表しており、デジタル複合機１１０ａ、デジタル複合機１１０ｂから時刻補正が実施されると、該当するデジタル複合機に関する時刻補正要否情報がＦＡＬＳＥに設定される。
【表３】
2018073283.tif 000005
Ｓ７０８において、制御部４０２は、データアクセス部４０６にデータベース４１０へのアクセス許可を通知して、図７に示す処理を終了する。
【００２４】
バックアップ処理同様、本実施形態では、ファイルベースのデータベースの場合を例に説明を行った。しかしデータベース４１０にリストア機能がある場合には、Ｓ７０５で対象ファイルを差し替えるのではなく、リストア処理部４０５は、データベース４１０に対象ファイルを渡してリストアを指示して、リストア処理を実行してもよい。また、差分バックアップの場合には、フルバックアップ時のデータと差分バックアップのデータとからリストアするためのデータをデータベース４１０等で生成したのち、Ｓ７０５の処理を実行してもよい。また、バックアップ時同様、データベース４１０へのアクセス禁止／許可の制御をデータベース４１０で実施してもサーバーアプリケーション４００で実施してもよい。
【００２５】
次に表Ｂのデータベース４１０で管理するデータ例に対して「２０１６／０８／２７  １３：００：００．１１２」にバックアップ処理を実行し、リストア処理を「２０１６／０８／２８  ０８：００：００．２２５」に実行した場合について説明する。
例えば、バックアップ処理後の「２０１６／０８／２７  １４：００：００．４５６」にデジタル複合機１１０ｂで、ユーザー設定データ「ｆａｘ＿ａｄｄｒｅｓｓ＿１」が「０２３−４５６−７８９０」に更新されたとする。そのとき、デジタル複合機１１０ｂがネットワークに接続されておらず、クライアントアプリケーション５００とサーバーアプリケーション４００とが通信できない場合がある。その場合には、デジタル複合機１１０ｂのクライアントアプリケーションは「２０１６／０８／２７  １４：００：００．４５６」に更新されたユーザー設定データとして、ジョブ管理部５０３にデータを保持しておく。リストア実行後の「２０１６／０８／２８  １０：００：００．１２３」にデジタル複合機１１０ｂがネットワークに接続されて通信できるようになったとする。その場合、クライアントアプリケーション５００は、サーバーアプリケーション４００に対して「２０１６／０８／２７  １４：００：００．４５６」に更新されたユーザー設定データの更新を要求する。サーバーアプリケーション４００のデータアクセス部４０６は、受信した更新要求からデータベース４１０で管理するユーザー設定データ「ｆａｘ＿ａｄｄｒｅｓｓ＿１」を更新するかどうか判断する。ここで要求に含まれる更新時刻は「２０１６／０８／２７  １４：００：００．４５６」である。そのため、データアクセス部４０６は、リストア後の「ｆａｘ＿ａｄｄｒｅｓｓ＿１」のデータ更新日時が「２０１６／０８／０６  ０２：２２．５５．６８５」よりも新しいと判断する。そして、データアクセス部４０６は、データベース４１０へのデータ更新要求を行う。
【００２６】
次に図８Ａ（Ａ）を用いてデジタル複合機１１０ｂ上で動作するクライアントアプリケーション５００の同期要求の処理フローについて説明する。
データ管理アプリケーション５１０は、デジタル複合機１１０ｂ内のデータが変更されるとクライアントアプリケーション５００に対して同期の更新要求を行う。Ｓ８０１において、処理受付部５０１は、更新要求を受信し、制御部５０２へ同期要求イベントを通知する。
Ｓ８０２において、制御部５０２は、同期要求イベントの種別を判別する。制御部５０２は、同期要求イベントの種別がデータ取得要求であると判定した場合、Ｓ８０３に進み、同期要求イベントの種別がデータ更新であると判定した場合、Ｓ８０４に進む。
Ｓ８０３において、制御部５０２は、データ取得処理を実行する。データ取得処理の詳細は、後述する図８Ｂ（Ａ）において説明する。
一方、Ｓ８０４において、制御部５０２は、データ更新処理を実行する。データ更新処理の詳細は、後述する図８Ａ（Ｂ）において説明する。
データ取得処理、データ更新処理が完了したら、Ｓ８０５において、制御部５０２は、要時刻補正エラーが発生したかを判定する。要時刻補正エラーが発生したと判定した場合（Ｓ８０５においてＹｅｓ）、制御部５０２は、Ｓ８０６に進む。
Ｓ８０６において、制御部５０２は、同期処理を中断する。
Ｓ８０７において、制御部５０２は、時刻補正処理を実施する。
【００２７】
ここで、時刻補正処理の詳細について図８Ａ（Ｂ）を用いて説明する。
Ｓ８３０において、制御部５０２は、デジタル複合機１１０ｂの時刻を取得し、取得した時刻を含む時刻補正情報を生成する。
Ｓ８３１において、制御部５０２は、生成した時刻補正情報を含む時刻補正要求を通信処理部５０４へ依頼する。通信処理部５０４は、サーバーアプリケーション４００へ時刻補正要求を送信する。時刻補正要求とは、時刻を補正するための更新要求であり、表Ｂに示した補正時間を更新するための要求である。
Ｓ８３２において、通信処理部５０４は、サーバーアプリケーション４００からのレスポンスを受信し、制御部５０２へレスポンスを返却する。制御部５０２は、レスポンスに含まれるステータスコード等から時刻補正が成功したかを表す情報を取得する。
Ｓ８３３において、制御部５０２は、取得した情報に基づき、時刻補正要求が成功したか否かを判定する。制御部５０２は、時刻補正要求が成功したと判定すると（Ｓ８３３においてＹｅｓ）、時刻補正処理を終了し、時刻補正要求が失敗したと判定すると（Ｓ８３３においてＮｏ）、Ｓ８３０の処理に戻る。
時刻補正処理の終了後、Ｓ８０８において、制御部５０２は、中断していた同期処理を再び開始する。
【００２８】
次にデータ取得処理の詳細について図８Ｂ（Ａ）を用いて説明する。
Ｓ８１０において、制御部５０２は、データの最終取得日時を同期情報管理部５０５から取得する。
Ｓ８１１において、制御部５０２は、取得した最終取得日時を基に通信処理部５０４へデータの取得要求を依頼する。
Ｓ８１２において、通信処理部５０４は、サーバーアプリケーション４００からのレスポンスを受信すると、制御部５０２へレスポンスを返却する。
Ｓ８１３において、制御部５０２は、レスポンスに含まれるステータスコード等から不整合エラーが発生したかを判定する。制御部５０２は、不整合エラーが発生したと判定した場合（Ｓ８１３においてＹｅｓ）、Ｓ８１４に進み、不整合エラーが発生していないと判定した場合（Ｓ８１３においてＮｏ）、Ｓ８１５に進む。
Ｓ８１４において、制御部５０２は、全データ取得要求を生成する。そして、Ｓ８１１において、制御部５０２は、再度、通信処理部５０４へデータの取得要求を依頼する。
一方、Ｓ８１５において、制御部５０２は、レスポンスに取得されたデータがあるか否かを判定する。制御部５０２は、データがある場合（Ｓ８１５においてＹｅｓ）、Ｓ８１６に進み、データがない場合（Ｓ８１５においてＮｏ）、データ取得処理を終了する。
Ｓ８１６において、制御部５０２は、取得したデータをデータ管理アプリケーション５１０へ返すことで、デジタル複合機１１０ｂへ反映する。そして、制御部５０２は、データ取得処理を終了する。
【００２９】
次にデータ更新処理の詳細について図８Ｂ（Ｂ）を用いて説明する。
Ｓ８２０において、制御部５０２は、通信処理部５０４に対してデータの更新要求を依頼する。通信処理部５０４は、サーバーアプリケーション４００に対してデータの更新要求を依頼する。
Ｓ８２１において、通信処理部５０４は、サーバーアプリケーション４００の処理が完了すると、処理のレスポンスを受信する。そして、通信処理部５０４は、データ更新処理を終了する。
【００３０】
次に図９、図１０、図１１を用いてリストア処理を「２０１６／０６／２８  ０８：００：００．２２５」に実行した後、デジタル複合機１１０ｂがそれぞれデータの差分同期のためのデータ取得要求を実施した場合の処理の詳細のフローについて説明する。なお、以下の説明の概要は以下となる。
・差分データ取得要求受信し、要時刻補正エラー応答を返す処理
・時刻補正要求を受信し、補正時間を更新する処理
・差分データ取得要求を受信し、差分データを返す処理
またデジタル複合機１１０ｂは電源がＯｆｆにされていた、又はサーバーアプリケーション４００との通信ができない等の理由で、「２０１６／０８／２７  １０：５４．１４．３６９」以降、差分データの取得要求が成功していなかったこととする。
【００３１】
データ取得処理（Ｓ９０５）の詳細について図１０を用いて説明する。図１０は、デジタル複合機１１０ａのサーバーアプリケーション４００におけるデータ取得処理の一例を示すフローチャートである。
Ｓ１００１において、制御部４０２は、リストア実施時のＳ７０７で更新した時刻補正要否情報を取得し、時刻補正要否情報がＴＲＵＥか否かを判定する。制御部４０２は、時刻補正要否情報がＴＲＵＥである、時刻補正が必要である、と判定すると（Ｓ１００１においてＹｅｓ）、Ｓ１００２に進む。一方、制御部４０２は、時刻補正要否情報がＴＲＵＥでない、時刻補正が必要でない、と判定すると（Ｓ１００１においてＮｏ）、Ｓ１００３に進む。リストア処理実施後には、図７のＳ７０７にて設定した時刻補正要否情報に基づき、時刻補正が必要と判定される。
Ｓ１００２において、制御部４０２は、要時刻補正エラーをクライアントアプリケーション５００へ返却する。
クライアントアプリケーション５００は、要時刻補正エラーを受信すると、図８Ａ（Ａ）（Ｂ）に記載のフローチャートの処理に従い処理を実行し、その結果、サーバーアプリケーション４００に対して時刻補正要求のリクエストが送信されることとなる。
【００３２】
（時刻補正要求を受信し、補正時間を更新する処理）
次にサーバーアプリケーション４００が時刻補正要求のリクエストを受信した場合の処理について図９、図１１を用いて説明する。
また下記説明では時刻補正要求に含まれるデジタル複合機１１０ｂの時刻は「２０１６／０６／２８  ０８：１０：５０．４５６」であるものとして説明する。
Ｓ９０１において、サーバーアプリケーション４００の通信処理部４０１は、クライアントアプリケーション５００からの要求を受信したら制御部４０２に要求受信を通知する。
Ｓ９０２において、制御部４０２は、受信した要求を要求解析部４０３に渡し、要求の解析を依頼する。要求解析部４０３は、受信した要求から、要求元のデジタル複合機がデジタル複合機１１０ｂであることと、時刻補正要求であることを特定する。
Ｓ９０３において、制御部４０２は、Ｓ９０２で特定された要求内容を基に更新要求であるかを判定する。時刻補正要求は、表Ｂの補正時間を更新するための更新要求であるため、Ｓ９０３においてＹｅｓと判定され、Ｓ９０４の更新要求処理へ進む。
【００３３】
次に更新要求処理について図１１を用いて説明する。
Ｓ１１０１において、制御部４０２は、時刻補正要求であるか否かを判定する。制御部４０２は、時刻補正要求であると判定すると（Ｓ１１０１においてＹｅｓ）、Ｓ１１０２に進み、時刻補正要求でないと判定すると（Ｓ１１０１においてＮｏ）、Ｓ１１０５に進む。制御部４０２は、データ更新要求に時刻補正情報が含まれている場合は、時刻補正要求であると判定する。
Ｓ１１０２において、制御部４０２は、更新要求に含まれる時刻「２０１６／０６／２８  ０８：１０：５０．４５６」とサーバーの現在時刻である「２０１６／０６／２８  ０８：１１：００．７８９」とから補正時刻を算出し、データベースへ反映する。ここでは「＋００：００：１０．３３３」がデジタル複合機１１０ｂの補正時間情報として算出されデータベース４１０へ反映される。
Ｓ１１０３において、制御部４０２は、データベース４１０への反映が完了したら時刻補正要否情報を、ＦＡＬＳＥに設定する。
Ｓ１１０４において、制御部４０２は、時刻補正要否情報の設定が完了したら処理結果をクライアントアプリケーション５００へ返却する。
【００３４】
時刻補正要求の成功を受信したデジタル複合機１１０ｂ内で動作するクライアントアプリケーション５００は、時刻補正要求の成功を受信する。次にクライアントアプリケーション５００は、同期処理を再開するため一旦同期処理を停止していた、「２０１６／０６／２７  １０：５４．１４．３６９」以降の差分データ取得要求をサーバーアプリケーション４００に対して要求することになる。
サーバーアプリケーション４００は、クライアントアプリケーション５００からの「２０１６／０６／２７  １０：５４．１４．３６９」以降の差分データ取得要求を受信する。Ｓ９０１において、サーバーアプリケーション４００の通信処理部４０１は、クライアントアプリケーション５００からの要求を受信したら、制御部４０２に要求受信を通知する。制御部４０２は受信した要求を要求解析部４０３に渡し、要求の解析を依頼する。
Ｓ９０２において、要求解析部４０３は、受信した要求から、要求元のデジタル複合機がデジタル複合機１１０ｂであることと、「２０１６／０６／２７  １０：５４．１４．３６９」以降の差分データ取得要求であることを特定する。
Ｓ９０３において、制御部４０２は、要求解析部４０３から解析結果を取得したら、それがデータ更新要求であるかどうかを判断する。判定の結果、差分データ取得要求であるため、制御部４０２は、Ｓ９０５へ進む。
【００３５】
（差分データ取得要求を受信し、差分データを返す処理）
次にＳ９０５の取得処理の詳細について、図１０を用いて説明する。
Ｓ１００１において、制御部４０２は、時刻補正要否情報がＴＲＵＥであるか否かを判定する。先ほどＳ１１０３の処理にて時刻補正要否情報はＦＡＬＳＥに更新されているため、制御部４０２は、Ｓ１００１でＮｏと判定し、Ｓ１００３に進む。
Ｓ１００３において、制御部４０２は、取得要求が差分データ取得要求であるか否かを判定する。制御部４０２は、差分データ取得要求であると判定した場合（Ｓ１００３においてＹｅｓ）、Ｓ１００４に進み、差分データ取得要求でないと判定した場合（Ｓ１００３においてＮｏ）、Ｓ１０１１に進む。上述の例では、制御部４０２は、差分データの取得要求であると判定し、Ｓ１００４へ進む。
Ｓ１００４において、制御部４０２は、差分要求の要求日時を「２０１６／０８／２７  １０：５４．１４．３６９」と特定する。
次に、Ｓ１００５において、制御部４０２は、バックアップ時、リストア時に生成したバックアップ日時、リストア日時を特定する。
Ｓ１００６において、制御部４０２は、要求に含まれる時刻がバックアップ日時以降で、リストア日時以前であるかを判定する。制御部４０２は、要求に含まれる時刻がバックアップ日時以降で、リストア日時以前である場合（Ｓ１００６においてＹｅｓ）、Ｓ１００７に進み、そうでない場合（Ｓ１００６においてＮｏ）、Ｓ１００８に進む。上述の例では、要求に含まれる日時情報がバックアップ以前の日時であったため、制御部４０２は、Ｓ１００６においてＮｏと判定し、Ｓ１００８に進む。
Ｓ１００８において、制御部４０２は、現在のサーバーの日時を特定する。
Ｓ１００９において、制御部４０２は、要求日時である「２０１６／０８／２７  １０：５４．１４．３６９」以降に変更されたデータを特定し、データベース内の最終取得日時をサーバーの日時で更新する。
Ｓ１０１０において、制御部４０２は、Ｓ１００９で取得した差分更新データとサーバーの日時とを通信処理部４０１へ渡し、クライアントアプリケーション５００に対してデータ取得要求のレスポンスとして送信する。
【００３６】
また上述した例からは離れるがＳ１００６の判定処理においてＹｅｓと判定された場合の一例について説明する。上述した例と同じくバックアップ日時は「２０１６／０８／２７  １３：００：００．１１２」、リストア日時は「２０１６／０８／２８  ０８：００：００．２２５」とする。
このときクライアントアプリケーション５００からの差分取得要求に含まれる時刻が、「２０１６／０８／２７  １５：００：００．０００」であった場合には次式が満たされる。そのため、制御部４０２は、Ｓ１００６にてＹｅｓと判定し、Ｓ１００７に進む。
バックアップ日時「２０１６／０８／２７  １３：００：００．１１２」＜「２０１６／０８／２７  １５：００：００．０００」＜リストア日時「２０１６／０８／２８  ０８：００：００．２２５」
Ｓ１００７において、制御部４０２は、クライアントアプリケーション５００にデータ不整合エラーを返却する。
このとき、データ不整合エラーを受信したクライアントアプリケーション５００は、図８に記載のフローチャートに従い処理を実行し、全データの取得要求をサーバーアプリケーション４００に対して送信する。その結果、サーバーアプリケーション４００は、Ｓ９０１、Ｓ９０２、Ｓ９０３、Ｓ９０５の処理を実行し、Ｓ１００１ではＦＡＬＳＥと判定し、Ｓ１００３にて全データ取得と判定し、Ｓ１０１１へ進む。
Ｓ１０１１において、制御部４０２は、サーバーの日時を特定する。そして、Ｓ１０１２において、制御部４０２は、対象の全てのデータを特定する。そして、Ｓ１０１３において、制御部４０２は、該当データの最終取得日時をサーバー日時で更新する。処理が完了したら、制御部４０２は、クライアントに対して全データとサーバー日時とを返却する。このことで、サーバー上のデータベースとクライアントとの情報に不整合が発生した場合であっても全データの取得を実施することで整合性が保たれることとなる。
【００３７】
以上の情報処理によりサーバーアプリケーション４００においてリストア処理が実施された後に、サーバーアプリケーション４００が管理する補正時間情報が補正され、その後に、データ取得要求や、データ更新要求が処理されることが保証される。その結果、サーバーアプリケーション４００が動作するデジタル複合機１１０ｂのＨＤＤの故障による交換や、その他のデジタル複合機にデータをリストアしサーバーとして動作をさせた場合にも正しい状態での同期を行うことができる。
【００３８】
＜実施形態２＞
本実施形態ではサーバーアプリケーションのデータの更新要求時にのみ、要時刻補正エラーを返却した場合の例について説明する。これはデータの取得要求で指定される最終取得日時はサーバーが管理する時刻であるため、補正時間情報を補正していなくても問題ないため、影響のあるデータの更新要求時にのみ補正を行うとした場合の説明となる。また実施形態２においてはデータの取得要求があった際には、事前に時刻補正処理が実行されないため、実施形態１と比べデータの取得処理が早く完了することとなる点が実施形態１に対するメリットとなる。
ここでは実施形態１との差異を中心に実施形態２についての説明を行う。
実施形態２におけるクライアントアプリケーション５００が実行する同期要求の処理フローについて図１２（Ａ）を用いて説明する。なお、図８Ａ（Ｂ）、図８Ｂ（Ａ）、（Ｂ）の処理については実施形態１と同等の処理であるため実施形態２では図示、説明、共に省略する。
【００３９】
データ管理アプリケーション５１０は、デジタル複合機１１０ｂ内のデータが変更されるとクライアントアプリケーション５００に対して同期の更新要求を行う。
Ｓ１２０１において、処理受付部５０１は、更新要求を受信し、制御部５０２へ同期要求イベントを通知する。
Ｓ１２０２において、制御部５０２は、同期要求イベントの種別を判別する。制御部５０２は、同期要求イベントの種別がデータ取得要求であると判定した場合、Ｓ１２０３に進み、同期要求イベントの種別がデータ更新であると判定した場合、Ｓ１２０４に進む。
Ｓ１２０３において、制御部５０２は、データ取得処理を実行する。制御部５０２は、データ取得処理が終了した場合には、Ｓ１２０１へ戻り、再びイベントの受信を待つ。
Ｓ１２０４において、制御部５０２は、データ更新処理を実行する。
データ更新処理が終了した場合には、Ｓ１２０５において、制御部５０２は、要時刻補正エラーが発生したかを判定する。制御部５０２は、要時刻補正エラーが発生したと判定した場合（Ｓ１２０５においてＹｅｓ）、Ｓ１２０６に進む。
Ｓ１２０６において、制御部５０２は、同期処理を中断する。
Ｓ１２０７において、制御部５０２は、時刻補正処理を実行する。
Ｓ１２０８において、制御部５０２は、同期処理を再開する。
【００４０】
実施形態２におけるデジタル複合機１１０ａで動作する、サーバーアプリケーション４００の同期処理について説明するが、同期処理については図９の処理と同等である。また更新要求処理に関しては図１１と同等の処理となるため説明を省略する。
ここでは実施形態１との差異があるデータの取得要求処理のフローチャートである図１３についてのみ説明する。なお、図１３は図１０のフローチャートとほぼ同等である。異なる点はＳ１００１とＳ１００２との処理がないだけであり、Ｓ１３０１からＳ１３１１までの処理は図１０のＳ１００３からＳ１０１３までの処理と同じである。
【００４１】
Ｓ１３０１において、制御部４０２は、差分データ取得要求であると判定し、Ｓ１３０２へ進む。次に、Ｓ１３０２において、制御部４０２は、差分要求の要求日時を「２０１６／０８／２７  １０：５４．１４．３６９」と特定する。次に、Ｓ１３０３において、制御部４０２は、バックアップ時、リストア時に生成したバックアップ日時、リストア日時を特定する。Ｓ１３０４において、制御部４０２は、要求に含まれる時刻がバックアップ日時以降で、リストア日時以前であるかを判定する。要求に含まれる日時情報がバックアップ以前の日時であるため、制御部４０２は、Ｎｏと判定し、Ｓ１３０６に進む。Ｓ１３０６において、制御部４０２は、現在のサーバーの日時を特定する。
Ｓ１３０７において、制御部４０２は、要求日時である「２０１６／０８／２７  １０：５４．１４．３６９」以降に変更されたデータを特定し、データベース内の最終取得日時をサーバーの日時で更新する。
また、クライアントアプリケーション５００からの差分取得要求に含まれる時刻が例えば「２０１６／０８／２７  １５：００：００．０００」であった場合、Ｓ１３０４において、制御部４０２は、Ｙｅｓと判定する。その結果、Ｓ１３０５において、制御部４０２は、クライアントアプリケーション５００にデータ不整合エラーを返却する。
データ不整合エラーを受信したクライアントアプリケーション５００は、図１２に記載のフローチャートの処理を実行し、全データの取得要求をサーバーアプリケーション４００に対して行う。その結果、サーバーアプリケーション４００は、Ｓ９０１、Ｓ９０２、Ｓ９０３、Ｓ９０５の処理を実行し、Ｓ１３０１では全データ取得と判定し、Ｓ１３０９へ進む。Ｓ１３０９において、制御部４０２は、サーバーの日時を特定する。そして、Ｓ１３１０において、制御部４０２は、対象の全てのデータを特定する。そして、Ｓ１３１１において、制御部４０２は、該当データの最終取得日時をサーバー日時で更新する。処理が完了したら、制御部４０２は、クライアントに対して全データとサーバー日時とを返却する。このことで、サーバー上のデータベースとクライアントとの情報に不整合が発生した場合であっても全データの取得を実施することで整合性が保たれることとなる。
【００４２】
また図１３の取得処理のフローチャートの処理においては時刻補正要否情報の判定が行われないため、リストア実施後であってもクライアントに対して要時刻補正エラーを返却することがない。そのためリストア実施後にクライアントからデータ取得要求のみが実行されている間はサーバーからのレスポンス起因での時刻補正が実施されないこととなる。そしてクライアントからのデータ更新要求を受信したタイミングで図１１の更新要求処理のフローチャートの処理に従い、要時刻補正エラーのレスポンスを返す。そして、クライアントアプリケーション５００は、時刻補正要求が必要であることを検知し、サーバーアプリケーション４００に対して時刻補正を実施し、補正時刻情報を正しい状態に更新する。その後、クライアントアプリケーションは、データの更新要求を再度実施することで時刻が補正された状態でのデータ更新処理の実行を保証する。
【００４３】
以上の情報処理によりサーバーアプリケーション４００においてリストア処理が実施された後に、サーバーアプリケーション４００が管理する補正時間情報を補正した後に、データ更新要求が処理されることが保証される。その結果、サーバーアプリケーション４００が動作するデジタル複合機１１０ｂのＨＤＤの故障による交換や、その他のデジタル複合機にデータをリストアしサーバーとして動作をさせた場合にも正しい状態での同期を行うことが可能となる。
また時刻補正を行わなくても問題のない、データ取得要求については時刻補正を実施するよりも早くデータを取得することが可能となる。
【００４４】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００４５】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
【００４６】
以上、上述した各実施形態の処理によれば、ＨＤＤを交換した場合や、新規にサーバー機能を有効化した場合等にも各クライアントからの更新要求の順序を保証できるようにすることができる。
【符号の説明】
【００４７】
２０２  ＣＰＵ
３０１  ＣＰＵ
４００  サーバーアプリケーション
５００  クライアントアプリケーション
【図１】
2018073283.tif 000006
【図２】
2018073283.tif 000007
【図３】
2018073283.tif 000008
【図４】
2018073283.tif 000009
【図５】
2018073283.tif 000010
【図６】
2018073283.tif 000011
【図７】
2018073283.tif 000012
【図８Ａ】
2018073283.tif 000013
【図８Ｂ】
2018073283.tif 000014
【図９】
2018073283.tif 000015
【図１０】
2018073283.tif 000016
【図１１】
2018073283.tif 000017
【図１２】
2018073283.tif 000018
【図１３】
2018073283.tif 000019