図面 (/)

技術 モバイルデバイスのリソースへのアクセス許可を管理するための方法およびシステム

出願人 フェイスブック,インク.
発明者 マロッツィ、マシューロバート
出願日 2014年12月31日 (5年10ヶ月経過) 出願番号 2017-535032
公開日 2018年3月29日 (2年7ヶ月経過) 公開番号 2018-508857
状態 特許登録済
技術分野 ストアードプログラムにおける機密保護 記憶装置の機密保護
主要キーワード 推奨内容 ユーザ指定条件 加入者関係 デジタル音楽プレイヤー ソリッドステートメモリ装置 グラフデータベース 要求位置 位置検出デバイス
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2018年3月29日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (9)

課題・解決手段

電子デバイスにおける第1のアプリケーションは、電子デバイスのリソースアクセスするための第1の要求を第2のアプリケーションに送信する。第1および第2のアプリケーションは、電子デバイスのオペレーティングシステム上で動作する。第1の要求に応答して第2のアプリケーションが使用されることで、第1のアプリケーションがリソースにアクセスすることの許可が電子デバイスのユーザに求められる。第1のアプリケーションがリソースにアクセスする許可を与える第1のユーザ入力が受信されると、第1のユーザ入力に応答して第2のアプリケーションが使用されることで、第1のアプリケーションがリソースにアクセスするための許可が与えられる。

概要

背景

モバイルデバイスアプリケーション豊富さと共に、モバイルデバイスによって提供されるリソースおよび機能の範囲が拡大し続けている。モバイルデバイスのアプリケーションによって使用されるデバイスリソースへの安全なアクセスを提供することが、ますます消費者関心事となっている。消費者は、そのアプリケーションが消費者のプライバシーを尊重する適切な方法でデバイスリソースにアクセスするものであると信頼しない場合にはそのアプリケーションを使用したくないと考える。アプリケーションによるアクセスの信頼性の問題は、詳細な権限管理機能の欠如、および観察されるリソースアクセス動作の監視と実行の課題によって、さらに複雑化されている。

概要

電子デバイスにおける第1のアプリケーションは、電子デバイスのリソースにアクセスするための第1の要求を第2のアプリケーションに送信する。第1および第2のアプリケーションは、電子デバイスのオペレーティングシステム上で動作する。第1の要求に応答して第2のアプリケーションが使用されることで、第1のアプリケーションがリソースにアクセスすることの許可が電子デバイスのユーザに求められる。第1のアプリケーションがリソースにアクセスする許可を与える第1のユーザ入力が受信されると、第1のユーザ入力に応答して第2のアプリケーションが使用されることで、第1のアプリケーションがリソースにアクセスするための許可が与えられる。

目的

モバイルデバイスのアプリケーションによって使用されるデバイスリソースへの安全なアクセスを提供する

効果

実績

技術文献被引用数
1件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

方法であって、1つ以上のプロセッサと、前記1つ以上のプロセッサにより実行するための命令を格納したメモリとを備える電子デバイスにおいて、前記電子デバイスのオペレーティングシステム上で動作する第1のアプリケーションから前記電子デバイスのオペレーティングシステム上で動作する第2のアプリケーションに、前記第1のアプリケーションが前記電子デバイスのリソースアクセスするための第1の要求を送ること、前記第1の要求に応答して、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を前記電子デバイスのユーザに求めること、前記第1のアプリケーションが前記リソースにアクセスするための許可を与える第1のユーザ入力を受信すること、および前記第1のユーザ入力に応答して、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を与えることを備える方法。

請求項2

前記リソースは、前記電子デバイスのマイクロフォン、前記電子デバイスのメッセージングアプリケーション、前記電子デバイスの位置追跡デバイス、および前記電子デバイスのカメラからなる群から選択される、請求項1に記載の方法。

請求項3

前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を与えることは、前記第2のアプリケーションを使用して前記リソースからデータを取得すること、および前記第2のアプリケーションから前記第1のアプリケーションに前記データを提供することを含む、請求項1に記載の方法。

請求項4

前記第1のユーザ入力は、前記第1のアプリケーションが前記リソースにアクセスすることを1度のみ許可することを指定するものであり、前記方法は、前記第1のユーザ入力を受信し、前記第1のユーザ入力に応答して、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスする許可を与えた後に、前記第1のアプリケーションが前記リソースにアクセスするための第2の要求を前記第1のアプリケーションから前記第2のアプリケーションに送ること、前記第2の要求に応答して、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を前記ユーザに求めること、前記第1のアプリケーションが前記リソースにアクセスするための許可を与えるか否かを示す第2のユーザ入力を受信すること、および前記第2のユーザ入力に従って、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスすることを許可または拒否することをさらに備える、請求項1に記載の方法。

請求項5

前記第1の要求に応答して、前記第1のアプリケーションが前記リソースにアクセスすることを許可する権限現時点で前記第2のアプリケーションに与えられていないと判定することをさらに備え、前記判定に応答して、前記第1のアプリケーションが前記リソースにアクセスするための許可を前記ユーザに求める、請求項1に記載の方法。

請求項6

前記第1のユーザ入力は、前記第1のアプリケーションが前記リソースにアクセスすることを許可する期間を指定するものであり、前記方法は、前記第1のユーザ入力に従って、前記期間の間、前記第2のアプリケーションを繰り返し使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を自動的に与えることをさらに備える、請求項1に記載の方法。

請求項7

前記第1のユーザ入力は、前記第1のアプリケーションが前記リソースにアクセスすることを許可する許可位置を指定するものであり、前記方法は、前記第1のユーザ入力に従って、前記電子デバイスの検出位置が前記許可位置に対応する間、前記第2のアプリケーションを繰り返し使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を自動的に与えることをさらに備える、請求項1に記載の方法。

請求項8

前記第1のユーザ入力は、前記第1のアプリケーションが前記リソースにアクセスすることを許可する許可ユーザを指定するものであり、前記方法は、前記第1のユーザ入力に従って、前記電子デバイスのユーザが前記許可ユーザであると判定されたときに、前記第2のアプリケーションを繰り返し使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を自動的に与えることをさらに備える、請求項1に記載の方法。

請求項9

前記第1のユーザ入力は、前記第1のアプリケーションが前記リソースにアクセスすることを許可する条件を指定するものであり、前記方法は、前記第2のアプリケーションに割り当てられたメモリに前記条件を格納すること、および前記第2のアプリケーションにおいて、前記第1のアプリケーションからの後続の要求に応答して、前記条件を使用して、前記第1のアプリケーションが前記リソースにアクセスすることを許可するか否かを判定することをさらに備える、請求項1に記載の方法。

請求項10

前記条件は、前記第1のアプリケーションに対応するフォアグラウンドプロセスによる前記リソースへのアクセスを許可するが、前記第1のアプリケーションに対応するバックグラウンドプロセスに対してはアクセスを許可しない、請求項9に記載の方法。

請求項11

前記条件は、前記第1のアプリケーションに対応するバックグラウンドプロセスによる前記リソースへのアクセスを許可するが、前記第1のアプリケーションに対応するフォアグラウンドプロセスに対してはアクセスを許可しない、請求項9に記載の方法。

請求項12

前記リソースは、前記電子デバイスの位置追跡デバイスを含み、前記第1のユーザ入力は、前記位置追跡デバイスへのアクセスに関して前記第1のアプリケーションに対して許可すべき分解能度合いを指定するものである、請求項1に記載の方法。

請求項13

前記第1のユーザ入力は、位置追跡の分解能を低分解能高分解能との間で選択するものである、請求項12に記載の方法。

請求項14

前記リソースにアクセスするために前記第1のアプリケーションから送られた要求の数を或る期間に亘って判定すること、および前記要求の数が閾値を満たすことに応じて、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスすることを拒否することをさらに備える請求項1に記載の方法。

請求項15

前記要求の数が前記閾値を満たすことに応じて、前記電子デバイスの前記ユーザにアラート通知することをさらに備える請求項14に記載の方法。

請求項16

前記第1のアプリケーションから前記第2のアプリケーションに前記第1のアプリケーションが前記リソースにアクセスするための前記第1の要求を含む複数の要求を送ること、前記複数の要求のレコードを格納すること、および前記レコードに基づいて、前記複数の要求に関する1つ以上の統計情報を前記ユーザに提示することをさらに備える請求項1に記載の方法。

請求項17

前記第1のアプリケーションから前記第2のアプリケーションに前記第1のアプリケーションが前記リソースにアクセスするための前記第1の要求を含む複数の要求を送ること、前記複数の要求のそれぞれに応答して、前記第1のアプリケーションが前記リソースにアクセスするための許可を前記ユーザに求め、前記第1のアプリケーションが前記リソースにアクセスすることを許可または拒否するユーザ入力をそれぞれ受信すること、前記複数の要求のそれぞれのレコード、それぞれの前記ユーザ入力、および前記電子デバイスのそれぞれのコンテキスト情報を格納すること、および前記レコードに基づいて、前記リソースへの前記第1のアプリケーションのアクセスを許可または拒否する条件の推奨を前記ユーザに提示することをさらに備える請求項1に記載の方法。

請求項18

前記コンテキスト情報は、それぞれの前記ユーザ入力を受信したときの前記電子デバイスの位置およびそれぞれの前記ユーザ入力を受信した回数のうちの少なくとも1つを含む、請求項17に記載の方法。

請求項19

電子デバイスであって、1つ以上のプロセッサと、前記1つ以上のプロセッサにより実行するための1つ以上のプログラムを格納したメモリと、を備え、前記1つ以上のプログラムは、前記電子デバイスのオペレーティングシステム上で動作する第1のアプリケーションから前記電子デバイスのオペレーティングシステム上で動作する第2のアプリケーションに、前記第1のアプリケーションが前記電子デバイスのリソースにアクセスするための第1の要求を送ること、前記第1の要求に応答して、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を前記電子デバイスのユーザに求めること、および前記第1のアプリケーションが前記リソースにアクセスするための許可を与える第1のユーザ入力に応答して、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を与えることを実行するための命令を含む、電子デバイス。

請求項20

電子デバイスの1つ以上のプロセッサによって実行するための1つ以上のプログラムを格納した非一時的なコンピュータ可読記憶媒体であって、前記1つ以上のプログラムは、第1のアプリケーションと異なる第2のアプリケーションであって、前記第1および第2のアプリケーションが動作する前記電子デバイスのオペレーティングシステムとは異なる前記第2のアプリケーションに対応し、前記1つ以上のプログラムは、前記第1のアプリケーションから、前記第1のアプリケーションが前記電子デバイスのリソースにアクセスするための第1の要求を受信すること、前記第1の要求に応答して、前記第1のアプリケーションが前記リソースにアクセスするための許可を前記電子デバイスのユーザに求めること、および前記第1のアプリケーションが前記リソースにアクセスするための許可を与える第1のユーザ入力に応答して、前記第1のアプリケーションが前記リソースにアクセスするための許可を与えることを実行するための命令を含む、非一時的なコンピュータ可読記憶媒体。

請求項21

前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を与えることは、前記第2のアプリケーションを使用して前記リソースからデータを取得すること、および、前記第2のアプリケーションから前記第1のアプリケーションに前記データを提供することを含む、請求項1または2に記載の方法。

請求項22

前記第1のユーザ入力は、前記第1のアプリケーションが前記リソースにアクセスすることを1度のみ許可することを指定するものであり、前記方法は、前記第1のユーザ入力を受信し、前記第1のユーザ入力に応答して、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスする許可を与えた後に、前記第1のアプリケーションが前記リソースにアクセスするための第2の要求を前記第1のアプリケーションから前記第2のアプリケーションに送ること、前記第2の要求に応答して、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を前記ユーザに求めること、前記第1のアプリケーションが前記リソースにアクセスするための許可を与えるか否かを示す第2のユーザ入力を受信すること、および前記第2のユーザ入力に従って、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスすることを許可または拒否することをさらに備える、請求項1、2、21のいずれか一項に記載の方法。

