WO1998037486A1 - Method for lookup of packages and classes in java, and devices making use of this method - Google Patents

Method for lookup of packages and classes in java, and devices making use of this method Download PDF

Info

Publication number
WO1998037486A1
WO1998037486A1 PCT/IB1997/000135 IB9700135W WO9837486A1 WO 1998037486 A1 WO1998037486 A1 WO 1998037486A1 IB 9700135 W IB9700135 W IB 9700135W WO 9837486 A1 WO9837486 A1 WO 9837486A1
Authority
WO
WIPO (PCT)
Prior art keywords
classes
client system
class
java
loading
Prior art date
Application number
PCT/IB1997/000135
Other languages
French (fr)
Inventor
Thomas Eirich
Original Assignee
International Business Machines Corporation
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 International Business Machines Corporation filed Critical International Business Machines Corporation
Priority to PCT/IB1997/000135 priority Critical patent/WO1998037486A1/en
Priority to TW087103679A priority patent/TW393625B/en
Publication of WO1998037486A1 publication Critical patent/WO1998037486A1/en

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/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Definitions

  • the present invention relates to a method for loading Java classes or packages into a client system where these classes or packages could not be found otherwise ("Java” is a programming language developed by and a trademark of SUN Microsystems Inc., USA). Furthermore, the present invention relates to a new group of Java-enabled devices making use of the method for loading Java classes or packages.
  • HTML hypertext markup language
  • client computer Currently, the hypertext markup language (HTML) is used on many network servers. HTML is mainly suited for loading information into a client computer where this information is then displayed. Interaction between client and server is only possible if the browser makes use of the Common Gateway Interface (CGI). CGI enables a user to insert information in an entry panel. Based on the information inserted by the user, certain tasks can be carried out by the server. A typical example is a search engine which supports the user in searching for a particular word or combination of words.
  • CGI Common Gateway Interface
  • Java programs also called Java applets. It is an important feature of Java that the client computer instead of the server is the computer which carries out certain task upon request of the user. The time a task takes does no longer depend on the load of the server or on the load of the network linking the client to the server. Once a Java program is loaded into the client, it runs on the client and is completely under control of the user.
  • Java applet is a program written in the Java language. By means of a Java compiler it is transformed into Java code.
  • This Java code is a byte code being platform-independent. Usually, the byte code is made available on a server. If a user wants to use a Java applet, he fetches the applet from the server, i.e. the respective byte code is transmitted via the network from the server to the client and loaded into the client computer. This is done under control of a Java interpreter being located at the client. The Java interpreter checks the process of loading the byte code and performs some verification tasks to ensure that the byte code received conforms to a required specification, the Java Byte Code specification.
  • the Java interpreter executes the byte code step-by-step. Because this interpreter is required for the execution of the byte code, a Java applet usually is much slower than a comparable applet written in a native programming language which can be directly understood and executed by the processor of the client.
  • Java system API application program interface
  • the API is client-specific.
  • a built-in Java class loader is provided which searches for a class or package needed and loads the respective package or class. All these packages and classes have to be installed on the client before Java applets are executed.
  • a further object of the present invention is to minimize the size of the pre-loaded functionality, especially the number of Java classes on client systems.
  • a still further object is to avoid loading the network with bulk transmissions of notifications, updates and/or modifications of Java classes from servers to a large plurality of clients.
  • a special mechanism for loading those classes which are not found on the local client system is provided.
  • This special class loader referred to as extended class loader, enables the loading of unavailable classes into a client system, before they are loaded into the runtime system via the existing API.
  • the number of classes in a client system can be reduced, such that a client system according to the present invention needs far less storage space than a conventional Java client. In other words, smaller and cheaper systems can be made.
  • Network computers a new category of machines designed to cut the cost of personal computing, can be realized, which just provide the functionally that is permanently needed. Classes which are not available at the client are loaded only upon demand by the extended class loader according to the present invention.
  • client system' is used hereinafter as a synonym for any kind of system enabled to execute a Java applet.
  • client systems are: computers, in particular network computers, set-top boxes, telephones, cellular phones, pagers, printers and the like.
  • browsers and other software which is able to execute a Java applet.
  • the network which is used to interconnect the client system with a server from where a Java applet can be fetched may be a conventional network or a wireless IR or RF network.
  • the expression network is also meant to cover a simple link (peer-to-peer, for example) between a client system and a server. Also included are telephone, video on demand and other networks.
  • a client system comprises a Java interpreter which is mainly employed to control the loading of a Java applet from the network. This Java interpreter checks the process of loading the respective byte code and performs verification tasks to ensure that the byte code received was transmitted properly.
  • the Java interpreter now executes the byte code step-by-step.
  • the interpreter needs to interact with the client system directly, e.g. if there is information on a local disk to be loaded, or information to be displayed on a display.
  • the Java system API is provided. This API is client-specific.
  • the Java interpreter comprises a built-in Java class ioader which handles the binding of said Java classes with the Java applet executed. It initiates the access to a class referred to by a string m the byte code of said applet. Then, it looks up the respective class to be accessed and loads it into the Java interpreter. A pointer is returned which indicates where said respective class is located in said client system's memory.
  • Packages and classes in Java are organized in a tree, where the inner nodes of the tree are package components and the leaves are class names.
  • a class is specified by a possibly empty sequence of package components followed by a class name. These components are separated by dots such as for example : Java. util. Date.
  • 'Date' is the class name and 'util' and 'Java' are package components and the whole string is referred to as qualified class name.
  • the class name specifications are translated into path names of the client system's operating system (e.g. java/util/Date) and are expected to refer to a file containing the definition of a Java class, i.e. a pointer is provided which indicates where the respective file is to be found in the client's memory.
  • the underlying idea of the present invention is to reduce the burden of a client system by pre-installing only those classes and packages which are essential for the execution of most Java applets. In addition to these essential classes and packages, one may pre-install those classes and packages which are expected to be needed frequently during the execution of specific Java applets the respective client system is designed for. It is to be noted that the number and kind of essential classes may differ from client system to client system. According to the present invention, means are provided for loading a package, package component, or class which is not present in the file system held in the client system's memory.
  • a special class Ioader may be provided which handles the loading of classes from another system.
  • This special class Ioader receives the qualified class name from the Java runtime interpreter. It handles the lookup of the package components until it reaches the requested class. The class then is loaded from the other system into the client's runtime system via the existing Java API. While parsing the package components, the extended class Ioader may hand over to yet another class Ioader which is responsible for a subtree.
  • a class Ioader may be employed which does not require to change the Java runtime interpreter.
  • the extended class Ioader simply interacts with a standard Java runtime interpreter, for example.
  • the extended class Ioader may check if there exists a special Java class file instead of the missing directory related to a package component.
  • the name is derived from the package name in such a way that it will not interfere with any legal class or package name, e.g. a dash may be used in the name of a class file replacing a missing directory.
  • the class file could be called 'util-loader', for example, if the 'util' directory is missing in the client. This class is automatically loaded to handle requests for the missing directory.
  • a second possibility to implement the extended class Ioader is to explicitly register those classes which do not belong to the reduced set of classes. This requires an initial setup before user applications can be executed but gives more flexibility.
  • a client system In a client system, according to the present invention, only the essential classes are pre-installed. For execution, the byte code of a Java applet needs to be interpreted. Only those classes which are available in the client system can be accessed directly using the built-in class Ioader. All other classes are not available in the client system and are loaded using the extended class Ioader described above.
  • the implementation of the extended class Ioader according to the present invention does not require any modification of existing Java application sources code and compiled Java code.
  • the Java applets need not to be aware of the fact that a client system operates only on a reduced set of classes (namely at least the essential classes). It is conceivable that the present invention can also be implemented by modification of the built-in class Ioader of the Java runtime system.
  • the present invention has the advantage that the newest class versions can be loaded from the server, i.e. the operator needs to replace an old version of a class by a newer version only in the server.
  • the inventive class Ioader automatically fetches the newest version provided by the server.
  • a further arrangement of the invention includes an automatic erasing function in the client system. Such a function would erase any class fetched by the class Ioader according to the invention after it was used. This erase function may be executed either immediately after the loaded class was used or may be conditioned on the lapse of a predetermined time or the non-use for a predetermined time or any other condition, e.g. the remaining space of the storage/memory in the client system.
  • a still further embodiment adds a function that permanently stores a fetched class in the client system whenever a predetermined condition is met. Such a condition may be the repeated use of a fetched class within a predetermined time space.
  • the present invention is of particular importance for network computers which are equipped with a storage/memory of limited capacity to keep them as simple and inexpensive as possible. Such a network computer still may execute any Java applet. If a particular class is needed which is not stored in the client's storage, the inventive class ioader fetches this respective class or classes from another system, such as a server. It is conceivable that the loading of a class or set of classes is billed using an electronic cash billing system. Furthermore, it is possible that certain classes are only available for down-loading for a specific set of customers, e.g. system administrators.
  • the present class Ioader can be further modified such that a message is returned to the user which allows him to stop the process of loading a class not belonging to the reduced set of classes being held in the client system, Le. the user may control the loading of classes from remote systems. The user may even be provided with information concerning the lengths of a class file to be loaded, the duration the loading will take, and the price.
  • the present class Ioader can also be used as template mechanism, the class Ioader can create and compile a Java class on-the-fly, depending on the passed class specification. Since Java presently lacks a template mechanism, and the Java language is intended to be kept simple, this is a good way of introducing a template mechanism.
  • a class Ioader, according to the present invention need not to load an existing class file from a remote system, but can create such a class file itself using a template mechanism. The information given in a qualified class name may be used to create a respective class file.

Abstract

The present invention concerns a client system comprising a Java interpreter for the execution of a Java program (Java applet) and a set of Java classes for interaction with the client system. The client system only holds a reduced set of Java classes, and comprises means for loading Java classes which do not belong to the reduced set of Java classes into the client system only if needed during execution of said Java program. It may also include means for erasing such a loaded class and/or means for storing such a loaded class permanently, i.e., adding it to the reduced set of Java classes.

Description

DESCRIPTION
Method for lookup of packages and classes in Java, and devices making use of this method
TECHNICAL FIELD
The present invention relates to a method for loading Java classes or packages into a client system where these classes or packages could not be found otherwise ("Java" is a programming language developed by and a trademark of SUN Microsystems Inc., USA). Furthermore, the present invention relates to a new group of Java-enabled devices making use of the method for loading Java classes or packages.
BACKGROUND OF THE INVENTION
Current networks, such as the Internet are heterogeneous systems linking computers of various manufacturers. There are many different hardware platforms - based on Intel processors, RISC processors, and the like - each of which has a specific architecture. In addition, there are various operating systems which are installed on these platforms. In order to access the world-wide-web (WWW) part of the Internet for example, one also needs a so-called browser which is able to fetch information from a remote server. Such information is then stored in the client computer, i.e. the computer where the browser is located, before it is displayed on the local display. Such a browser is able to invoke a suitable editor for viewing information.
Currently, the hypertext markup language (HTML) is used on many network servers. HTML is mainly suited for loading information into a client computer where this information is then displayed. Interaction between client and server is only possible if the browser makes use of the Common Gateway Interface (CGI). CGI enables a user to insert information in an entry panel. Based on the information inserted by the user, certain tasks can be carried out by the server. A typical example is a search engine which supports the user in searching for a particular word or combination of words.
Real interactivity is possible if one uses Java programs (also called Java applets). It is an important feature of Java that the client computer instead of the server is the computer which carries out certain task upon request of the user. The time a task takes does no longer depend on the load of the server or on the load of the network linking the client to the server. Once a Java program is loaded into the client, it runs on the client and is completely under control of the user.
A Java applet is a program written in the Java language. By means of a Java compiler it is transformed into Java code. This Java code is a byte code being platform-independent. Usually, the byte code is made available on a server. If a user wants to use a Java applet, he fetches the applet from the server, i.e. the respective byte code is transmitted via the network from the server to the client and loaded into the client computer. This is done under control of a Java interpreter being located at the client. The Java interpreter checks the process of loading the byte code and performs some verification tasks to ensure that the byte code received conforms to a required specification, the Java Byte Code specification.
Next, the Java interpreter executes the byte code step-by-step. Because this interpreter is required for the execution of the byte code, a Java applet usually is much slower than a comparable applet written in a native programming language which can be directly understood and executed by the processor of the client.
From time to time, the interpreter needs to interact with the client system directly, e.g. if there is information on a local disk to be loaded. In order to enable the interaction between the Java interpreter and the client system, a so-called Java system API (application program interface) is provided. The API is client-specific. In today's systems, a built-in Java class loader is provided which searches for a class or package needed and loads the respective package or class. All these packages and classes have to be installed on the client before Java applets are executed.
It is a disadvantage of this approach that the Java packages and classes need to be made available by the client, i.e., memory is occupied by the packages and classes kept in the client. It is another disadvantage that new or updated packages and classes can only be added by loading them into all client computers.
It is an object of the present invention to provide low-cost client systems, such as computers, set-top boxes, telephones and the like, which support Java, which do not require the memory space identified above.
It is another object of the present invention to provide a method which allows to execute Java applets on low-cost systems, such as small network computers, set-top boxes, telephones and the like.
A further object of the present invention is to minimize the size of the pre-loaded functionality, especially the number of Java classes on client systems.
A still further object is to avoid loading the network with bulk transmissions of notifications, updates and/or modifications of Java classes from servers to a large plurality of clients. SUMMARY OF THE INVENTION
This is achieved by providing a new and inventive approach which allows to reduce the number of classes to be kept in a client system. In order to be able to execute Java code using a Java interpreter, a special mechanism for loading those classes which are not found on the local client system is provided. This special class loader, referred to as extended class loader, enables the loading of unavailable classes into a client system, before they are loaded into the runtime system via the existing API.
Thus, the number of classes in a client system can be reduced, such that a client system according to the present invention needs far less storage space than a conventional Java client. In other words, smaller and cheaper systems can be made. Network computers, a new category of machines designed to cut the cost of personal computing, can be realized, which just provide the functionally that is permanently needed. Classes which are not available at the client are loaded only upon demand by the extended class loader according to the present invention.
It is another advantage of the present invention that all classes, except for those being stored in the client system, remain under the control of the server. These classes can be modified and updated from time to time without having to notify the clients and/or transmit modifications and updates automatically to a large number of clients.
GENERAL DESCRIPTION
The expression 'client system' is used hereinafter as a synonym for any kind of system enabled to execute a Java applet. Typical examples of such client systems are: computers, in particular network computers, set-top boxes, telephones, cellular phones, pagers, printers and the like. Also included are browsers and other software which is able to execute a Java applet.
The network which is used to interconnect the client system with a server from where a Java applet can be fetched, may be a conventional network or a wireless IR or RF network. The expression network is also meant to cover a simple link (peer-to-peer, for example) between a client system and a server. Also included are telephone, video on demand and other networks.
A client system comprises a Java interpreter which is mainly employed to control the loading of a Java applet from the network. This Java interpreter checks the process of loading the respective byte code and performs verification tasks to ensure that the byte code received was transmitted properly.
Either automatically, or upon request of the user, the Java interpreter now executes the byte code step-by-step. During the execution of a Java applet, the interpreter needs to interact with the client system directly, e.g. if there is information on a local disk to be loaded, or information to be displayed on a display. In order to enable the exchange of information between the Java interpreter and the client system, the Java system API is provided. This API is client-specific.
In today's systems, the Java interpreter comprises a built-in Java class ioader which handles the binding of said Java classes with the Java applet executed. It initiates the access to a class referred to by a string m the byte code of said applet. Then, it looks up the respective class to be accessed and loads it into the Java interpreter. A pointer is returned which indicates where said respective class is located in said client system's memory.
In current client systems, all these packages and classes have to be pre-installed before a Java applet can be executed by the interpreter.
Packages and classes in Java are organized in a tree, where the inner nodes of the tree are package components and the leaves are class names. A class is specified by a possibly empty sequence of package components followed by a class name. These components are separated by dots such as for example : Java. util. Date. In this example 'Date' is the class name and 'util' and 'Java' are package components and the whole string is referred to as qualified class name. The class name specifications are translated into path names of the client system's operating system (e.g. java/util/Date) and are expected to refer to a file containing the definition of a Java class, i.e. a pointer is provided which indicates where the respective file is to be found in the client's memory.
It has been realized that these packages and classes can be divided up into classes and packages which are required by the client system to ensure proper operation (hereinafter referred to as essential classes), and other classes and packages.
The underlying idea of the present invention is to reduce the burden of a client system by pre-installing only those classes and packages which are essential for the execution of most Java applets. In addition to these essential classes and packages, one may pre-install those classes and packages which are expected to be needed frequently during the execution of specific Java applets the respective client system is designed for. It is to be noted that the number and kind of essential classes may differ from client system to client system. According to the present invention, means are provided for loading a package, package component, or class which is not present in the file system held in the client system's memory. Instead of indicating to the Java runtime interpreter that a particular class was not found (simply because this class is not stored in the client) a special class Ioader may be provided which handles the loading of classes from another system. This special class Ioader receives the qualified class name from the Java runtime interpreter. It handles the lookup of the package components until it reaches the requested class. The class then is loaded from the other system into the client's runtime system via the existing Java API. While parsing the package components, the extended class Ioader may hand over to yet another class Ioader which is responsible for a subtree.
According to the present invention, a class Ioader may be employed which does not require to change the Java runtime interpreter. The extended class Ioader simply interacts with a standard Java runtime interpreter, for example.
First, the extended class Ioader, according to the present invention, may check if there exists a special Java class file instead of the missing directory related to a package component. The name is derived from the package name in such a way that it will not interfere with any legal class or package name, e.g. a dash may be used in the name of a class file replacing a missing directory. The class file could be called 'util-loader', for example, if the 'util' directory is missing in the client. This class is automatically loaded to handle requests for the missing directory. A second possibility to implement the extended class Ioader is to explicitly register those classes which do not belong to the reduced set of classes. This requires an initial setup before user applications can be executed but gives more flexibility.
In a client system, according to the present invention, only the essential classes are pre-installed. For execution, the byte code of a Java applet needs to be interpreted. Only those classes which are available in the client system can be accessed directly using the built-in class Ioader. All other classes are not available in the client system and are loaded using the extended class Ioader described above.
It is important to note that the implementation of the extended class Ioader according to the present invention does not require any modification of existing Java application sources code and compiled Java code. The Java applets need not to be aware of the fact that a client system operates only on a reduced set of classes (namely at least the essential classes). It is conceivable that the present invention can also be implemented by modification of the built-in class Ioader of the Java runtime system.
To sustain a homogenous network platform, it is necessary that all Java platforms have the same set of Java APIs available, i.e. all these platforms connected to one and the same network should have the same set of Java classes. For small Java client systems the required disk space to hold all Java classes might be a problem. With the present class loading mechanism, it is possible to fetch all classes which are not available at the client (APIs) on demand over the network.
The present invention has the advantage that the newest class versions can be loaded from the server, i.e. the operator needs to replace an old version of a class by a newer version only in the server. Each time a client system asks for a class which is not stored in the client, the inventive class Ioader automatically fetches the newest version provided by the server.
A further arrangement of the invention includes an automatic erasing function in the client system. Such a function would erase any class fetched by the class Ioader according to the invention after it was used. This erase function may be executed either immediately after the loaded class was used or may be conditioned on the lapse of a predetermined time or the non-use for a predetermined time or any other condition, e.g. the remaining space of the storage/memory in the client system. A still further embodiment adds a function that permanently stores a fetched class in the client system whenever a predetermined condition is met. Such a condition may be the repeated use of a fetched class within a predetermined time space.
The present invention is of particular importance for network computers which are equipped with a storage/memory of limited capacity to keep them as simple and inexpensive as possible. Such a network computer still may execute any Java applet. If a particular class is needed which is not stored in the client's storage, the inventive class ioader fetches this respective class or classes from another system, such as a server. It is conceivable that the loading of a class or set of classes is billed using an electronic cash billing system. Furthermore, it is possible that certain classes are only available for down-loading for a specific set of customers, e.g. system administrators.
The present class Ioader can be further modified such that a message is returned to the user which allows him to stop the process of loading a class not belonging to the reduced set of classes being held in the client system, Le. the user may control the loading of classes from remote systems. The user may even be provided with information concerning the lengths of a class file to be loaded, the duration the loading will take, and the price.
The present class Ioader can also be used as template mechanism, the class Ioader can create and compile a Java class on-the-fly, depending on the passed class specification. Since Java presently lacks a template mechanism, and the Java language is intended to be kept simple, this is a good way of introducing a template mechanism. A class Ioader, according to the present invention, need not to load an existing class file from a remote system, but can create such a class file itself using a template mechanism. The information given in a qualified class name may be used to create a respective class file.

Claims

1 . Client system comprising
• a Java interpreter for the execution of a Java program, and
• a set of Java classes for interaction with the client system, said client system being characterized in that said set of Java classes is a reduced set of Java classes, and in that said client system comprises means for loading Java classes which do not belong to said reduced set of Java classes into said client system only if needed during execution of said Java program.
2. The client system of claim 1 , wherein the Java interpreter returns a string to the means for loading Java classes, said string being used to enable the loading of a class not belonging to the reduced set of classes.
3. The client system of claim 1 , wherein the means for loading Java classes fetches a class not belonging to the reduced set of classes from another system holding at least those classes which do not belong to said reduced set of classes.
4. The client system of claim 3, wherein the other system is a remote system, especially a server, connected to said client system via a network.
5. The client system of claim 1 , wherein the class not belonging to the reduced set of classes is loaded into a memory of said client system or a storage device connected to said client system.
6. The client system according to any of the preceding claims, further including an erase function for automatically erasing any fetched class not belonging to the reduced set of classes, in particular erasing it whenever one or more predetermined first conditions are met, and/or an addition function adding any fetched class to said reduced set of classes whenever one or more predetermined second conditions are met.
7. The client system of claim 1 , wherein the means for loading Java classes returns a message to the user which allows the user to stop the process of loading a class not belonging to the reduced set of classes.
8. The client system of claim 1 being a computer, in particular a network computer, a set-top box, a telephone, in particular a cellular telephone, a pager, or a printer.
9. The client system of claim 1 being a browser or software tool.
10. Method for executing the byte code of a Java program in a client system, said method comprising the step of:
• executing said byte code using a Java interpreter,
• initiating the access to a class referred to by a string in said byte code,
• looking up the respective class to be accessed,
• if said respective class belongs to a reduced set of classes found in said client system, loading said respective class into said Java interpreter and returning a pointer which indicates where said respective class is located in said client system's memory,
• else loading said respective class from another system into said client system's memory using said string and returning a pointer which indicates where said respective class was put in said client system's memory.
1 1. The method of claim 10, whereby the respective class not belonging to the reduced set of classes is automatically erased whenever a predetermined first condition is met, and/or is added to said reduced set of classes whenever a predetermined second condition is met.
12. The method of claim 10, whereby either the steps for loading classes from another system are repeated such that several classes are loaded sequentially, or wherein several classes are loaded together.
13. The method of claim 10, whereby a network connection to the other system is established before a class is loaded from said other system.
14. The method of claim 10, whereby a message is returned to the user allowing the latter to stop the process of loading a class not belonging to the reduced set of classes.
AMENDED CLAIMS
[received by the International Bureau on 19 February 1998 ( 19.02.98) original c laims 1 , 6 , 8 and 10-1 1 amended ; remain ing cl aims unchanged ( 3 pages ) ]
1. Client system comprising a Java interpreter for the execution of a Java program and a stored set of Java classes for interaction with the client system,
said client system being characterized in that
- said stored set is a reduced set of Java classes and said client system comprises means for loading an additional Java class, which does not belong to said reduced set of Java classes, into said client system whenever said additional Java class is needed during execution of said Java program, and means for automatically erasing said additional Java class, preferably after is has been used.
2. The client system of claim 1 , wherein the Java interpreter returns a string to the means for loading an additional Java class, said string being used to enable the loading of an additional class not belonging to the reduced set of classes.
3. The client system of claim 1 , wherein the means for loading an additional Java class fetches a class not belonging to the reduced set of classes from another system holding at least those classes which do not belong to said reduced set of classes.
4. The client system of claim 3, wherein the other system is a remote system, especially a server, connected to said client system via a network.
5. The client system of claim 1 , wherein the class not belonging to the reduced set of classes is loaded into a memory of said client system or a storage device connected to said client system.
6. The client system of claim 1 , wherein the means for automatically erasing an additional class erases the latter whenever one or more predetermined first conditions are met, preferably after said additional class has been used, and, whenever one or more predetermined second conditions are met, maintains it and may add it to to said reduced set of classes.
7. The client system of claim 1 , wherein the means for loading an additional Java class returns a message to the user which allows the user to stop the process of loading a class not belonging to the reduced set of classes.
8. The client system of claim 1 being a computer, in particular a small network computer, a smartcard, a set-top box, a telephone, in particular a cellular telephone, a pager, or a printer.
9. The client system of claim 1 being a browser or software tool.
10. Method for executing the byte code of a Java program in a client system, said method comprising the step of: executing said byte code using a Java interpreter, initiating the access to a class referred to by a string in said byte code, looking up the respective class to be accessed, if said respective class belongs to a reduced set of classes found in said client system, loading said respective class into said Java interpreter and returning a pointer which indicates where said respective class is located in said client system's memory, - else loading said respective class from another system into said client system's memory using said string and returning a pointer which indicates where said respective class was put in said client system's memory, and automatically erasing said respective class, preferably after it has been used.
1 1. The method of claim 10, whereby the respective class not belonging to the reduced set of classes is automatically erased if a predetermined first condition is met, and is maintained and, preferably, added to said reduced set of classes whenever a predetermined second condition is met.
12. The method of claim 10, whereby either the steps for loading classes from another system are repeated such that several classes are loaded sequentially or wherein several classes are loaded together.
13. The method of claim 10, whereby a network connection to the other system is established before a class is loaded from said other system.
14. The method of claim 10, whereby a message is returned to the user allowing the latter to stop the process of loading a class not belonging to the reduced set of classes.
PCT/IB1997/000135 1997-02-18 1997-02-18 Method for lookup of packages and classes in java, and devices making use of this method WO1998037486A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/IB1997/000135 WO1998037486A1 (en) 1997-02-18 1997-02-18 Method for lookup of packages and classes in java, and devices making use of this method
TW087103679A TW393625B (en) 1997-02-18 1998-03-12 Method for lookup of packages and classes in java, and devices making use of this method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB1997/000135 WO1998037486A1 (en) 1997-02-18 1997-02-18 Method for lookup of packages and classes in java, and devices making use of this method

Publications (1)

Publication Number Publication Date
WO1998037486A1 true WO1998037486A1 (en) 1998-08-27

Family

ID=11004531

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB1997/000135 WO1998037486A1 (en) 1997-02-18 1997-02-18 Method for lookup of packages and classes in java, and devices making use of this method

Country Status (2)

Country Link
TW (1) TW393625B (en)
WO (1) WO1998037486A1 (en)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0945792A2 (en) * 1998-03-23 1999-09-29 Sun Microsystems, Inc. Techniques for implementing a framework for extensible applications
WO2000007118A1 (en) * 1998-07-30 2000-02-10 Maila Nordic Ab E-mail with attachment information including pointer to managing programmes
EP0996059A2 (en) * 1998-10-19 2000-04-26 International Business Machines Corporation Class loading model
WO2000077633A1 (en) * 1999-06-15 2000-12-21 Sun Microsystems, Inc. Just-in-time services for small footprint devices
KR20010006750A (en) * 1999-03-16 2001-01-26 포만 제프리 엘 Method for identifying calls in java packages whose targets are guaranteed to belong to the same package
WO2001019159A2 (en) * 1999-09-14 2001-03-22 Tao Group Limited Loading object-oriented computer programs
WO2001020449A1 (en) * 1999-09-14 2001-03-22 Tao Group Limited Loading object-oriented computer programs
WO2001065368A2 (en) * 2000-03-01 2001-09-07 Tashenberg Bradley A A distributed operating network and method for using and implementing same
FR2817055A1 (en) * 2000-11-22 2002-05-24 Gemplus Card Int Execution of an application in a portable electronic device, such as a chip card, when the card does not have sufficient memory to load the entire application, by sequential loading of parts of the code in a secure manner
WO2002065228A2 (en) * 2001-02-13 2002-08-22 Lux Inflecta Ehf Distributed computing system
EP1267259A2 (en) * 2001-06-11 2002-12-18 Hewlett-Packard Company Runtime updating of virtual machine class files
US6634022B1 (en) 1999-10-28 2003-10-14 Koninklijke Philips Electronics N.V. Method for platform specific efficiency enhancement of java programs and software product therefor
EP1367770A1 (en) * 2002-05-29 2003-12-03 Alcatel Canada Inc. Limited plugin load-up in support of distributed network management and service provisioning environments
WO2004097639A2 (en) 2003-04-29 2004-11-11 Sony Ericsson Mobile Communications Ab Selective loading of remote classes or resources for debugging a java application in a java micro device
US6910215B1 (en) 2000-05-04 2005-06-21 International Business Machines Corporation Methods, systems and computer programs products for extending existing applications with static Java methods
US7272827B2 (en) 2002-04-03 2007-09-18 International Business Machines Corporation Statically detecting externally referenced interfaces of a program
US7376660B2 (en) 2004-09-29 2008-05-20 International Business Machines Corporation System and method for extensible java server page resource management

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0718761A1 (en) * 1994-12-20 1996-06-26 Sun Microsystems, Inc. A platform independent object and object viewer loader and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0718761A1 (en) * 1994-12-20 1996-06-26 Sun Microsystems, Inc. A platform independent object and object viewer loader and method

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"JAVA DYNAMIC CLASS LOADER", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 39, no. 11, pages 107/108, XP000679837 *
"JAVA PERKS DEVELOPER INTEREST FROM IS TO EMBEDDED SYSTEMS", COMPUTER DESIGN, vol. 35, no. 6, pages 32 - 34, 37, XP000593778 *
JAMES GOSLING & HENRY MCGILTON: "The Java Language Environment: A White Paper", SUN MICROSYSTEMS, INC., October 1995 (1995-10-01), MOUNTAIN VIEW, CA, USA, pages 1 - 85, XP002042922 *
JAMES GOSLING ET AL.: "The Java Language Specification", August 1996, ADDISON-WESLEY, USA, XP002042923 *

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0945792A3 (en) * 1998-03-23 2003-04-16 Sun Microsystems, Inc. Techniques for implementing a framework for extensible applications
EP0945792A2 (en) * 1998-03-23 1999-09-29 Sun Microsystems, Inc. Techniques for implementing a framework for extensible applications
US6366949B1 (en) 1998-07-30 2002-04-02 Maila Nordic Ab Method and arrangement relating to communication in a network
WO2000007118A1 (en) * 1998-07-30 2000-02-10 Maila Nordic Ab E-mail with attachment information including pointer to managing programmes
EP0996059A2 (en) * 1998-10-19 2000-04-26 International Business Machines Corporation Class loading model
EP0996059A3 (en) * 1998-10-19 2003-11-12 International Business Machines Corporation Class loading model
KR20010006750A (en) * 1999-03-16 2001-01-26 포만 제프리 엘 Method for identifying calls in java packages whose targets are guaranteed to belong to the same package
WO2000077633A1 (en) * 1999-06-15 2000-12-21 Sun Microsystems, Inc. Just-in-time services for small footprint devices
US6430599B1 (en) 1999-06-15 2002-08-06 Sun Microsystems, Inc. Just-in-time services for small footprint devices
WO2001019159A3 (en) * 1999-09-14 2001-12-06 Tao Group Ltd Loading object-oriented computer programs
WO2001020449A1 (en) * 1999-09-14 2001-03-22 Tao Group Limited Loading object-oriented computer programs
US7191434B2 (en) 1999-09-14 2007-03-13 Tao Group Limited Loading object-oriented computer programs
EP1416378A3 (en) * 1999-09-14 2006-10-25 Tao Group Limited Discard class after translation
EP1416378A2 (en) * 1999-09-14 2004-05-06 Tao Group Limited Discard class after translation
WO2001019159A2 (en) * 1999-09-14 2001-03-22 Tao Group Limited Loading object-oriented computer programs
US6634022B1 (en) 1999-10-28 2003-10-14 Koninklijke Philips Electronics N.V. Method for platform specific efficiency enhancement of java programs and software product therefor
WO2001065368A3 (en) * 2000-03-01 2003-01-23 Bradley A Tashenberg A distributed operating network and method for using and implementing same
WO2001065368A2 (en) * 2000-03-01 2001-09-07 Tashenberg Bradley A A distributed operating network and method for using and implementing same
US6910215B1 (en) 2000-05-04 2005-06-21 International Business Machines Corporation Methods, systems and computer programs products for extending existing applications with static Java methods
FR2817055A1 (en) * 2000-11-22 2002-05-24 Gemplus Card Int Execution of an application in a portable electronic device, such as a chip card, when the card does not have sufficient memory to load the entire application, by sequential loading of parts of the code in a secure manner
WO2002042912A1 (en) * 2000-11-22 2002-05-30 Gemplus Executing an application in a portable electronic object with low storage capacity
WO2002065228A2 (en) * 2001-02-13 2002-08-22 Lux Inflecta Ehf Distributed computing system
WO2002065228A3 (en) * 2001-02-13 2004-07-29 Lux Inflecta Ehf Distributed computing system
EP1267259A2 (en) * 2001-06-11 2002-12-18 Hewlett-Packard Company Runtime updating of virtual machine class files
EP1267259A3 (en) * 2001-06-11 2004-05-19 Hewlett-Packard Company Runtime updating of virtual machine class files
US8205193B2 (en) 2001-06-11 2012-06-19 Hewlett-Packard Development Company, L.P. Runtime updating of virtual machine class files
US7272827B2 (en) 2002-04-03 2007-09-18 International Business Machines Corporation Statically detecting externally referenced interfaces of a program
EP1367770A1 (en) * 2002-05-29 2003-12-03 Alcatel Canada Inc. Limited plugin load-up in support of distributed network management and service provisioning environments
WO2004097639A3 (en) * 2003-04-29 2005-07-28 Sony Ericsson Mobile Comm Ab Selective loading of remote classes or resources for debugging a java application in a java micro device
US7337434B2 (en) 2003-04-29 2008-02-26 Sony Ericsson Mobile Communications Ab Off-device class/resource loading methods, systems and computer program products for debugging a Java application in a Java micro device
WO2004097639A2 (en) 2003-04-29 2004-11-11 Sony Ericsson Mobile Communications Ab Selective loading of remote classes or resources for debugging a java application in a java micro device
US7376660B2 (en) 2004-09-29 2008-05-20 International Business Machines Corporation System and method for extensible java server page resource management
US7509335B2 (en) 2004-09-29 2009-03-24 International Business Machines Corporation System and method for extensible Java Server Page resource management

Also Published As

Publication number Publication date
TW393625B (en) 2000-06-11

Similar Documents

Publication Publication Date Title
WO1998037486A1 (en) Method for lookup of packages and classes in java, and devices making use of this method
US7263699B2 (en) Preparation of a software configuration using an XML type programming language
KR20060082353A (en) System and method for providing and handling executable web content
US5727147A (en) System and method for resolving symbolic references to externally located program files
US5778231A (en) Compiler system and method for resolving symbolic references to externally located program files
US7836439B2 (en) System and method for extending a component-based application platform with custom services
JP4880121B2 (en) Method and apparatus for translating and executing native code in a virtual machine environment
US7987459B2 (en) Application programming interface for identifying, downloading and installing applicable software updates
EP1214645B1 (en) Method and system for distributing object-oriented computer programs
EP1818820A1 (en) System and method for installing custom services on a component-based application platform
US7191434B2 (en) Loading object-oriented computer programs
US20020129078A1 (en) Method and device for creating and using pre-internalized program files
JPH07160483A (en) Method for dynamic linkage of designated program image and related library program to executable application program image
EP1241572A2 (en) Virtual machine integration application program interface
JP2000353078A (en) System and method for improving management possibility and availability for java (registered trademark) and storage medium
US7653914B2 (en) Handling different service versions in a server
US7146610B2 (en) Method for upgrading software components without system shutdown
US6981251B1 (en) Agent system for mobile agents, computer network and method for downloading an agent system from a host computer to a client computer of a computer network
KR20060111349A (en) Process and system for sharing program fragments
KR950006617B1 (en) Linking method and apparatus of program units program activation
US6243704B1 (en) Business nonstandard character processing apparatus and system, and computer readable storage medium
US20020144011A1 (en) Loading object-oriented computer programs
EP2053504A1 (en) System and method for managing processing resources
KR20000006402A (en) Class loader
CN116048781A (en) Application management method, device, equipment and storage medium

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: CA

NENP Non-entry into the national phase

Ref country code: JP

Ref document number: 1998536425

Format of ref document f/p: F

122 Ep: pct application non-entry in european phase