IP Library Granted Patent US 9,575,968
Granted Patent B2
US 9,575,968 · App. 14/726,394 · Granted Feb 21, 2017

Intelligent data delivery and storage based on data characteristics

Inventors: Hui Carl Wang (San Mateo, CA); Oleg Zaydman (San Jose, CA)
Assignee: Apple Inc.
G06F17/30017G06F17/30867G06F17/30899H04L67/02H04L67/06H04L69/18
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 9,575,968
App. No.
14/726,394
Granted
Feb 21, 2017
Kind
B2
Abstract

Methods, program products, and systems of intelligent data delivery and storage based on data characteristics are disclosed. A database server can receive, from a user device, a request for data. The database server can determine a data size and a data type of the requested data. The database server can identify, based on the data size and data type, and from multiple candidate data delivery protocols for responding to the request, a data delivery protocol designated for delivering data having the data size and data type. The database server can deliver the data to the user device in response to the request using the identified data delivery protocol.

Claims (56)

1. A method for delivering data to a user device, the method comprising:

by a database server:

receiving a query from the user device;

identifying, based on the query, at least a first file name and a second file name;

determining a first data size and a first data type of a first file associated with the first file name;

determining a second data size and a second data type of a second file associated with the second file name;

identifying a first data delivery protocol from a plurality of candidate data delivery protocols based on: i) a filter parameter, ii) the first data size, and iii) the first data type;

identifying a second data delivery protocol from the plurality of candidate data delivery protocols based on: i) the filter parameter, ii) the second data size, and iii) the second data type;

causing a first delivery of the first file to the user device using the first data delivery protocol over a first connection; and

causing a second delivery of the second file to the user device via the second data delivery protocol over a second connection,

wherein the first delivery of the first file is concurrent with the second delivery of the second file, the first file is stored at the database server, and the second file is stored remotely from the database server.

2. The method of claim 1 , wherein the first file is a first multimedia file and the second file is a second multimedia file.

3. The method of claim 1 , wherein the second data type is a container data type.

4. The method of claim 3 , wherein the filter parameter specifies that a particular data object having: i) a size exceeding a size threshold and ii) characterized by the container data type are to be delivered using a hypertext transport protocol (HTTP) streaming protocol through an HTTP connection.

5. The method of claim 4 , wherein:

the first connection is a database connection, and

the second connection is a hypertext transfer protocol (HTTP) connection between the user device and an HTTP server.

6. The method of claim 5 , further comprising:

sending an address of the HTTP server to the user device.

7. The method of claim 5 , wherein the user device does not have access privileges to the HTTP server.

8. A non-transitory computer readable storage medium configured to store instructions that, when executed by a database server comprising one or more processors, cause the database server to deliver data to a user device, by carrying out steps that include:

receiving a query from the user device;

identifying, based on the query, at least a first file name and a second file name;

determining a first data size and a first data type of a first file associated with the first file name;

determining a second data size and a second data type of a second file associated with the second file name;

identifying a first data delivery protocol from a plurality of candidate data delivery protocols based on: i) a filter parameter, ii) the first data size, and iii) the first data type;

identifying a second data delivery protocol from the plurality of candidate data delivery protocols and based on: i) the filter parameter, ii) the second data size, and iii) the second data type;

causing a first delivery of the first file to the user device using the first data delivery protocol over a first connection; and

causing a second delivery of the second file to the user device via the second data delivery protocol over a second connection,

wherein the first delivery of the first file is concurrent with the second delivery of the second file, the first file is stored at the database server, and the second file is stored remotely from the database server.

9. The non-transitory computer readable storage medium of claim 8 , wherein the first file is a first multimedia file and the second file is a second multimedia file.

10. The non-transitory computer readable storage medium of claim 8 , wherein the second data type is a container data type.

11. The non-transitory computer readable storage medium of claim 10 , wherein the filter parameter specifies that a particular data object having: i) a size exceeding a size threshold and ii) characterized by the container data type are to be delivered using a hypertext transport protocol (HTTP) streaming protocol through an HTTP connection.

12. The non-transitory computer readable storage medium of claim 11 , wherein:

the first connection is a database connection, and

the second connection is a hypertext transfer protocol (HTTP) connection between the user device and an HTTP server.

13. The non-transitory computer readable storage medium of claim 12 , wherein the steps further include:

sending an address of the HTTP server to the user device.

14. The non-transitory computer readable storage medium of claim 12 , wherein the user device does not have access privileges to the HTTP server.

15. A database server to perform data delivery to a user device, the database server comprising:

a memory; and

a processor coupled to the memory, wherein the memory comprises instructions that when executed by the processor cause the database server to carry out steps that include:

receiving a query from the user device;

identifying, based on the query, at least a first file name and a second file name;

determining a first data size and a first data type of a first file associated with the first file name;

determining a second data size and a second data type of a second file associated with the second file name;

identifying a first data delivery protocol from a plurality of candidate data delivery protocols and based on: i) a filter parameter, ii) the first data size, and iii) the first data type;

identifying a second data delivery protocol from the plurality of candidate data delivery protocols and based on: i) the filter parameter, ii) the second data size, and iii) the second data type;

causing a first delivery of the first file to the user device using the first data delivery protocol over a first connection; and

causing a second delivery of the second file to the user device via the second data delivery protocol over a second connection,

wherein the first delivery of the first file is concurrent with the second delivery of the second file, the first file is stored at the database server, and the second file is stored remotely from the database server.

16. The database server of claim 15 , wherein the second data type is a container data type.

17. The database server of claim 16 , wherein:

the first connection is a database connection, and

the second connection is a hypertext transfer protocol (HTTP) connection between the user device and an HTTP server.

18. The database server of claim 16 , wherein the filter parameter specifies that a particular data object having: i) a size exceeding a size threshold and ii) characterized by the container data type are to be delivered using a hypertext transport protocol (HTTP) streaming protocol through an HTTP connection.

Continuity (2)
Continuation 13345603 · Jan 6, 2012
Related Publication 20150358384A1 · Dec 10, 2015