JP6729168B2 - コンテンツ処理装置 - Google Patents

コンテンツ処理装置 Download PDF

Info

Publication number
JP6729168B2
JP6729168B2 JP2016161635A JP2016161635A JP6729168B2 JP 6729168 B2 JP6729168 B2 JP 6729168B2 JP 2016161635 A JP2016161635 A JP 2016161635A JP 2016161635 A JP2016161635 A JP 2016161635A JP 6729168 B2 JP6729168 B2 JP 6729168B2
Authority
JP
Japan
Prior art keywords
acquisition
instruction data
content processing
location information
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016161635A
Other languages
English (en)
Other versions
JP2018032891A (ja
Inventor
哲也 奥野
哲也 奥野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2016161635A priority Critical patent/JP6729168B2/ja
Priority to US15/394,928 priority patent/US10057447B2/en
Publication of JP2018032891A publication Critical patent/JP2018032891A/ja
Priority to US16/050,466 priority patent/US10244138B2/en
Application granted granted Critical
Publication of JP6729168B2 publication Critical patent/JP6729168B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00962Input arrangements for operating instructions or parameters, e.g. updating internal software
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00002Diagnosis, testing or measuring; Detecting, analysing or monitoring not otherwise provided for
    • H04N1/00026Methods therefor
    • H04N1/00039Analysis, i.e. separating and studying components of a greater whole
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00204Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00344Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a management, maintenance, service or repair apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/00411Display of information to the user, e.g. menus the display also being used for user input, e.g. touch screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/04Scanning arrangements, i.e. arrangements for the displacement of active reading or reproducing elements relative to the original or reproducing medium, or vice versa
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/26Pc applications
    • G05B2219/2646Printing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Description

本発明は、順番に取得する複数の指示データそれぞれで指示される処理を実行することによって、コンテンツデータを処理するコンテンツ処理装置に関する。
例えば特許文献1には、サーバから指示データを受信する処理と、受信した指示データで指示された動作を実行する処理とを繰り返す端末装置が開示されている。この端末装置は、前述の処理を繰り返すことによって、サーバが提供するサービス(例えば、ファイルのアップロード或いはダウンロード)を利用することができる。
特開2012−113700号公報
近年、特許文献1に記載のシステムで提供されるサービスを、カスタマイズして利用したいという要望がある。しなしながら、インターネット上に設置されたサーバは、不特定多数の端末装置からアクセスされるので、全ての端末装置に共通の指示データを送信することしかできない。
そこで、共通の指示データが記憶されたサーバとは異なる場所にカスタマイズした指示データを保存し、当該場所から指示データを取得することが考えられる。しかしながら、指示データを取得するための手順は取得元毎に異なるので、端末装置のプログラムを指示データの取得元毎に開発するとなると、開発負担が大きくなるという課題を生じる。
本発明は、上記の事情に鑑みてなされたものであり、その目的は、複数の指示データで実現されるサービスを利用するコンテンツ処理装置であって、複数の取得元から指示データを受信可能なプログラムを搭載したコンテンツ処理装置を提供することにある。
本明細書では様々な開示を行う。開示例の1つであるコンテンツ処理装置は、コンテンツデータに対するコンテンツ処理動作を実行するハードウェアであるコンテンツ処理部と、装置メモリと、ディスプレイと、入力インタフェースと、通信インタフェースと、コントローラとを備える。前記装置メモリは、前記コントローラに読み取られて該コンテンツ処理装置を動作させるプログラムを記憶している。前記プログラムは、解析モジュールと、第1取得モジュールと、第2取得モジュールとを含む。前記解析モジュールは、指示データの所在を示す所在情報を抽出する抽出処理と、前記抽出処理で抽出した前記所在情報に含まれるプロトコル情報の設定値を判断する第1判断処理と、前記第1判断処理で第1値と判断したことに応じて、前記抽出処理で抽出した前記所在情報を引数として指定して前記第1取得モジュールを呼び出し、且つ当該所在情報で示される前記指示データを前記第1取得モジュールから取得する第1取得処理と、前記第1判断処理で第2値と判断したことに応じて、前記抽出処理で抽出した前記所在情報を引数として前記第2取得モジュールを呼び出し、且つ当該所在情報で示される前記指示データを前記第2取得モジュールから取得する第2取得処理と、前記第1取得処理或いは前記第2取得処理で取得した前記指示データが画面指示データ及び動作指示データのどちらかを判断する第2判断処理とを該コンテンツ処理装置に実行させる。前記画面指示データは、複数のパラメータを含む指示画面を表示させるためのデータである。前記動作指示データは、前記コンテンツ処理部に前記コンテンツ処理動作を実行させるためのデータである。前記解析モジュールは、前記第2判断処理で前記画面指示データと判断したことに応じて、当該画面指示データで示される前記指示画面を前記ディスプレイに表示させる表示処理と、前記指示画面に含まれる複数の前記パラメータの1つを指定するユーザ操作を、前記入力インタフェースを通じて受け付ける受付処理と、前記第1取得処理或いは前記第2取得処理で取得した前記指示データから、次の前記指示データの所在を示す前記所在情報を抽出する前記抽出処理とを該コンテンツ処理装置に実行させる。前記解析モジュールは、前記受付処理を実行した後の前記第1取得処理或いは前記第2取得処理において、前記抽出処理で抽出した前記所在情報と、前記受付処理で指定された前記パラメータとを引数として指定する。前記解析モジュールは、前記第2判断処理で前記動作指示データと判断したことに応じて、前記受付処理で指定された前記パラメータに対応する実行条件に従って、当該動作指示データで示される前記コンテンツ処理動作を前記コンテンツ処理部に実行させる動作指示処理を該コンテンツ処理装置に実行させる。前記解析モジュールに呼び出された前記第1取得モジュールは、引数として取得した前記所在情報で示される前記指示データの送信を要求する送信要求情報を、第1プロトコルに従って、前記通信インタフェースを通じてサーバに送信する送信処理を該コンテンツ処理装置に実行させる。前記送信要求情報は、引数として前記パラメータを取得した場合に当該パラメータを含む。前記第1取得モジュールは、前記送信要求情報の応答である前記指示データを、前記第1プロトコルに従って、前記通信インタフェースを通じて前記サーバから受信する受信処理と、前記受信処理で受信した前記指示データを前記解析モジュールに引き渡す第1引渡処理とを該コンテンツ処理装置に実行させる。前記解析モジュールに呼び出された前記第2取得モジュールは、引数として取得した前記所在情報で示される前記指示データを、前記第1プロトコルと異なる第2プロトコルに従って、前記サーバと異なる取得元から取得する取得処理と、前記取得処理で取得した前記指示データを前記解析モジュールに引き渡す第2引渡処理とを該コンテンツ処理装置に実行させる。
上記構成によれば、共通の引数を指定して呼び出される第1取得モジュール及び第2取得モジュールによって、互いに異なる取得元から指示データが取得される。そして、解析モジュールは、第1取得処理及び第2取得処理で取得した指示データに対して、共通の処理を実行すればよい。このように、取得元毎に異なるプロトコルを取得モジュールに実装し、指示データを解析する共通の処理を解析モジュールに実装することにより、少ない開発コストで複数の取得元から指示データを取得可能なコンテンツ処理装置を実現できる。
図1は、実施形態に係るシステム100の概要を示す図である。 図2(A)はMFP10のブロック図であり、図2(B)はメモリ32に記憶されるプログラムリストの例である。 図3は、サーバ70に記憶される指示データの例である。 図4(A)〜(C)はサーバ70と異なる取得元に記憶される指示データの例であり、図4(D)はログ情報の例である。 図5は、追加型プログラム機能に係るフローチャートである。 図6(A)は第1取得処理のフローチャートであり、図6(B)は指示動作実行処理のフローチャートである。 図7は、第2取得処理のフローチャートである。 図8は、ディスプレイ23の表示例であって、(A)はPG選択画面を、(B)は解像度選択画面を示す。 図9は、ディスプレイ23の表示例であって、(A)は種別選択画面を、(B)は拡張PG設定画面を示す。
以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
図1は、本実施形態に係るシステム100の概略図である。図1に示されるシステム100は、MFP(MultiFunction Peripheralの略)10と、サーバ70、80、90とで構成される。MFP10及びサーバ70〜90は、通信ネットワークを介して相互に通信可能とされている。通信ネットワークの具体例は特に限定されないが、例えば、インターネット101、有線LAN、無線LAN102、或いはこれらの組み合わせでもよい。
MFP10及びサーバ80は、無線LAN102に属している。すなわち、MFP10及びサーバ80は、無線LAN102の不図示のアクセスポイントを経由して、相互に通信することができる。また、無線LAN102は、ルータ102Aを通じてインターネット101に接続されている。さらに、サーバ70、90は、インターネット101に接続されている。すなわち、MFP10は、ルータ102Aからインターネット101を経由して、サーバ70、90と通信することができる。但し、サーバ70〜90の配置は、図1の例に限定されない。
MFP10は、図2(A)に示されるように、プリンタ11と、スキャナ12と、ディスプレイ23と、入力I/F24と、通信I/F25と、装着部26と、CPU31と、メモリ32と、通信バス33とを主に備える。MFP10を構成する各構成要素は、通信バス33を通じて相互に接続されている。MFP10は、コンテンツ処理装置の一例である。
プリンタ11は、画像データで示される画像をシートに記録するプリント動作を実行するハードウェアである。プリンタ11の記録方式としては、インクジェット方式や電子写真方式などの公知の方式を採用することができる。スキャナ12は、原稿に記録されている画像を読み取って画像データ(以下、「スキャンデータ」と表記する。)を生成するスキャン動作を実行するハードウェアである。プリンタ11及びスキャナ12は、コンテンツ処理部の一例である。プリント動作及びスキャン動作は、コンテンツ処理動作の一例である。プリント動作の対象となる画像データ、スキャン動作で生成される画像データは、コンテンツデータの一例である。
但し、コンテンツ処理部、コンテンツ処理動作、コンテンツデータは、前述の例に限定されない。刺繍データに従って布地に糸を縫い込む刺繍動作を実行するミシンは、コンテンツ処理部の他の例である。すなわち、刺繍動作はコンテンツ処理動作の他の例であり、刺繍データはコンテンツデータの他の例である。音声データに従って音声を出力する出力動作を実行するスピーカは、コンテンツ処理部の他の例である。すなわち、出力動作はコンテンツ処理動作の他の例であり、音声データはコンテンツデータの他の例である。
入力I/F24は、ユーザによる入力操作を受け付けるユーザインタフェースである。具体的には、入力I/F24はボタンを有しており、押下されたボタンに対応づけられた各種の操作信号をCPU31へ出力する。さらに、入力I/F24は、ディスプレイ23の表示画面に重畳された膜状のタッチセンサを有していてもよい。ディスプレイ23の表示画面に表示されたオブジェクトを指定する操作、文字列或いは数字列を入力する操作は、ユーザ操作の一例である。「オブジェクト」とは、例えば、ディスプレイ23に表示された文字列、アイコン、ボタン、リンク、プルダウンメニュー等である。
タッチセンサとして実現される入力I/F24は、ユーザがタッチした表示画面上の位置を示す位置情報を出力する。なお、本明細書中における「タッチ」とは、入力媒体を表示画面に接触させる操作全般を含む。また、入力媒体が表示画面に触れていなくても、表示画面との間の距離がごく僅かな位置まで入力媒体を近接させる「ホバー」或いは「フローティングタッチ」を、前述の「タッチ」の概念に含めてもよい。さらに入力媒体とは、ユーザの指であってもよいし、タッチペン等であってもよい。ディスプレイ23に表示されたアイコンの位置をタップするユーザ操作は、当該アイコンを指定する指定操作の一例である。
通信I/F25は、通信ネットワークを通じて外部装置と通信を行うための通信インタフェースの一例である。すなわち、MFP10は、通信I/F25を通じてサーバ70〜90に各種情報を送信し、通信I/F25を通じてサーバ70〜90から各種情報を受信する。通信I/F25の具体的な通信手順は特に限定されないが、例えば、Wi−Fi(Wi-Fi Allianceの登録商標)を採用することができる。
装着部26は、可搬メモリが着脱可能に構成されている。MFP10は、装着部26に可搬メモリが装着されているか否かを検出することができる。また、MFP10は、装着部26に装着された可搬メモリに記憶された情報を読み出すことができる。USBメモリ、SDカード等は、可搬メモリの一例である。また、装着部26は、可搬メモリが装着されたことを検出し、可搬メモリが装着されたことを示す検出信号をCPU31に出力する不図示の装着センサを備える。装着センサは、例えば、光学式センサ、機械式センサ、或いはそれらの組み合わせで実現される。
CPU31は、MFP10の全体動作を制御するものである。CPU31は、入力I/F24から出力される各種信号、及び通信I/F25を通じて外部装置から取得した各種情報等に基づいて、後述する各種プログラムをメモリ32から取得して実行する。すなわち、CPU31及びメモリ32は、コントローラの一例を構成する。
メモリ32には、OS34と、装置プログラム35とが記憶される。メモリ32は、装置メモリの一例である。なお、装置プログラム35は、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。また、メモリ32には、装置プログラム35の実行に必要なデータ或いは情報が記憶される。メモリ32は、例えば、RAM、ROM、EEPROM、HDD、MFP10に着脱されるUSBメモリ等の可搬記憶媒体、CPU31が備えるバッファ等、或いはそれらの組み合わせによって構成される。
メモリ32は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non−transitoryな媒体である。non−transitoryな媒体には、上記の例の他に、CD−ROM、DVD−ROM等の記録媒体も含まれる。また、non−transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non−transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
装置プログラム35は、MFP10の追加型プログラム機能を実現するプログラムを含む。追加型プログラム機能は、指示データで指示された動作を、CPU31がMFP10に実行させる機能である。そして、後述するプログラムリストにプログラムレコードが登録されると、装置プログラム35は、追加型プログラム機能によって、指示データで指示された動作をMFP10に実行させることができるようになる。以下、追加型プログラム機能で用いる複数の指示データを、「追加型プログラム」と表記することがある。
装置プログラム35は、追加型プログラム機能を実現するために、解析モジュール36と、第1取得モジュール37と、第2取得モジュール38とを含む。解析モジュール36、第1取得モジュール37、及び第2取得モジュール38は、例えば、関数の形式であってもよい。解析モジュール36、第1取得モジュール37、及び第2取得モジュール38が実行する処理の詳細は、後述する。また、追加型プログラム機能を実現するためのモジュールの数は3つに限定されず、例えば、解析モジュール36が複数のモジュールによって構成されていてもよい。
装置プログラム35に含まれるモジュール(以下、「呼出元モジュール」と表記する。)は、情報を引数として指定して、他のモジュール(以下、「被呼出モジュール」と表記する。)を呼び出す。また、被呼出モジュールは、引数として指定された情報を、呼出元モジュールから取得する。さらに、被呼出モジュールは、呼出元モジュールに引き渡す情報を戻り値として指定して、処理を終了する。そして、呼出元モジュールは、戻り値として指定された情報を被呼出モジュールから取得する。なお、「情報を引数或いは戻り値として指定する」とは、例えば、情報そのものを指定することのみならず、情報が記憶されたメモリ32の先頭アドレスを示すポインタを指定することも含む。
また、メモリ32は、例えば図2(B)に示されるように、プログラムリストを記憶することができる。プログラムリストは、1以上のプログラムレコードを含む。プログラムレコードは、例えば、MFP10の出荷時において既に登録されていてもよいし、入力I/F24或いは通信I/F25を通じてユーザによって登録されてもよい。プログラムレコードは、プログラムIDと、プログラムIDに対応する所在情報とを含む。
プログラムIDは、追加型プログラムを識別するための情報である。追加型プログラムは、コンテンツ処理部が実行するコンテンツ処理動作を含む動作を、MFP10に実行させるためのプログラムである。所在情報は、プログラムIDで識別される追加型プログラムを構成する複数の指示データのうち、最初に取得すべき指示データの所在を示すための情報である。所在情報の形式は特に限定されないが、例えば、図2(B)に示されるように、URL形式であってもよい。
一例として、プログラムID“スキャンアップロード”で識別される追加型プログラム(以下、「スキャンアップロード動作」と表記する。)は、スキャン動作でスキャナ12が生成したスキャンデータを、通信I/F25を通じてサーバに送信する動作をMFP10に実行させる複数の指示データで構成される。すなわち、スキャンアップロード動作は、スキャナ12が実行するスキャン動作と、通信I/F25がスキャンデータをサーバに送信するアップロード動作とを含む。
他の例として、プログラムID“ダウンロードプリント”で識別される追加型プログラム(以下、「ダウンロードプリント動作」と表記する。)は、通信I/F25を通じてサーバから受信した画像データで示される画像を、プリンタ11がシートに記録する動作をMFP10に実行させる複数の指示データで構成される。すなわち、ダウンロードプリント動作は、通信I/F25が画像データをサーバから受信するダウンロード動作と、プリンタ11が実行するプリント動作とを含む。
図3及び図4に示されるXMLファイルは、追加型プログラムを構成するテキスト形式の指示データの一例である。指示データは、図3(A)、図3(B)、図4(A)、及び図4(B)に示される画面指示XMLと、図3(C)及び図4(C)に示される動作指示XMLとに大別される。画面指示XMLは、MFP10のディスプレイ23に指示画面を表示させることを指示する画面指示データの一例である。動作指示XMLは、コンテンツ処理動作を含む動作の実行を指示する動作指示データの一例である。
なお、指示データのデータ形式はテキスト形式に限定されず、バイナリデータ或いはバイナリ化されたテキストデータであってもよいし、CSVフォーマット或いは追加型プログラム機能のために設計された独自フォーマットであってもよい。図3及び図4に示されるXMLファイルは、例えば、サーバ70、80、メモリ32、或いは装着部26に装着されるUSBメモリに記憶される。サーバ70、80、メモリ32、USBメモリは、指示データの取得元の一例である。
サーバ70は、例えば、HTTPによってXMLファイルを送信する所謂Webサーバである。この場合の所在情報は、例えば、“http://サーバ識別情報/ファイルパス情報”のURL形式である。サーバ80は、例えば、CIFS(Common Internet File Systemの略)に準拠した方式でXMLファイルを記憶し、記憶したXMLファイルをMFP10に送信する。この場合の所在情報は、例えば、“file://サーバ識別情報/ファイルパス情報”の形式である。
サーバ識別情報は、指示データを記憶するサーバ70、80を識別する情報である。例えば、サーバ70はサーバ識別情報“www.server-a.com”で識別され、サーバ80はサーバ識別情報“server-b”で識別される。ファイルパス情報は、指示データの所在パスを示す情報である。また、所在情報は、指示データを取得するためのプロトコルを示すプロトコル情報を含む。プロトコル情報には、例えば、第1プロトコルの一例であるHTTPを示す第1値“http”、或いは第2プロトコルの一例であるCIFSを示す第2値“file”が設定される。
但し、第1プロトコル及び第2プロトコルの具体例は、これらに限定されない。また、プロトコルとは、通信プロトコルに限定されない。プロトコルの他の例として、後述するように、ユーザが指定したパラメータに応じて、取得元が指示データを書き換えるか否かを指してもよい。プロトコルのさらに他の例として、メモリ32或いは装着部26に装着されたUSBメモリへのアクセス手順であってもよい。
また、メモリ32或いは装着部26に装着されたUSBメモリに記憶される指示データの所在情報は、例えば、“file://localhost/ドライブレター/ファイルパス情報”の形式である。“localhost”は、自装置であるMFP10を識別するための情報であって、前述のサーバ識別情報に代えて所在情報に含めることができる。なお、自装置を識別する情報として、“localhost”に代えてループバックアドレス“127.0.0.1”を用いてもよい。また、例えば、メモリ32はドライブレター“a:”で識別され、装着部26に装着されたUSBメモリはドライブレター“c:”で識別される。
サーバ識別情報、“localhost”、及びドライブレターは、MFP10に接続されたメモリを識別するメモリ識別情報の一例である。なお、サーバ識別情報、“localhost”、及びドライブレターの一部又は全部は、省略することができる。サーバ識別情報及び“localhost”の両方が省略された場合、“localhost”が設定されているものと同様に取り扱われる。また、ドライブレターが省略された場合、所定の優先順位に従って指示データの取得元が決定される。
サーバ90は、所謂ストレージサーバである。サーバ90は、例えば、MFP10から送信されたスキャンデータをサーバメモリに記憶させる。サーバ90は、サーバ識別情報“www.server-c.com”で識別される。
図5〜図7を参照して、本実施形態に係るシステム100の動作を説明する。
本明細書のフローチャートは、基本的に、プログラムに記述された命令に従ったCPU31の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「制御」等の処理は、CPU31の処理を表している。CPU31による処理は、OS34を介したハードウェア制御も含む。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
[サーバ70から取得した追加型プログラムの実行]
装置プログラム35は、例えば入力I/F24を通じてユーザに指示されたことに応じて、追加型プログラムを実行する。図5を参照して、追加型プログラムを実行する処理の詳細を説明する。
まず、装置プログラム35は、図8(A)に示されるPG選択画面をディスプレイ23に表示させる(S11)。PG選択画面は、MFP10に登録された複数の追加型プログラムのうちの1つを選択させるための画面である。PG選択画面は、プログラムアイコン111、112を含む。プログラムアイコン111、112は、プログラムリストに登録された複数のプログラムレコードの1つに対応する。そして、装置プログラム35は、PG選択画面に対するユーザ操作を、入力I/F24を通じて受け付ける(S12)。
装置プログラム35は、例えば、プログラムアイコン111の指定を入力I/F24を通じて受け付けたことに応じて(S12:Yes)、プログラムID“スキャンアップロード”で識別される追加型プログラムを実行する。すなわち、装置プログラム35は、プログラムアイコン111に対応するプログラムレコードのプログラムID“スキャンアップロード”を引数として指定して、解析モジュール36を呼び出す。
次に、解析モジュール36は、装置プログラム35に呼び出されたことに応じて、引数として指定されたプログラムID“スキャンアップロード”を取得する。次に、解析モジュールは、取得したプログラムID“スキャンアップロード”に対応付けられた所在情報“http://www.server-a.com/scan-upload1.xml”を、プログラムリストから読み出す(S13)。次に、解析モジュール36は、S13で読み出した所在情報に含まれるプロトコル情報の設定値を判断する(S14)。S13の処理は抽出処理の一例であり、S14の処理は第1判断処理の一例である。
次に、解析モジュール36は、S13で抽出した所在情報のプロトコル情報に第1値“http”が設定されていると判断したことに応じて(S14:http)、第1取得処理を実行する(S15)。より詳細には、解析モジュール36は、S13で抽出した所在情報を引数として指定して、第1取得モジュール37を呼び出す。第1取得処理は、第1取得モジュール37を通じてサーバ70から指示データを取得する処理である。図6(A)を参照して、第1取得処理の詳細を説明する。
まず、第1取得モジュール37は、解析モジュール36に呼び出されたことに応じて、引数として指定された所在情報を、解析モジュール36から取得する。次に、第1取得モジュール37は、HTTPに示される手順に従って、取得した所在情報のサーバ識別情報“www.server-a.com”で識別されるサーバ70に、通信I/F25を通じてXML要求情報を送信する(S31)。XML要求情報は、ファイルパス情報で識別されるXMLファイルの送信を要求するための送信要求情報の一例である。XML要求情報は、例えば、取得した所在情報のファイルパス情報“scan-upload1.xml”を含む。S31の処理は、送信処理の一例である。
一方図示は省略するが、サーバ70は、MFP10からXML要求情報を受信する。そして、サーバ70は、ファイルパス情報“scan-upload1.xml”で識別されるXMLファイルとして、図3(A)に示されるXMLファイルをMFP10に送信する。
次に、第1取得モジュール37は、HTTPに示される手順に従って、図3(A)に示されるXMLファイルを、S31で送信したXML要求情報の応答として、通信I/F25を通じてサーバ70から受信する(S32:Yes)。そして、第1取得モジュール37は、S32で受信したXMLファイルを、メモリ32に一時記憶させる。次に、第1取得モジュール37は、S32で受信したXMLファイルを戻り値として指定して(S33)、第1取得処理を終了する。S32の処理は受信処理の一例であり、S33の処理は第1引渡処理の一例である。
次に図5に戻って、解析モジュール36は、戻り値として指定されたXMLファイルを、第1取得モジュール37から取得する。次に、解析モジュール36は、取得したXMLファイルが画面指示XML及び動作指示XMLのどちらであるかを判断する(S16)。より詳細には、解析モジュール36は、XMLファイル内において、<画面>タグ及び<コマンド>タグを検索する。そして、解析モジュール36は、<画面>タグを検出したことに応じて、図3(A)に示されるXMLファイルが画面指示XMLであると判断する(S16:画面指示)。S16の処理は、第2判断処理の一例である。
画面指示XMLは、例えば図3(A)に示されるように、<NextURL>タグと、<タイトル>タグと、<選択肢表示>タグと、複数の<選択肢>タグとを、<画面>タグの要素として含む。<NextURL>タグの要素には、当該画面指示XMLに指示された動作を実行した後に取得すべき指示データの所在情報が設定される。<タイトル>タグの要素には、指示画面の画面タイトルの文字列が設定される。
<選択肢表示>タグの属性“key”には、当該画面指示XMLで指示された指示画面を通じてユーザに指定させるパラメータの項目“解像度”を識別する項目ID“resolution”が設定される。<選択肢>タグの要素には、ユーザに指定させるパラメータを示すテキスト“300dpi”、“600dpi”が設定される。<選択肢>タグの属性“val”には、ユーザに指定させるパラメータの値“1”、“2”が設定される。すなわち、<選択肢>タグは、指示画面を通じてユーザに選択させるパラメータの候補に対応する。
次に、解析モジュール36は、取得したXMLファイルが画面指示XMLであると判断したことに応じて(S16:画面指示)、図8(B)に示される解像度選択画面を、<画面>タグの要素に従ってディスプレイ23に表示させる(S17)。解像度選択画面は、項目ID“resolution”に対応するパラメータを、ユーザに指定させるための指示画面の一例である。そして、解析モジュール36は、指示画面に対するユーザ操作を、入力I/F24を通じて受け付ける(S18)。S17の処理は表示処理の一例であり、S18の処理は受付処理の一例である。
解像度選択画面は、複数の<選択肢>タグそれぞれに対応するパラメータアイコン121、122を含む。パラメータアイコン121、122には、対応する<選択肢>タグの要素であるテキストが記述される。なお、項目ID“resolution”のパラメータは、スキャンアップロードの実行条件を示すパラメータの一例である。より詳細には、項目ID“resolution”のパラメータは、スキャナ12に実行させるスキャン動作の読取解像度を示すパラメータの一例である。
次に、解析モジュール36は、例えばパラメータアイコン122の指定を入力I/F24を通じて受け付けたことに応じて(S18:Yes)、パラメータアイコン122に対応付けられた<選択肢>タグの属性値val=“2”を、ユーザによって指定された項目ID“resolution”のパラメータとしてメモリ32に一時記憶させる。
次に、解析モジュール36は、図3(A)に示される画面指示XMLが<ログ取得 />タグを含むか否かを判断する(S19)。<ログ取得 />タグは、直前のS18で指定されたパラメータ“2”を、ログ情報としてメモリ32に記憶させることを指示するタグである。そして、解析モジュール36は、図3(A)に示される画面指示XMLが<ログ取得 />タグを含まないと判断したことに応じて(S19:No)、S20をスキップして、S13以降の処理を実行する。
なお、ログ情報の記憶指示は、<ログ取得 />タグに限定されない。他の例として、ログ情報の記憶指示は、予め定められたメモリ(例えば、USBメモリ)に、ログ情報を記憶させる処理を実行するスクリプトファイルが記憶されていることであってもよい。そして、解析モジュール36は、当該スクリプトファイルを実行することによって、ログ情報を記憶させてもよい。さらに他の例として、解析モジュール36は、S20の処理を常に実行してもよい。
次に、解析モジュール36は、図3(A)に示される画面指示XMLから次の指示データの所在情報として、<NextURL>の要素“http://www.server-a.com/scan-upload2.xml”を抽出する(S13)。そして、解析モジュール36は、S13で抽出した所在情報のプロトコル情報に第1値“http”が設定されていると判断したことに応じて(S14:http)、第1取得処理を実行する(S15)。なお、解析モジュール36は、S18を実行した後の第1取得処理において、S13で抽出した所在情報に加えて、S18で指定された項目ID“resolution”のパラメータ“2”を引数として指定して、第1取得モジュール37を呼び出す。
次に、第1取得モジュール37は、解析モジュール36に呼び出されたことに応じて、引数として指定された所在情報及びパラメータを、解析モジュール36から取得する。そして、第1取得モジュール37は、取得した所在情報のサーバ識別情報“www.server-a.com”で識別されるサーバ70に、通信I/F25を通じてXML要求情報を送信する(S31)。なお、第1取得モジュール37は、引数としてパラメータを取得した場合のS31において、ファイルパス情報“scan-upload2.xml”に加えて、取得したパラメータ“resolution=2”を含むXML要求情報を送信する。
一方図示は省略するが、サーバ70は、ファイルパス情報及びパラメータを含むXML要求情報を受信したことに応じて、当該パラメータ“resolution=2”をサーバメモリに記憶させる。次に、サーバ70は、ファイルパス情報“scan-upload2.xml”で識別されるXMLファイルを、サーバメモリから読み出す。次に、サーバ70は、読み出したXMLファイルの<NextURL>の要素の末尾に、XML要求情報に含まれていたパラメータ“?resolution=2”を付加する。そして、サーバ70は、図3(B)に示されるXMLファイルを、MFP10に送信する。
次に、第1取得モジュール37は、図3(B)に示されるXMLファイルを、通信I/F25を通じてサーバ70から受信する(S32:Yes)。そして、第1取得モジュール37は、S32で受信したXMLファイルを、メモリ32に一時記憶させる。次に、第1取得モジュール37は、S32で受信したXMLファイルを戻り値として指定して、第1取得処理を終了する。
次に図5に戻って、解析モジュール36は、戻り値として指定されたXMLファイルを、第1取得モジュール37から取得する。次に、解析モジュール36は、図3(B)に示されるXMLファイルが画面指示XMLであると判断したことに応じて(S16:画面指示)、図9(A)に示される種別選択画面を、<画面>タグの要素に従ってディスプレイ23に表示させる(S17)。種別選択画面は、項目ID“file_type”に対応するパラメータを、ユーザに指定させるための指示画面の一例である。
解像度選択画面は、複数の<選択肢>タグそれぞれに対応するパラメータアイコン131、132を含む。項目ID“file_type”のパラメータは、スキャナ12に読み取らせる原稿の種別(例えば、“見積書”、“請求書”)を示す。すなわち、項目ID“file_type”のパラメータは、スキャンアップロード動作の実行条件を直接的に示す情報ではない。但し、スキャンアップロード動作の実行条件は、後述するように、項目ID“file_type”のパラメータに応じて、変更されてもよい。このように、画面指示XMLは、後続の動作指示XMLで指示される動作の実行条件を、直接的或いは間接的に示すパラメータを、ユーザに指定させるものであればよい。
次に、解析モジュール36は、例えばパラメータアイコン131の指定を入力I/F54を通じて受け付けたことに応じて(S18:Yes)、パラメータアイコン131に対応付けられた<選択肢>タグの属性値val=“1”を、ユーザによって指定された項目ID“file_type”のパラメータとしてメモリ32に一時記憶させる。次に、解析モジュール36は、図3(B)に示される画面指示XMLが<ログ取得 />タグを含まないと判断したことに応じて(S19:No)、S20をスキップして、図3(B)に示される画面指示XMLから次の指示データの所在情報として、<NextURL>の要素“http://www.server-a.com/scan-upload3.xml?resolution=2”を抽出する(S13)。
そして、解析モジュール36は、S13で抽出した所在情報のプロトコル情報に第1値“http”が設定されていると判断したことに応じて(S14:http)、S13で抽出した所在情報と、S18で指定された項目ID“file_type”のパラメータ“1”とを引数として指定して、第1取得モジュール37を呼び出す(S15)。次に、第1取得モジュール37は、ファイルパス情報“scan-upload3.xml”と、パラメータ“file_type=1”とを含むXML要求情報を、通信I/F25を通じてサーバ70に送信する。
一方図示は省略するが、サーバ70は、MFP10から受信したXML要求情報に含まれるパラメータ“file_type=1”をサーバメモリに記憶させる。次に、サーバ70は、ファイルパス情報“scan-upload3.xml”で識別されるXMLファイルとして、図3(C)に示されるXMLファイルを生成する。そして、サーバ70は、生成したXMLファイルをMFP10に送信する。
より詳細には、サーバ70は、サーバメモリに記憶させたパラメータ“resolution=2”に対応する読取解像度“600dpi”を、<解像度>タグの要素に設定する。また、サーバ70は、サーバメモリに記憶させたパラメータ“file_type=1”に対応するファイル形式“PDF”を、<形式>タグの要素に設定する。一方、<サーバ>タグの要素には、スキャンデータのアップロード先のサーバ識別情報“ftp://www.server-c.com”が固定的に設定される。<解像度>タグ、<形式>タグ、及び<サーバ>タグは、スキャンアップロード動作の実行条件を示す。
なお図示は省略するが、サーバメモリにパラメータ“resolution=1”が記憶されている場合、<解像度>タグの要素には、例えば、読取解像度“300dpi”が設定される。また、サーバメモリにパラメータ“file_type=2”が記憶されている場合、<形式>タグの要素には、例えば、ファイル形式“TIFF”が設定される。すなわち、サーバ70は、S18で指定されたパラメータに従って、実行条件を示すパラメータをXMLファイルに設定する。換言すれば、図3(C)に示されるXMLファイルは、XML要求情報に含まれるパラメータに対応する実行条件を示す。
次に、第1取得モジュール37は、図3(C)に示されるXMLファイルを、通信I/F25を通じてサーバ70から取得し(S32:Yes)、メモリ32に一時記憶させ、戻り値として解析モジュール36に引き渡す(S33)。次に、解析モジュール36は、戻り値として取得したXMLファイル内において、<コマンド>タグを検出したことに応じて、当該XMLファイルが動作指示XMLであると判断する(S16:動作指示)。そして、解析モジュール36は、指示動作実行処理を実行する(S21)。指示動作実行処理は、動作指示XMLで指示された指示動作を実行する処理である。図6(B)を参照して、指示動作実行処理の詳細を説明する。
まず、解析モジュール36は、図3(C)に示される動作指示XMLが<スクリプト>タグを含むか否かを判断する(S36)。そして、解析モジュール36は、図3(C)に示される動作指示XMLが<スクリプト>タグを含まないと判断したことに応じて(S36:No)、S37をスキップして、指示動作を実行する(S38)。S36の処理は第3判断処理の一例であり、S38の処理は動作指示処理の一例である。
すなわち、解析モジュール36は、図3(C)に示される<解像度>タグ、<形式>タグ、及び<サーバ>タグの要素で示される実行条件に従って、スキャンアップロード動作を実行する。換言すれば、解析モジュール36は、S18で指定されたパラメータに対応する実行条件に従って、スキャンアップロード動作を実行する。より詳細には、解析モジュール36は、読取解像度“600dpi”で原稿を読み取って、ファイル形式“PDF”のスキャンデータを生成するスキャン動作を、スキャナ12に実行させる。次に、解析モジュール36は、サーバ識別情報“www.server-c.com”で識別されるサーバ90に、FTPに準拠した手順で、通信I/F25を通じてスキャンデータを送信する。
[プログラムレコードの登録/編集]
また、装置プログラム35は、例えば図9(B)に示される拡張PG設定画面を通じて、プログラムリストにプログラムレコードを新規に追加するユーザ操作、或いはプログラムリストに既に登録されているプログラムレコードを編集するユーザ操作を受け付けることができる。
拡張PG設定画面は、テキストボックス141、142と、[OK]アイコン143とを含む。テキストボックス141には、入力I/F24を通じて入力されたプログラムIDが表示される。テキストボックス142には、入力I/F24を通じて入力された所在情報が表示される。そして、装置プログラム35は、図9(B)に示される[OK]アイコン143の指定を入力I/F24を通じて受け付けたことに応じて、テキストボックス141に表示されたプログラムID“スキャンアップロード”を含むプログラムレコードが既にプログラムリストに登録されているか否かを判断する。
そして、装置プログラム35は、プログラムID“スキャンアップロード”を含むプログラムレコードが既に登録されていると判断したことに応じて、対応する所在情報“http://www.server-a.com/scan-upload1.xml”を、テキストボックス142に表示された所在情報“file:///c:/scan-upload1.xml”で上書きする。一方、装置プログラム35は、テキストボックス141に表示されたプログラムIDを含むプログラムレコードが登録されていないと判断したことに応じて、テキストボックス141、142に表示されたプログラムID及び所在情報を含むプログラムレコードを、プログラムリストに新規に登録する。
[サーバ70と異なる取得元から取得した追加型プログラムの実行]
次に、図8(A)に示されるPG選択画面において、所在情報“file:///c:/scan-upload1.xml”を含むプログラムレコードが対応付けられたプログラムアイコン111が指定された場合の処理を説明する。なお、前述の処理との共通点の詳しい説明は省略し、相違点を中心に説明するものとする。
まず、解析モジュール36は、装置プログラム35に呼び出されたことに応じて、引数として指定されたプログラムID“スキャンアップロード”に対応付けられた所在情報“file:///c:/scan-upload1.xml”を、プログラムリストから読み出す(S13)。次に、解析モジュール36は、S13で読み出した所在情報のプロトコル情報に第2値“file”が設定されていると判断したことに応じて(S14:file)、第2取得処理を実行する(S22)。より詳細には、解析モジュール36は、S13で抽出した所在情報を引数として指定して、第2取得モジュール38を呼び出す。第2取得処理は、第2取得モジュール38を通じて取得元から指示データを取得する処理である。図7を参照して、第2取得処理の詳細を説明する。
まず、第2取得モジュール38は、解析モジュール36に呼び出されたことに応じて、引数として指定された所在情報“file:///c:/scan-upload1.xml”を取得する。次に、第2取得モジュール38は、取得した所在情報がサーバ識別情報或いはドライブレターを含むか否かを判断する(S41、S43)。S41、S43の処理は、第4判断処理の一例である。なお、所在情報が“localhost”を含む場合、第2取得モジュール38は、所在情報がサーバ識別情報を含まないと判断して(S41:No)、S43以降の処理を実行する。
次に、第2取得モジュール38は、取得した所在情報がサーバ識別情報を含まず且つドライブレター“c:”を含むと判断したことに応じて(S41:No&S43:Yes)、USBメモリへのアクセス手順に従って、ドライブレター“c:”で識別される装着部26に装着されたUSBメモリから図4(A)に示されるXMLファイルを、ファイルパス情報“scan-upload1.xml”で識別されるXMLファイルとして読み出す(S44)。S44及び後述するS42、S46、S47の処理は、取得処理の一例である。そして、第2取得モジュール38は、S44で読み出したXMLファイルを戻り値として指定して(S48)、第2取得処理を終了する。S48の処理は、第2引渡処理の一例である。
次に図5に戻って、解析モジュール36は、戻り値として指定されたXMLファイルを、第2取得モジュール38から取得する。図4(A)に示されるXMLファイルに対するS16〜S18の処理は、図3(A)に示されるXMLファイルの場合と同様なので、パラメータアイコン122が指定されたものとして、詳細の説明は省略する。
そして、解析モジュール36は、図4(A)に示される画面指示XMLが<ログ取得 />タグを含むと判断したことに応じて(S19:Yes)、例えば図4(D)に示されるように、<resolution>タグと、<resolution>タグの要素であるパラメータ“2”とを、<EVTPARAM>タグの要素としてメモリ32に記憶させる(S20)。<resolution>タグは、項目ID“resolution”に対応する。<resolution>タグの要素であるパラメータ“2”は、項目ID“resolution”に対応付けてユーザが指定したパラメータである。S20の処理は、記憶処理の一例である。
次に、解析モジュール36は、図4(A)に示される画面指示XMLから次の指示データの所在情報として、<NextURL>の要素“file://localhost/scan-upload2.xml”を抽出する(S13)。そして、解析モジュール36は、S13で抽出した所在情報のプロトコル情報に第2値“file”が設定されていると判断したことに応じて(S14:file)、第2取得処理を実行する(S22)。なお、解析モジュール36は、S18を実行した後の第2取得処理において、S13で抽出した所在情報に加えて、S18で指定された項目ID“resolution”のパラメータ“2”を引数として指定して、第2取得モジュール38を呼び出す。
次に、第2取得モジュール38は、解析モジュール36に呼び出されたことに応じて、引数として指定された所在情報及びパラメータを、解析モジュール36から取得する。次に、第2取得モジュール38は、取得した所在情報が“localhost”を含み且つドライブレターを含まないと判断したことに応じて(S41:No&S43:No)、装着部26にUSBメモリが装着されているか否かを判断する(S45)。すなわち、第2取得モジュール38は、装着センサから検出信号が出力されているか否かを判断する。S45の処理は、第5判断処理の一例である。
そして、第2取得モジュール38は、例えば、USBメモリが装着されていると判断したことに応じて(S45:Yes)、USBメモリへのアクセス手順に従って、装着部26に装着されたUSBメモリから図4(B)に示されるXMLファイルを、ファイルパス情報“scan-upload2.xml”で識別されるXMLファイルとして読み出す(S46)。次に、第2取得モジュール38は、S46で読み出したXMLファイルを戻り値として指定して(S48)、第2取得処理を終了する。一方、第2取得モジュール38は、引数として取得したパラメータを、第2取得処理で使用しなくてもよい。すなわち、パラメータは、第1取得モジュール37及び第2取得モジュール38の引数を共通にするために指定されるものであり、第2取得処理では使用されなくてもよい。
次に図5に戻って、解析モジュール36は、戻り値として指定されたXMLファイルを、第2取得モジュール38から取得する。図4(B)に示されるXMLファイルに対するS16〜S18の処理は、図3(B)に示されるXMLファイルの場合と同様なので、パラメータアイコン131が指定されたものとして、詳細な説明は省略する。
そして、解析モジュール36は、図4(B)に示される画面指示XMLが<ログ取得 />タグを含むと判断したことに応じて(S19:Yes)、例えば図4(D)に示されるように、<file_type>タグと、<file_type>タグの要素であるパラメータ“1”とを、<EVTPARAM>タグの要素としてメモリ32に記憶させる(S20)。<file_type>タグは、項目ID“file_type”に対応する。<file_type>タグの要素であるパラメータ“1”は、項目ID“file_type”に対応付けてユーザが指定したパラメータである。
次に、解析モジュール36は、図4(B)に示される画面指示XMLから次の指示データの所在情報として、<NextURL>の要素“file:///scan-upload3.xml”を抽出する(S13)。そして、解析モジュール36は、S13で抽出した所在情報のプロトコル情報に第2値“file”が設定されていると判断したことに応じて(S14:file)、S13で抽出した所在情報と、S18で指定された項目ID“file_type”のパラメータ“1”とを引数として指定して、第2取得モジュール38を呼び出す(S22)。
次に、第2取得モジュール38は、解析モジュール36に呼び出されたことに応じて、引数として指定された所在情報及びパラメータを、解析モジュール36から取得する。次に、第2取得モジュール38は、取得した所在情報がサーバ識別情報及びドライブレターを含まないと判断したことに応じて(S41:No&S43:No)、装着部26にUSBメモリが装着されているか否かを判断する(S45)。
そして、第2取得モジュール38は、例えば、USBメモリが装着されていないと判断したことに応じて(S45:No)、メモリ32へのアクセス手順に従って、図4(C)に示されるXMLファイルを、ファイルパス情報“scan-upload3.xml”で識別されるXMLファイルとしてメモリ32から読み出す(S47)。そして、第2取得モジュール38は、S47で読み出したXMLファイルを戻り値として指定して(S48)、第2取得処理を終了する。
なお、具体例の説明は省略するが、第2取得モジュール38は、取得した所在情報がサーバ識別情報“server-b”を含むと判断したことに応じて(S41:Yes)、当該サーバ識別情報“server-b”で識別されるサーバ80からXMLファイルを取得する(S42)。すなわち、第2取得モジュール38は、CIFSに示される手順に従って、通信I/F25を通じてサーバ80にXML要求情報を送信し、通信I/F25を通じてサーバ80からXMLファイルを受信する。また、第2取得モジュール38は、取得した所在情報がドライブレター“a:”を含むと判断したことに応じて(S43:Yes)、CIFSに示される手順に従って、ドライブレター“a:”で識別されるメモリ32からXMLファイルを読み出す(S44)。
次に、解析モジュール36は、第2取得モジュール38から戻り値として取得したXMLファイルが動作指示XMLであると判断したことに応じて(S16:動作指示)、指示動作実行処理を実行する(S21)。なお、図4(C)に示される動作指示XMLには、S18で指定されたパラメータに応じて変更される実行条件(例えば、読取解像度、ファイル形式)が設定されておらず、固定的に設定される実行条件(例えば、サーバ識別情報)が設定されている。また、図4(C)に示される動作指示XMLは、<スクリプト>タグを含む。そして、解析モジュール36は、図4(C)に示される動作指示XMLが<スクリプト>タグを含むと判断したことに応じて(S36:Yes)、<スクリプト>タグの要素であるスクリプトを実行する(S37)。
<スクリプト>タグの要素に設定されたスクリプトは、<EVTPARAM>の要素としてメモリ32に記憶されたパラメータを、スキャンアップロード動作の実行条件に変換する処理を定義している。スクリプト言語の具体例は特に限定されないが、例えば、Lua、Ruby、JavaScript(登録商標)等であってもよい。そして、解析モジュール36は、スクリプトに従って変換した実行条件を示すタグで、<スクリプト>タグを置換する。S37の処理は、置換処理の一例である。
図4(C)及び図4(D)の例では、1つ目の<スクリプト>タグが“<解像度>600dpi</解像度>”に置換され、2つ目の<スクリプト>タグが“<形式>PDF</形式>”に置換される。すなわち、図4(C)に示される動作指示XMLは、図3(C)に示される動作指示XMLに置換される。そして、解析モジュール36は、置換された動作指示XMLで示される指示動作を実行する(S38)。
[本実施形態の作用効果]
上記の実施形態によれば、共通の引数を指定して呼び出される第1取得モジュール37及び第2取得モジュール38によって、互いに異なる取得元からXMLファイルを取得することができる。そして、解析モジュール36は、第1取得処理及び第2取得処理で取得したXMLファイルに対して、共通の処理を実行すればよい。このように、取得元毎に異なるプロトコルを取得モジュール37、38に実装し、XMLファイルを解析する共通の処理を解析モジュール36に実装することにより、少ない開発コストで複数の取得元からXMLファイルを取得可能なMFP10を実現できる。
また、上記の実施形態によれば、MFP10に接続された複数のメモリのうち、メモリ識別情報で識別されるメモリから第2取得モジュール38にXMLファイルを取得させることができる。これにより、XMLファイルの保存先のバリエーションが増えると共に、装置プログラム35の開発コストがさらに低減される。また、XMLファイルの取得元の優先順位(例えば、装着部26、メモリ32の順)を予め定めておくことによって、所在情報からメモリ識別情報が省略可能となるので、追加型プログラムを実現するXMLファイルの開発負担を低減することができる。
また、上記の実施形態によれば、第1取得モジュール37が取得する動作指示XMLには、ユーザが指定したパラメータに対応する実行条件をサーバ70が設定する。一方、第2取得モジュール38が取得する動作指示XMLには、ユーザが指定したパラメータに対応する実行条件を、解析モジュール36がスクリプトに従って設定する。これにより、動作指示XMLを書き換える機能のある取得元(例えば、サーバ70)、動作指示XMLを書き換える機能のない取得元(例えば、サーバ80、メモリ32、装着部26)のどちらから動作指示XMLを取得しても、適切な実行条件に従ったスキャンアップロード動作を実行させることができる。
但し、S20、S36、S37を実行するのは、解析モジュール36に限定されず、第2取得モジュール38であってもよい。すなわち、第2取得モジュール38は、第2取得処理において、S20、S36、S38の処理を実行してもよい。より詳細には、第2取得モジュール38は、引数として取得したパラメータをログ情報としてメモリ32に記憶させる(S20)。また、第2取得モジュール38は、S48の前にS36、S38の処理を実行する。そして、第2取得モジュール38は、<スクリプト>タグが実行条件に置換された動作指示XMLを、解析モジュール36に引き渡す(S48)。
また、上記の実施形態では、スキャンアップロード動作を実現する全てのXMLファイルを、サーバ70から取得する例と、サーバ70以外の取得元から取得する例とを説明したが、XMLファイルの取得元の組み合わせは、これに限定されない。すなわち、サーバ70に記憶されたXMLファイルの<NextURL>の要素に、サーバ80、メモリ32、或いは装着部26のメモリ識別情報を含む所在情報が設定されてもよい。同様に、サーバ80、メモリ32、或いはUSBメモリに記憶されたXMLファイルの<NextURL>の要素に、サーバ70のサーバ識別情報を含む所在情報が設定されてもよい。
また、図3及び図4の例において、<NextURL>タグは、画面指示XMLのみに含まれ、動作指示XMLに含まれていない。しかしながら、<NextURL>タグは、動作指示XMLに含まれていてもよい。すなわち、動作指示XMLに指示された動作の後に、MFP10にさらに動作を実行させてもよい。なお、動作指示XMLに含まれる<NextURL>タグの要素は、画面指示XMLを示してもよいし、動作指示XMLを示してもよい。
一例として、図3(C)或いは図4(C)の動作指示XMLの後に、同一或いは異なる実行パラメータに従ってMFP10にスキャン動作をさらに実行させてもよい。他の例として、図3(C)或いは図4(C)の動作指示XMLの後に、スキャンアップロードの結果を示す画像をシートに記録するプリント動作をプリンタ11に実行させてもよい。さらに他の例として、図3(C)或いは図4(C)の動作指示XMLの後に、スキャンアップロードの結果を示す画面をディスプレイ23に表示させてもよい。
また、上記の実施形態のMFP10において、メモリ32に記憶された各種プログラムがCPU31によって実行されることによって、本発明のコントローラが実行する各処理が実現される例を説明した。しかしながら、コントローラの構成はこれに限定されず、その一部又は全部を集積回路等のハードウェアで実現してもよい。
さらに、本発明は、MFP10として実現できるだけでなく、MFP10に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、non−transitoryな記録媒体に記録されて提供されてもよい。non−transitoryな記録媒体は、CD−ROM、DVD−ROM等の他、通信ネットワークを通じてMFP10に接続可能なサーバに搭載されたメモリを含んでもよい。そして、サーバのメモリに記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット等の通信ネットワークを通じて配信されてもよい。
10・・・MFP
12・・・スキャナ
23・・・ディスプレイ
24・・・入力I/F
25・・・通信I/F
26・・・装着部
31・・・CPU
32・・・メモリ
35・・・装置プログラム
36・・・解析モジュール
37・・・第1取得モジュール
38・・・第2取得モジュール
70,80,90・・・サーバ

Claims (7)

  1. コンテンツデータに対するコンテンツ処理動作を実行するハードウェアであるコンテンツ処理部と、
    装置メモリと、
    ディスプレイと、
    入力インタフェースと、
    通信インタフェースと、
    コントローラとを備えるコンテンツ処理装置であって、
    前記装置メモリは、前記コントローラに読み取られて該コンテンツ処理装置を動作させるプログラムを記憶しており、前記プログラムは、解析モジュールと、第1取得モジュールと、第2取得モジュールとを含み、
    前記解析モジュールは、
    指示データの所在を示す所在情報を抽出する抽出処理と、
    前記抽出処理で抽出した前記所在情報に含まれるプロトコル情報の設定値を判断する第1判断処理と、
    前記第1判断処理で第1値と判断したことに応じて、前記抽出処理で抽出した前記所在情報を引数として指定して前記第1取得モジュールを呼び出し、且つ当該所在情報で示される前記指示データを前記第1取得モジュールから取得する第1取得処理と、
    前記第1判断処理で第2値と判断したことに応じて、前記抽出処理で抽出した前記所在情報を引数として前記第2取得モジュールを呼び出し、且つ当該所在情報で示される前記指示データを前記第2取得モジュールから取得する第2取得処理と、
    前記第1取得処理或いは前記第2取得処理で取得した前記指示データが画面指示データ及び動作指示データのどちらかを判断する第2判断処理とを該コンテンツ処理装置に実行させ、前記画面指示データは、複数のパラメータを含む指示画面を表示させるためのデータであり、前記動作指示データは、前記コンテンツ処理部に前記コンテンツ処理動作を実行させるためのデータであり、
    前記解析モジュールは、
    前記第2判断処理で前記画面指示データと判断したことに応じて、
    当該画面指示データで示される前記指示画面を前記ディスプレイに表示させる表示処理と、
    前記指示画面に含まれる複数の前記パラメータの1つを指定するユーザ操作を、前記入力インタフェースを通じて受け付ける受付処理と、
    前記第1取得処理或いは前記第2取得処理で取得した前記指示データから、次の前記指示データの所在を示す前記所在情報を抽出する前記抽出処理とを該コンテンツ処理装置に実行させ、
    前記受付処理を実行した後の前記第1取得処理或いは前記第2取得処理において、前記抽出処理で抽出した前記所在情報と、前記受付処理で指定された前記パラメータとを引数として指定し、
    前記第2判断処理で前記動作指示データと判断したことに応じて、前記受付処理で指定された前記パラメータに対応する実行条件に従って、当該動作指示データで示される前記コンテンツ処理動作を前記コンテンツ処理部に実行させる動作指示処理を該コンテンツ処理装置に実行させ、
    前記解析モジュールに呼び出された前記第1取得モジュールは、引数として取得した前記所在情報で示される前記指示データの送信を要求する送信要求情報を、第1プロトコルに従って、前記通信インタフェースを通じてサーバに送信する送信処理を該コンテンツ処理装置に実行させ、前記送信要求情報は、引数として前記パラメータを取得した場合に当該パラメータを含み、
    前記第1取得モジュールは、
    前記送信要求情報の応答である前記指示データを、前記第1プロトコルに従って、前記通信インタフェースを通じて前記サーバから受信する受信処理と、
    前記受信処理で受信した前記指示データを前記解析モジュールに引き渡す第1引渡処理とを該コンテンツ処理装置に実行させ、
    前記解析モジュールに呼び出された前記第2取得モジュールは、
    引数として取得した前記所在情報で示される前記指示データを、前記第1プロトコルと異なる第2プロトコルに従って、前記サーバと異なる取得元から取得する取得処理と、
    前記取得処理で取得した前記指示データを前記解析モジュールに引き渡す第2引渡処理とを該コンテンツ処理装置に実行させるコンテンツ処理装置。
  2. 前記第1取得モジュールは、前記受信処理において、前記送信要求情報に含めた前記パラメータに対応する前記実行条件を指示する前記動作指示データを、前記通信インタフェースを通じて前記サーバから受信し、
    前記解析モジュールは、前記動作指示処理において、前記動作指示データで指示された前記実行条件に従って、前記コンテンツ処理部に前記コンテンツ処理動作を実行させる請求項1に記載のコンテンツ処理装置。
  3. 前記第2取得モジュールは、前記取得処理において、前記受付処理で指定された前記パラメータを前記実行条件に変換するスクリプトを含む前記動作指示データを前記取得元から取得し、
    前記解析モジュールは、
    前記受付処理で指定された前記パラメータを前記装置メモリに記憶させる記憶処理と、
    前記動作指示データが前記スクリプトを含むか否かを判断する第3判断処理と、
    前記第3判断処理で含むと判断したことに応じて、前記装置メモリに記憶された前記パラメータから当該スクリプトに従って変換した前記実行条件で、前記動作指示データの前記スクリプトを置換する置換処理とを該コンテンツ処理装置に実行させる請求項2に記載のコンテンツ処理装置。
  4. 前記第2取得モジュールは、
    前記取得処理において、前記受付処理で指定された前記パラメータを前記実行条件に変換するスクリプトを含む前記動作指示データを前記取得元から取得し、
    引数として取得した前記パラメータを前記装置メモリに記憶させる記憶処理と、
    前記取得処理で取得した前記動作指示データが前記スクリプトを含むか否かを判断する第3判断処理と、
    前記第3判断処理で含むと判断したことに応じて、前記装置メモリに記憶された前記パラメータから当該スクリプトに従って変換した前記実行条件で、前記動作指示データの前記スクリプトを置換する置換処理とを該コンテンツ処理装置に実行させ、
    前記第2引渡処理において、前記置換処理後の前記指示データを前記解析モジュールに引き渡す請求項2に記載のコンテンツ処理装置。
  5. 該コンテンツ処理装置は、前記取得元である複数のメモリと接続されており、
    前記プロトコル情報に前記第2値が設定された前記所在情報は、複数の前記メモリの1つを識別するメモリ識別情報を含むことが可能であり、
    前記第2取得モジュールは、
    前記所在情報が前記メモリ識別情報を含むか否かを判断する第4判断処理を該コンテンツ処理装置に実行させ、
    前記第4判断処理で含むと判断した場合の前記取得処理において、前記メモリ識別情報で識別される前記メモリから前記指示データを読み出す請求項1から4のいずれかに記載のコンテンツ処理装置。
  6. 該コンテンツ処理装置は、可搬メモリが着脱可能な装着部を備えており、
    前記第2取得モジュールは、
    前記第4判断処理で含まないと判断したことに応じて、前記装着部に前記可搬メモリが装着されているか否かを判断する第5判断処理を該コンテンツ処理装置に実行させ、
    前記第5判断処理で装着されていると判断した場合の前記取得処理において、当該可搬メモリから前記指示データを読み出し、
    前記第5判断処理で装着されていないと判断した場合の前記取得処理において、前記装置メモリから前記指示データを読み出す請求項5に記載のコンテンツ処理装置。
  7. 前記コンテンツデータは、画像データであり、
    前記コンテンツ処理部は、原稿に記録された画像データを読み取って前記画像データを生成するスキャン動作を実行するスキャナ、或いは前記画像データで示される画像をシートに記録するプリント動作を実行するプリンタである請求項1から6のいずれかに記載のコンテンツ処理装置。
JP2016161635A 2016-08-22 2016-08-22 コンテンツ処理装置 Active JP6729168B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2016161635A JP6729168B2 (ja) 2016-08-22 2016-08-22 コンテンツ処理装置
US15/394,928 US10057447B2 (en) 2016-08-22 2016-12-30 Content processing apparatus
US16/050,466 US10244138B2 (en) 2016-08-22 2018-07-31 Content processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016161635A JP6729168B2 (ja) 2016-08-22 2016-08-22 コンテンツ処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020113758A Division JP6856158B2 (ja) 2020-07-01 2020-07-01 コンテンツ処理装置、システム、およびプログラム

Publications (2)

Publication Number Publication Date
JP2018032891A JP2018032891A (ja) 2018-03-01
JP6729168B2 true JP6729168B2 (ja) 2020-07-22

Family

ID=61192430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016161635A Active JP6729168B2 (ja) 2016-08-22 2016-08-22 コンテンツ処理装置

Country Status (2)

Country Link
US (2) US10057447B2 (ja)
JP (1) JP6729168B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020058511A (ja) * 2018-10-09 2020-04-16 蛇の目ミシン工業株式会社 縫製データ処理システム、端末、ミシンおよびプログラム
JP7238678B2 (ja) * 2019-08-08 2023-03-14 オムロン株式会社 情報処理装置、サポートプログラムおよびサポートシステム
JP6856158B2 (ja) * 2020-07-01 2021-04-07 ブラザー工業株式会社 コンテンツ処理装置、システム、およびプログラム
JP2022162279A (ja) 2021-04-12 2022-10-24 ブラザー工業株式会社 プリンタ、印刷システムおよびプログラム
JP2023001965A (ja) 2021-06-22 2023-01-10 ブラザー工業株式会社 プリンタ、印刷システムおよびプログラム
JP2023006014A (ja) 2021-06-30 2023-01-18 ブラザー工業株式会社 画像処理装置、画像処理システムおよびプログラム
JP2023023311A (ja) * 2021-08-05 2023-02-16 ブラザー工業株式会社 プリンタ

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ZA954460B (en) * 1994-09-30 1996-02-05 Intel Corp Method and apparatus for processing memory-type information within a microprocessor
JP4081934B2 (ja) * 1999-09-17 2008-04-30 ソニー株式会社 データ配信方法及び装置、並びに、データ受信方法及び装置
JP4246540B2 (ja) 2002-05-08 2009-04-02 株式会社リコー 画像形成装置およびプログラム実行方法
US20030231343A1 (en) 2002-05-08 2003-12-18 Ayako Kobayashi Image forming apparatus, program adding method, and a recording medium
JP2004287861A (ja) * 2003-03-24 2004-10-14 Fuji Xerox Co Ltd サービス処理装置、サービス処理方法及びプログラム
US7784024B2 (en) * 2003-08-20 2010-08-24 Japan Tobacco Inc. Program creating system, program creating program, and program creating module
US9760647B2 (en) * 2004-12-08 2017-09-12 Oracle International Corporation Techniques for automatically exposing, as web services, procedures and functions stored in a database
US7957021B2 (en) * 2005-05-20 2011-06-07 Ricoh Company, Ltd. Image handling apparatus, image processing system, image process controlling method, and image process controlling program product
JP2007164482A (ja) * 2005-12-14 2007-06-28 Seiko Epson Corp 印刷装置、印刷方法、印刷プログラム、および記憶媒体
US8146061B2 (en) * 2007-12-12 2012-03-27 Via Technologies, Inc. Systems and methods for graphics hardware design debugging and verification
US8260962B1 (en) * 2008-11-04 2012-09-04 Juniper Networks, Inc. Donor/borrower incident notification for daemons
JP5573049B2 (ja) * 2009-08-26 2014-08-20 富士ゼロックス株式会社 読取システム、読取装置、制御装置及びプログラム
JP5160607B2 (ja) * 2010-09-22 2013-03-13 シャープ株式会社 複合機
JP5906667B2 (ja) 2010-11-04 2016-04-20 ブラザー工業株式会社 端末装置、サーバ、画面制御方法、画面遷移方法及びコンピュータプログラム
JP5875360B2 (ja) * 2011-12-26 2016-03-02 キヤノン株式会社 画像処理装置、制御方法、及びプログラム
US9894023B2 (en) * 2014-07-15 2018-02-13 Zebrafish Labs, Inc. Image feeding server network
JP6379931B2 (ja) * 2014-09-29 2018-08-29 ブラザー工業株式会社 機能実行装置及び画面情報サーバ
JP6458428B2 (ja) * 2014-09-30 2019-01-30 ブラザー工業株式会社 制御装置及びシステム

Also Published As

Publication number Publication date
US10057447B2 (en) 2018-08-21
JP2018032891A (ja) 2018-03-01
US10244138B2 (en) 2019-03-26
US20180054540A1 (en) 2018-02-22
US20180338058A1 (en) 2018-11-22

Similar Documents

Publication Publication Date Title
JP6729168B2 (ja) コンテンツ処理装置
US8654383B2 (en) Information processing system, apparatus, method and non-transitory computer-readable recording medium for generating a display screen based on local error display information and remote style sheet information
US10136005B2 (en) Image processing apparatus and image processing system capable of generating scan data and metadata
JP6690439B2 (ja) 画像処理装置
US9001374B2 (en) Image forming apparatus and display control device
JP6558240B2 (ja) プログラム
JP6763209B2 (ja) プログラム及び携帯端末
JP2021131880A (ja) プログラム及び携帯端末
JP6980987B2 (ja) 画像形成装置
JP2012022571A (ja) 翻訳制御装置および翻訳制御方法
JP6856158B2 (ja) コンテンツ処理装置、システム、およびプログラム
JP6752442B2 (ja) プログラム及び端末装置
JP6406060B2 (ja) 画像形成装置、サーバ装置、携帯端末、及び通信システム
US20190129666A1 (en) Image processing device, method of controlling image processing device, non-transitory computer readable recording medium therefor, and image processing system
JP6680141B2 (ja) 画像処理装置
JP6874887B2 (ja) 印刷プログラム及び情報処理端末
JP6975414B2 (ja) プログラム及び携帯端末
JP6798603B2 (ja) プログラムおよび端末装置
JP6784072B2 (ja) 画像処理装置
JP2017199219A (ja) ドライバプログラム
JP2018028838A (ja) ドライバプログラム
JP6662146B2 (ja) 画像処理装置及びプログラム
JP5182214B2 (ja) 処理実行装置、制御方法および制御プログラム
JP6613925B2 (ja) プログラム
US20190082062A1 (en) Non-transitory readable storage medium, setting method, and system

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180219

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20180219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200528

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200615

R150 Certificate of patent or registration of utility model

Ref document number: 6729168

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150