(57)【要約】  デバイスの動作モードに基づくアプリケーションの優先順位のためのシステム。デバイス上の上部可視資源を割り振る方法が与えられる。方法は、要求しているアプリケーションへの上部可視資源の割り振りを要求する要求を受信することと、上部可視資源が、所有しているアプリケーションに割り振られていると判断することとを含む。方法は、所有者情報を要求者情報と関係付けて、アービトレーション要求を形成することも含む。方法は、アービトレーション要求をアービトレートし、所有者情報が、所有しているアプリケーションが特権を与えられていることを示し、要求しているアプリケーションを識別する識別子が、所有者情報と関係付けられた譲渡リストに含まれているときは、上部可視資源が、要求しているアプリケーションに割り振られることを示すアービトレーション決定を生成することも含む。【選択図】    図１
2008500645.tif 000002
【特許請求の範囲】
【請求項１】
デバイス上の上部可視資源を割り振るアプリケーション優先順位システムを動作する方法であって、
要求しているアプリケーションへの上部可視資源の割り振りを要求する要求を受信することと、
上部可視資源が、所有しているアプリケーションに割り振られていると判断することと、
所有者情報を要求者情報と関係付けて、アービトレーション要求を形成することであって、所有者情報が、所有しているアプリケーションに関する情報を含み、要求者情報が、要求しているアプリケーションに関する情報を含むことと、
アービトレーション要求をアービトレートし、所有者情報が、所有しているアプリケーションが特権を与えられていることを示し、要求しているアプリケーションを識別する識別子が、所有者情報と関係付けられた譲渡リストに含まれているときは、上部可視資源が、要求しているアプリケーションに割り振られることを示すアービトレーション決定を生成することと、
アービトレーション決定に基づいて、上部可視資源を割り振ることとを含む方法。
【請求項２】
アービトレートするステップが、アービトレーション要求をアービトレートし、所有者情報が、所有しているアプリケーションが特権を与えられていることを示し、要求しているアプリケーションを識別する識別子が、所有者情報と関係付けられた譲渡リストに含まれていないときは、上部可視資源が、所有しているアプリケーションに割り振られることを示すアービトレーション決定を生成することを含む請求項１記載の方法。
【請求項３】
アービトレートするステップが、アービトレーション要求をアービトレートして、上部可視資源が、所有者情報に含まれている少なくとも１つのパラメータに基づいて、所有しているアプリケーションおよび要求しているアプリケーションの一方に割り振られることを示すアービトレーション決定を生成することを含む請求項１記載の方法。
【請求項４】
アービトレートするステップが、アービトレーション要求をアービトレートして、所有者情報、要求者情報、デバイスの状態情報、デバイスの動作モード情報、ユーザの優先設定情報、およびサードパーティの優先設定情報を含む１組の情報項目から選択される任意の情報に基づいて、アービトレーション決定を生成することを含む請求項１記載の方法。
【請求項５】
アービトレートするステップが、資源アービタによって行われ、方法が、資源アービタをデバイスへダウンロードすることを含む請求項１記載の方法。
【請求項６】
デバイスが無線デバイスである請求項１記載の方法。
【請求項７】
デバイス上の上部可視資源を動的に割り振るアプリケーション優先順位システムを動作する装置において、
資源マネージャであって、
要求しているアプリケーションへの上部可視資源の割り振りを要求する要求を受信する論理と、
上部可視資源が、所有しているアプリケーションに割り振られていると判断する論理と、
所有者情報を要求者情報と関係付けて、アービトレーション要求を形成する論理であって、所有者情報が、所有しているアプリケーションに関する情報を含み、要求者情報が、要求しているアプリケーションに関する情報を含む論理とを含む資源マネージャ、
アービトレーション要求をアービトレートし、所有者情報が、所有しているアプリケーションが特権を与えられていることを示し、要求しているアプリケーションを識別する識別子が、所有者情報と関係付けられた譲渡リストに含まれているときは、上部可視資源が、要求しているアプリケーションに割り振られることを示すアービトレーション決定を生成するように動作する資源アービタ、および、
アービトレーション決定に基づいて、上部可視資源を割り振る論理を含む装置。
【請求項８】
資源アービタが、アービトレーション要求をアービトレートし、所有者情報が、所有しているアプリケーションが特権を与えられていることを示し、要求しているアプリケーションを識別する識別子が、所有者情報と関係付けられた譲渡リストに含まれていないときは、上部可視資源が、所有しているアプリケーションに割り振られることを示すアービトレーション決定を生成するように動作する請求項７記載の装置。
【請求項９】
資源アービタが、アービトレーション要求をアービトレートして、上部可視資源が、所有者情報に含まれている少なくとも１つのパラメータに基づいて、所有しているアプリケーションおよび要求しているアプリケーションの一方に割り振られることを示すアービトレーション決定を生成するように動作する請求項７記載の装置。
【請求項１０】
資源アービタが、アービトレーション要求をアービトレートして、所有者情報、要求者情報、デバイスの状態情報、デバイスの動作モード情報、ユーザの優先設定情報、およびサードパーティの優先設定情報を含む１組の情報項目から選択される任意の情報に基づいて、アービトレーション決定を生成するように動作する請求項７記載の装置。
【請求項１１】
資源アービタをデバイスへダウンロードする論理も含む請求項７記載の装置。
【請求項１２】
デバイスが無線デバイスである請求項７記載の装置。
【請求項１３】
デバイス上の上部可視資源を割り振るアプリケーション優先順位システムを動作する装置であって、
要求しているアプリケーションへの上部可視資源の割り振りを要求する要求を受信する手段と、
上部可視資源が、所有しているアプリケーションに割り振られていると判断する手段と、
所有者情報を要求者情報と関係付けて、アービトレーション要求を形成する手段であって、所有者情報が、所有しているアプリケーションに関する情報を含み、要求者情報が、要求しているアプリケーションに関する情報を含む手段と、
アービトレーション要求をアービトレートし、所有者情報が、所有しているアプリケーションが特権を与えられていることを示し、要求しているアプリケーションを識別する識別子が、所有者情報と関係付けられた譲渡リストに含まれているときは、上部可視資源が、要求しているアプリケーションに割り振られることを示すアービトレーション決定を生成する手段と、
アービトレーション決定に基づいて、上部可視資源を割り振る手段とを含む装置。
【請求項１４】
アービトレートする手段が、アービトレーション要求をアービトレートし、所有者情報が、所有しているアプリケーションが特権を与えられていることを示し、要求しているアプリケーションを識別する識別子が、所有者情報と関係付けられた譲渡リストに含まれていないときは、上部可視資源が、所有しているアプリケーションに割り振られることを示すアービトレーション決定を生成する手段を含む請求項１３記載の装置。
【請求項１５】
アービトレートする手段が、アービトレーション要求をアービトレートして、上部可視資源が、所有者情報に含まれている少なくとも１つのパラメータに基づいて、所有しているアプリケーションおよび要求しているアプリケーションの一方に割り振られることを示すアービトレーション決定を生成する手段を含む請求項１３記載の装置。
【請求項１６】
アービトレートする手段が、アービトレーション要求をアービトレートして、所有者情報、要求者情報、デバイスの状態情報、デバイスの動作モード情報、ユーザの優先設定情報、およびサードパーティの優先設定情報を含む１組の情報項目から選択される任意の情報に基づいて、アービトレーション決定を生成する手段を含む請求項１３記載の装置。
【請求項１７】
アービトレートする手段が、資源アービタによって行われ、装置が、資源アービタをデバイスへダウンロードする手段を含む請求項１３記載の装置。
【請求項１８】
デバイスが無線デバイスである請求項１３記載の装置。
【請求項１９】
デバイス内のプロセッサによって実行されるとき、デバイス上の上部可視資源を割り振るためのアプリケーション優先順位システムを与えるように働く命令を含むコンピュータ読出し可能媒体であって、
要求しているアプリケーションへの上部可視資源の割り振りを要求する要求を受信する命令と、
上部可視資源が、所有しているアプリケーションに割り振られていることを判断する命令と、
所有者情報を要求者情報と関係付けて、アービトレーション要求を形成する命令であって、所有者情報が、所有しているアプリケーションに関する情報を含み、要求者情報が、要求しているアプリケーションに関する情報を含む命令と、
アービトレーション要求をアービトレートし、所有者情報が、所有しているアプリケーションが特権を与えられていることを示し、要求しているアプリケーションを識別する識別子が、所有者情報と関係付けられた譲渡リストに含まれているときは、上部可視資源が、要求しているアプリケーションに割り振られることを示すアービトレーション決定を生成する命令と、
アービトレーション決定に基づいて、上部可視資源を割り振る命令とを含むコンピュータ読出し可能媒体。
【請求項２０】
アービトレートする命令が、アービトレーション要求をアービトレートし、所有者情報が、所有しているアプリケーションが特権を与えられていることを示し、要求しているアプリケーションを識別する識別子が、所有者情報と関係付けられた譲渡リストに含まれていないときは、上部可視資源が、所有しているアプリケーションに割り振られることを示すアービトレーション決定を生成する命令を含む請求項１９記載のコンピュータ読出し可能媒体。
【請求項２１】
アービトレートする命令が、アービトレーション要求をアービトレートして、上部可視資源が、所有者情報に含まれている少なくとも１つのパラメータに基づいて、所有しているアプリケーションおよび要求しているアプリケーションの一方に割り振られることを示すアービトレーション決定を生成する命令を含む請求項１９記載のコンピュータ読出し可能媒体。
【請求項２２】
アービトレートする命令が、アービトレーション要求をアービトレートして、所有者情報、要求者情報、デバイスの状態情報、デバイスの動作モード情報、ユーザの優先設定情報、およびサードパーティの優先設定情報を含む１組の情報項目から選択される任意の情報に基づいて、アービトレーション決定を生成する命令を含む請求項１９記載のコンピュータ読出し可能媒体。
【請求項２３】
アービトレートする命令が、資源アービタによって行われ、コンピュータ読出し可能媒体が、資源アービタをデバイスへダウンロードする命令を含む請求項１９記載のコンピュータ読出し可能媒体。
【請求項２４】
デバイスが無線デバイスである請求項１９記載のコンピュータ読出し可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概ね、デバイスの動作、より具体的には、デバイスの動作モードに基づくアプリケーションの優先順位のためのシステムに関する。
【背景技術】
【０００２】
技術の進歩は、広範囲なデータネットワークの開発および展開をもたらした。これらのネットワークは、インターネットのような公衆データネットワークと、無線遠隔通信ネットワークのような専用ネットワークとを含む。これらのネットワークのユーザは、使用可能な多様な情報およびサービスにアクセスする能力をもつ。例えば、無線デバイスの所有者は、現在、デバイス上で実行する多様なアプリケーションをダウンロードすることができる。
【０００３】
ダウンロード可能なアプリケーションが増加した結果、資源の割り振りは、益々重要になってきた。デバイスの資源は、ディスプレイ、キーパッド、サウンドプロセッサ、モデム、記憶デバイス、通信チャネル、および他のタイプの資源を含む。各デバイスは、限られた数の資源をもつので、それらの資源の、競合するアプリケーションへの割り振られ方は、デバイスがどのように動作するかを決める。例えば、無線電話は、音声呼中、データ呼中、アプリケーションの実行中、またはＳＭＳメッセージの処理中であるかもしれず、デバイスは、特定の動作条件を仮定して、その資源の種々のアプリケーションへの割り振り方を知る必要がある。
【０００４】
ほとんどのデバイスにとって非常に重要な資源は、“上部可視資源(top visible resource, TVR)”と呼ばれる(ときには、“ハビング スコープ(having scope)”とも呼ばれる)。上部可視資源は、一般に、デバイスのディスプレイおよびデバイスの入力デバイス(すなわち、キーパッド)を含み、これは、アプリケーションが、それらがデバイスの現在の焦点であることをユーザに表すことを可能にする。例えば、上部可視資源を割り振られているアプリケーションは、デバイスのユーザと、ディスプレイおよびキーパッドを介して対話することができる。
【０００５】
デバイス上で実行する競合するアプリケーション間で効果的にアービトレートし（arbitrate）、何れのアプリケーションが上部可視資源にアクセスすべきかを判断する必要がある。例えば、“ユーザの経験”を判断するデバイスの動作は、アプリケーションが上部可視資源にどのように割り振られるかによって判断される。
【０００６】
現在のシステムにおいて、上部可視資源は、静的な規則にしたがってアプリケーションに割り振られる。例えば、電話のハンドセットデバイスにおいて、アプリケーションは、通話が進行中であるときに起動することを許されない。通常、上部可視資源へのアプリケーションのアクセスは、現在のデバイスが動作している動的な環境を考慮に入れないハードコード化された割り振り規則によって制御されている。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、必要とされるものは、デバイスの動作環境に基づいて、デバイス内の何れのアプリケーションが上部可視資源を割り振られるかを判断するように動作する動的なアプリケーション優先順位システムである。さらに加えて、システムは、ネットワークの通信事業者のようなサードパーティが、デバイス上の上部可視資源がどのように割り振られるかについての入力をもつことを可能にする機構を与えるべきであり、その結果、デバイスによって与えられるユーザの経験を動的に制御することができる。
【課題を解決するための手段】
【０００８】
１つ以上の実施形態において、デバイスの上部可視資源を動的に割り振るように動作するアプリケーション優先順位システムが与えられる。１つの実施形態において、デバイス上の上部可視資源を割り振るアプリケーション優先順位システムを動作する方法が与えられる。方法は、要求しているアプリケーションへの上部可視資源の割り振りを要求する要求を受信することと、上部可視資源が、所有しているアプリケーションに割り振られていると判断することとを含む。方法は、所有者情報を要求者情報と関係付けて、アービトレーション要求(arbitration requirement)を形成することも含み、ここで、所有者情報は、所有しているアプリケーションに関する情報を含み、要求者情報は、要求しているアプリケーションに関する情報を含む。方法は、アービトレーション要求をアービトレートして、所有者情報が、所有しているアプリケーションが特権を与えられていることを示し、要求しているアプリケーションを識別する識別子が、所有者情報と関係付けられた譲渡リスト（relinquish list）に含まれているときは、上部可視資源が、要求しているアプリケーションに割り振られることを示すアービトレーション決定（arbitration decision）を生成することも含む。方法は、アービトレーション決定に基づいて、上部に見える資源（top view resource）を割り振ることも含む。
【０００９】
１つの実施形態において、デバイス上の上部可視資源を動的に割り振るアプリケーション優先順位システムを動作する装置が与えられる。装置は、所有しているアプリケーションに上部可視資源を割り振り、要求しているアプリケーションからの上部可視資源の割り振りに対する要求を受信するように動作する資源マネージャを含む。装置は、所有しているアプリケーションが特権を与えられていて、譲渡リスト内に要求しているアプリケーションを識別しなかったときは、所有しているアプリケーションに上部可視資源を割り振るように動作するアービトレーション論理(arbitration logic)も含む。アービトレーション論理は、所有しているアプリケーションが特権を与えられていて、譲渡リスト内に要求しているアプリケーションを識別したときは、所有しているアプリケーションと要求しているアプリケーションとの間において上部可視資源の割り振りをアービトレートするようにも動作する。アービトレーション論理は、所有しているアプリケーションが特権を与えられていないときは、所有しているアプリケーションと要求しているアプリケーションとの間において上部可視資源の割り振りをアービトレートするようにも動作する。
【００１０】
１つの実施形態において、デバイス上の上部可視資源を動的に割り振るアプリケーション優先順位システムを動作する装置が与えられる。装置は、所有しているアプリケーションに上部可視資源を割り振る手段と、要求しているアプリケーションからの上部可視資源の割り振りに対する要求を受信する手段とを含む。装置は、所有しているアプリケーションが特権を与えられていて、譲渡リスト内に要求しているアプリケーションを識別しなかったときは、所有しているアプリケーションに上部可視資源を割り振る手段も含む。装置は、所有しているアプリケーションが特権を与えられていて、譲渡リスト内に要求しているアプリケーションを識別したときは、所有しているアプリケーションと要求しているアプリケーションとの間において上部可視資源の割り振りをアービトレートする手段も含む。装置は、所有しているアプリケーションが特権を与えられないときは、所有しているアプリケーションと要求しているアプリケーションとの間において上部可視資源の割り振りをアービトレートする手段も含む。
【００１１】
１つの実施形態において、デバイス内のプロセッサによって実行されるときに、デバイス上の上部可視資源を動的に割り振るアプリケーション優先順位システムを与えるように働く命令を含むコンピュータ読出し可能媒体が与えられる。コンピュータ読出し可能媒体は、所有しているアプリケーションに上部可視資源を割り振る命令と、要求しているアプリケーションからの上部可視資源の割り振りに対する要求を受信する命令とを含む。コンピュータ読出し可能媒体は、所有しているアプリケーションが特権を与えられていて、譲渡リスト内に要求しているアプリケーションを識別しなかったときは、所有しているアプリケーションに上部可視資源を割り振る命令も含む。コンピュータ読出し可能媒体は、所有しているアプリケーションが特権を与えられていて、譲渡リスト内に要求しているアプリケーションを識別したときは、所有しているアプリケーションと要求しているアプリケーションとの間において上部可視資源の割り振りをアービトレートする命令も含む。コンピュータ読出し可能媒体は、所有しているアプリケーションが特権を与えられていないときは、所有しているアプリケーションと要求しているアプリケーションとの間において上部可視資源の割り振りをアービトレートする命令も含む。
【００１２】
本発明の他の態様、長所、および特徴は、図面の簡単な説明（Brief Description of the Drawing）、発明を実施するための最良の形態(Detailed Description)、および特許請求の範囲(Claims)に記載されていることを検討した後で明らかになるであろう。
【発明を実施するための最良の形態】
【００１３】
上述の態様、および本明細書に記載されている実施形態の付随する長所は、次の詳細な記述を参照することによって、添付の図面と共に採用されたときに、より容易に明らかになるであろう。
【００１４】
次の詳細な記述は、デバイスにおける上部可視資源を動的に割り振るように動作するアプリケーション優先順位システムの１つ以上の実施形態を記載している。１つの実施形態において、アプリケーションは、割り振り要求を資源マネージャへ送信することによって、上部可視資源の割り振りを要求する。割り振り要求は、上部可視資源の状態およびその現在の所有者を記載した１つ以上のパラメータと結合され、アービトレーション要求を形成する。アービタ（arbiter）は、アービトレーション規則(arbitration rule)にしたがって、アービトレーション要求を処理し、資源がどのように割り振られるかを示すアービトレーション決定を生成する。次に、アービトレーション決定を使用して、上部可視資源を割り振る。システムは、任意のタイプのワイヤードまたはワイヤレスデバイスで使用するのに適しており、デバイスは、デスクトップコンピュータ、ノートブックコンピュータ、無線電話、ページャ、ＰＤＡ、電子メールデバイス、タブレットコンピュータ、または何か他のタイプのワイヤードまたはワイヤレスデバイスを含むが、これらに制限されない。
【００１５】
１つ以上の実施形態において、アプリケーション優先順位システムは、例えば、一般化された呼をデバイス専用資源に与えることによって、デバイスの動作を単純化するのに使用される、デバイス上で実行するランタイム環境と対話する。１つのこのようなランタイム環境は、カリフォルニア州サンディエゴのＱＵＡＬＣＯＭＭ，Ｉｎｃ．によって開発されたＢｉｎａｒｙ Ｒｕｎｔｉｍｅ Ｅｎｖｉｒｏｎｍｅｎｔ Ｗｉｒｅｌｅｓｓ（商標）(ＢＲＥＷ（登録商標）)のソフトウェアプラットフォームである。次の記述では、アプリケーション優先順位システムの１つの実施形態が、ＢＲＥＷソフトウェアプラットフォームのようなランタイム環境を実行している無線デバイスを使用して実施されると仮定する。しかしながら、アプリケーション優先順位システムの１つ以上の実施形態は、ワイヤードおよびワイヤレスデバイス上で上部可視資源を動的に割り振る他のタイプのランタイム環境で使用するのに適している。さらに、本明細書では、“上部可視資源（top visible resource）”という用語は、デバイスの現在の焦点を表すのに使用されるデバイス上の任意のタイプのハードウェアまたはソフトウェア、あるいはこの両者の資源を示し、デバイスのディスプレイとキーパッドとの組合せを含むが、これに制限されない。
【００１６】
図１は、デバイス上の上部可視資源を割り振るように動作する動的なアプリケーション優先順位システム100の１つの実施形態を示している。システム100は、無線通信チャネル106を介してデータネットワーク104と通信する無線端末102を含む。データネットワーク104は、任意のタイプのデータネットワークを含み、これは、ワイヤード、ワイヤレス、私設、または公衆データネットワーク、あるいはその任意の組合せを含み得るが、これらに制限されない。
【００１７】
システム100は、サーバ108も含み、これは、通信チャネル110を介してネットワーク104に結合され、ネットワーク104と通信しているデバイスにサービスを提供する。例えば、無線端末102は、無線電話であり、サーバ108は、電話に遠隔通信サービスを提供する全国的な遠隔通信ネットワークの一部であり得る。通信チャネル110は、任意のタイプのワイヤードまたはワイヤレス無線通信チャネルであり得る。
【００１８】
デバイス102は、アプリケーション（application, App）116を含み、これらはデバイス上で実行され、デバイスのユーザによって望ましい特徴および機能を与える。例えば、アプリケーション116は、経路120によって示されているように、サーバ108からデバイス102へダウンロードされ得る。実行中に、アプリケーション116は、デバイス102の上部可視資源118へのアクセスを得ることを試みる。これは、１つの実施形態においてデバイスのディスプレイおよびキーパッドを含む。
【００１９】
１つの実施形態において、各アプリケーション116は、アプリケーションの権利および特権を示す１つ以上のグループＩＤをもつ。例えば、グループＩＤは、アプリケーションが、上部可視資源に関して特権を与えられている（Privileged, P）か、特権を与えられていない(non- Privileged, nP)かを識別する。１つの実施形態において、特権が与えられているアプリケーションと、特権が与えられていないアプリケーションとの両者が、上部可視資源にアクセスし得るが、特権を与えられたアプリケーションは、上部可視資源の制御が譲渡される選択されたアプリケーションまたはグループを特定することを許される。
【００２０】
１つの実施形態において、デバイス102は、アービタ112およびアービトレーション規則114を含む。例えば、アービタ112およびアービトレーション規則114は、経路120によって示されているように、サーバ108からデバイス102へダウンロードされ得る。アービタ112は、デバイス102上で実行する競合するアプリケーションからの上部可視資源118に対する要求をアービトレートするように動作する。アービタ112は、要求しているアプリケーションと、資源が所有しているアプリケーションとに関する情報に基づいて、アービトレーション要求を決定する。１つの実施形態において、所有しているアプリケーションの特権状態およびアービトレーション規則114を使用して、競合するアプリケーションに上部可視資源118をどのように割り振るかを示すアービトレーション決定を生成する。したがって、選択されたアプリケーションに特定の特権状態を関係付けて、アービトレーション規則114の特定の組をサーバ108からデバイス102へダウンロードすることによって、サーバ108が、デバイス上の上部可視資源118がアプリケーション116にどのように割り振られるかを制御することが可能である。これは、サーバ108が、デバイス102によって与えられるユーザの経験を制御することを可能にする。
【００２１】
１つ以上の実施形態において、サーバ108および端末102は、任意のタイプのデバイスであり、データネットワーク104へのそれらの関係付けられる接続は、ワイヤレス、ワイヤード、またはその任意の組合せであり得る。したがって、動的なアプリケーション優先順位システムの実施形態は、種々のサーバおよび端末をもつ、事実上あらゆるネットワーク構成を使用して、サーバが、デバイス上の上部可視資源がどのように割り振られるかを制御することを可能にするように動作する。
【００２２】
図２は、デバイス、例えば、図１に示されているデバイス102における上部可視資源を割り振るアプリケーション優先順位システム200の１つの実施形態の機能図を示している。システム200は、上部可視資源マネージャ202、上部可視資源状態204、資源アービタ206、およびアービトレーション規則208を含む。デバイスの上部可視資源210、および全体的に参照番号212で示されている、デバイス上で実行するアプリケーション(１ないし４)も示されている。
【００２３】
上部可視資源マネージャ202は、ハードウェア論理、ソフトウェア論理、またはその任意の組合せを含み、上部可視資源210を管理するように動作する。上部可視資源210は、ディスプレイおよびキーパッドのような、任意のタイプのデバイスの資源を含むことができ、これらは、何れのアプリケーションがデバイスの焦点をもっているかをユーザに表すのに使用される。例えば、デバイスの焦点をもっているアプリケーションは、現在ユーザと対話しているアプリケーションである。
【００２４】
上部可視資源状態204は、ハードウェア、ソフトウェア、またはその任意の組合せを含む。１つの実施形態において、上部可視資源状態204は、上部可視資源210に関する情報または現在の資源所有者に関する情報(所有者情報)、あるいはこの両者を含む。例えば、上部可視資源210を現在割り振られているアプリケーションは、資源所有者、現在の所有者、または所有しているアプリケーションであると考えられる。例えば、１つの実施形態において、上部可視資源状態204は、現在の所有者に関する情報を含み、これは、現在の所有者識別子(identifier, ID)、１つ以上のグループＩＤ、特権状態、資源を獲得する理由、譲渡リスト、および／または、現在の所有者あるいは上部可視資源210に関する何か他の情報を含む。１つの実施形態において、譲渡リストは、現在の所有者が上部可視資源210を何れのアプリケーションまたはグループ(すなわち、特権クラス)へ快く解放するかを識別する。１つの実施形態において、このリストは、資源アービタ206によって行われるアービトレーションプロセス中に制御している。別の実施形態において、この譲渡リストは、単に、アービトレーションがどのように決定されるべきであるかについての、資源アービタ206への推薦であると考えられる。上部可視資源マネージャ202は、資源状態204に含まれている情報を維持、更新、変更、追加、削除、または、さもなければ処理するように動作する。
【００２５】
資源アービタ206は、ハードウェア、ソフトウェア、またはその任意の組合せを含み、アービトレーション規則208を使用して、上部可視資源210へのアクセスをアービトレートするように動作する。例えば、１つの実施形態において、資源アービタ206は、プログラムモジュールであり、アービトレーション規則208は、メモリに記憶されているパラメータであり、これは、資源アービタ206によって検索され、上部可視資源210を動的に割り振るために処理される。１つ以上の実施形態において、上部可視資源マネージャ202および資源アービタ206は、デバイス上で実行するランタイム環境へのダウンロード可能な拡張として実施され得る。例えば、それらは、ダウンロード可能なＢＲＥＷ拡張であり得る。
【００２６】
動的なアプリケーション優先順位システム200の１つの実施形態の動作中に、アプリケーションは、上部可視資源210へのアクセスのために、割り振り要求を上部可視資源マネージャ202へ提出する。上部可視資源210が使用可能であるときは、上部可視資源マネージャ202は、要求しているアプリケーション210に上部可視資源を割り振る。上部可視資源210が、現在、別のアプリケーションによって所有されているときは、上部可視資源マネージャ202は、要求しているアプリケーションに関する情報(要求者情報)と資源の現在の所有者に関する情報(所有者情報)とを含むアービトレーション要求を集めることによって応答する。要求しているアプリケーションに関する情報は、割り振り要求から求められ、資源の現在の所有者に関する情報は、上部可視資源状態204から求められる。アービトレーション要求は、参照符号214で示されているように、資源アービタ206へ送られる。資源アービタ206は、アービトレーション規則208を使用して、アービトレーション要求を処理し、アービトレーション決定を生成し、これは、参照符号216で示されているように、上部可視資源マネージャ202へ送り返される。次に、上部可視資源マネージャ202は、アービトレーション決定にしたがって、上部可視資源210を適切なアプリケーションに割り振るように動作する。
【００２７】
１つの実施形態において、アプリケーション212は、特定のアプリケーションが、上部可視資源210に関して特権を与えられているかどうかを判断するグループＩＤをもつ。例えば、グループＩＤは、そのグループＩＤをもっている全てアプリケーションに当てはまる１組の権利と関係付けられている。権利の１つは、上部可視資源210に関するアプリケーションの特権状態を定めている。アプリケーションは、最初に、上部可視資源210へのアクセスを得ると、そのアプリケーションＩＤ、１つ以上のグループＩＤ、および上部可視資源210へのアクセスを望む理由を含む情報を(割り振り要求を介して)上部可視資源マネージャ202に与える。１つの実施形態において、グループＩＤは、それがアプリケーションＩＤから推測されることができるので、送られない。１つの実施形態において、上部可視資源210へのアクセスを望む理由は、幾つかの列挙されたタイプの１つから選択される。しかしながら、理由の組は、列挙されたリストに制限されず、グループＩＤまたは他の注文（custom）の理由と関係付けられることもできる。
【００２８】
アプリケーションが、そのグループＩＤから判断されるように、特権を与えられているときは、それは、何れのアプリケーションが上部可視資源210を取去ることができるかを制限し得る。例えば、アプリケーションは、上部可視資源210が譲渡されるアプリケーションを識別する譲渡リストを特定し得る。例えば、譲渡リスト内のアプリケーションは、それらのグループＩＤの１つ以上によって識別され得る。
【００２９】
別のアプリケーションが上部可視資源210へのアクセスを要求すると、上部可視資源マネージャ202は、現在の資源所有者に関する情報(所有者情報)と要求しているアプリケーションに関する情報(要求者情報)とを含むアービトレーション要求を生成する。アービトレーション要求の一部として、上部可視資源210の所有者および要求者の特権状態が、上部可視資源210を望む関係付けられた理由および譲渡リストと共に、資源アービタ206へ送られる。資源アービタ206へ送られる情報は、何か他のパラメータまたは基準も含み得る。例えば、資源アービタ206へ送られる情報は、ユーザの優先設定（preference）、現在のデバイスの動作モード、通信事業者の優先設定、または要求をアービトレートするのに使用され得る何か他のタイプの情報を含み得る。次に、資源アービタ206は、この情報を使用して、上部可視資源210がどのように割り振られるかを判断する。
【００３０】
１つの実施形態において、現在の上部可視資源210の所有者は、上部可視資源210に関するそのアプリケーションの優先順位を動的に変更し得る。例えば、上部可視資源210への最初のアクセスの後で、ここでは、他のアプリケーションがアクセスから制限されることがあり、アプリケーションはその譲渡リストを変更し、それによって、他のアプリケーションが上部可視資源210へのアクセスを得ることを可能にし得る。したがって、システムは、上部可視資源210を所有しているアプリケーションが、上部可視資源210を解放するか、または上部可視資源210を他のアプリケーションにとってよりアクセスし易くすることを可能にすることによって、融通性を与えるように動作する。
【００３１】
別の実施形態において、システムは、コールバック機構を与えて、アプリケーションがコールバック機能を登録することを可能にする。上部可視資源210の状態の変更があるとき、コールバック機能は、システムがアプリケーションに通知することを可能にする。例えば、上部可視資源210が空いているとき、または上部可視資源210が、それが別のアプリケーションに割り振られるために、使用中になるときに、コールバック機能を使用して、アプリケーションに通知することができる。したがって、システム200は、デバイスの上部可視資源210へのアクセスを特定のアプリケーションに割り振る動的なアプリケーション優先順位システムを与えるように動作する。
【００３２】
さらに動作環境の変更に適応するために、資源アービタ206およびアービトレーション規則208は、ネットワークエンティティからデバイスへダウンロードされ、それによって、サードパーティが、デバイス上で上部可視資源210がどのように割り振られるかについての入力をもつことを可能にし得る。例えば、１つの実施形態において、デバイスは、無線電話であり、資源アービタ206およびアービトレーション規則208は、全国的な遠隔通信の通信事業者ネットワークの一部であるネットワークサーバからデバイスへダウンロードされる。このように、遠隔通信の通信事業者は、デバイス上で上部可視資源210がアプリケーション間においてどのように割り振られるかについての入力を与えられ、それによって、デバイスによって与えられるユーザの経験を制御することができる。
【００３３】
図３は、アプリケーション優先順位システムの１つの実施形態を含むデバイス300の１つの実施形態を示している。デバイス300は、処理論理302、メモリ304、ディスプレイ論理306、キーパッド論理308、およびＩ／Ｏインターフェース310を含み、全ては、内部データバス312に結合されている。分かり易くするために、デバイス300上の上部可視資源332は、ディスプレイ論理306およびキーパッド論理308を含むと仮定する。アプリケーション優先順位システムの１つ以上の実施形態は、異なる構成をもつ他のデバイスに使用するのに適しており、異なる機能素子を使用して、上部可視資源332を定義することが可能であることに注意すべきである。
【００３４】
処理論理302は、ＣＰＵ、プロセッサ、ゲートアレイ、ディスクリートな論理、他のハードウェアまたはソフトウェア、あるいはその任意の組合せを含む。したがって、処理論理302は、通常、本明細書に記載されている機能を行う機械読出し可能命令を実行する論理を含む。例えば、命令は、コンピュータ読出し可能媒体、例えば、フロッピー（登録商標）ディスク、ＣＤ ＲＯＭ、フラッシュメモリ、またはインターフェース310を介してデバイス300とインターフェースする他のコンピュータ読出し可能媒体から、デバイス300へロードされ得る。別の実施形態において、命令は、ネットワーク資源、例えば、ネットワークサーバまたは何か他のタイプのネットワーク資源から、インターフェース310を介して、デバイス300へダウンロードされ得る。命令は、処理論理302によって実行されるとき、本明細書に記載されているアプリケーション優先順位システムの１つ以上の実施形態を与える。
【００３５】
メモリ304は、任意のタイプのＲＡＭ、ＲＯＭ、ハードディスク、フロッピー（登録商標）ディスク、フラッシュメモリ、または何か他のタイプのメモリ素子を含む。ディスプレイ論理306は、ディスプレイデバイス、例えば、ＣＲＴ、ＬＣＤ、または何か他のタイプのディスプレイデバイスを制御する論理を含む。キーパッド論理308は、ユーザ入力デバイス、例えば、キーパッド、ペン、ジョイスティック、または何か他のタイプのユーザ入力デバイスを制御して、ユーザ入力を受信する論理を含む。Ｉ／Ｏインターフェース310は、ハードウェア、ソフトウェア、またはその任意の組合せを含み、デバイス300が外部デバイスまたはシステムとインターフェースするのを可能にする。例えば、Ｉ／Ｏインターフェース310は、外部記憶システム、例えば、ディスクドライブまたは他のメモリデバイスにインターフェースする論理を含む。インターフェース310は、外部システム、例えば、ローカルコンピュータシステムにインターフェースする論理も含む。さらに加えて、インターフェースは、遠隔のコンピュータおよびサーバと通信することを可能にするデータネットワークとインターフェースする論理も含む。
【００３６】
デバイスの動作中に、処理論理302によって実行されるプログラム命令は、ランタイム環境314をアクティブにする。例えば、ランタイム環境は、ＢＲＥＷランタイム環境であり得る。処理論理302によって実行されるプログラム命令は、上部可視資源マネージャ318もアクティブにする。上部可視資源マネージャ318は、上部可視資源332へのアクセスを制御するように動作し、アプリケーションがディスプレイ資源306およびキーパッド資源308を制御するのを可能にする。したがって、上部可視資源マネージャ318は、上部可視資源332(ディスプレイ306およびキーパッド308)へのアクセスを制御し、アプリケーションが、デバイスのユーザと対話することを可能にするように動作する。
【００３７】
上部可視資源マネージャ318は、デバイス300上で実行しているアプリケーション(320、322、324、326)から上部可視資源332にアクセスする要求を受信する。アプリケーション(320、322、324、326)は、デバイス300上で実行するのに適した任意のタイプのアプリケーションであり得る。例えば、アプリケーションは、マルチメディアアプリケーション、カレンダアプリケーション、電子メールアプリケーション、音声処理アプリケーション、またはデバイス300上で実行されると、有益な特徴または機能、あるいはこの両者を与える何か他のタイプのアプリケーションであり得る。上部可視資源332の割り振りを容易にするために、上部可視資源マネージャ318は、メモリ304内に上部可視資源状態328を維持する。例えば、デバイス状態334は、デバイスの現在の動作モードを識別する。例えば、デバイスの動作モードは、アイドル、アプリケーションの実行、メッセージの受信、音声呼の処理、ゲームをすること、または何か他のタイプのデバイスの動作モードであり得る。
【００３８】
アプリケーション(320、322、324、326)は、デバイス300上で実行されるとき、上部可視資源332にアクセスする要求を、上部可視資源マネージャ318に提出する。上部可視資源332が現在割り振られていない場合は、上部可視資源332は、要求しているアプリケーションに容易に割り振られ得る。しかしながら、上部可視資源332が、現在、１つのアプリケーションに割り振られているときは、別のアプリケーションから上部可視資源332にアクセスする要求をアービトレートして、何れのアプリケーションが上部可視資源332を割り振られることになるかを判断する必要がある。
【００３９】
１つ以上の実施形態において、アプリケーション優先順位システムは、デバイス上で実行するアプリケーションの１つへの上部可視資源332の割り振りをアービトレートするように動作する。例えば、上部可視資源332がアプリケーションに現在割り振られているときは、上部可視資源マネージャ318は、アービトレーション要求を資源アービタ316に提出する。要求は、要求しているアプリケーションに関する情報(要求者情報)と、上部可視資源332の現在の所有者に関する情報(所有者情報)とを含む。例えば、上部可視資源332の現在の所有者に関する情報は、上部可視資源状態328に維持される。
【００４０】
１つの実施形態において、資源アービタ316は、メモリ304に記憶されているアービトレーション規則330にしたがって、アービトレーション要求を処理する。例えば、１つの実施形態では、アービトレーション規則330がネットワークサーバからデバイス300にダウンロードされ、その結果、ネットワークサーバは、資源要求がデバイス300においてどのようにアービトレートされるかについての入力を与えることができる。アービトレーション要求が資源アービタ316によって処理され、アービトレーション決定を生成し、これは上部可視資源マネージャ318へ戻される。次に、上部可視資源マネージャ318は、アービトレーション決定に基づいて資源を割り振る。
【００４１】
デバイス300において示されているアプリケーション優先順位システムの記述は、１つのみの実施形態を示していること、および本明細書に記載されている機能を与えるのに、他の構成が可能であることに注意すべきである。例えば、デバイス300の機能素子は、記載されている実施形態の範囲内で、組合され、並べ換えられ、変更され、追加され、または削除されることが可能である。
【００４２】
資源アービタ
１つ以上の実施形態において、資源アービタ316は、中央意思決定部（central decision maker）として動作し、上部可視資源332が、要求しているアプリケーション(またはオブジェクト)へ譲り渡されることができるかどうかを判断する。１つの実施形態において、資源アービタ316は、製造中にデバイス上にインストールされる。別の実施形態では、資源アービタ316は、ネットワークサーバによってカスタマイズされることができ、希望に応じて更新または置換され得るダウンロード可能なモジュールとして実施される。例えば、デバイスが無線電話である実施において、資源アービタ316はカスタマイズされ、通信ＯＥＭ／通信事業者によって動作されるネットワークサーバから電話へダウンロードされ得る。１つの資源アービタ316が、デバイス上の上部可視資源332に対する要求をアービトレートするのに使用されるのが好ましい。
【００４３】
１つの実施形態において、資源アービタ316は、上部可視資源マネージャ318から種々の情報を送られ、その情報は、アービトレーション決定を生成するのに使用される。１つの実施形態において、資源アービタ316に送られる情報は、要求しているアプリケーションに関する情報(要求者情報)と、上部可視資源332の現在の所有者に関する情報(所有者情報)とを含む。しかしながら、他の実施形態では、追加のタイプの情報が資源アービタ316に送られ、この追加情報は、デバイスの状態情報334、ユーザの優先設定情報、サードパーティの優先設定情報、およびアービトレーション決定を生成するために資源アービタによって使用されるのに適した何か他のタイプの情報を含む。
【００４４】
さらに加えて、１つの実施形態において、アービトレーションプロセスを修正して、異なる時間期間中における異なる情報項目または動作条件を使用して、アービトレーション決定を与えるように、資源アービタ316は拡張可能である。次に、アービトレーション決定を生成するために、資源アービタ316に送られ得る要求者および所有者の情報の簡潔な説明を表すが、資源アービタに送られ得る情報は、示されたリストに制限されない。
【００４５】
Ａ．資源所有者情報
１．所有者のクラス識別子(class identifier, CLSID)およびインスタンスポインタ
２．ＴＶＲの獲得理由
３．譲渡制御情報
ａ．譲渡識別子リスト
ｂ．リストカウント(−１＝全て、０＝無し、そうでなければ、カウント)
Ｂ．要求者情報
１．要求者のクラス識別子(CLSID)およびインスタンスポインタ
２．ＴＶＲの獲得理由
３．譲渡制御情報
ａ．譲渡識別子リスト
ｂ．リストカウント(−１＝全て、０＝無し、そうでなければ、カウント)
図４は、デバイスにおいて使用するアプリケーション優先順位システムの１つの実施形態を与える方法400の１つの実施形態を示している。分かり易くするために、方法400の動作は、図３に示されているデバイス300に関連して記載される。例えば、方法400は、１つの実施形態において、上部可視資源332(ディスプレイ306およびキーパッド308)が、アプリケーション320、322、324および326の１つにどのように動的に割り振られるかを示す。
【００４６】
ブロック402において、第１のアプリケーションは、資源割り振り要求を、上部可視資源332と関係付けられた上部可視資源マネージャ318へ送る。例えば、アプリケーション320は、資源割り振り要求を上部可視資源マネージャ318へ送り、上部可視資源332の割り振りを要求する。割り振り要求は、アプリケーション320に関する情報を含み、例えば、割り振り要求は、上述の要求者情報を含む。
【００４７】
ブロック404において、上部可視資源マネージャ318は、上部可視資源332を第１のアプリケーションに割り振る。例えば、上部可視資源マネージャ318は、上部可視資源をアプリケーション320に割り振る。さらに加えて、上部可視資源マネージャ318は、割り振り要求に与えられている要求者情報を使用して、上述の所有者情報を更新する。次に、資源所有者情報は、上部可視資源状態328に記憶される。
【００４８】
ブロック406において、第２のアプリケーションは、資源割り振り要求を、上部可視資源332と関係付けられた上部可視資源マネージャ318へ送る。例えば、アプリケーション322は、資源割り振り要求を上部可視資源マネージャ318へ送り、上部可視資源332の割り振りを要求する。割り振り要求は、アプリケーション322に関する情報を含み、例えば、割り振り要求は、上述の要求者情報を含む。
【００４９】
ブロック408において、上部可視資源マネージャ318は、アービトレーション要求を資源アービタ316へ送る。例えば、上部可視資源マネージャ318は、アービトレーション要求を資源アービタ316へ送る。アービトレーション要求は、上部可視資源状態328からの資源所有者情報と、割り振り要求からの要求者情報とを含む。したがって、アービトレーション要求は、資源アービタ316に、上部可視資源332の現在の所有者および現在の要求者に関する情報を与える。
【００５０】
ブロック410において、資源アービタ316は、何れのアプリケーションが上部可視資源332を割り振られるべきかを示すアービトレーション決定を生成する。例えば、資源アービタ316は、アービトレーション決定を生成し、決定を上部可視資源マネージャ318へ送信する。資源アービタ316は、メモリ304に記憶されているアービトレーション規則330に基づいて、アービトレーション決定を生成する。１つの実施形態において、資源アービタ316およびアービトレーション規則330は、ＯＥＭ／通信事業者のようなサードパーティからダウンロードされ、これは、更新を可能にし、さらに加えて、サードパーティが、デバイス上で上部可視資源332がどのように割り振られるかを決定する機構も与える。資源アービタ316がアービトレーション決定をどのように生成するかについてのより詳しい記述は、この文書の別のセクションに与えられている。
【００５１】
ブロック412において、上部可視マネージャ318は、アービトレーション決定に基づいて上部可視資源332を割り振る。例えば、上部可視資源マネージャ318は、アービトレーション決定に基づいて、上部可視資源332を、第１のアプリケーション320または第２のアプリケーション322の何れかに割り振る。さらに加えて、上部可視資源マネージャ318は、上部可視資源状態328を新しい資源所有者情報で更新する。
【００５２】
したがって、方法400は、デバイスにおいて使用する動的なアプリケーション優先順位システムの１つの実施形態を与えるように働く。方法400が１つのみの実施形態を示していること、および記載されている実施形態の範囲内で、並べ換え、変更、追加、または削除することが可能であることに注意すべきである。例えば、アプリケーションは、上部可視資源マネージャ318にコールバック機能を登録することが可能であり、その結果、希望に応じて、上部可視資源332の状態またはアベイラビリテイ、あるいはこの両者をアプリケーションに与えることができる。したがって、追加の補助機能が、アプリケーション優先順位システムによって与えられること、およびこれらの補助機能が、記載された実施形態の範囲内であることが可能である。
【００５３】
図５は、アプリケーション優先順位システムの１つの実施形態を与えるために、資源アービタを動作する方法500の１つの実施形態を示している。分かり易くするために、方法500の動作は、図３に示されているデバイス300に関連して記載される。したがって、１つの実施形態において、方法500は、図３に示されている資源アービタ316によって実施される。
【００５４】
ブロック502において、アービトレーション要求は、資源アービタ316において受信される。例えば、上部可視資源マネージャ318は、アービトレーション要求を資源アービタ316に提出する。アービトレーション要求は、上部可視資源332の現在の所有者に関する情報(所有者情報)と、上部可視資源332へのアクセスを要求しているアプリケーションに関する情報(要求者情報)とを含む。
【００５５】
ブロック504において、上部可視資源332の現在の所有者によって与えられる譲渡リストに対して、試験が行われ、現在の所有者が上部可視資源332の制御を何れのアプリケーションへ譲渡するかを決定する。譲渡リストは、アービトレーション要求に与えられている現在の所有者情報の一部である。譲渡リストが、あらゆるアプリケーションが上部可視資源332を得ることができると明示しているとき、方法は、ブロック510へ進む。譲渡リストが、何れのアプリケーションも上部可視資源332の制御を得ることができないか、または特定のアプリケーションのみが得ることができると明示しているときは、方法は、ブロック506へ進む。
【００５６】
ブロック506において、要求しているアプリケーションが、譲渡リストにおいて識別されるアプリケーションの１つであるかどうかを判断するために、試験が行われる。例えば、譲渡リストは、選択されたアプリケーションを識別するのに使用されることができるグループＩＤまたはアプリケーションＩＤを明示している。要求しているアプリケーションの識別子が、譲渡リストに明示されているとき、方法は、ブロック510へ進む。要求しているアプリケーションの識別子が、譲渡リストに明示されていないときは、方法は、ブロック508へ進む。
【００５７】
ブロック508において、上部可視資源332の現在の所有者を維持するアービトレーション決定が行われる。現在の所有者が特権を与えられていて、要求しているアプリケーションが、譲渡リスト上にないので、要求しているアプリケーションによる上部可視資源332の割り振りに対する要求は、否認される。次に、方法は、ブロック512へ進み、ここでは、アービトレーション決定が上部可視資源マネージャ318へ戻される。
【００５８】
ブロック510において、要求しているアプリケーションからのアービトレーション要求は、選択された基準に基づいてアービトレートされる。例えば、１つの実施形態において、要求は、アービトレーション規則330に基づいてアービトレートされる。事実上あらゆる基準を使用して、何れのアプリケーションが上部可視資源332を割り振られるかを判断することができる。例えば、アービトレーションは、各アプリケーションが上部可視資源332、デバイスの動作モード、ユーザの優先設定、通信事業者(サードパーティ)の優先設定、または何か他の基準を望む理由に基づき得る。
【００５９】
実施例
次に、デバイスにおける上部可視資源を割り振るように動作するアプリケーション優先順位システムの１つの実施形態の実施例を記載する。１つの実施形態において、システムは、上部可視資源マネージャを含み、これは、資源のアクセスを制御する、ＢＲＥＷアプリケーションを含むアプリケーション(オブジェクト)のための手段を与える。さらに加えて、上部可視資源マネージャは、オブジェクトによる上部可視資源の獲得および解放を調整および管理し、上部可視資源の状況が変わるとき、登録されたオブジェクトに通知するように動作する。
【００６０】
１つの実施形態において、ＯＥＭまたは通信事業者は、デバイスの現在の状況を仮定して、新しいアプリケーションを開始するために、現在のアプリケーションを一時停止するか、背景モードに置くことができるかどうかを判断するのに使用される１組のアービトレーション規則を実施する。例えば、デバイスが、音声呼中の無線電話であるとき、ＯＥＭは、別のアプリケーションが上部可視資源へのアクセスを得て、それによって呼を中断するのを妨げるアービトレーション規則を定め得る。
【００６１】
図６は、アプリケーション優先順位システムの１つ以上の実施形態で使用するのに適した資源制御アーキテクチャ600の１つの実施形態を示している。管理されている各上部可視資源602において、オブジェクトを制御する資源インターフェース604、アクセスを制御するＩＲｅｓｏｕｒｃｅＣｔｌインターフェース606、および上部可視資源マネージャ608がある。さらに加えて、資源アービタ610が与えられ、上部可視資源602へのアクセスをアービトレートする。
【００６２】
資源インターフェース604のインスタンスが生成されるとき、それは、ＩＲｅｓｏｕｒｃｅＣｔｌインスタンス606を含む。ＩＲｅｓｏｕｒｃｅＣｔｌインスタンス606は、上部可視資源マネージャ608と対話し、基となる上部可視資源602を獲得および解放する。１つのアプリケーションが、上部可視資源602の制御をもっているときでも、別のアプリケーションが、既存のアービトレーション規則に基づいて、同じ上部可視資源602をいつでも制御できることに注意すべきである。
【００６３】
図７は、動的なアービトレーションシステムの１つ以上の実施形態にしたがって、デバイスにおける上部可視資源が２つのアプリケーション間においてどのように割り振られるかを記載している割り振り例を例示するダイアグラム700を示している。例えば、ダイアグラム700は、資源アービタ702、上部可視資源マネージャ704、アプリケーションＡ706、資源インスタンスＡ708、アプリケーションＢ712、および資源インスタンスＢ714を含む種々のデバイスエンティティ間の相互作用を示している。
【００６４】
割り振り例の始めに、アプリケーションＡ706は、資源要求714を資源インスタンスＢ708へ発行し、上部可視資源マネージャ704によって管理される上部可視デバイス資源へのアクセスを得る。参照番号716によって示されているように、資源要求は、資源インスタンスＢ708から上部可視資源マネージャ704へ送られる。この時点において、上部可視資源が割り振られていないと仮定すると、上部可視資源マネージャ704は上部可視資源をアプリケーションＡ706に割り振り、“成功”の表示を発行し、これをアプリケーションＡ706へ戻す。これは、参照番号718および720で示されている。この時点において、上部可視資源は、アプリケーションＡ706によって獲得されている。さらに加えて、アプリケーションＡ706は資源インスタンスＡ708にコールバック機能を登録し、参照番号722で示されているように、上部可視資源に関する任意の状態の変化についての情報を受信する。
【００６５】
その後で、アプリケーションＢ710は、資源要求724を資源インスタンスＢ712へ発行し、上部可視資源マネージャ704によって管理されている上部可視資源を獲得する。資源要求は、参照番号726によって示されているように、資源インスタンスＢ712から、上部可視資源マネージャ704へ送られる。アプリケーションＢ710からの要求により、上部可視資源マネージャ704は、参照番号728で示されているように、資源アービタ702からのアービトレーションを要求する。資源アービタ702は、本明細書に記載されている実施形態にしたがって、アービトレーション要求を処理する。資源アービタ702は、参照番号730、732、および734によって示されているように、上部可視資源がアプリケーションＢ710に割り振られるのに成功したことを示すアービトレーション結果を与える。したがって、この時点において、アプリケーションＢ710は上部可視資源を獲得している。アプリケーションＡ706は、(参照番号722において)状態変更通知に登録しているので、上部可視資源の状態が変わったという理由で、アプリケーションＡ706は、コールバック機能736によって、警告を受ける。したがって、コールバックに応答して、アプリケーションＡ706は、“状態取得（get status）”コマンド738を発行し、上部可視資源が別のアプリケーションに割り振られ、現在使用中であるという通知を戻す。
【００６６】
資源アービタのカスタマイジング
資源アービタは、上部可視資源が、要求しているオブジェクトへ譲り渡されることができるかどうかを判断する中央意思決定部である。資源アービタモジュールは、ＯＥＭ／通信事業者によってカスタマイズ可能であり、クラス識別子(ＣＬＳＩＤ)を使用して、ダウンロード可能なモジュールとして実施され得る。１つの実施形態において、上部可視資源に対する１つの資源アービタ(ＩＲｅｓＡｒｂｉｔｅｒ)の実施がある。１つの実施形態において、資源アービタ方法、すなわちＩＲｅｓＡｒｂｉｔｅｒ ＣｏｎｆｉｒｍＡｃｑｕｉｒｅは、アービトレーション決定を生成するために、既に記載した資源所有者情報および要求者情報を送られる。
【００６７】
現在の所有者が、譲渡ＣＬＳＩＤリストを指定し、要求者が、譲渡リストに明示されているアプリケーションＩＤまたはグループＩＤのリストにおいて識別されるとき、または(特権を与えられていない所有者の場合のように)所有者が、あらゆるＩＤを許可するときは、資源アービタは、与えられた情報の残りに基づいて所有権を転送する(最も簡単な実施では、要求を承認する)ことを決定し得る。要求者が、譲渡ＣＬＳＩＤリスト上で識別されないときは、資源アービタは要求を否認する。次に、ＢＲＥＷランタイム環境を実行するデバイスにおいて使用するのに適した資源アービタのＣｏｎｆｉｒｍＡｃｑｕｉｒｅ方法のサンプルの実施を示す。
【表１】
2008500645.tif 000003
【表２】
2008500645.tif 000004
【００６８】
したがって、デバイスにおいて使用するアプリケーション優先順位システムの１つ以上の実施形態が、本明細書に示され、記載されたが、その意図または本質的な特性から逸脱することなく、実施形態に対して種々の変更を行うことができることが分かるであろう。したがって、本明細書における開示および記述は、特許請求項に記載されている本発明の範囲を制限することではなく、例示することを意図している。
【図面の簡単な説明】
【００６９】
【図１】デバイス上の上部可視資源を割り振るように動作する動的なアプリケーション優先順位システムの１つの実施形態を示す図。
【図２】デバイス、例えば、図１に示されているデバイスにおいて上部可視資源を割り振るアプリケーション優先順位システムの１つの実施形態の機能図。
【図３】アプリケーション優先順位システムの１つの実施形態を含むデバイスの１つの実施形態を示す図。
【図４】デバイスにおいて使用するアプリケーション優先順位システムの１つの実施形態を与える方法の１つの実施形態を示す図。
【図５】アプリケーション優先順位システムの１つの実施形態を与えるために、資源アービタを動作する方法の１つの実施形態を示す図。
【図６】アプリケーション優先順位システムの１つ以上の実施形態で使用するのに適した資源制御アーキテクチャの１つの実施形態を示す図。
【図７】アプリケーション優先順位システムの１つ以上の実施形態にしたがって、デバイスにおける上部可視資源が２つのアプリケーション間でどのように割り振られるかの例を示す図。
【符号の説明】
【００７０】
100,200・・・アプリケーション優先順位システム、102・・・無線端末、106,110・・・通信チャネル、116・・・アプリケーション、120・・・経路、300・・・デバイス、312・・・内部データバス、332・・・上部可視資源、400,500・・・方法、600・・・資源制御アーキテクチャ、700・・・割り振り例を表すダイアグラム。
【図１】
2008500645.tif 000005
【図２】
2008500645.tif 000006
【図３】
2008500645.tif 000007
【図４】
2008500645.tif 000008
【図５】
2008500645.tif 000009
【図６】
2008500645.tif 000010
【図７】
2008500645.tif 000011