JP4841787B2 - 共用ライブラリファイル内のプログラムファイルへのアクセスを制限するための方法、システムおよび記憶媒体 - Google Patents
共用ライブラリファイル内のプログラムファイルへのアクセスを制限するための方法、システムおよび記憶媒体 Download PDFInfo
- Publication number
- JP4841787B2 JP4841787B2 JP2001555319A JP2001555319A JP4841787B2 JP 4841787 B2 JP4841787 B2 JP 4841787B2 JP 2001555319 A JP2001555319 A JP 2001555319A JP 2001555319 A JP2001555319 A JP 2001555319A JP 4841787 B2 JP4841787 B2 JP 4841787B2
- Authority
- JP
- Japan
- Prior art keywords
- class definition
- status indicator
- class
- object class
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44552—Conflict 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)
- Devices For Executing Special Programs (AREA)
Description
【発明の属する技術分野】
本発明は、共用ソフトウェアライブラリの部分へのアクセスを制限するためのシステムに関し、とくに、クラスローダを使用して共用ライブラリ内のオブジェクトクラス定義ファイルへのアクセスを制限するシステムに関する。
【0002】
【従来の技術】
ソフトウェアベンダーは典型的に、彼等の商品をJava(商標名)オブジェクト指向プログラミング言語で書かれ、JARファイルと呼ばれる通常の共用ライブラリファイルとして実装されたライブラリのような1組の共用ライブラリとして出荷する。こうして、これらのライブラリ内に記憶されたプログラムファイルは、ベンダーの商品の一部である任意のプログラムモジュールにより容易に効率的に共用され、使用されることができる。
【0003】
共用ライブラリは、ベンダーの商品がオブジェクト指向プログラミングを使用して書かれている場合、クラス定義を維持するために使用されることが多い。オブジェクト指向プログラミング環境においては、オブジェクトは一般にデータメンバおよびそのデータメンバを操作する機能メンバ(またはメソッド)をカプセル化する。オブジェクトは、同じクラスのオブジェクトにより共用される種々のデータメンバおよびメソッドを規定するクラスのインスタンスである。したがって、共用ライブラリは、ベンダーの商品で使用されるオブジェクトの各タイプを規定するために使用されることができる。
【0004】
【発明が解決しようとする課題】
ユーザは、共用されることを意図された共用ライブラリの部分にアクセスできることが重要である。これは、そのコンテンツ(一般にプログラムファイルと呼ばれる)がこのようなライブラリ構成においてどのように使用されることを意図されているかということである。しかしながら、コンテンツの全てが共用ライブラリの外部で使用されることを意図されているわけではない。ライブラリ構成内のみで使用されることを意図されていても、共用ライブラリを使用するいずれのコードによりアクセスされることのできるクラス定義およびオブジェクトが存在する。その結果、共用ライブラリを使用したソフトウェアベンダーが直面する問題の1つは、ライブラリ構成の外部で共用されることを意図されていない共用ライブラリの部分へのアクセスを制限することである。たとえば、JARファイル中にパッケージされたJava(商標名)ライブラリはパブリックであると宣言されており、そのためJava(商標名)パッケージがそのライブラリの内部だけで使用されることを意図されているにもかかわらず、Java(商標名)ライブラリを使用するどのコードによってでもアクセスされることが可能である。
【0005】
共用ライブラリのこれらの部分への無許可のアクセスによる外部プロセスが行なわれる基本的な問題のほかに、そうした結果として別の問題が生じる可能性がある。たとえば、ライブラリの内部のみにおいて使用されると仮定されている共用ライブラリの部分を外部で使用した場合に、ネームスペース問題が発生する可能性がある。共用ライブラリを生成したソフトウェアベンダーは、共用ライブラリに対して外部のネームスペース衝突に関係なく、共用ライブラリの部分に対して特定の名前または命名規則を使用する可能性がある。しかしながら、そのライブラリの内部のものであることを厳密に意図されたパッケージに対して外部プロセスがアクセスした場合、そのパッケージに対する名前は、外部プロセスによりすでに使用された別のパッケージまたはオブジェクトの名前と競合する可能性がある。このような状況において、所定のパッケージ名に対するクラス定義の重複が生じ、そのために、どの機能が名前の付けられたパッケージまたはオブジェクトに関連しているのかをどのようにして解くかが問題になる可能性がある。
【0006】
Java(商標名)プログラミング言語におけるシーリング(sealing)の導入は、この問題のいくつかの例が検出され、エラーを浮上(raise)させることを可能にすることによりそのような状況を改善している。しかしながら、単にランタイムでエラーを浮上させて、エンドユーザが適切なアクションを取ってその問題を修正(fix)するように要求するのは、問題の進行を放置するのと同じくらい望ましいものではない。また、シーリングは一般にある拡張の特定のバージョンで束(bundle)にされたアプリケーションまたはアプレットの出荷を望む重大なケースには助けにならないであろう。その拡張のある別のバージョンがエンドユーザのコンピュータ上にすでにインストールされている場合には、そのインストールされているものが束にされたものに優先する。
【0007】
したがって、共用ライブラリのある部分へのアクセスを可能にする一方で、その共用ライブラリの別の部分へのアクセスを制限するシステムが必要である。
【0008】
【課題を解決するための手段】
本発明による方法、システムおよび製品は、JARファイルのような共用ライブラリの部分へのアクセスを制限するためにクラスローダを使用することにより既存のシステムの欠点を克服する。クラスローダは、ライブラリ内のプログラムファイルにアクセスしようとしている外部プロセスとそのライブラリ自身の中のファイルとの間にインターフェースを発生させる。この明細書において具体的に表され、広義に説明されている本発明による方法、システムおよび製品は、プログラムファイルを共用ソフトウェアライブラリからロードする。典型的に、プログラムファイルはクラスローダによりロードされたクラス定義である。次に、ロードされたプログラムファイルへのインターフェースが生成される。インターフェースオブジェクトであることが好ましいインターフェースは、プログラムファイルがエクスポートされることが可能であるかどうかに関する状態インジケータを有している。この状態インジケータは、好ましいインターフェースオブジェクトの一部分である状態メソッドを実行することによって決定されることが好ましく、その状態インジケータは、プログラムファイルが共用ライブラリからエクスポートされることが可能かどうかを決定するために使用される。状態メソッドは典型的に、プログラムファイルがエクスポートされることが可能かどうかを示す共用ライブラリ内の属性を読出すことによって生成される。状態インジケータに基づいて、プログラムファイルがエクスポートされることができない場合、プログラムファイルへのアクセスが制限される。他方、プログラムファイルがエクスポート可能であることが状態インジケータにより示された場合には、プログラムファイルはリクエストプロセスに戻される。
【0009】
本発明の別の特徴によると、この明細書において具体的に表され、広義に説明されている方法、システムおよび製品は、共用ライブラリファイル内のオブジェクトクラス定義へのアクセスを制限するシステムを示している。このシステムは、共用ライブラリおよびクラスローダを維持するメモリ記憶装置を備えている。システムはまた、このメモリ記憶装置に接続されたプロセッサを備えている。このプロセッサは、クラスローダを使用してオブジェクトクラス定義をメモリ記憶装置上の共用ライブラリからロードするように動作する。適切なオブジェクトクラス定義の位置が共用ライブラリ内において突きとめられてロードされると、プロセッサはさらに、典型的にクラスローダ内のパッケージメソッドを呼出すことにより、メモリ記憶装置においてインターフェースオブジェクトのインスタンスを生成するように動作する。このインターフェースオブジェクトはオブジェクトクラス定義と関連しており、プロセッサによりインターフェースオブジェクトの一部分としてメモリ記憶装置において生成された状態メソッドを含んでいる。この状態メソッドは、プロセッサ上で実行する外部プロセスによりオブジェクトクラス定義がアクセス可能であるかどうかを指定する機能を定義する。プロセッサはまた、オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定されているかどうかを決定するために状態メソッドを呼出すように動作する。最後に、プロセッサは、オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定されていないことを、実行された状態メソッドが示した場合にオブジェクトクラス定義へのアクセスを制限することができる。
【0010】
本発明のさらに別の特徴によると、この明細書において具体的に表され、広義に説明されている方法、システムおよび製品は、共用ソフトウェアライブラリ内のオブジェクトクラス定義へのアクセスを制限するための命令を含んでいるコンピュータ読出し可能な媒体を示している。命令が実行されたとき、クラスローダを使用して共用ソフトウェアライブラリからオブジェクトクラス定義がロードされる。次に、そのオブジェクトクラス定義に関連したインターフェースオブジェクトのインスタンスが、そのインターフェースオブジェクトに関連した状態メソッドと共にクラスローダによって生成される。典型的に、インターフェースオブジェクトのインスタンスを生成するためにクラスローダ内の別のメソッドが呼出される。状態メソッドは、オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定されているかどうかを示す。状態メソッドは、オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定されているかどうかを決定するために呼出される。最後に、オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定されていないことを状態メソッドが示した場合、オブジェクトクラス定義へのアクセスは制限される。
【0011】
【発明の実施の形態】
この明細書において参考とされ、その一部分を構成している添付図面には、本発明の実施形態が示されている。図面および説明から本発明の利点および原理が明らかになるであろう。
以下、添付図面に示されている本発明による1実施形態を詳細に説明する。同じ参照符号は、可能な場合には常に同一または類似した部分を示すために図面および以下の説明において一貫して使用される。
【0012】
[序説]
一般に、本発明による方法およびシステムは、外部プロセスによりアクセスされることのできる共用ライブラリの部分を制限するためにクラスローダを使用することにより、Java(商標名)プログラミング言語で書かれたアプレットのようなプロセスの実行中に呼出しを処理する。そうすることにより、内部使用に制限されることを意図されている共用ライブラリの部分は、外部プロセスによりアクセスされて使用されることはできない。
【0013】
さらに詳細に説明すると、プログラムファイル(クラス定義のような)に対するリクエストは、共用ライブラリの外部の実行中のプロセス(アプレットのような)からクラスローダにより受取られる。クラスローダは、リクエストの受取りに応答して、適切なプログラムファイルを共用ライブラリからロードし、ロードされたプログラムファイルへのインターフェース(インターフェースオブジェクトのような)を発生させる。インターフェースは、プログラムファイルが外部プロセスにエクスポートされることが可能かどうかを示す状態インジケータ(状態メソッドのような)を有している。状態インジケータの値に基づいて、ロードされたプログラムファイルへのアクセスは、そのプログラムファイルへの発生されたインターフェースにより制限される。プログラムファイルへのアクセスが制限された場合、実行中のプロセスはプログラムファイルへのアクセスを拒否される。そうでない場合、実行中のプロセスはプログラムファイルへのアクセスをインターフェースを介して受取る。このようにして、クラスローダは正しく適切なクラス定義をロードするだけでなく、内部的にのみアクセスされることを意図されている共用ライブラリの部分へのアクセスを制限する能力を与えるためにも使用される。
【0014】
[コンピュータアーキテクチャ]
図1は、本発明による方法を実施し、本発明によるシステムを構成するのに適した例示的なデータ処理システム100 を示している。図1を参照すると、データ処理システム100 は、構内ネットワーク、広域ネットワークまたはインターネットのようなネットワーク170 に接続されたコンピュータシステム110 を含んでいる。
【0015】
コンピュータシステム110 は主記憶装置120 と呼ばれるメモリ記憶装置と、補助記憶装置130 と、中央処理装置(CPU)140 と、入力装置150 と、ビデオ表示装置160 とを含んでおり、これらはそれぞれコンピュータシステム110 の別の部分に電子的に接続されている。本発明による例示的な形態において、コンピュータシステム110 は、SPARC(商標名)コンピュータアーキテクチャを使用して構成される。SPARC(商標名)コンピュータアーキテクチャに関するさらに詳細な説明は、カリフォルニア州メトロパークのSPARCインターナショナル社から入手可能であり、ここにおいて参考文献とされているSPARC(商標名)V9参考マニュアルを含むいくつかの文献に記載されている。
【0016】
コンピュータシステム110 において、主記憶装置120 はオペレーティングシステム128 と、仮想(バーチャル)マシン(VM)126 と、クラスローダ122 と、および共用ライブラリ124 とを含んでいる。この説明のために例示されたVM126 はJava(商標名)仮想マシン(JVM)であり、それはJava(商標名)ソフトウェア開発キット(JDK)中に含まれているJava(商標名)ランタイム環境の一部である。JDKはカリフォルニア州パロアルトのサンマイクロシステムズ社から入手可能である。一般に、JVMは、プログラム(アプレットのような)から命令をバイトコードの形態で受取って抽象的な計算マシンのように動作する。バイトコードは本質的に、Java(商標名)プログラミング言語で書かれたプログラムのような汎用プログラム用のコンパイル済みのフォーマットである。命令またはバイトコードが受取られると、JVMはこれらのバイトコードをオブジェクトコードのような実行用の形態にダイナミックに変換してそれらを実行することによってこれらのバイトコードを解釈する。
【0017】
Java(商標名)プログラミング言語で書かれたアプレットのようなプログラムモジュールに対するこの実行方式は、JVMのプラットフォーム独立特性を容易にする。JVMに関するさらなる詳細は、ここにおいて参考文献とされている文献( Lindholm および Yellin 著“The Java Virtual Machine Specification”,Addison-Wesley,1997)を含むいくつかの文献に記載されている。
【0018】
プログラムモジュールの実行中、VM126 は、ロードされなければならないオブジェクトクラスへの記号による参照(symbolic reference)に直面する可能性がある。このような状況において、VM126 は典型的に、適切なプログラムファイルをロードするタスクをクラスローダに委任する。クラスローダは技術的に知られており、これまでロードされたことのないオブジェクトクラス定義がインタプリタにより要求された場合に通常使用される。基本的に、クラスローダはオブジェクトクラス定義を、このオブジェクトクラス定義が維持されている特定の記憶位置(遠隔地サーバまたはローカルメモリファイル)からロードする。通常のクラスローダのさらに詳細な説明は、カリフォルニア州マウンテンビューのサンマイクロシステムズ社にその権利が譲渡され、ここにおいて参考文献とされている米国特許第 5,727,147号明細書(“SYSTEM AND METHOD FOR RESOLVING SYMBOLIC REFERENCES TO EXTERNALLY LOCATED PROGRAM FILES ”)に記載されている。
【0019】
例示的なクラスローダ122 は、それが共用ライブラリ124 のような共用ライブラリの部分への選択的インターフェースメカニズムとして動作できるようにするいくつかの別の特徴が追加された通常のクラスローダである。とくに、クラスローダ122 は共用ライブラリ124 内のプログラムファイルへのインターフェースを生成することができる。そのインターフェースはまた、それらのプログラムファイルが外部プロセスにエクスポートされるか、あるいは外部プロセスによりアクセス可能であるかどうかを決定する状態インジケータを有している。適切なクラス定義を正しい位置からロードし、インターフェースとして動作するこの能力により、クラスローダ22は共用ライブラリ内の特定の、オブジェクトクラス定義のようなプログラムファイルへのアクセスを制限することが可能になる。
【0020】
たとえば、外部プロセス(VM126 と共同して実行するアプレットのような)は、特定のクラス定義がまだ主記憶装置中にロードされていないので、そのクラス定義をロードする必要がある。そのクラス定義が外部プロセスにエクスポートされることを意図されている場合には、そのクラス定義をただロードするだけでよい。しかしながら、そのクラス定義が外部プロセスによりアクセス可能であることを意図されていない場合、クラス定義へのアクセスを制限する別のステップが必要とされる。クラスローダ122 はリクエストを受取り、リクエストされたクラス定義を共用ライブラリ124 内からロードする。この例において、ライブラリ124 は、Java(商標名)パッケージまたはオブジェクトの多くのクラスの定義を維持している通常のJARファイルとして構成されている。この時点で、クラスローダ122 は、パッケージオブジェクトとも呼ばれるインターフェースオブジェクトを生成し、このインターフェースオブジェクトは、リクエストされているクラス定義をカプセル化し、状態インジケータとして状態メソッドを含んでいる。リクエストされているクラス定義が外部からアクセス可能であると指定されている場合、その状態メソッドの実行結果は“真”のような予め選択された値である。以下において、図2に関してさらに詳細な説明が行われる。
【0021】
さらに、本発明による構成はJVMと共に実施されるものとして説明されているが、本発明によるシステムおよび方法はまた、Java(商標名)環境以外の環境において実施されてもよいことが当業者により認識されるであろう。たとえば、共用ライブラリ内のプログラムファイル(クラス定義のような)に対するリクエストは、VM126 が必要とされることなく、オペレーティングシステム128 と共に実行するマルチスレッドアプリケーションプログラムモジュール(示されていない)から行なわれてもよい。
【0022】
さらに、本発明によるシステムおよび方法の全てまたは一部は、ハードディスク、フロッピーディスクおよびCD−ROM等の補助記憶装置、インターネットから受取られた搬送波、あるいは別の形態のROMまたはRAMのような別のコンピュータ読出し可能な媒体上に記憶されてもよいし、あるいはそこから読出されてもよいことが当業者により認識されるであろう。最後に、データ処理システム100 の特定のコンポーネントが説明されているが、当業者は、マルチプロセッサおよび種々の入出力装置のような付加的または異なったコンポーネントが例示的な実施形態による使用に適したデータ処理システム100 に含まれてもよいことを認識するであろう。
【0023】
[アクセス制限システム]
図2は、本発明の1実施形態にしたがって例示的な共用ライブラリ内のファイルへのアクセスを制限するために例示的なクラスローダがどのようにして使用されるかを示すさらに詳細なブロック図である。図1および2を参照とすると、VM126 、クラスローダ122 および共用ライブラリ124 は、相互作用するソフトウェアのブロックとして示されている。VM126 内には、このVM126 により解釈および実行される命令またはバイトコードを含むアプレット205 が存在する。アプレット205 からのバイトコードの実行中、VM126 は特定のオブジェクトクラス定義をロードする必要がある。これは、そのバイトコードが、まだ共用ライブラリ124 から主メモリ120 中にロードされていないその特定のオブジェクトクラスにより規定されたオブジェクトをリストするためである。そのバイトコードに適したオブジェクトクラス定義をロードするために、VM126 はクラスローダ122 を使用するか、あるいはそれに委任して、正しいオブジェクトクラス定義を見出す。このようにして、クラスローダ122 はオブジェクトクラス定義のためにVM126 からリクエストを受取る。
【0024】
リクエストに応答して、クラスローダ122 はロードすべき適切なオブジェクトクラス定義を決定する。図2に示されている例示的な実施形態では、適切なオブジェクトクラス定義は、クラス定義200 、202 および204 のような種々のプログラムファイルを維持している共用ライブラリ124 中に位置している。図2に示されている例において、クラスローダ122 は、オブジェクトクラス定義200 が適切な定義であることを決定し、共用ライブラリ124 からオブジェクトクラス定義を検索する。ここまでは、これは典型的に大部分の通常のクラスローダにより行なわれるものである。
【0025】
上述された標準的なクラスロード機能に加えて、クラスローダ122 は、オブジェクトクラス定義へのインターフェースを生成するメソッドを含む。例示的な実施形態において、メソッド220 はget packageと呼ばれている。get packageメソッド220 は、それが呼出されたとき、オブジェクトクラス定義200 をカプセル化するオブジェクト210 (インターフェースオブジェクトまたはパッケージオブジェクトと呼ばれる)のインスタンスを生成する。get packageメソッド220 はまた、メソッド215 (一般に、状態メソッドと呼ばれている)をインターフェースオブジェクト210 を生成する一環として生成し、このメソッド215 は、オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定されているかどうかを示す。典型的に、クラスローダ122 内のメソッド220 は、所望のオブジェクトクラス定義がエクスポートされることができるかどうかを示すインジケータまたは別の種類のフラッグタイプのメカニズムを求めて共用ライブラリ124 内を捜索する。例示的な実施形態において、get packageメソッド220 は、共用ライブラリ124 のマニフェストまたはヘッダ206 中の属性208 を読出す。マニフェスト206 は、共用ライブラリ124 内のコンテンツ(すなわち、プログラムファイル)に関する情報を維持している。マニフェスト206 の一部分として、属性208 は、外部プロセスにエクスポートされるか、あるいは外部プロセスによりアクセス可能であると指定された共用ライブラリ124 中のファイルのリストであることが好ましい。
【0026】
属性208 に基づいて、get packageメソッド220 は、実行されたときに適切な値を供給するか、あるいは返すようにインターフェースオブジェクト210 の中の状態メソッド215 を規定する。たとえば、オブジェクトクラス定義200 が外部プロセスによりアクセス可能なものではない場合、状態メソッド215 (例示的な実施形態では“is exported”と呼ばれている)は、それが呼出されたときに“偽”値を返す。このようにしてクラスローダ122 は、そのプログラムファイルがエクスポートされないものであることを状態インジケータ(状態メソッド215 を実行した結果のような)が示した場合、正しいプログラムファイル(アプレット205 のような)を見出してロードする。
【0027】
共用ライブラリ124 がJARファイルであるさらに詳細な実施形態において、JARファイルは、そのパッケージの、エクスポートされるべき1以上のものを宣言する能力を備えている。エクスポートされたパッケージ内に含まれているクラスおよびリソースは別のJARファイルに可視的である。エクスポートされないパッケージは専用と呼ばれ、それらのクラスおよびリソースはそのJARファイル内のみで可視的である。また、専用のクラスおよびリソースは局部的有効範囲のものとされ、クラス/リソース名がこのJARファイルからのコードで解かれなければならないときに、JARファイル中の定義が、可視である可能性のある同じ名前の任意の他のクラス/リソースに優先することを意味する。
【0028】
この詳細な実施形態において、エクスポートされたパッケージは、Exported:(真|偽)のような新しいエントリ当りのマニフェスト属性208 により宣言される。このブール属性は、特有のパッケージがエクスポートされるべきか否かを示す。たとえば、以下のマニフェストエントリ:
名前:javax/foo/
エクスポート:真
では、パッケージjavax.fooはエクスポートされることとなる。
【0029】
この属性はパッケージおよびディレクトリだけでなく、個々のクラスまたはリソースファイルにも適用されることができる。この実施形態において、パッケージまたはディレクトリがエクスポートされる場合、それが含んでいるクラス/リソースの全ては、それら自身のエクスポート:偽属性を有することによって明示的に専用のものにされていない限り、自動的にエクスポートされる。しかしながら、パッケージ/ディレクトリは、それらがサブパッケージ/サブディレクトリを含んでいる場合は、通常は自動的にエクスポートされない。
【0030】
例示的な1実施形態において、デフォルトは典型的に、特定されているExported属性が全くない場合にエクスポートされるべきパッケージ/ディレクトリおよびクラス/リソースの全てに対してなされる。少くとも1つのExported属性が特定されている場合、エクスポートされると宣言されていない限り、デフォルトとは、各々の全てのものが専用であるということである。
【0031】
Java(商標名)プログラミング言語内のJARツールは、エクスポートファイルが特定されることを可能にする−eオプションを有している。これは、ソフトウェア開発者にとって都合がよく、それによって彼らは適切なマニフェストファイルを生成しなければならないのではなく、エクスポートを簡明にリストすることができる。エクスポートファイルのフォーマットは、パッケージ名およびJARファイルエントリのシーケンスであることが好ましく、これらパッケージ名およびJARファイルエントリはそれぞれ新しいラインによって終端される。たとえば、−eオプションを使用して以下のエクスポートファイル:
foo.bar
foo.baz
/images/foo.gif
/foo.properties
を特定することは、通常の−mオプションにより以下のマニフェストファイル:
【数1】
を特定することと同じである。
【0032】
−eおよび−mオプションは一緒に使用されることができ、その場合マニフェストが組合せられる。マニフェストの組合せにおいて、−eオプションから発生したExported属性が優先する。すなわち、他のマニフェストからのExported属性のいずれも無視されるため、エクスポートファイルは常に完全なエクスポートのセットをリストする。
【0033】
例示的な1実施形態において、クラス java.net.URLClassLoaderは、クラスおよびリソースをJARファイルのクラスパスおよびディレクトリURLからロードするためにクラスローダ122 として使用される。図2に示されているように、この実施形態は基本的に、そのマニフェスト中の1以上のエクスポートされたパッケージを宣言したクラスパス上に各JARファイルをラップする(wrap)ために小さいクラスローダを生成することを含む。このクラスローダはJar Class Loaderと呼ばれることが好ましく、それは専用クラスになり、それの目的は、共用ライブラリ124 (たとえば、JARファイル)からロードされたどのコードでもそれ自身の専用クラスおよびリソースにアクセスすることを可能にし、一方それらがそのクラスパス上の他のJARファイルから隠されたままにしておくことである。
【0034】
以下は、擬似コードで書かれたJar Class Loaderの例示的な構成である:
【数2】
【数3】
【数4】
【数5】
【0035】
上記の例の擬似コードに関連して、URL Class Loaderは、1以上のエクスポートされたパッケージを宣言したクラスパス上の各JARファイルに対してJarClassLoaderの新しいインスタンスを生成するであろう。Jar Class Loaderに対する代理の親は、JARファイルを含んでいるクラスパスに対して生成されるURL Class Loaderのインスタンスである。JARファイルからロードされたコードがリンクされた場合は常にJar Class Loader's load Class メソッドが呼出されるであろう。
【0036】
最初に、クラスがすでにロードされたかどうかをチェックするためにfind Loaded Class() が呼出される。次に、そのクラスがこのJARファイル内に含まれているが、エクスポートされると宣言されていない場合、そのクラスをJARファイルからロードしようとする試みがなされる。これが失敗した場合、公開クラスをチェックするために親 URL Class Loader's loaded Class()メソッドが呼出される。これは公開クラスに対する通常の範囲を維持しながら、専用クラスがローカル範囲を有することを可能にする。
【0037】
URL Class Loaderは、それがクラスパス上の別のJARファイルによって参照されたクラスに対してこのJARファイルをチェックする場合に、そのクラスをロードするためにJar Class Loader's load Exported Classメソッドを呼出すであろう。このメソッドは、それが代理の親をチェックしないこと、およびそれがエクスポートされると宣言されたJARファイルからしかクラスをロードしないことを除いて、Load Classメソッドに類似している。これによって、そのクラスパス上の別のJARファイルにより専用のクラスがロードされることが阻止される。
【0038】
[アクセス制限プロセス]
以下図3のフローチャートを参照として、クラスローダを使用して共用ライブラリ中のオブジェクトクラス定義のようなプログラムファイルへのアクセスを制限する本発明による例示的な方法のステップをさらに詳細に説明する。図1乃至3を参照とすると、方法300 はステップ305 からスタートし、このステップ305 において外部プロセスはリクエストされたクラス定義をロードするようにクラスローダに委任する。例示的な実施形態において、アプレット205 は、VM126 により解釈されるバイトコードを有しており、したがってVM126 は、バイトコードを解釈するために必要とされる適切なオブジェクトクラス定義をロードするためにクラスローダ122 を呼出す。
【0039】
ステップ310 において、適切なクラス定義はその位置を突きとめられてロードされる。例示的な実施形態において、クラス定義200 は共用ライブラリ124 から検索すべき適切なクラス定義であるとクラスローダ122 により決定される。
【0040】
ステップ315 において、ロードされたクラス定義に対するインターフェースを発生させるメソッドが呼出される。一般に、そのインターフェースは、別のファイルまたは情報へのアクセスを選択的に行うことのできる任意のタイプのプログラムインターフェースまたはプログラミング構造であることができる。例示的な実施形態においては、インターフェースオブジェクト210 のインスタンスをインターフェースとして生成するためにget packageメソッド220 が呼出される。get packageメソッド220 が実行するとき、ステップ330 において共用ライブラリ124 中の属性208 が読出され、そのインターフェースは、クラス定義200 のような共用ライブラリ124 中のリクエストされたプログラムファイルへのアクセスが可能かどうかが決定される。
【0041】
ステップ325 において、インターフェースのインスタンス(たとえば、インターフェースオブジェクト210 )がクラス定義200 に対して生成される。インターフェースオブジェクト210 を生成する一環として、ステップ330 において共用ライブラリ124 中の属性208 に応じて状態メソッドが生成される。状態メソッドは、クラス定義が外部プロセスに対してアクセス可能であると指定されているかどうかを属性208 に応じて決定するために使用される。例示的な実施形態では、状態メソッドはインターフェースオブジェクト210 内のis exportedメソッド215 として構成される。実行時、is exportedメソッド215 は一般に、クラス定義200 がアプレット205 のような外部プロセスによりアクセス可能かどうかを示す状態インジケータとして動作する。したがって、クラス定義200 が外部プロセスに対してアクセス可能であると推測された場合、is exportedメソッド215 は“真”のエクスポートインジケータを戻す。
【0042】
ステップ335 において状態メソッドが呼出され、それはステップ340 においてクラス定義、すなわち一般的に述べると、インターフェースオブジェクト210 によりカプセル化されたプログラムファイルがエクスポートされることができるかどうかを決定する。クラス定義はエクスポート可能であることをエクスポートインジケータが示している場合、ステップ340 はステップ345 に進み、このステップでクラス定義は、リクエストプロセス(たとえば、アプレット205 を解釈するVM126 )にクラスローダ122 によって戻される。そうでない場合、ステップ340 は直接ステップ350 に進み、このステップにおいてクラス定義へのアクセスが制限され、そのクラス定義は、リクエストプロセスには戻されない。その代わりに、クラスローダ122 は、アクセス不可能なファイルへのアクセスを試みたエラー状態、およびリクエストされたクラス定義が見出されなかったことを示す例外を発する。
【0043】
[結論]
上述された本発明による方法およびシステムは、プログラムファイルのような共用ライブラリ124 の部分への、あるいは、とくにオブジェクトクラス定義へのアクセスを制限する。これらの方法およびシステムはクラスローダ122 を使用して、オブジェクトクラス定義を共用ライブラリ124 からロードし、共用ライブラリ124 のロードされたクラス定義200 へのインターフェースオブジェクト210 のようなインターフェースを生成する。インターフェースの一環として、共用ライブラリ124 内の属性208 の値に応じて状態メソッドが生成される。状態メソッドを呼出すことにより、インターフェース中のカプセル化されたクラス定義が、アプレット205 のような外部プロセスによりアクセス可能であると指定されているかどうかを示すエクスポートインジケータが戻される。クラス定義が共用ライブラリに対して内部のみで使用され、外部プロセスにより使用されないことが意図されている場合、状態メソッドは、そうであることを示し、クラスローダ122 は、共用ライブラリ124 のその部分へのアクセスを制限する。
【0044】
上記の本発明の構成の説明は、例示および説明のために記載されたものである。それは本発明を網羅するものではなく、また本発明を開示された形態に制限するものでもない。上記の教示を考慮して修正および変形が可能であり、それは本発明を実用化するときに行われてもよい。たとえば、記載されている形態はソフトウェアを含んでいるが、本発明はハードウェアおよびソフトウェアの組合せとして、あるいはハードウェアのみで構成されてもよい。本発明によるシステムは、Java(商標名)プログラミング言語、Smalltalk−80およびC++を含む全てのコンピュータプログラミング言語で書かれたプログラムを実行する場合にも適応可能である。
【0045】
さらに、当業者は、本発明がオブジェクト指向のシステムに関して記載されているが、それは非オブジェクト指向のプログラミングシステムに関しも同様に実施されることができることを認識するであろう。本発明の技術的範囲は、特許請求の範囲およびその均等物により規定される。
【図面の簡単な説明】
【図1】 本発明による方法およびシステムによる使用に適したデータ処理システムのブロック図。
【図2】 本発明の1実施形態にしたがって共用ライブラリ内のファイルへのアクセスを制限するためにクラスローダがどのようにして使用されることができるかを示すブロック図。
【図3】 共用ライブラリ内のファイルへのアクセスを制限するためにクラスローダにより行なわれる本発明の1実施形態による典型的なステップを示すフローチャート。
Claims (15)
- 共用ライブラリ内のプログラムファイルへの外部プロセスによるアクセスを制限する方法において、当該方法は、プロセッサと該プロセッサに接続されたメモリ記憶装置とを含むデータ処理システムにより実行され、当該方法は、前記プロセッサが前記メモリ記憶装置内のクラスローダを用いて、
プログラムファイルを共用ライブラリからロードし、
ロードされたプログラムファイルと関連したインターフェースオブジェクトを発生させ、そのインターフェースオブジェクトは状態インジケータメソッドを有しており、状態インジケータメソッドは、クラスローダ内のパッケージメソッドを呼出すことによって生成され、パッケージメソッドは、プログラムファイルがエクスポート可能かどうかを示す共用ライブラリ内の属性を読出し、且つ該属性に基づいて、プログラムファイルがエクスポート可能であるか否かを示す情報を含む状態インジケータ出力を実行されるときに供給するように状態インジケータメソッドを規定し、
この状態インジケータメソッドの状態インジケータ出力に基づいて、プログラムファイルがエクスポート可能かどうかを決定し、
プログラムファイルがエクスポート可能ではないと決定された場合には、プログラムファイルへのアクセスを制限する
ステップを含んでいる方法。 - プログラムファイルがエクスポート可能である場合、前記プロセッサがクラスローダを用いて、プログラムファイルをリクエストしているプロセスへ戻すステップをさらに含んでいる請求項1記載の方法。
- 前記プロセッサが、プログラムファイルに対するリクエストを外部プロセスから受取るステップをさらに含んでおり、前記ロードするステップはリクエストを外部プロセスから受取ったことに応答してプログラムファイルをロードするステップをさらに含んでいる請求項1記載の方法。
- 前記プログラムファイルをロードするステップは、クラスローダを使用してプログラムファイルとしてクラス定義をロードするステップをさらに含んでいる請求項1記載の方法。
- 前記インターフェースオブジェクトを発生させるステップは、
クラス定義をカプセル化しているインターフェースオブジェクトをクラス定義と関連したインターフェースオブジェクトとして発生させるステップをさらに含んでいる請求項4記載の方法。 - 前記属性はクラス定義がエクスポートされることが可能かどうかを示す請求項4記載の方法。
- さらに、状態インジケータ出力を供給するステップにおいて、クラス定義がエクスポートされることが可能かどうかを示すエクスポートインジケータを状態インジケータ出力として供給するために状態インジケータメソッドを呼出すステップを含んでいる請求項5記載の方法。
- 共用ライブラリ内のオブジェクトクラス定義へのアクセスを制限する方法を行うようにデータ処理システムを制御するための命令を含んでいるコンピュータ読出し可能な記憶媒体において、前記アクセスを制限する方法が、
クラスローダを使用して共用ライブラリからオブジェクトクラス定義をロードし、
クラスローダ内のパッケージメソッドを呼出して、オブジェクトクラス定義に関連したインターフェースオブジェクトのインスタンスを生成し、
クラスローダ内の前記パッケージメソッドを呼出して、オブジェクトクラス定義がエクスポート可能かどうかを示す共用ライブラリ内の属性を読出し、且つ該属性に基づいて、オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定されているかどうかを示す状態インジケータ出力を実行されるときに供給するように状態インジケータメソッドを規定することによって、前記インターフェースオブジェクトの一部分として状態インジケータメソッドを生成し、
オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定されているかどうかを決定するために状態インジケータメソッドを呼出し、
オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定されていないことが状態インジケータメソッドにより示された場合、オブジェクトクラス定義に対するアクセスを制限するステップを含んでいる
コンピュータ読出し可能な記憶媒体。 - さらに、オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定されていることが状態インジケータメソッドにより示された場合にのみ、オブジェクトクラス定義をリクエストしている外部プロセスへ戻す請求項8記載のコンピュータ読出し可能な記憶媒体。
- さらに、オブジェクトクラス定義に対するリクエストを外部プロセスから受取り、ロードするステップは外部プロセスからのリクエストの受取りに応答してオブジェクトクラス定義をロードするステップをさらに含んでいる請求項8記載のコンピュータ読出し可能な記憶媒体。
- 状態インジケータメソッドを呼出すステップは、クラス定義がエクスポートされることが可能かどうかを示すエクスポートインジケータを供給するために状態インジケータメソッドを呼出すステップをさらに含んでいる請求項8記載のコンピュータ読出し可能な記憶媒体。
- 共用ライブラリファイル内のオブジェクトクラス定義へのアクセスを制限するコンピュータシステムにおいて、
共用ライブラリファイルおよびクラスローダを維持するメモリ記憶装置と、
このメモリ記憶装置に接続されたプロセッサとを備えており、このプロセッサは、
クラスローダを使用してオブジェクトクラス定義をメモリ記憶装置上の共用ライブラリからロードし、
クラスローダ内のパッケージメソッドを呼出して、メモリ記憶装置においてインターフェースオブジェクトのインスタンスを生成し、このインターフェースオブジェクトはオブジェクトクラス定義と関連しており、
前記パッケージメソッドを呼出して、オブジェクトクラス定義がエクスポート可能かどうかを示す共用ライブラリ内の属性を読出し、且つ該属性に基づいて、実行されるときにこの状態インジケータメソッドは、前記プロセッサ上で実行する外部プロセスによりオブジェクトクラス定義がアクセス可能であるかどうかを指定する状態インジケータ出力を実行されるときに供給するよう状態インジケータメソッドを規定することによって、メモリ記憶装置において状態インジケータメソッドをインターフェースオブジェクトの一部分として生成し、
オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定されているかどうかを決定するために状態インジケータメソッドを呼出し、
オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定されていないことが状態インジケータメソッドにより示された場合、オブジェクトクラス定義へのアクセスを制限するように動作するコンピュータシステム。 - プロセッサはさらに、オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定されていることが状態インジケータメソッドにより示された場合にのみ、インターフェースオブジェクトによってオブジェクトクラス定義へのアクセスを可能にするように動作する請求項12記載のコンピュータシステム。
- プロセッサはさらに、プロセッサ上で実行するオブジェクトクラス定義に対するリクエストを外部プロセスから受取るように動作し、ロードするステップは外部プロセスからのリクエストの受取りに応答してオブジェクトクラス定義をロードするステップをさらに含んでいる請求項12記載のコンピュータシステム。
- プロセッサはさらに、クラス定義がエクスポートされることが可能であるかどうかを示すエクスポートインジケータを供給するために状態インジケータメソッドを呼出すように動作する請求項12記載のコンピュータシステム。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/492,120 US6385722B1 (en) | 2000-01-27 | 2000-01-27 | Method, system, and article of manufacture for limiting access to program files in a shared library file |
| US09/492,120 | 2000-01-27 | ||
| PCT/US2001/001712 WO2001055839A1 (en) | 2000-01-27 | 2001-01-19 | Method, system, and article of manufacture for limiting access to program files in a shared library file |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2003521063A JP2003521063A (ja) | 2003-07-08 |
| JP4841787B2 true JP4841787B2 (ja) | 2011-12-21 |
Family
ID=23955020
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001555319A Expired - Lifetime JP4841787B2 (ja) | 2000-01-27 | 2001-01-19 | 共用ライブラリファイル内のプログラムファイルへのアクセスを制限するための方法、システムおよび記憶媒体 |
Country Status (5)
| Country | Link |
|---|---|
| US (2) | US6385722B1 (ja) |
| EP (1) | EP1261913A4 (ja) |
| JP (1) | JP4841787B2 (ja) |
| AU (1) | AU2001229615A1 (ja) |
| WO (1) | WO2001055839A1 (ja) |
Families Citing this family (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6385722B1 (en) * | 2000-01-27 | 2002-05-07 | Sun Microsystems, Inc. | Method, system, and article of manufacture for limiting access to program files in a shared library file |
| US7343421B1 (en) * | 2000-02-14 | 2008-03-11 | Digital Asset Enterprises Llc | Restricting communication of selected processes to a set of specific network addresses |
| US7089242B1 (en) * | 2000-02-29 | 2006-08-08 | International Business Machines Corporation | Method, system, program, and data structure for controlling access to sensitive functions |
| US6907421B1 (en) | 2000-05-16 | 2005-06-14 | Ensim Corporation | Regulating file access rates according to file type |
| US7143024B1 (en) * | 2000-07-07 | 2006-11-28 | Ensim Corporation | Associating identifiers with virtual processes |
| US7219354B1 (en) | 2000-12-22 | 2007-05-15 | Ensim Corporation | Virtualizing super-user privileges for multiple virtual processes |
| JP4629929B2 (ja) * | 2001-08-23 | 2011-02-09 | 株式会社リコー | デジタルカメラシステム及びこの制御方法 |
| US6859812B1 (en) * | 2001-10-31 | 2005-02-22 | Hewlett-Packard Development Company, L.P. | System and method for differentiating private and shared files within a computer cluster |
| US7665087B1 (en) * | 2001-12-13 | 2010-02-16 | Iona Technologies Limited | Memory efficient classloading to reduce the number of class copies |
| US7272827B2 (en) * | 2002-04-03 | 2007-09-18 | International Business Machines Corporation | Statically detecting externally referenced interfaces of a program |
| JP4115759B2 (ja) * | 2002-07-01 | 2008-07-09 | 株式会社東芝 | 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム |
| US7171412B2 (en) * | 2002-10-07 | 2007-01-30 | Sun Microsystems, Inc. | Restricted access model for hierarchical data structures |
| WO2004046969A1 (en) * | 2002-11-15 | 2004-06-03 | Bigchampagne, Llc. | Monitor file storage and transfer on a peer-to-peer network |
| 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 |
| US7937717B2 (en) * | 2004-09-13 | 2011-05-03 | Tvworks, Llc | Method and apparatus enabling multiple application sharing of classes |
| US7941402B2 (en) * | 2004-09-24 | 2011-05-10 | Sap Ag | Storing and using classes in databases |
| US9606846B2 (en) * | 2005-07-29 | 2017-03-28 | Sap Se | System and method for dynamic proxy generation |
| US20070027877A1 (en) * | 2005-07-29 | 2007-02-01 | Droshev Mladen I | System and method for improving the efficiency of remote method invocations within a multi-tiered enterprise network |
| US8789016B2 (en) * | 2005-12-29 | 2014-07-22 | Panasonic Corporation | Systems and methods for providing user configurable software libraries |
| US20070168509A1 (en) * | 2005-12-30 | 2007-07-19 | Droshev Mladen I | System and method for remote loading of classes |
| US20070260577A1 (en) * | 2006-03-30 | 2007-11-08 | Microsoft Corporation | Providing COM access to an isolated system |
| US20090055248A1 (en) * | 2006-08-22 | 2009-02-26 | Wolf Andrew L | Method of administering a search engine with a marketing component |
| US20080059423A1 (en) * | 2006-08-22 | 2008-03-06 | Andrew Wolf | Method of administering a search engine with a marketing component |
| US20090007068A1 (en) * | 2007-06-27 | 2009-01-01 | Microsoft Corporation | Accessing Non-Public Code |
| US8397227B2 (en) * | 2007-12-04 | 2013-03-12 | International Business Machines Corporation | Automatic deployment of Java classes using byte code instrumentation |
| US8276125B2 (en) * | 2007-12-04 | 2012-09-25 | International Business Machines Corporation | Automatic discovery of the java classloader delegation hierarchy |
| US9015107B2 (en) * | 2008-03-28 | 2015-04-21 | Oracle International Corporation | Temporal relational database management system |
| JP5803157B2 (ja) * | 2011-03-07 | 2015-11-04 | 日本電気株式会社 | 情報処理装置、プログラム不正検知方法、およびプログラム不正検知プログラム |
| JP6102136B2 (ja) * | 2012-09-20 | 2017-03-29 | 日本電気株式会社 | モジュール管理装置、モジュール管理システム及びモジュール管理方法 |
| JP6207984B2 (ja) | 2013-11-15 | 2017-10-04 | 株式会社東芝 | 情報処理装置、情報処理方法、及びプログラム |
| US20150277941A1 (en) * | 2014-02-06 | 2015-10-01 | Openpeak Inc. | Method and system for linking to shared library |
| WO2021257217A1 (en) * | 2020-06-16 | 2021-12-23 | Stoneridge Electronics Ab | System and process for dynamic information discovery between commercial shipping assets |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH036640A (ja) * | 1989-05-15 | 1991-01-14 | Internatl Business Mach Corp <Ibm> | アクセス特権制御方法及びシステム |
| JPH07175730A (ja) * | 1993-01-26 | 1995-07-14 | Internatl Business Mach Corp <Ibm> | オブジェクト指向環境においてデータを転送するためのシステム及び方法 |
| JPH09212365A (ja) * | 1996-01-03 | 1997-08-15 | Internatl Business Mach Corp <Ibm> | 分散コンピューティング環境でのオブジェクト・セキュリティ・サービス認可の統合を含む情報取り扱いシステム、方法および製品 |
| JPH10320205A (ja) * | 1997-05-20 | 1998-12-04 | Fujitsu Ltd | 情報処理装置 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4638298A (en) | 1985-07-16 | 1987-01-20 | Telautograph Corporation | Communication system having message repeating terminals |
| US5359721A (en) * | 1991-12-18 | 1994-10-25 | Sun Microsystems, Inc. | Non-supervisor mode cross address space dynamic linking |
| US5615400A (en) * | 1993-06-30 | 1997-03-25 | Apple Computer, Inc. | System for object oriented dynamic linking based upon a catalog of registered function set or class identifiers |
| US5504892A (en) * | 1994-09-08 | 1996-04-02 | Taligent, Inc. | Extensible object-oriented file system |
| US5727147A (en) | 1995-12-08 | 1998-03-10 | Sun Microsystems, Inc. | System and method for resolving symbolic references to externally located program files |
| US5815415A (en) * | 1996-01-19 | 1998-09-29 | Bentley Systems, Incorporated | Computer system for portable persistent modeling |
| US5987608A (en) * | 1997-05-13 | 1999-11-16 | Netscape Communications Corporation | Java security mechanism |
| US6134594A (en) * | 1997-10-28 | 2000-10-17 | Microsoft Corporation | Multi-user, multiple tier distributed application architecture with single-user access control of middle tier objects |
| EP0993631B1 (en) * | 1998-05-06 | 2009-07-22 | Sun Microsystems, Inc. | Processing apparatus and method |
| US6385722B1 (en) * | 2000-01-27 | 2002-05-07 | Sun Microsystems, Inc. | Method, system, and article of manufacture for limiting access to program files in a shared library file |
-
2000
- 2000-01-27 US US09/492,120 patent/US6385722B1/en not_active Expired - Lifetime
-
2001
- 2001-01-19 WO PCT/US2001/001712 patent/WO2001055839A1/en not_active Ceased
- 2001-01-19 EP EP01946958A patent/EP1261913A4/en not_active Withdrawn
- 2001-01-19 JP JP2001555319A patent/JP4841787B2/ja not_active Expired - Lifetime
- 2001-01-19 AU AU2001229615A patent/AU2001229615A1/en not_active Abandoned
-
2002
- 2002-05-07 US US10/139,328 patent/US6996707B2/en not_active Expired - Lifetime
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH036640A (ja) * | 1989-05-15 | 1991-01-14 | Internatl Business Mach Corp <Ibm> | アクセス特権制御方法及びシステム |
| JPH07175730A (ja) * | 1993-01-26 | 1995-07-14 | Internatl Business Mach Corp <Ibm> | オブジェクト指向環境においてデータを転送するためのシステム及び方法 |
| JPH09212365A (ja) * | 1996-01-03 | 1997-08-15 | Internatl Business Mach Corp <Ibm> | 分散コンピューティング環境でのオブジェクト・セキュリティ・サービス認可の統合を含む情報取り扱いシステム、方法および製品 |
| JPH10320205A (ja) * | 1997-05-20 | 1998-12-04 | Fujitsu Ltd | 情報処理装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20020169791A1 (en) | 2002-11-14 |
| US6996707B2 (en) | 2006-02-07 |
| JP2003521063A (ja) | 2003-07-08 |
| WO2001055839A1 (en) | 2001-08-02 |
| EP1261913A1 (en) | 2002-12-04 |
| EP1261913A4 (en) | 2004-07-21 |
| AU2001229615A1 (en) | 2001-08-07 |
| US6385722B1 (en) | 2002-05-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4841787B2 (ja) | 共用ライブラリファイル内のプログラムファイルへのアクセスを制限するための方法、システムおよび記憶媒体 | |
| JP4880121B2 (ja) | バーチャル・マシン環境でネイティブ・コードを変換し、実行する方法および装置 | |
| US6772408B1 (en) | Event model using fixed-format text strings to express event actions | |
| US6470494B1 (en) | Class loader | |
| US6584612B1 (en) | Transparent loading of resources from read-only memory for an application program | |
| US7107592B2 (en) | Method, system, and program for making objects available for access to a client over a network | |
| US6345382B1 (en) | Run-time customization in object-oriented design | |
| US6792612B1 (en) | Java runtime system with modified constant pool | |
| US11782774B2 (en) | Implementing optional specialization when compiling code | |
| US6834391B2 (en) | Method and apparatus for automated native code isolation | |
| EP1190307A2 (en) | Method and system for dynamic proxy classes | |
| US20030033443A1 (en) | Virtual machine integration application program interface | |
| JP2002517815A (ja) | オブジェクトベースプログラミングでのメソッド参照 | |
| KR20010034514A (ko) | 원격 메소드를 식별하는 해시 판정 방법 및 시스템 | |
| US7080383B1 (en) | System and method for extending functionality of a class object | |
| US20030051073A1 (en) | Lazy loading with code conversion | |
| US6918126B1 (en) | Method and apparatus for creating and enforcing protected system level Java code | |
| WO2006099061A2 (en) | Dynamic creation of proxy software objects at time of execution | |
| US7840967B1 (en) | Sharing data among isolated applications | |
| US7873951B1 (en) | Automated object delegation | |
| US7886286B2 (en) | Integration of non-componentized libraries in component-based systems | |
| JP2001051741A (ja) | 完全要求駆動型リンク | |
| Turner et al. | Creating XPCOM Components | |
| Bechler | Java Unmarshaller Security | |
| Bukovics | . NET 2.0 Interoperability Recipes: A Problem-Solution Approach |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080108 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101221 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110322 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110419 |
|
| RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20110421 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110815 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110818 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110906 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111005 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4841787 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141014 Year of fee payment: 3 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |