(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-25
(45)【発行日】2024-02-02
(54)【発明の名称】ネットワーク・トラフィックをウェブ・コンテナに隔離する方法、システム、プログラム
(51)【国際特許分類】
G06F 16/95 20190101AFI20240126BHJP
G06F 21/62 20130101ALI20240126BHJP
【FI】
G06F16/95
G06F21/62 363
(21)【出願番号】P 2022502378
(86)(22)【出願日】2020-07-17
(86)【国際出願番号】 IB2020056732
(87)【国際公開番号】W WO2021014304
(87)【国際公開日】2021-01-28
【審査請求日】2022-12-23
(32)【優先日】2019-07-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】デ フライタス クーニャ、レナート ルイス
(72)【発明者】
【氏名】アッペル、アナ ポーラ
(72)【発明者】
【氏名】コレイア ヴィラ リアル、ルーカス
(72)【発明者】
【氏名】ドアマラル、エンリケ、フォン アツィンゲン
【審査官】原 秀人
(56)【参考文献】
【文献】米国特許出願公開第2016/0371507(US,A1)
【文献】米国特許出願公開第2018/0139238(US,A1)
【文献】特開2011-237979(JP,A)
【文献】国際公開第2019/059034(WO,A1)
【文献】特表2019-505865(JP,A)
【文献】特表2011-507104(JP,A)
【文献】特開2018-185742(JP,A)
【文献】特表2011-515767(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
コンピュータの情報処理による方法であって、
第1のインターネット・ベースのリソースの第1のドメイン・アドレスを受け取ることと、
ウェブ・コンテナ・リポジトリから、前記第1のドメイン・アドレスが、起動済みのウェブ・コンテナ環境に関連付けられていないと判定することと、
前記第1のドメイン・アドレスの第1の所有者を特定するために、所有者データベースに照会することと、
前記第1の所有者に関連付けられた1つまたは複数のドメイン・アドレスを含む、関連付けられたドメイン・アドレスのセットを特定するために、逆引き所有者データベースに照会することと、
前記第1のドメイン・アドレスおよび前記関連付けられたドメイン・アドレスのセット用の第1のウェブ・コンテナを、前記第1のウェブ・コンテナにコンピューティング・リソースを割り当てることによって起動することと、
前記第1のウェブ・コンテナの識別情報を前記ウェブ・コンテナ・リポジトリに記憶することと、
前記第1のウェブ・コンテナを使用して、前記第1のインターネット・ベースのリソースに関連するネットワーク・アクティビティを隔離することと、
前記ネットワーク・アクティビティに関連するデータを前記第1のウェブ・コンテナに記憶することと、
を含む、方法。
【請求項2】
前記第1のウェブ・コンテナにコンピューティング・リソースを割り当てることは、
前記第1のウェブ・コンテナが使用するためのコンピュータ・ストレージを割り当てることと、
前記第1のウェブ・コンテナが使用するためのコンピュータ処理リソースを割り当てることと、
を含む、請求項1に記載の方法。
【請求項3】
前記第1のウェブ・コンテナを使用して、前記第1のインターネット・ベースのリソースとの前記ネットワーク・アクティビティを隔離することは、
前記第1のインターネット・ベースのリソースとインタラクションを行うために、前記割り当てられたコンピュータ・ストレージおよびコンピュータ処理リソースを使用することと、
前記第1のインターネット・ベースのリソースが、割り当てられていないコンピュータ・ストレージおよびコンピュータ処理リソースにアクセスするのを阻止することと、
を含む、請求項2に記載の方法。
【請求項4】
前記ネットワーク・アクティビティに関連するデータを前記第1のウェブ・コンテナに記憶することは、
複数のウェブ・ベースの追跡情報、
1つまたは複数のブラウザ拡張機能、
ネットワーク・アクセス履歴、および、
1つまたは複数のインターネット・ベースのリソースに関するユーザ・プロファイル情報、
のうちの1つまたは複数を記憶することを含む、請求項1に記載の方法。
【請求項5】
第2のインターネット・ベースのリソースの第2のドメイン・アドレスを受け取ることと、
前記ウェブ・コンテナ・リポジトリから、前記第2のドメイン・アドレスが前記第1のウェブ・コンテナに関連付けられていると判定することと、
前記第1のウェブ・コンテナを使用して、前記第2のインターネット・ベースのリソースとのネットワーク・アクティビティを隔離することと、
前記ネットワーク・アクティビティに関連する前記データを、前記第2のインターネット・ベースのリソースとの1つまたは複数のネットワーク・アクティビティ・アクションに利用することと、
をさらに含む、請求項1に記載の方法。
【請求項6】
前記ウェブ・コンテナ・リポジトリから、前記第2のドメイン・アドレスが前記第1のウェブ・コンテナに関連付けられていると判定することは、
前記第2のドメイン・アドレスを前記第1のドメイン・アドレスおよび前記関連付けられたドメイン・アドレスのセットと比較することと、
前記比較から、前記第2のドメイン・アドレスが前記関連付けられたドメイン・アドレスのセットにリストされていると判定することと、
を含む、請求項5に記載の方法。
【請求項7】
前記所有者データベースはWHOISデータベースを含み、前記逆引き所有者データベースは逆引きWHOISデータベースを含む、請求項1に記載の方法。
【請求項8】
コンピュータ・プロセッサと、
前記コンピュータ・プロセッサによって実行された場合に、動作を実施するプログラムを含むメモリと、
を備え、前記動作は、
第1のインターネット・ベースのリソースの第1のドメイン・アドレスを受け取ることと、
ウェブ・コンテナ・リポジトリから、前記第1のドメイン・アドレスが、起動済みのウェブ・コンテナ環境に関連付けられていないと判定することと、
前記第1のドメイン・アドレスの第1の所有者を特定するために、所有者データベースに照会することと、
前記第1の所有者に関連付けられた1つまたは複数のドメイン・アドレスを含む、関連付けられたドメイン・アドレスのセットを特定するために、逆引き所有者データベースに照会することと、
前記第1のドメイン・アドレスおよび前記関連付けられたドメイン・アドレスのセット用の第1のウェブ・コンテナを、前記第1のウェブ・コンテナにコンピューティング・リソースを割り当てることによって起動することと、
前記第1のウェブ・コンテナの識別情報を前記ウェブ・コンテナ・リポジトリに記憶することと、
前記第1のウェブ・コンテナを使用して、前記第1のインターネット・ベースのリソースに関連するネットワーク・アクティビティを隔離することと、
前記ネットワーク・アクティビティに関連するデータを前記第1のウェブ・コンテナに記憶することと、
を含む、システム。
【請求項9】
前記第1のウェブ・コンテナにコンピューティング・リソースを割り当てることは、
前記第1のウェブ・コンテナが使用するためのコンピュータ・ストレージを割り当てることと、
前記第1のウェブ・コンテナが使用するためのコンピュータ処理リソースを割り当てることと、
を含む、請求項8に記載のシステム。
【請求項10】
前記第1のウェブ・コンテナを使用して、前記第1のインターネット・ベースのリソースとの前記ネットワーク・アクティビティを隔離することは、
前記第1のインターネット・ベースのリソースとインタラクションを行うために、前記割り当てられたコンピュータ・ストレージおよびコンピュータ処理リソースを使用することと、
前記第1のインターネット・ベースのリソースが、割り当てられていないコンピュータ・ストレージおよびコンピュータ処理リソースにアクセスするのを阻止することと、
を含む、請求項9に記載のシステム。
【請求項11】
前記ネットワーク・アクティビティに関連するデータを前記第1のウェブ・コンテナに記憶することは、
複数のウェブ・ベースの追跡情報、
1つまたは複数のブラウザ拡張機能、
ネットワーク・アクセス履歴、および、
1つまたは複数のインターネット・ベースのリソースに関するユーザ・プロファイル情報、
のうちの1つまたは複数を記憶することを含む、請求項8に記載のシステム。
【請求項12】
前記動作は、
第2のインターネット・ベースのリソースの第2のドメイン・アドレスを受け取ることと、
前記ウェブ・コンテナ・リポジトリから、前記第2のドメイン・アドレスが前記第1のウェブ・コンテナに関連付けられていると判定することと、
前記第1のウェブ・コンテナを使用して、前記第2のインターネット・ベースのリソースとのネットワーク・アクティビティを隔離することと、
前記ネットワーク・アクティビティに関連する前記データを、前記第2のインターネット・ベースのリソースとの1つまたは複数のネットワーク・アクティビティ・アクションに利用することと、
をさらに含む、請求項8に記載のシステム。
【請求項13】
前記ウェブ・コンテナ・リポジトリから、前記第2のドメイン・アドレスが前記第1のウェブ・コンテナに関連付けられていると判定することは、
前記第2のドメイン・アドレスを前記第1のドメイン・アドレスおよび前記関連付けられたドメイン・アドレスのセットと比較することと、
前記比較から、前記第2のドメイン・アドレスが前記関連付けられたドメイン・アドレスのセットにリストされていると判定することと、
を含む、請求項12に記載のシステム。
【請求項14】
前記所有者データベースはWHOISデータベースを含み、前記逆引き所有者データベースは逆引きWHOISデータベースを含む、請求項8に記載のシステム。
【請求項15】
請求項1~7の何れか1項に記載の方法を、コンピュータに実行させる、コンピュータ・プログラム。
【請求項16】
請求項15に記載の前記コンピュータ・プログラムを、コンピュータ可読記憶媒体に記憶した、記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プライバシーおよびネットワーク・トラフィック隔離を提供することに関し、より詳細には、ウェブ・コンテナを作成し、ネットワーク・アクティビティおよびネットワーク・トラフィックをウェブ・コンテナに隔離することに関する。
【背景技術】
【0002】
ウェブ追跡技術は、様々なウェブサイト、サービス、ウェブ・ブラウザを含めて、インターネット全体でユーザを追跡することができる。ユーザは追跡を阻止するためのアド・ホックなソリューションを実行し得るが、これらのアド・ホックなソリューションは実現が難しく、インターネット・アクティビティの有益な追跡または望ましい追跡あるいはその両方を妨げる可能性がある。
【発明の概要】
【0003】
1つまたは複数のコンピュータのシステムは、動作時にシステムにアクションを実施させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがシステムにインストールされることにより、特定の動作またはアクションを実施するように構成することができる。1つまたは複数のコンピュータ・プログラムは、データ処理装置によって実行された場合に、装置にアクションを実施させる命令を含むことによって、特定の動作またはアクションを実施するように構成することができる。1つの一般的な態様は、第1のインターネット・ベースのリソースの第1のドメイン・アドレスを受け取ることと、ウェブ・コンテナ・リポジトリから、第1のドメイン・アドレスが、起動済みのウェブ・コンテナ環境に関連付けられていないと判定することと、第1のドメイン・アドレスの第1の所有者を特定するために、所有者データベースに照会することと、第1の所有者に関連付けられた1つまたは複数のドメイン・アドレスを含む、関連付けられたドメイン・アドレスのセットを特定するために、逆引き所有者データベースに照会することと、を含む、方法を含む。この方法はまた、第1のドメイン・アドレスおよび関連付けられたドメイン・アドレスのセット用の第1のウェブ・コンテナを、第1のウェブ・コンテナにコンピューティング・リソースを割り当てることによって起動することと、第1のウェブ・コンテナの識別情報を、第1のドメイン・アドレスおよび関連付けられたドメイン・アドレスのセットへの関連付けと共に、ウェブ・コンテナ・リポジトリに記憶することと、第1のウェブ・コンテナを使用して、第1のインターネット・ベースのリソースとのネットワーク・アクティビティを隔離することと、ネットワーク・アクティビティに関連するデータを第1のウェブ・コンテナに記憶することと、を含む。この態様の他の実施形態は、対応するコンピュータ・システム、装置、および1つまたは複数のコンピュータ・ストレージ・デバイスに記録されたコンピュータ・プログラムを含み、それぞれが方法のアクションを実施するように構成される。
【0004】
1つの例示的な実施形態は、コンピュータ・プロセッサと、コンピュータ・プロセッサによって実行された場合に、動作を実施するプログラムを含むメモリと、を含む、システムを含む。この動作は、第1のインターネット・ベースのリソースの第1のドメイン・アドレスを受け取ることと、ウェブ・コンテナ・リポジトリから、第1のドメイン・アドレスが、起動済みのウェブ・コンテナ環境に関連付けられていないと判定することと、第1のドメイン・アドレスの第1の所有者を特定するために、所有者データベースに照会することと、第1の所有者に関連付けられた1つまたは複数のドメイン・アドレスを含む、関連付けられたドメイン・アドレスのセットを特定するために、逆引き所有者データベースに照会することと、を含む。この動作はさらに、第1のドメイン・アドレスおよび関連付けられたドメイン・アドレスのセット用の第1のウェブ・コンテナを、第1のウェブ・コンテナにコンピューティング・リソースを割り当てることによって起動することと、第1のウェブ・コンテナの識別情報を、第1のドメイン・アドレスおよび関連付けられたドメイン・アドレスのセットへの関連付けと共に、ウェブ・コンテナ・リポジトリに記憶することと、第1のウェブ・コンテナを使用して、第1のインターネット・ベースのリソースとのネットワーク・アクティビティを隔離することと、ネットワーク・アクティビティに関連するデータを第1のウェブ・コンテナに記憶することと、を含む。
【0005】
1つの例示的な実施形態は、ウェブ・コンテナを作成し、ネットワーク・アクティビティおよびネットワーク・トラフィックをウェブ・コンテナに隔離するためのコンピュータ・プログラム製品を含み、コンピュータ・プログラム製品は、コンピュータ可読プログラム・コードを具現化するコンピュータ可読記憶媒体を含み、コンピュータ可読プログラム・コードは、動作を実施するために1つまたは複数のコンピュータ・プロセッサによって実行可能である。この動作は、第1のインターネット・ベースのリソースの第1のドメイン・アドレスを受け取ることと、ウェブ・コンテナ・リポジトリから、第1のドメイン・アドレスが、起動済みのウェブ・コンテナ環境に関連付けられていないと判定することと、第1のドメイン・アドレスの第1の所有者を特定するために、所有者データベースに照会することと、第1の所有者に関連付けられた1つまたは複数のドメイン・アドレスを含む、関連付けられたドメイン・アドレスのセットを特定するために、逆引き所有者データベースに照会することと、を含む。この動作はさらに、第1のドメイン・アドレスおよび関連付けられたドメイン・アドレスのセット用の第1のウェブ・コンテナを、第1のウェブ・コンテナにコンピューティング・リソースを割り当てることによって起動することと、第1のウェブ・コンテナの識別情報を、第1のドメイン・アドレスおよび関連付けられたドメイン・アドレスのセットへの関連付けと共に、ウェブ・コンテナ・リポジトリに記憶することと、第1のウェブ・コンテナを使用して、第1のインターネット・ベースのリソースとのネットワーク・アクティビティを隔離することと、ネットワーク・アクティビティに関連するデータを第1のウェブ・コンテナに記憶することと、を含む。
【0006】
以下、添付の図面を参照して、本発明の実施形態を単なる例として説明する。
【図面の簡単な説明】
【0007】
【
図1】一実施形態による、ネットワーク・システムを示す図である。
【
図2A】一実施形態による、ウェブ・コンテナ・システムを示す図である。
【
図2B】一実施形態による、ウェブ・コンテナ・リポジトリを示す図である。
【
図3】一実施形態による、ウェブ・コンテナ・システムのユーザ・インターフェースを示す図である。
【
図4】本明細書に記載の実施形態による、ウェブ・コンテナ・システムのための方法を示す図である。
【
図5】一実施形態による、ドメイン・アドレスの関連付けを特定するための方法を示す図である。
【
図6】一実施形態による、ウェブ・コンテナ・システムのブロック図である。
【発明を実施するための形態】
【0008】
人はインターネットに基づく様々なウェブサイトおよびサービスにアクセスして使用するのに多くの時間を費やしている。それらのサービスを提供する企業は、ウェブサイトおよびサービスを改善するとともに、ユーザ・インタラクションを収益化するために、ユーザの行動を理解することを望んでいる。インターネットの利用の増加および収益化の欲求は、大量のユーザ・データのマイニングおよびウェブ・ベースのアクティビティの追跡につながっている。
【0009】
ウェブ追跡技術が向上および進歩するにつれて、様々なネットワーク・サービスのユーザは、ウェブ追跡および関連情報の記憶が提供できるサービスへのアクセスのしやすさから恩恵を受けることができる。たとえば、追跡およびユーザ情報の記憶により、ユーザまたはウェブ・ブラウザあるいはその両方は、ログイン情報または他の識別情報あるいはその両方を記憶することが可能になり、それによって、ユーザは、ログイン情報および他の識別情報の入力を繰り返し提供することなく、ウェブサイトからウェブサイトへ、およびサービスからサービスへと移動できるようになる。さらに、多くのインターネット・サービスのビジネス・モデルは、広告、ユーザ行動分析などのためにユーザのアクティビティの追跡に依存している。たとえば、ユーザに無料の電子メールが提供されているが、ユーザの電子メールおよびユーザ追跡データはターゲット広告に使用されている。
【0010】
ユーザはあるレベルの追跡に同意して許可し得るが、多くのユーザは、自身のネットワーク・アクティビティおよびデータの全てがインターネット全体で追跡され、共有されることを望まない。これらの懸念に対処するために、多くのウェブ・サービスおよびブラウザ・プログラムは、プライバシーに焦点を合わせた様々なソリューションを提供しており、たとえば、とりわけ、プライベート・ブラウジング・オプション、追跡拒否(DNT:do-not-track)オプション、およびウェブ追跡隔離サービス、たとえば、ウェブ・コンテナを提供している。これらのオプションは、あるレベルでのユーザのプライバシーの懸念に対処するが、これらの各オプションは、ユーザが簡単に一部のサービスに対してある程度の追跡を許可しつつ、他のタイプのアクティビティ追跡の隔離も行うための方法を提供していない。たとえば、プライベート・ブラウジングではユーザ情報が記憶されないので、ユーザがプライベート・ブラウジング・セッションを終了したときに、そのブラウジング・セッションに関連する全ての情報が削除される。いくつかのケースでは、DNTオプションは一部のインターネット・ベースのサービスによって無視されるので、ユーザが追跡を望まないことを示したとしても、追跡はどのみち行われる。さらに、一部のブラウザおよびサービスは、全てのウェブサイトでDNTを自動的にオンにし、これにより、DNTを有効にすべき場合またはそうでない場合を決定するユーザの決定が上書きされる。
【0011】
他の例示的なソリューションでは、ウェブ・コンテナによって、ウェブ・ブラウザは、訪問中のウェブサイトに応じて異なる行動をとることが可能になる。たとえば、ブラウザは、各ウェブ・コンテナ内にクッキー、履歴、拡張機能、および他の属性の完全に異なるセットを保持するので、企業がユーザを追跡できる方法が限られる。しかしながら、ウェブ・コンテナのセットアップ過程は誤りが起こりやすく、ユーザがコンテナを自分で設定して維持管理する必要がある。このため、ウェブ・コンテナの効果的なセットアップは、ウェブ・コンテナを設定するための技術的スキルを有するユーザのみに限られる。さらに、多くの場合、ユーザは、理想より少ないコンテナを作成する(それによって、異なる組織が所有する多くの異なるウェブサイトによる追跡を許す)か、または多すぎるコンテナを作成する(異なる関係するサービス間を移動するときの閲覧体験が影響を受ける)ことによって、ウェブ・コンテナを誤って使用してしまう。
【0012】
本明細書に記載の方法およびシステムは、インターネット・アクティビティの追跡を制限しつつも、共通の企業またはエンティティが所有するサービスおよびウェブサイトなどの一部のウェブサイトおよびサービスについてはあるレベルの追跡を行いたいというユーザの要望の両立を可能にする。本明細書に記載のシステムは、ウェブ・ドメイン・アドレスの所有権に基づいてウェブ・コンテナを起動し、各ドメイン・アドレスに関連するネットワーク・アクティビティを特定のウェブ・コンテナに隔離することによって、限定的で焦点を絞ったユーザ・データ追跡を実現する。ウェブ・コンテナ内のドメインの所有者に関連付けられていないドメインは、別のウェブ・コンテナに隔離される。
【0013】
図1は、一実施形態による、ネットワーク・システムを示している。ネットワーク・システム100は、インターネットなど、コンピューティング・エンティティと、ネットワーク・リソースとの間の任意のネットワーク・タイプを含むネットワーク120を含む。ネットワーク・システム100はまた、ユーザ102と、コンピューティング・デバイス105と、コンピューティング・デバイス105にインストールされたウェブ・コンテナ・システム110とを含む。いくつかの例では、ユーザ102は、コンピューティング・デバイス105と、コンピューティング・デバイス上のアプリケーションまたはウェブ・ブラウザあるいはその両方とを使用して、インターネット・ベースのリソース130にアクセスする。いくつかの例では、ユーザ102は、ウェブ・ブラウザ、コンピューティング・デバイス105にインストールされたアプリケーション、またはネットワーク120およびインターネット・ベースのリソース130にアクセスする他のサービス、あるいはその両方を使用して、コンピューティング・デバイス105とインタラクションを行う。インターネット・ベースのリソースには、ウェブサイト、ウェブ・ベースのサービス、ならびにインターネット(たとえば、ネットワーク120)を介してホストされ、またはアクセスされ、あるいはその両方が行われる他のプログラムおよびアプリケーションが含まれる。いくつかの例では、インターネット・ベースのリソースは、インターネット・ベースのリソースにアクセスするための場所および方法を識別する1つまたは複数のドメイン・アドレスに関連付けられている。
【0014】
本明細書に記載のように、ウェブ・コンテナ・システム110は、コンピューティング・デバイス105を介して、ユーザ102、またはインターネット・ベースのリソース130へのアクセスに関連する他のサービス、あるいはその両方から受け取ったドメイン・アドレスとインタラクションを行う。ドメイン・アドレスは、ユーザ102、またはコンピューティング・デバイス105上で実行される他のサービス、あるいはその両方によって要求されたインターネット・ベースのリソースの場所のユニフォーム・リソース・ロケータ(URL)または他の識別情報あるいはその両方を含み得る。
【0015】
ウェブ・コンテナ・システム110は、ドメイン・アドレスまたはインターネット・ベースのリソースあるいはその両方のためのウェブ・コンテナが起動済みであるかを判定する。ウェブ・コンテナが識別された例では、ネットワーク・アクティビティ/トラフィックは、識別されたコンテナに隔離される。ドメイン・アドレスがコンテナに関連付けられていない例では、ウェブ・コンテナ・システム110は、ドメイン・アドレス用のウェブ・コンテナを起動するための処理を開始する。たとえば、ウェブ・コンテナ・システム110は、
図2A~
図5に関連してさらに詳細に説明するように、所有者データベース150および逆引き所有者データベース155に照会して、ユーザ102から受け取ったドメイン・アドレスの所有者および関連付けられたドメイン・アドレスを特定する。
【0016】
図2Aは、一実施形態による、ウェブ・コンテナ・システムを示している。
図1に関連して説明したように、ウェブ・コンテナ・システム110は、パーソナル・コンピュータ、モバイル・デバイス、またはインターネット/ネットワーク・アクセスに使用される他のコンピューティング・デバイス、あるいはそれらの組合せにインストールされ得る。いくつかの例では、ウェブ・コンテナ・システム110は、本明細書に記載の方法を実行するためにコンピューティング・デバイス105にインストールされた、独立したアプリケーションまたはプログラムあるいはその両方を含む。いくつかの例では、ウェブ・コンテナ・システム110は、ウェブ・ブラウザ・システム、またはウェブ・ブラウザもしくは他のアプリケーションの拡張機能、あるいはその両方として機能する。
図2Aのウェブ・コンテナ・システム110は、一般的なコンピューティング・システムとして示している。ウェブ・コンテナ・システム110は、処理リソース250、メモリ255、およびストレージ260を含み、これらについては
図6に関連してさらに詳細に説明する。ウェブ・コンテナ・システム110はまた、メモリ255内にウェブ・コンテナ・モジュール201を含み、ここで、ウェブ・コンテナ・モジュール201は、本明細書に記載の機能および方法を実行するための命令を含む。たとえば、ウェブ・コンテナ・モジュール201は、処理リソース250、メモリ255、およびストレージ260とインタラクションを行って、ウェブ・コンテナ環境(ウェブ・コンテナ)、たとえば、ウェブ・コンテナ205、210、215、および220を起動する。
【0017】
いくつかの例では、ウェブ・コンテナは、それぞれのウェブ・コンテナが使用するための処理リソース、メモリ、およびストレージを割り当てることによって起動される。処理リソースの割り当ては、ウェブ・コンテナごとのコンピューティング・リソースの仮想的な割り当てまたは物理的な割り当てあるいはその両方を含み得る。たとえば、
図2Aに示すように、処理リソース250、メモリ255、およびストレージ260の一部が、各コンテナに割り当てられる/予約される。いくつかの例では、ウェブ・コンテナ・モジュール201は、起動済みのウェブ・コンテナの識別情報を、ウェブ・コンテナ・リポジトリ202内のウェブ・コンテナにおいて閲覧/隔離される任意のドメイン・アドレスへの関連付けと共に記憶する。
【0018】
図2Bは、一実施形態による、ウェブ・コンテナ・リポジトリを示している。ウェブ・コンテナ・リポジトリ202によって、ウェブ・コンテナ・モジュール201は、所与のドメイン・アドレスを受け取ったときに、そのドメイン・アドレス用のウェブ・コンテナが既に起動済み/利用可能であるかを迅速に判定することが可能になる。いくつかの例では、ウェブ・コンテナの識別情報が、共通のエンティティに関連付けられたドメイン・アドレスと共に記憶される。たとえば、コンテナ205は、コンテナ識別情報206および関連付けられたドメイン・アドレス207を含む。同様に、ウェブ・コンテナ210は、コンテナ識別情報211および関連付けられたドメイン・アドレス212を含み、コンテナ215は、コンテナ識別情報216および関連付けられたドメイン・アドレス217を含み、ウェブ・コンテナ220は、コンテナ識別情報221および関連付けられたドメイン・アドレス222を含む。本明細書に記載のように、関連付けられたドメイン・アドレスは、所有者データベース150および逆引き所有者データベース155に照会することによって特定される特定の所有者に関連付けられた全てのドメイン・アドレスを含む。
【0019】
たとえば、ソーシャル・メディア企業Aは、いくつかの従属するソーシャル・メディア所有物(properties)を所有し得る。たとえば、企業Aは、第1のドメイン、第2のドメイン、および第4のドメインを所有し得、それぞれ、異なるソーシャル・メディア・サービスに関するものである。ウェブ・コンテナ・システム110が、インターネット・ベースのリソースのドメイン・アドレスを受け取ると、ウェブ・コンテナ・モジュール201は、ウェブ・コンテナ・リポジトリ202から、ドメイン・アドレス用のウェブ・コンテナが起動済みであるかを、ウェブ・コンテナ・リポジトリ202内の関連付けられたドメイン・アドレス(たとえば、関連付けられたドメイン・アドレス207、212、217、および222)をチェックすることによって判定する。
【0020】
ソーシャル・メディア企業Aの例では、ウェブ・コンテナ210は、企業Aのドメイン・アドレスを含むように決定され、関係するソーシャル・メディア・サービスに関する全てのアクティビティ追跡および情報記憶に使用される。たとえば、
図2Aに示すように、ローカル・ストレージ、クッキー、キャンバス・ハッシュ(canvas hash)、拡張機能、ブラウザ履歴、パスワード管理、およびユーザ・プロファイルが、ストレージ260上のウェブ・コンテナ210に割り当てられたストレージに記憶され得る。このため、ユーザ102が第1のドメインから第2のドメインを経て第4のドメインに移動すると、ユーザのログイン情報、識別情報、および他の追跡情報が、ウェブ・コンテナ210に関連付けられた各サービスに提供される。いくつかの例では、ユーザ102は、
図3に関連して説明するように、隔離されたアクティビティおよびウェブ・コンテナの使用の視覚的表示が提供される。
【0021】
図3は、一実施形態による、ウェブ・コンテナ・システムのユーザ・インターフェースを示している。たとえば、ウェブ・コンテナ・システム110および関連付けられたブラウザ・ウィンドウ300は、インターネット・ベースのリソース130からの情報およびコンテンツを様々なブラウザ・タブ310~316に表示する。
図3に示すように、第3のドメインに関連するインターネット・ベースのリソースからのウェブページ・コンテンツ350がブラウザ・ウィンドウ300に表示される。いくつかの例では、ウェブ・コンテナ・モジュール201は、ウェブ・コンテナ・リポジトリ202から、第3のドメインがコンテナ205に関連付けられていると判定し、ネットワーク・アクティビティ(第3のドメインのインターネット・ベースのリソースとのインタラクションを含む)をコンテナ205に隔離する。いくつかの例では、ブラウザ・ウィンドウ300は、様々なウェブ・コンテナのそれぞれの視覚的識別を含むことによって、どのアクティビティが追跡されているかの視覚的表示をユーザに提供する。たとえば、図示のように、様々なドメイン・アドレスのそれぞれについてのブラウザ・ウィンドウ内のブラウザ・タブは、どのコンテナでブラウザ・タブが動作しているかを示すための、色、サイズ、形状、陰影などの視覚的表示を含む。ユーザ102が様々なウェブ・コンテナに関連付けられたさらなるドメイン・アドレスに移動すると、ブラウザ・ウィンドウ300および関連する視覚的表示は、現在のウェブ・コンテナを反映するように更新される。
【0022】
図4は、本明細書に記載の実施形態による、ウェブ・コンテナ・システムのための方法を示している。方法400はブロック402から始まり、ここでウェブ・コンテナ・システム110は、インターネット・ベースのリソースのドメイン・アドレスを受け取る。いくつかの例では、ユーザ102は、コンピューティング・デバイス105上のアプリケーションまたは他のサービスとインタラクションを行って、ドメイン・アドレスを使用してインターネット・ベースのリソース130にインターネット・ベースのリソースを要求する。ユーザ102はまた、コンピューティング・デバイス105およびウェブ・コンテナ・システム110に関連付けられたインターフェースに、第1のドメイン・アドレス、たとえば、「first domain」などを入力し得る。たとえば、ユーザ102は、第1のドメイン・アドレスをブラウザ・ウィンドウ300に入力し、ブラウザは、ウェブ・コンテナ・システム110にドメイン・アドレスを提供する。これらの例では、ウェブ・コンテナ・システム110が、インターネット・ベースのリソース130内の第1のインターネット・ベースのリソース(たとえば、第1のドメイン・アドレスでホストされるウェブサイト)の第1のドメイン・アドレスを受け取った後、コンピューティング・デバイスが、そのインターネット・ベースのリソースのためにネットワーク120にアクセスする。本明細書に記載のように、ウェブ・コンテナ・システム110はまた、インターネット・ベースのリソース130内の第2のインターネット・ベースのリソース(たとえば、第2のドメイン・アドレスでホストされる第2のウェブサイト)の第2のドメイン・アドレスを少なくとも含む複数のドメイン・アドレスを受け取り得る。
【0023】
ブロック404において、ウェブ・コンテナ・システム110は、ドメイン・アドレスがウェブ・コンテナ環境に関連付けられているか否かを判定する。一般に、ドメイン・アドレスが起動済みのウェブ・コンテナに関連付けられている場合、ドメイン・アドレスに関連付けられたネットワーク・アクティビティに関して、そのウェブ・コンテナが使用される。ドメイン・アドレス用のウェブ・コンテナが見つからない場合、ウェブ・コンテナ・システム110は起動処理に進む。
【0024】
たとえば、ウェブ・コンテナ・システム110は、ウェブ・コンテナ・リポジトリ202にアクセスして、ウェブ・コンテナ・システム110で受け取られたドメイン・アドレスが、既に起動済みのウェブ・コンテナに関連付けられているかを判定し、これについて、ドメイン・アドレスの関連付けを特定するための方法500を示す
図5に関連して説明する。方法500はブロック502から始まり、ここでウェブ・コンテナ・システム110は、ドメイン・アドレスを、起動済みのウェブ・コンテナに関連付けられたドメイン・アドレスのリストと比較する。たとえば、コンテナ210がウェブ・コンテナ・システム110によって起動されていない第1の時点で、ウェブ・コンテナ・システム110は、コンテナ識別情報206および関連付けられたドメイン・アドレス207を含む、ウェブ・コンテナ・リポジトリ202内の起動済みのウェブ・コンテナ205の記憶されたコンポーネントと、第1のドメインとを比較する。ブロック504において、ウェブ・コンテナ・システム110は、この比較から、ドメイン・アドレスが、関連付けられたドメイン・アドレスのセットにリストされているか否かを判定する。上記の例では、第1のドメインは、関連付けられたドメイン・アドレス207に記憶されていないので、方法500はブロック506に進む。
【0025】
受け取ったドメイン・アドレスがウェブ・コンテナに関連付けられている例では、方法500はブロック512に進み、ここでウェブ・コンテナ・システムは、識別されたウェブ・コンテナを使用する(たとえば、本明細書に記載の
図4のブロック418~426に関連して論じている)。たとえば、ウェブ・コンテナ・システム110が、第3のドメイン・アドレスを受け取った場合、比較によって、第3のドメインが、ウェブ・コンテナ205の関連付けられたドメイン・アドレス207に記憶されていることが示され、方法500はブロック512に進む。同様に、一例では、コンテナ210が起動された後の時点で、第2のドメインを関連付けられたドメイン・アドレス212と比較することによって、第2のドメインがウェブ・コンテナ210に関連付けられていることが示され、方法500はブロック512に進んで、第2のドメインに関連するネットワーク・アクティビティ用にウェブ・コンテナ210を利用する。
【0026】
上記で論じたように、ドメイン・アドレスがチェックされたコンテナに関連付けられていない場合、方法500はブロック506に進む。ブロック506において、ウェブ・コンテナ・システム110は、ウェブ・コンテナ・リポジトリ202内の起動済みのウェブ・コンテナが全てチェックされたかを判定する。たとえば、第1のドメイン・アドレスが、関連付けられたドメイン・アドレス207に記憶されていない場合、方法500はブロック508に進んで、ウェブ・コンテナ・リポジトリ202内の起動済みのウェブ・コンテナが全てチェックされるまで、ブロック502に関連して説明したのと同様に、ドメイン・アドレスと、次のコンテナ(コンテナ215、続いてウェブ・コンテナ220)の関連付けられたドメイン・アドレスとを比較する。
【0027】
ウェブ・コンテナ・リポジトリ202内の全てのウェブ・コンテナがチェックされ、関連付けられたウェブ・コンテナが見つからない例では、方法500はブロック510に進み、ここでウェブ・コンテナ・システム110は、
図4のブロック406~416に関連して説明するようにコンテナ起動処理を開始する。
【0028】
図4に戻って、ブロック406において、ウェブ・コンテナ・システム110は、ドメイン・アドレスがウェブ・コンテナ環境に関連付けられていない場合、所有者データベースに照会する。たとえば、第1のドメインについて、ウェブ・コンテナ・システム110は、所有者データベース150に照会して、第1のドメイン・アドレスの第1の所有者を特定する。ブロック408において、ウェブ・コンテナ・システム110は、逆引き所有者データベースに照会する。たとえば、システムは、逆引き所有者データベースに照会して、第1の所有者に関連付けられた1つまたは複数のドメイン・アドレスを含む、関連付けられたドメイン・アドレスのセットを特定する。
図2Bに示すように、逆引き所有者データベース155は、第1の所有者に関して第2のドメインおよび第4のドメインを返す。いくつかの例では、所有者データベース150および逆引き所有者データベース155はそれぞれ、WHOISデータベースおよび逆引きWHOISデータベースを含む。WHOISプロトコルおよびサービスは、インターネット・エンジニアリング・タスク・フォース(IETF)のRFC(リクエスト・フォー・コメンツ)3912に規定されており、所有者データベースを実装するためのインフラストラクチャおよびプロトコルを提供する。同様に、登録データ・アクセス・プロトコル(RDAP:Registration Data Access Protocol)を拡張するためのIETFで進行中の開発は、逆引き所有者データベースにおける逆引き検索機能を支援する。
【0029】
ドメイン・アドレスの所有者に関連して説明しているが、所有者データベース150および逆引き所有者データベース155から他の関連付けも特定され、または受信され、あるいはその両方が行われ得る(たとえば、逆引き所有者データベース155は、識別された所有者によって所有されていないが依然として関係しているドメインを含む、関連付けられたドメイン・アドレスを返し、関係するドメインは同じウェブ・コンテナに含められる)。いくつかの例では、ウェブ・コンテナ・システム110は、ウェブ・コンテナがドメインの複数の所有者を含むなどの、ウェブ・コンテナ間の追加の関係を設定する。
【0030】
ブロック410において、ウェブ・コンテナ・システム110は、ウェブ・コンテナを起動する。たとえば、ウェブ・コンテナ・システム110は、第1のドメイン・アドレスおよび関連付けられたドメイン・アドレスのセット(たとえば、第2のドメインおよび第4のドメイン)用の第1のウェブ・コンテナ(たとえば、ウェブ・コンテナ210)を起動する。いくつかの例では、第1のウェブ・コンテナは、ウェブ・コンテナ・モジュール201によって標準のウェブ・コンテナ・プロトコルを使用して起動される。いくつかの例では、ウェブ・コンテナ・システム110は、第1のウェブ・コンテナにコンピューティング・リソースを割り当てる(たとえば、第1のコンテナ、ウェブ・コンテナ210にリソースを割り当てる)ことによって、第1のウェブ・コンテナを起動する。たとえば、ブロック412において、
図2Aに関連して示したように、ウェブ・コンテナ・システム110は、ウェブ・コンテナ210が使用するために、ストレージ260内のコンピュータ・ストレージおよびメモリ255を割り当てる。同様に、ブロック414において、ウェブ・コンテナ・システム110は、ウェブ・コンテナ210が使用するために、処理リソース250内のコンピュータ処理リソースを割り当てる。
【0031】
ブロック416において、ウェブ・コンテナ・システム110は、起動済みのウェブ・コンテナの識別情報を記憶する。たとえば、ウェブ・コンテナ・システム110は、第1のウェブ・コンテナの識別情報(たとえば、ウェブ・コンテナ210のコンテナ識別情報211)を、第1のドメイン・アドレスおよび関連付けられたドメイン・アドレスのセット(たとえば、関連付けられたドメイン・アドレス212)への関連付けと共に、ウェブ・コンテナ・リポジトリに記憶する。
【0032】
ブロック418において、ウェブ・コンテナ・システム110は、ウェブ・コンテナを使用してネットワーク・アクティビティを隔離する。たとえば、ウェブ・コンテナ・システム110は、ウェブ・コンテナ210を使用して、第1のドメインに関連する第1のインターネット・ベースのリソースとのネットワーク・アクティビティを隔離する。他の例では、ユーザ102が他のドメイン・アドレスに移動して他のインターネット・ベースのリソースにアクセスすると、ウェブ・コンテナ・システム110は、該当するコンテナに基づいて、他のインターネット・ベースのリソースに対するネットワーク・アクティビティを隔離する。たとえば、ユーザが第6のドメイン・アドレスを要求した場合、ウェブ・コンテナ・システムは、第6のドメイン・アドレスに関連するネットワーク・アクティビティ用のウェブ・コンテナ215を使用する。
【0033】
ブロック420において、ウェブ・コンテナ・システム110は、割り当てられたリソースをネットワーク・アクティビティに使用する。たとえば、各ウェブ・コンテナについて、ウェブ・コンテナ・システム110は、ウェブ・コンテナ210に割り当てられた処理リソースおよびストレージを、関連付けられたドメイン・アドレス212にリストされた第1、第2、および第4のドメインに関連するネットワーク・アクティビティに使用する。
【0034】
ブロック422において、ウェブ・コンテナ・システム110は、第1のインターネット・ベースのリソースが割り当てられていないリソースにアクセスするのを阻止する。たとえば、ウェブ・コンテナ・システム110は、インターネット・ベースのリソースが割り当てられていないリソースにアクセスする、または使用する、あるいはその両方を行うのを阻止する。ウェブ・コンテナを関連付けられたセット内のドメインに関するネットワーク・アクティビティに使用し、割り当てられていないコンピューティング・リソースへのアクセスを阻止することによって、関連付けられたドメインにわたる追跡を実現しつつ、異なるサービスおよびウェブサイトにわたるユーザのプライバシーも実現する。
【0035】
ブロック424において、ウェブ・コンテナ・システム110は、ネットワーク・アクティビティに関連するデータをウェブ・コンテナに記憶する。たとえば、ウェブ・コンテナ・システム110は、複数のウェブ・ベースの追跡情報、1つまたは複数のブラウザ拡張機能、ネットワーク・アクセス履歴、および1つまたは複数のインターネット・ベースのリソースに関するユーザ・プロファイル情報などの情報を記憶する。たとえば、ユーザが、関連付けられたドメイン・アドレス212に関連するインターネット・リソースとインタラクションを行うとき、ウェブ・コンテナは、ローカル・ストレージ、クッキー、キャンバス・ハッシュ、拡張機能、ブラウザ履歴、パスワード、およびユーザ・プロファイルをウェブ・コンテナ210のストレージに記憶する。これにより、ユーザ102および他のサービスは、関連付けられたドメインの間でシームレスに移動しつつ、この情報が、関連付けられていないドメインおよびインターネット・リソースによって使用されるのを阻止することが可能になる。
【0036】
ブロック426において、ウェブ・コンテナ・システム110は、記憶されたデータを1つまたは複数のネットワーク・アクティビティ・アクションに利用する。たとえば、各ウェブ・コンテナについて、ウェブ・コンテナ・システム110は、ネットワーク・アクティビティ中に、記憶されたユーザ・プロファイル情報、追跡情報などにアクセスして提供しつつ、これらの情報が、コンテナ外のインターネット・ベースのリソースによってアクセスされるのを阻止する。
【0037】
図6は、一実施形態による、ウェブ・コンテナ・システムのブロック図を示している。構成600は、ウェブ・コンテナ・システム110として具現化され、本明細書に記載の方法を実行するように構成されるコンピュータを含むこともできる。ウェブ・コンテナ・システム110は、汎用コンピューティング・デバイスの形態で示している。ウェブ・コンテナ・システム110のコンポーネントは、限定はしないが、1つまたは複数のプロセッサ、処理ユニット、または処理リソース250、システム・メモリ、メモリ255、ストレージ・システム、ストレージ260、ネットワーク・インターフェース630、およびバス650を含み得、バス650は、システム・メモリ、メモリ255、およびストレージ・システム、ストレージ260を含む様々なシステム・コンポーネントを、ネットワーク・インターフェース630、様々な入力/出力コンポーネント、およびネットワーク120と共に、処理リソース250に結合する。他の実施形態では、構成600は分散され、有線または無線ネットワークを介して接続される複数の個別のコンピューティング・デバイスを含む。
【0038】
バス650は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、および様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造のうちのいずれかの1つまたは複数を表す。限定ではなく例として、そのようなアーキテクチャには、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス規格協会(VESA)ローカル・バス、および周辺機器相互接続(PCI)バスが含まれる。
【0039】
ウェブ・コンテナ・システム110は、典型的には、多様なコンピュータ・システム可読媒体を含む。そのような媒体は、ウェブ・コンテナ・システム110によってアクセス可能な任意の利用可能な媒体であり得、揮発性および不揮発性の媒体、取り外し可能および取り外し不可能な媒体の両方を含む。
【0040】
システム・メモリ310は、ランダム・アクセス・メモリ(RAM)またはキャッシュ・メモリあるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。ウェブ・コンテナ・システム110は、他の取り外し可能/取り外し不可能な揮発性/不揮発性のコンピュータ・システム記憶媒体をさらに含むこともできる。いくつかの例では、ストレージ260は、メモリ255の一部として含まれ、典型的には、ネットワーク・コンピューティング・デバイス用の不揮発性メモリを提供し得、たとえば、フラッシュ・メモリ、ハード・ディスク・ドライブ、ソリッド・ステート・ドライブ、光学ストレージ・デバイス、または磁気ストレージ・デバイス、あるいはそれらの組合せなどの1つまたは複数の異なる記憶要素を含むこともできる。たとえば、ストレージ・システム、ストレージ260は、取り外し不可能な不揮発性の磁気媒体(図示しない、典型的には「ハード・ドライブ」と呼ばれるもの)に読み書きするために設けることができる。図示していないが、取り外し可能な不揮発性の磁気ディスク(たとえば、「フロッピー(R)・ディスク」)に読み書きするための磁気ディスク・ドライブと、CD-ROM、DVD-ROM、または他の光学媒体などの取り外し可能な不揮発性の光学ディスクに読み書きするための光学ディスク・ドライブと、を設けることができる。そのような例では、それぞれを、1つまたは複数のデータ・メディア・インターフェースによってバス650に接続することができる。ストレージ260は、ウェブ・コンテナ・リポジトリおよびコンテナ・データ322(様々なウェブ・コンテナ205、210、215、および220のデータを含む)を記憶するための媒体を含むこともできる。
【0041】
メモリ255は、本明細書に記載のウェブ・コンテナ・システムに関係する様々な機能を実行するための複数のプログラム・モジュール615を含むこともできる。プログラム・モジュール615は、一般に、処理リソース250のうちの1つまたは複数によって実行可能なプログラム・コードを含む。図示のように、プログラム・モジュール615は、
図2Aに関連して論じた様々なモジュールを含む。プログラム・モジュール615はさらに、互いとインタラクションを行い、また、ストレージ・システム、ストレージ260とインタラクションを行って、本明細書に記載の特定の機能を実行し得る。
【0042】
本発明の様々な実施形態の説明は、例示の目的で提示しているが、網羅的であることも、開示した実施形態に限定されることも意図したものではない。記載した実施形態の範囲および思想から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用する用語は、実施形態の原理、市場に見られる技術に対する実際の適用または技術的改善を最もよく説明するために、または当業者が本明細書に開示した実施形態を理解できるようにするために選択した。
【0043】
以下では、本開示で提示する実施形態を参照する。しかしながら、本開示の範囲は、記載した特定の実施形態に限定されない。そうではなく、企図した実施形態を実装および実践するために、異なる実施形態に関係するものであるか否かに関係なく、以下の特徴および要素の任意の組合せが考えられる。さらに、本明細書に開示した実施形態は、他の可能な解決策または従来技術に勝る利点を実現し得るが、所与の実施形態によって特定の利点が実現されるか否かは、本開示の範囲を限定するものではない。したがって、以下の態様、特徴、実施形態、および利点は、例示的なものにすぎず、請求項に明示的に記載している場合を除き、添付の特許請求の範囲の要素または限定とは見なされない。同様に、「本発明」への言及は、本明細書に開示した発明の主題の一般化として解釈されるべきではなく、請求項に明示的に記載している場合を除き、添付の特許請求の範囲の要素または限定と見なされるべきではない。
【0044】
本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態をとり得、これらは全て一般に本明細書では、「回路」、「モジュール」または「システム」と呼び得る。
【0045】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組合せであり得る。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含むこともできる。
【0046】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持および記憶可能な有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、限定はしないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリー・スティック(R)、フロッピー(R)・ディスク、命令が記録されたパンチ・カードまたは溝の隆起構造などの機械的にコード化されたデバイス、およびこれらの任意の適切な組合せが含まれる。コンピュータ可読記憶媒体は、本明細書で使用する場合、たとえば、電波または他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を伝搬する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、または有線で伝送される電気信号などの一過性の信号自体であると解釈されるべきではない。
【0047】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、たとえば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはそれらの組合せなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを含み得る。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶する。
【0048】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモート・コンピュータ上で、あるいは完全にリモート・コンピュータまたはサーバ上で実行され得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され、または(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータへの接続がなされ得る。一部の実施形態では、たとえば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してコンピュータ可読プログラム命令を実行することによって、電子回路を個人向けにし得る。
【0049】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書で説明している。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せが、コンピュータ可読プログラム命令によって実装できることは理解されよう。
【0050】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実装するための手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。また、これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む製造品を構成するように、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはそれらの組合せに特定の方法で機能するように指示することが可能なコンピュータ可読記憶媒体に記憶されてもよい。
【0051】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/動作を実装するように、コンピュータ実装処理を作り出すべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0052】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理的機能を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の一部を表し得る。一部の代替的実装形態では、ブロックに記載した機能は、図示した順序以外で行われ得る。たとえば、関与する機能に応じて、連続して示した2つのブロックは、実際には実質的に同時に実行され、またはそれらのブロックは、場合により逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を実行するか、または専用ハードウェアおよびコンピュータ命令の組合せを実行する専用のハードウェア・ベースのシステムによって実装できることにも気付くであろう。
【0053】
本発明の実施形態は、クラウド・コンピューティング・インフラストラクチャを介してエンド・ユーザに提供され得る。クラウド・コンピューティングとは、一般に、ネットワークを介したサービスとしてのスケーラブルなコンピューティング・リソースのプロビジョニングを指す。より正式には、クラウド・コンピューティングは、コンピューティング・リソースと、その基盤となる技術アーキテクチャ(たとえば、サーバ、ストレージ、ネットワーク)との間の抽象化を実現して、最小限の管理労力またはサービス・プロバイダとのやり取りによって迅速にプロビジョニングおよび解放することができる設定可能なコンピューティング・リソースの共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするコンピューティング機能として定義され得る。したがって、クラウド・コンピューティングにより、コンピューティング・リソースを提供するために使用される基盤となる物理システム(またはそれらのシステムの場所)に関係なく、ユーザは、「クラウド」内の仮想コンピューティング・リソース(たとえば、ストレージ、データ、アプリケーション、さらには完全な仮想化コンピューティング・システム)にアクセスすることが可能になる。
【0054】
典型的には、クラウド・コンピューティング・リソースは、従量課金方式でユーザに提供され、ユーザは、実際に使用したコンピューティング・リソース(たとえば、ユーザが消費したストレージ・スペースの量、またはユーザがインスタンス化した仮想化システムの数)の分だけ課金される。ユーザは、いつでも、インターネット上のどこからでも、クラウドに存在する任意のリソースにアクセスすることができる。本発明の状況では、ユーザは、クラウドで利用可能なアプリケーション(たとえば、ウェブ・コンテナ・システム110)または関係するデータにアクセスし得る。たとえば、ウェブ・コンテナ・モジュール201ならびにウェブ・コンテナ205、210、215、および220は、クラウド内のコンピューティング・システム上で実行することができる。そのような場合、ウェブ・コンテナ・モジュール201ならびにウェブ・コンテナ205、210、215、および220は、ウェブ・コンテナを起動し、ウェブ・コンテナ・リポジトリを含むウェブ・コンテナ情報をクラウド内の記憶場所に記憶することができる。そうすることにより、ユーザは、クラウド(インターネットなど)に接続されたネットワークにつながれた任意のコンピューティング・システムからこの情報にアクセスすることが可能になる。
【0055】
上記は本発明の実施形態を対象とするものであるが、本発明の他のさらなる実施形態は、その基本的な範囲から逸脱することなく考案され、その範囲は以下の特許請求の範囲によって決まる。