(57)【特許請求の範囲】
【請求項１】
コンピュータ演算処理が行われる方法であって、
クライアント装置により、
複数のプロファイル・プレディケートと複数のプロファイル・ペイロードとを含む汎用プロファイルを格納する工程であって、前記各プロファイル・ペイロードは、前記クライアント装置のためのそれぞれに異なるコンフィグレーション設定を特定し、前記各プロファイル・プレディケートは、前記クライアント装置のシステム状態における変化に基づき少なくとも１つの条件が満たされるとき、前記複数のプロファイル・ペイロードの少なくとも１つを前記クライアント装置に適用されるようにする前記少なくとも１つの条件を定義する、当該工程と、
前記クライアント装置のシステム状態における変化を識別する工程と、
前記システム状態における変化に関連した情報を管理サーバへ送信する工程と、
前記送信に応答して、
前記管理サーバから、前記汎用プロファイルに対する更新を受信する工程であって、前記更新は前記システム状態における変化についての情報に基づきそれぞれカスタマイズされるカスタマイズ・プロファイル・ペイロード及びカスタマイズ・プロファイル・プレディケートを含む、当該工程と、
前記システム状態における変化が前記カスタマイズ・プロファイル・プレディケートにより定義される条件を満たすことを動的に決定する工程と、
識別された前記カスタマイズ・プロファイル・ペイロードに含まれる実行ファイルを通じて、前記カスタマイズ・プロファイル・ペイロードにより特定されるコンフィグレーション設定に基づき、前記クライアント装置のコンフィグレーションをユーザの介入無しに自動的に更新する工程であって、前記コンフィグレーション設定は前記実行ファイル内で黙示的に特定され、前記更新は前記システム状態に関するパラメータを含むアプリケーション・プログラミング・インタフェース（ＡＰＩ）コールに基づいている、当該工程と、
を備えることを特徴とする方法。
【請求項２】
前記管理サーバは前記クライアント装置と遠隔的に結合され、前記汎用プロファイルは前記管理サーバにより提供される、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記汎用プロファイルはバージョンに関連し、前記システム状態は汎用プロファイルの前記バージョンを含む、ことを特徴とする請求項２に記載の方法。
【請求項４】
前記システム状態は、前記クライアント装置にアプリケーションがどのくらい長くインストールされているかを含み、
前記クライアント装置のコンフィグレーションの更新により、前記インストールされているアプリケーションが前記クライアント装置から削除されることを特徴とする請求項１に記載の方法。
【請求項５】
前記複数のプロファイル・プレディケートのうちの各プロファイル・プレディケートは、ルールセットを実行し、
前記識別は前記システム状態の変化と前記ルールセットとの間のマッチングオペレーションに基づくことを特徴とする請求項１に記載の方法。
【請求項６】
前記各プロファイル・プレディケートは、前記システム状態の変化に関連する入力パラメータを有するＡＰＩをコールするよう構成されていることを特徴とする請求項１に記載の方法。
【請求項７】
クライアント装置に含まれるプロセッサが実行されると前記クライアント装置に方法を実行させる命令を格納するよう構成されたコンピュータ読み取り可能な記憶媒体であって、前記方法は、
複数のプロファイル・プレディケートと複数のプロファイル・ペイロードとを含む汎用プロファイルを前記クライアント装置内に格納する工程であって、前記各プロファイル・ペイロードは、前記クライアント装置のためのそれぞれに異なるコンフィグレーション設定を特定し、前記各プロファイル・プレディケートは、前記クライアント装置のシステム状態における変化に基づき少なくとも１つの条件が満たされるとき、前記複数のプロファイル・ペイロードの少なくとも１つを前記クライアント装置に適用されるようにする前記少なくとも１つの条件を定義する、当該工程と、
前記クライアント装置のシステム状態における変化を動的に識別する工程と、
前記システム状態における変化に関連した情報を管理サーバへ送信する工程と、
前記送信に応答して、
前記管理サーバから、前記汎用プロファイルに対する更新を受信する工程であって、前記更新は前記システム状態における変化についての情報に基づきそれぞれカスタマイズされるカスタマイズ・プロファイル・ペイロード及びカスタマイズ・プロファイル・プレディケートを含む、当該工程と、
前記システム状態における変化が前記カスタマイズ・プロファイル・プレディケートにより定義される条件を満たすことを動的に決定する工程と、
識別された前記カスタマイズ・プロファイル・ペイロードに含まれる実行ファイルを通じて、前記カスタマイズ・プロファイル・ペイロードにより特定されるコンフィグレーション設定に基づき、前記クライアント装置のコンフィグレーションをユーザの介入無しに自動的に更新する工程であって、前記コンフィグレーション設定は前記実行ファイル内で黙示的に特定され、前記更新は前記システム状態に関するパラメータを含むアプリケーション・プログラミング・インタフェース（ＡＰＩ）コールに基づいている、当該工程と、
を備えることを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項８】
メモリとプロセッサを備えたコンピュータ・システムであって、
前記プロセッサは、前記メモリ内に格納された命令を実行することより、
複数のプロファイル・プレディケートと複数のプロファイル・ペイロードとを含む汎用プロファイルを前記コンピュータ・システムであるクライアント装置内に格納すること、前記各プロファイル・ペイロードは、前記クライアント装置のためのそれぞれに異なるコンフィグレーション設定を特定し、前記各プロファイル・プレディケートは、前記クライアント装置のシステム状態における変化に基づき少なくとも１つの条件が満たされるとき、前記複数のプロファイル・ペイロードの少なくとも１つを前記クライアント装置に適用されるようにする前記少なくとも１つの条件を定義するものであり、
前記クライアント装置のシステム状態における変化を識別すること、
前記システム状態における変化に関連した情報を管理サーバへ送信すること、
前記送信に応答して、
前記管理サーバから、前記汎用プロファイルに対する更新を受信すること、前記更新は前記システム状態における変化についての情報に基づきそれぞれカスタマイズされるカスタマイズ・プロファイル・ペイロード及びカスタマイズ・プロファイル・プレディケートを含み、
前記システム状態における変化が前記カスタマイズ・プロファイル・プレディケートにより定義される条件を満たすことを動的に決定すること、
識別された前記カスタマイズ・プロファイル・ペイロードに含まれる実行ファイルを通じて、前記カスタマイズ・プロファイル・ペイロードにより特定されるコンフィグレーション設定に基づき、前記クライアント装置のコンフィグレーションをユーザの介入無しに自動的に更新すること、前記コンフィグレーション設定は前記実行ファイル内で黙示的に特定され、前記更新は前記システム状態に関するパラメータを含むアプリケーション・プログラミング・インタフェース（ＡＰＩ）コールに基づいている、
ことが実行されるコンピュータ・システム。
【請求項９】
前記管理サーバは前記クライアント装置と遠隔的に結合され、前記汎用プロファイルは前記管理サーバにより提供される、ことを特徴とする請求項８に記載のコンピュータ・システム。
【請求項１０】
前記汎用プロファイルはバージョンに関連し、前記システム状態は汎用プロファイルの前記バージョンを含む、ことを特徴とする請求項９に記載のコンピュータ・システム。
【請求項１１】
前記システム状態は、前記クライアント装置にアプリケーションがどのくらい長くインストールされているかを含み、
前記クライアント装置のコンフィグレーションの更新により、前記インストールされているアプリケーションが前記クライアント装置から削除されることを特徴とする請求項８に記載のコンピュータ・システム。
【請求項１２】
前記複数のプロファイル・プレディケートのうちの各プロファイル・プレディケートは、ルールセットを実行し、
前記識別は前記システム状態の変化と前記ルールセットとの間のマッチングオペレーションに基づくことを特徴とする請求項８に記載のコンピュータ・システム。
【請求項１３】
前記各プロファイル・プレディケートは、前記システム状態の変化に関連する入力パラメータを有するＡＰＩをコールするよう構成されていることを特徴とする請求項８に記載のコンピュータ・システム。
【請求項１４】
前記管理サーバは前記クライアント装置と遠隔的に結合され、前記汎用プロファイルは前記管理サーバにより提供される、ことを特徴とする請求項７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１５】
前記汎用プロファイルはバージョンに関連し、前記システム状態は汎用プロファイルの前記バージョンを含む、ことを特徴とする請求項１４に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１６】
前記システム状態は、前記クライアント装置にアプリケーションがどのくらい長くインストールされているかを含み、
前記クライアント装置のコンフィグレーションの更新により、前記インストールされているアプリケーションが前記クライアント装置から削除されることを特徴とする請求項７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１７】
前記複数のプロファイル・プレディケートのうちの各プロファイル・プレディケートは、ルールセットを実行し、
前記識別は前記システム状態の変化と前記ルールセットとの間のマッチングオペレーションに基づくことを特徴とする請求項７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１８】
前記各プロファイル・プレディケートは、前記システム状態の変化に関連する入力パラメータを有するＡＰＩをコールするよう構成されていることを特徴とする請求項７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１９】
コンピュータ・システムであって、
複数のプロファイル・プレディケートと複数のプロファイル・ペイロードとを含む汎用プロファイルを前記コンピュータ・システムであるクライアント装置内に格納する手段であって、前記各プロファイル・ペイロードは、前記クライアント装置のためのそれぞれに異なるコンフィグレーション設定を特定し、前記各プロファイル・プレディケートは、前記クライアント装置のシステム状態における変化に基づき少なくとも１つの条件が満たされるとき、前記複数のプロファイル・ペイロードの少なくとも１つを前記クライアント装置に適用されるようにする前記少なくとも１つの条件を定義するものである、当該手段と、
前記クライアント装置のシステム状態における変化を識別する手段と、
前記システム状態における変化に関連した情報を管理サーバへ送信する手段と、
前記送信に応答して、
前記管理サーバから、前記汎用プロファイルに対する更新を受信する手段と、前記更新は前記システム状態における変化についての情報に基づきそれぞれカスタマイズされるカスタマイズ・プロファイル・ペイロード及びカスタマイズ・プロファイル・プレディケートを含む、当該手段と、
前記システム状態における変化が前記カスタマイズ・プロファイル・プレディケートにより定義される条件を満たすことを動的に決定する手段と、
識別された前記カスタマイズ・プロファイル・ペイロードに含まれる実行ファイルを通じて、前記カスタマイズ・プロファイル・ペイロードにより特定されるコンフィグレーション設定に基づき、前記クライアント装置のコンフィグレーションをユーザの介入無しに自動的に更新する手段であって、前記コンフィグレーション設定は前記実行ファイル内で黙示的に特定され、前記更新は前記システム状態に関するパラメータを含むアプリケーション・プログラミング・インタフェース（ＡＰＩ）コールに基づいている、当該手段と、
を備えたコンピュータ・システム。
【請求項２０】
前記管理サーバは前記クライアント装置と遠隔的に結合され、前記汎用プロファイルは前記管理サーバにより提供される、ことを特徴とする請求項１９に記載のコンピュータ・システム。
【請求項２１】
前記汎用プロファイルはバージョンに関連し、前記システム状態は汎用プロファイルの前記バージョンを含む、ことを特徴とする請求項２０に記載のコンピュータ・システム。
【請求項２２】
前記システム状態は、前記クライアント装置にアプリケーションがどのくらい長くインストールされているかを含み、
前記クライアント装置のコンフィグレーションの更新により、前記インストールされているアプリケーションが前記クライアント装置から削除されることを特徴とする請求項１９に記載のコンピュータ・システム。
【請求項２３】
前記複数のプロファイル・プレディケートのうちの各プロファイル・プレディケートは、ルールセットを実行し、
前記識別は前記システム状態の変化と前記ルールセットとの間のマッチングオペレーションに基づくことを特徴とする請求項１９に記載のコンピュータ・システム。
【請求項２４】
前記各プロファイル・プレディケートは、前記システム状態の変化に関連する入力パラメータを有するＡＰＩをコールするよう構成されていることを特徴とする請求項１９に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムに全般的に関連する。より詳細には、本発明は、プロファイルベースのプレディケートを用いた動的なデバイス・コンフィグレーションに関する。
【背景技術】
【０００２】
コンピューティング装置の多用途性の増大に伴い、異なる動作環境に適合させるための装置のコンフィグレーションは、一段と複雑なものとなってきている。例えば、装置は、ユーザ毎に異なるユーザ・インタフェースを提供しても良いし、場所毎に異なる遠隔サービスに接続しても良いし、また、ユーザの嗜好や装置管理者からの要求に応じてアプリケーションのパラメータをカスタマイズする等しても良い。しかしながら、それと同時に装置のコンフィグレーションの複雑度が顕著に増大し、装置の利用がより一層難しくなる。
【０００３】
典型的には、装置内にインストールされたアプリケーションのためのデフォルト設定を特定するために、コンフィグレーション・ファイルが装置にプレインストールされていてもよい。オプションとして、装置に格納されている設定の手動変更がユーザ・インタフェースにより許可されても良い。しかしながら、利用可能な設定の複雑度が上がるにつれ、装置の通常ユーザにとっては、手動でのコンフィグレーションは非常に退屈な作業となるかもしれない。更に、大半のユーザは特定のアプリケーションをコンフィグレーションするのに必要な特別な専門的知識を有していないかもしれない。装置に提供される管理されたサービスに関しては、手動でのコンフィグレーションを利用したセントラル・ポリシーの行使は、コストが非常に高くなってしまうかもしれない。そのように、現代の使用環境を支援するために装置の動作を適合させる従来的なコンフィグレーションの管理手法は装置を扱いにくくし、維持に費用がかかり、管理が難しく、他の問題に対する使用に適さないものとしてしまうかもしれない。
【発明の概要】
【０００４】
本発明は、装置内で利用可能なアプリケーション／サービスのためのコンフィグレーション設定を動的に更新可能とする。コンフィグレーション設定は、装置の動作状態において検出された変化に応じてコンフィグレーション・プロファイルに従って自動的に適合される。ある実施形態では、コンフィグレーション・プロファイルは、様々な動作状況下においてコンフィグレーション設定がどのように更新されるべきかを特定するためにプレディケート（条件及び動作を伴うルールセット）を含んでいても良い。よって、コンフィグレーション・プロファイルは、装置の動作環境についてユーザが関心を払わずとも、装置の適切な動作を保証することができる。さらに、管理者は（例えば、プレディケートを用いて）装置内のコンフィグレーション・プロファイル内に埋め込まれた管理ポリシーを実行するために、コンフィグレーション・プロファイルを配布することができる。これらのメカニズムの詳細についてユーザが関心を払うことを要求することもなく、自動的にこれらのアプリケーションのコンフィグレーションを行うために、任意に、対応アプリケーションのための特別なコンフィグレーションのメカニズムを、動的にコンフィグレーション・プロファイル内に組込むこともできる。
【０００５】
ある実施形態では、コンフィグレーションプロファイルはプロファイル・プレディケート及びプロファイル・ペイロード（或いは、設定データ）を含んでいても良い。プロファイル・ペイロードの適用可能性は、プロファイル・プレディケート内の動的に決定される条件に基づいても良い。よって、プロファイル・プレディケートによって決まる時点で、（装置のコンフィグレーション設定内で）プロファイル・ペイロードの一部が能動的であっても良い。コンフィグレーション・プロファイルは、装置（又はクライアント装置）内でユーザに見えるように自立的に（或いは、自動的に）インストールされても良い。コンフィグレーション・プロファイルのアプリケーションは、プロファイル・プレディケートを使って装置の現在の状態に依存する所定のペイロード・データや設定を有効にしたり、無効にしたりしても良い。結果として、異なるサービス／アプリケーションのための高機能の装置コンフィグレーションを、手動作業や管理的な努力なしに実現することができる。
【０００６】
発明の実施形態は、コンフィグレーションのためにクライアント装置内に汎用プロファイルを格納する方法及び装置を含むことができる。汎用プロファイルは、プロファイル・プレディケートに関連するプロファイル・ペイロードを含んでいても良い。プロファイル・ペイロードは、クライアント装置をコンフィグレーションするための設定候補の範囲を特定しても良い。ある実施形態では、プロファイル・プレディケートは、クライアント装置のシステム（又は動作）状態に従って、設定候補のいずれがコンフィグレーションに適用可能であるかを特定する。クライアント装置の動作状態の変化は、ランタイム内に動的に決定されても良い。システム状態の決定された変化に対して適用可能なプロファイル・ペイロードの部分は、関連プロファイル・プレディケートを用いて識別されても良い。結果として、プロファイル・ペイロードの識別された部分を適用することにより、システム状態の変化に関してクライアント装置の設定が更新されてもよい。
【０００７】
別の実施形態では、アプリケーションのコンフィグレーションのためにクライアント装置に実行ファイルがインストールされても良い。プレディケートは、クライアント装置のプラファイル内の実行ファイルと関連づけられても良い。アプリケーションのコンフィグレーションを更新するための実行ファイルを選択するために、プレディケート内で１つ以上の条件が特定されても良い。クライアント装置の動作状態が変化すると、動作状態の変化により条件が満たされることになったかどうかを判定するために、プレディケートが評価されても良い。条件が満たされると評価された場合、アプリケーションのコンフィグレーションを更新するために当該実行ファイルが選択されても良い。
【０００８】
更に別の実施形態では、汎用プロファイルがクライアント装置の設定のためにコンフィグレーションされてもよい。汎用プロファイルはプロファイル・プレディケートに関連するプロファイル・ペイロードを含んでいても良い。クライアント装置からシステム状態について受信すると、プロファイル・ペイロードの部分が識別されても良い。プロファイル・ペイロードの識別された部分は、プロファイル・プレディケートの対応する部分と関連づけられていても良い。プロファイル・ペイロードの識別された部分と、システム状態とのマッチングは、プロファイル・プレディケートの対応部分において示されても良い。マッチングの結果として、プロファイル・ペイロードの識別された部分は、クライアント装置の設定を更新するためにクライアント装置に送信されてもよい。
【０００９】
本発明の他の特徴は添付の図面及び以下の発明の詳細な説明により明らかとなるであろう。
【図面の簡単な説明】
【００１０】
本発明は、限定ではなく例示的な意味において、添付する図面に示される。図面において、初時の要素には同様の参照番号が使用されている。
【図１】プレディケートを用いた動的な装置のコンフィグレーションのためのネットワーク化されたシステムの１つの実施形態を示すブロック図である。
【図２】実施形態に対応するコンフィグレーションのための動的プロファイルを有する典型的なシステムを示すブロック図である。
【図３】実施形態に対応するプロファイル・ペイロードとプロファイル・プレディケートとを含む典型的なデータユニットを示すブロック図である。
【図４】実施形態に対応する装置を動的にコンフィグレーションするための処理の１つの実施形態を示すフローチャートである。
【図５】実施形態に対応する実行ファイルを介したアプリケーションのコンフィグレーション処理の１つの実施形態を示すフローチャートである。
【図６】実施形態に対応するプレディケートを用いたクライアント装置の遠隔コンフィグレーション処理の１つの実施形態を示すフローチャートである。
【図７】実施形態において使用されてもよいデータ処理システムの一例を示す図である。
【図８】実施形態との関連で使用されてもよい典型的なコンピュータ・システムの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、装置内で実行中の動作のプレディケートを利用した動的なコンフィグレーションのための方法及び装置について記述する。以下の記述において、本発明の実施形態の全体的な説明を提供するために、多くの詳細事項が説明される。しかしながら、当業者には明らかなように、本発明の実施形態はこれらの特定の詳細事項を利用せずに実施されても良い。別の例では、本発明の実施形態を曖昧にしないために、周知の構造や装置が詳細な内容ではなくブロック図の形態において示されている。
【００１２】
「１つの実施形態」や「ある実施形態」に関する明細書中の言及は、実施形態との関連で記述される特定の特徴、構造、特性は、発明の少なくとも１つの実施形態に含まれるという意味である。明細書中の様々な場所に登場する「１つの実施形態において」との語は、全てが必ずしも同一の実施形態について言及しているわけではない。
【００１３】
特に別の方法に言及しない限り、明細書全体について「処理する」、「コンピューティング」、「計算する」、「判定する」、「表示する」等の用語を使用した議論は、データ処理システムや類似の電子コンピューティング装置の動作や処理に言及しているものと理解される。データ処理システムや電子コンピューティング装置は、コンピュータ・システムのレジスタ及びメモリ内の物理的な（電子的な）量として表されたデータを、コンピュータ・システムのメモリ、レジスタ或いは他のそのような情報の格納装置、送信装置または表示装置内の同様に物理的量として表される他のデータに操作、変換する。
【００１４】
ここで提供されるアルゴリズム及び表示は、任意の特定のコンピュータや他の装置に本来的に関連するものではない。様々な汎用システムを本明細書における教示に従ったプログラムと共に利用しても良いし、或いは、要求されるマシン実装された方法オペレーションを実行するために、より特別な装置を構築すると便利かもしれない。これらの様々なシステムに要求される構造は、以下の記述から明らかになるであろう。更に、本発明の実施形態は特定のプログラム言語を参照して説明されるものではない。ここに示す本発明の実施形態の教示を実施するために様々なプログラム言語を利用可能であることが理解されよう。
【００１５】
発明の実施形態は、方法や、データ処理システムで実行されると、当該システムが方法を実行するような実行可能な命令を格納するコンピュータで読み取りが可能な非一時的な記憶媒体として実施が可能である。データ処理システムのような装置もまた、発明の実施形態とすることができる。本発明の他の特徴は、添付の図面及び以下の詳細な説明から明らかとなろう。
【００１６】
本発明の少なくとも特定の実施形態は、携帯型の少なくとも音楽及びビデオのいずれかのためのメディア・プレーヤの一部であっても良い。メディア・プレーヤは、メディアを格納する格納装置にメディアを提供するメディア処理システムを含んでも良いし、アンテナシステム及びメディア処理システムと結合された無線周波数（ＲＦ）トランシーバ（例えば、携帯電話のためのＲＦトランシーバ）を更に含んでも良い。ある実施形態では、遠隔の格納装置に格納されているメディアは当該ＲＦトランシーバを介して、メディア・プレーヤに送信されても良い。当該メディアは、例えば、１つ以上の音楽や他の音声、静止画、または動画であっても良い。
【００１７】
携帯メディア・プレーヤは、タッチスクリーン入力装置、プッシュボタン装置、移動可能なポインティング入力装置や他の入力装置のような、メディア選択装置を含んでも良い。メディア選択装置は、格納装置及び遠隔格納装置の少なくともいずれかに格納されているメディアを選択するために利用されても良い。携帯メディア・プレーヤは、少なくともある実施形態において、表示装置を含んでいてもよく、当該表示装置は、メディアのタイルや他の指標を表示するためにメディア処理システムと結合されても良い。当該メディアは、入力装置を介して選択され、また、スピーカやイヤフォンを介して提示されるか、或いは、表示装置上で提示されるか、さもなくば表示装置とスピーカやイヤフォンの両方で提示される。
【００１８】
ここで説明する発明の実施形態は、他のタイプのデータ処理装置の一部であっても良い。例えば、娯楽システム、パーソナル・デジタル・アシスタント（ＰＤＡ）、汎用コンピュータ・システム、特定用途コンピュータ・システム、他の装置内の埋め込み装置、メディア・プレーヤを含まない携帯電話、これらの装置の特徴や機能を結合する装置（例えば、１つの携帯装置内で、ＰＤＡ、娯楽システム及び携帯電話と結合されたiPod(登録商標)のようなメディア・プレーヤ）、あるいは、マルチタッチ携帯装置や、マルチタッチ入力装置を有する携帯電話や携帯コンピュータのようなマルチタッチ入力装置を含む装置又は消費者用電子製品であっても良い。
【００１９】
１つの実施形態において、ユーザが装置の様々な動作状態に注意を向けるかどうかにかかわらず、コンフィグレーション・プロファイルは、装置の動作にコンフィグレーション設定を適用することを管理者に許可する。コンフィグレーション・プロファイルは、様々な動作環境や動作状態の下で、個々の設定群を動的に利用するために、装置のアプリケーションやシステムサービスのための柔軟性を提供しても良い。１つの実施形態において、コンフィグレーション・プロファイルはコンフィグレーション・データを含んでいても良い。当該コンフィグレーション・データは、アプリケーションを修正したり再コンパイルしたりすることなしにアプリケーションの所定のプロパティやパラメータを変更することで、アプリケーションの柔軟性を高くする。装置内で実行中のアプリケーションやサービスは、適切に機能するため、及び／又は、管理ポリシーに従うために、対応するコンフィグレーション設定に依存しても良い。コンフィグレーション設定は、例えばユーザ・アカウント設定、ネットワーク設定、電力設定、特権、制限、或いは、アプリケーション／サービスのための他の適用可能なハードウェア的／ソフトウェア的な設定を含んでいても良い。
【００２０】
装置の動作状態は、装置のＯＳを介して監視或いは検査されるところの変数のセットに対応しても良い。動作状態は、例えば、特定のアプリケーションが実行中であるかどうか、現在実行中のアプリケーションの数、装置内における現在の日付セット、特定のアプリケーションがどのくらい長く動作しているか、デフォルト・プリンタの識別子、ネットワークＩＰアドレス、装置の物理的位置、現在のアクティブ・ユーザ（例：識別子、ユーザグループ）、装置内でシステムがどのくらい長く動作しているか、或いは、他の適用可能なハードウェア的／ソフトウェア的状態等を示してもよい。動作状態は、装置が動作している環境に依存しても良い。当該環境は、例えば、どのリモート・プリンタにアクセス可能であるか、どのネットワークが有効か、どのリモートサーバがアクティブか、或いは、他の関連するアプリケーションの環境パラメータなどであって、装置の動作に適用可能なもの等の、装置の外部で制御される様々なパラメータ値を含んでも良い。
【００２１】
１つの実施形態において、プロファイル・プレディケートは、装置内で動作状態の変化が検出された場合に、装置のコンフィグレーション設定の更新を判定するために評価されても良い。プロファイル・プレディケートは、対応するコンフィグレーション設定に対してコンフィグレーション・プロファイル内の関連プロファイル・ペイロードを適用するための所定の条件が満たされるかどうかを特定するためのルールセットを含んでも良い。いくつかの実施形態では、１つのコードを実行することにより条件が評価されても良い。実行結果は、条件が満たされるかどうかを示す真偽の戻り値（例：バイナリ値）を含んでもよい。コンフィグレーション・プロファイルに従ってランタイム間に異なる条件を実施するため、ルールは動的に構築されても良い。いくつかの実施形態では、検出された動作状態の変化に適用可能なプロファイル・プレディケートを識別するために、コンフィグレーション・プロファイル（例えば、デバイス・システム内に格納又はインストールされたプロファイル）の検索が実行されてもよい。識別されたプロファイル・プレディケート（例：ルールセット）は、コンフィグレーション設定に対応プロファイル・ペイロードを適用するために満たされるべき条件を含んでもよい。
【００２２】
例えば、プロファイル・プレディケートにおける条件は、装置が特定の機器モデルや機器タイプに属するかどうか、装置が企業内ネットワークに接続するための特権を有するかどうか、特定のネットワーク・インタフェース（例：イーサネット・インタフェース）が装置内に存在している／インストールされているかどうか、現在のユーザ・アカウントが特定のグループ（例：学校の４年生）に属しているかどうか、又は、アプリケーションのためのプロファイル・データがインストールされているかどうか、を特定するためのものであってもよいし、或いは、他の適用可能な条件であってもよい。プロファイル・プレディケートの評価又は実行は、これらの条件が満たされるかどうかを判定することであってもよい。１つの実施形態では、条件の指定は、ブール値、範囲をもった値、特定された値の離散的なセット（文字列や数値）のような変数値や、他の適用可能な値に基づいていても良い。
【００２３】
プロファイル・ペイロードは、コンフィグレーション・プロファイル内の関連プロファイル・プレディケートの評価結果に基づいて、装置のコンフィグレーション設定に適用されても良い。プロファイル・ペイロードの適用は装置内で動的に新しい設定を生成したり、及び／又は、既存の設定を更新したりしても良い。プロファイル・ペイロードは、装置内の（現在動作中であっても良いし、動作中でなくても良い）特定のアプリケーション／サービスのためにコンフィグレーション設定に対して適用可能な（或いは、コンフィグレーション動作を起動可能な）記述（例：述語体系(nomenclature)、マニフェスト、制約、命令、或いは、他の適用可能な設定に関する指定）を含んでいても良い。オプションとして、プロファイル・ペイロードは、コンフィグレーション設定を更新するために実行される実行コードを含んでいても良い。
【００２４】
例えば、学校のデスクトップ・コンピュータにおけるコンフィグレーション・プロファイルに含まれるプロファイル・プレディケートは、４年生のユーザのために、ユーザ・インタフェース・ドックエリアにより起動されるか、利用可能になるべき特定のピクセル・アート・アプリケーションを必要とするかもしれない。４年生がデスクトップ・コンピュータに一度ログインすると、特定のピクセル・アート・アプリケーションが動作しているかどうかを判定するために、プロファイル・プレディケートが評価されても良い。この特定のアプリケーションが動作していない及び／又はユーザ・インタフェース・ドックエリアに存在しないことが判明した場合、（自動のアプリケーション取得及びインストールを行い）デスクトップ・コンピュータの表示画面のユーザ・インタフェース・ドックエリア内に表示すると共に、ピクセル・アート・アプリケーションを起動するために、対応するプロファイル・ペイロードが適用されてもよい。
【００２５】
いくつかの実施形態では、所定の動作を実行するために対応するプロファイル・ペイロードを起動するために、アプリケーションのインストール及び／又は削除が監視されるべきであることをプロファイル・プレディケートが規定しても良い。例えば、第１のアプリケーションのインストールは、第２のアプリケーションがインストール及び／又は起動されていることを要求しても良い。あるアプリケーションの削除は、ユーザ・インタフェース表示画面内のドックエリアに配置されたアプリケーション・アイコンを削除するような、例えば、プロファイル・ペイロードにおいて特定されるスクリプト・コードを介したクリーンナップ動作のトリガーとなっても良い。
【００２６】
１つの実施形態では、プロファイル・ペイロードから起動された動作は、装置の現在の動作状態に依存しても良い。装置の動作状態は、例えば、装置のスリープ状態（エネルギーを抑制するための低電力状態）か又は動作状態か、ユーザが装置にログインした（或いは、現在ログイン中）か又はログアウトしたか、ユーザ情報（例：ユーザ特権、グループ・メンバーシップ）、ネットワーク設定、場所、時間、又は他の適用可能な状態を示してもよい。１つの実施形態では、新しいユーザが装置にログインすると、新しいユーザが制限された特権を有するかどうかを判定するためにプロファイル・プレディケートが評価される。例えば、キオスク・モード（クッキーや他のブラウザ状態情報を格納／取得する性能を排除したモード）でブラウザを強制的に動作させるためにブラウザ・アプリケーションの設定を変更するように、特定のアプリケーションの性能を制限するためにプロファイル・ペイロードを適用してもよい。
【００２７】
いくつかの実施形態では、新しい変更された設定を取得、適用させるために、動作中のアプリケーションに対して設定が変更されたことを通知してもよい。例えば、プロファイル・プレディケートは、装置の現在のネットワーク設定に基づいて、関連プロファイル・ペイロード内で特定されるようにコンフィグレーションされることを異なるプリンタに対して指示する。このようにして、移動体装置は、第１の物理的位置（例：ビルＡ）から第２の物理的位置（ビルＢ）へ装置が移動したことに伴い、異なるプリンタとの間で自動的かつ動的にコンフィグレーションを実行できる。ネットワーク設定に関連するプロファイルは、移動体電話がユーザ・インタフェース（例：特定の無線ネットワークに参加した場合に特別なアイコンを自動的に表示する）を自動的に変更すること、電話番号（例：装置に表示される発呼ボタンの緊急電話番号）を更新すること、或いは、他の適用可能な設定の変更を許可しても良い。時間ベースの動作状態につき、例えば、ＴＶセット・トップ・ボックス装置について、一日のうち異なる時間スロットに応じて視聴制限設定を自動的に変更しても良い。
【００２８】
１つの実施形態では、プロファイル・サーバとの遠隔ネットワーク接続を介してＭＤＭ（Mobile Device Management）プロトコルのような管理プロトコルに基づいてコンフィグレーション・プロファイルのインストールを行っても良い。また、或いは、オプションとして、コンフィグレーション・プロファイルのためのファイル（例えば、各アプリケーションは独立のプロファイル・ファイルと関連づけられていても良い）は、直接に（例えば、ユーザによって）装置にインストールされても良い。装置内のプロファイル・データベースは、プロファイル・プレディケートと関連プロファイル・ペイロードを特定するためにアプリケーションまたはサービスに関連したプロファイル文書を格納することができる。
【００２９】
１つの実施形態において、装置内で動作中のアプリケーション又はサービスは、関連コンフィグレーション設定を当該アプリケーションやサービスのために指定された（ローカル又は遠隔の）格納場所から取得することができる。アプリケーションやサービスは起動時に、完全に有効になる前にそのコンフィグレーション設定に対するアクセスを要求しても良い。オプションとして、例えば実行中に指示を受けた場合にアプリケーションやサービスがコンフィグレーション設定を再読込してもよい。１つの実施形態において、コンフィグレーション・エンジンは、コンフィグレーション・プロファイルを格納しているプロファイル・データベースに従い、コンフィグレーション・プロファイルに対する変更に応じて装置内に格納されたコンフィグレーション設定を更新することができる。それに引き続き、コンフィグレーション・エンジンは、変更による影響を受けるアプリケーション／サービスに関連コンフィグレーション設定を再度読み込むように通知又は指示を出しても良い。
【００３０】
ある実施形態では、コンフィグレーション・プロファイルは、コンフィグレーション・プロファイル内のプロファイル・ペイロードに動的にアタッチできるサード・パーティのプラグイン・コンポーネントにより、アプリケーションの管理容易性を拡張しても良い。プラグイン・コンポーネントは、ダイナミック・リンク・ライブラリのような実行コードであっても良い。また、プラグイン・コンポーネントはアプリケーションへのＡＰＩ（Application Programming Interface）コールにより起動されても良い。コンフィグレーションのメカニズムは、アプリケーションの所有物であり、及び／又は、管理するには複雑すぎるが、プラグイン・コンポーネントにより使用可能にしても良い。よって、コンフィグレーション・プロファイル内のプラグインのメカニズムにより、アプリケーションは自身のコンフィグレーションに直接に参加することができる。
【００３１】
例えば、装置内で動作中の写真グラフィックス・アプリケーションは、異なる色空間設定の下で動作するように構成されていても良い。当該写真グラフィックス・アプリケーションのためのコンフィグレーション設定を明示的に特定する代わりに、装置にインストールされたコンフィグレーション・プロファイルが、コンフィグレーション・プロファイル内のプロファイル・プレディケートにおいて特定されても良いところの、例えば、会社方針で是認された必要とされる色空間に従ってコンフィグレーション設定の更新を実行するプラグイン・コンポーネントを含んでも良い。１つの実施形態において、写真グラフィックス・アプリケーションを装置にインストールすると、当該写真グラフィックス・アプリケーションをコンフィグレーションするために、プロファイル・プレディケートに関連するプロファイル・ペイロードを介してプラグイン・コンポーネントが起動されても良い。よって、プラグイン内に含まれている、要求された色空間のための設定をコンフィグレーションするための写真グラフィックス・アプリケーションのプロバイダの内部的な知識が、装置のコンフィグレーションのための動的に適用される。
【００３２】
１つの実施形態では、プロファイル・サーバは、クライアント装置をコンフィグレーションするためのコンフィグレーション・プロファイルを分配しても良い。プロファイル・サーバは、装置から受信した動作状態に基づき、装置のためのカスタマイズされたプロファイルを動的に構築してもよい。いくつかの実施形態では、プロファイル・サーバは、装置の現在の動作状態にアクセスする必要性なしで装置へデフォルト・プロファイルを提供（或いは送信）しても良い。また、オプションとして、プロファイル・サーバは、クライアントのためにどのプロファイル・プレディケートとペイロードをコンフィグレーション・プロファイル内に含めるかを決定するために、装置から動作状態を受信しても良く、これは限定された範囲（例えば、設定及び／又は状態の全ての詳細や事実はではない）であっても良い。デフォルトのプロファイルは、装置の初期プロファイルであってもよい。いくつかの実施形態では、各装置は、管理サーバやプロファイル・サーバに当該装置へ初期プロファイルを配布することを許可するように構成されていても良い。初期プロファイルの起動は、装置側で始動されても良いし、或いは、プロファイル・サーバにより始動されても良い。例えば、プロファイルに含まれるプレディケートが装置において満たされる場合に、初期プロファイルが起動されてもよい。
【００３３】
プロファイル・サーバは、結合プロファイルとしてコンフィグレーション・プロファイルを生成するために、装置の動作状態と組み合わされてもよいところの設定（例えば、管理者がコンフィグレーションしたもの）を含んでいてもよい。プロファイル・サーバは、例えば、アプリケーションを装置にインストールしたり装置から削除したりするために、結合プロファイルを装置内で制御してもよい。１つの実施形態において、更新のためのプロファイル・プレディケートとして新しいルールを作成するといった装置のためのコンフィグレーション・プロファイルの更新を生成するために、プロファイル・サーバは動作状態の変更を装置から受信してもよい。プロファイル・サーバからのコンフィグレーション・プロファイルの配布は、ＭＤＭプロトコル、電子メール・プロトコル或いは他の適用可能な通信プロトコルやメッセージプロトコルに基づいて行われても良い。
【００３４】
１つの実施形態において、プロファイル・サーバは、装置に送信されたコンフィグレーション・プロファイルによりクライアント装置の動作を管理するためのポリシーをプッシュダウンしてもよい。オプションとして、リファレンス・ストレージの更新によりプロファイル・サーバがポリシーの変更を装置に伝搬させるために、コンフィグレーション・プロファイルはディレクトリ・サーバのようなストレージの位置参照を含んでも良い。ポリシーの例には、例えば、所定グループのユーザによってアプリケーションが許可されるか、必要とされるか、禁止されるか、どのＶＰＮ（Virtual Private Network）設定を使用するか、どの証明書を適用するか、どのアプリケーションがインストールされるべきか、どのウェブ・サイトがアクセス可能か、装置の利用が承認されたユーザの制限、遠隔サーバからどのサービスが利用可能／許可されているか（例えば、コンタクト・サーバ、メール・サーバ、プリント・サーバ、メッセージ・サーバ等）、又は、他の適用可能なポリシーの仕様等が含まれるが、これらに限定されるものではない。
【００３５】
１つの実施形態において、管理者はプロファイル・サーバ（例えば、中央サーバ）を、コンフィグレーション・プロファイルに含まれる既存のポリシーを修正するために、新しいプロファイル・プレディケートで更新しても良い。例えば、既存のポリシー内のプロファイル・プレディケートは、装置が特定のビル内の物理的な場所に位置している場合は、第１のプリンタが装置のためのデフォルトのプリンタに設定されるべきであることを示す。さらに、第１のプリンタと置き換えるために第２のプリンタがビル内に設置されてもよい。その結果、プロファイル・プレディケートは、ビル内に存在する装置のために、第１のプリンタの代わりに新たに設置された第２のプリンタがデフォルト・プリンタに設定されるべきことを指示するように更新されても良い。プロファイル・サーバは、各クライアント装置におけるプリンタ設定の自動変更を可能とするために、ビル内の各クライアント装置に対し更新後のプロファイル・プレディケートと共に更新されたコンフィグレーション・プロファイルをプッシュしてもよい。更新されたコンフィグレーション・プロファイルは、ペイロードを第２のプリンタのためのコンフィグレーション・データやコードと共に含んでいても良い。
【００３６】
図１は、プレディケートを使った動的な装置コンフィグレーションのためのネットワーク化されたシステム１つの実施形態を示すブロック図である。ネットワーク化されたシステム１００は、ネットワーク１０７を介して、クライアント装置１０９のような１つ以上の装置と結合する、プロファイル・サーバ１０１のような１つ以上のサーバ（又はホスト）を含んでいてもよい。１つの実施形態では、ネットワーク１０７は、オープン・インターネット、イントラネット、ファイアウォールで保護されたセキュアなネットワーク、広域携帯電話網（例えば、３Gネットワーク）、又は他の適用可能なネットワーク等を介して、プロファイル・サーバ１０１とクライアント装置１０９との間で確立されるべき通信チャネルやネットワーク接続を許容する。ネットワーク１０７は有線、無線（Wi-FiやBluetooth等）或いはその両方を含むことができる。
【００３７】
プロファイル・サーバ１０１は、プロファイル配布マネージャ１０３を含むことができる。プロファイル配布マネージャは、汎用プロファイル１０５に基づいて装置１０９のようなクライアント装置に対してコンフィグレーション・プロファイルを配布する。汎用プロファイル１０５は、クライアント装置の複数の動作状態や動作環境の下で、どのようにクライアント装置の（例えば、アプリケーション及び／又はサービスにおける）動作がコンフィグレーションされるべきかを規定しても良い。例えば、クライアント装置１０９に配布されるコンフィグレーション・プロファイルは、クライアント装置１０９から受信した動作状態及び／動作環境を示すクライアント・データに従って汎用プロファイル１０５からカスタマイズされても良い。
【００３８】
１つの実施形態において、クライアント装置１０９は、移動体装置、デスクトップ・コンピュータ、ノートブック・コンピュータ、或いは、コンフィグレーション設定に従ってコンフィグレーションされたアプリケーション及び／又はサービスが動作する他のクライアント装置であってもよい。コンフィグレーション・プロファイル・マネージャ１１１は、クライアント装置１０９の異なる動作状態の下でどのように設定が特定されるべきかを規定するプレディケート及び／又は実行コードを含みうるダイナミック・プロファイル１１３に従って、コンフィグレーション設定を保持することができる。例えば、クライアント装置１０９の動作状態の変化が検出された場合、コンフィグレーション・プロファイル・マネージャ１１１は、コンフィグレーション設定を更新するためにプレディケートを評価するか、或いは、実行コードを実行できる。
【００３９】
図２は、発明の実施形態に従うコンフィグレーションのためのダイナミック・プロファイルを有する典型的なシステムを示すブロック図である。例えば、動作環境２０１は、図１の装置１０９のためのコンフィグレーション設定をサポートしても良い。１つの実施形態において、コンフィグレーション・プロファイル・マネージャ１１１は、装置内にインストールされた、或いは、動作している処理をコンフィグレーションするための設定を提供するダイナミック・プロファイル１１３を保持することができる。当該処理には、メール・アプリケーション２１１、ブラウザ・アプリケーション２１３、ＵＩサービス２１５、ネットワーク・サービス２１７、或いは、他の適用可能なユーザ／システムレベルの処理等が含まれる。各アプリケーション／サービスは対応するコンフィグレーション設定を、例えばアプリケーション／サービス内で既に特定された設定２０９から取得、或いは、読み込んでもよい。例えば、メール・アプリケーション２１１は、ＳＭＴＰ（Simple Mail Transfer Protocol）サーバのようなメール配信サーバ、及び／又は、ＩＭＡＰ（Internet Message Access Protocol）サーバのようなメール取得サーバのネットワーク・アドレスや識別子の設定を、電子メールの送受信のために要求しても良い。アプリケーションは、スタートアップ時にその設定を決定しても良い。オプションとして、例えば、コンフィグレーション・プロファイル・マネージャ１１１により通知された場合に、アプリケーションは動的にその設定を再読込してもよい。
【００４０】
ダイナミック・プロファイル１１３は、装置内又は装置外（例えば、ローカル又は遠隔結合される）に置かれうる設定２０９を含むことができる。アプリケーションは、設定２０９から対応設定を特定するためにユニークな識別子と関連づけられても良い。また、アプリケーションは、その設定のために、埋め込み名ファイル（例えば、アプリケーションのソースコード内で識別される）を（例えば、ディレクトリ探索パスに従って）探してもよい。設定２０９は、ハードウェア、ソフトウェア、又は、装置に関連する動作に必要とされる他の設定を含んでも良い。例えば、設定２０９はネットワーク設定（例えば、ネットワーク・ゲートウェイのＩＰアドレス、ネットワーク接続証明書等）、現在アクティブなユーザのためのユーザ設定（例えば、グループ識別子、ユーザ識別子等）、プリンタ設定（例えば、デフォルト・プリンタ、動作中のプリンタ等）、ユーザ・インタフェース設定（画面領域に表示されたデフォルトのアプリケーション・アイコン、フォントサイズ、背景色等）、電力設定、或いは、他の設定を格納することができる。
【００４１】
１つの実施形態において、動的プロファイル１１３は、図１のサーバ１０１のようなプロファイル・サーバから取得又は受信したプロファイルを格納する、プロファイル・データベース２０７を含むことができる。プロファイルは、プロファイル・ペイロードと関連するプロファイル・プレディケートを含むことができる。１つの実施形態において、プロファイル・ペイロードは、設定１１３をコンフィグレーションするためのコンフィグレーション値の候補を表しても良い。プロファイル・プレディケートは、例えば、装置の動作状態に従って、対応するプロファイル・ペイロード内で特定された設定データのいずれを設定１１３に適用するべきかを決定するために評価されてもよい。
【００４２】
特に、プロファイル・プレディケートは、装置の１以上の動作状態において論理的関係（例えば、論理的ＡＮＤ、ＯＲ動作）で表される条件を有する１つ以上のルールを含んでいても良い。また、プロファイル・プレディケートは、例えば、どのアプリケーション／サービス、及び／又は、どの動作状態がプロファイル・プレディケートに関連するかを記述するメタデータを有する実行ファイルを含んでいてもよい。プロファイル・プレディケート及び／又はプロファイル・ペイロードは、評価のためにプロファイル・ペイロードを効率的に選択可能とするために、装置の動作状態及び／又はアプリケーション／サービスの識別子に従い、プロファイル・データベース２０７内でインデックスが付与されてもよい。
【００４３】
コンフィグレーション・プロファイル・マネージャ１１１は、新たに受信したプロファイル及び／又は装置の動作状態や動作環境の変化に応じてダイナミック・プロファイル１１３を更新してもよい。オプションとして、コンフィグレーション・プロファイル・マネージャ１１１は、例えば、ユーザからの要求、及び／又は、自動の周期的更新に基づきプロファイルを取得してもよい。１つの実施形態において、デフォルトのプロファイル又は更新されたプロファイルを受信するために、プロファイル取得モジュール２０３はネットワーク接続を図１のプロファイル・サーバ１０１のようなプロファイル・サーバと確立してもよい。例えば、更新されたプロファイルは、装置に関するコンフィグレーション・ポリシー及び／又は動作環境（例えば、新たにインストールされたアクティブなプリンタ）の変化に基づいてもよい。コンフィグレーション・プロファイル・マネージャ１１１は、プロファイル・データベース２０７を更新するために、受信プロファイルからのコンテンツをプロファイル・プレディケート及びプロファイル・ペイロードとして解析してもよい。
【００４４】
１つの実施形態において、コンフィグレーション・プロファイル・マネージャ１１１は装置の１つ以上の動作状態を設定２０９を更新するために（例えば、ＯＳを介して）登録してもよい。動作状態は、動作環境２０１のようなＯＳが検出及び／又は測定することができる、装置の動作を記述するパラメータであってもよい。コンフィグレーション・プロファイル・マネージャ１１１は、プロファイル・データベース２０７に格納されているプロファイル・プレディケートに従って、どの動作状態を監視するかを識別することができる。１つの実施形態では、状態監視モジュール２０５６が常に登録された動作状態の変化を監視してもよい。状態監視モジュール２０５は、監視している動作状態に変化があった場合は、コンフィグレーション・プロファイル・マネージャ１１１に通知することができる。それに応じて、コンフィグレーション・プロファイル・マネージャ１１１は、プロファイル・データベース２０７に格納されているプロファイル情報に基づいて、動作状態の変化に対して設定２０９をどのように更新すべきかを判定するためにプロファイル評価エンジン１１５を起動してもよい。
【００４５】
プロファイル評価エンジン１１５は、検出された動作状態の変化に関連するプロファイル・プレディケート（例えば、検出された動作状態とプロファイル・プレディケートとのマッチングに基づいて）を識別してもよい。例えば、プロファイル評価エンジン１１５は、設定２０９を更新するために、関連するプロファイル・プレディケートの推測処理を実行し、（例えば、プレディケートが真と評価されたときに）関連プロファイル・ペイロードの部分を決定または選択するために、製造ルールエンジンを含んでいてもよい。コンフィグレーション・プロファイル・マネージャ１１１は、設定２０９を更新するために、プロファイル評価エンジン１１５からプロファイル・プレディケートの評価結果を受信してもよい。１つの実施形態において、コンフィグレーション・プロファイル・マネージャ１１１は、例えば、特定のローカル又は遠隔の位置に基づくといった、更新のためにアプリケーションがその設定をどこでどのように設定２０９から取得するかの規定を含んでいてもよい。
【００４６】
図３は、発明の実施形態に対応するプロファイル・ペイロード及びプロファイル・プレディケートを含む典型的なデータユニットを示す図である。例えば、図１のプロファイル・サーバ１０１から受信したプロファイルは、１つ以上のプロファイル・ユニット３０１を、プロファイル・プレディケート３０５と関連づけられたプロファイル・ペイロード３０３のペアとして含んでいてもよい。プロファイル・プレディケート３０５はプロファイル・ペイロード３０３に対して図２の設定２０９のような更新設定がどのように適用されるかを決定するために評価されてもよい。プロファイル・ペイロード３０３は、図２の設定２０９のような設定上で直接更新されるべきデータ（又は値）を含んでいてもよい。また、オプションとしてプロファイル・ペイロード３０３は、実行時に設定を更新することが可能な実行バイナリデータを含んでいてもよい。１つの実施形態では、プロファイル・ペイロードは、設定更新のために（例えば、遠隔サーバに格納された）データ又は実行ファイルに対する参照又はリンクを含んでいてもよい。プロファイル・プレディケート３０５は、装置の動作状態に基づいて評価が可能なルールまたは他の実行ファイルを含んでもよい。
【００４７】
図４は、実施形態に対応する装置を動的にコンフィグレーションする処理の１つの例を示すフローチャートである。典型的な処理４００は、処理ロジックにより実行されてもよい。当該処理ロジックは、ハードウェア（回路、専用ロジック等）、ソフトウェア（専用マシン上で動作）、或いは、これらの組み合わせを含むことができる。例えば、処理４００は図１のシステム１００におけるいくつかのコンポーネントによって実行されてもよい。ブロック４０１において、処理４００の処理ロジックは、クライアント装置のコンフィグレーションを行うために汎用プロファイルをクライアント装置に格納することができる。汎用プロファイルは、異なる動作状況や動作環境の下でクライアント装置をどのようにコンフィグレーションすべきかを詳述していてもよい。汎用プロファイルは、プロファイル・プレディケートと関連するプロファイル・ペイロードを含むことができる。例えば、プロファイル・ペイロードはクライアント装置をコンフィグレーションするための設定候補を特定してもよい。プロファイル・プレディケートは、クライアント装置の動作状態に従いクライアント装置をコンフィグレーションするために適用される設定候補を選択するための、制約、ルール或いは実行ファイルを含んでいてもよい。
【００４８】
ブロック４０３において、１つの実施形態では、処理４００の処理ロジックは、クライアント装置のシステム状態（或いは、動作状態）における変化を動的に決定または検出してもよい。当該変化は、装置が物理的に位置を移動した場合、装置が異なるネットワーク・アドレスに繋がった場合、アプリケーションが装置でインストール／アンインストールされた場合、アプリケーションが装置内で起動された（例えば、実行中）または停止された（例えば、処理の終了）場合、ユーザが装置にログイン又は装置からログアウトした場合、プロファイルが装置にインストール／アンインストールされた場合、或いは、装置内で発生する他の適用可能なイベントを含むことができる。
【００４９】
それに応じてブロック４０５において、処理４００の処理ロジックは、装置のシステム状態における決定された変化に対して適用可能な格納済プロファイルからプロファイル・ペイロードの部分を識別してもよい。例えば、プロファイル・ペイロードの部分は、装置のシステム状態の変化に対応する格納済プロファイルにおける対応プロファイル・プレディケートの（プロファイル・プレディケート内のルールに基づく）評価結果に従って選択されてもよい。ブロック４０７では、システム状態の変化を反映すべく、プロファイル・ペイロードの識別された部分が装置のコンフィグレーション設定に対して適用される。
【００５０】
図５は、発明の実施形態に対応する実行ファイルを介したアプリケーションのコンフィグレーション処理の一例を示すフローチャートである。典型的な処理５００は、処理ロジックにより実行されてもよい。当該処理ロジックは、ハードウェア（回路、専用ロジック等）、ソフトウェア（専用マシン上で動作）、或いは、これらの組み合わせを含むことができる。例えば、処理５００は図１のシステム１００におけるいくつかのコンポーネントによって実行されてもよい。ブロック５０１において、処理５００では、装置内で実行中のアプリケーションのために、クライアント装置内でコンフィグレーションを更新することが可能な実行ファイルをインストールすることができる。実行ファイルは、アプリケーションのコンフィグレーションを更新するための実行ファイルを選択するための条件を特定するプレディケートと関連づけられていてもよい。
【００５１】
ブロック５０３において、１つの実施形態では、処理５００の処理ロジックは、装置の動作状態が変化すると、装置のアプリケーションをコンフィグレーションするための実行ファイルと関連づけられたプレディケートを評価してもよい。アプリケーション及び該アプリケーションをコンフィグレーションするための実行ファイルは、アプリケーションを提供するサード・パーティから装置に個別にインストールされてもよい。１つの実施形態において、動作状態の変化に従ってアプリケーションをコンフィグレーションするための実行ファイルを選択する条件が満たされたかどうかを判定するために、プレディケートは装置の動作状態に関する条件を含んでもよい。もし実行ファイルが選択された場合、ブロック５０５では、実行ファイルが装置内でアプリケーションをコンフィグレーションを更新するために実行される。
【００５２】
図６は、発明の実施形態に対応する実行ファイルを介したアプリケーションのコンフィグレーション処理の一例を示すフローチャートである。典型的な処理６００は、処理ロジックにより実行されてもよい。当該処理ロジックは、ハードウェア（回路、専用ロジック等）、ソフトウェア（専用マシン上で動作）、或いは、これらの組み合わせを含むことができる。例えば、処理６００は図１のシステム１００におけるいくつかのコンポーネントによって実行されてもよい。ブロック６０１では、プロファイル・プレディケート（例えば、コンフィグレーション設定の一部を選択するための条件）と関連づけられたプロファイル・ペイロード（例えば、コンフィグレーション設定）を含む汎用プロファイルをコンフィグレーションする。コンフィグレーションは、複数クライアント装置のコンフィグレーション管理用の汎用プロファイルのコンテンツをインストール／更新することを、例えば管理者に対して許可するユーザ・インタフェース・ベースであっても良い。
【００５３】
ブロック６０３では、１つの実施形態において処理６００の処理ロジックは、コンフィグレーション設定と動的に関連づけられるシステム状態を（例えば、遠隔接続された）クライアント装置から受信してもよい。それに応じて、処理６００の処理ロジックは、受信したシステム状態のための汎用プロファイルのプロファイル・ペイロードの一部を識別してもよい。例えば、処理６００の処理ロジックは、識別されたプロファイル・ペイロードについてプロファイル・プレディケートの対応する一部を評価することにより、プロファイル・ペイロードの識別された一部とシステム状態とがマッチングするかどうかを判定する。
【００５４】
ブロック６０５において、処理６００の処理ロジックは、装置から受信したシステム状態に従ってデフォルトのプロファイルから識別されたプロファイル・ペイロードの一部を含むカスタマイズされたプロファイルを生成することができる。その後ブロック６０７では、処理６００の処理ロジックは、例えばＭＤＭプロトコルに基づいて、プロファイル・ペイロードの識別された一部によりクライアント装置のコンフィグレーション設定を更新するためにカスタマイズされたプロファイルをクライアント装置に送信することができる。
【００５５】
図７は、実施形態において利用することが可能なデータ処理システムの一例を示す。図７に示すデータ処理システム７００は処理システム７１１を含み、当該処理システム７１１は、１つ以上のマイクロプロセッサ、或いは、ＳｏＣＩＣ(System on a chip integrated circuit)であってもよい。当該システム７００はまた、処理システムが実行するためのデータやプログラムを格納するメモリ７０１も含む。システム７００は、オーディオ入出力サブシステム７０５を含み、システム７０５は、例えば音楽再生や電話機能を提供するためのマイク及びスピーカを含むことができる。システム７００は少なくとも所定の実施形態においては、ネットワークを介した通信のために、本明細書に記載される１つ以上のプロファイルを要求し、装置をコンフィグレーションすべく当該プロファイルをダウンロードすることができる。システム７００はこれらのプロファイルを、図１のサーバ１０１のようなサーバ・データ処理システムからダウンロードすることができる。１つの実施形態において、図１のシステム７００は装置１０９であっても良い。
【００５６】
ディスプレイ・コントローラ及びディスプレイ装置７０７は、視覚的ユーザ・インタフェースをユーザに提供する。このデジタル・インタフェースは、ＯＳＸのＯＳソフトウェアを実行した場合のマッキントッシュ・コンピュータで示されるものと同様のグラフィカル・ユーザ・インタフェースを含むことができる。システム７００は他のデータ処理システムと通信するために１つ以上の無線トランシーバ７０３を含む。無線トランシーバはＷｉＦＩトランシーバ、赤外線トランシーバ、Ｂｌｕｅｔｏｏｔｈトランシーバ、及び／又は無線携帯電話トランシーバであってもよい。所定の実施形態において、図示されていない追加のコンポーネントがシステム７００の一部となってもよいこと、また、データ処理システム内で図７に示したよりも少ないコンポーネントを使用してもよいことは理解されよう。
【００５７】
データ処理システム７００はユーザがシステムに対して入力を提供するための１つ以上の入力デバイス７１３を含む。これらの入力デバイスは、キーパッド、キーボード、タッチパネル、或いは、マルチ・タッチパネルであっても良い。データ処理システム７００はまたオプションとして、例えばドック用のコネクタのような入出力装置７１５も含む。技術常識としてよく知られているように、様々なコンポーネントを相互接続するために不図示の１つ以上のバスを用いてもよいことは理解されよう。図７に示すデータ処理システムは、携帯型コンピュータ、パーソナル・デジタル・アシスタント（ＰＤＡ）、ＰＤＡと同様の機能を備える携帯電話、携帯電話を含む携帯型コンピュータ、iPodのようなメディア・プレーヤ、或いは、ＰＤＡと携帯電話の機能が一体化されたメディア・プレーヤのような上記装置の特徴や機能を組み合わせた装置であっても良い。他の実施形態では、データ処理システム７００は、ネットワーク・コンピュータ、他の装置に埋め込まれた処理装置、或いは、図７に示すよりも少ないコンポーネント、或いは、おそらくはより多くコンポーネントで構成される他のタイプのデータ処理システムであってもよい。
【００５８】
図８は、発明の実施形態と関連して利用可能な典型的なコンピュータ・システムの一例を示す。図８はコンピュータ・システムの様々なコンポーネントを図示するが、これらは特定の構造や各コンポーネントの相互接続方法を示すことを何ら意図したものではなく、その詳細は本発明と関連するものではない。なお、より少ないコンポーネント、或いは、おそらくはより多くコンポーネントで構成されるネットワーク・コンピュータや他のデータ処理システムを本発明とともに利用してもよいことは理解されよう。図８は、図１に示すサーバ・システムを表してもよい。
【００５９】
図８に示すとおり、データ処理システムの形態を有するコンピュータ・システム８００は、１つ以上のマイクロプロセッサ８０５、ＲＯＭ（リード・オンリ・メモリ）８０７、揮発性ＲＡＭ８０９及び不揮発性メモリ８１１と結合されたバス８０３を含む。マイクロプロセッサ８０５は、メモリ８０７、８０９、８１１から命令を取得し、上述の動作を実現するために当該命令を実行する。バス８０３はこれらの様々なコンポーネントを相互接続すると共に、これらのコンポーネント８０５、８０７、８０９及び８１１をディスプレイ・コントローラ及びディスプレイ装置８１３、及び、入出力（Ｉ／Ｏ）デバイスのような周辺機器と相互接続する。入出力デバイスは、マウス、キーボード、モデム、ネットワーク・インタフェース、プリンタ及び技術分野でよく知られている他の装置であってもよい。典型的に、入出力デバイス８１５は、入出力コントローラ８１７を介してシステムと結合される。揮発性ＲＡＭ（ランダム・アクセス・メモリ）８０９は典型的には、メモリ内でデータをリフレッシュ、維持するために継続的な電力を必要とするダイナミックＲＡＭ（ＤＲＡＭ）として実装される。
【００６０】
大型ストレージ８１１は典型的には磁気ハードディスク・ドライブ、磁気光学ドライブ、光学ドライブ、ＤＶＤ ＲＡＭ、フラッシュメモリ（登録商標）、或いは、システムに対する電力供給が絶たれた後であってもデータ（例えば、大量のデータ）を維持する他のタイプのメモリシステムである。典型的には、大型ストレージ８１１はランダム・アクセス・メモリであろうが、必ずしもそうでなくてもよい。図８は大型ストレージ８１１を、データ処理システム内の残りのコンポーネントと直接に結合されたローカルな装置として示しているが、モデム、イーサネット・インタフェース或いは無線ネットワークのようなネットワーク・インタフェースを通じてデータ処理装置と結合されるネットワーク・ストレージ装置のような遠隔システムの不揮発性メモリを利用してもよいことは理解されよう。バス８０３は、技術分野においてよく知られた様々なブリッジ、コントローラ、及び／又はアダプタを介して互いに接続される１つ以上のバスを含むことができる。
【００６１】
本明細書において「メモリ」の語が使用される場合、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）のような全ての揮発性の格納媒体を含むことが意図される。コンピュータで実行可能な命令は磁気ハードディスク及び光学ディスクのような不揮発性ストレージ装置に格納され、プロセッサによるソフトウェアの実行中にメモリ内にダイレクト・メモリ・アクセス処理により書き込まれる。当業者であれば直ちに理解するであろうが、
「コンピュータで読み取り可能な記憶媒体」にはプロセッサがアクセス可能なあらゆるタイプの揮発性或いは不揮発性の格納装置が含まれる。
【００６２】
上述の説明では、発明を特定の典型的な実施形態を参照して記述した。しかし、特許請求の範囲に記載されるような発明のより広い精神及び範囲から逸脱することなく様々な修正が可能であることは明らかである。従って、明細書及び図面の記載は、例示的意味において解釈されるべきであって、限定的な意味において解釈されるべきではない。
【図１】
0005749814.tif 000002
【図２】
0005749814.tif 000003
【図３】
0005749814.tif 000004
【図４】
0005749814.tif 000005
【図５】
0005749814.tif 000006
【図６】
0005749814.tif 000007
【図７】
0005749814.tif 000008
【図８】
0005749814.tif 000009