(57)【要約】【課題】ブラウザを利用して機器の状態表示や各種の設定を行う。【解決手段】ブラウザ手段と、状態表示制御手段とを備える組込み機器を提供する。ここで、状態表示制御手段は、状態情報の表示要求に応答して、所定の文書ファイルを表示するようブラウザ手段に要求する画面遷移制御手段と、所定の文書ファイルの読み込みに応答して、組込み機器の現在の状態情報を取得する機器情報管理手段と、所定の文書ファイルに対応するＤＯＭツリー上の所定のノードの値を、取得した状態情報で更新するように、ブラウザ手段に要求するアクセス要求手段とを含む。ブラウザ手段は、表示要求に応答して、文書ファイルを画面に表示するよう制御するブラウザ制御手段と、状態表示制御手段からの所定のノードのアクセス要求を記録する履歴管理手段と、ＤＯＭツリー上のノードへのアクセス要求に応答して、アクセス履歴を参照してアクセスを制御するＤＯＭ処理手段とを含む。【選択図】図２
2011008490.tif 000002
【特許請求の範囲】
【請求項１】
組込み機器であって、
前記組込み機器の画面に構造化文書を表示させるブラウザ手段と、
前記組込み機器の状態を示す状態情報の前記画面への表示を制御する状態表示制御手段とを含み、
前記状態表示制御手段は、
前記状態情報の表示要求に応答して、所定の画面構成を記述した文書ファイルを表示するよう前記ブラウザ手段に要求する画面遷移制御手段と、
前記ブラウザ手段による前記文書ファイルの読み込みに応答して、前記組込み機器の現在の前記状態情報を取得する機器情報管理手段と、
前記ブラウザ手段によって前記文書ファイルから生成されたＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）ツリー上の１以上の所定のノードの値を、取得した前記状態情報で更新するように、前記ブラウザ手段に要求するアクセス要求手段とを含み、
前記ブラウザ手段は、
前記状態表示制御手段からの前記文書ファイルの表示要求に応答して、前記組込み機器の記憶手段から前記文書ファイルを読み込み、該文書ファイルを前記画面に表示するよう制御するブラウザ制御手段と、
前記状態表示制御手段からの前記１以上の所定のノードのアクセス要求に応答して、該１以上の所定のノードをリストに記録する履歴管理手段と、
前記ＤＯＭツリー上のノードへのアクセス要求に応答して、アクセス要求元に応じて前記リストを参照し、前記リストに記録されたノードへのアクセス要求は前記状態表示制御手段にのみ許可してアクセス要求の内容を実行するＤＯＭ処理手段とを含む、
組込み機器。
【請求項２】
前記状態情報の表示要求は、前記組込み機器に現在設定されている設定内容の表示要求であり、前記所定の画面構成を記述した文書ファイルは、設定内容を確認又は変更するための画面構成を記述した設定画面用文書ファイルである、請求項１に記載の組込み機器。
【請求項３】
前記ブラウザ手段は、前記画面に表示する文書ファイルに対する操作イベントを受信して通知するイベント通知手段を含み、
前記状態表示制御手段は、前記イベント通知手段からの所定のボタンの押下げイベントの通知に応答して、前記画面遷移制御手段に前記設定内容の表示を要求するイベント処理手段を含む、請求項２に記載の組込み機器。
【請求項４】
前記状態情報の表示要求は、前記組込み機器内で生じたエラーのエラー発生通知に基づくエラー内容の表示要求であり、前記所定の画面構成を記述した文書ファイルは、エラー内容を表示するための画面構成を記述したエラー通知画面用文書ファイルである、請求項１に記載の組込み機器。
【請求項５】
前記機器情報管理手段は、前記組込み機器のミドルウェア又はデバイスドライバから前記エラー発生通知を受け取り、
前記状態表示制御手段は、前記機器情報管理手段からの前記エラー発生通知の転送に応答して、前記画面遷移制御手段に前記エラー内容の表示を要求するイベント処理手段を含む、請求項４に記載の組込み機器。
【請求項６】
前記状態情報の表示要求は、前記組込み機器が処理しているタスクの処理状況を通知するステータス通知に基づくステータス表示要求であり、前記所定の画面構成を記述した文書ファイルは、前記タスクのステータスを表示するための画面構成を記述したステータス表示画面用文書ファイルである、請求項１に記載の組込み機器。
【請求項７】
前記機器情報管理手段は、前記組込み機器のミドルウェア又はデバイスドライバから前記ステータス通知を受け取り、
前記状態表示制御手段は、前記機器情報管理手段からの前記ステータス通知の転送に応答して、前記画面遷移制御手段に前記ステータスの表示を要求するイベント処理手段を含む、請求項６に記載の組込み機器。
【請求項８】
前記画面遷移制御手段は、前記文書ファイルの表示を前記ブラウザ手段に要求する際に、前記文書ファイルの読み込みイベントのフックルーチンを前記ブラウザ手段に対して指定し、
前記ブラウザ手段は、前記文書ファイルの読み込みイベントに関連付けて、指定された前記フックルーチンをテーブルに登録し、前記テーブルを参照して受信したイベントの通知先を決定するイベント通知手段を更に含み、
前記状態表示制御手段は、前記イベント通知手段からの前記文書ファイルの読み込みイベントの通知に応答して、前記機器情報管理手段に前記組込み機器の現在の前記状態情報の取得を要求するイベント処理手段を含む、請求項１に記載の組み込み機器。  
【請求項９】
前記アクセス要求手段は、前記組込み機器に現在設定されている設定内容の変更要求があった場合に、設定内容を変更するための画面構成を記述した設定画面用文書ファイルから前記ブラウザ手段によって生成されたＤＯＭツリー上の１以上の所定のノードの値の参照を前記ブラウザ手段に要求し、前記機器情報管理手段は、前記１以上の所定のノードに対応する前記組込み機器に現在設定されている設定内容を、前記アクセス要求手段が参照した前記所定のノードの値に変更する、請求項１に記載の組み込み機器。
【請求項１０】
組込み機器において実行される状態表示制御方法であって、前記組込み機器は、ブラウザと該ブラウザと連動して前記組込み機器の状態の画面表示を制御する状態表示制御プログラムがインストールされており、前記状態表示制御方法は、
前記組込み機器の状態を示す状態情報の表示要求に応答して、前記ブラウザが前記組込み機器の記憶手段から所定の画面構成を記述した文書ファイルを読み込むステップと、
前記文書ファイルの読み込みに応答して、前記状態表示制御プログラムが前記組込み機器の現在の前記状態情報を取得するステップと、
前記ブラウザによって前記文書ファイルから生成されたＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）ツリー上の１以上の所定のノードの値を、取得した前記状態情報で更新するように、前記状態表示制御プログラムが前記ブラウザに要求するステップと、
前記状態表示制御プログラムからの前記１以上の所定のノードのアクセス要求に応答して、前記ブラウザが前記１以上の所定のノードをリストに記録し該リストを前記記憶手段へ記憶するステップと、
前記ＤＯＭツリー上の任意ノードへのアクセス要求に応答して、前記ブラウザが、アクセス要求元に応じて前記記憶手段に記憶される前記リストを参照し、前記リストに記録されたノードへのアクセス要求は前記状態表示制御プログラムにのみ許可してアクセス要求の内容を実行するステップと、
を含む状態表示制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブラウザを利用して機器の状態表示や各種の設定を行うに組込み機器に関する。
【背景技術】
【０００２】
従来、組込み機器向けのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）として、ＨＴＭＬファイル等の構造化文書を表示するブラウザを利用する技術が知られている。このような組込み機器では、組込み機器内部の情報を取得及び設定可能な、ネイティブコードで記述されたプログラム（以下、外部プログラムという）を用意し、該外部プログラムとブラウザとを連携させることで、ブラウザを利用した組込み機器の状態表示や各種の設定を実現している。
【０００３】
具体的には、構造化文書に記述されるＪａｖａＳｃｒｉｐｔから外部プログラムを呼び出すことで、ブラウザは組込み機器の状態を取得し、或いは組込み機器の操作を行う。また、組込み機器の状態が変化した場合は、組込み機器（ミドルウェア／デバイスドライバ）にブラウザに対してダミーの入力を発行させ、これをトリガーに表示更新を行うことで、ブラウザは組込み機器の状態変化に応じた画面更新も行うことができる。
【０００４】
ところでＪａｖａＳｃｒｉｐｔに外部プログラムへのアクセスを許可すると、悪意を持って記述された文書ファイルがブラウザにより読み込まれた場合、文書ファイルに記述されたＪａｖａＳｃｒｉｐｔが外部プログラムに不正にアクセスし、組込み機器内部の情報が外部のサーバに漏洩するといういわゆるセキュリティホールが発生する。このような問題を解決することを目的とする従来技術として例えば特許文献１が存在する。
【０００５】
特許文献１は、スクリプト処理手段が組み込み装置の情報および動作にアクセスして得た結果を外部に出力する指示をした場合に、その出力を禁止したり、出力の可否をユーザに予め又は指示の度に確認したりする技術を開示する。また特許文献１は、装置オブジェクトモデルを構成するオブジェクト毎にアクセス権限を保持し、スクリプト処理手段がアクセス権限のないオブジェクト、オブジェクトの属性又はオブジェクトの操作へのアクセスを試みた場合には、アクセスの試みを失敗させる技術を開示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−８５３５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、スクリプト処理手段によるアクセスの可否をユーザに予め又は指示の度に確認するという方法では、操作が煩雑となってしまう。またアクセスの可否の判断をユーザに委ねるというのでは、不正なアクセスを完全に防ぐことはできない。これは、装置オブジェクトモデルを構成するオブジェクト毎にアクセス権限を保持し、スクリプト処理手段の権限を、Ｗｅｂブラウザを操作している実行ユーザの権限に等しいものとした場合も同じである。
【０００８】
なお、スクリプト処理手段から、組み込み装置の情報および動作に対するアクセス要求がなされた場合に、これらの要求や指示を監視して一切拒否する構成を採用することで、不正なアクセスを完全に防ぐことは可能である。但しこの場合、悪意のあるなしに関わらず全てのスクリプト処理手段についてそのような要求や指示が拒否されてしまうことになり、利便性が損なわれてしまう。
【０００９】
そこで本発明は、組込み機器において、ブラウザを利用した機器の状態表示や各種の設定を、利便性を損なうことなく安全に行う技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成する本発明は、次のような、組込み機器の画面に構造化文書を表示させるブラウザ手段と、前記組込み機器の状態を示す状態情報の前記画面への表示を制御する状態表示制御手段とを備えた組込み機器によって実現される。ここで、前記状態表示制御手段は、前記状態情報の表示要求に応答して、所定の画面構成を記述した文書ファイルを表示するよう前記ブラウザ手段に要求する画面遷移制御手段と、前記ブラウザ手段による前記文書ファイルの読み込みに応答して、前記組込み機器の現在の前記状態情報を取得する機器情報管理手段と、前記ブラウザ手段によって前記文書ファイルから生成されたＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）ツリー上の１以上の所定のノードの値を、取得した前記状態情報で更新するように、前記ブラウザ手段に要求するアクセス要求手段とを含む。また、前記ブラウザ手段は、前記状態表示制御手段からの前記文書ファイルの表示要求に応答して、前記組込み機器の記憶手段から前記文書ファイルを読み込み、該文書ファイルを前記画面に表示するよう制御するブラウザ制御手段と、前記状態表示制御手段からの前記１以上の所定のノードのアクセス要求に応答して、該１以上の所定のノードをリストに記録する履歴管理手段と、前記ＤＯＭツリー上のノードへのアクセス要求に応答して、アクセス要求元に応じて前記リストを参照し、前記リストに記録されたノードへのアクセス要求は前記状態表示制御手段にのみ許可してアクセス要求の内容を実行するＤＯＭ管理手段とを含む。
【００１１】
好ましくは、前記状態情報の表示要求は、前記組込み機器に現在設定されている設定内容の表示要求である。また、前記所定の画面構成を記述した文書ファイルは、設定内容を確認又は変更するための画面構成を記述した設定画面用文書ファイルである。
【００１２】
更に好ましくは、前記ブラウザ手段は、前記画面に表示する文書ファイルに対する操作のイベントを受信して通知するイベント通知手段を含む。そして、前記状態表示制御手段は、前記イベント通知手段からの所定のボタンの押下げイベントの通知に応答して、前記画面遷移制御手段に前記設定内容の表示を要求するイベント処理手段を含む。
【００１３】
また好ましくは、前記状態情報の表示要求は、前記組込み機器内で生じたエラーのエラー発生通知に基づくエラー内容の表示要求である。また、前記所定の画面構成を記述した文書ファイルは、エラー内容を表示するための画面構成を記述したエラー通知画面用文書ファイルである。
【００１４】
更に好ましくは、前記機器情報管理手段は、前記組込み機器のミドルウェア又はデバイスドライバから前記エラー発生通知を受け取る。そして、前記状態表示制御手段は、前記機器情報管理手段からの前記エラー発生通知の転送に応答して、前記画面遷移制御手段に前記エラー内容の表示を要求するイベント処理手段を含む。
【００１５】
また好ましくは、前記状態情報の表示要求は、前記組込み機器が処理しているタスクの処理状況を通知するステータス通知に基づくステータス表示要求である。また、前記所定の画面構成を記述した文書ファイルは、前記タスクのステータスを表示するための画面構成を記述したステータス表示画面用文書ファイルである。
【００１６】
更に好ましくは、前記機器情報管理手段は、前記組込み機器のミドルウェア又はデバイスドライバから前記ステータス通知を受け取る。そして前記状態表示制御手段は、前記機器情報管理手段からの前記ステータス通知の転送に応答して、前記画面遷移制御手段に前記ステータスの表示を要求するイベント処理手段を含む。
【００１７】
また好ましくは、前記画面遷移制御手段は、前記文書ファイルの表示を前記ブラウザ手段に要求する際に、前記文書ファイルの読み込みイベントのフックルーチンを前記ブラウザ手段に対して指定する。そして前記ブラウザ手段は、前記文書ファイルの読み込みイベントに関連付けて、指定された前記フックルーチンをテーブルに登録し、前記テーブルを参照して受信したイベントの通知先を決定するイベント通知手段を更に含む。また、前記状態表示制御手段は、前記イベント通知手段からの前記文書ファイルの読み込みイベントの通知に応答して、前記機器情報管理手段に前記組込み機器の現在の前記状態情報の取得を要求するイベント処理手段を含む。  
【００１８】
また好ましくは、前記アクセス要求手段は、前記組込み機器に現在設定されている設定内容の変更要求があった場合に、設定内容を変更するための画面構成を記述した設定画面用文書ファイルから前記ブラウザ手段によって生成されたＤＯＭツリー上の所定のノードの値の参照を前記ブラウザ手段に要求する。そして、前記機器情報管理手段は、前記所定のノードに対応する前記組込み機器に現在設定されている設定内容を、前記アクセス要求手段が参照した前記所定のノードの値に変更する。
【００１９】
以上、本発明を組込み機器として説明したが、本発明は、組込み機器において実行される状態表示制御方法として把握することもできる。
【発明の効果】
【００２０】
本発明によれば、従来の外部プログラムに相当する状態表示制御手段は、ブラウザやブラウザにより表示されているコンテンツを、ブラウザ内部で動作するＪａｖａＳｃｒｉｐｔを介することなく直接に、かつセキュリティの問題なく安全に制御することができる。従って本発明によれば、組込み機器において、ブラウザを利用して機器の状態表示や各種の設定を利便性を損なうことなくかつ安全に行うことができる。
【図面の簡単な説明】
【００２１】
【図１】図１は、本発明の実施形態に係る複合機のハードウェア構成の一例を示す。
【図２】図２は、本実施形態に係るウェブブラウザおよび状態表示制御プログラムの機能構成を示す。
【図３】図３は、本実施形態に係るイベント管理インタフェース部２５０において保持されるイベント管理テーブルの一例を示す。
【図４】図４は、本実施形態に係る履歴管理部２６０により管理されるアクセス履歴リストの一例を示す。
【図５】図５（ａ）は、本実施形態に係る複合機１００の操作パネルのメイン画面の一例を示す。（ｂ）は、図５（ａ）に示すメイン画面から遷移する、コピー設定のためのサブ画面の一例を示す。（ｃ）は、図５（ｂ）に示すサブ画面から遷移する、用紙サイズ設定のためのサブ画面の一例を示す。
【図６】図６は、図５（ｂ）に示すサブ画面に対応するＤＯＭツリーを示す。
【図７】図７は、図５（ｃ）に示すサブ画面に対応するＤＯＭツリーを示す。
【図８】図８は、本実施形態に係るイベントのフック処理フローの一例を示す。
【図９】図９は、本実施形態に係る第１ボタン押下げイベントの処理フローの一例を示す。
【図１０】図１０は、本実施形態に係る“ｏｎＬｏａｄ”イベント処理フローの一例を示す。
【図１１】図１１は、本実施形態に係る第２ボタン押下げイベント処理フローの一例を示す。
【図１２】図１２は、本実施形態に係る複合機１００のエラー通知画面の一例を示す。
【図１３】図１３は、図１２に示すエラー通知画面に対応するＤＯＭツリーを示す。
【図１４】図１４は、本実施形態に係るエラー処理フローの一例を示す。
【図１５】図１５は、本実施形態に係る他の “ｏｎＬｏａｄ”イベント処理フローの一例を示す。
【発明を実施するための形態】
【００２２】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。また、本発明を適用可能な組込み機器は、コピー機やファクシミリ等のオフィス機器、携帯電話やＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｅｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）等の情報機器、及びデジタル家電機器等複数あるが、本明細書では組込み機器として複合機を例に本発明を説明する。
【００２３】
図１は、本発明の実施形態に係る複合機１００のハードウェア構成の一例を示す。複合機１００は、複合機１００の全体の制御を司るＣＰＵ１０２と、各種制御プログラムのワークエリアとして機能するメモリ１０４と、ＣＰＵ１０２を動作させる各種制御プログラムを格納したＲＯＭ１０６及び外部記憶装置１０８と、データ通信をおこなう通信部１１０と、印刷時及びスキャン時に必要な各種の設定等の操作を行うための入力部１１２と、入力部１１２と連動して必要な情報を表示する表示部１１４と、原稿を読み取る原稿読み取り部１１６と、印字データを転写紙に印字するための印刷部１１８ とを含む。この他複合機３００はファクシミリ機能（図示しない）を有するものであってもよい。  
【００２４】
ＣＰＵ１０２は、 ＲＯＭ１０６及び外部記憶装置１０８に格納されている各種制御プログラムに従って装置全体を制御する中央制御ユニットである。このＣＰＵ１０２には、バス１０１を介して、メモリ１０４、ＲＯＭ１０６、外部記憶装置１０８、通信部１１０、入力部１１２、表示部１１４、原稿読み取り部１１６、印刷部１１８が接続されており、データ通信、原稿読み取り動作、プリンタ動作等を制御する。
【００２５】
ＲＯＭ１０６及び外部記憶装置１０８は、ＣＰＵ１０２を動作させるための各種制御プログラムやその処理に用いられる各種データを記憶する。各種制御プログラムには、本発明の実施の形態に係るブラウザや状態表示制御プログラムが含まれる。また、各種データには、後述する設定内容を確認又は変更するための画面構成を記述した１以上の設定画面用文書ファイル、エラー内容を表示するための画面構成を記述した１以上のエラー通知画面用文書ファイル、処理状況を表示するための画面構成を記述した１以上のステータス表示画面用文書ファイルが含まれる。メモリ１０４には、指定された制御プログラムがロードされる。メモリ１０４は実行中の制御プログラムにより使用されるワークメモリを備える。
【００２６】
通信部１１０は、外部とデータ通信を行うためのものであり、例えば、ネットワークを介して接続されたサーバ等のコンピュータとデータ通信を行うものである。入力部１１２は、マウス、スタイラス・ペン等のポインティングデバイスのほか、デジタイザやタブレットを含んでもよい。表示部１１４は、好ましくはタッチスクリーンにより構成される。原稿読み取り部１１６は、イメージスキャナを含み、イメージスキャナにより読み取られた画像データを、デジタル・データに変換する。
【００２７】
印刷部１１８ は、印字データを転写紙等の媒体に印字するユニット、及び、ユーザが設定した機能を実現するための画像処理、即ち、倍率や濃度といった画質に関する処理を含む、画像処理を行うユニットを含む。
【００２８】
図２は、本実施形態に係るブラウザ２００および状態表示制御プログラム３００の機能構成を示す。まず本実施形態に係るブラウザ２００について説明する。本実施形態に係るブラウザ２００は、一般的なブラウザと同様に、ＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）やＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等で表現された構造化文書ファイルを読み込み、レイアウトを解析して構造化文書ファイルに含まれるテキストデータや画像データ、音声データを画面に表示したり再生したりする機能を有する。また本実施形態に係るブラウザ２００は、ＪａｖａＳｃｒｉｐｔやＪａｖａ等の言語で記述されたソフトウェアを動作させる機能を有する。
【００２９】
即ち、本実施形態に係るブラウザ２００は、通信部２０５、コンテンツ解析部２１０、ＤＯＭ生成部２１５、レイアウト決定部２２５、描画部２３０、イベント通知部２３５、スクリプト実行部２４０、及びブラウザ制御部２４５を含む。
【００３０】
また本実施形態に係るブラウザ２００は、後述する状態表示制御プログラム３００がブラウザ２００及びブラウザ２００により表示されるコンテンツを直接制御できるように、新たにイベント管理インタフェース部２５０、ＤＯＭ要求インタフェース部２５５、及び制御要求インタフェース部２６５の３つのインタフェースを含む。
【００３１】
更に本実施形態に係るブラウザ２００は、上記状態表示制御プログラム３００によるブラウザ２００及びコンテンツの直接の制御がセキュリティの問題なく安全に行われるように、新たにＤＯＭ処理部２２０及び履歴管理部２６０を含む。
【００３２】
通信部２０５は、ＴＣＰ／ＩＰプロトコルに従って、ウェブサーバ等のネットワーク上の他のコンピュータとの間に接続を確立し通信する。通信部２０５は、ＵＲＬによって記述されたリソースに対してＨＴＴＰ要求を発行し、該要求に対する応答を受信するための通信手段である。
【００３３】
コンテンツ解析部２１０は、通信部２０５からＨＴＭＬやＸＭＬ等で表現された構造化文書ファイルを受け取り、これに対し字句解析及び構文解析を行って解析木を取得する。
【００３４】
ＤＯＭ生成部２１５は、コンテンツ解析部２１０から解析木を受け取り、取得した構造化文書ファイルの構造に対応したＤＯＭを生成する。ＤＯＭはＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）の一種であり、コンテンツデータの内容、及びそれらの配置、スタイルをオブジェクトとして扱い、これらオブジェクトを、スクリプト言語を使って制御するための取り決めである。
【００３５】
ＤＯＭ処理部２２０は、ＤＯＭ生成部２１５が生成したＤＯＭを、オブジェクト間の入れ子関係を表現するツリー構造として、メモリ１０４上に保持しこれを管理する。またＤＯＭ処理部２２０は、ＤＯＭ  ＡＰＩを利用してなされるＤＯＭツリー上のノードへのアクセス要求に応答して、アクセス要求元に応じて後述する履歴管理部２５５により維持されるアクセス履歴リストを参照し、アクセス履歴リストに記録されたノードへのアクセス要求は状態表示制御プログラム３００にのみ許可してアクセス要求の内容を実行する。
。
【００３６】
言い換えると、ＤＯＭ処理部２２０は、後述する状態表示制御プログラム３００以外のアクセス要求元に対しアクセス履歴リストを参照し、アクセス要求が後述するアクセス履歴リストに記録されているノードへのアクセス要求であった場合にこれを禁止する。なお、本実施例では、ＤＯＭ処理部２２０は、表示部１１４に表示されている画面内の画面要素に対応するＤＯＭオブジェクトのオブジェクト識別子を取得するためのＤＯＭ  ＡＰＩの呼び出しは、ＤＯＭツリー上のノードへのアクセス要求でないものとしてアクセス履歴リストを参照することなく処理する。これに代えて、ＤＯＭ処理部２２０は、全てのＤＯＭ  ＡＰＩの呼び出しに対し、上記アクセス制御処理を実行してもよい。
【００３７】
レイアウト決定部２２５は、ＤＯＭ処理部２２０が保持するＤＯＭに基づいて、文書全体のレイアウトを決定する。なおレイアウト決定部２２５は、構造化文書ファイルにＪａｖａＳｃｒｉｐｔ等のスクリプトが記述されている場合は、そのスクリプトを後述するスクリプト実行部２４０へ渡す。
【００３８】
描画部２３０は、レイアウト決定部２２５が決定したレイアウトに従って、構造化文書ファイルに含まれるテキストデータや画像データを表示部１１２に表示する。
【００３９】
イベント通知部２３５は、入力部１１２やタッチスクリーンとしての表示部１１４を介してユーザによりなされた操作等のイベントを受信し、これをＤＯＭ処理部２２０及び後述するイベント管理インタフェース部２５５へ通知する。イベント通知部２３５は、まずイベント管理インタフェース部２５５にイベントを通知する。そして、イベント管理インタフェース部２５５により該イベントの通知先が見つからなかった場合、イベント通知部２３５は該イベントをＤＯＭ処理部２２０に通知する。
【００４０】
具体的には、イベント通知部２３５は、ＤＯＭ処理部２２０が管理するＤＯＭツリーを構成するオブジェクト群の中から、受信したイベントを処理すべきオブジェクトを決定し、該オブジェクトにイベントを配信する。イベントを配信されたオブジェクトは、該オブジェクトのインスタンス又はクラスに関連付けて予め登録されたイベントハンドラによりイベントを処理する。なお、イベントハンドラはスクリプトで記述されており、後述するスクリプト実行部２４０により実行される。
【００４１】
スクリプト実行部２４０は、イベントハンドラとしてのスクリプト又はレイアウト決定部２５５から受け取ったスクリプトを実行する。具体的には、スクリプト実行部２４０は、受け取ったスクリプトの内容に従って、ＤＯＭ  ＡＰＩを利用してＤＯＭ処理部２２０が保持するＤＯＭを更新して描画部２３０に再描画を指示したり、通信部２０５を介してウェブサーバ等の他のコンピュータと通信したりする。
【００４２】
ブラウザ制御部２４５は、後述する制御要求インタフェース部２５５からの要求に応じて又はスクリプト実行部２４０によるスクリプトの実行の結果として、ブラウザのウィンドウをオープン又はクローズし、また、ＲＯＭ１０６又は外部記憶装置１０８に格納された所定の画面構成を記述した構造化文書ファイルを読み込んで、表示部１１４に表示するようブラウザ２００を制御する。
【００４３】
イベント管理インタフェース部（以下、単にＡＰＩ−Ａともいう）２５０は、イベント通知部２３５がＤＯＭオブジェクトに配信するイベントを、状態表示制御プログラム３００がフックできるように新たに用意されるＡＰＩである。本実施例では、ＡＰＩ−Ａ２５０は、監視対象となるオブジェクトのオブジェクト識別子、監視対象となるイベントの種類、及び該イベントが発生したときにコールバックされる関数（フックルーチン）のアドレスを引数として呼び出され、これらを関連付けてイベント管理テーブルに登録する（図３参照）。なお図３に示すように、本実施例では、イベントの種類はＪａｖａＳｃｒｉｐｔで定義されている文字列をそのまま使用する。
【００４４】
またＡＰＩ−Ａ２５０は、イベント通知部２３５からイベントの通知を受け取ると、該イベントがイベント管理テーブルに登録されている監視対象のイベントであるか否か判定する。そしてＡＰＩ−Ａ２５０は、監視対象のイベントについて通知を受けると、イベント管理テーブルからコールバックすべきフックルーチンのアドレスを読み出して、イベントの発生を状態表示制御プログラム３００、より詳細には後述するイベント処理部３０５に通知する。
【００４５】
このように本実施例では、イベント通知部２３５とＡＰＩ−Ａ２５０とが一緒になって、ブラウザ２００のイベント通知手段として機能する。
【００４６】
ＤＯＭ要求インタフェース部（以下、単にＡＰＩ―Ｂともいう）２５５は、状態表示制御プログラム３００がＤＯＭ処理部２２０により管理されるＤＯＭにアクセスできるように新たに用意されるＡＰＩである。ＡＰＩ―Ｂ２５５は、ＤＯＭのオブジェクトとオブジェクト識別子とを紐付けて、状態表示制御プログラム３００によるＡＰＩ―Ｂ２５５の呼び出しをＤＯＭ  ＡＰＩにマップする。
【００４７】
本実施例では、ＡＰＩ−Ｂ２５５は、表示部１１４に表示されている画面内の画面要素のＩＤ（文字列）を引数として呼び出された場合、受け取った画面要素のＩＤを引数としてｇｅｔＥｌｅｍｅｎｔＢｙＩｄの呼び出しを行う。ｇｅｔＥｌｅｍｅｎｔＢｙＩｄは、構造化文書のタグのｉｄ属性を引数とし、該ｉｄ属性により識別される画面要素に対応するＤＯＭオブジェクトを返すＤＯＭ  ＡＰＩである。従ってこの場合ＡＰＩ−Ｂ２５５は、ｇｅｔＥｌｅｍｅｎｔＢｙＩｄから返されたオブジェクトに対応するオブジェクト識別子を呼び出し元に返す。
【００４８】
また本実施例では、ＡＰＩ−Ｂ２５５は、ＤＯＭオブジェクトのオブジェクト識別子を引数として呼び出された場合、オブジェクト識別子により識別されるＤＯＭオブジェクトに対して、ｇｅｔＮｏｄｅＶａｌｕｅの呼び出しを行う。ｇｅｔＮｏｄｅＶａｌｕｅはノードの種類に依存した値を返し、ノードが属性ノードである場合属性値を、ノードがテキストノードである場合その内容の文字列を返すＤＯＭ  ＡＰＩである。従ってこの場合ＡＰＩ−Ｂ２５５は、ｇｅｔＮｏｄｅＶａｌｕｅからの戻り値をそのまま呼び出し元に返す。
【００４９】
更に本実施例では、ＡＰＩ−Ｂ２５５は、ＤＯＭオブジェクトのオブジェクト識別子と、任意の文字列とを引数として呼び出された場合、オブジェクト識別子により識別されるＤＯＭオブジェクトに対して、受け取った任意の文字列を引数としてｓｅｔＮｏｄｅＶａｌｕｅの呼び出しを行う。ｓｅｔＮｏｄｅＶａｌｕｅはノードの値を受け取った引数の値に変更するＤＯＭ  ＡＰＩである。
【００５０】
このようにＡＰＩ−Ｂ２５５は、ＤＯＭオブジェクトのオブジェクト識別子を含む１以上の引数を指定して呼び出された場合、オブジェクト識別子により識別されるＤＯＭオブジェクトに対して、受け取った残りの引数を使ってＤＯＭ  ＡＰＩの呼び出しを行う。またＡＰＩ−Ｂ２５５は、ＤＯＭ  ＡＰＩの戻り値がＤＯＭオブジェクトである場合は該ＤＯＭオブジェクトに対応するオブジェクト識別子を、そうでない場合は戻り値をそのまま呼び出し元に返す。このようにして、ＡＰＩ―Ｂ２５５の呼び出しはＤＯＭ  ＡＰＩにマップされる。
【００５１】
ＡＰＩ−Ｂ２５５は、状態表示制御プログラム３００からＤＯＭツリー上のノードへのアクセス要求を受け取った場合、即ち、状態表示制御プログラム３００からＤＯＭオブジェクトのオブジェクト識別子を引数の１つとして呼び出された場合に、該アクセス要求を後述する履歴管理部２６０へ通知する。これに代えてＡＰＩ−Ｂ２５５は、状態表示制御プログラム３００からの全て呼び出しについて、該呼び出しを後述する履歴管理部２６０へ通知するようにしてもよい。本実施例では、前者の構成を採用する。
【００５２】
履歴管理部２６０は、ＡＰＩ−Ｂ２５５から状態表示制御プログラム３００によるＤＯＭノードへのアクセス要求の通知を受けると、アクセス要求のあったノードのオブジェクト識別子をアクセス履歴リストに記録する。履歴管理部２６０が維持するアクセス履歴リストは、一例としてアクセス要求のあったノードのオブジェクト識別子のリストであってよく、更にアクセス要求のあったノードのオブジェクト識別子にアクセス要求の内容を関連付けて記録するリストであってもよい（図４参照）。この場合ＡＰＩ−Ｂ２５５からの通知には、アクセス要求のあったノードのオブジェクト識別子とアクセス内容とが含まれる。
【００５３】
このように本実施例では、ＡＰＩ−Ｂ２５５と履歴管理部２６０とが一緒になって、ブラウザ２００の履歴管理手段として機能する。
【００５４】
なお、上述したようにＤＯＭ処理部２２０は、アクセス履歴リストに記録されているノードへのアクセス要求が状態表示制御手段３００以外の要求元によりなされた場合これを禁止する。これは、スクリプト実行部２４０は、状態表示制御手段３００によって一度アクセスされたＤＯＭノードにはアクセスできないことを意味し、従って、状態表示制御プログラム３００は、ブラウザ２００を利用して安全に複合機１００内部の情報を表示部１１４に表示できる。
【００５５】
制御要求インタフェース部（以下、単にＡＰＩ−Ｃともいう）２６５は、状態表示制御プログラム３００が、新規ブラウザウィンドウのオープン、ブラウザウィンドウのクローズ、及び構造化文書の読み込みを制御できるように新たに用意されるＡＰＩである。
【００５６】
本実施例では、ＡＰＩ−Ｃ２６５は、ウィンドウのオープンを要求された場合、ブラウザ制御部２４５に対してウィンドウの新規オープンを要求し、新規ウィンドウにオブジェクト識別子を割り当て、これを状態表示制御プログラム３００、より詳細には後述する画面遷移制御部３１５に返す。またＡＰＩ−Ｃ２６５は、ウィンドウのオブジェクト識別子を引数として呼び出される場合、ブラウザ制御部２４５に対してオブジェクト識別子に対応するウィンドウのクローズを要求する。
【００５７】
またＡＰＩ−Ｃ２６５は、ウィンドウのオブジェクト識別子、構造化文書の保存場所（ＵＲＬ）、及び該構造化文書の読み込み終了時に呼び出される“ｏｎＬｏａｄ”イベントの関数（フックルーチン）のアドレスを引数として呼び出される場合、ブラウザ制御部２４５に指定された構造化文書の読み込みを要求する。更にＡＰＩ−Ｃ２６５は、受け取ったウィンドウのオブジェクト識別子と、“ｏｎＬｏａｄ”イベントと、フックルーチンのアドレスとを引数としてＡＰＩ−Ａ２５０を呼び出し、指定された構造化文書の読み込みイベントのフックを要求する。
【００５８】
このように本実施例では、ブラウザ制御部２４５とＡＰＩ−Ｃ２６５とが一緒になって、ブラウザ２００のブラウザ制御手段として機能する。
【００５９】
次に本実施形態に係る状態表示制御プログラム３００について説明する。本実施形態に係る状態表示制御プログラム３００は、従来の外部プログラムが有する組込み機器内部の情報を取得し及び設定する機能に加えて、複合機１００の状態を示す状態情報の表示部１１４への表示を直接制御する機能を有する。
【００６０】
ここで複合機１００の状態を示す状態情報は、複合機１００に現在設定されている設定の内容、組込み機器内で生じたエラーの内容、及び組込み機器が処理しているタスクのステータスを含む。但し状態情報はこれらの情報に制限されず、現在の用紙の残量や原稿トレー上の原稿の有無等、複合機１００の状態を示し得る情報であって、複合機１００自体が取得可能な情報を含んでよい。なお、状態表示制御プログラム３００による状態情報の取得及び設定は、従来の外部プログラムと同様に複合機１００のミドルウェア又はデバイスドライバを介して行われその方法は既知であるため、本明細書では詳細な説明は省略する。
【００６１】
本実施形態に係る状態表示制御プログラム３００は、イベント処理部３０５、機器情報管理部３１０、画面遷移制御部３１５、及びアクセス要求部３２０を含む。
【００６２】
イベント処理部３０５は、複合機１００の状態を示す状態情報の表示要求があった場合に、機器情報管理部３１０、画面遷移制御部３１５、及びアクセス要求部３２０のそれぞれに指示を出しながら、表示要求の処理を行う。ここで状態情報の表示要求は、ユーザ操作に基づく複合機１００に現在設定されている設定内容の表示要求、複合機１００内でのエラーの発生に基づくエラー内容の表示要求、複合機１００内でのタスク開始に基づくタスクのステータス表示要求のいずれかであってよい。
【００６３】
なおエラー内容の表示要求及びステータスの表示要求は、後述する機器情報管理部３１０が複合機１００のミドルウェア又はデバイスドライバから受け取ったエラー発生通知又はタスクのステータス通知をイベント処理部３０５に転送することで、イベント処理部３０５に通知される。一方設定内容の表示要求については、イベント処理部３０５は事前にＡＰＩ−Ａ２５０を呼び出して設定内容の確認・変更を示すユーザ操作のイベントをフックする必要がある。
【００６４】
例えば、設定内容の確認・変更を示すユーザ操作が、複合機１００の起動時に表示部１１４に最初に表示されるメイン画面内の所定のボタンの押下げであるとする。この場合イベント処理部３０５は、メイン画面が表示される際に、所定のボタンに対応するオブジェクトのオブジェクト識別子、“ｏｎＣｌｉｃｋ”イベント、該イベントが検知された際にコールバックされるべきフックルーチンのアドレスを引数としてＡＰＩ−Ａ２５０を呼び出し、所定のボタンの押下げのイベントをフックする。なお、所定のボタンに対応するオブジェクトのオブジェクト識別子は、後述するアクセス要求部３２０を介してＡＰＩ−Ｂ２５５を呼び出すことにより取得される。また上記アドレスを参照してコールバックされるフックルーチンは、上記所定のボタンの押下げのイベントに対応する処理を行うイベント処理部３０５である。
【００６５】
イベント処理部３０５は、状態情報の表示要求を検知すると、後述する画面遷移制御部３１５に、表示要求される状態情報の種類に応じて、設定内容の表示、エラー内容の表示、及びタスクのステータス表示のいずれかを要求する。
【００６６】
またイベント処理部３０５は、状態情報の表示要求に応答して所定の画面構成を記述した文書ファイルがブラウザ２００により読み込まれると、該文書ファイルの読み込みイベントの通知に応答して、後述する機器情報管理部３１０に複合機１００の現在の状態情報の取得を要求する。
【００６７】
ここで状態情報の表示要求が設定内容の表示要求である場合、対応する所定の文書ファイルはＲＯＭ１０６又は外部記憶装置１０８に格納された設定画面用文書ファイルである。なお、設定画面用文書ファイルは複合機１００の機能ごと複数存在してよい。この場合イベント処理部３０５は、表示要求される設定内容の種類ごとに表示すべき設定画面用文書ファイルの情報を予め有し、画面遷移制御部３１５に対し、表示すべき設定画面用文書ファイルを指定する。そして、イベント処理部３０５は機器情報管理部３１０に、設定画面に表示すべき複合機１００に現在設定されている１以上の設定値の取得を要求する。
【００６８】
また状態情報の表示要求がエラー内容の表示要求である場合、対応する所定の文書ファイルはＲＯＭ１０６又は外部記憶装置１０８に格納されたエラー通知画面用文書ファイルである。従って、イベント処理部３０５は機器情報管理部３１０に、エラー通知画面に表示すべき複合機１００内で発生したエラーのコードや内容の取得を要求する。
【００６９】
また状態情報の表示要求がタスクのステータス表示要求である場合、対応する所定の文書ファイルはＲＯＭ１０６又は外部記憶装置１０８に格納されたステータス表示画面用文書ファイルである。従って、イベント処理部３０５は機器情報管理部３１０に、ステータス表示画面に表示すべき複合機１００内で処理中のタスクのステータスの取得を要求する。
【００７０】
イベント処理部３０５はまた、機器情報管理部３１０により複合機１００の現在の状態情報が取得されると、後述するアクセス要求部３２０に、表示部１１４に現在表示されている画面内の１以上の所定の画面要素を、取得された状態情報で更新するよう要求する。なお、イベント処理部３０５は、状態情報の種類に応じて更新すべき１以上の所定の画面要素の情報を予め内部に保持しており、アクセス要求部３２０へ所定の画面要素のＩＤを渡す。
【００７１】
イベント処理部３０５はまた、ユーザにより複合機１００に現在設定されている設定内容の変更要求がなされると、該変更要求を示すユーザ操作のイベントの通知に応答して、後述するアクセス要求部３２０に、表示部１１４に現在表示されている画面内の１以上の所定の画面要素の値を参照するよう要求する。なお、参照すべき１以上の所定の画面要素の値とは、テキストボックス、ラジオボタン、チェックボックス等の入力フォームに入力されたデータである。イベント処理部３０５は、通知を受ける変更要求のイベントごとに参照すべき１以上の所定の画面要素の情報を予め内部に保持しており、アクセス要求部３２０へ所定の画面要素のＩＤを渡す。
【００７２】
そしてイベント処理部３０５は、アクセス要求部３２０による１以上の所定の画面要素の値の参照が成功すると、後述する機器情報管理部３１０に、所定の画面要素に対応する設定項目の内容を、参照した値に変更するよう要求する。なおイベント処理部３０５は、通知を受ける変更要求の種類ごとに、変更すべき設定項目の情報を予め内部に保持しているものとする。
【００７３】
画面遷移制御部３１５は、状態情報の表示要求に応答して、所定の画面構成を記述した文書ファイルを表示するようブラウザ手段に要求する。具体的には、画面遷移制御部３１５はまず、ＡＰＩ−Ｃ２６５を呼び出してウィンドウの新規オープンを要求し、戻り値として新規ウィンドウに割り当てられたオブジェクト識別子を受け取る。
【００７４】
次に画面遷移制御部３１５は再度ＡＰＩ−Ｃ２６５を呼び出し、受け取ったオブジェクトの識別子、所定の画面構成を記述した文書ファイルの保存場所、及び該文書ファイルのブラウザ２００による読み込み終了時にコールバックされる“ｏｎＬｏａｄ”イベントの関数（フックルーチン）のアドレスを引数として渡す。
【００７５】
なお、上述したように画面遷移制御部３１５は状態情報の表示要求をイベント処理部３０５から受ける。また画面遷移制御部３１５がＡＰＩ−Ｃ２６５に引数として渡す所定の画面構成を記述した文書ファイルの保存場所は、表示要求される状態情報に応じて異なり、設定画面用文書ファイル、エラー通知画面用文書ファイル、及びステータス表示画面用文書ファイルのいずれかの保存場所である。
【００７６】
また上記アドレスを参照してコールバックされるフックルーチンは、所定の画面構成を記述した文書ファイルの読み込みイベントに対応する処理を行うイベント処理部３０５である。画面遷移制御部３１５は、ＡＰＩ−Ｃ２６５に渡すべき引数の情報を、状態情報の表示要求の種類ごとに内部に保持しておいてもよく、或いはイベント処理部３０５がこれを保持し、画面遷移制御部３１５に対し指定するようにしてもよい。
【００７７】
なお上述したように、画面遷移制御部３１５に引数を指定して呼び出されたＡＰＩ−Ｃ２６５は、ブラウザ制御部２４５に対して指定された文書ファイルの読み込みを要求する。更にＡＰＩ−Ｃ２６５は、画面遷移制御部３１５から受け取ったウィンドウのオブジェクト識別子と、“ｏｎＬｏａｄ”イベントと、フックルーチンのアドレスとを引数としてＡＰＩ−Ａ２５０を呼び出し、指定された文書ファイルの読み込みイベントのイベント管理テーブルへの登録を要求する。従って、所定の画面構成を記述した文書ファイルがブラウザ２００により読み込まれると、該読み込みイベントがイベント処理部３０５に通知され、イベント処理部３０５は表示要求のあった状態情報に応じた処理を続行できる。
【００７８】
機器情報管理部３１０は、複合機１００のミドルウェア又はデバイスドライバから複合機１００内部で発生したエラーのエラー発生通知を受け取る。また、機器情報管理部３１０は、複合機１００が現在処理しているタスクの処理状況を示すステータス報告を受け取る。
【００７９】
通知を受け取るエラーとしては、例えば紙詰まりやトナー切れ等が挙げられる。またステータス報告を受け取るタスクとしては、例えば画像の取り込みやファクシミリの受信が挙げられる。この場合ステータス内容は、全体のタスクに対する処理済のタスクの割合や、
現在実行中の処理内容（例えばファクシミリの受信の場合、ネゴシエーション中、データ受信中、及び受信完了のいずれか）であってよい。上述したように、機器情報管理部３１０は上記通知を受けるとこれをイベント処理部３０５に通知する。
【００８０】
機器情報管理部３１０はまた、ブラウザ２００による所定の画面構成を記述した文書ファイルの読み込みに応答して、複合機１００の現在の状態情報を取得する。上述したように、所定の画面構成を記述した文書ファイルが設定画面用文書ファイルである場合、機器情報管理部３１０は、現在の状態情報として設定画面に表示すべき複合機１００に現在設定されている設定値を取得する。
【００８１】
また所定の画面構成を記述した文書ファイルがエラー通知画面用文書ファイルである場合、機器情報管理部３１０は、現在の状態情報としてエラー通知画面に表示すべき複合機１００内で発生したエラーのエラーコードやその内容を取得する。
【００８２】
また所定の画面構成を記述した文書ファイルがステータス表示画面用文書ファイルである場合、機器情報管理部３１０は、現在の状態情報としてステータス表示画面に表示すべき複合機１００内で処理中のタスクのステータスを取得する。
【００８３】
なお機器情報管理部３１０は、上記現在の状態情報の取得を、所定の画面構成を記述した文書ファイルの読み込みイベントの通知を受けたイベント処理部３０５により要求される。また機器情報管理部３１０は上記現在の状態情報を、複合機１００のミドルウェア又はデバイスドライバから取得する。取得された現在の状態情報は、機器情報管理部３１０からアクセス要求部３２０へ渡される。
【００８４】
機器情報管理部３１０はまた、複合機１００に現在設定されている設定内容の変更要求があった場合に、イベント処理部３０５からの要求に応答して、複合機１００に現在設定されている設定内容を変更する。
【００８５】
ユーザによる設定内容の変更要求は、設定画面用文書ファイルを読み込んだブラウザ２００を介して行われる。新たに複合機１００に設定すべき内容は、後述するアクセス要求部３２０が設定画面用文書ファイルに対応するＤＯＭツリー上の所定のノードの値を参照することにより取得される。機器情報管理部３１０は、複合機１００に現在設定されている上記所定のノードに対応する設定項目の設定内容を、アクセス要求部３２０が取得した所定のノードの値に変更する。なお、変更すべき設定項目は、イベント処理部３０５により指示される。
【００８６】
アクセス要求部３２０は、イベント処理部３０５の要求に応答して、所定の画面構成を記述した文書ファイルからブラウザ２００によって生成されたＤＯＭツリー上の１以上の所定のノードの値を、機器情報管理部３１０が取得した複合機１００の現在の状態情報で更新するようにブラウザ２００に要求する。上述したように、イベント処理部３０５による更新要求には、表示部１１４に現在表示されている画面内の１以上の所定の画面要素のＩＤ（文字列）が含まれる。
【００８７】
具体的には、アクセス要求部３２０はまず、指定された１以上の所定の画面要素の各々について、該画面要素のＩＤ（文字列）を引数としてＡＰＩ−Ｂ２５５を呼び出す。呼び出されたＡＰＩ−Ｂ２５５は、受け取ったＩＤ（文字列）を引数としてｇｅｔＥｌｅｍｅｎｔＢｙＩｄの呼び出しを行い、返されたオブジェクトのオブジェクト識別子をアクセス要求部３２０へ戻す。
【００８８】
次にアクセス要求部３２０は再度ＡＰＩ−Ｂ２５５を呼び出し、受け取った各オブジェクトの識別子と、機器情報管理部３１０が取得した複合機１００の現在の状態情報を引数として渡す。呼び出されたＡＰＩ−Ｂ２５５は、オブジェクト識別子により識別されるオブジェクトに対し、受け取った状態情報を引数としてｓｅｔＮｏｄｅＶａｌｕｅの呼び出しを行う。これにより、表示部１１４に表示される所定のノードに対応する画面要素の値が複合機１００の現在の状態情報で更新される。なお、ＤＯＭオブジェクトへのアクセスを要求されたＤＯＭ処理部２２０は、ＡＰＩ−Ｂ２５５によりＤＯＭ  ＡＰＩが呼び出されていることから要求元は状態表示制御プログラム３００であると判定し、アクセス履歴リストを参照することなくアクセスを許可する。
【００８９】
アクセス要求部３２０はまた、複合機１００に現在設定されている設定内容の変更要求があった場合に、設定内容を変更するための画面構成を記述した設定画面用文書ファイルからブラウザ２００によって生成されたＤＯＭツリー上の１以上の所定のノードの値の参照をブラウザ２００に要求する。なお、上述したように設定内容の変更要求は、イベント処理部３０５により通知され、該通知には、その値を参照すべき１以上の所定の画面要素のＩＤ（文字列）が含まれる。
【００９０】
具体的には、アクセス要求部３２０はまず、指定された１以上の所定のノードの各々について、該ノードである画面要素のＩＤ（文字列）を引数としてＡＰＩ−Ｂ２５５を呼び出す。呼び出されたＡＰＩ−Ｂ２５５は、受け取ったＩＤ（文字列）を引数としてｇｅｔＥｌｅｍｅｎｔＢｙＩｄの呼び出しを行い、返されたオブジェクトのオブジェクト識別子をアクセス要求部３２０へ戻す。
【００９１】
次にアクセス要求部３２０は再度ＡＰＩ−Ｂ２５５を呼び出し、受け取った各オブジェクトの識別子を引数として渡す。呼び出されたＡＰＩ−Ｂ２５５は、オブジェクト識別子により識別されるオブジェクトに対し、ｇｅｔＮｏｄｅＶａｌｕｅの呼び出しを行う。ｇｅｔＮｏｄｅＶａｌｕｅからの戻り値は、ＡＰＩ−Ｂ２５５によりそのままアクセス要求部３２０へ返される。アクセス要求部３２０はＡＰＩ−Ｂ２５５からの戻り値を、イベント処理部３０５に指示に従って、機器情報管理部３１０へ渡す。
【００９２】
なお、ＤＯＭオブジェクトへのアクセスを要求されたＤＯＭ処理部２２０は、ＡＰＩ−Ｂ２５５によりＤＯＭ  ＡＰＩが呼び出されていることから要求元は状態表示制御プログラム３００であると判定し、アクセス履歴リストを参照することなくアクセスを許可する。
【００９３】
なお上述したように、アクセス要求部３２０、即ち状態表示制御プログラム３００からのＤＯＭツリー上のノードへのアクセス要求は、ＡＰＩ−Ｂ２５５より履歴管理部２６０に通知され、履歴管理部２６０は、アクセス要求のあったオブジェクトを記録することに留意されたい。
【００９４】
次に図５乃至図１５を参照して、ブラウザ２００及び状態表示制御プログラム３００の動作を説明する。なお以下では、表示要求される複合機１００の状態情報が、複合機１００に現在設定されている設定の内容である場合を第１実施例、組込み機器内で生じたエラーの内容である場合を第２実施例としてそれぞれ説明する。
【００９５】
（第１実施例）まず図５乃至図１１を参照して、表示要求される複合機１００の状態情報が、複合機１００に現在設定されている設定の内容である場合のブラウザ２００及び状態表示制御プログラム３００の動作を説明する。
【００９６】
図５（ａ）は複合機１００の起動時に表示部１１４に最初に表示されるメイン画面の一例を示す。本実施例では複合機はコピー機能とスキャン機能を有するため、メイン画面にはこれら２つの設定ボタン５０２、５０４が含まれる。ここでコピー設定ボタン５０２が押されると、本実施例における複合機１００は、図５（ａ）に示すメイン画面から図５（ｂ）に示すサブ画面へ表示部１１４の画面を遷移させる。
【００９７】
図５（ｂ）は、コピーに関する各種の設定及び確認を行うための設定画面の一例を示す。図５（ｂ）に示すサブ画面は、用紙サイズ設定ボタン５０６、部数設定ボタン５０８、倍率設定ボタン５１０、及び濃度設定ボタン５１２の４つのボタンを含む。各ボタンの右側にあるセル５１４乃至５２０には、対応する現在の設定内容が表示されている。ここで用紙サイズ設定ボタン５０６が押されると、本実施例における複合機１００は、図５（ｂ）に示すメイン画面から図５（ｃ）に示すサブ画面へ表示部１１４の画面を遷移させる。
【００９８】
図５（ｃ）は、用紙サイズの設定を行うための設定画面の一例を示す。図５（ｃ）に示すサブ画面は、Ａ４、Ａ３、Ｂ４、Ｂ５の中から用紙を１つ選択するためのラジオボタン５２２と、変更を実行するための決定ボタン５２４、及び変更を中止するための中止ボタン５２６を含む。
【００９９】
図６は、  図５（ｂ）に示すサブ画面に対応するＤＯＭツリーの一例を示す。また、図７は、図５（ｃ）に示すサブ画面に対応するＤＯＭツリーの一例を示す。
【０１００】
以下では、図５（ａ）に示すメイン画面が表示部１１４に表示されてから、図５（ｂ）及び図５（ｃ）に示すサブ画面を介してユーザによりコピー設定に関する設定内容の確認及び変更が行われる場合を具体例として、ブラウザ２００及び状態表示制御プログラム３００の動作を説明する。
【０１０１】
図８は、状態表示制御プログラム３００がブラウザによる画面表示を制御するために前処理として行われる、イベントのフック処理の流れの一例を示すフローチャートである。なおブラウザ２００が実行するステップと状態表示制御プログラム３００が実行するステップとを区別するために、全てのフローチャートの図において、ブラウザ２００が実行するステップを点線で囲んだ。処理はステップ８００から開始し、イベント処理部３０５の要求に応答して、アクセス要求部３２０は、目的オブジェクトのＩＤ（文字列）を引数としてＡＰＩ−Ｂ２５５を呼び出し、目的オブジェクトのオブジェクト識別子を問い合わせる。
【０１０２】
ここで目的オブジェクトとは、表示部１１４に表示される画面内の画面要素であって、それに対するイベントをフックすべきオブジェクトをいう。例えば、図５（ａ）乃至図５（ｃ）に示す各画面のクローズボタン、図５（ａ）乃至図５（ｂ）に示す各設定ボタン５０２乃至５１２、図５（ｃ）に示す画面のラジオボタン５２２、決定ボタン５２４及び中止ボタン５２６は全て目的オブジェクトに該当する。
【０１０３】
ＡＰＩ−Ｂ２５５は、受け取った画面要素のＩＤ（文字列）を引数としてｇｅｔＥｌｅｍｅｎｔＢｙＩｄを呼び出すことにより対応するオブジェクトを特定し、該オブジェクトのオブジェクト識別子をアクセス要求部３２０を介してイベント処理部３０５へ返す（ステップ８０５）。これをコピー設定の設定画面を示す図５（ｂ）と、図５（ｂ）の設定画面に対応するＤＯＭツリーを示す図６を参照して説明する。例えば図５（ｂ）に示す画面内の用紙サイズ設定ボタン５０６についてオブジェクト識別子の問合せがなされたとする。するとＡＰＩ−Ｂ２５５は、用紙サイズ設定ボタン５０６に対応するオブジェクトとして、図６に示すＤＯＭツリー上のＩＮＰＵＴノード６２５を特定し、そのオブジェクト識別子を返す。  
【０１０４】
次にイベント処理部３０５は、取得したオブジェクト識別子、“ｏｎＣｌｉｃｋ”イベント、及び該イベントが検知された際にコールバックされるべきフックルーチンのアドレスを引数としてＡＰＩ−Ａ２５０を呼び出し、目的オブジェクトの“ｏｎＣｌｉｃｋ”イベントについて、イベントフックルーチンの登録をブラウザ２００に要求する（ステップ８１０）。
【０１０５】
ＡＰＩ−Ａ２５０は、引数として受け取った各値を、図３に示すようなイベント管理テーブルに登録する（ステップ８１５）。そしてフック処理は終了する。なお、図８のフローチャートに示す前処理は、目的オブジェクトを含む画面が表示部１１４に表示される際にイベント処理部３０５の要求により行われ、イベント処理部３０５の要求には、目的オブジェクトのＩＤ（文字列）が含まれる。また前処理は、状態表示制御プログラム３００がブラウザ２００による画面表示を制御するために必要な画面内の全ての目的オブジェクトについて行われる。
【０１０６】
図９は、第１ボタン押下げのイベントが発生した際に実行されるイベント処理の流れの一例を示すフローチャートである。ここで第１ボタンとは、前処理においてイベント管理テーブルに登録されたオブジェクトのうち、その“ｏｎＣｌｉｃｋ”イベントが表示部１１４の画面の遷移を引き起こすオブジェクトのボタンをいう。例えば図５（ａ）や図５（ｂ）に示す画面の各設定ボタン５０２乃至５１２が第１ボタンに該当する。
【０１０７】
処理はステップ９００から開始し、イベント通知部２３５は、第１ボタンの押下げイベントを検知すると、これをＡＰＩ−Ａ２５０に通知する。ＡＰＩ−Ａ２５０は、イベント管理テーブルから第１ボタンの押下げイベントに対応するフックルーチンのアドレスを読み出し、該アドレスを参照して第１ボタンの押下げイベントを処理するイベント処理部３０５を呼び出す（ステップ９０５）。
【０１０８】
押下げのイベントの通知を受けたイベント処理部３０５は、画面遷移制御部３１５に、第１ボタンに対応する設定画面の表示を要求する（ステップ９１０）。なお、イベント処理部３０５は当初より第１ボタンの種類ごとに“ｏｎＣｌｉｃｋ”イベントが発生した際に表示すべき設定画面の情報を持っているものとする。例えば第１ボタンが図５（ａ）に示す画面のコピー設定ボタン５０２である場合、対応する設定画面は図５（ｂ）に示すサブ画面である。また第１ボタンが図５（ｂ）に示す画面の用紙サイズ設定ボタン５０６である場合、対応する設定画面は図５（ｃ）に示すサブ画面である。
【０１０９】
画面遷移制御部３１５は、イベント処理部３０５の要求に応答してＡＰＩ−Ｃ２６５を呼び出し、サブウィンドウのオープンを要求する（ステップ９１５）。呼び出されたＡＰＩ−Ｃ２６５は、ブラウザ制御部２４５に対してサブウィンドウの新規オープンを要求するとともに、オープンされたサブウィンドウにオブジェクト識別子を割り当て、これを画面遷移制御部３１５に返す（ステップ９２０）。
【０１１０】
続いて画面遷移制御部３１５は、ＡＰＩ−Ｃ２６５より返されたサブウィンドウのオブジェクト識別子、第１ボタンに対応する設定画面の構成を記述した設定画面用文書ファイルの保存場所、及び設定画面用文書ファイルの読み込み終了時に呼び出される“ｏｎＬｏａｄ”イベントのフックルーチンのアドレスを引数として、再度ＡＰＩ−Ｃ２６５を呼び出す（ステップ９２５）。
【０１１１】
呼び出されたＡＰＩ−Ｃ２６５は、受け取ったオブジェクト識別子、“ｏｎＬｏａｄ”イベント、及びフックルーチンのアドレスを引数としてＡＰＩ−Ａ２５０を更に呼び出し、サブウィンドウに対する設定画面用文書ファイルの“ｏｎＬｏａｄ”イベントについて、イベントフックルーチンの登録を要求する（ステップ９３０）。ＡＰＩ−Ａ２５０は、ＡＰＩ−Ｃ２６５から引数として受け取った各値を、図３に示すようなイベント管理テーブルに登録する（ステップ９３５）。
【０１１２】
ＡＰＩ−Ｃ２６５はまた、サブウィンドウのオブジェクト識別子と設定画面用文書ファイルの保存場所とを指定して、ブラウザ制御部２４５に設定画面用文書ファイルの読み込みを要求する（ステップ９４０）。ブラウザ制御部２４５は、オブジェクト識別子により識別されるサブウィンドウに対し、保存場所を参照して設定画面用文書ファイルを読み込み、該文書ファイルが表示部１１４に表示されるようブラウザ２００を制御する（ステップ９４５）。そして第１ボタン押下げのイベント処理は終了する。
【０１１３】
図１０は、設定画面用文書ファイルの“ｏｎＬｏａｄ”イベントが発生した際に実行されるイベント処理の流れの一例を示すフローチャートである。なおここでの設定画面用文書ファイルは、ブラウザ２００に読み込まれると、例えば図５（ｂ）に示す画面のように、複合機１００に現在設定されている設定内容を表示する設定画面用文書ファイルである。
【０１１４】
処理はステップ１０００から開始し、イベント通知部２３５は、設定画面用文書ファイルの読み込みイベントを検知すると、これをＡＰＩ−Ａ２５０に通知する。ＡＰＩ−Ａ２５０は、イベント管理テーブルから設定画面用文書ファイルの読み込みイベントに対応するフックルーチンのアドレスを読み出し、該アドレスを参照して設定画面用文書ファイルの読み込みイベントを処理するイベント処理部３０５を呼び出す（ステップ１００５）。
【０１１５】
設定画面用文書ファイルの読み込みイベントの通知を受け取ったイベント処理部３０５は、機器情報管理部３１０に、複合機１００に現在設定されている設定内容を取得するよう要求する（ステップ１０１０）。この際イベント処理部３０５は、読み込まれた設定画面用文書ファイルの種類に応じて問い合わせるべき設定項目を指定する。例えば設定画面用文書ファイルに基づいて表示部１１４に図５（ｂ）に示す設定画面が表示される場合、イベント処理部３０５は機器情報管理部３１０に、用紙サイズ、部数、倍率、及び濃度に関して複合機１００に現在設定されている設定内容を取得するよう要求する。
【０１１６】
イベント処理３０５の要求を受けた機器情報管理部３１０は、指定された設定項目について複合機１００のミドルウェア又はデバイスドライバから複合機１００に現在設定されている設定内容を取得する（ステップ１０１５）。取得された設定内容は、イベント処理３０５の指示により機器情報管理部３１０からアクセス要求部３２０へ渡される。
【０１１７】
アクセス要求部３２０は、イベント処理部３０５の要求に応答して、表示部１１４に表示されている画面内の設定内容を表示すべき画面要素のＩＤ（文字列）を引数としてＡＰＩ−Ｂ２５５を呼び出し、画面要素に対応するＤＯＭオブジェクトのオブジェクト識別子を問い合わせる（ステップ１０２０）。ＡＰＩ−Ｂ２５５は、受け取った画面要素のＩＤ（文字列）を引数としてｇｅｔＥｌｅｍｅｎｔＢｙＩｄを呼び出すことにより上記画面要素に対応するオブジェクトを特定し、該オブジェクトのオブジェクト識別子をアクセス要求部３２０へ返す（ステップ１０２５）。なお、設定内容を表示すべき画面要素のＩＤ（文字列）はイベント処理部３０５の要求に含まれ、画面要素のＩＤ（文字列）が複数ある場合は、問合せは複数回繰り返される。
【０１１８】
上記処理をコピー設定の設定画面を示す図５（ｂ）と、図５（ｂ）の設定画面に対応するＤＯＭツリーを示す図６を参照して説明する。図５（ｂ）に示す設定画面では、セル５１４乃至５２０が、設定内容を表示すべき画面要素である。なお、図５（ｂ）に示す設定画面の画面構成を記述した文書ファイルには、各セルに表示されている文字列は記載されていないことに留意されたい。ここで「Ａ４」の文字列が表示されているセル５１４についてオブジェクト識別子の問合せがなされたとする。するとＡＰＩ−Ｂ２５５は、セル５１４に対応するオブジェクトとして、図６に示すＤＯＭツリー上のテキストノード６０５を特定し、そのオブジェクト識別子を返す。
【０１１９】
図１０に戻って、アクセス要求部３２０は、取得した各オブジェクト識別子と、機器情報管理部３１０から受け取った各設定内容とを引数として再びＡＰＩ−Ｂ２５５を呼び出し、オブジェクト識別子により識別されるＤＯＭツリー上のノードの値の更新を要求する（ステップ１０３０）。
【０１２０】
更新を要求されたＡＰＩ−Ｂ２５５は、引数として受け取った各オブジェクト識別により識別されるＤＯＭツリー上の各ノードについて、状態表示制御プログラム３００によるアクセス要求があったことを履歴管理部２６０に通知する（ステップ１０３５）。通知を受けた履歴管理部２６０は、その内部に保持するアクセス履歴リストに、通知されたオブジェクト識別子を全て記録する（ステップ１０４０）。
【０１２１】
ＡＰＩ−Ｂ２５５はまた、ＤＯＭ処理部２２０に対し、オブジェクト識別子により識別されるＤＯＭツリー上の各ノードの値を設定内容で更新するよう要求する（ステップ１０４５）。上述したように該要求は、オブジェクト識別子ごとに、ＡＰＩ−Ｂ２５５がオブジェクト識別子により識別されるオブジェクトに対し、受け取った設定内容を引数としてｓｅｔＮｏｄｅＶａｌｕｅの呼び出しを繰り返し行うことによりなされる。
【０１２２】
要求を受け取ったＤＯＭ処理部２２０は、要求元に応じて履歴管理部２６０により維持されるアクセス履歴リストを参照し、アクセスの可否を判断する。具体的には、ＤＯＭ処理部２２０は状態表示制御手段３００以外のアクセス要求元に対しノードのリストを参照し、アクセス履歴リストに記録されたノードへのアクセス要求である場合はこれを禁止する。
【０１２３】
ここでは、ＤＯＭツリー上のノードへのアクセス要求がＡＰＩ−Ｂ２５５を介してなされていることから、ＤＯＭ処理部２２０は要求元が状態表示制御手段３００であると判定し、アクセス履歴ノードのリストを参照することなくアクセス要求を許可してアクセス要求の内容を実行する。結果、オブジェクト識別子により識別されるＤＯＭツリー上のノードの値が、対応する設定内容で更新される（ステップ１０５０）。
【０１２４】
図５（ｂ）に示すサブ画面の画面構成を記述した文書ファイルの“ｏｎＬｏａｄ”イベントを例に説明すると、ステップ１０５０の処理により、当初ブランクであった図５のセル５１４乃至５２０に各々「Ａ４」、「1部」、「１００％」、「自動」の文字列が表示される。そして“ｏｎＬｏａｄ”イベント処理は終了する。
【０１２５】
なお、図１０のフローチャートには示していないが、ステップ１０１０において設定画面用文書ファイルの読み込みイベントの通知を受け取ったイベント処理部３０５は、例えばステップ１０５０の処理の後等の適当な位置で、設定画面内の目的オブジェクトについて図８に示すイベントのフック処理を行う。
【０１２６】
図１１は、第２ボタン押下げのイベントが発生した際に実行されるイベント処理の流れの一例を示すフローチャートである。ここで第２ボタンとは、そのボタンの押し下げ操作が設定内容の変更要求を示すオブジェクトをいう。例えば図５（ｃ）に示す画面の決定ボタン５２４が第２ボタンに該当する。
【０１２７】
処理はステップ１１００から開始し、イベント通知部２３５は、第２ボタンの押下げイベントを検知すると、これをＡＰＩ−Ａ２５０に通知する。ＡＰＩ−Ａ２５０は、イベント管理テーブルから第２ボタンの押下げイベントに対応するフックルーチンのアドレスを読み出し、該アドレスを参照して第２ボタンの押下げイベントを処理するイベント処理部３０５を呼び出す（ステップ１１０５）。
【０１２８】
第２ボタンの押下げイベントの通知を受けたイベント処理部３０５は、アクセス要求部３２０に変更内容の取得を要求する（ステップ１１１０）。この際イベント処理部３０５は、アクセス要求部３２０に対し、値を参照すべき表示部１１４の画面内の画面要素のＩＤ（文字列）を渡す。
【０１２９】
アクセス要求部３２０は、イベント処理部３０５の要求に応答して、その値を参照すべき画面要素のＩＤ（文字列）を引数としてＡＰＩ−Ｂ２５５を呼び出し、画面要素に対応するＤＯＭオブジェクトののオブジェクト識別子を問い合わせる（ステップ１１１５）。ＡＰＩ−Ｂ２５５は、受け取った画面要素のＩＤ（文字列）を引数としてｇｅｔＥｌｅｍｅｎｔＢｙＩｄを呼び出すことにより上記画面要素に対応するオブジェクトを特定し、該オブジェクトのオブジェクト識別子をアクセス要求部３２０へ返す（ステップ１１２０）。なお、変更内容を取得するためにその値を参照すべき画面要素が複数ある場合は、問合せは複数回繰り返される。
【０１３０】
続いてアクセス要求部３２０は、取得した各オブジェクト識別子を引数として再びＡＰＩ−Ｂ２５５を呼び出し、オブジェクト識別子により識別されるＤＯＭツリー上のノードの値の参照を要求する（ステップ１１２５）。
【０１３１】
参照を要求されたＡＰＩ−Ｂ２５５は、引数として受け取った各オブジェクト識別により識別されるＤＯＭツリー上の各ノードについて、状態表示制御プログラム３００によるアクセス要求があったことを履歴管理部２６０に通知する（ステップ１１３０）。通知を受けた履歴管理部２６０は、内部に保持するアクセス履歴リストに、通知されたオブジェクト識別子を全て記録する（ステップ１１３５）。
【０１３２】
ＡＰＩ−Ｂ２５５はまた、ＤＯＭ処理部２２０に対し、各オブジェクト識別子により識別されるＤＯＭツリー上の各ノードの値の参照を要求する（ステップ１１４０）。上述したように該要求は、オブジェクト識別子ごとに、ＡＰＩ−Ｂ２５５がオブジェクト識別子により識別されるオブジェクトに対し、ｇｅｔＮｏｄｅＶａｌｕｅの呼び出しを繰り返し行うことによりなされる。
【０１３３】
要求を受け取ったＤＯＭ処理部２２０は、要求元に応じて履歴管理部２６０により維持されるアクセス履歴リストを参照し、アクセスの可否を判断する。具体的には、ＤＯＭ処理部２２０は状態表示制御手段３００以外のアクセス要求元に対しアクセス履歴リストを参照し、アクセス履歴リストに記録されたノードへのアクセス要求である場合はこれを禁止する。
【０１３４】
ここでは、ＤＯＭツリー上のノードへのアクセス要求がＡＰＩ−Ｂ２５５を介してなされていることから、ＤＯＭ処理部２２０は要求元が状態表示制御手段３００であると判定し、アクセス履歴リストを参照することなくアクセスを許可してアクセス要求の内容を実行する。結果、アクセス要求部３２０はＡＰＩ−Ｂ２５５を介して、変更内容を取得する（ステップ１１４５）。
【０１３５】
ステップ１１１０乃至ステップ１１４５までの処理を、コピー設定の設定画面を示す図５（ｃ）と、図５（ｃ）の設定画面に対応するＤＯＭツリーを示す図７を参照して説明する。図５（ｃ）に示す設定画面では、ラジオボタン５２２が変更内容を示し得る画面要素である。ここで一番上のラジオボタン５２２についてアクセス要求部３２０によりオブジェクト識別子の問合せがなされたとする。するとＡＰＩ−Ｂ２５５は、一番上のラジオボタン５２２に対応するオブジェクトとして、図７に示すＤＯＭツリー上のＩＮＰＵＴノード７０５を特定し、そのオブジェクト識別子を返す。
【０１３６】
ここで図７を見るとわかるように、ラジオボタンを利用した設定画面において変更内容を知るには、ＩＮＰＵＴノード７０５ではなくその子ノードである属性ノードの値を調べる必要がある。そこでこのような場合、イベント処理部３０５はアクセス要求部３２０に、まずｃｈｅｃｋｅｄ属性ノードの値がｔｒｕｅであるＩＮＰＵＴノード７０５を見つけ、次にその子ノードであるｖａｌｕｅ属性ノードの値を取得するよう指示する。すると図７に示す例では、最終的にアクセス要求部３２０は変更内容として「Ａ４」の値を得ることになる。なお、チェックボックスを利用した設定画面も同様にして変更内容を取得できる。
【０１３７】
図１１に戻って、アクセス要求部３２０はＡＰＩ−Ｂ２５５を介してＤＯＭ処理部２２０から参照結果を受け取り、変更内容を取得する（ステップ１１５０）。変更内容はイベント処理部３０５の指示によりアクセス要求部３２０から機器情報管理部３１０へ渡される。機器情報管理部３１０は、イベント処理部３０５の指示に基づき、複合機１００のミドルウェア又はデバイスドライバを介して、現在の設定内容を受け取った変更内容で更新し、設定を変更する（ステップ１１５５）。そして、第２ボタン押下げイベント処理は終了する。
【０１３８】
（第２実施例）次に図１２乃至図１５を参照して、表示要求される複合機１００の状態情報が、複合機１００内で発生したエラーの内容である場合のブラウザ２００及び状態表示制御プログラム３００の動作を説明する。
【０１３９】
図１２は複合機１００内でエラーが発生した際に表示部１１４に表示されるエラー通知画面の一例を示す。図１２に示すエラー通知画面は、エラーの内容としてエラーのコード１２００とエラーの対処方法１２０２とを表示する。
【０１４０】
図１３は、  図１２に示すエラー通知画面に対応するＤＯＭツリーの一例を示す。
【０１４１】
図１４は、エラーが発生した際に実行されるイベント処理の流れの一例を示すフローチャートである。処理はステップ１２００から開始し、機器情報管理部３１０は、複合機１００のミドルウェア又はデバイスドライバからエラー発生の通知を受けると、これをイベント処理部３０５に伝える。エラー発生の通知を受けたイベント処理部３０５は、画面遷移制御部３１５に、エラー通知画面の表示を要求する（ステップ１２０５）。    
【０１４２】
画面遷移制御部３１５は、イベント処理部３０５の要求に応答してＡＰＩ−Ｃ２６５を呼び出し、サブウィンドウのオープンを要求する（ステップ１２１０）。呼び出されたＡＰＩ−Ｃ２６５は、ブラウザ制御部２４５に対してサブウィンドウの新規オープンを要求するとともに、オープンされたサブウィンドウに識別子を割り当て、これを画面遷移制御部３１５に返す（ステップ１２１５）。
【０１４３】
次に画面遷移制御部３１５は、ＡＰＩ−Ｃ２６５より返されたサブウィンドウのオブジェクト識別子、エラー通知画面の構成を記述したエラー通知画面用文書ファイルの保存場所、及びエラー通知画面用文書ファイルの読み込み終了時に呼び出される“ｏｎＬｏａｄ”イベントのフックルーチンのアドレスを引数として、再度ＡＰＩ−Ｃ２６５を呼び出す（ステップ１２２０）。  
【０１４４】
呼び出されたＡＰＩ−Ｃ２６５は、受け取ったオブジェクト識別子、“ｏｎＬｏａｄ”イベント、及びフックルーチンのアドレスを引数としてＡＰＩ−Ａ２５０を更に呼び出し、サブウィンドウに対するエラー通知画面用文書ファイルの“ｏｎＬｏａｄ”イベントについて、イベントフックルーチンの登録を要求する（ステップ１２２５）。ＡＰＩ−Ａ２５０は、ＡＰＩ−Ｃ２６５から引数として受け取った各値を、図３に示すようなイベント管理テーブルに登録する（ステップ１２３０）。
【０１４５】
ＡＰＩ−Ｃ２６５はまた、サブウィンドウのオブジェクト識別子とエラー通知画面用文書ファイルの保存場所とを指定して、ブラウザ制御部２４５にエラー通知画面用文書ファイルの読み込みを要求する（ステップ１２３５）。ブラウザ制御部２４５は、オブジェクト識別子により識別されるサブウィンドウに対し、保存場所を参照してエラー通知画面用文書ファイルを読み込み、該文書ファイルが表示部１１４に表示されるようブラウザ２００を制御する（ステップ１２４０）。そしてエラー発生イベント処理は終了する。
【０１４６】
図１５は、エラー通知画面用文書ファイルの“ｏｎＬｏａｄ”イベントが発生した際に実行されるイベント処理の流れの一例を示すフローチャートである。エラー通知画面用文書ファイルは、ブラウザ２００に読み込まれると、例えば図１２に示す画面のように、複合機１００内で発生したエラーの内容を表示する、文書ファイルである。
【０１４７】
処理はステップ１３００から開始し、イベント通知部２３５は、エラー通知画面用文書ファイルの読み込みイベントを検知すると、これをＡＰＩ−Ａ２５０に通知する。ＡＰＩ−Ａ２５０は、イベント管理テーブルからエラー通知画面用文書ファイルの読み込みイベントに対応するフックルーチンのアドレスを読出し、該アドレスを参照してエラー通知画面用文書ファイルの読み込みイベントを処理するイベント処理部３０５を呼び出す（ステップ１３０５）。  
【０１４８】
エラー通知画面用文書ファイルの読み込みイベントの通知を受けとったイベント処理部３０５は、機器情報管理部３１０に、複合機１００内で発生したエラーの内容を問い合わせる（ステップ１３１０）。イベント処理３０５の要求を受けた機器情報管理部３１０は、複合機１００のミドルウェア又はデバイスドライバから、複合機１００内で発生したエラーの内容を取得する（ステップ１３１５）。取得されたエラー内容は、イベント処理３０５の指示により機器情報管理部３１０からアクセス要求部３２０へ渡される。
【０１４９】
アクセス要求部３２０は、イベント処理部３０５の要求に応答して、表示部１１４に表示されている画面内のエラー内容を表示すべき画面要素のＩＤ（文字列）を引数としてＡＰＩ−Ｂ２５５を呼び出し、画面要素に対応するオブジェクトのオブジェクト識別子を問い合わせる（ステップ１３２０）。ＡＰＩ−Ｂ２５５は、受け取った画面要素のＩＤ（文字列）を引数としてｇｅｔＥｌｅｍｅｎｔＢｙＩｄを呼び出すことにより上記画面要素に対応するオブジェクトを特定し、該オブジェクトのオブジェクト識別子をアクセス要求部３２０へ返す（ステップ１３２５）。なお、エラー内容を表示すべき画面要素のＩＤ（文字列）はイベント処理部３０５の要求に含まれ、エラー内容を表示すべき画面要素のＩＤ（文字列）が複数ある場合は、問合せは複数回繰り返される。
【０１５０】
上記処理を、エラー通知画面を示す図１２と、図１２の設定画面に対応するＤＯＭツリーを示す図１３を参照して説明する。図１２に示すエラー通知画面では、セル１２００とセル１２０２が、エラー内容を表示すべき画面要素である。なお、図１２に示すエラー通知画面の画面構成を記述した文書ファイルには、コードと対処の各内容は記載されていないことに留意されたい。ここでエラーコードの文字列が表示されているセル１２００についてオブジェクト識別子の問合せがなされたとする。するとＡＰＩ−Ｂ２５５は、セル１２００に対応するオブジェクトとして、図１３に示すＤＯＭツリー上のテキストノード１３００を特定し、そのオブジェクト識別子を返す。
【０１５１】
図１５に戻って、アクセス要求部３２０は、取得したオブジェクト識別子と、機器情報管理部３１０から受け取ったエラー内容とを引数として再びＡＰＩ−Ｂ２５５を呼び出し、オブジェクト識別子により識別されるＤＯＭツリー上のノードの値の更新を要求する（ステップ１３３０）。
【０１５２】
更新を要求されたＡＰＩ−Ｂ２５５は、引数として受け取った各オブジェクト識別により識別されるＤＯＭツリー上の各ノードについて、状態表示制御プログラム３００によるアクセス要求があったことを履歴管理部２６０に通知する（ステップ１３３５）。通知を受けた履歴管理部２６０は、内部に保持するアクセス履歴リストに、通知されたオブジェクト識別子を全て記録する（ステップ１３４０）。
【０１５３】
ＡＰＩ−Ｂ２５５はまた、ＤＯＭ処理部２２０に対し、各オブジェクト識別子により識別されるＤＯＭツリー上の各ノードの値を対応するエラー内容で更新するよう要求する（ステップ１３４５）。上述したように該要求は、オブジェクト識別子ごとに、ＡＰＩ−Ｂ２５５がオブジェクト識別子により識別されるオブジェクトに対し、受け取ったエラー内容を引数としてｓｅｔＮｏｄｅＶａｌｕｅの呼び出しを繰り返し行うことによりなされる。
【０１５４】
要求を受け取ったＤＯＭ処理部２２０は、要求元に応じて履歴管理部２６０により維持されるアクセス履歴リストを参照し、アクセスの可否を判断する。具体的には、ＤＯＭ処理部２２０は状態表示制御手段３００以外のアクセス要求元に対しアクセス履歴リストを参照し、リストに記録されたノードへのアクセス要求である場合はこれを禁止する。
【０１５５】
ここでは、ＤＯＭツリー上のノードへのアクセス要求がＡＰＩ−Ｂ２５５を介してなされていることから、ＤＯＭ処理部２２０は要求元が状態表示制御手段３００であると判定し、アクセス履歴リストを参照することなくアクセスを許可してアクセス要求の内容を実行する。結果、オブジェクト識別子により識別されるＤＯＭツリー上のノードの値が、対応するエラー内容で更新される（ステップ１３５０）。
【０１５６】
図１２に示すエラー通知画面の画面構成を記述した文書ファイルの“ｏｎＬｏａｄ”イベントを例に説明すると、ステップ１３５０の処理により、当初ブランクであった図１２のセル１２００及びセル１２０２に各々「ＥＲ０００１」、「紙詰まりです。…除いて下さい。」の文字列又は文章が表示される。そして“ｏｎＬｏａｄ”イベント処理は終了する。
【０１５７】
なお、図１５のフローチャートには示していないが、ステップ１３１０においてエラー通知画面用文書ファイルの読み込みイベントの通知を受け取ったイベント処理部３０５は、例えばステップ１３５０の処理の後等の適当な位置で、エラー通知画面内の目的オブジェクトについて図８に示すのと同様のイベントのフック処理を行う。
【０１５８】
なお、表示要求される複合機１００の状態情報が、組込み機器が処理しているタスクのステータスの内容である場合のブラウザ２００及び状態表示制御プログラム３００の動作は、上記説明した表示要求される複合機１００の状態情報が、複合機１００内で発生したエラーの内容である場合ブラウザ２００及び状態表示制御プログラム３００の動作と基本的に同じであるため、本明細書では繰り返しを避けるため説明を省略する。
【０１５９】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。例えば上記説明した実施例では、ＤＯＭ処理部２２０は、状態表示制御プログラム３００以外の要求元からのＤＯＭノードへのアクセス要求については、アクセス要求されるノードがアクセス履歴リストにリストされていることを条件にそのアクセス要求を禁止した。しかしながらＤＯＭ処理部２２０は、これに代えて、状態表示制御プログラム３００以外の要求元からのＤＯＭノードへのアクセス要求については、アクセス要求されるノードが、過去に更新を目的として状態表示制御プログラム３００からアクセスされたノードであることを条件にそのアクセス要求を禁止してもよい。
【０１６０】
特許請求の範囲、明細書、および図面中において示した装置、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【図１】
2011008490.tif 000003
【図２】
2011008490.tif 000004
【図３】
2011008490.tif 000005
【図４】
2011008490.tif 000006
【図５】
2011008490.tif 000007
【図６】
2011008490.tif 000008
【図７】
2011008490.tif 000009
【図８】
2011008490.tif 000010
【図９】
2011008490.tif 000011
【図１０】
2011008490.tif 000012
【図１１】
2011008490.tif 000013
【図１２】
2011008490.tif 000014
【図１３】
2011008490.tif 000015
【図１４】
2011008490.tif 000016
【図１５】
2011008490.tif 000017