JP2003521063A - Method, system and product for restricting access to program files in shared library files - Google Patents

Method, system and product for restricting access to program files in shared library files

Info

Publication number
JP2003521063A
JP2003521063A JP2001555319A JP2001555319A JP2003521063A JP 2003521063 A JP2003521063 A JP 2003521063A JP 2001555319 A JP2001555319 A JP 2001555319A JP 2001555319 A JP2001555319 A JP 2001555319A JP 2003521063 A JP2003521063 A JP 2003521063A
Authority
JP
Japan
Prior art keywords
class definition
shared library
interface
program file
object class
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
JP2001555319A
Other languages
Japanese (ja)
Other versions
JP4841787B2 (en
Inventor
コネリー、デビッド
リアン、シェン
ベンジャミン、レナウド
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 JP2003521063A publication Critical patent/JP2003521063A/en
Application granted granted Critical
Publication of JP4841787B2 publication Critical patent/JP4841787B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44552Conflict resolution, i.e. enabling coexistence of conflicting executables

Abstract

(57)【要約】 本発明は、外部プロセス(126) と共用ライブラリ(124) 中のクラス定義(200) のようなプログラムファイルとの間に選択的インターフェース(210) を生成するクラスローダ(122) を使用することによって共用ソフトウェアライブラリ(124) の部分へのアクセスを制限する。これによって、ライブラリ専用であるか、あるいはライブラリ内部にあるままであるように意図された共用ライブラリ(124) の部分が外部プロセス(126) によりロードされることが阻止される。本発明は、共用ライブラリ(124) からクラス定義(200) のようなプログラムファイルをロードし、ロードされたプログラムファイル(200) に対するオブジェクト(210) のようなインターフェースを発生させる。プログラムファイルがエクスポートされることが可能かどうかの決定は、インターフェースと関連した状態インジケータに基づいて行なわれる。プログラムがエクスポートされることができないと決定された場合、インターフェースはプログラムファイルへのアクセスを制限する。 (57) [Summary] The present invention provides a class loader (122) that creates a selective interface (210) between an external process (126) and a program file such as a class definition (200) in a shared library (124). ) To restrict access to portions of the shared software library (124). This prevents portions of the shared library (124) that are dedicated to the library or intended to remain inside the library from being loaded by the external process (126). The present invention loads a program file, such as a class definition (200), from a shared library (124) and generates an interface, such as an object (210), to the loaded program file (200). The determination of whether a program file can be exported is made based on a status indicator associated with the interface. If it is determined that the program cannot be exported, the interface will restrict access to the program file.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】TECHNICAL FIELD OF THE INVENTION

本発明は、共用ソフトウェアライブラリの部分へのアクセスを制限するための
システムに関し、とくに、クラスローダを使用して共用ライブラリ内のオブジェ
クトクラス定義ファイルへのアクセスを制限するシステムに関する。
The present invention relates to a system for restricting access to parts of a shared software library, and more particularly to a system for using a class loader to restrict access to object class definition files in a shared library.

【0002】[0002]

【従来の技術】[Prior art]

ソフトウェアベンダーは典型的に、彼等の商品をJava(商標名)オブジェ
クト指向プログラミング言語で書かれ、JARファイルと呼ばれる通常の共用ラ
イブラリファイルとして実装されたライブラリのような1組の共用ライブラリと
して出荷する。こうして、これらのライブラリ内に記憶されたプログラムファイ
ルは、ベンダーの商品の一部である任意のプログラムモジュールにより容易に効
率的に共用され、使用されることができる。
Software vendors typically ship their products as a set of shared libraries, such as libraries written in the Java ™ Object Oriented Programming Language and implemented as ordinary shared library files called JAR files. . Thus, the program files stored in these libraries can be easily and efficiently shared and used by any program module that is part of a vendor's product.

【0003】 共用ライブラリは、ベンダーの商品がオブジェクト指向プログラミングを使
用して書かれている場合、クラス定義を維持するために使用されることが多い。
オブジェクト指向プログラミング環境においては、オブジェクトは一般にデータ
メンバおよびそのデータメンバを操作する機能メンバ(またはメソッド)をカプ
セル化する。オブジェクトは、同じクラスのオブジェクトにより共用される種々
のデータメンバおよびメソッドを規定するクラスのインスタンスである。したが
って、共用ライブラリは、ベンダーの商品で使用されるオブジェクトの各タイプ
を規定するために使用されることができる。
Shared libraries are often used to maintain class definitions when vendor products are written using object oriented programming.
In an object oriented programming environment, objects generally encapsulate data members and the functional members (or methods) that operate on those data members. An object is an instance of a class that defines various data members and methods shared by objects of the same class. Thus, shared libraries can be used to define each type of object used in a vendor's product.

【0004】[0004]

【発明が解決しようとする課題】[Problems to be Solved by the Invention]

ユーザは、共用されることを意図された共用ライブラリの部分にアクセスでき
ることが重要である。これは、そのコンテンツ(一般にプログラムファイルと呼
ばれる)がこのようなライブラリ構成においてどのように使用されることを意図
されているかということである。しかしながら、コンテンツの全てが共用ライブ
ラリの外部で使用されることを意図されているわけではない。ライブラリ構成内
のみで使用されることを意図されていても、共用ライブラリを使用するいずれの
コードによりアクセスされることのできるクラス定義およびオブジェクトが存在
する。その結果、共用ライブラリを使用したソフトウェアベンダーが直面する問
題の1つは、ライブラリ構成の外部で共用されることを意図されていない共用ラ
イブラリの部分へのアクセスを制限することである。たとえば、JARファイル
中にパッケージされたJava(商標名)ライブラリはパブリックであると宣言
されており、そのためJava(商標名)パッケージがそのライブラリの内部だ
けで使用されることを意図されているにもかかわらず、Java(商標名)ライ
ブラリを使用するどのコードによってでもアクセスされることが可能である。
It is important that users have access to the parts of the shared library that are intended to be shared. This is how that content (commonly called a program file) is intended to be used in such a library configuration. However, not all of the content is intended to be used outside of a shared library. There are class definitions and objects that can be accessed by any code that uses shared libraries, even if they are intended to be used only within the library configuration. As a result, one of the problems faced by software vendors using shared libraries is limiting access to portions of the shared library that are not intended to be shared outside the library configuration. For example, a Java (TM) library packaged in a JAR file is declared public and therefore a Java (TM) package is intended to be used only within that library. Regardless, it can be accessed by any code that uses the Java ™ library.

【0005】 共用ライブラリのこれらの部分への無許可のアクセスによる外部プロセスが
行なわれる基本的な問題のほかに、そうした結果として別の問題が生じる可能性
がある。たとえば、ライブラリの内部のみにおいて使用されると仮定されている
共用ライブラリの部分を外部で使用した場合に、ネームスペース問題が発生する
可能性がある。共用ライブラリを生成したソフトウェアベンダーは、共用ライブ
ラリに対して外部のネームスペース衝突に関係なく、共用ライブラリの部分に対
して特定の名前または命名規則を使用する可能性がある。しかしながら、そのラ
イブラリの内部のものであることを厳密に意図されたパッケージに対して外部プ
ロセスがアクセスした場合、そのパッケージに対する名前は、外部プロセスによ
りすでに使用された別のパッケージまたはオブジェクトの名前と競合する可能性
がある。このような状況において、所定のパッケージ名に対するクラス定義の重
複が生じ、そのために、どの機能が名前の付けられたパッケージまたはオブジェ
クトに関連しているのかをどのようにして解くかが問題になる可能性がある。
In addition to the basic problem of having an external process through unauthorized access to these parts of the shared library, such problems can result in other problems. For example, namespace issues can arise when a portion of a shared library that is supposed to be used only inside the library is used externally. The software vendor that created the shared library may use a particular name or naming convention for parts of the shared library regardless of namespace collisions external to the shared library. However, if an external process accesses a package that is strictly intended to be internal to that library, the name for that package conflicts with the name of another package or object already used by the external process. there's a possibility that. In such situations, duplicate class definitions for a given package name can arise, which can be a problem as to how to resolve which feature is associated with the named package or object. There is a nature.

【0006】 Java(商標名)プログラミング言語におけるシーリング(sealin
g)の導入は、この問題のいくつかの例が検出され、エラーを浮上(raise
)させることを可能にすることによりそのような状況を改善している。しかしな
がら、単にランタイムでエラーを浮上させて、エンドユーザが適切なアクション
を取ってその問題を修正(fix)するように要求するのは、問題の進行を放置
するのと同じくらい望ましいものではない。また、シーリングは一般にある拡張
の特定のバージョンで束(bundle)にされたアプリケーションまたはアプ
レットの出荷を望む重大なケースには助けにならないであろう。その拡張のある
別のバージョンがエンドユーザのコンピュータ上にすでにインストールされてい
る場合には、そのインストールされているものが束にされたものに優先する。
[0006] Sealing in the Java ™ programming language.
The introduction of g) has detected some examples of this problem and raised the error.
The situation is improved by making it possible. However, simply raising the error at runtime and requiring the end user to take appropriate action to fix the problem is not as desirable as leaving the problem's progression. Also, sealing will generally not help in critical cases where it is desired to ship an application or applet bundled with a particular version of an extension. If another version of the extension is already installed on the end user's computer, the installed one will take precedence over the bundled one.

【0007】 したがって、共用ライブラリのある部分へのアクセスを可能にする一方で、
その共用ライブラリの別の部分へのアクセスを制限するシステムが必要である。
Thus, while allowing access to certain parts of the shared library,
What is needed is a system that limits access to other parts of the shared library.

【0008】[0008]