請求項23

前記第1の要求に応答して、前記第1のアプリケーションが前記リソースにアクセスすることを許可する権限が現時点で前記第2のアプリケーションに与えられていないと判定することをさらに備え、前記判定に応答して、前記第1のアプリケーションが前記リソースにアクセスするための許可を前記ユーザに求める、請求項1、2、21、22のいずれか一項に記載の方法。

請求項24

前記第1のユーザ入力は、前記第1のアプリケーションが前記リソースにアクセスすることを許可する期間を指定するものであり、前記方法は、前記第1のユーザ入力に従って、前記期間の間、前記第2のアプリケーションを繰り返し使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を自動的に与えることをさらに備える、請求項1、2、21〜23のいずれか一項に記載の方法。

請求項25

前記第1のユーザ入力は、前記第1のアプリケーションが前記リソースにアクセスすることを許可する許可位置を指定するものであり、前記方法は、前記第1のユーザ入力に従って、前記電子デバイスの検出位置が前記許可位置に対応する間、前記第2のアプリケーションを繰り返し使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を自動的に与えることをさらに備える、請求項1、2、21〜24のいずれか一項に記載の方法。

請求項26

前記第1のユーザ入力は、前記第1のアプリケーションが前記リソースにアクセスすることを許可する許可ユーザを指定するものであり、前記方法は、前記第1のユーザ入力に従って、前記電子デバイスのユーザが前記許可ユーザであると判定されたときに、前記第2のアプリケーションを繰り返し使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を自動的に与えることをさらに備える、請求項1、2、21〜25のいずれか一項に記載の方法。

請求項27

前記第1のユーザ入力は、前記第1のアプリケーションが前記リソースにアクセスすることを許可する条件を指定するものであり、前記方法は、前記第2のアプリケーションに割り当てられたメモリに前記条件を格納すること、および前記第2のアプリケーションにおいて、前記第1のアプリケーションからの後続の要求に応答して、前記条件を使用して、前記第1のアプリケーションが前記リソースにアクセスすることを許可するか否かを判定することをさらに備え、前記条件は、前記第1のアプリケーションに対応するフォアグラウンドプロセスによって前記リソースにアクセスすることを許可するが、前記第1のアプリケーションに対応するバックグラウンドプロセスに対してはアクセスを許可しないものであり、および/または、前記第1のアプリケーションに対応するバックグラウンドプロセスによって前記リソースにアクセスすることを許可するが、前記第1のアプリケーションに対応するフォアグラウンドプロセスに対してはアクセスを許可しないものである、請求項1、2、21〜26のいずれか一項に記載の方法。

請求項28

前記リソースは、前記電子デバイスの位置追跡デバイスを含み、前記第1のユーザ入力は、前記位置追跡デバイスへのアクセスに関して前記第1のアプリケーションに対して許可すべき分解能の度合いを指定するものであり、前記第1のユーザ入力は、位置追跡の分解能を低分解能と高分解能との間で選択するものである、請求項1、2、21〜27のいずれか一項に記載の方法。

請求項29

前記リソースにアクセスするために前記第1のアプリケーションから送られた要求の数を或る期間に亘って判定すること、前記要求の数が閾値を満たすことに応じて、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスすることを拒否すること、および前記要求の数が前記閾値を満たすことに応じて、前記電子デバイスの前記ユーザにアラートを通知することをさらに備える請求項1、2、21〜28のいずれか一項に記載の方法。

請求項30

前記第1のアプリケーションから前記第2のアプリケーションに前記第1のアプリケーションが前記リソースにアクセスするための前記第1の要求を含む複数の要求を送ること、前記複数の要求のレコードを格納すること、および前記レコードに基づいて、前記複数の要求に関する1つ以上の統計情報を前記ユーザに提示することをさらに備える請求項1、2、21〜29のいずれか一項に記載の方法。

請求項31

前記第1のアプリケーションから前記第2のアプリケーションに前記第1のアプリケーションが前記リソースにアクセスするための前記第1の要求を含む複数の要求を送ること、前記複数の要求のそれぞれに応答して、前記第1のアプリケーションが前記リソースにアクセスするための許可を前記ユーザに求め、前記第1のアプリケーションが前記リソースにアクセスすることを許可または拒否するユーザ入力をそれぞれ受信すること、前記複数の要求のそれぞれのレコード、それぞれの前記ユーザ入力、および前記電子デバイスのそれぞれのコンテキスト情報を格納すること、および前記レコードに基づいて、前記リソースへの前記第1のアプリケーションのアクセスを許可または拒否する条件の推奨を前記ユーザに提示することをさらに備え、前記コンテキスト情報は、それぞれの前記ユーザ入力を受信したときの前記電子デバイスの位置、およびそれぞれの前記ユーザ入力を受信した回数のうちの少なくとも1つを含む、請求項1、2、21〜30のいずれか一項に記載の方法。

請求項32

請求項1、2、21〜31のいずれか一項に記載の方法を行うべく実行される際に動作可能なソフトウェア具現化する1つ以上の非一時的なコンピュータ可読記憶媒体。

請求項33

1つ以上のプロセッサと、前記プロセッサに接続され、前記プロセッサにより実行可能な命令を含む少なくとも1つのメモリとを備えたシステムであって、前記プロセッサは、請求項1、2、21〜31のいずれか一項に記載の方法を行うべく前記命令を実行する際に動作可能である、システム。

技術分野

0001

本開示は、概してモバイルデバイスアプリケーションアクセス許可に関し、これに限定されないが、モバイルデバイスリソースへのアクセス許可を管理することを含む。

背景技術

0002

モバイルデバイスのアプリケーションの豊富さと共に、モバイルデバイスによって提供されるリソースおよび機能の範囲が拡大し続けている。モバイルデバイスのアプリケーションによって使用されるデバイスリソースへの安全なアクセスを提供することが、ますます消費者関心事となっている。消費者は、そのアプリケーションが消費者のプライバシーを尊重する適切な方法でデバイスリソースにアクセスするものであると信頼しない場合にはそのアプリケーションを使用したくないと考える。アプリケーションによるアクセスの信頼性の問題は、詳細な権限管理機能の欠如、および観察されるリソースアクセス動作の監視と実行の課題によって、さらに複雑化されている。

発明が解決しようとする課題

0003

従って、モバイルデバイスリソースへのアクセス許可を管理するための方法、システム、およびインタフェースが必要とされている。

課題を解決するための手段

0004

オペレーティングシステムとは別のアプリケーションを使用して、要求元のアプリケーションからのアクセス要求を受信し、ユーザに許可を求め、そのユーザからの許可に従って要求元のアプリケーションのアクセスを許可または拒否することで、デバイスリソースへのアクセスがより安全に管理および監視される。このような方法、システム、およびインタフェースは、任意で、モバイルデバイスリソースへのアクセス許可を管理するための従来方法を補完または置き換える。

0005

いくつかの実施形態によれば、方法は、1つ以上のプロセッサと、前記1つ以上のプロセッサにより実行するための命令を格納したメモリとを備える電子デバイス(たとえば、モバイルデバイス)で実行される。方法は、第1のアプリケーションから第2のアプリケーションに前記第1のアプリケーションが前記電子デバイスのリソースにアクセスするための第1の要求を送ることを含む。前記第1および第2のアプリケーションは、前記電子デバイスのオペレーティングシステム上で実行される。前記第1の要求に応答して、前記第2のアプリケーションが使用されることで、前記第1のアプリケーションが前記リソースにアクセスするための許可が前記電子デバイスのユーザに求められる。前記第1のアプリケーションが前記リソースにアクセスするための許可を与える第1のユーザ入力が受信されると、前記第1のユーザ入力に応答して、前記第2のアプリケーションが使用されることで、前記第1のアプリケーションが前記リソースにアクセスするための許可が与えられる。

0006

いくつかの実施形態によれば、電子デバイス(例えば、モバイルデバイスなどのクライアントデバイス)は、1つ以上のプロセッサと、メモリと、1つ以上のプログラムとを含む。前記1つ以上のプログラムは、前記メモリに格納され、前記1つ以上のプロセッサによって実行されるように構成される。前記1つ以上のプログラムは、上述の方法の動作を実行するための命令を含む。いくつかの実施形態によれば、非一時的なコンピュータ可読記憶媒体は、電子デバイスにより実行されるとき前記電子デバイスに上述の方法の動作を実行させる命令を格納する。いくつかの実施形態によれば、電子デバイスは、上述の方法の動作を実行するための手段を含む。

0007

このように、許可設定を管理および監視するためのプロキシとして機能する、オペレーティングシステムとは別のアプリケーションを使用することによって、アプリケーションは新たなリリースやオペレーティングシステムの更新から分離され、オペレーティングシステム自体によって実装される場合に実現可能となり得るものよりも広範囲デバイスとの互換性が可能となる。さらに、個別のプロキシアプリケーションは、オペレーティングシステム開発者アクセス権の使用に関して提供できない透明性/アカウンタビリティを可能にするAPIの開発およびフォローを可能とする。このため、モバイルデバイスリソースへのアクセス許可を管理するためのより効率的で信頼性の高い方法が電子デバイスに提供され、これらのデバイスの有効性効率性、およびユーザ満足度が向上する。

0008

実施形態はとりわけ、方法、記憶媒体、システム、およびコンピュータプログラム製品を対象とした添付の特許請求の範囲に開示される。一つのカテゴリ(例えば、方法)にて言及されている特徴は他のカテゴリ(例えば、システム)でも言及され得る。添付の特許請求の範囲の請求項に記載された従属関係または参照は、形式的な理由のみのために選択されているが、任意の先行する請求項(特に、多数従属関係)に対する意図的な参照によって生じる任意の主題も特許請求され得るものであり、その結果、添付の特許請求の範囲の請求項において選択されている従属関係にかかわらず、任意の請求項の組み合わせおよびそれらの特徴が開示および特許請求され得る。また、特許請求され得る主題は、添付の特許請求の範囲の請求項に記載された特徴の組み合わせだけでなく、それらの請求項における特徴の任意の他の組み合わせも含む。請求項にて言及されている各特徴は、それらの請求項における任意の他の特徴またはそれらの組み合わせと組み合わせることができる。また、本明細書に記載ないし図示された実施形態および特徴は、別々の請求項で特許請求され得るものであり、および/または本明細書に記載ないし図示された任意の実施形態または特徴との任意の組み合わせ、あるいは添付の特許請求の範囲の請求項の任意の特徴との任意の組み合わせで特許請求され得る。

0009

いくつかの実施形態において、方法は、1つ以上のプロセッサと、前記1つ以上のプロセッサにより実行するための命令を格納したメモリとを備える電子デバイスにおいて、
前記電子デバイスのオペレーティングシステム上で動作する第1のアプリケーションから前記電子デバイスのオペレーティングシステム上で動作する第2のアプリケーションに、前記第1のアプリケーションが前記電子デバイスのリソースにアクセスするための第1の要求を送ること、
前記第1の要求に応答して、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を前記電子デバイスのユーザに求めること、
前記第1のアプリケーションが前記リソースにアクセスするための許可を与える第1のユーザ入力を受信すること、および
前記第1のユーザ入力に応答して、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を与えること
を備える。

0010

前記リソースは、
前記電子デバイスのマイクロフォン
前記電子デバイスのメッセージングアプリケーション
前記電子デバイスの位置追跡デバイス、および
前記電子デバイスのカメラ
からなる群から選択され得る。

0011

前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を与えることは、
前記第2のアプリケーションを使用して前記リソースからデータを取得すること、および
前記第2のアプリケーションから前記第1のアプリケーションに前記データを提供すること
を含み得る。

0012

