(57)【要約】      （修正有）【課題】デバイス上のコンポーネントを自動的に処理する方法を提供する。【解決手段】コンポーネントは、選択されたコンポーネントタイプを持っている。方法は、デバイス２００上にコンポーネントハンドラをインストールすることを含む。前記コンポーネントハンドラは、選択されたコンポーネントタイプを持つコンポーネントを処理するように動作する。方法はまた、アクションリストを解析し、デバイスによって処理されるコンポーネントを識別するコンポーネント／アクションペアを取得することと、コンポーネントをデバイスにダウンロードすることとを含む。方法はまた、前記選択されたコンポーネントタイプをコンポーネントが持っていることを判定することと、前記選択されたコンポーネントタイプを用いてコンポーネントハンドラを起動し、コンポーネントを処理することとを含む。【選択図】図２
2011227912.tif 000002
【特許請求の範囲】
【請求項１】
デバイス上のコンポーネントを自動的に処理する方法であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記方法は、
前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラを前記デバイスにインストールすることと、
アクションリストを解析して、前記デバイスによって処理されるコンポーネントを識別するコンポーネント／アクションペアを取得することと、
前記コンポーネントを前記デバイスにダウンロードすることと、
前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定することと、
前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用することとを備える。
【請求項２】
請求項１に記載の方法において、前記インストールするステップは、
前記デバイスにおいて前記アクションリストを受信することと、
前記アクションリストを解析し、前記コンポーネントハンドラを識別する選択されたコンポーネント／アクションペアを取得することとを備える。
【請求項３】
請求項１に記載の方法において、前記インストールするステップは、
前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別することと、
前記コンポーネントハンドラを前記デバイスにダウンロードすることとを備える。
【請求項４】
請求項１に記載の方法において、前記インストールするステップは、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録することを備える。
【請求項５】
請求項１に記載の方法において、前記使用するステップは、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントの状態を変更することを備える。
【請求項６】
請求項１に記載の方法において、前記使用するステップは、前記コンポーネントハンドラを用いて前記デバイスに前記コンポーネントをインストールすることを備える。
【請求項７】
請求項１に記載の方法において、格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連するバージョン識別子を用いて更新することを更に備える。
【請求項８】
請求項１に記載の方法において、前記デバイスは無線デバイスである。
【請求項９】
デバイス上のコンポーネントを自動的に処理する装置であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記装置は、
前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラを前記デバイスにインストールするロジックと、
アクションリストを解析して、前記デバイスによって処理されるコンポーネントを識別するコンポーネント／アクションペアを取得するロジックと、
前記コンポーネントを前記デバイスにダウンロードするロジックと、
前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定するロジックと、
前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用するロジックとを備える。
【請求項１０】
請求項９に記載の装置において、前記インストールするロジックは、
前記デバイスにおいて前記アクションリストを受信するロジックと、
前記アクションリストを解析し、前記コンポーネントハンドラを識別する選択されたコンポーネント／アクションペアを取得するロジックとを備える。
【請求項１１】
請求項９に記載の装置において、前記インストールするロジックは、
前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別するロジックと、
前記コンポーネントハンドラを前記デバイスにダウンロードするロジックとを備える。
【請求項１２】
請求項９に記載の装置において、前記インストールするロジックは、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録するロジックを備える。
【請求項１３】
請求項９に記載の装置において、前記使用するロジックは、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントの状態を変更するロジックを備える。
【請求項１４】
請求項９に記載の装置において、前記使用するロジックは、前記コンポーネントハンドラを用いて前記デバイスに前記コンポーネントをインストールするロジックを備える。
【請求項１５】
請求項９に記載の装置において、格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連するバージョン識別子を用いて更新するロジックを更に備える。
【請求項１６】
請求項９に記載の装置において、前記デバイスは無線デバイスである。
【請求項１７】
デバイス上のコンポーネントを自動的に処理する装置であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記装置は、
前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラを前記デバイスにインストールする手段と、
アクションリストを解析して、前記デバイスによって処理されるコンポーネントを識別するコンポーネント／アクションペアを取得する手段と、
前記コンポーネントを前記デバイスにダウンロードする手段と、
前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定する手段と、
前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用する手段とを備える。
【請求項１８】
請求項１７に記載の装置において、前記インストールする手段は、
前記デバイスにおいて前記アクションリストを受信する手段と、
前記アクションリストを解析し、前記コンポーネントハンドラを識別する選択されたコンポーネント／アクションペアを取得する手段とを備える。
【請求項１９】
請求項１７に記載の装置において、前記インストールする手段は、
前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別する手段と、
前記コンポーネントハンドラを前記デバイスにダウンロードする手段とを備える。
【請求項２０】
請求項１７に記載の装置において、前記インストールする手段は、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録する手段を備える。
【請求項２１】
請求項１７に記載の装置において、前記使用する手段は、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントの状態を変更する手段を備える。
【請求項２２】
請求項１７に記載の装置において、前記使用する手段は、前記コンポーネントハンドラを用いて前記デバイスに前記コンポーネントをインストールする手段を備える。
【請求項２３】
請求項１７に記載の装置において、格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連するバージョン識別子を用いて更新する手段を更に備える。
【請求項２４】
請求項１７に記載の装置において、前記デバイスは無線デバイスである。
【請求項２５】
デバイス内のロジックを処理することによって実行されると、前記デバイス上のコンポーネントを自動的に処理するように動作する命令を備えたコンピュータ読取可能媒体であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記コンピュータ読取可能媒体は、
前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラを前記デバイスにインストールする命令と、
アクションリストを解析して、前記デバイスによって処理されるコンポーネントを識別するコンポーネント／アクションペアを取得する命令と、
前記コンポーネントを前記デバイスにダウンロードする命令と、
前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定する命令と、
前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用する命令とを備える。
【請求項２６】
請求項２５に記載のコンピュータ読取可能媒体において、前記インストールする命令は、
前記デバイスにおいて前記アクションリストを受信する命令と、
前記アクションリストを解析し、前記コンポーネントハンドラを識別する選択されたコンポーネント／アクションペアを取得する命令とを備える。
【請求項２７】
請求項２５に記載のコンピュータ読取可能媒体において、前記インストールする命令は、
前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別する命令と、
前記コンポーネントハンドラを前記デバイスにダウンロードする命令とを備える。
【請求項２８】
請求項２５に記載のコンピュータ読取可能媒体において、前記インストールする命令は、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録する命令を備える。
【請求項２９】
請求項２５に記載のコンピュータ読取可能媒体において、前記使用する命令は、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントの状態を変更する命令を備える。
【請求項３０】
請求項２５に記載のコンピュータ読取可能媒体において、前記使用する命令は、前記コンポーネントハンドラを用いて前記デバイスに前記コンポーネントをインストールする命令を備える。
【請求項３１】
請求項２５に記載のコンピュータ読取可能媒体において、格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連するバージョン識別子を用いて更新する命令を更に備える。
【請求項３２】
請求項２５に記載のコンピュータ読取可能媒体において、前記デバイスは無線デバイスである。
【発明の詳細な説明】
【関連出願への相互参照】
【０００１】
本出願は、２００２年１２月２０日に出願され"AUTO-INSTALL"と題された係属中の米国仮出願６０／４３５，４８６号の優先権の利益を主張する。この出願は、全ての目的のためにその全体を参照することにより組み込まれる。
【０００２】
本出願はまた、２００２年１２月２０日に出願され"REGISTRY-BASED AUTO INSTALL COMPONENT HANDLING"と題された係属中の米国仮出願６０／４３５，８２８号の優先権の利益を主張する。この出願は、全ての目的のためにその全体を参照することにより組み込まれる。
【技術分野】
【０００３】
本発明は一般に、デバイス上のコンポーネントを処理することに関し、特に、デバイス上におけるレジストリベースの自動インストール及びコンポーネントハンドリングのためのシステムに関する。
【背景技術】
【０００４】
データネットワークは、様々なネットワーク可能なデバイスを用いて、多数のユーザが互いに通信するための方法を提供する。例えば、無線通信ネットワークでは、様々なネットワーク可能なポータブル電話によって、ユーザは、極めて遠い距離を介して互いに通信することが可能となる。ネットワーク可能なデバイスは、一般に、このデバイスがどのように動作するか、そして究極的には、ネットワーク全体の性能がどのように良くなるのかを制御するインストールされた様々なコンポーネントを用いて設定される。
【０００５】
ある環境では、ネットワークオペレータは、ネットワーク可能なデバイスの設定を、アップグレード、インストール、削除、すなわち変更することを望んでいる。例えば、システムソフトウェアが改善されると、ネットワークオペレータは、このネットワークをより効率的に動作させるために、ネットワーク内の全てのデバイスにインストールされた新たなコンポーネントを持ちたいと思う。例えば、ネットワークオペレータは、デバイス上にアプリケーションソフトウェア、バイナリ実行可能な、あるいはその他の情報をインストールし、サービス改善又はアップグレードを提供したいと思うかもしれない。別の状況では、ネットワークオペレータは、特定の種類のデバイスの必要性に基づいて、企業アプリケーション又はその他のデバイスアップグレードアプリケーションをインストールすることを望むかもしれない。更に、もしも現在インストールされているシステムコンポーネントに問題が存在すると判定された場合、デバイスユーザがこの問題が存在することを気付いているかに関わらず、ネットワークオペレータは、この問題を修復するために、アップグレードされたコンポーネントをインストールしたいと思うであろう。例えば、もしもユーザがマルチメディアコンテンツを見ることを可能にする現在のデバイスコンポーネントに問題が存在するのであれば、ネットワークオペレータは、このコンポーネントを、問題の無い新たなコンポーネントに交換するために、ネットワーク上の全てのデバイスをアップグレードしたいと思うであろう。
【０００６】
デバイスにおけるコンポーネントをインストール、削除、すなわち変更するために使用される一つの技術は、デバイスユーザが、このデバイスを修理センタに返還することを待つことである。一旦修理センタに行くと、このデバイスが最も最近のコンポーネントバージョンを持つことができるように、修理要員が、このデバイスを再プログラムすることができる。あいにく、もしもデバイスユーザがこの問題に気がつかなければ、あるいは、彼らがこのデバイスをどうやって使用するのかにこの問題が現在影響を与えていなければ、デバイスユーザはこのデバイスを返還することを忘れるかもしれないのでこの処理は非常に非効率的である。デバイスの全てがアップグレードされる訳ではないので、幾つかのデバイスは、最良の性能を与えるように動作しないであろうし、ネットワークの全体動作が低下するかもしれない。
【０００７】
従って、必要なことは、コンポーネントの選択されたバージョンがインストールされ、動作されるようにデバイス上のコンポーネントを自動的に処理するためのシステムである。このシステムは、比較的短い時間内で、多数のデバイスにおけるコンポーネントを処理できるように十分に柔軟であるべきである。これによって、ネットワーク上で動作する全てのデバイスに対して高速なアップグレードを提供し、もって、最良のデバイス性能と、増大したネットワーク効率との結果が得られる。
【発明の概要】
【０００８】
一つ又は複数の実施例では、デバイス上のコンポーネントを自動的に処理するためにシステムが提供される。例えば、一つの実施例では、このシステムによって、デバイスは、ダウンロードサーバ上で利用可能なバージョン化されたアクションリストを用いて、デバイスにおけるコンポーネントのインストール、更新、削除、起動、ディセーブル、リコール、すなわちこのコンポーネントの状態の変更が可能となる。
【０００９】
処理されることが可能なコンポーネントは、例えばアプリケーション、実行可能な設定情報、ユーザインタフェース設定、ランダムデータ、又はその他の種類の情報など、任意の種類でありうる。
【００１０】
このシステムの動作中、デバイスは、ダウンロードサーバ上のアクションリストのバージョンを、デバイスによって処理された最後のアクションリストに関連付けられた格納されたバージョンと比較する。もしも２つのバージョンが異なれば、デバイスは、サーバから新たなアクションリストをダウンロードし、このアクションリスト内の各項目を解析し、デバイス上のコンポーネントを処理する。一つの実施例では、このアクションリスト内の各項目は、コンポーネント識別子をアクション識別子に関連付けているコンポーネント／アクションペアを備えている。
【００１１】
このコンポーネント識別子は、コンポーネントの種類と、その現在のバージョンとを識別する。このアクション識別子は、識別されたコンポーネントに関連付けられたデバイスによって実行されるアクションを識別する。
【００１２】
一つの実施例では、デバイスは、アクションリスト内のコンポーネント／アクションペアのそれぞれを解析し、識別されたコンポーネントのために実行されるアクションが必要があるかを判定する。このデバイスは、アクションリスト内のコンポーネントのバージョンを、デバイスに格納されたコンポーネントバージョンと比較する。もしも２つのコンポーネントバージョンが同一であれば、デバイスは、コンポーネント／アクションペアに関して何のアクションもとらない。もしもこれらバージョンが異なるのであれば、デバイスは、アクションリスト内のコンポーネントに関連付けられたアクションを実行し、デバイス上のコンポーネントの状態を変更する。例えば、もしもこのアクションが、識別されたコンポーネントをインストールすることであれば、デバイスはこのコンポーネント、及びその他の必要な情報をダウンロードサーバからダウンロードし、このコンポーネントをデバイス上にインストールする。従って、このデバイスは、新たなコンポーネントバージョンにおける指定された動作のみを実行するアクションリストを介して進む。
【００１３】
特定のコンポーネント／アクションペアを処理した後、このデバイスに格納されたコンポーネントバージョンは、アクションリスト内に与えられた新たなコンポーネントバージョンを用いて更新される。アクションリスト全体が処理されたとき、現在のアクションリストの将来における処理を再び行うことを回避するために、デバイスは、アクションリストのバージョン識別子を記録する。従って、ダウンロードサーバ上で利用可能なアクションリストのバージョンが、デバイス上に格納されたバージョンと異なるまで、このデバイスは、別のアクションリストを処理しないであろう。
【００１４】
一つの実施例では、デバイスがダウンロードサーバと通信するときにその都度、デバイスが、アクションリストのバージョンをチェックする。例えば、デバイスの電源がオンにされた後、又は定期的な間隔において、デバイスがダウンロードサーバと通信する。このシステムは、何のユーザ相互作用もなく、あるいは制限されたユーザ相互作用もなく、コンポーネントがデバイス上で処理されるようになるメカニズムを提供する。例えば、一つの実施例では、電源投入時にコンポーネントがデバイスにプッシュされ、「サイレントインストール」を効果的に提供する。別の実施例では、ユーザのオプション時にコンポーネント処理となるようにユーザインタフェースが提供される。従って、このシステムは、コンポーネント処理が強制されたり、促進されたり、要求されたり、オプションとされるようにする。
【００１５】
このシステムは、単一デバイス上、又は多数のデバイス上のコンポーネントを処理するために使用される。例えば、多数のデバイスが、アクションリストサーバにアクセスすることができるデータネットワークでは、単一のアクションリストが全てのデバイスに配信され、各デバイスは、どのコンポーネントがそのデバイスのために処理されるのかを判定することができる。別の実施例では、サーバは、異なるデバイス種類のために使用することが可能な複数のアクションリストを提供する。例えば、異なる種類のデバイスは、異なるアクションリストにアクセスし、そのデバイス種類に対するコンポーネントを処理する。従って、このシステムが多数のデバイスに対してグローバルな更新を与えることが可能である。ここでは、各デバイスがアクションリストサーバにコンタクトするので、時間又は日の期間にわたって更新が実行される。従って、このシステムが多数のデバイスに対してグローバルな更新を与えることが可能である。ここでは、各デバイスがアクションリストサーバにコンタクトするので、時間又は日の期間にわたって更新が実行される。
【００１６】
一つの実施例では、このシステムは、コンポーネントタイプに基づいて、コンポーネントのためにデバイスサポートを追加する能力を提供する。コンポーネント「ハンドラ」が提供される。これは、特定のコンポーネントタイプ（すなわち、特定の「多目的インターネットメイル拡張」（ＭＩＭＥ：Multipurpose Internet Mail Extension）タイプ）を持つコンポーネントを処理するために設計されている。ハンドラは、アプリケーション又は実行ファイルであり、コンポーネントのデータの保存及び収容を行う。例えば、このシステムは、コンポーネントハンドラのダウンロード及びインストールをするように動作し、選択されたＭＩＭＥタイプを持つコンポーネントを処理するように設計されている。一つの実施例では、コンポーネントハンドラは、デバイスのオペレーティングシステムレジストリ内に登録される。一旦ハンドラがインストールされると、このシステムは、選択されたタイプを持つコンポーネントをダウンロードし、コンポーネントを処理するために、関連付けられたハンドラが起動されるであろう。従って、コンポーネントハンドラは、オペレーティングシステムレイヤ内に埋め込まれず、ＯＥＭによって提供されるか、あるいは、第三者によって提供されるか、及び／又は動的にダウンロード／アップグレードされる。これによって、新たなコンポーネントタイプが、製造後のデバイス上で処理されるようになるのみならず、新たなメカニズムが、新たなコンポーネントタイプを取り扱うことができるようになる。
【００１７】
一つの実施例では、デバイス上のコンポーネントを自動的に処理するための方法が提供される。ここで、このコンポーネントは、選択されたコンポーネントタイプを持っている。この方法は、デバイス上にコンポーネントハンドラをインストールすることを備える。ここで、コンポーネントハンドラは、選択されたコンポーネントタイプを持つコンポーネントを処理するように動作する。この方法はまた、アクションリストを解析し、デバイスによって処理されるコンポーネントを識別するコンポーネント／アクションペアを取得することと、コンポーネントをデバイスにダウンロードすることとを備える。この方法はまた、選択されたコンポーネントタイプをコンポーネントが持っていることを判定することと、選択されたコンポーネントタイプを用いて、コンポーネントを処理するためのコンポーネントハンドラを起動することとを備える。
【００１８】
一つの実施例では、デバイス上のコンポーネントを自動的に処理するための装置が提供される。ここで、コンポーネントは、選択されたコンポーネントタイプを持つ。この装置は、デバイス上にコンポーネントハンドラをインストールするロジックを備える。ここで、コンポーネントハンドラは、選択されたコンポーネントタイプを持つコンポーネントを処理するように動作する。この装置はまた、アクションリストを解析し、デバイスによって処理されるコンポーネントを識別するコンポーネント／アクションペアを取得するロジックと、コンポーネントをデバイスにダウンロードするロジックとを備える。この装置はまた、選択されたコンポーネントタイプをコンポーネントが持っていることを判定するロジックと、選択されたコンポーネントタイプを用い、コンポーネントを処理するコンポーネントハンドラを起動するロジックとを備える。
【００１９】
一つの実施例では、デバイス上のコンポーネントを自動的に処理するための装置が提供される。ここで、コンポーネントは、選択されたコンポーネントタイプを持っている。この装置は、デバイス上にコンポーネントハンドラをインストールする手段を備えている。ここでコンポーネントハンドラは、選択されたコンポーネントタイプを持つコンポーネントを処理するように動作する。この装置はまた、アクションリストを解析し、デバイスによって処理されるコンポーネントを識別するコンポーネント／アクションペアを取得する手段と、デバイスにコンポーネントをダウンロードする手段とを備える。この装置はまた、選択されたコンポーネントタイプをコンポーネントが持っていることを判定する手段と、選択されたコンポーネントタイプを用い、コンポーネントを処理するコンポーネントハンドラを起動する手段とを備える。
【００２０】
一つの実施例では、コンピュータ読取可能媒体が提供される。この媒体は、デバイス内の処理ロジックによって実行されたとき、デバイス上のコンポーネントを自動的に処理するように動作する命令を備えている。ここで、コンポーネントは、選択されたコンポーネントタイプを持つ。このコンピュータ読取可能媒体は、デバイス上にコンポーネントハンドラをインストールする命令を備えている。ここで、コンポーネントハンドラは、選択されたコンポーネントタイプを持つコンポーネントを処理するように動作する。このコンピュータ読取可能媒体はまた、アクションリストを解析し、デバイスによって処理されるコンポーネントを識別するコンポーネント／アクションペアを取得する命令と、デバイスにコンポーネントをダウンロードする命令とを備えている。このコンピュータ読取可能媒体はまた、選択されたコンポーネントタイプをコンポーネントが持っていることを判定する命令と、選択されたコンポーネントタイプを用い、コンポーネントを処理するコンポーネントハンドラを起動する命令とを備える。
【００２１】
本発明のその他の局面、利点、及び特徴は、以下の図面の簡単な説明、本発明の詳細な説明、及び特許請求の範囲の説明のレビューの後に明らかになるであろう。
【図面の簡単な説明】
【００２２】
【図１】図１は、デバイス上のコンポーネントを自動的に処理するシステムの一つの実施例を示す。
【図２】図２は、自動的にコンポーネントを処理するシステムの一つの実施例を含むデバイスの機能ブロック図である。
【図３】図３は、デバイス上のコンポーネントを自動的に処理するシステムを提供するデバイスを動作させる方法の一つの実施例を示す。
【図４】図４は、特定のコンポーネントタイプで動作するように設計されたコンポーネントハンドラを処理するデバイスを動作させる方法の一つの実施例を示す。
【図５】図５は、特定のコンポーネントタイプで動作するように設計されたコンポーネントハンドラを処理するデバイスを動作させる方法の一つの実施例を示す。
【図６】図６は、デバイス上のコンポーネントを自動的に処理するシステムの一つの実施例の動作の間に、ダウンロードサーバとデバイスとの間で起こるトランザクションを示す。
【図７】図７は、デバイス上のコンポーネントを自動的に処理するシステムで使用されるアクションリストの一つの実施例を示す。
【発明を実施するための形態】
【００２３】
ここに記載された実施例の前述した局面及び付随する利点は、添付図面と連携してなされた以下に示す詳細記述を参照することによって容易に明らかになるであろう。
【００２４】
以下に示す詳細記述は、デバイス上のコンポーネントを自動的に処理するシステムの実施例を示す。このシステムは、限定される訳ではないが、通信ネットワーク、例えばインターネットのような公衆ネットワーク、例えば仮想プライベートネットワークのようなプライベートネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、長距離ネットワーク、又はその他任意の種類のデータネットワークを含む有線又は無線の任意のネットワークにおいて使用されるのに適している。またこのシステムは、コンポーネントをダウンロード及びインストールすることが可能な任意の種類のデバイスと共に使用するのに適している。例えば、このシステムは、オフィスコンピュータ、ノートブックコンピュータ、及び例えばポータブル電話、ＰＤＡ、又はコンポーネントを受信及びインストールすることが可能なその他任意の種類のデバイスのようなハンドヘルドデバイスとともに使用することに適している。
【００２５】
一つ又は複数の実施例では、このシステムは、例えばデバイス特有のリソースのために一般化されたコールを提供することによって、デバイスの動作を簡単にするために使用されるデバイス上で実行しているランタイム環境と相互作用する。そのようなランタイム環境は、カリフォルニア州、サンディエゴのＱＵＡＬＣＯＭＭ社によって開発されたBinary Runtime Environment for Wireless（登録商標）（(ＢＲＥＷ（登録商標））ソフトウェアプラットフォームである。以下の記述において、このデバイスは、例えばＢＲＥＷソフトウェアプラットフォームのようなランタイム環境を実行していると仮定される。しかしながら、このシステムの一つ又は複数の実施例は、種々の有線及び無線デバイス上のコンポーネントを自動的に処理する他の種類のランタイム環境とともに使用されるのに適している。
【００２６】
図１は、デバイス上のコンポーネントを自動的に処理するシステム１００の一つの実施例を示す。このシステム１００は、サーバ１０２、データネットワーク１０４、及びデバイス１０６を備えている。データネットワーク１０４は、サーバ１０２とデバイス１０６との間で情報が通信されるようにする任意の種類の有線又は無線ネットワークでありうる。例えば、ネットワーク１０４は、通信ネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、又は例えばインターネットのような公衆ネットワークでありうる。
【００２７】
一つ又は複数の実施例では、このシステムは、デバイス１０６上のコンポーネントを処理するために動作する。
【００２８】
例えば、サーバ１０２は、コンポーネント１１２、アクションリスト１１０、アクションリストバージョン識別子１０８、及びコンポーネントハンドラ１２０を含む。このバージョン識別子１０８は、アクションリスト１１０の現在のバージョンを識別する。アクションリスト１１０は、コンポーネント／アクションペアを備えている。ここで、各ペアは、コンポーネント識別子とアクション識別子とを備える。このコンポーネント識別子は、特定のコンポーネントを識別するユニークな項目ＩＤである。コンポーネント識別子の一部は、コンポーネントのバージョンを識別するために使用される。例えば、コンポーネント識別子は、ビットのシリーズである。このビットの一部は、コンポーネントのバージョンを識別するために使用される。アクション識別子は、例えばインストール、更新、削除、リコール、ディセーブル、又はデバイス１０６がこの識別されたコンポーネントに関連して実行するその他のアクションのような特定のアクションを識別する。
【００２９】
コンポーネントハンドラ１２０は、選択されたコンポーネントタイプを処理するように設計されている。例えば、一つの実施例では、コンポーネントハンドラは、選択されたＭＩＭＥタイプを持つコンポーネントを処理するように設計される。コンポーネントハンドラは、デバイス１０６上にインストールすることができ、このデバイスのオペレーティングシステムレジストリ内に登録されることが可能である。一旦インストールされると、コンポーネントハンドラは、対応するフォーマットタイプを持つコンポーネントを処理するために起動される。
【００３０】
動作の間、サーバ１０２は、アクションリストバージョン識別子１０８を、ネットワーク１０４を経由してデバイス１０６に送信する。例えば、デバイス１０６は、電源投入シーケンスの間、サーバ１０２とコンタクトし、サーバ１０２は、アクションリストバージョン識別子１０８をデバイス１０６に送信することによって応答する。別の実施例では、新たなバージョンのアクションリストが、ダウンロード可能なとき、サーバ１０２が、デバイス１０６にコンタクトする。例えば、一つの実施例では、新たなアクションリストが利用可能になったとき、アクションリストバージョン識別子１０８を含むサーバ１０２が、デバイス１０６にメッセージを送る。デバイス１０６は、バージョン識別子１０８を、デバイス１０６によって処理される最後のアクションリストのバージョンを表す格納されたバージョン識別子１１４と比較する。もしもダウンロードされたバージョン１０８と、格納されたバージョン１１４とが等しければ、デバイスは、デバイス上の既存のコンポーネント１１６に対して如何なるインストールもまた変更も行う必要がない。しかしながら、もしもこのダウンロードされたバージョン１０８が、格納されたバージョン１１４と異なるのであれば、デバイス１０６は、追加のコンポーネント処理が必要であることを知る。例えば、デバイス１０６上にインストールされる必要がある新たなコンポーネントがサーバ１０２に位置しているかもしれない。
【００３１】
一旦デバイス１０６がアクションリストの新たなバージョンが存在していることを検出すると、新たなアクションリスト１１０を取得するためにサーバ１０２に要求を送信する。サーバ１０２は、アクションリスト１１０をデバイス１０６に送信することによって応答する。そしてデバイス１０６は、アクションリスト１１０を処理し、このアクションリスト１１０内で識別されたコンポーネントのインストール、更新、削除、あるいは処理を行う。
【００３２】
このデバイス１０６は、各コンポーネント／アクションペアによって、各コンポーネントに関してアクションを行うか否かを判定することによってこのアクションリスト１１０を処理するように動作する。例えば、もしもコンポーネントがインストール又は更新される必要があるとアクションリストが特定すれば、デバイス１０６は、コンポーネント１１２及びその他任意の必要なファイルをサーバ１０２からダウンロードし、それをデバイス１０６にインストールする。もしもコンポーネントが削除される必要があるとアクションリスト１１０が特定すれば、デバイス１０６はこのコンポーネントを削除する。従って、アクションリスト１１０内の各コンポーネント／アクションペアは、例えばこの識別されたコンポーネントを自動的にインストール、更新、削除するためにデバイス１０６によって処理される。アクションリストは任意の長さであり、このアクションリストを処理した後、デバイス１０６は、格納されたアクションリストバージョン識別子１１４を更新し、最も最近に処理されたアクションリストのバージョンを格納する。
【００３３】
一つの実施例では、デバイス１０６が、アクションリスト１１０内のコンポーネント／アクションペアを解析し、特定のコンポーネントに関連付けられたアクションを講じる必要があるか否かを判定する。例えば、デバイス１０６は、インストールされたコンポーネントの最も新しいバージョンを既に持っているかもしれない。もしそうであれば、このデバイスは、そのコンポーネントを再インストールする必要はない。一つの実施例では、アクションリスト１１０内のコンポーネント識別子は、コンポーネントのバージョンを判定するための情報を含んでいる。例えば、このバージョン情報は、コンポーネント識別子の終わりに追加することができる。デバイス１０６は、格納されたコンポーネントバージョン１１８を、アクションリスト１１０内にダウンロードされたコンポーネントバージョンと比較する。もしも、格納されたコンポーネントバージョンと、ダウンロードされたコンポーネントバージョンとが同一であれば、デバイスは、そのコンポーネントに関していかなるアクションをとる必要もない。しかしながら、もしも、格納されたコンポーネントバージョンと、ダウンロードされたコンポーネントバージョンとが同一ではないのであれば、デバイス１０６は、アクションリスト内のそのコンポーネントに関連付けられたアクションを実行する。従って、デバイス１０６は、新たなバージョンのコンポーネントを単に処理するだけなので、システムは非常に効率的である。
【００３４】
一つの実施例では、アクションリストが、デバイス１０６上にインストールされる特定のコンポーネントハンドラ１２０を識別するコンポーネント／アクションペアを備えている。コンポーネントハンドラ１２０は、特定のコンポーネントタイプを持つコンポーネントを処理するために設計されたプログラムである。例えば、コンポーネントタイプは、ファイルのフォーマットを識別するＭＩＭＥタイプである。一つの実施例では、コンポーネントタイプは、コンポーネントファイルの初めに追加されたキャラクタのストリングとして与えられる。本質的に、コンポーネントタイプは、コンポーネントのデータが取り扱われる方法を定義する。
【００３５】
コンポーネント／アクションペアを解析することに応答して、デバイスは、サーバ１０２からコンポーネントハンドラ１２０をダウンロードし、デバイスのインストールされたコンポーネントハンドラ１２２の一部としてコンポーネントハンドラ１２０をインストールする。コンポーネントハンドラ１２０がデバイス１０６内にインストールされたとき、それは、デバイスのオペレーティングシステムレジストリ内に登録される。これによって、対応するコンポーネントタイプを持つコンポーネントを処理するために起動されるようになる。例えば、オペレーティングシステムレジストリは、例えばＵＲＬ、文書、画像、又はその他のデータファイルのようなあるコンポーネントタイプを取り扱うためにどのハンドラが用いられるのかを識別する。
【００３６】
コンポーネントハンドラ１２０がデバイス１０６上にインストールされた後、コンポーネントハンドラ１２０は、選択されたコンポーネントタイプを持つ任意のコンポーネントを処理するように動作する。一つの実施例では、このシステムが、未だにインストールされていないコンポーネントを取り扱うために、コンポーネントハンドラをインストールするように動作する。例えば、このシステムは、デバイス上のコンポーネントを自動的に処理する以下に示すステップを実行する。  
１．デバイス上にコンポーネントハンドラをインストールし、特定のコンポーネントタイプを処理する。  
２．特定のコンポーネントタイプを持つデバイスにデータコンポーネントをダウンロードする。  
３．コンポーネントハンドラを用いてデータコンポーネントを処理する。
【００３７】
従って、このシステムは、コンポーネントの新たなバージョンが、サーバ１０２からダウンロードされ、デバイス１０６上で処理されるように動作する。コンポーネントは、選択されたコンポーネントタイプを処理するように動作するコンポーネントハンドラを備えている。デバイス上の新たなコンポーネントタイプを処理するために、新たなコンポーネントハンドラが先ずオペレーティングシステムレジストリ内にインストールされ、その後、新たなコンポーネントを処理するために起動される。
【００３８】
図２は、デバイス２００の機能図を示す。これは、デバイス２００上のコンポーネントを自動的に処理するシステムの一つの実施例を含む。このデバイスは、処理ロジック２０８と、比較ロジック２０６と、機能ロジック２１４と、バージョン更新ロジック２２４と、格納されたアクションリストバージョン識別子（ＡＬＶＩ）２０４と、コンポーネントバージョン識別子（ＣＶＩ）２１２と、インストールされたコンポーネントハンドラ２３０と、インストールされたコンポーネント２２６とを備える。デバイス２００によって提供されたロジック及び機能は、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって実現することができる。例えば、一つ又は複数の実施例では、図２に示す機能要素は、ＣＰＵと、プロセッサと、ゲートアレイと、ハードウェアロジックと、メモリ要素と、仮想マシンと、ソフトウェアと、あるいはハードウェア及びソフトウェアの任意の組み合わせとを備える。従って、処理ロジック２０８は一般に、機械読取可能命令を実行し、ここに記載した機能を実現するロジックを備えている。デバイス２００は、単に一つの実施例を示しており、デバイス要素の変更、追加、又は再配置は、本発明の範囲から逸脱することなくなされることが留意されるべきである。
【００３９】
図３は、例えばデバイス２００のようなデバイスを動作させ、デバイス２００上のコンポーネントを自動的に処理するためのシステムを提供する方法３００の一つの実施例を示す。明確さの目的のために、この方法３００は、図２に示すデバイス２００に関連して記載される。デバイス２００が、図１に示すように、データネットワークを経由してダウンロードサーバと安全に通信していることが更に仮定される。
【００４０】
ブロック３０２では、デバイスが、ダウンロードサーバからアクションリストバージョン識別子を取得する。例えば、デバイスが、データネットワークを経由してダウンロードサーバと通信し、２０２に示すように、ダウンロードサーバが、アクションリストバージョン識別子をデバイスに送信する。
【００４１】
ブロック３０４では、テストが行われ、ダウンロードされたアクションリストバージョン識別子が、デバイスによって処理される最後のアクションリストに関連している格納されたバージョン識別子と異なっているかが判定される。例えば、このダウンロードされたバージョン識別子２０２と、格納されたバージョン識別子２０４とが比較ロジック２０６に入力される。比較ロジック２０６は、これら２つの識別子を比較し、これらが等価であるかを判定する。もしもこれら２つの識別子が等価であれば、本方法はブロック３０２に戻り、別の機会に、新たなバージョンのアクションリストを取得する。もしもこれら２つのバージョン識別子が異なれば（Ｄｉｆｆ．）、本方法はブロック３０６に進む。
【００４２】
ブロック３０６では、デバイスが、ダウンロードサーバからアクションリストを検索する。例えば、アクションリスト２１０は、サーバからデータネットワークを経由して処理ロジック２０８にダウンロードされる。
【００４３】
ブロック３０８では、アクションリスト内の第１のコンポーネント／アクションペアを解析することによってデバイスが、このアクションリストの処理を開始する。例えば、処理ロジック２０８は、ダウンロードされたアクションリスト２１０を処理してコンポーネント／アクションペアを解析するように動作する。
【００４４】
ブロック３１０では、テストが行われ、必要であれば、現在処理されているコンポーネント／アクションペアのために、何のアクションが必要であるかが判定される。一つの実施例では、デバイスは、ブロック３１２に進むことによって、このアクションを自動的に実行するように動作する。
【００４５】
しかしながら、これは、デバイス上に再インストールされている既存のコンポーネントという結果になるかもしれない。別の実施例では、コンポーネントのバージョンがチェックされ、アクションが必要であるかが判定される。例えば、このアクションが、コンポーネントを「インストール」することであれば、このコンポーネントのバージョンがチェックされ、このデバイスが、現在インストールされているコンポーネントのバージョンを持っているかが確認される。従って、本方法は、デバイス上に既にインストールされたコンポーネントを再インストールすることを回避するよう動作する。例えば、処理ロジック２０８は、格納されたコンポーネントバージョン識別子２１２を検索し、それを、アクションリスト内で識別されたコンポーネントのバージョンと比較する。一つの実施例では、コンポーネントのバージョンが、アクションリスト内に提供されたコンポーネント識別子に組み込まれる。もしもこれら２つのコンポーネントバージョンが同一であれば、そのコンポーネントに関して更なるアクションは必要とされず、本方法はブロック４１６に進む。もしもこれら２つのコンポーネントバージョンが異なれば、処理ロジック２０８は、コンポーネントに関連付けられたアクションを実施するように動作し、本方法はブロック３１２に進む。
【００４６】
ブロック３１２では、現在のコンポーネント／アクションペア内のコンポーネントに関連付けられたアクションが実行され、識別されたコンポーネントの状態が変更される。例えば、処理ロジック２０８は、アクションロジック２１４を制御し、識別されたコンポーネントのインストール、更新、削除、起動、ディセーブル、リコール、すなわちこのコンポーネントの状態の変更のアクションを実行するように動作する。例えば、ソフトリコールは、コンポーネントがデバイスから削除されたが、関連付けられたデータ及び／又はライセンス情報が除去されない場合に実行されうる。例えば、もしもこのアクションが、コンポーネントをインストール又は更新するものであれば、処理ロジック２０８が、データネットワークを経由してダウンロードサーバからコンポーネント２２２をダウンロード（又は更新）するように動作する。このダウンロードされたコンポーネントは、インストールされたコンポーネント２２６としてインストールされる。処理ロジック２０８は、あらゆる種類のインストール又は更新処理を実施し、ダウンロードされたコンポーネント２２２を、インストールされたコンポーネント２２６としてインストール又は更新する。もしもこのアクションが、コンポーネントを削除することであれば、処理ロジック２０８は、削除ロジック２２０を制御して、インストールされたコンポーネント２２６から、識別されたコンポーネントを削除する。
【００４７】
図２及び図３には示されていないが、例えばインストール、更新、削除、リコール、起動、非起動、すなわち、デバイス上のコンポーネントの状態の変更といった事実上いかなる種類のアクションであっても、コンポーネントに関して実行される。
【００４８】
ブロック３１４では、コンポーネントバージョンリストが更新され、コンポーネントの新たなバージョンがインストール又は更新されたこと、あるいは、コンポーネントが削除されたことが反映される。例えば、処理ロジック２０８が、バージョン更新ロジック２２４を制御して、格納されたコンポーネントバージョン識別子２１２を、現在処理されているコンポーネントに関する新たな情報を用いて更新する。
【００４９】
ブロック３１６では、テストが行われ、アクションリスト内のコンポーネント／アクションペアの全てが処理されたかが判定される。もしも全てのペアが処理されたならば、本方法はブロック３２０に進む。もしも全てのペアが処理されたわけではないのであれば、本方法はブロック３１８に進み、次のペアがブロック３１０における処理のためにアクセスされる。アクションリスト２１０は、任意の長さでありうるので、処理されるコンポーネント／アクションペアは任意の数存在する。
【００５０】
ブロック３２０では、このデバイスで格納されたアクションリストバージョン識別子が更新される。例えば、処理ロジック２０８が、更新バージョンロジック２２４を制御して、格納されたアクションリストバージョン識別子２０４を、最も最近処理されたアクションリストに関連付けられた識別子を用いて更新する。従って、新たなバージョンのアクションリストが利用可能になるまで、このシステムは、別のアクションリストを処理するように動作することはない。
【００５１】
一つの実施例では、デバイス上のコンポーネントを自動的に処理するシステムは、処理ロジック２０８によって実行されたときに、ここに記載された機能を提供するコンピュータ読取可能媒体に格納されたプログラム命令を備える。例えば、命令は、例えばフロッピー（登録商標）ディスク、ＣＤＲＯＭ、メモリカード、フラッシュメモリデバイス、ＲＡＭ、ＲＯＭ、又はデバイス２００にインタフェースする任意の種類のメモリデバイスやコンピュータ読取可能媒体のようなコンピュータ読取可能媒体からデバイス２００へとロードされる。別の実施例では、この命令は、データネットワークを経由してデバイス２００にインタフェースするネットワークリソースからデバイス２００へとロードされうる。この命令は、処理ロジック２０８によって実行されたとき、ここに記載したようなデバイス上のコンポーネントを自動的に処理するシステムの一つ又は複数の実施例を提供する。
【００５２】
本方法３００は、ほんの一つの実施例を示しており、本発明要素の変形、追加、再配置は、本発明の範囲を逸脱することなくなされることに留意されたい。
【００５３】
図４は、特定のコンポーネントタイプについて動作するように設計されたコンポーネントハンドラを処理するデバイスを操作する方法４００の一つの実施例を示す。明確さの目的のために、この方法４００は、図２に示すデバイス２００を参照して記述している。方法３００は、上述したように、アクションリストをダウンロードし、コンポーネントを処理するために使用されるものと仮定される。方法４００は更に、システムがどのようにして特定のコンポーネントタイプ上で動作するように設計されたコンポーネントハンドラであるコンポーネントを処理するように動作するのかを記載している。一つ又は複数の実施例では、以下に示す方法ステップが、プログラム命令の実行の間、処理ロジック２０８によって実行される。
【００５４】
ブロック４０２では、システムが、ダウンロードされたアクションリストから取得されたコンポーネント／アクションペアを解析する。例えば、アクションリストは、図３のブロック３０６に関して記載されたように取得される。
【００５５】
ブロック４０４では、テストが実行され、コンポーネント／アクションペアに関連して何れかのアクションを講じる必要があるかが判定される。例えば、コンポーネント／アクションペア内のコンポーネントのバージョンが、格納されたコンポーネントバージョンと比較され、もしも２つのバージョンが異なれば、識別されたコンポーネントに関連して、対応するアクションが講じられる。
【００５６】
ブロック４０６では、幾つかのアクションが講じられると仮定して、テストが実行され、識別されたコンポーネントがコンポーネントハンドラであるかが判定される。コンポーネントハンドラは、選択されたコンポーネントタイプ上で動作するように設計されたプログラムである。もしもこのコンポーネントがコンポーネントハンドラであると判定されたのであれば、本方法はブロック４０８に進む。
【００５７】
ブロック４０８では、識別されたコンポーネントハンドラが、デバイスにダウンロードされる。例えば、コンポーネントハンドラ２２８は、例えばサーバ１０２のようなサーバからダウンロードされる。
【００５８】
ブロック４１０では、コンポーネントハンドラがデバイス上にインストールされる。例えば、コンポーネントハンドラは、デバイスのオペレーティングシステムレジストリ内にアプリケーションとして登録され、特定のコンポーネントタイプを持ったコンポーネント上で動作する。一つの実施例では、オペレーティングシステムのレジストリは、処理ロジック２０８の一部である。登録後、コンポーネントハンドラ２２８は、デバイス２００上にインストールされたコンポーネントハンドラ２３０の一部となる。
【００５９】
ブロック４１２では、インストールされたコンポーネントハンドラのバージョン識別子が、デバイス上に配置され格納されたコンポーネントバージョン識別子内で更新される。例えば、更新バージョンロジック２２４は、最近インストールされたコンポーネントハンドラ２２８のバージョンを用いて、この格納されたコンポーネントバージョン識別子２１２を更新する。本方法４００は、その後、ブロック４０２に進み、次のコンポーネント／アクションペアを解析する。
【００６０】
以降の記述では、ブロック４０２とブロック４０４は、デバイス上で処理されるコンポーネントを識別する次のコンポーネント／アクションペアを解析すると仮定されよう。
【００６１】
ブロック４０６では、テストが実行され、識別されたコンポーネントがコンポーネントハンドラであるかが判定される。もしもこのコンポーネントがコンポーネントハンドラではないならば、本方法は、ブロック４１４に進む。
【００６２】
ブロック４１４では、コンポーネントがデバイスにダウンロードされる。例えば、処理ロジック２０８がサーバからコンポーネント（一般に２２２で示す）をダウンロードする。
【００６３】
ブロック４１６では、コンポーネントのフォーマットタイプが判定される。例えば、コンポーネント内の情報のフォーマット、及び／又はこの情報がどのように処理されるべきかを示すその他のフォーマットの選択されたＭＩＭＥタイプを持っている。
【００６４】
ブロック４１８では、コンポーネントタイプに関連付けられたコンポーネントハンドラが、コンポーネントを処理するために起動される。例えば、オペレーティングシステムレジストリは、選択されたコンポーネントタイプを処理するためにどのコンポーネントハンドラが使用されるべきかを判定するために使用される。レジストリにより識別されたハンドラは、コンポーネントを処理するために起動される。例えば、処理ロジック２０８は、インストールされたコンポーネントハンドラ２３０のうちの一つを起動し、コンポーネントを処理する。
【００６５】
ブロック４２０では、起動されたコンポーネントハンドラがコンポーネントを処理する。例えば、コンポーネントハンドラは、データをインストール、削除、更新、起動、マージする、すなわち、デバイス上のコンポーネントの状態を変更するために動作する。
【００６６】
ブロック４２２では、デバイス上に格納されたコンポーネントバージョン識別子が、新たなコンポーネントバージョンを用いて更新される。例えば、更新バージョンロジック２２４は、デバイス上に格納されたコンポーネントバージョン識別子２１２を更新する。その後、本方法は、ブロック４０２において次のコンポーネント／アクションペアを処理するために進む。
【００６７】
従って、本方法４００は、ダウンロードされたコンポーネントを処理するために次に使用されるコンポーネントハンドラをダウンロード及びインストールするように動作する。ハンドラは、特定のコンポーネントタイプを処理するために設計され、インストールされたとき、デバイスのレジストリ内に登録される。特定のタイプを持っているコンポーネントが、デバイス上で処理されるとき、ハンドラを起動して、コンポーネント上の必要な処理を実行するためにレジストリが使用される。その後、デバイスにおけるコンポーネントバージョン識別子が更新される。
【００６８】
別の実施例では、コンポーネントハンドラ２２８と、関連付けられたコンポーネントとが異なるアクションリストを用いてデバイス２００にダウンロードされる。例えば、コンポーネントハンドラをダウンロードしインストールするために第一のアクションリストが使用され、このコンポーネントを処理するために第二のアクションリストが使用される。ここでは、前にインストールされたコンポーネントハンドラが、コンポーネントを処理する。
【００６９】
別の実施例では、コンポーネントハンドラ２２８が、その他の任意のインストール技術を用いてデバイス２００上にインストールされる。例えば、コンポーネントハンドラは、別々の送信を用いてダウンロードサーバからインストールされるか、あるいはこのコンポーネントハンドラは、ローカルなシステム又はデバイスからインストールされる。しかしながら、コンポーネントハンドラが一旦インストールされると、それはオペレーティングシステムレジストリ内に登録され、対応するコンポーネントを処理するために使用される。
【００７０】
図５は、デバイスを起動して、特定のコンポーネントタイプ上で動作するように設計されたコンポーネントハンドラを処理する方法５００の一つの実施例を示す。明確さの目的のために、本方法５００は、図２に示すデバイス２００に関連して説明される。本方法５００は、上述したように、アクションリストをダウンロードし、コンポーネントを処理するために使用されることが仮定されよう。本方法５００は更に、特定のコンポーネントタイプ上で動作するように設計されたコンポーネントハンドラを処理するためにシステムがどのように動作するのかを記述している。一つ又は複数の実施例では、プログラム命令の実行の間、以下に示す方法ステップが処理ロジック２０８によって実行される。
【００７１】
ブロック５０２では、アクションリストが解析され、デバイス上で処理されるコンポーネント／アクションペアが取得される。ブロック５０４では、テストが実行され、識別されたコンポーネントに関連して、何れかのアクションが必要とされるのかが判定される。もしもデバイス上の識別されたコンポーネントの状態を変更するためにアクションが必要とされるのであれば、本方法はブロック５０６に進む。
【００７２】
ブロック５０６では、コンポーネントを処理するために必要とされるコンポーネントハンドラが判定される。例えば、一つの実施例では、アクションリスト内のコンポーネント識別子は、コンポーネントのタイプを識別する「タイプ」識別子を含んでいる。処理ロジック２０８は、この「タイプ」表示を用いて、コンポーネントを処理するために必要なコンポーネントハンドラを判定する。
【００７３】
ブロック５０８では、テストが実行され、必要とされるコンポーネントハンドラが、デバイス上に現在存在するのかが判定される。例えば、処理ロジック２０８は、インストールされたコンポーネントハンドラ２２６を検査し、必要なハンドラがインストールされたかを判定する。もしも必要なハンドラがインストールされているのであれば、本方法はブロック５１６に進む。もしも必要なハンドラがインストールされていないならば、本方法は、ブロック５１０に進む。
【００７４】
ブロック５１０では、必要なコンポーネントハンドラがデバイスにダウンロードされる。例えば、一つの実施例では、処理ロジック２０８が、ダウンロードサーバからコンポーネントハンドラ２２８をダウンロードする。コンポーネントハンドラをデバイスにダウンロードするために任意の技法が使用される。
【００７５】
ブロック５１２では、デバイス上にハンドラがインストールされる。例えば、ハンドラは、オペレーティングシステムレジストリ内に登録される。これによって、選択されたコンポーネントタイプを処理するために起動されることが可能となる。ブロック５１４では、ハンドラの格納されたバージョンが更新される。例えば、更新バージョンロジック２２４は、格納されたコンポーネントバージョン識別子２１２を更新する。
【００７６】
本方法は、その後、ブロック５１６に進む。
【００７７】
ブロック５１６では、識別されたコンポーネントがデバイスにダウンロードされる。例えば、処理ロジック２０８は、識別されたコンポーネントをダウンロードサーバからダウンロードする。
【００７８】
ブロック５１８では、ダウンロードされたコンポーネントを処理するために、新たにインストールされたハンドラが起動される。例えば、処理ロジック２０８は、レジストリを用いて、コンポーネントを処理するためにインストールされたコンポーネントハンドラ２３０のうちのどれが起動されるべきかを判定する。結果として、新たにインストールされたコンポーネントハンドラが、コンポーネントを処理するために起動される。
【００７９】
ブロック５２０では、デバイス上のコンポーネントを、コンポーネントハンドラが処理し、デバイス上のコンポーネントの状態を変更する。例えば、コンポーネントハンドラは、データをインストール、削除、更新、起動、マージする、すなわち、デバイス上のコンポーネントの状態を変更するために動作する。
【００８０】
ブロック５２２では、コンポーネントの格納されたバージョン識別子が更新される。例えば、更新バージョンロジック２２４は、格納されたコンポーネントバージョン識別子２１２を更新する。本方法は、その後、ブロック５０２に進み、別のコンポーネント／アクションペアを解析する。
【００８１】
従って、本方法５００は、コンポーネントを処理するために必要なコンポーネントハンドラが利用可能であるかを判定するように動作する。もしもこのコンポーネントハンドラがデバイス上にインストールされていなければ、このハンドラがダウンロードサーバからダウンロードされ、インストールされ、その後、ダウンロードされたコンポーネントを処理するために使用される。このハンドラは、特定のコンポーネントタイプを処理するように設計され、インストールされると、デバイスのレジストリ内に登録される。特定のタイプを持つコンポーネントがデバイス上で処理されるべきであるとき、正しいハンドラを起動して、コンポーネントについて必要な処理を行うために、このレジストリが使用される。その後、デバイス上のコンポーネントバージョン識別子が更新される。
【００８２】
図６は、トランザクション６００を示す。このトランザクションは、デバイス上のコンポーネントを自動的に処理するシステムの一つの実施例の動作中、デバイスとダウンロードサーバとの間で起こる。例えば、トランザクション６００は、図１に示すサーバ１０２とデバイス１０６との間で起こる。
【００８３】
この自動処理の開始において、６０２に示すように、デバイス１０６が、サーバ１０２から、アクションリストの最新のバージョン識別子を要求する。このアクションリストは、識別された各コンポーネントに関してデバイスが実行すべきアクションを記述するコンポーネント／アクションペアを含む。このアクションリストは、定期的に変更又は更新され、アクションリストバージョン識別子は、このアクションリストの現在のバージョンを識別する。
【００８４】
サーバ１０２は、６０４に示すように、現在のアクションリストのバージョン識別子を送信することによって、デバイス１０２からの要求に対して応答する。アクションリストバージョン識別子を受信した後に、デバイスは、この識別子を、格納されたアクションリストバージョン識別子と比較する。もしもこれら２つのバージョン識別子が等価であれば、デバイスは更なるアクションを講じない。もしもこれら２つのバージョン識別子が異なっていれば、６０６に示すように、デバイス１０２は、サーバ１０２からの新たなアクションリストを要求する。
【００８５】
サーバ１０２は、６０８に示すように、新たなアクションリストを送信することによって、デバイス１０６からの要求に対して応答する。デバイス１０６は、このアクションリスト内の各コンポーネント／アクションペアを処理し、特定のコンポーネントのインストール、更新、削除、すなわち、特定のコンポーネントの状態の変更をするかしないかを判定する。もしも特定のコンポーネントが処理される必要であるとデバイス１０６が判定したのであれば、６１０に示すように、デバイス１０６が、サーバ１０２からコンポーネントを要求（または更新）する。
【００８６】
サーバ１０２は、要求されたコンポーネントをデバイス１０６に送信することによってこの要求に応答する。デバイス１０６は、このコンポーネントを受信し、必要に応じてこのコンポーネントを処理する。コンポーネントは、デバイスがローカルに格納するコンポーネントバージョン識別子を持っている。そのコンポーネントバージョン識別子は、デバイスがコンポーネントを処理した後に更新される。デバイス１０６がアクションリスト全体を解析し、必要に応じてサーバ１０２から必要な全てのコンポーネントを検索した後に、デバイス１０６は、丁度処理されたアクションリストのバージョンを用いて、ローカルに格納されたアクションリストを更新する。従って、サーバ１０２からダウンロードされたアクションリストバージョン識別子が、格納された識別子と異なるまで、デバイス１０６は、サーバ１０２からの別のアクションリストを処理するであろう。
【００８７】
図７は、デバイス上のコンポーネントを自動的に処理するシステムにおいて使用するためのアクションリスト７００の一つの実施例を示す。アクションリスト７００は、アクションリストバージョン識別子５０２を含む。アクションリストバージョン識別子７０２の後には、コンポーネント／アクションペア（７０４，７０６）が続く。例えば、コンポーネント／アクションペア７０４は、コンポーネント識別子と、対応するアクションとを含む。一つの実施例では、コンポーネント識別子はまた、コンポーネントバージョン識別子、及び「タイプ」識別子を含んでいる。コンポーネントのバージョンが、デバイス上に現在コンポーネントが存在しているか否かを判定することができるように、バージョン識別子が使用される。タイプ識別子は、コンポーネントのタイプを示し、どのハンドラがコンポーネントを処理するために必要であるかを判定するために使用される。このアクションは、インストール、更新、削除、すなわち、デバイス上のコンポーネントの状態を変更するための任意のタイプのアクションのうちの何れか一つでありうる。アクションリスト内の情報は、安全な送信及び／又は認証のための任意の適切なフォーマットを用いて符号化され、コンポーネント及びアクション識別子は、任意のタイプでありうる。一つの実施例では、ペア７０４は、デバイス上にインストールされるコンポーネントハンドラを識別し、ペア７０６は、コンポーネントハンドラによって処理されるコンポーネントを識別する。このように、デバイス上のコンポーネントを自動的に処理するシステムの一つ又は複数の実施例が説明され、記載されたが、これら精神又は本質的な特徴から逸脱することなく種々の変更が本実施例に対してなされるものと理解されよう。よって、この開示及び記述は、特許請求の範囲に記述された本発明の範囲を限定するものではなく、例示することを意図している。
【図１】
2011227912.tif 000003
【図２】
2011227912.tif 000004
【図３】
2011227912.tif 000005
【図４】
2011227912.tif 000006
【図５】
2011227912.tif 000007
【図６】
2011227912.tif 000008
【図７】
2011227912.tif 000009
【手続補正書】
【提出日】平成23年7月1日(2011.7.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
デバイス上のコンポーネントを自動的に処理する方法であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記方法は、
前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラを前記デバイスにインストールすることと、
アクションリストを解析して、前記デバイスによって処理されるコンポーネントを識別するコンポーネント／アクションペアを取得することと、
前記コンポーネントを前記デバイスにダウンロードすることと、
前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定することと、
前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用することとを備える方法。
【手続補正書】
【提出日】平成23年7月26日(2011.7.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
デバイス上のコンポーネントを自動的に処理する方法であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記方法は、
前記デバイスが、
前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラをインストールし、
コンポーネントを識別するコンポーネント識別子と、コンポーネントに関連して実行されるアクションを識別するアクション識別子とを備えたコンポーネント／アクションペアを備えるアクションリストを解析して、前記デバイスによって処理されるコンポーネントに対応するコンポーネント／アクションペアを取得し、
前記取得されたコンポーネント／アクションペアに備えられたコンポーネント識別子によって識別されるコンポーネントに関連付けられたバージョン識別子に基づいて、このコンポーネントを処理するかを判定し、
処理すると判定された場合には、前記コンポーネントのコンポーネント識別子によって識別されるコンポーネントをダウンロードし、
前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定し、
前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用する
ことを備え、
前記使用するステップは、前記デバイスが、前記取得されたコンポーネント／アクションペアに備えられた前記アクション識別子によって識別されたアクションに基づき、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントのインストール、更新、削除、起動、ディセーブル、リコール、マージのうちの何れかを行う方法。
【請求項２】
請求項１に記載の方法において、前記インストールするステップは、
前記デバイスが、
前記アクションリストを受信し、
前記アクションリストを解析して、前記コンポーネントハンドラを識別する選択されたコンポーネント／アクションペアを取得し、
前記取得されたコンポーネント／アクションペアによって識別されたコンポーネントハンドラを、前記コンポーネントを処理するように動作するコンポーネントハンドラとしてインストールする
ことを備える方法。
【請求項３】
請求項１に記載の方法において、前記インストールするステップは、
前記デバイスが、
前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別し、
前記コンポーネントハンドラをダウンロードする
ことを備える方法。
【請求項４】
請求項１に記載の方法において、前記インストールするステップは、前記デバイスが、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録することを備える方法。
【請求項５】
請求項１に記載の方法において、前記デバイスが、前記デバイスに格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連付けられたバージョン識別子を用いて更新することを更に備える方法。
【請求項６】
請求項１に記載の方法において、前記デバイスは無線デバイスである方法。
【請求項７】
装置上のコンポーネントを自動的に処理する装置であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記装置は、
前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラをインストールするロジックと、
コンポーネントを識別するコンポーネント識別子と、コンポーネントに関連して実行されるアクションを識別するアクション識別子とを備えたコンポーネント／アクションペアを備えるアクションリストを解析して、前記装置によって処理されるコンポーネントに対応するコンポーネント／アクションペアを取得するロジックと、
前記取得されたコンポーネント／アクションペアに備えられたコンポーネント識別子によって識別されるコンポーネントに関連付けられたバージョン識別子に基づいて、このコンポーネントを処理するかを判定するロジックと、
処理すると判定された場合には、前記コンポーネントのコンポーネント識別子によって識別されるコンポーネントをダウンロードするロジックと、
前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定するロジックと、
前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用するロジックと
を備え、
前記使用するロジックは、前記取得されたコンポーネント／アクションペアに備えられた前記アクション識別子によって識別されたアクションに基づき、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントのインストール、更新、削除、起動、ディセーブル、リコール、マージのうちの何れかを行う装置。
【請求項８】
請求項７に記載の装置において、前記インストールするロジックは、
前記アクションリストを受信するロジックと、
前記アクションリストを解析して、前記コンポーネントハンドラを識別する選択されたコンポーネント／アクションペアを取得するロジックと、
前記取得されたコンポーネント／アクションペアによって識別されたコンポーネントハンドラを、前記コンポーネントを処理するように動作するコンポーネントハンドラとしてインストールするロジックと
を備える装置。
【請求項９】
請求項７に記載の装置において、前記インストールするロジックは、
前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別するロジックと、
前記コンポーネントハンドラをダウンロードするロジックと
を備える装置。
【請求項１０】
請求項７に記載の装置において、前記インストールするロジックは、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録するロジックを備える装置。
【請求項１１】
請求項７に記載の装置において、前記装置に格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連付けられたバージョン識別子を用いて更新するロジックを更に備える装置。
【請求項１２】
請求項７に記載の装置において、前記デバイスは無線デバイスである装置。
【請求項１３】
装置上のコンポーネントを自動的に処理する装置であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記装置は、
前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラをインストールする手段と、
コンポーネントを識別するコンポーネント識別子と、コンポーネントに関連して実行されるアクションを識別するアクション識別子とを備えたコンポーネント／アクションペアを備えるアクションリストを解析して、前記装置によって処理されるコンポーネントに対応するコンポーネント／アクションペアを取得する手段と、
前記取得されたコンポーネント／アクションペアに備えられたコンポーネント識別子によって識別されるコンポーネントに関連付けられたバージョン識別子に基づいて、このコンポーネントを処理するかを判定する手段と、
処理すると判定された場合には、前記コンポーネントのコンポーネント識別子によって識別されるコンポーネントをダウンロードする手段と、
前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定する手段と、
前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用する手段と
を備え、
前記使用する手段は、前記取得されたコンポーネント／アクションペアに備えられた前記アクション識別子によって識別されたアクションに基づき、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントのインストール、更新、削除、起動、ディセーブル、リコール、マージのうちの何れかを行う装置。
【請求項１４】
請求項１３に記載の装置において、前記インストールする手段は、
前記アクションリストを受信する手段と、
前記アクションリストを解析して、前記コンポーネントハンドラを識別する選択されたコンポーネント／アクションペアを取得する手段と、
前記取得されたコンポーネント／アクションペアによって識別されたコンポーネントハンドラを、前記コンポーネントを処理するように動作するコンポーネントハンドラとしてインストールする手段と
を備える装置。
【請求項１５】
請求項１３に記載の装置において、前記インストールする手段は、
前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別する手段と、
前記コンポーネントハンドラをダウンロードする手段と
を備える装置。
【請求項１６】
請求項１３に記載の装置において、前記インストールする手段は、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録する手段を備える装置。
【請求項１７】
請求項１３に記載の装置において、前記装置に格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連付けられたバージョン識別子を用いて更新する手段を更に備える装置。
【請求項１８】
請求項１３に記載の装置において、前記デバイスは無線デバイスである装置。
【請求項１９】
デバイス内のロジックを処理することによって実行されると、前記デバイス上のコンポーネントを自動的に処理するように動作する命令を備えたコンピュータ読取可能媒体であって、前記コンポーネントは、選択されたコンポーネントタイプを持っており、前記コンピュータ読取可能媒体は、
前記選択されたコンポーネントタイプを持つコンポーネントを処理するように動作するコンポーネントハンドラを前記デバイスにインストールするための命令と、
コンポーネントを識別するコンポーネント識別子と、コンポーネントに関連して実行されるアクションを識別するアクション識別子とを備えたコンポーネント／アクションペアを備えるアクションリストを解析して、前記デバイスによって処理されるコンポーネントに対応するコンポーネント／アクションペアを取得するための命令と、
前記取得されたコンポーネント／アクションペアに備えられたコンポーネント識別子によって識別されるコンポーネントに関連付けられたバージョン識別子に基づいて、このコンポーネントを処理するかを判定するための命令と、
処理すると判定された場合には、前記コンポーネントのコンポーネント識別子によって識別されるコンポーネントを前記デバイスにダウンロードするための命令と、
前記選択されたコンポーネントタイプを前記コンポーネントが持っていることを判定するための命令と、
前記コンポーネントハンドラを起動させて前記コンポーネントを処理するために、前記選択されたコンポーネントタイプを使用するための命令と
を備え、
前記使用するための命令は、前記取得されたコンポーネント／アクションペアに備えられた前記アクション識別子によって識別されたアクションに基づき、前記選択されたコンポーネントハンドラを使用して、前記デバイス上のコンポーネントのインストール、更新、削除、起動、ディセーブル、リコール、マージのうちの何れかを行うコンピュータ読取可能媒体。
【請求項２０】
請求項１９に記載のコンピュータ読取可能媒体において、前記インストールするための命令は、
前記デバイスにおいて前記アクションリストを受信するための命令と、
前記アクションリストを解析して、前記コンポーネントハンドラを識別する選択されたコンポーネント／アクションペアを取得するための命令と、
前記取得されたコンポーネント／アクションペアによって識別されたコンポーネントハンドラを、前記コンポーネントを処理するように動作するコンポーネントハンドラとしてインストールするための命令と
を備えるコンピュータ読取可能媒体。
【請求項２１】
請求項１９に記載のコンピュータ読取可能媒体において、前記インストールするための命令は、
前記選択されたコンポーネントタイプから前記コンポーネントハンドラを識別するための命令と、
前記コンポーネントハンドラを前記デバイスにダウンロードするための命令と
を備えるコンピュータ読取可能媒体。
【請求項２２】
請求項１９に記載のコンピュータ読取可能媒体において、前記インストールするための命令は、前記選択されたコンポーネントハンドラをデバイスレジストリ内に登録するための命令を備えるコンピュータ読取可能媒体。
【請求項２３】
請求項１９に記載のコンピュータ読取可能媒体において、前記デバイスに格納されたコンポーネントバージョン識別子を、前記コンポーネントに関連付けられたバージョン識別子を用いて更新するための命令を更に備えるコンピュータ読取可能媒体。
【請求項２４】
請求項１９に記載のコンピュータ読取可能媒体において、前記デバイスは無線デバイスであるコンピュータ読取可能媒体。
【外国語明細書】
2011227912000001.pdf