(57)【要約】【課題】ブラウザ上で動作する制御プログラムを、競合する設定条件を有する新たな機器に容易に対応させる。【解決手段】通信部５１は、サーバ装置２０から操作表示部３４に表示させる画面と、１以上のスクリプトと、を取得する。第１取得部５５は、第１の設定情報を取得する。第２取得部５６は、情報処理装置３０に対して処理要求を送信するウェブアプリケーション２４で設定された設定条件を規定した第２の設定情報をウェブアプリケーション２４から取得する。第３取得部５７は、競合情報を取得する。検出部５８は、第２の設定情報に規定された設定条件のうち競合関係にある設定条件を、第３取得部５７で取得した競合情報に基づいて検出する。第１取得部５５、第２取得部５６、第３取得部５７、および検出部５８は、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能する。【選択図】図１
2016177796.tif 000002
【特許請求の範囲】
【請求項１】
表示部に画面を表示するブラウザを有する情報処理装置であって、
プロセッサと、
前記情報処理装置が処理を実行する際に設定できる設定条件であって、設定項目毎に設定可能な設定値を対応付けられている設定条件を規定した第１の設定情報と、前記情報処理装置が前記処理を実行する際に競合する前記設定条件の競合関係を示す競合情報と、を記憶する記憶部と、
外部装置に搭載されているウェブアプリケーションに対して前記ブラウザを介してアクセスし、該外部装置から前記表示部に表示させる画面と、１以上のスクリプトと、を取得する通信部と、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記記憶部に記憶されている前記第１の設定情報を取得する第１取得部と、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記情報処理装置に対して処理要求を送信する前記ウェブアプリケーションで設定された前記設定条件を規定した第２の設定情報を前記ウェブアプリケーションから取得する第２取得部と、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記記憶部に記憶されている前記競合情報を取得する第３取得部と、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記第２の設定情報に規定された前記設定条件のうち競合関係にある設定条件を、前記第３取得部で取得した前記競合情報に基づいて検出する検出部と、
を有する情報処理装置。
【請求項２】
前記検出部は、
ユーザによる前記設定条件の変更を受け付けたときに、前記第２の設定情報に規定された前記設定条件のうち変更を受付けた前記設定条件について、前記競合関係にある設定条件を、前記第３取得部で取得した前記競合情報に基づいて検出する、
請求項１に記載の情報処理装置。
【請求項３】
前記検出部は、
前記競合関係にある設定条件を検出したときに、前記競合関係にある設定条件に含まれる前記設定値を、前記競合関係にある設定条件を解消するように変更する、
請求項１または請求項２に記載の情報処理装置。
【請求項４】
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記競合関係にある設定条件が検出されたときに、前記競合関係にある設定条件を示す情報を前記表示部に表示する表示制御部、
を備えた請求項１〜請求項３の何れか１項に記載の情報処理装置。
【請求項５】
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記競合関係にある設定条件を解消するように変更した後の前記設定条件を前記表示部に表示する表示制御部、
を備えた請求項３に記載の情報処理装置。
【請求項６】
前記１以上のスクリプトは、複数のスクリプトを含み、
前記第１取得部、前記第２取得部、前記第３取得部、および前記検出部のそれぞれは、それぞれ別個のスクリプトが前記プロセッサにより前記ブラウザ上で実行されることによりそれぞれ機能すること、
を特徴とする請求項１〜請求項５の何れか１項に記載の情報処理装置。
【請求項７】
表示部に画面を表示するブラウザを有する情報処理部を備えた情報処理装置により実行される情報処理方法であって、
前記情報処理装置は、プロセッサと、前記情報処理装置が処理を実行する際に設定できる設定条件であって、設定項目毎に設定可能な設定値を対応付けられている設定条件を規定した第１の設定情報と、前記情報処理装置が前記処理を実行する際に競合する前記設定条件の競合関係を示す競合情報と、を記憶する記憶部と、を備え、
当該情報処理方法は、
外部装置に搭載されているウェブアプリケーションに対して前記ブラウザを介してアクセスし、該外部装置から前記表示部に表示させる画面と、１以上のスクリプトと、を取得するステップと、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記記憶部に記憶されている前記第１の設定情報を取得するステップと、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記情報処理装置に対して処理要求を送信する前記ウェブアプリケーションで設定された前記設定条件を規定した第２の設定情報を前記ウェブアプリケーションから取得するステップと、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記記憶部に記憶されている前記競合情報を取得するステップと、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記第２の設定情報に規定された前記設定条件のうち競合関係にある設定条件を、取得した前記競合情報に基づいて検出するステップと、
を含む情報処理方法。
【請求項８】
表示部に画面を表示するブラウザを有する情報処理部を備えたコンピュータに実行させる情報処理プログラムであって、
前記コンピュータは、プロセッサと、前記コンピュータが処理を実行する際に設定できる設定条件であって、設定項目毎に設定可能な設定値を対応付けられている設定条件を規定した第１の設定情報と、前記情報処理装置が前記処理を実行する際に競合する前記設定条件の競合関係を示す競合情報と、を記憶する記憶部と、を備え、
当該情報処理プログラムは、
外部装置に搭載されているウェブアプリケーションに対して前記ブラウザを介してアクセスし、該外部装置から前記表示部に表示させる画面と、１以上のスクリプトと、を取得するステップと、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記記憶部に記憶されている前記第１の設定情報を取得するステップと、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記情報処理装置に対して処理要求を送信する前記ウェブアプリケーションで設定された前記設定条件を規定した第２の設定情報を前記ウェブアプリケーションから取得するステップと、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記記憶部に記憶されている前記競合情報を取得するステップと、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記第２の設定情報に規定された前記設定条件のうち競合関係にある設定条件を、取得した前記競合情報に基づいて検出するステップと、
を含む情報処理プログラム。
【請求項９】
サーバ装置と、前記サーバ装置にネットワークを介して接続され、表示部に画面を表示するブラウザを有する情報処理装置と、を備えた情報処理システムであって、
前記情報処理装置は、
プロセッサと、
前記情報処理装置が処理を実行する際に設定できる設定条件であって、設定項目毎に設定可能な設定値を対応付けられている設定条件を規定した第１の設定情報と、前記情報処理装置が前記処理を実行する際に競合する前記設定条件の競合関係を示す競合情報と、を記憶する記憶部と、
前記サーバ装置に搭載されているウェブアプリケーションに対して前記ブラウザを介してアクセスし、該サーバ装置から前記表示部に表示させる画面と、１以上のスクリプトと、を取得する通信部と、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記記憶部に記憶されている前記第１の設定情報を取得する第１取得部と、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記情報処理装置に対して処理要求を送信する前記ウェブアプリケーションで設定された前記設定条件を規定した第２の設定情報を前記ウェブアプリケーションから取得する第２取得部と、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記記憶部に記憶されている前記競合情報を取得する第３取得部と、
取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記第２の設定情報に規定された前記設定条件のうち競合関係にある設定条件を、前記第３取得部で取得した前記競合情報に基づいて検出する検出部と、
を有する、情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、情報処理プログラム、および情報処理システムに関する。
【背景技術】
【０００２】
ウェブページを閲覧するためのブラウザから操作が可能な複合機などの機器が知られている。このような機器は、スキャナまたはプリンタ等の機能をブラウザから制御するためのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を有している。また、スキャナやプリンタ等の機器をブラウザから操作するための操作用のウェブページを、機器ごとの属性情報を用いて作成する技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ここで、ウェブアプリケーションで設定した複数の設定条件が、機器側の制約上互いに競合関係にある場合、設定した設定条件を機器側で実行できない場合がある。しかし、従来では、競合関係にある設定条件を考慮した対応がなされておらず、ブラウザ上で動作する制御プログラムを、新たな機器に容易に対応させることは困難であった。
【課題を解決するための手段】
【０００４】
上述した課題を解決し、目的を達成するために、本発明は、表示部に画面を表示するブラウザを有する情報処理装置であって、プロセッサと、前記情報処理装置が処理を実行する際に設定できる設定条件であって、設定項目毎に設定可能な設定値を対応付けられている設定条件を規定した第１の設定情報と、前記情報処理装置が前記処理を実行する際に競合する前記設定条件の競合関係を示す競合情報と、を記憶する記憶部と、外部装置に搭載されているウェブアプリケーションに対して前記ブラウザを介してアクセスし、該外部装置から前記表示部に表示させる画面と、１以上のスクリプトと、を取得する通信部と、取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記記憶部に記憶されている前記第１の設定情報を取得する第１取得部と、取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記情報処理装置に対して処理要求を送信する前記ウェブアプリケーションで設定された前記設定条件を規定した第２の設定情報を前記ウェブアプリケーションから取得する第２取得部と、取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記記憶部に記憶されている前記競合情報を取得する第３取得部と、取得した前記１以上のスクリプトを前記プロセッサが前記ブラウザ上で実行することにより機能し、前記第２の設定情報に規定された前記設定条件のうち競合関係にある設定条件を、前記第３取得部で取得した前記競合情報に基づいて検出する検出部と、を有する。
【発明の効果】
【０００５】
本発明によれば、ブラウザ上で動作する制御プログラムを、競合する設定条件を有する新たな機器に容易に対応させることができる。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施の形態に係る情報処理システムの構成を示す図である。
【図２】図２は、第１の設定情報のデータ構成の一例を示す図である。
【図３】図３は、競合情報のデータ構成の一例を示す図である。
【図４】図４は、第２の設定情報のデータ構成の一例を示す図である。
【図５】図５は、管理情報のデータ構造の一例を示す図である。
【図６】図６は、画面の一例を示す模式図である。
【図７】図７は、画面の一例を示す模式図である。
【図８】図８は、画面の一例を示す模式図である。
【図９】図９は、ジョブデータの一例を示す図である。
【図１０】図１０は、実施の形態に係る情報処理システムのハードウェア構成を示す図である。
【図１１】図１１は、情報処理の手順の一例を示すフローチャートである。
【図１２】図１２は、情報処理の手順の一例を示すフローチャートである。
【図１３】図１３は、登録処理の手順の一例を示すフローチャートである。
【図１４】図１４は、検出処理の手順の一例を示すフローチャートである。
【図１５】図１５は、表示処理の手順の一例を示すフローチャートである。
【図１６】図１６は、実施の形態に係る情報処理システムの構成を示す図である。
【図１７】図１７は、スクリプトの説明図である。
【図１８】図１８は、情報処理システムのハードウェア構成を示す図である。
【図１９】図１９は、情報処理の手順の一例を示すフローチャートである。
【図２０】図２０は、図１９のステップＳ１０４０の処理の手順を示すフローチャートである。
【図２１】図２１は、図２０のステップＳ２０６０の処理の手順を示すフローチャートである。
【図２２】図２２は、図２０のステップＳ２１２０の処理の手順を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下、添付図面を参照しながら、本発明に係る、情報処理装置、情報処理方法、情報処理プログラム、および情報処理システムの実施の形態を詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【０００８】
（第１の実施の形態）
図１は、本実施の形態に係る情報処理システム１０の構成を示す図である。情報処理システム１０は、サーバ装置２０と、情報処理装置３０とを備える。
【０００９】
サーバ装置２０と情報処理装置３０とは、ネットワーク１２を介して接続される。ネットワーク１２は、一例として、公衆に接続されたインターネット等のネットワークであってもよいし、社内等のローカルネットワークであってもよい。また、ネットワーク１２は、有線であっても無線であってもよい。
【００１０】
サーバ装置２０は、情報処理装置３０からアクセスされる。
【００１１】
サーバ装置２０は、ネットワークＩ／Ｆ２１と、ウェブアプリケーション２４と、を有する。ネットワークＩ／Ｆ２１は、ネットワーク１２を介して他の装置と通信するためのインターフェースである。
【００１２】
ウェブアプリケーション２４は、情報処理装置３０から、情報処理装置３０の後述するブラウザを介してアクセスされる。ウェブアプリケーション２４は、情報提供部２２と、アプリ処理部２３と、を含む。
【００１３】
アプリ処理部２３は、情報処理装置３０から、情報処理装置３０の後述する情報処理部３５のブラウザを介してアクセスされる。ユーザは、情報処理装置３０のブラウザを介してアプリ処理部２３にアクセスし、情報処理装置３０で実行する処理の各種設定条件を、ウェブアプリケーション２４上で設定する。アプリ処理部２３は、設定された設定条件を管理する。ウェブアプリケーション２４は、ウェブアプリケーション２４上で設定された設定条件を含む処理要求を情報処理装置３０へ送信する。設定条件については、詳細を後述する。
【００１４】
情報提供部２２は、ネットワーク１２を介して、情報処理装置３０に対して、１以上のスクリプトを提供する。これらのスクリプトは、情報処理装置３０がサーバ装置２０から操作プログラムを取得し、操作プログラムを実行することで、サーバ装置２０から情報処理装置３０へ提供される。操作プログラムは、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述されたＨＴＭＬファイルであり、これらのスクリプトが埋め込まれている。また、操作プログラムには、サーバ装置２０から情報処理装置３０の表示部(後述する操作表示部３４)に表示させる画面の生成に用いる情報（例えば、基本の項目や表示に用いる枠など）が記述されている。画面は、各種情報や画像を表示すると共に、ユーザからの操作指示を受付けるユーザインターフェースである。
【００１５】
１以上のスクリプトは、例えば、複数のスクリプトを含む。これらのスクリプトは、情報処理装置３０のブラウザ上で実行されるスクリプトプログラムである。これらのスクリプトは、例えば、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述される。
【００１６】
情報処理装置３０は、プロセッサを備える。情報処理装置３０は、ネットワークＩ／Ｆ３１と、機器３６と、操作表示部３４と、情報処理部３５とを有する。ネットワークＩ／Ｆ３１は、ネットワーク１２を介して他の装置と情報を送受信するためのインターフェースである。
【００１７】
機器３６は、各種処理を実行する機器である。機器３６は、例えば、スキャナ、プリンタ、ファックスの少なくとも１つの機能を有する。本実施の形態では、機器３６は、プリンタ３２である場合を一例として説明する。
【００１８】
プリンタ３２は、データに応じた文字および画像等を用紙等に印刷する。なお、情報処理装置３０は、他の機器３６を備えた構成であってもよい。
【００１９】
操作表示部３４は、ユーザに対して情報を表示するとともにユーザからの入力を受け付ける。操作表示部３４は、一例として、タッチパネルである。また、操作表示部３４は、操作ボタン、マウス、キーボード等を有してもよい。
【００２０】
情報処理部３５は、操作表示部３４に画面を表示するブラウザ４１を有する。情報処理部３５は、サーバ装置２０に搭載されているウェブアプリケーション２４に対して、ブラウザ４１を介してアクセスし、サーバ装置２０から操作プログラムを取得する。これにより、情報処理部３５は、サーバ装置２０から操作表示部３４に表示させる画面と、１以上のスクリプトと、を取得する。そして、情報処理部３５は、１以上のスクリプトの各々をブラウザ４１上で実行することにより、機器３６を制御する制御プログラムとして機能する。
【００２１】
詳細には、情報処理部３５は、ブラウザ４１と、プログラムインターフェース部４２と、を有する。
【００２２】
プログラムインターフェース部４２は、ブラウザ４１からプリンタ３２の動作を制御するためのソフトウェアインターフェースである。プログラムインターフェース部４２は、ブラウザ４１からの各種要求に応じて、プリンタ３２を制御する。
【００２３】
プログラムインターフェース部４２は、記憶部４２Ｅと、認証部４２Ｃと、実行制御部４２Ｄと、を含む。記憶部４２Ｅは、第１管理部４２Ａと、第２管理部４２Ｂと、を含む。
【００２４】
第１管理部４２Ａは、第１の設定情報を記憶する。第１の設定情報は、情報処理装置３０が処理を実行する際に設定できる設定条件であって、設定項目毎に設定可能な設定値を対応付けられている設定条件を規定した情報である。すなわち、第１の設定情報は、機器３６が処理を実行する際に設定できる設定条件を規定した情報である。
【００２５】
図２は、第１の設定情報６４のデータ構成の一例を示す図である。第１の設定情報６４に規定された設定条件は、設定項目と、設定値と、を含む。
【００２６】
第１の設定情報６４に規定された設定条件に含まれる設定項目は、機器３６に搭載された各種機能の内、ユーザによって指定および変更可能な機能を示す情報である。設定項目は、例えば、印刷色、印刷面、印刷に用いる用紙を搭載したトレイ、印刷部数、などである。なお、設定項目は、これらに限定されない。
【００２７】
第１の設定情報６４に規定された設定条件に含まれる設定値は、設定項目の各々に対応する値である。第１の設定情報６４には、設定条件に含まれる設定値として、機器３６で設定可能な設定値のとりうる値を、「設定値のリスト」として規定している。例えば、第１の設定情報６４には、設定項目“印刷色（ｐｒｉｎｔＣｏｌｏｒ）”に対応する「設定値のリスト」として、“白黒”、“グレー”、“自動設定”が対応づけられている。
【００２８】
図１に戻り、第２管理部４２Ｂは、競合情報を記憶する。競合情報は、情報処理装置３０が処理を実行する際に競合する設定条件の競合関係を示す。具体的には、競合情報は、機器３６が処理を実行する際に競合する設定条件の競合関係を示す。
【００２９】
図３は、競合情報６６のデータ構成の一例を示す図である。競合関係にある、とは、情報処理装置３０において同時に設定出来ない設定条件の組合せを意味する。言い換えると、競合関係は、情報処理装置３０において実行不可能な設定条件の組合せを意味する。
【００３０】
図３に示すように、例えば、情報処理装置３０では、設定項目“印刷面（ｐｒｉｎｔＳｉｄｅ）”と該設定項目に対応する設定値“雑誌綴じ”の設定条件と、設定項目“印刷に用いる用紙を搭載したトレイ（ｐａｐｅｒＴｒａｙ）”と該設定項目に対応する設定値“トレイ２”の設定条件と、は競合関係にあり、情報処理装置３０（プリンタ３２）において同時に設定することは出来ない。
【００３１】
なお、図３には、２つの設定条件が互いに競合関係にある例を示した。しかし、情報処理装置３０では、３つ以上の設定条件が互いに競合関係を示す場合がある。このため、競合情報６６は、競合する２つ以上の設定条件の組合せを示した情報であればよく、３つ以上の競合する設定条件の組合せを示した情報であってもよい。
【００３２】
なお、情報処理部３５に、複数種類の機器３６を接続した構成としてもよい。複数種類の機器３６は、機種および搭載する機能の少なくとも１つが互いに異なる。
【００３３】
この場合、第１管理部４２Ａは、各機器３６の各々に対応する第１の設定情報６４を、予め登録し、管理すればよい。また、第２管理部４２Ｂは、各機器３６の各々に対応する競合情報６６を、予め登録して管理すればよい。
【００３４】
図１に戻り、認証部４２Ｃは、ユーザによる操作表示部３４の操作により入力されたユーザＩＤを受付け、該ユーザＩＤによって識別されるユーザの認証処理を行う。実行制御部４２Ｄは、ブラウザ４１からの各種要求に応じて、プリンタ３２を制御する。
【００３５】
次に、ブラウザ４１について説明する。
【００３６】
ブラウザ４１は、通信部５１と、表示制御部５２と、受付部５３と、第１取得部５５と、第２取得部５６と、第３取得部５７と、検出部５８と、実行部５９と、を含む。これらの機能部は、情報処理装置３０のプロセッサがサーバ装置２０から取得したスクリプトをブラウザ４１で実行することにより機能する。
【００３７】
通信部５１は、サーバ装置２０に搭載されているウェブアプリケーション２４に対してブラウザ４１を介してアクセスし、サーバ装置２０から操作表示部３４に表示させる画面と、１以上のスクリプトと、を取得する。
【００３８】
本実施の形態では、１以上のスクリプトは、複数のスクリプトを含む場合を説明する。具体的には、本実施の形態では、例えば、１以上のスクリプトは、第１スクリプト、第２スクリプト、第３スクリプト、および制御スクリプトを含む場合を説明する。
【００３９】
すなわち、本実施の形態では、第１取得部５５、第２取得部５６、第３取得部５７、および検出部５８のそれぞれは、それぞれ別個のスクリプト（第１スクリプト、第２スクリプト、第３スクリプト、および制御スクリプトのそれぞれ）がプロセッサによりブラウザ４１上で実行されることによりそれぞれ機能する。
【００４０】
受付部５３は、操作表示部３４のユーザによる操作指示を受付ける。
【００４１】
第１取得部５５は、プロセッサがブラウザ４１上で第１スクリプトを実行することにより機能し、第１管理部４２Ａから第１の設定情報６４を取得する。
【００４２】
詳細には、第１取得部５５は、第１管理部４２Ａから第１の設定情報６４を取得する。なお、第１管理部４２Ａが複数種類の機器３６の各々に対応する第１の設定情報６４を管理する場合、第１取得部５５は、実行対象の機器３６に対応する第１の設定情報６４を第１管理部４２Ａから取得する。実行対象の機器３６を示す情報は、サーバ装置２０から取得してもよいし、操作表示部３４から取得してもよい。
【００４３】
第２取得部５６は、プロセッサがブラウザ４１上で第２スクリプトを実行することにより機能する。第２取得部５６は、第２の設定情報を、サーバ装置２０のウェブアプリケーション２４から取得する。
【００４４】
第２の設定情報は、当該情報処理装置３０に対して処理要求を送信するウェブアプリケーション２４で設定された設定条件を規定した情報である。
【００４５】
図４は、第２の設定情報６２のデータ構成の一例を示す図である。第２の設定情報６２に規定された設定条件は、設定項目と、設定値と、を含む。本実施の形態では、第２の設定情報６２に規定された設定条件は、設定項目と、設定値と、設定値のリストと、を含む。
【００４６】
第２の設定情報６２に規定された設定条件に含まれる設定項目は、上述したように、例えば、印刷色、印刷面、印刷に用いる用紙を搭載したトレイ、印刷部数、などである。なお、設定項目は、これらに限定されない。
【００４７】
第２の設定情報６２に規定された設定条件に含まれる設定値は、例えば、ユーザによる情報処理装置３０の操作表示部３４を介した操作指示により設定される。すなわち、情報処理装置３０からブラウザ４１を介してサーバ装置２０のウェブアプリケーション２４へアクセスすることで、情報処理装置３０のブラウザ４１は、第２の設定情報６２に規定された設定条件に含まれる設定値のリストを操作表示部３４へ表示する。第２の設定情報６２に規定された設定条件に含まれる設定値のリストは、選択可能な設定値のリストである。ユーザは、設定値のリストの中から、所望の設定値を選択する。これにより、第２の設定情報６２には、各設定項目に対応づけて、ユーザによって選択された設定値が初期の設定値として登録される。なお、第２の設定情報６２への登録処理は、アプリ処理部２３が行う。
【００４８】
以下では、第２の設定情報６２に設定された設定値を、「初期の設定値」と称して説明する。このため、第２の設定情報６２に規定された設定条件は、初期の設定値を含む。
【００４９】
図１に戻り、第３取得部５７は、プロセッサがブラウザ４１上で第３スクリプトを実行することによって機能する。第３取得部５７は、第２管理部４２Ｂに記憶されている競合情報６６を取得する。
【００５０】
本実施の形態では、第３取得部５７は、実行対象の機器３６に対応する競合情報６６を、第２管理部４２Ｂから取得する。実行対象の機器３６は、例えば、ユーザによる操作表示部３４の操作指示によって入力された機器であってもよい。
【００５１】
なお、第３取得部５７は、サーバ装置２０から競合情報６６を取得してもよい。この場合、サーバ装置２０では、機器３６の種類ごとに、競合情報６６を対応づけて予め記憶すればよい。そして、第３取得部５７は、実行対象の機器３６に対応する競合情報６６を、サーバ装置２０から取得すればよい。
【００５２】
検出部５８は、プロセッサがブラウザ４１上で制御スクリプトを実行することによって機能する。検出部５８は、第２の設定情報６２に規定された設定条件のうち、競合関係にある設定条件を、第３取得部５７で取得した競合情報６６に基づいて検出する。
【００５３】
詳細には、検出部５８は、まず、第２の設定情報６２に規定された設定条件に含まれる設定項目を読取る。そして、検出部５８は、読取った設定項目の内、第１の設定情報６４に含まれる設定項目を特定する。すなわち、検出部５８は、ウェブアプリケーション２４（アプリ処理部２３）で設定された設定項目の内、機器３６に対応する第１の設定情報６４に規定された設定項目を特定する。
【００５４】
そして、検出部５８は、第２の設定情報６２における、特定した設定項目と該設定項目に対応する設定値とを含む設定条件に対して、競合関係を有する他の設定条件が競合情報６６に登録されているか否かを判断する。そして、登録されている場合に、検出部５８は、競合関係にある設定条件を検出する。
【００５５】
なお、検出部５８は、第１取得部５５、第２取得部５６、および第３取得部５７の各々が、第１の設定情報６４、第２の設定情報６２、および競合情報６６の各々を取得したときに、競合関係にある設定条件の検出を行ってもよい。
【００５６】
また、検出部５８は、第１取得部５５、第２取得部５６、および第３取得部５７の各々が、第１の設定情報６４、第２の設定情報６２、および競合情報６６の各々を取得した後であって、且つ、ユーザによる設定条件の変更を受付けたときに、競合関係にある設定条件を検出してもよい。
【００５７】
この場合、検出部５８は、受付部５３が、ユーザによる設定条件の変更を受付けたときに、第２の設定情報６２に規定された設定条件のうち変更を受付けた設定条件について、競合関係にある設定条件を、第３取得部５７で取得した競合情報６６に基づいて検出すればよい。
【００５８】
また、検出部５８は、競合関係にある設定条件を検出したときに、競合関係にある設定条件に含まれる設定値を、競合関係にある設定条件を解消するように変更することが好ましい。
【００５９】
例えば、第２の設定情報６２に、競合情報６６に規定されている、設定項目“印刷面（ｐｒｉｎｔＳｉｄｅ）”と該設定項目に対応する設定値“雑誌綴じ”の設定条件と、設定項目“印刷に用いる用紙を搭載したトレイ（ｐａｐｅｒＴｒａｙ）”と該設定項目に対応する設定値“トレイ２”の設定条件と、の競合関係が含まれていたとする。
【００６０】
この場合、検出部５８は、競合関係にある設定条件を検出する。そして、検出部５８は、競合関係にある複数の設定条件のうちの少なくとも１つの設定条件に含まれる設定値を、競合関係にある設定条件を解消するように変更する。
【００６１】
具体的には、検出部５８は、例えば、競合関係にある一方の設定条件の設定値“トレイ２”を、競合関係を有さない設定値“トレイ１”に変更する。
【００６２】
なお、検出部５８による検出処理は、管理情報を更新することによって行われる。
【００６３】
管理情報は、第２の設定情報６２に規定されている設定条件に含まれる設定項目の各々について、第１の設定情報６４に規定されているか否か、設定値のリストが機器３６側で利用可能か否か、などを登録した情報である。
【００６４】
管理情報は、第１取得部５５、第２取得部５６、第３取得部５７、および検出部５８によって更新される。
【００６５】
図５は、管理情報６８のデータ構造の一例を示す図である。図５に示す例では、管理情報６８は、「設定項目」と、「設定値（確定した設定値、初期の設定値）」と、「機器で利用可能か否か」と、「リストに示される設定値の各々が利用可能か否か」と、「制約情報」と、を含む。
【００６６】
管理情報６８に規定される設定項目は、第２の設定情報６２に規定された設定条件に含まれる設定項目と、同じである。
【００６７】
管理情報６８に規定される設定値は、確定した設定値と、初期の設定値と、を含む。初期の設定値は、第２の設定情報６２に規定された設定条件に含まれる初期の設定値と同じである。確定した設定値は、検出部５８による競合関係を解消する処理などにより変更された後の設定値であり、機器３６に送信するジョブデータに含ませる設定値である。
【００６８】
管理情報６８に規定される「機器で利用可能か否か」は、対応する設定項目が実行対象の機器３６で利用可能であるか否かを示す。
【００６９】
管理情報６８に規定される「リストに示される設定値の各々が利用可能か否か」は、第２の設定情報６２（図４参照）に規定される、対応する「設定値のリスト」に示される設定値の各々が、実行対象の機器３６で利用可能か否かを示す。
【００７０】
管理情報６８に規定される「制約情報」は、第１の設定情報６４（図２参照）に規定されている「設定値のリスト」に登録されている、設定値の最大文字数、設定値の最大値、設定値の最小値などの制約を示す情報である。
【００７１】
管理情報６８の更新処理については、詳細を後述する。
【００７２】
図１に戻り、表示制御部５２は、プロセッサがブラウザ４１上で制御スクリプトを実行することによって機能する。表示制御部５２は、各種画像や情報を操作表示部３４へ表示する。
【００７３】
例えば、表示制御部５２は、サーバ装置２０から取得した操作プログラムのＨＴＭＬの記述（画面の生成に用いる情報（例えば、基本の項目や表示に用いる枠など））に沿って、画面の枠や表示する項目などを生成し、更に、該画面内に、設定された設定条件の各々について設定項目と設定項目に対応する設定値とを埋め込むことで、操作表示部３４に表示する画面を生成する。そして、表示制御部５２は、生成した画面を操作表示部３４に表示する。
【００７４】
図６は、画面７０の一例を示す模式図である。例えば、画面７０は、設定項目として、“印刷色”、“パンチ”、“印刷面”、“トレイ”、“印刷部数”の各々を含む。これらの設定項目の内、機器３６が提供する設定条件の一覧を規定した第１の設定情報６４に規定されていない設定項目は、利用不可能であるとして選択不可能に表示されている。図６に示す例では、例えば、第１の設定情報６４に規定されていない設定項目および対応する設定値のリストは、灰色で示され、操作入力を受付けない表示領域となっている。例えば、設定項目“パンチ”の表示領域は、操作入力を受付けない表示領域となっている。
【００７５】
また、各設定項目の表示領域の近傍には、第２の設定情報６２に規定されている、各設定項目に対応する設定値が表示されている。これらの設定の内、機器３６が提供する第１の設定情報６４に規定されていない設定値は、利用不可能であるとして選択不可能に表示されている。図６に示す例では、例えば、利用不可能な設定値は、灰色で示され、操作入力を受付けない表示領域となっている。例えば、設定項目“パンチ”の設定値“なし”、“上二つ穴”、“右二つ穴”、および設定項目“印刷色”の設定値“カラー”の表示領域は、操作入力を受付けない表示領域となっている。
【００７６】
また、各設定項目に対応する設定値の内、検出部５８によって確定した設定値は、強調表示されている。図６に示す例では、検出部５８によって確定した設定値は、二重線の枠で囲まれて表示されている。
【００７７】
表示制御部５２は、管理情報６８に基づいて画面７０を生成し、操作表示部３４へ表示する。
【００７８】
また、表示制御部５２は、検出部５８によって競合関係にある設定条件が検出されたときに、競合関係にある設定条件を示す情報を操作表示部３４に表示することが好ましい。
【００７９】
図７は、画面７１の一例を示す模式図である。例えば、表示制御部５２は、競合関係を示す情報として、「「印刷面：雑誌綴じ」と「トレイ：トレイ２」は競合するため設定出来ません。」などの情報７１Ａを含む画面７１を、操作表示部３４へ表示することが好ましい。
【００８０】
また、表示制御部５２は、競合関係にある設定条件の設定値を、競合関係にある設定条件を示す形態（例えば、他の領域とは異なる色）で表示することが好ましい。図７に示す例では、設定値“雑誌綴じ”と設定値“トレイ２”は、他の領域とは異なる色で表示されている。
【００８１】
また、表示制御部５２は、検出部５８によって競合関係にある設定条件が解消されたときに、競合関係にある設定条件を解消するように変更した後の設定条件を操作表示部３４に表示してもよい。
【００８２】
図８は、画面７２の一例を示す模式図である。例えば、検出部５８が、「印刷面：雑誌綴じ」と「トレイ：トレイ２」との競合関係を解消するために、設定項目“トレイ”の設定値“トレイ２”を、“トレイ１”に変更したとする。この場合、表示制御部５２は、変更後の設定条件を示す画面７２を操作表示部３４に表示すればよい。このとき、表示制御部５２は、設定値を変更したことを示す情報７２Ａ（例えば、「「トレイ」の設定を、「トレイ１」に変更しました。」を示す情報７２Ａ）を含む画面７２を、操作表示部３４に表示してもよい。
【００８３】
図１に戻り、実行部５９は、プロセッサがブラウザ４１上で制御スクリプトを実行することによって機能する。実行部５９は、プログラムインターフェース部４２を介して機器３６へ各種処理の実行指示を送信する。
【００８４】
本実施の形態では、実行部５９は、ジョブデータを含む印刷処理の実行要求を、プログラムインターフェース部４２を介してプリンタ３２へ送信する。
【００８５】
図９は、ジョブデータ６９の一例を示す図である。ジョブデータ６９は、管理情報６８（図５参照）に登録された設定項目と、各設定項目に対応する確定した設定値と、を含む設定条件を含む。プリンタ３２は、受付けたジョブデータ６９に従って、印刷処理を実行する。
【００８６】
図１０は、本実施の形態に係る情報処理システム１０のハードウェア構成を示す図である。サーバ装置２０の情報提供部２２は、一例として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１等のプロセッサと、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等のメモリ１０２と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の記憶装置１０３とを備える。情報提供部２２は、ＣＰＵ１０１等のプロセッサが記憶装置１０３に予め記憶されたオペレーティングシステムおよびブラウザを実行することにより、第１スクリプト、第２スクリプト、第３スクリプト、および制御スクリプトなどを情報処理装置３０に対して提供する。
【００８７】
情報処理装置３０の情報処理部３５は、ＣＰＵ１１１等のプロセッサと、ＲＡＭおよびＲＯＭ等のメモリ１１２と、ＨＤＤ等の記憶装置１１３と、操作表示部３４とのインターフェースであるデバイスＩ／Ｆ１１４とを備える。情報処理部３５は、ＣＰＵ１１１等のプロセッサが、記憶装置１１３に予め記憶されたオペレーティングシステムおよびブラウザをメモリ１１２上に展開して実行する。
【００８８】
そして、ＣＰＵ１１１等のプロセッサは、ネットワーク１２を介してサーバ装置２０から第１スクリプト、第２スクリプト、第３スクリプト、および制御スクリプトをダウンロードし、メモリ１１２上に展開して実行する。ＣＰＵ１１１等のプロセッサは、これらのスクリプトを実行することにより、情報処理部３５を、通信部５１、第１取得部５５、第２取得部５６、第３取得部５７、検出部５８、実行部５９、表示制御部５２、受付部５３、として機能させることができる。
【００８９】
次に、本実施の形態の情報処理部３５が実行する情報処理の手順を説明する。
【００９０】
図１１は、本実施の形態の情報処理部３５が実行する情報処理の手順の一例を示すフローチャートである。
【００９１】
まず、ユーザは、操作表示部３４を操作することで、情報処理部３５のブラウザ４１を起動する（ステップＳ１００）。そして、ユーザは、操作表示部３４を操作することで、操作プログラムの格納場所を示すＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒｓ）を入力し、操作プログラムのダウンロードを指示する。
【００９２】
通信部５１は、サーバ装置２０から、操作プログラムを取得する（ステップＳ１０２）。
【００９３】
次に、情報処理部３５のプロセッサが、ステップＳ１０２で取得した操作プログラムに埋め込まれている各スクリプトをブラウザ４１上で実行する（ステップＳ１０４）（詳細後述）。そして、本ルーチンを終了する。
【００９４】
次に、図１１における、ステップＳ１０４の処理の手順を説明する。図１２は、情報処理部３５のプロセッサがステップＳ１０２（図１１参照）で取得した操作プログラムに埋め込まれている各スクリプト（第１スクリプト、第２スクリプト、第３スクリプト、および制御スクリプト）のそれぞれを実行することによって行う情報処理の手順の一例を示すフローチャートである。
【００９５】
まず、プロセッサが、第２スクリプトをブラウザ４１上で実行する。該第２スクリプトの実行により機能する第２取得部５６は、サーバ装置２０から第２の設定情報６２（図４参照）を取得する（ステップＳ２００）。
【００９６】
次に、第２取得部５６は、ステップＳ２００で取得した第２の設定情報６２に規定された設定項目の各々を、管理情報６８（図５参照）に登録する。そして、第２取得部５６は、該第２の設定情報６２に規定された全ての設定項目の各々について、ステップＳ２０２の処理を実行する。
【００９７】
ステップＳ２０２では、第２取得部５６は、第２の設定情報６２に規定された設定項目に対応する設定値のリストを、管理情報６８の対応する「リストに示される設定値の各々が利用可能か否か」の欄に登録する（ステップＳ２０２）。
【００９８】
次に、プロセッサが、ステップＳ１０２（図１１参照）で取得した操作プログラムに埋め込まれている第１スクリプトを、ブラウザ４１上で実行する。該第１スクリプトの実行により機能する第１取得部５５は、実行対象の機器３６に対応する第１の設定情報６４を第１管理部４２Ａから取得する（ステップＳ２０４）。
【００９９】
次に、第１取得部５５は、ステップＳ２００で取得した第２の設定情報６２（図４参照）に規定された全ての設定項目の各々について、登録処理を実行する（ステップＳ２０６）（詳細後述）。
【０１００】
ステップＳ２０６の処理によって、管理情報６８（図５参照）には、第２の設定情報６２に規定された設定条件の設定項目のうち、第１の設定情報６４に規定された設定項目について、「機器で利用可能か否か」の欄に“利用可能”が登録される。すなわち、管理情報６８における、「機器で利用可能か否か」の欄が“利用可能”である設定項目は、ウェブアプリケーション２４で設定された設定項目のうち、第１の設定情報６４に規定された設定項目である。
【０１０１】
また、ステップＳ２０６の処理によって、管理情報６８（図５参照）における、「機器で利用可能か否か」の欄に“利用可能”が登録された設定項目に対応する、「リストに示される設定値の各々が利用可能か否か」の欄に登録された設定値の各々について、機器３６で利用可能か否かを示す情報が登録される。
【０１０２】
次に、プロセッサが、ステップＳ１０２（図１１参照）で取得した、操作Pログラムに埋め込まれている第３スクリプトを、ブラウザ４１上で実行する。該第３スクリプトの実行により機能する第３取得部５７は、実行対象の機器３６に対応する競合情報６６を、第２管理部４２Ｂから取得する（ステップＳ２０８）。
【０１０３】
次に、プロセッサが、ステップＳ１０２（図１１参照）で取得した操作プログラムに埋め込まれている制御スクリプトをブラウザ４１上で実行する。該制御スクリプトの実行により機能する検出部５８が、ステップＳ２０８で取得した競合情報６６に基づいて、競合関係を検出する検出処理を実行する（ステップＳ２１０）（詳細後述）。
【０１０４】
次に、表示制御部５２が、画面を生成し操作表示部３４へ表示する表示処理を実行する（ステップＳ２１２）（詳細後述）。
【０１０５】
次に、受付部５３がユーザによる設定値の変更指示を操作表示部３４から受付けたか否かを判断する（ステップＳ２１４）。ステップＳ２１４で肯定判断すると（ステップＳ２１４：Ｙｅｓ）、ステップＳ２１０へ戻る。ステップＳ２１４で否定判断すると（ステップＳ２１４：Ｎｏ）、ステップＳ２１６へ進む。
【０１０６】
ステップＳ２１６では、受付部５３が印刷の実行指示を操作表示部３４から受付けたか否かを判断する（ステップＳ２１６）。例えば、ユーザは、操作表示部３４に表示された画面７０（または、画面７１、または画面７２（図６〜図８参照））における、「印刷開始」の表示領域を操作指示する。受付部５３は、該「印刷開始」の表示領域が操作指示されたことを示す信号を操作表示部３４から受け付けたか否かを判別することで、ステップＳ２１６の判断を行えばよい。
【０１０７】
ステップＳ２１６で否定判断すると（ステップＳ２１６：Ｎｏ）、本ルーチンを終了する。一方、ステップＳ２１６で肯定判断すると（ステップＳ２１６：Ｙｅｓ）、ステップＳ２１８へ進む。
【０１０８】
ステップＳ２１８では、実行部５９が、実行要求を、プログラムインターフェース部４２を介してプリンタ３２へ送信する（ステップＳ２１８）。実行要求は、管理情報６８（図５参照）に登録された設定項目の内、「機器で利用可能か否か」の欄が“利用可能”である設定項目と、該設定項目に対応する「確定した設定値」に示される設定値と、を含むジョブデータ６９（図９参照）を含む。実行部５９は、ジョブデータ６９を含む実行要求を生成し、プログラムインターフェース部４２を介してプリンタ３２へ送信する。プリンタ３２は、受付けたジョブデータ６９に従って、印刷処理を実行する。そして、本ルーチンを終了する。
【０１０９】
次に、図１２のステップＳ２０６の登録処理を説明する。図１３は、登録処理の手順の一例を示すフローチャートである。
【０１１０】
まず、第１取得部５５は、ステップＳ２００（図１２参照）で取得した第２の設定情報６２（図４参照）に含まれる全ての設定項目の各々について、ステップＳ３００〜ステップＳ３２２の処理を繰り返し実行する。すなわち、第１取得部５５は、管理情報６８に登録されている全ての設定項目の各々について、ステップＳ３００〜ステップＳ３２２の処理を繰り返し実行する。
【０１１１】
まず、第１取得部５５は、第２の設定情報６２に含まれる設定項目が、ステップＳ２０４（図１２参照）で取得した第１の設定情報６４に含まれるか否かを判断する（ステップＳ３００）。
【０１１２】
設定項目が含まれる場合、肯定判断し（ステップＳ３００：Ｙｅｓ）、ステップＳ３０２へ進む。
【０１１３】
すなわち、ステップＳ３００で肯定判断することで（ステップＳ３００：Ｙｅｓ）、第１取得部５５は、第２の設定情報６２に含まれる設定項目のうち、第１の設定情報６４に含まれる設定項目を特定する（ステップＳ３０２）。
【０１１４】
次に、第１取得部５５は、管理情報６８（図５参照）の、特定した処理対象の設定項目に対応する「機器で利用可能か否か」の欄に、“利用可能”を登録する（ステップＳ３０４）。
【０１１５】
例えば、第２の設定情報６２に規定された設定項目“印刷色（ｐｒｉｎｔＣｏｌｏｒ）”（図４参照）は、第１の設定情報６４に規定されている（図２参照）。このため、第１取得部５５は、管理情報６８における、設定項目“印刷色（ｐｒｉｎｔＣｏｌｏｒ）”に対応する「機器で利用可能か否か」の欄に、“利用可能”を登録する（図５参照）。
【０１１６】
次に、第１取得部５５は、第２の設定情報６２（図４参照）における、処理対象の設定項目に対応する「設定値のリスト」の欄に登録されている設定値の各々を、管理情報６８における、該処理対象の設定項目に対応する「リストに示される設定値の各々が利用可能か否か」の欄に登録する。
【０１１７】
そして、第１取得部５５は、第１の設定情報６４（図２参照）に、処理対象の設定項目に対応する「設定値のリスト」が登録されているか否かを判断する（ステップＳ３０６）。
【０１１８】
例えば、処理対象の設定項目が“印刷色（ｐｒｉｎｔＣｏｌｏｒ）”であったとする。第２の設定情報６２（図４参照）には、該設定項目“印刷色（ｐｒｉｎｔＣｏｌｏｒ）”に対応する「設定値のリスト」として、“白黒”、“グレー”、“カラー”が、登録されている。この場合、第１取得部５５は、ステップＳ３０６で肯定判断する（ステップＳ３０６：Ｙｅｓ）。
【０１１９】
ステップＳ３０６で肯定判断すると（ステップＳ３０６：Ｙｅｓ）、ステップＳ３０８へ進む。ステップＳ３０８では、第１取得部５５は、管理情報６８（図５参照）における、処理対象の設定項目に対応する「リストに示される設定値の各々が利用可能か否か」の欄に登録されている設定値の内、第１の設定情報６４（図２参照）の該設定項目に対応する「設定値のリスト」の欄に登録されている設定値に、“利用可能”を登録する（ステップＳ３０８）。
【０１２０】
次に、第１取得部５５は、管理情報６８（図５参照）における、処理対象の設定項目に対応する「リストに示される設定値の各々が利用可能か否か」の欄に登録されている設定値の内、第１の設定情報６４（図２参照）の該設定項目に対応する「設定値のリスト」の欄に登録されていない設定値に、“利用不可能”を登録する（ステップＳ３１０）。
【０１２１】
そして、後述するステップＳ３１６へ進む。
【０１２２】
例えば、第１取得部５５は、管理情報６８における設定項目“印刷色（ｐｒｉｎｔＣｏｌｏｒ）”に対応する、「リストに示される設定値の各々が利用可能か否か」の欄に登録されている設定値“白黒”、“グレー”、“カラー”の各々の内、第１の設定情報６４（図２参照）の該設定項目“印刷色（ｐｒｉｎｔＣｏｌｏｒ）”に対応する「設定値のリスト」の欄に登録されている設定値“白黒”および“グレー”については、“利用可能”を登録する。一方、第１取得部５５は、登録されていない設定値“カラー”については、“利用不可能”を登録する（図５参照）。
【０１２３】
一方、上記ステップＳ３０６で否定判断すると（ステップＳ３０６：Ｎｏ）、ステップＳ３１２へ進む。
【０１２４】
例えば、処理対象の設定項目が“印刷面（ｐｒｉｎｔＳｉｄｅ）”であったとする。第２の設定情報６２（図４参照）には、該設定項目“印刷面（ｐｒｉｎｔＳｉｄｅ）”に対応する「設定値のリスト」の欄に設定値が登録されていない。この場合、第１取得部５５は、ステップＳ３０６で否定判断する（ステップＳ３０６：Ｎｏ）。
【０１２５】
ステップＳ３１２では、第１取得部５５は、処理対象の設定項目に対応する「設定値のリスト」が、第１の設定情報６４（図２参照）に登録されているか否かを判断する（ステップＳ３１２）。
【０１２６】
ステップＳ３１２で否定判断すると（ステップＳ３１２：Ｎｏ）、後述するステップＳ３１６へ進む。一方、ステップＳ３１２で肯定判断すると（ステップ３１２：Ｙｅｓ）、ステップＳ３１４へ進む。
【０１２７】
ステップＳ３１４では、第１取得部５５は、管理情報６８（図５参照）における、処理対象の設定項目に対応する「リストに示される設定値の各々が利用可能か否か」の欄に、第１の設定情報６４に登録されている該設定項目に対応する「設定値のリスト」に登録されている設定値を登録する（ステップＳ３１４）。また、第１取得部５５は、登録した設定値の各々に対応づけて“利用可能”を登録する（ステップＳ３１４）。
【０１２８】
このため、例えば、管理情報６８における、第２の設定情報６２において設定値の登録されていない設定項目“トレイ（ｐａｐｅｒＴｒａｙ）”について、第１の設定情報６４に登録されている設定値“自動設定”、“トレイ１”、“トレイ２”が、管理情報６８（図５参照）に登録される。また、管理情報６８の該設定値“自動設定”、“トレイ１”、“トレイ２”の各々に対応づけて、“利用可能”が「リストに示される設定値の各々が利用可能か否か」の欄に登録される。
【０１２９】
ステップＳ３１６では、第１取得部５５は、第２の設定情報６２に登録されている、処理対象の設定項目に対応する初期の設定値を、管理情報６８に登録する（ステップＳ３１６）。
【０１３０】
例えば、処理対象の設定項目が設定項目“印刷色（ｐｒｉｎｔＣｏｌｏｒ）”である場合、第１取得部５５は、第２の設定情報６２における設定項目“印刷色（ｐｒｉｎｔＣｏｌｏｒ）”に対応する初期の設定値である“グレー”を、該設定項目に対応づけて管理情報６８に登録する。
【０１３１】
次に、第１取得部５５は、第２の設定情報６２に登録されている情報の内、管理情報６８に未登録の情報を管理情報６８に登録する（ステップＳ３１８）。そして、本ルーチンを終了する。
【０１３２】
一方、上記ステップＳ３００で否定判断すると（ステップＳ３００：Ｎｏ）、ステップＳ３２０へ進む。ステップＳ３２０では、第１取得部５５が、管理情報６８（図５参照）の、特定した処理対象の設定項目に対応する「機器で利用可能か否か」の欄に、“利用不可能”を登録する（ステップＳ３２０）。そして、第１取得部５５は、対応する設定値について、“利用不可能”を登録する（図５参照）（ステップＳ３２２）。そして、本ルーチンを終了する。
【０１３３】
次に、図１２のステップＳ２１０の検出処理を説明する。図１４は、検出処理の手順の一例を示すフローチャートである。
【０１３４】
検出部５８は、第２の設定情報６２に規定された設定項目の内、機器３６に対応する第１の設定情報６４に規定された全ての設定項目の各々について、ステップＳ４００〜ステップＳ４１２の処理を繰り返し実行する。すなわち、検出部５８は、管理情報６８における、「機器で利用可能か否か」の欄が“利用可能”である全ての設定項目の各々について、ステップＳ４００〜ステップＳ４１２の処理を繰り返し実行する。
【０１３５】
すなわち、図１４の手順における処理対象の設定項目は、管理情報６８における、「機器で利用可能か否か」の欄が“利用可能”である複数の設定項目の何れかを示す。
【０１３６】
なお、図１２のステップＳ２１４で肯定判断することで（ステップＳ２１４：Ｙｅｓ）、ステップＳ２１０の検出処理に戻って実行する場合には、検出部５８は、ステップＳ２１４で変更指示を受付けた設定値に対応する設定項目についてのみ、図１４に示す手順を実行すればよい。
【０１３７】
すなわち、受付部５３が設定値の変更を受付けた場合には、検出部５８は、変更を受付けた設定値の設定項目についてのみ、図１４に示す手順を実行してもよい。
【０１３８】
まず、検出部５８は、管理情報６８（図５参照）における、処理対象の設定項目に対応する初期の設定値が、対応する制約情報に示される制約を満たすか否かを判断する（ステップＳ４００）。
【０１３９】
制約を満たす場合（ステップＳ４００：Ｙｅｓ）、ステップＳ４０２へ進む。ステップＳ４０２では、検出部５８は、管理情報６８における、処理対象の設定項目に対応する初期の設定値を、確定した設定値として登録する（ステップＳ４０２）。
【０１４０】
例えば、管理情報６８における、処理対象の設定項目“印刷色（ｐｒｉｎｔＣｏｌｏｒ）”に対応する「初期の設定値」の欄に“グレー”が登録されている場合、検出部５８は、該設定項目に対応する「確定した設定値」の欄に、“グレー”を登録する。そして、ステップＳ４０８へ進む。
【０１４１】
一方、制約を満たさない場合（ステップＳ４００：Ｎｏ）、検出部５８は、エラー情報を操作表示部３４に表示する（ステップＳ４０４）。エラー情報は、該設定項目の設定値が、制約を満たさないことを示す情報である。
【０１４２】
次に、検出部５８は、処理対象の設定項目に対応する初期の設定値を、対応する制約情報に示される制約を満たす値に変更し、変更後の値を、確定した設定値として登録する（ステップＳ４０６）。なお、検出部５８は、変更後の値として、対応する制約情報に示される制約を満たし、且つ競合情報６６に示される競合関係を示さない値を登録することが好ましい。そして、ステップＳ４０８へ進む。
【０１４３】
ステップＳ４０８では、検出部５８は、処理対象の設定項目を含む設定条件が他の設定条件と競合関係にあるか否かを判断する（ステップＳ４０８）。
【０１４４】
詳細には、検出部５８は、管理情報６８における、処理対象の設定項目と該設定項目に対応する確定した設定値と、を含む設定条件に対して、競合関係を有する他の設定条件が競合情報６６に登録されているか否かを判断する。そして、競合情報６６に登録されている場合、検出部５８は、競合関係にある設定条件を検出（すなわち、競合することを検出）する。
【０１４５】
競合関係にある設定条件が無い場合、ステップＳ４０８で否定判断し（ステップＳ４０８：Ｎｏ）、本ルーチンを終了する。一方、競合関係にある設定条件を検出した場合、ステップＳ４０８で肯定判断し（ステップＳ４０８：Ｙｅｓ）、ステップＳ４１０へ進む。
【０１４６】
次に、検出部５８は、競合状態であることを示す情報を、処理対象の設定項目に対応づけて管理情報６８に登録する（ステップＳ４１０）。次に、検出部５８は、管理情報６８における、処理対象の設定項目に対応する確定した設定値を、競合関係にある設定条件を解消した値に変更する（ステップＳ４１２）。なお、検出部５８は、競合関係にある他の設定条件に含まれる設定項目に対応する確定した設定値を、競合関係を解消した値に変更してもよい。また、検出部５８は、これらの設定値の双方を、競合関係を解消した値に変更してもよい。そして、本ルーチンを終了する。
【０１４７】
次に、図１２のステップＳ２１２の表示処理を説明する。図１５は、表示処理の手順の一例を示すフローチャートである。
【０１４８】
表示制御部５２は、第２の設定情報６２に規定された設定項目のうち、第１の設定情報６４に規定された全ての設定項目の各々について、ステップＳ５００〜ステップＳ５１０の処理を繰り返し実行する。すなわち、表示制御部５２は、管理情報６８における、「機器で利用可能か否か」の欄が“利用可能”である全ての設定項目の各々について、ステップＳ５００〜ステップＳ５１０の処理を繰り返し実行する。
【０１４９】
すなわち、図１５の手順における処理対象の設定項目は、管理情報６８における、「機器で利用可能か否か」の欄が“利用可能”である複数の設定項目の何れかを示す。
【０１５０】
まず、表示制御部５２は、管理情報６８における、処理対象の設定項目に対応する「リストに示される設定値の各々が利用可能か否か」の欄に、設定値のリスト（一覧）が登録されているか否かを判断する（ステップＳ５００）。
【０１５１】
例えば、管理情報６８における、処理対象の設定項目“印刷色（ｐｒｉｎｔＣｏｌｏｒ）”に対応する「リストに示される設定値の各々が利用可能か否か」の欄には、“白黒”、“グレー”、“カラー”といった、設定値のリストが登録されている。この場合、操作表示部３４は、ステップＳ５００で肯定判断する（ステップＳ５００：Ｙｅｓ）。
【０１５２】
一方、管理情報６８における、処理対象の設定項目“印刷部数（ｃｏｐｉｅｓＲａｎｇｅ）”に対応する「リストに示される設定値の各々が利用可能か否か」の欄には、設定値のリストが登録されていない。この場合、表示制御部５２は、ステップＳ５００で否定判断する（ステップＳ５００：Ｎｏ）。
【０１５３】
ステップＳ５００で否定判断すると（ステップＳ５００：Ｎｏ）、後述するステップＳ５０８へ進む。
【０１５４】
ステップＳ５００で肯定判断すると（ステップＳ５００：Ｙｅｓ）、表示制御部５２は、ステップＳ５００で登録されていると判断した設定値のリストに含まれる全ての設定値の各々について、ステップＳ５０２〜ステップＳ５０６の処理を繰り返し実行する。
【０１５５】
まず、表示制御部５２は、処理対象の設定値に対応づけて“利用可能”が登録されているか否かを判断する（ステップＳ５０２）。詳細には、表示制御部５２は、管理情報６８における、処理対象の設定項目に対応する「リストに示される設定値の各々が利用可能か否か」の欄に登録されている、処理対象の設定値に、“利用可能”が対応づけられているか否かを判断する。
【０１５６】
例えば、処理対象の設定項目“印刷色（ｐｒｉｎｔＣｏｌｏｒ）”に対応する「リストに示される設定値の各々が利用可能か否か」の欄に登録されている、設定値“白黒”には、“利用可能”が対応づけて登録されている。この場合、表示制御部５２は、ステップＳ５０２で肯定判断する（ステップＳ５０２：Ｙｅｓ）。
【０１５７】
ステップＳ５０２で肯定判断すると（ステップＳ５０２：Ｙｅｓ）、ステップＳ５０４へ進む。ステップＳ５０４では、表示制御部５２は、処理対象の設定値を、選択可能に表示する表示対象として特定する（ステップＳ５０４）。
【０１５８】
一方、ステップＳ５０２で否定判断すると（ステップＳ５０２：Ｎｏ）、ステップＳ５０６へ進む。ステップＳ５０６では、表示制御部５２は、処理対象の設定値を、選択不可能に表示する表示対象として特定する（ステップＳ５０６）。
【０１５９】
ステップＳ５０２〜ステップＳ５０６の繰り返し処理が終了すると、ステップＳ５０８へ進む。
【０１６０】
ステップＳ５０８では、表示制御部５２は、処理対象の設定項目に、競合状態であることを示す情報が登録されているか否かを判断する（ステップＳ５０８）。ステップＳ５０８で否定判断すると（ステップＳ５０８：Ｎｏ）、本繰り返し処理を終了する。ステップＳ５０８で肯定判断すると（ステップＳ５０８：Ｙｅｓ）、ステップＳ５１０へ進む。
【０１６１】
ステップＳ５１０では、表示制御部５２は、競合関係を示す情報を、管理情報６８における、該処理対象の設定項目に付与する（ステップＳ５１０）。なお、表示制御部５２は、競合関係を解消するために設定値を変更したことを示す情報を、管理情報６８における、該処理対象の設定項目に付与してもよい。
【０１６２】
そして、本繰り返し処理を終了する。
【０１６３】
次に、表示制御部５２は、管理情報６８に基づいて、画面を生成する（ステップＳ５１２）。
【０１６４】
詳細には、表示制御部５２は、管理情報６８に登録されている設定項目の内、「機器で利用可能か否か」の欄に“利用可能”が登録されている設定項目と、対応する設定値のリストと、を、特定する。そして、表示制御部５２は、サーバ装置２０からステップＳ１０２（図１１参照）で取得した操作プログラムのＨＴＭＬの記述（画面の生成に用いる情報（例えば、基本の項目や表示に用いる枠など））に沿って、画面の枠や表示する項目などを生成し、更に、該画面内に、特定した設定項目と設定値のリストとを埋め込むことで、画面７０を生成する（図６参照）。なお、表示制御部５２は、管理情報６８に登録されている設定項目の内、「機器で利用可能か否か」の欄に“利用不可能”が登録されている設定項目と、対応する設定値のリストについては、選択不可能となるように、例えば灰色で画面７０に表示する。
【０１６５】
また、表示制御部５２は、管理情報６８に登録されている、各設定項目に対応する設定値のリストを画面７０に表示する。
【０１６６】
表示制御部５２は、これらの設定値のリストの内、上記ステップＳ５０６で選択不可能に表示する表示対象として特定した設定値については、利用不可能であるとして選択不可能に表示する。図６に示す例では、例えば、利用不可能な設定値は、灰色で示され、操作入力を受付けない表示領域となっている。
【０１６７】
また、表示制御部５２は、上記ステップＳ５０４で選択可能に表示する表示対象として特定した設定値については、利用可能であるとして選択可能に表示する。図６に示す例では、例えば、利用可能な設定値は、白色で示され、操作入力を受け付ける表示領域となっている。
【０１６８】
また、表示制御部５２は、管理情報６８に登録されている設定値のリストの内、確定した設定値については、強調表示する。確定した設定値は、管理情報６８から読取ればよい。図６に示す例では、確定した設定値は、二重線の枠で囲まれて表示されている。
【０１６９】
なお、表示制御部５２は、競合関係を示す情報や、競合関係を解消するために設定値を変更したことを示す情報が設定項目に対応付けられている場合、これらの情報を更に埋め込んだ画面を生成する。例えば、表示制御部５２は、競合関係にある設定条件を示す情報７１Ａを含む画面７１（図７参照）や、設定値を変更したことを示す情報７２Ａを含む画面７２（図８参照）を生成する（ステップＳ５１２）。
【０１７０】
なお、検出部５８が、競合関係にある設定条件に含まれる設定値を、競合関係を解消するように変更する処理は（図１４のステップＳ４１２参照）、ステップＳ５１４の画面の操作表示部３４の表示前に行ってもよいし、表示後に行ってもよい。
【０１７１】
次に、表示制御部５２は、生成した画面を操作表示部３４へ表示する（ステップＳ５１４）。そして、本ルーチンを終了する。
【０１７２】
以上説明したように、本実施の形態の情報処理装置３０は、操作表示部３４に画面を表示するブラウザ４１を有する。また、情報処理装置３０は、プロセッサと、記憶部４２Ｅと、通信部５１と、第１取得部５５と、第２取得部５６と、第３取得部５７と、検出部５８と、を備える。記憶部４２Ｅは、情報処理装置３０が処理を実行する際に設定できる設定条件であって、設定項目毎に設定可能な設定値を対応付けられている設定条件を規定した第１の設定情報６４と、情報処理装置３０が処理を実行する際に競合する設定条件の競合関係を示す競合情報６６と、を記憶する。通信部５１は、サーバ装置２０に搭載されているウェブアプリケーション２４に対してブラウザ４１を介してアクセスし、サーバ装置２０から操作表示部３４に表示させる画面と、１以上のスクリプトと、を取得する。第１取得部５５は、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、記憶部４２Ｅに記憶されている第１の設定情報６４を取得する。第２取得部５６は、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、情報処理装置３０に対して処理要求を送信するウェブアプリケーション２４で設定された設定条件を規定した第２の設定情報６２をウェブアプリケーション２４から取得する。第３取得部５７は、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、記憶部４２Ｅに記憶されている競合情報６６を取得する。検出部５８は、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、第２の設定情報６２に規定された設定条件のうち競合関係にある設定条件を、第３取得部５７で取得した競合情報６６に基づいて検出する。
【０１７３】
このように、本実施の形態の情報処理装置３０では、ブラウザ４１上で、情報処理装置３０が処理を実行する際に競合する設定条件の競合関係を検出する。このため、情報処理装置３０は、ブラウザ上で動作する制御プログラムを、競合する設定条件を有する新たな機器に容易に対応させることができる。
【０１７４】
従って、本実施の形態の情報処理装置３０は、ブラウザ上で動作する制御プログラムを、競合する設定条件を有する新たな機器に容易に対応させることができる。
【０１７５】
また、検出部５８は、ユーザによる設定条件の変更を受け付けたときに、第２の設定情報６２に規定された設定条件のうち変更を受付けた設定条件について、競合関係にある設定条件を、第３取得部５７で取得した競合情報６６に基づいて検出することができる。
【０１７６】
また、検出部５８は、競合関係にある設定条件を検出したときに、競合関係にある設定条件に含まれる設定値を、競合関係にある設定条件を解消するように変更することができる。
【０１７７】
また、情報処理部３５は、表示制御部５２を備えることができる。表示制御部５２は、通信部５１が取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、競合関係にある設定条件が検出されたときに、競合関係にある設定条件を示す情報を操作表示部３４に表示する。
【０１７８】
また、表示制御部５２は、競合関係にある設定条件を解消するように変更した後の設定条件を操作表示部３４に表示することもできる。
【０１７９】
また、１以上のスクリプトは、複数のスクリプトを含み、第１取得部５５、第２取得部５６、第３取得部５７、および検出部５８のそれぞれは、それぞれ別個のスクリプトがプロセッサによりブラウザ４１上で実行されることによりそれぞれ機能する。
【０１８０】
また、本実施の形態の情報処理方法は、ブラウザ４１を実行するプロセッサを有する情報処理部３５を備えた情報処理装置３０により実行される情報処理方法である。情報処理装置３０は、プロセッサと、記憶部４２Ｅと、を備える。記憶部４２Ｅは、情報処理装置３０が処理を実行する際に設定できる設定条件であって、設定項目毎に設定可能な設定値を対応付けられている設定条件を規定した第１の設定情報６４と、情報処理装置３０が処理を実行する際に競合する設定条件の競合関係を示す競合情報６６と、を記憶する。
【０１８１】
本実施の形態の情報処理方法は、サーバ装置２０に搭載されているウェブアプリケーション２４に対してブラウザ４１を介してアクセスし、サーバ装置２０から操作表示部３４に表示させる画面と、１以上のスクリプトと、を取得するステップと、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、記憶部４２Ｅに記憶されている第１の設定情報６４を取得するステップと、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、情報処理装置３０に対して処理要求を送信するウェブアプリケーション２４で設定された設定条件を規定した第２の設定情報６２をウェブアプリケーション２４から取得するステップと、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、記憶部４２Ｅに記憶されている競合情報６６を取得するステップと、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、第２の設定情報６２に規定された設定条件のうち競合関係にある設定条件を、第３取得部５７で取得した競合情報６６に基づいて検出するステップと、を含む。
【０１８２】
また、本実施の形態の情報処理プログラムは、ブラウザ４１を実行するプロセッサを有する情報処理部３５を備えたコンピュータに実行させる情報処理プログラムである。コンピュータは、プロセッサと、記憶部４２Ｅと、を備える。記憶部４２Ｅは、情報処理装置３０が処理を実行する際に設定できる設定条件であって、設定項目毎に設定可能な設定値を対応付けられている設定条件を規定した第１の設定情報６４と、情報処理装置３０が処理を実行する際に競合する設定条件の競合関係を示す競合情報６６と、を記憶する。
【０１８３】
本実施の形態の情報処理プログラムは、サーバ装置２０に搭載されているウェブアプリケーション２４に対してブラウザ４１を介してアクセスし、サーバ装置２０から操作表示部３４に表示させる画面と、１以上のスクリプトと、を取得するステップと、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、記憶部４２Ｅに記憶されている第１の設定情報６４を取得するステップと、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、情報処理装置３０に対して処理要求を送信するウェブアプリケーション２４で設定された設定条件を規定した第２の設定情報６２をウェブアプリケーション２４から取得するステップと、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、記憶部４２Ｅに記憶されている競合情報６６を取得するステップと、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、第２の設定情報６２に規定された設定条件のうち競合関係にある設定条件を、第３取得部５７で取得した競合情報６６に基づいて検出するステップと、を含む。
【０１８４】
本実施の形態の情報処理システム１０は、サーバ装置２０と、情報処理装置３０と、を備える。情報処理装置３０は、サーバ装置２０にネットワーク１２を介して接続され、操作表示部３４に画面を表示するブラウザ４１を有する。
【０１８５】
情報処理装置３０は、操作表示部３４に画面を表示するブラウザ４１を有する。また、情報処理装置３０は、プロセッサと、記憶部４２Ｅと、通信部５１と、第１取得部５５と、第２取得部５６と、第３取得部５７と、検出部５８と、を備える。記憶部４２Ｅは、情報処理装置３０が処理を実行する際に設定できる設定条件であって、設定項目毎に設定可能な設定値を対応付けられている設定条件を規定した第１の設定情報６４と、情報処理装置３０が処理を実行する際に競合する設定条件の競合関係を示す競合情報６６と、を記憶する。通信部５１は、サーバ装置２０に搭載されているウェブアプリケーション２４に対してブラウザ４１を介してアクセスし、サーバ装置２０から操作表示部３４に表示させる画面と、１以上のスクリプトと、を取得する。第１取得部５５は、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、記憶部４２Ｅに記憶されている第１の設定情報６４を取得する。第２取得部５６は、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、情報処理装置３０に対して処理要求を送信するウェブアプリケーション２４で設定された設定条件を規定した第２の設定情報６２をウェブアプリケーション２４から取得する。第３取得部５７は、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、記憶部４２Ｅに記憶されている競合情報６６を取得する。検出部５８は、取得した１以上のスクリプトをプロセッサがブラウザ４１上で実行することにより機能し、第２の設定情報６２に規定された設定条件のうち競合関係にある設定条件を、第３取得部５７で取得した競合情報６６に基づいて検出する。
【０１８６】
＜変形例＞
なお、上記実施の形態では、機器３６が、プリンタ３２である場合を一例として説明した。しかし、機器３６は、プリンタ３２に限定されない。例えば、機器３６は、投影機能、録画機能、画像表示機能、の少なくとも１つの機能を備えたものであってもよい。
【０１８７】
投影機能を備えた機器３６は、例えば、プロジェクタである。機器３６がプロジェクタである場合、第１の設定情報６４（図２参照）、第２の設定情報６２（図４参照）、および競合情報６６（図３参照）の各々に規定する設定項目や設定値を、プロジェクタに応じた内容とすればよい。
【０１８８】
具体的には、第１の設定情報６４（図２参照）および第２の設定情報６２（図４参照）には、設定項目として、プロジェクタに搭載された各種機能の内、ユーザによって指定および変更可能な機能を規定すればよい。この場合、設定項目は、例えば、投影する画像の解像度、画質、輝度、拡大率、縮小率、などである。設定値は、これらの設定項目の各々に対応する値であればよい。また、第２管理部４２Ｂには、競合情報６６（図３参照）として、プロジェクタが処理を実行する際に競合する設定条件の競合関係を示す情報を予め登録すればよい。機器３６がプロジェクタである場合、例えば、競合情報６６には、同時に設定できない設定条件として、設定項目“解像度”を含む設定条件と、設定項目“画質”を含む設定条件と、を対応づけて予め登録すればよい。
【０１８９】
録画機能を備えた機器３６は、例えば、録画装置である。機器３６が録画装置である場合、第１の設定情報６４（図２参照）、第２の設定情報６２（図４参照）、および競合情報６６（図３参照）の各々に規定する設定項目や設定値を、録画装置に応じた内容とすればよい。
【０１９０】
具体的には、第１の設定情報６４（図２参照）および第２の設定情報６２（図４参照）には、設定項目として、録画装置に搭載された各種機能の内、ユーザによって指定および変更可能な機能を規定すればよい。この場合、設定項目は、例えば、録画対象のデータ容量、録画対象のデータの画質、録画対象のデータの数、などである。設定値は、これらの設定項目の各々に対応する値であればよい。また、第２管理部４２Ｂには、競合情報６６（図３参照）として、録画装置が処理を実行する際に競合する設定条件の競合関係を示す情報を予め登録すればよい。機器３６が録画装置である場合、例えば、競合情報６６には、同時に設定できない設定条件として、設定項目“録画対象のデータ容量”を含む設定条件と、設定項目“録画対象のデータの画質”を含む設定条件と、を対応づけて予め登録すればよい。
【０１９１】
また、画像表示機能を備えた機器３６は、例えば、テレビである。機器３６がテレビである場合、第１の設定情報６４（図２参照）、第２の設定情報６２（図４参照）、および競合情報６６（図３参照）の各々に規定する設定項目や設定値を、テレビに応じた内容とすればよい。
【０１９２】
具体的には、第１の設定情報６４（図２参照）および第２の設定情報６２（図４参照）には、設定項目として、テレビに搭載された各種機能の内、ユーザによって指定および変更可能な機能を規定すればよい。この場合、設定項目は、例えば、有料放送の契約済のチャンネル、有料放送の契約済の番組、契約済のチェンネルの数、などである。設定値は、これらの設定項目の各々に対応する値であればよい。また、第２管理部４２Ｂには、競合情報６６（図３参照）として、テレビが処理を実行する際に競合する設定条件の競合関係を示す情報を予め登録すればよい。機器３６がテレビである場合、例えば、競合情報６６には、同時に設定できない設定条件として、設定項目“有料放送の契約済のチャンネル”を含む設定条件と、設定項目“該チャンネルでは放映されない、有料放送の契約済の番組”を含む設定条件と、を対応づけて予め登録すればよい。
【０１９３】
そして、情報処理装置３０では、上記実施の形態と同様にして、ブラウザ４１上で、情報処理装置３０が処理を実行する際に競合する設定条件の競合関係を検出すればよい。このため、情報処理装置３０は、プリンタ３２以外の機器３６である場合についても、上記実施の形態と同様の効果を得ることができる。
【０１９４】
（第２の実施の形態）
図１６は、本実施の形態に係る情報処理システム１１の構成を示す図である。情報処理システム１１は、サーバ装置２００と、情報処理装置３００とを備える。
【０１９５】
サーバ装置２００と情報処理装置３００とは、ネットワーク１２０を介して接続される。ネットワーク１２０は、一例として、公衆に接続されたインターネット等のネットワークであってもよいし、社内等のローカルネットワークであってもよい。また、ネットワーク１２０は、有線であっても無線であってもよい。
【０１９６】
サーバ装置２００は、情報処理装置３００からアクセスされる。サーバ装置２００は、ネットワーク１２０を介して、情報処理装置３００に対して情報を送信し、情報処理装置３００から情報を受信する。
【０１９７】
なお、サーバ装置２００と情報処理装置３００は、同一のネットワーク（例えば、ローカルエリアネットワーク）に配置されていてもよいし、別々のネットワークに配置されていてもよい。
【０１９８】
サーバ装置２００は、ネットワークＩ／Ｆ２１０と、ウェブアプリケーション２３０と、を有する。ネットワークＩ／Ｆ２１０は、ネットワーク１２０を介して他の装置と情報を送受信するためのインターフェイスである。
【０１９９】
ウェブアプリケーション２３０は、情報処理装置３００から、情報処理装置３００の後述する第１のブラウザ４１０を介してアクセスされる。ウェブアプリケーション２３０は、情報提供部２２０を含む。情報提供部２２０は、ネットワーク１２０を介して、情報処理装置３００に対して１以上のスクリプトを提供する。
【０２００】
これらのスクリプトは、情報処理装置３００がサーバ装置２００から操作プログラムを取得し、操作プログラムを実行することで、サーバ装置２００から情報処理装置３００へ提供される。操作プログラムは、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述されたＨＴＭＬファイルであり、これらのスクリプトが埋め込まれている。また、操作プログラムには、サーバ装置２００から情報処理装置３００の表示部(後述する操作表示部３４０)に表示させる画面の生成に用いる情報（例えば、基本の項目や表示に用いる枠など）が記述されている。画面は、各種情報や画像を表示すると共に、ユーザからの操作指示を受付けるユーザインターフェースである。
【０２０１】
本実施の形態では、１以上のスクリプトは、複数のスクリプトを含む。これらのスクリプトは、情報処理装置３００のブラウザ上で実行されるスクリプトプログラムである。これらのスクリプトは、例えば、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述される。
【０２０２】
これらの１以上のスクリプトは、情報処理装置３００の第１のブラウザ４１０上で実行される、スクリプトプログラムである。これらの１以上のスクリプトは、第２のブラウザにおける特有の処理を記述したスクリプトプログラムである（詳細後述）。
【０２０３】
第２のブラウザは、機器に特有の画面を表示するブラウザである。すなわち、第２のブラウザは、機器の専用のブラウザである。機器は、例えば、画像形成機能（プリンタ機能）、スキャナ機能、ファックス機能、プロジェクタなどの投影機能、録画機能、画像表示機能（テレビ）、などの少なくとも１つを含む機器である。
【０２０４】
第１のブラウザ４１０は、第２のブラウザ以外のブラウザであって、公知の汎用のブラウザである。このため、第１のブラウザ４１０は、第２のブラウザには設けられていない様々な機能を備える。本実施の形態では、情報処理装置３００は、第１のブラウザ４１０を有する（詳細後述）。
【０２０５】
本実施の形態では、情報処理装置３００は、機器のエミュレータとして機能する。
【０２０６】
なお、本実施の形態の情報処理装置３００では、第２のブラウザで利用可能な全ての機能を完全にエミュレートすることを目的としていない。例えば、本実施の形態の情報処理装置３００では、機器の状態に応じた動作や、機器における処理実行中の動作に関して、一部の例外的な動作をエミュレートすることを目的としていない。
【０２０７】
また、本実施の形態の情報処理装置３００では、汎用のブラウザである第１のブラウザ４１０の種類の各々のサポート機能の差異については、考慮しないものとする。
【０２０８】
情報処理装置３００は、プロセッサを備える。情報処理装置３００は、ネットワークＩ／Ｆ３１０と、操作表示部３４０と、情報処理部３５０とを有する。ネットワークＩ／Ｆ３１０は、ネットワーク１２０を介して他の装置と情報を送受信するためのインターフェイスである。
【０２０９】
操作表示部３４０は、ユーザに対して情報を表示するとともにユーザからの入力を受け付ける。操作表示部３４０は、一例として、タッチパネルである。また、操作表示部３４０は、操作ボタン、マウス、キーボード等を有してもよい。
【０２１０】
仮想処理部４３０は、エミュレーション対象の機器が行う各種処理を仮想的に実行するプログラムである。仮想処理部４３０は、少なくとも該機器に特有の動作を実行する。仮想処理部４３０は、第１のブラウザ４１０からプログラムインターフェース部４２０を介して制御される。
【０２１１】
仮想処理部４３０は、仮想デバイス管理部４３０Ａと、仮想ジョブ管理部４３０Ｂと、を含む。
【０２１２】
仮想ジョブ管理部４３０Ｂは、機器で実行中の処理の状態のみを、時間経過に応じて繰り返し遷移させる。例えば、仮想ジョブ管理部４３０Ｂは、印刷データを機器で印刷可能なデータ形式に変換、変換された印刷データを記録媒体へ印刷、印刷の完了、などの複数種類の状態のみを、時間経過に応じて順次遷移させるプログラムである。
【０２１３】
すなわち、仮想ジョブ管理部４３０Ｂでは、機器で行う実際のデータ変換処理、印刷処理などは行わず、機器で実行中の処理の状態のみを、仮想的に時間経過に応じて順次変化させるプログラムである。
【０２１４】
なお、印刷完了には、例えば、正常完了、回復不可能なエラー発生、回復可能なエラー発生、の種類がある。この印刷完了の種類は、例えば、ユーザによる操作表示部３４０の操作指示によって適宜切替可能である。
【０２１５】
仮想デバイス管理部４３０Ａは、機器の状態を、ユーザによる操作表示部３４０の操作指示によって推移させるプログラムである。機器の状態は、例えば、「処理実行可能な状態」、「処理実行中の状態」、「処理停止中の状態」、「処理実行不可能な状態」である。
【０２１６】
処理実行可能な状態とは、処理実行要求を受け付けると、処理を開始可能な状態である。処理実行中の状態とは、機器で処理を実行中の状態である。処理停止中の状態とは、紙詰まりなどのエラーによって、処理が停止した状態である。処理実行不可能な状態とは、トナーが搭載されていないなどのエラーによって、処理を開始することが出来ない状態である。
【０２１７】
例えば、ユーザによる操作表示部３４０の操作指示によって、“処理実行可能な状態”が指示されると、仮想デバイス管理部４３０Ａは、機器の状態を、「処理実行可能な状態」に推移させる。すなわち、仮想デバイス管理部４３０Ａは、機器で行う実際の処理は行わず、機器の状態のみを、ユーザによる操作表示部３４０の操作指示により仮想的に遷移させるプログラムである。
【０２１８】
プログラムインターフェース部４２０は、第１のブラウザ４１０から仮想処理部４３０の動作を制御するためのソフトウェアインターフェースである。プログラムインターフェース部４２０は、第１のブラウザ４１０からの各種要求に応じて、仮想処理部４３０を制御する。
【０２１９】
本実施の形態では、プログラムインターフェース部４２０は、第１のブラウザ４１０からの要求信号の送信に応じて、仮想処理部４３０へ要求信号を送信する。また、プログラムインターフェース部４２０は、第１のブラウザ４１０からの要求に応じて、仮想処理部４３０を監視し、監視結果を第１のブラウザ４１０へ送信する。
【０２２０】
第１のブラウザ４１０は、上述したように、第２のブラウザ以外のブラウザであって、公知の汎用のブラウザである。情報処理装置３００のプロセッサは、サーバ装置２００に搭載されているウェブアプリケーション２３０に対して、第１のブラウザ４１０を介してアクセスし、サーバ装置２００から操作プログラムを取得する。これにより、情報処理部３５０は、サーバ装置２００から、操作表示部３４０に表示させる画面と、１以上のスクリプトと、を取得する。そして、情報処理部３５０は、１以上のスクリプトの各々を第１のブラウザ４１０上で実行することにより、第１のブラウザ４１０における各機能部を機能させる。
【０２２１】
具体的には、第１のブラウザ４１０は、取得部５１０と、スクリプト実行部５５０と、表示制御部５２０と、受付部５３０と、を含む。これらの機能部は、情報処理装置３００のプロセッサがサーバ装置２００から取得したスクリプトを第１のブラウザ４１０で実行することにより機能する。
【０２２２】
取得部５１０は、サーバ装置２００に搭載されているウェブアプリケーション２３０に対して第１のブラウザ４１０を介してアクセスし、操作プログラム（スクリプトを含む）を取得する。
【０２２３】
表示制御部５２０は、操作プログラムをプロセッサが第１のブラウザ４１０上で実行することにより機能する。例えば、表示制御部５２０は、サーバ装置２００から取得した操作プログラムのＨＴＭＬの記述（画面の生成に用いる情報（例えば、基本の項目や表示に用いる枠など））に沿って、画面を生成する。そして、表示制御部５２０は、生成した画面を操作表示部３４０に表示する。この画面は、各種画像を表示すると共に、ユーザからの入力を受け付けるユーザインターフェースである。
【０２２４】
受付部５３０は、ユーザによる操作表示部３４０の操作指示を受け付ける。
【０２２５】
スクリプト実行部５５０は、取得部５１０が取得した１以上のスクリプトをプロセッサが第１のブラウザ４１０上で実行することにより機能し、機器（すなわち仮想処理部４３０）の監視および機器（すなわち、仮想処理部４３０）への信号送信を行う。
【０２２６】
ここで、サーバ装置２００から取得した１以上のスクリプトは、上述したように、機器に特有の画面を表示するための第２のブラウザ上で実行される特有の処理を記述したスクリプトプログラムである。また、この１以上のスクリプトは、機器の監視および機器への信号送信を行う各種処理を記述したスクリプトプログラムである。
【０２２７】
図１７は、スクリプトの説明図である。本実施の形態では、１以上のスクリプトとして、状態出力スクリプトと、要求送信スクリプトと、機器状態監視スクリプトと、処理状態監視スクリプトと、を含む場合を説明する。
【０２２８】
状態出力スクリプトは、機器から取得した機器の状態情報を送信するスクリプトプログラムである。機器の状態情報は、第２のブラウザ特有の情報や、機器で認証したアカウント情報を含む。第２のブラウザ特有の情報は、例えば、第２のブラウザの表示画面の画面サイズである。
【０２２９】
プロセッサが、状態出力スクリプトを第１のブラウザ４１０上で実行することによって、スクリプト実行部５５０は、プログラムインターフェース部４２０を介して仮想処理部４３０から機器の状態情報を取得し、取得した状態情報を第１のブラウザ４１０へ送信する（返す）。
【０２３０】
このため、第１のブラウザ４１０では、機器から何等かの状態情報を取得し、取得した状態情報に応じた動作をエミュレートする場合、第１のブラウザ４１０上で状態出力スクリプトを実行することにより、第２のブラウザに特有の動作を第１のブラウザ４１０上でエミュレートすることができる。
【０２３１】
要求送信スクリプトは、機器へ要求信号を送信するスクリプトプログラムである。要求信号は、機器による動作停止を回避し、機器に動作を継続させるための信号である。要求信号は、例えば、機器が休止状態へ移行しないように要求する要求信号や、休止状態への移行拒否の解除を要求する要求信号や、機器における処理実行前にブラウザの「戻るボタン」を無効にする要求信号や、機器における処理実行完了後に「戻るボタン」を有効とする要求信号、などである。
【０２３２】
プロセッサが、要求送信スクリプトを第１のブラウザ４１０上で実行することによって、スクリプト実行部５５０は、プログラムインターフェース部４２０を介して仮想処理部４３０へ要求信号を送信する。
【０２３３】
このため、第１のブラウザ４１０では、機器が何等かの信号を受け付けるが、機器側で処理を停止せずに続行する動作をエミュレートする場合、第１のブラウザ４１０上で要求送信スクリプトを実行することにより、第２のブラウザに特有の動作を第１のブラウザ４１０上でエミュレートすることができる。
【０２３４】
機器状態監視スクリプトは、機器の状態を監視するスクリプトプログラムである。機器の状態は、上述したように、例えば、「処理実行可能な状態」、「処理実行中の状態」、「処理停止中の状態」、「処理実行不可能な状態」などである。
【０２３５】
プロセッサが、機器状態監視スクリプトを第１のブラウザ４１０上で実行することによって、スクリプト実行部５５０は、プログラムインターフェース部４２０を介して、仮想処理部４３０による機器の状態を監視し、状態が変化したときに、機器の状態を第１のブラウザ４１０へ通知する。
【０２３６】
このため、第１のブラウザ４１０では、機器の状態を監視する動作をエミュレートする場合、第１のブラウザ４１０上で機器状態監視スクリプトを実行することにより、第２のブラウザに特有の動作を第１のブラウザ４１０上でエミュレートすることができる。
【０２３７】
処理状態監視スクリプトは、機器で実行中の処理の状態を監視する、スクリプトプログラムである。処理の状態は、上述したように、例えば、印刷データを機器で印刷可能なデータ形式に変換、変換された印刷データを記録媒体へ印刷、印刷の完了（正常完了、回復不可能なエラー発生、回復可能なエラー発生）、などである。
【０２３８】
プロセッサが、処理状態監視スクリプトを第１のブラウザ４１０上で実行することによって、スクリプト実行部５５０は、プログラムインターフェース部４２０を介して、仮想処理部４３０による機器で実行中の処理の状態を監視し、該状態が変化したときに、処理の状態を第１のブラウザ４１０へ通知する。
【０２３９】
このため、第１のブラウザ４１０では、機器の処理の状態を監視する動作をエミュレートする場合、第１のブラウザ４１０上で処理状態監視スクリプトを実行することにより、第２のブラウザに特有の動作を第１のブラウザ４１０上でエミュレートすることができる。
【０２４０】
図１８は、本実施の形態に係る情報処理システム１１のハードウェア構成を示す図である。サーバ装置２００の情報提供部２２０は、一例として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１０等のプロセッサと、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等のメモリ１０２０と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の記憶装置１０３０とを備える。情報提供部２２０は、ＣＰＵ１０１０等のプロセッサが記憶装置１０３０に予め記憶されたオペレーティングシステム等を実行することにより、操作プログラムおよび１以上のスクリプトを情報処理装置３００へ提供する。
【０２４１】
情報処理装置３００の情報処理部３５０は、ＣＰＵ１１１０等のプロセッサと、ＲＡＭおよびＲＯＭ等のメモリ１１２０と、ＨＤＤ等の記憶装置１１３０と、操作表示部３４０とのインターフェースであるデバイスＩ／Ｆ１１４０とを備える。情報処理部３５０は、ＣＰＵ１１１０等のプロセッサが、記憶装置１１３０に予め記憶されたオペレーティングシステムおよび第１のブラウザ４１０をメモリ１１２０上に展開して実行する。
【０２４２】
そして、ＣＰＵ１１１０等のプロセッサは、ネットワーク１２０を介してサーバ装置２００から操作プログラム（１以上のスクリプトを含む）をダウンロードし、メモリ１１２０上に展開して実行する。このような操作プログラム（１以上のスクリプトを含む）は、表示制御モジュール、受付モジュール、およびスクリプト処理モジュールを含むモジュール構成となっており、ＣＰＵ１１１０等のプロセッサがこれらを実行することにより、情報処理部３５０を取得部５１０、スクリプト実行部５５０、表示制御部５２０、および受付部５３０として機能させることができる。
【０２４３】
図１９は、本実施の形態の情報処理部３５０が実行する情報処理の手順の一例を示すフローチャートである。
【０２４４】
まず、ユーザは、操作表示部３４０を操作することで第１のブラウザ４１０を起動する（ステップＳ１０００）。そして、ユーザは、操作表示部３４０を操作することで、１以上のスクリプトを含む操作プログラムの格納場所を示すＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒｓ）等を入力し、操作プログラムのダウンロードを指示する。すると、取得部５１０は、サーバ装置２００から、１以上の（本実施の形態では複数の）スクリプトを含む操作プログラムを取得する（ステップＳ１０２０）。
【０２４５】
次に、スクリプト実行部５５０が、ステップＳ１０２０で取得した操作プログラムに埋め込まれている各スクリプトを第１のブラウザ４１０上で実行する（ステップＳ１０４０）（詳細後述）。そして、本ルーチンを終了する。
【０２４６】
次に、図１９におけるステップＳ１０４０の処理の手順を説明する。図２０は、取得したスクリプトを実行することによって行う処理の手順を示すフローチャートである。
【０２４７】
なお、本実施の形態では、スクリプト実行部５５０は、取得した複数のスクリプトに含まれる各スクリプトの各々を、状態出力スクリプト、要求送信スクリプト、機器状態監視スクリプト、および処理状態監視スクリプトのこの順に実行する場合を説明する。しかし、スクリプト実行部５５０が実行するスクリプトの実行順は、この順序に限定されない。
【０２４８】
また、スクリプト実行部５５０は、サーバ装置２００から取得した各スクリプト（状態出力スクリプト、要求送信スクリプト、機器状態監視スクリプト、および処理状態監視スクリプト）の少なくとも１つのスクリプトを実行すればよく、全てのスクリプトを実行する形態に限定されない。
【０２４９】
まず、プロセッサが状態出力スクリプトを第１のブラウザ４１０上で実行する。これによって、スクリプト実行部５５０が機能し、プログラムインターフェース部４２０を介して仮想処理部４３０から機器の状態情報を取得する（ステップＳ２０００）。表示制御部５２０は、ステップＳ２０００で取得した状態情報を操作表示部３４０へ表示する（ステップＳ２０２０）。例えば、機器の状態情報が、アカウント情報を含む場合、表示制御部５２０は、機器で認証したアカウント情報を操作表示部３４０へ表示する。また、例えば、機器の状態情報が第２のブラウザで用いるブラウザの画面サイズを含む場合、表示制御部５２０は、該画面サイズとなるように、第１のブラウザ４１０の表示画面の画面サイズを変更する。
【０２５０】
次に、プロセッサが、要求送信スクリプトを第１のブラウザ４１０上で実行する。これによって、スクリプト実行部５５０が機能し、プログラムインターフェース部４２０を介して仮想処理部４３０へ要求信号を送信する（ステップＳ２０４０）。
【０２５１】
例えば、スクリプト実行部５５０は、機器が休止状態へ移行しないように要求する要求信号や、休止状態への移行拒否の解除を要求する要求信号を、プログラムインターフェース部４２０を介して仮想処理部４３０へ送信する。
【０２５２】
該要求信号を受け付けた仮想処理部４３０は、要求信号に応じた状態に遷移する。
【０２５３】
次に、プロセッサが、機器状態監視スクリプトを第１のブラウザ４１０上で実行する。これによって、スクリプト実行部５５０が機能し、プログラムインターフェース部４２０を介して、仮想処理部４３０による機器の状態を監視する（ステップＳ２０６０）。ステップＳ２０６０の処理の詳細は後述する。
【０２５４】
次に、プロセッサが操作プログラムを実行することによって、仮想処理部４３０による機器が処理を実行可能な状態であるか否かを判断する（ステップＳ２０８０）。例えば、仮想処理部４３０の状態が「処理実行可能な状態」を示すか否かを判別することで、ステップＳ２０８０の判断を行う。
【０２５５】
ステップＳ２０８０で否定判断すると（ステップＳ２０８０：Ｎｏ）、上記ステップＳ２０６０へ戻る。ステップＳ２０８０で肯定判断すると（ステップＳ２０８０：Ｙｅｓ）、ステップＳ２１００へ進む。
【０２５６】
ステップＳ２１００では、プロセッサが操作プログラムを実行することによって、表示制御部５２０が操作表示部３４０から処理実行指示を受付ける。ユーザは、操作表示部３４０を操作することで、処理（例えば、印刷ジョブ）の実行指示を入力する。表示制御部５２０は、実行指示を受付けると、処理の実行要求を、プログラムインターフェース部４２０を介して仮想処理部４３０へ送信する（ステップＳ２１００）。
【０２５７】
次に、プロセッサが、処理状態監視スクリプトを第１のブラウザ４１０上で実行する。これによって、スクリプト実行部５５０が機能し、仮想処理部４３０による機器の処理の状態を監視する（ステップＳ２１２０）。ステップＳ２１２０の処理の詳細は後述する。
【０２５８】
次に、スクリプト実行部５５０は、仮想処理部４３０の処理の状態が、印刷完了の内、回復不可能なエラー発生、正常完了、および回復可能なエラー発生、の何れであるかを判断する（ステップＳ２１４０）。
【０２５９】
そして、スクリプト実行部５５０は、仮想処理部４３０からプログラムインターフェース部４２０を介して受け付けた処理の状態が、“回復不可能なエラー発生”、“正常完了”、および“回復可能なエラー発生”の何れの印刷完了を示すかを判断する。
【０２６０】
仮想処理部４３０からプログラムインターフェース部４２０を介して受け付けた処理の状態が“回復不可能なエラー発生”の印刷完了を示す場合、ステップＳ２１６０へ進む。ステップＳ２１６０では、スクリプト実行部５５０は、“回復不可能なエラー発生”を第１のブラウザ４１０へ通知する（ステップＳ２１６０）。
【０２６１】
第１のブラウザ４１０が該通知を受け付けると、表示制御部５２０が、“回復不可能なエラー発生”を示す情報を操作表示部３４０へ表示する（ステップＳ２１７０）。そして、スクリプト実行部５５０は、仮想処理部４３０による実行中の処理の状態の監視を終了する（ステップＳ２１８０）。そして、本ルーチンを終了する。
【０２６２】
一方、ステップＳ２１４０で、スクリプト実行部５５０が、仮想処理部４３０からプログラムインターフェース部４２０を介して受け付けた処理の状態が“正常完了”の印刷完了を示すと判断すると、ステップＳ２２００へ進む。ステップＳ２２００では、スクリプト実行部５５０は、“処理完了”を第１のブラウザ４１０へ通知する（ステップＳ２２００）。
【０２６３】
第１のブラウザ４１０が該通知を受け付けると、表示制御部５２０が、“処理完了”を示す情報を操作表示部３４０へ表示する（ステップＳ２２１０）。そして、上記ステップＳ２１８０へ進む。
【０２６４】
一方、ステップＳ２１４０で、スクリプト実行部５５０が、仮想処理部４３０からプログラムインターフェース部４２０を介して受け付けた処理の状態が“回復可能なエラー発生”の印刷完了を示すと判断すると、ステップＳ２２２０へ進む。ステップＳ２２２０では、スクリプト実行部５５０は、回復可能なエラーの発生、および、エラーの内容を第１のブラウザ４１０へ通知する（ステップＳ２２２０）。
【０２６５】
第１のブラウザ４１０が該通知を受け付けると、表示制御部５２０は、該エラーの発生と、該エラーの内容を操作表示部３４０へ表示する（ステップＳ２２４０）。ユーザは、操作表示部３４０へ表示されたエラー内容を参照し、エラーを解消する操作を行う。例えば、ユーザは、操作表示部３４０を操作し、仮想ジョブ管理部４３０Ｂの印刷完了の内容を、“正常完了”を示す内容に切り替える。そして、上記ステップＳ２１２０へ戻る。
【０２６６】
次に、図２０におけるステップＳ２０６０の処理の手順を説明する。図２１は、図２０ステップＳ２０６０の処理の手順を示すフローチャートである。
【０２６７】
まず、スクリプト実行部５５０が、プログラムインターフェース部４２０へ、機器の状態の監視要求を送信する（ステップＳ３０２０）。
【０２６８】
機器の状態の監視要求を受け付けたプログラムインターフェース部４２０は、仮想処理部４３０から、機器の状態を取得し、第１のブラウザ４１０へ送信する。第１のブラウザ４１０のスクリプト実行部５５０は、プログラムインターフェース部４２０から、機器の状態を取得する（ステップＳ３０４０）。
【０２６９】
そして、スクリプト実行部５５０は、内部メモリに記憶されている機器の状態と、ステップＳ３０４０で取得した機器の状態と、が異なるか否かを判断する（ステップＳ３０６０）。
【０２７０】
内部メモリに記憶されている機器の状態と、ステップＳ３０４０で取得した機器の状態と、が一致する場合（ステップＳ３０６０：Ｎｏ）、ステップＳ３１２０へ進む。
【０２７１】
一方、内部メモリに記憶されている機器の状態と、ステップＳ３０４０で取得した機器の状態と、が異なる場合（ステップＳ３０６０：Ｙｅｓ）、ステップＳ３０８０へ進む。ステップＳ３０８０では、スクリプト実行部５５０は、ステップＳ３０４０で取得した機器の状態を、第１のブラウザ４１０へ通知する（ステップＳ３０８０）。そして、スクリプト実行部５５０は、ステップＳ３０４０で取得した機器の状態を、内部メモリに上書き記憶する（ステップＳ３１００）。そして、ステップＳ３１２０へ進む。
【０２７２】
ステップＳ３１２０では、スクリプト実行部５５０は、第１のブラウザ４１０から監視停止要求を受け付けたか否かを判断する（ステップＳ３１２０）。ステップＳ３１２０で否定判断すると（ステップＳ３１２０：Ｎｏ）、上記ステップＳ３０２０へ戻る。一方、ステップＳ３１２０で肯定判断すると（ステップＳ３１２０：Ｙｅｓ）、本ルーチンを終了する。
【０２７３】
なお、スクリプト実行部５５０は、ステップＳ３１２０で肯定判断するまで（ステップＳ３１２０：Ｙｅｓ）、一定の間隔で（例えば、１秒ごとなど）、ステップＳ３０２０〜ステップＳ３１００の処理を繰り返し実行してもよい。
【０２７４】
このため、第１のブラウザ４１０は、一定間隔のポーリングにより、仮想処理部４３０（すなわち機器）の状態を監視することができる。
【０２７５】
次に、図２０におけるステップＳ２１２０の処理の手順を説明する。図２２は、図２０のステップＳ２１２０の処理の手順を示すフローチャートである。
【０２７６】
まず、スクリプト実行部５５０が、プログラムインターフェース部４２０へ、機器で実行中の処理の状態の監視要求を送信する（ステップＳ４０２０）。
【０２７７】
機器で実行中の処理の状態の監視要求を受け付けたプログラムインターフェース部４２０は、仮想処理部４３０から、機器で実行中の処理の状態を取得し、第１のブラウザ４１０へ送信する。スクリプト実行部５５０は、第１のブラウザ４１０上で、プログラムインターフェース部４２０から機器で実行中の処理の状態を取得する（ステップＳ４０４０）。
【０２７８】
そして、スクリプト実行部５５０は、内部メモリに記憶されている機器で実行中の処理の状態と、ステップＳ４０４０で取得した機器で実行中の処理の状態と、が異なるか否かを判断する（ステップＳ４０６０）。
【０２７９】
内部メモリに記憶されている機器で実行中の処理の状態と、ステップＳ４０４０で取得した機器で実行中の処理の状態と、が一致する場合（ステップＳ４０６０：Ｎｏ）、ステップＳ４１２０へ進む。
【０２８０】
一方、内部メモリに記憶されている機器で実行する処理の状態と、ステップＳ４０４０で取得した機器で実行中の処理の状態と、が異なる場合（ステップＳ４０６０：Ｙｅｓ）、ステップＳ４０８０へ進む。ステップＳ４０８０では、スクリプト実行部５５０は、ステップＳ４０４０で取得した、機器で実行中の処理の状態を、第１のブラウザ４１０へ通知する（ステップＳ４０８０）。そして、スクリプト実行部５５０は、ステップＳ４０４０で取得した機器で実行中の処理の状態を、内部メモリに上書き記憶する（ステップＳ４１００）。そして、ステップＳ４１２０へ進む。
【０２８１】
ステップＳ４１２０では、スクリプト実行部５５０は、第１のブラウザ４１０から監視停止要求を受け付けたか否かを判断する（ステップＳ４１２０）。ステップＳ４１２０で否定判断すると（ステップＳ４１２０：Ｎｏ）、上記ステップＳ４０２０へ戻る。一方、ステップＳ４１２０で肯定判断すると（ステップＳ４１２０：Ｙｅｓ）、本ルーチンを終了する。
【０２８２】
なお、スクリプト実行部５５０は、ステップＳ４１２０で肯定判断するまで（ステップＳ４１２０：Ｙｅｓ）、一定の間隔で（例えば、１秒ごとなど）、ステップＳ４０２０〜ステップＳ４１００の処理を繰り返し実行してもよい。
【０２８３】
このため、第１のブラウザ４１０は、一定間隔のポーリングにより、仮想処理部４３０（すなわち機器）で実行中の処理の状態を監視することができる。
【０２８４】
以上説明したように、本実施の形態の情報処理装置３００は、操作表示部３４０（表示部）に画面を表示する第１のブラウザ４１０を有する情報処理装置３００である。情報処理装置３００は、プロセッサと、取得部５１０と、受付部５３０と、を備える。取得部５１０は、サーバ装置２００（外部装置）に搭載されているウェブアプリケーション２３０に対して第１のブラウザ４１０を介してアクセスし、機器に特有の画面を表示するための第２のブラウザ上で実行される特有の処理を記述した１以上のスクリプトを取得する。スクリプト実行部５５０は、取得した１以上のスクリプトをプロセッサが第１のブラウザ４１０上で実行することにより機能し、機器の監視および機器への信号送信を行う。
【０２８５】
ここで、従来では、機器に特有の画面を表示するためのブラウザを用いて制御プログラムの開発を行う必要があった。このため、機器に特有の画面を表示するためのブラウザ以外の汎用のブラウザを用いて、機器を制御するための制御プログラムを開発することは困難であった。
【０２８６】
一方、本実施の形態の情報処理装置３００では、第２のブラウザに特有の処理を記述した１以上のスクリプトを取得し、情報処理装置３００の第１のブラウザ４１０上で１以上のスクリプトを実行する。
【０２８７】
このように、本実施の形態の情報処理装置３００では、第１のブラウザ４１０上で１以上のスクリプトを実行することで、機器のエミュレーションを行うことができる。言い換えると、第２のブラウザとは異なる、汎用ブラウザである第１のブラウザ４１０を実行するプロセッサを備えた情報処理装置３００を、機器のエミュレータとして機能させることができる。
【０２８８】
従って、本実施の形態の情報処理装置３００では、機器に特有の画面を表示するためのブラウザ以外のブラウザを用いて、機器を制御するための制御プログラムを開発することができる。
【０２８９】
また、１以上のスクリプトは、第２のブラウザ上で実行される特有の処理を記述したスクリプトプログラムである。このため、情報処理装置３００では、機器の監視や機器への信号送信といった、機器に特有の画面を表示するための第２のブラウザに特有の処理を、第１のブラウザ４１０を用いて開発することが可能となる。このため、本実施の形態の情報処理装置３００では、上記効果に加えて、制御プログラムの開発工数や開発コストの削減を図ることもできる。
【０２９０】
１以上のスクリプトは、状態出力スクリプト、要求送信スクリプト、機器状態監視スクリプト、および処理状態監視スクリプトの少なくとも１つを含む。
【０２９１】
状態出力スクリプトは、機器から取得した機器の状態情報を出力する。要求送信スクリプトは、機器へ要求信号を送信する。機器状態監視スクリプトは、機器の状態を監視する。処理状態監視スクリプトは、機器で実行中の処理の状態を監視する。
【０２９２】
また、情報処理装置３００は、仮想処理部４３０と、プログラムインターフェース部４２０と、を備える。仮想処理部４３０は、少なくとも機器に特有の動作を実行する。プログラムインターフェース部４２０は、第１のブラウザ４１０からの要求に応じて仮想処理部４３０を制御する。
【０２９３】
なお、本実施の形態では、情報処理部３５０に仮想処理部４３０を備えた構成とし、プログラムインターフェース部４２０が仮想処理部４３０を制御する形態を説明した。しかし、情報処理部３５０に、画像形成機能（プリンタ機能）、スキャナ機能、ファックス機能などの少なくとも１つを含む機器を信号授受可能に接続し、プログラムインターフェース部４２０で該機器を制御してもよい。
【０２９４】
なお、上記には、本発明のいくつかの実施の形態および変形例を説明した。しかし、これらの実施の形態および変形例は、一例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施の形態および変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施の形態や変形例は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０２９５】
１０、１１  情報処理システム
２０  サーバ装置
２４  ウェブアプリケーション
３０  情報処理装置
５１  通信部
５２  表示制御部
５５  第１取得部
５６  第２取得部
５７  第３取得部
５８  検出部
２００  サーバ装置
３５０  情報処理部
４１０  第１のブラウザ
４２０  プログラムインターフェース部
４３０  仮想処理部
５１０  取得部
５５０  スクリプト実行部
【先行技術文献】
【特許文献】
【０２９６】
【特許文献１】特開２００８−０１５６９５号公報
【図１】
2016177796.tif 000003
【図２】
2016177796.tif 000004
【図３】
2016177796.tif 000005
【図４】
2016177796.tif 000006
【図５】
2016177796.tif 000007
【図６】
2016177796.tif 000008
【図７】
2016177796.tif 000009
【図８】
2016177796.tif 000010
【図９】
2016177796.tif 000011
【図１０】
2016177796.tif 000012
【図１１】
2016177796.tif 000013
【図１２】
2016177796.tif 000014
【図１３】
2016177796.tif 000015
【図１４】
2016177796.tif 000016
【図１５】
2016177796.tif 000017
【図１６】
2016177796.tif 000018
【図１７】
2016177796.tif 000019
【図１８】
2016177796.tif 000020
【図１９】
2016177796.tif 000021
【図２０】
2016177796.tif 000022
【図２１】
2016177796.tif 000023
【図２２】
2016177796.tif 000024