以下に、本発明に係る情報処理システム、情報処理方法の一実施形態を説明する。例えば、コピー機能、プリンタ機能、スキャナ機能、ファクス機能等のうち少なくとも2つの機能を有する複合機(MFP:Multifunction Peripheral)を情報処理システムとして実現した例を説明する。なお、MFPの他に、複写機、プリンタ、スキャナ装置、ファクス装置等の画像形成装置に適用しても良い。また、適用可能なシステム(装置)は、画像形成装置に限られるものではなく、本体部と操作部とを備えるシステム(装置)であればどのような装置にも適用することが可能である。
<MFPのハードウェア構成例>
図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は、本実施形態に係るMFPの機能ブロックの一例を示す図である。図2に示すように、MFP1は、本体部10及び操作部20を備える。
まず、本体部10について説明する。本体部10は、図2に示すように、通信部101と、設定管理部102と、第1のアプリケーション111と、第2のアプリケーション112と、第3のアプリケーション113と、第4のアプリケーション114と、第5のアプリケーション115と、を備える。ここで、図2では、各アプリケーションを、「アプリ」と表記している。上記各部の一部は、CPU11がROM12又はHDD14からソフトウェア(プログラム)を読み出して実行することにより、上記各部がRAM13上にロードされ、上記各部がRAM13上に生成されるソフトウェア(プログラム)であっても良い。また、上記各部の一部又は全部を、演算処理で行うプロセッサ等のハードウェア回路で置き換えても良い。
第1のアプリケーション111、第2のアプリケーション112、第3のアプリケーション113、第4のアプリケーション114、第5のアプリケーション115は、本体部10で動作するアプリケーションであり、例えば、コピー機能、スキャナ機能、ファクス機能、等を提供するためのアプリケーションである。ここで、本体部10で動作するアプリケーションを本体部アプリケーションと呼ぶ。本体部アプリケーションは、これらの機能を提供するアプリケーションに限定されるものではなく、本体部10で動作し、設定情報をインポート/エクスポートできる処理部(ソフトウェア等)であれば、本体部アプリケーションとすることが可能である。
通信部101は、専用の通信路40を経由して操作部20と接続し、操作部20との間でデータを送受信する。通信部101は、CPU11によってROM12から読み出した命令を実行することにより実現される。
通信部101は、操作部20で受け付けた各種の操作入力を受信して、対応する各部に受け渡す。また、通信部101は、各種の情報(例えば、受け付けた入力に応じた情報、MFP1の動作状況を示す情報、設定状態を示す情報)を操作部20に表示させるためのデータを送信する。また、通信部101は、通信I/F15を介してネットワーク30を経由して、外部装置(例えば、クライアントPC)との間でデータを送受信して、対応する各部に受け渡す。
設定管理部102は、操作部20の設定管理部202で受け付けたユーザ等からの設定情報のインポート要求またはエクスポート要求を管理する。また、設定管理部102は、本体部10で動作するアプリケーションの設定情報(第2の設定情報の一例)、操作部20で動作するアプリケーションの設定情報(第1の設定情報の一例)を、ROM12、HDD14、等に書き込む。ここで、操作部20で動作するアプリケーションを、操作部アプリケーションと呼ぶ。本体部アプリケーションの設定情報とは、本体部アプリケーションの設定に関する情報である。操作部アプリケーションの設定情報とは、操作部アプリケーションの設定に関する情報である。各設定情報の詳細については後述する。
設定管理部102は、本体部アプリケーションに対する設定情報のインポート/エクスポート実行要求を受け付けた場合、本体部アプリケーションに対して、受け付けた要求に応じた処理の実行を要求する。また、設定管理部102は、操作部アプリケーションに対する設定情報のインポート/エクスポート実行要求を受け付けた場合、操作部20の設定管理部202に対して、受け付けた要求に応じた処理の実行を要求する。
設定管理部102は、本体部アプリケーションから受信した設定情報と操作部20の設定管理部202から受信した設定情報とを統合し、統合した設定情報を、通信部101を介して、ユーザ等に対して出力する。なお、設定情報を統合する方法は、特に限定されるものではなく、例えば、各設定情報を連結して1つの情報とする方法等を適用できる。
次に、操作部20について説明する。操作部20は、通信部201と、設定管理部202と、共通I/F管理部203と、第1の内部アプリケーション211と、第2の内部アプリケーション212と、第1の追加アプリケーション221と、第2の追加アプリケーション222と、第3の追加アプリケーション223と、を備える。上記各部の一部は、CPU21がROM22又はフラッシュメモリ24からソフトウェア(プログラム)を読み出して実行することにより、上記各部がRAM23上にロードされ、上記各部がRAM23上に生成されるソフトウェア(プログラム)であっても良い。また、上記各部の一部を、演算処理で行うプロセッサ等のハードウェア回路で置き換えても良い。
第1の内部アプリケーション211、第2の内部アプリケーション212は、操作部20に予めインストールされたアプリケーションであり、信頼性の高いアプリケーションである。第1の内部アプリケーション211、第2の内部アプリケーション212は、ROM22、フラッシュメモリ24、等に、インポート/エクスポートする設定情報を書き込む。なお、第1の内部アプリケーション211、第2の内部アプリケーション212を総称して、「内部アプリケーション」と呼ぶ。
例えば、内部アプリケーションは、表示アプリケーションであっても良い。表示アプリケーションは、本体部アプリケーションに組み込まれた画像表示用のライブラリからの要求に応じて、操作パネル27に対する情報の表示を制御する。また、例えば、内部アプリケーションは、設定アプリケーションであっても良い。設定アプリケーションは、操作部20に搭載されるスピーカの音量の設定、通信方式の設定、認証時のパスワードの設定、等を行う。
第1の追加アプリケーション221、第2の追加アプリケーション222、第3の追加アプリケーション223は、製品出荷後に操作部20に追加してインストール可能なアプリケーションであり、図2では、インストール済みの状態を示している。第1の追加アプリケーション221、第2の追加アプリケーション222、第3の追加アプリケーション223は、信頼性の低いアプリケーションである。第1の追加アプリケーション221、第2の追加アプリケーション222、第3の追加アプリケーション223は、ROM22、フラッシュメモリ24、等に、インポート/エクスポートする設定情報を書き込む。なお、第1の追加アプリケーション221、第2の追加アプリケーション222、第3の追加アプリケーション223を総称して、「追加アプリケーション」と呼ぶ。
例えば、追加アプリケーションは、第三者(例えば、サードベンダ)により作成されるサードベンダアプリケーションであっても良い。サードベンダアプリケーションに対しては、外部アプリケーションサービスが提供されても良い。外部アプリケーションサービスは、本体部10の詳細な操作や、細かい仕様の知識がなくても第三者がアプリケーションを作成可能とするためのI/F、公開できないI/F、等を隠すために提供される。
なお、操作部20において、操作部アプリケーションは、上述のアプリケーションに限定されるものではなく、操作部20で動作し、設定情報をインポート/エクスポートできる処理部(ソフトウェア等)であれば操作部アプリケーションとすることが可能である。また、操作部20において、操作部アプリケーションのうち一部のアプリケーションが動作しても良いし、操作部アプリケーション以外のアプリケーションが動作しても良い。
通信部201は、専用の通信路40を経由して本体部10と接続し、本体部10との間でデータを送受信する。通信部201は、CPU21によってROM22から読み出した命令を実行することにより実現される。
通信部201は、本体部10の設定管理部102からの操作部アプリケーションに対する設定情報のインポート/エクスポート要求を受け付ける。また、通信部201は、操作部20で受け付けた各種の入力を本体部10に送信する。
通信部201は、操作部20に表示させるためのデータを受信し、各種の情報(例えば、受け付けた入力に応じた情報、MFP1の動作状況を示す情報、設定状態を示す情報)を、対応する各部に受け渡す。また、通信部201は、通信I/F25を介してネットワーク30を経由して、外部装置(例えば、クライアントPC)との間でデータを送受信して、対応する各部に受け渡す。
設定管理部202は、内部アプリケーション(操作部20上における信頼性の高いアプリケーション)に対して、内部アプリケーションの設定に関する設定情報のインポートまたはエクスポートの制御を行う。
設定管理部202は、内部アプリケーションに対するインポート要求またはエクスポート要求を管理する。また、設定管理部202は、共通I/F管理部203と通信し、共通I/F管理部203を介して、追加アプリケーションに対するインポート要求またはエクスポート要求を管理する。また、設定管理部202は、内部アプリケーションから受信した設定情報と共通I/F管理部203から受信した設定情報とを統合し、統合した設定情報を、本体部10の設定管理部102へと送信する。また、設定管理部202は、統合した設定情報を、本体部10のHDD14、等に書き込む。設定管理部202は、CPU21によってROM22から読み出した命令を実行することにより実現される。
例えば、設定管理部202は、本体部10の設定管理部102から受信したインポート実行要求を、内部アプリケーション及び共通I/F管理部203へと送信し、内部アプリケーション及び共通I/F管理部203から、インポート実行依頼結果を受信する。また、例えば、設定管理部202は、本体部10の設定管理部102から受信したエクスポート実行要求を、内部アプリケーション及び共通I/F管理部203へと送信し、内部アプリケーション及び共通I/F管理部203から、エクスポート実行依頼結果を受信する。
共通I/F管理部203は、追加アプリケーション(操作部20上における信頼性の低いアプリケーション)に対して、追加アプリケーションの設定に関する設定情報のインポートまたはエクスポートの制御を行う。
共通I/F管理部203は、追加アプリケーションに対するインポート要求またはエクスポート要求を管理する。また、共通I/F管理部203は、追加アプリケーションから受信したインポート/エクスポート結果を、操作部20の設定管理部202へと送信する。共通I/F管理部203は、CPU21によってROM22から読み出した命令を実行することにより実現される。
例えば、共通I/F管理部203は、操作部20の設定管理部202から受信したインポート実行要求を、追加アプリケーションへと送信し、追加アプリケーションから、インポート実行依頼結果を受信する。また、例えば、共通I/F管理部203は、操作部20の設定管理部202から受信したエクスポート実行要求を、追加アプリケーションへと送信し、追加アプリケーションから、エクスポート実行依頼結果を受信する。なお、追加アプリケーションには、内部アプリケーションに提供されるI/Fは公開されない。
本実施の形態に係る情報処理システムによれば、信頼性の高い操作部アプリケーションの設定情報と、信頼性の低い操作部アプリケーションの設定情報が、異なるインターフェースを介して、インポート/エクスポートされる。これにより、信頼性の低いアプリケーションの処理が、信頼性の高いアプリケーションの処理に影響を与えることなく、本体部と操作部とを備えた構成において、インポート/エクスポート処理を正常完了させることができるシステムを提供できる。
<エクスポート処理での各情報の流れ>
次に、エクスポート処理における情報の流れについて説明する。
図3は、エクスポート処理での各情報の流れを説明するための図である。図3では、第1のアプリケーション111、第2のアプリケーション112、第1の内部アプリケーション211、第2の内部アプリケーション212が、エクスポート対象とされた例が示されている。
エクスポート処理では、エクスポート対象となる各アプリケーションが、それぞれ自身の設定情報を記憶部(HDD14またはフラッシュメモリ24)に記憶する。例えば、第1のアプリケーション111及び第2のアプリケーション112は、HDD14に設定情報を記憶する。第1の内部アプリケーション211及び第2の内部アプリケーション212は、フラッシュメモリ24に設定情報を記憶する。
操作部20の設定管理部202は、操作部20内のアプリケーション(図3の例では第1の内部アプリケーション211及び第2の内部アプリケーション212)が記憶した設定情報をまとめ、操作部20全体のエクスポート結果として、本体部10のHDD14に記憶する。
本体部10の設定管理部102は、各アプリケーション(設定管理部202を含む)がHDD14に記憶した設定情報を、外部に出力するためにさらに結合し(必要に応じて編集し)、HDD14に記憶する。
<インポート処理での各情報の流れ>
次に、インポート処理における情報の流れについて説明する。
図4は、インポート処理での各情報の流れを説明するための図である。図4では、第1のアプリケーション111、第2のアプリケーション112、第1の内部アプリケーション211、第2の内部アプリケーション212が、インポート対象とされた例が示されている。
インポート処理では、設定管理部102は、指定されたインポートファイルをHDD14に登録する。各アプリケーションは、インポートファイルを参照してインポート処理を行う。操作部アプリケーションは、それぞれインポート結果をフラッシュメモリ24に記憶する。
操作部20の設定管理部202は、操作部20内のアプリケーション(図4の例では第1の内部アプリケーション211及び第2の内部アプリケーション212)それぞれが記憶したインポート結果を参照し、各インポート結果をまとめ、操作部20全体のインポート結果として、本体部10のHDD14に記憶する。
<設定情報のデータ構造例>
次に、設定情報のデータ構造の例について図5乃至図8を用いて説明する。図5及び図6は、操作部アプリケーションが処理する設定情報の一例を示す図である。図7は、操作部と本体部との間で送受信される設定情報の一例を示す図である。図8は、本体部の設定管理部が最終的に生成する設定情報の一例を示す図である。
図5は、操作部アプリケーションの一例である設定アプリの設定情報の例を示す。図6は、操作部アプリケーションの一例であるランチャーの設定情報の例を示す。図5及び図6に示すように、設定情報は、「アプリID」、「項目ID」、「項目名」、「機密情報」、「固有情報」、「設定値」等の項目を含む。
アプリIDは、アプリケーションを識別する識別情報である。例えば、本体部10内のエクスポート対象となるアプリケーションと、1つのアプリケーションとみなされる操作部20の設定管理部202とに対して、それぞれアプリIDが割り当てられる。項目IDは、設定情報に含まれる各設定項目をそれぞれ識別する識別情報である。項目名は、設定項目の名称である。
機密情報は、設定項目が機密にすべき情報であるか否かを表す。例えば設定項目が機密にすべき情報である場合に「TRUE」が設定され、設定項目が機密にすべき情報でない場合に「FALSE」が設定される。機密情報が「TRUE」の場合、例えば本体部10の設定管理部102が、設定情報(設定値)を暗号化し、暗号化した設定情報をエクスポートしても良い。
固有情報は、設定項目が装置に固有の情報であるか否かを表す。例えば設定項目が装置に固有の情報である場合に「TRUE」が設定され、設定項目が装置に固有の情報でない場合に「FALSE」が設定される。設定値は、設定項目に対して設定されている値を表す。
図7は、操作部と本体部との間で送受信される設定情報の例を示す図である。図7の例では、上述した図5及び図6の設定情報を統合した場合の設定情報である。操作部20の設定管理部202は、操作部20の操作部アプリケーションが生成した設定情報をまとめて本体部10の設定管理部102に通知する。
図8は、本体部の設定管理部が最終的に生成する設定情報の例を示す図である。本体部10の設定管理部102は、上述した図7に示す設定情報に、本体部10内のアプリケーションの設定情報を加えた設定情報を生成し、最終的な設定情報(エクスポートファイル等)として外部に出力する。
図8の例では、本体部10内のアプリケーションの設定情報として、アプリID=1に対応する設定情報に、上述した図7に示すアプリID=3に対応する設定情報が追加された設定情報が示されている。
本実施形態のインポート処理では、図8に示すような設定情報が、インポート対象の設定情報(インポートファイル等)として入力される。
次に、MFP1により実行されるエクスポート処理、インポート処理の具体例について、図9、図10を用いて説明する。
<エクスポート処理のシーケンス>
図9は、本実施形態に係るエクスポート処理の一例を示すシーケンス図である。図9に示すシーケンスは、本体部10の設定管理部102と、第1のアプリケーション111と、操作部20の設定管理部202と、第1の内部アプリケーション211と、共通I/F管理部203と、第1の追加アプリケーション221と、により実行される。なお、本体部10におけるアプリケーション及び操作部20におけるアプリケーションの例は、これに限定されるものではない。
図9に示すように、本体部10の設定管理部102は、外部(例えば、ユーザ)からエクスポート要求を受け付ける(ステップS301)。エクスポート要求には、例えば、エクスポート対象とするアプリケーション、最終的にエクスポートする設定情報(例えば、エクスポートファイル情報)の出力先、等が指定されていても良い。
本体部10の設定管理部102は、本体部10内のエクスポート対象として指定されたアプリケーション(図9の例では、第1のアプリケーション111)に対して、エクスポート準備要求を送信する(ステップS302)。また、本体部10の設定管理部102は、操作部20の設定管理部202に対して、エクスポート準備要求を送信する(ステップS303)。
操作部20の設定管理部202は、本体部10の設定管理部102からエクスポート準備要求を受信すると、操作部20内のエクスポート対象として指定されたアプリケーション(図9の例では、第1の内部アプリケーション211)に対して、エクスポート準備要求を送信する(ステップS304)。操作部20の設定管理部202は、内部アプリケーションに対して、即時応答可能なI/Fで通信するため、内部アプリケーションから、エクスポート準備要求結果を即時受信することができる。
なお、エクスポート準備要求は、設定情報のエクスポートの前に必要となる処理を、各アプリケーションに実行させるための要求である。このような処理が不要な場合は、エクスポート準備要求を送信しない構成としても良い。
本体部10の設定管理部102は、エクスポート要求と共に指定されたアプリケーションを、エクスポート対象として決定するが、エクスポート対象とするアプリケーションは、どのような方法で決定されても良い。例えば、本体部10の設定管理部102は、予め設定されたアプリケーションを、エクスポート対象として決定しても良い。また、本体部10の設定管理部102は、ブロードキャスト等により宛先(アプリケーション)を指定せずに、任意のアプリケーションに対してエクスポート準備要求を送信しても良い。この場合、エクスポート準備要求を受信したアプリケーションは、自身がエクスポート対象である場合に、要求に応じた処理を実行する。
操作部20の設定管理部202も同様に、エクスポート要求と共に指定されたアプリケーションに対して、エクスポート準備要求を送信する。なお、操作部20のOSが、Android(登録商標)の場合は、“sendOrderedBroadcast”等をブロードキャストによる送信として利用しても良い。エクスポート準備要求を受信したアプリケーションは、自身がエクスポート対象である場合に、要求に応じた処理を実行する。自身がエクスポート対象であるか否かは、フラッシュメモリ24等に事前に設定された情報から判断しても良い。
本体部10の設定管理部102は、第1のアプリケーション111に対して、エクスポート実行要求を送信する(ステップS305)。
操作部20の設定管理部202は、本体部10の設定管理部102からエクスポート準備要求を受信すると、共通I/F管理部203に対して、エクスポート準備要求を送信する(ステップS306)。操作部20の設定管理部202は、追加アプリケーションに対して、共通I/F管理部203を介して通信するため、追加アプリケーションから、エクスポート準備要求結果を即時受信することができない。
共通I/F管理部203は、操作部20の設定管理部202からエクスポート準備要求を受信すると、操作部20内のエクスポート対象として指定されたアプリケーション(図9の例では、第1の追加アプリケーション221)に対して、エクスポート準備要求を送信する(ステップS307)。
共通I/F管理部203は、第1の追加アプリケーション221から受信したエクスポート準備要求結果を、操作部20の設定管理部202へと送信する(ステップS308、S309)。
本体部10の設定管理部102は、操作部20の設定管理部202に対して、エクスポート実行要求を送信する(ステップS310)。
操作部20の設定管理部202は、本体部10の設定管理部102からエクスポート実行要求を受信すると、第1の内部アプリケーション211に対して、エクスポート実行要求を送信する(ステップS311)。エクスポート実行要求は、エクスポート準備要求と同様に、エクスポート対象とするアプリケーションに対して送信されても良いし、ブロードキャスト等により送信されても良い。
本体部10の設定管理部102は、第1のアプリケーション111からエクスポート実行依頼結果を受信する(ステップS312)。
操作部20の設定管理部202は、第1の内部アプリケーション211からエクスポート実行依頼結果を受信する(ステップS313)。
操作部20の設定管理部202は、本体部10の設定管理部102からエクスポート実行要求を受信すると、共通I/F管理部203に対して、エクスポート実行要求を送信する(ステップS314)。
共通I/F管理部203は、操作部20の設定管理部202からエクスポート実行要求を受信すると、第1の追加アプリケーション221に対して、エクスポート実行要求を送信する(ステップS315)。
共通I/F管理部203は、第1の追加アプリケーション221から受信したエクスポート実行要求結果を、操作部20の設定管理部202へと送信する(ステップS316、S317)。
本体部10内の第1のアプリケーション111は、指定された記憶部(例えば、HDD14)、または予め設定された記憶部、等に、自身の設定情報(エクスポート情報)を書き込むエクスポート処理を実行する(ステップS318)。
操作部20内の第1の内部アプリケーション211は、指定された記憶部(例えば、フラッシュメモリ24)、または予め設定された記憶部、等に、自身の設定情報(エクスポート情報)を書き込むエクスポート処理を実行する(ステップS319)。
操作部20内の第1の追加アプリケーション221は、指定された記憶部(例えば、フラッシュメモリ24)、または予め設定された記憶部、等に、自身の設定情報(エクスポート情報)を書き込むエクスポート処理を実行する(ステップS320)。
操作部20の設定管理部202は、第1の内部アプリケーション211から、エクスポート実行結果を受信する(ステップS321)。エクスポート実行結果には、エクスポートを実行したアプリケーションを特定するための情報、エクスポートした設定情報を特定するための情報、エクスポート処理が成功したか否かを示す情報、等が含まれ、例えば、アプリID、エクスポートファイルの格納場所、名称、等が含まれる。
共通I/F管理部203は、第1の追加アプリケーション221から受信したエクスポート実行結果を、操作部20の設定管理部202へと送信する(ステップS322、S323)。
操作部20の設定管理部202は、第1の内部アプリケーション211からエクスポート実行結果を受信すると、フラッシュメモリ24に記憶される第1の内部アプリケーション211の設定情報を読み出す。また、操作部20の設定管理部202は、共通I/F管理部203からエクスポート実行結果を受信すると、フラッシュメモリ24に記憶される第1の追加アプリケーション221の設定情報を読み出す。そして、操作部20の設定管理部202は、第1の内部アプリケーション211の設定情報と第1の追加アプリケーション221の設定情報とを統合し、統合した設定情報を、本体部10のHDD14に書き込む(ステップS324)。
本体部10の設定管理部102は、第1のアプリケーション111から、エクスポート実行結果を受信し(ステップS325)、操作部20の設定管理部202から、書き込み処理後のエクスポート実行結果を受信する(ステップS326)。
本体部10の設定管理部102は、第1のアプリケーション111からエクスポート実行結果を受信すると、HDD14に記憶される第1のアプリケーション111の設定情報を読み出す。また、本体部10の設定管理部102は、操作部20の設定管理部202からエクスポート実行結果を受信すると、HDD14に記憶される操作部アプリケーションの設定情報(第1の内部アプリケーション211の設定情報と第1の追加アプリケーション221の設定情報とを統合した設定情報)を読み出す。そして、本体部10の設定管理部102は、第1のアプリケーション111のエクスポート結果と操作部アプリケーションのエクスポート結果とを統合し、統合したエクスポート結果(最終的なエクスポート結果)を、本体部10のHDD14に書き込む(ステップS327)。
本体部10の設定管理部102は、最終的なエクスポート結果を出力し、エクスポートの要求元に通知する(ステップS328)。
上述したように、操作部20の設定管理部202は、信頼性の高いアプリケーション(例えば、第1の内部アプリケーション211)に対しては、直接通信し、信頼性の低いアプリケーション(例えば、第1の追加アプリケーション221)に対しては、共通I/F管理部203を介して通信し、それぞれのエクスポート結果を統合して、本体部10の設定管理部102へと送信する。即ち、本実施の形態に係る情報処理システムによれば、操作部において、信頼性の高いアプリケーション専用のエクスポート処理と、信頼性の低いアプリケーション専用のエクスポート処理とを分けることで、システムの信頼性を高めることができる。
<インポート処理のシーケンス>
図10は、本実施形態に係るインポート処理の一例を示すシーケンス図である。図10に示すシーケンスは、本体部10の設定管理部102と、第1のアプリケーション111と、操作部20の設定管理部202と、第1の内部アプリケーション211と、共通I/F管理部203と、第1の追加アプリケーション221と、により実行される。なお、本体部10におけるアプリケーション及び操作部20におけるアプリケーションの例は、これに限定されるものではない。
図10に示すように、操作部20の設定管理部202は、外部(例えば、ユーザ)からインポート要求を受け付け(ステップS401)、記憶部(例えば、フラッシュメモリ24)に、インポート要求の内容を書き込む(ステップS402)。インポート要求には、例えば、インポート対象とするアプリケーション等が指定されていても良い。
操作部20の設定管理部202は、インポート要求を、本体部10の設定管理部102に送信する(ステップS403)。
本体部10の設定管理部102は、本体部10内のインポート対象として指定されたアプリケーション(図10の例では、第1のアプリケーション111)に対して、インポート準備要求を送信する(ステップS404)。また、本体部10の設定管理部102は、操作部20の設定管理部202に対して、インポート準備要求を送信する(ステップS405)。インポート準備要求は、エクスポート準備要求やエクスポート実行要求と同様に、インポート対象とするアプリケーションに対して送信されても良いし、ブロードキャスト等により送信されても良い。
操作部20の設定管理部202は、本体部10の設定管理部102からインポート準備要求を受信すると、操作部20内のインポート対象として指定されたアプリケーション(図10の例では、第1の内部アプリケーション211)に対して、インポート準備要求を送信する(ステップS406)。操作部20の設定管理部202は、内部アプリケーションに対して、即時応答可能なI/Fで通信するため、内部アプリケーションから、インポート準備要求結果を即時受信することができる。
なお、インポート準備要求は、設定情報のインポートの前に必要となる処理を、各アプリケーションに実行させるための要求である。このような処理が不要な場合は、インポート準備要求を送信しない構成としても良い。
本体部10の設定管理部102は、第1のアプリケーション111に対して、インポート実行要求を送信する(ステップS407)。
操作部20の設定管理部202は、本体部10の設定管理部102からインポート準備要求を受信すると、共通I/F管理部203に対して、インポート準備要求を送信する(ステップS408)。操作部20の設定管理部202は、追加アプリケーションに対して、共通I/F管理部203を介して通信するため、追加アプリケーションから、インポート準備要求結果を即時受信することができない。
共通I/F管理部203は、操作部20の設定管理部202からインポート準備要求を受信すると、操作部20内のインポート対象として指定されたアプリケーション(図10の例では、第1の追加アプリケーション221)に対して、インポート準備要求を送信する(ステップS409)。
共通I/F管理部203は、第1の追加アプリケーション221から受信したインポート準備要求結果を、操作部20の設定管理部202へと送信する(ステップS410、S411)。
本体部10の設定管理部102は、操作部20の設定管理部202に対して、インポート実行要求を送信する(ステップS412)。
操作部20の設定管理部202は、本体部10の設定管理部102からインポート実行要求を受信すると、第1の内部アプリケーション211に対して、インポート実行要求を送信する(ステップS413)。インポート実行要求は、インポート準備要求と同様に、インポート対象とするアプリケーションに対して送信されても良いし、ブロードキャスト等により送信されても良い。
本体部10の設定管理部102は、第1のアプリケーション111からインポート実行依頼結果を受信する(ステップS414)。
操作部20の設定管理部202は、第1の内部アプリケーション211からインポート実行依頼結果を受信する(ステップS415)。
操作部20の設定管理部202は、本体部10の設定管理部102からインポート実行要求を受信すると、共通I/F管理部203に対して、インポート実行要求を送信する(ステップS416)。
共通I/F管理部203は、操作部20の設定管理部202からインポート実行要求を受信すると、第1の追加アプリケーション221に対して、インポート実行要求を送信する(ステップS417)。
共通I/F管理部203は、第1の追加アプリケーション221から受信したインポート実行依頼結果を、操作部20の設定管理部202へと送信する(ステップS418、S419)。
実行依頼結果として、本体部アプリケーションまたは操作部アプリケーションは、記憶部(例えば、HDD14)にそれぞれ割り当てられた設定情報(インポート情報)を参照して、インポート実行要求の対象として指定された設定項目の数(インポート実施数)を計算し、そのうちインポート処理を行う予定の設定項目の数(実施予定数)を返信しても良い。なお、操作部アプリケーションは、操作部20のOSがAndroid(登録商標)の場合に、“sendBroadcast”等を用いて返信しても良い。
本体部10内の第1のアプリケーション111は、指定された記憶部(例えば、HDD14)、または予め設定された記憶部、等から、自身の設定情報(インポート情報)を読み出し、上述した図5〜図8に示されるような設定項目ごとに、読み出した設定情報を設定するインポート処理を実行する。インポートファイルが、HDD14に記憶されている場合、第1のアプリケーション111は、アプリIDや項目ID等を用いて、HDD14に記憶されるインポートファイル内の設定情報の中から、自身の設定情報を特定して読み出すと良い。
操作部20内の第1の内部アプリケーション211は、指定された記憶部(例えば、フラッシュメモリ24)、または予め設定された記憶部、等から、自身の設定情報(インポート情報)を読み出し、上述した図5〜図8に示されるような設定項目ごとに、読み出した設定情報を設定するインポート処理を実行する。
操作部20内の第1の追加アプリケーション221は、指定された記憶部(例えば、フラッシュメモリ24)、または予め設定された記憶部等から、自身の設定情報(インポート情報)を読み出し、上述した図5〜図8に示されるような設定項目ごとに、読み出した設定情報を設定するインポート処理を実行する。
本体部10の設定管理部102は、インポートファイルに含まれる設定情報を、アプリケーションごとに予め分割(分解)して、本体部10内の記憶部(例えば、HDD14)に記憶しても良い。また、本体部10の設定管理部102は、操作部アプリケーションの設定情報のみを分割して、操作部20内の記憶部(例えば、フラッシュメモリ24)に記憶しても良い。操作部アプリケーションは、フラッシュメモリ24に記憶される設定情報の中から、自身の設定情報を特定して読み出すことが可能である。
操作部20の設定管理部202は、第1の内部アプリケーション211から、インポート実行結果を受信する(ステップS420)。インポート実行結果には、インポートを実行したアプリケーションを特定するための情報、インポートした設定情報を特定するための情報、インポート処理が成功したか否かを示す情報等が含まれ、例えば、アプリID、インポートファイルの格納場所、名称等が含まれる。
共通I/F管理部203は、第1の追加アプリケーション221から受信したインポート実行結果を、操作部20の設定管理部202へと送信する(ステップS421、S422)。
操作部20の設定管理部202は、第1の内部アプリケーション211からインポート実行結果を受信すると、フラッシュメモリ24に記憶される第1の内部アプリケーション211の設定情報を読み出す。また、操作部20の設定管理部202は、共通I/F管理部203からインポート実行結果を受信すると、フラッシュメモリ24に記憶される第1の追加アプリケーション221の設定情報を読み出す。そして、操作部20の設定管理部202は、第1の内部アプリケーション211の設定情報と第1の追加アプリケーション221の設定情報とを統合し、統合した設定情報を、本体部10のHDD14に書き込む(ステップS423)。
本体部10の設定管理部102は、第1のアプリケーション111から、インポート実行結果を受信し(ステップS424)、操作部20の設定管理部202から、書き込み処理後のインポート実行結果を受信する(ステップS425)。
本体部10の設定管理部102は、第1のアプリケーション111からインポート実行結果を受信すると、HDD14に記憶される第1のアプリケーション111の設定情報を読み出す。また、本体部10の設定管理部102は、操作部20の設定管理部202からインポート実行結果を受信すると、HDD14に記憶される操作部アプリケーションの設定情報(第1の内部アプリケーション211の設定情報と、第1の追加アプリケーション221の設定情報とを統合した設定情報)を読み出す。そして、本体部10の設定管理部102は、第1のアプリケーション111のインポート結果と操作部アプリケーションのインポート結果とを統合し、統合したインポート結果(最終的なインポート結果)を出力し、インポートの要求元に通知する(ステップS426)。
上述したように、操作部20の設定管理部202は、信頼性の高いアプリケーション(例えば、第1の内部アプリケーション211)に対しては、直接通信し、信頼性の低いアプリケーション(例えば、第1の追加アプリケーション221)に対しては、共通I/F管理部203を介して通信し、それぞれのインポート結果を統合して、本体部10の設定管理部102へと送信する。即ち、本実施の形態に係る情報処理システムによれば、操作部において、信頼性の高いアプリケーション専用のインポート処理と、信頼性の低いアプリケーション専用のインポート処理とを分けることで、システムの信頼性を高めることができる。
<エクスポート処理の一例を示すフローチャート>
次に、外部からエクスポート要求を受け付けた場合のエクスポート処理の一例について、図11乃至図13を用いて説明する。なお、図11乃至図13においては、エクスポート処理の一例について説明するが、インポート処理も同様の流れで実行することができる。
図11は、操作部の設定管理部が、本体部の設定管理部からエクスポート準備要求を受け付け、操作部内のエクスポート対象として指定されたアプリケーションからエクスポート準備要求結果を受信するまでの、フローチャートを示している。図11におけるステップS501からステップS506までの処理は、図9において、操作部20の設定管理部202が、ステップS303でエクスポート準備要求を受け付けてから、ステップS309でエクスポート準備要求結果を受信するまでの処理に対応している。
まず、操作部20の設定管理部202は、本体部10の設定管理部102からエクスポート準備要求を受け付ける(ステップS501)。
続いて、設定管理部202は、内部アプリケーション(信頼性の高いアプリケーション)用のエクスポート準備要求を発行し、内部アプリケーションに対してエクスポート準備要求を送信し、内部アプリケーションからエクスポート準備要求結果を受信する(ステップS502)。
続いて、設定管理部202は、追加アプリケーション(信頼性の低いアプリケーション)用のエクスポート準備要求を発行し、追加アプリケーションに対してエクスポート準備要求を送信する(ステップS503)。
続いて、設定管理部202は、追加アプリケーション用の、エクスポート準備要求結果の受信待ちタイマーが、制限時間(タイムアウト時間)を超えたか否かを判定する(ステップS504)。タイマーが制限時間を超えた場合、設定管理部202は、ステップS507の処理を行う。タイマーが制限時間を超えていない場合、設定管理部202は、ステップS505の処理を行う。
続いて、設定管理部202は、追加アプリケーションからのエクスポート準備要求結果の受信待ちを行う(ステップS505)。
続いて、設定管理部202は、追加アプリケーションからのエクスポート準備要求結果を全て受信したか否かを判定する(ステップS506)。追加アプリケーションからのエクスポート準備要求結果が全部揃った場合、設定管理部202は、ステップS507の処理を行う。追加アプリケーションからのエクスポート準備要求結果が全部揃っていない場合、設定管理部202は、ステップS504の処理を行う。
上述のように、設定管理部202は、内部アプリケーションに対して、即時応答可能なI/Fで通信するため、内部アプリケーションから、エクスポート準備要求結果を即時受信できる。一方、追加アプリケーションに対して、共通I/F管理部203を介して通信するため、エクスポート準備要求結果を即時受信することができない。従って、設定管理部202は、エクスポート準備要求結果を送信した追加アプリケーションからのエクスポート準備要求結果を全て受信するまで待機する、または、制限時間が経過するまで待機する。
図12は、操作部の設定管理部202が、操作部内のエクスポート対象として指定されたアプリケーションから、エクスポート実行要求を受信し、エクスポート実行依頼結果を受信するまでの、フローチャートを示している。図12におけるステップS507からステップS517までの処理は、図9において、操作部20の設定管理部202が、ステップS310でエクスポート実行要求を受け付けてから、ステップS317でエクスポート実行依頼結果を受信するまでの処理に対応している。
まず、操作部20の設定管理部202は、本体部10の設定管理部102からエクスポート実行要求を受け付ける(ステップS507)。
続いて、設定管理部202は、内部アプリケーション用のエクスポート実行要求を発行し、内部アプリケーションに対してエクスポート実行要求を送信する(ステップS508)。
続いて、設定管理部202は、追加アプリケーション用のエクスポート実行要求を発行し、追加アプリケーションに対してエクスポート実行要求を送信する(ステップS509)。
続いて、設定管理部202は、内部アプリケーション用のエクスポート実行要求結果の受信待ちタイマーが、制限時間(タイムアウト時間)を超えたか否かを判定する(ステップS510)。タイマーが制限時間を超えた場合、設定管理部202は、ステップS516の処理を行う。タイマーが制限時間を超えていない場合、設定管理部202は、ステップS511の処理を行う。内部アプリケーション用の待機処理における制限時間は、追加アプリケーション用の待機処理における制限時間と比較して長く設定されている。
続いて、設定管理部202は、内部アプリケーションからのエクスポート実行要求結果の受信待ちを行う(ステップS511)。
続いて、設定管理部202は、内部アプリケーションからのエクスポート実行要求結果を全て受信したか否かを判定する(ステップS512)。内部アプリケーションからのエクスポート実行要求結果が全部揃った場合、設定管理部202は、ステップS516の処理を行う。内部アプリケーションからのエクスポート実行要求結果が全部揃っていない場合、設定管理部202は、ステップS510の処理を行う。
設定管理部202は、ステップS510〜ステップS512における処理と並行して、ステップS513〜ステップS515における処理を行う。設定管理部202は、追加アプリケーション用のエクスポート実行要求結果の受信待ちタイマーが、制限時間(タイムアウト時間)を超えたか否かを判定する(ステップS513)。タイマーが制限時間を超えた場合、設定管理部202は、ステップS516の処理を行う。タイマーが制限時間を超えていない場合、設定管理部202は、ステップS514の処理を行う。
続いて、設定管理部202は、追加アプリケーションからのエクスポート実行要求結果の受信待ちを行う(ステップS514)。
続いて、設定管理部202は、追加アプリケーションからのエクスポート実行要求結果を全て受信したか否かを判定する(ステップS515)。追加アプリケーションからのエクスポート実行要求結果が全部揃った場合、設定管理部202は、ステップS516の処理を行う。追加アプリケーションからのエクスポート実行要求結果が全部揃っていない場合、設定管理部202は、ステップS513の処理を行う。
設定管理部202は、内部アプリケーションに対しては、エクスポート処理が正常完了する(例えば、各処理において要求結果が正常に返信される)ことを前提として待機処理を行うため、制限時間(タイムアウト時間)を長く設定する。該制限時間(タイムアウト時間)は、内部アプリケーション側で設定することが可能であり、設定管理部202は、内部アプリケーションから申請された制限時間に基づいて、タイマーを設定する。信頼性の高いアプリケーションにおいて、制限時間をアプリケーション側から設定可能とすることで、システムにおけるエクスポート処理の信頼性を向上させることができる。
また、設定管理部202は、追加アプリケーションに対しては、エクスポート処理が正常完了しない(例えば、各処理において要求結果が返信されない、各処理において要求結果の返信に時間がかかる)ことを前提として待機処理を行うため、制限時間を短く設定する。該制限時間は、固定値であり、設定管理部202は、固定の制限時間に基づいて、タイマーを設定する。信頼性の低いアプリケーションにおいて、制限時間を固定値とすることで、信頼性の低いアプリケーションのエラーによって、エクスポート処理が滞る、エクスポート処理時間が長くなる、等の不具合を防ぎ、システムにおけるエクスポート処理の信頼性を向上させることができる。
続いて、設定管理部202は、内部アプリケーション及び追加アプリケーションからのエクスポート実行要求結果の受信待機処理が完了すると、内部アプリケーションに対して、エクスポート実行結果の受信待機処理について、タイマーを設定する(ステップS516)。エクスポート実行要求結果の受信待機処理において、タイマーを設定した場合と同様に、内部アプリケーションについては、エクスポート処理が正常完了することが前提であるため、設定管理部202は、内部アプリケーションから申請されたタイムアウト時間に基づいて、タイマーを設定する。
続いて、設定管理部202は、追加アプリケーションに対して、エクスポート実行結果の受信待機処理について、タイマーを設定する(ステップS517)。エクスポート実行要求結果の受信待機処理において、タイマーを設定した場合と同様に、追加アプリケーションについては、エクスポート処理が正常完了しないことが前提であるため、設定管理部202は、固定の制限時間に基づいて、タイマーを設定する。
図13は、操作部の設定管理部が、操作部内のエクスポート対象として指定されたアプリケーションから、エクスポート実行依頼結果を受信し、エクスポート実行結果を受信するまでの、フローチャートを示している。図13におけるステップS518からステップS524までの処理は、図9において、操作部20の設定管理部202が、ステップS317でエクスポート実行依頼結果を受信してから、ステップS323でエクスポート実行結果を受信するまでの処理に対応している。
まず、操作部20の設定管理部202は、内部アプリケーション用エクスポート実行結果の受信待ちタイマーが、制限時間を超えたか否かを判定する(ステップS518)。タイマーが制限時間を超えた場合、設定管理部202は、ステップS519の処理を行う。タイマーが制限時間を超えていない場合、設定管理部202は、ステップS520の処理を行う。内部アプリケーション用の待機処理における制限時間(タイムアウト時間)は、追加アプリケーション用の待機処理における制限時間(タイムアウト時間)と比較して長く設定されている。
タイマーが制限時間を超えた場合(タイムアウトが発生した場合)、設定管理部202は、異常ケースであると判断し、エクスポート処理失敗として記憶部(例えば、HDD14)にエクスポート結果を書き込み(ステップS519)、エラー処理を行う。
タイマーが制限時間を超えていない場合(タイムアウトが発生していない場合)、設定管理部202は、内部アプリケーションからのエクスポート実行結果の受信待ちを行う(ステップS520)。
続いて、設定管理部202は、内部アプリケーションからのエクスポート実行結果を全て受信したか否かを判定する(ステップS521)。内部アプリケーションからのエクスポート実行結果が全部揃った場合、設定管理部202は、処理を終了する。内部アプリケーションからのエクスポート実行結果が全部揃っていない場合、設定管理部202は、ステップS518の処理を行う。
設定管理部202は、ステップS518〜ステップS521における処理と並行して、ステップS522〜ステップS524における処理を行う。設定管理部202は、追加アプリケーション用のエクスポート実行結果の受信待ちタイマーが、制限時間を超えたか否かを判定する(ステップS522)。タイマーが制限時間を超えた場合、設定管理部202は、処理を終了する。タイマーが制限時間を超えていない場合、設定管理部202は、ステップS523の処理を行う。
タイマーが制限時間を超えた場合(タイムアウトが発生した場合)であっても、設定管理部202は、正常ケースであると判断し、エラー処理を行わずに、処理を終了する。即ち、設定管理部202は、信頼性の低いアプリケーションからの要求結果が正常に返信されない場合であっても、エラー処理を行わずに、その後の処理を続ける。これにより、信頼性の低いアプリケーションのエラーによって多発する処理の滞りを回避し、システム全体として、エクスポート処理を正常完了させることが可能になる。
タイマーが制限時間を超えていない場合(タイムアウトが発生していない場合)、設定管理部202は、追加アプリケーションからのエクスポート実行結果の受信待ちを行う(ステップS523)。
続いて、設定管理部202は、追加アプリケーションからのエクスポート実行結果を全て受信したか否かを判定する(ステップS524)。追加アプリケーションからのエクスポート実行結果が全部揃った場合、設定管理部202は、処理を終了する。追加アプリケーションからのエクスポート実行結果が全部揃っていない場合、設定管理部202は、ステップS522の処理を行う。
上述のように、本実施の形態に係る情報処理システムによれば、共通I/F管理部203によって、追加アプリケーションのような信頼性の低いアプリケーションに対するエクスポート/インポート処理が滞っても、内部アプリケーションのような信頼性の高いアプリケーションに対するエクスポート/インポートの処理に影響を及ぼすことはない。このため、本実施形態によれば、本体部と操作部とを備えた構成において、インポート/エクスポート処理を正常完了させることができる。
なお、本実施形態の装置(画像形成装置)で実行されるプログラムは、ROM等に予め組み込まれて提供される。また、本実施形態の装置で実行されるプログラムは、インストール可能な形式や実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータ・プログラム・プロダクトとして提供するように構成しても良い。
また、本実施形態の装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の装置で実行されるプログラムをインターネット等のネットワーク経由で提供や配布するように構成しても良い。
本実施形態の装置で実行されるプログラムは、上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMからプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、各部が主記憶装置上に生成される。上述した各部の機能のうちの一部又は全部が、専用のハードウェア回路で実現されても良い。
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施形態に限定されるものではない。本発明の主旨をそこなわない範囲で変更することが可能である。