JPH08508594A - 共用ライブラリ探索システム - Google Patents

共用ライブラリ探索システム

Info

Publication number
JPH08508594A
JPH08508594A JP6522026A JP52202694A JPH08508594A JP H08508594 A JPH08508594 A JP H08508594A JP 6522026 A JP6522026 A JP 6522026A JP 52202694 A JP52202694 A JP 52202694A JP H08508594 A JPH08508594 A JP H08508594A
Authority
JP
Japan
Prior art keywords
library
search
search objects
shared
shared library
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
JP6522026A
Other languages
English (en)
Other versions
JP3670278B2 (ja
Inventor
ヘニンガー,アンドリュー,ジー.
ナカノ,ラッセル,ティー.
Original Assignee
タリジェント インコーポレイテッド
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 タリジェント インコーポレイテッド filed Critical タリジェント インコーポレイテッド
Publication of JPH08508594A publication Critical patent/JPH08508594A/ja
Application granted granted Critical
Publication of JP3670278B2 publication Critical patent/JP3670278B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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
    • G06F9/44552Conflict resolution, i.e. enabling coexistence of conflicting executables

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)

Abstract

(57)【要約】 共用ライブラリ探索システムに関するもので、プログラムによって開始されたある共用ライブラリとリンクされた共用ライブラリを探索してロードするための方法および装置が開示されている。本発明によれば、その動作は、開始されたプログラムに必要な共用ライブラリ名の名前を判別することから開始される。そのあと、探索オブジェクトが使用されて、判断された名前に対応する物理共用ライブラリのロケーションを探し出し、そこまで到達する。共用ライブラリ名の各々に対応する該当のロケーションに到達すると、共用ライブラリ名の各々はそれぞれに対応する物理ロケーションにマッピングされる。そのあと、各物理共用ライブラリのロケーションの内容はプログラムの目的のためにロードすることができる。

Description

