Object-oriented sequencing using hierarachical configuration...

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S152000, C717S152000, C717S152000

Reexamination Certificate

active

06223342

ABSTRACT:

TECHNICAL FIELD
The invention relates generally to systems and methods for data processing objects and more particularly to sequencing, accessing and manipulating objects of an object-oriented environment.
BACKGROUND ART
Within an object-oriented environment, objects are memory-resident elements in which data and functionality are merged. An object contains data of one or more data types (e.g., an integer, date, time and/or string) and contains methods, typically in the form of code, which define the useful operations of the object. Operations on the data of a particular object are triggered by reception of a message that identifies the desired function. For example, an object having an integer may receive a message that requires a step of multiplication with another integer. A message is received via an object interface.
An object in an object-oriented environment is characterized by its attributes, i.e., the count, types and values of the data. Each object tracks its own attributes. While some attribute values may be fixed, attributes are often variable.
As noted in U.S. Pat. No. 5,303,379 to Khoyi et al., objects are typically linked. That is, the data structures of the objects are interconnected. Linking allows dynamic copying of data or information from one data structure to another, so that the destination data structure is provided with the most recent version of the data residing in the source data structure. A link is defined in the Khoyi et al. patent as a means by which one object (a “child object”) is connected to another object (a “parent object”). The data of the parent and child objects may be linked dynamically or statically. For dynamic linking, the data are read from the child object and provided to the parent object each time that the link is updated. This updating feature is distinguishable from the copying feature. A static link is one in which updating of one of the objects does not affect data in the other object.
An object-oriented environment also includes other types of links. As previously noted, each object tracks its own attributes. However, “classes” of objects possess similar attributes. The objects of a single class possess the same methods and the same data types and respond to the same messages, but are distinguishable from each other by the attribute values. Classes may be organized into a hierarchy of superclasses and subclasses, with a subclass inheriting the messages and methods of its superclass. In addition to the inherited messages and methods, objects of the subclass may include subclass-specific messages and methods.
One advantage of the object-oriented environment is the inherency feature. Inherency permits a program or programmer to take advantage of the commonality of objects in the manipulation of the objects. Another advantage of the environment is that it permits “polymorphism,” i.e. the ability of an object to assume different forms of the object. While inheritance relates to slightly different data structure or behavior of objects in a single class, polymorphism relates to differences in data structure that lead to an object being in a derived class. Thus, polymorphism allows the same operation to behave differently within different classes. Other advantages of an object-oriented environment include faster program development and easier maintenance.
While conventional object-oriented environments provide clear advantages over other program environments, further improvements relating to specific capabilities are sought. For example, object-sharing among different programs on a single computer would allow users to further exploit the power of object-oriented programs and would decrease development time. Preferably, this object integration across program boundaries would also allow objects to be packaged and transported across a network. Another desired improvement relates to the sort and search utilities for objects. The conventional object-oriented programs perform well in sorting and searching through objects of a particular class, since these algorithms are generally provided along with the class. The desired mechanism would be to provide a general sort and search utility that would perform these operations on objects of different types without having to provide specific algorithms based on the type. Preferably, the utility should accept various attribute sort orders to sort the object in different ways.
Another concern in conventional object-oriented environments is that traversing links reduces operational speed. For example, if 1000 objects are linked and a messages requires access to entry 495 from entry 1, one-to-one linkages require 494 steps to access the selected object.
What is needed is a system and method for data processing objects such that the advantages and the power of object-oriented environments are enhanced. Also needed is such a system and method in which the speed of link traversals is increased.
SUMMARY OF THE INVENTION
A system and method for data processing objects in which each object (whether a singleton, a sequence of objects, or a higher order sequence of objects) is structurally implemented with a linked list mechanism, and is hereafter termed an “object list.” The linked list type can be singularly or doubly linked. However, the doubly linked list approach is treated here. In this approach, the system and method include forming a sequence of object lists in which each object list has separate links to immediately preceding and immediately following object lists in the sequence. The links form a sequential arrangement. A global configuration stream stores configuration data regarding the sequential arrangement. Preferably, the global configuration stream includes a count of attributes of the object, the order of the sequence, and the individual attribute details, such as data types (integer, date, etc.) and data widths. Additionally, the global configuration stream has settings to determine whether the list is the primary owner of the underlying memory pool and whether the implementation is a list or vector implementation. In addition to the global configuration stream, there is at least one local configuration stream for each of the object lists. In the preferred embodiment, there is a one-to-one correspondence between the local configuration streams and objects associated with the sequence. The local configuration stream includes configuration data indicative of the data structure of a specific object associated with a specific object list. For example, the local configuration stream of a specific object list that represents a single object may include the attribute count and whether individual attributes are present, touched or cleared.
In a “list implementation” of the system and method, each object list is a sequence of smart pointers to a memory pool. Each smart pointer in the sequence identifies a particular memory pool and an offset location within the identified memory pool. Using a polymorphic expression of the program language, the memory space that is identified can be interpreted as one of a variety of different attribute types, such as a date, an integer, a string or an object list itself. The smart pointers and the local configuration stream of the object list reside in the same memory pool, and the properties of a smart pointer are the index of the memory pool and the offset within the memory pool (i.e., the location of an attribute value within linear memory space). For an object having three attributes, such as a date, an integer and a string, an object list includes the associated local configuration stream and three smart pointers to memory locations of the values for the three attributes. The object list and the local configuration stream are also smart pointers. Within a sequence of object lists, some of the objects will be “sparse,” i.e. some of the objects will have one or more absent attributes. If a user requests a date, the associated local configuration stream is checked to first determine the presence of the date. If the local configuration stream identifies the date

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-oriented sequencing using hierarachical configuration... 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-oriented sequencing using hierarachical configuration..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Object-oriented sequencing using hierarachical configuration... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2533796

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