説明

画像形成装置、情報処理方法、及び情報処理プログラム

【課題】Webページ内のスクリプトに基づいて他の画像形成装置を制御すること。
【解決手段】プログラムを追加可能な他の画像形成装置とネットワークを介して接続される画像形成装置であって、Webページを表示手段に表示させる表示制御手段と、前記プログラムに対応する文字列群を記憶する記憶手段と、前記Webページに含まれているスクリプトについて、前記記憶手段が記憶する文字列を含む場合は、該文字列に対応した前記プログラムに関する処理要求を前記他の画像形成装置に送信する送信手段とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成装置、情報処理方法、及び情報処理プログラムに関し、特にWebブラウザを有する画像形成装置、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【0002】
近年の画像形成装置は、汎用的なコンピュータと同様にCPU(Central Processing Unit)を備え、各機能は、アプリケーション(以下、「アプリ」ともいう)等のプログラムの制御によって実現されるようになっている。
【0003】
このような画像形成装置の中には、アプリを実装するためのAPIが公開され、ユーザ所望のアプリを搭載することにより、カスタマイズが可能とされているものもある。公開されているAPIは、例えば、C言語やJava(登録商標)言語等によるプログラムより呼び出し可能とされている。
【0004】
また、ネットワーク上、又は機器内から取得したHTML(Hyper Text Markup Language)データを機器の画面として表示するブラウザソフトが搭載された画像形成装置も存在する。このようなブラウソフトの中には、画面を表示するだけでなく、機器制御用に拡張されたスクリプトを解釈して機器制御を実行することが可能なブラウザソフトも有る。このようなブラウザソフトによれば、スクリプト等のブラウザベースのAPIをカスタマイズ用に提供することができる(例えば、特許文献1)。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載された技術において、スクリプトに応じて制御可能な画像形成装置は、当該スクリプトを含むHTMLデータを受信した画像形成装置に限定される。
【0006】
本発明は、上記の点に鑑みてなされたものであって、Webページ内のスクリプトに基づいて他の画像形成装置を制御することのできる画像形成装置、情報処理方法、及び情報処理プログラムの提供を目的とする。
【課題を解決するための手段】
【0007】
そこで上記課題を解決するため、本発明は、プログラムを追加可能な他の画像形成装置とネットワークを介して接続される画像形成装置であって、Webページを表示手段に表示させる表示制御手段と、前記プログラムに対応する文字列群を記憶する記憶手段と、前記Webページに含まれているスクリプトについて、前記記憶手段が記憶する文字列を含む場合は、該文字列に対応した前記プログラムに関する処理要求を前記他の画像形成装置に送信する送信手段とを有する。
【0008】
このような画像形成装置では、Webページ内のスクリプトに基づいて他の画像形成装置を制御することができる。
【発明の効果】
【0009】
本発明によれば、Webページ内のスクリプトに基づいて他の画像形成装置を制御することができる。
【図面の簡単な説明】
【0010】
【図1】本発明の実施の形態における情報処理システムの構成例を示す図である。
【図2】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図3】本発明の実施の形態における画像形成装置の機能構成例を示す図である。
【図4】本発明の実施の形態の装置間の関係を説明するための図である。
【図5】機器ブラウザの初期化時に実行される処理手順の一例を説明するためのフローチャートである。
【図6】拡張スクリプトに関する実行環境の生成処理の処理手順の一例を説明するためのフローチャートである。
【図7】キーワードファイルの構成例を示す図である。
【図8】キーワードファイルに基づいて生成される情報を示す図である。
【図9】監視状態の構築処理の処理手順の一例を説明するためのフローチャートである。
【図10】監視設定ファイルの構成例を示す図である。
【図11】監視設定ファイルに基づいて構築される状態監視部の状態の例を示す図である。
【図12】アプリケーションの状態の監視処理の処理手順の一例を説明するためのフローチャートである。
【図13】Webページに関して機器ブラウザが実行する処理手順の一例を説明するためのフローチャートである。
【図14】Webページの定義例を示す図である。
【図15】対象アプリケーションに関する処理要求の受信に応じて実行される処理手順の一例を説明するためのフローチャートである。
【図16】画像形成装置間に形成される関係の一例を示す図である。
【発明を実施するための形態】
【0011】
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システム1において、画像形成装置10a、10b、及び10c等の複数台の画像形成装置10は、LAN(Local Area Network)又はインターネット等のネットワーク40(有線又は無線の別は問わない)を介して相互に通信可能に接続されている。また、一台以上のWebサーバ装置30は、ネットワーク30を介して各画像形成装置10と接続されている。
【0012】
画像形成装置10は、印刷、スキャン、コピー、及びFAX送受信等のうちの二以上の機能を一台の筐体によって実現する複合機である。但し、いずれか一つの機能を単体で有する機器が画像形成装置10として用いられてもよい。本実施の形態において、各画像形成装置10は、操作パネル(後述される、操作パネル202)に操作画面の表示等を実行させるためのプログラムとしてWebブラウザを有する。Webブラウザは、画像形成装置10用に機能拡張が図られている。そこで、以下、画像形成装置10が有するWebブラウザを「機器ブラウザ」という。
【0013】
Webサーバ装置30は、HTTPd(Hypertext Transfer Protocol daemon)等、Webサーバとしての機能が実装された汎用コンピュータである。Webサーバ装置30は、クライアント(本実施の形態の画像形成装置10の機器ブラウザ)からのHTTPリクエストに応じて、HTML(HyperText Markup Language)データ等のWebページを返信する。なお、機器ブラウザによって処理されるWebページの一部又は全部は、画像形成装置10内に保存されていてもよい。
【0014】
図2は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。同図において、画像形成装置10は、コントローラ201、操作パネル202、ファクシミリコントロールユニット(FCU)203、撮像部121、及び印刷部122等を有する。
【0015】
コントローラ201は、CPU211、ASIC212、NB221、SB222、MEM−P231、MEM−C232、HDD(ハードディスクドライブ)233、メモリカードスロット234、NIC(ネットワークインタフェースコントローラ)241、USBデバイス242、IEEE1394デバイス243、セントロニクスデバイス244、及び通信I/F245等を有する。
【0016】
CPU211は、種々の情報処理用のICである。ASIC212は、種々の画像処理用のICである。NB221は、コントローラ201のノースブリッジである。SB222は、コントローラ201のサウスブリッジである。MEM−P231は、画像形成装置10のシステムメモリである。MEM−C232は、画像形成装置10のローカルメモリである。HDD233は、画像形成装置10のストレージである。メモリカードスロット234は、メモリカード235をセットするためのスロットである。NIC241は、ネットワークを介した通信用のインタフェースである。USBデバイス242は、USB規格の接続端子を提供するためのデバイスである。IEEE1394デバイス243は、IEEE1394規格の接続端子を提供するためのデバイスである。セントロニクスデバイス244は、セントロニクス仕様の接続端子を提供するためのデバイスである。通信I/F245は、操作パネル202との通信用のインタフェースである。
【0017】
CPU211は、MEM−C232(通常、RAMを使用)をワークメモリとして用いることにより、MEM−P231(通常、フラッシュメモリを用いる)又はHDD233等に格納されたプログラムに基づく処理を実行する。
【0018】
MEM−C232、HDD233等に対するデータの読み出しや書き込みは、メモリカードスロット234や後述されるNIC(ネットワークインタフェースコントローラ)247を介して行うことができる。例えば、メモリカード235に格納されたプログラムデータ又はネットワークを通して受信されるプログラムデータに関してインストール処理が実行されることにより、MEM−C232又はHDD233にプログラムが書き込まれる。なお、メモリカード235以外の他の記録媒体(例えば、CD−ROM又はUSB(Universal Serial Bus)メモリ等)によってメモリカード235が代替されてもよい。すなわち、メモリカード235の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、メモリカードスロット234は、記録媒体の種類に応じたハードウェアによって代替されればよい。
【0019】
撮像部121は、読取原稿から画像(画像データ)を読み取るスキャナである。印刷部122は、画像(画像データ)を印刷用紙に印刷するプリンタである。
【0020】
FCU203は、FAX通信を制御するハードウェアである。
【0021】
操作パネル202は、操作者が画像形成装置10に入力を行うためのハードウェア(操作部)であると共に、操作者が画像形成装置10から出力を得るためのハードウェア(表示部)である。同図において、操作パネル202は、CPU251、RAM252、ROM253、NVRAM254、NIC255、及び通信I/F256等を有する。
【0022】
ROM253及びNVRAM254等には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。例えば、機器ブラウザのプログラムは、ROM253又はNVRAM254に記録されている。RAM252は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。CPU251は、RAM252にロードされたプログラムを処理することにより、各種の機能を実現する。NIC255は、ネットワークを介した通信用のインタフェースである。通信I/F256は、コントローラ201との通信用のインタフェースである。すなわち、操作パネル202とコントローラ201とは、画像形成装置10の筐体内においてネットワークを介して接続される。
【0023】
図2より明らかなように、操作パネル202の制御機構は、コントローラ201による制御から独立している。すなわち、操作パネル202は、独立してCPU251を有する。但し、操作パネル202は、通信I/F256を介してコントローラ201と通信することで、コントローラ201と協調又は連携して動作することが可能である。
【0024】
図3は、本発明の実施の形態における画像形成装置の機能構成例を示す図である。同図において、操作パネル202は、機器ブラウザ401、キーワードファイル記憶部402、監視設定ファイル記憶部403、及び通信制御部404等を有する。
【0025】
機器ブラウザ401は、Webサーバ装置30又は画像形成装置10内に記憶されているWebページ(HTMLデータ等)を取得し、Webページが示す画面の表示を操作パネル202に実行させる。また、機器ブラウザ401は、Webページに含まれているJava(登録商標)スクリプト等のスクリプト言語によるプログラム(以下、単に「スクリプト」という。)に応じた処理を、操作パネル202又はコントローラ201等に実行させる。なお、機器ブラウザ401は、スクリプトに関して、標準のメソッド(関数)及びプロパティ(属性)のみならず、画像形成装置10用に拡張された(追加された)メソッド及びプロパティ等を解釈することができる。標準のメソッド又はプロパティとは、例えば、Java(登録商標)スクリプト等の仕様において定義されているメソッド又はプロパティをいう。
【0026】
画像形成装置10用に拡張されたメソッド又はプロパティとは、画像形成装置10に随時インストールされるアプリケーション301に関するメソッド又はプロパティをいう。画像形成装置10用に拡張されたメソッド(以下、「拡張メソッド」という。)の例として、例えば、画像形成装置10にスキャンジョブ又は印刷ジョブ等を実行させるアプリケーション301を呼び出すメソッドが挙げられる。画像形成装置10用に拡張されたプロパティ(以下、「拡張プロパティ」という。)の例として、画像形成装置10にスキャンジョブ又は印刷ジョブ等を実行させるアプリケーション301に対する設定情報に対応するプロパティが挙げられる。なお、拡張メソッド及び拡張プロパティを総称して、「拡張スクリプト」という。
【0027】
基本的に、標準のスクリプトに関する処理は、操作パネル202において実行される。一方、拡張スクリプトに関する処理は、コントローラ201において実行される。
【0028】
同図において、機器ブラウザ401は、Webページ取得部411、パース部412、描画部413、スクリプト解釈部414、スクリプト実装部415、状態監視部416等を有する。
【0029】
Webページ取得部411は、指定された識別情報(URL(Uniform Resource Locator))に係るWebページを、Webサーバ装置30又は画像形成装置10(自機又は他機を問わない。)より取得する。
【0030】
パース部412は、Webページ取得部411によって取得されたWebページの定義内容を解析する、いわゆるHTMLパーサである。
【0031】
描画部413は、パース部412によるパース結果(解析結果)に基づいてWebページが示す画面(操作画面)を操作パネル202(の液晶タッチパネル)に表示させる。スクリプト解釈部414は、Webページにスクリプトが含まれている場合に、スクリプトの解釈(又は解析)を行う。スクリプト解釈部414は、スクリプトの解釈に際し、キーワードファイル記憶部402が記憶するキーワードファイルを用いる。キーワードファイルとは、拡張メソッド又は拡張プロパティ等を示す文字列群(文字列の集合)が格納されたファイルである。本実施の形態において、当該文字列を、以下「キーワード」という。
【0032】
すなわち、スクリプト内において、いずれが拡張メソッド又は拡張プロパティであるのかを示す情報は、機器ブラウザ401内のソースコードにコーディングされているのではなく、機器ブラウザ401の外部のキーワードファイル記憶部402において記憶されている。このことは、キーワードファイル記憶部402の記憶内容を変更することによって、拡張メソッド又は拡張プロパティとして判定される対象が動的に変化することを意味する。「動的に」とは、操作パネル201を機器ブラウザ401として機能させるためのプログラムのソースコードを変更すること無しに、ということを意味する。
【0033】
キーワードファイル記憶部402は、例えば、NVRAM254等を用いて実現可能である。
【0034】
スクリプト実装部415は、スクリプトに応じた処理の実装である。より詳しくは、スクリプト実装部415は、スクリプトに応じた処理を実行するオブジェクト(Java(登録商標)スクリプトオブジェクト等)の集合である。スクリプト実装部415は、標準のスクリプトオブジェクトだけでなく、拡張メソッド又は拡張プロパティに応じた処理を実行するスクリプトオブジェクト(以下、「拡張スクリプトオブジェクト」という。)をも含む。拡張スクリプトオブジェクトは、スクリプトに応じた処理の実行要求をコントローラ201(自機又は他機を問わない。)に送信する。
【0035】
状態監視部416は、監視対象として指定されたアプリケーション301(自機のアプリケーション301又は他機のアプリケーション301を問わない。)の状態を定期的に監視する。アプリケーション301の状態の種類の一例として、起動中、停止中、ジョブの実行中、エラー発生中、及びジョブの未実行状態等が挙げられる。
【0036】
監視対象とされるアプリケーション301を特定するための情報は、監視設定ファイル記憶部403に記憶されている。監視設定ファイル記憶部403は、例えば、NVRAM254等を用いて実現可能である。
【0037】
通信制御部404は、通信I/F256又はNIC255等を用いて、自機のコントローラ201又は他機のコントローラ201との通信を制御する。例えば、通信制御部404は、拡張スクリプトに応じた処理の実行要求又は状態情報の取得要求等を、コントローラ201に送信する。
【0038】
一方、コントローラ201は、アプリケーション301、スクリプト処理実行部302、インストール制御部303、状態通知部304、及び通信制御部305等を有する。これら各部は、MEM−P231又はHDD233に記録されたプログラムが、CPU211に実行させる処理によって実現される。
【0039】
アプリケーション301は、コントローラ201に各種のジョブ又は処理等を実行させるためのプログラムである。同図では、アプリケーション301の一例として、印刷アプリ301a及びスキャンアプリ301b等が示されている。印刷アプリ301aは、印刷ジョブをコントローラ201に実行させる。スキャンアプリ301bは、スキャンジョブをコントローラ201に実行させる。
【0040】
スクリプト処理実行部302は、自機又は他機の操作パネル202より送信される、拡張スクリプトに応じた処理の実行要求に応じ、当該実行要求に対応するアプリケーション301に処理を実行させる。例えば、当該実行要求が印刷アプリ301aに対する実行要求であれば、スクリプト処理実行部302は、印刷アプリ301aに処理を実行させる。このように、拡張スクリプトとアプリケーション301とは対応関係を有する。すなわち、拡張スクリプトの特定のメソッド又は特定のプロパティは、特定のアプリケーション301に関する処理の実行要求又は設定情報に相当する。
【0041】
インストール制御部303は、アプリケーション301のインストール(追加)を制御する。すなわち、画像形成装置10には、アプリケーション301を随時インストール可能である。アプリケーション301のインストールによって、画像形成装置10の機能拡張を図ることができる。
【0042】
アプリケーション301のインストールパッケージファイルには、アプリケーション301に対応する拡張メソッド及び拡張プロパティ等を示すキーワードファイルが同梱されている。アプリケーション301がインストールされる際、当該アプリケーション301と共に、インストールパッケージに同梱されているキーワードファイルもコントローラ201にインストールされる。したがって、キーワードファイルは、アプリケーション301のインストールに応じて増加する。コントローラ201において、各キーワードファイルは、別個のファイルとして保管されてもよいし、一つのファイルに統合されて保管されてもよい。その後、操作パネル201の機器ブラウザ401は、コントローラ201で保管されているキーワードファイルを適当な時期に取得し、スクリプト解釈部414が利用可能なようにNVRAM254に記録する。但し、キーワードファイルは、Webサーバ装置30等において、一元的に管理されていてもよい。この場合、キーワードファイルは、Webサーバ装置30等より取得されればよい。
【0043】
状態通知部304は、操作部201からの状態情報の取得要求に応じ、アプリケーション301の状態を示す情報(状態情報)を返信する。
【0044】
通信制御部305は、通信I/F245又はNIC241等を用いて、自機の操作パネル202又は他機の操作パネル202との通信を制御する。例えば、通信制御部305は、拡張スクリプトに応じた処理の実行要求、又は状態情報の取得要求を、操作パネル202より受信する。
【0045】
続いて、或る画像形成装置10と他の画像形成装置10及びWebサーバ装置30との関係について説明する。図4は、本発明の実施の形態の装置間の関係を説明するための図である。同図では、画像形成装置10aと他の画像形成装置10及びWebサーバ装置30との関係が示されている。
【0046】
画像形成装置10aの操作パネル202は、Webサーバ装置30よりWebページを取得(ダウンロード)する(S1)。操作パネル202の機器ブラウザ401は、Webページに含まれている拡張スクリプトに応じた処理を、自機のコントローラ201、又は他機のコントローラ201に実行させる。すなわち、拡張スクリプトによって制御対象とされる画像形成装置10は、自機に限定されない。
【0047】
同図では、画像形成装置10aと他の装置との関係について示したが、画像形成装置10b又は画像形成装置10cと他の装置との関係についても同様である。
【0048】
以下、画像形成装置10の処理手順について説明する。図5は、機器ブラウザの初期化時に実行される処理手順の一例を説明するためのフローチャートである。初期化時とは、例えば、画像形成装置10の起動に応じて、機器ブラウザ401が起動されたときである。
【0049】
ステップS101において、機器ブラウザ401のスクリプト解釈部414は、拡張スクリプトに関する実行環境の生成処理を実行する。実行環境の生成とは、拡張スクリプトに応じた処理を実行可能な状態を生成することをいう。続いて、機器ブラウザ401の状態監視部416は、監視状態の構築処理を実行する(S102)。監視状態の構築とは、コントローラ201(自機又は他機を問わない)の状態を監視可能な状態を構築することをいう。
【0050】
なお、図5においては、一般的なWebブラウザによって実行される処理については、便宜上、省略されている。
【0051】
続いて、ステップS101の詳細について説明する。図6は、拡張スクリプトに関する実行環境の生成処理の処理手順の一例を説明するためのフローチャートである。
【0052】
ステップS201において、機器ブラウザ401のスクリプト解釈部414は、キーワードファイル記憶部402よりキーワードファイルを取得する。
【0053】
図7は、キーワードファイルの構成例を示す図である。同図のキーワードファイルは、1つのアプリケーション301のインストールに伴って、キーワードファイル記憶部402に追加されるキーワードファイルを示す。同図では、XML(eXtensible Markup Language)形式によってキーワードファイルが定義されている例を示す。但し、キーワードファイルは、CSV(Comma Separated Values)形式等、他の形式によって定義されてもよい。
【0054】
同図において、キーワードファイルは、TargetFunctionタグによって囲まれたTargetFunction要素e1、及びExtendedScriptタグによって囲まれたExtendedScript要素e2等を含む
TargetFunction要素e1は、主として、当該キーワードファイルが対象とするアプリケーション301(以下、「対象アプリケーション301」という。)を特定するための情報を含む。具体的には、TargetFunction要素e1は、server要素e11、port要素12、URI要素e13、及びmethod要素e14等を子要素として含む。
【0055】
server要素e11の値は、対象アプリケーション301が所在する画像形成装置10のIPアドレスである。IPアドレスとしては、自機のIPアドレスのみならず、他機のIPアドレスも指定可能である。port要素e12の値は、対象アプリケーション301に関する処理の実行要求の送信先のポート番号である。URI要素e13の値は、対象アプリケーション301に対する識別子としてのURI(Uniform Resource Identifier))である。method要素e14は、対象アプリケーション301に関する処理の実行要求を送信するためのHTTP(HyperText Transfer Protocol)のメソッドである。
【0056】
ExtendedScript要素e2は、拡張メソッド又は拡張プロパティを示す文字列が定義された要素である。ExtendedScript要素e2は、get要素e21、set要素e22、及びdo要素e23等を子要素として含む。
【0057】
get要素21の値は、対象アプリケーション301の設定情報の値を取得するための拡張メソッドを示す文字列(キーワード)である。set要素22の値は、対象アプリケーション301の設定情報の値を設定するための拡張メソッドを示す文字列(キーワード)である。do要素e23の値は、対象アプリケーション301に処理の実行させるための拡張メソッドを示す文字列(キーワード)である。
【0058】
このように、拡張メソッドを示すキーワードは、get要素、set要素、又はdo要素に分類されて定義される。get要素に係る拡張メソッドを、「設定値取得系メソッド」という。設定値取得系メソッドは、対象アプリケーション301の設定項目の設定値を取得するためのメソッドである。例えば、設定値取得系メソッドには、設定値の取得対象とする1以上の設定項目の名前(設定項目名)が引数に指定される。
【0059】
また、set要素に係る拡張メソッドを、「設定値設定系メソッド」という。設定値設定系メソッドは、対象アプリケーション301の設定項目の値を設定するためのメソッドである。例えば、設定値取得系メソッドには、「設定項目名=設定値」といった形式の1以上の引数が設定される。
【0060】
更に、do要素に係る拡張メソッドを、「実行処理通知系メソッド」という。実行処理通知系メソッドは、アプリケーション301に処理(ジョブ)の実行を要求するためのメソッドである。
【0061】
なお、ステップS201では、キーワードファイル記憶部402に記憶されている全てのキーワードファイルが取得される。
【0062】
続いて、スクリプト解釈部414は、取得された各キーワードファイルを解析する(S202)。ここでいう解析は、キーワードファイルを構成する各要素について、そのタグ名が示す意味に関連付けて要素の値を取得することをいう。
【0063】
続いて、スクリプト解釈部414は、キーワードファイルに含まれている拡張メソッド又は拡張プロパティごとに、対応するスクリプトオブジェクトをRAM252に生成(インスタンス化)する(S203)。
【0064】
例えば、図7の例では、getExFuncSetting、setExFuncSetting、及びdoExFunctionごとに、スクリプトオブジェクトがインスタンス化される。
【0065】
なお、拡張スクリプトオブジェクトは、設定値取得系オブジェクト、設定値設定系オブジェクト、及び実行処理通知系オブジェクトに分類される。設定値取得系オブジェクトは、設定値取得系型(設定値取得系クラス)のインスタンスである。設定値設定系オブジェクトは、設定値設定系型(設定値設定系クラス)のインスタンスである。実行処理通知系オブジェクトは、実行処理通知系型(実行処理通知系クラス)のインスタンスである。
【0066】
したがって、ステップS203では、各拡張メソッドに応じた型の拡張スクリプトオブジェクトがインスタンス化される。図7の例に基づけば、get要素e21が一つ有ることに応じて、設定値取得系オブジェクトが一つ生成される。当該設定値取得系オブジェクトは、get要素e21の値である、getExFuncSettingに関連付けられる。また、set要素e22が一つ有ることに応じて、設定値設定系オブジェクトが一つ生成される。当該設定値設定系オブジェクトは、set要素e22の値である、setExFuncSettingに関連付けられる。更に、do要素e23が一つ有ることに応じて、実行処理通知系オブジェクトが一つ生成される。当該実行処理通知系オブジェクトは、do要素e23の値である、doExFunctionに関連付けられる。拡張メソッドと、生成された拡張スクリプトオブジェクトとの対応関係は、スクリプト解釈部414の知識としてRAM252等を用いて保持される。
【0067】
ここで、設定値取得系型、設定値設定系型、及び実行処理通知系型は、対象アプリケーション301の種別に対して、共通化されている。例えば、対象アプリケーション301が、印刷アプリ301a、スキャンアプリ301b、又はICカードからの読み取り処理を実行する非図示のアプリケーション301等のいずれに関しても、それぞれのキーワードファイルに含まれているdo要素に応じて生成される拡張スクリプトオブジェクトは、同じ実行処理通知系型のインスタンスである。
【0068】
そうすると、各拡張スクリプトオブジェクトが、どのように対象アプリケーション301を識別するかが問題となる。そこで、各拡張スクリプトオブジェクトには、それぞれに対応するキーワードファイルのTargetFunction要素e1に含まれる各要素の値が設定される。それにより、各拡張スクリプトオブジェクトは、自らに対応するアプリケーション301を識別することができる。
【0069】
上記より、ステップS203では、例えば、図8に示されるような情報が、RAM252に生成される。
【0070】
図8は、キーワードファイルに基づいて生成される情報を示す図である。同図は、図7のキーワードファイルに対応する。同図において、コンテキストとは、拡張メソッド又は拡張プロパティとスクリプトオブジェクトとの対応情報を示す。
【0071】
なお、同図では、設定値取得系オブジェクトに関して、IPアドレス、ポート番号、URI、及びmethodが設定された例が示されているが、設定値設定系オブジェクト及び実行処理通知系オブジェクトについても、同じ値が設定される。
【0072】
但し、IPアドレス、ポート番号、URI、及びmethodは、必ずしもキーワードファイルにおいて、設定されていなくてもよい。Webページのスクリプト内において、拡張メソッドの引数の値としてこれらの値が設定されてもよい。この場合、拡張メソッドの実行時において、IPアドレス、ポート番号、URI、又はmethod等の値が定まる。このことは、Webページごとに、対象アプリケーション等を変更可能であることを意味する。
【0073】
ところで、図6では、標準のスクリプトに関する処理については便宜上省略されている。すなわち、標準のスクリプトについても、スクリプトオブジェクトの生成、及びメソッドとスクリプトオブジェクトとの対応付け等が行われる。但し、標準のスクリプトに関するメソッド等とスクリプトオブジェクトとの対応関係は、スクリプト解釈部414に予めハードコーディングされている。また、標準のスクリプトオブジェクトには、IPアドレス、ポート番号、URI、及びmethod等は設定されない。
【0074】
続いて、図5のステップS102の詳細について説明する。図9は、監視状態の構築処理の処理手順の一例を説明するためのフローチャートである。
【0075】
ステップS301において、機器ブラウザ401の状態監視部416は、監視設定ファイル記憶部403より、監視設定ファイルを取得する。
【0076】
図10は、監視設定ファイルの構成例を示す図である。同図では、XML形式によって監視設定ファイルが定義されている例を示す。但し、監視設定ファイルは、CSV形式等、他の形式によって定義されてもよい。
【0077】
同図において、監視設定ファイルは、TargetFunctionタグによって囲まれたTargetFunction要素e3を含む。TargetFunction要素e3は、主として、監視対象とするアプリケーション301(以下、「対象アプリケーション301」という。)を特定するための情報を含む。具体的には、TargetFunction要素e3は、server要素e31、port要素12、URI要素e33、及びmethod要素e34等を子要素として含む。
【0078】
server要素e31の値は、対象アプリケーション301が所在する画像形成装置10のIPアドレスである。IPアドレスとしては、自機のIPアドレスのみならず、他機のIPアドレスも指定可能である。port要素e32の値は、状態情報の取得要求の送信先のポート番号である。URI要素e33の値は、対象アプリケーション301に対する識別子としてのURIである。method要素e34の値は、対象アプリケーション301の状態情報の取得要求を送信するためのHTTPのメソッドである。
【0079】
監視設定ファイルは、キーワードファイルと同様、対象アプリケーション301のインストールパッケージに同梱されていてもよい。但し、IPアドレス等は、ユーザ環境に応じて異なるため、対象アプリケーション301のインストール後、ユーザ等によって適切な値に書き換えられればよい。
【0080】
なお、同図は、一つのアプリケーション301に関する監視設定ファイルを示す。ステップS301では、監視設定ファイル記憶部403に記憶されている全ての監視設定ファイルが取得される。
【0081】
続いて、状態監視部416は、取得された各監視設定ファイルの内容を解析する(S302)。ここでいう解析は、監視設定ファイルの内容を構成する各要素について、そのタグ名が示す意味に関連付けて要素の値を取得することをいう。
【0082】
続いて、状態監視部416は、取得された各値を自らに設定する(S303)。その結果、状態監視部416は、図11に示されるような状態となる。
【0083】
図11は、監視設定ファイルに基づいて構築される状態監視部の状態の例を示す図である。
【0084】
同図では、状態監視部416は、IPアドレス、ポート番号、URI、及びmethodが設定された様子が示されている。すなわち、状態監視部416に、監視対象(IPアドレス、ポート番号、URI)及び状態の取得方法(method)が設定されたことになる。
【0085】
続いて、状態監視部416は、設定された値によって識別されるアプリケーション301の状態の監視処理を実行する(S304)。
【0086】
続いて、ステップS304の詳細について説明する。図12は、アプリケーションの状態の監視処理の処理手順の一例を説明するためのフローチャートである。
【0087】
定期的な監視時間が到来すると(すなわち、前回の監視時から所定時間が経過すると)(S401でYes)、状態監視部416は、自らに設定された、IPアドレス及びポート番号によって識別される画像形成装置10の状態通知部304に対して、自らに設定されたURIを指定して、状態情報の取得要求を送信する(S402)。したがって、IPアドレスが自機を示す場合、当該取得要求は、自機の状態通知部304に送信される。IPアドレスが他機を示す場合、当該取得要求は他機の状態通知部304に送信される。
【0088】
当該取得要求を受信した状態通知部304は、当該取得要求に指定されたURIに対応するアプリケーション301の状態を確認する。状態の確認方法は、実装に応じて適切な方法が選択されればよい。なお、URIと各アプリケーション301との対応情報は、例えば、アプリケーション301のインストール時において、インストール制御部303によって、MEM−P231又はHDD233に記録されている。状態通知部304は、確認された状態を示す情報(状態情報)を、状態情報の取得要求に対する応答に含めて、状態監視部416に返信する。
【0089】
返信された状態情報が受信されると(S403でYes)、状態監視部416は、受信された状態情報を、例えば、自らに設定されているIPアドレス及びURIに関連付けてRAM252に記録する(S404)。同一のIPアドレス及びURIに係る状態情報が既に記録されている場合、当該状態情報は、新たに取得された状態情報によって、更新されてもよい。すなわち、監視結果として取得される状態情報は、画像形成装置10ごと、かつ、アプリケーション301ごとに記録される。
【0090】
一方、状態情報が受信されない場合、すなわち、状態情報の取得要求に対する応答が無い場合(S403でNo)、状態監視部416は、通信不能であることを示す状態情報を、例えば、自らに設定されているIPアドレス及びURIに関連付けてRAM252に記録する(S405)。
【0091】
なお、二台以上の画像形成装置10における複数のアプリケーション301の状態の監視対象とされてもよい。その場合、各アプリケーション301に関して、図12の処理が実行される。
【0092】
続いて、Webページに関して機器ブラウザ401が実行する処理を説明する。
【0093】
図13は、Webページに関して機器ブラウザが実行する処理手順の一例を説明するためのフローチャートである。例えば、操作パネル202において所定のボタンが押下されると、機器ブラウザ401は、ブラウザ画面を操作パネル202に表示させる。ブラウザ画面には、例えば、URLの入力領域やWebページの表示領域等を有する。
【0094】
ステップS401において、URLが指定されると、機器ブラウザ401のWebページ取得部411は、当該URL宛にWebページの取得要求を送信して、当該Webページを取得(ダウンロード)する(S402)。なお、URLの指定は、例えば、上記したURLの入力領域を介して行われてもよいし、予めNVRAM254等に記録されていてもよい。また、Webページの取得先は、URLに応じて、Webサーバ装置10又は画像形成装置10(自機又は他機を問わない。)とされる。
【0095】
図14は、Webページの定義例を示す図である。同図に示されるWebページ(HTMLデータ)の定義形式は、一般的なWebページのそれと同様である。但し、拡張スクリプトが含まれている点が、一般的なWebページと異なる。例えば、スクリプトsc1に含まれている各メソッドは、拡張メソッドである。
【0096】
続いて、機器ブラウザ401は、取得されたWebページが示す操作画面を操作パネル202(Webページ表示領域)に表示させる(S403)。より詳しくは、Webページは、パース部412によってパースされる。描画部413は、パース結果に基づいて、操作画面を描画(表示)する。例えば、ステップS501において指定されたURLが、スキャンジョブ用の操作画面を表示させるWebページに対するURLであれば、ステップS403では、スキャンジョブ用の操作画面が表示される。
【0097】
続いて、機器ブラウザ401は、イベントの発生を待機する(S504)。例えば、Webページに基づいて表示された操作画面上の表示部品(ボタン等)が押下(又はタッチ)され、当該表示部品に関連付けられている情報がリンクであれば、リンク先のURLに関してステップS502移行が実行される。
【0098】
一方、表示されているWebページのスクリプトに関連付けられているイベントが発生した場合、スクリプト解釈部414は、当該スクリプト内のメソッド等に対応するスクリプトオブジェクトを呼び出す(S505)。メソッド等に対応するスクリプトオブジェクトの呼び出しは、図8において説明したコンテキストに基づいて実行される。スクリプトオブジェクトには、対応するメソッドに指定された引数の値等が渡される。
【0099】
なお、スクリプトに関連付けられているイベントとは、例えば、Webページに基づいて表示されている操作画面上の表示部品の操作や、操作パネル202上の所定のハードボタン(スタートボタン)の操作等が挙げられる。
【0100】
呼び出されたスクリプトオブジェクトが、標準のスクリプトオブジェクトである場合(S506でNo)、当該スクリプトオブジェクトは、スクリプトに応じた処理を操作パネル202に実行させる(S507)。
【0101】
一方、呼び出されたスクリプトオブジェクトが、拡張スクリプトオブジェクトである場合(S506でYes)、当該拡張スクリプトオブジェクトは、自らに設定されているIPアドレス及びURIに係るアプリケーション301の状態情報を確認する(S508)。すなわち、状態監視部416によってRAM252に記録されている状態情報のうち、当該拡張スクリプトオブジェクトに設定されているIPアドレス及びURIに関連付けられている状態情報が参照される。
【0102】
当該状態情報に基づいて、対象アプリケーション301は正常に動作中であると判定される場合(S509でYes)、当該拡張スクリプトオブジェクトは、自らに設定されている、IPアドレス及びポート番号宛に、自らに設定されているURI及びmethodを指定して、HTTPリクエスト(対象アプリケーション301に関する処理要求)を、通信制御部404を用いて送信する(S510)。例えば、当該拡張オブジェクトが設定値取得系オブジェクトである場合、当該設定値取得系オブジェクトに対応する設定値取得系メソッドの引数に指定されている設定項目名の設定値の取得要求が送信される。当該拡張オブジェクトが設定値設定系オブジェクトである場合、当該設定値設定系オブジェクトに対応する設定値設定系メソッドの引数に指定された設定項目名に対する設定値の設定要求が送信される。当該拡張オブジェクトが実行処理通知系オブジェクトである場合、対象アプリケーション301の処理の実行要求が送信される。
【0103】
ところで、図14のスクリプトsc1では、同じ拡張メソッド(doExFunction)が3回呼び出されている。この場合、当該拡張メソッドに対応する同一の拡張スクリプトオブジェクトが3回呼び出される。但し、拡張メソッドmt1には、引数は指定されていない。一方、メソッドmt2及びmt3には、それぞれ異なるIPアドレスが指定されている。メソッドmt2及びmt3に指定されたIPアドレスは、メソッドmt2及びmt3の実行時において、拡張スクリプトオブジェクトに通知される。拡張スクリプトオブジェクトは、当該IPアドレスを、キーワードファイルに基づいて設定されたIPアドレスに対して優先させる。すなわち、メソッドmt1に関しては、キーワードファイルの指定されたIPアドレスに係る画像形成装置10が処理要求の送信先となる。メソッドmt2及びmt3に関しては、メソッドmt2又はmt3の引数に指定されたIPアドレスに係る画像形成装置10が処理要求の送信先となる。
【0104】
拡張メソッドの引数の値が、キーワードファイルの値よりも優先されるのは、ポート番号、URI、及びmethod等についても同様である。
【0105】
なお、図14では、第一引数はIPアドレスであるという規則が有ることが前提とされる。引数の並び順の柔軟性を確保するために、"IPアドレス=xxx.xxx.xxx.xxx"といった形式で、引数が指定されてもよい。
【0106】
続いて、ステップS510において送信された、対象アプリケーション301に関する処理要求を受信した画像形成装置10が実行する処理手順について説明する。
【0107】
図15は、対象アプリケーションに関する処理要求の受信に応じて実行される処理手順の一例を説明するためのフローチャートである。
【0108】
各画像形成装置10のコントローラ201のスクリプト処理実行部302は、通信制御部305を介して、処理の実行要求に係るHTTPリクエストの受信を待機している(S601)。通信制御部305によってHTTPリクエストが受信されると(S601でYes)、スクリプト処理実行部302は、当該HTTPリクエストにおいて指定されているURIによって識別される対象アプリケーション301に対して、処理要求に応じた処理を実行する(S602)。例えば、設定値取得系の処理要求であれば、スクリプト処理実行部302は、設定値の取得要求を対象アプリケーション301に入力する。設定値設定系の処理要求であれば、スクリプト処理実行部302は、設定値の設定要求を対象アプリケーション301に入力する。実行処理通知系の処理要求であれば、スクリプト処理実行部302は、処理に実行要求を対象アプリケーション301に入力する。
【0109】
すなわち、スクリプト処理実行部302は、拡張スクリプトオブジェクトがどのような処理要求を送信するかを予め知っており、当該処理要求に応じて適切な処理が実行可能なように実装されている。
【0110】
スクリプト処理実行部302は、処理の実行結果を処理要求元の拡張スクリプトオブジェクトに返信する(S603)。例えば、設定値取得系あれば、取得された設定値が返信される。設定値設定系であれば、設定値の設定の成否を示す情報が返信される。実行処理通知系の処理要求であれば、対象アプリケーション301による処理の実行結果が返信される。
【0111】
上記において説明した処理を各画像形成装置10が実行することによって、画像形成装置10間に、例えば、図16に示されるような関係が形成される。
【0112】
図16は、画像形成装置間に形成される関係の一例を示す図である。同図では、画像形成装置10aが、画像形成装置10b及び10cのアプリケーション301の状態を監視している例が示されている。また、画像形成装置10aが、Webページに含まれている拡張スクリプトに基づいて、画像形成装置10b及び10cを制御している例が示されている。
【0113】
なお、図16に示される関係は、画像形成装置10aからの一方向ではなく、各画像形成装置10間の双方向に形成されてもよい。
【0114】
上述したように、本実施の形態によれば、画像形成装置10は、Webページ内のスクリプトに基づいて、他の画像形成装置10を制御する(他の画像形成装置10に処理を実行させる)ことができる。
【0115】
また、拡張スクリプトは、キーワードファイルに基づいて判定される。すなわち、いずれが拡張スクリプトであるか否かは、機器ブラウザ401にハードコーディングされていない。したがって、画像形成装置10に新たなアプリケーション301がインストール(追加)された場合、当該アプリケーション301(当該アプリケーション301に係るURI)に対応する拡張スクリプトを、キーワードファイルによって容易に追加することができる。
【0116】
また、アプリケーション301の追加に応じた機器ブラウザ401のソースコードの改変の必要性は非常に低いため、機器ブラウザ401の品質を安定させることができる。
【0117】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0118】
1 情報処理システム
10a、10b、10c 画像形成装置
30 Webサーバ装置
40 ネットワーク
201 コントローラ
202 操作パネル
203 ファクシミリコントロールユニット
211 CPU
212 ASIC
221 NB
222 SB
231 MEM−P
232 MEM−C
233 HDD
234 メモリカードスロット
235 メモリカード
241 NIC
242 USBデバイス
243 IEEE1394デバイス
244 セントロニクスデバイス
245 通信I/F
251 CPU
252 RAM
253 ROM
254 NVRAM
255 NIC
256 通信I/F
301 アプリケーション
301a 印刷アプリ
301b スキャンアプリ
302 スクリプト処理実行部
303 インストール制御部
304 状態通知部
305 通信制御部
401 機器ブラウザ
402 キーワードファイル記憶部
403 監視設定ファイル記憶部
404 通信制御部
411 Webページ取得部
412 パース部
413 描画部
414 スクリプト解釈部
415 スクリプト実装部
416 状態監視部
【先行技術文献】
【特許文献】
【0119】
【特許文献1】特開2006−352845号公報

