IP Library Granted Patent US 10,198,249
Granted Patent B1
US 10,198,249 · App. 15/147,991 · Granted Feb 5, 2019

Accessing schema-free databases

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,198,249
App. No.
15/147,991
Granted
Feb 5, 2019
Kind
B1
Abstract

Accessing a schema-free database includes constructing a model indicating a structure for the data to be used by applications accessing the data, validating the model based on the structure and on the data stored in the schema-free database, providing an API based on the structure, and accessing the database using the API. The model may be constructed by extracting data structure information from a program. The program may be written in the Ruby programming language or the Python programming language. The API may be a RESTful API.

Claims (33)

1. A method of accessing a schema-free database, comprising:

constructing a model indicating a desired structure for data stored in the schema-free database to be used by an application accessing the data, wherein the model is constructed using data structure information for the desired structure that is specified independently of and without reference to the data or data relationships stored in the schema-free database;

generating an application program interface (API) using the model upon an automated determining that available data of the data stored in the schema-free database exists that satisfies the desired structure, including confirming that data fields in the model correspond to data properties provided in the schema-free database;

preventing the application program interface (API) from being generated upon determining that the schema-free database lacks data to satisfy the desired structure; and

the API accessing the schema-free database using the model by presenting the data stored in the schema-free database to the application in a form according to the desired structure of the model and enabling the application to manipulate data of the schema-free database when the data were part of a schema-based platform having a structure presented according to the API.

2. The method, according to claim 1 , wherein the model is constructed by extracting the data structure information from a program.

3. The method, according to claim 2 , wherein the program is written in one of: the Ruby programming language and the Python programming language.

4. The method, according to claim 1 , wherein the API is a RESTful API.

5. The method, according to claim 1 , further comprising:

constructing an optimization for each field of data provided in the data model.

6. The method, according to claim 5 , wherein the optimization is an index containing an entry for each indexed value and a corresponding node ID indicating a particular node of the schema-free database containing data corresponding to the value.

7. The method, according to claim 5 , wherein the optimization is an index containing an entry for each indexed value and a corresponding location of a node in a data file containing the schema-free database.

8. A non-transitory computer-readable medium including computer software that accesses a schema-free database, the software comprising:

executable code that constructs a model indicating a desired structure for data stored in the schema-free database to be used by an application accessing the data, wherein the model is constructed using data structure information for the desired structure that is specified independently of and without reference to the data or data relationships stored in the schema-free database;

executable code that generates an application program interface (API) using the model upon an automated determining that available data of the data stored in the schema-free database exists that satisfies the desired structure, including confirming that data fields in the model correspond to data properties provided in the schema-free database;

executable code that prevents the application program interface (API) from being generated upon determining that the schema-free database lacks data to satisfy the desired structure; and

executable code that causes the API to access the schema-free database using the model by presenting the data stored in the schema-free database to the application in a form according to the desired structure of the model and enabling the application to manipulate data of the schema-free database when the data were part of a schema-based platform having a structure presented according to the API.

9. The non-transitory computer readable medium, according to claim 8 , wherein the model is based on the data structure information from a program.

10. The non-transitory computer readable medium, according to claim 9 , wherein the program is written in one of the Ruby programming language and the Python programming language.

11. The non-transitory computer readable medium, according to claim 8 , wherein the API is a RESTful API.

12. The non-transitory computer readable medium, according to claim 8 , wherein the software further comprises:

executable code that constructs an optimization for each field of data provided in the data model.

13. The non-transitory computer readable medium, according to claim 12 , wherein the optimization is an index containing an entry for each indexed value and a corresponding node ID indicating a particular node of the schema-free database containing data corresponding to the value.

14. The non-transitory computer readable medium, according to claim 12 , wherein the optimization is an index containing an entry for each indexed value and a corresponding location of a node in a data file containing the schema-free database.

15. A method of accessing a schema-free database, comprising:

constructing a model indicating a desired structure for data stored in the schema-free database to be used by an application accessing the data, wherein the model is constructed using data structure information for the desired structure that is specified independently of and without reference to the data or data relationships stored in the schema-free database;

generating a dynamic application program interface (API) platform using the model upon determining that available data of the data stored in the schema-free database exists that satisfies the desired structure, including confirming that data fields in the model correspond to data properties provided in the schema-free database;

preventing a dynamic application program interface (API) platform from being generated upon determining that the schema-free database lacks data to satisfy the desired structure;

the API accessing the schema-free database using the model by presenting the data stored in the schema-free database to the application in a form according to the desired structure of the model and enabling the application to manipulate data of the schema-free database as if the data were part of a schema-based platform having a structure presented according to the API; and

accessing an index to obtain a node in the schema-free database, wherein the node corresponds to data accessed through the API and wherein the index contains an entry for the data and a corresponding entry indicating the node, the API presenting a schema-based interface to the application to facilitate arranging, according to the desired structure, of the data stored in the schema-free database without the data being stored in any schema-based platform.

16. The method, according to claim 15 , wherein the entry indicating the node is a node ID.

17. The method, according to claim 15 , wherein the entry indicating the node is a location of the node in a data file containing the schema-free database.

18. The method, according to claim 15 , wherein the API is a RESTful API.

Assignments (12)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2018
From: MOZY, INC.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045243/0432 →
CHANGE OF NAME Recorded Jul 14, 2016
From: DECHO CORPORATION
To: MOZY, INC.
Reel/Frame 039339/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2016
From: SMIRNOV, ALEXIS; GAUTHIER, ANDRE; WINDISCH, MAX
To: DECHO CORPORATION
Reel/Frame 038602/0967 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2016
From: WINDISCH, MAX
To: EMC CORPORATION
Reel/Frame 038484/0061 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2016
From: SIMIRNOV, ALEXIS; GAUTHIER, ANDRE
To: EMC CORPORATION
Reel/Frame 038483/0995 →