以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
図1は、本実施形態に係るシステム100の概略図である。図1に示されるシステム100は、MFP10と、サーバ50、60、70とで構成されている。また、システム100は、MFP10に代えて、プリンタ単能機或いはスキャナ単能機等を含んでもよい。さらに、システム100は、複数のMFP10を含んでもよい。MFP10及びサーバ50〜70は、通信ネットワークを通じて通信可能に構成されている。通信ネットワークは、例えば、インターネット101、有線LAN、無線LAN102、或いはこれらの組み合わせであってもよい。
MFP10及びサーバ60は、無線LAN102に属している。すなわち、MFP10及びサーバ60は、無線LAN102の不図示のアクセスポイントを経由して、相互に通信することができる。また、無線LAN102は、ルータ102Aを通じてインターネット101に接続されている。さらに、サーバ50、70は、インターネット101に接続されている。すなわち、MFP10は、ルータ102Aからインターネット101を経由して、サーバ50、70と通信することができる。但し、サーバ50〜70の接続先は前述の例に限定されず、MFP10と通信可能であればよい。
MFP10は、サーバ50、60から順番に受信した複数の指示データそれぞれで指示された動作を実行することによって、サーバ50、60からサービスの提供を受ける。以下、サーバ50、60が提供するサービスを実現するための複数の指示データのセットを、「拡張プログラム」と表記することがある。
サーバ50、60が提供するサービスとは、例えば、スキャナ12に生成させた画像データをストレージサーバにアップロードするスキャンアップロードサービス、ストレージサーバからダウンロードした画像データに対するプリント動作をプリンタ11に実行させるダウンロードプリントサービス等がある。なお、本実施形態に係る画像データとは、JPEG形式、TIFF形式、或いはビットマップ形式等に限定されず、PDF形式、テキスト形式等であってもよい。
MFP10は、図1に示されるように、プリンタ11と、スキャナ12と、ディスプレイ23と、入力I/F24と、通信I/F25と、CPU31と、メモリ32と、通信バス33とを主に備える。MFP10を構成する各構成要素は、通信バス33を通じて相互に接続されている。MFP10は、画像処理装置の一例である。また、プリンタ11及びスキャナ12は、画像処理部の一例である。
プリンタ11は、画像データで示される画像をシートに記録するプリント動作を実行する。プリンタ11の記録方式としては、インクジェット方式や電子写真方式などの公知の方式を採用することができる。スキャナ12は、原稿に記録されている画像を読み取ってスキャンデータを生成するスキャン動作を実行する。また、MFP10は、スキャナ12にスキャン動作を実行させ、生成されたスキャンデータに対するプリント動作をプリンタ11に実行させるコピー動作を実行することができる。プリント動作、スキャン動作、及びコピー動作は、画像データに対する画像処理動作の一例である。
ディスプレイ23は、液晶ディスプレイ、有機ELディスプレイ等であり、各種情報を表示する表示画面を備える。
入力I/F24は、ユーザによる入力操作を受け付けるユーザインタフェースである。具体的には、入力I/F24はボタンを有しており、押下されたボタンに対応づけられた各種の操作信号をCPU31へ出力する。さらに、入力I/F24は、ディスプレイ23の表示画面に重畳された膜状のタッチセンサを有していてもよい。ディスプレイ23の表示画面に表示されたオブジェクトを指定する操作、文字列或いは数字列を入力する操作は、ユーザ操作の一例である。「オブジェクト」とは、例えば、ディスプレイ23に表示された文字列、アイコン、ボタン、リンク、ラジオボタン、チェックボックス、プルダウンメニュー等である。
タッチセンサとして実現される入力I/F24は、ユーザがタッチした表示画面上の位置を示す位置情報を出力する。なお、本明細書中における「タッチ」とは、入力媒体を表示画面に接触させる操作全般を含む。また、入力媒体が表示画面に触れていなくても、表示画面との間の距離がごく僅かな位置まで入力媒体を近接させる「ホバー」或いは「フローティングタッチ」を、前述の「タッチ」の概念に含めてもよい。さらに入力媒体とは、ユーザの指であってもよいし、タッチペン等であってもよい。ディスプレイ23に表示されたアイコンの位置のタップするユーザ操作は、当該アイコンを指定する指定操作の一例である。
通信I/F25は、外部装置と通信可能な通信インタフェースの一例である。通信I/F25は、例えば、Wi−Fi(Wi-Fi Allianceの登録商標)規格に準拠した無線通信を行う。MFP10は、通信I/F25を通じてサーバ50〜70に各種情報を出力し、通信I/F25を通じてサーバ50〜70から各種情報を受信する。
CPU31は、MFP10の全体動作を制御するものである。CPU31は、入力I/F24から出力される各種信号、及び通信I/F25を通じて外部装置から取得した各種情報等に基づいて、後述する各種プログラムをメモリ32から取得して実行する。すなわち、CPU31及びメモリ32は、コントローラの一例を構成する。
メモリ32には、OS34と、装置プログラム35とが記憶される。なお、装置プログラム35は、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。また、メモリ32には、装置プログラム35の実行に必要なデータ或いは情報が記憶される。メモリ32は、例えば、RAM、ROM、EEPROM、HDD、MFP10に着脱されるUSBメモリ等の可搬記憶媒体、CPU31が備えるバッファ等、或いはそれらの組み合わせによって構成される。
メモリ32は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non−transitoryな媒体である。non−transitoryな媒体には、上記の例の他に、CD−ROM、DVD−ROM等の記録媒体も含まれる。また、non−transitoryな媒体は、tangibleな媒体でもある。一方、インターネット101上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non−transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
サーバ50は、例えば、図2に示されるXMLファイルをサーバメモリに記憶している。サーバ60は、例えば、図3(A)或いは図3(B)に示されるXMLファイルをサーバメモリに記憶している。サーバ70は、例えば、MFP10から要求された画像データをMFP10に送信し、MFP10から送信されたスキャンデータをサーバメモリに記憶する。本実施形態において、サーバ50はサーバ識別情報“www.server-a.com”で識別され、サーバ60はサーバ識別情報“www.server-b.com”で識別され、サーバ70はサーバ識別情報“www.server-c.com”で識別される。
サーバ50、60は、MFP10からXMLファイルの送信を要求されたことに応じて、要求されたXMLファイルをMFP10に送信する。インターネット101上のサーバ50は、例えば、HTTPによってファイルを送信する所謂Webサーバである。一方、無線LAN102に属するサーバ60は、例えば、CIFS(Common Internet File Systemの略)によってファイルを送信する。さらに、インターネット101上のサーバ70は、例えば、HTTPによってファイルを送信し、FTPによってファイルを受信する。但し、ファイルを送受信するプロトコルは、これらに限定されない。サーバ50は第1メモリの一例であり、サーバ60は第2メモリの一例である。
図2及び図3に示されるXMLファイルは、拡張プログラムを構成するテキスト形式の指示データの一例である。指示データは、図2(A)、図2(B)、及び図3に示される画面指示XMLと、図2(C)に示される動作指示XMLと、不図示の終了指示XMLとに大別される。画面指示XMLは、指定画面をMFP10のディスプレイ23に表示させることを指示する画面指示データの一例である。動作指示XMLは、画像処理動作を含む動作を指示する動作指示データの一例である。終了指示XMLは、拡張プログラムの終了を指示する指示データである。但し、指示データは、バイナリデータ或いはバイナリ化されたテキストデータであってもよいし、CSVフォーマット或いは拡張プログラムのために設計された独自フォーマットであってもよい。
サーバ50、60は、同じファイル名のXMLファイルを記憶している。より詳細には、サーバ60は、MFP10がサーバ50から受信し、ユーザの指示に従ってMFP10が編集し、MFP10がサーバ60に送信したXMLファイルを記憶している。図3に示されるXMLファイルは、図2(B)に示されるファイル名“scan-upload2.xml”のXMLファイルが編集されたものである。以下、サーバ50に記憶されているXMLファイルを「標準XML」と表記し、サーバ60に記憶されているXMLファイルを「カスタムXML」と表記することがある。
すなわち、サーバ50、60に記憶されている同一ファイル名のXMLファイルで指示される処理は、一部が共通し且つ他の一部が相違する。例えば、図2(B)及び図3に示されるXMLファイルは、スキャナ12に生成させるスキャンデータのファイル形式をユーザに選択させる点において共通し、ファイル形式の選択肢の数が相違する。
図4〜図8を参照して、本実施形態に係るシステム100の動作を説明する。
本明細書のフローチャートは、基本的に、プログラムに記述された命令に従ったCPU31の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「制御」等の処理は、CPU31の処理を表している。CPU31による処理は、OS34を介したハードウェア制御も含む。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
まず、MFP10の装置プログラム35は、図9(A)に示されるサービス選択画面をディスプレイ23に表示させる(S11)。サービス選択画面は、[実行]アイコン111、114と、[模擬実行]アイコン112、115と、[一覧]アイコン113、116とを含む。そして、装置プログラム35は、サービス選択画面に対するユーザ操作を、入力インタフェースを通じて受け付ける(S12)。S12で[実行]アイコン111、114及び[模擬実行]アイコン112、115の1つの指定を受け付ける処理は、モード受付処理の一例である。
[実行]アイコン111は、スキャンアップロードサービスを実現する拡張プログラムを、後述する実行モードで実行する指示に対応する。[模擬実行]アイコン112は、スキャンアップロードサービスを実現する拡張プログラムを、後述する模擬実行モードで実行する指示に対応する。[一覧]アイコン113は、スキャンアップロードサービスを実現する複数の指示データの一覧を、ディスプレイ23に表示させる指示に対応する。また、[実行]アイコン114、[模擬実行]アイコン115、[一覧]アイコン116は、ダウンロードプリントサービスを対象として、[実行]アイコン111、[模擬実行]アイコン112、[一覧]アイコン113と同様の指示に対応する。
また図示は省略するが、[実行]アイコン111、114、[模擬実行]アイコン112、115、[一覧]アイコン113、116には、タップされた際に最初に取得すべき標準XMLの所在を示す所在情報が対応付けられている。所在情報は、例えば、URL形式であって、サーバ識別情報と、ファイルパス情報とを含む。本実施形態では、[実行]アイコン111、[模擬実行]アイコン112、[一覧]アイコン113に所在情報“www.server-a.com/scan-upload1.xml”が対応付けられており、[実行]アイコン114、[模擬実行]アイコン115、[一覧]アイコン116に所在情報“www.server-a.com/downlod-print1.xml”が対応付けられているものとする。
実行モードは、対応するサービスを実際に利用する動作モードである。換言すれば、実行モードの装置プログラム35は、対応するサービスの提供を受けるために、拡張プログラムを実際に実行する。一方、模擬実行モードは、対応するサービスを模擬的に利用する動作モードである。換言すれば、模擬実行モードの装置プログラム35は、対応するサービスの提供を受けるための手順をユーザに確認させるために、拡張プログラムを模擬的に実行する。
より詳細には、実行モードの装置プログラム35は、画面指示XMLで指示された指示画面をディスプレイ23に実際に表示させ、動作指示XMLで指示された動作をMFP10の各構成要素に実際に実行させる。一方、模擬実行モードの装置プログラム35は、画面指示XMLで指示された指示画面をディスプレイ23に実際に表示させ、動作指示XMLで指示された画像処理動作を画像処理部に実行させない。すなわち、実行モード及び模擬実行モードは、画面指示XMLの取り扱いが共通し、動作指示XMLの取り扱いが相違する。
[実行モードによる拡張プログラムの実行]
実行モードで拡張プログラムを実行する場合について説明する。装置プログラム35は、例えば[実行]アイコン111の指定を入力I/F24を通じて受け付けたことに応じて(S12:実行)、スキャンアップロードサービスを実現する拡張プログラムを、実行モードで実行する。まず、装置プログラム35は、[実行]アイコン111に対応付けられた所在情報“www.server-a.com/scan-upload1.xml”で示される標準XMLを取得する(S13)。S13の処理は、取得処理の一例である。
より詳細には、装置プログラム35は、サーバ識別情報“www.server-a.com”で識別されるサーバ50に、ファイルパス情報“scan-upload1.xml”で示される標準XMLの送信を要求するXML要求情報を、通信I/F25を通じて送信する。そして、装置プログラム35は、図2(A)に示される標準XMLを、XML要求情報の応答として、通信I/F25を通じてサーバ50から受信する。
次に、装置プログラム35は、直前のS13で受信した標準XML“scan-upload1.xml”が終了指示XMLか否かを判断する(S14)。装置プログラム35は、例えば、標準XMLの先頭に<終了>タグが記述されていることに応じて、当該標準XMLを終了指示XMLと判断する(S14:Yes)。一方、装置プログラム35は、例えば、標準XMLの先頭に<終了>タグが記述されていないことに応じて、当該標準XMLを終了指示XMLでないと判断する(S14:No)。
次に、装置プログラム35は、標準XML“scan-upload1.xml”が終了指示XMLでないと判断したことに応じて(S14:No)、標準XML“scan-upload1.xml”に対応するカスタムXMLがサーバ60に記憶されているか否かを判断する(S15)。標準XMLに対応するカスタムXMLとは、例えば、標準XML“scan-upload1.xml”と同一ファイル名のカスタムXMLを指す。
装置プログラム35は、例えば、サーバ識別情報“www.server-b.com”で識別されるサーバ60に、ファイルパス情報“scan-upload1.xml”で示されるカスタムXMLの送信を要求するXML要求情報を、通信I/F25を通じて送信する。そして、装置プログラム35は、通信I/F25を通じてサーバ60からカスタムXMLを受信したことに応じて、標準XMLに対応するカスタムXMLが存在すると判断する(S15:Yes)。一方、装置プログラム35は、XML要求情報を送信してから所定の時間が経過してもカスタムXMLを受信しないことに応じて、標準XMLに対応するカスタムXMLが存在しないと判断する(S15:No)。なお、サーバ60のサーバ識別情報は、メモリ32に予め記憶されているものとする。
次に、装置プログラム35は、標準XML“scan-upload1.xml”に対応するカスタムXMLが存在しないと判断したことに応じて(S15:No)、S16〜S18の処理をスキップして、標準XML“scan-upload1.xml”がスキップタグを含むか否かを判断する(S19)。スキップタグは、標準XML“scan-upload1.xml”で指示された動作のスキップを指示するタグである。より詳細には、スキップタグは、スキップタグを含む画面指示データで指示される指示画面を、ディスプレイ23に表示しないことを指示する非表示情報の一例である。S19の処理は、第2判断処理の一例である。
次に、装置プログラム35は、標準XML“scan-upload1.xml”がスキップタグを含まないと判断したことに応じて(S19:No)、コマンド実行処理を実行する(S21)。コマンド実行処理は、直前のS13、S15で受信したXMLファイルで指示された動作を実行する処理である。図5を参照して、コマンド実行処理の詳細を説明する。
まず、装置プログラム35は、S13、S15で受信したXMLファイルが画面指示XML及び動作指示XMLのどちらかを判断する(S31)。S31の処理は、第1判断処理の一例である。装置プログラム35は、例えば、XMLファイルの先頭に<画面>タグ及び<コマンド>タグのどちらが記述されているかを判断する。そして、装置プログラム35は、標準XML“scan-upload1.xml”の先頭に<画面>タグが記述されていることに応じて、当該標準XMLが画面指示XMLであると判断する(S31:画面指示)。
画面指示XMLは、例えば図2(A)に示されるように、<NextURL>タグと、<タイトル>タグと、<メッセージ>タグと、<リスト>タグと、<編集>タグと、<アプリVer>タグと、<コマンドVer>タグとを含む。<NextURL>タグの要素には、当該画面指示XMLに指示された動作を実行した後に取得すべき指示データの所在情報が設定される。<タイトル>タグの要素には、指示画面の画面タイトルの文字列が設定される。<メッセージ>タグの要素には、指示画面に表示させる文字列が設定される。
<リスト>タグの属性“id”には、指示画面を通じてユーザに指定させるパラメータの項目(例えば、“原稿種別”、“ファイル形式”)を識別する情報が設定される。<リスト>タグは、複数の<選択肢>タグを要素として含む。<選択肢>タグの要素には、ユーザに指定させるパラメータを示すテキスト(例えば、“見積書”、“契約書”)が設定される。<選択肢>タグの属性“val”には、ユーザに指定させるパラメータの値(例えば、“1”、“2”)が設定される。画面指示XMLに含まれる<選択肢>タグは、候補パラメータの一例である。
<編集>タグは、当該XMLファイルの編集を許可するか否かを示すタグである。より詳細には、要素“true”は編集を許可することを示し、要素“false”は編集を許可しないことを示す。<アプリVer>タグの要素には、当該XMLファイルを含む複数のXMLファイルで実現される拡張プログラムのバージョンを示す値が設定される。すなわち、1つの拡張プログラムを実現する全てのXMLファイルには、<アプリVer>タグの要素に同一の値が設定される。<コマンドVer>タグの要素には、当該XMLファイルのバージョンを示す値が設定される。<コマンドver>タグの要素は、XMLファイルのバージョンを示すバージョン情報の一例である。
次に、装置プログラム35は、直前のS13、S15で受信した画面指示XMLの<画面>タグの要素に従って、指示画面をディスプレイ23に表示させる(S33、S34)。なお、実行モードで動作する装置プログラム35は、例えば図9(B)に示されるように、[編集]アイコン120を含まない指示画面をディスプレイに表示させる(S32:No→S33)。一方、模擬実行モードで動作する装置プログラム35は、例えば図11(A)に示されるように、[編集]アイコン120を含む指示画面をディスプレイに表示させる(S32:Yes→S34)。
図9(B)に示される種別選択画面は、標準XML“scan-upload1.xml”で指示された指示画面の一例であって、項目“原稿種別”に対応するパラメータをユーザに指定させるための画面である。種別選択画面は、「原稿の種別を選択して下さい。」とのメッセージと、複数の<選択肢>タグそれぞれに対応するパラメータアイコン117、118とを含む。そして、装置プログラム35は、種別選択画面に対するユーザ操作を、入力I/F24を通じて受け付ける(S35)。S33の処理は第1表示処理の一例であり、S35の処理は第1受付処理の一例である。
次に、装置プログラム35は、例えばパラメータアイコン117の指定を入力I/F24を通じて受け付けたことに応じて(S35:パラメータ)、項目“原稿種別”の指定パラメータ“doc_type=1”をメモリ32に一時記憶させる(S36)。また図示は省略するが、装置プログラム35は、標準XML“scan-upload1.xml”に含まれる<NextURL>タグの要素“www.server-a.com/scan-upload2.xml”を、次に取得すべき標準XMLの所在情報として抽出する。
次に図4に戻って、装置プログラム35は、抽出した所在情報のサーバ識別情報“www.server-a.com”で識別されるサーバ50に、ファイルパス情報“scan-upload2.xml”で示される標準XMLの送信を要求するXML要求情報を、通信I/F25を通じて送信する。なお、装置プログラム35は、S35でパラメータが指定された後のS13において、指定パラメータ“doc_type=1”を含むXML要求情報を、通信I/F25を通じて送信する。
そして、装置プログラム35は、図2(B)に示される標準XMLを、XML要求情報の応答として、通信I/F25を通じてサーバ50から受信する(S13)。また、装置プログラム35は、S13で受信した標準XML“scan-upload2.xml”が終了指示XMLでないと判断する(S14:No)。さらに、装置プログラム35は、図3(A)に示されるカスタムXMLを、標準XML“scan-upload2.xml”に対応するカスタムXMLとして、サーバ60から受信する(S15:Yes)。
次に、装置プログラム35は、S13で受信した標準XMLに対応するカスタムXMLが存在すると判断したことに応じて(S15:Yes)、対応する標準XML及びカスタムXMLのバージョンを比較する(S16)。すなわち、装置プログラム35は、図2(B)に示される標準XMLの<コマンドVer>タグの要素“2”と、図3(A)に示されるカスタムXMLの<コマンドVer>タグの要素“1”とが一致するか否かを判断する。S16の処理は、比較処理の一例である。
次に、装置プログラム35は、対応する標準XML及びカスタムXMLのバージョンが異なると判断したことに応じて(S16:No)、図10(A)に示される報知画面をディスプレイ23に表示させる(S17)。報知画面は、対応する標準XML及びカスタムXMLのバージョンが異なることを報知するための画面である。報知画面は、「標準XMLがバージョンアップされています。」とのメッセージと、対応する標準XML及びカスタムXMLそれぞれのバージョン「標準XML:バージョン2」、「カスタムXML:バージョン1」と、[OK]アイコン119とを含む。S17の処理は、報知処理の一例である。
そして、装置プログラム35は、[OK]アイコン119の指定を入力I/F24を通じて受け付けたことに応じて(S18:Yes)、S15で受信したカスタムXML“scan-upload2.xml”に対するS19以降の処理を実行する。また、装置プログラム35は、対応する標準XML及びカスタムXMLのバージョンが一致すると判断したことに応じて(S16:Yes)、S17〜S18をスキップして、S15で受信したカスタムXML“scan-upload2.xml”に対するS19以降の処理を実行する。
すなわち、装置プログラム35は、対応する標準XML及びカスタムXMLの両方が存在する場合に(S15:Yes)、サーバ60から取得したカスタムXMLに対するS19以降の処理を実行する。一方、装置プログラム35は、標準XMLに対応するカスタムXMLが存在しない場合に(S15:No)、サーバ50から取得した標準XMLに対するS19以降の処理を実行する。
次に、装置プログラム35は、カスタムXML“scan-upload2.xml”がスキップタグを含まないと判断したことに応じて(S19:No)、コマンド実行処理を実行する(S21)。次に、装置プログラム35は、カスタムXML“scan-upload2.xml”が画面指示XMLであり、且つ実行モードで動作していると判断したことに応じて(S31:画面指示&S32:No)、図10(B)に示される形式選択画面をディスプレイ23に表示させる(S33)。形式選択画面は、項目“ファイル形式”に対応するパラメータをユーザに指定させるための画面である。形式選択画面は、「ファイル形式を選択して下さい。」とのメッセージと、複数の<選択肢>タグそれぞれに対応するパラメータアイコン121、123とを含む。
次に、装置プログラム35は、例えばパラメータアイコン121の指定を入力I/F24を通じて受け付けたことに応じて(S35:パラメータ)、項目“ファイル形式”の指定パラメータ“file_type=1”をメモリ32に一時記憶させる(S36)。また図示は省略するが、装置プログラム35は、カスタムXML“scan-upload2.xml”に含まれる<NextURL>タグの要素“www.server-a.com/scan-upload3.xml”を、次に取得すべき標準XMLの所在情報として抽出する。
一方図示は省略するが、装置プログラム35は、カスタムXML“scan-upload2.xml”がスキップタグ含むと判断したことに応じて(S19:Yes)、コマンド実行処理に代えて、固定パラメータ及び<NextURL>タグの要素を当該カスタムXMLから抽出する(S20)。固定パラメータは、コマンド実行処理でユーザが選択可能な複数の候補パラメータのうち、スキップタグを含むカスタムXMLで予め指示されたパラメータである。すなわち、装置プログラム35は、カスタムXMLがスキップタグを含む場合に、当該カスタムXMLに従った指示画面の表示をスキップする。さらに、装置プログラム35は、当該指示画面を通じてユーザにパラメータを指定させる代わりに、固定パラメータを抽出する。S20の処理は、抽出処理の一例である。
次に図4に戻って、装置プログラム35は、抽出した所在情報のサーバ識別情報“www.server-a.com”で識別されるサーバ50に、ファイルパス情報“scan-upload3.xml”で示される標準XMLの送信を要求するXML要求情報を、通信I/F25を通じて送信する。なお、このXML要求情報は、S35で指定された指定パラメータ或いはS20で抽出した固定パラメータを含む。
次に、装置プログラム35は、図2(C)に示される標準XMLを、XML要求情報の応答として、通信I/F25を通じてサーバ50から受信する。また、装置プログラム35は、S13で受信した標準XML“scan-upload3.xml”が終了指示XMLでないと判断する(S14:No)。さらに、装置プログラム35は、標準XML“scan-upload3.xml”に対応するカスタムXMLが存在しないと判断する(S15:No)。そして、装置プログラム35は、標準XML“scan-upload3.xml”がスキップタグを含まないことに応じて(S19:No)、コマンド実行処理を実行する(S21)。
次に、装置プログラム35は、図2(C)に示されるXMLファイルの先頭に<コマンド>タグが記述されていることに応じて、当該XMLファイルが動作指示XMLであると判断する(S31:動作指示)。動作指示XMLは、例えば図2(C)に示されるように、<NextURL>タグと、<スキャンアップロード>タグと、<編集>タグと、<アプリVer>タグと、<コマンドVer>タグとを含む。<NextURL>タグ、<編集>タグ、<アプリVer>タグ、<コマンドVer>タグは、画面指示XMLの場合と同様である。
<スキャンアップロード>タグは、MFP10に実行させるスキャンアップロード動作を識別するための情報である。<スキャンアップロード>タグの要素である<サーバ>タグ、<解像度>タグ、<形式>タグ、及び<ファイル名>タグは、スキャンアップロード動作の実行条件を構成する複数の項目“サーバ”、“解像度”、“形式”、“ファイル名”の1つに対応する。
また、<サーバ>タグ、<解像度>タグ、及び<形式>タグの要素には、対応する項目のパラメータが設定されている。より詳細には、<サーバ>タグ及び<解像度>タグの要素には、サーバ70の管理者によって固定的に設定された固定パラメータ“www.server-c.com”、“300dpi”が設定されている。一方、<形式>タグの要素には、図10(B)に示される形式選択画面を通じてユーザに指定させた指定パラメータ“file_type=1”に対応するパラメータ“PDF”が設定されている。
さらに、<ファイル名>タグの要素には、<スクリプト>タグが設定されている。<スクリプト>タグの要素には、画面指示XMLに従ってユーザに選択させた項目“原稿種別”パラメータを、項目“ファイル名”のパラメータに変換するためのスクリプトが設定される。すなわち、項目“ファイル名”のパラメータは、項目“原稿種別”のパラメータによって変更される動的パラメータである。項目“原稿種別”のパラメータは入力パラメータの一例であり、項目“ファイル名”のパラメータは出力パラメータの一例である。スクリプト言語の具体例は特に限定されないが、例えば、Lua、Ruby、JavaScript(登録商標)等であってもよい。
図2(C)に示されるスクリプトは、項目“原稿種別”のパラメータ“1”を項目“ファイル名”のパラメータ“img_estimate”に変換し、項目“原稿種別”のパラメータ“2”を項目“ファイル名”のパラメータ“img_contract”に変換する。すなわち、装置プログラム35は、パラメータ“doc_type=1”がメモリ32に一時記憶されていることに応じて、図2(C)に示される<ファイル名>タグの要素を、“img_estimate”に置換する。
次に、装置プログラム35は、実行モードで動作していると判断したことに応じて(S38:No)、動作指示XMLで指示された指示動作を実行条件に従って実行する(S39)。すなわち、装置プログラム35は、<スキャンアップロード>タグで示される指示動作“スキャンアップロード”を、<サーバ>タグ、<解像度>タグ、<形式>タグ、及び<ファイル名>タグの要素として設定されたパラメータに従って実行する。S39の処理は、動作実行処理の一例である。
より詳細には、スキャナ12は、原稿に記録された画像を読取解像度“300dpi”で読み取って、ファイル形式“PDF”のスキャンデータを生成し、生成したスキャンデータをメモリ32に一時記憶させる。そして、装置プログラム35は、サーバ識別情報“www.server-c.com”で識別されるサーバ70に通信I/F25を通じてスキャンデータを送信し、ファイル名“img_estimate”で識別されるファイルとしてサーバメモリに記憶させる。すなわち、指示動作“スキャンアップロード”は、スキャナ12に実行させるスキャン動作と、通信I/F25に実行させるアップロード動作とを含む。
また、装置プログラム35は、標準XML“scan-upload3.xml”に含まれる<NextURL>タグの要素“www.server-a.com/scan-upload4.xml”を、次に取得すべき標準XMLの所在情報として抽出する。次に図4に戻って、装置プログラム35は、抽出した所在情報のサーバ識別情報“www.server-a.com”で識別されるサーバ50から、ファイルパス情報“scan-upload4.xml”で示される標準XMLを受信する(S13)。そして、装置プログラム35は、標準XML“scan-upload4.xml”が終了指示XMLであると判断したことに応じて(S14:Yes)、拡張プログラムを終了する。
[模擬実行モードによる拡張プログラムの実行]
次に、模擬実行モードで拡張プログラムを実行する場合について説明する。なお、実行モードとの共通点の詳細な説明は省略し、相違点を中心に説明する。また、図3に示されるカスタムXMLがサーバ60に記憶されていないことを前提として、以下の処理を説明する。
装置プログラム35は、例えば[模擬実行]アイコン112の指定を入力I/F24を通じて受け付けたことに応じて(S12:実行)、スキャンアップロードサービスを実現する拡張プログラムを、模擬実行モードで実行する。まず、装置プログラム35は、図2(A)に示される標準XMLをサーバ50から受信する(S13)。そして、装置プログラム35は、標準XML“scan-upload1.xml”に対するコマンド実行処理を実行する(S14:No&S15:No&S19:No→S21)。標準XML“scan-upload1.xml”に対するコマンド実行処理は、図9(B)に示される種別選択画面に[編集]アイコン120が表示される点を除いて前述の処理と共通するので、再度の説明は省略する。
次に、装置プログラム35は、図2(B)に示される標準XMLをサーバ50から受信する(S13)。そして、装置プログラム35は、標準XML“scan-upload2.xml”に対するコマンド実行処理を実行する(S14:No&S15:No&S19:No→S21)。次に、装置プログラム35は、標準XML“scan-upload2.xml”が画面指示XMLであり、且つ模擬実行モードで動作していると判断したことに応じて(S31:画面指示&S32:Yes)、標準XML“scan-upload2.xml”に従って、図11(A)に示される形式選択画面をディスプレイ23に表示させる(S34)。
図11(A)に示される形式選択画面は、画面タイトルに“(模擬)”の文字列が付加されている点、[編集]アイコン120及びパラメータアイコン122をさらに含む点において図10(B)に示される形式選択画面と相違し、その他の点において図10(B)に示される形式選択画面と共通する。[編集]アイコン120は、表示中の指示画面に対応する画面指示XMLを編集する指示に対応する編集指示オブジェクトの一例である。パラメータアイコン122は、標準XML“scan-upload2.xml”に含まれる2つ目の<選択肢>タグに対応する。
次に、装置プログラム35は、[編集]アイコン120の指定を入力I/F24を通じて受け付けたことに応じて(S35:編集)、画面編集処理を実行する(S37)。画面編集処理は、ディスプレイ23に表示された指示画面に対するユーザ操作に従って、当該指示画面に対応する画面指示XMLを編集する処理である。図6を参照して、画面編集処理の詳細を説明する。
まず、装置プログラム35は、標準XML“scan-upload2.xml”に従って、図11(B)に示される形式選択画面をディスプレイ23に表示させる(S51)。図11(B)に示される形式選択画面は、画面タイトルに“(編集中)”の文字列が付加されている点、各種アイコン124、125、126、127、128を含む点、[編集]アイコン120を含まない点において図11(A)に示される形式選択画面と相違し、その他の点において図11(A)に示される形式選択画面と共通する。そして、装置プログラム35は、形式選択画面に対するユーザ操作を受け付ける(S52〜S55)。S51の処理は第2表示処理の一例であり、S52〜S55の処理は第2受付処理の一例である。
追加指示アイコン124は、表示中の指示画面に対応する画面指示XMLに候補パラメータを追加する指示に対応する。[コピー]アイコン125は、プリンタ11及びスキャナ12にコピー動作を実行させる指示に対応する動作オブジェクトの一例である。[スキャン]アイコン126は、スキャナ12にスキャン動作を実行させる指示に対応する動作オブジェクトの一例である。[スキップ]アイコン127は、表示中の指示画面に対応する画面指示XMLにスキップタグを含める指示に対応する。[保存]アイコン128は、画面編集処理で生成したカスタムXMLをサーバ60に記憶させる指示に対応する。
装置プログラム35は、追加指示アイコン124の指定を入力I/F24を通じて受け付けたことに応じて(S52:Yes)、図12(A)に示されるパラメータ選択画面をディスプレイ23に表示させる(S56)。パラメータ選択画面は、「追加するパラメータを選択して下さい。」とのメッセージと、候補アイコン131、132、133とを含む。そして、装置プログラム35は、パラメータ選択画面に対するユーザ操作を、入力I/F24を通じて受け付ける(S57)。
候補アイコン131〜133は、編集中の画面指示XMLに追加可能な候補パラメータに対応するパラメータオブジェクトの一例である。候補アイコン131〜133は、項目“ファイル形式”の候補パラメータ“高圧縮PDF”、“サーチャブルPDF”、“XPS”に対応する。また、パラメータ選択画面に表示される候補アイコン131〜133は、対応する画像処理部がサポートする候補パラメータに対応する。すなわち、図12(A)に示される候補アイコン131〜133は、スキャナ12が生成可能なスキャンデータのファイル形式に対応する。
さらに、図12(A)に示される候補アイコン131〜133は、無線LAN102に接続された全てのMFP10のスキャナ12がサポートするファイル形式に対応してもよい。換言すれば、候補アイコン131〜133は、サーバ50からXMLファイルを受信可能な全てのMFP10のスキャナ12がサポートするファイル形式に対応してもよい。
装置プログラム35は、例えば、スキャナ12がサポートするファイル形式を問い合わせる問合せ情報を、無線LAN102に接続された各MFP10に通信I/F25を通じて送信する。次に、装置プログラム35は、スキャナ12がサポートするファイル形式を示す形式通知情報を、無線LAN102に接続された各MFP10から通信I/F25を通じて受信する。そして、装置プログラム35は、自装置のスキャナ12がサポートするファイル形式のうち、受信した全ての形式通知情報に共通して示されるファイル形式に対応する候補アイコンのみを、パラメータ選択画面に表示させる。
次に、装置プログラム35は、例えば候補アイコン133の指定を入力I/F24を通じて受け付けたことに応じて(S57:Yes)、候補アイコン133に対応する候補パラメータ“XPS”を標準XMLに追加してカスタムXMLを生成し、生成したカスタムXMLをメモリ32に一時記憶させる(S58)。より詳細には、装置プログラム35は、図2(B)に示される標準XMLの<リスト>タグの要素に“<選択肢 val="4">XPS</選択肢>”を追加することによって、図3(B)に示されるカスタムXMLを生成する。S56〜S58の処理は、第1編集処理の一例である。
次に、装置プログラム35は、一時記憶させたカスタムXML“scan-upload2.xml”に従って、図12(B)に示される形式選択画面をディスプレイ23に表示させる(S51)。図12(B)に示される形式選択画面は、追加指示アイコン124に代えてパラメータアイコン129を含む点において図11(B)に示される形式選択画面と相違し、その他の点において図11(B)に示される形式選択画面と共通する。パラメータアイコン129は、S58で追加した候補パラメータ“XPS”に対応する。
また、装置プログラム35は、[スキップ]アイコン127の指定を入力I/F24を通じて受け付けたことに応じて(S53:Yes)、標準XMLに含まれる複数の候補パラメータの1つを、固定パラメータに決定する(S59)。装置プログラム35は、例えば、複数の候補パラメータのうちの1つを入力I/F24を通じてユーザに指定させ、指定された候補パラメータを固定パラメータに決定すればよい。そして、装置プログラム35は、スキップタグ及び固定パラメータを標準XML“scan-upload2.xml”に追加してカスタムXMLを生成し、生成したカスタムXMLをメモリ32に一時記憶させる(S60)。S60の処理は、第1編集処理の一例である。
なお、装置プログラム35は、同一のXMLファイルを編集するユーザ操作を、入力I/F24を通じて繰り返し受け付けてもよい。追加指示アイコン124のタップは、画面指示XMLへの候補パラメータの追加を指示するユーザ操作の一例である。また、[スキップ]アイコン127のタップは、対応する指示画面の表示の省略を指示するユーザ操作の一例である。但し、指示画面を通じた画面指示XMLの編集の具体例は、これらに限定されない。
画面指示XMLの編集の他の例として、装置プログラム35は、パラメータアイコン122の位置のロングタッチを入力I/F24を通じて受け付けたことに応じて、パラメータアイコン122に対応する候補パラメータ“TIFF”を標準XMLから削除して、図3(A)に示されるカスタムXMLを生成してもよい。さらに他の例として、装置プログラム35は、メッセージの位置のタップを入力I/F24を通じて受け付けたことに応じて、不図示のソフトウェアキーボードを通じて変更されたメッセージで<メッセージ>タグの要素を上書きしてもよい。
また、装置プログラム35は、[コピー]アイコン125の指定を入力I/F24を通じて受け付けたことに応じて(S54:Yes)、プリンタ11及びスキャナ12にコピー動作を実行させる(S61)。同様に、装置プログラム35は、[スキャン]アイコン126の指定を入力I/F24を通じて受け付けたことに応じて(S54:Yes)、スキャナ12にスキャン動作を実行させる(S61)。また、装置プログラム35は、コピー動作が開始或いは終了されたことに応じて、[コピー]アイコン125がタップされる際に表示していた指示画面を、ディスプレイ23に再び表示させる(S51)。
また、装置プログラム35は、[保存]アイコン128の指定を入力I/F24を通じて受け付けたことに応じて(S55:Yes)、S58、S60でメモリ32に一時記憶させたカスタムXMLを、サーバ60に記憶させる(S62)。より詳細には、装置プログラム35は、カスタムXMLを含む記憶指示情報を、通信I/F25を通じてサーバ60に送信する。記憶指示情報は、対応する標準XMLと同じファイル名を設定して、カスタムXMLをサーバメモリに記憶させるための情報である。S62の処理は、第1記憶処理の一例である。
また、装置プログラム35は、図7に示されるキャンセル制御処理を、画面編集処理と並行して実行する。装置プログラム35は、例えば図12(B)に示される形式選択画面の表示中において、画像処理部が画像処理動作を実行しているか否かを、所定の時間間隔で繰り返し判断する(S71)。また、装置プログラム35は、入力I/F24が備える不図示のキャンセルボタンが押下されるのを監視する(S72/S75)。S71の処理は第3判断処理の一例であり、S72、S75の処理は第2受付処理の一例である。また、キャンセルボタンを押下するユーザ操作は、終了操作の一例である。
そして、装置プログラム35は、例えばプリンタ11及びスキャナ12がコピー動作を実行中と判断したことに応じて(S71:Yes)、図13(A)に示されるように、コピー動作が実行中であることを示す報知画像“[コピー動作中]”を、形式選択画面に含める(S74)。また、装置プログラム35は、コピー動作が終了したと判断したことに応じて、形式選択画面に含めた報知画像を非表示にする。すなわち、報知画像“[コピー動作中]”は、[コピー]アイコン125のタップによってコピー動作が開始されてから、当該コピー動作が終了するまでの間、形式選択画面に継続して表示される。
また、装置プログラム35は、報知画像“[コピー動作中]”を含まない形式選択画面の表示中に、キャンセルボタンの押下を入力I/F24を通じて受け付けたことに応じて(S71:No&S72:Yes)、メモリ32に一時記憶させたカスタムXMLを破棄して、画面編集処理を終了する(S73)。一方、装置プログラム35は、報知画像“[コピー動作中]”を含む形式選択画面の表示中に、キャンセルボタンの押下を入力I/F24を通じて受け付けたことに応じて(S71:Yes&S75:Yes)、画面編集処理を継続したまま、実行中のコピー動作を終了させる(S76)。すなわち、装置プログラム35は、報知画像“[コピー動作中]”が非表示にされた形式選択画面をディスプレイ23に表示させ、当該画面に対するユーザ操作を入力I/F24を通じて受け付ける。
次に図5に戻って、装置プログラム35は、画像編集処理(S37)で編集された形式選択画面(例えば、図12(B)の画面タイトルが“形式選択画面(模擬)”の形式選択画面)を、ディスプレイ23に表示させる(S34)。そして、装置プログラム35は、例えばパラメータアイコン121の指定を入力I/F24を通じて受け付けたことに応じて(S35:パラメータ)、前述したS36以降の処理を実行する。
さらに図4に戻って、装置プログラム35は、図2(C)に示される標準XML“scan-upload3xml”をサーバ50から受信して(S13)、受信した標準XML“scan-upload3.xml”に対するコマンド実行処理を実行する(S15:No&S19:No→S21)。次に、装置プログラム35は、標準XML“scan-upload3.xml”が動作指示XMLであり、且つ模擬実行モードで動作していると判断したことに応じて(S31:動作指示&S38:Yes)、当該動作指示XMLで指示された指示動作を、模擬的に実行する(S40)。
より詳細には、装置プログラム35は、図13(B)に示される模擬実行画面を、ディスプレイ23に表示させる。模擬実行画面は、「下記のパラメータに従ってスキャンアップロードが実行されます。」とのメッセージと、動作指示XMLで指示されたパラメータ“サーバ:www.server-c.com”、“形式:PDF”、“解像度:300dpi”、“ファイル名:img_estimate”と、[OK]アイコン140とを含む。そして、装置プログラム35は、[OK]アイコン140の指定を入力I/F24を通じて受け付けたことに応じて、図4に戻ってS13以降の処理を実行する。
なお、装置プログラム35は、S40において、動作指示XMLで指示された指示動作のうち、少なくとも画像処理動作を実行しない。本実施形態に係る装置プログラム35は、スキャナ12にスキャン動作を実行させず、通信I/F25にスキャンデータをアップロードさせない。一方、装置プログラム35は、S40において、動作指示XMLで指示された画像処理動作以外の動作、或いは指示動作を実行するための準備動作(例えば、通信確認など)を実行してもよい。
準備動作の一例として、装置プログラム35は、項目“サーバ”のパラメータ“www.server-c.com”で識別されるサーバ70と通信可能か否かを確認してもよい。より詳細には、装置プログラム35は、通信I/F25を通じてサーバ70にエコーリクエストを送信し、通信I/F25を通じてサーバ70からエコーリプライを受信できるか否かを判断してもよい。準備動作の他の例として、装置プログラム35は、スキャンデータのアップロード権限をMFP10が有しているか否かを確認してもよい。より詳細には、装置プログラム35は、通信I/F25を通じてサーバ70にアカウント情報を送信し、通信I/F25を通じてサーバ70から認証結果を示す情報を受信してもよい。
[XML一覧画面を通じて選択されたXMLファイルの編集]
次に、サーバ50に記憶された標準XMLからカスタムXMLを生成する他の例を説明する。まず、装置プログラム35は、図9(A)に示される[一覧]アイコン113の指定を入力I/F24を通じて受け付けたことに応じて(S12:一覧)、XML編集処理を実行する(S22)。XML編集処理は、拡張プログラムを構成する複数のXMLファイルのうちの1つをユーザに選択させ、選択されたXMLファイルをユーザに選択させる処理である。図8を参照して、XML編集処理の詳細を説明する。
まず、装置プログラム35は、図14(A)に示されるXML一覧画面をディスプレイ23に表示させる(S81)。XML一覧画面は、編集対象となるXMLファイルをユーザに選択させるための画面である。XML一覧画面は、「編集するXMLファイルを選択して下さい。」とのメッセージと、XMLアイコン141、142、143とを含む。XMLアイコン141〜143は、スキャンアップロードを実現する拡張プログラムを構成する複数のXMLファイルの1つに対応するデータオブジェクトの一例である。そして、装置プログラム35は、XML一覧画面に対するユーザ操作を、入力I/F24を通じて受け付ける(S82)。S81の処理は第3表示処理の一例であり、S82の処理は第3受付処理の一例である。
より詳細には、装置プログラム35は、[一覧]アイコン113に対応付けられた所在情報で示される標準XML“scan-upload1.xml”をサーバ50から受信する。また、装置プログラム35は、受信した標準XML“scan-upload1.xml”の<NextURL>タグの要素で示される標準XML“scan-upload2.xml”をサーバ50から受信する。さらに、装置プログラム35は、受信した標準XML“scan-upload2.xml”の<NextURL>タグの要素で示される標準XML“scan-upload3.xml”をサーバ50から受信する。
そして、装置プログラム35は、受信した複数の標準XMLそれぞれに対応するXMLアイコン141〜143を、XML一覧画面に表示させる。一方、標準XML“scan-upload2.xml”の<NextURL>タグの要素で示される標準XML“scan-upload4.xml”は、終了指示XMLなので、対応するXMLアイコンをXML一覧画面に含める必要はない。
次に、装置プログラム35は、例えばXMLアイコン142の指定を入力I/F24を通じて受け付けたことに応じて(S82:画面指示)、画面編集処理を実行する(S89)。XMLアイコン142に対応する標準XML“scan-upload2.xml”を編集する処理は、図6、図7、及び図11(B)〜図13(A)を参照して既に説明したので、再度の説明は省略する。
一方、装置プログラム35は、例えばXMLアイコン143の指定を入力I/F24を通じて受け付けたことに応じて(S82:動作指示)、図14(B)に示されるパラメータ編集画面をディスプレイ23に表示させる(S83)。そして、装置プログラム35は、パラメータ編集画面に対するユーザ操作を、入力I/F24を通じて受け付ける(S84、S85)。S83の処理は第4表示処理の一例であり、S84、S85の処理は第4受付処理の一例である。
パラメータ編集画面は、編集対象のパラメータをユーザに指定させるための画面である。パラメータ編集画面は、パラメータアイコン144、145、146と、[保存]アイコン147とを含む。パラメータアイコン144は、項目“サーバ”の固定パラメータ“www.server-c.com”を変更する指示に対応する。パラメータアイコン145は、項目“解像度”の固定パラメータ“300dpi”を変更する指示に対応する。パラメータアイコン146は、項目“ファイル名”の動的パラメータを決定するスクリプトを変更する指示に対応する。
次に、装置プログラム35は、例えばパラメータアイコン145の指定を入力I/F24を通じて受け付けたことに応じて(S84:Yes)、図15(A)に示される解像度選択画面をディスプレイ23に表示させる。解像度選択画面は、スキャナ12がサポートする読取解像度のうちの1つを、ユーザに指定させるための画面である。解像度選択画面は、解像度“300dpi”、“600dpi”、“900dpi”に対応する解像度アイコン151、152、153を含む。そして、装置プログラム35は、解像度選択画面に対するユーザ操作を、入力I/F24を通じて受け付ける。解像度選択画面に対するユーザ操作を受け付ける処理は、第4受付処理の一例である。
次に、装置プログラム35は、例えば解像度アイコン152の指定を入力I/F24を通じて受け付けたことに応じて、標準XML“scan-upload3.xml”の<解像度>タグの要素“300dpi”を、解像度アイコン152に対応するパラメータ“600dpi”で上書きしてカスタムXMLを生成し、生成したカスタムXMLをメモリ62に一時記憶させる(S86)。S86の処理は、第2編集処理の一例である。
また、装置プログラム35は、パラメータアイコン146の指定を入力I/F24を通じて受け付けたことに応じて(S85:Yes)、図15(B)に示されるスクリプト変更画面をディスプレイ23に表示させる。スクリプト変更画面は、動作指示XMLに含まれるスクリプトにおいて、入力パラメータと出力パラメータとの対応関係を、ユーザに変更させるための画面である。そして、装置プログラム35は、スクリプト変更画面に対するユーザ操作を、入力I/F24を通じて受け付ける。スクリプト変更画面に対するユーザ操作を受け付ける処理は、第4受付処理の一例である。
スクリプト変更画面は、入力パラメータである項目“原稿種別”のパラメータ“1”、“2”と、出力パラメータである項目“ファイル名”のパラメータ“img_estimate”、“img_contract”との対応関係を、ユーザに変更させるための画面である。スクリプト変更画面は、スクリプトに含まれる各パラメータに対応するテキストボックス161、162、163、164と、[追加]アイコン165と、[保存]アイコン166とを含む。[追加]アイコン165は、入力パラメータと出力パラメータとの対応関係を追加する指示に対応する。[保存]アイコン166は、スクリプト変更画面を通じたスクリプトの変更を、動作指示XMLに反映させる指示に対応する。
装置プログラム35は、例えば、テキストボックス161の指定を入力I/F24を通じて受け付けたことに応じて、不図示のソフトウェアキーボードを通じてパラメータ“doc_type="1"”の変更を受け付け、変更後のパラメータをテキストボックス161に表示させる。また、装置プログラム35は、[追加]アイコン165の指定を入力I/F24を通じて受け付けたことに応じて、新たな入力パラメータ及び新たな出力パラメータに対応する一対のテキストボックスをスクリプト変更画面に追加し、当該テキストボックスへのパラメータの入力を入力I/F24を通じて受け付ける。
さらに、装置プログラム35は、[保存]アイコン166の指定を入力I/F24を通じて受け付けたことに応じて、標準XML“scan-upload3.xml”に含まれるスクリプトを、テキストボックス161〜164に表示された対応関係で上書きしてカスタムXMLを生成し、生成したカスタムXMLをメモリ32に一時記憶させる(S87)。S87の処理は、第2編集処理の一例である。
また、装置プログラム35は、パラメータ編集画面の[保存]アイコン147の指定を入力I/F24を通じて受け付けたことに応じて(S85:No)、S86、S87でメモリ32に一時記憶させたカスタムXMLを、サーバ60に記憶させる(S88)。S88の処理は、第2記憶処理の一例であって、具体的な処理内容はS62と同様であってもよい。
[本実施形態の作用効果]
上記の実施形態によれば、例えば図11(B)等を参照して説明したように、指示画面に対するユーザ操作によって画面指示XMLが編集されるので、画面指示XMLをユーザが直接編集する場合と比較して、画面指示XMLを簡単にカスタマイズすることができる。そして、サーバ50に記憶されたカスタマイズ前の標準XMLと、サーバ60に記憶されたカスタマイズ後のカスタムXMLとを組み合わせることによって、カスタマイズされたサービスを利用することができる。
また、上記の実施形態によれば、複数のXMLファイルを含む拡張プログラムを模擬的に実行しながら、カスタマイズが必要な指示画面を特定することができる。より詳細には、S34で表示される指示画面を確認し、カスタマイズが必要な指示画面の[編集]アイコン120をタップすることによって、当該指示画面に対応する画面指示XMLを編集することができる。さらに、模擬実行モードでは画像処理動作が実行されないので、画像処理動作の実行に必要な消耗品が消費されるのを抑制できる。なお、上記の実施形態では、模擬実行モードのときの指示画面にのみ[編集]アイコン120を含める例を説明したが、実行モードのときの指示画面に[編集]アイコン120を含めてもよい。
また、上記の実施形態によれば、XML一覧画面を通じてカスタマイズが必要なXMLファイルを特定することができる。これにより、XMLファイルをカスタマイズするために、拡張プログラムを模擬実行する必要が必ずしもなくなる。その結果、熟練したユーザにとっては、カスタマイズの手間が軽減される。また、XML一覧画面を通じて動作指示XMLもカスタマイズ可能となる。これにより、拡張プログラムによって実現されるサービスを、さらに柔軟にカスタマイズすることができる。
また、上記の実施形態によれば、例えば図12(A)を参照して説明したように、サーバ60からXMLファイルを受信可能な全てのMFP10がサポートするパラメータのうちから、画面指示XMLに追加する候補パラメータを選択させることができる。これにより、拡張プログラムによって実現されるサービスを、ユーザの利用態様に合わせて好適にカスタマイズすることができる。
また、上記の実施形態によれば、指示画面を通じて指定可能なパラメータを固定する場合に、当該指示画面に対応するカスタムXMLにスキップタグ及び固定パラメータが追加される。これにより、当該カスタムXMLに従った指示画面の表示及パラメータの指定操作が省略されるので、拡張プログラムによって実現されるサービスを利用するためのステップを簡素化することができる。
また、上記の実施形態によれば、例えば図12(B)を参照して説明したように、指示画面の編集を受け付ける画面上において、画像処理動作の実行を指示することができる。そして、編集中の指示画面に報知画像“[コピー動作中]”を表示することによって、バックグラウンドで画像処理動作が実行されていることを、画面指示XMLを編集中のユーザに認識させることができる。
また、上記の実施形態によれば、指示画面の編集中にキャンセルボタンが押下された場合において、バックグラウンドで画像処理動作が実行されていれば当該画像処理動作が終了され、バックグラウンドで画像処理動作が実行されていなければ画面編集処理が終了される。このように、キャンセルボタン押下時の状態に応じて、ユーザが意図する処理を終了させることができる。
また、上記の実施形態によれば、対応する標準XML及びカスタムXMLのバージョンが異なることが、報知画面を通じてユーザに報知される。これにより、XMLファイルをカスタマイズした後に、サーバ50に記憶された標準XMLがバージョンアップされたことを、ユーザに認識させることができる。但し、対応する標準XML及びカスタムXMLのバージョンが異なる場合の処理は、S17〜S18の例に限定されない。
他の例として、装置プログラム35は、対応する標準XML及びカスタムXMLのバージョンが異なることに応じて(S16:No)、最新バージョンの標準XMLに対するコマンド実行処理(S21)を実行してもよい。さらに他の例として、装置プログラム35は、対応する標準XML及びカスタムXMLのバージョンが異なることに応じて(S16:No)、標準XML及びカスタムXMLのどちらを用いるかを、入力I/F24を通じてユーザに指定させてもよい。
また、上記の実施形態では、標準XMLに対応するカスタムXMLの有無をサーバ60に問い合わせる例を説明したが、S15の処理はこれに限定されない。例えば、装置プログラム35は、S62、S88でサーバ60に記憶させたカスタムXMLのファイル名をメモリ32に記憶させておいてもよい。次に、装置プログラム35は、S13の直前において、XMLファイルから抽出した所在情報に含まれるファイル名がメモリ32に記憶されているか否かを判断してもよい。
そして、装置プログラム35は、所在情報に含まれるファイル名がメモリ32に記憶されていると判断したことに応じて、当該ファイル名のカスタムXMLをサーバ60から受信すればよい。一方、装置プログラム35は、所在情報に含まれるファイル名がメモリ32に記憶されていないと判断したことに応じて、当該ファイル名の標準XMLをサーバ50から受信すればよい。これにより、標準XML及びカスタムXMLの両方を受信する必要がなくなるので、通信量が削減される。
また、上記の実施形態では、XMLファイルをサーバ50、60から受信する例を説明したが、XMLファイルの取得先はサーバ50、60に限定されない。一例として、MFP10は、USBメモリ等の可搬記憶媒体が着脱される装着部を備えてもよい。そして、装置プログラム35は、装着部に装着されたUSBメモリからXMLファイルを読み出してもよい。他の例として、XMLファイルはメモリ32に記憶されていてもよい。そして、装置プログラム35は、XMLファイルをメモリ32から読み出してもよい。すなわち、USBメモリ及びメモリ32は、第1メモリ或いは第2メモリの一例である。
また、上記の実施形態のMFP10において、メモリ32に記憶された各種プログラムがCPU31によって実行されることによって、本発明のコントローラが実行する各処理が実現される例を説明した。しかしながら、コントローラの構成はこれに限定されず、その一部又は全部を集積回路等のハードウェアで実現してもよい。
さらに、本発明は、MFP10として実現できるだけでなく、MFP10に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、non−transitoryな記録媒体に記録されて提供されてもよい。non−transitoryな記録媒体は、CD−ROM、DVD−ROM等の他、通信ネットワークを通じてMFP10に接続可能なサーバに搭載されたメモリを含んでもよい。そして、サーバのメモリに記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット101等の通信ネットワークを通じて配信されてもよい。