以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
図1は、本実施形態に係るシステム100の概略図である。図1に示されるシステム100は、複合機10A、10B(以下、これらを総称して、「複合機10」と表記することがある。)と、情報処理端末50と、サーバ70、80、90とで構成される。複合機10、情報処理端末50、及びサーバ70〜90は、通信ネットワークを介して相互に通信可能とされている。通信ネットワークの具体例は特に限定されないが、例えば、インターネット101、有線LAN、無線LAN102、或いはこれらの組み合わせであってもよい。
複合機10及び情報処理端末50は、無線LAN102に属している。すなわち、複合機10及び情報処理端末50は、無線LAN102の不図示のアクセスポイントを経由して、相互に通信することができる。また、無線LAN102は、ルータ102Aを通じてインターネット101に接続されている。さらに、サーバ70〜90は、インターネット101に接続されている。すなわち、複合機10及び情報処理端末50は、ルータ102Aからインターネット101を経由して、サーバ70〜90と通信することができる。
複合機10は、図2(A)に示されるように、プリンタ11と、スキャナ12と、FAX部13と、ディスプレイ23と、入力I/F24と、通信I/F25と、CPU31と、メモリ32と、通信バス33とを主に備える。複合機10を構成する各構成要素は、通信バス33を通じて相互に接続されている。複合機10A、10Bの構成は同様であってもよいし、異なっていてもよい。複合機10は、画像形成装置の一例である。
プリンタ11は、画像データで示される画像をシートに記録するプリント動作を実行する。プリンタ11の記録方式としては、インクジェット方式や電子写真方式などの公知の方式を採用することができる。スキャナ12は、原稿に記録されている画像を読み取って画像データを生成するスキャン動作を実行する。FAX部13は、画像データを外部装置にFAX送信するFAX送信動作と、画像データを外部装置からFAX受信するFAX受信動作とを実行する。なお、複合機10は、プリンタ11、スキャナ12、FAX部13の少なくとも1つを備えていればよい。プリンタ11、スキャナ12、及びFAX部13は、画像或いは画像データを形成する画像形成部の一例である。
入力I/F24は、ユーザによる入力操作を受け付けるユーザインタフェースである。具体的には、入力I/F24はボタンを有しており、押下されたボタンに対応づけられた各種の操作信号をCPU31へ出力する。さらに、入力I/F24は、ディスプレイ23の表示面に重畳された膜状のタッチセンサを有していてもよい。ディスプレイ23の表示面に表示されたオブジェクトを指定する操作、文字列或いは数字列を入力する操作は、ユーザ操作の一例である。「オブジェクト」とは、例えば、ディスプレイ23に表示された文字列、アイコン、ボタン、リンク、プルダウンメニュー等である。
タッチセンサとして実現される入力I/F24は、ユーザがタッチした表示面上の位置を示す位置情報を出力する。なお、本明細書中における「タッチ」とは、入力媒体を表示面に接触させる操作全般を含む。また、入力媒体が表示面に触れていなくても、表示面との間の距離がごく僅かな位置まで入力媒体を近接させる「ホバー」或いは「フローティングタッチ」を、前述の「タッチ」の概念に含めてもよい。さらに入力媒体とは、ユーザの指であってもよいし、タッチペン等であってもよい。ディスプレイ23に表示されたアイコンの位置のタップするユーザ操作は、当該アイコンを指定する指定操作の一例である。
通信I/F25は、通信ネットワークを通じて外部装置と通信を行うための第1通信インタフェースの一例である。すなわち、複合機10は、通信I/F25を通じて情報処理端末50及びサーバ70〜90に各種情報を送信し、通信I/F25を通じて情報処理端末50及びサーバ70〜90から各種データ又は各種情報を受信する。通信I/F25の具体的な通信手順は特に限定されないが、例えば、Wi−Fi(Wi-Fi Allianceの登録商標)を採用することができる。
CPU31は、複合機10の全体動作を制御するものである。CPU31は、入力I/F24から出力される各種信号、及び通信I/F25を通じて外部装置から取得した各種情報等に基づいて、後述する各種プログラムをメモリ32から取得して実行する。すなわち、CPU31及びメモリ32は、第1コントローラの一例を構成する。
メモリ32には、OS34と、装置プログラム35とが記憶される。なお、装置プログラム35は、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。また、メモリ32には、装置プログラム35の実行に必要なデータ或いは情報が記憶される。メモリ32は、例えば、RAM、ROM、EEPROM、HDD、複合機10に着脱されるUSBメモリ等の可搬記憶媒体、CPU31が備えるバッファ等、或いはそれらの組み合わせによって構成される。
メモリ32は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non−transitoryな媒体である。non−transitoryな媒体には、上記の例の他に、CD−ROM、DVD−ROM等の記録媒体も含まれる。また、non−transitoryな媒体は、tangibleな媒体でもある。一方、インターネット101上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non−transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
装置プログラム35には、複合機10の追加型プログラム機能を実現するプログラムが含まれている。追加型プログラム機能は、定義データに定義された動作を、CPU31が複合機10に実行させる機能である。そして、後述するプログラムリストにプログラムレコードが登録されると、装置プログラム35は、追加型プログラム機能によって、定義データに定義された動作を複合機10に実行させることができるようになる。
メモリ32は、例えば図3(A)に示されるように、プログラムリストを記憶することができる。プログラムリストは、1以上のプログラムレコードを含む。装置プログラム35のインストール時において、プログラムリストにプログラムレコードは登録されていない。そして、装置プログラム35は、例えば後述するPG登録処理において、プログラムレコードをプログラムリストに登録する。
プログラムレコードは、プログラムIDと、プログラムIDに対応するアドレス情報とを含む。プログラムIDは、追加型プログラム機能に用いられる定義データを識別するための情報である。追加型プログラム機能に用いられる定義データを、「追加型プログラム」とも表記する。定義データは、例えば、XMLによって記述される。すなわち、XMLファイルは、テキスト形式の定義データの一例である。但し、定義データは、バイナリデータ或いはバイナリ化されたテキストデータであってもよい。アドレス情報は、定義データを特定する定義データ特定情報の一例である。アドレス情報は、例えば、対応するプログラムIDで識別される追加型プログラムに用いられる定義データの所在を示す情報であってもよい。アドレス情報は、例えば、XMLファイルを記憶するサーバ90を識別するサーバIDと、XMLファイルの所在パスを示すファイルパス情報とを含む。アドレス情報は、例えば、URL形式の情報であってもよい。
一例として、プログラムID“スキャンアップロード”で識別される追加型プログラムは、スキャン動作でスキャナ12が生成した画像データを、通信I/F25を通じてサーバに送信する動作を複合機10に実行させる定義データである。他の例として、プログラムID“ダウンロードプリント”で識別される追加型プログラムは、通信I/F25を通じてサーバから受信した画像データで示される画像を、プリンタ11がシートに記録する動作を複合機10に実行させる定義データである。
また、メモリ32は、例えば図3(B)に示されるように、IDリストを記憶することができる。IDリストは、1以上のIDレコードを含む。IDレコードは、リファレンスIDと、プロファイルIDとを含む。装置プログラム35のインストール時において、IDリストにIDレコードは登録されていない。
リファレンスIDは、装置プログラム35が定義データから抽出した<引用>タグに含まれる情報である(S45)。プロファイルIDは、後述するプロファイルレコードを識別するための情報である。装置プログラム35は、例えばPG登録処理において、プロファイルIDを生成し(S46)、生成したプロファイルIDと、抽出したリファレンスIDとを含むIDレコードをIDリストに登録する(S47)。
プロファイルID及びリファレンスIDは、例えば、ユーザが認識しやすいテキスト形式の情報である。プロファイルIDは、プロファイルレコードの名称を表す呼び出し名の一例である。但し、プロファイルID及びリファレンスIDは、バイナリ化されたテキストデータ等であってもよい。プロファイルレコードに含まれるプロファイルパラメータを記憶するメモリ32の領域は、データソースの一例である。プロファイルIDは、データソース情報の一例である。また、IDレコードによってプロファイルIDと対応付けられているリファレンスIDも、データソース情報の一例である。より詳細には、IDレコードに含まれるリファレンスID及びプロファイルIDは、メモリ32に設けられた複数のデータソースの1つを識別するための情報である。
装置プログラム35には、複合機10のプロファイル機能を実現するプログラムが含まれている。プロファイル機能は、ユーザによって指定されたプロファイルレコードに対応する動作を、当該プロファイルレコードに含まれるプロファイルパラメータに従って、CPU31が複合機10に実行させる機能である。所謂ショートカット機能は、プロファイル機能の一例である。
メモリ32は、例えば図3(C)に示されるように、プロファイルリストを記憶することができる。プロファイルリストは、1以上のプロファイルレコードを含む。プロファイルレコードは、プロファイルIDと、プロファイルIDに対応する動作ID及びプロファイルパラメータとを含む。装置プログラム35のインストール時において、プロファイルリストにプロファイルレコードは登録されていない。
システム100のユーザは、後述するPF登録処理でプロファイル機能のために提供されたPF登録画面を通じて、新規に作成したプロファイルID及びプロファイルパラメータを入力することによって、当該情報を含むプロファイルレコードを複合機10に登録させることができる。また、ユーザは、PF登録画面を通じて、プロファイルIDを指定してプロファイルレコードを選択し、当該プロファイルレコードにプロファイルパラメータを設定することができる。一方、ユーザは、PF登録画面を通じて、リファレンスIDを指定してプロファイルレコードを選択することができない。
プロファイルIDは、IDレコードに含まれるプロファイルIDと比較可能な情報である。動作IDは、画像形成部を用いた動作を識別する動作識別情報の一例である。動作IDで識別される動作は、第2動作の一例である。動作ID“スキャンtoサーバ”は、スキャン動作でスキャナ12が生成した画像データを、通信I/F25を通じてサーバに送信する動作を識別する。動作ID“FAXtoサーバ”は、FAX受信動作でFAX部13が受信した画像データを、通信I/F25を通じてサーバに送信する動作を識別する。
プロファイルパラメータは、対応する動作IDで識別される動作の実行条件を示すデータである。プロファイルパラメータは、メモリ32に予め記憶された記憶パラメータの一例である。例えば、プロファイルID“スキャンアップロード”に対応するプロファイルパラメータは、サーバIDと、解像度情報と、形式情報とを含む。プロファイルパラメータは、複数の項目情報(例えば、“サーバID”、“解像度情報”、“形式情報”)それぞれに対応付けられた項目値(例えば、“サーバC”、“400dpi”、“PDF”であって、以下、「パラメータ」と表記する。)を含む。サーバIDは、画像データの送信先のサーバを識別する情報である。解像度情報は、サーバに送信する画像データの解像度を示す情報である。形式情報は、サーバに送信する画像データの形式を示す情報である。
なお、複合機10が実行可能な複数の動作それぞれに対応付けてプロファイルリストが設けられている場合、各プロファイルレコードから動作IDが省略されてもよい。この場合、装置プログラム35は、プロファイルレコードに含まれるプロファイルパラメータに従って、当該プロファイルレコードを含むプロファイルリストに対応付けられた動作を、複合機10に実行させればよい。また、プロファイルレコードに定義できる動作は、追加型プログラム機能で実現される動作と同じであってもよいし、追加型プログラム機能で実現される動作と異なる動作であってもよい。
図3(C)に示される1行目のプロファイルレコードは、400dpiでPDF形式の画像データをスキャナ12が生成し、生成した画像データを通信I/F25を通じてサーバ70に送信する動作を示す。また、図3(C)に示される2行目のプロファイルレコードは、FAX部13がFAX受信した画像データを300dpiでTIFF形式に変換し、変換した画像データを通信I/F25を通じてサーバ80に送信する動作を示す。但し、プロファイルレコードで示される動作の具体例はこれらに限定されず、プロファイルパラメータの具体例もこれらに限定されない。
なお、本明細書では、プログラムレコード、IDレコード、プロファイルレコードを、PG登録処理及びPF登録処理によってメモリ32に記憶させる例を中心に説明する。しかしながら、プログラムレコード、IDレコード、及びプロファイルレコードの少なくとも1つは、例えば、製造メーカによって複合機10の出荷前に登録されてもよいし、販売会社等によって複合機10の設置前に登録されてもよい。
情報処理端末50は、図2(B)に示されるように、ディスプレイ53と、入力I/F54と、通信I/F55と、CPU61と、メモリ62と、通信バス63とを主に備える。情報処理端末50に含まれるディスプレイ53、入力I/F54、通信I/F55、CPU61、メモリ62、及び通信バス63は、複合機10に含まれるディスプレイ23、入力I/F24、通信I/F25、CPU31、メモリ32、及び通信バス33と同様の構成であるので、説明は省略する。
情報処理端末50は、例えば、携帯電話、スマートフォン、タブレット端末、或いはPC等であってもよい。メモリ62は、OS64と、端末プログラム65とを記憶している。端末プログラム65は、例えば、複合機10に各種設定を行うためのアプリケーションであってもよい。通信I/F55は第2通信インタフェースの一例であり、CPU61及びメモリ62は第2コントローラの一例である。
サーバ70、80は、所謂ストレージサーバである。サーバ70、80は、例えば、複合機10から送信されたデータをサーバメモリに記憶し、複合機10から要求されたデータをサーバメモリから読み出して複合機10に送信する。サーバ90は、図4に示されるXMLファイルを記憶している。そして、サーバ90は、複合機10からXMLファイルの送信を要求されたことに応じて、要求されたXMLファイルを複合機10に送信する。サーバ70〜90は、外部装置の一例である。
サーバ90は、例えば、HTTPによってXMLファイルを送信する所謂Webサーバである。例えば、サーバ70は“サーバC”で識別され、サーバ80は“サーバD”で識別され、サーバ90はサーバ識別情報“www.server.com”で識別される。但し、XMLファイルを送信するプロトコルはHTTPに限定されず、CIFS(Common Internet File Systemの略)等であってもよい。この場合のアドレス情報は、例えば“file://ファイルパス名”の形式である。ファイルパス名は、サーバ90のサーバメモリ内におけるXMLファイルの所在を示す情報である。
XMLファイルには、複合機10に実行させる動作を示す情報がXMLで記述されている。XMLファイルは、図4(A)及び(B)に示される画面定義XMLと、図4(C)及び(D)に示される動作定義XMLとに大別される。画面定義XMLは、複合機10のディスプレイ23に表示させる画面を定義する画面定義データの一例である。動作定義XMLは、画像形成部を用いた動作を定義する動作定義データの一例である。動作定義XMLに定義された動作は、第1動作の一例である。
図5〜図8を参照して、本実施形態に係るシステム100の動作を説明する。
本明細書のフローチャートは、基本的に、プログラムに記述された命令に従ったCPU31の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「制御」等の処理は、CPU31の処理を表している。CPU31による処理は、OS34を介したハードウェア制御も含む。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
[追加型プログラム機能]
装置プログラム35は、例えば入力I/F24を通じてユーザに指示されたことに応じて、追加型プログラム機能に係る処理を実行することができる。図5を参照して、追加型プログラム機能に係る処理の詳細を説明する。
まず、装置プログラム35は、図9(A)に示されるPG選択画面をディスプレイ23に表示させる(S11)。PG選択画面は、複合機10に登録された複数の追加型プログラムのうちの1つを選択させるための画面である。PG選択画面は、プログラムアイコン111、112を含む。プログラムアイコン111、112は、プログラムリストに登録された複数のプログラムレコードの1つに対応する。そして、装置プログラム35は、PG選択画面に対するユーザ操作を、入力I/F24を通じて受け付ける(S12)。
装置プログラム35は、例えば、プログラムアイコン111の指定を入力I/F24を通じて受け付けたことに応じて(S12:Yes)、プログラムID“スキャンアップロード”で識別される追加型プログラム機能を実行する。より詳細には、装置プログラム35は、プログラムアイコン111に対応するプログラムレコードのアドレス情報を、プログラムリストから読み出す。次に、装置プログラム35は、サーバID“www.server.com”で識別されるサーバ90に、ファイルパス情報“scan-upload1.xml”で示されるXMLファイルの送信を要求するXML要求情報を、通信I/F25を通じて送信する(S13)。XML要求情報は送信要求情報の一例であり、S13の処理は送信処理の一例である。
次に、装置プログラム35は、図4(A)に示されるXMLファイルを、XML要求情報の応答として、通信I/F25を通じてサーバ90から受信する(S14)。この処理は、第1取得処理の一例である。そして、装置プログラム35は、受信したXMLファイルが画面定義XML及び動作定義XMLのどちらであるかを判断する。この処理は、判断処理の一例である。より詳細には、装置プログラム35は、XMLファイル内において、<画面>タグ及び<コマンド>タグを検索する。そして、装置プログラム35は、<画面>タグを検出したことに応じて、受信したXMLファイルが画面定義XMLであると判断する(S14:画面定義)。
次に、装置プログラム35は、受信したXMLファイルが画面定義XMLであると判断したことに応じて(S14:画面定義)、<画面>タグで囲まれた要素に従って、条件選択画面をディスプレイ23に表示させる(S15)。図4(A)の例では、図9(B)に示される解像度選択画面が、条件選択画面の一例としてディスプレイ23に表示される。解像度選択画面は、項目“解像度”に対応するパラメータ“300dpi”、“600dpi”の少なくとも1つを、後述する定義パラメータとして選択させるための画面である。解像度選択画面は、各パラメータに対応するパラメータアイコン121、122を含む。そして、装置プログラム35は、解像度選択画面に対するユーザ操作を、入力I/F24を通じて受け付ける(S16)。S15の処理は第2表示処理の一例であり、S16の処理は第2受付処理の一例である。
次に、装置プログラム35は、例えばパラメータアイコン122の指定を入力I/F24を通じて受け付けたことに応じて(S16:Yes)、パラメータアイコン122に対応付けられたパラメータ“600dpi”をメモリ32に一時記憶させる。次に、装置プログラム35は、S14で受信した画面定義XMLに定義されたアドレス情報“www.server.com/scan-upload2.xml”を取得する。より詳細には、装置プログラム35は、画面定義XMLの<NextURL>タグの要素を、次の定義データのアドレス情報として取得する。
次に、装置プログラム35は、サーバID“www.server.com”で識別されるサーバ90に、ファイルパス情報“scan-upload2.xml”で示されるXMLファイルの送信を要求するXML要求情報を、通信I/F25を通じて送信する(S13)。このXML要求情報は、S16で一時記憶させたパラメータ“600dpi”を含む。次に、装置プログラム35は、図4(B)に示される画面定義XMLを通信I/F25を通じてサーバ90から受信する(S14:画面定義)。
次に、装置プログラム35は、受信した画面定義XMLに定義された条件選択画面として、図10(A)に示される形式選択画面をディスプレイ23に表示させる(S15)。形式選択画面は、項目“形式”に対応するパラメータ“TIFF”、“PDF”の少なくとも1つを選択させるための画面である。形式選択画面は、各パラメータに対応するパラメータアイコン131、132を含む。そして、装置プログラム35は、形式選択画面に対するユーザ操作を、入力I/F24を通じて受け付ける(S16)。
次に、装置プログラム35は、例えばパラメータアイコン131の指定を入力I/F24を通じて受け付けたことに応じて(S16:Yes)、パラメータアイコン131に対応付けられたパラメータ“TIFF”をメモリ32に一時記憶させる。次に、装置プログラム35は、S14で受信した画面定義XMLの<NextURL>タグの要素“www.server.com/scan-upload3.xml”を、次の定義データのアドレス情報として取得する。
次に、装置プログラム35は、サーバID“www.server.com”で識別されるサーバ90に、ファイルパス情報“scan-upload3.xml”で示されるXMLファイルの送信を要求するXML要求情報を、通信I/F25を通じて送信する(S13)。このXML要求情報は、S16で一時記憶させたパラメータ“600dpi”、“TIFF”を含む。次に、装置プログラム35は、図4(C)に示されるXMLファイルを通信I/F25を通じてサーバ90から受信する。
次に、装置プログラム35は、図4(C)に示されるXMLファイル内において、<コマンド>タグを検出したことに応じて、当該XMLファイルが動作定義XMLであると判断する(S14:動作定義)。次に、装置プログラム35は、<コマンド>タグで囲まれた要素から動作タグを検索する。図4(C)の例では、動作識別情報の一例である<スキャンアップロード>タグが動作タグの一例として検出される。装置プログラム35は、検出した<スキャンアップロード>タグを動作定義XMLから読み出し、読み出した<スキャンアップロード>タグをメモリ32に一時記憶させる。この処理は、第1抽出処理の一例である。
次に、装置プログラム35は、実行条件決定処理を実行する(S17)。実行条件決定処理は、動作定義XMLに定義された第1動作の実行条件を決定する処理である。図6を参照して、実行条件決定処理の詳細を説明する。
まず、装置プログラム35は、メモリ32に記憶されたエラーフラグに第1値“OFF”を設定する(S31)。また、装置プログラム35は、メモリ32に記憶された条件構造体を初期化する。条件構造体は、動作定義XMLに定義された動作の実行パラメータを一時記憶するためのメモリ領域である。条件構造体のデータ構造及びデータサイズは、動作タグで識別される動作毎に予め定義されているものとする。
次に、装置プログラム35は、動作定義XML内において、<引用>タグを検索する(S33)。次に、装置プログラム35は、<引用>タグを検出したことに応じて(S33:Yes)、当該<引用>タグを動作定義XMLから抽出する。すなわち、装置プログラム35は、検出した<引用>タグを動作定義XMLから読み出し、読み出した<引用>タグをメモリ32に一時記憶させる。この処理は、第2抽出処理の一例である。図4(C)の例に係る<引用>タグは、リファレンスID“UPLOAD1”を含む。
次に、装置プログラム35は、<引用>タグで特定されるデータソースからプロファイルパラメータを読み出す(S34)。より詳細には、装置プログラム35は、リファレンスID“UPLOAD1”に対応するプロファイルID“スキャンアップロード”を、IDリストから読み出す。そして、装置プログラム35は、読み出したプロファイルID“スキャンアップロード”を含むプロファイルレコードを、プロファイルリストから読み出す(S34:Yes)。すなわち、<引用>タグは、プロファイルリストに登録された複数のプロファイルレコードの1つを特定する情報であるとも言える。この処理は、読出処理の一例である。次に、装置プログラム35は、読み出したプロファイルパラメータ“サーバC”、“400dpi”、“PDF”を、条件構造体に記憶させる(S35)。
次に、装置プログラム35は、動作定義XML内において、各項目に対応する条件タグ(例えば、<解像度>タグ、<形式>タグ等)を検索する(S36)。次に、装置プログラム35は、条件タグを検出したことに応じて(S36:Yes)、当該条件タグの要素を動作定義XMLから抽出する。すなわち、装置プログラム35は、検出した条件タグの要素を動作定義XMLから読み出し、読み出した条件タグの要素をメモリ32に一時記憶させる。この処理は、第3抽出処理の一例である。条件タグの要素は、第1動作の実行条件として動作定義XMLに定義された定義パラメータの一例である。換言すれば、条件タグの要素は、条件タグで示される項目に対応するパラメータとして、S16でユーザによって指定されたパラメータである。
次に、装置プログラム35は、メモリ32に一時記憶させた定義パラメータを条件構造体に記憶させる(S37)。ここで、装置プログラム35は、プロファイルパラメータを条件構造体に記憶させた後に、定義パラメータを条件構造体に記憶させる。すなわち、条件構造体に記憶されているプロファイルパラメータと同じ項目のパラメータが定義パラメータに含まれている場合、装置プログラム35は、プロファイルパラメータを定義パラメータで上書きする。
具体的には、装置プログラム35は、プロファイルパラメータ“400dpi”、“PDF”を、定義パラメータ “600dpi”、“TIFF”で上書きする。一方、項目“サーバID”に対応するプロファイルパラメータ“サーバC”は上書きされない。S36の処理は、上書き処理の一例である。解像度情報及び形式情報は第1項目の一例であり、サーバIDは第2項目の一例である。例えば、S37の実行後の条件構造体は、サーバID“サーバC”と、解像度“600dpi”と、形式“TIFF”とを含む。
一方、装置プログラム35は、動作定義XML内で<引用>タグを検出しないことに応じて(S33:No)、S34、S35の処理をスキップして、S36以降の処理を実行する。また、装置プログラム35は、動作定義XML内で条件タグを検出しないことに応じて(S36:No)、S37の処理をスキップして、実行条件決定処理を終了する。さらに、装置プログラム35は、<引用>タグに含まれるリファレンスIDで特定されるデータソースにプロファイルパラメータが記憶されていないと判断したことに応じて(S34:No)、S35〜S37に代えて、エラーフラグに第2値“ON”を設定して(S38)、実行条件決定処理を終了する。
次に図5に戻って、装置プログラム35は、エラーフラグの設定値を判断する(S18)。そして、装置プログラム35は、エラーフラグに第1値“OFF”が設定されていると判断したことに応じて(S18:OFF)、動作定義XMLに定義された動作“スキャンアップロード”を、実行条件決定処理で条件構造体に記憶させた実行パラメータに従って実行する(S19)。図4(C)の例では、装置プログラム35は、600dpiでTIFF形式の画像データをスキャナ12に生成させ、生成された画像データを通信I/F25を通じてサーバ70に送信する。
プロファイルパラメータのみ(S33:Yes&S36:No)に従ったS19の処理は第1実行処理の一例であり、定義パラメータのみ(S33:No&S36:Yes)に従ったS19の処理は第2実行処理の一例であり、プロファイルパラメータ及び定義パラメータの両方(S33:Yes&S36:Yes)に従ったS19の処理は第3実行処理の一例である。すなわち、動作定義XMLは、<引用>タグ及び動作タグの少なくとも一方を含む。
一方、装置プログラム35は、エラーフラグに第2値“ON”が設定されていると判断したことに応じて(S18:ON)、図10(B)に示されるエラー画面をディスプレイ23に表示させる(S20)。エラー画面は、<引用>タグで特定されるデータソースにプロファイルパラメータが登録されていないことを報知するための画面である。エラー画面は、「プロファイル名“スキャンアップロード”にパラメータを設定して下さい。」とのメッセージと、[OK]アイコン141とを含む。そして、装置プログラム35は、[OK]アイコン141の指定を入力I/F24を通じて受け付けたことに応じて、S19の処理をスキップして、追加型プログラム機能に係る処理を終了する。
なお、装置プログラム35は、図4(C)に示される動作定義XMLに代えて、図4(D)に示される動作定義XMLをサーバ90から受信してもよい。図4(D)に示される動作定義XMLは、<引用>タグが項目IDをさらに含む点において、図4(C)に示される動作定義XMLと相違する。項目IDは、複数のプロファイルパラメータの項目のうちの1つを識別する項目識別情報の一例である。以下、図4(D)の動作定義XMLを受信した場合の実行条件決定処理を、前述の処理との相違点を中心に説明する。
まず、装置プログラム35は、<引用>タグに含まれるリファレンスID“UPLOAD2”に対応するプロファイルID“受信FAX保存”をIDリストから読み出す。次に、装置プログラム35は、読み出したプロファイルID“受信FAX保存”を含むプロファイルレコードを、プロファイルリストから読み出す(S34:Yes)。そして、装置プログラム35は、読み出したプロファイルレコードに含まれるプロファイルパラメータのうち、項目IDで識別される項目“サーバID”のパラメータ“サーバD”を、条件構造体に記憶させる(S35)。さらに、装置プログラム35は、定義パラメータに含まれる項目“解像度”、“形式”のパラメータ“600dpi”、“TIFF”を、条件構造体に記憶させる(S37)。
すなわち、図4(C)に示される<引用>タグは、リファレンスIDで特定されるプロファイルパラメータ全てを条件構造体に記憶させることを示す。これに対して、図4(C)に示される<引用>タグは、リファレンスIDで特定されるプロファイルパラメータのうち、項目IDで示される項目のパラメータのみを条件構造体に記憶させることを示す。なお、<引用>タグには、複数の項目IDを定義してもよい。
また、項目IDは、図4(D)に示されるように、<引用>タグの中に定義されていることに限定されない。例えば、<引用>タグを囲む条件タグを項目IDとして用いてもよい。例えば図4(D)の例において、装置プログラム35は、検出した<引用>タグが<サーバ>タグで囲まれていることに応じて、<サーバ>タグを構成するテキスト“サーバ”を項目IDとして前述の処理を実行すればよい。この場合、<引用>タグ内の項目IDは省略される。
[PG登録処理]
また、装置プログラム35は、例えば通信I/F25を通じて情報処理端末50に指示されたことに応じて、PG登録処理を実行することができる。PG登録処理は、プログラムリスト等を登録する処理である。図7を参照して、図3(A)の1行目のプログラムレコード、図3(B)の1行目のIDレコード、及び図3(C)の1行目のプロファイルレコードを登録するPG登録処理の詳細を説明する。
まず、装置プログラム35は、通信I/F25を通じて情報処理端末50にPG登録指示情報を送信する(S41)。PG登録指示情報は、プログラムレコードに含める情報の取得を指示する情報である。PG登録指示情報は、PG登録指示画面を定義する画面情報を含む。装置プログラム35は、例えば、PG登録指示情報の送信を要求するHTTPリクエストを通信I/F25を通じて情報処理端末50から受信したことに応じて、HTTPリプライとしてPG登録指示情報を通信I/F25を通じて情報処理端末50に送信すればよい。
次に、情報処理端末50の端末プログラム65は、通信I/F55を通じて複合機10からPG登録指示情報を受信する。そして、端末プログラム65は、受信したPG登録指示情報に従って、図11(A)に示されるPG登録画面をディスプレイ53に表示させる。PG登録画面は、プログラムレコードに含める情報の入力を促すための画面である。そして、端末プログラム65は、PG登録画面に対するユーザ操作を、入力I/F54を通じて受け付ける。
PG登録画面は、テキストボックス151、152と、[OK]アイコン153と、[キャンセル]アイコン154とを含む。テキストボックス151は、入力I/F54を通じて入力されたプログラムIDを表示する領域である。テキストボックス152は、入力I/F54を通じて入力されたアドレス情報を表示する領域である。[OK]アイコン153は、テキストボックス151、152に表示された情報を含むプログラムレコードを、複合機10に登録する指示に対応する。[キャンセル]アイコン154は、プログラムレコードを登録せずにPG登録処理を終了する指示に対応する。
次に、端末プログラム65は、入力I/F54を通じて入力されたプログラムID及びアドレス情報を、テキストボックス151、152に表示させると共に、メモリ62に一時記憶させる。そして、端末プログラム65は、[OK]アイコン153の指定を入力I/F54を通じて受け付けたことに応じて、通信I/F55を通じて複合機10にPG登録情報を送信する。PG登録情報は、例えば、メモリ62に一時記憶させたプログラムID“スキャンアップロード”と、アドレス情報“www.server.com/scan-upload1.xml”とを含む。
次に、複合機10の装置プログラム35は、通信I/F25を通じて情報処理端末50からPG登録情報を受信する(S42:YES)。次に、装置プログラム35は、受信したPG登録情報に含まれるプログラムID“スキャンアップロード”及びアドレス情報“www.server.com/scan-upload1.xml”を含むプログラムレコードを、プログラムリストに登録する。これにより、図3(A)の1行目のプログラムレコードがプログラムリストに登録される。S41〜S43の処理は、登録処理の一例である。なお、装置プログラム35は、情報処理端末50との間でPG登録指示情報及びPG登録情報を送受信することに代えて、PG登録画面をディスプレイ23に表示させ、入力I/F24を通じて各種情報の入力を受け付けてもよい。後述するS48についても同様である。
次に、装置プログラム35は、S43で登録したプログラムレコードに含まれるアドレス情報“www.server.com/scan-upload1.xml”を用いて、図4(C)或いは図4(D)に示される動作定義XMLを、通信I/F25を通じてサーバ90から受信する(S44)。そして、装置プログラム35は、受信した動作定義XMLから<引用>タグを抽出する(S45)。S44の処理は、S13、S14の処理と同様であってもよい。S45の処理は、第4抽出処理の一例であって、S33の処理と同様であってもよい。
なお、アドレス情報“www.server.com/scan-upload1.xml”で識別されるXMLファイルは、図4(A)に示されるように、<引用>タグを含んでいない。また、図4(C)或いは図4(D)に示される動作定義XMLは、アドレス情報“www.server.com/scan-upload1.xml”から直接的に取得することができず、アドレス情報及び<NextURL>タグで示されるXMLファイルを順番に取得した後でなければ取得できない。
そこで、装置プログラム35は、S44で受信したXMLファイルが画面定義XML及び動作定義XMLのどちらかを判断する。次に、装置プログラム35は、画面定義XMLであると判断したことに応じて、受信した画面定義XMLの<NextURL>タグで示されるXMLファイルを、通信I/F25を通じてサーバ90から受信する。この処理は、動作定義XMLを受信するまで繰り返し実行される。そして、装置プログラム35は、動作定義XMLであると判断したことに応じて、受信した動作定義XMLから<引用>タグを抽出する(S45)。
他の例として、アドレス情報で示されるXMLファイル、すなわち、追加型プログラムで最初に用いるXMLファイルは、当該追加型プログラムで用いる動作定義XMLに含まれる<引用>タグを、コメントとして含んでもよい。但し、コメントとして含まれる<引用>タグは、S15で解析及び実行されない。この場合の装置プログラム35は、アドレス情報で示されるXMLファイルをS44で受信し、受信したXMLファイルにコメントとして含まれる<引用>タグをS45で抽出してもよい。これにより、動作定義XMLを受信するまで、画面定義XMLを繰り返し受信する必要がなくなる。
次に、装置プログラム35は、XMLファイルから<引用>タグを抽出できなかったことに応じて(S45:No)、後述するS46〜S48の処理をスキップして、PG登録処理を終了する。一方、装置プログラム35は、XMLファイルから<引用>タグを抽出したことに応じて(S45:Yes)、当該<引用>タグのリファレンスID“UPLOAD1”に対応付けるプロファイルID“スキャンアップロード”を生成する(S46)。S46の処理は、生成処理の一例である。
一例として、装置プログラム35は、IDリストに既に登録されているプロファイルIDのいずれとも異なるように、予め定められた命名規則に従ってプロファイルIDを自動的に生成してもよい。また、装置プログラム35は、例えば“$$$01“のように、一般的にプロファイル名としては使用されにくいテキストを、敢えてプロファイルIDとして生成してもよい。他の例として、装置プログラム35は、入力I/F24を通じて入力されたプロファイルIDと、IDリストに既に登録されているプロファイルIDとを比較し、重複する場合にプロファイルIDの再入力をディスプレイ23を通じて報知し、重複しない場合に入力されたプロファイルIDを採用してもよい。
次に、装置プログラム35は、S45で抽出した<引用>タグに含まれるリファレンスID“UPLOAD1”と、S46で生成したプロファイルID“スキャンアップロード”とを含むIDレコードを、IDリストに登録する。これにより、図3(B)の1行目のIDレコードがIDリストに登録される。また、装置プログラム35は、S46で生成したプロファイルID“スキャンアップロード”を含み且つ動作ID及びプロファイルパラメータを含まないプロファイルレコードを、プロファイルリストに登録する(S47)。これにより、図3(C)の1行目のプロファイルリストが、動作ID及びプロファイルパラメータを含まない状態で、プロファイルリストに登録される。これらの処理は、記憶処理或いは第2記憶処理の一例である。
なお、装置プログラム35は、S45において、複数の<引用>タグを抽出してもよい。例えば、1つの動作定義XMLに複数の<引用>タグが含まれていてもよいし、後述するように追加型プログラム機能に複数の動作定義XMLが用いられてもよい。そして、複数の<引用>タグに異なるリファレンスIDが含まれている場合、装置プログラム35は、S46において、複数のリファレンスIDそれぞれに対応する複数のプロファイルIDを生成し、各々が対応するリファレンスID及びプロファイルIDを含む複数のIDレコードを、IDリストに登録してもよい。
他の例として、PG登録画面を通じて入力されたアドレス情報は、図4(D)に示される動作定義XMLを示していてもよい。この場合、装置プログラム35は、図4(D)に示される動作定義XMLをS44で取得し、プロファイルID“受信FAX保存”をS46で生成し、S45で抽出した<引用>タグのリファレンスID“UPLOAD2”と、S46で生成したプロファイルID“受信FAX保存”とを含むIDレコードを、S46でIDリストに登録する。このように、アドレス情報で示されるXMLファイルは、画面定義XMLに限定されず、動作定義XMLであってもよい。また、この場合において、図4(D)に示される<解像度>タグ及び<形式>タグの要素は、画面定義XMLを用いてユーザに指定させたものではなく、サーバ90の管理者によって動作定義XMLに固定的に設定されたものであってもよい。
すなわち、動作定義XMLに含まれる条件タグは、画面定義XMLを用いてユーザに指定させたパラメータを要素として含むことに限定されず、サーバ90の管理者によって指定された固定的なパラメータを要素として含んでもよい。すなわち、動作定義XMLは、<引用>タグ、追加プログラム機能の処理において画面定義XMLを用いてユーザに指定させた定義パラメータを要素として含む条件タグ、及び追加プログラム機能の処理によらず管理者によって固定的に指定された定義パラメータを要素として含む条件タグの少なくとも1つを含めばよい。
また、追加型プログラムを実現するXMLファイルは、動作定義XMLのみであってもよく、画面定義XMLファイルが省略されてもよい。すなわち、システム100は、定義パラメータをユーザに指定させなくてもよい。この場合の動作定義XMLは、<引用>タグ、及び固定の定義パラメータを要素として含む条件タグの少なくとも一方を含む。そして、複合機10毎に固定される実行パラメータが<引用>タグによって特定され、全ての複合機10で固定される実行パラメータが動作定義XMLに定義されてもよい。または、動作定義XMLは、条件タグを含んでいなくてもよい。そして、動作定義XMLに含まれる<引用>タグのみによって実行パラメータが特定されてもよい。
次に、装置プログラム35は、通信I/F25を通じて情報処理端末50に報知指示情報を送信する(S48)。報知指示情報は、プロファイルレコードに含める各種情報を指定することを示唆するための情報である。報知指示情報は、示唆画面の一例である登録報知画面の表示に必要な画面情報の一例である。換言すれば、登録報知画面は、S46で生成したプロファイルIDに対応付けられる動作ID及びプロファイルパラメータの指定を示唆する示唆画面を定義する情報である。報知指示情報は、S46で生成したプロファイルID“スキャンアップロード”を含む。S48の処理は出力処理の一例である。
次に、情報処理端末50の端末プログラム65は、通信I/F55を通じて複合機10から登録報知情報を受信する。次に、端末プログラム65は、受信した登録報知情報に従って、図11(B)に示される登録報知画面をディスプレイ53に表示させる。登録報知画面は、「プロファイル“スキャンアップロード”にパラメータを設定して下さい。」とのメッセージと、[OK]アイコン161とを含む。そして、端末プログラム65は、[OK]アイコン161の指定を入力I/F54を通じて受け付けたことに応じて、PG登録処理を終了する。
なお、PG登録処理の主なステップは、装置プログラム35によって実行されることに限定されず、端末プログラム65によって実行されてもよい。この場合の端末プログラム65は、無線LAN102に接続された複数の複合機10A、10Bに対して、共通のプログラムレコード、IDレコード、及びプロファイルレコードを一括して登録してもよい。以下、前述の処理との相違点を中心に、端末プログラム65によって実行されるPG登録処理の詳細を説明する。
まず、S41〜S43の処理は、前述の例と同様であってもよい。但し、端末プログラム65は、複合機10から送信されるPG登録指示情報によらず、メモリ62に記憶された画面情報に従ってPG登録画面をディスプレイ53に表示させてもよい。次に、端末プログラム65は、PG登録画面を通じて入力を受け付けたアドレス情報を用いて、通信I/F55を通じてサーバ90から動作定義XMLを受信する(S44)。次に、端末プログラム65は、受信した動作定義XMLから<引用>タグを抽出する(S45)。この処理は、抽出処理の一例である。
次に、端末プログラム65は、複合機10A、10BのIDリストに登録されたプロファイルIDのいずれとも異なるプロファイルIDを、抽出した<引用>タグのリファレンスIDに対応付けるプロファイルIDとして生成する(S46)。この処理は、生成処理の一例である。次に、端末プログラム65は、生成したプロファイルIDを通信I/F55を通じて複合機10A、10Bに送信する。アドレス情報及びプロファイルIDを複合機10に送信する処理は、送信処理の一例である。さらに、端末プログラム65は、登録報知画面をディスプレイ53に表示させる(S48)。一方、複合機10A、10Bの装置プログラム35は、通信I/F25を通じて情報処理端末50からプロファイルIDを受信したことに応じて、S47の処理を実行する。
端末プログラム65は、例えばS46において、IDリストに登録されている全てのプロファイルIDを問い合わせる問合せ情報を、通信I/F55を通じて複合機10A、10Bに送信すればよい。複合機10A、10Bの装置プログラム35は、通信I/F25を通じて情報処理端末50から問合せ情報を受信したことに応じて、通信I/F25を通じて情報処理端末50にID一覧情報を送信すればよい。ID一覧情報は、IDリストに含まれる全てのプロファイルIDを含む。次に、端末プログラム65は、通信I/F55を通じて複合機10A、10BからID一覧情報を受信すればよい。そして、端末プログラム65は、受信した複数のID一覧情報に含まれるプロファイルIDのいずれとも異なるプロファイルIDを、予め定められた命名規則に従って生成すればよい。
[PF登録処理]
また、装置プログラム35は、例えば通信I/F25を通じて情報処理端末50に指示されたことに応じて、PF登録処理を実行することができる。PF登録処理は、プロファイルリストにプロファイルレコードを登録する処理である。一例として、PF登録処理は、プロファイル機能を利用しようとするユーザによって開始されてもよい。他の例として、PF登録処理は、登録報知画面に表示されたプロファイルIDに対応するプロファイルパラメータを複合機10に登録するために、登録報知画面を見たユーザによって開始されてもよい。図8(A)を参照して、PF登録処理の詳細を説明する。
まず、装置プログラム35は、通信I/F25を通じて情報処理端末50にPF登録指示情報を送信する(S51)。PF登録指示情報は、プロファイルレコードに含める情報の取得を指示する情報である。PF登録指示情報は、PF登録指示画面を定義する画面情報を含む。装置プログラム35は、例えば、PF登録指示情報の送信を要求するHTTPリクエストを通信I/F25を通じて情報処理端末50から受信したことに応じて、HTTPリプライとしてPF登録指示情報を通信I/F25を通じて情報処理端末50に送信すればよい。
次に、情報処理端末50の端末プログラム65は、通信I/F55を通じて複合機10からPF登録指示情報を受信する。そして、端末プログラム65は、受信したPF登録指示情報に従って、図12(A)に示されるPF登録画面をディスプレイ53に表示させる。PF登録画面は、プロファイルレコードに含める情報の入力を促すための画面である。PF登録画面は、テキストボックス171と、プルダウンメニュー172、173、174、175と、[OK]アイコン176と、[キャンセル]アイコン177とを含む。そして、端末プログラム65は、PF登録画面に対するユーザ操作を、入力I/F54を通じて受け付ける。
テキストボックス151は、入力I/F54を通じて入力されたプロファイルIDを表示する領域である。プルダウンメニュー172は、動作IDの指定を受け付けるためのオブジェクトである。プルダウンメニュー173〜175は、プルダウンメニュー172を通じて指定された動作IDに対応付けて記憶されるプロファイルパラメータの指定を受け付けるためのオブジェクトである。[OK]アイコン176は、PF登録画面を通じて指定された情報を含むプロファイルレコードを、複合機10に登録する指示に対応する。[キャンセル]アイコン177は、プロファイルレコードを登録せずにPF登録処理を終了する指示に対応する。
次に、端末プログラム65は、テキストボックス151及びプルダウンメニュー172〜175を通じて指定された情報をメモリ62に一時記憶させる。ユーザは、例えば、図11(A)に示される登録報知画面に表示されたプロファイルID“スキャンアップロード”と、動作ID“スキャンtoサーバ”と、プロファイルパラメータ“サーバC”、“400dpi”、“PDF”とを、入力I/F54を通じて指定する。そして、端末プログラム65は、[OK]アイコン176の指定を入力I/F54を通じて受け付けたことに応じて、通信I/F55を通じて複合機10にPF登録情報を送信する。PF登録情報は、メモリ62に一時記憶させたプロファイルID、動作ID、及びプロファイルパラメータを含む。PF登録情報に含まれる各種情報は、ユーザによって入力された入力パラメータの一例である。
次に、複合機10の装置プログラム35は、通信I/F25を通じて情報処理端末50からPF登録情報を受信する(S52)。そして、装置プログラム35は、受信したPF登録情報に含まれる情報を含むプロファイルレコードを、プロファイルリストに登録する(S53)。なお、装置プログラム35は、受信したPF登録情報に含まれるプロファイルIDを含むプロファイルレコードが既にプロファイルリストに登録されている場合、当該プロファイルレコードの動作ID及びプロファイルパラメータを、受信したPF登録情報に含まれる動作ID及びプロファイルパラメータで上書きすればよい。
これにより、図3(A)の1行目のプロファイルレコードに動作ID及びプロファイルパラメータが登録される。すなわち、装置プログラム35は、S53において、S52で取得したプロファイルパラメータを記憶させたデータソースに、S47で記憶させたプロファイルIDを対応付ける。S52の処理は第2取得処理の一例であり、S53の処理は第1記憶処理の一例である。
なお、装置プログラム35は、情報処理端末50との間でPF登録指示情報及びPF登録情報を送受信することに代えて、PF登録画面をディスプレイ23に表示させ、入力I/F24を通じて各種情報の入力を受け付けてもよい。一方、PF登録処理の主なステップは、装置プログラム35によって実行されることに限定されず、端末プログラム65によって実行されてもよい。この場合の端末プログラム65は、無線LAN102に接続された複数の複合機10A、10Bに対して、共通のプロファイルレコードを一括して登録してもよい。
すなわち、端末プログラム65は、複合機10から送信されるPF登録指示情報によらず、メモリ62に記憶された画面情報に従ってPF登録画面をディスプレイ53に表示させてもよい。次に、端末プログラム65は、PF登録画面を通じて入力を受け付けたプロファイルID、動作ID、及びプロファイルパラメータを含むPF登録情報を、通信I/F55を通じて複合機10A、10Bそれぞれに送信してもよい。複合機10A、10Bの処理は、前述の場合と同様である。
[プロファイル機能]
さらに、装置プログラム35は、例えば入力I/F24を通じてユーザに指示されたことに応じて、プロファイル機能に係る処理を実行することができる。プロファイル機能に係る処理は、指定されたプロファイルレコードに定義された動作を実行する処理である。図8(B)を参照して、プロファイル機能に係る処理の詳細を説明する。
まず、装置プログラム35は、図12(B)に示されるPF選択画面をディスプレイ23に表示させる(S56)。PF選択画面は、プロファイルリストに登録された複数のプロファイルレコードの1つの選択を促す画面である。そして、装置プログラム35は、PF選択画面に対するユーザ操作を、入力I/F24を通じて受け付ける(S57)。S56の処理は第1表示処理の一例であり、S57の処理は第1受付処理の一例である。
PF選択画面は、プロファイルアイコン181、182を含む。プロファイルアイコン181、182は、プロファイルリストに登録されたプロファイルレコードの1つに対応する。換言すれば、プロファイルアイコン181、182は、メモリ32内に設けられたデータソースの1つに対応するソースオブジェクトの一例である。プロファイルアイコン181、182には、対応するプロファイルレコードに含まれるプロファイルIDが記述されている。
次に、装置プログラム35は、例えばプロファイルアイコン181の指定を入力I/F24を通じて受け付けたことに応じて(S57:Yes)、指定されたプロファイルアイコン181に対応付けられたプロファイルレコードに定義された動作を実行する(S58)。プロファイルアイコン181のタップは、第2動作の実行を指示するユーザ操作、或いはデータソースの1つを指定するユーザ操作の一例である。S58の処理は、第2実行処理或いは第4実行処理の一例である。
装置プログラム35は、例えばS58において、指定されたプロファイルアイコン181に対応するプロファイルレコードを、プロファイルリストから読み出す。そして、装置プログラム35は、読み出したプロファイルレコードの動作IDで示される第2動作を、読み出したプロファイルレコードのプロファイルパラメータに従って実行する。装置プログラム35は、例えば、400dpiでPDF形式の画像データをスキャナ12に生成させ、生成させた画像データを通信I/F25を通じてサーバ70に送信する。
[本実施形態の作用効果]
上記の実施形態によれば、動作定義XMLに<引用>タグを定義しておくことによって、当該動作定義XMLを受信した複合機10のデータソースに予め記憶されたプロファイルパラメータに従って第1動作が実行される。すなわち、第1動作の実行パラメータを定義データに定義したり、第1動作の実行時に実行パラメータをユーザに入力させなくても、第1動作を実行することができる。
より詳細には、<引用>タグによって読み出されるプロファイルパラメータと、画面定義XMLを用いてユーザに指定させた定義パラメータとを組み合わせて、第1動作の実行パラメータが決定される。これにより、複合機10毎に固定される実行パラメータを<引用>タグによって特定し、追加型プログラムの実行の度に変更されるべき実行パラメータを画面定義XMLを用いて指定させることができるので、第1動作を実行するための実行パラメータの指定方法が改善される。
また、上記の実施形態によれば、既存の複合機10に実装済みのプロファイル機能の実行に用いるために登録されたプロファイルパラメータを流用して、第1動作を実行させることができる。すなわち、複合機10に実装済みのPF登録処理を用いて、第1動作の実行に用いるプロファイルパラメータを設定することができる。これにより、プロファイルパラメータを設定するために既存の複合機10を大きく改変しなくても、第1動作を実行させることができる。すなわち、ユーザは、既存の複合機10に実装済みの手順に沿って、定義データの<引用>タグで特定される呼び出し名と、プロファイルパラメータとを指定するという簡単な操作をするだけで、意図したパラメータで定義動作を実行できる。
また、上記の実施形態によれば、PG登録処理において、プロファイルパラメータを登録すべきプロファイルレコードのプロファイルIDがユーザに報知される。これにより、登録すべきプロファイルパラメータに対応するプロファイルIDを、ユーザに認識させることができる。その結果、新たに登録された追加型プログラムの実行に必要なプロファイルパラメータを指定するユーザ操作が容易になる。
さらに、上記の実施形態によれば、既に登録されているプロファイルIDと重複しない新たなプロファイルIDが自動生成され、生成されたプロファイルIDを含むプロファイルレコードが事前に登録される。第1動作に用いるプロファイルパラメータを登録するユーザの作業がさらに簡素化されると共に、第1動作の実行に必要なプロファイルレコードが他の用途に使用されることを抑制できる。但し、S47の処理は省略されてもよい。
また、サーバ90の管理者は、第1動作を示すテキスト及び呼び出し名を特定するテキストを、テキスト形式のXMLファイルに記述しておくだけで、所望の追加型プログラム機能を定義することができる。さらに、複合機10を上記構成とすることによって、サーバ90の管理者は、追加型プログラムの用途に応じたXMLファイルを柔軟に作成することができる。
より詳細には、管理者は、実行パラメータに含まれる複数の項目のうち、ユーザに指定させる項目“解像度情報”、“形式情報”に対応する画面定義XMLのみを作成し、プロファイルパラメータを用いる項目“サーバID”に対応する画面定義XMLを作成しなくてもよい。また、管理者は、図4(D)に示される動作定義XMLにおいて、プロファイルパラメータからパラメータを取得すべき項目を明示することができる。すなわち、管理者は、XMLファイルに定義しておきたい定義パラメータと、メモリ32から読み出したいプロファイルパラメータとを明確に指定できる。
なお、上記の実施形態では、複合機10がサーバ90からXMLファイルを取得する例を説明したが、XMLファイルの取得先はこれに限定されない。一例として、複合機10は、USBメモリ等の可搬記憶媒体が着脱される装着部を備えてもよい。そして、装置プログラム35は、装着部に装着されたUSBメモリからXMLファイルを取得してもよい。この場合のアドレス情報は、USBメモリ内でXMLファイルを特定するファイルパス情報であってもよい。また、装置プログラム35は、S14、S44において、装着部に装着されたUSBメモリからXMLファイルを読み出してもよい。
他の例として、XMLファイルは、メモリ32に記憶されていてもよい。この場合の装置プログラム35は、PG登録処理において、PG登録画面を通じてユーザが指定したアドレス情報で示されるXMLファイルを取得し、取得したXMLファイルをメモリ32に記憶させてもよい。そして、装置プログラム35は、S43において、PG登録画面を通じてユーザが指定したプログラムIDと、メモリ32に記憶されたXMLファイルのファイルパスを示すアドレス情報とを含むプログラムレコードを、プログラムリストに登録してもよい。また、装置プログラム35は、S14、S44において、メモリ32からXMLファイルを読み出してもよい。
また、図3(C)に示される情報は、特定の動作に適用するためにユーザによって予め設定されたものであれば、プロファイル機能のために用いられる情報に限定されず、例えば、各動作のデフォルト実行条件を示す情報であってもよい。さらには、図3(C)に示される情報は、追加型プログラム機能に用いるために、専用のインタフェースを通じて、ユーザによって予め設定されたものであってもよい。すなわち、図3(C)に示される情報は、追加型プログラム機能のために設けられた専用のデータソースに記憶されたものであってもよい。
また、上記の実施形態では、XMLファイルの<引用>タグに含まれるリファレンスIDと、プロファイルレコードに含まれるプロファイルIDとを、IDレコードによって対応付ける例を説明した。しかしながら、<引用>タグによるプロファイルレコードの特定方法は、これに限定されない。例えば、<引用>タグは、リファレンスIDに代えて、プロファイルIDを含んでもよい。これにより、IDリストが省略され、<引用>タグによってプロファイルレコードが直接特定される。
この場合、PG登録処理のS46が省略される。また、装置プログラム35は、S47において、S45で抽出した<引用>タグのプロファイルIDを含むプロファイルレコードを、プロファイルリストに登録する。さらに、装置プログラム35は、S33で抽出した<引用>タグのプロファイルIDを含むプロファイルレコードをプロファイルリストから読み出し、読み出したプロファイルレコードのプロファイルパラメータをS35で条件構造体に記憶させる。すなわち、<引用>タグは、プロファイルレコードを直接的或いは間接的に特定するものであればよい。
また、図4の例において、<NextURL>タグは、画面定義データのみに含まれ、動作定義データに含まれていない。しかしながら、<NextURL>タグは、動作定義データに含まれていてもよい。すなわち、動作定義データに定義された動作の後に、複合機10にさらに動作を実行させてもよい。一例として、図4(C)或いは図4(D)の動作定義データの後に、同一或いは異なる実行パラメータに従って複合機10にスキャン動作をさらに実行させてもよい。他の例として、図4(C)或いは図4(D)の動作定義データの後に、スキャンアップロードの結果を示す画像をシートに記録するプリント動作をプリンタ11に実行させてもよい。
また、上記の実施形態の各抽出処理では、テキストデータであるXMLファイル内で特定のテキスト(例えば、タグ)を検索し、検出したテキストを抽出する例を説明した。しかしながら、抽出処理の具体例はこれに限定されない。他の例として、装置プログラム35は、XMLファイル内において、抽出対象のテキストが存在し得る位置を予め記憶していてもよい。そして、装置プログラム35は、当該位置に記述されたテキストを読み出してみて、読み出したテキストが抽出対象のテキストか否かを判断してもよい。
また、上記の実施形態の複合機10及び情報処理端末50において、メモリ32、62に記憶された各種プログラムがCPU31、61によって実行されることによって、本発明のコントローラが実行する各処理が実現される例を説明した。しかしながら、コントローラの構成はこれに限定されず、その一部又は全部を集積回路等のハードウェアで実現してもよい。
さらに、本発明は、複合機10及び情報処理端末50として実現できるだけでなく、複合機10及び情報処理端末50に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、non−transitoryな記録媒体に記録されて提供されてもよい。non−transitoryな記録媒体は、CD−ROM、DVD−ROM等の他、通信ネットワークを通じて複合機10及び情報処理端末50に接続可能なサーバに搭載されたメモリを含んでもよい。そして、サーバのメモリに記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット101等の通信ネットワークを通じて配信されてもよい。