【課題を解決するための手段】[Means for Solving the Problems]

本発明による方法、システムおよび製品は、JARファイルのような共用ライ
ブラリの部分へのアクセスを制限するためにクラスローダを使用することにより
既存のシステムの欠点を克服する。クラスローダは、ライブラリ内のプログラム
ファイルにアクセスしようとしている外部プロセスとそのライブラリ自身の中の
ファイルとの間にインターフェースを発生させる。この明細書において具体的に
表され、広義に説明されている本発明による方法、システムおよび製品は、プロ
グラムファイルを共用ソフトウェアライブラリからロードする。典型的に、プロ
グラムファイルはクラスローダによりロードされたクラス定義である。次に、ロ
ードされたプログラムファイルへのインターフェースが生成される。インターフ
ェースオブジェクトであることが好ましいインターフェースは、プログラムファ
イルがエクスポートされることが可能であるかどうかに関する状態インジケータ
を有している。この状態インジケータは、好ましいインターフェースオブジェク
トの一部分である状態メソッドを実行することによって決定されることが好まし
く、その状態インジケータは、プログラムファイルが共用ライブラリからエクス
ポートされることが可能かどうかを決定するために使用される。状態メソッドは
典型的に、プログラムファイルがエクスポートされることが可能かどうかを示す
共用ライブラリ内の属性を読出すことによって生成される。状態インジケータに
基づいて、プログラムファイルがエクスポートされることができない場合、プロ
グラムファイルへのアクセスが制限される。他方、プログラムファイルがエクス
ポート可能であることが状態インジケータにより示された場合には、プログラム
ファイルはリクエストプロセスに戻される。
The method, system and product according to the present invention overcome the drawbacks of existing systems by using a class loader to restrict access to parts of a shared library such as JAR files. The class loader creates an interface between the external process trying to access the program files in the library and the files in the library itself. The method, system, and product according to the present invention as embodied and broadly described herein load program files from a shared software library. A program file is typically a class definition loaded by a class loader. Next, an interface to the loaded program file is created. The interface, which is preferably an interface object, has a status indicator as to whether the program file can be exported. This state indicator is preferably determined by executing a state method that is part of the preferred interface object, which state indicator determines whether the program file can be exported from a shared library. used. State methods are typically generated by reading an attribute in the shared library that indicates whether the program file can be exported. If the program file cannot be exported based on the status indicator, access to the program file is restricted. On the other hand, if the status indicator indicates that the program file is exportable, the program file is returned to the requesting process.

【0009】 本発明の別の特徴によると、この明細書において具体的に表され、広義に説
明されている方法、システムおよび製品は、共用ライブラリファイル内のオブジ
ェクトクラス定義へのアクセスを制限するシステムを示している。このシステム
は、共用ライブラリおよびクラスローダを維持するメモリ記憶装置を備えている
。システムはまた、このメモリ記憶装置に接続されたプロセッサを備えている。
このプロセッサは、クラスローダを使用してオブジェクトクラス定義をメモリ記
憶装置上の共用ライブラリからロードするように動作する。適切なオブジェクト
クラス定義の位置が共用ライブラリ内において突きとめられてロードされると、
プロセッサはさらに、典型的にクラスローダ内のパッケージメソッドを呼出すこ
とにより、メモリ記憶装置においてインターフェースオブジェクトのインスタン
スを生成するように動作する。このインターフェースオブジェクトはオブジェク
トクラス定義と関連しており、プロセッサによりインターフェースオブジェクト
の一部分としてメモリ記憶装置において生成された状態メソッドを含んでいる。
この状態メソッドは、プロセッサ上で実行する外部プロセスによりオブジェクト
クラス定義がアクセス可能であるかどうかを指定する機能を定義する。プロセッ
サはまた、オブジェクトクラス定義が外部プロセスによりアクセス可能であると
指定されているかどうかを決定するために状態メソッドを呼出すように動作する
。最後に、プロセッサは、オブジェクトクラス定義が外部プロセスによりアクセ
ス可能であると指定されていないことを、実行された状態メソッドが示した場合
にオブジェクトクラス定義へのアクセスを制限することができる。
According to another feature of the invention, the methods, systems and products embodied and broadly described herein provide a system for restricting access to object class definitions in shared library files. Is shown. The system includes memory storage that maintains shared libraries and class loaders. The system also includes a processor connected to this memory storage device.
The processor operates to load an object class definition from a shared library on memory storage using a class loader. Once the proper object class definition location is located and loaded in the shared library,
The processor is further operative to instantiate the interface object in memory storage, typically by calling a package method in the class loader. This interface object is associated with the object class definition and contains state methods created in memory storage by the processor as part of the interface object.
This state method defines the ability to specify whether an object class definition is accessible by an external process executing on the processor. The processor also operates to call state methods to determine if the object class definition is designated as accessible by an external process. Finally, the processor can restrict access to the object class definition if the executed state method indicates that the object class definition is not designated as accessible by the external process.

【0010】 本発明のさらに別の特徴によると、この明細書において具体的に表され、広
義に説明されている方法、システムおよび製品は、共用ソフトウェアライブラリ
内のオブジェクトクラス定義へのアクセスを制限するための命令を含んでいるコ
ンピュータ読出し可能な媒体を示している。命令が実行されたとき、クラスロー
ダを使用して共用ソフトウェアライブラリからオブジェクトクラス定義がロード
される。次に、そのオブジェクトクラス定義に関連したインターフェースオブジ
ェクトのインスタンスが、そのインターフェースオブジェクトに関連した状態メ
ソッドと共にクラスローダによって生成される。典型的に、インターフェースオ
ブジェクトのインスタンスを生成するためにクラスローダ内の別のメソッドが呼
出される。状態メソッドは、オブジェクトクラス定義が外部プロセスによりアク
セス可能であると指定されているかどうかを示す。状態メソッドは、オブジェク
トクラス定義が外部プロセスによりアクセス可能であると指定されているかどう
かを決定するために呼出される。最後に、オブジェクトクラス定義が外部プロセ
スによりアクセス可能であると指定されていないことを状態メソッドが示した場
合、オブジェクトクラス定義へのアクセスは制限される。
According to yet another aspect of the invention, the methods, systems and products embodied and broadly described herein limit access to object class definitions in a shared software library. 3 illustrates a computer-readable medium containing instructions for: When the instruction is executed, the class loader is used to load the object class definition from the shared software library. An instance of the interface object associated with that object class definition is then created by the class loader along with the state methods associated with that interface object. Another method in the class loader is typically called to create an instance of the interface object. The state method indicates whether the object class definition is designated as accessible by the external process. The state method is called to determine if the object class definition has been designated as accessible by the external process. Finally, access to the object class definition is restricted if the state method indicates that the object class definition is not designated as accessible by the external process.

【0011】[0011]

【発明の実施の形態】DETAILED DESCRIPTION OF THE INVENTION

この明細書において参考とされ、その一部分を構成している添付図面には、本
発明の実施形態が示されている。図面および説明から本発明の利点および原理が
明らかになるであろう。 以下、添付図面に示されている本発明による1実施形態を詳細に説明する。同
じ参照符号は、可能な場合には常に同一または類似した部分を示すために図面お
よび以下の説明において一貫して使用される。
Embodiments of the invention are illustrated in the accompanying drawings, which are incorporated in and constitute a part of this specification. The advantages and principles of the invention will be apparent from the drawings and description. Hereinafter, one embodiment according to the present invention shown in the accompanying drawings will be described in detail. Wherever possible, the same reference numbers are used consistently in the drawings and the following description to refer to the same or like parts.

【0012】 [序説] 一般に、本発明による方法およびシステムは、外部プロセスによりアクセスさ
れることのできる共用ライブラリの部分を制限するためにクラスローダを使用す
ることにより、Java(商標名)プログラミング言語で書かれたアプレットの
ようなプロセスの実行中に呼出しを処理する。そうすることにより、内部使用に
制限されることを意図されている共用ライブラリの部分は、外部プロセスにより
アクセスされて使用されることはできない。
INTRODUCTION In general, the method and system according to the present invention, in the Java ™ programming language, uses a class loader to limit the parts of a shared library that can be accessed by external processes. Handles the invocation while a process like a written applet is running. By doing so, the parts of the shared library intended to be restricted to internal use cannot be accessed and used by external processes.

【0013】 さらに詳細に説明すると、プログラムファイル(クラス定義のような)に対
するリクエストは、共用ライブラリの外部の実行中のプロセス(アプレットのよ
うな)からクラスローダにより受取られる。クラスローダは、リクエストの受取
りに応答して、適切なプログラムファイルを共用ライブラリからロードし、ロー
ドされたプログラムファイルへのインターフェース(インターフェースオブジェ
クトのような)を発生させる。インターフェースは、プログラムファイルが外部
プロセスにエクスポートされることが可能かどうかを示す状態インジケータ(状
態メソッドのような)を有している。状態インジケータの値に基づいて、ロード
されたプログラムファイルへのアクセスは、そのプログラムファイルへの発生さ
れたインターフェースにより制限される。プログラムファイルへのアクセスが制
限された場合、実行中のプロセスはプログラムファイルへのアクセスを拒否され
る。そうでない場合、実行中のプロセスはプログラムファイルへのアクセスをイ
ンターフェースを介して受取る。このようにして、クラスローダは正しく適切な
クラス定義をロードするだけでなく、内部的にのみアクセスされることを意図さ
れている共用ライブラリの部分へのアクセスを制限する能力を与えるためにも使
用される。
More specifically, a request for a program file (such as a class definition) is received by a class loader from a running process (such as an applet) outside of a shared library. In response to receiving the request, the class loader loads the appropriate program file from the shared library and generates an interface (such as an interface object) to the loaded program file. The interface has a status indicator (such as a status method) that indicates whether the program file can be exported to an external process. Based on the value of the status indicator, access to the loaded program file is restricted by the generated interface to that program file. If access to the program file is restricted, running processes are denied access to the program file. Otherwise, the running process receives access to the program file via the interface. In this way, the class loader is used not only to properly load the appropriate class definitions, but also to provide the ability to restrict access to parts of the shared library that are intended to be accessed only internally. To be done.

