IP Library Granted Patent US 10,367,878
Granted Patent B2
US 10,367,878 · App. 13/436,887 · Granted Jul 30, 2019

Optimization of path selection for transfers of files

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,367,878
App. No.
13/436,887
Granted
Jul 30, 2019
Kind
B2
Abstract

A system may include a file transfer manager that determines a file for transfer from a source location to a target location, the file being associated with file metadata characterizing the file, and with an organization. The file transfer manager may include an orchestrator that determines at least two transfer paths for the transfer, including at least a first transfer path utilizing a private wide area network (WAN) of the organization and a second transfer path utilizing a publicly available data hosting service, access transfer metadata characterizing the at least two transfer paths, and access organizational metadata characterizing organizational transfer path usage factors. The file transfer manager also may include a heuristics engine configured to execute path decision logic using the file metadata, the transfer metadata, and the organizational metadata, to select a selected transfer path from the at least two transfer paths.

Claims (44)

1. A system for network path selection for transfers of files within a computing network, including instructions stored on a non-transitory computer readable storage medium and executable by at least one processor, the system comprising:

a file transfer manager implemented at a first data center, wherein the file transfer manager is configured to cause the at least one processor to transfer a file from a source computing device to a target computing device, the source computing device being communicatively coupled to the first data center, the target computing device being communicatively coupled to a second data center, wherein the file is associated with file metadata, and with an organization, the file metadata including one or more checksum values and information about the file, the file metadata including security-related metadata and transfer latency metadata,

wherein the file transfer manager is configured to cause the at least one processor to:

intercept, via an application programming interface (API), an operating system call issued at the source computing device, the intercepted operating system call including a file transfer request for transferring the file;

determine whether or not the file already exists at the target computing device based on the one or more checksum values;

compute network metadata about the network conditions of a private wide area network (WAN) and of a plurality of publicly available data hosting services in response to the determination that the file does not already exist at the target computing device, the network metadata including information representing available network bandwidth on the private WAN and available network bandwidth on the plurality of publicly available data hosting services, wherein the private WAN is a computer network administered by the organization, and each of the plurality of publicly available data hosting services is a network that is not administered by the organization; and

programmatically select either the private WAN or one of the plurality of publicly available data hosting services for transferring the file by executing path decision logic, wherein the path decision logic includes decision criteria specifying weights applied to the security-related metadata and the transfer latency metadata, wherein the security-related metadata is associated with a higher weight than the transfer latency metadata,

wherein, in response to the selection of one of the plurality of publicly available data hosting services for transferring the file, the file transfer manager is configured to cause the at least one processor to:

upload the file to the selected publicly available data hosting service;

transfer configuration data to the second data center, the configuration data including information for accessing the selected publicly available data hosting service, the configuration data including a digital certificate;

instruct the second data center to download the file from the selected publicly available data hosting service using the configuration data; and

instruct the second data center to transfer the file from the second data center to the target computing device.

2. The system of claim 1 , wherein the file transfer manager is configured to cause the at least one processor to instruct the selected publicly available data hosting service to select one of a plurality of data centers of the selected publicly available data hosting service based on the plurality of data centers' proximity to the second data center, wherein the file is uploaded to the selected data center of the selected publicly available data hosting service.

3. The system of claim 1 , wherein the file metadata includes a description of contents of the file, a size of the file, a usage or access history of the file, and an owner of the file.

4. The system of claim 1 , wherein the file metadata includes specified security levels, quality of service levels, priority levels related to individual members or classes of member of the organization associated with the file, and at least one constraint on file transfers.

5. The system of claim 1 , wherein the file transfer manager is configured to cause the at least one processor to update at least a portion of the file metadata.

6. The system of claim 1 , wherein the configuration data includes credential information associated with the organization for use in accessing an account provided by the selected publicly available data hosting service.

7. A method comprising:

transferring, by a file transfer manager implemented at a first data center, a file from a source computing device to a target computing device, the source computing device being communicatively coupled to the first data center, the target computing device being communicatively coupled to a second data center, wherein the file is associated with file metadata, and with an organization, the file metadata including one or more checksum values and information about the file, the file metadata including security-related metadata and transfer latency metadata, wherein the transferring includes:

