(57)【要約】【課題】Ｗｅｂブラウザが動作する情報処理装置に接続されたデバイスを操作するＷｅｂアプリケーションに関する不要なキャッシュによりＷｅｂブラウザのために確保された記憶領域が逼迫されるのを防止すること。【解決手段】Ｗｅｂブラウザ３２０が動作するクライアントコンピュータ１０２は、ＵＳＢまたはＢｌｕｅｔｏｏｔｈで接続されたデバイス１０３を操作するＷｅｂアプリケーションを提供するＷｅｂサイトにアクセスした場合に、許可プロンプトを表示し（Ｓ４２２）、該許可プロンプトで接続許可された場合、ウェブサイトが提供するスクリプトに従い、ＷｅｂアプリケーションをＷｅｂブラウザとは別にバックグラウンドで実行するためのＳｅｒｖｉｃｅＷｏｒｋｅｒをインストールする（Ｓ４２５）。一方、許可プロンプトで接続許可されなかった場合、上記スクリプトがあっても、ＳｅｒｖｉｃｅＷｏｒｋｅｒのインストールが行われない。【選択図】図４
2020095568.tif 000002
【特許請求の範囲】
【請求項１】
ウェブブラウザが動作する情報処理装置であって、
ＵＳＢまたはＢｌｕｅｔｏｏｔｈで前記情報処理装置に接続されたデバイスを操作するウェブアプリケーションを提供するウェブサイトにアクセスした場合に、該ウェブアプリケーションが前記デバイスに接続することを許可するかを確認するための画面を表示する表示手段と、
前記画面を介して前記デバイスに接続することが許可された場合に、前記ウェブサイトが提供するスクリプトに従い、前記ウェブアプリケーションを前記ウェブブラウザとは別にバックグラウンドで実行するためのアプリケーションプログラムをインストールするインストール手段と、を有し、
前記画面を介して前記デバイスに接続することが許可されなかった場合に、前記スクリプトがあっても、前記アプリケーションプログラムのインストールが行われないことを特徴とする情報処理装置。
【請求項２】
ウェブブラウザが動作する情報処理装置であって、
ＵＳＢまたはＢｌｕｅｔｏｏｔｈで前記情報処理装置に接続されたデバイスを操作するウェブアプリケーションを提供するウェブサイトにアクセスした場合に、前記ウェブサイトが提供するスクリプトに従い、前記ウェブアプリケーションを前記ウェブブラウザとは別にバックグラウンドで実行するためのアプリケーションプログラムをインストールするインストール手段と、
該ウェブアプリケーションが前記デバイスに接続することを許可するかを確認するための画面を表示する表示手段と、
前記画面を介して前記デバイスに接続することが許可されなかった場合に、前記インストールされたアプリケーションプログラムを削除する削除手段と、
を有することを特徴とする情報処理装置。
【請求項３】
前記ウェブブラウザは、前記情報処理装置にＵＳＢまたはＢｌｕｅｔｏｏｔｈで接続されたデバイスから、該接続に対応するタイミングで取得された情報に従い、前記ウェブサイトにアクセスすることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記画面を介して前記デバイスに接続することが許可された場合に、前記ウェブアプリケーションの提供元の情報と前記デバイスの情報との組み合わせである接続情報を記憶する記憶手段と、
前記接続情報の削除を指示するための指示手段と、
前記指示手段からの指示に応じて、該接続情報と、該接続情報に対応する前記アプリケーションプログラムの提供元と関連するデータを削除する第２削除手段と、
を有することを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記インストールされたアプリケーションプログラムは、オフラインの間に前記デバイスから取得した情報を、オンラインになった場合に前記ウェブサイトに通知することを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記アプリケーションプログラムがインストールされた場合、前記ウェブアプリケーションが、前記ウェブブラウザのために確保された記憶領域に保持されることを特徴とする請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記ウェブアプリケーションを前記記憶領域に保持するための処理において、該記憶領域の空きが不足している場合、該記憶領域が不足している旨を通知する通知手段を有することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
ウェブブラウザが動作する情報処理装置の制御方法であって、
ＵＳＢまたはＢｌｕｅｔｏｏｔｈで前記情報処理装置に接続されたデバイスを操作するウェブアプリケーションを提供するウェブサイトにアクセスした場合に、該ウェブアプリケーションが前記デバイスに接続することを許可するかを確認するための画面を表示する表示ステップと、
前記画面を介して前記デバイスに接続することが許可された場合に、前記ウェブサイトが提供するスクリプトに従い、前記ウェブアプリケーションを前記ウェブブラウザとは別にバックグラウンドで実行するためのアプリケーションプログラムをインストールするインストールステップと、を有し、
前記画面を介して前記デバイスに接続することが許可されなかった場合に、前記スクリプトがあっても、前記アプリケーションプログラムのインストールが行われないことを特徴とする情報処理装置の制御方法。
【請求項９】
ウェブブラウザが動作する情報処理装置の制御方法であって、
ＵＳＢまたはＢｌｕｅｔｏｏｔｈで前記情報処理装置に接続されたデバイスを操作するウェブアプリケーションを提供するウェブサイトにアクセスした場合に、前記ウェブサイトが提供するスクリプトに従い、前記ウェブアプリケーションを前記ウェブブラウザとは別にバックグラウンドで実行するためのアプリケーションプログラムをインストールするインストールステップと、
該ウェブアプリケーションが前記デバイスに接続することを許可するかを確認するための画面を表示する表示ステップと、
前記画面を介して前記デバイスに接続することが許可されなかった場合に、前記インストールされたアプリケーションプログラムを削除する削除ステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項１０】
コンピュータを、請求項１〜７のいずれか１項に記載の手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブブラウザが動作する情報処理装置、情報処理装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
Ｗｅｂアプリケーションからクライアントコンピュータに接続されたＵＳＢデバイスやＢｌｕｅｔｏｏｔｈデバイスに接続して操作できるＷｅｂＵＳＢ、ＷｅｂＢｌｕｅｔｏｏｔｈという技術がある。この技術において、Ｗｅｂアプリケーション（ＪａｖａＳｃｒｉｐｔ）がＵＳＢデバイスやＢｌｕｅｔｏｏｔｈデバイスに接続を要求すると、Ｗｅｂブラウザは接続許可プロンプトを表示し、ユーザに接続許可を求める。ユーザがＷｅｂブラウザ上に表示される接続許可プロンプトから接続許可を選択することで、ＷｅｂアプリケーションはＵＳＢデバイスやＢｌｕｅｔｏｏｔｈデバイスに接続できるようになり、Ｗｅｂアプリケーションからデバイスを操作することが可能になる。Ｂｌｕｅｔｏｏｔｈ（ブルートゥース）、ＪａｖａＳｃｒｉｐｔは登録商標である。
【０００３】
Ｗｅｂアプリケーションからデバイスを操作できる一方で、Ｗｅｂアプリケーションという性質上、オフラインでは使用できないという課題がある。そこで、ＳｅｒｖｉｃｅＷｏｒｋｅｒと呼ばれるＷｅｂブラウザのバックグラウンドで動作するＪａｖａＳｃｒｉｐｔを利用し、Ｗｅｂアプリケーションをオンライン時にキャッシュしておくことで、オフラインでも使用できるようにする技術が提案された。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１７０２５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＳｅｒｖｉｃｅＷｏｒｋｅｒを利用する技術では、まずＷｅｂアプリケーションを提供するＷｅｂサイトにアクセスした時点で自動的にＪａｖａＳｃｒｉｐｔが実行され、ＳｅｒｖｉｃｅＷｏｒｋｅｒの登録とＷｅｂアプリケーションのキャッシュがなされる。キャッシュされたＷｅｂアプリケーションは、Ｗｅｂブラウザのために確保された記憶領域に格納される。このＷｅｂブラウザのために確保された記憶領域の容量には、Ｗｅｂブラウザごと、あるいはクライアントコンピュータごとに上限が設定されている。
【０００６】
ＷｅｂＵＳＢやＷｅｂＢｌｕｅｔｏｏｔｈを実現するためのＷｅｂアプリケーションには、従来のネイティブアプリケーションのドライバに相当するプログラムが含まれているため、オフラインでも使用できることが望ましい。一方で、Ｗｅｂブラウザのために確保された記憶領域に上限があるなか、ＳｅｒｖｉｃｅＷｏｒｋｅｒを利用することでオフラインでの操作を必要としないＷｅｂアプリケーションまでも自動的にキャッシュされてしまう。このため、ユーザにとってキャッシュする必要がないＷｅｂアプリケーションにより、Ｗｅｂブラウザのために確保された記憶領域が逼迫するという課題があった。なお、ＷｅｂＵＳＢやＷｅｂＢｌｕｅｔｏｏｔｈを使用することを想定したＷｅｂアプリケーションには、ドライバ相当の比較的サイズの大きいプログラムが含まれているため、特にこの記憶領域を逼迫しやすい。
【０００７】
特許文献１には、複合機へのアプリケーションのインストールに際して、外部記憶装置を用いることで複合機本体の記憶領域が逼迫することを防止する技術が提案されている。しかし、上述のＷｅｂブラウザのために確保された記憶領域は、Ｗｅｂブラウザ自身がインストールされた記憶装置に確保されるため、特許文献１に倣いＷｅｂアプリケーションのみを外部記憶装置にキャッシュさせるようなことはできない。このように従来技術では、ＳｅｒｖｉｃｅＷｏｒｋｅｒを利用する場合にＷｅｂアプリケーションがキャッシュされてＷｅｂブラウザのために確保された記憶領域が逼迫されるという課題を解決することはできなかった。
【０００８】
本発明は、上記の課題を解決するためになされたものである。本発明は、情報処理装置に接続されたデバイスを操作するウェブアプリケーションに関する不要なキャッシュによりウェブブラウザのために確保された記憶領域が逼迫されるのを防止する仕組みを提供することを目的とするものである。
【課題を解決するための手段】
【０００９】
本発明は、ウェブブラウザが動作する情報処理装置であって、ＵＳＢまたはＢｌｕｅｔｏｏｔｈで前記情報処理装置に接続されたデバイスを操作するウェブアプリケーションを提供するウェブサイトにアクセスした場合に、該ウェブアプリケーションが前記デバイスに接続することを許可するかを確認するための画面を表示する表示手段と、前記画面を介して前記デバイスに接続することが許可された場合に、前記ウェブサイトが提供するスクリプトに従い、前記ウェブアプリケーションを前記ウェブブラウザとは別にバックグラウンドで実行するためのアプリケーションプログラムをインストールするインストール手段と、を有し、前記画面を介して前記デバイスに接続することが許可されなかった場合に、前記スクリプトがあっても、前記アプリケーションプログラムのインストールが行われないことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、情報処理装置に接続されたデバイスを操作するウェブアプリケーションに関する不要なキャッシュによりウェブブラウザのために確保された記憶領域が逼迫されるのを防止することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態を示すネットワークシステムの構成図。
【図２】ハードウェア構成図。
【図３】ソフトウェア構成図。
【図４】Ｗｅｂアプリケーションをキャッシュする際のシーケンスを示す図。
【図５】Ｗｅｂアプリケーションをキャッシュする際のＵＩを示す図。
【図６】接続情報を削除する際のＵＩを示す図。
【図７】Ｗｅｂアプリケーションのキャッシュに失敗した場合のシーケンスを示す図。
【図８】Ｗｅｂアプリケーションのキャッシュに失敗した場合のＵＩを示す図。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を用いて説明する。
〔第１実施形態〕
＜ネットワーク構成＞
図１は、本発明の一実施形態を示すネットワークシステムの構成の一例を示す図である。
サーバ１０１は、ネットワーク１０４を介してクライアントコンピュータ１０２にＷｅｂアプリケーション（「ウェブアプリケーション」ともいう）を提供するサーバである。
クライアントコンピュータ１０２は、ユーザが使用する情報処理装置である。クライアントコンピュータ１０２として、パーソナルコンピュータ、ラップトップコンピュータ、タブレット型コンピュータ、スマートフォンなどが利用可能である。
デバイス１０３は、ＵＳＢ１０５でクライアントコンピュータ１０２と接続して使用するスキャナ、プリンタ等のデバイスである。
【００１３】
ネットワーク１０４は、いわゆる通信ネットワークである。ネットワーク１０４は、例えば、インターネット等のＬＡＮ、ＷＡＮ、電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等のいずれ、又は、これらの組み合わせにより実現される。
【００１４】
１０５は、クライアントコンピュータ１０２とデバイス１０３を接続するためのＵＳＢ（Universal Serial Bus）である。本実施形態では、クライアントコンピュータ１０２とデバイス１０３がＵＳＢ１０５で接続されている構成を例に説明するが、１０５はＵＳＢに限らない。例えば、１０５は、ＢｌｕｅｔｏｏｔｈやＮＦＣ（Near Field Communication）等の別の規格であってもよい。
【００１５】
＜ハードウェア構成＞
図２は、情報処理機能を有するサーバ１０１、クライアントコンピュータ１０２、デバイス１０３のハードウェアの構成の一例を示す図である。なお、サーバ１０１、クライアントコンピュータ１０２、デバイス１０３のハードウェアは、図２に示す全ての構成を備えている必要はない。
【００１６】
ＣＰＵ２０１は、ＲＡＭ２０２、ＲＯＭ２０３、記憶装置２０４などから読み込んだプログラムを実行する。ＲＡＭ２０２は、一時メモリ領域として機能する。ＲＯＭ２０３は、組込済みプログラムおよびデータが記録されている。
【００１７】
記憶装置２０４は、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）等の二次記憶装置である。記憶装置２０４には、後述するＯＳ（Operating System）３３０（図３）を実現するプログラムと該ＯＳ上で動作するＷｅｂブラウザ３２０（図３）を実現するためのアプリケーションプログラムが格納されている。ＣＰＵ２０１は、記憶装置２０４に格納されるこれらのプログラムを必要に応じてＲＡＭ２０２にロードして実行する。さらに、ここで実行されるＷｅｂブラウザ３２０を実現するためのアプリケーションプログラムは、ＷｅｂＵＳＢ、ＷｅｂＢｌｕｅｔｏｏｔｈといったＡＰＩをサポートしている。
【００１８】
ユーザインタフェース２０５は、キーボードやポインティングデバイス（マウス、タッチパッド、タッチパネル、トラックボールなど）、ディスプレイ等のユーザインタフェースである。ネットワークインターフェース２０６は、ＬＡＮなどのネットワークに接続されて、ネットワークに接続された他の機器と通信する。ＵＳＢインタフェース２０７は、ＵＳＢ規格で接続されて外部の機器と通信する。前述した通り、本実施形態では、１０５にＵＳＢを用いた場合について説明するが、１０５がＢｌｕｅｔｏｏｔｈやＮＦＣなどの他の規格である場合、２０７は１０５の規格に準拠したインタフェースを用いる。
２０１〜２０７などハードウェアを構成する各部は、内部バス２０８を介して接続されている。
【００１９】
＜ソフトウェア構成＞
以下、図３を用いて、サーバ１０１、クライアントコンピュータ１０２、デバイス１０３のソフトウェアの構成について説明する。
図３（Ａ）は、サーバ１０１のソフトウェア構成の一例を示す図である。なお、図３（Ａ）に示すサーバ１０１のソフトウェア構成は、サーバ１０１のＣＰＵ２０１が記憶装置２０４等に格納されたプログラムを実行することにより実現される。
図３（Ａ）に示すように、Ｗｅｂサーバ３１０は、ネットワーク通信部３１１、Ｗｅｂアプリケーション管理部３１２を備える。
【００２０】
ネットワーク通信部３１１は、クライアントコンピュータ１０２等の外部のシステムと通信するためのソフトウェアモジュールである。
Ｗｅｂアプリケーション管理部３１２は、Ｗｅｂブラウザ３２０からの要求に応じて、ＨＴＭＬやＪａｖａＳｃｒｉｐｔなどのＷｅｂコンテンツから成るＷｅｂアプリケーションを提供する。また、Ｗｅｂアプリケーション管理部３１２は、ＷｅｂＡＰＩにより、ＸＬＭやＪＳＯＮなどの形式で各種データも提供する。本実施形態において、Ｗｅｂアプリケーション管理部３１２が提供するＷｅｂアプリケーションには、デバイス１０３へ接続して操作するためのＪａｖａＳｃｒｉｐｔを含む。さらに、Ｗｅｂブラウザ３２０に対して、Ｗｅｂアプリケーション管理部３１２が提供したＷｅｂアプリケーションをキャッシュするように指示するＪａｖａＳｃｒｉｐｔも含む。
【００２１】
図３（Ｂ）は、クライアントコンピュータ１０２のソフトウェア構成の一例を示す図である。なお、図３（Ｂ）に示すクライアントコンピュータ１０２のソフトウェア構成は、クライアントコンピュータ１０２のＣＰＵ２０１が記憶装置２０４等に格納されたプログラムを実行することにより実現される。
図３（Ｂ）に示すように、Ｗｅｂブラウザ３２０は、ネットワーク通信部３２１、表示部３２２、スクリプト実行部３２３、データ管理部３２４、ＵＳＢ通信部３２５を備える。
【００２２】
ネットワーク通信部３２１は、Ｗｅｂブラウザ３２０がＷｅｂサーバ３１０などの外部のシステムと通信するためのソフトウェアモジュールである。
表示部３２２は、Ｗｅｂブラウザ３２０自身やＷｅｂアプリケーションに含まれるＨＴＭＬやＣＳＳ、ＪａｖａＳｃｒｉｐｔ等から生成されるＵＩ（User Interface）を表示するためのソフトウェアモジュールである。
【００２３】
スクリプト実行部３２３は、ネットワーク通信部３２１が取得したＷｅｂアプリケーションに含まれるＪａｖａＳｃｒｉｐｔを解析し実行するためのソフトウェアモジュールである。
データ管理部３２４は、Ｗｅｂブラウザのために確保された記憶領域に対応し、Ｗｅｂアプリケーションのキャッシュや作業データ、後述するＳｅｒｖｉｃｅＷｏｒｋｅｒ等のデータを、上記Ｗｅｂブラウザのために確保された記憶領域に格納し管理する。
【００２４】
ＵＳＢ通信部３２５は、Ｗｅｂブラウザ３２０内で動作するＪａｖａＳｃｒｉｐｔからＵＳＢデバイス１０３を操作するためのソフトウェアモジュールである。スクリプト実行部３２３が実行するＪａｖａＳｃｒｉｐｔは、ＵＳＢ通信部３２５を使用し、ＯＳ３３０に備えられたＵＳＢ制御部３３１を介してＵＳＢデバイス１０３に接続し操作を行う。
ＯＳ３３０は、ＵＳＢ制御部３３１を備える。ＯＳ３３０は、ＵＳＢ制御部３３１以外にも多くのソフトウェアモジュールを備えるが、本実施形態の説明では省略する。
ＵＳＢ制御部３３１は、ＵＳＢインタフェース２０７に対するＵＳＢ通信を制御するためのソフトウェアモジュールである。
【００２５】
ここで、Ｗｅｂアプリケーションをキャッシュするために、本実施形態で利用するＳｅｒｖｉｃｅＷｏｒｋｅｒについて説明する。
ＳｅｒｖｉｃｅＷｏｒｋｅｒは、Ｗｅｂブラウザのバックグラウンドで動作するＪａｖａＳｃｒｉｐｔである。Ｗｅｂアプリケーション管理部３１２が提供するＷｅｂアプリケーションには、ＳｅｒｖｉｃｅＷｏｒｋｅｒをＷｅｂブラウザ３２０に登録し、動作させるためのＪａｖａＳｃｒｉｐｔが含まれている。まず、Ｗｅｂブラウザ３２０は、Ｗｅｂアプリケーション管理部３１２が提供するＷｅｂアプリケーションを取得する。取得したＷｅｂアプリケーションに含まれるＳｅｒｖｉｃｅＷｏｒｋｅｒを登録し動作させるためのＪａｖａＳｃｒｉｐｔを、スクリプト実行部３２３が実行すると、ＳｅｒｖｉｃｅＷｏｒｋｅｒがデータ管理部３２４に格納される。以下に、ＳｅｒｖｉｃｅＷｏｒｋｅｒの登録情報の例をＪＳＯＮ形式のデータで示す。
【００２６】
{
"service_worker": [
{
"origin": "https://xxx.com",
"source": "sw.js",
"version": "3",
"status": "active"
}
]
}
【００２７】
そして、ＳｅｒｖｉｃｅＷｏｒｋｅｒ内のＪａｖａＳｃｒｉｐｔでキャッシュ対象のコンテンツを指定することでキャッシュを行う。以下に、キャッシュ対象のコンテンツの例をＪＳＯＮ形式のデータで示す。
【００２８】
{
"cache_storage": [
{
"origin": "https://xxx.com",
"cache_name": "v3",
"contents": [
{
"path": "index.html",
"content_type": "text/html",
"content_length": "1000",
"cache_time": "2018/01/01 12:00:00",
"header": {
...
},
"body": {
...
}
},
{
"path": "controller.js",
"content_type": "text/JavaScript",
"content_length": "30000",
"cache_time": "2018/01/01 12:00:01",
"header": {
...
},
"body": {
...
}
},
{
"path": "logo.png",
"content_type": "image/png",
"content_length": "10000",
"cache_time": "2018/01/01 12:00:02",
"header": {
...
},
"body": {
...
}
}
]
}
]
}
【００２９】
キャッシュ対象のコンテンツは、スクリプト実行部３２３によりデータ管理部３２４に格納される。以降、Ｗｅｂブラウザ３２０からキャッシュしたコンテンツの"origin"、"path"にアクセスした際に、オフライン或いは"cache_name"に示す値に変更が無い場合、データ管理部３２４に格納（キャッシュ）されたコンテンツを読み込む。なお、オンライン時に"cache_name"に示す値に変更がある場合は、ＳｅｒｖｉｃｅＷｏｒｋｅｒは、Ｗｅｂアプリケーション管理部３１２からＷｅｂアプリケーションを取得し、キャッシュを更新する。以上のようにＷｅｂアプリケーションを構成することで、クライアントコンピュータ１０２がオフラインであっても使用することが可能になる。なお、ＳｅｒｖｉｃｅＷｏｒｋｅｒは、上記オフラインの間に、デバイス１０３から取得した情報等を、クライアントコンピュータ１０２がオンラインになった場合に、ウェブサイトに通知する。
【００３０】
図３（Ｃ）は、デバイス１０３のソフトウェア構成を示す図である。なお、図３（Ｃ）に示すデバイス１０３のソフトウェア構成は、デバイス１０３のＣＰＵ２０１がＲＯＭ２０３等に格納されたプログラムを実行することにより実現される。
図３（Ｃ）に示すように、ＵＳＢ制御部３４１は、デバイス１０３におけるＵＳＢ制御部であり、ＵＳＢインタフェース２０７に対するＵＳＢ通信を制御するためのソフトウェアモジュールである。
【００３１】
デバイス機能実行部３４２は、デバイス１０３の機能を実行するためのソフトウェアモジュールであり、例えば、デバイス１０３がスキャナの場合はスキャン機能を、プリンタの場合はプリント機能を実現する。ＵＳＢ制御部３４１がクライアントコンピュータ１０２などの外部システムから命令を受け、デバイス機能実行部３４２に命令を出すことで、デバイス１０３の機能を実行することも可能である。
【００３２】
＜シーケンス図とＵＩ＞
本実施形態の特徴である、ＷｅｂＵＳＢを用いた場合のＷｅｂアプリケーションのキャッシュの挙動について、図４のシーケンス図と、図５のＵＩを用いて説明する。
図４は、ユーザ４０１がデバイス１０３をクライアントコンピュータ１０２に接続してから、Ｗｅｂアプリケーションのキャッシュが行われるまでの処理の一例を示すシーケンス図である。なお、このシーケンス図において、デバイス１０３の処理は、デバイス１０３のＣＰＵ２０１がＲＯＭ２０３等に格納されたプログラムを実行することにより実現される。また、クライアントコンピュータ１０２の処理は、クライアントコンピュータ１０２のＣＰＵ２０１が記憶装置２０４等に格納されたプログラムを実行することにより実現される。また、Ｗｅｂサーバ３１０の処理は、サーバ１０１のＣＰＵ２０１が記憶装置２０４等に格納されたプログラムを実行することにより実現される。
【００３３】
まず、Ｓ４１１において、ユーザ４０１がデバイス１０３をクライアントコンピュータ１０２に接続する。
また、Ｓ４１２において、Ｗｅｂブラウザ３２０は、デバイス１０３の接続を監視している。そして、Ｓ４１３において、Ｗｅｂブラウザ３２０は、ＯＳ３３０のＵＳＢ制御部３３１から取得できるデバイス１０３の接続イベント或いはデバイス１０３の接続状態を基に、デバイス１０３の接続を検出すると、Ｓ４１４に処理を進める。
【００３４】
Ｓ４１４において、Ｗｅｂブラウザ３２０は、ＯＳ３３０のＵＳＢ制御部３３１に対してデバイス１０３のｄｅｓｃｒｉｐｔｏｒを取得するための要求を行う。ｄｅｓｃｒｉｐｔｏｒとは、デバイス１０３がＵＳＢ規格に基づき所有するデバイスの詳細情報であり、例えば、デバイス１０３のベンダＩＤや製品ＩＤ、消費電力、転送方式などの情報が含まれる。その中で、ＷｅｂＵＳＢ用のｄｅｓｃｒｉｐｔｏｒとして、ｌａｎｄｉｎｇ ｐａｇｅを示す情報が含まれている。ｌａｎｄｉｎｇ ｐａｇｅとは、デバイス１０３を操作するためのＷｅｂアプリケーションを提供するＷｅｂサイトのＵＲＬであり、デバイスベンダがデバイス１０３に設定する。
【００３５】
上記Ｓ４１４の要求に応じて、Ｓ４１５において、ＯＳ３３０のＵＳＢ制御部３３１が、デバイス１０３のＵＳＢ制御部３４１に対して、ｄｅｓｃｒｉｐｔｏｒの取得要求を行う。
該Ｓ４１５の要求に応じて、Ｓ４１６において、デバイス１０３のＵＳＢ制御部３４１が、ｄｅｓｃｒｉｐｔｏｒをＯＳ３３０のＵＳＢ制御部３３１に返却する。
該返却されたｄｅｓｃｒｉｐｔｏｒを取得すると、Ｓ４１７において、ＯＳ３３０のＵＳＢ制御部３３１は、取得したｄｅｓｃｒｉｐｔｏｒをＷｅｂブラウザ３２０に返却する。
【００３６】
該返却されたｄｅｓｃｒｉｐｔｏｒを取得すると、Ｓ４１８において、Ｗｅｂブラウザ３２０は、取得したｄｅｓｃｒｉｐｔｏｒに含まれるｌａｎｄｉｎｇ ｐａｇｅを、図５（Ａ）のように、ユーザ４０１に提示する。ここで、図５（Ａ）を用いて、ｌａｎｄｉｎｇ ｐａｇｅを提示する画面について説明する。
【００３７】
図５（Ａ）は、Ｓ４１８で、Ｗｅｂブラウザ３２０がユーザ４０１にｌａｎｄｉｎｇ ｐａｇｅを提示した際のクライアントコンピュータ１０２のデスクトップ画面の一例を示す図である。
【００３８】
画面５１０は、クライアントコンピュータ１０２のデスクトップ画面である。
ウィンドウ５１１は、Ｗｅｂブラウザ３２０の通知ウィンドウであり、ｄｅｓｃｒｉｐｔｏｒにｌａｎｄｉｎｇ ｐａｇｅを有するデバイス１０３がクライアントコンピュータ１０２に接続された場合に表示される。
メッセージ５１２は、ユーザ４０１にｌａｎｄｉｎｇ ｐａｇｅへの誘導を促すメッセージである。ユーザ４０１によりボタン５１３が押下されると、図５（Ｂ）に示すＷｅｂブラウザ３２０のＵＩが起動され、図４のＳ４１９の処理が開始される。ボタン５１４が押下されると、図４のシーケンスが終了する。デバイス１０３に、ｌａｎｄｉｎｇ ｐａｇｅを設定しておくことで、クライアントコンピュータ１０２への接続時に、デバイス１０３を操作するために必要なＷｅｂアプリケーションの提供元に誘導することができる。なお、ボタン５１４を押下し、通知ウィンドウ５１１を閉じたとしても、後からＷｅｂブラウザ３２０のＵＩに直接ＷｅｂサイトのＵＲＬを入力することで、Ｗｅｂアプリケーションを取得することが可能である。
【００３９】
以下、図４の説明に戻る。
Ｓ４１９において、ユーザ４０１がボタン５１３を押下し、Ｗｅｂブラウザ３２０に対してｌａｎｄｉｎｇ ｐａｇｅへのアクセスを指示する。該指示に応じて、Ｓ４２０において、Ｗｅｂブラウザ３２０は、ｌａｎｄｉｎｇ ｐａｇｅが示すＷｅｂサーバ３１０が提供するＷｅｂサイトへアクセスする。
上記Ｓ４２０のアクセスに応じて、Ｓ４２１において、Ｗｅｂサーバ３１０のＷｅｂアプリケーション管理部３１２は、Ｗｅｂブラウザ３２０に対してデバイス１０３を操作するためのＷｅｂアプリケーションを返却する。該返却されたＷｅｂアプリケーションに含まれるＪａｖａＳｃｒｉｐｔをＷｅｂブラウザ３２０が実行すると、図５（Ｂ）に示すようなＵＩが表示される。このＵＩについて、以下、図５（Ｂ）を用いて説明する。
【００４０】
図５（Ｂ）は、Ｗｅｂブラウザ３２０のＵＩの一例を示す図である。
５２１は、Ｗｅｂアプリケーションからデバイス１０３への接続（操作）を許可するか否かの確認を行うプロンプト（以下、「接続許可プロンプト」と呼ぶ）である。この接続許可プロンプト５２１は、スクリプト実行部３２３がデバイスへの接続可否を問うＪａｖａＳｃｒｉｐｔを実行した際に表示されるものであり、Ｗｅｂアプリケーションを提供するオリジン毎に問われる。
【００４１】
５２２は、クライアントコンピュータ１０２に接続されているデバイス１０３の一覧であり、この時点では当該Ｗｅｂアプリケーションからのデバイス１０３への接続の許可がなされていない。ユーザ４０１は、デバイス一覧５２２から、Ｗｅｂアプリケーションからの接続を許可するデバイス１０３を選択することができる。この接続許可プロンプト５２１は、悪意のあるＷｅｂアプリケーションからデバイス１０３を保護するためのものである。
【００４２】
ユーザ４０１がデバイス一覧５２２でデバイスを選択した状態でボタン５２３を押下すると、選択したデバイス１０３に対するＷｅｂアプリケーションからの接続が許可される。その後、スクリプト実行部３２３は、Ｗｅｂアプリケーションからの接続が許可されたデバイスとオリジンの組み合わせである接続情報を生成し、データ管理部３２４に格納する。
一方、ユーザ４０１がボタン５２４を押下すると、Ｗｅｂアプリケーションからのデバイス１０３に対する接続は許可されず、接続許可プロンプト５２１は閉じられる。
【００４３】
ＳｅｒｖｉｃｅＷｏｒｋｅｒを利用することで、Ｗｅｂアプリケーションをオフラインでも使用することが可能であることを説明した。ここで、ユーザ４０１がボタン５２４（接続拒否）を押下した場合、あるいはボタン５２３及び５２４のいずれも押下せずにＷｅｂアプリケーションを終了した場合について考える。この場合、Ｗｅｂアプリケーションからデバイス１０３への接続が許可されないため、ＳｅｒｖｉｃｅＷｏｒｋｅｒによりキャッシュを行ったとしてもデバイス１０３を操作することができない。つまり、Ｗｅｂアプリケーションからデバイス１０３への接続を許可しないのであれば、データ管理部３２４の記憶領域が逼迫する原因となるため、ＳｅｒｖｉｃｅＷｏｒｋｅｒによりキャッシュを行うのは望ましくない。しかし、Ｗｅｂブラウザ３２０がＷｅｂサイトにアクセスし、スクリプト実行部３２３がＷｅｂアプリケーションに含まれるＪａｖａＳｃｒｉｐｔを実行した時点でキャッシュ処理が実行されてしまう。接続許可プロンプト５２１で接続許可しない場合はキャッシュ処理も実行しないようにＷｅｂアプリケーション側の実装で回避することは可能であるが、Ｗｅｂサーバ３１０によって実装は異なるため、必ずしもキャッシュ処理が実行されないわけでは無い。そこで、Ｗｅｂブラウザ側の判断により、不要なキャッシュを行わないようにする方法を以下に説明する。
【００４４】
以下、図４の説明に戻る。
Ｓ４２１の後、Ｓ４２２〜Ｓ４２５、又は、Ｓ４３１〜Ｓ４３５が実行される。
Ｓ４２２〜Ｓ４２５は、ユーザ４０１が先に接続許可・拒否の選択を行い、その後にキャッシュ処理が実行される場合のシーケンスである。
Ｓ４３１〜Ｓ４３５は、ユーザ４０１が接続許可・拒否の選択を行う前にキャッシュ処理が実行される場合のシーケンスである。
【００４５】
まず、Ｓ４２２〜Ｓ４２５を用いて、ユーザ４０１が先に接続許可・拒否の選択を行い、その後にキャッシュ処理が実行される場合のシーケンスについて説明する。
Ｓ４２２において、スクリプト実行部３２３がＷｅｂアプリケーションのＪａｖａＳｃｒｉｐｔを実行することで、Ｗｅｂブラウザ３２０の表示部３２２に接続許可プロンプト５２１を表示する。
【００４６】
次にＳ４２３において、ユーザ４０１が接続許可・拒否の選択を行う。ユーザ４０１がＳ４２３にて接続許可を選択していた場合、スクリプト実行部３２３は、Ｓ４２４を実行する。
Ｓ４２４において、スクリプト実行部３２３が、前述したＷｅｂアプリケーションからの接続が許可されたデバイス１０３とオリジンの組み合わせである接続情報を生成する。次にＳ４２５において、スクリプト実行部３２３が、ＳｅｒｖｉｃｅＷｏｒｋｅｒの登録とＷｅｂアプリケーションのキャッシュ（保持）を行うＪａｖａＳｃｒｉｐｔを実行する。すなわち、ＳｅｒｖｉｃｅＷｏｒｋｅｒのインストールを行う。
一方、Ｓ４２３にてユーザ４０１が接続拒否を選択していた場合は、スクリプト実行部３２３はＳ４２４を実行せず、シーケンスを終了する。
【００４７】
次に、Ｓ４３１〜Ｓ４３５を用いて、ユーザ４０１が接続許可・拒否の選択を行う前にキャッシュ処理が実行される場合のシーケンスについて説明する。
Ｓ４３１において、スクリプト実行部３２３が、ＳｅｒｖｉｃｅＷｏｒｋｅｒの登録とＷｅｂアプリケーションのキャッシュを行うＪａｖａＳｃｒｉｐｔを実行する。
次にＳ４３２において、スクリプト実行部３２３がＷｅｂアプリケーションのＪａｖａＳｃｒｉｐｔを実行することで、Ｗｅｂブラウザ３２０の表示部３２２に接続許可プロンプト５２１を表示する。
【００４８】
次にＳ４３３において、ユーザ４０１は接続許可・拒否の選択を行う。ユーザ４０１が接続拒否を選択していた場合は、スクリプト実行部３２３はＳ４３４を実行する。Ｓ４３４において、スクリプト実行部３２３が、データ管理部３２４に格納された当該ＷｅｂアプリケーションのＳｅｒｖｉｃｅＷｏｒｋｅｒとキャッシュを削除する。
一方、ユーザ４０１が接続許可を選択していた場合は、スクリプト実行部３２３は、Ｓ４３５を実行する。Ｓ４３５では、上述したＳ４２４と同様に、スクリプト実行部３２３が接続情報を生成する。
【００４９】
以上のように、Ｗｅｂブラウザ３２０が、Ｗｅｂアプリケーションのプログラムの実行順序に応じてＳ４２２〜Ｓ４２５あるいはＳ４３１〜Ｓ４３５を実行することで、不要なキャッシュを行わないように制御する。この制御により、Ｗｅｂブラウザのために確保された記憶領域であるデータ管理部３２４の記憶領域が、不要なキャッシュにより逼迫されることを防止できる。さらに、不要なキャッシュとともにＳｅｒｖｉｃｅＷｏｒｋｅｒ自体も削除するため、ユーザ４０１にとって不要なバックグラウンド処理が実行されることも防止できる。
【００５０】
〔第２実施形態〕
上述した第１実施形態では、接続許可プロンプト５２１において、ユーザ４０１がＷｅｂアプリケーションからデバイス１０３への接続を拒否した場合、キャッシュを行わない、あるいは、キャッシュを削除する方法について説明した。この方法により、Ｗｅｂブラウザのために確保された記憶領域が不要なキャッシュにより逼迫することを防止できる。
一方で、Ｗｅｂアプリケーションの使用当初はキャッシュを使用していたが、ある時点で不要になったため削除したいというケースが考えられる。その場合、Ｗｅｂブラウザ３２０の機能により、対象のキャッシュを選択し削除することは可能である。しかし、オフラインでのＷｅｂアプリケーションの使用を考慮すると、Ｌｏｃａｌ ＳｔｏｒａｇｅやＩｎｄｅｘｅｄ ＤＢなどを作業データの記憶領域として使用することが想定される。つまり、ＳｅｒｖｉｃｅＷｏｒｋｅｒによるＨＴＭＬやＪａｖａＳｃｒｉｐｔなどのＷｅｂコンテンツのキャッシュだけでなく、Ｌｏｃａｌ ＳｔｏｒａｇｅやＩｎｄｅｘｅｄ ＤＢなどに格納された作業データも併せて削除するのが望ましい。
第２実施形態では、接続許可プロンプト５２１による接続許可され、後に不要となったＷｅｂアプリケーションのキャッシュ及び作業データを効率的に削除する構成について説明する。
【００５１】
図６は、クライアントコンピュータ１０２において、接続許可されたデバイス１０３の接続情報を管理するためのＷｅｂブラウザ３２０のＵＩの一例を示す図である。
図６（Ａ）は、ユーザ４０１がボタン５２３を押下した際に、スクリプト実行部３２３によって生成された接続情報の一覧を表示するＵＩである。
図６（Ｂ）は、接続情報を削除するか否かを確認するＵＩである。
【００５２】
第１実施形態でも述べた通り、接続許可プロンプトによりＷｅｂアプリケーションからの接続を許可されたデバイスの接続情報は、Ｗｅｂアプリケーションからの接続が許可されたデバイスとオリジンの組み合わせの情報である。図６（Ａ）のＵＩで、各接続情報に関連付けられたボタン６１１が押下されると、Ｗｅｂブラウザ３２０は、図６（Ｂ）のＵＩに画面遷移する。
【００５３】
図６（Ｂ）において、モーダルダイアログ６２０は、選択した接続情報を削除するか否かを確認するメッセージ６２１、チェックボックス６２２、ボタン６２３、ボタン６２４を有する。
【００５４】
チェックボックス６２２は、当該接続情報のオリジンで生成されたデータを接続情報とともに削除するかを選択するためのチェックボックスである。この生成されたデータには、ＳｅｒｖｉｃｅＷｏｒｋｅｒとキャッシュだけでなく、前述したＬｏｃａｌ ＳｔｏｒａｇｅやＩｎｄｅｘｅｄ ＤＢなどに格納されているデータも含まれる。これらのデータは、同一オリジンポリシに基づき生成されたデータであり、オリジン毎に管理されているデータである。
【００５５】
以下に作業データの例をＪＳＯＮ形式のデータで示す。
ＳｅｒｖｉｃｅＷｏｒｋｅｒとキャッシュに関するデータの例は、第１実施形態で示したため省略する。なお、これらのデータはＷｅｂブラウザのために確保された記憶領域であるデータ管理部３２４に格納されている。
【００５６】
{
"local_storage": [
{
"origin": "https://xxx.com",
"data": {
"picture_title_001": "river",
"picture_title_002": "sea",
"picture_title_003": "mountain"
}
}
],
"indexed_db": [
{
"origin": "https://xxx.com",
"object_store": [
{
"store_name": "store1",
"data": {
"river": ...,
"sea": ...,
"mountain": ...
}
}
]
}
],
"cookies": [
{
"origin": "https://xxx.com",
"data": [
{
"name": "ID",
"value": "608e2e7b-46a5-448f-b8ba-02cb57609e77",
"domain": "xxx.com",
"path": "/"
}
]
}
]
}
【００５７】
チェックボックス６２２にチェックを入れた状態で「はい」ボタン６２３が押下されると、Ｗｅｂブラウザ３２０は、接続情報とともに、接続情報と同一のオリジンのＳｅｒｖｉｃｅＷｏｒｋｅｒとキャッシュ、作業データを削除する。例えば、図６（Ｂ）で削除対象としている"https://xxx.com"に関するデータを第１実施形態と直前で示したＪＳＯＮ形式のデータの中から検索して、"origin"の値と一致するデータを削除する。
【００５８】
一方、チェックボックス６２２にチェックを入れていない状態で「はい」ボタン６２３が押下されると、Ｗｅｂブラウザ３２０は、接続情報のみを削除する。
また、「いいえ」ボタン６２４が押下されると、何も実行されず、Ｗｅｂブラウザ３２０は、図６（Ａ）のＵＩに戻る。
【００５９】
以上のように、デバイス１０３の接続情報を削除するとともに、接続情報と同一のオリジンのＳｅｒｖｉｃｅＷｏｒｋｅｒとキャッシュ、作業データを削除することで、ユーザ４０１にとって不要となったデータを効率的に削除することができる。これにより、Ｗｅｂブラウザのために確保された記憶領域であるデータ管理部３２４の記憶領域が不要となったデータにより逼迫することを防止できる。
【００６０】
〔第３実施形態〕
上述した第１実施形態の図４に示したシーケンスでは、キャッシュ処理が正常に終了した場合について説明した。しかし、スクリプト実行部３２３がキャッシュ処理を実行した際に、ＳｅｒｖｉｃｅＷｏｒｋｅｒおよびキャッシュ対象のＷｅｂコンテンツをデータ管理部３２４に格納するが、記憶領域の空き容量不足により処理が失敗する場合がある。この場合、ユーザ４０１が接続許可プロンプト５２１上でボタン５２３（接続許可を選択）を押下したのにも関わらずＷｅｂアプリケーションがキャッシュされず、ユーザ４０１も処理に失敗したことに気付くことができない。
そこで、第３実施形態ではデータ管理部３２４の空き容量が不足していた場合においてもユーザ４０１がその旨を気付くことができ、ユーザ４０１に復旧方法を提示する構成について図７、図８を用いて説明する。
【００６１】
図７は、第３実施形態を説明するシーケンス図であり、図４のシーケンスを拡張したシーケンス図に対応する。なお、このシーケンス図において、デバイス１０３の処理は、デバイス１０３のＣＰＵ２０１がＲＯＭ２０３等に格納されたプログラムを実行することにより実現される。また、クライアントコンピュータ１０２の処理は、クライアントコンピュータ１０２のＣＰＵ２０１が記憶装置２０４等に格納されたプログラムを実行することにより実現される。また、Ｗｅｂサーバ３１０の処理は、サーバ１０１のＣＰＵ２０１が記憶装置２０４等に格納されたプログラムを実行することにより実現される。
【００６２】
なお、Ｓ４１１〜Ｓ４２１は第１実施形態に示した図４と同様のステップであるため説明は省略する。Ｓ４２１の後、Ｓ７１１〜Ｓ７１５、又は、Ｓ７２１〜Ｓ７２６が実行される。
Ｓ７１１〜Ｓ７１５は、Ｗｅｂアプリケーションのキャッシュより先にユーザ４０１による接続許可・拒否の選択がなされる場合のシーケンスである。
Ｓ７２１〜Ｓ７２６は、ユーザ４０１による接続許可・拒否の選択より先にＷｅｂアプリケーションのキャッシュがなされる場合のシーケンスである。
【００６３】
まず、Ｓ７１１〜Ｓ７１５について説明する。
Ｓ７１１において、スクリプト実行部３２３は、Ｗｅｂアプリケーションを実行することで、ユーザ４０１に接続許可プロンプト５２１を表示する。
次にＳ７１２において、ユーザ４０１が、Ｗｅｂアプリケーションからのデバイス１０３への接続許可・拒否を選択する。ユーザ４０１がＳ７１２にて接続拒否を選択していた場合、スクリプト実行部３２３は、シーケンスを終了する。
【００６４】
一方、ユーザ４０１がＳ７１２にて接続許可を選択していた場合、スクリプト実行部３２３は、Ｓ７１３を実行する。
Ｓ７１３では、第１実施形態でのＳ４２４と同様に、スクリプト実行部３２３が接続情報を生成する。
次にＳ７１４において、スクリプト実行部３２３が、ＳｅｒｖｉｃｅＷｏｒｋｅｒの登録とＷｅｂアプリケーションのキャッシュを行うＪａｖａＳｃｒｉｐｔを実行する。
上記Ｓ７１４でスクリプト実行部３２３が正常に処理を終了した場合、シーケンスを終了する。
【００６５】
一方、上記Ｓ７１４で、スクリプト実行部３２３がＪａｖａＳｃｒｉｐｔを実行し、データ管理部３２４の空き容量不足に関するエラーが発生した場合、Ｓ７１５に処理を進める。空き容量不足に関するエラーとは、例えば、“QUOTA_EXCEEDED_ERR”である。
Ｓ７１５において、スクリプト実行部３２３は、ユーザ４０１に対してＳ７１４の処理が失敗した旨の通知を行うために、図８のプロンプト８１０をＷｅｂブラウザ３２０上の表示部３２２に表示する。ここで、図８を用いて、プロンプト８１０について説明する。
【００６６】
図８（Ａ）は、スクリプト実行部３２３がキャッシュ処理を実行したが、データ管理部３２４の空き容量不足によりキャッシュできなかった場合のＷｅｂブラウザ３２０のＵＩの一例を示す図である。
【００６７】
プロンプト８１０は、キャッシュに失敗した旨のメッセージ８１１、ボタン８１２、ボタン８１３を有する。ボタン８１２が押下されると、Ｗｅｂブラウザ３２０は、図８（Ｂ）のＵＩを表示する。
ボタン８１３が押下されると、Ｗｅｂブラウザ３２０は、プロンプト８１０を閉じる。
【００６８】
図８（Ｂ）は、データ管理部３２４に格納されたデータを操作するためのＷｅｂブラウザ３２０のＵＩの一例を示す図である。
８２１は、データ管理部３２４に格納されているデータ種別の一覧である。各データ種別をマウスカーソルで選択し展開すると、オリジンごとにデータの内容を閲覧することができる。ユーザは、この一覧を利用して不要なデータを選択し削除することで、データ管理部３２４の空き領域を増やすことができる。グラフ８２２は、データ管理部３２４に格納されているデータの使用率をデータ種別ごとに表したグラフである。
【００６９】
以下、図７の説明に戻り、Ｓ７２１〜Ｓ７２６について説明する。
Ｓ７２１において、スクリプト実行部３２３は、ＳｅｒｖｉｃｅＷｏｒｋｅｒの登録とＷｅｂアプリケーションのキャッシュを行うＪａｖａＳｃｒｉｐｔを実行する。このＳ７２１において、データ管理部３２４の空き容量不足によりキャッシュに失敗した場合、スクリプト実行部３２３は失敗したことを記憶しておく。
次にＳ７２２において、スクリプト実行部３２３は、ユーザ４０１に接続許可プロンプト５２１を表示する。
【００７０】
次にＳ７２３において、ユーザ４０１が、Ｗｅｂアプリケーションからのデバイス１０３への接続許可・拒否を選択する。ユーザ４０１がＳ７２３にて接続許可を選択していた場合、スクリプト実行部３２３は、Ｓ７２４を実行する。
Ｓ７２４では、第１実施形態でのＳ４２４と同様に、スクリプト実行部３２３が接続情報を生成する。その後、スクリプト実行部３２３がＳ７２１で記憶していた失敗の有無を確認し、失敗していなかった場合はシーケンスを終了する。
【００７１】
一方、上記Ｓ７２４において、上記Ｓ７２１でデータ管理部３２４の空き容量不足によりキャッシュに失敗していた場合、スクリプト実行部３２３は、Ｓ７２５を実行する。
Ｓ７２５では、Ｓ７１５と同様にスクリプト実行部３２３がユーザ４０１に対してＳ７２１の処理が失敗していた旨の通知を行う。
【００７２】
一方、ユーザ４０１がＳ７２３にて接続拒否を選択していた場合、スクリプト実行部３２３は、Ｓ７２６を実行する。
Ｓ７２６において、スクリプト実行部３２３は、上記Ｓ７２１で登録したＳｅｒｖｉｃｅＷｏｒｋｅｒとＷｅｂアプリケーションのキャッシュを削除する。なお、上記Ｓ７２１のキャッシュ処理の途中で失敗した場合においても、途中まで保存したデータを削除する。
【００７３】
以上のように、データ管理部３２４の空き容量が不足していることをユーザ４０１に通知することで、ユーザ４０１はＷｅｂアプリケーションをキャッシュできていないことに気付き、復旧操作を行うことができる。また、ユーザ４０１がデバイス１０３への接続許可を選択した場合にのみ、つまり、Ｗｅｂアプリケーションをキャッシュする意思がある場合にのみ通知を行うことで、ユーザ４０１が必要とするタイミングでデータ管理部３２４の操作を行うことができる。
【００７４】
以上、各実施形態によれば、ＵＳＢやＢｌｕｅｔｏｏｔｈで接続されたデバイスを操作するウェブアプリケーションに関する、ユーザが必要としない不要なキャッシュによりウェブブラウザのために確保された記憶領域が逼迫されるのを防止できる。
【００７５】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施形態を組み合わせた構成も全て本発明に含まれるものである。
【００７６】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図１】
2020095568.tif 000003
【図２】
2020095568.tif 000004
【図３】
2020095568.tif 000005
【図４】
2020095568.tif 000006
【図５】
2020095568.tif 000007
【図６】
2020095568.tif 000008
【図７】
2020095568.tif 000009
【図８】
2020095568.tif 000010