【0014】 [コンピュータアーキテクチャ] 図1は、本発明による方法を実施し、本発明によるシステムを構成するのに適
した例示的なデータ処理システム100 を示している。図1を参照すると、データ
処理システム100 は、構内ネットワーク、広域ネットワークまたはインターネッ
トのようなネットワーク170 に接続されたコンピュータシステム110 を含んでい
る。
Computer Architecture FIG. 1 shows an exemplary data processing system 100 suitable for implementing the method according to the invention and configuring a system according to the invention. Referring to FIG. 1, a data processing system 100 includes a computer system 110 connected to a network 170 such as a local area network, a wide area network or the Internet.

【0015】 コンピュータシステム110 は主記憶装置120 と呼ばれるメモリ記憶装置と、
補助記憶装置130 と、中央処理装置(CPU)140 と、入力装置150 と、ビデオ
表示装置160 とを含んでおり、これらはそれぞれコンピュータシステム110 の別
の部分に電子的に接続されている。本発明による例示的な形態において、コンピ
ュータシステム110 は、SPARC(商標名)コンピュータアーキテクチャを使
用して構成される。SPARC(商標名)コンピュータアーキテクチャに関する
さらに詳細な説明は、カリフォルニア州メトロパークのSPARCインターナシ
ョナル社から入手可能であり、ここにおいて参考文献とされているSPARC(
商標名)V9参考マニュアルを含むいくつかの文献に記載されている。
The computer system 110 includes a memory storage device called a main storage device 120,
It includes an auxiliary storage device 130, a central processing unit (CPU) 140, an input device 150, and a video display device 160, each of which is electronically connected to another portion of computer system 110. In the exemplary form in accordance with the invention, computer system 110 is configured using the SPARC ™ computer architecture. A more detailed description of the SPARC ™ computer architecture is available from SPARC International, Inc. of Metropark, Calif., Which is hereby incorporated by reference.
It is described in several documents including the trade name) V9 reference manual.

【0016】 コンピュータシステム110 において、主記憶装置120 はオペレーティングシ
ステム128 と、仮想(バーチャル)マシン(VM)126 と、クラスローダ122 と
、および共用ライブラリ124 とを含んでいる。この説明のために例示されたVM
126 はJava(商標名)仮想マシン(JVM)であり、それはJava(商標
名)ソフトウェア開発キット(JDK)中に含まれているJava(商標名)ラ
ンタイム環境の一部である。JDKはカリフォルニア州パロアルトのサンマイク
ロシステムズ社から入手可能である。一般に、JVMは、プログラム(アプレッ
トのような)から命令をバイトコードの形態で受取って抽象的な計算マシンのよ
うに動作する。バイトコードは本質的に、Java(商標名)プログラミング言
語で書かれたプログラムのような汎用プログラム用のコンパイル済みのフォーマ
ットである。命令またはバイトコードが受取られると、JVMはこれらのバイト
コードをオブジェクトコードのような実行用の形態にダイナミックに変換してそ
れらを実行することによってこれらのバイトコードを解釈する。
In the computer system 110, the main storage device 120 includes an operating system 128, a virtual machine (VM) 126, a class loader 122, and a shared library 124. VM illustrated for this description
126 is a Java ™ virtual machine (JVM), which is part of the Java ™ runtime environment included in the Java ™ Software Development Kit (JDK). The JDK is available from Sun Microsystems, Inc. of Palo Alto, CA. Generally, a JVM receives instructions from a program (such as an applet) in the form of bytecode and acts like an abstract computing machine. Bytecode is essentially a compiled format for a general purpose program, such as a program written in the Java ™ programming language. When instructions or bytecodes are received, the JVM interprets these bytecodes by dynamically converting these bytecodes into a form for execution such as object code and executing them.

【0017】 Java(商標名)プログラミング言語で書かれたアプレットのようなプロ
グラムモジュールに対するこの実行方式は、JVMのプラットフォーム独立特性
を容易にする。JVMに関するさらなる詳細は、ここにおいて参考文献とされて
いる文献( Lindholm および Yellin 著“The Java Virtual Machine Specifica
tion”,Addison-Wesley,1997)を含むいくつかの文献に記載されている。
This execution scheme for applet-like program modules written in the Java ™ programming language facilitates the platform-independent nature of the JVM. More details on the JVM can be found in the document referenced herein (Lindholm and Yellin, “The Java Virtual Machine Specifica.
tion ", Addison-Wesley, 1997).

【0018】 プログラムモジュールの実行中、VM126 は、ロードされなければならない
オブジェクトクラスへの記号による参照(symbolic referenc
e)に直面する可能性がある。このような状況において、VM126 は典型的に、
適切なプログラムファイルをロードするタスクをクラスローダに委任する。クラ
スローダは技術的に知られており、これまでロードされたことのないオブジェク
トクラス定義がインタプリタにより要求された場合に通常使用される。基本的に
、クラスローダはオブジェクトクラス定義を、このオブジェクトクラス定義が維
持されている特定の記憶位置(遠隔地サーバまたはローカルメモリファイル)か
らロードする。通常のクラスローダのさらに詳細な説明は、カリフォルニア州マ
ウンテンビューのサンマイクロシステムズ社にその権利が譲渡され、ここにおい
て参考文献とされている米国特許第 5,727,147号明細書(“SYSTEM AND METHOD
FOR RESOLVING SYMBOLIC REFERENCES TO EXTERNALLY LOCATED PROGRAM FILES ”
)に記載されている。
During execution of the program module, the VM 126 will have a symbolic reference to the object class that must be loaded.
e) may be encountered. In this situation, VM126 typically
Delegate the task of loading the appropriate program files to the class loader. Class loaders are known in the art and are typically used when an interpreter requests an object class definition that has never been loaded. Basically, the class loader loads the object class definition from the particular storage location (remote server or local memory file) where the object class definition is maintained. A more detailed description of a conventional class loader is assigned to Sun Microsystems, Inc., Mountain View, Calif.
FOR RESOLVING SYMBOLIC REFERENCES TO EXTERNALLY LOCATED PROGRAM FILES ”
)It is described in.

【0019】 例示的なクラスローダ122 は、それが共用ライブラリ124 のような共用ライ
ブラリの部分への選択的インターフェースメカニズムとして動作できるようにす
るいくつかの別の特徴が追加された通常のクラスローダである。とくに、クラス
ローダ122 は共用ライブラリ124 内のプログラムファイルへのインターフェース
を生成することができる。そのインターフェースはまた、それらのプログラムフ
ァイルが外部プロセスにエクスポートされるか、あるいは外部プロセスによりア
クセス可能であるかどうかを決定する状態インジケータを有している。適切なク
ラス定義を正しい位置からロードし、インターフェースとして動作するこの能力
により、クラスローダ22は共用ライブラリ内の特定の、オブジェクトクラス定義
のようなプログラムファイルへのアクセスを制限することが可能になる。
The exemplary class loader 122 is a regular class loader with some additional features added that allow it to act as a selective interface mechanism to parts of a shared library, such as shared library 124. is there. In particular, the class loader 122 can generate an interface to the program files in the shared library 124. The interface also has a status indicator that determines whether those program files are exported to or accessible by the external process. This ability to load the appropriate class definition from the correct location and act as an interface allows the class loader 22 to restrict access to program files, such as object class definitions, in a shared library.

【0020】 たとえば、外部プロセス(VM126 と共同して実行するアプレットのような
)は、特定のクラス定義がまだ主記憶装置中にロードされていないので、そのク
ラス定義をロードする必要がある。そのクラス定義が外部プロセスにエクスポー
トされることを意図されている場合には、そのクラス定義をただロードするだけ
でよい。しかしながら、そのクラス定義が外部プロセスによりアクセス可能であ
ることを意図されていない場合、クラス定義へのアクセスを制限する別のステッ
プが必要とされる。クラスローダ122 はリクエストを受取り、リクエストされた
クラス定義を共用ライブラリ124 内からロードする。この例において、ライブラ
リ124 は、Java(商標名)パッケージまたはオブジェクトの多くのクラスの
定義を維持している通常のJARファイルとして構成されている。この時点で、
クラスローダ122 は、パッケージオブジェクトとも呼ばれるインターフェースオ
ブジェクトを生成し、このインターフェースオブジェクトは、リクエストされて
いるクラス定義をカプセル化し、状態インジケータとして状態メソッドを含んで
いる。リクエストされているクラス定義が外部からアクセス可能であると指定さ
れている場合、その状態メソッドの実行結果は“真”のような予め選択された値
である。以下において、図2に関してさらに詳細な説明が行われる。
For example, an external process (such as an applet that runs in conjunction with VM 126) needs to load a particular class definition because it is not already loaded into main memory. If the class definition is intended to be exported to an external process, you just need to load the class definition. However, if the class definition is not intended to be accessible by an external process, another step of restricting access to the class definition is needed. The class loader 122 receives the request and loads the requested class definition from within the shared library 124. In this example, the library 124 is constructed as a regular JAR file that maintains the definition of many classes of Java packages or objects. at this point,
The class loader 122 creates an interface object, also called a package object, which encapsulates the requested class definition and contains state methods as state indicators. If the requested class definition is specified as accessible from the outside, the result of executing the state method is a preselected value such as "true". In the following, a more detailed description will be given with respect to FIG.