【発明の詳細な説明】 共用ライブラリ探索システム 関連特許出願の相互参照 本出願は、(i)米国特許出願(発明者Debra L.Orton、David B.Goldsmith、 Christopher P.Moeller、およびAndrew G.Heninger、発明の名称「オブジェクト 指向フレームワーク・システム」(Object Oriented Framework System)、1992 年12月23日出願、被譲渡人Taligent社)および(ii)米国特許出願(発明者Robe rt Dickinson、発明の名称「オブジェクト指向オペレーティング・システム」( Object Oriented Operating System)、1993年1月22日出願、被譲渡人Taligent )の関連出願であり、これらの開示事項は引用により本明細書の一部を構成する ものである。 発明の分野 本発明は、一般的には、共用ライブラリ(sharedlibraries)のローディング に関し、より具体的には、共用ライブラリ名を探索オブジェクト(searchobject )を使用して物理共用ライブラリのロケーショ ンと対応づける(マッピング)ことに関する。 発明の背景 ライブラリとは、あるロケーションにストアされたデータとコードの集まりで ある。ライブラリには古いデータ項目(アイテム)が保存されていると共に、新 しいデータ項目が受け入れられる。さらに、既存のデータ項目は動的であり、変 更を受ける対象になっている。1つのライブラリは、複数のバージョンがコンピ ュータ・システムに存在することもできる。 ライブラリは共用にすることも可能である。つまり、ライブラリは、複数のア プリケーションやプロセスが同時並行に使用することができる。そのようなライ ブラリは「共用ライブラリ」(shared library)と呼ばれている。 あるアプリケーションまたはプログラムが開始されるとき、そのプログラムを 実行するために必要なすべての共用ライブラリを「ロード」する必要がある。プ ログラムは、一般に、共用ライブラリの名前を参照する。そのために、プログラ ムの中で参照された共用ライブラリは、その共用ライブラリが従属する他のすべ ての共用ライブラリと共に、ローディングが行われる前に、探し出さなければな らない。 現在のコンピュータ・システムは、必要な共用ライ ブラリのロケーションを、プログラムによって参照された名前から効率よく確か めることができない。このようなことが起こるのは、現在のコンピュータ・シス テムには、共用ライブラリのロケーションを探し出す複雑な探索(サーチ)を行 う能力がないためである。さらに、現在のコンピュータ・システムは、共用ライ ブラリの複数のバージョンやコピーを区別することができない。さらに、現在の コンピュータ・システムは異なる共用ライブラリの互換性属性(compatibilitya ttributes)を正しく埋め合わせることができない。以上のように、本件出願人 が承知している従来技術によるシステムは、共用ライブラリをロードするときの 複雑さと効率性が不十分である。 発明の概要 本発明は、物理共用ライブラリのロケーションを共用ライブラリ名から効率よ く探索し、探し出す方法および装置を提供することによって、従来技術の上記欠 点を解消している。 本発明によれば、操作は、開始されたプログラムにとって必要な共用ライブラ リの名前を定めることから開始される。そのあと、探索オブジェクトが使用され て、定められた名前の各々に対応する物理ロケーションが探索されて、突き止め られる。チーム内に複数の 探索オブジェクトを編成することも可能である。ここでチーム(team)とは、ア ドレス空間(address space)およびそのアドレス空間内で実行される複数の実 行スレッド(thread)のことである。このようにすると、探索オブジェクトの集 合を、選択した順次順序で使用することにより、物理ロケーションを探し出すこ とができる。例えば、探索オブジェクトは、それがチームに追加されたときの順 序で連続的に使用することができる。 探索オブジェクトが共用ライブラリ名の各々に対応する該当の物理ロケーショ ンに到達すると、共用ライブラリ名の各々は、それぞれに対応する物理ロケーシ ョンにマッピングされる。そのあと、到達した物理共用ライブラリ・ロケーショ ンの内容は、プログラムの目的のためにロードすることができる。 図面の簡単な説明 本発明の上記および他の目的と利点は、添付図面を参照して以下に詳述する本 発明の好適実施例の説明から明らかにする。添付図面において、 第1図は、本発明によるコンピュータ・システムを示すブロック図である。 第2図は、本発明によるロジックの流れを示すフローチャートである。 第3図は、本発明による探索オブジェクトのクラス継承階層を示す図である。 第4図は、本発明に従って探索オブジェクトがたどっていく、名前付き共用ラ イブラリの探索を示すフローチャートである。 第5図は、本発明による例に従って、異なる互換性番号をもつ共用ライブラリ の例を示す図である。 発明の好適実施例の詳細説明 コンピュータ・システム 第1図は代表的なハードウェア環境を示したもので、本発明によるワークステ ーション40の適切なハードウェア構成を示している。ワークステーション40は、 従来のマイクロプロセッサのような中央演算処理ユニット10と、システム・バス 12を介して相互接続された複数の他のユニットとを装備している。第1図に示す 図示のワークステーション40は、ランダム・アクセス・メモリ(RAM)14と、リ ード・オンリ・メモリ(ROM)16と、ディスク・ユニットなどの周辺デバイスを バス12に接続するための入出力(I/O)アダプタ18と、キーボード24、マウス26 、スピーカ28、マイクロホン32、および/またはタッチ・スクリーン・デバイス (図示せず)などの他のユーザ・インタフェース・デバイスをバス12に接続する ためのユーザ・インタ フェース・アダプタ22とを備えている。ワークステーション40は、ワークステー ション40をデータ処理ネットワーク30に接続するための通信アダプタ34と、バス 12を表示デバイス38に接続するための表示アダプタ36とを装備することも可能で ある。 本発明は、好ましくは、「オブジェクト指向フレームワーク・システム」の名 称で1992年12月23日に出願された米国特許出願および「オブジェクト指向オペレ ーティング・システム」の名称で1993年1月22日に出願された米国特許出願に記 載されているオブジェクト指向オペレーティング・システムの下で実施される。 両米国特許出願はTaligent社に譲渡されている。 本発明のロジック・オペレーション 本発明は、プログラムの実行時にコンピュータ・システムと併用されて、共用 ライブラリをロードし、共用ライブラリを相互にリンクするためのフレームワー クを備えている。かかるフレームワークは、プログラムによって参照された共用 ライブラリ名が、そのプログラムの開始時に従属している共用ライブラリとリン クされるときの仕方を提供している。 すべての共用ライブラリは指定された名前によって識別され、指定された名前 空間内に置かれている。共 用ライブラリは任意の数の他の共用ライブラリに従属し、必要ならば、それらの 共用ライブラリとリンクされている。特定の共用ライブラリに対応する共用ライ ブラリ・ロード・モジュールは、(i)特定共用ライブラリの指定された名前と 、(ii)その特定共用ライブラリが従属する共用ライブラリの指定された名前を 格納する。 ある特定共用ライブラリがプログラムに続いてロードされるとき、その特定共 用ライブラリが従属するすべての共用ライブラリもロードされなければならない 。従って、プログラムに続いてロードされる共用ライブラリの名前を確かめるた めには、共用ライブラリ・ロード・モジュールの助けが必要になる。共用ライブ ラリの名前空間はグローバルであるので、該当する共用ライブラリが一緒にリン クされるためには、各共用ライブラリに異なる名前をつけなければならない。本 発明は、各共用ライブラリが一意的(unique)な名前をもっていることを前提と している。 プログラムが開始と同時に実行されるためには、共用ライブラリは他の共用ラ イブラリとリンクされていなければならない。このリンキング・プロセス(link ing process)は、該当の共用ライブラリがロードされると行われる。 ローダと呼ばれるメカニズムは、ロードする必要のある共用ライブラリの名前 を最初に決める。そのあ と、定められた共用ライブラリ名に対応する物理共用ライブラリを、ローダに知 らせなければならない。物理共用ライブラリのロケーションには、コンピュータ ・ディスク、RAM(「ランダム・アクセス・メモリ」)およびROM(「リードオン リ・メモリ」)が置かれているのが代表的である。しかし、ローダはライブラリ がどこに置かれているかを定めない。その代わりに、ローダは探索オブジェクト を使用して共用ライブラリのロケーションを決定する。探索オブジェクトはライ ブラリ名を物理共用ライブラリ・ロケーションに対応づける(マッピングする) 。結果として得たマッピング情報を使用して、ローダは、該当の共用ライブラリ をロードすることが可能になる。 第2図は、ある共用ライブラリを別の共用ライブラリとリンクするステップを 記載したフローチャートを示す図である。プログラムを開始するために、通常は 、共用ライブラリをロードし、相互にリンクする必要がある。これは、ボックス 202に示されている。そのあと、開始されたプログラムに必要な共用ライブラリ の名前の決定が行われる。これは、ボックス204に示されている。プログラムに 必要な共用ライブラリ名には、プログラムによって参照される名前の他に、開始 されたプログラムまたは参照された共用ライブラリが従属する共用ライブラリの 名前も含まれる。これらの名前は前述した共用ライブラリ・ロード・モジュー ルから確かめられる。 共用ライブラリの名前が確かめられると、次に、探索オブジェクトが使用され て、その名前に対応するそれぞれの物理共用ライブラリ・ロケーションが突き止 められる。これは、ボックス206に示されている。クラスTLibrarySearcherは、 以下で詳しく説明するように、使用された探索オブジェクトのインタフェースを 定義している派生クラス(derived class)である。共用ライブラリの確かめら れた名前が与えられているとき、探索オブジェクトは、その探索オブジェクトの 探索命令(search instructions)をたどっていくことにより、物理共用ライブ ラリに到達する。 対応する物理共用ライブラリに到達すると、ボックス208に示すように、マッ ピングが行われる。マッピングは共用ライブラリ名を、到達した共用ライブラリ ・ロケーションに対応づけることである。そのあと、到達した物理共用ライブラ リはロードされ、相互にリンクされる。これは、それぞれ参照符号210と212で示 されている。 探索オブジェクト オブジェクト指向(object-orientation)とは、複数のオブジェクトからなる システム手法である。各オブジェクトは、通常、実世界のエンティティ(実体) に 対応しているが、いくつかのオペレーションと、そのオペレーションのステート (状態)を覚えているステート(状態)を提供する。例えば、人物オブジェクト (person object)は年齢、アドレス、電話番号、職業などの、ある人物に対応 する情報を所有している。オペレーションは、この情報をアクセスし、あるいは 影響を与えるために作成される。さらに、オペレーションは、ウォーキング(wa lking)のような、どの内部情報にも影響を与えない作用(behavior)を実行す るために作成することもできる。 クラスとは、新しいオブジェクトの作成を可能にする定義、テンプレートまた はモールド(mold)である。従って、クラスは、複数のオブジェクトの共通特性 を記述したものである。あるクラスを含むオブジェクトはこのテンプレートを共 通にもっている。クラスの特性は、サブクラス(subclass)と呼ばれる別のクラ スに継承させることができる。従って、サブクラスはクラスの情報構造と作用を 継承する。そのあと、別の情報や作用をサブクラスに追加することが可能である 。 継承階層において、あるクラスの下位に置かれたクラスは、クラスの子孫と呼 ばれる。上位に置かれたクラスは祖先と呼ばれる。子孫とサブクラスの用語は同 じ意味で使用されている。 第3図は、探索オブジェクト・クラスの階層を示す図である。クラスMCollect ible 300は、すべての探索 オブジェクトの基底クラス(base class)を表している。つまり、クラスMColle ctible 300は、他のすべてのクラスがそこから子孫として作成されるクラスであ る。クラスMCo1lectible 300の主要子孫は2つあり、それは、クラスTLibrarySe archer 302とクラスTTeamHandle 308である。クラスTLibrarySearcher 302は別 の子孫を2つもっている。それは、それぞれ参照符号304と306で示すように、ク ラスTStandardLibrarySearcherとクラスTWorkspaceSearcherである。 クラスTStandardLibrarySearcher 304は、単一ディレクトリ内の物理共用ライ ブラリを探索するデフォルトの探索オブジェクトを定義している。探索する必要 があるディレクトリは2つ以上であるのが普通であるので、クラスTStandardLib rarySearcher 304は、通常、システム内のすべての共用ライブラリを探し出すこ とができない。さらに、クラスTStandardLibrarySearcher 304のオブジェクトは 、ライブラリの複数のコピーに遭遇したときの互換性を考慮しない。 従って、クラスTStandardLibrarySearcher 304に従って作成された探索オブジ ェクトに代わって、物理共用ライブラリを探すためのクラスTWorkspaceSearcher 306が用意されている。クラスTWorkspaceSearcher306により、ワークステーシ ョンか ら探索オブジェクトを作成することができる。クラスTWorkspaceSearcher 306に よって定義された探索オブジェクトは、2つの以上のディクレトリ内を探索でき ると共に、必要時に互換性を考慮することができる。 クラスTLibrarySearcher 302から派生したオブジェクトは任意的に複雑な探索 を実現することができる。例えば、この種のオブジェクトは、(i)ファイル属 性を調べ、(ii)ライブラリのディレクトリまたはデータベースを維持し、(ii i)ライブラリ導入プロシージャとやりとりすることができる。TLibrarySearche r302サブクラスである、クラスTStandardLibrarySearcher 304とクラスTWorkspa ceSearcher 306は、共用ライブラリのあるバージョンがすでに使用中であるかど うかをシステムに確かめるために作成されることもある。 第4図は、共用ライブラリを探索するときのロジックの流れを示すフローチャ ートである。初めに、探索オブジェクトが共用ライブラリの名前と一緒に提示さ れる。提示されたこの名前付き共用ライブラリから、共用ライブラリのロケーシ ョンの探索が行われる。これは、参照符号400で示されている。 名前付きライブラリが探索されると、(i)共用ライブラリに複数のコピーが あること、(ii)共用ライブラリ名に対応するロケーションがないこと、あるい は (iii)共用ライブラリに1つのコピーがあることが明らかになる。これらの結 果は、それぞれ参照符号402,410、および420を付けたボックスに示されている。 共用ライブラリが見つからないと、ボックス412に示すように、探索オブジェ クトから”NIL”が返される。共用ライブラリのコピーが1つだけ見つかったと きは、ボックス422に示すように、その共用ライブラリがローダに返される。 しかし、共用ライブラリのコピーが複数見つかったときは、コピーが返される 前に別の分析が必要になる。この別の分析は、まず、共用ライブラリ・コピーの 互換性番号が確認できるかどうかを判断することから始まる。これはボックス40 4に示されている。共用ライブラリ・コピーの互換性番号が確認できれば、最高 互換性番号をもつ共用ライブラリ・コピーが返される。これは、ボックス406に 示されている。 共用ライブラリ・コピーの互換性番号が確認できなければ、別の選択方法が必 要になる。この別の選択方法には、共用ライブラリのコピーで、現在別の場所に 置かれているコピーがあるかどうかの判断を含めることができる。最終的には、 この別の選択方法からは、ボックス416に示すように、共用ライブラリの選択さ れたコピーが返されるはずである。 ボックス406,416,422に示すように、共用ライブラ リの返されたコピーは、共用ライブラリ名と対応づけられる(マッピング)。こ れは、ボックス430に示されている。そのあと、マップ情報がローダに知らされ る。 互換性は、ファイルである共用ライブラリのファイル・システム属性である。 互換性は互換性番号で示され、最高互換性番号をもつ共用ライブリーのコピーが 他の従属共用ライブラリと互換性をもつ可能性がある。従って、探索オブジェク トからは、最高互換性番号をもつ共用ライブラリのコピーが返される。共用ライ ブラリがファイルであるとき、探索オブジェクトが常にそうすることができるの は、ファイルが常に互換性番号へのアクセスを許しているからである。しかるに 、ファイルでない共用ライブラリは、コピーの互換性番号をアクセスすることを 認められていない。そのような場合は、探索オブジェクトは最高度の互換性をも つコピーを確かめることができない。 共用ライブラリは、2つの条件が満足されると連続的にロードされる。第1は 、最高互換性番号をもつコピーが探索オブジェクトから返されたときである。第 2は、探索オブジェクトが探索した個所のロケーションの間で、一貫性のある共 用ライブラリの集合が存在し、それらがロードされるときである。 第5図は、異なる互換性番号をもつ3つのライブラリの例を示す図である。A ,BおよびCと名づけた3 つのライブラリがロードされることを想定している。互換性番号1をもつライブ ラリA(参照符号502で示すように、”library(A,1)”)は、互換性番号2を もつライブラリB(参照符号504で示すように、”library(B,2)”)と互換性 番号2をもつライブラリC(参照符号506で示すように、”library(C,2)”) に従属している。互換性番号3をもつライブラリB(参照符号510で示すように 、”library(B,3)”)は、互換性番号3をもつライブラリC(参照符号508で 示すように、”library(C,3)”)に従属している。ライブラリ(B,2)504はラ イブラリ(C,2)506に従属している。しかし、ライブラリ(C,2)506とライブラ リ(C,3)508は他のどのライブラリにも従属していない。 ローダがライブラリ(A,1)502のロードを試みるとき、ライブラリ(A,1)502 が従属するライブラリのコピーもロードする必要がある。ロードされるコピーは 従属共用ライブラリの互換性番号と等しいか、それより大の互換性番号をもって いなければならない。従って、ローダがロードできるのは、(i)ライブラリ( B,2)504またはライブラリ(B,3)510および(ii)ライブラリ(C,2)506とライ ブラリ(C,3)508である。しかし、ライブラリ(B,3)510はライブラリ(C,3)5 08と一緒にロードされなければならない。ライブラリ(B,3)510の従属を満たす には、ライブラリ(C,2)506では不十分である。 探索オブジェクトまたは複数の探索オブジェクトはライブラリ(B,2)504、ラ イブラリ(B,3)510、ライブラリ(C,2)506、およびライブラリ(C,3)508を探 し出す。最大互換性番号をもつコピーが探索オブジェクトから返されると、ライ ブラリ(A,1)502、ライブラリ(B,3)510、およびライブラリ(C,3)508が返さ れる。これらの3ライブラリはすべての従属条件が満たされているので、ロード される。 前記の3ライブラリが探索オブジェクトから返されなかったときは、ローディ ングはできないであろう。例えば、探索オブジェクトからライブラリ(A,1)502 、ライブラリ(B,3)510、およびライブラリ(C,2)506が返されることがある。 そのような場合は、ライブラリ(B,3)510がライブラリ(C,3)508に従属するこ とが満たされないので、これらのライブラリはロードされない。このようなこと が起こるのを避けるには、探索オブジェクトは最高互換性番号をもつライブラリ のコピーを返さなければならない。もちろん、これが行えるのは、探索オブジェ クトが共用ライブラリの互換性番号をアクセスできる場合だけである。 探索オブジェクトのチーム属性 探索オブジェクトはチーム内に置かれる。各チームは1つまたは2つ以上の探 索オブジェクトのリストを もち、このリストは、そのチームに関連する共用ライブラリをロードするときロ ーダによって調べられる。チーム内に置いておくことができる探索オブジェクト の数には制限がない。新しいチームが作られるときは、クラスTTeamHandle内に 作られているコンストラクタ・オブジエクト(constructor object)内に探索オ ブジェクトの集合を渡すことができる(第3図に参照符号308で示されている) 。そのあと、探索オブジェクトの集合は新しいチームに加えられる。 クラスTLibrarySearcher 302から派生した探索オブジェクトは2種類があり、 チーム内に置かれている。第1は、作成されるすべてのチームに追加される探索 オブジェクトであり、これは「システム探索オブジェクト」と呼ばれる。第2は 、特定のチームにだけ追加するために作成できる探索オブジェクトである。これ らはチーム特定オブジェクト(team specfic object)と呼ばれる。あるチーム がアクセスされるとき、チーム特定探索オブジェクトとシステム探索オブジェク トの両方がストリーム化されて、そのチームのアドレス空間に入れられる。従っ て、TLibrarySearcher 302のサブクラスTStandardLibrarySearcher 304とTWorks paceSearcher 306はストリーミング演算子(streaming operators)をもってい ないければならない。 ローダはチーム内の探索オブジェクトの集合を使用 して、ライブラリ名をライブラリ・ロケーションまたはモジュールに対応づける (マッピング)。そのあと、共用ライブラリはチームのアドレス空間内に置かれ る。ローダは、好ましくは、探索オブジェクトを「LIFO順」(後入れ先出し)に 使用する。つまり、探索オブジェクトは、チームに追加されたときの順序で使用 される。従って、最も最近に追加された探索オブジェクトが最初に使用される。 探索オブジェクトは共用ライブラリが見つかるまで、LIFO順に連続的に使用され る。探索オブジェクトのどれも共用ライブラリを見つけることができないと、ロ ーダは先に進むことができないので例外を引き起こすことになる。例外に応答し て、チームにアクセスしてから、探索オブジェクトをチームに追加することがで きる。しかし、あとで追加された探索オブジェクトが見つけることができるのは 、探索オブジェクトの追加のあとでチームのアドレス空間に動的にロードされる 共用ライブラリだけである。 最近に追加された探索オブジェクトは既存の探索オブジェクトをオーバライド (override)するものと想定されているので、ローダは探索オブジェクトをLIFO 順に使用することが好ましい。従って、チーム探索オブジェクトの集合は、常に 、クラスTStandardLibrarySearcher 304によって定義されるようなデフォルトの 探索オブジェクトの前に使用され る。例えば、共用ライブラリXは、2つのバージョンがシステムに存在すること がある。デフォルト探索オブジェクトはライブラリXをライブラリXの第1バー ジョンにマップする。他方、クラスTWorkspaceSearcher 306によって定義された 探索オブジェクトはライブラリXの第2バージョンにマップする。ワークスペー ス定義探索オブジェクトがデフォルト探索オブジェクトの前に使用されると、ラ イブラリXはライブラリXの第2バージョンにマップされる。従って、ワークス ペース定義探索オブジェクトはシステム探索オブジェクトの前に調べられるので 、ライブラリXの正しいバージョンがチームのアドレス空間にロードされること になる。 別の方法として、一時的チーム探索オブジェクトを指定しても同じ効果が得ら れる。一時的探索オブジェクトは、”TLibrary::LoadLibrary for LibraryX”へ のコールの中で指定できる。従って、チームはコールが存続している間一時的探 索オブジェクトを使用するので、ライブラリXの正しいバージョンがロードされ ることになる。一時的探索オブジェクトは、チームが開始されたあと使用すると 特に便利である。その理由は、一時的探索オブジェクトはチーム探索オブジェク トの集合に追加されないためである。これとは逆に、探索オブジェクトをチーム に追加すると、他の共用ライブラリに対するチームの使用効率に好ましくない影 響を与えることになる。そのために、一時的ライブラリ探索オブジェクトは、ラ イブラリを稼働中のチームに動的にロードするとき使用するのが望ましい。 システム探索オブジェクトはすべてのチームと関係があるので、これがローダ によって使用されるのは、すべてのチーム特定探索オブジェクトが使用されたあ とだけである。従って、探索オブジェクトは次のような順序で使用される。すな わち、(i)チーム特定探索オブジェクト、(ii)システム探索オブジェクト、 (iii)デフォルト探索オブジェクト。さらに、本発明ではシステム・オブジェ クトはLIFO順に使用されるので、追加されたシステム探索オブジェクトは、それ がシステムに追加されたあと作成された共用ライブラリのローディングだけに影 響する。 探索オブジェクトは、システム上のすべてのチームに対して適用するためにも 、特定のチームに対して適用するためにも追加することが可能である。すべての チームに対して適用するためにシステム探索オブジェクトが追加されると(”TL ibrarySearcher::AddSystemSearcher”を呼び出すことにより)、そのシステム ・オブジェクトはそのあとで作成されたすべてのチームに適用される。これに対 して、あるチームに対して適用するために探索オブジェクトが追加されると(” TTeamHandle::AddLibrarySearcher”を呼び出すこ とにより)、新しく作成された探索オブジェクトは、そのチームによるライブラ リ探索だけに適用される。 探索オブジェクトは、あるチームにいったん追加されたら、除去できないよう にすることが好ましい。これは追加された探索オブジェクトがチーム特定探索オ ブジェクトであるか、システム探索オブジェクトであるかに関係ない。このよう な制約を設けたのは、探索オブジェクトがチームのすべてのタスクによって共用 されるグローバル資源であるためである。あるタスクに対してチーム探索オブジ ェクトの除去を認めると、その探索オブジェクトに従属する別のタスクに好まし くない影響を与えることになる。例えば、同じチーム上の2つの従属タスク(「 タスク1」と「タスク2」)が同じ追加探索オブジェクトをもっているとする。 この場合、探索オブジェクトがタスク1から除去されたとしても、タスク2はそ の探索オブジェクトがまだ残っているものと思っている。そのために、両方のタ スクは探索オブジェクトの同じリストを保持している必要がある。一時的探索オ ブジェクトは、探索オブジェクトがある特定タスクに対してだけ使用されるとき に利用するのが好ましく、そうすれば、その探索オブジェクトをチームに追加し ないで済むことになる。 また、本発明によれば、あるチームに追加しようと している探索オブジェクトがすでにそのチームに存在するかどうかを確かめるた めの分析も行われる。探索オブジェクトと重複するものがすでに置かれているチ ームに探索オブジェクトが追加されると、探索コピーの二番目のコピーの追加は 行われない。しかし、チーム内にすでに置かれている重複探索オブジェクトはチ ーム・ライブラリ探索オブジェクトのリストの最後に移される。このようにした のは、チームの探索オブジェクト・リストの最後にある探索オブジェクトがチー ムによって最初に使用されるためである。 本発明によれば、重複探索オブジェクトを見つけるために探索オブジェクトの タイプが分析される。例えば、C++プログラミング言語では、”Is Equal”メソ ッドを実行することにより比較が行われる。従って、すべてのTLibrarySearcher 302サブクラスは、IsEqua1”メソッドまたは同等のメソッドをオーバライド(o verride)しなければならない。 TLibrarySearcher 302のサブクラスは、共用ライブラリに入れておくことがで きる。しかし、ローダがある共用ライブラリを見つけるためには、その所定のラ イブラリには、それを見つけるために必要なTLibrarySearcher 302サブクラスが 入っていてはならない。従って、TLibrarySearcher 302サブクラスは、TLibrary Searcher 302サブクラスに探索させる共用ライブラリの外部のロケーションに置 いておかなければ ならない。言い換えれば、TLibrarySearcher 302サブクラスを収めている共用ラ イブラリは、それを見つけるためにライブラリに置かれているTLibrarySearcher 302サブクラスに頼らなくても、見つけることができるロケーションの場所に置 いておかなければならない。 TLibrarySearcher 302サブクラスを収めている所定共用ライブラリを、ローダ に確実に見つけさせる1つの方法は、デフォルトのシステム探索オブジェクトが それを見つけることができる場所に、その所定の共用ライブラリを置いておくこ とである。クラスTStandardLibrarySearcher 304は、デフォルト探索オブジェク トを定義し、すべてのチームと関連づけられているので、所定の共用ライブラリ を常に探し出すことができる。従って、新しく作成されたチームは、クラスTWor kspaceSearcher 306によって定義されたワークスペース探索オブジェクトがチー ムに追加されてから初めて、デフォルト・システム探索オブジェクトに頼ること ができる。ある探索オブジェクトがあるチームに追加されたときは、そのチーム はその探索オブジェクトを収めている共用ライブラリをロードしなければならな い。これはチームにすでに追加されているシステム・ライブラリ探索オブジェク トと、もしあれば、チーム特定探索オブジェクトだけを使用して行われる。 好ましくは、共用ライブラリの1つのコピーだけがチームのアドレス空間にロ ードされる。従って、ローダは、単一チームを扱っているとき、ある共用ライブ ラリを2回以上見つけたときは、現在ロードされている共用ライブラリが正しい ものと想定する。従って、ローダは重複するライブラリを探すために探索オブジ ェクトを使用することがない。チームの探索オブジェクトの集合が修正され、チ ームのアドレス空間にすでに置かれているライブラリをロードするために”Load Library”が呼び出されると、修正されたチームはライブラリの異なるバージョ ンを返すことになる。従って、LoadLibraryを呼び出しても、ライブラリの旧バ ージョンはチームのアドレス空間に残っているので、所望とする効果は得られな い。 同じワークステーションに置かれている異なるチームは、同じ共用ライブラリ の異なるコピーを使用することができる。しかし、同じ共用ライブラリの異なる コピーを使用する複数のチームは、オブジェクト・クラスが共用ライブラリ内に 定義されていても、共用メモリによって別のチームのオブジェクトを共用するこ とはできない。むしろ、所定のチームが使用できるオブジェクトは、所定のチー ムに関連するものだけに制限されている。共用ライブラリの異なるバージョンを 使用するチームはチーム同士でオブジェクトを共用できないが、そのクラスが共 用ライブラリ内に定義され ているオブジェクトをストリーム化して相互にやりすることは許される。 発明者が開発した本発明の実施例は、本明細書の付録に記載されている。これ は、本発明の詳細ロジックを理解しやすくするために示されたものである。実施 例の各部分の重要要素も、詳しく解説されている。 ソース・コードの注釈: //Class TLibrarySearcher derived from base class MCollectible(//基底ク ラスMCollectibleから派生されたクラスTLibrarySearcher) 〜TLibrarySearcher( ):デストラクタ。 TMappableDataContainer*CreateContainerAndFindLibrary(constTText&librar yName,constCompatibilityNumberdesireRelease):特定の名前をもつライブラ リを探索する。そのライブラリのTMappableDataContainerを返す。呼出し側はTM appableDataContainerのための記憶域を所有している。ライブラリ・サーチャは 共用ライブラリの複数のコピーを見つけたときは、どのコピーを返すべきかを決 定しなければならない。実行中のチームにより現在ロードされたのがどのライブ ラリであるのかを、その決定には考慮する必要がある。また、共用ライブラリの 必要とする互換性番号も考慮する必要がある。サーチャが共用ライブラリの互換 性番号をアクセスできる場合は(互換性番号はファイルである共用ライブラリの 特性である)、返すことを考慮している共用ライブラリの互換性番号が、必要と する互換性番号より大か、あるいは等しいかをチェックする必要がある。ライブ ラリが見つからなければ、NILが返される。このメソッドは、すべての TLibrarySearcherサブクラスによって無視しなければならない。 Boolean IsEqual(constMCollectible*):2つのライブラリ・サーチャが同等 のものであれば、TRUEが返され、そうでなければ、FALSEが返される。 以下のメソッドは、ワークスペースだけがコールすることが可能である。 static AddSystemLibrarySearcher(const TLibrarySearcher &):その作成時 にチームによって自動的に継承されるライブラリ・サーチャのグローバル・リス トにライブラリ・サーチャを追加する。この関数は、コールされたあとに作成さ れたチームにだけ作用する。既存のチームには作用しない。 static TIterator*CreateSystemLibrarySearcherIterator( ):システム・ライ ブラリ・サーチャのためのイタレータ(iterator)を生成する。このイタレータ は、TLibrarySearcherサブクラス・オブジェクトを指しているポインタを返す。 呼出し側はイタレータのための記憶域を所有している。イタレータは返すTLibra rySearcherのための記憶域を所有している。イタレータはシステム・ライブラリ ・サーチャを、適用される順に返す。現在のスレッドがシステム・ライブ ラリ・サーチャを繰り返している途中でシステム・ライブラリ・サーチャが別の スレッドによって追加されると、kIteratorOutOfSync例外が引き起こされる。 //Subclass library searcher used by the run time during system boot. //Not intended for subclassing. (//システム・ブート期間の実行時に使用されるサブクラス・ライブラリ・サー チャ。 //サブクラス化を目的としていない。)TStandardLibrarySearcher( ) :コンストラクタ。〜TStandardLibrarySearcher( ) :デストラクタ。TMappableDataContainer*CreateContainerAndFindLibrary(constTText&library Name,const CompabilityNumberdesiredRelease ):ディスク上の「共用ライブラ リ」フォルダに入っている特定名をもつライブラリを探索し、そのライブラリの TMappableDataContainerを返す。ライブラリが見つからなければ、NILが返され る。このライブラリ・サーチャはその決定のとき要求された互換性番号を考慮し ない。呼出し側はTMappableDataContainerのための記憶域を所有している。 BooleanIsEqual(constMCollectible*):2つの標準ライブラリ・サーチャが同 等のものであればTRUEを返 し、そうでなければELSEを返す。 特定のシステム環境における好適実施例を参照して本発明を説明してきたが、 本発明は、請求の範囲に明確化された本発明の精神と範囲内において、修正を加 えることにより他の異なるハードウェアおよびソフトウェア環境において実施す ることが可能であることはもちろんである。
【手続補正書】特許法第184条の8 【提出日】1995年3月29日 【補正内容】 請求の範囲 1.関連する共用ライブラリがストアされているコンピュータ中の記憶装置のア ドレスに、複数の共用ライブラリ名をマッピングするロジックを有する少なくと もひとつのライブラリ探索(searcher)オブジェクトを含み、特別なファンクシ ョンを実行するためのロジックとデータとをもつオブジェクトを含んだオブジェ クト指向オペレーティング・システムにおける共用ライブラリを位置づける(lo cating)方法において、 (a)前記コンピュータの前記記憶装置に位置づけられた複数のライブラリ名 を確認し、 (b)前記少なくともひとつのライブラリ探索オブジェクトの前記ロジックを 使い、前記共用ライブラリ名に対応する複数のロケーションを探索すると共に獲 得し、 (c)前記複数の共用ライブラリ名を前記コンピュータの前記記憶装置に位置 している前記複数の共用ライブラリへマッピングする ステップを具備することを特徴とする方法。 2.複数のディレクトリが探索されることを特徴とする請求の範囲第1項に記載 の方法。 4.デフォルトの場合には、前記複数の探索オブジェクトの1つまたは2つ以上 が使用されることを特徴とする請求の範囲第1項に記載の方法。 5.前記複数の探索オブジェクトの1つまたは2つ以上がチーム内に置かれるこ とを特徴とする請求の範囲第1項に記載の方法。 6.前記チーム内に置かれた前記探索オブジェクトは後入れ先出し(LIFO)順番 に連続的に格納されることを特徴とする請求の範囲第5項に記載の方法。 7.後入れ先出し(LIFO)の順番は、前記探索オブジェクトの各々がいつ前記チ ームに追加されたかに基づくことを特徴とする請求の範囲第6項に記載の方法。 8.前記複数の共用ライブラリ名の各々について、前記複数のロケーションの1 つだけが選択的に獲得されることを特徴とする請求の範囲第1項に記載の方法。 11.コンピュータに置かれていて、特定のライブラリとリンクされた共用ライブ ラリを探索する方法であって、 (a)複数の探索オブジェクトを形成し、 (b)複数の探索オブジェクトをストリーム化して特定のロケーションに送り 込み、 (c)特定のライブラリとリンクされた複数の共用ライブラリ名を識別し、 (d)[ストリーム化して]特定のロケーションに送り込まれた複数の探索オ ブジェクトを連続的に使用して、複数の共用ライブラリ名に対応する複数のロケ ーションを獲得し、 (e)複数の共用ライブライ名を獲得した複数のロケーションにマッピングす るステップからなることを特徴とする方法。 13.複数の探索オブジェクトの1つまたは2つ以上は特定のロケーションに置か れているプロシージャを呼び出すことを特徴とする請求の範囲第11項に記載の方 法。 14.プロシージャは変更可能であることを特徴とする請求の範囲第13項に記載の 方法。 15.複数の探索オブジェクトの1つまたは2つ以上の複製コピーが特定のロケー ションにすでに存在するとき、複数の探索オブジェクトの1つまたは2つ以上が ストリーム化されて特定のロケーションに送り込まれるのを禁止するステップを 含むことを特徴とする請求の範囲第13項に記載の方法。 16.複数の探索オブジェクトの1つまたは2つ以上はストリーム化されて複数の 特定のロケーションに送り込まれることを特徴とする請求の範囲第11項に記載の 方法。 17.複数の探索オブジェクトは、複数の探索オブジェクトがストリーム化されて 特定のロケーションに送り込まれたときの順序に基づいて連続的に使用されるこ とを特徴とする請求の範囲第11項に記載の方法。 20.関連する共用ライブラリがストアされているコンピュータ中の記憶装置のア ドレスに、複数の共用ライブラリ名をマッピングするロジックを有する少なくと もひとつのライブラリ探索(searcher)オブジェクトを含み、特別なファンクシ ョンを実行するためのロジックとデータとをもつオブジェクトを含んだオブジェ クト指向オペレーティング・システムにおける共用ライブラリを位置づける(lo cating)装置において、 (a)オブジェクト指向オペレーティング・システムと、 (b)前記オペレーティング・システムに制御されたコンピュータと、 (c)前記コンピュータに付属し、制御下にある記憶手段と、 (d)共用ライブラリの複数の名前を前記記憶手段のアドレスにマッピングす る少なくとも1つのライブラリを含む特別なファンクションを実行するためのロ ジックとデータとをもつ複数のオブジェクトと、 (e)前記コンピュータの前記記憶装置に位置づけられた複数のライブラリ名 を確認する手段と、 (f)前記少なくともひとつのライブラリ探索オブジェクトの前記ロジックを 使い、前記共用ライブラリ名に対応する複数のロケーションを探索すると共に獲 得する手段と、 (g)前記複数の共用ライブラリ名を前記コンピュータの前記記憶装置に位置 している前記複数の共用ライブラリヘマッピングする手段と を具備することを特徴とする装置。 21.複数のディレクトリが探索されることを特徴とする請求の範囲第20項に記載 の装置。 23.デフォルトの場合には、複数の探索オブジェクトの1つまたは2つ以上が使 用されることを特徴とする請求の範囲第20項に記載の装置。 24.複数の探索オブジェクトの1つまたは2つ以上はチーム内に置かれることを 特徴とする請求の範囲第20項に記載の装置。 25.チーム内に置かれた探索オブジェクトは後入れ先出し(LIFO)順番に連続的 にストアされることを特徴とする請求の範囲第24項に記載の装置。 26.後入れ先出し(LIFO)順番は、探索オブジェクトの各々がいつチームに追加 されたかに基づくことを特徴とする請求の範囲第25項に記載の装置。 27.複数の共用ライブラリ名の各々ついて、複数のロケーションの1つだけを選 択的に獲得することを特徴とする請求の範囲第20項に記載の装置。 29.特定のライブラリとリンクされた複数の共用ライブラリ名は、定義されたロ ケーションを参照することにより確認されることを特徴とする請求の範囲第20項 に記載の装置。 30.特定のライブラリとリンクされた共用ライブラリを探索する装置であって、 (a)複数の探索オブジェクトを形成する手段と、 (b)複数の探索オブジェクトをストリーム化して特定のロケーションに送り 込む手段と、 (c)特定のライブラリとリンクされた複数の共用ライブラリ名を確認する手 段と、 (d)ストリーム化して特定のロケーションに送り込まれた複数の探索オブジ ェクトを連続的に使用して、複数の共用ライブラリ名に対応する複数のロケーシ ョンを獲得する手段と、 (e)複数の共用ライブライ名を獲得した複数のロケーションにマッピングす る手段と を具備することを特徴とする装置。 31.到達した複数のロケーションをストリーム化して特定のロケーションに送り 込む手段を含むことを特徴とする請求の範囲第30項に記載の装置。 32.複数の探索オブジェクトの1つまたは2つ以上は特定のロケーションに置か れているプロシージャを呼び出すことを特徴とする請求の範囲第30項に記載の装 置。 33.プロシージャは変更可能であることを特徴とする請求の範囲第32項に記載の 装置。 34.複数の探索オブジェクトの1つまたは2つ以上の複製コピーが特定のロケー ションにすでに存在するとき、複数の探索オブジェクトの1つまたは2つ以上が ストリーム化されて特定のロケーションに送り込まれるのを禁止するプロセッサ を含むことを特徴とする請求の範囲第33項に記載の装置。 35.複数の探索オブジェクトの1つまたは2つ以上はストリーム化されて複数の 特定のロケーションに送り込まれることを特徴とする請求の範囲第30項に記載の 装置。 36.複数の探索オブジェクトは、複数の探索オブジェクトがストリーム化されて 特定のロケーションに送り込まれたときの順序に基づいて連続的に使用されるこ とを特徴とする請求の範囲第30項に記載の装置。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FR,GB,GR,IE,IT,LU,M C,NL,PT,SE),OA(BF,BJ,CF,CG ,CI,CM,GA,GN,ML,MR,NE,SN, TD,TG),AT,AU,BB,BG,BR,BY, CA,CH,CN,CZ,DE,DK,ES,FI,G B,HU,JP,KP,KR,KZ,LK,LU,LV ,MG,MN,MW,NL,NO,NZ,PL,PT, RO,RU,SD,SE,SK,UA,UZ,VN