前記第1のユーザ入力は、前記第1のアプリケーションが前記リソースにアクセスすることを1度のみ許可すること(ワンタイム許可)を指定し得る。この場合、前記方法は、前記第1のユーザ入力を受信し、前記第1のユーザ入力に応答して、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスする許可を与えた後に、
前記第1のアプリケーションが前記リソースにアクセスするための第2の要求を前記第1のアプリケーションから前記第2のアプリケーションに送ること、
前記第2の要求に応答して、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を前記ユーザに求めること、
前記第1のアプリケーションが前記リソースにアクセスするための許可を与えるか否かを示す第2のユーザ入力を受信すること、および
前記第2のユーザ入力に従って、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスすることを許可または拒否すること
をさらに備え得る。

0013

いくつかの実施形態において、前記方法は、前記第1の要求に応答して、前記第1のアプリケーションが前記リソースにアクセスすることを許可する権限現時点で前記第2のアプリケーションに与えられていないと判定することをさらに備え得る。この場合、前記判定に応答して、前記第1のアプリケーションが前記リソースにアクセスするための許可が前記ユーザに求められる。

0014

前記第1のユーザ入力は、前記第1のアプリケーションが前記リソースにアクセスすることを許可する期間を指定し得る。この場合、前記方法は、
前記第1のユーザ入力に従って、前記期間の間、前記第2のアプリケーションを繰り返し使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を自動的に与えること
をさらに備え得る。

0015

前記第1のユーザ入力は、前記第1のアプリケーションが前記リソースにアクセスすることを許可する許可位置を指定し得る。この場合、前記方法は、
前記第1のユーザ入力に従って、前記電子デバイスの検出位置が前記許可位置に対応する間、前記第2のアプリケーションを繰り返し使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を自動的に与えること
をさらに備え得る。

0016

前記第1のユーザ入力は、前記第1のアプリケーションが前記リソースにアクセスすることを許可する許可ユーザを指定し得る。この場合、前記方法は、
前記第1のユーザ入力に従って、前記電子デバイスの前記ユーザが前記許可ユーザであると判定されたときに、前記第2のアプリケーションを繰り返し使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を自動的に与えること
をさらに備え得る。

0017

前記第1のユーザ入力は、前記第1のアプリケーションが前記リソースにアクセスすることを許可する条件を指定し得る。この場合、前記方法は、
前記第2のアプリケーションに割り当てられたメモリに前記条件を格納すること、および
前記第2のアプリケーションにおいて、前記第1のアプリケーションからの後続の要求に応答して、前記条件を使用して、前記第1のアプリケーションが前記リソースにアクセスすることを許可するか否かを判定すること
をさらに備え得る。

0018

前記条件は、前記第1のアプリケーションに対応するフォアグラウンドプロセスによる前記リソースへのアクセスを許可するが、前記第1のアプリケーションに対応するバックグラウンドプロセスに対してはアクセスを許可しないものとすることができる。

0019

前記条件は、前記第1のアプリケーションに対応するバックグラウンドプロセスによる前記リソースへのアクセスを許可するが、前記第1のアプリケーションに対応するフォアグラウンドプロセスに対してはアクセスを許可しないものとすることができる。

0020

前記リソースは、前記電子デバイスの位置追跡デバイスを含み得る。この場合、前記第1のユーザ入力は、前記位置追跡デバイスへのアクセスに関して前記第1のアプリケーションに対して許可すべき分解能度合いを指定し得る。

0021

前記第1のユーザ入力は、位置追跡の分解能を低分解能高分解能との間で選択するものであってもよい。
いくつかの実施形態において、前記方法は、
前記リソースにアクセスするために前記第1のアプリケーションから送られた要求の数を或る期間に亘って判定すること、および
前記要求の数が閾値を満たすことに応じて、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスすることを拒否すること
をさらに備え得る。

0022

いくつかの実施形態において、前記方法は、前記要求の数が前記閾値を満たすことに応じて、前記電子デバイスの前記ユーザにアラート通知することをさらに備え得る。
いくつかの実施形態において、前記方法は、
前記第1のアプリケーションから前記第2のアプリケーションに前記第1のアプリケーションが前記リソースにアクセスするための前記第1の要求を含む複数の要求を送ること、
前記複数の要求のレコードを格納すること、および
前記レコードに基づいて、前記複数の要求に関する1つ以上の統計情報を前記ユーザに提示すること
をさらに備え得る。

0023

いくつかの実施形態において、前記方法は、
前記第1のアプリケーションから前記第2のアプリケーションに前記第1のアプリケーションが前記リソースにアクセスするための前記第1の要求を含む複数の要求を送ること、
前記複数の要求のそれぞれに応答して、前記第1のアプリケーションが前記リソースにアクセスするための許可を前記ユーザに求め、前記第1のアプリケーションが前記リソースにアクセスすることを許可または拒否するユーザ入力をそれぞれ受信すること、
前記複数の要求のそれぞれのレコード、それぞれの前記ユーザ入力、および前記電子デバイスのそれぞれのコンテキスト情報を格納すること、および
前記レコードに基づいて、前記リソースへの前記第1のアプリケーションのアクセスを許可または拒否する条件の推奨を前記ユーザに提示すること
をさらに備え得る。

0024

前記コンテキスト情報は、それぞれの前記ユーザ入力を受信したときの前記電子デバイスの位置およびそれぞれの前記ユーザ入力を受信した回数のうちの少なくとも1つを含み得る。

0025

同様に特許請求することが可能ないくつかの実施形態において、電子デバイスは、
1つ以上のプロセッサと、
前記1つ以上のプロセッサにより実行するための1つ以上のプログラムを格納したメモリと、を備える。前記1つ以上のプログラムは、
前記電子デバイスのオペレーティングシステム上で動作する第1のアプリケーションから前記電子デバイスのオペレーティングシステム上で動作する第2のアプリケーションに、前記第1のアプリケーションが前記電子デバイスのリソースにアクセスするための第1の要求を送ること、
前記第1の要求に応答して、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を前記電子デバイスのユーザに求めること、および
前記第1のアプリケーションが前記リソースにアクセスするための許可を与える第1のユーザ入力に応答して、前記第2のアプリケーションを使用して、前記第1のアプリケーションが前記リソースにアクセスするための許可を与えること
を実行するための命令を含む。

0026

同様に特許請求することが可能ないくつかの実施形態において、非一時的なコンピュータ可読記憶媒体は、電子デバイスの1つ以上のプロセッサにより実行するための1つ以上のプログラムを格納する。前記1つ以上のプログラムは、第1のアプリケーションと異なる第2のアプリケーションであって、前記第1および第2のアプリケーションが動作する前記電子デバイスのオペレーティングシステムとは異なる前記第2のアプリケーションに対応する。前記1つ以上のプログラムは、
前記第1のアプリケーションから、前記第1のアプリケーションが前記電子デバイスのリソースにアクセスするための第1の要求を受信すること、
前記第1の要求に応答して、前記第1のアプリケーションが前記リソースにアクセスするための許可を前記電子デバイスのユーザに求めること、および
前記第1のアプリケーションが前記リソースにアクセスするための許可を与える第1のユーザ入力に応答して、前記第1のアプリケーションが前記リソースにアクセスするための許可を与えること
を実行するための命令を含む。

0027

いくつかの実施形態において、1つ以上の非一時的なコンピュータ可読記憶媒体は、上記実施形態のいずれかによる方法または任意の他の開示された実施形態による方法を行うべく実行される際に動作可能なソフトウェア具現化する。

0028

いくつかの実施形態において、システムは、1つ以上のプロセッサと、前記プロセッサに接続され、前記プロセッサにより実行可能な命令を含む少なくとも1つのメモリとを備える。前記プロセッサは、上記実施形態のいずれかによる方法または任意の他の開示された実施形態による方法を行うべく前記命令を実行する際に動作可能である。

0029

いくつかの実施形態において、好ましくは非一時的なコンピュータ可読記憶媒体を備えるコンピュータプログラム製品は、上記実施形態のいずれかによる方法または任意の他の開示された実施形態による方法を行うべくデータ処理システム上で実行される際に動作可能である。

図面の簡単な説明

0030

いくつかの実施形態によるソーシャルネットワークの例示的なネットワークアーキテクチャを示すブロック図。
いくつかの実施形態による例示的なソーシャルネットワークシステムを示すブロック図。
いくつかの実施形態による例示的なクライアントデバイスを示すブロック図。
いくつかの実施形態による、デバイスリソースへのアクセス許可を管理し、アクセス要求の統計情報を提示するための例示的なグラフィックユーザインタフェースGUI)を示す図。
いくつかの実施形態による、デバイスリソースへのアクセス許可を管理し、アクセス要求の統計情報を提示するための例示的なグラフィックユーザインタフェース(GUI)を示す図。
いくつかの実施形態による、アクセス許可およびアクセス要求レコードを格納する例示的なデータ構造を示す図。
いくつかの実施形態による、アクセス許可およびアクセス要求レコードを格納する例示的なデータ構造を示す図。
いくつかの実施形態による、デバイスリソースへのアクセス許可を管理する方法を例示するフローチャート

実施例

0031

以下、添付図面に示された実施例を参照する。以下の説明では、種々の実施形態の理解をもたらすべく多数の具体的な詳細を述べる。しかしながら、説明する種々の実施形態がこれらの特定の詳細なしに実施され得ることは、当業者には明らかである。なお、周知の方法、手順、構成要素、回路、およびネットワークは、実施形態の態様を不必要に不明瞭にしないように詳細には記載されていない。

0032

説明する種々の実施形態のより良い理解のために、添付の図面と併せて以下の実施形態を説明する。同様の符号は、図面および説明の全体にわたって対応する部分を示す。
本明細書において種々の構成要素を説明するためにいくつかの場合で第1、第2などの用語が使用されるが、これらの構成要素はこれらの用語によって限定されるものではない。これらの用語は、或る要素を別の要素と区別することのみを目的として使用される。例えば、説明する種々の実施形態の範囲から逸脱することなく、第1のグループは第2のグループとも呼ぶことができ、同様に、第2のグループは第1のグループとも呼ぶことができる。第1のグループと第2のグループは双方ともにグループであるが、同じグループではない。

0033

本明細書に記載された種々の実施形態を説明するために使用される用語は、特定の実施形態を説明することのみを目的としており、限定することを意図したものではない。種々の実施形態および添付の特許請求の範囲において使用される単数形「1つ」は、文脈がそうでないことを明確に示さない限り、複数形も含むことが意図される。また、本明細書で使用される「および/または」という用語は、1つ以上の関連する列挙されたアイテムの任意かつすべての可能な組み合わせを示し、包含する。本明細書で使用する「含む」および/または「備える」という用語は、記載された特徴、整数、ステップ、動作、要素、および/または構成の存在を特定し、他の1つ以上の特徴、整数、ステップ、動作、要素、構成、および/またはそれらの群の存在または追加を排除するものではない。

0034

本明細書で使用される用語「〜の場合」は、任意で、文脈に応じて、「〜のとき」、「〜の時点」、「〜の判定に応答して」、「〜の検出に応答して」、または「〜との判定に応じて」を意味すると解釈される。同様に、「〜と判定される場合」や「(所定の状態や事象が)検出される場合」などの記載は、任意で、文脈に応じて、「〜の判定時点」、「〜の判定に応答して」、「(所定の状態や事象を)検出した時点」、「(所定の状態や事象の)検出に応答して」、または「(所定の状態や事象が)検出されたとの判定に応じて」を意味すると解釈される。

0035

本明細書で使用される用語「例示的」は、「その種類の最良を表す」との意味ではなく、「例、事例、または実例として役立つ」との意味で使用される。
図1は、いくつかの実施形態によるソーシャルネットワークの例示的なネットワークアーキテクチャ100を示すブロック図である。ネットワークアーキテクチャ100は、1つ以上のネットワーク106(例えば、インターネットセルラ電話ネットワークモバイルデータネットワーク、他の広域ネットワークローカルエリアネットワークメトロポリタンエリアネットワークなど)によって電子ソーシャルネットワークシステム108に通信可能に接続された複数のクライアントデバイス104−1,104−2,…104−n(「クライアントシステム」、「クライアントコンピュータ」、または「クライアント」とも呼ばれる)を含む。いくつかの実施形態では、1つ以上のネットワーク106は、公衆通信ネットワーク(例えば、インターネットおよび/またはセルラデータネットワーク)、プライベート通信ネットワーク(例えば、プライベートLANまたは専用線)、またはそれらの通信ネットワークの組み合わせを含む。