【0021】 さらに、本発明による構成はJVMと共に実施されるものとして説明されて
いるが、本発明によるシステムおよび方法はまた、Java(商標名)環境以外
の環境において実施されてもよいことが当業者により認識されるであろう。たと
えば、共用ライブラリ内のプログラムファイル(クラス定義のような)に対する
リクエストは、VM126 が必要とされることなく、オペレーティングシステム12
8 と共に実行するマルチスレッドアプリケーションプログラムモジュール(示さ
れていない)から行なわれてもよい。
Furthermore, although the arrangement according to the invention is described as being implemented with a JVM, it is also possible that the system and method according to the invention may also be implemented in an environment other than a Java ™ environment. Will be recognized by the vendor. For example, a request for a program file (such as a class definition) in a shared library can be made by the operating system 12 without requiring the VM 126.
8 may be performed from a multithreaded application program module (not shown) that runs with.

【0022】 さらに、本発明によるシステムおよび方法の全てまたは一部は、ハードディ
スク、フロッピー(登録商標)ディスクおよびCD−ROM等の補助記憶装置、
インターネットから受取られた搬送波、あるいは別の形態のROMまたはRAM
のような別のコンピュータ読出し可能な媒体上に記憶されてもよいし、あるいは
そこから読出されてもよいことが当業者により認識されるであろう。最後に、デ
ータ処理システム100 の特定のコンポーネントが説明されているが、当業者は、
マルチプロセッサおよび種々の入出力装置のような付加的または異なったコンポ
ーネントが例示的な実施形態による使用に適したデータ処理システム100 に含ま
れてもよいことを認識するであろう。
In addition, all or part of the system and method according to the present invention may include auxiliary storage such as hard disks, floppy disks and CD-ROMs,
Carrier wave received from the Internet, or another form of ROM or RAM
It will be appreciated by those skilled in the art that it may be stored on or read from another computer readable medium such as. Finally, although specific components of data processing system 100 have been described, those skilled in the art
It will be appreciated that additional or different components such as multiprocessors and various input / output devices may be included in data processing system 100 suitable for use with the exemplary embodiments.

【0023】 [アクセス制限システム] 図2は、本発明の1実施形態にしたがって例示的な共用ライブラリ内のファイ
ルへのアクセスを制限するために例示的なクラスローダがどのようにして使用さ
れるかを示すさらに詳細なブロック図である。図1および2を参照とすると、V
M126 、クラスローダ122 および共用ライブラリ124 は、相互作用するソフトウ
ェアのブロックとして示されている。VM126 内には、このVM126 により解釈
および実行される命令またはバイトコードを含むアプレット205 が存在する。ア
プレット205 からのバイトコードの実行中、VM126 は特定のオブジェクトクラ
ス定義をロードする必要がある。これは、そのバイトコードが、まだ共用ライブ
ラリ124 から主メモリ120 中にロードされていないその特定のオブジェクトクラ
スにより規定されたオブジェクトをリストするためである。そのバイトコードに
適したオブジェクトクラス定義をロードするために、VM126 はクラスローダ12
2 を使用するか、あるいはそれに委任して、正しいオブジェクトクラス定義を見
出す。このようにして、クラスローダ122 はオブジェクトクラス定義のためにV
M126 からリクエストを受取る。
Access Restriction System FIG. 2 illustrates how an exemplary class loader is used to restrict access to files in an exemplary shared library according to one embodiment of the invention. 3 is a more detailed block diagram showing FIG. Referring to FIGS. 1 and 2, V
M126, class loader 122 and shared library 124 are shown as blocks of interacting software. Within VM 126 is an applet 205 containing instructions or bytecode that is interpreted and executed by this VM 126. During execution of bytecode from applet 205, VM 126 needs to load a specific object class definition. This is because the bytecode lists the objects defined by that particular object class that have not yet been loaded into main memory 120 from shared library 124. The VM 126 uses the class loader 12 to load the appropriate object class definition for that bytecode.
Use 2 or delegate to it to find the correct object class definition. In this way, the class loader 122 uses V to define the object class.
Receive request from M126.

【0024】 リクエストに応答して、クラスローダ122 はロードすべき適切なオブジェク
トクラス定義を決定する。図2に示されている例示的な実施形態では、適切なオ
ブジェクトクラス定義は、クラス定義200 、202 および204 のような種々のプロ
グラムファイルを維持している共用ライブラリ124 中に位置している。図2に示
されている例において、クラスローダ122 は、オブジェクトクラス定義200 が適
切な定義であることを決定し、共用ライブラリ124 からオブジェクトクラス定義
を検索する。ここまでは、これは典型的に大部分の通常のクラスローダにより行
なわれるものである。
In response to the request, class loader 122 determines the appropriate object class definition to load. In the exemplary embodiment shown in FIG. 2, the appropriate object class definitions are located in a shared library 124 that maintains various program files such as class definitions 200, 202 and 204. In the example shown in FIG. 2, the class loader 122 determines that the object class definition 200 is a proper definition and retrieves the object class definition from the shared library 124. Up to this point, this is typically done by most normal class loaders.

【0025】 上述された標準的なクラスロード機能に加えて、クラスローダ122 は、オブ
ジェクトクラス定義へのインターフェースを生成するメソッドを含む。例示的な
実施形態において、メソッド220 はget packageと呼ばれている。g
et packageメソッド220 は、それが呼出されたとき、オブジェクトク
ラス定義200 をカプセル化するオブジェクト210 (インターフェースオブジェク
トまたはパッケージオブジェクトと呼ばれる)のインスタンスを生成する。ge
packageメソッド220 はまた、メソッド215 (一般に、状態メソッド
と呼ばれている)をインターフェースオブジェクト210 を生成する一環として生
成し、このメソッド215 は、オブジェクトクラス定義が外部プロセスによりアク
セス可能であると指定されているかどうかを示す。典型的に、クラスローダ122
内のメソッド220 は、所望のオブジェクトクラス定義がエクスポートされること
ができるかどうかを示すインジケータまたは別の種類のフラッグタイプのメカニ
ズムを求めて共用ライブラリ124 内を捜索する。例示的な実施形態において、g
et packageメソッド220 は、共用ライブラリ124 のマニフェストまた
はヘッダ206 中の属性208 を読出す。マニフェスト206 は、共用ライブラリ124
内のコンテンツ(すなわち、プログラムファイル)に関する情報を維持している
。マニフェスト206 の一部分として、属性208 は、外部プロセスにエクスポート
されるか、あるいは外部プロセスによりアクセス可能であると指定された共用ラ
イブラリ124 中のファイルのリストであることが好ましい。
In addition to the standard class loading functionality described above, the class loader 122 includes methods that create an interface to object class definitions. In the exemplary embodiment, method 220 is get. It is called a package. g
et The package method 220, when called, instantiates an object 210 (called an interface object or package object) that encapsulates the object class definition 200. ge
t The package method 220 also creates a method 215 (commonly called a state method) as part of creating the interface object 210, which specifies that the object class definition is accessible to external processes. Indicates whether or not Typically the class loader 122
The method 220 in searches in the shared library 124 for an indicator or another type of flag type mechanism that indicates whether the desired object class definition can be exported. In an exemplary embodiment, g
et The package method 220 reads the attribute 208 in the manifest or header 206 of the shared library 124. Manifest 206 is a shared library 124
Maintains information about the content within (ie, program files). As part of manifest 206, attribute 208 is preferably a list of files in shared library 124 designated as exported to or accessible by the external process.