【特許請求の範囲】
【請求項1】
プログラムを追加可能な他の画像形成装置とネットワークを介して接続される画像形成装置であって、
Webページを表示手段に表示させる表示制御手段と、
前記プログラムに対応する文字列群を記憶する記憶手段と、
前記Webページに含まれているスクリプトについて、前記記憶手段が記憶する文字列を含む場合は、該文字列に対応した前記プログラムに関する処理要求を前記他の画像形成装置に送信する送信手段とを有する画像形成装置。
【請求項2】
前記記憶手段には、前記文字列に関連付けられて前記他の画像形成装置の識別情報が記憶されており、
前記送信手段は、前記文字列に対応した前記プログラムに関する処理要求を、当該文字列に関連付けられて前記記憶手段に記憶されている前記識別情報に係る前記画像形成装置に送信する請求項1記載の画像形成装置。
【請求項3】
前記送信手段は、前記スクリプトに前記他の画像形成装置の識別情報が含まれている場合、前記文字列に対応した前記プログラムに関する処理要求を、前記スクリプトに含まれている前記識別情報に係る前記画像形成装置に送信する請求項1又は2記載の画像形成装置。
【請求項4】
プログラムを追加可能な他の画像形成装置とネットワークを介して接続される画像形成装置が、
Webページを表示手段に表示させる表示制御手順と、
前記Webページに含まれているスクリプトについて、前記プログラムに対応する文字列群を記憶する記憶手段が記憶する文字列を含む場合は、該文字列に対応した前記プログラムに関する処理要求を前記他の画像形成装置に送信する送信手順とを実行する情報処理方法。
【請求項5】
前記記憶手段には、前記文字列に関連付けられて前記他の画像形成装置の識別情報が記憶されており、
前記送信手順は、前記文字列に対応した前記プログラムに関する処理要求を、当該文字列に関連付けられて前記記憶手段に記憶されている前記識別情報に係る前記画像形成装置に送信する請求項4記載の情報処理方法。
【請求項6】
前記送信手順は、前記スクリプトに前記他の画像形成装置の識別情報が含まれている場合、前記文字列に対応した前記プログラムに関する処理要求を、前記スクリプトに含まれている前記識別情報に係る前記画像形成装置に送信する請求項4又は5記載の情報処理方法。
【請求項7】
プログラムを追加可能な他の画像形成装置とネットワークを介して接続される画像形成装置に、
Webページを表示手段に表示させる表示制御手順と、
前記Webページに含まれているスクリプトについて、前記プログラムに対応する文字列群を記憶する記憶手段が記憶する文字列を含む場合は、該文字列に対応した前記プログラムに関する処理要求を前記他の画像形成装置に送信する送信手順とを実行させる情報処理プログラム。
【請求項8】
前記記憶手段には、前記文字列に関連付けられて前記他の画像形成装置の識別情報が記憶されており、
前記送信手順は、前記文字列に対応した前記プログラムに関する処理要求を、当該文字列に関連付けられて前記記憶手段に記憶されている前記識別情報に係る前記画像形成装置に送信する請求項7記載の情報処理プログラム。
【請求項9】
前記送信手順は、前記スクリプトに前記他の画像形成装置の識別情報が含まれている場合、前記文字列に対応した前記プログラムに関する処理要求を、前記スクリプトに含まれている前記識別情報に係る前記画像形成装置に送信する請求項7又は8記載の情報処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2012−135907(P2012−135907A)
【公開日】平成24年7月19日(2012.7.19)
【国際特許分類】
【出願番号】特願2010−288621(P2010−288621)
【出願日】平成22年12月24日(2010.12.24)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】