(57)【要約】【課題】Ｗｅｂ＿ＳｔｏｒａｇｅのＡＰＩを介した記憶領域へのアクセスを、Ｗｅｂアプリケーション単位で制御する。【解決手段】  第１の実行部は、第１のブラウジングコンテキストで第１のＷｅｂアプリケーションを実行する。第２の実行部は、第２のブラウジングコンテキストで第２のＷｅｂアプリケーションを実行する。データ格納部は、Ｗｅｂストレージを介して、前記第２のＷｅｂアプリケーションからアクセス可能である。前記第１の実行部は、前記Ｗｅｂストレージを介した前記第２のＷｅｂアプリケーションから前記データ格納部へのアクセスを要求するアクセス要求を、前記第２の実行部に送る。前記第２の実行部は、前記第１のＷｅｂアプリケーションの属するグループを示す情報に基づいて、前記第１のＷｅｂアプリケーションの属するグループに割り当てられている前記データ格納部内の領域に、前記アクセス要求に含まれる書き込み又は読み込みの処理を実行する。【選択図】図１
2016126506.tif 000002
【特許請求の範囲】
【請求項１】
第１のブラウジングコンテキストで第１のＷｅｂアプリケーションを実行する第１の実行部と、
第２のブラウジングコンテキストで第２のＷｅｂアプリケーションを実行する第２の実行部と、
Ｗｅｂストレージを介して、前記第２のＷｅｂアプリケーションからアクセス可能なデータ格納部と、を備え、
前記第１の実行部は、前記Ｗｅｂストレージを介した前記第２のＷｅｂアプリケーションから前記データ格納部へのアクセスを要求するアクセス要求を、前記第２の実行部に送り、
前記第２の実行部は、前記第１のＷｅｂアプリケーションの属するグループを示す情報に基づいて、前記第１のＷｅｂアプリケーションの属するグループに割り当てられている前記データ格納部内の領域に、前記アクセス要求に含まれる書き込み又は読み込みの処理を実行する
ことを特徴とする情報処理装置。
【請求項２】
前記第１のＷｅｂアプリケーションが属するグループが複数ある場合、
前記第１の実行部は、書き込み又は読み込み処理の対象となるグループを指定した情報を前記アクセス要求に含める
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２の実行部は、前記読み込み処理を実行した後に、前記データ格納部内の領域から読み出されたデータを、前記第１のＷｅｂアプリケーションに送る
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第１の実行部は、前記データ格納部内の領域にデータを格納する場合、格納する前記データを前記要求に含めて前記第２のＷｅｂアプリケーションに送る
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項５】
前記第２のＷｅｂアプリケーションから、前記第１のブラウジングコンテキストがサンドボックス化される
ことを特徴とする請求項１〜４の何れかに記載の情報処理装置。
【請求項６】
前記第２のブラウジングコンテキストは、前記第１のブラウジングコンテキストの上位ブラウジングコンテキストである
ことを特徴とする請求項１〜５の何れかに記載の情報処理装置。
【請求項７】
情報処理装置上のブラウジングコンテキストにおいて、前記情報処理装置に処理を実行させるプログラムであって、
前記処理が、
前記処理が実行されるブラウジングコンテキストとは異なる別のブラウジングコンテキストで実行されるＷｅｂアプリケーションから、前記Ｗｅｂアプリケーション及び前記処理で使用されるデータを保存する記憶装置へのＷｅｂストレージを介したアクセスをするよう要求するアクセス要求を受け取り、
前記Ｗｅｂアプリケーションが属するグループを示す情報に基づいて、前記グループに割り当てられている前記記憶装置内の領域に、前記要求に含まれる書き込み処理又は読み込み処理を実行する
ことを含むことを特徴とする処理プログラム。
【請求項８】
前記Ｗｅｂアプリケーションが属するグループが複数ある場合、
前記処理は、書き込み処理又は読み込み処理の対象となるグループを指定した情報を前記要求に含める
ことを特徴とする請求項７に記載の処理プログラム。
【請求項９】
前記処理は、前記記憶装置内の領域から読み込み処理がなされると、読み込まれたデータを前記Ｗｅｂアプリケーションに送る
ことを特徴とする請求項６又は７に記載の処理プログラム。
【請求項１０】
前記処理は、前記要求に書き込み処理を示す情報が含まれる場合に、前記記憶装置に書き込むデータを前記要求に含める
ことを特徴とする請求項６又は７に記載の処理プログラム。
【請求項１１】
前記処理が実行されるブラウジングコンテキストとは異なる別のブラウジングコンテキストをサンドボックス化することを、
前記処理が含む
ことを特徴とする請求項７〜１０の何れかに記載の処理プログラム。
【請求項１２】
前記処理が実行されるブラウジングコンテキストとは異なる別のブラウジングコンテキストを、前記処理が実行されるブラウジングコンテキストの下位ブラウジングコンテキストとして作ることを、
前記処理が含む
ことを特徴とする請求項７〜１１の何れかに記載のプログラム。
【請求項１３】
第１のブラウジングコンテキストで第１のＷｅｂアプリケーションを実行し、
第２のブラウジングコンテキストで第２のＷｅｂアプリケーションを実行し、
Ｗｅｂストレージを介して前記第２のＷｅｂアプリケーションからアクセス可能な記憶装置に対する書き込み処理又は読み込み処理を実行するための要求を、前記第１のＷｅｂアプリケーションから前記第２のＷｅｂアプリケーションに送り、
前記第１のＷｅｂアプリケーションの属するグループを示す情報に基づいて、前記第１のＷｅｂアプリケーションの属するグループに割り当てられている前記記憶装置内の領域に、前記アクセス要求に含まれる書き込み処理又は読み込み処理を実行する
ことを特徴とする情報処理方法。
【請求項１４】
前記第１のＷｅｂアプリケーションが属するグループが複数ある場合、
書き込み処理又は読み込み処理の対象となるグループを指定した情報を前記要求に含める
ことを特徴とする請求項１３に記載の情報処理方法。
【請求項１５】
前記記憶装置内の領域から読み込み処理がなされると、読み込まれたデータを前記第１のＷｅｂアプリケーションに送る
ことを特徴とする請求項１３又は１４に記載の情報処理方法。
【請求項１６】
前記要求に書き込み処理を示す情報が含まれる場合に、前記記憶装置に書き込むデータが前記要求に含まれている
ことを特徴とする請求項１３又は１４に記載の情報処理方法。
【請求項１７】
前記第２のＷｅｂアプリケーションから、前記第１のブラウジングコンテキストがサンドボックス化される
ことを特徴とする請求項１３〜１６のいずれかに記載の情報処理方法。
【請求項１８】
前記第２のブラウジングコンテキストは、前記第１のブラウジングコンテキストの上位ブラウジングコンテキストである
ことを特徴とする請求項１３〜１７のいずれかに記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
Ｗｅｂアプリケーション（以下、Ｗｅｂアプリとも言う）は、インターネットなどのネットワークを介して使用するアプリケーションソフトウェアである。Ｗｅｂアプリケーションは、Ｗｅｂブラウザ上で動作するプログラムである。Ｗｅｂアプリケーションは、例えばＪａｖａＳｃｒｉｐｔ（登録商標）などのプログラミング言語とＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＨＴＭＬ）で記述されており、Ｗｅｂサーバ側のプログラムと協調して動作する。
【０００３】
Ｗｅｂアプリケーションは、クライアントにインストールされて利用されるＷｅｂブラウザ上のブラウジングコンテキスト（以下、ＢＣ）で実行される。ＢＣとは、ＨＴＭＬ５の仕様によれば、文書が表示されるウィンドウやタブなどの環境を示す。また、ＨＴＭＬ５のインラインフレームなども、ＢＣと呼ばれる。
【０００４】
Ｗｅｂアプリケーションは、オリジンと呼ばれるグループに属している。同一生成源ポリシー（Ｓａｍｅ  Ｏｒｉｇｉｎ  Ｐｏｌｉｃｙ：ＳＯＰ）によれば、Ｗｅｂアプリケーションは、同じオリジンに属している別のＷｅｂアプリケーションに対するアクセスが許可されている。そのため、Ｗｅｂアプリケーションは、同じオリジンに属している別のＷｅｂアプリケーションとのデータ共有が許可されている。
【０００５】
一方、ＳＯＰによれば、Ｗｅｂアプリは、異なるオリジンに属している別のＷｅｂアプリケーションに対するアクセスが許可されていない。そのため、Ｗｅｂアプリケーションは、異なるオリジンに属している別のＷｅｂアプリとのデータ共有が許可されていない。
【０００６】
ＨＴＭＬ５の機能の１つにＷｅｂ＿Ｓｔｏｒａｇｅがある。Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ（ＡＰＩ）を介して容易にアクセス可能であることを除けば、Ｗｅｂ＿Ｓｔｏｒａｇｅの機能はＨＴＭＬ４からあるクッキー（Ｗｅｂブラウザ上で入力した文字列をクライアントに保持する機能の名称）に近しい。Ｗｅｂアプリケーションは、Ｗｅｂ＿ＳｔｏｒａｇｅのＡＰＩを介して、オリジン毎に割り当てられている記憶領域にアクセスできる。
【０００７】
暗証コード入力用ウェブアプリケーションと、機器操作用ウェブアプリケーションとを用いて、ユーザの許諾なしに情報出力装置が勝手に操作されることを防止する技術が知られている（例えば、特許文献１を参照）。
【０００８】
コンピュータのオペレーティングシステムでアクティブであるオブジェクトを特定する技術が知られている（例えば、特許文献２を参照）。
【０００９】
ユーザの現在の行動態様によってＷｅｂページにおける広告の表示態様を切り替える技術が知られている（例えば、特許文献３を参照）。
【００１０】
ユーザＩＤと属性に対応付けて管理されるセキュリティポリシーを用いたＷｅｂアプリケーションシステムが知られている（例えば、特許文献４を参照）。Ｗｅｂアプリケーションシステムは、セキュリティポリシーに基づいて社内データベースサーバからユーザの個人データを取得するためのスクリプトを埋め込んだＨＴＭＬを生成する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１４−０３８５２１号公報
【特許文献２】特表２０１３−５４３２０２号公報
【特許文献３】特開２０１３−０１２８１３号公報
【特許文献４】特開２０１２−０６９０８７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ＳＯＰのもとでは、Ｗｅｂ＿ＳｔｏｒａｇｅのＡＰＩを介した記憶領域へのアクセスは、Ｗｅｂアプリケーションの属するオリジン単位で制御される。オリジンは、Ｗｅｂアプリケーションの配布者により決定される。その配布者であっても、複数のＷｅｂアプリケーション間の関連性を考慮したオリジンの設計は困難である。
【００１３】
１つの側面において、本発明は、Ｗｅｂ＿ＳｔｏｒａｇｅのＡＰＩを介した記憶領域へのアクセスを、Ｗｅｂアプリケーション単位で制御することを目的とする。
【課題を解決するための手段】
【００１４】
第１の実行部は、第１のブラウジングコンテキストで第１のＷｅｂアプリケーションを実行する。第２の実行部は、第２のブラウジングコンテキストで第２のＷｅｂアプリケーションを実行する。データ格納部は、Ｗｅｂストレージを介して、前記第２のＷｅｂアプリケーションからアクセス可能である。前記第１の実行部は、前記Ｗｅｂストレージを介した前記第２のＷｅｂアプリケーションから前記データ格納部へのアクセスを要求するアクセス要求を、前記第２の実行部に送る。前記第２の実行部は、前記第１のＷｅｂアプリケーションの属するグループを示す情報に基づいて、前記第１のＷｅｂアプリケーションの属するグループに割り当てられている前記データ格納部内の領域に、前記アクセス要求に含まれる書き込み又は読み込みの処理を実行する。
【発明の効果】
【００１５】
Ｗｅｂ＿ＳｔｏｒａｇｅのＡＰＩを介した記憶領域へのアクセスを、Ｗｅｂアプリケーション単位で制御することができる。
【図面の簡単な説明】
【００１６】
【図１】Ｗｅｂアプリの制御の例を説明する図である。
【図２】情報処理装置のハードウェア構成の例を説明する図である。
【図３】制御情報の例（その１）を説明する図である。
【図４】情報処理装置の処理の例を説明するシーケンス図（その１）である。
【図５】情報処理装置の処理の例を説明するシーケンス図（その２）である。
【図６】制御情報の例を説明する図（その２）である。
【発明を実施するための形態】
【００１７】
以下、図面を参照しながら、実施形態を詳細に説明する。
図１は、Ｗｅｂアプリの制御の例を説明する図である。情報処理装置１００は、情報処理装置１００には、ブラウザ１１０がインストールされている。ブラウザ１１０は、複数のＢＣ（例えば、ウィンドウ、タブ、インラインフレームなど）を提供することができる。各ＢＣでは、Ｗｅｂアプリが実行される。複数のＢＣは階層化（nested）されていてもよい。情報処理装置１００は、複数のＢＣに対応する複数の実行部を含む。
【００１８】
階層化された複数のＢＣは、例えば、トップレベルＢＣ１２０、子ＢＣ１３０である。実行部１２１は、オリジンＸに属するＷｅｂアプリ１２２をトップレベルＢＣ１２０で実行する。トップレベルＢＣ１２０は、子ＢＣ１３０の親である。そのため、Ｗｅｂアプリ１２２は、子ＢＣ１３０をサンドボックス化する（sandbox）ことができる。ＨＴＭＬ５においてインラインフレーム要素に導入されたサンドボックス属性は、ＢＣに対しセキュリティ上の制限を課すために設定できる属性である。具体的には、例えば、サンドボックス化されたＢＣで実行されるＷｅｂアプリのオリジンはnullとなる。オリジンnullに属している２つのＷｅｂアプリは、同じオリジンに属していることにはならない。そのため、他のオリジンに属するＷｅｂアプリからオリジンnullに属するＷｅｂアプリへのアクセスはできない。
【００１９】
トップレベルＢＣ１１０はトップレベルのウィンドウであってもよく、子ＢＣ１３０は、トップレベルＢＣ１１０内のインラインフレームであってもよい。インラインフレームは、１つのページ内に表示される別のページである。実行部１３１は、オリジンＲに属するＷｅｂアプリ１３２を子ＢＣ１３０で実行する。オリジンＲは、オリジンＸと異なるオリジンである。
【００２０】
情報処理装置１００は、データ格納部１５０を備える。データ格納部１５０は、具体的には、ブラウザ１１０を実行する情報処理装置１００内の記憶装置（例えば、主記憶装置、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（ＨＤＤ）、またはその組み合わせ）である。本実施形態において、データ格納部１５０は、オリジンＸに紐付けられている記憶領域１５１を確保している。
【００２１】
ブラウザ１１０は、Ｗｅｂ＿Ｓｔｏｒａｇｅ  ＡＰＩ１４０を提供することができる。本実施形態において、Ｗｅｂ＿Ｓｔｏｒａｇｅ  ＡＰＩ１４０は、Ｗｅｂアプリ１２２から記憶領域１５１へのアクセスを仲介するインターフェースである。
【００２２】
本実施形態において、データ格納部１５０は、オリジンＲに紐付けられている記憶領域を確保しない。そのため、Ｗｅｂアプリ１３２は、データ格納部１５０内に利用可能な記憶領域をもたない。
【００２３】
本実施形態におけるＷｅｂアプリ１２２は、例えば、オリジンＲに属するＷｅｂアプリ１３２からオリジンＸに紐付けられている記憶領域１５１へのアクセスを可能とする。以下に、該アクセス手順を示す。
【００２４】
まず、Ｗｅｂアプリ１３２から記憶領域１５１に対してアクセスする場合、Ｗｅｂアプリ１３２を実行する実行部１３１が、記憶領域１５１に対してアクセスを求める第１の要求を、トップレベルＢＣ１２０の実行部１２１に送る。実行部１２１は、記憶領域１５１に対してアクセスを求める第１の要求を受け取る。第１の要求には、書き込み処理 (setItem)又は読み込み処理 (getItem)などの処理命令が含まれる。実行部１２１は、Ｗｅｂアプリが属しているグループを示す制御情報に基づいて、Ｗｅｂアプリ１３２が属するグループを特定する。グループは、オリジンとは関係なく、Ｗｅｂアプリ単位でのアクセスを制御するために用いられる。
【００２５】
ここで、記憶領域１５１は、少なくとも１つのグループに分割されている。Ｗｅｂアプリ１３２は、１つのグループに属する。制御情報は、Ｗｅｂアプリ１２２からアクセス可能なデータ格納部１５０に保持されていてもよい。また、制御情報を、第１の情報処理装置１００とは異なる、Ｗｅｂアプリ１２２を配信する第２の情報処理装置（サーバ）が保持していてもよい。第２の情報処理装置が制御情報を保持している場合、実行部１１１は、適宜、第２の情報処理装置に対して制御情報についての問い合わせをすればよい。
【００２６】
Ｗｅｂアプリ１３２が属するグループを特定すると、実行部１２１は、特定したグループに割り当てられている領域に対して書き込み又は読み込みの処理を実行するための第２の要求を生成する。実行部１２１は、Ｗｅｂ＿Ｓｔｏｒａｇｅ  ＡＰＩ１４０を介して、記憶領域１５１内の特定したグループに割り当てられている領域に第２の要求に基づいて書き込み又は読み込みの処理を実行する。
【００２７】
このように、Ｗｅｂアプリ１２２が、制御情報に基づいてＷｅｂアプリ１３２の記憶領域１５１へのアクセスを仲介することで、オリジン単位の制御ではなくＷｅｂアプリ単位でのアクセス制御を可能とする。そのため、オリジンＲに属するＷｅｂアプリ１３２から、オリジンＲと異なるオリジンＸに紐付けられたデータ格納部１５０への、Ｗｅｂアプリ１２２を介した書き込み及びデータ格納部１５０からの読み込み処理が可能となる。
【００２８】
なお、トップレベルＢＣ１２０のＷｅｂアプリ１２２は、ＢＣが階層化されていなくとも、Ｗｅｂアプリ単位での記憶領域１５１へのアクセス制御は可能である。また、図１に示すブラウザ１１０内の各ＢＣの階層や、図１におけるＢＣの数は、単なる例示である。ＢＣの数、ＢＣ同士が階層化されているか否か、ＢＣ同士が階層化されている場合のＢＣ間の親子関係などは、図１に例示されたものに制限されない。
【００２９】
以下において、子ＢＣ１３０で実行されるＷｅｂアプリ１３２を「Ｗｅｂアプリ１３２」と言い、トップレベルＢＣ１２０で実行されるＷｅｂアプリ１２２を「管理アプリ」と区別して称する。
【００３０】
図２は、情報処理装置のハードウェア構成の例を説明する図である。情報処理装置１００は、プロセッサ１１、メモリ１２、バス１５、外部記憶装置１６、ネットワーク接続装置１９を備える。さらにオプションとして、情報処理装置１００は、入力装置１３、出力装置１４、媒体駆動装置１７を備えても良い。情報処理装置１００は、例えば、コンピュータである。
【００３１】
プロセッサ１１は、任意の処理回路であってよく、例えば、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）であってもよい。プロセッサ１１は、情報処理装置１００において、実行部１２１、実行部１３１として動作する。なお、プロセッサ１１は、例えば、外部記憶装置１６に記憶されたプログラムを実行することができる。プロセッサ１１が実行するプログラムの例は、管理アプリ（つまりＷｅｂアプリ１２２）、Ｗｅｂアプリ１３２などである。
【００３２】
メモリ１２は、情報処理装置１００において、データ格納部１５０として使われる。場合によっては、外部記憶装置１６がデータ格納部１５０として使われてもよい。さらに、メモリ１２は、プロセッサ１１の動作により得られたデータや、プロセッサ１１が実行する処理に用いられるデータも、適宜、記憶する。
【００３３】
ネットワーク接続装置１９は、他の装置との通信に使用される。ネットワーク接続装置１９は、例えば、ネットワークアダプタなどのネットワークインタフェイス回路である。情報処理装置１００は、ネットワーク接続装置１９とネットワークを介して、他の情報処理装置から、管理アプリやＷｅｂアプリ１３２、制御情報などをダウンロードする。ネットワーク接続装置１９は、情報処理装置１００とは異なる情報処理装置に問い合わせを送信し、問い合わせに対する返答を受信するための、送受信装置として動作する。
【００３４】
入力装置１３は、例えば、ボタン、キーボード、マウス等であってもよい。出力装置１４は、ディスプレイなどであってもよい。バス１５は、プロセッサ１１、メモリ１２、入力装置１３、出力装置１４、外部記憶装置１６、媒体駆動装置１７、ネットワーク接続装置１９の間を、相互にデータの受け渡しが行えるように接続する。外部記憶装置１６には、プログラムやデータなどが格納される。外部記憶装置１６は、例えば、ＨＤＤでもよく、Ｓｏｌｉｄ‐Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）でもよい。外部記憶装置１６に格納されている情報は、適宜、プロセッサ１１などに提供される。媒体駆動装置１７は、メモリ１２や外部記憶装置１６に記憶されているデータを可搬型記録媒体１８に出力することができ、また、可搬型記録媒体１８からプログラムやデータ等を読み出すことができる。ここで、可搬型記録媒体１８は、フロッピイディスク、Ｍａｇｎｅｔ-Ｏｐｔｉｃａｌ（ＭＯ）ディスク、Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅｃｏｒｄａｂｌｅ（ＣＤ−Ｒ）やＤｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  Ｒｅｃｏｒｄａｂｌｅ（ＤＶＤ−Ｒ）などの、持ち運びが可能な任意の記憶媒体であってよい。可搬型記録媒体１８は、フラッシュメモリなどの半導体メモリカードであってもよく、媒体駆動装置１７はメモリカード用のリーダ及びライタであってもよい。
【００３５】
なお、メモリ１２、外部記憶装置１６、及び可搬型記録媒体１８は、いずれも、有形の（tangible）記憶媒体の例である。これらの有形の記憶媒体は、信号搬送波のような一時的な（transitory）媒体ではない。
【００３６】
図３は、制御情報の例（その１）を説明する図である。記憶領域１５１は複数のグループに分割されており、制御情報は、Ｗｅｂアプリが属するグループを示す情報である。制御情報は、Ｗｅｂアプリ情報、読み込み先グループ、書き込み先グループを対応付けた情報である。
【００３７】
Ｗｅｂアプリ情報は、管理アプリに記憶領域１５１へのアクセスを要求するＷｅｂアプリを示す情報である。Ｗｅｂアプリ情報は、例えば、「http://originR.com/webApp132.html」のように、Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ（ＵＲＬ）方式により示される。Ｗｅｂアプリ情報中の「http://originR.com」の部分が、オリジンを示す情報であり、この場合は、オリジンＲである。オリジンは、スキームとホストとポートの組み合わせにより識別される。「http://originR.com/webApp132.html」の内、オリジンを示す情報の後に付随している「webApp132.html」の部分は、オリジンに属するＷｅｂアプリを示す情報である。従って、「http://originR.com/webApp132.html」で示されるＷｅｂアプリ情報は、オリジンＲに属するＷｅｂアプリ１３２を示している。
【００３８】
読み込み先グループ及び書き込み先グループは、Ｗｅｂアプリが属するグループを示す情報である。読み込み先グループは、Ｗｅｂアプリからの読み込み処理に対して、アクセス可能な記憶領域１５１内の領域を示す情報である。即ち、Ｗｅｂアプリには、読み込み先グループに割り当てられている領域へのＷｅｂ＿Ｓｔｏｒａｇｅ  ＡＰＩ１４０を介したアクセスが許可される。書き込み先グループは、Ｗｅｂアプリからの書き込み処理に対して、アクセス可能な記憶領域１５１内の領域を示す情報である。即ち、Ｗｅｂアプリには、書き込み先グループに割り当てられている領域へのＷｅｂ＿Ｓｔｏｒａｇｅ  ＡＰＩ１４０を介したアクセスが許可される。
【００３９】
従って、図３の制御情報の一行目には、オリジンＲに属するＷｅｂアプリ１３２に、グループＡに割り当てられた記憶領域１５１内の領域への読み込み及び書き込み処理が許可されていることが示されている。図３の制御情報の二行目には、オリジンＹに属するdir1フォルダ内に配置されている全てのＷｅｂアプリに、グループＡに割り当てられた記憶領域１５１内の領域への読み込み及び書き込み処理が許可されていることが示されている。図３の制御情報の三行目には、オリジンＺに属するＷｅｂアプリＡに、グループＡに割り当てられた記憶領域１５１内の領域への読み込み処理が許可されていることが示されている。また、図３の制御情報の三行目には、オリジンＺに属するＷｅｂアプリＡに、グループＡに割り当てられた記憶領域１５１内の領域への書き込み処理が禁止されていることが示されている。図３の制御情報の四行目には、オリジンＺに属するdir2フォルダ配下のdir3フォルダ内に配置されている全てのＷｅｂアプリに、グループＢに割り当てられた記憶領域１５１内の領域への読み込み及び書き込み処理が許可されていることが示されている。図３の制御情報の五行目には、オリジンＹに属するＷｅｂアプリＢに、グループＢに割り当てられた記憶領域１５１内の領域への読み込み処理が禁止されていることが示されている。更に図３の制御情報の五行目には、オリジンＹに属するＷｅｂアプリＢに、グループＢに割り当てられた記憶領域１５１内の領域への書き込み処理が許可されていることが示されている。
【００４０】
なお、図３に例示した制御情報は、処理を許可するグループを限定するものではない。また、Ｗｅｂアプリ情報は、図３に例示されているようにＵＲＬを用いてＷｅｂアプリを特定する情報であってもよいが、Ｗｅｂアプリを識別できる情報であれば別の形式の情報でもよい。また、ＵＲＬは、「ｈｔｔｐ」ではなく「ｈｔｔｐｓ」でもよい。「https」は、Ｗｅｂ上のデータ転送に用いられるプロトコルであるＨＴＴＰが、Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ（ＳＳＬ）やＴｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ（ＴＬＳ）で暗号化されている状態を示すものである。ＨＴＴＰは、ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌの略である。なお、管理アプリは、データ格納部１５０への書き込み及び読み込み処理は許可されているものとする。
【００４１】
Ｗｅｂアプリ１２２（管理アプリ）が、制御情報に基づいてＷｅｂアプリ１３２の記憶領域１５１へのアクセスを仲介することで、オリジン単位の制御ではなくＷｅｂアプリ単位でのアクセス制御を可能とする。そのため、オリジンＲに属するＷｅｂアプリ１３２から、オリジンＲと異なるオリジンＸに紐付けられたデータ格納部１５０への、Ｗｅｂアプリ１２２を介した書き込み及びデータ格納部１５０からの読み込み処理が可能となる。
【００４２】
図４は、情報処理装置の処理の例を説明するシーケンス図（その１）である。図４は、ブラウザ１１０で実行されているＷｅｂアプリ１２２とＷｅｂアプリ１３２と記憶領域１５１の間で行われる処理の例を示している。
【００４３】
ステップＳ１０１〜Ｓ１０５は、Ｗｅｂアプリ１３２からＷｅｂアプリ１２２を介して記憶領域１５１に値（Ｖａｌｕｅ）を、キー（Ｋｅｙ）に対応付けて書き込む処理の例である。
【００４４】
Ｗｅｂアプリ１３２を実行する実行部１３１は、記憶領域１５１に対してアクセスを求める第１の要求を、Ｗｅｂアプリ１２２を実行する実行部１２１に送る（ステップＳ１０１）。第１の要求は、例えば、「setItem key, value」である。ＨＴＭＬ５において、「setItem」は、値（Ｖａｌｕｅ）を、キー（Ｋｅｙ）と対応づけて書き込む要求である。第１の要求は、例えば、「postMessage」などを用いて送信される。
【００４５】
Ｗｅｂアプリ１２２を実行する実行部１２１は、制御情報に基づいて、Ｗｅｂアプリ１３２が属する書き込み先グループを特定する（ステップＳ１０２）。Ｗｅｂアプリ１２２を実行する実行部１２１は、特定したグループに割り当てられている領域に対して書き込み処理を実行するための第２の要求を生成する（ステップＳ１０３）。第２の要求は、例えば、「setItem key-groupA, value」である。Ｗｅｂアプリ１３２は、グループＡに属しているものとする。第２の要求では、値（Ｖａｌｕｅ）に対応するキー（Ｋｅｙ）が、グループＡに属することを示すキー（Ｋｅｙ−ｇｒｏｕｐＡ）に変換されている。グループＡに属することを示すキーは、キー（Ｋｅｙ）の後ろの桁にグループＡを示す情報を付属させるものでもよい。
【００４６】
Ｗｅｂアプリ１２２を実行する実行部１２１は、第２の要求に含まれる処理を実行する（ステップＳ１０４）。ステップＳ１０４の結果、記憶領域１５１には、値（Ｖａｌｕｅ）とグループＡに属することを示すキー（Ｋｅｙ−ｇｒｏｕｐＡ）とが対応付けられて書き込まれる（ステップＳ１０５）。なお、ステップＳ１０４の処理では、Ｗｅｂ＿Ｓｔｏｒａｇｅ  ＡＰＩ１４０が利用される。
【００４７】
Ｗｅｂアプリ１３２は、例えば、下に記載するコードを含んでいてもよい。それにより、ステップＳ１０１の処理が実現される。
【００４８】
var message = "{method:\”set\”, key:\”keyA\”, value:\”valueB\”}";
top.postMessage(message, "http://originX.com/webApp122.html");
【００４９】
ステップＳ２０１〜Ｓ２０６は、Ｗｅｂアプリ１３２からＷｅｂアプリ１２２を介して記憶領域１５１にキー（Ｋｅｙ）に対応付けて格納されている値（Ｖａｌｕｅ）を取得するための読み込み処理の例である。
【００５０】
Ｗｅｂアプリ１３２を実行する実行部１３１は、記憶領域１５１に対してアクセスを求める第１の要求を、Ｗｅｂアプリ１２２を実行する実行部１２１に送る（ステップＳ１０１）。読み込み処理において第１の要求は、例えば、「getItem key」である。ＨＴＭＬ５において、「getItem」は、キー（Ｋｅｙ）に対応づけられた値（Ｖａｌｕｅ）を取得する（読み込む）要求である。
【００５１】
Ｗｅｂアプリ１２２を実行する実行部１２１は、制御情報に基づいて、Ｗｅｂアプリ１３２が属する読み込み先グループを特定する（ステップＳ２０２）。Ｗｅｂアプリ１２２を実行する実行部１２１は、特定したグループに割り当てられている領域に対して読み込み処理を実行するための第２の要求を生成する（ステップＳ２０３）。第２の要求は、例えば、「getItem key-groupA」である。第２の要求では、キー（Ｋｅｙ）が、グループＡに属することを示すキー（Ｋｅｙ−ｇｒｏｕｐＡ）に変換されている。グループＡに属することを示すキーは、キー（Ｋｅｙ）の後ろの桁にグループＡを示す情報を付属させるものでもよい。
【００５２】
Ｗｅｂアプリ１２２を実行する実行部１２１は、第２の要求に含まれる処理を実行する（ステップＳ２０４）。Ｗｅｂアプリ１２２を実行する実行部１２１は、グループＡに属することを示すキー（Ｋｅｙ−ｇｒｏｕｐＡ）に対応して記憶されている値（Ｖａｌｕｅ）を記憶領域１５１から読み出す（ステップＳ２０５）。なお、ステップＳ２０４及びＳ２０５の処理では、Ｗｅｂ＿Ｓｔｏｒａｇｅ  ＡＰＩ１４０が利用される。
【００５３】
Ｗｅｂアプリ１２２を実行する実行部１２１は、記憶領域１５１から読み出したキー（Ｋｅｙ）に対応する値（Ｖａｌｕｅ）を、Ｗｅｂアプリ１３２に送る（ステップＳ２０６）。
【００５４】
Ｗｅｂアプリ１３２は、例えば、下に記載するコードを含んでいてもよい。それにより、ステップＳ２０１の処理が実現される。
【００５５】
var message = "{method:\”get\”, key:\”keyA\” }";
top.postMessage(message, "http://originX.com/webApp122.html");
【００５６】
また、Ｗｅｂアプリ１２２は、例えば、下に記載するコードを含んでいてもよい。それにより、ステップＳ２０６の処理が実現される。
【００５７】
var message = "{ key:\”keyA\”, value:\”valueB\”}";
applicationWindow.postMessage(message, “*”);
【００５８】
Ｗｅｂアプリ１２２（管理アプリ）が、制御情報に基づいてＷｅｂアプリ１３２の記憶領域１５１へのアクセスを仲介することで、オリジン単位の制御ではなくＷｅｂアプリ単位でのアクセス制御を可能とする。そのため、オリジンＲに属するＷｅｂアプリ１３２から、オリジンＲと異なるオリジンＸに紐付けられたデータ格納部１５０への、Ｗｅｂアプリ１２２を介した書き込み及びデータ格納部１５０からの読み込み処理が可能となる。
【００５９】
＜他の実施形態＞
図１〜図４に係る実施形態では、Ｗｅｂアプリ１３２は、制御情報内で１つのグループに属しており、２つのグループに属していない。図１〜図４に係る実施形態とは異なる実施形態では、Ｗｅｂアプリは、２つ以上のグループに属することができる。
【００６０】
図５は、情報処理装置の処理の例を説明するシーケンス図（その２）である。図５は、ブラウザ１１０で実行されているＷｅｂアプリ１２２とＷｅｂアプリ１３２と記憶領域１５１の間で行われる処理の例を示している。
【００６１】
ステップＳ３０１〜Ｓ３０４は、Ｗｅｂアプリ１３２からＷｅｂアプリ１２２を介して記憶領域１５１に値（Ｖａｌｕｅ）を、グループＡに属することを示すキー（Ｋｅｙ−ｇｒｏｕｐＡ）に対応付けて書き込む処理の例である。なお、Ｗｅｂアプリ１３２は、予め自身が所属するグループの情報を保持しているものとする。
【００６２】
Ｗｅｂアプリ１３２を実行する実行部１３１は、記憶領域１５１に対してアクセスを求める第１の要求を、Ｗｅｂアプリ１２２を実行する実行部１２１に送る（ステップＳ３０１）。第１の要求は、例えば、「setItem key-groupA, value」である。ＨＴＭＬ５において、「setItem key-groupA, value」は、値（Ｖａｌｕｅ）を、グループＡに属することを示すキー（Ｋｅｙ−ｇｒｏｕｐＡ）と対応づけて書き込む要求である。第１の要求は、例えば、「postMessage」などを用いて送信される。
【００６３】
Ｗｅｂアプリ１２２を実行する実行部１２１は、制御情報に基づいて、Ｗｅｂアプリ１３２が「setItem key-groupA, value」に含まれるキーに付随するグループに属しているかを判定する（ステップＳ３０２）。Ｗｅｂアプリ１３２がキーに付随するグループに属している場合、該グループに割り当てられている記憶領域１５１内の領域へのアクセスが許可される。一方、Ｗｅｂアプリ１３２がキーに付随するグループに属していない場合、該グループに割り当てられている記憶領域１５１内の領域へのアクセスは許可されない。言い換えると、実行部１２１は、「setItem key-groupA, value」を受け取ると、Ｗｅｂアプリ１３２がグループＡに属しているかを制御情報に基づいて判定する。制御情報において、Ｗｅｂアプリ１３２がグループＡに属している場合、Ｗｅｂアプリ１３２にはグループＡに割り当てられている領域へのアクセスが許可される。一方、制御情報において、Ｗｅｂアプリ１３２がグループＡに属していない場合、Ｗｅｂアプリ１３２にはグループＡに割り当てられている領域へのアクセスが許可されない。
【００６４】
実行部１２１は、Ｗｅｂアプリ１３２がグループＡに属している場合、第１の要求に含まれる処理を実行する（ステップＳ３０３）。ステップＳ３０３の結果、記憶領域１５１には、値（Ｖａｌｕｅ）とグループＡに属することを示すキー（Ｋｅｙ−ｇｒｏｕｐＡ）とが対応付けられて書き込まれる（ステップＳ３０４）。なお、ステップＳ３０３の処理では、Ｗｅｂ＿Ｓｔｏｒａｇｅ  ＡＰＩ１４０が利用される。
【００６５】
ステップＳ４０１〜Ｓ４０５は、Ｗｅｂアプリ１３２からＷｅｂアプリ１２２を介して記憶領域１５１にグループＡに属することを示すキー（Ｋｅｙ−ｇｒｏｕｐＡ）に対応付けて格納されている値（Ｖａｌｕｅ）を取得するための読み込み処理の例である。
【００６６】
Ｗｅｂアプリ１３２を実行する実行部１３１は、記憶領域１５１に対してアクセスを求める第１の要求を、Ｗｅｂアプリ１２２を実行する実行部１２１に送る（ステップＳ４０１）。読み込み処理において第１の要求は、例えば、「getItem key」である。ＨＴＭＬ５において、「getItem」は、グループＡに属することを示すキー（Ｋｅｙ−ｇｒｏｕｐＡ）に対応づけられた値（Ｖａｌｕｅ）を取得する（読み込む）要求である。
【００６７】
Ｗｅｂアプリ１２２を実行する実行部１２１は、制御情報に基づいて、Ｗｅｂアプリ１３２が「getItem key-groupA」に含まれるキーに付随するグループに属しているかを判定する（ステップＳ４０２）。Ｗｅｂアプリ１３２がキーに付随するグループに属している場合、該グループに割り当てられている記憶領域１５１内の領域へのアクセスが許可される。一方、Ｗｅｂアプリ１３２がキーに付随するグループに属していない場合、該グループに割り当てられている記憶領域１５１内の領域へのアクセスは許可されない。言い換えると、実行部１２１は、「getItem key-groupA」を受け取ると、Ｗｅｂアプリ１３２がグループＡに属しているかを制御情報に基づいて判定する。制御情報において、Ｗｅｂアプリ１３２がグループＡに属している場合、Ｗｅｂアプリ１３２にはグループＡに割り当てられている領域へのアクセスが許可される。一方、制御情報において、Ｗｅｂアプリ１３２がグループＡに属していない場合、Ｗｅｂアプリ１３２にはグループＡに割り当てられている領域へのアクセスが許可されない。
【００６８】
Ｗｅｂアプリ１２２を実行する実行部１２１は、第２の要求に含まれる処理を実行する（ステップＳ４０３）。Ｗｅｂアプリ１２２を実行する実行部１２１は、グループＡに属することを示すキー（Ｋｅｙ−ｇｒｏｕｐＡ）に対応して記憶されている値（Ｖａｌｕｅ）を記憶領域１５１から読み出す（ステップＳ４０４）。なお、ステップＳ４０３及びＳ４０４の処理では、Ｗｅｂ＿Ｓｔｏｒａｇｅ  ＡＰＩ１４０が利用される。
【００６９】
Ｗｅｂアプリ１２２を実行する実行部１２１は、記憶領域１５１から読み出したグループＡに属することを示すキー（Ｋｅｙ−ｇｒｏｕｐＡ）に対応する値（Ｖａｌｕｅ）を、Ｗｅｂアプリ１３２に送る（ステップＳ４０５）。
【００７０】
図６は、制御情報の例を説明する図（その２）である。制御情報３０１は、例えば、ステップＳ４０２で用いられる。制御情報３０２は、例えば、ステップＳ３０２で用いられる。制御情報３０１及び制御情報３０２は、Ｗｅｂアプリ情報と、該Ｗｅｂアプリが属しているグループ情報とを対応づけた情報を示す。
【００７１】
制御情報３０１及び制御情報３０２において、Ｗｅｂアプリ情報は、管理アプリに記憶領域１５１へのアクセスを要求するＷｅｂアプリを示す情報である。Ｗｅｂアプリ情報は、例えば、「http://originR.com/webApp132.html」のように、Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ（ＵＲＬ）方式により示される。Ｗｅｂアプリ情報中の「http://originR.com」の部分が、オリジンを示す情報であり、この場合は、オリジンＲである。オリジンは、スキームとホストとポートの組み合わせにより識別される。「http://originR.com/webApp132.html」の内、オリジンを示す情報の後に付随している「webApp132.html」の部分は、オリジンに属するＷｅｂアプリを示す情報である。従って、「http://originR.com/webApp132.html」で示されるＷｅｂアプリ情報は、オリジンＲに属するＷｅｂアプリ１３２を示している。
【００７２】
グループ情報は、Ｗｅｂアプリが属するグループを示す情報である。制御情報３０１において、グループ情報はＷｅｂアプリからの読み込み処理に対して、アクセス可能な記憶領域１５１内の領域を示す情報でもある。即ち、Ｗｅｂアプリには、制御情報３０１に示されるグループに割り当てられている領域へのＷｅｂ＿Ｓｔｏｒａｇｅ  ＡＰＩ１４０を介したアクセスが許可される。なお、Ｗｅｂアプリからの読み込み処理の要求があり制御情報に読み込み対象となる領域へのアクセス許可がない場合は、Ｗｅｂアプリからの読み込み処理は実行されない。制御情報３０２において、グループ情報はＷｅｂアプリからの書き込み処理に対して、アクセス可能な記憶領域１５１内の領域を示す情報でもある。即ち、Ｗｅｂアプリには、制御情報３０１に示されるグループに割り当てられている領域へのＷｅｂ＿Ｓｔｏｒａｇｅ  ＡＰＩ１４０を介したアクセスが許可される。なお、Ｗｅｂアプリからの書き込み処理の要求があり制御情報に書き込み対象となる領域へのアクセス許可がない場合は、Ｗｅｂアプリからの書き込み処理は実行されない。
【００７３】
従って、制御情報３０１の一行目には、オリジンＲに属するＷｅｂアプリ１３２に、グループＡに割り当てられた記憶領域１５１内の領域からの読み込み処理が許可されていることが示されている。制御情報３０１の二行目には、オリジンＹに属するdir1フォルダ内に配置されている全てのＷｅｂアプリに、グループＡに割り当てられた記憶領域１５１内の領域からの読み込み処理が許可されていることが示されている。制御情報３０１の三行目には、オリジンＺに属するＷｅｂアプリＡに、グループＡに割り当てられた記憶領域１５１内の領域からの読み込み処理が許可されていることが示されている。制御情報３０１の四行目には、オリジンＺに属するdir2フォルダ配下のdir3フォルダ内に配置されている全てのＷｅｂアプリに、グループＢに割り当てられた記憶領域１５１内の領域からの読み込み処理が許可されていることが示されている。制御情報３０１の五行目には、オリジンＺに属するＷｅｂアプリＡに、グループＢに割り当てられた記憶領域１５１内の領域への読み込み処理が許可されていることが示されている。ここで、制御情報３０１の三行目と五行目には、オリジンＺに属するＷｅｂアプリＡが属するグループを示しており、ＷｅｂアプリＡがグループＡ及びグループＢに属していることが示されている。
【００７４】
制御情報３０２の一行目には、オリジンＲに属するＷｅｂアプリ１３２に、グループＡに割り当てられた記憶領域１５１内の領域への書き込み処理が許可されていることが示されている。制御情報３０２の二行目には、オリジンＹに属するdir1フォルダ内に配置されている全てのＷｅｂアプリに、グループＡに割り当てられた記憶領域１５１内の領域への書き込み処理が許可されていることが示されている。制御情報３０２の三行目には、オリジンＺに属するＷｅｂアプリＡに、グループＢに割り当てられた記憶領域１５１内の領域への書き込み処理が許可されていることが示されている。
【００７５】
なお、図６に例示した制御情報は、処理を許可するグループを限定するものではない。また、Ｗｅｂアプリ情報は、図６に例示されているようにＵＲＬを用いてＷｅｂアプリを特定する情報であってもよいが、Ｗｅｂアプリを識別できる情報であれば別の形式の情報でもよい。また、ＵＲＬは、「ｈｔｔｐ」ではなく「ｈｔｔｐｓ」でもよい。Ｗｅｂアプリ１２２（管理アプリ）が、制御情報に基づいてＷｅｂアプリ１３２の記憶領域１５１へのアクセスを仲介することで、オリジン単位の制御ではなくＷｅｂアプリ単位でのアクセス制御を可能とする。そのため、オリジンＲに属するＷｅｂアプリ１３２から、オリジンＲと異なるオリジンＸに紐付けられたデータ格納部１５０への、Ｗｅｂアプリ１２２を介した書き込み及びデータ格納部１５０からの読み込み処理が可能となる。
【符号の説明】
【００７６】
１００  情報処理装置
１１０  ブラウザ
１２０  トップレベルＢＣ
１２１、１３１  実行部
１２２、１３２  Ｗｅｂアプリ
１３０  子ＢＣ
１４０  Ｗｅｂ＿ＳｔｏｒａｇｅＡＰＩ
１５０  データ格納部
３０１、３０２  制御情報
【図１】
2016126506.tif 000003
【図２】
2016126506.tif 000004
【図３】
2016126506.tif 000005
【図４】
2016126506.tif 000006
【図５】
2016126506.tif 000007
【図６】
2016126506.tif 000008