JP2000250757A - データマネージャ及びデータ管理方法 - Google Patents

データマネージャ及びデータ管理方法

Info

Publication number
JP2000250757A
JP2000250757A JP2000055727A JP2000055727A JP2000250757A JP 2000250757 A JP2000250757 A JP 2000250757A JP 2000055727 A JP2000055727 A JP 2000055727A JP 2000055727 A JP2000055727 A JP 2000055727A JP 2000250757 A JP2000250757 A JP 2000250757A
Authority
JP
Japan
Prior art keywords
data
class
instance
data class
list
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.)
Pending
Application number
JP2000055727A
Other languages
English (en)
Inventor
P Judge Frank
フランク・ピー・ジャッジ
C Kriver Raymond
レイモンド・シー・クリバー
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2000250757A publication Critical patent/JP2000250757A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】ネットワークに接続されているとともに組込み
機器のようなメモリ量に制約がありシステム上で走るJ
VMに適応したグローバルデータオブジェクトの実装。 【構成・作用】データクラスがネットワークを介してク
ライアントから組込み機器へデータクラスオブジェクト
がロードされる。このクラスは組込み機器内のデータク
ラスリストによって管理される。このクラスからグロー
バルデータとして用いられるデータオブジェクトのイン
スタンスが生成され、このインスタンスは別のリストで
管理される。メモリが足りなくなったときにはこのリス
トを使ってオブジェクトのアンロードを行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、組込み機器におい
てグローバルデータを管理するデータマネージャに関す
る。
【0002】
【従来技術及びその問題点】組込み機器環境では、Ja
va仮想マシン等のハードウェア非依存型プロセッサが
しばしば機器にインストールされており、それによって
プログラムを機器にダウンロードしその機器上で実行す
ることが可能になる。このようなシステムでは、そのシ
ステムを特定の用途へ向けてカスタマイズするために、
Sun MicroSystemsによるJava等のハードウェア非依
存型言語で書かれたプログラムを、Java環境をサポ
ートするあらゆるハードウェアにダウンロードすること
ができる。このカスタマイズは、しばしば機器の「個性
(personality)」と呼ばれる。機器の個性を定義するた
めに、組込み機器内で複数のアプリケーションが協働し
て実行されることがある。このようにして、機器を、複
数の固有の態様で機能するよう動的に構成することがで
きる。例えば、冷蔵庫等の組込み機器は、その中身を自
動的に追跡するようカスタマイズすることができる。食
品の種類および同種の食品の命名規則が文化によって異
なるので、食品の種類および命名規則を記述する新たな
個性をJavaが動作できるようになっている組込み機
器である冷蔵庫にダウンロードすることにより、その組
込み機器の冷蔵庫を、ユーザの特定の文化に対してカス
タマイズすることができる。
【0003】組込み機器分野では、Java仮想マシン
等のハードウェア非依存型プロセッサが機器にインスト
ールされることにより、アプリケーションを機器にダウ
ンロードしその機器上で実行することができる。Jav
aが組込み機器市場で成功するためには、Javaプロ
グラムがメモリの制約されている環境で実行することが
できなければならない。一般的な組込み機器の有するメ
モリは1メガバイト以下であり、これに対して、これら
の機器用の一般的な組込みJava環境のサイズは50
0K以上である。これにより、組込み機器のファームウ
ェア用および機器上で実行されるJavaプログラム用
の空きメモリは500K未満となる。大抵の場合、組込
みJavaプログラムは、その機器中の他のプログラム
と共有するデータオブジェクトや、あるいは他のネット
ワーク接続可能な機器で実行されるプログラムを、生成
あるいは使用する。メモリの制約されている環境では、
Java言語機能のみを使用してこれらのグローバルデ
ータオブジェクトを生成することは、しり込みしたくな
るような作業である。
【0004】Java言語は、本来、組込み機器環境の
ために開発されたものであり、プログラムをJava環
境をサポートするすべてのハードウェア上で実行できる
ようにする。多くのJava組込み機器は、ネットワー
クに接続可能(network ready)であり、その機器上で
データを収集し分析するJavaプログラムをサポート
している。そして、その機器データは、その機器上の他
のJavaプログラムまたはネットワーク上の他の機器
と共有される。この種のJavaシステムを実現する際
の主な問題は、組込み機器のメモリの制約である。Ja
va言語は、メモリの制約された環境内のグローバルデ
ータオブジェクトの管理を直接サポートしていない。ま
た、Java言語は、より多くのメモリを空き状態とし
て機器上のプログラムが使用できるように、データオブ
ジェクトをリモート機器へロードすることを直接サポー
トしていない。
【0005】現時点では、メモリが制約された状態で、
ある機器におけるJavaプログラム間でグローバルデ
ータオブジェクトを容易に共有する標準的な方法を実現
する製品は知られていない。また、Javaプログラム
がデータオブジェクトを別の機器に移す、つまりアンロ
ードし、必要な時に元の機器にそれらのデータオブジェ
クトを再びロードすることができる製品も知られていな
い。
【0006】従って、データを他のネットワーク機器に
格納し、必要な時にその機器に動的にロードすることを
可能にする方法が必要とされている。また、あるプログ
ラムの寿命を超えて、すなわちそのプログラムが機器上
で動作を終了した後までデータキャッシングを継続し
て、それにより他のプログラムが同じデータオブジェク
トを使用することができるようにする方法も必要とされ
ている。この機能を提供するメカニズムをすべてのJa
va対応機器によって使用することができ、このメカニ
ズムが、同じ機器上のアプリケーション間で単にデータ
を共有するにはネットワークインタフェースを必要とし
ないことが望ましい。
【0007】
【概要】本発明は、データをリモートネットワーク機器
に格納することができ、必要な時に組込み機器にその組
込み機器によって動的にロードすることができる新規な
方法およびメカニズムを提供する。本発明のメカニズム
は、プログラムの寿命を超えたデータキャッシングを提
供し、他のプログラムが同じデータオブジェクトを使用
することができるようにする。本発明のメカニズムは、
すべてのJava対応機器によって使用することがで
き、同じ組込み機器上のアプリケーション間で単にデー
タを共有するだけのためにはネットワークインタフェー
スを必要としない。
【0008】アプリケーションがメモリの制約されてい
る環境においてグローバルデータオブジェクトを生成す
ることができるようにする、Javaベースのデータマ
ネージャが提供される。このデータマネージャは、デー
タオブジェクトが使用するためのJavaクラスをロー
ドし、オブジェクトを生成し、オブジェクトをキャッシ
ングし、アプリケーションがそのデータオブジェクトを
取り出しまた格納することができるようにする。データ
マネージャは、これらの機能すべてを厳しいメモリ制約
下で実行する。組込み機器のメモリを使い切ってしまう
と、データマネージャはどの項目を削除すべきかを判定
する構成可能アルゴリズムを使用して、そのキャッシュ
から所要の項目を削除してメモリを解放する。データマ
ネージャは、最初のJavaプログラムが動作した時に
実行を開始するため、他のすべてのプログラムより長生
きすることができ、それによって、Javaプログラム
用のデータリポジトリとして動作することができる。こ
のデータマネージャは、リモートシステムにオブジェク
トデータを格納し、後で必要になった時にそのデータを
取り出す機能をサポートしている。データマネージャ
は、そのキャッシュにどのオブジェクトおよびクラスが
保持されているかを問合せるAPIをサポートしてい
る。
【0009】本発明は、図面に関連して行われる以下の
詳細な説明を読むことによってより理解されよう。な
お、図面において、同じ参照指示を用いて同じ要素を示
している。
【0010】
【実施例】組込み機器用の新規なデータマネージャにつ
いて、以下詳細に説明する。本発明は、組込み機器にイ
ンストールされたJava環境を前提として説明される
が、当業者には、本発明の原理が、ハードウェア非依存
型言語で書かれたコードを処理するハードウェア非依存
型プロセッサを有するすべての組込み機器に拡張できる
ことが理解されるだろう。
【0011】ここで図1を参照すると、ネットワーク1
4を介して組込み機器20と通信するコンピュータシス
テム12を備えたネットワークシステム10が示され
る。ネットワーク14は、LANまたはWAN等の従来
のランドリンクされた(land-linked)有線ネットワー
クであっても、無線ネットワークであってもよく、また
はそれらの組合せであってもよい。
【0012】本システムにおけるコンピュータシステム
12はクライアントとして動作し、クライアントアプリ
ケーション2を実行する。このクライアントアプリケー
ション2は、クライアントインタフェース4を介して、
ネットワーク14を通じてサーバ機器(例えば、組込み
機器20)とインタフェースを取る。この例では、クラ
イアントアプリケーション2は、組込み機器20に対し
て要求(例えば、データクラスData1をアンロードせよ
(unloadDataClass Data1)、データクラスData2をロー
ドせよ(loadDataClass Data2))を送信する。組込み
機器20は、その要求に対してサービスを提供するサー
バとして動作する。クライアントアプリケーション2
は、コンピュータシステム12上のそれ自身の環境で実
行してもよく、あるいは、それ自身のJava仮想マシ
ン(JVM)(図示せず)を含むJava動作可能なウ
ェブブラウザ(図示せず)内で実行してもよい。ウェブ
ブラウザは、データクラスファイルの位置を指定する組
込みJavaアプレットを用いて、ウェブドキュメント
を解釈する。ウェブブラウザは、JVMを起動し、デー
タクラスファイルの位置をそのクラスローダに渡す。各
データクラスファイルは、必要とする追加のクラスファ
イルの名前を知っている。これらの追加のクラスファイ
ルは、ネットワーク14(すなわち、ネットワーク14
に接続された他のマシン)から入手されるようにしても
よく、あるいは、クライアントであるコンピュータシス
テム12から入手されるようにしてもよい。
【0013】組込み機器20は、Java仮想マシン
(JVM)22がインストールされたJava動作可能
機器である。図2は、組込み機器20の好ましい実施の
形態をより詳細に示すブロック図である。本実施の形態
において、組込み機器20は、JVM22、メモリ50
およびネットワークインタフェース25を備えている。
JVM22は、クラスローダ42および実行ユニット4
6を備えている。好ましくは、JVM22は、バイトコ
ード検証部(bytecode verifier)45も備えているが、
メモリの制約された機器によってはこれが実装されない
場合もある。クラスローダ42は、好ましくはアプリケ
ーションマネージャ44を備えている。このアプリケー
ションマネージャ44は、ネットワーク14からの他の
Javaベースプログラムのダウンロード、実行および
キャッシングを行う。例示的なアプリケーションマネー
ジャ44は、同時係属中の米国特許出願第(未知)号に
記載されている。データマネージャ48は、データクラ
スをロードおよびアンロードし、データオブジェクトを
生成し、追跡し、キャッシングする。メモリ50は、デ
ータキャッシュ54および好ましくはアプリケーション
キャッシュ52を備えている。データキャッシュ54
は、データマネージャ48によって管理されており、ア
プリケーションキャッシュ52は、アプリケーションマ
ネージャ44によって管理されている。JVM22は、
組込み機器20上で実行を開始すると、アプリケーショ
ンマネージャ44およびデータマネージャ48のための
オブジェクトを生成し、アプリケーションマネージャ4
4およびデータマネージャ48の実行を開始する。
【0014】図3は、アプリケーション26a、26
b、26cがどのようにして生成されるかを示してい
る。図示しているように、これは、次のように実行され
る。すなわち、アプリケーションのJavaクラスであ
るクラスオブジェクト28a、28bのインスタンスを
生成してクラスオブジェクト28a、28bのインスタ
ンスであるアプリケーションオブジェクト30a、30
b、30cを生成し、その後アプリケーション26a、
26b、26cを実行するアプリケーションオブジェク
ト30a、30b、30c上のメインメソッドを呼出
す。同一のJavaクラスのインスタンスを複数個生成
することにより、同一のアプリケーションの複数のイン
スタンスを同時に実行することができる。例えば、図3
に示すように、アプリケーションオブジェクト30aと
30bは、同一のクラスオブジェクト28aのインスタ
ンスであるが、アプリケーションオブジェクト30cは
異なるクラスオブジェクト28bのインスタンスであ
る。従って、アプリケーション26aと26bは、同時
に実行することができる同一のアプリケーションの異な
るインスタンスであるが、アプリケーション26cは完
全に異なるアプリケーションである。
【0015】アプリケーションマネージャ44は、ダウ
ンロード、開始、停止、問合せおよびメモリ管理の機能
を提供する。これらの機能をネットワーク14を介して
提供するために、組込み機器20は、ネットワークイン
タフェース25を有している。このネットワークインタ
フェース25は、Javaリモートメソッド呼出(Remo
te Method Invocation(RMI))プロトコル、ウェブ
がホストする要求(webhosted request)のためのハイパ
ーテキスト転送プロトコル(HTTP)、またはTCP
/IPソケット上のアプリケーションレベルのプロトコ
ル等、クライアントであるコンピュータシステム12が
組込み機器20のアプリケーションマネージャ44に要
求を送信することができるようにするネットワークプロ
トコル48を実現する。好ましい実施の形態において
は、ネットワークインタフェース25は、アプリケーシ
ョンマネージャ44によって指定される汎用Java言
語アプリケーションプログラムインタフェース(Applic
ation Program Interface(API))を用いて、アプ
リケーションマネージャ44に話しかける。この汎用A
PIにより、コンピュータシステム12等のリモート機
器に、組込み機器20の所望の管理を指定する機能が与
えられる。付録Aは、例示的な実施の形態においてアプ
リケーションマネージャ44のために定義されるAPI
を列挙している。
【0016】組込み機器20内で実行されているローカ
ルアプリケーションとネットワーク14を介して組込み
機器20と通信しているリモートアプリケーションの両
方を含む実行中のアプリケーションは、データマネージ
ャ48を介してデータオブジェクトと対話する。例示と
して、図3は、実行中のアプリケーションであるアプリ
ケーション26a、26bを示しており、これらは各
々、データマネージャ48を介してデータオブジェクト
32a、32bと対話する。同様に、実行中のアプリケ
ーションであるアプリケーション26cは、データマネ
ージャ48を介してデータオブジェクト32a、32
b、32cと対話する。
【0017】データマネージャ48は、クラスをロード
およびアンロードし、クラスのインスタンスを生成し、
データクラスのインスタンスへのアクセスを提供し、ま
データマネージャ48が現在管理しているデータクラス
およびインスタンスに関する問合せに応答する。データ
マネージャ48は、データクラスリスト47およびデー
タクラスインスタンスリスト49を保持している。リス
ト47、49は、データクラス名またはインスタンスラ
ベルをキーとする単一のハッシュテーブルとして実装さ
れる単一のリストとして保持することができる。あるい
は、リスト47、49を、図2に示すように別々のハッ
シュテーブルとして実装することも可能である。更に別
の実施の形態では、データクラスインスタンスリスト4
9を、図3に示すように各データクラスオブジェクト内
の別々のリストとして実装するようにしてもよい。好ま
しい実施の形態では、データマネージャ48は、汎用の
Java言語データマネージャ・アプリケーションプロ
グラムインタフェース(API)を提供するオブジェク
トとして実装されている。汎用データマネージャAPI
は、ローカルで実行されるアプリケーションとリモート
で実行されるアプリケーションの両方に対し、組込み機
器20に現在ロードされているデータを管理およびアク
セスする機能を提供する。付録Bは、例示的な実施の形
態におけるデータマネージャ48のために定義されたA
PIを列挙している。
【0018】付録Bに示すように、データマネージャA
PIには、loadDataClass(ロードデータクラス)メソ
ッドおよびunloadDataClass(アンロードデータクラ
ス)メソッドによってデータクラスをロードおよびアン
ロードする機能が含まれている。loadDataClassメソッ
ドは、「className(クラス名)」によって識別される
クラスの構造を有するデータクラスを、名前「dataName
(データ名)」でロードする。好ましい実施の形態で
は、引数「mainClass(メインクラス)」は、そのクラ
スが当該データクラスのインスタンスを生成するために
呼出されるmain()関数を実装しているか否かを示すよう
に、指定される。クラスデータ自体のバイトアレイを含
む「classData(クラスデータ)」引数が渡される。デ
ータマネージャ49は、バイトのアレイとしてそれを受
取る。データクラス「dataName」をロードする際には、
「className」によって識別されるクラスによって定義
された構造を有するクラスオブジェクトが生成され、そ
のmain()メソッドが存在する場合は実行される。main()
メソッドが存在しない場合、データマネージャ48の設
計には、クラスオブジェクトが生成される時に呼出すメ
ソッドの名前を決定する手段を含めなければならない。
これは、例えば、Javaリフレクション(reflectio
n)メソッドを介して実行することができる。データク
ラスオブジェクトが生成されると、そのデータクラスオ
ブジェクトがデータキャッシュ54に追加され、データ
クラス名「dataName」がデータマネージャ48によって
保持されるデータクラスリスト47に追加される。
【0019】データクラスを、データキャッシュ54か
らアンロードするように要求または選択された場合、un
loadDataClassメソッドが起動される。unloadDataClass
メソッドは、データキャッシュ54からデータクラスオ
ブジェクトおよびそのデータクラスオブジェクトのすべ
てのインスタンスを除去することにより、「dataName」
の名前によってデータクラスをアンロードする。データ
キャッシュ54からデータクラスオブジェクトが除去さ
れると、データクラス名「dataName」もまた、データマ
ネージャ48によって保持されるデータクラスリスト4
7から除去される。更に、データマネージャ48によっ
て保持されるデータクラスインスタンスリスト49か
ら、すべてのインスタンス識別子が除去される。
【0020】また、データマネージャAPIは、create
()(生成)メソッドにより、管理されているデータクラ
スのインスタンスを生成する機能を有している。このcr
eate()メソッドは、クラス名「c」とオブジェクトラベ
ル「key(キー)」を受取り、クラスタイプ「c」のデ
ータオブジェクトのインスタンスを生成する。新たに生
成されたデータオブジェクトは、付録Bで指定される
「DataContract(データコントラクト)」インタフェー
スを実現する。このインタフェースは、データマネージ
ャ48が適当な量のメモリを割当て、オブジェクトを適
切に初期化し、データオブジェクトが削除された場合に
開放されたリソースを安全にクリーンアップ(clean u
p)することができるようにするインタフェースであ
る。ラベル「key」は、新たに生成されたデータオブジ
ェクトに対するハンドルとして使用され、データマネー
ジャ48によって保持されるデータクラスインスタンス
リスト49にt追加される。
【0021】get()(ゲット)メソッドおよびput()(プ
ット)メソッドによって、現存するデータオブジェクト
に対する読出しおよび書込みアクセスが提供される。ge
t()メソッドは、データオブジェクトラベル「key」を受
け取って、「key」によって識別されるデータオブジェ
クトから要求されたデータを返す。put()メソッドは、
データオブジェクトラベル「key」及びクラスDataContr
actの値を受け取って、この値をラベル「key」によって
識別されるデータオブジェクトに設定する。
【0022】また、データマネージャAPIは、ローカ
ルアプリケーションおよびリモートアプリケーション
が、現在管理されているデータクラスおよびデータクラ
スのインスタンスのリストを取得することができるよう
にする、問合せ機能を提供する。dataClasses()(デー
タクラス)メソッドは、データマネージャ48によって
現在管理されているクラスのクラス名のリストを返す。
data()(データ)メソッドは、これまでに生成され現在
データマネージャ48によって管理されているデータオ
ブジェクトのインスタンスラベルのリストを返す。
【0023】データマネージャ48は、データオブジェ
クトを生成すると、好ましくは、デフォルトでデータキ
ャッシュ54にデータオブジェクト32a、32b、3
2cをキャッシングし、unloadDataClass()メソッドを
用いて明示的に要求された時、あるいは、メモリ管理ハ
ンドラ27がメモリ不足(low-memory)またはメモリな
し(no-memory)条件(例えば、OutOfMemoryError(ア
ウトオブメモリエラー)例外)の結果32a、32b、
32cをアンロードすべきデータオブジェクトとして選
択した時にのみ、データオブジェクト32a、32b、
32cを破棄する。好ましい実施の形態では、現在ロー
ドされているデータクラスがメモリ管理ハンドラ27に
よってアンロードされる順序は、データマネージャ48
のsetFreeDataFirst() (セットフリーデータファース
ト)メソッドを用いて設定される。このsetFreeDataFir
st()メソッドにより、クライアントは、メモリ不足また
はメモリなし状態の場合にデータクラスおよびオブジェ
クトがアンロードされる順序を設定または変更すること
ができる。これは、クラスをアンロードするためのアプ
リケーションの順位付けを指示するアプリケーションリ
ストにおいて、各エントリにアンロード優先フィールド
を付加する等、いくつかの方法のうちの任意の方法によ
って達成することができる。データマネージャ48は、
データクラスをキャッシングすることにより、データク
ラスに対する参照(reference)を保持し、それによっ
て、Java仮想マシン22がデータオブジェクト32
a、32b、32cをガーベッジ・コレクションによっ
て回収しない様にする。かくして、アプリケーション2
6a、26b、26cがデータオブジェクト32a、3
2b、32cのハンドルを知っている限りは、アプリケ
ーションが自分でそのオブジェクトを生成したか否かに
関わらず、アプリケーション26a、26b、26cは
これらのデータオブジェクトをアクセスおよび操作する
ことができる。これにより、そのデータオブジェクトを
生成したアプリケーションがJVM22にロードされ実
行されているか否かに関わらず、あるアプリケーション
がデータオブジェクト32a、32b、32cを生成
し、そのデータオブジェクトを他のアプリケーションが
使用することができる。従って、メモリ不足状態におい
て、このメモリ不足環境下で動作するための必要性に応
じて、アプリケーションクラスおよびオブジェクトをロ
ードおよびアンロードすることができ、その一方では、
いろいろなアプリケーションによって生成され操作され
るデータクラスおよびデータオブジェクトは、他の後に
実行されるアプリケーションによって共有されるよう
に、これらを生成したアプリケーションの寿命を超えて
生き残ることができる。
【0024】図4は、データマネージャ48の動作例を
示す通信図である。図示しているように、アプリケーシ
ョンオブジェクト30a、30b、30c、ネットワー
ク14またはメモリ管理ハンドラ27のいずれからの要
求に関わらず、データクラスおよびオブジェクトに対す
る生成、アクセスおよび削除がすべてデータマネージャ
48を介して実行される。図4に示す例では、「DATA
1」と呼ばれるデータクラスが、ネットワーク14から
組込み機器20にロードされる(402)。実行中のア
プリケーションオブジェクト30aは、「key1」と呼ば
れるデータクラスDATA1のインスタンスを生成し(40
4a)、その後その値を設定する(406a)。実行中
のアプリケーションオブジェクト30bは、同様に「ke
y2」と呼ばれるデータクラスDATA1のインスタンスを生
成し(404b)、その値を設定する(406b)。実
行中のアプリケーションオブジェクト30cは、データ
マネージャ48によって管理されているデータオブジェ
クトのインスタンスのリストを取得し(408)、次
に、アプリケーションオブジェクト30a、30bによ
って生成されたデータクラスDATA1のデータオブジェク
トにアクセスする(410a、410b)。データマネ
ージャ48によりデータオブジェクトがデータキャッシ
ュ54(図2)にキャッシングされるため、データオブ
ジェクト「key1」および「key2」を生成したアプリケー
ションオブジェクト30a、30bは、アプリケーショ
ンオブジェクト30cがデータオブジェクト「key1」お
よび「key2」にアクセスする時には、実際に実行中であ
る必要はない。従って、データマネージャ48は、デー
タオブジェクトがそれらを生成するアプリケーションの
寿命よりも後まで生き残ることができるようにする。そ
れにより、データオブジェクトを生成したアプリケーシ
ョンをメモリ50からアンロードして、ロードされる別
のアプリケーションまたは他の現在実行中のアプリケー
ションオブジェクト30cによって生成される(41
2)更なるデータ「key3」用にメモリを解放することに
よって、メモリが制約された組込み機器20においてデ
ータを共有できるようにするメカニズムを提供する。図
4の例において、データオブジェクト「key3」を生成す
る(412)ことが要求された結果、OutOfMemoryError
(メモリ切れ)例外となり(414)、要求された新た
なオブジェクトの生成およびキャッシングに対応するた
めに十分な空きメモリがデータキャッシュ54内に存在
しないことが通知される。
【0025】JVM22は、アプリケーション26a、
26b、26cがメモリ不足またはメモリなし状態にお
いて継続して実行されるように試みる。アプリケーショ
ン26a、26b、26cの実行中にJVM22がメモ
リ切れを起こした場合、OutOfMemoryErrorエラーが生成
される。JVM22は、メモリ不足またはメモリなし状
態を取り扱うメモリ管理ハンドラ27を有している。好
ましい実施の形態では、メモリ管理ハンドラ27は、J
VM22によって生成されるOutOfMemoryErrorの発生に
より起動されて動作を始める。1つの実施の形態では、
メモリ管理ハンドラ27は、これに応答して、適切にダ
ンプするアプリケーションおよび/またはデータクラス
オブジェクトをメモリ50から吐き出す。好ましい実施
の形態では、キャッシングされるオブジェクトをアンロ
ードする順序は、アプリケーションマネージャ44のse
tFreeAppsFirst()(セットフリーアプリケーションファ
ースト)メソッドおよびデータマネージャ48のsetFre
eDataFirst()メソッドを用いて動的に設定することがで
きる。あるいは、その順序は、メモリ管理ハンドラ27
自身の中にコード化された予め決められたアルゴリズム
に従って決定される。アプリケーションマネージャ44
およびデータマネージャ48は、JavaのRuntime.gc
()メソッドを呼出すことにより、所与のキャッシュ52
または54中でアンロードされたクラスオブジェクトお
よびそれらクラスオブジェクトのインスタンスが再利用
のために使用できることをJVM22に通知することが
できる。キャッシュ52または54からのクラスオブジ
ェクトのアンロードにより、それらのクラスのインスタ
ンスも同様にアンロードされる。
【0026】アプリケーションマネージャ44およびデ
ータマネージャ48は、好ましくはメモリ管理機能を提
供する。1つの実施の形態において、アプリケーション
マネージャ44は、アプリケーションキャッシュ52内
のクラスオブジェクト28a、28bおよびアプリケー
ションオブジェクト30a、30b、30cを参照し、
データマネージャ48は、データキャッシュ54内のグ
ローバルデータクラスおよびグローバルデータオブジェ
クト32a、32b、32cを参照する。これによっ
て、これらのオブジェクトがガーベッジ・コレクション
によって回収されないことが保証される。
【0027】代替の実施の形態では、メモリ管理ハンド
ラ27は、連続的に空きメモリレベルを監視し、メモリ
不足または空きメモリなし状態の時にキャッシュ52、
54からオブジェクトを除去し、必要に応じてより多く
のメモリを解放するためにガーベッジ・コレクションを
トリガする。上述したように、ガーベッジ・コレクショ
ンは、アプリケーションキャッシュ52またはデータキ
ャッシュ54から項目を除去した後にJavaのRuntim
e.gc()メソッドを呼出すことによってトリガされる。メ
モリ管理ハンドラ27を実装する場合、それがメモリ不
足状態においてどのようにメモリ50を管理するかにつ
いての選択を行わなければならない。1つの選択は、空
きメモリなし状態が発生した時に、アプリケーションキ
ャッシュ52またはデータキャッシュ54のどちらのキ
ャッシュから最初に項目を削除すべきかということであ
る。大抵の場合、アプリケーションオブジェクト30
a、30b、30cおよびそれらに関連するクラスオブ
ジェクト28a、28bを削除し、必要に応じてそれら
を再びダウンロードする方が容易である。この判断は、
グローバルデータを再生成するために長い時間がかかる
ことがあるということに基づいている。
【0028】アプリケーションオブジェクトおよびグロ
ーバルデータオブジェクトは、好ましくは、キャッシン
グ方式が正しく動作するようにするため、可能な限り別
々であるように設計されている。グローバルデータクラ
スであるデータオブジェクト32a、32b、32c
が、クラスオブジェクト28a、28bのメンバとして
参照される場合、クラスオブジェクト28a、28bへ
の参照も解除されない限り、データオブジェクト32
a、32b、32cへの参照が解除されてもメモリは解
放されない。データオブジェクト32a、32b、32
cがクラスオブジェクト28a、28bを参照するとい
う逆の場合でも同じ結果となる。クラスオブジェクト2
8a、28bは、クラスメンバではなくメソッドの形で
だけデータオブジェクト32a、32b、32cを参照
すべきである。好ましくは、データオブジェクト32
a、32b、32cは、クラスオブジェクト28a、2
8bを参照しないようにする。
【0029】図5は、本発明のデータマネージャ48の
機能を示す動作フローチャートである。同図において、
各ブロックの動作は以下の通りである: 502:要求を受信する 504:メモリ不足あるいはメモリなし条件か? 506:アンロードすべきクラス/インスタンスオブジ
ェクトを選択する 508:選択されたクラス/インスタンスオブジェクト
をアンロードする 510:クラスをロードし、クラスオブジェクトを定義
する 512:データオブジェクトのインスタンスを生成する 514:データオブジェクトを受信する 516:データオブジェクトの値を設定する 518:データオブジェクトをアンロードする 520:データオブジェクトのアンロードの順序を設定
する 522:クラスのリストを戻す 524:インスタンスのリストを戻す データマネージャ48は、組込み機器20上で実行され
ているローカルアプリケーションか、ネットワーク14
に接続されたシステム上で実行されているリモートアプ
リケーションか、あるいはメモリ管理ハンドラ27等の
JVM22内のオブジェクトから要求を受信する(50
2)。要求を実行した結果、空きメモリが使用された場
合(例えば、loadDataClass()、create())、受信した
要求の実行の結果、メモリ不足状態またはメモリなし状
態となったか否かについての判断を行う(504)。そ
のような状態になった場合、アプリケーションまたはデ
ータクラスオブジェクトおよび/またはアプリケーショ
ンまたはデータオブジェクトを、メモリ50からアンロ
ードするために選択する(506)。そして、選択した
オブジェクトを、メモリ50内の適当なキャッシュ52
または54からアンロードする(508)。受信した要
求がloadDataClass()要求である場合、データクラスオ
ブジェクトをネットワーク14からロードし、定義する
(510)。データオブジェクト32a、32b、32
cのインスタンスを生成し(512)、要求を完了す
る。要求がget()要求である場合、要求されたデータオ
ブジェクト32a、32b、32cからアプリケーショ
ンを取り出す。要求がput()要求である場合、要求され
たデータオブジェクト32a、32b、32cの値を設
定する(516)。要求がunloadDataClass()要求であ
る場合、要求されたデータクラスオブジェクトをデータ
キャッシュ54からアンロードする(518)。要求が
setFreeDataFist()要求である場合、メモリ不足または
メモリなし状態が検出されたとき、アンロードの対象と
してデータオブジェクト32a、32b、32cのデー
タクラスおよびインスタンスから選択を行う場合の順
序、つまり優先順位を設定する(520)。要求が管理
されているデータクラスに対する問合せdataClasses()
である場合、管理されているデータクラスのストリング
リストを返す(522)。要求が管理されているデータ
オブジェクト(すなわち、データクラスのインスタン
ス)に対する問合せである場合、管理されているデータ
オブジェクトのストリングリストを返す(524)。
【0030】メモリ不足またはメモリなし状態であるた
めに、データクラスオブジェクトまたはデータオブジェ
クトのインスタンスをアンロードすべきであると判断し
た場合(504)、例示的な実施の形態では、データマ
ネージャ48は、アンロードすべきものとして選択され
たオブジェクトに対する参照を解除し、JavaのRunt
ime.gc()メソッドを呼出すことにより、参照が解除され
たオブジェクトがデータキャッシュ54から削除される
ようにする。上述したように、参照が解除されたクラス
のみを、JavaのRuntime.gc()メソッドによってガー
ベッジ・コレクションすることができるため、参照が解
除されたクラスのみがキャッシュ54から削除される。
【0031】先に詳述したように、本発明のデータマネ
ージャ48は、メモリ50内のデータキャッシュ54に
おけるデータクラスおよびデータオブジェクトのキャッ
シングを、これらを生成したアプリケーションが終了し
た後および/またはアンロードされた後であっても、行
えるようにする。本発明の用途の一例は、電子テストの
領域にある。アプリケーションの最初の実行によりセッ
トアップ情報を保存することができ、それによって、そ
のアプリケーションがそれ以降もっと高速に実行される
ようになる。この例では、データマネージャ48は、テ
ストシステム較正情報をキャッシングすることができ
る。また、データマネージャ48は、データキャッシュ
54にテストシステム較正情報をキャッシングすること
により、データに対する参照を保持し、それにより、J
ava仮想マシン22にデータのガーベッジ・コレクシ
ョンを行わせないようにする。従って、この方法におけ
るデータキャッシングにより、同じあるいは別のアプリ
ケーションのそれ以降の実行のために情報を保存してお
くことができる。
【0032】先に詳述したように、本発明は、電子機器
または装置、およびメモリが制限されおよび/またはリ
ソースが制約された環境を有する他の組込みシステムに
おいて使用されるように意図されているところの、Ja
va仮想マシン内で実行されるデータマネージャおよび
API仕様を提供する。本発明は、より優先度の高いア
プリケーション用にメモリを解放するためにメモリリソ
ースが制約されることになった場合に、将来の実行のた
めにグローバルデータをキャッシングし続けておくとい
う柔軟性を提供する。
【0033】本発明を、例示的な実施の形態によって説
明したが、当業者には、本発明の精神または範囲から逸
脱することなく例示的な実施の形態に対しあらゆる変形
および修正を行うことができるということがわかるだろ
う。本発明の範囲は、いかなる場合も、上で提示し説明
した例示的な実施の形態に限定されるものではなく、特
許請求の範囲によってのみ限定されるものである、とい
うことを意図している。
【0034】 〔付録A〕 JavaアプリケーションマネージャAPI import java.io.IOException; public interface ApplMgr { // アプリケーション中心のメソッド public string[] applClasses() throws IOException; public string[] applications() throws IOException; public string[] applInstances() throws IOException; public void loadApplClass( String applName, String className, boolean mainClass, byte classData[] ) throws IOException; public String initAppl( String applName ) throws IOException; // 動作するメインクラスでなければならない public String loadAndInit( String applName, String className, byte classData[] ) throws IOException; public String startAppl( String applName, String applId ) throws IOException; public void stopAppl( String applName, String applId ) throws IOException; public void unloadAppl( String applName ) throws IOException; // メモリAPI public long freeMemory() throws IOException; public long totalMemory() throws IOException; public double getFreeMemoryLimit() throws IOException; public void setFreeMemoryLimit( double percent ) throws IOException; public boolean getFreeAppsFirstPolicy() throws IOException; public void setFreeAppsFirst( boolean val ) throws IOException; }// interface ApplMgr終了
【0035】 〔付録B〕 import java.io.IOException; public interface DataMgr { public DataContract create( Class c, Object key ); public String[] data() throws IOException; public DataContract get( Object key ); public void put( Object key, DataContract value ); public String[] dataClasses(); public void loadDataClass( String dataName, String className, boolean mainClass, byte classData[] ); public void unloadDataClass( String dataName ); /* setFreeDataFirst()メソッド * はメモリ不足またはメモリなし条件においてデータクラス及び * オブジェクトをアンロードする順序をクライアントが設定できるようにする */ } // DataMgr interface終了 public interface DataContract { /* ** publicである引数なしのデフォルトのコントラクタも実装しなければ *ならない */ /* init() * はデータオブジェクトを初期化するために呼び出される。これは、 * データベースあるいは別のデータソースからデータを取り出すの * に必要であるかもしれない。 */ public void init( Object key ); /* memSize() * はこのタイプのオブジェクトを生成するのに必要とされるメモリ * の量を戻す */ public long memSize(); /* delete() * はメモリを開放してオープンになった資源を皆一掃する際にデータ * マネージャによって呼ばれる */ public void delete(); /* freememory() * はデータマネージャがそこからオブジェクトに割り付けるために * 空けてある空きメモリの量を戻す */ public long free-memory(); } // DataContract終了
【図面の簡単な説明】
【図1】本発明が動作するネットワークシステムのシス
テムを示す図。
【図2】本発明が実装される組込み機器のブロック図。
【図3】アプリケーションが生成される態様を示すフロ
ーチャート。
【図4】本発明に従って実装されるデータマネージャの
動作例を示す通信図。
【図5】本発明に従って実装されるアプリケーションマ
ネージャの1つの実現例のクラス図。
【符号の説明】 12:コンピュータシステム 14:ネットワーク 20:組込み機器 22:Java仮想マシン(JVM) 25:ネットワークインタフェース 27:メモリ管理ハンドラ 47:データクラスリスト 48:データマネージャ 49:データクラスインスタンスリスト 54:データキャッシュ

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】組込み機器(20)におけるグローバルデ
    ータを管理するデータマネージャ(48)であって、前
    記組込み機器(20)が、前記組込み機器(20)にイ
    ンストールされその上で実行されるJava仮想マシン
    (JVM)(22)と、ネットワーク(14)を介して
    クライアント(12)と通信するネットワークインタフ
    ェース(25)と、前記グローバルデータを格納するデ
    ータキャッシュ(54)とを備えるデータマネージャ
    (48)において、 エントリを有し、各エントリが、前記組込み機器(2
    0)に現在ロードされているデータクラスオブジェクト
    を識別するデータクラス識別子を有するデータクラスリ
    スト(47)と、 前記ネットワークインタフェース(25)を介して前記
    ネットワーク(14)を通じて前記クライアント(1
    2)から受信したデータクラスをロードし、前記データ
    クラスに対して新たなデータクラスオブジェクトを生成
    し、前記データキャッシュ(54)に前記新たなデータ
    クラスオブジェクトを格納し、前記組込み機器(20)
    に現在ロードされている現ロードデータクラスオブジェ
    クトがロードされている状態で、前記新たなデータクラ
    スオブジェクトを識別する新たなエントリを前記データ
    クラスリスト(47)に追加するデータクラスローダメ
    ソッド(loadDataClass)とを設けたことを特徴とする
    データマネージャ(48)。
  2. 【請求項2】エントリを有し、各エントリが、前記組込
    み機器(20)に現在ロードされている前記現ロードデ
    ータクラスオブジェクトのうちの1つのインスタンスで
    あるデータオブジェクトを識別するインスタンス識別子
    を有するデータクラスインスタンスリスト(49)を設
    けたことを特徴とする請求項1記載のデータマネージ
    ャ。
  3. 【請求項3】前記データクラスリスト(47)で識別さ
    れる前記現ロードデータクラスオブジェクトのうちの1
    つの新たなインスタンスを生成し、前記新たなインスタ
    ンスを識別する新たなインスタンス識別子を前記データ
    クラスインスタンスリスト(49)に追加するデータオ
    ブジェクト生成メソッド(create)を設けたことを特徴
    とする請求項2記載のデータマネージャ。
  4. 【請求項4】インスタンス識別子引数に応答して、前記
    インスタンス識別子引数によって識別される前記データ
    クラスオブジェクトインスタンスに関連付けられたデー
    タを取り出すゲットデータメソッド(get)を設け、 前記インスタンス識別子引数は、前記データクラスイン
    スタンスリスト(49)に存在する前記インスタンス識
    別子のうちの1つを有することを特徴とする請求項3記
    載のデータマネージャ。
  5. 【請求項5】インスタンス識別子引数およびデータ値に
    応答して、前記インスタンス識別子引数によって識別さ
    れる前記データクラスオブジェクトインスタンスに関連
    付けられた前記データを前記データ値に設定するプット
    データメソッド(put)を設け、 前記インスタンス識別子引数は、前記データクラスイン
    スタンスリスト(49)に存在する前記インスタンス識
    別子のうちの1つを有することを特徴とする請求項3記
    載のデータマネージャ。
  6. 【請求項6】データクラス識別子引数に応答して、前記
    データクラス識別子引数によって識別される前記データ
    クラスオブジェクトを前記データキャッシュ(54)か
    ら削除すると共に、前記データクラス識別子引数を前記
    データクラスリスト(47)から削除するアンロードメ
    ソッド(unloadDataClass)を設け、 前記データクラス識別子引数は、前記データクラスリス
    ト(47)に存在する前記データクラス識別子のうちの
    1つを有することを特徴とする請求項2、3、4または
    5記載のデータマネージャ。
  7. 【請求項7】メモリ不足またはメモリ切れ状態が検出さ
    れたことに応答して、前記データキャッシュ(54)に
    キャッシュされた前記データクラスオブジェクトの1つ
    をアンロードすべきデータクラスオブジェクトとして選
    択し、 前記選択したデータクラスオブジェクトが前記データキ
    ャッシュ(54)からアンロードされるようにするメモ
    リ管理ハンドラ(27)を設けたことを特徴とする請求
    項6記載のデータマネージャ。
  8. 【請求項8】前記データクラスインスタンスリスト(4
    9)は、前記データクラスリスト(47)中で識別され
    る前記データクラスオブジェクトの各々に亙って分散さ
    れると共にそれらの中に格納され、それによって、各デ
    ータクラスオブジェクトが、前記対応するデータクラス
    オブジェクトによって定義されるクラスのデータクラス
    インスタンスを識別するデータクラスインスタンス識別
    子を含む前記データクラスインスタンスリスト(49)
    のその部分のみを保持することを特徴とする、請求項
    2、3、4、5、6または7記載のデータマネージャ。
  9. 【請求項9】組込み機器におけるデータを管理する方法
    であって、前記組込み機器が、データを格納するデータ
    キャッシュ(54)と、各々が前記データキャッシュ
    (54)に現在ロードされているデータクラスを識別す
    る識別子を有するエントリを格納するデータクラスリス
    ト(47)とを設けた方法において、 データクラスオブジェクトを前記データキャッシュ(5
    4)にロードするステップと、 前記データクラスリスト(47)に前記データクラスオ
    ブジェクトを識別する識別子を追加するステップとを含
    むことを特徴とする方法。
  10. 【請求項10】前記データキャッシュに現在ロードされ
    ている前記データクラスのうちの1つの新たなインスタ
    ンスを生成するステップと、 前記新たなインスタンスを前記データキャッシュ(5
    4)にロードするステップと、 前記新たなインスタンスを識別する新たなインスタンス
    識別子をデータクラスインスタンスリスト(49)に追
    加するステップと、を含むことを特徴とする請求項9記
    載の方法。
JP2000055727A 1999-03-01 2000-03-01 データマネージャ及びデータ管理方法 Pending JP2000250757A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US259617 1994-06-14
US09/259,617 US6430564B1 (en) 1999-03-01 1999-03-01 Java data manager for embedded device

Publications (1)

Publication Number Publication Date
JP2000250757A true JP2000250757A (ja) 2000-09-14

Family

ID=22985662

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000055727A Pending JP2000250757A (ja) 1999-03-01 2000-03-01 データマネージャ及びデータ管理方法

Country Status (2)

Country Link
US (1) US6430564B1 (ja)
JP (1) JP2000250757A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004021526A (ja) * 2002-06-14 2004-01-22 Toshiba Corp 通信システム、機器情報更新方法、機器情報更新プログラム及び通信装置
WO2007013280A1 (ja) * 2005-07-29 2007-02-01 Access Co., Ltd. プラグインモジュール実行方法、ブラウザ実行方法、メーラ実行方法、プログラム、端末装置、及び、ページデータが記録されたコンピュータ読み取り可能な記録媒体

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0825506B1 (en) 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
JP4562910B2 (ja) * 1998-03-23 2010-10-13 マイクロソフト コーポレーション オペレーティングシステムのアプリケーション・プログラム・インターフェース
WO2000070531A2 (en) * 1999-05-17 2000-11-23 The Foxboro Company Methods and apparatus for control configuration
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
US6788980B1 (en) * 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US6874145B1 (en) 1999-07-13 2005-03-29 Sun Microsystems, Inc. Methods and apparatus for implementing an application lifecycle design for applications
US7257812B1 (en) 1999-12-16 2007-08-14 Sun Microsystems, Inc. Methods and apparatus for managing an application
US6701334B1 (en) * 1999-07-13 2004-03-02 Sun Microsystems, Inc. Methods and apparatus for implementing individual class loaders
US6578054B1 (en) * 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6944642B1 (en) * 1999-10-04 2005-09-13 Microsoft Corporation Systems and methods for detecting and resolving resource conflicts
US6829761B1 (en) * 1999-10-21 2004-12-07 Oracle International Corporation Method and apparatus for managing shared memory in a run-time environment
US6957228B1 (en) * 2000-01-07 2005-10-18 International Business Machines Corporation Object oriented apparatus and method for providing context-based class replacement in an object oriented system
US6654784B1 (en) * 2000-01-14 2003-11-25 Nexaweb Technologies, Inc Computing architecture
US7330824B1 (en) 2000-02-25 2008-02-12 Navic Systems, Inc. Method and system for content profiling and activation
US6714992B1 (en) * 2000-02-25 2004-03-30 Navic Systems, Inc. Method and system for embedded network device installation
US7392281B1 (en) * 2000-02-25 2008-06-24 Navic Systems, Inc. System and method for providing guaranteed delivery of messages to embedded devices over a data network
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US7401131B2 (en) 2000-05-22 2008-07-15 Verizon Business Global Llc Method and system for implementing improved containers in a global ecosystem of interrelated services
US20020103942A1 (en) * 2000-06-02 2002-08-01 Guillaume Comeau Wireless java device
US6941351B2 (en) * 2000-07-11 2005-09-06 Microsoft Corporation Application program caching
AU2001284970A1 (en) * 2000-08-14 2002-02-25 Transvirtual Technologies, Inc. Portable operating environment for information devices
US6651140B1 (en) * 2000-09-01 2003-11-18 Sun Microsystems, Inc. Caching pattern and method for caching in an object-oriented programming environment
US7047273B2 (en) 2000-11-28 2006-05-16 Navic Systems, Inc. Load balancing in set top cable box environment
US20020129351A1 (en) * 2001-03-07 2002-09-12 Nexusedge Technologies Pty. Ltd. Software engine and method for software application loading
US7240101B2 (en) * 2001-04-02 2007-07-03 International Business Machines Corporation Method and apparatus for efficiently reflecting complex systems of objects in XML documents
US20020161828A1 (en) * 2001-04-30 2002-10-31 Michael Edison System and method for communicating with a device
JP2002351680A (ja) * 2001-05-29 2002-12-06 Matsushita Electric Ind Co Ltd アプリケーション管理装置とアプリケーション管理システム
US7409420B2 (en) * 2001-07-16 2008-08-05 Bea Systems, Inc. Method and apparatus for session replication and failover
US6918013B2 (en) 2001-07-16 2005-07-12 Bea Systems, Inc. System and method for flushing bean cache
US7702791B2 (en) * 2001-07-16 2010-04-20 Bea Systems, Inc. Hardware load-balancing apparatus for session replication
US20030023898A1 (en) * 2001-07-16 2003-01-30 Jacobs Dean Bernard Layered architecture for data replication
US7571215B2 (en) * 2001-07-16 2009-08-04 Bea Systems, Inc. Data replication protocol
US7028030B2 (en) * 2001-08-30 2006-04-11 Bea Systems, Inc. Cluster caching with concurrency checking
US20030046230A1 (en) * 2001-08-30 2003-03-06 Jacobs Dean Bernard Method for maintaining account consistency
US7113980B2 (en) 2001-09-06 2006-09-26 Bea Systems, Inc. Exactly once JMS communication
US20030051019A1 (en) * 2001-09-07 2003-03-13 Tom Oswald Repository system and method for controlling an embedded device
US6978278B2 (en) * 2002-01-18 2005-12-20 Bea Systems, Inc. System and method for heterogeneous caching
US6898587B2 (en) * 2002-01-18 2005-05-24 Bea Systems, Inc. System and method for performing commutative operations in data access systems
US7020684B2 (en) * 2002-01-18 2006-03-28 Bea Systems, Inc. System and method for optimistic caching
US7930704B2 (en) * 2002-02-06 2011-04-19 Oracle International Corporation J2EE component extension architecture
US20030163761A1 (en) * 2002-02-21 2003-08-28 Michael Chen System and method for message driven bean service migration
US7392302B2 (en) * 2002-02-21 2008-06-24 Bea Systems, Inc. Systems and methods for automated service migration
US7152181B2 (en) * 2002-02-22 2006-12-19 Bea Systems, Inc. Method for highly available transaction recovery for transaction processing systems
US7178050B2 (en) * 2002-02-22 2007-02-13 Bea Systems, Inc. System for highly available transaction recovery for transaction processing systems
US20040003018A1 (en) * 2002-06-26 2004-01-01 Pentkovski Vladimir M. Method and system for efficient handlings of serial and parallel java operations
US7526482B2 (en) * 2002-08-01 2009-04-28 Xerox Corporation System and method for enabling components on arbitrary networks to communicate
US7698434B2 (en) * 2002-08-29 2010-04-13 Bea Systems, Inc. J2EE connector architecture
US7089340B2 (en) * 2002-12-31 2006-08-08 Intel Corporation Hardware management of java threads utilizing a thread processor to manage a plurality of active threads with synchronization primitives
US8131739B2 (en) * 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US7590643B2 (en) 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US7483915B2 (en) * 2003-08-21 2009-01-27 Microsoft Corporation Systems and method for representing relationships between units of information manageable by a hardware/software interface system
US7349913B2 (en) * 2003-08-21 2008-03-25 Microsoft Corporation Storage platform for organizing, searching, and sharing data
US7555497B2 (en) * 2003-08-21 2009-06-30 Microsoft Corporation Systems and methods for separating units of information manageable by a hardware/software interface system from their physical organization
US7401104B2 (en) 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US8238696B2 (en) * 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US7428546B2 (en) * 2003-08-21 2008-09-23 Microsoft Corporation Systems and methods for data modeling in an item-based storage platform
US20050055354A1 (en) * 2003-08-21 2005-03-10 Microsoft Corporation Systems and methods for representing units of information manageable by a hardware/software interface system but independent of physical representation
US7739316B2 (en) * 2003-08-21 2010-06-15 Microsoft Corporation Systems and methods for the implementation of base schema for organizing units of information manageable by a hardware/software interface system
US7721276B2 (en) * 2004-02-20 2010-05-18 International Business Machines Corporation Computer-implemented method, system and program product for comparing application program interfaces (APIs) between JAVA byte code releases
US7761923B2 (en) 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
US7778962B2 (en) * 2004-04-30 2010-08-17 Microsoft Corporation Client store synchronization through intermediary store change packets
US7660824B2 (en) * 2004-05-20 2010-02-09 Bea Systems, Inc. System and method for performing batch configuration changes
DE102004041395A1 (de) * 2004-08-26 2006-03-09 Siemens Ag Erzeugung dynamischer Webinhalte
GB0422294D0 (en) * 2004-10-07 2004-11-10 Ibm Accessing a data structure
US8255435B2 (en) * 2004-10-07 2012-08-28 International Business Machines Corporation Detecting memory management anti-patterns
US8060683B2 (en) * 2004-12-17 2011-11-15 International Business Machines Corporation System, method and program to preserve a cache of a virtual machine
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US7805422B2 (en) 2005-02-28 2010-09-28 Microsoft Corporation Change notification query multiplexing
WO2007123753A2 (en) 2006-03-30 2007-11-01 Invensys Systems, Inc. Digital data processing apparatus and methods for improving plant performance
US7761487B2 (en) * 2006-12-13 2010-07-20 Computer Associates Think, Inc. Predicting out of memory conditions using soft references
EP2304536A4 (en) 2008-06-20 2012-08-15 Invensys Sys Inc SYSTEMS AND METHOD FOR IMMERSIBLE INTERACTION WITH ACTUAL AND / OR SIMULATED DEVICES FOR PROCESS, ENVIRONMENTAL AND INDUSTRIAL CONTROL
US8726269B2 (en) * 2009-04-14 2014-05-13 Dell Products L.P. Method to enable application sharing on embedded hypervisors by installing only application context
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US10061701B2 (en) * 2010-04-26 2018-08-28 International Business Machines Corporation Sharing of class data among virtual machine applications running on guests in virtualized environment using memory management facility
US8448023B2 (en) 2010-04-30 2013-05-21 Honeywell International Inc. Approach for data integrity in an embedded device environment
CN103488581B (zh) * 2013-09-04 2016-01-13 用友网络科技股份有限公司 数据缓存系统和数据缓存方法
CN105843646B (zh) * 2016-03-25 2019-03-15 百度在线网络技术(北京)有限公司 启动应用的方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790669A (en) * 1996-07-01 1998-08-04 Sun Microsystems, Inc. Lightweight non-repudiation system and method
US5956487A (en) * 1996-10-25 1999-09-21 Hewlett-Packard Company Embedding web access mechanism in an appliance for user interface functions including a web server and web browser
GB2318665B (en) * 1996-10-28 2000-06-28 Altera Corp Work group computing for electronic design automation
US5991795A (en) * 1997-04-18 1999-11-23 Emware, Inc. Communication system and methods using dynamic expansion for computer networks
US6185491B1 (en) * 1998-07-31 2001-02-06 Sun Microsystems, Inc. Networked vehicle controlling attached devices using JavaBeans™

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004021526A (ja) * 2002-06-14 2004-01-22 Toshiba Corp 通信システム、機器情報更新方法、機器情報更新プログラム及び通信装置
WO2007013280A1 (ja) * 2005-07-29 2007-02-01 Access Co., Ltd. プラグインモジュール実行方法、ブラウザ実行方法、メーラ実行方法、プログラム、端末装置、及び、ページデータが記録されたコンピュータ読み取り可能な記録媒体
JPWO2007013280A1 (ja) * 2005-07-29 2009-02-05 株式会社Access プラグインモジュール実行方法、ブラウザ実行方法、メーラ実行方法、プログラム、端末装置、及び、ページデータが記録されたコンピュータ読み取り可能な記録媒体

Also Published As

Publication number Publication date
US6430564B1 (en) 2002-08-06

Similar Documents

Publication Publication Date Title
US6430564B1 (en) Java data manager for embedded device
US6886017B1 (en) System and method for managing distribution of content to a device
JP3967806B2 (ja) リソースの位置を指名するためのコンピュータ化された方法及びリソース指名機構
US6895586B1 (en) Enterprise management system and method which includes a common enterprise-wide namespace and prototype-based hierarchical inheritance
US7243346B1 (en) Customized library management system
US7062516B2 (en) Methods, systems, and articles of manufacture for implementing a runtime logging service storage infrastructure
US7685367B2 (en) Multi-cache cooperation for response output caching
JP2000250758A (ja) 組込み機器用Javaアプリケーションマネージャ
RU2373567C2 (ru) Общая модель зависимости для аннулирования элементов кэша
JP3688571B2 (ja) 情報処理装置
KR20060123078A (ko) 포인터들의 업데이트를 제어하는 파일 이동 히스토리
WO2004061658A2 (en) Persistent cache apparatus and methods
JP2001517836A (ja) 1つの記憶媒体の名称空間を別の記憶媒体の名称空間に移植する場合に既定のアクションを実行するシステムおよび方法
JP2024177162A (ja) 複数のチェーンを使用した共有キャッシュ内のオブジェクトの管理
CN101095111A (zh) 一种维护计算装置中的应用程序的方法
US6748373B2 (en) System and method for adaptively optimizing queries
JP5886901B2 (ja) 装置へのコンテンツの分配を管理するシステムと方法とプログラムを提供する記憶媒体
US7349942B1 (en) Storage medium having a manageable file directory structure
JP2004302564A (ja) ネームサービス提供方法及びその実施装置並びにその処理プログラム
US7389515B1 (en) Application deflation system and method
JP5428455B2 (ja) 仮想マシンサーバ、仮想マシン制御方法及び仮想マシン制御プログラム
US11669318B2 (en) Rapid software provisioning and patching
Picco et al. Exploiting transiently shared tuple spaces for location transparent code mobility
US7676475B2 (en) System and method for efficient meta-data driven instrumentation
US9118697B1 (en) System and method for integrating namespace management and storage management in a storage system environment