Browse Prior Art Database

Java Dynamic Class Loader

IP.com Disclosure Number: IPCOM000118235D
Original Publication Date: 1996-Nov-01
Included in the Prior Art Database: 2005-Apr-01
Document File: 2 page(s) / 84K

Publishing Venue

IBM

Related People

Deri, L: AUTHOR

Abstract

Java Dynamic Class Loader Java is a portable, interpreted, high-performance, simple, object-oriented programming language environment developed at Sun Microsystems. The next generation of network centric applications needs to download code from either the network or the local disk. Java offers facilities for transmitting applications, called applets, over the network and running them on multiple client machines (1,2).

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Java Dynamic Class Loader

      Java Dynamic Class Loader Java is a portable, interpreted,
high-performance, simple, object-oriented programming language
environment developed at Sun Microsystems.  The next generation of
network centric applications needs to download code from either the
network or the local disk.  Java offers facilities for transmitting
applications, called applets, over the network and running them on
multiple client machines (1,2).

      Java standard class loader is responsible for loading classes
from either the network or the local disk.  Once a program
instantiates a new class, the class loader fetches the class from the
local cache, in  case the class has been loaded already, or loads it
explicitly.  This mechanism is quite efficient because it avoids
reloading the same class  multiple times.  The main drawback is
related to the inability of the class loader to detect whether a
class has been modified and then load  the new version of it.  This
prevents updating applications written in  Java while running.  Java
does not allow substitution of the standard class loader with a
custom class loader, but it allows loading selected  classes using a
custom class loader.  This means that the application is  loaded
using the standard class loader whereas the user can load selected
classes using a custom class loader.  Writing a custom class loader
that has the ability to detect whether a class is changed and then
loading the new class version does not solve the problem.  The Java
byte code verifier is a component of the Java runtime that checks the
byte code, i.e., the class being loaded, and decides whether the
class can be instantiated.  If a class is to be reloaded, the byte
code verifier  detects that the implementation of the class, or of
some parent classes,  has changed and then it refuses to instantiate
a new class instance using the new version of the class.  The fact
that the current class implementation does not match the previous
class implementation is interpreted as a security violation.

      The Dynamic Class Loader (DCL) herein described allows dynamic
creation of object instances of classes whose implementation changes
during program execution.  Being the standard class loader used by
default by Ja...