Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing
Reexamination Certificate
1995-12-27
2002-02-05
Banankhah, Majid A. (Department: 2151)
Electrical computers and digital processing systems: multicomput
Computer-to-computer data routing
Least weight routing
C709S241000, C709S241000
Reexamination Certificate
active
06345311
ABSTRACT:
TECHNICAL FIELD
The present invention relates in general to object-oriented computer systems. More specifically, the present invention relates to a method and system for moving objects between heterogeneous execution environments of object-oriented computer systems.
BACKGROUND OF THE INVENTION
Current computer programming techniques include the use of Object-Oriented Programming (“OOP”). Object-Oriented Programming centers on reusable, self-contained, callable program code modules known in the art as “objects.” Such a modular approach makes software development more efficient and reliable through the use and reuse of proven, tested objects.
Each object is designed to accomplish a predefined set of operations through “methods” (which are also referred to herein as “functions”). These methods include programmed tasks for the object to perform when called upon to do so (i.e., invoked). Each particular method is defined within a “class” associated with an object. The class acts as a template that describes the behaviour of a group of similar objects. An object is instantiated from (or is a runtime instance of) a selected class, and includes methods and attributes (or data) defined in the class.
Although object-oriented computer systems may include heterogeneous execution environments, several limitations apply thereto. For example, once an object is instantiated within a particular execution environment, it is bound to execution therein. Little or no conventional mechanism exists for moving the object between different heterogeneous execution environments at runtime.
Further, an object may include internal values and data that accumulate as the object is repeatedly invoked, and are referred to as the object's “state.” This state is bound to the particular instantiation of the object in the current execution environment. Therefore, an object is further bound to its particular instantiation in the current execution environment since conventional techniques do not permit the transfer of the objects “state” between execution environments.
The present invention is directed toward solutions for the above noted problems.
SUMMARY OF THE INVENTION
In a first aspect, the present invention operates in a heterogeneous, object-oriented computer system that includes a first execution environment and a second execution environment. In particular, the first execution environment is different from the second execution environment.
The invention includes a method of managing an object at runtime and includes identifying, at runtime, the object executing within the first execution environment. The object performs a predefined function in the first execution environment; however, performing the predefined function using the second execution environment is desirable. Runtime usage of the object executing within the first execution environment is terminated, and the object is instantiated within the second execution environment. Accordingly, the object facilitates performance of the predefined function using the second execution environment.
As an enhancement, the object may have a state that includes at least one variable maintained between invocations of the object. The method may further includes maintaining the state of the object during the terminating and the instantiating. In particular, the maintaining may include saving the state of the object before terminating usage of the object within the first execution environment, and restoring the state of the object after instantiating the object within the second execution environment. The saving and the restoring of the state of the object may be performed by at least one function of the object. In one example, the computer system may include a state management object that manages saved states of objects. The at least one function of the object may then invoke the state management object during the saving and the restoring of the state of the object.
As a further enhancement, the saving and the restoring of the state of the object may include accessing, external to the object, at least one memory location corresponding to the at least one variable that the state of the object is contained within. In support of the foregoing, the method may include generating at least one memory map that indicates the at least one variable corresponding to the at least one memory location. The accessing may then include using the at least one memory map to determine the at least one memory location corresponding to the at least one variable that the state of the object is contained within.
The state of the object may include at least one variable data type. Further, the first execution environment may maintain the at least one variable data type in a first format, and the second execution environment may maintain the at least one variable data type in a second format. In view of the foregoing, and as yet another enhancement of the present invention, the method may include, after saving the state, converting the state from the first format to the second format to facilitate restoring the state to the second execution environment.
A system corresponding to the above-disclosed method is also presented herein.
The techniques of the present invention have many advantages and features associated therewith. Runtime adaptability and flexibility are facilitated by the ability to move objects between execution environments, despite the heterogeneity thereof. Thus, an object can be moved to a faster execution environment to increase its capacity, or it can be moved off a failing, or soon-to-be unavailable system, to preserve availability of the object. Furthermore, the disclosed techniques preserve the object's state, when it is moved. This preservation is performed regardless of different variable formats that the execution environments the objects are moved between may have. Advantageously, the object has the benefit of its accumulated state information established when in the original execution environment, even when moved into another, heterogeneous execution environment. Thus, the techniques of the present invention advance the art of runtime object management in object-oriented computer systems.
REFERENCES:
patent: 5197138 (1993-03-01), Hobbs et al.
patent: 5313635 (1994-05-01), Ishizuka et al.
patent: 5377350 (1994-12-01), Skinner
patent: 5381534 (1995-01-01), Shi
patent: 5410696 (1995-04-01), Seki et al.
patent: 5442791 (1995-08-01), Wrabetz et al.
patent: 5450567 (1995-09-01), Mori et al.
patent: 5535393 (1996-07-01), Reeve et al.
patent: 5613148 (1997-03-01), Bezviner et al.
patent: 5692183 (1997-11-01), Hapner et al.
patent: 5701484 (1997-12-01), Artsy
patent: 5708828 (1998-01-01), Coleman
patent: PUPA06-348666 (1994-12-01), None
patent: PUPA07-044383 (1995-02-01), None
patent: PUPA07-123108 (1995-05-01), None
Eric H. Herrin II and Raphael A. Finkel, “An Implementation of Service Rebalancing,” COMPUTER SCIENCE, pp. 295-311 (1992).
Eric H. Herrin II and Raphael A. Finkel, “The Benefits of Service Rebalancing,” Proceedings, Third Workshop on Workstation Operating Systems, IEEE Computer Society Press, pp. 104-110 (Apr. 1992).
Fu et al, “a concurrent programming environment for memory-mapped persistent object systems”; IEEE Digital Library, pp. 291-298; 1993.*
Little et al; “Maintaining information about persistent repllicated objects in a distributed system”; IEEE digital library; pp. 491-498; 1993.*
Shrivastava et al: structuring fault-tolerant object systems for modularity in a distributed environment;, IEEE Digital Library; pp. 421-432; 1994.*
OMG TC Document 94.9.15, “Object Externalization Service”, 1994.*
Black et al; “Implementing location independent invocation”, IEEE digital library, pp. 107-119; 1990.*
Mendelzon et al, “Object migration”, ACM digital library, 1994.*
Chin et al, “Distributed object-based programming systems”, ACM digital library, 1991.*
Rogers et al, “Supporting dynamic data structures on distributed memory machines”, ACM digital library, 1995.*
Ciampolini et al, “The benefits of migration in a parallel objects programming environm
Breslau Franklin Charles
Greenstein Paul Gregory
Rodell John Ted
Banankhah Majid A.
Heslin Rothenber Farley & Mesiti P.C.
LandOfFree
Method and system of dynamically moving objects between... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and system of dynamically moving objects between..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system of dynamically moving objects between... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2948870