以下に、本発明にかかる情報処理システム及び情報処理方法の一実施形態を説明する。例えば、コピー機能、プリンタ機能、スキャナ機能、ファクス機能等のうち少なくとも2つの機能を有する複合機(MFP:Multifunction Peripheral)を情報処理システムとして実現した例を説明する。なお、MFPの他に、複写機、プリンタ、スキャナ装置、ファクス装置等の画像形成装置に適用しても良い。また、適用可能なシステム(装置)は、画像形成装置に限られるものではなく、本体部と操作部とを備えるシステム(装置)であればどのような装置にも適用することが可能である。
<第1実施形態>
<MFPのハードウェア構成例>
図1は、第1実施形態におけるMFPのハードウェア構成の一例を示す図である。図1に示すように、MFP1は、本体部10及び操作部20を備える。本体部10は、コピー機能、スキャナ機能、ファクス機能、プリンタ機能等の各種機能を実現する。操作部20は、ユーザの操作に応じた情報(操作入力)を受け付ける。なお、ユーザの操作を受け付けるとは、ユーザの操作に応じて入力される情報(画面の座標値を示す信号等を含む)を受け付けることを含む。操作部20により入力された情報は、命令や情報として本体部10に送信され、本体部10側で対応する処理が実行される。MFP1において、操作部20は、第1のユニットの一例であり、本体部10は、第2のユニットの一例である。
本体部10や操作部20は、接続I/F16、専用の通信路40、接続I/F26を介して相互に通信可能に接続されている。通信路40は、例えばUSB(Universal Serial Bus)規格を用いることができるが、有線か無線かを問わず任意の規格のものでも良い。
本体部10は、操作部20で受け付けた操作に応じた動作を行う。また、本体部10は、クライアントPC(パーソナルコンピュータ)等の外部装置とも通信可能であり、外部装置から受信した指示(印刷指示等)に応じた動作を行うことも可能である。
図1に示す本体部10は、CPU11と、ROM12と、RAM13と、HDD(ハードディスクドライブ)14と、通信I/F(インタフェース)15と、接続I/F16と、エンジン部17とを備える。CPU11、ROM12、RAM13、HDD14、通信I/F15、接続I/F16、エンジン部17は、システムバス18を介して相互に接続されている。
CPU11は、本体部10の動作を統括的に制御する。CPU11は、RAM13をワークエリア(作業領域)としてROM12やHDD14等に格納されたプログラム(アプリケーション)を実行することで、本体部10全体の動作を制御し、上述したコピー機能、スキャナ機能、ファクス機能、プリンタ機能等の各種機能を実現する。なお、これらの機能は、各機能に対応するアプリケーションを実行することで実現される。
通信I/F15は、ネットワーク30と接続するためのインタフェースである。接続I/F16は、通信路40を介して操作部20と通信するためのインタフェースである。
エンジン部17は、コピー機能、スキャナ機能、ファクス機能、プリンタ機能等を実現させるためのハードウェアである。例えば、エンジン部17は、原稿の画像をスキャンして読み取るスキャナ(画像読取部)、用紙等のシート材への印刷を行うプロッタ(画像形成部)、ファクス通信を行うファクス部等を備えている。エンジン部17は、印刷済みシート材を仕分けるフィニッシャや、原稿を自動給送するADF(自動原稿給送装置)のような特定のオプションを実現するためのハードウェアを備えていても良い。
図1に示す操作部20は、CPU21と、ROM22と、RAM23と、フラッシュメモリ24と、通信I/F25と、接続I/F26と、操作パネル27と、外部接続I/F28とを備える。CPU21、ROM22、RAM23、フラッシュメモリ24、通信I/F25、接続I/F26、操作パネル27、外部接続I/F28は、システムバス29を介して相互に接続されている。
CPU21は、操作部20の動作を統括的に制御する。CPU21は、RAM23をワークエリア(作業領域)としてROM22やフラッシュメモリ24等に格納されたプログラムを実行することで、操作部20全体の動作を制御し、ユーザから受け付けた入力に応じた情報(画像)の表示等の各種機能を実現する。
通信I/F25は、ネットワーク30と接続するためのインタフェースである。接続I/F26は、通信路40を介して本体部10と通信するためのインタフェースである。
操作パネル27は、ユーザの操作に応じた各種の入力を受け付けるとともに、各種の情報(例えば受け付けた操作に応じた情報、MFP1の動作状況を示す情報、設定状態等を示す情報等)を表示する。操作パネル27は、例えばタッチパネル機能を搭載した液晶表示装置(LCD)で構成されるがこれに限られるものではなく、タッチパネル機能が搭載された有機EL表示装置で構成されても良い。また、操作パネル27には、ハードウェアキー等の操作部やランプ等の表示部を設けても良い。
外部接続I/F28は、例えばICカードリーダー等と接続するためのインタフェースである。
<MFPの機能ブロック例>
次に、図1のハードウェアにより実現されるMFP1の機能ブロックの例について説明する。図2は、第1実施形態のMFPの機能ブロックの一例を示す図である。図2に示すように、MFP1は、本体部10及び操作部20を備える。
本体部10は、CPU11がプログラムを実行することで実現される機能(モジュール)である通信部111と、設定管理部112と、記憶部113とを備える。上記各部の一部は、CPU11がROM12又はHDD14からソフトウェア(プログラム)を読み出して実行することにより、上記各部がRAM13上にロードされ、上記各部がRAM13上に生成されるソフトウェア(プログラム)であっても良い。また、上記各部の一部又は全部を演算処理で行うプロセッサ等のハードウェア回路で置き換えても良い。
通信部111は、CPU11によってROM12から読み出した命令を実行することにより実現される。通信部111は、専用の通信路40を経由して操作部20と接続し、操作部20との間でデータを送受信する。例えば、通信部111は、操作部20で受け付けた各種の操作入力を受信して、対応する各部に受け渡す。また、通信部111は、各種の情報(例えば、受け付けた入力に応じた情報、MFP1の動作状況を示す情報、設定状態等を示す情報等)を操作部20に表示させるためのデータを送信する。
また、通信部111は、通信I/F15を介してネットワーク30を経由して、外部装置(クライアントPC等)との間でデータを送受信して、対応する各部に受け渡す。
設定管理部112は、CPU11によってROM12から読み出した命令を実行することにより実現される。設定管理部112は、操作部20の設定管理部214で受け付けたユーザ等からの設定情報(設定値)のインポート(入力)要求又はエクスポート(出力)要求を管理する。
設定管理部112は、例えば本体部10で動作するアプリケーション(本体部アプリケーション)に対する設定情報のインポート要求又はエクスポート要求を受け付けた場合、本体部アプリケーションに対して受け付けた要求に応じた処理を実行するように要求する。また、設定管理部112は、例えば操作部20で動作するアプリケーション(操作部アプリケーション)に対する設定情報のインポート要求又はエクスポート要求を受け付けた場合、操作部20の設定管理部214に対して、受け付けた要求に応じた処理を実行するよう要求する。
上述した本体部アプリケーション(第2ユニットアプリケーション)の一例としては、コピー機能を提供するコピーアプリ、スキャナ機能を提供するスキャナアプリ、ファクス機能を提供するファクスアプリ等であるがこれには限定されない。すなわち、本体部10で動作し、設定情報をインポート及びエクスポートできる処理部(ソフトウェア等)であれば、本体部アプリケーションとすることが可能である。
上述した操作部アプリケーション(第1ユニットアプリケーション)の一例としては、操作部20の操作パネル27に対する各種情報の表示を行う表示アプリ、操作部20に対する各種設定を行う設定アプリ、操作部20で動作する他のアプリ等の起動を制御するランチャー、ウェブページの表示等のブラウザ機能を提供するブラウザ等であるがこれには限定されない。すなわち、操作部20で動作し、設定情報をインポート及びエクスポートできる処理部(ソフトウェア等)であれば操作部アプリケーションとすることが可能である。
設定管理部112は、本体部アプリケーション及び操作部アプリケーションに対するエクスポート要求を受け付けた場合、本体部アプリケーションの設定情報を記憶部113から取得し、操作部アプリケーションの設定情報を操作部20の設定管理部214から取得する。設定管理部112は、これらの設定情報を統合すると、通信部111を介して統合した設定情報をユーザ等に対して出力(エクスポート)するよう制御する。
また、設定管理部112は、本体部アプリケーション及び操作部アプリケーションに対するインポート要求を受け付けた場合、各アプリケーションに対してインポートする設定情報をそれぞれ記憶部113に記憶する。設定管理部112は、本体部アプリケーションのそれぞれに対して記憶部113に記憶した設定情報をインポートするように要求する。また、設定管理部112は、操作部アプリケーションについては、操作部20の設定管理部214に対して、記憶部113に記憶したそれぞれの設定情報をインポートするよう要求する。
なお、インポートする設定情報は、例えばMFP1や他のMFP等からエクスポートされた設定情報であり、本体部アプリケーションの設定情報及び操作部アプリケーションの設定情報のうち少なくとも一方が含まれる。
記憶部113は、ROM12又はHDD14に対応する。記憶部113は、各種のデータを記憶する。記憶部113は、例えば、本体部10で動作する本体部アプリケーションを記憶する。また、記憶部113は、エクスポート又はインポートする各アプリケーションの設定情報を記憶する。
操作部20は、CPU21がプログラムを実行することで実現される機能(モジュール)である通信部211と、表示部212と、記憶部213と、設定管理部214とを備える。設定管理部214は、受付部220と、実行判断部221と、アプリ制御部222とを備える。上記各部の一部は、CPU21がROM22又はフラッシュメモリ24からソフトウェア(プログラム)を読み出して実行することにより、上記各部がRAM23上にロードされ、上記各部がRAM23上に生成されるソフトウェア(プログラム)であっても良い。また、上記各部の一部を演算処理で行うプロセッサ等のハードウェア回路で置き換えても良い。
通信部211は、CPU21によってROM22から読み出した命令を実行することにより実現される。通信部211は、専用の通信路40を経由して本体部10と接続し、本体部10との間でデータを送受信する。例えば、通信部211は、設定管理部214の受付部220で受け付けた本体部アプリケーション及び操作部アプリケーションに対する設定情報のエクスポート要求又はインポート要求を本体部10の設定管理部112に対して送信する。また、通信部211は、本体部10の設定管理部112からの操作部アプリケーションに対する設定情報のエクスポート要求又はインポート要求を受け付ける。
また、通信部211は、例えば操作部20で受け付けた各種の入力を本体部10に送信する。また、通信部211は、例えば各種の情報(例えば、受け付けた入力に応じた情報、MFP1の動作状況を示す情報、設定状態等を示す情報等)を操作部20に表示させるためのデータを受信して、対応する各部に受け渡す。
また、通信部211は、通信1/F25を介してネットワーク30を経由して、外部装置(クライアントPC等)との間でデータを送受信して、対応する各部に受け渡す。具体的には、通信部211は、外部装置から機能を実現するための指示やデータを受信して、対応する各部に受け渡す。
表示部212は、操作パネル27の表示画面に対応する。表示部212は、例えば、ユーザに対して情報を提供するための表示情報(画面)を表示する。また、表示部212は、例えば、常時表示される特定の機能を利用するための画面を表示する。
記憶部213は、ROM22又はフラッシュメモリ24に対応する。記憶部113は、各種のデータを記憶する。記憶部213は、例えば、操作部20で動作する操作部アプリケーションを記憶する。また、記憶部213は、操作部アプリケーションからエクスポートされた操作部アプリケーションの設定情報を記憶する。
なお、操作部アプリケーションの一例である表示アプリは、本体部10の各モジュールに組み込まれた画像表示用のライブラリからの要求に応じて、操作パネル27に対する情報の表示を制御する。操作部アプリケーションの一例である設定アプリは、例えば操作部20がスピーカを備える場合の音量の設定、通信方式の設定、認証時のパスワードの設定等を行う。
また、操作部アプリケーションの一例として、第三者(例えば、サードベンダ)が作成したアプリケーション(第三者アプリ)を含めても良い。この場合、例えば第三者アプリに対して必要なサービスが提供されても良い。このサービスとしては、例えば本体部10の詳細な操作や細かい仕様の知識がなくても第三者がアプリケーションを作成可能とするためのインタフェースや、公開できないインタフェースを隠すために提供される。
設定管理部214は、受付部220と、実行判断部221と、アプリ制御部222とを含む。設定管理部214、受付部220、実行判断部221、及びアプリ制御部222は、CPU21によってROM22から読み出した命令を実行することにより実現される。
受付部220は、外部(ユーザ等)から通信部211又は表示部212を介してMFP1で動作するアプリケーション(例えば、本体部アプリケーションや操作部アプリケーション)に対する設定情報のエクスポート要求又はインポート要求を受け付ける。
受付部220が設定情報のエクスポート要求又はインポート要求を受け付けた場合に、実行判断部221は、本体部10の動作状況を取得する。動作状況は、本実施形態では、本体部10から得られる、動作信号を用いた例とする。動作信号は、定期的に送られる信号でも良く、要求応じて送信される信号でも良い。
実行判断部221は、取得した動作状況に基づき、受付部220により受け付けた要求に応じた処理(設定情報の入出力処理)を、本体部10が実行可能か否かを判断する。本実施形態では、即時実行可能か否かを判断する例とするが、即時に制限するものではなく、例えば所定時間以内に実行できるか否かを判断してもよい。
本実施形態では、実行判断部221では、本体部10の動作状況として、本体部10が「省エネモード中」、「HDD14を利用不可(準備中)」、「ユーザが本体部10の設定を閲覧、設定中」であるか否かを判断する。実行判断部211は、これらの動作状況の場合には、本体部10を一時的に利用できないと判断する。本体部10が一時的に利用できない状態の場合、本体部10は、エクスポート要求又はインポート要求に応じた処理が実行できない。そこで、本実施形態の実行判断部221は、これらの動作状況の場合には、本体部10において上述した要求に応じた処理が即時実行できないと判断する。なお、本実施形態は、動作状況をこれらに制限するものではなく、他の動作状況を実行できるか否かの判断に用いても良い。
アプリ制御部222は、上述した表示アプリ、設定アプリ、ランチャー、ブラウザ等の各操作部アプリケーションに対する実行を制御する。例えば、アプリ制御部222は、実行判断部221によって本体部10が、上述した要求に応じた処理が即時実行できないと判断された場合、上述した要求に応じて操作部アプリケーションに対して先行して処理を実行させる。
設定管理部214は、実行判断部221によって本体部10が、上述した要求に応じた処理が実行可能になったと判断された場合、通信部211を介して、本体部10の設定管理部112に対して、受付部220により受け付けた設定情報のエクスポート要求又はインポート要求の内容を転送する。
設定管理部214は、通信部211を介して本体部10の設定管理部112から操作部アプリケーションに対するエクスポート要求を受け付けた場合、記憶部213から操作部アプリケーションがそれぞれ先行してエクスポート処理を実行することで得られた設定情報を取得する。設定管理部214は、取得したそれぞれの設定情報を統合して、通信部211を介して本体部10の設定管理部112に送信する。
設定管理部214は、通信部211を介して本体部10の設定管理部112から操作部アプリケーションに対するインポート要求を受け付けた場合、記憶部213から操作部アプリケーションがそれぞれ先行してインポート処理を実行することで得られたインポート結果を取得する。設定管理部214は、取得したそれぞれのインポート結果を統合して、通信部211を介して本体部10の設定管理部112に送信する。
<設定情報のデータ構造例>
次に、設定情報のデータ構造の例について図3〜図5を用いて説明する。図3は、操作部アプリケーションが処理する設定情報の一例を示す図である。図4は、操作部と本体部との間で送受信される設定情報の一例を示す図である。図5は、本体部の設定管理部が最終的に生成する設定情報の一例を示す図である。
図3(A)は、操作部アプリケーションの一例である設定アプリの設定情報の例を示す。図3(B)は、操作部アプリケーションの一例であるランチャーの設定情報の例を示す。図3(A)及び図3(B)に示すように、設定情報は、「アプリID」、「項目ID」、「項目名」、「機密情報」、「固有情報」、「設定値」等の項目を含む。
アプリIDは、アプリケーションを識別する識別情報である。例えば、本体部10内のエクスポート対象となるアプリケーションと、1つのアプリケーションとみなされる操作部20の設定管理部214とに対して、それぞれアプリIDが割り当てられる。項目IDは、設定情報に含まれる各設定項目をそれぞれ識別する識別情報である。項目名は、設定項目の名称である。
機密情報は、設定項目が機密にすべき情報であるか否かを表す。例えば設定項目が機密にすべき情報である場合に「TRUE」が設定され、設定項目が機密にすべき情報でない場合に「FALSE」が設定される。機密情報が「TRUE」の場合、例えば本体部10の設定管理部112が、設定情報(設定値)を暗号化し、暗号化した設定情報をエクスポートしても良い。
固有情報は、設定項目が装置に固有の情報であるか否かを表す。例えば設定項目が装置に固有の情報である場合に「TRUE」が設定され、設定項目が装置に固有の情報でない場合に「FALSE」が設定される。設定値は、設定項目に対して設定されている値を表す。
図4は、操作部と本体部との間で送受信される設定情報の例を示す図である。図4の例では、上述した図3(A)及び図3(B)の設定情報を統合した場合の設定情報である。操作部20の設定管理部214は、操作部20の操作部アプリケーションが生成した設定情報をまとめて本体部10の設定管理部112に通知する。
図5は、本体部の設定管理部が最終的に生成する設定情報の例を示す図である。本体部10の設定管理部112は、上述した図4に示す設定情報に、本体部10内のアプリケーションの設定情報を加えた設定情報を生成し、最終的な設定情報(エクスポートファイル等)として外部に出力する。
図5の例では、本体部10内のアプリケーションの設定情報として、アプリID=1に対応する設定情報に、上述した図4に示すアプリID=3に対応する設定情報が追加された設定情報が示されている。
本実施形態のインポート処理では、図5に示すような設定情報が、インポート対象の設定情報(インポートファイル等)として入力される。
次に、上述したMFP1により実行されるエクスポート又はインポート処理について説明する。まず、操作部20の受付部220により、外部からエクスポート要求又はインポート要求を受け付けた場合について説明する。
<外部からエクスポート要求又はインポート要求を受け付けた場合>
図6は、外部からエクスポート要求又はインポート要求を受け付けた場合のフローチャートである。図6に示すように、操作部20の受付部220は、外部から通信部211又は表示部212を介してエクスポート要求又はインポート要求を受け付ける(ステップS101)。操作部20の実行判断部221は、本体部10から動作状況を取得し、取得した動作状況に基づいて、本体部10がエクスポート又はインポート処理が即時実行可能か判断する(ステップS102)。
上述したように、操作部20の実行判断部221は、本体部10の動作状況として、例えば本体部10が「省エネモード中」、「HDD14が利用不可(準備中)」、「ユーザが本体部10の設定を閲覧、設定中」であるか否か判断する。また、操作部20の実行判断部221は、これらの動作状況の場合には、本体部10においてエクスポート処理又はインポート処理を即時実行できないと判断する。
操作部20の実行判断部221は、本体部10においてエクスポート処理又はインポート処理が即時実行できないと判断すると(ステップ102において、No)、操作部20の設定管理部214は、ステップS101の処理で受け付けた処理要求の内容をフラッシュメモリ24(記憶部213)に保存する(ステップS103)。
次に、操作部20のアプリ制御部222は、ステップS101の処理で受け付けた処理要求に基づき、本体部10に先行して、操作部20内のエクスポート対象又はインポート対象として指定された操作部アプリケーションに対してエクスポート処理又はインポート処理を実行させる(ステップS104)。操作部アプリケーションは、実行結果をフラッシュメモリ24に一時保存する(ステップS105)。
次に、操作部20の実行判断部221は、本体部10の動作状況に基づき、本体部10においてエクスポート又はインポート処理が実行可能になったと判断すると、操作部20の設定管理部214は、本体部10の設定管理部112に対して、ステップS103の処理で保存した処理要求の内容を転送する(ステップS106)。
本体部10の設定管理部112は、本体部アプリケーション又は操作部20の設定管理部214に対して、エクスポート又はインポート処理を実行させる(ステップS107)。ここで、操作部20の設定管理部214は、本体部10の設定管理部112からエクスポート処理又はインポート処理の実行要求を受け付けると、ステップS105の処理でフラッシュメモリに一時保存した情報(実行結果)を、本体部10の設定管理部112に送信する。
また、ステップS102の処理で、操作部20の実行判断部221は、本体部10においてエクスポート処理又はインポート処理が即時実行可能であると判断すると(ステップS102において、Yes)、操作部20の設定管理部214は、本体部10の設定管理部112に処理要求の内容を転送する(ステップS108)。次に、本体部10の設定管理部112は、本体部アプリケーション又は操作部20の設定管理部214に対して、エクスポート処理又はインポート処理を実行させ(ステップS109)、処理を終了する。
このように、操作部20のアプリ制御部222は、本体部10においてエクスポート処理又はインポート処理が即時実行できない場合に、本体部10よりも先行して操作部アプリケーションに対してエクスポート処理又はインポート処理を実行させる。これにより、本体部10がエクスポート処理又はインポート処理が実行可能となった場合の操作部20での処理時間を短縮することが可能となる。
次に、MFP1により実行されるエクスポート処理、インポート処理の具体例について、図7〜図14を用いて説明する。
<エクスポート処理のシーケンス>
図7は、第1実施形態におけるエクスポート処理の一例を示すシーケンスである。図7の例では、本体部10においてエクスポート処理を即時実行できる場合の例を示している。なお、図7に示すシーケンスは、本体部10の設定管理部112と、本体部アプリケーションの一例としてのコピーアプリ121と、操作部20の設定管理部214と、操作部アプリケーションの一例としての設定アプリ231と、ランチャー232とにより実行される。なお、本体部アプリケーション及び操作部アプリケーションの例は、これに限定されるものではない。
図7に示すように、操作部20の設定管理部214は、受付部220により、外部(例えば、ユーザ等)からエクスポート要求を受け付ける(ステップS111)。
操作部20の設定管理部126は、実行判断部221により、本体部10の動作状況に基づき、例えば本体部10においてエクスポート処理が即時実行可能であると判断されると、エクスポート要求を本体部10の設定管理部112に送信する(ステップS112)。エクスポート要求には、例えばエクスポート対象とするアプリケーションや、最終的にエクスポートする設定情報(エクスポートファイル等)の出力先等が指定されていても良い。
本体部10の設定管理部112は、エクスポート対象として指定されたアプリケーション(図7の例では、コピーアプリ121、操作部20の設定管理部214)に対してエクスポート準備要求を送信する(ステップS113、ステップS114)。
操作部20の設定管理部214は、本体部10の設定管理部112からエクスポート準備要求を受信すると、アプリ制御部222により、操作部20内のエクスポート対象として指定された操作部アプリケーション(図7の例では、設定アプリ231、ランチャー232)に対してエクスポート準備要求を送信する(ステップS115、ステップS116)。
なお、エクスポート準備要求は、設定情報のエクスポートの前に必要となる処理を各アプリケーションに実行させるための要求である。このような処理が不要な場合はエクスポート準備要求を送信しない構成としても良い。
本体部10の設定管理部112は、例えば、エクスポート要求とともに指定されたアプリケーションをエクスポート対象として決定するが、エクスポート対象とするアプリケーションはどのような方法で決定しても良く、予め設定されたアプリケーションをエクスポート対象としても良い。
本体部10の設定管理部112は、ブロードキャスト等により宛先(アプリケーション)を指定せずにエクスポート準備要求を送信しても良い。この場合、エクスポート準備要求を受信したアプリケーションは、自身がエクスポート対象である場合に要求に応じた処理を実行する。
操作部20の設定管理部214も同様に、アプリ制御部222により、例えば指定された操作部アプリケーションに対してエクスポート準備要求を送信する。なお、操作部20のOSがAndroid(登録商標)の場合は、“sendOrderedBroadcast”等をブロードキャストによる送信として利用しても良い。エクスポート準備要求を受信した操作部アプリケーションは、自身がエクスポート対象である場合に要求に応じた処理を実行する。自身がエクスポート対象であるか否かは、フラッシュメモリ24等に事前に設定された情報で判断しても良い。
次に、本体部10の設定管理部112は、エクスポート対象として指定されたアプリケーション(図7の例では、コピーアプリ121、操作部20の設定管理部214)に対してエクスポート実行要求を送信する(ステップS117、ステップS118)。
操作部20の設定管理部214は、本体部10の設定管理部112からエクスポート実行要求を受信すると、アプリ制御部222により、操作部20内のエクスポート対象として指定されたアプリケーション(図7の例では、設定アプリ231、ランチャー232)に対してエクスポート実行要求を送信する(ステップS119、ステップS120)。エクスポート実行要求は、エクスポート準備要求と同様に、エクスポート対象とするアプリケーションに対して送信されても良く、ブロードキャスト等により送信されても良い。
エクスポート実行要求を受信したエクスポート対象となる各アプリケーションは、実行依頼結果をエクスポート実行要求の送信元に対して送信する(ステップS121、ステップS122、ステップS123)。
また、各アプリケーションは、自身の設定情報(エクスポート情報)を指定された又は予め設定された記憶部等に書き込むエクスポート処理を実行する。例えば本体部10内のコピーアプリ121は、設定情報をHDD14に書き込む(ステップS124)。また、例えば操作部20内の設定アプリ231やランチャー232は、設定情報をフラッシュメモリ24に書き込む(ステップS125、ステップS126)。
各アプリケーションは、エクスポート結果を、エクスポート実行要求の送信元に対して送信する。例えばコピーアプリ121は、実行結果を本体部10の設定管理部112に送信する(ステップS127)。また、設定アプリ231やランチャー232は、実行結果を操作部20の設定管理部214に送信する(ステップS128、ステップS129)。実行結果は、エクスポートを実行したアプリケーションを特定する情報(アプリID等)、エクスポートした設定情報を特定する情報(エクスポートファイルの格納場所、名称等)を含んでも良い。
操作部20の設定管理部214は、操作部20内の各アプリケーション(図7の例では、設定アプリ231やランチャー232)から実行結果を受信すると、各アプリケーションが記憶した設定情報を読み出し、統合した設定情報を生成する。操作部20の設定管理部126は、生成した設定情報を本体部10の記憶部(例えばHDD14)に書き込む(ステップS130)。操作部20の設定管理部214は、書き込み処理の実行結果(エクスポート結果)を、本体部10の設定管理部112に送信する(ステップS131)。
本体部10の設定管理部112は、エクスポート対象となるアプリケーションから実行結果を受信すると、各アプリケーションが記憶した設定情報を読み出し、読み出した設定情報を統合した設定情報(エクスポート結果)を作成する(ステップS132)。本体部10の設定管理部112は、エクスポート結果(エクスポートファイル)を出力する(ステップS133)。例えば本体部10の設定管理部112は、エクスポート結果をHDD14に書き込むとともに、書き込みの結果をエクスポートの要求元に通知する。
上述したように、操作部20の設定管理部214は、外部から受け付けたエクスポート要求に対し、本体部10によりエクスポート処理が即時実行可能である場合に、本体部10の設定管理部112にエクスポート要求を通知する。操作部20のアプリ制御部222は、本体部10の設定管理部112によりエクスポート対象のアプリケーションとみなされると、操作部20の操作部アプリケーションを対象として操作部20専用のエクスポート処理を実行させる。
<エクスポート処理での各情報の流れ>
図8は、エクスポート処理での各情報の流れを説明する図である。図8の例では、例えばコピーアプリ121、スキャナアプリ122、設定アプリ231、ランチャー232が、エクスポート対象のアプリケーションとして指定された例が示されている。
図8に示すエクスポート処理では、エクスポート対象となる各アプリケーションは、それぞれ自身のエクスポート情報(設定情報)を記憶部(HDD14やフラッシュメモリ24)に記憶する。例えば、コピーアプリ121やスキャナアプリ122は、HDD14にエクスポート情報を記憶する(図8の(1))。設定アプリ231やランチャー232は、フラッシュメモリ24にエクスポート情報を記憶する(図8の(1))。
操作部20の設定管理部214は、操作部20の操作部アプリケーション(図8の例では、設定アプリ231やランチャー232)がフラッシュメモリ24に登録したエクスポート情報を参照する(図8の(2))。また、操作部20の設定管理部214は、参照により得られたエクスポート情報を操作部20全体のエクスポートファイルとして統合すると、本体部10のHDD14に登録する(図8の(3))。
本体部10の設定管理部112は、各アプリケーション(操作部20の設定管理部214を含む)がHDD14に登録したエクスポート情報を、外部に出力するために更に統合して(必要に応じて編集し)、最終的なエクスポートファイルを作成する(図8の(4))。
<本体部10がエクスポート処理を即時実行できない場合のシーケンス>
図9は、本体部がエクスポート処理を即時実行できない場合のシーケンスである。なお、図9に示すシーケンスは、本体部10の設定管理部112と、本体部アプリケーションの一例としてのコピーアプリ121と、操作部20の設定管理部214と、操作部アプリケーションの一例としての設定アプリ231と、ランチャー232とにより実行される。
図9に示すように、操作部20の設定管理部214は、受付部220により、外部(例えば、ユーザ等)からエクスポート要求を受け付ける(ステップS141)。
操作部20の設定管理部214は、実行判断部221により、本体部10の動作状況に基づき、本体部10においてエクスポート処理が即時実行可能ではないと判断されると、エクスポート要求(処理要求の内容)を操作部20の記憶部213(フラッシュメモリ24)に保存する(ステップS142)。
次に、操作部20の設定管理部214は、アプリ制御部222により、操作部20の操作部アプリケーションを対象としてエクスポート処理を実行させる。
すなわち、操作部20の設定管理部214は、アプリ制御部222により、操作部20内のエクスポート対象として指定された操作部アプリケーション(図9の例では、設定アプリ231、ランチャー232)に対してエクスポート準備要求及びエクスポート実行要求を送信する(ステップS143〜ステップS146)。エクスポート実行要求を受信した各アプリケーションは、実行依頼結果をエクスポート実行要求の送信元に対して送信する(ステップS147、ステップS148)。
また、操作部20内の各アプリケーションは、エクスポート処理を実行し(ステップS149、ステップS150)、エクスポート結果をエクスポート実行要求の送信元に対して送信する(ステップS151、ステップS152)。操作部20の設定管理部214は、操作部20内の各アプリケーションから実行結果を受信すると、各アプリケーションが記憶した設定情報を読み出し、統合してフラッシュメモリ24に書き込む(ステップS153)。
ここで、操作部20の設定管理部214は、実行判断部221により、本体部10の動作状況に基づき、本体部10においてエクスポート処理が実行可能になったと判断されると、ステップS142の処理でフラッシュメモリ24等に保存した処理要求の内容を読み出す(ステップS154)。
操作部20の実行判断部221は、例えば本体部10の動作状況として、例えば本体部10が「省エネモード」から「通常モード」に復帰したか否か、「HDD14が利用不可(準備中)」から「HDD14が利用可能」となったか否か、「ユーザが本体部10の設定を閲覧、設定中」から「ユーザが本体部10の設定の閲覧終了、設定終了」したか否か判断する。操作部20の実行判断部221は、これらの動作状況の場合には、本体部10においてエクスポート処理が実行可能になったと判断するが、これには限定されない。
操作部20の設定管理部214は、本体部10の設定管理部112にエクスポート要求を送信する(ステップS155)。
本体部10の設定管理部112は、上述した図7に示す処理と同様にエクスポート処理を実行させる。すなわち、エクスポート対象として指定されたアプリケーション(図9の例では、コピーアプリ121、操作部20の設定管理部214)に対してエクスポート準備要求及びエクスポート実行要求を送信する(ステップS156、ステップS157、ステップS159、ステップS160)。
操作部20の設定管理部214は、本体部10の設定管理部112からのエクスポート準備要求に対しては事前実行結果を送信する(ステップS158)。本体部10のアプリケーション(図9の例では、コピーアプリ121)は、エクスポート結果を本体部10の設定管理部112に送信する(ステップS161)。また、操作部20の設定管理部214は、本体部10の設定管理部112からのエクスポート実行要求に対しては事前に保存していた実行結果をフラッシュメモリ24から取得し、本体部10の記憶部113(例えばHDD14)に書き込む(ステップS162)。
また、操作部20の設定管理部214は、書き込み処理の実行結果を、本体部10の設定管理部112に送信する(ステップS163)。本体部10の設定管理部112は、エクスポート対象となるアプリケーションから実行結果を受信すると、エクスポート結果を作成し(ステップS164)、図7と同様にエクスポート結果を出力する(ステップS165)。
上述したように、操作部20のアプリ制御部222は、外部から受け付けたエクスポート要求に対し、本体部10においてエクスポート処理が即時実行できない場合、本体部10よりも先行して操作部アプリケーションに対してエクスポート処理を実行させる。これにより、本体部10でエクスポート処理が実行可能となった場合の操作部20での処理を短縮することが可能となり、MFP1全体での完了時間を短縮することが可能となる。
<本体部10が即時実行できない場合のエクスポート処理での各情報の流れ>
図10は、本体部がエクスポート処理を即時実行できない場合の各情報の流れを説明する図である。図10の例では、例えばコピーアプリ121、スキャナアプリ122、設定アプリ231、ランチャー232が、エクスポート対象のアプリケーションとして指定された例が示されている。
図10に示すエクスポート処理では、操作部20の設定管理部214は、外部からのエクスポート要求の内容をフラッシュメモリ24に保存する(図10の(1))。
操作部20のエクスポート対象となるアプリケーションは、先行してエクスポート処理を実行するため、自身のエクスポート情報(設定情報)をフラッシュメモリ24に登録する(図10の(2))。操作部20の設定管理部214は、操作部20内の各アプリケーションがフラッシュメモリ24に登録したエクスポート情報を参照して、操作部20全体のエクスポートファイルを作成し、フラッシュメモリ24に事前に保存しておく(図10の(3))。
操作部20の設定管理部214は、実行判断部221により、本体部10の動作状況に基づき、本体部10においてエクスポート処理が実行可能になったと判断されると、フラッシュメモリ24に保存しておいたエクスポート要求の内容を、本体部10の設定管理部112に送信する。これにより、本体部10においてエクスポート処理が開始される。
本体部10のエクスポート対象として指定された各アプリケーションは、それぞれのエクスポート情報をHDD14に登録する。なお、操作部20の設定管理部214は、フラッシュメモリ24から、事前に作成しておいた操作部20全体のエクスポートファイルを読み出し、読み出したエクスポートファイルをHDD14に登録する(図10の(4))。本体部10の設定管理部112は、各アプリケーションがHDD14に登録したエクスポート情報を参照し、最終的なエクスポートファイルを作成する(図10の(5))。
<インポート処理のシーケンス>
図11は、第1実施形態におけるインポート処理の一例を示すシーケンスである。図11の例では、本体部10においてインポート処理を即時実行できる場合の例を示している。なお、図11に示すシーケンスは、本体部10の設定管理部112と、本体部アプリケーションの一例としてのコピーアプリ121と、操作部20の設定管理部214と、操作部アプリケーションの一例としての設定アプリ231と、ランチャー232とにより実行される。
図11に示すように、操作部20の設定管理部126は、受付部220により、外部(例えば、ユーザ等)からインポート要求を受け付ける(ステップS171)。
操作部20の設定管理部126は、実行判断部221により、本体部10の動作状況に基づき、例えば本体部10においてインポート処理が即時実行可能であると判断されると、インポート要求を本体部10の設定管理部112に送信する(ステップS172)。なお、インポート要求は、インポート対象とするアプリケーションや、インポートする設定情報(インポートファイル等)が指定されていても良い。
本体部10の設定管理部112は、インポート対象として指定されたアプリケーション(図11の例では、コピーアプリ121、操作部20の設定管理部214)に対してインポート準備要求を送信する(ステップS173、ステップS174)。
操作部20の設定管理部214は、本体部10の設定管理部112からインポート準備要求を受信すると、アプリ制御部222により、操作部20内のインポート対象として指定された操作部アプリケーション(図11の例では、設定アプリ231、ランチャー232)に対してインポート準備要求を送信する(ステップS175、ステップS176)。
なお、インポート準備要求は、設定情報のインポートの前に必要となる処理を各アプリケーションに実行させるための要求である。このような処理が不要な場合はインポート準備要求を送信しないように構成しても良い。また、インポート準備要求は、エクスポート準備要求やエクスポート実行要求と同様に、インポート対象とするアプリケーションに対して送信されても良く、ブロードキャスト等により送信されても良い。
次に、本体部10の設定管理部112は、インポート対象として指定されたアプリケーション(図11の例では、コピーアプリ121、操作部20の設定管理部214)に対してインポート実行要求を送信する(ステップS177、ステップS178)。
操作部20の設定管理部214は、本体部10の設定管理部112からインポート実行要求を受信すると、アプリ制御部222により、操作部20内の指定された操作部アプリケーション(図11の例では、設定アプリ231、ランチャー232)に対してインポート実行要求を送信する(ステップS179、ステップS180)。インポート実行要求は、インポート準備要求と同様に、インポート対象とするアプリケーションに対して送信されても良く、ブロードキャスト等により送信されても良い。
インポート実行要求を受信したインポート対象となる各アプリケーションは、実行依頼結果をインポート実行要求の送信元に対して送信する(ステップS181〜ステップS183)。
各アプリケーションは、上述した実行依頼結果として、記憶部(例えばHDD14)等にそれぞれ割り当てられた設定情報(インポート情報)を参照して、インポート実行要求の対象として指定された設定項目の数(インポート実施数)を計算し、そのうちインポート処理を行う予定の設定項目の数(実施予定数)を返信しても良い。なお、操作部20内の各アプリケーションは、操作部20のOSがAndroid(登録商標)の場合に、“sendBroadcast”等を用いて返信しても良い。
次に、インポート対象となる各アプリケーションは、予め設定された記憶部(例えばHDD14)等から自身の設定情報を読み出して、上述した図3〜図5等に示されるような設定項目ごとに、読み出した設定情報を設定するインポート処理を実行する。例えばインポートファイルがHDD14に記憶されている場合、各アプリケーションは、アプリIDや項目ID等を用いて、HDD14のインポートファイル内の設定情報のうち自身の設定情報を特定して読み出すと良い。
なお、本体部10の設定管理部112が、インポートファイルに含まれる設定情報をアプリケーションごとに予め分割(分解)して記憶部等(例えばHDD14)に記憶しても良く、操作部アプリケーションの設定情報のみを分割して操作部20内の記憶部(フラッシュメモリ24等)に記憶しても良い。操作部アプリケーションは、例えばフラッシュメモリ24に記憶された設定情報のうち自身の設定情報を特定して読み出すことが可能である。
各アプリケーションは、インポート実行結果を、インポート実行要求の送信元に対してインポートの実行結果を送信する。例えばコピーアプリ121は、実行結果を本体部10の設定管理部112に送信する(ステップS184)。また、設定アプリ231やランチャー232は、実行結果を操作部20の設定管理部214に送信する(ステップS185、ステップS186)。
操作部20の設定管理部214は、操作部20内の各アプリケーションから実行結果を受信すると、各アプリケーションの実行結果(インポート結果)を統合して、本体部10の記憶部(例えばHDD14)に書き込む(ステップS187)。操作部20の設定管理部214は、本体部10の設定管理部112にインポート結果を送信する(ステップS188)。インポート結果は、例えばインポート処理が成功したか否かを示す情報である。
本体部10の設定管理部112は、インポート対象となるアプリケーションから実行結果を受信すると、各アプリケーションの実行結果をまとめたインポート結果を、例えばインポートの要求元に出力する(ステップS189)。
上述したように、操作部20の設定管理部214は、外部から受け付けたインポート要求に対し、本体部10によりインポート処理が即時実行可能である場合に、本体部10の設定管理部112にインポート要求を通知する。また、操作部20のアプリ制御部222は、本体部10の設定管理部112によりインポート対象のアプリケーションとみなされると、操作部20の操作部アプリケーションを対象とした操作部20専用のインポート処理を実行させる。
<インポート処理での各情報の流れ>
図12は、インポート処理での各情報の流れを説明する図である。図12の例では、コピーアプリ121、スキャナアプリ122、設定アプリ231、ランチャー232が、インポート対象のアプリケーションとして指定された例が示されている。
図12に示すインポート処理では、本体部10の設定管理部112は、ユーザが指定したインポートファイルをアプリケーション単位で分解し、HDD14に登録する(図12の(1))。
各アプリケーション(図12の例では、コピーアプリ121、スキャナアプリ122、設定アプリ231、ランチャー232)は、HDD14上の各アプリケーション用のインポート情報を参照する(図12の(2))。例えば、操作部20の操作部アプリケーション(図12の例では、設定アプリ231やランチャー232)は、参照したインポート情報に基づき、インポート処理を実行して、それぞれインポート結果をフラッシュメモリ24に登録する(図12の(3))。
操作部20の設定管理部214は、操作部20の操作部アプリケーションが登録したインポート結果を参照して(図12の(4))、各インポート結果を統合すると、操作部20全体のインポート結果を本体部10のHDD14に登録する(図12の(5))。
<本体部10がインポート処理を即時実行できない場合のシーケンス>
図13は、本体部がインポート処理を即時実行できない場合のシーケンスである。なお、図13に示すシーケンスは、本体部10の設定管理部112と、本体部アプリケーションの一例としてのコピーアプリ121と、操作部20の設定管理部214と、操作部アプリケーションの一例としての設定アプリ231と、ランチャー232とにより実行される。
図13に示すように、操作部20の設定管理部214は、受付部220により、外部(例えば、ユーザ等)からインポートの要求を受け付ける(ステップS201)。
操作部20の設定管理部214は、実行判断部221により、本体部10の動作状況に基づき、本体部10においてインポート処理が即時実行可能ではないと判断すると、インポート要求(処理要求の内容)を操作部20の記憶部213(フラッシュメモリ24)に保存する(ステップS202)。
ここで、操作部20の設定管理部214は、アプリ制御部222により、操作部20の操作部アプリケーションを対象としてインポート処理を実行させる。
すなわち、操作部20の設定管理部214は、操作部20内のインポート対象として指定された操作部アプリケーション(図13の例では、設定アプリ231、ランチャー232)に対してインポート準備要求及びインポート実行要求を送信する(ステップS203〜ステップS206)。インポート実行要求を受信した各アプリケーションは、実行依頼結果をインポート実行要求の送信元に対して送信する(ステップS207、ステップS208)。
また、操作部内の各アプリケーション(図13の例では、設定アプリ231、ランチャー232)は、インポート処理を実行して、インポート実行結果をインポート実行要求の送信元に対して送信する(ステップS209、ステップS210)。操作部20の設定管理部214は、操作部20内の各アプリケーションから実行結果を受信すると、各アプリケーションが記憶したインポート結果を統合してフラッシュメモリ24に書き込む(ステップS211)。
ここで、操作部20の設定管理部214は、実行判断部221により、本体部10の動作状況に基づき、本体部10においてインポート処理が実行可能になったと判断すると、ステップS202の処理でフラッシュメモリ24等に保存した処理要求の内容を読み出す(ステップS212)。操作部20の設定管理部214は、本体部10の設定管理部112にインポート要求を送信する(ステップS213)。
本体部10の設定管理部112は、上述した図11に示す処理と同様にインポート処理を実行させる。すなわち、インポート対象として指定されたアプリケーション(図13の例では、コピーアプリ121、操作部20の設定管理部214)に対してインポート準備要求及びインポート実行要求を送信する(ステップS214、ステップS215、ステップS217、ステップS218)。
操作部20の設定管理部214は、本体部10の設定管理部112からのインポート準備要求に対しては事前実行結果を送信する(ステップS216)。また、操作部20の設定管理部214は、本体部10の設定管理部112からのインポート実行要求に対しては事前に保存していた実行結果をフラッシュメモリ24から取得し、本体部10の記憶部113(例えばHDD14)に書き込む(ステップS219)。本体部10のアプリケーション(図13の例では、コピーアプリ121)は、インポート結果を本体部10の設定管理部112に送信する(ステップS220)。
また、操作部20の設定管理部214は、書き込み処理の実行結果(インポート結果)を、本体部10の設定管理部112に送信する(ステップS221)。本体部10の設定管理部112は、インポート対象となるアプリケーションから実行結果を受信すると、インポート結果を作成し、図11の処理と同様にインポート結果を出力する(ステップS222)。
上述したように、操作部20のアプリ制御部222は、外部から受け付けたインポート要求に対し、本体部10においてインポート処理が即時実行できない場合、本体部10よりも先行して操作部アプリケーションに対してインポート処理を実行させる。これにより、本体部10でインポート処理が実行可能となった場合の操作部20での処理を短縮することが可能となり、MFP1全体での完了時間を短縮することが可能となる。
<本体部10がインポート処理を即時実行できない場合の各情報の流れ>
図14は、本体部がインポート処理を即時実行できない場合の各情報の流れを説明する図である。図14の例では、コピーアプリ121、スキャナアプリ122、設定アプリ231、ランチャー232が、インポート対象として指定された例が示されている。
図14に示すインポート処理では、操作部20の設定管理部214は、ユーザ等により指定されたインポートファイル(インポート要求の内容)をフラッシュメモリ24に保存する(図14の(1))。
操作部20のインポート対象となる操作部アプリケーションは、先行してインポート処理を実行するため、フラッシュメモリ24上の自身のインポート情報を参照する(図14の(2)。操作部アプリケーションは、参照したインポート情報に基づき、インポート処理を実行して、フラッシュメモリ24にインポート結果を登録する(図14の(3))。操作部20の設定管理部214は、操作部アプリケーションが登録したインポート結果を参照し、各インポート結果を統合すると、操作部20全体のインポート結果をフラッシュメモリ24に保存しておく(図14の(4))。
操作部20の設定管理部214は、本体部10においてインポート処理が実行可能になったと判断すると、フラッシュメモリ24に保存しておいたインポート要求の内容(インポートファイル)を本体部10のHDD14に登録する(図14の(5))。これにより、本体部10においてインポート処理が開始される。
本体部10の設定管理部112は、ユーザにより指定されたインポートファイルをアプリケーション単位に分解してHDD14に登録する(図14の(6))。本体部10のインポート対象となる各アプリケーションは、HDD14に登録されたインポート情報に基づき、インポート処理を実行すると、インポート結果を登録する(図14の(7))。操作部20の設定管理部214は、本体部10の設定管理部112からインポート要求を受け付けると、フラッシュメモリ24から事前に作成しておいた操作部20全体のインポート結果を取得し、HDD14に登録する。
第1実施形態では、操作部20において、受付部220がエクスポート要求又はインポート要求を受け付けたときに、実行判断部221が、本体部10の動作状況を取得する。実行判断部221は、本体部10の動作状況(例えば、省エネモードや設定変更できない処理の実行中等)に基づき、本体部10でエクスポート処理又はインポート処理が実行できるか判断する。通信部211は、実行判断部221の判断結果に応じて、エクスポート要求又はインポート要求を本体部10に送信する。従来は、本体部がエクスポート要求又はインポート要求を受け付けていたのに対して、本実施形態では、受付部220がエクスポート要求又はインポート要求を受け付けた上で、本体部10に受け渡すタイミングを調整する。これにより、本体部10は、エクスポート処理又はインポート処理が実行可能なときに、エクスポート要求又はインポート要求を受信することができる。したがって、本体部10において、エクスポート要求又はインポート要求を受信できない等の無駄を省くことができる。これにより、設定情報のエクスポート処理及びインポート処理を効率的に実行できる。
また、本体部10で一時的にエクスポート処理又はインポート処理が実行できない場合には、アプリ制御部222が、操作部20において先行してエクスポート処理又はインポート処理を操作部アプリケーションに対して実行させる。設定管理部214は、本体部10の処理が実行可能になる前に、エクスポート処理又はインポート処理の処理結果を取得できるため、本体部10から要求を受け付けてから処理を行わなくて良い。これにより、本体部10において処理が実行可能となった後に、エクスポート処理又はインポート処理を行わなくて良いため、操作部20での処理の時間を短縮することが可能となる。したがって、MFP1全体での完了時間を短縮することが可能となる。
<第2実施形態>
次に、第2実施形態について説明する。上述したインポート対象となるアプリケーションは、その種類によって、インポート処理後の設定を反映させて利用可能となるまでに様々な条件を有する場合がある。例えば、個々の設定を即時に反映して利用可能となるアプリケーションや、再起動する等の一定時間MFP1を利用不可の状態とした後に設定を反映して利用可能となるアプリケーションがある。
例えば、操作部20の操作部アプリケーションは、操作部20側のみの処理で設定を反映させて利用可能となるアプリケーションや、本体部10と連携した処理を行うことで設定を反映させて利用可能となるアプリケーションがある。そこで、第2実施形態では、操作部アプリケーションのインポート処理後に、操作部アプリケーションが実行されることで提供される機能に対して、機能ごとに設定された条件に基づき、設定を反映させる処理について説明する。
<第2実施形態における操作部の機能ブロック例>
第2実施形態では、第1実施形態と比較して、図2に示すMFP1の機能ブロックのうち、操作部20内の構成が異なる。そこで、以下の説明では、第2実施形態における操作部の機能ブロック例について説明する。図15は、第2実施形態における操作部の機能ブロックの一例を示す図である。なお、図15に示す操作部20’について、上述した第1実施形態における操作部20と同一の構成については、同一の符号を付してここでの具体的な説明は、省略する。
図15に示す操作部20’は、CPU21がプログラムを実行することで実現される機能(モジュール)である通信部211と、表示部212と、記憶部213と、設定管理部214と、反映判断部215と、反映処理部216とを備える。上記各部の一部は、CPU21がROM22又はフラッシュメモリ24からソフトウェア(プログラム)を読み出して実行することにより、上記各部がRAM23上にロードされ、上記各部がRAM23上に生成されるソフトウェア(プログラム)であっても良い。また、上記各部の一部を演算処理で行うプロセッサ等のハードウェア回路で置き換えても良い。
反映判断部215は、CPU21によってROM22から読み出した命令を実行することにより実現される。反映判断部215は、例えば操作部アプリケーションが実行される機能ごとに設定された条件(インポート反映条件)に基づき、インポート処理後に操作部アプリケーションにより提供される機能に対して、インポートした結果(設定情報)の反映が可能か否か判断する。なお、インポート反映条件は、記憶部213等に記憶されている。
また、反映判断部215は、例えば本体部10の機能を利用して設定情報を反映する必要がある場合、本体部10の動作状況と対象となる機能との関係に基づき、本体部10の機能を利用することができるか判断する。なお、反映判断部215は、本体部10の動作状況に基づき、本体部10の機能を利用できない場合には、本体部10の現在の動作状況を変更するかユーザに問い合わせても良い。
反映処理部216は、CPU21によってROM22から読み出した命令を実行することによりに実現される。反映処理部216は、反映判断部215によりインポート処理後に設定情報の反映が可能であると判断された場合に、提供される機能に対して設定情報の反映を実行する。反映処理部216は、反映判断部215によりインポート処理後に設定情報の反映が可能ではないと判断された場合に、例えば設定情報を反映させるための準備のみを実施して、設定情報の反映が可能な状態になった場合に反映を実行する。なお、設定情報を反映させるための準備とは、例えばインポート対象のアプリケーションに対応するフォーマット形式やファイル形式に変換する等であるが、これに限定されるものではない。
<インポート反映条件>
図16は、第2実施形態におけるインポート反映条件の例を示す図である。図16の例では、例えば「提供機能」、「詳細機能」、「本体部の必要機能」、「インポートの反映」、「その他条件」等の項目を用いて、操作部アプリケーションをそれぞれ実行することで提供される機能に対するインポート反映条件について説明する。
例えば、「提供機能」は、操作部アプリケーションを実行することで提供される機能等を表す。機能の一例として、「ゲーム」、「名刺コピー」、「簡単ファクス設定」、「カードで認証」、「ブラウザ」等があるが、これに限定されるものではない。
また、「詳細機能」は、上述した「提供機能」を細分化した機能を表す。例えば、「ブラウザ」に対しては、詳細機能として、操作部20によるWeb閲覧機能と、本体部10によるWeb閲覧機能とに細分化される。
また、「本体部の必要機能」は、「提供機能」が動作するために本体部10側で必要な機能を表す。「インポートの反映」は、「提供機能」に対してインポート処理後に設定情報をすぐに反映できるか、何等かの条件(例えば、再起動)が必要であるか等を示す情報である。「その他条件」は、インポート処理後に設定情報を反映させるタイミングや、本体部10や操作部20’等にインポート処理を実行させる必要があるか等を示す情報である。
例えば、図16に示す「提供機能」のうち「ゲーム」は、操作部20’の機能のみで動作する。これに対して「名刺コピー」や「簡単ファクス設定」は、本体部10のそれぞれ「コピー」、「ファクス」の機能を利用して動作する。また、図16に示す「提供機能」のうち「ブラウザ」は、「Web閲覧」、「印刷」等の詳細機能に区別され、「Web閲覧(本体ネットワーク)」の場合には、本体部10の「ネットワーク」の機能を利用して動作し、「印刷」の場合には、本体部10の「プリント」の機能を利用して動作する。
また、図16に示す「提供機能」のうち「ゲーム」や「名刺コピー」等は、「インポートの反映」がすぐに可能である。これに対して、「カードで認証」等は、「インポートの反映」に一旦MFP1を再起動(リブート)する必要がある。
また、図16に示す「提供機能」のうち「簡単ファクス設定」は、本体部10のファクス設定もインポート処理を実行しなければ最新状態にならない。このように、操作部20’及び本体部10両方に対してインポート処理が必要な機能もある。
第2実施形態では、図16に示すようなインポート反映条件を、操作部アプリケーションが実行されることで提供される機能ごとに設定して、操作部20’の記憶部213等に保存しておく。操作部20’の反映判断部215は、このインポート反映条件に基づき、インポート処理後に操作部アプリケーションにより提供される機能に対して、インポートした結果を反映できるか判断する。インポート反映条件の内容については、図16の例に限定されるものではない。
<本体部10の動作状況に対して対象機能が利用可能か否かの判断条件を示す例>
図17は、本体部の動作状況に対して対象機能が利用可能か否かの判断条件を示す図である。図17の例では、例えば「本体部の状態」、「対象機能」、「利用可能に変更できるか」、「利用可能にする方法」等の項目を含むがこれに限定されるものではない。
図17に示す「本体部の状態」では、本体部10が有する「対象機能」の利用が不可となる本体部10の動作状況(実行内容)を表している。「本体部の状態」の種類としては、例えば「省エネ中」、「印刷中」、「HDD初期化中」、「重要エラー発生」等があるが、これに限定されるものではない。
図17の例では、本体部10の状態が「省エネ中」の場合は、「省エネ復帰(MFP1を通常の状態(通常モード)に復帰させること)」で本体部10が有する「対象機能」の全てが利用可能となることを表している。また、本体部10の状態が「印刷中」の場合は、ユーザが「印刷の中断、停止、終了まで待つ」等の方法を選択することで、本体部10が有する「コピー、プリンタ、ファクスの印刷」等の機能が利用可能となることを表している。
また、本体部10の状態が「HDD初期化中」や「重要エラー発生」等の場合は、ユーザは現在の状態のままでは利用を継続することができないため、「MFP1を再起動すること」で、例えばHDDを使う機能や全ての機能が利用可能になることを表している。
上述したように、図17に示すような本体部10の動作状況に対して対象機能が利用可能か否かの判断条件を設定して、操作部20’の記憶部213等に保存しておく。操作部20’の反映判断部215は、この本体部10の動作状況に対して対象機能が利用可能か否かの判断条件に基づき、本体部10の機能がすぐに利用できるか判断する。なお、対象機能が利用可能か否かの判断条件の内容については、図17の例に限定されるものではない。
<インポート反映処理>
図18は、第2実施形態におけるインポート反映処理を示すフローチャートである。図18の例では、操作部20’の反映判断部215は、インポート処理が実行された操作部アプリケーションにより提供される機能に対して、予め設定されたインポート反映条件に基づき、インポートした結果(インポートした設定情報)をすぐに反映できるか判断する(ステップS231)。
操作部20’の反映判断部215は、インポートした結果をすぐに反映できると判断すると(ステップS231において、Yes)、予め設定されたインポート反映条件に基づき、本体部10の機能を利用する必要があるか判断する(ステップS232)。操作部20’の反映判断部215は、本体部10の機能を利用する必要があると判断した場合(ステップS232において、Yes)、予め設定された本体部10の動作状況に対して対象機能が利用可能か否かの判断条件に基づき、本体部10の機能をすぐに利用できるか判断する(ステップS233)。
操作部20’の反映判断部215は、本体部10の機能をすぐに利用できると判断すると(ステップS233において、Yes)、予め設定されたインポート反映条件に基づき、本体部10のインポート処理は必要か判断する(ステップS234)。操作部20’の反映判断部215は、本体部10のインポート処理が必要であると判断すると(ステップS234において、Yes)、本体部10のインポート処理もすぐに反映できるか判断する(ステップS235)。
なお、ステップS235の処理において、操作部20’の反映判断部215は、上述した図6のステップS102の処理において操作部20’の実行判断部221により得られる本体部10がインポート処理を即時実行可能かの判断結果に基づき、判断することが可能である。例えば、操作部20’の反映判断部215は、操作部20’の実行判断部221により本体部10がインポート処理を即時実行可能であると判断された場合に、本体部10のインポート処理もすぐに反映できると判断することが可能である。
操作部20’の反映判断部215は、本体部10のインポート処理もすぐに反映できると判断した場合(ステップS235において、Yes)、又はステップS232の処理で本体部10の機能を利用する必要がないと判断した場合(ステップS232において、No)、又はステップS234の処理で本体部10へのインポートが必要ないと判断した場合(ステップS234において、No)、操作部20’の反映処理部216は、インポート結果を反映する(ステップS236)。
また、操作部20’の反映判断部215は、ステップS231の処理においてすぐに反映できないと判断した場合(ステップS231において、No)、又はステップS233の処理で本体部10がすぐに利用できないと判断した場合(ステップS233において、No)、又はステップS235の処理で本体部10のインポート処理もすぐに反映できないと判断した場合(ステップS235において、No)、操作部20’の反映処理部216は、準備のみ実施して反映可能な状態になった場合に反映し(ステップS237)、処理を終了する。
上述したように、インポート処理が実行された操作部アプリケーションにより提供される機能に対して、すぐにインポート結果の反映ができない場合には、必要な条件がそろった後に反映する。なお、操作部20’側のみの処理で反映できる等のインポート結果の反映がすぐにできる場合には、すぐにインポートの設定を反映した機能を提供する。
<本体部10の機能を利用する場合の処理例>
次に、上述した図18のS232の処理において、本体部の機能を利用する必要がある場合の具体例について説明する。図19は、本体部の機能を利用する場合のフローチャートである。
図19の例において、操作部20’の反映判断部215は、インポート処理が実行された操作部アプリケーションにより提供される機能に対して、本体部の機能を利用する必要があるか確認する(ステップS241)。操作部20’の反映判断部215は、本体部10の機能を利用する必要があると確認した場合に、予め設定された本体部10の動作状況に対して対象機能が利用可能か否かの判断条件に基づき、必要な本体部10の機能が利用可能か判断する(ステップS242)。
操作部20’の反映判断部215は、必要な本体部10の機能が利用可能でないと判断した場合(ステップS242において、No)、例えば本体部10の動作状況を変更する(例えば「印刷中」を「印刷の停止」に変更する等)ことで利用可能に変更できるか判断する(ステップS243)。
操作部20’の反映判断部215は、利用可能に変更できると判断した場合(ステップS243において、Yes)、例えば本体部10の動作状況を変更することで必要な本体部10の機能を利用可能にするかユーザに問い合わせる(ステップS244)。
操作部20’の反映判断部215は、ユーザに問い合わせた結果がOKか(例えば、「印刷中」を「印刷の停止」に変更して良いか)判断する(ステップS245)。操作部20の反映判断部215は、ユーザに問い合わせた結果がOKであると判断した場合(ステップS245において、Yes)、例えば本体部10の動作状況を変更して必要な本体部10の機能を利用可能にする(ステップS246)。
また、操作部20’の反映判断部215は、ステップS242の処理において必要な本体部10の機能が利用可能であると判断した場合(ステップS242において、Yes)、又はステップS246の処理後、操作部20’の反映処理部216は、インポート処理の設定(インポート結果)を反映する(ステップS247)。これにより、操作部20は、インポートの設定を反映した機能を提供する(ステップS248)。
また、操作部20’の反映判断部215は、ステップS243の処理において、必要な本体部10の機能が利用可能にできないと判断した場合(ステップS243において、No)、又はステップS245の処理においてユーザに問い合わせた結果がOKでないと判断した場合(ステップS245において、No)、操作部20’は、インポートの設定を反映しないまま機能を提供し(ステップS248)、処理を終了する。
上述したように、操作部アプリケーションが実行されることで提供される機能のうち、本体部10の機能を利用する必要がある機能については、ユーザへの機能提供前に本体部10の機能が利用可能と判断した場合に、インポート処理の設定を反映した機能を提供する。
<設定を反映するインポート処理全体のフローチャート>
次に、上述した図18及び図19の処理に基づきインポート結果を反映する操作部20’及び本体部10のインポート処理全体について説明する。図20は、操作部及び本体部のインポート処理全体のフローチャートである。
図20の例では、操作部20’の設定管理部214は、操作部アプリケーションに対するインポート処理を行うと(ステップS251)、操作部20’の実行判断部221は、本体部10の動作状況に基づき、本体部10のインポート処理が実行可能か判断する(ステップS252)。
操作部20’の設定管理部214は、実行判断部221により本体部10のインポート処理が実行可能ではないと判断された場合(ステップS252において、No)、上述した図18及び図19の処理に基づきインポート結果が反映された利用可能な機能のみ提供し(ステップS253)、ステップS252の処理に戻る。
また、操作部20’の設定管理部214は、本体部10においてインポート処理が実行可能であると判断した場合(ステップS252において、Yes)、本体部10の設定管理部112は、操作部20’の設定管理部214からの通知に基づき、本体部10におけるインポート処理を行う(ステップS254)。
操作部20’の設定管理部214は、予め設定された所定の条件に基づき、全てのインポート処理を完了するために再起動が必要か判断する(ステップS255)。操作部20’の設定管理部214は、再起動が必要であると判断すると(ステップS255において、Yes)、再起動してOKかユーザに問い合わせる(ステップS256)。
操作部20’の設定管理部214は、ユーザに問い合わせた結果がOKか判断する(ステップS257)。操作部20’の設定管理部214は、ユーザに問い合わせた結果がOKではないと判断した場合(ステップS257において、No)、利用可能な機能のみ提供する(ステップS258)。
操作部20’の設定管理部214は、ユーザに問い合わせた結果がOKであると判断した場合(ステップS257において、Yes)、又はステップS258の処理の後、再起動を行う(ステップS259)。
操作部20’の設定管理部214は、ステップS259の再起動の後、又はステップS255の処理において、全てのインポート処理を完了するために再起動が必要ないと判断した場合(ステップS255において、No)、インポート結果の反映済みの機能を提供し(ステップS260)、処理を終了する。
操作部20’の設定管理部214は、インポート処理の後、上述した図18及び図19の処理に基づき、可能な限りインポート結果を反映した機能を提供する。操作部20’の設定管理部214は、本体部10においてインポート処理が実行できない状態の場合には、そのまま操作部20’で提供可能な機能のみインポートの設定を反映した機能を提供する。また、操作部20’の設定管理部214は、本体部10においてインポート処理が実行可能になった場合には、停止していた本体部10のインポート処理を実行させる。
なお、全てのインポート処理を完了するために再起動等で一旦現在の利用を中断しなければならない場合には、その処理を行うか、又は現時点で利用可能な機能のみ提供し、後に再起動等の処理をするかユーザ等に選択させても良い。
<利用可能な機能を提供する際に行う処理の流れ>
次に、上述した図20のS253の処理において利用可能な機能を提供する際に行う処理について説明する。図21は、利用可能な機能を提供する処理のフローチャートである。図21の例では、操作部20’の設定管理部214は、反映判断部215に操作部アプリケーションに関する問い合わせを行い(ステップS261)、操作部アプリケーションごとにインポート結果の反映が可能か判断する(ステップS262)。
操作部20’の設定管理部214は、インポート処理の反映が可能ではないと判断した場合(ステップS262において、No)、例えば図16や図17等を参照して、MFP1の動作状況として、例えばインポート処理の反映にMFP1の再起動が必要か判断する(ステップS263)。操作部20’の設定管理部214は、MFP1の再起動が必要であると判断した場合(ステップS263において、Yes)、再起動が必要な操作部アプリケーションについては利用不可の状態(例えば、操作パネルに利用不可の通知を行う)にする(ステップS264)。
また、操作部20’の設定管理部214は、インポート処理の反映が可能であると判断した場合(ステップS262において、Yes)、又はステップS263の処理においてインポート処理の反映にMFP1の再起動が必要ないと判断した場合(ステップS263において、No)、その操作部アプリケーションについては利用可能な状態とし(ステップS265)、処理を終了する。これにより、ユーザに対して現時点における提供可能な機能と提供できない機能とを提示することが可能となる。
第2実施形態では、操作部20’において操作部アプリケーションのインポート処理後に、操作部アプリケーションが実行されることで提供される機能に対して、機能ごとに設定された条件に基づき、設定を反映させておく。これにより、本体部を含むMFP全体のインポート処理が実行可能にならずとも、利用可能な機能から設定を反映できる。したがって、MFP全体としてインポート処理が完了する前に、操作部20’においてユーザに最新の設定情報が反映された機能を提供することが可能となる。
上述した第1実施形態及び第2実施形態によれば、設定情報の入出力処理を効率的に実行することが可能となる。
なお、本実施形態の装置(画像形成装置)で実行されるプログラムは、ROM等に予め組み込まれて提供される。また、本実施形態の装置で実行されるプログラムは、インストール可能な形式や実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータ・プログラム・プロダクトとして提供するように構成しても良い。
また、本実施形態の装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の装置で実行されるプログラムをインターネット等のネットワーク経由で提供や配布するように構成しても良い。
本実施形態の装置で実行されるプログラムは、上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMからプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、各部が主記憶装置上に生成される。上述した各部の機能のうちの一部又は全部が、専用のハードウェア回路で実現されても良い。
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施形態に限定されるものではない。本発明の主旨をそこなわない範囲で変更することが可能である。