IP Library Granted Patent US 10,616,336
Granted Patent B1
US 10,616,336 · App. 15/271,070 · Granted Apr 7, 2020

File access service

Inventors: Anton Zelenov (Moscow, RU); Nikolay Dobrovolskiy (Moscow, RU); Serguei M. Beloussov (Singapore, SG)
Assignee: Parallels International GmbH
H04L67/1097H04L67/06
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,616,336
App. No.
15/271,070
Granted
Apr 7, 2020
Kind
B1
Abstract

Systems and methods for facilitating access to files that are stored by network-accessible file storage services. An example system comprises a plurality of file access nodes including a control node, wherein the control node is configured to: receive a file access request initiated by a client, wherein the file access request comprises an identifier of a file, an identifier of a file storage service, and an access token associated with the file stored by the file storage service; request, using the access token, metadata associated with the file from the file storage service; define, using the metadata, a plurality of portions forming the file; and forward, to the plurality of file access nodes, identifiers of the plurality of portions.

Claims (52)

1. A method, comprising:

receiving, by a computer system implementing a control node, a file access request initiated by a client computing device, wherein the file access request comprises an identifier of a file, an identifier of a file storage service, and an access token associated with the file stored by the file storage service;

requesting, using the access token, metadata associated with the file from the file storage service;

defining, using the metadata, a plurality of portions forming the file;

identifying a plurality of file access nodes associated with the file storage service, wherein a number of the file access nodes is determined based on a size of the file; and

forwarding, to the plurality of file access nodes, identifiers of the plurality of portions.

2. The method of claim 1 , further comprising:

causing a transmission of the identifiers of the plurality of file access nodes to the client computing device.

3. The method of claim 1 , wherein identifying the plurality of file access nodes comprises performing a lookup in a hash table mapping file identifiers to file access node identifiers.

4. The method of claim 1 , wherein the metadata associated with the file includes the size of the file.

5. The method of claim 1 , wherein an identifier of a portion is represented by a byte positions defining an offset of the portion relative to a top of the file.

6. The method of claim 1 , wherein the computer system is further configured to act as a file access node of the plurality of the file access nodes, the method further comprising:

identifying, in view of a current workload of the file access node, one or more portions of the file to be served to the client computing device; and

transmitting, to the client computing device, a response comprising identifiers of the portions.

7. The method of claim 1 , further comprising:

causing, based on monitoring current workloads of the plurality of file access nodes, a new file access node to be provisioned.

8. The method of claim 1 , further comprising:

causing, based on historical data reflecting workloads of the plurality of file access nodes, a new file access node to be provisioned.

9. A method, comprising:

receiving, by a file access node, a file access request originated by a client computing device, the file access request comprising an identifier of a file;

identifying, in view of metadata associated with the file, a plurality of portions of the file to be served to the client computing device, wherein a number of the portions of the file is determined based on an available network bandwidth between the file access node and the client computing device; and

transmitting, to the client computing device, a response comprising identifiers of the portions of the file.

10. The method of claim 9 , wherein the identifiers of the plurality of portions of the file are represented by byte positions defining an offset of a respective portion relative to a top of the file.

11. The method of claim 9 , wherein identifying the portions of the file is performed based on a current workload of the file access node.

12. The method of claim 9 , wherein identifying the portions of the file comprises inspecting a local cache of the file access node.

13. The method of claim 9 , further comprising:

receiving, from the client computing device, a portion download request identifying a portion of the file;

retrieving the portion of the file from a local cache; and

transmitting the portion of the file to the client computing device.

14. The method of claim 9 , further comprising:

receiving, from the client computing device, a portion download request identifying a portion of the file; and

streaming the portion of the file from a file storage service to the client computing device.

15. The method of claim 14 , wherein the streaming the portion of the file comprises storing the portion of the file in a local cache.

16. A system, comprising:

a memory; and

a processor coupled to the memory, wherein the processor is configured to:

receive a file access request initiated by a client computing device, wherein the file access request comprises an identifier of a file, an identifier of a file storage service, and an access token associated with the file stored by the file storage service;

request, using the access token, metadata associated with the file from the file storage service;

define, using the metadata, a plurality of portions forming the file;

identify a plurality of file access nodes associated with the file storage service, wherein a number of the file access nodes is determined based on a size of the file; and

forward, to the plurality of file access nodes, identifiers of the plurality of portions.

17. The system of claim 16 , wherein the processor is further configured to:

forward, to the client computing device, identifiers of the plurality of file access nodes.

18. A method, comprising:

transmitting, by a client computing device, a file access request comprising an identifier of a file, an identifier of a file storage service, and an access token associated with the file stored by the file storage service;

receiving identifiers of a plurality of file access nodes associated with the file storage service;

selecting, based on evaluating a network bandwidth between the client computing device and a file access node, the file access node of the plurality of file access nodes;

requesting, from the selected file access node, a list of available portions of the file;

requesting, from the selected file access node, a portion of the file referenced by the list of available portions; and

receiving, from the selected file access node, the requested portion of the file.

19. The method of claim 18 , wherein selecting the file access node further comprises:

evaluating a response time by the file access node.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Jul 18, 2019
From: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AND COLLATERAL AGENT
To: COREL CORPORATION; CLEARSLIDE, INC.; PARALLELS INTERNATIONAL GMBH
Reel/Frame 049787/0073 →
RELEASE OF SECURITY INTEREST RECORDED AT : REEL 047973 FRAME 0797 Recorded Jul 17, 2019
From: UBS AG, STAMFORD BRANCH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 049773/0590 →
SECURITY INTEREST Recorded Dec 21, 2018
From: PARALLELS INTERNATIONAL GMBH
To: UBS AG, STAMFORD BRANCH
Reel/Frame 047973/0797 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2016
From: ZELENOV, ANTON; DOBROVOLSKIY, NIKOLAY; BELOUSSOV, SERGUEI M.
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 039812/0259 →
Cited By (1)
US 12,407,651