(57)【要約】【課題】適切なユーザインターフェイスを容易に作成できる。【解決手段】機器を操作するための情報処理装置であって、ユーザに対して情報を表示するとともにユーザからの入力を受け付ける操作表示部と、ブラウザプログラムを実行するプロセッサを有する情報処理部と、を備え、情報処理部は、プロセッサがブラウザプログラムを実行することにより機能し、機器を操作するためのユーザインターフェイスを操作表示部から提供する操作プログラムおよび変換スクリプトを取得する通信部と、プロセッサがブラウザプログラム上で変換スクリプトを実行することにより機能し、機器の状態を解析し、機器の状態に応じたイベントを発行する変換スクリプト処理部と、プロセッサがブラウザプログラム上で操作プログラムを実行することにより機能し、イベントが発行されたことに応じてイベントに対応したユーザインターフェイスを操作表示部から提供する表示制御部と、を有する。【選択図】図１
2015201167.tif 000002
【特許請求の範囲】
【請求項１】
機器を操作するための情報処理装置であって、
ユーザに対して情報を表示するとともに前記ユーザからの入力を受け付ける操作表示部と、
ブラウザプログラムを実行するプロセッサを有する情報処理部と、
を備え、
前記情報処理部は、
前記プロセッサが前記ブラウザプログラムを実行することにより機能し、前記機器を操作するためのユーザインターフェイスを前記操作表示部から提供する操作プログラムおよび変換スクリプトを取得する通信部と、
前記プロセッサが前記ブラウザプログラム上で前記変換スクリプトを実行することにより機能し、前記機器の状態を解析し、前記機器の状態に応じたイベントを発行する変換スクリプト処理部と、
前記プロセッサが前記ブラウザプログラム上で前記操作プログラムを実行することにより機能し、前記イベントが発行されたことに応じて前記イベントに対応した前記ユーザインターフェイスを前記操作表示部から提供する表示制御部と、
を有する情報処理装置。
【請求項２】
前記情報処理部は、前記ブラウザプログラムから前記機器の動作を制御するためのプログラムインターフェイス部をさらに有し、
前記変換スクリプト処理部は、ユーザによる前記ユーザインターフェイスに対する動作指示に応じてジョブの生成要求を前記プログラムインターフェイス部に送信し、
前記プログラムインターフェイス部は、前記ジョブの生成要求を受信したことに応じて、前記ジョブを前記機器に実行させる
請求項１に記載の情報処理装置。
【請求項３】
前記プログラムインターフェイス部は、前記ジョブを識別するジョブＩＤを前記変換スクリプト処理部に送信し、
前記変換スクリプト処理部は、前記ジョブＩＤを受信して保存する
請求項２に記載の情報処理装置。
【請求項４】
前記情報処理部は、前記プログラムインターフェイス部から前記ジョブの実行状態を取得して、前記ジョブの実行状態を示すジョブ情報を含む状態データを前記ブラウザプログラムに対して通知する状態通知部をさらに有し、
前記変換スクリプト処理部は、前記状態データに基づき前記ジョブの実行状態に応じたイベントを発行する
請求項３に記載の情報処理装置。
【請求項５】
前記変換スクリプト処理部は、
前記ジョブＩＤ毎に前記状態データに含まれる前記ジョブ情報を保存し、
前記状態データに含まれるジョブ情報を取得したことに応じて、同一のジョブＩＤに対応して保存された直前のジョブ情報と比較して変化がある場合に、前記ジョブの実行状態に応じたイベントを発行する
請求項４に記載の情報処理装置。
【請求項６】
前記通信部は、制御スクリプトをさらに取得し、
前記情報処理部は、
前記プロセッサが前記ブラウザプログラム上で前記制御スクリプトを実行することにより機能し、前記イベントが発行されたことに応じて前記イベントに対応した前記ユーザインターフェイスを生成するために用いられるユーザインターフェイス情報を発行する制御スクリプト処理部をさらに有し、
前記表示制御部は、前記ユーザインターフェイス情報が発行されたことに応じて前記ユーザインターフェイス情報に従った前記ユーザインターフェイスを前記操作表示部から提供する
請求項１から５の何れか１項に記載の情報処理装置。
【請求項７】
前記情報処理部は、前記ブラウザプログラムから前記機器の動作を制御するためのプログラムインターフェイス部をさらに有し、
前記変換スクリプト処理部は、ユーザによる前記ユーザインターフェイスに対する動作指示に応じてジョブの生成要求を前記プログラムインターフェイス部に送信し、
前記プログラムインターフェイス部は、前記ジョブの生成要求を受信したことに応じて、前記ジョブを前記機器に実行させる
請求項６に記載の情報処理装置。
【請求項８】
前記プログラムインターフェイス部は、前記ジョブを識別するジョブＩＤを前記変換スクリプト処理部に送信し、
前記変換スクリプト処理部は、前記ジョブＩＤを受信して保存する
請求項７に記載の情報処理装置。
【請求項９】
前記情報処理部は、前記プログラムインターフェイス部から前記ジョブの実行状態を取得して、前記ジョブの実行状態を示すジョブ情報を含む状態データを前記ブラウザプログラムに対して通知する状態通知部をさらに有し、
前記変換スクリプト処理部は、前記状態データに基づき前記ジョブの実行状態に応じたイベントを発行する
請求項８に記載の情報処理装置。
【請求項１０】
前記変換スクリプト処理部は、
前記ジョブＩＤ毎に前記状態データに含まれる前記ジョブ情報を保存し、
前記状態データに含まれるジョブ情報を取得したことに応じて、同一のジョブＩＤに対応して保存された直前のジョブ情報と比較して変化がある場合に、前記ジョブの実行状態に応じたイベントを発行する
請求項９に記載の情報処理装置。
【請求項１１】
前記通信部は、管理スクリプトをさらに取得し、
前記情報処理部は、
前記プロセッサが前記ブラウザプログラム上で前記管理スクリプトを実行することにより機能し、前記変換スクリプト処理部から発行されるイベントの発行順序を管理する管理スクリプト処理部を
さらに有する
請求項６から１０の何れか１項に記載の情報処理装置。
【請求項１２】
前記管理スクリプト処理部は、
前記変換スクリプト処理部により生成された前記イベントが、発行済みのイベントよりも前に発行すべきイベントである場合、生成された前記イベントを廃棄する
請求項１１に記載の情報処理装置。
【請求項１３】
前記管理スクリプト処理部は、
ジョブ毎に、発行されるべき複数のイベントと、それぞれのイベントの発行順序を示す順序値とを対応付けた管理テーブルを保持し、
前記変換スクリプト処理部により生成された前記イベントの順序値と、発行済みのイベントに対応付けられた順序値とを比較して、生成された前記イベントが、発行済みのイベントより前に発行すべきイベントであるか否かを判断する
請求項１２に記載の情報処理装置。
【請求項１４】
機器を操作するための情報処理装置により実行される情報処理方法であって、
前記情報処理装置は、
ユーザに対して情報を表示するとともに前記ユーザからの入力を受け付ける操作表示部と、
ブラウザプログラムを実行するプロセッサを有する情報処理部と、
を備え、
前記プロセッサが前記ブラウザプログラムを実行することにより、前記機器を操作するためのユーザインターフェイスを前記操作表示部から提供する操作プログラムおよび変換スクリプトを取得する通信ステップと、
前記プロセッサが前記ブラウザプログラム上で前記変換スクリプトを実行することにより、前記機器の状態を解析し、前記機器の状態に応じたイベントを発行するスクリプト処理ステップと、
前記プロセッサが前記ブラウザプログラム上で前記操作プログラムを実行することにより、前記イベントが発行されたことに応じて前記イベントに対応した前記ユーザインターフェイスを前記操作表示部から提供する表示制御ステップと、
を含む情報処理方法。
【請求項１５】
前記通信ステップでは、制御スクリプトをさらに取得し、
前記プロセッサが前記ブラウザプログラム上で前記制御スクリプトを実行することにより、前記イベントが発行されたことに応じて前記イベントに対応した前記ユーザインターフェイスを生成するために用いられるユーザインターフェイス情報を発行する制御スクリプト処理ステップをさらに含み、
前記表示制御ステップでは、前記ユーザインターフェイス情報が発行されたことに応じて前記ユーザインターフェイス情報に従った前記ユーザインターフェイスを前記操作表示部から提供する
請求項１４に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器を操作するための情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
ウェブページを閲覧するためのブラウザプログラムから操作が可能な複合機が知られている。このような複合機は、スキャナまたはプリンタ等の機能をブラウザプログラムから制御するためのＡＰＩ（Application  Programming  Interface）を有している。また、このような複合機では、ブラウザプログラムが、スキャナおよびプリンタ等の状態変化をイベントとして受け取ることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、スキャナ等の状態変化を通知するイベントには、スキャナおよびプリンタ等に関する詳細な情報が含まれている。このため、ブラウザプログラムからスキャナおよびプリンタ等を操作するための操作用のウェブページを開発するには、スキャナおよびプリンタの詳しい知識が必要であり、開発が困難であった。
【０００４】
本発明は、上記に鑑みてなされたものであって、機器に対する詳細な知識が無くても、機器の状態に対応した適切なユーザインターフェイスを作成できる情報処理装置および情報処理方法を提供する。
【課題を解決するための手段】
【０００５】
上述した課題を解決し、目的を達成するために、本発明は、機器を操作するための情報処理装置であって、ユーザに対して情報を表示するとともに前記ユーザからの入力を受け付ける操作表示部と、ブラウザプログラムを実行するプロセッサを有する情報処理部と、を備え、前記情報処理部は、前記プロセッサが前記ブラウザプログラムを実行することにより機能し、前記機器を操作するためのユーザインターフェイスを前記操作表示部から提供する操作プログラムおよび変換スクリプトを取得する通信部と、前記プロセッサが前記ブラウザプログラム上で前記変換スクリプトを実行することにより機能し、前記機器の状態を解析し、前記機器の状態に応じたイベントを発行する変換スクリプト処理部と、前記プロセッサが前記ブラウザプログラム上で前記操作プログラムを実行することにより機能し、前記イベントが発行されたことに応じて前記イベントに対応した前記ユーザインターフェイスを前記操作表示部から提供する表示制御部と、を有する。
【発明の効果】
【０００６】
本発明によれば、機器に対する詳細な知識が無くても、機器の状態に対応した適切なユーザインターフェイスを作成できるという効果を奏する。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１実施形態に係る画像形成システムの構成を示す図である。
【図２】図２は、第１実施形態に係る画像形成システムのハードウェア構成を示す図である。
【図３】図３は、第１実施形態に係る画像形成システムの処理開始時のシーケンス図である。
【図４】図４は、第１実施形態に係る画像形成システムのジョブの生成時のシーケンス図である。
【図５】図５は、ジョブの生成時の変換スクリプト処理部の処理フローを示す図である。
【図６】図６は、ジョブの生成要求のレスポンスに含まれるジョブＩＤの一例を示す図である。
【図７】図７は、ジョブリストの一例を示す図である。
【図８】図８は、スキャナの実行状態を示すジョブ情報の一例を示す図である。
【図９】図９は、プリンタの実行状態を示すジョブ情報の一例を示す図である。
【図１０】図１０は、第１実施形態に係る画像形成システムのイベント発行時のシーケンス図である。
【図１１】図１１は、イベント発行時の変換スクリプト処理部の処理フローを示す図である。
【図１２】図１２は、スキャナの現在のジョブ情報および直前のジョブ情報を示す図である。
【図１３】図１３は、プリンタの現在のジョブ情報および直前のジョブ情報を示す図である。
【図１４】図１４は、スキャナにより実行されているジョブに応じたイベントの一例を示す図である。
【図１５】図１５は、プリンタにより実行されているジョブに応じたイベントの一例を示す図である。
【図１６】図１６は、ジョブＩＤに対応付けられたイベントの一例を示す図である。
【図１７】図１７は、スキャナのジョブに対応するイベントの生成フローの一例を示す図である。
【図１８】図１８は、プリンタのジョブに対応するイベントの生成フローの一例を示す図である。
【図１９】図１９は、ジョブの処理中に発行されるイベントに応じて表示されるユーザインターフェイスの一例を示す図である。
【図２０】図２０は、ユーザによる操作の待機中に発行されるイベントに応じて表示されるユーザインターフェイスの一例を示す図である。
【図２１】図２１は、ジョブがキャンセルされた場合に発行されるイベントに応じて表示されるユーザインターフェイスの一例を示す図である。
【図２２】図２２は、第１の変形例に係る画像形成システムの構成を示す図である。
【図２３】図２３は、第２の変形例に係る画像形成装置の構成を示す図である。
【図２４】図２４は、第２実施形態に係る画像形成システムの構成を示す図である。
【図２５】図２５は、第２実施形態に係る画像形成システムの処理開始時のシーケンス図である。
【図２６】図２６は、第２実施形態に係る画像形成システムのジョブの生成時のシーケンス図である。
【図２７】図２７は、ジョブ生成時の制御スクリプト処理部の処理フローを示す図である。
【図２８】図２８は、スキャン中のユーザインターフェイスを生成するために用いられるユーザインターフェイス情報の一例を示す図である。
【図２９】図２９は、第２実施形態に係る画像形成システムのイベント発行時のシーケンス図である。
【図３０】図３０は、イベント発行時の制御スクリプト処理部の処理フローを示す図である。
【図３１】図３１は、イベント発行時の制御スクリプト処理部のユーザインターフェイス情報の生成処理フローを示す図である。
【図３２】図３２は、ユーザの操作待ちイベントに対するユーザインターフェイスを生成するために用いられるユーザインターフェイス情報の一例を示す図である。
【図３３】図３３は、ジャム発生イベントに対するユーザインターフェイスを生成するために用いられるユーザインターフェイス情報の一例を示す図である。
【図３４】図３４は、第１の変形例に係る画像形成システムの構成を示す図である。
【図３５】図３５は、第２の変形例に係る画像形成システムの構成を示す図である。
【図３６】図３６は、第３の変形例に係る画像形成装置の構成を示す図である。
【図３７】図３７は、第３実施形態に係る画像形成システムの構成を示す図である。
【図３８】図３８は、第３実施形態に係る画像形成システムの処理開始時のシーケンス図である。
【図３９】図３９は、第３実施形態に係る画像形成システムのイベント発行時のシーケンス図である。
【図４０】図４０は、イベント発行時の変換スクリプト処理部および管理スクリプト処理部の処理フローを示す図である。
【図４１】図４１は、スキャナジョブにおいて発行されるイベントの発行順序の一例を示す図である。
【図４２】図４２は、スキャナジョブにおいて発行されるイベントと順序値との対応関係を表すテーブルを示す図である。
【発明を実施するための形態】
【０００８】
以下に、本発明に係る実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【０００９】
（第１実施形態）
図１は、第１実施形態に係る画像形成システム１０の構成を示す図である。画像形成システム１０は、サーバ装置２０と、画像形成装置３０とを備える。
【００１０】
サーバ装置２０と画像形成装置３０とは、ネットワーク１２を介して接続される。ネットワーク１２は、一例として、公衆に接続されたインターネット等のネットワークであってもよいし、社内等のローカルネットワークであってもよい。また、ネットワーク１２は、有線であっても無線であってもよい。
【００１１】
サーバ装置２０は、画像形成装置３０からアクセスがされる。サーバ装置２０は、ネットワーク１２を介して、画像形成装置３０に対して情報を送信し、画像形成装置３０から情報を受信する。
【００１２】
サーバ装置２０は、ネットワークＩ／Ｆ２１と、情報提供部２２とを有する。ネットワークＩ／Ｆ２１は、ネットワーク１２を介して他の装置と情報を送受信するためのインターフェイスである。情報提供部２２は、ネットワーク１２を介して、サーバ装置２０に対して操作プログラムおよび変換スクリプトを提供する。
【００１３】
操作プログラムおよび変換スクリプトは、ブラウザプログラムからダウンロードされ、ブラウザプログラム上で実行されるプログラムである。本実施形態においては、操作プログラムは、ＨＴＭＬ（HyperText  Markup  Language）で記述されたＨＴＭＬファイルである。また、変換スクリプトは、ブラウザプログラム上で実行されるスクリプトプログラムである。
【００１４】
画像形成装置３０は、ネットワークＩ／Ｆ３１と、スキャナ３２と、プリンタ３３と、操作表示部３４と、情報処理部３５とを有する。ネットワークＩ／Ｆ３１は、ネットワーク１２を介して他の装置と情報を送受信するためのインターフェイスである。
【００１５】
スキャナ３２は、データに応じた文字および画像等を用紙等に印刷する。プリンタ３３は、用紙等に印刷された文字および画像等を読み取ってデータに変換する。なお、画像形成装置３０は、スキャナ３２またはプリンタ３３の一方のみを備える構成であってもよい。また、画像形成装置３０は、情報処理装置により操作がされる他の機器を備える構成であってもよい。
【００１６】
操作表示部３４は、ユーザに対して情報を表示するとともにユーザからの入力を受け付ける。操作表示部３４は、一例として、タッチパネルである。また、操作表示部３４は、操作ボタン、マウス、キーボード等を有してもよい。
【００１７】
情報処理部３５は、プロセッサを有する情報処理装置である。情報処理部３５は、ユーザによる操作表示部３４に対する操作に応じて、スキャナ３２およびプリンタ３３を制御する。情報処理部３５は、ブラウザプログラムを実行し、ブラウザプログラム上でサーバ装置２０から操作プログラム（例えばＨＴＭＬファイル）および変換スクリプトをダウンロードする。そして、情報処理部３５は、操作プログラムおよび変換スクリプトをブラウザプログラム上で実行することにより、スキャナ３２およびプリンタ３３を操作するためのユーザインターフェイスを提供する。
【００１８】
より詳しくは、情報処理部３５は、ブラウザ部４１と、プログラムインターフェイス部４２と、状態通知部４３とを有する。ブラウザ部４１は、プロセッサがブラウザプログラムを実行することにより機能する。
【００１９】
プログラムインターフェイス部４２は、ブラウザプログラムからスキャナ３２およびプリンタ３３の動作を制御するためのソフトウェアインターフェイスである。プログラムインターフェイス部４２は、ブラウザプログラムからのジョブの生成要求に応じて、ジョブをスキャナ３２およびプリンタ３３に実行させる。また、プログラムインターフェイス部４２は、ジョブをスキャナ３２およびプリンタ３３に実行させた場合、ジョブを識別するジョブＩＤをプログラムに送信する。
【００２０】
状態通知部４３は、プログラムインターフェイス部４２からスキャナ３２およびプリンタ３３の状態を取得する。そして、状態通知部４３は、取得した状態を示す状態データを生成して、ブラウザプログラムに通知する。
【００２１】
本実施形態においては、状態通知部４３は、プログラムインターフェイス部４２から、スキャナ３２またはプリンタ３３によるジョブの実行状態を取得する。そして、状態通知部４３は、ジョブの実行状態を示すジョブ情報を含む状態データをブラウザプログラムに対して通知する。
【００２２】
ブラウザ部４１は、通信部５１と、表示制御部５２と、入力部５３と、受信部５４と、変換スクリプト処理部５８とを含む。
【００２３】
通信部５１は、プロセッサがブラウザプログラムを実行することにより機能する。通信部５１は、操作プログラム（例えばＨＴＭＬファイル）および変換スクリプトを、サーバ装置２０から取得する。操作プログラムおよび変換スクリプトは、スキャナ３２およびプリンタ３３を操作するためのユーザインターフェイスを、操作表示部３４から提供するプログラムである。
【００２４】
表示制御部５２は、プロセッサがブラウザプログラム上で操作プログラムを実行することにより機能する。表示制御部５２は、操作表示部３４の表示を制御する。より具体的には、表示制御部５２は、ユーザインターフェイスを操作表示部３４上に表示させる。
【００２５】
入力部５３は、プロセッサがブラウザプログラムを実行することにより機能する。入力部５３は、ユーザによる操作表示部３４に対する操作を入力する。さらに、入力部５３は、プロセッサがブラウザプログラム上で操作プログラム（例えばＨＴＭＬファイル）を実行することにより、操作表示部３４に表示したユーザインターフェイスに対する操作を入力する。
【００２６】
受信部５４は、プロセッサがブラウザプログラムを実行することにより機能する。受信部５４は、状態通知部４３から通知された状態データを受信する。
【００２７】
変換スクリプト処理部５８は、プロセッサがブラウザプログラム上で変換スクリプトを実行することにより機能する。変換スクリプト処理部５８は、ユーザによるユーザインターフェイスに対する動作指示に応じてジョブの生成要求をプログラムインターフェイス部４２に送信する。また、変換スクリプト処理部５８は、ジョブの生成要求をプログラムインターフェイス部４２に送信したことに応じて、プログラムインターフェイス部４２からジョブＩＤを受信して保存する。
【００２８】
また、変換スクリプト処理部５８は、受信部５４が受信した状態データに基づき、スキャナ３２またはプリンタ３３の状態を解析する。そして、変換スクリプト処理部５８は、スキャナ３２またはプリンタ３３の状態に応じたイベントを発行する。
【００２９】
本実施形態においては、変換スクリプト処理部５８は、ジョブ情報を含む状態データに基づきスキャナ３２またはプリンタ３３によるジョブの実行状態を解析し、ジョブの実行状態に応じたイベントを発行する。より具体的には、変換スクリプト処理部５８は、ジョブＩＤ毎に状態データに含まれるジョブ情報を保存し、状態データに含まれるジョブ情報を取得したことに応じて、同一のジョブＩＤに対応して保存された直前のジョブ情報と比較して変化があるか否かを解析する。そして、変換スクリプト処理部５８は、ジョブ情報に変化があった場合に、ジョブの実行状態に応じたイベントを発行する。
【００３０】
そして、表示制御部５２は、変換スクリプト処理部５８からイベントが発行されたことに応じて、イベントに対応したユーザインターフェイスを操作表示部３４から提供する。
【００３１】
図２は、第１実施形態に係る画像形成システム１０のハードウェア構成を示す図である。サーバ装置２０の情報提供部２２は、一例として、ＣＰＵ（Central  Processing  Unit）１０１等のプロセッサと、ＲＡＭ（Random  Access  Memory）およびＲＯＭ（Read  Only  Memory）等のメモリ１０２と、ＨＤＤ（Hard  Disk  Drive）等の記憶装置１０３とを備える。このような情報提供部２２は、ＣＰＵ１０１等のプロセッサが記憶装置１０３に予め記憶されたオペレーティングシステム等を実行することにより、操作プログラムおよび変換スクリプトを画像形成装置３０に対して提供することができる。
【００３２】
画像形成装置３０の情報処理部３５は、ＣＰＵ１１１等のプロセッサと、ＲＡＭおよびＲＯＭ等のメモリ１１２と、ＨＤＤ等の記憶装置１１３と、操作表示部３４とのインターフェイスであるデバイスＩ／Ｆ１１４とを備える。このような情報処理部３５は、ＣＰＵ１１１等のプロセッサが、記憶装置１１３に予め記憶されたオペレーティングシステムおよびブラウザプログラムをメモリ１１２上に展開して実行する。
【００３３】
そして、ＣＰＵ１１１等のプロセッサは、ネットワーク１２を介してサーバ装置２０から操作プログラムおよび変換スクリプトをダウンロードして、メモリ１１２上に展開して実行する。このような操作プログラムおよび変換スクリプトは、表示制御モジュール、入力モジュールおよびスクリプト処理モジュールを含むモジュール構成となっており、ＣＰＵ１１１等のプロセッサがこれらを実行することにより、情報処理部３５を表示制御部５２、入力部５３および変換スクリプト処理部５８として機能させることができる。
【００３４】
図３は、第１実施形態に係る画像形成システム１０の処理開始時のシーケンス図である。まず、ユーザは、ブラウザプログラムを実行して、操作プログラムであるＨＴＭＬファイルの格納場所を示すＵＲＩ（Uniform  Resource  Identifiers）等をブラウザプログラムに入力して、ＨＴＭＬファイルのダウンロードを指示する。ユーザによりＨＴＭＬファイルのダウンロードが指示されると、ステップＳ１１において、操作表示部３４は、ブラウザ部４１の入力部５３に対して、取得指示を与える。続いて、ステップＳ１２において、入力部５３は、その取得要求を通信部５１に与える。
【００３５】
続いて、ステップＳ１３において、通信部５１は、サーバ装置２０に対してＨＴＭＬファイルの取得要求を送信する。続いて、ステップＳ１４において、サーバ装置２０は、ＨＴＭＬファイルを含むレスポンスを通信部５１に送信する。続いて、ステップＳ１５において、通信部５１は、レスポンスからＨＴＭＬファイルを抽出し、抽出したＨＴＭＬファイルの解析指示を表示制御部５２に与える。
【００３６】
表示制御部５２は、解析指示を受けると、ＨＴＭＬファイルを解析する。ＨＴＭＬファイルには、変換スクリプトの呼び出し要求および変換スクリプトの格納場所を示すＵＲＩが含まれる。そこで、ステップＳ１６において、表示制御部５２は、変換スクリプトの取得要求を通信部５１に与える。なお、ＨＴＭＬファイルを解析した結果、画像ファイル、ＣＳＳ（Cascading  Style  Sheets）、他のスクリプト等が含まれている場合には、表示制御部５２は、これらの取得要求も通信部５１に与える。
【００３７】
続いて、ステップＳ１７において、通信部５１は、サーバ装置２０に対して変換スクリプトの取得要求を送信する。続いて、ステップＳ１８において、サーバ装置２０は、変換スクリプトを含むレスポンスを通信部５１に送信する。続いて、ステップＳ１９において、通信部５１は、変換スクリプトを含むレスポンスを表示制御部５２に送信する。
【００３８】
表示制御部５２は、変換スクリプトの取得要求に対するレスポンスを受信すると、そのレスポンスから変換スクリプトを抽出する。続いて、ステップＳ２０において、表示制御部５２は、抽出した変換スクリプトの解析指示を変換スクリプト処理部５８に与える。解析指示が与えられると、変換スクリプト処理部５８は、変換スクリプトを解析し、変換スクリプトの実行を待機した状態となる。続いて、ステップＳ２１において、変換スクリプト処理部５８は、解析が終了すると、レスポンスを表示制御部５２に送信する。
【００３９】
続いて、ステップＳ２２において、表示制御部５２は、ＨＴＭＬファイルの解析結果に基づき、スキャナ３２およびプリンタ３３を制御するためのユーザインターフェイスを含む画面を生成する。そして、ステップＳ２３において、表示制御部５２は、生成した画面を操作表示部３４に表示させる。
【００４０】
以上の処理により、情報処理部３５は、ＨＴＭＬファイル（操作プログラム）および変換スクリプトをサーバ装置２０から取得することができる。さらに、情報処理部３５は、スキャナ３２およびプリンタ３３を操作および制御するための画面をブラウザプログラム上により表示することができる。
【００４１】
図４は、第１実施形態に係る画像形成システム１０のジョブの生成時のシーケンス図である。図３に示すシーケンスの実行が完了した後に、画像形成システム１０は、図４に示すシーケンスが実行される。
【００４２】
ユーザは、操作表示部３４上に表示されたユーザインターフェイスを操作して、スキャナ３２またはプリンタ３３に対する動作指示を操作表示部３４に与える。例えば、ユーザは、スキャナ３２またはプリンタ３３の動作開始指示、および、解像度または白黒／カラーの区別等の設定情報、ユーザインターフェイスを操作して操作表示部３４に与える。
【００４３】
このような動作指示が与えられると、まず、ステップＳ３１において、操作表示部３４は、ブラウザ部４１の入力部５３に対して、動作指示を与える。続いて、ステップＳ３２において、入力部５３は、その動作指示を変換スクリプト処理部５８に与える。動作指示を受けると、ステップＳ３３において、変換スクリプト処理部５８は、動作中画面の生成指示を表示制御部５２に与える。
【００４４】
続いて、画面の生成指示を受けると、表示制御部５２は、動作中画面を生成する。そして、ステップＳ３４において、表示制御部５２は、生成した画面を操作表示部３４に表示させる。
【００４５】
一方、入力部５３から動作指示を受けると、ステップＳ３５において、変換スクリプト処理部５８は、動作指示に従った処理内容のジョブの生成要求を通信部５１に送信する。続いて、ステップＳ３６において、通信部５１は、ジョブの生成要求をプログラムインターフェイス部４２に送信する。プログラムインターフェイス部４２は、ジョブの生成要求を受信したことに応じて、動作指示に従ったジョブをスキャナ３２またはプリンタ３３に実行させる。
【００４６】
続いて、ステップＳ３７において、プログラムインターフェイス部４２は、スキャナ３２またはプリンタ３３にジョブを実行させたことに応じて、レスポンスを通信部５１に送信する。この場合において、プログラムインターフェイス部４２は、ジョブの生成が成功すると、レスポンスに、生成したジョブを識別するジョブＩＤ、および、現在のジョブの実行状態を示すジョブ情報を含める。続いて、ステップＳ３８において、通信部５１は、受信したレスポンスからジョブＩＤおよびジョブ情報を抽出して、変換スクリプト処理部５８に送信する。続いて、ステップＳ３９において、変換スクリプト処理部５８は、ジョブＩＤおよびジョブ情報を受信すると、ジョブＩＤを保存するとともに、ジョブＩＤに対応付けてジョブ情報を保存する。
【００４７】
以上の処理により、情報処理部３５は、スキャナ３２またはプリンタ３３の動作指示を受けると、動作中を示すユーザインターフェイス画面を表示させることができる。さらに、情報処理部３５は、スキャナ３２またはプリンタ３３に動作指示に従ったジョブを実行させることができるとともに、実行させたジョブを識別するジョブＩＤおよびジョブの実行状態を示すジョブ情報を保存することができる。
【００４８】
図５は、ジョブの生成時の変換スクリプト処理部５８の処理フローを示す図である。変換スクリプト処理部５８は、入力部５３から動作指示を受信すると、ステップＳ４１から処理を開始する。
【００４９】
まず、ステップＳ４１において、変換スクリプト処理部５８は、動作指示に従った処理内容のジョブの生成要求をプログラムインターフェイス部４２に送信する。続いて、ステップＳ４２において、変換スクリプト処理部５８は、ジョブの生成要求に対するレスポンスを受信する。続いて、ステップＳ４３において、変換スクリプト処理部５８は、レスポンスの内容を解析して、ジョブの生成が成功したか否かを判断する。変換スクリプト処理部５８は、ジョブの生成が失敗した場合には（ステップＳ４３のＮｏ）、本フローを終了する。変換スクリプト処理部５８は、ジョブの生成が成功した場合には（ステップＳ４３のＹｅｓ）、処理をステップＳ４４に進める。
【００５０】
ステップＳ４４において、変換スクリプト処理部５８は、レスポンスに含まれるジョブＩＤを取得する。例えば、変換スクリプト処理部５８は、図６に示されるようなジョブＩＤを取得する。
【００５１】
続いて、ステップＳ４５において、変換スクリプト処理部５８は、ジョブＩＤを保存するとともに、ジョブＩＤに対応付けて、ジョブの実行状態を示すジョブ情報を保存する。例えば、変換スクリプト処理部５８は、図７に示されるような、ジョブリストにより、ジョブＩＤおよびジョブ情報を保存する。
【００５２】
例えば、変換スクリプト処理部５８は、図８に示されるようなジョブ情報を取得する。図８のジョブ情報には、例えば、スキャナ３２の状態が「ユーザの操作待ち」であり、状態の詳細が「次原稿のセット待ち」であり、読取面の数が「３」であることが示されている。さらに、スキャナ３２によるジョブの実行状態を示すジョブ情報には、読み取り状態、読み取り画像のＵＲＩ、サムネイルのＵＲＩ、送信状態および送信済み宛先数等が含まれていてもよい。
【００５３】
また、例えば、変換スクリプト処理部５８は、図９に示されるようなジョブ情報を取得してもよい。図９のジョブ情報には、プリンタ３３の状態が「中止」であり、状態の詳細が「キャンセルされた」であり、印刷面の数が「３」であることが示されている。さらに、プリンタ３３によるジョブの実行状態を示すジョブ情報には、印刷状態およびファイル読み込みが完了したか否か等が含まれていてもよい。
【００５４】
そして、変換スクリプト処理部５８は、ジョブＩＤおよびジョブ情報の保存が完了すると、本フローを終了する。
【００５５】
図１０は、第１実施形態に係る画像形成システム１０のイベント発行時のシーケンス図である。図４に示すシーケンスの実行が完了した後に、画像形成システム１０は、図１０に示すシーケンスが実行される。
【００５６】
まず、ステップＳ５１において、プログラムインターフェイス部４２は、ジョブを実行中のスキャナ３２またはプリンタ３３の状態を状態通知部４３に通知する。プログラムインターフェイス部４２は、一例として、状態通知部４３から要求を受けた場合または定期的に、状態を通知する。
【００５７】
状態通知部４３は、プログラムインターフェイス部４２からの通知によって、スキャナ３２またはプリンタ３３によるジョブの実行状態を取得する。続いて、ステップＳ５２において、状態通知部４３は、スキャナ３２またはプリンタ３３のジョブの実行状態を示すジョブ情報を含む状態データを、ブラウザプログラムの受信部５４に対して通知する。
【００５８】
続いて、ステップＳ５３において、受信部５４は、状態通知部４３から状態データが通知されると、変換スクリプトの実行指示を変換スクリプト処理部５８に与える。この場合、受信部５４は、実行指示に状態データを含める。
【００５９】
続いて、ステップＳ５４において、変換スクリプト処理部５８は、変換スクリプトを実行して、状態データに含まれるジョブ情報からジョブの実行状態を解析する。続いて、ステップＳ５５において、変換スクリプト処理部５８は、ジョブ情報に示されたジョブの実行状態に基づき、ジョブの実行状態に応じたイベントを、表示制御部５２に対して発行する。
【００６０】
続いて、ステップＳ５６において、表示制御部５２は、発行されたイベントに応じたユーザインターフェイスを含む画面を生成する。そして、ステップＳ５７において、表示制御部５２は、生成した画面を操作表示部３４に表示させる。
【００６１】
以上の処理により、情報処理部３５は、プログラムインターフェイス部４２から、スキャナ３２またはプリンタ３３によるジョブの実行状態を取得することができる。また、情報処理部３５は、スキャナ３２またはプリンタ３３によるジョブの実行状態に応じたイベントを表示制御部５２に与えることができる。そして、情報処理部３５は、ジョブの実行状態に応じたイベントに基づき、ジョブの実行状態に適したユーザインターフェイス画面を表示することができる。
【００６２】
図１１は、イベント発行時の変換スクリプト処理部５８の処理フローを示す図である。変換スクリプト処理部５８は、プログラムインターフェイス部４２から状態データの通知を受けると、ステップＳ６１から処理を開始する。
【００６３】
まず、ステップＳ６１において、変換スクリプト処理部５８は、状態データを受信する。続いて、ステップＳ６２において、変換スクリプト処理部５８は、状態データからジョブＩＤを取得する。
【００６４】
続いて、ステップＳ６３において、変換スクリプト処理部５８は、保存しているジョブリストをジョブＩＤで検索して、ジョブＩＤに対応付けられたジョブ情報を検索する。続いて、ステップＳ６４において、変換スクリプト処理部５８は、ジョブ情報が見つかったか否かを判断する。ジョブ情報が見つからなかった場合には（ステップＳ６４のＮｏ）、本フローを終了する。ジョブ情報が見つかった場合には（ステップＳ６４のＹｅｓ）、処理をステップＳ６５に進める。
【００６５】
ステップＳ６５において、変換スクリプト処理部５８は、受信した状態データに含まれるジョブ情報を抽出する。続いて、ステップＳ６６において、変換スクリプト処理部５８は、状態データに含まれているジョブＩＤに対応付けて保存されている現在のジョブ情報を、直前のジョブ情報の欄に保存する。続いて、ステップＳ６７において、変換スクリプト処理部５８は、受信した状態データから抽出したジョブ情報を、現在のジョブ情報の欄に保存する。
【００６６】
例えば、図１２に示すように、変換スクリプト処理部５８は、スキャナ３２によるジョブに対応するあるジョブＩＤのジョブ情報として、現在のジョブ情報と直前のジョブ情報とに分けて保存する。また、例えば、図１３に示すように、変換スクリプト処理部５８は、プリンタ３３によるジョブに対応するあるジョブＩＤのジョブ情報として、現在のジョブ情報と直前のジョブ情報とに分けて保存する。すなわち、ステップＳ６６およびステップＳ６７では、変換スクリプト処理部５８は、現在のジョブ情報を直前のジョブ情報に保存して、新しく取得したジョブ情報を現在のジョブ情報に保存する。
【００６７】
続いて、ステップＳ６８において、変換スクリプト処理部５８は、現在のジョブ情報と直前のジョブ情報とを比較して変化があったか否かを判断する。すなわち、変換スクリプト処理部５８は、ジョブの実行状態に変化があったか否かを判断する。変化が無かった場合には（ステップＳ６８のＮｏ）、変換スクリプト処理部５８は、本フローを終了する。変化があった場合には（ステップＳ６８のＹｅｓ）、変換スクリプト処理部５８は、処理をステップＳ６９に進める。
【００６８】
続いて、ステップＳ６９において、変換スクリプト処理部５８は、ジョブ情報に応じたイベントを生成する。すなわち、変換スクリプト処理部５８は、ジョブの実行状態に応じたイベントを生成する。
【００６９】
例えば、変換スクリプト処理部５８は、図１４に示されるような、スキャナ３２によるジョブがユーザの操作待ちであることを示すユーザ操作待ちイベントを発行する。変換スクリプト処理部５８は、一例として、スキャナ３２によるジョブの実行状態が、処理中からユーザの操作待ちに変わったときに、このようなイベントを発行する。なお、図１４に示されるイベントには、スキャナ３２が自動再開をしないことを示す情報も含む。
【００７０】
また、例えば、変換スクリプト処理部５８は、図１５に示されるような、プリンタ３３によるジョブが中止されたことを示す中止イベントを発行する。変換スクリプト処理部５８は、一例として、プリンタ３３がシステムの問題等により強制的に終了された場合に、このようなイベントを発行する。
【００７１】
その他、変換スクリプト処理部５８は、例えば、機器が待機中であることを示す待機中イベント、機器が処理中であることを示す処理中イベント、ユーザからのキャンセル操作によりジョブがキャンセルされたことを示すキャンセルイベント、ジョブが完了したことを示す完了イベント、読み取り面数が更新したことを示す読み取り面数更新イベント、印刷面数が更新したことを示す印刷面数更新イベント等を発行してもよい。
【００７２】
また、変換スクリプト処理部５８は、２以上のイベントを同時に発行してもよい。例えば、変換スクリプト処理部５８は、スキャナ３２のジョブの実行状態が、処理中からユーザ操作待ちに変わり、且つ、読み取り面数が２から３に変わった場合には、ユーザ操作待ちイベントと読み取り面数更新イベントとを同時に発行してもよい。
【００７３】
続いて、ステップＳ７０において、変換スクリプト処理部５８は、生成したイベントをジョブＩＤと対応付ける。例えば、図１６に示すように、ジョブＩＤ毎に生成したイベントをリスト化して保存する。
【００７４】
続いて、ステップＳ７１において、変換スクリプト処理部５８は、生成したイベントを表示制御部５２に対して発行する。変換スクリプト処理部５８は、イベントを発行すると本フローを終了する。
【００７５】
図１７は、スキャナ３２のジョブに対応するイベントの生成フローの一例を示す図である。変換スクリプト処理部５８は、図１１のステップＳ６９において、スキャナ３２のジョブに対応するイベントを、例えば図１７に示すフローに従って生成する。
【００７６】
まず、ステップＳ８１において、変換スクリプト処理部５８は、ジョブ情報を参照して、状態が変わったか否かを判断する。状態が変わった場合（ステップＳ８１のＹｅｓ）、ステップＳ８２において、変わった後の状態に応じたイベントを生成する。状態が変わらなかった場合（ステップＳ８１のＮｏ）およびステップＳ８２の処理を終えた場合、変換スクリプト処理部５８は、処理をステップＳ８３に進める。
【００７７】
続いて、ステップＳ８３において、変換スクリプト処理部５８は、ジョブ情報を参照して、読み取り面数が変わったか否かを判断する。読み取り面数が変わった場合（ステップＳ８３のＹｅｓ）、ステップＳ８４において、読み取り面数更新イベントを生成する。読み取り面数が変わらなかった場合（ステップＳ８３のＮｏ）およびステップＳ８４の処理を終えた場合、変換スクリプト処理部５８は、処理をステップＳ８５に進める。
【００７８】
続いて、ステップＳ８５において、変換スクリプト処理部５８は、ジョブ情報を参照して、送信済み宛先数が変わったか否かを判断する。送信済み宛先数が変わった場合（ステップＳ８５のＹｅｓ）、ステップＳ８６において、送信済み宛先数更新イベントを生成する。送信済み宛先数が変わらなかった場合（ステップＳ８５のＮｏ）およびステップＳ８６の処理を終えた場合、変換スクリプト処理部５８は、本フローを終了する。
【００７９】
図１８は、プリンタ３３のジョブに対応するイベントの生成フローの一例を示す図である。変換スクリプト処理部５８は、図１１のステップＳ６９において、プリンタ３３のジョブに対応するイベントを、例えば図１８に示すフローに従って生成する。
【００８０】
まず、ステップＳ９１において、変換スクリプト処理部５８は、ジョブ情報を参照して、状態が変わったか否かを判断する。状態が変わった場合（ステップＳ９１のＹｅｓ）、ステップＳ９２において、変わった後の状態に応じたイベントを生成する。状態が変わらなかった場合（ステップＳ９１のＮｏ）およびステップＳ９２の処理を終えた場合、変換スクリプト処理部５８は、処理をステップＳ９３に進める。
【００８１】
続いて、ステップＳ９３において、変換スクリプト処理部５８は、ジョブ情報を参照して、ファイルが読み込み済みか否かを判断する。ファイルが読み込み済みの場合（ステップＳ９３のＹｅｓ）、ステップＳ９４において、ファイル読み込み済みイベントを生成する。ファイルが読み込み済みではない場合（ステップＳ９３のＮｏ）およびステップＳ９４の処理を終えた場合、変換スクリプト処理部５８は、処理をステップＳ９５に進める。
【００８２】
続いて、ステップＳ９５において、変換スクリプト処理部５８は、ジョブ情報を参照して、印刷面数が変わったか否かを判断する。印刷面数が変わった場合（ステップＳ９５のＹｅｓ）、ステップＳ９６において、印刷面数更新イベントを生成する。印刷面数が変わらなかった場合（ステップＳ９５のＮｏ）およびステップＳ９６の処理を終えた場合、変換スクリプト処理部５８は、本フローを終了する。
【００８３】
図１９は、処理中イベントに応じて表示されるユーザインターフェイスの一例である。変換スクリプト処理部５８は、ジョブが処理中の場合、処理中イベントを発行する。表示制御部５２は、処理中イベントが発行されると、例えば、図１９に示されるような、処理中であることおよび処理がどこまで進んだかを示すユーザインターフェイスを表示する。
【００８４】
図２０は、ユーザ操作待ちイベントに応じて表示されるユーザインターフェイスの一例である。変換スクリプト処理部５８は、ジョブがユーザの操作待ちである場合、ユーザ操作待ちイベントを発行する。表示制御部５２は、ユーザ操作待ちイベントが発行されると、例えば、図２０に示されるような、ユーザによる操作を指示するユーザインターフェイスを表示する。
【００８５】
図２１は、キャンセルイベントに応じて表示されるユーザインターフェイスの一例である。変換スクリプト処理部５８は、ジョブがキャンセルされた場合、キャンセルイベントを発行する。表示制御部５２は、キャンセルイベントが発行されると、例えば、図２１に示されるような、ジョブがキャンセルされたことを通知するユーザインターフェイスを表示する。
【００８６】
以上のように、本実施形態に係る画像形成システム１０は、変換スクリプト処理部５８が変換スクリプトを実行することにより、スキャナ３２またはプリンタ３３のジョブの実行状態を解析し、実行状態に応じたイベントを発行する。そして、表示制御部５２がＨＴＭＬファイル（操作プログラム）を実行することにより、イベントに応じたユーザインターフェイスを提供する。
【００８７】
従って、本実施形態に係る画像形成システム１０は、ＨＴＭＬファイルで予め作成された変換スクリプトを呼び出せば、スキャナ３２またはプリンタ３３のジョブの実行状態に対応した適切なイベントを発行することができる。従って、本実施形態に係る画像形成システム１０によれば、スキャナ３２およびプリンタ３３の状態を理解するための詳細な知識が無くても、ユーザインターフェイスを提供するためのＨＴＭＬファイル（操作プログラム）を容易に作成することができる。
【００８８】
なお、本実施形態において、変換スクリプト処理部５８は、ジョブの実行状態に応じたイベントに限らず、ジョブを実行していないスキャナ３２およびプリンタ３３の状態に応じたイベントを発行してもよい。状態通知部４３は、スキャナ３２およびプリンタ３３の状態を監視し、スキャナ３２およびプリンタ３３の状態が変化した場合に、その変化後の状態を示す状態データをブラウザプログラムに通知する。この場合には、図１０に示すシーケンスが実行されて、イベントの発行およびユーザインターフェイスの表示がされる。
【００８９】
図２２は、第１実施形態の第１の変形例に係る画像形成システム１０の構成を示す図である。なお、第１変形例および第２変形例では、図１と同様の機能および構成を有する部材は同一の符号を付けて相違点についてのみ説明する。
【００９０】
第１変形例に係る画像形成システム１０は、サーバ装置２０と、画像形成装置３０と、情報処理装置６０とを備える。第１変形例に係る画像形成装置３０は、ネットワークＩ／Ｆ３１と、スキャナ３２と、プリンタ３３と、情報処理部３５とを備え、操作表示部３４を備えていない。また、情報処理部３５は、プログラムインターフェイス部４２を有し、ブラウザ部４１および状態通知部４３を有してない。
【００９１】
情報処理装置６０は、ネットワークＩ／Ｆ６１と、情報処理部６２と、操作表示部３４とを有する。ネットワークＩ／Ｆ６１は、ネットワークＩ／Ｆ３１と同様の機能および構成を有する。情報処理部６２は、ブラウザ部４１と、状態通知部４３とを有する。情報処理部６２のハードウェア構成は、情報処理部３５と同様である。
【００９２】
そして、第１の変形例において、プログラムインターフェイス部４２は、ネットワーク１２を介して、ブラウザ部４１および状態通知部４３と通信をする。
【００９３】
このような第１実施形態の第１の変形例に係る画像形成システム１０によれば、画像形成装置３０から操作用の情報処理装置を別体とすることができる。
【００９４】
図２３は、第１実施形態の第２の変形例に係る画像形成装置３０の構成を示す図である。第２の変形例に係る情報処理部３５は、サーバインターフェイス部７１と、情報提供部２２とをさらに有する。
【００９５】
サーバインターフェイス部７１は、ブラウザプログラムから情報提供部２２へとアクセスするためのソフトウェアインターフェイスである。このような情報処理部３５は、スキャナ３２およびプリンタ３３と、操作用の情報処理装置と、操作プログラムおよび変換スクリプトを記憶する情報提供部２２とが一体化されている。
【００９６】
このような第１実施形態の第２の変形例に係る画像形成装置３０によれば、ネットワーク１２を介してサーバ装置２０にアクセスせずに、操作プログラムおよび変換スクリプトを取得することができる。
【００９７】
（第２実施形態）
図２４は、第２実施形態に係る画像形成システム７５の構成を示す図である。第２実施形態に係る画像形成システム７５は、図１から図２３を参照して説明した第１実施形態に係る画像形成システム１０と略同一の機能および構成を有する。従って、第１実施形態に係る画像形成システム１０と略同一の構成および機能を有する部材については、同一の符号を付けて相違点についてのみ説明する。
【００９８】
画像形成システム７５は、サーバ装置２０と、画像形成装置３０とを備える。サーバ装置２０の情報提供部２２は、ネットワーク１２を介して、画像形成装置３０に対して操作プログラム、ウェブスクリプト、制御スクリプトおよび変換スクリプトを提供する。
【００９９】
ウェブスクリプトおよび制御スクリプトは、ブラウザプログラムからダウンロードされ、ブラウザプログラム上で実行されるプログラムである。本実施形態においては、ウェブスクリプトおよび制御スクリプトは、ブラウザプログラム上で実行されるスクリプトプログラムである。
【０１００】
情報処理部３５は、ブラウザプログラムを実行し、ブラウザプログラム上でサーバ装置２０から操作プログラム（例えばＨＴＭＬファイル）、ウェブスクリプト、制御スクリプトおよび変換スクリプトをダウンロードする。そして、情報処理部３５は、操作プログラム、ウェブスクリプト、制御スクリプトおよび変換スクリプトをブラウザプログラム上で実行することにより、スキャナ３２およびプリンタ３３を操作するためのユーザインターフェイスを提供する。
【０１０１】
ブラウザ部４１は、通信部５１と、表示制御部５２と、入力部５３と、受信部５４と、ウェブスクリプト処理部５６と、制御スクリプト処理部５７と、変換スクリプト処理部５８とを含む。ブラウザ部４１は、第１実施形態と比較し、ウェブスクリプト処理部５６および制御スクリプト処理部５７とをさらに含む点で異なる。
【０１０２】
通信部５１は、操作プログラム（例えばＨＴＭＬファイル）、ウェブスクリプト、制御スクリプトおよび変換スクリプトを、サーバ装置２０から取得する。操作プログラム、ウェブスクリプト、制御スクリプトおよび変換スクリプトは、スキャナ３２およびプリンタ３３を操作するためのユーザインターフェイスを、操作表示部３４から提供するプログラムである。
【０１０３】
ウェブスクリプト処理部５６は、プロセッサがブラウザプログラム上でウェブスクリプトを実行することにより機能する。ウェブスクリプトは、ブラウザプログラム上で実行されるスクリプト言語で記述されたアプリケーションプログラムである。ウェブスクリプト処理部５６は、このアプリケーションプログラムによって記述された動作を実行する。
【０１０４】
制御スクリプト処理部５７は、プロセッサがブラウザプログラム上で制御スクリプトを実行することにより機能する。制御スクリプト処理部５７は、ウェブスクリプト処理部５６から与えられた動作指示に応じて、ジョブの生成要求を変換スクリプト処理部５８に与える。また、制御スクリプト処理部５７は、ウェブスクリプト処理部５６に対して、ユーザインターフェイスを生成するために用いられるユーザインターフェイス情報を発行する。制御スクリプト処理部５７は、一例として、イベントが発行されたことに応じてイベントに対応したユーザインターフェイス情報を発行する。
【０１０５】
変換スクリプト処理部５８は、プロセッサがブラウザプログラム上で変換スクリプトを実行することにより機能する。本実施形態においては、変換スクリプト処理部５８は、ユーザによるユーザインターフェイスに対する動作指示に応じて制御スクリプト処理部５７から与えられたジョブの生成要求を、プログラムインターフェイス部４２に送信する。また、変換スクリプト処理部５８は、ジョブの生成要求をプログラムインターフェイス部４２に送信したことに応じて、プログラムインターフェイス部４２からジョブＩＤを受信して保存する。
【０１０６】
また、変換スクリプト処理部５８は、受信部５４が受信した状態データに基づき、スキャナ３２またはプリンタ３３の状態を解析する。そして、変換スクリプト処理部５８は、スキャナ３２またはプリンタ３３の状態に応じたイベントを、制御スクリプト処理部５７へと発行する。
【０１０７】
制御スクリプト処理部５７は、変換スクリプト処理部５８からイベントが発行されると、発行されたイベントに対応したユーザインターフェイス情報を発行する。ウェブスクリプト処理部５６は、制御スクリプト処理部５７から発行されたユーザインターフェイス情報に従ったユーザインターフェイスを表示させる。そして、表示制御部５２は、ウェブスクリプト処理部５６による制御に応じて、ユーザインターフェイスを操作表示部３４から提供する。
【０１０８】
なお、第２実施形態に係る画像形成システム７５のハードウェア構成は、図２に示されるハードウェア構成と同一である。サーバ装置２０の情報提供部２２は、ＣＰＵ１０１等のプロセッサが記憶装置１０３に予め記憶されたオペレーティングシステム等を実行することにより、操作プログラム、ウェブスクリプト、制御スクリプトおよび変換スクリプトを画像形成装置３０に対して提供することができる。
【０１０９】
また、画像形成装置３０の情報処理部３５は、ＣＰＵ１１１等のプロセッサが、ネットワーク１２を介してサーバ装置２０から操作プログラム、ウェブスクリプト、制御スクリプトおよび変換スクリプトをダウンロードして、メモリ１１２上に展開して実行する。このような操作プログラム、ウェブスクリプト、制御スクリプトおよび変換スクリプトは、表示制御モジュール、入力モジュール、ウェブスクリプト処理モジュール、制御スクリプト処理モジュールおよび変換スクリプト処理モジュールを含むモジュール構成となっており、ＣＰＵ１１１等のプロセッサがこれらを実行することにより、情報処理部３５を表示制御部５２、入力部５３、ウェブスクリプト処理部５６、制御スクリプト処理部５７および変換スクリプト処理部５８として機能させることができる。
【０１１０】
図２５は、第２実施形態に係る画像形成システム７５の処理開始時のシーケンス図である。まず、ユーザは、ブラウザプログラムを実行して、操作プログラムであるＨＴＭＬファイルの格納場所を示すＵＲＩ等をブラウザプログラムに入力して、ＨＴＭＬファイルのダウンロードを指示する。ユーザによりＨＴＭＬファイルのダウンロードが指示されると、ステップＳ１１１において、操作表示部３４は、ブラウザ部４１の入力部５３に対して、取得指示を与える。続いて、ステップＳ１１２において、入力部５３は、その取得要求を通信部５１に与える。
【０１１１】
続いて、ステップＳ１１３において、通信部５１は、サーバ装置２０に対してＨＴＭＬファイルの取得要求を送信する。続いて、ステップＳ１１４において、サーバ装置２０は、ＨＴＭＬファイルを含むレスポンスを通信部５１に送信する。続いて、ステップＳ１１５において、通信部５１は、レスポンスからＨＴＭＬファイルを抽出し、抽出したＨＴＭＬファイルの解析指示を表示制御部５２に与える。
【０１１２】
表示制御部５２は、解析指示を受けると、ＨＴＭＬファイルを解析する。ＨＴＭＬファイルには、ウェブスクリプト、制御スクリプトおよび変換スクリプトの呼び出し要求および各スクリプトの格納場所を示すＵＲＩが含まれる。そこで、ステップＳ１１６において、表示制御部５２は、各スクリプトの取得要求を通信部５１に与える。なお、ＨＴＭＬファイルを解析した結果、画像ファイル、ＣＳＳ、他のスクリプト等が含まれている場合には、表示制御部５２は、これらの取得要求も通信部５１に与える。
【０１１３】
続いて、ステップＳ１１７において、通信部５１は、サーバ装置２０に対して各スクリプトの取得要求を送信する。続いて、ステップＳ１１８において、サーバ装置２０は、ウェブスクリプト、制御スクリプトおよび変換スクリプト等を含むレスポンスを通信部５１に送信する。続いて、ステップＳ１１９において、通信部５１は、各スクリプトを含むレスポンスを表示制御部５２に送信する。
【０１１４】
表示制御部５２は、各スクリプトの取得要求に対するレスポンスを受信すると、そのレスポンスからウェブスクリプト、制御スクリプトおよび変換スクリプトを抽出する。続いて、ステップＳ１２０において、表示制御部５２は、抽出したウェブスクリプトの解析指示をウェブスクリプト処理部５６に与える。解析指示が与えられると、ウェブスクリプト処理部５６は、ウェブスクリプトを解析し、ウェブスクリプトの実行を開始して、ブラウザプログラム上でアプリケーションの提供を開始する。続いて、ステップＳ１２１において、ウェブスクリプト処理部５６は、解析および提供の開始処理が終了すると、レスポンスを表示制御部５２に送信する。
【０１１５】
続いて、ステップＳ１２２において、表示制御部５２は、抽出した制御スクリプトの解析指示を制御スクリプト処理部５７に与える。解析指示が与えられると、制御スクリプト処理部５７は、制御スクリプトを解析し、制御スクリプトの実行を待機した状態となる。続いて、ステップＳ１２３において、制御スクリプト処理部５７は、解析が終了すると、レスポンスを表示制御部５２に送信する。
【０１１６】
続いて、ステップＳ１２４において、表示制御部５２は、抽出した変換スクリプトの解析指示を変換スクリプト処理部５８に与える。解析指示が与えられると、変換スクリプト処理部５８は、変換スクリプトを解析し、変換スクリプトの実行を待機した状態となる。続いて、ステップＳ１２５において、変換スクリプト処理部５８は、解析が終了すると、レスポンスを表示制御部５２に送信する。
【０１１７】
続いて、ステップＳ１２６において、表示制御部５２は、ＨＴＭＬファイルの解析結果に基づき、スキャナ３２およびプリンタ３３を制御するためのユーザインターフェイスを含む画面を生成する。そして、ステップＳ１２７において、表示制御部５２は、生成した画面を操作表示部３４に表示させる。
【０１１８】
以上の処理により、情報処理部３５は、ＨＴＭＬファイル（操作プログラム）、ウェブスクリプト、制御スクリプトおよび変換スクリプトをサーバ装置２０から取得することができる。さらに、情報処理部３５は、スキャナ３２およびプリンタ３３を操作および制御するための画面をブラウザプログラム上により表示することができる。
【０１１９】
図２６は、第２実施形態に係る画像形成システム７５のジョブの生成時のシーケンス図である。図２５に示すシーケンスの実行が完了した後に、画像形成システム７５は、図２６に示すシーケンスが実行される。
【０１２０】
ユーザは、操作表示部３４上に表示されたユーザインターフェイスを操作して、スキャナ３２またはプリンタ３３に対する動作指示を操作表示部３４に与える。例えば、ユーザは、スキャナまたはプリンタの動作開始指示、および、解像度または白黒／カラーの区別等の設定情報、ユーザインターフェイスを操作して操作表示部３４に与える。
【０１２１】
このような動作指示が与えられると、まず、ステップＳ１３１において、操作表示部３４は、ブラウザ部４１の入力部５３に対して、動作指示を与える。続いて、ステップＳ１３２において、入力部５３は、その動作指示をウェブスクリプト処理部５６に与える。動作指示を受けると、ステップＳ１３３において、ウェブスクリプト処理部５６は、解像度または白黒／カラーの区別等の設定情報の動作条件を生成する。続いて、ステップＳ１３４において、ウェブスクリプト処理部５６は、動作指示を制御スクリプト処理部５７に与える。
【０１２２】
続いて、動作指示を受けると、ステップＳ１３５において、制御スクリプト処理部５７は、制御スクリプトを実行して、ユーザインターフェイス情報を生成する。続いて、ステップＳ１３６において、制御スクリプト処理部５７は、生成したユーザインターフェイス情報を含めた表示要求をウェブスクリプト処理部５６に与える。続いて、ステップＳ１３７において、ウェブスクリプト処理部５６は、受け取った表示要求に含まれるユーザインターフェイス情報に従ったユーザインターフェイス画面を生成して、表示制御部５２に与える。
【０１２３】
続いて、ユーザインターフェイス画面を受けると、ステップＳ１３８において、表示制御部５２は、受け取った画面を操作表示部３４に表示させる。
【０１２４】
一方、ウェブスクリプト処理部５６から動作指示を受けると、ステップＳ１３９において、制御スクリプト処理部５７は、制御スクリプトを実行して、受け取った動作指示を変換スクリプト処理部５８に与える。続いて、制御スクリプト処理部５７から動作指示を受けると、ステップＳ１４０において、変換スクリプト処理部５８は、動作指示に従った処理内容のジョブの生成要求を通信部５１に送信する。なお、変換スクリプト処理部５８によるジョブ生成時の処理は、第１の実施形態と同様である。続いて、ステップＳ１４１において、通信部５１は、ジョブの生成要求をプログラムインターフェイス部４２に送信する。プログラムインターフェイス部４２は、ジョブの生成要求を受信したことに応じて、動作指示に従ったジョブをスキャナ３２またはプリンタ３３に実行させる。
【０１２５】
続いて、ステップＳ１４２において、プログラムインターフェイス部４２は、スキャナ３２またはプリンタ３３にジョブを実行させたことに応じて、レスポンスを通信部５１に送信する。この場合において、プログラムインターフェイス部４２は、ジョブの生成が成功すると、レスポンスに、生成したジョブを識別するジョブＩＤ、および、現在のジョブの実行状態を示すジョブ情報を含める。続いて、ステップＳ１４３において、通信部５１は、受信したレスポンスからジョブＩＤおよびジョブ情報を抽出して、変換スクリプト処理部５８に送信する。続いて、ステップＳ１４４において、変換スクリプト処理部５８は、ジョブＩＤおよびジョブ情報を受信すると、ジョブＩＤを保存するとともに、ジョブＩＤに対応付けてジョブ情報を保存する。
【０１２６】
以上の処理により、情報処理部３５は、スキャナ３２またはプリンタ３３の動作指示を受けると、動作中を示すユーザインターフェイス画面を表示させることができる。さらに、情報処理部３５は、スキャナ３２またはプリンタ３３に動作指示に従ったジョブを実行させることができるとともに、実行させたジョブを識別するジョブＩＤおよびジョブの実行状態を示すジョブ情報を保存することができる。
【０１２７】
図２７は、ジョブ生成時の制御スクリプト処理部５７の処理フローを示す図である。制御スクリプト処理部５７は、ウェブスクリプト処理部５６から動作指示を受信すると、ステップＳ１５１から処理を開始する。
【０１２８】
まず、ステップＳ１５１において、制御スクリプト処理部５７は、動作指示を受け付ける。続いて、ステップＳ１５２において、制御スクリプト処理部５７は、動作実行中であることを示すユーザインターフェイス画面を生成するためのユーザインターフェイス情報を生成する。
【０１２９】
例えば、制御スクリプト処理部５７は、スキャン開始の動作指示を受け取った場合には、図２８に示されるような、「スキャン中です。」というメッセージと、キャンセル操作を受け付けることができないことを示す情報とを含むユーザインターフェイス情報を生成する。なお、ユーザインターフェイス情報の生成方法の詳細については、図３１でさらに説明する。
【０１３０】
続いて、ステップＳ１５３において、制御スクリプト処理部５７は、ユーザインターフェイスの表示要求をウェブスクリプト処理部５６に与える。この場合において、ステップＳ１５２で生成したユーザインターフェイス情報を表示要求に含める。
【０１３１】
続いて、ステップＳ１５４において、制御スクリプト処理部５７は、受け取った動作指示を変換スクリプト処理部５８へと与える。そして、制御スクリプト処理部５７は、本フローを終了する。
【０１３２】
図２９は、第２実施形態に係る画像形成システム７５のイベント発行時のシーケンス図である。図２６に示すシーケンスの実行が完了した後に、画像形成システム７５は、図２９に示すシーケンスが実行される。
【０１３３】
まず、ステップＳ１７１において、プログラムインターフェイス部４２は、ジョブを実行中のスキャナ３２またはプリンタ３３の状態を状態通知部４３に通知する。プログラムインターフェイス部４２は、一例として、状態通知部４３から要求を受けた場合または定期的に、状態を通知する。
【０１３４】
状態通知部４３は、プログラムインターフェイス部４２からの通知によって、スキャナ３２またはプリンタ３３によるジョブの実行状態を取得する。続いて、ステップＳ１７２において、状態通知部４３は、スキャナ３２またはプリンタ３３のジョブの実行状態を示すジョブ情報を含む状態データを、ブラウザプログラムの受信部５４に対して通知する。
【０１３５】
続いて、ステップＳ１７３において、受信部５４は、状態通知部４３から状態データが通知されると、変換スクリプトの実行指示を変換スクリプト処理部５８に与える。この場合、受信部５４は、実行指示に状態データを含める。
【０１３６】
続いて、ステップＳ１７４において、変換スクリプト処理部５８は、変換スクリプトを実行して、状態データに含まれるジョブ情報からジョブの実行状態を解析する。続いて、ステップＳ１７５において、変換スクリプト処理部５８は、ジョブ情報に示されたジョブの実行状態に基づき、ジョブの実行状態に応じたイベントを、制御スクリプト処理部５７に対して発行する。なお、変換スクリプト処理部５８によるイベント発行時の処理は、第１の実施形態と同様である。
【０１３７】
続いて、ステップＳ１７６において、制御スクリプト処理部５７は、制御スクリプトを実行して、イベントを解析して、ユーザインターフェイス情報を生成する。続いて、ステップＳ１７７において、制御スクリプト処理部５７は、生成したユーザインターフェイス情報を含めた表示要求をウェブスクリプト処理部５６に与える。続いて、ステップＳ１７８において、ウェブスクリプト処理部５６は、受け取った表示要求に含まれるユーザインターフェイス情報に従ったユーザインターフェイス画面を生成して、表示制御部５２に与える。
【０１３８】
続いて、ユーザインターフェイス画面を受けると、ステップＳ１７９において、表示制御部５２は、受け取った画面を操作表示部３４に表示させる。
【０１３９】
以上の処理により、情報処理部３５は、プログラムインターフェイス部４２から、スキャナ３２またはプリンタ３３によるジョブの実行状態を取得することができる。また、情報処理部３５は、スキャナ３２またはプリンタ３３によるジョブの実行状態に応じたイベントを表示制御部５２に与えることができる。情報処理部３５は、ジョブの実行状態に応じたイベントにユーザインターフェイス情報を生成する。そして、情報処理部３５は、生成したユーザインターフェイス情報に従ってユーザインターフェイス画面を生成する。これにより、情報処理部３５は、ジョブの実行状態に適したユーザインターフェイス画面を容易に生成して表示することができる。
【０１４０】
図３０は、イベント発行時の制御スクリプト処理部５７の処理フローを示す図である。制御スクリプト処理部５７は、変換スクリプト処理部５８からイベントを受信すると、ステップＳ２３１から処理を開始する。
【０１４１】
まず、ステップＳ２３１において、制御スクリプト処理部５７は、イベントを受信する。続いて、ステップＳ２３２において、制御スクリプト処理部５７は、イベントが発行されたことに応じてイベントに対応したユーザインターフェイスを生成するために用いられるユーザインターフェイス情報を生成する。なお、具体的な生成方法については、図３１でさらに説明する。
【０１４２】
続いて、ステップＳ２３３において、制御スクリプト処理部５７は、ユーザインターフェイスの表示要求をウェブスクリプト処理部５６に与える。この場合において、ステップＳ２３２で生成したユーザインターフェイス情報を表示要求に含める。そして、制御スクリプト処理部５７は、本フローを終了する。
【０１４３】
図３１は、イベント発行時の制御スクリプト処理部５７のユーザインターフェイス情報の生成処理フローを示す図である。制御スクリプト処理部５７は、図２７のステップＳ１５２および図３０のステップＳ２３２において、ユーザインターフェイス情報を、例えば図３１に示すフローに従って生成する。
【０１４４】
まず、ステップＳ２４１において、制御スクリプト処理部５７は、イベントまたは動作指示を参照して、ユーザインターフェイスを提供する際にユーザに提示するメッセージを生成する。制御スクリプト処理部５７は、それぞれのイベントまたは動作指示に対応させて予め作成されているデータを参照して、メッセージを生成する。
【０１４５】
続くステップＳ２４２〜ステップＳ２４７において、制御スクリプト処理部５７は、イベントまたは動作指示に基づいて、生成すべきユーザインターフェイスによって、ユーザから受け付けることが可能な操作内容と、操作を受け付けた場合に実行する関数とを生成する。
【０１４６】
具体的には、まず、ステップＳ２４２において、制御スクリプト処理部５７は、生成すべきユーザインターフェイスにおいて、ユーザがキャンセル操作を可能であるか否かを判断する。制御スクリプト処理部５７は、ユーザがキャンセル操作を可能である場合（ステップＳ２４２のＹｅｓ）、ステップＳ２４３において、キャンセル操作を受けた場合に実行する関数を生成する。制御スクリプト処理部５７は、ユーザがキャンセル操作を可能ではない場合（ステップＳ２４２のＮｏ）またはステップＳ２４３の処理を終えた場合、処理をステップＳ２４４に進める。
【０１４７】
ステップＳ２４４において、制御スクリプト処理部５７は、生成すべきユーザインターフェイスにおいて、ユーザが終了の操作を可能であるか否かを判断する。制御スクリプト処理部５７は、ユーザが終了の操作を可能である場合（ステップＳ２４４のＹｅｓ）、ステップＳ２４５において、終了の操作を受けた場合に実行する関数を生成する。制御スクリプト処理部５７は、ユーザが終了の操作を可能ではない場合（ステップＳ２４４のＮｏ）またはステップＳ２４５の処理を終えた場合、処理をステップＳ２４６に進める。
【０１４８】
ステップＳ２４６において、制御スクリプト処理部５７は、生成すべきユーザインターフェイスにおいて、ユーザが継続操作を可能であるか否かを判断する。制御スクリプト処理部５７は、ユーザが継続操作を可能である場合（ステップＳ２４６のＹｅｓ）、ステップＳ２４７において、継続操作を受けた場合に実行する関数を生成する。制御スクリプト処理部５７は、ユーザが継続操作を可能ではない場合（ステップＳ２４６のＮｏ）またはステップＳ２４７の処理を終えた場合、処理をステップＳ２４８に進める。
【０１４９】
そして、ステップＳ２４８において、制御スクリプト処理部５７は、以上の情報に基づいて、ユーザインターフェイス情報を作成する。作成されるユーザインターフェイス情報は、ユーザインターフェイスを提供する際にユーザに提示するメッセージと、ユーザから受け付けることが可能な操作内容と、操作を受け付けた場合に実行する関数とを含む。そして、ステップＳ２４８の処理を終えた場合、制御スクリプト処理部５７は、本フローを終了する。
【０１５０】
図３２は、ユーザの操作待ちイベントに対するユーザインターフェイスを生成するために用いられるユーザインターフェイス情報の一例を示す図である。
【０１５１】
例えば、スキャナ３２によるスキャン動作中に、ユーザによる原稿のセット操作を待っている場合、制御スクリプト処理部５７は、図３２に示すようなユーザインターフェイス情報を生成する。図３２のユーザインターフェイス情報には、「次の原稿をセットしてください。」というメッセージが含まれる。また、図３２のユーザインターフェイス情報には、ユーザから受け付けることが可能な操作内容として、キャンセル操作、読み取り終了操作および継続操作を含む。また、図３２のユーザインターフェイス情報には、キャンセル操作を受け付けた場合に実行する関数、読み取り終了操作を受け付けた場合に実行する関数、および、継続操作を受け付けた場合に実行する関数を含む。
【０１５２】
なお、制御スクリプト処理部５７は、ユーザインターフェイス情報として、さらに、エラーの場合、警告を与える場合および正常に終了した場合等に提供するユーザインターフェイスを生成するためのユーザインターフェイス情報を生成してもよい。
【０１５３】
図３３は、ジャム発生イベントに対するユーザインターフェイスを生成するために用いられるユーザインターフェイス情報の一例を示す図である。ユーザインターフェイス情報には、さらに、機器の状態を識別する識別情報（ＩＤ）を含んでもよい。例えば、制御スクリプト処理部５７は、与えられたイベントを識別するＩＤを含んでもよい。これにより、ウェブスクリプト処理部５６は、さらに詳細な画面制御をすることが可能となる。例えば、ウェブスクリプト処理部５６は、同一のメッセージ（例えば、同一の警告メッセージ）を含むユーザインターフェイス情報を取得した場合であっても、ある特定の警告に対しては、異なる警告メッセージを作成する等の処理をすることができる。
【０１５４】
以上のように、本実施形態に係る画像形成システム７５は、変換スクリプト処理部５８が変換スクリプトを実行することにより、スキャナ３２またはプリンタ３３のジョブの実行状態を解析し、実行状態に応じたイベントを発行する。さらに、制御スクリプト処理部５７がイベントに応じて、ユーザインターフェイスを生成するために必要なユーザインターフェイス情報（メッセージ、関数等）を生成する。そして、表示制御部５２がＨＴＭＬファイル（操作プログラム）を実行することにより、ユーザインターフェイス情報に応じたユーザインターフェイスを提供する。
【０１５５】
従って、本実施形態に係る画像形成システム７５は、ＨＴＭＬファイルで予め作成された、制御スクリプトおよび変換スクリプトを呼び出せば、スキャナ３２またはプリンタ３３のジョブの実行状態に対応した適切なユーザインターフェイスを提供することができる。従って、本実施形態に係る画像形成システム７５によれば、スキャナ３２およびプリンタ３３の状態を理解するための詳細な知識が無くても、ユーザインターフェイスを提供するためのＨＴＭＬファイル（操作プログラム）等を容易に作成することができる。
【０１５６】
なお、本実施形態において、変換スクリプト処理部５８は、ジョブの実行状態に応じたイベントに限らず、ジョブを実行していないスキャナ３２およびプリンタ３３の状態に応じたイベントを発行してもよい。状態通知部４３は、スキャナ３２およびプリンタ３３の状態を監視し、スキャナ３２およびプリンタ３３の状態が変化した場合に、その変化後の状態を示す状態データをブラウザプログラムに通知する。この場合には、図２９に示すシーケンスが実行されて、イベントの発行、ユーザインターフェイス情報の発行およびユーザインターフェイスの表示がされる。
【０１５７】
図３４は、第２実施形態の第１の変形例に係る画像形成システム７５の構成を示す図である。なお、第２実施形態の第１の変形例〜第３の変形例では、図２４と同様の機能および構成を有する部材は同一の符号を付けて相違点についてのみ説明する。
【０１５８】
第２実施形態の第１の変形例に係るサーバ装置２０は、メッセージ記憶部５９をさらに有する。メッセージ記憶部５９は、ユーザインターフェイス情報に含まれるべき複数のメッセージを記憶する。メッセージ記憶部５９は、それぞれのメッセージを識別する情報（メッセージＩＤ）に対応付けて記憶する。メッセージ記憶部５９に含まれる複数のメッセージは、制御スクリプト等とともに情報処理部３５によりダウンロードされる。
【０１５９】
第２実施形態の第１の変形例においては、ユーザインターフェイス情報には、メッセージに代えて、メッセージ記憶部５９内のメッセージを識別するためのメッセージＩＤが含まれる。そして、ウェブスクリプト処理部５６は、ユーザインターフェイス情報を受け取った場合、メッセージＩＤに基づきメッセージを取得して、画面を生成する。
【０１６０】
このような第２実施形態の第１の変形例に係る画像形成システム７５によれば、制御スクリプトと、メッセージとが別個に記憶されているので、ＨＴＭＬファイルの開発者等がメッセージ記憶部５９内のメッセージを書き換えることにより、メッセージの内容を変更することができる。
【０１６１】
図３５は、第２実施形態の第２の変形例に係る画像形成システム７５の構成を示す図である。
【０１６２】
第２の変形例に係る画像形成システム７５は、サーバ装置２０と、画像形成装置３０と、情報処理装置６０とを備える。第２の変形例に係る画像形成装置３０は、ネットワークＩ／Ｆ３１と、スキャナ３２と、プリンタ３３と、情報処理部３５とを備え、操作表示部３４を備えていない。また、情報処理部３５は、プログラムインターフェイス部４２を有し、ブラウザ部４１および状態通知部４３を有してない。
【０１６３】
情報処理装置６０は、ネットワークＩ／Ｆ６１と、情報処理部６２と、操作表示部３４とを有する。ネットワークＩ／Ｆ６１は、ネットワークＩ／Ｆ３１と同様の機能および構成を有する。情報処理部６２は、ブラウザ部４１と、状態通知部４３とを有する。情報処理部６２のハードウェア構成は、情報処理部３５と同様である。
【０１６４】
そして、第２実施形態の第２の変形例において、プログラムインターフェイス部４２は、ネットワーク１２を介して、ブラウザ部４１および状態通知部４３と通信をする。
【０１６５】
このような第２実施形態の第２の変形例に係る画像形成システム７５によれば、画像形成装置３０から操作用の情報処理装置を別体とすることができる。
【０１６６】
図３６は、第２実施形態の第３の変形例に係る画像形成装置３０の構成を示す図である。第３の変形例に係る情報処理部３５は、サーバインターフェイス部７１と、情報提供部２２とをさらに有する。
【０１６７】
サーバインターフェイス部７１は、ブラウザプログラムから情報提供部２２へとアクセスするためのソフトウェアインターフェイスである。このような情報処理部３５は、スキャナ３２およびプリンタ３３と、操作用の情報処理装置と、操作プログラム、ウェブスクリプト、制御スクリプトおよび変換スクリプトを記憶する情報提供部２２とが一体化されている。
【０１６８】
このような第２実施形態の第３の変形例に係る画像形成装置３０によれば、ネットワーク１２を介してサーバ装置２０にアクセスせずに、操作プログラム、ウェブスクリプト、制御スクリプトおよび変換スクリプトを取得することができる。
【０１６９】
（第３実施形態）
つぎに、第３実施形態に係る画像形成システム８０について説明する。第３実施形態に係る画像形成システム８０は、図２４から図３６を参照して説明した第２実施形態に係る画像形成システム７５と略同一の機能および構成を有する。従って、第２実施形態に係る画像形成システム７５と略同一の構成および機能を有する部材については、同一の符号を付けて相違点についてのみ説明する。
【０１７０】
図３７は、第３実施形態に係る画像形成システム８０の構成を示す図である。サーバ装置２０が有する情報提供部２２は、ネットワーク１２を介して、画像形成装置３０に対して、操作プログラム（例えばＨＴＭＬファイル）、ウェブスクリプト、制御スクリプトおよび変換スクリプトに加えて、管理スクリプトをさらに提供する。
【０１７１】
管理スクリプトは、ブラウザプログラムからダウンロードされ、ブラウザプログラム上で実行されるプログラムである。本実施形態においては、管理スクリプトは、ブラウザプログラム上で実行されるスクリプトプログラムである。
【０１７２】
画像形成装置３０が有する情報処理部３５は、ブラウザプログラムを実行し、ブラウザプログラム上でサーバ装置２０から、操作プログラム、ウェブスクリプト、制御スクリプト、変換スクリプトおよび管理スクリプトをさらにダウンロードする。そして、情報処理部３５は、これらのプログラム（管理スクリプト等）をブラウザプログラム上で実行することにより、スキャナ３２およびプリンタ３３を操作するためのユーザインターフェイスを提供する。
【０１７３】
ブラウザ部４１は、管理スクリプト処理部８１をさらに含む。通信部５１は、管理スクリプト等を、サーバ装置２０から取得する。
【０１７４】
管理スクリプト処理部８１は、プロセッサがブラウザプログラム上で管理スクリプトを実行することにより機能する。管理スクリプト処理部８１は、変換スクリプト処理部５８から発行されるイベントの発行順序を管理する。より具体的には、管理スクリプト処理部８１は、変換スクリプト処理部５８により生成されたイベントが、発行済みのイベントよりも前に発行すべきイベントである場合、変換スクリプト処理部５８により生成されたイベントを廃棄する。
【０１７５】
例えば、管理スクリプト処理部８１は、ジョブ毎に、そのジョブに対して発行されるべき複数のイベントと、そのジョブ内におけるそれぞれのイベントの発行順序を示す順序値とを対応付けたテーブルとを管理する。そして、管理スクリプト処理部８１は、変換スクリプト処理部５８により生成されたイベントの順序値と、発行済みのイベントに対応付けられた順序値とを比較して、生成されたイベントが、発行済みのイベントより前に発行すべきイベントであるか否かを判断する。これにより、管理スクリプト処理部８１は、生成されたイベントが、発行済みのイベントよりも前に発行すべきイベントである場合に、そのイベントを廃棄することができる。
【０１７６】
図３８は、第３実施形態に係る画像形成システム８０の処理開始時のシーケンス図である。図３８に示すシーケンスは、第２実施形態の図２５に示すシーケンスに対応する。
【０１７７】
画像形成装置３０からのスクリプトの取得要求（Ｓ１１７）に応じて、ステップＳ１１８において、サーバ装置２０は、管理スクリプト等を含むレスポンスを通信部５１に送信する。続いて、ステップＳ１１９において、通信部５１は、管理スクリプト等を含むレスポンスを表示制御部５２に送信する。
【０１７８】
表示制御部５２は、スクリプト取得要求に対するレスポンスを受信すると（Ｓ１１９）、そのレスポンスから、管理スクリプトを抽出する。そして、ステップＳ３０１において、表示制御部５２は、抽出した管理スクリプトの解析指示を管理スクリプト処理部８１に与える。解析指示が与えられると、管理スクリプト処理部８１は、管理スクリプトを解析し、管理スクリプトの実行を待機した状態となる。続いて、ステップＳ３０２において、管理スクリプト処理部８１は、解析が終了すると、レスポンスを表示制御部５２に送信する。
【０１７９】
このようなシーケンスを実行することにより、情報処理部３５は、管理スクリプト等をサーバ装置２０から取得して、管理スクリプトの実行を待機する状態とすることができる。
【０１８０】
図３９は、第３実施形態に係る画像形成システム８０のイベント発行時のシーケンス図である。図３９に示すシーケンスは、第２実施形態の図２９に示すシーケンスに対応する。
【０１８１】
ステップＳ１７５において、変換スクリプト処理部５８は、ジョブ情報に示されたジョブの実行状態に基づきイベントを生成し、生成したイベントを管理スクリプト処理部８１へと発行する。
【０１８２】
続いて、ステップＳ３１１において、管理スクリプト処理部８１は、管理スクリプトを実行して、変換スクリプト処理部５８により生成されたイベントを解析して、生成されたイベントが、同一のジョブについて発行済みのイベントよりも前に発行すべきイベントであるか否かを判断する。管理スクリプト処理部８１は、生成されたイベントが、同一のジョブについて発行済みのイベントよりも前に発行すべきイベントである場合には、そのイベントを廃棄して、当該シーケンスを終了させる。
【０１８３】
変換スクリプト処理部５８により生成されたイベントが、同一のジョブについて発行済みのイベントよりも前に発行すべきイベントではない場合には、続いて、ステップＳ３１２において、管理スクリプト処理部８１は、そのイベントを、制御スクリプト処理部５７に対して発行する。このようなシーケンスを実行することにより、情報処理部３５は、予め定められた順序でユーザインターフェイス画面を生成して表示することができる。
【０１８４】
図４０は、イベント発行時の変換スクリプト処理部５８および管理スクリプト処理部８１の処理フローを示す図である。図４０に示すフローチャートは、図１１に示すフローチャートに対応する。
【０１８５】
第３実施形態では、ステップＳ１８１からステップＳ１９０まで、変換スクリプト処理部５８は、図１１のステップＳ６１からステップＳ７０までと同一の処理を実行する。
【０１８６】
ステップＳ１９０の処理を終えると、変換スクリプト処理部５８は、生成したイベントを管理スクリプト処理部８１へと発行する。そして、管理スクリプト処理部８１は、変換スクリプト処理部５８からイベントを受け取ると、ステップＳ３２１の処理を実行する。
【０１８７】
ステップＳ３２１において、管理スクリプト処理部８１は、順序通りのイベントか否かを判断する。すなわち、管理スクリプト処理部８１は、生成されたイベントが、同一のジョブについて発行済みのイベントよりも前に発行すべきイベントであるか否かを判断する。管理スクリプト処理部８１は、生成されたイベントが、順序通りのイベントではない場合（ステップＳ３２１のＮｏ）、本フローを終了する。
【０１８８】
管理スクリプト処理部８１は、生成されたイベントが、順序通りのイベントである場合（ステップＳ３２１のＹｅｓ）、処理をステップＳ３２２に進める。続いて、ステップＳ３２２において、管理スクリプト処理部８１は、変換スクリプト処理部５８により生成されたイベントを、表示制御部５２に対して発行する。管理スクリプト処理部８１は、イベントを発行すると本フローを終了する。
【０１８９】
図４１は、スキャナジョブにおいて発行されるイベントの発行順序の一例を示す図である。
【０１９０】
スキャナジョブの生成要求をスキャナ３２に与えた場合、変換スクリプト処理部５８は、例えば、図４１に示されるような順序でイベントを発行する。すなわち、変換スクリプト処理部５８は、まず、読み取り開始イベント（Ｓ３３１）を発行し、続いて、１枚目の用紙の読み取り完了イベント（Ｓ３３２）を発行し、続いて、次原稿待ちイベント（Ｓ３３３）を発行する。ユーザにより次の原稿がセットされると、スキャナ３２はスキャンを実行する。
【０１９１】
続いて、変換スクリプト処理部５８は、２枚目の用紙の読み取り完了イベント（Ｓ３３４）を発行する。ユーザにより読み取りの終了操作がされると、続いて、変換スクリプト処理部５８は、ファイル生成開始イベントを発行し（Ｓ３３５）、続いて、送信開始イベント（Ｓ３３６）を発行する。そして、最後に、変換スクリプト処理部５８は、完了イベント（Ｓ３３７）を発行する。
【０１９２】
ところで、変換スクリプト処理部５８は、プログラムインターフェイス部４２および状態通知部４３を介して、スキャナ３２の状態を受信し、受信した状態に応じてイベントを発行する。従って、スキャナ３２の状態が切り替わっても、直ぐに変換スクリプト処理部５８へと情報が通知されなかったり、連続した２つの状態を表す情報が同時に通知されたり、または、連続した２つの状態を表す情報の順番が入れ替わったりする可能性がある。
【０１９３】
このような場合、変換スクリプト処理部５８は、例えば、図４１に示したような、正しい順序でイベントを発行できず、例えば、完了イベント（Ｓ３３７）を発行した後に、送信開始イベント（Ｓ３３６）を発行してしまう可能性がある。このため、ウェブスクリプト処理部５６では、ファイルの送信を完了したにも関わらず、「送信中」を示したユーザインターフェイスを表示してしまうという可能性がある。
【０１９４】
しかし、第３実施形態では、情報処理部３５は、管理スクリプト処理部８１を有する。管理スクリプト処理部８１は、変換スクリプト処理部５８により生成されたイベントが、発行済みのイベントよりも前に発行すべきイベントであるか否かを判断する。そして、管理スクリプト処理部８１は、変換スクリプト処理部５８により生成されたイベントが、発行済みのイベントよりも前に発行すべきイベントである場合には、そのイベントを廃棄する。これにより、管理スクリプト処理部８１は、誤った順序でイベントが発行されることを無くすことができる。
【０１９５】
図４２は、スキャナジョブにおいて発行されるイベントと順序値との対応関係を表すテーブルを示す図である。管理スクリプト処理部８１は、一例として、図４２に示すような管理テーブルを保持して、イベントの発行順序を管理する。
【０１９６】
管理テーブルは、ジョブ毎に、そのジョブについて発行されるべき複数のイベントと、そのジョブ内におけるそれぞれのイベントの発行順序を示す順序値とを対応付けている。
【０１９７】
順序値は、一例として、先に発行されるべきイベントに対しては小さい値が割り振られ、後に発行されるべきイベントに対しては大きい値が割り振られる。例えば、最初に発行されるべきイベントの順序値を１とすると、次に発行されるべきイベントの順序値が２、さらに次に発行されるべきイベントの順序値が３といったように割り振られる。なお、順序値は、後に発行されるべきイベントに対して小さい値が割り振られていてもよい。
【０１９８】
また、同一の順序値が複数のイベントに割り振られてもよい。同一の順序値が割り振られたイベントは、何れが先に実行されてもよい。
【０１９９】
このような管理テーブルを保持する場合、管理スクリプト処理部８１は、直前に発行したイベントの順序値を記憶しておく。そして、管理スクリプト処理部８１は、変換スクリプト処理部５８により生成された現在のイベントの順序値と、発行済みの直前のイベントに対応付けられた順序値とを比較して、現在のイベントの順序値が、直前のイベントの順序値以上であるか否かを判断する。
【０２００】
そして、管理スクリプト処理部８１は、現在のイベントの順序値が、直前のイベントの順序値以上であれば、現在のイベントを発行する。また、管理スクリプト処理部８１は、最新のイベントの順序値が、直前のイベントの順序値より小さい場合には、現在のイベントを破棄する。これにより、管理スクリプト処理部８１は、生成されたイベントが、発行済みのイベントより前に発行すべきイベントであるか否かを判断することができる。
【０２０１】
なお、管理スクリプト処理部８１は、変換スクリプト処理部５８により生成されたイベントが廃棄される場合、最新のイベントではないイベントが生成されたことを示す情報を発行して、制御スクリプト処理部５７またはウェブスクリプト処理部５６に通知してもよい。これにより、ＨＴＭＬファイルの開発者等が、最新のイベントではないイベントが生成されたことを示す情報に基づき、より詳細な情報を含むユーザインターフェイスの表示または制御等を実行させることができる。
【０２０２】
なお、以上説明した実施形態は、例として提示したものであり、発明の範囲を限定することを意図するものではない。また、これら実施形態は、その他の様々な形態で実施されることが可能である。
【０２０３】
また、本発明の一態様として、次のようなプログラムを提供してもよい。すなわち、機器を操作するための情報処理装置により実行されるプログラムであって、前記情報処理装置は、ユーザに対して情報を表示するとともに前記ユーザからの入力を受け付ける操作表示部と、ブラウザプログラムを実行するプロセッサを有する情報処理部と、を備え、前記プログラムは、前記機器を操作するためのユーザインターフェイスを前記操作表示部から提供する操作プログラムおよび変換スクリプトを含み、前記変換スクリプトは、前記プロセッサが前記ブラウザプログラム上で実行することにより、前記機器の状態を解析し、前記機器の状態に応じたイベントを発行し、前記操作プログラムは、前記プロセッサが前記ブラウザプログラム上で実行することにより、前記イベントが発行されたことに応じて前記イベントに対応した前記ユーザインターフェイスを前記操作表示部から提供する、プログラムを提供してもよい。
【０２０４】
また、前記プログラムは、前記機器を操作するためのユーザインターフェイスを前記操作表示部から提供する操作プログラム、制御スクリプトおよび変換スクリプトを含み、前記変換スクリプトは、前記プロセッサが前記ブラウザプログラム上で実行することにより、前記機器の状態を解析し、前記機器の状態に応じたイベントを発行し、前記制御スクリプトは、前記プロセッサが前記ブラウザプログラム上で実行することにより、前記イベントが発行されたことに応じて前記イベントに対応した前記ユーザインターフェイスを生成するために用いられるユーザインターフェイス情報を発行し、前記操作プログラムは、前記プロセッサが前記ブラウザプログラム上で実行することにより、前記ユーザインターフェイス情報が発行されたことに応じて前記ユーザインターフェイス情報に従った前記ユーザインターフェイスを前記操作表示部から提供するプログラム、であってもよい。
【符号の説明】
【０２０５】
１０  画像形成システム
１２  ネットワーク
２０  サーバ装置
２１  ネットワークＩ／Ｆ
２２  情報提供部
３０  画像形成装置
３１  ネットワークＩ／Ｆ
３２  スキャナ
３３  プリンタ
３４  操作表示部
３５  情報処理部
４１  ブラウザ部
４２  プログラムインターフェイス部
４３  状態通知部
５１  通信部
５２  表示制御部
５３  入力部
５４  受信部
５６  ウェブスクリプト処理部
５７  制御スクリプト処理部
５８  変換スクリプト処理部
５９  メッセージ記憶部
６０  情報処理装置
６１  ネットワークＩ／Ｆ
６２  情報処理部
７１  サーバインターフェイス部
８０  画像形成システム
８１  管理スクリプト処理部
１０１  ＣＰＵ
１０２  メモリ
１０３  記憶装置
１１１  ＣＰＵ
１１２  メモリ
１１３  記憶装置
１１４  デバイスＩ／Ｆ
【先行技術文献】
【特許文献】
【０２０６】
【特許文献１】特開２０１２−１０５０７１号公報
【図１】
2015201167.tif 000003
【図２】
2015201167.tif 000004
【図３】
2015201167.tif 000005
【図４】
2015201167.tif 000006
【図５】
2015201167.tif 000007
【図６】
2015201167.tif 000008
【図７】
2015201167.tif 000009
【図８】
2015201167.tif 000010
【図９】
2015201167.tif 000011
【図１０】
2015201167.tif 000012
【図１１】
2015201167.tif 000013
【図１２】
2015201167.tif 000014
【図１３】
2015201167.tif 000015
【図１４】
2015201167.tif 000016
【図１５】
2015201167.tif 000017
【図１６】
2015201167.tif 000018
【図１７】
2015201167.tif 000019
【図１８】
2015201167.tif 000020
【図１９】
2015201167.tif 000021
【図２０】
2015201167.tif 000022
【図２１】
2015201167.tif 000023
【図２２】
2015201167.tif 000024
【図２３】
2015201167.tif 000025
【図２４】
2015201167.tif 000026
【図２５】
2015201167.tif 000027
【図２６】
2015201167.tif 000028
【図２７】
2015201167.tif 000029
【図２８】
2015201167.tif 000030
【図２９】
2015201167.tif 000031
【図３０】
2015201167.tif 000032
【図３１】
2015201167.tif 000033
【図３２】
2015201167.tif 000034
【図３３】
2015201167.tif 000035
【図３４】
2015201167.tif 000036
【図３５】
2015201167.tif 000037
【図３６】
2015201167.tif 000038
【図３７】
2015201167.tif 000039
【図３８】
2015201167.tif 000040
【図３９】
2015201167.tif 000041
【図４０】
2015201167.tif 000042
【図４１】
2015201167.tif 000043
【図４２】
2015201167.tif 000044