JP2001147826A - 一次メモリのハッシュインデックスからオブジェクトをロードするための装置及び方法 - Google Patents

一次メモリのハッシュインデックスからオブジェクトをロードするための装置及び方法

Info

Publication number
JP2001147826A
JP2001147826A JP2000282658A JP2000282658A JP2001147826A JP 2001147826 A JP2001147826 A JP 2001147826A JP 2000282658 A JP2000282658 A JP 2000282658A JP 2000282658 A JP2000282658 A JP 2000282658A JP 2001147826 A JP2001147826 A JP 2001147826A
Authority
JP
Japan
Prior art keywords
hash value
hash
primary memory
directory
index
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
JP2000282658A
Other languages
English (en)
Inventor
Graham Hamilton
ハミルトン グレイアム
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 JP2001147826A publication Critical patent/JP2001147826A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 比較的小さな一次メモリフートプリントを有
する一次メモリインデックスからオブジェクトをロード
するための方法の提供。 【解決手段】 一次メモリからオブジェクトをロードす
る方法は、一連のハッシュ値を特定したハッシュインデ
ックスを作り出すために、リストされたオブジェクトに
関するハッシュ値を作成する段階を含む。ハッシュイン
デックスは、一次メモリのハッシュインデックス・オブ
ジェクトディレクトリを形成するために一次メモリにロ
ードされる。算出されたハッシュ値は、呼出されたオブ
ジェクトに対して導き出される。算出されたハッシュ値
は、一次メモリのハッシュインデックス・オブジェクト
ディレクトリ内のハッシュ値と照合される。この照合オ
ペレーションに応答し、算出されたハッシュ値に対応す
るオブジェクトが一次メモリにロードされる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、全体的には、オブ
ジェクト指向ソフトウェア環境におけるソフトウェアオ
ブジェクトへのアクセスに関する。より詳細には、本発
明は、ソフトウェアオブジェクトにアクセスする方法に
関連する一次メモリのフットプリントを低減する技術に
関する。
【0002】
【従来技術】図1は、従来技術により構成されたコンピ
ュータ20を示す。コンピュータ20は中央処理装置2
2を備え、この中央処理装置22は、システムバス26
を通じ一連の入出力装置(例えば、キーボード、マウ
ス、ビデオモニター、プリンター等)24と通信する。
また、一次メモリ(例えば、RAMのような揮発性メモ
リ)28や二次メモリ(例えば、ディスクのような大容
量記憶装置)30もシステムバスに接続される。ニ次メ
モリは、一連のソフトウェアオブジェクト32を記憶し
ている。ソフトウェアオブジェクト32はオブジェクト
リスト34によって特徴が示され、このオブジェクトリ
スト34は、ヘッダーエントリ36及びこのヘッダーエ
ントリの短い特徴を示すための中央ディレクトリを含ん
でいる。
【0003】一次メモリ28に記憶されるアプリケーシ
ョンプログラム40は、中央処理装置22によって実行
される。アプリケーションプログラム40は、特定機能
を実行するためにオブジェクト32を呼出す。より詳細
には、アプリケーションプログラム40は、下述される
ようにオブジェクトリストの中央ディレクトリに基本的
に対応する一次メモリのオブジェクトインデックス42
にアクセスする。一次メモリのオブジェクトインデック
ス42によって、アプリケーションプログラム40は、
二次メモリ30に記憶されている呼出しオブジェクト3
2を確認してロードすることができる。呼出された後、
選択されたオブジェクト44は一次メモリ28内に留ま
る。
【0004】図2は、従来技術によるオブジェクトリス
ト34を示す。オブジェクトリスト34は、一連のオブ
ジェクトリストエントリ36A−36Nを含む。各エン
トリは、オブジェクト名50、ヘッダ52、及びデータ
54を含む。ヘッダ52は、オブジェクトのバージョ
ン、汎用ビットフラッグ、データ圧縮方法の情報、周期
冗長検査の解凍データ、圧縮データのサイズ、解凍デー
タのサイズ、ファイル名の長さ等の情報を含んでいる。
データ54には、オブジェクトに関連する命令やその他
の情報が含まれる。各エントリは比較的大きい可能性が
あるため、中央ディレクトリは、オブジェクトリスト3
4に関連付けられている。中央ディレクトリは、オブジ
ェクトリストのエントリ36Aー36Nに対応する一連
の中央ディレクトリのエントリ48A−48Nを含んで
いる。各中央ディレクトリエントリ48は、オブジェク
ト名50、及び対応するオブジェクトリストのエントリ
36の位置に関するポインタ60を含んでいる。
【0005】これまでに指摘されたように、一次メモリ
・オブジェクト・インデックス42は、通常、オブジェ
クトリスト34の中央ディレクトリ38として実行され
る。この方法の問題は、中央ディレクトリが、オブジェ
クト名、オブジェクトの位置、オブジェクトに関する他
の情報のような情報を含むため、中央ディレクトリが比
較的に大きなものになる可能性があるという点にある。
コンピュータの性能が一次メモリの効率的な使用に大き
く左右されることはよく知られている。特大の一次メモ
リ・オブジェクト・インデックスは、コンピュータ性能
を低下させる可能性がある。
【0006】前述の問題は、特定例との関連において更
に良く理解することができる。JAVATMは、本発明の
譲受人であるサンマイクロシステム社(米国カリフォル
ニア州マウンテンビュー)により開発されライセンス供
与されている周知のコンピュータ言語である。JAVA
TMで書き込まれるアプリケーション・プログラム40
は、大きなオブジェクトリストによりサポートされてい
る。オブジェクトリスト34の中央ディレクトリ38
は、起動クラスパス又はアプリケーションクラスパスを
介して走査され、その結果一次メモリ・オブジェクト・
インデックス42が構築される。結果としての一次メモ
リ・オブジェクト・インデックス42は比較的大きくな
る。
【0007】JAVA.開発キット(JDK.)は、開
発者がJAVA.プログラム言語を用いて書き込まれた
アプレットやアプリケーションをコンパイルしデバッグ
して実行するために必要なソフトウェアや手段を含むオ
ブジェクトリスト34である。JAVA ARCHIV
E(JAR)は、多くのファイルを1つ統合するコンピ
ュータシステムに依存しないファイル形式である。複数
のJAVA.アプレットやそれらの必須構成要素(例え
ば、クラスファイル、画像、及び音響)は、JARファ
イルとしてまとめられ、その後、単一のハイパーテキス
トロードプロトコル(HTTP)処理でウエブブラウザ
にダウンロードされることにより、ダウンロード速度を
大幅に改善することができる。JARファイル形式は、
JAVA.で使用される「ZIP」ファイル形式に基づ
くものである。「java.util.zip」は、標
準ZIPやGZIPファイル形式を読取ったり書き込ん
だりするためのクラスを備えている。「java.ut
il.jar」によって使用される「java.uti
l.zip」に関連するクラス一部は、収縮圧縮形式で
のデータ圧縮用の出力ストリームフィルタを与えるため
のクラスである「収縮出力ストリーム」、「収縮」圧縮
形式でのデータの解凍用のストリームフィルタを与える
ためのクラスである「膨張入力ストリーム」、ZIPフ
ァイルエントリを表現するためのクラスである「Zip
エントリ」、ZIPファイルからエントリを読み込むた
めのクラスである「Zipファイル」、及び例外を処理
するためのクラスである「Zipエクセプション」を含
んでいる。「java.util.zip」により使用
されるクラスの一部は、データのチェックサムを表すイ
ンターフェースである「チェックサム」、データストリ
ームの32ビット周期冗長検査を算定するために使用す
ることができるクラスである「CRC32」、及びZI
Pファイルエントリを表現するために使用されるクラス
である「Zipエントリ」を含んでいる。
【0008】JDK1.2において、起動クラスパス又
はアプリケーションクラスパス上の各ZIP又はJAR
ファイルに関して、そのファイルの中央ディレクトリ3
8が走査され、一次メモリ・オブジェクト・インデック
ス42が作り出される。従来技術において、中央ディレ
クトリ38からの全ての情報は一次メモリにロードされ
る。これはZIPファイルの名前を含んでいるが、それ
はZIPファイル内で補われる約24バイトの付加的情
報である。これにより、約424KBを占める一次メモ
リ・オブジェクト・インデックス42内に約4、500
のZIPエントリが生じる。付加的クラスがJAVA.
をサポートするために追加されるにつれ、この比較的大
きな一次メモリフートプリントがより大きくなることが
予測される。
【0009】
【発明が解決しようとする課題】前述した観点から、比
較的小さな一次メモリフートプリントを有する一次メモ
リインデックスからオブジェクトをロードするための手
法を提供することが強く望まれるであろう。このような
技術は、例えば、中核JAVA.クラスに関するZIP
インデックスの一次メモリフートプリントを低減するた
めに使用できると思われる。また、このような技術は、
大きなJAVAファイルを使用するアプリケーションに
使用することができると思われる。
【課題を解決するための手段】
【0010】一次メモリからオブジェクトをロードする
方法は、一連のハッシュ値を特定するハッシュインデッ
クスを作り出すために、リストされたオブジェクトに関
するハッシュ値を作成する段階を含む。ハッシュインデ
ックスは、一次メモリ・ハッシュインデックス・オブジ
ェクト・ディレクトリを形成するために一次メモリにロ
ードされる。算出されたハッシュ値(算出ハッシュ値)
は、一次メモリ・ハッシュインデックス・オブジェクト
・ディレクトリ内のハッシュ値と照合される。この照合
オペレーションへに応答して、算出ハッシュ値に対応す
るオブジェクトが一次メモリにロードされる。
【0011】コンピュータが読取り可能な媒体は、リス
トされたオブジェクトに関するハッシュ値を作成するた
めの実行可能命令を持つインデックス作成プログラムを
有しており、それによって一連のハッシュ値を特定する
ハッシュインデックスを作り出す。インデックス作成プ
ログラムは、一次メモリ・ハッシュインデックス・オブ
ジェクト・ディレクトリを形成するためにハッシュイン
デックスを一次メモリにロードする。オブジェクトロー
ドプログラムは、呼出されたオブジェクト(呼出しオブ
ジェクト)に関する算出ハッシュ値を導き出すための実
行可能命令を持っている。オブジェクトロードプログラ
ムは、算出ハッシュ値を一次メモリ・ハッシュインデッ
クス・オブジェクト・ディレクトリ内のハッシュ値と照
合させる。一致に応答し、オブジェクトロードプログラ
ムは、算出ハッシュ値に対応するオブジェクトを一次メ
モリにロードする。
【0012】本発明は比較的に小さな一次メモリフート
プリントを有する一次メモリインデックスからオブジェ
クトをロードするための手法を提供する。本発明の手法
は、中核JAVATMクラスに関するZIPインデックス
の一次メモリフートプリントを低減するために使用する
と有利である。また、このような手法は、大きなJAR
ファイルを使用するアプリケーションに対しても利用す
ることができる。
【0013】
【発明の実施の形態】本発明をより理解するために、添
付図面を参照しながら以下の詳細な説明を行う。尚、各
図面を通じ同じ参照番号は対応する部分を示す。図3
は、本発明の実施形態によって構成されたコンピュータ
70を示す。コンピュータ70は、図1の従来のコンピ
ュータ20の多くの構成要素を含んでいる。特に、コン
ピュータ70は、システムバス26を通じて一連の入出
力装置(例えば、キーボード、マウス、ビデオモニタ
ー、プリンター等)24と通信する中央処理装置22を
備えている。また、一次メモリ(例えば、RAMのよう
な揮発性メモリ)28及びニ次メモリ(例えば、ディス
クのような大容量記憶装置)30もシステムバス26に
接続されている。二次メモリは、一連のソフトウェアオ
ブジェクト32を記憶している。ソフトウェアオブジェ
クト32は、オブジェクトリスト34によって特徴が示
され、このオブジェクトリスト34は、ヘッダーエント
リ36及びこのヘッダーエントリ36の短い特徴を示す
ための中央ディレクトリを含んでいる。
【0014】一次メモリ28に記憶されるアプリケーシ
ョンプログラム40は、中央処理装置22によって実行
される。アプリケーションプログラム40は、特定機能
を実行するためにオブジェクト32を呼出す。ここまで
に説明されたコンピュータ70の構造や機能は、図1の
コンピュータ20と合致するものである。しかしなが
ら、図3のコンピュータ70は、オブジェクトをロード
するための異なる手法を持っている。特に、コンピュー
タ70の一次メモリ28は、比較的小さな一次メモリフ
ートプリントを有する一次メモリ・ハッシュインデック
ス・オブジェクトディレクトリ86を作り出すために使
用されるインデックス作成プログラム84を含んでい
る。以下に説明するように、一次メモリ・ハッシュイン
デックス・オブジェクトディレクトリ86は、オブジェ
クト名毎のハッシュ値を持っている。このハッシュ値
は、オブジェクト名のよりコンパクトな表現を実質的に
行う。また、一次メモリ28は、オブジェクトロードプ
ログラム88を持っている。オブジェクトロードプログ
ラム88は、アプリケーションプログラム40によって
利用されるオブジェクトを選択的にロードするためにハ
ッシュインデックス・オブジェクトディレクトリ86を
処理する。また図3は、本発明の一次メモリ・ハッシュ
インデックス・オブジェクトディレクトリに基づいてロ
ードされる選択オブジェクト90を示す。
【0015】本発明の一次メモリ・ハッシュインデック
ス・オブジェクトディレクトリ86は、従来の一次メモ
リ・オブジェクトインデックス42に関連する一次メモ
リフートプリントの約4分の1の一次メモリフートプリ
ントを備えている。本発明では、約424KBから約1
00KBまでJDKZIPファイルの一次メモリフート
プリントを低減することが実施された。一次メモリ28
の空間を確保する重要性、特に比較的小さなコンピュー
タ上での比較的小さなアプリケーションプログラムを実
行する場合における重要性については当業者であれば理
解し得ることである。JDKの場合のように、オブジェ
クトリストの大きさが増すにつれて、本発明の技術はよ
り重要なものとなる。本発明は、エントリの一部分のみ
が使用される大きなJARファイルに関連してうまく活
用される。
【0016】本発明の全体的な特質や利点が説明され
た。ここで、本発明のより詳細部分の説明を行う。図4
は、本発明のインデックス作成プログラム84と関連し
た処理段階を示す。インデックス作成プログラム84に
関連した第一の処理段階は、中央ディレクトリ内のオブ
ジェクト毎のハッシュ値及び対応するオブジェクトの位
置値を作成することである(段階100)。つまり、イ
ンデックス作成プログラムは、オブジェクトリスト34
の中央ディレクトリ38を走査する。オブジェクトリス
ト34の各オブジェクト名50は、ハッシュ値に変換さ
れる。当技術分野で知られているように、ハッシュ関数
はハッシュ値を作り出す。ハッシュ関数は、関数のドメ
インを、インデックスに各々が関連付けられたk個の領
域に区分化する。周知のハッシュ関数のいくつでも、本
発明によるオブジェクト名50のハッシュ値を作り出す
ために使用することができる。オブジェクト毎のハッシ
ュ値及び対応するオブジェクト位置値を作成した後、そ
の情報は、一次メモリ・ハッシュインデックス・オブジ
ェクトディレクトリを形成するために一次メモリにロー
ドされる(段階102)。
【0017】図5は、本発明の実施形態による一次メモ
リ・ハッシュインデックス・オブジェクトディレクトリ
86を示す。一次メモリ・ハッシュインデックス・オブ
ジェクトディレクトリ86は、一連のハッシュインデッ
クスエントリ108A−108Nを含んでいる。各ハッ
シュインデックスエントリ108は、オブジェクト名5
0に対応するハッシュ値104を含む。また、各ハッシ
ュ値104は、オブジェクトに関する情報をより分かり
易く指示するポインタ又は類似機能を持つ。
【0018】ハッシュインデックス・オブジェクトディ
レクトリが一次メモリにロードされると、オブジェクト
ロードプログラム88は、ハッシュインデックス・オブ
ジェクトディレクトリに基づいて選択されたオブジェク
ト90をロードすることができる。図6は、本発明のオ
ブジェクトロードプログラム88に関連した処理段階を
示す。オブジェクトロードプログラム88に関連する第
一の処理段階は、呼出されたオブジェクト(呼出しオブ
ジェクト)に関する算出されたハッシュ値(算出ハッシ
ュ値)を導き出すことである(段階110)。次に、算
出ハッシュ値は、一次メモリ・ハッシュインデックス・
オブジェクトディレクトリ内のエントリと照合される
(段階112)。ハッシュの一致が確認された後、ハッ
シュ値に対応したオブジェクトが実際に呼出しオブジェ
クトであることを確認するために、オブジェクトの付加
的パラメータ情報が使用される(段階114)。従っ
て、例えば、各ハッシュ値104に関連するポインタ1
06は、適当なオブジェクトが選択されたことを確かめ
るために用いることができるヘッダ情報52Bを確認す
るために使用可能である。パラメータが一致しないとい
う比較的希なケースでは、処理は段階112に戻り新た
なハッシュ照合の確認が行なわれる。
【0019】オブジェクトパラメータ照合オペレーショ
ン(段階114)が条件を満足する場合、呼出しオブジ
ェクトに関する適当なハッシュ値が確認された。この場
合、ハッシュ値104に関連するポインタ106は、呼
出しオブジェクトにアクセスし、それを一次メモリにロ
ードするために使用される(段階116)。
【0020】本発明は、32ビットハッシュ関数を使用
して実行された。32ビットハッシュコードに関する誤
ったヒットはほとんどなかった。時折、誤ったヒットが
起こる可能性はあるが、これは実際には性能面で問題と
はならない。誤ったヒットの場合であっても、段階11
4のオブジェクトパラメータ照合オペレーションを通し
て正しいオブジェクトが見付けられる。意外にも、段階
114のオブジェクトパラメータ照合オペレーション
が、ヘッダーエントリ36に対する余分な読み込みオペ
レーションから生じる性能低下を招かない。この理由
は、通常の場合、本発明の手法が従来方法と同数の読み
込みをするからである。従来技術において、中央ディレ
クトリ38は各ヘッダ52の最初の部分にポインタを付
与する。ヘッダ52の長さは可変である。従って、従来
のコードは、ヘッダの長さを決めなくてはならず、従っ
て関連するヘッダ情報の実際の開始点も決定する必要が
ある。
【0021】ハッシュインデックス・オブジェクトディ
レクトリ86が、直近に引用されたハッシュ値104及
び関連するポインタ106を記憶するためのキャッシュ
セルを含む場合、本発明はより効率的に動作する。好ま
しくは、オブジェクトロードプログラム88は、最初
に、ハッシュの一致を確認するためにキャッシュセルを
サーチする(段階112)。次に、オブジェクトパラメ
ータが照合され(段階114)、オブジェクトがロード
される(段階116)。実際には、ハッシュインデック
ス・オブジェクトディレクトリ86は、比較的高いヒッ
ト率を実現している。
【0022】図7は本発明を実践するための代替装置を
示す。図7は、図3に対応するものであるが、記憶装置
121、通信インターフェース回路122、ネットワー
クリンク、及びネットワーク126を備えている。一次
メモリ28及び二次メモリ30に記憶されているプログ
ラムは、記憶装置121に関連するコンピュータが読み
込み可能な媒体からダウンロードすることができ、その
代わりに記憶装置121に関連するコンピュータが読み
込み可能な媒体から実行することができる。「コンピュ
ータが読み込み可能な媒体」という用語は、実行のため
に処理装置22に命令を与えることに関与する全ての媒
体を指す。そのような媒体は、これらに限定されること
はないが、不揮発性媒体、揮発性媒体及び伝送媒体を含
む多くの形式を採ることができる。例えば、不揮発性媒
体としては、記憶装置121に関連する光学又は磁気デ
ィスクがある。揮発性媒体としてはダイナミックメモリ
がある。伝送媒体には、バス26を構成するワイヤーを
含めて、同軸ケーブル、銅線ケーブル及び光ファイバー
がある。また、伝送媒体としては、電波及び赤外線デー
タ通信時に作成されるような音響又は光波の形式を採る
ことができる。
【0023】例えば、コンピュータが読取り可能な媒体
の通常の形式には、例えば、フロッピー(登録商標)デ
ィスク、フレキシブルディスク、ハードディスク、磁気
テープ又は他の磁気媒体、CD−ROMその他の光学媒
体、パンチカード、紙テープ、その他の穿孔パターンを
伴った物理的媒体、RAM,PROM,EPROM、F
LASH-EPROM、その他のメモリチップやカート
リッジ、下述される搬送波、又はコンピュータが読取り
可能なその他のあらゆる媒体がある。
【0024】コンピュータが読取り可能な媒体の多くの
形式は、実行のために処理装置22に対する1つ又はそ
れ以上の命令の1つ又はそれ以上のシーケンスを伝える
ことに関与することができる。例えば、命令は、まず遠
隔コンピュータの磁気ディスクに入れることができる。
遠隔コンピュータは、その命令を自身のダイナミックメ
モリにロードし、モデム使って電話線を通して命令を送
信することができる。コンピュータシステム120に付
設されたモデムは、電話回線上のデータを受信したり、
データを赤外線信号に変換するために赤外線送信機を使
用したりすることができる。バス26に結合された赤外
線検出器は、赤外線信号に搬送されたデータを受信し、
そのデータをバス上に置くことができる。次に、バス2
6は、このデータを一次メモリ28又は二次メモリ30
に送り、そこから処理装置22が命令を取出し実行す
る。この命令は、処理装置22による命令の前か後かに
記憶装置121に随意に記憶することができる。
【0025】また、コンピュータシステム120は、バ
ス26に結合された通信インターフェース回路122を
備える。通信インターフェース回路122は、ネットワ
ーク126に接続されたネットワークリンク124に結
合された双方向データ通信を可能とする。例えば、通信
インターフェース回路122は、対応したタイプの電話
回線にデータ通信接点を行う統合ディジタルネットワー
ク(ISDN)カード又はモデムとすることができる。
その他の例として、通信インターフェース回路122
は、互換LANにデータ通信接続を行うローカルネット
ワーク(LAN)カードとすることができる。また、無
線接続も実施することができる。そのような実施におい
て、通信インターフェース回路122は、様々なタイプ
の情報を表わすディジタルデータストリームを搬送する
電気的、電磁気的又は光学的信号を送受信する。
【0026】ネットワークリンク124は、通常、ネッ
トワーク126に代表される1つ若しくはそれ以上のネ
ットワークを通したデータ通信を提供する。例えば、ネ
ットワークリンク124は、インターネットサービスプ
ロバイダ(ISP)として操作されるホストコンピュー
タを含むネットワーク126に対する接続を行う。次
に、ISPは、現在一般的に「インターネット」と呼ば
れる世界的パケットデータ通信ネットワークを介してデ
ータ通信サービスを提供する。ネットワーク126は、
ディジタルデータストリームを搬送する電気的、電磁気
的又は光学的信号を使用する。様々なネットワークを介
した信号、コンピュータシステム120から又はそれに
ディジタルデータを搬送するネットワークリンク124
上及び通信インターフェース回路122を介した信号
は、情報を運ぶ搬送波の例示的形式である。
【0027】コンピュータシステム120は、ネットワ
ーク126や、ネットワークリンク124及び通信イン
ターフェース回路122を介して、プログラムコードを
含むデータの送受信を行うことができる。インターネッ
トの例において、ネットワーク126上のサーバは、ネ
ットワーク126、ネットワークリンク124及び通信
インターフェース回路122を介してアプリケーション
プログラムに要求されたコードを送ることができる。受
信されたコードが受信及び/又はその後の実行のために
記憶装置121又はその他の不揮発性記憶装置に記憶さ
れるように、処理装置22によって実行することができ
る。この方法で、コンピュータシステム120は、搬送
波の形式でアプリケーションプログラムコードを得るこ
とができる。
【0028】説明を目的とし、上記記述は本発明の全体
的な理解を促すために特定の術語を使用した。しかしな
がら、本発明を実施するために具体的な詳細な説明が不
要であることは当業者には明らかである。他の例では、
周知の回路や装置は、基本とする発明から必要以上発散
しないようにブロック図形式で示される。従って、本発
明の特定の実施形態に関する上記記述は、例示又は説明
を目的として示されたものである。それらは、排除的な
もの即ち本発明を開示された厳密な形式に限定すること
を意図したものではなく、上記の教示から多くの変更や
変形が可能であることは明らかである。実施形態は、本
発明の原理及びその実際の応用を十分説明するため、従
って、計画された特定の用途に好適な形で本発明及び様
々な変更を伴う様々な実施形態を当業者が最適な形で利
用できるようにするために、選択し説明された。本発明
の範囲は、特許請求の範囲及びそれらの均等物のよって
定義されることが意図されている。
【図面の簡単な説明】
【図1】比較的大きい一次メモリのオブジェクトインデ
ックスを有する従来のコンピュータを示す図である。
【図2】従来技術によるオブジェクトリストの形式を示
す図である。
【図3】本発明によるハッシュインデックス・オブジェ
クトディレクトリを有するコンピュータシステムを示す
図である。
【図4】本発明の実施形態によって構成されたインデッ
クス作成プログラムに関連した処理段階を示す図であ
る。
【図5】本発明の実施形態によって構成されたハッシュ
インデックス・オブジェクトディレクトリを示す図であ
る。
【図6】本発明の実施形態によって構成されたオブジェ
クトロードプログラムを示す図である。
【図7】本発明の実施形態によるコンピュータネットワ
ークの一部を形成するハッシュインデックス・オブジェ
クトディレクトリを有するコンピュータシステムを示す
図である。
【符号の説明】
22:中央処理装置(CPU) 28:一次メモリ 30:二次メモリ 32:オブジェクト 34:オブジェクトリスト 36:ヘッダエントリ 38:中央ディレクトリ 40:アプリケーションプログラム 84:インデックス生成プログラム 84:ハッシュインデックス・オブジェクトディレクト
リ 88:オブジェクトロードプログラム 90:選択されたオブジェクト
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 グレイアム ハミルトン アメリカ合衆国 カリフォルニア州 94303 パロ アルト ディヴィッド コ ート 3143

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 一次メモリからソフトウェアオブジェク
    トをロードする方法であって、 リストされたオブジェクトのハッシュ値を作成する段
    階、 前記ハッシュ値とリストされたオブジェクトの位置値と
    を組合せる段階、 複数のハッシュ値及び対応するリストされたオブジェク
    トの位置値を特定するハッシュインデックスを作成する
    ために、前記作成する段階及び前記組合せる段階を繰り
    返す段階、 一次メモリ・ハッシュインデックス・オブジェクトディ
    レクトリを形成するために、前記ハッシュインデックス
    を一次メモリにロードする段階、 呼出しオブジェクトに関する算出ハッシュ値を導き出す
    段階、 前記算出ハッシュ値を、前記一次メモリ・ハッシュイン
    デックス・オブジェクトディレクトリ内のハッシュ値と
    照合する段階、及び前記照合する段階に応答し、前記算
    出ハッシュ値に対応するオブジェクトをロードする段階
    を含むことを特徴とする方法。
  2. 【請求項2】 前記作成する段階は、オブジェクトをリ
    ストする中央ディレクトリ内にリストされたオブジェク
    トに関するハッシュ値を作成する段階を含むことを特徴
    とする請求項1に記載の方法。
  3. 【請求項3】 前記作成する段階は、JAVA(登録商
    標)言語ZIP形式ファイルである中央ディレクトリ内
    のリストされたオブジェクトに関するハッシュ値を作成
    する段階を含むことを特徴とする請求項2に記載の方
    法。
  4. 【請求項4】 前記作成する段階は、JAVAアーカイ
    ブ形式ファイルである中央ディレクトリ内のリストされ
    たオブジェクトに関するハッシュ値を作成する段階を含
    むことを特徴とする請求項3に記載の方法。
  5. 【請求項5】 前記照合する段階は、前記算出ハッシュ
    値と目標オブジェクトに関連するリストされたオブジェ
    クトのハッシュ値との間でハッシュの一致を確認するた
    めに、前記算出ハッシュ値と前記一次メモリ・ハッシュ
    インデックス・オブジェクトディレクトリ内のハッシュ
    値とを比較する段階、及び前記呼出しオブジェクトに関
    するオブジェクトパラメータ情報が、前記目標オブジェ
    クトに関するオブジェクトパラメータ情報と一致してい
    ることを確認する段階を含むことを特徴とする請求項1
    に記載の方法。
  6. 【請求項6】 前記照合する段階は、前記算出ハッシュ
    値と目標オブジェクトに関連するリストされたオブジェ
    クトのハッシュ値との間でハッシュの一致を確認するた
    めに、前記算出ハッシュ値と一次メモリ・ハッシュイン
    デックス・オブジェクトディレクトリ内のハッシュ値と
    を比較する段階、 前記呼出しオブジェクトに関するオブジェクトパラメー
    タ情報が、前記目標オブジェクトに関するオブジェクト
    パラメータ情報と一致しない場合を確認する段階、及び
    前記確認する段階に応答し、前記比較する段階を繰り返
    す段階を含むことを特徴とする請求項1に記載の方法。
  7. 【請求項7】 前記照合する段階は、前記算出ハッシュ
    値を、前記一次メモリ・ハッシュインデックス・オブジ
    ェクトディレクトリのキャッシュセル内のハッシュ値と
    照合する段階を含むことを特徴とする請求項1に記載の
    方法。
  8. 【請求項8】 一次メモリからのオブジェクトのロード
    を調整するためのコンピュータが読取り可能な媒体であ
    って、 リストされたオブジェクトに関するハッシュ値を作成す
    る第一モジュール、 前記ハッシュ値とリストされたオブジェクトの位置値と
    を組合せる第二モジュール、 複数のハッシュ値及び対応するリストされたオブジェク
    トの位置値を特定するハッシュインデックスを作成する
    ために前記第一モジュールと前記第二モジュールとを呼
    出す第三モジュール、及び一次メモリ・ハッシュインデ
    ックス・オブジェクトディレクトリを形成するために、
    前記ハッシュインデックスを一次メモリにロードする第
    四モジュールを含む実行可能命令を有するインデックス
    生成プログラム、及び呼出しオブジェクトに関する算出
    ハッシュ値を導き出す第五モジュール、 前記算出ハッシュ値を、前記一次メモリ・ハッシュイン
    デックス・オブジェクトディレクトリ内のハッシュ値と
    を照合する第六モジュール、及び前記照合に応答し、前
    記算出ハッシュ値に対応するオブジェクトをロードする
    第七モジュールを含む実行可能命令を有するオブジェク
    トロードプログラムを備えた媒体。
  9. 【請求項9】 前記第一モジュールは、オブジェクトを
    リストする中央ディレクトリ内のリストされたオブジェ
    クトに関するハッシュ値を作成するための実行可能命令
    を含むことを特徴とする請求項8に記載の装置。
  10. 【請求項10】 前記第一モジュールは、JAVA言語
    ZIP形式ファイルである中央ディレクトリ内のリスト
    されたオブジェクトに関するハッシュ値を作成するため
    の実行可能命令を含むことを特徴とする請求項9に記載
    の装置。
  11. 【請求項11】 前記第一モジュールは、JAVAアー
    カイブ形式ファイルである中央ディレクトリ内のリスト
    されたオブジェクトに関するハッシュ値を作成するため
    の実行可能命令を含むことを特徴とする請求項10に記
    載の装置。
  12. 【請求項12】 前記第六モジュールは、 前記算出ハッシュ値と目標オブジェクトに関連するリス
    トされたオブジェクトハッシュ値との間でハッシュの一
    致を確認するために、前記算出ハッシュ値と前記一次メ
    モリ・ハッシュインデックス・オブジェクトディレクト
    リ内のハッシュ値とを比較し、更に前記呼出しオブジェ
    クトに関するオブジェクトパラメータ情報が前記目標オ
    ブジェクトに関するオブジェクトパラメータ情報と一致
    することを確認するための実行可能命令を含むことを特
    徴とする請求項8に記載の装置。
  13. 【請求項13】 前記の第六モジュールは、 前記算出ハッシュ値と目標オブジェクトに関連するリス
    トされたオブジェクトハッシュ値との間でハッシュの一
    致を確認するために、前記算出ハッシュ値と前記一次メ
    モリ・ハッシュインデックス・オブジェクトディレクト
    リ内のハッシュ値とを比較し、 前記呼出しオブジェクトに関するオブジェクトパラメー
    タ情報が前記目標オブジェクトに関するオブジェクトパ
    ラメータ情報と一致しない場合を確認し、更に前記確認
    オペレーションに応答し、前記の比較オペレーションを
    繰り返すための実行可能命令を含むことを特徴とする請
    求項8に記載の装置。
  14. 【請求項14】 前記第六モジュールは、前記算出ハッ
    シュ値を、前記一次メモリ・ハッシュインデックス・オ
    ブジェクトディレクトリのキャッシュセル内に記憶され
    たハッシュ値と照合するための実行可能命令を含むこと
    を特徴とする請求項8に記載の装置。