0036

いくつかの実施形態では、クライアントデバイス104−1,104−2,…104−nは、スマートウォッチパーソナルデジタルアシスタントポータブルメディアプレーヤスマートフォンタブレットコンピュータ、2Dゲームデバイス、3D(例えば、バーチャルリアリティ)ゲームデバイス、ラップトップコンピュータデスクトップコンピュータ、1つ以上のプロセッサを内蔵したまたは1つ以上のプロセッサに接続されたテレビ車載情報システム(例えば、ナビゲーションエンターテインメント、および/または他の情報を提供する車載コンピュータシステム)、および/またはソーシャルネットワークシステム108と通信するために使用することができる他の適切なコンピューティングデバイスなどのコンピューティングデバイスである。したがって、クライアントデバイス104−1,104−2,…104−nのいくつかまたはすべては、モバイルデバイスとすることができる。いくつかの実施形態では、ソーシャルネットワークシステム108は、コンピュータサーバなどの単一のコンピューティングデバイスである一方、他の実施形態では、ソーシャルネットワークシステム108は、サーバシステム(例えば、クラウドコンピューティング)の動作を実行するように互いに連動する複数のコンピューティングデバイスによって実現される。

0037

ユーザ102−1,102−2,…102−nは、クライアントデバイス104−1,104−2,…104−nを使用して、ソーシャルネットワークシステム108にアクセスし、そのソーシャルネットワークシステム108によって提供される対応するソーシャルネットワーキングサービスに参加する。例えば、クライアントデバイス104−1,104−2,…104−nの1つ以上は、ソーシャルネットワーキングサービスにアクセスするために使用可能なウェブブラウザアプリケーションを実行する。別の例として、クライアントデバイス104−1,104−2,…104−nの1つ以上は、ソーシャルネットワーキングサービス(例えば、スマートフォンまたはタブレット上で動作するソーシャルネットワーキング「アプリケーション」であって、iPhone(登録商標)、Android(登録商標)、またはWindows(登録商標)のスマートフォンまたはタブレット上で動作しているFacebook(登録商標)ソーシャルネットワーキングアプリケーションなど)に特有ソフトウェアアプリケーションを実行する。

0038

クライアントデバイス104−1,104−2,…104−nとの間で情報をやり取りするユーザは、デジタル情報を提供および/または購入(例えば、投稿、書き込み、閲覧公開放送宣伝推薦共有)することによって、ソーシャルネットワークシステム108によって提供されるソーシャルネットワーキングサービスに参加することができる。デジタル情報は、例えば、テキストコメント(例えば、ステータス、更新、アナウンス返信ロケーションチェックイン」、プライベート/グループメッセージ)、写真ビデオ音声ファイルリンクドキュメント、および/または他の電子コンテンツなどである。いくつかの実施形態において、ユーザは、ソーシャルネットワークシステム108によって提供されるソーシャルネットワーキングサービスのページ、グループ、イベントメッセージボードフィード、アプリケーション、および/またはユーザプロファイルとの間で情報をやり取りする。ソーシャルネットワーキングサービスのユーザは、ソーシャルネットワーキングサービスの他のユーザによって投稿された情報に注釈を付けることができる(例えば、他のユーザの投稿を支持または「いいね」としたり、または他のユーザによる投稿にコメントしたりするなど)。いくつかの実施形態では、ソーシャルネットワークシステム108の外部のシステムおよび/またはサービスによって、ユーザの代わりに情報を投稿することができる。例えば、ユーザは、映画レビューを映画レビューウェブサイトに投稿することができ、適切な許可がある場合、そのウェブサイトがユーザの代わりにソーシャルネットワークシステム108にレビューをクロスポストしてもよい。別の例では、モバイルクライアントデバイス上で実行されるソフトウェアアプリケーションは、適切な許可がある場合、全地球測位システム(GPS)または他のジオロケーション機能(例えば、Wi−Fi(登録商標)またはハイブリッド測位システム)を使用してユーザの位置を判定し、そのユーザの位置(例えば、「自宅にいる」、「職場にいる」、または「カリフォルニア州のサンフランシスコにいる」など)を用いてソーシャルネットワークシステム108を更新してもよく、および/またはユーザの位置から得られる情報および/またはユーザの位置に基づく情報を使用してソーシャルネットワークシステム108を更新してもよい。また、クライアントデバイス104−1,104−2,…104−nとの間で情報をやり取りするユーザは、ソーシャルネットワークシステム108によって提供されるソーシャルネットワーキングサービスを使用してユーザのグループを定義することもできる。また、クライアントデバイス104−1,104−2,…104−nとの間で情報をやり取りするユーザは、ソーシャルネットワークシステム108によって提供されるソーシャルネットワーキングサービスを使用して互いに通信し共同作業することもできる。

0039

いくつかの実施形態では、ネットワークアーキテクチャ100は、第三者サーバ110−1,110−2,…110−mも含む。いくつかの実施形態では、所与の第三者サーバ110が、直接またはソーシャルネットワークシステム108と連携して、ウェブページをクライアントデバイス104に提供する第三者ウェブサイトをホストするために使用される。いくつかの実施形態では、ソーシャルネットワークシステム108は、インラインフレーム(「iframe」)を使用して、ユーザのソーシャルネットワークセッション内の独立したウェブサイトをネストする。いくつかの実施形態では、所与の第三者サーバを使用して、直接またはソーシャルネットワークシステム108と連携して、クライアントデバイス104によって使用される第三者アプリケーションをホストする。いくつかの実施形態では、ソーシャルネットワークシステム108は、iframeを使用することにより、第三者サーバ110によって個別にホストされ、ユーザ102のソーシャルネットワーキングセッション内で動作し且つソーシャルネットワークシステム108内のユーザのプロファイルを通じてアクセスされるアプリケーションを第三者の開発者が作成することを可能にする。例示的な第三者アプリケーションには、書籍ビジネス、通信、コンテスト教育娯楽ファッション金融飲食、ゲーム、健康およびフィットネスライフスタイル地域情報、映画、テレビ、音楽および音声ニュース、写真、ビデオ、生産性参照資料セキュリティショッピングスポーツ旅行ユーティリティなどのアプリケーションが含まれる。いくつかの実施形態では、所与の第三者サーバ110は、直接またはソーシャルネットワークシステム108と連携して、クライアントデバイス104によって使用される企業システムをホストするために使用される。いくつかの実施形態では、所与の第三者サーバ110は、第三者コンテンツ(例えば、ニュース記事、レビュー、メッセージフィードなど)を提供するために使用される。

0040

いくつかの実施形態では、所与の第三者サーバ110は単一のコンピューティングデバイスである一方、他の実施形態では、所与の第三者サーバ110は、サーバシステム(例えば、クラウドコンピューティング)の動作を実行するように互いに連動する複数のコンピューティングデバイスによって実現される。

0041

図2は、いくつかの実施形態による例示的なソーシャルネットワークシステム108を示すブロック図である。ソーシャルネットワークシステム108は、典型的には、1つ以上の処理ユニット(プロセッサまたはコア)202と、1つ以上のネットワークまたは他の通信インタフェース204と、メモリ206と、これらの構成を相互接続するための1つ以上の通信バス208とを含むサーバシステムである。通信バス208は、任意で、システムの構成間の通信を相互接続および制御する回路(チップセットとも呼ばれる)を含む。ソーシャルネットワークシステム108は、任意で、ユーザインタフェース(図示せず)を含む。ユーザインタフェースが提供される場合には、ユーザインタフェースは表示デバイスを含んでもよく、また、任意で、キーボードマウストラックパッド、および/または入力ボタンなどの入力を含む。代替的にまたは追加的に、表示デバイスはタッチ感知面を含み、その場合、ディスプレイタッチ感知ディスプレイである。

0042

メモリ206は、DRAM、SRAM、DDR−RAM、または他のランダムアクセスソリッドステートメモリ装置などの高速ランダムアクセスメモリを含む。メモリ206は、1つ以上の磁気ディスク記憶装置光ディスク記憶装置フラッシュメモリ装置、および/または他の不揮発性ソリッドステート記憶装置などの不揮発性メモリを含んでもよい。メモリ206は、任意で、プロセッサ202から離れた位置にある1つ以上の記憶装置を含んでもよい。メモリ206、またはメモリ206内の不揮発性メモリ装置は、非一時的なコンピュータ可読記憶媒体を含む。

0043

いくつかの実施形態では、メモリ206またはメモリ206のコンピュータ可読記憶媒体は、以下のプログラム、モジュールおよびデータ構造、またはそれらのサブセットもしくはスーパーセットを記憶する。
・種々の基本システムサービスを扱い、ハードウェア依存タスクを実行するための手順を含むオペレーティングシステム210;
・1つ以上の通信ネットワークインタフェース204(有線または無線)と、1つ以上の通信ネットワーク(例えば、1つ以上のネットワーク106)とを介して、ソーシャルネットワークシステム108を他のコンピュータに接続するために使用されるネットワーク通信モジュール212;
・ソーシャルネットワークに関連付けられたデータを格納するためのソーシャルネットワークデータベース214。ソーシャルネットワークに関連付けられるデータとしては、例えば、以下が挙げられる:
・・ユーザ情報218などのエンティティ情報216;
・・接続情報220;および
・・コンテンツ222。コンテンツ222には、以下が含まれる:
・・・ユーザコンテンツ224(例えば、テキストコメント(例えば、投稿、ステータス、更新、アナウンス、返信、ロケーション「チェックイン」、プライベート/グループメッセージなど)、写真、ビデオ、音声ファイル、リンク、ドキュメント、および/または他のデジタル電子コンテンツなど);および/または
・・・ニュース記事226;
・ソーシャルネットワーキングサービス、ソーシャルメディアアプリケーション、および関連機能を(例えば、図3におけるクライアントデバイス104上のブラウザモジュール338またはソーシャルネットワーククライアントモジュール340と連携して)提供するためのソーシャルネットワークサーバモジュール228。ソーシャルネットワークサーバモジュール228には、以下が含まれる:
・・クライアント104のユーザ102をソーシャルネットワークシステム108にロギングするためのログインモジュール230;および
・・表示のためにクライアント104に送信すべきコンテンツを提供するためのコンテンツ供給マネージャ232。コンテンツ供給マネージャ232には、以下が含まれる:
・・・ソーシャルネットワークデータベース214にオブジェクト(画像、ビデオ、音声ファイル、コメント、ステータスメッセージ、リンク、アプリケーション、および/または他のエンティティ情報216、接続情報220、またはコンテンツ222など)を記述するためのコンテンツ生成モジュール234;および
・・・表示のためにクライアント104に送信すべき情報/コンテンツを選択するためのコンテンツ選択モジュール236;
・ソーシャルネットワークシステムのユーザがソーシャルネットワーク内のコンテンツおよび他のユーザを検索することを可能にするための検索モジュール238。

0044

ソーシャルネットワークデータベース214は、ソーシャルネットワークに関連付けられたデータを、グラフ次元フラット、階層、ネットワーク、オブジェクト指向リレーショナル、および/またはXMLデータベースなどの1つ以上のタイプのデータベースに格納する。

0045

いくつかの実施形態では、ソーシャルネットワークデータベース214はグラフデータベースを含み、このグラフデータベースは、グラフデータベース内のノードとして表されるエンティティ情報216と、グラフデータベース内のエッジとして表される接続情報220とを有する。つまり、グラフデータベースは、複数のノードと共に、対応するノード間の接続を定義する複数のエッジとを含む。いくつかの実施形態では、ノードおよび/またはエッジはそれら自体、対応するエンティティ識別子、属性、および情報を含むデータオブジェクトであり、それらのいくつかはソーシャルネットワーキングサービスの対応するプロファイルページまたは他のページ上にてクライアント104でレンダリングされる。いくつかの実施形態では、ノードは、クライアント104におけるそれぞれのノードに対応するページのレンダリングと関連してコンテンツをレンダリングする際に使用するための、他のオブジェクト、データ構造、またはリソースへのポインタまたは参照も含む。

0046

エンティティ情報216は、ユーザプロファイル、ログイン情報、プライバシーおよび他の選好経歴データなどのユーザ情報218を含む。いくつかの実施形態では、所与のユーザについて、ユーザ情報218は、ユーザの名前プロフィール画像連絡先情報生年月日性別婚姻状態、家族状態、雇用、教育背景嗜好、関心および/または他の人口学的情報を含む。

0047

いくつかの実施形態では、エンティティ情報216は、物理的な場所(例えば、レストラン劇場ランドマーク都市、州、または国)、現実または知的財産(例えば、彫刻絵画、映画、ゲーム、アイデアコンセプト、写真、または書面による作業)、ビジネス、人々のグループ、および/またはビジネスのグループを含む。いくつかの実施形態では、エンティティ情報216は、音声ファイル、ビデオファイルデジタル写真テキストファイル構造化文書(例えば、ウェブページ)、またはアプリケーションなどのリソースに関する情報を含む。いくつかの実施形態では、リソースは、ソーシャルネットワークシステム108内(例えば、コンテンツ222内)に、または第三者サーバ110などの外部サーバ上に配置される。

0048

いくつかの実施形態では、接続情報220は、ソーシャルネットワークデータベース214内のエンティティ間の関係に関する情報を含む。いくつかの実施形態では、接続情報220は、グラフデータベース内のノード対を接続するエッジに関する情報を含む。いくつかの実施形態では、一対のノード対を接続するエッジは、その一対のノード間の関係を表す。

0049

いくつかの実施形態では、エッジは、一対のノード間の関係に対応する1つ以上のデータオブジェクトまたは属性を含むかまたは表す。例えば、第2のユーザが第1のユーザの「フレンド」であることを第1のユーザが示す場合、ソーシャルネットワークシステム108は第2のユーザに「フレンドリクエスト」を送信する。第2のユーザが「フレンドリクエスト」を確認すると、ソーシャルネットワークシステム108は、第1のユーザのユーザノードと第2のユーザのユーザノードとを接続するエッジを作成し、そのエッジをグラフデータベースに接続情報220として格納する。この接続情報220は、第1のユーザと第2のユーザとがフレンドであることを示す。いくつかの実施形態では、接続情報220は、友人関係家族関係、ビジネスまたは雇用関係、ファン関係、フォロワー関係、訪問者関係、加入者関係、上位/下位関係相互関係、非相互関係、他の適切なタイプの関係、またはそれらのうちの2つ以上の関係を含む。

0050

いくつかの実施形態では、ユーザノードと他のエンティティノードとの間のエッジは、当該ユーザノードのユーザによって当該他のエンティティノードに向けて実行される特定の動作またはアクティビティに関する接続情報を表す。例えば、ユーザは、他のノードのエンティティを「好き」であるか、または、そのエンティティに関して、「出席している」、「再生している」、「聞いている」、「料理している」、「働いている」、もしくは「見ている」などの状態にある。他のノードのエンティティに対応するソーシャルネットワーキングサービスのページは、例えば、「好き」、「チェックイン」、または「お気に入りに追加」などの選択可能なアイコンを含み得る。ユーザがこれらのアイコンのうちの1つをクリックすると、ソーシャルネットワークシステム108は、対応するユーザの動作に応答して、「好き」エッジ、「チェックイン」エッジ、または「お気に入り」エッジを作成し得る。別の例として、ユーザが特定のアプリケーション(例えば、オンライン音楽アプリケーション)を使用して特定の曲を聴くことが考えられる。この場合、ソーシャルネットワークシステム108は、ユーザがその曲を聴いてアプリケーションを使用したことを示すべく、ユーザに対応するユーザノードと、その曲およびアプリケーションにそれぞれ対応するエンティティノードとの間に、「聴取済み」エッジおよび「使用済み」エッジを作成し得る。さらに、ソーシャルネットワークシステム108は、その特定の曲が特定のアプリケーションによって演奏されたことを示すべく、その曲およびアプリケーションに対応するエンティティノード間に「再生済み」エッジを作成し得る。

0051

いくつかの実施形態では、コンテンツ222は、テキスト(例えば、ASCII、SGML、HTML)、画像(例えば、JPEG、tif、gif)、グラフィックスベクトルベースまたはビットマップ)、音声、ビデオ(例えば、mpeg)、他のマルチメディア、および/またはそれらの組み合わせを含む。いくつかの実施形態では、コンテンツ222は、実行可能コード(例えば、ブラウザウィンドウまたはフレーム内で実行可能なゲーム)、ポッドキャスト、リンクなどを含む。

0052

いくつかの実施形態では、ソーシャルネットワークサーバモジュール228は、ウェブまたはハイパーテキスト転送プロトコル(HTTPサーバファイル転送プロトコル(FTP)サーバ、ならびに、コモンゲートウェイインタフェース(CGIスクリプト、PHPハイパーテキストプリプロセッサ(PHP)、アクティブサーバページ(ASP)、ハイパーテキストマークアップ言語(HTML)、拡張可能マークアップ言語(XML)、Java(登録商標)、JavaScript(登録商標)、アシンクロナスJavaScript及びXML(AJAX)、XHP、Javelin、ワイヤレスユニバーサルリソースファイルWUFL)などを使用して実装されるウェブページおよびアプリケーションが挙げられる。

0053

図3は、いくつかの実施形態による例示的なクライアントデバイス104(例えば、モバイルデバイス)を示すブロック図である。クライアントデバイス104は、典型的には、1つ以上の処理ユニット(プロセッサまたはコア)302と、1つ以上のネットワークまたは他の通信インタフェース304と、メモリ306と、これらの構成を相互接続するための1つ以上の通信バス308とを含む。通信バス308は、任意で、システムの構成間の通信を相互接続および制御する回路(チップセットとも呼ばれる)を含む。クライアントデバイス104はユーザインタフェース310を含む。ユーザインタフェース310は、典型的には、表示デバイス312を含む。いくつかの実施形態では、クライアントデバイス104は、キーボード、マウス、および/または他の入力ボタン316などの入力を含む。代替的または追加的に、いくつかの実施形態では、表示デバイス312はタッチ感知面314を含み、その場合、表示デバイス312はタッチ感知ディスプレイである。タッチ感知ディスプレイ312を有するクライアントデバイスでは、物理的キーボードは任意である(例えば、キーボード入力が必要なときにソフトキーボードが表示されてもよい)。また、ユーザインタフェース310は、スピーカ、またはスピーカやイヤホンヘッドホンに接続された音声出力接続などの音声出力デバイス318を含む。さらに、いくつかのクライアントデバイス104は、キーボードを補完するためにまたはキーボードに代えて、マイクロフォンおよび音声認識を使用する。任意で、クライアントデバイス104は、音声(例えば、ユーザからの会話)を取り込むための音声入力デバイス320(例えば、マイクロフォン)を含む。任意で、クライアントデバイス104は、クライアントデバイス104の位置を決定するためのGPS(全地球測位衛星)または他のジオロケーションレシーバなどの位置検出デバイス322を含む。また、クライアントデバイス104は、任意で、カメラまたはウェブカメラなどの画像/ビデオキャプチャデバイス324を含む。

0054

メモリ306は、DRAM、SRAM、DDR−RAM、または他のランダムアクセスソリッドステートメモリ装置などの高速ランダムアクセスメモリを含む。メモリ306は、1つ以上の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリ装置、または他の不揮発性ソリッドステート記憶装置などの不揮発性メモリを含んでもよい。メモリ306は、任意で、プロセッサ302から離れた位置にある1つ以上の記憶装置を含んでもよい。メモリ306、またはメモリ306内の不揮発性メモリ装置は、非一時的なコンピュータ可読記憶媒体を含む。

0055

いくつかの実施形態では、メモリ306またはメモリ306のコンピュータ可読記憶媒体は、以下のプログラム、モジュールおよびデータ構造、またはそれらのサブセットもしくはスーパーセットを記憶する。
・種々の基本システムサービスを扱い、ハードウェア依存タスクを実行するための手順を含むオペレーティングシステム326;
・1つ以上の通信ネットワークインタフェース304(有線または無線)と、1つ以上の通信ネットワーク(インターネット、セルラ電話ネットワーク、モバイルデータネットワーク、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなど)とを介して、クライアントデバイス104を他のコンピュータに接続するために使用されるネットワーク通信モジュール328;
・画像/ビデオキャプチャデバイス324によってキャプチャされたそれぞれの画像またはビデオを処理するための画像/ビデオキャプチャモジュール330(例えば、カメラモジュール)。なお、それぞれの画像またはビデオは(例えば、クライアントアプリケーションモジュール336によって)ソーシャルネットワークシステム108に送信またはストリーミングされ得る;
・音声入力デバイス320によってキャプチャされた音声を処理するための音声入力モジュール332(例えば、マイクロフォンモジュール)。なお、それぞれの音声は(例えば、クライアントアプリケーションモジュール336によって)ソーシャルネットワークシステム108に送信またはストリーミングされ得る;
・クライアントデバイス104の位置を(例えば、位置検出デバイス322を使用して)決定し、種々のアプリケーション(例えば、ソーシャルネットワーククライアントモジュール340)で使用するべくこの位置情報を提供するための位置検出モジュール334(例えば、GPS、Wi−Fi(登録商標)、またはハイブリッド測位モジュール);および
・1つ以上のクライアントアプリケーションモジュール336。クライアントアプリケーションモジュール336は、以下のモジュール(または命令セット)、あるいはそれらのサブセットもしくはスーパーセットを含む:
・・ウェブサイト(例えば、ソーシャルネットワークシステム108によって提供されるソーシャルネットワーキングウェブサイト)にアクセスし、閲覧し、情報をやり取りするためのウェブブラウザモジュール338(例えば、マイクロソフトによるInternet Exprorer(登録商標)、モジラによるFirefox(登録商標)、アップルによるSafari(登録商標)、またはグーグルによるChrome(登録商標));
・・ソーシャルネットワーク(例えば、ソーシャルネットワークシステム108によって提供されるソーシャルネットワーク)、ソーシャルメディアアプリケーション、および関連機能とのインタフェースを提供するためのソーシャルネットワーククライアントモジュール340;
・・クライアントデバイス104のリソース(例えば、音声入力デバイス320、位置検出デバイス322、画像/ビデオキャプチャデバイス324、および/またはメモリ306内の各モジュール)へのアプリケーションのアクセス許可を管理するための許可モジュール342。許可モジュール342には、以下が含まれる:
・・・アプリケーションがリソースにアクセスするための許可および条件を記憶するための許可テーブル344;および
・・・アプリケーションによって送信されたアクセス要求のレコード、アクセス要求に応答して受信されたユーザ入力、およびアクセス要求がなされたときおよび/またはユーザ入力が受信された時点におけるクライアントデバイス104のコンテキスト情報を記憶するためのレコードテーブル346;および/または
・・他の任意のクライアントアプリケーションモジュール348(例えば、ワード処理カレンダー、地図、天気在庫時間管理バーチャルデジタルアシスタントプレゼンテーションナンバークランチングスプレッドシート)、描画、インスタントメッセージング、電子メール、電話通信ビデオ会議、写真管理、ビデオ管理、デジタル音楽プレイヤーデジタルビデオプレイヤー、2Dゲーム、3D(例えば、バーチャルリアリティ)ゲーム、電子書籍リーダー、および/またはトレーニング支援のためのアプリケーションなど)。

0056