Claims (1)

  1. 【特許請求の範囲】 1.コンピュータに置かれていて、特定のライブラリとリンクされた共用ライブ ラリを探索する方法であって、 (a)特定のライブラリとリンクされた複数の共用ライブラリ名を確認し、 (b)複数の共用ライブラリ名に対応する複数のロケーションを探索して、そ こまで到達し、 (c)複数の共用ライブラリ名を複数のロケーションにマッピングするステッ プからなることを特徴とする方法。 2.複数のディレクトリが探索されることを特徴とする請求の範囲第1項に記載 の方法。 3.複数のディレクトリは複数の探索オブジェクトを使用して探索されることを 特徴とする請求の範囲第2項に記載の方法。 4.デフォルトの場合には、複数の探索オブジェクトの1つまたは2つ以上が使 用されることを特徴とする請求の範囲第3項に記載の方法。 5.複数の探索オブジェクトの1つまたは2つ以上は チーム内に置かれることを特徴とする請求の範囲第3項に記載の方法。 6.チーム内に置かれた探索オブジェクトは順番に連続的に格納されることを特 徴とする請求の範囲第5項に記載の方法。 7.順番は、探索オブジェクトの各々がいつチームに追加されたかに基づくこと を特徴とする請求の範囲第6項に記載の方法。 8.複数の共用ライブラリ名の各々ついて、複数のロケーションの1つだけに選 択的に到達することを特徴とする請求の範囲第1項に記載の方法。 9.到達した1つのロケーションは、互換性の程度に基づいて選択されることを 特徴とする請求の範囲第8項に記載の方法。 10.特定のライブラリとリンクされた複数の共用ライブラリ名は、定義されたロ ケーションを参照することにより確認されることを特徴とする請求の範囲第1項 に記載の方法。 11.コンピュータに置かれていて、特定のライブラリ とリンクされた共用ライブラリを探索する方法であって、 (a)複数の探索オブジェクトを形成し、 (b)複数の探索オブジェクトをストリーム化して特定のロケーションに送り 込み、 (c)特定のライブラリとリンクされた複数の共用ライブラリ名を識別し、 (d)ストリーム化して特定のロケーションに送り込まれた複数の探索オブジ ェクトを連続的に使用して、複数の共用ライブラリ名に対応する複数のロケーシ ョンに到達し、 (e)複数の共用ライブライ名を到達した複数のロケーションにマッピングす るステップからなることを特徴とする方法。 12.到達した複数のロケーションをストリーム化して特定のロケーションに送り 込むステップを含むことを特徴とする請求の範囲第11項に記載の方法。 13.複数の探索オブジェクトの1つまたは2つ以上は特定のロケーションに置か れているプロシージャを呼び出すことを特徴とする請求の範囲第11項に記載の方 法。 14.プロシージャは変更可能であることを特徴とする 請求の範囲第13項に記載の方法。 15.複数の探索オブジェクトの1つまたは2つ以上の複製コピーが特定のロケー ションにすでに存在するとき、複数の探索オブジェクトの1つまたは2つ以上が ストリーム化されて特定のロケーションに送り込まれるのを禁止するステップを 含むことを特徴とする請求の範囲第13項に記載の方法。 16.複数の探索オブジェクトの1つまたは2つ以上はストリーム化されて複数の 特定のロケーションに送り込まれることを特徴とする請求の範囲第11項に記載の 方法。 17.複数の探索オブジェクトは、複数の探索オブジェクトがストリーム化されて 特定のロケーションに送り込まれたときの順序に基づいて連続的に使用されるこ とを特徴とする請求の範囲第11項に記載の方法。 18.時間的に早くストリーム化された探索オブジェクトは、時間的に遅くストリ ーム化された探索オブジェクトのあとで使用されることを特徴とする請求の範囲 第17項に記載の方法。 19.コンピュータに置かれていて、特定のライブラリ とリンクされた複数の共用ライブラリをロードする方法であって、 (a)特定のライブラリを必要とするプログラムを開始し、 (b)特定のライブラリとリンクされた複数の共用ライブラリ名を識別し、 (c)確認された複数の名前に対応する複数のロケーションを探索して、そこ まで到達し、 (d)複数の共用ライブラリ名を複数のロケーションにマッピングし、 (e)複数のロケーションをロードするステップからなることを特徴とする方 法。 20.特定のライブラリとリンクされた共用ライブラリを探索する装置であって、 (a)特定のライブラリとリンクされた複数の共用ライブラリ名を確認する手 段と、 (b)複数の共用ライブラリ名に対応する複数のロケーションを探索してそこ まで到達する手段と、 (c)複数の共用ライブラリ名を複数のロケーションにマッピングする手段と を具備することを特徴とする装置。 21.複数のディレクトリが探索されることを特徴とする請求の範囲第20項に記載 の装置。 22.複数のディレクトリは複数の探索オブジェクトを使用して探索されることを 特徴とする請求の範囲第21項に記載の装置。 23.デフォルトの場合には、複数の探索オブジェクトの1つまたは2つ以上が使 用されることを特徴とする請求の範囲第22項に記載の装置。 24.複数の探索オブジェクトの1つまたは2つ以上はチーム内に置かれることを 特徴とする請求の範囲第22項に記載の装置。 25.チーム内に置かれた探索オブジェクトは順番に連続的にストアされることを 特徴とする請求の範囲第24項に記載の装置。 26.順番は、探索オブジェクトの各々がいつチームに追加されたかに基づくこと を特徴とする請求の範囲第25項に記載の装置。 27.複数の共用ライブラリ名の各々ついて、複数のロケーションの1つだけに選 択的に到達することを特徴とする請求の範囲第20項に記載の装置。 28.到達した1つのロケーションは、互換性の程度に 基づいて選択されることを特徴とする請求の範囲第27項に記載の装置。 29.特定のライブラリとリンクされた複数の共用ライブラリ名は、定義されたロ ケーションを参照することにより確認されることを特徴とする請求の範囲第20項 に記載の装置。 30.特定のライブラリとリンクされた共用ライブラリを探索する装置であって、 (a)複数の探索オブジェクトを形成する手段と、 (b)複数の探索オブジェクトをストリーム化して特定のロケーションに送り 込む手段と、 (c)特定のライブラリとリンクされた複数の共用ライブラリ名を確認する手 段と、 (d)ストリーム化して特定のロケーションに送り込まれた複数の探索オブジ ェクトを連続的に使用して、複数の共用ライブラリ名に対応する複数のロケーシ ョンに到達する手段と、 (e)複数の共用ライブライ名を到達した複数のロケーションにマッピングす るステップからなることを特徴とする装置。 31.到達した複数のロケーションをストリーム化して特定のロケーションに送り 込む手段を含むことを特徴 とする請求の範囲第30項に記載の装置。 32.複数の探索オブジェクトの1つまたは2つ以上は特定のロケーションに置か れているプロシージャを呼び出すことを特徴とする請求の範囲第30項に記載の装 置。 33.プロシージャは変更可能であることを特徴とする請求の範囲第32項に記載の 装置。 34.複数の探索オブジェクトの1つまたは2つ以上の複製コピーが特定のロケー ションにすでに存在するとき、複数の探索オブジェクトの1つまたは2つ以上が ストリーム化されて特定のロケーションに送り込まれるのを禁止するプロセッサ を含むことを特徴とする請求の範囲第33項に記載の装置。 35.複数の探索オブジェクトの1つまたは2つ以上はストリーム化されて複数の 特定のロケーションに送り込まれることを特徴とする請求の範囲第30項に記載の 装置。 36.複数の探索オブジェクトは、複数の探索オブジェクトがストリーム化されて 特定のロケーションに送り込まれたときの順序に基づいて連続的に使用されるこ とを特徴とする請求の範囲第30項に記載の装置。 37.時間的に早くストリーム化された探索オブジェクトは、時間的に遅くストリ ーム化された探索オブジェクトのあとで使用されることを特徴とする請求の範囲 第36項に記載の装置。 38.特定のライブラリとリンクされた複数の共用ライブラリをロードする装置で あって、 (a)特定のライブラリを必要とするプログラムを開始するプロセッサと、 (b)特定のライブラリとリンクされた複数の共用ライブラリ名を確認するプ ロセッサと、 (c)確認された複数の名前に対応する複数のロケーションを探索してそこま で到達するプロセッサと、 (d)複数の共用ライブラリ名を複数のロケーションにマッピングするプロセ ッサと、 (e)複数のロケーションをロードするプロセッサとを具備することを特徴と する装置。
