(57)【要約】【課題】  画像形成装置において、本体部及び操作部の設定値を検査することができる。【解決手段】  本発明による操作装置を有する画像形成装置は、前記画像形成装置についての初期設定を受け付けて第１の記憶部に記憶する第１設定部と、前記操作装置による設定を受け付けて前記操作装置が有する第２の記憶部に記憶する第２設定部と、設定値が、前記第１設定部によって設定された第１設定値であるか、又は、前記第２設定部によって設定された第２設定値であるかを判定する判定部と、前記判定部による判定結果に基づいて、前記第１設定値及び前記第２設定値を含む設定値のうち、前記第２設定値を前記操作装置に検査させる検査部とを備える。【選択図】図１
2020082699.tif 000002
【特許請求の範囲】
【請求項１】
操作装置を有する画像形成装置であって、
前記画像形成装置についての初期設定を受け付けて第１の記憶部に記憶する第１設定部と、
前記操作装置による設定を受け付けて前記操作装置が有する第２の記憶部に記憶する第２設定部と、
設定値が、前記第１設定部によって設定された第１設定値であるか、又は、前記第２設定部によって設定された第２設定値であるかを判定する判定部と、
前記判定部による判定結果に基づいて、前記第１設定値及び前記第２設定値を含む設定値のうち、前記第２設定値を前記操作装置に検査させる検査部と
を備える
画像形成装置。
【請求項２】
前記検査部は、
入力されるルールに基づいて、設定値について、文字列の長さ及びエラーでないかを少なくとも検査する
請求項１に記載の画像形成装置。
【請求項３】
前記検査部が用いるルールは、前記画像形成装置の本体部と、前記操作装置とに別個に設定される
請求項１又は２に記載の画像形成装置。
【請求項４】
前記検査部は、
前記第１設定値及び前記第２設定値を入力するのに用いた文字コードに基づいて、前記操作装置に検査させるか否かを決定する
請求項１乃至３のいずれか１項に記載の画像形成装置。
【請求項５】
第１の記憶部と、
第２の記憶部を有する操作装置とを有する画像形成装置が行う情報処理方法であって、
画像形成装置が、画像形成装置についての初期設定を受け付けて前記第１の記憶部に記憶する第１設定手順と、
画像形成装置が、前記操作装置による設定を受け付けて前記第２の記憶部に記憶する第２設定手順と、
画像形成装置が、設定値が、前記第１設定手順で設定された第１設定値であるか、又は、前記第２設定手順で設定された第２設定値であるかを判定する判定手順と、
画像形成装置が、前記判定手順による判定結果に基づいて、前記第１設定値及び前記第２設定値を含む設定値のうち、前記第２設定値を前記操作装置に検査させる検査手順と
を含む
情報処理方法。
【請求項６】
請求項５に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【請求項７】
第１の記憶部と、
第２の記憶部を有する操作部と、
画像形成装置についての初期設定を受け付けて前記第１の記憶部に記憶する第１設定部と、
前記操作部による設定を受け付けて前記第２の記憶部に記憶する第２設定部と、
設定値が、前記第１設定部によって設定された第１設定値であるか、又は、前記第２設定部によって設定された第２設定値であるかを判定する判定部と、
前記判定部による判定結果に基づいて、前記第１設定値及び前記第２設定値を含む設定値のうち、前記第２設定値を前記操作部に検査させる検査部と
を備える
画像形成装置。
【請求項８】
第１の記憶部と、
第２の記憶部を有する操作部とを有する画像形成装置が行う情報処理方法であって、
画像形成装置が、画像形成装置についての初期設定を受け付けて前記第１の記憶部に記憶する第１設定手順と、
画像形成装置が、前記操作部による設定を受け付けて前記第２の記憶部に記憶する第２設定手順と、
画像形成装置が、設定値が、前記第１設定手順で設定された第１設定値であるか、又は、前記第２設定手順で設定された第２設定値であるかを判定する判定手順と、
画像形成装置が、前記判定手順による判定結果に基づいて、前記第１設定値及び前記第２設定値を含む設定値のうち、前記第２設定値を前記操作部に検査させる検査手順と
を含む
情報処理方法。
【請求項９】
請求項８に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、操作画面を用いて、複合機等の画像形成装置を設定する方法が知られている。
【０００３】
そして、複合機本体のシステム設定について、操作画面によって設定された設定値を複合機が有する記憶装置に記憶させる技術が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、本体部及び操作部が別の構成となっている画像形成装置等であると、本体部側と、操作部側とに分かれて設定値がそれぞれ記憶される場合がある。具体的には、本体部側に、例えば、コピー、スキャン及びシステムにおける様々な初期設定等の設定値が記憶される。一方で、操作部における音量レベル、操作部におけるアプリケーションソフトウェアのインストール若しくはアンインストール等のような操作部ごとの固有の設定値、又は、操作部にインストールされたアプリケーションの設定値等は、操作部側に記憶される。このような場合では、本体部側で扱うのが難しい設定値が含まれる場合がある。そのため、検査がされない設定値が発生する場合がある。
【０００５】
本発明の一態様は、画像形成装置において、本体部及び操作部の設定値を検査することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一実施形態による、操作装置を有する画像形成装置は、
前記画像形成装置についての初期設定を受け付けて第１の記憶部に記憶する第１設定部と、
前記操作装置による設定を受け付けて前記操作装置が有する第２の記憶部に記憶する第２設定部と、
設定値が、前記第１設定部によって設定された第１設定値であるか、又は、前記第２設定部によって設定された第２設定値であるかを判定する判定部と、
前記判定部による判定結果に基づいて、前記第１設定値及び前記第２設定値を含む設定値のうち、前記第２設定値を前記操作装置に検査させる検査部と
を備えることを特徴とする。
【発明の効果】
【０００７】
本発明の実施形態によって、画像形成装置において、本体部及び操作部の設定値を検査することができる。
【図面の簡単な説明】
【０００８】
【図１】画像形成装置の全体構成例を示す概要図である。
【図２】操作装置及び本体部のハードウェア構成例を示すブロック図である。
【図３】操作装置の外観例を示す概要図である。
【図４】操作装置及び本体部のソフトウェア構成例を示すブロック図である。
【図５】画像形成装置によるシステム構成例を示すブロック図である。
【図６】カテゴリの選択を行う操作画面の例を示す図である。
【図７】詳細な設定を行う操作画面の例を示す図である。
【図８】メニュー構成例を示す図である。
【図９】操作画面の遷移例を示す図である。
【図１０】第３階層画面を生成するためのコード例を示す図である。
【図１１】第４階層画面を生成するためのコード例を示す図である。
【図１２】全体処理例を示すシーケンス図である。
【図１３】検査を要求するソースコードの例である。
【図１４】検査結果を返答するソースコードの例である。
【図１５】設定値を設定するための操作画面を生成及び表示する処理例を示すシーケンス図である。
【図１６】設定値の問い合わせを行うソースコードの例である。
【図１７】設定値の問い合わせに対する返答を行うソースコードの例である。
【図１８】画面描画処理の一例のイメージ図である。
【図１９】設定値の更新及び表示する処理例を示すシーケンス図である。
【図２０】設定を行う処理例を示すシーケンス図である。
【図２１】処理結果例を示す図である。
【図２２】共通ルール等の取得を示すソースコードの例である。
【図２３】画像形成装置の機能構成例を示す機能ブロック図である。
【発明を実施するための形態】
【０００９】
以下、発明を実施するための最適な形態について、図面を参照して説明する。
【００１０】
＜画像形成装置例＞
図１は、画像形成装置の全体構成例を示す概要図である。図示するように、画像形成装置１００は、例えば、ＭＦＰ（Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）等である。そのため、例えば、画像形成装置１００は、コピー機能、スキャナ機能、ファクシミリ機能及びプリンタ機能等の画像処理機能を有する。なお、画像形成装置１００は、他に機能（例えば、エラー表示機能等である。）を更に有してもよい。
【００１１】
この例では、画像形成装置１００は、操作装置１１０を有する構成である。一方で、画像形成装置１００は、操作装置１１０以外の構成（以下「本体部１２０」という。）を有する構成である。
【００１２】
操作装置１１０に対して、ユーザは、画像形成装置１００に対する様々な操作を入力する。そして、画像形成装置１００は、操作装置１１０及び本体部１２０により、操作に基づいた画像処理を実行する。
【００１３】
＜ハードウェア構成例＞
図２は、操作装置及び本体部のハードウェア構成例を示すブロック図である。まず、操作装置１１０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、以下「ＣＰＵ２１１」という。）、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ、以下「ＲＯＭ２１２」という。）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、以下「ＲＡＭ２１３」という。）、フラッシュメモリ２１４、操作パネル２１５、接続インタフェース（以下「接続Ｉ／Ｆ２１６」という。）、通信インタフェース（以下「通信Ｉ／Ｆ２１７」という。）を有するハードウェア構成の装置である。また、図示するように、これらのハードウェア資源は、バス２１８によって相互に接続される。
【００１４】
ＣＰＵ２１１は、演算装置及び制御装置の例である。そして、ＣＰＵ２１１は、ＲＡＭ２１３等の主記憶装置をワークエリアとして、ＲＯＭ２１２又はフラッシュメモリ２１４等に記憶された各種プログラムを実行する。このような制御及び演算により、ＣＰＵ２１１は、操作装置１１０等を制御し、かつ、各種機能を実現する。
【００１５】
フラッシュメモリ２１４は、不揮発性の記憶媒体の例である。例えば、フラッシュメモリ２１４は、プログラム及びデータ等を記憶する。
【００１６】
操作パネル２１５は、入力装置及び出力装置の例である。すなわち、操作パネル２１５は、操作画面及び処理結果等を表示する。一方で、操作パネル２１５は、ユーザによる操作を受け付ける。
【００１７】
接続Ｉ／Ｆ２１６は、通信路２３０を介して本体部１２０と通信をするインタフェースである。例えば、接続Ｉ／Ｆ２１６は、コネクタ及びケーブル等である。具体的には、接続Ｉ／Ｆ２１６は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等によって通信を行う。
【００１８】
通信Ｉ／Ｆ２１７は、ネットワーク２６０を介して外部装置と通信をするインタフェースである。例えば、通信Ｉ／Ｆ２１７は、アンテナ等である。図示する例では、通信Ｉ／Ｆ２１７は、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）ＡＰ（アクセスポイント）（以下「無線ＬＡＮＡＰ２４０」という。）に接続し、通信を行う。
【００１９】
一方で、本体部１２０は、例えば、ＣＰＵ２２１、ＲＯＭ２２２、ＲＡＭ２２３、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ、以下「ＨＤＤ２２４」という。）、エンジン部２２５、接続Ｉ／Ｆ２２６及び通信Ｉ／Ｆ２２７を有するハードウェア構成の装置である。また、図示するように、これらのハードウェア資源は、バス２２８によって相互に接続される。
【００２０】
ＣＰＵ２２１は、演算装置及び制御装置の例である。すなわち、図示するように、本体部１２０用となる演算装置及び制御装置は、操作装置１１０用のＣＰＵ２１１とは別であるハードウェア構成が望ましい。
【００２１】
ＲＯＭ２２２及びＲＡＭ２２３は、ＣＰＵ２２１と同様に、本体部１２０用の記憶装置の例である。したがって、ＣＰＵ２２１は、ＲＡＭ２２３等の主記憶装置を利用して、ＲＯＭ２２２及びＨＤＤ２２４等の補助記憶装置に記憶されるプログラム等に基づく処理を実行する。
【００２２】
エンジン部２２５は、コピー機能、スキャナ機能、ファクシミリ機能及びプリンタ機能等の画像処理機能を実現するための処理装置等である。具体的には、エンジン部２２５は、例えば、処理ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等である。具体的には、エンジン部２２５は、原稿をスキャンして読み取るスキャナ、用紙等のシート材への印刷を行うプロッタ、ファクシミリ通信を行う通信部又はこれらの組み合わせを有する。なお、エンジン部２２５は、印刷済みのシート材を仕分ける装置、いわゆるフィニッシャ又は原稿を自動給送するＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒ）等を含んでもよい。
【００２３】
接続Ｉ／Ｆ２２６は、通信路２３０を介して操作装置１１０と通信をするインタフェースである。例えば、接続Ｉ／Ｆ２１６は、コネクタ及びケーブル等である。具体的には、接続Ｉ／Ｆ２２６は、ＵＳＢ等によって通信を行う。
【００２４】
通信Ｉ／Ｆ２２７は、ネットワーク２６０を介して外部装置と通信をするインタフェースである。例えば、通信Ｉ／Ｆ２２７は、ケーブル２５０等である。
【００２５】
＜操作装置の例＞
図３は、操作装置の外観例を示す概要図である。例えば、操作装置１１０は、図示するような外観の装置である。具体的には、操作装置１１０は、例えば、操作パネル２１５等により、画像形成装置が提供する様々な機能の操作画面を表示する。この例では、操作画面は、「コピー」、「スキャナ」、「ファックス」及び「プリンタ」の機能に対する操作を受け付ける。また、図示する例は、いわゆるトップ画面であり、例えば、「コピー」のボタンが押されると、操作画面は、「コピー」の機能について詳細な設定を行う用の操作画面を表示する。
【００２６】
また、操作画面においてボタンが押されると、次に遷移して表示される画面又は設定を行う設定値等は、メニュー構成等によって設定される。
【００２７】
なお、操作装置１１０は、図示するような操作パネル２１５で実現されるに限られない。例えば、操作パネル２１５には、タッチパネル以外に、ハードキー等があってもよい。すなわち、操作画面を操作するのにインタフェースとなる構成は、図示する以外の構成でもよい。
【００２８】
さらに、図示するように、操作画面は、ヘルプボタン３００を有する。以下、ヘルプボタンが押されると、あらかじめ設定されるヘルプコンテンツが画面上に展開される例で説明する。このように、ヘルプボタン３００を押す操作によって、ユーザは、いわゆるヘルプ及びマニュアル等を参照することができる。なお、ヘルプコンテンツの参照方法は、ヘルプボタン３００を押す操作以外の方法でもよい。また、参照されるヘルプコンテンツを提供するファイルは、操作装置１１０又は本体部１２０がファイルを記憶してもよいし、オンラインでネットワークを介して参照されてもよい。
【００２９】
＜操作装置及び本体部のソフトウェア構成例＞
図４は、操作装置及び本体部のソフトウェア構成例を示すブロック図である。図示する例は、操作装置１１０及び本体部１２０にインストールされるプログラムによって構成されるソフトウェアの階層構造を示す。
【００３０】
まず、本体部１２０について説明する。この例では、本体部１２０には、補助記憶装置等に、例えば、アプリケーション層４２１、サービス層４２２及びＯＳ層（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ層、以下「ＯＳ層４２３」という。）を構築するプログラムがインストールされる。
【００３１】
アプリケーション層４２１に区別されるプログラムは、画像形成装置１００が有するハードウェア資源を動作させて様々な機能を実現する。具体的には、アプリケーション層４１１に区別されるプログラムは、例えば、コピーアプリ、ファクシミリアプリ、スキャンアプリ及びプリンタアプリ等である。
【００３２】
サービス層４２２に区分されるプログラムは、アプリケーション層４２１と、ＯＳ層４２３との間に介在するプログラムである。例えば、サービス層４２２に区分されるプログラムは、本体部１２０が有するハードウェア資源をアプリケーション層４２１のプログラムが利用したり、又は、本体部１２０が有するハードウェア資源の状態をアプリケーション層４２１に通知したりするインタフェース等を実現する。
【００３３】
また、サービス層４２２に区分されるプログラムは、ハードウェア資源に対する動作要求を受け付けたり、又は、受け付けた動作要求の調停を行ったりする。ほかにも、サービス層４２２に区分されるプログラムは、ハードウェア資源において検知されたエラーをアプリケーション層４２１にエラー通知として送信する。なお、サービス層４２２が受け付ける動作要求には、例えば、スキャナによる読み取り、又は、プロッタによる印刷を行う等の動作要求が含まれる。
【００３４】
なお、サービス層４２２に区分されるプログラムが実現させるインタフェースとしての役割は、操作装置１１０のアプリケーション層４１１に対しても同様である。すなわち、操作装置１１０のアプリケーション層４１１に区分されるプログラムは、サービス層４２２にアクセスして本体部１２０のハードウェア資源を動作させ、画像処理機能等を実現させることができる。
【００３５】
ＯＳ層４２３に区分されるプログラムは、いわゆる基本ソフトウェアと呼ばれるプログラム等である。そして、ＯＳ層４２３に区分されるプログラムは、本体部１２０が有するハードウェア資源を制御する基本機能を提供する。まず、サービス層４２２に区分されるプログラムは、アプリケーション層４２１に区分されるプログラムが発するハードウェア資源に対する動作要求をＯＳ層４２３が解釈可能なコマンドに変換してＯＳ層４２３に渡す。そして、ＯＳ層４２３に区分されるプログラムが当該コマンドを実行することにより、ハードウェア資源に対する動作要求に基づいて、画像処理機能が実現される。また、ＯＳ層４２３に区分されるプログラムが実行されると、ハードウェア資源は、検知されたエラーを受信する。次に、ハードウェア資源は、受信したエラー通知をアプリケーション層４２１に対して送信するサービス層４２２に渡す。
【００３６】
次に、操作装置１１０について説明する。この例では、操作装置１１０には、補助記憶装置等に、例えば、アプリケーション層４１１、サービス層４１２及びＯＳ層４１３を構築するプログラムがインストールされる。
【００３７】
ただし、アプリケーション層４１１に区分されるプログラムが実現する機能及びサービス層４１２が受け付け可能な動作要求の種類等は、本体部１２０とは異なる。具体的には、操作装置１１０において、アプリケーション層４１１に区分されるプログラムは、主に本体部１２０によって実現される画像処理機能に関する操作及び表示を行うためのユーザインタフェース機能を提供する。
【００３８】
なお、この例では、操作装置１１０と、本体部１２０とで、それぞれのＯＳは、独立して動作する。また、操作装置１１０及び本体部１２０が相互に通信可能であれば、それぞれのＯＳは、同じ種類でなくともよい。例えば、操作装置１１０は、Ａｎｄｒｏｉｄ（登録商標）を用い、かつ、本体部１２０は、Ｌｉｎｕｘ（登録商標）を用いる構成等でもよい。
【００３９】
このように、画像形成装置１００では、例えば、操作装置１１０及び本体部１２０が異なるＯＳにより制御される。そのため、操作装置１１０及び本体部１２０の間における通信は、一装置内のプロセス間通信ではなく、異なる装置間の通信となる。例えば、通信は、操作装置１１０が受け付けたユーザによる操作を本体部１２０へ送信するコマンド通信、又は、本体部１２０が操作装置１１０へ表示画面の表示を指示するイベント通信（例えば、エラー通知又はエラー解除通知等である。）等である。
【００４０】
＜システム構成例＞
図５は、画像形成装置によるシステム構成例を示すブロック図である。例えば、図示するように、画像形成装置１００は、操作装置側に操作装置制御部５０１を有し、本体側に本体制御部５０２を有するシステム構成である。そして、本体制御部５０２には、外部装置からアクセスが可能である。図示する例では、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ、以下「ＰＣ５００」という。）が外部装置の例である。
【００４１】
操作装置制御部５０１は、操作装置を制御する構成である。例えば、操作装置制御部５０１は、図示するように、クライアントアプリ５０３を有する構成である。さらに、操作装置には、インストールされたアプリケーションソフトウェアに応じたアプリケーション機能が搭載される。図示する例では、操作装置に、コピーアプリ５０６、ファクシミリアプリ５０７及びスキャンアプリ５０８等のアプリケーションがある例となる。なお、アプリケーションの構成は、インストールされるプログラムによって定まる。したがって、アプリケーションには、ヘルプサービス等があってもよい。
【００４２】
クライアントアプリ５０３は、画像形成装置１００に対する操作を受け付ける操作画面を表示するアプリケーションの例である。例えば、クライアントアプリ５０３は、図示するように、ブラウザ（ｂｒｏｗｓｅｒ、以下「ブラウザ５０４」という。）及び操作部データベース５０５を有する構成である。
【００４３】
ブラウザ５０４は、例えば、操作画面等を表示する。なお、操作画面は、ブラウザ５０４以外のソフトウェアで表示されてもよい。したがって、ブラウザ５０４は、操作画面を表示できれば、操作装置にあらかじめインストールされるネイティブアプリケーション等のソフトウェアでもよい。
【００４４】
操作部データベース５０５は、操作装置制御部５０１におけるアプリケーションの設定値を管理する構成の例である。したがって、この例では、操作部データベース５０５は、それぞれのアプリケーションが用いる設定値を一括して管理する。具体的には、操作部データベース５０５は、それぞれのアプリケーションと設定値を送受信する。また、操作部データベース５０５によって管理される項目は、インストールされるプログラムによって追加される場合がある。なお、操作部データベース５０５は、クライアントアプリ５０３が有さず、他のソフトウェア等が有する構成でもよい。
【００４５】
コピーアプリ５０６は、画像形成装置１００によってコピーを行うためのアプリケーションである。
【００４６】
ファクシミリアプリ５０７は、画像形成装置１００によってファクシミリ通信を行うためのアプリケーションである。
【００４７】
スキャンアプリ５０８は、画像形成装置１００によって用紙等に記載された画像をスキャンするためのアプリケーションである。
【００４８】
そして、例えば、コピーアプリ５０６、ファクシミリアプリ５０７及びスキャンアプリ５０８等のアプリケーションでは、それぞれのアプリ内において、固有の設定値を管理する。なお、設定値を設定する手段等は、アプリケーションが有さなくともよい。
【００４９】
本体制御部５０２は、画像形成装置１００の本体部を制御する構成である。例えば、本体制御部５０２は、図示するように、ウェブサーバモジュール５０９を有する構成である。また、この例では、ウェブサーバモジュール５０９は、メニュー構成ファイル５１０及び本体部データベース５１１等を有する構成である。
【００５０】
ウェブサーバモジュール５０９は、例えば、本体部側において、設定値を一括して管理する。また、図示するように、ウェブサーバモジュール５０９は、クライアントアプリ５０３等と通信を行う。そして、ウェブサーバモジュール５０９は、通信によって取得できるメニュー等をマージしてメニュー構成を生成する。この例では、メニュー構成を示すデータが、メニュー構成ファイル５１０となる。
【００５１】
メニュー構成ファイル５１０は、画像形成装置１００における設定値のメニュー構成を記憶するデータである。具体的には、メニュー構成ファイル５１０は、メニュー構成において、それぞれの設定値がどのカテゴリに位置するか、及び、メニュー構成におけるカテゴリがどのような階層構造であるか等を示す。なお、メニュー構成ファイル５１０の詳細は、後述する。
【００５２】
本体部データベース５１１は、本体制御部５０２における設定値を管理する構成の例である。したがって、この例では、本体部データベース５１１は、それぞれのモジュールが用いる設定値を一括して管理する。具体的には、本体部データベース５１１は、それぞれのモジュールと設定値を送受信する。また、本体部データベース５１１によって管理される項目は、インストールされるプログラムによって追加される場合がある。なお、本体部データベース５１１は、ウェブサーバモジュール５０９が有さず、他のモジュール等が有する構成でもよい。
【００５３】
さらに、本体部には、インストールされたソフトウェアに応じたモジュールが搭載される。図示する例では、本体部に、ネットワークモジュール５１２、スキャンモジュール５１３及び印刷モジュール５１４等のモジュールがある例となる。なお、モジュール構成は、インストールされるプログラム等によって定まる。なお、モジュールは、例えば、ファックス等でもよい。
【００５４】
ネットワークモジュール５１２は、ネットワークを用いて通信を行う。
【００５５】
スキャンモジュール５１３は、スキャナ等を用いて画像のスキャンを行う。
【００５６】
印刷モジュール５１４は、印刷装置等を用いて用紙等に画像形成を行う。
【００５７】
ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ、以下単に「ＧＵＩ５１５」という。）は、ウェブサーバモジュール５０９等にＨＴＴＰリクエストを行う。そして、ＧＵＩ５１５は、ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を表示したり、設定値をポストしたりする。
【００５８】
第１設定モジュール５１６及び第２設定モジュール５１７は、データベース等を用いて、設定値を設定したり、設定値を検査したりする。
【００５９】
ＰＣ５００は、情報処理装置である。そして、ＰＣ５００は、図示するように、画像形成装置１００と同じネットワークに接続する。また、この例では、ＰＣ５００は、ブラウザを有する。そのため、ウェブサーバモジュール５０９がＰＣ５００からのアクセスを許可すると、ＰＣ５００は、画像形成装置１００の設定を遠隔で行うことができる。なお、ＰＣ５００は、なくともよい。また、ＰＣ５００は、情報処理装置であれば、他の種類であってもよい。
【００６０】
＜操作画面例＞
上記のようなシステム構成によって、例えば、以下のような操作画面の表示及び画面の遷移が可能となる。
【００６１】
図６は、カテゴリの選択を行う操作画面の例を示す図である。以下、操作装置、すなわち、クライアントアプリによって、図示するような第１画面６００が表示される例で説明する。
【００６２】
第１画面６００は、カテゴリごとに設定を分けて表示する。図示する例では、第１画面６００における「地紋、印字設定」、「データ管理」、「文書管理」、「セキュリティ」、「機能制限」、「認証・課金設定」及び「ユーザ認証管理」がカテゴリ名を示し、かつ、選択を行うボタンとなるＧＵＩの例である。これらのＧＵＩのうち、いずれかを押す操作を行うと、ユーザは、それぞれのカテゴリについて詳細な設定を行う、及び、詳細な設定の内容を確認することができる。
【００６３】
以下、例えば、「ユーザ認証管理」のボタン６０１を押す操作を行う場合を例に説明する。このような操作を行うと、第１画面６００は、例えば、以下のような画面に遷移する。
【００６４】
図７は、詳細な設定を行う操作画面の例を示す図である。例えば、第１画面６００においてボタン６０１が押されると、図示するような第２画面７００が表示されるように操作画面が遷移する。
【００６５】
第２画面７００は、「ユーザ認証管理」において、設定値を確認及び設定するための操作画面である。具体的には、第２画面７００において、図示するように、「スキャナ」等を選択したり、又は、プルダウンメニュー中から選択肢を選んだりすることで、ユーザは、設定値を設定できる。また、この例では、「ＯＫ」というボタンが押されると、設定値が確定し、設定値が更新される。
【００６６】
以上のように、操作画面は、例えば、第１画面６００から第２画面７００に遷移する。このように、操作画面をどのように遷移されるか、すなわち、複数の操作画面の関係は、メニュー構成ファイル等で定まる。さらに、操作画面において、設定の対象となる設定値も、以下に説明する例では、メニュー構成ファイルで定まるとする。
【００６７】
＜メニュー構成及びメニュー構成ファイルの例＞
図８は、メニュー構成例を示す図である。以下、図示するようなメニュー構成８００を例に説明する。具体的には、この例では、「ＴＯＰ」が、最も上位の階層となる、いわゆるツリー構造のメニュー構成である。したがって、メニュー構成８００では、「ＴＯＰ」となる操作画面において、「システム」、「ファックス」、「スキャナ」及び「プリンタ」等のメニューが選択できる。次に、例えば、「システム」となる操作画面では、「基本」、「ネットワーク」及び「管理者」等のメニューが選択できる。このように、上位の階層となる操作画面で遷移する先となる下位の階層が選択できる。そして、選択が行われると、操作画面は、下位の階層に遷移する。以下、「ＴＯＰ」となる階層を「第１階層」という。そして、「ＴＯＰ」の下にある層を「第２階層」という。同様にして、この例は、「第３階層」、「第４階層」及び「第５階層」が更にある階層構造とする。
【００６８】
このように、メニュー構成ファイルは、メニュー構成８００を定義するデータである。したがって、メニュー構成ファイルがあると、「ＴＯＰ」から設定値を設定する操作画面等までが、どのような構造であるかが特定できる。
【００６９】
例えば、図示するようなメニュー構成８００では、以下のような遷移となる。
【００７０】
図９は、操作画面の遷移例を示す図である。以下、メニュー構成８００における「システム」を操作する上で表示される図示するような操作画面を例に説明する。
【００７１】
この例では、まず、「ＴＯＰ」から「システム」に切り替える操作がされると、図９（Ａ）に示す画面（以下「第２階層画面９０１」という。）が表示されるとする。図示するように、第２階層画面９０１は、メニュー構成ファイル等に基づいて、「基本」、「ネットワーク」及び「管理者」という３つのメニューをユーザに選択させる操作画面の例である。
【００７２】
すなわち、第２階層画面９０１において、選択が行われると、操作画面は、図９（Ａ）のような表示から図９（Ｂ）のような表示に遷移する。以下、第２階層画面９０１から、図９（Ｂ）に示す画面（以下「第３階層画面９０２」という。）に操作画面が遷移する例で説明する。
【００７３】
また、この例では、さらに、第３階層画面９０２において選択が行われると、図９（Ｂ）のような表示から図９（Ｃ）のような表示に遷移する。以下、第３階層画面９０２から、図９（Ｃ）に示す画面（以下「第４階層画面９０３」という。）に操作画面が遷移する例で説明する。
【００７４】
この例は、第２階層画面９０１及び第３階層画面９０２が階層を変更するための操作画面の例である。すなわち、この例では、第２階層画面９０１及び第３階層画面９０２は、いわゆるリンクとなる選択肢で構成される画面である。
【００７５】
一方で、第４階層画面９０３は、「項目Ａ」、「項目Ｂ」及び「項目Ｃ」についての設定値を設定する操作画面である。
【００７６】
これらの操作画面は、例えば、以下のようなコードで定まる定義に基づいて生成される。
【００７７】
図１０は、第３階層画面を生成するためのコード例を示す図である。例えば、第３階層画面９０２は、図示するようなコードに基づいて生成される。
【００７８】
図１１は、第４階層画面を生成するためのコード例を示す図である。例えば、第４階層画面９０３は、図示するようなコードに基づいて生成される。
【００７９】
具体的には、「ｉｄ」は、各操作画面を識別する番号等である。すなわち、「ｉｄ」が特定できると、コード等のデータにおいて、どの操作画面を指すかが特定できる。
【００８０】
「ｔｉｔｌｅ」は、カテゴリの名称を示すデータである。この例では、「ｔｉｔｌｅ」と、メニュー構成８００におけるブロックとが一致する。また、この例では、「ｔｉｔｌｅ」に入力された文字が、操作画面において左上に表示される。
【００８１】
「ｔｙｐｅ」には、「ｃａｔｅｇｏｒｙ」又は「ｗｉｎｄｏｗ」が設定される。「ｃａｔｅｇｏｒｙ」は、第２階層画面９０１及び第３階層画面９０２のような階層を変更させる用の操作画面であることを定義する。一方で、「ｗｉｎｄｏｗ」は、第４階層画面９０３のような設定値を操作する用の操作画面であることを定義する。
【００８２】
「ｃｈｉｌｄｒｅｎ」は、下層となる操作画面を定義する。例えば、メニュー構成８００では、第４階層の「設定画面」の下層となる第５階層には、「項目Ａ」、「項目Ｂ」及び「項目Ｃ」の操作画面が定義されている。したがって、第４階層画面９０３には、「ｃｈｉｌｄｒｅｎ」として、「項目Ａ」、「項目Ｂ」及び「項目Ｃ」のそれぞれの「ｉｄ」が定義される。このようにして、メニュー構成８００のようなツリー構造が構成される。
【００８３】
＜設定値例＞
例えば、第４階層画面９０３等のような設定画面によって、「項目Ａ」、「項目Ｂ」及び「項目Ｃ」のような設定値が設定可能である。そして、設定値及び設定画面は、例えば、テーブル又はデータベース等の形式で記憶される。具体的には、メニュー構成８００の例では、「項目Ａ」についてテーブル（以下「第１テーブル８０１」という。）に記憶されるとする。同様に、メニュー構成８００の例では、「項目Ｂ」についてテーブル（以下「第２テーブル８０２」という。）に記憶されるとする。
【００８４】
具体的には、例えば、「項目Ｂ」は、第２テーブル８０２によって下記（表１）のように定義される。
【００８５】
【表１】
2020082699.tif 000003
上記（表１）において、「ｉｄ」は、設定値に割り当てられる識別番号等である。
【００８６】
「ｔｉｔｌｅ」は、各設定値及び設定画面の名称である。
【００８７】
「ｔｙｐｅ」は、設定値を入力する形式の種類を示す。例えば、「ｔｙｐｅ」には、「数値入力」、「択一選択」又は「文字入力」等が設定される。そして、「ｔｙｐｅ」が「数値入力」と設定されると、設定値は、数値で設定される。また、「ｔｙｐｅ」が「択一選択」と設定されると、設定値は、あらかじめ用意される選択肢から選ぶように設定される。さらに、「ｔｙｐｅ」が「文字入力」と設定されると、設定値は、文字等で設定される。
【００８８】
「ｍｉｎ」は、最小値の設定である。したがって、「ｍｉｎ」より小さい値が設定値に設定されると、エラー等となる。
【００８９】
「ｍａｘ」は、最大値の設定である。したがって、「ｍａｘ」より大きい値が設定値に設定されると、エラー等となる。
【００９０】
「ｓｔｅｐ」は、ステップ数の設定である。
【００９１】
「ａｃｃｅｓｓ  ｒｏｌｌ」は、アクセス権限である。具体的には、「管理者」又は「ゲスト」等が設定される。例えば、「管理者」と設定されると、設定値は、管理者権限のあるユーザでないと設定できない等である。
【００９２】
「ｖａｌｕｅ」は、設定値の取得先である。
【００９３】
また、設定値には、「周辺機器」等があってもよい。この例では、「項目Ｂ」は、画像形成装置に、周辺機器として「フィニッシャ」が接続された場合に用いられる設定値であることを示す。このようにして、「周辺機器」は、設定値が関係する周辺機器の種類等を示す。このように設定値と周辺機器が対応付けされると、各設定値に対応する周辺機器の種類が特定できる。
【００９４】
そして、上記（表１）のようなテーブルは、本体部と、操作装置とに別々に記憶される。
【００９５】
例えば、以上のようなメニュー構成ファイル及びテーブル等があると、画像形成装置は、操作画面を表示することができる。
【００９６】
＜全体処理例＞
図１２は、全体処理例を示すシーケンス図である。以下、ユーザ１２０１が操作装置１１０で設定値を設定する場合を例に説明する。
【００９７】
ステップＳ１０１では、ブラウザ５０４は、設定を受け付ける。例えば、ユーザ１２０１は、ブラウザ５０４上で設定における文字列等を入力する操作を行う。以下、文字列が入力された場合を例に説明する。
【００９８】
ステップＳ１０２では、ブラウザ５０４は、文字列等を通知する。
【００９９】
ステップＳ１０３では、ＧＵＩ５１５は、文字列等を検査する。具体的には、ステップＳ１０３では、操作装置１１０及び本体部１２０で共通して使用できるルール（以下「共通ルール」という。）によって検査が可能な範囲で文字列を検査する。検査については、詳細を後述する。
【０１００】
次に、検査の結果、エラーがあると（［エラーありの場合］）、ＧＵＩ５１５は、ステップＳ１０４に進む。一方で、検査の結果、エラーがないと（［エラーなしの場合］）、ＧＵＩ５１５は、ステップＳ１０７に進む。
【０１０１】
ステップＳ１０４、ステップＳ１０５及びステップＳ１０６では、ブラウザ５０４及びＧＵＩ５１５は、エラーを表示する。このようにすると、ユーザ１２０１は、入力した設定値にエラーがあることが分かる。
【０１０２】
ステップＳ１０７では、ＧＵＩ５１５は、設定値が、本体部の設定値であるか、又は、操作装置の設定値であるかの判定を要求する。
【０１０３】
ステップＳ１０８では、ウェブサーバモジュール５０９は、設定値が、本体部の設定値であるか、又は、操作装置の設定値であるかを判定する。例えば、判定は、「ｉｄ」等に基づいて行われる。具体的には、「ｉｄ」の一部に、判定に用いるデータが、あらかじめ設定されるとする。このようにすると、ウェブサーバモジュール５０９は、「ｉｄ」の一部を用いて、本体部の設定値であるか、又は、操作装置の設定値であるかを判定する。
【０１０４】
次に、判定結果で操作装置の設定値であると判定されると（［操作装置の場合］）、ウェブサーバモジュール５０９は、ステップＳ１０９に進む。一方で、判定結果で本体部の設定値であると判定されると（［本体部の場合］）、ウェブサーバモジュール５０９は、ステップＳ１１７に進む。
【０１０５】
ステップＳ１０９では、ウェブサーバモジュール５０９は、クライアントアプリ５０３に検査を要求する。例えば、操作装置によって検査させる場合には、以下のステップＳ１１０及びステップＳ１１１のような処理等で検査が実現される。なお、検査方法は、以下に説明する方法に限られない。
【０１０６】
ステップＳ１１０では、クライアントアプリ５０３は、操作装置にあらかじめ設定されるルール（以下「操作部ルール」という。）に基づいて検査を行う。操作部ルール及び検査については後述する。
【０１０７】
ステップＳ１１１では、クライアントアプリ５０３は、検査の対象となる設定値が設定可能か否かを第２設定モジュール５１７に問い合わせて検査する。
【０１０８】
ステップＳ１１２では、クライアントアプリ５０３は、ステップＳ１１０及びステップＳ１１１による検査の結果を返答する。
【０１０９】
具体的には、例えば、以下のようなソースコードが用いられる。なお、ソースコードは、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）形式の例である。ただし、ソースコードは、他の形式で作成されてもよい。
【０１１０】
図１３は、検査を要求するソースコードの例である。ステップＳ１０９は、例えば、図示するようなソースコードが用いられる。
【０１１１】
「ｒｅｑｕｅｓｔＩｄ」は、検査を要求する、いわゆるリクエストの識別番号等である。したがって、検査の要求（ステップＳ１０９）と、対応する返答（ステップＳ１１２）のそれぞれの「ｒｅｑｕｅｓｔＩｄ」は、一致する。
【０１１２】
「ｃｈｅｃｋ」は、検査の対象を示す。
【０１１３】
「ｌａｎｇ」は、言語を指定する。図示するように、「ｊａ」であると、日本語となる。
【０１１４】
「ｉｔｅｍｓ」は、検査に用いるデータである。具体的には、「ｉｔｅｍｓ」における「ｉｄ」は、設定値を識別するデータである。また、「ｉｔｅｍｓ」における「ｖａｌｕｅ」は、入力された設定値、すなわち、ステップＳ１０１で入力される設定値等である。
【０１１５】
そして、図示するようなリクエストに対して、例えば、クライアントアプリ５０３は、チェック関数等を実行して検査を行う。このような検査の結果をクライアントアプリ５０３は、例えば、以下のようなソースコードで返答する。
【０１１６】
図１４は、検査結果を返答するソースコードの例である。例えば、図１３に示すリクエストに対して、以下のような返答が行われる。
【０１１７】
図示するように、検査結果を示すコード（以下「検査結果コード１４０１」という。）が返答される。
【０１１８】
検査結果コード１４０１における「ｌｅｎｇｔｈ」は、設定値となる文字列の長さを検査した結果を示す。つまり、チェック関数を実行すると、設定値となる文字列の文字数等がカウントされる。そして、検査結果コード１４０１は、カウント数等を返答する。
【０１１９】
検査結果コード１４０１における「ｅｒｒｏｒ」は、設定値となる文字列にエラーがないか検査した結果を示す。つまり、チェック関数を実行すると、設定値となる文字列に、あらかじめ使用を禁止するように定められた文字が含まれていないかが検査できる。そして、エラーとなる設定値であると、例えば、図示するように、検査結果コード１４０１は、エラーの内容等を返答する。
【０１２０】
ステップＳ１１３では、ウェブサーバモジュール５０９は、操作装置に検査結果を通知する。
【０１２１】
ステップＳ１１４、ステップＳ１１５及びステップＳ１１６では、ブラウザ５０４及びＧＵＩ５１５は、エラーがある場合にはエラーを表示する。このようにすると、ユーザ１２０１は、入力した設定値にエラーがあることが分かる。
【０１２２】
一方で、本体部によって検査させる場合には、以下のステップＳ１１７及びステップＳ１１８のような処理等で検査が実現される。なお、検査方法は、以下に説明する方法に限られない。
【０１２３】
ステップＳ１１７では、ウェブサーバモジュール５０９は、本体部にあらかじめ設定されるルール（以下「本体部ルール」という。）に基づいて検査を行う。本体部ルール及び検査については後述する。
【０１２４】
ステップＳ１１８では、ウェブサーバモジュール５０９は、検査の対象となる設定値が設定可能か否かを第１設定モジュール５１６に問い合わせて検査する。
【０１２５】
ステップＳ１１９では、ウェブサーバモジュール５０９は、ステップＳ１１７及びステップＳ１１８による検査の結果を返答する。
【０１２６】
ステップＳ１２０、ステップＳ１２１及びステップＳ１２２では、ブラウザ５０４及びＧＵＩ５１５は、エラーがある場合にはエラーを表示する。このようにすると、ユーザ１２０１は、入力した設定値にエラーがあることが分かる。
【０１２７】
例えば、設定値を設定するための操作画面等は、以下のようにして生成及び表示される。
【０１２８】
＜設定値を設定するための操作画面の表示例＞
図１５は、設定値を設定するための操作画面を生成及び表示する処理例を示すシーケンス図である。例えば、第３階層画面９０２において、「設定画面」を選択する操作が行われた場合を例に説明する。すなわち、図示する処理は、ユーザの指示に応じて（例えば、図９（Ｂ）において、ユーザが「設定画面」の項目を選択する操作を行うことに応じる。）、設定画面が表示される処理である。
【０１２９】
ステップＳ２０１では、クライアントアプリ５０３は、「設定画面」を選択する操作を受け付ける。
【０１３０】
ステップＳ２０２では、クライアントアプリ５０３は、設定値について問い合わせを行う。具体的には、クライアントアプリ５０３は、メニュー構成ファイル等から、図８に示すように、「設定画面」の下位層（この例では、第５階層を指す。）には、「項目Ａ」、「項目Ｂ」及び「項目Ｃ」の設定値があるメニュー構成であることが分かる。さらに、メニュー構成ファイル等があると、「項目Ａ」、「項目Ｂ」及び「項目Ｃ」を特定できる「ｉｄ」等が分かる。そこで、クライアントアプリ５０３は、例えば、「項目Ａ」の「ｉｄ」、「項目Ｂ」の「ｉｄ」及び「項目Ｃ」の「ｉｄ」をウェブサーバモジュール５０９の問い合わせに用いる。このようにして、クライアントアプリ５０３は、ウェブサーバモジュール５０９から、「項目Ａ」、「項目Ｂ」及び「項目Ｃ」のそれぞれの設定値をリクエストする。
【０１３１】
ステップＳ２０３では、ウェブサーバモジュール５０９は、問い合わせの対象となる設定値が本体部の設定値であるか、又は、対象となる設定値が操作装置の設定値であるかを判定する。
【０１３２】
この例では、「ｉｄ」が分かると、ウェブサーバモジュール５０９は、対象とする設定値が本体部の設定値であるか、又は、対象となる設定値が操作装置の設定値であるかを判定できるとする。具体的には、「ｉｄ」が以下のような構成及び設定であるとする。
【０１３３】
【表２】
2020082699.tif 000004
問い合わせには、例えば、上記（表２）における「ｉｄ」のようなデータが用いられる。この例では、「ｉｄ」のデータ（１６桁であるとする。）のうち、上位ビットの８桁と、下位ビットの８桁とに分けて、「ｉｄ」は、管理されるとする。
【０１３４】
上記のとおり、上位ビットが「３」であれば、問い合わせの対象となる設定値は、本体部の設定値であると判定される。一方で、上位ビットが「１１」であれば、問い合わせの対象となる設定値は、操作装置の設定値であると判定される。ほかにも、上位ビットが「１６７７７８７３９２」であれば、問い合わせの対象となる設定値は、サードベンダアプリの設定値であると判定される。そして、サードベンダアプリの設定値と判定されると、さらに、本体部の設定値であるか、又は、操作装置の設定値であるかが判定される。
【０１３５】
次に、下位ビットを用いると、ウェブサーバモジュール５０９等は、設定値を特定できるとする。すなわち、下位ビットの値は、設定値を識別できる番号である。
【０１３６】
続いて、問い合わせの対象となる設定値が本体部の設定値であると判定されると（［対象となる設定値が本体部の場合］）、ウェブサーバモジュール５０９は、ステップＳ２０４に進む。一方で、問い合わせの対象となる設定値が操作装置の設定値であると判定されると（［対象となる設定値が操作装置の場合］）、ウェブサーバモジュール５０９は、ステップＳ２０６に進む。
【０１３７】
ステップＳ２０４では、ウェブサーバモジュール５０９は、ネットワークモジュール５１２等のモジュールに設定値を問い合わせる。なお、問い合わせを行う先がネットワークモジュール５１２となるかは、設定値による。
【０１３８】
ステップＳ２０５では、ネットワークモジュール５１２等は、ウェブサーバモジュール５０９に設定値を返答する。
【０１３９】
ステップＳ２０４及びステップＳ２０５は、本体部の内部における通信となるため、いわゆるプロセス間の通信となる。このようにして、ウェブサーバモジュール５０９は、問い合わせの対象となっている設定値を各モジュールに問い合わせる。このようにすることで、ウェブサーバモジュール５０９は、設定されている最新の設定値を取得する。
【０１４０】
ステップＳ２０６では、ウェブサーバモジュール５０９は、操作部データベース５０５に設定値を問い合わせる。例えば、問い合わせは、以下のようなソースコードに基づいて行われる。
【０１４１】
図１６は、設定値の問い合わせを行うソースコードの例である。例えば、図示するような「ｉｄ」を指定するコード（以下「指定コード１６０１」という。）で問い合わせを行うと、「ｉｄ」が「０００００００３００００００６５」となる設定値について問い合わせが行われる。なお、問い合わせは、図示するように、「ｌａｎｇ」で「ｊａ」とするように、言語を日本語でする等の設定が含まれてもよい。
【０１４２】
ステップＳ２０７では、操作部データベース５０５は、問い合わせに応じてデータベースを読み込む。
【０１４３】
ステップＳ２０８では、操作部データベース５０５は、問い合わせに対して、設定値を返答する。例えば、以下のような返答が行われる。
【０１４４】
図１７は、設定値の問い合わせに対する返答を行うソースコードの例である。具体的には、図示するソースコードにおいて、「ｔｉｔｌｅ」等の設定値を返答するコード（以下「設定値コード１７０１」という。）がステップＳ２０６の問い合わせに対する返答となる。
【０１４５】
具体的には、指定コード１６０１における「ｉｄ」で指定された項目に対して、設定値コード１７０１は、アプリケーション又はモジュール等に設定されている最新の設定値を返す。
【０１４６】
ステップＳ２０９では、ウェブサーバモジュール５０９は、設定値等を通知する。すなわち、ウェブサーバモジュール５０９は、問い合わせにより、ステップＳ２０５又はステップＳ２０８等によって設定値を取得する。そして、ステップＳ２０９では、ウェブサーバモジュール５０９は、取得した設定値等をクライアントアプリ５０３に通知する。
【０１４７】
ステップＳ２１０では、クライアントアプリ５０３は、画面を描画する。
【０１４８】
ステップＳ２１１では、クライアントアプリ５０３は、描画した画面を表示する。
【０１４９】
例えば、操作画面等の画面は、以下のように描画及び表示される。
【０１５０】
図１８は、画面描画処理の一例のイメージ図である。図示するイメージ図は、オブジェクトに基づき、設定画面１８０４を描画する処理の例を示す。
【０１５１】
まず、システムプログラム等は、画面テンプレート１８０３における「画面タイトル表示位置」に、設定構造１８０１において、「親」（上位階層）の「ｔｉｔｌｅ」に設定される設定値「アプリケーションＥ設定」を描画する。また、システムプログラムは、設定構造１８０１の「子」となる階層の要素を順番に読み出す。次に、システムプログラムは、読み出した「子」の要素の設定種別に対応する描画テンプレート１８０２を画面テンプレートに対して描画する。
【０１５２】
例えば、システムプログラムは、まず、図示する例における「子」であるＩＤ「Ｅ００１」の要素の設定種別に対応する設定種別「数値型」の描画テンプレートを読み出す。次に、システムプログラムは、画面テンプレート１８０３に描画、すなわち、設定画面１８０４の「リセットタイマー」設定項目を描画する。
【０１５３】
ＩＤ「Ｅ００１」と同様に、システムプログラムは、図示する例における「子」であるＩＤ「Ｅ００２」の要素の設定種別に対応する設定種別「択一選択型」の描画テンプレートを読み出す。次に、システムプログラムは、画面テンプレート１８０３に描画、すなわち、設定画面１８０４の「デフォルトカラーモード」設定項目を描画する。
【０１５４】
さらに、ＩＤ「Ｅ００１」と同様に、システムプログラムは、図示する例における「子」であるＩＤ「Ｅ００３」の要素の設定種別に対応する設定種別「択一選択型」の描画テンプレートを読み出す。次に、システムプログラムは、画面テンプレート１８０３に描画し、すなわち、設定画面１８０４の「アプリケーションＥ省エネ優先設定」設定項目を描画する。
【０１５５】
このような描画の結果、システムプログラムは、追加された「アプリケーションＥ」等の設定画面１８０４を生成し、画像形成装置が用いるブラウザ等に表示させることができる。
【０１５６】
以上のような処理を行うと、例えば、図９（Ｃ）に示すような操作画面及び設定値を表示することができる。
【０１５７】
＜設定値の更新処理例＞
例えば、設定値を更新する場合には、以下のような処理が行われてもよい。
【０１５８】
図１９は、設定値の更新及び表示する処理例を示すシーケンス図である。すなわち、図示する処理は、表示された設定画面において、ユーザが設定値を変更する（例えば、図９（Ｃ）において、ユーザは、「項目Ａ」、「項目Ｂ」又は「項目Ｃ」の設定値を設定（変更）して「ＯＫ」ボタンを押下する操作を行う。）の処理である。以下、図１５に示す処理をベースにする例で説明する。したがって、図１５に示す処理と同一の処理には、同一の符号を付し、重複する説明を省略する。
【０１５９】
この例で示す処理は、ステップＳ３０１が加わる点が異なる。
【０１６０】
また、ステップＳ２０１では、ユーザ１２０１は、設定値を変更する操作を更に行う。
【０１６１】
ステップＳ２０２では、クライアントアプリ５０３は、確定した設定値の書き込みを要求する。
【０１６２】
ステップＳ２０４及びステップＳ２０６では、確定した設定値が、書き込みされる。
【０１６３】
ステップＳ２０５及びステップＳ２０８では、書き込みの結果が、通知される。
【０１６４】
ステップＳ２０９では、１つ上の階層の画面が、描画される。
【０１６５】
ステップＳ３０１では、操作部データベース５０５は、更新した設定値を通知する。
【０１６６】
また、画像形成装置は、設定値にエラーがなくなるまで、例えば、全体処理等を繰り返す。さらに、画像形成装置は、例えば、以下のように設定する処理を行ってもよい。
【０１６７】
図２０は、設定を行う処理例を示すシーケンス図である。
【０１６８】
ステップＳ４０１では、ユーザ１２０１は、設定を開始するボタンを押す操作を行う。
【０１６９】
ステップＳ４０２では、ブラウザ５０４は、設定を開始するボタンが押された通知を行う。
【０１７０】
ステップＳ４０３では、ＧＵＩ５１５は、設定値に必須な項目が入力されているかをチェックする。
【０１７１】
次に、必須な項目が入力不足であると（［入力不足の場合］）、ＧＵＩ５１５は、ステップＳ４０４に進む。一方で、必須な項目が入力不足でないと（［入力不足でない場合］）、ＧＵＩ５１５は、ステップＳ４０６に進む。
【０１７２】
ステップＳ４０４及びステップＳ４０５では、ブラウザ５０４及びＧＵＩ５１５は、必須な項目が入力不足であることを表示する。
【０１７３】
ステップＳ４０６では、ＧＵＩ５１５は、設定値を設定する要求を行う。
【０１７４】
ステップＳ４０７では、ウェブサーバモジュール５０９は、設定の対象となる設定値が操作装置の設定値か、又は、本体部の設定値かを判定する。
【０１７５】
次に、設定値が操作装置の設定値であると判定されると（［操作装置の場合］）、ウェブサーバモジュール５０９は、ステップＳ４０８に進む。一方で、設定値が本体部の設定値であると判定されると（［本体部の場合］）、ウェブサーバモジュール５０９は、ステップＳ４１５に進む。
【０１７６】
ステップＳ４０８では、ウェブサーバモジュール５０９は、操作装置に、設定値を設定する要求を行う。
【０１７７】
ステップＳ４０９では、クライアントアプリ５０３は、設定値が設定可能かを確認する。そして、設定値が設定可能であると、クライアントアプリ５０３は、ステップＳ４１０を行う。
【０１７８】
ステップＳ４１０では、クライアントアプリ５０３は、設定値を設定する。
【０１７９】
ステップＳ４１１では、クライアントアプリ５０３は、設定を行った結果を通知する。
【０１８０】
ステップＳ４１２、ステップＳ４１３及びステップＳ４１４では、ウェブサーバモジュール５０９、ブラウザ５０４及びＧＵＩ５１５は、設定を行った結果を表示する。
【０１８１】
ステップＳ４１５では、ウェブサーバモジュール５０９は、設定値が設定可能かを確認する。そして、設定値が設定可能であると、ウェブサーバモジュール５０９は、ステップＳ４１６を行う。
【０１８２】
ステップＳ４１６では、ウェブサーバモジュール５０９は、設定値を設定する。
【０１８３】
ステップＳ４１７、ステップＳ４１８及びステップＳ４１９では、ウェブサーバモジュール５０９、ブラウザ５０４及びＧＵＩ５１５は、設定を行った結果を表示する。
【０１８４】
例えば、以上のようにして、設定値の設定が行われる。
【０１８５】
＜処理結果例＞
図２１は、処理結果例を示す図である。全体処理を行うと、例えば、図示するような処理結果が得られる。
【０１８６】
まず、この例では、設定値に、「新規パスワード」となる文字が設定されるとする。以下、図示するような操作画面において、操作で入力される「新規パスワード」を示す文字を「パスワード２１０１」という。
【０１８７】
そして、この例では、パスワード２１０１は、設定できる文字数の最大値が「１２８」とルールで設定されているとする。すなわち、パスワード２１０１が本体部についての設定値であれば、本体部ルール等で検査される。一方で、パスワード２１０１が操作装置についての設定値であれば、操作部ルール等で検査される。
【０１８８】
この例では、文字数表示２１０２によって、検査結果が表示される。文字数表示２１０２は、例えば、図示するように、パスワード２１０１の文字数をカウントした値と、設定可能な最大値とを示す。具体的には、文字数表示２１０２では、「１２９」（左側の値である。）が、パスワード２１０１の文字数をカウントした値を示す。一方で、文字数表示２１０２では、「１２８」（右側の値である。）が、設定できる文字数の最大値を示す。
【０１８９】
例えば、文字数表示２１０２は、表示する文字を赤字にしてエラーを知らせる。なお、エラーの表示方法は、赤字のように色で知らせる方法に限られない。例えば、エラーの表示方法は、文字の点滅、文字の強調、エラーメッセージの表示、警告音又はこれらの組み合わせ等でもよい。
【０１９０】
この例は、パスワード２１０１の文字数が最大値よりも大きい値であるため、エラーとなる例である。このように、設定値に、エラーがないか等の検査を行うことができる。
【０１９１】
＜検査、本体部ルール及び操作部ルールについて＞
どのような検査を行うか、すなわち、共通ルール、本体部ルール及び操作部ルールは、例えば、以下のような管理テーブル等によって設定される。
【０１９２】
＜管理テーブル例＞
例えば、下記（表３）に示す管理テーブル等によって、本体部ルールが設定される。
【０１９３】
【表３】
2020082699.tif 000005
すなわち、上記（表３）に示すような管理テーブルは、本体部に設定される。
【０１９４】
「項目名」は、設定値の名称を示す。
【０１９５】
「項目タイプ」は、設定値の入力形式を示す。例えば、「ＳＴＲＩＮＧ」であると、設定値は、文字列入力型である。また、「ＮＵＭＢＥＲ」であると、設定値は、数値入力型である。なお、入力形式は、他の形式があってもよい。
【０１９６】
「ＩＤ」は、設定値を識別する識別番号等である。この例では、「ＩＤ」における上位の４桁が、設定値を用いるモジュール等を示す。具体的には、「０００１」であると、ネットワークモジュール、「０００２」であると、スキャンモジュール等のように、上位の４桁が設定される。また、上位の４桁が「１００１」であると、「ＩＤ」は、操作装置の設定値であることを示す。一方で、下位の４桁が各モジュール等での項目を示す。すなわち、モジュール等で複数の設定値を扱う場合には、下位の４桁で設定値が特定される。
【０１９７】
「文字コード」は、設定値を扱うための文字コードを示す。したがって、設定する文字コードがないと、設定値を扱うことができない。すなわち、扱える文字コードの種類は、動作環境等によって異なるため、例えば、操作装置が扱える文字コードであっても、本体部は扱えない場合がある。
【０１９８】
「最小値」は、設定可能な設定値の最小の長さを示す。
【０１９９】
「最大値」は、設定可能な設定値の最大の長さを示す。
【０２００】
「正規表現」は、入力可能な文字列を正規表現で示す。
【０２０１】
「チェック関数」は、設定値を検査するのに実行するチェック関数を示す。
【０２０２】
「依存する設定値」は、設定値を設定する上で依存する設定値を示す。具体的には、「依存する設定値」には、ＩＤ等が設定される。そして、「依存する設定値」は、設定値の設定範囲等に影響がある設定値を示す。具体的には、パスワードが設定値の場合には、「依存する設定値」は、例えば、セキュリティポリシを設定する設定値等が該当する。セキュリティポリシに応じて、例えば、パスワードを構成する文字数の最大値又は最小値等が定まる場合がある。つまり、セキュリティレベルを満たす程度の文字数となるパスワードでないと設定できないセキュリティポリシが設定される場合がある。このように依存関係のある設定値が把握できると、依存する設定値に基づいて検査ができる。
【０２０３】
以下、下記（表４）及び下記（表５）では、管理テーブルを構成する項目は同様とする。
【０２０４】
【表４】
2020082699.tif 000006
例えば、上記（表４）のように、本体部と同様の形式となる管理テーブルが操作装置の方にも別個に設定される。このように、本体部と、操作装置とに別個に管理テーブルがあると、本体部ルールと、操作部ルールとが別個に設定できる。
【０２０５】
例えば、本体部は、上記（表４）に示す管理テーブルを操作装置から、アプリ起動時等に取得する。そして、上記（表３）に示す管理テーブルと、上記（表４）に示す管理テーブルとをマージして、例えば、下記（表５）のような管理テーブルを生成する。
【０２０６】
【表５】
2020082699.tif 000007
上記（表５）と、上記（表３）とを比較すると、上記（表５）は、上記（表４）に示す「プロキシ設定−ユーザ名」の行が加わる点が異なる。つまり、上記（表５）は、上記（表４）の内容を取り込んでいるため、上記（表３）にないデータが加わる。
【０２０７】
一方で、上記（表５）と、上記（表４）とを比較すると、上記（表５）では、「プロキシ設定−ユーザ名」の行において、「文字コード」及び「チェック関数」の部分が空欄となる点が異なる。
【０２０８】
このように空欄となるのは、「文字コード」で設定される文字コードが、操作装置で扱えても、本体部では扱えない場合等である。したがって、上記（表５）では、「文字コード」が空欄となる。
【０２０９】
同様に、「チェック関数」で設定される関数が、操作装置では実行できても、本体部では実行できない場合等である。したがって、上記（表５）では、「チェック関数」が空欄となる。
【０２１０】
上記（表５）に示す例のように、検査が本体部で可能な設定値と、不可能な設定値がある。このような場合には、設定値が、操作装置の設定値であるか、又は、本体部の設定値であるか判定されて、操作装置の設定値は、操作装置で検査されると、検査されない設定値をなくすことができる。
【０２１１】
また、文字コードが対応していないと、文字数をカウントするのが難しい場合も多い。その結果、最大値及び最小値等の検査が難しい場合もある。したがって、設定値を入力するのに用いた文字コードのある環境下で検査が行われるのが望ましい。
【０２１２】
同様に、チェック関数等は、関数が実装されていないと、関数を実行するのが難しい場合が多い。そこで、チェック関数が実行可能な環境下でチェック関数等を実行して、設定値が検査されるのが望ましい。
【０２１３】
なお、この例では、「最大値」及び「最小値」が共通ルールの例となる。すなわち、操作装置の検査でも、本体部の検査でも同様に行われる検査等が共通ルールで設定されてもよい。例えば、共通ルールは、以下のように取得されてもよい。
【０２１４】
図２２は、共通ルール等の取得を示すソースコードの例である。例えば、共通ルールについての情報は、図示するようなコード（以下「共通ルールコード２２０１」という。）等で取得される。共通ルールコード２２０１は、例えば、以下のような情報を含む。
【０２１５】
「ｉｄ」は、設定値を識別する識別番号等である。上記（表３）等と同様に、この例では、上位の４桁が、設定値を用いるモジュール等を示す。
【０２１６】
「ｔｉｔｌｅ」は、設定値の名称を示す。
【０２１７】
「ｔｙｐｅ」は、設定値の入力形式を示す。図示する例で示す「ｓｔｒｉｎｇ」は、入力形式が文字列入力形式であることを示す例である。
【０２１８】
「ｖａｌｕｅ」は、設定値の配列キーを示す。図示する例で示す「ＵｓｅｒＡ」は、設定値に「ＵｓｅｒＡ」という文字が設定されることを示す例である。
【０２１９】
「ｄａｔａ」は、設定値ごとの情報を格納する。この例では、「ｄａｔａ」には、「ｍａｘＬｅｎｇｔｈ」、「ｍｉｎＬｅｎｇｔｈ」及び「ｒｅｇＥｘｐ」が格納される。そして、この例では、「ｄａｔａ」に設定される項目が共通ルールで利用される。
【０２２０】
「ｍａｘＬｅｎｇｔｈ」は、設定値に設定が可能な最大の長さを示す。例えば、「ｍａｘＬｅｎｇｔｈ」は、バイト数等で設定される。つまり、図示する例では、設定値は、１００  バイト以下であれば設定可能である。
【０２２１】
「ｍｉｎＬｅｎｇｔｈ」は、設定値に設定が可能な最小の長さを示す。例えば、「ｍｉｎＬｅｎｇｔｈ」は、バイト数等で設定される。つまり、図示する例では、設定値は、０  バイト以上であれば設定可能である。
【０２２２】
「ｒｅｇＥｘｐ」は、設定値に設定可能な文字の種類等を示す。例えば、「ｒｅｇＥｘｐ」は、正規表現等で設定される。つまり、図示する例では、設定値は、アラビア数字及び英数字（大文字及び小文字）であれば設定可能である。
【０２２３】
例えば、文字コードがどのような種類であっても、検査が可能な設定値である場合がある。このような設定値は、例えば、共通ルール等で検査されてもよい。
【０２２４】
＜機能構成例＞
図２３は、画像形成装置の機能構成例を示す機能ブロック図である。例えば、画像形成装置１００は、第１の記憶部２３０９、第２の記憶部２３１０、第１設定部２３０１、第２設定部２３０２、判定部２３０３及び検査部２３０４等を備える機能構成である。また、画像形成装置１００は、図示するように、表示部２３０５等を更に備える機能構成であるのが望ましい。以下、図示する機能構成を例に説明する。
【０２２５】
第１設定部２３０１は、画像形成装置１００についての初期設定を受け付ける第１設定手順を行う。例えば、第１設定部２３０１は、通信Ｉ／Ｆ２２７等によって実現される。以下、第１設定部２３０１によって受け付ける設定値を「第１設定値２３０６」という。
【０２２６】
第２設定部２３０２は、操作装置についての設定を受け付ける第２設定手順を行う。例えば、第２設定部２３０２は、操作パネル２１５等によって実現される。以下、第２設定部２３０２によって受け付ける設定値を「第２設定値２３０７」という。
【０２２７】
判定部２３０３は、設定値が、第１設定値２３０６であるか、又は、第２設定値２３０７であるかを判定する判定手順を行う。例えば、判定部２３０３は、ＣＰＵ２２１等によって実現される。
【０２２８】
検査部２３０４は、判定部２３０３による判定結果２３０８に基づいて、設定値のうち、第２設定値２３０７を操作装置１１０に検査させる検査手順を行う。例えば、検査部２３０４は、接続Ｉ／Ｆ２１６等によって実現される。
【０２２９】
表示部２３０５は、検査結果等を表示する表示手順を行う。例えば、表示部２３０５は、操作パネル２１５等によって実現される。
【０２３０】
第１の記憶部２３０９は、初期設定を記憶する。例えば、第１の記憶部２３０９は、本体部データベース５１１等によって実現される。
【０２３１】
第２の記憶部２３１０は、操作部又は操作装置が有する記憶部である。例えば、第２の記憶部２３１０は、操作部データベース５０５等によって実現される。
【０２３２】
以上のような構成であると、画像形成装置１００は、初期設定等で設定される第１設定値２３０６と、操作装置１１０等で設定される第２設定値２３０７とを含む様々な設定値を受け付けることができる。したがって、設定値には、少なくとも第１設定値２３０６と、第２設定値２３０７の２種類が混在する。
【０２３３】
そこで、判定部２３０３によって、設定値が第１設定値２３０６及び第２設定値２３０７のどちらであるかが判定される。そして、検査部２３０４は、第１設定値２３０６等を共通ルール及び本体部ルール等で検査する。一方で、第２設定値２３０７は、操作装置１１０で検査される。このようにすると、設定値は、本体部及び操作部のどちらの設定値も検査される。
【０２３４】
例えば、検査部２３０４は、入力されるルールに基づいて、設定値について、文字列の長さ及びエラーでないかを少なくとも検査する。このようにすると、設定値に、長すぎる文字列、短すぎる文字列及びエラーとなる設定値がないかを検査できる。そのため、画像形成装置１００は、連携する装置の構成に基づいて、それぞれの設定値を適した装置に検査させることができる。このようにすると、各設定値に適した検査方法が適用される。そのため、ユーザには、設定可能な残り文字数及びエラーの有無等が表示できる。そして、ユーザは、検査結果を入力中等でも即座に確認することができる。
【０２３５】
また、ルールは、本体部ルール及び操作部ルールのように、本体部と、操作装置等とに別個に設定されるのが望ましい。このように、ルールが別個にあると、各装置等の文字コード等に合わせて検査を行うことができる。
【０２３６】
さらに、検査は、設定値を入力するのに用いた文字コードに基づいて、操作装置１１０に検査させるか否かが決定されるのが望ましい。すなわち、文字コードは、本体部と、操作装置とで異なる場合がある。したがって、操作装置でないと扱わない文字コードの場合がある。このような場合には、文字コードを扱える操作装置の環境下で設定値は検査されるのが望ましい。文字コードを扱えない環境では、例えば、文字数がカウントできない等が発生する。したがって、文字コードに基づいて、検査を行う環境を操作装置とするか否かを決定すると、設定値の文字数等が正確に検査できる。
【０２３７】
このように、複数の制御部がある場合等では、文字コード又は入力範囲等が異なる場合がある。そのため、設定値のカウント及び種類等が、正確に把握できない場合がある。このような場合は、実際に設定値を設定してみないとエラー等があるか否か分からないという場合がある。そこで、本実施形態のように、どの環境下で検査を行った方がよいかが判定され、判定結果に基づいて検査が行われると、設定値のエラー等が設定する前等でも把握できる。
【０２３８】
また、設定値に対する操作は、操作部又は操作装置による操作、すなわち、第２設定部による設定が排他ロック等で優先されるのが望ましい。操作装置等を用いる設定は、画像形成装置の近くまで近づいて操作される場合が多い。そのため、操作を行う者は、ネットワークを利用して不正に操作しようとする者である可能性が低い。又は、操作を行う者は、設定した設定値で直ぐに画像形成装置を使用しようとする者等である可能性が高い。そのため、ブラウザ等による操作より、操作装置等による操作を優先させると、ユーザの利便性を高くすることができる。
【０２３９】
画像形成装置１００は、操作部を備える構成でもよい。すなわち、画像形成装置１００は、操作装置１１０以外の入力装置及び出力装置等で実現される操作部を備える構成でもよい。そして、操作部による操作手順で、第２設定値が受け付けられてもよい。
【０２４０】
＜その他の実施形態＞
なお、本発明に係る各処理の全部又は一部は、低水準言語又は高水準言語で記述され、コンピュータに情報処理方法を実行させるためのプログラムによって実現されてもよい。すなわち、プログラムは、情報処理装置又は複数の情報処理装置を含む情報処理システム等のコンピュータに各処理を実行させるためのコンピュータプログラムである。
【０２４１】
したがって、プログラムに基づいて情報処理方法が実行されると、コンピュータが有する演算装置及び制御装置は、各処理を実行するため、プログラムに基づいて演算及び制御を行う。また、コンピュータが有する記憶装置は、各処理を実行するため、プログラムに基づいて、処理に用いられるデータを記憶する。
【０２４２】
また、プログラムは、コンピュータが読み取り可能な記録媒体に記録されて頒布することができる。なお、記録媒体は、磁気テープ、フラッシュメモリ、光ディスク、光磁気ディスク又は磁気ディスク等のメディアである。さらに、プログラムは、電気通信回線を通じて頒布することができる。
【０２４３】
なお、本発明に係る実施形態は、画像形成システムによって実現されてもよい。また、画像形成システムは、各処理を冗長、分散、並列、仮想化又はこれらを組み合わせて実行してもよい。
【０２４４】
以上、実施形態における一例について説明したが、本発明は、上記実施形態に限定されない。すなわち、本発明の範囲内で種々の変形及び改良が可能である。
【符号の説明】
【０２４５】
１００  画像形成装置
１１０  操作装置
５００  ＰＣ
２３０１  第１設定部
２３０２  第２設定部
２３０３  判定部
２３０４  検査部
２３０５  表示部
２３０９  第１の記憶部
２３１０  第２の記憶部
【先行技術文献】
【特許文献】
【０２４６】
【特許文献１】特開２０１０−６８４５６号公報
【図１】
2020082699.tif 000008
【図２】
2020082699.tif 000009
【図３】
2020082699.tif 000010
【図４】
2020082699.tif 000011
【図５】
2020082699.tif 000012
【図６】
2020082699.tif 000013
【図７】
2020082699.tif 000014
【図８】
2020082699.tif 000015
【図９】
2020082699.tif 000016
【図１０】
2020082699.tif 000017
【図１１】
2020082699.tif 000018
【図１２】
2020082699.tif 000019
【図１３】
2020082699.tif 000020
【図１４】
2020082699.tif 000021
【図１５】
2020082699.tif 000022
【図１６】
2020082699.tif 000023
【図１７】
2020082699.tif 000024
【図１８】
2020082699.tif 000025
【図１９】
2020082699.tif 000026
【図２０】
2020082699.tif 000027
【図２１】
2020082699.tif 000028
【図２２】
2020082699.tif 000029
【図２３】
2020082699.tif 000030