Apparatus and method for accessing an object oriented object...

Data processing: database and file management or data structures – Database design – Data structure types

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06366932

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Technical Field
This invention generally relates to object oriented programming and more specifically relates to an apparatus and method for accessing object oriented objects in an object oriented system.
2. Background Art
Since the dawn of the computer age, computer systems have evolved into extremely sophisticated devices, and computer systems may be found in many different settings. Computer systems typically include a combination of hardware, such as semiconductors and circuit boards, and software, also known as computer programs. As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
Computer systems typically include operating system software that controls the basic function of the computer, and one or more software application programs that run under the control of the operating system to perform desired tasks. For example, a typical IBM Personal Computer may run the OS/2 operating system, and under the control of the OS/2 operating system, a user may execute an application program, such as a word processor. As the capabilities of computer systems have increased, the application software programs designed for high performance computer systems have become extremely powerful. Additionally, software development costs have continued to rise because more powerful and complex programs take more time, and hence more money, to produce.
One way in which the performance of application software programs has been improved while the associated development costs have been reduced is by using object oriented programming concepts. The goal of using object oriented programming is to create small, reusable sections of program code known as “objects” that can be quickly and easily combined and re-used to create new programs. This is similar to the idea of using the same set of building blocks again and again to create many different structures. The modular and re-usable aspects of objects will typically speed development of new programs, thereby reducing the costs associated with the development cycle. In addition, by creating and re-using a comprehensive set of well-tested objects, a more stable, uniform, and consistent approach to developing new computer programs can be achieved.
Modern object oriented programming languages have features that improve the convenience of programming in those languages. For example, the Java programming language developed by Sun Microsystems defines a “smart reference” for an object, which is a reference to the object that contains intelligence regarding when and how the object is referenced by other objects and when and how the object is created and deleted. In the C++ programming language, these types of smart references are referred to as “smart pointers”. For the discussion herein, the term “smart pointer” is used to refer to active pointers and references to objects. A reference is “active” if it is used to directly access an object. A reference is “passive” if it is not used to directly access an object, but if it can determine whether the object should be accessed.
Smart pointers are especially useful for heap-based objects, referred to herein as “managed objects”. These managed objects typically contain a reference count to keep track of all references to the object. As long as the reference count is non-zero, the object is still being referenced. When the reference count goes to zero, the managed object may be deleted. The smart pointers increment the reference count of a managed object when each smart pointer is created, and the reference count is decremented after deleting a smart pointer to the object. Thus, if a smart pointer holds an active reference to a managed object, the managed object will not be deleted. Once all active references are deleted, the reference count goes to zero, and the managed object can then be deleted.
While reference counting is powerful, it suffers from some problems. For example, reference counting cannot detect circular references. A circular reference is when two or more objects refer to one another, preventing the reference count of any of the objects from going to zero. This situation results in maintaining objects in memory that could and should be deleted. In addition, there is no mechanism for granting exclusive access to a managed object. Without a mechanism for solving the problems of known smart pointers and reference counting, the computer industry will continue to suffer from object oriented computer systems that have the undesirable features discussed above.
DISCLOSURE OF INVENTION
A smart passive reference to an object oriented object provides control over creation and deletion of the object it references. A reference count is incremented when an active reference to an object is created, and is decremented when an active reference to the object is deleted. The smart passive reference allows suspending the activity of a thread until no threads have active references to the object. In addition, the smart passive reference can be used to invalidate the smart passive references in other threads, thereby allowing a thread to obtain exclusive access to an object. The smart passive reference also provides an interface to cause the managed object to be deleted when the reference count goes to zero.
The foregoing and other features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings.


REFERENCES:
patent: 5398334 (1995-03-01), Topka et al.
patent: 5546584 (1996-08-01), Lundin et al.
patent: 5644709 (1997-07-01), Austin
patent: 5752249 (1998-05-01), Macon, Jr. et al.
patent: 5761511 (1998-06-01), Gibbons et al.
patent: 5794256 (1998-08-01), Bennett et al.
patent: 5923877 (1999-07-01), Berner et al.
patent: 5999987 (1999-12-01), O'Farrell et al.
patent: 6031995 (2000-02-01), George
patent: 6105041 (2000-08-01), Bennett et al.
patent: 6125364 (2000-09-01), Greef et al.
patent: 6142684 (2000-11-01), Kirshenbaum et al.
patent: 6144965 (2000-11-01), Olivever
patent: 6182107 (2001-01-01), Atsatt

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

Apparatus and method for accessing an object oriented object... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Apparatus and method for accessing an object oriented object..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Apparatus and method for accessing an object oriented object... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2817040

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