Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
1998-03-06
2001-11-27
Luu, Le Hien (Department: 2152)
Data processing: database and file management or data structures
Database design
Data structure types
C707S793000, C711S124000, C709S226000
Reexamination Certificate
active
06324543
ABSTRACT:
BACKGROUND OF THE INVENTION
It has long been known that the ability to move objects dynamically from computer to computer is useful. For example, moving objects allows the system to load balance among computers. In addition, it allows the system to dynamically cluster objects that communicate frequently, reducing network traffic and improving overall system performance.
However, current systems that allow objects to be relocated (migrated) suffer significant drawbacks, typically requiring either a special purpose programming language (or special purpose modifications to a general purpose language) or a special purpose operating system. In the former case, the programmer must develop new skills and adorn their code with additional syntax to exploit object migration. In the latter case, the resulting programs are limited to execution on sparsely deployed systems.
The present invention, relating to Dynamic Object Distribution (DOD), describes a system that suffers neither of these limitations. In the preferred embodiment, the programmer simply writes his program in the Java programming language (Java is a trademark of Sun Microsystems Inc.) without adding any special syntax or notations. The program then executes on standard Java Virtual Machines (JVMs) which are widely deployed in the industry.
Object migration has been studied extensively in academia as well as in industry. Systems such as the v-kernel enable page-based migration on systems running the v-kernel, however, systems without the v-kernel cannot perform migration. Because the v-kernel requires operating system modification, it is not widely used. Systems such as Amber from the University of Washington migrate objects among nodes of a multi-processor computer. However, Amber requires the program to be written in a special language. The Amber runtime is also not widely used. A major benefit of the present invention is that it requires no kernel modifications and works in Java which is a widely-deployed language.
RELATED APPLICATIONS
Application Ser. No. 08/852,263 entitled Technique for Programmatically Creating Distributed Object Programs filed on May 7, 1997 and assigned to the assignee of the present invention.
U.S. Pat. No. 6,072,953 entitled Apparatus and Method for Dynamically Modifying Class Files During Loading for Execution filed on Sep. 30, 1997 and assigned to the assignee of the present invention.
SUMMARY OF THE INVENTION
Dynamic Object Distribution (DOD), as defined by the present invention, takes as input:
The set of Java class files comprising a software application. Each class file contains Java bytecodes (Java is a registered trademark of Sun Microsystems, Inc.).
A list of objects that the programmer chooses to enable for migration. By default, DOD assumes that all objects are migratable.
A list of the conditions (“predicates”) under which DOD is to migrate the objects.
From the bytecode files, the DOD system generates local and remote “proxies” for the object. The proxies intercept method calls to and from the object, and route the calls to the object. When the object is local (it has not been migrated), the local proxy routes calls directly to the object; when the object is remote (it has been migrated), the local proxy routes calls to the remote proxy, which routes the calls to the object. A bytecode modification tool adjusts the names of the objects and references to the objects to ensure that name collisions do not occur between objects and their proxies.
As background,
FIG. 1A
illustrates calls from a method on an standard Java object to another standard Java object, in the illustration, calls from A
101
to B
105
.
FIGS. 1B and 1C
show a typical scenario of calls before and after an object has been migrated.
FIG. 1B
shows calls being indirected through a local proxy
103
to the local object
105
.
FIG. 1C
shows calls being sent from the local proxy
103
to a remote proxy
104
, then to the object itself
106
residing on the remote machine.
Based on the user-specified conditions (or “predicatese”, as described above), a “migration thread” determines when an object should be migrated. It monitors the resources on the computer to determine when a predicate is satisfied. (Optionally, the migration thread can also gather information about remote computers. For example, it could gather such information using the standard Unix command ‘ruptime,’ which returns information about the processor load of remote computers. Such information can be used for migration decisions.) To migrate the object, the migration thread instructs the local proxy to route method calls to the remote proxy, and to send a serialized version of the object and its remote proxy to the remote computer. At the remote computer, both objects are unserialized. Serialization is illustrated in FIG.
7
and described further in
Java in a Nutshell
, second edition, O'Reilly, May 1997, pp. 172-177. It is the flattening of an object so that it may be transmitted more efficiently through a network. An unserializer then reconstructs the original object at its destination.
OBJECTS OF THE INVENTION
It is an object of the present invention to provide a method for allowing programs to become dynamically reconfigurable without programmer intervention.
It is a further object of the present invention to allow a system to become dynamically reconfigurable without modification to the source text of the programs running on the system.
It is a further object of this invention to allow the administrator to specify conditions under which reconfiguration is to occur without modification to the source text of the program to be dynamically reconfigured.
It is a further object of this invention to allow the programmer to specify conditions under which the reconfiguration occurs on a per user basis.
It is a further object of this invention to reconfigure the system dynamically and automatically without programmer intervention at the time of distribution.
REFERENCES:
patent: 5613148 (1997-03-01), Bezvinger et al.
patent: 5644766 (1997-07-01), Coy et al.
patent: 5862325 (1999-01-01), Reed et al.
patent: 5881230 (1999-03-01), Christensen et al.
patent: 5903725 (1999-05-01), Colyer
Ref A: Newton's Telecom Dictionary, Newton, H., Flatiron Publishing, 14th Expanded and Updated Ed., Mar., 1998, see object.*
Ref B: Computer Dictionary, Redmond, WA, Microsoft Press, 3erd Ed., and Sep. 1997, see object.*
“Sumatra: A Language for Resource-aware Mobile Programs”, A. Acharya, et al, Lecture Notes on Computer Science, No. 1222, pp. 111-130, 1997-4.
Cohen Geoffrey Alexander
Kaminsky David Louis
King Richard Adam
Doubet Marcia L.
International Business Machines - Corporation
Luu Le Hien
Prieto Beatriz
Ray-Yarletts Jeanine S.
LandOfFree
Dynamic object migration method using proxy object links to... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Dynamic object migration method using proxy object links to..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Dynamic object migration method using proxy object links to... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2614859