JPH10228380A - 低減されたラン−タイム・メモリ空間要求を有するネットワーク移動コードを実行する方法及びコンピュータ・システム - Google Patents

低減されたラン−タイム・メモリ空間要求を有するネットワーク移動コードを実行する方法及びコンピュータ・システム

Info

Publication number
JPH10228380A
JPH10228380A JP9184277A JP18427797A JPH10228380A JP H10228380 A JPH10228380 A JP H10228380A JP 9184277 A JP9184277 A JP 9184277A JP 18427797 A JP18427797 A JP 18427797A JP H10228380 A JPH10228380 A JP H10228380A
Authority
JP
Japan
Prior art keywords
computer system
memory
space
code
compressed
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.)
Granted
Application number
JP9184277A
Other languages
English (en)
Other versions
JP3210606B2 (ja
Inventor
Timothy G Lindholm
ジー リンドホーム ティモシー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH10228380A publication Critical patent/JPH10228380A/ja
Application granted granted Critical
Publication of JP3210606B2 publication Critical patent/JP3210606B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 低減されたランタイムメモリのスペース必要
量を低くし、ネットワーク移動コードを実行する。 【解決手段】 クライアントコンピュータ102は低減
されたランタイムメモリのスペース必要量を低くし、プ
ログラムを実行できる。ネットワーク通信インターフェ
ース132はプログラムのメソッドを受け取り、ネット
ワーク通信マネージャ140は、メソッドが受け取られ
たとき、メソッドをランタイムメモリの利用可能な空間
に圧縮しないでロードする。実行コントローラ153
は、プログラムの実行中、メソッドが種々の時間で呼び
出されたり呼び出されないようにプログラムの実行を制
御する。コンプレッサ146は、空間がランタイムメモ
リで利用可能なように、呼び出されていない圧縮されて
いないメソッドのうちの圧縮可能なものをメモリに圧縮
する。コンプレッサは、メソッドが呼び出されうるよう
に、メソッドのうちの解凍可能なものをランタイムメモ
リの利用可能な空間に解凍する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ランタイムメモリのス
ペース必要量を低くして、該プログラムを実行するコン
ピュータシステム及び方法に関する。特に、本発明は、
アーキテクチャ特定コードのラン−タイムメモリのスペ
ース必要量が低減されるようにネットワーク上に伝送さ
れたコードから生成されたコードを実行するネットワー
クにおけるコンピュータ・システム及び方法に関する。
【0002】
【従来の技術】今、コンピュータシステムは、コード
が、以後ANコードと称する、アーキテクチャニュート
ラル(AN)2進フォーマットとなったプログラムの特
性を利用すべく構築または構成されている。かくして、
これらのプログラムのANコードは、コンピュータシス
テムの特定アーキテクチャまたはプラットフォームから
独立である。本明細書の目的に関しては、アーキテクチ
ャという用語は、一系列のコンピュータモデルのオペレ
ーティング特性を意味するものとして定義される。特定
のアーキテクチャの例としては、マッキントッシュコン
ピュータ、DOSまたはWindowsオペレーティン
グシステムを用いているIBM PCコンパチブルコン
ピュータ、Solarisオペレーティングシステムを
走らせているサン・マイクロシステムズ・コンピュー
タ、及びUnixオペレーティングシステムを用いてい
るコンピュータシステムがある。
【0003】アーキテクチャスペシフィック(AS)と
いう用語は、本明細書の目的に関しては、特定のコンピ
ュータアーキテクチャを有するコンピュータシステムで
だけの実行のために、あるプログラムのコードが、以後
ASコードと称する、2進フォーマットの形態であると
いう要求を指すものとして、定義される。かくして、通
常のプログラミング言語(例えば、C言語)で記述され
且つ特定のアーキテクチャ(例えば、IBMコンパチブ
ルPC)に対してコンパイルされたコードを有するプロ
グラムは、そのアーキテクチャまたはそのアーキテクチ
ャのエミュレータでだけ実行することができる。本明細
書の目的において、アーキテクチャニュートラル(A
N)という用語は、コンパイルされたコードを異なるア
ーキテクチャを有する種々のコンピュータシステムで実
行することができるプログラムを指すものとして、定義
される。例えば、特定のアーキテクチャを有するコンピ
ュータシステムは、Java(サン・マイクロシステム
ズの登録商標)バーチャルマシンモジュールで構成する
ことができる。Javaバーチャルマシンモジュール
は、Javaバーチャルマシンの命令セットに対して、
以後、Javaバイトコードと称する、Javaプログ
ラミング言語で記述され且つバイトコードにコンパイル
されたコードを有するプログラムの実行を可能にする。
Javaバイトコードは、コンピュータシステムの特定
のアーキテクチャから独立である。
【0004】ANコードを有するプログラムの重要な特
徴には、それらの移植性がある。例えば、ANコードの
プログラムは、コンピュータシステムの特定アーキテク
チャに関係なくANコードを実行するために構成された
いかなるコンピュータシステムでも実行することができ
るので、これらのプログラムは、一つのコンピュータシ
ステムから別のコンピュータシステムにネットワーク上
を容易に移送することができる。例えば、Javaバイ
トコードにコンパイルされたプログラムは、Javaバ
ーチャルマシンモジュールを有するいかなるコンピュー
タシステムでも実行することができ、かつHotJav
a(サン・マイクロシステムズの登録商標)ネットワー
ク通信マネージャを用いて一つのコンピュータシステム
から別のコンピュータシステムにネットワーク上を容易
に移送することができる。
【0005】更に、Javaバイトコードにコンパイル
されたプログラムの移植性に関する別の重要な特徴は、
かかるプログラムの検証可能性である。特に、Java
バーチャルマシンモジュールは、これらのプログラムが
所定の完全性基準を満足するということを容易に検証す
ることができる。かかる完全性基準は、Javaバイト
コードがJavaバーチャルマシンモジュールのスタッ
クをオーバフローまたはアンダフローすることができな
いということ、及び、Javaバイトコードの全ての命
令は、そのデータタイプがそれらの命令に対するデータ
タイプ制限と合うデータだけを利用するということを保
証するスタック及びデータタイプ使用制限を含む。結果
として、Javaバイトコードのプログラムは、オブジ
ェクトポインタをフォージ(forge) することができず、
且つ、一般的には、ユーザが使用することの許可を明示
的に認可したもの以外のシステムリソースをアクセスす
ることができない。
【0006】これらの理由のため、コンピュータシステ
ムは、ネットワーク上で受け取られるANコードのプロ
グラムの実行のために構成されている。実際に、ある場
合では、プログラムがコンピュータシステムのラン−タ
イム(即ち、実行時間)メモリ(例えば、ランダムアク
セスメモリ(RAM))に直接ロードされるので、かか
るコンピュータシステムは、二次メモリ(例えば、ハー
ドディスク)さえも必要としない。結果として、かかる
コンピュータシステムのユーザは、現在ソフトウェアプ
ロダクトの典型であるソフトウェア購入、設置、構成及
びアップグレードのサイクルから解放される。上記にお
いて説明したANコードの特徴は、ネットワーク化され
且つ要求に応じてANコードでロードされる小さいまた
は安いコンピュータシステムでの使用を特に魅力的にす
る。例えば、これらの種類のコンピュータシステムは、
ビデオゲーム、パーソナルディジタルアシスタント(P
DAs)、セルラフォン、若しくは、他の同様なコンピ
ュータシステム又はコンピュータ作動の装置であってよ
い。
【0007】しかしながら、あいにく、ANコードのプ
ログラムは、ASコードの同じプログラムよりも作動が
遅い。例えば、Javaバーチャルマシンモジュールに
よって実行されるJavaバイトコードのプログラム
は、典型的には、ASコードの同等プログラムの2.5
から20倍ほど低速である。従って、コンピュータシス
テムのユーザは、コンピュータシステムの特定アーキテ
クチャでASコードを実行できるようにプログラムのA
Sコードをネットワーク上で受け取るのが望ましいこと
を見出すようになる。しかし、これらのプログラムがコ
ンピュータシステムに安全に送られることを保証するた
めには、ネットワークは閉鎖的であるか、信用保証され
ていなければならず、若しくは、これらのプログラムは
検証することができる内蔵ディジタル署名を有しなけれ
ばならない。
【0008】更に、ANから生成されたASコードは最
初のANコードよりもかなり大きい。例えば、Java
バイトコードから生成されたASコードは、典型的に
は、Javaバイトコードの大きさの2乃至5倍であ
る。従って、一定容量のランタイムメモリは、ANコー
ドよりも大幅に少ないコンパイルされたASコードを保
持することができるにすぎない。しかしながら、前述し
たように、ASコードは、ASコードを生成するANコ
ードよりかなり速く、十分な性能を達成する唯一の方法
でありうる。上述したコンピュータシステムでは、価格
が非常に重要である。実際には、かかるコンピュータシ
ステムを構築するにあたって最も重要なコストの一つ
は、ロードされたプログラムの実行のために要求される
ランタイムメモリの量である。従って、そのような低減
が強力な競合し得る利点を生み出すので、これらのコン
ピュータシステムによって要求されるランタイムメモリ
の量を低減することは、非常に重要である。
【0009】更に、上述の形式のコンピュータシステム
では、二次メモリにページすることが可能でないかもし
れない。この場合では、ネットワーク上で受け取られた
ANコード又はASコードは、ランタイムメモリにキャ
ッチされ、ランタイムメモリにおけるスペースが必要と
される場合にフラッシュされることになる。しかしなが
ら、フラッシュされたプログラムの実行が継続されるべ
き場合、オリジナルコードは、ネットワーク上に再びダ
ウンロードされなければならない。このことは、プログ
ラムの実行スピードにかなり影響を及ぼす。更に、二次
メモリにページすることが可能なコンピュータシステム
においてさえも、二次メモリからコードを検索するため
に必要な時間は、費用がかかりすぎるであろう。本発明
では、ネットワーク上で受け取られたプログラムのコー
ドの圧縮そして解凍が、ランタイムメモリにおけるコー
ドの記憶費用を低減するのに用いられる。これは、コー
ドをフラッシュしかつそれを検索することよりもかなり
速いので、コードの実行スピードは、圧縮及び解凍によ
って著しく影響されない。
【0010】
【課題を解決するための手段】まとめると、本発明は、
メソッドを有するプログラムがコンピュータネットワー
クに与えられるようになったクライアントコンピュータ
システムと、それに関連するコンピュータネットワーク
における関連方法である。クライアントコンピュータ
は、低いランタイムメモリのスペース必要量でプログラ
ムを実行することができる。クライアントコンピュータ
システムは、ランタイムメモリ、通信インターフェイ
ス、ネットワーク通信マネージャ、実行コントローラ、
及びコンプレッサを備えている。ネットワーク通信イン
ターフェイスはプログラムのメソッドを受信し、ネット
ワーク通信マネージャは受け取った場合に圧縮されてい
ないメソッドをランタイムメモリの利用可能なスペース
にロードする。実行コントローラは、メソッドが呼び出
され及び呼び出されないようにプログラムの実行を制御
する。
【0011】コンプレッサは、呼び出されない圧縮され
たプログラムの圧縮可能なものをメモリにおいて圧縮す
る。その結果、ランタイムメモリのスペースが利用可能
になる。コンプレッサはまた、メソッドの解凍可能なも
のが呼び出されうるように、圧縮されたメソッドの解凍
可能なものをランタイムメモリの利用可能なスペースに
解凍する。一実施形態では、コンプレッサは、メソッド
の解凍可能なものが呼び出されるとすぐに圧縮されたメ
ソッドの解凍可能なものを解凍する。別の実施形態で
は、コンプレッサは、所定の時間間隔の後で圧縮された
メソッドの解凍可能なものを解凍する。更に別の実施形
態では、コンプレッサは、メソッドの圧縮可能なものが
もはや呼び出されない状態になるとすぐに、圧縮されて
いないメソッドの圧縮可能なものを圧縮する。
【0012】更に別の実施形態では、コンプレッサは、
ランタイムメモリにおけるスペースが必要であるが利用
可能でない場合に、圧縮されていないメソッドの圧縮可
能なものを圧縮する。更に、この実施形態では、クライ
アントコンピュータシステムは、最も古く呼出されたメ
ソッドから最も新しく呼出されたメソッドの順番に現在
呼び出されていないメソッドのそれらをリストする最も
古く呼出されたリストを更に備えうる。結果として、圧
縮されていないメソッドの圧縮可能なものは、ランタイ
ムメモリにおけるスペースが必要であるが利用可能でな
い場合に、最も古く呼出されたリストにおける最も古く
呼出されたメソッドである。更に別の実施形態では、コ
ンプレッサは、ランタイムメモリにおけるスペースが必
要であるが利用可能でない場合に、圧縮されたメソッド
のフラッシュ可能なものをランタイムメモリからフラッ
シュする。
【0013】先の実施形態に対する変形実施形態とし
て、クライアントコンピュータシステムは、二次メモリ
を更に備えうる。この場合では、コンプレッサは、ラン
タイムメモリにおけるスペースが必要であるが利用可能
でない場合に、圧縮されたメソッドの記憶可能なものを
二次メモリに格納する。次いで、コンプレッサは、解凍
されるべきである圧縮されたメソッドの検索可能なもの
を二次メモリから検索する。本発明の更なる目的及び特
徴は、図面を参照することにより、以下の詳細な説明及
び特許請求の範囲からさらに容易に明らかになるであろ
う。
【0014】
【発明の実施の形態】図1を参照すると、本発明による
コンピュータネットワーク100 が示されている。該コン
ピュータネットワーク100 は1又はそれ以上のクライア
ントコンピュータシステム102 と、1又はそれ以上のサ
ーバコンピュータシステム104 と、ネットワーク通信接
続手段106 と、を含む。クライアントコンピュータシス
テム102 は、ネットワーク通信接続106 を介してサーバ
コンピュータシステム104 に接続されている。ネットワ
ーク通信接続は、ローカルエリアネットワーク又はワイ
ドエリアネットワーク、インターネット、若しくは、他
のタイプのネットワーク通信接続であってよい。各サー
バコンピュータシステム104 は、中央演算処理装置(C
PU)110 と、ネットワーク通信インターフェース116
と、メモリ118 とを含む。ネットワーク通信インターフ
ェースにより、各サーバコンピュータシステムは、ネッ
トワーク通信接続106 を介してクライアントコンピュー
タシステム102 と接続することできる。
【0015】各サーバコンピュータシステム104 のメモ
リ118 は、オペレーティングシステム120 と、ネットワ
ーク通信マネージャ(即ちサーバ) 122 と、プログラム
145とを格納する。オペレーティングシステムと通信マ
ネージャは全てCPU120 の上で実行される。オペレー
ティングシステムは、ユーザインターフェース112 でユ
ーザによって発行されたコマンド、又は、クライアント
コンピュータシステム102 のユーザからネットワーク通
信接続106 を介してネットワーク通信インターフェース
116 によって受けとられたコマンドに応じてネットワー
ク通信マネージャの走行を制御及び調整する。プログラ
ム145 はメソッド147 及び/又は148 を備える。本明細
書の目的のために、プログラムの実行中、種々の時間で
呼び出され且つ呼び出されないプログラムのいかなる区
分フラグメント即ち部分はメソッドと考えられる。
【0016】各サーバコンピュータシステム104 のメソ
ッド147 は、クライアントコンピュータシステム102 の
特定のアーキテクチャ(即ちプラットフォーム)に依存
しないアーキテクチャニュートラル(AN)コードを含
む。これらのプログラムは特定のプログラミング言語か
らANコードにコンパイルされる。好ましい実施形態で
は、これらのプログラムはJavaプログラミング言語
で記述され、Javaバイトコードにコンパイルされ
る。更に、これらのプログラムは、オブジェクト指向手
段でプログラムされたソフトウェアプログラムを形成す
るメソッドでオブジェクトクラスに含まれる。他方で
は、各サーバコンピュータシステムのメソッド148 は、
クライアントコンピュータシステム102 の特定のアーキ
テクチャのためにコンパイルされたアーキテクチャスペ
シフィック(AS)コードを含む。先に言及したよう
に、これらの種類のメソッドは、ANコードの同じメソ
ッドより速く実行できるので望ましい。後でより詳細に
説明するように、ネットワーク100 は、これらのプログ
ラムが高信頼度でクライアントコンピュータ102 に安全
に出荷される閉じた、信頼性の高いネットワークである
ことが望ましく、また、これらのプログラムは確認する
ことができる内蔵ディジタル署名を有するのが望まし
い。
【0017】後でまた、より詳細に説明するように、メ
ソッド147 及び/又は148 は、ユーザがリクエストした
ときに、ネットワーク通信マネージャ122 を使用するク
ライアントコンピュータシステム102 に伝送される。か
くして、これらのメソッドのコードはネットワーク移動
コードと考えられる。各クライアントコンピュータシス
テム102 は、ビデオゲーム、パーソナルディジタルアシ
スタント(PDA)、セルラフォン、デスクトップコン
ピュータ、若しくは、他のコンピュータシステム、又
は、少量のラン−タイムメモリを要求するコンピュータ
作動デバイスであってよい。更に、各クライアントコン
ピュータシステムは中央演算処理装置(CPU)126 、
ユーザインターフェース128 、ネットワーク通信インタ
ーフェース132 、読み出し専用メモリ(ROM)134 、
ラン−タイムランダムアクセスメモリ(RAM)136 と
を含む。ネットワーク通信インターフェースにより、ク
ライアントコンピュータシステムはネットワーク通信接
続106 を介してサーバコンピュータシステム104 と通信
することができる。
【0018】各クライアントコンピュータシステム102
のRAM136 は、オペレーティングシステム138 、ネッ
トワーク通信マネージャ140 、バーチャルマシンモジュ
ール142 、及び、ROM134 から全てロードされたコー
ド圧縮プログラム146 を格納する。RAMはまた、AN
コードを含むメソッド147 、及び/又は、サーバコンピ
ュータシステム104 からダウンロードされたASコード
を含むメソッド148 を有するプログラム145 を格納す
る。オペレーティングシステム、ネットワーク通信マネ
ージャ、バーチャルマシンモジュール、コンパイラ、圧
縮プログラム、及び、プログラムは全てCPU126 で実
行される。オペレーティングシステムは、ユーザインタ
ーフェース128 でユーザによって発行されたコマンドに
応じて、ネットワーク通信マネージャ、バーチャルマシ
ンモジュール、コードコンパイラ、コード圧縮プログラ
ム、及び、プログラムの実行を制御及び調整する。
【0019】後で言及するように、メソッド147 及び/
又は148 はユーザがリクエストしたときに、サーバコン
ピュータシステム104 から受信される。好ましい実施形
態ではHotJavaネットワーク通信マネージャであ
るネットワーク通信マネージャ122 を使用するこれらの
メソッドが行われている。次いで、ネットワーク通信マ
ネージャはRAM136 にこれらのメソッドをロードす
る。バーチャルマシンモジュール142 のコードベリファ
イヤ151 は、ロードされたメソッド147 のANコードが
所定の完全性基準にあうことを検証する。先に述べたよ
うに、このことは、ロードされたメソッドがバーチャル
マシンモジュールのスタックをオーバーフロー又はアン
ダーフローすることができないように、及び、すべての
命令がそれらの命令のためのデータタイプ制限に一致す
るデータタイプのデータのみを利用するように、スタッ
ク及びデータタイプ使用制限を含む。好ましい実施形態
では、バーチャルマシンモジュールはJavaバーチャ
ルマシンモジュールである。
【0020】しかしながら、ASコードを有する受信さ
れたメソッド148 の場合では、コードベリファイヤ151
はASコードの完全性を直接検証するように使用するこ
とができない。かくして、ASコードの完全性を間接的
に検証するために、ネットワーク100 は、これらのメソ
ッドが高信頼度でクライアントコンピュータ102 に安全
に送出することができる、閉じた、信用ネットワークで
あるのがよい。変形実施形態として、ネットワーク100
が安全でなければ、これらのプログラムは、ネットワー
ク通信マネージャ140 が信頼できるソースからのもので
あることを検証することができる内蔵ディジタル署名を
有するのがよい。バーチャルマシンモジュール142 の実
行コントローラ153 はプログラム145 の実行を制御す
る。特に、実行コントローラは、クライアントコンピュ
ータシステム102 の特定アーキテクチャで実行するため
のメソッド147 のANコードを翻訳し、実行コントロー
ラによりこれらのメソッドは特定アーキテクチャで実行
するためのASコードを含むメソッド148 を呼び出すこ
とができる。プログラムの実行中に生成された実行149
データはRAM136 に格納される。加えて、ネットワー
ク通信マネージャ140 、コードコンパイラ144 、及び/
又は、コード圧縮プログラム146 がANコードにあるな
らば、次いで、実行コントローラは同様にそれらの実行
を制御する。
【0021】更に、クライアントコンピュータシステム
102 のRAMスペース要求を低く保つために、コード圧
縮プログラム146 は、メソッド147 及び/又は148 のコ
ードを種々の時間でRAM136 に圧縮及び解凍する。該
メソッドが、RAM136 に格納され、且つ、ユーザイン
ターフェース128 でユーザによって入力された、あらか
じめ定められた圧縮及び解凍基準152 及び154 をそれぞ
れ満足させるので、このことは、圧縮でき且つ解凍でき
るメソッドのために行われる。圧縮及び解凍基準は、後
でより十分に説明され、本発明の好ましい実施形態で
は、一連のあらかじめ定められたメモリ管理ストラテジ
から使用者が(ユーザインターフェース128 を使用し
て)選択可能及び/又は調整可能である。メソッド147
及び/又は148 のストレージ及び呼び出しステータス
は、メソッドステータスデータストラクチャ155 で維持
される。メソッドステータスデータストラクチャは、ネ
ットワーク通信マネージャ140 、実行コントローラ153
、及び、コード圧縮プログラム146 によって更新され
る。
【0022】図2は、メソッド147 及び/又は148 をR
AM136 に圧縮又は解凍する際に、各クライアントコン
ピュータシステム102 の作動の機能ブロック図を示す。
加えて、図3及び図4は好ましい圧縮メソッド及び解凍
メソッド300 及び400 をそれぞれ示す。図1乃至図3を
参照すると、ユーザがサーバコンピュータシステム104
の1つのプログラム145 の1つの実行を要求するとき、
ユーザのクライアントコンピュータシステム102 は、要
求されたプログラムをサーバコンピュータシステムから
得る(図3のステップ302 )。ユーザがプログラムをサ
ーバコンピュータシステムからダウンロード及び実行す
るために、ユーザインターフェース128 でコマンドを発
行するとき、このことは行われる。それに応じて、オペ
レーティングシステム120 は、作られた要求を指示する
メッセージを生成するネットワーク通信マネージャ140
を呼ぶ。次いで、ネットワーク通信インターフェース13
2 はメッセージをサーバコンピュータシステムに伝送す
る。
【0023】サーバコンピュータシステム104 のネット
ワーク通信インターフェース116 は、伝送されたメッセ
ージを受け取る。それに応じて、サーバコンピュータシ
ステムのネットワーク通信マネージャ122 は要求された
プログラム145 のメソッド147 及/又は148 をネットワ
ーク通信インターフェースに提供し、次いで、メソッド
をユーザのクライアントコンピュータシステム102 に伝
送する。伝送されたメソッド147 及び/又は148 は、ユ
ーザのクライアントコンピュータシステム102 のネット
ワーク通信インターフェース132 によって受けとられ
る。それに応じて、ネットワーク通信マネージャ140
は、次いで、RAM136 に受信されたメソッドをロード
するのに十分なスペースがあるかどうかを判断する(図
3の意志決定ステップ304 )。もしRAMスペースが利
用できるならば、次いで、ネットワーク通信マネージャ
がRAMの利用できるスペースに圧縮されていないこれ
らのメソッドのコードをロードする(図3のステップ30
6 )。結果として、これらのメソッドは、以前にロード
された他のプログラム145 のプログラムメソッド147 及
び/又は148 と一緒にRAMにロードされる。これらの
メソッドをロードする際に、ネットワーク通信マネージ
ャは、メソッドと、これらのメソッドによって占有され
たRAM136 のメモリスペースに対応するポインタとを
確認するために、メソッドステータスデータストラクチ
ャ155 のメソッドストレージステータステーブル200 を
更新する。更に、ネットワーク通信マネージャは、メソ
ッドのコードが圧縮されていない(U)ことを示すため
に、プログラムステータステーブルを更新する。
【0024】次いで、ネットワーク通信マネージャ140
はバーチャルマシンモジュール142コードベリファイヤ1
51 を呼び出す。それに応じて、コードベリファイヤ
は、丁度ロードされたどんなメソッド147 のANコード
が以前に議論された事前定義保全基準にあうことを確認
する(図3のステップ307 )。次いで、メソッド147 及
び/又は148 が丁度ロードされたプログラム145 は、以
前にロードされたいかなるプログラムと一緒に、実行コ
ントローラの制御下で実行される(図3のステップ314
)。プログラムが実行されたとき、プログラムのメソ
ッドは、それらの実行中、種々の時間で、呼び出され、
且つ、呼び出されない。以前に述べたように、実行コン
トローラはユーザのクライアントコンピュータシステム
102 の特定のアーキテクチャで実行するためのメソッド
147 のANコードを翻訳し、且つ、実行コントローラに
よってこれらのメソッドは特定のアーキテクチャで実行
するためのASコードを含むメソッド148 を呼ぶことが
できる。
【0025】ロードされたメソッド147 及び/又は148
の各々は、それがデータのために待たなければならず、
それがスリープさせられる、等のため、種々の時間で呼
び出されないであろう。実行コントローラがこれが発生
したということを決定する場合、それは、現在呼び出さ
れていないということを示すためにメソッドをプログラ
ムステータスデータ構造155 の最も古く呼び出された
(LRI)リスト202 に加える。LRIリストのメソッ
ドは、最も新たらしく呼出されたものから最も古く呼出
されたものまでリストされる。先に示したように、RA
M136 のスペース要求を低減するために、所定の圧縮基
準152 が満足される各々ロードされたメソッド147 及び
/又は148 のコードは、コードコンプレッサ146 によっ
て圧縮される。好ましい実施形態では、圧縮基準は、圧
縮可能メソッド147 又は148 のコードが(1)RAM13
6 のスペースが必要であるが利用可能でなく、かつ
(2)メソッドが、そのコードがまだ圧縮されていない
LRIリスト202 のメソッドの最も古く呼び出されたメ
ソッドであるときに圧縮されるということを定める。
【0026】ネットワーク通信マネージャ140 が、RA
M136 のスペースがサーバコンピュータシステム104 に
よって受け取られた1又はそれ以上のメソッド147 及び
/又は148 をロードするのに利用可能ではないと判断す
る場合(図3の意思決定ステップ304 )、次いで、それ
はコードコンプレッサ146 を呼出す。それに応じて、コ
ードコンプレッサは、十分なスペースが利用可能になる
までそのコードがまだ圧縮されていないLRIリスト20
2 の最も古く呼出されたメソッドのコードを圧縮する
(図3のステップ316 )。コードコンプレッサはまた、
メソッドの圧縮されたコードのメモリスペースへの対応
ポインタを識別し且つメソッドのコードが圧縮されたと
いうことを示すためにメソッドストレージステータステ
ーブル200を更新する(C)。次いで、ネットワーク通
信マネージャは、先に説明したように、利用可能なスペ
ースにスペースが利用可能にされたメソッドをロードす
る(図3のステップ306 )。
【0027】コードコンプレッサ146 は、当業者によく
知られたあらゆる高速データ圧縮技術を使用しうる。更
に、コードコンプレッサは、メソッド147 のANコード
及びメソッド148 のASコードの最適圧縮に対して個別
の圧縮技術を使用しうる。更に、ロードされたメソッド
147 及び/又は148 が呼び出されると同時に、それらは
実行データを生成する。実行コントローラ153 が決定す
るこれらのメソッドのいずれかが呼び出されることに対
し(図3 の意思決定ステップ320 )、且つ、RAM136
のスペースが実行データを格納するのに利用可能である
ことに対して(図3のステップ324 )、実行コントロー
ラは実行データをRAMに格納する(図3のステップ32
4 )。しかしながら、実行コントローラ153 が呼び出さ
れたものと判断するメソッド147 及/又は148 であって
(図3の意思決定ステップ320 )、RAMのスペースが
利用可能ではないが実行データを格納する必要がある
(意思決定ステップ322)メソッドの各々について、実
行コントローラはコードコンプレッサ146 を呼び出す。
RAMのスペースが必要であるような先の状況における
ように、コードコンプレッサは、十分なスペースが利用
可能になるまで、そのコードがまだ圧縮されていないL
RIリスト202 にある最も古く呼び出されたメソッドの
コードを圧縮する(図3のステップ326 )。そして、先
に説明したように、コードコンプレッサはメソッドの圧
縮されたコードのメモリスペースへの対応ポインタを識
別し、且つ、メソッドのコードが圧縮されたということ
を示すために、メソッドストレージステータステーブル
200 を更新する(C)。次いで、実行コントローラは、
先に記述したように、実行データをRAMにおいて利用
可能になったスペースに格納し、その実行データが格納
されたメソッドを有するプログラムの実行が継続される
(図3のステップ314 )。
【0028】更に、図1、図2及び図4を参照すると、
RAM136 のスペースが利用可能である場合、圧縮さ
れ、且つ、所定の解凍基準154 が満足されるロードされ
た各メソッド147 及び/又は148 は、コードコンプレッ
サ146 によって解凍される。好ましい実施形態では、解
凍可能なメソッドのコードを解凍するための所定の解凍
基準は、メソッドのコードが圧縮され、且つ、メソッド
が再び呼び出されるときに解凍されるということを単に
特定する。かくして、実行コントローラ153 が、ロード
されたメソッド147 及び/又は148 の1つが呼び出され
るということを決定するときはいつでも(図4の意思決
定ステップ402 )、それはこのメソッドのコードが圧縮
されるかどうかを決定する(図4の意思決定ステップ40
4 )。これは、メソッドソトレージステータステーブル
200 から決定される。メソッドのコードが圧縮されない
ならば、次いで、メソッドは実行コントローラによって
呼び出される(図4のステップ406 )。メソッドがもは
や呼び出されない場合には、そのコードは先に説明した
仕方でコードコンプレッサ146 によって圧縮されうる。
しかしながら、呼び出されるメソッド147 及び/又は14
8 のコードが圧縮されるならば、次いで、実行コントロ
ーラはメソッドのコードを解凍するためにコードコンプ
レッサ146 を呼び出す。コードコンプレッサは、コード
を解凍するためにRAM136 において十分なスペースが
利用可能であるかどうかを決定する(図4の意思決定ス
テップ408 )。十分なスペースが利用可能ならば、コー
ドコンプレッサは利用可能なスペースでコードを解凍す
る(図4のステップ410 )。そのようにすることで、そ
れは、圧縮されていないコードのメモリスペースへの対
応ポインタを識別し、且つ、今、メソッドのコードが圧
縮されていないということを示すために、メソッドスト
レージステータステーブル200 を更新する(U)。
【0029】しかしながら、十分なスペースが利用可能
でないならば、次いで、コードコンプレッサ146 は、ス
ペースが利用可能になるまでそのコードがまだ圧縮され
ていないLRIリスト202 の最も古く実行されたメソッ
ドのコードを圧縮する(図4のステップ412 )。このこ
とは先に示した仕方で行われる。スペースが利用可能に
なった後、解凍されるべきメソッド147 又は148 のコー
ドは、利用可能なスペースでコードコンプレッサによっ
て解凍され、次いで、丁度説明した仕方で実行コントロ
ーラ153 よって呼び出される(図4のステップ410 及び
406 )。前記の観点では、本発明が、実行スピードをセ
ーブすると同時にランタイムメモリスペースの低減を提
供することは明らかである。これは、ロードされたメソ
ッド147 又は148 を圧縮することによって、メソッド14
7 又は148 はRAMにおけるスペースが必要な場合に、
RAM136 からフラッシュされ且つサーバコンピュータ
システム104 から再ダウンロードされる必要がなくはな
いという事実による。しかしながら、当業者が認識する
ように、他の変形実施形態は同様な利益を提供すべくイ
ンプリメントすることができる。
【0030】特に、先に説明した圧縮基準152 は、RA
M136 のスペースが必要であったが利用可能でない場合
に圧縮されていないコードを有する最も古く呼び出され
たメソッド147 又は148 のコードが圧縮されるであろう
ということを特定した。しかしながら、圧縮基準は、広
範囲のオプションからユーザによって選択され、且つ、
ユーザのクライアントコンピュータシステム102 に多数
の条件に基づいてよい。例えば、圧縮基準は、各メソッ
ドのコードが、メソッドがもはや呼び出されなくなった
らすぐに圧縮されるということを単に特定しうる。若し
くは、圧縮基準は、所定のメソッドのコードがそのよう
にするための時間が利用可能なときはいつでものらくら
と圧縮されるということを特定しうる。先のいずれかの
ものの更なる変形として、圧縮基準は特定の大きさ又は
タイプのメソッドのコードだけが圧縮されるということ
を特定しうる。
【0031】更に、先に示したように、解凍基準154
は、そのコードが圧縮されたコードであるメソッド147
又は148 が、メソッドが呼び出されるとすぐにそのコー
ドを解凍させるということを特定した。しかしながら、
解凍基準は、所定の時間間隔が満了になった後に、圧縮
されたこーどが解凍されることを特定できる。この場合
では、データコンプレッサは時間間隔を計るためのタイ
マを含む。一例では、この技術は、メソッドが既知の時
間間隔に対して圧縮され、次いで、メソッドが目覚めさ
せられるときのほんの少し前に解凍されるように、既知
の時間間隔に対してスリープさせられているメソッドに
用いることができる。若しくは、別の例では、データが
メソッドにとって利用可能になるときを予測してメソッ
ド圧縮の時間間隔が選択されるような場合に、データを
待っているメソッドに対してこの技術を用いることがで
きる。
【0032】別の実施形態では、圧縮基準152 はまた、
ロードされたメソッド147 又は148がRAM136 からフ
ラッシュされる場合を特定しているフラッシング基準も
含んでよい。例えば、フラッシィング基準は、呼び出さ
れていない且つ圧縮されていないRAMにロードされた
メソッドが存在しないならば、次いで、圧縮されたコー
ドを有するLRIリスト202 の最も古く呼び出されたメ
ソッドは、フラッシュ可能であり、且つ、十分なスペー
スが利用可能になるまでRAM136 からフラッシュれる
ということを示しうる。結果として、メソッドがRAM
からフラッシュされ、次いで、再び実行される場合、ネ
ットワーク通信マネージャ140 は先に議論した仕方でプ
ログラムを供給するサーバコンピュータシステム104 か
らプログラムを再ダウンロードしなければならない。実
行コントローラ153 は、フラッシュされたいかなるメソ
ッドへの参照を除去することによってプログラムストレ
ージステータステーブル200 を更新する。
【0033】RAM136 からロードされたメソッド147
又は148 をフラッシュすることは実行スピードに関して
費用がかかるので、図5及び図6に示すように、2次メ
モリ500 は、さもなければフラッシュされるメソッドを
格納するのに使用することができる。この場合では、先
に議論した圧縮基準152 は、丁度議論したフラッシング
基準に類似し、且つ、それらが2次ストレージ基準を満
足するので格納可能であるメソッドを格納するのに使用
される、2次ストレージ基準を含む。しかしながら、こ
の場合では、コードコンプレッサ146 は、これらのメソ
ッドを2次メモリにポイントするためにプログラムスト
レージステータステーブル200 のポインを更新する。更
に、メソッドのコードが圧縮され、2次メモリに格納さ
れ、且つ、解凍されるべきであるように検索可能である
メソッドに関して、メソッドのコードは2次メモリから
検索され、次いで、先に説明した仕方でRAM136 に解
凍れる。
【0034】更に、クライアントコンピュータシステム
102 が2次メモリ500 を含むような施形態(例えば、ネ
ットワークされたデスクトップコンピュータ)では、メ
ソッド147 又は148 をサーバコンピュータシステムから
2次メモリにダウンロードすることができる。次いで、
これらのメソッドを、サーバコンピュータシステム104
からではなく、2次メモリからRAM136 に直接ロード
することができる。更に、かかる実施形態では、オペレ
ーティングシステム138 、ネットワーク通信マージャ14
0 、バーチャルマシンモジュール142 、及び、コードコ
ンプレッサ146を、2次メモリに格納し、そこからRA
Mにロードすることができる。更に別の実施形態では、
オペレーティングシステム138 、ネットワーク通信マー
ジャ140 、バーチャルマシンモジュール142 、及び、コ
ードコンプレッサ146を、サーバコンピュータシステム1
04 の1つからクライアントコンピュータシステム102
のRAM136 にダウンロードすることができる。これ
は、サーバコンピュータシステムのメソッド147 又は14
8 に対して先に説明されたものと同様な仕方で行われ
る。
【0035】更に別の実施形態では、バーチャルマシン
モジュール142 はシリコンチップで実際に実行され、ク
ライアントコンピュータシステム102 のCPUとしてサ
ーブする。この場合では、ANコードを有するメソッド
147 は特定アーキテクチャのために翻訳されず、その代
わりに、直接実行される。この実施形態では、ASコー
ドを有するメソッド148 は利用されない。最後に、本発
明を2、3の特定の実施形態を参照して記述したが、記
述は本発明の説明のためであり、本発明を限定するよう
に解釈すべきでない。種々の変形が、特許請求の範囲に
よって定義されたような本発明の真の精神及び範囲から
逸脱することなく当業者において行われてよい。
【図面の簡単な説明】
【図1】本発明を具体化したクライアントコンピュータ
システムのブロック図である。
【図2】クライアントコンピュータシステムのオペレー
ションの機能ブロック図である。
【図3】クライアントコンピュータシステムの圧縮方法
のフローチャートである。
【図4】クライアントコンピュータシステムの解凍方法
のフローチャートである。
【図5】クライアントコンピュータシステムの変形実施
形態を示す。
【図6】クライアントコンピュータシステムの変形実施
形態のオペレーションの機能ブロック図を示す。
【符号の説明】
100 コンピュータネットワーク 102 クライアントコンピュータシステム 104 サーバコンピュータシステム 106 ネットワーク通信接続 110 、126 CPU 112 、128 ユーザインターフェース 116 通信インターフェース 118 メモリ 128 、138 オペレーティングシステム 122 、140 ネットワーク通信マネージャ 132 ネットワーク通信インターフェース 134 ROM 136 RAM 142 バーチャルマシンモジュール 145 プログラム 146 コードコンプレッサ 147 メソッド:ANコード 148 メソッド:ASコード 149 実行データ 150 、152 、154 基準 151 コードベリファイヤ 153 実行コントローラ 155 メソッドステータスデータストラクチャ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成10年3月6日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 メソッドを有するプログラムが設けられ
    ているコンピュータネットワークにおいて、ランタイム
    メモリのスペース必要量を低くして、該プログラムを実
    行するクライアントコンピュータシステムであって、 ランタイムメモリと、 メソッドを受け取るネットワーク通信インターフェース
    と、 受け取った場合に、ランタイムメモリの利用可能なスペ
    ースにメソッドを圧縮しないでロードするネットワーク
    通信マネージャと、 前記プログラムの実行を制御して、異なる時間において
    前記メソッドが呼び出されたり呼び出されないようにす
    る、実行コントローラと、 (A)呼び出されていない非圧縮メソッドのうちの圧縮
    可能なものをランタイムメモリにおいて圧縮し、それに
    より前記ランタイムメモリにおけるスペースを利用可能
    とし、(B)前記圧縮されたメソッドの解凍可能なもの
    が呼び出されうるように、前記圧縮されたメソッドの解
    凍可能なものをランタイムメモリの利用可能なスペース
    において解凍する、コンプレッサと、を有するクライア
    ントコンピュータシステム。
  2. 【請求項2】 前記コンプレッサは、前記圧縮されたメ
    ソッドの解凍可能なものが呼び出されるとすぐに、前記
    圧縮されたメソッドの解凍可能なものを解凍する、請求
    項1に記載のクライアントコンピュータシステム。
  3. 【請求項3】 前記コンプレッサは、所定の時間間隔後
    に圧縮されたメソッドの解凍可能なものを解凍する、請
    求項1に記載のコンピュータシステム。
  4. 【請求項4】 前記コンプレッサは、圧縮されていない
    メソッドの圧縮可能なものがもはや呼び出されない状態
    になるとすぐに、圧縮されていないメソッドの圧縮可能
    なものを圧縮する、請求項1、2又は3に記載のクライ
    アントコンピュータシステム。
  5. 【請求項5】 前記コンプレッサは、前記ランタイムメ
    モリ内のスペースが必要であるが利用可能でない場合、
    圧縮されていないメソッドの圧縮可能なものを圧縮す
    る、請求項1、2又は3に記載のクライアントコンピュ
    ータシステム。
  6. 【請求項6】 最も古く呼び出されたメソッドから最も
    新しく呼び出されたメソッドまでの順番に、現在呼び出
    されていない前記メソッドのそれらをリストする最も古
    く呼び出されたリスト、を更に備え、 前記圧縮されていないメソッドの圧縮可能なものは、前
    記ランタイムメモリのスペースが必要であるが利用可能
    でない場合、最も古く実行されたリストにおける最も古
    く実行されたメソッドのうちの圧縮されていないもので
    ある、請求項1乃至5のいずれか1項に記載のクライア
    ントコンピュータシステム。
  7. 【請求項7】 前記メソッドは、クライアントコンピュ
    ータシステムのアーキテクチャに依存しないアーキテク
    チャニュートラルコードにおけるメソッドを含み、 前記クライアントコンピュータシステムが、実行コント
    ローラを含み且つアーキテクチャニュートラルコードに
    おけるメソッドの実行を可能にするバーチャルマシンモ
    ジュールを更に備える、請求項1乃至6のいずれか1項
    に記載のクライアントコンピュータシステム。
  8. 【請求項8】 前記コンプレッサは、前記ランタイムメ
    モリのスペースが必要であるが利用可能でない場合、圧
    縮されたメソッドのうちフラッシュ可能なものをランタ
    イムメモリからフラッシュする、請求項1乃至7のいず
    れか1項に記載のクライアントコンピュータシステム。
  9. 【請求項9】 2次メモリと、 (A)前記ランタイムメモリのスペースが必要であるが
    利用可能でない場合、前記圧縮されたメソッドのうち格
    納可能なものを前記2次メモリに格納し、且つ、(B)
    解凍されるべき前記圧縮されたメソッドのうち検索可能
    なものを2次メモリから検索する、コンプレッサと、を
    更に有する、請求項1乃至8のいずれか1項に記載のク
    ライアントコンピュータシステム。
  10. 【請求項10】 メソッドを有するプログラムが設けら
    れているコンピュータネットワークにおいて、ランタイ
    ムメモリのスペース必要量を少なくして、該プログラム
    を実行する方法であって、 ランタイムメモリを設け、 メソッドを受け取り、 前記メソッドが受け取られたとき、該メソッドをランタ
    イムメモリの利用可能なスペースに圧縮しないでロード
    し、 前記プログラムを実行して、前記メソッドが異なる時間
    で呼び出されたり呼び出されなかったりするようにし、 呼び出されていない非圧縮メソッドのうち圧縮可能なも
    のをメモリ内において圧縮し、それにより前記ランタイ
    ムメモリにおいてスペースを利用可能にし、 圧縮されたメソッドのうちの解凍可能なものが呼び出さ
    れうるように、前記圧縮されたメソッドのうちの解凍可
    能なものをランタイムメモリの利用可能なスペースに解
    凍する、段階を有することを特徴とする方法。
  11. 【請求項11】 前記解凍段階は、圧縮されたメソッド
    のうち解凍可能なものが呼び出されるべきときになると
    すぐに、圧縮されたメソッドのうち解凍可能なものを解
    凍することを含む請求項10に記載の方法。
  12. 【請求項12】 前記解凍段階は、所定の時間間隔後に
    圧縮されたメソッドのうちの解凍可能なものを解凍する
    ことを含む、請求項10に記載の方法。
  13. 【請求項13】 前記圧縮段階は、前記圧縮されたメソ
    ッドのうち圧縮可能なものがもはや呼び出されない状態
    になるとすぐに、圧縮されていないメソッドのうちの圧
    縮可能なものを圧縮することを含む、請求項9,11又
    は12に記載の方法。
  14. 【請求項14】 前記圧縮段階は、前記ランタイムメモ
    リのスペースが必要であるが利用可能でない場合に、前
    記圧縮されていないメソッドのうちの圧縮可能なものを
    圧縮することを含む、請求項10,11又は12に記載
    の方法。
  15. 【請求項15】 最も古く呼び出されたメソッドから最
    も新しく呼び出されたメソッドまでの順番に現在呼び出
    されていない前記メソッドのそれらをリストする最も古
    く呼び出されたリストを設け、 前記圧縮されていないメソッドのうちの圧縮可能なもの
    は、前記ランタイムメモリのスペースが必要であるが利
    用可能でない場合に、圧縮されていない最も古く呼び出
    されたリストにおける前記最も古く呼び出されたものと
    する、請求項10乃至14のいずれか1項に記載の方
    法。
  16. 【請求項16】 前記ランタイムメモリのスペースが必
    要であるが利用可能でない場合に、圧縮されたメソッド
    のうちのフラッシュ可能なものを前記ランタイムメモリ
    からフラッシングする段階を更に含む、請求項10乃至
    15のいずれか1項に記載の方法。
  17. 【請求項17】 2次メモリを設け、 前記ランタイムメモリのスペースが必要であるが利用可
    能でない場合に、圧縮されたメソッドのうちの格納可能
    なものを前記2次メモリに格納し、 解凍されるべき前記圧縮されたメソッドのうちの検索可
    能なものを2次メモリから検索する、段階を更に含む請
    求項10乃至16のいずれか1項に記載の方法。
JP18427797A 1996-06-05 1997-06-05 低減されたラン−タイム・メモリ空間要求を有するネットワーク移動コードを実行する方法及びコンピュータ・システム Expired - Lifetime JP3210606B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/658472 1996-06-05
US08/658,472 US5859982A (en) 1996-06-05 1996-06-05 Computer system and method for executing methods of downloaded programs with reduced run-time memory space requirements

Publications (2)

Publication Number Publication Date
JPH10228380A true JPH10228380A (ja) 1998-08-25
JP3210606B2 JP3210606B2 (ja) 2001-09-17

Family

ID=24641373

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18427797A Expired - Lifetime JP3210606B2 (ja) 1996-06-05 1997-06-05 低減されたラン−タイム・メモリ空間要求を有するネットワーク移動コードを実行する方法及びコンピュータ・システム

Country Status (8)

Country Link
US (1) US5859982A (ja)
EP (1) EP0811911B1 (ja)
JP (1) JP3210606B2 (ja)
KR (1) KR100264940B1 (ja)
CN (1) CN1097770C (ja)
DE (1) DE69740171D1 (ja)
SG (1) SG74592A1 (ja)
TW (1) TW424195B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004511833A (ja) * 2000-05-04 2004-04-15 サイエンティフィック−アトランタ, インコーポレイテッド 複数のアプリケーションのためのメモリ管理および現在のアプリケーションバージョンを保守する通信端末ためのシステムおよび方法
US7065751B2 (en) 2001-04-23 2006-06-20 Renesas Technology Corp. Program execution device operating based on compressed code

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043537B1 (en) * 1997-09-05 2006-05-09 Cisco Technology, Inc System and method for remote device management
JPH11296381A (ja) * 1998-04-08 1999-10-29 Matsushita Electric Ind Co Ltd 仮想マシン及びコンパイラ
FR2777673B1 (fr) 1998-04-15 2001-09-21 Bull Cp8 Dispositif de traitement de l'information comprenant des moyens pour gerer une memoire virtuelle, et procede de stockage d'informations associe
US6397385B1 (en) * 1999-07-16 2002-05-28 Excel Switching Corporation Method and apparatus for in service software upgrade for expandable telecommunications system
GB9921720D0 (en) 1999-09-14 1999-11-17 Tao Group Ltd Loading object-oriented computer programs
AU1632001A (en) * 1999-10-22 2001-05-08 General Instrument Corporation Management of volatile and non-volatile memory resources in digital communications terminals
KR100319755B1 (ko) * 1999-12-02 2002-01-05 오길록 내장형 자바가상머신을 위한 바이트코드 압축 방법
JP4568963B2 (ja) 2000-06-08 2010-10-27 ソニー株式会社 情報処理装置、情報通信システム
US20020026474A1 (en) * 2000-08-28 2002-02-28 Wang Lawrence C. Thin client for wireless device using java interface
FR2817055B1 (fr) * 2000-11-22 2003-02-14 Gemplus Card Int Execution d'une application dans un objet electronique portable a faible capacite de memoire
US20040015960A1 (en) * 2001-03-16 2004-01-22 Sanjay Wanchoo Method for loading and executing an application in an embedded environment
US6895463B2 (en) 2001-10-30 2005-05-17 Pioneer Digital Technologies, Inc. Method and apparatus for efficiently running an execution image using volatile and non-volatile memory
JP4727984B2 (ja) * 2002-06-04 2011-07-20 インフィニオン テクノロジーズ アーゲー 漏洩防止性を有するプログラム分割システム、プログラム分割方法、プログラム分割コンピュータプログラムプロダクト
GB2403033A (en) * 2003-06-18 2004-12-22 Research In Motion Ltd PDA software compression
CA2539460C (en) 2003-09-17 2012-09-25 Research In Motion Limited System and method for dynamic version management of applications
DE602004020492D1 (de) * 2003-10-02 2009-05-20 Research In Motion Ltd Selektives laden und konfigurieren einer anwendung auf einer drahtlosen einrichtung unter verwendung von relationalen informationen
JP4638250B2 (ja) * 2005-02-03 2011-02-23 三菱電機株式会社 プログラムコード生成支援装置及び方法並びにプログラムコード生成支援方法のプログラム
WO2006111004A1 (en) * 2005-04-18 2006-10-26 Research In Motion Limited System and method for customizing services for applications
US8566481B2 (en) 2009-06-10 2013-10-22 Cisco Technology, Inc. Managing configuration data
US20110022986A1 (en) * 2009-07-23 2011-01-27 Research In Motion Limited Method and device for application archiving
KR102114388B1 (ko) * 2013-10-18 2020-06-05 삼성전자주식회사 전자 장치의 메모리 압축 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0798640A (ja) * 1993-05-24 1995-04-11 Firstperson Inc 遠隔装置へのインターフェースを実行する方法、および装置を用いた改良型図形ユーザーインターフェース
JPH07182174A (ja) * 1993-07-08 1995-07-21 General Magic Inc リモートプログラミングの実施方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1341310C (en) * 1988-07-15 2001-10-23 Robert Filepp Interactive computer network and method of operation
US5280613A (en) * 1990-06-25 1994-01-18 Hewlett-Packard Company ANDF installer using the HPcode-Plus compiler intermediate language
JPH04105129A (ja) * 1990-08-24 1992-04-07 Nec Corp プログラム実行方式
US5307413A (en) * 1991-07-19 1994-04-26 Process Software Corporation Method and apparatus for adding data compression and other services in a computer network
US5497494A (en) * 1993-07-23 1996-03-05 International Business Machines Corporation Method for saving and restoring the state of a CPU executing code in protected mode
US5432937A (en) * 1993-08-20 1995-07-11 Next Computer, Inc. Method and apparatus for architecture independent executable files
GB2284492B (en) * 1993-12-06 1998-05-13 Graeme Roy Smith Improvements to computer control units
US5682550A (en) * 1995-06-07 1997-10-28 International Business Machines Corporation System for restricting user access to default work area settings upon restoration from nonvolatile memory where the settings are independent of the restored state information
US5734822A (en) * 1995-12-29 1998-03-31 Powertv, Inc. Apparatus and method for preprocessing computer programs prior to transmission across a network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0798640A (ja) * 1993-05-24 1995-04-11 Firstperson Inc 遠隔装置へのインターフェースを実行する方法、および装置を用いた改良型図形ユーザーインターフェース
JPH07182174A (ja) * 1993-07-08 1995-07-21 General Magic Inc リモートプログラミングの実施方法
JPH07509799A (ja) * 1993-07-08 1995-10-26 ジェネラル マジック,インク. ネットワークにおけるプロセスの移動,エクセプション及び相互作用に基づいた分散処理のためのシステム及び方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004511833A (ja) * 2000-05-04 2004-04-15 サイエンティフィック−アトランタ, インコーポレイテッド 複数のアプリケーションのためのメモリ管理および現在のアプリケーションバージョンを保守する通信端末ためのシステムおよび方法
US7065751B2 (en) 2001-04-23 2006-06-20 Renesas Technology Corp. Program execution device operating based on compressed code

Also Published As

Publication number Publication date
TW424195B (en) 2001-03-01
EP0811911A2 (en) 1997-12-10
CN1174358A (zh) 1998-02-25
US5859982A (en) 1999-01-12
SG74592A1 (en) 2000-08-22
EP0811911A3 (en) 1999-03-10
CN1097770C (zh) 2003-01-01
EP0811911B1 (en) 2011-04-13
JP3210606B2 (ja) 2001-09-17
KR980004098A (ko) 1998-03-30
DE69740171D1 (de) 2011-05-26
KR100264940B1 (ko) 2000-10-02

Similar Documents

Publication Publication Date Title
JP3210606B2 (ja) 低減されたラン−タイム・メモリ空間要求を有するネットワーク移動コードを実行する方法及びコンピュータ・システム
US5794049A (en) Computer system and method for executing architecture specific code with reduced run-time memory space requirements
KR100453723B1 (ko) 감소된런-타임메모리공간의요구를가지고실행쓰레드들을실행하기위한컴퓨터시스템및방법
US7174544B2 (en) JAVA compile-on-demand service system for accelerating processing speed of JAVA program in data processing system and method thereof
US7062764B2 (en) System and method for manipulating offline software
US6430570B1 (en) Java application manager for embedded device
US6807559B1 (en) System and method for applet management
US6272674B1 (en) Method and apparatus for loading a Java application program
US7406592B1 (en) Method, system, and apparatus for efficient evaluation of boolean expressions
US5903753A (en) Name space registry with backward compatibility for older applications
US7506310B2 (en) Method and system for caching managed code for efficient execution on resource-constrained devices
US20070033322A1 (en) Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
US5546581A (en) Method for integrating a discrete subprogram into a main program
US7185331B2 (en) Method and apparatus for downloading executable code in a non-disruptive manner
US7162629B2 (en) Method to suspend-and-resume across various operational environment contexts
US7293267B1 (en) System and method for performing speculative initialization of application models for a cloned runtime system process
JP2003157170A (ja) プログラムバイナリをデコードおよび実行する方法
US20060282651A1 (en) ACPI table management
US7426720B1 (en) System and method for dynamic preloading of classes through memory space cloning of a master runtime system process
US20040107291A1 (en) Data processing system, data processing method, informaton processing device and information processing method, and storage medium
US7343603B1 (en) System and method for performing incremental initialization of a master runtime system process
WO2000058826A2 (en) Method and system for delayed class loading using interface stubs
JP2003256219A (ja) 組込み機器におけるプログラム実行方法
CN117707551A (zh) 一种目标软件包的安装方法及装置
CN116661844A (zh) 配置文件处理方法、应用程序更新方法、装置、服务器

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070713

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080713

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080713

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090713

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090713

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110713

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110713

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120713

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120713

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130713

Year of fee payment: 12

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term