いくつかの実施形態では、許可モジュール342は、アプリケーション(例えば、クライアントアプリケーションモジュール336)がクライアントデバイス104のリソースにアクセスするための許可を(例えば、図4AのGUI400を表示することによって)クライアントデバイス104のユーザに求めるように構成されている。許可モジュール342は、アプリケーションによるリソースへのアクセスを許可/拒否するユーザ入力を受信し、その受信したユーザ入力に応答してアプリケーションによるアクセスを許可/拒否する。また、いくつかの実施形態では、許可モジュール342は、リソースからデータを取得し、その取得したデータを要求元のアプリケーションに提供する。また、いくつかの実施形態では、許可モジュール342は、アクセスを許可または拒否するユーザ指定条件(例えば、許可位置、許可ユーザ、1度のみの許可(ワンタイム許可)、位置分解能など)を管理し、その条件を使用してそれに従ってアクセスを許可または拒否する。いくつかの実施形態では、許可モジュール342は、アプリケーションによって送信されたアクセス要求の数が閾値を満たしているか否かを判定し、その判定結果に従ってアプリケーションのアクセスを拒否するおよび/またはユーザにアラートを通知する。いくつかの実施形態では、記憶されたレコード(例えば、レコードテーブル346内のレコード)に基づいて、許可モジュール342は、複数のアクセス要求に関する統計情報を提示し、および/またはデバイスリソースへのアプリケーションのアクセスを許可または拒否する条件の推奨をユーザに提示する。

0057

上述したモジュールおよびアプリケーションの各々は、上述した1つ以上の機能および/または本願に記載された方法(例えば、本明細書に記載のコンピュータ実装方法および他の情報処理方法)における1つ以上の機能を実行するための実行可能命令セットに対応する。これらのモジュール(すなわち、命令セット)は、個別のソフトウェアプログラムプロシージャ、またはモジュールとして実装される必要はなく、したがって、これらのモジュールの種々のサブセットが、任意で、種々の実施形態において組み合わされるかもしくは再配置される。いくつかの実施形態では、メモリ206および/またはメモリ306は、上述したモジュールおよびデータ構造のサブセットを記憶する。さらに、メモリ206および/またはメモリ306は、任意で、上述していない追加のモジュールおよびデータ構造を記憶する。

0058

以下、クライアントデバイス(例えば、図3のクライアントデバイス104)に実装することが可能なグラフィカルユーザインタフェース(「GUI」)およびその関連プロセスの実施形態について説明する。

0059

図4Aおよび図4Bは、いくつかの実施形態による、デバイスリソースに対するアクセス許可を管理しアクセス要求統計情報を提示するための、クライアントデバイス104のディスプレイ上に示される例示的なGUI400,410を示す。GUI400,410は、方法600(図6)を含む以下に説明するプロセスを示す。図4Aおよび図4BはGUIの例を示しているが、他の実施形態では、図4Aおよび図4Bの実施形態とは異なる構成のGUIがユーザインタフェース要素を表示する。

0060

図4Aは、アプリケーション(例えば、図3の許可モジュール342)の例示的なGUI400を示す。GUI400は、クライアントデバイス104−1のリソースへの他のアプリケーションのアクセス許可を管理する。GUI400は、クライアントデバイス104−1のリソースへのアクセス許可を指定するユーザ入力(例えば、ユーザインタフェース要素404の選択)をユーザが与えることを可能にする。GUI400は、許可要求プロンプト402と、デバイスリソースに対するアクセスを許可または拒否する許可条件を指定するためのユーザインタフェース要素404とを含む。

0061

いくつかの実施形態では、GUI400は、デバイスリソースへのアクセスを要求する特定のアプリケーション機能をユーザが利用しようと試みることに応答して表示される(例えば、地図アプリケーションを使用して現在の位置から目的地までの道順を検索する場合、クライアントデバイス104の現在の位置を決定するためにクライアントデバイス104の位置検出デバイス322(図3)を使用する必要がある)。いくつかの実施形態では、GUI400は、デバイスリソースへのアクセスを要求するバックグラウンドプロセスを実行するアプリケーション(アクセス許可を管理するためのアプリケーションとは異なる)に応答して表示される。

0062

いくつかの実施形態では、許可要求プロンプト402は、アプリケーションがデバイスリソースにアクセスすることの許可をユーザに求めるテキストを含む。例えば、許可要求プロンプト402は、「アプリケーション01」がクライアントデバイス104−1の現在の位置を決定するために位置検出デバイス322および/または位置検出モジュール334にアクセスすることの許可を与えるか否かをクライアントデバイス104−1のユーザに求める。アクセスを許可または拒否する種々のデバイスリソースについては、図6においてより詳細に説明する。

0063

ユーザは、許可を求められたことに応答して、表示されたユーザインタフェース要素404のうちのいずれかを選択して許可内容を指定することができる。各ユーザインタフェース要素404は、要求元のアプリケーション(例えば、「アプリケーション01」)がデバイスリソースにアクセスすることを許可または拒否することに対応する。異なるユーザインタフェース要素404は、リソースへのアクセスを許可または拒否する異なる条件に対応し、これらの条件は、アクセスを許可または拒否するための詳細設定(例えば、アクセスを許可または拒否する特定の回数、期間、ユーザ、位置、位置分解能など)を表す。図4Aの例においては、ユーザインタフェース要素404の選択により、ユーザは、アプリケーション01がリソースにアクセスすることを常に許可するか(例えば404−1)、アクセスを1度のみ許可するか(例えば404−2)、アクセスを常に拒否するか(例えば404−3)、アクセスを特定期間において許可するか(例えば404−4)、または他の許可条件オプションを指定することができる(例えば404−5)。ユーザインタフェース要素404−5を選択することで、ユーザが指定することが可能な追加の許可条件(例えば、位置を決定し得る特定の分解能、特定のユーザ、特定の位置など)の表示がトリガされる。ユーザは、単一の条件または複数の条件を指定することができる。アクセスを許可または拒否するための種々の許可条件については、図5A〜5Bおよび図6においてより詳細に説明する。

0064

図4Bは、アクセス許可を管理するためのアプリケーションの別の例示的なGUI410(例えば、許可モジュール342)を示す。GUI410は、電子デバイス上のアプリケーション(例えば、図3の許可モジュール342以外の他のクライアントアプリケーションモジュール336)から受信したアクセス要求の統計情報を表示する。図示されるように、GUI410は、複数のアプリケーションについてアクセス要求の統計情報を表示するための複数のセクション412(例えば、アプリケーション01についてはセクション412−1、アプリケーション02についてはセクション412−2など)と、それぞれのアプリケーションについて詳細なアクセス要求履歴を閲覧するためのユーザインタフェース要素414とを含む。

0065

セクション412は、統計情報が表示されるアクセス許可に関する詳細(例えば、図3および図5Aの許可テーブル344から取得される詳細)を表示する。この例では、セクション412−1は、アクセス許可の発生日時(「アクセス許可の発生日」)、アクセスが許可されたかどうか(「アクセス可否」)、アクセス許可が認められたリソース(「リソース」)、アクセス許可期間(「許可期間」)、アクセス許可位置(「許可位置」)、許可ユーザ(「許可ユーザ」)、およびアクセスがフォアグラウンドプロセスで許可されたのかバックグラウンドプロセスで許可されたのか(「フォアグラウンドバックグラウンド」)を含む。GUI410には示されていないが、セクション412は、ユーザによって適用可能なまたはユーザによって指定される他の追加のパラメータまたは条件を表示するように構成されてもよい。

0066

さらに、セクション412は、アプリケーション(例えば、クライアントアプリケーションモジュール336)によって送信されたアクセス要求の種々の統計情報を表示する。この例では、クライアントデバイス104−1の位置検出デバイス322(図3)にアクセスするためにアプリケーション01によって送信された要求に関する統計情報が示されている。この統計情報は、アプリケーション01によって送信されたアクセス要求の最終時刻(「最終要求時刻」)、アクセス要求の最終送信位置(「最終要求位置」)、最後にアクセス要求を送信したアプリケーション01のユーザ(例えば、ログインしたユーザ)(最終要求ユーザ)、統計情報を閲覧した日に受信したアクセス要求数(「今日のアクセス要求数」)、およびアクセス要求の発生日から受信したアクセス要求の総数(「アクセス要求総数」)を含む。GUI410には示されていないが、セクション412は、他のアクセス要求統計情報を表示するように構成されてもよい。

0067

ユーザによって指定されたアクセス許可情報を、対応するアプリケーションのアクセス要求統計情報とともに表示することによって、ユーザは、許可および規定された境界外で動作している潜在的に悪意のあるアプリケーションを識別することができる。また、ユーザは、デバイスリソースにアクセスする際にどのアプリケーションが最もリソース集約的であるか、また、どのデバイスリソースがアプリケーションによって最もアクセスされるかを識別することができる。さらに、アクセス要求統計情報に基づいて、アクセス許可を管理するアプリケーション(例えば、図3の許可モジュール342)は、疑わしいアプリケーションによるリソースへのアクセスを拒否したり、疑わしいアクティビティが検出されたときにユーザにアラートを通知したり、および/またはユーザに対してアクセス許可の推奨を提示することができる。

0068

セクション412−1は、それぞれのアプリケーションについて、詳細なアクセス要求履歴を閲覧するためのユーザインタフェース要素414を任意で含む。例えば、ユーザインタフェース要素414を選択すると、アプリケーション01によって送信された各アクセス要求の詳細リストを含むGUI(図示せず)が表示される。これらの各アクセス要求は、記憶されたレコード(例えば、要求時刻、要求元のユーザ、要求位置などを含む図3および図5Bのレコードテーブル346)から取得されたデータとともに表示される。

0069

図5Aおよび図5Bは、いくつかの実施形態による、アクセス許可およびアクセス要求レコードを格納する例示的なデータ構造を示す。いくつかの実施形態では、許可テーブル344(図5A)およびレコードテーブル346(図5B)は、クライアントデバイスの1つ以上のモジュールまたはサブモジュール(例えば、図3におけるクライアントデバイス104のメモリ306のモジュール、および/または許可モジュール342のサブモジュール)に記憶される。代替的に、いくつかの実施形態では、許可テーブル344およびレコードテーブル346は、アクセス許可が管理、共有、および/または単一のユーザに関連付けられた複数のクライアントデバイスによって取得可能となるようにサーバシステム(例えば、図3のソーシャルネットワークシステム108)のモジュールに記憶される。さらに、いくつかの実施形態において、許可テーブル344および/またはレコードテーブル346は、追加のパラメータ、条件、統計情報、および/またはユーザ指定のアクセス許可またはアクセス要求に関するデータなどの、図5Aおよび図5Bに示されていない追加のフィールドを含んで記憶するように構成される。

0070

図5Aは、リソースへのアプリケーションのアクセス許可を記憶する(例えば、図3のクライアントデバイス104のメモリ306に記憶される)許可テーブル344を示す。図示されるように、許可テーブル344のエントリは、デバイスリソースに対する各アプリケーションのアクセス許可に対応する。

0071

アクセス許可は、アプリケーション(例えば、図3におけるクライアントデバイス104のクライアントアプリケーションモジュール336)が電子デバイスに記憶されているリソースにアクセスすることが承諾されているか不承諾であるかを定義する。許可テーブル344の各エントリは、アクセス許可が定義されるアプリケーション(「アプリケーションID」)、アクセスが許可または拒否されるリソース(「リソース」)、リソースへのアクセスが許可されているか拒否されているか(アクセス可否)、およびアクセス許可が定義された日時(「アクセス許可日時」)を識別する。任意で、許可テーブル344は、アクセスを許可または拒否する条件を指定することができる。例えば、特定期間(「期間」)、特定位置(「位置」)、および/または特定ユーザ(「ユーザ」)に対してのみアクセスを許可することができる。さらには、特定の分解能(位置追跡リソースの場合には「位置分解能」)および/またはフォアグラウンドプロセスもしくはバックグラウンドプロセス(「フォアグラウンド/バックグラウンド」)にアクセス許可を制限することができる。