【0026】 属性208 に基づいて、get packageメソッド220 は、実行された
ときに適切な値を供給するか、あるいは返すようにインターフェースオブジェク
ト210 の中の状態メソッド215 を規定する。たとえば、オブジェクトクラス定義
200 が外部プロセスによりアクセス可能なものではない場合、状態メソッド215
(例示的な実施形態では“is exported”と呼ばれている)は、それ
が呼出されたときに“偽”値を返す。このようにしてクラスローダ122 は、その
プログラムファイルがエクスポートされないものであることを状態インジケータ
(状態メソッド215 を実行した結果のような)が示した場合、正しいプログラム
ファイル(アプレット205 のような)を見出してロードする。
Get based on attribute 208 The package method 220 defines a state method 215 in the interface object 210 to supply or return an appropriate value when executed. For example, the object class definition
State method 215 if 200 is not accessible by an external process
(In the exemplary embodiment, "is called "exported" returns a "false" value when it is called. In this way the class loader 122 indicates that the program file is not exported by the status indicator (state method 215). ), And find and load the correct program file (such as applet 205).

【0027】 共用ライブラリ124 がJARファイルであるさらに詳細な実施形態において
、JARファイルは、そのパッケージの、エクスポートされるべき1以上のもの
を宣言する能力を備えている。エクスポートされたパッケージ内に含まれている
クラスおよびリソースは別のJARファイルに可視的である。エクスポートされ
ないパッケージは専用と呼ばれ、それらのクラスおよびリソースはそのJARフ
ァイル内のみで可視的である。また、専用のクラスおよびリソースは局部的有効
範囲のものとされ、クラス/リソース名がこのJARファイルからのコードで解
かれなければならないときに、JARファイル中の定義が、可視である可能性の
ある同じ名前の任意の他のクラス/リソースに優先することを意味する。
In a more detailed embodiment where shared library 124 is a JAR file, the JAR file provides the ability to declare one or more of its packages to be exported. The classes and resources contained within the exported package are visible to another JAR file. Packages that are not exported are called private and their classes and resources are visible only within that JAR file. Also, private classes and resources are of local scope, and the definition in the JAR file may be visible when the class / resource name must be resolved in code from this JAR file. It is meant to take precedence over any other class / resource of the same name.

【0028】 この詳細な実施形態において、エクスポートされたパッケージは、Expo
rted:(真|偽)のような新しいエントリ当りのマニフェスト属性208 によ
り宣言される。このブール属性は、特有のパッケージがエクスポートされるべき
か否かを示す。たとえば、以下のマニフェストエントリ: 名前:javax/foo/ エクスポート:真 では、パッケージjavax.fooはエクスポートされることとなる。
In this detailed embodiment, the exported package is Expo
rted: (true | false) Declared by manifest attribute 208 per new entry. This boolean attribute indicates whether the particular package should be exported. For example, the following manifest entry: Name: javax / foo / Export: true, the package javax. foo will be exported.

【0029】 この属性はパッケージおよびディレクトリだけでなく、個々のクラスまたは
リソースファイルにも適用されることができる。この実施形態において、パッケ
ージまたはディレクトリがエクスポートされる場合、それが含んでいるクラス/
リソースの全ては、それら自身のエクスポート:偽属性を有することによって明
示的に専用のものにされていない限り、自動的にエクスポートされる。しかしな
がら、パッケージ/ディレクトリは、それらがサブパッケージ/サブディレクト
リを含んでいる場合は、通常は自動的にエクスポートされない。
This attribute can be applied to individual class or resource files as well as packages and directories. In this embodiment, when a package or directory is exported, it contains the class /
All of the resources are exported automatically unless they are explicitly dedicated by having their own export: false attribute. However, packages / directories are usually not automatically exported if they contain subpackages / subdirectories.

【0030】 例示的な1実施形態において、デフォルトは典型的に、特定されているEx
ported属性が全くない場合にエクスポートされるべきパッケージ/ディレ
クトリおよびクラス/リソースの全てに対してなされる。少くとも1つのExp
orted属性が特定されている場合、エクスポートされると宣言されていない
限り、デフォルトとは、各々の全てのものが専用であるということである。
In one exemplary embodiment, the default is typically the specified Ex
This is done for all packages / directories and classes / resources that should be exported if there are no ported attributes. At least one Exp
If the orted attribute is specified, the default is that each and every one is dedicated unless it is declared to be exported.

【0031】 Java(商標名)プログラミング言語内のJARツールは、エクスポート
ファイルが特定されることを可能にする−eオプションを有している。これは、
ソフトウェア開発者にとって都合がよく、それによって彼らは適切なマニフェス
トファイルを生成しなければならないのではなく、エクスポートを簡明にリスト
することができる。エクスポートファイルのフォーマットは、パッケージ名およ
びJARファイルエントリのシーケンスであることが好ましく、これらパッケー
ジ名およびJARファイルエントリはそれぞれ新しいラインによって終端される
。たとえば、−eオプションを使用して以下のエクスポートファイル: foo.bar foo.baz /images/foo.gif /foo.properties を特定することは、通常の−mオプションにより以下のマニフェストファイル:
The JAR tool in the Java ™ programming language has a -e option that allows the export file to be specified. this is,
It is convenient for software developers so that they can list exports concisely rather than having to generate the appropriate manifest files. The format of the export file is preferably a sequence of package names and JAR file entries, each package name and JAR file entry being terminated by a new line. For example, the following export file using the -e option: foo. bar foo. baz / images / foo. gif / foo. Specifying the properties can be done with the usual -m option in the following manifest file:

【数1】 を特定することと同じである。[Equation 1] Is the same as specifying.

【0032】 −eおよび−mオプションは一緒に使用されることができ、その場合マニフ
ェストが組合せられる。マニフェストの組合せにおいて、−eオプションから発
生したExported属性が優先する。すなわち、他のマニフェストからのE
xported属性のいずれも無視されるため、エクスポートファイルは常に完
全なエクスポートのセットをリストする。
The -e and -m options can be used together, in which case the manifests are combined. In the combination of manifests, the Exported attribute generated from the -e option has priority. That is, E from another manifest
The export file always lists the complete set of exports because any of the xported attributes are ignored.

【0033】 例示的な1実施形態において、クラス java.net.URLClassLoaderは、クラス
およびリソースをJARファイルのクラスパスおよびディレクトリURLからロ
ードするためにクラスローダ122 として使用される。図2に示されているように
、この実施形態は基本的に、そのマニフェスト中の1以上のエクスポートされた
パッケージを宣言したクラスパス上に各JARファイルをラップする(wrap
)ために小さいクラスローダを生成することを含む。このクラスローダはJar Cl
ass Loaderと呼ばれることが好ましく、それは専用クラスになり、それの目的は
、共用ライブラリ124 (たとえば、JARファイル)からロードされたどのコー
ドでもそれ自身の専用クラスおよびリソースにアクセスすることを可能にし、一
方それらがそのクラスパス上の他のJARファイルから隠されたままにしておく
ことである。
In one exemplary embodiment, the class java.net.URLClassLoader is used as the class loader 122 to load classes and resources from the JAR file's class path and directory URL. As shown in FIG. 2, this embodiment basically wraps each JAR file on the classpath that declares one or more exported packages in its manifest.
) For creating a small class loader. This class loader is Jar Cl
It is preferably called an ass Loader, which becomes a private class whose purpose is to allow any code loaded from a shared library 124 (eg, JAR file) to access its own private class and resources, On the other hand, keep them hidden from other JAR files on the classpath.

【0034】 以下は、擬似コードで書かれたJar Class Loaderの例示的な構成である:[0034]    The following is an example configuration of the Jar Class Loader written in pseudo code:

【数2】 [Equation 2]

【数3】 [Equation 3]

【数4】 [Equation 4]

【数5】 [Equation 5]

【0035】 上記の例の擬似コードに関連して、URL Class Loaderは、1以上のエクスポー
トされたパッケージを宣言したクラスパス上の各JARファイルに対してJarCla
ssLoaderの新しいインスタンスを生成するであろう。Jar Class Loaderに対する
代理の親は、JARファイルを含んでいるクラスパスに対して生成されるURL Cl
ass Loaderのインスタンスである。JARファイルからロードされたコードがリ
ンクされた場合は常にJar Class Loader's load Class メソッドが呼出されるで
あろう。
In connection with the pseudo code of the example above, the URL Class Loader will use JarCla for each JAR file on the classpath that declares one or more exported packages.
Will create a new instance of ssLoader. The surrogate parent to the Jar Class Loader is the URL Cl generated for the classpath containing the JAR file.
An instance of ass Loader. The Jar Class Loader's load Class method will be called whenever code loaded from a JAR file is linked.

【0036】 最初に、クラスがすでにロードされたかどうかをチェックするためにfind Lo
aded Class() が呼出される。次に、そのクラスがこのJARファイル内に含ま
れているが、エクスポートされると宣言されていない場合、そのクラスをJAR
ファイルからロードしようとする試みがなされる。これが失敗した場合、公開ク
ラスをチェックするために親 URL Class Loader's loaded Class()メソッドが呼
出される。これは公開クラスに対する通常の範囲を維持しながら、専用クラスが
ローカル範囲を有することを可能にする。
First, find Lo to check if the class has already been loaded.
aded Class () is called. Then, if the class is included in this JAR file but not declared to be exported, JAR the class.
An attempt is made to load from a file. If this fails, the parent URL Class Loader's loaded Class () method is called to check the public class. This allows private classes to have local scope while maintaining normal scope for public classes.

【0037】 URL Class Loaderは、それがクラスパス上の別のJARファイルによって参
照されたクラスに対してこのJARファイルをチェックする場合に、そのクラス
をロードするためにJar Class Loader's load Exported Classメソッドを呼出す
であろう。このメソッドは、それが代理の親をチェックしないこと、およびそれ
がエクスポートされると宣言されたJARファイルからしかクラスをロードしな
いことを除いて、Load Classメソッドに類似している。これによって、そのクラ
スパス上の別のJARファイルにより専用のクラスがロードされることが阻止さ
れる。
The URL Class Loader calls the Jar Class Loader's load Exported Class method to load the class if it checks this JAR file for a class referenced by another JAR file on the classpath. Will call. This method is similar to the Load Class method, except that it does not check the surrogate parent and it only loads the class from the JAR file where it was declared to be exported. This prevents the private class from being loaded by another JAR file on that classpath.

【0038】 [アクセス制限プロセス] 以下図3のフローチャートを参照として、クラスローダを使用して共用ライブ
ラリ中のオブジェクトクラス定義のようなプログラムファイルへのアクセスを制
限する本発明による例示的な方法のステップをさらに詳細に説明する。図1乃至
3を参照とすると、方法300 はステップ305 からスタートし、このステップ305
において外部プロセスはリクエストされたクラス定義をロードするようにクラス
ローダに委任する。例示的な実施形態において、アプレット205 は、VM126 に
より解釈されるバイトコードを有しており、したがってVM126 は、バイトコー
ドを解釈するために必要とされる適切なオブジェクトクラス定義をロードするた
めにクラスローダ122 を呼出す。
Access Restriction Process With reference to the flowchart of FIG. 3 below, steps of an exemplary method according to the present invention for restricting access to program files such as object class definitions in a shared library using a class loader. Will be described in more detail. With reference to FIGS. 1-3, the method 300 starts at step 305, which is step 305.
At, the external process delegates to the class loader to load the requested class definition. In the exemplary embodiment, applet 205 has bytecodes that are interpreted by VM 126, and thus VM 126 is responsible for loading the appropriate object class definitions needed to interpret the bytecodes. Call the loader 122.

