(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0007】
本開示の様々な態様が、本開示の一部を形成し特定の例示的な態様を示す添付の図面を参照して、以下でより詳細に説明される。しかしながら、本開示の異なる態様は、多くの異なる形態で実施可能であり、本明細書に記載の態様に限定されるものとして解釈されるべきではない。そうではなく、そのような態様は、本開示が明確かつ十分であるとともに、態様の範囲を当業者に完全に伝えるように、提供される。態様は、方法、システム、又はデバイスとして実施され得る。したがって、態様は、ハードウェア実装、完全にソフトウェア実装、又はソフトウェア態様とハードウェア態様とを組み合わせた実装の形をとることができる。したがって、以下の詳細な説明は、限定的に解釈されるべきではない。
【0008】
本開示は、クラウドサービス等の分散ネットワークサービスのためのパーソナル検索インデックスの秘匿性を強化するためのシステム及び方法を提供する。本明細書で使用されるパーソナル検索とは、データを作成した且つ/又は記憶させたユーザ又は特権ユーザの小グループによってのみアクセス可能である非パブリックデータ(例えば、文書、オーディオファイル、ビデオファイル等)の検索を指し得る。いくつかの態様において、方法は、信頼できるクライアント環境及び部分的に信頼される環境を含む分散コンピューティング環境において実施され得る。本明細書で使用される信頼できるクライアント環境とは、コード及びデータの保護されたロード及び実行を提供する第1の処理デバイス(クライアントデバイス等)上のセキュアな領域を指し得る。本明細書で使用される部分的に信頼される環境とは、コード及びデータのロード及び実行を許可しない又はコード及びデータのロード及び実行を許可する前にセキュリティ制約を課す第2のデバイス(例えばサーバデバイス)上のセキュアでない領域を指し得る。
【0009】
いくつかの例において、平文データ(例えば平文文書)が、クライアントデバイス上で作成され得る。本明細書で使用される平文文書とは、暗号化されていないフォーマットで伝送及び/又は記憶される、人間が読むことのできるデータを指し得る。平文文書は、文書ダイジェストを生成し、文書ダイジェストを不透明文書ダイジェストに変換し、不透明文書ダイジェストを暗号化し、文書スニペット(snippet)を生成し、文書及び文書スニペットを暗号化するために、クライアントデバイスにより使用され得る。本明細書で使用される文書ダイジェストとは、文書からの用語と文書を説明するメタデータとを収集したものを指し得る。いくつかの例において、文書ダイジェストの用語及びメタデータは、トークン化され得る。本明細書で使用される不透明文書とは、データ変換技術を使用して、人間が読むことのできないフォーマットにデータが変換されている平文文書又は人間が読むことのできる他の文書を指し得る。本明細書で使用される文書スニペットは、文書の簡潔な要約と、メタデータと、文書からの1つ以上の文と、のうちの少なくとも1つを含み得る。その後、暗号化された不透明文書ダイジェスト並びに暗号化された文書及び文書スニペットが、サーバデバイスに送信され得る。
【0010】
いくつかの例において、第2のデバイス(例えばサーバデバイス)は、暗号化された不透明文書ダイジェストを復号化し、復号化された不透明文書ダイジェストを使用して、パーソナル検索インデックスを構築することができる。本明細書で使用されるパーソナル検索インデックスは、迅速で正確な情報取得を促進するために、文書ダイジェストデータを収集し、構文解析し、インデックスに格納することができる。サーバデバイスはまた、ストレージ管理ユーティリティを使用して、暗号化された文書及び文書スニペットをデータ記憶部に記憶することができる。本明細書で使用されるストレージ管理ユーティリティとは、記憶デバイス及びストレージネットワークソリューションを管理するために使用されるデバイス、プロセス、及びソフトウェアを指し得る。
【0011】
いくつかの態様において、クライアントデバイスは、その後、平文検索クエリを受信することができる。平文検索クエリは、クエリダイジェストを生成し、クエリダイジェストを不透明クエリダイジェストに変換するために、クライアントデバイスにより使用され得る。本明細書で使用されるクエリダイジェストとは、検索クエリからの用語と検索クエリを説明するメタデータとを収集したものを指し得る。次いで、不透明クエリダイジェストが、サーバデバイスに送信され得る。サーバデバイスは、不透明クエリダイジェストを受信した後、不透明クエリダイジェストを使用して、パーソナル検索インデックスを検索し、ランク付きクエリ結果を生成することができる。本明細書で使用されるランク付きクエリ結果とは、関連性、文書年齢(document age)、文書サイズ、ユーザプロファイル情報等といったいくつかの基準のうちの少なくとも1つに従って順序付けられた且つ/又は優先順位付けされた不透明結果の集合を指し得る。ランク付きクエリ結果を使用して、データ記憶部から、暗号化された文書及び/又は文書スニペットを取得することができる。次いで、暗号化された文書及び/又は文書スニペットが、クライアントデバイスに送信され得る。クライアントデバイスは、受信された暗号化された文書及び/又は文書スニペットを復号化し、ランク付きクエリ結果と文書及び/又は文書スニペットとを組み合わせることができる。クライアントデバイスは、組み合わせられたランク付きクエリ結果と文書及び/又は文書スニペットとに対して、内容に基づくランク付けを実行して、ランク付き平文検索結果を生成することができる。
【0012】
したがって、本開示の態様は、とりわけ以下のことを含むがこれらに限定されるものではない複数の利点を提供する:パーソナル文書セキュリティを高めること;クラウドサービスへの平文のユーザ情報、クエリ、及び検索結果の伝送をなくすこと;単一の信頼境界内に存在するようにクラウドサービスを使用して記憶される全てのデータについての要件をなくすこと;クラウドサービスへのユーザ鍵の伝送を最小限にすること;クラウドサービスにより必要とされるセキュリティ手段を低減させること;より古い検索サービスに対する秘匿性が強化されたパーソナルインデックスの適切な改良。
【0013】
図1は、本明細書で説明される、クラウドサービスのための秘匿性が強化されたパーソナル検索インデックスのための例示的なシステムの概要を示している。例示的なシステム100は、暗示的なフィードバックからのレコメンデーションを向上させるために統合された全体を形成するように相互作用する相互依存コンポーネントの組合せであり得る。システムのコンポーネントは、ハードウェアコンポーネントであることもあるし、システムのハードウェアコンポーネント上に実装される且つ/又はシステムのハードウェアコンポーネントにより実行されるソフトウェアであることもある。いくつかの例において、システム100は、(例えば、オペレーティングシステム(OS)を実行する/動作させるために使用される)ハードウェアコンポーネント、及び、ハードウェア上で実行されるソフトウェアコンポーネント(例えば、アプリケーション、アプリケーションプログラミングインタフェース、モジュール、仮想マシン、ランタイムライブラリ等)のうちの任意のものを含み得る。一例において、例示的なシステム100は、ソフトウェアコンポーネントが、動作し、動作のための制約セットに従い、システム100のリソース又は機能を利用するための環境を提供することができ、ここで、コンポーネントは、1つ以上の処理デバイス上で実行されるソフトウェア(例えば、アプリケーション、プログラム、モジュール等)であり得る。例えば、ソフトウェア(例えば、アプリケーション、動作命令、モジュール等)は、コンピュータ、モバイルデバイス(例えば、スマートフォン/電話機、タブレット)、及び/又は任意の他の電子デバイス等の処理デバイス上で実行され得る。処理デバイス動作環境の例として、
図9〜
図11に示される例示的な動作環境を参照する。他の例において、本明細書で開示されるシステムのコンポーネントは、複数のデバイスにわたって分散されてもよい。例えば、入力は、クライアントデバイス(例えば処理デバイス)上でなされてよく、情報は、1つ以上のサーバデバイス等、ネットワークにおける他のデバイスから処理又はアクセスされてよい。
【0014】
一例として、システム100は、クライアントデバイス102A、クライアントデバイス102B、クライアントデバイス102C、分散ネットワーク104、及び分散ネットワーク環境を含み、分散ネットワーク環境は、サーバデバイス106A、サーバデバイス106B、及びサーバデバイス106C等の1つ以上のサーバを含む。システム100等のシステムの規模は、変わり得、
図1に記載されるコンポーネントよりも多い又は少ないコンポーネントを含み得ることが、当業者には理解されよう。いくつかの例において、システム100のコンポーネント間でインタフェースをとることは、例えば、システム100のコンポーネントが分散ネットワークの1つ以上のデバイスにわたって分散され得る場合には、リモートで生じ得る。
【0015】
クライアントコンピューティングデバイス102Aは、例えば、1つ以上の平文パーソナル文書を生成及び/又は受信し、平文パーソナル文書を使用して、暗号化された不透明文書ダイジェスト及び暗号化されたパーソナル文書を生成するよう構成されている信頼できる環境であり得る。クライアントコンピューティングデバイス102Aは、次いで、暗号化された不透明文書ダイジェスト及び暗号化されたパーソナル文書を、ネットワーク104を介して、サーバ106A、106B、及び106Cのうちの1つ以上に送信することができる。サーバ106Aは、例えば、暗号化された不透明文書ダイジェスト及び暗号化されたパーソナル文書を受信し、不透明文書ダイジェストを復号化し、復号化された不透明文書ダイジェストを使用してパーソナル検索インデックスを生成し、暗号化されたパーソナル文書をパーソナル文書データ記憶部に記憶するよう構成され得る。サーバ106Aは、信頼されない環境又は部分的に信頼される環境であり得、クラウドサービスプロバイダによりホストされるサービスを提供し得る。
【0016】
クライアントコンピューティングデバイス102Aは、さらに、平文検索クエリ要求を受信し、不透明クエリダイジェストを生成し、不透明クエリダイジェストを、ネットワーク104を介して、サーバ106A、106B、及び106Cのうちの1つ以上に送信するよう構成され得る。サーバ106Aは、例えば、さらに、不透明クエリダイジェストを受信し、不透明クエリダイジェストを使用して、パーソナル検索インデックスを検索し、ランク付きクエリ結果を生成し、ランク付きクエリ結果を使用して、暗号化された文書を取得するよう構成され得る。サーバ106Aは、次いで、ランク付きクエリ結果及び取得された暗号化された文書を、ネットワーク104を介して、クライアントコンピューティングデバイス102Aに送信することができる。クライアントコンピューティングデバイス102Aは、さらに、ランク付きクエリ結果及び暗号化された文書を受信し、暗号化された文書を復号化し、ランク付き平文検索結果を生成し、ランク付き平文検索結果を、クライアントコンピューティングデバイス102Aのディスプレイ領域に表示することができる。
【0017】
図2は、本明細書で説明されるクライアントコンピューティングデバイス200(
図2A)及びサーバコンピューティングデバイス220(
図2B)の例示的な図である。クライアントコンピューティングデバイス200は、文書生成モジュール202、暗号化モジュール204、クエリ受信モジュール206、クエリ処理モジュール208、及び結果処理モジュール210を備えることができ、各モジュールは、1つ以上の追加のコンポーネントを有する。文書生成モジュール202は、1つ以上のパーソナル文書を生成及び/又は受信するよう構成され得る。例えば、文書生成モジュール202は、ワードプロセッシングアプリケーションを含み得る又はワードプロセッシングアプリケーションとインタフェースをとり得る。ワードプロセッシングアプリケーションは、平文テキストベースの文書を生成するために使用され得る。暗号化モジュール204は、1つ以上のパーソナル文書を受信して暗号化するよう構成され得る。いくつかの態様において、暗号化モジュール204は、1つ以上の処理パスに沿って動作を実行する。例えば、暗号化モジュール204は、文書理解パイプラインパス及び文書暗号化パスに沿って動作を実行することができる。
【0018】
いくつかの例において、文書理解パイプラインパスは、受信されたパーソナル文書を使用して、パーソナル文書内に含まれる用語とパーソナル文書を説明するメタデータとを含む平文文書ダイジェストを生成することを含み得る。秘密変換鍵(PTK:private transform key)を平文文書ダイジェストに適用して、不透明文書ダイジェストを生成することができる。本明細書で使用されるPTKとは、あるソースの第1のデータフォーマットからのデータ値の集合を第2のデータフォーマットに変換するデータ変換技術を使用する鍵又はアルゴリズムを指し得る。いくつかの態様において、データ変換技術は、ほぼ正確な用語マッチング、相対的な用語出現頻度、及び所定の距離メトリックが、不透明文書ダイジェスト内で維持されるように、パーソナル文書の構造を維持する(例えば、アイソメトリック変換)。秘密インデックス鍵(PIK:private index key)を不透明文書ダイジェストに適用して、暗号化された不透明文書ダイジェストを生成することができる。本明細書で使用されるPIKとは、パーソナル文書の内容をセキュアにするための暗号化鍵として指定機関により提供される値を指し得る。PIKは、非対称暗号方式(例えば公開鍵暗号化)又は対称暗号方式(例えば共通暗号化)の任意の既知の方法を使用して生成され得る。暗号化された不透明文書ダイジェスト及びPIKは、次いで、サーバデバイス220へのエクスポートのために処理され得、これにより、文書理解パイプラインパスは終了する。
【0019】
いくつかの例において、文書暗号化パスは、平文パーソナル文書を使用して、文書スニペットを生成することを含み得る。秘密文書鍵(PDK:private document key)を平文パーソナル文書及び/又は文書スニペットに適用して、暗号化されたパーソナル文書及び/又は暗号化された文書スニペットを含む暗号化されたパーソナル文書を生成することができる。本明細書で使用されるPDKとは、パーソナル文書の内容をセキュアにするための暗号化鍵として指定機関により提供される値を指し得る。PDKは、非対称暗号方式(例えば公開鍵暗号化)又は対称暗号方式(例えば共通暗号化)の任意の既知の方法を使用して生成され得る。少なくとも1つの例において、PDKは、PTK及びPIKとは異なる。暗号化されたパーソナル文書は、次いで、サーバデバイス220へのエクスポートのために処理され得、これにより、文書暗号化パスは終了する。
【0020】
クエリ受信モジュール206は、1つ以上のパーソナル文書を探すための平文クエリを受信又は生成するよう構成され得る。例えば、クエリ受信モジュール206は、ユーザインタフェースを含み得る又はユーザインタフェースとインタフェースをとり得る。ユーザインタフェースは、クエリを送信するための入力領域を提供する。クエリ処理モジュール208は、平文クエリを使用して、用語及びメタデータを含む平文クエリダイジェストを生成するよう構成され得る。PTKを平文クエリダイジェストに適用して、不透明クエリダイジェストを生成することができる。いくつかの態様において、平文クエリダイジェストに適用されるPTKは、平文文書ダイジェストに適用されるPTKと同じであり得る。不透明クエリダイジェストは、次いで、サーバデバイス220へのエクスポートのために処理され得る。
【0021】
結果処理モジュール210は、不透明ランク付きクエリ結果及び暗号化されたパーソナル文書を受信して処理するよう構成され得る。例えば、結果処理モジュール210は、PTKを不透明ランク付きクエリ結果に適用して、平文ランク付きクエリ結果を生成することができる。いくつかの態様において、不透明ランク付きクエリ結果に適用されるPTKは、平文文書ダイジェスト及び平文クエリダイジェストに適用されるPTKと同じであり得る。結果処理モジュール210はまた、PDKを暗号化されたパーソナル文書に適用して、平文文書及び/又は平文文書スニペットを生成することができる。いくつかの態様において、暗号化されたパーソナル文書に適用されるPDKは、平文パーソナル文書及び/又は文書スニペットに適用されるPDKと同じであり得る。次いで、平文ランク付きクエリ結果と平文パーソナル文書及び/又は文書スニペットとが、ランク付き平文検索結果へと組み合わせられ得る。一例において、ランク付き平文検索結果は、内容、関連性、サイズ、又は日付等の1つ以上の基準に従ってランク付けされ得る。
【0022】
サーバデバイス220は、インジェスト(ingest)モジュール222、インデックス検索モジュール224、及び文書取得モジュール206を備えることができ、各モジュールは、1つ以上の追加のコンポーネントを有する。インジェストモジュール222は、暗号化された不透明文書ダイジェスト、PIK、及び暗号化されたパーソナル文書等、暗号化モジュール204から情報を受信して処理するよう構成され得る。いくつかの態様において、インジェストモジュール222は、1つ以上の処理パスに沿って動作を実行する。例えば、インジェストモジュール222は、文書インデクシングパス及び文書記憶パスに沿って動作を実行することができる。
【0023】
いくつかの例において、文書インデクシングパスは、受信されたPIKを受信された暗号化された不透明文書ダイジェストに適用して、暗号化された不透明文書ダイジェストを復号化することを含み得る。いくつかの態様において、結果として生じた不透明文書ダイジェストを、クライアントデバイス200から以前に受信された他の不透明文書ダイジェストと集約して、不透明文書ダイジェスト集合を形成することができる。不透明文書ダイジェスト又は不透明文書ダイジェスト集合に対してインデックス生成動作を実行して、パーソナル検索インデックスを構築することができる。パーソナル検索インデックスは、文からの不透明単語インデックス、英数字文字のシーケンス、又は、不透明文書ダイジェスト内のトークンを含み得る。
【0024】
文書記憶パスは、インジェストモジュール222がストレージ管理ユーティリティとインタラクトすることを含み得る。例えば、インジェストモジュール222は、サーバデバイス220上で動作しているストレージ管理サービスを使用して、暗号化されたパーソナル文書をデータ記憶部に記憶することができる。いくつかの態様において、ストレージ管理サービス及びデータ記憶部は、サーバデバイス220上に配置され得る。他の態様において、ストレージ管理サービス及びデータ記憶部のうちの1つ以上は、サーバデバイス220によりアクセス可能である別のサーバ上に配置され得る。
【0025】
インデックス検索モジュール224は、不透明クエリダイジェスト等、クエリ処理モジュール208から情報を受信して処理するよう構成され得る。例えば、インデックス検索モジュール224は、受信された不透明クエリダイジェストを使用して、不透明単語インデックスを含むパーソナル検索インデックスを検索することができる。パーソナル検索インデックスの検索は、発見された上位の検索結果のランク付きクエリ結果を生じさせ得る。いくつかの態様において、ランク付きクエリ結果は、不透明検索結果の順序付きリスト及び不透明文書スニペットを含み得る。そのような態様において、不透明検索結果及び不透明文書スニペットが、次いで、クライアントデバイス220へのエクスポートのために処理され得る。
【0026】
他の態様において、ランク付きクエリ結果は、不透明検索結果の順序付きリストを含み得るが、不透明文書スニペットを含み得ない。そのような態様において、文書取得モジュール226は、データ記憶部から、暗号化されたパーソナル文書を取得するよう構成され得る。例えば、不透明検索結果が、ストレージ管理ユーティリティに提供され得る。ストレージ管理ユーティリティは、不透明検索結果におけるデータに合致するデータ(例えば、文字列、単語、文字、トークン等)を有する暗号化された文書及び/又は文書スニペットを探すために、データ記憶部を検索することができる。次いで、データ記憶部から取得された暗号化された文書及び/又は文書スニペットが、クライアントデバイス220へのエクスポートのために処理され得る。
【0027】
図3〜
図8は、本明細書で説明される、クラウドサービスのための秘匿性が強化されたパーソナル検索インデックスに関連する様々なプロセスフローを示している。いくつかの態様において、方法300〜800は、
図1のシステム100等の例示的なシステムにより実行され得る。いくつかの例において、方法300〜800は、動作、プログラム、又は命令を記憶及び実行するよう構成されている少なくとも1つのプロセッサを備えるデバイス上で実行され得る。しかしながら、方法300〜800は、そのような例に限定されるものではない。他の例において、方法300〜800は、レコメンデーションを提供するためのアプリケーション又はサービス上で実行されてもよい。少なくとも1つの例において、方法300〜800は、インデックス検索及び生成並びに暗号化された文書の処理を利用するために、例えば、ウェブサービス/分散ネットワークサービス(例えばクラウドサービス)といった、分散ネットワークの1つ以上のコンポーネントにより実行され得る(例えば、コンピュータにより実施される動作)。
【0028】
図3は、本明細書で説明される、クラウドサービスのための秘匿性が強化されたパーソナル検索インデックスとともに使用される文書を処理する例示的な方法300を示している。例示的な方法300は、動作302で開始し、動作302において、文書が生成され得る。いくつかの態様において、文書は、クライアントデバイス上でアプリケーションを使用して作成又は受信される平文パーソナル文書である。一例において、クライアントデバイスは、信頼できる環境を表し得、したがって、文書は、文書の作成者又は特権ユーザのグループにだけアクセス可能であり得る。しかしながら、本明細書で説明される動作は、信頼できる環境、部分的に信頼される環境、及び信頼されない環境に適用可能であり得ることが、当業者には認識されよう。クライアントデバイスは、平文パーソナル文書を受信する前に又は平文パーソナル文書を受信した後に、1つ以上の秘密鍵(例えば、PTK、PIK、及びPDK)を生成することができる。クライアントデバイスは、代替的に、信頼できるサードパーティ認証機関から1つ以上の秘密鍵を受信してもよい。
【0029】
動作304において、不透明文書ダイジェストが作成され得る。いくつかの例において、平文パーソナル文書が、文書理解動作を実行するプロセスに提供される。いくつかの態様において、このプロセスは、文書理解パス等のパスに従う。本明細書で使用される文書理解とは、人間が理解できる情報を抽出し、この情報をマシンが読み取り可能な形式に編成するための、文書の意味解析を指し得る。文書理解動作は、平文パーソナル文書を使用して、用語及びメタデータを含む平文文書ダイジェストを生成すること、PTKを平文文書ダイジェストに適用して、不透明文書ダイジェストを生成すること、及び、PIKを不透明文書ダイジェストに適用して、暗号化された不透明文書ダイジェストを生成すること、を含み得る。
【0030】
動作306において、暗号化されたパーソナル文書が作成され得る。いくつかの例において、平文パーソナル文書が、文書暗号化動作を実行するプロセスに提供される。文書暗号化動作は、平文パーソナル文書から平文文書スニペットを生成すること、及び、PDKを平文パーソナル文書及び/又は平文文書スニペットに適用して、暗号化されたパーソナル文書を生成すること、を含み得る。動作304及び306は、順次に又は並列に実行され得る。
【0031】
動作308において、暗号化された不透明文書ダイジェスト、不透明文書ダイジェストを暗号化するために使用されたPIK、及び暗号化されたパーソナル文書が、クライアントデバイスの信頼できる環境から、サーバデバイスの部分的に信頼される環境に送信される。いくつかの態様において、PTK及びPDKは、クライアントデバイス内にあるままである。さらに、平文(例えば、文書、ダイジェスト、クエリ等)は、サーバデバイスに送信されない。
【0032】
図4Aは、本明細書で説明される、暗号化された不透明文書ダイジェストを作成する例示的な方法400を示している。例示的な方法400は、動作402で開始し、動作402において、平文文書ダイジェストが、平文パーソナル文書を使用して生成され得る。いくつかの態様において、平文文書ダイジェストを生成することは、平文パーソナル文書を、複数の平文インデックス用語及び関連付けられた平文メタデータへと構文解析することを含み得る。構文解析動作は、平文パーソナル文書を生成又は受信したクライアントデバイス上に配置されているソフトウェア又は別の信頼できる環境内に配置されているソフトウェアにより、実行され得る。平文インデックス用語及びメタデータは、ダイジェストファイルに結合及び/又は編成され得る。
【0033】
動作404において、不透明文書ダイジェストが、平文パーソナル文書から生成され得る。いくつかの例において、PTKが、クライアントデバイスにより生成又は受信され得る。PTKは、データ値の集合に対してデータ変換動作を実行するよう動作可能であり得る。データ変換動作は、ソースデータフォーマットからのデータ要素又は値を、変換先データフォーマットにマッピングすること、生じ得る変換を記録すること、記録された変換を実行するコードを生成すること、及び、その変換コードを実行すること、を含み得る。1つの特定の例において、変換コードを実行することは、ソースデータフォーマットからのデータ要素を表すトークンを作成することを含み得る。いくつかの態様において、PTKが適用されるいかなる文書ダイジェストも、基本TF−IDF(term frequency-inverse document frequency)ランキングがファイル(例えば、文書ダイジェスト、クエリダイジェスト)について維持されるように、共通データ変換を共有することになる。本明細書で使用されるTF−IDFとは、文書又は文書の集合内の単語の重要度を反映するよう意図されている、数に関する統計量又は重み付け係数を指し得る。PTKを平文パーソナル文書に適用して、不透明文書ダイジェストを生成することができる。いくつかの態様において、PTKは、クライアントデバイスから送信され得ない。
【0034】
動作406において、暗号化された不透明文書ダイジェストが、不透明文書ダイジェストから生成され得る。いくつかの例において、PIKが、クライアントデバイス等の処理デバイスにより生成又は受信され得る。PIKは、1つ以上の文書に対して暗号化動作を実行するよう動作可能であり得る。暗号化動作は、概して、通常の情報(例えば平文)を、人間が読むことのできないテキスト(例えば暗号文)に変換することを含み得る。ファイル及び文書を暗号化するための方法は、当業者に周知であり、本開示において詳細には説明されない。PIKを不透明文書ダイジェストに適用して、暗号化された不透明文書ダイジェストを生成することができる。いくつかの態様において、PIKは、暗号化された不透明文書ダイジェストとともに、1つ以上の信頼されない又は部分的に信頼されるサーバデバイスに送信され得る。不透明文書ダイジェストを暗号化することは、不透明用語及びメタデータへのバルクアクセスに基づく統計的攻撃を防止することができる。
【0035】
図4Bは、本明細書で説明される、暗号化された文書及び文書スニペットを作成する例示的な方法420を示している。例示的な方法420は、動作422で開始し、動作422において、平文文書スニペットが、平文パーソナル文書を使用して生成され得る。いくつかの例において、文書スニペットは、平文パーソナル文書を解析し、様々なセクション、文字列、及び/又はメタデータを抽出することにより作成されるファイルであり得る。1つの特定の態様において、文書スニペットは、文書タイトル、文書の簡潔な説明、文書の作成者の名前、文書の始めの3つの文、文書タイプ、文書のプレビュー画像等を含み得る。
【0036】
動作424において、暗号化されたパーソナル文書が生成され得る。いくつかの例において、PDKが、クライアントデバイスにより生成又は受信され得る。PDKは、1つ以上の文書に対して暗号化動作を実行するよう動作可能であり得る。暗号化動作は、概して、通常の情報を、人間が読むことのできないテキスト(例えば暗号文)に変換することを含み得る。PDKを平文パーソナル文書及び/又は文書スニペットに適用して、暗号化されたパーソナル文書を生成することができる。いくつかの態様において、PDKは、クライアントデバイスから送信され得ない。いくつかの例において、PDK及びPIKは、類似点(例えば暗号化に基づく鍵)を共有し得、PDK及びPTKは、類似点(例えば、鍵がクライアントデバイスから送信されないこと)を共有し得るが、PTK、PIK、及びPDKは、別個の且つ/又は異なる鍵である。
【0037】
図5は、本明細書で説明される、分散ネットワークサービスのための秘匿性が強化されたパーソナル検索インデックスを構築する例示的な方法500を示している。例示的な方法500は、動作502で開始し、動作502において、暗号化された文書、暗号化された不透明文書ダイジェスト、及びPIKが、クラウドサービスシステムのサーバデバイスのコンポーネントにより受信され得る。サーバデバイスは、信頼されない又は部分的に信頼される環境を表し得、したがって、文書は、サーバデバイス又はサーバデバイスのユーザによりアクセス可能であり得ない。暗号化された文書は、暗号化されたパーソナル文書及び暗号化された文書スニペットを含み得る。
【0038】
動作504において、パーソナル検索インデックスが作成され得る。いくつかの例において、暗号化された不透明文書ダイジェスト及び不透明文書ダイジェストを暗号化するために使用されたPIKが、文書インデクシングを促進するプロセスに提供される。本明細書で使用される文書インデクシングとは、文書の主題を説明及び/又は要約するために用語又は記号により文書を分類することを指し得る。このプロセスは、PIKを使用して、暗号化された不透明文書ダイジェストを復号化することと、任意的に、復号化された不透明文書ダイジェストを他の不透明文書ダイジェストと集約して、不透明文書ダイジェスト集合を生成することと、を含み得る。いくつかの態様において、他の不透明文書ダイジェストは、クライアントデバイスから以前に受信されたものであり得る。例えば、他の不透明文書ダイジェストは、特定のユーザ又はクライアントデバイス上のユーザアカウントに関連付けられ得る。他の態様において、他の不透明文書ダイジェストは、特定のユーザ、ユーザアカウント、又はグループアカウントに関連付けられた様々なクライアントデバイスから以前に受信されたものであり得る。このプロセスは、不透明文書ダイジェスト集合をインデクシングして、不透明用語及び/又は記号を作成することをさらに含み得る。次いで、不透明用語及び/又は記号を使用して、パーソナル検索インデックスを構築することができる。いくつかの態様において、パーソナル検索インデックスは、特定のクライアントデバイスに関連付けられた情報又は特定のユーザアカウントに関連付けられた情報のみを含み得る。動作504は終了動作508に進む。
【0039】
動作506において、受信された暗号化された文書が記憶され得る。いくつかの例において、サーバデバイスは、ストレージ管理ユーティリティと通信することができる。ストレージ管理ユーティリティは、暗号化された文書を1つ以上のデータ記憶部に記憶することを促進することができる。いくつかの態様において、ストレージ管理ユーティリティは、サーバデバイス上、クラウドサービスシステムの別のコンポーネント上、又は、クラウドサービスシステムによりアクセス可能なコンピューティングデバイス上に配置され得る。データ記憶部は、ストレージ管理ユーティリティと同一の場所に配置されてもよいし、ストレージ管理ユーティリティから切り離して配置されてもよいし、様々なサーバデバイスの間で分散されてもよい。少なくとも1つの例において、データ記憶部は、文書作成者、特権閲覧者のグループ、又はサーバデバイスの特権ユーザのグループによってのみアクセス可能であるパーソナル文書記憶空間であり得る。動作506は終了動作508に進む。
【0040】
図6は、本明細書で説明される、分散ネットワークサービスのための秘匿性が強化されたパーソナル検索インデックスとともに使用される暗号化された文書を探すためのクエリを処理する例示的な方法600を示している。例示的な方法600は、動作602で開始し、動作602において、クライアントデバイスは、クラウドサービスによりサーバデバイスに記憶された文書を探すための検索クエリを受信又は生成することができる。いくつかの態様において、クエリは、クリアテキスト又は平文で受信又は生成され得る。1つの特定の態様において、クエリは、検索対象の文書をサーバデバイスに送信するために使用されたクライアントデバイスとは異なるクライアントデバイス上で生成される。
【0041】
動作604において、平文クエリダイジェストが、平文クエリを使用して生成され得る。いくつかの態様において、平文クエリを分析及び構文解析して、平文クエリ用語及び/又はメタデータを抽出することができる。分析動作及び構文解析動作は、クライアントデバイス上に配置されているソフトウェアにより、又は、別の信頼できる環境内に配置されているソフトウェアにより、実行され得る。平文クエリ用語及び/又はメタデータは、平文クエリダイジェストファイル等のダイジェストファイルに結合及び/又は編成され得る。
【0042】
動作606において、不透明クエリダイジェストが生成され得る。いくつかの例において、PTKが、クライアントデバイスにより生成又は受信され得る。PTKは、
図4に関連して上述したように、データ値の集合に対してデータ変換動作を実行するよう動作可能であり得る。PTKを平文クエリダイジェストに適用して、不透明クエリダイジェストを生成することができる。いくつかの態様において、平文クエリダイジェストに適用されるPTKは、検索対象の文書のうちの1つ以上の文書の平文文書ダイジェストに適用されるPTKと同じであり得る。
【0043】
動作608において、暗号化された不透明クエリダイジェストが、クライアントデバイスの信頼できる環境から、サーバデバイスの部分的に信頼される又は信頼されない環境に送信され得る。いくつかの態様において、不透明クエリダイジェストを暗号化するために使用されたPTKは、クライアントデバイス内にあるままであり得る。そのような態様において、クライアントデバイスからの平文情報は、クエリされるサーバデバイスに送信又は公開され得ない。
【0044】
図7は、本明細書で説明される、分散ネットワークサービスのための秘匿性が強化されたパーソナル検索インデックスを使用して、暗号化された文書を取得する例示的な方法700を示している。例示的な方法700は、動作702で開始し、動作702において、不透明クエリダイジェストが、分散ネットワークシステム(例えばクラウドサービスシステム)のサーバデバイスのコンポーネントにより受信され得る。サーバデバイスは、信頼されない又は部分的に信頼される環境を表し得、したがって、不透明クエリダイジェストは、サーバデバイス又はサーバデバイスのユーザによりアクセス可能であり得ない。
【0045】
動作704において、不透明クエリ結果が生成され得る。いくつかの例において、不透明クエリダイジェストの内容が、分析されて、パーソナル検索インデックスを検索するための入力として使用され得る。パーソナル検索インデックスは、以前に受信された不透明文書ダイジェストからの不透明データを含み得る。いくつかの態様において、パーソナル検索インデックスはまた、1つ以上の暗号化されたパーソナル文書からの暗号化された文書スニペットを含み得る。パーソナル検索インデックスの検索は、関連性、文書年齢、文書サイズ、ユーザプロファイル情報等といった基準に従ってランク付けされ得る不透明クエリ結果を生じさせ得る。いくつかの態様において、不透明クエリ結果は、不透明文書名及び/又は識別子を含み得る。一態様において、不透明クエリ結果は、代替的又は追加的に、暗号化された文書スニペットを含んでもよい。クエリワークフローから文書記憶が除かれ得るそのような態様において、フローは動作708に進む。
【0046】
任意的な動作706において、データ記憶部が、暗号化されたパーソナル文書を探すために検索され得る。いくつかの例において、不透明クエリ結果が、ストレージ管理ユーティリティに提供され得る。ストレージ管理ユーティリティは、不透明クエリ結果を分析して、データ記憶部において、不透明クエリ結果におけるデータに合致するデータ(例えば、文字列、単語、文字、トークン等)を有する暗号化されたパーソナル文書及び/又は文書スニペットを検索することができる。データ記憶部において発見された文書が、クライアントデバイスへのエクスポートのために処理され得る。
【0047】
動作708において、不透明クエリ結果、暗号化されたパーソナル文書、及び暗号化された文書スニペット、又は、これらの何らかの組合せが、サーバデバイスの部分的に信頼される又は信頼されない環境から、クライアントデバイスの信頼できる環境に送信され得る。
【0048】
図8は、本明細書で説明される、分散ネットワークサービスのための秘匿性が強化されたパーソナル検索インデックスを使用して、平文検索結果を生成する例示的な方法800を示している。例示的な方法800は、動作802で開始し、動作802において、クエリ結果情報が、クライアントデバイスのコンポーネントにより受信され得る。クエリ結果情報は、不透明クエリ結果、暗号化されたパーソナル文書、及び暗号化された文書スニペットを含み得る。
【0049】
動作804において、不透明クエリ結果が変換され得る。いくつかの例において、クライアントデバイスにアクセス可能であるPTKを使用して、不透明クエリ結果を平文クエリ結果に変換することができる。このPTKは、
図4Aに記載された平文文書ダイジェスト及び平文クエリダイジェストに適用されるPTKと同じであり得る。動作802及び804は、順次に又は並列に実行され得る。
【0050】
動作806において、暗号化された文書が復号化され得る。いくつかの例において、暗号化されたパーソナル文書及び/又は暗号化された文書スニペットが、クライアントデバイスにアクセス可能であるPDKを使用して、復号化され得る。いくつかの態様において、暗号化されたパーソナル文書を復号化するために適用されるPDKは、
図4Bに記載された平文パーソナル文書及び/又は文書スニペットに適用されるPDKと同じであり得る。
【0051】
任意的な動作808において、パーソナル文書がランク付けされる。いくつかの例において、ランク付けプロセスは、クライアントデバイスに関連付けられ得る。ランク付けプロセスは、平文クエリ結果とともに平文パーソナル文書及び/又は平文文書スニペットに適用され得る。いくつかの態様において、平文パーソナル文書は、いくつかの基準(例えば、文書内容、説明、年齢、サイズ、希少さ)に従ってランク付けされ得、その結果、最も関連性の高い文書が、結果リストにおいてより上位に配置されてもよいし、より関連性の低い文書からグラフィカルに線引きされてもよい。
【0052】
動作810において、ランク付き平文検索結果が生成され得る。いくつかの例において、動作808で説明されたランク付けプロセスは、ランク付きクエリ結果を含むファイルを生成することができる。次いで、このファイルを、このファイル内で参照されているそれぞれの文書又は文書スニペットとマッチングさせて、ランク付き平文検索結果を作成することができる。他の例において、ランク付け動作808が実行されなかった場合、平文クエリ結果が、平文パーソナル文書及び/又は平文文書スニペットに適用され得、その結果、平文検索結果が生成される。この平文検索結果は、特定の順序でランク付けされ得ない。いくつかの態様において、平文検索結果は、平文文書及び/又は文書スニペット(又はそれらへのリンク)を含み得る。
【0053】
図9〜
図11及び関連する記載は、本発明の例が実施され得る様々な動作環境の説明を提供する。しかしながら、
図9〜
図11に関して図示及び説明されるデバイス及びシステムは、例及び例示の目的のためにあり、本明細書で説明される、本発明の例を実施するために利用され得る多数のコンピューティングデバイス構成を限定するものではない。
【0054】
図9は、例えば、本開示の例が実施され得るシステムのコンポーネントといった、コンピューティングデバイス902の物理的コンポーネントを示すブロック図である。以下で説明されるコンピューティングデバイスコンポーネントは、上述したコンピューティングデバイスに適したものであり得る。基本的構成において、コンピューティングデバイス902は、少なくとも1つの処理ユニット904及びシステムメモリ906を含み得る。コンピューティングデバイスの構成及びタイプに応じて、システムメモリ906は、揮発性ストレージ(例えば、ランダムアクセスメモリ)、不揮発性ストレージ(例えば、読み取り専用メモリ)、フラッシュメモリ、又はこのようなメモリの任意の組合せを含み得るが、これらに限定されるものではない。システムメモリ906は、オペレーティングシステム907と、アプリケーション928、IOマネージャ924、及び他のユーティリティ926等のソフトウェアアプリケーション920を実行するのに適した1つ以上のプログラムモジュール908と、を含み得る。例として、システムメモリ906は、実行される命令を記憶することができる。システムメモリ906の他の例は、例として、ナレッジリソースや学習されたプログラムプール等のコンポーネントであり得る。オペレーティングシステム907は、例えば、コンピューティングデバイス902の動作を制御するのに適したものであり得る。さらに、本発明の例は、グラフィックスライブラリ、他のオペレーティングシステム、又は任意の他のアプリケーションプログラムとともに実施されてもよく、いかなる特定のアプリケーション又はシステムにも限定されるものではない。この基本的構成が、
図9において、破線922内のこれらのコンポーネントにより示されている。コンピューティングデバイス902は、さらなる特徴又は機能を有することができる。例えば、コンピューティングデバイス902は、例えば、磁気ディスク、光ディスク、又はテープ等のさらなるデータ記憶デバイス(着脱可能な記憶デバイス及び/又は着脱不可能な記憶デバイス)を含んでもよい。そのようなさらなる記憶デバイスが、
図9において、着脱可能な記憶デバイス909及び着脱不可能な記憶デバイス910により示されている。
【0055】
上述したように、複数のプログラムモジュール及びデータファイルが、システムメモリ906に記憶され得る。処理ユニット904上で実行されている間、プログラムモジュール908(例えば、アプリケーション928、入出力(IO)マネージャ924、及び他のユーティリティ926)は、例えば、
図4に示される動作方法400の段階のうちの1つ以上を含むがこれらに限定されるものではないプロセスを実行することができる。本発明の例に従って使用され得る他のプログラムモジュールは、電子メール及び連絡帳アプリケーション、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション、データベースアプリケーション、スライドプレゼンテーションアプリケーション、入力認識アプリケーション、描画又はコンピュータ支援アプリケーションプログラム等を含み得る。
【0056】
さらに、本発明の例は、ディスクリート電子素子、論理ゲートを含むパッケージ型又は集積型電子チップを備える電気回路において、マイクロプロセッサを利用する回路において、又は、電子素子若しくはマイクロプロセッサを含む単一チップにおいて、実施され得る。例えば、本発明の例は、
図9に示されるコンポーネントの各々又は多くが単一集積回路上に集積され得るシステムオンチップ(SOC)を介して実施され得る。そのようなSOCデバイスは、1つ以上の処理ユニット、グラフィックスユニット、通信ユニット、システム仮想化ユニット、及び様々なアプリケーション機能を含み得、これらの全てが、単一集積回路として、チップ基板上に集積される(「焼き付けられる」)。SOCを介して動作しているとき、本明細書で説明された機能は、コンピューティングデバイス902の他のコンポーネントとともに単一集積回路(チップ)上に集積された特定用途向けロジックを介して動作し得る。本開示の例はまた、機械的技術、光学技術、流体技術、及び量子技術を含むがこれらに限定されるものではない、例えばAND、OR、及びNOT等の論理演算を実行することができる他の技術を使用して、実施されてもよい。さらに、本発明の例は、汎用コンピュータ又は任意の他の回路若しくはシステムにおいて実施されてもよい。
【0057】
コンピューティングデバイス902は、キーボード、マウス、ペン、サウンド入力デバイス、音声入力/認識用デバイス、タッチ入力デバイス等といった1つ以上の入力デバイス912をさらに有することができる。コンピューティングデバイス902は、ディスプレイ、スピーカ、プリンタ等といった1つ以上の出力デバイス914も含み得る。前述のデバイスは例であり、他のデバイスも使用され得る。コンピューティングデバイス902は、他のコンピューティングデバイス918との通信を可能にする1つ以上の通信接続916を含み得る。適切な通信接続916の例は、RF送信機、受信機、及び/又はトランシーバ回路;ユニバーサルシリアルバス(USB)、パラレル、及び/又はシリアルポートを含むが、これらに限定されるものではない。
【0058】
本明細書で使用されるコンピュータ読み取り可能な媒体という用語は、コンピュータ記憶媒体を含み得る。コンピュータ記憶媒体は、コンピュータ読み取り可能な命令、データ構造、又はプログラムモジュールといった情報を記憶するための任意の方法又は技術により実装された揮発性及び不揮発性の着脱可能及び着脱不可能な媒体を含み得る。システムメモリ906、着脱可能な記憶デバイス909、及び着脱不可能な記憶デバイス910は全て、コンピュータ記憶媒体(すなわち、メモリストレージ)の例である。コンピュータ記憶媒体は、RAM、ROM、電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、フラッシュメモリ、若しくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、若しくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、若しくは他の磁気記憶デバイス、又は、情報を記憶するために使用することができ、コンピューティングデバイス902がアクセスできる任意の他の製品を含み得る。そのようなコンピュータ記憶媒体のいずれもが、コンピューティングデバイス902の一部であり得る。コンピュータ記憶媒体は、搬送波、又は、他の伝搬データ信号若しくは変調されたデータ信号を含まない。
【0059】
通信媒体は、搬送波や他の伝送機構等、変調されたデータ信号内のコンピュータ読み取り可能な命令、データ構造、プログラムモジュール、又は他のデータにより具現化され得、任意の情報配信媒体を含み得る。「変調されたデータ信号」という用語は、信号内の情報を符号化するように設定又は変更された1つ以上の特性を有する信号を表し得る。限定ではなく例として、通信媒体は、有線ネットワーク又は直接配線接続等の有線媒体と、音響、無線周波数(RF)、赤外線、及び他の無線媒体等の無線媒体と、を含み得る。
【0060】
図10A及び
図10Bは、携帯電話機、スマートフォン、携帯情報端末、タブレットパーソナルコンピュータ、ラップトップコンピュータ等といった、本発明の例が実施され得るモバイルコンピューティングデバイス1000を示している。例えば、モバイルコンピューティングデバイス1000は、システム100のコンポーネントが、とりわけ、
図4に記載された処理方法を実行するよう構成され得るシステム100として実装され得る。
図10Aを参照すると、本発明の例を実装するためのモバイルコンピューティングデバイス1000の一例が示されている。基本的構成において、モバイルコンピューティングデバイス1000は、入力要素及び出力要素の両方を有するハンドヘルドコンピュータである。モバイルコンピューティングデバイス1000は、一般に、ユーザがモバイルコンピューティングデバイス1000に情報を入力することを可能にする1つ以上の入力ボタン1010及びディスプレイ1005を含む。モバイルコンピューティングデバイス1000のディスプレイ1005はまた、入力デバイス(例えばタッチスクリーンディスプレイ)として機能することができる。任意的な側面入力要素1015が含まれる場合、側面入力要素1015は、さらなるユーザ入力を可能にする。側面入力要素1015は、回転スイッチ、ボタン、又は任意の他のタイプの手動入力要素であり得る。代替例において、モバイルコンピューティングデバイス1000は、より多い又はより少ない入力要素を組み込んでもよい。例えば、ディスプレイ1005は、いくつかの例において、タッチスクリーンでなくてもよい。別の代替例において、モバイルコンピューティングデバイス1000は、セルラ電話機等のポータブル電話システムである。モバイルコンピューティングデバイス1000は、任意的なキーパッド1035を含んでもよい。任意的なキーパッド1035は、物理キーパッドであってもよいし、タッチスクリーンディスプレイ上に生成される「ソフト」キーパッドであってもよい。様々な例において、出力要素は、グラフィカルユーザインタフェース(GUI)を表示するためのディスプレイ1005、視覚的インジケータ1020(例えば発光ダイオード)、及び/又はオーディオトランスデューサ1025(例えばスピーカ)を含む。いくつかの例において、モバイルコンピューティングデバイス1000は、ユーザに触覚フィードバックを提供するための振動トランスデューサを組み込む。さらに別の例において、モバイルコンピューティングデバイス1000は、外部デバイスに信号を送信する又は外部デバイスから信号を受信するためのオーディオ入力ポート(例えばマイクロフォンジャック)、オーディオ出力ポート(例えばヘッドフォンジャック)、及びビデオ出力ポート(例えばHDMI(登録商標)ポート)等の入力ポート及び/又は出力ポートを組み込む。
【0061】
図10Bは、モバイルコンピューティングデバイスの一例のアーキテクチャを示すブロック図である。すなわち、モバイルコンピューティングデバイス1000は、いくつかの例を実装するためにシステム(すなわちアーキテクチャ)1002を組み込むことができる。いくつかの例において、システム1002は、1つ以上のアプリケーション(例えば、ブラウザ、電子メール、入力処理、カレンダー、連絡帳マネージャ、メッセージングクライアント、ゲーム、及びメディアクライアント/プレーヤ)を実行することができる「スマートフォン」として実装される。
【0062】
1つ以上のアプリケーションプログラム1066は、メモリ1062にロードされ、オペレーティングシステム1064上で又はオペレーティングシステム1064に関連して、実行され得る。アプリケーションプログラムの例は、電話ダイヤラプログラム、電子メールプログラム、個人情報管理(PIM)プログラム、ワードプロセッシングプログラム、スプレッドシートプログラム、インターネットブラウザプログラム、メッセージングプログラム等を含む。システム1002はまた、メモリ1062内に不揮発性ストレージ領域1068を含む。不揮発性ストレージ領域1068は、システム1002に電力が供給されない場合に失われるべきでない永続的情報を記憶するために使用され得る。アプリケーションプログラム1066は、電子メールアプリケーションにより使用される電子メール又は他のメッセージ等といった情報を不揮発性ストレージ領域1068に記憶することができ、不揮発性ストレージ領域1068内のそのような情報を使用することができる。同期アプリケーション(図示せず)が、システム1002に存在し、ホストコンピュータに存在する対応する同期アプリケーションとインタラクトするようにプログラムされ、ホストコンピュータに記憶される対応する情報と同期される情報が不揮発性ストレージ領域1068に記憶されて保持されるようにする。本明細書で説明されたアプリケーション928、IOマネージャ924、及び他のユーティリティ926を含む他のアプリケーションも、メモリ1062にロードされ、モバイルコンピューティングデバイス1000上で実行され得ることを理解されたい。
【0063】
システム1002は、1つ以上のバッテリとして実装され得る電源1070を有する。電源1070は、そのようなバッテリを補足又は再充電するACアダプタ又は電源ドッキングクレードル等の外部電源をさらに含んでもよい。
【0064】
システム1002は、システム1002と1つ以上の周辺デバイスとの間の接続を円滑にする機能を実行する周辺デバイスポート1030を含み得る。周辺デバイスポート1030との間の伝送は、オペレーティングシステム1064の制御下で行われる。すなわち、周辺デバイスポート1030により受信された通信は、オペレーティングシステム1064を介してアプリケーションプログラム1066に伝達され得、その逆も同様である。
【0065】
システム1002はまた、無線周波数通信を送信及び受信する機能を実行する無線機1072を含み得る。無線機1072は、通信キャリア又は通信サービスプロバイダを介する、システム1002と「外部世界」との間の無線接続を円滑にする。無線機1072との間の伝送は、オペレーティングシステム1064の制御下で行われる。すなわち、無線機1072により受信された通信は、オペレーティングシステム1064を介してアプリケーションプログラム1066に伝達され得、その逆も同様である。
【0066】
視覚的インジケータ1020は、視覚的通知を提供するために使用され得、且つ/又は、オーディオインタフェース1074は、オーディオトランスデューサ1025を介する可聴通知をもたらすために使用され得る。図示される例において、視覚的インジケータ1020は発光ダイオード(LED)であり、オーディオトランスデューサ1025はスピーカである。これらのデバイスは、プロセッサ1060及び他のコンポーネントがバッテリ電力を節約するためにシャットダウンし得る場合であっても、アクティブ化されたときに通知メカニズムにより指示される時間期間の間オンであり続けるように、電源1070に直接的に接続され得る。LEDは、ユーザがデバイスの電源オン状態を指示するアクションをとるまで、無期限にオンであり続けるようにプログラムされてもよい。オーディオインタフェース1074は、ユーザに可聴信号を提供し、ユーザからの可聴信号を受信するために、使用される。例えば、オーディオインタフェース1074は、オーディオトランスデューサ1025に接続されることに加えて、電話会話を円滑にするため等、可聴入力を受け取るためのマイクロフォンにも接続され得る。本発明の例に従うと、マイクロフォンはまた、以下で説明されるように、通知の制御を円滑にするオーディオセンサとして機能することができる。システム1002は、静止画像、ビデオストリーム等を記録するためのオンボードカメラ1030の動作を可能にするビデオインタフェース1076をさらに含み得る。
【0067】
システム1002を実装するモバイルコンピューティングデバイス1000は、さらなる特徴又は機能を有することができる。例えば、モバイルコンピューティングデバイス1000は、磁気ディスク、光ディスク、又はテープ等のさらなるデータ記憶デバイス(着脱可能な記憶デバイス及び/又は着脱不可能な記憶デバイス)をさらに含み得る。そのようなさらなる記憶デバイスが、
図10Bにおいて、不揮発性ストレージ領域1068により示されている。
【0068】
モバイルコンピューティングデバイス1000により生成又は取得され、システム1002を介して記憶されるデータ/情報は、上述したように、モバイルコンピューティングデバイス1000にローカルに記憶されることもあるし、そのようなデータは、無線機1072を介して、又は、モバイルコンピューティングデバイス1000と、例えば、インターネット等の分散コンピューティングネットワークにおけるサーバコンピュータといった、モバイルコンピューティングデバイス1000に関連付けられた別のコンピューティングデバイスと、の間の有線接続を介して、デバイスによりアクセスされ得る任意の数の記憶媒体に記憶されることもある。そのようなデータ/情報は、無線機1072を介して又は分散コンピューティングネットワークを介して、モバイルコンピューティングデバイス1000によりアクセスされ得ることを理解されたい。同様に、そのようなデータ/情報は、電子メール及び協調的データ/情報共有システムを含む周知のデータ/情報転送及び記憶手段に従って、記憶及び使用のために、コンピューティングデバイス間で容易に転送され得る。
【0069】
図11は、上述したように、ストレージシステム上のターゲットデータに確実にアクセスし、1つ以上のクライアントデバイスへの通信失敗を処理するアプリケーションを提供するためのシステムのアーキテクチャの一例を示している。アプリケーション928、IOマネージャ924、他のユーティリティ926、及びストレージに関連してアクセス、インタラクト、又は編集されるターゲットデータは、異なる通信チャネル又は他のタイプのストレージに記憶され得る。例えば、様々な文書は、ディレクトリサービス1122、ウェブポータル1124、メールボックスサービス1126、インスタントメッセージングストア1128、又はソーシャルネットワーキングサイト1130を使用して記憶され得る。アプリケーション928、IOマネージャ924、他のユーティリティ926、及びストレージシステムは、本明細書で説明されたように、データ利用を可能にするために、これらのタイプのシステム等のうちの任意のものを使用することができる。サーバ1120は、ネットワーク1115を介して、一般コンピューティングデバイス902及び1つ以上のモバイルデバイス1000上で動作するクライアントにより使用されるストレージシステムを提供することができる。例えば、ネットワーク1115は、インターネット又は任意の他のタイプのローカルエリアネットワーク若しくはワイドエリアネットワークを含み得、クライアントノードは、パーソナルコンピュータ、タブレットコンピューティングデバイスにより具現化されるコンピューティングデバイス902として、且つ/又は、モバイルコンピューティングデバイス1000(例えば、スマートフォン)により、実装され得る。クライアントコンピューティングデバイス902又は1000のこれらの例のいずれも、記憶部1116からコンテンツを取得することができる。
【0070】
本明細書を通じて「一例」又は「ある例」との言及がなされているが、これは、特定の記載されている特徴、構造、又は特性が、少なくとも1つの例に含まれることを意味する。したがって、そのような語句の使用は、2つ以上の例を指すことがある。さらに、記載されている特徴、構造、又は特性は、1つ以上の例において、任意の適切な形で組み合わされることがある。
【0071】
しかしながら、そのような例は、具体的な詳細のうちの1つ以上がなくても、又は、他の方法、リソース、材料等とともに、実施され得ることが、当業者には認識できよう。他の例において、周知の構造、リソース、又は動作は、そのような例の態様を単に曖昧にしないようにするために、詳細には図示又は説明されていない。
【0072】
サンプルの例及び用途が、図示及び説明されたが、そのような例は、上述した正確な構成及びリソースに限定されるものではないことを理解されたい。特許請求される例の範囲から逸脱することなく、本明細書で開示された方法及びシステムの配置、動作、及び詳細において、様々な修正、変更、及び変形が可能であることが、当業者には明らかであろう。