(57)【要約】【課題】無線デバイス上のソフトウエアアプリケーションをソフトウエアアプリケーションの実行期間中に任意にアップグレードするためのシステムおよび方法。【解決手段】システムは常駐して実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信することを含む。システムはさらに常駐して実行可能なアプリケーションのアクティブな実行を検出することを含む。システムはまた、ネットワークを経由してアプリケーションの異なったバージョンを受信することを含む。また、システムは常駐して実行可能なアプリケーションのアクティブな実行を検出することに応じてアプリケーションの異なったバージョンを一時的な位置に保管することを含む。さらに、システムは常駐して実行可能なアプリケーションのアクティブな実行を終了することを含む。【選択図】      図６
2007511822.tif 000002
【特許請求の範囲】
【請求項１】
無線デバイス上に常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換するための方法であって、
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンに置換するための要求を受信し、
常駐する実行可能なアプリケーションのアクティブな実行を検出し、
ネットワークを経由してアプリケーションの異なったバージョンを受信し、
常駐する実行可能なアプリケーションのアクティブな実行を検出することに応じてアプリケーションの異なったバージョンを一時的な位置に保管し、
常駐する実行可能なアプリケーションのアクティブな実行を終了し、
常駐する実行可能なアプリケーションを一時的な位置に保管された異なったバージョンで上書きし、そして
アプリケーションの異なったバージョンのアクティブな実行を開始する
ことを含む方法。
【請求項２】
要求は無線デバイスによって開始される請求項１記載の方法。
【請求項３】
要求はユーザ入力の検出に伴って開始される請求項１記載の方法。
【請求項４】
アプリケーションの異なったバージョンは以前のバージョンである請求項１記載の方法。
【請求項５】
アプリケーションはエクステンション、スクリプト、および内容データの少なくとも１個である請求項１記載の方法。
【請求項６】
一時的な位置は、周辺デバイス、および遠隔ネットワーク位置の少なくとも一つの上にある請求項１記載の方法。
【請求項７】
常駐する実行可能なアプリケーションを含む無線デバイスであって、
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することの要求を受信するために構成された論理と、
常駐する実行可能なアプリケーションのアクティブな実行を検出するように構成された論理と、
ネットワークを経由して、アプリケーションの異なったバージョン受信するように構成された論理と、
常駐する実行可能なアプリケーションのアクティブな実行を検出することに応じて一時的な位置にアプリケーションの異なったバージョンを保管するように構成された論理と、
常駐する実行可能なアプリケーションのアクティブな実行を終了するように構成された論理と  
常駐する実行可能なアプリケーションを一時的な位置に保管されたアプリケーションの異なったバージョンで上書きするように構成された論理と、そして
アプリケーションの異なったバージョンのアクティブな実行を開始するよう構成された論理と
を含む無線デバイス。
【請求項８】
要求は無線デバイスによって開始される請求項７記載の無線デバイス。
【請求項９】
要求はユーザ入力の検出に伴って開始される請求項７記載の無線デバイス。
【請求項１０】
アプリケーションの異なったバージョンは以前のバージョンである請求項７記載の無線デバイス。
【請求項１１】
アプリケーションはエクステンション、スクリプトおよび内容データの少なくとも１個である請求項７記載の無線デバイス。
【請求項１２】
一時的な位置は周辺デバイスおよび遠隔ネットワーク位置である請求項７記載の無線デバイス。
【請求項１３】
計算機が読み出し可能な媒体上に具体化された計算機プログラムであって、計算機プログラムは無線デバイス上に常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することが可能であり、計算機プログラムは
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することの要求を受信することを実行可能であるコードと、
常駐する実行可能なアプリケーションのアクティブな実行を検出することを実行可能なコードと、
ネットワークを経由してアプリケーションの異なったバージョンを受信することを実行可能なコードと、
常駐する実行可能なアプリケーションのアクティブな実行を検出することに応じて一時的な位置にアプリケーションの異なったバージョンを保管することを実行可能なコードと、
常駐する実行可能なアプリケーションのアクティブな実行を終了することを実行可能なコードと、
常駐する実行可能なアプリケーションを一時的な位置に保管されたアプリケーションの異なったバージョンで上書きすることを実行可能なコードと、そして
アプリケーションの異なったバージョンのアクティブな実行を開始することを実行可能なコードと
を含む計算機プログラム。
【請求項１４】
アプリケーションは少なくとも、エクステンション、スクリプトおよび内容データの１個を含む請求項１３記載のプログラム。
【請求項１５】
常駐するアプリケーションを含む無線デバイスであって
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョン置換することの要求を受信するための手段と、
常駐する実行可能なアプリケーションのアクティブな実行を検出するための手段と、
ネットワークを経由してアプリケーションの異なったバージョンを受信するための手段と、
常駐する実行可能なアプリケーションのアクティブな実行を検出することに応じて一時的な位置にアプリケーションの異なったバージョンを記憶するための手段と、
常駐する実行可能なアプリケーションのアクティブな実行を終了するための手段と、
常駐する実行可能なアプリケーションを一時的な位置に保管されたアプリケーションの異なったバージョンで上書きするための手段と、そして
アプリケーションの異なったバージョンのアクティブな実行を開始するための手段と
を含む無線デバイス。
【請求項１６】
アプリケーションは少なくとも、エクステンション、スクリプトおよび内容データの１個である請求項１５記載のデバイス。
【請求項１７】
無線デバイス上に常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換するための方法であって、方法は、
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することの要求を受信し、
ネットワークを経由して、アプリケーションの異なったバージョンを受信し、
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換する要求を受信することに応じて一時的な位置にアプリケーションの異なったバージョンを保管し、
常駐する実行可能なアプリケーションのアクティブな実行を検出し、
常駐する実行可能なアプリケーションのアクティブな実行を終了し、
常駐する実行可能なアプリケーションを一時的な位置に保管された異なったバージョンで上書きし、そして
アプリケーションの異なったバージョンのアクティブな実行を開始する
ことを含む方法。
【請求項１８】
要求は無線デバイスによって開始される請求項１７記載の方法。
【請求項１９】
要求はユーザ入力の検出に伴って開始される請求項１７記載の方法。
【請求項２０】
アプリケーションの異なったバージョンは以前のバージョンである請求項１７記載の方法。
【請求項２１】
常駐する実行可能なアプリケーションは少なくとも、エクステンション、スクリプトおよび内容データのうちの１個である請求項１７記載の方法。
【請求項２２】
一時的な位置は、周辺デバイスおよび遠隔ネットワーク位置の少なくとも１個である、請求項１７記載の方法。
【請求項２３】
常駐する実行可能なアプリケーションを含む無線デバイスであって、
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することの要求を受信するよう構成された論理と、
ネットワークを経由してアプリケーションの異なったバージョン受信するよう構成された論理と
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することの要求を受信することに応じて一時的な位置にアプリケーションの異なったバージョンを保管するよう構成された論理と、
常駐する実行可能なアプリケーションのアクティブな実行を検出するよう構成された論理と、
常駐する実行可能なアプリケーションを、一時的な位置に保管されたそのアプリケーションの異なったバージョンで上書きするよう構成された論理と、そして
アプリケーションの異なったバージョンのアクティブな実行を開始するように構成された論理と
を含む無線デバイス。
【請求項２４】
要求は無線デバイスによって開始される請求項２３記載の無線デバイス。
【請求項２５】
要求はユーザ入力の検出によって開始される請求項２３記載の無線デバイス。
【請求項２６】
アプリケーションの異なったバージョンは以前のバージョンである請求項２３記載の無線デバイス。
【請求項２７】
常駐する実行可能なアプリケーションは、エクステンション、スクリプトおよび内容データの少なくとも１個である、請求項２３記載の無線デバイス。
【請求項２８】
一時的な位置は、周辺デバイス、および遠隔ネットワーク位置の少なくとも１個である、請求項２３記載の無線デバイス。
【請求項２９】
計算機によって読み出し可能な媒体上に実現された計算機プログラムであって、計算機プログラムは無線デバイス上に常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することが可能であり、計算機プログラムは、
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することの要求を受信することを実行可能なコードと、
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することの要求を受信することに応じて、アプリケーションの異なったバージョンを一時的な位置に保管することを実行可能なコードと、
常駐する実行可能なアプリケーションのアクティブな実行を検出することを実行可能なコードと、
常駐する実行可能なアプリケーションのアクティブな実行を終了することを実行可能なコードと、
常駐する実行可能なアプリケーションを、一時的な位置に保管されたアプリケーションの異なったバージョンで上書きすることを実行可能なコードと、そして
アプリケーションの異なったバージョンのアクティブな実行を開始することを実行可能なコードと
を含む計算機プログラム。
【請求項３０】
アプリケーションはエクステンション、スクリプトおよび内容データの少なくとも１個である、請求項２９記載の計算機プログラム。
【請求項３１】
クライアント計算デバイスとネットワーク上で安全な通信を処理するための無線デバイスであって、常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することの要求を受信するための手段と、
ネットワークを経由してアプリケーションの異なったバージョンを受信するための手段と、
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することの要求を受信することに応じて、アプリケーションの異なったバージョンを一時的な位置に保管するための手段と、
常駐する実行可能なアプリケーションのアクティブな実行を検出するための手段と、
常駐する実行可能なアプリケーションのアクティブな実行を終了するための手段と
常駐する実行可能なアプリケーションを一時的な位置に保管されたアプリケーションの異なったバージョンで上書きするための手段と、そして
アプリケーションの異なったバージョンのアクティブな実行を開始するための手段と
を含む無線デバイス。
【請求項３２】
アプリケーションはエクステンション、スクリプトおよび内容データの少なくとも１個である請求項３１記載の無線デバイス。
【請求項３３】
無線デバイス上に常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換するための方法であって、常駐する実行可能なアプリケーションをこのアプリケーションの異なったバージョンで置換することの要求を受信し、
ネットワークを経由してアプリケーションの異なったバージョンを受信し
常駐する実行可能なアプリケーションをこのアプリケーションの異なったバージョンで置換する要求を受信することに応じてアプリケーションの異なったバージョンをアップグレード位置に保管し、
アクティブなアプリケーション位置にある常駐する実行可能なアプリケーションのアクティブな実行を検出し、
常駐する実行可能なアプリケーションのアクティブな実行を終了し、そして
アップグレード位置およびアクティブなアプリケーション位置に関する順次の探索において検出された第１のアプリケーションの実行を開始する
ことを含む方法。
【請求項３４】
要求は無線デバイスによって開始される請求項３３の方法。
【請求項３５】
要求は、ユーザ入力の検出とともに開始される請求項３３記載の方法。
【請求項３６】
アプリケーションの異なったバージョンは以前のバージョンである、請求項３３記載の方法。
【請求項３７】
常駐する実行可能なアプリケーションはエクステンション、スクリプトおよび内容データの少なくとも１個である請求項３３記載の方法。
【請求項３８】
一時的な位置は周辺デバイスおよび遠隔ネットワーク位置の少なくとも１個である請求項３３記載の方法。
【請求項３９】
常駐する実行可能なアプリケーションを含む無線デバイスであって
常駐する実行可能なアプリケーションを、そのアプリケーションの異なったバージョンで置換することの要求を受信するように構成された論理と、
ネットワークを経由してアプリケーションの異なったバージョンを受信するように構成された論理と、
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することの要求を受信することに応じてアプリケーションの異なったバージョンをアップグレード位置に保管するように構成された論理と、
アクティブアプリケーション位置にある常駐する実行可能なアプリケーションのアクティブな実行を検出するように構成された論理と、
常駐する実行可能なアプリケーションのアクティブな実行を終了するように構成された論理と、
アップグレード位置およびアクティブアプリケーション位置に関する順次の探索において検出された第１のアプリケーションの実行を開始するように構成された論理と
を含む無線デバイス。
【請求項４０】
要求は無線デバイスによって開始される請求項３９記載の無線デバイス。
【請求項４１】
要求はユーザ入力の検出に伴って開始される請求項３９記載の無線デバイス。
【請求項４２】
アプリケーションの異なったバージョンは以前のバージョンである請求項３９記載の無線デバイス。
【請求項４３】
常駐する実行可能なアプリケーションはエクステンション、スクリプトおよび内容データの少なくとも１個である、請求項３９記載の無線デバイス。
【請求項４４】
アップグレード位置は、周辺デバイスおよび遠隔ネットワーク位置の少なくとも１個である請求項３９記載の無線デバイス。
【請求項４５】
計算機により読み出し可能な媒体上に実現された計算機プログラムであって、
計算機プログラムは、無線デバイス上に常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することが可能であり、計算機プログラムは、
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することの要求を受信することが可能なコードと、
ネットワークを経由して、アプリケーションの異なったバージョンを受信することを実行可能なコードと、
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することの要求を受信することに応じてアプリケーションの異なったバージョンをアップグレード位置に保管することを実行可能なコードと、
アクティブなアプリケーション位置にある常駐する実行可能なアプリケーションのアクティブな実行を検出することを実行可能なコードと、
常駐する実行可能なアプリケーションのアクティブな実行を終了することを実行可能なコードと、そして
アップグレード位置およびアクティブなアプリケーション位置に関する順次の探索において検出された第１のアプリケーションの実行を開始することを実行可能なコードと
を含んでいる計算機プログラム。
【請求項４６】
アプリケーションはエクステンション、スクリプトおよび内容データの少なくとも１個である請求項４５記載の計算機プログラム。
【請求項４７】
常駐する実行可能なアプリケーションを含む無線デバイスであって、
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することの要求を受信するための手段と、
ネットワークを経由してアプリケーションの異なったバージョンを受信するための手段と、
常駐する実行可能なアプリケーションをそのアプリケーションの異なったバージョンで置換することの要求を受信するに応じてアプリケーションの異なったバージョンをアップグレードした位置に保管するための手段と、
アクティブなアプリケーション位置にある常駐する実行可能なアプリケーションのアクティブな実行を検出するための手段と、常駐する実行可能なアプリケーションのアクティブな実行を終了するための手段と、そして
アップグレード位置およびアクティブアプリケーション位置に関する順次の探索において検出された第１のアプリケーションの実行を開始するための手段と
を含む無線デバイス。
【請求項４８】
アプリケーションはエクステンション、スクリプトおよび内容データの少なくとも１個である、請求項４７記載の無線デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願に対する相互参照(CROSS-REFERENCE）］
本出願は、２００３年１０月２９日に出願された、この中に参照として組み込まれた、未決定の米国暫定出願番号(Provisional application No.)６０／５１５，８０２についての優先権を主張する。  
本発明は、一般的にデータネットワークおよびデータネットワークを横断する計算機通信に関する。より特定的には、本発明は、一部分は、無線デバイス上における１個あるいはそれ以上のアプリケーションダウンロードサーバとの無線データネットワークを横断する選択的通信におけるソフトウエアアプリケーションおよびそれらのコンポーネントのインストレーション（installation）および削除に、またより特定的には本発明は一部分はソフトウエアアプリケーションの任意のアップグレード（upgrading）に関する。
【背景技術】
【０００２】
セルラ電話等の無線デバイスは、音声およびデータを含むパケットを、無線ネットワークを越えて伝達する。セルラ電話それ自身は、増加された計算能力を持って製造されており、そしてパーソナル計算機およびハンドヘルドパーソナルディジタルアシスタント（“ＰＤＡｓ：hand-held personal digital assistant)と同等 になって来ている。これらの“スマート(smart)”なセルラ電話機は、それらの局部的な計算機プラットフォーム（local computer platform）上に、ソフトウエア開発者がソフトウエアアプリケーション（通常は“プログラム”として参照される）を作成することを可能とするセルラ電話機上で完全に実行可能なアプリケーションプログラムインタフェース（ＡＰＩ：application programming interfaces）をインストールしている。ＡＰＩは無線デバイスシステムソフトウエアおよびソフトウエアアプリケーションの間に位置し、そしてセルラ電話計算機能が、ソフトウエア開発者が特定のセルラ電話システムソースコード（cellular telephone system source code）を有することを必要とすることなしにアプリケーションを利用可能にする。
【０００３】
ソフトウエアアプリケーションは、無線電話が製造されると同時にプレロード(pre-load)されることが可能であり、あるいは、ユーザが後で、付加的なプログラムがセルラ電気通信搬送ネットワーク上でダウンロードされることを要求することが可能である。そしてここで、ダウンロードされたアプリケーションは無線電話上で実行可能である。その結果、無線電話のユーザは、その無線電話をゲーム、印刷されたメディア、株式市況(stock updates)、ニュース、あるいは無線ネットワークを通じて利用可能な任意の情報あるいはアプリケーションの他の形式等の、選択的なアプリケーションのダウンロードによって、それらの無線電話を自分の好みに合わせて設定する(customize)ことが可能である。セルラ電話資源を制御するために、無線電話のユーザは、意図的に新しいアプリケーションがクリア化されたメモリ領域上にロードされることが可能なように記憶領域をクリアにするために無線電話プラットフォームからアプリケーションおよびデータを削除する。
【０００４】
パーソナル計算機およびＰＤＡに関するより大きい計算プラットフォームとは対照的に、無線デバイスは不必要なアプリケーションに振り向けるための記憶および処理のような限定された資源を有する。典型的には、電気通信アプリケーションは、利用可能な資源が割り当てられる他のアプリケーションとともに、システム資源の使用に関する優先度を有する。このように、無線デバイスは単にアプリケーションのためにすべてのファイルを維持する限定された容量を有し、そして無線デバイスに対してダウンロードされることが望まれる新しいアプリケーションのためにスペースを作るため、アプリケーションを削除することの管理は電話機のユーザの裁量に残される。そうでない場合は、無線デバイスは、保持しそして実行するための資源を有していないアプリケーションをダウンロードしないであろう。
【０００５】
無線デバイスにおいて開放された資源（free resource）を得ようとする場合に、ユーザが通常は常駐する(resident)アプリケーションのあるコンポーネントを削除することは、全常駐アプリケーションの機能を使用不可にすることなしには不可能である。もしもユーザが特定のコンポーネントを削除することを必要とする場合、このように意図する資源の開放化についての操作は、使用不能の常駐アプリケーションがアプリケーションの完全な再インストールなしには再復活することが不可能であるとして否定されるであろう。無用の削除されないアプリケーションコンポーネントは主要なアプリケーションが実行不可能である場合でさえもなお記憶スペースを不必要に占有する。この無線デバイス上の常駐するソフトウエアアプリケーションに対するオールオアナッシングの削除要求は、無線デバイス上に常駐させることが可能なそしてユーザにとって利用可能なアプリケーションの数を大いに限定する。
【０００６】
したがって、無線デバイス上の計算機資源の利用を最大とするために、ライセンス（license）あるいはユーザ固有のデータ等のアプリケーションに対する重要なデータを維持する期間中、あるコンポーネントを削除することが可能な無線デバイスを提供することは利益のあることであろう。無線デバイスがアプリケーションを再び実行するために削除されたソフトウエアコンポーネントを要求している場合には、無線デバイスは無線ネットワークを経由してソフトウエアコンポーネントを取得することが可能である。このように本発明が第１に指向するものは、無線デバイスにおいて選択されたソフトウエアアプリケーションコンポーネントの削除および再ローディングを制御することが可能なこのようなシステムおよび方法を提供 することである。
【発明の開示】
【課題を解決するための手段】
【０００７】
この中に開示された実施例は、セルラ電話、パーソナルディジタルアシスタント、携帯無線呼び出し器(pager)、あるいは他の計算機プラットフォーム等の無線デバイス上のソフトウエアアプリケーションに関するアップグレーディングのためのシステムおよび方法を含み、ここでアップグレードはソフトウエアアプリケーションの実行期間中に任意に実行される。少なくとも１個の実施例は、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信することを含む。このような実施例はさらに、常駐する実行可能なアプリケーションのアクティブな実行を検出することを含む。このような実施例はさらにアプリケーションの異なったバージョンをネットワークを経由して受信することを含む。このような実施例は、さらに、アプリケーションの異なったバージョンを、常駐する実行可能なアプリケーションのアクティブな実行の検出に応じて一時的な位置（temporary location）においてアプリケーションの異なったバージョンを保管することを含む。このような実施例は、さらに常駐する実行可能なアプリケーションのアクティブな実行を終了することを含む。またこのような実施例はさらに、常駐する実行可能なアプリケーションを一時的な位置に保管されたアプリケーションの異なったバージョンで上書きすることを含み、そしてこのような実施例はさらに、アプリケーションの異なったバージョンのアクティブな実行を開始することを含む。
【０００８】
少なくとも１個の実施例は、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信するために構成された論理（logic）を含む。このような実施例はさらに、常駐する実行可能なアプリケーションのアクティブな実行を検出するために構成された論理を含む。このような実施例は、さらにアプリケーションの異なったバージョンをネットワークを経由して受信するために構成された論理を含む。このような実施例はさらにアプリケーションの異なったバージョンを常駐する実行可能なアプリケーションのアクティブな実行の検出に応じてアプリケーションの異なったバージョンを一時的な位置に保管するために構成された論理を含む。このような実施例はさらに、常駐する実行可能なアプリケーションのアクティブな実行を終了するために構成された論理を含む。このような実施例はさらに常駐する実行可能なアプリケーションを任意の位置に保管されたアプリケーションの異なったバージョンで上書きするために構成された論理を含む。また、このような実施例はさらに、アプリケーションの異なったバージョンのアクティブな実行を開始するために構成された論理を含む。
【０００９】
少なくとも１個の実施例は、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信する動作が可能なコード（code）を含む。このような実施例はさらに常駐する実行可能なアプリケーションのアクティブな実行を検出することが可能なコードを含む。このような実施例はさらにアプリケーションの異なったバージョンをネットワークを経由して受信することが可能なコードを含む。このような実施例は、さらにアプリケーションの異なったバージョンを常駐する実行可能なアプリケーションのアクティブな実行の検出に応じて一時的な位置に保管することが可能なコードを含む。このような実施例はさらに常駐する実行可能なアプリケーションのアクティブな実行を終了することが可能なコードを含む。このような実施例はさらに常駐する実行可能なアプリケーションを一時的な位置に保管されたアプリケーションの異なったバージョンで上書きすることが可能なコードを含む。また、このような実施例はさらにアプリケーションの異なったバージョンのアクティブな実行を開始することが可能なコードを含む。
【００１０】
少なくとも１個の実施例は、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信するための手段を含む。このような実施例は、常駐する実行可能なアプリケーションのアクティブな実行を検出するための手段を含む。このような実施例はネットワークを経由してアプリケーションの異なったバージョンを受信するための手段を含む。このような実施例は、アプリケーションの異なったバージョンを常駐する実行可能なアプリケーションのアクティブな実行を検出するに応じて一時的な位置に保管するための手段を含む。このような実施例は常駐する実行可能なアプリケーションのアクティブな実行を終了させる手段を含む。このような実施例は常駐する実行可能なアプリケーションを一時的な位置に保管されたアプリケーションの異なったバージョンを用いて上書きするための手段を含む。また、このような実施例は、アプリケーションの異なったバージョンのアクティブな実行を開始するための手段を含む。
【００１１】
少なくとも１個の実施例は、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信することを含む。このような実施例はさらに、ネットワークを経由してアプリケーションの異なったバージョンを受信することを含む。このような実施例は、さらに、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換する要求を受信することに応じて、一時的な位置においてアプリケーションの異なったバージョンを保管することを含む。このような実施例はさらに、常駐する実行可能なアプリケーションのアクティブな実行を検出することを含む。このような実施例は、さらに常駐する実行可能なアプリケーションのアクティブな実行を終了することを含む。このような実施例はさらに、常駐する実行可能なアプリケーションを一時的な位置に保管されたアプリケーションの異なったバージョンで上書きすることを含む。また、このような実施例は、さらに、アプリケーションの異なったバージョンのアクティブな実行を開始することを含む。
【００１２】
少なくとも１個の実施例は、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信するために構成された論理を含む。このような実施例はまたネットワークを経由してアプリケーションの異なったバージョンを受信するために構成された論理を含む。このような実施例はさらに、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換する要求を受信するのに応じて、一時的な位置にアプリケーションの異なったバージョンを保管するために構成された論理を含む。このような実施例はさらに、常駐する実行可能なアプリケーションのアクティブな実行を検出するために構成された論理を含む。このような実施例はさらに、常駐する実行可能なアプリケーションのアクティブな実行を終了するために構成された論理を含む。このような実施例はさらに、常駐する実行可能なアプリケーションを一時的な位置に保管されたアプリケーションの異なったバージョンで上書きするために構成された論理を含む。また、このような実施例はさらに、アプリケーションの異なったバージョンのアクティブな実行を開始するために構成された論理を含む。
【００１３】
少なくとも１個の実施例は、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信することが可能なコードを含む。このような実施例はさらに、ネットワークを経由してアプリケーションの異なったバージョンを受信することが可能なコードを含む。このような実施例はさらに、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換するための要求を受信するのに応じて、一時的な位置にアプリケーションの異なったバージョンを保管することが可能なコードを含む。このような実施例はさらに、常駐する実行可能なアプリケーションのアクティブな実行を検出することが可能なコードを含む。このような実施例はさらに、常駐する実行可能なアプリケーションのアクティブな実行を終了することが可能なコードを含む。このような実施例はさらに、常駐する実行可能なアプリケーションを一時的な位置に保管された異なったバージョンの常駐する実行可能なアプリケーションで上書きすることが可能なコードを含む。また、このような実施例はさらに、アプリケーションの異なったバージョンのアクティブな実行を開始することが可能なコードを含む。
【００１４】
少なくとも１個の実施例は、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信するための手段を含む。このような実施例はさらに、ネットワークを経由してアプリケーションの異なったバージョンを受信するための手段を含む。このような実施例はさらに、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信することに応じて一時的な位置にアプリケーションの異なったバージョンを保管するための手段を含む。このような実施例はさらに、常駐する実行可能なアプリケーションのアクティブな実行を検出するための手段を含むこのような実施例はさらに、常駐する実行可能なアプリケーションのアクティブな実行を終了するための手段を含む。このような実施例はさらに、常駐する実行可能なアプリケーションを任意の位置に保管されたアプリケーションの異なったバージョンで上書きするための手段を含む。また、このような実施例はさらに、アプリケーションの異なったバージョンのアクティブな実行を開始するための手段を含む。
【００１５】
少なくとも１個の実施例は、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信することを含む。このような実施例はさらに、ネットワークを経由してアプリケーションの異なったバージョンを受信することを含む。このような実施例は、さらに、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換する要求を受信するに応じてアップグレードの位置においてアプリケーションの異なったバージョンを保管することを含む。このような実施例はさらに、アクティブなアプリケーションの位置（active application location）内に常駐する実行可能なアプリケーションのアクティブな実行を検出することを含む。このような実施例は、さらに常駐する実行可能なアプリケーションのアクティブな実行を終了することを含む。また、このような実施例は、さらに、アップグレード位置（upgrade location）およびアクティブなアプリケーションの位置の連続した検索において検出された第１のアプリケーションの実行を開始することを含む。
【００１６】
少なくとも１個の実施例は常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信するために構成された論理を含む。このような実施例はまたネットワークを経由してアプリケーションの異なったバージョンを受信するために構成された論理を含む。このような実施例はさらに、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換する要求を受信するのに応じて、アップグレードの位置にアプリケーションの異なったバージョンを保管するために構成された論理を含む。このような実施例はさらに、アクティブなアプリケーションの位置内に常駐する実行可能なアプリケーションのアクティブな実行を検出するために構成された論理を含む。このような実施例はさらに、常駐する実行可能なアプリケーションのアクティブな実行を終了するために構成された論理を含む。また、このような実施例はさらに、アップグレード位置およびアクティブなアプリケーションの位置の連続した検索において検出された第１のアプリケーションの実行を開始するように構成された論理を含む。
【００１７】
少なくとも１個の実施例は、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信することが可能なコードを含む。このような実施例は、ネットワークを経由してアプリケーションの異なったバージョンを受信することが可能なコードを含む。このような実施例は、アプリケーションの異なったバージョンを常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信することに応じてアップグレード位置にあるアプリケーションの異なったバージョンを保管するために動作可能なコードを含む。このような実施例は、アクティブアプリケーション位置にある、常駐する実行可能なアプリケーションのアクティブな実行を検出することが可能なコードを含む。このような実施例は常駐する実行可能なアプリケーションのアクティブな実行を終了するために動作可能なコードを含む。また、このような実施例は、アップグレード位置およびアクティブなアプリケーション位置の順次の探索において検出された第１のアプリケーションの実行開始のために動作可能なコードを含む。
【００１８】
少なくとも１個の実施例は常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信するための手段を含む。このような実施例は、またネットワークを経由してアプリケーションの異なったバージョンを受信するための手段を含む。このような実施例はまた、常駐する実行可能なアプリケーションをアプリケーションの異なったバージョンと置換することの要求を受信することに応じてアップグレード位置内のアプリケーションの異なったバージョンを保管するための手段を含む。このような実施例はまた、アクティブアプリケーション位置にある常駐する実行可能なアプリケーションのアクティブな実行を検出するための手段を含む。このような実施例はまた、常駐する実行可能なアプリケーションのアクティブな実行を終了するための手段を含む。また、このような実施例はアップグレード位置およびアクティブアプリケーション位置の順次の探索において検出された第１のアプリケーションを開始するための手段を含む。
【００１９】
本発明の他の目的、利点、および特徴は、以下に示される図面に関する簡単な記述、本発明の詳細な記述および請求範囲(Claims)の概観の後に明白になろう。
【発明を実施するための最良の形態】
【００２０】
図１を参照すると、そこには無線ネットワーク１４への無線通信ポータル(wireless communication portal)または他のデータアクセスを介して無線デバイスに対し選択的にソフトウエアアプリケーションおよびコンポーネントを送信する少なくとも１個のダウンロードサーバ１６を有する無線ネットワーク１４を介して通信する電話機１２のような無線デバイスにおいて、ソフトウエアアプリケーションコンポーネントを削除および再ローディングするための、本発明のシステム１０が示されている。ここに示されたように無線デバイスは、セルラ電話１２、パーソナルディジタルアシスタント１８、形態無線呼び出し器２０、ここでは２方向テキスト形態無線呼び出し器として示されている、あるいは無線通信ポータルを有し、そうでない場合はネットワークあるいはインターネットに対して有線接続２４を有することが可能な分離した計算機２２とすることが可能である。本発明のシステムはこのようにして、無線通信ポータル、限定なしに、無線モデム、ＰＣＭＣＩＡカード、アクセス端末、パーソナル計算機、アクセス端末、ディスプレーあるいはキーパッドのない電話機、あるいはこれらの任意の組み合わせ、あるいはこれらのサブ組み合わせを含む遠隔モジュールの任意の形態において実現することが可能である。
【００２１】
アプリケーションダウンロードサーバ１６はここではネットワーク２６上に無線ネットワーク１４と通信中の他の計算機エレメントとともに示されている。第２のサーバ３０およびスタンドアローンサーバ３２があり、そして各サーバは無線ネットワーク１４を越えて無線デバイス１２、１８、２０、２２に対して別々のサービスおよび処理を与えることが可能である。なるべくならばまた、無線デバイス１２、１８、２０、２２によってダウンロードが可能なアプリケーションを保管する少なくとも１個のストアードアプリケーションデータベース２８が存在する。
【００２２】
図２においては、無線ネットワーク１４のコンポーネントおよび本発明のエレメントの相互関係をさらに十分に説明するブロック線図が示される。無線ネットワーク１４は単に典型的なものであり、そしてそれによって無線デバイス１２、１８、２０、２２等の遠隔モジュール間で相互に、そしてそれぞれ互いに、そして／あるいは限定なしに無線ネットワークキャリアおよび／あるいはサーバを含む無線ネットワーク１４のコンポーネントの間およびその中で放送を介して(over-the-air）通信する任意のシステムを含むことが可能である。アプリケーションダウンロードサーバ１６および保管されたアプリケーションデータベース２８はセルラ通信サービスを与えるために必要とされるサーバ３０等の任意の他のサーバとともにインターネット、安全なＬＡＮ，ＷＡＮ、あるいは他のネットワーク等のデータリンクを経由して、キャリアネットワーク４０と通信する。キャリアネットワーク４０は、メッセージングサービス制御器（“ＭＳＣ：messaging service controller”）４２に送出された（データパケットとして送出された）メッセージを制御する。キャリアネットワーク４０は、ネットワーク、インターネット、および／あるいはＰＯＴＳ（“plain ordinary telephone  system”）によってＭＳＣ４２と通信する。典型的には、キャリアネットワーク４０およびＭＳＣ４２間のネットワークあるいはインターネット接続はデータを転送し、そしてＰＯＴＳは音声情報を転送する。ＭＳＣ４２は、複数の基地局（“ＢＴＳ”；base stations）４４に接続される。キャリアネットワークと類似の方法で、ＭＳＣ４２は、典型的にネットワークおよび／あるいはデータ転送のためのインターネットおよび音声情報に対するＰＯＴＳの両者によってＢＴＳ４４に接続される。ＢＴＳ４４は、結局セルラ電話１２等の無線デバイスに対してショートメッセージングサービス（“ＳＭＳ”;short messaging servise）あるいは他の当業界において知られる放送を介する方法によって無線によりメッセージを放送する。
【００２３】
セルラ電話１２等の無線デバイスはアプリケーションダウンロードサーバ１６から送信されたソフトウエアアプリケーションを受信しそして実行することが可能な計算機プラットフォーム５０を有する。計算機プラットフォーム５０は、特定アプリケーション向け集積回路（“ＡＳＩＣ”５２）あるいは他の処理装置、マイクロ処理装置、論理回路あるいは他のデータ処理デバイスを含む。ＡＳＩＣ５２は、無線デバイスの製造と同時に作成されそして通常はアップグレード可能ではない。ＡＳＩＣ５２あるいは他の処理装置は無線デバイスのメモリ５６内に常駐する任意のプログラムインタフェースとなるアプリケーションプログラミングインタフェース（“ＡＰＩ：application programming interface”）を実行する。メモリは読み出し専用あるいはランダムアクセスメモリ（ＲＡＭおよびＲＯＭ）ＥＰＲＯＭ、フラッシュカード、あるいは計算機プラットフォームに対して一般的な任意のメモリを含むことが可能である。計算機プラットフォーム５０はまた、メモリ５６内に使用されてアプリケーションをアクティブでなく維持することが可能な局部データベース（local database）５８を含む。局部データベース５８は、典型的にはフラッシュメモリセルであるがしかし磁気的媒体、ＥＰＲＯＭ、光学的媒体、テープあるいはソフトあるいはハードディスク等の当業界において知られるような任意の２次的記憶デバイスであることが可能である。
【００２４】
セルラ電話１２等の無線デバイスは、よって、ゲーム、ニュース、株式市況、および同様のもの等の１個あるいはそれ以上のソフトウエアアプリケーションをダウンロードし、そしてアプリケーションを使用しない場合は局部データベース５８上に保管する。そして記憶された常駐アプリケーションをユーザによってそれが望まれる場合ＡＰＩ５４上で実行のために局部データベース５８上にアップロードする。しかしながら、無線デバイス上においては局部的データベース５８およびメモリ５６において利用可能なインストールされた記憶容量を制限する、重要なコストおよびサイズの制約が存在する。そこで、常駐するソフトウエアアプリケーションについては限定された量を無線デバイス上に保管することができる。本発明のシステムおよび方法は、さらにこの中に記述されるように個々のソフトウエアアプリケーションの選択的な削除および再ローディングを通じて記憶容量のこの制限を管理する。
【００２５】
図３において、ＡＰＩ５４内に保管される説明のためのファイル構造、あるいはデータ管理構造が示されている。トップレベル領域は計算機プラットフォーム５０上にすべての分離したソフトウエアファイルを含む“ファイル”６０である。図３におけるファイル構造は、単に説明的なものであり、そして計算機プラットフォーム５０上にこの形態で現れていないかも知れない。そして、識別可能なファイル構造を持たないで無線デバイス１２、１８、２０、２２上の機械コード内に表されるかも知れない。ファイル６０内にＡＰＩがあり、そしてここではウインドウズ（“ＢＲＥＷ”）６２に対するバイナリなルーチン環境として示されており、これは、無線デバイス計算機プラットフォーム５０上のソフトウエアアプリケーションと相互に影響しあうようにＱＵＡＬＣＯＭＭ（Ｒ）によって使用されたＡＰＩである。ＢＲＥＷ６２ファイルはアプリケーションファイル６４を含み、そして１個のファイルはアプリケーションダウンロードサーバ１６からダウンロードされているチェス（chess）６６のゲーム(game)であり、そして現在無線デバイスの計算機プラットフォーム５０の局部的データベース５８上に常駐している。説明の目的に対し、チェス６６アプリケーションは無線デバイスの常駐ソフトウエアアプリケーションである。
【００２６】
チェス６６アプリケーションは、ｃｈｅｓｓ．ｍｏｄおよびｃｈｅｓｓ．ｂａｒファイル等のいくつかのソフトウエアコンポーネント６８を含む。アプリケーションコンポーネント６８は、計算機プラットフォーム上でチェスアプリケーションを実行するために必要なモジュールである。チェス６６はまた、ここにｓｃｏｒｅ．ｓｉｇ７０として示された特定のアプリケーションと組み合わせられたデータを含む。そしてそれらは、計算機プラットフォーム５０上でチェスゲームをプレーしているユーザに対する保管されたスコアである。６６アプリケーションの中に隠されたファイル（hidden file）として含まれるライセンス(license)もまた存在することが可能である。このようにして、チェスのゲームの実行を可能にするアプリケーションコンポーネント６８はアプリケーションダウンロードサーバ１６から送信されたコピーを使用して容易に複写される。一方、スコア(score)７０および認可等の組み合わせられたアプリケーションデータ(associated-application data)はもしもそれらのファイルあるいはモジュールが削除される場合は失われるであろう。本発明はその結果、アプリケーションダウンロードサーバ１６からの必須でないアプリケーションコンポーネントに関する他のコピーを、ライセンス、あるいは個人的情報および住所、あるいはチェスゲームに対する以前のスコア７０等の純粋に娯楽に関連したデータのような回復不能のアプリケーションと組み合わせられたデータ（non-retrieval application-associated data）を維持しながら、取得する能力を利用する。
【００２７】
ユーザが他のソフトウエアアプリケーションを計算機プラットフォーム５０に対してダウンロードすることを必要とし、そしてとくに局部データベース５８の保管に関して、不十分な資源しか存在しない場合は、ＢＲＥＷＡＰＩ６２あるいは他のスペース管理コンポーネントは、要求されたダウンロードされるアプリケーションコンポーネントを計算機プラットフォーム５０上に配置することが可能であるように、ユーザにチェスに対するアプリケーションコンポーネントを削除することが可能であるかどうかを質問するための催促を開始することが可能である。そうでない場合は、ＢＲＥＷＡＰＩ６２は、いずれのコンポーネントを削除するかを決定することが可能であり、そしてシステム資源の自動的管理を決定することが可能である。一方ｃｈｅｓｓ．ｍｏｄｅおよびｃｈｅｓｓ．ｂａｒファイルがｃｈｅｓｓ６６ファイルから削除される場合はチェスゲームは計算機プラットフォーム５０上で実行可能でないであろう。計算機プラットフォーム５０上の必須のおよび必須でないファイルの分離を通して，無線デバイスは選択的に１個あるいはそれ以上の常駐ソフトウエアアプリケーションの１個あるいはそれ以上のアプリケーションコンポーネント６８を、スコアファイル７０等のアプリケーションと組み合わせられたデータの損失なしに削除することが可能である。
【００２８】
ｃｈｅｓｓ．ｍｏｄｅおよびｃｈｅｓｓ．ｂａｒアプリケーションコンポーネント６８を伴ったチェスゲーム６６等の１個あるいはそれ以上のアプリケーションコンポーネントを有しているアプリケーションが削除され、そしてユーザがそのアプリケーションを再び使用することを望む場合は、無線デバイスは選択的に無線ネットワーク１４を通して、アプリケーションダウンロードサーバ１６に１個あるいはそれ以上のアプリケーションコンポーネント６８の送信を催促するであろう。無線デバイスがアプリケーションコンポーネント６８を受信すると無線デバイスは送信された１個あるいはそれ以上のアプリケーションコンポーネントを計算機プラットフォーム５０上に、常駐するアプリケーションがあるいはここではチェス６６が再び実行可能なように逆インストールする。アプリケーションコンポーネント６８のすべてが削除されるべきでなく、そしてアプリケーションのサイズあるいは他の基準に基づいて削除されることが可能であることは注目されるべきである。さらに、ｓｃｏｒｅｓ．ｓｉｇ７０のようなアプリケーションと組み合わせられたデータを含むファイルは、またアプリケーションを実行するために必要とされるアプリケーションコンポーネントを含むことが可能であり、そして純粋なデータコンテナ（pure data-container）である必要はない。
【００２９】
図４および５は無線デバイス１２、１８、２０、２２に関する計算機プラットフォーム５０上に常駐する１個あるいはそれ以上のソフトウエアアプリケーションのアプリケーションコンポーネント６８のローディングおよび削除を制御するための独創的な方法を示すフローチャートである。図４に示されるように計算機プラットフォーム５０は、ステップ８０においてソフトウエアアプリケーションをダウンロードするための命令を受信する。そしてそこで、決定８２において示されるように無線デバイスのＡＳＩＣ５２あるいは他の処理装置上に、アプリケーションをダウンロードするために利用可能な十分な資源があるか否かに関する決定がなされる。もしも利用可能な十分な資源がある場合は、そこで、アプリケーションはステップ８４に示されるようにダウンロードされそして保管される。そしてダウンロード処理は終了する。もしも決定８２において不十分な資源しかない場合は、そこで、アプリケーションをダウンロードするためにステップ８６に示されたようにユーザはシステム資源をクリアにすることを促される。そしてそれは、一定したアプリケーションコンポーネントの削除を課する。そこでユーザが決定８８に示されるように資源をクリアにすることを認めるか否かに関する決定がなされる。そしてもしも否である場合は、ステップ９０に示されるようにダウンロードに利用可能な不十分な資源について知らされる。そしてダウンロード処理は終了される。もしもユーザが決定８８において資源のクリア化を承認する場合は、そこでコンポーネント６８等の１個あるいはそれ以上のアプリケーションコンポーネントが選択的に必須の資源をクリアにするために削除される。そしてこのような削除はｓｃｏｒｅｓ．ｓｉｇファイル７０あるいは任意のアプリケーションを使用するための認可等のアプリケーションと組み合わせられたデータに関する重要な損失なしに行なわれる。そこで、アプリケーションはステップ９４に示されたように計算機プラットフォーム上にダウンロードされ、そして記憶される。そしてダウンロード処理は終了する。
【００３０】
１個あるいはそれ以上の削除されたコンポーネント６８を有するアプリケーションを実行することの要求が受信される場合、ステップ１００に示されたように、削除されたコンポーネントを再インストールするための処理が図５に示される。この一つの例はチェスゲームをもう１度プレーするためのユーザ探索であろう。ユーザはそこでなるべくならばステップ１０２によって示されるようにアプリケーションダウンロードサーバ１６への通信リンクを作成することを促される。しかしながら実行要求を受信するときの無線デバイスは代わりに自動的に通信リンクを確立することが可能である。もしもアプリケーションを実行することの要求がユーザに要求される場合は、そこで決定１０４に示されるようにユーザがリンクを認定しているか否かに関する決定がなされる。もしもユーザがリンクを確立することを辞退する場合は、ステップ１０６において示されるように、ユーザは、必要とされるアプリケーションコンポーネントは必要とするアプリケーションを実行するためにはダウンロードされなくてはならないことを知らせられる。そしてそこで、実行要求は終了する。もしもユーザが決定１０４において、通信リンクを認定する場合は、そこで、ステップ１０８において示されたようにアプリケーションダウンロードサーバ１６と通信リンクが確立される。
【００３１】
アプリケーションダウンロードサーバ１６と通信リンクが確立されると、アプリケーションダウンロードサーバ１６は、無線デバイスによってステップ１１０において示されるように要求されたアプリケーションを実行するために無線デバイスによって必要とされる１個あるいはそれ以上のアプリケーションコンポーネントを送信することを促される。決定１１２に示されたように、サーバが必須のアプリケーションコンポーネントを送信したか否かがそこで決定される。そしてもしも否である場合は、決定１１４に示されるようにユーザは必須のコンポーネントを取得するのに失敗したことを知らされ、そして実行要求は終了する。そうでない場合は、もしもサーバが決定１１２において必須のコンポーネントを送信している場合は、無線デバイスはステップ１１６に示されたようにアプリケーションダウンロードサーバからのコンポーネントを受信し、そして受信されたコンポーネントをステップ１１８に示されたようにアプリケーションが実行可能であるようにアプリケーションの中にインストールする。アプリケーションはそこで、ステップ１２０に示されたように、無線デバイス上で終了するまで実行される。
【００３２】
もしもアプリケーションコンポーネント６８等の削除されたアプリケーションコンポーネントの再ローディングが自動的である場合は、図５のプロセスはステップ１００におけるアプリケーションを実行することの要求の受信から１１０におけるステップアプリケーションダウンロードサーバ１６を促すまで順当に(right)進むであろう。無線デバイスは単にユーザにステップ１１４に示されたようにアプリケーションがコンポーネントのダウンロードに失敗したことを知らせるのみであろう。
【００３３】
通信リンクを確立するステップは典型的には、図２に示されたように、通信リンクをディジタルあるいはアナログのセルラ電気通信ネットワークを経由して確立することである。しかし他の無線ＬＡＮあるいはマイクロ波あるいは赤外ネットワークが代わりに使用されることが可能である。さらに、通信リンクの確立は、それに対する１個あるいはそれ以上の組み合わせられたコンポーネントが削除されている常駐するソフトウエアアプリケーションを実行すること、すなわち、無線デバイスがアプリケーションダウンロードサーバ１６に至る無線ネットワーク１４を経由する通信を橋渡しすることを意図して、無線デバイス１２、１８、２０、２２上で自動的に開始することが可能である。
【００３４】
そうでない場合は、通信リンクを確立するステップは、無線デバイス１２、１８、２０、２２のユーザのアプリケーションダウンロードサーバ１６との通信リンクの橋渡しをするために、無線ネットワーク１４を通して１個あるいはそれ以上のそれに対する１個あるいはそれ以上の組み合わせられたコンポーネントが削除されている常駐するソフトウエアアプリケーションに関するアプリケーションコンポーネントを送信することの特定の催促によって開始することが可能である。もしも無線デバイスのユーザが、その無線デバイスに対して送信される新しいアプリケーションコンポーネントを得るためのセルラ電話呼等の通信リンクに対して課金される場合は、そこでユーザはコンポーネントを再ロードする必要とされるであろう通信リンクを認可するためにコンポーネントの削除に先立ってコンポーネントを再ロードするために必要とされる通信リンクを認可することを促すべきであろう。通信リンクがアプリケーションを実行可能にするためにアプリケーションのコンポーネントを回復するために必要とされる場合は、再び促されることが可能である。しかしながらもしも無線デバイスがフルに自動化されそして通信リンクがユーザに対して請求を必要としない場合はそこでユーザに対して催促を行う必要はなく、そしてステップ１１４におけるように、問題が発生しそしてエラーメッセージが発生されない場合は、コンポーネントの再ローディングはトランスペアレント（transparent）である。
【００３５】
実行期間中の自動アプリケーションアップグレード。
【００３６】
図６に示されたように一つの実施例においては、無線デバイス１２、１８、２０、２２に対してダウンロードされたアプリケーションあるいはエクステンション（extension）は、アプリケーションあるいはエクステンションの以前のあるいは異なったバージョンが無線デバイス１２、１８、２０、２２上で現在実行されている期間中に無線デバイス１２、１８、２０、２２にダウンロードされるかも知れない。アプリケーションあるいはエクステンションをアップグレードあるいはダウンロードすることの要求は、無線デバイス１２、１８、２０、２２によって作成されることが可能であり、デバイスのユーザあるいは無線デバイス１２、１８、２０、２２上で動作中の処理のいずれかによって、あるいはサーバ１６、３０、３２によって作成されることが可能である。“アップグレード”は必然的により後のバージョンを含まないがしかし異なったバージョンを参照するかも知れないことは注意すべきである。たとえば、一つのアプリケーションのより古いバージョンに戻ることは好ましいかも知れないが、このような場合の“アップグレード”は、現存のしかしより後のバージョンを置換するために、アプリケーションの以前のバージョンをダウンロードすることを含む。
【００３７】
（以下、“アプリケーション”のみが使用されるであろう。しかしながらこの記述はさらにエクステンションに対しても適用することは理解されるであろう。エクステンションは、これらのプログラム、コンポーネントあるいは実行を支援するためにデータあるいは命令によって使用されるサービスを含む。たとえば、エクステンションは、ＢＲＥＷ環境においてｊａｖａ（登録商標）プログラムを実行するために使用される無線デバイス上にインストールされたＪＡＶＡバーチャルマシンあるいはＭＰＥＧファイルと関連してインストールされそして使用されたＭＰＥＧプレイヤーを含むことが可能である。）さらに、アプリケーションは任意の実行可能なソフトウエアの形式ばかりでなくスクリプト（script）あるいは内容データ（content data）を含むことが可能である。
【００３８】
実施例のプロセスは、そこでは、無線デバイス１２、１８、２０、２２に対するアプリケーションアップグレードをダウンロードするために作られた要求ステップ６００を含む。無線デバイス１２、１８、２０、２２は、送受話器において実行するアプリケーションの異なったあるいは以前のバージョンを有することが可能である。ステップ６０２において、要求されたアプリケーションに関する異なったあるいは以前のバージョンが無線デバイス１２，１８，２０，２２上で実行されているかを決定するチェックがなされる。もしもそうでなければ、そこで、ステップ６０４において、現在のアプリケーションを、現在の（すなわち以前のあるいは異なった）アプリケーションが置かれているデバイス上のファイル位置に、新しく要求されたアプリケーションを上書きすることによって、アプリケーションは新しく要求されたアプリケーションによりグレードアップすることが可能である。
【００３９】
しかしながら、もしもステップ６０２において、チェックがアプリケーションが実行されていると決定した場合には、プロセスはアップグレードされたアプリケーションが一時的な位置に保管されるステップ６０６に続く。この一時的な位置はデバイス上にあることが可能であるが、しかしながら、それは周辺のデバイスあるいはデバイスがアクセス可能な他のどこかの位置にネットワークを通して保管することが可能である。
【００４０】
ステップ６０８において実行しているアプリケーションはそれが終了することを必要とすると通知される。そしてアプリケーションあるいは第２のプロセスのいずれかが実行しているアプリケーションの終了を開始する。ステップ６１０におけるアプリケーションの終了に続いてアップグレードされたアプリケーションがそこで現存するアプリケーションのファイル位置を越えて転送される。アップグレードされたアプリケーションが複写される位置はアプリケーションを実行するためにシステムによって予期される位置であることに注意すべきである。例えば一つの実施例においては、もしもシステムがアップグレードされたアプリケーションを実行するためにアップグレードされた位置に発見することを予期し、そしてもしも存在しない場合は、続いてプロセスは現存するアプリケーションを実行するために他の位置を捜し、アップグレードされたアプリケーションをアップグレードされた位置にコピーし、そして現存するアプリケーションを上書きしないであろう。
【００４１】
アップグレードアプリケーションが一時的な位置から正しい位置に移動された後に（それが現存のアプリケーションの上書きあるいは上に記述されたように若干の他の予期された位置のいずれにせよ）そこで、ステップ６１２においてアプリケーションは再スタートする。このアプリケーションは、自動的に再スタートすることが可能であることに注意すべきである。デバイスは、リセットし、電力サイクルを経て動作し(run)、また、いかなる他のアップグレードされるべき現存するおよび実行中のアプリケーションに関する機能のリセッティング形式を実行するために再起動する必要がないことに注意すべきである。
【００４２】
アプリケーションアップグレードの他の実施例においては、そして図７に示されたように、要求されたアプリケーションは、ステップ６０６において、そしてステップ６０２に先立って、一時的な位置にデバイスにダウンロードされる。ダウンロードの後にそこでステップ６０２において、デバイスは以前のあるいは異なったアプリケーションバージョンがデバイス上で実行されつつあるかをチェックされる。もしもそうである場合はそこでステップ６０８において現在のアプリケーションの実行は終了される。ステップ６１０において、アップグレードされたアプリケーションが一時的な保管位置から正しい保管位置にコピーされ（例えば、そうでなければ現在のアプリケーションであるかも知れない）、そしてそこでアップグレードされたアプリケーションがステップ６１２において再スタートされる。上に言明されたように、この実行は自動的に実行される。
【００４３】
もしも現在のアプリケーションが、ステップ６０２において決定されたように、実行されていない場合は、そこで、ステップ７００においてアップグレードされたアプリケーションが正しい位置上に移動され、例えば現在のアプリケーションを上書きする。この場合アプリケーションは実行されないために、アップグレードされたアプリケーションを正しい位置に移動することに先立ってその実行を終了する必要はない。
【００４４】
図８は図６に記述された方法を備えている無線デバイスの１例を示す。示されたように、無線デバイス８００は、メモリ８０２、ネットワークインタフェース８０４、処理装置８０６および母線８０８を含む。メモリ８０２は、ＲＡＭメモリとして示されるが、他の実施例は、構成された論理を保管する準備をするために知られたすべての既知の形式のメモリとしてこのようなメモリ８０２を含む。さらに、メモリ８０２は一つの形式のメモリの１個の接触したユニットとして示されているが他の実施例はメモリ８０２として複数の位置および複数の形式のメモリを使用する。ネットワークＩ／Ｏインタフェース８０４は、母線８０８を経由してネットワークに結合されたデバイスへの入力および出力を与える。処理装置８０６は、命令により動作し、そしてデータは母線８０８を経由して与えられる。少なくとも１個の実施例においては、処理装置８０６はＡＳＩＣ５２の一部分である。
【００４５】
メモリ８０２の中に置かれたものは、常駐して実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信するための論理８１０である。論理８１２は、常駐して実行可能なアプリケーションのアクティブな実行を検出するためのもの、論理８１４は、ネットワークを経由してアプリケーションの異なったバージョンを受信するもの、論理８１６は常駐して実行可能なアプリケーションのアクティブな実行を検出するに応じてアプリケーションの異なったバージョンを一時的な位置に保管するためのもの、論理８１８は、常駐して実行可能なアプリケーションのアクティブな実行を終了するためのもの、論理８２０は、常駐して実行可能なアプリケーションを一時的な位置に保管されたアプリケーションの異なったバージョンで上書きするためのものである。１個あるいはそれ以上の異なった実施例においては、常駐して実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信するための論理８１０は、ここでは、要求は無線デバイス（８２４）によって開始されここでは、要求はユーザ入力（８２６）の検出に伴って開始され、ここでは、アプリケーションの異なったバージョンは以前のバージョン（８２８）、および／あるいはここでは、アプリケーションは、エクステンション、スクリプトおよび内容データ（８３０）であるようにさらに修正されている。また、一つの実施例においては、常駐の実行可能なアプリケーションのアクティブな実行を検出するに応じて一時的な位置にあるアプリケーションの異なったバージョンを保管するための論理８１６は、ここでは、一時的な位置は周辺デバイスおよび離れたネットワーク位置（８３２）の少なくとも一つの上にあるとさらに修正されている。
【００４６】
図９は、図７の中に記述されたように方法を実行する無線デバイスの一つの実施例を示す。示されたように、無線デバイス９００は、メモリ９０２、ネットワークインタフェース９０４、処理装置９０６および母線９０８を含む。メモリ９０２はＲＡＭメモリとして示されるが、他の実施例はこのようなメモリ９０２を構成された論理を保管するために与えるものとして知られたすべての既知の形式をメモリとして含む。さらに、メモリ９０２はメモリの一つの形式として一つの連続したユニットとして示すが、他の実施例はメモリ９０２として複数の配置および複数の形式のメモリを使用する。ネットワークＩ／Ｏインタフェース９０４は母線９０８を経由してネットワークに結合されたデバイスに入力および出力を与える。処理装置９０６は命令および母線９０８を経由して与えられるデータに従って動作する。
【００４７】
メモリ９０２内に配置されるものは、常駐の実行可能なアプリケーションをアプリケーションの異なったバージョンで置換する要求を受信するための論理９１０、ネットワークを経由してアプリケーションの異なったバージョンを受信するための論理９１２、常駐の実行可能なアプリケーションをアプリケーションの異なったバージョンで置換する要求を受信するのに応じて一時的な位置にアプリケーションの異なったバージョンを保管するための論理９１４、常駐の実行可能なアプリケーションのアクティブな実行を検出するための論理９１６、常駐の実行可能なアプリケーションのアクティブな実行を終了するための論理９１８、常駐の実行可能なアプリケーションを一時的な位置に保管された異なったバージョンのアプリケーションで上書きするための論理９２０、そして異なったバージョンのアプリケーションに関しアクティブな実行を開始するための論理９２２である。１個あるいはそれ以上の異なった実施例においては、常駐の実行可能なアプリケーションを異なったバージョンのアプリケーションで置換することの要求を受信するための論理９１０は、さらに、要求は無線デバイス（９２４）によって開始され、要求はユーザ入力（９２６）の検出によって開始され、そこでは異なったバージョンのアプリケーションは以前のバージョン（９２８）であり、そして／あるいはそこでは、アプリケーションはエクステンション、スクリプトおよび内容データの少なくとも１個（９３０）であるように、さらに修正されている。また、一つの実施例においては、常駐の実行可能なアプリケーションのアクティブな実行を検出するに応じて、一時的な位置にアプリケーションの異なったバージョンを保管するための論理９１４は、さらに、そこでは任意の位置は周辺デバイスおよび遠隔ネットワーク位置の少なくとも１個（９３２）であるとさらに修正されている。
【００４８】
図１０は、好ましいアプリケーションの実行を開始するプロセスにおいて、実行する位置に関する連続的な探索を含むものとして記載された、自動的アプリケーションアップグレード処理のバージョンを実行する無線デバイスの一つの実施例を示す。示されているように、無線デバイス１０００は、メモリ１００２、ネットワークインタフェース１００４、処理装置１００６、および母線１００８を含む。メモリ１００２は、ＲＡＭメモリとして示されるが、他の実施例はこのようなメモリ１００２は、構成された論理を保管するために提供されるものとして知られているすべての既知のメモリの形式を含む。さらに、メモリ１００２はメモリの一つの形式の一つの連続したユニットとして示されているが、他の実施例はメモリ１００２として複数の形式と複数の位置メモリを使用する。ネットワークＩ／Ｏインタフェース１００４は、ネットワークに結合されたデバイスに母線１００８を経由して入力および出力を与える。処理装置１００６は、命令および母線１００８を経由して与えられたデータに基づき動作する。少なくとも１個の実施例において、処理装置１００６はＡＳＩＣ５２の一部分である。
【００４９】
メモリ１００２内に位置するものは、常駐の実行可能なアプリケーションを異なったアプリケーションのバージョンにより置換することの要求を受信するための論理１０１０、ネットワークを経由してアプリケーションの異なったバージョンを受信する論理１０１２、常駐の実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信するに応じて一時的な位置に異なったバージョンのアプリケーションを保管するための論理１０１４、アクティブなアプリケーション位置における常駐する実行可能なアプリケーションのアクティブな実行を検出するための論理１０１６、常駐する実行可能なアプリケーションのアクティブな実行を終了するための論理１０１８、アップグレード位置およびアクティブなアプリケーション位置に関する順次の探索において検出された第１のアプリケーションの実行を開始するよう構成された論理１０２０である。常駐の実行可能なアプリケーションをアプリケーションの異なったバージョンで置換することの要求を受信するための論理１０１０は、１個あるいはそれ以上の異なった実施例においては、さらにここで、要求は無線デバイス（１０２２）によって開始され、ここで、要求はユーザ入力（１０２４）の検出に伴って開始され、ここでアプリケーションの異なったバージョンは以前のバージョン（１０２６）であり、そして／あるいはここで、アプリケーションはエクステンション、スクリプト、および内容データ（１０２８）の少なくとも１個であるようにさらに修正される。また、アップグレード位置において、常駐の実行可能なアプリケーションを異なったアプリケーションのバージョンに置換するとの要求に応じてアップグレード位置においてアプリケーションの異なったバージョンを保管するための論理（１０１４）は、さらにアップグレード位置は周辺デバイスおよび遠隔ネットワーク位置の少なくとも一つ（１０３０）であるように修正される。
【００５０】
発明に関する方法の観点から、本発明は計算機が読み出し可能な媒体の中に常駐するプログラムを含む。ここで、プログラムは、方法に関する進歩性のあるステップを実行するための計算機プラットフォームを有する無線デバイスを目的とする。計算機により読み出し可能な媒体は、セルラ電話１２、あるいは他の無線デバイスの計算機プラットフォーム５０のメモリ５６であることが可能であり、あるいはセルラ電話１２の局部データベース５８等のような、局部データベース内に置くことが可能である。さらに、計算機により読み出し可能な媒体は、磁気ディスクあるいはテープ、光ディスク、ハードディスク、フラッシュメモリ、あるいは当業界において知られるような他の記憶媒体等のような、無線デバイス計算機プラットフォーム上にロード可能な他の２次的記憶媒体（secondary storage media）内に置くことができる。図４および５のような状況においては、本発明の方法はたとえば、無線ネットワーク１４が機械により読み出し可能な命令のシーケンスを実行するための動作部分によって実行されることが可能である。これらの命令は、種々の形式の信号関連媒体の中に常駐させることが可能である。この信号関連媒体は、たとえ無線ネットワーク１４のコンポーネントによってアクセス可能なあるいはその中に常駐するＲＡＭ（示されず）を含む。ＲＡＭ、ディスケット、あるいは他の２次的記憶媒体の中に含まれるか否かは、命令がＤＡＳＤ記憶装置（たとえば従来の“ハードドライブ”あるいはＲＡＩＤアレイ）、磁気テープ、電子的読み出し専用メモリ（たとえばＣＤ−ＲＯＭ，ＷＯＲＭ、ＤＶＤ、ディジタル光テープ）、紙の“パンチ”カード、あるいはディジタルおよびアナログ等の伝送媒体を含む他の適切なデータ記憶媒体等の種々の機械によって読み出し可能なデータ記憶媒体上に保管することが可能である。
【００５１】
以上の開示は本発明の説明的実施例を示す一方、添付された特許請求の範囲によって規定される発明の範囲から逸脱することなしに、種々の変更および修正を行うことが可能であることに注意すべきであろう。さらに、本発明のエレメントは単数で記述されあるいは請求されているが単数に対する限定が明白に宣言されていない場合は、複数が考慮されている。
【図面の簡単な説明】
【００５２】
【図１】図１は、本発明の無線デバイス上のソフトウエアアプリケーションを、無線ネットワークを越えて１個あるいはそれ以上のアプリケーションダウンロードサーバとの選択的な通信によって管理するシステムの代表的な線図である。
【図２】図２は、異なった無線デバイスおよびアプリケーションダウンロードサーバおよびデータベース間の通信を与える典型的な無線ネットワークに関するハードウエアコンポーネントのブロック線図である。
【図３】図３は、無線デバイスプラットフォーム上に常駐するファイルテーブルであってとくに、その構成コンポーネントへの適用を示している。
【図４】図４は、無線デバイス上のアプリケーションコンポーネントに関する選択的な削除を示すフローチャートである。
【図５】図５は、アプリケーションが再び実行可能となるよう無線デバイス上のアプリケーションを復元するためアプリケーションダウンロードサーバからアプリケーションコンポーネントの無線デバイスの回復を示しているフローチャートである。
【図６】図６は、常駐して実行可能なアプリケーションをアプリケーションの異なったバージョンとの置換を含むシステムの一つの実施例を示しているフローチャートである。
【図７】図７は、常駐して実行可能なアプリケーションをアプリケーションの異なったバージョンとの置換を含むシステムの一つの実施例を示しているフローチャートである。
【図８】図８は、常駐して実行可能なアプリケーションをアプリケーションの異なったバージョンと置換するためのシステムにおいて使用されている無線デバイスの一つの実施例に関するブロック線図である。
【図９】図９は、常駐して実行可能なアプリケーションをアプリケーションの異なったバージョンと置換するためのシステムにおいて使用されている無線デバイスの一つの実施例に関するブロック線図である。
【図１０】図１０は、常駐して実行可能なアプリケーションをアプリケーションの異なったバージョンと置換するためのシステムにおいて使用されている無線デバイスの一つの実施例に関するブロック線図である。
【図１】
2007511822.tif 000003
【図２】
2007511822.tif 000004
【図３】
2007511822.tif 000005
【図４】
2007511822.tif 000006
【図５】
2007511822.tif 000007
【図６】
2007511822.tif 000008
【図７】
2007511822.tif 000009
【図８】
2007511822.tif 000010
【図９】
2007511822.tif 000011
【図１０】
2007511822.tif 000012
【国際調査報告】
2007511822.tif 000013