intercepting, via an application programming interface (API), an operating system call issued at the source computing device, the intercepted operating system call including a file transfer request for transferring the file;

determining whether or not the file already exists at the target computing device based on the one or more checksum values;

computing network metadata about the network conditions of a private wide area network (WAN) and of a plurality of publicly available data hosting services in response to the determination that the file does not already exist at the target computing device, the network metadata including information representing available network bandwidth on the private WAN and available network bandwidth on the plurality of publicly available data hosting services, wherein the private WAN is a computer network administered by the organization, and each of the plurality of publicly available data hosting services is a network that is not administered by the organization;

programmatically selecting the private WAN or one of the plurality of publicly available data hosting services for transferring the file by executing path decision logic, wherein the path decision logic includes decision criteria specifying weights applied to the security-related metadata and the transfer latency metadata, wherein the security-related metadata is associated with a higher weight than the transfer latency metadata; and

wherein, in response to the selection of one of the plurality of publicly available data hosting services for transferring the file, the method further includes the file transfer manager for:

uploading the file to the selected publicly available data hosting service;

transferring configuration data to the second data center, the configuration data including a digital certificate, wherein the configuration data including information for accessing the selected publicly available data hosting service;

instructing the second data center to download the file from the selected publicly available data hosting service using the configuration data; and

instructing the second data center to transfer the file from the second data center to the target computing device.

8. The method of claim 7 , further comprising:

instructing the selected publicly available data hosting service to select one of a plurality of data centers of the selected publicly available data hosting service based on the plurality of data centers' proximity to the second data center, wherein the file is uploaded to the selected data center of the selected publicly available data hosting service.

9. A computer program product including instructions recorded on a non-transitory computer readable storage medium and configured to cause at least one processor to:

transfer, by a file transfer manager implemented at a first data center, a file from a source computing device to a target computing device, the source computing device being communicatively coupled to the first data center, the target computing device being communicatively coupled to a second data center, wherein the file is associated with file metadata, and with an organization, the file metadata including one or more checksum values and information about the file, the file metadata including security-related metadata and transfer latency metadata, wherein the instructions to transfer include:

intercept, via an application programming interface (API), an operating system call issued at the source computing device, the intercepted operating system call including a file transfer request for transferring the file;

determine whether or not the file already exists at the target computing device based on the one or more checksum values;

compute network metadata about network conditions of a private wide area network (WAN) and of a plurality of publicly available data hosting services in response to the determination that the file does not already exist at the target computing device, the network metadata including information representing available network bandwidth on the private WAN and available network bandwidth on the plurality of publicly available data hosting services, wherein the private WAN is a computer network administered by the organization, and each of the plurality of publicly available data hosting services is a network that is not administered by the organization;

programmatically select the private WAN or one of the plurality of publicly available data hosting services for transferring the file by executing path decision logic, wherein the path decision logic includes decision criteria specifying weights applied to the security-related metadata and the transfer latency metadata, wherein the security-related metadata is associated with a higher weight than the transfer latency metadata; and

wherein, in response to the selection of one of the plurality of publicly available data hosting services for transferring the file, the file transfer manager further configured to:

upload the file to the selected publicly available data hosting service,

transfer configuration data to the second data center, wherein the configuration data including information for accessing the selected publicly available data hosting service,

instruct the second data center to download the file from the selected publicly available data hosting service using the configuration data, and

instruct the second data center to transfer the file from the second data center to the target computing device, the configuration data including a digital certificate.

10. The computer program product of claim 9 , wherein the private WAN includes geographically-distributed data centers.

11. The computer program product of claim 9 , further comprising:

instruct the selected publicly available data hosting service to select one of a plurality of data centers of the selected publicly available data hosting service based on the plurality of data centers' proximity to the second data center, wherein the file is uploaded to the selected data center of the selected publicly available data hosting service.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY AGREEMENT Recorded Sep 11, 2013
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 031204/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2012
From: THEROUX, MICHAEL E.; CEFALO, BENJAMIN P.; PIAZZA, JEFFREY E.
To: BMC SOFTWARE, INC.
Reel/Frame 029142/0564 →