【0039】 ステップ310 において、適切なクラス定義はその位置を突きとめられてロー
ドされる。例示的な実施形態において、クラス定義200 は共用ライブラリ124 か
ら検索すべき適切なクラス定義であるとクラスローダ122 により決定される。
In step 310, the appropriate class definition is located and loaded. In the exemplary embodiment, class definition 200 is determined by class loader 122 to be a suitable class definition to retrieve from shared library 124.

【0040】 ステップ315 において、ロードされたクラス定義に対するインターフェース
を発生させるメソッドが呼出される。一般に、そのインターフェースは、別のフ
ァイルまたは情報へのアクセスを選択的に行うことのできる任意のタイプのプロ
グラムインターフェースまたはプログラミング構造であることができる。例示的
な実施形態においては、インターフェースオブジェクト210 のインスタンスをイ
ンターフェースとして生成するためにget packageメソッド220 が呼
出される。get packageメソッド220 が実行するとき、ステップ330
において共用ライブラリ124 中の属性208 が読出され、そのインターフェースは
、クラス定義200 のような共用ライブラリ124 中のリクエストされたプログラム
ファイルへのアクセスが可能かどうかが決定される。
In step 315, the method that causes the interface to the loaded class definition is called. In general, the interface can be any type of program interface or programming structure that can selectively access another file or information. In the exemplary embodiment, get is used to create an instance of interface object 210 as an interface. The package method 220 is called. get When the package method 220 executes, step 330
At 208, the attribute 208 in the shared library 124 is read and its interface determines if the requested program file in the shared library 124, such as the class definition 200, is accessible.

【0041】 ステップ325 において、インターフェースのインスタンス(たとえば、イン
ターフェースオブジェクト210 )がクラス定義200 に対して生成される。インタ
ーフェースオブジェクト210 を生成する一環として、ステップ330 において共用
ライブラリ124 中の属性208 に応じて状態メソッドが生成される。状態メソッド
は、クラス定義が外部プロセスに対してアクセス可能であると指定されているか
どうかを属性208 に応じて決定するために使用される。例示的な実施形態では、
状態メソッドはインターフェースオブジェクト210 内のis exported
メソッド215 として構成される。実行時、is exportedメソッド215
は一般に、クラス定義200 がアプレット205 のような外部プロセスによりアクセ
ス可能かどうかを示す状態インジケータとして動作する。したがって、クラス定
義200 が外部プロセスに対してアクセス可能であると推測された場合、is
xportedメソッド215 は“真”のエクスポートインジケータを戻す。
In step 325, an instance of the interface (eg, interface object 210) is created for the class definition 200. As part of creating the interface object 210, a state method is created in step 330 in response to the attribute 208 in the shared library 124. The state method is used to determine whether the class definition is designated as accessible to an external process according to attribute 208. In the exemplary embodiment,
The state method is is in the interface object 210. exported
Configured as method 215. Runtime, is exported method 215
Generally acts as a status indicator that indicates whether class definition 200 is accessible by an external process such as applet 205. Therefore, if the class definition 200 is inferred to be accessible to external processes, e
The xported method 215 returns a "true" export indicator.

【0042】 ステップ335 において状態メソッドが呼出され、それはステップ340 におい
てクラス定義、すなわち一般的に述べると、インターフェースオブジェクト210
によりカプセル化されたプログラムファイルがエクスポートされることができる
かどうかを決定する。クラス定義はエクスポート可能であることをエクスポート
インジケータが示している場合、ステップ340 はステップ345 に進み、このステ
ップでクラス定義は、リクエストプロセス(たとえば、アプレット205 を解釈す
るVM126 )にクラスローダ122 によって戻される。そうでない場合、ステップ
340 は直接ステップ350 に進み、このステップにおいてクラス定義へのアクセス
が制限され、そのクラス定義は、リクエストプロセスには戻されない。その代わ
りに、クラスローダ122 は、アクセス不可能なファイルへのアクセスを試みたエ
ラー状態、およびリクエストされたクラス定義が見出されなかったことを示す例
外を発する。
In step 335, the state method is called, which in step 340 is the class definition, or, generally speaking, the interface object 210.
Determines if a program file encapsulated by can be exported. If the export indicator indicates that the class definition is exportable, then step 340 proceeds to step 345, where the class definition is returned by the class loader 122 to the requesting process (eg, VM 126 interpreting applet 205). Be done. Otherwise, step
340 goes directly to step 350, where access to the class definition is restricted and the class definition is not returned to the requesting process. Instead, the class loader 122 throws an error condition that attempts to access an inaccessible file, and an exception indicating that the requested class definition was not found.

【0043】 [結論] 上述された本発明による方法およびシステムは、プログラムファイルのような
共用ライブラリ124 の部分への、あるいは、とくにオブジェクトクラス定義への
アクセスを制限する。これらの方法およびシステムはクラスローダ122 を使用し
て、オブジェクトクラス定義を共用ライブラリ124 からロードし、共用ライブラ
リ124 のロードされたクラス定義200 へのインターネットオブジェクト210 のよ
うなインターフェースを生成する。インターフェースの一環として、共用ライブ
ラリ124 内の属性208 の値に応じて状態メソッドが生成される。状態メソッドを
呼出すことにより、インターフェース中のカプセル化されたクラス定義が、アプ
レット205 のような外部プロセスによりアクセス可能であると指定されているか
どうかを示すエクスポートインジケータが戻される。クラス定義が共用ライブラ
リに対して内部のみで使用され、外部プロセスにより使用されないことが意図さ
れている場合、状態メソッドは、そうであることを示し、クラスローダ122 は、
共用ライブラリ124 のその部分へのアクセスを制限する。
Conclusion The method and system according to the invention described above limits access to parts of the shared library 124, such as program files, or in particular to object class definitions. These methods and systems use the class loader 122 to load object class definitions from the shared library 124 and generate an Internet object 210-like interface to the loaded class definitions 200 of the shared library 124. As part of the interface, state methods are generated depending on the value of attribute 208 in shared library 124. Invoking the state method returns an export indicator that indicates whether the encapsulated class definition in the interface is designated as accessible by an external process, such as applet 205. If the class definition is intended to be used only internally by the shared library and not by an external process, the state method indicates so and the class loader 122
Restrict access to that part of shared library 124.

【0044】 上記の本発明の構成の説明は、例示および説明のために記載されたものであ
る。それは本発明を網羅するものではなく、また本発明を開示された形態に制限
するものでもない。上記の教示を考慮して修正および変形が可能であり、それは
本発明を実用化するときに行われてもよい。たとえば、記載されている形態はソ
フトウェアを含んでいるが、本発明はハードウェアおよびソフトウェアの組合せ
として、あるいはハードウェアのみで構成されてもよい。本発明によるシステム
は、Java(商標名)プログラミング言語、Smalltalk−80および
C++を含む全てのコンピュータプログラミング言語で書かれたプログラムを実
行する場合にも適応可能である。
The foregoing description of the configuration of the present invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the form disclosed. Modifications and variations are possible in light of the above teachings and may be made in the practice of the invention. For example, although the forms described include software, the invention may be implemented as a combination of hardware and software, or solely in hardware. The system according to the invention is also adaptable for executing programs written in all computer programming languages, including the Java ™ programming language, Smalltalk-80 and C ++.

【0045】 さらに、当業者は、本発明がオブジェクト指向のシステムに関して記載され
ているが、それは非オブジェクト指向のプログラミングシステムに関しも同様に
実施されることができることを認識するであろう。本発明の技術的範囲は、特許
請求の範囲およびその均等物により規定される。
Furthermore, those skilled in the art will recognize that although the present invention has been described with respect to object oriented systems, it can be implemented with non object oriented programming systems as well. The technical scope of the present invention is defined by the claims and their equivalents.

【図面の簡単な説明】[Brief description of drawings]

【図1】 本発明による方法およびシステムによる使用に適したデータ処理システムのブ
ロック図。
FIG. 1 is a block diagram of a data processing system suitable for use with the methods and systems of the present invention.

【図2】 本発明の1実施形態にしたがって共用ライブラリ内のファイルへのアクセスを
制限するためにクラスローダがどのようにして使用されることができるかを示す
ブロック図。
FIG. 2 is a block diagram illustrating how a class loader can be used to restrict access to files in a shared library according to one embodiment of the invention.

【図3】 共用ライブラリ内のファイルへのアクセスを制限するためにクラスローダによ
り行なわれる本発明の1実施形態による典型的なステップを示すフローチャート
FIG. 3 is a flowchart showing exemplary steps performed by a class loader to restrict access to files in a shared library according to one embodiment of the invention.

【手続補正書】特許協力条約第34条補正の翻訳文提出書[Procedure for Amendment] Submission for translation of Article 34 Amendment of Patent Cooperation Treaty

【提出日】平成13年12月18日(2001.12.18)[Submission date] December 18, 2001 (2001.12.18)

【手続補正1】[Procedure Amendment 1]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】特許請求の範囲[Name of item to be amended] Claims

【補正方法】変更[Correction method] Change

【補正の内容】[Contents of correction]

【特許請求の範囲】[Claims]

