IP Library Granted Patent US 10,462,222
Granted Patent B2
US 10,462,222 · App. 15/589,266 · Granted Oct 29, 2019

Cloud storage methods and systems

Inventors: Stephen Wolfram (Concord, MA); Bradley Ashby (Champaign, IL)
Assignee: Wolfram Research, Inc.
H04L67/1097G06F8/60G06F9/445G06F9/546G06F16/00G06F16/116G06F16/134G06F16/16G06F16/182G06F16/27H04L67/42
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,462,222
App. No.
15/589,266
Granted
Oct 29, 2019
Kind
B2
Abstract

A system receives one or more messages corresponding to a request to add data to an electronic storage object that is accessible on a network, the one or more messages corresponding to the electronic storage object to which data is to be stored, and including raw data corresponding to the data that is to be stored. Responsive to the one or more messages, the system: locates the electronic storage object in a database, identifies data conversion metadata in the electronic storage object that indicates how the raw data is to be converted to formatted data in a format that is recognized by a computational application, uses the data conversion metadata to convert the raw data to the formatted data in the format recognized by the computational application, and stores the formatted data to the electronic storage object in the database.

Claims (155)

1. A method for adding data to a cloud storage object for storing data, the method comprising:

receiving, at one or more processors, one or more messages corresponding to a request to add data to an electronic storage object that is accessible on a network, the one or more messages corresponding to the electronic storage object to which data is to be stored, and including raw data corresponding to the data that is to be stored; and

responsive to the one or more messages:

locating, at one or more processors, the electronic storage object in a database,

identifying, at one or more processors, data conversion metadata in the electronic storage object that indicates how the raw data is to be converted to formatted data in a format that is recognized by a computational application,

using the data conversion metadata to convert, at one or more processors, the raw data to the formatted data in the format recognized by the computational application, and

storing the formatted data to the electronic storage object in the database.

2. The method of claim 1 , wherein:

receiving the one or more messages comprises receiving one or more application programming interface (API) calls requesting adding of data to the data to the electronic storage object, the one or more API calls including a parameter specifying the electronic storage object; and

locating the electronic storage object includes using the parameter to locate the electronic storage object.

3. The method of claim 1 , further comprising:

establishing, with one or more processors, a connection according to a communication protocol;

wherein the raw data is received via the connection.

4. The method of claim 1 , further comprising:

storing the raw data to the electronic storage object in the database responsive to the one or more messages.

5. The method of claim 4 , wherein using the data conversion metadata to convert the raw data to the formatted data in the format recognized by the computational application, and storing the formatted data to the electronic storage object are performed after the raw data is stored to the electronic storage object.

6. The method of claim 5 , wherein using the data conversion metadata to convert the raw data to the formatted data in the format recognized by the computational application, and storing the formatted data to the electronic storage object are performed by a background process and also in response to the background process determining that the electronic storage object includes raw data has not yet been converted to formatted data.

7. The method of claim 5 , wherein using the data conversion metadata to convert the raw data to the formatted data in the format recognized by the computational application, and storing the formatted data to the electronic storage object are performed also in response to i) receiving a request to access the electronic storage object and ii) determining that the electronic storage object includes raw data that has not yet been converted to formatted data.

8. The method of claim 1 , wherein:

locating the electronic storage object includes locating an electronic file system structure corresponding to the electronic storage object;

identifying the data conversion metadata in the electronic storage object includes analyzing a metadata file in the electronic file system structure, the metadata file storing the data conversion metadata; and

storing the formatted data includes storing the formatted data to a data file in the electronic file system structure.

9. The method of claim 8 , further comprising:

storing the raw data to the data file in the electronic file system structure responsive to the one or more messages.

10. The method of claim 1 , wherein the data conversion metadata specify one or more data types to which the raw data is to be converted, among a plurality of data types recognized by the computational application.

11. The method of claim 1 , wherein:

the one or more messages include a key-value association for at least some of the raw data

the method further includes, responsive to the one or more messages:

identifying, at one or more processors, key-value association metadata in the electronic storage object that indicates how formatted data is to be associated with keys in the electronic storage object, and

using the key-value association metadata to store formatted data in the electronic storage object so that at least some of the formatted data in the electronic storage object is associated with one or more keys.

12. The method of claim 1 , further comprising, responsive to the one or more messages:

identifying, at one or more processors, function metadata in the electronic storage object that indicates one or more processing functions to be performed on the raw data and/or the formatted data, and

performing, at one or more processors, the one or more processing functions on the raw data and/or the formatted data indicated by the function metadata in the electronic storage object.

13. The method of claim 1 , wherein:

