WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and apparatus for providing schema evolution without recompilation    
United States Patent6119130   
Link to this pagehttp://www.wikipatents.com/6119130.html
Inventor(s)Nguyen; Tin Anh (Danville, CA), Kotsovolos; Susan Marie (Belmont, CA), Krishnaswamy; Srinath (Redwood City, CA)
AbstractA method and apparatus that allow schema version evolution to occur without requiring applications that expect older schema versions to be recompiled is provided. According to one aspect of the invention, each application that requests data is supplied the data in the format that the application expects. To supply the data in the expected format, a mechanism is provided for tracking the evolution of data types without losing information. In addition, mechanisms are provided for determining the format expected by the application and the format in which the data is currently stored. A mechanism is also provided for converting the data from the stored format to the expected format when the two formats do not match. A data migration strategy is described in which data is gradually migrated to newer formats when the data is updated by applications that expect a more recent format than the format in which the data is currently stored.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 6119130
Method and apparatus for providing schema evolution without recompilation - US Patent 6119130 Drawing
Method and apparatus for providing schema evolution without recompilation
Inventor     Nguyen; Tin Anh (Danville, CA) , Kotsovolos; Susan Marie (Belmont, CA) , Krishnaswamy; Srinath (Redwood City, CA)
Owner/Assignee     Oracle Corporation (Redwood Shores, CA)
Patent assignment
All assignments
Publication Date     September 12, 2000
Application Number     08/624,191
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     March 28, 1996
US Classification     707/203 707/100 707/200
Int'l Classification    
Examiner     Black; Thomas G.
Assistant Examiner     Coby; Frantz
Attorney/Law Firm     McDermott, Will & Emery
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/619 395/500 364/300 340/709 707/203 707/100 707/200 707/103 707/101
Patent Tags     providing schema evolution without recompilation
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5835909
Alter

Nov,1998

[0 after 0 votes]
5794030
Morsi et al.

Aug,1998

[0 after 0 votes]
5715441
Atkinson et al.

Feb,1998

[0 after 0 votes]
5706504
Atkinson et al.

Jan,1998

[0 after 0 votes]
5680618
Freund

Oct,1997

[0 after 0 votes]
5657259
Davis et al.

Aug,1997

[0 after 0 votes]
5649101
Mathewson, II

Jul,1997

[0 after 0 votes]
5652876
Ashe et al.

Jul,1997

[0 after 0 votes]
5627996
Bauer

May,1997

[0 after 0 votes]
5625816
Burdick et al.

Apr,1997

[0 after 0 votes]
5625465
Lech et al.

Apr,1997

[0 after 0 votes]
5600836
Alter

Feb,1997

[0 after 0 votes]
5603027
Ohkami

Feb,1997

[0 after 0 votes]
5600833
Seen et al.

Feb,1997

[0 after 0 votes]
5559954
Sakoda et al.

Sep,1996

[0 after 0 votes]
5548753
Linstead et al.

Aug,1996

[0 after 0 votes]
5539918
Allen et al.

Jul,1996

[0 after 0 votes]
5535386
Wang

Jul,1996

[0 after 0 votes]
5526518
Kashio

Jun,1996

[0 after 0 votes]
5517670
Allen et al.

May,1996

[0 after 0 votes]
5504879
Eisenberg et al.

Apr,1996

[0 after 0 votes]
5511188
Pascucci et al.

Apr,1996

[0 after 0 votes]
5495561
Holt

Feb,1996

[0 after 0 votes]
5446880
Balgeman et al.

Aug,1995

[0 after 0 votes]
5347653
Flynn et al.

Sep,1994

[0 after 0 votes]
5280612
Lorie et al.

Jan,1994

[0 after 0 votes]
5058000
Cox et al.

Oct,1991

[0 after 0 votes]
4686522
Hernandez et al.

Aug,1987

[0 after 0 votes]
4558413
Schmidt et al.

Dec,1985

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A method for supplying data to an application, the method comprising the computer-implemented steps of:

receiving a request initiated by the application for stored data to be supplied to the application;

in response to the request to supply the stored data to the application,

performing the steps of

determining a first format, said first format being the format in which said stored data is stored, and

determining a second format, said second format being the format in which said application expects to receive said stored data;

creating a target instance of said stored data by converting said stored data from said first format to said second format without said application that requested the stored data or users of the application that requested the stored data knowing the format in which the stored data is stored; and

