(57)【要約】【課題】ウェブアプリケーションで行われる処理の実行を確保可能する。【解決手段】  コンピュータ１０は、ウェブアプリケーション２１の要求操作を受け付けたブラウザ１１である要求ブラウザを特定し、要求操作の要求対象である要求ウェブアプリケーションを、要求操作に基づいて特定し、要求ウェブアプリケーションとともに提供されるプログラム部品２２である提供プログラム部品を、要求ウェブアプリケーションに基づいて特定し、要求ブラウザで提供プログラム部品を実行可能か判定し、実行不可能と判定した場合に、提供プログラム部品を用いる処理を代替可能な代替手段１３を、提供プログラム部品に基づいて特定し、要求ブラウザに要求ウェブアプリケーションで行われる処理のうち提供プログラム部品を用いる処理を、代替手段１３を用いて実行させる。【選択図】図１
2017120548.tif 000002
【特許請求の範囲】
【請求項１】
ウェブアプリケーションとともに前記ウェブアプリケーションで行われる処理に用いるプログラム部品を提供する提供元と通信可能に接続し、ユーザから前記提供元への前記ウェブアプリケーションの要求操作を受け付けるブラウザを備えるコンピュータにおけるウェブアプリケーション実行支援プログラムであって、
コンピュータに、
前記要求操作を受け付けたブラウザである要求ブラウザを特定し、
前記要求操作の要求対象である要求ウェブアプリケーションを、前記要求操作に基づいて特定し、
前記要求ウェブアプリケーションとともに提供されるプログラム部品である提供プログラム部品を、前記要求ウェブアプリケーションに基づいて特定し、
前記要求ブラウザで前記提供プログラム部品を実行可能か判定し、
実行不可能と判定した場合に、前記提供プログラム部品を用いる処理を代替可能な代替手段を、前記提供プログラム部品に基づいて特定し、
前記要求ブラウザに前記要求ウェブアプリケーションで行われる処理のうち前記提供プログラム部品を用いる処理を、前記代替手段を用いて実行させる、
処理を実行させる、ウェブアプリケーション実行支援プログラム。
【請求項２】
前記ウェブアプリケーションと、前記ウェブアプリケーションの要求方法との対応関係を示すテーブルを参照することにより、前記要求操作から前記要求ウェブアプリケーションを特定する、
請求項１に記載のウェブアプリケーション実行支援プログラム。
【請求項３】
前記ウェブアプリケーションと、前記ウェブアプリケーションとともに提供される前記プログラム部品との対応関係を示すテーブルを参照することにより、前記要求ウェブアプリケーションから前記提供プログラム部品を特定する、
請求項１に記載のウェブアプリケーション実行支援プログラム。
【請求項４】
前記ブラウザと、前記ブラウザが実行できない前記プログラム部品との対応関係を示すテーブルを参照することにより、前記要求ブラウザが前記提供プログラム部品を実行可能か判定する、
請求項１に記載のウェブアプリケーション実行支援プログラム。
【請求項５】
前記プログラム部品と、前記プログラム部品を用いる処理を代替可能な手段との対応関係を示すテーブルを参照することにより、実行不可能と判定された前記提供プログラム部品から前記代替手段を特定する、
請求項１に記載のウェブアプリケーション実行支援プログラム。
【請求項６】
ウェブアプリケーションとともに前記ウェブアプリケーションで行われる処理に用いるプログラム部品を提供する提供元と通信可能に接続し、ユーザから前記提供元への前記ウェブアプリケーションの要求操作を受け付けるブラウザを備えるコンピュータにおけるウェブアプリケーション実行支援プログラムであって、
コンピュータに、
前記要求操作の要求対象である要求ウェブアプリケーションを、前記要求操作に基づいて特定し、
前記要求ウェブアプリケーションとともに提供されるプログラム部品を実行可能な実行可能ブラウザを、前記要求ウェブアプリケーションに基づいて特定し、
前記実行可能ブラウザに、前記ウェブアプリケーションと前記プログラム部品とを実行させる、
処理を実行させる、ウェブアプリケーション実行支援プログラム。
【請求項７】
ウェブアプリケーションとともに前記ウェブアプリケーションで行われる処理に用いるプログラム部品を提供する提供元と通信可能に接続し、ユーザから前記提供元への前記ウェブアプリケーションの要求操作を受け付けるブラウザを備えるコンピュータにおけるウェブアプリケーション実行支援方法であって、
コンピュータが、
前記要求操作を受け付けたブラウザである要求ブラウザを特定し、
前記要求操作の要求対象である要求ウェブアプリケーションを、前記要求操作に基づいて特定し、
前記要求ウェブアプリケーションとともに提供されるプログラム部品である提供プログラム部品を、前記要求ウェブアプリケーションに基づいて特定し、
前記要求ブラウザで前記提供プログラム部品を実行可能か判定し、
実行不可能と判定した場合に、前記提供プログラム部品を用いる処理を代替可能な代替手段を特定し、
前記要求ブラウザに前記要求ウェブアプリケーションで行われる処理のうち前記提供プログラム部品を用いる処理を、前記代替手段を用いて実行させる、
処理を実行する、ウェブアプリケーション実行支援方法。
【請求項８】
ウェブアプリケーションとともに前記ウェブアプリケーションで行われる処理に用いるプログラム部品を提供する提供元と通信可能に接続するウェブアプリケーション実行装置であって、
ユーザから前記ウェブアプリケーションの提供の要求操作を受け付けるブラウザと、
前記要求操作を受け付けたブラウザである要求ブラウザを特定するブラウザ特定部と、
前記要求操作の要求対象である要求ウェブアプリケーションを、前記要求操作に基づいて特定するウェブアプリケーション特定部と、
前記要求ウェブアプリケーションとともに提供されるプログラム部品である提供プログラム部品を、前記要求ウェブアプリケーションに基づいて特定するプログラム部品特定部と、
前記要求ブラウザで前記提供プログラム部品を実行可能か判定する判定部と、
前記判定部が実行不可能と判定した場合に、前記提供プログラム部品を用いる処理を代替可能な代替手段を、前記提供プログラム部品に基づいて特定する代替特定部と、
前記要求ブラウザに前記要求ウェブアプリケーションで行われる処理のうち前記提供プログラム部品を用いる処理を、前記代替手段を用いて実行させる実行制御部と、
を備える、ウェブアプリケーション実行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブアプリケーションで行われる処理の実行を確保可能なウェブアプリケーション実行支援プログラム、ウェブアプリケーション実行支援方法、ウェブアプリケーション実行装置に関する。
【背景技術】
【０００２】
従来からブラウザで実行するウェブアプリケーションの提供がネットワークを介して行われている。従来は、ブラウザによって保有する機能が異なるため、ブラウザによらずに実行できるようにブラウザの基本機能だけで実行できるウェブアプリケーションを提供していた。そのため、実現できる機能が限定され、自由度の高いウェブアプリケーションを提供できないという場合があった。
【０００３】
これに対して、ウェブアプリケーションを提供する際に、ブラウザの基本機能では実現できない機能をブラウザに追加する拡張機能（プラグイン、アドオン、アドイン）を併せて提供し、ウェブアプリケーション実行時にブラウザに拡張機能を実行させることで、ブラウザに画一的に機能を追加してウェブアプリケーションの自由度を向上させることが行われている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−４５４００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ブラウザを更新するなどしてセキュリティ強度が変化すると、提供される拡張機能を実行できなくなる場合があった。この場合、ウェブブアプリケーションで行われる処理の一部（拡張機能を用いる処理）をブラウザに実行させることができなくなるという問題があった。
【０００６】
本発明はこのような問題に鑑みてなされたものであり、ウェブアプリケーションで行われる処理の実行を確保可能なウェブアプリケーション実行支援プログラム、ウェブアプリケーション実行支援方法、およびウェブアプリケーション実行装置を提供する。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のウェブアプリケーション実行支援プログラムを提供する。ウェブアプリケーション実行支援プログラムは、ウェブアプリケーションとともにウェブアプリケーションで行われる処理に用いるプログラム部品を提供する提供元と通信可能に接続し、ユーザから提供元へのウェブアプリケーションの要求操作を受け付けるブラウザを備えるコンピュータに、要求操作を受け付けたブラウザである要求ブラウザを特定し、要求操作の要求対象である要求ウェブアプリケーションを、要求操作に基づいて特定し、要求ウェブアプリケーションとともに提供されるプログラム部品である提供プログラム部品を、要求ウェブアプリケーションに基づいて特定し、要求ブラウザで提供プログラム部品を実行可能か判定し、実行不可能と判定した場合に、提供プログラム部品を用いる処理を代替可能な代替手段を、提供プログラム部品に基づいて特定し、要求ブラウザに要求ウェブアプリケーションで行われる処理のうち提供プログラム部品を用いる処理を、代替手段を用いて実行させる、処理を実行させる。
【０００８】
また上記課題を解決するために、本発明のウェブアプリケーション実行支援方法を提供する。ウェブアプリケーション実行支援方法では、ウェブアプリケーションとともにウェブアプリケーションで行われる処理に用いるプログラム部品を提供する提供元と通信可能に接続し、ユーザから提供元へのウェブアプリケーションの要求操作を受け付けるブラウザを備えるコンピュータが、要求操作を受け付けたブラウザである要求ブラウザを特定し、要求操作の要求対象である要求ウェブアプリケーションを、要求操作に基づいて特定し、要求ウェブアプリケーションとともに提供されるプログラム部品である提供プログラム部品を、要求ウェブアプリケーションに基づいて特定し、要求ブラウザで提供プログラム部品を実行可能か判定し、実行不可能と判定した場合に、提供プログラム部品を用いる処理を代替可能な代替手段を、提供プログラム部品に基づいて特定し、要求ブラウザに要求ウェブアプリケーションで行われる処理のうち提供プログラム部品を用いる処理を、代替手段を用いて実行させる、処理を実行する。
【０００９】
また上記課題を解決するために、本発明のウェブアプリケーション実行装置を提供する。ウェブアプリケーション実行装置は、ウェブアプリケーションとともにウェブアプリケーションで行われる処理に用いるプログラム部品を提供する提供元と通信可能に接続する。ウェブアプリケーション実行装置は、ブラウザと、ブラウザ特定部と、ウェブアプリケーション特定部と、プログラム部品特定部と、判定部と、代替特定部と、実行制御部と、を備える。ブラウザは、ユーザからウェブアプリケーションの提供の要求操作を受け付ける。ブラウザ特定部は、要求操作を受け付けたブラウザである要求ブラウザを特定する。ウェブアプリケーション特定部は、要求操作の要求対象である要求ウェブアプリケーションを、要求操作に基づいて特定する。プログラム部品特定部は、要求ウェブアプリケーションとともに提供されるプログラム部品である提供プログラム部品を、要求ウェブアプリケーションに基づいて特定する。判定部は、要求ブラウザで提供プログラム部品を実行可能か判定する。代替特定部は、判定部が実行不可能と判定した場合に、提供プログラム部品を用いる処理を代替可能な代替手段を、提供プログラム部品に基づいて特定する。実行制御部は、要求ブラウザに要求ウェブアプリケーションで行われる処理のうち提供プログラム部品を用いる処理を、代替手段を用いて実行させる。
【発明の効果】
【００１０】
ウェブアプリケーション実行支援プログラム、ウェブアプリケーション実行支援方法、およびウェブアプリケーション実行装置によれば、ブラウザがプログラム部品を実行できない場合に、ブラウザに代替手段を用いてプログラム部品を用いる処理を実行させるためウェブアプリケーションで行われる処理の実行を確保できる。
【図面の簡単な説明】
【００１１】
【図１】第一実施形態におけるウェブアプリケーション実行支援プログラムの概要を示す図である。
【図２】第二実施形態におけるウェブシステムの一例を示す図である。
【図３】第二実施形態におけるクライアント装置のハードウェアの構成例を示す図である。
【図４】第二実施形態におけるクライアント装置の機能ブロックを示す図である。
【図５】第二実施形態におけるウェブアプリケーション情報テーブルの一例を示す図である。
【図６】第二実施形態におけるブラウザ情報テーブルの一例を示す図である。
【図７】第二実施形態における拡張機能代替情報テーブルの一例を示す図である。
【図８】第二実施形態におけるウェブアプリケーション実行処理のフローチャートである。
【図９】第二実施形態におけるウェブアプリケーション実行支援処理のフローチャートである。
【図１０】第二実施形態における未サポート拡張機能更新処理のフローチャートである。
【図１１】第三実施形態におけるクライアント装置の機能ブロックを示す図である。
【図１２】第三実施形態におけるウェブアプリケーション情報テーブルの一例を示す図である。
【図１３】第三実施形態におけるウェブアプリケーション実行支援処理のフローチャートである。
【発明を実施するための形態】
【００１２】
以下、実施形態について図面を参照して説明を行う。
［第一実施形態］
まず、第一実施形態の概要について図１を用いて説明する。図１は、第一実施形態におけるウェブアプリケーション実行支援プログラムの概要を示す図である。
【００１３】
コンピュータ１０は、提供元２０からウェブアプリケーション２１の提供を受け付けて、ウェブアプリケーション２１を実行する装置である。
提供元２０は、ウェブアプリケーション２１を提供する装置である。提供元２０は、ウェブアプリケーション２１とともにプログラム部品２２を提供する。プログラム部品２２は、ウェブアプリケーション２１で行われる処理に用いられるプログラムである。プログラム部品２２は、ウェブアプリケーション２１で行われる処理に必要な機能をブラウザ１１に追加するために提供される。たとえば、プログラム部品２２としては、アドオン、アドイン、プラグイン、拡張機能などがある。
【００１４】
コンピュータ１０は、ブラウザ１１と、ウェブアプリケーション実行支援プログラム１２と、代替手段１３とを有する。ブラウザ１１は、ユーザからウェブアプリケーション２１の要求操作を受け付け、提供元２０にウェブアプリケーション２１の提供を要求し、提供元２０から提供されたウェブアプリケーション２１を実行する。
【００１５】
ウェブアプリケーション実行支援プログラム１２は、ウェブアプリケーション２１で行われる処理の実行を支援するプログラムである。ウェブアプリケーション実行支援プログラム１２は、ブラウザ特定手段１２ａと、ウェブアプリケーション特定手段１２ｂと、プログラム部品特定手段１２ｃと、判定手段１２ｄと、代替特定手段１２ｅと、実行制御手段１２ｆとを有する。ウェブアプリケーション実行支援プログラム１２は、各手段が実行する処理をコンピュータ１０に実行させる。
【００１６】
ブラウザ特定手段１２ａは、要求ブラウザを特定する処理を実行させる。要求ブラウザは、要求操作を受け付けたブラウザ１１である。たとえば、コンピュータ１０は、１以上のブラウザ１１を備えており、ブラウザ特定手段１２ａにより、要求操作を受け付けた１のブラウザ１１を特定する。
【００１７】
ウェブアプリケーション特定手段１２ｂは、要求操作に基づいて要求ウェブアプリケーションを特定する。要求ウェブアプリケーションは、要求操作の要求対象のウェブアプリケーション２１である。たとえば、ウェブアプリケーション特定手段１２ｂは、ウェブアプリケーション２１と、ウェブアプリケーション２１の要求方法との対応関係を示すテーブルを参照することで、受け付けた要求操作から要求ウェブアプリケーションを特定する。
【００１８】
プログラム部品特定手段１２ｃは、要求ウェブアプリケーションに基づいて提供プログラム部品を特定する。提供プログラム部品は、要求ウェブアプリケーションとともに提供元２０から提供されるプログラム部品２２である。たとえば、プログラム部品特定手段１２ｃは、ウェブアプリケーション２１と、ウェブアプリケーション２１とともに提供されるプログラム部品２２との対応関係を示すテーブルを参照することで、要求ウェブアプリケーションから提供プログラム部品を特定する。
【００１９】
判定手段１２ｄは、要求ブラウザで提供プログラム部品を実行可能か判定する。要求ブラウザが提供プログラム部品を実行できない場合とは、提供プログラム部品が、要求ブラウザが対応（サポート）していないプログラム部品２２の場合である。
【００２０】
たとえば、判定手段１２ｄは、ブラウザ１１と、ブラウザ１１が実行できない（サポートしていない）プログラム部品２２との対応関係を示すテーブルを参照することで、要求ブラウザが提供プログラム部品を実行可能か判定する。
【００２１】
代替特定手段１２ｅは、判定手段１２ｄが実行不可能と判定した場合に、提供プログラム部品に基づいて代替手段１３を特定する。代替手段１３は、ウェブアプリケーション２１で行われる処理のうち提供プログラム部品を用いて行う処理を、代替可能（実行可能）な手段である。たとえば、代替特定手段１２ｅは、プログラム部品２２と、プログラム部品２２を用いて行う処理を、代替可能な手段との対応関係を示すテーブルを参照することで、提供プログラム部品から代替手段１３を特定する。
【００２２】
実行制御手段１２ｆは、要求ブラウザに要求ウェブアプリケーションを実行させる。実行制御手段１２ｆは、要求ブラウザが提供プログラム部品を実行可能である場合には、要求ブラウザに要求ウェブアプリケーションと提供プログラム部品を実行させる。
【００２３】
一方、実行制御手段１２ｆは、要求ブラウザが提供プログラム部品を実行不可能である場合には、要求ブラウザに要求ウェブアプリケーションと代替手段１３を実行させ、要求ウェブアプリケーションで行われる処理のうち提供プログラム部品を用いる処理を、代替手段１３を用いて実行させる。
【００２４】
このようにウェブアプリケーション実行支援プログラム１２は、コンピュータ１０に、要求ブラウザで実行できない提供プログラム部品がある場合に、提供プログラムを用いる処理を、代替手段１３を用いて実行させる。これにより、ウェブアプリケーション実行支援プログラム１２は、要求ブラウザが提供プログラム部品を実行できない場合であっても、要求ウェブアプリケーションで行われる処理の実行を確保できる。
【００２５】
［第二実施形態］
次に第二実施形態について説明を行う。図２は、第二実施形態におけるウェブシステムの一例を示す図である。
【００２６】
ウェブシステム１００は、クライアント装置２００と、クライアント装置２００とネットワーク４００を介して接続するサーバ装置３００とを有する。
クライアント装置２００は、ユーザから要求操作を受け付け、サーバ装置３００にウェブアプリケーションの提供を要求して、サーバ装置３００からウェブアプリケーションの提供を受け付ける装置である。たとえば、クライアント装置２００は、所定の業務で利用する業務クライアントであり、サーバ装置３００からウェブアプリケーションとして業務アプリケーションの提供を受け付ける。
【００２７】
サーバ装置３００は、クライアント装置２００からの要求に基づいて要求対象であるウェブアプリケーションをクライアント装置２００に提供する装置である。サーバ装置３００は、ウェブアプリケーションを提供する際に、ウェブアプリケーションとともにウェブアプリケーションで行われる処理に必要な機能をクライアント装置２００に追加する拡張機能を併せて提供する。拡張機能は、プログラム部品の一例である。
【００２８】
次にクライアント装置２００のハードウェア構成について図３を用いて説明する。図３は、第二実施形態におけるクライアント装置のハードウェアの構成例を示す図である。
クライアント装置２００は、プロセッサ２０１によって装置全体が制御されている。プロセッサ２０１には、バス２０９を介してＲＡＭ（Random Access Memory）２０２と複数の周辺機器が接続されている。プロセッサ２０１は、マルチプロセッサであってもよい。プロセッサ２０１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。また、プロセッサ２０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２９】
ＲＡＭ２０２は、クライアント装置２００の主記憶装置として使用される。ＲＡＭ２０２には、プロセッサ２０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２０２には、プロセッサ２０１による処理に必要な各種データが格納される。
【００３０】
バス２０９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）２０３、グラフィック処理装置２０４、入力インタフェース２０５、光学ドライブ装置２０６、機器接続インタフェース２０７およびネットワークインタフェース２０８がある。
【００３１】
ＨＤＤ２０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ２０３は、補助記憶装置として使用される。ＨＤＤ２０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データ（たとえば、後述する各種テーブル）が格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３２】
グラフィック処理装置２０４には、モニタ２０４ａが接続されている。グラフィック処理装置２０４は、プロセッサ２０１からの命令にしたがって、画像をモニタ２０４ａの画面に表示させる。モニタ２０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３３】
入力インタフェース２０５には、キーボード２０５ａとマウス２０５ｂとが接続されている。入力インタフェース２０５は、キーボード２０５ａ、マウス２０５ｂから送られてくる信号をプロセッサ２０１に送信する。なお、マウス２０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３４】
光学ドライブ装置２０６は、レーザ光などを利用して、光ディスク２０６ａに記録されたデータの読み取りを行う。光ディスク２０６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２０６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３５】
機器接続インタフェース２０７は、クライアント装置２００に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース２０７には、メモリ装置２０７ａやメモリリーダライタ２０７ｂを接続することができる。メモリ装置２０７ａは、機器接続インタフェース２０７との通信機能を搭載した記録媒体である。メモリリーダライタ２０７ｂは、メモリカード２０７ｃへのデータの書き込み、またはメモリカード２０７ｃからのデータの読み出しを行う装置である。メモリカード２０７ｃは、カード型の記録媒体である。
【００３６】
ネットワークインタフェース２０８は、ネットワーク４００に接続されている。ネットワークインタフェース２０８は、ネットワーク４００を介して、サーバ装置３００、他のコンピュータ、ホストコンピュータまたは通信機器との間でデータの送受信を行う。
【００３７】
以上のようなハードウェア構成によって、第二実施形態の処理機能を実現することができる。
次にクライアント装置２００が備えるべき機能について図４を用いて説明する。図４は、第二実施形態におけるクライアント装置の機能ブロックを示す図である。
【００３８】
クライアント装置２００は、ブラウザ２１０とモジュール２２０と実行支援部２３０とを有する。
ブラウザ２１０は、利用者が入力した入力内容に基づいたリクエスト（ウェブアプリケーションの提供の要求）をサーバ装置３００に送信する。ブラウザ２１０は、サーバ装置３００から送信されたレスポンスを受信して、レスポンスにより取得したウェブアプリケーションを実行する。
【００３９】
モジュール２２０は、ブラウザ２１０が実行可能な、ブラウザ２１０の機能を拡張するブラウザ２１０と対応付けられたプログラムである。つまり、モジュール２２０は、ブラウザ２１０に既に実装済みの拡張機能である。
【００４０】
実行支援部２３０は、ブラウザ２１０とサーバ装置３００との間の通信を中継し、サーバ装置３００から提供されたウェブアプリケーションで行われる処理の実行を支援する。
具体的には、実行支援部２３０は、提供された拡張機能をブラウザ２１０が実行できない場合に、拡張機能の替わりとなるモジュール２２０を特定して、ブラウザ２１０にウェブアプリケーションとモジュール２２０を実行させることで、ウェブアプリケーションで行われる処理の実行を支援する。たとえば、拡張機能がＪａｖａ（登録商標）アプレットである場合には、Ｊａｖａアプレットの代わりとなるモジュール２２０としては、アプレットビューアーなどがある。
【００４１】
実行支援部２３０は、ブラウザ特定部２３１と、リクエスト取得部２３２と、リクエスト送信部２３３と、ウェブアプリケーション情報管理部２３４と、リクエスト内容特定部２３５と、拡張機能特定部２３６と、ブラウザ情報管理部２３７とを有する。また、実行支援部２３０は、判定部２３８と、拡張機能代替情報管理部２３９と、実行補佐モジュール特定部２４０と、レスポンス受信部２４１と、ウェブアプリケーション実行制御部２４２と、実行監視部２４３と、更新部２４４とを有する。
【００４２】
ブラウザ特定部２３１は、ブラウザ２１０を特定する。ブラウザ特定部２３１は、実行支援部２３０を介して（の実行環境下で）ブラウザ２１０を起動することにより、起動したブラウザ２１０を特定する。ブラウザ特定部２３１は、後述するリクエスト取得部２３２が取得したリクエストに基づいてブラウザ２１０を特定してもよい。
【００４３】
リクエスト取得部２３２は、ブラウザ２１０が送信したリクエストを取得する。リクエスト送信部２３３は、取得したリクエストをサーバ装置３００に送信する。
ウェブアプリケーション情報管理部２３４は、サーバ装置３００から提供されるウェブアプリケーションに関する情報が設定されたウェブアプリケーション情報テーブルを管理する。ウェブアプリケーション情報テーブルは、ウェブアプリケーションと、ウェブアプリケーションの要求方法と、ウェブアプリケーションとともに提供される拡張機能との対応関係を示すテーブルである。ウェブアプリケーション情報テーブルについては、後で図５を用いて詳細に説明する。
【００４４】
リクエスト内容特定部２３５は、リクエスト取得部２３２が取得したリクエストに基づいて、リクエスト内容（提供を要求したウェブアプリケーション）を特定する。
具体的には、リクエスト内容特定部２３５は、ウェブアプリケーション情報テーブルを参照し、取得したリクエストで提供を要求するウェブアプリケーションを特定する。
【００４５】
拡張機能特定部２３６は、ウェブアプリケーション情報テーブルを参照し、リクエストしたウェブアプリケーションとともに提供される拡張機能を特定する。
ブラウザ情報管理部２３７は、クライアント装置２００が備えるブラウザ２１０に関する情報が設定されたブラウザ情報テーブルを管理する。ブラウザ情報テーブルは、クライアント装置２００が備えるブラウザ２１０と、ブラウザ２１０がサポートしていない拡張機能との対応関係を示すテーブルである。ブラウザ情報テーブルについては、後で図６を用いて詳細に説明する。
【００４６】
判定部２３８は、ブラウザ情報テーブルを参照して、特定した拡張機能に、特定したブラウザ２１０がサポートしていない（実行できない）拡張機能があるか否かを判定して、判定結果をウェブアプリケーション実行制御部２４２に通知する。
【００４７】
拡張機能代替情報管理部２３９は、拡張機能を用いる処理を代替可能なモジュールに関する情報が設定された拡張機能代替情報テーブルを管理する。拡張機能代替情報テーブルは、拡張機能と、拡張機能を用いる処理を代替可能なモジュール（拡張機能と対応する機能を提供可能なモジュール）との対応関係を示すテーブルである。拡張機能代替情報テーブルについては、後で図７を用いて詳細に説明する。
【００４８】
実行補佐モジュール特定部２４０は、特定した拡張機能に、特定したブラウザ２１０がサポートしていない拡張機能が存在する場合に、拡張機能の代わりとなる実行補佐モジュールを特定する。実行補佐モジュールは、ブラウザ２１０によるウェブアプリケーションの実行を補佐するモジュール２２０である。具体的には、実行補佐モジュールは、ブラウザ２１０がサポートしていない拡張機能と対応する機能をブラウザ２１０に提供し、ウェブアプリケーションで行われる処理のうち当該拡張機能を用いて行われる処理をブラウザ２１０に実行させる。実行補佐モジュールは、代替手段の一例である。
【００４９】
実行補佐モジュール特定部２４０は、拡張機能代替情報テーブルを参照して、提供される拡張機能のうちブラウザ２１０がサポートしていない拡張機能を用いる処理を代替可能な代替モジュールを抽出する。そして、実行補佐モジュール特定部２４０は、抽出した代替モジュールと一致する実行補佐モジュールをモジュール２２０のうちから特定する。
【００５０】
なお、実行補佐モジュール特定部２４０は、ブラウザ２１０が実行可能なモジュール２２０（ブラウザ２１０と対応付けられたモジュール２２０）の情報を、ブラウザ２１０から取得することができる。または、ブラウザ２１０と、ブラウザ２１０が実行可能なモジュール２２０との対応関係を示すテーブルを予めＨＤＤ２０３に記憶し、実行補佐モジュール特定部２４０に、ＨＤＤ２０３に記憶した当該テーブルから取得させるようにしてもよい。
【００５１】
レスポンス受信部２４１は、サーバ装置３００から送信されたレスポンスを受信する。レスポンス受信部２４１は、受信したレスポンスによりウェブアプリケーションと、拡張機能とを取得する。
【００５２】
ウェブアプリケーション実行制御部２４２は、レスポンスにより取得したウェブアプリケーションの実行を制御する。
具体的には、提供される拡張機能をブラウザ２１０が全てサポートしている場合、ウェブアプリケーション実行制御部２４２は、ブラウザ２１０に取得したウェブアプリケーションおよび拡張機能を実行させる。
【００５３】
一方、提供される拡張機能にブラウザ２１０がサポートしていない拡張機能がある場合、ウェブアプリケーション実行制御部２４２は、モジュール２２０のうちからサポートしていない拡張機能を用いて行われる処理を代替可能な実行補佐モジュールを、実行補佐モジュール特定部２４０に特定させる。そして、ウェブアプリケーション実行制御部２４２は、ブラウザ２１０にウェブアプリケーションと、ブラウザ２１０がサポートしている拡張機能と、特定した実行補佐モジュールとを実行させる。
【００５４】
実行監視部２４３は、ブラウザ２１０によるウェブアプリケーションで行われる処理の実行状況を監視する。より具体的には、実行監視部２４３は、ブラウザ２１０による拡張機能の実行状況（実行の成否）を監視する。
【００５５】
更新部２４４は、監視結果に基づいて、ブラウザ２１０がサポートしていない拡張機能を更新する。具体的には、更新部２４４は、実行監視部２４３がブラウザ２１０による拡張機能の実行の失敗を検出した場合に、ブラウザ２１０がサポートしていない拡張機能に当該実行に失敗した拡張機能を追加する。これにより、次回からはブラウザ２１０が実行に失敗した拡張機能は、実行補佐モジュールによって実行されることとなる。すなわち、クライアント装置２００は、次回からウェブアプリケーションで行われる処理の実行を確保できるようになる。
【００５６】
次に、ウェブアプリケーション情報管理部２３４が管理するウェブアプリケーション情報テーブルについて図５を用いて説明する。図５は、第二実施形態におけるウェブアプリケーション情報テーブルの一例を示す図である。
【００５７】
ウェブアプリケーション情報テーブル２３４ａは、ウェブアプリケーションと、要求方法と、拡張機能との項目を含む。各項目の横方向に設定された情報が互いに対応付けられている。
【００５８】
ウェブアプリケーションの項目は、ウェブアプリケーションを識別可能な識別情報を示す。要求方法の項目は、ウェブアプリケーションの要求方法を識別可能な識別情報を示す。拡張機能の項目は、ウェブアプリケーションとともに提供される拡張機能を識別可能な識別情報を示す。
【００５９】
たとえば、ウェブアプリケーション情報テーブル２３４ａは、「ウェブアプリケーション１」の要求方法が「ＵＲＬ１」へのアクセスであり、「ウェブアプリケーション１」とともに「拡張機能１」が提供されることを示す。ウェブアプリケーション情報テーブル２３４ａは、「ウェブアプリケーション２」の要求方法が「ＵＲＬ２」へのアクセスであり、「ウェブアプリケーション２」とともに「拡張機能２」が提供されることを示す。
【００６０】
このようなウェブアプリケーション情報テーブル２３４ａによれば、リクエスト内容特定部２３５は、取得したリクエストと一致する要求方法を見つけることで、取得したリクエストで提供を要求するウェブアプリケーションを特定できる。
【００６１】
また、ウェブアプリケーション情報テーブル２３４ａによれば、拡張機能特定部２３６は、リクエスト内容と特定したウェブアプリケーションの拡張機能を参照することで、特定したウェブアプリケーションとともに提供される拡張機能を特定できる。
【００６２】
次に、ブラウザ情報管理部２３７が管理するブラウザ情報テーブルについて図６を用いて説明する。図６は、第二実施形態におけるブラウザ情報テーブルの一例を示す図である。
【００６３】
ブラウザ情報テーブル２３７ａは、ブラウザと、未サポート拡張機能との項目を含む。各項目の横方向に設定された情報が互いに対応付けられている。
ブラウザの項目は、ブラウザ（たとえば、種類およびバージョン）を識別可能な識別情報を示す。未サポート拡張機能の項目は、ブラウザ２１０がサポートしていない拡張機能を識別可能な識別情報を示す。
【００６４】
たとえば、ブラウザ情報テーブル２３７ａは、「ブラウザ１」がサポートしていない拡張機能が存在しないことを示している。また、ブラウザ情報テーブル２３７ａは、「ブラウザ２」が「拡張機能２」をサポートしていないこと、すなわち、「ブラウザ２」では「拡張機能２」を実行することができないことを示している。
【００６５】
このようなブラウザ情報テーブル２３７ａによれば、判定部２３８は、ブラウザ特定部２３１が特定したブラウザ２１０がサポートしていない拡張機能を特定できる。これにより、判定部２３８は、ブラウザ特定部２３１が特定したブラウザが、拡張機能特定部２３６が特定した拡張機能をサポートしているか否かを判定できる。
【００６６】
次に、拡張機能代替情報管理部２３９が管理する拡張機能代替情報テーブルについて図７を用いて説明する。図７は、第二実施形態における拡張機能代替情報テーブルの一例を示す図である。
【００６７】
拡張機能代替情報テーブル２３９ａは、拡張機能と、代替モジュールとの項目を含む。各項目の横方向に設定された情報が互いに対応付けられている。
拡張機能の項目は、拡張機能を識別可能な識別情報を示す。代替モジュールの項目は、拡張機能を用いて行われる処理を代替可能（拡張機能と対応する機能を提供可能）なモジュールを識別可能な識別情報を示す。
【００６８】
たとえば、拡張機能代替情報テーブル２３９ａは、「拡張機能１」を用いて行われる処理を、「モジュール１」で実行することができることを示している。また、拡張機能代替情報テーブル２３９ａは、「拡張機能２」を用いて行われる処理を、「モジュール２」で実行できることを示している。
【００６９】
このような拡張機能代替情報テーブル２３９ａによれば、実行補佐モジュール特定部２４０は、提供される拡張機能のうちブラウザ２１０がサポートしていない拡張機能を用いて行われる処理を代替可能な代替モジュールを抽出できる。これにより、実行補佐モジュール特定部２４０は、実行補佐モジュールを特定できる。
【００７０】
次にクライアント装置２００の実行支援部２３０で行われるウェブアプリケーション実行処理について図８を用いて説明する。図８は、第二実施形態におけるウェブアプリケーション実行処理のフローチャートである。ウェブアプリケーション実行処理は、ブラウザ２１０を起動した場合に行う処理であり、ブラウザ２１０がリクエストしたウェブアプリケーションを実行する処理である。
【００７１】
［ステップＳ１１］ブラウザ特定部２３１は、ブラウザ２１０を特定する。
［ステップＳ１２］リクエスト取得部２３２は、ブラウザ２１０を監視して、ブラウザ２１０から出力されたリクエストを取得する。
【００７２】
［ステップＳ１３］リクエスト送信部２３３は、サーバ装置３００に取得したリクエストを送信する。
［ステップＳ１４］レスポンス受信部２４１は、サーバ装置３００からレスポンスを受信する。
【００７３】
［ステップＳ１５］実行支援部２３０は、ウェブアプリケーション実行支援処理を行う。ウェブアプリケーション実行支援処理では、ウェブアプリケーションとともに提供される拡張機能をブラウザ２１０が実行できない場合に、ブラウザ２１０に拡張機能に代えて実行補佐モジュールを実行させる処理である。ウェブアプリケーション実行支援処理については後で図９を用いて詳細に説明する。
【００７４】
［ステップＳ１６］実行支援部２３０は、ブラウザ２１０を終了するか否かを判定する。実行支援部２３０は、ブラウザ２１０を終了すると判定した場合にはウェブアプリケーション実行処理を終了し、ブラウザ２１０を終了しないと判定した場合にはステップＳ１２にすすむ。
【００７５】
次にウェブアプリケーション実行支援処理について図９を用いて説明する。図９は、第二実施形態におけるウェブアプリケーション実行支援処理のフローチャートである。
ウェブアプリケーション実行支援処理は、ウェブアプリケーション実行処理のステップＳ１５で行われる処理である。
【００７６】
［ステップＳ２１］リクエスト内容特定部２３５は、ウェブアプリケーション情報テーブルを参照して、リクエスト内容であるウェブアプリケーションを特定する。
［ステップＳ２２］拡張機能特定部２３６は、ウェブアプリケーション情報テーブルを参照して、リクエスト内容であるウェブアプリケーションとともに提供される拡張機能を特定する。
【００７７】
［ステップＳ２３］判定部２３８は、ブラウザ情報テーブルを参照して、特定した拡張機能に、ブラウザ２１０がサポートしていない拡張機能があるか否かを判定する。
判定部２３８が、ブラウザ２１０がサポートしていない拡張機能がないと判定した場合にはステップＳ２６にすすみ、ブラウザ２１０がサポートしていない拡張機能があると判定した場合にはステップＳ２４にすすむ。
【００７８】
［ステップＳ２４］実行補佐モジュール特定部２４０は、拡張機能代替情報テーブルを参照して、ブラウザ２１０がサポートしていない拡張機能を用いて行う処理を代替可能な実行補佐モジュールがあるか否かを判定する。
【００７９】
実行補佐モジュールがない場合とは、ブラウザ２１０がサポートしていない拡張機能の代替モジュールが拡張機能代替情報テーブルにない場合、または代替モジュールと一致するモジュール２２０がない場合である。
【００８０】
実行補佐モジュール特定部２４０が、実行補佐モジュールがあると判定した場合にはステップＳ２５にすすみ、実行補佐モジュールがないと判定した場合にはステップＳ２６にすすむ。
【００８１】
［ステップＳ２５］実行補佐モジュール特定部２４０は、ブラウザ２１０がサポートしていない拡張機能の代わりとなる代替モジュールと一致する実行補佐モジュールをモジュール２２０のうちから特定する。
【００８２】
［ステップＳ２６］ウェブアプリケーション実行制御部２４２は、ブラウザ２１０にウェブアプリケーションを実行させる。
提供される拡張機能をブラウザ２１０が全てサポートしている場合（ステップＳ２３：Ｎｏ）、ウェブアプリケーション実行制御部２４２は、ブラウザ２１０に取得したウェブアプリケーションおよび拡張機能を実行させる。
【００８３】
一方、サポートしていない拡張機能の実行補佐モジュールがある場合（ステップＳ２４：Ｙｅｓ）、ウェブアプリケーション実行制御部２４２は、ブラウザ２１０にウェブアプリケーションと、サポートしている拡張機能と、特定した実行補佐モジュールとを実行させる。
【００８４】
サポートしていない拡張機能の実行補佐モジュールがない場合（ステップＳ２４：Ｎｏ）、ウェブアプリケーション実行制御部２４２は、ブラウザ２１０にウェブアプリケーションと、サポートしている拡張機能を実行させる。なお、この場合には、クライアント装置２００は、ウェブアプリケーションで行われる処理のうち、サポートしていない拡張機能を用いる処理を実行することができない。
【００８５】
［ステップＳ２７］実行支援部２３０は、未サポート拡張機能更新処理を実行する。未サポート拡張機能更新処理では、ブラウザ２１０による拡張機能の実行状況（実行成否）を監視して、実行の失敗を検出した場合にブラウザ２１０がサポートしていない拡張機能（未サポート拡張機能）に当該実行に失敗した拡張機能を追加する処理である。未サポート拡張機能更新処理については、後で図１０を用いて詳細に説明する。実行支援部２３０は、未サポート拡張機能更新処理をし終えると、ウェブアプリケーション実行支援処理を終了する。
【００８６】
次に未サポート拡張機能更新処理について図１０を用いて説明する。図１０は、第二実施形態における未サポート拡張機能更新処理のフローチャートである。
未サポート拡張機能更新処理は、ウェブアプリケーション実行支援処理のステップＳ２７で行われる処理である。
【００８７】
［ステップＳ３１］実行監視部２４３は、ブラウザ２１０によるウェブアプリケーションの実行状況を監視して、ブラウザ２１０による拡張機能の実行の失敗を検出したか否かを判定する。実行監視部２４３が、ブラウザ２１０による拡張機能の実行の失敗を検出したと判定した場合にはステップＳ３２にすすみ、ブラウザ２１０による拡張機能の実行の失敗を検出していないと判定した場合には未サポート拡張機能更新処理を終了する。
【００８８】
［ステップＳ３２］更新部２４４は、ブラウザ２１０が実行失敗した拡張機能が、当該ブラウザ２１０の未サポート拡張機能としてブラウザ情報テーブルに登録済みであるか否かを判定する。更新部２４４が、未サポート拡張機能としてブラウザ情報テーブルに登録済みでないと判定した場合にはステップＳ３３にすすみ、未サポート拡張機能としてブラウザ情報テーブルに登録済みであると判定した場合には未サポート拡張機能更新処理を終了する。
【００８９】
［ステップＳ３３］更新部２４４は、ブラウザ情報テーブルを更新する。更新部２４４は、ブラウザ２１０の未サポート拡張機能の項目に、当該実行に失敗した拡張機能を追加する。実行支援部２３０は、ブラウザ情報テーブルの更新を終えると、未サポート拡張機能更新処理を終了する。
【００９０】
このように、クライアント装置２００は、ウェブアプリケーションをリクエストしたブラウザ２１０が提供される拡張機能を実行できない場合、提供される拡張機能の代わりとなる実行補佐モジュールを特定し、ウェブアプリケーションを実行する際に実行補佐モジュールを実行する。これにより、クライアント装置２００は、ウェブアプリケーションで行われる処理の実行を確保できる。
【００９１】
なお、レスポンス受信部２４１によるサーバ装置３００からのレスポンスの受信（ステップＳ１４）は、ブラウザ２１０によるウェブアプリケーションの実行（ステップＳ２６）よりも先に行えばよく、ウェブアプリケーション実行支援処理（ステップＳ１５）と、並行して実行することができる。
【００９２】
［第三実施形態］
次に第三実施形態について説明を行う。なお、第二実施形態と同様の構成については同様の符号を用いるとともに、適宜説明を省略する。以下第二実施形態との相違点を中心に説明を行う。
【００９３】
第二実施形態では、提供される拡張機能を実行できないブラウザでウェブアプリケーションの提供を要求した場合、提供される拡張機能を用いる処理を代替可能な実行補佐モジュールを特定し、実行補佐モジュールをブラウザに実行させることで、ウェブアプリケーションで行われる処理の実行を確保した。
【００９４】
第三実施形態では、提供される拡張機能を実行できないブラウザでウェブアプリケーションの提供を要求した場合、提供される拡張機能を実行できるブラウザを特定し、特定したブラウザを起動してウェブアプリケーションを実行させることで、ウェブアプリケーションで行われる処理の実行を確保する。
【００９５】
まず第三実施形態のクライアント装置２００が備えるべき機能について図１１を用いて説明する。図１１は、第三実施形態におけるクライアント装置の機能ブロックを示す図である。
【００９６】
クライアント装置２００は、ブラウザ２１０とモジュール２２０と実行支援部２３０とを有する。
ブラウザ２１０は、利用者が入力した入力内容に基づいたリクエストをサーバ装置３００に送信する。ブラウザ２１０は、サーバ装置３００から送信されたレスポンスを取得して、レスポンスにより取得したウェブアプリケーションを実行する。
【００９７】
モジュール２２０は、ブラウザ２１０が実行可能な、ブラウザ２１０の機能を拡張するブラウザ２１０と対応付けられたプログラムである。
実行支援部２３０は、ブラウザ２１０とサーバ装置３００との間の通信を中継し、サーバ装置３００から提供されたウェブアプリケーションで行われる処理の実行を支援する。
【００９８】
実行支援部２３０は、ブラウザ特定部２３１と、リクエスト取得部２３２と、リクエスト送信部２３３と、ウェブアプリケーション情報管理部２３４と、リクエスト内容特定部２３５と、拡張機能特定部２３６と、ブラウザ情報管理部２３７とを有する。また、実行支援部２３０は、拡張機能代替情報管理部２３９と、実行補佐モジュール特定部２４０と、レスポンス受信部２４１と、ウェブアプリケーション実行制御部２４２と、実行監視部２４３と、更新部２４４と利用ブラウザ決定部２４５と未サポート拡張機能特定部２４６とを有する。
【００９９】
ブラウザ特定部２３１は、ブラウザを特定する。リクエスト取得部２３２は、ブラウザ２１０が送信したリクエストを取得する。リクエスト送信部２３３は、取得したリクエストをサーバ装置３００に送信する。
【０１００】
ウェブアプリケーション情報管理部２３４は、サーバ装置３００から提供されるウェブアプリケーションに関する情報が設定されたウェブアプリケーション情報テーブルを管理する。ウェブアプリケーション情報テーブルは、ウェブアプリケーションと、ウェブアプリケーションの要求方法と、ウェブアプリケーションとともに提供される拡張機能と、ウェブアプリケーションがサポートしているサポートブラウザとの対応関係を示すテーブルである。ウェブアプリケーション情報テーブルについては、後で図１２を用いて詳細に説明する。
【０１０１】
リクエスト内容特定部２３５は、リクエスト取得部２３２が取得したリクエストに基づいて、リクエスト内容を特定する。
利用ブラウザ決定部２４５は、ウェブアプリケーション情報を参照して、ウェブアプリケーションの実行に用いる利用ブラウザを決定する。
【０１０２】
具体的には、利用ブラウザ決定部２４５は、リクエスト内容であるウェブアプリケーションがサポートしているサポートブラウザがクライアント装置２００に１つもない場合、リクエスト（特定）したブラウザ２１０を利用ブラウザに決定する。
【０１０３】
一方、利用ブラウザ決定部２４５は、リクエスト内容であるウェブアプリケーションがサポートしているサポートブラウザをクライアント装置２００が備えている場合、クライアント装置２００が備えるサポートブラウザのうちから利用ブラウザを決定する。
【０１０４】
具体的には、利用ブラウザ決定部２４５は、ウェブアプリケーション情報を参照して、ウェブアプリケーションがサポートしているサポートブラウザを抽出する。そして、利用ブラウザ決定部２４５は、ブラウザ情報テーブルを参照して、抽出したサポートブラウザのうちクライアント装置２００が備えるブラウザ２１０を検出し、検出したブラウザ２１０のうちから利用ブラウザを特定する。なお、利用ブラウザ決定部２４５は、リクエストしたブラウザ２１０がサポートブラウザである場合には、リクエストしたブラウザ２１０を利用ブラウザに決定する。
【０１０５】
なお、利用ブラウザ決定部２４５は、クライアント装置２００が備えるブラウザ２１０の情報を、ＨＤＤ２０３にインストールされているブラウザ２１０を検出して取得することもできる。
【０１０６】
拡張機能特定部２３６は、利用ブラウザがサポートブラウザでない場合に、ウェブアプリケーション情報テーブルを参照し、リクエストしたウェブアプリケーションとともに提供される拡張機能を特定する。
【０１０７】
クライアント装置２００が備えるブラウザ２１０に関する情報が設定されたブラウザ情報テーブルを記憶する。
未サポート拡張機能特定部２４６は、利用ブラウザがサポートブラウザでない場合に、ブラウザ情報テーブルを参照し、提供される拡張機能のうち利用ブラウザがサポートしていない拡張機能（未サポートの拡張機能）を特定する。
【０１０８】
拡張機能代替情報管理部２３９は、拡張機能を用いる処理を代替可能なモジュールに関する情報が設定された拡張機能代替情報テーブルを管理する。
実行補佐モジュール特定部２４０は、未サポート拡張機能特定部２４６が特定した拡張機能の代わりとなる実行補佐モジュールを特定する。
【０１０９】
実行補佐モジュール特定部２４０は、未サポート拡張機能特定部２４６が特定した拡張機能を用いる処理を代替可能な代替モジュールを抽出する。そして、実行補佐モジュール特定部２４０は、抽出した代替モジュールと一致する実行補佐モジュールを利用ブラウザが実行可能なモジュール２２０のうちから特定する。
【０１１０】
レスポンス受信部２４１は、サーバ装置３００から送信されたレスポンスを受信する。レスポンス受信部２４１は、受信したレスポンスによりウェブアプリケーションと拡張機能とを取得する。
【０１１１】
ウェブアプリケーション実行制御部２４２は、レスポンスにより取得したウェブアプリケーションの実行を制御する。
ウェブアプリケーション実行制御部２４２は、利用ブラウザがサポートブラウザである場合には、利用ブラウザに取得したウェブアプリケーションと、拡張機能とを実行させる。
【０１１２】
一方、ウェブアプリケーション実行制御部２４２は、利用ブラウザがサポートブラウザでない場合には、利用ブラウザがサポートしていない拡張機能を用いて行われる処理を代替可能な実行補佐モジュールを実行補佐モジュール特定部２４０に特定させる。そして、ウェブアプリケーション実行制御部２４２は、利用ブラウザにウェブアプリケーションと、利用ブラウザがサポートしている拡張機能と、特定した実行補佐モジュールとを実行させる。
【０１１３】
実行監視部２４３は、ブラウザ２１０によるウェブアプリケーションで行われる処理の実行状況を監視する。より具体的には、実行監視部２４３は、ブラウザ２１０による拡張機能の実行状況（実行の成否）を監視する。
【０１１４】
更新部２４４は、監視結果に基づいて、ブラウザ２１０がサポートしていない拡張機能を更新する。
次に、ウェブアプリケーション情報管理部２３４が管理するウェブアプリケーション情報テーブルについて図１２を用いて説明する。図１２は、第三実施形態におけるウェブアプリケーション情報テーブルの一例を示す図である。
【０１１５】
ウェブアプリケーション情報テーブル２３４ｂは、ウェブアプリケーションと、要求方法と、拡張機能と、サポートブラウザの項目を含む。各項目の横方向に設定された情報が互いに対応付けられている。
【０１１６】
サポートブラウザの項目は、ウェブアプリケーションがサポートしているブラウザ、すなわち、ウェブアプリケーションで提供される拡張機能を実行可能なブラウザを識別可能な識別情報を示す。
【０１１７】
たとえば、ウェブアプリケーション情報テーブル２３４ｂは、「ウェブアプリケーション１」の要求方法が「ＵＲＬ１」へのアクセスであり、「ウェブアプリケーション１」とともに「拡張機能１」が提供されることを示している。ウェブアプリケーション情報テーブル２３４ｂは、「ウェブアプリケーション１」が「ブラウザ１」および「ブラウザ２」をサポートしていることを示している。すなわち、ウェブアプリケーション情報テーブル２３４ｂは、「ブラウザ１」および「ブラウザ２」が、「拡張機能１」を実行可能であることを示している。
【０１１８】
また、ウェブアプリケーション情報テーブル２３４ｂは、「ウェブアプリケーション２」の要求方法が「ＵＲＬ２」へのアクセスであり、「ウェブアプリケーション２」とともに「拡張機能２」が提供されることを示している。
【０１１９】
ウェブアプリケーション情報テーブル２３４ｂは、「ウェブアプリケーション２」が「ブラウザ１」をサポートしていることを示している。すなわち、ウェブアプリケーション情報テーブル２３４ｂは、「ブラウザ１」が、「拡張機能２」を実行可能であることを示している。
【０１２０】
このようなウェブアプリケーション情報テーブル２３４ｂによれば、リクエスト内容特定部２３５は、取得したリクエストと一致する要求方法を見つけることで、取得したリクエストで提供を要求するウェブアプリケーションを特定できる。
【０１２１】
また、ウェブアプリケーション情報テーブル２３４ｂによれば、利用ブラウザ決定部２４５は、リクエスト内容特定部２３５が特定したウェブアプリケーションがサポートしているブラウザ２１０（サポートブラウザ）を特定できる。
【０１２２】
また、ウェブアプリケーション情報テーブル２３４ｂによれば、拡張機能特定部２３６は、リクエスト内容と特定したウェブアプリケーションの拡張機能を参照することで、特定したウェブアプリケーションとともに提供される拡張機能を特定できる。
【０１２３】
次にウェブアプリケーション実行支援処理について図１３を用いて説明する。図１３は、第三実施形態におけるウェブアプリケーション実行支援処理のフローチャートである。
ウェブアプリケーション実行支援処理は、第二実施形態で示したウェブアプリケーション実行処理のステップＳ１５で行われる処理である。
【０１２４】
［ステップＳ４１］リクエスト内容特定部２３５は、ウェブアプリケーション情報テーブルを参照して、リクエスト内容であるウェブアプリケーションを特定する。
［ステップＳ４２］利用ブラウザ決定部２４５は、ウェブアプリケーション情報テーブルを参照して、ウェブアプリケーションがサポートしているサポートブラウザがクライアント装置２００に存在するか否かを判定する。利用ブラウザ決定部２４５が、サポートブラウザがクライアント装置２００に存在しないと判定した場合にはステップＳ４３にすすみ、サポートブラウザがクライアント装置２００に存在すると判定した場合にはステップＳ４８にすすむ。
【０１２５】
［ステップＳ４３］利用ブラウザ決定部２４５は、ブラウザ特定部２３１が特定したブラウザ２１０（ウェブアプリケーションをリクエストしたブラウザ２１０）を利用ブラウザに決定する。
【０１２６】
［ステップＳ４４］拡張機能特定部２３６は、ウェブアプリケーション情報テーブルを参照して、リクエスト内容であるウェブアプリケーションとともに提供される拡張機能を特定する。
【０１２７】
［ステップＳ４５］未サポート拡張機能特定部２４６は、ブラウザ情報テーブルを参照して、提供される拡張機能のうち利用ブラウザがサポートしていない拡張機能を特定する。
【０１２８】
［ステップＳ４６］実行補佐モジュール特定部２４０は、拡張機能代替情報テーブルを参照して、利用ブラウザがサポートしていない拡張機能を用いて行う処理を代替可能な実行補佐モジュールがあるか否かを判定する。
【０１２９】
実行補佐モジュールがない場合とは、利用ブラウザがサポートしていない拡張機能の代わりとなる代替モジュールが拡張機能代替情報テーブルにない場合、または代替モジュールと一致するモジュール２２０がない場合である。
【０１３０】
実行補佐モジュール特定部２４０が、実行補佐モジュールがあると判定した場合にはステップＳ４７にすすみ、実行補佐モジュールがないと判定した場合にはステップＳ５２にすすむ。
【０１３１】
［ステップＳ４７］実行補佐モジュール特定部２４０は、拡張機能代替情報テーブルを参照して、利用ブラウザがサポートしていない拡張機能の代わりとなる代替モジュールと一致する実行補佐モジュールをモジュール２２０のうちから特定する。
【０１３２】
［ステップＳ４８］利用ブラウザ決定部２４５は、ウェブアプリケーション情報テーブルを参照して、ブラウザ特定部２３１が特定したブラウザ２１０がサポートブラウザであるか否かを判定する。
【０１３３】
利用ブラウザ決定部２４５がサポートブラウザであると判定した場合にはステップＳ４９にすすみ、サポートブラウザでないと判定した場合にはステップＳ５０にすすむ。
［ステップＳ４９］利用ブラウザ決定部２４５は、ブラウザ特定部２３１が特定したブラウザ２１０を利用ブラウザに決定する。
【０１３４】
［ステップＳ５０］利用ブラウザ決定部２４５は、クライアント装置２００が備えるサポートブラウザのうちから利用ブラウザを決定する。なお、利用ブラウザに決定されたブラウザ２１０は、ブラウザ特定部２３１が特定したブラウザ２１０とは異なるブラウザである。
【０１３５】
［ステップＳ５１］ウェブアプリケーション実行制御部２４２は、利用ブラウザを起動させる。
［ステップＳ５２］ウェブアプリケーション実行制御部２４２は、利用ブラウザにウェブアプリケーションを実行させる。
【０１３６】
（ステップＳ４２：Ｙｅｓ）の場合、ウェブアプリケーション実行制御部２４２は、利用ブラウザにウェブアプリケーションと拡張機能とを実行させる。
（ステップＳ４２：Ｎｏ）、かつ（ステップＳ４６：Ｙｅｓ）の場合、ウェブアプリケーション実行制御部２４２は、利用ブラウザにウェブアプリケーションと、利用ブラウザがサポートしている拡張機能と、サポートしていない拡張機能の代わりとなる実行補佐モジュールとを実行させる。
【０１３７】
（ステップＳ４２：Ｎｏ）、かつ（ステップＳ４６：Ｎｏ）の場合、ウェブアプリケーション実行制御部２４２は、利用ブラウザにウェブアプリケーションと、利用ブラウザがサポートしている拡張機能とを実行させる。なお、この場合には、クライアント装置２００は、ウェブアプリケーションで行われる処理のうち、利用ブラウザがサポートしていない拡張機能を用いる処理を実行することができない。
【０１３８】
このように、クライアント装置２００は、提供される拡張機能を実行できないブラウザでウェブアプリケーションをリクエストした場合、提供される拡張機能を実行できるサポートブラウザを利用ブラウザに決定し、利用ブラウザを起動してウェブアプリケーションを実行する。これにより、クライアント装置２００は、ウェブアプリケーションで行われる処理の実行を確保できる。
【０１３９】
なお、（ステップＳ４２：Ｎｏ）、かつ（ステップＳ４６：Ｎｏ）の場合に、実行支援部２３０は、クライアント装置２００が備える他のブラウザに対して、ステップＳ４５，Ｓ４６を実行してもよい。このようにクライアント装置２００が備える他のブラウザに対して、ステップＳ４５，Ｓ４６を実行することで、他のブラウザの中から、他のブラウザでサポートしていない拡張機能を用いて行う処理を、代替可能な実行補佐モジュールがあるブラウザ（ステップＳ４６：Ｙｅｓであるブラウザ）を検出できる。
【０１４０】
そして、クライアント装置２００は、検出した他のブラウザでウェブアプリケーションと、他のブラウザがサポートしている拡張機能と、他のブラウザがサポートしていない拡張機能の代わりとなる実行補佐モジュールとを実行することで、ウェブアプリケーションで行われる処理の全てを実行できる。これにより、クライアント装置２００は、ウェブアプリケーションで行われる処理の実行をより確保できる。
【０１４１】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合には、クライアント装置２００が有すべき機能の一部または全部の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（可搬型記録媒体を含む）に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto Optical disk）などがある。
【０１４２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受取ったプログラムにしたがった処理を実行することもできる。
【０１４４】
また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
なお、上述の実施形態は、実施形態の要旨を逸脱しない範囲内において種々の変更を加えることができる。
【０１４５】
さらに、上述の実施形態は、多数の変形、変更が当業者にとって可能であり、説明した正確な構成および応用例に限定されるものではない。
【符号の説明】
【０１４６】
１０  コンピュータ
１１  ブラウザ
１２  ウェブアプリケーション実行支援プログラム
１２ａ  ブラウザ特定手段
１２ｂ  ウェブアプリケーション特定手段
１２ｃ  プログラム部品特定手段
１２ｄ  判定手段
１２ｅ  代替特定手段
１２ｆ  実行制御手段
１３  代替手段
２０  提供元
２１  ウェブアプリケーション
２２  プログラム部品
【図１】
2017120548.tif 000003
【図２】
2017120548.tif 000004
【図３】
2017120548.tif 000005
【図４】
2017120548.tif 000006
【図５】
2017120548.tif 000007
【図６】
2017120548.tif 000008
【図７】
2017120548.tif 000009
【図８】
2017120548.tif 000010
【図９】
2017120548.tif 000011
【図１０】
2017120548.tif 000012
【図１１】
2017120548.tif 000013
【図１２】
2017120548.tif 000014
【図１３】
2017120548.tif 000015