(57)【要約】【課題】実際にユーザに利用されているアプリケーションプログラムのみをバージョンアップすること。【解決手段】通信端末装置に実行させるアプリケーションプログラムに特定のコマンドを内包させておき、このコマンドが実行された場合に、該通信端末装置にアプリケーションプログラムの実行をサスペンドさせ、該アプリケーションプログラムのバージョンアップを行わせる。【選択図】        図８
2004302517.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムの提供元と通信網を介して通信する通信手段と、
特定のコマンドを内包したアプリケーションプログラムを実行する実行手段と、
前記特定のコマンドが前記実行手段により実行された場合に、該アプリケーションプログラムの実行をサスペンドするサスペンド手段と、
前記サスペンド手段により実行をサスペンドされたアプリケーションプログラムの提供元と前記通信手段により通信し該アプリケーションプログラムのバージョンアップを行うバージョンアップ手段と
を有する通信端末装置。
【請求項２】
前記バージョンアップ手段は、アプリケーションプログラムのバージョンアップを完了した後に、該アプリケーションプログラムを前記実行手段に実行させる
ことを特徴とする請求項１に記載の通信端末装置。
【請求項３】
前記サスペンド手段により実行をサスペンドされたアプリケーションプログラムの実行をレジュームするレジューム手段を、備え、
前記バージョンアップ手段は、前記サスペンド手段により実行をサスペンドされたアプリケーションプログラムのバージョンアップを完遂できるか否かを判定し、バージョンアップを完遂できない判定した場合には、該アプリケーションプログラムの実行を前記レジューム手段によりレジュームし、バージョンアップを完遂できると判定した場合には該アプリケーションプログラムをバージョンアップする
ことを特徴とする請求項１に記載に通信端末装置。
【請求項４】
該アプリケーションプログラムのバージョンアップを中止するべき事象の発生を検出する検出手段を、備え、
前記バージョンアップ手段は、アプリケーションプログラムのバージョンアップを完了する前に、該アプリケーションプログラムのバージョンアップを中止するべき事象の発生を前記検出手段により検出した場合には、該アプリケーションプログラムのバージョンアップを中止し、該アプリケーションプログラムの実行を前記レジューム手段によりレジュームする
ことを特徴とする請求項３に記載の通信端末装置。
【請求項５】
コンピュータ装置に、
アプリケーションプログラムの提供元と通信網を介して通信する通信手段と、
特定のコマンドを内包したアプリケーションプログラムを実行する実行手段と、
前記特定のコマンドが前記実行手段により実行された場合に、該アプリケーションプログラムの実行をサスペンドするサスペンド手段と、
前記サスペンド手段により実行をサスペンドされたアプリケーションプログラムの提供元と前記通信手段により通信し該アプリケーションプログラムのバージョンアップを行うバージョンアップ手段と
を実現させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
通信端末装置に記憶されているアプリケーションプログラムをバージョンアップする技術に関する。
【０００２】
【従来の技術】
例えば、ゲーム機能やスケジューラ機能などの様々なアプリケーションを実現するためのアプリケーションプログラムを実行可能な携帯電話機などの通信端末装置がある。この種の通信端末装置のユーザはインターネットに接続されたコンテンツサーバから所望のアプリケーションプログラムをダウンロードし利用することができる。
【０００３】
このようなアプリケーションプログラムを提供するコンテンツプロバイダ（以下、「ＣＰ」と称する）は、過去に提供したアプリケーションプログラムに対して不具合の修正や新たな機能追加を行った新たなアプリケーションプログラムを提供することがある。以下では、前者を旧アプリケーションプログラムと称し、後者を新アプリケーションプログラムと称する。旧アプリケーションプログラムを利用しているユーザは、新アプリケーションプログラムを利用することを所望する場合には、この新アプリケーションプログラムをダウンロードし、通信端末装置に記憶させている旧アプリケーションプログラムを新アプリケーションプログラムで上書きする必要がある。以下では、新アプリケーションプログラムをダウンロードし、この新アプリケーションプログラムで旧アプリケーションプログラムを上書きすることをバージョンアップと称する。
【０００４】
しかしながら、新アプリケーションプログラムが提供される度に、上記バージョンアップを行うことはユーザにとって甚だ不便である。その理由は、ユーザは新アプリケーションプログラムがいつ提供されるかを事前に知ることができないため、例えば定期的に新アプリケーションプログラムが提供されているか否かをＣＰに問い合わせるなどしなければならないからである。
【０００５】
このような不便さを解消する技術として、特許文献１に開示されている技術がある。特許文献１に開示されている技術によれば、新アプリケーションプログラムを提供する際に、旧アプリケーションプログラムを記憶している通信端末装置に対して、ＣＰが前者で後者を上書きするため、このような不便さが解消される。
【０００６】
【特許文献１】
特開２００１−５３８８２号公報
【０００７】
【発明が解決しようとする課題】
ところで、ＣＰからアプリケーションプログラムの提供を受けた全てのユーザが上述したようなバージョンアップを所望している訳ではない。ＣＰがアプリケーションプログラムのバージョンアップを行おうとするときに、既にそのアプリケーションプログラムの利用を取りやめているユーザもいるからである。
【０００８】
一方、ＣＰにとっても、そのＣＰからアプリケーションプログラムの提供を受けた全てのユーザについて、アプリケーションプログラムのバージョンアップを行うのではなく、実際にそのアプリケーションプログラムを利用しているユーザについてのみバージョンアップを行うことが望ましい。その理由は、ユーザの通信端末装置と通信しアプリケーションプログラムのバージョンアップを行う際にコンテンツサーバに掛かる負荷は、アプリケーションプログラムの更新が必要な通信端末装置の数に比例して高くなるからである。
【０００９】
しかしながら、特許文献１に開示されている技術では、通信端末装置に記憶されているアプリケーションプログラムがユーザに利用されているか否かに拘わらず、そのアプリケーションプログラムのバージョンアップが行われるといった問題点がある。このような問題点を解決するための方策として、ＣＰ側からアプリケーションプログラムのバージョンアップを行う際に、アプリケーションプログラムのバージョンアップを許可するか否かをユーザに問合せ、ユーザに許可された場合にのみバージョンアップを行うことが考えられる。しかしながら、ユーザにとっては、もはや利用していないアプリケーションプログラムについて、このような問合せに一々応答することは煩わしく、甚だ不便である。
【００１０】
本発明は上記課題に鑑みてなされたものであり、実際にユーザに利用されているアプリケーションプログラムのみをバージョンアップする技術を提供することを目的としている。
【００１１】
【課題を解決するための手段】
上記課題を解決するために、本発明は、アプリケーションプログラムの提供元と通信網を介して通信する通信手段と、特定のコマンドを内包したアプリケーションプログラムを実行する実行手段と、前記特定のコマンドが前記実行手段により実行された場合に、該アプリケーションプログラムの実行をサスペンドするサスペンド手段と、前記サスペンド手段により実行をサスペンドされたアプリケーションプログラムの提供元と前記通信手段により通信し該アプリケーションプログラムのバージョンアップを行うバージョンアップ手段とを有する通信端末装置を提供する。
【００１２】
本発明に係る通信端末装置によれば、該通信端末装置でアプリケーションプログラムの実行中に該アプリケーションプログラムに内包されている特定のコマンドが実行された場合に、該アプリケーションプログラムの実行がサスペンドされ、該アプリケーションプログラムのバージョンアップが行われる。
【００１３】
また、上記課題を解決するために、本発明は、コンピュータ装置に、アプリケーションプログラムの提供元と通信網を介して通信する通信手段と、特定のコマンドを内包したアプリケーションプログラムを実行する実行手段と、前記特定のコマンドが前記実行手段により実行された場合に、該アプリケーションプログラムの実行をサスペンドするサスペンド手段と、前記サスペンド手段により実行をサスペンドされたアプリケーションプログラムの提供元と前記通信手段により通信し該アプリケーションプログラムのバージョンアップを行うバージョンアップ手段とを実現させるためのプログラムを提供する。
【００１４】
本発明に係るプログラムによれば、該プログラムに従って作動するコンピュータ装置でアプリケーションプログラムの実行中に該アプリケーションプログラムに内包されているバージョンアップメソッドが実行された場合に、該アプリケーションプログラムの実行がサスペンドされ、該アプリケーションプログラムのバージョンアップが行われる。
【００１５】
【発明の実施の形態】
以下、図面を参照しつつ本発明の実施形態について説明する。
【００１６】
［Ａ．構成］
（１：通信システムの構成）
図１は、本実施形態に係る通信端末装置１０を有する通信システムの全体構成の一例を示す図である。図１に示されるコンテンツサーバ４０は、一般的なコンピュータ装置と同一の構成を有するものであり、インターネット３０に接続されている。このコンテンツサーバ４０は、通信端末装置１０へ提供するためのアプリケーションプログラムをそのアプリケーションプログラムの提供を開始した日時を示すデータ（以下「提供日時データ」と称する）と対応づけて記憶している。このアプリケーションプログラムは、オブジェクト指向のプログラム言語の一つであるＪａｖａ（登録商標）で記述されている（以下、「ＪａｖａＡＰＰ」と称する）。このＪａｖａＡＰＰは、後述するＪａｖａ実行環境で解釈および実行可能なＪａｖａバイトコードで構成されている。
【００１７】
移動パケット通信網２０は、当該移動パケット通信網２０に収容される通信端末装置１０に対して、パケット通信サービスを提供するためのものである。この移動パケット通信網２０は、基地局２１とゲートウェイ（以下、「ＧＷ」と称する）装置２２とを有している。基地局２１は、移動パケット通信網２０のサービスエリア内に多数設置されている。この基地局２１は、一定の広さ（例えば、当該基地局２１を中心とする半径５００メートルの範囲）を有する無線セルを形成し、この無線セルに在圏する通信端末装置１０と無線通信を行うためのものである。ＧＷ装置２２は、移動パケット通信網２０における通信プロトコルとインターネット３０における通信プロトコルとを相互変換し、移動パケット通信網２０とインターネット３０との間の通信を仲介するためのものである。
【００１８】
通信端末装置１０は、Ｊａｖａ実行環境を備えた携帯電話機である。この通信端末装置１０は、移動パケット通信網２０とインターネット３０とを介してコンテンツサーバ４０からＪａｖａＡＰＰをダウンロードすることができ、予め定められた個数（例えば、３０個）のＪａｖａＡＰＰを記憶することができる。本実施形態では、通信端末装置１０には、時計機能を実現するためのＪａｖａＡＰＰが記憶されているものとする。具体的には、このＪａｖａＡＰＰを実行することにより、通信端末装置１０は図２に示されるフローチャートに従った動作を行い、図３に示す表示画面を表示部に表示させる。そして、このＪａｖａＡＰＰは、自身をバージョンアップさせるためのコマンドを内包したバージョンアップメソッドを有している。このバージョンアップメソッドが呼出され、このコマンドが実行されると、このＪａｖａＡＰＰのバージョンアップが行われる。なお、通信端末装置１０に記憶されているＪａｖａＡＰＰは、このような時計機能を実現するものに限定されるものではなく、ゲーム機能やスケジューラ機能などを実現するためのＪａｖａＡＰＰであっても勿論良い。
【００１９】
（２：通信端末装置１０の構成）
次に、通信端末装置１０のハードウェア構成を、図４を参照しつつ説明する。図４に示されるように、通信端末装置１０は、制御部４１０と、表示部４２０と、操作部４３０と、計時部４４０と、無線通信部４５０と、記憶部４６０と、これら各構成要素間のデータ授受を仲介するバス４７０とを有している。
【００２０】
制御部４１０は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であり、記憶部４６０に格納されているソフトウェアを実行することにより通信端末装置１０の各部を制御するものである。表示部４２０は、例えば液晶ディスプレイとその駆動回路であり、制御部４１０から引渡された画像データに応じた画像を表示する。操作部４３０は、数字や文字、操作指示などをユーザに入力させるための複数の操作子を備えており、これらの操作子の操作内容に応じたデータを制御部４１０へ引渡す。計時部４４０は、計時機能を備えており、現在日時を示す現在日時データを制御部４１０へ供給するものである。
【００２１】
無線通信部４５０は、図示せぬアンテナを備えており、通信端末装置１０の在圏する無線セルを形成する基地局２１と無線通信するためのものである。この無線通信部４５０は、基地局２１から送信されてくるデータを受信し、受信したデータを制御部４１０へ引渡すと共に、制御部４１０から引渡されたデータを基地局２１へ送出する。
【００２２】
記憶部４６０は、揮発性記憶部４６１と不揮発性記憶部４６２とを有している。揮発性記憶部４６１は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、ソフトウェアを実行中の制御部４１０によりワークエリアとして使用される。不揮発性記憶部４６２は、例えばＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）であり、コンテンツサーバ４０からダウンロードしたＪａｖａＡＰＰを格納するためのプログラム格納領域４６２ａを有している。この不揮発性記憶部４６２は、上記ＪａｖａＡＰＰの他に、オペレーティングシステム（以下、「ＯＳ」という）を実現するためのＯＳソフトウェアや、Ｊａｖａ実行環境を構築するためのソフトウェアを格納している。また、不揮発性記憶４６２には、基地局２１と無線通信可能であるか否かを制御部４１０に判定させるための閾値が格納されている。制御部４１０は、無線通信部４５０を介して基地局２１から受信した電波の電波強度を示す値とこの閾値とを比較することにより、基地局２１を介してコンテンツサーバ４０と通信可能であるか否かを判定することができる。
【００２３】
まず、プログラム格納領域４６２ａについて図５を参照しつつ説明する。図５に示されるように、プログラム格納領域４６２ａには、上述したＪａｖａＡＰＰを内包するＪＡＲ（Ｊａｖａ  ＡＲｃｈｉｖｅ）ファイルと、このＪＡＲファイルをダウンロードした日時を示すデータ（以下、「ダウンロード日時データ」と称する）とを対応付けて格納するための領域が３１組設けられている。ＪＡＲファイルとは、ＪａｖａＡＰＰの本体プログラム（Ｊａｖａバイトコードで記述されたプログラム）と、このプログラムを実行する際に使用される画像データを格納した画像ファイルや音声データを格納した音声ファイルなどの、いわゆる「リソース」を１つにまとめたファイルである。なお、通信端末装置１０に記憶可能なＪａｖａＡＰＰの個数が３０個であることに対して、プログラム格納領域４６２ａ内に３１組の領域が設けられている理由は、３１番目の領域をＪａｖａＡＰＰのバージョンアップの際にワークエリアとして使用するためである。以下では、この３１番目の領域を「予備エリア」と称する。
【００２４】
次に、Ｊａｖａ実行環境を構築するために通信端末装置１０に組み込まれているソフトウェアについて図６を参照しつつ説明する。図６は、通信端末装置１０におけるＪａｖａ実行環境を説明するための図である。この図に示されるように、通信端末装置１０には、Ｊ２ＭＥ（Ｊａｖａ  ２  ｐｌａｔｆｏｒｍ  Ｍｉｃｒｏ  Ｅｄｉｔｉｏｎ）に準拠したＪａｖａ実行環境を実現するためのソフトウェアが組み込まれている。ここで、Ｊ２ＭＥとは、小型電子器機向けに定められたＪａｖａ実行環境の規格である。この通信端末装置１０に組み込まれたソフトウェアには、ＫＶＭと、ＣＬＤＣ（Ｃｏｎｎｅｃｔｅｄ  Ｌｉｍｉｔｅｄ  Ｄｅｖｉｃｅ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ）クラスライブラリと、オリジナルＪａｖａ拡張プロファイルと、ＪＡＭ（Ｊａｖａ  Ａｐｐｌｉｃａｔｉｏｎ  Ｍａｎａｇｅｒ）とが含まれている。なお、本実施形態では、Ｊ２ＭＥに準拠したＪａｖａ実行環境を有する通信端末装置１０に本発明を適用する場合について説明するが、Ｊ２ＳＥ（Ｊａｖａ２  Ｓｔａｎｄａｒｄ  Ｅｄｉｔｉｏｎ）やＪ２ＥＥ（Ｊａｖａ２  Ｅｎｔｅｒｐｒｉｓｅ  Ｅｄｉｔｉｏｎ）に準拠したＪａｖａ実行環境を有する通信端末装置に本発明を適用するとしても勿論良い。Ｊ２ＳＥとは、パーソナルコンピュータ装置（以下、「ＰＣ」と称する）向けに定められたＪａｖａ実行環境の規格であり、Ｊ２ＥＥとは、例えばコンテンツサーバ４０のようなサーバ装置向けに定められたＪａｖａ実行環境の規格である。
【００２５】
ＫＶＭは、ＪＶＭの１種であり、携帯電話機やＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）等の小型電子機器用に設計されている。ＪＶＭとは、ＪａｖａＡＰＰを構成しているＪａｖａバイトコードを制御部４１０が解釈可能なマシン語コードに変換し、制御部４１０に実行させるためのものである。また、ＣＬＤＣクラスライブラリは、携帯電話機やＰＤＡなどの小型電子器機向けの汎用的な機能を提供するためのクラスライブラリである。
【００２６】
オリジナルＪａｖａ拡張プロファイルは、ＣＬＤＣクラスライブラリを基礎として携帯電話機に特化した機能を提供するためのクラスライブラリである。このオリジナルＪａｖａ拡張プロファイルには、例えば、ユーザインタフェイスＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）、ネットワーキングＡＰＩ、スクラッチパッドＡＰＩなどが含まれている。ＪａｖａＡＰＰを実行中の制御部４１０は、そのＪａｖａＡＰＰを構成するＪａｖａバイトコードに従って、これらＡＰＩを呼出すことにより、これらＡＰＩの提供する機能を利用することができる。
【００２７】
ユーザインタフェイスＡＰＩとは、通信端末装置１０のユーザインタフェイス機能をサポートするためのＡＰＩである。ネットワーキングＡＰＩとは、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）により指定されたネットワークリソースへアクセスするためのＡＰＩである。スクラッチパッドＡＰＩとは、スクラッチパッドに対する書き込みや読み出しをサポートするためのＡＰＩである。なお、スクラッチパッドとは、詳細な図示は省略したが、不揮発性記憶部４６２内に設けられた記憶領域である。このスクラッチパッドには、ＪａｖａＡＰＰの実行に応じて発生するデータが格納される。なお、詳細な図示は省略したが、通信端末装置１０は、上述したＣＬＤＣクラスライブラリやオリジナルＪａｖａ拡張プロファイルの他に、メーカ独自拡張ライブラリを有している。このメーカ独自拡張ライブラリは、通信端末装置１０の製造者がそれぞれ独自の機能を提供するためのクラスライブラリである。
【００２８】
ＪＡＭは、ＯＳによる制御の下で、通信端末装置１０に記憶されているＪａｖａＡＰＰの管理を行うためのソフトウェアである。具体的には、制御部４１０は、ＪａｖａＡＰＰの管理を行うために、ＪＡＭに従いＪａｖａＡＰＰのインストールやバージョンアップ、削除を行う機能、プログラム格納領域４６２ａに格納されているＪａｖａＡＰＰの名称をリスト表示する機能、ＪａｖａＡＰＰの実行管理を行う機能を営む。ＪａｖａＡＰＰをインストールする機能とは、コンテンツサーバ４０からダウンロードしたＪａｖａＡＰＰをプログラム格納領域４６２ａへ書き込む機能である。ＪａｖａＡＰＰをバージョンアップする機能とは、コンテンツサーバ４０から新ＪａｖａＡＰＰをダウンロードするとともに、プログラム格納領域４６２ａに格納されている旧ＪａｖａＡＰＰをこの新ＪａｖａＡＰＰで上書きする機能である。
【００２９】
ＪａｖａＡＰＰの実行管理を行う機能とは、ＪａｖａＡＰＰの実行の開始および終了を行う機能である。より詳細に説明すると、ユーザにＪａｖａＡＰＰの実行を指示されると、まず、制御部４１０はＪＡＭに従ってそのＪａｖａＡＰＰを実行するためのワークエリアを揮発性記憶部４６１内に確保する。このワークエリアには、ユーザに実行を指示されたＪａｖａＡＰＰを構成するＪａｖａバイトコードが展開されたり、ＪａｖａＡＰＰを実行中にユーザにより入力されたデータが格納される。次に、制御部４１０は、そのＪａｖａＡＰＰを構成しているＪａｖａバイトコードを揮発性記憶部４６１内に確保したワークエリアへ展開し、そのＪａｖａバイトコードをＫＶＭに従って解釈し実行する。そして、ユーザにＪａｖａＡＰＰの終了を指示されると制御部４１０は、ＫＶＭによるＪａｖａバイトコードの解釈および実行を終了するとともに、そのＪａｖａＡＰＰを実行するために揮発性記憶部４６１内に確保したワークエリアを開放し、そのＪａｖａＡＰＰの実行を終了する。
【００３０】
また、制御部４１０は、ＪＡＭに従ってＪａｖａＡＰＰの実行をサスペンドすることや、サスペンドされているＪａｖａＡＰＰの実行をレジュームすることができる。ＪａｖａＡＰＰの実行をサスペンドするとは、そのＪａｖａＡＰＰを構成するＪａｖａバイトコードを揮発性記憶部４６１へ展開したままで、そのＪａｖａバイトコードの解釈および実行を中断することである。このように、ＪａｖａＡＰＰの実行がサスペンドされる場合には、そのＪａｖａＡＰＰを実行するために確保されたワークエリアの開放は行われない。このため、サスペンドされるまでにユーザにより入力されたデータが保持される。また、サスペンドされているＪａｖａＡＰＰの実行をレジュームするとは、そのＪａｖａＡＰＰを構成するＪａｖａバイトコードの解釈および実行をサスペンドされた時点から再開することである。
【００３１】
［Ｂ．動作］
次に、本実施形態に係る通信端末装置１０の制御部４１０が行う動作のうち、本通信端末装置１０の特徴を顕著に示す動作についてのみ図を参照しつつ説明する。なお、以下に説明する動作例の前提として、通信端末装置１０に記憶されているＪａｖａＡＰＰは、２００２年１１月１日にダウンロードされたものとする（図５参照）。このＪａｖａＡＰＰに対して、図３に示される表示画面に替えて、図７に示される表示画面を表示させるように修正された新たなＪａｖａＡＰＰの提供がコンテンツサーバ４０を運営するＣＰにより２００２年１１月２０日から開始されたものとする。以下では、図２に示される表示画面を表示させるＪａｖａＡＰＰ（すなわち、通信端末装置１０に記憶されているＪａｖａＡＰＰ）を「旧ＪａｖａＡＰＰ」と称し、図７に示される表示画面を表示させるＪａｖａＡＰＰを「新ＪａｖａＡＰＰ」と称する。そして、２００２年１１月２１日に通信端末装置１０のユーザが、上記旧ＪａｖａＡＰＰを実行したものとする。
【００３２】
（１：ＪａｖａＡＰＰに従って制御部４１０が行う動作）
まず、制御部４１０が、旧ＪａｖａＡＰＰに従って行う動作について図２を参照しつつ説明する。図２に示されるように、制御部４１０は、まず、計時部４４０から現在日時データを取得し（ステップＳＡ１）、この現在日時データで示される日時が所定の日時であるか否かを判定する（ステップＳＡ２）。
【００３３】
ステップＳＡ２の判定結果が“Ｎｏ”である場合には、制御部４１０は、ステップＳＡ１にて取得した現在日時データに基づいて図３に示す表示画面を表示部４２０に表示（ステップＳＡ３）させ、後続するステップＳＡ６の処理を行う。逆に、ステップＳＡ２の判定結果が“Ｙｅｓ”である場合には、制御部４１０は、この旧ＪａｖａＡＰＰのバージョンアップが必要か否かを判定する（ステップＳＡ４）。具体的には、制御部４１０は、このＪａｖａＡＰＰの提供日時データをコンテンツサーバ４０から取得し、プログラム格納領域４６２ａに格納されているダウンロード日時データと比較する。そして、前者が後者よりも後の日時を示す場合には、バージョンアップ必要と判定し、逆に、前者が後者以前の日時を示す場合にはバージョンアップ不要と判定する。
【００３４】
ステップＳＡ４の判定結果が“Ｙｅｓ”である場合には、制御部４１０は、このＪａｖａＡＰＰに内包されているバージョンアップメソッドを実行する（ステップＳＡ５）。なお、バージョンアップメソッドが実行された後の制御部４１０の動作については、後述する。逆に、ステップＳＡ４の判定結果が“Ｎｏ”である場合には、制御部４１０は、上述したステップＳＡ３の処理を行う。本動作例では、前者は「２００２年１１月２０日」を示しており、後者は「２００２年１１月１日」を示しているから、制御部４１０はステップＳＡ４にて「バージョンアップ必要」と判定する。
【００３５】
ステップＳＡ３に後続するステップＳＡ６では、制御部４１０は、ユーザにより旧ＪａｖａＡＰＰの実行を終了することを指示されたか否かを判定する。ステップＳ６の判定結果が“Ｙｅｓ”である場合には、制御部４１０は、旧ＪａｖａＡＰＰの実行を終了し、逆に、ステップＳＡ６の判定結果が“Ｎｏ”である場合には、制御部４１０は、上述したステップＳＡ１以降の処理を繰り返し実行する。
【００３６】
なお、本実施形態では、旧ＪａｖａＡＰＰを実行中の制御部４１０が、その旧ＪａｖａＡＰＰをバージョンアップする必要があるか否かを定期的に判定し、ＪａｖａＡＰＰをバージョンアップ必要と判定した場合にのみ、バージョンアップメソッドを実行する場合について説明した。しかしながら、制御部４１０がバージョンアップメソッドを実行する契機は、このような態様に限定されるものではない。例えば、ＪａｖａＡＰＰを実行中に、コンテンツサーバ４０から送信されてくる通信メッセージであって、そのＪａｖａＡＰＰをバージョンアップ可能である旨の通信メッセージを受信した場合に、上記バージョンアップメソッドを制御部４１０に実行させるとしても良い。
【００３７】
（２：バージョンアップメソッドが実行された場合の制御部４１０の動作）
次に、上記バージョンアップメソッドが実行された場合に、制御部４１０がＪＡＭに従って行う動作について図８を参照しつつ説明する。図８は、上記バージョンアップメソッドが実行された場合に、ＪＡＭによる制御部４１０が行う動作の流れを示すフローチャートである。
【００３８】
図８に示されるように、制御部４１０は、まず、旧ＪａｖａＡＰＰの実行をサスペンド（ステップＳＢ１）し、この旧ＪａｖａＡＰＰのバージョンアップを完遂できるか否かを判定する（ステップＳＢ２）。具体的には、制御部４１０は基地局２１との間の無線通信の電波強度を検出し、検出した電波強度の値と不揮発性記憶部４６２に格納されている閾値とを比較し、前者が後者より大きい場合には、ＪａｖａＡＰＰのバージョンアップを完遂できると判定し、逆に前者が後者より小さい場合には、ＪａｖａＡＰＰのバージョンアップを完遂できないと判定する。
【００３９】
ステップＳＢ２の判定結果が“Ｎｏ”である場合には、制御部４１０は、ステップＳＢ１にてサスペンドされたＪａｖａＡＰＰの実行をレジュームし（ステップＳＢ３）、バージョンアップ動作を完了する。逆に、ステップＳＢ２の判定結果が“Ｙｅｓ”である場合には、制御部４１０は、コンテンツサーバ４０から新ＪａｖａＡＰＰをダウンロードし、ダウンロードした新ＪａｖａＡＰＰを予備エリアへ格納する（ステップＳＢ４）。このように、基地局２１から送信されてくる電波の電波強度が所定の閾値以下である場合に、新ＪａｖａＡＰＰのダウンロードを行わない理由は、このような場合には、新ＪａｖａＡＰＰのダウンロード中に無線通信不能になり、新ＪａｖａＡＰＰのダウンロードを失敗する虞があるからである。以下、本動作例においては、通信端末装置１０と基地局２１との間の電波強度が所定の閾値より大きい場合について説明する。すなわち、上述したステップＳＢ４の処理が行われる。なお、本実施形態では、ステップＳＢ２の判定結果が“Ｙｅｓ”である場合には、即座に新ＪａｖａＡＰＰのダウンロードを行う場合について説明したが、新ＪａｖａＡＰＰのダウンロードを行うか否かをユーザに確認させ、新ＪａｖａＡＰＰのダウンロードを行うことをユーザに指示された場合にのみ、上記ステップＳＢ４を行うとしても勿論良い。
【００４０】
ステップＳＢ４に後続するステップＳＢ５では、制御部４１０は、新ＪａｖａＡＰＰのダウンロードが正常に終了したか否かを判定する。そして、ステップＳＢ５の判定結果が“Ｙｅｓ”である場合には、制御部４１０は、ステップＳＢ１にてサスペンドした旧ＪａｖａＡＰＰの実行を終了し（ステップＳＢ６）、旧ＪａｖａＡＰＰを新ＪａｖａＡＰＰで上書きする。逆に、ステップＳＢ５の判定結果が“Ｎｏ”である場合には、上述したステップＳＢ３の処理を行い、バージョンアップ動作を完了する。このように、新ＪａｖａＡＰＰのダウンロードが正常に終了した場合にのみ、旧ＪａｖａＡＰＰを新ＪａｖａＡＰＰで上書きする理由は、新ＪａｖａＡＰＰのダウンロードが正常に終了しなかった場合に、このような上書きを行うと、その新ＪａｖａＡＰＰを正常に実行できない虞があるからである。なお、新ＪａｖａＡＰＰのダウンロードが正常に終了しない場合としては、ユーザにより新ＪａｖａＡＰＰのダウンロードが中止された場合や、新ＪａｖａＡＰＰのダウンロード中に基地局２１と無線通信不能になった場合などが挙げられる。以下、本動作例では、新ＪａｖａＡＰＰのダウンロードが正常に終了した場合についてのみ説明する。
【００４１】
ステップＳＢ６に後続するステップＳＢ７では、制御部４１０はステップＳＢ４で予備エリアへ格納した新ＪａｖａＡＰＰでプログラム格納領域４６２ａ内に格納されている旧ＪａｖａＡＰＰを書き換え（ステップＳＢ７）、その新ＪａｖａＡＰＰを実行する（ステップＳＢ８）。このようにしてバージョンアップされた新ＪａｖａＡＰＰを実行することにより、通信端末装置１０の表示部２２０には、図７に示す表示画面が表示される。
【００４２】
以上説明したように、本実施形態に係る通信端末装置１０は、旧ＪａｖａＡＰＰを実行中にバージョンアップメソッドを呼出すことにより、実行中の旧ＪａｖａＡＰＰを新ＪａｖａＡＰＰへバージョンアップすることができる。これにより、ユーザに実際に利用されるＪａｖａＡＰＰのみのバージョンアップが行われる。
【００４３】
［Ｃ．変形例］
以上、本発明の実施形態について説明したが、本発明は係る実施形態に限定されるものではなく、その技術思想の範囲内で様々な変形が可能である。なお、変形例としては、例えば、以下のようなものが考えられる。
【００４４】
（変形例１）上述した実施形態では、基地局２１から送信されてくる電波の電波強度を示す値が予め定められた閾値より大きい場合にのみ、ＪａｖａＡＰＰのバージョンアップを完遂できると判定する場合について説明した。しかしながら、通信端末装置１０の制御部４１０が、ＪａｖａＡＰＰのバージョンアップを完遂できるか否かを判定するための基準となる情報は、係る電波強度を示す値に限定されるものではない。例えば、通信端末装置１０に内蔵されている電池の電池残量であっても良い。このように電池残量に基づいてバージョンアップを開始するか否かを判定する理由は、以下のとおりである。
【００４５】
一般に、携帯電話機などの移動通信端末装置は、自装置に内蔵している電池から動作電力の供給を受けている。このため、電池残量が十分でない場合にＪａｖａＡＰＰのバージョンアップを開始してしまうと、そのバージョンアップが完了する前に電池が放電しきってしまうことがあり得る。このような場合には、移動通信端末装置は、もはや動作不能でありバージョンアップを完遂することができなくなる。バージョンアップを開始する前に、電池残量をチェックするようにすれば、このような事態の発生を回避することができる。
【００４６】
（変形例２）上述した実施形態では、Ｊａｖａ実行環境を有する携帯電話機に本発明を提供する場合について説明した。しかしながら、本発明の適用対象は係る携帯電話機に限定されるものではない。例えば、Ｊａｖａ実行環境を備えたＰＤＡやＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ：登録商標）端末であっても良く、Ｊａｖａ実行環境を有するＰＣであって、図９に示されるように、ＧＷ装置５０を介してインターネット３０に接続されたＬＡＮ６０を構成するＰＣ７０Ａ〜７０Ｃであっても良い。要は、Ｊａｖａ実行環境を備えＪＡＭに従ってＪａｖａＡＰＰを実行する機能とともに、通信網を介してコンテンツサーバ４０と通信する機能を有するコンピュータ装置であれば、いずれであっても良い。
【００４７】
なお、図９に示されるＰＣ７０Ａ〜７０Ｃで実行されているＪａｖａＡＰＰのバージョンアップを行う場合には、ＪａｖａＡＰＰのバージョンアップを完了できるか否かを判定すること（図８：ステップＳＢ２）や、ダウンロードが正常に終了したか否かを判定すること（図８：ステップＳＢ５）は不要になる。これは、図９に示されるＰＣ７０Ａ〜７０Ｃは、ＬＡＮ６０を介してインターネット３０へ有線接続されているために、常に、コンテンツサーバ４０と通信することが可能であり、ＪａｖａＡＰＰのバージョンアップを確実に完了できるからである。
【００４８】
（変形例３）上述した実施形態では、Ｊａｖａで記述されたアプリケーションプログラムを通信端末装置１０に記憶させておく場合について説明した。しかしながら、係るアプリケーションプログラムを記述するプログラミング言語はＪａｖａに限定されるものではない。例えば、Ｃ＋＋で記述されたアプリケーションプログラムであっても良い。ただし、このような場合には、そのアプリケーションプログラムを記憶する通信端末装置に、そのアプリケーションプログラムの管理を行うためのソフトウェアをＪＡＭに替えて記憶させておく必要がある。
【００４９】
（変形例４）上述した実施形態では、実行中のＪａｖａＡＰＰをバージョンアップするためのソフトウェアを予め通信端末装置１０に記憶させておく場合について説明した。しかしながら、一般的なコンピュータ装置に、本発明に係る通信端末装置の機能を実現するソフトウェアを記憶させることにより、係る通信端末装置と同一の機能を付与することができる。
【００５０】
具体的には、コンピュータ装置読み取り可能な記録媒体であって、上記ソフトウェアを記録した記録媒体を用いて一般的なコンピュータ装置に係るソフトウェアをインストールすることにより、一般的なコンピュータ装置に本発明に係る通信端末装置と同一の機能を付与することができる。
【００５１】
【発明の効果】
本発明によれは、実行中のアプリケーションプログラムがバージョンアップされる。そのため、ユーザが実際に利用するアプリケーションプログラムのみがバージョンアップされるといった効果を奏する。
【図面の簡単な説明】
【図１】本発明に係る通信端末装置１０を有する通信システムの構成例を示す図である。
【図２】同通信端末装置１０の制御部４１０がＪａｖａＡＰＰに従って行う動作の流れを説明するためのフローチャートである。
【図３】同通信端末装置１０の表示部４２０に表示される表示画面の一例を示す図である。
【図４】同通信端末装置１０の構成例を示す図である。
【図５】同通信端末装置１０のプログラム格納領域４６２ａの一例を示す図である。
【図６】同通信端末装置１０に組み込まれているＪａｖａ実行環境を説明するための図である。
【図７】同通信端末装置１０の表示部４２０に表示される表示画面の一例を示す図である。
【図８】バージョンアップメソッドが呼出された場合に制御部４１０がＪＡＭに従って行う動作の流れを説明するためのフローチャートである。
【図９】変形例２に係る通信システムの構成例を示す図である。
【符号の説明】
１０…通信端末装置、２０…移動パケット通信網、２１…基地局、２２…ＧＷ装置、３０…インターネット、４０…コンテンツサーバ、４１０…制御部、４２０…表示部、４３０…操作部、４４０…計時部、４５０…無線通信部、４６０…記憶部、４６１…揮発性記憶部、４６２…不揮発性記憶部、４６２ａ…プログラム格納領域、４７０…バス。
【図１】
2004302517.tif 000003
【図２】
2004302517.tif 000004
【図３】
2004302517.tif 000005
【図４】
2004302517.tif 000006
【図５】
2004302517.tif 000007
【図６】
2004302517.tif 000008
【図７】
2004302517.tif 000009
【図８】
2004302517.tif 000010
【図９】
2004302517.tif 000011