(57)【特許請求の範囲】
【請求項１】
複数のクライアントのそれぞれの設定値を管理するサーバとしての機能と、前記設定値の管理を受けるクライアントとしての機能とを併有する情報処理装置であって、
ネットワーク設定に関する設定値であって前記サーバとしての機能と前記クライアントとしての機能とで同じ値を使用する第１の設定値、及び、当該第１の設定値に関連する設定値を含む前記各クライアントの第２の設定値をデータベースでそれぞれ管理する管理手段と、
前記第１の設定値の変更の入力が行われた場合に、前記データベースで管理される前記各クライアントの第２の設定値に含まれる前記サーバとしての自装置への接続先を示す設定の設定値を、前記入力された変更後の値で、更新する更新手段と、
前記各クライアントからの要求に応じて、前記更新された後の前記接続先を示す設定の設定値を送信する同期手段と、
を有し、
前記情報処理装置では、前記同期手段による各クライアントの要求に応じて前記更新された後の前記接続先を示す設定の設定値の送信が行われた後に、前記入力された変更後の値を、前記データベースで管理される前記第１の設定値に反映する
ことを特徴とする情報処理装置。
【請求項２】
前記第１の設定値は、ＩＰアドレス又はホスト名であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
複数のクライアントのそれぞれの設定値を管理するサーバとしての機能と、前記設定値の管理を受けるクライアントとしての機能とを併有する情報処理装置であって、ネットワーク設定に関する設定値であって前記サーバとしての機能と前記クライアントとしての機能とで同じ値を使用する第１の設定値、及び、当該第１の設定値に関連する設定値を含む前記各クライアントの第２の設定値をデータベースでそれぞれ管理する管理手段を備えた情報処理装置に、
前記第１の設定値の変更の入力が行われた場合に、前記データベースで管理される前記各クライアントの第２の設定値に含まれる前記サーバとしての自装置への接続先を示す設定の設定値を、前記入力された変更後の値で、更新するステップと、
前記各クライアントからの要求に応じて、前記更新がなされた後の前記接続先を示す設定の設定値を送信するステップと、
各クライアントの要求に応じて前記更新がなされた後の前記接続先を示す設定の設定値の送信が行われた後に、前記入力された変更後の値を、前記データベースで管理される前記第１の設定値に反映するステップと、
を実行させるためのアプリケーションプログラム。
【請求項４】
前記第１の設定値は、ＩＰアドレス又はホスト名であることを特徴とする請求項３に記載のアプリケーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の情報処理装置がネットワークで相互に接続された環境における、各情報処理装置に保存されている設定値の同期技術に関する。特に、クライアントとして動作可能な情報処理装置にサーバの機能を搭載している際の同期技術に関する。
【背景技術】
【０００２】
近年、複合機等の情報処理装置（クライアント）の設定値に関して、そのマスターデータをネットワーク接続されたサーバに保存して一元管理することがある。この設定値については、クライアントとサーバとの間で同期されており、サーバ上のマスターデータの値を変更すると、変更後の値がクライアントに通知され、当該クライアント内の設定値も変更される。同様に、クライアント内の設定値を変更すると、サーバ上のマスターデータの値も変更される。ここで、設定値によっては、複数のクライアント間で共通の値を同期させるもの（共通設定値）も存在する。この場合、あるクライアントにおいて共通設定値が変更されると、サーバ上のマスターデータ、および同期対象のすべてのクライアント内の設定値が変更されることになる。その一方で、他のクライアントとの同期を行わない設定値（個別設定値）が存在し、この場合、あるクライアントで個別設定値が変更されると、サーバ上のマスターデータの当該クライアントの設定値のみが変更され、他のクライアントの設定値には反映されない。
【０００３】
ユーザが、クライアントの各種設定値について、サーバの管理下で同期させることを開始する際は、サーバとクライアントとの間で初期接続を行なうための処理（初期接続処理）が必要となる。この初期接続処理時には、クライアントからサーバに対し該当クライアントの全設定値の登録要求がなされる。この時、サーバのマスターデータ上に登録要求に係る「クライアントの設定値」が既に登録されている場合は、サーバは当該「クライアントの設定値」の登録処理を無視することになる。
【０００４】
従来、サーバに登録された特定の設定値に基づき、クライアントに対して既定のサーバ処理を実施することが行われている。例えば、特許文献１には、クライアントからの印刷要求に基づき印刷処理の対象となる印刷オブジェクトを特定し、該特定された印刷オブジェクトに対応して設定された属性に基づいてアクションを決定する技術が開示されている。この技術では、サーバは属性に応じて実行すべきアクションを対応付けた属性依存アクション定義テーブルを有し、該テーブルを参照することにより、オブジェクト毎に設定された属性に応じたアクションを決定している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１１９９３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述のようなクライアントサーバシステムにおいて、一般ユーザが容易に設定値を変更可能な複合機等のクライアントデバイスに、サーバの機能を持たせる場合がある。このように特定のクライアントがサーバとクライアントの両方の機能を持つ時、「サーバ」と「サーバを搭載したクライアント」が、ある設定値について同じ値を共有することになる。そして、このようなサーバとクライアントとで共有参照される設定値（共有設定値）については、クライアントでの当該設定値の変更が、サーバの設定値の変更に繋がってしまう。この共有設定値としては、例えば、ＩＰアドレスやホスト名がある。そして、サーバ機能を搭載したクライアントにおいては、ユーザはＩＰアドレスやホスト名を容易に変更することができ、ユーザが意図せずにサーバと共有される設定値を変更してしまうといったことが起こり得る。その結果、サーバとしての設定値も変更されることから、自身を含む全てのクライアントとの同期ができなくなるという問題が生じることになる。この点、前述の特許文献１の技術では、クライアントからの印刷要求に基づく属性とそれに依存したサーバ処理を実施しているものの、サーバ自身の設定値変更により発生した問題を解決することはできない。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、複数のクライアントのそれぞれの設定値を管理するサーバとしての機能と、前記設定値の管理を受けるクライアントとしての機能とを併有する情報処理装置であって、ネットワーク設定に関する設定値であって前記サーバとしての機能と前記クライアントとしての機能とで同じ値を使用する第１の設定値、及び、当該第１の設定値に関連する設定値を含む前記各クライアントの第２の設定値をデータベースでそれぞれ管理する管理手段と、前記第１の設定値の変更の入力が行われた場合に、前記データベースで管理される前記各クライアントの第２の設定値に含まれる前記サーバとしての自装置への接続先を示す設定の設定値を、前記入力された変更後の値で、更新する更新手段と、前記各クライアントからの要求に応じて、前記更新された後の前記接続先を示す設定の設定値を送信する同期手段と、を有し、前記情報処理装置では、前記同期手段による各クライアントの要求に応じて前記更新された後の前記接続先を示す設定の設定値の送信が行われた後に、前記入力された変更後の値を、前記データベースで管理される前記第１の設定値に反映することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、サーバ機能が搭載されたクライアントデバイスにおいて、サーバと共有参照する設定値が変更されても、サーバと各クライアント間の同期を問題なく実現することができる。
【図面の簡単な説明】
【０００９】
【図１】印刷システム全体を示すシステム構成図の一例である。
【図２】サーバの内部構成を示すブロック図である。
【図３】複合機の内部構成を示すブロック図である。
【図４】サーバで管理されるマスターデータの構成例を表すブロック図である。
【図５】クライアントとしての機能を実現するためのアプリケーションの構成要素を示す機能ブロック図である。
【図６】クライアントにおいて設定値が新たに設定された場合に、当該設定値の情報をサーバに登録するための処理の手順を示すフローチャートである。
【図７】送信可否判定処理の詳細を示すフローチャートである。
【図８】複合機の電源状態の遷移を説明する図である。
【図９】クライアントの同期管理を行なうサーバとしての機能を実現するためのアプリケーションの構成要素を示す機能ブロック図である。
【図１０】サーバにおける設定値同期処理の実行手順を示すフローチャートである。
【図１１】サーバとクライアントを兼任する情報処理装置で管理されるマスターデータの構成例を表すブロック図である。
【図１２】サーバアプリケーションの構成要素を示す機能ブロック図である。
【図１３】兼任デバイスで共有設定値が変更された際に、サーバ管理下の各クライアントにおける関連する設定値を変更する処理のフローチャートである。
【図１４】実施例２に係る、クライアントアプリケーションにおける処理の流れを示すフローチャートである。
【図１５】ユーザがＩＰアドレスを変更する際に使用するユーザインタフェース画面の一例を示す図である。
【図１６】実施例２に係る、兼任デバイスでＩＰアドレスの変更が検知された際の、サーバアプリケーションにおける処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付の図面を参照して、本発明を実施する形態について説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１１】
［実施例１］
図１は、印刷システム全体を示すシステム構成図の一例である。印刷システム１００は、１台のサーバ１１０と２台の複合機１２１／１２２で構成され、これらが相互にネットワーク１３０を介して接続されている。
【００１２】
サーバ１１０は、複合機１２１及び複合機１２２の設定値のマスターデータを同期管理している。すなわち、サーバ１１０においてマスターデータの変更を行った場合は、複合機１２１及び複合機１２２からのポーリングに応答する形で、当該変更の情報が、ネットワーク１３０を介して複合機１２１及び複合機１２２に通知される。また、複合機１２１及び複合機１２２で設定値を変更した際には、その変更の情報がサーバ１１０にネットワーク１３０を介して通知され、サーバ１１０は、当該変更の通知を受けて自身のマスターデータの値を変更する。なお、括弧書きで「複合機」とあるのは、サーバ機能を搭載したクライアントデバイスでもある複合機が、サーバ１１０を兼任することがあることを示している。本発明は、サーバクライアントシステムにおける、ネットワーク上のクライアントデバイスの１つがサーバの機能を併有する構成を前提とするものである。
【００１３】
クライアントデバイスとしての複合機１２１／１２２は、複数種類の機能、例えばコピーやＦＡＸ等を実現する機器であり、内部にそれらの機能実行時に利用する様々な設定値を記憶している。上述のとおり、設定値によっては、複合機１２１と複合機１２２との間のような複数の複合機間で同期させる設定値（共通設定値）も存在する。この共通設定値に関しては、サーバ１１０上のマスターデータに変更があった場合は、複合機１２１及び複合機１２２の両方に設定値を変更した旨の情報が通知される。また、複合機１２１と複合機１２２のどちらかで設定値を変更した場合は、初めにサーバ１１０に変更の情報が通知され、その後、サーバ１１０から他方の複合機に対して変更の情報が通知される。
【００１４】
図２は、サーバ１１０の内部構成を示すブロック図である。サーバ１１０は、コントローラユニット２００、ユーザが入力操作を行なうための操作部２１０、各種情報を表示するためのモニタ等で構成される表示部２２０を備える。そして、コントローラユニット２００は、操作部I/F２０１、表示部I/F２０２、ＣＰＵ２０３、ＲＡＭ２０４，ＨＤＤ２０５、ＲＯＭ２０６、ネットワークI/F２０７を有し、それらはシステムバス２０８を介して相互に接続されている。
【００１５】
ＣＰＵ２０３は、ＲＯＭ２０６に格納されているブートプログラムによりＯＳを起動する。ＣＰＵ２０３は、このＯＳ上で、ＨＤＤ２０５に格納されているアプリケーションプログラムを実行し、これによって各種処理を実行する。このＣＰＵ２０３の作業領域としてはＲＡＭ２０４が用いられる。ＨＤＤ２０５は、上記アプリケーションプログラムと複合機１２１／１２２の設定値のマスターデータ等を格納する。マスターデータの管理方法に関する詳細については後述する。
【００１６】
サーバ１１０は、ネットワーク１３０を介して各複合機（クライアントデバイス）との間で各種の設定値等のデータのやり取りを行う。
【００１７】
図３は、複合機１２１／１２２の内部構成を示すブロック図である。複合機１２１／１２２は、コントローラユニット３００、操作部３１０、スキャナ３２０、プリンタ３３０を備える。コントローラユニット３００には、操作部３１０の他、画像入力デバイスであるスキャナ３２０と、画像出力デバイスであるプリンタ３３０が接続される。
【００１８】
コントローラユニット３００は、操作部I/F３０１、ＣＰＵ３０２、ＲＡＭ３０３、デバイスI/F３０４、ＨＤＤ３０５、ＲＯＭ３０６、ネットワークI/F３０７、画像処理部３０８を有し、それらはシステムバス３０９を介して相互に接続されている。
【００１９】
ＣＰＵ３０２は、ＲＯＭ３０６に格納されているブートプログラムによりＯＳを起動する。ＣＰＵ３０２は、このＯＳ上で、ＨＤＤ３０５に格納されているアプリケーションプログラムを実行し、これによって各種処理を実行する。このＣＰＵ３０２の作業領域としてはＲＡＭ３０３が用いられる。また、ＲＡＭ３０３は、作業領域を提供するとともに、画像データを一時記憶するための画像メモリ領域を提供する。ＨＤＤ３０５は、上記アプリケーションプログラムや画像データ、各種設定値を格納する。複合機１２１／１２２における設定値の管理方法については後述する。
【００２０】
操作部I/F３０１は、タッチパネルを有する操作部３１０とのインタフェースであり、操作部３１０に表示する画像データを操作部３１０に対して出力する。また、操作部Ｉ／Ｆ３０１は、操作部３１０によってユーザにより入力された情報をＣＰＵ３０２に送出する。デバイスＩ／Ｆ３０４には、スキャナ３２０及びプリンタ３３０が接続され、画像データの同期系／非同期系の変換を行う。複合機１２１／１２２は、ネットワークI/F３０７とネットワーク１３０を介して、サーバ１１０や他の複合機との間で各種データのやり取りを行う。
【００２１】
画像処理部３０８では、スキャナ３２０から入力される画像データや、プリンタ３３０に出力される画像データに対する、画像回転、画像圧縮、解像度変換、色空間変換、階調変換などの画像処理を行う。
【００２２】
なお、クライアントデバイスである複合機にサーバ１１０の機能を搭載する場合は、一般的には専用のアプリケーション（サーバアプリケーション）を、対象とする複合機にインストールすることで実現される。この際、サーバ１１０の機能を併有することになる複合機においては、例えばＨＤＤ３０５内の格納領域の切り分け（サーバとしての各種データを格納するための領域とクライアントしての各種データを格納するための領域とを分離）などがなされる。複合機自体のハードウェア構成は、サーバ１１０の機能を持たない他の複合機のハードウェア構成と同じであってもよく、サーバ機能を実現するためのコントローラユニットやＨＤＤを別個に設ける必要はない。また、この時、サーバ１１０のサーバ設定値であるＩＰアドレスやホスト名、システム時刻などの設定値は、サーバとクライアントとで共有参照される共有設定値に該当する。つまり、クライアントとしての複合機１２１／１２２のクライアント設定値であるＩＰアドレスやホスト名、システム時刻などの設定値とそれぞれ一致する（同じ値を用いる）ことになる。
【００２３】
図４は、サーバ１１０で管理されるマスターデータの構成例を表すブロック図である。マスターデータ４０１は、設定値メタ情報ＤＢ４１０、共通設定値ＤＢ４１１、登録クライアント管理ＤＢ４１２、個別設定値ＤＢ４１３、クライアント構成情報管理ＤＢ４１４、ユーザ情報ＤＢ４１５及びユーザ設定値ＤＢ４１６から構成される。
【００２４】
＜設定値メタ情報ＤＢ＞
まず、設定値メタ情報ＤＢ４１０について説明する。設定値メタ情報ＤＢ４１０は、サーバ１１０で管理する各設定値に関するメタデータを格納するデータベースである。表Ａに設定値メタ情報ＤＢ４１０の具体例を示す。
【００２５】
【表１】
0006576071.tif 000002
【００２６】
表Ａの例では、クライアント（複合機）と通信を行う際の各設定値を識別するためのキー識別子、ＵＩ画面上に各設定値を提示する際の文言、初期値、値域、適応機種／バージョン、設定値の表示条件、といった各キー識別子の仕様に関する情報が含まれている。設定値メタ情報ＤＢ４１０で管理する各設定値のメタ情報は、複合機の機種やファームウェアのバージョンに依存して、設定値の値域や初期値が異なることがある。表Ａでは、キー識別子が“settings.pattern”で表される設定値は、機種Ａと機種Ｂでは全ての個体に存在しているが、機種Ｃではファームウェアのバージョンが3.01以降の個体にのみ存在していることを表している。また、キー識別子が“settings.density”で表される設定値は、機種Ｂではインストールされているファームウェアのバージョンにより設定値の値域や初期値が異なる（バージョン2.01以降は機種Ａと同じ、バージョン1.99以前は機種Ｃと同じ）ことを表している。表Ａにおける“settings.density”以降に続く各設定値は、機種やファームウェアバージョンに依らずに同一の値域や初期値であることを示している。また、表Ａには、各設定値が同期管理の対象とする複合機の種別を示す「同期対象」の情報が含まれている。この「同期対象」の情報には、“共通可”、“個別のみ”の二種類が存在し、“共通可”は、その設定値が複数の複合機間に共通して同期させることが可能な設定値であることを示しており、また“個別のみ”は、その設定値が同一個体の複合機とのみ同期させることが可能な設定値であることを示している。なお、“共通可”であっても“個別のみ”に変更することは可能であり、表Ａに記載の内容はあくまで一例である。この同期対象を示す情報は、本実施例では“共通可”、“個別のみ”の二種類とするが、例えば特定のデバイスグループ内で同期させることが可能な設定値であることを示す“グループ”を追加するなどしてもよい。ここで、本実施例において重要なキー識別子である“settings.ip_address”と“settings.server_address”について説明する。“settings.ip_address”は、複合機のＩＰアドレスを示し、当該複合機がサーバ１１０を搭載（兼任）する場合は、サーバ１１０も自身のＩＰアドレスとしてこのキー識別子を参照する。また、“settings.server_address”は、クライアントである複合機が接続する先のサーバ１１０のＩＰアドレス（接続先サーバアドレス）を示す。
【００２７】
なお、この設定値メタ情報ＤＢ４１０は、サーバアプリケーションのインストール時に、別サーバより全クライアントの機種・バージョンの情報をダウンロードしたり、クライアントがサーバ１１０へ同期を開始する際（初期接続処理時）に、該当クライアントの「機種・バージョン」の情報をクライアントから登録リクエストするといった方法で実現される。
【００２８】
＜共通設定値ＤＢ＞
次に、共通設定値ＤＢ４１１について説明する。共通設定値ＤＢ４１１は、サーバ１１０によって設定値を同期管理するすべてのクライアント（ここでは複合機）において共通の設定値を格納・管理するデータベースである。表Ｂは共通設定値ＤＢ４１１の具体例であり、上述の表Ａにおいて「同期対象」の項目が「共通可」となっている設定値で構成される。
【００２９】
【表２】
0006576071.tif 000003
【００３０】
表Ｂの例では、キー識別子、キー識別子に対応する値及び最終更新日時の情報が含まれている。このキー識別子は、設定値メタ情報ＤＢ４１０のキー識別子と同一の体系を持つ識別子である。
【００３１】
＜個別設定値ＤＢ＞
次に、個別設定値ＤＢ４１３について説明する。個別設定値ＤＢ４１３は、サーバ１１０によって設定値を同期管理する複数のクライアント（ここでは複合機）の各々で値が異なる設定値を格納・管理するデータベースである。表Ｃ−１及び表Ｃ−２は個別設定値ＤＢ４１３の具体例であり、上述の表Ａにおいて「同期対象」の項目が「個別のみ」となっている設定値で構成される。
【００３２】
【表３】
0006576071.tif 000004
【００３３】
【表４】
0006576071.tif 000005
【００３４】
表Ｃ−１及び表Ｃ−２には、表Ｂと同様、キー識別子、キー識別子に対応する値及び最終更新日時の各項目についての情報が含まれている。また、表Ｃ−１は複合機１２１に対応し、表Ｃ−２は複合機１２２に対応している。ここでのキー識別子も、設定値メタ情報ＤＢ４１０のキー識別子と同一の体系を持つ識別子である。このように個別設定値ＤＢ４１３は複合機の各個体に対応して存在し、サーバ１１０による同期管理の対象となる複合機の数だけ存在する。
【００３５】
＜クライアント構成情報管理ＤＢ＞
次に、クライアント構成情報管理ＤＢ４１４について説明する。クライアント構成情報管理ＤＢ４１４は、クライアントデバイスである複合機の個体を識別する個体識別子、機種名、ファームウェアのバージョン、利用可能な機能を表すインストール済みライセンスの情報などを含むクライアント構成情報を、固体毎に管理するデータベースである。表Ｄにクライアント構成情報管理ＤＢ４１４の具体例を示す。
【００３６】
【表５】
0006576071.tif 000006
【００３７】
なお、機種名、ファームウェアのバージョン、インストール済みライセンス等は、設定値メタ情報ＤＢ４１０に格納されているものと同一の体系を持つ。
【００３８】
＜登録クライアント管理ＤＢ＞
次に、登録クライアント管理ＤＢ４１２について説明する。登録クライアント管理ＤＢ４１２は、サーバ１１０で設定値を同期管理する対象の複合機の個体識別子を管理するためのデータベースである。
【００３９】
＜ユーザ情報ＤＢ＞
次に、ユーザ情報ＤＢ４１５について説明する。ユーザ情報ＤＢ４１５は、クライアントデバイス（複合機）を利用するユーザに関する情報（ユーザを一意に識別するためのユーザＩＤや、ログインの際にユーザが入力するユーザ名等）を管理するためのデータベースである。表Ｅにユーザ情報ＤＢ４１５の具体例を示す。
【００４０】
【表６】
0006576071.tif 000007
【００４１】
＜ユーザ設定値ＤＢ＞
次に、ユーザ設定値ＤＢ４１６について説明する。ユーザ設定値ＤＢ９０２は、クライアント（ここでは複合機）を利用する各ユーザが利用可能な、ユーザ毎の設定値を管理するためのデータベースである。ユーザ設定値ＤＢ４１６には、ユーザを一意に識別するためのユーザＩＤや、設定値を一意に識別するためのキー識別子、設定値の内容、設定値の最終更新日時が格納される。表Ｆにユーザ設定値ＤＢ４１６の具体例を示す。
【００４２】
【表７】
0006576071.tif 000008
【００４３】
なお、表ＦにおけるユーザＩＤは、前述のユーザ情報ＤＢ４１５におけるものと同一の体系である。
【００４４】
サーバ１１０は、上述したマスターデータ４０１内の各データベースを利用して、管理対象のクライアントデバイス（ここでは複合機）の各々で異なる設定値、管理対象の複合機全てで共通の設定値、及び各設定値そのもののメタデータを一括管理することが可能である。
【００４５】
続いて、クライアントデバイスとしての複合機で管理される設定値メタ情報ＤＢについて説明する。この設定値メタ情報ＤＢは、複合機において使用する各種設定値のメタデータを格納するデータベースであり、ＨＤＤ３０５に保存される。表Ｇに、設定値メタ情報ＤＢ４１０の具体例を示す。
【００４６】
【表８】
0006576071.tif 000009
【００４７】
表Ｇの例では、サーバ１１０と通信を行う際に各設定値を識別するためのキー識別子、設定値の値、ＵＩ表示文言、初期値、値域、表示条件、同期対象の各項目のついての情報が含まれている。これらの要素はマスターデータ４０１で管理されているものと同一の体系で管理されるものである。サーバ１１０若しくは複合機１２１／１２２において設定値が変更された場合には、例えば、キー識別子、変更後の値、更新日時といった情報が、設定値情報として更新リクエストとともにサーバ１１０に送信され、サーバ１１０において設定値を同期させる処理が実行される。
【００４８】
図５は、クライアントデバイスである複合機で動作する、クライアントとしての機能を実現するためのアプリケーション（以下、クライアントアプリケーション）の構成要素を示す機能ブロック図である。このクライアントアプリケーション５００は、ＨＤＤ３０５又はＲＯＭ３０６に記憶され、ＲＡＭ３０３に展開されてＣＰＵ３０２が実行することで実現される。クライアントアプリケーション５００は、設定値管理部５１０、通信制御部５２０、電源管理部５３０、ジョブ管理部５４０とから構成される。以下、各部について説明する。
【００４９】
設定値管理部５１０は、クライアントデバイスとしての複合機における前述の設定値ＤＢ５１１を管理する。具体的には、他の複合機で共通設定値が変更された場合など、設定値の更新情報をサーバ１１０から受信した場合に、当該更新情報に係る内容を通信制御部５２０から取得して、自身の管理する設定値ＤＢ５１１に反映させる処理を行う。また、設定値管理部５１０は、設定値ＤＢ５１１内の設定値の内容が複合機において更新された場合に、サーバ１１０が管理するマスターデータ４０１への当該更新内容の反映をサーバ１１０に対して要求するよう通信制御部５２０に対して依頼する。
【００５０】
通信制御部５２０は、サーバ１１０との間で設定値を同期させるための通信処理の制御を行う。通信制御部５２０は、通信制御部５２０内の制御を行う制御部５２１、設定値の同期タイミングを管理するタイミング管理部５２２、ネットワークI/F３０７によって通信処理を行う通信処理部５２３から構成される。タイミング管理部５２２は、サーバ１１０からマスターデータ４０１の更新情報を定期的に取得するタイミングの判定を行う。また、タイミング管理部５２２は、制御部５２１からの依頼を受けて複合機の電源管理状態やジョブ実行状態をそれぞれ電源管理部５３０とジョブ管理部５４０から取得する。そして、取得した電源管理状態やジョブ実行状態から、設定値ＤＢ５１１の更新情報をサーバ１１０に対して通知するか否かの判定を行う。更新情報をサーバ１１０に対して通知するとの判定がなされた場合、通信処理部５２３に対してサーバ１１０との通信処理の実行が制御部５２１によって指示される。また、通信処理部５２３がサーバ１１０からマスターデータ４０１における設定値の更新情報を受信すると、制御部５２１は、当該更新情報で特定される変更後の値の設定値ＤＢ５１１への反映を設定値管理部５１０に対し依頼する。
【００５１】
電源管理部５３０は、複合機の電源状態を管理する。
【００５２】
ジョブ管理部５４０は、複合機に投入されたジョブの実行状態を管理する。
【００５３】
図６は、クライアントとしての複合機において設定値が新たに設定された場合に、当該設定値の情報をサーバに登録するための処理（以下、クライアント設定値サーバ登録処理）の手順を示すフローチャートである。
【００５４】
ステップ６０１において、通信制御部５２０の制御部５２１は、設定値ＤＢ５１１に格納された設定値の中から、サーバ１１０に登録を依頼する設定値の情報を設定値管理部５１０から取得する。この場合において、すでに初期接続処理が完了し、複合機がサーバ１１０の同期管理下にある環境で、例えばファームウェアのバーションアップ等により、新たな設定値の追加登録を行なう場面では、当該追加される設定値の情報が取得されることになる。例えばスリープ時間を追加登録する場合であれば、少なくともキー識別子“settings.sleep_time”とその値“3600（sec）”が設定値情報として取得される。これに対し、初期接続処理時における全設定値の登録を行なう場面では、全設定値の情報（全てのキー識別子とその値や文字列）が取得されることになる。
【００５５】
ステップ６０２において、制御部５２１は、ステップ６０１で取得した設定値情報をサーバ１１０に送信（通知）することが可能か否かの判定を、タイミング管理部５２２に指示する。この指示を受けて、タイミング管理部５２２は、設定値情報のサーバ１１０への送信が可能かどうかの判定処理（送信可否判定処理）を実行する。送信可否判定処理の詳細については後述する。
【００５６】
ステップ６０３において、制御部５２１は、送信可否判定処理の結果に応じた処理の切り分けを行なう。具体的には、判定結果が送信（通知）可能であった場合は、ステップ６０７に進む。一方、判定結果が送信（通知）不能であった場合は、ステップ６０４に進む。
【００５７】
ステップ６０４において、制御部５２１は、ステップ６０１で取得した設定値情報をＨＤＤ３０５等に記憶する。また、制御部５２１は、サーバ１１０への登録情報送信タイミングを迎えたら送信（通知）を行なうようタイミング管理部５２２に指示する。
【００５８】
ステップ６０５において、タイミング管理部５２２は、制御部５２１からの指示の時点から一定時間が経過したか否かを判定する。一定時間が経過していない間（すなわち、サーバ１１０への登録情報送信タイミングを迎えていない間）は判定を継続し、一定時間が経過すると、制御部５２１に対しその旨を送信（通知）する。
【００５９】
ステップ６０６において、制御部５２１は、ステップ６０４でＨＤＤ３０５等に記憶した設定値情報を読み出し、ステップ６０２に戻って送信可否判定処理を再度実行する。
【００６０】
ステップ６０７において、制御部５２１は、ステップ６０１で取得した（又はステップ６０６で読み出した）設定値情報の登録をサーバ１１０に対してリクエストするよう通信処理部５２３に対し指示する。当該指示を受けて通信処理部５２３は、設定値情報と共にその登録要求（＝Create要求）をサーバ１１０に送信する。
【００６１】
ステップ６０８において、制御部５２１は、ＨＤＤ３０５に記憶された設定値情報を削除して本フローを終了する。
【００６２】
以上が、クライアント設定値サーバ登録処理の内容である。
【００６３】
なお、クライアントにおいて既存の設定値の内容を変更・更新した場合に当該更新に係る内容をサーバ１１０内のマスターデータに反映させる場合の処理も、基本的には上述した登録時の処理と同様である。すなわち、上述の図６のフローにおいて取得（ステップ６０１及び６０６）、記憶（ステップ６０４）、削除（ステップ６０８）の対象となる設定値の情報を、更新された設定値の情報と読み替えればよい。そして、ステップ６０７における「設定値情報と共にその登録要求（＝Create要求）をサーバ１１０に送信する」を「設定値情報と共にその更新要求（＝Update要求）をサーバ１１０に送信する」と読み替えればよい。以下に、表Ｈ及び表Ｉを用いて、設定値の更新の一例について説明する。表Ｈは、キー識別子“settings.copy_cur_page”の設定内容を示している。仮に、このキー識別子“settings.copy_cur_page”の値が“66”から“67”に変更された場合は、表Ｉに示す内容の情報が、上述の取得・記憶・削除といった各ステップの対象となり、設定値情報として更新のリクエストとともにサーバ１１０に送信されることになる。
【００６４】
【表９】
0006576071.tif 000010
【００６５】
【表１０】
0006576071.tif 000011
【００６６】
なお、サーバで管理される設定値データに関してのクライアントから送信されるリクエストの種類としては、上述した設定値登録要求と設定値更新要求に加え、サーバ上のDBに登録されている設定値の取得を要求する設定値取得要求（Get要求）とサーバ上のDBに登録されている設定値の削除を要求する設定値削除要求（Delete要求）がある。また、設定値取得要求（Get要求）には、登録されている全ての設定値の取得を要求する全設定値取得要求（全Get要求）と前回レスポンス時以降に変更があった設定値の取得を要求する設定値差分取得要求（差分Get要求）がある。
【００６７】
図７は、前述のステップ６０２における送信可否判定処理の詳細を示すフローチャートである。
【００６８】
ステップ７０１において、タイミング管理部５２２は、電源管理部５３０から複合機の電源状態の情報を取得する。図８は、複合機の電源状態の遷移を説明する図である。まず、電源ＯＦＦの状態８０４から電源スイッチが入って電源がＯＮになると、起動処理が開始され、起動処理中８０１に遷移する。起動処理が完了すると、複合機は通常動作状態８０２に遷移する。起動処理中８０１または通常動作状態８０２において電源スイッチをＯＦＦにすると、シャットダウン処理が開始されシャットダウン処理中８０３に遷移する。そして、シャットダウン処理が完了すると電源ＯＦＦの状態８０４に遷移する。図８に示した４種類の状態のうちいずれの電源状態にあるのかが、タイミング管理部５２２からの問い合わせに応じ、その時点での電源状態の情報が電源管理部５３０からタイミング管理部５２２へと通知される。当然のことながら、電源ＯＦＦ状態８０４においては、タイミング管理部５２２及び電源管理部５３０ともに動作しないため、本ステップの処理は行われない。
【００６９】
ステップ７０２において、タイミング管理部５２２は、取得した電源状態が起動処理中もしくはシャットダウン処理中であるか否かを判定する。判定の結果、起動処理中もしくはシャットダウン処理中であった場合は、ステップ７０４に進む。一方、起動処理中でもシャットダウン処理中でもなかった場合（すなわち、通常動作状態であった場合）は、ステップ７０３に進む。
【００７０】
ステップ７０３において、タイミング管理部５２２は、ステップ６０１で取得した設定値情報をサーバ１１０に送信することが可能な状態である旨を制御部５２１に通知し、本フローを終了する。
【００７１】
ステップ７０４において、タイミング管理手段５２２は、ステップ６０１で取得した設定値情報をサーバ１１０に送信することが不可能な状態である旨を制御部５２１に通知し、本フローを終了する。
【００７２】
以上が、送信可否判定処理の内容である。
【００７３】
次に、クライアントとしての複合機から設定値情報の登録や更新等のリクエストがあった場合に、サーバ１１０側で実行される処理について説明する。
【００７４】
図９は、サーバ１１０で動作する、クライアントの同期管理を行なうサーバとしての機能を実現するためのアプリケーション（以下、サーバアプリケーション）の構成要素を示す機能ブロック図である。このサーバアプリケーション９００は、ＨＤＤ２０５又はＲＯＭ２０６に記憶され、ＲＡＭ２０４に展開されてＣＰＵ２０３が実行することで実現される。サーバアプリケーション９００は、設定値同期管理部９１０と通信制御部９２０とで構成される。以下、各部について説明する。
【００７５】
設定値同期管理部９１０は、サーバ１１０が有するマスターデータ４０１のうち、共通設定値ＤＢ４１１及び個別設定値ＤＢ４１３の同期管理を行なう。個別設定値ＤＢ４１３は、サーバ１１０との間で設定値の同期を行うクライアント（ここでは複合機）の数だけ存在する。図１で例示した印刷システムの構成においては、複合機１２１と複合機１２２とがサーバ１１０における同期管理対象となっているので、複合機１２１に対応する個別設定値ＤＢ４１３ａと複合機１２２に対応する個別設定値ＤＢ４１３ｂとが存在している。設定値同期管理部９１０が管理する共通設定値ＤＢ４１１及び個別設定値ＤＢ４１３ａ及び４１３ｂは、ＨＤＤ２０５などに保存される。設定値同期管理部９１０は、通信制御部９２０が設定値情報と共に登録や更新のリクエストを複合機１２１／１２２から受信すると、管理下にある共通設定値ＤＢ４１１及び個別設定値ＤＢ４１３ａ／４１３ｂに対し当該リクエストの内容を反映する。また、設定値同期管理部９１０は、通信制御部９２０が後述する設定値差分情報の取得要求を複合機１２１／１２２から受信した場合に、複合機１２１／１２２に対して送信する設定値差分情報を作成する。
【００７６】
通信制御部９２０は、複合機１２１／１２２との間で設定値を同期させるための通信処理の制御を行う。通信制御部９２０は、通信制御部９２０内の制御を行う制御部９２１と、通信処理を行う通信処理部９２２とから構成される。制御部９２１は、通信処理部９２２が複合機１２１／１２２から設定値情報と共に登録要求や更新要求を受信すると、設定値同期管理部９１０に対し設定値情報の登録或いは更新を指示する。また、制御部９２１は、通信処理部９２２が複合機１２１／１２２から設定値差分情報の取得要求を受信すると、設定値同期管理部９１０から当該取得要求に係る複合機の設定値差分情報を取得し、要求のあった複合機への設定値差分情報の送信を通信処理部９２２に指示する。当該指示を受けて通信処理部９２２は、取得要求のあった複合機との通信処理を実行する。
【００７７】
図１０は、サーバにおける設定値同期処理（クライアントとしての複合機との間で各種設定値を同期させる処理）の実行手順を示すフローチャートである。
【００７８】
ステップ１００１において、通信制御部９２０は、複合機からリクエストを受信したか否かを判定する。受信しない間は、リクエストを受信するまで待機する。一方、リクエストを受信していたら、ステップ１００２に進む。
【００７９】
ステップ１００２において、通信制御部９２０は、受信したリクエストの内容を解析する。ステップ１００３〜１００７では、解析結果に基づいた処理の切り分けがなされる。すなわち、受信したリクエストが「設定値登録要求（Create要求）」、「全設定値取得要求（全Get要求）」、「設定値更新要求（Update要求）」、「設定値差分取得要求（差分Get要求）」、「その他の要求」のいずれに該当するかが判定され、判定結果に応じた処理が実行される。いずれの種類の要求にも該当しない場合は、不正なリクエストとしてエラー処理を実行し（ステップ１０２３）、クライアントへのレスポンス（ステップ１０２４）に移行する。
【００８０】
ステップ１００３において、通信制御部９２０は、受信したリクエストが設定値登録要求であるかを判定する。リクエストが設定値登録要求の場合は、ステップ１００８へ進む。一方、リクエストが設定値登録要求でない場合は、ステップ１００４へ進む。
【００８１】
ステップ１００８において、通信制御部９２０は、リクエストと共に送信された設定値情報の中から注目する設定値（注目設定値）を決定し、個別設定値ＤＢ４１３への当該注目設定値の登録を設定値同期管理部９１０に指示する。
【００８２】
ステップ１００９において、設定値同期管理部９１０は、注目設定値の情報が、登録リクエストを行なった複合機に対応する個別設定値ＤＢ４１３内に存在するか否かを判定する。判定の結果、登録リクエストを行なった複合機に対応する個別設定値ＤＢ４１３内に注目設定値の情報が既に存在する場合は、当該登録要求に係る注目設定値の登録を行わないので、ステップ１０１３に進む。一方、登録リクエストを行なった複合機に対応する個別設定値ＤＢ４１３内に注目設定値の情報が存在しない場合は、ステップ１０１０に進む。
【００８３】
ステップ１０１０において、設定値同期管理部９１０は、注目設定値が共通設定値であるのか個別設定値であるのかを、設定値メタ情報ＤＢ４１０を参照して判定する。具体的には、注目設定値の同期対象が“共通可”であるのか、それとも“個別のみ”であるかを判定する。判定の結果、“共通可”である場合は、ステップ１０１１に進む。一方、“個別のみ”である場合は、ステップ１０１２へ進む。
【００８４】
ステップ１０１１では、設定値同期管理部９１０は、共通設定値ＤＢ４１１から当該注目設定値の値を取得する。
【００８５】
ステップ１０１２において、設定値同期管理部９１０は、同期対象が“個別のみ”であった場合は注目設定値の値を、同期対象が“共通可”であった場合はステップ１０１１で取得した値を、個別設定値ＤＢ４１３内にそのキー識別子と共に登録する。具体的には、前述の共通設定値ＤＢ４１１或いは個別設定値ＤＢ４１３のレコードに当該注目設定値を追加（表Ｂや表Ｃに行を追加）する。
【００８６】
ステップ１０１３において、設定値同期管理部９１０は、リクエストと共に送信された設定値情報の中に未処理の設定値があるか否かを判定する。すべての設定値について登録処理が完了した場合は、ステップ１０２４へ進む。一方、未処理の設定値が存在する場合は、ステップ１００８に戻って次の設定値を注目設定値に決定して処理を続行する。
【００８７】
以上が、リクエストが設定値登録要求であった場合の処理である。
【００８８】
一方、ステップ１００３での判定結果がNoであった場合、ステップ１００４において、設定値同期管理部９１０は、受信したリクエストが全設定値取得要求であるかを判定する。リクエストが全設定値取得要求の場合は、ステップ１０１４へ進む。一方、リクエストが全設定値取得要求でない場合は、ステップ１００５へ進む。
【００８９】
ステップ１０１４において、設定値同期管理部９１０は、リクエストを行なった複合機の個別設定値ＤＢ４１３から全設定値の情報を取得し、ステップ１０２４へ進む。以上が、リクエストが全設定値取得要求であった場合の処理である。
【００９０】
一方、ステップ１００４での判定結果がNoであった場合、ステップ１００５において、設定値同期管理部９１０は、受信したリクエストが設定値更新要求であるかを判定する。リクエストが設定値更新要求の場合は、ステップ１０１５へ進む。一方、リクエストが設定値更新要求でない場合は、ステップ１００６へ進む。
【００９１】
ステップ１０１５において、通信制御部９２０は、リクエストと共に送信された設定値情報の中から注目する設定値（注目設定値）を決定し、個別設定値ＤＢ４１３への当該注目設定値の更新を設定値同期管理部９１０に指示する。
【００９２】
ステップ１０１６において、設定値同期管理部９１０は、注目設定値の値を個別設定値ＤＢ４１３に反映させて、設定値を更新する。具体的には、前述の共通設定値ＤＢ４１１或いは個別設定値ＤＢ４１３内に既に存在する当該注目設定値のレコードの値を更新（表Ｂや表Ｃにおける行の値を更新）する。
【００９３】
ステップ１０１７において、設定値同期管理部９１０は、注目設定値が共通設定値であるのか個別設定値であるのかを、設定値メタ情報ＤＢ４１０を参照して判定する。具体的には、注目設定値の同期対象が“共通可”であるのか、それとも“個別のみ”であるかを判定する。判定の結果、“共通可”である場合は、ステップ１０１８に進む。一方、“個別のみ”である場合は、ステップ１０２０へ進む。
【００９４】
ステップ１０１８において、設定値同期管理部９１０は、共通設定値ＤＢ４１１に注目設定値の値を反映させて、設定値を更新する。さらに、ステップ１０１９へ進み、他複合機（当該更新リクエストを行なっていない複合機）の個別設定値ＤＢ４１３へも注目設定値の値を反映させて、設定値を更新する。
【００９５】
ステップ１０２０において、設定値同期管理部９１０は、リクエストと共に送信された設定値情報の中に未処理の設定値があるか否かを判定する。すべての設定値について更新処理が完了している場合は、ステップ１０２４へ進む。一方、未処理の設定値が存在する場合は、ステップ１０１５に戻って次の設定値を注目設定値に決定して処理を続行する。
【００９６】
以上が、リクエストが設定値更新要求であった場合の処理である。
【００９７】
一方、ステップ１００５での判定結果がNoであった場合、ステップ１００６において、設定値同期管理部９１０は、受信したリクエストが設定値差分取得要求であるかを判定する。リクエストが設定値差分取得要求の場合は、ステップ１０２１へ進む。一方、リクエストが設定値差分取得要求でない場合は、ステップ１００７へ進む。
【００９８】
ステップ１０２１において、設定値同期管理部９１０は、リクエストを行なった複合機の個別設定値ＤＢ４１３から、前回レスポンスした時以降に変更があった設定値の値（設定値差分）を取得し、ステップ１０２４へ進む。以上が、リクエストが設定値差分取得要求であった場合の処理である。
【００９９】
一方、ステップ１００６での判定結果がNoであった場合、ステップ１００７において、設定値同期管理部９１０は、受信したリクエストが、その他の規定の要求（例えば、Delete要求）であるかを判定する。リクエストがその他の要求である場合は、ステップ１０２２へ進み、当該その他の要求に対応する処理を実行し、ステップ１０２４へ進む。一方、リクエストがその他の規定の要求に該当しない場合は、不正なリクエストであるとしてエラー処理を行なって（ステップ１０２３）、ステップ１０２４へ進む。
【０１００】
ステップ１０２４において、通信制御部９２０は、管理下にあるクライアント（ここでは複合機）に対し、リクエストに応じた所定のレスポンスを行なう。
【０１０１】
以上が、サーバ１１０における設定値同期処理の内容である。このような処理により、複合機１２１／１２２で更新されたクライアント設定値をサーバ１１０内のデータベースに登録・反映させたり、複合機１２１／１２２がサーバ１１０から設定値を取得したりすることが可能となる。
【０１０２】
例えば、クライアントとしての複合機が設定値登録のリクエストを行なったとすれば（前述の図６のフローのステップ６０７を参照）、当該リクエストを受信したサーバでは、上述のステップ１００８以降の処理を実行することになる。また、クライアントとしての複合機が設定値更新のリクエストを行なったとすれば、当該リクエストを受信したサーバでは、上述のステップ１０１５以降の処理を実行することになる。さらに、クライアントとしての複合機が全設定値取得や設定値差分取得のリクエストを行なった場合は、上述のステップ１０２４でレスポンスされた設定値情報を受信したクライアントにおいて、設定値管理部５１０によってその内容が設定値ＤＢ５１１に反映されることになる。
【０１０３】
ここで、クライアントが初期接続処理を行う場面においては、まずクライアントからサーバへ設定値登録要求が送信され、続いて、クライアントからサーバへ全設定値取得要求が送信されることになる。この初期接続処理時に生じる本願における課題について、改めて詳しく説明する。
【０１０４】
サーバ機能を搭載した、サーバの役割を兼任するクライアントデバイス（以下、「兼任デバイス」と呼ぶ。）にて、ユーザがクライアント設定値であるＩＰアドレス（クライアントＩＰアドレス）を、例えば「アドレスＡ」から「アドレスＢ」へ変更したとする。すると、サーバとクライアントとが物理的に同一の装置であるため、サーバ設定値であるＩＰアドレスも「アドレスＢ」へと変更になる。その結果、この兼任デバイスと同期していた各クライアント（兼任デバイスの同期管理下にある全てのクライアント。クライアントとしての兼任デバイス自身を含む）において、例えば設定値更新のリクエストを兼任デバイスに送信しようとしても、接続先サーバアドレスは「アドレスＡ」のままであるため、当該更新リクエストが兼任デバイスへ到達せず、兼任デバイスとの同期ができなくなってしまう。このように兼任デバイスへの接続に失敗した場合、各クライアントを使用するユーザは、接続先サーバアドレスの値を上記変更後のアドレス（アドレスＢ）へと変更（再設定）した上で、兼任デバイスへの再接続を試みることになる。この段階では、再設定された接続先サーバアドレス（アドレスＢ）への初めての接続となるため、初期接続処理が必要となる。前述の通り、初期接続処理においては、最初に、兼任サーバに対して全設定値登録のリクエストを行なう。このとき登録リクエストと共に送信される全設定値情報には接続先サーバアドレスの情報も含まれ、この段階でその内容は再設定後の「アドレスＢ」となっている。この全設定値登録のリクエストを受信した兼任デバイスでは、要求された全設定値について登録済みであるとの判定（すべての注目設定値についてのステップ１００９の判定でYes）がなされ、当該全設定値登録のリクエストに基づく登録処理は行なわれない。つまり、初期接続処理を行なったクライアントに対応する個別設定値ＤＢ４１３の内容は変更されないまま、全設定値登録リクエストに対する処理が正常に終了した旨のレスポンス（ステップ１０２４）がなされることになる。その結果、当該初期接続処理を行なったクライアントに対応する個別設定値ＤＢ４１３内の接続先サーバアドレスの値は「アドレスＡ」のまま、初期接続処理が正常に終了することとなる。続いて、クライアントは、初期接続処理において、兼任デバイスへ全設定値取得のリクエストを送信し、当該取得リクエストを受信した兼任デバイスでは、全設定値取得の要求を行なったクライアントの個別設定値ＤＢ４１３内の全設定値の情報を取得し、レスポンス（ステップ１０２４）を行なう。この時、レスポンスされた設定値情報の中に存在する接続先サーバアドレスの内容は「アドレスＡ」である。
【０１０５】
このように、兼任デバイスにおけるＩＰアドレスの変更に伴って、ユーザがクライアント上で接続先サーバアドレスを変更したとしても、その登録リクエストが兼任デバイスにおいて受け付けられず、再び変更前の状態へと戻ってしまうという問題が発生する。
【０１０６】
以下では、本実施例に係る、上述した課題を解決する手法について詳しく説明する。
【０１０７】
図１１は、本実施例の手法における、サーバとクライアントを兼任する情報処理装置（ここでは複合機）で管理されるマスターデータの構成例を表すブロック図であり、前述の図４に対応する。図１１に示すマスターデータ１１００は、図４で示した構成（設定値メタ情報ＤＢ４１０、共通設定値ＤＢ４１１、登録クライアント管理ＤＢ４１２、個別設定値ＤＢ４１３、クライアント構成情報ＤＢ４１４、ユーザ情報ＤＢ４１５及びユーザ設定値ＤＢ４１６）に加え、共有設定値ＤＢ４１７を有している。表Ｊは、共有設定値ＤＢ内に格納される設定値情報の一例であり、ここではＩＰアドレスが示されている。すなわち、当該ＩＰアドレスは、クライアント設定値としてのＩＰアドレスであり、同時にサーバ設定値としてのＩＰアドレスでもある。
【０１０８】
【表１１】
0006576071.tif 000012
【０１０９】
なお、本実施例では、共有設定値の情報を上述のようなデータベースとして保存・管理する構成としているがこのような構成に限定されるものではない。例えばファイルデータなど、参照可能な態様で保存・管理されていればよい。
【０１１０】
図１２は、本実施例に係る、サーバとクライアントの機能を併有する情報処理装置上で動作する、クライアントの同期管理を行なうサーバとしての機能を実現するためのサーバアプリケーションの構成要素を示す機能ブロック図であり、前述の図９に対応する。このサーバアプリケーション１２００は、前述のサーバアプリケーション９００と同様、ＨＤＤ２０５又はＲＯＭ２０６に記憶され、ＲＡＭ２０４に展開されてＣＰＵ２０３が実行することで実現される。図１２に示すサーバアプリケーション１２００は、設定値同期管理部１２１０と通信制御部１２２０とで構成され、その基本的な構成は、前述のサーバアプリケーション９００と同じである。設定値同期管理部１２１０によって管理されるデータベースとして、上述の共有設定値ＤＢ４１７が追加されている点で、図９に示すサーバアプリケーション９００とは異なっている。
【０１１１】
ネットワーク上の特定のクライアントがサーバ機能を併有する構成においては、クライアントとサーバとが同一装置上に存在する。すなわち、図５で示すクライアントアプリケーション５００と、図１２で示すサーバアプリケーション１２００とが１つの装置上にインストールされる。そのため、クライアントアプリケーション５００上の設定値管理部５１０と、サーバアプリケーション１２００上の設定値同期管理部１２１０とは、直接にデータのやり取りが可能である。
【０１１２】
本実施例では上記課題を解決するための手法として、サーバを兼任するクライアントデバイス（兼任デバイス）において、共有設定値ＤＢ内４１７に格納されている設定値が変更されると、当該変更された設定値に同期管理を行なう上で関連する設定値を同時に変更することとしている。例えば、前述の表Ｊで示されるＩＰアドレス（キー識別子“setting.ip_address”）の値が変更された場合、個別設定値ＤＢ４１３内に格納されている接続先サーバアドレス（キー識別子“settings.serer_address”）の値が、変更後のＩＰアドレスと同一の値に変更されることになる。
【０１１３】
図１３は、兼任デバイスで共有設定値が変更された際に、サーバ管理下の各クライアントにおける関連する設定値を併せて変更する処理のフローチャートである。この処理は、上述のサーバアプリケーション１２００によって実行され、前述の図１０のフローで示した設定値同期処理とは別個独立の処理として実行される。
【０１１４】
ステップ１３０１は、共有設定値に対する変更の有無を監視するステップである。共有設定値ＤＢ４１７内に格納されている設定値に対する変更がなされたことの検知は、例えば以下のようにしてなされる。
【０１１５】
最初に、兼任デバイスの起動時に、共有設定値ＤＢ４１７内に格納されているキー識別子と同じキー識別子について値の変更があった場合は自己に通知するよう、設定値同期管理部１２１０が設定値管理部５１０に依頼しておく。これにより、クライアントアプリケーション５００の設定値管理部５１０は、自己の管理下にある設定値ＤＢ５１１内の該当キー識別子に変更があると、サーバアプリケーション１２００の設定値同期管理部１２１０に対し、依頼のあったキー識別子に対する値の変更が発生したことを変更後の値（例えば変更後のＩＰアドレス値）と共に通知する。このような方式をコールバック方式と呼ぶ。このような方法によって共有設定値の変更が検知された場合、ステップ１３０２へ進む。
【０１１６】
ステップ１３０２において、設定値同期管理部１２１０は、自己の管理下にある各データベース（共通設定値ＤＢ４１１、個別設定値ＤＢ４１３及び共有設定値ＤＢ４１７）内に格納されている、上記共有設定値に同期管理の上で関連する設定値を、ステップ１３０１で受信した変更後の値に変更する。これにより、例えば自デバイスのＩＰアドレスが変更された場合、全クライアントの個別設定値ＤＢ４１３内の接続先サーバアドレスの値を、変更後のＩＰアドレスの値に変更することができる。
【０１１７】
以上が、サーバ機能を併有するクライアントデバイスで共有設定値が変更された際に、同期管理に関連する各クライアントの設定値を併せて変更する処理の内容である。
【０１１８】
上述の例では、いわゆるコールバック方式で共有設定値の変更の有無を検知し、その通知を受けて、当該変更された設定値の関連設定値を変更する態様について説明したが、本実施例はこのような方法に限定されない。以下に、上記とは異なる方法で共有設定値の変更の有無を検知し、その関連設定値を適宜変更する態様について説明する。
【０１１９】
まず、設定値同期管理部１２１０が、共有設定値ＤＢ４１７内の特定のキー識別子（例えばＩＰアドレスのキー識別子“setting.ip_address”）の値を渡すよう、特定のタイミング（例えば、サーバ起動時や定期ポーリングなど）で設定値管理部５１０に依頼する。依頼を受けた設定値管理部５１０は、自己の管理下にある設定値ＤＢ５１１内の該当キー識別子の値を、設定値同期管理部１２１０に返す。キー識別子の値を受け取った設定値同期管理部１２１０は、当該キー識別子について、共有設定値ＤＢ４１７内の値と受け取った値とを比較し、両者に違いがあれば、関連キー識別子（この場合“settings.serer_address”）の値を受け取った値に変更する。そして、共有設定値ＤＢ４１７内の該当キー識別子（ここでは“setting.ip_address”）の値も当該受け取った値に変更する。このような方法によっても、共有設定値に対してなされた変更を検知して、同期管理に関連する各クライアントの設定値を適宜変更することができる。
【０１２０】
このような処理により、サーバ機能を併有するクライアントである兼任デバイスにおいて、例えば自デバイスのＩＰアドレスの値が変更された時に、同期管理の対象となる全クライアントの接続先サーバアドレスの値を同時に変更することができる。その結果、クライアント側でユーザが接続先サーバアドレスの値を再設定した際に行う初期接続処理において、再設定後の接続先サーバアドレスの値が再設定前の接続先サーバアドレスの値に戻されることがない。つまり、兼任デバイスにおけるＩＰアドレスの変更時に、同期管理の対象である各クライアントがサーバへ接続できなくなるという問題が発生しない。
【０１２１】
共有設定値変更の例として、ＩＰアドレスの値が変更された場合について説明したが、例えば「ホスト名」が変更された場合は、ＩＰアドレスが変更された場合と同様、関連する設定値として接続先サーバアドレスが変更されることになる。ホスト名もＩＰアドレスと同様、ネットワーク上の兼任デバイスを識別・特定するためのものであり、同じ役割を果たすためである。
【０１２２】
上述した処理によって、兼任デバイスにおける共有設定値の変更に伴って、兼任サーバの管理下にあるデータベース上の各クライアントの設定値が変更されると、以下のようにして、その内容が各クライアント内の設定値ＤＢ５１１に反映される。以下、簡単に説明する。
【０１２３】
まず、各クライアントデバイスにおけるクライアントアプリケーション５００の通信制御部５２０が、タイミング管理部５２２によって管理される所定のタイミングで、設定値差分情報の取得リクエストを兼任デバイスに対して送信する。この際、兼任デバイスにおいて当該取得リクエストに係る設定値の差分を特定するために必要な情報として、前回設定値差分情報の取得リクエストを行なった時刻の情報が、今回の設定値差分情報取得リクエストに含まれることになる。そして、当該取得リクエストに対するレスポンスとして兼任デバイスから送信された設定値差分情報を受信すると、通信制御部５２０は、設定値管理部５１０を介して受信した設定値差分情報に基づく更新の内容を、設定値ＤＢ５１１内の設定値に反映させる。
【０１２４】
このようにして、兼任デバイスにおける共有設定値ＤＢ４１７内の値の変更に伴って更新された個別設定値ＤＢ４１３の内容が、各クライアントで使用する設定値に反映される。
【０１２５】
［実施例２］
次に、本願の課題を解決する手法として、ＩＰアドレスやホスト名など操作部に表示されるＵＩ画面上で共有設定値が変更される場合の態様について実施例２として説明する。本実施例においても、サーバとクライアントの両方の機能を有する情報処理装置において共有設定値が変更されることをその前提としている。なお、実施例１と共通する部分については説明を省略ないしは簡略化し、以下では差異点を中心に説明するものとする。
【０１２６】
図１４は、本実施例に係る、クライアントしての複合機上で設定値（クライアント設定値）が変更された際の、クライアントアプリケーションにおける処理の流れを示すフローチャートである。また、図１５は、ユーザがＩＰアドレスを変更する際に使用するユーザインタフェース画面（ＵＩ画面）の一例を示す図である。以下、図１４及び図１５を参照して説明する。
【０１２７】
図１５に示すＵＩ画面１５００内のＩＰアドレス入力欄１５０１に新たな値が入力されるなどして、設定値が変更されると、ステップ１４０１において、設定値管理部５１０は、自デバイスにサーバ機能（それを実現するためのサーバアプリケーション）が搭載されているか否かを判定する。この判定は、例えば以下の１）〜３）のような方法でなされる。
【０１２８】
１）「接続先サーバアドレス」の値と自デバイスの「ＩＰアドレス」の値とをチェックし、両者が同じ値であれば、自デバイスにサーバ機能が搭載されていると判定。
【０１２９】
２）「接続先サーバアドレス」の値が、いわゆるループバックアドレス（ネットワーク上で自分自身を示す仮想的なＩＰアドレス）の値である場合、自デバイスにサーバ機能が搭載されていると判定。
【０１３０】
３）自デバイスにサーバアプリケーション起動時に生成するファイルが存在する場合、自デバイスにサーバ機能が搭載されていると判定。
【０１３１】
上述したような方法によって自デバイスにサーバ機能が搭載されていないと判定された場合（自デバイスが兼任デバイスでない場合）は、ステップ１４０２へ進む。一方、自デバイスにサーバ機能が搭載されていると判定された場合（自デバイスが兼任デバイスである場合）は、ステップ１４０４へ進む。
【０１３２】
ステップ１４０２において、設定値管理部５１０は、変更された設定値が自デバイスの操作部に表示されたＵＩ画面（図１５に示したようなＵＩ画面）上の設定値か否かを判定する。変更された設定値がＵＩ画面上の設定値である場合は、ステップ１４０３へ進む。一方、変更された設定値がＵＩ画面上の設定値でない場合は、本処理を終了する。
【０１３３】
ステップ１４０３において、設定値管理部５１０は、ＵＩ画面上で変更された設定値を実設定値へと反映させる。例えば、ユーザが、上述のＵＩ画面１５００上のＩＰアドレス入力欄の値を“172.24.147.51”から“172.24.9.110”へと変更していた場合、実際にデバイスが使用する実ＩＰアドレス（設定値ＤＢ５１１内に登録されているＩＰアドレス）を、変更後の値“172.24.9.110”に更新する。
【０１３４】
一方、自デバイスにサーバ機能が搭載されていると判定された場合のステップ１４０４において、設定値管理部５１０は、変更された設定値が、前述の「共有設定値」であるか否かを判定する。共有設定値か否かの判定は、例えばデバイスの起動時にサーバアプリケーション１２００によって共有設定値の情報を自デバイスへ登録してもよいし、自デバイス内のＨＤＤ３０５等で予め共有設定値の情報を保持しておいても良い。変更された設定値が共有設定値である場合は、ステップ１４０５へと進む。一方、変更された設定値が共有設定値でない場合は、ステップ１４０６へ進む。
【０１３５】
ステップ１４０５において、設定値管理部５１０は、自デバイス内で動作中のサーバアプリケーション１２００の設定値同期管理部１２１０に対し、共有設定値が変更された旨を通知する。
【０１３６】
ステップ１４０６において、設定値管理部５１０は、上述のステップ１４０３と同様、変更された設定値が、自デバイスの操作部に表示されたＵＩ画面上の設定値か否かを判定する。変更された設定値がＵＩ画面上の設定値である場合は、ステップ１４０７へ進む。変更された設定値がＵＩ画面上の設定値でない場合は、本処理を終了する。
【０１３７】
ステップ１４０７において、設定値管理部５１０は、変更された設定値が、自デバイスの操作部に表示されたＵＩ画面上のＩＰアドレス値（ここでは、ＵＩ画面１５００のＩＰアドレス入力欄１５０１の値）であるか否かを判定する。変更された設定値がＵＩ画面上のＩＰアドレス値である場合は、実設定値を変更することなく、本処理を終了する。このように、兼任デバイスのＵＩ画面においてＩＰアドレスが変更された段階では実設定値を変更しないことにより、当該兼任デバイスに同期している他のクライアント（複合機）は、兼任デバイスのＵＩ画面上でユーザがＩＰアドレスを変更後も、当該兼任デバイスに同期することが可能となる。一方、変更されたデバイス設定値がＵＩ画面上のＩＰアドレス値でない場合は、ステップ１４０８へ進む。なお、ここではＩＰアドレスとしているが、同様の役割を果たすホスト名であってもよい。
【０１３８】
ステップ１４０８において、設定値管理部５１０は、自デバイスの操作部に表示されたＵＩ画面上で変更された設定値を、実設定値へと反映する。すなわち、上述のステップ１４０３と同様、設定値ＤＢ５１１内に登録されている設定値を、当該変更後の値へと変更する。
【０１３９】
以上が、本実施例に係る、クライアント（複合機）上で設定値が変更された際の、クライアントアプリケーションにおける処理の内容である。なお、本実施例では、兼任デバイス以外の複合機にて変更された設定値がＵＩ画面上の設定値ではなかった場合に当該変更後の設定値を実設定値へ即時反映しているが、ユーザによって別途「設定反映ボタン（不図示）」が押下された時や、デバイスを再起動したタイミングで実設定値へ反映するようにしてもよい。
【０１４０】
続いて、図１４で示したクライアントアプリケーションにおけるフローにおいて、兼任デバイスでＩＰアドレスの変更が検知された際の、当該兼任デバイス上で動作するサーバアプリケーション１２００における処理について、図１６のフローチャートを参照しつつ説明する。このサーバアプリケーション１２００における処理フローは、図１０のフローとは独立に実行される。
【０１４１】
ステップ１６０１において、設定値同期管理部１２１０は、共有設定値が変更された旨の通知を受け取ったか否かを判定する。この通知は、前述の図１４のフローのステップ１４０５における変更通知である。変更の通知がない間は、通知があるまで待機する。共有設定値が変更された旨の通知があった場合、ステップ１６０２へ進む。
【０１４２】
ステップ１６０２において、設定値同期管理部１２１０は、自己の管理下にある各データベース内に格納されている、上記変更された共有設定値に関連する設定値（関連設定値）の変更を行う。本ステップは、前述の図１３のフローにおけるステップ１３０２と同様の処理である。本実施例では、自デバイスにおけるＵＩ画面上のＩＰアドレスの値が変更された場合、全クライアントの個別設定値ＤＢ４１３上にある接続先サーバアドレスの値が、当該ＵＩ画面上の新たなＩＰアドレスの値に変更されることになる。
【０１４３】
ステップ１６０３において、設定値同期管理部１２１０は、変更された共有設定値が自デバイスの操作部に表示されたＵＩ画面上のＩＰアドレスの値か否かを判定する。変更された共有設定値がＵＩ画面上のＩＰアドレスの値でない場合は、本フローを終了する。変更された共有設定値が自デバイスの操作部に表示されたＵＩ画面上のＩＰアドレスの値である場合、ステップ１６０４へ進む。
【０１４４】
ステップ１６０４において、通信制御部１２２０は、関連設定値の変更後、同期している全てのクライアントから、設定値取得のリクエストがあったか否かを判定する。具体的には、前述の「全設定値取得要求」または「設定値差分取得要求」のいずれかのリクエストがあれば、設定値取得のリクエストがあったと判定される。そして、設定値取得のリクエストがあると、ステップ１６０２で変更された「各クライアントの個別設定値ＤＢ４１３上にある接続先サーバアドレス」の値が取得され、各クライアントにレスポンスされる。そして、レスポンスを受けた各クライアントは、変更後の接続先サーバアドレスの値を取得して自己の設定値ＤＢ５１１の値を変更し、その後は当該変更後の接続先サーバアドレスに対して同期処理時のリクエストを行なうことになる。この時点では、兼任デバイスにおいて実ＩＰアドレスが未変更であるため、各クライアントは変更後の接続先サーバアドレスで特定されるサーバが見つからず、接続エラーとなり、リクエストをリトライし続けることになる。
【０１４５】
ステップ１６０５において、設定値同期管理部１２１０は、自デバイスの設定値ＤＢ５１１内に登録されている実ＩＰアドレスの値を、自デバイスの操作部に表示されたＵＩ画面上のＩＰアドレスの値へと変更するようクライアントアプリケーション５００の設定値管理部５１０に依頼する。この依頼を受けた設定値管理部５１０によって、設定値ＤＢ５１１内の実ＩＰアドレスの値が変更される。そして、本ステップで兼任デバイスの実ＩＰアドレスが新たなＩＰアドレスに変更されたタイミングで、各クライアントの接続エラーが解消されることになる。
【０１４６】
以上が、兼任デバイスでＩＰアドレスの変更が検知された際の、当該兼任デバイス上で動作するサーバアプリケーション１２００における処理の内容である。
【０１４７】
以上のとおり、本実施例によれば、兼任デバイスにおいてユーザがＵＩ画面を介して自デバイスのＩＰアドレスを変更した際に、全クライアントの接続先サーバアドレスも併せて当該変更後のＩＰアドレスへと変更される。そして、当該変更後の接続先サーバアドレスの情報が全クライアントへと反映されるので、サーバとクライアント間の同期が維持される。
【０１４８】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006576071.tif 000013
【図２】
0006576071.tif 000014
【図３】
0006576071.tif 000015
【図４】
0006576071.tif 000016
【図５】
0006576071.tif 000017
【図６】
0006576071.tif 000018
【図７】
0006576071.tif 000019
【図８】
0006576071.tif 000020
【図９】
0006576071.tif 000021
【図１０】
0006576071.tif 000022
【図１１】
0006576071.tif 000023
【図１２】
0006576071.tif 000024
【図１３】
0006576071.tif 000025
【図１４】
0006576071.tif 000026
【図１５】
0006576071.tif 000027
【図１６】
0006576071.tif 000028