(57)【特許請求の範囲】
【請求項１】
ネットワーク上のサーバ装置で提供されるＷｅｂアプリケーションに対して、所定の処理の実行要求を行い、又は、前記サーバ装置からダウンロードした前記Ｗｅｂアプリケーションに対して、所定の処理を実行要求するＷｅｂブラウザを備えた機器であって、
前記Ｗｅｂアプリケーションが前記Ｗｅｂブラウザに対して、前記機器に接続されたＮＦＣデバイスの接続状況の要求を行うための第１のインタフェース部と、
前記機器に追加インストールされ、前記機器に接続されたＮＦＣデバイスの接続状況を取得可能な追加プログラムを実行する実行部と、
前記追加プログラムにより取得された、前記機器に接続されたＮＦＣデバイスの接続状況を、前記Ｗｅｂブラウザに通知するための第２のインタフェース部と、を備え、
前記Ｗｅｂアプリケーションと前記Ｗｅｂブラウザとの間において、前記第１のインタフェース部を介して情報の送受信を行い、前記Ｗｅｂブラウザと前記実行部との間において、前記第２のインタフェース部を介して情報の送受信を行うことで、前記追加プログラムにより取得された前記ＮＦＣデバイスの接続状況を、前記Ｗｅｂアプリケーションが、前記第１のインタフェース部及び前記第２のインタフェース部を介して取得すること
を特徴とする機器。
【請求項２】
前記実行部は、複数の前記追加プログラムを個別に記憶し、
前記Ｗｅｂブラウザは、前記実行部において個別に記憶した各追加プログラムのうち、前記Ｗｅｂアプリケーションから指定された前記追加プログラムに対応する通信を、前記Ｗｅｂアプリケーションの間で行うこと
を特徴とする請求項１に記載の機器。
【請求項３】
前記Ｗｅｂアプリケーションは、前記各追加プログラムと、それぞれ通信を行うこと
を特徴とする請求項２に記載の機器。
【請求項４】
前記Ｗｅｂブラウザは、前記各追加プログラムからの情報を、それぞれ前記Ｗｅｂアプリケーションに送信すること
を特徴とする請求項２に記載の機器。
【請求項５】
複数の前記Ｗｅｂアプリケーションを備え、
前記Ｗｅｂブラウザは、前記追加プログラムからの情報を、各前記Ｗｅｂアプリケーションにそれぞれ送信すること
を特徴とする請求項１から請求項４のうち、いずれか一項に記載の機器。
【請求項６】
前記情報は、前記通信の相手先の接続状況を確認するための情報を含むこと
を特徴とする請求項２又は請求項３に記載の機器。
【請求項７】
ネットワーク上のサーバ装置で提供されるＷｅｂアプリケーションに対して、所定の処理の実行要求を行い、又は、前記サーバ装置からダウンロードした前記Ｗｅｂアプリケーションに対して、所定の処理を実行要求するＷｅｂブラウザを備えた画像形成装置であって、
前記Ｗｅｂアプリケーションが前記Ｗｅｂブラウザに対して、前記画像形成装置に接続されたＮＦＣデバイスの接続状況の要求を行うための第１のインタフェース部と、
前記画像形成装置に追加インストールされ、前記画像形成装置に接続されたＮＦＣデバイスの接続状況を取得可能な追加プログラムを実行する実行部と、
前記追加プログラムにより取得された、前記画像形成装置に接続されたＮＦＣデバイスの接続状況を、前記Ｗｅｂブラウザに通知するための第２のインタフェース部と、を備え、
前記Ｗｅｂアプリケーションと前記Ｗｅｂブラウザとの間において、前記第１のインタフェース部を介して情報の送受信を行い、前記Ｗｅｂブラウザと前記実行部との間において、前記第２のインタフェース部を介して情報の送受信を行うことで、前記追加プログラムにより取得された前記ＮＦＣデバイスの接続状況を、前記Ｗｅｂアプリケーションが、前記第１のインタフェース部及び前記第２のインタフェース部を介して取得すること
を特徴とする画像形成装置。
【請求項８】
第１のＯＳ及び画像形成機能を備える本体と、
第２のＯＳ及び前記Ｗｅｂブラウザを備え、前記Ｗｅｂアプリケーションを実行する操作部と、をさらに備え、
前記Ｗｅｂアプリケーションが、前記Ｗｅｂブラウザを介して前記接続状況を取得するための前記追加プログラムは、前記第２のＯＳで動作する前記操作部に追加インストールされること
を特徴とする請求項７に記載の画像形成装置。
【請求項９】
前記第２のＯＳを備える操作部が有する前記Ｗｅｂブラウザは、前記画像形成装置にログインしているユーザの情報を、前記第１のＯＳを有する本体から取得するとともに、ログインしているユーザが利用できる追加スクリプトを決定すること
を特徴とする請求項８に記載の画像形成装置。
【請求項１０】
前記第１のインタフェース部は、前記第２のＯＳを備える操作部において、前記Ｗｅｂブラウザが実行する前記Ｗｅｂアプリケーションが取り扱い可能なＪＡＶＡ（登録商標）スクリプトで提供され、
前記第２のインタフェース部は、前記第２のＯＳが実行可能な言語で提供されること
を特徴とする請求項８又は請求項９に記載の画像形成装置。
【請求項１１】
ネットワーク上のサーバ装置で提供されるＷｅｂアプリケーションに対して、所定の処理の実行要求を行い、又は、前記サーバ装置からダウンロードした前記Ｗｅｂアプリケーションに対して、所定の処理を実行要求するＷｅｂブラウザを備えた画像形成装置の情報処理方法であって、
前記Ｗｅｂアプリケーションが前記Ｗｅｂブラウザに対して、前記画像形成装置に接続されたＮＦＣデバイスの接続状況の要求を行うための第１のインタフェース部と、
前記画像形成装置に追加インストールされ、前記画像形成装置に接続されたＮＦＣデバイスの接続状況を取得可能な追加プログラムを実行する実行部と、
前記追加プログラムにより取得された、前記画像形成装置に接続されたＮＦＣデバイスの接続状況を、前記Ｗｅｂブラウザに通知するための第２のインタフェース部と、を設け、
前記Ｗｅｂアプリケーションと前記Ｗｅｂブラウザとの間において、前記第１のインタフェース部を介して情報の送受信を行い、前記Ｗｅｂブラウザと前記実行部との間において、前記第２のインタフェース部を介して情報の送受信を行うことで、前記追加プログラムにより取得された前記ＮＦＣデバイスの接続状況を、前記Ｗｅｂアプリケーションが、前記第１のインタフェース部及び前記第２のインタフェース部を介して取得すること
を特徴とする情報処理方法。
【請求項１２】
ネットワーク上のサーバ装置で提供されるＷｅｂアプリケーションに対して、所定の処理の実行要求を行い、又は、前記サーバ装置からダウンロードした前記Ｗｅｂアプリケーションに対して、所定の処理を実行要求するＷｅｂブラウザを備えた画像形成装置のコンピュータを機能させる情報処理プログラムであって、
前記コンピュータを、
前記Ｗｅｂアプリケーションが前記Ｗｅｂブラウザに対して、前記画像形成装置に接続されたＮＦＣデバイスの接続状況の要求を行うための第１のインタフェース部と、
前記画像形成装置に追加インストールされ、前記画像形成装置に接続されたＮＦＣデバイスの接続状況を取得可能な追加プログラムを実行する実行部と、
前記追加プログラムにより取得された、前記画像形成装置に接続されたＮＦＣデバイスの接続状況を、前記Ｗｅｂブラウザに通知するための第２のインタフェース部として機能させ、
前記Ｗｅｂアプリケーションと前記Ｗｅｂブラウザとの間において、前記第１のインタフェース部を介して情報の送受信を行い、前記Ｗｅｂブラウザと前記実行部との間において、前記第２のインタフェース部を介して情報の送受信を行うことで、前記追加プログラムにより取得された前記ＮＦＣデバイスの接続状況を、前記Ｗｅｂアプリケーションが、前記第１のインタフェース部及び前記第２のインタフェース部を介して取得すること
を特徴とする情報処理プログラム。
【請求項１３】
ネットワーク上のサーバ装置と、前記サーバ装置で提供されるＷｅｂアプリケーションに対して、所定の処理の実行要求を行い、又は、前記サーバ装置からダウンロードした前記Ｗｅｂアプリケーションに対して、所定の処理を実行要求するＷｅｂブラウザを備えた機器とを有する情報処理システムであって、
前記Ｗｅｂアプリケーションが前記Ｗｅｂブラウザに対して、前記機器に接続されたＮＦＣデバイスの接続状況の要求を行うための第１のインタフェース部と、
前記機器に追加インストールされ、前記機器に接続されたＮＦＣデバイスの接続状況を取得可能な追加プログラムを実行する実行部と、
前記追加プログラムにより取得された、前記機器に接続されたＮＦＣデバイスの接続状況を、前記Ｗｅｂブラウザに通知するための第２のインタフェース部と、を備え、
前記Ｗｅｂアプリケーションと前記Ｗｅｂブラウザとの間において、前記第１のインタフェース部を介して情報の送受信を行い、前記Ｗｅｂブラウザと前記実行部との間において、前記第２のインタフェース部を介して情報の送受信を行うことで、前記追加プログラムにより取得された前記ＮＦＣデバイスの接続状況を、前記Ｗｅｂアプリケーションが、前記第１のインタフェース部及び前記第２のインタフェース部を介して取得すること
を特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器、画像形成装置、情報処理方法、情報処理プログラム及び情報処理システムに関する。
【背景技術】
【０００２】
近年、Ｗｅｂブラウザに多くの機能が追加されている。これに伴い、ＨＴＭＬ（HyperText  Markup  Language）／ＣＳＳ（Cascading  Style  Sheet）／ＪＡＶＡ（登録商標）スクリプトを用いてソリューションを提供するＷｅｂアプリケーションも増えている。このような動きは、パーソナルコンピュータ装置（ＰＣ）のみならず、スマートデバイスの分野にも広がっている。
【０００３】
特許文献１（特開２０１１−１４１６８４号公報）には、Ｗｅｂブラウザにジョブのフローが記載されたＨＴＭＬファイルを格納してユーザに提供する画像形成装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、スマートデバイスに設けられるＷｅｂブラウザは、パーソナルコンピュータ装置に設けられるＷｅｂブラウザとは異なり、ブラウザソフトをアップデートすることなく、Ｗｅｂブラウザに機能を追加することは困難である。また、スマートデバイスに設けられるＷｅｂブラウザは、ユーザが開発したプラグインをインストールして機能を追加することは困難である。特許文献１に開示されている画像形成装置も、同様の問題がある。
【０００５】
本発明は、上述の課題に鑑みてなされたものであり、機器のプログラムをアップデートすることなく、簡単に機能を追加可能な機器、画像形成装置、情報処理方法、情報処理プログラム及び情報処理システムの提供を目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、ネットワーク上のサーバ装置で提供されるＷｅｂアプリケーションに対して、所定の処理の実行要求を行い、又は、サーバ装置からダウンロードしたＷｅｂアプリケーションに対して、所定の処理を実行要求するＷｅｂブラウザを備えた機器であって、ＷｅｂアプリケーションがＷｅｂブラウザに対して、機器に接続されたＮＦＣデバイスの接続状況の要求を行うための第１のインタフェース部と、機器に追加インストールされ、機器に接続されたＮＦＣデバイスの接続状況を取得可能な追加プログラムを実行する実行部と、追加プログラムにより取得された、機器に接続されたＮＦＣデバイスの接続状況を、Ｗｅｂブラウザに通知するための第２のインタフェース部と、を備え、ＷｅｂアプリケーションとＷｅｂブラウザとの間において、第１のインタフェース部を介して情報の送受信を行い、Ｗｅｂブラウザと実行部との間において、第２のインタフェース部を介して情報の送受信を行うことで、追加プログラムにより取得されたＮＦＣデバイスの接続状況を、Ｗｅｂアプリケーションが、第１のインタフェース部及び第２のインタフェース部を介して取得することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、機器のプログラムをアップデートすることなく、簡単に機能を追加できるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態のＭＦＰ及びサーバ装置のハードウェア構成図である。
【図２】図２は、実施の形態のＭＦＰに設けられているＷｅｂブラウザの機能拡張動作を実現するためのソフトウェア構成図である。
【図３】図３は、Ｗｅｂアプリケーション、Ｗｅｂブラウザ及び追加スクリプトの標準的な動作の流れを示すシーケンス図である。
【図４】図４は、Ｗｅｂブラウザでスクリプト汎用ＡＰＩの要求を処理する流れを示すフローチャートである。
【図５】図５は、Ｗｅｂブラウザが対応していないＮＦＣデバイスを利用可能にするためのソフトウェア構成を示す図である。
【図６】図６は、ＷｅｂアプリケーションがＮＦＣデバイスの接続状況を取得する流れを示すシーケンス図である。
【図７】図７は、ＮＦＣデバイスの接続状況の変更を通知する流れを示すシーケンス図である。
【図８】図８は、ＮＦＣデバイスの接続状況が変更されたことを複数のＷｅｂアプリケーションに通知する流れを示すシーケンス図である。
【発明を実施するための形態】
【０００９】
以下、一例として、本発明を適用した実施の形態となる複合機（ＭＦＰ）の説明をする。なお、本発明をＭＦＰに適用することは一例であり、Ｗｅｂブラウザを備えた機器であれば、どのような電子機器に適用してもよい。
【００１０】
図１は、機器の一例となる実施の形態のＭＦＰ１のハードウェア構成図である。図１に示すように、ＭＦＰ１は、コピー機能、スキャナ機能、ファクシミリ機能、プリンタ機能等の各種の機能を備えた本体１０と、ユーザの操作に応じた入力を受け付ける操作部２０とを備える。本体１０と操作部２０は、専用の通信路３０を介して相互に通信可能に接続されている。通信路３０は、例えばＵＳＢ（Universal  Serial  Bus）規格のものを用いることもできるが、有線か無線かを問わず任意の規格のものであってよい。また、本体１０は、コピー機能、スキャナ機能、ファクシミリ機能、プリンタ機能等の画像形成機能のうち、一つの機能を有していてもよいし又は複数の機能を有していてもよい。
【００１１】
操作部２０としては、単独で完結した情報処理を実行可能な電子機器を用いることができる。一例として、操作部２０としては、スマートフォン又はタブレット型端末等の情報処理端末（スマートデバイス）を用いることができる。この場合、操作部２０として用いられるスマートデバイスは、ＭＦＰ１の操作部として機能する。
【００１２】
より詳しくは、操作部２０として用いられるスマートデバイスは、従来、ＭＦＰ１専用の操作部として固定され設置されていた操作パネルの代わりに、ＭＦＰ１に対して装着及び取り外しが可能に接続される。すなわち、操作部２０として用いられるスマートデバイスは、例えばＭＦＰ１の操作パネルが配置される位置等の所定の位置に取り外し可能（分離可能）ながらも、ＭＦＰ１と一体的に設置される。従って、操作部２０として用いられるスマートデバイスおよびＭＦＰ１は、一台の装置として把握されてもよい。操作部２０であるスマートデバイスは、ＭＦＰ１から取り外されると、ＭＦＰ１との間で、例えばＢｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）又は赤外線通信等の無線通信を行い、ＭＦＰ１の操作部として機能する。なお、ＭＦＰ１は、このように本体１０から操作部２０が取り外し可能となっているが、操作部２０が本体１０に固定されていてもよい。
【００１３】
本体１０は、操作部２０で受け付けた入力に応じた動作を行う。また、本体１０は、クライアントＰＣ（パーソナルコンピュータ）等の外部装置とも通信可能であり、外部装置から受信した指示に応じた動作も行う。
【００１４】
次に、本体１０のハードウェア構成について説明する。図１に示すように、本体１０は、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３と、ＨＤＤ（ハードディスクドライブ）１４とを備える。また、本体１０は、通信Ｉ／Ｆ（インタフェース）１５と、接続Ｉ／Ｆ１６と、エンジン部１７とを備える。各部１１〜１７は、システムバス１８を介して相互に接続されている。
【００１５】
ＣＰＵ１１は、本体１０の動作を統括的に制御する。ＣＰＵ１１は、ＲＡＭ１３をワークエリア（作業領域）としてＲＯＭ１２又はＨＤＤ１４等に格納されたプログラムを実行することで、本体１０全体の動作を制御し、上述したコピー機能、スキャナ機能、ファクシミリ機能、プリンタ機能などの各種機能を実現する。
【００１６】
通信Ｉ／Ｆ１５は、ネットワーク４０上のクライアントＰＣ（パーソナルコンピュータ）又はサーバ装置の一例であるＷｅｂサーバ装置３７等の外部装置と通信するためのインタフェースである。接続Ｉ／Ｆ１６は、通信路３０を介して操作部２０と通信するためのインタフェースである。なお、図１において、通信路３０は、有線的に図示されているが、上述のように操作部２０は、ＭＦＰ１の本体１０に対して装着及び取り外し可能に設けられている。このため、操作部２０をＭＦＰ１に装着しているときには、通信路３０は有線通信路として機能し、操作部２０をＭＦＰ１から取り外したときには、通信路３０は無線通信路として機能するものと理解されたい。
【００１７】
エンジン部１７は、コピー機能、スキャナ機能、ファクシミリ機能及びプリンタ機能を実現させるための、汎用的な情報処理及び通信以外の処理を行うハードウェアである。エンジン部１７は、例えば原稿の画像をスキャンして読み取るスキャナ（画像読取部）、用紙等のシート材への印刷を行うプロッタ（画像形成部）、ファクシミリ通信を行うファクシミリ通信部などを備えている。さらに、印刷済みシート材を仕分けるフィニッシャ及び原稿を自動給送するＡＤＦ（自動原稿給送装置）のような特定のオプションを備えることもできる。
【００１８】
次に、操作部２０のハードウェア構成について説明する。図１に示すように、操作部２０は、ＣＰＵ２１と、ＲＯＭ２２と、ＲＡＭ２３と、フラッシュメモリ２４と、通信Ｉ／Ｆ２５と、接続Ｉ／Ｆ２６と、操作パネル２７とを備え、これらがシステムバス２８を介して相互に接続されている。
【００１９】
ＣＰＵ２１は、操作部２０の動作を統括的に制御する。ＣＰＵ２１は、ＲＡＭ２３をワークエリア（作業領域）としてＲＯＭ２２又はフラッシュメモリ２４等に格納されたプログラムを実行することで、操作部２０全体の動作を制御する。
【００２０】
また、例えばＲＯＭ２２等の記憶部に、Ｗｅｂブラウジングアプリケーションプログラム（ＷｅｂブラウジングＡＰ）が記憶されている。ＣＰＵ２１は、ＷｅｂブラウジングＡＰを実行することで、Ｗｅｂブラウザ１９を実現する。Ｗｅｂブラウザ１９は、Ｗｅｂサーバ装置３７のＨＤＤ３４等の記憶部に記憶されているＷｅｂアプリケーション３９と連携してブラウジング動作等を行う。詳しくは、後述するが、実施の形態のＭＦＰ１は、操作部２０のＷｅｂブラウザ１９に対して、ブラウザソフトをアップデートすることなく、簡単に機能を追加可能となっている。Ｗｅｂアプリケーション３９は、第１のプログラムの一例である。Ｗｅｂブラウザ１９は、第２のプログラムの一例である。
【００２１】
なお、この例では、ＷｅｂブラウジングＡＰは、ＭＦＰ１の操作部２０のＲＯＭ２２等に記憶されていることとした。しかし、ＷｅｂブラウジングＡＰは、例えばＲＯＭ１２、ＲＡＭ１３又はＨＤＤ１４等の、ＭＦＰ１の本体１０側の記憶部に記憶してもよい。この場合、本体１０側のＣＰＵ１１が、ＲＯＭ１２等に記憶されているＷｅｂブラウジングＡＰを実行することで、Ｗｅｂブラウザ１９を実現する。
【００２２】
通信Ｉ／Ｆ２５は、例えばネットワーク４０上のＷｅｂサーバ装置３７と通信するためのインタフェースである。接続Ｉ／Ｆ２６は、通信路３０を介して本体１０と通信するためのインタフェースである。
【００２３】
操作パネル２７は、タッチセンサを備えた液晶表示装置（ＬＣＤ）で構成される。操作パネル２７は、ユーザの操作に応じた各種の入力を受け付けると共に、例えば受け付けた入力に応じた情報、ＭＦＰ１の動作状況を示す情報、設定状態を示す情報等の各種の情報を表示する。なお、操作パネル２７は、タッチセンサを備えた有機ＥＬ表示装置で構成されてもよい。さらに、これに加えて又はこれに代えて、ハードウェアキー等の操作部やランプ等の表示部を設けることもできる。
【００２４】
次に、このようなＭＦＰ１とネットワーク４０を介して接続されるＷｅｂサーバ装置３７は、図１のハードウェア構成図に示すように、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、ＨＤＤ３４、通信Ｉ／Ｆ３５を備えている。ＣＰＵ３１〜通信Ｉ／Ｆ３５は、システムバス３８を介して相互に接続されている。ＨＤＤ３４等の記憶部には、ユーザにソリューションを提供するＭＦＰ１のメーカにおけるアプリ開発者及びサードベンダで開発されたＷｅｂアプリケーション３９が記憶されている。Ｗｅｂアプリケーション３９は、ＣＰＵ３１により実行され、ＭＦＰ１のＷｅｂブラウザ１９と連携して、Ｗｅｂブラウザ１９のブラウジング動作等を可能とする。なお、Ｗｅｂサーバ装置３７からＭＦＰ１にＷｅｂアプリケーション３９をダウンロードし、ＭＦＰ１のＣＰＵ２１又はＣＰＵ１１が、ダウンロードしたＷｅｂアプリケーション３９を実行してもよい。
【００２５】
なお、実施の形態の例では、機能の独立性を保つために、本体１０側のＯＳと操作部２０側のＯＳが互いに異なる。つまり、本体１０と操作部２０は、別々のオペレーティングシステムで互いに独立して動作する。例えば、本体１０側のＯＳとしてリナックス（登録商標）（Ｌｉｎｕｘ（登録商標））を用い、操作部２０側のＯＳとしてアンドロイド（Ａｎｄｒｏｉｄ（登録商標））を用いることも可能である。
【００２６】
本体１０及び操作部２０を別々のオペレーティングシステムで動作させることで、本体１０と操作部２０との間の通信は、共通の装置内のプロセス間通信ではなく、異なる装置間の通信として行われる。操作部２０が受け付けた入力（ユーザからの指示内容）を本体１０へ伝達する動作（コマンド通信）及び本体１０が操作部２０へイベントを通知する動作などがこれに該当する。ここでは、操作部２０が本体１０へコマンド通信を行うことにより、本体１０の機能を使用することができる。また、本体１０から操作部２０に通知するイベントには、本体１０における動作の実行状況、本体１０側で設定された内容などが挙げられる。
【００２７】
次に、実施の形態のＭＦＰ１は、操作部２０に設けられているＷｅｂブラウザ１９の機能を、ソフトウェア更新を行うことなく、ユーザが開発した機能をインストールして拡張することができる。図２は、このようなＷｅｂブラウザ１９の機能拡張動作を実現するためのソフトウェア構成図である。この図２において、「Ｗｅｂブラウザ１９」と「スマートデバイス上のＯＳ５０」は、例えばＭＦＰ１に設けられておりＭＦＰ１のメーカにより提供される部分である。また、ＯＳ５０は、制御プログラムの一例である。これに対して、「Ｗｅｂアプリケーション３９」と「スクリプト実行部５１」はユーザにソリューションを提供するＭＦＰ１のメーカにおけるアプリ開発者及びサードベンダにより開発され提供される部分である。
【００２８】
スクリプト実行部５１の追加スクリプト５２は、ユーザにより開発され、操作部２０等にインストールされる、いわゆるプラグインモジュールである。ユーザは、所望の動作仕様及びスクリプト実行部５１で処理をさせるための命令文を記載して追加スクリプト５２を生成する。スクリプト実行部５１は、実行部の一例である。追加スクリプト５２は、追加プログラムの一例である。
【００２９】
また、通常、パーソナルコンピュータ装置（ＰＣ）のＷｅｂブラウザには、プラグインという形式を利用した機能拡張の方式が採用されており、プラグイン向けのＡＰＩが提供されている。しかし、主に操作部２０のようなスマートデバイスに設けられるアンドロイド（Ａｎｄｒｏｉｄ）又はアイオーエス（ｉＯＳ（登録商標））等のＯＳには、プラグインの仕組みが用意されていない。このため、ＭＦＰ１のメーカにおけるアプリ開発者及びサードベンダ側において、プラグインを利用してＷｅｂブラウザの機能を追加（拡張）できない。
【００３０】
このようなことから、実施の形態のＭＦＰ１のメーカは、予めＷｅｂブラウザ１９にＷｅｂアプリケーション３９及びスクリプト実行部５１を接続するための汎用ＡＰＩ５５ａ、５５ｂ、５６ａ、５６ｂ、５８ａ、５８ｂを用意しておく。
【００３１】
Ｗｅｂアプリケーション３９とＷｅｂブラウザ１９との間の汎用ＡＰＩ５５ａ、５５ｂは、第１のインタフェース部の一例であり、Ｗｅｂアプリケーション３９で取り扱い可能な、例えばＪＡＶＡ（登録商標）スクリプト等の言語で提供される。また、Ｗｅｂブラウザ１９とスクリプト実行部５１との間の汎用ＡＰＩ５６ａ、５６ｂ、５８ａ、５８ｂは、第２のインタフェース部の一例であり、スマートデバイス上のＯＳ５０が実行可能な言語で提供される。例えば、ＯＳ５０がアンドロイド（登録商標）の場合、汎用ＡＰＩ５６ａ、５６ｂ、５８ａ、５８ｂは、ＪＡＶＡ（登録商標）スクリプトの言語で記述され提供される。また、ＯＳ５０がアイオーエス（ｉＯＳ（登録商標））の場合、汎用ＡＰＩ５６ａ、５６ｂ、５８ａ、５８ｂは、オブジェクティブＣ（Ｏｂｊｅｃｔｉｖｅ−Ｃ）の言語で記述され提供される。
【００３２】
また、スクリプト実行部５１が起動されると、インストールされている追加スクリプト５２は、実行形式にコンパイルされ、実行可能な状態とされる。Ｗｅｂブラウザ１９は、汎用ＡＰＩ５５ａ、５５ｂを介して、Ｗｅｂアプリケーション３９からの要求を取得する。この際、Ｗｅｂアプリケーション３９は、要求先となるスクリプト実行部５１を示すデータ及びスクリプト実行部５１に渡すデータで生成した要求を、汎用ＡＰＩ５５ａ、５５ｂを介してＷｅｂブラウザ１９に通知する。
【００３３】
Ｗｅｂブラウザ１９は、Ｗｅｂアプリケーション３９から取得した要求を、汎用ＡＰＩ５６ａ、５６ｂを介して、要求先となる追加スクリプト５２がインストールされたスクリプト実行部５１に送信する。スクリプト実行部５１は、上述のように実行できる状態の追加スクリプト５２のスクリプト汎用ＡＰＩ５７（又はスクリプト汎用ＡＰＩ５９）を実行する。この一連の流れにより、ユーザが記載した追加スクリプト５２による拡張機能をユーザに提供することができる。
【００３４】
なお、追加スクリプト５２は、一つでもよいし、複数でもよい。複数の追加スクリプト５２が存在する場合でも、Ｗｅｂアプリケーション３９が、利用する追加スクリプト５２を指定できるため、所望の追加スクリプト５２の機能を利用できる。
【００３５】
また、追加スクリプト５２は、ユーザ毎に設けられている格納領域に格納される。Ｗｅｂブラウザ１９は、ユーザに応じて、呼び出す追加スクリプト５２を変更する。ユーザ毎の追加スクリプト５２の格納領域の判別は、Ｗｅｂブラウザ１９が、本体１０にログインしているユーザを、本体１０から取得して判別する。
【００３６】
次に、図３のシーケンス図に、Ｗｅｂアプリケーション３９、Ｗｅｂブラウザ１９及び追加スクリプト５２の標準的な動作の流れを示す。前提として、追加スクリプト５２は、予めスクリプト実行部５１にインストールされており、利用可能な状態となっている。この状態において、ステップＳ１から処理が開始される。ステップＳ１では、Ｗｅｂアプリケーション３９が、要求先及び送信データを、汎用ＡＰＩ５５ａ、５５ｂを介してＷｅｂブラウザ１９に通知する。要求先は、例えば追加スクリプト５２とする。
【００３７】
次に、Ｗｅｂブラウザ１９は、ステップＳ２において、ログインしているユーザの情報を本体１０から取得し、ログインしているユーザが利用できる追加スクリプト５２を決定する。次に、Ｗｅｂブラウザ１９は、ステップＳ３において、汎用ＡＰＩ５６a、５６ｂを介して、送信データをスクリプト実行部５１に通知する。
【００３８】
スクリプト実行部５１は、ステップＳ４において、起動時に、実行形式に変換済みの追加スクリプト５２に対して、スクリプト汎用ＡＰＩ５７（又はスクリプト汎用ＡＰＩ５９）を利用して送信データを通知する。必要であれば、追加スクリプト５２は、ステップＳ５に示すように、スクリプト実行部５１に対して処理結果を通知する。また、必要であれば、ステップＳ６に示すように、スクリプト実行部５１は、Ｗｅｂブラウザ１９に対して処理結果を通知する。この場合、Ｗｅｂブラウザ１９は、ステップＳ７に示すように、追加スクリプト５２からの処理結果をＷｅｂアプリケーション３９に通知する。
【００３９】
次に、図４は、Ｗｅｂブラウザ１９でスクリプト汎用ＡＰＩ５７の要求を処理する流れを示すフローチャートである。この図４のフローチャートにおいて、まず、ステップＳ１１では、Ｗｅｂブラウザ１９が、汎用ＡＰＩ５５ａ、５５ｂを介して、Ｗｅｂアプリケーション３９から要求先と送信データを受信する。要求先は、例えば追加スクリプト５２とする。
【００４０】
次に、ステップＳ１２では、Ｗｅｂブラウザ１９が、ログインしているユーザの情報を本体１０から取得し、ログインしているユーザに対応する追加スクリプト５２を、送信データの送信先として決定する。次に、ステップＳ１３では、Ｗｅｂブラウザ１９が、Ｗｅｂアプリケーション３９から受信した要求先と送信データとを分離する。ステップＳ１４では、スクリプト実行部５１が、要求先となる追加スクリプト５２の有無を判別する。要求先となる追加スクリプト５２が存在しないものと判別した場合（ステップＳ１４：Ｎｏ）、そのまま図４のフローチャートの処理を終了する。
【００４１】
これに対して、要求先となる追加スクリプト５２が存在するものと判別した場合（ステップＳ１４：Ｙｅｓ）、ステップＳ１５に処理が進む。ステップＳ１５では、スクリプト実行部５１が、要求先の追加スクリプト５２から送信された通知の有無を判別する。要求先の追加スクリプト５２からの通知が無いものと判別した場合（ステップＳ１５：Ｎｏ）、そのまま図４のフローチャートの処理を終了する。これに対して、要求先の追加スクリプト５２から通知があったものと判別した場合（ステップＳ１５：Ｙｅｓ）、ステップＳ１６に処理が進む。
【００４２】
ステップＳ１６では、スクリプト実行部５１が、追加スクリプト５２からの通知を取得する。最後に、ステップＳ１７において、Ｗｅｂブラウザ１９がＷｅｂアプリケーション３９に追加スクリプト５２からの通知を送信し、図４のフローチャートの処理を終了する。
【００４３】
次に、図５に、図２に示した構成をさらに具体化した構成を示す。この図５は、Ｗｅｂブラウザ１９が対応していないＮＦＣデバイスを利用可能にするためのソフトウェア構成を示している。今日におけるスマートデバイスには、カメラ部、マイクホン部、ＧＰＳ（Global  Positioning  System）等のデバイスが標準的に設けられているが、これらのデバイスにＷｅｂブラウザは対応していない。図５に示す例は、スマートデバイス（操作部２０）上に設けられたＮＦＣ（Near  Field  Communication：近距離無線通信）デバイス６２を、Ｗｅｂブラウザ１９でＷｅｂアプリケーション３９から利用可能とした例である。
【００４４】
この場合、ＮＦＣデバイス６２を制御するためのＮＦＣ制御プラグイン（ＮＦＣ制御スクリプト）６１を予め操作部２０にインストールすると共に、Ｗｅｂブラウザ１９で定めているスクリプト汎用ＡＰＩ５７の対応を行っておく。また、上述のように、Ｗｅｂブラウザ１９は、汎用ＡＰＩ５５ｂ、５６ａの対応は済んでおり、Ｗｅｂアプリケーション３９からいつでも利用可能な状態とする。
【００４５】
また、Ｗｅｂアプリケーション３９は、ＮＦＣ制御スクリプト６１に対して送信するデータの仕様を認識しており、ＪＡＶＡ（登録商標）スクリプト等の所定の言語で要求が可能となっている。また、Ｗｅｂブラウザ１９に対して、汎用ＡＰＩ５５ａ、５５ｂを介して通知を受け取ることができるように事前に登録を行っている。また、ＮＦＣ制御スクリプト６１は、ログインユーザ毎に期待されている動きが異なるとする。また、上述のように、予めユーザ毎に異なる管理領域に、ＮＦＣ制御スクリプト６１はインストールされる。
【００４６】
図６のシーケンス図に、Ｗｅｂアプリケーション３９がＮＦＣデバイス６２の接続状況を取得する流れを示す。まず、ステップＳ２１では、Ｗｅｂアプリケーション３９が、Ｗｅｂブラウザ１９に対し、通信を希望する追加スクリプトの登録を行う。この例では、ＮＦＣ制御スクリプト６１からの通知を受信するように、通知用のＪＡＶＡ（登録商標）スクリプトの関数登録を行う。Ｗｅｂブラウザ１９は、複数の追加スクリプト（複数のＮＦＣ制御スクリプト）が存在していても、Ｗｅｂアプリケーション３９に対して、予め登録された追加スクリプトに対応する通知（通信）のみを行う。これにより、Ｗｅｂアプリケーション３９に掛かる通知処理の負荷を軽減できる。なお、全ての通知を取得する場合、Ｗｅｂアプリケーション３９は、ステップＳ２１の処理をスキップする（行う必要はない）。
【００４７】
次に、ステップＳ２２では、Ｗｅｂアプリケーション３９が、ＮＦＣデバイス６２に接続されているデバイスの接続状況を取得するためにＡＰＩを利用する。ステップＳ２３では、Ｗｅｂブラウザ１９が、本体１０からログインユーザの情報を取得する。例えば、図５に「ＵＳＥＲ００２」で示すユーザが本体１０にログインしていた場合、Ｗｅｂブラウザ１９は、この「ＵＳＥＲ００２」のユーザのために用意された管理領域に記憶されているＮＦＣ制御スクリプト６１を要求先として決定する。Ｗｅｂブラウザ１９は、ＮＦＣ制御スクリプト６１への要求を汎用ＡＰＩ５５ａ、５５ｂを介して取得し、ステップＳ２４において、スクリプト実行部５１に相手先接続状況の取得要求を行う。
【００４８】
スクリプト実行部５１は、ステップＳ２５において、実行形式となっているＮＦＣ制御スクリプト６１に、スクリプト汎用ＡＰＩ５７で送信する。ＮＦＣ制御スクリプト６１は、相手先接続状況の取得要求を取得し、ＮＦＣデバイス６２の状況を確認する。そして、ＮＦＣ制御スクリプト６１は、ステップＳ２６において、スクリプト汎用ＡＰＩ５７を用いてスクリプト実行部５１に相手先接続状況を通知する。スクリプト実行部５１は、ステップＳ２７において、汎用ＡＰＩ５６ｂを用いてＷｅｂブラウザ１９に相手先接続状況の通知を行う。最後に、Ｗｅｂブラウザ１９は、ステップＳ２８において、ＮＦＣ制御スクリプト６１からの通知に対し、コールバック関数にてＷｅｂアプリケーション３９に通知を行う。
【００４９】
次に、図７のシーケンス図に、ＮＦＣデバイス６２の接続状況の変更を通知する流れを示す。この図７のシーケンス図において、ステップＳ３１では、ＮＦＣ制御スクリプト６１が、相手先接続状況の取得の変更を検出し、スクリプト汎用ＡＰＩ５７を用いて、スクリプト実行部５１に相手先接続状況の変更通知を行う。
【００５０】
ステップＳ３２では、スクリプト実行部５１が、汎用ＡＰＩ５６ｂを用いて、Ｗｅｂブラウザ１９に相手先接続状況の変更通知を行う。ステップＳ３３では、Ｗｅｂブラウザ１９が、変更通知を送信した管理領域のＮＦＣ制御スクリプト６１を判断する。Ｗｅｂブラウザ１９は、現在ログインしているユーザに対応する管理領域のＮＦＣ制御スクリプト６１からの変更通知であるものと判断した場合、コールバック関数にてＷｅｂアプリケーション３９に、相手先接続状況の変更通知を行う。
【００５１】
次に、図８のシーケンス図に、ＮＦＣデバイス６２の接続状況が変更されたことを複数のＷｅｂアプリケーション３９ａ、３９ｂに通知する流れを示す。この図８のシーケンス図において、ステップＳ４１では、ＮＦＣ制御スクリプト６１が、相手先接続状況取得の変更を検出し、スクリプト汎用ＡＰＩ５７を用いて、スクリプト実行部５１に相手先接続状況の変更通知を行う。
【００５２】
次に、ステップＳ４２では、スクリプト実行部５１が、汎用ＡＰＩ５６ｂを用いて、相手先接続状況の変更通知をＷｅｂブラウザ１９に送信する。Ｗｅｂブラウザ１９は、変更通知を送信した管理領域のＮＦＣ制御スクリプト６１を判断する。ステップＳ４３では、Ｗｅｂブラウザ１９は、現在ログインしているユーザの管理領域のＮＦＣスクリプト６１からの変更通知であると判断した場合に、コールバック関数にて第１のＷｅｂアプリケーション３９ａに変更通知を行う。また、Ｗｅｂブラウザ１９は、他に通知が必要となる例えば第２のＷｅｂアプリケーション３９ｂを検出した場合、ステップＳ４４に示すように、コールバック関数にて変更通知を行う。
【００５３】
以上の説明から明らかなように、実施の形態のＭＦＰ１は、Ｗｅｂアプリケーション３９とＷｅｂブラウザ１９との間に、例えばＪＡＶＡ（登録商標）スクリプト等の、Ｗｅｂアプリケーション３９が取り扱い可能な言語で記述された汎用ＡＰＩ５５ａ、５５ｂを設ける。また、Ｗｅｂブラウザ１９とスクリプト実行部５１との間に、操作部２０のＯＳが取り扱い可能な言語で記述された汎用ＡＰＩ５６ａ、５６ｂを設ける。スクリプト実行部５１は、起動時に、インストールされている追加スクリプト５２を実行形式にコンパイルし、実行可能な状態とする。
【００５４】
Ｗｅｂブラウザ１９は、汎用ＡＰＩ５５ａ、５５ｂを介して、Ｗｅｂアプリケーション３９からの要求を取得する。Ｗｅｂブラウザ１９は、Ｗｅｂアプリケーション３９から通知された要求先であるスクリプト実行部５１に対しデータを送信する。スクリプト実行部５１は、送信されたデータを、実行可能な状態となっている追加スクリプト５２のスクリプト汎用ＡＰＩ５７で実行する。これにより、ブラウザソフトをアップデートすることなく、ユーザが記述した追加スクリプト５２による機能をＷｅｂブラウザ１９に追加して、Ｗｅｂブラウザ１９の機能を簡単に拡張できる。
【００５５】
また、追加スクリプト５２は、ユーザ毎に設けられている格納領域に格納される。Ｗｅｂブラウザ１９は、本体１０にログインしているユーザを問い合わせることで、ログインしているユーザを認識し、ユーザに応じて、呼び出す追加スクリプト５２を変更する。これにより、Ｗｅｂアプリケーション３９側の無駄な処理の実行を防止でき、レスポンスが低下する不都合を防止できる。
【００５６】
また、複数の追加スクリプト５２が存在する場合は、Ｗｅｂアプリケーション３９は、各追加スクリプト５２を同時に用いることができる。また、複数の追加スクリプト５２が存在する場合において、Ｗｅｂアプリケーション３９に対して予め登録された追加スクリプト５２が存在する場合、Ｗｅｂブラウザ１９は、Ｗｅｂアプリケーション３９に対して、予め登録された追加スクリプトに対応する通知のみを行う。これにより、Ｗｅｂアプリケーション３９に掛かる通知処理の負荷を軽減できる。
【００５７】
また、Ｗｅｂブラウザ１９からの要求を一つ又は複数のＷｅｂアプリケーション３９に対して通知できる。このため、Ｗｅｂアプリケーション３９は、ポーリングの方式で要求を取得するのではなく、イベント取得の方式で、Ｗｅｂブラウザ１９からの要求を取得できる。
【００５８】
このように、操作部２０に設けられているＷｅｂブラウザ１９の機能を、ソフトウェア更新を行うことなく、ユーザが開発した機能をインストールして拡張可能とする情報処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）等のコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。また、情報処理プログラムは、ＣＤ−Ｒ、ＤＶＤ、ブルーレイディスク（登録商標）、半導体メモリ等のコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。ＤＶＤは、「Digital  Versatile  Disk」の略記である。また、情報処理プログラムは、インターネット等のネットワーク経由で提供してもよい。また、情報処理プログラムを、ネットワークを介してダウンロードし、操作部２０（又は本体１０）にインストールして実行してもよい。また、情報処理プログラムを、機器内のＲＯＭ等に予め組み込んで提供してもよい。また、情報処理プログラムの一部又は全部を、ＩＣ（半導体集積回路）等のハードウェアで実現してもよい。
【００５９】
上述の実施の形態は、例として提示したものであり、本発明の範囲を限定することは意図していない。この新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことも可能である。
【００６０】
例えば、実施の形態におけるＭＦＰ１は、本発明を適用する機器の一例である。このため、本発明を、プロジェクタ装置、テレビ会議システム又はデジタルカメラ装置等のＭＦＰ１以外の機器に適用してもよい。
【００６１】
実施の形態及び実施の形態の変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６２】
１  複合機（ＭＦＰ）
１０  本体
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  ＨＤＤ
１５  通信Ｉ／Ｆ
１６  接続Ｉ／Ｆ
１７  エンジン部
１８  システムバス
１９  Ｗｅｂブラウザ
２０  操作部
２１  ＣＰＵ
２２  ＲＯＭ
２３  ＲＡＭ
２４  フラッシュメモリ
２５  通信Ｉ／Ｆ
２６  接続Ｉ／Ｆ
２７  操作パネル
２８  システムバス
３０  通信路
３１  ＣＰＵ
３２  ＲＯＭ
３３  ＲＡＭ
３４  ＨＤＤ
３５  通信Ｉ／Ｆ
３８  システムバス
３９  Ｗｅｂアプリケーション
４０  ネットワーク
５１  スクリプト実行部
５２  追加スクリプト
５５ａ  汎用ＡＰＩ
５５ｂ  汎用ＡＰＩ
５６ａ  汎用ＡＰＩ
５６ｂ  汎用ＡＰＩ
５７  スクリプト汎用ＡＰＩ
５８ａ  汎用ＡＰＩ
５８ｂ  汎用ＡＰＩ
５９  スクリプト汎用ＡＰＩ
６１  ＮＦＣ制御スクリプト
６２  ＮＦＣデバイス
【先行技術文献】
【特許文献】
【００６３】
【特許文献１】特開２０１１−１４１６８４号公報
【図１】
0006668601.tif 000002
【図２】
0006668601.tif 000003
【図３】
0006668601.tif 000004
【図４】
0006668601.tif 000005
【図５】
0006668601.tif 000006
【図６】
0006668601.tif 000007
【図７】
0006668601.tif 000008
【図８】
0006668601.tif 000009