"デバイス上のコンポーネントを自動的に処理する方法であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記方法は、前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラを前記デバイスにインストールすることと、アクションリストを解析して、前記デバイスによって処理されるコンポーネントを識別するコンポーネント/アクションペアを取得することと、前記コンポーネントを前記デバイスにダウンロードすることと、前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定することと、前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用することとを備える。請求項1に記載の方法において、前記インストールするステップは、前記デバイスにおいて前記アクションリストを受信することと、前記アクションリストを解析し、前記コンポーネントハンドラを識別する選択されたコンポーネント/アクションペアを取得することとを備える。請求項1に記載の方法において、前記インストールするステップは、前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別することと、前記コンポーネントハンドラを前記デバイスにダウンロードすることとを備える。請求項1に記載の方法において、前記インストールするステップは、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録することを備える。請求項1に記載の方法において、前記使用するステップは、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントの状態を変更することを備える。請求項1に記載の方法において、前記使用するステップは、前記コンポーネントハンドラを用いて前記デバイスに前記コンポーネントをインストールすることを備える。請求項1に記載の方法において、格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連するバージョン識別子を用いて更新することを更に備える。請求項1に記載の方法において、前記デバイスは無線デバイスである。デバイス上のコンポーネントを自動的に処理する装置であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記装置は、前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラを前記デバイスにインストールするロジックと、アクションリストを解析して、前記デバイスによって処理されるコンポーネントを識別するコンポーネント/アクションペアを取得するロジックと、前記コンポーネントを前記デバイスにダウンロードするロジックと、前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定するロジックと、前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用するロジックとを備える。請求項9に記載の装置において、前記インストールするロジックは、前記デバイスにおいて前記アクションリストを受信するロジックと、前記アクションリストを解析し、前記コンポーネントハンドラを識別する選択されたコンポーネント/アクションペアを取得するロジックとを備える。請求項9に記載の装置において、前記インストールするロジックは、前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別するロジックと、前記コンポーネントハンドラを前記デバイスにダウンロードするロジックとを備える。請求項9に記載の装置において、前記インストールするロジックは、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録するロジックを備える。請求項9に記載の装置において、前記使用するロジックは、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントの状態を変更するロジックを備える。請求項9に記載の装置において、前記使用するロジックは、前記コンポーネントハンドラを用いて前記デバイスに前記コンポーネントをインストールするロジックを備える。請求項9に記載の装置において、格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連するバージョン識別子を用いて更新するロジックを更に備える。請求項9に記載の装置において、前記デバイスは無線デバイスである。デバイス上のコンポーネントを自動的に処理する装置であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記装置は、前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラを前記デバイスにインストールする手段と、アクションリストを解析して、前記デバイスによって処理されるコンポーネントを識別するコンポーネント/アクションペアを取得する手段と、前記コンポーネントを前記デバイスにダウンロードする手段と、前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定する手段と、前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用する手段とを備える。請求項17に記載の装置において、前記インストールする手段は、前記デバイスにおいて前記アクションリストを受信する手段と、前記アクションリストを解析し、前記コンポーネントハンドラを識別する選択されたコンポーネント/アクションペアを取得する手段とを備える。請求項17に記載の装置において、前記インストールする手段は、前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別する手段と、前記コンポーネントハンドラを前記デバイスにダウンロードする手段とを備える。請求項17に記載の装置において、前記インストールする手段は、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録する手段を備える。請求項17に記載の装置において、前記使用する手段は、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントの状態を変更する手段を備える。請求項17に記載の装置において、前記使用する手段は、前記コンポーネントハンドラを用いて前記デバイスに前記コンポーネントをインストールする手段を備える。請求項17に記載の装置において、格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連するバージョン識別子を用いて更新する手段を更に備える。請求項17に記載の装置において、前記デバイスは無線デバイスである。デバイス内のロジックを処理することによって実行されると、前記デバイス上のコンポーネントを自動的に処理するように動作する命令を備えたコンピュータ読取可能媒体であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記コンピュータ読取可能媒体は、前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラを前記デバイスにインストールする命令と、アクションリストを解析して、前記デバイスによって処理されるコンポーネントを識別するコンポーネント/アクションペアを取得する命令と、前記コンポーネントを前記デバイスにダウンロードする命令と、前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定する命令と、前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用する命令とを備える。請求項25に記載のコンピュータ読取可能媒体において、前記インストールする命令は、前記デバイスにおいて前記アクションリストを受信する命令と、前記アクションリストを解析し、前記コンポーネントハンドラを識別する選択されたコンポーネント/アクションペアを取得する命令とを備える。請求項25に記載のコンピュータ読取可能媒体において、前記インストールする命令は、前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別する命令と、前記コンポーネントハンドラを前記デバイスにダウンロードする命令とを備える。請求項25に記載のコンピュータ読取可能媒体において、前記インストールする命令は、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録する命令を備える。請求項25に記載のコンピュータ読取可能媒体において、前記使用する命令は、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントの状態を変更する命令を備える。請求項25に記載のコンピュータ読取可能媒体において、前記使用する命令は、前記コンポーネントハンドラを用いて前記デバイスに前記コンポーネントをインストールする命令を備える。請求項25に記載のコンピュータ読取可能媒体において、格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連するバージョン識別子を用いて更新する命令を更に備える。請求項25に記載のコンピュータ読取可能媒体において、前記デバイスは無線デバイスである。ここに記載された実施例の前述した局面及び付随する利点は、添付図面と連携してなされた以下に示す詳細記述を参照することによって容易に明らかになるであろう。以下に示す詳細記述は、デバイス上のコンポーネントを自動的に処理するシステムの実施例を示す。このシステムは、限定される訳ではないが、通信ネットワーク、例えばインターネットのような公衆ネットワーク、例えば仮想プライベートネットワークのようなプライベートネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、長距離ネットワーク、又はその他任意の種類のデータネットワークを含む有線又は無線の任意のネットワークにおいて使用されるのに適している。またこのシステムは、コンポーネントをダウンロード及びインストールすることが可能な任意の種類のデバイスと共に使用するのに適している。例えば、このシステムは、オフィスコンピュータ、ノートブックコンピュータ、及び例えばポータブル電話、PDA、又はコンポーネントを受信及びインストールすることが可能なその他任意の種類のデバイスのようなハンドヘルドデバイスとともに使用することに適している。一つ又は複数の実施例では、このシステムは、例えばデバイス特有のリソースのために一般化されたコールを提供することによって、デバイスの動作を簡単にするために使用されるデバイス上で実行しているランタイム環境と相互作用する。そのようなランタイム環境は、カリフォルニア州、サンディエゴのQUALCOMM社によって開発されたBinaryRuntimeEnvironmentforWireless登録商標BREW登録商標ソフトウェアプラットフォームである。以下の記述において、このデバイスは、例えばBREWソフトウェアプラットフォームのようなランタイム環境を実行していると仮定される。しかしながら、このシステムの一つ又は複数の実施例は、種々の有線及び無線デバイス上のコンポーネントを自動的に処理する他の種類のランタイム環境とともに使用されるのに適している。図1は、デバイス上のコンポーネントを自動的に処理するシステム100の一つの実施例を示す。このシステム100は、サーバ102、データネットワーク104、及びデバイス106を備えている。データネットワーク104は、サーバ102とデバイス106との間で情報が通信されるようにする任意の種類の有線又は無線ネットワークでありうる。例えば、ネットワーク104は、通信ネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、又は例えばインターネットのような公衆ネットワークでありうる。一つ又は複数の実施例では、このシステムは、デバイス106上のコンポーネントを処理するために動作する。例えば、サーバ102は、コンポーネント112、アクションリスト110、アクションリストバージョン識別子108、及びコンポーネントハンドラ120を含む。このバージョン識別子108は、アクションリスト110の現在のバージョンを識別する。アクションリスト110は、コンポーネント/アクションペアを備えている。ここで、各ペアは、コンポーネント識別子とアクション識別子とを備える。このコンポーネント識別子は、特定のコンポーネントを識別するユニークな項目IDである。コンポーネント識別子の一部は、コンポーネントのバージョンを識別するために使用される。例えば、コンポーネント識別子は、ビットのシリーズである。このビットの一部は、コンポーネントのバージョンを識別するために使用される。アクション識別子は、例えばインストール、更新、削除、リコール、ディセーブル、又はデバイス106がこの識別されたコンポーネントに関連して実行するその他のアクションのような特定のアクションを識別する。コンポーネントハンドラ120は、選択されたコンポーネントタイプを処理するように設計されている。例えば、一つの実施例では、コンポーネントハンドラは、選択されたMIMEタイプを持つコンポーネントを処理するように設計される。コンポーネントハンドラは、デバイス106上にインストールすることができ、このデバイスのオペレーティングシステムレジストリ内に登録されることが可能である。一旦インストールされると、コンポーネントハンドラは、対応するフォーマットタイプを持つコンポーネントを処理するために起動される。動作の間、サーバ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に位置しているかもしれない。一旦デバイス106がアクションリストの新たなバージョンが存在していることを検出すると、新たなアクションリスト110を取得するためにサーバ102に要求を送信する。サーバ102は、アクションリスト110をデバイス106に送信することによって応答する。そしてデバイス106は、アクションリスト110を処理し、このアクションリスト110内で識別されたコンポーネントのインストール、更新、削除、あるいは処理を行う。このデバイス106は、各コンポーネント/アクションペアによって、各コンポーネントに関してアクションを行うか否かを判定することによってこのアクションリスト110を処理するように動作する。例えば、もしもコンポーネントがインストール又は更新される必要があるとアクションリストが特定すれば、デバイス106は、コンポーネント112及びその他任意の必要なファイルをサーバ102からダウンロードし、それをデバイス106にインストールする。もしもコンポーネントが削除される必要があるとアクションリスト110が特定すれば、デバイス106はこのコンポーネントを削除する。従って、アクションリスト110内の各コンポーネント/アクションペアは、例えばこの識別されたコンポーネントを自動的にインストール、更新、削除するためにデバイス106によって処理される。アクションリストは任意の長さであり、このアクションリストを処理した後、デバイス106は、格納されたアクションリストバージョン識別子114を更新し、最も最近に処理されたアクションリストのバージョンを格納する。一つの実施例では、デバイス106が、アクションリスト110内のコンポーネント/アクションペアを解析し、特定のコンポーネントに関連付けられたアクションを講じる必要があるか否かを判定する。例えば、デバイス106は、インストールされたコンポーネントの最も新しいバージョンを既に持っているかもしれない。もしそうであれば、このデバイスは、そのコンポーネントを再インストールする必要はない。一つの実施例では、アクションリスト110内のコンポーネント識別子は、コンポーネントのバージョンを判定するための情報を含んでいる。例えば、このバージョン情報は、コンポーネント識別子の終わりに追加することができる。デバイス106は、格納されたコンポーネントバージョン118を、アクションリスト110内にダウンロードされたコンポーネントバージョンと比較する。もしも、格納されたコンポーネントバージョンと、ダウンロードされたコンポーネントバージョンとが同一であれば、デバイスは、そのコンポーネントに関していかなるアクションをとる必要もない。しかしながら、もしも、格納されたコンポーネントバージョンと、ダウンロードされたコンポーネントバージョンとが同一ではないのであれば、デバイス106は、アクションリスト内のそのコンポーネントに関連付けられたアクションを実行する。従って、デバイス106は、新たなバージョンのコンポーネントを単に処理するだけなので、システムは非常に効率的である。一つの実施例では、アクションリストが、デバイス106上にインストールされる特定のコンポーネントハンドラ120を識別するコンポーネント/アクションペアを備えている。コンポーネントハンドラ120は、特定のコンポーネントタイプを持つコンポーネントを処理するために設計されたプログラムである。例えば、コンポーネントタイプは、ファイルのフォーマットを識別するMIMEタイプである。一つの実施例では、コンポーネントタイプは、コンポーネントファイルの初めに追加されたキャラクタのストリングとして与えられる。本質的に、コンポーネントタイプは、コンポーネントのデータが取り扱われる方法を定義する。コンポーネント/アクションペアを解析することに応答して、デバイスは、サーバ102からコンポーネントハンドラ120をダウンロードし、デバイスのインストールされたコンポーネントハンドラ122の一部としてコンポーネントハンドラ120をインストールする。コンポーネントハンドラ120がデバイス106内にインストールされたとき、それは、デバイスのオペレーティングシステムレジストリ内に登録される。これによって、対応するコンポーネントタイプを持つコンポーネントを処理するために起動されるようになる。例えば、オペレーティングシステムレジストリは、例えばURL、文書、画像、又はその他のデータファイルのようなあるコンポーネントタイプを取り扱うためにどのハンドラが用いられるのかを識別する。コンポーネントハンドラ120がデバイス106上にインストールされた後、コンポーネントハンドラ120は、選択されたコンポーネントタイプを持つ任意のコンポーネントを処理するように動作する。一つの実施例では、このシステムが、未だにインストールされていないコンポーネントを取り扱うために、コンポーネントハンドラをインストールするように動作する。例えば、このシステムは、デバイス上のコンポーネントを自動的に処理する以下に示すステップを実行する。1.デバイス上にコンポーネントハンドラをインストールし、特定のコンポーネントタイプを処理する。2.特定のコンポーネントタイプを持つデバイスにデータコンポーネントをダウンロードする。3.コンポーネントハンドラを用いてデータコンポーネントを処理する。従って、このシステムは、コンポーネントの新たなバージョンが、サーバ102からダウンロードされ、デバイス106上で処理されるように動作する。コンポーネントは、選択されたコンポーネントタイプを処理するように動作するコンポーネントハンドラを備えている。デバイス上の新たなコンポーネントタイプを処理するために、新たなコンポーネントハンドラが先ずオペレーティングシステムレジストリ内にインストールされ、その後、新たなコンポーネントを処理するために起動される。図2は、デバイス200の機能図を示す。これは、デバイス200上のコンポーネントを自動的に処理するシステムの一つの実施例を含む。このデバイスは、処理ロジック208と、比較ロジック206と、機能ロジック214と、バージョン更新ロジック224と、格納されたアクションリストバージョン識別子ALVI204と、コンポーネントバージョン識別子CVI212と、インストールされたコンポーネントハンドラ230と、インストールされたコンポーネント226とを備える。デバイス200によって提供されたロジック及び機能は、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって実現することができる。例えば、一つ又は複数の実施例では、図2に示す機能要素は、CPUと、プロセッサと、ゲートアレイと、ハードウェアロジックと、メモリ要素と、仮想マシンと、ソフトウェアと、あるいはハードウェア及びソフトウェアの任意の組み合わせとを備える。従って、処理ロジック208は一般に、機械読取可能命令を実行し、ここに記載した機能を実現するロジックを備えている。デバイス200は、単に一つの実施例を示しており、デバイス要素の変更、追加、又は再配置は、本発明の範囲から逸脱することなくなされることが留意されるべきである。図3は、例えばデバイス200のようなデバイスを動作させ、デバイス200上のコンポーネントを自動的に処理するためのシステムを提供する方法300の一つの実施例を示す。明確さの目的のために、この方法300は、図2に示すデバイス200に関連して記載される。デバイス200が、図1に示すように、データネットワークを経由してダウンロードサーバと安全に通信していることが更に仮定される。ブロック302では、デバイスが、ダウンロードサーバからアクションリストバージョン識別子を取得する。例えば、デバイスが、データネットワークを経由してダウンロードサーバと通信し、202に示すように、ダウンロードサーバが、アクションリストバージョン識別子をデバイスに送信する。ブロック304では、テストが行われ、ダウンロードされたアクションリストバージョン識別子が、デバイスによって処理される最後のアクションリストに関連している格納されたバージョン識別子と異なっているかが判定される。例えば、このダウンロードされたバージョン識別子202と、格納されたバージョン識別子204とが比較ロジック206に入力される。比較ロジック206は、これら2つの識別子を比較し、これらが等価であるかを判定する。もしもこれら2つの識別子が等価であれば、本方法はブロック302に戻り、別の機会に、新たなバージョンのアクションリストを取得する。もしもこれら2つのバージョン識別子が異なればDiff.、本方法はブロック306に進む。ブロック306では、デバイスが、ダウンロードサーバからアクションリストを検索する。例えば、アクションリスト210は、サーバからデータネットワークを経由して処理ロジック208にダウンロードされる。ブロック308では、アクションリスト内の第1のコンポーネント/アクションペアを解析することによってデバイスが、このアクションリストの処理を開始する。例えば、処理ロジック208は、ダウンロードされたアクションリスト210を処理してコンポーネント/アクションペアを解析するように動作する。ブロック310では、テストが行われ、必要であれば、現在処理されているコンポーネント/アクションペアのために、何のアクションが必要であるかが判定される。一つの実施例では、デバイスは、ブロック312に進むことによって、このアクションを自動的に実行するように動作する。しかしながら、これは、デバイス上に再インストールされている既存のコンポーネントという結果になるかもしれない。別の実施例では、コンポーネントのバージョンがチェックされ、アクションが必要であるかが判定される。例えば、このアクションが、コンポーネントをインストールすることであれば、このコンポーネントのバージョンがチェックされ、このデバイスが、現在インストールされているコンポーネントのバージョンを持っているかが確認される。従って、本方法は、デバイス上に既にインストールされたコンポーネントを再インストールすることを回避するよう動作する。例えば、処理ロジック208は、格納されたコンポーネントバージョン識別子212を検索し、それを、アクションリスト内で識別されたコンポーネントのバージョンと比較する。一つの実施例では、コンポーネントのバージョンが、アクションリスト内に提供されたコンポーネント識別子に組み込まれる。もしもこれら2つのコンポーネントバージョンが同一であれば、そのコンポーネントに関して更なるアクションは必要とされず、本方法はブロック416に進む。もしもこれら2つのコンポーネントバージョンが異なれば、処理ロジック208は、コンポーネントに関連付けられたアクションを実施するように動作し、本方法はブロック312に進む。ブロック312では、現在のコンポーネント/アクションペア内のコンポーネントに関連付けられたアクションが実行され、識別されたコンポーネントの状態が変更される。例えば、処理ロジック208は、アクションロジック214を制御し、識別されたコンポーネントのインストール、更新、削除、起動、ディセーブル、リコール、すなわちこのコンポーネントの状態の変更のアクションを実行するように動作する。例えば、ソフトリコールは、コンポーネントがデバイスから削除されたが、関連付けられたデータ及び/又はライセンス情報が除去されない場合に実行されうる。例えば、もしもこのアクションが、コンポーネントをインストール又は更新するものであれば、処理ロジック208が、データネットワークを経由してダウンロードサーバからコンポーネント222をダウンロード又は更新するように動作する。このダウンロードされたコンポーネントは、インストールされたコンポーネント226としてインストールされる。処理ロジック208は、あらゆる種類のインストール又は更新処理を実施し、ダウンロードされたコンポーネント222を、インストールされたコンポーネント226としてインストール又は更新する。もしもこのアクションが、コンポーネントを削除することであれば、処理ロジック208は、削除ロジック220を制御して、インストールされたコンポーネント226から、識別されたコンポーネントを削除する。図2及び図3には示されていないが、例えばインストール、更新、削除、リコール、起動、非起動、すなわち、デバイス上のコンポーネントの状態の変更といった事実上いかなる種類のアクションであっても、コンポーネントに関して実行される。ブロック314では、コンポーネントバージョンリストが更新され、コンポーネントの新たなバージョンがインストール又は更新されたこと、あるいは、コンポーネントが削除されたことが反映される。例えば、処理ロジック208が、バージョン更新ロジック224を制御して、格納されたコンポーネントバージョン識別子212を、現在処理されているコンポーネントに関する新たな情報を用いて更新する。ブロック316では、テストが行われ、アクションリスト内のコンポーネント/アクションペアの全てが処理されたかが判定される。もしも全てのペアが処理されたならば、本方法はブロック320に進む。もしも全てのペアが処理されたわけではないのであれば、本方法はブロック318に進み、次のペアがブロック310における処理のためにアクセスされる。アクションリスト210は、任意の長さでありうるので、処理されるコンポーネント/アクションペアは任意の数存在する。ブロック320では、このデバイスで格納されたアクションリストバージョン識別子が更新される。例えば、処理ロジック208が、更新バージョンロジック224を制御して、格納されたアクションリストバージョン識別子204を、最も最近処理されたアクションリストに関連付けられた識別子を用いて更新する。従って、新たなバージョンのアクションリストが利用可能になるまで、このシステムは、別のアクションリストを処理するように動作することはない。一つの実施例では、デバイス上のコンポーネントを自動的に処理するシステムは、処理ロジック208によって実行されたときに、ここに記載された機能を提供するコンピュータ読取可能媒体に格納されたプログラム命令を備える。例えば、命令は、例えばフロッピー登録商標ディスク、CDROM、メモリカード、フラッシュメモリデバイス、RAM、ROM、又はデバイス200にインタフェースする任意の種類のメモリデバイスやコンピュータ読取可能媒体のようなコンピュータ読取可能媒体からデバイス200へとロードされる。別の実施例では、この命令は、データネットワークを経由してデバイス200にインタフェースするネットワークリソースからデバイス200へとロードされうる。この命令は、処理ロジック208によって実行されたとき、ここに記載したようなデバイス上のコンポーネントを自動的に処理するシステムの一つ又は複数の実施例を提供する。本方法300は、ほんの一つの実施例を示しており、本発明要素の変形、追加、再配置は、本発明の範囲を逸脱することなくなされることに留意されたい。図4は、特定のコンポーネントタイプについて動作するように設計されたコンポーネントハンドラを処理するデバイスを操作する方法400の一つの実施例を示す。明確さの目的のために、この方法400は、図2に示すデバイス200を参照して記述している。方法300は、上述したように、アクションリストをダウンロードし、コンポーネントを処理するために使用されるものと仮定される。方法400は更に、システムがどのようにして特定のコンポーネントタイプ上で動作するように設計されたコンポーネントハンドラであるコンポーネントを処理するように動作するのかを記載している。一つ又は複数の実施例では、以下に示す方法ステップが、プログラム命令の実行の間、処理ロジック208によって実行される。ブロック402では、システムが、ダウンロードされたアクションリストから取得されたコンポーネント/アクションペアを解析する。例えば、アクションリストは、図3のブロック306に関して記載されたように取得される。ブロック404では、テストが実行され、コンポーネント/アクションペアに関連して何れかのアクションを講じる必要があるかが判定される。例えば、コンポーネント/アクションペア内のコンポーネントのバージョンが、格納されたコンポーネントバージョンと比較され、もしも2つのバージョンが異なれば、識別されたコンポーネントに関連して、対応するアクションが講じられる。ブロック406では、幾つかのアクションが講じられると仮定して、テストが実行され、識別されたコンポーネントがコンポーネントハンドラであるかが判定される。コンポーネントハンドラは、選択されたコンポーネントタイプ上で動作するように設計されたプログラムである。もしもこのコンポーネントがコンポーネントハンドラであると判定されたのであれば、本方法はブロック408に進む。ブロック408では、識別されたコンポーネントハンドラが、デバイスにダウンロードされる。例えば、コンポーネントハンドラ228は、例えばサーバ102のようなサーバからダウンロードされる。ブロック410では、コンポーネントハンドラがデバイス上にインストールされる。例えば、コンポーネントハンドラは、デバイスのオペレーティングシステムレジストリ内にアプリケーションとして登録され、特定のコンポーネントタイプを持ったコンポーネント上で動作する。一つの実施例では、オペレーティングシステムのレジストリは、処理ロジック208の一部である。登録後、コンポーネントハンドラ228は、デバイス200上にインストールされたコンポーネントハンドラ230の一部となる。ブロック412では、インストールされたコンポーネントハンドラのバージョン識別子が、デバイス上に配置され格納されたコンポーネントバージョン識別子内で更新される。例えば、更新バージョンロジック224は、最近インストールされたコンポーネントハンドラ228のバージョンを用いて、この格納されたコンポーネントバージョン識別子212を更新する。本方法400は、その後、ブロック402に進み、次のコンポーネント/アクションペアを解析する。以降の記述では、ブロック402とブロック404は、デバイス上で処理されるコンポーネントを識別する次のコンポーネント/アクションペアを解析すると仮定されよう。ブロック406では、テストが実行され、識別されたコンポーネントがコンポーネントハンドラであるかが判定される。もしもこのコンポーネントがコンポーネントハンドラではないならば、本方法は、ブロック414に進む。ブロック414では、コンポーネントがデバイスにダウンロードされる。例えば、処理ロジック208がサーバからコンポーネント一般に222で示すをダウンロードする。ブロック416では、コンポーネントのフォーマットタイプが判定される。例えば、コンポーネント内の情報のフォーマット、及び/又はこの情報がどのように処理されるべきかを示すその他のフォーマットの選択されたMIMEタイプを持っている。ブロック418では、コンポーネントタイプに関連付けられたコンポーネントハンドラが、コンポーネントを処理するために起動される。例えば、オペレーティングシステムレジストリは、選択されたコンポーネントタイプを処理するためにどのコンポーネントハンドラが使用されるべきかを判定するために使用される。レジストリにより識別されたハンドラは、コンポーネントを処理するために起動される。例えば、処理ロジック208は、インストールされたコンポーネントハンドラ230のうちの一つを起動し、コンポーネントを処理する。ブロック420では、起動されたコンポーネントハンドラがコンポーネントを処理する。例えば、コンポーネントハンドラは、データをインストール、削除、更新、起動、マージする、すなわち、デバイス上のコンポーネントの状態を変更するために動作する。ブロック422では、デバイス上に格納されたコンポーネントバージョン識別子が、新たなコンポーネントバージョンを用いて更新される。例えば、更新バージョンロジック224は、デバイス上に格納されたコンポーネントバージョン識別子212を更新する。その後、本方法は、ブロック402において次のコンポーネント/アクションペアを処理するために進む。従って、本方法400は、ダウンロードされたコンポーネントを処理するために次に使用されるコンポーネントハンドラをダウンロード及びインストールするように動作する。ハンドラは、特定のコンポーネントタイプを処理するために設計され、インストールされたとき、デバイスのレジストリ内に登録される。特定のタイプを持っているコンポーネントが、デバイス上で処理されるとき、ハンドラを起動して、コンポーネント上の必要な処理を実行するためにレジストリが使用される。その後、デバイスにおけるコンポーネントバージョン識別子が更新される。別の実施例では、コンポーネントハンドラ228と、関連付けられたコンポーネントとが異なるアクションリストを用いてデバイス200にダウンロードされる。例えば、コンポーネントハンドラをダウンロードしインストールするために第一のアクションリストが使用され、このコンポーネントを処理するために第二のアクションリストが使用される。ここでは、前にインストールされたコンポーネントハンドラが、コンポーネントを処理する。別の実施例では、コンポーネントハンドラ228が、その他の任意のインストール技術を用いてデバイス200上にインストールされる。例えば、コンポーネントハンドラは、別々の送信を用いてダウンロードサーバからインストールされるか、あるいはこのコンポーネントハンドラは、ローカルなシステム又はデバイスからインストールされる。しかしながら、コンポーネントハンドラが一旦インストールされると、それはオペレーティングシステムレジストリ内に登録され、対応するコンポーネントを処理するために使用される。図5は、デバイスを起動して、特定のコンポーネントタイプ上で動作するように設計されたコンポーネントハンドラを処理する方法500の一つの実施例を示す。明確さの目的のために、本方法500は、図2に示すデバイス200に関連して説明される。本方法500は、上述したように、アクションリストをダウンロードし、コンポーネントを処理するために使用されることが仮定されよう。本方法500は更に、特定のコンポーネントタイプ上で動作するように設計されたコンポーネントハンドラを処理するためにシステムがどのように動作するのかを記述している。一つ又は複数の実施例では、プログラム命令の実行の間、以下に示す方法ステップが処理ロジック208によって実行される。ブロック502では、アクションリストが解析され、デバイス上で処理されるコンポーネント/アクションペアが取得される。ブロック504では、テストが実行され、識別されたコンポーネントに関連して、何れかのアクションが必要とされるのかが判定される。もしもデバイス上の識別されたコンポーネントの状態を変更するためにアクションが必要とされるのであれば、本方法はブロック506に進む。ブロック506では、コンポーネントを処理するために必要とされるコンポーネントハンドラが判定される。例えば、一つの実施例では、アクションリスト内のコンポーネント識別子は、コンポーネントのタイプを識別するタイプ識別子を含んでいる。処理ロジック208は、このタイプ表示を用いて、コンポーネントを処理するために必要なコンポーネントハンドラを判定する。ブロック508では、テストが実行され、必要とされるコンポーネントハンドラが、デバイス上に現在存在するのかが判定される。例えば、処理ロジック208は、インストールされたコンポーネントハンドラ226を検査し、必要なハンドラがインストールされたかを判定する。もしも必要なハンドラがインストールされているのであれば、本方法はブロック516に進む。もしも必要なハンドラがインストールされていないならば、本方法は、ブロック510に進む。ブロック510では、必要なコンポーネントハンドラがデバイスにダウンロードされる。例えば、一つの実施例では、処理ロジック208が、ダウンロードサーバからコンポーネントハンドラ228をダウンロードする。コンポーネントハンドラをデバイスにダウンロードするために任意の技法が使用される。ブロック512では、デバイス上にハンドラがインストールされる。例えば、ハンドラは、オペレーティングシステムレジストリ内に登録される。これによって、選択されたコンポーネントタイプを処理するために起動されることが可能となる。ブロック514では、ハンドラの格納されたバージョンが更新される。例えば、更新バージョンロジック224は、格納されたコンポーネントバージョン識別子212を更新する。本方法は、その後、ブロック516に進む。ブロック516では、識別されたコンポーネントがデバイスにダウンロードされる。例えば、処理ロジック208は、識別されたコンポーネントをダウンロードサーバからダウンロードする。ブロック518では、ダウンロードされたコンポーネントを処理するために、新たにインストールされたハンドラが起動される。例えば、処理ロジック208は、レジストリを用いて、コンポーネントを処理するためにインストールされたコンポーネントハンドラ230のうちのどれが起動されるべきかを判定する。結果として、新たにインストールされたコンポーネントハンドラが、コンポーネントを処理するために起動される。ブロック520では、デバイス上のコンポーネントを、コンポーネントハンドラが処理し、デバイス上のコンポーネントの状態を変更する。例えば、コンポーネントハンドラは、データをインストール、削除、更新、起動、マージする、すなわち、デバイス上のコンポーネントの状態を変更するために動作する。ブロック522では、コンポーネントの格納されたバージョン識別子が更新される。例えば、更新バージョンロジック224は、格納されたコンポーネントバージョン識別子212を更新する。本方法は、その後、ブロック502に進み、別のコンポーネント/アクションペアを解析する。従って、本方法500は、コンポーネントを処理するために必要なコンポーネントハンドラが利用可能であるかを判定するように動作する。もしもこのコンポーネントハンドラがデバイス上にインストールされていなければ、このハンドラがダウンロードサーバからダウンロードされ、インストールされ、その後、ダウンロードされたコンポーネントを処理するために使用される。このハンドラは、特定のコンポーネントタイプを処理するように設計され、インストールされると、デバイスのレジストリ内に登録される。特定のタイプを持つコンポーネントがデバイス上で処理されるべきであるとき、正しいハンドラを起動して、コンポーネントについて必要な処理を行うために、このレジストリが使用される。その後、デバイス上のコンポーネントバージョン識別子が更新される。図6は、トランザクション600を示す。このトランザクションは、デバイス上のコンポーネントを自動的に処理するシステムの一つの実施例の動作中、デバイスとダウンロードサーバとの間で起こる。例えば、トランザクション600は、図1に示すサーバ102とデバイス106との間で起こる。この自動処理の開始において、602に示すように、デバイス106が、サーバ102から、アクションリストの最新のバージョン識別子を要求する。このアクションリストは、識別された各コンポーネントに関してデバイスが実行すべきアクションを記述するコンポーネント/アクションペアを含む。このアクションリストは、定期的に変更又は更新され、アクションリストバージョン識別子は、このアクションリストの現在のバージョンを識別する。サーバ102は、604に示すように、現在のアクションリストのバージョン識別子を送信することによって、デバイス102からの要求に対して応答する。アクションリストバージョン識別子を受信した後に、デバイスは、この識別子を、格納されたアクションリストバージョン識別子と比較する。もしもこれら2つのバージョン識別子が等価であれば、デバイスは更なるアクションを講じない。もしもこれら2つのバージョン識別子が異なっていれば、606に示すように、デバイス102は、サーバ102からの新たなアクションリストを要求する。サーバ102は、608に示すように、新たなアクションリストを送信することによって、デバイス106からの要求に対して応答する。デバイス106は、このアクションリスト内の各コンポーネント/アクションペアを処理し、特定のコンポーネントのインストール、更新、削除、すなわち、特定のコンポーネントの状態の変更をするかしないかを判定する。もしも特定のコンポーネントが処理される必要であるとデバイス106が判定したのであれば、610に示すように、デバイス106が、サーバ102からコンポーネントを要求または更新する。サーバ102は、要求されたコンポーネントをデバイス106に送信することによってこの要求に応答する。デバイス106は、このコンポーネントを受信し、必要に応じてこのコンポーネントを処理する。コンポーネントは、デバイスがローカルに格納するコンポーネントバージョン識別子を持っている。そのコンポーネントバージョン識別子は、デバイスがコンポーネントを処理した後に更新される。デバイス106がアクションリスト全体を解析し、必要に応じてサーバ102から必要な全てのコンポーネントを検索した後に、デバイス106は、丁度処理されたアクションリストのバージョンを用いて、ローカルに格納されたアクションリストを更新する。従って、サーバ102からダウンロードされたアクションリストバージョン識別子が、格納された識別子と異なるまで、デバイス106は、サーバ102からの別のアクションリストを処理するであろう。図7は、デバイス上のコンポーネントを自動的に処理するシステムにおいて使用するためのアクションリスト700の一つの実施例を示す。アクションリスト700は、アクションリストバージョン識別子502を含む。アクションリストバージョン識別子702の後には、コンポーネント/アクションペア704,706が続く。例えば、コンポーネント/アクションペア704は、コンポーネント識別子と、対応するアクションとを含む。一つの実施例では、コンポーネント識別子はまた、コンポーネントバージョン識別子、及びタイプ識別子を含んでいる。コンポーネントのバージョンが、デバイス上に現在コンポーネントが存在しているか否かを判定することができるように、バージョン識別子が使用される。タイプ識別子は、コンポーネントのタイプを示し、どのハンドラがコンポーネントを処理するために必要であるかを判定するために使用される。このアクションは、インストール、更新、削除、すなわち、デバイス上のコンポーネントの状態を変更するための任意のタイプのアクションのうちの何れか一つでありうる。アクションリスト内の情報は、安全な送信及び/又は認証のための任意の適切なフォーマットを用いて符号化され、コンポーネント及びアクション識別子は、任意のタイプでありうる。一つの実施例では、ペア704は、デバイス上にインストールされるコンポーネントハンドラを識別し、ペア706は、コンポーネントハンドラによって処理されるコンポーネントを識別する。このように、デバイス上のコンポーネントを自動的に処理するシステムの一つ又は複数の実施例が説明され、記載されたが、これら精神又は本質的な特徴から逸脱することなく種々の変更が本実施例に対してなされるものと理解されよう。よって、この開示及び記述は、特許請求の範囲に記述された本発明の範囲を限定するものではなく、例示することを意図している。"