JP2000282658A 1999-08-13 2000-08-14 一次メモリのハッシュインデックスからオブジェクトをロードするための装置及び方法 Pending JP2001147826A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/374,158 US6324637B1 (en) 1999-08-13 1999-08-13 Apparatus and method for loading objects from a primary memory hash index
US09/374158 1999-08-13

Publications (1)

Publication Number Publication Date
JP2001147826A true JP2001147826A (ja) 2001-05-29

Family

ID=23475555

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000282658A Pending JP2001147826A (ja) 1999-08-13 2000-08-14 一次メモリのハッシュインデックスからオブジェクトをロードするための装置及び方法

Country Status (4)

Country Link
US (1) US6324637B1 (ja)
EP (1) EP1076301B1 (ja)
JP (1) JP2001147826A (ja)
DE (1) DE60033091T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008293033A (ja) * 2003-09-18 2008-12-04 Apple Inc インクリメンタルなコード署名の方法及び装置
US8364965B2 (en) 2006-03-15 2013-01-29 Apple Inc. Optimized integrity verification procedures
US9672350B2 (en) 2008-03-04 2017-06-06 Apple Inc. System and method of authorizing execution of software code based on at least one installed profile

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658492B1 (en) * 1998-03-20 2003-12-02 Sun Microsystems, Inc. System and method for reducing the footprint of preloaded classes
US6484250B1 (en) * 2000-01-19 2002-11-19 Qualcomm, Incorporated Hash technique eliminating pointer storage to reduce RAM size
US7124408B1 (en) * 2000-06-28 2006-10-17 Microsoft Corporation Binding by hash
US20020129351A1 (en) * 2001-03-07 2002-09-12 Nexusedge Technologies Pty. Ltd. Software engine and method for software application loading
US7096466B2 (en) 2001-03-26 2006-08-22 Sun Microsystems, Inc. Loading attribute for partial loading of class files into virtual machines
US6799185B2 (en) * 2001-05-09 2004-09-28 Sun Microsystems, Inc. Frameworks for accessing Java class files
US6907610B2 (en) 2001-06-15 2005-06-14 Microsoft Corporation System and method for building a target operating system from a source operating system
US6964033B2 (en) 2001-06-20 2005-11-08 Sun Microsystems, Inc. Object band customization of Java runtime environments
US7117489B2 (en) 2001-06-20 2006-10-03 Sun Microsystems, Inc. Optional attribute generator for customized Java programming environments
US20030120707A1 (en) * 2001-12-21 2003-06-26 Sander Bogdan Systems and methods for exporting functionality of a modularized system
US7478399B2 (en) 2003-04-21 2009-01-13 International Business Machines Corporation Method, system and program product for transferring program code between computer processes
US20050004937A1 (en) * 2003-05-12 2005-01-06 Colarik Andrew Michael Integrity mechanism for file transfer in communications networks
US8959125B2 (en) 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7809777B2 (en) * 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US7970803B2 (en) 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US7873683B2 (en) 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US7647630B2 (en) * 2005-12-15 2010-01-12 International Business Machines Corporation Associating security information with information objects in a data processing system
US20070143601A1 (en) 2005-12-15 2007-06-21 Arroyo Diana J System and method for authorizing information flows
US7512792B2 (en) * 2005-12-15 2009-03-31 International Business Machines Corporation Reference monitor method for enforcing information flow policies
US7908276B2 (en) 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US8566503B2 (en) 2006-08-25 2013-10-22 Qnx Software Systems Limited Multimedia filesystem having unified representation of content on diverse multimedia devices
US8543543B2 (en) * 2011-09-13 2013-09-24 Microsoft Corporation Hash-based file comparison
US20170134280A1 (en) * 2015-11-11 2017-05-11 Mastercard International Incorporated Method and system for validation of hashed data via acceptance frames
CN105550345B (zh) * 2015-12-25 2019-03-26 百度在线网络技术(北京)有限公司 文件操作方法和装置
US11327980B2 (en) 2020-04-21 2022-05-10 International Business Machines Corporation Cached updatable top-k index
US11755373B2 (en) 2020-10-07 2023-09-12 Oracle International Corporation Computation and storage of object identity hash values
US11386235B1 (en) * 2021-11-12 2022-07-12 Illuscio, Inc. Systems and methods for dynamic checksum generation and validation with customizable levels of integrity verification

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4215402A (en) * 1978-10-23 1980-07-29 International Business Machines Corporation Hash index table hash generator apparatus
US5511190A (en) * 1995-01-20 1996-04-23 Tandem Computers, Inc. Hash-based database grouping system and method
US5742807A (en) 1995-05-31 1998-04-21 Xerox Corporation Indexing system using one-way hash for document service
US5809494A (en) * 1995-11-16 1998-09-15 Applied Language Technologies, Inc. Method for rapidly and efficiently hashing records of large databases
US5754844A (en) 1995-12-14 1998-05-19 Sun Microsystems, Inc. Method and system for accessing chunks of data using matching of an access tab and hashing code to generate a suggested storage location
US5944781A (en) * 1996-05-30 1999-08-31 Sun Microsystems, Inc. Persistent executable object system and method
AUPO194696A0 (en) * 1996-08-28 1996-09-19 Canon Information Systems Research Australia Pty Ltd A method of efficiently updating hashed page tables
US5911144A (en) * 1997-04-23 1999-06-08 Sun Microsystems, Inc. Method and apparatus for optimizing the assignment of hash values to nodes residing in a garbage collected heap
US6067547A (en) * 1997-08-12 2000-05-23 Microsoft Corporation Hash table expansion and contraction for use with internal searching
US6044079A (en) * 1997-10-03 2000-03-28 International Business Machines Corporation Statistical packet discard
US6055538A (en) * 1997-12-22 2000-04-25 Hewlett Packard Company Methods and system for using web browser to search large collections of documents

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008293033A (ja) * 2003-09-18 2008-12-04 Apple Inc インクリメンタルなコード署名の方法及び装置
JP4664398B2 (ja) * 2003-09-18 2011-04-06 アップル インコーポレイテッド インクリメンタルなコード署名の方法及び装置
US8341422B2 (en) 2003-09-18 2012-12-25 Apple Inc. Method and apparatus for incremental code signing
US8880897B2 (en) 2003-09-18 2014-11-04 Apple Inc. Method and apparatus for incremental code signing
US8364965B2 (en) 2006-03-15 2013-01-29 Apple Inc. Optimized integrity verification procedures
US8886947B2 (en) 2006-03-15 2014-11-11 Apple Inc. Optimized integrity verification procedures
US9672350B2 (en) 2008-03-04 2017-06-06 Apple Inc. System and method of authorizing execution of software code based on at least one installed profile

