IP Library Granted Patent US 7,949,641
Granted Patent B1
US 7,949,641 · App. 11/354,547 · Granted May 24, 2011

Systems and methods for validating a portion of a file that is downloaded from another computer system

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 7,949,641
App. No.
11/354,547
Granted
May 24, 2011
Kind
B1
Abstract

In an exemplary method that is performed by a first computer system, one or more file blocks are identified within a target file. The one or more file blocks comprise a desired portion of the target file. At least one file block is downloaded from a second computer system. However, the entire target file is not downloaded. A previously calculated validation value is received for a file block that has been downloaded. A new validation value is calculated for the downloaded file block. If the new validation value for the file block does not match the previously calculated validation value for the file block, the file block is discarded.

Claims (63)

1. In a first computer system, a method for validating a desired portion of a target file that is downloaded from a second computer system, comprising:

receiving a request from a third computer system to download the desired portion of the target file from the second computer system, wherein:

the request is not received in response to a request sent from the first computer system to the third computer system,

the third computer system is an administrative system,

the administrative system comprises a management server, a database of information, components configured to perform scheduling and to handle alerts, and a management application,

the management application performs remote control, software distribution, software license monitoring, operating system imaging and migration, IT asset management, and problem resolution,

the first computer system comprises a management agent, and

the request to download the desired portion of the target file from the second computer system is received by the management agent from the management application;

receiving a validation list file, wherein the validation list file is a single file that comprises both previously calculated validation values for file blocks within the target file and file block information;

identifying one or more file blocks within the target file that comprise the desired portion of the target file, wherein the desired portion of the target file is something less than the entire target file, wherein identifying the one or more file blocks comprises accessing the validation list file, wherein the validation list file is received by the first computer system before the one or more file blocks within the target file are identified by the first computer system, and wherein the validation list file is created by the management application of the administrative system prior to the management agent receiving the request to download the desired portion of the target file from the second computer system from the management application;

downloading from the second computer system at least one of the one or more file blocks without downloading the entire target file;

accessing from the validation list file a previously calculated validation value for a file block that has been downloaded, wherein the file block is something less than the entire target file, and wherein the previously calculated validation value does not correspond to any part of the target file other than the file block;

calculating a new validation value for the file block; and

if the new validation value for the file block does not match the previously calculated validation value for the file block, discarding the file block.

2. The method of claim 1 , wherein the file block information comprises starting and ending points of the file blocks in the target file.

3. The method of claim 1 , wherein the file block information comprises size information for the file blocks in the target file.

4. The method of claim 1 , wherein the validation list file comprises a digital signature, and further comprising attempting to validate the digital signature.

5. The method of claim 1 , wherein the validation list file is received via a secure communication channel.

6. The method of claim 1 , wherein the validation list file is selected from the group consisting of an XML document, an OpenPGP message, and a binary file.

7. The method of claim 1 , further comprising receiving previously calculated validation values only for the one or more file blocks that comprise the desired portion of the target file.

8. The method of claim 1 , wherein the previously calculated validation value and the new validation value are selected from the group consisting of a checksum, an MD5 hash value, an SHA-1 hash value, a portion of an SHA-1 hash value, and the first 8 bytes of an SHA-1 hash value.

9. The method of claim 1 , wherein downloading at least one of the one or more file blocks comprises downloading one file block at a time.

10. The method of claim 1 , wherein downloading at least one of the one or more file blocks comprises downloading multiple file blocks simultaneously.

11. The method of claim 1 , wherein all file blocks within the target file are equally sized.

12. The method of claim 1 , wherein at least some file blocks within the target file are unequally sized.

13. The method of claim 1 , wherein the first computer system is a first managed node on a computer network, wherein the second computer system is a second managed node on the computer network, and wherein the third computer system is an administrative system on the computer network.

14. The method of claim 1 , wherein the first computer system is selected from the group consisting of an installable file system and a local proxy.

15. The method of claim 1 , wherein the first computer system and the second computer system are in electronic communication with one another via a peer-to-peer network.

16. The method of claim 1 , wherein the first computer system is a managed node on a computer network, and wherein the second computer system and the third computer systems are an administrative system for the computer network.

17. The method of claim 1 , wherein the target file is a CAB file, and wherein the one or more file blocks are aligned with files contained in the CAB file.

18. The method of claim 1 , wherein the one or more file blocks are downloaded out of sequence.

19. The method of claim 1 , wherein the validation list file comprises validation values only for file blocks within the target file that are to be downloaded.

20. A first computer system that is configured to validate a desired portion of a target file that is downloaded from a second computer system, the first computer system comprising:

a processor;

memory in electronic communication with the processor;

instructions stored in the memory, the instructions being executable to:

receive a request from a third computer system to download the desired portion of the target file from the second computer system, wherein:

the request is not received in response to a request sent from the first computer system to the third computer system,

the third computer system is an administrative system,

the administrative system comprises a management server, a database of information, components configured to perform scheduling and to handle alerts, and a management application,

the management application performs remote control, software distribution, software license monitoring, operating system imaging and migration, IT asset management, and problem resolution,

the first computer system comprises a management agent, and

the request to download the desired portion of the target file from the second computer system is received by the management agent from the management application;

receive a validation list file, wherein the validation list file is a single file that comprises both previously calculated validation values for file blocks within the target file and file block information, and wherein the validation list file is created by the management application of the administrative system prior to the management agent receiving the request to download the desired portion of the target file from the second computer system from the management application;