JP52202694A 1993-04-05 1994-01-03 順序付けられた探索オブジェクトを使用する共有ライブラリ探索方法およびシステム Expired - Lifetime JP3670278B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/042,959 US5414854A (en) 1993-04-05 1993-04-05 Object-oriental system for managing shared libraries
US08/042,959 1993-04-05
PCT/US1994/000053 WO1994023360A1 (en) 1993-04-05 1994-01-03 Shared library locating system

Publications (2)

Publication Number Publication Date
JPH08508594A true JPH08508594A (ja) 1996-09-10
JP3670278B2 JP3670278B2 (ja) 2005-07-13

Family

ID=21924678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52202694A Expired - Lifetime JP3670278B2 (ja) 1993-04-05 1994-01-03 順序付けられた探索オブジェクトを使用する共有ライブラリ探索方法およびシステム

Country Status (7)

Country Link
US (1) US5414854A (ja)
EP (1) EP0679273B1 (ja)
JP (1) JP3670278B2 (ja)
AU (1) AU6082294A (ja)
CA (1) CA2145671A1 (ja)
DE (1) DE69400406T2 (ja)
WO (1) WO1994023360A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100954876B1 (ko) * 2009-10-30 2010-04-28 (주)엠쓰리모바일 광학 피드백 효과를 이용한 바코드 리더기
JP2020087452A (ja) * 2018-11-16 2020-06-04 富士通株式会社 コンピュータが読むことができるコードを生成する方法、コンピュータ可読媒体、及びシステム

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0691007B1 (de) * 1993-03-22 1996-11-27 Siemens Nixdorf Informationssysteme AG Wiedereintrittsfähige bibliotheken
US5459865A (en) * 1993-04-05 1995-10-17 Taligent Inc. Runtime loader
US5634114A (en) * 1993-11-18 1997-05-27 Intel Corporation Dynamic link library version negotiation
US5630131A (en) * 1994-11-14 1997-05-13 Object Technology Licensing Corp. Method and apparatus for importing and exporting archive files for a graphical user interface
US5652884A (en) * 1994-11-14 1997-07-29 Object Technology Licensing Corp. Method and apparatus for dynamic update of an existing object in an object editor
DE19502728A1 (de) * 1995-01-28 1996-08-01 Philips Patentverwaltung Telekommunikationsvorrichtung
US6260075B1 (en) * 1995-06-19 2001-07-10 International Business Machines Corporation System and method for providing shared global offset table for common shared library in a computer system
US5925108A (en) * 1995-11-03 1999-07-20 Novell, Inc. Event notification in a computer system
US5812850A (en) * 1995-11-13 1998-09-22 Object Technology Licensing Corp. Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution
US5778231A (en) * 1995-12-20 1998-07-07 Sun Microsystems, Inc. Compiler system and method for resolving symbolic references to externally located program files
US6526565B1 (en) * 1995-12-21 2003-02-25 International Business Machines Corporation Packaging algorithm for providing object oriented applications having reduced footprints
US6304893B1 (en) 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US5987245A (en) * 1996-07-01 1999-11-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
US5848246A (en) * 1996-07-01 1998-12-08 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US6272555B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US6424991B1 (en) 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
US6038590A (en) * 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US6266709B1 (en) 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US6434598B1 (en) 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US6067577A (en) * 1996-09-30 2000-05-23 Apple Computer, Inc. Dynamic method resolution for native methods in a dynamic object-oriented programming language
US6018743A (en) * 1996-10-04 2000-01-25 International Business Machines Corporation Framework for object-oriented interface to record file data
CA2224466C (en) * 1997-01-09 2003-12-23 Mitel Networks Corporation Transfer of basic knowledge to agents
US6363436B1 (en) * 1997-01-27 2002-03-26 International Business Machines Corporation Method and system for loading libraries into embedded systems
US6230314B1 (en) * 1997-10-02 2001-05-08 International Business Machines Corporation Method and device for program transformation using class hierarchy transformation based upon type constraint analysis
US5983020A (en) * 1997-10-02 1999-11-09 International Business Machines Corporation Rule-based engine for transformation of class hierarchy of an object-oriented program
US6486897B1 (en) * 1998-09-29 2002-11-26 Apple Computer, Inc. Multi-repository display system using separate presentation, adaptation and access layers
US6314566B1 (en) * 1998-09-29 2001-11-06 Apple Computer, Inc. Method and apparatus for “Just-in-Time” dynamic loading and unloading of computer software libraries
US7085755B2 (en) * 2002-11-07 2006-08-01 Thomson Global Resources Ag Electronic document repository management and access system
US7421418B2 (en) * 2003-02-19 2008-09-02 Nahava Inc. Method and apparatus for fundamental operations on token sequences: computing similarity, extracting term values, and searching efficiently
US20120246634A1 (en) * 2011-03-23 2012-09-27 Dell Products L.P. Portable virtual applications
US9058193B2 (en) * 2013-11-14 2015-06-16 Google Inc. Methods and systems for providing compatibility of applications with multiple versions of an operating system
US9348625B2 (en) 2014-05-23 2016-05-24 Google Inc. Application access to native and bundled libraries

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5134696A (en) * 1988-07-28 1992-07-28 International Business Machines Corp. Virtual lookaside facility
US5247679A (en) * 1990-02-20 1993-09-21 Prime Computer, Inc. Method for sequentially registering executable program formats with unresolved pointers by assigning linkage state and invocation state thereof
US5274819A (en) * 1992-03-27 1993-12-28 Central Point Software, Inc. Management system for memory resident computer programs

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100954876B1 (ko) * 2009-10-30 2010-04-28 (주)엠쓰리모바일 광학 피드백 효과를 이용한 바코드 리더기
JP2020087452A (ja) * 2018-11-16 2020-06-04 富士通株式会社 コンピュータが読むことができるコードを生成する方法、コンピュータ可読媒体、及びシステム

