(57)【要約】  サービスシステムは、ユーザにオンラインサービスへのアクセスを提供する。ユーザにサービスを提供する一環として、サービスシステムは、ユーザに関するデータをデータストレージシステムに記憶する。サービスシステムが、データストレージシステムに記憶されているユーザデータに関してシステムのアドミニストレータからのリクエストを受信したとき、サービスシステムは、アドミニストレータによってリクエストされたデータを特定する。サービスシステムは、また、データに適用するポリシを決定する。決定されたポリシは、ユーザのプライバシを保護するためにデータ上で実行できる変換を示す。サービスシステムは、ポリシによって示されたようにユーザデータを変換し、変換されたデータをアドミニストレータに提供する。
2019532425.tif 000002
【特許請求の範囲】
【請求項１】
ユーザデータへのアクセスを提供するためのコンピュータ実装方法であって、前記方法は、
サービスデータベースシステムのアドミニストレータから、データストレージシステムに記憶されたユーザデータに関する、前記サービスデータベースシステムによって提供される１つ以上のサービスのユーザに関連するリクエストを前記サービスデータベースシステムによって受信することと、
前記サービスデータベースシステムによって、前記アドミニストレータによってリクエストされた前記ユーザデータを特定することと、
前記サービスデータベースシステムによって、前記ユーザデータに対して適用可能なポリシを決定することと、
前記サービスデータベースシステムによって、前記ポリシによって示されたように前記ユーザデータを変換することと、
前記サービスデータベースシステムによって、前記変換されたユーザデータを前記アドミニストレータに送信することと、
を含む、方法。
【請求項２】
前記ユーザデータを変換することが、前記ユーザデータの異なる表現を生み出すために前記ユーザデータを操作することを含む、請求項１に記載の方法。
【請求項３】
前記サービスデータベースシステムは、前記変換前に、前記ユーザデータの復元を可能とする情報を前記アドミニストレータに提供することを禁止されている、請求項１又は２に記載の方法。
【請求項４】
前記ポリシ又は追加のポリシは、提供することができない前記情報を示す、請求項３に記載の方法。
【請求項５】
前記ユーザデータを変換することは、前記変換されたユーザデータを生み出すために前記ユーザデータを数学的に操作することを含む、請求項１又は２に記載の方法。
【請求項６】
前記ユーザデータを変換することは、前記変換されたユーザデータを生み出すために、ハッシュ関数を前記ユーザデータに適用することを含む、請求項１、２又は５に記載の方法。
【請求項７】
前記ユーザデータは、追加のユーザに関連する追加のユーザデータに基づいて変換される、請求項１、２又は５に記載の方法。
【請求項８】
前記ユーザデータに適用可能な前記ポリシを決定することは、前記ユーザデータの種類に基づいて、複数のポリシから前記ポリシを選択することを含む、請求項１に記載の方法。
【請求項９】
前記ユーザデータに適用可能な前記ポリシを決定することが、前記ユーザデータに関連する前記ユーザに基づいて、複数のポリシから前記ポリシを選択することを含む、請求項１又は８に記載の方法。
【請求項１０】
前記ユーザデータに適用可能な前記ポリシを決定することが、期限が切れていない前記ポリシに関連する有効時間に基づいて、複数のポリシから前記ポリシを選択することを含む、請求項１、８又は９に記載の方法。
【請求項１１】
１つ以上のプロセッサによって実行されたときに、前記１つ以上のプロセッサにステップを実行させるコンピュータ実行可能命令を記憶する非一時的コンピュータ読取可能記憶媒体であって、
前記ステップは、
サービスデータベースシステムのアドミニストレータから、データストレージシステムに記憶されたユーザデータに関する、前記サービスデータベースシステムによって提供される１つ以上のサービスのユーザに関連するリクエストを前記サービスデータベースシステムによって受信することと、
前記サービスデータベースシステムによって、前記アドミニストレータによってリクエストされた前記ユーザデータを特定することと、
前記サービスデータベースシステムによって、前記ユーザデータに対して適用可能なポリシを決定することと、
前記サービスデータベースシステムによって、前記ポリシによって示されたように前記ユーザデータを変換することと、
前記サービスデータベースシステムによって、前記変換されたユーザデータを前記アドミニストレータに送信することと、
を含む、コンピュータ読取可能記憶媒体。
【請求項１２】
前記ユーザデータを変換することが、前記ユーザデータの別の表現を生み出すために前記ユーザデータを操作することを含む、請求項１１に記載のコンピュータ読取可能記憶媒体。
【請求項１３】
前記サービスデータベースシステムは、前記変換前に、前記ユーザデータの復元を可能とする情報を前記アドミニストレータに提供することを禁止されている、請求項１１又は１２に記載のコンピュータ読取可能記憶媒体。
【請求項１４】
前記ポリシ又は追加のポリシは、提供することができない前記情報を示す、請求項１３に記載のコンピュータ読取可能記憶媒体。
【請求項１５】
前記ユーザデータを変換することは、前記変換されたユーザデータを生み出すために前記ユーザデータを数学的に操作することを含む、請求項１１又は１２に記載のコンピュータ読取可能記憶媒体。
【請求項１６】
前記ユーザデータを変換することは、前記変換されたユーザデータを生み出すために、ハッシュ関数を前記ユーザデータに適用することを含む、請求項１１、１２又は１５に記載のコンピュータ読取可能記憶媒体。
【請求項１７】
前記ユーザデータは、追加のユーザに関連する追加のユーザデータに基づいて変換される、請求項１１、１２又は１５に記載のコンピュータ読取可能記憶媒体。
【請求項１８】
前記ユーザデータに適用可能な前記ポリシを決定することは、前記ユーザデータの種類に基づいて、複数のポリシから前記ポリシを選択することを含む、請求項１１に記載のコンピュータ読取可能記憶媒体。
【請求項１９】
前記ユーザデータに適用可能な前記ポリシを決定することが、前記ユーザデータに関連する前記ユーザに基づいて、複数のポリシから前記ポリシを選択することを含む、請求項１１又は１８に記載のコンピュータ読取可能記憶媒体。
【請求項２０】
前記ユーザデータに適用可能な前記ポリシを決定することが、期限が切れていない前記ポリシに関連する有効時間に基づいて、複数のポリシから前記ポリシを選択することを含む、請求項１１又は１８に記載のコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
説明する実施形態は、一般にデータベースに関連し、特にユーザのプライバシを保護する方法でユーザデータへのアクセスを提供することに関連する。
【背景技術】
【０００２】
事業体（entities）は、ユーザにサービスを提供するためのソフトウェアを開発する（例えば、インターネットを経由して）。ユーザにサービスを提供する一環として、事業体は、自身のユーザのために通常はデータを記憶する。例えば、事業体は、ユーザにクラウドベースサービスを提供する場合、他のユーザ又は同じユーザが後で及び又は別の場所から、そのデータにアクセスできるように、その事業体は、通常、ユーザのためにデータを記憶する。
【０００３】
どのようにユーザデータを扱うかに関しては、事業体によってアプローチが異なる。いくつかの事業体は、自身のソフトウェアを改良する目的のためにユーザデータを分析できるようなアプローチを取る。このアプローチは、改良されたソフトウェアを通して改善された体験をユーザが持つことを可能にする一方、いくらかのユーザに取って、彼らのデータが非公開に維持されないので、このアプローチは、受け入れられない。他の事業体は、自身のユーザのプライバシに配慮する一環として、事業体はユーザデータを分析しないという非常に制限的なポリシを持つ。しかしながら、このアプローチでは、自身のソフトウェアを革新し、改良するために必要なデータを事業体が取得することが困難になる。
【発明の概要】
【０００４】
本明細書で説明する実施形態は、ユーザのプライバシを保護する方法で、サービスシステムのアドミニストレータ（administrators：管理者）がユーザデータにアクセスする（access  user  data）ことを可能にする、方法、コンピュータプログラム製品、コンピュータデータベースシステムを提供する。サービスシステムは、オンラインサービスに対するアクセスをユーザに提供する。例えば、サービスシステムは、企業の社員にＣＲＭソフトウェアアプリケーションへのアクセスを提供するウェブベースカスタマリレーショナルマネジメント（ＣＲＭ）システムであり得る。ユーザにサービスを提供する一環として、サービスシステムは、データストレージシステムに、ユーザによって提供されるデータ及びサービスのインタラクションを介してユーザによって生成されるデータを記憶する。
【０００５】
ユーザは、彼らがデータストレージシステムによって記憶するデータにアクセスできる。しかしながら、サービスシステムのアドミニストレータ（administrators）（例えば、開発者）は、彼らがユーザに提供するサービスを向上させる目的でユーザデータにアクセスしたいと望むかも知れない。例えば、サービスシステムがＣＲＭシステムである例を続けると、システムの開発者は、ユーザがどのようにＣＲＭソフトウェアアプリケーションとインタラクトしているかを分析し、アプリケーションの機能性をいかに改善できるかを決定するために、ユーザデータにアクセスしたいと望むかも知れない。サービスシステムは、ユーザのプライバシを保護する方法で、アドミニストレータがユーザデータにアクセスすることを可能にする。
【０００６】
ユーザのプライバシを保護するために、サービスシステムは、データストレージシステムに記憶されたユーザデータに対するアドミニストレータからのリクエストを受信したとき、サービスシステムは、アドミニストレータによってリクエストされたデータを特定する。サービスシステムは、また、データに適用されるポリシ（policies）を決定する。決定されたポリシは、ユーザのプライバシを維持するためにデータに対して実行できる変換を示す。サービスシステムは、ポリシによって示されるようにユーザデータを変換し、変換されたユーザデータをアドミニストレータに提供する。
【０００７】
例として、アドミニストレータによってリクエストされたデータは、複数のセールスオポチュニティ（sales  opportunities：販売機会）に関するデータであると仮定する。セールスオポチュニティのそれぞれは、売上高（sales  amount：セールス総額）を含む。適用可能なポリシに基づいて、サービスシステムは、複数のセールスオポチュニティから最も高い売上高を特定し、売上高を複数のオポチュニティからの最も高い売上高で割ることによって、各オポチュニティの売上高を変換する。従って、アドミニストレータは、セールスオポチュニティの特定の額を知ることはない。しかしながら、アドミニストレータは、１つのオポチュニティの額が他のオポチュニティといかに比べられるかを知ることになり、それは、サービスシステムによって提供されるサービスを改善する方法を特定する際に価値があり得る。
【０００８】
それ故に、サービスシステムは、あるユーザの情報の特定の詳細を提供しないことによって、ユーザのプライバシを保護することができるが、サービスシステムのサービスを改善するためにアドミニストレータによって使用することができる十分な情報を依然としてアドミニストレータに提供する。この概要で説明した特徴及び利点並びに以下の詳細な説明は、包括的ではない。多くの追加の特徴及び利点は、図面、明細書、及びこれに関する請求項を考慮して、当業者にとって明らかになる。
【図面の簡単な説明】
【０００９】
【図１】１つの実施形態によるサービスシステム環境のブロック図である。
【図２】１つの実施形態によるトラストモジュールのコンポーネントを説明するブロック図である。
【図３】１つの実施形態によるユーザデータに適用される変換の例である。
【図４】１つの実施形態によるアドミニストレータにユーザデータを提供するサービスシステムの動作を説明するフローチャートである。
【図５】１つの実施形態による図１の環境において説明される事業体の１つとしての使用に対する典型的なコンピュータシステムの機能的表示を説明するブロック図である。
【００１０】
図は、説明のみの目的で様々な実施形態を描写する。以下の検討から、本明細書で説明される構造及び方法の代替の実施形態を本明細書で説明される実施形態の原理から逸脱せずに採用することができことを、当業者は直ちに理解する。
【００１１】
図面は、類似の要素を特定するために類似の参照番号を使用する。参照番号の後の文字、例えば「１０８Ａ」は、その特定の参照番号を持つ要素を具体的に指すテキストを示す。「１０８」などのように次に続く文字がないテキスト中の参照番号は、参照番号を有する図面において任意の又はすべての要素を指す。
【発明を実施するための形態】
【００１２】
図１は、１つの実施形態によるサービスシステム環境１００のブロック図である。図１は、ネットワーク１０６経由で接続された、サービスシステム（service  system）１０２並びにクライアントデバイス（client  devices）１０４Ａ及び１０４Ｂを説明する。各エンティティの選択された数が図１に示されているが、実施形態は、より多くの又はより少ない各エンティティを持つことができる（例えば、追加のクライアントデバイス１０４）。
【００１３】
サービスシステム１０２は、ユーザにサービスを提供するコンピュータシステムである。サービスシステム１０２は、サービスデータベースシステム１０２とも呼ばれる。１つの実施形態において、サービスシステム１０２は、ＣＲＭサービスをユーザに提供するウェブベースカスタマリレーションシップマネジメント（ＣＲＭ：customer  relationship  management）システムを実装する。例えば、１つの実施形態において、オンラインシステム１００は、アプリケーションサービスを含み、それは、ＣＲＭソフトウェアプリケーションを実装且つ実行すると同様に関連するデータ、コード、フォーム、ウェブページ及び他の情報をクライアントデバイス１０４に及びクライアントデバイス１０４から提供し、データ、オブジェクト、ウェブページコンテンツを保存且つ読み出す。他の実施形態において、サービスシステム１０２は、他のサービス又は追加のサービスを提供し、これらのサービスは、ソーシャルネットワーキング、ショッピング、オンラインサーチ、広告、データストレージ、ニュース配信、支払い処理、バンキングなどの種類のサービスの１つ以上を含んでも良い。
【００１４】
サービスシステム１０２は、データストレージシステム（data  storage  system）１０８及びトラストモジュール（trust  module）１１０を含む。データストレージシステム１０８は、記憶のためにユーザによってサービスシステム１０２に提供されたデータ、及びサービスシステム１０２とのインタラクションを通じてユーザによって生成されたデータを記憶する。データストレージシステム１０８によって記憶されるデータは、本明細書で「ユーザデータ（user  data）」と一般に呼んでも良い。
【００１５】
１つの実施形態において、サービスシステム１０２は、マルチテナントシステム（a  multi-tenant  system）及び複数のテナントに関するデータを記憶するデータストレージシステム１０８である。各テナントは、本明細書で説明されるように企業（enterprise）であり、データストレージシステム１０８にデータを記憶するユーザは、その企業の１つに関連する（例えば、企業の社員、コントラクタ、他の代表者など）。例えば、１つのテナントは、各セールスパーソンが彼らのセールスプロセスを管理するためにサービスシステム１０２と通信する営業チーム（sales  force）を雇う会社であっても良い。それ故に、ユーザは、データストレージシステム１０８に、コンタクト、リードデータ、セールスオポチュニティ、カスタマフォローアップデータ、パフォーマンスデータ、ゴール、プログレスデータ、カレンダエントリ、タスク、ドキュメント、ソーシャルインフォメーションなどのユーザ個人のセールスプロセスに適用可能なものすべてを記憶する。
【００１６】
トラストモジュール１１０は、データストレージシステム１０８に記憶されたユーザデータに対するアドミニストレータによるリクエストを処理する。アドミニストレータは、データを分析し、サービスシステム１０２によって提供されるサービスを向上するための方法を特定する目的で、サービスシステム１０２からのユーザデータをリクエストしても良い。例として、アドミニストレータは、開発者であっても良く、開発者は、データにおける傾向を特定し、サービスシステム１０２を通してユーザによって使用されるソフトウェアの機能性を改善するために、ユーザデータをリクエストしても良い。
【００１７】
トラストモジュール１１０は、アドミニストレータにユーザデータへのアクセスを許可し、一方、同時に、ユーザのプライバシに配慮することを確実にする。トラストモジュール１１０は、複数のポリシを維持する。各ポリシは、ポリシが適用される特定のデータ及びデータに適用される１つ以上の変換を示す。トラストモジュール１１０は、データストレージシステム１０８に記憶されたユーザデータに対してアドミニストレータによるリクエストを受信し、トラストモジュール１１０は、リクエストされたユーザデータを特定する。トラストモジュール１１０は、どのポリシがユーザデータに適用されるか決定する。トラストモジュール１１０は、適用可能なポリシによって示された変換をユーザデータに適用する。適用可能なポリシの変換がユーザデータに適用された後、トラストモジュール１１０は、変換されたユーザデータをユーザのクライアントデバイス１０４に送信する。さらに、トラストモジュール１１０の機能性に関する詳細は、図２を参照して以下で提供される。
【００１８】
クライアントデバイス１０４は、サービスシステム１０２と通信するために、ユーザ又はアドミニストレータによって使用されるデバイスである。クライアントデバイス１０４は、例えば、デスクトップコンピュータ、ラップトップ、スマートフォン、タブレットコンピュータ、又はパーソナルデジタルアシスタント（ＰＤＦ）でも良い。ユーザは、サービスシステム１０２によって提供されるサービスを使用するために、クライアントデバイス１０４を介してサービスシステム１０２と通信する。サービスシステム１０２が企業に関するデータを記憶する実施形態において、ユーザは、例えば、企業の社員、コントラクタ、又はいずれかの代表者でも良い。例えば、サービスシステム１０２によって提供されるサービスを改善する目的のために、ユーザデータを収集するためにクライアントデバイス１０４を通してサービスシステム１０２と、アドミニストレータは通信する。アドミニストレータは、サービスシステム１０２を操作する事業体のために機能を実行する権利を有する。アドミニストレータは、例えば、ユーザにサービスを提供するためにサービスシステム１０２によって使用されるソフトウェアを修正する権限を持つ開発者でも良い。
【００１９】
ネットワーク１０６は、サービスシステム１０２とクライアントデバイス１０４との間の通信経路を表現する。１つの実施形態において、ネットワーク１０６は、インターネットであり、標準の通信技術及び／又はプロトコルを使用する。それ故に、ネットワーク１０６は、イーサネット（登録商標）、８０２．１１、ＷｉＭＡＸ（worldwide  interoperability  for  microwave  access）、３Ｇ、ロングタームエボリューション（ＬＴＥ）、デジタル加入者回線（ＤＳＬ）、非同期転送モード（ＡＴＭ）、インフィニバンド（InfiniBand）、ＰＣＩ  Ｅｘｐｒｅｓｓ  Ａｄｖａｎｃｅｄ  Ｓｗｉｔｃｈｉｎｇなどの技術を使用するリンク（links）を含むことができる。同様に、ネットワーク１０６上で使用されるネットワーキングプロトコルは、マルチプロトコルラベルスイッチング（ＭＰＬＳ）、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、ハイパーテキストトランスポートプロトコル（ＨＴＴＰ）、シンプルメールトランスファープロトコル（ＳＭＴＰ）、ファイルトランスファープロトコル（ＦＴＰ）などを含んでも良い。
【００２０】
図１は、単一のネットワーク１０６を説明するが、ネットワーク１０６は、複数のネットワークを備えても良い。例えば、アドミニストレータのクライアントデバイス１０４は、プリベートな企業ネットワークを介して、サービスシステム１０２と通信しても良い。一方、ユーザは、公衆のネットワークを介してサービスシステム１０２と通信する。
【００２１】
ネットワーク１０６を介して交換されるデータは、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張マークアップ言語（ＸＭＬ）などを含む技術及び／又はフォーマットを使用して表現できる。加えて、リンクのすべて又は一部は、セキュアソケットレイア（ＳＳＬ）、トランスポートレイアセキュリティ（ＴＬＳ）、バーチャルプライベートネットワーク（ＶＰＮｓ）、インターネットプロトコルセキュリティ（ＩＰｓｅｃ）など従来からの暗号化技術を使用して暗号化できる。別の実施形態において、事業体は、上述のものの代わりに又は加えて、カスタムの及び／又は専用のデータ通信技術を使用することができる。
【００２２】
図２は、１つの実施形態によるトラストモジュール１１０のコンポーネントを説明するブロック図である。トラストモジュール１１０は、ポリシストレージ（policy  storage）２０２、リクエストモジュール（request  module）２０４、及び変換モジュール（transformation  module）２０６を含む。当業者は、他の実施形態がここに説明されたものとは異なる及び／又は別のコンポーネントを持つこともでき、機能性は、異なる方法で、コンポーネント間で分配することができることを理解する。
【００２３】
ポリシストレージ２０２は、アドミニストレータに対して提供される前にユーザデータに適用されるポリシを記憶する。ポリシは、ポリシが適用される特定のユーザデータ及びそのデータに適用される１つ以上の変換を示す情報である。例えば、ポリシは、ユーザの氏名、ユーザの年齢、セールスオポチュニティの総額、ソーシャルセキュリティナンバー、電話番号、郵送先住所、ｅメールアドレス、特定のフォーマットのデータなどの特定の種類のデータにポリシが適用されることを示しても良い。
【００２４】
ポリシは、特定のユーザに関連するユーザデータにそのポリシが適用されることを示しても良い。例えば、ポリシは、ポリシが適用される特定のユーザの識別子を含んでも良く、又は、特定のグループ又は企業に関連するユーザにポリシが適用されることを示しても良い。ポリシは、そのポリシが適用できるときを示すタイミング情報と関連しても良い。例えば、特定の月の間、又は日の特定の時間帯（specific  times  of  day）の間などの特定の期間の間のみ適用可能であることをポリシは示しても良い。別の例としては、ポリシは有効期限（expiration  time）と関連しても良く、及びポリシは有効期限が切れない限り適用可能である。しかしながら、一旦ポリシの有効期限が切れた場合、ポリシはもはや、ユーザデータには適用されない。
【００２５】
ポリシは、さらに、あるユーザデータにアクセスすることを許可されたアドミニストレータを示しても良い。例えば、ポリシは、あるグループの一部である又はある権限を持つアドミニストレータによってのみアクセス可能であるあるユーザデータを示しても良い。加えて、ポリシは、アドミニストレータに対して提供されないあるユーザデータを示しても良い。例えば、トラストモジュール１１０が、データをユーザのプライバシを保護する表現に変換する前は、アドミニストレータにユーザデータのオリジナルのバージョンの復元を許すので、ポリシはあるユーザデータが提供されないことを示しても良い。
【００２６】
ポリシによって示された変換は、データの異なる表現を生み出すためにユーザデータがどのように操作されるかを説明する。ユーザデータの操作は、データに関連するユーザが、彼又は彼女のプライバシを維持することを可能にする。ユーザデータの変換は、ハッシュ関数（例えば、ＳＨＡ―２５６）をユーザデータに適用することを含んでも良い。例えば、ポリシは、一方向性ハッシュ関数がソーシャルセキュリティナンバーに適用されることを示しても良い。ソーシャルセキュリティナンバーは、ハッシュ関数によって返されるハッシュ値で置き換えられる。ユーザデータの変換は、また、データの数学的な操作を含んでも良く、追加のユーザデータに関与して（involve）も良い。例えば、ユーザの年齢に関して、グループの複数のユーザの平均年齢が決定され、ユーザの年齢が、ユーザの年齢と平均年齢との間の差で置換されることをポリシが示しても良い。
【００２７】
変換があるデータに対して実行されないことを、ポリシがさらに示しても良い。例えば、前の例で説明したようにユーザの年齢が変換されることをポリシが示しても良いが、ユーザを特定する乱数に対しては変換は実行されなくて良い。
【００２８】
サービスシステム１０２が企業に対するデータを記憶する実施形態において、ポリシストレージ２０２に記憶されるポリシは、企業とサービスシステム１０２を稼働する事業体との間で合意される。例として、事業体の代表者は、サービスシステム１０２によって提供されるサービスを改善する目的で、ユーザデータにアクセスするための継続的な許可を有するアドミニストレータに関して、企業の代表者と通信しても良い。代表者は、アドミニストレータによってどのユーザデータにアクセスできるか、及びアドミニストレータによってアクセスされる前にどのようにデータを変換するかについて合意する。次に、代表によって何が合意されたかを説明するポリシをポリシストレージ２０２に記憶する。
【００２９】
企業に関するデータをサービスシステム１０２が記憶する典型的な環境において、アドミニストレータは、ユーザデータにアクセスしたいときに毎回その企業からの許可をリクエストしなければならない。許可をリクエストする処理は、長い期間掛かり得る。しかしながら、企業によって合意されたポリシを持つことによって、アドミニストレータは、毎回企業からの許可をリクエストする必要なしにユーザデータにアクセスることができる。さらに、ポリシに基づいて、トラストモジュール１１０は、企業に取って受け入れ可能な方法でアドミニストレータがユーザデータにアクセスすることを保証する。
【００３０】
リクエストモジュール２０４は、データストレージシステム１０８に記憶されたユーザデータに対するアドミニストレータによるリクエストを処理する。１つの実施形態において、アドミニストレータから受信されたユーザデータに対するリクエストは、アドミニストレータが興味を持つユーザデータを特定するための１つ以上のパラメータを含むクエリである。例えば、リクエストは、企業に関連するユーザの先月にクローズされたセールスオポチュニティに関するものであっても良い。
【００３１】
１つの実施形態において、クライアントデバイス１０４を通してアドミニストレータからのユーザデータに対するリクエストを、リクエストモジュール２０４が受信したとき、リクエストモジュール２０４は、ユーザデータへのアクセスが許可されていると、ユーザに権限が与えられているか否かを決定する。１つの実施形態において、リクエストモジュール２０４は、データストレージシステム１０８に記憶されたユーザデータへのアクセスが許可されたアドミニストレータの認証情報を記憶する（例えば、ユーザの氏名及びパスワード）。アドミニストレータが認証されなかった場合、リクエストモジュール２０４は、アドミニストレータのクライアントデバイス１０４と通信し、ユーザに彼又は彼女の認証情報を提供するようにリクエストする。アドミニストレータが認証情報を提供したとき、リクエストモジュール２０４は、提供された認証情報がリクエストモジュール２０４によって記憶されている認証情報と一致することを検証する。
【００３２】
アドミニストレータからのユーザデータに対するリクエストに対して、リクエストモジュール２０４は、データストレージシステム１０８と通信し、アドミニストレータによってリクエストされたユーザデータを特定する。１つの実施形態において、通信は、リクエストモジュール２０４がユーザデータに対するリクエストをデータストレージシステム１０８に転送することと、リクエストモジュール２０４がリクエストに基づいて特定されたユーザデータをデータストレージシステム１０８から受信することを含む。リクエストモジュール２０４は、データストレージシステム１０８から受信したユーザデータを変換モジュール２０６に提供することによって、変換モジュール２０６は、アドミニストレータに提供する前に必要などんな変換もデータに適用することができる。
【００３３】
変換モジュール２０６は、ポリシストレージ２０２に記憶されたポリシによってユーザデータを変換する。データストレージシステム１０８に記憶されたユーザデータは、アドミニストレータからのリクエストに基づいて特定され、変換モジュール２０６は、ポリシストレージ２０２に記憶されたどのポリシがユーザデータに適用されるかを決定する。変換モジュール２０６は、以下のファクタのうちの１つ以上に基づいてポリシストレージ２０２に記憶された複数のポリシから適用されるポリシを選択する：データに関連するユーザ（例えば、データを作成したユーザ又はデータへの権限を持つユーザ）、データの種類、タイミング情報、及びユーザデータをリクエストしたアドミニストレータ。
【００３４】
ユーザデータに適用されるポリシストレージ２０２からの各ポリシに対して、変換モジュール２０６は、ポリシによって示されたユーザデータ上で変換を実行する。変換の実行において、変換モジュール２０６は、データストレージシステム１０８から追加のデータを読み出しても良い。例えば、ユーザの年齢が、ユーザのグループの平均年齢に基づいて変換される場合、変換モジュール２０６は、データストレージシステム１０８へアクセスし、グループのユーザの年齢を特定し、次に、平均を決定しても良い。変換モジュール２０６は、変換されたユーザデータを、ユーザデータをリクエストしたアドミニストレータのクライアントデバイス１０４に送信する。
【００３５】
１つの実施形態において、変換モジュール２０６は、アドミニストレータがユーザデータにアクセスしたことを追跡するレコードを維持する。変換モジュール２０６がアドミニストレータにユーザデータを提供する度に、変換モジュール２０６は、データへのアドミニストレータのアクセスを説明するレコードに情報を追加する。レコードに追加される情報は、以下のうちの１つ以上を含んでも良い：データが提供されたアドミニストレータ、提供されたユーザデータの表示、いつデータが提供されたか、及びユーザデータに適用されたポリシストレージ２０２からのポリシ。
【００３６】
図３は、１つの実施形態によるユーザデータに適用される変換の例を説明する。この例の目的のため、アドミニストレータからのリクエストに基づいて、ユーザデータは、レコード３０２Ａ、３０２Ｂ、及び３０２Ｃを含むように特定されると仮定する。レコードは、先月首尾よくクローズしたセールスパーソンのセールスオポチュニティを表現する。レコード３０２Ａは、セールスオポチュニティに対してサービスシステム１０２によって割り当てられた識別子である識別子（ＩＤ）ＢＢ１Ａ５８Ｚ９を含む。レコード３０２Ａは、ボブ・ジョーンズ（Bob  Jones）であるクライアントにおけるコンタクト（Contact）の名前である、及び＄２０，０００，０００であるセールスオポチュニティ総額（Amount）も含む。レコード３０２Ｂは、識別子（ID）０ＡＡＦ２３Ｃ７、コンタクトであるアリス・スミス（Alice  Smith）、及び総額（Amount）＄２５，０００，０００を含む。レコード３０２Ｃは、識別子（ID）９ＲＦＫ２２Ｓ１、コンタクト（Contact）であるダン・ミラー（Dan  Miller）、及び総額（Amount）＄４０，０００，０００を含む。
【００３７】
トラストモジュール１１０は、セールスオポチュニティのコンタクトの名前に適用されるポリシを特定する。一方向性ハッシュ関数をコンタクト名に適用し、レコード内のコンタクト名をハッシュ関数によって返されるハッシュ値で置き換えることによって、セールスオポチュニティのコンタクト名が変換されたことを、ポリシは示す。トラストモジュール１１０は、セールスオポチュニティの総額に適用される別のポリシを特定する。ポリシは、特定される複数のオポチュニティから最も高い総額を示す。ポリシは、各オポチュニティの総額が、最も高い総額でその総額を割った結果と置き換えられることをさらに示す。
【００３８】
図３に見られるように、適用可能なポリシによって示される変換を適用した後、レコード３０２Ａは、レコード３０４Ａに変換され、レコード３０２Ｂは、レコード３０４Ｂに変換され、レコード３０２Ｃは、レコード３０４Ｃに変換される。セールスオポチュニティの識別子に適用されるポリシが特定されなかったので、変換されたレコード３０４の識別子は、オリジナルのレコード３０２のそれと同じである。
【００３９】
さらに、各変換されたレコード３０４は、コンタクトに対するハッシュ値を含み、ハッシュ値は、対応するオリジナルのレコード３０２のコンタクトにハッシュ関数を適用した後に出力されるハッシュ値である。それ故に、レコード３０２Ａからのコンタクト、ボブ・ジョーンズは、レコード３０４ＡのＡ３２ＦＪＣＸに変換され、レコード３０２Ｂからのコンタクト、アリス・スミスは、レコード３０４Ｂの５Ｆ９ＴＹＣＺに変換され、レコード３０２Ｃからのコンタクト、ダン・ミラーは、レコード３０４ＣのＶ１２ＣＧＴＳに変換される。
【００４０】
各セールスオポチュニティの総額に関して、レコード３０２Ｃからの総額＄４０，０００，０００は、トラストモジュール１１０によって最も高い総額として特定された。各変換されたレコード３０４は、対応するオリジナルのレコード３０２からの総額を＄４０，０００，０００で割った結果を含む。それ故に、レコード３０２Ａからの総額＄２０，０００，０００は、レコード３０４Ａの０．５に変換され、レコード３０２Ｂからの総額＄２５，０００，０００は、レコード３０４Ｂの０．６２５に変換され、レコード３０２Ｃからの総額＄４０，０００，０００は、レコード３０４Ｃの１．０に変換される。
【００４１】
トラストモジュール１１０は、オリジナルのレコード３０２の代わりにユーザデータをリクエストしたアドミニストレータに変換されたレコード３０４を提供する。ポリシに基づいて、トラストモジュール１１０は、アドミニストレータにレコード３０２のオリジナルのコンタクト名及び総額を決定することを可能にするいかなる情報も提供しない。例えば、アドミニストレータが先月セールスパーソンによってクローズされたセールスオポチュニティの最も高い総額をリクエストした場合、次にアドミニストレータは、その情報に基づいて変換されたレコード３０４の現実の総額を決定することができるので、アドミニストレータは、その情報をアドミニストレータに提供しない。それ故に、ポリシストレージ２０２のポリシは、最も高い総額がアドミニストレータに提供できないように示す。
【００４２】
図４は、１つの実施形態によるアドミニストレータにユーザデータを提供するサービスシステム１０２の動作を説明するフローチャートである。当業者であれば、他の実施形態は、図４のステップを異なる順番で実行できることを理解する。その上、他の実施形態は、本明細書で説明されたものとは別の及び／又は追加のステップを含むことができる。
【００４３】
サービスシステム１０２は、データストレージシステム１０８に記憶された１人以上のユーザのデータに対するアドミニストレータからのリクエストを受信する（４０２）。サービスシステム１０２は、データストレージシステム１０８に記憶されたリクエストされたユーザデータを特定する（４０４）。サービスシステム１０２は、ユーザデータに適用可能な１つ以上のポリシを決定する（４０６）。
【００４４】
サービスシステム１０２は、ユーザデータに適用可能なポリシに基づいてユーザデータを変換する（４０８）。サービスシステム１０２は、変換されたデータをアドミニストレータのクライアントデバイス１０４に提供する（４１０）。
【００４５】
図５は、実施形態による、図１の環境１００において説明される事業体の１つとして使用される典型的なコンピュータシステムの機能的視点を説明する高レベルブロック図である。チップセット５０４に接続された少なくとも１つのプロセッサ５０２が図示されている。メモリ５０６、ストレージデバイス５０８、キーボード５１０、グラフィックスアダプタ５１２、ポインティングデバイス５１４、及びネットワークアダプタ５１６もチップセット５０４に接続されている。ディスプレイ５１８は、グラフィックスアダプタ５１２に接続されている。１つの実施形態において、チップセット５０４の機能は、メモリコントローラハブ５２０及びＩ／Ｏコントローラハブ５２２によって提供される。別の実施形態において、メモリ５０６は、チップセット５０４の代わりにプロセッサ５０２に直接接続される。
【００４６】
ストレージデバイス５０８は、ハードドライブ、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）、ＤＶＤ、又は半導体メモリデバイスなどの非一時的コンピュータ読取可能記憶媒体である。メモリ５０６は、プロセッサ５０２によって使用される命令及びデータを保持する。ポインティングデバイス５１４は、マウス、トラックボール、又は別の種類のポインティングデバイスでも良く、コンピュータシステム２００へデータを入力するためにキーボード５１０と組み合わせて使用される。グラフィックスアダプタ５１２は、ディスプレイ５１８上に画像及び他の情報を表示する。ネットワークアダプタ５１６は、コンピュータシステム５００をネットワーク１０６へ接続する。
【００４７】
技術的に知られているように、コンピュータ５００は、図５に示されたコンポーネント以外の異なる及び／又は別のコンポーネントを有しても良い。加えて、コンピュータ５００は、ある図示されたコンポーネントが不足していても良い。例えば、サービスシステム１０２として動作するコンピュータシステム５００は、キーボード５１０及びポインティングデバイス５１４が欠けていても良い。その上、ストレージデバイス５０８は、ローカルであるか及び／又はコンピュータ５００からリモートであっても良い（ストレージエリアネットワーク（ＳＡＮ）内に具体化されるような）。
【００４８】
コンピュータ５００は、本明細書で説明される機能性を提供するためにコンピュータモジュールを実行するように適合されている。本明細書で使用されるとき、用語「モジュール（module）」は、特定される機能を提供するためのコンピュータプログラム命令及び他のロジックを指す。モジュールは、ハードウェア、ファームウェア、及び／又はソフトウェアで実装することができる。モジュールは、１つ以上のプロセスを含み、及び／又はプロセスの一部のみによって提供することができる。モジュールは、典型的には、ストレージデバイス５０８に記憶され、メモリ５０６にロードされ、プロセッサ５０２によって実行される。
【００４９】
図１の事業体によって使用されるコンピュータシステム５００の種類は、事業体によって使用される実施形態及び処理能力に依存して変化することができる。例えば、クライアントデバイス１０４は、限られた処理能力と小さいディスプレイ５１８を持つモバイルフォンでも良く、ポインティングデバイス５１４が欠けていても良い。サービスシステム１０２は、対照的に、本明細書で説明される機能性を提供するために一緒に動作する複数のブレードサーバを備えても良い。
【００５０】
コンポーネントの特定の名前、用語の大文字化、属性、データ構造、又は他のプログラミング、又は構造上の態様は、必須でも重要でもなく、説明された実施形態に実装できる機構は、異なる名前、フォーマット、又はプロトコルを持っても良い。さらに、システムは、説明したように、ハードウェア及びソフトウェアの組み合わせを経由して、又は完全にハードウェア要素として、実装しても良い。また、本明細書で説明される様々なシステムコンポーネント間の機能性の特定の区分は、単なる例であり、必須ではなく、単一のシステムコンポーネントによって実行される機能は、代わりに、複数のコンポーネントによって実行することができ、複数のコンポーネントで実行する機能は、代わりに、単一のコンポーネントによって実行することができる。
【００５１】
上述の説明のいくつかの部分は、情報における操作のアルゴリズム及び記号表現に関して特徴を提示する。これらのアルゴリズムの説明及び表現は、データ処理分野の当業者が自分の仕事の内容を他の当業者に最も効果的に伝えるために使用する手段である。これらの動作は、機能的に又は論理的に説明したが、コンピュータプログラムによって実施されると理解される。さらに、一般性を失うことなく、これらの動作の構成をモジュール又は機能名で呼ぶことも時々便利であることが証明されている。
【００５２】
上述の説明から明らかなように特に明記しない限り、説明全体を通して、「処理（processing）」又は「コンピューティング（computing）」「計算（calculating）」又は「決定（determining）」又は「表示（displaying）」などの用語を利用する議論は、コンピュータシステムのメモリ又はレジスタ又は他のそのような情報記憶装置、伝送装置又は表示装置内の物理的（電子）量として表現されるデータを操作及び変換する、コンピュータシステム又は同様の電子計算装置の動作及びプロセスを指すことを理解されたい。
【００５３】
本明細書に記載されたある実施形態は、アルゴリズムの形式で説明されたプロセスステップ及び命令を含む。実施形態のプロセスステップ及び命令は、ソフトウェア、ファームウェア、又はハードウェアで具体化することができ、ソフトウェアで具体化されたとき、ダウンロードして、リアルタイムネットワークオペレーティングシステムによって使用される色々なプラットフォーム上に常駐して、動作することができることに留意されたい。
【００５４】
説明された実施形態は、また、本明細書で動作を実行するための装置に関連する。装置は、要求される目的のために特別に構成されてもよく、又はコンピュータによってアクセスすることができるコンピュータ読取可能媒体に記憶されたコンピュータプログラムによって選択的に起動又は再構成される汎用コンピュータを含んでもよい。フロッピーディスク、光ディスク、ＣＤ‐ＲＯＭ、光磁気ディスク、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気又は光学カード、特定用途向け集積回路（ＡＳＩＣ）、又は電子命令を記憶するのに適した任意の種類の媒体であり、それぞれコンピュータシステムバスに接続されたものなどの非一時的コンピュータ読取可能記憶媒体に、そのようなコンピュータプログラムは、記憶されても良い。さらに、本明細書で言及されるコンピュータは、単一のプロセッサを含み得、又は、計算能力を高めるために複数のプロセッサ設計を採用するアーキテクチャであり得る。
【００５５】
本明細書に提示されたアルゴリズム及び動作は、いかなる特定のコンピュータ又は他の装置にも本質的に関連していない。様々な汎用システムを本明細書の教示によるプログラムと共に使用することもでき、又は必要な方法ステップを実行するためにより専門化した装置を構成することが便利であることが分かるかも知れない。様々なこれらのシステムに必要な構造は、均等の変形と共に当業者には明らかになる。さらに、本実施形態は、特定のプログラミング言語を参照して説明されていない。様々なプログラミング言語が本明細書に記載の実施形態の教示を実施するために使用することができることが理解される。
【００５６】
実施形態は、多数のトポロジにわたる多種多様なコンピュータネットワークシステムに良く適している。この分野では、大規模ネットワークの構成及び管理は、インターネットなどのネットワークを介して異種のコンピュータ及びストレージデバイスに通信可能に接続されたストレージデバイス及びコンピュータを含む。
【００５７】
最後に、本明細書で使用されている言語は、読みやすさ及び説明の目的で主に選択されており、本発明の主題を正確に表現又は境界を定めるために選択されていない場合があることに留意されたい。結果的に、実施形態の開示は、例示的なものであり、制限することを意図しない。
【図１】
2019532425.tif 000003
【図２】
2019532425.tif 000004
【図３】
2019532425.tif 000005
【図４】
2019532425.tif 000006
【図５】
2019532425.tif 000007
【国際調査報告】
2019532425.tif 000008
2019532425.tif 000009