(57)【特許請求の範囲】
【請求項１】
マークアップ言語で記述された文書データを含むコンテンツデータを処理するデータ処理部を備える情報処理装置であって、
前記データ処理部が実行可能な定義済みスクリプト以外の１以上の未定義スクリプトを実行するために追加して実装された１以上のスクリプト実行部と、
前記データ処理部が検知したイベントを処理するために生成したスクリプトの実行要求が前記未定義スクリプトの実行要求である場合に、前記データ処理部から当該未定義スクリプトの実行要求を受け付け、当該未定義スクリプトの実行要求を前記１以上のスクリプト実行部へ順に送信して実行可能であるか否かを問い合わせ、実行可能な前記スクリプト実行部に当該未定義スクリプトを実行させるスクリプト実行管理部とを含み、
前記１以上のスクリプト実行部は、階層構造を形成し、前記階層構造の上位のスクリプト実行部から下位のスクリプト実行部へ順に前記未定義スクリプトの実行要求を送信して実行可能であるか否かを問い合わせ、実行可能な前記下位のスクリプト実行部に当該未定義のスクリプトを実行させる、情報処理装置。
【請求項２】
前記スクリプト実行部からの前記データ処理部への処理要求を受けて呼び出され、前記処理要求に対応し前記データ処理部が実行可能な実行要求を当該データ処理部へ送信するインタフェース部をさらに備える、請求項１に記載の情報処理装置。
【請求項３】
マークアップ言語で記述された文書データを含むコンテンツデータを処理するデータ処理部を備え、印刷要求に応じて印刷処理を実行する画像形成装置であって、
前記データ処理部が実行可能な定義済みスクリプト以外の１以上の未定義スクリプトを実行するために追加して実装された１以上のスクリプト実行部と、
前記データ処理部が検知したイベントを処理するために生成したスクリプトの実行要求が前記未定義スクリプトの実行要求である場合に、前記データ処理部から当該未定義スクリプトの実行要求を受け付け、当該未定義スクリプトの実行要求を前記１以上のスクリプト実行部へ順に送信して実行可能であるか否かを問い合わせ、実行可能な前記スクリプト実行部に当該未定義スクリプトを実行させるスクリプト実行管理部とを含み、
前記１以上のスクリプト実行部は、階層構造を形成しており、前記階層構造の上位のスクリプト実行部から下位のスクリプト実行部へ順に前記未定義スクリプトの実行要求を送信して実行可能であるか否かを問い合わせ、実行可能な前記下位のスクリプト実行部に当該未定義のスクリプトを実行させる、画像形成装置。
【請求項４】
前記スクリプト実行部からの前記データ処理部への処理要求を受けて呼び出され、前記処理要求に対応し前記データ処理部が実行可能な実行要求を当該データ処理部へ送信するインタフェース部をさらに備える、請求項３に記載の画像形成装置。
【請求項５】
マークアップ言語で記述された文書データを含むコンテンツデータを処理するデータ処理部を備える情報処理装置または画像形成装置により実行される情報処理方法であって、
前記データ処理部が、検知したイベントを処理するために生成したスクリプトの実行要求が実行可能な定義済みスクリプトの実行要求であるか否かを判定するステップと、
前記定義済みスクリプトでないと判定された場合に、前記情報処理装置または画像形成装置が備えるスクリプト実行管理部へ当該定義済みスクリプトでない未定義スクリプトの実行要求を送信するステップと、
前記スクリプト実行管理部が、前記未定義スクリプトの実行要求を、１以上の未定義スクリプトを実行するために追加して実装された１以上のスクリプト実行部へ順に送信して実行可能であるか否かを問い合わせ、実行可能な前記スクリプト実行部に当該未定義スクリプトを実行させるステップとを含み、
前記１以上のスクリプト実行部は、階層構造を形成しており、前記未定義スクリプトを実行させるステップでは、前記階層構造の上位のスクリプト実行部から下位のスクリプト実行部へ順に前記未定義スクリプトの実行要求を送信して実行可能であるか否かを問い合わせ、実行可能な前記下位のスクリプト実行部に当該未定義のスクリプトを実行させる、情報処理方法。
【請求項６】
前記スクリプト実行部からの前記データ処理部への処理要求を受けて呼び出されるインタフェース部が、前記処理要求に対応し前記データ処理部が実行可能な実行要求を当該データ処理部へ送信するステップをさらに含む、請求項５に記載の情報処理方法。
【請求項７】
請求項５または６に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機能拡張に容易かつ迅速に対応できる情報処理装置および画像形成装置、その機能拡張された装置により実行される情報処理方法、その方法を実行するためのコンピュータ可読なプログラムおよび記録媒体に関する。
【背景技術】
【０００２】
インターネット上で公開されている文書であるＷｅｂページは、ＨＴＭＬ（Hyper Text Markup Language）等のマークアップ言語を使用して作成され、タグという命令を使用して、ＨＴＭＬ文書の構造を指定し、文字の大きさや色を変え、画像を表示させている。このＨＴＭＬにより記述された文書がＨＴＭＬ文書であり、このＨＴＭＬ文書はＨＴＭＬファイルとしてこれを提供するためのコンテンツサーバ等に保存されている。
【０００３】
ＨＴＭＬ文書を閲覧する場合、上記のサーバ等にアクセスし、そのサーバ等からＨＴＭＬファイルを取得し、そのファイルを開くためにＷｅｂブラウザというアプリケーションソフトウェアが使用される。Ｗｅｂブラウザは、ＨＴＭＬファイルのタグを解釈し、タグで指定された通りに画面上に表示するように構成されている。
【０００４】
Ｗｅｂブラウザは、上記のＨＴＭＬ文書の表示のほか、Ｊａｖａｓｃｒｉｐｔ（登録商標）というオブジェクト指向のスクリプト言語を使用することにより、動的な表示である、アクセスした時間帯によって異なったメッセージを表示させたり、アラート（警告のダイアログボックス）を表示させたりすることができる。
【０００５】
Ｊａｖａｓｃｒｉｐｔ（登録商標）は、関連するデータ（属性）の集合と、そのデータの集合に対する手続き（メソッド）とから構成されるオブジェクトの集まりとしてプログラムを構成するオブジェクト指向プログラミングをサポートするプログラミング言語である。このＪａｖａｓｃｒｉｐｔ（登録商標）は、scriptタグを用いて記述され、そのタグには属性値を指定して属性を付けることができ、属性を付けることにより具体的な指示を追加したり、より細かく背景色や文字の修飾等の効果を指定することができる。このようなＪａｖａｓｃｒｉｐｔ（登録商標）を解釈し実行するために、Ｗｅｂブラウザは、そのＪａｖａｓｃｒｉｐｔ（登録商標）を解釈し実行するためのコードが実装される。
【０００６】
Ｊａｖａｓｃｒｉｐｔ（登録商標）でのアプリケーション開発は、テキストベースであるため、デバイス用のソフトウェア開発キット（ＳＤＫ）やＪａｖａ（登録商標）アプレット等を使用して開発を行うのに比較して、容易に行うことができる。従来、Ｗｅｂブラウザに、上述したＪａｖａｓｃｒｉｐｔ（登録商標）を解釈し実行するためのコードを実装するために、ハードコーディングが採用されている。ハードコーディングとは、特定の動作環境で動作させることを目的とした処理やデータをソースコードに記述するプログラミング方式のことである。
【０００７】
ＰＣや画像形成装置等に実装されたＷｅｂブラウザにおいて、独自のＪａｖａｓｃｒｉｐｔ（登録商標）を実装し、装置固有の動作をさせたい場合がある。例えば、Ｊａｖａｓｃｒｉｐｔ（登録商標）から装置のログインユーザ名やシリアルナンバーを取得し、それに応じた任意の処理を行う場合や、Ｊａｖａｓｃｒｉｐｔ（登録商標）により読み取りや印刷を実行する場合等である。この装置固有の動作を実現するために、独自のＪａｖａｓｃｒｉｐｔ（登録商標）を解釈し実行するためのコードを作成し、Ｗｅｂブラウザにそのコードをハードコーディングにより実装することができる。
【０００８】
Ｗｅｂブラウザに独自のＪａｖａｓｃｒｉｐｔ（登録商標）を解釈し実行するためのコードを実装した装置として、例えば、ＷｅｂサーバからＷｅｂブラウザによって取得されたＨＴＭＬ文書には、Ｗｅｂブラウザが解釈する際に、埋め込まれたスクリプトがスクリプトインタプリタにロードされて実行され、その結果として、そのＷｅｂブラウザが組み込まれた特定の組み込み装置に動的に適応した文書が、クライアントサイド処理で生成されて表示される装置が提案されている（特許文献１参照）。
【０００９】
このように、組み込み装置のＷｅｂブラウザが独自のＪａｖａｓｃｒｉｐｔ（登録商標）の実行機能を提供することで、組み込みブラウザからのアクセスに対応して動的なコンテンツをサーバ側の対応によって簡易に柔軟に拡張できるサービスとして供給することを可能にし、クライアント側情報のプライバシーやセキュリティーが守られる制御方法を提供することができる。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述したように、従来の装置や方法では、新たに独自のＪａｖａｓｃｒｉｐｔ（登録商標）の属性やメソッドを、情報処理装置や画像形成装置が有するＷｅｂブラウザに追加する場合、そのＷｅｂブラウザのＪａｖａｓｃｒｉｐｔ（登録商標）を解析し実行するためのコードを追加、変更する必要がある。これでは、Ｗｅｂブラウザ自体を変更し、変更の影響を受ける範囲について評価するための工数（作業量）が必要となってしまい、Ｊａｖａｓｃｒｉｐｔ（登録商標）の機能の追加に柔軟に対応できないという問題があった。
【００１１】
また、Ｗｅｂブラウザは、不具合対応や、高速化、新しいアーキテクチャの実現等のために日々バージョンアップされており、それに伴い、装置に実装されるＷｅｂブラウザをバージョンアップしたい場合がある。そのたびにＷｅｂブラウザに対し、Ｊａｖａｓｃｒｉｐｔ（登録商標）を解釈し実行するためのコードを実装し直すのでは、Ｗｅｂブラウザの変更に迅速に対応することができない。
【００１２】
そこで、このような装置に実装されたＷｅｂブラウザに対し、Ｗｅｂブラウザ自体を変更することなく、機能拡張に容易かつ迅速に対応できる装置の提供が望まれていた。
【課題を解決するための手段】
【００１３】
本発明は、上記課題に鑑み、独自のスクリプトをブラウザにハードコーディングで組み込むのではなく、そのスクリプトの実装をプラグインで実現し、そのプラグインをＣＯＭ（Component Object Model）インタフェースとして実装する。ＣＯＭは、部品化されたプログラムを作成し、利用するための基盤となる技術仕様であり、ＣＯＭインタフェースは、このＣＯＭに基づきデータのやりとりができるプログラム部品である。このＣＯＭインタフェースは、開発に使った言語やコンポーネントのある場所に寄らず、どの言語からでも、どこからでも利用することができるという特徴を有する。このため、ブラウザに依存することなく、プラグインを呼び出す環境が変わっても、プラグインを修正する必要がないという利点を有する。
【００１４】
プラグイン側からブラウザに対して処理を要求する場合、例えば、ダイアログの表示要求やページ内のスクリプト関数の実行要求等、ブラウザ側が変更されれば、プラグイン側もその要求を行う処理を変更しなければならない。これを解決するために、ブラウザへプラグインが処理を要求するためのインタフェースをライブラリとしてプラグインに提供する。これにより、ブラウザ側の処理の変更差異をライブラリにより吸収することができるため、ブラウザがバージョンアップ等により変更されても、プラグインの修正を行う必要がなくなる。
【００１５】
したがって、上記の課題は、これらの構成を実質的に採用する本発明の情報処理装置および画像形成装置を提供することにより解決することができる。
【００１６】
本発明の情報処理装置および印刷要求に応じて印刷処理を実行する画像形成装置は、マークアップ言語で記述された文書データを含むコンテンツデータを処理するデータ処理部を備える。そして、これらの装置は、そのデータ処理部が実行可能な定義済みスクリプト以外の１以上の未定義スクリプトを実行するために追加して実装された１以上のスクリプト実行部と、データ処理部が、検知したイベントを処理するために生成したスクリプトの実行要求が未定義スクリプトの実行要求である場合に、データ処理部から当該未定義スクリプトの実行要求を受け付け、当該未定義スクリプトの実行要求を１以上のスクリプト実行部へ順に送信して実行可能であるか否かを問い合わせ、実行可能な前記スクリプト実行部に当該未定義スクリプトを実行させるスクリプト実行管理部とを含む構成とされる。
【００１７】
上記のプラグインは、スクリプト実行管理部が管理するスクリプト実行部として容易に追加または削除することができ、機能拡張するために追加された未定義スクリプトであってもその実装したスクリプト実行部により実行することができる。
【００１８】
上記の１以上のスクリプト実行部は、階層構造を形成しており、その階層構造の上位のスクリプト実行部から下位のスクリプト実行部へ順に上記の未定義スクリプトの実行要求を送信して実行可能であるか否かを問い合わせ、実行可能な下位のスクリプト実行部に当該未定義のスクリプトを実行させるように構成される。このため、実行後、その下位のスクリプト実行部は、実行結果を上位のスクリプト実行部へ、上位のスクリプト実行部はスクリプト実行管理部へ、スクリプト実行管理部はデータ処理部へ通知する。
【００１９】
また、スクリプト実行部からのデータ処理部への処理要求を受けて呼び出され、当該処理要求に対応しデータ処理部が実行可能な実行要求を当該データ処理部へ送信するインタフェース部をさらに備える。これにより、データ処理部がバージョンアップ等により更新されたとしても、スクリプト実行部を対応させて更新する必要がなくなり、手間を省くことができる。
【００２０】
本発明では、情報処理装置および画像形成装置のほか、これらの装置により実行される情報処理方法、その方法を実行するためのコンピュータ可読なプログラム、そのプログラムが記録された記録媒体も提供することが可能である。
【図面の簡単な説明】
【００２１】
【図１】本発明の情報処理装置および画像形成装置を含むネットワーク環境を例示した図。
【図２】本発明の情報処理装置および画像形成装置のコンポーネント構成図。
【図３】独自のスクリプトを実行した場合の処理の流れを示したシーケンス図。
【図４】確認アラートを表示する処理の流れを示したシーケンス図。
【図５】装置の状態変化が起こった場合の処理の流れを示したシーケンス図。
【図６】スクリプトパーサで行われる処理の流れを示したフローチャート。
【図７】プラグインマネージャで行われる処理の流れを示したフローチャート。
【図８】プラグインマネージャとプラグインの各クラスとを含むクラス構成図。
【図９】オブジェクトの階層構造を例示した図。
【図１０】ユーティリティが行うＷｅｂブラウザへの処理要求およびＷｅｂブラウザからの通知を受け付ける処理のプログラミング言語による記述例を示した図。
【発明を実施するための形態】
【００２２】
図１は、本発明の情報処理装置および画像形成装置を含むネットワーク環境を例示した図である。図１に示す情報処理装置は、ＰＣ１００とされ、画像形成装置は、ＭＦＰ（Multi Function Peripheral）１１０とされ、ネットワーク１２０にこれらのほか、外部サーバ１３０、１４０が接続されている。
【００２３】
ＰＣ１００は、ＯＳや各種アプリケーションを実行し、装置全体の制御や各種の演算処理を行うＣＰＵを備える。例えば、ＣＰＵは、ネットワーク１２０を介した通信を行い、ユーザから入力を受け付け、表示装置に演算結果等を出力し、コンテンツ再生、リッピング、記憶装置へのデータ等の記憶、記憶装置からのデータ等の読み出し、データ等の管理を行う。
【００２４】
ＰＣ１００は、上述した通信を行うために通信インタフェースを備え、また、ユーザからの入力を受け付けるために入力装置を備える。通信インタフェースは、ＬＡＮ端子、モデム、無線ＬＡＮを実現するためのアンテナおよび送受信機を含むことができる。入力装置としては、文字や数字を入力するためのキーボード、画面に表示されるカーソルの移動、ウィンドウやアイコン等の選択、ボタンの押下を実現するためのマウスのほか、指やスタイラス等を使用して画面上のカーソルの移動やアイコンの選択等を実現するタッチパネルを採用することができる。また、上述した表示装置として、液晶ディスプレイやＣＲＴ等を採用することができる。さらに、記憶装置として、ＲＯＭ、ＲＡＭ、ＨＤＤ等を備えることができ、外部記憶装置としてのＳＤカード、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等に記憶するためにＳＤカードスロット、ＣＤドライブ、ＤＶＤドライブ等を備えることができる。
【００２５】
そのほか、ＰＣ１００は、音声を出力するためのスピーカ、ＡＶ機器や他の機器を接続するためのＩＥＥＥ１３９４デバイスやＵＳＢデバイス等を備えることができる。
【００２６】
ＭＦＰ１１０は、ＰＣ１００と同様、ＣＰＵ、記憶装置としてのＲＯＭ、ＲＡＭ、ＨＤＤ、表示装置、入力装置、通信インタフェース、スピーカ、ＩＥＥＥ１３９４デバイス、ＵＳＢデバイス、ＳＤカードスロット等を備える。ＭＦＰ１１０は、表示装置および入力装置として、操作パネルを備え、入力装置として複数のキーを備える。
【００２７】
また、ＭＦＰ１１０は、印刷、ＦＡＸ送受信、コピー、画像読み取りを実現するために画像読み取り装置、プリンタを備えている。画像読み取り装置は、外光を遮断するためのカバーと、そのカバーの下の、原稿を載せるための透明なプラスチック製あるいはガラス製の原稿台と、原稿台の下から原稿台を通して光を照射する光源と、原稿に反射した光を受光し、電気信号に変換する撮像素子と、変換された電気信号がアナログ信号であるため、このアナログ信号をデジタル信号へ変換するためのＡＤコンバータとを備えている。
【００２８】
ここでは、反射型の画像読み取り装置の構成について説明したが、画像読み取り装置は透過型であってもよく、透過型の場合、光源がカバーに設けられ、カバー側から光を照射し、原稿および原稿台を透過した光を撮像素子により受光することができる。なお、撮像素子は、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等を採用することができ、原稿台を通した光は、直接に撮像素子に受光されるもののほか、１または複数のミラーにより反射されてから、イメージセンサに入射される構成であってもよい。
【００２９】
ＭＦＰ１１０で採用されるプリンタは、レーザプリンタとすることができ、ＰＣ１００から送られてきた印刷イメージデータを、ＭＦＰ１１０が備えるＣＰＵによりメモリ上に展開し、そのイメージを、レーザを用いて形成する。すなわち、このプリンタは、印刷イメージデータを基に書き込み光としてのレーザを照射する露光装置と、レーザが照射されることにより表面にそのイメージと同様の潜像が形成される感光体と、その感光体を、レーザが照射される前に帯電させる帯電ユニットと、潜像が形成された感光体にトナーを付着させ、現像する現像ユニットと、紙を給紙する給紙ユニットと、感光体の回転により表面に形成されたトナー像を、給紙された紙上に転写させる転写ユニットと、紙上に転写されたトナー像を、熱および圧力を加えて紙に定着させる定着ユニットと、トナー像が定着された紙を排紙する排紙ユニットとを備えている。
【００３０】
プリンタは、そのほか、感光体上に残ったトナーを除去するためのクリーニングユニット、紙を所定の方向へ搬送するための複数のローラ等を備えることができる。
【００３１】
ＭＦＰ１１０は、原稿を自動で原稿台上へ搬送するために原稿自動送り装置（ＡＤＦ）、高速な画像処理が必要であることから、画像処理専用の回路であるＡＳＩＣ等をさらに備えることができる。
【００３２】
ＭＦＰ１１０は、原稿を読み取る場合は、上記の画像読み取り装置を使用して原稿を読み取ることができる。また、印刷する場合は、送られてきた印刷データに基づき、上記プリンタにより感光体の表面にレーザで潜像を形成し、それを現像し、紙に転写および定着させることにより、印刷することができる。コピーの場合は、画像読み取り装置を使用して原稿を読み取り、その読み取ったデータに基づきプリンタにより印刷出力することができる。
【００３３】
ＦＡＸ送信する場合は、画像読み取り装置により原稿を二次元情報である線あるいは点に分解して読み取り、モデムを利用してデジタル変調し、電話網等の通信回線へと送出することができる。一方、ＦＡＸ受信する場合は、通信回線を介して送信された信号を、モデムを利用して復調し、原稿を復元することができる。
【００３４】
なお、画像読み取り装置で読み取ったデータ、そのデータを圧縮、変換等した後のデータ、ＦＡＸ受信したデータは、メモリ等の記憶装置に記憶することができる。
【００３５】
ネットワーク１２０は、社内等の限られた範囲で構築されるイントラネット、範囲が限定されないインターネットを挙げることができる。外部サーバ１３０、１４０は、上述したＰＣ１００と同様、ＣＰＵ、記憶装置、通信インタフェースを備える構成とされ、表示装置、入力装置を備えていてもよい。
【００３６】
外部サーバ１３０、１４０は、マークアップ言語で記述された文書データを含むコンテンツデータを提供する。ここで、マークアップ言語とは、文章の段落やフォントサイズ等の指定や、画像や他の文書へのリンクをタグと呼ばれる文字列を使用して記述する記述言語である。このマークアップ言語としては、ＨＴＭＬ（Hyper Text Markup Language）等が使用される。このＨＴＭＬにより記述されるＨＴＭＬファイルを含むコンテンツデータにＷｅｂページがある。外部サーバ１３０、１４０は、ＰＣ１００やＭＦＰ１１０からの要求に応答して、このＷｅｂページを提供することができる。ＰＣ１００やＭＦＰ１１０は、このＷｅｂページの閲覧を外部サーバ１３０、１４０へ要求し、Ｗｅｂページの提供を受けるためにＷｅｂブラウザが実装される。
【００３７】
ＰＣ１００およびＭＦＰ１１０は、Ｗｅｂブラウザから外部サーバ１３０、１４０へＷｅｂページを要求し、外部サーバ１３０、１４０から送信されたＷｅｂページのＨＴＭＬファイルを解釈し、ブラウザ画面上にＷｅｂページの内容を表示することができる。外部サーバ１３０、１４０は、Ｗｅｂブラウザからの要求に応答するため、アプリケーションソフトウェアとして、Ｗｅｂサーバを実装する。
【００３８】
ＰＣ１００およびＭＦＰ１１０が実装するＷｅｂブラウザと、外部サーバ１３０、１４０が実装するＷｅｂサーバとの間の通信は、ＨＴＴＰ（Hypertext Transfer Protocol）を通信プロトコルとして使用し、ＨＴＭＬファイルを含むコンテンツデータの送受信が行われる。
【００３９】
なお、ＰＣ１００およびＭＦＰ１１０は、アプリケーションソフトウェアとしてのＷｅｂブラウザを動作させるために、入出力機能やメモリの管理等、アプリケーションソフトウェアから共通して利用される基本的な機能を提供し、装置全体を管理する基本的なソフトウェアであるＯＳ（Operating System）を実装する。
【００４０】
ＭＦＰ１１０においては、アプリケーションソフトウェアとしてそのほか、印刷ジョブを実行させるプリンタアプリ、コピージョブを実行させるコピーアプリ、ファックス送受信ジョブを実行させるファックスアプリ、スキャンジョブを実行させるスキャナアプリを備える。これらのアプリとＯＳとの間のインタフェースとして、ＡＰＩ（Application Programming Interface）、Ｊａｖａ（登録商標）仮想マシン（ＪＶＭ）等を備えることができる。ＡＰＩは、プリンタアプリ等のアプリケーションプログラムを記述する際、ＯＳの機能を呼び出すためのインタフェースであり、ＪＶＭは、Ｊａｖａ（登録商標）バイトコードをＯＳ上で動作可能なネイティブコードに変換して実行するものである。このため、ＪＶＭを実装する場合、アプリケーションソフトウェアは、Ｊａｖａ（登録商標）のバイトコードによって実装されたものとすることができる。
【００４１】
図２は、図１に示す情報処理装置および画像形成装置のコンポーネント構成図である。これらの装置は、コンポーネントとして、Ｗｅｂブラウザ２００、プラグインマネージャ２１０、プラグイン２２０、ユーティリティ２３０、デバイスＳＤＫ２４０を備えている。また、Ｗｅｂブラウザ２００は、イベントプロセス２０１、ＵＩ２０２、スクリプトパーサ２０３を備えている。
【００４２】
このＷｅｂブラウザ２００は、ＣＰＵにより実行され、コンテンツデータをＷｅｂサーバに対して要求し、Ｗｅｂサーバから提供されたコンテンツデータを表示する等のデータ処理を行うことから、ＣＰＵにより実行されてデータ処理部として機能する。また、プラグインマネージャ２１０、プラグイン２２０、ユーティリティ２３０、デバイスＳＤＫ２４０も同様に、ＣＰＵにより実行され、各々の処理を行うことから、ＣＰＵにより実行されてスクリプト実行管理部、スクリプト実行部、インタフェース部、デバイス制御部としてそれぞれ機能する。実際の処理は、これらデータ処理部、スクリプト実行管理部、スクリプト実行部、インタフェース部、デバイス制御部が実行するが、説明を容易にし、内容の理解をしやすくするために、以下、Ｗｅｂブラウザ２００、プラグインマネージャ２１０、プラグイン２２０、ユーティリティ２３０、デバイスＳＤＫ２４０の用語を用いて説明する。
【００４３】
Ｗｅｂブラウザ２００は、一定の書式によりコンテンツデータを指し示す識別子であるＵＲＩ（Uniform Resource Identifier）やＨＴＴＰに基づき、外部サーバ１３０、１４０に実装されるＷｅｂサーバと通信し、目的のコンテンツデータを取得し、その取得したコンテンツデータを、種類に応じて解析し、その解析結果を基に、テキストや画像等を適切な位置に配置したり、文字サイズを調整したり、色を付ける等して表示する。
【００４４】
ＵＩ２０２は、Ｗｅｂブラウザ２００において、ユーザからのデータ取得の指示を入力として受け付け、また、取得したコンテンツデータに含まれる文字や画像等を適切な位置に配置し、文字調整等されたものの表示を行う。Ｗｅｂブラウザ２００は、このコンテンツデータに含まれるＨＴＭＬ文書を解析し、ＵＩ２０２に対しレイアウト指示を行うために、図示しないＨＴＭＬパーサを備えることができる。
【００４５】
イベントプロセス２０１は、ユーザ入力等により発生するイベントを処理する。また、イベントプロセス２０１は、Ｗｅｂブラウザ２００の機能拡張のためにハードコーディングにより記述されたＷｅｂブラウザ２００に予め定義されている定義済みスクリプト、例えば、任意の入力キーが押下された場合に実行されるスクリプト等のほか、装置に設定されている値の取得や値の設定を行うためのスクリプト、セキュリティや重要な処理に関するスクリプト等のＷｅｂブラウザ２００に予め定義されていないスクリプト、すなわち機能拡張のために独自に作成され、装置に追加されたスクリプトや変更されたスクリプトの実行要求を、それらの検知したイベントを処理するために生成し、スクリプトパーサ２０３へ送る。
【００４６】
スクリプトは、操作対象となるオブジェクトについての性質や設定に関する付加情報としての属性と、そのオブジェクトに対する操作を規定するメソッドとを含んで構成される。このため、Ｗｅｂブラウザ２００に定義されていない未定義スクリプトとしては、この属性やメソッドの追加や変更したものが挙げられる。未定義スクリプトを実行するためには、そのスクリプトを解釈し実行するコードが必要となるが、そのコードが、機能を追加するためのプログラムであるプラグイン２２０として提供され、装置にプラグイン２２０として実装される。
【００４７】
イベントプロセス２０１は、ユーザからの値の取得、設定、キー入力等を受け付けた場合、また、セキュリティ上や処理の種類に応じて確認アラート（警告や注意）を表示する必要がある場合等、イベントが発生した場合に、そのイベントに対応するスクリプトの実行要求を生成し、それをスクリプトパーサ２０３へ送る。例えば、ユーザが任意の値を設定する場合であれば、ユーザによる値の入力によりイベントが発生し、そのイベント発生を受けてその値を含む設定要求を生成し、それをスクリプトパーサ２０３へ送る。
【００４８】
イベントプロセス２０１からスクリプトの実行要求を受け付けると、スクリプトパーサ２０３は、そのスクリプトの実行要求がＷｅｂブラウザ２００に定義されているものであるか、未定義のものであるかを判断する。その実行要求で要求される処理がスクリプト言語によりハードコーディングされていて、既に定義されているものである場合、スクリプトパーサ２０３は、その要求がその処理を要求するものと解釈し、その処理を実行することができる。しかしながら、未定義スクリプトの実行要求である場合、スクリプトパーサ２０３は、それを解釈し、実行するコードが存在しないため、解釈および実行することはできず、プラグインマネージャ２１０へそのスクリプトの実行を要求する。
【００４９】
プラグインマネージャ２１０は、未定義スクリプトを実行するためのプラグイン２２０を複数管理しており、スクリプトパーサ２０３から受け付けたスクリプト実行要求を基に、そのスクリプトに対応するプラグイン、すなわちそのスクリプトを実行することができるプラグインを探し、その対応するプラグインへそのスクリプトの実行を要求する。
【００５０】
プラグイン２２０は、プラグインの開発言語に依存せず、プラグインを呼び出す環境が変わっても利用可能にするために、ＣＯＭ（Component Object Model）インタフェースとして実装される。これにより、プラグインを修正する必要がなくなり、様々なプログラミング言語でプラグインの開発を行うことが可能とされる。また、実装の際、プラグインマネージャ２１０に管理されるように、プラグイン２２０を識別するための識別情報がプラグインマネージャ２１０に登録される。
【００５１】
プラグイン２２０は、装置のリソースにアクセスするために、デバイスＳＤＫ２４０を呼び出す。なお、デバイスＳＤＫ２４０は、メモリに記憶されている値の取得やその設定、入力キーの押下の検知等を行うものである。
【００５２】
プラグイン２２０は、Ｗｅｂブラウザ２００に対し、画面表示等の処理を要求するために、Ｗｅｂブラウザ２００から提供されたユーティリティ２３０を呼び出す。ユーティリティ２３０は、プラグイン２２０がＷｅｂブラウザ２００へ処理を要求するためのインタフェースであって、ライブラリとして実装される。このインタフェースは、様々なプログラムから利用できるように部品化した複数のプログラム部品からなるライブラリであることから、複数のプラグインから利用可能とされる。これにより、プラグイン２２０から要求されたユーティリティ２３０は、その要求された処理を、Ｗｅｂブラウザ２００がバージョンアップ等され、更新されたとしても、更新後のＷｅｂブラウザ２００へ適切に通知することができる。
【００５３】
Ｗｅｂブラウザ２００では、その通知をイベントプロセス２０１が受け付け、ＵＩ２０２に対し、所望の表示を指示することができる。
【００５４】
ユーザは、自己が保有あるいは管理するＰＣやＭＦＰに対し、装置固有の動作をさせたい場合がある。例えば、上記のようにスクリプトとしてのＪａｖａｓｃｒｉｐｔ（登録商標）から装置のログインユーザ名やシリアルナンバーを取得し、それに応じた任意の処理を行う場合や、Ｊａｖａｓｃｒｉｐｔ（登録商標）の実行により読み取りや印刷を行う場合等である。本発明の装置では、未定義スクリプトをプラグイン２２０という形で容易に追加し、実装することができるため、Ｗｅｂブラウザ２００についてその未定義スクリプトを解釈し実行するコードを実装し直す必要がなく、Ｗｅｂブラウザ２００のバージョンアップ等の変更に迅速に対応することができる。
【００５５】
Ｗｅｂブラウザ２００にスクリプトの属性やメソッドを追加する場合、その追加したＷｅｂブラウザ２００に定義されていない未定義スクリプトをプラグイン２２０として実装するが、複数のアプリケーションソフトウェアが共通して利用するために部品化されたＤＬＬ（Dynamic Link Library）ファイルとして実装することができる。
【００５６】
以下、上記の未定義スクリプトをプラグインとして実装した情報処理装置あるいは画像形成装置が行う処理について、図面を参照しながら詳細に説明する。図３は、その装置がある値を取得あるいは設定する処理の基本的な流れを示したシーケンス図である。取得する値としては、システム情報やステータス情報としての各値やパラメータ等を挙げることができる。また、装置への値の設定については、それらの値やパラメータの設定を挙げることができる。実行するスクリプト関数の設定であってもよい。なお、この値の取得あるいは設定する処理は未定義スクリプトを実行することにより実現される処理である。
【００５７】
まず、Ｗｅｂブラウザ２００のイベントプロセス２０１は、ユーザから値の取得あるいは設定の要求を受け付けると、その処理を実現するために未定義スクリプトの実行要求を生成し、その実行要求をスクリプトパーサ２０３に送る。スクリプトパーサ２０３は、それを受け取ると、そのスクリプトがＷｅｂブラウザ２００に定義されているか否かを判断する。ここではこのスクリプトはＷｅｂブラウザ２００に定義されていないため、スクリプトパーサ２０３は、未定義スクリプトと判断し、プラグインマネージャ２１０へそのスクリプトの実行を要求する。プラグインマネージャ２１０は、そのスクリプトに対応するプラグイン２２０を探し、そのプラグイン２２０に対してその実行を要求する。プラグイン２２０は、その実行要求を受け付けると、デバイスＳＤＫ２４０に対し、そのスクリプトにより要求された値の取得や設定を要求する。
【００５８】
図４は、未定義スクリプトを実行する処理の一例として、確認アラートを表示する処理を実行する処理の流れを示したシーケンス図である。この確認アラート（警告や注意）は、例えば、セキュリティや重要な処理に関係するスクリプトの実行を行う前に表示することができる。
【００５９】
イベントプロセス２０１は、セキュリティや重要な処理の実行の要求を受け付けたことに応答して、その処理を実現するためにスクリプトの実行要求を生成し、この実行要求をスクリプトパーサ２０３へ送る。スクリプトパーサ２０３は、受け取った実行要求から、実行対象のスクリプトがＷｅｂブラウザ２００に定義されているか否かを判断する。このスクリプトは定義されていないので、スクリプトパーサ２０３は、未定義スクリプトと判断し、プラグインマネージャ２１０にその実行を要求する。プラグインマネージャ２１０は、そのスクリプトに対応するプラグイン２２０を探し、そのプラグイン２２０に対し実行を要求する。
【００６０】
このスクリプトは、まず、Ｗｅｂブラウザ２００において確認アラートを表示する処理を実行することから、プラグイン２２０は、ユーティリティ２３０に対し、確認アラートの表示を要求する。ユーティリティ２３０は、この要求を受け付け、Ｗｅｂブラウザ２００が実行できる実行要求へ変換し、Ｗｅｂブラウザ２００のイベントプロセス２０１に対し、その実行要求を送信し、確認アラートの表示を要求する。イベントプロセス２０１は、その実行要求を受信し、ＵＩ２０２に確認アラートの表示を指示し、表示させる。
【００６１】
ＵＩ２０２は、その指示に従い、「警告」あるいは「注意」等のメッセージを含む文字列、「ＯＫ」および「キャンセル」ボタン等を表示する。これにより、ユーザに対し、ボタンの押下を促す。ＵＩ２０２は、ユーザからの「ＯＫ」ボタンの押下または「キャンセル」ボタンの押下を検知すると、イベントプロセス２０１に押下されたボタンの種類を通知する。イベントプロセス２０１は、その情報を受け付け、ユーティリティ２３０に対し、そのボタンの種類を通知し、ユーティリティ２３０は、プラグイン２２０に対し、そのボタンの種類を通知する。
【００６２】
この通知を受けて、プラグイン２２０は、ユーティリティ２３０に確認アラートを表示する処理の終了を要求する。そして、プラグイン２２０は、押下されたボタンが「キャンセル」ボタンである場合は処理を中止し、「ＯＫ」ボタンである場合は上述したセキュリティや重要な処理に関係するスクリプトの実行を開始し、デバイスＳＤＫ２４０に対して処理を要求する。
【００６３】
図５は、未定義スクリプトを実行する処理の別の例として、上記装置の状態変化によるスクリプトを実行する処理の流れを示したシーケンス図である。例えば、ユーザがキーを押下することにより任意のスクリプトを実行する場合である。
【００６４】
この場合、デバイスＳＤＫ２４０は、装置の状態変化による任意のスクリプト関数を実行するために、Ｗｅｂブラウザ２００にその処理を要求するプラグイン２２０へ装置の状態変化（ここでは、キーの押下）があったことを通知する。この状態変化を通知する処理は、プラグイン２２０が予めデバイスＳＤＫ２４０に対し、キーの操作があった場合に通知するよう要求しておくことで実現できる。なお、実行するスクリプト関数は、未定義スクリプトの実行により、図３に示したシーケンスに基づき設定されるものとすることができる。
【００６５】
通知を受けたプラグイン２２０は、ユーティリティ２３０に対し、任意のスクリプト関数の実行を要求する。ユーティリティ２３０は、Ｗｅｂブラウザ２００で実行できる実行要求に変換し、その実行要求をイベントプロセス２０１へ送る。イベントプロセス２０１は、その実行要求を受け付け、スクリプトパーサ２０３に対し、そのスクリプト関数の実行を要求する。
【００６６】
スクリプトパーサ２０３は、その実行要求を解釈し、その任意のスクリプト関数が、図３に示したシーケンスに基づき設定されていることから、定義済みスクリプトであり、その定義済みスクリプトを実行することができる。なお、その処理結果は、イベントプロセス２０１を介してＵＩ２０２に表示することができる。
【００６７】
図６は、スクリプトパーサ２０３が行う処理の流れを示したフローチャートである。この処理は、ステップ６００から開始し、まず、スクリプトパーサ２０３は、ステップ６１０において、イベントプロセス２０１からスクリプトの実行要求を受け付ける。次に、ステップ６２０において、スクリプトパーサ２０３は、実行要求されたスクリプトがＷｅｂブラウザ２００に定義されているスクリプトであるか否かを判断する。具体的には、スクリプトパーサ２０３がそのスクリプトを解釈し、実行することができるか否かにより判断する。定義されているスクリプトである場合、ステップ６３０へ進み、そのスクリプトを実行し、その後、ステップ６６０へ進み、その実行を要求したイベントプロセス２０１に処理の結果として返す戻り値を設定し、ステップ６８０でこの処理を終了する。この場合の戻り値としては、処理結果のほか、処理が正しく終了したことを示す値を含むことができる。
【００６８】
一方、定義されていないと判断すると、ステップ６４０へ進み、スクリプトパーサ２０３は、プラグインマネージャ２１０に対し、その未定義スクリプトの実行を要求する。スクリプトパーサ２０３は、その実行要求を送った後、ステップ６５０で、プラグインマネージャ２１０から処理の結果として何らかの値を戻り値として受け取る。プラグインマネージャ２１０は、そのスクリプトに対応するプラグイン２２０を探し、対応するプラグイン２２０が見つからない場合、未定義応答を返し、その他の場合は実行応答として任意の値を返す。したがって、スクリプトパーサ２０３は、いずれかの値を受け取り、いずれであるか判断する。
【００６９】
その値が任意の値である場合、ステップ６６０へ進み、イベントプロセス２０１へ返す戻り値を設定し、戻り値が未定義応答である場合、ステップ６７０へ進み、未定義応答として返された「undefined」を設定し、いずれもステップ６８０でこの処理を終了する。
【００７０】
図７は、プラグインマネージャ２１０が行う処理の流れを示したフローチャートである。この処理は、ステップ７００から開始し、ステップ７１０で、プラグインマネージャ２１０は、スクリプトパーサ２０３からスクリプトの実行要求を受け取り、実行要求されたスクリプトに対応するプラグイン２２０が見つかるまで、プラグインマネージャ２１０が管理する複数のプラグインの各々に対し、順に、スクリプトの実行を要求する。プラグインマネージャ２１０は、複数のプラグイン２２０の１つ１つに実行要求を送り、プラグイン２２０からその実行要求に対する応答を受ける。ステップ７２０において、プラグインマネージャ２１０は、その応答が実行応答であるか否かを判断し、実行応答であれば、ステップ７４０へ進み、この処理を終了する。その後の処理は、プラグイン２２０で行われるからである。
【００７１】
実行応答でない場合、対応するプラグイン２２０ではないことを示すため、ステップ７３０へ進み、次のプラグイン２２０が存在するかを判断する。すなわち、自己が管理するプラグイン２２０のすべてに対し、スクリプトの実行を要求したかを判断する。まだ要求していないプラグイン２２０がある場合は、そのプラグインへ要求するために、ステップ７１０へ戻る。
【００７２】
一方、すべてのプラグイン２２０に対し要求した場合は、次に要求するプラグイン２２０が存在しないため、ステップ７４０へ進み、この処理を終了する。具体的にどのようにして対応するプラグイン２２０を探すかについては後述する。
【００７３】
図８は、プラグインマネージャ２１０およびプラグイン２２０のクラス構成図の例を示したものである。図８に示す「PluginManager」は、プラグインマネージャ２１０であり、「Device」、「Scan」、「Print」は、プラグイン２２０によって提供され、図９に示す未定義スクリプトのオブジェクトに対応するものである。このオブジェクトは、ＣＯＭオブジェクトである。
【００７４】
プラグインマネージャ２１０およびプラグイン２２０に対応するクラスは、すべてあらゆるＣＯＭインタフェースを呼び出し可能なように設計されたＩＤｉｓｐａｃｈインタフェースを継承しており、ＣＯＭによるアクセスが可能とされている。ここで、クラスは、オブジェクトを定義するモデルであり、継承は、クラスの定義を他のクラスに受け継がせることをいう。したがって、図８の矢線で示すように、「PluginManager」、「Device」、「Scan」、「Print」のいずれのオブジェクトも、「IDispatch」で示されたＩＤｉｓｐａｔｃｈインタフェースにアクセスすることができ、あらゆるＣＯＭインタフェースを呼び出すことが可能である。
【００７５】
未定義スクリプトのオブジェクトに対応する上記のオブジェクトは、図９に示されるような階層構造の上位のオブジェクトからIDispatch::invoke()というメソッドにより呼び出され、要求された処理（呼び出されたオブジェクトのメソッドまたは属性アクセス）の結果を呼び出し元に返す。このIDispatch::invoke()は、呼び出すメソッドを識別するための情報と、その呼び出すメソッドに渡す情報とを指定するように構成されており、指定された情報をＩＤｉｓｐａｔｃｈインタフェースを介してＣＯＭインタフェースへ送る。ＣＯＭインタフェースは、ＣＯＭオブジェクトの１つのまとまった機能を提供するための複数のメソッドがプログラムコードとして格納されているメモリ上のアドレスを指定するポインタを保持している。このため、ＣＯＭインタフェースは、上記の指定された情報のうち、呼び出すメソッドを識別するための情報に基づきメソッドを呼び出し、そのメソッドへ渡すべき情報を送り、処理させることができる。処理結果は、ＣＯＭインタフェースを介して呼び出し元に返すことができる。
【００７６】
ここで、未定義スクリプトの実行として集約印刷を行う場合について説明する。スクリプトは、例えば「device.print.layout=2up」のように記述されたものであり、この装置では、このスクリプトを以下のようにして処理する。
【００７７】
スクリプトパーサ２０３は、このスクリプトを含むスクリプトの実行要求をイベントプロセス２０１から受け取ると、このスクリプトを解釈し、定義されていないスクリプトであるため、未定義スクリプトと判断して、図９に示す最上位のPluginManagerクラスに対して「device.print.layout」に「2up」を設定するように要求する。PluginManagerクラスは、図９に示す実施形態では「window」と示されている。このPluginManagerクラスは、実際には上述したようにIDispatch::invoke()によりＩＤｉｓｐａｔｃｈインタフェースを介してＣＯＭインタフェースへアクセスし、ＣＯＭインタフェースがその下位に属するクラスのオブジェクトへアクセスすることになるが、ここではその処理についての説明は省略する。したがって、PluginManagerクラスは、その下位に属するクラス中からDeviceクラスを探し、Deviceクラスのオブジェクトに対し、「print.layout」に「2up」を設定するように要求する。
【００７８】
次に、Deviceクラスのオブジェクトは、図９に示す「Device」の下位に属するクラスの中からPrintクラスを探し、Printクラスのオブジェクトに対し、「layout」に「2up」を設定するように要求する。
【００７９】
PluginManagerクラスがDeviceクラスを参照するためにはオブジェクトを識別するための識別情報が必要となるが、識別情報としてプログラムＩＤを付与し、プラグイン２２０のインストール、アップデート、アンインストールの際、ＨＤＤ等の記憶装置に記憶される設定ファイルにこのプログラムＩＤを記録することで、プラグインマネージャ２１０とプラグイン２２０とを関連付けることができる。
【００８０】
このように複数のプラグイン２２０の管理を容易にするために、複数のプラグイン２２０が対応するオブジェクトとして階層構造を形成し、その階層構造の上位のオブジェクトから下位のオブジェクトへと順に未定義スクリプトの実行要求を送信して実行可能であるか否かを問い合わせ、実行可能な下位のオブジェクトに未定義のスクリプトを実行させることができる。また、その実行後、その下位のオブジェクトは、実行結果を上位のオブジェクトへ送り、上位のオブジェクトはプラグインマネージャ２１０へ送り、プラグインマネージャ２１０は、Ｗｅｂブラウザ２００へ通知することにより、Ｗｅｂブラウザ２００がそのスクリプトの実行要求が処理されたことを知ることができる。
【００８１】
図１０は、ユーティリティ２３０が実装するＷｅｂブラウザ２００とプラグイン２２０との間のインタフェースをプログラミング言語で記述したものを例示した図である。図１０（ａ）は、Ｗｅｂブラウザ２００への処理要求を記述した例で、「//」は、それ以降の１行がコメントとして扱われ、この処理がＷｅｂブラウザへ要求するものであることを示している。また、「command」は、ダイアログ表示要求等の要求の種類を示し、「args」は、ダイアログに表示するメッセージやボタンの文字列等の要求毎に異なる引数を示している。ここで、引数とは、関数やメソッドを呼び出す際にその関数やメソッドに渡す値である。
【００８２】
図１０（ａ）の例では、即座にイベントを送信して所定のメッセージおよびボタンを含むダイアログを表示させ、イベントが処理されたときは戻り値として「true」が、処理されないときは「false」が返されるようになっている。これは、SendEventリクエストが送られてきた場合に実行されるため、プラグイン２２０は、このリクエストを送信することで、Ｗｅｂブラウザ２００が更新されたか否かに関係なく、Ｗｅｂブラウザ２００に対しダイアログ表示を行わせることができる。
【００８３】
図１０（ｂ）は、Ｗｅｂブラウザ２００からの通知を受け付ける処理を記述したものを例示した図である。図１０（ｂ）では、Ｗｅｂブラウザ２００と連携するために、呼び出すコールバック関数を、関数ポインタ型名（CALLBACK_FUNC）と引数（ID）とを用いて定義している。図１０（ｂ）に示す例では、引数として左ボタンが押下された場合のイベントＩＤと、右ボタンが押下された場合のイベントＩＤとを渡し、いずれのボタンが押下されたかの通知を受けることが可能とされている。
【００８４】
その通知を受けるために、事前に、呼び出すべきコールバック関数の登録を行う必要がある。そのための登録処理が記述されている。この登録処理では、コールバック関数のポインタを追加し、その処理が行われたときは戻り値として「true」が、行われないときは「false」が返されるようになっている。
【００８５】
ボタンが押下された通知を受けた後は、さらなる通知は不要である。そこで、その通知を停止するためにコールバック関数のポインタを削除する処理が記述されている。この処理では、上記の通知を受けた後、その通知に使用したコールバック関数のポインタを削除し、その処理が行われたときは戻り値として「true」が、行われないときは「false」が返されるようになっている。
【００８６】
これも、プラグイン２２０からのリクエストにより、Ｗｅｂブラウザ２００が更新されたか否かに関係なく、コールバック関数の登録・解除を行うことができる。
【００８７】
これまで説明してきた情報処理装置および画像形成装置が行う処理についてまとめると以下のようになる。これら装置は、マークアップ言語で記述された文書データを含むコンテンツデータを処理するためのＷｅｂブラウザ２００を実装する。Ｗｅｂブラウザ２００は、検知したイベントを処理するためにスクリプトの実行要求を生成し、その実行要求が定義済みスクリプトの実行要求であるか否かを判定する。
【００８８】
定義済みスクリプトの場合は、スクリプトパーサ２０３において実行し、定義済みスクリプトでないと判定された場合は、プラグインマネージャ２１０へその未定義スクリプトの実行要求を送信する。
【００８９】
プラグインマネージャ２１０は、その未定義スクリプトの実行要求を、機能拡張のために追加して実装された１以上のプラグイン２２０へ順に送り、実行可能であるか否かを問い合わせる。そして、それらのプラグイン２２０の中から、その未定義スクリプトを実行できるプラグイン２２０を見つけ出し、そのプラグイン２２０にその未定義スクリプトを実行させる。
【００９０】
プラグイン２２０は、階層構造を形成しており、階層構造の上位のプラグインから下位のプラグインへ順に未定義スクリプトの実行要求を送って実行可能であるか否かを問い合わせ、実行可能な下位のプラグインにその未定義のスクリプトを実行させることができる。
【００９１】
また、プラグイン２２０からのＷｅｂブラウザ２００への処理要求を受けて呼び出されるユーティリティ２３０は、その処理要求に対応しＷｅｂブラウザ２００が実行可能な実行要求をそのＷｅｂブラウザ２００へ送り、Ｗｅｂブラウザ２００に処理させることができる。
【００９２】
本発明では、これらの各処理ステップを含む情報処理方法を提供することができ、また、その方法を実行するためのコンピュータ可読なプログラムや、そのプログラムが記録されたＦＤ、ＣＤ、ＤＶＤ、ＳＤカード等の記録媒体を提供することも可能である。これまで本発明を上述した実施の形態をもって説明してきたが、本発明は上述した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００９３】
１００…ＰＣ、１１０…ＭＦＰ、１２０…ネットワーク、１３０、１４０…外部サーバ、２００…Ｗｅｂブラウザ、２０１…イベントプロセス、２０２…ＵＩ、２０３…スクリプトパーサ、２１０…プラグインマネージャ、２２０…プラグイン、２３０…ユーティリティ、２４０…デバイスＳＤＫ
【先行技術文献】
【特許文献】
【００９４】
【特許文献１】特開２００９−００９５９７号公報
【図１】
0005464038.tif 000002
【図２】
0005464038.tif 000003
【図３】
0005464038.tif 000004
【図４】
0005464038.tif 000005
【図５】
0005464038.tif 000006
【図６】
0005464038.tif 000007
【図７】
0005464038.tif 000008
【図８】
0005464038.tif 000009
【図９】
0005464038.tif 000010
【図１０】
0005464038.tif 000011