JP3757235B2 - ネイティブコンパイル方法、ネイティブコンパイル前処理方法、コンピュータプログラム、サーバ、通信システム、および移動体通信端末装置 - Google Patents
ネイティブコンパイル方法、ネイティブコンパイル前処理方法、コンピュータプログラム、サーバ、通信システム、および移動体通信端末装置 Download PDFInfo
- Publication number
- JP3757235B2 JP3757235B2 JP2005502703A JP2005502703A JP3757235B2 JP 3757235 B2 JP3757235 B2 JP 3757235B2 JP 2005502703 A JP2005502703 A JP 2005502703A JP 2005502703 A JP2005502703 A JP 2005502703A JP 3757235 B2 JP3757235 B2 JP 3757235B2
- Authority
- JP
- Japan
- Prior art keywords
- unit block
- native
- code
- external reference
- reference information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Mobile Radio Communication Systems (AREA)
- Stored Programmes (AREA)
Description
本発明は、サーバおよび移動体通信端末装置からなる通信システムに関し、特に、ネイティブコンパイル前処理方法、ネイティブコンパイル方法、コンピュータプログラム、およびサーバに関する。
背景技術
近年、携帯電話機等の移動体通信端末装置において、インターネットなどのネットワークを介してサーバからアプリケーションプログラムを取得し、移動体通信端末装置においてアプリーションプログラムを実行することにより、装置に新たな機能を追加できるようになってきている。
このようなアプリケーションプログラムとして、Java(登録商標)言語で書かれたプログラム(ソースコード)はコンパイルされてバイトコードと呼ばれる中間コードに変換される。バイトコードは、個々の計算機のCPUが直接実行するのではなく、ソフトウェアで作られた計算エンジンである仮想計算機により実行され、また、特定のハードウェアやOS(Operating System)に依存せず、比較的サイズが小さいため、ネットワーク上でプログラムを配布するのに適している。しかし、仮想計算機での実行形式はインタープリタ(ソフトウェア)により逐次解析実行されるものであり、その実行速度が遅いという問題がある。
これに対して、CPUが直接実行できるコードはネイティブコード(機械語)と呼ばれ、その実行速度はインタープリタによる実行速度に比べて格段に速い。移動体通信端末装置のCPUの実行速度を有効に利用するには、バイトコードをネイティブコードに変換するいわゆるネイティブコンパイルを行う必要がある。
ネイティブコンパイルをサーバにおいて実行し、その結果として得られたネイティブコードを移動体通信端末装置に送信する方法も考えられるが、ネイティブコードは移動体通信端末装置の機種(主としてCPUやOSの種類)毎に異なる可能性があり、機種の種類は将来的に増加していくため、サーバ側での機種毎のネイティブコンパイルの実行およびネイティブコードの管理は負担が大きい。そこで、ネイティブコンパイルは移動体通信端末装置側で担当することが望ましい。
しかし、移動体通信端末装置におけるネイティブコードコンパイルには時間がかかるため、その処理が完了するまでプログラムを実行することができない。従来、ネイティブコンパイルに要する時間を短縮する手法としてJIT(Just In Time)コンパイラというものが知られている(例えば特開2002−215411号公報参照)。JITコンパイラは、アプリケーションの実行時にバイトコードをネイティブコードに変換し、CPUに直接実行させるものである。プログラム実行の1回目は、バイトコードをネイティブコードにコンパイルして実行するが、2回目以降はメモリ内に保存されたネイティブコードを直接実行することにより、実行効率が向上する。これにより、Javaアプリケーションを高速で実行させることが可能となる。但し、JITコンパイラの実行は、1回目のプログラム実行時に行うため、プログラム実行開始まで待ち時間が必要になることは回避できない。
一方、現状で移動体通信端末装置が利用できるデータ通信速度は比較的遅い。形態電話パケット網のような無線通信は、光通信網、ADSL網などのブロードバンド通信網に比べてデータ転送速度が著しく低い。近年、携帯電話機に搭載されるCPUの高速化が進んでいるが、それに比べて無線通信網のデータ転送速度は低速なままである。したがって、あるアプリケーションプログラムの全バイトコードを受信するのに相応の時間を要し、さらに、CPUが高速化したとはいえ、このバイトコードをネイティブコンパイルするのにも相応の時間を要する。そのため、通信を開始してから当該アプリケーションプログラムを実行開始するまでの時間が長いという問題があった。
特開2000−40007号公報には、JARファイル(複数のクラスファイルを1つのファイルに圧縮したもの)の受信と同時にアプリケーションを起動し、受信処理とアプリケーション処理を並行して行うことにより、アプリケーション起動時のユーザの待ち時間を短縮する技術が開示されている。
しかしながら、この技術は中間コードをインタープリタにより実行するものであり、ネイティブコードによるアプリケーションの実行ではない。また、ネイティブコンパイルの場合、すべてのバイトコードが受信されなければ、コンパイル処理を開始することができない。なぜなら、通常、あるクラスのコンパイル時にそのクラスが他のクラスを参照している場合には、そのクラスの存在およびそのクラス内の特定のメソッドやフィールドの存在を確認する必要があるからである。このため、ネイティブコンパイルを中間コードのダウンロード処理と並行して実行するにしても、参照先のクラスが未受信の場合にはそのクラスが受信されるまで当該クラスのコンパイル処理を保留しなければならない。アプリケーションの実行開始はさらにこのコンパイル処理の終了後となる。その結果、受信直後のアプリケーションの実行に相当の待ち時間を要するという問題があった。
本発明はこのような背景においてなされたものであり、その目的は、中間コードのダウンロード処理と並行してネイティブコンパイル処理を行うことにより実行待ち時間を短縮することができる通信システム、ネイティブコンパイル前処理方法、ネイティブコンパイル方法、コンピュータプログラム、およびサーバを提供することにある。
発明の開示
本発明によるネイティブコンパイル方法は、移動体通信端末装置において、OSに依存しない中間コードをネイティブコードへ変換するネイティブコンパイル方法であって、各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報からなる外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次受信するステップと、全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップとを備えたことを特徴とする。
移動体通信端末装置は、全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードについてネイティブコンパイル処理を開始する。これに際して、当該単位ブロックが参照する他の単位ブロックの属性情報からなる外部参照情報は当該単位ブロックとともに受信されているので、直ちにネイティブコンパイルを開始することに支障はない。なお、本明細書において「無線通信網を介して」とは、無線通信網のみを経由することを意味するものではなく、無線通信網のみならず有線通信網をも経由してもよい。
よって、ネイティブコンパイルに要する時間を、中間コードのダウンロード時間の全部または一部に吸収させることができる。すなわち、アプリケーションのダウンロードと並行して、CPUの空き時間を利用し、ネイティブコードへの変換を行うことができる。その結果として、起動時にコンパイルを行う場合に比べてアプリケーションの実行待ち時間を大幅に短縮することができる。
本発明による他のネイティブコンパイル方法は、移動体通信端末装置において、OSに依存しない中間コードを外部から受信しながらネイティブコードへ変換するネイティブコンパイル方法であって、各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報をまとめた一組の外部参照情報に続いて複数の単位ブロックの中間コードを、無線通信網を介して受信するステップと、全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップとを備えたことを特徴とする。この方法では、各単位ブロックとともに外部参照情報を受信するのではなく、複数の単位ブロックに先だって一組の外部参照情報を受信する。この場合にも、アプリケーションのダウンロードと並行して、CPUの空き時間を利用し、ネイティブコードへの変換を行うことができる。
本発明によるネイティブコンパイル前処理方法は、サーバにおいてOSに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理方法であって、ソースプログラムを単位ブロック毎の中間コードに変換するステップと、各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集するステップと、収集された外部参照情報を当該各単位ブロックに付加するステップと、前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信するステップとを備えたことを特徴とする。
この方法では、サーバは、収集された外部参照情報を各単位ブロックに付加して、移動体通信端末装置へ、無線通信網を介して順次送信する。この場合、ある単位ブロックに付加すべき外部参照情報が先に送信される単位ブロックに付加される外部参照情報と同じであるとき、後に送信される単位ブロックに対する当該同じ外部参照情報の付加を省略することができる。これにより、送信データ量が軽減される。
本発明による他のネイティブコンパイル前処理方法は、サーバにおいてOSに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理方法であって、ソースプログラムを単位ブロック毎の中間コードに変換するステップと、各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集するステップと、収集された一組の外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信するステップとを備えたことを特徴とする。
この方法では、収集された外部参照情報を各単位ブロックに付加するのではなく、収集された外部参照情報をまとめて一組の外部参照情報として前記複数の単位ブロックより先に送信する。
本発明は、各ネイティブコンパイル方法の各ステップを実行するするコンピュータプログラムとして把握することもできる。
本発明によるサーバは、OSに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理を行うサーバであって、ソースプログラムを単位ブロック毎の中間コードに変換する手段と、各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、収集された外部参照情報を当該各単位ブロックに付加する手段と、前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段とを備えたことを特徴とする。このサーバの機能は、前述した第1のネイティブコンパイル前処理方法について説明したとおりである。
本発明による他のサーバは、OSに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理を行うサーバであって、ソースプログラムを単位ブロック毎の中間コードに変換する手段と、各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、収集された一組の外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段とを備えたことを特徴とする。このサーバの機能は、前述した第2のネイティブコンパイル前処理方法について説明したとおりである。
本発明は、さらに、上記ネイティブコンパイル前処理方法を実行するサーバとこのサーバからOSに依存しない中間コードを通信ネットワーク経由で受信してネイティブコンパイル処理を実行する移動体通信端末装置とを備えた通信システムとして把握することも可能である。
【図面の簡単な説明】
図1は、本発明が適用される通信システムの概略構成を示す図である。
図2は、図1内に示した移動体通信端末の概略のハードウェア構成例を示すブロック図である。
図3は、図1内に示したサーバの概略のハードウェア構成例を示すブロック図である。
図4は、Javaアプリケーションのクラスのソースコードの例を二つ示す図である。
図5は、図4のクラスA,Bについての外部参照情報の例を示す図である。
図6は、本発明の実施の形態においてJavaソースコードから、これに対応するネイティブコードを得るまでの第1のデータ変換方法を説明するための図である。
図7は、図6のデータ変換方法に対応した処理のフローチャートである。
図8は、本発明の実施の形態においてJavaソースコードから、これに対応するネイティブコードを得るまでの第2のデータ変換方法を説明するための図である。
図9は、図8のデータ変換方法に対応した処理のフローチャートである。
発明を実施するための最良の形態
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
図1に、本発明が適用される通信システムの概略構成を示す。図では移動体通信端末装置の例として、携帯電話機10Aおよび携帯情報端末(PDA)10Bを示している。本発明が適用される移動体通信端末装置はこれらに限るものではなく、通信ネットワークからの中間コードのダウンロードおよびネイティブコンパイルを行う任意の同様の端末装置に適用可能である。本明細書では、これらの端末装置を総称して移動体通信端末装置10という(以下、単に移動体通信端末ともいう)。移動体通信端末10は基地局15を介して携帯電話網17に接続され、さらに、ゲートウェイ(G/W)18を介して、インターネット19のような通信ネットワークに接続される。インターネット19には各種サイトのサーバ20が接続されており、移動体通信端末10はサーバ20にアクセスして、ここからJavaアプリケーションのような所望のアプリケーションプログラムを中間コードの形式でダウンロードすることができる。
図2は移動体通信端末10の概略のハードウェア構成例を示す。移動体通信端末10は、端末全体を制御するCPU100を有する。CPU100は、ROM101、RAM102、フラッシュメモリ103、無線通信制御部104、液晶ディスプレイ111、タッチパネル112、入力インタフェース113、および音声制御部117に接続される。
ROM101は、CPU100の実行する各種プログラムおよび固定的なデータを格納した不揮発性の読み出し専用メモリである。RAM102は、CPU100の作業領域およびデータの一時記憶領域を提供する書き込み可能なメモリである。フラッシュメモリ103は、追加的なアプリケーションプログラムや各種データを不揮発的に記憶する再書き込み可能なメモリである。無線通信制御部104は、アンテナ105を介して基地局15との間で音声およびデータの無線通信(送受信)を行う部位である。液晶ディスプレイ111は表示画面を有する表示部を構成する。タッチパネル112は通常表示画面に重ねて配置され、画面に対するスティックや指などの接触位置を検知するための入力デバイスである。但し、このタッチパネルは本発明において必須の要素ではない。入力インタフェース部113は、ユーザによる移動体通信端末の操作部のダイヤルボタン114やカーソルキー115の入力操作を受け付ける部位である。音声制御部117は、マイク118およびスピーカ119が接続され、音声の入出力を制御する部位である。
図3にサーバ20の概略のハードウェア構成例を示す。サーバ20は、このサーバ全体を制御するCPU200を有する。CPU200は、メモリ201、ネットワークインタフェース部202、表示部204、入力部205および外部記憶装置206に接続される。メモリ201は前述したROM,RAM,フラッシュメモリ等を含みうる。ネットワークインタフェース部202は、インターネット19のような通信ネットワークとの接続を行う部位である。表示部204は任意のディスプレイ装置であり、入力部205はキーボード等の入力装置である。外部記憶装置206は、ハードディスク装置等の大容量の記憶装置である。
以下、本システムの動作を説明する。本実施の形態においてダウンロード対象となるプログラムは、Javaアプリケーションプログラムのバイトコード(中間コード)である。但し、本発明の対象となるアプリケーションプログラムはJavaに限るものではなく、同様の中間コードを有する任意のプログラム、例えばC#等、にも適用可能である。
Javaアプリケーションプログラムは、通常、複数のクラスで構成される。クラスはJavaの実行の最小単位であり、通常、複数のメソッドおよびフィールド(変数)を含む。メソッドは動作を定義し、フィールドはデータを定めるものである。図4にJavaアプリケーションのクラスのソースコードの例を二つ示す。クラスA(ClassA)は、クラスB(ClassB)のprintメソッドを呼び出して”Hello”という文字列を渡す処理を記述し、クラスBは、その文字列を表示する処理を記述している。したがって、クラスAの中間コードをネイティブコンパイルする際には、クラスAが参照している他のクラスやメソッドが実在するかどうか、等を検証する必要がある。これは、コンパイル後のネイティブコードの実行時に当該プログラムが実行不能となるような事態を予め回避するためである。
したがって、あるクラスの中間コードのネイティブコンパイル時にはそのクラスが参照しているクラスの情報が必要となる。この場合、当該参照先のクラスが既にダウンロードされていれば足りるが、通信が完了する前にコンパイルを開始しているのでそのクラスがダウンロードされているとは限らない。ここで留意すべき点は、ネイティブコンパイルに必要なのはその参照先のクラス全体ではなくそのクラスの属性的な情報のみで足りるということである。このような属性情報を本明細書では外部参照情報という。本発明では、各クラスのバイトコードのネイティブコンパイルの際には、後述するように、少なくともそのクラスが参照しているクラスの外部参照情報が既に得られている状態とする。
図5に、図4のクラスA,Bについての外部参照情報の例を示す。図5(a)はクラスAが外部に見せている情報を示し、図5(b)はクラスBが外部に見せている情報を示している。あるクラスが外部に見せている情報は他のクラスが利用する外部参照情報であり、そのクラス名、スーパークラス名、メソッド情報、等を含む。メソッド情報は、当該クラスに含まれる各メソッドのメソッド番号、メソッド名、アクセス制限、引数の情報および戻り値の情報、等を含む。
図6に、本実施の形態においてJavaソースコードから、これに対応するネイティブコードを得るまでの第1のデータ変換方法を説明する。
JavaソースコードからJavaコンパイル(バイトコードコンパイル)により、その中間コードであるJavaバイトコード41を得る処理は従来どおりである。本実施の形態では、サーバにおいて、このJavaバイトコード41から、外部参照情報を含んだダウンロードデータ42aを生成する。本明細書ではこのネイティブコンパイル前処理をプレネイティブコンパイルと呼ぶ。この例でのダウンロードデータ42aは、クラス単位に、そのクラスのネイティブコンパイルに必要な外部参照情報がヘッダとして付加される。すなわち、あるクラスに対応したバイトコードブロック431には、そのクラスが参照しているクラスについての外部参照情報の集合であるヘッダ421が付加される。あるクラスが外部に見せている情報自体はそのクラスのヘッダに含める必要はない。バイトコードブロック432,433についても同様である。
但し、クラスの送信順序は予め分かっているので、先にダウンロードされるクラスについてのヘッダに含まれていると同じ外部参照情報を後のクラスについて必要とする場合には後の方の外部参照情報の付加を省略することができる。例えば、移動体通信端末によるダウンロード時に、サーバからバイトコードブロック431,432,433の順に送信が行われるとすると、バイトコードブロック432に付加すべきヘッダ422においては、先に送信されるバイトコードブロック431のヘッダ421に含まれている外部参照情報は省略することができる。同様に、バイトコードブロック433に付加すべきヘッダ423においては、先に送信されるバイトコードブロック431,432のヘッダ421,422に含まれている外部参照情報は省略することができる。このようにして、ヘッダの総情報量を低減することができる。他のクラスを全く参照しないクラスについてはそのバイトコードブロックにヘッダを付加する必要はない。
このような構成のダウンロードデータ42aは、移動体通信端末側で受信され、Javaバイトコードのクラス単位のブロックごとにその受信順にネイティブコンパイルが行われる。あるクラスのバイトコードブロックの受信完了時にはそのクラスのネイティブコンパイルに必要な情報はすべて揃っているので、直ちにネイティブコンパイルを実行することができる。すなわち、各バイトコードブロック431,432,433はそれぞれのヘッダ421,422,423内の外部参照情報および先に受信済みのものを利用してネイティブコンパイルを行い、ネイティブコード441,442,443を生成する。
また、本実施の形態では、クラス単位に付加する外部参照情報をヘッダとして各バイトコードブロックの先頭に付加するようにした。これは早期に、必要が外部参照情報を用意するという点で好ましいが、必ずしもこれに限定されるものではない。例えば、各バイトコードブロックの最後に(フッタとして)付加したり、単位ブロック内部に分散して付加しても、相応の効果は得られる。
図7は、図6のデータ変換方法に対応した処理のフローチャートを示している。この処理の前半はサーバ20の処理に対応し、後半は移動体通信端末10の処理に対応している。ここでは、典型的な例として、サーバにあるデータベースに登録されたアプリケーションプログラムに対する移動体通信端末10からのダウンロード要求に基づいて、指示されたアプリケーションプログラムの中間コードがサーバから移動体通信端末に送信される場合を想定している。
まず、サーバ20は、送信対象のソースプログラム40をバイトコードコンパイラにより中間コード(Javaバイトコード)41に変換する(S1)。すなわち、ソースコードのトークン化(S11)、その解析(S12)、および中間コードの生成(S13)を行う。サーバ20は、この中間コード41に対してさらにプレネイティブコンパイルを行う(S2)。具体的には、ブロック(ここではクラス)毎に他のブロックの参照に関する外部参照情報を収集し(S14)、この外部参照情報を各ブロックにヘッダとして付加する(S15)。このようにして上記ダウンロードデータ42aが用意され、このダウンロードデータ42aは通信ネットワークを介してブロック単位に順次移動体通信端末に送信される。
移動体通信端末は、ダウンロードデータ42aをブロック単位に順次受信し(S3)、一旦、受信キャッシュメモリ51に格納する。この受信キャッシュメモリ51は例えばRAM102(図2)内に設けられる。移動体通信端末は、最初の中間コード単位ブロックの受信完了後、直ちに、受信キャッシュメモリ51内の中間コードを単位ブロック43毎に取り出して、ネイティブコンパイル処理を行う(S4)。すなわち、必要な外部参照情報を参照しながら中間コードをCPU依存のネイティブコードに変換する。より具体的には、このネイティブコンパイルは、他クラス参照の正当性のチェック(S16)、ネイティブコードの生成(S17)と最適化(S18)とからなる。クラス参照の正当性のチェックは、図5に示したような外部参照情報を基に、あるクラスから他のクラスを参照する場合に参照先の適正な情報が確かに存在すること、およびアクセス制限が適正であること、等を事前に確認する処理である。最適化は必ずしも行う必要はない。ブロック毎のネイティブコンパイルによりネイティブコードブロック44が得られる。これらのネイティブコードブロック44は、一旦コードキャッシュメモリ52(RAM102内)に保存される。移動体通信端末は、ついで、これらのネイティブコードブロック44をリンクして、実行対象のネイティブコード45としてネイティブコード格納部53に格納する。ネイティブコード格納部53としては、RAM102またはフラッシュメモリ103を用いうる。ネイティブコードを不揮発的に保存する場合には後者を用いる。このようにして得られたネイティブコードは実行メモリ54(RAM102内)にロードされ、CPUにより実行される。
図6,図7で説明した第1のデータ変換方法では、各クラスのバイトコードブロックのネイティブコンパイル時には、そのクラスで必要とされる外部参照情報はそのブロックのヘッダとして既に受信されているので、直ちにネイティブコンパイルの実行が可能である。
次に、本実施の形態においてJavaソースコードから、これに対応するネイティブコードを得るまでの第2のデータ変換方法について説明する。
図8は、この第2のデータ変換方法を説明するための図である。図6と対応する部分には、同じ参照符号を付してある。図6の第1のデータ変換方法と異なる点は、第1のデータ変換方法では各クラス単位に、クラスのバイトコードとそのクラスに必要な外部参照情報とを組にしてブロック化した(分散して配置した)が、第2のデータ変換方法では全クラスに必要な一組の外部参照情報を一つの外部参照情報ファイル46にまとめた(集中させた)点にある。この外部参照情報ファイル46は、各クラスが外部に見せている情報(図5(a)(b))が重複無く一組にまとめられたものである。外部参照情報ファイル46は、ダウンロード時に、サーバから移動体通信端末への送信の際にバイトコードブロックに先立って最初に送信される。移動体通信端末でのネイティブコンパイル時にはこの外部参照情報ファイル46を参照することにより、いずれのクラスについてもそのネイティブコンパイルに必要な情報が得られる。なお、外部参照情報ファイル46は、必ずしも全クラスについて各クラスが外部に見せている情報を含む必要はない。すなわち、他のクラスから参照されないクラスについてはその情報を含める必要はない。また、必ずしもファイルの形式とする必要はなく、ファイルに含まれる実質的に等価なデータがバイトコードに添付されれば足りる。
図9は、図8のデータ変換方法に対応した処理のフローチャートを示している。この処理は図7の第1の処理と類似しており、その相違点について主に説明する。相違点は、サーバにおけるプレネイティブコンパイル処理S2、および移動体通信端末におけるネイティブコンパイル処理S4の内容である。すなわち、サーバのプレネイティブコンパイル処理S2では、ブロック(ここではクラス)毎に他のブロックの参照に関する外部参照情報を収集し(S24)、この外部参照情報をまとめて外部参照情報ファイル46を生成する(S25)。
移動体通信端末でのネイティブコンパイル処理S4では、外部参照情報ファイル46を参照しながらネイティブコンパイル処理を行う以外、図7でのネイティブコンパイル処理S4と同じである。
図8,図9で説明した第2のデータ変換方法では、各クラスのバイトコードブロックのネイティブコンパイル時には、そのクラスで必要とされる外部参照情報は最初に受信した外部参照情報ファイル46により与えられるので、直ちにネイティブコンパイルの実行が可能である。
以上、本発明の好適な実施の形態について説明したが、請求の範囲を逸脱することなく、上記で言及した以外にも種々の変形、変更を行うことが可能である。
例えば、単位ブロックをクラスに対応させたが、他の単位ブロックとすることも可能である。
ネイティブコンパイルは最初のバイトコードブロックの受信完了後に開始するようにしたが、最初のバイトコードブロックの受信が完了する前に開始してもよい。
外部参照情報ファイルは送信時にデータ圧縮し、受信側で解凍して用いるようにしてもよい。
また、本発明は上記説明した無線通信網において最も顕著な効果を奏するが、有線通信網を含む通信網上での中間コードのダウンロードに広く適用することができる。
さらに、本発明はサーバからクライアント端末への中間コードのダウンロードに限定されるものではなく、端末間での中間コード転送に適用することもできる。
本発明によれば、サーバにおいてプレネイティブコンパイル処理により外部参照情報を生成してこれを中間コードとともに送信することにより、移動体通信端末装置側では中間コードの受信が完了する前に外部参照情報を用いてネイティブコンパイルを開始し、ネイティブコンパイルに要する時間を、中間コードのダウンロード時間の全部または一部に吸収させることができる。すなわち、アプリケーションのダウンロードと並行して、CPUの空き時間を利用してネイティブコードへの変換を行うことにより、アプリケーション起動時にコンパイルを開始する場合に比べて実行待ち時間を短縮することができる。
産業上の利用可能性
本発明は、比較的通信速度の遅い通信システムへ適用して好適である。
Claims (14)
- 移動体通信端末装置において、OSに依存しない中間コードをネイティブコードへ変換するネイティブコンパイル方法であって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報からなる外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
を備えたことを特徴とするネイティブコンパイル方法。 - 移動体通信端末装置において、OSに依存しない中間コードを外部から受信しながらネイティブコードへ変換するネイティブコンパイル方法であって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報をまとめた一組の外部参照情報に続いて複数の単位ブロックの中間コードを、無線通信網を介して受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
を備えたことを特徴とするネイティブコンパイル方法。 - サーバにおいてOSに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理方法であって、
ソースプログラムを単位ブロック毎の中間コードに変換するステップと、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集するステップと、
収集された外部参照情報を当該各単位ブロックに付加するステップと、
前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信するステップと、
を備えたことを特徴とするネイティブコンパイル前処理方法。 - ある単位ブロックに付加すべき外部参照情報が先に送信される単位ブロックに付加される外部参照情報と同じであるとき、後に送信される単位ブロックに対する当該同じ外部参照情報の付加を省略することを特徴とする請求項3に記載のネイティブコンパイル前処理方法。
- サーバにおいてOSに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理方法であって、
ソースプログラムを単位ブロック毎の中間コードに変換するステップと、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集するステップと、
収集された一組の外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信するステップと、
を備えたことを特徴とするネイティブコンパイル前処理方法。 - OSに依存しない中間コードをネイティブコードへ変換するコンピュータプログラムであって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報からなる外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。 - 移動体通信端末装置において、OSに依存しない中間コードを外部から受信しながらネイティブコードへ変換するコンピュータプログラムであって、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報をまとめた一組の外部参照情報に続いて複数の単位ブロックの中間コードを、無線通信網を介して受信するステップと、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始するステップと、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行うステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。 - OSに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理を行うサーバであって、
ソースプログラムを単位ブロック毎の中間コードに変換する手段と、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、
収集された外部参照情報を当該各単位ブロックに付加する手段と、
前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段と、
を備えたことを特徴とするサーバ。 - ある単位ブロックに付加すべき外部参照情報が先に送信される単位ブロックに付加される外部参照情報と同じであるとき、後に送信される単位ブロックに対する当該同じ外部参照情報の付加を省略することを特徴とする請求項8に記載のサーバ。
- OSに依存しない中間コードをネットワーク経由で移動体通信端末装置へ送信する際のネイティブコンパイル前処理を行うサーバであって、
ソースプログラムを単位ブロック毎の中間コードに変換する手段と、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、
収集された外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段と、
を備えたことを特徴とするサーバ。 - サーバとこのサーバからOSに依存しない中間コードを通信ネットワーク経由で受信する移動体通信端末装置とを備えた通信システムであって、
前記サーバは、
ソースプログラムを単位ブロック毎の中間コードに変換する手段と、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、
収集された外部参照情報を当該各単位ブロックに付加する手段と、
前記外部参照情報が付加された各単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段とを備え、
前記移動体通信端末装置は、
前記外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次受信する手段と、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始する手段と、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行う手段と、
このネイティブコンパイル処理により得られたネイティブコードを実行する手段と、
を備えたことを特徴とする通信システム。 - サーバとこのサーバからOSに依存しない中間コードを通信ネットワーク経由で受信する移動体通信端末装置とを備えた通信システムであって、
前記サーバは、
ソースプログラムを単位ブロック毎の中間コードに変換する手段と、
各単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報を外部参照情報として収集する手段と、
収集された一組の外部参照情報に続けて複数の単位ブロックを前記移動体通信端末装置へ、無線通信網を介して順次送信する手段と、
前記移動体通信端末装置は、
前記一組の外部参照情報に続いて前記複数の単位ブロックの中間コードを無線通信網を介して受信する手段と、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始する手段と、
ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行う手段と、
このネイティブコンパイル処理により得られたネイティブコードを実行する手段と、
を備えたことを特徴とする通信システム。 - サーバからOSに依存しない中間コードを通信ネットワーク経由で受信する移動体通信端末装置であって、
前記サーバにおいてソースプログラムを変換して得られた単位ブロック毎の中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報としての外部参照情報が付加された単位ブロックの中間コードを、無線通信網を介してブロック単位に順次前記サーバから受信する手段と、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始し、ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行う手段と、
このネイティブコンパイル処理により得られたネイティブコードを実行する手段と、
を備えたことを特徴とする移動体通信端末装置。 - サーバからOSに依存しない中間コードを通信ネットワーク経由で受信する移動体通信端末装置であって、
前記サーバにおいてソースプログラムを変換して得られた単位ブロック毎の中間コードをネイティブコードへ変換する際に当該単位ブロックが参照する他の単位ブロックの属性情報としての一組の外部参照情報とこれに続いて前記複数の単位ブロックの中間コードを無線通信網を介して前記サーバから受信する手段と、
全ての中間コードの受信完了前に、受信済みの単位ブロックの中間コードをネイティブコードへ変換するネイティブコンパイル処理を開始し、ある単位ブロックの中間コードをネイティブコードへ変換する際に当該単位ブロックに関連した受信済みの外部参照情報を参照して当該単位ブロックのネイティブコンパイル処理を行う手段と、
このネイティブコンパイル処理により得られたネイティブコードを実行する手段と、
を備えたことを特徴とする移動体通信端末装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003039406 | 2003-02-18 | ||
JP2003039406 | 2003-02-18 | ||
PCT/JP2004/001696 WO2004075048A1 (ja) | 2003-02-18 | 2004-02-17 | ネイティブコンパイル方法、ネイティブコンパイル前処理方法、コンピュータプログラム、およびサーバ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP3757235B2 true JP3757235B2 (ja) | 2006-03-22 |
JPWO2004075048A1 JPWO2004075048A1 (ja) | 2006-06-01 |
Family
ID=32905170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005502703A Expired - Fee Related JP3757235B2 (ja) | 2003-02-18 | 2004-02-17 | ネイティブコンパイル方法、ネイティブコンパイル前処理方法、コンピュータプログラム、サーバ、通信システム、および移動体通信端末装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20060174235A1 (ja) |
EP (1) | EP1598739A4 (ja) |
JP (1) | JP3757235B2 (ja) |
CN (1) | CN100346297C (ja) |
WO (1) | WO2004075048A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8615743B2 (en) | 2006-02-27 | 2013-12-24 | Microsoft Corporation | Adaptive compiled code |
US7561081B2 (en) * | 2006-07-12 | 2009-07-14 | Qualcomm Incorporated | Method and apparatus for optimization of SigComp UDVM performance |
US8214810B2 (en) * | 2006-08-29 | 2012-07-03 | International Business Machines Corporation | Method of compiling source code, compiler, computer system, and computer program product |
CN100454256C (zh) * | 2006-12-25 | 2009-01-21 | 北京飞天诚信科技有限公司 | 一种提高自定义程序运行速度的方法和装置 |
KR101407628B1 (ko) * | 2007-06-04 | 2014-06-13 | 더 보드 오브 리젠츠 오브 더 유니버시티 오브 텍사스 시스템 | 작업 수행 속도를 향상시키는 장치 및 방법 |
US10387140B2 (en) | 2009-07-23 | 2019-08-20 | S3G Technology Llc | Modification of terminal and service provider machines using an update server machine |
WO2011095171A1 (en) * | 2010-02-03 | 2011-08-11 | Rtx Telecom A/S | Programming of a dect/cat-iq communication device |
US8589480B2 (en) * | 2011-05-24 | 2013-11-19 | Sony Computer Entertainment America Llc | Automatic performance and capacity measurement for networked servers |
CN104536797B (zh) * | 2015-01-14 | 2017-10-27 | 大唐微电子技术有限公司 | 一种Java程序预编译方法和预编译器 |
KR102492871B1 (ko) * | 2015-12-15 | 2023-01-30 | 삼성전자주식회사 | 사용자 단말장치, 서버, 및 그 어플리케이션 실행 방법 |
CN106681784A (zh) * | 2016-12-23 | 2017-05-17 | 维沃移动通信有限公司 | 一种系统软件管理方法及移动终端 |
US10929160B1 (en) * | 2018-12-12 | 2021-02-23 | The Mathworks, Inc. | Composite-trace just-in-time compilation |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5469574A (en) * | 1993-06-18 | 1995-11-21 | International Business Machines Corporation | Method and system for interfacing interpreted applications with compiled procedures using signature files |
US5586328A (en) * | 1994-10-21 | 1996-12-17 | Microsoft Corporation | Module dependency based incremental compiler and method |
US6223214B1 (en) * | 1996-09-06 | 2001-04-24 | Sensiview Corporation | Computer implemented virtual sensor object and tangible medium utilizing same |
US6059839A (en) * | 1997-01-09 | 2000-05-09 | Silicon Graphics, Inc. | Apparatus and method for compiler identification of address data |
WO1998033148A1 (fr) * | 1997-01-24 | 1998-07-30 | Sony Corporation | Generateur de donnees de formes, procede pour generer des donnees de formes et moyens associes |
US6085198A (en) * | 1998-06-05 | 2000-07-04 | Sun Microsystems, Inc. | Integrated three-tier application framework with automated class and table generation |
US6237135B1 (en) * | 1998-06-18 | 2001-05-22 | Borland Software Corporation | Development system with visual design tools for creating and maintaining Java Beans components |
US6760907B2 (en) * | 1998-06-30 | 2004-07-06 | Sun Microsystems, Inc. | Code generation for a bytecode compiler |
US7197570B2 (en) * | 1998-07-22 | 2007-03-27 | Appstream Inc. | System and method to send predicted application streamlets to a client device |
US6311221B1 (en) * | 1998-07-22 | 2001-10-30 | Appstream Inc. | Streaming modules |
US6742175B1 (en) * | 1998-10-13 | 2004-05-25 | Codagen Technologies Corp. | Component-based source code generator |
US6212640B1 (en) * | 1999-03-25 | 2001-04-03 | Sun Microsystems, Inc. | Resources sharing on the internet via the HTTP |
EP1196856B1 (en) * | 1999-06-30 | 2011-01-19 | Apptitude, Inc. | Method and apparatus for monitoring traffic in a network |
US6549916B1 (en) * | 1999-08-05 | 2003-04-15 | Oracle Corporation | Event notification system tied to a file system |
US6640244B1 (en) * | 1999-08-31 | 2003-10-28 | Accenture Llp | Request batcher in a transaction services patterns environment |
US7289964B1 (en) * | 1999-08-31 | 2007-10-30 | Accenture Llp | System and method for transaction services patterns in a netcentric environment |
GB9921721D0 (en) * | 1999-09-14 | 1999-11-17 | Tao Group Ltd | Loading object-oriented computer programs |
JP2001134444A (ja) * | 1999-11-04 | 2001-05-18 | Victor Co Of Japan Ltd | コンピュータシステムにおけるデータ処理装置 |
US6697814B1 (en) * | 1999-12-04 | 2004-02-24 | Worldcom, Inc. | System for processing records in a communications network |
US20010042241A1 (en) * | 2000-01-21 | 2001-11-15 | Fujitsu Limited | Apparatus and method for executing program using just-in time-compiler system |
JP3889227B2 (ja) * | 2000-01-21 | 2007-03-07 | 富士通株式会社 | プログラム実行装置、プログラム実行方法、記録媒体、及び制御プログラム |
JP2001344105A (ja) * | 2000-03-31 | 2001-12-14 | Hitachi Software Eng Co Ltd | Webアプリケーション開発方法、開発支援システム、および該方法に係るプログラムを記憶した記憶媒体 |
US20010049726A1 (en) * | 2000-06-02 | 2001-12-06 | Guillaume Comeau | Data path engine |
US7716163B2 (en) * | 2000-06-06 | 2010-05-11 | Microsoft Corporation | Method and system for defining semantic categories and actions |
EP1207454A1 (en) * | 2000-11-15 | 2002-05-22 | International Business Machines Corporation | Java run-time system with modified linking identifiers |
US7024187B2 (en) * | 2000-12-08 | 2006-04-04 | Samsung Electronics Co., Ltd. | System and method for performing diagnostics on a mobile station using over-the-air transfer of interpreted byte-code program |
JP3590582B2 (ja) * | 2000-12-14 | 2004-11-17 | 株式会社コネクトテクノロジーズ | アプリケーション配信システム、及びアプリケーション配信装置 |
US20020133811A1 (en) * | 2000-12-14 | 2002-09-19 | Duftler Matthew J. | Bean scripting components |
JP2002215411A (ja) * | 2001-01-19 | 2002-08-02 | Hitachi Ltd | Javaアプリケーション実行装置 |
US7350200B2 (en) * | 2001-03-29 | 2008-03-25 | Intel Corporation | Method and system of controlling dynamically compiled native code size |
EP1300991A1 (en) * | 2001-10-02 | 2003-04-09 | Lucent Technologies Inc. | A method for filtering redundant data packets |
US7213240B2 (en) * | 2001-10-05 | 2007-05-01 | Sun Microsystems, Inc. | Platform-independent selective ahead-of-time compilation |
US20030083900A1 (en) * | 2001-10-26 | 2003-05-01 | Ismail Khriss | Template-based method and system for reverse engineering |
US7131121B2 (en) * | 2001-11-14 | 2006-10-31 | Axalto, Inc. | Method and apparatus for linking converted applet files without relocation annotations |
EP1313012A1 (en) * | 2001-11-15 | 2003-05-21 | Texas Instruments France | Java DSP acceleration by byte-code optimization |
US7340730B2 (en) * | 2002-03-18 | 2008-03-04 | Sun Microsystems, Inc. | On demand, network accessible, run time compile server |
US6804686B1 (en) * | 2002-04-29 | 2004-10-12 | Borland Software Corporation | System and methodology for providing fixed UML layout for an object oriented class browser |
US6804682B1 (en) * | 2002-04-29 | 2004-10-12 | Borland Software Corporation | System and methodology providing compiler-assisted refactoring |
CN1672133A (zh) * | 2002-08-02 | 2005-09-21 | 艾利森电话股份有限公司 | 优化的代码生成 |
US7150012B2 (en) * | 2002-10-15 | 2006-12-12 | Nokia Corporation | Method and apparatus for accelerating program execution in platform-independent virtual machines |
US7441233B1 (en) * | 2002-12-20 | 2008-10-21 | Borland Software Corporation | System and method providing status indication for long-running modal tasks |
EP1435743A1 (en) * | 2002-12-30 | 2004-07-07 | Nokia Corporation | Download of application scripts to a mobile terminal by SMS |
US7293260B1 (en) * | 2003-09-26 | 2007-11-06 | Sun Microsystems, Inc. | Configuring methods that are likely to be executed for instrument-based profiling at application run-time |
US7587712B2 (en) * | 2003-12-19 | 2009-09-08 | Marvell International Ltd. | End-to-end architecture for mobile client JIT processing on network infrastructure trusted servers |
-
2004
- 2004-02-17 JP JP2005502703A patent/JP3757235B2/ja not_active Expired - Fee Related
- 2004-02-17 US US10/545,623 patent/US20060174235A1/en not_active Abandoned
- 2004-02-17 EP EP04711688A patent/EP1598739A4/en not_active Withdrawn
- 2004-02-17 CN CNB2004800045539A patent/CN100346297C/zh not_active Expired - Fee Related
- 2004-02-17 WO PCT/JP2004/001696 patent/WO2004075048A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN100346297C (zh) | 2007-10-31 |
EP1598739A1 (en) | 2005-11-23 |
JPWO2004075048A1 (ja) | 2006-06-01 |
CN1751291A (zh) | 2006-03-22 |
US20060174235A1 (en) | 2006-08-03 |
EP1598739A4 (en) | 2008-05-14 |
WO2004075048A1 (ja) | 2004-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11409949B2 (en) | Mobile device resource provisioning system and method | |
JP5650240B2 (ja) | オフデバイス・サービスを用いた実行コードのランタイム・プロビジョニングのための技術 | |
US8701104B2 (en) | System and method for user agent code patch management | |
JP3757235B2 (ja) | ネイティブコンパイル方法、ネイティブコンパイル前処理方法、コンピュータプログラム、サーバ、通信システム、および移動体通信端末装置 | |
KR20160060023A (ko) | 코드 가상화 및 원격 프로세스 호출 생성을 위한 방법 및 장치 | |
JP3824580B2 (ja) | 移動通信携帯端末及びダウンロードプログラムファイル管理用プログラム | |
CN107577609A (zh) | 一种基于主机端动态链接的嵌入式系统动态模块调试方法 | |
CN114327477A (zh) | 智能合约执行方法、装置、电子装置和存储介质 | |
CN113946602A (zh) | 数据查找方法、装置、设备和介质 | |
WO2024032209A1 (zh) | 区块链交易验证方法、装置、存储介质及电子设备 | |
KR100974662B1 (ko) | 이동 통신 단말기 및 이의 펌웨어 업데이트 방법 | |
JP2003216434A (ja) | 小型情報機器において、ユーザプロファイルデータの活用により、ダウンロードプログラムの最適化を図る方法およびシステム。 | |
CN115348246A (zh) | 多用户在线代理抓包调试的方法、设备、系统及介质 | |
CN106776302A (zh) | 计算java项目中方法执行时间的方法、装置 | |
CN116032809B (zh) | 使用Wasm的网络协议分析方法及系统 | |
CN114625377A (zh) | 框架项目转换方法、框架项目转换装置、设备及存储介质 | |
CN116208558A (zh) | 微服务架构中的流量处理方法、装置、介质和计算设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051219 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051226 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090106 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100106 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110106 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120106 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120106 Year of fee payment: 6 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120106 Year of fee payment: 6 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120106 Year of fee payment: 6 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130106 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130106 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |