IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

<>
  • 特表-パーベイシブ・リソース識別 図1
  • 特表-パーベイシブ・リソース識別 図2
  • 特表-パーベイシブ・リソース識別 図3
  • 特表-パーベイシブ・リソース識別 図4
  • 特表-パーベイシブ・リソース識別 図5
  • 特表-パーベイシブ・リソース識別 図6
  • 特表-パーベイシブ・リソース識別 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-20
(54)【発明の名称】パーベイシブ・リソース識別
(51)【国際特許分類】
   G06F 21/33 20130101AFI20231213BHJP
   G06F 21/31 20130101ALI20231213BHJP
【FI】
G06F21/33
G06F21/31
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023535414
(86)(22)【出願日】2021-12-09
(85)【翻訳文提出日】2023-07-25
(86)【国際出願番号】 US2021062542
(87)【国際公開番号】W WO2022125738
(87)【国際公開日】2022-06-16
(31)【優先権主張番号】17/118,512
(32)【優先日】2020-12-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】トゥルシバグウェール、アトゥル
(72)【発明者】
【氏名】パースワール、サチン スバシュラオ
(72)【発明者】
【氏名】シングラ、アミット
(57)【要約】
パーベイシブ・リソース識別のための方法(600)は、第1のアプリケーション・サービス(130)から認証要求(132)を受信することを含む。認証要求は、ユーザデバイス(10)のユーザ(12)の認証を要求する。方法は、ユーザのユーザデバイスに関連付けられたデバイス情報(14)を取得することと、デバイス情報に基づいて、ユーザデバイスに関する一意の不透明識別子(162)を生成することとを含む。方法は、ユーザデバイスから認証資格情報(20)を取得することを含む。認証資格情報は、ユーザのアイデンティティを検証する。ユーザデバイスから認証資格情報を受信することに応じて、方法は、認証トークンを生成すること(172)と、一意の不透明識別子を認証トークンに含めるよう、一意の不透明識別子を符号化することとを含む。方法は、認証トークンを第1のアプリケーションサービスに送信することを含む。認証トークンは、第1のアプリケーションサービスが、一意の不透明識別子に基づいてユーザデバイスとの対話を調整することを可能にする。
【特許請求の範囲】
【請求項1】
データ処理ハードウェア(144)において、第1のアプリケーションサービス(130、130a)から認証要求(132a)を受信することであって、前記認証要求(132a)がユーザデバイス(10)のユーザ(12)の認証を要求することと、
前記データ処理ハードウェア(144)において、前記ユーザ(12)の前記ユーザデバイス(10)に関連付けられたデバイス情報(14)を取得することと、
前記データ処理ハードウェア(144)が、前記デバイス情報(14)に基づいて、前記ユーザデバイス(10)に関する一意の不透明識別子(162)を生成することと、
前記データ処理ハードウェア(144)において、前記ユーザデバイス(10)から認証資格情報(20)を取得することであって、前記認証資格情報(20)が前記ユーザ(12)のアイデンティティを検証することと、
前記ユーザデバイス(10)から前記認証資格情報(20)を受信することに応じて、
前記データ処理ハードウェア(144)が、認証トークン(172、172a)を生成することと、
前記データ処理ハードウェア(144)が、前記ユーザデバイス(10)に関する前記一意の不透明識別子(162)を前記認証トークン(172a)に含めるよう、前記一意の不透明識別子(162)を符号化することと、
前記データ処理ハードウェア(144)が、前記認証トークン(172、172a)を前記第1のアプリケーションサービス(130a)に送信することであって、前記認証トークン(172a)は、前記第1のアプリケーションサービス(130a)によって受信されたときに、前記第1のアプリケーションサービス(130a)が前記一意の不透明識別子(162)に基づいて前記ユーザデバイス(10)との対話を調整することを可能にすることと、
を含む、方法(600)。
【請求項2】
前記データ処理ハードウェア(144)において、第2のアプリケーションサービス(130b)から第2の認証要求(132b)を受信することであって、前記第2の認証要求(132b)が前記ユーザデバイス(10)の前記ユーザ(12)の認証を要求することと、
前記データ処理ハードウェア(144)において、前記ユーザ(12)の前記ユーザデバイス(10)に関連付けられた前記デバイス情報(14)を取得することと、
前記データ処理ハードウェア(144)が、前記デバイス情報(14)が前記ユーザデバイス(10)の前記一意の不透明識別子(162)に関連付けられていると判定することと、
前記データ処理ハードウェア(144)が、第2の認証トークン(172b)を生成することと、
前記データ処理ハードウェア(144)が、前記一意の不透明識別子(162)を前記第2の認証トークン(172b)に含めるよう、前記一意の不透明識別子(162)を符号化することと、
前記データ処理ハードウェア(144)が、前記第2の認証トークン(172b)を前記第2のアプリケーションサービス(130b)に送信することと、をさらに含む、
請求項1に記載の方法(600)。
【請求項3】
前記第1のアプリケーションサービス(130a)は、前記第2のアプリケーションサービス(130b)が前記第1のアプリケーションサービス(130a)が受信したのと同じ前記一意の不透明識別子(162)を受信したと判定し、
前記第1のアプリケーションサービス(130a)は、前記一意の不透明識別子(162)に基づいて、前記第1のアプリケーションサービス(130a)および前記第2のアプリケーションサービス(130b)が同じ前記ユーザデバイス(10)と対話していると判定する、
請求項2に記載の方法(600)。
【請求項4】
前記データ処理ハードウェア(144)が、前記デバイス情報(14)を要求する情報要求(310)を前記第1のアプリケーションサービス(130a)から受信することであって、前記情報要求(310)が前記一意の不透明識別子(162)を含むことと、
前記データ処理ハードウェア(144)が、前記一意の不透明識別子(162)に基づいて、前記ユーザ(12)の前記ユーザデバイス(10)に関連付けられた前記デバイス情報(14)の少なくとも一部を、前記第1のアプリケーションサービス(130a)に送信することと、をさらに含む、
請求項1から請求項3のいずれか一項に記載の方法(600)。
【請求項5】
前記第1のアプリケーションサービス(130a)から前記認証要求(132a)を受信した後、
前記データ処理ハードウェア(144)が、前記認証資格情報(20)と、前記ユーザデバイス(10)に関連付けられた前記デバイス情報(14)を前記第1のアプリケーションサービス(130a)と共有することについてのユーザ同意とを要求する資格情報要求(134)を前記ユーザデバイス(10)に送信することと、
前記データ処理ハードウェア(144)が、前記認証資格情報(20)と前記ユーザ同意とを含む前記資格情報要求(134)への応答を受信することと、をさらに含む、
請求項1から請求項4のいずれか一項に記載の方法(600)。
【請求項6】
前記デバイス情報(14)は、前記ユーザデバイス(10)のウェブクッキー、前記ユーザデバイス(10)のインターネットプロトコルアドレス、または前記ユーザデバイス(10)のオペレーティングシステムバージョンのうちの少なくとも1つを含む、
請求項1から請求項5のいずれか一項に記載の方法(600)。
【請求項7】
前記認証トークン(172a)は、フェデレーテッド・アイデンティティ・トークンを含む、
請求項1から請求項6のいずれか一項に記載の方法(600)。
【請求項8】
前記フェデレーテッド・アイデンティティ・トークンは、OAuthトークンまたはセキュリティ・アサーション・マークアップ言語(SAML)トークンのうちの1つを含む、
請求項7に記載の方法(600)。
【請求項9】
前記フェデレーテッド・アイデンティティ・トークンは、プロプライエタリまたは標準ベースのフェデレーテッド・アイデンティティ・システム・トークンを含む、
請求項7に記載の方法(600)。
【請求項10】
前記一意の不透明識別子(162)を前記認証トークン(172a)に含めるよう、前記一意の不透明識別子(162)を符号化することは、前記一意の不透明識別子(162)を前記認証トークン(172a)の属性として追加することを含む、
請求項1から請求項9のいずれか一項に記載の方法(600)。
【請求項11】
前記ユーザ(12)は、複数のユーザデバイスに関連付けられ、
前記複数のユーザデバイス(10)の各ユーザデバイス(10)は、異なる一意の不透明識別子(162)に関連付けられる、
請求項1から請求項10のいずれか一項に記載の方法(600)。
【請求項12】
データ処理ハードウェア(144)と、
前記データ処理ハードウェア(144)と通信するメモリハードウェア(146)と、を含むシステム(100)であって、前記メモリハードウェア(146)は命令を記憶しており、前記命令は、前記データ処理ハードウェア(144)上で実行されると、前記データ処理ハードウェア(144)に、
第1のアプリケーションサービス(130a)から認証要求(132a)を受信することであって、前記認証要求(132a)がユーザデバイス(10)のユーザ(12)の認証を要求することと、
前記ユーザ(12)の前記ユーザデバイス(10)に関連付けられたデバイス情報(14)を取得することと、
前記デバイス情報(14)に基づいて、前記ユーザデバイス(10)に関する一意の不透明識別子(162)を生成することと、
前記ユーザデバイス(10)から認証資格情報(20)を取得することであって、前記認証資格情報(20)が前記ユーザのアイデンティティを検証することと、
前記ユーザデバイス(10)から前記認証資格情報(20)を受信することに応じて、
認証トークン(172a)を生成することと、
前記ユーザデバイス(10)に関する前記一意の不透明識別子(162)を前記認証トークン(172a)に含めるよう、前記一意の不透明識別子(162)を符号化することと、
前記認証トークン(172a)を前記第1のアプリケーションサービス(130a)に送信することであって、前記認証トークン(172a)は、前記第1のアプリケーションサービス(130a)によって受信されたときに、前記第1のアプリケーションサービス(130a)が前記一意の不透明識別子(162)に基づいて前記ユーザデバイス(10)との対話を調整することを可能にすることと、を含む動作を実行させる、
システム(100)。
【請求項13】
前記動作は、
第2のアプリケーションサービス(130b)から第2の認証要求(132b)を受信することであって、前記第2の認証要求(132b)が前記ユーザデバイス(10)の前記ユーザ(12)の認証を要求することと、
前記ユーザ(12)の前記ユーザデバイス(10)に関連付けられた前記デバイス情報(14)を取得することと、
前記デバイス情報(14)が前記ユーザデバイス(10)の前記一意の不透明識別子(162)に関連付けられていると判定することと、
第2の認証トークン(172b)を生成することと、
前記一意の不透明識別子(162)を前記第2の認証トークン(172b)に含めるよう、前記一意の不透明識別子(162)を符号化することと、
前記第2の認証トークン(172b)を前記第2のアプリケーションサービス(130b)に送信することと、をさらに含む、
請求項12に記載のシステム(100)。
【請求項14】
前記第1のアプリケーションサービス(130a)は、前記第2のアプリケーションサービス(130b)が前記第1のアプリケーションサービス(130a)が受信したのと同じ前記一意の不透明識別子(162)を受信したと判定し、
前記第1のアプリケーションサービス(130a)は、前記一意の不透明識別子(162)に基づいて、前記第1のアプリケーションサービス(130a)および前記第2のアプリケーションサービス(130b)が同じ前記ユーザデバイス(12)と対話していると判定する、
請求項13に記載のシステム(100)。
【請求項15】
前記動作は、
前記デバイス情報(14)を要求する情報要求(310)を前記第1のアプリケーションサービス(130a)から受信することであって、前記情報要求(310)が前記一意の不透明識別子(162)を含むことと、
前記一意の不透明識別子(162)に基づいて、前記ユーザ(12)の前記ユーザデバイス(10)に関連付けられた前記デバイス情報(14)の少なくとも一部を、前記第1のアプリケーションサービス(130a)に送信することと、をさらに含む、
請求項12から請求項14のいずれか一項に記載のシステム(100)。
【請求項16】
前記動作は、
前記第1のアプリケーションサービス(130a)から前記認証要求(132a)を受信した後、
前記認証資格情報(20)と、前記ユーザデバイス(10)に関連付けられた前記デバイス情報(14)を前記第1のアプリケーションサービス(130a)と共有することについてのユーザ同意とを要求する資格情報要求(134)を前記ユーザデバイス(10)に送信することと、
前記認証資格情報(20)と前記ユーザ同意とを含む資格情報要求(134)への応答を受信することと、をさらに含む、
請求項12から請求項15のいずれか一項に記載のシステム(100)。
【請求項17】
前記デバイス情報(14)は、前記ユーザデバイス(10)のウェブクッキー、前記ユーザデバイス(10)のインターネットプロトコルアドレス、または前記ユーザデバイス(10)のオペレーティングシステムバージョンのうちの少なくとも1つを含む、
請求項12から請求項16のいずれか一項に記載のシステム(100)。
【請求項18】
前記認証トークン(172a)は、フェデレーテッド・アイデンティティ・トークンを含む、
請求項12から請求項17のいずれか一項に記載のシステム(100)。
【請求項19】
前記フェデレーテッド・アイデンティティ・トークンは、OAuthトークンまたはセキュリティ・アサーション・マークアップ言語(SAML)トークンのうちの1つを含む、
請求項18に記載のシステム(100)。
【請求項20】
前記フェデレーテッド・アイデンティティ・トークンは、プロプライエタリまたは標準ベースのフェデレーテッド・アイデンティティ・システム・トークンを含む、
請求項18に記載のシステム(100)。
【請求項21】
前記一意の不透明識別子(162)を前記認証トークン(172a)に含めるよう、前記一意の不透明識別子(162)を符号化することは、前記一意の不透明識別子(162)を前記認証トークン(172a)の属性として追加することを含む、
請求項12から請求項20のいずれか一項に記載のシステム(100)。
【請求項22】
前記ユーザ(12)は、複数のユーザデバイスに関連付けられ、
前記複数のユーザデバイス(10)の各ユーザデバイス(10)は、異なる一意の不透明識別子(162)に関連付けられる、
請求項12から請求項21のいずれか一項に記載のシステム(100)。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、パーベイシブ・リソース識別に関する。
【背景技術】
【0002】
REST(Representational State Transfer)アプリケーション・プログラミング・インターフェース(API)は、独立したシステムが共通の関心のあるリソースについて通信することを可能にするためにしばしば使用されるコンピューティング・インターフェースである。例えば、2つの独立したシステムは、ユーザセッションまたはユーザによって使用されているデバイス(例えば、モバイルユーザデバイス)について通信することが多い。これらのリソースは、通常は、APIによって識別され、当該リソース内にアプリケーションが存在することが必要とされる。API呼出し側が、そのような存在なしに共有リソースを取り扱う(address)ことを望む場合、API呼出し側は、APIサーバに記憶されているとともにユーザに関連付けられたユーザアカウントを識別するなど、代替手段を使用しなければならない。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示は、パーベイシブ・リソース識別に関する。
【課題を解決するための手段】
【0004】
本開示の一態様によれば、パーベイシブ・リソース識別のための方法が提供される。方法は、データ処理ハードウェアにおいて、第1のアプリケーションサービスから認証要求を受信することであって、認証要求がユーザデバイスのユーザの認証を要求することを含む。方法は、データ処理ハードウェアにおいて、ユーザのユーザデバイスに関連付けられたデバイス情報を取得することと、データ処理ハードウェアが、デバイス情報に基づいて、ユーザデバイスに関する一意の不透明識別子を生成することとをさらに含む。方法は、データ処理ハードウェアにおいて、ユーザデバイスから認証資格情報を取得することを含む。認証資格情報は、ユーザのアイデンティティを検証する。ユーザデバイスから認証資格情報を受信することに応じて、方法は、データ処理ハードウェアが、認証トークンを生成することと、データ処理ハードウェアが、ユーザデバイスの一意の不透明識別子を認証トークンに含めるよう、一意の不透明識別子を符号化することとを含む。方法は、データ処理ハードウェアが、認証トークンを第1のアプリケーションサービスに送信することをさらに含む。認証トークンは、第1のアプリケーションサービスによって受信されたとき、第1のアプリケーションサービスが、一意の不透明識別子に基づいてユーザデバイスとの対話を調整することを可能にする。
【0005】
本開示の実装形態は、以下の任意選択の特徴のうちの1つまたは複数を含み得る。一部の実装形態では、方法は、データ処理ハードウェアにおいて、第2のアプリケーションサービスから第2の認証要求を受信することをさらに含む。第2の認証要求は、ユーザデバイスのユーザの認証を要求する。この実装形態における方法はまた、データ処理ハードウェアにおいて、ユーザのユーザデバイスに関連付けられたデバイス情報を取得することと、データ処理ハードウェアが、デバイス情報がユーザデバイスの一意の不透明識別子に関連付けられていると判定することとを含む。この実装形態における方法はまたデータ処理ハードウェアが、第2の認証トークンを生成することと、データ処理ハードウェアが、一意の不透明識別子を第2の認証トークンに含めるよう、一意の不透明識別子を符号化することと、データ処理ハードウェアが、第2の認証トークンを第2のアプリケーションサービスに送信することと、を含む。一部の例では第1のアプリケーションサービスは、第2のアプリケーションサービスが第1のアプリケーションサービスが受信したのと同じ一意の不透明識別子を受信したと判定し、第1のアプリケーションサービスは、一意の不透明識別子に基づいて、第1のアプリケーションサービスおよび第2のアプリケーションサービスが同じユーザデバイスと対話していると判定する。
【0006】
任意選択で、方法は、データ処理ハードウェアが、デバイス情報を要求する第1のアプリケーションサービスからの情報要求を受信することをさらに含む。情報要求は、一意の不透明識別子を含む。データ処理ハードウェアが、一意の不透明識別子に基づいて、ユーザのユーザデバイスに関連付けられたデバイス情報の少なくとも一部を、第1のアプリケーションサービスに送信することを含む。一部の例では方法は、第1のアプリケーションサービスから認証要求を受信した後、データ処理ハードウェアが、認証資格情報と、ユーザデバイスに関連付けられたデバイス情報を第1のアプリケーションサービスと共有することについてのユーザ同意とを要求する資格情報要求をユーザデバイスに送信することと、データ処理ハードウェアが、認証資格情報とユーザ同意とを含む資格情報要求への応答を受信することと、をさらに含む。
【0007】
一部の実装形態では、デバイス情報は、ユーザデバイスのウェブクッキー、ユーザデバイスのインターネットプロトコルアドレス、またはユーザデバイスのオペレーティングシステムバージョンのうちの少なくとも1つを含む。認証トークンは、フェデレーテッド・アイデンティティ・トークンを含んでいてもよい。例えば、フェデレーテッド・アイデンティティ・トークンは、OAuthトークンまたはセキュリティ・アサーション・マークアップ言語(SAML)トークンのうちの1つを含む。任意選択で、フェデレーテッド・アイデンティティ・トークンは、プロプライエタリまたは標準ベースのフェデレーテッド・アイデンティティ・システム・トークンを含む。一部の例では一意の不透明識別子を認証トークンに含めるよう、一意の不透明識別子を符号化することは、一意の不透明識別子を認証トークンの属性として追加することを含む。任意選択で、ユーザは、複数のユーザデバイスに関連付けられ、複数のユーザデバイスの各ユーザデバイスは、異なる一意の不透明識別子に関連付けられる。
【0008】
本開示の別態様によれば、パーベイシブ・リソース識別のためのシステムが提供される。このシステムは、データ処理ハードウェアと、データ処理ハードウェアと通信するメモリハードウェアとを含む。メモリハードウェアは、命令を記憶し、該命令は、データ処理ハードウェア上で実行されると、データ処理ハードウェアに動作を実行させる。動作は、第1のアプリケーションサービスから認証要求を受信することを含む。認証要求は、ユーザデバイスのユーザの認証を要求する。動作は、ユーザのユーザデバイスに関連付けられたデバイス情報を取得することと、デバイス情報に基づいて、ユーザデバイスに関する一意の不透明識別子を生成することとをさらに含む。動作は、ユーザデバイスから認証資格情報を取得することを含む。認証資格情報は、ユーザのアイデンティティを検証する。ユーザデバイスから認証資格情報を受信することに応じて、動作は、認証トークンを生成することと、一意の不透明識別子を認証トークンに含めるよう、一意の不透明識別子を符号化することとを含む。動作は、認証トークンを第1のアプリケーションサービスに送信することをさらに含む。認証トークンは、第1のアプリケーションサービスによって受信されたとき、第1のアプリケーションサービスが、一意の不透明識別子に基づいてユーザデバイスとの対話を調整することを可能にする。
【0009】
この態様は、以下の任意選択の特徴のうちの1つまたは複数を含むことができる。一部の実装形態では、動作は、第2のアプリケーションサービスから第2の認証要求を受信することを含む。第2の認証要求は、ユーザデバイスのユーザの認証を要求する。この実装形態における動作は、ユーザのユーザデバイスに関連付けられたデバイス情報を取得することと、デバイス情報がユーザデバイスの一意の不透明識別子に関連付けられていると判定することと、をさらに含む。この実装形態における動作は、第2の認証トークンを生成することと、一意の不透明識別子を第2の認証トークンに含めるよう、一意の不透明識別子を符号化するステップと第2の認証トークンを第2のアプリケーションサービスに送信することを含む。一部の例では、第1のアプリケーションサービスは、第2のアプリケーションサービスが第1のアプリケーションサービスが受信したのと同じ一意の不透明識別子を受信したと判定し、第1のアプリケーションサービスは、一意の不透明識別子に基づいて、第1のアプリケーションサービスおよび第2のアプリケーションサービスが同じユーザデバイスと対話していると判定する。
【0010】
任意選択で、動作は、デバイス情報を要求する第1のアプリケーションサービスからの情報要求を受信することをさらに含む。情報要求は、一意の不透明識別子を含む。動作は、一意の不透明識別子に基づいて、ユーザのユーザデバイスに関連付けられたデバイス情報の少なくとも一部を、第1のアプリケーションサービスに送信することをさらに含んでいてもよい。一部の例では動作は、第1のアプリケーションサービスから認証要求を受信した後、認証資格情報と、ユーザデバイスに関連付けられたデバイス情報を第1のアプリケーションサービスと共有することについてのユーザ同意とを要求する資格情報要求をユーザデバイスに送信することと、認証資格情報とユーザ同意とを含む資格情報要求への応答を受信することと、をさらに含む。
【0011】
一部の実装形態では、デバイス情報は、ユーザデバイスのウェブクッキー、ユーザデバイスのインターネットプロトコルアドレス、またはユーザデバイスのオペレーティングシステムバージョンのうちの少なくとも1つを含む。認証トークンは、フェデレーテッド・アイデンティティ・トークンを含んでいてもよい。例えば、フェデレーテッド・アイデンティティ・トークンは、OAuthトークンまたはセキュリティ・アサーション・マークアップ言語(SAML)トークンのうちの1つを含む。任意選択で、フェデレーテッド・アイデンティティ・トークンは、プロプライエタリまたは標準ベースのフェデレーテッド・アイデンティティ・システム・トークンを含む。一部の例では一意の不透明識別子を認証トークンに含めるよう、一意の不透明識別子を符号化することは、一意の不透明識別子を認証トークンの属性として追加することを含む。任意選択で、ユーザは、複数のユーザデバイスに関連付けられ、複数のユーザデバイスの各ユーザデバイスは、異なる一意の不透明識別子に関連付けられる。
【0012】
本開示の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載される。他の態様、特徴、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0013】
図1図1は、パーベイシブ・リソース識別に関する例示的なシステムの概略図である。
図2図2は、ユーザデバイスのパーベイシブ識別を共有する複数のアプリケーションサービスの概略図である。
図3図3は、ユーザデバイスのパーベイシブ識別に基づいてリモートシステムからの情報を要求するアプリケーションサービスの概略図である。
図4図4は、ユーザデバイスのユーザから認証資格情報を取得するための認証部の概略図である。
図5図5は、それぞれが同じユーザに関連付けられた複数の異なるユーザデバイスに関する複数のパーベイシブ識別の概略図である。
図6図6は、パーベイシブ・リソース識別の方法のための動作の例示的な構成のフローチャートである。
図7図7は、本明細書で説明されるシステムおよび方法を実装するために使用され得る、例示的コンピューティング・デバイスの概略図である。
【発明を実施するための形態】
【0014】
様々な図面における同様の参照符号は、同様の要素を示す。
現代のシステムでは、複数のサービスが共有リソースに関して互いに通信できる必要がある。例えば、互いに異なる組織によって潜在的に所有および/または運営される複数のサービスは、多くの場合、共有ユーザが使用しているデバイスに関する情報を読み取り、または更新することを所望する。そのような共有リソースを識別することを必要とする複数のサービスは、同じリソースについて合意するために、何らかの二次的な識別を互いに提供する必要がある。
【0015】
いくつかの状況では、同じユーザデバイス上で実行している2つのアプリケーションサービス(すなわち、アプリケーション)が互いに通信することを望む。あるいは、互いに異なるリモートコンピューティング・デバイス(例えば、サーバ)上で実行している2つのアプリケーションサービスが、共有ユーザのユーザデバイスについて通信することを望む。例えば、第1のアプリケーションサービスは、ユーザのためのサービスを実行する前に、第2のアプリケーションサービスからユーザデバイスのセキュリティリスクの状態(posture)を取得することを望む場合がある。しかしながら、いくつかのユーザデバイス上で実行される、あるいはこれと通信するアプリケーションサービスは、プライバシーまたはセキュリティの懸念のために、ユーザデバイスに関する一意のデバイス識別子を取得することができない。したがって、2つの独立したアプリケーションが、それぞれが同じ実行環境において(すなわち、同じユーザデバイス上で)実行しているか、または同じユーザデバイスと通信しているかを判定することは困難であり得る。
【0016】
一部の技術では、これらのリソースは、通常は、APIによって識別され、当該リソース内にアプリケーションが存在することが求められる。API呼出し側が、そのような存在なしに共有リソースを取り扱う(address)ことを望む場合、API呼出し側は、APIサーバに記憶されているとともにユーザに関連付けられたユーザアカウントを識別するなど、代替手段を使用しなければならない。しかしながら、プライバシーの懸念が、API呼び出し側がそのような情報を発見することを妨げ得る。他の技術では、ユーザデバイスにアクセスしている現在のユーザに関するリソース識別を調整する、ユーザデバイス上にインストールされた別のアプリケーションを必要とする。
【0017】
本明細書の実装形態は、アプリケーションサービス(すなわち、1つまたは複数のコンピューティング・デバイスのデータ処理ハードウェア上で実行するアプリケーション)が、一意の不透明識別子(ID)を取得してユーザデバイスの実行環境を関連させる(correlate)ことを可能にする、パーベイシブ・リソース識別のためのシステムを対象とする。ID生成部は、ユーザに関連付けられたユーザデバイスからデバイス情報を取得するとともに、デバイス情報に基づいてユーザデバイスに関する一意の不透明IDを生成する。認証部は、ユーザデバイスから認証資格情報を取得するとともに、一意の不透明識別子を符号化した認証トークンを生成する。認証部は、アプリケーションサービスが一意の不透明IDに基づいてユーザデバイスとの対話を調整することを可能にする認証トークンを、アプリケーションサービスに送信する。
【0018】
ここで図1を参照すると、一部の実装形態では、例示的なシステム100は、ネットワーク112を介してリモートシステム140と通信するユーザ12に関連付けられたユーザデバイス10を含む。ユーザデバイス10は、デスクトップワークステーション、ラップトップワークステーション、またはモバイルデバイス(すなわち、スマートフォン)等の任意のコンピューティング・デバイスに対応し得る。ユーザデバイス10は、コンピューティングリソース18(例えば、データ処理ハードウェア)および/またはストレージリソース16(例えば、メモリハードウェア)を含む。
【0019】
リモートシステム140は、コンピューティングリソース144(例えば、データ処理ハードウェア)および/またはストレージリソース146(例えば、メモリハードウェア)を含むスケーラブル/エラスティックコンピューティングリソース142を有する、単一のコンピュータ、複数のコンピュータ、または分散システム(例えば、クラウド環境)であってもよい。リモートシステム140は、ID生成部160の実行を行う。
【0020】
ID生成部160は、ユーザ12のユーザデバイス10に関連付けられたデバイス情報14を取得する。デバイス情報14は、集約すると、ユーザデバイス10を一意に識別するのに役立つ、ユーザデバイス10に関する情報を表している。すなわち、デバイス情報14は、理想的には、ユーザデバイス10を一意に識別するには個々には不十分である複数の情報を含むが、組み合わせることによって、デバイス情報14の複数の情報は、ユーザデバイス10の一意の(またはほぼ一意の)識別子を表す。例えば、デバイス情報14は、OS(Operating System)種別、OSバージョン、OSパッチレベル、ウェブクッキー、IP(Internet Protocol)アドレス、インストールされているアプリケーション情報等の情報を含む。デバイス情報14は、インストールされたアプリケーションに対して典型的に許可される情報のみを含んでいる場合がある一方、個人識別可能情報(PII)を含まない。例えば、多くのOSは、インストールされたアプリケーションが機密情報にアクセスしたり機密情報を共有したりすることを制限する。代わりに、ID生成部160は、制限されておらず、ユーザ12に関する機密情報を含まないデバイス情報14を受信する。
【0021】
ID生成部160は、デバイス情報14に基づいて、ユーザデバイス10に関する情報を直接的には提供しない、ユーザデバイス10に関する一意の不透明ID162を生成する。すなわち、不透明ID162は、ユーザデバイス10またはユーザ12に関するいかなる識別情報(identifying information)も含まないが、その代わりに、リモートシステム140のエンティティが特定のユーザデバイス10を識別するための識別子として機能する。例えば、不透明ID162は、リモートシステム140のエンティティが特定のユーザデバイス10から取得されたデバイス情報14を関連付けるために使用する、数字および/または文字からなるランダムな文字列を含む。
【0022】
リモートシステム140はまた、認証部170の実行を行う。認証部170は、アプリケーションサービス130から、ユーザデバイス10のユーザ12の認証を要求する認証要求132を受信する。アプリケーションサービス130は、同じまたは異なるネットワーク112を介してリモートシステム140と通信するユーザ12またはユーザデバイス10に関連付けられたサービスまたはアプリケーションをホストする任意のコンピューティング・デバイス(たとえば、サーバ)上で実行するアプリケーションであり得る。いくつかの実装形態では、アプリケーションサービス130は、ユーザデバイス10上でインストールされ実行している関連付けられたアプリケーションと通信している。他の実装形態では、アプリケーションサービス130は、ユーザデバイス10上で実行するとともに、ユーザデバイス10および/またはリモートコンピューティング・デバイス上にインストールされた別のアプリケーションと通信する。ソフトウェア・アプリケーション(すなわち、ソフトウェアリソース)は、コンピューティング・デバイスにタスクを実行させるコンピュータソフトウェアを指す場合がある。一部の例では、ソフトウェア・アプリケーションは、「アプリケーション」、「アプリ」、または「プログラム」と呼ばれることがある。例示的なアプリケーションは、システム診断アプリケーション、システム管理アプリケーション、システム保守アプリケーション、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲームアプリケーションを含むが、これらに限定されない。例えば、アプリケーションサービス130は、ユーザデバイス10を介して(例えば、ウェブ・ブラウザまたはアプリケーションサービス130に固有のアプリケーションを介して)ユーザ12が使用するウェブストレージアプリケーション(例えば、写真、文書などのための)をホストすることにより、ファイルを記憶することができる。一部の例では、アプリケーションサービス130はリモートシステム140に関連付けられている一方、他の例では、アプリケーションサービス130はリモートシステム140から完全に独立している。
【0023】
多くのウェブでホストされるサービスおよびアプリケーションが、ユーザアクセスを管理および認証するためにフェデレーテッド識別技術に依存することが、ますます一般的となっている。例えば、ユーザは、単一のフェデレーテッドアイデンティティサービスを用いて認証資格情報(例えば、ユーザ名およびパスワード)を維持する。ユーザがサードパーティサービスにおいてユーザに関連付けられたアカウントまたはリソースにアクセスすることを望むとき、サードパーティサービスは、ユーザを認証するよう、フェデレーテッドアイデンティティサービスに要求する。このようにして、ユーザは、認証資格情報の単一のセットを維持する必要があるだけでよいとともに、サードパーティサービスは、適切な認証サービスおよびセキュリティを維持する必要がなく、代わりに、フェデレーテッドアイデンティティサービスに依拠する。
【0024】
ここで、リモートシステム140は、フェデレーテッドアイデンティティサービスとして動作してもよい。また、認証トークン172は、フェデレーテッド・アイデンティティ・トークンを含んでいてもよい。すなわち、アプリケーションサービス130は、ユーザ12がアプリケーションサービス130に関連付けられたリソースにアクセスできるように、認証部170にユーザ12を認証するように要求する。アプリケーションサービス130は、ユーザ12からの選択または指示に応じて、認証要求132をリモートシステム140に送信することができる。例えば、ユーザ12は、アプリケーションサービス130に関連付けられたリソースにアクセスしようと試みるとき、フェデレーテッドアイデンティティサービス(すなわち、認証部170)を介して認証を行うオプションを選択する。リモートシステム140は、OAuth、OpenID Connect、およびSecurity Assertion Markup Language(SAML)等、任意の種類のフェデレーテッドアイデンティティ技術を使用することができる。例えば、認証トークン172は、OAuthトークンまたはSAMLトークンを含む。
【0025】
認証部170は、ユーザデバイス10から、ユーザ12のアイデンティティを検証する認証資格情報20を取得する。例えば、認証資格情報20は、ユーザ名、パスワード、ワンタイムコード(2要素認証等)、バイオメトリック情報、または認証部170およびユーザ12が同意した任意の他の情報を含んでおり、ユーザ12のアイデンティティを認証するのに十分である。以下でより詳細に説明するように、認証部170は、例えばユーザデバイス10のディスプレイを介してユーザ12に認証資格情報20を提供するように促すことに応じて、認証資格情報20を受信することができる。リモートシステム140は、認証資格情報20を提供するようにユーザ12および/またはユーザデバイス10に促すべく、資格情報要求134をユーザデバイス10に発行し得る。一部の例では、資格情報要求134は、デバイス情報を共有する同意の要求を含む(図4)。
【0026】
リモートシステム140は、認証資格情報20とともにデバイス情報14を受信することができる。すなわち、ユーザデバイス10が認証資格情報20をリモートシステム140にサブミットするたびに、ユーザデバイス10は、デバイス情報14を同時に含めることもできる。これに加えてまたは代えて、リモートシステム140は、認証資格情報20とは独立して(例えば、一定間隔で)デバイス情報14を受信する。デバイス情報14は、ユーザデバイス10に変更が加えられる(例えば、パッチがOSに適用される)につれて、変更または更新され得る。ユーザデバイス10は、そのような変更に基づいて、更新されたデバイス情報14をリモートシステム140に送信し得る。
【0027】
認証部170は、認証資格情報20を受信することに応じて、トークンベースの認証に関して使用するために許容可能な認証トークン172(すなわち、アクセストークン)を生成する。認証トークン172は、アプリケーションサービス130によって管理されるリソースへのアクセスをユーザデバイス10に提供する。認証部170は、一部の実装形態では、一意の不透明ID162を認証トークン172に含める。例えば、認証部170は、不透明ID162を、認証トークン172の追加属性として認証トークン172に符号化するか、埋め込む。
【0028】
リモートシステム140は、一部の例では、認証トークン172をアプリケーションサービス130に送信する。これに代えて、リモートシステム140は認証トークン172をユーザデバイス10に送信する。次いで、ユーザデバイス10は認証トークン172をアプリケーションサービス130に送信する。認証トークン172は、ユーザデバイス10が、アプリケーションサービス130によって提供されるリソースまたはサービスにアクセスすることを許可する。加えて、以下でより詳細に論じられるように、認証トークン172は、含まれる不透明ID162に基づいて、アプリケーションサービス130がユーザデバイス10とのアプリケーション対話136を調整することを可能にする。
【0029】
ここで図2を参照すると、一部の実装では、システム100は、複数のアプリケーションサービス130を含む。ここで、システム100は、第1のアプリケーションサービス130、130aおよび第2のアプリケーションサービス130、130bを含む。ここで、アプリケーションサービス130は、ユーザデバイス10から遠隔にあるものとして示されているが、上述したように、アプリケーションサービス130は、ユーザデバイス10上でも実行してよい。この例では、リモートシステム140は、第1の認証要求132、132aを第1のアプリケーションサービス130aから受信した後に、対応する認証トークン172、172aを生成する。そして、リモートシステム140は、第2のアプリケーションサービス130bから第2の認証要求132、132bを受信する。リモートシステム140は、ユーザデバイス10からの認証資格情報20およびデバイス情報14を再び取り出す。一部の例では、リモートシステム140は、(第2の認証要求132bに応じて)認証資格情報20と併せてユーザデバイス10からのデバイス情報14が、ユーザデバイス10に関して以前に生成されるとともに第1のアプリケーションサービス130aに提供された、一意の不透明ID162に関連付けられていると判定する。例えば、リモートシステム140は、デバイス情報14が、以前に生成された不透明ID162に関連付けられたデバイス情報14と一致する(またはほぼ一致する)と判定する。リモートシステム140は、不透明ID162に関連付けられたデバイス情報14と比較したときに、新しいデバイス情報14が比較閾値を満たすかどうかを判定し得る。新しいデバイス情報14が比較閾値を満たす場合、リモートシステム140は、新しいデバイス情報14が以前に生成された不透明ID162に関連付けられていると判定する。この例では、認証部170は、ユーザデバイス10から受信した同じまたは類似のデバイス情報14に基づいて、第2の認証トークン172、172bを生成するとともに、第1のアプリケーションサービス130aに以前に送信された同じ一意の不透明ID162を符号化する。
【0030】
すなわち、ユーザ12は、第1の認証要求132aおよび第2の認証要求132bの両方に応じるために同じユーザデバイス10を使用したので、両方の認証要求132a、132bとともに含まれるデバイス情報14は、同じまたは類似している。したがって、リモートシステム140は、認証要求132a、132bの両方に応じて受信したデバイス情報14を、同じ一意の不透明ID162に関連させることができる。リモートシステム140は、同じユーザデバイス10が第1の認証要求132aと第2の認証要求132bの両方に応じたと判定するので、リモートシステム140は、同じ不透明ID162を第1の認証トークン172aと第2の認証トークン172bの両方に含めるよう、同じ不透明ID162を符号化する。リモートシステム140は、第2の認証トークン172bを第2のアプリケーションサービス130bに送信する。
【0031】
一部の実装形態では、第1のアプリケーションサービス130aは、第2のアプリケーションサービス130bが第1のアプリケーションサービス130aが受信したのと同じ一意の不透明ID162を受信したと判定する。第1のアプリケーションサービス130aは、一意の不透明ID162に基づいて、第1のアプリケーションサービス130aおよび第2のアプリケーションサービス130bが同じユーザデバイス10と対話していると判定する。例えば、第1のアプリケーションサービス130aおよび第2のアプリケーションサービス130bは、それぞれが同じ不透明ID162を受信したことを両アプリケーションサービス130a、130bに通知する、ID比較210の通信を行う。これに代えて、リモートシステム140は、一致する不透明ID162をアプリケーションサービス130a、130bの両方に通知することができる。共通の不透明ID162に基づいて、アプリケーションサービス130a、130bは、ユーザ12またはユーザデバイス10から特定の識別情報(identifying information)も受信することなく、それぞれが同じユーザデバイス10と対話していると推測することができる。アプリケーションサービス130a、130bのいずれかまたは両方は、それぞれが同じユーザデバイス10と対話しているという判定に基づいて、それらのサービスをユーザ12および/またはユーザデバイス10に合うようにできる。
【0032】
ここで図3を参照すると、一部の実装形態において、概略図300は、リモートシステム140が、アプリケーションサービス130から、ユーザデバイス10のデバイス情報14の一部を要求する情報要求310を受信することを示す。一部の例では、情報要求310は、アプリケーションサービス130がリモートシステム140から受信した、埋め込まれた不透明ID162とともに認証トークン172を含む。アプリケーションサービス130は、アプリケーションサービス130がどのユーザデバイス10に関するデバイス情報14を望むかの識別子として機能する、不透明ID162と認証トークン172とを含む。
【0033】
リモートシステム140は、アプリケーションサービス130から受信した不透明ID162に関連付けられたデバイス情報14を判定する。例えば、リモートシステム140は、生成された各不透明ID162を対応するデバイス情報14と関連させるデータベースにアクセスする。一部の例では、リモートシステム140は、一意の不透明ID162に基づいて、ユーザ12のユーザデバイス10に関連付けられたデバイス情報14の少なくとも一部をアプリケーションサービス130に送信する。例えば、アプリケーションサービス130は、ユーザデバイス10のセキュリティの状態(posture)を判定することを所望し、ユーザデバイス10のパッチレベルおよびOSのバージョンに関連付けられたデバイス情報14を要求する。リモートシステム140がアプリケーションサービス130に送信するデバイス情報14は、ユーザデバイス10のユーザ12から受信した同意に基づいていてもよい。
【0034】
ここで図4を参照すると、一部の実装形態では、リモートシステム140は、認証資格情報20をリモートシステム140に提供するようにユーザ12に促す、認証/許可ユーザインターフェース400をユーザデバイス10上に呼び出すように構成されている。ここで、認証ユーザインターフェース204は、ユーザ12に「以下においてサインインしてください」と示すメッセージ422を含む。認証ユーザインターフェース400はまた、ユーザ12に該ユーザ12のアイデンティティを検証するためのインターフェースを提供する認証資格情報入力領域412を含む。例えば、認証資格情報入力領域412は、ユーザ名およびパスワードのための入力テキストボックス、バイオメトリック入力(例えば、指紋センサ)、2要素認証コード入力ボックス、または認証および/もしくは認証資格情報20を取得するための任意の他の技術を含む。
【0035】
一部の例では、認証/認可ユーザインターフェース400は、リモートシステム140がデバイス情報14の一部または全部をアプリケーションサービス130と潜在的に共有することを可能にするために、ユーザ12からの同意を要求する同意要求領域430を含む。ここで、同意要求領域430は、「このサービスは、お客様のエクスペリエンスを調整および改善するために、一部のデバイス情報を要求および/または共有する場合があります。このサービスとデバイス情報を共有したくない場合は、下のチェックボックスにチェックを入れてください」とのメッセージを含む。この例では、入力ボックス432は、ユーザ12がデバイス情報14の共有についてオプトアウトする(すなわち、同意しない)ことを可能にする。一部の例では、ユーザ12は、デバイス情報14のどの部分がアプリケーションサービス130と共有するのに適格であり、どの部分が適格でないかを調整する。ユーザ12は、認証/認可ユーザインターフェース400を通じて、またはリモートシステム140に係るアカウントを介したアカウントサービスもしくは管理を通じて、プリファレンスを調整してもよい。情報要求310(図3)によってアプリケーションサービス130に提供されるデバイス情報14は、ユーザ12から受信した同意に基づくことができる。この同意は、同意を提供するためにユーザ12が使用した特定のユーザデバイス10で、ユーザ12が認証している特定のアプリケーションサービス130にのみ適用可能であり得る。一部の例では、ユーザ12は、リモートシステム140とアプリケーションサービス130との間で許可される共有のデフォルトレベルを設定する、グローバル同意設定をリモートシステム140に関して設定する。共有のデフォルトレベルについて、ユーザ12は、各アプリケーションサービス130に対して個別に調整することができる。
【0036】
一部の例では、ユーザデバイス10のアドミニストレータは、不透明ID162と、リモートシステム140とアプリケーションサービス130との間のデバイス情報14の共有とを制御する。例えば、アドミニストレータは、リモートシステム140と通信する管理ポリシーユーザインターフェースにアクセスする。これに加えてまたは代えて、ユーザ12は、リモートシステム140と通信するプライバシープリファレンスユーザインターフェースを介して、不透明ID162と、およびリモートシステム140とアプリケーションサービス130との間のデバイス情報の共有とを制御してもよい。アドミニストレータユーザインターフェースおよびプライバシープリファレンスユーザインターフェース等のユーザインターフェースは、デバイス情報14および/または不透明ID162の一部または全部をアプリケーションサービス130の一部または全部と共有することを、細かに(granularly)有効または無効にする機能を提供し得る。
【0037】
ここで図5を参照すると、一部の例では、概略図500は、ユーザ12が現在使用している特定のユーザデバイス10に基づいて、アプリケーションサービス130がユーザ12に提供されるサービスをパーソナライズすることを可能にするリモートシステム140を示す。例えば、アプリケーションサービス130は、ユーザデバイス10に提供することを選択する情報を調整し、および/またはユーザ12が実行することを許可されるアクションを調整する。特定の例として、「良好な」健康スコア(すなわち、セキュリティ状態(security posture))を有する企業所有のユーザデバイス10上のユーザ12は、アプリケーションサービス14を用いて、個人を識別可能な情報を含むファイルを閲覧することができる。これに対し、当該ユーザ12は、同じ良好な健康スコアを有さないパーソナルユーザデバイス10を使用するとき、外部当事者にアクセス可能なファイルのみにアクセスすることができる。
【0038】
図示した例では、ユーザ12は、複数のユーザデバイス10、10a~cに関連付けられている。ここで、ユーザ12は、モバイルユーザデバイス10a、ラップトップ10b、およびデスクトップ10cを使用する。リモートシステム140は、これらのユーザデバイス10a~cの各々からデバイス情報14、14a~cを受信する(例えば、1つまたは複数のアプリケーションサービス130に関して、ユーザデバイス10a~cを認証するとき)。そして、リモートシステム140は、各ユーザデバイス10a~cに関して、別個の一意の不透明ID162、162a~cを生成する。したがって、ユーザ12がユーザデバイス10a~cのうちの特定の1つを介してアプリケーションサービス130に関して認証を行うとき、アプリケーションサービス130は、特定のユーザデバイス10に関連付けられた不透明ID162を受信するとともに、アプリケーションサービス130は、それに応じてそのサービスを調整することができる。
【0039】
図6は、パーベイシブ・リソース識別の方法600のための動作の例示的な構成のフローチャートである。方法600は、動作602において、データ処理ハードウェア144において、アプリケーションサービス130から認証要求132を受信することを含む。認証要求132は、ユーザデバイス10のユーザ12の認証を要求する。方法600は、動作604において、データ処理ハードウェア144において、ユーザ12のユーザデバイス10に関連付けられたデバイス情報14を取得することを含む。方法600は、動作606において、データ処理ハードウェア144が、デバイス情報14に基づいて、ユーザデバイス10に関する一意の不透明識別子162を生成することを含む。
【0040】
方法600は、動作608において、データ処理ハードウェア144において、ユーザデバイス10から認証資格情報20を取得することを含む。認証資格情報20がユーザ12のアイデンティティを検証する。ユーザデバイス10から認証資格情報20を受信することに応じて、方法600は、動作610において、データ処理ハードウェア144が、認証トークン172を生成することと、データ処理ハードウェア144が、一意の不透明識別子162を認証トークン172に含めるよう、一意の不透明識別子162を符号化することと、を含む。方法600は、動作612において、データ処理ハードウェア144が、認証トークン172をアプリケーションサービス130に送信することを含む。認証トークン172は、アプリケーションサービス130によって受信されたとき、第1のアプリケーションサービス130が、一意の不透明識別子162に基づいてユーザデバイス10との対話136を調整することを可能にする。
【0041】
図7は、本明細書に記載のシステムおよび方法を実装するために用いられ得る一例のコンピューティング・デバイス700の概略図である。コンピューティング・デバイス700は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなど、様々な形態のデジタル・コンピュータを表すことが意図される。ここに示したコンポーネント、それらの接続および関係、ならびにそれらの機能は、例示的な意味でしかなく、本開示において記載され特許を請求される発明の実装を限定することを意味するものではない。
【0042】
コンピューティング・デバイス700は、プロセッサ710、メモリ720、ストレージ・デバイス730、メモリ720および高速拡張ポート750に接続する高速インターフェース/コントローラ740、ならびに低速バス770およびストレージ・デバイス730に接続する低速インターフェース/コントローラ760を備える。コンポーネント710,720,730,740,750,760の各々は、様々なバスを用いて相互接続されており、共通のマザーボード上に、または他の適切な手法により、取り付けられてよい。プロセッサ710は、高速インターフェース740に結合されているディスプレイ780などの外部入力/出力装置上にグラフィカル・ユーザ・インターフェース(GUI)用のグラフィック情報を表示するためにメモリ720にまたはストレージ・デバイス730上に記憶されている命令を含む、コンピューティング・デバイス700内における実行用の命令を処理することが可能である。他の実装では、複数のメモリおよびメモリ種類に加えて、適切であるように複数のプロセッサおよび/または複数のバスが用いられてよい。また、各デバイスが必要な動作の一部分を提供する複数のコンピューティング・デバイス700が接続されてもよい(例えば、サーバ・バンク、ブレードサーバのグループ、またはマルチプロセッサ・システムとして)。
【0043】
メモリ720は、コンピューティング・デバイス700内に情報を非一時的に記憶する。メモリ720は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであってよい。非一時的なメモリ720は、コンピューティング・デバイス700による使用のため、プログラム(例えば、命令のシーケンス)またはデータ(例えば、プログラム状態情報)を一時的にまたは永続的に記憶するために用いられる物理デバイスであってよい。不揮発性のメモリの例は、次に限定されないが、フラッシュ・メモリおよび読出専用メモリ(ROM)/プログラマブル読取専用メモリ(PROM)/消去可能プログラマブル読取専用メモリ(EPROM)/電子的に消去可能なプログラマブル読取専用メモリ(EEPROM)(例えば、ブート・プログラムなど典型的にはファームウェアに用いられる)を含む。揮発性メモリの例は、次に限定されないが、ランダム・アクセス・メモリ(RAM)、ダイナミック・ランダム・アクセス・メモリ(DRAM)、スタティック・ランダム・アクセス・メモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープを含む。
【0044】
ストレージ・デバイス730は、コンピューティング・デバイス700にマス・ストレージを提供することができる。いくつかの実装では、ストレージ・デバイス730はコンピュータ可読媒体である。様々な異なる実装では、ストレージ・デバイス730は、フロッピー(登録商標)ディスク装置、ハードディスク装置、光学ディスク装置、もしくはテープ装置、フラッシュ・メモリまたは他の同様のソリッド・ステート・メモリ装置、またはストレージ・エリア・ネットワークもしくは他の構成における装置を含む装置のアレイであってよい。追加の実装では、コンピュータ・プログラム製品は情報キャリアにより有形に具体化される。コンピュータ・プログラム製品は、実行時に上述のものなど1または複数の方法を実行する、命令を含む。情報キャリアは、メモリ720、ストレージ・デバイス730、またはプロセッサ710上のメモリなど、コンピュータ可読媒体または機械可読媒体である。
【0045】
高速コントローラ740がコンピューティング・デバイス700用の帯域幅集約的な動作を管理する一方、低速コントローラ760は、より帯域幅集約的でない動作を管理する。そのような役割の割当は単に例示に過ぎない。いくつかの実装では、高速コントローラ740は、メモリ720、ディスプレイ780(例えば、グラフィックス・プロセッサまたはアクセラレータを通じて)、および高速拡張ポート750(様々な拡張カード(示していない)を受け入れることができる)に結合されている。いくつかの実装では、低速コントローラ760は、ストレージ・デバイス730および低速拡張ポート790に結合されている。低速拡張ポート790(様々な通信ポート(例えば、USB、BLUETOOTH(登録商標)、イーサネット(登録商標)、無線イーサネット)を含んでよい)は、1または複数の入力/出力デバイス(キーボード、ポインティング・デバイス、スキャナなど)またはネットワーク・デバイス(スイッチもしくはルータなど)に対し、結合されてよい(例えば、ネットワーク・アダプタを通じて)。
【0046】
コンピューティング・デバイス700は、図に示すように、多くの異なる形式により実装されてよい。例えば、1つの標準的なサーバ700aとして実装されてもよく、そのようなサーバ700aのグループにより複数回実装されてもよく、ラップトップ・コンピュータ700bとして、またはラック・サーバ・システム700cの一部として実装されてもよい。
【0047】
本明細書に記載のシステムおよび技術の様々な実装は、デジタルな電子回路および/または光回路、集積回路、特別に設計されたASIC(特定用途向けIC)、コンピュータ・ハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせにより実現可能である。それらの様々な実装は、ストレージ・システム、1つ以上の入力装置、および1つ以上の出力装置との間でデータおよび命令を送受信するように結合されている、1つ以上のプログラム可能な(専用または汎用の)プロセッサを備えるプログラム可能なコンピュータ上において実行可能および/または解釈可能である、1または複数のコンピュータ・プログラムによる実装を含むことが可能である。
【0048】
それらのコンピュータ・プログラム(プログラム、ソフトウェア、ソフトウェア・アプリケーション、またはコードとしても知られている)は、プログラム可能なプロセッサ用の機会命令を含み、高レベルの手続的および/またはオブジェクト指向のプログラミング言語により、アセンブリ/機械語により、またはそのバケツにより実装されることが可能である。本明細書で用いられるところでは、用語「機械可読媒体」および「コンピュータ可読媒体」は、機械可読信号として機械命令を受信する機械可読媒体を含め、プログラム可能なプロセッサに機械命令および/またはデータを提供するために用いられる、任意のコンピュータ・プログラム製品、非一時的なコンピュータ可読媒体、装置、および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラム可能論理回路(PLD))を指す。用語「機械可読信号」は、プログラム可能なプロセッサに機械命令および/またはデータを提供するために用いられる任意の信号を指す。
【0049】
本明細書に記載の処理および論理フローは、入力データに対する演算と出力の生成とによって機能を実行するように1または複数のコンピュータ・プログラムを実行する1または複数のプログラム可能なプロセッサ(データ処理ハードウェアとも呼ぶ)によって実行されることが可能である。処理および論理フローは、専用の論理回路(例えば、FPGA(field programmable gate array)またはASIC(特定用途向けIC))によって実行されることが可能である。コンピュータ・プログラムの実行に適切なプロセッサは、例として、汎用および専用のマイクロプロセッサ、および任意の種類のデジタル・コンピュータの1または複数のプロセッサの両方を含む。一般に、プロセッサは、読出専用メモリ、ランダム・アクセス・メモリ、またはその両方から命令およびデータを受け取るであろう。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1または複数のメモリ・デバイスとである。一般に、コンピュータは、データを記憶するための1または複数のマス・ストレージ(例えば、磁気、光磁気ディスク、または光ディスク)を備えるか、データの受信、データの送信、またはその両方を行うように、該マス・ストレージに対し動作可能に結合されている。しかしながら、コンピュータがそのようなデバイスを備える必要はない。コンピュータ・プログラム命令およびデータを記憶するために適切なコンピュータ可読媒体は、例として、半導体メモリ・デバイス(例えば、EPROM、EEPROMおよび、フラッシュメモリ・デバイス)、磁気ディスク(例えば、内部ハードディスクまたはリムーバブル・ディスク)、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、全ての形式の不揮発性メモリ、メディア、およびメモリ・デバイスを含む。プロセッサおよびメモリは、専用論理回路によって補足されるか、専用論理回路に組み込まれることが可能である。
【0050】
ユーザとの対話を提供するため、本開示の1または複数の態様は、ユーザに情報を表示するためのディスプレイ・デバイス(例えば、CRT(陰極線管)、LCD(液晶ディスプレイ)モニタ、またはタッチ・スクリーン)を有する、また随意では、それによってユーザがコンピュータに入力を提供可能であるキーボードおよびポインティング・デバイス(例えば、マウスまたはトラックボール)を有する、コンピュータ上に実装されることが可能である。他の種類のデバイスもユーザとの対話を提供するために用いられることが可能である。例えば、ユーザに対し提供されるフィードバックは、任意の形態の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であることが可能であり、ユーザからの入力は、音響、音声、または触覚の入力を含む、任意の形態により受信されることが可能である。加えて、コンピュータは、ユーザによって用いられるデバイスとの間でドキュメントを送受信することによって(例えば、ウェブ・ブラウザから受信される要求に応じてユーザのクライアント装置上のウェブ・ブラウザにウェブ・ページを送信することによって)、ユーザと対話することが可能である。
【0051】
多くの実装について記載した。しかしながら、様々な変更が本開示の精神および範囲から逸脱することなくなされ得ることが理解されるであろう。したがって、他の実装は添付の特許請求の範囲の範囲内にある。
図1
図2
図3
図4
図5
図6
図7
【国際調査報告】