コンピュータシステムのアクセスブローカーによって、前記コンピュータシステムのアプリケーションから、前記コンピュータシステムの利用可能な機能性の機能へのアクセスのための要求を受け取るステップと、前記アクセスブローカーによって、前記要求に応答して、前記アプリケーションのアプリケーションマニフェストに関連する機能宣言にアクセスするステップと、前記アクセスブローカーによって、前記アプリケーションが前記機能にアクセスするよう構成されるファンクションを含むことを示す宣言を前記機能宣言が含むとの決定に少なくとも部分的に基づき、前記要求を許可するステップとを有する方法。前記アクセスブローカーによって、前記機能へのアクセスの許可がユーザ承諾を必要とするとのインジケーションを前記アクセスブローカーのポリシーが含むと決定するステップと、前記アクセスブローカーによって、前記インジケーションを含むとの決定に応答して、前記要求を承諾するための選択可能なオプションを有する、前記コンピュータシステムのオペレーティングシステムのユーザインターフェース要素の表示を引き起こすステップとを更に有し、前記許可は更に、前記要求に対するユーザ承諾を示す入力の受信に少なくとも部分的に基づく、請求項1に記載の方法。前記アクセスブローカーによって、前記機能へのアクセスの許可がユーザ承諾を必要とするとのインジケーションを前記アクセスブローカーのポリシーが含むと決定するステップを更に有し、前記要求の許可は更に、前記機能へのアクセスのためのユーザ承諾を示す入力がオペレーティングシステム設定モジュールを介して受け取られたとの決定に少なくとも部分的に基づく、請求項1に記載の方法。1又はそれ以上のプロセッサと、コンピュータシステムにインストールされるハードウェアデバイスと、前記1又はそれ以上のプロセッサによって実行可能であり且つユーザインターフェース要素を表示するよう構成されるユーザ承諾コンポーネントと、前記1又はそれ以上のプロセッサによって実行可能であるアクセスブローカーとを有し、前記アクセスブローカーは、前記ハードウェアデバイスのデバイス機能にアクセスするための前記コンピュータシステムのアプリケーションからの要求の受信に応答して、前記ユーザ承諾コンポーネントに、前記ハードウェアの前記デバイス機能へのアクセスがユーザ承諾を必要とするとのインジケーションを前記コンピュータシステムのブローカーポリシーが含むとの当該アクセスブローカーによる決定の上に、前記要求を承諾するための選択可能なオプションを有するユーザインターフェース要素を表示させるよう構成される、コンピュータシステム。前記アクセスブローカーは更に、前記要求に対するユーザ承諾を示す入力の受信に少なくとも部分的に基づき前記デバイス機能にアクセスするのに使用可能なインターフェースハンドルを前記アプリケーションへ提供するよう構成される、請求項4に記載のコンピュータシステム。前記アクセスブローカーは、前記ハードウェアデバイスの前記デバイス機能にアクセスするための以前の要求に対するユーザ承諾を示す入力が前記要求の受信の前に受け取られたとの決定の上に前記要求を許可するよう構成される、請求項4に記載のコンピュータシステム。当該コンピュータシステムのメモリに記憶される前記アプリケーションのアプリケーションマニフェストを更に有し、前記アクセスブローカーは、前記要求に対するユーザ承諾を示す入力の受信と、前記アプリケーションが前記デバイス機能にアクセスするためのファンクションを含むことを示す宣言を前記アプリケーションマニフェストが含むとの決定とに基づき、インターフェースハンドルを前記アプリケーションへ返すよう構成される、請求項4に記載のコンピュータシステム。前記1又はそれ以上のプロセッサによって実行可能であり且つ前記アプリケーションを取得するための選択可能なオプションを有するアプリケーション取得インターフェースを表示するよう構成されるアプリケーション取得モジュールを更に有し、前記アプリケーション取得インターフェースは、前記アプリケーションが前記デバイス機能にアクセスするためのファンクションを含むことを示す前記宣言を含む前記アプリケーションマニフェストから1又はそれ以上の宣言を表示する、請求項7に記載のコンピュータシステム。特定の機能にアクセスするための要求が前記アクセスブローカーによって調停されることを条件とするセキュア実行モードにおいて前記1又はそれ以上のプロセッサによる前記アプリケーションの実行を強いるよう構成されるアプリケーションコンテナを更に有する請求項4に記載のコンピュータシステム。アプリケーションの実行中に、ユーザ入力装置からの入力に応答して、前記アプリケーションの機能アクセス設定を変更するための選択可能なオプションを含むアプリケーション特有オペレーティングシステムユーザインターフェース要素を表示するステップと、前記選択可能なオプションが選択されることを示すユーザ入力装置からの入力の受信に応答して、前記アプリケーションの前記機能アクセス設定を変更するようアクセスブローカーを更新するステップとを有する方法を実行するようコンピュータシステムの1又はそれ以上のプロセッサによって実行可能な複数のプログラミング命令を有するコンピュータ可読媒体。本概要は、詳細な説明において以下で更に説明される簡略化された形において概念の選択を導入するよう設けられる。本概要は、請求される対象の重要な特徴又は必須の特徴を特定するよう意図されず、更に、請求される対象の適用範囲を制限するよう用いられるよう意図されない。アクセスブローカーは、ハードウェアデバイス機能のようなコンピュータシステム機能へのアプリケーションアクセスを制御する。アクセスブローカーは、機能へのアクセスのためのアプリケーションからの要求を受け取り、アクセスを許可すべきかどうかを決定するようポリシーを適用する。ポリシーは、アプリケーションが機能へのアクセスを許可されるためにアプリケーションがそれらの機能を宣言するアプリケーションマニフェストを有することを求めてよい。また、ポリシーは、アプリケーションが機能へのアクセスを許可されるためにユーザが要求を承諾することを求めてよい。ユーザインターフェースコンポーネントは、アプリケーション特有の機能設定とともに、それらの設定を変更するための選択可能なオプションを含むユーザインターフェースを提供する。それらのユーザインターフェースは、アプリケーションとのユーザインタラクションの間立ち上げられて、ユーザに、特定のアプリケーションのための機能設定を見且つ設定するようシングルロケーションを提供する。それらのユーザインターフェースはオペレーティングシステムユーザインターフェースであるから、ユーザは、オペレーティングシステムが潜在的に危険な機能へのアプリケーションアクセスを制御しているとのより確かな信頼を提供される。詳細な説明は、添付の図を参照して記載される。図中、参照符号の左端の数字は、その参照符号が最初に現れる図を特定する。異なる図における同じ参照符号は、類似する又は同じ事項を示す。[概要]上述されたように、アプリケーションは、機能性をユーザに提供するために様々な機能にアクセスする。デバイス位置特定、メッセージング、ビデオキャプチャ、インターネットアクセス、及び他のような、それらの機能の幾つかは潜在的に危険であり、ユーザはそれらへのアクセスを制御又は禁止したいと望むことがある。また、ユーザは、ユーザがアプリケーションを取得又は実行すべきか否かを決定することができるように、アプリケーションがどの機能にアクセスするよう構成されるかを決定することができる必要がある。実施形態において、アクセスブローカーは、デバイス機能のような機能へのアプリケーションアクセスを制御する。保護されたアプリケーションコンテナ内で実行されるアプリケーションは、アクセスブローカーを通じて機能へのアクセスを要求する。要求される機能へ適用するポリシーのタイプに基づき、アクセスブローカーは、アプリケーション毎にポリシーを実施する方策を講じる。例えば、アクセスブローカーのポリシーは、アプリケーションが機能へのアクセスを許可されるためにユーザ承諾が取得されるべきことを示してよい。ポリシーは、アプリケーションが機能へのアクセスを許可されるために、機能がアプリケーションにそのアプリケーションマニフェストにおいて当該機能を宣言するよう求めることを示してよい。ポリシーは、アプリケーションが特定の機能へのアクセスを許可されるために、アプリケーションがその特定の機能にアクセスすることを許可されると特権的許可記録において具体的に特定されていることを求めてよい2011年5月2日付けでGanaphathy等によって出願された、特権的許可記録を用いてアクセス調停に関する詳細のためのBINDINGAPPLICATIONSTODEVICECAPABILITIESと題された米国特許出願第13/099260を参照のこと。。よって、特定の機能へ適用するポリシータイプに依存して、アクセスブローカーは、ユーザインターフェース要素が機能を承諾するための選択可能なオプションを有して表示されるようにしてよい。このユーザインターフェース要素は、アプリケーションとのユーザのインタラクションとの関連でオペレーティングシステムによって表示される。これは、ユーザが、いつアプリケーションがなぜ機能にアクセスするのかを理解することを容易にする。実施形態において、ユーザは、アプリケーションと相互作用するという状況で、オペレーティングシステムユーザインターフェース要素を呼び出すオプションを与えられる。オペレーティングシステムユーザインターフェース要素は、アプリケーションがアクセスすることができる機能を示す。ユーザインターフェース要素は、ユーザが様々な機能へのアクセスを有効又は無効にすることを可能にする。このアプリケーション特有のビューは、アプリケーションがどの機能へアクセスすることができるのかを決定するために複数の設定ページを開く必要なしに、アプリケーションがアクセスすることができる全ての、デバイス機能のような機能を見るためのシングルプレイスをユーザに与える。実施形態において、オペレーティングシステム設定モジュールは、特定の機能にアクセスすることができる全てのアプリケーションのビューをユーザに提供する。この機能に特有のビューは、ユーザがアプリケーション毎に又は全体としてアクセスを制御することを可能にし、それにより更にユーザ経験を高める。それらの特徴、すなわち、ユーザ承諾、アプリケーションマニフェストにおける機能宣言、アプリケーション特有の機能設定、及び機能特有のコンフィグレーション設定の組み合わせは、潜在的に危険な機能へのアプリケーションアクセスが適切に制御されるとの確かな信頼をユーザに提供する。この詳細な説明の全体を通して、語構成されるconfiguredは、アプリケーションの機能ファンクションを記述するために使用される場合に、アプリケーションが、ハードウェアデバイスのデバイス機能のような特定の機能へアクセスする機能性を有してプログラミングされることを意味する。この詳細な説明の全体を通して、語有効にされるenabledは、アプリケーションの機能ファンクションを記述するために使用される場合に、アプリケーションが機能にアクセスすることを可能に又は許可されることを意味する。従って、アプリケーションは、特定の機能にアクセスするよう構成されると同時に、同じ機能にアクセスすることを有効にされないことがある。本願で記載される処理、システム及び装置は、多くの方法において実施されてよい。実施例は、添付の図面を参照して以下で与えられる。[アクセスブローカーサービスを提供する環境の例]図1は、アクセスブローカーサービスを提供するのに使用可能なシステム100の例の概略図である。システム100は、アクセスブローカーサービスを実施することができる様々な適切なコンピュータ装置タイプで実施されてよい。適切なコンピュータ装置は、1以上のパーソナルコンピュータ、サーバ、サーバファーム、データセンター、特別目的のコンピュータ、タブレットコンピュータ、ゲーム機、スマートフォン、それらの組み合わせ、又はデバイスブローカーサービスの全て若しくは一部を記憶及び実行することができる何らかの他のコンピュータ装置を含むか又はその一部であってよい。図1の実例では、システム100はアクセスブローカー102を有する。アクセスブローカー102は、様々なアクセスレベルの下にある機能のリストを含むポリシー104を有する。アクセスレベルの例には、常に許可するalwaysallow、宣言するdeclare、細心の注意を払うべき/制限されるsensitiverestricted、及び特別許可された/未知privilegedunknownがある。それらのレベルの例は、本願では説明のために使用され、限定の意味でとられるべきではない。様々な実施形態において、アクセスレベルは、他のアクセスレベルのサブレベルであってよい。1つの制限されない例において、機能は、宣言する及び細心の注意を払うべき/制限されるの両方に該当することがある。他の制限されない例において、機能は、細心の注意を払うべき/制限される及び特別許可されたの両方に該当することがある。アプリケーションコンテナコンポーネント106は、メモリ、アプリケーション、アプリケーションプログラミングインターフェースAPI、又はデバイスのような様々なシステムリソースへのアプリケーションアクセスを制御するセキュア実行モードにおいてアプリケーションの実行を強制するための機能を提供する。アプリケーションApp108及び110は、アプリケーションコンテナコンポーネント106によって実施されるセキュアモードにおいて実行されるよう構成される。それらのアプリケーションは、デバイス112及びデバイス114のようなシステム100の様々なデバイスと相互作用するよう構成される様々なファンクションを含む。デバイス112は、デバイス機能116-1乃至116-Nのような様々な機能を提供することができる。そして、デバイス114は、デバイス機能118-1乃至118-Nのような様々な機能を提供することができる。デバイス機能の制限されない例には、位置特定サービス例えば、グローバルポジショニングシステムGPSサービス、メッセージングサービス例えば、ショートメッセージサービスSMS、ビデオキャプチャサービス、及び他がある。ポリシー104は、様々なアクセスレベルの下でデバイス112及び114の様々な機能をリストアップする。例えば、デバイス機能116-1、116-2及び118-1は常に許可するの下でリストアップされ、デバイス機能116-3及び118-2は宣言するの下でリストアップされ、デバイス機能118-3及び116-4は細心の注意を払うべき/制限されるの下でリストアップされ、デバイス機能118-4は特別許可されたの下でリストアップされる。アクセスブローカー102は、デバイス112及び114の様々な機能にアクセスするためのアプリケーション108及び110からの要求を受け取るよう構成される。第1の例では、アプリケーション110は、デバイス112のデバイス機能116-1へのアクセスを要求する。アクセスブローカー102は、ポリシー104に対してルックアップ動作を実行し、デバイス機能116-1が常に許可するレベルに該当すると決定する。結果として、アクセスブローカー102は、デバイス機能116-1へアクセスするようアプリケーション110へデバイスハンドルを提供する。次いで、アプリケーション110はハンドルを利用して、データ及びコマンドを送信及び受信することを含め、デバイス機能116-1と相互作用することができる。常に許可するレベルに該当する機能は、最も危険性がないと考えられる。1つの制限されない例において、印刷サービスは常に許可する又は同等のアクセスレベルの下でリストアップされてよい。第2の例では、アクセスブローカー102は、デバイス114のデバイス機能118-2のような機能にアクセスするためのアプリケーション108からの要求を受け取る。アクセスブローカー102は、ポリシー104に対してルックアップ動作を実行し、デバイス機能118-2が宣言するアクセスレベルに該当すると決定する。従って、アクセスブローカー102は、アプリケーション108に関連するアプリケーションマニフェスト122内のデバイス宣言120が、アプリケーション108がデバイス114のデバイス機能118-2にアクセスすることを可能にされるとの宣言を含むかどうかを決定する。デバイス宣言120は、SMSメッセージング又はビデオキャプチャのような機能のための扱いやすい名称とともに、グローバル一意識別子GUIDのような機能のための一意の識別子を含んでよい。宣言がアプリケーションマニフェスト122に存在すると決定されると、アクセスブローカー102は、デバイス114のデバイス機能118-2にアクセスするのに使用可能なデバイスハンドルをアプリケーション108に提供する。宣言がアプリケーションマニフェスト122に存在しないと決定されると、アクセスブローカー102は、アプリケーション108へ例外ハンドル又はその他のエラーメッセージ若しくはコードを返してアクセス要求を拒否する。アプリケーションが自身が特定の機能にアクセスすることを可能にするためにそのマニフェストにそれらの機能を含めることを条件とすることは、アプリケーションがそれらの機能にアクセスするよう構成されるという事実について正直であることを必要とする。これはつまり、ユーザが、アプリケーションがアクセスするよう構成されるデバイス機能を含む機能を知った上でアプリケーションをアクセスし、取得し、ダウンロードし、インストールし、及び/又は実行すべきかどうかを決定することを可能にする。第3の例では、アプリケーション108は、デバイス112のデバイス機能116-4のような機能へのアクセスを要求する。アクセスブローカー102は、ポリシー104に対してルックアップ動作を実行し、デバイス機能116-4が細心の注意を払うべき/制限されるレベルに該当すると決定する。結果として、アクセスブローカー102は、ユーザインターフェース承諾モジュール124に、アクセス要求を承諾するための選択可能なオプションを有するユーザインターフェースを表示させる。要求へのユーザ承諾を示す入力の受信時に又はユーザ承諾が以前に与えられたとの決定の上に、アクセスブローカー102は、デバイス機能116-4のインスタンスと相互作用するのに使用可能なデバイスハンドルをアプリケーション108に提供する。実施形態において、ポリシー104は、細心の注意を払うべき/制限されるレベルに該当する機能が、それらの機能へのアクセスを提供するためにユーザ承諾に加えてアプリケーションマニフェストにおいても宣言されることを条件としてよい。第4の例では、アプリケーション110は、デバイス114のデバイス機能118-4のような機能へのアクセスを要求する。アクセスブローカー102は、ポリシー104に対してルックアップ動作を実行し、デバイス機能118-4が特別許可されたレベルに該当すると決定する。結果として、アクセスブローカー102は、特権的許可記録126に対するルックアップを実行して、アプリケーション110がその中でデバイス機能118-4にアクセスすることを許可されていると具体的にリストアップされているかどうかを決定する2011年5月2日付けでGanaphathy等によって出願された、特権的許可記録を用いてアクセス調停に関する詳細のためのBINDINGAPPLICATIONSTODEVICECAPABILITIESと題された米国特許出願第13/099260を参照のこと。。上記の例では、機能にアクセスするための要求は、特定のデバイスの特定の機能に係る。実施形態において、アプリケーションは汎用的な機能へのアクセスを要求することがあり、アクセスブローカー102は、もしあれば、どのデバイスが汎用的な機能を提供するのかを決定してよい。例えば、ユーザのコンピュータ装置に設置された1よりも多いウェブカメラが存在してよく、アクセスブローカー102は、ウェブカメラにアクセスするためのアプリケーションからの要求を受け取った後、1のウェブカメラへのアクセス又は他おそらく、ユーザに1つを選択するよう促すこと。を調停する。アクセスブローカー102はまた、一連の動作の前に、コンピュータシステムがウェブカメラを備えることを確かめるよう確認する。システム100は、アプリケーション108及びアプリケーション110のようなアプリケーションを取得するようオンライン又はオフラインストアへのインターフェースを提供するアプリケーション取得コンポーネント128を有する。アプリケーション108を取得するためのオプションを提示する場合に、例えば、アプリケーション取得コンポーネント128は、アプリケーション108に関連するアプリケーションマニフェスト122内の機能宣言120の表示を引き起こすよう構成される。よって、ユーザは、アプリケーション108がアクセスするよう構成されるそれらの機能に部分的に基づき、アプリケーションを取得すべきかどうかを決定することができる。システム100は、アプリケーション内機能設定インターフェースモジュール132及び機能特有ユーザインターフェースモジュール134を有するオペレーティングシステム設定モジュール130を有する。オペレーティングシステム設定モジュール130は、アプリケーションとのユーザインタラクションとの関連でアプリケーション内機能設定インターフェースモジュール132を表示するためのユーザ入力を受け取るよう構成される。アプリケーション内機能設定インターフェースモジュール132は、設定可能な機能アクセス設定のリストを提供する。アプリケーション内機能設定インターフェースモジュール132は、アプリケーションがアクセスするよう構成される機能と、それらの機能が現在そのアプリケーションに使用可能であるかどうかと、それらの機能をアプリケーションに使用可能又は不可能とするための選択可能なオプションとをリストアップする。例えば、アプリケーション108と相互作用するという状況で、ユーザは、アプリケーション内機能設定インターフェースモジュール132の表示を要求してよい。アプリケーション内機能設定インターフェースモジュール132はその後、デバイス114のデバイス機能118-3へのアプリケーション108のアクセスを無効にするユーザ入力を受け取ってよい。よって、たとえユーザが以前に、アプリケーション108がデバイス114のデバイス機能118-3にアクセスすることを可能にすると承諾していたとしても、アクセスブローカー102は、現在のアクセスを破棄し、デバイス機能118-3に対するアプリケーション108からの更なる要求を拒否するか、又は代替的に、ユーザがデバイス機能118-3にアクセスするためのアプリケーション108からの将来の要求を承諾するよう求めてよい。オペレーティングシステム設定モジュール130は、機能特有ユーザインターフェースモジュール134を表示させるよう構成される。機能特有ユーザインターフェースモジュール134は、特定の機能にアクセスするよう構成されるアプリケーションをリストアップするユーザインターフェース要素の表示を引き起こす。ユーザインターフェース要素はまた、その機能にアクセスするよう構成される全て又は何れかのアプリケーションについて機能を使用不可能又は可能にするための選択可能なオプションを含む。実施形態において、1以上の機能は、その実施の時点でオペレーティングシステムに知られていることがある。実施形態において、オペレーティングシステムは、1以上の宣言処理を介して、サポートされる機能の組の拡張を可能にしてよい。幾つかの場合に、機能の組を増やす機能は、オペレーティングシステムに制限されてよく、一方、他の場合に、オペレーティングシステムは、第三者デバイスのような第三者プロバイダが新しい機能を宣言することを可能にしてよい2011年5月2日付けでGanaphathy等によって出願された、特権的許可記録を用いてアクセス調停に関する詳細のためのBINDINGAPPLICATIONSTODEVICECAPABILITIESと題された米国特許出願第13/099260を参照のこと。。様々な実施形態において、デバイス機能は、総称的に、それらが実施されるデバイスに関して表される。そのような実施形態は、アプリケーションによって使用されることを認められるデバイスをユーザが選択することを可能にする。そうすることによって、ユーザは、アプリケーションがデバイスの全ての機能を使用することを承諾する。例えば、ユーザのコンピュータに接続された多機能デバイスは、SMS機能、Geolocation機能、及び携帯電話機の製造業者によって定義されるカスタム機能をサポートする携帯電話機であってよい。デバイスベースのモデルでは、ユーザは、アプリケーションがデバイスの全ての機能にアクセスすることを可能にする機会を与えられる。代替の実施形態は、ユーザがデバイスの全ての機能よりむしろデバイスの個々の機能を使用可能にすることを可能にされるように、特定の機能に関連するユーザ経験メタデータを加えるモデルを提供してよい。よって、一例において、ユーザは、アプリケーションがGeolocation機能を除くSMS機能及びカスタム機能例えば、製造業者がカスタム機能を記述するユーザインターフェース要素を提供していた場合にアクセスすることを可能にするよう選択してよい。アクセス調停に係る制限されない例において、ユーザは、メディアプレーヤアプリケーションを取得し、アプリケーション取得コンポーネント128は、オーディオ及びビデオキャプチャ、SMS、並びに他のような、メディアプレーヤがアクセスするよう構成される機能の表示を引き起こす。それらの機能は、メディアプレーヤアプリケーションに関連するアプリケーションマニフェスト例えば、アプリケーションマニフェスト122においてリストアップされる。従って、アプリケーション取得コンポーネント128によって提示されるインターフェースは、ユーザが、メディアプレーヤがアクセスするよう構成される機能に少なくとも部分的に基づき、メディアプレーヤアプリケーションを取得すべきかどうかを選択することを可能にする。それらの機能は、ウェブカメラ、マイクロホン、及び/又は携帯電話機のような様々なデバイスによって提供されてよい。代替的に、それらの機能の1以上は、ユーザのコンピュータ装置で実行されるソフトウェアモジュールによって、又はウェブベースのサービスによって提供されてよい。引き続き同じ、制限されない例において、ユーザは後に、SMSメッセージを介して他のユーザへプレイリストを送信するよう構成されるメディアプレーヤアプリケーションのファンクションを選択してよい。SMSメッセージング機能はユーザ承諾を必要とするとポリシー104が定める場合例えば、SMSメッセージングが細心の注意を払うべき/制限されるレベルに該当するためは、アクセスブローカー102は、ユーザインターフェース承諾モジュール124に、メディアプレーヤアプリケーションがSMS機能にアクセスすることを可能にすると承諾するための選択可能なオプションを表示させる。承諾するための選択可能なオプションの表示はSMSを介してプレイリストを送信する状況の間生じるので、ユーザは、いつメディアプレーヤがなぜSMS機能にアクセスするのかをより良く理解することができる。対照的に、アプリケーションが立ち上げられる時点で又はアプリケーションがインストールされる場合にメディアプレーヤがSMS機能にアクセスすることを可能にするようユーザがプロンプトされるか、あるいは、全くそうされない場合は、ユーザは、いつメディアプレーヤがなぜSMSにアクセスするのかに関して当惑することとなる。ユーザインターフェース承諾モジュール124はメディアプレーヤアプリケーションの要素よりむしろオペレーティングシステム要素であるから、ユーザは、メディアプレーヤアプリケーションが、ユーザの承諾、認識及び制御なしで、SMSのような潜在的に危険な機能にアクセスしないとの更なる信頼を有することができる。アクセスブローカー120がSMS機能にアクセスするための別のアプリケーションからのその後の要求を受け取るべき場合は、メディアプレーヤアプリケーションがSMS機能にアクセスするためのユーザの以前の承諾は適用されず、アクセスブローカー102は、ユーザに、SMS機能への他のアプリケーションのアクセスを承諾するようプロンプトする。メディアプレーヤアプリケーションが例えば位置特定サービスのような別の機能へのアクセスを要求すべき場合は、メディアプレーヤアプリケーションがSMS機能にアクセスすることを可能にするユーザの以前の承諾は適用されず、アクセスブローカー102は、ユーザに、位置特定サービスへアクセスするためのメディアプレーヤの要求を承諾するようプロンプトする。更に引き続き同じ、制限されない例において、アプリケーション内機能設定モジュール132は、メディアプレーヤアプリケーションと相互作用する状況において、アプリケーション特有の機能設定の表示を引き起こす。ユーザは、このアプリケーション特有のビューを用いてメディアプレーヤのSMS機能アクセスを制御することができる。機能特有ユーザインターフェースモジュール134は、単一のリストにおいてSMS機能にアクセスすることができるメディアプレーヤアプリケーションのようなアプリケーションを見て、ユーザが望む何れか及び全てのアプリケーションに対してSMS機能アクセスをオン又はオフするオプションをユーザに提供する。よって、この詳細な説明の実施形態は、ユーザのコンピュータシステムがデバイス機能のような機能へのメディアプレーヤアプリケーションのアクセスを適切に制御しているとの更なる信頼をユーザに提供する。[コンピュータ装置の例]図2は、実施形態に従ってアクセスブローカーサービスを提供するのに使用可能なコンピュータシステムの例のブロック図である。コンピュータシステム200は、アクセスブローカーサービスを実施することができる如何なる適切なコンピュータ装置としても構成されてよい。様々な制限されない例に従って、適切なコンピュータ装置は、パーソナルコンピュータPC、サーバ、サーバファーム、データセンター、特別目的のコンピュータ、タブレットコンピュータ、ゲーム機、スマートフォン、それらの組み合わせ、又はブローカーサービスの全て又は一部を記憶及び実行することができる何らかの他のコンピュータ装置を有してよい。一例の構成において、コンピュータシステム200は1以上のプロセッサ202及びメモリ204を有する。コンピュータシステム200は、様々な他のシステムとの通信を可能にする通信接続206を更に有してよい。コンピュータシステム200は、プロセッサ202及びメモリ204と通信上結合されている、キーボード、マウス、ペン、音声入力装置、タッチ入力装置等のような1以上の入力装置208と、ディスプレイ、スピーカ、プリンタ等のような1以上の出力装置210とを更に有してよい。メモリ204は、プロセッサ202でロード可能且つ実行可能であるプログラム命令と、それらのプログラムの実行中に生成され及び/又はそれらのプログラムとともに使用されるデータとを記憶してよい。表されている例では、メモリ204はオペレーティングシステム212を記憶する。オペレーティングシステム212は、コンピュータシステム200の基本システム機能性を提供し、特に、コンピュータシステム200の他のプログラム及びモジュールの動作を提供する。メモリ204は、図1のアクセスブローカー102と同じか又は類似するアクセスブローカー214を有する。アクセスブローカー214は、図1のデバイス112及び114の一方又は両方と同じか又は類似するデバイス216へのアプリケーションアクセスを調停するよう構成される。メモリ204は、図1のアプリケーションコンテナコンポーネント106と同じか又は類似であるアプリケーションコンテナコンポーネント218を有する。アプリケーションコンテナコンポーネント218は、デバイス112のようなシステムリソースへのアプリケーションアクセスを制御するセキュア実行モードを実施するよう構成される。メモリ204は、図1のアプリケーションマニフェスト120と同じか又は類似であるアプリケーションマニフェスト220を有する。メモリ204は、図1のユーザインターフェース承諾モジュール124及びオペレーティングシステム設定モジュール130と夫々同じか又は類似であるユーザインターフェース承諾モジュール222及びオペレーティングシステム設定モジュール224を更に有する。ユーザインターフェース承諾モジュール222及びオペレーティングシステム設定モジュール224は、オペレーティングシステム212内の構成要素であってよいが、説明のために図2では別々に示されている。メモリ204は、図1の特権的許可記録126と同じか又は類似である特権的許可記録226を有する。メモリ204は、図1のアプリケーション取得コンポーネント128と同じか又は類似であるアプリケーション取得コンポーネント228を更に有する。[機能アクセスを調停する動作の例]図3は、アプリケーション宣言及びユーザ承諾に基づき機能アクセスを調停する処理300の例を示すフロー図である。コンピュータシステムのアクセスブローカーは、ブロック302で、コンピュータシステムに設置されているハードウェアデバイスのデバイス機能のような機能にアクセスするためのアプリケーションからの要求を受け取る。アプリケーションは、メモリ、他のアプリケーション、及び設置されているハードウェアデバイスのようなシステムリソースへのアクセスを制御するセキュア実行モードにおいて実行中であってよい。アクセスブローカーは、ブロック304で、要求されている機能のアクセスレベルを決定するようポリシーに対するルックアップ動作を実行する。要求されている機能が特別許可された機能であるか又は機能が未知の機能であるとポリシーが示すとブロック306で決定されると、アクセスブローカーはブロック308で、許可記録に対するルックアップ動作を実行する。許可記録は、特別許可された機能にアクセスすることを認められるとしてデバイスドライバによって登録されているアプリケーションを含んでよい。アプリケーションが要求されている機能にアクセスすることを認められるとして許可記録においてリストアップされているとブロック310で決定されると、アクセスブローカーはブロック312で、要求されている機能と相互作用するのに使用可能なハンドルをアプリケーションに提供する。アプリケーションが要求されている機能にアクセスすることを認められるとして許可記録においてリストアップされていないと決定されると、アクセスブローカーはブロック314で、エラーコードをアプリケーションへ返し、それによってアプリケーションの要求を拒否する2011年5月2日付けでGanaphathy等によって出願された、特権的許可記録を用いてアクセス調停に関する詳細のためのBINDINGAPPLICATIONSTODEVICECAPABILITIESと題された米国特許出願第13/099260を参照のこと。。アクセスブローカーはブロック316で、要求されている機能が宣言される機能に該当するかどうかを決定する。宣言される機能は、機能アクセス要求がアプリケーションに対して許可されるためにその機能がアプリケーションのマニフェストに含まれることを条件とする。要求されている機能が宣言される機能レベルに該当すると決定されると、アクセスブローカーはブロック318で、アプリケーションのアプリケーションマニフェストが要求されている機能の宣言を含むかどうかを決定する。その決定は、アプリケーションマニフェストに対するルックアップを含んでよく、あるいは、アプリケーションマニフェストは、アプリケーションが立ち上げられる場合又はその他の時点でアクセスブローカーポリシー又はその他の場所にロードされてよい。アプリケーションマニフェストが要求されている機能を宣言していると決定されると、アクセスブローカーはブロック312で、アプリケーションへハンドルを提供する。要求されている機能が細心の注意を払うべき/制限されるアクセスレベルに該当するとブロック320で決定されると、アクセスブローカーはブロック322で、要求されている機能にアクセスするためのアプリケーションによる以前の要求に対してユーザによる以前の承諾が存在するかどうかを決定する。実施形態において、アクセスブローカーは更に、その以前の要求がアプリケーションの同じインスタンスによって受け取られたかどうかを決定する。それがアプリケーションの新しいインスタンスである場合は、以前の承諾は無効であると見なされてよい。代替の実施形態において、アクセスブローカーポリシーは、ユーザが、以前の承諾に係るアプリケーションのインスタンスの異同にかかわらず、承諾を求めるアプリケーションの各インスタンスを承諾することを条件としてよい。以前の承諾があったと決定されると、アクセスブローカーはブロック312で、アプリケーションにハンドルを提供する。以前の承諾がなかったと決定されると、アクセスブローカーはブロック324で、機能アクセス要求を承諾するための選択可能なオプションを有するオペレーティングシステムのユーザインターフェース要素の表示を引き起こす。ユーザインターフェース要素は、要求されている機能に関する情報を含む。ユーザインターフェース要素は、ユーザがアプリケーションと相互作用する状況で現れるので、ユーザは、いつアプリケーションがなぜ機能にアクセスするのかをより良く理解することができる。ブロック326でユーザ承諾を示す入力が受信されると、アクセスブローカーは、ブロック312でハンドルを提供する前に、ブロック318で、アプリケーションマニフェストが要求されている機能を宣言するかどうかを決定する。代替の実施形態において、アクセスブローカーは、アプリケーションマニフェストが要求されている機能を宣言するかどうかを最初に決定することなく、ハンドルを返す。更なる他の実施形態において、アクセスブローカーは、承諾ユーザインターフェースを表示させることに代えて、又はそれに加えて、アクセスが許可されるべきかどうかを決定するための他のオペレーティングシステム要素を呼び出すよう構成されてよい。要求されている機能が常に許可アクセスレベルに該当するとブロック328で決定されると、アクセスブローカーはブロック312で、アプリケーションにハンドルを提供する。実施形態において、ポリシーは、1以上の機能が複数のアクセスレベルに該当することを示してよい。1つの制限されない例において、特定の機能は、特別許可された及び宣言するの両アクセスレベルに該当するとポリシーにおいて示されてよい。そのような場合に、アクセスブローカーは、機能にアクセスするためにアプリケーションへハンドルを提供する前に、ブロック308及びブロック318に関連するファンクションを実行してよい。図3で示される動作の厳密な順序及び流れは、本詳細な説明において又は特許請求の範囲において別なふうに示されない限り、限定であると解されるべきではない。[アプリケーション内機能設定を提供する動作の例]図4は、アプリケーション内機能インターフェース設定構成を提供する処理400の例を示すフロー図である。アプリケーションはブロック402で、セキュア実行モード例えば、アプリケーションコンテナコンポーネントによって提供される。において実行されている。セキュア実行モードは、システムリソースへのアプリケーションのアクセスに対する制御を提供する。アクセスブローカーは、アプリケーションの実行中に、ブロック404で、アプリケーションの機能アクセス設定を変更するための選択可能なオプションを含むアプリケーション特有のオペレーティングシステムユーザインターフェース要素を表示するコマンドを示すユーザ入力装置からの入力を受け取る。ユーザインターフェース要素はオペレーティングシステム要素であるから、ユーザは、オペレーティングシステムがデバイス機能のような機能へのアプリケーションアクセスを適切に制御しているとの確かさ及び信頼を大いに有する。アプリケーション内ユーザインターフェースモジュールはブロック406で、アプリケーションのための機能アクセス設定を変更するコマンドを示すユーザ入力を受け取る。コマンドは、機能へのアプリケーションのアクセスを無効又は有効にするものであってよい。機能設定を変更するコマンドの受信は、アプリケーションが機能にアクセスすることを可能にするようユーザが与えていた如何なる以前の承諾も覆す。従って、アプリケーションのための機能アクセス設定のステータスはブロック408で、変更を反映するために、アクセスブローカーにおいて、更に機能特有オペレーティングシステム設定モジュールにおいて、更新される。幾らかの後に、アプリケーションはその特定の機能へのアクセスを要求する場合に、アクセスブローカーは、この詳細な説明内の他の場所で記載されるように、要求を拒否するか、又はユーザに承諾をプロンプトしてよい。[機能に特有の設定構成を提供する動作の例]図5は、デバイス機能に特有の設定のような、機能に特有の設定を見且つ設定するための処理500を示すフロー図である。コンピュータシステムはブロック502で、オペレーティングシステム設定モジュールを立ち上げる。これは、デバイス機能設定を含む機能アクセス設定のような様々なシステム設定へのアクセスを提供する制御パネルタイプのインターフェースを提供してよい。オペレーティングシステム設定モジュールはブロック504で、機能アクセス設定を見るためのユーザ入力を受け取る。これに応答して、オペレーティングシステム設定モジュールはブロック506で、機能のリストを表示する。特定の機能はデフォルトで選択されてよい。オペレーティングシステム設定モジュールはブロック508で、特定の機能を選択するユーザコマンドを示す入力を受け取る。この入力に応答して、オペレーティングシステム設定モジュールはブロック510で、選択された機能にアクセスよう構成されるアプリケーションのリストを表示する。オペレーティングシステム設定モジュールはまたブロック512で、アプリケーションが現在機能にアクセスすることを可能にされているかどうかを示すよう、アプリケーションの隣にインジケータを表示する。アプリケーションは、以前のユーザ承諾により、アプリケーション宣言により、アプリケーションが特権的許可記録においてリストアップされているために、又はその他の理由により、機能にアクセスすることを可能にされてよい。オペレーティングシステム設定モジュールはブロック514で、特定のアプリケーションについて機能を有効又は無効にするコマンドを示す入力を受け取る。この入力は、オペレーティングシステム設定モジュールの表示と相互作用するユーザ入力装置を介して、受信されてよい。例えば、入力は、アプリケーションが現在機能にアクセスすることを可能にされているかどうかを示すよう表示されるインジケータとのインタラクションの間に受信されてよい。インジケータの制限されない例には、2ボタンインジケータ有効/無効、オン/オフ、又は他、スライド制御、ノブ、又はその他の対話型インジケータがある。機能アクセス設定の変更に応答して、オペレーティングシステム設定モジュールはブロック516で、コンピュータシステムのアクセスブローカーの更新を引き起こす。ユーザ入力がその特定のアプリケーションについて機能の無効化を示す場合は、アクセスブローカーは、この詳細な説明内の他の場所で記載されるように、その機能へのアクセスのためのアプリケーションによる更なる要求を拒否するか、又はユーザの承諾をプロンプトする。図3乃至5は、様々な実施形態に従う処理の例を示すフロー図を表す。それらの処理の動作は、個々のブロックにおいて表され、それらのブロックを参照して要約される。処理は論理フロー図として表され、その夫々の動作は、ハードウェア、ソフトウェア、又はそれらの組み合わせにおいて実施され得る動作の組を表してよい。ソフトウェアとの関連で、動作は、1以上のプロセッサによって実行される場合に該1以上のプロセッサが挙げられている動作を実行することを可能にする、1以上のコンピュータ記憶媒体に記憶されたコンピュータ実行可能命令に相当する。概して、コンピュータ実行可能命令は、特定の機能を実行するか又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、モジュール、コンポーネント、データ構造、等を含む。動作が記載される順序は、限定として解釈されるよう意図されず、如何なる数の記載される動作も、処理を実施するために、如何なる順序においても結合され、従属する動作に分離され、及び/又は並行して実行され得る。様々な実施形態に従う処理は、論理フロー図において表される動作の一部又は全てを含んでよい。[ユーザインターフェースの例]図6は、細心の注意を払うべきデバイス機能のような、慎重を期する機能についてのアプリケーション要求に対するユーザ承諾を取得するユーザインターフェース表示を例示する。アプリケーションインターフェース600は、コンピュータシステムのユーザインターフェース内で実行され得る如何なるアプリケーションも表すこの場合、アプリケーションFooApp。そのポリシーにおいて細心の注意を払うべきとして挙げられている機能にアクセスするためのアプリケーションからの要求が受け取られると、アクセスブローカーは、承諾ユーザインターフェース要素602の表示を引き起こす。承諾ユーザインターフェース要素602は、アプリケーションが要求している機能の記述604と、要求を承諾するための選択可能なオプション許可ボタン606とを含む。図6で示される例では、アプリケーションFooAppは、位置特定機能へのアクセスを要求している。様々な実施形態において、位置特定機能は、GPSデバイスのようなコンピュータシステムのハードウェアデバイスによって提供されてよい。他の実施形態においては、位置特定機能は、コンピュータシステムのデバイス以外のウェブサービス又はその他のサービスによって提供されてよい。図6で示される例では、ユーザは、要求を承諾又は拒否するよう許可ボタン606又は拒否ボタン608を選択してよい。承諾ユーザインターフェース要素602は、細心の注意を払うべき機能本例では、位置特定サービスにアクセスするためのアプリケーションからの要求の受信の上に且つアプリケーションとのユーザインタラクションとの関連で表示されるので、ユーザは、いつアプリケーションがなぜ位置特定サービスを使用するのかをより良く判断することができる。これは、例えば、アプリケーションに位置特定サービス機能へのハンドルを要求させたアプリケーションの何らかの機能性をユーザが起動したためであってよい。そして、ユーザは、従って、ファンクションの自身の起動を、自身が位置特定サービスのアプリケーションのアクセスを承諾するよう求められることとより良く結びつけることができる。例えば、アプリケーションは、ユーザがある位置でチェックインすることを可能にしてよく、それにより、ユーザの位置はソーシャルネットワーキングサイトで利用可能となる。よって、ユーザがアプリケーションのチェックインファンクションを選択する場合に、ユーザは、アプリケーションがそのアプリケーションのチェックイン機能性を進めるよう位置特定サービスへのアクセスを要求していると、より良く理解することができる。図7は、デバイス機能を含む機能の表示を含むアプリケーション取得ユーザインターフェース表示を例示する。ユーザインターフェース表示700は、アプリケーションを取得し、ダウンロードし、及び/又はインストールするオプションをユーザに提供するよう有効にされるアプリケーション取得サービスによって表示される。ユーザインターフェース表示700は、アプリケーション名702、アプリケーションアイコングラフィック704、及びアプリケーションをダウンロード又は購入するための選択可能なオプション706のような1以上のフィーチャーを含む。ユーザインターフェース表示700は、アプリケーションがアクセスすることを可能にされている1以上の機能を表示する機能リスト708を含む。機能リスト708は、デバイス機能と、ユーザの写真ライブラリにアクセスするファンクションのような他の非デバイス機能とを含むアプリケーションファンクションを表示してよい。機能リスト708は機能のサブセットしか有さなくてよい。従って、機能リスト708は、全ての機能のリスト712を見るための選択可能なオプション710を含む。ユーザインターフェース表示700は、ユーザがアプリケーションを購入し、ダウンロードし、インストールし、及び/又は実行する前に、どの機能をアプリケーションが実行することを可能にされているかをユーザがより良く判断することを可能にする。全ての機能のリスト712は、アプリケーションのマニフェスト図示せず。において宣言されており、ユーザインターフェース表示700は、アプリケーションのマニフェストからリスト712を得る。幾らか後に、ユーザがアプリケーションを取得し実行した後、アプリケーションは機能へのアクセスを要求してよい。この要求はアクセスブローカーによって受信される。この詳細な説明内の他の場所で記載されるように、アクセスブローカーは、機能がアプリケーションマニフェストにおいて宣言されない限り、アプリケーションがその機能にアクセスすることを認めなくてよい。アプリケーションが取得される時点でアプリケーションマニフェストからデバイス機能宣言を含む機能宣言を提示し、アプリケーションがその機能へのアクセスを得るためにアプリケーションにそのマニフェストにおいて機能を宣言することを求めるポリシーを実施することは、ユーザに開示される機能と、アプリケーションが使用することを認められる機能との間の連続性を保つ。このように、アプリケーションは、ユーザから機能にアクセスするファンクションを隠すことができない。図8は、アプリケーション内機能設定情報を表示するユーザインターフェース表示を例示する。アプリケーションインターフェース800は、アプリケーション内機能設定表示ウィンドウ802によって部分的にオーバレイされている。アプリケーション内機能設定表示ウィンドウ802はオペレーティングシステムユーザインターフェースである。アプリケーション内機能設定表示ウィンドウ802は、機能804それらの一部又は全てはデバイス機能であってよい。を、それらの機能804を有効又は無効にするための選択可能な制御806とともにリストアップする。アプリケーション内機能設定表示ウィンドウ802はまた、様々なデバイス機能を含む、アプリケーションが使用又はアクセスするよう構成される様々な機能のリスト808を表示する。リスト808はアプリケーションマニフェストから取得される。アプリケーション内機能設定表示ウィンドウ802は、アプリケーションがアクセスするよう構成される全ての機能をユーザがシングルロケーションにおいて見ることを可能にする。このように、ユーザは、この情報を見るために複数のコンフィグレーション設定ウィンドウを開く必要がない。また、アプリケーション内機能設定表示ウィンドウ802はアプリケーションとのインタラクションの間アクセスされ得るので、ユーザはより容易に、機能へのアプリケーションのアクセスを制御することができる。アプリケーションの設定がアプリケーション内機能設定表示ウィンドウ802を介して変更されると、アクセスブローカーは、その機能へのアプリケーションのアクセスの現在の状態を反映するよう更新される。図9は、機能に特有の設定情報を表示するユーザインターフェース表示を例示する。オペレーティングシステム設定表示900は、例えば、プライバシー/デバイス承諾設定ウィンドウ904において見ることができる様々な設定の選択可能なリスト902を含む。プライバシー/デバイス承諾設定ウィンドウ904は、機能の選択可能なリスト906破線円で示される。を含む。図9で示される例では、SMS機能が現在選択されており、それにより、SMSファンクションにアクセスするよう構成される全てのアプリケーションのリスト908を引き起こす。例えば、位置特定機能が選択されるならば、異なるリストが提示され、位置特定サービスにアクセスするよう構成される全てのアプリケーションを示すリスト908と同じアプリケーションを含んでも含まなくてもよい。。リスト906における機能のリストは、デバイスによって、又はデバイス以外のサービスによって提供される機能を含んでよい。リスト908におけるアプリケーションは、機能への特定のアプリケーションのアクセスを無効又は有効にするための選択可能な制御910の隣に提示される。プライバシー/デバイス承諾設定ウィンドウ904はまた、全てのアプリケーションについて選択された機能を有効又は無効にするよう選択可能である大域的オプションGLOBAL912破線において示される。を有してよい。従って、プライバシー/デバイス承諾設定ウィンドウ904は、ユーザが特定のアプリケーションについて特定の機能へのアクセスを制御するか、又は代替的に、全てのアプリケーションについてその機能をオン若しくはオフすることを可能にしてよい。アプリケーションの設定がオペレーティングシステム設定表示900を介して変更されると、アクセスブローカーは、その機能へのアプリケーションのアクセスの現在の状態を反映するよう更新される。図6乃至9は様々なユーザインターフェースを表す。それらのユーザインターフェースは、説明のために提示され、それらの厳密なレイアウト及び内容は限定として解釈されるべきではない。代替のレイアウト及び内容が、この詳細な説明の適用範囲から逸脱することなしに使用され得る。[コンピュータ可読媒体]使用されるコンピュータ装置の構成及びタイプに依存して、図2におけるコンピュータシステム200のメモリ204は、揮発性メモリ例えば、ランダムアクセスメモリRAM及び/又は不揮発性メモリ例えば、読み出し専用メモリROM、フラッシュメモリ、等を有してよい。メモリ204はまた、コンピュータにより読み出し可能な命令、データ構造、プログラムモジュール及びコンピュータシステム200のための他のデータの不揮発性ストレージを提供することができるフラッシュメモリ、磁気ストレージ、光学ストレージ、及び/又はテープストレージを含むがそれらに限られない追加のリムーバブルストレージ及び/又は非リムーバブルストレージを有してよい。メモリ204はコンピュータ可読媒体の例である。コンピュータ可読媒体は、少なくとも2つのタイプのコンピュータ可読媒体、すなわち、コンピュータ記憶媒体及び通信媒体を含む。コンピュータ記憶媒体は、コンピュータにより読み出し可能な命令、データ構造、プログラムモジュール、及び他のデータのような情報の記憶のためのあらゆる処理又は技術においても実施される揮発性及び不揮発性のリムーバブル及び非リムーバブル媒体を含む。コンピュータ記憶媒体は、相変化メモリPRAM、静的ランダムアクセスメモリSRAM、動的ランダムアクセスメモリDRAM、他のタイプのランダムアクセスメモリRAM、読み出し専用メモリROM、電気的消去可能なプログラム可能読み出し専用メモリEEPROM、フラッシュメモリ若しくは他のメモリ技術、コンパクトディスク読み出し専用メモリCD-ROM、デジタルバーサタイルディスクDVD若しくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気ストレージデバイス、又はコンピュータ装置によるアクセスのために情報を記憶するのに使用され得る何らかの他の非伝送媒体を含むがそれらに限られない。対照的に、通信媒体は、コンピュータにより読み出し可能な命令、データ構造、プログラムモジュール、又は他のデータを、搬送波のような変調データ信号又は他の伝送メカニズムにおいて具現してよい。本願で定義されるように、コンピュータ記憶媒体は通信媒体を含まない。[結び]本開示は、構造的な特徴及び/又は方法論的な動作に特有の言語において記載されてきたが、本発明は、必ずしも、記載される具体的な特徴又は動作に制限されないことが理解されるべきである。むしろ、具体的な特徴及び動作は、本発明を実施する例となる形態として開示される。