supplying said target instance to the application that requested the stored data.

2. The method of claim 1 wherein the step of determining the second format comprises the steps of:

determining a data type that corresponds to said stored data;

determining a first version identifier that identifies a version of said data type that said application uses;

searching for a first schema version record that corresponds to said data type;

comparing a second version identifier in said first schema version record with said first version identifier;

if said second version identifier matches said first version identifier, then reading data that describes said second format from format data contained in said first schema version record;

if said second version identifier does not match said first version identifier, then

finding a second schema version record that is associated with said data type and which contains said first version identifier; and

reading data that describes said second format from format data contained in said second schema version record.

3. The method of claim 2 wherein the step of searching for a first schema version record comprises the steps of:

determining a type identifier that uniquely identifies said data type; and performing a search on a plurality of schema version records based on said type identifier.

4. The method of claim 1 wherein the step of determining the second format comprises the steps of:

determining a data type that corresponds to said stored data;

determining a first version identifier that identifies a version of said data type that said application uses;

using said data type and first version identifier to locate an entry in a table; and

using information in said entry to locate a schema version record that specifies said second format.

5. The method of claim 2 where in the step of determining the first version identifier includes the steps of:

inspecting an entry associated with said data type in a type version table associated with said application; and

reading said first version identifier from said entry.

6. The method of claim 5 further comprising the step of causing said application to build said type version table upon initialization by:

causing an initialization routine with in the application to call registration routines for a plurality of libraries used by said application; and

causing said registration routines to add entries to said type version table to indicate which versions of data types are used by said plurality of libraries.

7. The method of claim 1 wherein said step of determining said first format includes the steps of:

determining a data type that corresponds to said stored data;

determining a first version identifier that identifies a version of said data type that was used to store said stored data;

searching for a first schema version record that corresponds to said data type;

comparing a second version identifier in said first schema version record with said first version identifier;

if said second version identifier matches said first version identifier, then reading data that describes said first format from format data contained in said first schema version record;

if said second version identifier does not match said first version identifier, then

finding a second schema version record that is associated with said data type and which contains said first version identifier; and

reading data that describes said first format from format data contained in said first schema version record.

8. The method of claim 7 wherein said step of determining said first version identifier includes the step of reading schema version information stored with said stored data.

9. The method of claim 1 wherein the step of converting said stored data from said first format to said second format includes the step of:

comparing attributes specified in said first format with attributes specified in said second format;

if an attribute exists in said first format and said second format, then copying data for said attribute from said stored data to said target instance;

if an attribute exists in said second format but not said first format, then storing a default value for said attribute in said target instance;

if an attribute exists in said first format but not in said second format, then not copying data that corresponds to said attribute from said stored data to said target instance.

10. The method of claim 9 wherein the step of copying data for said attribute comprises the steps of:

determining whether said attribute has an identical format in said first format and said second format;

if said attribute has an identical format in said first format and said second format, then copying data for said attribute from said stored data to said target instance without performing any conversion operation; and

if said attribute does not have an identical format in said first format and said second format, then

reading data for said attribute from said stored data;

performing a conversion operation on said data for said attribute to create reformatted data; and

storing said reformatted data for said attribute in said target instance.

11. The method of claim 9 wherein said step of comparing attributes specified in said first format with attributes specified in said second format includes comparing a first set of attribute identifiers that uniquely identify attributes in said first format with a second set of attribute identifiers that uniquely identify attributes in said second format.

12. The method of claim 7 wherein:

the data type includes an embedded data type; and

the step of reading data that describes said first format from format data contained in said first schema version record includes reading data that describes a structure of said embedded data type.

13. A computer-readable medium carrying one or more sequences of one or more instructions for supplying data to an application, the one or more sequences of one or more instructions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of:

receiving a request initiated by the application for stored data to be supplied to the application;

determining a first format, said first format being the format in which said stored data is stored, and

determining a second format, said second format being the format in which said application expects to receive said stored data;

creating a target instance of said stored data by converting said stored data from said first format to said second format without said application that requested the stored data or users of the application that requested the stored data knowing the format in which the stored data is stored; and

supplying said target instance to the application that requested the stored data.

14. The computer-readable medium of claim 13, wherein the step of determining the second format comprises the steps of:

determining a data type that corresponds to said stored data;

determining a first version identifier that identifies a version of said data type that said application uses;

searching for a first schema version record that