───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE,TR),OA(BF ,BJ,CF,CG,CI,CM,GA,GN,GW, ML,MR,NE,SN,TD,TG),AP(GH,G M,KE,LS,MW,MZ,SD,SL,SZ,TZ ,UG,ZW),EA(AM,AZ,BY,KG,KZ, MD,RU,TJ,TM),AE,AG,AL,AM, AT,AU,AZ,BA,BB,BG,BR,BY,B Z,CA,CH,CN,CR,CU,CZ,DE,DK ,DM,DZ,EE,ES,FI,GB,GD,GE, GH,GM,HR,HU,ID,IL,IN,IS,J P,KE,KG,KP,KR,KZ,LC,LK,LR ,LS,LT,LU,LV,MA,MD,MG,MK, MN,MW,MX,MZ,NO,NZ,PL,PT,R O,RU,SD,SE,SG,SI,SK,SL,TJ ,TM,TR,TT,TZ,UA,UG,UZ,VN, YU,ZA,ZW (72)発明者 リアン、シェン アメリカ合衆国、カリフォルニア州 94041 マウンテン・ビュー、ナンバー23、 カルデロン・アベニュー 210 (72)発明者 ベンジャミン、レナウド アメリカ合衆国、カリフォルニア州 94114 サンフランシスコ、ナインティー ンス・ストリート 3970 Fターム(参考) 5B076 AB04 AB10 ─────────────────────────────────────────────────── ─── Continued front page    (81) Designated countries EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, I T, LU, MC, NL, PT, SE, TR), OA (BF , BJ, CF, CG, CI, CM, GA, GN, GW, ML, MR, NE, SN, TD, TG), AP (GH, G M, KE, LS, MW, MZ, SD, SL, SZ, TZ , UG, ZW), EA (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), AE, AG, AL, AM, AT, AU, AZ, BA, BB, BG, BR, BY, B Z, CA, CH, CN, CR, CU, CZ, DE, DK , DM, DZ, EE, ES, FI, GB, GD, GE, GH, GM, HR, HU, ID, IL, IN, IS, J P, KE, KG, KP, KR, KZ, LC, LK, LR , LS, LT, LU, LV, MA, MD, MG, MK, MN, MW, MX, MZ, NO, NZ, PL, PT, R O, RU, SD, SE, SG, SI, SK, SL, TJ , TM, TR, TT, TZ, UA, UG, UZ, VN, YU, ZA, ZW (72) Inventor Lian, Shen             California, United States             94041 Mountain View, number 23,             Calderon Avenue 210 (72) Inventor Benjamin, Renaud             California, United States             94114 San Francisco, Nine Tea             St. Street 3970 F-term (reference) 5B076 AB04 AB10

Claims (19)

【特許請求の範囲】[Claims] 【請求項1】 共用ライブラリ内のプログラムファイルへのアクセスを制限
する方法において、 プログラムファイルを共用ライブラリからロードし、 ロードされたプログラムファイルに関するインターフェースを発生させ、その
インターフェースは、プログラムファイルがエクスポートされることが可能であ
るかどうかに関する状態インジケータを有しており、 状態インジケータに基づいて、プログラムファイルがエクスポート可能かどう
かを決定し、 プログラムファイルがエクスポート可能ではないと決定された場合には、プロ
グラムファイルへのアクセスを制限するステップを含んでいる方法。
1. A method for restricting access to a program file in a shared library, wherein the program file is loaded from the shared library and an interface for the loaded program file is generated, the interface being exported. Has a status indicator as to whether the program file is exportable, and based on the status indicator, determines whether the program file is exportable, and if the program file is not exportable, the program file A method including the step of restricting access to.
【請求項2】 プログラムファイルがエクスポート可能である場合、プログ
ラムファイルを戻すステップをさらに含んでいる請求項1記載の方法。
2. The method of claim 1, further comprising returning the program file if the program file is exportable.
【請求項3】 プログラムファイルに対するリクエストを受取るステップを
さらに含んでおり、ロードするステップはリクエストを受取ったことに応答して
プログラムファイルをロードするステップをさらに含んでいる請求項1記載の方
法。
3. The method of claim 1, further comprising receiving a request for a program file, the loading step further comprising loading the program file in response to receiving the request.
【請求項4】 ロードするステップは、クラスローダを使用してクラス定義
をプログラムファイルとしてロードするステップをさらに含んでいる請求項1記
載の方法。
4. The method of claim 1, wherein the loading step further comprises loading the class definition as a program file using a class loader.
【請求項5】 発生させるステップは、 クラス定義をカプセル化しているインターフェースオブジェクトをインターフ
ェースとして発生させ、 インターフェースオブジェクト内に状態メソッドを生成し、この状態メソッド
はそれが実行されるときに状態インジケータを供給するステップをさらに含んで
いる請求項4記載の方法。
5. The generating step generates an interface object encapsulating the class definition as an interface and generates a state method in the interface object, the state method providing a state indicator when it is executed. The method of claim 4, further comprising the step of:
【請求項6】 生成するステップはさらに、共用ライブラリ内の属性を読出
すステップを含んでおり、属性はクラス定義がエクスポートされることが可能か
どうかを示す請求項4記載の方法。
6. The method of claim 4, wherein the step of generating further comprises the step of reading an attribute in the shared library, the attribute indicating whether the class definition can be exported.
【請求項7】 決定するステップはさらに、エクスポートインジケータを状
態インジケータとして供給するために状態メソッドを呼出すステップを含んでお
り、エクスポートインジケータはクラス定義がエクスポートされることが可能か
どうかを示す請求項5記載の方法。
7. The step of determining further comprises the step of calling a state method to provide the export indicator as a state indicator, the export indicator indicating whether the class definition can be exported. The method described.
【請求項8】 共用ライブラリ内のオブジェクトクラス定義へのアクセスを
制限する方法を行うようにデータ処理システムを制御するための命令を含んでい
るコンピュータ読出し可能な媒体において、前記アクセスを制限する方法が、 クラスローダを使用して共用ライブラリからオブジェクトクラス定義をロード
し、 オブジェクトクラス定義に関連したインターフェースオブジェクトのインスタ
ンスを生成し、 オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定され
ているかどうかを示すインターフェースオブジェクトに関連した状態メソッドを
生成し、 オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定され
ているかどうかを決定するために状態メソッドを呼出し、 オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定され
ていないことが状態メソッドにより示された場合、オブジェクトクラス定義に対
するアクセスを制限するステップを含んでいるコンピュータ読出し可能な媒体。
8. A method for limiting access in a computer-readable medium containing instructions for controlling a data processing system to perform the method for limiting access to an object class definition in a shared library. , Loads the object class definition from the shared library using the class loader, instantiates the interface object associated with the object class definition, and indicates whether the object class definition is designated as accessible by an external process Creates a state method associated with the interface object and calls the state method to determine if the object class definition is designated as accessible by an external process, If it is not specified as is accessible is indicated by the state method by Department process, computer-readable medium, including the step of limiting access to object class definitions.
【請求項9】 さらに、オブジェクトクラス定義が外部プロセスによりアク
セス可能であると指定されていることが状態メソッドにより示された場合にのみ
、オブジェクトクラス定義を戻す請求項8記載のコンピュータ読出し可能な媒体
9. The computer-readable medium of claim 8, further comprising returning the object class definition only if the status method indicates that the object class definition is designated as accessible by an external process. .
【請求項10】 さらに、オブジェクトクラス定義に対するリクエストを受
取り、ロードするステップはリクエストの受取りに応答してオブジェクトクラス
定義をロードするステップをさらに含んでいる請求項8記載のコンピュータ読出
し可能な媒体。
10. The computer-readable medium of claim 8, further comprising receiving and loading a request for an object class definition, further comprising loading the object class definition in response to receiving the request.
【請求項11】 インターフェースオブジェクトのインスタンスを生成する
ステップは、インターフェースオブジェクトのインスタンスを生成するためにク
ラスローダ内のパッケージメソッドを呼出すステップをさらに含んでいる請求項
8記載のコンピュータ読出し可能な媒体。
11. The computer-readable medium of claim 8, wherein the step of instantiating the interface object further comprises the step of calling a package method in the class loader to instantiate the interface object.
【請求項12】 状態メソッドを生成するステップは、 共用ライブラリ内の属性を読出すためにパッケージメソッドを呼出し、この属
性は、オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定
されているかどうかを指示し、 状態メソッドを属性に基づいたインターフェースオブジェクトの一部分として
生成するステップをさらに含んでいる請求項11記載のコンピュータ読出し可能
な媒体。
12. The step of generating a state method calls a package method to read an attribute in a shared library, the attribute indicating whether the object class definition is designated as accessible by an external process. The computer-readable medium of claim 11, further comprising the step of directing and generating a state method as part of the attribute-based interface object.
【請求項13】 状態メソッドを呼出すステップは、クラス定義がエクスポ
ートされることが可能かどうかを示すエクスポートインジケータを供給するため
に状態メソッドを呼出すステップをさらに含んでいる請求項12記載のコンピュ
ータ読出し可能な媒体。
13. The computer readable of claim 12, wherein invoking the state method further comprises invoking the state method to provide an export indicator that indicates whether the class definition can be exported. Medium.
【請求項14】 共用ライブラリファイル内のオブジェクトクラス定義への
アクセスを制限するコンピュータシステムにおいて、 共用ライブラリファイルおよびクラスローダを維持するメモリ記憶装置と、 このメモリ記憶装置に接続されたプロセッサとを備えており、このプロセッサ
は、 クラスローダを使用してオブジェクトクラス定義をメモリ記憶装置上の共用
ライブラリからロードし、 メモリ記憶装置においてインターフェースオブジェクトのインスタンスを生
成し、このインターフェースオブジェクトはオブジェクトクラス定義と関連して
おり、 メモリ記憶装置において状態メソッドをインターフェースオブジェクトの一
部分として生成し、この状態メソッドは、プロセッサ上で実行する外部プロセス
によりオブジェクトクラス定義がアクセス可能であるかどうかを指定する機能を
規定し、 オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定さ
れているかどうかを決定するために状態メソッドを呼出し、 オブジェクトクラス定義が外部プロセスによりアクセス可能であると指定さ
れていないことが状態メソッドにより示された場合、オブジェクトクラス定義へ
のアクセスを制限するように動作するコンピュータシステム。
14. A computer system for restricting access to an object class definition in a shared library file, comprising: a memory storage device maintaining a shared library file and a class loader; and a processor connected to the memory storage device. The processor uses a class loader to load an object class definition from a shared library on memory storage and instantiates an interface object in the memory storage, the interface object being associated with the object class definition. In the memory storage device, a state method is generated as a part of the interface object, and the state method is defined by an external process executing on the processor. Defines the ability to specify accessibility and calls state methods to determine if an object class definition is designated as accessible by an external process, and the object class definition is accessible by the external process. A computer system that operates to restrict access to an object class definition if the status method indicates that it is not specified as.
【請求項15】 プロセッサはさらに、オブジェクトクラス定義が外部プロ
セスによりアクセス可能であると指定されていることが状態メソッドにより示さ
れた場合にのみ、インターフェースオブジェクトによってオブジェクトクラス定
義へのアクセスを可能にするように動作する請求項14記載のコンピュータシス
テム。
15. The processor further enables access to the object class definition by the interface object only if the state method indicates that the object class definition is designated as accessible by an external process. 15. The computer system of claim 14, which operates as follows.
【請求項16】 プロセッサはさらに、プロセッサ上で実行する外部プロセ
スからオブジェクトクラス定義に対するリクエストを受取るように動作し、ロー
ドするステップはリクエストの受取りに応答してオブジェクトクラス定義をロー
ドするステップをさらに含んでいる請求項14記載のコンピュータシステム。
16. The processor is further operative to receive a request for an object class definition from an external process executing on the processor, the loading step further comprising loading the object class definition in response to receiving the request. 15. The computer system according to claim 14, wherein
【請求項17】 プロセッサはさらに、メモリ記憶装置においてインターフ
ェースオブジェクトのインスタンスを生成するためにクラスローダ内のパッケー
ジメソッドを呼出すように動作する請求項14記載のコンピュータシステム。
17. The computer system of claim 14, wherein the processor is further operative to call a package method in the class loader to instantiate the interface object in memory storage.
【請求項18】 プロセッサはさらに、共用ライブラリ内の属性を読出すた
めにパッケージメソッドを呼出すように動作し、この属性はオブジェクトクラス
定義が外部プロセスによりアクセス可能であると指定されているかどうかを示し
、また、その属性に基づいてメモリ記憶装置において状態メソッドをインターフ
ェースオブジェクトの一部分として生成するように動作する請求項14記載のコ
ンピュータシステム。
18. The processor further operates to call a package method to read an attribute in the shared library, the attribute indicating whether the object class definition is designated as accessible to an external process. The computer system of claim 14, further operative to generate a state method in the memory storage device as part of the interface object based on the attribute.
【請求項19】 プロセッサはさらに、クラス定義がエクスポートされるこ
とが可能であるかどうかを示すエクスポートインジケータを供給するために状態
メソッドを呼出すように動作する請求項18記載のコンピュータシステム。
19. The computer system of claim 18, wherein the processor is further operative to call a state method to provide an export indicator that indicates whether the class definition can be exported.
JP2001555319A 2000-01-27 2001-01-19 Method, system, and storage medium for restricting access to program file in shared library file Expired - Lifetime JP4841787B2 (en)

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 true JP2003521063A (en) 2003-07-08
JP4841787B2 JP4841787B2 (en) 2011-12-21