Also Published As

Publication number Publication date
CA2145671A1 (en) 1994-10-13
DE69400406D1 (de) 1996-09-26
EP0679273B1 (en) 1996-08-21
DE69400406T2 (de) 1997-03-27
WO1994023360A1 (en) 1994-10-13
AU6082294A (en) 1994-10-24
US5414854A (en) 1995-05-09
EP0679273A1 (en) 1995-11-02
JP3670278B2 (ja) 2005-07-13

Similar Documents

Publication Publication Date Title
JPH08508594A (ja) 共用ライブラリ探索システム
JP2842714B2 (ja) アプリケーションのオブジェクト指向呼出しをデータベースで行うための方法
US5557793A (en) In an object oriented repository, a method for treating a group of objects as a single object during execution of an operation
US6253257B1 (en) Software Interface for dynamic API mapping
US5930503A (en) System and method for on demand registration of tasks
EP0631232B1 (en) Integration of systems management services with an underlying system object model
CN101751469B (zh) 用以支持用户定义类型的继承的系统和方法
US5721925A (en) Method for generically invoking operation in an object oriented repository
US5581755A (en) Method for maintaining a history of system data and processes for an enterprise
US6738783B2 (en) Dynamically configurable generic container
AU639802B2 (en) Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
US5940837A (en) Distributed data base system
US20030093420A1 (en) Method and system for retrieving sharable information using a hierarchically dependent directory structure
JPH06110808A (ja) クライアントインターフェースをアプリケーションのオブジェクト指向呼出しに対処するための方法及び装置
JPH0675889A (ja) 分散不均一環境におけるサーバー機能の実行方法及び装置
US20060005078A1 (en) System and method of identifying the source of a failure
JPH03179528A (ja) 位置独立形コード・ロケーション・システム
US6654762B2 (en) Generating small footprint applications for mobile devices
CN114245890B (zh) 用于提供功能即服务平台的方法和设备
US6848110B2 (en) Automatic feature augmentation for component based application programming interfaces
EP0899669A2 (en) Language manager interface
US6751796B1 (en) Integration of systems management services with an underlying system object model
US20240078227A1 (en) Lifecycle tracking of data objects
US7603666B2 (en) Class loader
US5963955A (en) Bridge for exporting and importing objects between object oriented programming environments

Legal Events

Date Code Title Description
RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20041004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20041004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050310

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050414

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090422

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090422

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100422

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110422

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110422

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20110422

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120422

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120422

Year of fee payment: 7

RD15 Notification of revocation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D15

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

Free format text: PAYMENT UNTIL: 20120422

Year of fee payment: 7

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

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

Free format text: PAYMENT UNTIL: 20120422

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130422

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130422

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20140422

Year of fee payment: 9

EXPY Cancellation because of completion of term