説明

デバイス上におけるレジストリベースの自動インストール及びコンポーネントハンドリングのためのシステム

【課題】デバイス上のコンポーネントを自動的に処理する方法を提供する。
【解決手段】コンポーネントは、選択されたコンポーネントタイプを持っている。方法は、デバイス200上にコンポーネントハンドラをインストールすることを含む。前記コンポーネントハンドラは、選択されたコンポーネントタイプを持つコンポーネントを処理するように動作する。方法はまた、アクションリストを解析し、デバイスによって処理されるコンポーネントを識別するコンポーネント/アクションペアを取得することと、コンポーネントをデバイスにダウンロードすることとを含む。方法はまた、前記選択されたコンポーネントタイプをコンポーネントが持っていることを判定することと、前記選択されたコンポーネントタイプを用いてコンポーネントハンドラを起動し、コンポーネントを処理することとを含む。

【発明の詳細な説明】
【関連出願への相互参照】
【0001】
本出願は、2002年12月20日に出願され"AUTO-INSTALL"と題された係属中の米国仮出願60/435,486号の優先権の利益を主張する。この出願は、全ての目的のためにその全体を参照することにより組み込まれる。
【0002】
本出願はまた、2002年12月20日に出願され"REGISTRY-BASED AUTO INSTALL COMPONENT HANDLING"と題された係属中の米国仮出願60/435,828号の優先権の利益を主張する。この出願は、全ての目的のためにその全体を参照することにより組み込まれる。
【技術分野】
【0003】
本発明は一般に、デバイス上のコンポーネントを処理することに関し、特に、デバイス上におけるレジストリベースの自動インストール及びコンポーネントハンドリングのためのシステムに関する。
【背景技術】
【0004】
データネットワークは、様々なネットワーク可能なデバイスを用いて、多数のユーザが互いに通信するための方法を提供する。例えば、無線通信ネットワークでは、様々なネットワーク可能なポータブル電話によって、ユーザは、極めて遠い距離を介して互いに通信することが可能となる。ネットワーク可能なデバイスは、一般に、このデバイスがどのように動作するか、そして究極的には、ネットワーク全体の性能がどのように良くなるのかを制御するインストールされた様々なコンポーネントを用いて設定される。
【0005】
ある環境では、ネットワークオペレータは、ネットワーク可能なデバイスの設定を、アップグレード、インストール、削除、すなわち変更することを望んでいる。例えば、システムソフトウェアが改善されると、ネットワークオペレータは、このネットワークをより効率的に動作させるために、ネットワーク内の全てのデバイスにインストールされた新たなコンポーネントを持ちたいと思う。例えば、ネットワークオペレータは、デバイス上にアプリケーションソフトウェア、バイナリ実行可能な、あるいはその他の情報をインストールし、サービス改善又はアップグレードを提供したいと思うかもしれない。別の状況では、ネットワークオペレータは、特定の種類のデバイスの必要性に基づいて、企業アプリケーション又はその他のデバイスアップグレードアプリケーションをインストールすることを望むかもしれない。更に、もしも現在インストールされているシステムコンポーネントに問題が存在すると判定された場合、デバイスユーザがこの問題が存在することを気付いているかに関わらず、ネットワークオペレータは、この問題を修復するために、アップグレードされたコンポーネントをインストールしたいと思うであろう。例えば、もしもユーザがマルチメディアコンテンツを見ることを可能にする現在のデバイスコンポーネントに問題が存在するのであれば、ネットワークオペレータは、このコンポーネントを、問題の無い新たなコンポーネントに交換するために、ネットワーク上の全てのデバイスをアップグレードしたいと思うであろう。
【0006】
デバイスにおけるコンポーネントをインストール、削除、すなわち変更するために使用される一つの技術は、デバイスユーザが、このデバイスを修理センタに返還することを待つことである。一旦修理センタに行くと、このデバイスが最も最近のコンポーネントバージョンを持つことができるように、修理要員が、このデバイスを再プログラムすることができる。あいにく、もしもデバイスユーザがこの問題に気がつかなければ、あるいは、彼らがこのデバイスをどうやって使用するのかにこの問題が現在影響を与えていなければ、デバイスユーザはこのデバイスを返還することを忘れるかもしれないのでこの処理は非常に非効率的である。デバイスの全てがアップグレードされる訳ではないので、幾つかのデバイスは、最良の性能を与えるように動作しないであろうし、ネットワークの全体動作が低下するかもしれない。
【0007】
従って、必要なことは、コンポーネントの選択されたバージョンがインストールされ、動作されるようにデバイス上のコンポーネントを自動的に処理するためのシステムである。このシステムは、比較的短い時間内で、多数のデバイスにおけるコンポーネントを処理できるように十分に柔軟であるべきである。これによって、ネットワーク上で動作する全てのデバイスに対して高速なアップグレードを提供し、もって、最良のデバイス性能と、増大したネットワーク効率との結果が得られる。
【発明の概要】
【0008】
一つ又は複数の実施例では、デバイス上のコンポーネントを自動的に処理するためにシステムが提供される。例えば、一つの実施例では、このシステムによって、デバイスは、ダウンロードサーバ上で利用可能なバージョン化されたアクションリストを用いて、デバイスにおけるコンポーネントのインストール、更新、削除、起動、ディセーブル、リコール、すなわちこのコンポーネントの状態の変更が可能となる。
【0009】
処理されることが可能なコンポーネントは、例えばアプリケーション、実行可能な設定情報、ユーザインタフェース設定、ランダムデータ、又はその他の種類の情報など、任意の種類でありうる。
【0010】
このシステムの動作中、デバイスは、ダウンロードサーバ上のアクションリストのバージョンを、デバイスによって処理された最後のアクションリストに関連付けられた格納されたバージョンと比較する。もしも2つのバージョンが異なれば、デバイスは、サーバから新たなアクションリストをダウンロードし、このアクションリスト内の各項目を解析し、デバイス上のコンポーネントを処理する。一つの実施例では、このアクションリスト内の各項目は、コンポーネント識別子をアクション識別子に関連付けているコンポーネント/アクションペアを備えている。
【0011】
このコンポーネント識別子は、コンポーネントの種類と、その現在のバージョンとを識別する。このアクション識別子は、識別されたコンポーネントに関連付けられたデバイスによって実行されるアクションを識別する。
【0012】
一つの実施例では、デバイスは、アクションリスト内のコンポーネント/アクションペアのそれぞれを解析し、識別されたコンポーネントのために実行されるアクションが必要があるかを判定する。このデバイスは、アクションリスト内のコンポーネントのバージョンを、デバイスに格納されたコンポーネントバージョンと比較する。もしも2つのコンポーネントバージョンが同一であれば、デバイスは、コンポーネント/アクションペアに関して何のアクションもとらない。もしもこれらバージョンが異なるのであれば、デバイスは、アクションリスト内のコンポーネントに関連付けられたアクションを実行し、デバイス上のコンポーネントの状態を変更する。例えば、もしもこのアクションが、識別されたコンポーネントをインストールすることであれば、デバイスはこのコンポーネント、及びその他の必要な情報をダウンロードサーバからダウンロードし、このコンポーネントをデバイス上にインストールする。従って、このデバイスは、新たなコンポーネントバージョンにおける指定された動作のみを実行するアクションリストを介して進む。
【0013】
特定のコンポーネント/アクションペアを処理した後、このデバイスに格納されたコンポーネントバージョンは、アクションリスト内に与えられた新たなコンポーネントバージョンを用いて更新される。アクションリスト全体が処理されたとき、現在のアクションリストの将来における処理を再び行うことを回避するために、デバイスは、アクションリストのバージョン識別子を記録する。従って、ダウンロードサーバ上で利用可能なアクションリストのバージョンが、デバイス上に格納されたバージョンと異なるまで、このデバイスは、別のアクションリストを処理しないであろう。
【0014】
一つの実施例では、デバイスがダウンロードサーバと通信するときにその都度、デバイスが、アクションリストのバージョンをチェックする。例えば、デバイスの電源がオンにされた後、又は定期的な間隔において、デバイスがダウンロードサーバと通信する。このシステムは、何のユーザ相互作用もなく、あるいは制限されたユーザ相互作用もなく、コンポーネントがデバイス上で処理されるようになるメカニズムを提供する。例えば、一つの実施例では、電源投入時にコンポーネントがデバイスにプッシュされ、「サイレントインストール」を効果的に提供する。別の実施例では、ユーザのオプション時にコンポーネント処理となるようにユーザインタフェースが提供される。従って、このシステムは、コンポーネント処理が強制されたり、促進されたり、要求されたり、オプションとされるようにする。
【0015】
このシステムは、単一デバイス上、又は多数のデバイス上のコンポーネントを処理するために使用される。例えば、多数のデバイスが、アクションリストサーバにアクセスすることができるデータネットワークでは、単一のアクションリストが全てのデバイスに配信され、各デバイスは、どのコンポーネントがそのデバイスのために処理されるのかを判定することができる。別の実施例では、サーバは、異なるデバイス種類のために使用することが可能な複数のアクションリストを提供する。例えば、異なる種類のデバイスは、異なるアクションリストにアクセスし、そのデバイス種類に対するコンポーネントを処理する。従って、このシステムが多数のデバイスに対してグローバルな更新を与えることが可能である。ここでは、各デバイスがアクションリストサーバにコンタクトするので、時間又は日の期間にわたって更新が実行される。従って、このシステムが多数のデバイスに対してグローバルな更新を与えることが可能である。ここでは、各デバイスがアクションリストサーバにコンタクトするので、時間又は日の期間にわたって更新が実行される。
【0016】
一つの実施例では、このシステムは、コンポーネントタイプに基づいて、コンポーネントのためにデバイスサポートを追加する能力を提供する。コンポーネント「ハンドラ」が提供される。これは、特定のコンポーネントタイプ(すなわち、特定の「多目的インターネットメイル拡張」(MIME:Multipurpose Internet Mail Extension)タイプ)を持つコンポーネントを処理するために設計されている。ハンドラは、アプリケーション又は実行ファイルであり、コンポーネントのデータの保存及び収容を行う。例えば、このシステムは、コンポーネントハンドラのダウンロード及びインストールをするように動作し、選択されたMIMEタイプを持つコンポーネントを処理するように設計されている。一つの実施例では、コンポーネントハンドラは、デバイスのオペレーティングシステムレジストリ内に登録される。一旦ハンドラがインストールされると、このシステムは、選択されたタイプを持つコンポーネントをダウンロードし、コンポーネントを処理するために、関連付けられたハンドラが起動されるであろう。従って、コンポーネントハンドラは、オペレーティングシステムレイヤ内に埋め込まれず、OEMによって提供されるか、あるいは、第三者によって提供されるか、及び/又は動的にダウンロード/アップグレードされる。これによって、新たなコンポーネントタイプが、製造後のデバイス上で処理されるようになるのみならず、新たなメカニズムが、新たなコンポーネントタイプを取り扱うことができるようになる。
【0017】
一つの実施例では、デバイス上のコンポーネントを自動的に処理するための方法が提供される。ここで、このコンポーネントは、選択されたコンポーネントタイプを持っている。この方法は、デバイス上にコンポーネントハンドラをインストールすることを備える。ここで、コンポーネントハンドラは、選択されたコンポーネントタイプを持つコンポーネントを処理するように動作する。この方法はまた、アクションリストを解析し、デバイスによって処理されるコンポーネントを識別するコンポーネント/アクションペアを取得することと、コンポーネントをデバイスにダウンロードすることとを備える。この方法はまた、選択されたコンポーネントタイプをコンポーネントが持っていることを判定することと、選択されたコンポーネントタイプを用いて、コンポーネントを処理するためのコンポーネントハンドラを起動することとを備える。
【0018】
一つの実施例では、デバイス上のコンポーネントを自動的に処理するための装置が提供される。ここで、コンポーネントは、選択されたコンポーネントタイプを持つ。この装置は、デバイス上にコンポーネントハンドラをインストールするロジックを備える。ここで、コンポーネントハンドラは、選択されたコンポーネントタイプを持つコンポーネントを処理するように動作する。この装置はまた、アクションリストを解析し、デバイスによって処理されるコンポーネントを識別するコンポーネント/アクションペアを取得するロジックと、コンポーネントをデバイスにダウンロードするロジックとを備える。この装置はまた、選択されたコンポーネントタイプをコンポーネントが持っていることを判定するロジックと、選択されたコンポーネントタイプを用い、コンポーネントを処理するコンポーネントハンドラを起動するロジックとを備える。
【0019】
一つの実施例では、デバイス上のコンポーネントを自動的に処理するための装置が提供される。ここで、コンポーネントは、選択されたコンポーネントタイプを持っている。この装置は、デバイス上にコンポーネントハンドラをインストールする手段を備えている。ここでコンポーネントハンドラは、選択されたコンポーネントタイプを持つコンポーネントを処理するように動作する。この装置はまた、アクションリストを解析し、デバイスによって処理されるコンポーネントを識別するコンポーネント/アクションペアを取得する手段と、デバイスにコンポーネントをダウンロードする手段とを備える。この装置はまた、選択されたコンポーネントタイプをコンポーネントが持っていることを判定する手段と、選択されたコンポーネントタイプを用い、コンポーネントを処理するコンポーネントハンドラを起動する手段とを備える。
【0020】
一つの実施例では、コンピュータ読取可能媒体が提供される。この媒体は、デバイス内の処理ロジックによって実行されたとき、デバイス上のコンポーネントを自動的に処理するように動作する命令を備えている。ここで、コンポーネントは、選択されたコンポーネントタイプを持つ。このコンピュータ読取可能媒体は、デバイス上にコンポーネントハンドラをインストールする命令を備えている。ここで、コンポーネントハンドラは、選択されたコンポーネントタイプを持つコンポーネントを処理するように動作する。このコンピュータ読取可能媒体はまた、アクションリストを解析し、デバイスによって処理されるコンポーネントを識別するコンポーネント/アクションペアを取得する命令と、デバイスにコンポーネントをダウンロードする命令とを備えている。このコンピュータ読取可能媒体はまた、選択されたコンポーネントタイプをコンポーネントが持っていることを判定する命令と、選択されたコンポーネントタイプを用い、コンポーネントを処理するコンポーネントハンドラを起動する命令とを備える。
【0021】
本発明のその他の局面、利点、及び特徴は、以下の図面の簡単な説明、本発明の詳細な説明、及び特許請求の範囲の説明のレビューの後に明らかになるであろう。
【図面の簡単な説明】
【0022】
【図1】図1は、デバイス上のコンポーネントを自動的に処理するシステムの一つの実施例を示す。
【図2】図2は、自動的にコンポーネントを処理するシステムの一つの実施例を含むデバイスの機能ブロック図である。
【図3】図3は、デバイス上のコンポーネントを自動的に処理するシステムを提供するデバイスを動作させる方法の一つの実施例を示す。
【図4】図4は、特定のコンポーネントタイプで動作するように設計されたコンポーネントハンドラを処理するデバイスを動作させる方法の一つの実施例を示す。
【図5】図5は、特定のコンポーネントタイプで動作するように設計されたコンポーネントハンドラを処理するデバイスを動作させる方法の一つの実施例を示す。
【図6】図6は、デバイス上のコンポーネントを自動的に処理するシステムの一つの実施例の動作の間に、ダウンロードサーバとデバイスとの間で起こるトランザクションを示す。
【図7】図7は、デバイス上のコンポーネントを自動的に処理するシステムで使用されるアクションリストの一つの実施例を示す。
【発明を実施するための形態】
【0023】
ここに記載された実施例の前述した局面及び付随する利点は、添付図面と連携してなされた以下に示す詳細記述を参照することによって容易に明らかになるであろう。
【0024】
以下に示す詳細記述は、デバイス上のコンポーネントを自動的に処理するシステムの実施例を示す。このシステムは、限定される訳ではないが、通信ネットワーク、例えばインターネットのような公衆ネットワーク、例えば仮想プライベートネットワークのようなプライベートネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、長距離ネットワーク、又はその他任意の種類のデータネットワークを含む有線又は無線の任意のネットワークにおいて使用されるのに適している。またこのシステムは、コンポーネントをダウンロード及びインストールすることが可能な任意の種類のデバイスと共に使用するのに適している。例えば、このシステムは、オフィスコンピュータ、ノートブックコンピュータ、及び例えばポータブル電話、PDA、又はコンポーネントを受信及びインストールすることが可能なその他任意の種類のデバイスのようなハンドヘルドデバイスとともに使用することに適している。
【0025】
一つ又は複数の実施例では、このシステムは、例えばデバイス特有のリソースのために一般化されたコールを提供することによって、デバイスの動作を簡単にするために使用されるデバイス上で実行しているランタイム環境と相互作用する。そのようなランタイム環境は、カリフォルニア州、サンディエゴのQUALCOMM社によって開発されたBinary Runtime Environment for Wireless(登録商標)((BREW(登録商標))ソフトウェアプラットフォームである。以下の記述において、このデバイスは、例えばBREWソフトウェアプラットフォームのようなランタイム環境を実行していると仮定される。しかしながら、このシステムの一つ又は複数の実施例は、種々の有線及び無線デバイス上のコンポーネントを自動的に処理する他の種類のランタイム環境とともに使用されるのに適している。
【0026】
図1は、デバイス上のコンポーネントを自動的に処理するシステム100の一つの実施例を示す。このシステム100は、サーバ102、データネットワーク104、及びデバイス106を備えている。データネットワーク104は、サーバ102とデバイス106との間で情報が通信されるようにする任意の種類の有線又は無線ネットワークでありうる。例えば、ネットワーク104は、通信ネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、又は例えばインターネットのような公衆ネットワークでありうる。
【0027】
一つ又は複数の実施例では、このシステムは、デバイス106上のコンポーネントを処理するために動作する。
【0028】
例えば、サーバ102は、コンポーネント112、アクションリスト110、アクションリストバージョン識別子108、及びコンポーネントハンドラ120を含む。このバージョン識別子108は、アクションリスト110の現在のバージョンを識別する。アクションリスト110は、コンポーネント/アクションペアを備えている。ここで、各ペアは、コンポーネント識別子とアクション識別子とを備える。このコンポーネント識別子は、特定のコンポーネントを識別するユニークな項目IDである。コンポーネント識別子の一部は、コンポーネントのバージョンを識別するために使用される。例えば、コンポーネント識別子は、ビットのシリーズである。このビットの一部は、コンポーネントのバージョンを識別するために使用される。アクション識別子は、例えばインストール、更新、削除、リコール、ディセーブル、又はデバイス106がこの識別されたコンポーネントに関連して実行するその他のアクションのような特定のアクションを識別する。
【0029】
コンポーネントハンドラ120は、選択されたコンポーネントタイプを処理するように設計されている。例えば、一つの実施例では、コンポーネントハンドラは、選択されたMIMEタイプを持つコンポーネントを処理するように設計される。コンポーネントハンドラは、デバイス106上にインストールすることができ、このデバイスのオペレーティングシステムレジストリ内に登録されることが可能である。一旦インストールされると、コンポーネントハンドラは、対応するフォーマットタイプを持つコンポーネントを処理するために起動される。
【0030】
動作の間、サーバ102は、アクションリストバージョン識別子108を、ネットワーク104を経由してデバイス106に送信する。例えば、デバイス106は、電源投入シーケンスの間、サーバ102とコンタクトし、サーバ102は、アクションリストバージョン識別子108をデバイス106に送信することによって応答する。別の実施例では、新たなバージョンのアクションリストが、ダウンロード可能なとき、サーバ102が、デバイス106にコンタクトする。例えば、一つの実施例では、新たなアクションリストが利用可能になったとき、アクションリストバージョン識別子108を含むサーバ102が、デバイス106にメッセージを送る。デバイス106は、バージョン識別子108を、デバイス106によって処理される最後のアクションリストのバージョンを表す格納されたバージョン識別子114と比較する。もしもダウンロードされたバージョン108と、格納されたバージョン114とが等しければ、デバイスは、デバイス上の既存のコンポーネント116に対して如何なるインストールもまた変更も行う必要がない。しかしながら、もしもこのダウンロードされたバージョン108が、格納されたバージョン114と異なるのであれば、デバイス106は、追加のコンポーネント処理が必要であることを知る。例えば、デバイス106上にインストールされる必要がある新たなコンポーネントがサーバ102に位置しているかもしれない。
【0031】
一旦デバイス106がアクションリストの新たなバージョンが存在していることを検出すると、新たなアクションリスト110を取得するためにサーバ102に要求を送信する。サーバ102は、アクションリスト110をデバイス106に送信することによって応答する。そしてデバイス106は、アクションリスト110を処理し、このアクションリスト110内で識別されたコンポーネントのインストール、更新、削除、あるいは処理を行う。
【0032】
このデバイス106は、各コンポーネント/アクションペアによって、各コンポーネントに関してアクションを行うか否かを判定することによってこのアクションリスト110を処理するように動作する。例えば、もしもコンポーネントがインストール又は更新される必要があるとアクションリストが特定すれば、デバイス106は、コンポーネント112及びその他任意の必要なファイルをサーバ102からダウンロードし、それをデバイス106にインストールする。もしもコンポーネントが削除される必要があるとアクションリスト110が特定すれば、デバイス106はこのコンポーネントを削除する。従って、アクションリスト110内の各コンポーネント/アクションペアは、例えばこの識別されたコンポーネントを自動的にインストール、更新、削除するためにデバイス106によって処理される。アクションリストは任意の長さであり、このアクションリストを処理した後、デバイス106は、格納されたアクションリストバージョン識別子114を更新し、最も最近に処理されたアクションリストのバージョンを格納する。
【0033】
一つの実施例では、デバイス106が、アクションリスト110内のコンポーネント/アクションペアを解析し、特定のコンポーネントに関連付けられたアクションを講じる必要があるか否かを判定する。例えば、デバイス106は、インストールされたコンポーネントの最も新しいバージョンを既に持っているかもしれない。もしそうであれば、このデバイスは、そのコンポーネントを再インストールする必要はない。一つの実施例では、アクションリスト110内のコンポーネント識別子は、コンポーネントのバージョンを判定するための情報を含んでいる。例えば、このバージョン情報は、コンポーネント識別子の終わりに追加することができる。デバイス106は、格納されたコンポーネントバージョン118を、アクションリスト110内にダウンロードされたコンポーネントバージョンと比較する。もしも、格納されたコンポーネントバージョンと、ダウンロードされたコンポーネントバージョンとが同一であれば、デバイスは、そのコンポーネントに関していかなるアクションをとる必要もない。しかしながら、もしも、格納されたコンポーネントバージョンと、ダウンロードされたコンポーネントバージョンとが同一ではないのであれば、デバイス106は、アクションリスト内のそのコンポーネントに関連付けられたアクションを実行する。従って、デバイス106は、新たなバージョンのコンポーネントを単に処理するだけなので、システムは非常に効率的である。
【0034】
一つの実施例では、アクションリストが、デバイス106上にインストールされる特定のコンポーネントハンドラ120を識別するコンポーネント/アクションペアを備えている。コンポーネントハンドラ120は、特定のコンポーネントタイプを持つコンポーネントを処理するために設計されたプログラムである。例えば、コンポーネントタイプは、ファイルのフォーマットを識別するMIMEタイプである。一つの実施例では、コンポーネントタイプは、コンポーネントファイルの初めに追加されたキャラクタのストリングとして与えられる。本質的に、コンポーネントタイプは、コンポーネントのデータが取り扱われる方法を定義する。
【0035】
コンポーネント/アクションペアを解析することに応答して、デバイスは、サーバ102からコンポーネントハンドラ120をダウンロードし、デバイスのインストールされたコンポーネントハンドラ122の一部としてコンポーネントハンドラ120をインストールする。コンポーネントハンドラ120がデバイス106内にインストールされたとき、それは、デバイスのオペレーティングシステムレジストリ内に登録される。これによって、対応するコンポーネントタイプを持つコンポーネントを処理するために起動されるようになる。例えば、オペレーティングシステムレジストリは、例えばURL、文書、画像、又はその他のデータファイルのようなあるコンポーネントタイプを取り扱うためにどのハンドラが用いられるのかを識別する。
【0036】
コンポーネントハンドラ120がデバイス106上にインストールされた後、コンポーネントハンドラ120は、選択されたコンポーネントタイプを持つ任意のコンポーネントを処理するように動作する。一つの実施例では、このシステムが、未だにインストールされていないコンポーネントを取り扱うために、コンポーネントハンドラをインストールするように動作する。例えば、このシステムは、デバイス上のコンポーネントを自動的に処理する以下に示すステップを実行する。
1.デバイス上にコンポーネントハンドラをインストールし、特定のコンポーネントタイプを処理する。
2.特定のコンポーネントタイプを持つデバイスにデータコンポーネントをダウンロードする。
3.コンポーネントハンドラを用いてデータコンポーネントを処理する。
【0037】
従って、このシステムは、コンポーネントの新たなバージョンが、サーバ102からダウンロードされ、デバイス106上で処理されるように動作する。コンポーネントは、選択されたコンポーネントタイプを処理するように動作するコンポーネントハンドラを備えている。デバイス上の新たなコンポーネントタイプを処理するために、新たなコンポーネントハンドラが先ずオペレーティングシステムレジストリ内にインストールされ、その後、新たなコンポーネントを処理するために起動される。
【0038】
図2は、デバイス200の機能図を示す。これは、デバイス200上のコンポーネントを自動的に処理するシステムの一つの実施例を含む。このデバイスは、処理ロジック208と、比較ロジック206と、機能ロジック214と、バージョン更新ロジック224と、格納されたアクションリストバージョン識別子(ALVI)204と、コンポーネントバージョン識別子(CVI)212と、インストールされたコンポーネントハンドラ230と、インストールされたコンポーネント226とを備える。デバイス200によって提供されたロジック及び機能は、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって実現することができる。例えば、一つ又は複数の実施例では、図2に示す機能要素は、CPUと、プロセッサと、ゲートアレイと、ハードウェアロジックと、メモリ要素と、仮想マシンと、ソフトウェアと、あるいはハードウェア及びソフトウェアの任意の組み合わせとを備える。従って、処理ロジック208は一般に、機械読取可能命令を実行し、ここに記載した機能を実現するロジックを備えている。デバイス200は、単に一つの実施例を示しており、デバイス要素の変更、追加、又は再配置は、本発明の範囲から逸脱することなくなされることが留意されるべきである。
【0039】
図3は、例えばデバイス200のようなデバイスを動作させ、デバイス200上のコンポーネントを自動的に処理するためのシステムを提供する方法300の一つの実施例を示す。明確さの目的のために、この方法300は、図2に示すデバイス200に関連して記載される。デバイス200が、図1に示すように、データネットワークを経由してダウンロードサーバと安全に通信していることが更に仮定される。
【0040】
ブロック302では、デバイスが、ダウンロードサーバからアクションリストバージョン識別子を取得する。例えば、デバイスが、データネットワークを経由してダウンロードサーバと通信し、202に示すように、ダウンロードサーバが、アクションリストバージョン識別子をデバイスに送信する。
【0041】
ブロック304では、テストが行われ、ダウンロードされたアクションリストバージョン識別子が、デバイスによって処理される最後のアクションリストに関連している格納されたバージョン識別子と異なっているかが判定される。例えば、このダウンロードされたバージョン識別子202と、格納されたバージョン識別子204とが比較ロジック206に入力される。比較ロジック206は、これら2つの識別子を比較し、これらが等価であるかを判定する。もしもこれら2つの識別子が等価であれば、本方法はブロック302に戻り、別の機会に、新たなバージョンのアクションリストを取得する。もしもこれら2つのバージョン識別子が異なれば(Diff.)、本方法はブロック306に進む。
【0042】
ブロック306では、デバイスが、ダウンロードサーバからアクションリストを検索する。例えば、アクションリスト210は、サーバからデータネットワークを経由して処理ロジック208にダウンロードされる。
【0043】
ブロック308では、アクションリスト内の第1のコンポーネント/アクションペアを解析することによってデバイスが、このアクションリストの処理を開始する。例えば、処理ロジック208は、ダウンロードされたアクションリスト210を処理してコンポーネント/アクションペアを解析するように動作する。
【0044】
ブロック310では、テストが行われ、必要であれば、現在処理されているコンポーネント/アクションペアのために、何のアクションが必要であるかが判定される。一つの実施例では、デバイスは、ブロック312に進むことによって、このアクションを自動的に実行するように動作する。
【0045】
しかしながら、これは、デバイス上に再インストールされている既存のコンポーネントという結果になるかもしれない。別の実施例では、コンポーネントのバージョンがチェックされ、アクションが必要であるかが判定される。例えば、このアクションが、コンポーネントを「インストール」することであれば、このコンポーネントのバージョンがチェックされ、このデバイスが、現在インストールされているコンポーネントのバージョンを持っているかが確認される。従って、本方法は、デバイス上に既にインストールされたコンポーネントを再インストールすることを回避するよう動作する。例えば、処理ロジック208は、格納されたコンポーネントバージョン識別子212を検索し、それを、アクションリスト内で識別されたコンポーネントのバージョンと比較する。一つの実施例では、コンポーネントのバージョンが、アクションリスト内に提供されたコンポーネント識別子に組み込まれる。もしもこれら2つのコンポーネントバージョンが同一であれば、そのコンポーネントに関して更なるアクションは必要とされず、本方法はブロック416に進む。もしもこれら2つのコンポーネントバージョンが異なれば、処理ロジック208は、コンポーネントに関連付けられたアクションを実施するように動作し、本方法はブロック312に進む。
【0046】
ブロック312では、現在のコンポーネント/アクションペア内のコンポーネントに関連付けられたアクションが実行され、識別されたコンポーネントの状態が変更される。例えば、処理ロジック208は、アクションロジック214を制御し、識別されたコンポーネントのインストール、更新、削除、起動、ディセーブル、リコール、すなわちこのコンポーネントの状態の変更のアクションを実行するように動作する。例えば、ソフトリコールは、コンポーネントがデバイスから削除されたが、関連付けられたデータ及び/又はライセンス情報が除去されない場合に実行されうる。例えば、もしもこのアクションが、コンポーネントをインストール又は更新するものであれば、処理ロジック208が、データネットワークを経由してダウンロードサーバからコンポーネント222をダウンロード(又は更新)するように動作する。このダウンロードされたコンポーネントは、インストールされたコンポーネント226としてインストールされる。処理ロジック208は、あらゆる種類のインストール又は更新処理を実施し、ダウンロードされたコンポーネント222を、インストールされたコンポーネント226としてインストール又は更新する。もしもこのアクションが、コンポーネントを削除することであれば、処理ロジック208は、削除ロジック220を制御して、インストールされたコンポーネント226から、識別されたコンポーネントを削除する。
【0047】
図2及び図3には示されていないが、例えばインストール、更新、削除、リコール、起動、非起動、すなわち、デバイス上のコンポーネントの状態の変更といった事実上いかなる種類のアクションであっても、コンポーネントに関して実行される。
【0048】
ブロック314では、コンポーネントバージョンリストが更新され、コンポーネントの新たなバージョンがインストール又は更新されたこと、あるいは、コンポーネントが削除されたことが反映される。例えば、処理ロジック208が、バージョン更新ロジック224を制御して、格納されたコンポーネントバージョン識別子212を、現在処理されているコンポーネントに関する新たな情報を用いて更新する。
【0049】
ブロック316では、テストが行われ、アクションリスト内のコンポーネント/アクションペアの全てが処理されたかが判定される。もしも全てのペアが処理されたならば、本方法はブロック320に進む。もしも全てのペアが処理されたわけではないのであれば、本方法はブロック318に進み、次のペアがブロック310における処理のためにアクセスされる。アクションリスト210は、任意の長さでありうるので、処理されるコンポーネント/アクションペアは任意の数存在する。
【0050】
ブロック320では、このデバイスで格納されたアクションリストバージョン識別子が更新される。例えば、処理ロジック208が、更新バージョンロジック224を制御して、格納されたアクションリストバージョン識別子204を、最も最近処理されたアクションリストに関連付けられた識別子を用いて更新する。従って、新たなバージョンのアクションリストが利用可能になるまで、このシステムは、別のアクションリストを処理するように動作することはない。
【0051】
一つの実施例では、デバイス上のコンポーネントを自動的に処理するシステムは、処理ロジック208によって実行されたときに、ここに記載された機能を提供するコンピュータ読取可能媒体に格納されたプログラム命令を備える。例えば、命令は、例えばフロッピー(登録商標)ディスク、CDROM、メモリカード、フラッシュメモリデバイス、RAM、ROM、又はデバイス200にインタフェースする任意の種類のメモリデバイスやコンピュータ読取可能媒体のようなコンピュータ読取可能媒体からデバイス200へとロードされる。別の実施例では、この命令は、データネットワークを経由してデバイス200にインタフェースするネットワークリソースからデバイス200へとロードされうる。この命令は、処理ロジック208によって実行されたとき、ここに記載したようなデバイス上のコンポーネントを自動的に処理するシステムの一つ又は複数の実施例を提供する。
【0052】
本方法300は、ほんの一つの実施例を示しており、本発明要素の変形、追加、再配置は、本発明の範囲を逸脱することなくなされることに留意されたい。
【0053】
図4は、特定のコンポーネントタイプについて動作するように設計されたコンポーネントハンドラを処理するデバイスを操作する方法400の一つの実施例を示す。明確さの目的のために、この方法400は、図2に示すデバイス200を参照して記述している。方法300は、上述したように、アクションリストをダウンロードし、コンポーネントを処理するために使用されるものと仮定される。方法400は更に、システムがどのようにして特定のコンポーネントタイプ上で動作するように設計されたコンポーネントハンドラであるコンポーネントを処理するように動作するのかを記載している。一つ又は複数の実施例では、以下に示す方法ステップが、プログラム命令の実行の間、処理ロジック208によって実行される。
【0054】
ブロック402では、システムが、ダウンロードされたアクションリストから取得されたコンポーネント/アクションペアを解析する。例えば、アクションリストは、図3のブロック306に関して記載されたように取得される。
【0055】
ブロック404では、テストが実行され、コンポーネント/アクションペアに関連して何れかのアクションを講じる必要があるかが判定される。例えば、コンポーネント/アクションペア内のコンポーネントのバージョンが、格納されたコンポーネントバージョンと比較され、もしも2つのバージョンが異なれば、識別されたコンポーネントに関連して、対応するアクションが講じられる。
【0056】
ブロック406では、幾つかのアクションが講じられると仮定して、テストが実行され、識別されたコンポーネントがコンポーネントハンドラであるかが判定される。コンポーネントハンドラは、選択されたコンポーネントタイプ上で動作するように設計されたプログラムである。もしもこのコンポーネントがコンポーネントハンドラであると判定されたのであれば、本方法はブロック408に進む。
【0057】
ブロック408では、識別されたコンポーネントハンドラが、デバイスにダウンロードされる。例えば、コンポーネントハンドラ228は、例えばサーバ102のようなサーバからダウンロードされる。
【0058】
ブロック410では、コンポーネントハンドラがデバイス上にインストールされる。例えば、コンポーネントハンドラは、デバイスのオペレーティングシステムレジストリ内にアプリケーションとして登録され、特定のコンポーネントタイプを持ったコンポーネント上で動作する。一つの実施例では、オペレーティングシステムのレジストリは、処理ロジック208の一部である。登録後、コンポーネントハンドラ228は、デバイス200上にインストールされたコンポーネントハンドラ230の一部となる。
【0059】
ブロック412では、インストールされたコンポーネントハンドラのバージョン識別子が、デバイス上に配置され格納されたコンポーネントバージョン識別子内で更新される。例えば、更新バージョンロジック224は、最近インストールされたコンポーネントハンドラ228のバージョンを用いて、この格納されたコンポーネントバージョン識別子212を更新する。本方法400は、その後、ブロック402に進み、次のコンポーネント/アクションペアを解析する。
【0060】
以降の記述では、ブロック402とブロック404は、デバイス上で処理されるコンポーネントを識別する次のコンポーネント/アクションペアを解析すると仮定されよう。
【0061】
ブロック406では、テストが実行され、識別されたコンポーネントがコンポーネントハンドラであるかが判定される。もしもこのコンポーネントがコンポーネントハンドラではないならば、本方法は、ブロック414に進む。
【0062】
ブロック414では、コンポーネントがデバイスにダウンロードされる。例えば、処理ロジック208がサーバからコンポーネント(一般に222で示す)をダウンロードする。
【0063】
ブロック416では、コンポーネントのフォーマットタイプが判定される。例えば、コンポーネント内の情報のフォーマット、及び/又はこの情報がどのように処理されるべきかを示すその他のフォーマットの選択されたMIMEタイプを持っている。
【0064】
ブロック418では、コンポーネントタイプに関連付けられたコンポーネントハンドラが、コンポーネントを処理するために起動される。例えば、オペレーティングシステムレジストリは、選択されたコンポーネントタイプを処理するためにどのコンポーネントハンドラが使用されるべきかを判定するために使用される。レジストリにより識別されたハンドラは、コンポーネントを処理するために起動される。例えば、処理ロジック208は、インストールされたコンポーネントハンドラ230のうちの一つを起動し、コンポーネントを処理する。
【0065】
ブロック420では、起動されたコンポーネントハンドラがコンポーネントを処理する。例えば、コンポーネントハンドラは、データをインストール、削除、更新、起動、マージする、すなわち、デバイス上のコンポーネントの状態を変更するために動作する。
【0066】
ブロック422では、デバイス上に格納されたコンポーネントバージョン識別子が、新たなコンポーネントバージョンを用いて更新される。例えば、更新バージョンロジック224は、デバイス上に格納されたコンポーネントバージョン識別子212を更新する。その後、本方法は、ブロック402において次のコンポーネント/アクションペアを処理するために進む。
【0067】
従って、本方法400は、ダウンロードされたコンポーネントを処理するために次に使用されるコンポーネントハンドラをダウンロード及びインストールするように動作する。ハンドラは、特定のコンポーネントタイプを処理するために設計され、インストールされたとき、デバイスのレジストリ内に登録される。特定のタイプを持っているコンポーネントが、デバイス上で処理されるとき、ハンドラを起動して、コンポーネント上の必要な処理を実行するためにレジストリが使用される。その後、デバイスにおけるコンポーネントバージョン識別子が更新される。
【0068】
別の実施例では、コンポーネントハンドラ228と、関連付けられたコンポーネントとが異なるアクションリストを用いてデバイス200にダウンロードされる。例えば、コンポーネントハンドラをダウンロードしインストールするために第一のアクションリストが使用され、このコンポーネントを処理するために第二のアクションリストが使用される。ここでは、前にインストールされたコンポーネントハンドラが、コンポーネントを処理する。
【0069】
別の実施例では、コンポーネントハンドラ228が、その他の任意のインストール技術を用いてデバイス200上にインストールされる。例えば、コンポーネントハンドラは、別々の送信を用いてダウンロードサーバからインストールされるか、あるいはこのコンポーネントハンドラは、ローカルなシステム又はデバイスからインストールされる。しかしながら、コンポーネントハンドラが一旦インストールされると、それはオペレーティングシステムレジストリ内に登録され、対応するコンポーネントを処理するために使用される。
【0070】
図5は、デバイスを起動して、特定のコンポーネントタイプ上で動作するように設計されたコンポーネントハンドラを処理する方法500の一つの実施例を示す。明確さの目的のために、本方法500は、図2に示すデバイス200に関連して説明される。本方法500は、上述したように、アクションリストをダウンロードし、コンポーネントを処理するために使用されることが仮定されよう。本方法500は更に、特定のコンポーネントタイプ上で動作するように設計されたコンポーネントハンドラを処理するためにシステムがどのように動作するのかを記述している。一つ又は複数の実施例では、プログラム命令の実行の間、以下に示す方法ステップが処理ロジック208によって実行される。
【0071】
ブロック502では、アクションリストが解析され、デバイス上で処理されるコンポーネント/アクションペアが取得される。ブロック504では、テストが実行され、識別されたコンポーネントに関連して、何れかのアクションが必要とされるのかが判定される。もしもデバイス上の識別されたコンポーネントの状態を変更するためにアクションが必要とされるのであれば、本方法はブロック506に進む。
【0072】
ブロック506では、コンポーネントを処理するために必要とされるコンポーネントハンドラが判定される。例えば、一つの実施例では、アクションリスト内のコンポーネント識別子は、コンポーネントのタイプを識別する「タイプ」識別子を含んでいる。処理ロジック208は、この「タイプ」表示を用いて、コンポーネントを処理するために必要なコンポーネントハンドラを判定する。
【0073】
ブロック508では、テストが実行され、必要とされるコンポーネントハンドラが、デバイス上に現在存在するのかが判定される。例えば、処理ロジック208は、インストールされたコンポーネントハンドラ226を検査し、必要なハンドラがインストールされたかを判定する。もしも必要なハンドラがインストールされているのであれば、本方法はブロック516に進む。もしも必要なハンドラがインストールされていないならば、本方法は、ブロック510に進む。
【0074】
ブロック510では、必要なコンポーネントハンドラがデバイスにダウンロードされる。例えば、一つの実施例では、処理ロジック208が、ダウンロードサーバからコンポーネントハンドラ228をダウンロードする。コンポーネントハンドラをデバイスにダウンロードするために任意の技法が使用される。
【0075】
ブロック512では、デバイス上にハンドラがインストールされる。例えば、ハンドラは、オペレーティングシステムレジストリ内に登録される。これによって、選択されたコンポーネントタイプを処理するために起動されることが可能となる。ブロック514では、ハンドラの格納されたバージョンが更新される。例えば、更新バージョンロジック224は、格納されたコンポーネントバージョン識別子212を更新する。
【0076】
本方法は、その後、ブロック516に進む。
【0077】
ブロック516では、識別されたコンポーネントがデバイスにダウンロードされる。例えば、処理ロジック208は、識別されたコンポーネントをダウンロードサーバからダウンロードする。
【0078】
ブロック518では、ダウンロードされたコンポーネントを処理するために、新たにインストールされたハンドラが起動される。例えば、処理ロジック208は、レジストリを用いて、コンポーネントを処理するためにインストールされたコンポーネントハンドラ230のうちのどれが起動されるべきかを判定する。結果として、新たにインストールされたコンポーネントハンドラが、コンポーネントを処理するために起動される。
【0079】
ブロック520では、デバイス上のコンポーネントを、コンポーネントハンドラが処理し、デバイス上のコンポーネントの状態を変更する。例えば、コンポーネントハンドラは、データをインストール、削除、更新、起動、マージする、すなわち、デバイス上のコンポーネントの状態を変更するために動作する。
【0080】
ブロック522では、コンポーネントの格納されたバージョン識別子が更新される。例えば、更新バージョンロジック224は、格納されたコンポーネントバージョン識別子212を更新する。本方法は、その後、ブロック502に進み、別のコンポーネント/アクションペアを解析する。
【0081】
従って、本方法500は、コンポーネントを処理するために必要なコンポーネントハンドラが利用可能であるかを判定するように動作する。もしもこのコンポーネントハンドラがデバイス上にインストールされていなければ、このハンドラがダウンロードサーバからダウンロードされ、インストールされ、その後、ダウンロードされたコンポーネントを処理するために使用される。このハンドラは、特定のコンポーネントタイプを処理するように設計され、インストールされると、デバイスのレジストリ内に登録される。特定のタイプを持つコンポーネントがデバイス上で処理されるべきであるとき、正しいハンドラを起動して、コンポーネントについて必要な処理を行うために、このレジストリが使用される。その後、デバイス上のコンポーネントバージョン識別子が更新される。
【0082】
図6は、トランザクション600を示す。このトランザクションは、デバイス上のコンポーネントを自動的に処理するシステムの一つの実施例の動作中、デバイスとダウンロードサーバとの間で起こる。例えば、トランザクション600は、図1に示すサーバ102とデバイス106との間で起こる。
【0083】
この自動処理の開始において、602に示すように、デバイス106が、サーバ102から、アクションリストの最新のバージョン識別子を要求する。このアクションリストは、識別された各コンポーネントに関してデバイスが実行すべきアクションを記述するコンポーネント/アクションペアを含む。このアクションリストは、定期的に変更又は更新され、アクションリストバージョン識別子は、このアクションリストの現在のバージョンを識別する。
【0084】
サーバ102は、604に示すように、現在のアクションリストのバージョン識別子を送信することによって、デバイス102からの要求に対して応答する。アクションリストバージョン識別子を受信した後に、デバイスは、この識別子を、格納されたアクションリストバージョン識別子と比較する。もしもこれら2つのバージョン識別子が等価であれば、デバイスは更なるアクションを講じない。もしもこれら2つのバージョン識別子が異なっていれば、606に示すように、デバイス102は、サーバ102からの新たなアクションリストを要求する。
【0085】
サーバ102は、608に示すように、新たなアクションリストを送信することによって、デバイス106からの要求に対して応答する。デバイス106は、このアクションリスト内の各コンポーネント/アクションペアを処理し、特定のコンポーネントのインストール、更新、削除、すなわち、特定のコンポーネントの状態の変更をするかしないかを判定する。もしも特定のコンポーネントが処理される必要であるとデバイス106が判定したのであれば、610に示すように、デバイス106が、サーバ102からコンポーネントを要求(または更新)する。
【0086】
サーバ102は、要求されたコンポーネントをデバイス106に送信することによってこの要求に応答する。デバイス106は、このコンポーネントを受信し、必要に応じてこのコンポーネントを処理する。コンポーネントは、デバイスがローカルに格納するコンポーネントバージョン識別子を持っている。そのコンポーネントバージョン識別子は、デバイスがコンポーネントを処理した後に更新される。デバイス106がアクションリスト全体を解析し、必要に応じてサーバ102から必要な全てのコンポーネントを検索した後に、デバイス106は、丁度処理されたアクションリストのバージョンを用いて、ローカルに格納されたアクションリストを更新する。従って、サーバ102からダウンロードされたアクションリストバージョン識別子が、格納された識別子と異なるまで、デバイス106は、サーバ102からの別のアクションリストを処理するであろう。
【0087】
図7は、デバイス上のコンポーネントを自動的に処理するシステムにおいて使用するためのアクションリスト700の一つの実施例を示す。アクションリスト700は、アクションリストバージョン識別子502を含む。アクションリストバージョン識別子702の後には、コンポーネント/アクションペア(704,706)が続く。例えば、コンポーネント/アクションペア704は、コンポーネント識別子と、対応するアクションとを含む。一つの実施例では、コンポーネント識別子はまた、コンポーネントバージョン識別子、及び「タイプ」識別子を含んでいる。コンポーネントのバージョンが、デバイス上に現在コンポーネントが存在しているか否かを判定することができるように、バージョン識別子が使用される。タイプ識別子は、コンポーネントのタイプを示し、どのハンドラがコンポーネントを処理するために必要であるかを判定するために使用される。このアクションは、インストール、更新、削除、すなわち、デバイス上のコンポーネントの状態を変更するための任意のタイプのアクションのうちの何れか一つでありうる。アクションリスト内の情報は、安全な送信及び/又は認証のための任意の適切なフォーマットを用いて符号化され、コンポーネント及びアクション識別子は、任意のタイプでありうる。一つの実施例では、ペア704は、デバイス上にインストールされるコンポーネントハンドラを識別し、ペア706は、コンポーネントハンドラによって処理されるコンポーネントを識別する。このように、デバイス上のコンポーネントを自動的に処理するシステムの一つ又は複数の実施例が説明され、記載されたが、これら精神又は本質的な特徴から逸脱することなく種々の変更が本実施例に対してなされるものと理解されよう。よって、この開示及び記述は、特許請求の範囲に記述された本発明の範囲を限定するものではなく、例示することを意図している。

【特許請求の範囲】
【請求項1】
デバイス上のコンポーネントを自動的に処理する方法であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記方法は、
前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラを前記デバイスにインストールすることと、
アクションリストを解析して、前記デバイスによって処理されるコンポーネントを識別するコンポーネント/アクションペアを取得することと、
前記コンポーネントを前記デバイスにダウンロードすることと、
前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定することと、
前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用することとを備える。
【請求項2】
請求項1に記載の方法において、前記インストールするステップは、
前記デバイスにおいて前記アクションリストを受信することと、
前記アクションリストを解析し、前記コンポーネントハンドラを識別する選択されたコンポーネント/アクションペアを取得することとを備える。
【請求項3】
請求項1に記載の方法において、前記インストールするステップは、
前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別することと、
前記コンポーネントハンドラを前記デバイスにダウンロードすることとを備える。
【請求項4】
請求項1に記載の方法において、前記インストールするステップは、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録することを備える。
【請求項5】
請求項1に記載の方法において、前記使用するステップは、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントの状態を変更することを備える。
【請求項6】
請求項1に記載の方法において、前記使用するステップは、前記コンポーネントハンドラを用いて前記デバイスに前記コンポーネントをインストールすることを備える。
【請求項7】
請求項1に記載の方法において、格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連するバージョン識別子を用いて更新することを更に備える。
【請求項8】
請求項1に記載の方法において、前記デバイスは無線デバイスである。
【請求項9】
デバイス上のコンポーネントを自動的に処理する装置であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記装置は、
前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラを前記デバイスにインストールするロジックと、
アクションリストを解析して、前記デバイスによって処理されるコンポーネントを識別するコンポーネント/アクションペアを取得するロジックと、
前記コンポーネントを前記デバイスにダウンロードするロジックと、
前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定するロジックと、
前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用するロジックとを備える。
【請求項10】
請求項9に記載の装置において、前記インストールするロジックは、
前記デバイスにおいて前記アクションリストを受信するロジックと、
前記アクションリストを解析し、前記コンポーネントハンドラを識別する選択されたコンポーネント/アクションペアを取得するロジックとを備える。
【請求項11】
請求項9に記載の装置において、前記インストールするロジックは、
前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別するロジックと、
前記コンポーネントハンドラを前記デバイスにダウンロードするロジックとを備える。
【請求項12】
請求項9に記載の装置において、前記インストールするロジックは、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録するロジックを備える。
【請求項13】
請求項9に記載の装置において、前記使用するロジックは、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントの状態を変更するロジックを備える。
【請求項14】
請求項9に記載の装置において、前記使用するロジックは、前記コンポーネントハンドラを用いて前記デバイスに前記コンポーネントをインストールするロジックを備える。
【請求項15】
請求項9に記載の装置において、格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連するバージョン識別子を用いて更新するロジックを更に備える。
【請求項16】
請求項9に記載の装置において、前記デバイスは無線デバイスである。
【請求項17】
デバイス上のコンポーネントを自動的に処理する装置であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記装置は、
前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラを前記デバイスにインストールする手段と、
アクションリストを解析して、前記デバイスによって処理されるコンポーネントを識別するコンポーネント/アクションペアを取得する手段と、
前記コンポーネントを前記デバイスにダウンロードする手段と、
前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定する手段と、
前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用する手段とを備える。
【請求項18】
請求項17に記載の装置において、前記インストールする手段は、
前記デバイスにおいて前記アクションリストを受信する手段と、
前記アクションリストを解析し、前記コンポーネントハンドラを識別する選択されたコンポーネント/アクションペアを取得する手段とを備える。
【請求項19】
請求項17に記載の装置において、前記インストールする手段は、
前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別する手段と、
前記コンポーネントハンドラを前記デバイスにダウンロードする手段とを備える。
【請求項20】
請求項17に記載の装置において、前記インストールする手段は、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録する手段を備える。
【請求項21】
請求項17に記載の装置において、前記使用する手段は、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントの状態を変更する手段を備える。
【請求項22】
請求項17に記載の装置において、前記使用する手段は、前記コンポーネントハンドラを用いて前記デバイスに前記コンポーネントをインストールする手段を備える。
【請求項23】
請求項17に記載の装置において、格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連するバージョン識別子を用いて更新する手段を更に備える。
【請求項24】
請求項17に記載の装置において、前記デバイスは無線デバイスである。
【請求項25】
デバイス内のロジックを処理することによって実行されると、前記デバイス上のコンポーネントを自動的に処理するように動作する命令を備えたコンピュータ読取可能媒体であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記コンピュータ読取可能媒体は、
前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラを前記デバイスにインストールする命令と、
アクションリストを解析して、前記デバイスによって処理されるコンポーネントを識別するコンポーネント/アクションペアを取得する命令と、
前記コンポーネントを前記デバイスにダウンロードする命令と、
前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定する命令と、
前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用する命令とを備える。
【請求項26】
請求項25に記載のコンピュータ読取可能媒体において、前記インストールする命令は、
前記デバイスにおいて前記アクションリストを受信する命令と、
前記アクションリストを解析し、前記コンポーネントハンドラを識別する選択されたコンポーネント/アクションペアを取得する命令とを備える。
【請求項27】
請求項25に記載のコンピュータ読取可能媒体において、前記インストールする命令は、
前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別する命令と、
前記コンポーネントハンドラを前記デバイスにダウンロードする命令とを備える。
【請求項28】
請求項25に記載のコンピュータ読取可能媒体において、前記インストールする命令は、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録する命令を備える。
【請求項29】
請求項25に記載のコンピュータ読取可能媒体において、前記使用する命令は、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントの状態を変更する命令を備える。
【請求項30】
請求項25に記載のコンピュータ読取可能媒体において、前記使用する命令は、前記コンポーネントハンドラを用いて前記デバイスに前記コンポーネントをインストールする命令を備える。
【請求項31】
請求項25に記載のコンピュータ読取可能媒体において、格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連するバージョン識別子を用いて更新する命令を更に備える。
【請求項32】
請求項25に記載のコンピュータ読取可能媒体において、前記デバイスは無線デバイスである。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−227912(P2011−227912A)
【公開日】平成23年11月10日(2011.11.10)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−123424(P2011−123424)
【出願日】平成23年6月1日(2011.6.1)
【分割の表示】特願2004−563940(P2004−563940)の分割
【原出願日】平成15年12月19日(2003.12.19)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】