Family

ID=23955020

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001555319A Expired - Lifetime JP4841787B2 (en) 2000-01-27 2001-01-19 Method, system, and storage medium for restricting access to program file in shared library file

Country Status (5)

Country Link
US (2) US6385722B1 (en)
EP (1) EP1261913A4 (en)
JP (1) JP4841787B2 (en)
AU (1) AU2001229615A1 (en)
WO (1) WO2001055839A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012185732A (en) * 2011-03-07 2012-09-27 Nec Corp Information processor, program fraudulence detection method and program fraudulence detection program
JP2014063237A (en) * 2012-09-20 2014-04-10 Nec Corp Module management device, module management system and module management method
JP2015097061A (en) * 2013-11-15 2015-05-21 株式会社東芝 Information processing apparatus, information processing method, and program

Families Citing this family (29)

* Cited by examiner, † Cited by third party
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 (en) * 2001-08-23 2011-02-09 株式会社リコー Digital camera system and control method thereof
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 (en) * 2002-07-01 2008-07-09 株式会社東芝 Method and program for using shared library in tamper resistant processor
US7171412B2 (en) * 2002-10-07 2007-01-30 Sun Microsystems, Inc. Restricted access model for hierarchical data structures
AU2003297275A1 (en) * 2002-11-15 2004-06-15 Big Champagne, 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
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
US9606846B2 (en) * 2005-07-29 2017-03-28 Sap Se System and method for dynamic proxy generation
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
US8862629B2 (en) * 2008-03-28 2014-10-14 Oracle International Corporation Future modeling
US20150277941A1 (en) * 2014-02-06 2015-10-01 Openpeak Inc. Method and system for linking to shared library
EP4165571A1 (en) * 2020-06-16 2023-04-19 Stoneridge Electronics, AB System and process for dynamic information discovery between commercial shipping assets

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH036640A (en) * 1989-05-15 1991-01-14 Internatl Business Mach Corp <Ibm> Object directional data base-system and control method thereof
JPH07175730A (en) * 1993-01-26 1995-07-14 Internatl Business Mach Corp <Ibm> System and method for transfer of data in object-oriented environment
JPH09212365A (en) * 1996-01-03 1997-08-15 Internatl Business Mach Corp <Ibm> System, method, and product for information handling including integration of object security service approval in decentralized computing environment
JPH10320205A (en) * 1997-05-20 1998-12-04 Fujitsu Ltd Information processor

Family Cites Families (10)

* Cited by examiner, † Cited by third party
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
DE69941142D1 (en) * 1998-05-06 2009-09-03 Sun Microsystems Inc PROCESSING MACHINE AND PROCESSING 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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH036640A (en) * 1989-05-15 1991-01-14 Internatl Business Mach Corp <Ibm> Object directional data base-system and control method thereof
JPH07175730A (en) * 1993-01-26 1995-07-14 Internatl Business Mach Corp <Ibm> System and method for transfer of data in object-oriented environment
JPH09212365A (en) * 1996-01-03 1997-08-15 Internatl Business Mach Corp <Ibm> System, method, and product for information handling including integration of object security service approval in decentralized computing environment
JPH10320205A (en) * 1997-05-20 1998-12-04 Fujitsu Ltd Information processor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012185732A (en) * 2011-03-07 2012-09-27 Nec Corp Information processor, program fraudulence detection method and program fraudulence detection program
JP2014063237A (en) * 2012-09-20 2014-04-10 Nec Corp Module management device, module management system and module management method
JP2015097061A (en) * 2013-11-15 2015-05-21 株式会社東芝 Information processing apparatus, information processing method, and program
US10275592B2 (en) 2013-11-15 2019-04-30 Kabushiki Kaisha Toshiba Information processing device, information processing method, and computer program product

Also Published As

Publication number Publication date
US20020169791A1 (en) 2002-11-14
US6996707B2 (en) 2006-02-07
JP4841787B2 (en) 2011-12-21
EP1261913A4 (en) 2004-07-21
WO2001055839A1 (en) 2001-08-02
US6385722B1 (en) 2002-05-07
AU2001229615A1 (en) 2001-08-07
EP1261913A1 (en) 2002-12-04

Similar Documents

Publication Publication Date Title
JP2003521063A (en) Method, system and product for restricting access to program files in shared library files
US6772408B1 (en) Event model using fixed-format text strings to express event actions
US7631300B2 (en) Providing instrumentation data to an instrumentation data source from within a managed code
US6282702B1 (en) Method and apparatus of translating and executing native code in a virtual machine environment
JP3822541B2 (en) Computer system for passing a pointer to an object interface
US5802367A (en) Method and system for transparently executing code using a surrogate process
US7143421B2 (en) Highly componentized system architecture with a demand-loading namespace and programming model
US6272559B1 (en) Deferred reconstruction of objects and remote loading for event notification in a distributed system
US6263498B1 (en) Method and apparatus for enabling server side distributed object modification
US6792612B1 (en) Java runtime system with modified constant pool
US20050223018A1 (en) Efficient linking and loading for late binding and platform retargeting
JP2001518658A (en) Method and apparatus for evaluating compatibility between platforms and applications
US7886286B2 (en) Integration of non-componentized libraries in component-based systems
JP2002517815A (en) Method reference in object-based programming
KR20010034514A (en) Method and system for deterministic hashes to identify remote methods
US7080383B1 (en) System and method for extending functionality of a class object
US6918126B1 (en) Method and apparatus for creating and enforcing protected system level Java code
JP3844801B2 (en) Method and mechanism for invocation on an object with interface inheritance
US7159222B1 (en) Highly componentized system architecture with object mutation
EP1057113B1 (en) Deferred reconstruction of objects and remote loading for event notification in a distributed system
Brandt Dynamic Adaptation of Mobile Code in Heterogeneous Environments
Pautet et al. GLADE users guide
US20030115178A1 (en) Mechanism for invocation of user-defined routines in a multi-threaded database environment
Sumbera Java/JMDL communication with MDL applications
McDonald CMU common lisp user's manual: Masch IBM RT PC editon

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