(57)【要約】【課題】携帯電話端末のＪＡＲ領域に登録されるクラスファイル（プログラムファイル）を変更すること無く、デバッグ情報の出力や新たなプログラムの追加が可能な仮想コンピュータシステムを実現する。【解決手段】携帯電話端末のＪＡＲ領域に、パッケージとしてＪａｖａプログラムとともに、デバッグ機能とクラスロード機能を備えた仮想コンピュータコンポーネントを登録し、スクラッチパッド領域へのクラスファイルの登録を可能とすることによって、実質的にＪＡＲ領域を拡張する。【選択図】図１
2007048252.tif 000002
【特許請求の範囲】
【請求項１】
所定のコンピュータハードウエアのＯＳ上にインストールされたソフトウエアからなる仮想コンピュータと、当該仮想コンピュータ上で起動するプログラムとの間に、少なくともデバッグ機能と、新たなプログラムのロード機能とを有する仮想コンピュータコンポーネントを介装させた仮想コンピュータシステム。
【請求項２】
請求項１記載の仮想コンピュータコンポーネント上で起動するプログラムを生成する変換手段であって、
前記変換手段は、
モジュール毎にデバッグ情報を与えられると、デバッグ対象かデバッグ非対象かを判定するステップと、
デバッグ非対象モジュールについては、前記仮想コンピュータコンポーネント上でそのまま実行できるコードとするステップと、
デバッグ対象モジュールについては、モジュール名称を変換するとともに、前記仮想コンピュータコンポーネント上でそのまま実行できるコードを保持し、  新たなデバッグモジュールを追加し、当該デバッグモジュールはデバッグ命令を含んで前記仮想コンピュータコンポーネント上で実行できるコードに変換するステップと、を実行する変換手段。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯電話端末、ＰＤＡ、パーソナルコンピュータ、家庭用民生器機等でＪａｖａシステムを組み込んでいる通信端末に関する。
【背景技術】
【０００２】
Ｊａｖａ言語のようなソフトウエアによって仮想コンピュータシステムを構築する技術が知られている。
このような仮想コンピュータシステムでは、図２の左側図に示すように、ＯＳ（オペレーティングシステム）上にＪａｖａ言語による仮想コンピュータが存在しており、ＯＳ上にはＪａｖａ ＡＰＩが実装されており、その上層にローディングされたＪａｖａプログラ
ムを駆動することによって、仮想コンピュータシステム上でのプログラムの実行を実現していた。
【０００３】
なお、仮想コンピュータシステムの代表例である、携帯電話端末におけるファイルのダウンロードについて記載した先行技術として特開２００５−１６５６６６号公報（特許文献１）がある。
【特許文献１】特開２００５−１６５６６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、前述のような、仮想コンピュータシステムの場合、プログラムのダウンロードがアプリケーションを構成するクラスファイルとリソースファイルが一体化され規格化されたパッケージ（ＪＡＲ：１０Ｋバイト〜３０Ｋバイト程度の圧縮ファイル）単位でしか許可されていないため、Ｊａｖａ（登録商標）プログラムに一部の機能を追加したい場合や、Ｊａｖａプログラムの一部にのみ障害がある場合でも、パッケージ全体を更新しなくてはならなかった。
【０００５】
そのために、たとえば、Ｊａｖａプログラムが何らかの障害で機能しなくなった場合であっても、開発ツールに対してデバッグ情報を出力することができずに、障害の解析が難しく、回避策のために再度パッケージを再生成しなくてはならず、煩雑な処理が必要だった。
【０００６】
このような点に対して、前記仮想コンピュータシステム上に、さらにソフトウエアで実現されるＡＰＩを含む完全な形でのＸ仮想コンピュータを実装して、当該Ｘ仮想コンピュータからデバッグ情報を入出力したり、クラスファイル（プログラムファイル）のロードを行う機能を担わせることも考えられる（図１の右上図）。
【０００７】
しかし、このようなＸ仮想コンピュータシステムを構築した場合、当該Ｘ仮想コンピュータシステムに適合させたＸプログラム言語、Ｘ ＡＰＩも構築し直さなければならず、
かえって処理が煩雑になる可能性があった。
【０００８】
本発明は、このような点に鑑みてなされたものであり、ＪＡＲ領域に登録されるクラスファイル（プログラムファイル）を変更すること無く、デバッグ情報の出力や新たなプログラムの追加が可能な仮想コンピュータシステムを実現することを技術的課題とする。
【課題を解決するための手段】
【０００９】
前記課題を解決するために、本発明では、以下の手段を採用した。
所定のコンピュータハードウエアのＯＳ上にインストールされたソフトウエアからなる仮想コンピュータと、当該仮想コンピュータ上で起動する仮想プログラムとの間に、少なくともデバッグ情報の出力機能と、新たなプログラムのロード機能とを有する仮想コンピュータコンポーネントを介装させた仮想コンピュータシステムとしたものである。
【００１０】
また、前記変換手段は、モジュール毎にデバッグ情報を与えられると、デバッグ対象かデバッグ非対象かを判定するステップと、デバッグ非対象モジュールについては、前記仮想コンピュータコンポーネント上でそのまま実行できるコードとするステップと、デバッグ対象モジュールについては、モジュール名称を変換するとともに、前記仮想コンピュータコンポーネント上でそのまま実行できるコードを保持し、新たなデバッグモジュールを追加し、当該デバッグモジュールはデバッグ命令を含んで前記仮想コンピュータコンポーネント上で実行できるコードに変換するステップと、を実行するようにしたものである。
【発明の効果】
【００１１】
本発明によれば、仮想コンピュータと仮想プログラムとの間に、仮想コンピュータコンポーネントを介在させることによって、デバッグ機能と、新たなプログラムのロード機能とを実現できるようにした。また、このような仮想コンピュータコンポーネント上でデバッグ対象のプログラムを効率的に実行させるための変換手段（変換ツール）を提供することで仮想コンピュータ上でのデバッグをより効率的に行えるようにした。
【発明を実施するための最良の形態】
【００１２】
（実施形態１）
図１の下図は本発明の実施形態である仮想コンピュータシステムの  構成を示したものである。
【００１３】
本実施形態の仮想コンピュータシステムは、携帯電話端末に搭載されるものであり、具体的には、図３に示すように、Ｊａｖａアプリケーション管理部（ＪＡＭ）とメモリ（ＭＥＭ）とで構成されている。このメモリ（ＭＥＭ）は、パッケージを格納するＪＡＲ領域（Ｊａｒ）と、スクラッチパッド領域（ＳＰ）とで構成されている。
【００１４】
ＪＡＲ領域（Ｊａｒ）には、仮想コンピュータコンポーネントとＪａｖａプログラム（クラスファイル）とがパッケージとして格納されるようになっている。
【００１５】
図１の下図に示すように、仮想コンピュータコンポーネントは、Ｊａｖａ仮想コンピュータ上に構築され、その上層にはＪａｖａプログラムが配置されている。このように、仮想コンピュータコンポーネントとＪａｖａプログラムはパッケージ化されてＪＡＲ領域（Ｊａｒ）に格納されている。
【００１６】
ここで、当該パッケージ自体はＪＡＲ領域（Ｊａｒ）に登録された状態で、部分的な更新ができないが、仮想コンピュータコンポーネントには、追加機能部が設けられており、当該追加機能部がデバッグ機能とクラスファイルのロード機能を備えている。
【００１７】
Ｊａｖａプログラムによって外部のサーバ等からダウンロードされたファイル（クラスファイル）はスクラッチパッド領域に登録されるが、この追加機能部に設けられたクラスファイルのロード機能によりロードし実行することができる。
【００１８】
本実施形態では、ＪＡＲ領域（Ｊａｒ）に仮想コンピュータコンポーネントを格納することによってＪａｖａプログラムの容量が限定されることになるが、スクラッチパッド領域（ＳＰ）に新たなクラスファイル（追加Ｊａｖａプログラム）を登録できるため、実質的にＪＡＲ領域（Ｊａｒ）のプログラム領域が拡張されていることになる。
【００１９】
スクラッチパッド領域（ＳＰ）に登録されたクラスファイル（追加Ｊａｖａプログラム）は、仮想コンピュータコンポーネントからの命令によってロードおよび実行することが可能である。
【００２０】
次に、図４〜図７によって、携帯電話端末（２）に搭載された仮想コンピュータコンポーネントの追加機能部が、ホストコンピュータの開発ツール（１）とデバッグ情報を送受信する手順について説明する。
【００２１】
まず、Ｊａｖａアプリケーション管理部（ＪＡＭ）による仮想コンピュータコンポーネントとＪａｖａプログラムの立ち上げ処理が行われると、起動メッセージが携帯電話端末（２）（図４では丸付き数字の２で示してある）から開発ツール（１）（図４では丸付き数字の１で示してある）に送信される。
【００２２】
ここで、所定時間を計数し、当該所定時間内に開発ツール（１）から応答が無い場合には、タイムアウト処理を行う（図５の右図参照）。
【００２３】
また、開発ツール（１）が最初に携帯電話端末（２）に対して通信情報ＩＤを送信した場合、この通信情報ＩＤの受信を契機に、Ｊａｖａアプリケーション管理部（ＪＡＭ）は、仮想コンピュータコンポーネントとＪａｖａプログラムの立ち上げ処理を行う。
【００２４】
次にＪａｖａプログラムの実行処理において、開発ツール（１）から携帯電話端末（２）に対してデバッグ命令（コマンド）が送信された場合、これを受信した携帯電話端末（２）は当該デバッグ命令を実行して、そのデバッグ実行結果を開発ツール（１）に返信する（図６左図参照）。ここで、デバッグ命令は、開発ツール（１）が自発的に送信する場合の他、ポーリング処理によって携帯電話端末（２）が開発ツール（１）から取得するようにしてもよい（図６右図）。
【００２５】
またデバッグ処理において、携帯電話端末（２）からのイベントメッセージ情報やデバッグ命令実行結果情報を受信したときには、開発ツール（１）は、前記情報に対応した命令を携帯電話端末（２）に対して送信する。そして携帯電話端末（２）はそのデバッグ実行結果を開発ツール（１）に返信する。
【００２６】
なお、開発ツール（１）からの命令が終了命令である場合には、携帯電話端末（２）は開発ツール（１）との通信を中断（終了）する（図６の左図および右図）。
【００２７】
以上の実施形態の説明では、ハードウエアとして携帯電話端末を用いた場合で説明したが、これに限られず、Ｊａｖａをインストールしたコンピュータ、Ｊａｖａ組込系の情報処理装置、ＰＤＡ、ゲーム端末装置に適用できることは勿論である。
【００２８】
（実施形態２）
図８〜図１０は本発明の別の実施形態を示すものである。
【００２９】
図８は、図１の下図と同じものであるが、プログラム構造とその機能をよりわかりやすくしたものである。
【００３０】
同図に示すように、本実施形態では、ｉアプリとしては、従来はＪＡＲ領域（Ｊａｒ）に登録されるＪａｖａファイルとしてのＪａｖａプログラムコードと、スクラッチパッド領域に登録されるデータのみが提供されていたのに対して、ＪＡＲ領域には「ＪａｖａＶＭ（追加機能モジュールを含む仮想コンピュータコンポーネント）」と「Ｊａｖａプログ
ラムコード」とが登録され、スクラッチパッド領域には「Ｊａｖａプログラムコード」と「データ」とが登録されるようになっている。
【００３１】
ここで、ＪＡＲ領域（Ｊａｒ）に登録されるＪａｖａファイルは、パーソナルコンピュータ等で実行される変換ツールに情報（たとえばデバッグ情報）を与えることによって生成可能である（後で説明する図１０参照）。
【００３２】
これにより、追加機能モジュールの更新が可能となり、クラスを動的に読み込んで実行させることで、サイズ制限を超えたアプリケーションを実現することができるクラスロードモジュールへの利用や、ユーザが既にダウンロードしたアプリケーション（ｉアプリ）に後から機能を追加したり選択したりすることが可能なプラグインモジュール、たとえば、ＦｅｌｉＣａ（登録商標）に代表される共通の入出金決済機能の場合の共通モジュール等、の場合に再度モジュールのダウンロードを不要とすることができる。
【００３３】
図９は、本発明をＦｅｌｉＣａによるプラグインモジュールを共通プラットフォームとして適用した場合の例である。
【００３４】
従来技術によれば、この種のＦｅｌｉＣａ機能に対応したアプリケーション（ｉアプリ）を使用する場合、各アプリケーション毎にＦｅｌｉＣａの読み書き機能部と通信を行うためのＦｅｌｉＣａモジュールをアプリケーション内に個々に登録しておく必要があったが、本発明を用いることにより、ＦｅｌｉＣａモジュールが既にダウンロードされたスクラッチパッド領域（ＳＰ）に登録されている場合には、これを追加機能モジュールとして使用することができるため、アプリケーション毎にＦｅｌｉＣａモジュールを含ませておく必要が無い。
【００３５】
次に、本実施形態の応用例として、パーソナルコンピュータ側にインストールされた変換ツールによる自動化の例を説明する。
【００３６】
図１０は実施形態１によるプログラムのデバッグを行うための技術である。
【００３７】
本実施形態で提供されるＪａｖａアプリケーションは２つの機能を有しており、第１は仮想コンピュータコンポーネントとのインターフェースを図ることであり、第２は直接ハードウエア上のＪａｖａ仮想コンピュータに実行させる非デバッグ対象と、仮想コンピュータコンポーネント上で実行されるデバッグ対象とに分けることにより効率的なプログラム開発が可能となる。
【００３８】
このように、１つのＪａｖａアプリケーションをデバッグ対象と非デバッグ対象とに分割するために図１０に示す変換ツールを用いることができる。
【００３９】
図１０は、Ｊａｖａプログラムコードをデバッグ可能にするために、変換ツールを用いてソースコードを変換した例を示したものである。変換ツールはパーソナルコンピュータにインストールされたプログラムであり、このプログラムには、デバッグ情報が与えられている。このデバッグ情報には、たとえばmethod bのみをデバッグの対象とし、method aはデバッグ非対象とする情報が登録されている。
【００４０】
このようなソースコードが入力されたときに、変換ツールは当該ソースコードを分析しながら、method aはそのままとし、method bをデバッグ対象として、名称変更し(method_b)、method_debug bを追加し、method bの実行時にデバッグを行えるようにする。
【産業上の利用可能性】
【００４１】
本発明は、携帯電話端末のＪａｖａ実行環境を改善するものである。
【図面の簡単な説明】
【００４２】
【図１】仮想コンピュータとＸ仮想コンピュータと本発明の仮想コンピュータシステムとの差異を説明するための図
【図２】従来技術のＪａｖａ仮想マシンプログラムの説明図
【図３】実施形態の携帯電話端末のメモリ構成を示す説明図
【図４】開発ツールと携帯電話端末とのデバッグ処理手順を示す説明図
【図５】開発ツールと携帯電話端末との起動時通信の処理手順を示す説明図
【図６】開発ツールと携帯電話端末との通信処理手順を示す説明図（１）
【図７】開発ツールと携帯電話端末との通信処理手順を示す説明図（２）
【図８】実施形態２のプログラム構造を示す説明図
【図９】実施形態２を決済機能プログラムに適用した例を示す説明図
【図１０】実施形態２のデバッグ機能を追加したソースコードの変換例を説明するための図
【符号の説明】
【００４３】
ＪＡＭ   Ｊａｖａアプリケーション管理部
ＭＥＭ   メモリ
Ｊａｒ  ＪＡＲ領域
ＳＰ    スクラッチパッド領域
【図１】
2007048252.tif 000003
【図２】
2007048252.tif 000004
【図３】
2007048252.tif 000005
【図４】
2007048252.tif 000006
【図５】
2007048252.tif 000007
【図６】
2007048252.tif 000008
【図７】
2007048252.tif 000009
【図８】
2007048252.tif 000010
【図９】
2007048252.tif 000011
【図１０】
2007048252.tif 000012