(57)【特許請求の範囲】
【請求項１】
複数のクライアントと接続し、前記複数のクライアントのうちの任意のクライアントからの同期要求に応じて、前記クライアントが前回の同期処理を行った時刻以降に更新された設定値を、前記クライアントの構成に対応する同期条件に基づいて前記クライアントに送信する情報処理装置であって、
前記クライアントから設定値の更新の通知を受信する第一の受信手段と、
前記第一の受信手段で受信した通知に含まれる設定値が、前記クライアントの構成を変更したことを示す設定値である場合、前記クライアントの変更後の構成に応じた種類の設定値であって、前記クライアントと前回同期を行った時刻以降に更新がなかった設定値を含む設定情報を同期対象データとして前記クライアントに送信することを設定する設定手段と、
前記クライアントからの同期要求を受信する第二の受信手段と、
前記第二の受信手段で同期要求を受信した場合、前記第二の受信手段で受信した同期要求を送信したクライアントに前記設定手段の設定に基づく同期対象データを送信する送信手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記送信手段は、前記設定手段において前記設定がされている場合、前記第二の受信手段で受信した同期要求を送信したクライアントに対して、前記クライアントが前回の同期処理を行なった時刻に関わらず、前記クライアントに関連する設定値を同期対象データとして送信することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記送信手段は、前記設定手段において前記設定がされていない場合、前記第二の受信手段で受信した同期要求を送信したクライアントに、当該クライアントが前回の同期処理を行った時刻以降に更新された設定値を、前記同期条件に基づいて同期対象データとして抽出して送信することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
複数のクライアントと接続し、前記複数のクライアントのうちの任意のクライアントからの同期要求に応じて、前記クライアントが前回の同期処理を行った時刻以降に更新された設定値を、前記クライアントの構成に対応する同期条件に基づいて前記クライアントに送信する情報処理装置であって、
前記クライアントから設定値の更新の通知を受信する第一の受信手段と、
前記第一の受信手段で受信した通知に含まれる設定値が、前記クライアントの構成を変更したことを示す設定値である場合、前記クライアントの構成の変更に関連する設定値を同期対象データとして前記クライアントに送信することを設定する設定手段と、
前記クライアントからの同期要求を受信する第二の受信手段と、
前記第二の受信手段で同期要求を受信した場合、前記第二の受信手段で受信した同期要求を送信したクライアントに前記設定手段の設定に基づく同期対象データを送信する送信手段と
を有することを特徴とする情報処理装置。
【請求項５】
前記送信手段は、前記設定手段において前記設定がされている場合、前記第二の受信手段で受信した同期要求を送信したクライアントに、当該クライアントが前回の同期処理を行なった時刻以降に更新された設定値と、前記構成の変更に関連する設定値とを同期対象データとして送信することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記送信手段は、前記設定手段において前記設定がされていない場合、前記第二の受信手段で受信した同期要求を送信したクライアントに、当該クライアントが前回の同期処理を行なった時刻以降に更新された設定値を、前記同期条件に基づいて同期対象データとして抽出して送信することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前回の同期処理を行った時刻を含む同期要求をクライアントとしてサーバに送信し、前記サーバから、前記時刻以降に更新され、かつ、前記クライアントの構成に対応する同期条件に基づいて抽出された設定値を受信する、前記クライアントとして機能する情報処理装置であって、
前記クライアントにおいて管理している設定値の変更を検知する第一の検知手段と、
前記検知した設定値の変更が、前記同期条件に関連する設定値の変更である場合、前記同期条件に関連する設定値の変更をしたことを示す情報を設定する設定手段と、
前記サーバに同期要求を行なうタイミングを検知する第二の検知手段と、
前記第二の検知手段で前記同期要求を行うタイミングを検知した場合、前記設定手段で設定されている情報に基づいて前記サーバに同期要求を送信する送信手段と、
前記送信手段で送信した同期要求に応じて前記サーバから送信される設定値を用いて、前記クライアントにおいて管理している設定値を更新する更新手段と
を有することを特徴とする情報処理装置。
【請求項８】
前記送信手段は、前記設定手段で前記情報が設定されている場合、前記クライアントに関連する全ての設定値を応答データとして前記クライアントに返信する要求を含む同期要求を前記サーバに送信することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記送信手段は、前記設定手段で前記情報が設定されている場合、前回の同期処理を行った時刻を含まない同期要求を前記サーバに送信することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記送信手段は、前記設定手段で前記情報が設定されていない場合、前回の同期処理を行った時刻を含む同期要求を前記サーバに送信することを特徴とする請求項８または９に記載の情報処理装置。
【請求項１１】
情報処理装置であって、
前記情報処理装置に接続されたクライアント装置の構成を変更した第一の時刻を前記クライアント装置に関連付けて管理する管理手段と、
前記クライアント装置と前回設定値の同期処理を行った第二の時刻を示す情報を取得する取得手段と、
前記取得手段が取得した第二の時刻が前記第一の時刻より後の場合、前記クライアント装置の変更後の構成に応じた種類の設定値であって前記第二の時刻以降に更新があった設定値を、前記クライアント装置に送信し、
前記取得手段が取得した第二の時刻が前記第一の時刻より前の場合、前記クライアント装置の変更後の構成に応じた種類の設定値であって前記第二の時刻以降に更新がなかった設定値を含む設定情報を、前記クライアント装置に送信する送信手段と
を有することを特徴とする情報処理装置。
【請求項１２】
前記取得手段は、前記クライアント装置のユーザの識別情報を含む同期要求であって、該ユーザに関連付けられた設定値について前回の同期処理を行なった前記第二の時刻を取得し、
前記送信手段は、前記取得手段が取得した第二の時刻が前記第一の時刻より後の場合、前記クライアント装置の変更後の構成及び前記ユーザの識別情報に応じた種類の設定値であって前記第二の時刻以降に更新があった設定値を、前記クライアント装置に送信し、
前記取得手段が取得した第二の時刻が前記第一の時刻より前の場合、前記クライアント装置の変更後の構成及び前記ユーザの識別情報に応じた種類の設定値であって前記第二の時刻以降に更新がなかった設定値を含む設定情報を、前記クライアント装置に送信する事を特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記同期条件は、前記クライアントの所定の構成が有効でない場合に、前記所定の構成に関連する設定値を同期対象から除く条件であることを特徴とする請求項１から１０のいずれか一項に記載の情報処理装置。
【請求項１４】
前記所定の構成が有効であるか否かは、前記クライアントのデバイスに対するライセンスの有無を示す設定値、前記クライアントのデバイスの機能の有無を示す設定値、前記ライセンスの状態を示す設定値、または前記機能の状態を示す設定値のうち、少なくとも１つに基づいて決定されることを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
複数のクライアントと接続し、前記複数のクライアントのうちの任意のクライアントからの同期要求に応じて、前記クライアントが前回の同期処理を行なった時刻以降に更新された設定値を、前記クライアントの構成に対応する同期条件に基づいて前記クライアントに送信するデータ同期方法であって、
前記クライアントから設定値の更新の通知を受信する第一の受信ステップと、
前記第一の受信ステップで受信した通知に含まれる設定値が、前記クライアントの構成を変更したことを示す設定値である場合、前記クライアントの変更後の構成に応じた種類の設定値であって、前記クライアントと前回同期を行った時刻以降に更新がなかった設定値を含む設定情報を同期対象データとして前記クライアントに送信することを設定する設定ステップと、
前記クライアントからの同期要求を受信する第二の受信ステップと、
前記第二の受信ステップで同期要求を受信した場合、前記第二の受信ステップで受信した同期要求を送信したクライアントに前記設定ステップの設定に基づく同期対象データを送信する送信ステップと
を有することを特徴とするデータ同期方法。
【請求項１６】
複数のクライアントと接続し、前記複数のクライアントのうちの任意のクライアントからの同期要求に応じて、前記クライアントが前回の同期処理を行った時刻以降に更新された設定値を、前記クライアントの構成に対応する同期条件に基づいて前記クライアントに送信するデータ同期方法であって、
前記クライアントから設定値の更新の通知を受信する第一の受信ステップと、
前記第一の受信ステップで受信した通知に含まれる設定値が、前記クライアントの構成を変更したことを示す設定値である場合、前記クライアントの構成の変更に関連する設定値を同期対象データとして前記クライアントに送信することを設定する設定ステップと、
前記クライアントからの同期要求を受信する第二の受信ステップと、
前記第二の受信ステップで同期要求を受信した場合、前記第二の受信ステップで受信した同期要求を送信したクライアントに前記設定ステップでの設定に基づく同期対象データを送信する送信ステップと
を有することを特徴とするデータ同期方法。
【請求項１７】
前回の同期処理を行なった時刻を含む同期要求をクライアントとしてサーバに送信し、前記サーバから、前記時刻以降に更新され、かつ、前記クライアントの構成に対応する同期条件に基づいて抽出された設定値を受信するデータ同期方法であって、
前記クライアントにおいて管理している設定値の変更を検知する第一の検知ステップと、
前記検知した設定値の変更が、前記同期条件に関連する設定値の変更である場合、前記同期条件に関連する設定値の変更をしたことを示す情報を設定する設定ステップと、
前記サーバに同期要求を行なうタイミングを検知する第二の検知ステップと、
前記第二の検知ステップで前記同期要求を行なうタイミングを検知した場合、前記設定ステップで設定されている情報に基づいて前記サーバに同期要求を送信する送信ステップと、
前記送信ステップで送信した同期要求に応じて前記サーバから送信される設定値を用いて、前記クライアントにおいて管理している設定値を更新する更新ステップと
を有することを特徴とするデータ同期方法。
【請求項１８】
情報処理装置に接続されたクライアント装置の構成を変更した第一の時刻を前記クライアント装置に関連付けて管理する管理手段を有する前記情報処理装置におけるデータ同期方法であって、
前記クライアント装置と前回設定値の同期処理を行なった第二の時刻を示す情報を取得する取得ステップと、
前記取得ステップにおいて取得した第二の時刻が前記第一の時刻より後の場合、前記クライアント装置の変更後の構成に応じた種類の設定値であって前記第二の時刻以降に更新があった設定値を、前記クライアント装置に送信し、
前記取得ステップにおいて取得した第二の時刻が前記第一の時刻より前の場合、前記クライアント装置の変更後の構成に応じた種類の設定値であって前記第二の時刻以降に更新がなかった設定値を含む設定情報を、前記クライアント装置に送信する送信ステップと
を有することを特徴とするデータ同期方法。
【請求項１９】
コンピュータを、請求項１から１４のいずれか一項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置間でデータの同期を行う技術に関するものである。
【背景技術】
【０００２】
近年、ネットワークを介してデータベースの同期を行う技術がある。同期を行う際にデータベースの全データを同期するのではなく、差分による同期が行われている。差分による同期処理を実施する際に、予め決められたタイミングで同期処理を行うのではなく、任意のタイミングで同期処理を行う技術がある（特許文献１参照）。
【０００３】
また、データベースの差分による同期を実施する場合に、最終同期時刻以降に変更のあったデータを差分として抽出しデータの同期を行う方法がある（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１３２５３１号公報
【特許文献２】特開平１１−２７２５３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術と特許文献２に記載の技術とを組み合わせた同期処理を行うとデータの整合性が保てない場合がある。すなわち、最終同期時刻以降に変更のあったデータを差分として抽出しデータベースを同期する場合において、任意のタイミングでデータベースに対し同期要求が行われるとデータの整合性が保てない場合がある。
【０００６】
例えば、同様な構成のデータベースをそれぞれ保持する複数の情報処理装置間におけるデータ同期システムにおいて、格納されるデータが情報処理装置の機能や構成などに依存している場合がある。このようなデータは、その機能や構成が有効でない情報処理装置に向けた同期対象のデータとしては扱われない。なぜならば、その機能や構成が有効でない情報処理装置にその機能や構成が有効であることを前提としたデータを同期してしまうと不具合が生じる可能性があるからである。そしてその後、その情報処理装置においてその機能や構成が有効になった場合には、今まで同期対象とならなかったそのデータが、特定のタイミングで同期対象となる。このような場合にデータの整合性が保てなくなる。
【０００７】
具体的な例を挙げて説明する。情報処理装置に導入可能なアプリケーションＡがあり、このアプリケーションＡに関連するデータが同期対象として複数台の情報処理装置上で同期される運用がなされているとする。このとき、アプリケーションＡに関連するデータとして、アプリケーションＡを未導入の情報処理装置Ｂのデータベースには初期値Ｃが格納されているものとする。ここで、アプリケーションＡが導入されている情報処理装置Ｄで、アプリケーションＡに関連するデータが値Ｅに変更され、各情報処理装置間で同期がされているとする。このアプリケーションに関連するデータが値Ｅに変更された時刻をＴとする。その後、各情報処理装置で時刻Ｔ以降において同期の運用が行なわれたとする。さらにその後、情報処理装置ＢにアプリケーションＡが導入された場合を考える。このときの情報処理装置Ｂの最終同期完了時刻は時刻Ｔより後であるので、アプリケーションＡに関連するデータは同期運用上、同期完了状態である。従って、アプリケーションＡに関連するデータは、主となるデータベースから差分として抽出されず、本来ならば値Ｅに変更すべきところを初期値ＣのままアプリケーションＡが運用されてしまう。もしくは、アプリケーションＡが導入された時点のデータの値（初期値Ｃ）を主となるデータベースへ更新要求を実施してしまい、ユーザの望む同期状態とならない場合がある。
【課題を解決するための手段】
【０００８】
本発明に係る情報処理装置は、複数のクライアントと接続し、前記複数のクライアントのうちの任意のクライアントからの同期要求に応じて、前記クライアントが前回の同期処理を行なった時刻以降に更新された設定値を、前記クライアントの構成に対応する同期条件に基づいて前記クライアントに送信する情報処理装置であって、前記クライアントから設定値の更新の通知を受信する第一の受信手段と、前記第一の受信手段で受信した通知に含まれる設定値が、前記クライアントの構成を変更したことを示す設定値である場合、前記クライアントの変更後の構成に応じた種類の設定値であって、前記クライアントと前回同期を行った時刻以降に更新がなかった設定値を含む設定情報を同期対象データとして前記クライアントに送信することを設定する設定手段と、前記クライアントからの同期要求を受信する第二の受信手段と、前記第二の受信手段で同期要求を受信した場合、前記第二の受信手段で受信した同期要求を送信したクライアントに前記設定手段の設定に基づく同期対象データを送信する送信手段とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、データの差分同期を実施する際に、データの整合性を保ちつつ、データの同期を実施することができる。
【図面の簡単な説明】
【００１０】
【図１】実施例に係るシステム全体の構成を示す図である。
【図２】実施例に係るハードウェア構成を示す図である。
【図３】実施例に係るソフトウェア構成を示す図である。
【図４】差分同期を実施する際のデータ更新方法のフローチャートを示す図である。
【図５】差分同期を実施する際のデータ同期方法のフローチャートを示す図である。
【図６】実施例１の設定値更新時のフローチャートを示す図である。
【図７】実施例１の設定値同期要求時のフローチャートを示す図である。
【図８】実施例２の設定値更新時のフローチャートを示す図である。
【図９】実施例２の設定値同期要求時のフローチャートを示す図である。
【図１０】実施例３の設定値更新時のフローチャートを示す図である。
【図１１】実施例３の設定値同期要求時のフローチャートを示す図である。
【図１２】ユーザ管理している設定値の差分同期を実施する際のデータ同期方法のフローチャートを示す図である。
【図１３】実施例４の設定値更新時のフローチャートを示す図である。
【図１４】実施例４の設定値同期要求時のフローチャートを示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。まず最初に実施形態に係る構成を、図面を参照して説明する。その後、実施形態に係る構成を用いて行われる一般的な差分同期の処理を説明し、課題で説明したような問題が生じることについても補足で説明する。その後に、実施形態に係る構成を用いた各実施例を説明する。
【００１２】
図１は、実施形態に係る同期システムの全体を示すシステム構成例を示す図である。ネットワーク１００には、設定値管理サーバ１１０、複合機１２０、複合機１２１が接続されている。ここでは複合機は２台接続されている例を示しているがこれに限られることはない。複合機はさらに複数台接続されていてもよい。また、後述の構成の説明では、特に複合機１２０を例として説明するが、複合機１２１の構成についても同様である。なお、ここでは複合機を例に挙げて説明するが、コンピュータや携帯端末などの一般的な情報処理装置であってもよい。各複合機は、各複合機に格納されているデータを、それぞれ設定値管理サーバとの間で同期する。この結果、複合機固有で用いられるデータは複合機と設定値管理サーバとの間で同期される。また、各複合機間で共通して用いられるデータは、設定値管理サーバを介して各複合機間において順次同期されることになる。同期処理の詳細は後述する。
【００１３】
図２は、実施形態に係る設定値管理サーバ１１０の構成と複合機１２０の構成とを表すブロック図である。
【００１４】
図２（ａ）は設定値管理サーバ１１０の構成を表す図である。設定値管理サーバ１１０は、コントローラユニット２００、操作部２０１、表示部２０２を含んでいる。コントローラユニット２００は、操作部Ｉ／Ｆ２０３、表示部Ｉ／Ｆ２０４、ＣＰＵ２０５、ＲＡＭ２０６、ＨＤＤ２０７、ＲＯＭ２０８、ネットワークＩ／Ｆ２０９、システムバス２１０を有する。
【００１５】
ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）２０５は、ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）２０８に格納されているブートプログラムによりＯＳ（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）を起動する。ＣＰＵ２０５は、起動したＯＳ上で、ＨＤＤ（Ｈａｒｄ Ｄｉｓｋ Ｄｒｉｖｅ）２０７に格納されているアプリケーションプログラムを実行し、これによって各種処理を実行する。このＣＰＵ２０５の作業領域としてはＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）２０６が用いられる。ＨＤＤ２０７は、アプリケーションプログラムと複合機１２０の設定値データとを格納する。設定値データの管理方法に関する詳細については後述する。
【００１６】
ＣＰＵ２０５には、システムバス２１０を介して、ＲＯＭ２０８およびＲＡＭ２０６とともに、操作部Ｉ／Ｆ２０３、表示部Ｉ／Ｆ２０４、ネットワークＩ／Ｆ２０９が接続される。操作部Ｉ／Ｆ２０３は、マウス、キーボード等から成る操作部２０１とのインタフェースであり、操作部２０１によってユーザにより入力された情報をＣＰＵ２０５に通知する。表示部Ｉ／Ｆ２０３は、ディスプレイ等から成る表示部２０２に表示すべき画像データを表示部２０２に対して出力する。また、ネットワークＩ／Ｆ２０９は、ネットワーク１００に接続され、ネットワーク１００を介してネットワーク１００上の各装置との間で情報の入出力を行う。
【００１７】
図２（ｂ）は複合機１２０の構成を表す図である。複合機１２０は、コントローラユニット２２０、操作部２２１、スキャナ２３１、プリンタ２３２を含んでいる。コントローラユニット２２０には、操作部２２１が接続されるとともに、画像入力デバイスであるスキャナ２３１や画像出力デバイスであるプリンタ２３２が接続される。また、接続される画像入出力デバイスはスキャナ２３１やプリンタ２３２に限ったものではなく、複合機１２０で生成された画像を電話回線により外部へ送信するＦＡＸ送信を可能とするためのＦＡＸユニット等（不図示）を接続することもできる。
【００１８】
コントローラユニット２２０は、デバイスＩ／Ｆ２２２、操作部Ｉ／Ｆ２２３、ＣＰＵ２２４、ＲＡＭ２２５、画像処理部２２６、ＨＤＤ２２７、ＲＯＭ２２８、ネットワークＩ／Ｆ２２９を有する。ＣＰＵ２２４は、ＲＯＭ２２８に格納されているブートプログラムによりＯＳを起動する。ＣＰＵ２２４は、このＯＳ上で、ＨＤＤ２２７に格納されているアプリケーションプログラムを実行し、これによって各種処理を実行する。このＣＰＵ２２４の作業領域としてはＲＡＭ２２５が用いられる。また、ＲＡＭ２２５は、作業領域を提供するとともに、画像データを一時記憶するための画像メモリ領域を提供する。ＨＤＤ２２７は、上記アプリケーションプログラムや画像データ、各種設定値を格納する。複合機１２０における設定値の管理方法については後述する。
【００１９】
ＣＰＵ２２４には、システムバス２３０を介して、ＲＯＭ２２８およびＲＡＭ２２５とともに、操作部Ｉ／Ｆ２２３、デバイスＩ／Ｆ２２２、ネットワークＩ／Ｆ２２９、画像処理部２２６が接続される。操作部Ｉ／Ｆ２２３は、タッチパネルを有する操作部２２１とのインタフェースであり、操作部２２１に表示すべき画像データを操作部２２１に対して出力する。また、操作部Ｉ／Ｆ２２３は、操作部２２１によってユーザにより入力された情報をＣＰＵ２２４に送信する。デバイスＩ／Ｆ２２２には、スキャナ２３１およびプリンタ２３２が接続され、デバイスＩ／Ｆ２２２は、画像データの同期系/非同期系の変換を行う。ネットワークＩ／Ｆ２２９は、ネットワーク１００に接続され、ネットワーク１００を介してネットワーク１００上の各装置との間で情報の入出力を行う。
【００２０】
画像処理部２２６は、スキャナ２３１からの入力画像処理やプリンタ２３２への出力画像処理、画像回転、画像圧縮、解像度変換、色空間変換、階調変換などの処理を行う。
【００２１】
図３は上述した図２の設定値管理サーバ１１０と複合機１２０とのそれぞれの内部で動作する設定値同期システムのソフトウェア構成図である。
【００２２】
最初に複合機１２０で動作する設定値管理クライアントアプリケーションについて説明する。なお、以下ではアプリケーションのことを単にアプリと称することがある。また、複合機１２０はクライアントとして機能する。図３（ｂ）は、複合機１２０で動作する設定値管理クライアントアプリの構成を示す図である。図３の（ｂ）の設定値管理クライアントアプリ３２０は、複合機１２０上のＲＯＭ２２８、ＨＤＤ２２７などに格納され、ＣＰＵ２２４により実行される。
【００２３】
設定値管理クライアントアプリ３２０はデータ処理部３２１、設定値データ管理部３２２、アプリケーション制御部３２３、設定値管理データベース３２４、通信処理部３２５を有する。
【００２４】
設定値管理データベース３２４に格納されている設定値データの一例として、表１及び表２に示すような設定値が挙げられる。
【００２５】
【表１】
0006611594.tif 000002
【００２６】
【表２】
0006611594.tif 000003
【００２７】
複合機１２０は表１のようなデバイス設定値を設定値管理データベース３２４に格納している。設定値管理データベース３２４には、一意に設定値を特定できるようなキー識別子に、ＵＩ表示名称、設定値、初期値がそれぞれ関連付けられて格納されている。
【００２８】
例えば、キー識別子｛ｓｅｔｔｉｎｇｓ．ｄｅｖｉｃ．ｎｅｔｗｏｒｋ．ｉｐａｄｄｒｅｓｓ｝で特定される設定値は、複合機１２０のＩＰアドレスを管理するための設定値であり、日本仕向けでは、ＵＩ表示名称は｛ＩＰアドレス｝となっている。また、現在設定されている値は｛１９２．１６８．１１１．２２２｝であり、初期値は｛２５５．２５５．２５５．２５５｝である。
【００２９】
複合機１２０はネットワークを介してスキャナ２３１から入力された画像データをＥ−Ｍａｉｌにて外部に送信する機能等も備えており、Ｅ−Ｍａｉｌ宛先を格納・管理するアドレス帳データが存在する。複合機１２０の設定値管理データベース３２４には、アドレス帳データも設定値の一種として格納されている。アドレス帳機能にて管理しているデータを分かりやすく切り出した表２はアドレス帳機能上で一意に管理されるアドレス帳ＩＤに宛先種別、宛先、表示名がそれぞれ関連付けられて格納されている。
【００３０】
例えば、アドレス帳ＩＤが｛１｝の情報はＥ−ｍａｉｌにて宛先｛ａａａ＠ｘｘｘ．ｃｏ．ｊｐ｝へ送信するための情報が格納されており、操作部２２１には｛田中  太郎｝と表示される。
【００３１】
設定値管理データベース３２４にはまた、表３で示すような最終同期完了時刻が格納される。
【００３２】
【表３】
0006611594.tif 000004
【００３３】
表３は複合機１２０が設定値管理サーバ１１０との間で設定値データを同期する際に用いられる情報である。詳細は、後述する設定値データの同期方法にて詳しく説明する。
【００３４】
次に、設定値管理サーバ１１０の設定値管理サーバアプリ３１０の構成について説明する。図３（ａ）の設定値管理サーバアプリ３１０は、設定値管理サーバ１１０上のＲＯＭ２０８、ＨＤＤ２０７などに格納され、ＣＰＵ２０５により実行されるアプリの構成図である。
【００３５】
設定値管理サーバアプリ３１０はデータ処理部３１１、設定値データ管理部３１２、アプリケーション制御部３１３、設定値管理データベース３１４、通信処理部３１５、応答データ管理部３１６を有する。
【００３６】
設定値管理データベース３１４には、例えば表４から表８のデータが格納されている。
【００３７】
【表４】
0006611594.tif 000005
【００３８】
表４では、設定値管理サーバアプリ３１０がネットワーク１００を介して設定値の同期処理を実施しているクライアントを一意に識別できるよう、シリアルＮｏ．を検索可能な一意のキーとしてデバイスコード及びバージョンを管理している。表４に示すデータは設定値管理サーバアプリ３１０の設定値管理データベース３１４に格納されている。シリアルＮｏ．は、製品を一意に識別可能なように設定されており、デバイスコードにより製品の分類がなされている。また、バージョンはシリアルＮｏ．に紐付く複合機それぞれのファームウェアバージョンである。
【００３９】
【表５】
0006611594.tif 000006
【００４０】
また、設定値管理サーバの設定値管理データベース３２４は、表５のように、接続される複合機の全設定値のデータを管理している。設定値管理サーバアプリ３１０は、複合機１２０からネットワーク１００を介して通知された表１の設定値データを、表５に示すように複合機のシリアルＮｏ．と紐付けてそれぞれ管理している。設定値管理サーバアプリ３１０は、複合機１２０から更新または新規で登録した設定値データを通知された場合、表５に示すようにサーバで格納した時刻をサーバ最終更新時刻として設定値毎にそれぞれ関連付けて管理している。
【００４１】
表６から表８もまた、設定値管理サーバ１１０の設定値管理データベース３１４に格納される設定値を示している。この表６から表８については、後述する設定値データの同期方法にて詳しく説明する。
【００４２】
【表６】
0006611594.tif 000007
【００４３】
【表７】
0006611594.tif 000008
【００４４】
【表８】
0006611594.tif 000009
【００４５】
次に、上記で説明したような構成において行なわれる通常の同期処理を図４及び図５を用いて説明する。図４及び図５は、図３の設定値管理サーバアプリ３１０と設定値管理クライアントアプリ３２０とが実際に設定値データの同期を行う際のフローチャートである。ここでは複合機１２０と設定値管理サーバ１１０との間の処理を例に挙げて説明するが、任意の複合機との設定値管理サーバ１１０との間の処理についても同様の処理となる。表１から表８と併せて実際の設定値データの同期処理方法を説明する。
【００４６】
ここで、具体的に、複合機１２０のシリアルＮｏ．が｛１２３４５６７｝であり、各複合機で登録されているアドレス帳のデータが共通設定値として取り扱われている例を説明する。共通設定値とは、同期システムの装置（サーバー、クライアントを含む）間で共通の設定値である。つまり、アドレス帳のデータが各装置間で共通のデータとして取り扱われる例を説明する。例えば、複合機１２０である人物のアドレス帳のデータを一旦更新してしまえば、結果として、他の複合機１２１のアドレス帳のデータも同期して更新されることになるのである。以下、具体的な処理を説明する。
【００４７】
まず、同期システムにおける前提の処理を説明する。設定値管理クライアントアプリ３２０は設定値管理サーバアプリ３１０にネットワーク１００を介して初めて接続する際には設定値管理データベース３２４のデータをすべて設定値管理サーバアプリ３１０に送信する。図４では既に設定値管理クライアントアプリ３２０が設定値管理サーバアプリ３１０に接続済みであり、設定値管理データベース３２４のデータをすべて設定値管理サーバアプリ３１０に送信済みであるものとする。
【００４８】
その後、ユーザが複合機１２０の設定値を変更したとする。ステップＳ４１１において設定値管理クライアントアプリの設定値データ管理部３２２は、データ処理部３２１を介して設定値の変更を検知する。設定値の変更を検知すると、ステップＳ４１２においてアプリケーション制御部３２３は、設定値変更を通知する処理を通信処理部３２５に依頼し、通信処理部３２５が設定値管理サーバアプリ３１０に設定値変更を通知する。
【００４９】
ステップＳ４２１において設定値管理サーバアプリ３１０の通信処理部３１５は、ネットワーク１００を介して設定値管理クライアントアプリ３２０からの設定値変更の通知を受信する。
【００５０】
ステップＳ４２２において、アプリケーション制御部３１３は、サーバ上で管理する通知された設定値に対応する設定値を更新する。まず、通信処理部３１５は、受信した設定値をアプリケーション制御部３１３へ通知する。アプリケーション制御部３１３は、設定値データ管理部３１２、データ処理部３１１を介して設定値管理データベース３１４の設定値を更新する。次にステップＳ４２３において設定値データ管理部３１２は、更新した設定値のサーバ最終更新時刻の更新をデータ処理部３１１に依頼し実行する。Ｓ４２３の時に更新された設定値が共通設定値であった場合、接続されている複合機全てにそれぞれ関連付けられて格納されているその共通設定値の更新とサーバ最終更新時刻も更新する。
【００５１】
具体例を挙げて説明する。例えば、設定値管理サーバアプリの設定値管理データベース３１４に表７のように設定値が格納されているとする。表７はデバイスシリアルＮｏ．ごとに共通設定値がそれぞれ関連付けられて格納されている。ここで、ステップＳ４２１で更新通知された設定値がアドレス帳ＩＤ｛３｝の設定値であり、更新通知が２０１５／０２／１  １３：００に通知された時に、全ての複合機のアドレス帳ＩＤ｛３｝の設定値とサーバ最終更新時刻が更新される。表７はこの更新済みの状態の設定値を示している。
【００５２】
上述する更新処理が完了後、ステップＳ４２４においてアプリケーション制御部３１３は、通信処理部３１５に更新処理の完了したことを示す応答を依頼する。通信処理部３１５は、ネットワーク１００を介して設定値管理クライアントアプリ３２０に更新処理の完了を応答として送信する。
【００５３】
ステップＳ４１３において設定値管理クライアントアプリ３２０の通信処理部３２５は、更新処理の完了の応答を受信したことをアプリケーション制御部３２３に通知する。そして、設定値の更新処理を終了する。
【００５４】
本実施形態においては、前述のように、複数台の複合機（クライアントデバイス）の設定値を同期していることから、設定値管理クライアントアプリは定期的なタイミングで同期処理を実施する。図５は定期的なタイミングでの同期処理の流れを示すフローチャートである。
【００５５】
ステップＳ５１１において設定値管理クライアントアプリのアプリケーション制御部３２３は、同期要求のタイミングを検知する。ステップＳ５１１では、アプリケーション制御部３２３は定期的な同期処理のタイミングとなった際に同期要求のタイミングを検知する。定期的な同期要求のタイミングとなった際、ステップＳ５１２においてアプリケーション制御部３２３は、表３のように格納されている前回同期時刻（最終同期完了時刻）が存在しているかを判定する。前回同期時刻は、前回設定値の同期を行った時刻のことである。
【００５６】
前回同期時刻が存在している場合は、ステップＳ５１３に進み、アプリケーション制御部３２３は、同期時刻の指定あり設定値同期要求を通信処理部３２５に依頼する。通信処理部３２５は、ネットワーク１００を介して設定値管理サーバアプリ３１０へ同期時刻の指定あり設定値同期要求を通知する。
【００５７】
一方、前回同期時刻が存在しない場合は、ステップＳ５１４に進み、アプリケーション制御部３２３は、同期時刻の指定をせずに設定値同期要求を通信処理部３２５に依頼する。通信処理部３２５は、設定値管理サーバアプリ３１０へ同期時刻の指定なし設定値同期要求を通知する。
【００５８】
ステップＳ５２１において設定値管理サーバアプリ３１０の通信処理部３１５は同期要求を受信し、その要求をアプリケーション制御部３１３に通知する。ステップＳ５２２においてアプリケーション制御部３１３は、通知された同期要求に時刻の指定があるかを判定する。
【００５９】
同期時刻が指定されていなかった場合は、ステップＳ５２３に進む。アプリケーション制御部３１３は、設定値データ管理部３１２に設定値管理データベース３１４に格納されている、要求元のデバイスに関連する設定値すべての取得を依頼しデータ処理部３１１を介して設定値データを取得する。本実施形態において要求元のデバイスに関連する設定値すべての設定値データとは、クライアントデバイスの変更後の構成に応じた種類の設定値であって、構成の変更移行に更新がなかった設定値を含む。また、クライアントデバイスの変更後の構成に応じた種類の設定値であって、構成の変更移行に更新があった設定値を含む設定情報のことである。
【００６０】
一方、同期時刻が指定されている場合は、ステップＳ５２４に進む。アプリケーション制御部３１３は、設定値データ管理部３１２に設定値管理データベース３１４に格納されている、要求元のデバイスに関連する設定値のうち、関連付けられているサーバ最終更新時刻が指定された時刻以降のものの取得を依頼する。そして、データ処理部３１１を介してアプリケーション制御部３１３は設定値データを取得する。
【００６１】
次に、ステップＳ５２５においてアプリケーション制御部３１３は、設定値データ管理部３１２に依頼し、設定値管理データベース３１４から同期要求を実施してきた複合機の構成情報をデータ処理部３１１を介して取得する。設定値管理データベース３１４に格納されている接続されているクライアントの構成情報とは、表６のように格納されており、デバイスシリアルＮｏ．に対応して機能の有効状態を管理している。例えば、デバイスシリアルＮｏ．｛３１２４５６７｝はＦＡＸユニットが接続されているが、デバイスシリアルＮｏ．｛１２３４５６７｝にはＦＡＸユニットが接続されていないことが、表６から確認することができる。
【００６２】
ステップＳ５２６においてアプリケーション制御部３１３は、ステップＳ５２２またはステップＳ５２３において取得した設定値データから、クライアントの構成情報に基づいて応答データを作成することを応答データ管理部３１６に依頼する。応答データ管理部３１６は同期要求を実施してきた複合機１２０へ応答するデータを作成する。この時、応答データ管理部３１６はデータ処理部３１１を介して設定値管理データベース３１４に格納されている表８の同期条件の情報を取得し、応答データを作成する。
【００６３】
例えば、ステップＳ５２２で指定された時刻が２０１５／０２／１  １２：５９であったとする。つまり、設定値管理サーバアプリは、同期時刻の指定あり設定値同期要求を受信したと仮定する。このステップＳ５２２で指定された時刻とは、複合機１２０から指定された前回同期時刻のことである。すなわち、ステップＳ５２４で示すように前回同期時刻以降に更新されたデータが更新対象の候補となる。この場合、表７のアドレス帳情報の設定値では、更新対象の候補として取得されるデータはアドレス帳ＩＤ｛２｝と｛３｝のデータである。  応答データ管理部３１６は、表８の同期条件の設定値を参照する。表８の情報からアドレス帳情報の宛先種別ＦＡＸは、｛ｓｅｔｔｉｎｇ．ｏｐｔｉｏｎ．ｆａｘｕｎｉｔ｝の状態がＯＮの場合に同期対象となる。そこで、応答データ管理部３１６は、表８の情報に基づいて更新対象の候補から同期対象となる設定値を決定する。表６で管理されるデバイスの構成情報を参照すると、デバイスシリアルＮｏ．｛１２３４５６７｝の複合機１２０はＦＡＸユニットが接続されていないことが分かる。従って、応答データ管理部３１６は、デバイスシリアルＮｏ．｛１２３４５６７｝への同期応答データには、宛先種別ＦＡＸであるアドレス帳ＩＤ｛３｝を含めずに、アドレス帳ＩＤ｛２｝のみを返答するように応答データを作成する。このように応答データ管理部３１６は、更新対象候補の設定値のうち、複合機の構成・状態に応じて同期対象となる設定値を抽出して応答データを作成している。換言すれば、応答データ管理部３１６は、複合機の構成・状態に応じて同期対象とならない設定値を含まないように応答データを作成する。このように、デバイスのある機能や構成が有効でない場合には、その機能や構成に関連するデータについては、たとえ前回同期時刻以降に更新されたデータであっても同期対象データとしない運用がなされている。この理由は、例えば複合機が、複合機の機能Ｘが有効でないことを、機能Ｘに関する設定値の初期値を参照することで判定する場合があり、機能Ｘが有効でない場合にその初期値を更新してしまうと不具合が生じることがあるからである。
【００６４】
次にフローの説明に戻る。ステップＳ５２７においてアプリケーション制御部３１３は、応答データ管理部３１６が作成した応答データの送信を通信処理部３１５へ依頼する。通信処理部３１５は応答データをネットワーク１００を介して設定値管理クライアントアプリに送信する。
【００６５】
ステップＳ５１５において設定値管理クライアントアプリ３２０の通信処理部３２５は応答データの通知を受信する。通信処理部３２５はアプリケーション制御部３２３へ応答データの受信を通知し、アプリケーション制御部３２３は設定値管理データベース３２４の設定値を更新する。
【００６６】
最後に、ステップＳ５１６においてアプリケーション制御部３２３は、表３で示すような最終同期完了時刻を更新し、次回同期要求時にその値を参照する。
【００６７】
なお、図５の説明の中で、前回同期時刻が存在しない場合とは、主に設定値管理クライアントアプリ３２０が設定値管理サーバアプリ３１０に初めて同期要求する場合などである。
【００６８】
以上が、設定値同期システムの通常の同期処理を行う形態の説明である。ここで、上述する図４、図５の設定値更新、同期処理フローでは、同期が上手く行われないことがある点について説明する。すなわち、サーバで管理する設定値とクライアントで管理する設定値との不整合が発生する場合について説明する。
【００６９】
例えば、図５の処理が複合機１２０において複数回実施され、｛２０１５／０２／０１  １５：００｝という値がＳ５１６にて前回同期時刻として格納されたとする。その後に、デバイスシリアルＮｏ．｛１２３４５６７｝の複合機１２０にＦＡＸユニットが装着され、｛ｓｅｔｔｉｎｇ．ｏｐｔｉｏｎ．ｆａｘｕｎｉｔ｝の状態が｛ＯＮ｝となったとする。その後の同期要求のタイミングで複合機１２０の設定値管理クライアントアプリ３２０は同期要求を行なった場合、図５の処理フローでは、アドレス帳ＩＤが｛３｝の設定値データが同期対象とならない。なぜならば、アドレス帳ＩＤ「３」のサーバ最終更新時刻が前回同期時刻よりも前であるので、設定値管理サーバアプリ３１０はアドレス帳ＩＤ「３」はすでに同期済みであると判定するからである。その結果、ステップＳ５２４で更新対象の候補として取得されないので、応答データに含まれないことになるのである。
【００７０】
以下の実施例１から３では、このような不具合を解消する各種の実施例について説明する。
【００７１】
［実施例１］
実施例１の処理について、図６と図７を用いて説明する。データ構成については、設定値管理サーバアプリ３１０に格納されていた表４のデータ項目に、構成変更管理フラグの項目を追加した表９のような構成を設定値管理データベース３１４に保持する。
【００７２】
【表９】
0006611594.tif 000010
【００７３】
次に図６のフローチャートの処理を、図４との差分を中心に説明する。図４の処理と同様の処理となるフローチャートのステップには、図４と同一の番号を付与し、ここでの詳細な説明については省略する。
【００７４】
図６は、図４と同様に、設定値管理クライアントアプリ３２０が設定値の変更を検知し、変更を設定値管理サーバアプリ３１０に通知する処理が行われる。設定値管理サーバアプリ３１０は、ステップＳ６０１において、ステップＳ４２２で更新した設定値が他設定値の同期条件に関連する設定値であるかを判定する。他設定値の同期条件に関連する設定値であると判定した場合、ステップＳ６０２に進む。ステップＳ６０２において設定値管理サーバアプリの設定値データ管理部３１２は、表９にて管理するような更新要求を実施したクライアント（デバイスシリアルＮｏ．）に関連付けられる構成変更管理フラグをＯＮにする。そして、ステップＳ４２４に進む。
【００７５】
例えば、設定値管理サーバアプリ３１０が表８のような同期条件を管理する設定値データ管理している。ステップＳ４２２で更新した設定値が、表８で示すような同期条件設定値を変更する場合、表８の例では他設定値である「宛先種別：ＦＡＸ」の同期条件に関連する設定値であると判定することができる。例えば、デバイスシリアルＮｏ．｛１２３４５６７｝から受信した設定値の更新通知に｛ｓｅｔｔｉｎｇ．ｏｐｔｉｏｎ．ｆａｘｕｎｉｔ｝を｛ＯＮ｝とする通知の場合、表９のデバイスシリアルＮｏ．｛１２３４５６７｝の構成管理フラグをＯＮとする。
【００７６】
次に図７のフローチャートの処理を図５との差分を中心に説明する。図７は図５と同様に設定値管理クライアントアプリ３２０が同期要求を送信し、設定値管理サーバアプリ３１０が同期要求に応じて応答データを送信する処理である。図５の処理と同様の処理となるフローチャートのステップには、図５と同一の番号を付与し、ここでの詳細な説明については省略する。
【００７７】
設定値管理クライアントアプリ３２０から定期的な同期要求が実施される。設定値管理サーバアプリ３１０は同期要求を受信した時、ステップＳ７０１において表９のように格納される設定値データを参照し、同期要求を実施したデバイスの構成管理フラグがＯＮであるかを判定する。同期要求を実施したデバイスの構成管理フラグがＯＮである場合、ステップＳ７０２に進み、設定値データ管理部３１２が通知元の設定値管理クライアントアプリ３２０に対応するデバイスの構成変更管理フラグをＯＦＦとする。そして、ステップＳ５２３に進み、アプリケーション制御部３１３は、図５の説明したように、同期要求を実施したデバイスに関連する全設定値を取得する。その後、図５と同様に、同期要求元のクライアントの構成情報を参照して応答データを生成する。
【００７８】
以上説明したように、差分同期を行う構成において、他の設定値の同期条件に影響する設定値に変更があった場合には、全ての設定値の同期を行う。これにより、設定値管理サーバアプリ３１０で格納するデータと設定値管理クライアントアプリ３２０で格納するデータの不整合が生じることを防止することができる。また、いわば設定値管理クライアントアプリ３２０が設定値管理サーバアプリ３１０に初めて同期要求する場合と同じ同期処理となるので、サーバが管理するデータとの間で漏れのないデータ同期が可能である。また、設定値管理サーバアプリ３１０においても、データの関連性を考慮せずに応答データを作成することができる。
【００７９】
［実施例２］
次に実施例２について説明する。実施例１では、複合機１２０のデバイス構成情報を更新した後に同期要求をした場合、設定値管理サーバアプリ３１０は、そのデバイス（複合機１２０）に関連する全データを同期対象として応答データを作成する例を説明した。つまり、設定値管理サーバ１１０側において、他の設定値の同期条件に影響する設定値の変更をしたデバイスを特定し、その後、そのデバイスから同期要求があった場合に全データを同期対象とする例を説明した。
【００８０】
これに対して実施例２では、設定値管理サーバ１１０側の処理は変更せずに、クライアントである複合機１２０側の処理を変更することで同期するデータの不整合を防止する例を説明する。
【００８１】
図８のフローチャートの処理を図４との差分を中心に説明する。同様の処理となるフローチャートのステップには、図４と同一の番号を付与している。
【００８２】
設定値管理クライアントアプリ３２０は、ステップＳ４１１で設定値の変更を検知し、ステップＳ４１２で設定値管理サーバアプリ３１０へ更新を通知する前に、ステップＳ８０１の処理を行う。ステップＳ８０１で設定値データ管理部３２２は、ステップＳ４１１で変更された設定値が構成情報に関する設定値であるかを判定する。そして、変更された設定値が構成情報に関する場合は、ステップＳ８０２に進み、設定値データ管理部３２２は、その変更を示したファイルを別途格納する。
【００８３】
変更された設定値が構成情報に関する設定値であるか否かの判定は、例えば、設定値データ管理部３２２が、表１のデバイス設定値の設定値名に基づいて判定することができる。例えば、ＦＡＸユニットのキー識別子は｛ｓｅｔｔｉｎｇ．ｏｐｔｉｏｎ．ｆａｘｕｎｉｔ｝である。このように、設定値データ管理部３２２では、｛ｓｅｔｔｉｎｇ．ｏｐｔｉｏｎ．＊｝に対しての変更がある場合に、構成情報に関する設定値の変更であるとみなすよう識別可能な検索性を備えたキー識別子を用いればよい。
【００８４】
あるいはまた、設定値管理クライアントアプリ３２０は、設定値管理サーバアプリ３１０で格納されている、設定値管理サーバアプリで管理している表８と対応するような設定値データを設定値管理データベース３２４に格納していてもよい。あるいは、別途、キー識別子が構成管理データに対応する表を設定値管理データベース３２４に格納していてもよい。
【００８５】
具体的に、｛ｓｅｔｔｉｎｇ．ｏｐｔｉｏｎ．ｆａｘｕｎｉｔ｝が｛ＯＮ｝となった場合には、設定値データ管理部３２２がアプリケーション制御部３２３に処理を依頼する。アプリケーション制御部３２３は、変更を示したファイルをシステムバス２３０を介して外部の記憶部（ＨＤＤ２０７やＲＡＭ２０６）などに格納する。
【００８６】
次に図９のフローチャートの処理を図５の差分を中心に説明する。同様の処理となるフローチャートのステップには、図５と同一の番号を付与している。
【００８７】
ステップＳ５１１において定期的な同期タイミングとなったことを検知した場合、ステップＳ９０１に進み、設定値管理クライアントアプリのアプリケーション制御部３２３は、構成の変更を示すファイルが存在するかを判定する。アプリケーション制御部３２３は、例えばシステムバス２３０を介して外部の記憶部へ格納された、構成の変更を示すファイルが存在するかを判定する。
【００８８】
構成の変更を示すファイルが存在する場合に、ステップＳ５１４に進み、アプリケーション制御部３２３は、定期的な同期要求時に通知していた、「前回同期時刻を指定しない同期要求」を実施する。つまり、ステップＳ５１２において前回同期時刻が存在しないと判定された場合と同じ同期要求（全ての設定値を応答として返信させる要求）を実施する。これにより、設定値管理サーバアプリ３１０が同期要求を受信した際に、全設定値の応答をクライアントの構成情報に基づいて応答することになる（ステップＳ５２３、Ｓ５２５参照）。
【００８９】
その後、設定値管理サーバアプリ３１０から応答データを受信し、データの更新（Ｓ５１５）や前回同期時刻の更新（Ｓ５１６）の後、ステップＳ９０２の処理を行う。ステップＳ９０２においてアプリケーション制御部３２３は、同期要求フロー中で構成の変更を示すファイルが存在するか否かを判定する。そして、構成の変更を示すファイルが存在する場合、ステップＳ９０３においてアプリケーション制御部３２３は、構成の変更を示すファイルを削除する。
【００９０】
本実施例は、ネットワーク１００を介したデータの送受信である。従って何かしらの原因により、エラーの応答を受信する場合もある（不図示）ので、同一同期要求のフローにて、構成の変更を示すファイルの存在を確認し削除を実施している。
【００９１】
以上説明したように、実施例２では設定値管理サーバ側の構成を変更せずに、設定値管理クライアントアプリ３２０がクライアントの構成変更を検知し、全データの同期要求を行うことで設定値管理サーバアプリとの整合性を保った同期が可能となる。
【００９２】
［実施例３］
次に実施例３について説明する。実施例１では設定値管理サーバ側で構成の変更があったことを特定し、構成の変更があったデバイスに関連する全データを同期する例を説明した。実施例３では、設定値管理サーバアプリ３１０が構成情報の変更を検知した際に、デバイスに関連する全データを同期するのではなく、同期対象とする設定値をあらかじめ決定する例を説明する。
【００９３】
以下、実施例１との差分を中心に、第３の実施例を説明する。
【００９４】
実施例３では、設定値管理サーバアプリの設定値管理データベース３１４には表１０に示すように、表７の設定値データに強制同期フラグという項を追加した設定値が格納されている。
【００９５】
【表１０】
0006611594.tif 000011
【００９６】
図１０のフローチャートの処理を図４と図６との差分を中心に、説明する。同様の処理となるフローチャートのステップには、図４、図６と同一の番号を付与している。
【００９７】
設定値管理サーバアプリ３１０の処理のステップＳ６０１において、更新した設定値が他設定値に対する同期条件に関する設定値であると判定された場合に、設定値データ管理部３１２は、ステップＳ１００１に進む。ステップＳ１００１で設定値データ管理部３１２は、各関連する設定値の強制同期フラグを｛ＯＮ｝とする。
【００９８】
設定値管理サーバアプリ３１０は例えば、表８のような同期条件を管理する設定値データ管理している。デバイスシリアルＮｏ．｛１２３４５６７｝から受信した設定値の更新通知に｛ｓｅｔｔｉｎｇ．ｏｐｔｉｏｎ．ｆａｘｕｎｉｔ｝を｛ＯＮ｝とする通知の場合、表１０の宛先種別｛ＦＡＸ｝の設定値データの強制同期フラグを｛ＯＮ｝とする。
【００９９】
次に図１１のフローチャートの処理を図５の差分を中心に説明する。同様の処理となるフローチャートのステップには、図５と同一の番号を付与している。
【０１００】
設定値管理サーバアプリの処理において、ステップＳ５２４によって時刻比較を行った結果の設定値を取得した後、ステップＳ１１０１に進む。ステップＳ５２４で取得した設定値に加えて、ステップＳ１１０１において設定値データ管理部３１２は、強制同期フラグがＯＮの設定値を取得する。そして、ステップＳ１１０２において設定値データ管理部３１２は、ステップＳ１１０１で取得した設定値の強制同期フラグを、設定値を取得後に｛ＯＦＦ｝にする。その後、図５と同様に同期要求元のクライアントの構成情報に基づいて設定値データを応答する。
【０１０１】
これにより、デバイスの構成情報に関する設定値に変更があった場合に、全データを対象とするのではなく、影響のある設定値の関連を考慮した同期が行うことが可能となる。
【０１０２】
＜変形例＞
実施例１から３では、表７のように共通設定値データであっても実データはクライアント分存在する例で説明した。しかしながら、共通設定値のデータの実体が１つで管理されている場合でも適用可能である。また、上記各実施例ではフラグとして説明したが、時刻情報としてもよい。例えば、データの実体が１つである形態の共通設定値を管理していた場合などに、複数クライアントに対して同期の完了を明示する手立てとして、同期要求に応じて共通設定値をクライアントへ応答した時刻を設定値管理サーバアプリ側で管理すればよい。すなわち、クライアントからの設定値の更新時の時刻であるサーバ最終更新時刻のほかに、クライアントからの同期要求に対する応答として設定値を応答したサーバ応答時刻もさらに関連付けて管理すればよい。このサーバ応答時刻は、例えば表４に示すようなクライアントごとの設定値にさらに関連付けて管理される。つまり、設定値管理サーバアプリは、同期要求に対する応答時刻（サーバ応答時刻）をクライアントごとに管理する。サーバ応答時刻以前の時刻が指定されたクライアントからの同期要求を設定値管理サーバが受信した場合、そのクライアントでの構成が変更されている可能性がある。そこで、このような同期要求を受信した場合、設定値管理サーバは、サーバ最終更新時刻に関わらず、全ての設定値を応答したり、構成変更に関連する設定値を応答したりする処理も実施可能である。
【０１０３】
［実施例４]
実施例１から３では、設定値管理サーバアプリケーションがデバイス毎に管理している設定値を同期する処理の例を説明した。しかしながら、設定値管理サーバアプリが設定値を管理する方法としては、ユーザ毎に設定値を管理する方法もある。例えば、クライアントである複合機がログイン管理を行うような複合機の場合、ユーザ毎にある処理の初期値を管理しているような場合がある。このようなユーザ毎の設定値を、設定値管理サーバと各クライアントとの間で同期処理する例を実施例４で説明する。
【０１０４】
設定値管理サーバアプリケーションの設定値管理データベース３１４には、表１１のようにユーザ情報が管理されており、設定値管理クライアントアプリケーションの設定値管理データベース３２４には、表１２のようにユーザ情報が管理されている。
【０１０５】
【表１１】
0006611594.tif 000012
【０１０６】
【表１２】
0006611594.tif 000013
【０１０７】
実施例１から３で説明していた各設定値管理クライアントアプリケーションで管理される最終同期時刻として、各クライアントが最後に同期処理を行った最終同期時刻を各設定値管理クライアントアプリケーションがそれぞれ管理する例を説明した。本実施例では、ユーザ毎の設定値に適応するために、各設定値管理クライアントアプリケーションはユーザ毎に最終同期時刻を表１２のようにそれぞれ管理している。なお、このユーザ毎の最終同期時刻は、それぞれのクライアントでの最終同期時刻である。つまり、他のクライアントでは、同じユーザに対して異なる最終同期時刻が管理されることがある。
【０１０８】
設定値管理サーバアプリケーションの設定値管理データベース３１４には表１３のようにユーザ毎の設定値を管理するテーブルが存在する。
【０１０９】
【表１３】
0006611594.tif 000014
【０１１０】
また、表１４は、本実施例におけるデバイス構成情報の一例を示す。実施例１で説明した表６においては、各デバイスのフィニッシャやＦＡＸユニットが有効か否かを示す例を示した。本実施例における表１４では、アドレス帳、コピー機能、スキャンして送信機能などが有効か否かを示す例を示している。
【０１１１】
【表１４】
0006611594.tif 000015
【０１１２】
以下では、表１４のようにデバイス構成情報が登録されていた場合の同期処理について説明する。前述のとおり、表１１は設定値管理サーバアプリケーションの設定値管理データベース３１４に保存されている、ユーザを管理する設定値情報である。そして、表１３はこの表１１に対応したユーザが設定した個人設定を管理している。
【０１１３】
例えば、ユーザ名”userA”の「スキャンして送信」のアプリケーション起動時のデフォルト設定値を確認するにはまず表１１のユーザ名”userA”に対応するユーザＩＤを確認する。そして、それに対応する表１３の関連データ識別子” license.application.ScanToSend”を確認する。具体的には、”userA”に対応するユーザＩＤは「２」であるので、このユーザＩＤ「２」に対応する表１３の関連データ識別子” license.application.ScanToSend”を確認する。表１３には、この“userA”の「スキャンして送信」のアプリケーション起動時のデフォルト設定値が保存されている。表１３によれば、”userA”が「スキャンして送信」アプリケーションを起動した際には、スキャンされた画像を送信する際のファイルフォーマットがPDF形式である設定値となっている。また、送信先のCC.にaaa@xxx.co.jpを設定し起動するための設定値となっている。そして、この「スキャンして送信」機能が有効となっているデバイスは表１４の有効ライセンス/オプションから” license.application.ScanToSend”が有効となっているデバイス「3124567」である。
【０１１４】
表１３に示すようなユーザ毎に管理されている設定値を各クライアント間でサーバを介して同期すると、ユーザはクライアント毎に新たに設定をする必要がなくなるので、利便性が向上する。しかしながら、表１４で示すようなデバイス構成情報が変わるような場合、例えばあるクライアントＸにおいて「スキャンして送信」アプリケーションが有効でない（インストールされていない）状態から有効になった状態に変更される場合がある。このような場合、最終更新時刻以降の差分を同期する差分同期処理を行うと、実施例１と同様に適切な設定値が同期されない場合がある。本実施例では、ユーザ毎に管理されている設定値についても適切な同期処理が行われる形態を説明する。
【０１１５】
表１４の構成情報は表６について記載した説明と同様に図６や図８のフローで示す処理で更新される。つまり、設定値管理クライアントアプリケーションは、表１４のデバイス構成情報（例えば、「スキャンして送信」アプリケーションの有効かを示す設定値）に変更があった場合、その設定値の変更を設定値管理サーバアプリケーションに通知する（Ｓ４１２）。また、更新される対象はデバイス構成情報のみではない。表１３に示すようなユーザ毎の設定値についても、あるクライアントにログインしているユーザが変更を行った場合、設定値管理クライアントアプリケーションは設定値管理サーバアプリケーションにその設定値の変更を通知する（Ｓ４１２）。
【０１１６】
また、ユーザ毎の設定値の同期処理においても、それぞれ特定のデバイス（クライアント）にログインした場合に該ログインデバイスで同期対象となる設定値を決定する機能が設定値管理サーバアプリケーションには備わっている（Ｓ５２５）。例えば、ユーザがログインしたデバイスが「スキャンして送信」アプリケーションが有効でない場合には、他のデバイスで「スキャンして送信」アプリケーションに関する設定値（起動時の初期値）が変更されたとしても、同期対象とは決定されない。
【０１１７】
設定値管理クライアントアプリケーションでは表１５のように表１４のサーバ最終更新時刻以外の項目に対応して設定値を管理している。
【０１１８】
【表１５】
0006611594.tif 000016
【０１１９】
ユーザ毎に管理している設定値の同期要求タイミングはユーザが使用対象のデバイスへログインしたタイミングで実施される。例えば、ユーザがデバイスＸにログインすると、デバイスＸがクライアントとして設定値管理サーバアプリケーションに同期要求を通知することになる。
【０１２０】
ここで、図１２を用いてユーザ毎に管理された設定値同期処理のフローを説明する。なお、実施例１と同様に、まず図１２を用いてユーザ毎に管理された設定値同期処理を説明し、その後の図１３および図１４において本実施例の設定値同期処理を説明する。図１２においても、実施例１で説明した処理と同様の処理については同じ符号を付し、詳細な説明は割愛する。複合機１２０にユーザがログインする。すると、ステップＳ１２０１において設定値管理クライアントアプリケーションは、ユーザのログインを検知する。本実施例では、ユーザのログインを同期要求の契機として用いる。
【０１２１】
次に、ステップＳ１２０２において、設定値管理クライアントアプリケーションは図５のＳ５１２と同様に、前回同期時刻が存在するかを判定する。なお、このステップＳ１２０２ではＳ５１２とは異なり、設定値クライアントアプリケーションは、表１２に示すようにログインしたユーザに関する設定値の前回同期時刻（最終同期時刻）が存在するかを判定する。ログインしたユーザに関する設定値の前回同期時刻が存在する場合、ステップＳ１２０３に進む。ステップＳ１２０３において設定値クライアントアプリケーションは、その前回同期時刻の指定とログインユーザを示すユーザ識別情報とを指定した、設定値の同期要求を設定値管理サーバアプリ３１０に通知する。
【０１２２】
一方、前回同期時刻が存在しない場合は、ステップＳ１２０４において設定値管理クライアントアプリケーションは、同期時刻を指定せずログインユーザのみを指定した設定値の同期要求を設定値管理サーバアプリ３１０に通知する。
【０１２３】
ステップＳ１２１０において設定値管理サーバアプリ３１０は、受信した同期要求に対しユーザの指定の有無を判定する。ユーザの指定がない場合は、ステップＳ１２１３に進み、図５で説明したデバイス設定値の同期処理（Ｓ５２２）以降の処理と同様の処理を実施する。
【０１２４】
ユーザの指定がある場合は、ステップＳ５２２に進み、設定値管理サーバアプリケーションは、同期要求に対し図５で説明したＳ５２２と同様に同期要求に対し時刻の指定があるかを判定する。
【０１２５】
時刻が指定されている場合は、ステップＳ１２１１に進み、設定値管理サーバアプリケーションは、指定時刻以降の、指定されたユーザに関連するサーバ更新時刻の設定値を取得する。
【０１２６】
ここで例えば、ユーザ名”Administrator”がログインし、前回同期時刻が表１２に示すように”2015/2/1 13:01”であった場合を考える。この場合、ステップＳ１２１１で取得されるデータは表１３のユーザＩＤ”1”の設定値{宛先種別:FTP, 宛先：192.168.222.333, 表示名:共有サーバ}となる。
【０１２７】
また、時刻が指定されていない場合は、ステップＳ１２１２に進み、設定値管理サーバアプリケーションは、指定されたユーザに関連する設定値をすべて取得する。
【０１２８】
Ｓ１２１１または、Ｓ１２１２で取得された設定値を応答する際に、図５で説明したＳ５２５からＳ５２７と同様に、設定値管理サーバアプリケーションは、同期要求元クライアントの構成情報を取得し、応答データの作成を行う。ここで例えば、ユーザがログインしたデバイスのシリアル番号が”1234567”であった場合を考える。この場合、表１４を参照して、設定値管理サーバアプリケーションは” license.application.AddressBook”と” license.application.Copy”に関連するデータのみの応答データを作成して応答する。
【０１２９】
最後に設定値管理クライアントアプリケーションは、図５のＳ５１５からＳ５１６と同様に処理を実行し終了する。
【０１３０】
図１２を用いて説明したように設定値管理サーバアプリ３１０と設定値管理クライアントアプリ３２０の処理によりユーザ毎に管理されたデータに関しても同期処理が可能となる。
【０１３１】
なお、図１２のＳ１２１０では同期要求にユーザ指定があるか否かで処理を切り替える例を示しているが、これに限られるものではない。例えば、同期要求にユーザ指定があった場合（Ｓ１２１０でＹＥＳの場合）であっても、Ｓ１２１３と同様の処理を行うような処理でもよい。すなわち、ユーザを指定した同期要求を契機として実施例１等で説明したデバイス毎の共通設定値の同期処理も併せて行われる形態でもよい。
【０１３２】
表１６は本実施例の同期データ整合性を管理するために実施例１で説明した表４にデバイス管理構成情報が変更された時点の時刻をさらに関連付けて管理するためのテーブルである。
【０１３３】
本実施例は、設定値管理クライアントアプリ３２０からの同期要求に付属している時刻が構成情報変更時刻よりも前の時刻であった場合に設定値管理サーバアプリ３１０の全設定値で再同期をする応答を実施する構成を説明する。つまり、設定値管理サーバアプリ３１０は、設定値の最終更新時刻に関わらず、ログインユーザに関連する設定値を同期対象の設定値として取得し、デバイスの構成に応じた同期条件に従って設定値をクライアントに応答する例を説明する。
【０１３４】
【表１６】
0006611594.tif 000017
【０１３５】
具体的な処理内容について図１３、図１４のフローチャートを用いて説明する。
【０１３６】
図１３は図６で説明した処理と基本的に同様の処理である。図１３においてＳ４１１からＳ６０１までの処理が実施された後、設定値管理サーバアプリケーションは、更新した設定値が他設定値の同期条件に関する設定値である場合に、ステップＳ１３０１に進む。ステップＳ１３０１において設定値管理サーバアプリケーションは、通知元のデバイスに対応する表１６の構成変更時刻を現時刻に更新する。例えば、設定値管理サーバアプリケーションは、変更が通知された設定値が表１４に示すようなデバイスの構成情報の変更に関する設定値の場合（一例として「スキャンして送信」機能が有効になった場合）、ステップＳ１３０１に進むことになる。実施例１等で説明したように、構成変更の時刻よりも前に同期処理を行なっている場合には、構成変更に伴い同期条件に含まれるようになった設定値がその後の同期処理では同期対象として取得されないことがあるからである。
【０１３７】
そこで、図１４を用いて、デバイスの構成情報が変更された後のデータ同期処理の結果、設定値管理サーバアプリ３１０と設定値管理クライアントアプリ３２０の管理する設定値の同期が不整合となってしまう状態を解消する同期方法を説明する。
【０１３８】
図１４の処理においては、図１２からの差分を中心に説明する。同期要求にユーザの指定がされ（Ｓ１２１０ＹＥＳ）、時刻の指定がされている同期要求を受信した場合（Ｓ５２２ＹＥＳ）、ステップＳ１３１１に進む。ステップＳ１３１１において設定値管理サーバアプリケーションは、表１６に示す同期要求元のクライアントの構成変更時刻と、同期要求に付属している前回同期時刻とを比較する。
【０１３９】
同期要求に付属する前回同期時刻が該デバイスの構成変更時刻よりも以前であった場合、前述のようにデバイスの構成変更に伴い同期条件に含まれるようになった設定値の同期が適切に行なわれないことになる。そこで、設定値管理サーバアプリケーションはステップＳ１３１２において、設定値管理データベース３１４と設定値管理データベース３２４との同期状態が不整合となっていることを通知する応答データを作成する。そして、ステップＳ５２７に進み、作成した応答データを送信する。
【０１４０】
設定値管理クライアントアプリ３２０は、ステップＳ１３０１において設定値管理サーバアプリケーションからの応答データを受信する。そして、ステップＳ１３０２において設定値管理クライアントアプリケーションは、受信した応答データの内容が、同期データの不整合を通知する内容であるかを判定する。同期データの不整合を通知する内容でない場合は、ステップＳ１３０５に進み、設定値管理クライアントアプリケーションは、受信されたデータの更新をＳ５１５と同様に行う。そして、図１２と同様に、Ｓ５１６を実施し終了する。
【０１４１】
一方、同期データの不整合を通知する内容であった場合は、ステップＳ１３０３に進む。ステップＳ１３０３において設定値クライアントアプリケーションは、設定値管理クライアントアプリケーションの設定値管理データベース３２４に保存されている、そのログインユーザの設定データを削除する。そして、ステップＳ１３０４として、ステップＳ１２０３の処理を実行する。すなわち、ステップＳ１３０４において設定値管理クライアントアプリケーションは、設定値管理サーバアプリ３１０に対してユーザを指定し、かつ、時刻の指定を行わない同期要求を実施する。このステップＳ１３０４の同期要求を受けると、Ｓ５２２でＮＯの判定となり、ステップＳ１２１２に進む。そして、設定値管理サーバアプリケーションは、設定値の最終更新時刻に関わらず、指定されたユーザに関連する設定値を取得することになる。このステップＳ１３０４の同期要求は、時刻の指定を伴わない同期要求を実施するものなので、設定値管理サーバアプリ３１０のＳ１３１１の判定を再度通過することはない。また、応答データが同期データの不整合を通知するもの以外であれば、ユーザが予め設定した設定値すべてが更新され前回同期時刻が更新される。つまり、この再度の同期要求の結果、設定値クライアントアプリケーションにて管理している前回同期時刻も適切に更新される。従って、構成変更時刻より前の時刻を指定した同期要求が複数回実施されることはない。
【０１４２】
これにより、設定値管理サーバアプリ３１０と設定値管理クライアントアプリ３２０のユーザ毎に設定値を管理している場合でも構成情報変更によるデータ同期の不整合となることを解消することが可能となる。
【０１４３】
近年のパーソナライズコンピューターや複合機等の、複数ユーザによって共有して利用される情報処理装置は、利用ユーザ毎に設定を関連付け保存している場合がある。本実施例によれば、ユーザ毎に管理されているデータの同期を実施する場合において、情報処理装置の構成変更に起因する同期状態の不整合を防止することができる。
【０１４４】
＜その他の実施例＞
以上、各実施例、変形例について説明したが、上述する実施例等は、本発明を実施する上での一例であり、各実施例、変形例の処理、動作を組み合わせて実現してもよいし、本発明は実施例の構成に限ったものではない。
【０１４５】
また、実施例１から３の説明を主にＦＡＸユニットの有無により同期されるデータに不整合が生じる例を説明し、実施例４ではインストールされているアプリケーションや有効化されたライセンスの有無により同期されるデータに不整合が生じる例を説明した。しかしながらデバイス構成情報はクライアントの所定の構成が有効か否かを示す情報であればよい。その他の例としては、地紋機能のライセンスの有無や、フィニッシャの有無などの変更の場合にも、設定値は変更される。すなわち、デバイスの構成に関する設定値は、クライアントのデバイスに対するライセンスの有無を示す設定値、クライアントのデバイスの機能の有無を示す設定値、ライセンスの状態を示す設定値、または機能の状態を示す設定値とすることができる。このようなクライアントとなるデバイスの構成情報に関して設定値等の管理を行っている場合、本発明は適応可能である。このように、クライアントは複合機に限った構成である必要はなく、設定値を管理するデバイスでかつデバイスを構成する情報によって設定値に変更がある情報機器端末等に適応可能である。例えば、パーソナルコンピュータや、携帯電話端末、スマートフォン端末、画像形成装置、電子時計、電子手帳等の構成を持つ情報処理装置に適応可能である。
【０１４６】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006611594.tif 000018
【図２】
0006611594.tif 000019
【図３】
0006611594.tif 000020
【図４】
0006611594.tif 000021
【図５】
0006611594.tif 000022
【図６】
0006611594.tif 000023
【図７】
0006611594.tif 000024
【図８】
0006611594.tif 000025
【図９】
0006611594.tif 000026
【図１０】
0006611594.tif 000027
【図１１】
0006611594.tif 000028
【図１２】
0006611594.tif 000029
【図１３】
0006611594.tif 000030
【図１４】
0006611594.tif 000031