Method and system for maintaining consistency of shared...

Electrical computers and digital data processing systems: input/ – Access locking

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S150000, C711S152000, C711S163000

Reexamination Certificate

active

06289410

ABSTRACT:

TECHNICAL FIELD OF THE INVENTION
This invention relates generally to object-oriented programming and more particularly, to a method and system for maintaining the integrity of shared objects using instance variable locking.
BACKGROUND OF THE INVENTION
Object-oriented programming is rapidly becoming the software industry's preferred method for developing software. Essentially, object orientation is a method of implementing components of a system and of constructing systems from these components.
“Objects” are software entities comprising data structures and associated operations. Objects can model concrete things or abstract ideas, in terms of characteristics or in terms of behavior. A software “object” is a group of elements working together or in succession to perform specific tasks. These elements are data elements, also called instance variables, and functions, also called methods, of the object. Objects are defined by creating “classes,” which act as templates that instruct a computer how to construct an actual object. For example, a class may specify the number and type of instance variables and the steps involved in methods that define the actions of the object. An object created from a certain class is called an “instance” of that class. The class defines the operations and information initially in an instance, while the current state of the instance is defined by operations subsequently performed upon its instance variables by its methods.
The state of an object is represented by the values of its instance variables. The state can be retrieved or updated with accessor methods. Other methods will perform operations associated with an object and may invoke additional methods on the same or other objects.
A basic feature of object-oriented programming is encapsulation of objects. “Encapsulation” means that objects hide (encapsulate) their internal structure and the algorithms that implement their actions. Instead of exposing these implementation details, objects present interfaces that represent their abstractions cleanly with no extraneous implementation information.
Because objects are encapsulated, interactions between objects occur by sending messages that invoke methods. Each object has a protocol, that is, it has a set of messages to which the object can respond. The messages are used to invoke the methods defined for the object. Typical messages are from one object to another object or from an object to itself, but an external source such as a user interface might also send messages to, or receive messages from, an object.
In properly encapsulated objects, instance variables are only accessed by methods specified for access to each instance variable. These methods are called accessor methods. Thus, an instance variable is only accessed directly by its get and put accessor methods.
Systems using object-oriented programming concepts are being developed in distributed computing environments. In these environments, active objects may be accessed by multiple users as they participate in multiple business applications. As these systems become larger, integrate more applications, and have more users, some individual objects will be the subject of frequent accesses by multiple, concurrent transactions.
As an object is updated, temporary inconsistencies may occur within a system. Locking is used to achieve exclusive use of various objects and to force an interleaving of transactions such that the results are the same as if the transactions occurred serially, one after another, rather than concurrently (serialization). Existing systems typically achieve this consistency by locking entire objects such that a competing transaction cannot access a locked object until the lock is removed, either by a commit or by a backout from the lock-holding transaction. If shared objects are used in many applications by many users, then this existing locking mechanism can significantly degrade the performance and throughput of the system.
SUMMARY OF THE INVENTION
The present invention is directed to applying a locking mechanism with deferred updates at the instance variable level rather than at the object level. The invention comprises a method and system for maintaining the integrity of shared objects. In accordance with the method of the invention, a first locking tag is attached to an instance variable, indicating that the instance variable was read by a first process. A read of the instance variable by a second process is allowed while the first locking tag is present. A second locking tag is attached to the instance variable, indicating that the second process has read the instance variable.
The invention has several important technical advantages. Because different applications may access the same objects but access different variables in those objects, the invention allows more efficient sharing of shared resources. Efficiency is achieved because a process only locks the portion of an object that it accesses or updates, rather than locking the entire object. Because some objects in modern objected-oriented systems are becoming larger and the number of users accessing those objects is increasing, the invention is an important step in the implementation of large-scale distributed object systems. The invention may avoid delays in systems that have long duration update transactions. Reducing delays in the system through the use of the invention will also increase the efficiency and productivity of users of the system as they can achieve greater access to shared resources.


REFERENCES:
patent: 5187786 (1993-02-01), Densmore et al.
patent: 5261069 (1993-11-01), Wilkinson et al.
patent: 5263155 (1993-11-01), Wang
patent: 5301337 (1994-04-01), Wells et al.
patent: 5339427 (1994-08-01), Elko et al.
patent: 5353425 (1994-10-01), Malamy et al.
patent: 5388196 (1995-02-01), Pajak et al.
patent: 5410697 (1995-04-01), Baird et al.
patent: 5471629 (1995-11-01), Risch
patent: 5524247 (1996-06-01), Mizuno
patent: 5526524 (1996-06-01), Madduri
patent: 5586331 (1996-12-01), Levenstein
patent: 5592673 (1997-01-01), Kurabayashi et al.
patent: 5615374 (1997-03-01), Sadoi et al.
patent: 5623671 (1997-04-01), Ando et al.
patent: 5701470 (1997-12-01), Joy et al.
patent: 5761670 (1998-06-01), Joy et al.
patent: 5878411 (1999-03-01), Burroughs et al.
patent: 5893106 (1999-06-01), Brobst et al.
patent: 5940827 (1999-08-01), Hapner et al.
patent: 5995998 (1999-11-01), Furlani et al.
patent: 6041312 (2000-03-01), Bickerton et al.
“Concurrency Control and Recovery in Database Systems” by P. A. Bernstein, V. Hadzilacos and N. Goodman, Addison-Wesley Publishing Co., 1987, pp. 1-105, plus cover, preface and table of contents.
“Implementing Constraint Imperative Programming Languages:The Kaleidoscope '93 Virtual Machine” by G.Lopez & A.Borning (Univ of Wash.), & B.Freeman-Benson (Carleton Univ), 10/94, pp. 259-271.
“Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems”, by Henry Lieberman, Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts, Sep. 1986, pp. 214-223.
DECthreats Guide to DECthreats by Digital Equipment Corporation, Nov. 1991.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and system for maintaining consistency of shared... 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 for maintaining consistency of shared..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system for maintaining consistency of shared... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2534816

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.