identify one or more file blocks within the target file that comprise the desired portion of the target file, wherein the desired portion of the target file is something less than the entire target file, wherein identifying the one or more file blocks comprises accessing the validation list file, wherein the validation list file is received by the first computer system before the one or more file blocks within the target file are identified by the first computer system;

download from the second computer system at least one of the one or more file blocks without downloading the entire target file;

access from the validation list file a previously calculated validation value for a file block that has been downloaded, wherein the file block is something less than the entire target file, and wherein the previously calculated validation value does not correspond to any part of the target file other than the file block;

calculate a new validation value for the file block; and

if the new validation value for the file block does not match the previously calculated validation value for the file block, discard the file block.

21. A computer-readable storage medium for validating a desired portion of a target file that is downloaded from a second computer system, the computer-readable storage medium comprising executable instructions for:

receiving a request from a third computer system to download the desired portion of the target file from the second computer system, wherein:

the request is not received in response to a request sent from the first computer system to the third computer system,

the third computer system is an administrative system,

the administrative system comprises a management server, a database of information, components configured to perform scheduling and to handle alerts, and a management application,

the management application performs remote control, software distribution, software license monitoring, operating system imaging and migration, IT asset management, and problem resolution,

the first computer system comprises a management agent, and

the request to download the desired portion of the target file from the second computer system is received by the management agent from the management application;

receiving a validation list file, wherein the validation list file is a single file that comprises both previously calculated validation values for file blocks within the target file and file block information, and wherein the validation list file is created by the management application of the administrative system prior to the management agent receiving the request to download the desired portion of the target file from the second computer system from the management application;

identifying one or more file blocks within the target file that comprise the desired portion of the target file, wherein the desired portion of the target file is something less than the entire target file, wherein identifying the one or more file blocks comprises accessing the validation list file, wherein the validation list file is received by the first computer system before the one or more file blocks within the target file are identified by the first computer system;

downloading from the second computer system at least one of the one or more file blocks without downloading the entire target file;

accessing from the validation list file a previously calculated validation value for a file block that has been downloaded, wherein the file block is something less than the entire target file, and wherein the previously calculated validation value does not correspond to any part of the target file other than the file block;

calculating a new validation value for the file block; and

if the new validation value for the file block does not match the previously calculated validation value for the file block, discarding the file block.

Assignments (19)
NOTICE OF SUCCESSION OF AGENCY FOR SECURITY INTEREST AT REEL/FRAME 054665/0873 Recorded Apr 29, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: ALTER DOMUS (US) LLC, AS SUCCESSOR AGENT
Reel/Frame 071123/0386 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; IVANTI, INC.; MOBILEIRON, INC.; IVANTI US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 054665/0062 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; INVANTI, INC.; MOBILEIRON, INC.; INVANTI US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 054665/0873 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 41052/0762 Recorded Dec 1, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: CRIMSON CORPORATION
Reel/Frame 054560/0857 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 41459/0387 Recorded Dec 1, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: CRIMSON CORPORATION
Reel/Frame 054637/0161 →
MERGER Recorded Apr 19, 2018
From: CRIMSON CORPORATION
To: IVANTI, INC.
Reel/Frame 045983/0075 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 40182/0345 Recorded Jan 23, 2017
From: JEFFERIES FINANCE LLC
To: CRIMSON CORPORATION
Reel/Frame 041463/0581 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 40183/0506 Recorded Jan 23, 2017
From: JEFFERIES FINANCE LLC
To: CRIMSON CORPORATION
Reel/Frame 041463/0457 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jan 20, 2017
From: CRIMSON CORPORATION
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 041052/0762 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jan 20, 2017
From: CRIMSON CORPORATION
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 041459/0387 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Sep 29, 2016
From: CRIMSON CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 040183/0506 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Sep 29, 2016
From: CRIMSON CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 040182/0345 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 031029/0849 Recorded Sep 28, 2016
From: JEFFERIES FINANCE LLC
To: CRIMSON CORPORATION
Reel/Frame 040171/0307 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 032333/0637 Recorded Sep 28, 2016
From: JEFFERIES FINANCE LLC
To: CRIMSON CORPORATION
Reel/Frame 040171/0037 →
SECURITY AGREEMENT Recorded Feb 25, 2014
From: LANDESK SOFTWARE, INC.; CRIMSON CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 032333/0637 →
SECURITY AGREEMENT Recorded Aug 16, 2013
From: LANDESK GROUP, INC.; LANDSLIDE HOLDINGS, INC.; CRIMSON ACQUISITION CORP.; LANDESKSOFTWARE, INC.; CRIMSON CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 031029/0849 →
RELEASE OF SECURITY INTEREST Recorded Aug 12, 2013
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: CRIMSON CORPORATION
Reel/Frame 030993/0644 →
PATENT SECURITY AGREEMENT Recorded Jul 26, 2012
From: CRIMSON CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 028643/0847 →
RELEASE OF SECURITY INTEREST Recorded Jun 20, 2012
From: WELLS FARGO CAPITAL FINANCE, LLC
To: LANDESK GROUP, INC.; LANDSLIDE HOLDINGS, INC.; LANDESK SOFTWARE, INC.; CRIMSON ACQUISITION CORP.; CRIMSON CORPORATION
Reel/Frame 028413/0913 →