0072

一例として、「アプリケーション01」がクライアントデバイス104(例えば、図3の位置検出デバイス322)のGPS装置(または他の全地球的航法衛星システム装置)にアクセスすることが、「ユーザ01」に対しては無期限に(「常時」)許可されている。このアクセス許可は、クライアントデバイス104の位置から半径2000フィートの分解能に制限され、アプリケーション01がバックグラウンドプロセスではなくフォアグラウンドプロセス(例えば、クライアントデバイス104の現在位置を表示する双方向地図アプリケーション)で動作しているときにのみGPS装置にアクセスすることができる。さらには、2014年11月25日の午前2時5分にこのアクセス許可が(例えば、受信したユーザ入力によって)与えられたことが示されている。

0073

図5Bは、アプリケーションにより送信されたアクセス要求のレコードを記憶する(例えば、図3におけるクライアントデバイス104のメモリ306に記憶された)レコードテーブル346を示す。これらのレコードは、(例えば、図4BのGUI410に示されるような)アクセス要求統計情報を生成するために使用することができる。図示されるように、レコードテーブル346のエントリは、特定のアクセス要求に対応する識別インデックス番号(「要求インデックス#」)、デバイスリソースへのアクセスを要求するアプリケーション(「アプリケーションID」)、アクセスが要求されたリソース(「リソース」)、アクセス要求が送信された日時(あるいは、アクセスが許可/拒否された時)(「要求の日時」)、アクセス要求が送信された際の要求元アプリケーションのユーザ(例えば、ログインしたユーザ)(要求元ユーザ)、アクセス要求が送信された位置(「要求の位置」)、およびアクセスが許可されたか拒否されたか(「要求の結果」)を含む。図示されていないが、アクセス要求の結果に関する追加の詳細がレコードテーブル346に含まれてもよい(例えば、許可期間、許可位置など)。

0074

一例として、アクセス要求「001」は、クライアントデバイス104のGPS装置(例えば、図3の位置検出デバイス322)にアクセスするべく「アプリケーション01」によって送信された要求に対応する。上述した許可テーブル344の例で説明すると、この要求に応答して、「アプリケーション01」がGPS装置にアクセスする許可が与えられる(例えば、「アプリケーション01」はGPS装置にアクセスすることが無期限に(「常時」許可されている)。「ユーザ01」が「アプリケーション01」を使用していたとき(または、クライアントデバイス104を使用していたとき)に、GPS座標(37.420591、−122.141330)に相当する位置で、2014年11月25日の午前2時5分にアクセス要求「001」に応答してアクセス許可が与えられたことを示している。

0075

図6は、いくつかの実施形態によるデバイスリソースへのアクセス許可を管理する方法600を示すフローチャートである。方法600は、電子デバイス(例えば、図1および図3のクライアントデバイス104、ここでは、クライアントデバイス104はスタンドアロンデバイスとして動作している)で実行される。図6は、コンピュータメモリ(例えば、図3におけるクライアントデバイス104のメモリ306)または他のコンピュータ可読記憶媒体に記憶された命令に対応する。

0076

第1のアプリケーション602−1(例えば、図3のクライアントアプリケーションモジュール336などの、クライアントデバイス104のモジュールに対応する)は、第1のアプリケーションが電子デバイスのリソースにアクセスするための第1の要求を、第2のアプリケーション602−2(例えば、許可モジュール342に対応する)に送信する(606)。第1および第2のアプリケーション602−1,602−2は、電子デバイスのオペレーティングシステム上で動作する。

0077

電子デバイスのリソースは、この電子デバイスによって提供されるサブデバイス、構成要素、機構、アプリケーション、および/または他の機能が含まれる。例えば、リソースは、マイクロフォン(例えば、図3において、音声をキャプチャするための音声入力デバイス320)、電子デバイスのメッセージングアプリケーション(例えば、SMテキストメッセージ送受信するためのクライアントアプリケーションモジュール348)、電子デバイスの位置追跡デバイス(例えば、クライアントデバイス104の位置を決定するための位置検出デバイス322)、および電子デバイスのカメラ(例えば、画像またはビデオをキャプチャするための画像/ビデオキャプチャデバイス324)を含む。他のリソースの例としては、各サブデバイスまたは構成要素に関連付けられたモジュール(例えば、図3における画像/ビデオキャプチャモジュール332、音声入力モジュール332、および位置検出モジュール334)が挙げられる。

0078

第1の要求に応答して、第2のアプリケーション602−2は、第1のアプリケーション602−1がリソースにアクセスするための許可を電子デバイスのユーザ604(例えば、図1におけるクライアントデバイス104−1のユーザ102−1)に求める(608)。例えば、「アプリケーション01」のアクセス許可を指定するようにユーザ604に求めるべく、GUI400(図4A)が許可要求プロンプト402と共に表示される。

0079

いくつかの実施形態では、第2のアプリケーション602−2は、第1の要求に応答して、第1のアプリケーション602−1がリソースにアクセスすることを許可する権限が現時点では第2のアプリケーション602−2に与えられていないと判定する。この判定に応答して、第1のアプリケーション602−1がリソースにアクセスするための許可がユーザ604に求められる(608)。例えば、第1のアプリケーション602−1(例えば、図3のクライアントアプリケーションモジュール336に対応する「アプリケーション01」)は、クライアントデバイス104のマイクロフォン(例えば、音声入力デバイス320および/または対応する音声入力モジュール332)にアクセスするための要求を第2のアプリケーション602−2(例えば、許可モジュール342)に送信する。すると、アプリケーション602−2は、マイクロフォンへのアクセスについてアプリケーション602−1(「アプリケーション01」)に対応するアクセス許可が与えられているか許可テーブル344を検索する。アクセス許可が存在しない場合、第2のアプリケーション602−2は、第1のアプリケーション602−1がマイクロフォンにアクセスするための許可を指定するようにユーザ604に求める。

0080

第1のアプリケーション602−1がリソースにアクセスするための許可が第2のアプリケーション602−2からユーザ604に求められると(608)、第1のアプリケーション602−1がリソースにアクセスすることを許可または拒否する第1のユーザ入力が(例えば、アプリケーション602−2によって)受信される(610)。その第1のユーザ入力に応答して、電子デバイスは、第2のアプリケーション602−2を使用して、第1のアプリケーション602−1がリソースにアクセスすることを許可または拒否する(614)。

0081

いくつかの実施形態では、第2のアプリケーション602−2を使用して第1のアプリケーション602−1がリソースにアクセスする許可を与えることは、第2のアプリケーション602−2を使用してリソースからデータを取得することを含む。第2のアプリケーション602−2は、その後、第1のアプリケーション602−1にそのデータを提供する。したがって、第2のアプリケーション602−2は、第1のアプリケーション602−1がリソースにアクセスするためのプロキシとして機能する(例えば、第2のアプリケーション602−2は、位置検出デバイス322からGPS座標を取得し、第1のアプリケーション602−1にそのGPS座標を提供する)。他の実施形態では、第1のアプリケーション602−1のアクセスが許可されると、第1のアプリケーション602−1が、第2のアプリケーション602−2とは独立してリソースに直接アクセスする。

0082

条件とは、リソースへのアクセスに課される制限、および/またはアクセスを許可するために満たすべき要件である。いくつかの実施形態では、第1のユーザ入力は、第1のアプリケーション602−1がリソースにアクセスすることを許可または拒否する1つ以上の条件を指定する(610)。条件は、第2のアプリケーション602−2に割り当てられたメモリ(例えば、図3における許可モジュール342の許可テーブル344)に記憶される(612)。第2のアプリケーション602−2は、この条件を使用して、第1のアプリケーション602−1からの後続の要求に応答して第1のアプリケーション602−1にリソースにアクセスする許可を与えるかどうかを決定する(614)。

0083

例えば、第1のユーザ入力は、第1のアプリケーション602−1がリソースにアクセスすることを1度のみ許可すること(ワンタイム許可)を指定する。第2のアプリケーション602−2が、その第1のユーザ入力に応答して、第1のアプリケーション602−1にリソースへのアクセスを許可した後、第1のアプリケーション602−1がリソースにアクセスするための第2の要求が第1のアプリケーション602−1から第2のアプリケーション602−2に送信される。第1のユーザ入力がアクセスを1度のみ許可するものであったことから、このアクセスを提供する権限は第2のアプリケーション602−2に与えられていない。従って、第2の要求に応答して、第2のアプリケーション602−2は、第1のアプリケーション602−1がリソースに再びアクセスする許可をユーザに求める。そして、第1のアプリケーション602−1にリソースにアクセスする許可を与えるかどうかを示す第2のユーザ入力が受信される。第2のアプリケーション602−2は、その第2のユーザ入力に従って、第1のアプリケーション602−1がリソースにアクセスすることを許可または拒否する。いくつかの実施形態では、ワンタイム許可は、第1のアプリケーション602−1に対して、一つのアクセス要求のみについてデータ(例えば、図3の画像/ビデオキャプチャデバイス324でキャプチャされた一つの写真)を取得するべくリソースにアクセスする許可を与える。他の実施形態では、ワンタイム許可は、第1のアプリケーション602−1に対して、その要求元アプリケーションの起動/実行の一つのセッションまたはインスタンスについてリソースにアクセスする許可を与える(例えば、地図アプリケーションは、ユーザがその地図アプリケーションを終了および/または再起動するまで、クライアントデバイス104のGPS座標にアクセスすることができる)。

0084

いくつかの実施形態では、第1のユーザ入力は、第1のアプリケーション602−1がリソースにアクセスすることを許可する期間を指定する。その期間の間、第2のアプリケーション602−2が繰り返し使用されることにより、第1のユーザ入力に従って、第1のアプリケーション602−1に対し、リソースにアクセスする許可が自動的に(すなわち、追加のユーザ入力を求めることなく)与えられる。この指定される期間は、アクセスを許可する日付の範囲(例えば、2014年11月1日から2014年12月1日までの間はアクセスが許可される)、または時間の範囲(例えば、午後1時から午後5時までの間はアクセスが許可される)、または指定した時間制限(例えば、1時間の間など)、あるいはこれらの任意の組み合わせ(例えば、指定された日付の範囲において、指定された時間の間、アクセスが許可される)とすることができる。代替的に、第1のユーザ入力は、第1のアプリケーション602−1がリソースにアクセスすることを拒否する期間を指定する。この場合には、その期間を除いてアクセスが許可される。

0085

いくつかの実施形態では、第1のユーザ入力は、第1のアプリケーション602−1がリソースにアクセスすることを許可する回数を指定する。この回数を超えない限り、第2のアプリケーション602−2が繰り返し使用されることにより、第1のユーザ入力に従って、第1のアプリケーション602−1に対し、リソースにアクセスする許可が自動的に与えられる。例えば、第1のユーザ入力は、第1のアプリケーション602−1からのアクセス要求を許可する数を指定する。

0086

いくつかの実施形態では、第1のユーザ入力は、第1のアプリケーション602−1がリソースにアクセスすることを許可する許可位置を指定する。電子デバイスの検出位置が許可位置に対応する間、第2のアプリケーション602−2が繰り返し使用されることにより、第1のユーザ入力に従って、第1のアプリケーション602−1に対し、リソースにアクセスする許可が自動的に与えられる。この指定される許可位置は、検出位置に関連付けられた座標(例えば、GPS座標)、会場組織、またはエンティティ(例えば、レストラン、ユーザの自宅、ユーザの職場など)、あるいはアクセスが許可される所定のエリア(例えば、ジオフェンスエリア)とすることができる(例えば、ユーザの自宅から半径半マイルの範囲で許可される)。一例として、第1のユーザ入力は、ユーザの自宅に関連付けられた位置の特定の半径の外側で第1のアプリケーション602−1がクライアントデバイス104のカメラ(例えば、図3の画像/ビデオキャプチャデバイス324)にアクセスすることを許可することを指定する。従って、クライアントデバイス104の検出位置がユーザの自宅の上記特定の半径内のGPS座標に対応する場合、第1のアプリケーション602−1はクライアントデバイス104のカメラにアクセスすることが拒否される。

0087

いくつかの実施形態では、第1のユーザ入力は、第1のアプリケーション602−1がリソースにアクセスすることを許可する許可ユーザを指定する。電子デバイスのユーザ604が許可ユーザであると判定されたとき、または電子デバイスのユーザ604が許可ユーザであると判定される間、第2のアプリケーション602−2が繰り返し使用されることにより、第1のユーザ入力に従って、第1のアプリケーション602−1に対し、リソースにアクセスする許可が自動的に与えられる。電子デバイスのユーザは、例えば、第1のアクセス要求の時点で、電子デバイスの第1のアプリケーション602−1、第2のアプリケーション602−2、またはオペレーティングシステムにログインしたユーザである。いくつかの実施形態では、電子デバイスのユーザ604が許可ユーザであるかどうかを判定することは、ユーザ認証情報を要求し(例えば、ユーザに対し、ユーザ名やパスワード、生体入力、または他の識別情報を提供することを促し)検証することを含む。

0088

いくつかの実施形態では、条件(ステップ610で第1のユーザ入力によって指定される条件)は、第1のアプリケーション602−1に対応するフォアグラウンドプロセスおよび/またはバックグラウンドプロセスによるリソースへのアクセスを許可する(例えば、フォアグラウンドプロセスによるアクセスは許可するがバックグラウンドプロセスに対しては許可しない、またはその逆についても同様)。フォアグラウンドプロセスは、その動作(例えば、要求されたリソースへアクセスすることを含む)をユーザ604が観察可能アプリケーションプロセスを含む。いくつかの実施形態では、フォアグラウンドプロセスは、アプリケーションそれ自体が起動/実行されていて現在実行中にある場合にのみ実行されるアプリケーションプロセスである。一例として、地図アプリケーションのフォアグラウンドプロセスは、クライアントデバイス104の現在のGPS座標を取得し、地図上での対応する位置をクライアントデバイス104のユーザに表示することを含む。これに対して、バックグラウンドプロセスは、その動作(例えば、要求されたリソースへアクセスすることを含む)をクライアントデバイスのユーザが観察可能でないアプリケーションプロセスを含む。いくつかの実施形態では、バックグラウンドプロセスは、他のフォアグラウンド/バックグラウンドプロセスと同時に実行されるアプリケーションプロセス、および/またはアプリケーションそれ自体が起動/実行されておらず現在実行中にない場合に実行されるアプリケーションプロセスを含む。例えば、アプリケーションのバックグラウンドプロセスは、ユーザがクライアントデバイス104のマイクロフォン(例えば、図3における音声入力デバイス320)にアクセスするアプリケーションを使用していない場合にも、そのマイクロフォンを使用してユーザからの音声を継続的に取り込む。バックグラウンドプロセスがマイクロフォンにアクセスすることを拒否することで、潜在的なユーザのプライバシー侵害を防ぐことができる。

0089

いくつかの実施形態では、リソースは、電子デバイスの位置追跡デバイス(例えば、図3の位置検出デバイス322)を含み、第1のユーザ入力は、この位置追跡デバイスへのアクセスに関して第1のアプリケーション602−1に対して許可すべき分解能の度合いを指定する。位置追跡デバイスへのアクセスに関する分解能の度合いは、例えば、クライアントデバイス104の位置を判定可能な精度(距離)を指定するものである(例えば、クライアントデバイス104の現在位置が検出されることで、クライアントデバイス104が位置している特定の半径を有するエリアが描かれる)。いくつかの実施形態では、第1のユーザ入力は、位置追跡の分解能を、低分解能と高分解能との間で選択する(例えば、位置追跡の所定の精度に対応する低分解能と高分解能(低分解能よりも高い精度を有する分解能)との間で選択する)か、または3つ以上の利用可能な分解能の中から選択する。

0090

いくつかの実施形態では、第1のユーザ入力は、第1のアプリケーション602−1にアクセス許可を与える条件の組み合わせを指定する。例えば、アプリケーション602−1は、ユーザ102−1(許可ユーザ条件)についてのみ、且つ指定された時間帯において指定の日(例えば、1つ以上の指定の曜日)についてのみ、リソースにアクセスすることが許可される。アプリケーションに対してアクセスを許可または拒否する条件は、図5Aおよび5Bに示され本明細書で説明されるものに限定されるものではなく、他の制限、要件、パラメータ、リソース指定制限、および/またはリソースへアクセスする際の詳細レベルも含むことができる。

0091

いくつかの実施形態において、電子デバイスは、第1のアプリケーション602−1がリソースにアクセスするために、第1のアプリケーション602−1によって第2のアプリケーション602−2に送信された複数のアクセス要求のレコードを(例えば、図3および図5Bのレコードテーブル346に)記憶する(612)。

0092

いくつかの実施形態では、第2のアプリケーション602−2は、リソースにアクセスするために第1のアプリケーション602−1によって送信された要求の数を或る期間に亘って(例えば、図3および図5Bのレコードテーブル346に記憶されたレコードに基づいて)判定する(616)。要求の数が閾値を満たす場合(例えば、閾値を超えるまたは閾値以上となる場合)、第2のアプリケーション602−2が使用されることにより、第1のアプリケーション602−1がリソースにアクセスすることが(例えば、追加のユーザ入力を求めることなく自動的に)拒否される(618)。閾値は、ユーザ入力によって指定されてもよいし、または第2のアプリケーション602−2においてコード化されてもよい。任意で、閾値を満たす要求の数に従って、電子デバイスのユーザにアラートが通知される(620)(例えば、クライアントデバイス104のディスプレイ上にアラートが表示されて、疑わしいアプリケーションがユーザに通知される)。このように、閾値は、悪意のあるアプリケーション(例えば、マルウェア)を識別および/または阻止するために使用することができる。

0093

いくつかの実施形態では、記憶されたレコードに基づき、複数の要求に関する1つ以上の統計情報がユーザに提示される(622)。例えば、記憶されたレコードに基づくアクセス要求の統計情報を含む図4BのGUI510がクライアントデバイス104のディスプレイ上に表示される。

0094

いくつかの実施形態では、第1のアプリケーション602−1によって送信された複数のアクセス要求に応答して、電子デバイスは、それぞれのアクセス要求について、第1のアプリケーションがリソースにアクセスすることを許可または拒否することを示す受信したそれぞれのユーザ入力のレコード(ユーザ入力はアクセス許可がユーザに求められた後に受信される)、および/または電子デバイスに関するそれぞれのコンテキスト情報のレコードを(例えば、レコードテーブル346に)記憶する(612)。コンテキスト情報は、アクセス要求が送信される状況、および/またはアクセス要求についてアクセスが許可または拒否される状況を記述する。いくつかの実施形態では、コンテキスト情報は、それぞれユーザ入力を受信したときの電子デバイスの位置(例えば、ユーザが自宅にいたときにアクセスの許可が指定されるなど)および/またはそれぞれユーザ入力が受信された日付/時刻(例えば、2014年11月25日の午後2時5分にアクセスの許可が指定されるなど)を含む。アクセス要求、与えられたアクセス許可、およびコンテキスト情報のレコードの例は、図5Bのレコードテーブル346に示されている。

0095

いくつかの実施形態では、記憶されたレコードに基づき、第1のアプリケーション602−1がリソースにアクセスすることを許可または拒否する条件の推奨がユーザに提示される(624)。電子デバイスは、レコードテーブル346に記憶されたレコードに基づいてユーザにより与えられるアクセス許可のパターンを識別し、アクセスを許可または拒否する条件の推奨をインテリジェントに提示する。例えば、許可モジュール342は、推奨内容構築する機械学習アルゴリズムを含み得る。一例では、レコードテーブル346のレコード(図3および図5B)は、第1のアプリケーション602−1がクライアントデバイス104の特定のリソース(例えば、図3において、音声をキャプチャする音声入力デバイス320)にアクセスする許可(例えば、ワンタイム許可)をユーザが常に与えていることを示す。従って、第2のアプリケーション602−2は、第1のアプリケーション602−1からその特定のリソースにアクセスするための後続の要求を受信することに応答して、第1のアプリケーション602−1がその特定のリソースに常にアクセスできるようにユーザが許可を与えていることを(例えば、GUIプロンプトを表示することによって)提言する。他の例では、第2のアプリケーション602−2は、ユーザが常に、第1のアプリケーション602−1が1つ以上の条件下で特定のリソースにアクセスすることを許可または拒否していることを識別し、第1のアプリケーションがその1つ以上の条件下ではその特定のリソースに常にアクセスできるようにユーザが許可を与えている、もしくは第1のアプリケーションがその1つ以上の条件下ではその特定のリソースにアクセスすることを禁止していることを提言する。さらに別の例では、第2のアプリケーション602−2は、ユーザが常に、複数のアプリケーションが(例えば、1つ以上の条件下で、もしくは条件には関係なく)特定のリソースにアクセスすることを許可または拒否していることを識別し、全てのアプリケーションが(例えば、1つ以上の条件下で、もしくは条件には関係なく)その特定のリソースに常にアクセスできるようにユーザが許可を与えている、もしくは全てのアプリケーションが(例えば、1つ以上の条件下で、もしくは条件には関係なく)その特定のリソースにアクセスすることを禁止していることを提言する。

0096

このため、クライアントデバイスのオペレーティングシステムとは異なる信頼性の高い許可アプリケーション(例えば、図3の許可モジュール342)を使用することによって、ユーザはどのアプリケーションがデバイスリソースにアクセスする許可を要求しているのかを高い信頼性で識別できるとともに、そのようなアクセス許可を細かなレベルで管理することができる。その結果、ユーザはデバイス上のアプリケーションを使用する際により高い信頼性とセキュリティを得ることができる。また、オペレーティングシステムとは別の独立した信頼性の高いアプリケーションを使用することによって、アクセス許可機能の柔軟性と透過性に影響を及ぼし得る、オペレーティングシステムに対するシステム全体の更新からその信頼性の高い許可アプリケーションが分離されるようになるため、より広い範囲のデバイスとの互換性を向上させることができる。

0097

上述したシステムがユーザの情報を収集する状況において、ユーザには、個人情報(例えば、ソーシャルコンテンツプロバイダに対するユーザの好みまたはユーザの貢献に関する情報)を収集可能なプログラムまたは機構をオプトインオプトアウトする機会が提供されてもよい。また、いくつかの実施形態では、特定のデータが記憶または使用される前に1つ以上の方法でそれが非特定化されて、個人識別可能な情報が除去されるようにしてもよい。例えば、ユーザについて個人を識別可能な情報が判別不可となるようにまたはそのユーザに関連付けされないようにユーザの身元が匿名化されてもよく、これにより、ユーザの好みまたはユーザインタラクションを、特定のユーザに関連付けるのではなく一般化する(例えば、ユーザの人口統計に基づいて一般化する)ことができる。

0098

種々の図面のいくつかは特定の順序で多数の論理工程を示しているが、順序に依存しない工程を並べ替えてもよく、また、他の工程を組み合わせたり省略したりしてもよい。いくつかの並べ替えまたはグループ分けを特定して説明したが、他のものも当業者には明らかであり、本明細書で説明する順序付けおよびグループ分けは代替案のリストを網羅するものではない。さらに、工程は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせで実施できることが認識され得る。

0099

以上、特定の実施形態を参照して説明したが、上述した例示的な説明は網羅的であることを意図したものでなく、開示された厳密な形態に特許請求の範囲を限定することを意図したものでもない。上述した教示を考慮して、多くの変更および変形が可能である。実施形態は、特許請求の範囲およびその実用的な適用の基本となる原理を最もよく説明するために選択され、当業者が考えられる特定の用途に適した様々な変更を加えた実施形態を最適な形で使用することができる。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