(57)【要約】【課題】ネットワークを介して取得される表示データが利用可能な機能を増加させるために既存部分を改変する必要性を低減させること。【解決手段】情報処理装置は、ネットワークを介して表示データを取得し、前記表示データに基づいて画面を表示する表示制御部を有し、前記表示制御部は、当該情報処理装置にインストールされたプログラムのうち、前記表示データによって指定される識別情報に係る第一のプログラムに、前記表示データにおいて指定されているデータを入力する。【選択図】図３
2015176308.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
ネットワークを介して表示データを取得し、前記表示データに基づいて画面を表示する表示制御部を有し、
前記表示制御部は、当該情報処理装置にインストールされたプログラムのうち、前記表示データによって指定される識別情報に係る第一のプログラムに、前記表示データにおいて指定されているデータを入力する、
ことを特徴とする情報処理装置。
【請求項２】
前記表示制御部は、複数のプログラムに対して共通のＡＰＩを介して前記表示データによって指定される識別情報に係る前記第一のプログラムに、前記ＡＰＩにおいて指定されているデータを入力する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記表示制御部は、入力されたデータに関して前記第一のプログラムが当該情報処理装置に実行させる処理に関する情報を、前記表示データに通知する、
ことを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記表示制御部は、前記表示データによって登録されたインタフェースを介して、前記処理に関する情報を、前記表示データに通知する、
ことを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記第一のプログラムは、当該情報処理装置に追加されるハードウェアの制御を、当該情報処理装置に実行させる、
ことを特徴とする請求項４記載の情報処理装置。
【請求項６】
請求項１乃至４いずれか一項記載の情報処理装置を操作部として有する機器。
【請求項７】
情報処理装置と前記情報処理装置を操作部として有する機器とを含む情報処理システムであって、
ネットワークを介して表示データを取得し、前記表示データに基づいて画面を表示する表示制御部を有し、
前記表示制御部は、当該情報処理装置にインストールされたプログラムのうち、前記表示データによって指定される識別情報に係る第一のプログラムに、前記表示データにおいて指定されているデータを入力する、
ことを特徴とする情報処理システム。
【請求項８】
ネットワークを介して表示データを取得し、前記表示データに基づいて画面を表示する表示制御部を有する情報処理装置における情報処理方法であって、
前記表示制御部が、当該情報処理装置にインストールされたプログラムのうち、前記表示データによって指定される識別情報に係る第一のプログラムに、前記表示データにおいて指定されているデータを入力する、
ことを特徴とする情報処理方法。
【請求項９】
前記表示制御部は、複数のプログラムに対して共通のＡＰＩを介して前記表示データによって指定される識別情報に係る前記第一のプログラムに、前記ＡＰＩにおいて指定されているデータを入力する、
ことを特徴とする請求項８記載の情報処理方法。
【請求項１０】
前記表示制御部は、入力されたデータに関して前記第一のプログラムが当該情報処理装置に実行させる処理に関する情報を、前記表示データに通知する、
ことを特徴とする請求項８又は９記載の情報処理方法。
【請求項１１】
前記表示制御部は、前記表示データによって登録されたインタフェースを介して、前記処理に関する情報を、前記表示データに通知する、
ことを特徴とする請求項１０記載の情報処理方法。
【請求項１２】
前記第一のプログラムは、当該情報処理装置に追加されるハードウェアの制御を、当該情報処理装置に実行させる、
ことを特徴とする請求項１１記載の情報処理方法。
【請求項１３】
情報処理装置を、
ネットワークを介して表示データを取得し、前記表示データに基づいて画面を表示する表示制御部として機能させ、
前記表示制御部は、当該情報処理装置にインストールされたプログラムのうち、前記表示データによって指定される識別情報に係る第一のプログラムに、前記表示データにおいて指定されているデータを入力する、
ことを特徴とするプログラム。
【請求項１４】
前記表示制御部は、複数のプログラムに対して共通のＡＰＩを介して前記表示データによって指定される識別情報に係る前記第一のプログラムに、前記ＡＰＩにおいて指定されているデータを入力する、
ことを特徴とする請求項１３記載のプログラム。
【請求項１５】
前記表示制御部は、入力されたデータに関して前記第一のプログラムが当該情報処理装置に実行させる処理に関する情報を、前記表示データに通知する、
ことを特徴とする請求項１３又は１４記載のプログラム。
【請求項１６】
前記表示制御部は、前記表示データによって登録されたインタフェースを介して、前記処理に関する情報を、前記表示データに通知する、
ことを特徴とする請求項１５記載のプログラム。
【請求項１７】
前記第一のプログラムは、当該情報処理装置に追加されるハードウェアの制御を、当該情報処理装置に実行させる、
ことを特徴とする請求項１６記載のプログラム。
【請求項１８】
請求項１３乃至１７いずれか一項記載のプログラムをインストールする手順をコンピュータが実行する、
ことを特徴とするインストール方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、機器、情報処理システム、情報処理方法、プログラム、及びインストール方法に関する。
【背景技術】
【０００２】
ＨＴＭＬ（HyperText Markup Language）、ＣＳＳ（Cascading Style Sheets）、及びスクリプト等を含むＷｅｂページは、当該Ｗｅｂページに基づいて表示される画面に対する操作に応じた処理を、当該Ｗｅｂページのダウンロード先の機器に実行させるアプリケーションとして機能可能である。具体的には、Ｗｅｂページが、Ｗｅｂブラウザに対して要求を行うと、Ｗｅｂブラウザが当該要求に応じた処理を、当該機器に実行させる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
基本的に、ＷｅｂページがＷｅｂブラウザに対して要求できる機能は、Ｗｅｂブラウザが提供しているＡＰＩに係る機能に限定される。例えば、Ｗｅｂページに対して記述可能なスクリプトは、Ｗｅｂブラウザが解釈可能なものに限られる。
【０００４】
したがって、例えば、Ｗｅｂページのダウンロード先の機器等において新機能が実装された場合、当該新機能をＷｅｂページから利用可能とするためには、Ｗｅｂブラウザを改変して、当該新機能に対するインタフェースをＷｅｂページに対して提供可能とする必要が有る。
【０００５】
Ｗｅｂブラウザに対するプラグインを利用すれば、Ｗｅｂブラウザの改変の必要性を低減させることができる。しかし、スマートフォンやタブレット端末等のスマートデバイスが備えるＷｅｂブラウザには、プラグインの機構を有していないものが有る。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、ネットワークを介して取得される表示データが利用可能な機能を増加させるために既存部分を改変する必要性を低減させることを目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、情報処理装置は、ネットワークを介して表示データを取得し、前記表示データに基づいて画面を表示する表示制御部を有し、前記表示制御部は、当該情報処理装置にインストールされたプログラムのうち、前記表示データによって指定される識別情報に係る第一のプログラムに、前記表示データにおいて指定されているデータを入力する。
【発明の効果】
【０００８】
ネットワークを介して取得される表示データが利用可能な機能を増加させるために既存部分を改変する必要性を低減させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態における情報処理システムの構成例を示す図である。
【図２】本発明の実施の形態における情報処理端末のハードウェア構成例を示す図である。
【図３】本発明の実施の形態における情報処理端末のソフトウェア構成例を示す図である。
【図４】Ｗｅｂアプリケーションからの追加モジュールの呼び出し時の処理手順の一例を説明するためのシーケンス図である。
【図５】追加モジュールからの情報の通知時に実行される処理手順の第一の例を説明するためのシーケンス図である。
【図６】追加モジュールからの情報の通知時に実行される処理手順の第二の例を説明するためのシーケンス図である。
【図７】追加モジュールの呼び出しに関してブラウザが実行する処理手順の一例を説明するためのフローチャートである。
【図８】追加モジュールからの情報の通知に関してブラウザが実行する処理手順の一例を説明するためのフローチャートである。
【図９】追加モジュールの具体例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における情報処理システムの構成例を示す図である。図１に示される情報処理システム１において、画像形成装置１０は、情報処理端末２０と通信可能に接続される。画像形成装置１０と情報処理端末２０との通信は、例えば、ＵＳＢ（Universal Serial Bus）、近距離無線通信、又はＬＡＮ（有線又は無線の別は問わない）等のネットワークを介して行われる。
【００１１】
画像形成装置１０は、印刷、スキャン、コピー、及びＦＡＸ送受信等のうちの２以上の機能を一台の筐体によって実現する複合機である。但し、いずれか一つの機能を有する機器が画像形成装置１０として用いられてもよい。また、本実施の形態における画像形成装置１０は、機器の一例であり、プロジェクタ、テレビ会議システム、又はデジタルカメラ等の機器が、画像形成装置１０の代わりに用いられてもよい。
【００１２】
情報処理端末２０は、例えば、スマートフォンやタブレット型端末等、単独で完結した情報処理を実行可能なスマートデバイスである。本実施の形態において、情報処理端末２０は、画像形成装置１０の操作部として機能する。より詳しくは、情報処理端末２０は、従来、画像形成装置１０の専用の操作部として設置されていた操作パネルの代わりに、画像形成装置１０に接続される。以下、単に、「操作パネル」というとき、従来の画像形成装置１０において設置されていた操作パネルをいう。
【００１３】
情報処理端末２０は、例えば、画像形成装置１０の所定の位置（例えば、操作パネルが配置される位置）に固定されて設置される。したがって、情報処理端末２０及び画像形成装置１０とは、一台の装置として把握されてもよい。または、情報処理端末２０は、画像形成装置１０から取り外し可能（分離可能）であってもよい。情報処理端末２０が取り外された状態において、情報処理端末２０は、Ｂｌｕｅｔｏｏｔｈ（登録商標）又は赤外線等の無線通信等を介して、画像形成装置１０の操作部として機能可能であってもよい。
【００１４】
図１において、情報処理端末２０は、ＬＡＮ又はインターネット等のネットワークを介してＷｅｂサーバ装置３０と通信可能である。但し、情報処理端末２０とＷｅｂサーバ装置３０との通信は、画像形成装置１０によって仲介されてもよい。Ｗｅｂサーバ装置３０は、ＨＴＭＬ（HyperText Markup Language）、ＣＳＳ（Cascading Style Sheets）、及びＪａｖａ（登録商標）スクリプト等を含むＷｅｂページを記憶するコンピュータである。Ｗｅｂページは、表示データとして機能するだけでなく、スクリプト等によって、アプリケーションとしても機能する。そこで、本実施の形態では、Ｗｅｂページを、「Ｗｅｂアプリケーション」という。なお、情報処理端末２０は、複数又は不特定のＷｅｂサーバ装置３０と通信可能であってもよい。
【００１５】
図２は、本発明の実施の形態における情報処理端末のハードウェア構成例を示す図である。図２において、情報処理端末２０は、ＣＰＵ２０１、メモリ２０２、補助記憶装置２０３、タッチパネル２０４、無線通信装置２０５、及び機器インタフェース２０６等を有する。
【００１６】
補助記憶装置２０３は、情報処理端末２０にインストールされたプログラム等を記憶する。メモリ２０２は、プログラムの起動指示があった場合に、補助記憶装置２０３からプログラムを読み出して記憶する。ＣＰＵ２０１は、メモリ２０２に記憶されたプログラムに従って情報処理端末２０に係る機能を実現する。
【００１７】
タッチパネル２０４は、入力機能と表示機能との双方を備えた電子部品であり、情報の表示や、ユーザからの入力の受け付け等を行う。タッチパネル２０４は、表示装置２１１及び入力装置２１２等を含む。
【００１８】
表示装置２１１は、液晶ディスプレイ等であり、タッチパネル２０４の表示機能を担う。入力装置２１２は、表示装置２１１に対する接触物の接触を検出するセンサを含む電子部品である。接触物の接触の検出方式は、静電方式、抵抗膜方式、又は光学方式等、公知の方式のいずれであってもよい。なお、接触物とは、タッチパネル２０４の接触面（表面）に接触する物体をいう。斯かる物体の一例として、ユーザの指や専用又は一般のペン等が挙げられる。
【００１９】
無線通信装置２０５は、無線ＬＡＮ（Local Area Network）又は移動体通信網等における通信を行うために必要とされるアンテナ等の電子部品である。機器インタフェース２０６は、画像形成装置１０と通信するためのインタフェースである。すなわち、機器インタフェース２０６は、画像形成装置１０との通信を行う。
【００２０】
図３は、本発明の実施の形態における情報処理端末のソフトウェア構成例を示す図である。図３において、情報処理端末２０は、ＯＳ２１、追加モジュール２２、及びブラウザ２３を有する。これらは、ＣＰＵ２０１に処理を実行させるプログラムである。
【００２１】
ＯＳ２１は、一般的な、ＯＳ（Operating System）である。追加モジュール２２やブラウザ２３等、他のプログラムは、ＯＳ２１上でプロセス又はスレッドとして動作する。
【００２２】
ブラウザ２３は、Ｗｅｂブラウザである。すなわち、ブラウザ２３は、Ｗｅｂサーバ装置３０からＷｅｂアプリケーション３１を取得（ダウンロード）し、当該Ｗｅｂアプリケーション３１に含まれている定義に従って、画面の表示をＣＰＵ２０１及び表示装置２１１に実行させる。画面に関する定義は、例えば、ＨＴＭＬ（HyperText Markup Language）及びＣＳＳ（Cascading Style Sheets）等を用いて記述される。ブラウザ２３は、また、Ｗｅｂアプリケーション３１に含まれている、スクリプトによって呼び出されるＡＰＩ（Application Program Interface）に応じた処理を、ＣＰＵ２０１に実行させる。すなわち、ブラウザ２３には、スクリプトから呼び出される各種のＡＰＩに対する実装（処理の定義）が含まれている。斯かるＡＰＩの一つとして、ブラウザ２３は、汎用ＡＰＩ２３１を有する。汎用ＡＰＩ２３１は、特定の機能に特化していない点において、他のＡＰＩと異なる。汎用ＡＰＩ２３１は、Ｗｅｂアプリケーション３１から任意の追加モジュール２２の機能を利用可能とするための関数群である。すなわち、汎用ＡＰＩ２３１は、Ｗｅｂアプリケーション３１に対し、追加モジュール２２を透過的に呼び出すための手段又は経路を提供する。例えば、汎用ＡＰＩ２３１のうちの一つの関数は、例えば、以下のようなインタフェース仕様を有している。
【００２３】
＜追加モジュール呼び出し関数名＞（モジュールＩＤ，入力データ）
＜追加モジュール呼び出し関数名＞は、追加モジュール２２を呼び出すための関数（以下、「追加モジュール呼び出し関数」という。）の名前である。モジュールＩＤは、呼び出し先の追加モジュール２２の識別情報である。モジュールＩＤは、追加モジュール２２のファイル名であってもよいし、他の識別情報であってもよい。モジュールＩＤは、ブラウザ２３が、一つの追加モジュール２２を特定可能な情報であればよい。入力データは、追加モジュール２２に入力されるデータである。例えば、当該データは、文字列型であってもよい。但し、当該データの内容は、文字列でなくてもよい。なお、引数にモジュールＩＤが指定されることからも明らかなように、汎用ＡＰＩ２３１は、複数の追加モジュール２２に対して共通のＡＰＩである。
【００２４】
ブラウザ２３は、Ｗｅｂアプリケーション３１から追加モジュール呼び出し関数が呼び出されると、引数に指定されたモジュールＩＤに係る追加モジュール２２に対して、引数に指定された入力データを入力する。
【００２５】
また、汎用ＡＰＩ２３１は、以下のような関数を含んでも良い。
【００２６】
＜コールバック登録関数名＞（モジュールＩＤ、コールバック関数アドレス）
＜コールバック登録関数名＞は、追加モジュール２２からの応答又は通知等を受け取るためのインタフェースの一例であるコールバック関数を登録するための関数（以下、「コールバック登録関数」という。）の関数名である。モジュールＩＤは、コールバック関数の対象とされる追加モジュール２２である。コールバック関数アドレスは、コールバック関数のアドレス情報である。
【００２７】
追加モジュール２２は、ブラウザ２３の機能拡張を図るためにインストールされる追加されるプログラムである。追加モジュール２２は、ブラウザ２３から入力データを受け付けるために、ブラウザ２３が予定している形式のＡＰＩである追加モジュールＡＰＩ２２１を有する。追加モジュール２２は、追加モジュールＡＰＩ２２１を介して入力されたデータに従って処理を実行する。図３では、一つの追加モジュール２２のみが示されているが、複数種類の追加モジュール２２が、情報処理端末２０にインストールされてもよい。追加モジュール２２がインストールされることにより、ブラウザ２３の汎用ＡＰＩ２３１を介して、当該追加モジュール２２に係る機能が、擬似的にブラウザ２３にプラグインされる。
【００２８】
図３には、また、Ｗｅｂアプリケーション３１が示されている。Ｗｅｂアプリケーション３１は、情報処理端末２０に予めインストールされるものではなく、ユーザによる情報処理端末２０の操作に応じて、ブラウザ２３によって動的に取得される。Ｗｅｂアプリケーション３１は、ブラウザ２３の汎用ＡＰＩ２３１を介して、追加モジュール２２を呼び出すことができる。一形態としては、Ｗｅｂアプリケーション３１と追加モジュール２２とが１対１に対応する例が挙げられる。すなわち、或るＷｅｂアプリケーション３１において、ブラウザ２３の既存のＡＰＩでは実現できない機能を利用したい場合に、当該機能を提供可能な追加モジュール２２が作成され、情報処理端末２０にインストールされる。したがって、追加モジュール２２は、Ｗｅｂアプリケーション３１の開発者によって開発されてもよい。
【００２９】
なお、一般的に、ＰＣのＷｅｂブラウザにはプラグインという形式を利用した機能拡張の方式が採用されており、プラグイン向けのＡＰＩが用意されている。しかし、スマートデバイスのＷｅｂブラウザにはプラグインの仕組みが用意されておらず、プラグインを利用した機能拡張を行うことが困難である。そこで、プラグインに代わる手段として、本実施の形態では、汎用ＡＰＩ２３１と追加モジュール２２とが利用される。
【００３０】
なお、汎用ＡＰＩ２３１はＷｅｂアプリケーション３１が扱うことができる言語であるスクリプトによって提供される。また、追加モジュールＡＰＩ２２１は、例えば、ＯＳ２１上で実行できる形式の言語で提供される。
【００３１】
なお、ブラウザ２３や追加モジュール２２等は、情報処理端末２０が実行するインストール処理によって、情報処理端末２０にインストールされる。
【００３２】
以下、情報処理端末２０が実行する処理手順について説明する。なお、以降においては、便宜上、各プログラムが処理の実行主体として記述されるが、厳密には、各プログラムは、ＣＰＵ２０１に処理を実行させる。
【００３３】
図４は、Ｗｅｂアプリケーションからの追加モジュールの呼び出し時の処理手順の一例を説明するためのシーケンス図である。なお、図４においては、ユーザによる操作に応じて特定されるＵＲＬに対応するＷｅｂアプリケーション３１が、ブラウザ２３によって取得されている状態であるとする。また、Ｗｅｂアプリケーション３１による処理は、当該Ｗｅｂアプリケーション３１内に定義されているスクリプトに基づく。
【００３４】
ステップＳ１０１において、Ｗｅｂアプリケーション３１は、汎用ＡＰＩ２３１の一つである、コールバック登録関数を呼び出す。すなわち、Ｗｅｂアプリケーション３１は、コールバック関数の登録を、ブラウザ２３に要求する。コールバック登録関数の引数には、ステップＳ１０２において呼び出し先として指定される追加モジュール２２のモジュールＩＤと、登録対象のコールバック関数のアドレス情報とが指定される。ブラウザ２３は、コールバック登録関数の呼び出しに応じ、当該関数の引数に指定されているモジュールＩＤと、アドレス情報とを対応付けて、例えば、メモリ２０２に記憶する。
【００３５】
続いて、Ｗｅｂアプリケーション３１は、汎用ＡＰＩ２３１の一つである。追加モジュール呼び出し関数を呼び出す。すなわち、Ｗｅｂアプリケーション３１は、追加モジュール２２の呼び出しを、ブラウザ２３に要求する。追加モジュール呼び出し関数の引数には、呼び出し先の追加モジュール２２のモジュールＩＤと、当該追加モジュール２２に対する入力データとが指定される。
【００３６】
ブラウザ２３は、引数に指定されたモジュールＩＤによって識別される追加モジュール２２に対し、追加モジュールＡＰＩ２２１を介して入力データを入力する（Ｓ１０３）。入力データの入力に対し、追加モジュール２２は、応答を行う（Ｓ１０４）。ブラウザ２３は、当該応答に応じ、追加モジュール呼び出し関数に対する応答を行う（Ｓ１０５）。
【００３７】
応答後、追加モジュール２２は、入力データに関して処理を実行する。当該処理が完了すると、追加モジュール２２は、処理結果を、ブラウザ２３に通知する（Ｓ１０６）。処理結果は、処理の成否等を示す情報であってもよいし、処理によって生成されたデータであってもよい。なお、ブラウザ２３は、追加モジュール２２から処理結果等の通知を受けるためのインタフェースを有している。
【００３８】
続いて、ブラウザ２３は、当該処理結果の通知元のモジュールＩＤに対応付けられてメモリ２０２に記憶されているアドレス情報に係るコールバック関数を呼び出す（Ｓ１０７）。コールバック関数の引数には、処理結果が指定される。その結果、Ｗｅｂアプリケーション３１に対して、処理結果が通知される。
【００３９】
なお、Ｗｅｂアプリケーション３１が、追加モジュール２２の処理結果の通知を必要としない場合、ステップＳ１０１及びＳ１０７は実行されなくてもよい。
【００４０】
また、図４のステップＳ１０４及びＳ１０５において、追加モジュール２２による処理の前に応答が行われるのは、本実施の形態では、追加モジュール２２とブラウザ２３とは異なるスレッド又はプロセスで動作し、追加モジュール２２の処理とブラウザ２３の処理とは非同期に行われるからである。したがって、仮に、追加モジュール２２からの処理結果が、ステップＳ１０３に対して同期的に応答されるのであれば、ステップＳ１０４及びＳ１０５は実行されなくてよい。また、処理結果を受け付けるためのコールバック関数の登録も行われなくてもよい。ブラウザ２３は、追加モジュール呼び出し関数の戻り値として、追加モジュール２２の処理結果を返却することが可能だからである。
【００４１】
但し、追加モジュール２２からの処理結果が、ステップＳ１０３に対して同期的に応答される場合であっても、ブラウザ２３が、追加モジュール２２側から非同期に通知される情報を取得したい場合、コールバック関数の登録は有効である。
【００４２】
図５は、追加モジュールからの情報の通知時に実行される処理手順の第一の例を説明するためのシーケンス図である。
【００４３】
例えば、追加モジュール２２が、何らかのイベントの発生を検知すると、当該イベントに関する情報を、ブラウザ２３に通知する（Ｓ１１１）。当該情報は、追加モジュール２２の処理結果の通知を受けるためにブラウザ２３が有するインタフェースと同じインタフェースを利用して、ブラウザ２３に通知されてもよい。または、ブラウザ２３は、処理結果の通知を受けるためのインタフェースとは別に、非同期な情報の通知を受けるためのインタフェースを有していてもよい。
【００４４】
続いて、ブラウザ２３は、当該情報の通知元の追加モジュール２２のモジュールＩＤに対応付けられてメモリ２０２に記憶されているアドレス情報に係るコールバック関数を呼び出す（Ｓ１１２）。コールバック関数の引数には、当該情報が指定される。その結果、Ｗｅｂアプリケーション３１に対して、当該情報が通知される。
【００４５】
なお、ブラウザ２３が、タブを用いて複数のＷｅｂアプリケーション３１を表示することが可能である場合、複数のＷｅｂアプリケーション３１によって一つの追加モジュール２２に対するコールバック関数が重複して登録されてもよい。
【００４６】
この場合、図５の処理手順は、例えば、図６に示されるようになる。図６は、追加モジュールからの情報の通知時に実行される処理手順の第二の例を説明するためのシーケンス図である。図６中、図５と同一ステップには同一ステップ番号を付している。
【００４７】
図６は、Ｗｅｂアプリケーション３１ａとＷｅｂアプリケーション３１ｂとの二つのＷｅｂアプリケーション３１が、ブラウザ２３の相互に異なるタブにおいて表示対象とされており、それぞれが、同じ追加モジュール２２に対するコールバック関数を、ブラウザ２３に登録している場合に実行される処理を示す。この場合、ブラウザ２３は、追加モジュール２２からの情報の通知に応じ（Ｓ１１１）、各Ｗｅｂアプリケーション３１から登録されているコールバック関数を呼び出す（Ｓ１１２、Ｓ１１３）。その結果、各Ｗｅｂアプリケーション３１に、同じ情報が配信される。
【００４８】
続いて、図４、図５、及び図６においてブラウザ２３が実行する処理手順について説明する。図７は、追加モジュールの呼び出しに関してブラウザが実行する処理手順の一例を説明するためのフローチャートである。
【００４９】
ステップＳ２０１において、ブラウザ２３は、ユーザによる操作によって特定されるＵＲＬに係るＷｅｂアプリケーション３１を、Ｗｅｂサーバ装置３０から取得（ダウンロード）する。続いて、ブラウザ２３は、取得されたＷｅｂアプリケーション３１の定義内容に基づいて、操作画面を表示装置２１１に表示させる（Ｓ２０２）。
【００５０】
続いて、ブラウザ２３は、当該Ｗｅｂアプリケーション３１から、追加モジュール呼び出し関数の呼び出しを受ける（Ｓ２０３）。換言すれば、ブラウザ２３は、Ｗｅｂアプリケーション３１の定義内容を解析し、追加モジュール呼び出し関数を検出する。なお、追加モジュール呼び出し関数の呼び出しのタイミングは、Ｗｅｂアプリケーション３１の定義に依存する。例えば、Ｗｅｂアプリケーション３１の取得に応じて呼び出しが行われてもよいし、Ｗｅｂアプリケーション３１に基づいて表示される操作画面に対する操作に応じて呼び出しが行われてもよい。
【００５１】
続いて、ブラウザ２３は、呼び出された追加モジュール呼び出し関数の引数に指定されているモジュールＩＤに係る追加モジュール２２に対して、当該関数の引数に指定されている入力データを入力する（Ｓ２０４）。なお、呼び出し先の追加モジュール２２が入力データを必要としない場合、追加モジュール呼び出し関数において、入力データの引数が省略されるようにしてもよい。
【００５２】
追加モジュール２２の呼び出しに成功した場合（Ｓ２０５でＹｅｓ）、追加モジュール呼び出し関数に関するブラウザ２３による処理は正常終了する（Ｓ２０６）。この場合、例えば、図４のステップＳ１０５において、正常終了を示す応答が行われる。追加モジュール２２の呼び出しに失敗した場合（Ｓ２０５のＮｏ）、追加モジュール呼び出し関数に関するブラウザ２３による処理は異常終了する（Ｓ２０６）。この場合、例えば、図４のステップＳ１０５において、異常終了を示す応答が行われる。
【００５３】
図８は、追加モジュールからの情報の通知に関してブラウザが実行する処理手順の一例を説明するためのフローチャートである。
【００５４】
ブラウザ２３は、Ｗｅｂアプリケーション３１から、コールバック登録関数の呼び出しを受けると（Ｓ２１１）、当該関数の引数に指定されているモジュールＩＤとコールバック関数のアドレス情報とを、対応付けてメモリ２０２に記憶する（Ｓ２１２）。
【００５５】
その後、ブラウザ２３は、追加モジュール２２から処理結果又は非同期の情報の通知を受けると、当該追加モジュール２２のモジュールＩＤに対応付けられてアドレス情報が記憶されているコールバック関数の有無を判定する（Ｓ２１４）。該当するコールバック関数が有る場合（Ｓ２１４でＹｅｓ）、ブラウザ２３は、当該コールバック関数を呼び出す（Ｓ２１５）。当該コールバック関数の引数には、通知された情報が指定される。
【００５６】
続いて、追加モジュール２２の具体例について説明する。図９は、追加モジュールの具体例を示す図である。
【００５７】
図９において、情報処理端末２０には、ＮＦＣ（Near field communication）デバイスが追加されている。例えば、当初、ＮＦＣデバイス２０７を有していない情報処理端末２０に対して、ＵＳＢ接続等によりＮＦＣデバイス２０７が追加された状態である。したがって、ブラウザ２３は、ＮＦＣデバイス２０７にアクセスするためのスクリプトのＡＰＩを提供していない。このような場合に、Ｗｅｂアプリケーション３１から、ＮＦＣデバイス２０７を利用可能とするための方法について説明する。なお、ＮＦＣデバイス２０７は、近距離無線通信を行うハードウェアである。
【００５８】
この場合、例えば、Ｗｅｂアプリケーション３１の開発者は、ＮＦＣデバイス２０７を制御するためのＮＦＣ制御モジュール２２ａを作成する。この際、ＮＦＣ制御モジュール２２ａは、追加モジュールＡＰＩ２２１を有するように作成される。作成されたＮＦＣ制御モジュール２２ａは、任意のタイミングで、追加モジュール２２の一つとして情報処理端末２０にインストールされる。図９では、ＮＦＣ制御モジュール２２ａが、インストールされた状態が示されている。この状態において、ＮＦＣ制御モジュール２２ａは、Ｗｅｂアプリから利用可能となる。すなわち、Ｗｅｂアプリケーション３１は、汎用ＡＰＩ２３１の追加モジュール呼び出し関数を介して、ＮＦＣ制御モジュール２２ａを利用することができる。
【００５９】
例えば、ＮＦＣ制御モジュール２２ａに関して図４の処理が実行される場合、コールバック登録関数及び追加モジュール呼び出し関数の引数には、ＮＦＣ制御モジュール２２ａのモジュールＩＤが指定される。また、追加モジュール呼び出し関数の引数の入力データには、通信相手との接続状況の取得要求を示す情報が指定される。すなわち、入力データには、追加モジュール２２において処理対象とされるデータのみならず、追加モジュール２２に対する処理要求を示すデータも指定可能である。
【００６０】
ＮＦＣ制御モジュール２２ａは、ＮＦＣデバイス２０７による、通信相手との接続状況を確認し、確認結果を、ステップＳ１０６においてブラウザ２３に通知する。ブラウザ２３は、当該確認結果を、コールバック関数を利用して、Ｗｅｂアプリケーション３１に通知する（Ｓ１０７）。その結果、Ｗｅｂアプリケーション３１は、ＮＦＣデバイス２０７の接続状況を把握することができる。
【００６１】
また、ＮＦＣ制御モジュール２２ａに関して、図５及び図６等が実行される場合に、ＮＦＣ制御モジュール２２ａから通知される情報の一例として、通信相手との接続状況の変化を示す情報が挙げられる。例えば、通信相手との接続が確立されたこと、又は通信相手との接続が解除されたことが、コールバック関数を介して、ＮＦＣ制御モジュール２２ａを利用するＷｅｂアプリケーション３１に通知される。
【００６２】
上述したように、本実施の形態によれば、Ｗｅｂアプリケーション３１は、ブラウザ２３の汎用ＡＰＩ２３１を介して、情報処理端末２０によってインストールされた追加モジュール２２のうちのいずれかを、呼び出すことができる。すなわち、実質的に、ブラウザ２３に対して、追加モジュール２２に係る機能を追加することができる。その結果、Ｗｅｂアプリケーション３１が利用可能な機能を増加させるために既存部分（ブラウザ２３）を改変する必要性を低減させることができる。
【００６３】
なお、本実施の形態は、例えば、プロジェクタ、テレビ会議システム、デジタルカメラ、家電製品等、画像形成装置１０以外の機器の操作部として機能するスマートデバイスに対して適用されてもよい。また、機器の操作部として機能するのではなく、単独の情報処理端末２０として機能するスマートデバイスに、本実施の形態が適用されてもよい。
【００６４】
また、本実施の形態は、ＰＣ（Personal Computer）におけるＷｅｂブラウザ、すなわち、プラグイン可能なＷｅｂブラウザに関して適用されてもよい。
【００６５】
なお、本実施の形態において、情報処理端末２０は、情報処理装置の一例である。Ｗｅｂアプリケーションは、表示データの一例である。ブラウザ２３は、表示制御部の一例である。
【００６６】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６７】
１            情報処理システム
１０          画像形成装置
２０          情報処理端末
２１          ＯＳ
２２          追加モジュール
２２ａ        ＮＦＣ制御モジュール
２３          ブラウザ
３０          Ｗｅｂサーバ装置
３１          Ｗｅｂアプリケーション
２０１        ＣＰＵ
２０２        メモリ
２０３        補助記憶装置
２０４        タッチパネル
２０５        無線通信装置
２０６        機器インタフェース
２０７        ＮＦＣデバイス
２１１        表示装置
２１２        入力装置
２２１        追加モジュールＡＰＩ
２３１        汎用ＡＰＩ
【先行技術文献】
【特許文献】
【００６８】
【特許文献１】特願２０１０−１４７０号公報
【図１】
2015176308.tif 000003
【図２】
2015176308.tif 000004
【図３】
2015176308.tif 000005
【図４】
2015176308.tif 000006
【図５】
2015176308.tif 000007
【図６】
2015176308.tif 000008
【図７】
2015176308.tif 000009
【図８】
2015176308.tif 000010
【図９】
2015176308.tif 000011