以下、発明を実施するための最適な形態について、図面を参照して説明する。
<第1実施形態>
<画像形成装置例>
図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には、タッチパネル以外に、ハードキー等があってもよい。すなわち、操作画面を操作するのにインタフェースとなる構成は、図示する以外の構成でもよい。
さらに、図示するように、操作画面は、ヘルプボタンがあってもよい。以下、ヘルプボタンが押されると、あらかじめ設定されるヘルプコンテンツが画面上に展開される例で説明する。このように、ヘルプボタンを押す操作によって、ユーザは、いわゆるヘルプ及びマニュアル等を参照することができる。なお、ヘルプコンテンツの参照方法は、ヘルプボタンを押す操作以外の方法でもよい。また、参照されるヘルプコンテンツを提供するファイルは、操作装置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、オプション管理モジュール515及び認証モジュール516等のモジュールがある例となる。なお、モジュール構成は、インストールされるプログラム等によって定まる。なお、モジュールは、例えば、ファックス等でもよい。
ネットワークモジュール512は、ネットワークを用いて通信を行う。
スキャンモジュール513は、スキャナ等を用いて画像のスキャンを行う。
印刷モジュール514は、印刷装置等を用いて用紙等に画像形成を行う。
オプション管理モジュール515は、画像形成装置100に接続される機器、いわゆるオプションを管理する。したがって、オプション管理モジュール515は、画像形成装置100の構成を把握する。
認証モジュール516は、ユーザの権限等を認証する。
PC500は、情報処理装置である。そして、PC500は、図示するように、画像形成装置100と同じネットワークに接続する。また、この例では、PC500は、ブラウザを有する。そのため、ウェブサーバモジュール509がPC500からのアクセスを許可すると、PC500は、画像形成装置100の設定を遠隔で行うことができる。なお、PC500は、なくともよい。また、PC500は、情報処理装置であれば、他の種類であってもよい。
<操作画面例>
上記のようなシステム構成によって、例えば、以下のように画面データ及び設定値等が取得され、操作画面が生成されるため、操作画面の表示及び画面の遷移が可能となる。
図6は、カテゴリの選択を行う操作画面の例を示す図である。以下、操作装置、すなわち、クライアントアプリによって、図示するような第1画面600が表示される例で説明する。
第1画面600は、カテゴリごとに設定を分けて表示する。図示する例では、第1画面600における「地紋、印字設定」、「データ管理」、「文書管理」、「セキュリティ」、「機能制限」、「認証・課金設定」及び「ユーザ認証管理」がカテゴリ名を示し、かつ、選択を行うボタンとなるGUI(Graphical User Interface)の例である。これらの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は、設定値を設定するための操作画面を生成及び表示する処理例を示すシーケンス図である。例えば、第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に設定値を問い合わせる。例えば、問い合わせは、以下のようなソースコードに基づいて行われる。
図13は、設定値の問い合わせを行うソースコードの例である。例えば、図示するような「id」を指定するコード(以下「指定コード1601」という。)で問い合わせを行うと、「id」が「0000000300000065」となる設定値について問い合わせが行われる。なお、問い合わせは、図示するように、「lang」で「ja」とするように、言語を日本語でする等の設定が含まれてもよい。
ステップS207では、操作部データベース505は、問い合わせに応じてデータベースを読み込む。
ステップS208では、操作部データベース505は、問い合わせに対して、設定値を返答する。例えば、以下のような返答が行われる。
図14は、設定値の問い合わせに対する返答を行うソースコードの例である。具体的には、図示するソースコードにおいて、「title」等の設定値を返答するコード(以下「設定値コード1701」という。)がステップS206の問い合わせに対する返答となる。
具体的には、指定コード1601における「id」で指定された項目に対して、設定値コード1701は、アプリケーション又はモジュール等に設定されている最新の設定値を返す。
ステップS209では、ウェブサーバモジュール509は、設定値等を通知する。すなわち、ウェブサーバモジュール509は、問い合わせにより、ステップS205又はステップS208等によって設定値を取得する。そして、ステップS209では、ウェブサーバモジュール509は、取得した設定値等をクライアントアプリ503に通知する。
ステップS210では、クライアントアプリ503は、画面を描画する。
ステップS211では、クライアントアプリ503は、描画した画面を表示する。
例えば、操作画面等の画面は、以下のように描画及び表示される。
図15は、画面描画処理の一例のイメージ図である。図示するイメージ図は、オブジェクトに基づき、設定画面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)に示すような操作画面及び設定値を表示することができる。
<設定値の更新処理例>
例えば、設定値を更新する場合には、以下のような処理が行われてもよい。
図16は、設定値の更新及び表示する処理例を示すシーケンス図である。すなわち、図示する処理は、表示された設定画面において、ユーザが設定値を変更する(例えば、図9(C)において、ユーザは、「項目A」、「項目B」又は「項目C」の設定値を設定(変更)して「OK」ボタンを押下する操作を行う。)の処理である。以下、図12に示す処理をベースにする例で説明する。したがって、図12に示す処理と同一の処理には、同一の符号を付し、重複する説明を省略する。
この例で示す処理は、ステップS301が加わる点が異なる。
また、ステップS201では、ユーザ1201は、設定値を変更する操作を更に行う。
ステップS202では、クライアントアプリ503は、確定した設定値の書き込みを要求する。
ステップS204及びステップS206では、確定した設定値が、書き込みされる。
ステップS205及びステップS208では、書き込みの結果が、通知される。
ステップS209では、1つ上の階層の画面が、描画される。
ステップS301では、操作部データベース505は、更新した設定値を通知する。
<排他ロックについて>
画像形成装置は、操作装置による設定を優先させるのが望ましい。
具体的には、画像形成装置は、ネットワークを介するブラウザを用いた操作で設定値が操作できるように許可してもよい。このようにすると、PC500等から、設定値は、設定が可能となる。したがって、このような設定の場合には、設定値は、操作装置等からも、PC500等からも設定が可能となる。
このような場合には、画像形成装置は、操作装置による操作が優先されるように、排他ロック等を行うのが望ましい。具体的には、まず、操作装置による操作が開始されると、画像形成装置は、対象となる設定値又は画像形成装置の全体に対して排他ロックを行う。このように排他ロックが行われると、ロックされている間は、PC500等からの操作が排他される。したがって、操作装置による操作が、PC500等からの操作等より優先される。
なお、PC500等からの操作等に対しても排他ロックが用いられてもよい。例えば、PC500等からの操作に基づいて、設定値の取得、設定及び更新等が行われる場合等に設定値等が排他ロックされてもよい。
このように、操作装置による操作に基づく設定等を優先させると、操作装置を用いる設定、すなわち、画像形成装置の前等にいるユーザが行う操作による設定が優先されるようにできる。
<データ構成及びアプリケーション構成の例>
図17は、データ構成及びアプリケーション構成例を示すブロック図である。例えば、図示するように、画像形成装置100には、あらかじめ第1アプリケーションAP1、第2アプリケーションAP2、・・・のようにアプリケーションがインストールされる。さらに、画像形成装置100には、アプリケーションインストーラINS等を用いると、第5アプリケーションAP5のように、アプリケーションを導入することができる。
また、画像形成装置100は、図示するように、例えば、アプリケーション及びシステムプログラムSPR等が共通して使用できる共通記憶領域M1を有する。共通記憶領域M1には、例えば、下記(表3)のように、設定値等が記憶される。
上記(表3)における「設定オーナ」は、設定値を設定する主体である。具体的には、「設定オーナ」が「第1アプリケーション」である場合には、第1アプリケーションによって設定値が設定及び利用されることを示す。
「ID」(Identification)は、識別番号等である。つまり、「ID」が特定されると、設定値が特定される。
「設定値種別」は、設定値の形式を示す。例えば、「数値」であると、設定値は、数値が設定される。また、「文字列」であると、設定値は、文字等が設定される。「択一選択」であると、設定値は、「入力範囲」にあらかじめ入力される選択肢から選択される形式で設定される。なお、「設定値種別」は、これら以外の形式があってもよい。また、図15等で示す処理等では、「設定値種別」が設定種別となる。
「入力範囲」は、設定値に入力可能な範囲、種類又は選択肢等を示す。具体的には、「0~10」であると、設定値には、「0」乃至「10」の範囲で値が設定される。したがって、「入力範囲」より範囲外となる値は、エラーと判断される。
「タイトル」は、設定画面等に表示させる設定値を説明する文字等を示す。
「設定値」は、現在、設定されている設定値を示す。なお、「‐」は、共通記憶領域M1において、設定値を保存していないことを示す表示である。すなわち、例えば、図示するように、任意記憶領域M2等に設定値が保存されている場合等である。
「配置箇所」は、各設定値をGUIで設定し、かつ、設定値及び設定画面をツリー構造とする場合において、ホーム画面に対する位置を示す。例えば、「その他の設定 > 第1アプリケーションの設定」という設定は、最初の設定画面で「その他の設定」というボタンを押し、次に表示される設定画面で「第1アプリケーションの設定」というボタンを押すと、対象とする設定値を設定できる設定画面に辿り着くことを示す。
以下、上記(表3)のような格納部に設定値及び制御情報等を格納する場合を例に説明する。
なお、設定値及び制御情報等は、1つの記憶領域ですべて記憶されてもよい。一方で、設定値及び制御情報等は、図示するように、複数の記憶領域で分散又は冗長して記憶される構成等でもよい。
<機能構成例>
図18は、画像形成装置の機能構成例を示す機能ブロック図である。例えば、画像形成装置100は、設定受付部FN1、格納部FN2及び導入部FN3を備える機能構成である。さらに、画像形成装置100は、追加部FN4を更に備える機能構成であるのが望ましい。以下、図示する機能構成を例に説明する。
設定受付部FN1は、アプリケーションに対する設定値の入力を受け付ける設定画面でアプリケーションを実行させるユーザ操作を受け付ける設定受付手順を行う。例えば、設定受付部FN1は、操作装置110等で実現する。
格納部FN2は、設定画面を表示するのに利用される制御情報を格納する格納手順を行う。例えば、格納部FN2は、HDD224等で実現する。
導入部FN3は、アプリケーションを導入するための処理を行う導入手順を行う。例えば、導入部FN3は、CPU211等で実現する。
追加部FN4は、ユーザ操作を受け付けるためのGUI等を表示させる追加手順を行う。例えば、追加部FN4は、CPU211等で実現する。
なお、機能構成は、図示する機能構成に限られない。例えば、機能構成は、図示する以外の機能が更にあってもよい。
<全体処理例>
図19は、全体処理例を示すシーケンス図である。例えば、画像形成装置100は、設定画面でアプリケーションを実行させるユーザ操作を受け付けられるようにするには、図示するような処理を行う。
以下、追加アプリケーションAP10(図17に示すアプリケーション構成では、第5アプリケーションAP5等が相当する。)が導入される場合を例に説明する。
ステップS1では、アプリケーションインストーラINSは、追加アプリケーションAP10をインストールする。例えば、図示するように、ユーザ1201が追加アプリケーションAP10をインストールするように操作すると、アプリケーションインストーラINSは、追加アプリケーションAP10のインストールを開始する。
ステップS2では、アプリケーションインストーラINSは、いわゆるCreateメッセージ等を出力する。すなわち、追加アプリケーションAP10のインストールが完了し、以降、追加アプリケーションAP10が実行できる状態であることを示す。
ステップS3では、アプリケーションインストーラINSは、追加アプリケーションAP10が導入されたことを設定画面1804等に通知する。
ステップS4では、設定画面1804は、設定値等を格納するように要求する。
ステップS5では、追加アプリケーションAP10は、共通記憶領域M1等に設定値等を書き込む。
ステップS6では、追加アプリケーションAP10は、設定値が格納されたことを応答する。
ステップS7では、設定画面1804は、ユーザ1201が設定画面1804を呼び出す操作を行うと、画面を表示するようにする。
ステップS8では、設定画面1804は、設定値等を読み出す。
ステップS9では、設定画面1804は、設定値等を表示する。例えば、以下のような設定画面が表示されるとする。
図20は、設定画面の例を示す図である。図示する設定画面では、様々な機能に用いる設定値に対するユーザ操作をボタン等のGUIで受け付ける。この例では、「その他の設定」というボタンが押されると、アプリケーションについての設定値が操作できる画面に遷移する例であるとする。
ステップS10では、設定画面1804は、「その他の設定」というボタンを押す操作を受け付ける。
ステップS11では、設定画面1804は、例えば、以下のように画面を遷移させる。
図21は、設定画面の遷移例を示す図である。図示するように、設定画面1804は、アプリケーションに対する操作を受け付ける画面を表示する。この例では、例えば、「第5アプリケーションの設定」というボタンが押されると、設定画面1804は、第5アプリケーションの設定値等に対するユーザ操作を受け付ける画面に遷移する。
ステップS12では、設定画面1804は、「第5アプリケーションの設定」というボタンを押す操作を受け付ける。
ステップS13では、設定画面1804は、設定値等を読み出す。
ステップS14では、設定画面1804は、例えば、以下のように画面を遷移させる。
図22は、設定画面の遷移例を示す図である。例えば、設定画面1804では、アドレス帳をバックアップするアプリケーションを実行させるボタン(以下「バックアップ実行ボタン18041」という。)のユーザ操作を受け付ける。
同様に、設定画面1804では、アドレス帳をリストアするアプリケーションを実行させるボタン(以下「リストア実行ボタン18042」という。)のユーザ操作を受け付ける。
以下、バックアップ実行ボタン18041が押される場合、すなわち、アドレス帳をバックアップする処理をアプリケーションに実行させる操作を行う場合を例に説明する。
ステップS15では、設定画面1804は、バックアップ実行ボタン18041を押す操作を受け付ける。
ステップS16では、設定画面1804は、例えば、以下のように画面を遷移させる。
図23は、設定画面の遷移例を示す図である。例えば、設定画面1804は、図示するように、キャンセル操作ボタン18043と実行操作ボタン18044を表示する。
実行操作ボタン18044は、アプリケーションを実行させるユーザ操作を受け付けるGUIの例である。
キャンセル操作ボタン18043は、アプリケーションの実行をキャンセルさせるユーザ操作を受け付けるGUIの例である。
例えば、実行操作ボタン18044が押されると([実行させる操作を受け付けた場合])、画像形成装置は、ステップS19に進む。一方で、キャンセル操作ボタン18043が押されると([キャンセル操作を受け付けた場合])、画像形成装置は、ステップS17に進む。
ステップS17では、設定画面1804は、キャンセル操作ボタン18043を押す操作を受け付ける。
ステップS18では、設定画面1804は、例えば、図22に示す画面に遷移させる。
ステップS19では、設定画面1804は、実行操作ボタン18044を押す操作を受け付ける。
ステップS20では、設定画面1804は、実行I/Fにより、追加アプリケーションAP10を呼び出す。
ステップS21では、追加アプリケーションAP10は、所定の処理を実行する。この例では、追加アプリケーションAP10は、アドレス帳のバックアップを行う。
ステップS22では、設定画面1804は、追加アプリケーションAP10に対して実行の状態を示す情報等を要求する。
ステップS23では、設定画面1804は、追加アプリケーションAP10から要求に対する応答を受け取る。
ステップS24では、設定画面1804は、ステップS23による応答に基づいて、例えば、以下のように、設定画面を遷移させる。
図24は、実行中における設定画面の例を示す図である。図示するように、設定画面1804は、「0%」のように追加アプリケーションによる処理の進行度等を表示する。なお、進行度は、処理が完了した度合いによってリアルタイムに変化する値である。また、設定画面1804には、進行度及びキャンセル操作ボタン18043以外の表示及びGUIがあってもよい。
一定の時間が経過した後、ステップS25乃至ステップS27の処理が行われる。例えば、ステップS25乃至ステップS27は、ステップS22乃至ステップS24と同様に実行される。
ステップS25では、設定画面1804は、追加アプリケーションAP10に対して実行の状態を示す情報等を要求する。
ステップS26では、設定画面1804は、追加アプリケーションAP10から要求に対する応答を受け取る。
ステップS27では、設定画面1804は、ステップS26による応答に基づいて、例えば、以下のように、設定画面を遷移させる。
図25は、実行中における設定画面の例を示す図である。図24と比較すると、図25では、処理が進行し、進行度が「50%」である点が異なる。
そして、図24又は図25に示すような設定画面1804において、キャンセル操作ボタン18043に対する操作を受け付けると(図における[実行中にキャンセルを受け付けた場合]である。)、設定画面1804は、ステップS28に進む。一方で、キャンセル操作ボタン18043に対する操作がなく、処理が完了すると(図における[キャンセルなく完了した場合]である。)、設定画面1804は、ステップS34に進む。
ステップS28では、設定画面1804は、キャンセル操作を受け付ける。
ステップS29では、設定画面1804は、キャンセルI/Fにより、追加アプリケーションAP10を呼び出す。
ステップS30では、追加アプリケーションAP10は、所定の処理をキャンセルする。この例では、追加アプリケーションAP10は、アドレス帳のバックアップをキャンセルする。処理をキャンセルする処理が完了すると、例えば、ステップS31乃至ステップS33のような処理が行われる。
ステップS31では、設定画面1804は、追加アプリケーションAP10に対して実行の状態を示す情報等を要求する。
ステップS32では、設定画面1804は、追加アプリケーションAP10から要求に対する応答を受け取る。
ステップS33では、設定画面1804は、ステップS32による応答に基づいて、例えば、以下のように、設定画面を遷移させる。
図26は、実行中に処理のキャンセルを行った場合の設定画面の例を示す図である。例えば、図示するように、設定画面1804は、処理をキャンセルした結果を表示する。
ステップS34では、設定画面1804は、追加アプリケーションAP10に対して実行の状態を示す情報等を要求する。
ステップS35では、設定画面1804は、追加アプリケーションAP10から要求に対する応答を受け取る。
ステップS36では、設定画面1804は、ステップS35による応答に基づいて、例えば、以下のように、設定画面を遷移させる。
図27は、キャンセルがなく実行が完了した場合の設定画面の例を示す図である。図示するように、設定画面1804は、例えば、進行度が「100%」である、すなわち、すべての処理が完了したこと等を示す。
以上のように、画像形成装置は、アプリケーションに対して設定値等の入力を受け付ける設定画面でアプリケーションを実行又は実行のキャンセルするユーザ操作を受け付けることができる。このような設定画面を実現させるには、画像形成装置は、例えば、以下のような構成となる。
<設定構造例>
図28は、設定構造例を示す図である。以下、図示するような設定構造において、追加アプリケーションが「第5アプリケーション」である場合を例に説明する。
「第5アプリケーションの設定」は、図示するように、設定の構造の1つであり、この例では、1つの構造が1つの設定画面となる。例えば、図8に示すメニュー構成では、「第5アプリケーションの設定」は「第4階層」に相当する。
そして、この例では、「第5アプリケーションの設定」には、「D001」乃至「D004」の4つの項目がある。以下、「D001」を「第1項目IM1」、「D002」を「第2項目IM2」、「D003」を「第3項目IM3」、及び、「D004」を「第4項目IM4」という。このような設定構造があらかじめされ、例えば、設定画面は、設定画面ごとに、以下のような処理によって表示される。
<設定画面の表示処理例>
図29は、設定画面の表示処理例を示すフローチャートである。
ステップS51では、システムプログラム等は、画面テンプレートの「画面タイトル表示位置」に「親」の「title」の値を描画する。そして、以降、ステップS52乃至ステップS57の処理は、「子」の数だけ繰り返される。
この例では、「親」は、「第5アプリケーションの設定」であり、「第5アプリケーションの設定」がタイトルとして表示される。また、「子」は、第1項目IM1乃至第4項目IM4である。
ステップS52では、システムプログラム等は、「子」の要素(オブジェクト)の種類が「構造」であるか、「項目」であるかを判定する。そして、「構造」であれば(ステップS52で「構造」)、システムプログラム等は、ステップS53に進む。一方で、「項目」であれば(ステップS52で「項目」)、システムプログラム等は、ステップS54に進む。
ステップS53では、システムプログラム等は、例えば、図15に示すように、描画テンプレートに対して描画する。
ステップS54では、システムプログラム等は、「子」の種別を判定する。「子」の種別が「数値型」であれば(ステップS54で「数値型」)、システムプログラム等は、ステップS55に進む。「子」の種別が「文字列型」であれば(ステップS54で「文字列型」)、システムプログラム等は、ステップS56に進む。「子」の種別が「択一選択型」であれば(ステップS54で「択一選択型」)、システムプログラム等は、ステップS57に進む。「子」の種別が「実行型」であれば(ステップS54で「実行型」)、システムプログラム等は、ステップS58に進む。「子」の種別が「時刻型」であれば(ステップS54で「時刻型」)、システムプログラム等は、ステップS59に進む。
なお、種別は、他の型が更にあってもよい。
このように、制御情報の種別を「実行型」のように選択し、「実行型」である制御情報を認識できると、実行I/F及びキャンセルI/F等を実現するソースコード等を認識して、システムプログラムは、実行又はキャンセル用のGUI等を設定画面に追加して表示できる。すなわち、制御情報の種別を設定できると、追加部が実現できる。
ステップS55乃至ステップS59では、システムプログラム等は、例えば、以下のように描画して設定画面を表示する。
図30は、表示処理例を示す図である。例えば、図22のような設定画面1804を表示するには、格納部の例である、設定値格納部DSに図示するように設定する。このようにすると、図29に示す処理等によって、画面テンプレート1803及び描画テンプレート1802等を利用して、設定画面1804が表示できる。具体的には、設定値格納部DSは、以下のような制御情報が入力される。
図31は、格納部の例を示す図である。例えば、設定画面1804において、キャンセル操作ボタン18043及び実行操作ボタン18044等を表示するには、設定値格納部DSには、以下のような制御情報等を入力する。
「ID」が「D001」の1行が、第1項目IM1についての制御情報を入力する格納部である。
「ID」が「D002」の1行が、第2項目IM2についての制御情報を入力する格納部である。
「ID」が「D003」の1行が、第3項目IM3についての制御情報を入力する格納部である。
「ID」が「D004」の1行が、第4項目IM4についての制御情報を入力する格納部である。
以下、追加アプリケーションの実行及びキャンセルに関係する、第3項目IM3及び第4項目IM4の制御情報を例に説明する。
まず、第1設定種別入力E1及び第2設定種別入力E2が示すように、「設定種別」が「実行」と入力されると、制御情報が「実行型」の種類であると認識される。すなわち、項目の種類が、ステップS54で「実行型」と判断される。
そして、「入力範囲」に、第1実行I/F情報C11及び第2実行I/F情報C21を入力すると、設定画面において、実行操作ボタンを表示できる。
同様に、「入力範囲」に、第1キャンセルI/F情報C12及び第2キャンセルI/F情報C22を入力すると、設定画面において、キャンセル操作ボタンを表示できる。
第1実行I/F情報C11、第2実行I/F情報C21、第1キャンセルI/F情報C12及び第2キャンセルI/F情報C22のような制御情報は、例えば、JSON(JavaScript(登録商標) Object Notation)形式等で実現する。
図32は、JSON形式での入力例を示す図である。例えば、図示するようなJSON形式のソースコード等の制御情報で設定画面の表示を実現する。具体的には、第5アプリケーション用コードC5等で「第5アプリケーションの設定」の設定画面を実現する。
そして、例えば、図31に示すような設定値を格納するには、例えば、以下のように、JSON形式で入力する。
図33は、JSON形式での格納部への入力例を示す図である。例えば、第51コードC51のような入力を行うと、図23のように、「アドレス帳をバックアップ」する処理を実行及びキャンセルさせる操作を受け付けられる設定画面を表示できる。
同様に、第51コードC51のような入力を行うと、「アドレス帳をリストア」する処理を実行及びキャンセルさせる操作を受け付けられる設定画面を表示できる。
<第2実施形態>
第2実施形態では、第6アプリケーションを追加アプリケーションの例として説明する。以下、第1実施形態と同様の構成及び処理は省略して説明する。
図34は、格納部の例を示す図である。以下、追加アプリケーションが「機器情報の外部装置保存」の処理を行う場合を例に説明する。外部装置は、例えば、フラッシュメモリ等である。
この例では、「ID」が「E003」の1行に、追加アプリケーションを実行させる操作を受け付けるための制御情報を入力する。
まず、第3設定種別入力E3が示すように、「設定種別」が「実行」と入力されると、制御情報が「実行型」の種類であると認識される。すなわち、項目の種類が、ステップS54で「実行型」と判断される。
そして、「入力範囲」に、第3実行I/F情報C31を入力すると、設定画面において、実行操作ボタンを表示できる。
第1実施形態と比較すると、第2実施形態は、キャンセルI/Fがない点が異なる。
このような制御情報であると、実行中は、例えば、以下のような設定画面が表示される。
図35及び図36は、実行中における設定画面の例を示す図である。第1実施形態と比較すると、設定画面1804にキャンセル操作ボタン18043がない点が異なる。
すなわち、図示するような設定画面にすると、実行中にキャンセルの操作を行えないようにできる。
図37は、全体処理例を示すシーケンス図である。第1実施形態と比較すると、第2実施形態は、全体処理において、ステップS28乃至ステップS36の処理が実行される場合がない点が異なる。
このように、制御情報は、アプリケーションを実行させる実行I/F情報を含み、アプリケーションの実行をキャンセルさせるキャンセルI/F情報がなくともよい。このようにすると、実行中に、アプリケーションの実行をキャンセルさせるユーザ操作を不可にできる。
<第3実施形態>
第3実施形態では、第7アプリケーションを追加アプリケーションの例として説明する。以下、第1実施形態と同様の構成及び処理は省略して説明する。
図38は、格納部の例を示す図である。以下、追加アプリケーションが「音声読み上げサンプル再生」の処理を行う場合を例に説明する。
この例では、「ID」が「F003」の1行に、追加アプリケーションを実行させる操作を受け付けるための制御情報を入力する。
まず、第4設定種別入力E4が示すように、「設定種別」が「実行」と入力されると、制御情報が「実行型」の種類であると認識される。すなわち、項目の種類が、ステップS54で「実行型」と判断される。
そして、「入力範囲」に、第4実行I/F情報C41を入力すると、設定画面において、実行操作ボタンを表示できる。
第2実施形態と比較すると、第3実施形態は、実行I/Fの種類が異なる。
そして、例えば、図38に示すような設定値を格納するには、例えば、以下のように、JSON形式で入力する。
図39は、JSON形式での格納部への入力例を示す図である。例えば、第7コードC7のような入力を行うと、図23乃至図27のような画面が表示されずに、処理が実行できる。すなわち、実行I/Fは、第7コードC7のようなソースコードで実現されてもよい。具体的には、設定画面1804は、以下のように遷移する。
図40は、設定画面の遷移例を示す図である。第1実施形態と比較すると、設定画面1804に対して、「第7アプリケーションの設定」というボタンを押す操作によって、設定値を変更するための設定画面に遷移させる点が異なる。一方で、図20等における操作は、第1実施形態と同様であるため説明を省略する。
例えば、「第7アプリケーションの設定」というボタンが押されると、設定画面1804は、以下のように遷移する。
図41は、設定画面の遷移例を示す図である。この例は、図38及び図39における「F003」の項目により、「音声読み上げサンプル再生」ボタン(以下「処理実行ボタン18047」という。)が表示される例である。
なお、「音声読み上げ機能」は、図38及び図39における「F001」の項目による表示である。さらに、「音声読み上げ速度」は、図38及び図39における「F002」の項目による表示である。
処理実行ボタン18047が押されると、第3実施形態では、図41に示す設定画面1804が維持されて処理が実行される。この例では、あらかじめ入力される音声ファイルに基づいて、音声を再生する処理が第7アプリケーションにより実行される。
すなわち、第3実施形態は、第1実施形態と異なり、アプリケーションによる処理の実行があっても設定画面を遷移させない。
このようにすると、図23乃至図27のような実行及びキャンセルの操作を受け付ける画面及び進行度等を表示する画面を省略できる。したがって、処理がより迅速に実行できる。
また、全体処理は、例えば、以下のように行われる。
図42は、全体処理例を示すシーケンス図である。第1実施形態及び第2実施形態と比較すると、第3実施形態は、ステップS11より後に行われる処理がステップS701乃至ステップS707となる点が異なる。以下、異なる点を中心に説明する。
まず、第3実施形態では、ステップS11で図41に示すような設定画面1804が表示される。
ステップS701では、設定画面1804は、「第7アプリケーションの設定」というボタンを押す操作を受け付ける。
ステップS702では、設定画面1804は、設定値等を読み出す。
ステップS703では、設定画面1804は、例えば、図41に示すような画面に遷移させる。
例えば、処理実行ボタン18047が押されると([実行させる操作を受け付けた場合])、画像形成装置は、ステップS704に進む。
ステップS704では、設定画面1804は、処理実行ボタン18047を押す操作を受け付ける。このような操作が受け付けられると、ステップS705及びステップS706が並列して実行される。
ステップS705では、設定画面1804は、実行I/Fにより、追加アプリケーションAP10を呼び出す。
ステップS706では、追加アプリケーションAP10は、所定の処理を実行する。この例では、追加アプリケーションAP10は、サンプルとなる音声を再生する処理を行う。
ステップS707では、設定画面1804は、ステップS706が実行されているのと並列して設定画面の表示を維持する。すなわち、設定画面1804は、例えば、図41に示すような表示を維持する。
以上のような全体処理であると、設定画面の遷移を少なくできる。このようにアプリケーションによって実行される処理の種類によっては、設定画面が維持された方が望ましい場合もある。また、実行を受け付けるGUI等を表示させるのを省略した方が望ましい場合もあるため、このような実行I/Fで実現されるのが望ましい。さらに、キャンセルさせる操作が省略できる。
<変形例>
アプリケーションの種類及び実行される処理の種類は、上記の例に限られない。すなわち、アプリケーションによって実行される処理は、あらかじめ導入されるアプリケーションによって定まる様々な処理が適用されてもよい。
なお、操作を受け付けるインタフェースは、ボタン以外のGUI等でもよい。
画像形成装置は、操作部を備える構成でもよい。すなわち、画像形成装置は、操作装置以外の入力装置及び出力装置等で実現される操作部を備える構成でもよい。そして、操作部による操作手順で、設定値が受け付けられてもよい。
また、設定値は、ユーザ(グループ等を含む。)に与えられている権限に基づいて抽出されるのが望ましい。ユーザは、権限が与えられている設定値しか設定できない場合が多い。そこで、設定値のうち、ユーザに与えられている権限で設定、変更又は閲覧等が可能である設定値が抽出されるのが望ましい。このようにして、権限のない設定値が省かれると、無駄な処理又は表示等を少なくできる。
同様に、設定値は、周辺機器の有無等に基づいて抽出されるのが望ましい。周辺機器が接続されているか否かによって、設定値は、不要となる設定値もある。そこで、設定値のうち、周辺機器を運用する上で用いる設定値が抽出されるのが望ましい。なお、抽出には、周辺機器の種類まで考慮されるのがより望ましい。このようにして、周辺機器を使用するに関係ない設定値が省かれると、無駄な処理又は表示等を少なくできる。
また、設定値に対する操作は、操作部又は操作装置による操作、すなわち、設定部による設定が排他ロック等で優先されるのが望ましい。操作装置等を用いる設定は、画像形成装置の近くまで近づいて操作される場合が多い。そのため、操作を行う者は、ネットワークを利用して不正に操作しようとする者である可能性が低い。又は、操作を行う者は、設定した設定値で直ぐに画像形成装置を使用しようとする者等である可能性が高い。そのため、ブラウザ等による操作より、操作装置等による操作を優先させると、ユーザの利便性を高くすることができる。
<その他の実施形態>
なお、本発明に係る各処理の全部又は一部は、低水準言語又は高水準言語で記述され、コンピュータに情報処理方法を実行させるためのプログラムによって実現されてもよい。すなわち、プログラムは、画像形成装置、情報処理装置及び複数の情報処理装置を含む画像形成システム等のコンピュータに各処理を実行させるためのコンピュータプログラムである。
したがって、プログラムに基づいて情報処理方法が実行されると、コンピュータが有する演算装置及び制御装置は、各処理を実行するため、プログラムに基づいて演算及び制御を行う。また、コンピュータが有する記憶装置は、各処理を実行するため、プログラムに基づいて、処理に用いられるデータを記憶する。
また、プログラムは、コンピュータが読み取り可能な記録媒体に記録されて頒布することができる。なお、記録媒体は、磁気テープ、フラッシュメモリ、光ディスク、光磁気ディスク又は磁気ディスク等のメディアである。さらに、プログラムは、電気通信回線を通じて頒布することができる。
なお、本発明に係る実施形態は、画像形成システムによって実現されてもよい。また、画像形成システムは、各処理を冗長、分散、並列、仮想化又はこれらを組み合わせて実行してもよい。
以上、実施形態における一例について説明したが、本発明は、上記実施形態に限定されない。すなわち、本発明の範囲内で種々の変形及び改良が可能である。