(57)【特許請求の範囲】
【請求項１】
サーバと複数の情報処理装置とを有する情報処理システムであって、
前記サーバは、
前記複数の情報処理装置のメニュー画面に表示されるボタンに関連する情報を含む設定情報を記憶する記憶手段を有し、
前記複数の情報処理装置のそれぞれは、
当該情報処理装置のメニュー画面に表示されるボタンに関連する情報を登録する登録手段と、
前記登録手段により登録された前記情報を含む、同期の対象である設定情報を格納する格納手段と、
前記サーバとの間で、前記格納手段に格納された前記設定情報と前記記憶手段に記憶された前記設定情報との同期を行う同期制御手段と、
前記同期制御手段による同期がなされない状態で、同期対象である設定情報に含まれる情報に対応する機能と前記ボタンの表示との間に不整合があれば、前記メニュー画面の前記ボタンの表示を削除し、前記同期制御手段による同期がなされる状態で、前記同期対象である設定情報に含まれる情報に対応する機能と前記ボタンの表示との間に不整合があれば、前記格納手段に格納されている前記同期対象である前記ボタンに関する関連する前記情報を削除しないように制御する制御手段と、
を有することを特徴とする情報処理システム。
【請求項２】
前記制御手段は、前記同期制御手段による同期がなされる状態で、前記同期対象である設定情報に含まれる情報に対応する機能と前記ボタンの表示との間に不整合があれば、前記格納手段に格納されている前記同期対象である前記ボタンに関する関連する情報を削除することなく、前記メニュー画面の前記ボタンの表示を変更するように制御することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記制御手段は、前記同期制御手段による同期がなされる状態で、前記同期対象である設定情報に含まれる情報に対応する機能と前記ボタンの表示との間に不整合があれば、前記格納手段に格納されている前記同期対象である前記ボタンに関する関連する情報を削除することなく、前記メニュー画面の前記ボタンを表示しないように制御することを特徴とする請求項１に記載の情報処理システム。
【請求項４】
前記メニュー画面に表示されるボタンに対応する機能を実行するアプリケーションがアンインストールされた、又は、前記アプリケーションが停止された、又は、前記アプリケーションのライセンスが無効になった場合に、前記同期制御手段による同期がなされない設定であれば、前記格納手段により格納された同期の対象である前記ボタンに関連する情報の削除、及び、前記制御手段による前記ボタンの表示の削除が行われることを特徴とする請求項１に記載の情報処理システム。
【請求項５】
前記メニュー画面に表示されるボタンに対応する機能を実行するアプリケーションがアンインストールされた、又は、前記アプリケーションが停止された、又は、前記アプリケーションのライセンスが無効になった場合に、前記ボタンの表示を削除するかどうかをユーザに確認するための確認画面を表示する表示制御手段を更に有し、
前記確認画面で前記ボタンの表示を削除するための入力を受け付けた場合に、前記同期制御手段による同期がなされる設定であっても、前記制御手段による前記ボタンの表示の削除が行われることを特徴とする請求項１又は４に記載の情報処理システム。
【請求項６】
前記制御手段は、前記情報処理装置のシャットダウンのときに前記制御を実行することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理システム。
【請求項７】
前記設定情報は、更に、少なくとも前記メニュー画面に登録したアプリケーションと背景画像の識別情報、及び前記アプリケーションのアイコンに表示する名称を含むことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理システム。
【請求項８】
前記メニュー画面に表示されるボタンに対応する機能を実行するアプリケーションがアンインストールされた、又は、前記アプリケーションが停止された、又は、前記アプリケーションのライセンスが無効になった場合に、前記同期制御手段による同期がなされる設定であれば、前記メニュー画面において、前記ボタンに対する操作ができないことを示す表示に変更されることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理システム。
【請求項９】
サーバと通信する情報処理装置であって、
メニュー画面を表示する表示手段と、
前記メニュー画面に表示されるボタンに関連する情報を登録する登録手段と、
前記登録手段により登録された前記情報を含む、同期の対象である設定情報を格納する格納手段と、
前記サーバとの間で、前記格納手段に格納された前記設定情報と前記サーバに記憶されている設定情報との同期を行う同期制御手段と、
前記同期制御手段による同期がなされない状態で、同期対象である設定情報に含まれる情報に対応する機能と前記ボタンの表示との間に不整合があれば、前記メニュー画面の前記ボタンの表示を削除し、前記同期制御手段による同期がなされる状態で、前記同期対象である設定情報に含まれる情報に対応する機能と前記ボタンの表示との間に不整合があれば、前記格納手段に格納されている前記同期対象である前記ボタンに関する関連する情報を削除しないように制御する制御手段と、
を有することを特徴とする情報処理装置。
【請求項１０】
前記制御手段は、前記同期制御手段による同期がなされる状態で、前記同期対象である設定情報に含まれる情報に対応する機能と前記ボタンの表示との間に不整合があれば、前記格納手段に格納されている前記同期対象である前記ボタンに関する関連する情報を削除することなく、前記メニュー画面の前記ボタンの表示を変更するように制御することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記制御手段は、前記同期制御手段による同期がなされる状態で、前記同期対象である設定情報に含まれる情報に対応する機能と前記ボタンの表示との間に不整合があれば、前記格納手段に格納されている前記同期対象である前記ボタンに関する関連する情報を削除することなく、前記メニュー画面の前記ボタンの表示を変更するように制御することを特徴とする請求項９に記載の情報処理装置。
【請求項１２】
前記メニュー画面に表示されるボタンに対応する機能を実行するアプリケーションがアンインストールされた、又は、前記アプリケーションが停止された、又は、前記アプリケーションのライセンスが無効になった場合に、前記同期制御手段による同期がなされない設定であれば、前記格納手段により格納された同期の対象である前記ボタンに関連する情報の削除、及び、前記制御手段による前記ボタンの表示の削除が行われることを特徴とする請求項９に記載の情報処理装置。
【請求項１３】
前記メニュー画面に表示されるボタンに対応する機能を実行するアプリケーションがアンインストールされた、又は、前記アプリケーションが停止された、又は、前記アプリケーションのライセンスが無効になった場合に、前記ボタンの表示を削除するかどうかをユーザに確認するための確認画面を表示する表示制御手段を更に有し、
前記確認画面で前記ボタンの表示を削除するための入力を受け付けた場合に、前記同期制御手段による同期がなされる設定であっても、前記制御手段による前記ボタンの表示の削除が行われることを特徴とする請求項９又は１２に記載の情報処理装置。
【請求項１４】
前記制御手段は、前記情報処理装置のシャットダウンのときに前記制御を実行することを特徴とする請求項９乃至１３のいずれか１項に記載の情報処理装置。
【請求項１５】
前記設定情報は、更に、少なくとも前記メニュー画面に登録したアプリケーションと背景画像の識別情報、及び前記アプリケーションのアイコンに表示する名称を含むことを特徴とする請求項９乃至１４のいずれか１項に記載の情報処理装置。
【請求項１６】
前記メニュー画面に表示されるボタンに対応する機能を実行するアプリケーションがアンインストールされた、又は、前記アプリケーションが停止された、又は、前記アプリケーションのライセンスが無効になった場合に、前記同期制御手段による同期がなされる設定であれば、に前記メニュー画面において、前記ボタンに対する操作ができないことを示す表示に変更されることを特徴とする請求項９乃至１５のいずれか１項に記載の情報処理装置。
【請求項１７】
サーバと通信する情報処理装置を制御する制御方法であって、
メニュー画面を表示する表示工程と、
前記メニュー画面に表示されるボタンに関連する情報を登録する登録工程と、
前記登録工程で登録された前記情報を含む、同期の対象である設定情報を格納する格納工程と、
前記サーバとの間で、前記格納された前記設定情報と、前記サーバに記憶されている設定情報の同期を行う同期制御工程と、
前記同期制御工程で同期がなされない状態で、同期対象である設定情報に含まれる情報に対応する機能と前記ボタンの表示との間に不整合があれば、前記メニュー画面の前記ボタンの表示を削除し、前記同期制御工程で同期がなされる状態で、前記同期対象である設定情報に含まれる情報に対応する機能と前記ボタンの表示との間に不整合があれば、前記格納された前記同期対象である前記ボタンに関する関連する情報を削除しないように制御する制御工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項１８】
前記制御工程は、前記同期制御工程による同期がなされる状態で、前記同期対象である設定情報に含まれる情報に対応する機能と前記ボタンの表示との間に不整合があれば、前記格納された前記同期対象である前記ボタンに関する関連する情報を削除することなく、前記メニュー画面の前記ボタンの表示を変更するように制御する請求項１７に記載の情報処理装置の制御方法。
【請求項１９】
前記制御工程は、前記同期制御工程による同期がなされる状態で、前記同期対象である設定情報に含まれる情報に対応する機能と前記ボタンの表示との間に不整合があれば、前記格納された前記同期対象である前記ボタンに関する関連する情報を削除することなく、前記メニュー画面の前記ボタンの表示を変更するように制御する請求項１７に記載の情報処理装置の制御方法。
【請求項２０】
コンピュータを、請求項９乃至１６のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、及びその制御方法とプログラムに関する。
【背景技術】
【０００２】
近年、画像形成装置は様々な機能を備え、その装置に対してユーザが行う操作も複雑化している。一般的に画像形成装置は複数のユーザで共有されることが多いため、各々のユースケースに応じて、その設定をカスタマイズできる仕組みがある。例えば、画像形成装置のメニュー画面に、レイアウト設定を「２ｉｎ１」、仕上げを「両面」であることを示す「２ｉｎ１で両面」の設定が記憶されたボタンを登録したものがある。そして、そのメニュー画面でユーザがそのボタンを押下するとコピー機能の画面に遷移して「２ｉｎ１」で「両面」を自動的に設定できる。これにより、ユーザによる印刷設定の手間をなくすことができる。
【０００３】
一方で、そのようなメニューボタンに結びついた機能（アプリケーション）が無効化或いはアンインストールされた場合に、その機能に関連付けられたボタンを削除或いは無効化することができるものがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２２９０３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した従来の方法では、例えばオフィス等で画像形成装置を複数台設置している環境で、メニューのボタンを画像形成装置間で同期している場合がある。このような場合、ある画像形成装置で、そのボタンに関連付けられた機能が無効化或いはアンインストールされると、それに紐づけられた他の画像形成装置のメニューボタンも削除される。このため、例えば他の画像形成装置では、その機能がインストールされた状態で有効である場合でも、その画像形成装置ではそのボタンが利用できなくなる。このため、その画像形成装置のユーザは、その画像形成装置上で、再度、ボタンを登録し直す必要があり、そのような操作はユーザにとって使い勝手の悪いものであった。
【０００６】
本発明の目的は、上記従来技術の問題点を解決することにある。
【０００７】
本発明の特徴は、複数の装置間で同期機能が有効で、ある装置で、あるボタンに対応する機能が無効になった場合でも、他の装置でその機能に対応するボタンを利用できる技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の一態様に係る情報処理システムは以下のような構成を備える。即ち、
サーバと複数の情報処理装置とを有する情報処理システムであって、
前記サーバは、
前記複数の情報処理装置のメニュー画面に表示されるボタンに関連する情報を含む設定情報を記憶する記憶手段を有し、
前記複数の情報処理装置のそれぞれは、
当該情報処理装置のメニュー画面に表示されるボタンに関連する情報を登録する登録手段と、
前記登録手段により登録された前記情報を含む、同期の対象である設定情報を格納する格納手段と、
前記サーバとの間で、前記格納手段に格納された前記設定情報と前記記憶手段に記憶された前記設定情報との同期を行う同期制御手段と、
前記同期制御手段による同期がなされない状態で、同期対象である設定情報に含まれる情報に対応する機能と前記ボタンの表示との間に不整合があれば、前記メニュー画面の前記ボタンの表示を削除し、前記同期制御手段による同期がなされる状態で、前記同期対象である設定情報に含まれる情報に対応する機能と前記ボタンの表示との間に不整合があれば、前記格納手段に格納されている前記同期対象である前記ボタンに関する関連する前記情報を削除しないように制御する制御手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ボタンの同期機能が有効になっている場合、機能が無効化されても、それに紐づいたボタンを削除しないことによって、他の情報処理装置でも継続してボタンを利用できるという効果がある。
【００１０】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。尚、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１１】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施の形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態１に係る多機能処理装置（ＭＦＰ）のハードウェア構成の一例を示す図。
【図２】実施形態１に係るＭＦＰのソフトウエア構成を説明するブロック図。
【図３】実施形態１に係るＭＦＰを含む情報処理システムの構成例を示す図。
【図４】、
【図５】実施形態１に係るＭＦＰのカスタムメニュー制御部によって提供されるカスタムメニュー画面の一例を示す図。
【図６】実施形態１に係るＭＦＰのカスタムメニュー制御部のソフトウエア構成を説明するブロック図。
【図７】実施形態１に係るＭＦＰの設定同期ＤＢに登録されているカスタムメニュー制御部が扱うデータ構造を説明する図。
【図８】実施形態１に係るＭＦＰの起動時における機能登録の手順を示すシーケンス図。
【図９】実施形態１に係るＭＦＰのカスタムメニュー制御部による機能の登録処理を説明するフローチャート。
【図１０】実施形態１に係るＭＦＰの画面生成部によるカスタムメニュー画面の生成処理を示すフローチャート。
【図１１】実施形態１に係るＭＦＰのボタンクリア部による不整合なボタンに対する処理を説明するフローチャート。
【図１２】実施形態１に係るＭＦＰの機能（アプリケーション）が無効化或いはアンインストールされた場合の手順を示すシーケンス図。
【図１３】実施形態１に係る情報処理システムにおけるＭＦＰと設定サーバとの間で実行される設定値の同期処理を説明するシーケンス図。
【図１４】本発明の実施形態２に係るＭＦＰの機能（アプリケーション）が無効化或いはアンインストールされた場合の手順を示すシーケンス図。
【図１５】本発明の実施形態３に係るＭＦＰの機能（アプリケーション）が無効化或いはアンインストールされた場合の手順を示すシーケンス図。
【図１６】、
【図１７】実施形態４に係るＭＦＰのカスタムメニュー制御部によって提供されるカスタムメニュー画面の一例を示す図。
【図１８】実施形態４に係るＭＦＰのカスタムメニュー制御部によるボタン削除処理を説明するフローチャート。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１３】
［実施形態１］
図１は、本発明の実施形態１に係る多機能処理装置（ＭＦＰ：Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１０１のハードウェア構成の一例を示す図である。尚、図１は、実施形態に係る画像形成装置の一例を示したもので、他の構成要素を含んだり、或いは、実施形態と同様の効果のある構成を含んでも構わない。
【００１４】
制御部１０３は、ＣＰＵ１１１，ＲＡＭ１１２，ＲＯＭ１１３、入力制御Ｉ／Ｆ１１４、表示制御Ｉ／Ｆ１１５、外部メモリＩ／Ｆ１１６、通信Ｉ／Ｆコントローラ１１７を有し、これらはシステムバス１１０を介して相互に接続されている。またスキャナ１２１やプリンタ１２２もシステムバス１１０に接続されている。システムバス１１０に接続された各部は、システムバス１１０を介して互いにデータのやりとりを行うことができる。
【００１５】
ＣＰＵ１１１は、ＲＯＭ１１３に記憶されているプログラムに従って、システムバス１１０を介して各部の制御や、データの計算や加工等を行う。ＲＡＭ１１２は揮発性のメモリで、ＣＰＵ１１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＲＯＭ１１３は不揮発性のメモリで、画像データやその他のデータ、ＣＰＵ１１１が動作するための各種プログラム等を、それぞれ所定の領域に格納している。ＣＰＵ１１１は、例えばＲＯＭ１１３に格納されるプログラムに従い、ＲＡＭ１１２をワークメモリとして用いてＭＦＰ１０１の各部を制御する。尚、ＣＰＵ１１１が動作するためのプログラムは、ＲＯＭ１１３に限らず、外部メモリ１２０に記憶されていて、ＲＡＭ１１２に展開されて実行されても良い。
【００１６】
入力制御Ｉ／Ｆ１１４は、ユーザの操作を受け付け、その操作に応じた制御信号を生成してＣＰＵ１１１に供給する。例えば、入力制御Ｉ／Ｆ１１４は、ユーザの操作を受け付ける入力デバイスとして、キーボード（不図示）や、ポインティングデバイスやタッチパネル１１８等の入力デバイスとのインタフェースを制御する。尚、タッチパネル１１８は、例えば平面的に構成された入力部に対して、接触された位置に応じた座標情報を出力する入力デバイスである。ＣＰＵ１１１は、入力デバイスに対してなされたユーザの操作に応じて入力制御Ｉ／Ｆ１１４で生成されて供給される制御信号に基づき、プログラムに従ってＭＦＰ１０１の各部を制御する。これにより、ユーザの操作に応じた動作をＭＦＰ１０１に行わせることができる。表示制御Ｉ／Ｆ１１５は、表示部１１９に画像を表示させるための表示信号を出力する。例えば、ＣＰＵ１１１は、プログラムに従い、生成した表示制御信号を表示制御Ｉ／Ｆ１１５に対して供給する。表示制御Ｉ／Ｆ１１５は、この表示制御信号に基づいて表示信号を生成して表示部１１９に出力して表示させる。例えば、表示制御Ｉ／Ｆ１１５は、ＣＰＵ１１１が生成する表示制御信号に基づき、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を構成するＧＵＩ画面を表示部１１９に表示させる。またタッチパネル１１８は、表示部１１９と一体的に構成されていても良い。例えば、タッチパネル１１８は光の透過率が表示部１１９の表示を妨げないように構成され、表示部１１９の表示面の上層に取り付けられる。そして、タッチパネル１１８でユーザが操作した位置の入力座標と、表示部１１９上の表示座標とが対応付けられる。これにより、あたかもユーザが表示部１１９に表示された画面を直接的に操作しているようなＧＵＩを提供できる。
【００１７】
外部メモリＩ／Ｆ１１６には、例えばＨＤＤ（ハードディスクドライブ）やフレキシブルディスク、又はＣＤやＤＶＤ、フラッシュメモリ、メモリカード等の外部メモリ１２０が接続可能である。ＣＰＵ１１１の制御に基づいて、外部メモリ１２０からのデータの読み出しや、外部メモリ１２０に対するデータの書き込みが行われる。構成によっては、外部メモリ１２０をＲＯＭ１１３の代わりに使用することもあり得る。通信Ｉ／Ｆコントローラ１１７は、ＣＰＵ１１１の制御に基づき、例えばＬＡＮやインターネット、有線、無線等の各種ネットワークとの間で通信を行う。ネットワーク１０２には、ＰＣや他のＭＦＰ、プリンタ、サーバ等、様々な装置がＭＦＰ１０１と通信可能に接続されている。
【００１８】
スキャナ１２１は、ＣＰＵ１１１の制御に基づき、原稿を読み取って、その原稿の画像データを生成する。例えば、ＣＰＵ１１１は、入力制御Ｉ／Ｆ１１４を介して入力されたユーザの指示により、スキャナ１２１にスキャン処理を実施させる。これによりスキャナ１２１は、原稿台に置かれた原稿、或いはＡＤＦ（自動原稿給紙装置）に置かれた原稿を搬送して読み取り、読み取って得られた画像信号をデジタルデータ化して画像データを生成する。そして、その生成した画像データが外部メモリＩ／Ｆ１１６を介して供給されると、ＣＰＵ１１１はその画像データを例えば外部メモリ１２０に格納する。プリンタ１２２は、ＣＰＵ１１１の制御に基づき、例えば外部メモリ１２０に保存された画像データに基づいて印刷する。例えば、ＣＰＵ１１１は、入力制御Ｉ／Ｆ１１４を介して入力されたユーザの指示や、通信Ｉ／Ｆコントローラ１１７を介して外部装置から入力されたコマンドの指示によりプリンタ１２２に対して印刷処理を実施させる。プリンタ１２２は、ＲＡＭ１１２或いは外部メモリ１２０から読み出されて供給される画像データを受け取って用紙に印刷する。
【００１９】
図２は、実施形態１に係るＭＦＰ１０１のソフトウエア構成を説明するブロック図である。尚、図２は、本実施形態１における説明のための一例を示したものであり、他の構成要素を含む、或いは、実施形態１と同様の効果のある構成を含んでも構わない。また図２に示す各制御部は、ＣＰＵ１１１がＲＯＭ１１３に記憶されているプログラムを実行することにより達成される。
【００２０】
制御バス２００には、例えば表示操作制御部２０１、認証制御部２０２、同期制御部２０５、コピー制御部２１０、送信制御部２１１、カスタムメニュー制御部２１２、ブラウザ制御部２１３などの各制御部が接続されている。制御バス２００は、ＣＰＵ１１１の制御に基づき、各制御部間の情報を受け渡しする。ＭＦＰ１０１は、一つ以上の機能を備えており、機能毎に制御部があり、図２では、一例としてコピー制御部２１０、送信制御部２１１、カスタムメニュー制御部２１２、ブラウザ制御部２１３を示している。当然ながら図２に示す機能以外に対しても、それぞれの制御部が存在している（不図示）。その他の機能の例として、例えば、ドライバから投入された印刷ジョブをＭＦＰ１０１に留め置き、認証したユーザ又は印刷ジョブに紐づけられたパスワードを知るユーザのみが印刷できる機能であるセキュアプリント機能がある。またＭＦＰ１０１に画像データを保存する機能を持つボックス機能や、ヘルプ画面を表示する機能を持つヘルプ機能や、公共通信網からＦＡＸ文書を受信するファックス機能などがある。
【００２１】
表示操作制御部２０１は、ＣＰＵ１１１の制御に基づき、入力制御Ｉ／Ｆ１１４や表示制御Ｉ／Ｆ１１５を制御する。例えば、表示操作制御部２０１は、他の制御部からの指示に基づいて表示制御Ｉ／Ｆ１１５を介して表示部１１９に表示し、或いは、入力制御Ｉ／Ｆ１１４を介して、タッチパネル１１８でユーザが入力した情報を取得する。尚、表示操作制御部２０１は、取得した情報を、必要に応じて制御バス２００を介して各制御部へ通知する。以降の説明では、制御部間で情報やデータを受け渡しする際は、制御バス２００を経由するものとする。
【００２２】
認証制御部２０２は、ＣＰＵ１１１の制御に基づき、ユーザを識別するための認証処理（以下、ログイン）を行い、ＭＦＰ１０１の操作者がＭＦＰ１０１の正当なユーザか否かを判定する。また認証制御部２０２は、外部メモリ１２０に設けられた、ユーザ情報を格納したデータベースを参照する。ログイン処理では、ユーザ名とパスワードの対応関係が正しいかどうかを判定し、正しければログイン処理は成功し、正規のユーザとして、与えられた権限の範囲で、このＭＦＰ１０１の機能が利用可能になる。一方、ログイン処理に失敗すれば、認証していないユーザとして、より狭い権限の範囲でＭＦＰ１０１の機能を利用できるか、或いは、どの機能も利用できないといった制御が行われる。尚、ユーザの認証方法は、この限りでなく、非接触型のＩＣカードなどを使用する他の認証方法でもよい。
【００２３】
次に、コピー制御部２１０について説明する。コピー制御部２１０は、原稿を読み取って、その原稿の画像を印刷する機能（以下、コピー機能）を制御する。コピー制御部２１０は、スキャナ１２１が原稿を読み取って画像データを生成し、その画像データを画像処理部（不図示）で画像処理を行って、処理済の画像データをプリンタ１２２へ出力して印刷する。コピー機能における設定の一例として、Ｎ枚の原稿から１枚のコピー画像を生成するレイアウト（Ｎｉｎ１）設定や、原稿の片面、或いは両面を読み取るかを指定させる両面設定がある。更に、フルカラー、モノクロ、単色などの印刷する色を指定させるカラーモード設定などがある。
【００２４】
次に送信制御部２１１について説明する。送信制御部２１１は、スキャナ１２１により原稿を読み取って得られた画像データを外部のサーバに送信する機能（以下、送信機能）を制御する。送信制御部２１１は、スキャナ１２１が原稿を読み取って画像データを生成し、その画像データを画像処理部（不図示）で画像処理を行い、例えばＪＰＥＧ，ＴＩＦＦなどの一般的なファイルフォーマットのファイルを生成する。そして生成したファイルを、例えばサーバに送付する、或いは、電子メールに添付して送付する。
【００２５】
次にブラウザ制御部２１３について説明する。ブラウザ制御部２１３は、ネットワーク１０２を介してＷｅｂサーバと通信してリソースを取得する。そして、その取得したリソースの種類に基づいて、ＣＰＵ１１１が構文解析を実行し、文字や画像を適切に配置した画面を表示制御Ｉ／Ｆ１１５を介して表示部１１９に出力する。ブラウザ機能の利用例として、ブラウザ制御部２１３が文書管理機能を有するサーバにＨＴＴＰリクエストを発行し、そのレスポンスにセットされたスキャン要求を解析し、スキャナ１２１に対してスキャン要求を発行する。そして、スキャナ１２１が取得した画像データを文書データとしてサーバに登録するといったものが挙げられる。
【００２６】
次に、カスタムメニュー制御部２１２について説明する。カスタムメニュー制御部２１２は、他の機能の設定を記憶し、カスタマイズ可能なメニュー画面の上のボタンとして登録する機能を制御する。カスタムメニュー制御部２１２は、機能を設定した後、その機能をボタンに登録するように指示することにより、その機能へのショートカットボタンをカスタムメニュー画面（例えば図４（Ａ））に登録する。このカスタムメニュー画面の詳細な説明は後述する。
【００２７】
同期制御部２０５は、設定同期データベース（ＤＢ）２０６の変更をＣＰＵ１１１が検知すると、ネットワーク１０２を介して、マスタ設定ＤＢ３０１（図３）と設定同期ＤＢ２０６の設定情報の差分情報を設定サーバ３００（図３）に送信する。尚、同期制御部２０５は、ノード（属性）単位で変更点を検知する仕組みを有しており、実施形態１では、このような変更点を差分情報と定義する。設定同期ＤＢ２０６は、同期制御部２０５により設定サーバ３００のマスタ設定ＤＢ３０１と同期され、ＭＦＰ１０１の各機能が利用するＭＦＰの固有の設定情報を記憶しており、ＲＡＭ１１２或いは外部メモリ１２０に設けられている。
【００２８】
図３は、本実施形態１に係るＭＦＰ１０１を含む情報処理システムの構成例を示す図である。尚、図３は実施形態１を説明するための一例を示したものであり、他の構成要素を含むか、或いは、実施形態１と同様の効果のある構成を含んでも構わない。また設定サーバ３００の構成は、ＭＦＰ１０１或いはＭＦＰ１０２が兼ねていても良い。
【００２９】
この情報処理システムでは、設定サーバ３００，ＭＦＰ１０１，ＭＦＰ１０２がネットワーク１０２を介して接続されている。設定サーバ３００は、各ＭＦＰでの設定情報（デバイス設定）、個人設定をマスタ設定ＤＢ３０１に記憶している。ＭＦＰ１０２のハードウェア構成及びソフトウエア構成は、ＭＦＰ１０１の構成と同等とする。ＭＦＰ１０１の同期制御部２０５は、ＭＦＰ１０１の設定同期ＤＢ２０６の設定情報の変更を検出すると、その変更点を含むノードを設定サーバ３００に通知する。ＭＦＰ１０２は、設定サーバ３００に対して、設定情報が変更されたかを問合せ、設定情報が変更された場合は、設定サーバ３００から、その変更された設定情報を取得する。これにより、ＭＦＰ１０１における設定情報の変更内容がＭＦＰ１０２に反映されることになる。
【００３０】
尚、ＭＦＰ１０１において、ユーザが設定情報を変更すると、ＭＦＰ１０１の同期制御部２０５は設定サーバ３００と同期するが、これは設定情報が変更された都度ではなく、例えば予め設定された所定のタイミングで設定情報を同期するようにしても良い。また、ユーザがログアウト時に、自動的に設定情報を同期するようにしても良い。
【００３１】
また、ＭＦＰ１０２の設定同期ＤＢ２０６と、設定サーバ３００のマスタ設定ＤＢ３０１との同期のタイミングは、ログイン時、ログアウト時、指定時刻、所定時間の経過時、日時指定、ユーザが指定したタイミング等であっても良い。またその同期のタイミングを、それらのいずれにするかを指定できるモードを設けても良い。また各ＭＦＰは、設定サーバ３００に対してネットワーク１０２を介して差分情報の有無をリクエストし、差分情報がある場合には、そのデータをレスポンスとして取得して設定同期ＤＢ２０６を更新する。即ち、同期制御部２０５は、通信Ｉ／Ｆコントローラ１１７を介して設定サーバ３００と通信し、設定同期ＤＢ２０６に記憶されている設定情報と、設定サーバ３００のマスタ設定ＤＢ３０１に記憶されている設定情報とを同期するための制御を行う。
【００３２】
尚、本実施形態１では、設定同期ＤＢ２０６に含まれるデータとして、カスタムメニュー制御部２１２に関わる設定情報を扱うが、それ以外の機能が有する設定情報の場合も同様にして実施できる。
【００３３】
図４（Ａ）は、実施形態１に係るＭＦＰ１０１のカスタムメニュー制御部２１２によって提供されるカスタムメニュー画面の一例を示す図である。
【００３４】
このカスタムメニュー画面は、カスタムメニュー制御部２１２によって作成されたもので、ボタン４０１〜４０３の３つのボタンを画面上に有する。ボタン４０１は、コピー制御部２１０へ遷移するためのボタンである。ボタン４０２は、ブラウザ制御部２１３へ遷移するためのボタンである。ボタン４０３は送信制御部２１１へ遷移するためのボタンである。またマイボタン４０４は、認証制御部２０２のログインに紐づいたユーザごとに管理された専用のボタンを表示するためのボタンである。共有ボタン４０５は、認証制御部２０２によるログインが完了していない、即ち、未認証のユーザや全てのユーザが共通に利用可能なボタンを表示するためのボタンである。尚、認証制御部２０２が複数のユーザをグループという単位で管理できる機構を備えていれば、グループごとに利用可能なボタンを表示するグループボタンを追加しても構わない。
【００３５】
カスタムメニュー制御部２１２は、ボタン４０１〜４０３のいずれかの押下を入力制御Ｉ／Ｆ１１４を介して検知すると、対応する制御部に対して、設定同期ＤＢ２０６から取得した設定情報と共に呼び出し要求を行う。例えば、カスタムメニュー制御部２１２が、ボタン４０１の押下を検知すると、コピー制御部２１０に対して、コピー機能の呼び出し要求を行う。これによりコピー制御部２１０は、例えば図４（Ｂ）示す確認ダイアログを表示部１１９に表示させる。
【００３６】
図４（Ｂ）は、図４（Ａ）の画面でコピーボタン４０１が指示されたときの確認ダイアログの表示例を示す図である。
【００３７】
ここでは、モノクロ、原稿の種類などの設定情報が、ボタン制御部６０１（図６）を介してコピー制御部２１０に渡されていることを表す。このとき、例えば、以下のようなＸＭＬの形式でボタン制御部６０１からコピー制御部２１０に設定情報が渡される。
＜?xml version="1.0" encoding="UTF-8"?.＞
＜アクションID＞001＜/アクションID＞
＜設定情報＞
＜カラー選択＞モノクロ＜/カラー選択＞
＜濃度＞0＜/濃度＞
＜倍率＞等倍＜/倍率＞
＜用紙選択＞自動＜/用紙選択＞
＜現行の種類＞文字＜/現行の種類＞
＜/設定情報＞
尚、アクションＩＤは、ボタンノード７５２（図７（Ａ））と紐づいた機能の設定情報の識別情報である。カスタムメニュー制御部２１２が扱うデータの構造については図７を参照して詳述する。
【００３８】
そして、コピー制御部２１０は、図４（Ｂ）の「はい」ボタン４０６の押下を検知すると、上述した設定情報が反映されたコピー画面（図５（Ａ））を表示制御Ｉ／Ｆ１１５を介して表示部１１９に表示する。
【００３９】
また図５（Ａ）の画面で設定ボタン４４０が押下されると、カスタムメニュー制御部２１２が設定ボタン４４０の押下を検知して図５（Ｂ）に示すカスタムメニュー画面を表示する。
【００４０】
図５（Ｂ）は、ボタン４０２が不整合な状態になったため、ボタン４０２がグレーアウト表示されて、選択できない状態になっていることを示す図である。尚、不整合な状態とは、そのボタン４０２に対応する、機能（アプリケーション）が、アンインストールされたか、或いは無効化された状態を指す。尚、不整合な状態は、機能が使用可能な状態になったときに解消され、その時、そのボタンは選択できる状態に戻る。尚、図５（Ｂ）において、図４（Ａ）と共通する部分は同じ参照番号で示している。
【００４１】
図６は、実施形態１に係るＭＦＰ１０１のカスタムメニュー制御部２１２のソフトウエア構成を説明するブロック図である。
【００４２】
カスタムメニュー制御部２１２は、ボタン制御部６０１と画面生成部６０２とボタンクリア部６０３を含む。ボタン制御部６０１は、機能からのボタンの登録要求に伴って、ボタンに関する情報を設定同期ＤＢ２０６に設定する。またメニュー画面でユーザがボタンを押下するのに伴って、そのボタンに関する設定情報を設定同期ＤＢ２０６から読み込んで、アプリケーションＩＤキー７５４（図７）に一致する機能を呼び出す。このとき、アクションＩＤキー７５３（図７）に紐づく設定情報を、その機能に通知する。これによりその機能は、ユーザが所望する設定情報を反映させることができる。
【００４３】
画面生成部６０２は、カスタムメニュー制御部２１２が表示部１１９に表示する画面を生成する。例えば、選択されている背景画像の上にボタンを配置して、レイアウトに応じた、例えば図４（Ａ）のカスタムメニュー画面を生成する。このカスタムメニュー画面の生成について、後述する。
【００４４】
ボタンクリア部６０３は、アプリケーションフレームワーク８００（図８）から、機能の状態の変更（例えば機能の削除）通知や、カスタムメニュー制御部２１２に対する起動要求・終了要求通知を受けた時に、不整合なボタンのクリーンアップを行う。ここで、不整合なボタンとは、ボタンに紐づいた機能が存在しなくなっている状態のことを指す。このような状態になったとき、ボタンクリア部６０３は、同期制御部２０５によるボタンの同期機能が有効か無効かを判断して、無効の時のみ、そのボタンを設定同期ＤＢ２０６から削除する。
【００４５】
次に図７を参照して、設定同期ＤＢ２０６に登録されているカスタムメニュー制御部２１２が扱うデータ構造について説明する。
【００４６】
設定同期ＤＢ２０６には、図７に示すように、カスタムメニュー制御部２１２用に１ユーザごとにデータが存在しており、このデータは、認証制御部２０２で認証済みとなったときのみ参照可能となる。
【００４７】
ボタンルートノード７５１は、ボタンノード７５２をボタンの数だけ有する。ボタンノード７５２には、メニュー画面に表示されるボタンに関する情報が格納されており、アクションＩＤキー７５３、アプリケーションＩＤキー７５４、コメントキー７５５、ボタン名称キー７５６、アイコンＩＤキー７５７を含む。アクションＩＤキー７５３は、ボタンノード７５２に紐づいた機能の設定情報を、設定同期ＤＢ２０６から参照するための識別情報であり、ファイルパスのような形態であってもよい。アプリケーションＩＤキー７５４は、ボタンの実機能を有する機能の識別情報であり、機能ごとに一意なものである。コメントキー７５５やボタン名称キー７５６は、図４（Ａ）のカスタムメニュー画面のボタンに表示するコメントや名称の文字情報と結びついた識別情報である。但し、識別情報でなくとも、文字列そのものを格納しても構わない。アイコンＩＤキー７５７は、図７（Ｂ）のアイコンＩＤノード７８２と一致するものであって、ボタンのアイコンを決定するための識別情報である。
【００４８】
ボタンインデックスノード７６１は、ボタンの数だけボタンインデックスキーが存在し、ボタンインデックスキーは、ボタンノード７５２を指している。例えば、ボタンインデックスキーが「０」でボタンノード７５２の６番を指している場合、図４（Ａ）のカスタムメニュー画面では、コピーボタン４０１が先頭にあることから、６番目のボタンノード７５２はコピーボタン４０１であることがわかる。
【００４９】
次に図７（Ｂ）のカスタムメニューの設定情報について以下に説明する。
【００５０】
アイコンルートノード７８１は、機能からカスタムメニュー制御部２１２に対して登録されたアイコンを格納するための領域である。
【００５１】
背景画像ノード７９１は、背景画像の登録要求に伴って、カスタムメニュー制御部２１２が有する背景画像への参照情報である背景画像キー７９２を有する。
【００５２】
図８は、実施形態１に係るＭＦＰ１０１の起動時における機能登録の手順を示すシーケンス図である。この手順は、ＭＦＰ１０１のＣＰＵ１１１の制御の下で実行される。尚、図８に記載のアプリケーションフレームワーク８００は、機能（アプリケーション）のライフサイクル（開始、停止、再開、終了等）を管理するもので、ＭＦＰ１０１の起動時に一番初めに動作するものである。このアプリケーションフレームワーク８００は、ＲＯＭ１１３或いは外部メモリ１２０に存在するＭＦＰ１０１のブートモジュールの一種である。
【００５３】
ここでは図４（Ａ）に示すカスタムメニュー画面を例に説明する。先ずＳ８００でアプリケーションフレームワーク８００は、カスタムメニュー制御部２１２に対して起動要求を行う。これによりカスタムメニュー制御部２１２は、設定同期ＤＢ２０６から設定情報を取得し、必要に応じて更新処理を行うためのスレッドを初期化処理として起動させる。そしてＳ８０１でカスタムメニュー制御部２１２は、スレッドの起動が完了すると、完了通知をアプリケーションフレームワーク８００に通知する。続いてＳ８０２，Ｓ８０４でアプリケーションフレームワーク８００は、コピー制御部２１０、ブラウザ制御部２１３と続けて起動要求を行う。そしてＳ８０３，Ｓ８０４でそれぞれの機能からの完了通知を受け取ると処理を終える。尚、コピー制御部２１０及びブラウザ制御部２１３の初期化処理では、カスタムメニュー制御部２１２の初期化処理と同様に、機能ごとの初期化処理を行うためのスレッドをそれぞれ生成する。そしてそれが完了すると、完了通知をアプリケーションフレームワーク８００に通知する。
【００５４】
コピー制御部２１０はこの初期化処理の中で、Ｓ８０６で、カスタムメニュー制御部２１２に対して機能の登録要求を行う。これに対してカスタムメニュー制御部２１２は、その機能の登録処理を実行した後、Ｓ８０７で、登録完了通知をコピー制御部２１０に応答する。尚、Ｓ８０６の登録要求では、アプリケーションＩＤ、アプリケーション名、アイコンが、カスタムメニュー制御部２１２に渡される。そしてブラウザ制御部２１３でも同様にその初期化処理で、カスタムメニュー制御部２１２に対して機能の登録要求と、登録処理、及び登録完了通知が実行される（Ｓ８０８，Ｓ８０９）。尚、図８では、冗長となるため送信制御部２１１に係るシーケンスは図示していないが、コピー制御部２１０などの機能と同様の起動シーケンスをたどることに注意されたい。
【００５５】
図９は、実施形態１に係るＭＦＰ１０１のカスタムメニュー制御部２１２による機能の登録処理を説明するフローチャートである。尚、この処理は、ＣＰＵ１１１がＲＯＭ１１３に記憶されているプログラムを実行することにより実現される。
【００５６】
まずＳ９０１でＣＰＵ１１１は、機能（アプリケーション）から登録要求の際に引き渡された情報であるアプリケーションＩＤとアプリケーション名をアプリケーションリストノード７４１（図７）に登録する。次にＳ９０２に進みＣＰＵ１１１は、その機能から登録要求時に渡されたアイコンを、呼び出し元の機能のアプリケーションＩＤと紐づけてアイコンルートノード７８１にアイコンＩＤノード７８２を登録して、この処理を終了する。
【００５７】
こうして機能が登録されると、その機能に対応するアプリケーションとアイコンとが対応付けて設定同期ＤＢ２０６に登録される。
【００５８】
図１０は、実施形態１に係るＭＦＰ１０１の画面生成部６０２によるカスタムメニュー画面の生成処理を示すフローチャートである。尚、この処理は、ＣＰＵ１１１がＲＯＭ１１３に記憶されているプログラムを実行することにより実現される。
【００５９】
まずＳ１００１でＣＰＵ１１１は、設定同期ＤＢ２０６のボタンルートノード７５１から、全てのボタンノード７５２を読み取る。そしてカスタムメニュー画面に配置するボタンの形成に必要な情報（コメントキー７５５、ボタン名称キー７５６、アイコンＩＤキー７５７）を取得する。そしてＣＰＵ１１１は、設定同期ＤＢ２０６からボタンインデックスノード７６１を読み込み、どのボタンをどの位置に配置するかを決定する。更に、ＣＰＵ１１１は、表示する背景画像を背景画像ノード７９１から取得する。
【００６０】
次にＳ１００２に進みＣＰＵ１１１は、Ｓ１００１で取得した全てのボタンノードに対応する機能（アプリケーション）の有無によってボタンの表示形態を変えるために、このステップで全てのボタンノードに対する確認が終了したかどうかを判断する。ここで終了していないと判定したときはＳ１００３に進みＣＰＵ１１１は、ボタンノード７５２のアプリケーションＩＤキー７５４を取得する。次にＳ１００４に進みＣＰＵ１１１は、そのアプリケーションＩＤキー７５４が、アプリケーションリストノード７４１に存在するかどうかを判定する。ここで存在しないと判定した場合はＳ１００５に進み、そのボタンを押下できない状態（例えば図５（Ｂ）のボタン４０２）となるように設定する。尚、この場合のボタンの表示形態は半透明に限定されるわけでなく、アイコンを「？」に変更する、或いは、そのボタンを表示しない、といったユーザにとって利用不可能なことが伝わる形態であればよく、特に限定されないことに注意されたい。一方、Ｓ１００４でそのアプリケーションＩＤキー７５４が存在すると判定した場合はＳ１００６に進み、そのボタンを選択できる状態（例えば図５（Ｂ）のボタン４０１）となるように設定してＳ１００２へ戻る。
【００６１】
またＳ１００２でＣＰＵ１１１が、全てのボタンノードに対する確認が終了したと判定した場合はＳ１００７に進む。Ｓ１００７でＣＰＵ１１１は、背景画像の上に、Ｓ１００５或いはＳ１００６で設定した状態に基づいたボタンや、マイボタン４０４、共有ボタン４０５などを配置して、例えば図４（Ａ）に示すようなカスタムメニュー画面を生成する。
【００６２】
尚、メニュー画面の部品の位置をＸＭＬ形式やＨＴＭＬ形式などでテンプレートファイルとして用意しておき、画面の態様を変えるようにしても良い。換言すると、画面の生成に必要な情報さえ取得できていれば、最終段階の画面の生成方法は限定されるものではないことに注意されたい。
【００６３】
この処理により、メニュー画面を表示する際に、メニューボタンに対応する機能を実行できるアプリケーションが登録されていないときは、そのボタンを指示できない形態で表示することにより、ユーザにそのボタンの機能が実行できないことを通知できる。
【００６４】
図１１は、実施形態１に係るＭＦＰ１０１のボタンクリア部６０３による不整合なボタンに対する処理を説明するフローチャートである。尚、この処理は、ＣＰＵ１１１がＲＯＭ１１３に記憶されているプログラムを実行することにより実現される。
【００６５】
先ずＳ１１０１でＣＰＵ１１１は、同期制御部２０５の同期機能が有効であるかどうかを問い合わせ、同期機能が有効である場合は、このクリーンアップ処理を終了する。一方、Ｓ１１０１でＣＰＵ１１１は、同期機能が無効であると判定するとＳ１１０２に進み、ＣＰＵ１１１は、設定同期ＤＢ２０６から全てのボタンノード７５２を取得する。次にＳ１１０３に進みＣＰＵ１１１は、Ｓ１１０２で取得したボタンノード７５２からアプリケーションＩＤキー７５４を参照し、クリーンアップ処理のために要求元から指定された削除対象となるアプリケーションＩＤ７４２と一致するものがないかを判定する。そして、一致するものがあれば、そのボタンノード７５２を削除する。このような処理を、取得した全てのボタンノード７５２に対して実行して、このクリーンアップ処理を終了する。
【００６６】
この処理によれば、同期機能が有効でない場合に、ある機能を実行するアプリケーションが無効化されるか、或いはアンインストールされると、その機能に対応するボタンをメニュー画面から削除できる。同期機能が有効であれば、そのボタンを削除しないようにする。これは同期機能が有効になっている状態で、ボタンを削除してしまうと、サーバ側の情報も更新されてしまい、他の装置では使用できる可能性のあるボタンまでも消してしまいかねないためである。そこで実施形態では、同期機能が有効な環境ではボタンを削除しないため、他の装置で利用できる可能性のあるボタンを保持することができる。このため、再度ボタンを登録し直す必要がなくなるという効果がある。
【００６７】
図１２は、実施形態１に係るＭＦＰ１０１の機能（アプリケーション）が無効化或いはアンインストールされた場合の手順を示すシーケンス図である。尚、この処理は、ＣＰＵ１１１がＲＯＭ１１３に記憶されているプログラムを実行することにより実現される。
【００６８】
ところで、機能は、ソフトウエアをインストールすることで追加されるもの以外に、ＲＯＭ１１３或いはＲＡＭ１１２に格納済みのものがある。後者の場合は、ライセンスとよばれる識別情報をＲＯＭ１１３或いはＲＡＭ１１２に存在するライセンス管理部１２００に登録することで、その機能を有効或いは無効にできる。このように、ライセンス管理部１２００は、タッチパネル１１８を介して入力されたユーザのライセンスの正当性を判定し、適応的に、その機能を有効化・無効化する機能を有する。またＲＯＭ１１３或いはＲＡＭ１１２に存在するアプリ管理部１２０１は、機能の追加や削除をアプリケーションフレームワーク８００に要求する機能を有する。これらの要求は、タッチパネル１１８或いはＭＦＰ１０１とネットワーク１０２で接続されている情報処理装置（不図示）からの要求に基づくものである。
【００６９】
先ずＳ１２００でライセンス管理部１２００は、アプリケーションフレームワーク８００にライセンスの無効化通知を行う。この時、この通知には、無効化対象の機能のアプリケーションＩＤ７４２が含まれている。次にアプリケーションフレームワーク８００は、このライセンス無効化の通知をカスタムメニュー制御部２１２に通知し、ボタンクリア部６０３による不整合なボタンのクリーンアップ処理を行う（Ｓ１２０１）。そして、ライセンス無効化に伴う処理は、Ｓ１２０２，Ｓ１２０３でそれぞれの機能からの完了通知を受け取ることで終える。
【００７０】
次にＳ１２０４に進みアプリ管理部１２０１は、アプリケーションフレームワーク８００にアンインストール通知を行う。アプリケーションフレームワーク８００は、カスタムメニュー制御部２１２にアンインストール通知を行い、ボタンクリア部６０３による不整合なボタンのクリーンアップ処理を行う（Ｓ１２０５）。そして、アンインストール通知に伴う処理は、Ｓ１２０６，Ｓ１２０７でそれぞれの機能からの完了通知を受け取ることで終える。
【００７１】
図１３は、実施形態１に係る情報処理システムにおけるＭＦＰ１０１と設定サーバ３００との間で実行される設定値の同期処理を説明するシーケンス図である。尚、このシーケンス図におけるＭＦＰ１０１による処理は、ＭＦＰ１０１のＣＰＵ１１１がＲＯＭ１１３に記憶されているプログラムを実行して、ＣＰＵ１１１がシステムバス１１０及び各Ｉ／Ｆを通じて各構成要素を制御することにより実現される。
【００７２】
Ｓ１３０１でＣＰＵ１０１は、ＭＦＰ１０１のユーザの認証を行う。具体的には、ユーザがタッチパネル１１８を介してユーザＩＤ及びパスワードを入力すると、ＣＰＵ１１１は、予めＭＦＰ１０１に保存されているユーザＩＤとパスワードと照合する。そして、合致するユーザＩＤとパスワードがあれば、使用が許可されたユーザであると判定する。こうしてユーザの認証に成功するとＳ１３０２に進みＣＰＵ１１１は、その認証したユーザのユーザＩＤを示すユーザＩＤと、設定サーバ３００から設定情報を最後に取得した日時を示す最終更新日時情報とを設定サーバ３００に送信する。これにより、設定サーバ３００は、そのユーザＩＤ及び最終更新の日時情報をＭＦＰ１０１から受信する。そしてＳ１３０３に進み設定サーバ３００は、ＭＦＰ１０１から送信されたユーザＩＤと最終更新日時情報とに基づいて、そのユーザの設定情報を取得する。更に設定サーバ３００は、最終更新日時情報で示される日時より新しいタイミングで更新されたユーザ設定情報を特定する。そしてＳ１３０４で設定サーバ３００は、その特定したユーザの設定情報をＭＦＰ１０１に送信する。これによりＭＦＰ１０１は、設定サーバ３００から設定情報を取得して設定同期ＤＢ２０６に格納する。そしてＳ１３０５でＣＰＵ１１１は、設定サーバ３００から取得した、そのユーザの設定情報をＭＦＰ１０１に反映する。
【００７３】
その後、そのユーザは任意のユーザオペレーションを実行するが、その例として、Ｓ１３０６で、ユーザは特定の設定値を変更する。このとき設定同期ＤＢ２０６に格納されている設定情報が変更されると、そのユーザによる指示に基づく処理を実行した後、所定のタイミングでＭＦＰ１０１は、その設定同期ＤＢ２０６に格納されているユーザの設定情報を設定サーバ３００に送信して保存する。尚、実施形態１では、所定のタイミングとして、ログアウトの指示を受け付けた時に、そのユーザの設定情報を設定サーバ３００に保存するものとする。尚、このタイミングはログアウトに限定するものではなく、例えば、コピージョブやプリントジョブの実行を指示したタイミングであってもよいし、ジョブが正常に終了したタイミングであってもよい。また、ユーザが明示的に設定サーバ３００に保存する指示をしたタイミングであってもよい。
【００７４】
具体的には、Ｓ１３０７でＣＰＵ１１１は、ログアウトの指示を受け付けると、ログインユーザのユーザＩＤに対応する、設定同期ＤＢ２０６に格納されている設定情報を取得する。そしてＳ１３０８でＣＰＵ１１１は、そのユーザＩＤと、Ｓ１３０７で取得した、そのユーザＩＤに対応する設定情報を設定サーバ３００に送信してユーザのログアウト処理を実行する。これにより、設定サーバ３００は、ＭＦＰ１０１から送信されたユーザ設定情報を受信し、Ｓ１３０９で設定サーバ３００は、その受信したユーザの設定情報をマスタ設定ＤＢ３０１に保存する。そしてＳ１３１０で設定サーバ３００は、保存が完了したことを示す完了情報をＭＦＰ１０１に送信し、ＭＦＰ１０１は、設定サーバ３００より保存完了情報を受信する。
【００７５】
そして、次にそのユーザがＭＦＰ１０２にログインすると、ＭＦＰ１０２は、ＭＦＰ１０２で認証したユーザのユーザＩＤを示すユーザＩＤと、設定サーバ３００から設定情報を最後に取得した日時を示す最終更新日時情報とを設定サーバ３００に送信する。これにより設定サーバ３００は、ＭＦＰ１０２から送信されたユーザＩＤと最終更新日時情報とに基づいて、該当するユーザの設定情報を取得し、その取得したユーザの設定情報をＭＦＰ１０２に送信する。こうしてＭＦＰ１０２のユーザは、ＭＦＰ１０１で設定したのと同じ設定情報を用いて、同じカスタムメニュー画面を表示することができる。
【００７６】
以上説明したように実施形態１によれば、ＭＦＰが有する機能が無効化、或いはアンインストールされた時に、同期機能が有効な場合には、その機能に関連するボタンを削除しないようにできる。併せて、カスタムメニュー画面で、そのボタンを選択できない様態で表示することで、そのボタンに対応する機能が利用できないことが容易にユーザに理解できる。一方で、他のＭＦＰで、その機能が利用可能な場合に備えて、ボタンが継続して利用可能となる。また同期機能が無効な場合には、その機能に関連するボタンは画面から削除されるため、カスタムメニュー画面では、その使用不可能なボタンが表示されることがなくなる。これにより、ユーザの利便性が向上する。
【００７７】
［実施形態２］
実施形態２では、機能（アプリケーション）の無効化或いはアンインストールが生じた場合、アプリケーションフレームワーク８００のシャットダウン時に、関連するボタンのクリーンアップ処理を実施する例を説明する。尚、前述の実施形態１と同一の構成、処理に関する記載は省略し、異なるものについて明記する。具体的には、図１〜図１１及び図１３を参照して説明したハードウェア構成及びソフトウエア構成、フローおよびシーケンスについては実施形態１と共通であり、図１２で説明したクリーンアップ処理のタイミングだけが前述の実施形態１と異なっている。
【００７８】
図１４は、本発明の実施形態２に係るＭＦＰ１０１の機能（アプリケーション）が無効化或いはアンインストールされた場合の手順を示すシーケンス図である。尚、この処理は、ＣＰＵ１１１がＲＯＭ１１３に記憶されているプログラムを実行することにより実現される。尚、図１４において前述の図１２と共通する部分は同じ参照番号で示している。
【００７９】
先ずＳ１２００でライセンス管理部１２００は、アプリケーションフレームワーク８００にライセンスの無効化通知を行う。この時、この通知には、無効化対象の機能のアプリケーションＩＤ７４２が含まれている。次にアプリケーションフレームワーク８００はＳ１４０１で、ライセンスの無効化をカスタムメニュー制御部２１２に通知するが、前述の図１２と異なり、このときカスタムメニュー制御部２１２はクリーンアップ処理を行わない。但しＳ１４０１で、アプリケーションリストノード７４１から、アプリケーションフレームワーク８００から通知されたアプリケーションＩＤ７４２と一致するノードを削除する。そして、そのライセンスの無効化に伴う処理は、Ｓ１２０２，Ｓ１２０３でそれぞれの機能からの完了通知を受け取ることで終える。
【００８０】
次にＳ１２０４でアプリ管理部１２０１は、アプリケーションフレームワーク８００にアンインストール通知を行う。このときＳ１４０５で、アプリケーションフレームワーク８００は、カスタムメニュー制御部２１２にアンインストールを通知するが、前述の図１２と異なり、カスタムメニュー制御部２１２はクリーンアップ処理を行わない。但し、Ｓ１４０５で、アプリケーションリストノード７４１から、アプリケーションフレームワーク８００から通知されたアプリケーションＩＤ７４２と一致するノードを削除する。そしてアンインストール通知に対して、Ｓ１２０６，Ｓ１２０７でそれぞれの機能からの完了通知を受け取る。
【００８１】
次にＭＦＰ１０１のシャットダウン等に伴うアプリケーションフレームワーク８００に対するシャットダウン要求が発生する。これによりＳ１４０８で、アプリケーションフレームワーク８００は、登録されている機能（アプリケーション）に対してシャットダウン通知を行う。実施形態２では、アプリケーションフレームワーク８００からカスタムメニュー制御部２１２に対してシャットダウン通知が行われる。このときカスタムメニュー制御部２１２は、全てのボタンノード７５２からアプリケーションＩＤキー７５４を取得し、アプリケーションリストノード７４１から全てのアプリケーションＩＤ７４２を取得し、削除された機能を特定する。そして、その特定したアプリケーションＩＤ７４２を指定して、ボタンクリア部６０３による不整合なボタンのクリーンアップ処理を行う。次に、Ｓ１４０９でカスタムメニュー制御部２１２は、アプリケーションフレームワーク８００に対して完了通知を行って、この処理を終える。尚、このシーケンスでは、シャットダウン時にクリーンアップ処理を行っているが、起動時でも構わないことに注意されたい。
【００８２】
以上説明したように実施形態２によれば、ＭＦＰが有する機能が無効化、或いはアンインストールされたときには、クリーンアップ処理を行わず、シャットダウン時にボタンのクリーンアップ処理を行う。これにより、ユーザがＭＦＰ１０１を使用している間、クリーンアップ処理との競合が発生しないため、ユーザは、ＭＦＰの応答性が低下することなくＭＦＰを使用できる。
【００８３】
［実施形態３］
実施形態３では、クリーンアップ処理の実行タイミングが、前述の実施形態１及び２とは異なる例を説明する。尚、実施形態２と同一の構成、処理に関する記載は省略し、異なるものについては明記する。具体的には、図１〜図１１及び図１３を参照して説明したハードウェア構成及びソフトウエア構成、フローおよびシーケンスについては実施形態１と共通である。実施形態２の図１４を参照して説明したクリーンアップ処理のタイミングが実施形態３では異なっている。
【００８４】
図１５は、本発明の実施形態３に係るＭＦＰ１０１の機能（アプリケーション）が無効化或いはアンインストールされた場合の手順を示すシーケンス図である。尚、この処理は、ＣＰＵ１１１がＲＯＭ１１３に記憶されているプログラムを実行することにより実現される。尚、図１５において前述の図１４と共通する部分は同じ参照番号で示している。
【００８５】
先ずＳ１２００でライセンス管理部１２００は、アプリケーションフレームワーク８００にライセンスの無効化通知を行う。この時、この通知には、無効化対象の機能のアプリケーションＩＤ７４２が含まれている。次にアプリケーションフレームワーク８００はＳ１４０１で、ライセンスの無効化をカスタムメニュー制御部２１２に通知する。このときカスタムメニュー制御部２１２は、実施形態１の図１２の場合と異なりクリーンアップ処理を行わない。但しＳ１４０１で、アプリケーションリストノード７４１から、アプリケーションフレームワーク８００から通知されたアプリケーションＩＤ７４２と一致するノードを削除する。そして、ライセンス無効化に伴う処理は、Ｓ１２０２，Ｓ１２０３でそれぞれの機能からの完了通知を受け取ることで終える。
【００８６】
またＳ１２０４で、アプリ管理部１２０１からアンインストールが要求されると、Ｓ１５０５でアプリケーションフレームワーク８００は、カスタムメニュー制御部２１２にアンインストール通知を行う。このときカスタムメニュー制御部２１２は、ボタンクリア部６０３による不整合なボタンのクリーンアップ処理を行う。但し、ここではアプリケーションリストノード７４１から、アプリケーションフレームワーク８００から通知されたアプリケーションＩＤ７４２と一致するノードを削除する。そして、アンインストール通知に伴う処理は、Ｓ１２０６，Ｓ１２０７でそれぞれの機能からの完了通知を受け取る。
【００８７】
またＭＦＰ１０１のシャットダウン等に伴うアプリケーションフレームワーク８００に対するシャットダウン要求が発生すると、Ｓ１４０８でアプリケーションフレームワーク８００は、登録されている機能（アプリケーション）にシャットダウン通知を行う。実施形態３では、カスタムメニュー制御部２１２に対してシャットダウン通知が行われる。このときカスタムメニュー制御部２１２は、全てのボタンノード７５２からアプリケーションＩＤキー７５４を取得し、アプリケーションリストノード７４１から全てのアプリケーションＩＤ７４２を取得し、削除された機能を特定する。そして、その特定したアプリケーションＩＤ７４２を指定して、ボタンクリア部６０３による不整合なボタンのクリーンアップ処理を行う。次にＳ１４０９で、カスタムメニュー制御部２１２はアプリケーションフレームワーク８００に対して、シャットダウン通知に対する処理の完了通知を行って、この処理を終える。尚、このシーケンスでは、シャットダウン時にクリーンアップ処理を行っているが、起動時でも構わないことに注意されたい。
【００８８】
以上説明したように実施形態３によれば、ＭＦＰが有する機能が無効化された時にはクリーンアップ処理を行わず、機能がアンインストールされたときにクリーンアップ処理を行う。これは、ライセンスによる機能の無効化が行われた場合、即座にその機能が停止しないような場合を想定したものである。例えば、ライセンスが無効になった時に、その機能に依存している別の機能があった場合に、即座に停止してしまうとシステムが不安定になることがある。実施形態３はこれらを考慮したものであり、シャットダウン時に、無効化された機能が停止する仕組みでも、同期機能が無効であればクリーンアップ処理が適切に行われ、不要なボタンを表示することがなくなるため、ユーザの利便性が向上する。
【００８９】
［実施形態４］
次に本発明の実施形態４を説明する。この実施形態４では、同期機能の有効或いは無効時のボタンの削除の処理について述べる。尚、ここで前述の実施形態１と同一の構成、処理に関する記載は省略し、異なるものについて説明する。
【００９０】
図１６（Ａ）は、本発明の実施形態４に係るＭＦＰ１０１のカスタムメニュー制御部２１２によって提供されるカスタムメニュー画面の一例を示す図である。ここでは、カスタムメニュー画面から設定ボタン４４０の押下に伴い、サブメニューが表示されている状態を示している。そして、「ボタンの編集」１６０１の押下によって、図１６（Ｂ）に示すボタンの編集画面が表示される。図１６（Ｂ）では、ボタン４０２が選択された状態であり、削除ボタン１６０３の押下によって、図１７（Ａ）の削除確認画面、或いは図１７（Ｂ）の削除確認画面が表示される。
【００９１】
図１７（Ａ）の削除確認画面は、同期機能が有効であり、削除対象のボタン４０２が、不整合な状態である場合に表示される。実施形態４では、「このボタンを利用可能なデバイスが存在する可能性がありますが、このボタンを削除しますか？」という確認メッセージが表示されている。一方、図１７（Ｂ）の削除確認画面は、同期機能が無効の場合に表示されるもので、「このボタンを削除します。よろしいですか？」という確認メッセージが表示されている。
【００９２】
図１８は、実施形態４に係るＭＦＰ１０１のカスタムメニュー制御部２１２によるボタン削除処理を説明するフローチャートである。尚、この処理は、ＣＰＵ１１１がＲＯＭ１１３に記憶されているプログラムを実行することにより実現される。
【００９３】
先ずＳ１８０１でＣＰＵ１１１は、同期制御部２０５に対して、同期機能の状態（有効或いは無効）を確認し、無効であればＳ１８０４へ処理を進める。一方、ＣＰＵ１１１は、同期機能が有効であった場合はＳ１８０２に処理を進めＣＰＵ１１１は、削除対象のボタンが不整合な状態であるかを判定する。尚、不整合な状態かどうかは、削除対象のボタンノード７５１からアプリケーションＩＤキー７５４を取得し、アプリケーションリストリストノード７４１にある全てのアプリケーションＩＤ６４２に一致するものがあるかどうかで判定する。そしてどれにも一致しない場合は、不整合と判定する。
【００９４】
Ｓ１８０２でＣＰＵ１１１は、削除対象のボタンが不整合な状態であると判定した場合はＳ１８０３に進み、ＣＰＵ１１１は、例えば図１７（Ａ）に示すような、削除確認画面用メッセージを含む内容を設定してＳ１８０５に進む。一方、Ｓ１８０２でＣＰＵ１１１は、削除対象のボタンが不整合な状態でないと判定した場合はＳ１８０４に進みＣＰＵ１１１は、図１７（Ｂ）に示すような、通常の注意喚起を促す内容を含む削除確認画面を設定してＳ１８０５に進む。Ｓ１８０５でＣＰＵ１１１は、Ｓ１８０３或いはＳ１８０４で設定したメッセージを付した、図１７（Ａ）或いは図１７（Ｂ）に示すような削除確認画面を画面生成部６０２により生成する。
【００９５】
以上説明したように実施形態４によれば、ＭＦＰ１０１が有する機能が無効化、或いはアンインストールされてボタンが不整合な状態である場合、そのボタンの削除要求が行われると同期機能の状態に応じて、削除確認画面の表示を変更できる。これにより、同期機能が有効であり、他のＭＦＰで、そのボタンに関連する機能が存在する可能性があることをユーザに伝えることができる。このため、ユーザは、メニューのボタンを、現在、操作しているＭＦＰで使用しないという理由だけで削除しようとした場合に、本当に削除してよいのか再考できる。これにより、誤ってメニューボタンを削除してしまった場合に、他のＭＦＰで再度登録し直すといった手間を省けるため利便性が向上する。
【００９６】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００９７】
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００９８】
１０１，１０２…ＭＦＰ，１１１…ＣＰＵ、１１９…表示部、２０５…同期制御部、２０６…設定同期ＤＢ、２１２…カスタムメニュー制御部、３０１…マスタ設定ＤＢ、６０１  ボタン制御部、６０２…画面生成部、６０３…ボタンクリア部
【図１】
0006499423.tif 000002
【図２】
0006499423.tif 000003
【図３】
0006499423.tif 000004
【図４】
0006499423.tif 000005
【図５】
0006499423.tif 000006
【図６】
0006499423.tif 000007
【図７】
0006499423.tif 000008
【図８】
0006499423.tif 000009
【図９】
0006499423.tif 000010
【図１０】
0006499423.tif 000011
【図１１】
0006499423.tif 000012
【図１２】
0006499423.tif 000013
【図１３】
0006499423.tif 000014
【図１４】
0006499423.tif 000015
【図１５】
0006499423.tif 000016
【図１６】
0006499423.tif 000017
【図１７】
0006499423.tif 000018
【図１８】
0006499423.tif 000019