Object morphing in an object oriented computing environment...

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

C707S793000, C707S793000, C707S793000, C707S793000, C709S241000, C711S170000, C711S207000, C717S152000, C717S152000

Reexamination Certificate

active

06192371

ABSTRACT:

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
Not Applicable
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to object oriented programming. More particularly, the invention concerns the implementation of an object-oriented computing environment using a relational database. Still more particularly, the invention pertains to a method, system and computer program product for changing (“morphing”) a class variable (“object” or “instance”) defined in an object oriented computing environment from one abstract data type (“class”) to another using relational database programming operations.
2. Description of the Prior Art
The above-referenced related patent applications disclose systems and methods for implementing an object oriented computing environment using a relational database storage system and a front-end programming interface implementing a relational programming language, such as SQL. In the application Ser. No. 08/790,302, filed Jan. 31, 1997, now U.S. Pat. No. 5,819,257, entitled “PROCESS FOR PROVIDING TRANSITIVE CLOSURE USING FOURTH GENERATION STRUCTURED QUERY LANGUAGE (SQL),” it is shown that an object oriented computing environment can be modeled as a directed acyclic graph, with the nodes of the graph representing classes or objects and the edges and paths between nodes representing hierarchical relationships between the classes or objects. These graph elements (nodes, edges and paths) are stored as relations (tables) in a relational database and relational database query techniques are used to determine the transitive closures between graph nodes, thus providing an object oriented class hierarchy representation in the database. The class hierarchy representation is fully updatable insofar as appropriate table modification procedures are invoked (e.g., using stored procedures) as classes or objects are added to, or removed from, the object oriented computing environment.
In the application Ser. No. 09/024,913, filed Feb. 17, 1998, now U.S. Pat. No. 6,105,035, entitled “OBJECT ORIENTED PROGRAMMING USING STANDARD STRUCTURED QUERY LANGUAGE (SQL),” it is shown that an object oriented computing environment can be completely modeled in a relational database. Tables are used to represent the salient elements of the object oriented computing environment, and include (1) a class identifier table identifying one or more classes, (2) a class edge table defining the edges between classes, (3) a class path table defining the paths between classes, a class attribute table identifying the attributes of each class and their data type, (4) a class method table identifying the methods associated with each class, (5) an object table identifying each instantiated object, its class and its owner, (6) an object edge table defining the edges between objects, (7) an object path table defining the paths between objects, and (8) an object attribute table identifying the attributes of each object and their values. Rules (e.g., triggers) are created that “fire” in response to selected relational database query operations (table updates and deletes, attribute value assignments, etc. ). These rules help provide and maintain class and object functionality, and implement support for such object oriented properties as inheritance, data encapsulation and polymorphism.
What is not supported in the foregoing system is the ability to automatically effect a change in object type after an object is initially defined. This is often desirable in an object-oriented computing environment because it allows the computing environment to adapt to changed circumstances. Consider the aforementioned patent application Ser. No. 09/024,913, filed Feb. 17, 1998, now U.S. Pat. No. 6,105,035, entitled “OBJECT ORIENTED PROGRAMMING USING STANDARD STRUCTURED QUERY LANGUAGE (SQL),” in which the example of an object oriented product development tracking tool is used. In this exemplary software program, large development projects are segmented into project features which are represented as objects. Each project feature object represents an instantiation of a defined feature class that exists within a feature class hierarchy.
FIG. 1
of the aforesaid patent application illustrates the use of a feature super-super-class, a pair of large_feature and small_feature super-classes that are the descendants of the feature super-super-class, and a pair of xlarge_feature and xsmall_feature classes that are the descendants of the large_feature and small_feature super-classes, respectively.
If it is desired, by way of example, to reassign a project feature object from the small_feature super-class to the large_feature super-class, the relational database tables that define the project feature object would need to be manually updated by the user. The user would have to remove object attributes that are defined relative to the old class definition but not the new class definition, retain the attributes that are common to both class definitions, and add the new attributes that are part of the new class definition. This process may be referred to as “morphing” because it can be likened to the process of morphing a picture of a face of one person to a face of another person.
Support for object morphing in prior art object oriented computing systems is usually non-existent or supported very poorly. Typical implementations require a morphed object to acquire a new object identifier, thereby requiring the update of all objects that reference the old object identifier. An implementation that does not require such overhead would provide a significant improvement relative to prior art systems. A system and method that utilizes relational database technology and which does not require manual table updating operations would be further desirable.
Accordingly, there is a need in an object oriented computing environment, and particularly an object oriented environment implemented in a relational database, for a system and method that allows object class reassignment, i.e., morphing, to be implemented automatically in response to user commands, and without requiring re-identification of the object along with a concomitant modification of referencing objects. What is required is a system and method for object morphing in an object oriented computing environment that implements the foregoing advantages.
SUMMARY OF THE INVENTION
A solution to the foregoing problem is provided by a method, system and computer program product for morphing an object from one class to another in an object oriented computing environment implemented by a relational database. Object morphing functionality is provided by first defining object classes, class attributes, class relationships, objects, object attributes and object relationships as tables of data in the relational database. In response to user input representing a request to reassign one of the objects from one class to another, a class identifier corresponding to the object in the database tables is changed. Edge relationships between the morphed object and other objects in the system are then checked for continued validity and an error message is generated if any such edge relationships are no longer valid. If the edge relationships are valid, the attributes of the object are modified to reflect the new class assignment by adding new object attributes or deleting existing object attributes in accordance with the object attributes of the old and new classes and any superclasses thereof.
In preferred embodiments of the invention, the changing of an object's class is preferably implemented by changing a class identifier field corresponding to the object in an object table maintained by the database. Checking for continued validity of the object's edge relationships relative to other objects following morphing is preferably implemented by comparing parent/child object edge relationship fields in an object_edge table maintained by the database against parent/child class edge relationship fields in class_edge and class_path tables maintained by the database. Modificati

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

Object morphing in an object oriented computing environment... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Object morphing in an object oriented computing environment..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Object morphing in an object oriented computing environment... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2610458

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