← Back to Patent Explorer
US5754849A Expired / Lapsed US ⏱️ 0.0 years remaining

Self-describing object providing dynamic manipulation of heterogeneous data values and semantic identity between memory and transmission representations

Assignee: Oracle International Corp
•
Filing: 1996-01-30
•
Granted: 1998-05-19
•
Expires: 2016-01-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An object for use in a computer memory and for transmission between computers flexibly stores a large variety of different types of data, in such a manner as to allow easy and efficient transfer and copying of the data between computers. The object includes any number of data elements, each of which is self-describing using type coding. Certain data elements may include other data elements, thereby providing for arbitrarily complex hierarchical arrangements of data in memory. The type codes may be based on the frequency of the types or values of data operated upon, such that the data itself may be used as a type code for at least one type of data, thereby reducing the memory and bandwidth requirements for handling the object. The object is capable of creating a data stream output for copying and transmission that preserves the semantic structure of the object, particularly its hierarchical organization, and is further capable of reconstituting the hierarchical arrangements. Because of the self describing nature of the object and its data elements, marshalling is not needed for inter-computer transfers of the object.

Inventors

  • 👤 Landon M. Dyer
  • 👤 Robert V. Welland

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 22:12
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/547; G06F9/465

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 174 words
A computer readable memory having a plurality of contiguous storage locations and storing an object including: at least one data element each data element comprising: a) in at least one first storage location a type code defining a type of a data for the data element, the type being one of a group comprising: a first type of data element having a fixed length, the first type of data associated with first type code; a second type of data element having a variable length but not including other data elements, the second type of data associated with a second type code; and, a third type of data element having a variable length and capable of including other data elements, the third type of data associated with a third type code; and, b) in at least one second storage location contiguous with the at least one first storage location, a data member selected from a group comprising: at least one data value of the data element; or, at least one reference to another data element.
Claim 2
Dependent Claim 174 words
A computer readable memory having a plurality of contiguous storage locations and storing an object including: at least one data element each data element comprising: a) in at least one first storage location a type code defining a type of a data for the data element, the type being one of a group comprising: a first type of data element having a fixed length, the first type of data associated with first type code; a second type of data element having a variable length but not including other data elements, the second type of data associated with a second type code; and, a third type of data element having a variable length and capable of including other data elements, the third type of data associated with a third type code; and, b) in at least one second storage location contiguous with the at least one first storage location, a data member selected from a group comprising: at least one data value of the data element; or, at least one reference to another data element.
Claim 3
Dependent Claim 38 words
The computer readable memory of claim 1, wherein the type code for at least one type of data element is determined according to a frequency distribution of the types of selected data elements in a sample of data.
Claim 4
Dependent Claim 39 words
The computer readable memory of claim 1, wherein, the type code for at least one type of data element is the data value of the data element when the data value is within a specified range of data values.
Claim 5
Dependent Claim 118 words
The computer readable memory of claim 1, wherein: the data member is determined according to the selected type code, and being one of a group comprising: a fixed number of storage locations where the type code is the first type code; a length value specifying a number of units in the data member, and the number of units, each unit having a fixed number of storage locations, where the type code is the second type code; and, a length value specifying a number of units in the data member, and the number of units, each unit being a data element of any of the types of the data elements, where the type code is the third type code.
Claim 6
Dependent Claim 45 words
The computer readable memory of claim 1, wherein the data member is selected from a group further comprising: a reference to a descriptor including a length field, and a number of contiguous storage locations holding data values, the number being specified in the length field.
Claim 7
Dependent Claim 72 words
The computer readable memory of claim 1, wherein the data member is selected from a group further comprising: a reference to a descriptor including a length field, and a number of contiguous sets of storage locations, each set of storage locations including a key value, and a data element, the number of sets being specified in the length field, such that any data element may be retrieved according to its key value.
Claim 8
Dependent Claim 204 words
A computer readable memory having a plurality of contiguous storage locations and storing an object including: at least one data element, each data element comprising: a) in at least one first storage location a type code defining a type of a data for the data element, the type being one of a group comprising: a first type of data element having a fixed length, the first type of data associated with a first type code; a second type of data element having a variable length but not including other data elements, the second type of data associated with a second type code; and, third type of data element having a variable length and capable of including other data elements, the third type of data associated with a third type code; and, b) in at least one second storage location contiguous with the at least one first storage location, a data member selected from a group comprising: at least one data value of the data element; or, at least one reference to another data element; and a plurality of instructions for controlling a computer to convert the object from a memory representation using memory dependent locations to a transmission representation using memory independent data bytes.
Claim 9
Dependent Claim 204 words
A computer readable memory having a plurality of contiguous storage locations and storing an object including: at least one data element, each data element comprising: a) in at least one first storage location a type code defining a type of a data for the data element, the type being one of a group comprising: a first type of data element having a fixed length, the first type of data associated with a first type code; a second type of data element having a variable length but not including other data elements, the second type of data associated with a second type code; and, third type of data element having a variable length and capable of including other data elements, the third type of data associated with a third type code; and, b) in at least one second storage location contiguous with the at least one first storage location, a data member selected from a group comprising: at least one data value of the data element; or, at least one reference to another data element; and a plurality of instructions for controlling a computer to convert the object from a memory representation using memory dependent locations to a transmission representation using memory independent data bytes.
Claim 10
Dependent Claim 74 words
The computer readable memory of claim 7, wherein the plurality of instructions reads the object from the memory, and recursively descends through each data element including a reference to another data element, and converts each such reference from a data element to a contiguous sequence of data bytes for the type code and data member of the data element, the contiguous sequence of data bytes adapted for transmission to a second computer readable memory.
Claim 11
Dependent Claim 198 words
A computer readable memory having a plurality of contiguous storage locations and storing an object including: at least one data element, each data element comprising: a) in at least one first storage location a type code defining a type of a data for the data element; and, b) in at least one second storage location contiguous with the at least one first storage location, a data member selected from a group comprising: at least one data value of the data element; or at least one reference to another data element; and a first procedure to retrieve any selected data element within the object; a second procedure to remove any selected data element within the object; a third procedure to add a new data element at a designated location within the object; at least one fourth procedure to determine whether a selected data element within the object is of a selected type; at least one fifth procedure to change the type code for any selected data element within the object to a selected type code; and at least one sixth procedure to replace the data member for any selected data element within the object with an input data member.
Claim 12
Dependent Claim 198 words
A computer readable memory having a plurality of contiguous storage locations and storing an object including: at least one data element, each data element comprising: a) in at least one first storage location a type code defining a type of a data for the data element; and, b) in at least one second storage location contiguous with the at least one first storage location, a data member selected from a group comprising: at least one data value of the data element; or at least one reference to another data element; and a first procedure to retrieve any selected data element within the object; a second procedure to remove any selected data element within the object; a third procedure to add a new data element at a designated location within the object; at least one fourth procedure to determine whether a selected data element within the object is of a selected type; at least one fifth procedure to change the type code for any selected data element within the object to a selected type code; and at least one sixth procedure to replace the data member for any selected data element within the object with an input data member.
Claim 13
Dependent Claim 250 words
A computer readable arrangement of data in a transmission medium, the arrangement of data having a plurality of contiguous memory independent data bytes that form an object including: at least one data element, each data element comprising: a) in at least one first data byte a type code defining a type of data for the data element, the type code selected from a group comprising: a first type code for a first type of data element having a fixed length; a second type code for a second type of data element having a variable length but not including other data elements; and, a third type code for a third type of data element having a variable length and capable of including other data elements; b) in a plurality of second data bytes contiguous with the at least one first data byte, a data member determined according to the selected type code, and being one of a group comprising: a fixed number of data bytes where the type code is the first type code; a length value specifying a number of units in the data member, and the number of units, each unit having a fixed number of data bytes, where the type code is the second type code; and, a length value specifying a number of units in the data member, and the number of units, each unit being a data element of any of the types of the data elements, where the type code is the third type code.
Claim 14
Dependent Claim 250 words
A computer readable arrangement of data in a transmission medium, the arrangement of data having a plurality of contiguous memory independent data bytes that form an object including: at least one data element, each data element comprising: a) in at least one first data byte a type code defining a type of data for the data element, the type code selected from a group comprising: a first type code for a first type of data element having a fixed length; a second type code for a second type of data element having a variable length but not including other data elements; and, a third type code for a third type of data element having a variable length and capable of including other data elements; b) in a plurality of second data bytes contiguous with the at least one first data byte, a data member determined according to the selected type code, and being one of a group comprising: a fixed number of data bytes where the type code is the first type code; a length value specifying a number of units in the data member, and the number of units, each unit having a fixed number of data bytes, where the type code is the second type code; and, a length value specifying a number of units in the data member, and the number of units, each unit being a data element of any of the types of the data elements, where the type code is the third type code.
Claim 15
Dependent Claim 120 words
A computer readable memory coupled to a transmission medium to receive a computer readable arrangement of data, the computer readable memory including a plurality of instructions to read the data and create in memory an object by storing in contiguous storage locations: data bytes of a first type code; data bytes of data members for data elements of a first type corresponding to the first type code; data bytes of a second type code and a reference to data members for data elements of a second type corresponding to the second type code; and data bytes of a third type code; and a reference to data members for data elements of a third type corresponding to the third type code.
Claim 16
Dependent Claim 120 words
A computer readable memory coupled to a transmission medium to receive a computer readable arrangement of data, the computer readable memory including a plurality of instructions to read the data and create in memory an object by storing in contiguous storage locations: data bytes of a first type code; data bytes of data members for data elements of a first type corresponding to the first type code; data bytes of a second type code and a reference to data members for data elements of a second type corresponding to the second type code; and data bytes of a third type code; and a reference to data members for data elements of a third type corresponding to the third type code.
Claim 17
Dependent Claim 146 words
A computer implemented method of transferring data between a first and second computer, comprising: storing in a memory of the first computer an object including: at least one data element, each data element comprising: a) in at least one first storage location a type code defining a type of a data for the data element; and, b) in at least one second storage location contiguous with the at least one first storage location, a data member selected from a group comprising: at least one data value of the data element; or at least one reference to another data element; flattening the object to produce a memory location independent byte stream representation of the object; transferring the byte stream representation from the first computer to a memory of the second computer; and, reconstructing in the memory of the second computer the object from the byte stream representation.
Claim 18
Dependent Claim 146 words
A computer implemented method of transferring data between a first and second computer, comprising: storing in a memory of the first computer an object including: at least one data element, each data element comprising: a) in at least one first storage location a type code defining a type of a data for the data element; and, b) in at least one second storage location contiguous with the at least one first storage location, a data member selected from a group comprising: at least one data value of the data element; or at least one reference to another data element; flattening the object to produce a memory location independent byte stream representation of the object; transferring the byte stream representation from the first computer to a memory of the second computer; and, reconstructing in the memory of the second computer the object from the byte stream representation.
Claim 19
Dependent Claim 483 words
A computer system, comprising: a network providing a transmission medium; a first computer having a first computer memory having a plurality of contiguous storage locations and storing a first object having a first structure comprising: at least one data element, each data element comprising: a) in at least one first storage location a type code defining a type of a data for the data element, the type selected from a group comprising: a first type of data element having a fixed length, the first type of data associated with a first type code; a second type of data element having a variable length but not including other data elements, the second type of data associated with a second type code; and, a third type of data element having a variable length and capable of including other data elements, the third type of data associated with a third type code; and b) in at least one second storage location contiguous with the at least one first storage location, a data member selected from a group comprising: at least one data value of the data element; or, at least one reference to another data element; wherein the first computer is communicatively coupled to the network, and converts the object from the first structure to a computer readable arrangement of data comprising: at least one data element, each data element comprising: a) in at least one first data byte a type code defining a type of a data for the data element, the type code selected from a group comprising: a first type code for a first type of data element having a fixed length; a second type code for a second type of data element having a variable length but not including other data elements; and, a third type code for a third type of data element having a variable length and capable of including other data elements; b) in a plurality of second data bytes contiguous with the at least one first data byte, a data member determined according to the selected type code, and being one of a group comprising: a fixed number of data bytes where the type code is the first type code; a length value specifying a number of units in the data member, and the number of units, each unit having a fixed number of data bytes, where the type code is the second type code; and, a length value specifying a number of units in the data member, and the number of units, each unit being a data element of any of the types of the data elements, where the type code is the third type code; and a second computer having a second computer memory, and communicatively coupled to the network to receive the computer readable data arrangement, and to convert it to a second object semantically identical to the first object, and having the first structure.
Claim 20
Dependent Claim 483 words
A computer system, comprising: a network providing a transmission medium; a first computer having a first computer memory having a plurality of contiguous storage locations and storing a first object having a first structure comprising: at least one data element, each data element comprising: a) in at least one first storage location a type code defining a type of a data for the data element, the type selected from a group comprising: a first type of data element having a fixed length, the first type of data associated with a first type code; a second type of data element having a variable length but not including other data elements, the second type of data associated with a second type code; and, a third type of data element having a variable length and capable of including other data elements, the third type of data associated with a third type code; and b) in at least one second storage location contiguous with the at least one first storage location, a data member selected from a group comprising: at least one data value of the data element; or, at least one reference to another data element; wherein the first computer is communicatively coupled to the network, and converts the object from the first structure to a computer readable arrangement of data comprising: at least one data element, each data element comprising: a) in at least one first data byte a type code defining a type of a data for the data element, the type code selected from a group comprising: a first type code for a first type of data element having a fixed length; a second type code for a second type of data element having a variable length but not including other data elements; and, a third type code for a third type of data element having a variable length and capable of including other data elements; b) in a plurality of second data bytes contiguous with the at least one first data byte, a data member determined according to the selected type code, and being one of a group comprising: a fixed number of data bytes where the type code is the first type code; a length value specifying a number of units in the data member, and the number of units, each unit having a fixed number of data bytes, where the type code is the second type code; and, a length value specifying a number of units in the data member, and the number of units, each unit being a data element of any of the types of the data elements, where the type code is the third type code; and a second computer having a second computer memory, and communicatively coupled to the network to receive the computer readable data arrangement, and to convert it to a second object semantically identical to the first object, and having the first structure.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-05-18 2001-11-17 2002-05-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-05-18 2005-11-17 2006-05-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-05-18 2009-11-17 2010-05-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag