(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6814881
(24)【登録日】2020年12月23日
(45)【発行日】2021年1月20日
(54)【発明の名称】ユーザデータへのアクセスの提供
(51)【国際特許分類】
G06F 21/62 20130101AFI20210107BHJP
G06F 13/00 20060101ALI20210107BHJP
G06Q 50/10 20120101ALI20210107BHJP
【FI】
G06F21/62 345
G06F13/00 540A
G06Q50/10
【請求項の数】20
【全頁数】15
(21)【出願番号】特願2019-516633(P2019-516633)
(86)(22)【出願日】2017年10月31日
(65)【公表番号】特表2019-532425(P2019-532425A)
(43)【公表日】2019年11月7日
(86)【国際出願番号】IB2017056778
(87)【国際公開番号】WO2018078611
(87)【国際公開日】20180503
【審査請求日】2019年3月27日
(31)【優先権主張番号】15/339,344
(32)【優先日】2016年10月31日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506332063
【氏名又は名称】セールスフォース ドット コム インコーポレイティッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】パスカル,グレゴリー トーマス
(72)【発明者】
【氏名】リカード,スコット サーストン
(72)【発明者】
【氏名】フレイク,ゲイリー ウィリアム
【審査官】
田名網 忠雄
(56)【参考文献】
【文献】
特開2007−164266(JP,A)
【文献】
特開2016−045934(JP,A)
【文献】
特開2011−128796(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
G06F 21/10
G06F 21/60−21/88
G06Q 50/00−50/20
(57)【特許請求の範囲】
【請求項1】
ユーザデータへのアクセスを提供するためのコンピュータ実装方法であって、前記方法は、
サービスデータベースシステムのアドミニストレータから、データストレージシステムに記憶されたユーザデータに関する、前記サービスデータベースシステムによって提供される1つ以上のサービスのユーザに関連するリクエストを前記サービスデータベースシステムによって受信することと、
前記サービスデータベースシステムによって、前記アドミニストレータによってリクエストされた前記ユーザデータを特定することと、
前記サービスデータベースシステムによって、前記ユーザデータに対して適用可能なポリシを決定することと、
前記サービスデータベースシステムによって、前記ポリシによって示されたように前記ユーザデータを変換することであり、前記ユーザデータを変換することは、前記ユーザデータと追加のユーザに関連する追加のユーザデータとを統計的集計へ組み合わせることを含み、前記変換されたユーザデータは、前記ユーザデータと前記追加のユーザデータとの間の差を示す、ことと、
前記サービスデータベースシステムによって、前記変換されたユーザデータを前記アドミニストレータに送信することと、
を含む、方法。
【請求項2】
前記ユーザデータを変換することが、前記ユーザデータの異なる表現を生み出すために前記ユーザデータを操作することを含む、請求項1に記載の方法。
【請求項3】
前記サービスデータベースシステムは、前記変換前の前記ユーザデータの復元を可能とする情報を前記アドミニストレータに提供することを禁止されている、請求項1又は2に記載の方法。
【請求項4】
前記ポリシ、又は前記ユーザデータに対して適用可能な、前記ポリシと異なる追加のポリシが、前記情報を提供できないことを示す、請求項3に記載の方法。
【請求項5】
前記ユーザデータを変換することは、前記変換されたユーザデータを生み出すために前記ユーザデータを数学的に操作することを含む、請求項1又は2に記載の方法。
【請求項6】
前記ユーザデータを変換することは、前記変換されたユーザデータを生み出すために、ハッシュ関数を前記ユーザデータに適用することを含む、請求項1、2又は5に記載の方法。
【請求項7】
前記ユーザデータは、追加のユーザに関連する追加のユーザデータに基づいて変換される、請求項1、2又は5に記載の方法。
【請求項8】
前記ユーザデータに適用可能な前記ポリシを決定することは、前記ユーザデータの種類に基づいて、複数のポリシから前記ポリシを選択することを含む、請求項1に記載の方法。
【請求項9】
前記ユーザデータに適用可能な前記ポリシを決定することが、前記ユーザデータに関連する前記ユーザに基づいて、複数のポリシから前記ポリシを選択することを含む、請求項1又は8に記載の方法。
【請求項10】
前記ユーザデータに適用可能な前記ポリシを決定することが、期限が切れていない前記ポリシに関連する有効時間に基づいて、複数のポリシから前記ポリシを選択することを含む、請求項1、8又は9に記載の方法。
【請求項11】
サービスデータベースシステムの1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサにステップを実行させるコンピュータ実行可能命令を記憶する非一時的コンピュータ読取可能記憶媒体であって、
前記ステップは、
前記サービスデータベースシステムのアドミニストレータから、前記サービスデータベースシステムによって提供される1つ以上のサービスのユーザに関連するユーザデータに関するリクエストを前記サービスデータベースシステムによって受信することと、
前記サービスデータベースシステムによって、前記アドミニストレータによってリクエストされた前記ユーザデータを特定することと、
前記サービスデータベースシステムによって、前記ユーザデータに対して適用可能なポリシを決定することと、
前記サービスデータベースシステムによって、前記ポリシによって示されたように前記ユーザデータを変換することであり、前記ユーザデータを変換することは、前記ユーザデータと追加のユーザに関連する追加のユーザデータとを統計的集計へ組み合わせることを含み、前記変換されたユーザデータは、前記ユーザデータと前記追加のユーザデータとの間の差を示す、ことと、
前記サービスデータベースシステムによって、前記変換されたユーザデータを前記アドミニストレータに送信することと、
を含む、コンピュータ読取可能記憶媒体。
【請求項12】
前記ユーザデータを変換することが、前記ユーザデータの異なる表現を生み出すために前記ユーザデータを操作することを含む、請求項11に記載のコンピュータ読取可能記憶媒体。
【請求項13】
前記サービスデータベースシステムは、前記変換前の前記ユーザデータの復元を可能とする情報を前記アドミニストレータに提供することを禁止されている、請求項11又は12に記載のコンピュータ読取可能記憶媒体。
【請求項14】
前記ポリシ、又は前記ユーザデータに対して適用可能な、前記ポリシと異なる追加のポリシが、前記情報を提供できないことを示す、請求項13に記載のコンピュータ読取可能記憶媒体。
【請求項15】
前記ユーザデータを変換することは、前記変換されたユーザデータを生み出すために前記ユーザデータを数学的に操作することを含む、請求項11又は12に記載のコンピュータ読取可能記憶媒体。
【請求項16】
前記ユーザデータを変換することは、前記変換されたユーザデータを生み出すために、ハッシュ関数を前記ユーザデータに適用することを含む、請求項11、12又は15に記載のコンピュータ読取可能記憶媒体。
【請求項17】
前記ユーザデータは、追加のユーザに関連する追加のユーザデータに基づいて変換される、請求項11、12又は15に記載のコンピュータ読取可能記憶媒体。
【請求項18】
前記ユーザデータに適用可能な前記ポリシを決定することは、前記ユーザデータの種類に基づいて、複数のポリシから前記ポリシを選択することを含む、請求項11に記載のコンピュータ読取可能記憶媒体。
【請求項19】
前記ユーザデータに適用可能な前記ポリシを決定することが、前記ユーザデータに関連する前記ユーザに基づいて、複数のポリシから前記ポリシを選択することを含む、請求項11又は18に記載のコンピュータ読取可能記憶媒体。
【請求項20】
前記ユーザデータに適用可能な前記ポリシを決定することが、期限が切れていない前記ポリシに関連する有効時間に基づいて、複数のポリシから前記ポリシを選択することを含む、請求項11又は18に記載のコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
説明する実施形態は、一般にデータベースに関連し、特にユーザのプライバシを保護する方法でユーザデータへのアクセスを提供することに関連する。
【背景技術】
【0002】
事業体(entities)は、ユーザにサービスを提供するためのソフトウェアを開発する(例えば、インターネットを経由して)。ユーザにサービスを提供する一環として、事業体は、自身のユーザのために通常はデータを記憶する。例えば、事業体は、ユーザにクラウドベースサービスを提供する場合、他のユーザ又は同じユーザが後で及び又は別の場所から、そのデータにアクセスできるように、その事業体は、通常、ユーザのためにデータを記憶する。
【0003】
どのようにユーザデータを扱うかに関しては、事業体によってアプローチが異なる。いくつかの事業体は、自身のソフトウェアを改良する目的のためにユーザデータを分析できるようなアプローチを取る。このアプローチは、改良されたソフトウェアを通して改善された体験をユーザが持つことを可能にする一方、いくらかのユーザに取って、彼らのデータが非公開に維持されないので、このアプローチは、受け入れられない。他の事業体は、自身のユーザのプライバシに配慮する一環として、事業体はユーザデータを分析しないという非常に制限的なポリシを持つ。しかしながら、このアプローチでは、自身のソフトウェアを革新し、改良するために必要なデータを事業体が取得することが困難になる。
【発明の概要】
【0004】
本明細書で説明する実施形態は、ユーザのプライバシを保護する方法で、サービスシステムのアドミニストレータ(administrators:管理者)がユーザデータにアクセスする(access user data)ことを可能にする、方法、コンピュータプログラム製品、コンピュータデータベースシステムを提供する。サービスシステムは、オンラインサービスに対するアクセスをユーザに提供する。例えば、サービスシステムは、企業の社員にCRMソフトウェアアプリケーションへのアクセスを提供するウェブベースカスタマリレーショナルマネジメント(CRM)システムであり得る。ユーザにサービスを提供する一環として、サービスシステムは、データストレージシステムに、ユーザによって提供されるデータ及びサービスのインタラクションを介してユーザによって生成されるデータを記憶する。
【0005】
ユーザは、彼らがデータストレージシステムによって記憶するデータにアクセスできる。しかしながら、サービスシステムのアドミニストレータ(administrators)(例えば、開発者)は、彼らがユーザに提供するサービスを向上させる目的でユーザデータにアクセスしたいと望むかも知れない。例えば、サービスシステムがCRMシステムである例を続けると、システムの開発者は、ユーザがどのようにCRMソフトウェアアプリケーションとインタラクトしているかを分析し、アプリケーションの機能性をいかに改善できるかを決定するために、ユーザデータにアクセスしたいと望むかも知れない。サービスシステムは、ユーザのプライバシを保護する方法で、アドミニストレータがユーザデータにアクセスすることを可能にする。
【0006】
ユーザのプライバシを保護するために、サービスシステムは、データストレージシステムに記憶されたユーザデータに対するアドミニストレータからのリクエストを受信したとき、サービスシステムは、アドミニストレータによってリクエストされたデータを特定する。サービスシステムは、また、データに適用されるポリシ(policies)を決定する。決定されたポリシは、ユーザのプライバシを維持するためにデータに対して実行できる変換を示す。サービスシステムは、ポリシによって示されるようにユーザデータを変換し、変換されたユーザデータをアドミニストレータに提供する。
【0007】
例として、アドミニストレータによってリクエストされたデータは、複数のセールスオポチュニティ(sales opportunities:販売機会)に関するデータであると仮定する。セールスオポチュニティのそれぞれは、売上高(sales amount:セールス総額)を含む。適用可能なポリシに基づいて、サービスシステムは、複数のセールスオポチュニティから最も高い売上高を特定し、売上高を複数のオポチュニティからの最も高い売上高で割ることによって、各オポチュニティの売上高を変換する。従って、アドミニストレータは、セールスオポチュニティの特定の額を知ることはない。しかしながら、アドミニストレータは、1つのオポチュニティの額が他のオポチュニティといかに比べられるかを知ることになり、それは、サービスシステムによって提供されるサービスを改善する方法を特定する際に価値があり得る。
【0008】
それ故に、サービスシステムは、あるユーザの情報の特定の詳細を提供しないことによって、ユーザのプライバシを保護することができるが、サービスシステムのサービスを改善するためにアドミニストレータによって使用することができる十分な情報を依然としてアドミニストレータに提供する。この概要で説明した特徴及び利点並びに以下の詳細な説明は、包括的ではない。多くの追加の特徴及び利点は、図面、明細書、及びこれに関する請求項を考慮して、当業者にとって明らかになる。
【図面の簡単な説明】
【0009】
【
図1】1つの実施形態によるサービスシステム環境のブロック図である。
【
図2】1つの実施形態によるトラストモジュールのコンポーネントを説明するブロック図である。
【
図3】1つの実施形態によるユーザデータに適用される変換の例である。
【
図4】1つの実施形態によるアドミニストレータにユーザデータを提供するサービスシステムの動作を説明するフローチャートである。
【
図5】1つの実施形態による
図1の環境において説明される事業体の1つとしての使用に対する典型的なコンピュータシステムの機能的表示を説明するブロック図である。
【0010】
図は、説明のみの目的で様々な実施形態を描写する。以下の検討から、本明細書で説明される構造及び方法の代替の実施形態を本明細書で説明される実施形態の原理から逸脱せずに採用することができことを、当業者は直ちに理解する。
【0011】
図面は、類似の要素を特定するために類似の参照番号を使用する。参照番号の後の文字、例えば「108A」は、その特定の参照番号を持つ要素を具体的に指すテキストを示す。「108」などのように次に続く文字がないテキスト中の参照番号は、参照番号を有する図面において任意の又はすべての要素を指す。
【発明を実施するための形態】
【0012】
図1は、1つの実施形態によるサービスシステム環境100のブロック図である。
図1は、ネットワーク106経由で接続された、サービスシステム(service system)102並びにクライアントデバイス(client devices)104A及び104Bを説明する。各エンティティの選択された数が
図1に示されているが、実施形態は、より多くの又はより少ない各エンティティを持つことができる(例えば、追加のクライアントデバイス104)。
【0013】
サービスシステム102は、ユーザにサービスを提供するコンピュータシステムである。サービスシステム102は、サービスデータベースシステム102とも呼ばれる。1つの実施形態において、サービスシステム102は、CRMサービスをユーザに提供するウェブベースカスタマリレーションシップマネジメント(CRM:customer relationship management)システムを実装する。例えば、1つの実施形態において、オンラインシステム100は、アプリケーションサービスを含み、それは、CRMソフトウェアプリケーションを実装且つ実行すると同様に関連するデータ、コード、フォーム、ウェブページ及び他の情報をクライアントデバイス104に及びクライアントデバイス104から提供し、データ、オブジェクト、ウェブページコンテンツを保存且つ読み出す。他の実施形態において、サービスシステム102は、他のサービス又は追加のサービスを提供し、これらのサービスは、ソーシャルネットワーキング、ショッピング、オンラインサーチ、広告、データストレージ、ニュース配信、支払い処理、バンキングなどの種類のサービスの1つ以上を含んでも良い。
【0014】
サービスシステム102は、データストレージシステム(data storage system)108及びトラストモジュール(trust module)110を含む。データストレージシステム108は、記憶のためにユーザによってサービスシステム102に提供されたデータ、及びサービスシステム102とのインタラクションを通じてユーザによって生成されたデータを記憶する。データストレージシステム108によって記憶されるデータは、本明細書で「ユーザデータ(user data)」と一般に呼んでも良い。
【0015】
1つの実施形態において、サービスシステム102は、マルチテナントシステム(a multi-tenant system)及び複数のテナントに関するデータを記憶するデータストレージシステム108である。各テナントは、本明細書で説明されるように企業(enterprise)であり、データストレージシステム108にデータを記憶するユーザは、その企業の1つに関連する(例えば、企業の社員、コントラクタ、他の代表者など)。例えば、1つのテナントは、各セールスパーソンが彼らのセールスプロセスを管理するためにサービスシステム102と通信する営業チーム(sales force)を雇う会社であっても良い。それ故に、ユーザは、データストレージシステム108に、コンタクト、リードデータ、セールスオポチュニティ、カスタマフォローアップデータ、パフォーマンスデータ、ゴール、プログレスデータ、カレンダエントリ、タスク、ドキュメント、ソーシャルインフォメーションなどのユーザ個人のセールスプロセスに適用可能なものすべてを記憶する。
【0016】
トラストモジュール110は、データストレージシステム108に記憶されたユーザデータに対するアドミニストレータによるリクエストを処理する。アドミニストレータは、データを分析し、サービスシステム102によって提供されるサービスを向上するための方法を特定する目的で、サービスシステム102からのユーザデータをリクエストしても良い。例として、アドミニストレータは、開発者であっても良く、開発者は、データにおける傾向を特定し、サービスシステム102を通してユーザによって使用されるソフトウェアの機能性を改善するために、ユーザデータをリクエストしても良い。
【0017】
トラストモジュール110は、アドミニストレータにユーザデータへのアクセスを許可し、一方、同時に、ユーザのプライバシに配慮することを確実にする。トラストモジュール110は、複数のポリシを維持する。各ポリシは、ポリシが適用される特定のデータ及びデータに適用される1つ以上の変換を示す。トラストモジュール110は、データストレージシステム108に記憶されたユーザデータに対してアドミニストレータによるリクエストを受信し、トラストモジュール110は、リクエストされたユーザデータを特定する。トラストモジュール110は、どのポリシがユーザデータに適用されるか決定する。トラストモジュール110は、適用可能なポリシによって示された変換をユーザデータに適用する。適用可能なポリシの変換がユーザデータに適用された後、トラストモジュール110は、変換されたユーザデータをユーザのクライアントデバイス104に送信する。さらに、トラストモジュール110の機能性に関する詳細は、
図2を参照して以下で提供される。
【0018】
クライアントデバイス104は、サービスシステム102と通信するために、ユーザ又はアドミニストレータによって使用されるデバイスである。クライアントデバイス104は、例えば、デスクトップコンピュータ、ラップトップ、スマートフォン、タブレットコンピュータ、又はパーソナルデジタルアシスタント(PDF)でも良い。ユーザは、サービスシステム102によって提供されるサービスを使用するために、クライアントデバイス104を介してサービスシステム102と通信する。サービスシステム102が企業に関するデータを記憶する実施形態において、ユーザは、例えば、企業の社員、コントラクタ、又はいずれかの代表者でも良い。例えば、サービスシステム102によって提供されるサービスを改善する目的のために、ユーザデータを収集するためにクライアントデバイス104を通してサービスシステム102と、アドミニストレータは通信する。アドミニストレータは、サービスシステム102を操作する事業体のために機能を実行する権利を有する。アドミニストレータは、例えば、ユーザにサービスを提供するためにサービスシステム102によって使用されるソフトウェアを修正する権限を持つ開発者でも良い。
【0019】
ネットワーク106は、サービスシステム102とクライアントデバイス104との間の通信経路を表現する。1つの実施形態において、ネットワーク106は、インターネットであり、標準の通信技術及び/又はプロトコルを使用する。それ故に、ネットワーク106は、イーサネット(登録商標)、802.11、WiMAX(worldwide interoperability for microwave access)、3G、ロングタームエボリューション(LTE)、デジタル加入者回線(DSL)、非同期転送モード(ATM)、インフィニバンド(InfiniBand)、PCI Express Advanced Switchingなどの技術を使用するリンク(links)を含むことができる。同様に、ネットワーク106上で使用されるネットワーキングプロトコルは、マルチプロトコルラベルスイッチング(MPLS)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキストトランスポートプロトコル(HTTP)、シンプルメールトランスファープロトコル(SMTP)、ファイルトランスファープロトコル(FTP)などを含んでも良い。
【0020】
図1は、単一のネットワーク106を説明するが、ネットワーク106は、複数のネットワークを備えても良い。例えば、アドミニストレータのクライアントデバイス104は、プリベートな企業ネットワークを介して、サービスシステム102と通信しても良い。一方、ユーザは、公衆のネットワークを介してサービスシステム102と通信する。
【0021】
ネットワーク106を介して交換されるデータは、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)などを含む技術及び/又はフォーマットを使用して表現できる。加えて、リンクのすべて又は一部は、セキュアソケットレイア(SSL)、トランスポートレイアセキュリティ(TLS)、バーチャルプライベートネットワーク(VPNs)、インターネットプロトコルセキュリティ(IPsec)など従来からの暗号化技術を使用して暗号化できる。別の実施形態において、事業体は、上述のものの代わりに又は加えて、カスタムの及び/又は専用のデータ通信技術を使用することができる。
【0022】
図2は、1つの実施形態によるトラストモジュール110のコンポーネントを説明するブロック図である。トラストモジュール110は、ポリシストレージ(policy storage)202、リクエストモジュール(request module)204、及び変換モジュール(transformation module)206を含む。当業者は、他の実施形態がここに説明されたものとは異なる及び/又は別のコンポーネントを持つこともでき、機能性は、異なる方法で、コンポーネント間で分配することができることを理解する。
【0023】
ポリシストレージ202は、アドミニストレータに対して提供される前にユーザデータに適用されるポリシを記憶する。ポリシは、ポリシが適用される特定のユーザデータ及びそのデータに適用される1つ以上の変換を示す情報である。例えば、ポリシは、ユーザの氏名、ユーザの年齢、セールスオポチュニティの総額、ソーシャルセキュリティナンバー、電話番号、郵送先住所、eメールアドレス、特定のフォーマットのデータなどの特定の種類のデータにポリシが適用されることを示しても良い。
【0024】
ポリシは、特定のユーザに関連するユーザデータにそのポリシが適用されることを示しても良い。例えば、ポリシは、ポリシが適用される特定のユーザの識別子を含んでも良く、又は、特定のグループ又は企業に関連するユーザにポリシが適用されることを示しても良い。ポリシは、そのポリシが適用できるときを示すタイミング情報と関連しても良い。例えば、特定の月の間、又は日の特定の時間帯(specific times of day)の間などの特定の期間の間のみ適用可能であることをポリシは示しても良い。別の例としては、ポリシは有効期限(expiration time)と関連しても良く、及びポリシは有効期限が切れない限り適用可能である。しかしながら、一旦ポリシの有効期限が切れた場合、ポリシはもはや、ユーザデータには適用されない。
【0025】
ポリシは、さらに、あるユーザデータにアクセスすることを許可されたアドミニストレータを示しても良い。例えば、ポリシは、あるグループの一部である又はある権限を持つアドミニストレータによってのみアクセス可能であるあるユーザデータを示しても良い。加えて、ポリシは、アドミニストレータに対して提供されないあるユーザデータを示しても良い。例えば、トラストモジュール110が、データをユーザのプライバシを保護する表現に変換する前は、アドミニストレータにユーザデータのオリジナルのバージョンの復元を許すので、ポリシはあるユーザデータが提供されないことを示しても良い。
【0026】
ポリシによって示された変換は、データの異なる表現を生み出すためにユーザデータがどのように操作されるかを説明する。ユーザデータの操作は、データに関連するユーザが、彼又は彼女のプライバシを維持することを可能にする。ユーザデータの変換は、ハッシュ関数(例えば、SHA―256)をユーザデータに適用することを含んでも良い。例えば、ポリシは、一方向性ハッシュ関数がソーシャルセキュリティナンバーに適用されることを示しても良い。ソーシャルセキュリティナンバーは、ハッシュ関数によって返されるハッシュ値で置き換えられる。ユーザデータの変換は、また、データの数学的な操作を含んでも良く、追加のユーザデータに関与して(involve)も良い。例えば、ユーザの年齢に関して、グループの複数のユーザの平均年齢が決定され、ユーザの年齢が、ユーザの年齢と平均年齢との間の差で置換されることをポリシが示しても良い。
【0027】
変換があるデータに対して実行されないことを、ポリシがさらに示しても良い。例えば、前の例で説明したようにユーザの年齢が変換されることをポリシが示しても良いが、ユーザを特定する乱数に対しては変換は実行されなくて良い。
【0028】
サービスシステム102が企業に対するデータを記憶する実施形態において、ポリシストレージ202に記憶されるポリシは、企業とサービスシステム102を稼働する事業体との間で合意される。例として、事業体の代表者は、サービスシステム102によって提供されるサービスを改善する目的で、ユーザデータにアクセスするための継続的な許可を有するアドミニストレータに関して、企業の代表者と通信しても良い。代表者は、アドミニストレータによってどのユーザデータにアクセスできるか、及びアドミニストレータによってアクセスされる前にどのようにデータを変換するかについて合意する。次に、代表によって何が合意されたかを説明するポリシをポリシストレージ202に記憶する。
【0029】
企業に関するデータをサービスシステム102が記憶する典型的な環境において、アドミニストレータは、ユーザデータにアクセスしたいときに毎回その企業からの許可をリクエストしなければならない。許可をリクエストする処理は、長い期間掛かり得る。しかしながら、企業によって合意されたポリシを持つことによって、アドミニストレータは、毎回企業からの許可をリクエストする必要なしにユーザデータにアクセスることができる。さらに、ポリシに基づいて、トラストモジュール110は、企業に取って受け入れ可能な方法でアドミニストレータがユーザデータにアクセスすることを保証する。
【0030】
リクエストモジュール204は、データストレージシステム108に記憶されたユーザデータに対するアドミニストレータによるリクエストを処理する。1つの実施形態において、アドミニストレータから受信されたユーザデータに対するリクエストは、アドミニストレータが興味を持つユーザデータを特定するための1つ以上のパラメータを含むクエリである。例えば、リクエストは、企業に関連するユーザの先月にクローズされたセールスオポチュニティに関するものであっても良い。
【0031】
1つの実施形態において、クライアントデバイス104を通してアドミニストレータからのユーザデータに対するリクエストを、リクエストモジュール204が受信したとき、リクエストモジュール204は、ユーザデータへのアクセスが許可されていると、ユーザに権限が与えられているか否かを決定する。1つの実施形態において、リクエストモジュール204は、データストレージシステム108に記憶されたユーザデータへのアクセスが許可されたアドミニストレータの認証情報を記憶する(例えば、ユーザの氏名及びパスワード)。アドミニストレータが認証されなかった場合、リクエストモジュール204は、アドミニストレータのクライアントデバイス104と通信し、ユーザに彼又は彼女の認証情報を提供するようにリクエストする。アドミニストレータが認証情報を提供したとき、リクエストモジュール204は、提供された認証情報がリクエストモジュール204によって記憶されている認証情報と一致することを検証する。
【0032】
アドミニストレータからのユーザデータに対するリクエストに対して、リクエストモジュール204は、データストレージシステム108と通信し、アドミニストレータによってリクエストされたユーザデータを特定する。1つの実施形態において、通信は、リクエストモジュール204がユーザデータに対するリクエストをデータストレージシステム108に転送することと、リクエストモジュール204がリクエストに基づいて特定されたユーザデータをデータストレージシステム108から受信することを含む。リクエストモジュール204は、データストレージシステム108から受信したユーザデータを変換モジュール206に提供することによって、変換モジュール206は、アドミニストレータに提供する前に必要などんな変換もデータに適用することができる。
【0033】
変換モジュール206は、ポリシストレージ202に記憶されたポリシによってユーザデータを変換する。データストレージシステム108に記憶されたユーザデータは、アドミニストレータからのリクエストに基づいて特定され、変換モジュール206は、ポリシストレージ202に記憶されたどのポリシがユーザデータに適用されるかを決定する。変換モジュール206は、以下のファクタのうちの1つ以上に基づいてポリシストレージ202に記憶された複数のポリシから適用されるポリシを選択する:データに関連するユーザ(例えば、データを作成したユーザ又はデータへの権限を持つユーザ)、データの種類、タイミング情報、及びユーザデータをリクエストしたアドミニストレータ。
【0034】
ユーザデータに適用されるポリシストレージ202からの各ポリシに対して、変換モジュール206は、ポリシによって示されたユーザデータ上で変換を実行する。変換の実行において、変換モジュール206は、データストレージシステム108から追加のデータを読み出しても良い。例えば、ユーザの年齢が、ユーザのグループの平均年齢に基づいて変換される場合、変換モジュール206は、データストレージシステム108へアクセスし、グループのユーザの年齢を特定し、次に、平均を決定しても良い。変換モジュール206は、変換されたユーザデータを、ユーザデータをリクエストしたアドミニストレータのクライアントデバイス104に送信する。
【0035】
1つの実施形態において、変換モジュール206は、アドミニストレータがユーザデータにアクセスしたことを追跡するレコードを維持する。変換モジュール206がアドミニストレータにユーザデータを提供する度に、変換モジュール206は、データへのアドミニストレータのアクセスを説明するレコードに情報を追加する。レコードに追加される情報は、以下のうちの1つ以上を含んでも良い:データが提供されたアドミニストレータ、提供されたユーザデータの表示、いつデータが提供されたか、及びユーザデータに適用されたポリシストレージ202からのポリシ。
【0036】
図3は、1つの実施形態によるユーザデータに適用される変換の例を説明する。この例の目的のため、アドミニストレータからのリクエストに基づいて、ユーザデータは、レコード302A、302B、及び302Cを含むように特定されると仮定する。レコードは、先月首尾よくクローズしたセールスパーソンのセールスオポチュニティを表現する。レコード302Aは、セールスオポチュニティに対してサービスシステム102によって割り当てられた識別子である識別子(ID)BB1A58Z9を含む。レコード302Aは、ボブ・ジョーンズ(Bob Jones)であるクライアントにおけるコンタクト(Contact)の名前である、及び$20,000,000であるセールスオポチュニティ総額(Amount)も含む。レコード302Bは、識別子(ID)0AAF23C7、コンタクトであるアリス・スミス(Alice Smith)、及び総額(Amount)$25,000,000を含む。レコード302Cは、識別子(ID)9RFK22S1、コンタクト(Contact)であるダン・ミラー(Dan Miller)、及び総額(Amount)$40,000,000を含む。
【0037】
トラストモジュール110は、セールスオポチュニティのコンタクトの名前に適用されるポリシを特定する。一方向性ハッシュ関数をコンタクト名に適用し、レコード内のコンタクト名をハッシュ関数によって返されるハッシュ値で置き換えることによって、セールスオポチュニティのコンタクト名が変換されたことを、ポリシは示す。トラストモジュール110は、セールスオポチュニティの総額に適用される別のポリシを特定する。ポリシは、特定される複数のオポチュニティから最も高い総額を示す。ポリシは、各オポチュニティの総額が、最も高い総額でその総額を割った結果と置き換えられることをさらに示す。
【0038】
図3に見られるように、適用可能なポリシによって示される変換を適用した後、レコード302Aは、レコード304Aに変換され、レコード302Bは、レコード304Bに変換され、レコード302Cは、レコード304Cに変換される。セールスオポチュニティの識別子に適用されるポリシが特定されなかったので、変換されたレコード304の識別子は、オリジナルのレコード302のそれと同じである。
【0039】
さらに、各変換されたレコード304は、コンタクトに対するハッシュ値を含み、ハッシュ値は、対応するオリジナルのレコード302のコンタクトにハッシュ関数を適用した後に出力されるハッシュ値である。それ故に、レコード302Aからのコンタクト、ボブ・ジョーンズは、レコード304AのA32FJCXに変換され、レコード302Bからのコンタクト、アリス・スミスは、レコード304Bの5F9TYCZに変換され、レコード302Cからのコンタクト、ダン・ミラーは、レコード304CのV12CGTSに変換される。
【0040】
各セールスオポチュニティの総額に関して、レコード302Cからの総額$40,000,000は、トラストモジュール110によって最も高い総額として特定された。各変換されたレコード304は、対応するオリジナルのレコード302からの総額を$40,000,000で割った結果を含む。それ故に、レコード302Aからの総額$20,000,000は、レコード304Aの0.5に変換され、レコード302Bからの総額$25,000,000は、レコード304Bの0.625に変換され、レコード302Cからの総額$40,000,000は、レコード304Cの1.0に変換される。
【0041】
トラストモジュール110は、オリジナルのレコード302の代わりにユーザデータをリクエストしたアドミニストレータに変換されたレコード304を提供する。ポリシに基づいて、トラストモジュール110は、アドミニストレータにレコード302のオリジナルのコンタクト名及び総額を決定することを可能にするいかなる情報も提供しない。例えば、アドミニストレータが先月セールスパーソンによってクローズされたセールスオポチュニティの最も高い総額をリクエストした場合、次にアドミニストレータは、その情報に基づいて変換されたレコード304の現実の総額を決定することができるので、アドミニストレータは、その情報をアドミニストレータに提供しない。それ故に、ポリシストレージ202のポリシは、最も高い総額がアドミニストレータに提供できないように示す。
【0042】
図4は、1つの実施形態によるアドミニストレータにユーザデータを提供するサービスシステム102の動作を説明するフローチャートである。当業者であれば、他の実施形態は、
図4のステップを異なる順番で実行できることを理解する。その上、他の実施形態は、本明細書で説明されたものとは別の及び/又は追加のステップを含むことができる。
【0043】
サービスシステム102は、データストレージシステム108に記憶された1人以上のユーザのデータに対するアドミニストレータからのリクエストを受信する(402)。サービスシステム102は、データストレージシステム108に記憶されたリクエストされたユーザデータを特定する(404)。サービスシステム102は、ユーザデータに適用可能な1つ以上のポリシを決定する(406)。
【0044】
サービスシステム102は、ユーザデータに適用可能なポリシに基づいてユーザデータを変換する(408)。サービスシステム102は、変換されたデータをアドミニストレータのクライアントデバイス104に提供する(410)。
【0045】
図5は、実施形態による、
図1の環境100において説明される事業体の1つとして使用される典型的なコンピュータシステムの機能的視点を説明する高レベルブロック図である。チップセット504に接続された少なくとも1つのプロセッサ502が図示されている。メモリ506、ストレージデバイス508、キーボード510、グラフィックスアダプタ512、ポインティングデバイス514、及びネットワークアダプタ516もチップセット504に接続されている。ディスプレイ518は、グラフィックスアダプタ512に接続されている。1つの実施形態において、チップセット504の機能は、メモリコントローラハブ520及びI/Oコントローラハブ522によって提供される。別の実施形態において、メモリ506は、チップセット504の代わりにプロセッサ502に直接接続される。
【0046】
ストレージデバイス508は、ハードドライブ、コンパクトディスクリードオンリメモリ(CD−ROM)、DVD、又は半導体メモリデバイスなどの非一時的コンピュータ読取可能記憶媒体である。メモリ506は、プロセッサ502によって使用される命令及びデータを保持する。ポインティングデバイス514は、マウス、トラックボール、又は別の種類のポインティングデバイスでも良く、コンピュータシステム200へデータを入力するためにキーボード510と組み合わせて使用される。グラフィックスアダプタ512は、ディスプレイ518上に画像及び他の情報を表示する。ネットワークアダプタ516は、コンピュータシステム500をネットワーク106へ接続する。
【0047】
技術的に知られているように、コンピュータ500は、
図5に示されたコンポーネント以外の異なる及び/又は別のコンポーネントを有しても良い。加えて、コンピュータ500は、ある図示されたコンポーネントが不足していても良い。例えば、サービスシステム102として動作するコンピュータシステム500は、キーボード510及びポインティングデバイス514が欠けていても良い。その上、ストレージデバイス508は、ローカルであるか及び/又はコンピュータ500からリモートであっても良い(ストレージエリアネットワーク(SAN)内に具体化されるような)。
【0048】
コンピュータ500は、本明細書で説明される機能性を提供するためにコンピュータモジュールを実行するように適合されている。本明細書で使用されるとき、用語「モジュール(module)」は、特定される機能を提供するためのコンピュータプログラム命令及び他のロジックを指す。モジュールは、ハードウェア、ファームウェア、及び/又はソフトウェアで実装することができる。モジュールは、1つ以上のプロセスを含み、及び/又はプロセスの一部のみによって提供することができる。モジュールは、典型的には、ストレージデバイス508に記憶され、メモリ506にロードされ、プロセッサ502によって実行される。
【0049】
図1の事業体によって使用されるコンピュータシステム500の種類は、事業体によって使用される実施形態及び処理能力に依存して変化することができる。例えば、クライアントデバイス104は、限られた処理能力と小さいディスプレイ518を持つモバイルフォンでも良く、ポインティングデバイス514が欠けていても良い。サービスシステム102は、対照的に、本明細書で説明される機能性を提供するために一緒に動作する複数のブレードサーバを備えても良い。
【0050】
コンポーネントの特定の名前、用語の大文字化、属性、データ構造、又は他のプログラミング、又は構造上の態様は、必須でも重要でもなく、説明された実施形態に実装できる機構は、異なる名前、フォーマット、又はプロトコルを持っても良い。さらに、システムは、説明したように、ハードウェア及びソフトウェアの組み合わせを経由して、又は完全にハードウェア要素として、実装しても良い。また、本明細書で説明される様々なシステムコンポーネント間の機能性の特定の区分は、単なる例であり、必須ではなく、単一のシステムコンポーネントによって実行される機能は、代わりに、複数のコンポーネントによって実行することができ、複数のコンポーネントで実行する機能は、代わりに、単一のコンポーネントによって実行することができる。
【0051】
上述の説明のいくつかの部分は、情報における操作のアルゴリズム及び記号表現に関して特徴を提示する。これらのアルゴリズムの説明及び表現は、データ処理分野の当業者が自分の仕事の内容を他の当業者に最も効果的に伝えるために使用する手段である。これらの動作は、機能的に又は論理的に説明したが、コンピュータプログラムによって実施されると理解される。さらに、一般性を失うことなく、これらの動作の構成をモジュール又は機能名で呼ぶことも時々便利であることが証明されている。
【0052】
上述の説明から明らかなように特に明記しない限り、説明全体を通して、「処理(processing)」又は「コンピューティング(computing)」「計算(calculating)」又は「決定(determining)」又は「表示(displaying)」などの用語を利用する議論は、コンピュータシステムのメモリ又はレジスタ又は他のそのような情報記憶装置、伝送装置又は表示装置内の物理的(電子)量として表現されるデータを操作及び変換する、コンピュータシステム又は同様の電子計算装置の動作及びプロセスを指すことを理解されたい。
【0053】
本明細書に記載されたある実施形態は、アルゴリズムの形式で説明されたプロセスステップ及び命令を含む。実施形態のプロセスステップ及び命令は、ソフトウェア、ファームウェア、又はハードウェアで具体化することができ、ソフトウェアで具体化されたとき、ダウンロードして、リアルタイムネットワークオペレーティングシステムによって使用される色々なプラットフォーム上に常駐して、動作することができることに留意されたい。
【0054】
説明された実施形態は、また、本明細書で動作を実行するための装置に関連する。装置は、要求される目的のために特別に構成されてもよく、又はコンピュータによってアクセスすることができるコンピュータ読取可能媒体に記憶されたコンピュータプログラムによって選択的に起動又は再構成される汎用コンピュータを含んでもよい。フロッピーディスク、光ディスク、CD‐ROM、光磁気ディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光学カード、特定用途向け集積回路(ASIC)、又は電子命令を記憶するのに適した任意の種類の媒体であり、それぞれコンピュータシステムバスに接続されたものなどの非一時的コンピュータ読取可能記憶媒体に、そのようなコンピュータプログラムは、記憶されても良い。さらに、本明細書で言及されるコンピュータは、単一のプロセッサを含み得、又は、計算能力を高めるために複数のプロセッサ設計を採用するアーキテクチャであり得る。
【0055】
本明細書に提示されたアルゴリズム及び動作は、いかなる特定のコンピュータ又は他の装置にも本質的に関連していない。様々な汎用システムを本明細書の教示によるプログラムと共に使用することもでき、又は必要な方法ステップを実行するためにより専門化した装置を構成することが便利であることが分かるかも知れない。様々なこれらのシステムに必要な構造は、均等の変形と共に当業者には明らかになる。さらに、本実施形態は、特定のプログラミング言語を参照して説明されていない。様々なプログラミング言語が本明細書に記載の実施形態の教示を実施するために使用することができることが理解される。
【0056】
実施形態は、多数のトポロジにわたる多種多様なコンピュータネットワークシステムに良く適している。この分野では、大規模ネットワークの構成及び管理は、インターネットなどのネットワークを介して異種のコンピュータ及びストレージデバイスに通信可能に接続されたストレージデバイス及びコンピュータを含む。
【0057】
最後に、本明細書で使用されている言語は、読みやすさ及び説明の目的で主に選択されており、本発明の主題を正確に表現又は境界を定めるために選択されていない場合があることに留意されたい。結果的に、実施形態の開示は、例示的なものであり、制限することを意図しない。