以下、添付図面を参照しながら、本発明に係る、情報処理装置、情報処理方法、情報処理プログラム、および情報処理システムの実施の形態を詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
(第1の実施の形態)
図1は、本実施の形態に係る情報処理システム10の構成を示す図である。情報処理システム10は、サーバ装置20と、情報処理装置30とを備える。
サーバ装置20と情報処理装置30とは、ネットワーク12を介して接続される。ネットワーク12は、一例として、公衆に接続されたインターネット等のネットワークであってもよいし、社内等のローカルネットワークであってもよい。また、ネットワーク12は、有線であっても無線であってもよい。
サーバ装置20は、情報処理装置30からアクセスされる。
サーバ装置20は、ネットワークI/F21と、ウェブアプリケーション24と、を有する。ネットワークI/F21は、ネットワーク12を介して他の装置と通信するためのインターフェースである。
ウェブアプリケーション24は、情報処理装置30から、情報処理装置30の後述するブラウザを介してアクセスされる。ウェブアプリケーション24は、情報提供部22と、アプリ処理部23と、を含む。
アプリ処理部23は、情報処理装置30から、情報処理装置30の後述する情報処理部35のブラウザを介してアクセスされる。ユーザは、情報処理装置30のブラウザを介してアプリ処理部23にアクセスし、情報処理装置30で実行する処理の各種設定条件を、ウェブアプリケーション24上で設定する。アプリ処理部23は、設定された設定条件を管理する。ウェブアプリケーション24は、ウェブアプリケーション24上で設定された設定条件を含む処理要求を情報処理装置30へ送信する。設定条件については、詳細を後述する。
情報提供部22は、ネットワーク12を介して、情報処理装置30に対して、1以上のスクリプトを提供する。これらのスクリプトは、情報処理装置30がサーバ装置20から操作プログラムを取得し、操作プログラムを実行することで、サーバ装置20から情報処理装置30へ提供される。操作プログラムは、HTML(HyperText Markup Language)で記述されたHTMLファイルであり、これらのスクリプトが埋め込まれている。また、操作プログラムには、サーバ装置20から情報処理装置30の表示部(後述する操作表示部34)に表示させる画面の生成に用いる情報(例えば、基本の項目や表示に用いる枠など)が記述されている。画面は、各種情報や画像を表示すると共に、ユーザからの操作指示を受付けるユーザインターフェースである。
1以上のスクリプトは、例えば、複数のスクリプトを含む。これらのスクリプトは、情報処理装置30のブラウザ上で実行されるスクリプトプログラムである。これらのスクリプトは、例えば、HTML(HyperText Markup Language)で記述される。
情報処理装置30は、プロセッサを備える。情報処理装置30は、ネットワークI/F31と、機器36と、操作表示部34と、情報処理部35とを有する。ネットワークI/F31は、ネットワーク12を介して他の装置と情報を送受信するためのインターフェースである。
機器36は、各種処理を実行する機器である。機器36は、例えば、スキャナ、プリンタ、ファックスの少なくとも1つの機能を有する。本実施の形態では、機器36は、プリンタ32である場合を一例として説明する。
プリンタ32は、データに応じた文字および画像等を用紙等に印刷する。なお、情報処理装置30は、他の機器36を備えた構成であってもよい。
操作表示部34は、ユーザに対して情報を表示するとともにユーザからの入力を受け付ける。操作表示部34は、一例として、タッチパネルである。また、操作表示部34は、操作ボタン、マウス、キーボード等を有してもよい。
情報処理部35は、操作表示部34に画面を表示するブラウザ41を有する。情報処理部35は、サーバ装置20に搭載されているウェブアプリケーション24に対して、ブラウザ41を介してアクセスし、サーバ装置20から操作プログラムを取得する。これにより、情報処理部35は、サーバ装置20から操作表示部34に表示させる画面と、1以上のスクリプトと、を取得する。そして、情報処理部35は、1以上のスクリプトの各々をブラウザ41上で実行することにより、機器36を制御する制御プログラムとして機能する。
詳細には、情報処理部35は、ブラウザ41と、プログラムインターフェース部42と、を有する。
プログラムインターフェース部42は、ブラウザ41からプリンタ32の動作を制御するためのソフトウェアインターフェースである。プログラムインターフェース部42は、ブラウザ41からの各種要求に応じて、プリンタ32を制御する。
プログラムインターフェース部42は、記憶部42Eと、認証部42Cと、実行制御部42Dと、を含む。記憶部42Eは、第1管理部42Aと、第2管理部42Bと、を含む。
第1管理部42Aは、第1の設定情報を記憶する。第1の設定情報は、情報処理装置30が処理を実行する際に設定できる設定条件であって、設定項目毎に設定可能な設定値を対応付けられている設定条件を規定した情報である。すなわち、第1の設定情報は、機器36が処理を実行する際に設定できる設定条件を規定した情報である。
図2は、第1の設定情報64のデータ構成の一例を示す図である。第1の設定情報64に規定された設定条件は、設定項目と、設定値と、を含む。
第1の設定情報64に規定された設定条件に含まれる設定項目は、機器36に搭載された各種機能の内、ユーザによって指定および変更可能な機能を示す情報である。設定項目は、例えば、印刷色、印刷面、印刷に用いる用紙を搭載したトレイ、印刷部数、などである。なお、設定項目は、これらに限定されない。
第1の設定情報64に規定された設定条件に含まれる設定値は、設定項目の各々に対応する値である。第1の設定情報64には、設定条件に含まれる設定値として、機器36で設定可能な設定値のとりうる値を、「設定値のリスト」として規定している。例えば、第1の設定情報64には、設定項目“印刷色(printColor)”に対応する「設定値のリスト」として、“白黒”、“グレー”、“自動設定”が対応づけられている。
図1に戻り、第2管理部42Bは、競合情報を記憶する。競合情報は、情報処理装置30が処理を実行する際に競合する設定条件の競合関係を示す。具体的には、競合情報は、機器36が処理を実行する際に競合する設定条件の競合関係を示す。
図3は、競合情報66のデータ構成の一例を示す図である。競合関係にある、とは、情報処理装置30において同時に設定出来ない設定条件の組合せを意味する。言い換えると、競合関係は、情報処理装置30において実行不可能な設定条件の組合せを意味する。
図3に示すように、例えば、情報処理装置30では、設定項目“印刷面(printSide)”と該設定項目に対応する設定値“雑誌綴じ”の設定条件と、設定項目“印刷に用いる用紙を搭載したトレイ(paperTray)”と該設定項目に対応する設定値“トレイ2”の設定条件と、は競合関係にあり、情報処理装置30(プリンタ32)において同時に設定することは出来ない。
なお、図3には、2つの設定条件が互いに競合関係にある例を示した。しかし、情報処理装置30では、3つ以上の設定条件が互いに競合関係を示す場合がある。このため、競合情報66は、競合する2つ以上の設定条件の組合せを示した情報であればよく、3つ以上の競合する設定条件の組合せを示した情報であってもよい。
なお、情報処理部35に、複数種類の機器36を接続した構成としてもよい。複数種類の機器36は、機種および搭載する機能の少なくとも1つが互いに異なる。
この場合、第1管理部42Aは、各機器36の各々に対応する第1の設定情報64を、予め登録し、管理すればよい。また、第2管理部42Bは、各機器36の各々に対応する競合情報66を、予め登録して管理すればよい。
図1に戻り、認証部42Cは、ユーザによる操作表示部34の操作により入力されたユーザIDを受付け、該ユーザIDによって識別されるユーザの認証処理を行う。実行制御部42Dは、ブラウザ41からの各種要求に応じて、プリンタ32を制御する。
次に、ブラウザ41について説明する。
ブラウザ41は、通信部51と、表示制御部52と、受付部53と、第1取得部55と、第2取得部56と、第3取得部57と、検出部58と、実行部59と、を含む。これらの機能部は、情報処理装置30のプロセッサがサーバ装置20から取得したスクリプトをブラウザ41で実行することにより機能する。
通信部51は、サーバ装置20に搭載されているウェブアプリケーション24に対してブラウザ41を介してアクセスし、サーバ装置20から操作表示部34に表示させる画面と、1以上のスクリプトと、を取得する。
本実施の形態では、1以上のスクリプトは、複数のスクリプトを含む場合を説明する。具体的には、本実施の形態では、例えば、1以上のスクリプトは、第1スクリプト、第2スクリプト、第3スクリプト、および制御スクリプトを含む場合を説明する。
すなわち、本実施の形態では、第1取得部55、第2取得部56、第3取得部57、および検出部58のそれぞれは、それぞれ別個のスクリプト(第1スクリプト、第2スクリプト、第3スクリプト、および制御スクリプトのそれぞれ)がプロセッサによりブラウザ41上で実行されることによりそれぞれ機能する。
受付部53は、操作表示部34のユーザによる操作指示を受付ける。
第1取得部55は、プロセッサがブラウザ41上で第1スクリプトを実行することにより機能し、第1管理部42Aから第1の設定情報64を取得する。
詳細には、第1取得部55は、第1管理部42Aから第1の設定情報64を取得する。なお、第1管理部42Aが複数種類の機器36の各々に対応する第1の設定情報64を管理する場合、第1取得部55は、実行対象の機器36に対応する第1の設定情報64を第1管理部42Aから取得する。実行対象の機器36を示す情報は、サーバ装置20から取得してもよいし、操作表示部34から取得してもよい。
第2取得部56は、プロセッサがブラウザ41上で第2スクリプトを実行することにより機能する。第2取得部56は、第2の設定情報を、サーバ装置20のウェブアプリケーション24から取得する。
第2の設定情報は、当該情報処理装置30に対して処理要求を送信するウェブアプリケーション24で設定された設定条件を規定した情報である。
図4は、第2の設定情報62のデータ構成の一例を示す図である。第2の設定情報62に規定された設定条件は、設定項目と、設定値と、を含む。本実施の形態では、第2の設定情報62に規定された設定条件は、設定項目と、設定値と、設定値のリストと、を含む。
第2の設定情報62に規定された設定条件に含まれる設定項目は、上述したように、例えば、印刷色、印刷面、印刷に用いる用紙を搭載したトレイ、印刷部数、などである。なお、設定項目は、これらに限定されない。
第2の設定情報62に規定された設定条件に含まれる設定値は、例えば、ユーザによる情報処理装置30の操作表示部34を介した操作指示により設定される。すなわち、情報処理装置30からブラウザ41を介してサーバ装置20のウェブアプリケーション24へアクセスすることで、情報処理装置30のブラウザ41は、第2の設定情報62に規定された設定条件に含まれる設定値のリストを操作表示部34へ表示する。第2の設定情報62に規定された設定条件に含まれる設定値のリストは、選択可能な設定値のリストである。ユーザは、設定値のリストの中から、所望の設定値を選択する。これにより、第2の設定情報62には、各設定項目に対応づけて、ユーザによって選択された設定値が初期の設定値として登録される。なお、第2の設定情報62への登録処理は、アプリ処理部23が行う。
以下では、第2の設定情報62に設定された設定値を、「初期の設定値」と称して説明する。このため、第2の設定情報62に規定された設定条件は、初期の設定値を含む。
図1に戻り、第3取得部57は、プロセッサがブラウザ41上で第3スクリプトを実行することによって機能する。第3取得部57は、第2管理部42Bに記憶されている競合情報66を取得する。
本実施の形態では、第3取得部57は、実行対象の機器36に対応する競合情報66を、第2管理部42Bから取得する。実行対象の機器36は、例えば、ユーザによる操作表示部34の操作指示によって入力された機器であってもよい。
なお、第3取得部57は、サーバ装置20から競合情報66を取得してもよい。この場合、サーバ装置20では、機器36の種類ごとに、競合情報66を対応づけて予め記憶すればよい。そして、第3取得部57は、実行対象の機器36に対応する競合情報66を、サーバ装置20から取得すればよい。
検出部58は、プロセッサがブラウザ41上で制御スクリプトを実行することによって機能する。検出部58は、第2の設定情報62に規定された設定条件のうち、競合関係にある設定条件を、第3取得部57で取得した競合情報66に基づいて検出する。
詳細には、検出部58は、まず、第2の設定情報62に規定された設定条件に含まれる設定項目を読取る。そして、検出部58は、読取った設定項目の内、第1の設定情報64に含まれる設定項目を特定する。すなわち、検出部58は、ウェブアプリケーション24(アプリ処理部23)で設定された設定項目の内、機器36に対応する第1の設定情報64に規定された設定項目を特定する。
そして、検出部58は、第2の設定情報62における、特定した設定項目と該設定項目に対応する設定値とを含む設定条件に対して、競合関係を有する他の設定条件が競合情報66に登録されているか否かを判断する。そして、登録されている場合に、検出部58は、競合関係にある設定条件を検出する。
なお、検出部58は、第1取得部55、第2取得部56、および第3取得部57の各々が、第1の設定情報64、第2の設定情報62、および競合情報66の各々を取得したときに、競合関係にある設定条件の検出を行ってもよい。
また、検出部58は、第1取得部55、第2取得部56、および第3取得部57の各々が、第1の設定情報64、第2の設定情報62、および競合情報66の各々を取得した後であって、且つ、ユーザによる設定条件の変更を受付けたときに、競合関係にある設定条件を検出してもよい。
この場合、検出部58は、受付部53が、ユーザによる設定条件の変更を受付けたときに、第2の設定情報62に規定された設定条件のうち変更を受付けた設定条件について、競合関係にある設定条件を、第3取得部57で取得した競合情報66に基づいて検出すればよい。
また、検出部58は、競合関係にある設定条件を検出したときに、競合関係にある設定条件に含まれる設定値を、競合関係にある設定条件を解消するように変更することが好ましい。
例えば、第2の設定情報62に、競合情報66に規定されている、設定項目“印刷面(printSide)”と該設定項目に対応する設定値“雑誌綴じ”の設定条件と、設定項目“印刷に用いる用紙を搭載したトレイ(paperTray)”と該設定項目に対応する設定値“トレイ2”の設定条件と、の競合関係が含まれていたとする。
この場合、検出部58は、競合関係にある設定条件を検出する。そして、検出部58は、競合関係にある複数の設定条件のうちの少なくとも1つの設定条件に含まれる設定値を、競合関係にある設定条件を解消するように変更する。
具体的には、検出部58は、例えば、競合関係にある一方の設定条件の設定値“トレイ2”を、競合関係を有さない設定値“トレイ1”に変更する。
なお、検出部58による検出処理は、管理情報を更新することによって行われる。
管理情報は、第2の設定情報62に規定されている設定条件に含まれる設定項目の各々について、第1の設定情報64に規定されているか否か、設定値のリストが機器36側で利用可能か否か、などを登録した情報である。
管理情報は、第1取得部55、第2取得部56、第3取得部57、および検出部58によって更新される。
図5は、管理情報68のデータ構造の一例を示す図である。図5に示す例では、管理情報68は、「設定項目」と、「設定値(確定した設定値、初期の設定値)」と、「機器で利用可能か否か」と、「リストに示される設定値の各々が利用可能か否か」と、「制約情報」と、を含む。
管理情報68に規定される設定項目は、第2の設定情報62に規定された設定条件に含まれる設定項目と、同じである。
管理情報68に規定される設定値は、確定した設定値と、初期の設定値と、を含む。初期の設定値は、第2の設定情報62に規定された設定条件に含まれる初期の設定値と同じである。確定した設定値は、検出部58による競合関係を解消する処理などにより変更された後の設定値であり、機器36に送信するジョブデータに含ませる設定値である。
管理情報68に規定される「機器で利用可能か否か」は、対応する設定項目が実行対象の機器36で利用可能であるか否かを示す。
管理情報68に規定される「リストに示される設定値の各々が利用可能か否か」は、第2の設定情報62(図4参照)に規定される、対応する「設定値のリスト」に示される設定値の各々が、実行対象の機器36で利用可能か否かを示す。
管理情報68に規定される「制約情報」は、第1の設定情報64(図2参照)に規定されている「設定値のリスト」に登録されている、設定値の最大文字数、設定値の最大値、設定値の最小値などの制約を示す情報である。
管理情報68の更新処理については、詳細を後述する。
図1に戻り、表示制御部52は、プロセッサがブラウザ41上で制御スクリプトを実行することによって機能する。表示制御部52は、各種画像や情報を操作表示部34へ表示する。
例えば、表示制御部52は、サーバ装置20から取得した操作プログラムのHTMLの記述(画面の生成に用いる情報(例えば、基本の項目や表示に用いる枠など))に沿って、画面の枠や表示する項目などを生成し、更に、該画面内に、設定された設定条件の各々について設定項目と設定項目に対応する設定値とを埋め込むことで、操作表示部34に表示する画面を生成する。そして、表示制御部52は、生成した画面を操作表示部34に表示する。
図6は、画面70の一例を示す模式図である。例えば、画面70は、設定項目として、“印刷色”、“パンチ”、“印刷面”、“トレイ”、“印刷部数”の各々を含む。これらの設定項目の内、機器36が提供する設定条件の一覧を規定した第1の設定情報64に規定されていない設定項目は、利用不可能であるとして選択不可能に表示されている。図6に示す例では、例えば、第1の設定情報64に規定されていない設定項目および対応する設定値のリストは、灰色で示され、操作入力を受付けない表示領域となっている。例えば、設定項目“パンチ”の表示領域は、操作入力を受付けない表示領域となっている。
また、各設定項目の表示領域の近傍には、第2の設定情報62に規定されている、各設定項目に対応する設定値が表示されている。これらの設定の内、機器36が提供する第1の設定情報64に規定されていない設定値は、利用不可能であるとして選択不可能に表示されている。図6に示す例では、例えば、利用不可能な設定値は、灰色で示され、操作入力を受付けない表示領域となっている。例えば、設定項目“パンチ”の設定値“なし”、“上二つ穴”、“右二つ穴”、および設定項目“印刷色”の設定値“カラー”の表示領域は、操作入力を受付けない表示領域となっている。
また、各設定項目に対応する設定値の内、検出部58によって確定した設定値は、強調表示されている。図6に示す例では、検出部58によって確定した設定値は、二重線の枠で囲まれて表示されている。
表示制御部52は、管理情報68に基づいて画面70を生成し、操作表示部34へ表示する。
また、表示制御部52は、検出部58によって競合関係にある設定条件が検出されたときに、競合関係にある設定条件を示す情報を操作表示部34に表示することが好ましい。
図7は、画面71の一例を示す模式図である。例えば、表示制御部52は、競合関係を示す情報として、「「印刷面:雑誌綴じ」と「トレイ:トレイ2」は競合するため設定出来ません。」などの情報71Aを含む画面71を、操作表示部34へ表示することが好ましい。
また、表示制御部52は、競合関係にある設定条件の設定値を、競合関係にある設定条件を示す形態(例えば、他の領域とは異なる色)で表示することが好ましい。図7に示す例では、設定値“雑誌綴じ”と設定値“トレイ2”は、他の領域とは異なる色で表示されている。
また、表示制御部52は、検出部58によって競合関係にある設定条件が解消されたときに、競合関係にある設定条件を解消するように変更した後の設定条件を操作表示部34に表示してもよい。
図8は、画面72の一例を示す模式図である。例えば、検出部58が、「印刷面:雑誌綴じ」と「トレイ:トレイ2」との競合関係を解消するために、設定項目“トレイ”の設定値“トレイ2”を、“トレイ1”に変更したとする。この場合、表示制御部52は、変更後の設定条件を示す画面72を操作表示部34に表示すればよい。このとき、表示制御部52は、設定値を変更したことを示す情報72A(例えば、「「トレイ」の設定を、「トレイ1」に変更しました。」を示す情報72A)を含む画面72を、操作表示部34に表示してもよい。
図1に戻り、実行部59は、プロセッサがブラウザ41上で制御スクリプトを実行することによって機能する。実行部59は、プログラムインターフェース部42を介して機器36へ各種処理の実行指示を送信する。
本実施の形態では、実行部59は、ジョブデータを含む印刷処理の実行要求を、プログラムインターフェース部42を介してプリンタ32へ送信する。
図9は、ジョブデータ69の一例を示す図である。ジョブデータ69は、管理情報68(図5参照)に登録された設定項目と、各設定項目に対応する確定した設定値と、を含む設定条件を含む。プリンタ32は、受付けたジョブデータ69に従って、印刷処理を実行する。
図10は、本実施の形態に係る情報処理システム10のハードウェア構成を示す図である。サーバ装置20の情報提供部22は、一例として、CPU(Central Processing Unit)101等のプロセッサと、RAM(Random Access Memory)およびROM(Read Only Memory)等のメモリ102と、HDD(Hard Disk Drive)等の記憶装置103とを備える。情報提供部22は、CPU101等のプロセッサが記憶装置103に予め記憶されたオペレーティングシステムおよびブラウザを実行することにより、第1スクリプト、第2スクリプト、第3スクリプト、および制御スクリプトなどを情報処理装置30に対して提供する。
情報処理装置30の情報処理部35は、CPU111等のプロセッサと、RAMおよびROM等のメモリ112と、HDD等の記憶装置113と、操作表示部34とのインターフェースであるデバイスI/F114とを備える。情報処理部35は、CPU111等のプロセッサが、記憶装置113に予め記憶されたオペレーティングシステムおよびブラウザをメモリ112上に展開して実行する。
そして、CPU111等のプロセッサは、ネットワーク12を介してサーバ装置20から第1スクリプト、第2スクリプト、第3スクリプト、および制御スクリプトをダウンロードし、メモリ112上に展開して実行する。CPU111等のプロセッサは、これらのスクリプトを実行することにより、情報処理部35を、通信部51、第1取得部55、第2取得部56、第3取得部57、検出部58、実行部59、表示制御部52、受付部53、として機能させることができる。
次に、本実施の形態の情報処理部35が実行する情報処理の手順を説明する。
図11は、本実施の形態の情報処理部35が実行する情報処理の手順の一例を示すフローチャートである。
まず、ユーザは、操作表示部34を操作することで、情報処理部35のブラウザ41を起動する(ステップS100)。そして、ユーザは、操作表示部34を操作することで、操作プログラムの格納場所を示すURI(Uniform Resource Identifiers)を入力し、操作プログラムのダウンロードを指示する。
通信部51は、サーバ装置20から、操作プログラムを取得する(ステップS102)。
次に、情報処理部35のプロセッサが、ステップS102で取得した操作プログラムに埋め込まれている各スクリプトをブラウザ41上で実行する(ステップS104)(詳細後述)。そして、本ルーチンを終了する。
次に、図11における、ステップS104の処理の手順を説明する。図12は、情報処理部35のプロセッサがステップS102(図11参照)で取得した操作プログラムに埋め込まれている各スクリプト(第1スクリプト、第2スクリプト、第3スクリプト、および制御スクリプト)のそれぞれを実行することによって行う情報処理の手順の一例を示すフローチャートである。
まず、プロセッサが、第2スクリプトをブラウザ41上で実行する。該第2スクリプトの実行により機能する第2取得部56は、サーバ装置20から第2の設定情報62(図4参照)を取得する(ステップS200)。
次に、第2取得部56は、ステップS200で取得した第2の設定情報62に規定された設定項目の各々を、管理情報68(図5参照)に登録する。そして、第2取得部56は、該第2の設定情報62に規定された全ての設定項目の各々について、ステップS202の処理を実行する。
ステップS202では、第2取得部56は、第2の設定情報62に規定された設定項目に対応する設定値のリストを、管理情報68の対応する「リストに示される設定値の各々が利用可能か否か」の欄に登録する(ステップS202)。
次に、プロセッサが、ステップS102(図11参照)で取得した操作プログラムに埋め込まれている第1スクリプトを、ブラウザ41上で実行する。該第1スクリプトの実行により機能する第1取得部55は、実行対象の機器36に対応する第1の設定情報64を第1管理部42Aから取得する(ステップS204)。
次に、第1取得部55は、ステップS200で取得した第2の設定情報62(図4参照)に規定された全ての設定項目の各々について、登録処理を実行する(ステップS206)(詳細後述)。
ステップS206の処理によって、管理情報68(図5参照)には、第2の設定情報62に規定された設定条件の設定項目のうち、第1の設定情報64に規定された設定項目について、「機器で利用可能か否か」の欄に“利用可能”が登録される。すなわち、管理情報68における、「機器で利用可能か否か」の欄が“利用可能”である設定項目は、ウェブアプリケーション24で設定された設定項目のうち、第1の設定情報64に規定された設定項目である。
また、ステップS206の処理によって、管理情報68(図5参照)における、「機器で利用可能か否か」の欄に“利用可能”が登録された設定項目に対応する、「リストに示される設定値の各々が利用可能か否か」の欄に登録された設定値の各々について、機器36で利用可能か否かを示す情報が登録される。
次に、プロセッサが、ステップS102(図11参照)で取得した、操作Pログラムに埋め込まれている第3スクリプトを、ブラウザ41上で実行する。該第3スクリプトの実行により機能する第3取得部57は、実行対象の機器36に対応する競合情報66を、第2管理部42Bから取得する(ステップS208)。
次に、プロセッサが、ステップS102(図11参照)で取得した操作プログラムに埋め込まれている制御スクリプトをブラウザ41上で実行する。該制御スクリプトの実行により機能する検出部58が、ステップS208で取得した競合情報66に基づいて、競合関係を検出する検出処理を実行する(ステップS210)(詳細後述)。
次に、表示制御部52が、画面を生成し操作表示部34へ表示する表示処理を実行する(ステップS212)(詳細後述)。
次に、受付部53がユーザによる設定値の変更指示を操作表示部34から受付けたか否かを判断する(ステップS214)。ステップS214で肯定判断すると(ステップS214:Yes)、ステップS210へ戻る。ステップS214で否定判断すると(ステップS214:No)、ステップS216へ進む。
ステップS216では、受付部53が印刷の実行指示を操作表示部34から受付けたか否かを判断する(ステップS216)。例えば、ユーザは、操作表示部34に表示された画面70(または、画面71、または画面72(図6〜図8参照))における、「印刷開始」の表示領域を操作指示する。受付部53は、該「印刷開始」の表示領域が操作指示されたことを示す信号を操作表示部34から受け付けたか否かを判別することで、ステップS216の判断を行えばよい。
ステップS216で否定判断すると(ステップS216:No)、本ルーチンを終了する。一方、ステップS216で肯定判断すると(ステップS216:Yes)、ステップS218へ進む。
ステップS218では、実行部59が、実行要求を、プログラムインターフェース部42を介してプリンタ32へ送信する(ステップS218)。実行要求は、管理情報68(図5参照)に登録された設定項目の内、「機器で利用可能か否か」の欄が“利用可能”である設定項目と、該設定項目に対応する「確定した設定値」に示される設定値と、を含むジョブデータ69(図9参照)を含む。実行部59は、ジョブデータ69を含む実行要求を生成し、プログラムインターフェース部42を介してプリンタ32へ送信する。プリンタ32は、受付けたジョブデータ69に従って、印刷処理を実行する。そして、本ルーチンを終了する。
次に、図12のステップS206の登録処理を説明する。図13は、登録処理の手順の一例を示すフローチャートである。
まず、第1取得部55は、ステップS200(図12参照)で取得した第2の設定情報62(図4参照)に含まれる全ての設定項目の各々について、ステップS300〜ステップS322の処理を繰り返し実行する。すなわち、第1取得部55は、管理情報68に登録されている全ての設定項目の各々について、ステップS300〜ステップS322の処理を繰り返し実行する。
まず、第1取得部55は、第2の設定情報62に含まれる設定項目が、ステップS204(図12参照)で取得した第1の設定情報64に含まれるか否かを判断する(ステップS300)。
設定項目が含まれる場合、肯定判断し(ステップS300:Yes)、ステップS302へ進む。
すなわち、ステップS300で肯定判断することで(ステップS300:Yes)、第1取得部55は、第2の設定情報62に含まれる設定項目のうち、第1の設定情報64に含まれる設定項目を特定する(ステップS302)。
次に、第1取得部55は、管理情報68(図5参照)の、特定した処理対象の設定項目に対応する「機器で利用可能か否か」の欄に、“利用可能”を登録する(ステップS304)。
例えば、第2の設定情報62に規定された設定項目“印刷色(printColor)”(図4参照)は、第1の設定情報64に規定されている(図2参照)。このため、第1取得部55は、管理情報68における、設定項目“印刷色(printColor)”に対応する「機器で利用可能か否か」の欄に、“利用可能”を登録する(図5参照)。
次に、第1取得部55は、第2の設定情報62(図4参照)における、処理対象の設定項目に対応する「設定値のリスト」の欄に登録されている設定値の各々を、管理情報68における、該処理対象の設定項目に対応する「リストに示される設定値の各々が利用可能か否か」の欄に登録する。
そして、第1取得部55は、第1の設定情報64(図2参照)に、処理対象の設定項目に対応する「設定値のリスト」が登録されているか否かを判断する(ステップS306)。
例えば、処理対象の設定項目が“印刷色(printColor)”であったとする。第2の設定情報62(図4参照)には、該設定項目“印刷色(printColor)”に対応する「設定値のリスト」として、“白黒”、“グレー”、“カラー”が、登録されている。この場合、第1取得部55は、ステップS306で肯定判断する(ステップS306:Yes)。
ステップS306で肯定判断すると(ステップS306:Yes)、ステップS308へ進む。ステップS308では、第1取得部55は、管理情報68(図5参照)における、処理対象の設定項目に対応する「リストに示される設定値の各々が利用可能か否か」の欄に登録されている設定値の内、第1の設定情報64(図2参照)の該設定項目に対応する「設定値のリスト」の欄に登録されている設定値に、“利用可能”を登録する(ステップS308)。
次に、第1取得部55は、管理情報68(図5参照)における、処理対象の設定項目に対応する「リストに示される設定値の各々が利用可能か否か」の欄に登録されている設定値の内、第1の設定情報64(図2参照)の該設定項目に対応する「設定値のリスト」の欄に登録されていない設定値に、“利用不可能”を登録する(ステップS310)。
そして、後述するステップS316へ進む。
例えば、第1取得部55は、管理情報68における設定項目“印刷色(printColor)”に対応する、「リストに示される設定値の各々が利用可能か否か」の欄に登録されている設定値“白黒”、“グレー”、“カラー”の各々の内、第1の設定情報64(図2参照)の該設定項目“印刷色(printColor)”に対応する「設定値のリスト」の欄に登録されている設定値“白黒”および“グレー”については、“利用可能”を登録する。一方、第1取得部55は、登録されていない設定値“カラー”については、“利用不可能”を登録する(図5参照)。
一方、上記ステップS306で否定判断すると(ステップS306:No)、ステップS312へ進む。
例えば、処理対象の設定項目が“印刷面(printSide)”であったとする。第2の設定情報62(図4参照)には、該設定項目“印刷面(printSide)”に対応する「設定値のリスト」の欄に設定値が登録されていない。この場合、第1取得部55は、ステップS306で否定判断する(ステップS306:No)。
ステップS312では、第1取得部55は、処理対象の設定項目に対応する「設定値のリスト」が、第1の設定情報64(図2参照)に登録されているか否かを判断する(ステップS312)。
ステップS312で否定判断すると(ステップS312:No)、後述するステップS316へ進む。一方、ステップS312で肯定判断すると(ステップ312:Yes)、ステップS314へ進む。
ステップS314では、第1取得部55は、管理情報68(図5参照)における、処理対象の設定項目に対応する「リストに示される設定値の各々が利用可能か否か」の欄に、第1の設定情報64に登録されている該設定項目に対応する「設定値のリスト」に登録されている設定値を登録する(ステップS314)。また、第1取得部55は、登録した設定値の各々に対応づけて“利用可能”を登録する(ステップS314)。
このため、例えば、管理情報68における、第2の設定情報62において設定値の登録されていない設定項目“トレイ(paperTray)”について、第1の設定情報64に登録されている設定値“自動設定”、“トレイ1”、“トレイ2”が、管理情報68(図5参照)に登録される。また、管理情報68の該設定値“自動設定”、“トレイ1”、“トレイ2”の各々に対応づけて、“利用可能”が「リストに示される設定値の各々が利用可能か否か」の欄に登録される。
ステップS316では、第1取得部55は、第2の設定情報62に登録されている、処理対象の設定項目に対応する初期の設定値を、管理情報68に登録する(ステップS316)。
例えば、処理対象の設定項目が設定項目“印刷色(printColor)”である場合、第1取得部55は、第2の設定情報62における設定項目“印刷色(printColor)”に対応する初期の設定値である“グレー”を、該設定項目に対応づけて管理情報68に登録する。
次に、第1取得部55は、第2の設定情報62に登録されている情報の内、管理情報68に未登録の情報を管理情報68に登録する(ステップS318)。そして、本ルーチンを終了する。
一方、上記ステップS300で否定判断すると(ステップS300:No)、ステップS320へ進む。ステップS320では、第1取得部55が、管理情報68(図5参照)の、特定した処理対象の設定項目に対応する「機器で利用可能か否か」の欄に、“利用不可能”を登録する(ステップS320)。そして、第1取得部55は、対応する設定値について、“利用不可能”を登録する(図5参照)(ステップS322)。そして、本ルーチンを終了する。
次に、図12のステップS210の検出処理を説明する。図14は、検出処理の手順の一例を示すフローチャートである。
検出部58は、第2の設定情報62に規定された設定項目の内、機器36に対応する第1の設定情報64に規定された全ての設定項目の各々について、ステップS400〜ステップS412の処理を繰り返し実行する。すなわち、検出部58は、管理情報68における、「機器で利用可能か否か」の欄が“利用可能”である全ての設定項目の各々について、ステップS400〜ステップS412の処理を繰り返し実行する。
すなわち、図14の手順における処理対象の設定項目は、管理情報68における、「機器で利用可能か否か」の欄が“利用可能”である複数の設定項目の何れかを示す。
なお、図12のステップS214で肯定判断することで(ステップS214:Yes)、ステップS210の検出処理に戻って実行する場合には、検出部58は、ステップS214で変更指示を受付けた設定値に対応する設定項目についてのみ、図14に示す手順を実行すればよい。
すなわち、受付部53が設定値の変更を受付けた場合には、検出部58は、変更を受付けた設定値の設定項目についてのみ、図14に示す手順を実行してもよい。
まず、検出部58は、管理情報68(図5参照)における、処理対象の設定項目に対応する初期の設定値が、対応する制約情報に示される制約を満たすか否かを判断する(ステップS400)。
制約を満たす場合(ステップS400:Yes)、ステップS402へ進む。ステップS402では、検出部58は、管理情報68における、処理対象の設定項目に対応する初期の設定値を、確定した設定値として登録する(ステップS402)。
例えば、管理情報68における、処理対象の設定項目“印刷色(printColor)”に対応する「初期の設定値」の欄に“グレー”が登録されている場合、検出部58は、該設定項目に対応する「確定した設定値」の欄に、“グレー”を登録する。そして、ステップS408へ進む。
一方、制約を満たさない場合(ステップS400:No)、検出部58は、エラー情報を操作表示部34に表示する(ステップS404)。エラー情報は、該設定項目の設定値が、制約を満たさないことを示す情報である。
次に、検出部58は、処理対象の設定項目に対応する初期の設定値を、対応する制約情報に示される制約を満たす値に変更し、変更後の値を、確定した設定値として登録する(ステップS406)。なお、検出部58は、変更後の値として、対応する制約情報に示される制約を満たし、且つ競合情報66に示される競合関係を示さない値を登録することが好ましい。そして、ステップS408へ進む。
ステップS408では、検出部58は、処理対象の設定項目を含む設定条件が他の設定条件と競合関係にあるか否かを判断する(ステップS408)。
詳細には、検出部58は、管理情報68における、処理対象の設定項目と該設定項目に対応する確定した設定値と、を含む設定条件に対して、競合関係を有する他の設定条件が競合情報66に登録されているか否かを判断する。そして、競合情報66に登録されている場合、検出部58は、競合関係にある設定条件を検出(すなわち、競合することを検出)する。
競合関係にある設定条件が無い場合、ステップS408で否定判断し(ステップS408:No)、本ルーチンを終了する。一方、競合関係にある設定条件を検出した場合、ステップS408で肯定判断し(ステップS408:Yes)、ステップS410へ進む。
次に、検出部58は、競合状態であることを示す情報を、処理対象の設定項目に対応づけて管理情報68に登録する(ステップS410)。次に、検出部58は、管理情報68における、処理対象の設定項目に対応する確定した設定値を、競合関係にある設定条件を解消した値に変更する(ステップS412)。なお、検出部58は、競合関係にある他の設定条件に含まれる設定項目に対応する確定した設定値を、競合関係を解消した値に変更してもよい。また、検出部58は、これらの設定値の双方を、競合関係を解消した値に変更してもよい。そして、本ルーチンを終了する。
次に、図12のステップS212の表示処理を説明する。図15は、表示処理の手順の一例を示すフローチャートである。
表示制御部52は、第2の設定情報62に規定された設定項目のうち、第1の設定情報64に規定された全ての設定項目の各々について、ステップS500〜ステップS510の処理を繰り返し実行する。すなわち、表示制御部52は、管理情報68における、「機器で利用可能か否か」の欄が“利用可能”である全ての設定項目の各々について、ステップS500〜ステップS510の処理を繰り返し実行する。
すなわち、図15の手順における処理対象の設定項目は、管理情報68における、「機器で利用可能か否か」の欄が“利用可能”である複数の設定項目の何れかを示す。
まず、表示制御部52は、管理情報68における、処理対象の設定項目に対応する「リストに示される設定値の各々が利用可能か否か」の欄に、設定値のリスト(一覧)が登録されているか否かを判断する(ステップS500)。
例えば、管理情報68における、処理対象の設定項目“印刷色(printColor)”に対応する「リストに示される設定値の各々が利用可能か否か」の欄には、“白黒”、“グレー”、“カラー”といった、設定値のリストが登録されている。この場合、操作表示部34は、ステップS500で肯定判断する(ステップS500:Yes)。
一方、管理情報68における、処理対象の設定項目“印刷部数(copiesRange)”に対応する「リストに示される設定値の各々が利用可能か否か」の欄には、設定値のリストが登録されていない。この場合、表示制御部52は、ステップS500で否定判断する(ステップS500:No)。
ステップS500で否定判断すると(ステップS500:No)、後述するステップS508へ進む。
ステップS500で肯定判断すると(ステップS500:Yes)、表示制御部52は、ステップS500で登録されていると判断した設定値のリストに含まれる全ての設定値の各々について、ステップS502〜ステップS506の処理を繰り返し実行する。
まず、表示制御部52は、処理対象の設定値に対応づけて“利用可能”が登録されているか否かを判断する(ステップS502)。詳細には、表示制御部52は、管理情報68における、処理対象の設定項目に対応する「リストに示される設定値の各々が利用可能か否か」の欄に登録されている、処理対象の設定値に、“利用可能”が対応づけられているか否かを判断する。
例えば、処理対象の設定項目“印刷色(printColor)”に対応する「リストに示される設定値の各々が利用可能か否か」の欄に登録されている、設定値“白黒”には、“利用可能”が対応づけて登録されている。この場合、表示制御部52は、ステップS502で肯定判断する(ステップS502:Yes)。
ステップS502で肯定判断すると(ステップS502:Yes)、ステップS504へ進む。ステップS504では、表示制御部52は、処理対象の設定値を、選択可能に表示する表示対象として特定する(ステップS504)。
一方、ステップS502で否定判断すると(ステップS502:No)、ステップS506へ進む。ステップS506では、表示制御部52は、処理対象の設定値を、選択不可能に表示する表示対象として特定する(ステップS506)。
ステップS502〜ステップS506の繰り返し処理が終了すると、ステップS508へ進む。
ステップS508では、表示制御部52は、処理対象の設定項目に、競合状態であることを示す情報が登録されているか否かを判断する(ステップS508)。ステップS508で否定判断すると(ステップS508:No)、本繰り返し処理を終了する。ステップS508で肯定判断すると(ステップS508:Yes)、ステップS510へ進む。
ステップS510では、表示制御部52は、競合関係を示す情報を、管理情報68における、該処理対象の設定項目に付与する(ステップS510)。なお、表示制御部52は、競合関係を解消するために設定値を変更したことを示す情報を、管理情報68における、該処理対象の設定項目に付与してもよい。
そして、本繰り返し処理を終了する。
次に、表示制御部52は、管理情報68に基づいて、画面を生成する(ステップS512)。
詳細には、表示制御部52は、管理情報68に登録されている設定項目の内、「機器で利用可能か否か」の欄に“利用可能”が登録されている設定項目と、対応する設定値のリストと、を、特定する。そして、表示制御部52は、サーバ装置20からステップS102(図11参照)で取得した操作プログラムのHTMLの記述(画面の生成に用いる情報(例えば、基本の項目や表示に用いる枠など))に沿って、画面の枠や表示する項目などを生成し、更に、該画面内に、特定した設定項目と設定値のリストとを埋め込むことで、画面70を生成する(図6参照)。なお、表示制御部52は、管理情報68に登録されている設定項目の内、「機器で利用可能か否か」の欄に“利用不可能”が登録されている設定項目と、対応する設定値のリストについては、選択不可能となるように、例えば灰色で画面70に表示する。
また、表示制御部52は、管理情報68に登録されている、各設定項目に対応する設定値のリストを画面70に表示する。
表示制御部52は、これらの設定値のリストの内、上記ステップS506で選択不可能に表示する表示対象として特定した設定値については、利用不可能であるとして選択不可能に表示する。図6に示す例では、例えば、利用不可能な設定値は、灰色で示され、操作入力を受付けない表示領域となっている。
また、表示制御部52は、上記ステップS504で選択可能に表示する表示対象として特定した設定値については、利用可能であるとして選択可能に表示する。図6に示す例では、例えば、利用可能な設定値は、白色で示され、操作入力を受け付ける表示領域となっている。
また、表示制御部52は、管理情報68に登録されている設定値のリストの内、確定した設定値については、強調表示する。確定した設定値は、管理情報68から読取ればよい。図6に示す例では、確定した設定値は、二重線の枠で囲まれて表示されている。
なお、表示制御部52は、競合関係を示す情報や、競合関係を解消するために設定値を変更したことを示す情報が設定項目に対応付けられている場合、これらの情報を更に埋め込んだ画面を生成する。例えば、表示制御部52は、競合関係にある設定条件を示す情報71Aを含む画面71(図7参照)や、設定値を変更したことを示す情報72Aを含む画面72(図8参照)を生成する(ステップS512)。
なお、検出部58が、競合関係にある設定条件に含まれる設定値を、競合関係を解消するように変更する処理は(図14のステップS412参照)、ステップS514の画面の操作表示部34の表示前に行ってもよいし、表示後に行ってもよい。
次に、表示制御部52は、生成した画面を操作表示部34へ表示する(ステップS514)。そして、本ルーチンを終了する。
以上説明したように、本実施の形態の情報処理装置30は、操作表示部34に画面を表示するブラウザ41を有する。また、情報処理装置30は、プロセッサと、記憶部42Eと、通信部51と、第1取得部55と、第2取得部56と、第3取得部57と、検出部58と、を備える。記憶部42Eは、情報処理装置30が処理を実行する際に設定できる設定条件であって、設定項目毎に設定可能な設定値を対応付けられている設定条件を規定した第1の設定情報64と、情報処理装置30が処理を実行する際に競合する設定条件の競合関係を示す競合情報66と、を記憶する。通信部51は、サーバ装置20に搭載されているウェブアプリケーション24に対してブラウザ41を介してアクセスし、サーバ装置20から操作表示部34に表示させる画面と、1以上のスクリプトと、を取得する。第1取得部55は、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、記憶部42Eに記憶されている第1の設定情報64を取得する。第2取得部56は、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、情報処理装置30に対して処理要求を送信するウェブアプリケーション24で設定された設定条件を規定した第2の設定情報62をウェブアプリケーション24から取得する。第3取得部57は、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、記憶部42Eに記憶されている競合情報66を取得する。検出部58は、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、第2の設定情報62に規定された設定条件のうち競合関係にある設定条件を、第3取得部57で取得した競合情報66に基づいて検出する。
このように、本実施の形態の情報処理装置30では、ブラウザ41上で、情報処理装置30が処理を実行する際に競合する設定条件の競合関係を検出する。このため、情報処理装置30は、ブラウザ上で動作する制御プログラムを、競合する設定条件を有する新たな機器に容易に対応させることができる。
従って、本実施の形態の情報処理装置30は、ブラウザ上で動作する制御プログラムを、競合する設定条件を有する新たな機器に容易に対応させることができる。
また、検出部58は、ユーザによる設定条件の変更を受け付けたときに、第2の設定情報62に規定された設定条件のうち変更を受付けた設定条件について、競合関係にある設定条件を、第3取得部57で取得した競合情報66に基づいて検出することができる。
また、検出部58は、競合関係にある設定条件を検出したときに、競合関係にある設定条件に含まれる設定値を、競合関係にある設定条件を解消するように変更することができる。
また、情報処理部35は、表示制御部52を備えることができる。表示制御部52は、通信部51が取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、競合関係にある設定条件が検出されたときに、競合関係にある設定条件を示す情報を操作表示部34に表示する。
また、表示制御部52は、競合関係にある設定条件を解消するように変更した後の設定条件を操作表示部34に表示することもできる。
また、1以上のスクリプトは、複数のスクリプトを含み、第1取得部55、第2取得部56、第3取得部57、および検出部58のそれぞれは、それぞれ別個のスクリプトがプロセッサによりブラウザ41上で実行されることによりそれぞれ機能する。
また、本実施の形態の情報処理方法は、ブラウザ41を実行するプロセッサを有する情報処理部35を備えた情報処理装置30により実行される情報処理方法である。情報処理装置30は、プロセッサと、記憶部42Eと、を備える。記憶部42Eは、情報処理装置30が処理を実行する際に設定できる設定条件であって、設定項目毎に設定可能な設定値を対応付けられている設定条件を規定した第1の設定情報64と、情報処理装置30が処理を実行する際に競合する設定条件の競合関係を示す競合情報66と、を記憶する。
本実施の形態の情報処理方法は、サーバ装置20に搭載されているウェブアプリケーション24に対してブラウザ41を介してアクセスし、サーバ装置20から操作表示部34に表示させる画面と、1以上のスクリプトと、を取得するステップと、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、記憶部42Eに記憶されている第1の設定情報64を取得するステップと、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、情報処理装置30に対して処理要求を送信するウェブアプリケーション24で設定された設定条件を規定した第2の設定情報62をウェブアプリケーション24から取得するステップと、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、記憶部42Eに記憶されている競合情報66を取得するステップと、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、第2の設定情報62に規定された設定条件のうち競合関係にある設定条件を、第3取得部57で取得した競合情報66に基づいて検出するステップと、を含む。
また、本実施の形態の情報処理プログラムは、ブラウザ41を実行するプロセッサを有する情報処理部35を備えたコンピュータに実行させる情報処理プログラムである。コンピュータは、プロセッサと、記憶部42Eと、を備える。記憶部42Eは、情報処理装置30が処理を実行する際に設定できる設定条件であって、設定項目毎に設定可能な設定値を対応付けられている設定条件を規定した第1の設定情報64と、情報処理装置30が処理を実行する際に競合する設定条件の競合関係を示す競合情報66と、を記憶する。
本実施の形態の情報処理プログラムは、サーバ装置20に搭載されているウェブアプリケーション24に対してブラウザ41を介してアクセスし、サーバ装置20から操作表示部34に表示させる画面と、1以上のスクリプトと、を取得するステップと、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、記憶部42Eに記憶されている第1の設定情報64を取得するステップと、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、情報処理装置30に対して処理要求を送信するウェブアプリケーション24で設定された設定条件を規定した第2の設定情報62をウェブアプリケーション24から取得するステップと、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、記憶部42Eに記憶されている競合情報66を取得するステップと、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、第2の設定情報62に規定された設定条件のうち競合関係にある設定条件を、第3取得部57で取得した競合情報66に基づいて検出するステップと、を含む。
本実施の形態の情報処理システム10は、サーバ装置20と、情報処理装置30と、を備える。情報処理装置30は、サーバ装置20にネットワーク12を介して接続され、操作表示部34に画面を表示するブラウザ41を有する。
情報処理装置30は、操作表示部34に画面を表示するブラウザ41を有する。また、情報処理装置30は、プロセッサと、記憶部42Eと、通信部51と、第1取得部55と、第2取得部56と、第3取得部57と、検出部58と、を備える。記憶部42Eは、情報処理装置30が処理を実行する際に設定できる設定条件であって、設定項目毎に設定可能な設定値を対応付けられている設定条件を規定した第1の設定情報64と、情報処理装置30が処理を実行する際に競合する設定条件の競合関係を示す競合情報66と、を記憶する。通信部51は、サーバ装置20に搭載されているウェブアプリケーション24に対してブラウザ41を介してアクセスし、サーバ装置20から操作表示部34に表示させる画面と、1以上のスクリプトと、を取得する。第1取得部55は、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、記憶部42Eに記憶されている第1の設定情報64を取得する。第2取得部56は、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、情報処理装置30に対して処理要求を送信するウェブアプリケーション24で設定された設定条件を規定した第2の設定情報62をウェブアプリケーション24から取得する。第3取得部57は、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、記憶部42Eに記憶されている競合情報66を取得する。検出部58は、取得した1以上のスクリプトをプロセッサがブラウザ41上で実行することにより機能し、第2の設定情報62に規定された設定条件のうち競合関係にある設定条件を、第3取得部57で取得した競合情報66に基づいて検出する。
<変形例>
なお、上記実施の形態では、機器36が、プリンタ32である場合を一例として説明した。しかし、機器36は、プリンタ32に限定されない。例えば、機器36は、投影機能、録画機能、画像表示機能、の少なくとも1つの機能を備えたものであってもよい。
投影機能を備えた機器36は、例えば、プロジェクタである。機器36がプロジェクタである場合、第1の設定情報64(図2参照)、第2の設定情報62(図4参照)、および競合情報66(図3参照)の各々に規定する設定項目や設定値を、プロジェクタに応じた内容とすればよい。
具体的には、第1の設定情報64(図2参照)および第2の設定情報62(図4参照)には、設定項目として、プロジェクタに搭載された各種機能の内、ユーザによって指定および変更可能な機能を規定すればよい。この場合、設定項目は、例えば、投影する画像の解像度、画質、輝度、拡大率、縮小率、などである。設定値は、これらの設定項目の各々に対応する値であればよい。また、第2管理部42Bには、競合情報66(図3参照)として、プロジェクタが処理を実行する際に競合する設定条件の競合関係を示す情報を予め登録すればよい。機器36がプロジェクタである場合、例えば、競合情報66には、同時に設定できない設定条件として、設定項目“解像度”を含む設定条件と、設定項目“画質”を含む設定条件と、を対応づけて予め登録すればよい。
録画機能を備えた機器36は、例えば、録画装置である。機器36が録画装置である場合、第1の設定情報64(図2参照)、第2の設定情報62(図4参照)、および競合情報66(図3参照)の各々に規定する設定項目や設定値を、録画装置に応じた内容とすればよい。
具体的には、第1の設定情報64(図2参照)および第2の設定情報62(図4参照)には、設定項目として、録画装置に搭載された各種機能の内、ユーザによって指定および変更可能な機能を規定すればよい。この場合、設定項目は、例えば、録画対象のデータ容量、録画対象のデータの画質、録画対象のデータの数、などである。設定値は、これらの設定項目の各々に対応する値であればよい。また、第2管理部42Bには、競合情報66(図3参照)として、録画装置が処理を実行する際に競合する設定条件の競合関係を示す情報を予め登録すればよい。機器36が録画装置である場合、例えば、競合情報66には、同時に設定できない設定条件として、設定項目“録画対象のデータ容量”を含む設定条件と、設定項目“録画対象のデータの画質”を含む設定条件と、を対応づけて予め登録すればよい。
また、画像表示機能を備えた機器36は、例えば、テレビである。機器36がテレビである場合、第1の設定情報64(図2参照)、第2の設定情報62(図4参照)、および競合情報66(図3参照)の各々に規定する設定項目や設定値を、テレビに応じた内容とすればよい。
具体的には、第1の設定情報64(図2参照)および第2の設定情報62(図4参照)には、設定項目として、テレビに搭載された各種機能の内、ユーザによって指定および変更可能な機能を規定すればよい。この場合、設定項目は、例えば、有料放送の契約済のチャンネル、有料放送の契約済の番組、契約済のチェンネルの数、などである。設定値は、これらの設定項目の各々に対応する値であればよい。また、第2管理部42Bには、競合情報66(図3参照)として、テレビが処理を実行する際に競合する設定条件の競合関係を示す情報を予め登録すればよい。機器36がテレビである場合、例えば、競合情報66には、同時に設定できない設定条件として、設定項目“有料放送の契約済のチャンネル”を含む設定条件と、設定項目“該チャンネルでは放映されない、有料放送の契約済の番組”を含む設定条件と、を対応づけて予め登録すればよい。
そして、情報処理装置30では、上記実施の形態と同様にして、ブラウザ41上で、情報処理装置30が処理を実行する際に競合する設定条件の競合関係を検出すればよい。このため、情報処理装置30は、プリンタ32以外の機器36である場合についても、上記実施の形態と同様の効果を得ることができる。
(第2の実施の形態)
図16は、本実施の形態に係る情報処理システム11の構成を示す図である。情報処理システム11は、サーバ装置200と、情報処理装置300とを備える。
サーバ装置200と情報処理装置300とは、ネットワーク120を介して接続される。ネットワーク120は、一例として、公衆に接続されたインターネット等のネットワークであってもよいし、社内等のローカルネットワークであってもよい。また、ネットワーク120は、有線であっても無線であってもよい。
サーバ装置200は、情報処理装置300からアクセスされる。サーバ装置200は、ネットワーク120を介して、情報処理装置300に対して情報を送信し、情報処理装置300から情報を受信する。
なお、サーバ装置200と情報処理装置300は、同一のネットワーク(例えば、ローカルエリアネットワーク)に配置されていてもよいし、別々のネットワークに配置されていてもよい。
サーバ装置200は、ネットワークI/F210と、ウェブアプリケーション230と、を有する。ネットワークI/F210は、ネットワーク120を介して他の装置と情報を送受信するためのインターフェイスである。
ウェブアプリケーション230は、情報処理装置300から、情報処理装置300の後述する第1のブラウザ410を介してアクセスされる。ウェブアプリケーション230は、情報提供部220を含む。情報提供部220は、ネットワーク120を介して、情報処理装置300に対して1以上のスクリプトを提供する。
これらのスクリプトは、情報処理装置300がサーバ装置200から操作プログラムを取得し、操作プログラムを実行することで、サーバ装置200から情報処理装置300へ提供される。操作プログラムは、HTML(HyperText Markup Language)で記述されたHTMLファイルであり、これらのスクリプトが埋め込まれている。また、操作プログラムには、サーバ装置200から情報処理装置300の表示部(後述する操作表示部340)に表示させる画面の生成に用いる情報(例えば、基本の項目や表示に用いる枠など)が記述されている。画面は、各種情報や画像を表示すると共に、ユーザからの操作指示を受付けるユーザインターフェースである。
本実施の形態では、1以上のスクリプトは、複数のスクリプトを含む。これらのスクリプトは、情報処理装置300のブラウザ上で実行されるスクリプトプログラムである。これらのスクリプトは、例えば、HTML(HyperText Markup Language)で記述される。
これらの1以上のスクリプトは、情報処理装置300の第1のブラウザ410上で実行される、スクリプトプログラムである。これらの1以上のスクリプトは、第2のブラウザにおける特有の処理を記述したスクリプトプログラムである(詳細後述)。
第2のブラウザは、機器に特有の画面を表示するブラウザである。すなわち、第2のブラウザは、機器の専用のブラウザである。機器は、例えば、画像形成機能(プリンタ機能)、スキャナ機能、ファックス機能、プロジェクタなどの投影機能、録画機能、画像表示機能(テレビ)、などの少なくとも1つを含む機器である。
第1のブラウザ410は、第2のブラウザ以外のブラウザであって、公知の汎用のブラウザである。このため、第1のブラウザ410は、第2のブラウザには設けられていない様々な機能を備える。本実施の形態では、情報処理装置300は、第1のブラウザ410を有する(詳細後述)。
本実施の形態では、情報処理装置300は、機器のエミュレータとして機能する。
なお、本実施の形態の情報処理装置300では、第2のブラウザで利用可能な全ての機能を完全にエミュレートすることを目的としていない。例えば、本実施の形態の情報処理装置300では、機器の状態に応じた動作や、機器における処理実行中の動作に関して、一部の例外的な動作をエミュレートすることを目的としていない。
また、本実施の形態の情報処理装置300では、汎用のブラウザである第1のブラウザ410の種類の各々のサポート機能の差異については、考慮しないものとする。
情報処理装置300は、プロセッサを備える。情報処理装置300は、ネットワークI/F310と、操作表示部340と、情報処理部350とを有する。ネットワークI/F310は、ネットワーク120を介して他の装置と情報を送受信するためのインターフェイスである。
操作表示部340は、ユーザに対して情報を表示するとともにユーザからの入力を受け付ける。操作表示部340は、一例として、タッチパネルである。また、操作表示部340は、操作ボタン、マウス、キーボード等を有してもよい。
仮想処理部430は、エミュレーション対象の機器が行う各種処理を仮想的に実行するプログラムである。仮想処理部430は、少なくとも該機器に特有の動作を実行する。仮想処理部430は、第1のブラウザ410からプログラムインターフェース部420を介して制御される。
仮想処理部430は、仮想デバイス管理部430Aと、仮想ジョブ管理部430Bと、を含む。
仮想ジョブ管理部430Bは、機器で実行中の処理の状態のみを、時間経過に応じて繰り返し遷移させる。例えば、仮想ジョブ管理部430Bは、印刷データを機器で印刷可能なデータ形式に変換、変換された印刷データを記録媒体へ印刷、印刷の完了、などの複数種類の状態のみを、時間経過に応じて順次遷移させるプログラムである。
すなわち、仮想ジョブ管理部430Bでは、機器で行う実際のデータ変換処理、印刷処理などは行わず、機器で実行中の処理の状態のみを、仮想的に時間経過に応じて順次変化させるプログラムである。
なお、印刷完了には、例えば、正常完了、回復不可能なエラー発生、回復可能なエラー発生、の種類がある。この印刷完了の種類は、例えば、ユーザによる操作表示部340の操作指示によって適宜切替可能である。
仮想デバイス管理部430Aは、機器の状態を、ユーザによる操作表示部340の操作指示によって推移させるプログラムである。機器の状態は、例えば、「処理実行可能な状態」、「処理実行中の状態」、「処理停止中の状態」、「処理実行不可能な状態」である。
処理実行可能な状態とは、処理実行要求を受け付けると、処理を開始可能な状態である。処理実行中の状態とは、機器で処理を実行中の状態である。処理停止中の状態とは、紙詰まりなどのエラーによって、処理が停止した状態である。処理実行不可能な状態とは、トナーが搭載されていないなどのエラーによって、処理を開始することが出来ない状態である。
例えば、ユーザによる操作表示部340の操作指示によって、“処理実行可能な状態”が指示されると、仮想デバイス管理部430Aは、機器の状態を、「処理実行可能な状態」に推移させる。すなわち、仮想デバイス管理部430Aは、機器で行う実際の処理は行わず、機器の状態のみを、ユーザによる操作表示部340の操作指示により仮想的に遷移させるプログラムである。
プログラムインターフェース部420は、第1のブラウザ410から仮想処理部430の動作を制御するためのソフトウェアインターフェースである。プログラムインターフェース部420は、第1のブラウザ410からの各種要求に応じて、仮想処理部430を制御する。
本実施の形態では、プログラムインターフェース部420は、第1のブラウザ410からの要求信号の送信に応じて、仮想処理部430へ要求信号を送信する。また、プログラムインターフェース部420は、第1のブラウザ410からの要求に応じて、仮想処理部430を監視し、監視結果を第1のブラウザ410へ送信する。
第1のブラウザ410は、上述したように、第2のブラウザ以外のブラウザであって、公知の汎用のブラウザである。情報処理装置300のプロセッサは、サーバ装置200に搭載されているウェブアプリケーション230に対して、第1のブラウザ410を介してアクセスし、サーバ装置200から操作プログラムを取得する。これにより、情報処理部350は、サーバ装置200から、操作表示部340に表示させる画面と、1以上のスクリプトと、を取得する。そして、情報処理部350は、1以上のスクリプトの各々を第1のブラウザ410上で実行することにより、第1のブラウザ410における各機能部を機能させる。
具体的には、第1のブラウザ410は、取得部510と、スクリプト実行部550と、表示制御部520と、受付部530と、を含む。これらの機能部は、情報処理装置300のプロセッサがサーバ装置200から取得したスクリプトを第1のブラウザ410で実行することにより機能する。
取得部510は、サーバ装置200に搭載されているウェブアプリケーション230に対して第1のブラウザ410を介してアクセスし、操作プログラム(スクリプトを含む)を取得する。
表示制御部520は、操作プログラムをプロセッサが第1のブラウザ410上で実行することにより機能する。例えば、表示制御部520は、サーバ装置200から取得した操作プログラムのHTMLの記述(画面の生成に用いる情報(例えば、基本の項目や表示に用いる枠など))に沿って、画面を生成する。そして、表示制御部520は、生成した画面を操作表示部340に表示する。この画面は、各種画像を表示すると共に、ユーザからの入力を受け付けるユーザインターフェースである。
受付部530は、ユーザによる操作表示部340の操作指示を受け付ける。
スクリプト実行部550は、取得部510が取得した1以上のスクリプトをプロセッサが第1のブラウザ410上で実行することにより機能し、機器(すなわち仮想処理部430)の監視および機器(すなわち、仮想処理部430)への信号送信を行う。
ここで、サーバ装置200から取得した1以上のスクリプトは、上述したように、機器に特有の画面を表示するための第2のブラウザ上で実行される特有の処理を記述したスクリプトプログラムである。また、この1以上のスクリプトは、機器の監視および機器への信号送信を行う各種処理を記述したスクリプトプログラムである。
図17は、スクリプトの説明図である。本実施の形態では、1以上のスクリプトとして、状態出力スクリプトと、要求送信スクリプトと、機器状態監視スクリプトと、処理状態監視スクリプトと、を含む場合を説明する。
状態出力スクリプトは、機器から取得した機器の状態情報を送信するスクリプトプログラムである。機器の状態情報は、第2のブラウザ特有の情報や、機器で認証したアカウント情報を含む。第2のブラウザ特有の情報は、例えば、第2のブラウザの表示画面の画面サイズである。
プロセッサが、状態出力スクリプトを第1のブラウザ410上で実行することによって、スクリプト実行部550は、プログラムインターフェース部420を介して仮想処理部430から機器の状態情報を取得し、取得した状態情報を第1のブラウザ410へ送信する(返す)。
このため、第1のブラウザ410では、機器から何等かの状態情報を取得し、取得した状態情報に応じた動作をエミュレートする場合、第1のブラウザ410上で状態出力スクリプトを実行することにより、第2のブラウザに特有の動作を第1のブラウザ410上でエミュレートすることができる。
要求送信スクリプトは、機器へ要求信号を送信するスクリプトプログラムである。要求信号は、機器による動作停止を回避し、機器に動作を継続させるための信号である。要求信号は、例えば、機器が休止状態へ移行しないように要求する要求信号や、休止状態への移行拒否の解除を要求する要求信号や、機器における処理実行前にブラウザの「戻るボタン」を無効にする要求信号や、機器における処理実行完了後に「戻るボタン」を有効とする要求信号、などである。
プロセッサが、要求送信スクリプトを第1のブラウザ410上で実行することによって、スクリプト実行部550は、プログラムインターフェース部420を介して仮想処理部430へ要求信号を送信する。
このため、第1のブラウザ410では、機器が何等かの信号を受け付けるが、機器側で処理を停止せずに続行する動作をエミュレートする場合、第1のブラウザ410上で要求送信スクリプトを実行することにより、第2のブラウザに特有の動作を第1のブラウザ410上でエミュレートすることができる。
機器状態監視スクリプトは、機器の状態を監視するスクリプトプログラムである。機器の状態は、上述したように、例えば、「処理実行可能な状態」、「処理実行中の状態」、「処理停止中の状態」、「処理実行不可能な状態」などである。
プロセッサが、機器状態監視スクリプトを第1のブラウザ410上で実行することによって、スクリプト実行部550は、プログラムインターフェース部420を介して、仮想処理部430による機器の状態を監視し、状態が変化したときに、機器の状態を第1のブラウザ410へ通知する。
このため、第1のブラウザ410では、機器の状態を監視する動作をエミュレートする場合、第1のブラウザ410上で機器状態監視スクリプトを実行することにより、第2のブラウザに特有の動作を第1のブラウザ410上でエミュレートすることができる。
処理状態監視スクリプトは、機器で実行中の処理の状態を監視する、スクリプトプログラムである。処理の状態は、上述したように、例えば、印刷データを機器で印刷可能なデータ形式に変換、変換された印刷データを記録媒体へ印刷、印刷の完了(正常完了、回復不可能なエラー発生、回復可能なエラー発生)、などである。
プロセッサが、処理状態監視スクリプトを第1のブラウザ410上で実行することによって、スクリプト実行部550は、プログラムインターフェース部420を介して、仮想処理部430による機器で実行中の処理の状態を監視し、該状態が変化したときに、処理の状態を第1のブラウザ410へ通知する。
このため、第1のブラウザ410では、機器の処理の状態を監視する動作をエミュレートする場合、第1のブラウザ410上で処理状態監視スクリプトを実行することにより、第2のブラウザに特有の動作を第1のブラウザ410上でエミュレートすることができる。
図18は、本実施の形態に係る情報処理システム11のハードウェア構成を示す図である。サーバ装置200の情報提供部220は、一例として、CPU(Central Processing Unit)1010等のプロセッサと、RAM(Random Access Memory)およびROM(Read Only Memory)等のメモリ1020と、HDD(Hard Disk Drive)等の記憶装置1030とを備える。情報提供部220は、CPU1010等のプロセッサが記憶装置1030に予め記憶されたオペレーティングシステム等を実行することにより、操作プログラムおよび1以上のスクリプトを情報処理装置300へ提供する。
情報処理装置300の情報処理部350は、CPU1110等のプロセッサと、RAMおよびROM等のメモリ1120と、HDD等の記憶装置1130と、操作表示部340とのインターフェースであるデバイスI/F1140とを備える。情報処理部350は、CPU1110等のプロセッサが、記憶装置1130に予め記憶されたオペレーティングシステムおよび第1のブラウザ410をメモリ1120上に展開して実行する。
そして、CPU1110等のプロセッサは、ネットワーク120を介してサーバ装置200から操作プログラム(1以上のスクリプトを含む)をダウンロードし、メモリ1120上に展開して実行する。このような操作プログラム(1以上のスクリプトを含む)は、表示制御モジュール、受付モジュール、およびスクリプト処理モジュールを含むモジュール構成となっており、CPU1110等のプロセッサがこれらを実行することにより、情報処理部350を取得部510、スクリプト実行部550、表示制御部520、および受付部530として機能させることができる。
図19は、本実施の形態の情報処理部350が実行する情報処理の手順の一例を示すフローチャートである。
まず、ユーザは、操作表示部340を操作することで第1のブラウザ410を起動する(ステップS1000)。そして、ユーザは、操作表示部340を操作することで、1以上のスクリプトを含む操作プログラムの格納場所を示すURI(Uniform Resource Identifiers)等を入力し、操作プログラムのダウンロードを指示する。すると、取得部510は、サーバ装置200から、1以上の(本実施の形態では複数の)スクリプトを含む操作プログラムを取得する(ステップS1020)。
次に、スクリプト実行部550が、ステップS1020で取得した操作プログラムに埋め込まれている各スクリプトを第1のブラウザ410上で実行する(ステップS1040)(詳細後述)。そして、本ルーチンを終了する。
次に、図19におけるステップS1040の処理の手順を説明する。図20は、取得したスクリプトを実行することによって行う処理の手順を示すフローチャートである。
なお、本実施の形態では、スクリプト実行部550は、取得した複数のスクリプトに含まれる各スクリプトの各々を、状態出力スクリプト、要求送信スクリプト、機器状態監視スクリプト、および処理状態監視スクリプトのこの順に実行する場合を説明する。しかし、スクリプト実行部550が実行するスクリプトの実行順は、この順序に限定されない。
また、スクリプト実行部550は、サーバ装置200から取得した各スクリプト(状態出力スクリプト、要求送信スクリプト、機器状態監視スクリプト、および処理状態監視スクリプト)の少なくとも1つのスクリプトを実行すればよく、全てのスクリプトを実行する形態に限定されない。
まず、プロセッサが状態出力スクリプトを第1のブラウザ410上で実行する。これによって、スクリプト実行部550が機能し、プログラムインターフェース部420を介して仮想処理部430から機器の状態情報を取得する(ステップS2000)。表示制御部520は、ステップS2000で取得した状態情報を操作表示部340へ表示する(ステップS2020)。例えば、機器の状態情報が、アカウント情報を含む場合、表示制御部520は、機器で認証したアカウント情報を操作表示部340へ表示する。また、例えば、機器の状態情報が第2のブラウザで用いるブラウザの画面サイズを含む場合、表示制御部520は、該画面サイズとなるように、第1のブラウザ410の表示画面の画面サイズを変更する。
次に、プロセッサが、要求送信スクリプトを第1のブラウザ410上で実行する。これによって、スクリプト実行部550が機能し、プログラムインターフェース部420を介して仮想処理部430へ要求信号を送信する(ステップS2040)。
例えば、スクリプト実行部550は、機器が休止状態へ移行しないように要求する要求信号や、休止状態への移行拒否の解除を要求する要求信号を、プログラムインターフェース部420を介して仮想処理部430へ送信する。
該要求信号を受け付けた仮想処理部430は、要求信号に応じた状態に遷移する。
次に、プロセッサが、機器状態監視スクリプトを第1のブラウザ410上で実行する。これによって、スクリプト実行部550が機能し、プログラムインターフェース部420を介して、仮想処理部430による機器の状態を監視する(ステップS2060)。ステップS2060の処理の詳細は後述する。
次に、プロセッサが操作プログラムを実行することによって、仮想処理部430による機器が処理を実行可能な状態であるか否かを判断する(ステップS2080)。例えば、仮想処理部430の状態が「処理実行可能な状態」を示すか否かを判別することで、ステップS2080の判断を行う。
ステップS2080で否定判断すると(ステップS2080:No)、上記ステップS2060へ戻る。ステップS2080で肯定判断すると(ステップS2080:Yes)、ステップS2100へ進む。
ステップS2100では、プロセッサが操作プログラムを実行することによって、表示制御部520が操作表示部340から処理実行指示を受付ける。ユーザは、操作表示部340を操作することで、処理(例えば、印刷ジョブ)の実行指示を入力する。表示制御部520は、実行指示を受付けると、処理の実行要求を、プログラムインターフェース部420を介して仮想処理部430へ送信する(ステップS2100)。
次に、プロセッサが、処理状態監視スクリプトを第1のブラウザ410上で実行する。これによって、スクリプト実行部550が機能し、仮想処理部430による機器の処理の状態を監視する(ステップS2120)。ステップS2120の処理の詳細は後述する。
次に、スクリプト実行部550は、仮想処理部430の処理の状態が、印刷完了の内、回復不可能なエラー発生、正常完了、および回復可能なエラー発生、の何れであるかを判断する(ステップS2140)。
そして、スクリプト実行部550は、仮想処理部430からプログラムインターフェース部420を介して受け付けた処理の状態が、“回復不可能なエラー発生”、“正常完了”、および“回復可能なエラー発生”の何れの印刷完了を示すかを判断する。
仮想処理部430からプログラムインターフェース部420を介して受け付けた処理の状態が“回復不可能なエラー発生”の印刷完了を示す場合、ステップS2160へ進む。ステップS2160では、スクリプト実行部550は、“回復不可能なエラー発生”を第1のブラウザ410へ通知する(ステップS2160)。
第1のブラウザ410が該通知を受け付けると、表示制御部520が、“回復不可能なエラー発生”を示す情報を操作表示部340へ表示する(ステップS2170)。そして、スクリプト実行部550は、仮想処理部430による実行中の処理の状態の監視を終了する(ステップS2180)。そして、本ルーチンを終了する。
一方、ステップS2140で、スクリプト実行部550が、仮想処理部430からプログラムインターフェース部420を介して受け付けた処理の状態が“正常完了”の印刷完了を示すと判断すると、ステップS2200へ進む。ステップS2200では、スクリプト実行部550は、“処理完了”を第1のブラウザ410へ通知する(ステップS2200)。
第1のブラウザ410が該通知を受け付けると、表示制御部520が、“処理完了”を示す情報を操作表示部340へ表示する(ステップS2210)。そして、上記ステップS2180へ進む。
一方、ステップS2140で、スクリプト実行部550が、仮想処理部430からプログラムインターフェース部420を介して受け付けた処理の状態が“回復可能なエラー発生”の印刷完了を示すと判断すると、ステップS2220へ進む。ステップS2220では、スクリプト実行部550は、回復可能なエラーの発生、および、エラーの内容を第1のブラウザ410へ通知する(ステップS2220)。
第1のブラウザ410が該通知を受け付けると、表示制御部520は、該エラーの発生と、該エラーの内容を操作表示部340へ表示する(ステップS2240)。ユーザは、操作表示部340へ表示されたエラー内容を参照し、エラーを解消する操作を行う。例えば、ユーザは、操作表示部340を操作し、仮想ジョブ管理部430Bの印刷完了の内容を、“正常完了”を示す内容に切り替える。そして、上記ステップS2120へ戻る。
次に、図20におけるステップS2060の処理の手順を説明する。図21は、図20ステップS2060の処理の手順を示すフローチャートである。
まず、スクリプト実行部550が、プログラムインターフェース部420へ、機器の状態の監視要求を送信する(ステップS3020)。
機器の状態の監視要求を受け付けたプログラムインターフェース部420は、仮想処理部430から、機器の状態を取得し、第1のブラウザ410へ送信する。第1のブラウザ410のスクリプト実行部550は、プログラムインターフェース部420から、機器の状態を取得する(ステップS3040)。
そして、スクリプト実行部550は、内部メモリに記憶されている機器の状態と、ステップS3040で取得した機器の状態と、が異なるか否かを判断する(ステップS3060)。
内部メモリに記憶されている機器の状態と、ステップS3040で取得した機器の状態と、が一致する場合(ステップS3060:No)、ステップS3120へ進む。
一方、内部メモリに記憶されている機器の状態と、ステップS3040で取得した機器の状態と、が異なる場合(ステップS3060:Yes)、ステップS3080へ進む。ステップS3080では、スクリプト実行部550は、ステップS3040で取得した機器の状態を、第1のブラウザ410へ通知する(ステップS3080)。そして、スクリプト実行部550は、ステップS3040で取得した機器の状態を、内部メモリに上書き記憶する(ステップS3100)。そして、ステップS3120へ進む。
ステップS3120では、スクリプト実行部550は、第1のブラウザ410から監視停止要求を受け付けたか否かを判断する(ステップS3120)。ステップS3120で否定判断すると(ステップS3120:No)、上記ステップS3020へ戻る。一方、ステップS3120で肯定判断すると(ステップS3120:Yes)、本ルーチンを終了する。
なお、スクリプト実行部550は、ステップS3120で肯定判断するまで(ステップS3120:Yes)、一定の間隔で(例えば、1秒ごとなど)、ステップS3020〜ステップS3100の処理を繰り返し実行してもよい。
このため、第1のブラウザ410は、一定間隔のポーリングにより、仮想処理部430(すなわち機器)の状態を監視することができる。
次に、図20におけるステップS2120の処理の手順を説明する。図22は、図20のステップS2120の処理の手順を示すフローチャートである。
まず、スクリプト実行部550が、プログラムインターフェース部420へ、機器で実行中の処理の状態の監視要求を送信する(ステップS4020)。
機器で実行中の処理の状態の監視要求を受け付けたプログラムインターフェース部420は、仮想処理部430から、機器で実行中の処理の状態を取得し、第1のブラウザ410へ送信する。スクリプト実行部550は、第1のブラウザ410上で、プログラムインターフェース部420から機器で実行中の処理の状態を取得する(ステップS4040)。
そして、スクリプト実行部550は、内部メモリに記憶されている機器で実行中の処理の状態と、ステップS4040で取得した機器で実行中の処理の状態と、が異なるか否かを判断する(ステップS4060)。
内部メモリに記憶されている機器で実行中の処理の状態と、ステップS4040で取得した機器で実行中の処理の状態と、が一致する場合(ステップS4060:No)、ステップS4120へ進む。
一方、内部メモリに記憶されている機器で実行する処理の状態と、ステップS4040で取得した機器で実行中の処理の状態と、が異なる場合(ステップS4060:Yes)、ステップS4080へ進む。ステップS4080では、スクリプト実行部550は、ステップS4040で取得した、機器で実行中の処理の状態を、第1のブラウザ410へ通知する(ステップS4080)。そして、スクリプト実行部550は、ステップS4040で取得した機器で実行中の処理の状態を、内部メモリに上書き記憶する(ステップS4100)。そして、ステップS4120へ進む。
ステップS4120では、スクリプト実行部550は、第1のブラウザ410から監視停止要求を受け付けたか否かを判断する(ステップS4120)。ステップS4120で否定判断すると(ステップS4120:No)、上記ステップS4020へ戻る。一方、ステップS4120で肯定判断すると(ステップS4120:Yes)、本ルーチンを終了する。
なお、スクリプト実行部550は、ステップS4120で肯定判断するまで(ステップS4120:Yes)、一定の間隔で(例えば、1秒ごとなど)、ステップS4020〜ステップS4100の処理を繰り返し実行してもよい。
このため、第1のブラウザ410は、一定間隔のポーリングにより、仮想処理部430(すなわち機器)で実行中の処理の状態を監視することができる。
以上説明したように、本実施の形態の情報処理装置300は、操作表示部340(表示部)に画面を表示する第1のブラウザ410を有する情報処理装置300である。情報処理装置300は、プロセッサと、取得部510と、受付部530と、を備える。取得部510は、サーバ装置200(外部装置)に搭載されているウェブアプリケーション230に対して第1のブラウザ410を介してアクセスし、機器に特有の画面を表示するための第2のブラウザ上で実行される特有の処理を記述した1以上のスクリプトを取得する。スクリプト実行部550は、取得した1以上のスクリプトをプロセッサが第1のブラウザ410上で実行することにより機能し、機器の監視および機器への信号送信を行う。
ここで、従来では、機器に特有の画面を表示するためのブラウザを用いて制御プログラムの開発を行う必要があった。このため、機器に特有の画面を表示するためのブラウザ以外の汎用のブラウザを用いて、機器を制御するための制御プログラムを開発することは困難であった。
一方、本実施の形態の情報処理装置300では、第2のブラウザに特有の処理を記述した1以上のスクリプトを取得し、情報処理装置300の第1のブラウザ410上で1以上のスクリプトを実行する。
このように、本実施の形態の情報処理装置300では、第1のブラウザ410上で1以上のスクリプトを実行することで、機器のエミュレーションを行うことができる。言い換えると、第2のブラウザとは異なる、汎用ブラウザである第1のブラウザ410を実行するプロセッサを備えた情報処理装置300を、機器のエミュレータとして機能させることができる。
従って、本実施の形態の情報処理装置300では、機器に特有の画面を表示するためのブラウザ以外のブラウザを用いて、機器を制御するための制御プログラムを開発することができる。
また、1以上のスクリプトは、第2のブラウザ上で実行される特有の処理を記述したスクリプトプログラムである。このため、情報処理装置300では、機器の監視や機器への信号送信といった、機器に特有の画面を表示するための第2のブラウザに特有の処理を、第1のブラウザ410を用いて開発することが可能となる。このため、本実施の形態の情報処理装置300では、上記効果に加えて、制御プログラムの開発工数や開発コストの削減を図ることもできる。
1以上のスクリプトは、状態出力スクリプト、要求送信スクリプト、機器状態監視スクリプト、および処理状態監視スクリプトの少なくとも1つを含む。
状態出力スクリプトは、機器から取得した機器の状態情報を出力する。要求送信スクリプトは、機器へ要求信号を送信する。機器状態監視スクリプトは、機器の状態を監視する。処理状態監視スクリプトは、機器で実行中の処理の状態を監視する。
また、情報処理装置300は、仮想処理部430と、プログラムインターフェース部420と、を備える。仮想処理部430は、少なくとも機器に特有の動作を実行する。プログラムインターフェース部420は、第1のブラウザ410からの要求に応じて仮想処理部430を制御する。
なお、本実施の形態では、情報処理部350に仮想処理部430を備えた構成とし、プログラムインターフェース部420が仮想処理部430を制御する形態を説明した。しかし、情報処理部350に、画像形成機能(プリンタ機能)、スキャナ機能、ファックス機能などの少なくとも1つを含む機器を信号授受可能に接続し、プログラムインターフェース部420で該機器を制御してもよい。
なお、上記には、本発明のいくつかの実施の形態および変形例を説明した。しかし、これらの実施の形態および変形例は、一例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施の形態および変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施の形態や変形例は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。