the raw data is first raw data;

the formatted data is first formatted data; and

the method further comprises:

receiving, at one or more processors, an email corresponding to a request to add data to the electronic storage object, the email including i) a parameter specifying the electronic storage object to which data is to be stored, and ii) second raw data, and

responsive to the email:

locating, at one or more processors, the electronic storage object in the database using the parameter,

identifying, at one or more processors, the data conversion metadata in the electronic storage object,

using the data conversion metadata to convert, at one or more processors, the second raw data to second formatted data, and

storing the second formatted further data to the electronic storage object in the database.

14. The method of claim 13 , wherein:

the parameter is a first parameter;

the one or more messages are one or more first messages; and

the method further comprises:

obtaining, at one or more processors, a second message from a messaging application server using an application programming interface (API) of the messaging application, the second message corresponding to a request to add data to the electronic storage object, the second message including i) a second parameter specifying the electronic storage object to which data is to be stored, and ii) third raw data, and

responsive to the second message:

locating, at one or more processors, the electronic storage object in the database using the second parameter,

identifying, at one or more processors, the data conversion metadata in the electronic storage object,

using the data conversion metadata to convert, at one or more processors, the third raw data to third formatted data, and

storing the third formatted further data to the electronic storage object in the database.

15. The method of claim 13 , wherein:

the parameter is a first parameter; and

the method further comprises:

receiving, at one or more processors and via a web server, one or more application programming interface (API) calls corresponding to the request to add data to the electronic storage object, the one or more API calls including i) a second parameter specifying the electronic storage object to which data is to be stored, and ii) third raw data, and

responsive to the one or more API calls:

locating, at one or more processors, the electronic storage object in the database using the second parameter,

identifying, at one or more processors, the data conversion metadata in the electronic storage object,

using the data conversion metadata to convert, at one or more processors, the third raw data to third formatted data, and

storing the third formatted data to the electronic storage object in the database.

16. The method of claim 1 , wherein:

receiving, at one or more processors, one or more application programming interface (API) calls requesting access to data in the electronic storage object, the one or more API calls including a parameter specifying the electronic storage object; and

responsive to the one or more API calls:

locating, at one or more processors, the electronic storage object in the database using the parameter,

retrieving, at the one or more processors, data from the electronic storage object; and

forwarding, with the one or more processors, the retrieved data in the format recognized by the computational application, the retrieved data forwarded to a computer via the network or another network, wherein the computer executes the computational application.

17. The method of claim 16 , wherein:

the parameter is a first parameter;

the one or more API calls include one or more or more second parameters that indicate which data within the electronic storage object are to be retrieved;

the method further includes determining, at one or more processors, which data within the electronic storage object are to be retrieved using the one or more second parameters; and

retrieving data from the electronic storage object comprises retrieving the data within the electronic storage object determined using the one or more or more second parameters.

18. The method of claim 17 , wherein:

the one or more or more second parameters indicate a range of entries within the electronic storage object that are to be retrieved; and

retrieving data from the electronic storage object comprises

identifying the indicated range of entries using the one or more or more second parameters, and

retrieving the identified data.

19. The method of claim 18 , wherein:

the one or more or more second parameters include an integer indicating a number of entries in the range; and

retrieving data from the electronic storage object comprises

identifying the integer number of entries using the one or more or more second parameters, and

retrieving the identified entries.

20. The method of claim 18 , wherein:

the one or more or more second parameters include one or more dates and/or times corresponding to the range; and

retrieving data from the electronic storage object comprises

identifying entries falling with the range corresponding to the one or more dates and/or times, and

retrieving the identified entries.

21. The method of claim 17 , wherein:

data in the electronic storage object is categorized according to key-value associations;

the one or more or more second parameters indicate that data corresponding to one or more keys are to be retrieved; and

retrieving data from the electronic storage object comprises

identifying entries corresponding to the one or more keys, and

retrieving the identified entries.

22. The method of claim 16 , wherein:

the computational application utilizes a uniform format in which i) a plurality of other data and ii) functions in the document are represented as symbolic expressions; and

the retrieved data forwarded to the computer are in the uniform format and represented as a symbolic expression.

23. A system, comprising:

a network interface device configured to support communications via a communication network;

a network-accessible computer storage system;

one or more processors coupled to the network interface device and the network-accessible computer storage system; and

one or more memory devices coupled to the one more processors, the one or more memory devices storing machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:

receive, via the network interface device, one or more messages corresponding to requests to add data to an electronic storage object that is accessible on a network, the one or more messages corresponding to the electronic storage object to which data is to be stored, and including raw data corresponding to the data that is to be stored; and