Also Published As

Publication number Publication date
US6324637B1 (en) 2001-11-27
DE60033091T2 (de) 2007-07-05
EP1076301A2 (en) 2001-02-14
DE60033091D1 (de) 2007-03-15
EP1076301A3 (en) 2003-11-19
EP1076301B1 (en) 2007-01-24

Similar Documents

Publication Publication Date Title
JP2001147826A (ja) 一次メモリのハッシュインデックスからオブジェクトをロードするための装置及び方法
CN109766099B (zh) 前端源码编译方法、装置、存储介质及计算机设备
CN106598673B (zh) 一种应用程序升级方法及系统
CN110162964B (zh) 一种文件篡改的检查方法、装置及系统
EP3812889A1 (en) Method for generating difference between new and old data in order to update software, and device therefor
CN113946602A (zh) 数据查找方法、装置、设备和介质
CN111399860B (zh) 轻应用部署方法、装置、计算机设备和存储介质
CN111045698A (zh) 冗余图片的删除方法、装置、电子设备及存储介质
CN112286543B (zh) 一种应用服务部署方法及装置
CN111556127B (zh) 一种可穿戴设备升级方法及相关设备
JP4173862B2 (ja) 端末およびチップ・カード内に展開するアプリケーションのロード方法
CN112328284A (zh) 应用程序升级方法、系统、设备和存储介质
CN110147294B (zh) 调试信息的获取方法、装置、终端及计算机可读存储介质
CN113761412A (zh) 应用页面的显示方法、装置、电子设备、介质及应用系统
CN113535254A (zh) 一种微服务的处理方法、部署方法和相关装置
CN116069366A (zh) 客户端应用程序更新方法及装置、存储介质及电子设备
CN109002710B (zh) 一种检测方法、装置及计算机可读存储介质
JP5906906B2 (ja) ログ管理方法、ログ管理システムおよび情報処理装置
CN104217021A (zh) 阅读服务器、终端设备及其显示阅读内容的方法
CN112416386A (zh) 软件升级的方法、装置、系统以及介质
CN110825406A (zh) 一种软件升级的方法及相关设备
CN113127054B (zh) 一种文件处理方法和相关装置
CN117215965B (zh) 基于测试用例识别的测试方法、装置、电子设备和介质
CN117311853B (zh) Apk文件的处理方法、装置、计算机设备及存储介质
CN102955846B (zh) 文件收集方法与装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101118

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110414