(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-26
(54)【発明の名称】データへの条件付きアクセス方法、システム、プログラム
(51)【国際特許分類】
G06F 16/28 20190101AFI20241219BHJP
【FI】
G06F16/28
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024529640
(86)(22)【出願日】2022-12-06
(85)【翻訳文提出日】2024-05-17
(86)【国際出願番号】 EP2022084609
(87)【国際公開番号】W WO2023104801
(87)【国際公開日】2023-06-15
(32)【優先日】2021-12-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100091568
【氏名又は名称】市位 嘉宏
(72)【発明者】
【氏名】ブレマー、ラース
(72)【発明者】
【氏名】マイヤー、アルバート
(72)【発明者】
【氏名】グラーセルト、ミケ
(72)【発明者】
【氏名】セレ、ヤニック
(72)【発明者】
【氏名】ベッセラー、マイケル
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175AA02
(57)【要約】
データベース・システムへの条件付きアクセス方法であって、データベース・システムは、レコードを含み、各レコードは、属性のセットを含み、データベース・ビューを含み、各データベース・ビューは、属性のセットのサブセットを表す。属性のセットのうちの属性のサブセットおよび処理目的を示すデータ目的オブジェクトが記憶され、各処理目的が、処理目的の属性のサブセットに認可済みアクセスする1つまたは複数のエンティティに関連付けられ、特定の処理目的およびデータベース・ビューの選択されたビューについてのデータに対するリクエストが受信され、特定の処理目的を示すデータ目的オブジェクトが検索される。選択されたビューによって表される属性のサブセットは、検索されたデータ目的オブジェクトにおいて示される属性のサブセットと比較され、選択されたビューの属性のサブセットの値が提供される。
【特許請求の範囲】
【請求項1】
データベース・システムのデータへの条件付きアクセスのためのコンピュータ実施方法であって、前記データベース・システムが、レコードを含み、各レコードが、属性のセットを含み、前記データベース・システムが、データベース・ビューを含み、各データベース・ビューが、前記属性のセットのサブセットを表し、前記方法が、
データ目的オブジェクトを記憶することであって、各データ目的オブジェクトが、前記属性のセットのうちの属性のサブセットおよび前記属性のサブセットを処理する処理目的を示す、前記記憶することと、
前記処理目的の前記属性のサブセットに認可済みアクセスする1つまたは複数のエンティティに各処理目的を関連付けることと、
特定の処理目的および前記データベース・ビューの選択されたビューについてのデータに対するリクエストを受信することと、
前記特定の処理目的を示すデータ目的オブジェクトを検索することと、
前記選択されたビューによって表される前記属性のサブセットを、検索された前記データ目的オブジェクトにおいて示される前記属性の前記サブセットと比較することと、
前記選択されたビューによって表される前記属性のサブセットが、前記検索されたデータ目的オブジェクトにおいて示される前記属性の前記サブセットのうちのサブセットであると判定することに応答して、前記特定の処理目的に関連付けられたエンティティについての前記選択されたビューにおいて表される前記属性のサブセットの値を提供することと、
を含む、コンピュータ実施方法。
【請求項2】
前記データ目的オブジェクトが、順序に従ってビットを前記属性のセットにそれぞれマッピングする第1のビットマップを含み、前記第1のビットマップが、前記属性のサブセットを示すように構成され、前記データベース・ビューが、前記順序に従ってビットを前記属性のセットにマッピングする第2のビットマップを含み、前記第2のビットマップが、前記データベース・ビューの前記属性のサブセットを示すように構成され、前記比較することが、前記第1および前記第2を使用して行われる、請求項1に記載の方法。
【請求項3】
前記データ目的オブジェクトが、公開鍵をさらに含み、受信した前記リクエストが、署名をさらに含み、前記方法が、
前記検索されたデータ目的オブジェクトの前記公開鍵を使用して前記署名を検証することであって、前記比較することが、前記署名の妥当性が確認される場合にのみ行われる、前記検証することをさらに含む、請求項1または2に記載の方法。
【請求項4】
前記処理目的の前記属性のサブセットに認可済みアクセスする1つまたは複数のエンティティに各処理目的を関連付けることが、合意テーブルを生成することを含み、前記合意テーブルの各エントリが、エンティティのエンティティ識別子(ID)および関連付けられた処理目的を含み、前記属性のサブセットの値を提供することが、前記特定の処理目的に関連付けられた前記エンティティについての前記属性のサブセットの前記値のみを含むように、前記合意テーブルを前記選択されたビューと結合することを含む、請求項1ないし3のいずれか一項に記載の方法。
【請求項5】
前記データ目的オブジェクトが、前記属性のサブセットを含む第1のリストを含み、前記データベース・ビューが、前記データベース・ビューの前記属性のサブセットを含む第2のリストを含み、前記比較することが、前記第1のリストおよび前記第2のリストを使用して行われる、請求項1ないし4のいずれか一項に記載の方法。
【請求項6】
プロシージャを提供することであって、前記プロシージャが、前記特定の処理目的および前記選択されたビューを入力として受信するように構成され、前記検索すること、前記比較すること、および前記提供することを行うように構成される、前記提供することと、
アプリケーション・プログラミング・インターフェース(API)を介して前記プロシージャを実行することであって、前記リクエストの前記受信が、前記プロシージャを呼び出す前記APIの関数によって行われる、前記実行することと、をさらに含む、請求項1ないし5のいずれか一項に記載の方法。
【請求項7】
システムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサにより実行されると、前記1つまたは複数のプロセッサに、データベース・システムのデータへの条件付きアクセスのための方法を実行させるように構成されるプログラム命令をまとめて記憶する、1つまたは複数のコンピュータ可読記憶媒体であって、前記データベース・システムが、レコードを含み、各レコードが、属性のセットを含み、前記データベース・システムが、データベース・ビューを含み、各データベース・ビューが、前記属性のセットのサブセットを表し、前記方法が、
データ目的オブジェクトを記憶することであって、各データ目的オブジェクトが、前記属性のセットのうちの属性のサブセットおよび前記属性のサブセットを処理する処理目的を示す、前記記憶することと、
前記処理目的の前記属性のサブセットに認可済みアクセスする1つまたは複数のエンティティに各処理目的を関連付けることと、
特定の処理目的および前記データベース・ビューの選択されたビューについてのデータに対するリクエストを受信すること、
前記特定の処理目的を示すデータ目的オブジェクトを検索することと、
前記選択されたビューによって表される前記属性のサブセットを、検索された前記データ目的オブジェクトにおいて示される前記属性の前記サブセットと比較すること、ならびに
前記選択されたビューによって表される前記属性のサブセットが、前記検索されたデータ目的オブジェクトにおいて示される前記属性の前記サブセットのうちのサブセットであると判定することに応答して、前記特定の処理目的に関連付けられたエンティティについての前記選択されたビューにおいて表される前記属性のサブセットの値を提供することと、を含む、前記1つまたは複数のコンピュータ可読記憶媒体と、
を備える、システム。
【請求項8】
前記データ目的オブジェクトが、順序に従ってビットを前記属性のセットにそれぞれマッピングする第1のビットマップを含み、前記第1のビットマップが、前記属性のサブセットを示すように構成され、前記データベース・ビューが、前記順序に従ってビットを前記属性のセットにマッピングする第2のビットマップを含み、前記第2のビットマップが、前記データベース・ビューの前記属性のサブセットを示すように構成され、前記比較することが、前記第1および前記第2を使用して行われる、請求項7に記載のシステム。
【請求項9】
前記データ目的オブジェクトが、公開鍵をさらに含み、受信した前記リクエストが、署名をさらに含み、前記方法が、
前記検索されたデータ目的オブジェクトの前記公開鍵を使用して前記署名を検証することであって、前記比較することが、前記署名の妥当性が確認される場合にのみ行われる、前記検証することをさらに含む、請求項7または8に記載のシステム。
【請求項10】
前記処理目的の前記属性のサブセットに認可済みアクセスする1つまたは複数のエンティティに各処理目的を関連付けることが、合意テーブルを生成することを含み、前記合意テーブルの各エントリが、エンティティのエンティティ識別子(ID)および関連付けられた処理目的を含み、前記属性のサブセットの値を提供することが、前記特定の処理目的に関連付けられた前記エンティティについての前記属性のサブセットの前記値のみを含むように、前記合意テーブルを前記選択されたビューと結合することを含む、請求項7ないし9のいずれか一項に記載のシステム。
【請求項11】
前記データ目的オブジェクトが、前記属性のサブセットを含む第1のリストを含み、前記データベース・ビューが、前記データベース・ビューの前記属性のサブセットを含む第2のリストを含み、前記比較することが、前記第1のリストおよび前記第2のリストを使用して行われる、請求項7ないし10のいずれか一項に記載のシステム。
【請求項12】
前記1つまたは複数のプロセッサによって実行される前記方法が、
プロシージャを提供することであって、前記プロシージャが、前記特定の処理目的および前記選択されたビューを入力として受信するように構成され、前記検索すること、前記比較すること、および前記提供することを行うように構成される、前記提供することと、
アプリケーション・プログラミング・インターフェース(API)を介して前記プロシージャを実行することであって、前記リクエストの前記受信が、前記プロシージャを呼び出す前記APIの関数によって行われる、前記実行することと、をさらに含む、請求項7ないし11のいずれか一項に記載のシステム。
【請求項13】
前記データ目的オブジェクトが、前記データベース・システムからリモートで記憶される、請求項7ないし12のいずれか一項に記載のシステム。
【請求項14】
1つまたは複数のコンピュータ可読記憶媒体と、前記1つまたは複数のコンピュータ可読記憶媒体上にまとめて記憶されたプログラム命令と、を含むコンピュータ・プログラム製品であって、前記プログラム命令が、1つまたは複数のプロセッサに、データベース・システムのデータへの条件付きアクセスのための方法を実行させるように構成される命令を含み、前記データベース・システムが、レコードを含み、各レコードが、属性のセットを含み、前記データベース・システムが、データベース・ビューを含み、各データベース・ビューが、前記属性のセットのサブセットを表し、前記方法が、
データ目的オブジェクトを記憶することであって、各データ目的オブジェクトが、前記属性のセットのうちの属性のサブセットおよび前記属性のサブセットを処理する処理目的を示す、前記記憶することと、
前記処理目的の前記属性のサブセットに認可済みアクセスする1つまたは複数のエンティティに各処理目的を関連付けることと、
特定の処理目的および前記データベース・ビューの選択されたビューについてのデータに対するリクエストを受信することと、
前記特定の処理目的を示すデータ目的オブジェクトを検索することと、
前記選択されたビューによって表される前記属性のサブセットを、検索された前記データ目的オブジェクトにおいて示される前記属性の前記サブセットと比較することと、
前記選択されたビューによって表される前記属性のサブセットが、前記検索されたデータ目的オブジェクトにおいて示される前記属性の前記サブセットのうちのサブセットであると判定することに応答して、前記特定の処理目的に関連付けられたエンティティについての前記選択されたビューにおいて表される前記属性のサブセットの値を提供することと、
を含む、コンピュータ・プログラム製品。
【請求項15】
前記データ目的オブジェクトが、順序に従ってビットを前記属性のセットにそれぞれマッピングする第1のビットマップを含み、前記第1のビットマップが、前記属性のサブセットを示すように構成され、前記データベース・ビューが、前記順序に従ってビットを前記属性のセットにマッピングする第2のビットマップを含み、前記第2のビットマップが、前記データベース・ビューの前記属性のサブセットを示すように構成され、前記比較することが、前記第1および前記第2を使用して行われる、請求項14に記載のコンピュータ・プログラム製品。
【請求項16】
前記データ目的オブジェクトが、公開鍵をさらに含み、受信した前記リクエストが、署名をさらに含み、前記方法が、
前記検索されたデータ目的オブジェクトの前記公開鍵を使用して前記署名を検証することであって、前記比較することが、前記署名の妥当性が確認される場合にのみ行われる、前記検証することをさらに含む、請求項14または15に記載のコンピュータ・プログラム製品。
【請求項17】
前記処理目的の前記属性のサブセットに認可済みアクセスする1つまたは複数のエンティティに各処理目的を関連付けることが、合意テーブルを生成することを含み、前記合意テーブルの各エントリが、エンティティのエンティティ識別子(ID)および関連付けられた処理目的を含み、前記属性のサブセットの値を提供することが、前記特定の処理目的に関連付けられた前記エンティティについての前記属性のサブセットの前記値のみを含むように、前記合意テーブルを前記選択されたビューと結合することを含む、請求項14ないし16のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項18】
前記データ目的オブジェクトが、前記属性のサブセットを含む第1のリストを含み、前記データベース・ビューが、前記データベース・ビューの前記属性のサブセットを含む第2のリストを含み、前記比較することが、前記第1のリストおよび前記第2のリストを使用して行われる、請求項14ないし17のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項19】
前記1つまたは複数のプロセッサによって実行される前記方法が、
プロシージャを提供することであって、前記プロシージャが、前記特定の処理目的および前記選択されたビューを入力として受信するように構成され、前記検索すること、前記比較すること、および前記提供することを行うように構成される、前記提供することと、
アプリケーション・プログラミング・インターフェース(API)を介して前記プロシージャを実行することであって、前記リクエストの前記受信が、前記プロシージャを呼び出す前記APIの関数によって行われる、前記実行することと、をさらに含む、請求項14ないし18のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項20】
前記データ目的オブジェクトが、前記データベース・システムからリモートで記憶される、請求項14ないし19のいずれか一項に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、コンピューティングの分野に関し、特に、データへの条件付きアクセスに関する。
【背景技術】
【0002】
プライバシーおよびデータ保護の規則は、世界中で頻繁に出現している。これらは、中でも、一般データ保護規則(GDPR)およびカリフォルニア州消費者プライバシー法(CCPA)を含む。これらの規則は、多くの場合、同意の概念を扱っている。この文脈における同意は、個人データを処理される個人が、そのデータが特定の方法で処理されることに同意するかどうかに関連することがある。
【発明の概要】
【0003】
本開示の実施形態は、データベース・システムのデータへの条件付きアクセスのための方法を目的とし、データベース・システムはレコードを含み、各レコードは属性のセットを含む。データベース・システムは、データベース・ビューをさらに含んでもよく、各データベース・ビューは、属性のセットのサブセットを表す。方法は、データ目的オブジェクトを記憶することであって、各データ目的オブジェクトが、属性のセットのうちの属性のサブセットおよび上記属性のサブセットを処理する処理目的を示す、記憶することを含む。方法は、上記処理目的の属性のサブセットに認可済みアクセスする1つまたは複数のエンティティに各処理目的を関連付けることをさらに含む。方法は、特定の処理目的およびデータベース・ビューの選択されたビューについてのデータに対するリクエストを受信することをさらに含む。方法は、特定の処理目的を示すデータ目的オブジェクトを検索することをさらに含む。方法は、選択されたビューによって表される属性のサブセットを、検索されたデータ目的オブジェクトにおいて示される属性のサブセットと比較することをさらに含む。方法は、選択されたビューによって表される属性のサブセットが、検索されたデータ目的オブジェクトにおいて示される属性のサブセットのうちのサブセットであると判定することに応答して、特定の処理目的に関連付けられたエンティティについての選択されたビューにおいて表される属性のサブセットの値を提供することをさらに含む。
【0004】
上記の方法は、有利なことに、(処理目的および選択されたビューに基づいて)条件付きでデータにアクセスすることのみを可能にする。例えば、上記の方法は、データ目的オブジェクトがデータの特定の処理目的に基づいて検索されることを保証する。方法は、さらに、属性のサブセットの値を提供する前に、選択されたビューによって表される属性のサブセットが、検索されたデータ目的オブジェクトにおいて示される属性のサブセットのうちのサブセットであることを保証する。これにより、第三者によってリクエストされたビューが、(例えば、ユーザ同意に基づいて)データ目的オブジェクト内で定義された制約の範囲内にあることが保証される。
【0005】
本開示の実施形態はまた、1つまたは複数のプロセッサと、1つまたは複数のプロセッサにより実行されると、1つまたは複数のプロセッサにデータベース・システムのデータへの条件付きアクセスのための方法を実行させるように構成されるプログラム命令をまとめて記憶する、1つまたは複数のコンピュータ可読記憶媒体と、を含むシステムに関し、データベース・システムが、レコードを含み、各レコードが、属性のセットを含む。データベース・システムは、データベース・ビューをさらに含んでもよく、各データベース・ビューは、属性のセットのサブセットを表す。方法は、データ目的オブジェクトを記憶することであって、各データ目的オブジェクトが、属性のセットのうちの属性のサブセットおよび上記属性のサブセットを処理する処理目的を示す、記憶することを含む。方法は、上記処理目的の属性のサブセットに認可済みアクセスする1つまたは複数のエンティティに各処理目的を関連付けることをさらに含む。方法は、特定の処理目的およびデータベース・ビューの選択されたビューについてのデータに対するリクエストを受信することをさらに含む。方法は、特定の処理目的を示すデータ目的オブジェクトを検索することをさらに含む。方法は、選択されたビューによって表される属性のサブセットを、検索されたデータ目的オブジェクトにおいて示される属性のサブセットと比較することをさらに含む。方法は、選択されたビューによって表される属性のサブセットが、検索されたデータ目的オブジェクトにおいて示される属性のサブセットのうちのサブセットであると判定することに応答して、特定の処理目的に関連付けられたエンティティについての選択されたビューにおいて表される属性のサブセットの値を提供することをさらに含む。
【0006】
上記のシステムは、有利なことに、(処理目的および選択されたビューに基づいて)条件付きでデータにアクセスすることのみを可能にする。例えば、上記のシステムは、データ目的オブジェクトがデータの特定の処理目的に基づいて検索されることを保証する。システムは、さらに、属性のサブセットの値を提供する前に、選択されたビューによって表される属性のサブセットが、検索されたデータ目的オブジェクトにおいて示される属性のサブセットのうちのサブセットであることを保証する。これにより、第三者によってリクエストされたビューが、(例えば、ユーザ同意に基づいて)データ目的オブジェクト内で定義された制約の範囲内にあることが保証される。
【0007】
本開示の実施形態はまた、1つまたは複数のコンピュータ可読記憶媒体と、1つまたは複数のコンピュータ可読記憶媒体上にまとめて記憶されたプログラム命令と、を含むコンピュータ・プログラム製品に関し、プログラム命令が、1つまたは複数のプロセッサに、データベース・システムのデータへの条件付きアクセスのための方法を実行させるように構成される命令を含み、データベース・システムが、レコードを含み、各レコードが、属性のセットを含む。データベース・システムは、データベース・ビューをさらに含んでもよく、各データベース・ビューは、属性のセットのサブセットを表す。方法は、データ目的オブジェクトを記憶することであって、各データ目的オブジェクトが、属性のセットのうちの属性のサブセットおよび上記属性のサブセットを処理する処理目的を示す、記憶することを含む。方法は、上記処理目的の属性のサブセットに認可済みアクセスする1つまたは複数のエンティティに各処理目的を関連付けることをさらに含む。方法は、特定の処理目的およびデータベース・ビューの選択されたビューについてのデータに対するリクエストを受信することをさらに含む。方法は、特定の処理目的を示すデータ目的オブジェクトを検索することをさらに含む。方法は、選択されたビューによって表される属性のサブセットを、検索されたデータ目的オブジェクトにおいて示される属性のサブセットと比較することをさらに含む。方法は、選択されたビューによって表される属性のサブセットが、検索されたデータ目的オブジェクトにおいて示される属性のサブセットのうちのサブセットであると判定することに応答して、特定の処理目的に関連付けられたエンティティについての選択されたビューにおいて表される属性のサブセットの値を提供することをさらに含む。
【0008】
上記のコンピュータ・プログラム製品は、有利なことに、(処理目的および選択されたビューに基づいて)条件付きでデータにアクセスすることのみを可能にする。例えば、上記のコンピュータ・プログラム製品は、データ目的オブジェクトがデータの特定の処理目的に基づいて検索されることを保証する。コンピュータ・プログラム製品は、さらに、属性のサブセットの値を提供する前に、選択されたビューによって表される属性のサブセットが、検索されたデータ目的オブジェクトにおいて示される属性のサブセットのうちのサブセットであることを保証する。これにより、第三者によってリクエストされたビューが、(例えば、ユーザ同意に基づいて)データ目的オブジェクト内で定義された制約の範囲内にあることが保証される。
【0009】
上記概要は、本開示のそれぞれの例示された実施形態またはあらゆる実施態様を説明することを意図するものではない。
【0010】
本開示に含まれる図面は、明細書に組み込まれ、かつ明細書の一部を形成する。図面は、本開示の実施形態を例示し、説明とともに、開示の原理を説明する役割を果たす。図面は、典型的な実施形態を例示するに過ぎず、開示を限定するものではない。
【図面の簡単な説明】
【0011】
【
図1】本開示の実施形態による、コンピュータ・システムのブロック図である。
【
図2】本開示の実施形態による、データへの条件付きアクセスのための例示的な方法のフロー図である。
【
図3】本開示の実施形態による、処理目的およびユーザ合意に関する情報の集合体を示す図である。
【
図4】本開示の実施形態による、データへの条件付きアクセスのための例示的な方法のフロー図である。
【
図5A】本開示の実施形態による、データへの条件付きアクセスのための例示的な方法のフロー図である。
【
図5B】本開示の実施形態による、データベース・システムおよびガバナンス・カタログを示す図である。
【
図6】本開示の実施形態による、本明細書に記載された方法、ツール、およびモジュールのうちの1つまたは複数、ならびに任意の関連機能を実施する際に使用される例示的なコンピュータ・システムを示すハイレベル・ブロック図である。
【
図7】本開示の実施形態による、クラウド・コンピューティング環境を示す図である。
【
図8】本開示の実施形態による、抽象モデル層を示す図である。
【発明を実施するための形態】
【0012】
本明細書に記載された実施形態は、様々な修正および代替形式に従うが、その詳細は、例として図面に示されており、詳細に説明される。しかしながら、説明される特定の実施形態は、限定的な意味に取られるべきではないと理解すべきである。逆に、その意図は、開示の思想および範囲内にある全ての修正物、均等物、および代替物を包含することである。
【0013】
本開示の態様は、一般に、コンピューティングの分野に関し、より詳細には、データへの条件付きアクセスに関する。本開示は、必ずしもこのような用途に限定されるものではないが、本開示の様々な態様は、この文脈を用いた様々な実施例の考察を通じて理解され得る。
【0014】
データへのアクセスは、データの修正、データの削除、またはある処理目的のためのデータの使用などのデータに対するアクションを実行するために必要である。データへのアクセスを共有すること(例えば、1人または複数のユーザにデータ・アクセスを許可すること)には利点がある。しかしながら、データ共有が(例えば、医療データで)問題を含み得る、ある状況が存在する。これは、データへの条件付きアクセスを組み込むことで対処可能である。データへの条件付きアクセスを適用することによって、データへのアクセスを許可する前にある基準を満たす必要がある場合がある(例えば、データへのアクセスが、同意ポリシーおよび地理的制限などの考慮事項を条件として許可される場合がある)。エンティティは、処理目的およびリクエスト側の当事者に応じて、そのデータへのアクセスを認可(例えば、同意)する場合もしない場合もある。例として、不正解析を行うためのデータへのアクセスは、マーケティング目的のデータへのアクセスと比較して、異なるアクセス基準を必要としてもよい。条件付きデータ・アクセスのための基準の設定は、特定の用途に基づいて変化することがあり、適切に実施することが困難である場合がある。
【0015】
本開示は、マスタ・データ管理(MDM)システムなどのデータベース・システムのデータの共有を可能にし得る。データベース・システムは、レコードのデータベースを含んでもよく、各レコードは、属性のセットの値を有する。本開示は、データ主体またはエンティティが(例えばユーザからの同意によって)それらのデータの特定の使用を制御することを可能にし得る。これは、データ・エンティティが同意していないレコードへのアクセスを妨げることによって実施され得る。同意は、データベース・システム・レベルで施行され得る。本開示の態様は、アプリケーション・レベルでのみ同意を施行する方法に対してより弾力的である。同意は、既存のストレージ・ケイパビリティを利用し得るため、性能への影響が非常に制限されて、データベース・レベルで施行され得る。個別のデータ・アクセス要件を有する多くの第三者(サードパーティ)システムがサポートされ得る。第三者の処理目的は、例えばガバナンス・カタログにおいて定義され、データベース・システムに取り込まれ得る。
【0016】
本開示は、データへのアクセスを必要とする第三者、データを所有するエンティティ、およびデータベース・システムの利用可能なリソースに基づいて、条件付きデータ・アクセスのための基準を組み込み得る。これにより、データベース・システムのデータへの条件付きアクセスの自動的実施を可能にし得る。第三者および関連する認可に関する情報が収集され得る。第三者の関連情報は、(例えば、ビジネス・グロッサリーまたはガバナンス・カタログにおいて)データ目的オブジェクトとして記憶され得る。データ目的オブジェクトは、ファイル、配列、ツリーなどのデータ構造を指す。各データ目的オブジェクトは、第三者システム、第三者システムのデータ処理目的、およびデータ処理目的に必要な属性のセットのサブセットを示す情報を含み得る。例えば、データ目的オブジェクトは、処理目的の名前および属性のサブセットを表すためのビットマップまたはリストなどのデータ構造とから構成され得る。
【0017】
1つまたは複数のデータ目的オブジェクトが、第三者システムに関連付けられ得る。例えば、データ目的オブジェクトは、アクセスされる特定のデータ、および第三者システムによるアクセスの理由を参照し得る。認可に関する情報は、エンティティおよび対応するデータ処理目的の対の配列として提供され得る(例えば、配列のエントリは、ユーザ識別(ID)およびユーザが同意した処理目的を含み得る)。エンティティは、別個の分離した実体(例えば、データベース内の第2のエントリ)を有してもよく、値が割り当てられるある属性を有してもよい。例えば、従業員または会社が、エンティティであってもよい。従業員についての可能な属性は、名前、生年月日、従業員IDなどを含む。エンティティは、属性値の集合体であり得るレコードによって表され得る。
【0018】
データベース・ビューおよび収集された情報を使用して、データベース・システムは、データベース・システムの利用可能なリソースに基づいて、異なる第三者のためのデータベースのデータへの体系的な条件付きアクセスを可能にし得る。データベース・ビューは、データベース・ユーザが永続的データベース収集オブジェクトにおけるのと同じようにクエリし得るデータに関する記憶されたクエリの結果セットを表し得る。データベース・システムの各データベース・ビューは、データベースに含まれるデータのそれぞれのサブセットを表し得る。データベース・ビューは、属性のセットのうちの属性のサブセットを参照し得る。例えば、ビューは、個人のソーシャル・メディア・ハンドルを外面化してもよい。
【0019】
実施形態では、データ目的オブジェクトは、順序に従ってビットを属性のセットにそれぞれマッピングする第1のビットマップ(例えば、属性のサブセットを示すように構成される)を含み、データベース・ビューは、上記順序に従ってビットを属性のセットにマッピングする第2のビットマップを含み、第2のビットマップは、データベース・ビューの属性のサブセットを示すように構成され、比較することが、第1のビットマップおよび第2のビットマップを使用して行われる。
【0020】
それぞれの必要な属性タイプが、ビットマップ上にマッピングされてもよく、ビットマップ内のそれぞれの位置がタイプに対応する。ビットマップは、属性のセットの数に等しい数のビットを含み、各ビットがそれぞれの属性を表す。ビットマップの各ビットが、関連付けられた属性が考慮されるか否かを示すようにセットされ得る(例えば、0はそれが考慮されないことを示し、1はそれが考慮されることを示し得る)。例えば、属性のセットが、住所、生年月日、および名前を含む場合、ビットマップは、住所->生年月日->名前の順序に従って3つの属性を表す3つのビットを含み得る。同様に、データベース・ビューのビットマップは、属性表現と同じ順序に従う同じ数のビットを有し得る。データ目的オブジェクトの属性のサブセットが、名前および住所を含む場合、ビットマップのビットは、101とセットされてもよい(例えば、属性のサブセットに関連付けられたビットは1にセットされ、残りのビットは0にセットされる)。データベース・ビューのビットマップは、ビットマップ間の比較が完了し得るように、同様に提供され、セットされ得る。例えば、データベース・ビューの属性のサブセットが名前を含む場合、ビットマップは、001とセットされてもよい。
【0021】
目的オブジェクトのビットマップおよび必要なデータベース・ビューを比較することによって、本方法は、必要なビューが目的に包含されているかどうかを判定し得る。上記の例に従って、101と001とを比較することによって、データベース・ビューが目的に包含されている(例えば、目的の属性のサブセット、住所および名前が、データベース・ビューの属性のサブセット、名前を包含している)と判定され得る。これは、ビットマップが他の構造と比較して少ないストレージ空間しか占めず、(例えば、文字列を比較するよりも)高速であり得るビット・レベルでの比較を可能にするため、コンピューティング・リソースを節約できる場合がある。例えば、新たなビューは、それを目的にマッピングしなくても、単にビットマップを指定することによって生成され得る。同意を同意テーブルに追加/同意テーブルから削除することによって、同意が追加/削除され得る。
【0022】
実施形態では、データ目的オブジェクトは、公開鍵をさらに含む。受信したリクエストは、署名(例えば、暗号化デジタル署名)をさらに示す。方法は、検索されたデータ目的オブジェクトの公開鍵を使用して署名を検証することであって、比較することが、署名の妥当性が確認される場合にのみ行われる、検証することをさらに含む。公開鍵を使用すると、リクエスト側の第三者は、自分の秘密鍵で暗号化された署名を提供することによって目的を認証し得る。
【0023】
署名は、例えば、メッセージのハッシュなどのデジタル署名であってもよい。署名は、公開鍵に関連付けられた第三者の秘密鍵で暗号化され得る。デジタル署名の妥当性を確認するために、同じメッセージのハッシュが計算され、署名が公開鍵を使用して復号され、結果として得られる2つのハッシュ値が同一である場合に署名の妥当性が確認されるように、それらが比較され得る。
【0024】
実施形態では、上記処理目的の属性のサブセットに認可済みアクセスする1つまたは複数のエンティティに処理目的の各処理目的を関連付けることが、合意テーブルを生成することを含み、合意テーブルの各エントリが、エンティティのエンティティ識別子(ID)および関連付けられた処理目的を含み、属性のサブセットの値を提供することが、特定の処理目的に関連付けられたエンティティについての属性のサブセットの値のみを含むように、合意テーブルを選択されたビューと結合することを含む。
【0025】
上記の例に従って、同意テーブルは、属性のサブセット、住所および名前を有するデータ目的オブジェクトを指す2つのエントリを含み得る。これら2つのエントリは、2つのエンティティ識別(ID)(例えば、ユーザID)に関連付けられ得る。即ち、2つのエンティティは、データ目的オブジェクトにおいて示される目的のために自分の名前および住所へのアクセスを認可または同意している。同意テーブルおよび選択されたビューを結合することによって、上記ユーザIDを有する2人のユーザの名前が提供され得る。
【0026】
実施形態では、データ目的オブジェクトは、属性のサブセットを含む第1のリストを含み、データベース・ビューは、データベース・ビューの属性のサブセットを含む第2のリストを含み、比較することが、第1のリストおよび第2のリストを使用して行われる。疎なデータに対しては、ビットマップと比較してリストの方が有利であり得る。
【0027】
実施形態では、方法は、プロシージャを提供することをさらに含む。プロシージャは、特定の処理目的および選択されたビューを入力として受信するように構成され、検索するステップ、比較するステップ、および提供するステップを行うように構成され、アプリケーション・プログラミング・インターフェース(API)を介してプロシージャを実行するように構成され、リクエストの受信は、プロシージャを呼び出すAPIの関数によって行われる。データベース・システムへのアクセスのためにストアド・プロシージャを使用することによって、同意が施行され、所与の目的のために個人のデータに対して、その個人がその目的に同意した場合にのみ、第三者がアクセスすることが可能となり得る。
【0028】
実施形態では、方法は、第三者システムに処理目的を登録するためのリクエストを第三者システムから受信することと、データ目的オブジェクトを生成することであって、各データ目的オブジェクトが、それぞれの第三者システムをさらに示す、生成することと、をさらに含む。例えば、各データ目的オブジェクトは、第三者システムの名前を含む。この第三者システムの名前は、例えば、署名を生成するために使用されるメッセージであってもよい。これは、第三者システムおよびデータベース・システムの両方が、署名の妥当性確認のために使用される同じメッセージにアクセスできるため、有利であり得る。
【0029】
図1は、本開示の実施形態による、コンピュータ・システム100を示す。コンピュータ・システム100は、データベース・システム101と、1つまたは複数のクライアント・システム102a~102n(第三者システム102a~102nとも呼ばれる)を含む。データベース・システム101は、1つまたは複数のネットワーク103を介してクライアント・システム102a~102nのそれぞれと通信するように構成され得る。説明の簡略化のために、ネットワークが1つだけ示されているが、データベース・システム101は、1つより多くのネットワークを介してクライアント・システム102a~102nに接続してもよい(例えば、データベース・システム101は、それぞれのネットワークを介してコンピュータ・システム102a~102nのそれぞれに接続してもよい)。ネットワーク103は、ケーブル・ネットワーク、光ファイバ・ネットワーク、ハイブリッド・ファイバ同軸ネットワーク、無線ネットワーク(例えば、Wi-Fiもしくは移動体電話ネットワークもしくはその両方)、衛星ネットワーク、インターネット、イントラネット、ローカル・エリア・ネットワーク、任意の他の適当なネットワーク、またはこれらのネットワークの任意の組み合わせ、あるいはそれらの組み合わせを含み得るが、これらに限定されない。
【0030】
データベース・システム101は、ネットワーク103を経てアクセス可能な、クライアント・システム102a~102nに対してリモートであってもよい。データベース・システム101は、属性のセットatt1, att2...attkの値を含むデータベース120を含み得る。属性のセットは、個人または会社などのエンティティを表す。データベース120は、データベース・ビュー121a~121nに関連付けられ得る。各データベース・ビュー121a~121nは、属性のセットatt1, att2...attkのうちの属性のそれぞれのサブセットのデータを提供し得る。図面の簡略化のために、データベース・ビュー121aが1つだけ示されている(が、その他のものが同様に構築されてもよい)。データベース・ビュー121aは、データがデータベース・ビュー121aによって提供される属性のサブセットを示すビットマップまたはリスト130を含む。
【0031】
データベース・システム101は、基準を使用してクライアント・システム102a~102nによるデータベース120への条件付きアクセスを提供し得る。基準は、データ処理目的と、その目的のためにそれらのデータにアクセスするエンティティによって提供される認可または同意とに基づいて、定義され得る。
【0032】
データベース・システム101は、ガバナンス・カタログ113にアクセスし得る。分離したコンポーネントとして示されているが、別の例では、データベース・システム101は、ガバナンス・カタログ113を含み得る。ガバナンス・カタログ113は、データ目的オブジェクト105a~105mを含み得る。図面の簡略化のために、データ目的オブジェクト105aが1つだけ示されている(が、他のデータ目的オブジェクトが同様に構築され得る)。データ目的オブジェクト105aは、第三者システム102a~102nのうちの1つを示す情報108を含む。データ目的オブジェクト105aは、データベース・システム101のデータを処理するための処理目的107(アクセス理由)の名前を含む。
図1に示されるように、処理目的107は、「マーケティング」と定義されている。データ目的オブジェクト105aは、データ処理目的107のために使用される属性109のサブセットをさらに含む。データ目的オブジェクト105aは、属性109のサブセットを示すビットマップまたはリスト110と、第三者システムの公開鍵111と、をさらに含む。1つまたは複数のデータ目的オブジェクト(例えば、データ目的オブジェクト105a~105m)は、第三者システム102a~102n毎に記憶され得る。第三者について記憶された各目的は、その目的が必要とする全てのタイプのデータについてビットマップを使用し得る。例えば、マーケティング目的は、電子メール・アドレスへのアクセスを必要とし得る。データベース・システム101は、同意テーブル123を含む。同意テーブル123は、目的に同意したエンティティID(例えば、ユーザID)と、この目的の名前とを記憶する。
【0033】
データベース・システム101は、プロシージャ125をさらに含み得る。プロシージャ125は、例えば、データに関連付けられたエンティティがアクセスに同意した場合に、クライアント・システム102a~102nがデータを検索することを可能にし得る。そのために、プロシージャ125は、ガバナンス・カタログ113から目的を検索し、公開鍵111を使用して署名を検証し得る。その後、プロシージャ125は、ビュー内のデータが、目的においてアクセスが許可されたデータのサブセットである場合に、リクエストされたビューへのアクセスを許可し得る。ストアド・プロシージャ125は、アプリケーション・プログラミング・インターフェース(API)などのデータベースの既存の機能を使用して実施されてもよく、またはクエリ機能としてデータベース内に構築されてもよい。態様は、サービスとしてのデータベース(DBaaS)のクラウド技術の範囲内で有利に使用され得る。
【0034】
図2は、本開示のいくつかの実施形態による、データへの条件付きアクセスのための例示的な方法200を示すフロー図である。説明のために、方法200は、
図1に示されるシステム100に関して説明され得る。しかしながら、方法200は、
図1に示されるシステム100に限定されるものではない。方法200は、実施形態では、データベース・システム101によって実行され得る。
【0035】
方法200は、動作201において開始し、(例えば、データベース120の)データに対するリクエストが受信される。データに対するリクエストは、特定の処理目的(例えば、データ目的オブジェクト105a~105m内のデータ処理目的)のためのものであり得る。リクエストは、特定の処理目的の名前を含み得る。リクエストは、データベース・ビュー121a~121nの選択されたビューをさらに示し得る。ビューは、例えば、リクエスト元によって選択されてもよく、または(例えば、データベース・システムによって)ランダムに選択されてもよい。したがって、リクエストは、選択されたビューに示されるようにどのデータにアクセスするかを示し、データがアクセスされる目的をさらに示す(例えば、リクエストは目的の名前を含む)。リクエストは、例えば、ストアド・プロシージャ125のAPIコールとして受信されてもよい。このようにして、ストアド・プロシージャ125が実行されてもよく、プロシージャ125の実行は、動作203から211を含んでもよい。
【0036】
説明の簡略化のために、例として、データベースが製品を説明するデータを含むと仮定する。データベースは、製品、クライアント年齢、購入日、購入ユニット数、質量、サイズなどの属性のセットを含み得る。データベース・ビューは、例えば、2つのデータベース・ビューDV1およびDV2であってもよく、データベース・ビューDV1は、製品、クライアント年齢、および購入日の属性のサブセットを有し、データベース・ビューDV2は、質量、クライアント年齢、および購入日の属性のサブセットを有する。受信したデータについてのリクエストは、統計分析を実行して、どの年齢グループがどの製品に関心があるかを知るために使用され得る。受信したリクエストは、2つのデータベース・ビューDV1およびDV2のうちの1つを示し得る。
【0037】
リクエストを受信すると、データベース・システム101は、動作203において、特定の処理目的を示すデータ目的オブジェクト105a~105mを検索し得る。特定の処理目的の名前は、データ処理オブジェクト105a~105mに記憶されている処理目的107のエントリと比較されてもよく、上記特定の目的の名前を含むデータ処理オブジェクトが、ガバナンス・カタログ113から検索されてもよい。リクエストされた特定の処理目的が記憶されていない(例えば、データ処理オブジェクト105a~105mの一部ではない)場合には、リクエストが却下される場合があり、したがって、データへのアクセスが拒否されることがある。
【0038】
データベース・システム101は、動作205において、選択されたビューによって表される属性のサブセットを、検索されたデータ目的オブジェクトにおいて示される属性のサブセットと比較する。例えば、選択されたビューのビットマップ(リスト)130は、検索されたデータ目的オブジェクトのビットマップ(リスト)110と比較されて、選択されたビューによって表される属性のサブセットが、検索されたデータ目的オブジェクトにおいて示される属性のサブセットのうちのサブセットであるかどうかを判定し得る。
【0039】
上記の簡略化された例に従って、リクエストの特定目的に関連付けられた、検索されたデータ処理オブジェクトの属性のサブセットである、クライアント年齢、購入日、購入ユニット数、および製品は、(選択されたビューがDV1である場合に)データベース・ビューDV1の属性のサブセットである、製品、クライアント年齢、および購入日と比較されてもよく、または(選択されたビューがDV2である場合に)データベース・ビューDV2の属性のサブセットである、質量、クライアント年齢、および購入日と比較されてもよい。例えば、選択されたビューがDV2である場合、属性のサブセットである、質量、年齢、および購入日は、検索されたデータ処理オブジェクトの属性のサブセットの一部ではない(重複するだけである)ため、チェックは不成功である。例えば、選択されたビューがDV1である場合、属性のサブセットである、年齢、購入日、および製品は、検索されたデータ処理オブジェクトの属性のサブセットの一部であるため、チェックは成功である。
【0040】
動作207において、選択されたビューによって表される属性のサブセットが、検索されたデータ目的オブジェクトにおいて示される属性のサブセットのうちのサブセットであるとの判定が行われる場合、動作209において、特定の処理目的に関連付けられたエンティティについての、選択されたビューにおいて表される属性のサブセットの値が提供される。例えば、データベース120の各レコードは、レコードに関連付けられたエンティティを判定するために処理されてもよく、判定されたエンティティが、同意テーブルにリストされたエンティティと比較されて、判定されたエンティティが、受信した特定の処理目的でそのデータを使用することを認可または同意しているかどうかをチェックしてもよく、認可または同意している場合、各レコードの属性のサブセット109の値が提供され得る。
【0041】
動作207において、選択されたビューによって表される属性のサブセットが、検索されたデータ目的オブジェクトにおいて示される属性のサブセットのうちのサブセットでない場合、動作211において、データへのアクセスが拒否される(例えば、リクエストが却下される)。
【0042】
実施形態では、動作201から211は、受信された各リクエストに対して自動的に実行され得る。
【0043】
上述した動作は、任意の順序で完了されてもよく、記載された順序に限定されるものではない。さらに、本開示の思想および範囲内に依然としてとどまりつつ、上述した動作のいくつか、もしくは全てが完了され、またはいずれも完了されなくてもよい。
【0044】
図3は、本開示の実施形態による、処理目的およびユーザ合意に関する情報の集合体を示す図である。
【0045】
1つまたは複数の第三者システムが、新たな処理目的をリクエスト(310)し得る。リクエストに応答して、リクエストされた処理目的は、ガバナンス・カタログ113に(例えば、データ目的オブジェクトとして)記憶(312)され得る。データ目的オブジェクトを記憶した後、エンティティ(例えば、個人または会社)は、記憶したデータ目的オブジェクトの所与の目的に同意(314)し得る。同意したエンティティは、所与の目的に対して同意テーブル123に追加(316)され得る。エンティティはまた、目的から同意を取り消し(318)してもよい。そのために、同意したエンティティIDが、所与の目的に対して同意テーブル123から削除(320)されてもよい。動作310から320は、データへの条件付きアクセスのためにデータベース・システム101によって使用される目的および同意に関する情報の送信を可能にし得る。例えば、第三者システムは、所与の目的のためにデータにアクセスするようにリクエスト(322)し得る。これに応答して、ストアド・プロシージャ125が実行(324)されてもよい。ストアド・プロシージャの実行は、所与の目的に対応する記憶されたデータ目的オブジェクトを識別すること(326)を含み得る。
【0046】
図4は、本開示の実施形態による、データへの条件付きアクセスのための例示的な方法400のフロー図である。説明のために、方法400は、
図1に示されるシステム100に関して説明され得る。しかしながら、方法400は、
図1に示されるシステム100に限定されるものではない。方法400は、実施形態では、データベース・システム101によって実行され得る。
【0047】
方法400は、動作401において開始し、第三者システムによるデータ・アクセス・リクエストが受信される。リクエストは、目的名、データベース・ビュー121a~121n、および署名を含み得る。データベース・システム101は、動作403において、入力された目的名に対するデータ目的オブジェクト105a~105mをガバナンス・カタログ113から検索する。
【0048】
動作405において、リクエスト側の第三者がデータ目的オブジェクトの所有者であることを保証するために、検索されたデータ目的オブジェクトの公開鍵を使用して、受信した署名の妥当性が確認される。動作407において、署名の妥当性が確認されない場合、第三者が検索されたデータ目的オブジェクトを所有していないため、動作409でアクセスが拒否される。
【0049】
動作407において署名の妥当性が確認される場合、動作411において、リクエストされたビューのビットマップ130が目的ビットマップ110のサブセットであるかどうかの判定が行われる。これは、ビュー内の全てのデータが目的によって包含されていることを示している。動作413において、リクエストされたビューのビットマップ130が目的ビットマップ110のサブセットでないと判定された場合、ビューがこの目的についての同意の対象外であるデータを含むため、動作415においてアクセスは拒否される。
【0050】
動作413において、リクエストされたビューのビットマップ130が目的ビットマップ110のサブセットであると判定された場合、動作417において、同意テーブルが、リクエストされた目的に同意したユーザのデータのみを含むようにビューと結合される。その後、結合されたデータが返される(例えば、グラフィカル・ユーザ・インターフェース(GUI)上に提示される)。これは、動作419に示されている。
【0051】
図5Aは、本開示の実施形態による、データへの条件付きアクセスのための例示的な方法500を示すフロー図である。説明のために、
図5Aに記載される方法500は、
図5Bに示されるシステムにおいて実施され得る。
【0052】
図5Bは、例示的なデータベース・システム501およびガバナンス・カタログ513を示している。ガバナンス・カタログ513は、2つのデータ目的オブジェクト505aおよび505bを記憶する。データ目的オブジェクト505aは「マーケティング」という名前の目的を表し、データ目的オブジェクト505bは「不正解析」という名前の目的を表す。データ目的オブジェクト505aおよび505bのそれぞれが、
図1のデータ目的オブジェクトに関して説明されたような情報を含み得る。
【0053】
データベース・システム501は、データベース・ビュー521、同意テーブル523、およびストアド・プロシージャ525を含む。方法500の動作531において、データにアクセスするためのリクエストがデータベース・システム501によって受信される。リクエストは、ストアド・プロシージャ525によって必要とされる入力のリストを含み、それは、目的名、選択されたビュー、および署名である。これに応答して、データベース・システム501は、方法500の動作533において、入力を使用してストアド・プロシージャ525を実行する。プロシージャ525の実行は、例えば、リクエストされたデータへのアクセスを可能にするため、または拒否するために、
図2の動作203から211を実行し得る。
図5Bの例示的な疑似コードによって示されるように、プロシージャは、ガバナンス・カタログ513から目的を検索し、公開鍵を使用して署名を検証し得る。その後、プロシージャは、ビュー内のデータが、目的においてアクセスが許可されたデータのサブセットである場合に、リクエストされたビューへのアクセスを許可し得る。
【0054】
例として、マーケティングの目的で、クレジット会社は、ユーザID「15」の「ジェーン・ドゥ(Jane Doe)」がどの製品を購入したかを知るために、データベース・システム101からデータをリクエストし得る。データベース・システム101は、アクセスされたビューのビットマップが、所与の目的のためにジェーンによってクレジット会社に許可されたアクセスのサブセットであるため、このリクエストを許可し得る。
【0055】
別の例では、マーケティングの目的で、詐欺会社がユーザID「15」の「ジェーン・ドゥ」がどの製品を購入したかを知るために、データベース・システム101からデータをリクエストし得る。この会社について「マーケティング」という目的が存在しないため、データベース・システム101は、このリクエストを許可することができない。
【0056】
別の例では、マーケティングの目的で、クレジット会社がユーザID「16」の「ジョン・ドゥ(John Doe)」がどの製品を購入したかを知るために、データベース・システム101からデータをリクエストし得る。データベース・システム101は、ユーザ16(ジョン)がデータ・アクセスに同意していないため、このリクエストを許可することができない。
【0057】
別の例では、不正解析の目的で、詐欺会社がユーザID「15」の「ジェーン・ドゥ」がどの製品を購入したかを知るために、データベース・システム101からデータをリクエストし得る。データベース・システム101は、製品ビューのビットマップが「不正解析」目的のサブセットではないため、このリクエストを許可することができない。
【0058】
ここで
図6を参照すると、本開示の実施形態による、本明細書に記載された様々なデバイス(例えば、データベース・システム101およびクライアント・システム102a)において利用される可能性があり、かつ(例えば、コンピュータの1つまたは複数のプロセッサ回路またはコンピュータ・プロセッサを用いて)本明細書に記載された方法、ツール、およびモジュールのうちの1つまたは複数、ならびに任意の関連機能を実施する際に使用される、例示的なコンピュータ・システム601のハイレベル・ブロック図が示されている。いくつかの実施形態では、コンピュータ・システム601の主要なコンポーネントは、1つまたは複数のCPU602(本明細書ではプロセッサとも呼ばれる)、メモリ604、端末インターフェース612、ストレージ・インターフェース614、I/O(入力/出力)デバイス・インターフェース616、およびネットワーク・インターフェース618を含んでもよく、それらの全てが、メモリ・バス603、I/Oバス608、およびI/Oバス・インターフェース・ユニット610を介したコンポーネント間通信のために、直接的または間接的に、通信可能に連結され得る。
【0059】
コンピュータ・システム601は、本明細書で概してCPU602と呼ばれる、1つまたは複数の汎用プログラマブル中央処理装置(CPU)602A、602B、602C、および602Dを含み得る。いくつかの実施形態では、コンピュータ・システム601は、比較的大規模なシステムに固有の複数のプロセッサを含んでもよいが、他の実施形態では、コンピュータ・システム601は、代替的に単一のCPUシステムであってもよい。各CPU602は、メモリ・サブシステム604に記憶された命令を実行してもよく、1つまたは複数のレベルのオンボード・キャッシュを含んでもよい。
【0060】
メモリ604は、ランダム・アクセス・メモリ(RAM)622またはキャッシュ・メモリ624などの揮発性メモリの形態で、コンピュータ・システム可読媒体を含み得る。コンピュータ・システム601は、他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータ・システム記憶媒体をさらに含み得る。単なる例として、ストレージ・システム626は、「ハード・ドライブ」などの、非リムーバブル不揮発性磁気媒体からの読み出しおよび書き込み用に提供され得る。図示されないが、リムーバブル不揮発性磁気ディスク(例えば、「フロッピー(R)・ディスク」)からの読み出しおよび書き込み用の磁気ディスク・ドライブ、またはCD-ROM、DVD-ROM、もしくは他の光学媒体などのリムーバブル不揮発性光ディスクからの読み出しまたは書き込み用の光学ディスク・ドライブが、提供されてもよい。加えて、メモリ604は、フラッシュ・メモリ、例えばフラッシュ・メモリ・スティック・ドライブまたはフラッシュ・ドライブを含み得る。メモリ・デバイスは、1つまたは複数のデータ媒体インターフェースによってメモリ・バス603に接続され得る。メモリ604は、様々な実施形態の機能を実行するように構成されるプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
【0061】
プログラム・モジュール630の少なくとも1つのセットをそれぞれが有する1つまたは複数のプログラム/ユーティリティ628が、メモリ604に記憶され得る。プログラム/ユーティリティ628は、ハイパバイザ(仮想機械モニタとも呼ばれる)、1つまたは複数のオペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データを含み得る。オペレーティング・システム、1つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはそれらの何らかの組み合わせが、ネットワーキング環境の実施態様を含み得る。プログラム/ユーティリティ628またはプログラム・モジュール630、あるいはその両方は、概して様々な実施形態の機能または方法論を実行する。
【0062】
CPU602、メモリ604、およびI/Oバス・インターフェース610の間に直接通信経路を提供する単一バス構造として、メモリ・バス603が
図6に示されるが、メモリ・バス603は、いくつかの実施形態では、複数の異なるバスまたは通信経路を含んでもよく、それらは、階層型の2点間リンク、星形もしくはウェブ構成、多階層型バス、並列および冗長経路、または任意の他の適当な種類の構成などの、様々な形態のいずれかで配置されてもよい。さらに、I/Oバス・インターフェース610およびI/Oバス608は、単一のそれぞれのユニットとして示され、コンピュータ・システム601は、いくつかの実施形態では、複数のI/Oバス・インターフェース・ユニット610、複数のI/Oバス608、またはその両方を含み得る。さらに、様々なI/Oデバイスに対して通っている様々な通信経路からI/Oバス608を分離する、複数のI/Oインターフェース・ユニットが示されているが、他の実施形態では、I/Oデバイスのいくつかまたは全てが、1つまたは複数のシステムI/Oバスに直接接続され得る。
【0063】
いくつかの実施形態では、コンピュータ・システム601は、マルチユーザ・メインフレーム・コンピュータ・システム、単一ユーザ・システム、または、直接のユーザ・インターフェースをほとんどもしくは全く有しないが、他のコンピュータ・システム(クライアント)からリクエストを受信するサーバ・コンピュータもしくは類似デバイスであってもよい。さらに、いくつかの実施形態では、コンピュータ・システム601は、デスクトップ・コンピュータ、ポータブル・コンピュータ、ラップトップもしくはノートブック・コンピュータ、タブレット・コンピュータ、ポケット・コンピュータ、電話、スマートフォン、ネットワーク・スイッチもしくはルータ、または任意の他の適当な種類の電子デバイスとして実施されてもよい。
【0064】
図6が、例示的コンピュータ・システム601の代表的な主要コンポーネントを示すことを意図していることに留意されたい。いくつかの実施形態では、しかしながら、個々のコンポーネントは、
図6に表されたよりも大きなまたは小さな複雑性を有してもよく、
図6に示されたもの以外の、または
図6に示されたものに追加するコンポーネントが存在してもよく、そのようなコンポーネントの数、種類、および構成は変化してもよい。
【0065】
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書に挙げる教示の実施態様は、クラウド・コンピューティング環境に限定されないと理解されたい。むしろ、本開示の実施形態は、現在既知の、または後に開発される任意の他の種類のコンピューティング環境と併せて実施されることが可能である。
【0066】
クラウド・コンピューティングは、最小の管理労力またはサービス・プロバイダとの対話で迅速に供給され、リリースされる、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス)の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含み得る。
【0067】
特性は、以下の通りである。
【0068】
オンデマンド・セルフサービス:クラウド消費者は、サービス・プロバイダと人との対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング・ケイパビリティを一方的に供給し得る。
【0069】
幅広いネットワーク・アクセス:ケイパビリティは、ネットワーク上で利用可能であり、異種シン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを通してアクセスされる。
【0070】
リソースの共用:プロバイダのコンピューティング・リソースが、マルチテナント型モデルを使用して複数の消費者にサービスするためにプールされ、異なる物理リソースおよび仮想リソースが要求に従って動的に割り当ておよび再割り当てされる。消費者が、概して、提供されるリソースの正確な場所に対する制御または知識を有しないが、より高い抽象レベル(例えば、国、州、またはデータセンタ)において場所を指定することが可能であり得るという点において、位置独立の意味がある。
【0071】
スピーディな拡張性:ケイパビリティは、場合によっては自動的に、即座にスケール・アウトするようにスピーディかつ弾力的に供給され、即座にスケール・インするようにスピーディに解放され得る。消費者に対しては、供給に利用可能なケイパビリティが、多くの場合無制限であるように見え、いつでも任意の量で購入可能である。
【0072】
サービスが計測可能であること:クラウド・システムは、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適したある抽象レベルにおいて計測ケイパビリティを活用することによって、リソース使用を自動的に制御し、最適化する。リソース使用量は、モニタリングされ、制御され、報告されて、利用サービスのプロバイダおよび消費者の両方に透明性をもたらし得る。
【0073】
サービス・モデルは、以下の通りである。
【0074】
サービスとしてのソフトウェア(SaaS):消費者に提供されるケイパビリティは、クラウド・インフラ上で実行中のプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース(例えば、ウェブ・ベースの電子メール)を通して、様々なクライアント・デバイスからアクセス可能である。消費者は、限定されたユーザ固有アプリケーションの構成設定は例外である可能性があるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション・ケイパビリティでさえも含む、基礎的なクラウド・インフラを管理または制御しない。
【0075】
サービスとしてのプラットフォーム(PaaS):消費者に提供されるケイパビリティは、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成したアプリケーションまたは消費者が取得したアプリケーションを、クラウド・インフラ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎的なクラウド・インフラを管理または制御しないが、展開されたアプリケーション、および可能な限りアプリケーション・ホスティング環境構成に対して制御を行う。
【0076】
サービスとしてのインフラ(IaaS):消費者に提供されるケイパビリティは、処理、ストレージ、ネットワーク、ならびに消費者がオペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行することが可能な、他の基本コンピューティング・リソースを供給することである。消費者は、基礎となるクラウド・インフラを管理または制御しないが、オペレーティング・システム、ストレージ、展開されたアプリケーションに対して制御を行い、かつ可能な限り選択ネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)の限定的な制御を行う。
【0077】
展開モデルは、以下の通りである。
【0078】
プライベート・クラウド:クラウド・インフラは、ある組織のためだけに運用される。クラウド・インフラは、その組織または第三者によって管理されてもよく、構内または構外に存在し得る。
【0079】
コミュニティ・クラウド:クラウド・インフラは、複数の組織によって共有され、共有の関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラは、組織または第三者によって管理されてもよく、構内または構外に存在し得る。
【0080】
パブリック・クラウド:クラウド・インフラは、一般公衆または大きな業界団体に利用可能とされ、クラウド・サービスを販売する組織によって所有される。
【0081】
ハイブリッド・クラウド:クラウド・インフラは、一意なエンティティのままであるが、データおよびアプリケーション・ポータビリティを可能にする標準化技術または独自技術(例えば、クラウド間のロード・バランシングのためのクラウド・バースティング)によって結合された、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成物である。
【0082】
クラウド・コンピューティング環境は、無国籍、低結合、モジュール性、および意味相互運用性を中心としたサービス指向型である。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラである。
【0083】
ここで
図7を参照すると、例示的なクラウド・コンピューティング環境50が示されている。図示されるように、クラウド・コンピューティング環境50は、クラウド消費者によって使用されるローカル・コンピューティング・デバイス、例えば、携帯情報端末(PDA)もしくは携帯電話54A(例えば、クライアント・システム102a)、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはそれらの組み合わせが通信し得る、1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信し得る。それらは、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウド、またはそれらの組み合わせなどの、1つまたは複数のネットワーク内で物理的または仮想的にグループ化され得る(図示せず)。これによって、クラウド・コンピューティング環境50が、インフラ、プラットフォーム、またはソフトウェア、あるいはそれらの組み合わせを、クラウド消費者がローカル・コンピューティング・デバイス上でリソースを維持する必要がないサービスとして提案することが可能となる。
図7に示されるコンピューティング・デバイス54A~54Nの種類は、単なる例示であることを意図するものであり、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、(例えば、ウェブ・ブラウザを用いて)任意の種類のネットワークまたはネットワーク・アドレス可能な接続あるいはその両方を経て、任意の種類のコンピュータ化デバイスと通信し得ると理解されたい。
【0084】
ここで
図8を参照すると、クラウド・コンピューティング環境50(
図7)によって提供される機能抽象層のセットが示されている。
図8に示されるコンポーネント、層、および機能は、単なる例示であることを意図するものであり、本開示の実施形態はそれらに限定されないことを予め理解すべきである。図示されるように、以下の層および対応する機能が提供される。
【0085】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム61、RISC(Reduced Instruction Set Computer)アーキテクチャ・ベース・サーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66を含む。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0086】
仮想化層70は、仮想エンティティの以下の例、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75が提供される、抽象層を提供する。
【0087】
一例では、管理層80は、後述の機能を提供し得る。リソース供給81は、クラウド・コンピューティング環境内でタスクを実行するために利用される、コンピューティング・リソースおよび他のリソースの動的な調達を提供する。測定および価格設定82は、リソースが、クラウド・コンピューティング環境内で利用され、これらのリソースの消費に対して課金または請求されるときに、コスト追跡を提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、データおよび他のリソースについての保護だけでなく、クラウド消費者およびタスクのための本人確認を提供する。ユーザ・ポータル83は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソース割り当ておよび管理を提供する。サービス水準合意(SLA)計画および遂行85は、SLAに従って将来の要件が予期されるクラウド・コンピューティング・リソースの事前配置および調達を提供する。
【0088】
ワークロード層90は、クラウド・コンピューティング環境が利用される機能の例を提供する。この層から提供されるワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育配信93、データ解析処理94、トランザクション処理95、ならびに条件付きデータ・アクセス管理96を含む。
【0089】
本明細書でより詳細に説明されるように、本明細書で説明される方法の実施形態のいくつかの動作のうちのいくつかまたは全てが、代替的な順序で実行されてもよく、または全く実行されなくてもよいと考えられる。さらに、複数の動作が、同時に、またはより大きなプロセスの内部部分として発生してもよい。
【0090】
本開示は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組み合わせであってもよい。コンピュータ・プログラム製品は、プロセッサに本開示の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0091】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持し、記憶し得る有形デバイスであってもよい。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または前述したものの任意の適当な組み合わせであってもよいが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令をその上に記録させる溝内の隆起構造などの機械的に符号化されたデバイス、および前述したものの任意の適当な組み合わせを含む。本明細書で用いられるコンピュータ可読記憶媒体は、電波もしくは他の自由伝播する電磁波、導波管もしくは他の送信媒体を通って伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を通って送信される電気信号などの、一過性信号それ自体であると解釈されるべきではない。
【0092】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはそれらの組み合わせを介して外部コンピュータまたは外部ストレージ・デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組み合わせを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体の記憶用にコンピュータ可読プログラム命令を転送する。
【0093】
本開示の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの従来型の手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的にかつリモート・コンピュータ上で部分的に、またはリモート・コンピュータもしくはサーバ上で完全に、実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを通してユーザのコンピュータに接続されてもよく、または、接続は、(例えば、インターネット・サービス・プロバイダを用いてインターネットを通して)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本開示の態様を実行するために、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個別化することによって、コンピュータ可読プログラム命令を実行し得る。
【0094】
本開示の態様は、開示の実施形態による、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本明細書に記載される。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組み合わせが、コンピュータ可読プログラム命令によって実施されると理解されたい。
【0095】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施する手段を生成するように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってもよい。また、これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作の態様を実施する命令を含む製品を含むように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはそれらの組み合わせに特定の方式で機能するように指示することができるものであってもよい。
【0096】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するように、コンピュータ実施プロセスを作り出すために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0097】
図面中のフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の考えられる実施態様のアーキテクチャ、機能、および動作を例示している。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表し得る。いくつかの代替実施態様において、ブロック内に記載された機能は、図面中に記載された順序以外で発生してもよい。例えば、連続して示される2つのブロックが、実際には、同時に、実質的に同時に、部分的もしくは全体的に時間的に重複して実行されて、1つのステップとして実現されてもよく、または、ブロックが、関係する機能性次第で逆の順序で実行されることがあってもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせが、指定された機能もしくは動作を実行し、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用ハードウェア・ベース・システムによって実施されることにも留意されたい。
【0098】
本明細書で使用される専門用語は、特定の実施形態を説明するためだけのものであり、様々な実施形態を限定することを意図するものではない。本明細書で使用される、単数形「a」、「an」、および「the」は、文脈が特段明示していない限り、複数形も同様に含むことを意図するものである。「含む」または「含んでいる」という用語、あるいはその両方は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、またはコンポーネント、あるいはそれらの組み合わせの存在を明示するものであって、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、またはそれらの集合、あるいはそれらの組み合わせの存在または追加を排除するものではないと、さらに理解されたい。様々な実施形態の例示的な実施形態の前述の詳細な説明では、添付図面(類似の番号が類似要素を表す)に対して参照が行われた。添付図面は、本明細書の一部を形成し、その中で例示として、様々な実施形態が実施される特定の例示的な実施形態が示されている。これらの実施形態は、当業者が実施形態を実施することを可能にするために十分詳細に説明されたが、他の実施形態が使用されてもよく、論理的、機械的、電気的、および他の変更が、様々な実施形態の範囲から逸脱することなく行われ得る。前述の説明において、様々な実施形態の完全な理解を提供するために、多くの具体的詳細が記述された。しかし、様々な実施形態が、これらの具体的詳細がなくても実施され得る。他の例では、周知の回路、構造、および技術が、実施形態を不明確にしないために詳細に示されない。
【0099】
本明細書内で使用される「実施形態」という語の異なる例は、同一実施形態を必ずしも指すものではないが、指していてもよい。本明細書に示されまたは説明される任意のデータおよびデータ構造は、単なる例であり、他の実施形態では、異なるデータの量、データの種類、フィールド、フィールドの数および種類、フィールド名、行の数および種類、レコード、エントリ、またはデータ編成が使用されてもよい。加えて、個々のデータ構造が必要なくてもよいように、任意のデータが、ロジックと組み合わされ得る。したがって、前述の詳細な説明は、限定的な意味に取られるべきではない。
【0100】
本開示の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示された実施形態に限定することを意図するものではない。多くの修正および変形が、説明された実施形態の範囲および思想から逸脱することなく当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、実際の用途、もしくは市場で見出される技術に対する技術的改善を最もよく説明するため、または本明細書で開示された実施形態を他の当業者が理解可能にするために、選択された。
【0101】
本開示は、特定の実施形態に関して説明されているが、それらの改変および修正が当業者には明らかになると予想される。したがって、以下の特許請求の範囲は、本開示の真の思想および範囲内にあるものとして、そのような改変および修正の全てを包含すると解釈されることを意図するものである。
【0102】
ここで、本開示の様々な態様をさらに明確化するために、いくつかの実施例が提供される。
【0103】
実施例1:データベース・システムのデータへの条件付きアクセスのためのコンピュータ実施方法であって、データベース・システムが、レコードを含み、各レコードが、属性のセットを含み、データベース・システムが、データベース・ビューをさらに含み、各データベース・ビューが、属性のセットのサブセットを表し、方法が、データ目的オブジェクトを記憶することであって、各データ目的オブジェクトが、属性のセットのうちの属性のサブセットおよび上記属性のサブセットを処理する処理目的を示す、記憶することと、上記データ処理目的の属性のサブセットに認可済みアクセスする1つまたは複数のエンティティにデータ処理目的の各データ処理目的を関連付けることと、データ処理目的の特定の処理目的およびデータベース・ビューの選択されたビューについてのデータのリクエストを受信することと、特定の処理目的を示すデータ目的オブジェクトを検索することと、選択されたビューによって表される属性のサブセットを、検索されたデータ目的オブジェクトにおいて示される属性のサブセットと比較することと、選択されたビューによって表される属性のサブセットが、検索されたデータ目的オブジェクトにおいて示される属性のサブセットのうちのサブセットであると判定することに応答して、特定の処理目的に関連付けられたエンティティについての選択されたビューにおいて表される属性のサブセットの値を提供することと、を含む、方法。
【0104】
実施例2:データ目的オブジェクトが、順序に従ってビットを属性のセットにそれぞれマッピングする第1のビットマップを含み、第1のビットマップが、属性のサブセットを示すように構成され、データベース・ビューが、上記順序に従ってビットを属性のセットにマッピングする第2のビットマップを含み、第2のビットマップが、データベース・ビューの属性のサブセットを示すように構成され、比較することが、第1のビットマップおよび第2のビットマップを使用して行われる、実施例1の限定。
【0105】
実施例3:データ目的オブジェクトが、公開鍵をさらに含み、受信したリクエストが、署名をさらに示し、方法が、検索されたデータ目的オブジェクトの公開鍵を使用して署名を検証することであって、比較することが、署名の妥当性が確認される場合にのみ行われる、検証することをさらに含む、実施例1または2のいずれかの限定。
【0106】
実施例4.上記処理目的の属性のサブセットに認可済みアクセスする1つまたは複数のエンティティにデータ処理目的の各処理目的を関連付けることが、合意テーブルを生成することを含み、合意テーブルの各エントリが、エンティティのエンティティ識別子(ID)および関連付けられた処理目的を含み、属性のサブセットの値を提供することが、特定の処理目的に関連付けられたエンティティについての属性のサブセットの値のみを含むように、合意テーブルを選択されたビューと結合することを含む、実施例1-3のいずれかの限定。
【0107】
実施例5.データ目的オブジェクトが、属性のサブセットを含む第1のリストを含み、データベース・ビューが、データベース・ビューの属性のサブセットを含む第2のリストを含み、比較することが、第1のリストおよび第2のリストを使用して行われる、実施例1-4のいずれかの限定。
【0108】
実施例6.プロシージャを提供することであって、プロシージャが、特定の処理目的および選択されたビューを入力として受信するように構成され、検索すること、比較すること、および提供することを行うように構成される、提供することと、アプリケーション・プログラミング・インターフェース(API)を介してプロシージャを実行することであって、リクエストの受信が、プロシージャを呼び出すAPIの関数によって行われる、実行することと、をさらに含む、実施例1-5のいずれかの限定。
【0109】
実施例7.第三者システムに処理目的を登録するためのリクエストを第三者システムから受信することと、データ目的オブジェクトを生成することであって、各データ目的オブジェクトが、それぞれの第三者システムをさらに示す、生成することと、をさらに含む、実施例1-6のいずれかの限定。
【0110】
実施例8.1つまたは複数のプロセッサと、1つまたは複数のプロセッサにより実行されると、プロセッサに、実施例1-7のいずれかによる方法を実行させるように構成されるプログラム命令をまとめて記憶する、1つまたは複数のコンピュータ可読記憶媒体と、を備える、システム。
【0111】
実施例9.1つまたは複数のコンピュータ可読記憶媒体と、1つまたは複数のコンピュータ可読記憶媒体上にまとめて記憶されたプログラム命令と、を含むコンピュータ・プログラム製品であって、プログラム命令が、1つまたは複数のプロセッサに実施例1-7のいずれか1つによる方法を実行させるように構成される命令を含む、コンピュータ・プログラム製品。
【手続補正書】
【提出日】2024-06-11
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
データベース・システムのデータへの条件付きアクセスのための
コンピュータの情報処理による方法であって、前記データベース・システムが、レコードを含み、各レコードが、属性のセットを含み、前記データベース・システムが、データベース・ビューを含み、各データベース・ビューが、前記属性のセットのサブセットを表し、前記方法が、
データ目的オブジェクトを記憶することであって、各データ目的オブジェクトが、前記属性のセットのうちの属性のサブセットおよび前記属性のサブセットを処理する処理目的を示す、前記記憶することと、
前記処理目的の前記属性のサブセットに認可済みアクセスする1つまたは複数のエンティティに各処理目的を関連付けることと、
特定の処理目的および前記データベース・ビューの選択されたビューについてのデータに対するリクエストを受信することと、
前記特定の処理目的を示すデータ目的オブジェクトを検索することと、
前記選択されたビューによって表される前記属性のサブセットを、検索された前記データ目的オブジェクトにおいて示される前記属性の前記サブセットと比較することと、
前記選択されたビューによって表される前記属性のサブセットが、前記検索されたデータ目的オブジェクトにおいて示される前記属性の前記サブセットのうちのサブセットであると判定することに応答して、前記特定の処理目的に関連付けられたエンティティについての前記選択されたビューにおいて表される前記属性のサブセットの値を提供することと、
を含む、
方法。
【請求項2】
前記データ目的オブジェクトが、順序に従ってビットを前記属性のセットにそれぞれマッピングする第1のビットマップを含み、前記第1のビットマップが、前記属性のサブセットを示すように構成され、前記データベース・ビューが、前記順序に従ってビットを前記属性のセットにマッピングする第2のビットマップを含み、前記第2のビットマップが、前記データベース・ビューの前記属性のサブセットを示すように構成され、前記比較することが、前記第1および前記第2を使用して行われる、請求項1に記載の方法。
【請求項3】
前記データ目的オブジェクトが、公開鍵をさらに含み、受信した前記リクエストが、署名をさらに含み、前記方法が、
前記検索されたデータ目的オブジェクトの前記公開鍵を使用して前記署名を検証することであって、前記比較することが、前記署名の妥当性が確認される場合にのみ行われる、前記検証することをさらに含む、請求項1
に記載の方法。
【請求項4】
前記処理目的の前記属性のサブセットに認可済みアクセスする1つまたは複数のエンティティに各処理目的を関連付けることが、合意テーブルを生成することを含み、前記合意テーブルの各エントリが、エンティティのエンティティ識別子(ID)および関連付けられた処理目的を含み、前記属性のサブセットの値を提供することが、前記特定の処理目的に関連付けられた前記エンティティについての前記属性のサブセットの前記値のみを含むように、前記合意テーブルを前記選択されたビューと結合することを含む、請求項1
に記載の方法。
【請求項5】
前記データ目的オブジェクトが、前記属性のサブセットを含む第1のリストを含み、前記データベース・ビューが、前記データベース・ビューの前記属性のサブセットを含む第2のリストを含み、前記比較することが、前記第1のリストおよび前記第2のリストを使用して行われる、請求項1
に記載の方法。
【請求項6】
プロシージャを提供することであって、前記プロシージャが、前記特定の処理目的および前記選択されたビューを入力として受信するように構成され、前記検索すること、前記比較すること、および前記提供することを行うように構成される、前記提供することと、
アプリケーション・プログラミング・インターフェース(API)を介して前記プロシージャを実行することであって、前記リクエストの前記受信が、前記プロシージャを呼び出す前記APIの関数によって行われる、前記実行することと、をさらに含む、請求項1
に記載の方法。
【請求項7】
システムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサにより実行されると、前記1つまたは複数のプロセッサに、データベース・システムのデータへの条件付きアクセスのための方法を実行させるように構成されるプログラム命令をまとめて記憶する、1つまたは複数のコンピュータ可読記憶媒体であって、前記データベース・システムが、レコードを含み、各レコードが、属性のセットを含み、前記データベース・システムが、データベース・ビューを含み、各データベース・ビューが、前記属性のセットのサブセットを表し、前記方法が、
データ目的オブジェクトを記憶することであって、各データ目的オブジェクトが、前記属性のセットのうちの属性のサブセットおよび前記属性のサブセットを処理する処理目的を示す、前記記憶することと、
前記処理目的の前記属性のサブセットに認可済みアクセスする1つまたは複数のエンティティに各処理目的を関連付けることと、
特定の処理目的および前記データベース・ビューの選択されたビューについてのデータに対するリクエストを受信すること、
前記特定の処理目的を示すデータ目的オブジェクトを検索することと、
前記選択されたビューによって表される前記属性のサブセットを、検索された前記データ目的オブジェクトにおいて示される前記属性の前記サブセットと比較すること、ならびに
前記選択されたビューによって表される前記属性のサブセットが、前記検索されたデータ目的オブジェクトにおいて示される前記属性の前記サブセットのうちのサブセットであると判定することに応答して、前記特定の処理目的に関連付けられたエンティティについての前記選択されたビューにおいて表される前記属性のサブセットの値を提供することと、を含む、前記1つまたは複数のコンピュータ可読記憶媒体と、
を備える、システム。
【請求項8】
前記データ目的オブジェクトが、順序に従ってビットを前記属性のセットにそれぞれマッピングする第1のビットマップを含み、前記第1のビットマップが、前記属性のサブセットを示すように構成され、前記データベース・ビューが、前記順序に従ってビットを前記属性のセットにマッピングする第2のビットマップを含み、前記第2のビットマップが、前記データベース・ビューの前記属性のサブセットを示すように構成され、前記比較することが、前記第1および前記第2を使用して行われる、請求項7に記載のシステム。
【請求項9】
前記データ目的オブジェクトが、公開鍵をさらに含み、受信した前記リクエストが、署名をさらに含み、前記方法が、
前記検索されたデータ目的オブジェクトの前記公開鍵を使用して前記署名を検証することであって、前記比較することが、前記署名の妥当性が確認される場合にのみ行われる、前記検証することをさらに含む、請求項7
に記載のシステム。
【請求項10】
前記処理目的の前記属性のサブセットに認可済みアクセスする1つまたは複数のエンティティに各処理目的を関連付けることが、合意テーブルを生成することを含み、前記合意テーブルの各エントリが、エンティティのエンティティ識別子(ID)および関連付けられた処理目的を含み、前記属性のサブセットの値を提供することが、前記特定の処理目的に関連付けられた前記エンティティについての前記属性のサブセットの前記値のみを含むように、前記合意テーブルを前記選択されたビューと結合することを含む、請求項7
に記載のシステム。
【請求項11】
前記データ目的オブジェクトが、前記属性のサブセットを含む第1のリストを含み、前記データベース・ビューが、前記データベース・ビューの前記属性のサブセットを含む第2のリストを含み、前記比較することが、前記第1のリストおよび前記第2のリストを使用して行われる、請求項7
に記載のシステム。
【請求項12】
前記1つまたは複数のプロセッサによって実行される前記方法が、
プロシージャを提供することであって、前記プロシージャが、前記特定の処理目的および前記選択されたビューを入力として受信するように構成され、前記検索すること、前記比較すること、および前記提供することを行うように構成される、前記提供することと、
アプリケーション・プログラミング・インターフェース(API)を介して前記プロシージャを実行することであって、前記リクエストの前記受信が、前記プロシージャを呼び出す前記APIの関数によって行われる、前記実行することと、をさらに含む、請求項7
に記載のシステム。
【請求項13】
前記データ目的オブジェクトが、前記データベース・システムからリモートで記憶される、請求項7
に記載のシステム。
【請求項14】
請求項1~7の何れか1項に記載の方法を、コンピュータに実行させる、コンピュータ・プログラム。
【請求項15】
請求項14に記載の前記コンピュータ・プログラムを、1つまたは複数のコンピュータ可読記憶媒体に記憶した、記憶媒体。
【国際調査報告】