responsive to the one or more messages:

locate the electronic storage object in the network-accessible computer storage system,

identify data conversion metadata in the electronic storage object that indicates how the raw data is to be converted to formatted data in a format that is recognized by a computational application,

use the data conversion metadata to convert the raw data to the formatted data in the format recognized by the computational application, and

store the formatted data to the electronic storage object in the network-accessible computer storage system.

24. The system of claim 23 , wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:

receive one or more application programming interface (API) calls requesting adding of data to the data to the electronic storage object, the one or more API calls including a parameter specifying the electronic storage object; and

use the parameter to locate the electronic storage object.

25. The system of claim 23 , wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:

establish a connection according to a communication protocol;

wherein the raw data is received via the connection.

26. The system of claim 23 , wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:

store the raw data to the electronic storage object in the network-accessible computer storage system responsive to the one or more messages.

27. The system of claim 26 , wherein using the data conversion metadata to convert the raw data to the formatted data in the format recognized by the computational application, and storing the formatted data to the electronic storage object are performed after the raw data is stored to the electronic storage object.

28. The system of claim 27 , wherein using the data conversion metadata to convert the raw data to the formatted data in the format recognized by the computational application, and storing the formatted data to the electronic storage object are performed by a background process, executed by the one or more processors, and also in response to the background process determining that the electronic storage object includes raw data has not yet been converted to formatted data.

29. The system of claim 27 , wherein using the data conversion metadata to convert the raw data to the formatted data in the format recognized by the computational application, and storing the formatted data to the electronic storage object are performed also in response to i) receiving a request to access the electronic storage object and ii) determining that the electronic storage object includes raw data that has not yet been converted to formatted data.

30. The system of claim 23 , wherein:

locating the electronic storage object includes locating an electronic file system structure corresponding to the electronic storage object;

identifying the data conversion metadata in the electronic storage object includes analyzing a metadata file in the electronic file system structure, the metadata file storing the data conversion metadata; and

storing the formatted data includes storing the formatted data to a data file in the electronic file system structure.

31. The system of claim 30 , wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:

store the raw data to the data file in the electronic file system structure responsive to the one or more messages.

32. The system of claim 23 , wherein the data conversion metadata specify one or more data types to which the raw data is to be converted, among a plurality of data types recognized by the computational application.

33. The system of claim 23 , wherein:

the one or more messages include a key-value association for at least some of the raw data

the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to, responsive to the one or more messages:

identify key-value association metadata in the electronic storage object that indicates how formatted data is to be associated with keys in the electronic storage object, and

use the key-value association metadata to store formatted data in the electronic storage object so that at least some of the formatted data in the electronic storage object is associated with one or more keys.

34. The system of claim 23 , wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to, responsive to the one or more messages:

identify function metadata in the electronic storage object that indicates one or more processing functions to be performed on the raw data and/or the formatted data, and

perform the one or more processing functions on the raw data and/or the formatted data indicated by the function metadata in the electronic storage object.

35. The system of claim 23 , wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:

execute an email server configured to:

receive an email corresponding to a request to add data to the electronic storage object, the email including i) a parameter specifying the electronic storage object to which data is to be stored, and ii) the raw data, and

responsive to the email, generate the one or more messages to include the parameter and the raw data;

wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:

responsive to the one or more messages, locate the electronic storage object in the network-accessible computer storage system using the parameter.

36. The system of claim 23 , wherein:

the one or more messages are one or more first messages; and

the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:

execute a messaging application module configured to:

obtain, from a messaging application server using an application programming interface (API) of a messaging application, a second message corresponding to a request to add data to the electronic storage object, the second message including i) a parameter specifying the electronic storage object to which data is to be stored, and ii) the raw data, and

responsive to the second message, generate the one or more first messages to include the parameter and the raw data;

wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:

responsive to the one or more first messages, locate the electronic storage object in the network-accessible computer storage system using the parameter.

37. The system of claim 23 , wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:

execute a web server application configured to:

generate one or more web pages that prompt a user to provide i) a parameter specifying the electronic storage object to which data is to be stored, and ii) the raw data,

responsive to prompting the user, receive i) the parameter, and ii) the raw data, and

responsive to receiving i) the parameter, and ii) the raw data, generate the one or more messages to include the parameter and the raw data;

wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:

responsive to the one or more messages, locate the electronic storage object in the network-accessible computer storage system using the parameter.

Continuity (4)
Continuation 14872129 · Sep 30, 2015
Continuation In Part 14549541 · Nov 20, 2014
Provisional Application 61906888 · Nov 20, 2013
Related Publication 20170242864A1 · Aug 24, 2017