(57)【特許請求の範囲】
【請求項１】
第１のデータを管理する第１の情報処理装置と、前記第１のデータの複製である第２のデータを管理する第２の情報処理装置と、を含むシステムであって、
前記第１の情報処理装置は、
前記第１のデータの第１の更新に応じて送信した、前記第１の更新の内容を示す更新情報に基づく前記第２のデータの第２の更新の失敗を検知する検知手段と、
前記検知手段により前記第２の更新の失敗が検知された場合、前記第１のデータの内容を示す情報である内容情報を、前記第２の情報処理装置に送信する送信手段と、
を有し、
前記第２の情報処理装置は、
前記第１の情報処理装置から前記内容情報が受信された場合、受信された前記内容情報に基づいて、前記第２のデータの内容を、前記第１のデータの内容に更新する更新手段を有し、
前記送信手段は、前記検知手段により前記第２の更新の失敗が検知され、前記第２の更新の失敗が再度の第２の更新の実行により解消し得る失敗である場合、前記第１の更新の内容を示す更新情報を前記第２の情報処理装置に再送信し、
前記更新手段は、前記第１の情報処理装置から前記更新情報が再受信された場合、再受信された前記更新情報に基づいて、前記第２の更新を再実行し、
前記送信手段は更に、前記再送信を行っても前記第２の更新の失敗が解消しない場合に、前記内容情報を、前記第２の情報処理装置に送信することを特徴とするシステム。
【請求項２】
前記送信手段は、前記検知手段により前記第２の更新の失敗が検知され、前記第２の更新の失敗が前記更新情報の再送信により解消し得る失敗でない場合、前記更新情報を再送信せずに、前記内容情報を、前記第２の情報処理装置に送信することを特徴とする請求項１記載のシステム。
【請求項３】
前記第２の更新が失敗した回数が設定された閾値未満である場合、前記送信手段は、前記更新情報を前記第２の情報処理装置に再送信することを特徴とする請求項１又は２記載のシステム。
【請求項４】
前記第２の更新が失敗した回数が前記閾値に達した場合、前記送信手段は、前記内容情報を、前記第２の情報処理装置に送信することを特徴とする請求項３記載のシステム。
【請求項５】
前記検知手段により前記第２の更新の失敗が検知された場合、前記第２の更新が失敗したことを示す情報を出力する出力手段を更に有することを特徴とする請求項１乃至４何れか１項記載のシステム。
【請求項６】
前記検知手段により前記第２の更新の失敗が検知された場合、前記出力手段は、前記第２の更新が失敗したことと、前記第２の更新の失敗の原因と、を示す情報を出力することを特徴とする請求項５記載のシステム。
【請求項７】
前記検知手段により前記第２の更新の失敗が検知された場合、前記出力手段は、前記第２の更新が失敗したことと、前記第２の更新の失敗の原因の解消の示唆となる情報と、を示す情報を出力する請求項５記載のシステム。
【請求項８】
前記内容情報は、前記第１のデータであることを特徴とする請求項１乃至７何れか１項記載のシステム。
【請求項９】
第１のデータを管理する情報処理装置であって、
前記第１のデータの第１の更新に応じて送信した、前記第１の更新の内容を示す更新情報に基づく、前記第１のデータの複製である第２のデータの第２の更新の失敗を検知する検知手段と、
前記検知手段により前記第２の更新の失敗が検知された場合、前記第１のデータの内容を示す情報である内容情報を、前記第２のデータの管理先に送信する送信手段と、を有し、
前記送信手段は、前記検知手段により前記第２の更新の失敗が検知され、前記第２の更新の失敗が再度の第２の更新の実行により解消し得る失敗である場合、前記第１の更新の内容を示す更新情報を第２の情報処理装置に再送信し、
前記送信手段は更に、前記再送信を行っても前記第２の更新の失敗が解消しない場合に、前記内容情報を、前記第２の情報処理装置に送信することを特徴とする情報処理装置。
【請求項１０】
前記情報処理装置は、複合機である請求項９記載の情報処理装置。
【請求項１１】
第１のデータを管理する第１の情報処理装置と、前記第１のデータの複製である第２のデータを管理する第２の情報処理装置と、を含むシステムにおける情報処理方法であって、
前記第１の情報処理装置が、前記第１のデータの第１の更新に応じて送信した、前記第１の更新の内容を示す更新情報に基づく前記第２のデータの第２の更新の失敗を検知する検知ステップと、
前記第１の情報処理装置が、前記検知ステップで前記第２の更新の失敗が検知された場合、前記第１のデータの内容を示す情報である内容情報を、前記第２の情報処理装置に送信する送信ステップと、
前記第２の情報処理装置が、前記第１の情報処理装置から前記内容情報が受信された場合、受信された前記内容情報に基づいて、前記第２のデータの内容を、前記第１のデータの内容に更新する更新ステップと、を含み、
前記送信ステップでは、前記検知ステップで前記第２の更新の失敗が検知され、前記第２の更新の失敗が再度の第２の更新の実行により解消し得る失敗である場合、前記第１の更新の内容を示す更新情報を前記第２の情報処理装置に再送信し、
前記更新ステップでは、前記第１の情報処理装置から前記更新情報が再受信された場合、再受信された前記更新情報に基づいて、前記第２の更新を再実行し、
前記送信ステップでは更に、前記再送信を行っても前記第２の更新の失敗が解消しない場合に、前記内容情報を、前記第２の情報処理装置に送信することを特徴とする情報処理方法。
【請求項１２】
第１のデータを管理する情報処理装置が実行する情報処理方法であって、
前記第１のデータの第１の更新に応じて送信した、前記第１の更新の内容を示す更新情報に基づく、前記第１のデータの複製である第２のデータの第２の更新の失敗を検知する検知ステップと、
前記検知ステップで前記第２の更新の失敗が検知された場合、前記第１のデータの内容を示す情報である内容情報を、前記第２のデータの管理先に送信する送信ステップと、
を含み、
前記送信ステップでは、前記検知ステップで前記第２の更新の失敗が検知され、前記第２の更新の失敗が再度の第２の更新の実行により解消し得る失敗である場合、前記第１の更新の内容を示す更新情報を第２の情報処理装置に再送信し、
前記送信ステップでは更に、前記再送信を行っても前記第２の更新の失敗が解消しない場合に、前記内容情報を、前記第２の情報処理装置に送信することを特徴とする情報処理方法。
【請求項１３】
第１のデータを管理するコンピュータに、
前記第１のデータの第１の更新に応じて送信した、前記第１の更新の内容を示す更新情報に基づく、前記第１のデータの複製である第２のデータの第２の更新の失敗を検知する検知ステップと、
前記検知ステップで前記第２の更新の失敗が検知された場合、前記第１のデータの内容を示す情報である内容情報を、前記第２のデータの管理先に送信する送信ステップと、
を実行させるためのプログラムであって、
前記送信ステップでは、前記検知ステップで前記第２の更新の失敗が検知され、前記第２の更新の失敗が再度の第２の更新の実行により解消し得る失敗である場合、前記第１の更新の内容を示す更新情報を第２の情報処理装置に再送信し、
前記送信ステップでは更に、前記再送信を行っても前記第２の更新の失敗が解消しない場合に、前記内容情報を、前記第２の情報処理装置に送信することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、複合機等のネットワークに接続可能な情報処理装置内に記憶されているデータに関して、そのマスターデータをネットワークに接続された管理サーバー等の他の情報処理装置に保存して一元管理することがある。そのデータとそのデータのマスターデータとは、内容が同期されており、管理サーバー上のマスターデータの内容が更新されると、更新後の内容が複合機等に通知されて複合機等の内部のデータの内容も更新される。同様に、複合機等の内部のデータの内容が更新されると、管理サーバー上のマスターデータの内容も更新される。特許文献１に記載のシステムでは、複合機のデータが更新されると、更新内容がマスターデータに反映される。
また、管理サーバーに問題が発生した場合にシステムを維持できなくなることに備えて、特許文献２のように、マスターデータの複製データを管理サーバーとは別の情報処理装置において保存させ、データの二重化を行う方法やシステムが提案されている。
一方、特許文献３には、ネットワークを介してデータの多重化を行う際にデータが破損することにより多重化が行えなかった等の場合に、データを復旧させる方法も提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１２１９８９号公報
【特許文献２】特許第５６９１２４６号公報
【特許文献３】特許第５１３０５３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
情報処理装置が管理するあるデータの複製データを、他の情報処理装置に管理させる場合、従来の技術では、同期処理に失敗した場合、複製データが元のデータと内容が一致しているかを確認できず、データの保全性を保証できない場合がある。データの保全性とは、データが矛盾なく整合していることである。
例えば、特許文献１のシステムでは、複合機においてデータの更新が有った場合に、同期処理により、マスターデータ全体が上書きされるのではなく、複合機において更新があった一部のデータが更新される。即ち、前回同期した際のデータとの差分の情報が複合機からサーバーに通知され、通知された差分の情報によって、マスターデータの一部が更新される。
このマスターデータについて、特許文献２や特許文献３のシステムのように、マスターデータの複製データを、マスターデータとは別に管理することを考える。その場合、マスターデータが更新される度に複製データも更新されることとなる。この更新は上述のように、前回同期した際のマスターデータと現在のマスターデータとの差分の情報を用いて行われる。
この際、複製データの更新が失敗した場合、マスターデータと、複製データとの間で更新差分を用いた更新状況にずれが生じてしまう。このような場合、マスターデータと複製データとの内容が一致するか否かの確認が困難となり、データの保全性が低下するという問題がある。
【課題を解決するための手段】
【０００５】
本発明のシステムは、第１のデータを管理する第１の情報処理装置と、前記第１のデータの複製である第２のデータを管理する第２の情報処理装置と、を含むシステムであって、前記第１の情報処理装置は、前記第１のデータの第１の更新に応じて送信した、前記第１の更新の内容を示す更新情報に基づく前記第２のデータの第２の更新の失敗を検知する検知手段と、前記検知手段により前記第２の更新の失敗が検知された場合、前記第１のデータの内容を示す情報である内容情報を、前記第２の情報処理装置に送信する送信手段と、を有し、前記第２の情報処理装置は、前記第１の情報処理装置から前記内容情報が受信された場合、受信された前記内容情報に基づいて、前記第２のデータの内容を、前記第１のデータの内容に更新する更新手段を有し、前記送信手段は、前記検知手段により前記第２の更新の失敗が検知され、前記第２の更新の失敗が再度の第２の更新の実行により解消し得る失敗である場合、前記第１の更新の内容を示す更新情報を前記第２の情報処理装置に再送信し、前記更新手段は、前記第１の情報処理装置から前記更新情報が再受信された場合、再受信された前記更新情報に基づいて、前記第２の更新を再実行し、前記送信手段は更に、前記再送信を行っても前記第２の更新の失敗が解消しない場合に、前記内容情報を、前記第２の情報処理装置に送信することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、データの保全性を向上させることができる。
【図面の簡単な説明】
【０００７】
【図１】同期システムのシステム構成の一例を示す図である。
【図２】複合機のハードウェア構成の一例を示す図である。
【図３】複合機の機能構成の一例を示す図である。
【図４】設定画面の一例を示す図である。
【図５】複合機の機能構成の一例を示す図である。
【図６】複合機の処理の一例を示すフローチャートである。
【図７】複合機の処理の一例を示すフローチャートである。
【図８】複合機の処理の一例を示すフローチャートである。
【図９】複合機の処理の一例を示すフローチャートである。
【図１０】通知画面の一例を示す図である。
【図１１】複合機の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜実施形態１＞
図１は、同期システムのシステム構成の一例を示す図である。同期システムは、複合機１１０ａ、複合機１１０ｂ、複合機１１０ｃを含む。各要素は、ＬＡＮやインターネット等のネットワーク１００を介して相互に接続されている。以下では、複合機１１０ａ、複合機１１０ｂ、複合機１１０ｃを総称して複合機１１０とする。複合機１１０のそれぞれは、ネットワーク接続可能な情報処理装置の一例であり、印刷機能やスキャン機能を有する。
複合機１１０ａは、サーバー機能を有する。複合機１１０ａのサーバー機能は、複合機１１０の各種設定データを管理している。設定データとは、複合機１１０の動作に関する種々のデータであり、例えば印刷設定の情報等である。複合機１１０ａのサーバー機能１２０は、管理している設定データのレプリケーションを、複合機１１０のうちの何れかに対して実施する。レプリケーションとは、情報処理装置が記憶するあるデータの複製を他の情報処理装置内に生成して、双方のデータを同期させながら管理する処理のことである。本実施形態では、複合機１１０ａは、サーバー機能１２０を介して管理している各種設定データのレプリケーションを、複合機１１０ｃに対して実施することとする。複合機１１０ａは、第１の情報処理装置の一例である。複合機１１０ｃは、第２の情報処理装置の一例である。
【００１０】
複合機１１０ａのサーバー機能は、複合機１１０のそれぞれを、データの同期を行う対象の複合機として登録する。同期システムにおいて、複合機１１０のそれぞれは、ユーザーによる操作やコピー／ＦＡＸ等の処理実行等によって内部のデータに更新が発生した場合、その更新内容を複合機１１０ａのサーバー機能へ送信して、設定データの更新を要求する。複合機１１０ａのサーバー機能は、送信された更新内容に応じて、管理する設定データを更新する。複合機１１０ａのサーバー機能は、設定データに更新があるか否かを定期的、又は必要に応じて、複合機１１０のそれぞれに問い合わせ、更新されたデータがあれば更新内容を取得して、取得した更新内容に応じて管理する設定データを更新する。
本実施形態では、データの同期処理を行うサーバー機能が複合機１１０ａに実装されることとする。しかし、例えば、同期システムにパーソナルコンピュータやサーバー装置等の情報処理装置が含まれる場合、それらの情報処理装置にサーバー機能が実装されることとしてもよい。また、本実施形態では、同期システムは、複合機１１０のそれぞれに記憶されているデータを同期させることとする。しかし、同期システムは、例えば、同期システムに複合機１１０以外に複数の情報処理装置が含まれている場合、その複数の情報処理装置に記憶されているデータを同期させることとしてもよい。また、本実施形態では、同期システムは、複合機１１０のそれぞれ内の設定データを同期することとするが、他のデータ（例えば、複合機１１０の利用履歴データ等）を同期することとしてもよい。
【００１１】
図２は、複合機１１０のハードウェア構成の一例を示す図である。複合機１１０は、コントローラユニット２００、操作部２２０、スキャナ２３０、プリンタ２４０を含む。コントローラユニット２００は、操作部２２０と接続されるとともに、画像入力デバイスであるスキャナ２３０や画像出力デバイスであるプリンタ２４０とも接続される。
コントローラユニット２００は、操作部Ｉ／Ｆ２０１、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３を含む。また、コントローラユニット２００は、デバイスＩ／Ｆ２０４、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２０５、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０６、ＮｅｔｗｏｒｋＩ／Ｆ２０７、画像処理部２０８を含む。各要素は、システムバス２１０を介して、相互に接続されている。
操作部Ｉ／Ｆ２０１は、タッチパネル等の入力装置で構成される操作部２２０を介した入力を受付けるインタフェースである。操作部Ｉ／Ｆ２０１は、操作部２２０に表示する各種データ等の情報を操作部２２０に送信したり、操作部２２０に対して入力された情報を取得して、ＣＰＵ２０２に送信したりする。ＣＰＵ２０２は、コントローラユニット２００を制御する中央演算装置である。
【００１２】
ＲＡＭ２０３は、ＣＰＵ２０２のワークエリアやデータの一時的な記憶場所として機能する記憶装置である。デバイスＩ／Ｆ２０４は、スキャナ２３０やプリンタ２４０等のデバイスとの間のデータや制御信号の入出力に利用されるインタフェースである。ＨＤＤ２０５は、各種設定情報、各種プログラム等を記憶する記憶装置である。ＲＯＭ２０６は、各種設定情報やブートプログラム等を記憶する記憶装置である。
ＮｅｔｗｏｒｋＩ／Ｆ２０７は、ネットワーク１００に接続され、ネットワーク１００を介してネットワーク１００上の各装置との間での情報の入出力に利用されるインタフェースである。画像処理部２０８は、スキャナ２３０からの入力画像処理、プリンタ２４０への出力画像処理、画像回転、画像圧縮、解像度変換、色空間変換、階調変換等の処理を行う演算装置である。
ＣＰＵ２０２は、ＲＯＭ２０６に格納されているブートプログラムを実行することで、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を立ち上げる。ＣＰＵ２０２は、立ち上げたＯＳ上で、ＨＤＤ２０５に記憶されている各種プログラムを実行し、各種処理を実現する。
複合機１１０ａのＣＰＵが、複合機１１０ａのＨＤＤ又はＲＯＭに記憶されたプログラムに基づき処理を実行することで、図３で後述する複合機１１０ａの機能及び図６、７、９、１１で後述するフローチャートの処理等が実現される。
複合機１１０ｃのＣＰＵが、複合機１１０ｃのＨＤＤ又はＲＯＭに記憶されたプログラムに基づき処理を実行することで、図５で後述する複合機１１０ｃの機能及び図８で後述するフローチャートの処理等が実現される。
【００１３】
図３は、複合機１１０ａの機能構成等の一例を示す図である。
複合機１１０ａは、データ管理アプリケーション３００、データ管理部３１０を含む。データ管理アプリケーション３００は、複合機１１０ａのサーバー機能を実現する。データ管理部３１０は、複合機１１０ａのＨＤＤ２０５、ＲＡＭ２０３等に記憶されている設定データを管理する。また、複合機１１０のそれぞれは、データ同期クライアント３２０を含む。
データ管理アプリケーション３００は、送受信部３０１、制御部３０２、解析部３０３、データ処理部３０４、表示制御部３０５を含む。送受信部３０１は、ＮｅｔｗｏｒｋＩ／Ｆ２０７を介して、複合機１１０の何れかからの処理要求を受信したり、要求された処理の結果を示す情報を要求元に送信したりする。制御部３０２は、送受信部３０１により受信された処理要求に応じた処理の制御を行う。解析部３０３は、送受信部３０１により受信された処理要求を解析し、どのような処理の要求であるかを把握する。データ処理部３０４は、送受信部３０１により受信された処理要求に応じて、データ管理部３１０とやり取りしてデータの作成／更新／削除／参照を実行する。表示制御部３０５は、複合機１１０ａの操作部に対して種々の情報を表示し、また、外部の装置に対して、種々のユーザーインターフェース画面を提供する。
データ同期クライアント３２０は、複合機１１０のそれぞれに実装されており、ネットワーク１００を介して、サーバー機能を実現するデータ管理アプリケーション３００とデータの送受信を行う。
本実施形態では、データ管理アプリケーション３００及びデータ管理部３１０は、複合機１１０ａに実装されることとした。しかし、データ管理アプリケーション３００及びデータ管理部３１０は、複合機１１０のそれぞれに実装されることとしてもよい。その場合、複合機１１０のうちサーバー機能を実現する複合機において、データ管理アプリケーション３００及びデータ管理部３１０が有効化され、他の複合機において、データ管理アプリケーション３００及びデータ管理部３１０が無効化されることになる。
【００１４】
本実施形態では、データ管理アプリケーション３００は、複合機１１０の設定データである「デバイス基本データ」「デバイス設定データ」「パーソナライズデータ」を管理する。「デバイス基本データ」は、同期システムに登録された複合機１１０の装置識別番号やバージョン等の装置情報に関するデータである。「デバイス設定データ」は、複合機１１０のネットワーク設定、プリンタ動作、スキャン動作等の設定情報、デバイスの動作情報等、に関するデータである。「パーソナライズデータ」は、複合機１１０を使用するユーザーが自分用のデータとして登録する表示言語やショートカットボタン等に関するデータである。データ管理アプリケーション３００は、これらの設定データを、データ管理部３１０に管理するよう依頼する。そして、データ管理部３１０は、例えば、ＨＤＤ２０５、ＲＡＭ２０３等に実装された設定データを記憶するデータベース（ＤＢ）に、これらの設定データを記憶し管理する。データ管理アプリケーション３００は、複合機１１０ｃにデータ管理部３１０により管理されているデータベースをレプリケーションする。
以下では、複合機１１０ａ、複合機１１０ｂ、複合機１１０ｃが同期システムのクライアントとして登録済みであるとする。
【００１５】
図４は、データ管理部３１０により管理されるＤＢを別の複合機１１０にレプリケーションする際に利用される種々のパラメータを設定するための設定画面の一例を示す図である。以下では、データ管理部３１０により管理されるＤＢを、管理ＤＢとする。管理ＤＢは、第１のデータの一例である。また、データ管理アプリケーション３００は、例えば、外部の情報処理装置からネットワーク１００を介して、設定画面の表示の要求を受付ける。そして、データ管理アプリケーション３００は、表示制御部３０５を介して、要求元の情報処理装置に図４の設定画面の情報を送信し、その情報処理装置の表示部に設定画面を表示させるように制御する。そして、データ管理アプリケーション３００は、要求元の情報処理装置の表示部に表示された設定画面にユーザーにより入力された情報を受付ける。
また、データ管理アプリケーション３００は、例えば、複合機１１０ａの表示部に図４の設定画面を表示し、表示した設定画面を介してユーザーからの入力を受付けることとしてもよい。
図４の設定画面は、入力フィールド４０１、開始ボタン４０２、キャンセルボタンを含む。入力フィールド４０１は、レプリケーションに関するパラメータを入力する入力フィールドである。入力フィールド４０１には、レプリケーション先（管理ＤＢの複製の管理先）となる複合機１１０のＩＰアドレス、レプリケーションの際の認証用のアクセスユーザー名及びパスワード、レプリケーション（データの同期処理）を実行する間隔等が入力される。データ管理アプリケーション３００は、開始ボタン４０２の選択を検知すると、入力フィールド４０１に入力された情報に基づいて、レプリケーションの実行を開始する。
【００１６】
図５は、本実施形態におけるレプリケーション先である複合機１１０ｃの機能構成等の一例を示す図である。複合機１１０ｃは、レプリケーションアプリケーション５００、データ管理部５１０を含む。データ管理部５１０は、管理ＤＢを複製して生成されたＤＢを、複合機１１０ｃのＨＤＤ等に記憶し、管理する。そして、レプリケーションアプリケーション５００は、データ管理部５１０により管理される管理ＤＢを複製して生成されたＤＢを、管理ＤＢと同期するように制御する。本実施形態では、レプリケーションアプリケーション５００、及びデータ管理部５１０は、複合機１１０ｃに実装されることとするが、複合機１１０ａ、又は複合機１１０ｂに実装されることとしてもよい。また、レプリケーションアプリケーション５００、及びデータ管理部５１０は、ネットワーク１００に接続されたパーソナルコンピュータ（ＰＣ）、サーバー装置等の情報処理装置に実装されることとしてもよい。
レプリケーションアプリケーション５００は、送受信部５０１、制御部５０２、解析部５０３、データ処理部５０４を含む。
送受信部５０１は、ＮｅｔｗｏｒｋＩ／Ｆ２０７を介して、複合機１１０ａからの処理の要求を受信したり、処理の結果を外部の装置に送信したりする。制御部５０２は、送受信部５０１により受信された処理の要求に応じた処理の制御を行う。解析部５０３は、送受信部５０１により受信された処理の要求を解析する。データ処理部５０４は、送受信部５０１により受信された処理の要求に応じて、データ管理部５１０とやり取りしてデータの作成／更新／削除／参照を実行する。データ管理部５１０が管理するデータは、複合機１１０ｃのＨＤＤやＲＡＭ等に記憶される。
【００１７】
図６は、複合機１１０ａの処理の一例を示すフローチャートである。データ管理アプリケーション３００は、図４の設定画面の開始ボタン４０２の選択を検知した場合、図６のフローチャートの処理を開始する。図６を用いて、レプリケーションが開始された際の処理を説明する。本実施形態では、図４の設定画面の入力フィールド４０１にレプリケーション先として、複合機１１０ｃのＩＰアドレスが入力されたとする。
Ｓ６０１において、制御部３０２は、データ管理部３１０により管理される管理ＤＢへのアクセスが他から行えないように制御する。制御部３０２は、例えば、データ処理部３０４にアクセス排他を要求する。そして、データ処理部３０４は、管理ＤＢのデータが変更されないように、管理ＤＢのデータをロックする。
Ｓ６０２において、制御部３０２は、図４の設定画面の入力フィールド４０１に入力されたＩＰアドレスへアクセス可能であるか否かを確認する。本実施形態では、図４の設定画面の入力フィールド４０１には、複合機１１０ｃのＩＰアドレスが入力されているので、制御部３０２は、複合機１１０ｃへアクセス可能か否かを確認する。
Ｓ６０３において、制御部３０２は、Ｓ６０２で複合機１１０ｃへアクセス可能であることが確認されたか否かを判定する。制御部３０２は、Ｓ６０２で複合機１１０ｃへアクセス可能であることが確認されたと判定した場合、Ｓ６０４の処理に進む。制御部３０２は、Ｓ６０２で複合機１１０ｃへアクセス可能であることが確認されなかったと判定した場合、Ｓ６２１の処理に進む。
【００１８】
Ｓ６０４において、制御部３０２は、送受信部３０１を介して、複合機１１０ｃのレプリケーションアプリケーション５００に対して、管理ＤＢの複製であるＤＢの受け入れが可能か否かの問い合わせを送信する。以下では、管理ＤＢの複製であるＤＢを、複製ＤＢとする。
Ｓ６０５において、制御部３０２は、Ｓ６０４で送信した問い合わせに対する複合機１１０ｃからの応答を受信したか否かを判定する。制御部３０２は、例えば、設定された期間の間、複合機１１０ｃからの応答を待機する。そして、制御部３０２は、設定された期間の間に複合機１１０ｃから応答を受信したら、複合機１１０ｃからの応答を受信したと判定する。また、制御部３０２は、設定された期間の間に複合機１１０ｃから応答がなければ、Ｓ６０４で送信した問い合わせに対する複合機１１０ｃからの応答を受信していないと判定する。制御部３０２は、Ｓ６０４で送信した問い合わせに対する複合機１１０ｃからの応答を受信したと判定した場合、Ｓ６０６の処理に進む。制御部３０２は、Ｓ６０４で送信した問い合わせに対する複合機１１０ｃからの応答を受信していないと判定した場合、Ｓ６２１の処理に進む。
Ｓ６０６において、制御部３０２は、Ｓ６０５で受信したと判定した複合機１１０ｃからの応答の内容が、複製ＤＢを受け入れ可能であることを示す応答であるか否かを判定する。制御部３０２は、Ｓ６０５で受信したと判定した複合機１１０ｃからの応答の内容が、複製ＤＢを受け入れ可能であることを示す応答であると判定した場合、Ｓ６０７の処理に進む。制御部３０２は、Ｓ６０５で受信したと判定した複合機１１０ｃからの応答の内容が、複製ＤＢを受け入れできないことを示す応答であると判定した場合、Ｓ６２１の処理に進む。
【００１９】
Ｓ６０７において、制御部３０２は、データ処理部３０４に対して、管理ＤＢの内容を示す情報の生成を指示する。管理ＤＢの内容を示す情報を、管理ＤＢの内容情報とする。管理ＤＢの内容情報は、例えば、管理ＤＢそのものの情報であってもよいし、初期状態の管理ＤＢにこれまで加えられた全ての変更を示す設定された形式のログ情報等であってもよい。以下では、レプリケーションの開始の際に、レプリケーション先に送信されるデータを、レプリケーション用初期データとする。本実施形態では、制御部３０２は、データ処理部３０４に対して、レプリケーション用初期データとして、管理ＤＢの内容情報の生成を指示する。
本実施形態では、データ処理部３０４は、管理ＤＢそのものの情報を複製し、複製した情報を、レプリケーション用初期データとして制御部３０２に渡す。
制御部３０２は、データ処理部３０４からレプリケーション用初期データを取得し、送受信部３０１を介して、取得したレプリケーション用初期データを複合機１１０ｃに実装されるレプリケーションアプリケーション５００に送信する。これにより、制御部３０２は、複製ＤＢの登録をレプリケーションアプリケーション５００に指示する。
レプリケーションアプリケーション５００は、レプリケーション用初期データである複製ＤＢを受信したら、以下の処理を行う。即ち、レプリケーションアプリケーションは、データ管理部５１０を介して、複製ＤＢを、複合機１１０ｃのＨＤＤ等に記憶する。以降、データ管理部５１０は、記憶した複製ＤＢを管理することになる。データ管理部５１０により管理される複製ＤＢは、第２のデータの一例である。
【００２０】
Ｓ６０８において、制御部３０２は、送受信部３０１を介して、Ｓ６０７で指示した複製ＤＢの登録が成功したことを示す応答をレプリケーションアプリケーションから受信したか否かを判定する。制御部３０２は、Ｓ６０７で指示した複製ＤＢの登録が成功したことを示す応答をレプリケーションアプリケーション５００から受信したと判定した場合、Ｓ６０９の処理に進む。また、制御部３０２は、Ｓ６０７で指示した複製ＤＢの登録が成功したことを示す応答をレプリケーションアプリケーション５００から受信していないと判定した場合、Ｓ６２２の処理に進む。
より具体的には、制御部３０２は、例えば、設定された期間の間、レプリケーションアプリケーション５００からの応答を待機する。そして、制御部３０２は、レプリケーションアプリケーション５００からの応答が、登録が成功したことを示す情報である場合、Ｓ６０９の処理に進む。また、制御部３０２は、レプリケーションアプリケーション５００からの応答が、登録が成功したことを示す情報でない場合、又は、設定された期間内に応答がなかった場合、Ｓ６２２の処理に進む。
ここで、制御部３０２は、例えば、タイムアウトエラー（設定された期間に応答が得られなかった場合）等の場合、再度Ｓ６０７の処理をやり直してもよい。
【００２１】
Ｓ６０９において、制御部３０２は、複合機１１０ｃを管理ＤＢのレプリケーション先として登録する。より具体的には、制御部３０２は、例えば、複合機１１０ｃの情報を、レプリケーション先を示す情報として、複合機１１０ａのＨＤＤ等に記憶する。
Ｓ６１０において、制御部３０２は、レプリケーションのために必要な管理ＤＢについての変更の内容を示す差分データの管理を、データ処理部３０４に指示する。差分データとは、管理ＤＢについての変更の内容を示す情報である。
差分データの管理の指示を受けたデータ処理部３０４は、データ管理部３１０により管理される管理ＤＢと、データ管理部５１０により管理される複製ＤＢとの同期処理を実行する間隔でタイマーイベントをセットする。データ処理部３０４は、例えば、図４の設定画面の入力フィールドに入力された間隔でタイマーイベントをセットする。また、データ処理部３０４は、例えば、設定された間隔（例えば１時間等）でタイマーイベントをセットすることとしてもよい。そして、データ処理部３０４は、データ管理部３１０に対して、管理ＤＢについての差分データの管理を指示する。以降、タイマーイベントが発生する度に、同期システムは、図７、８で後述する、管理ＤＢとデータ管理部５１０により管理される複製ＤＢとの同期処理を実行することになる。
データ管理部３１０は、管理ＤＢの差分データの管理を開始する。これにより、データ管理部３１０は、Ｓ６０７で生成されたレプリケーション用初期データの内容からの変更を示す差分データを特定できるようになる。
【００２２】
Ｓ６１１において、制御部３０２は、データ処理部３０４にＳ６０１でかけられた管理ＤＢのロックの解除を要求する。そして、データ処理部３０４は、管理ＤＢのロックを解除し、管理ＤＢへのアクセス排他を解除する。
Ｓ６２１において、制御部３０２は、複合機１１０ｃをレプリケーション先に設定できないことをユーザーに通知する。制御部３０２は、例えば、操作部２２０等に、複合機１１０ｃをレプリケーション先に設定できないことを示す情報（例えば、文字列、画像等）を表示することで、レプリケーション処理の開始に失敗したことをユーザーに通知する。また、制御部３０２は、例えば、複合機１１０ｃをレプリケーション先に設定できないことを示す情報を設定された送信先に送信することで、レプリケーション処理の開始に失敗したことをユーザーに通知してもよい。
Ｓ６２２において、制御部３０２は、レプリケーション処理の開始に失敗したことをユーザーに通知する。制御部３０２は、例えば、操作部２２０等にレプリケーション処理の開始に失敗したことを示す情報（例えば、文字列、画像等）を表示することで、レプリケーション処理の開始に失敗したことをユーザーに通知する。また、制御部３０２は、例えば、レプリケーション処理の開始に失敗したことを示す情報を設定された送信先に送信することで、レプリケーション処理の開始に失敗したことをユーザーに通知してもよい。
【００２３】
次に、Ｓ６１０でセットされたタイマーイベントが発生する度に行われる、管理ＤＢとデータ管理部５１０により管理される複製ＤＢとの同期処理について、図７、図８を用いて説明する。
図７は、複合機１１０ａの処理の一例を示すフローチャートである。図７を用いて、データ管理アプリケーション３００が定期的に同期用のデータを送信する際の処理を説明する。
制御部３０２は、Ｓ６１０でセットされたタイマーイベントが発生したことを検知し、図７の処理を開始する。図７のＳ６０１〜Ｓ６０３の処理は、図６のＳ６０１〜Ｓ６０３と同様の処理である。ただし、Ｓ６０３で、制御部３０２は、Ｓ６０２で複合機１１０ｃへアクセス可能であることが確認されたと判定した場合、Ｓ７０１の処理に進む。また、制御部３０２は、Ｓ６０２で複合機１１０ｃへアクセス可能であることが確認されなかったと判定した場合、Ｓ７１１の処理に進む。
【００２４】
Ｓ７０１において、制御部３０２は、データ処理部３０４に管理ＤＢへの変更のうち、前回発生したタイマーイベントに応じた同期処理の実行後からの生じた変更を示す差分データの取得を指示する。前回発生したタイマーイベントに応じた同期処理の実行後からの生じた変更を示す差分データは、データ管理部５１０により管理される複製ＤＢの更新の内容を示す更新情報の一例である。
データ処理部３０４は、データ管理部３１０により管理されている管理ＤＢの差分データから、前回のタイマーイベントに応じた同期処理の実行後に生じた管理ＤＢの変更を示す差分データを取得する。そして、データ処理部３０４は、取得した差分データを、同期処理用の差分データとして、制御部３０２に渡す。データ管理部３１０は、差分データとして、ＤＢに対して実行したＳＱＬの実行ログのデータを管理してもよいし、設定された形式のログのデータを管理してもよい。
制御部３０２は、データ処理部３０４から同期処理用の差分データを取得し、送受信部３０１を介して、取得した差分データをレプリケーションアプリケーション５００に送信する。これにより、制御部３０２は、管理ＤＢと、データ管理部５１０により管理される複製ＤＢとの同期処理を、レプリケーションアプリケーション５００に指示する。
また、データ処理部３０４は、今回のタイマーイベントが初めてのタイマーイベントである場合、データ管理部３１０により管理されている管理ＤＢの差分データを全て取得し、制御部３０２に渡す。
【００２５】
Ｓ７０２において、制御部３０２は、Ｓ７０１で送信した同期処理の指示に対する複合機１１０ｃからの応答を受信したか否かを判定する。制御部３０２は、例えば、設定された期間の間、複合機１１０ｃからの応答を待機する。そして、制御部３０２は、設定された期間の間に複合機１１０ｃから応答を受信したら、複合機１１０ｃからの応答を受信したと判定する。また、制御部３０２は、設定された期間の間に複合機１１０ｃから応答がなければ、Ｓ７０１で送信した指示に対する複合機１１０ｃからの応答を受信していないと判定する。制御部３０２は、Ｓ７０１で送信した指示に対する複合機１１０ｃからの応答を受信したと判定した場合、Ｓ７０３の処理に進む。送受信部３０１は、Ｓ７０１で送信した指示に対する複合機１１０ｃからの応答を受信していないと判定した場合、Ｓ７１１の処理に進む。
Ｓ７０３において、制御部３０２は、Ｓ７０２で受信したと判定した複合機１１０ｃからの応答が同期処理の成功を示す応答であるか否かを判定する。制御部３０２は、Ｓ７０２で受信したと判定した複合機１１０ｃからの応答が同期処理の成功を示す応答であると判定した場合、Ｓ７０４の処理に進む。制御部３０２は、Ｓ７０２で受信したと判定した複合機１１０ｃからの応答が同期処理の成功を示す応答でないと判定した場合、Ｓ７１１の処理に進む。
【００２６】
Ｓ７０４において、制御部３０２は、データ処理部３０４に対して、現在の管理ＤＢの状態が今回のタイマーイベントに応じた同期処理でデータ管理部５１０により管理される複製ＤＢと同期された状態であることを通知する。データ処理部３０４は、管理ＤＢへの変更の履歴の情報を、複合機１１０ａのＨＤＤ等に記憶されたファイルとして管理している。以下では、管理ＤＢへの変更の履歴の情報が記憶され、管理されているファイルを、差分管理ファイルとする。データ処理部３０４は、Ｓ７０４で制御部３０２から通知を受けると、以下の処理を行う。即ち、データ処理部３０４は、データ処理部３０４により管理されている差分管理ファイルに、現在の管理ＤＢの状態が、今回のタイマーイベントに応じた同期処理でデータ管理部５１０により管理される複製ＤＢと同期された状態であることを示す情報を記憶する。そして、データ処理部３０４は、記憶した情報に基づいて、次回のタイマーイベントに応じた同期処理において、前回の同期処理で同期された管理ＤＢの状態を把握し、その状態からの管理ＤＢの変更を示す差分データを取得する。制御部３０２は、Ｓ７０４の処理を完了すると、Ｓ６１１の処理に進む。
図７のＳ６１１の処理は、図６のＳ６１１と同様の処理である。
Ｓ７１１において、制御部３０２は、データ処理部３０４に対して、データ処理部３０４により管理されている差分管理ファイルを初期化するよう指示する。データ処理部３０４は、差分管理ファイルを初期化するよう指示を受けると、例えば、差分管理ファイルに記憶されている情報を全て削除することで、差分管理ファイルを初期化する。制御部３０２は、Ｓ７１１の処理を完了すると、Ｓ６０７の処理に進む。
【００２７】
図７のＳ６０７、Ｓ６０８の処理は、図６のＳ６０７、Ｓ６０８と同様の処理である。ただし、Ｓ６０８で、制御部３０２は、Ｓ６０７で指示した複製ＤＢの登録が成功したことを示す応答をレプリケーションアプリケーション５００から受信したと判定した場合、Ｓ７１２の処理に進む。また、制御部３０２は、Ｓ６０７で指示した複製ＤＢの登録が成功したことを示す応答をレプリケーションアプリケーション５００から受信していないと判定した場合、Ｓ７２１の処理に進む。
Ｓ７１２において、制御部３０２は、データ処理部３０４に管理ＤＢに行われた変更の内容を示す情報を、差分管理ファイルに記憶する処理を、現時点から開始するように指示する。データ処理部３０４は、ステップＳ７１１で初期化された差分管理ファイルに対して、管理ＤＢに変更の度に、変更の内容を示す情報を記憶する処理を開始する。
Ｓ７２１において、制御部３０２は、今回のタイマーイベントに応じた管理ＤＢとデータ管理部５１０により管理される複製ＤＢとの同期処理における複製ＤＢの更新が失敗したことをユーザーに通知する。制御部３０２は、例えば、操作部２２０等に今回のタイマーイベントに応じた管理ＤＢとデータ管理部５１０により管理される複製ＤＢとの同期処理が失敗したことを示す情報（例えば、文字列、画像等）を表示する。これにより、制御部３０２は、ことをユーザーに通知する。また、制御部３０２は、例えば、今回のタイマーイベントに応じた管理ＤＢとデータ管理部５１０により管理される複製ＤＢとの同期処理における複製ＤＢの更新が失敗したことを示す情報を設定された送信先に送信してもよい。こうすることでも、制御部３０２は、レプリケーション処理の開始に失敗したことをユーザーに通知できる。
【００２８】
図７、図８の同期処理において、データ管理部５１０により管理される複製ＤＢの更新は、様々な原因により失敗する場合がある。失敗の原因としては、例えば、複合機１１０ａと複合機１１０ｃとの間の通信経路に発生した異常により通信ができないこと、複合機１１０ｃでメモリの空き容量不足等の何らかのエラーが生じたことがある。また、失敗の原因としては、複合機１１０ａが送信した差分データが適切な差分データでないこと等もある。そして、データ管理部５１０により管理される複製ＤＢの更新が失敗した場合、管理ＤＢとデータ管理部５１０により管理される複製ＤＢとが一致することが保証されないこととなる。
そこで、本実施形態では、制御部３０２は、Ｓ６０３、Ｓ７０２、Ｓ７０３の処理により、データ管理部５１０により管理される複製ＤＢの更新の失敗を検知することとした。そして、制御部３０２は、データ管理部５１０により管理される複製ＤＢの更新の失敗を検知した場合、Ｓ７１１以降の処理に進み、レプリケーション用初期データを複合機１１０ｃに送信する。そして、複合機１１０ｃは、送信されたレプリケーション用初期データに基づいて、データ管理部５１０により管理される複製ＤＢを更新することで、データ管理部５１０により管理される複製ＤＢを、現在の管理ＤＢと同じ内容に更新できる。これにより、同期システムは、データ管理部５１０により管理される複製ＤＢの更新が失敗した場合でも、データ管理部５１０により管理される複製ＤＢを、管理ＤＢと同じ内容に更新できる。
【００２９】
図８は、複合機１１０ｃの処理の一例を示すフローチャートである。図８を用いて、複合機１１０ｃが、複合機１１０ａにより図７のＳ７０１又はＳ６０７の処理で送信されたデータを受信した際に行う同期処理を説明する。
Ｓ８０１において、制御部５０２は、データ管理部５１０により管理される複製ＤＢへのアクセスが他から行えないように、データ処理部５０４に複製ＤＢへのアクセスを排他するよう指示する。データ処理部５０４ｈが、データ管理部５１０により管理される複製ＤＢのデータをロックし、内容が変更されないようにする。
Ｓ８０２において、制御部５０２は、送受信部５０１を介して複合機１１０ａから受信したデータを、一時ファイルとして、ＨＤＤ２０５、ＲＡＭ２０３等に記憶する。この複合機１１０ａから受信したデータは、図７のＳ７０１又はＳ６０７の処理で送信されたデータである。一時ファイルとは、ある処理が行われている間等の設定された一時的な期間の間だけ記憶されるファイルである。
Ｓ８０３において、制御部５０２は、解析部５０３を介して、Ｓ８０２で一時ファイルとして記憶したデータが、レプリケーション用初期データであるか否かを判定する。制御部５０２は、例えば、この判定の処理の実行を解析部５０３に指示し、判定の結果を解析部５０３から取得する。制御部５０２は、Ｓ８０２で一時ファイルとして記憶したデータが、レプリケーション用初期データであると判定した場合、Ｓ８１１の処理に進む。また、制御部５０２は、Ｓ８０２で一時ファイルとして記憶したデータが、レプリケーション用初期データでないと判定した場合、Ｓ８０４の処理に進む。
【００３０】
Ｓ８０４において、制御部５０２は、データ処理部５０４を介して、Ｓ８０２で記憶したデータが、前回の管理ＤＢとデータ管理部５１０により管理される複製ＤＢとの同期処理で同期された後の管理ＤＢへの変更を示す差分データであるか否かを判定する。制御部５０２は、例えば、この判定の処理の実行をデータ処理部５０４に指示し、判定の結果をデータ処理部５０４から取得する。データ処理部５０４は、例えば、差分データに付与されたバージョン情報に基づいて、データ管理部５１０により管理される複製ＤＢに対して前回反映された差分データの次の差分データであるか否かを判定する。
制御部５０２は、Ｓ８０２で記憶したデータが、前回の管理ＤＢとデータ管理部５１０により管理される複製ＤＢとの同期処理で同期された後の管理ＤＢへの変更を示す差分データであると判定した場合、Ｓ８０５の処理に進む。また、制御部５０２は、Ｓ８０２で記憶したデータが、前回の管理ＤＢとデータ管理部５１０により管理される複製ＤＢとの同期処理で同期された後の管理ＤＢへの変更を示す差分データでないと判定した場合、Ｓ８２０の処理に進む。
Ｓ８０５において、制御部５０２は、データ処理部５０４に対して、Ｓ８０２で記憶した差分データを用いて、データ管理部５１０により管理される複製ＤＢの更新を指示する。データ処理部５０４は、Ｓ８０２で記憶された差分データを解析し、解析結果に基づいて、データ管理部５１０により管理される複製ＤＢを更新する。
【００３１】
Ｓ８０６において、制御部５０２は、データ処理部５０４を介して、Ｓ８０５で指示したデータ管理部５１０により管理される複製ＤＢの更新が成功したか否かを判定する。制御部５０２は、例えば、この判定の処理の実行を、データ処理部５０４に指示し、判定結果をデータ処理部５０４から取得する。制御部５０２は、Ｓ８０５で指示したデータ管理部５１０により管理される複製ＤＢの更新が成功したと判定した場合、Ｓ８０７の処理に進む。また、制御部５０２は、Ｓ８０５で指示したデータ管理部５１０により管理される複製ＤＢの更新が失敗したと判定した場合、Ｓ８２０の処理に進む。
Ｓ８０７において、制御部５０２は、データ処理部５０４に対して、現在のデータ管理部５１０により管理される複製ＤＢの状態が今回のタイマーイベントに応じた同期処理で管理ＤＢと同期された状態であることを通知する。データ処理部５０４は、管理ＤＢへの変更の履歴の情報を、複合機１１０ａのＨＤＤ等に記憶された差分管理ファイルとして管理している。データ処理部５０４は、Ｓ８０７で制御部５０２から通知を受けると、データ処理部５０４により管理されている差分管理ファイルに、現在の複製ＤＢの状態が、今回のタイマーイベントに応じた同期処理で管理ＤＢと同期された状態であることを示す情報を記憶する。制御部５０２は、Ｓ８０７の処理を完了すると、Ｓ８０８の処理に進む。
【００３２】
Ｓ８０８において、制御部５０２は、送受信部５０１を介して、Ｓ８０２で記憶した差分データに基づくデータ管理部５１０により管理される複製ＤＢの更新が成功したことを示す応答を複合機１１０ａに送信する。
Ｓ８０９において、制御部５０２は、Ｓ８０２で一時ファイルとしてＨＤＤ２０５、ＲＡＭ２０３等に記憶したデータを、削除する。
Ｓ８１０において、制御部５０２は、データ処理部５０４に対して、Ｓ８０１でかけられたデータ管理部５１０により管理される複製ＤＢについてのロックの解除を指示する。データ処理部５０４は、データ管理部５１０により管理される複製ＤＢについてのロックを解除し、データ管理部５１０により管理される複製ＤＢへのアクセスの排他を解除する。
【００３３】
Ｓ８１１において、制御部５０２は、Ｓ８０２で記憶した一時ファイルであるレプリケーション用初期データに基づいて、データ管理部５１０により管理される複製ＤＢを初期化するようにデータ処理部５０４に指示する。データ処理部５０４は、Ｓ８０２で記憶されたレプリケーション用初期データを用いて、データ管理部５１０により管理される複製ＤＢを初期化する。
データ処理部５０４は、例えば、Ｓ８０２で記憶したレプリケーション用初期データが管理ＤＢのデータそのものである場合、データ管理部５１０により管理される複製ＤＢの内容をＳ８０２で記憶したレプリケーション用初期データで上書きする。また、データ処理部５０４は、例えば、Ｓ８０２で記憶したレプリケーション用初期データが管理ＤＢの初期データからの変更のログ情報である場合、その初期データにレプリケーション用初期データが示す変更を加えてもよい。こうすることでも、データ処理部５０４は、データ管理部５１０により管理される複製ＤＢを現在の管理ＤＢと同じ内容に初期化できる。
【００３４】
Ｓ８１２において、制御部５０２は、データ処理部５０４に対して、複合機１１０ｃのＨＤＤ等に記憶されている差分管理ファイルを初期化するように指示する。データ処理部５０４は、例えば、データ処理部５０４により管理されていた差分管理ファイルに記憶されている情報を削除する等して、差分管理ファイルを初期化する。
Ｓ８１３において、制御部５０２は、Ｓ８１１とＳ８１２との処理が正しく行われたか否かを判定する。制御部５０２は、例えば、データ処理部５０４からＳ８１１とＳ８１２とで指示された処理が成功したか否かを問い合わせる。制御部５０２は、Ｓ８１１とＳ８１２との処理が正しく行われたと判定した場合、Ｓ８０８の処理に進み、Ｓ８１１とＳ８１２との処理が正しく行われていないと判定した場合、Ｓ８２０の処理に進む。
Ｓ８２０において、制御部５０２は、送受信部５０１を介して、複合機１１０ａに対して、同期処理が失敗したことを示す応答を送信する。
【００３５】
以上、本実施形態では、制御部３０２は、管理ＤＢとデータ管理部５１０により管理される複製ＤＢとの同期処理において、データ管理部５１０により管理される複製ＤＢの更新処理の失敗を検知する。制御部３０２は、データ管理部５１０により管理される複製ＤＢの更新処理の失敗を検知すると、管理ＤＢの内容を示すレプリケーション用初期データをレプリケーション先である複合機１１０ｃに送信する。そして、制御部５０２は、データ管理部５１０により管理される複製ＤＢの内容を、現在の管理ＤＢと同じ内容となるように更新する。これにより、同期システムは、管理ＤＢのレプリケーション先で管理されている複製ＤＢの更新が失敗した場合でも、その複製ＤＢを現在の管理ＤＢの内容に更新することで、その複製ＤＢと管理ＤＢとを一致させることができる。即ち、同期システムは、管理ＤＢとレプリケーション先で管理されている複製ＤＢとを矛盾なく一貫して一致させることができ、管理ＤＢとレプリケーション先で管理されている複製ＤＢとの保全性を向上させることができる。
例えば、レプリケーションアプリケーション５００が複合機１１０ａから既にデータ管理部５１０により管理される複製ＤＢに反映済みの差分データが送られてきた場合、データ管理アプリケーション３００へエラーを応答する。このとき、データ管理アプリケーション３００は、複合機１１０ｃからエラーを示す応答を受信する。そして、データ管理アプリケーション３００は、レプリケーション用初期データをレプリケーションアプリケーション５００へ送信することで、管理ＤＢとデータ管理部５１０により管理される複製ＤＢとの内容に差分がない状態にすることができる。
【００３６】
＜実施形態２＞
実施形態１では、同期システムは、レプリケーション先における複製ＤＢの更新の失敗を検知し、レプリケーション用初期データをレプリケーション先に送信し、レプリケーション先の複製ＤＢを現在の管理ＤＢと同じ内容に更新することとした。しかし、レプリケーション先における複製ＤＢの更新の失敗の種類によっては、同期システムは、同期処理のリトライを行うことで、レプリケーション先における複製ＤＢを管理ＤＢと整合をとったまま更新できる場合がある。
そこで、本実施形態では、同期システムは、レプリケーション先の複製ＤＢの更新の失敗が生じた場合でも、生じた失敗によっては、失敗した更新処理と同様の更新処理をリトライする処理を行う。このように同期システムは、更新処理のリトライを行うことで整合をとったままレプリケーション先における複製ＤＢを更新できる場合、複製ＤＢの一部を再度送信される差分データで更新することになる。即ち、同期システムは、そのような場合に実施形態１のようにレプリケーション用初期データを用いて、レプリケーション先の複製ＤＢの全てを管理ＤＢの内容で更新しなくて済む。即ち、同期システムは、実施形態１に比べて、不要な処理の負担を軽減することができる。
本実施形態の同期システムのシステム構成は、実施形態１と同様である。また、同期システムの各システム構成要素のハードウェア構成、機能構成も実施形態１と同様である。
【００３７】
図９は、複合機１１０ａの処理の一例を示すフローチャートである。図９を用いて、本実施形態のデータ管理アプリケーション３００が定期的に同期用のデータを送信する際の処理を説明する。
図９の処理は、図７の処理と比べて、Ｓ９１１、Ｓ９１２の処理がある点で異なる。また、図９の処理は、図７の処理と比べて、Ｓ７０３で複合機１１０ｃからの応答が同期処理の成功を示す応答でないと判定された場合、Ｓ９１１の処理に進む点で異なる。以下では、図９の処理のうち、図７と異なる点について説明する。
【００３８】
Ｓ９１１において、制御部３０２は、Ｓ７０２で受信されたと判定した応答の内容を解析部３０３に確認することを指示する。解析部３０３は、受信した応答の内容を確認し、確認結果を、制御部３０２に渡す。制御部３０２は、解析部３０３により確認された応答が示すエラーが再度Ｓ７０１の処理をリトライし、失敗した更新と同様の更新を複合機１１０ｃに指示することで復旧可能なエラーであるか否かを判定する。制御部３０２は、解析部３０３により確認された応答が示すエラーが再度Ｓ７０１の処理をリトライし、失敗した更新と同様の更新を複合機１１０ｃに指示することで復旧可能なエラーであると判定した場合、Ｓ９１２の処理に進む。また、制御部３０２は、解析部３０３により確認された応答が示すエラーが再度Ｓ７０１の処理をリトライし、失敗した更新と同様の更新を複合機１１０ｃに指示することで復旧可能なエラーでないと判定した場合、Ｓ７１１の処理に進む。
制御部３０２は、例えば、解析部３０３により確認された応答が示すエラーが、設定されたエラーである場合、再度Ｓ７０１の処理をリトライし、失敗した更新と同様の更新を複合機１１０ｃに指示することで復旧可能なエラーであると判定する。設定されたエラーとしては、例えば、一時的なメモリの空き容量不足によるエラーや、複合機１１０ｃにおけるユーザーの誤操作によるエラー等がある。また、制御部３０２は、例えば、解析部３０３により確認された応答が示すエラーが、設定されたエラーでない場合、再度Ｓ７０１の処理をリトライし、失敗した更新と同様の更新を複合機１１０ｃに指示することで復旧可能なエラーでないと判定する。
Ｓ９１２において、制御部３０２は、設定された閾値以上、Ｓ７０１の処理をリトライし、失敗した更新と同様の更新を複合機１１０ｃに指示しているか否かを判定する。制御部３０２は、設定された閾値以上、Ｓ７０１の処理をリトライし、失敗した更新と同様の更新を複合機１１０ｃに指示していると判定した場合、Ｓ７１１の処理に進む。また、制御部３０２は、Ｓ７０１の処理をリトライし、失敗した更新と同様の更新を複合機１１０ｃに指示した回数が設定された閾値未満であると判定した場合、Ｓ７０１の処理に進む。
【００３９】
以上、本実施形態の処理により、同期システムは、Ｓ７０１の処理をリトライすれば、復旧可能なエラーが発生した場合、レプリケーション用初期データを複合機１１０ｃに送信せず、再度差分データを送信する。これにより、同期システムは、実施形態１に比べて、不要な処理の負担を軽減することができる。
また、同期システムは、Ｓ７０１の処理をリトライし、失敗した更新と同様の更新を複合機１１０ｃに指示することで復旧が可能なエラーが発生した場合でも、設定された閾値以上の回数連続してエラーが発生した場合、以下のような処理を行う。即ち、同期システムは、レプリケーション用初期データを複合機１１０ｃに送信する。これにより、同期システムは、例えば、エラー原因の解消に想定外の時間がかかっているような場合であっても、適切なタイミングで、管理ＤＢとデータ管理部５１０により管理される複製ＤＢとの同期をとることができる。
また、図９の例では、同期システムは、Ｓ７０１の処理のリトライの際に管理ＤＢのロックを解除しないこととしたが、管理ＤＢのロックを一時的に解除することとしてもよい。
【００４０】
＜実施形態３＞
実施形態１、２では、同期システムは、レプリケーション先である複合機１１０ｃの複製ＤＢの更新の失敗を検知すると、レプリケーション用初期データを複合機１１０ｃに送信した。そして、同期システムは、送信したレプリケーション用初期データに基づいて、複合機１１０ｃに複製ＤＢの更新させることとした。しかし、例えば、複合機１１０ｃの複製ＤＢの更新の失敗の原因が、複合機１１０ａと複合機１１０ｃとの間の通信経路の異常等である場合、複合機１１０ａは、その原因が解消するまで、レプリケーション用初期データを複合機１１０ｃに送信できない。そのような場合に、複合機１１０ａは、レプリケーション用初期データを複合機１１０ｃに送信しようとすると、複合機１１０ａのＣＰＵに対する不要な処理の負担が増加し、更に、通信経路に対して不要なデータの通信の負荷が増加してしまうという問題がある。
そこで、本実施形態では、同期システムは、管理ＤＢとデータ管理部５１０により管理される複製ＤＢとの同期処理が失敗したことをユーザーに通知する。そして、同期システムは、その失敗の原因が解消した後に、レプリケーション用初期データを複合機１１０ｃに送信する処理を行う。これにより、同期システムは、実施形態１、２と比べて、不要な処理による複合機１１０ａのＣＰＵの負担を軽減し、通信経路の帯域を節約することができる。
本実施形態の同期システムのシステム構成は、実施形態１と同様である。また、同期システムの各システム構成要素のハードウェア構成、機能構成も実施形態１と同様である。
【００４１】
図１０は、管理ＤＢとデータ管理部５１０により管理される複製ＤＢとの同期処理においてデータ管理部５１０により管理される複製ＤＢの更新が失敗したことを通知する通知画面の一例を示す図である。
制御部３０２は、図７、図９のＳ７２１で、例えば、図１０に示す通知画面１００１を複合機１１０ａの操作部等に表示する。それにより、制御部３０２は、管理ＤＢとデータ管理部５１０により管理される複製ＤＢとの同期処理においてデータ管理部５１０により管理される複製ＤＢの更新が失敗したことをユーザーに通知する。また、制御部３０２は、通知画面１００１に複製ＤＢの更新の失敗が生じた時点の情報を表示する。
また、制御部３０２は、通知画面１００１に、複製ＤＢの更新の失敗の原因を示す情報（例えば、文字列等）を表示してもよい。制御部３０２は、ユーザーに失敗の原因を通知することで、ユーザーによる現状の把握を容易にし、ユーザーの利便性をより向上させることができる。制御部３０２は、Ｓ８２０で送信された応答の内容を確認することで、複製ＤＢの更新が失敗の原因を示す情報を取得できる。複製ＤＢの更新の失敗の原因を示す情報としては、例えば、複合機１１０ａと複合機１１０ｃとの間の通信経路に異常があることを示す情報、複合機１１０ｃにおいて何らかのエラーが発生したことを示す情報等がある。
また、制御部３０２は、通知画面１００１に、複製ＤＢの更新の失敗の原因の解消の示唆となる情報を表示してもよい。例えば、制御部３０２は、通知画面１００１に、複製ＤＢの更新の失敗の原因の解消の示唆となる情報として、レプリケーション先の状態を見直すことを指示する文字列を表示してもよい。制御部３０２は、ユーザーに対して、複製ＤＢの更新の失敗の原因の解消の示唆となる情報を提示することで、ユーザーを支援できる。
複合機１１０ａのユーザーは、通知画面１００１の内容を確認し、図４の設定画面に入力されたパラメータの見直しやレプリケーション先のデバイスが休止状態でないか等を検討する。
【００４２】
複製ＤＢの失敗の原因が解消された後、制御部３０２は、図１１の処理を実行する。
図１１は、複合機１１０ａの処理の一例を示すフローチャートである。図１１を用いて、同期処理におけるデータ管理部５１０により管理される複製ＤＢの更新処理が失敗した後に複合機１１０ａが実行する処理を説明する。
図１１のＳ６０１〜Ｓ６０６、Ｓ６１１の処理は、図６のＳ６０１〜Ｓ６０６、Ｓ６１１と同様の処理である。ただし、Ｓ６０３で、制御部３０２は、Ｓ６０２で複合機１１０ｃへアクセス可能であることが確認されなかったと判定した場合、Ｓ１１１１の処理に進む。また、Ｓ６０５で、制御部３０２は、Ｓ６０４で送信した問い合わせに対する複合機１１０ｃからの応答を受信していないと判定した場合、Ｓ１１１１の処理に進む。
また、Ｓ６０６で、制御部３０２は、Ｓ６０５で受信したと判定した複合機１１０ｃからの応答の内容が、複製ＤＢを受け入れ可能であることを示す応答であると判定した場合、Ｓ７１２の処理に進む。図１１のＳ７１２の処理は、図７のＳ７１２と同様の処理である。また、Ｓ６０６で、制御部３０２は、Ｓ６０５で受信したと判定した複合機１１０ｃからの応答の内容が、複製ＤＢを受け入れ可能であることを示す応答でないと判定した場合、Ｓ１１１１の処理に進む。
【００４３】
Ｓ１１０１において、制御部３０２は、データ管理部５１０により管理される複製ＤＢの更新の失敗の原因が解消されたか否かを判定する。本実施形態では、複合機１１０ａと複合機１１０ｃとの間の通信経路に障害が発生したことにより、データ管理部５１０により管理される複製ＤＢの更新が失敗したとする。制御部３０２は、複合機１１０ｃとの通信を試みて、通信が成功した場合、複製ＤＢの更新の失敗の原因が解消したと判定し、通信が失敗した場合、複製ＤＢの更新の失敗の原因が解消していないと判定する。
また、複合機１１０ｃにおいて一時的なメモリ容量不足等の何らかのエラーが発生したことにより、データ管理部５１０により管理される複製ＤＢの更新が失敗した場合、制御部３０２は、以下のようにしてもよい。即ち、制御部３０２は、複合機１１０ｃからエラーの復旧を示す情報を受信した場合、複製ＤＢの更新の失敗の原因が解消したと判定し、複合機１１０ｃからエラーの復旧を示す情報を受信していない場合、複製ＤＢの更新の失敗の原因が解消していないと判定する。
制御部３０２は、データ管理部５１０により管理される複製ＤＢの更新の失敗の原因が解消されたと判定した場合、Ｓ６０１の処理に進む。制御部３０２は、データ管理部５１０により管理される複製ＤＢの更新の失敗の原因が解消されていないと判定した場合、Ｓ１１０１の処理を繰り返す。
Ｓ１１１１において、制御部３０２は、データ管理部５１０により管理される複製ＤＢの更新が失敗したことを示す通知画面１００１を、複合機１１０ａの操作部等に表示する。これにより、制御部３０２は、データ管理部５１０により管理される複製ＤＢの更新が失敗したことを、ユーザーに通知する。
【００４４】
以上、本実施形態の処理では、同期システムは、管理ＤＢとデータ管理部５１０により管理される複製ＤＢとの同期処理が失敗したことをユーザーに通知する。そして、同期システムは、その失敗の原因が解消した後に、レプリケーション用初期データを複合機１１０ｃに送信する処理を行うこととした。これにより、同期システムは、実施形態１、２と比べて、不要な処理による複合機１１０ａのＣＰＵの負担を軽減し、通信経路の帯域を節約することができる。
【００４５】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００４６】
上述した実施形態では、同期システムは、定期的に管理ＤＢに関する差分データを、複合機１１０ｃに送信し、送信した差分データを、複合機１１０ｃで管理される複製ＤＢに適応させることで、同期処理を行うこととした。しかし、同期システムは、例えば、設定された時点において、管理ＤＢに関する差分データを、複合機１１０ｃに送信し、送信した差分データを、複合機１１０ｃで管理される複製ＤＢに適応させることで、同期処理を行うこととしてもよい。また、同期システムは、例えば、定期的に、管理ＤＢのデータのうち、変更される可能性のあるデータを、複合機１１０ｃに送信し、送信したデータで、複合機１１０ｃで管理される複製ＤＢの対応する部分を置き換えることで、同期処理を行うこととしてもよい。
例えば、上述した同期システムの機能構成の一部又は全てをハードウェアとして複合機１１０のそれぞれに実装してもよい。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。上述した各実施形態を任意に組み合わせてもよい。
【符号の説明】
【００４７】
１１０  複合機
３００  データ管理アプリケーション
５００  レプリケーションアプリケーション
【図１】
0006987503.tif 000002
【図２】
0006987503.tif 000003
【図３】
0006987503.tif 000004
【図４】
0006987503.tif 000005
【図５】
0006987503.tif 000006
【図６】
0006987503.tif 000007
【図７】
0006987503.tif 000008
【図８】
0006987503.tif 000009
【図９】
0006987503.tif 000010
【図１０】
0006987503.tif 000011
【図１１】
0006987503.tif 000012