以下、発明を実施するための最適な形態について、図面を参照して説明する。
<画像形成装置例>
図1は、画像形成装置の全体構成例を示す概要図である。図示するように、画像形成装置100は、例えば、MFP(Multifunction Peripheral)等である。そのため、例えば、画像形成装置100は、コピー機能、スキャナ機能、ファクシミリ機能及びプリンタ機能等の画像処理機能を有する。なお、画像形成装置100は、他に機能(例えば、エラー表示機能等である。)を更に有してもよい。
この例では、画像形成装置100は、操作装置110を有する構成である。一方で、画像形成装置100は、操作装置110以外の構成(以下「本体部120」という。)を有する構成である。
操作装置110に対して、ユーザは、画像形成装置100に対する様々な操作を入力する。そして、画像形成装置100は、操作装置110及び本体部120により、操作に基づいた画像処理を実行する。
<ハードウェア構成例>
図2は、操作装置及び本体部のハードウェア構成例を示すブロック図である。まず、操作装置110は、例えば、CPU(Central Processing Unit、以下「CPU211」という。)、ROM(Read−Only Memory、以下「ROM212」という。)、RAM(Random Access Memory、以下「RAM213」という。)、フラッシュメモリ214、操作パネル215、接続インタフェース(以下「接続I/F216」という。)、通信インタフェース(以下「通信I/F217」という。)を有するハードウェア構成の装置である。また、図示するように、これらのハードウェア資源は、バス218によって相互に接続される。
CPU211は、演算装置及び制御装置の例である。そして、CPU211は、RAM213等の主記憶装置をワークエリアとして、ROM212又はフラッシュメモリ214等に記憶された各種プログラムを実行する。このような制御及び演算により、CPU211は、操作装置110等を制御し、かつ、各種機能を実現する。
フラッシュメモリ214は、不揮発性の記憶媒体の例である。例えば、フラッシュメモリ214は、プログラム及びデータ等を記憶する。
操作パネル215は、入力装置及び出力装置の例である。すなわち、操作パネル215は、操作画面及び処理結果等を表示する。一方で、操作パネル215は、ユーザによる操作を受け付ける。
接続I/F216は、通信路230を介して本体部120と通信をするインタフェースである。例えば、接続I/F216は、コネクタ及びケーブル等である。具体的には、接続I/F216は、USB(Universal Serial Bus)等によって通信を行う。
通信I/F217は、ネットワーク260を介して外部装置と通信をするインタフェースである。例えば、通信I/F217は、アンテナ等である。図示する例では、通信I/F217は、無線LAN(Local Area Network)AP(アクセスポイント)(以下「無線LANAP240」という。)に接続し、通信を行う。
一方で、本体部120は、例えば、CPU221、ROM222、RAM223、HDD(Hard Disk Drive、以下「HDD224」という。)、エンジン部225、接続I/F226及び通信I/F227を有するハードウェア構成の装置である。また、図示するように、これらのハードウェア資源は、バス228によって相互に接続される。
CPU221は、演算装置及び制御装置の例である。すなわち、図示するように、本体部120用となる演算装置及び制御装置は、操作装置110用のCPU211とは別であるハードウェア構成が望ましい。
ROM222及びRAM223は、CPU221と同様に、本体部120用の記憶装置の例である。したがって、CPU221は、RAM223等の主記憶装置を利用して、ROM222及びHDD224等の補助記憶装置に記憶されるプログラム等に基づく処理を実行する。
エンジン部225は、コピー機能、スキャナ機能、ファクシミリ機能及びプリンタ機能等の画像処理機能を実現するための処理装置等である。具体的には、エンジン部225は、例えば、処理IC(Integrated Circuit)等である。具体的には、エンジン部225は、原稿をスキャンして読み取るスキャナ、用紙等のシート材への印刷を行うプロッタ、ファクシミリ通信を行う通信部又はこれらの組み合わせを有する。なお、エンジン部225は、印刷済みのシート材を仕分ける装置、いわゆるフィニッシャ又は原稿を自動給送するADF(Auto Document Feeder)等を含んでもよい。
接続I/F226は、通信路230を介して操作装置110と通信をするインタフェースである。例えば、接続I/F216は、コネクタ及びケーブル等である。具体的には、接続I/F226は、USB等によって通信を行う。
通信I/F227は、ネットワーク260を介して外部装置と通信をするインタフェースである。例えば、通信I/F227は、ケーブル250等である。
<操作装置の例>
図3は、操作装置の外観例を示す概要図である。例えば、操作装置110は、図示するような外観の装置である。具体的には、操作装置110は、例えば、操作パネル215等により、画像形成装置が提供する様々な機能の操作画面を表示する。この例では、操作画面は、「コピー」、「スキャナ」、「ファックス」及び「プリンタ」の機能に対する操作を受け付ける。また、図示する例は、いわゆるトップ画面であり、例えば、「コピー」のボタンが押されると、操作画面は、「コピー」の機能について詳細な設定を行う用の操作画面を表示する。
また、操作画面においてボタンが押されると、次に遷移して表示される画面又は設定を行う設定値等は、メニュー構成等によって設定される。
なお、操作装置110は、図示するような操作パネル215で実現されるに限られない。例えば、操作パネル215には、タッチパネル以外に、ハードキー等があってもよい。すなわち、操作画面を操作するのにインタフェースとなる構成は、図示する以外の構成でもよい。
さらに、図示するように、操作画面は、ヘルプボタン300を有する。以下、ヘルプボタンが押されると、あらかじめ設定されるヘルプコンテンツが画面上に展開される例で説明する。このように、ヘルプボタン300を押す操作によって、ユーザは、いわゆるヘルプ及びマニュアル等を参照することができる。なお、ヘルプコンテンツの参照方法は、ヘルプボタン300を押す操作以外の方法でもよい。また、参照されるヘルプコンテンツを提供するファイルは、操作装置110又は本体部120がファイルを記憶してもよいし、オンラインでネットワークを介して参照されてもよい。
<操作装置及び本体部のソフトウェア構成例>
図4は、操作装置及び本体部のソフトウェア構成例を示すブロック図である。図示する例は、操作装置110及び本体部120にインストールされるプログラムによって構成されるソフトウェアの階層構造を示す。
まず、本体部120について説明する。この例では、本体部120には、補助記憶装置等に、例えば、アプリケーション層421、サービス層422及びOS層(Operating System層、以下「OS層423」という。)を構築するプログラムがインストールされる。
アプリケーション層421に区別されるプログラムは、画像形成装置100が有するハードウェア資源を動作させて様々な機能を実現する。具体的には、アプリケーション層411に区別されるプログラムは、例えば、コピーアプリ、ファクシミリアプリ、スキャンアプリ及びプリンタアプリ等である。
サービス層422に区分されるプログラムは、アプリケーション層421と、OS層423との間に介在するプログラムである。例えば、サービス層422に区分されるプログラムは、本体部120が有するハードウェア資源をアプリケーション層421のプログラムが利用したり、又は、本体部120が有するハードウェア資源の状態をアプリケーション層421に通知したりするインタフェース等を実現する。
また、サービス層422に区分されるプログラムは、ハードウェア資源に対する動作要求を受け付けたり、又は、受け付けた動作要求の調停を行ったりする。ほかにも、サービス層422に区分されるプログラムは、ハードウェア資源において検知されたエラーをアプリケーション層421にエラー通知として送信する。なお、サービス層422が受け付ける動作要求には、例えば、スキャナによる読み取り、又は、プロッタによる印刷を行う等の動作要求が含まれる。
なお、サービス層422に区分されるプログラムが実現させるインタフェースとしての役割は、操作装置110のアプリケーション層411に対しても同様である。すなわち、操作装置110のアプリケーション層411に区分されるプログラムは、サービス層422にアクセスして本体部120のハードウェア資源を動作させ、画像処理機能等を実現させることができる。
OS層423に区分されるプログラムは、いわゆる基本ソフトウェアと呼ばれるプログラム等である。そして、OS層423に区分されるプログラムは、本体部120が有するハードウェア資源を制御する基本機能を提供する。まず、サービス層422に区分されるプログラムは、アプリケーション層421に区分されるプログラムが発するハードウェア資源に対する動作要求をOS層423が解釈可能なコマンドに変換してOS層423に渡す。そして、OS層423に区分されるプログラムが当該コマンドを実行することにより、ハードウェア資源に対する動作要求に基づいて、画像処理機能が実現される。また、OS層423に区分されるプログラムが実行されると、ハードウェア資源は、検知されたエラーを受信する。次に、ハードウェア資源は、受信したエラー通知をアプリケーション層421に対して送信するサービス層422に渡す。
次に、操作装置110について説明する。この例では、操作装置110には、補助記憶装置等に、例えば、アプリケーション層411、サービス層412及びOS層413を構築するプログラムがインストールされる。
ただし、アプリケーション層411に区分されるプログラムが実現する機能及びサービス層412が受け付け可能な動作要求の種類等は、本体部120とは異なる。具体的には、操作装置110において、アプリケーション層411に区分されるプログラムは、主に本体部120によって実現される画像処理機能に関する操作及び表示を行うためのユーザインタフェース機能を提供する。
なお、この例では、操作装置110と、本体部120とで、それぞれのOSは、独立して動作する。また、操作装置110及び本体部120が相互に通信可能であれば、それぞれのOSは、同じ種類でなくともよい。例えば、操作装置110は、Android(登録商標)を用い、かつ、本体部120は、Linux(登録商標)を用いる構成等でもよい。
このように、画像形成装置100では、例えば、操作装置110及び本体部120が異なるOSにより制御される。そのため、操作装置110及び本体部120の間における通信は、一装置内のプロセス間通信ではなく、異なる装置間の通信となる。例えば、通信は、操作装置110が受け付けたユーザによる操作を本体部120へ送信するコマンド通信、又は、本体部120が操作装置110へ表示画面の表示を指示するイベント通信(例えば、エラー通知又はエラー解除通知等である。)等である。
<システム構成例>
図5は、画像形成装置によるシステム構成例を示すブロック図である。例えば、図示するように、画像形成装置100は、操作装置側に操作装置制御部501を有し、本体側に本体制御部502を有するシステム構成である。そして、本体制御部502には、外部装置からアクセスが可能である。図示する例では、PC(Personal Computer、以下「PC500」という。)が外部装置の例である。
操作装置制御部501は、操作装置を制御する構成である。例えば、操作装置制御部501は、図示するように、クライアントアプリ503を有する構成である。さらに、操作装置には、インストールされたアプリケーションソフトウェアに応じたアプリケーション機能が搭載される。図示する例では、操作装置に、コピーアプリ506、ファクシミリアプリ507及びスキャンアプリ508等のアプリケーションがある例となる。なお、アプリケーションの構成は、インストールされるプログラムによって定まる。したがって、アプリケーションには、ヘルプサービス等があってもよい。
クライアントアプリ503は、画像形成装置100に対する操作を受け付ける操作画面を表示するアプリケーションの例である。例えば、クライアントアプリ503は、図示するように、ブラウザ(browser、以下「ブラウザ504」という。)及び操作部データベース505を有する構成である。
ブラウザ504は、例えば、操作画面等を表示する。なお、操作画面は、ブラウザ504以外のソフトウェアで表示されてもよい。したがって、ブラウザ504は、操作画面を表示できれば、操作装置にあらかじめインストールされるネイティブアプリケーション等のソフトウェアでもよい。
操作部データベース505は、操作装置制御部501におけるアプリケーションの設定値を管理する構成の例である。したがって、この例では、操作部データベース505は、それぞれのアプリケーションが用いる設定値を一括して管理する。具体的には、操作部データベース505は、それぞれのアプリケーションと設定値を送受信する。また、操作部データベース505によって管理される項目は、インストールされるプログラムによって追加される場合がある。なお、操作部データベース505は、クライアントアプリ503が有さず、他のソフトウェア等が有する構成でもよい。
コピーアプリ506は、画像形成装置100によってコピーを行うためのアプリケーションである。
ファクシミリアプリ507は、画像形成装置100によってファクシミリ通信を行うためのアプリケーションである。
スキャンアプリ508は、画像形成装置100によって用紙等に記載された画像をスキャンするためのアプリケーションである。
そして、例えば、コピーアプリ506、ファクシミリアプリ507及びスキャンアプリ508等のアプリケーションでは、それぞれのアプリ内において、固有の設定値を管理する。なお、設定値を設定する手段等は、アプリケーションが有さなくともよい。
本体制御部502は、画像形成装置100の本体部を制御する構成である。例えば、本体制御部502は、図示するように、ウェブサーバモジュール509を有する構成である。また、この例では、ウェブサーバモジュール509は、メニュー構成ファイル510及び本体部データベース511等を有する構成である。
ウェブサーバモジュール509は、例えば、本体部側において、設定値を一括して管理する。また、図示するように、ウェブサーバモジュール509は、クライアントアプリ503等と通信を行う。そして、ウェブサーバモジュール509は、通信によって取得できるメニュー等をマージしてメニュー構成を生成する。この例では、メニュー構成を示すデータが、メニュー構成ファイル510となる。
メニュー構成ファイル510は、画像形成装置100における設定値のメニュー構成を記憶するデータである。具体的には、メニュー構成ファイル510は、メニュー構成において、それぞれの設定値がどのカテゴリに位置するか、及び、メニュー構成におけるカテゴリがどのような階層構造であるか等を示す。なお、メニュー構成ファイル510の詳細は、後述する。
本体部データベース511は、本体制御部502における設定値を管理する構成の例である。したがって、この例では、本体部データベース511は、それぞれのモジュールが用いる設定値を一括して管理する。具体的には、本体部データベース511は、それぞれのモジュールと設定値を送受信する。また、本体部データベース511によって管理される項目は、インストールされるプログラムによって追加される場合がある。なお、本体部データベース511は、ウェブサーバモジュール509が有さず、他のモジュール等が有する構成でもよい。
さらに、本体部には、インストールされたソフトウェアに応じたモジュールが搭載される。図示する例では、本体部に、ネットワークモジュール512、スキャンモジュール513及び印刷モジュール514等のモジュールがある例となる。なお、モジュール構成は、インストールされるプログラム等によって定まる。なお、モジュールは、例えば、ファックス等でもよい。
ネットワークモジュール512は、ネットワークを用いて通信を行う。
スキャンモジュール513は、スキャナ等を用いて画像のスキャンを行う。
印刷モジュール514は、印刷装置等を用いて用紙等に画像形成を行う。
GUI(Graphical User Interface、以下単に「GUI515」という。)は、ウェブサーバモジュール509等にHTTPリクエストを行う。そして、GUI515は、UI(User Interface)を表示したり、設定値をポストしたりする。
第1設定モジュール516及び第2設定モジュール517は、データベース等を用いて、設定値を設定したり、設定値を検査したりする。
PC500は、情報処理装置である。そして、PC500は、図示するように、画像形成装置100と同じネットワークに接続する。また、この例では、PC500は、ブラウザを有する。そのため、ウェブサーバモジュール509がPC500からのアクセスを許可すると、PC500は、画像形成装置100の設定を遠隔で行うことができる。なお、PC500は、なくともよい。また、PC500は、情報処理装置であれば、他の種類であってもよい。
<操作画面例>
上記のようなシステム構成によって、例えば、以下のような操作画面の表示及び画面の遷移が可能となる。
図6は、カテゴリの選択を行う操作画面の例を示す図である。以下、操作装置、すなわち、クライアントアプリによって、図示するような第1画面600が表示される例で説明する。
第1画面600は、カテゴリごとに設定を分けて表示する。図示する例では、第1画面600における「地紋、印字設定」、「データ管理」、「文書管理」、「セキュリティ」、「機能制限」、「認証・課金設定」及び「ユーザ認証管理」がカテゴリ名を示し、かつ、選択を行うボタンとなるGUIの例である。これらのGUIのうち、いずれかを押す操作を行うと、ユーザは、それぞれのカテゴリについて詳細な設定を行う、及び、詳細な設定の内容を確認することができる。
以下、例えば、「ユーザ認証管理」のボタン601を押す操作を行う場合を例に説明する。このような操作を行うと、第1画面600は、例えば、以下のような画面に遷移する。
図7は、詳細な設定を行う操作画面の例を示す図である。例えば、第1画面600においてボタン601が押されると、図示するような第2画面700が表示されるように操作画面が遷移する。
第2画面700は、「ユーザ認証管理」において、設定値を確認及び設定するための操作画面である。具体的には、第2画面700において、図示するように、「スキャナ」等を選択したり、又は、プルダウンメニュー中から選択肢を選んだりすることで、ユーザは、設定値を設定できる。また、この例では、「OK」というボタンが押されると、設定値が確定し、設定値が更新される。
以上のように、操作画面は、例えば、第1画面600から第2画面700に遷移する。このように、操作画面をどのように遷移されるか、すなわち、複数の操作画面の関係は、メニュー構成ファイル等で定まる。さらに、操作画面において、設定の対象となる設定値も、以下に説明する例では、メニュー構成ファイルで定まるとする。
<メニュー構成及びメニュー構成ファイルの例>
図8は、メニュー構成例を示す図である。以下、図示するようなメニュー構成800を例に説明する。具体的には、この例では、「TOP」が、最も上位の階層となる、いわゆるツリー構造のメニュー構成である。したがって、メニュー構成800では、「TOP」となる操作画面において、「システム」、「ファックス」、「スキャナ」及び「プリンタ」等のメニューが選択できる。次に、例えば、「システム」となる操作画面では、「基本」、「ネットワーク」及び「管理者」等のメニューが選択できる。このように、上位の階層となる操作画面で遷移する先となる下位の階層が選択できる。そして、選択が行われると、操作画面は、下位の階層に遷移する。以下、「TOP」となる階層を「第1階層」という。そして、「TOP」の下にある層を「第2階層」という。同様にして、この例は、「第3階層」、「第4階層」及び「第5階層」が更にある階層構造とする。
このように、メニュー構成ファイルは、メニュー構成800を定義するデータである。したがって、メニュー構成ファイルがあると、「TOP」から設定値を設定する操作画面等までが、どのような構造であるかが特定できる。
例えば、図示するようなメニュー構成800では、以下のような遷移となる。
図9は、操作画面の遷移例を示す図である。以下、メニュー構成800における「システム」を操作する上で表示される図示するような操作画面を例に説明する。
この例では、まず、「TOP」から「システム」に切り替える操作がされると、図9(A)に示す画面(以下「第2階層画面901」という。)が表示されるとする。図示するように、第2階層画面901は、メニュー構成ファイル等に基づいて、「基本」、「ネットワーク」及び「管理者」という3つのメニューをユーザに選択させる操作画面の例である。
すなわち、第2階層画面901において、選択が行われると、操作画面は、図9(A)のような表示から図9(B)のような表示に遷移する。以下、第2階層画面901から、図9(B)に示す画面(以下「第3階層画面902」という。)に操作画面が遷移する例で説明する。
また、この例では、さらに、第3階層画面902において選択が行われると、図9(B)のような表示から図9(C)のような表示に遷移する。以下、第3階層画面902から、図9(C)に示す画面(以下「第4階層画面903」という。)に操作画面が遷移する例で説明する。
この例は、第2階層画面901及び第3階層画面902が階層を変更するための操作画面の例である。すなわち、この例では、第2階層画面901及び第3階層画面902は、いわゆるリンクとなる選択肢で構成される画面である。
一方で、第4階層画面903は、「項目A」、「項目B」及び「項目C」についての設定値を設定する操作画面である。
これらの操作画面は、例えば、以下のようなコードで定まる定義に基づいて生成される。
図10は、第3階層画面を生成するためのコード例を示す図である。例えば、第3階層画面902は、図示するようなコードに基づいて生成される。
図11は、第4階層画面を生成するためのコード例を示す図である。例えば、第4階層画面903は、図示するようなコードに基づいて生成される。
具体的には、「id」は、各操作画面を識別する番号等である。すなわち、「id」が特定できると、コード等のデータにおいて、どの操作画面を指すかが特定できる。
「title」は、カテゴリの名称を示すデータである。この例では、「title」と、メニュー構成800におけるブロックとが一致する。また、この例では、「title」に入力された文字が、操作画面において左上に表示される。
「type」には、「category」又は「window」が設定される。「category」は、第2階層画面901及び第3階層画面902のような階層を変更させる用の操作画面であることを定義する。一方で、「window」は、第4階層画面903のような設定値を操作する用の操作画面であることを定義する。
「children」は、下層となる操作画面を定義する。例えば、メニュー構成800では、第4階層の「設定画面」の下層となる第5階層には、「項目A」、「項目B」及び「項目C」の操作画面が定義されている。したがって、第4階層画面903には、「children」として、「項目A」、「項目B」及び「項目C」のそれぞれの「id」が定義される。このようにして、メニュー構成800のようなツリー構造が構成される。
<設定値例>
例えば、第4階層画面903等のような設定画面によって、「項目A」、「項目B」及び「項目C」のような設定値が設定可能である。そして、設定値及び設定画面は、例えば、テーブル又はデータベース等の形式で記憶される。具体的には、メニュー構成800の例では、「項目A」についてテーブル(以下「第1テーブル801」という。)に記憶されるとする。同様に、メニュー構成800の例では、「項目B」についてテーブル(以下「第2テーブル802」という。)に記憶されるとする。
具体的には、例えば、「項目B」は、第2テーブル802によって下記(表1)のように定義される。
上記(表1)において、「id」は、設定値に割り当てられる識別番号等である。
「title」は、各設定値及び設定画面の名称である。
「type」は、設定値を入力する形式の種類を示す。例えば、「type」には、「数値入力」、「択一選択」又は「文字入力」等が設定される。そして、「type」が「数値入力」と設定されると、設定値は、数値で設定される。また、「type」が「択一選択」と設定されると、設定値は、あらかじめ用意される選択肢から選ぶように設定される。さらに、「type」が「文字入力」と設定されると、設定値は、文字等で設定される。
「min」は、最小値の設定である。したがって、「min」より小さい値が設定値に設定されると、エラー等となる。
「max」は、最大値の設定である。したがって、「max」より大きい値が設定値に設定されると、エラー等となる。
「step」は、ステップ数の設定である。
「access roll」は、アクセス権限である。具体的には、「管理者」又は「ゲスト」等が設定される。例えば、「管理者」と設定されると、設定値は、管理者権限のあるユーザでないと設定できない等である。
「value」は、設定値の取得先である。
また、設定値には、「周辺機器」等があってもよい。この例では、「項目B」は、画像形成装置に、周辺機器として「フィニッシャ」が接続された場合に用いられる設定値であることを示す。このようにして、「周辺機器」は、設定値が関係する周辺機器の種類等を示す。このように設定値と周辺機器が対応付けされると、各設定値に対応する周辺機器の種類が特定できる。
そして、上記(表1)のようなテーブルは、本体部と、操作装置とに別々に記憶される。
例えば、以上のようなメニュー構成ファイル及びテーブル等があると、画像形成装置は、操作画面を表示することができる。
<全体処理例>
図12は、全体処理例を示すシーケンス図である。以下、ユーザ1201が操作装置110で設定値を設定する場合を例に説明する。
ステップS101では、ブラウザ504は、設定を受け付ける。例えば、ユーザ1201は、ブラウザ504上で設定における文字列等を入力する操作を行う。以下、文字列が入力された場合を例に説明する。
ステップS102では、ブラウザ504は、文字列等を通知する。
ステップS103では、GUI515は、文字列等を検査する。具体的には、ステップS103では、操作装置110及び本体部120で共通して使用できるルール(以下「共通ルール」という。)によって検査が可能な範囲で文字列を検査する。検査については、詳細を後述する。
次に、検査の結果、エラーがあると([エラーありの場合])、GUI515は、ステップS104に進む。一方で、検査の結果、エラーがないと([エラーなしの場合])、GUI515は、ステップS107に進む。
ステップS104、ステップS105及びステップS106では、ブラウザ504及びGUI515は、エラーを表示する。このようにすると、ユーザ1201は、入力した設定値にエラーがあることが分かる。
ステップS107では、GUI515は、設定値が、本体部の設定値であるか、又は、操作装置の設定値であるかの判定を要求する。
ステップS108では、ウェブサーバモジュール509は、設定値が、本体部の設定値であるか、又は、操作装置の設定値であるかを判定する。例えば、判定は、「id」等に基づいて行われる。具体的には、「id」の一部に、判定に用いるデータが、あらかじめ設定されるとする。このようにすると、ウェブサーバモジュール509は、「id」の一部を用いて、本体部の設定値であるか、又は、操作装置の設定値であるかを判定する。
次に、判定結果で操作装置の設定値であると判定されると([操作装置の場合])、ウェブサーバモジュール509は、ステップS109に進む。一方で、判定結果で本体部の設定値であると判定されると([本体部の場合])、ウェブサーバモジュール509は、ステップS117に進む。
ステップS109では、ウェブサーバモジュール509は、クライアントアプリ503に検査を要求する。例えば、操作装置によって検査させる場合には、以下のステップS110及びステップS111のような処理等で検査が実現される。なお、検査方法は、以下に説明する方法に限られない。
ステップS110では、クライアントアプリ503は、操作装置にあらかじめ設定されるルール(以下「操作部ルール」という。)に基づいて検査を行う。操作部ルール及び検査については後述する。
ステップS111では、クライアントアプリ503は、検査の対象となる設定値が設定可能か否かを第2設定モジュール517に問い合わせて検査する。
ステップS112では、クライアントアプリ503は、ステップS110及びステップS111による検査の結果を返答する。
具体的には、例えば、以下のようなソースコードが用いられる。なお、ソースコードは、JSON(JavaScript(登録商標) Object Notation)形式の例である。ただし、ソースコードは、他の形式で作成されてもよい。
図13は、検査を要求するソースコードの例である。ステップS109は、例えば、図示するようなソースコードが用いられる。
「requestId」は、検査を要求する、いわゆるリクエストの識別番号等である。したがって、検査の要求(ステップS109)と、対応する返答(ステップS112)のそれぞれの「requestId」は、一致する。
「check」は、検査の対象を示す。
「lang」は、言語を指定する。図示するように、「ja」であると、日本語となる。
「items」は、検査に用いるデータである。具体的には、「items」における「id」は、設定値を識別するデータである。また、「items」における「value」は、入力された設定値、すなわち、ステップS101で入力される設定値等である。
そして、図示するようなリクエストに対して、例えば、クライアントアプリ503は、チェック関数等を実行して検査を行う。このような検査の結果をクライアントアプリ503は、例えば、以下のようなソースコードで返答する。
図14は、検査結果を返答するソースコードの例である。例えば、図13に示すリクエストに対して、以下のような返答が行われる。
図示するように、検査結果を示すコード(以下「検査結果コード1401」という。)が返答される。
検査結果コード1401における「length」は、設定値となる文字列の長さを検査した結果を示す。つまり、チェック関数を実行すると、設定値となる文字列の文字数等がカウントされる。そして、検査結果コード1401は、カウント数等を返答する。
検査結果コード1401における「error」は、設定値となる文字列にエラーがないか検査した結果を示す。つまり、チェック関数を実行すると、設定値となる文字列に、あらかじめ使用を禁止するように定められた文字が含まれていないかが検査できる。そして、エラーとなる設定値であると、例えば、図示するように、検査結果コード1401は、エラーの内容等を返答する。
ステップS113では、ウェブサーバモジュール509は、操作装置に検査結果を通知する。
ステップS114、ステップS115及びステップS116では、ブラウザ504及びGUI515は、エラーがある場合にはエラーを表示する。このようにすると、ユーザ1201は、入力した設定値にエラーがあることが分かる。
一方で、本体部によって検査させる場合には、以下のステップS117及びステップS118のような処理等で検査が実現される。なお、検査方法は、以下に説明する方法に限られない。
ステップS117では、ウェブサーバモジュール509は、本体部にあらかじめ設定されるルール(以下「本体部ルール」という。)に基づいて検査を行う。本体部ルール及び検査については後述する。
ステップS118では、ウェブサーバモジュール509は、検査の対象となる設定値が設定可能か否かを第1設定モジュール516に問い合わせて検査する。
ステップS119では、ウェブサーバモジュール509は、ステップS117及びステップS118による検査の結果を返答する。
ステップS120、ステップS121及びステップS122では、ブラウザ504及びGUI515は、エラーがある場合にはエラーを表示する。このようにすると、ユーザ1201は、入力した設定値にエラーがあることが分かる。
例えば、設定値を設定するための操作画面等は、以下のようにして生成及び表示される。
<設定値を設定するための操作画面の表示例>
図15は、設定値を設定するための操作画面を生成及び表示する処理例を示すシーケンス図である。例えば、第3階層画面902において、「設定画面」を選択する操作が行われた場合を例に説明する。すなわち、図示する処理は、ユーザの指示に応じて(例えば、図9(B)において、ユーザが「設定画面」の項目を選択する操作を行うことに応じる。)、設定画面が表示される処理である。
ステップS201では、クライアントアプリ503は、「設定画面」を選択する操作を受け付ける。
ステップS202では、クライアントアプリ503は、設定値について問い合わせを行う。具体的には、クライアントアプリ503は、メニュー構成ファイル等から、図8に示すように、「設定画面」の下位層(この例では、第5階層を指す。)には、「項目A」、「項目B」及び「項目C」の設定値があるメニュー構成であることが分かる。さらに、メニュー構成ファイル等があると、「項目A」、「項目B」及び「項目C」を特定できる「id」等が分かる。そこで、クライアントアプリ503は、例えば、「項目A」の「id」、「項目B」の「id」及び「項目C」の「id」をウェブサーバモジュール509の問い合わせに用いる。このようにして、クライアントアプリ503は、ウェブサーバモジュール509から、「項目A」、「項目B」及び「項目C」のそれぞれの設定値をリクエストする。
ステップS203では、ウェブサーバモジュール509は、問い合わせの対象となる設定値が本体部の設定値であるか、又は、対象となる設定値が操作装置の設定値であるかを判定する。
この例では、「id」が分かると、ウェブサーバモジュール509は、対象とする設定値が本体部の設定値であるか、又は、対象となる設定値が操作装置の設定値であるかを判定できるとする。具体的には、「id」が以下のような構成及び設定であるとする。
問い合わせには、例えば、上記(表2)における「id」のようなデータが用いられる。この例では、「id」のデータ(16桁であるとする。)のうち、上位ビットの8桁と、下位ビットの8桁とに分けて、「id」は、管理されるとする。
上記のとおり、上位ビットが「3」であれば、問い合わせの対象となる設定値は、本体部の設定値であると判定される。一方で、上位ビットが「11」であれば、問い合わせの対象となる設定値は、操作装置の設定値であると判定される。ほかにも、上位ビットが「1677787392」であれば、問い合わせの対象となる設定値は、サードベンダアプリの設定値であると判定される。そして、サードベンダアプリの設定値と判定されると、さらに、本体部の設定値であるか、又は、操作装置の設定値であるかが判定される。
次に、下位ビットを用いると、ウェブサーバモジュール509等は、設定値を特定できるとする。すなわち、下位ビットの値は、設定値を識別できる番号である。
続いて、問い合わせの対象となる設定値が本体部の設定値であると判定されると([対象となる設定値が本体部の場合])、ウェブサーバモジュール509は、ステップS204に進む。一方で、問い合わせの対象となる設定値が操作装置の設定値であると判定されると([対象となる設定値が操作装置の場合])、ウェブサーバモジュール509は、ステップS206に進む。
ステップS204では、ウェブサーバモジュール509は、ネットワークモジュール512等のモジュールに設定値を問い合わせる。なお、問い合わせを行う先がネットワークモジュール512となるかは、設定値による。
ステップS205では、ネットワークモジュール512等は、ウェブサーバモジュール509に設定値を返答する。
ステップS204及びステップS205は、本体部の内部における通信となるため、いわゆるプロセス間の通信となる。このようにして、ウェブサーバモジュール509は、問い合わせの対象となっている設定値を各モジュールに問い合わせる。このようにすることで、ウェブサーバモジュール509は、設定されている最新の設定値を取得する。
ステップS206では、ウェブサーバモジュール509は、操作部データベース505に設定値を問い合わせる。例えば、問い合わせは、以下のようなソースコードに基づいて行われる。
図16は、設定値の問い合わせを行うソースコードの例である。例えば、図示するような「id」を指定するコード(以下「指定コード1601」という。)で問い合わせを行うと、「id」が「0000000300000065」となる設定値について問い合わせが行われる。なお、問い合わせは、図示するように、「lang」で「ja」とするように、言語を日本語でする等の設定が含まれてもよい。
ステップS207では、操作部データベース505は、問い合わせに応じてデータベースを読み込む。
ステップS208では、操作部データベース505は、問い合わせに対して、設定値を返答する。例えば、以下のような返答が行われる。
図17は、設定値の問い合わせに対する返答を行うソースコードの例である。具体的には、図示するソースコードにおいて、「title」等の設定値を返答するコード(以下「設定値コード1701」という。)がステップS206の問い合わせに対する返答となる。
具体的には、指定コード1601における「id」で指定された項目に対して、設定値コード1701は、アプリケーション又はモジュール等に設定されている最新の設定値を返す。
ステップS209では、ウェブサーバモジュール509は、設定値等を通知する。すなわち、ウェブサーバモジュール509は、問い合わせにより、ステップS205又はステップS208等によって設定値を取得する。そして、ステップS209では、ウェブサーバモジュール509は、取得した設定値等をクライアントアプリ503に通知する。
ステップS210では、クライアントアプリ503は、画面を描画する。
ステップS211では、クライアントアプリ503は、描画した画面を表示する。
例えば、操作画面等の画面は、以下のように描画及び表示される。
図18は、画面描画処理の一例のイメージ図である。図示するイメージ図は、オブジェクトに基づき、設定画面1804を描画する処理の例を示す。
まず、システムプログラム等は、画面テンプレート1803における「画面タイトル表示位置」に、設定構造1801において、「親」(上位階層)の「title」に設定される設定値「アプリケーションE設定」を描画する。また、システムプログラムは、設定構造1801の「子」となる階層の要素を順番に読み出す。次に、システムプログラムは、読み出した「子」の要素の設定種別に対応する描画テンプレート1802を画面テンプレートに対して描画する。
例えば、システムプログラムは、まず、図示する例における「子」であるID「E001」の要素の設定種別に対応する設定種別「数値型」の描画テンプレートを読み出す。次に、システムプログラムは、画面テンプレート1803に描画、すなわち、設定画面1804の「リセットタイマー」設定項目を描画する。
ID「E001」と同様に、システムプログラムは、図示する例における「子」であるID「E002」の要素の設定種別に対応する設定種別「択一選択型」の描画テンプレートを読み出す。次に、システムプログラムは、画面テンプレート1803に描画、すなわち、設定画面1804の「デフォルトカラーモード」設定項目を描画する。
さらに、ID「E001」と同様に、システムプログラムは、図示する例における「子」であるID「E003」の要素の設定種別に対応する設定種別「択一選択型」の描画テンプレートを読み出す。次に、システムプログラムは、画面テンプレート1803に描画し、すなわち、設定画面1804の「アプリケーションE省エネ優先設定」設定項目を描画する。
このような描画の結果、システムプログラムは、追加された「アプリケーションE」等の設定画面1804を生成し、画像形成装置が用いるブラウザ等に表示させることができる。
以上のような処理を行うと、例えば、図9(C)に示すような操作画面及び設定値を表示することができる。
<設定値の更新処理例>
例えば、設定値を更新する場合には、以下のような処理が行われてもよい。
図19は、設定値の更新及び表示する処理例を示すシーケンス図である。すなわち、図示する処理は、表示された設定画面において、ユーザが設定値を変更する(例えば、図9(C)において、ユーザは、「項目A」、「項目B」又は「項目C」の設定値を設定(変更)して「OK」ボタンを押下する操作を行う。)の処理である。以下、図15に示す処理をベースにする例で説明する。したがって、図15に示す処理と同一の処理には、同一の符号を付し、重複する説明を省略する。
この例で示す処理は、ステップS301が加わる点が異なる。
また、ステップS201では、ユーザ1201は、設定値を変更する操作を更に行う。
ステップS202では、クライアントアプリ503は、確定した設定値の書き込みを要求する。
ステップS204及びステップS206では、確定した設定値が、書き込みされる。
ステップS205及びステップS208では、書き込みの結果が、通知される。
ステップS209では、1つ上の階層の画面が、描画される。
ステップS301では、操作部データベース505は、更新した設定値を通知する。
また、画像形成装置は、設定値にエラーがなくなるまで、例えば、全体処理等を繰り返す。さらに、画像形成装置は、例えば、以下のように設定する処理を行ってもよい。
図20は、設定を行う処理例を示すシーケンス図である。
ステップS401では、ユーザ1201は、設定を開始するボタンを押す操作を行う。
ステップS402では、ブラウザ504は、設定を開始するボタンが押された通知を行う。
ステップS403では、GUI515は、設定値に必須な項目が入力されているかをチェックする。
次に、必須な項目が入力不足であると([入力不足の場合])、GUI515は、ステップS404に進む。一方で、必須な項目が入力不足でないと([入力不足でない場合])、GUI515は、ステップS406に進む。
ステップS404及びステップS405では、ブラウザ504及びGUI515は、必須な項目が入力不足であることを表示する。
ステップS406では、GUI515は、設定値を設定する要求を行う。
ステップS407では、ウェブサーバモジュール509は、設定の対象となる設定値が操作装置の設定値か、又は、本体部の設定値かを判定する。
次に、設定値が操作装置の設定値であると判定されると([操作装置の場合])、ウェブサーバモジュール509は、ステップS408に進む。一方で、設定値が本体部の設定値であると判定されると([本体部の場合])、ウェブサーバモジュール509は、ステップS415に進む。
ステップS408では、ウェブサーバモジュール509は、操作装置に、設定値を設定する要求を行う。
ステップS409では、クライアントアプリ503は、設定値が設定可能かを確認する。そして、設定値が設定可能であると、クライアントアプリ503は、ステップS410を行う。
ステップS410では、クライアントアプリ503は、設定値を設定する。
ステップS411では、クライアントアプリ503は、設定を行った結果を通知する。
ステップS412、ステップS413及びステップS414では、ウェブサーバモジュール509、ブラウザ504及びGUI515は、設定を行った結果を表示する。
ステップS415では、ウェブサーバモジュール509は、設定値が設定可能かを確認する。そして、設定値が設定可能であると、ウェブサーバモジュール509は、ステップS416を行う。
ステップS416では、ウェブサーバモジュール509は、設定値を設定する。
ステップS417、ステップS418及びステップS419では、ウェブサーバモジュール509、ブラウザ504及びGUI515は、設定を行った結果を表示する。
例えば、以上のようにして、設定値の設定が行われる。
<処理結果例>
図21は、処理結果例を示す図である。全体処理を行うと、例えば、図示するような処理結果が得られる。
まず、この例では、設定値に、「新規パスワード」となる文字が設定されるとする。以下、図示するような操作画面において、操作で入力される「新規パスワード」を示す文字を「パスワード2101」という。
そして、この例では、パスワード2101は、設定できる文字数の最大値が「128」とルールで設定されているとする。すなわち、パスワード2101が本体部についての設定値であれば、本体部ルール等で検査される。一方で、パスワード2101が操作装置についての設定値であれば、操作部ルール等で検査される。
この例では、文字数表示2102によって、検査結果が表示される。文字数表示2102は、例えば、図示するように、パスワード2101の文字数をカウントした値と、設定可能な最大値とを示す。具体的には、文字数表示2102では、「129」(左側の値である。)が、パスワード2101の文字数をカウントした値を示す。一方で、文字数表示2102では、「128」(右側の値である。)が、設定できる文字数の最大値を示す。
例えば、文字数表示2102は、表示する文字を赤字にしてエラーを知らせる。なお、エラーの表示方法は、赤字のように色で知らせる方法に限られない。例えば、エラーの表示方法は、文字の点滅、文字の強調、エラーメッセージの表示、警告音又はこれらの組み合わせ等でもよい。
この例は、パスワード2101の文字数が最大値よりも大きい値であるため、エラーとなる例である。このように、設定値に、エラーがないか等の検査を行うことができる。
<検査、本体部ルール及び操作部ルールについて>
どのような検査を行うか、すなわち、共通ルール、本体部ルール及び操作部ルールは、例えば、以下のような管理テーブル等によって設定される。
<管理テーブル例>
例えば、下記(表3)に示す管理テーブル等によって、本体部ルールが設定される。
すなわち、上記(表3)に示すような管理テーブルは、本体部に設定される。
「項目名」は、設定値の名称を示す。
「項目タイプ」は、設定値の入力形式を示す。例えば、「STRING」であると、設定値は、文字列入力型である。また、「NUMBER」であると、設定値は、数値入力型である。なお、入力形式は、他の形式があってもよい。
「ID」は、設定値を識別する識別番号等である。この例では、「ID」における上位の4桁が、設定値を用いるモジュール等を示す。具体的には、「0001」であると、ネットワークモジュール、「0002」であると、スキャンモジュール等のように、上位の4桁が設定される。また、上位の4桁が「1001」であると、「ID」は、操作装置の設定値であることを示す。一方で、下位の4桁が各モジュール等での項目を示す。すなわち、モジュール等で複数の設定値を扱う場合には、下位の4桁で設定値が特定される。
「文字コード」は、設定値を扱うための文字コードを示す。したがって、設定する文字コードがないと、設定値を扱うことができない。すなわち、扱える文字コードの種類は、動作環境等によって異なるため、例えば、操作装置が扱える文字コードであっても、本体部は扱えない場合がある。
「最小値」は、設定可能な設定値の最小の長さを示す。
「最大値」は、設定可能な設定値の最大の長さを示す。
「正規表現」は、入力可能な文字列を正規表現で示す。
「チェック関数」は、設定値を検査するのに実行するチェック関数を示す。
「依存する設定値」は、設定値を設定する上で依存する設定値を示す。具体的には、「依存する設定値」には、ID等が設定される。そして、「依存する設定値」は、設定値の設定範囲等に影響がある設定値を示す。具体的には、パスワードが設定値の場合には、「依存する設定値」は、例えば、セキュリティポリシを設定する設定値等が該当する。セキュリティポリシに応じて、例えば、パスワードを構成する文字数の最大値又は最小値等が定まる場合がある。つまり、セキュリティレベルを満たす程度の文字数となるパスワードでないと設定できないセキュリティポリシが設定される場合がある。このように依存関係のある設定値が把握できると、依存する設定値に基づいて検査ができる。
以下、下記(表4)及び下記(表5)では、管理テーブルを構成する項目は同様とする。
例えば、上記(表4)のように、本体部と同様の形式となる管理テーブルが操作装置の方にも別個に設定される。このように、本体部と、操作装置とに別個に管理テーブルがあると、本体部ルールと、操作部ルールとが別個に設定できる。
例えば、本体部は、上記(表4)に示す管理テーブルを操作装置から、アプリ起動時等に取得する。そして、上記(表3)に示す管理テーブルと、上記(表4)に示す管理テーブルとをマージして、例えば、下記(表5)のような管理テーブルを生成する。
上記(表5)と、上記(表3)とを比較すると、上記(表5)は、上記(表4)に示す「プロキシ設定−ユーザ名」の行が加わる点が異なる。つまり、上記(表5)は、上記(表4)の内容を取り込んでいるため、上記(表3)にないデータが加わる。
一方で、上記(表5)と、上記(表4)とを比較すると、上記(表5)では、「プロキシ設定−ユーザ名」の行において、「文字コード」及び「チェック関数」の部分が空欄となる点が異なる。
このように空欄となるのは、「文字コード」で設定される文字コードが、操作装置で扱えても、本体部では扱えない場合等である。したがって、上記(表5)では、「文字コード」が空欄となる。
同様に、「チェック関数」で設定される関数が、操作装置では実行できても、本体部では実行できない場合等である。したがって、上記(表5)では、「チェック関数」が空欄となる。
上記(表5)に示す例のように、検査が本体部で可能な設定値と、不可能な設定値がある。このような場合には、設定値が、操作装置の設定値であるか、又は、本体部の設定値であるか判定されて、操作装置の設定値は、操作装置で検査されると、検査されない設定値をなくすことができる。
また、文字コードが対応していないと、文字数をカウントするのが難しい場合も多い。その結果、最大値及び最小値等の検査が難しい場合もある。したがって、設定値を入力するのに用いた文字コードのある環境下で検査が行われるのが望ましい。
同様に、チェック関数等は、関数が実装されていないと、関数を実行するのが難しい場合が多い。そこで、チェック関数が実行可能な環境下でチェック関数等を実行して、設定値が検査されるのが望ましい。
なお、この例では、「最大値」及び「最小値」が共通ルールの例となる。すなわち、操作装置の検査でも、本体部の検査でも同様に行われる検査等が共通ルールで設定されてもよい。例えば、共通ルールは、以下のように取得されてもよい。
図22は、共通ルール等の取得を示すソースコードの例である。例えば、共通ルールについての情報は、図示するようなコード(以下「共通ルールコード2201」という。)等で取得される。共通ルールコード2201は、例えば、以下のような情報を含む。
「id」は、設定値を識別する識別番号等である。上記(表3)等と同様に、この例では、上位の4桁が、設定値を用いるモジュール等を示す。
「title」は、設定値の名称を示す。
「type」は、設定値の入力形式を示す。図示する例で示す「string」は、入力形式が文字列入力形式であることを示す例である。
「value」は、設定値の配列キーを示す。図示する例で示す「UserA」は、設定値に「UserA」という文字が設定されることを示す例である。
「data」は、設定値ごとの情報を格納する。この例では、「data」には、「maxLength」、「minLength」及び「regExp」が格納される。そして、この例では、「data」に設定される項目が共通ルールで利用される。
「maxLength」は、設定値に設定が可能な最大の長さを示す。例えば、「maxLength」は、バイト数等で設定される。つまり、図示する例では、設定値は、100 バイト以下であれば設定可能である。
「minLength」は、設定値に設定が可能な最小の長さを示す。例えば、「minLength」は、バイト数等で設定される。つまり、図示する例では、設定値は、0 バイト以上であれば設定可能である。
「regExp」は、設定値に設定可能な文字の種類等を示す。例えば、「regExp」は、正規表現等で設定される。つまり、図示する例では、設定値は、アラビア数字及び英数字(大文字及び小文字)であれば設定可能である。
例えば、文字コードがどのような種類であっても、検査が可能な設定値である場合がある。このような設定値は、例えば、共通ルール等で検査されてもよい。
<機能構成例>
図23は、画像形成装置の機能構成例を示す機能ブロック図である。例えば、画像形成装置100は、第1の記憶部2309、第2の記憶部2310、第1設定部2301、第2設定部2302、判定部2303及び検査部2304等を備える機能構成である。また、画像形成装置100は、図示するように、表示部2305等を更に備える機能構成であるのが望ましい。以下、図示する機能構成を例に説明する。
第1設定部2301は、画像形成装置100についての初期設定を受け付ける第1設定手順を行う。例えば、第1設定部2301は、通信I/F227等によって実現される。以下、第1設定部2301によって受け付ける設定値を「第1設定値2306」という。
第2設定部2302は、操作装置についての設定を受け付ける第2設定手順を行う。例えば、第2設定部2302は、操作パネル215等によって実現される。以下、第2設定部2302によって受け付ける設定値を「第2設定値2307」という。
判定部2303は、設定値が、第1設定値2306であるか、又は、第2設定値2307であるかを判定する判定手順を行う。例えば、判定部2303は、CPU221等によって実現される。
検査部2304は、判定部2303による判定結果2308に基づいて、設定値のうち、第2設定値2307を操作装置110に検査させる検査手順を行う。例えば、検査部2304は、接続I/F216等によって実現される。
表示部2305は、検査結果等を表示する表示手順を行う。例えば、表示部2305は、操作パネル215等によって実現される。
第1の記憶部2309は、初期設定を記憶する。例えば、第1の記憶部2309は、本体部データベース511等によって実現される。
第2の記憶部2310は、操作部又は操作装置が有する記憶部である。例えば、第2の記憶部2310は、操作部データベース505等によって実現される。
以上のような構成であると、画像形成装置100は、初期設定等で設定される第1設定値2306と、操作装置110等で設定される第2設定値2307とを含む様々な設定値を受け付けることができる。したがって、設定値には、少なくとも第1設定値2306と、第2設定値2307の2種類が混在する。
そこで、判定部2303によって、設定値が第1設定値2306及び第2設定値2307のどちらであるかが判定される。そして、検査部2304は、第1設定値2306等を共通ルール及び本体部ルール等で検査する。一方で、第2設定値2307は、操作装置110で検査される。このようにすると、設定値は、本体部及び操作部のどちらの設定値も検査される。
例えば、検査部2304は、入力されるルールに基づいて、設定値について、文字列の長さ及びエラーでないかを少なくとも検査する。このようにすると、設定値に、長すぎる文字列、短すぎる文字列及びエラーとなる設定値がないかを検査できる。そのため、画像形成装置100は、連携する装置の構成に基づいて、それぞれの設定値を適した装置に検査させることができる。このようにすると、各設定値に適した検査方法が適用される。そのため、ユーザには、設定可能な残り文字数及びエラーの有無等が表示できる。そして、ユーザは、検査結果を入力中等でも即座に確認することができる。
また、ルールは、本体部ルール及び操作部ルールのように、本体部と、操作装置等とに別個に設定されるのが望ましい。このように、ルールが別個にあると、各装置等の文字コード等に合わせて検査を行うことができる。
さらに、検査は、設定値を入力するのに用いた文字コードに基づいて、操作装置110に検査させるか否かが決定されるのが望ましい。すなわち、文字コードは、本体部と、操作装置とで異なる場合がある。したがって、操作装置でないと扱わない文字コードの場合がある。このような場合には、文字コードを扱える操作装置の環境下で設定値は検査されるのが望ましい。文字コードを扱えない環境では、例えば、文字数がカウントできない等が発生する。したがって、文字コードに基づいて、検査を行う環境を操作装置とするか否かを決定すると、設定値の文字数等が正確に検査できる。
このように、複数の制御部がある場合等では、文字コード又は入力範囲等が異なる場合がある。そのため、設定値のカウント及び種類等が、正確に把握できない場合がある。このような場合は、実際に設定値を設定してみないとエラー等があるか否か分からないという場合がある。そこで、本実施形態のように、どの環境下で検査を行った方がよいかが判定され、判定結果に基づいて検査が行われると、設定値のエラー等が設定する前等でも把握できる。
また、設定値に対する操作は、操作部又は操作装置による操作、すなわち、第2設定部による設定が排他ロック等で優先されるのが望ましい。操作装置等を用いる設定は、画像形成装置の近くまで近づいて操作される場合が多い。そのため、操作を行う者は、ネットワークを利用して不正に操作しようとする者である可能性が低い。又は、操作を行う者は、設定した設定値で直ぐに画像形成装置を使用しようとする者等である可能性が高い。そのため、ブラウザ等による操作より、操作装置等による操作を優先させると、ユーザの利便性を高くすることができる。
画像形成装置100は、操作部を備える構成でもよい。すなわち、画像形成装置100は、操作装置110以外の入力装置及び出力装置等で実現される操作部を備える構成でもよい。そして、操作部による操作手順で、第2設定値が受け付けられてもよい。
<その他の実施形態>
なお、本発明に係る各処理の全部又は一部は、低水準言語又は高水準言語で記述され、コンピュータに情報処理方法を実行させるためのプログラムによって実現されてもよい。すなわち、プログラムは、情報処理装置又は複数の情報処理装置を含む情報処理システム等のコンピュータに各処理を実行させるためのコンピュータプログラムである。
したがって、プログラムに基づいて情報処理方法が実行されると、コンピュータが有する演算装置及び制御装置は、各処理を実行するため、プログラムに基づいて演算及び制御を行う。また、コンピュータが有する記憶装置は、各処理を実行するため、プログラムに基づいて、処理に用いられるデータを記憶する。
また、プログラムは、コンピュータが読み取り可能な記録媒体に記録されて頒布することができる。なお、記録媒体は、磁気テープ、フラッシュメモリ、光ディスク、光磁気ディスク又は磁気ディスク等のメディアである。さらに、プログラムは、電気通信回線を通じて頒布することができる。
なお、本発明に係る実施形態は、画像形成システムによって実現されてもよい。また、画像形成システムは、各処理を冗長、分散、並列、仮想化又はこれらを組み合わせて実行してもよい。
以上、実施形態における一例について説明したが、本発明は、上記実施形態に限定されない。すなわち、本発明の範囲内で種々の変形及び改良が可能である。