(57)【要約】中間コードのダウンロード処理と並行してネイティブコンパイル処理を行うことにより実行待ち時間を短縮する方法およびシステムを提供する。サーバ（２０）は、移動体通信端末（１０）がネイティブコンパイルを行う際に必要となる各中間コードの単位ブロックが参照する他の単位ブロックの属性情報からなる外部参照情報をヘッダとして付加したダウンロードデータ４２ａを生成する。移動体通信端末（１０）は、サーバからの全中間コードの受信完了前に、受信済みの単位ブロックについてネイティブコンパイル処理を開始する。ある単位ブロックのネイティブコンパイル時に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイルを行う。サーバ（２０）は、各クラスのネイティブコンパイルに必要な外部参照情報はまとめて一組の外部参照情報として、中間コードの全ブロックに先だって送信してもよい。
2004075048.tif 000002
【特許請求の範囲】
【請求項１】
移動体通信端末装置において、ＯＳに依存しない中間コードをネイティブコードへ変換するネイティブコンパイル方法であって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報からなる外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
を備えたことを特徴とするネイティブコンパイル方法。
【請求項２】
移動体通信端末装置において、ＯＳに依存しない中間コードを外部から受信しながらネイティブコードへ変換するネイティブコンパイル方法であって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報をまとめた一組の外部参照情報に続いて複数の単位ブロックの中間コードを、無線通信網を介して受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
を備えたことを特徴とするネイティブコンパイル方法。
【請求項３】
サーバにおいてＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理方法であって、
ソースプログラムを単位ブロック毎の中間コードに変換するステップと、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集するステップと、
収集された外部参照情報を当該各単位ブロックに付加するステップと、
前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信するステップと、
を備えたことを特徴とするネイティブコンパイル前処理方法。
【請求項４】
ある単位ブロックに付加すべき外部参照情報が先に送信される単位ブロックに付加される外部参照情報と同じであるとき、後に送信される単位ブロックに対する当該同じ外部参照情報の付加を省略することを特徴とする請求の範囲３に記載のネイティブコンパイル前処理方法。
【請求項５】
サーバにおいてＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理方法であって、
ソースプログラムを単位ブロック毎の中間コードに変換するステップと、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集するステップと、
収集された一組の外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信するステップと、
を備えたことを特徴とするネイティブコンパイル前処理方法。
【請求項６】
ＯＳに依存しない中間コードをネイティブコードへ変換するコンピュータプログラムであって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報からなる外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
を備えたことを特徴とするコンピュータプログラム。
【請求項７】
移動体通信端末装置において、ＯＳに依存しない中間コードを外部から受信しながらネイティブコードへ変換するコンピュータプログラムであって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報をまとめた一組の外部参照情報に続いて複数の単位ブロックの中間コードを、無線通信網を介して受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
を備えたことを特徴とするコンピュータプログラム。
【請求項８】
ＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理を行うサーバであって、
ソースプログラムを単位ブロック毎の中間コードに変換する手段と、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、
収集された外部参照情報を当該各単位ブロックに付加する手段と、
前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段と、
を備えたことを特徴とするサーバ。
【請求項９】
ある単位ブロックに付加すべき外部参照情報が先に送信される単位ブロックに付加される外部参照情報と同じであるとき、後に送信される単位ブロックに対する当該同じ外部参照情報の付加を省略することを特徴とする請求の範囲８に記載のサーバ。
【請求項１０】
ＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理を行うサーバであって、
ソースプログラムを単位ブロック毎の中間コードに変換する手段と、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、
収集された外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段と、
を備えたことを特徴とするサーバ。
【請求項１１】
サーバとこのサーバからＯＳに依存しない中間コードを通信ネットワーク経由で受信する移動体通信端末装置とを備えた通信システムであって、
前記サーバは、ソースプログラムを単位ブロック毎の中間コードに変換し、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集し、
収集された外部参照情報を当該各単位ブロックに付加し、
前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信し、
前記移動体通信端末装置は、前記外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次受信し、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始し、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行い、
このネイティブコンパイル処理により得られたネイティブコードを実行する
ことを特徴とする通信システム。
【請求項１２】
サーバとこのサーバからＯＳに依存しない中間コードを通信ネットワーク経由で受信する移動体通信端末装置とを備えた通信システムであって、
前記サーバは、
ソースプログラムを単位ブロック毎の中間コードに変換し、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集し、
収集された一組の外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信し、
前記移動体通信端末装置は、
前記一組の外部参照情報に続いて前記複数の単位ブロックの中間コードを受信し、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始し、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行い、
このネイティブコンパイル処理により得られたネイティブコードを実行する
ことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】  本発明は、サーバおよび移動体通信端末装置からなる通信システムに関し、特に、ネイティブコンパイル前処理方法、ネイティブコンパイル方法、コンピュータプログラム、およびサーバに関する。
【背景技術】  近年、携帯電話機等の移動体通信端末装置において、インターネットなどのネットワークを介してサーバからアプリケーションプログラムを取得し、移動体通信端末装置においてアプリーションプログラムを実行することにより、装置に新たな機能を追加できるようになってきている。
このようなアプリケーションプログラムとして、Ｊａｖａ（登録商標）言語で書かれたプログラム（ソースコード）はコンパイルされてバイトコードと呼ばれる中間コードに変換される。バイトコードは、個々の計算機のＣＰＵが直接実行するのではなく、ソフトウェアで作られた計算エンジンである仮想計算機により実行され、また、特定のハードウェアやＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）に依存せず、比較的サイズが小さいため、ネットワーク上でプログラムを配布するのに適している。しかし、仮想計算機での実行形式はインタープリタ（ソフトウェア）により逐次解析実行されるものであり、その実行速度が遅いという問題がある。
これに対して、ＣＰＵが直接実行できるコードはネイティブコード（機械語）と呼ばれ、その実行速度はインタープリタによる実行速度に比べて格段に速い。移動体通信端末装置のＣＰＵの実行速度を有効に利用するには、バイトコードをネイティブコードに変換するいわゆるネイティブコンパイルを行う必要がある。
ネイティブコンパイルをサーバにおいて実行し、その結果として得られたネイティブコードを移動体通信端末装置に送信する方法も考えられるが、ネイティブコードは移動体通信端末装置の機種（主としてＣＰＵやＯＳの種類）毎に異なる可能性があり、機種の種類は将来的に増加していくため、サーバ側での機種毎のネイティブコンパイルの実行およびネイティブコードの管理は負担が大きい。そこで、ネイティブコンパイルは移動体通信端末装置側で担当することが望ましい。
しかし、移動体通信端末装置におけるネイティブコードコンパイルには時間がかかるため、その処理が完了するまでプログラムを実行することができない。従来、ネイティブコンパイルに要する時間を短縮する手法としてＪＩＴ（Ｊｕｓｔ  Ｉｎ  Ｔｉｍｅ）コンパイラというものが知られている（例えば特開２００２−２１５４１１号公報参照）。ＪＩＴコンパイラは、アプリケーションの実行時にバイトコードをネイティブコードに変換し、ＣＰＵに直接実行させるものである。プログラム実行の１回目は、バイトコードをネイティブコードにコンパイルして実行するが、２回目以降はメモリ内に保存されたネイティブコードを直接実行することにより、実行効率が向上する。これにより、Ｊａｖａアプリケーションを高速で実行させることが可能となる。但し、ＪＩＴコンパイラの実行は、１回目のプログラム実行時に行うため、プログラム実行開始まで待ち時間が必要になることは回避できない。
一方、現状で移動体通信端末装置が利用できるデータ通信速度は比較的遅い。携帯電話パケット網のような無線通信は、光通信網、ＡＤＳＬ網などのブロードバンド通信網に比べてデータ転送速度が著しく低い。近年、携帯電話機に搭載されるＣＰＵの高速化が進んでいるが、それに比べて無線通信網のデータ転送速度は低速なままである。したがって、あるアプリケーションプログラムの全バイトコードを受信するのに相応の時間を要し、さらに、ＣＰＵが高速化したとはいえ、このバイトコードをネイティブコンパイルするのにも相応の時間を要する。そのため、通信を開始してから当該アプリケーションプログラムを実行開始するまでの時間が長いという問題があった。
特開２０００−４０００７号公報には、ＪＡＲファイル（複数のクラスファイルを１つのファイルに圧縮したもの）の受信と同時にアプリケーションを起動し、受信処理とアプリケーション処理を並行して行うことにより、アプリケーション起動時のユーザの待ち時間を短縮する技術が開示されている。
しかしながら、この技術は中間コードをインタープリタにより実行するものであり、ネイティブコードによるアプリケーションの実行ではない。また、ネイティブコンパイルの場合、すべてのバイトコードが受信されなければ、コンパイル処理を開始することができない。なぜなら、通常、あるクラスのコンパイル時にそのクラスが他のクラスを参照している場合には、そのクラスの存在およびそのクラス内の特定のメソッドやフィールドの存在を確認する必要があるからである。このため、ネイティブコンパイルを中間コードのダウンロード処理と並行して実行するにしても、参照先のクラスが未受信の場合にはそのクラスが受信されるまで当該クラスのコンパイル処理を保留しなければならない。アプリケーションの実行開始はさらにこのコンパイル処理の終了後となる。その結果、受信直後のアプリケーションの実行に相当の待ち時間を要するという問題があった。
本発明はこのような背景においてなされたものであり、その目的は、中間コードのダウンロード処理と並行してネイティブコンパイル処理を行うことにより実行待ち時間を短縮することができる通信システム、ネイティブコンパイル前処理方法、ネイティブコンパイル方法、コンピュータプログラム、およびサーバを提供することにある。
【発明の開示】
本発明によるネイティブコンパイル方法は、移動体通信端末装置において、ＯＳに依存しない中間コードをネイティブコードへ変換するネイティブコンパイル方法であって、各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報からなる外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次受信するステップと、全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップとを備えたことを特徴とする。
移動体通信端末装置は、全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードについてネイティブコンパイル処理を開始する。これに際して、当該単位ブロックが参照する他の単位ブロックの属性情報からなる外部参照情報は当該単位ブロックとともに受信されているので、直ちにネイティブコンパイルを開始することに支障はない。なお、本明細書において「無線通信網を介して」とは、無線通信網のみを経由することを意味するものではなく、無線通信網のみならず有線通信網をも経由してもよい。
よって、ネイティブコンパイルに要する時間を、中間コードのダウンロード時間の全部または一部に吸収させることができる。すなわち、アプリケーションのダウンロードと並行して、ＣＰＵの空き時間を利用し、ネイティブコードへの変換を行うことができる。その結果として、起動時にコンパイルを行う場合に比べてアプリケーションの実行待ち時間を大幅に短縮することができる。
本発明による他のネイティブコンパイル方法は、移動体通信端末装置において、ＯＳに依存しない中間コードを外部から受信しながらネイティブコードへ変換するネイティブコンパイル方法であって、各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報をまとめた一組の外部参照情報に続いて複数の単位ブロックの中間コードを、無線通信網を介して受信するステップと、全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップとを備えたことを特徴とする。この方法では、各単位ブロックとともに外部参照情報を受信するのではなく、複数の単位ブロックに先だって一組の外部参照情報を受信する。この場合にも、アプリケーションのダウンロードと並行して、ＣＰＵの空き時間を利用し、ネイティブコードへの変換を行うことができる。
本発明によるネイティブコンパイル前処理方法は、サーバにおいてＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理方法であって、ソースプログラムを単位ブロック毎の中間コードに変換するステップと、各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集するステップと、収集された外部参照情報を当該各単位ブロックに付加するステップと、前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信するステップとを備えたことを特徴とする。
この方法では、サーバは、収集された外部参照情報を各単位ブロックに付加して、移動体通信端末装置へ、無線通信網を介して順次送信する。この場合、ある単位ブロックに付加すべき外部参照情報が先に送信される単位ブロックに付加される外部参照情報と同じであるとき、後に送信される単位ブロックに対する当該同じ外部参照情報の付加を省略することができる。これにより、送信データ量が軽減される。
本発明による他のネイティブコンパイル前処理方法は、サーバにおいてＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理方法であって、ソースプログラムを単位ブロック毎の中間コードに変換するステップと、各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集するステップと、収集された一組の外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信するステップとを備えたことを特徴とする。
この方法では、収集された外部参照情報を各単位ブロックに付加するのではなく、収集された外部参照情報をまとめて一組の外部参照情報として前記複数の単位ブロックより先に送信する。
本発明は、各ネイティブコンパイル方法の各ステップを実行するするコンピュータプログラムとして把握することもできる。
本発明によるサーバは、ＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理を行うサーバであって、ソースプログラムを単位ブロック毎の中間コードに変換する手段と、各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、収集された外部参照情報を当該各単位ブロックに付加する手段と、前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段とを備えたことを特徴とする。このサーバの機能は、前述した第１のネイティブコンパイル前処理方法について説明したとおりである。
本発明による他のサーバは、ＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理を行うサーバであって、ソースプログラムを単位ブロック毎の中間コードに変換する手段と、各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、収集された一組の外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段とを備えたことを特徴とする。このサーバの機能は、前述した第２のネイティブコンパイル前処理方法について説明したとおりである。
本発明は、さらに、上記ネイティブコンパイル前処理方法を実行するサーバとこのサーバからＯＳに依存しない中間コードを通信ネットワーク経由で受信してネイティブコンパイル処理を実行する移動体通信端末装置とを備えた通信システムとして把握することも可能である。
【図面の簡単な説明】  図１は、本発明が適用される通信システムの概略構成を示す図である。
図２は、図１内に示した移動体通信端末の概略のハードウェア構成例を示すブロック図である。
図３は、図１内に示したサーバの概略のハードウェア構成例を示すブロック図である。
図４は、Ｊａｖａアプリケーションのクラスのソースコードの例を二つ示す図である。
図５は、図４のクラスＡ，Ｂについての外部参照情報の例を示す図である。
図６は、本発明の実施の形態においてＪａｖａソースコードから、これに対応するネイティブコードを得るまでの第１のデータ変換方法を説明するための図である。
図７は、図６のデータ変換方法に対応した処理のフローチャートである。
図８は、本発明の実施の形態においてＪａｖａソースコードから、これに対応するネイティブコードを得るまでの第２のデータ変換方法を説明するための図である。
図９は、図８のデータ変換方法に対応した処理のフローチャートである。
【発明を実施するための最良の形態】  以下、本発明の実施の形態について、図面を参照して詳細に説明する。
図１に、本発明が適用される通信システムの概略構成を示す。図では移動体通信端末装置の例として、携帯電話機１０Ａおよび携帯情報端末（ＰＤＡ）１０Ｂを示している。本発明が適用される移動体通信端末装置はこれらに限るものではなく、通信ネットワークからの中間コードのダウンロードおよびネイティブコンパイルを行う任意の同様の端末装置に適用可能である。本明細書では、これらの端末装置を総称して移動体通信端末装置１０という（以下、単に移動体通信端末ともいう）。移動体通信端末１０は基地局１５を介して携帯電話網１７に接続され、さらに、ゲートウェイ（Ｇ／Ｗ）１８を介して、インターネット１９のような通信ネットワークに接続される。インターネット１９には各種サイトのサーバ２０が接続されており、移動体通信端末１０はサーバ２０にアクセスして、ここからＪａｖａアプリケーションのような所望のアプリケーションプログラムを中間コードの形式でダウンロードすることができる。
図２は移動体通信端末１０の概略のハードウェア構成例を示す。移動体通信端末１０は、端末全体を制御するＣＰＵ１００を有する。ＣＰＵ１００は、ＲＯＭ１０１、ＲＡＭ１０２、フラッシュメモリ１０３、無線通信制御部１０４、液晶ディスプレイ１１１、タッチパネル１１２、入力インタフェース１１３、および音声制御部１１７に接続される。
ＲＯＭ１０１は、ＣＰＵ１００の実行する各種プログラムおよび固定的なデータを格納した不揮発性の読み出し専用メモリである。ＲＡＭ１０２は、ＣＰＵ１００の作業領域およびデータの一時記憶領域を提供する書き込み可能なメモリである。フラッシュメモリ１０３は、追加的なアプリケーションプログラムや各種データを不揮発的に記憶する再書き込み可能なメモリである。無線通信制御部１０４は、アンテナ１０５を介して基地局１５との間で音声およびデータの無線通信（送受信）を行う部位である。液晶ディスプレイ１１１は表示画面を有する表示部を構成する。タッチパネル１１２は通常表示画面に重ねて配置され、画面に対するスティックや指などの接触位置を検知するための入力デバイスである。但し、このタッチパネルは本発明において必須の要素ではない。入力インタフェース部１１３は、ユーザによる移動体通信端末の操作部のダイヤルボタン１１４やカーソルキー１１５の入力操作を受け付ける部位である。音声制御部１１７は、マイク１１８およびスピーカ１１９が接続され、音声の入出力を制御する部位である。
図３にサーバ２０の概略のハードウェア構成例を示す。サーバ２０は、このサーバ全体を制御するＣＰＵ２００を有する。ＣＰＵ２００は、メモリ２０１、ネットワークインタフェース部２０２、表示部２０４、入力部２０５および外部記憶装置２０６に接続される。メモリ２０１は前述したＲＯＭ，ＲＡＭ，フラッシュメモリ等を含みうる。ネットワークインタフェース部２０２は、インターネット１９のような通信ネットワークとの接続を行う部位である。表示部２０４は任意のディスプレイ装置であり、入力部２０５はキーボード等の入力装置である。外部記憶装置２０６は、ハードディスク装置等の大容量の記憶装置である。
以下、本システムの動作を説明する。本実施の形態においてダウンロード対象となるプログラムは、Ｊａｖａアプリケーションプログラムのバイトコード（中間コード）である。但し、本発明の対象となるアプリケーションプログラムはＪａｖａに限るものではなく、同様の中間コードを有する任意のプログラム、例えばＣ＃等、にも適用可能である。
Ｊａｖａアプリケーションプログラムは、通常、複数のクラスで構成される。クラスはＪａｖａの実行の最小単位であり、通常、複数のメソッドおよびフィールド（変数）を含む。メソッドは動作を定義し、フィールドはデータを定めるものである。図４にＪａｖａアプリケーションのクラスのソースコードの例を二つ示す。クラスＡ（ＣｌａｓｓＡ）は、クラスＢ（ＣｌａｓｓＢ）のｐｒｉｎｔメソッドを呼び出して”Ｈｅｌｌｏ”という文字列を渡す処理を記述し、クラスＢは、その文字列を表示する処理を記述している。したがって、クラスＡの中間コードをネイティブコンパイルする際には、クラスＡが参照している他のクラスやメソッドが実在するかどうか、等を検証する必要がある。これは、コンパイル後のネイティブコードの実行時に当該プログラムが実行不能となるような事態を予め回避するためである。
したがって、あるクラスの中間コードのネイティブコンパイル時にはそのクラスが参照しているクラスの情報が必要となる。この場合、当該参照先のクラスが既にダウンロードされていれば足りるが、通信が完了する前にコンパイルを開始しているのでそのクラスがダウンロードされているとは限らない。ここで留意すべき点は、ネイティブコンパイルに必要なのはその参照先のクラス全体ではなくそのクラスの属性的な情報のみで足りるということである。このような属性情報を本明細書では外部参照情報という。本発明では、各クラスのバイトコードのネイティブコンパイルの際には、後述するように、少なくともそのクラスが参照しているクラスの外部参照情報が既に得られている状態とする。
図５に、図４のクラスＡ，Ｂについての外部参照情報の例を示す。図５（ａ）はクラスＡが外部に見せている情報を示し、図５（ｂ）はクラスＢが外部に見せている情報を示している。あるクラスが外部に見せている情報は他のクラスが利用する外部参照情報であり、そのクラス名、スーパークラス名、メソッド情報、等を含む。メソッド情報は、当該クラスに含まれる各メソッドのメソッド番号、メソッド名、アクセス制限、引数の情報および戻り値の情報、等を含む。
図６に、本実施の形態においてＪａｖａソースコードから、これに対応するネイティブコードを得るまでの第１のデータ変換方法を説明する。
ＪａｖａソースコードからＪａｖａコンパイル（バイトコードコンパイル）により、その中間コードであるＪａｖａバイトコード４１を得る処理は従来どおりである。本実施の形態では、サーバにおいて、このＪａｖａバイトコード４１から、外部参照情報を含んだダウンロードデータ４２ａを生成する。本明細書ではこのネイティブコンパイル前処理をプレネイティブコンパイルと呼ぶ。この例でのダウンロードデータ４２ａは、クラス単位に、そのクラスのネイティブコンパイルに必要な外部参照情報がヘッダとして付加される。すなわち、あるクラスに対応したバイトコードブロック４３１には、そのクラスが参照しているクラスについての外部参照情報の集合であるヘッダ４２１が付加される。あるクラスが外部に見せている情報自体はそのクラスのヘッダに含める必要はない。バイトコードブロック４３２，４３３についても同様である。
但し、クラスの送信順序は予め分かっているので、先にダウンロードされるクラスについてのヘッダに含まれていると同じ外部参照情報を後のクラスについて必要とする場合には後の方の外部参照情報の付加を省略することができる。例えば、移動体通信端末によるダウンロード時に、サーバからバイトコードブロック４３１，４３２，４３３の順に送信が行われるとすると、バイトコードブロック４３２に付加すべきヘッダ４２２においては、先に送信されるバイトコードブロック４３１のヘッダ４２１に含まれている外部参照情報は省略することができる。同様に、バイトコードブロック４３３に付加すべきヘッダ４２３においては、先に送信されるバイトコードブロック４３１，４３２のヘッダ４２１，４２２に含まれている外部参照情報は省略することができる。このようにして、ヘッダの総情報量を低減することができる。他のクラスを全く参照しないクラスについてはそのバイトコードブロックにヘッダを付加する必要はない。
このような構成のダウンロードデータ４２ａは、移動体通信端末側で受信され、Ｊａｖａバイトコードのクラス単位のブロックごとにその受信順にネイティブコンパイルが行われる。あるクラスのバイトコードブロックの受信完了時にはそのクラスのネイティブコンパイルに必要な情報はすべて揃っているので、直ちにネイティブコンパイルを実行することができる。すなわち、各バイトコードブロック４３１，４３２，４３３はそれぞれのヘッダ４２１，４２２，４２３内の外部参照情報および先に受信済みのものを利用してネイティブコンパイルを行い、ネイティブコード４４１，４４２，４４３を生成する。
また、本実施の形態では、クラス単位に付加する外部参照情報をヘッダとして各バイトコードブロックの先頭に付加するようにした。これは早期に、必要が外部参照情報を用意するという点で好ましいが、必ずしもこれに限定されるものではない。例えば、各バイトコードブロックの最後に（フッタとして）付加したり、単位ブロック内部に分散して付加しても、相応の効果は得られる。
図７は、図６のデータ変換方法に対応した処理のフローチャートを示している。この処理の前半はサーバ２０の処理に対応し、後半は移動体通信端末１０の処理に対応している。ここでは、典型的な例として、サーバにあるデータベースに登録されたアプリケーションプログラムに対する移動体通信端末１０からのダウンロード要求に基づいて、指示されたアプリケーションプログラムの中間コードがサーバから移動体通信端末に送信される場合を想定している。
まず、サーバ２０は、送信対象のソースプログラム４０をバイトコードコンパイラにより中間コード（Ｊａｖａバイトコード）４１に変換する（Ｓ１）。すなわち、ソースコードのトークン化（Ｓ１１）、その解析（Ｓ１２）、および中間コードの生成（Ｓ１３）を行う。サーバ２０は、この中間コード４１に対してさらにプレネイティブコンパイルを行う（Ｓ２）。具体的には、ブロック（ここではクラス）毎に他のブロックの参照に関する外部参照情報を収集し（Ｓ１４）、この外部参照情報を各ブロックにヘッダとして付加する（Ｓ１５）。このようにして上記ダウンロードデータ４２ａが用意され、このダウンロードデータ４２ａは通信ネットワークを介してブロック単位に順次移動体通信端末に送信される。
移動体通信端末は、ダウンロードデータ４２ａをブロック単位に順次受信し（Ｓ３）、一旦、受信キャッシュメモリ５１に格納する。この受信キャッシュメモリ５１は例えばＲＡＭ１０２（図２）内に設けられる。移動体通信端末は、最初の中間コード単位ブロックの受信完了後、直ちに、受信キャッシュメモリ５１内の中間コードを単位ブロック４３毎に取り出して、ネイティブコンパイル処理を行う（Ｓ４）。すなわち、必要な外部参照情報を参照しながら中間コードをＣＰＵ依存のネイティブコードに変換する。より具体的には、このネイティブコンパイルは、他クラス参照の正当性のチェック（Ｓ１６）、ネイティブコードの生成（Ｓ１７）と最適化（Ｓ１８）とからなる。クラス参照の正当性のチェックは、図５に示したような外部参照情報を基に、あるクラスから他のクラスを参照する場合に参照先の適正な情報が確かに存在すること、およびアクセス制限が適正であること、等を事前に確認する処理である。最適化は必ずしも行う必要はない。ブロック毎のネイティブコンパイルによりネイティブコードブロック４４が得られる。これらのネイティブコードブロック４４は、一旦コードキャッシュメモリ５２（ＲＡＭ１０２内）に保存される。移動体通信端末は、ついで、これらのネイティブコードブロック４４をリンクして、実行対象のネイティブコード４５としてネイティブコード格納部５３に格納する。ネイティブコード格納部５３としては、ＲＡＭ１０２またはフラッシュメモリ１０３を用いうる。ネイティブコードを不揮発的に保存する場合には後者を用いる。このようにして得られたネイティブコードは実行メモリ５４（ＲＡＭ１０２内）にロードされ、ＣＰＵにより実行される。
図６，図７で説明した第１のデータ変換方法では、各クラスのバイトコードブロックのネイティブコンパイル時には、そのクラスで必要とされる外部参照情報はそのブロックのヘッダとして既に受信されているので、直ちにネイティブコンパイルの実行が可能である。
次に、本実施の形態においてＪａｖａソースコードから、これに対応するネイティブコードを得るまでの第２のデータ変換方法について説明する。
図８は、この第２のデータ変換方法を説明するための図である。図６と対応する部分には、同じ参照符号を付してある。図６の第１のデータ変換方法と異なる点は、第１のデータ変換方法では各クラス単位に、クラスのバイトコードとそのクラスに必要な外部参照情報とを組にしてブロック化した（分散して配置した）が、第２のデータ変換方法では全クラスに必要な一組の外部参照情報を一つの外部参照情報ファイル４６にまとめた（集中させた）点にある。この外部参照情報ファイル４６は、各クラスが外部に見せている情報（図５（ａ）（ｂ））が重複無く一組にまとめられたものである。外部参照情報ファイル４６は、ダウンロード時に、サーバから移動体通信端末への送信の際にバイトコードブロックに先立って最初に送信される。移動体通信端末でのネイティブコンパイル時にはこの外部参照情報ファイル４６を参照することにより、いずれのクラスについてもそのネイティブコンパイルに必要な情報が得られる。なお、外部参照情報ファイル４６は、必ずしも全クラスについて各クラスが外部に見せている情報を含む必要はない。すなわち、他のクラスから参照されないクラスについてはその情報を含める必要はない。また、必ずしもファイルの形式とする必要はなく、ファイルに含まれる実質的に等価なデータがバイトコードに添付されれば足りる。
図９は、図８のデータ変換方法に対応した処理のフローチャートを示している。この処理は図７の第１の処理と類似しており、その相違点について主に説明する。相違点は、サーバにおけるプレネイティブコンパイル処理Ｓ２、および移動体通信端末におけるネイティブコンパイル処理Ｓ４の内容である。すなわち、サーバのプレネイティブコンパイル処理Ｓ２では、ブロック（ここではクラス）毎に他のブロックの参照に関する外部参照情報を収集し（Ｓ２４）、この外部参照情報をまとめて外部参照情報ファイル４６を生成する（Ｓ２５）。
移動体通信端末でのネイティブコンパイル処理Ｓ４では、外部参照情報ファイル４６を参照しながらネイティブコンパイル処理を行う以外、図７でのネイティブコンパイル処理Ｓ４と同じである。
図８，図９で説明した第２のデータ変換方法では、各クラスのバイトコードブロックのネイティブコンパイル時には、そのクラスで必要とされる外部参照情報は最初に受信した外部参照情報ファイル４６により与えられるので、直ちにネイティブコンパイルの実行が可能である。
以上、本発明の好適な実施の形態について説明したが、請求の範囲を逸脱することなく、上記で言及した以外にも種々の変形、変更を行うことが可能である。
例えば、単位ブロックをクラスに対応させたが、他の単位ブロックとすることも可能である。
ネイティブコンパイルは最初のバイトコードブロックの受信完了後に開始するようにしたが、最初のバイトコードブロックの受信が完了する前に開始してもよい。
外部参照情報ファイルは送信時にデータ圧縮し、受信側で解凍して用いるようにしてもよい。
また、本発明は上記説明した無線通信網において最も顕著な効果を奏するが、有線通信網を含む通信網上での中間コードのダウンロードに広く適用することができる。
さらに、本発明はサーバからクライアント端末への中間コードのダウンロードに限定されるものではなく、端末間での中間コード転送に適用することもできる。
本発明によれば、サーバにおいてプレネイティブコンパイル処理により外部参照情報を生成してこれを中間コードとともに送信することにより、移動体通信端末装置側では中間コードの受信が完了する前に外部参照情報を用いてネイティブコンパイルを開始し、ネイティブコンパイルに要する時間を、中間コードのダウンロード時間の全部または一部に吸収させることができる。すなわち、アプリケーションのダウンロードと並行して、ＣＰＵの空き時間を利用してネイティブコードへの変換を行うことにより、アプリケーション起動時にコンパイルを開始する場合に比べて実行待ち時間を短縮することができる。
【産業上の利用可能性】  本発明は、比較的通信速度の遅い通信システムへ適用して好適である。
【図１】
2004075048.tif 000003
【図２】
2004075048.tif 000004
【図３】
2004075048.tif 000005
【図４】
2004075048.tif 000006
【図５】
2004075048.tif 000007
【図６】
2004075048.tif 000008
【図７】
2004075048.tif 000009
【図８】
2004075048.tif 000010
【図９】
2004075048.tif 000011
【手続補正書】
【提出日】平成17年8月12日(2005.8.12)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
移動体通信端末装置において、ＯＳに依存しない中間コードをネイティブコードへ変換するネイティブコンパイル方法であって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報からなる外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
を備えたことを特徴とするネイティブコンパイル方法。
【請求項２】
移動体通信端末装置において、ＯＳに依存しない中間コードを外部から受信しながらネイティブコードへ変換するネイティブコンパイル方法であって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報をまとめた一組の外部参照情報に続いて複数の単位ブロックの中間コードを、無線通信網を介して受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
を備えたことを特徴とするネイティブコンパイル方法。
【請求項３】
サーバにおいてＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理方法であって、
ソースプログラムを単位ブロック毎の中間コードに変換するステップと、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集するステップと、
収集された外部参照情報を当該各単位ブロックに付加するステップと、
前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信するステップと、
を備えたことを特徴とするネイティブコンパイル前処理方法。
【請求項４】
ある単位ブロックに付加すべき外部参照情報が先に送信される単位ブロックに付加される外部参照情報と同じであるとき、後に送信される単位ブロックに対する当該同じ外部参照情報の付加を省略することを特徴とする請求の範囲３に記載のネイティブコンパイル前処理方法。
【請求項５】
サーバにおいてＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理方法であって、
ソースプログラムを単位ブロック毎の中間コードに変換するステップと、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集するステップと、
収集された一組の外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信するステップと、
を備えたことを特徴とするネイティブコンパイル前処理方法。
【請求項６】
ＯＳに依存しない中間コードをネイティブコードへ変換するコンピュータプログラムであって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報からなる外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
を備えたことを特徴とするコンピュータプログラム。
【請求項７】
移動体通信端末装置において、ＯＳに依存しない中間コードを外部から受信しながらネイティブコードへ変換するコンピュータプログラムであって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報をまとめた一組の外部参照情報に続いて複数の単位ブロックの中間コードを、無線通信網を介して受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
を備えたことを特徴とするコンピュータプログラム。
【請求項８】
ＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理を行うサーバであって、
ソースプログラムを単位ブロック毎の中間コードに変換する手段と、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、
収集された外部参照情報を当該各単位ブロックに付加する手段と、
前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段と、
を備えたことを特徴とするサーバ。
【請求項９】
ある単位ブロックに付加すべき外部参照情報が先に送信される単位ブロックに付加される外部参照情報と同じであるとき、後に送信される単位ブロックに対する当該同じ外部参照情報の付加を省略することを特徴とする請求の範囲８に記載のサーバ。
【請求項１０】
ＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理を行うサーバであって、
ソースプログラムを単位ブロック毎の中間コードに変換する手段と、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、
収集された外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段と、
を備えたことを特徴とするサーバ。
【請求項１１】
サーバとこのサーバからＯＳに依存しない中間コードを通信ネットワーク経由で受信する移動体通信端末装置とを備えた通信システムであって、
前記サーバは、ソースプログラムを単位ブロック毎の中間コードに変換し、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集し、
収集された外部参照情報を当該各単位ブロックに付加し、
前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信し、
前記移動体通信端末装置は、前記外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次受信し、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始し、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行い、
このネイティブコンパイル処理により得られたネイティブコードを実行する
ことを特徴とする通信システム。
【請求項１２】
サーバとこのサーバからＯＳに依存しない中間コードを通信ネットワーク経由で受信する移動体通信端末装置とを備えた通信システムであって、
前記サーバは、
ソースプログラムを単位ブロック毎の中間コードに変換し、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集し、
収集された一組の外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信し、
前記移動体通信端末装置は、
前記一組の外部参照情報に続いて前記複数の単位ブロックの中間コードを無線通信網を介して受信し、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始し、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行い、
このネイティブコンパイル処理により得られたネイティブコードを実行する
ことを特徴とする通信システム。
【請求項１３】
サーバからＯＳに依存しない中間コードを通信ネットワーク経由で受信する移動体通信端末装置であって、
前記サーバにおいてソースプログラムを変換して得られた単位ブロック毎の中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報としての外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次前記サーバから受信する手段と、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始し、ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行う手段と、
このネイティブコンパイル処理により得られたネイティブコードを実行する手段と、
を備えたことを特徴とする移動体通信端末装置。
【請求項１４】
サーバからＯＳに依存しない中間コードを通信ネットワーク経由で受信する移動体通信端末装置であって、
前記サーバにおいてソースプログラムを変換して得られた単位ブロック毎の中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報としての一組の外部参照情報とこれに続いて前記複数の単位ブロックの中間コードを無線通信網を介して前記サーバから受信する手段と、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始し、ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行う手段と、
このネイティブコンパイル処理により得られたネイティブコードを実行する手段と、
を備えたことを特徴とする移動体通信端末装置。
【手続補正書】
【提出日】平成17年11月16日(2005.11.16)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
移動体通信端末装置において、ＯＳに依存しない中間コードをネイティブコードへ変換するネイティブコンパイル方法であって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報からなる外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
を備えたことを特徴とするネイティブコンパイル方法。
【請求項２】
移動体通信端末装置において、ＯＳに依存しない中間コードを外部から受信しながらネイティブコードへ変換するネイティブコンパイル方法であって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報をまとめた一組の外部参照情報に続いて複数の単位ブロックの中間コードを、無線通信網を介して受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
を備えたことを特徴とするネイティブコンパイル方法。
【請求項３】
サーバにおいてＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理方法であって、
ソースプログラムを単位ブロック毎の中間コードに変換するステップと、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集するステップと、
収集された外部参照情報を当該各単位ブロックに付加するステップと、
前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信するステップと、
を備えたことを特徴とするネイティブコンパイル前処理方法。
【請求項４】
ある単位ブロックに付加すべき外部参照情報が先に送信される単位ブロックに付加される外部参照情報と同じであるとき、後に送信される単位ブロックに対する当該同じ外部参照情報の付加を省略することを特徴とする請求項３に記載のネイティブコンパイル前処理方法。
【請求項５】
サーバにおいてＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理方法であって、
ソースプログラムを単位ブロック毎の中間コードに変換するステップと、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集するステップと、
収集された一組の外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信するステップと、
を備えたことを特徴とするネイティブコンパイル前処理方法。
【請求項６】
ＯＳに依存しない中間コードをネイティブコードへ変換するコンピュータプログラムであって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報からなる外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項７】
移動体通信端末装置において、ＯＳに依存しない中間コードを外部から受信しながらネイティブコードへ変換するコンピュータプログラムであって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報をまとめた一組の外部参照情報に続いて複数の単位ブロックの中間コードを、無線通信網を介して受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項８】
ＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理を行うサーバであって、
ソースプログラムを単位ブロック毎の中間コードに変換する手段と、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、
収集された外部参照情報を当該各単位ブロックに付加する手段と、
前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段と、
を備えたことを特徴とするサーバ。
【請求項９】
ある単位ブロックに付加すべき外部参照情報が先に送信される単位ブロックに付加される外部参照情報と同じであるとき、後に送信される単位ブロックに対する当該同じ外部参照情報の付加を省略することを特徴とする請求項８に記載のサーバ。
【請求項１０】
ＯＳに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理を行うサーバであって、
ソースプログラムを単位ブロック毎の中間コードに変換する手段と、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、
収集された外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段と、
を備えたことを特徴とするサーバ。
【請求項１１】
サーバとこのサーバからＯＳに依存しない中間コードを通信ネットワーク経由で受信する移動体通信端末装置とを備えた通信システムであって、
前記サーバは、
ソースプログラムを単位ブロック毎の中間コードに変換する手段と、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、
収集された外部参照情報を当該各単位ブロックに付加する手段と、
前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段とを備え、
前記移動体通信端末装置は、
前記外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次受信する手段と、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始する手段と、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行う手段と、
このネイティブコンパイル処理により得られたネイティブコードを実行する手段と、
を備えたことを特徴とする通信システム。
【請求項１２】
サーバとこのサーバからＯＳに依存しない中間コードを通信ネットワーク経由で受信する移動体通信端末装置とを備えた通信システムであって、
前記サーバは、
ソースプログラムを単位ブロック毎の中間コードに変換する手段と、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、
収集された一組の外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段と、
前記移動体通信端末装置は、
前記一組の外部参照情報に続いて前記複数の単位ブロックの中間コードを無線通信網を介して受信する手段と、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始する手段と、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行う手段と、
このネイティブコンパイル処理により得られたネイティブコードを実行する手段と、
を備えたことを特徴とする通信システム。
【請求項１３】
サーバからＯＳに依存しない中間コードを通信ネットワーク経由で受信する移動体通信端末装置であって、
前記サーバにおいてソースプログラムを変換して得られた単位ブロック毎の中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報としての外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次前記サーバから受信する手段と、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始し、ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行う手段と、
このネイティブコンパイル処理により得られたネイティブコードを実行する手段と、
を備えたことを特徴とする移動体通信端末装置。
【請求項１４】
サーバからＯＳに依存しない中間コードを通信ネットワーク経由で受信する移動体通信端末装置であって、
前記サーバにおいてソースプログラムを変換して得られた単位ブロック毎の中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報としての一組の外部参照情報とこれに続いて前記複数の単位ブロックの中間コードを無線通信網を介して前記サーバから受信する手段と、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始し、ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行う手段と、
このネイティブコンパイル処理により得られたネイティブコードを実行する手段と、
を備えたことを特徴とする移動体通信端末装置。
【国際調査報告】
2004075048.tif 000012
2004075048.tif 000013
2004075048.tif 000014