IP Library Granted Patent US 6,954,754
Granted Patent B2
US 6,954,754 · App. 09/836,972 · Granted Oct 11, 2005

Apparatus and methods for managing caches on a mobile device

Assignee: InnoPath Software, Inc.
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 6,954,754
App. No.
09/836,972
Granted
Oct 11, 2005
Kind
B2
Abstract

An exemplary method for managing a cache on a mobile device comprises the steps of receiving a call for loading a set of files, the set of files including an application or data, searching a database in a database for a matching record to the set of files, determining if the set of files is out-of-date or if a scheduled update is overdue based on the matching record, updating the set of files if it is out-of-date, performing a status check or update if the scheduled update is overdue, and loading the set of files if it is not out-of-date and the scheduled update is not overdue.

Claims (118)

1. A method for managing a cache on a mobile device, comprising the steps of:

receiving a call for loading a set of files at a mobile device, said set of files including an application or data;

searching a local database at said mobile device for a matching record to said set of files;

based on said matching record, determining if said set of files is out-of-date or if a scheduled update is overdue;

updating said set of files if it is out-of-date;

performing a status check or update if said scheduled update is overdue;

loading said set of files if it is not out-of-date and said scheduled update is not overdue;

downloading said set of files if it is out-of-date;

calculating a cache benefit index for said set of files, said cache benefit index indicating a total benefit for caching said set of files; and

determining whether to cache said set of files on said local database based on said cache benefit index.

2. The method of claim 1 , further comprising the step of:

loading an updated set of files after an update or status check is complete.

3. The method of claim 1 , wherein said updating step includes the steps of:

opening a communications session with a gateway or a remote server;

sending an update request to said gateway or said remote server;

receiving an update response, said response including at least one difference file for updating said set of files;

closing said communications session; and

updating a local file system and said database based on said update response.

4. The method of claim 3 , wherein said step of updating a local file system and said database includes the step of:

loading said at least one difference file into a random access memory;

loading a copy of said set of files into said random access memory;

applying said at least one difference file on said set of files in said random access memory to obtain an updated set of files;

copying said updated set of files into said local file system;

removing said set of files from said local file system;

updating said database based on said updated set of files; and

removing said at least one difference file and said set of files from said random access memory.

5. The method of claim 4 , further comprising the steps of:

executing said updated set of files; and

removing said updated set of files from said random access memory.

6. The method of claim 4 , wherein said step of applying said at least one difference file includes the steps of:

parsing said at least one difference file to determine whether to add, modify, or delete a file in said set of files; and

updating said local file system and said database based on said parsing.

7. The method of claim 3 , further comprising the steps of:

parsing said update response for a broadcast message;

accessing and updating said database based on said broadcast message; and

sending a broadcast response to said gateway or said remote server.

8. The method of claim 7 , wherein said accessing and updating steps include the step of:

selectively marking at least one set of files as out-of-date.

9. The method of claim 1 , wherein said step of performing a status check or update includes the steps of:

opening a communications session with a gateway or a remote server;

sending a status check or update request to said gateway or said remote server;

receiving a status check or update response from said gateway or said remote server;

closing said communications session; and

updating a local file system and a database if at least one difference file is included in said status check or update response.

10. The method of claim 9 , wherein said step of updating a local file system and a database includes the steps of:

loading said at least one difference file into a random access memory;

loading a copy of said set of files into said random access memory;

applying said at least one difference file on said set of files in said random access memory to obtain an updated set of files;

copying said updated set of files into said local file system;

removing said set of files from said local file system;

updating said database based on said updated set of files; and

removing said at least one difference file and said set of files from said random access memory.

11. The method of claim 10 , wherein said step of applying said at least one difference file includes the steps of:

parsing said at least one difference file to determine whether to add, modify, or delete a file in said set of files; and

updating said local file system and said database based on said parsing.

12. The method of claim 9 , further comprising the steps of:

parsing said status check or update response for a broadcast message;

selectively marking at least one set of files as out-of-date based on said broadcast message; and

sending a broadcast response to said gateway or said remote server.

13. A computer program product, embedded in a computer readable medium, for managing a cache on a mobile device, comprising:

logic code for receiving a call for loading a set of files at a mobile device, said set of files including an application or data;

logic code for searching a local database at said mobile device for a matching record to said set of files;

logic code for determining if said set of files is out-of-date or if a scheduled update is overdue based on said matching record;

logic code for updating said set of files if it is out-of-date;

logic code for performing a status check or update if said scheduled update is overdue;

logic code for loading said set of files if it is not out-of-date and said scheduled update is not overdue;

logic code for downloading said set of files if it is out-of-date;

logic code for calculating a cache benefit index for said set of files, said cache benefit index indicating a total benefit for caching said set of files; and

logic code for determining whether to cache said set of files on said local database based on said cache benefit index.

14. The computer program product of claim 13 , further comprising:

logic code for loading an updated set of files after an update or status check is complete.

15. The computer program product of claim 13 , wherein said logic code for updating includes:

logic code for opening a communications session with a gateway or a remote server;

logic code for sending an update request to said gateway or said remote server;

logic code for receiving an update response, said response including at least one difference file for updating said set of files;

logic code for closing said communications session; and

logic code for updating a local file system and said database based on said update response.

16. The computer program product of claim 15 , wherein said logic code for updating a local file system and said database includes:

logic code for loading said at least one difference file into a random access memory;

logic code for loading a copy of said set of files into said random access memory;

logic code for applying said at least one difference file on said set of files in said random access memory to obtain an updated set of files;

logic code for copying said updated set of files into said local file system;

logic code for removing said set of files from said local file system;

logic code for updating said database based on said updated set of files; and

logic code for removing said at least one difference file and said set of files from said random access memory.

17. The computer program product of claim 16 , further comprising:

logic code for executing said updated set of files; and

logic code for removing said updated set of files from said random access memory.

18. The computer program product of claim 16 , wherein said logic code for applying said at least one difference file includes:

logic code for parsing said at least one difference file to determine whether to add, modify, or delete a file in said set of files; and

logic code for updating said local file system and said database based on said parsing.

19. The computer program product of claim 15 , further comprising:

logic code for parsing said update response for a broadcast message;

logic code for accessing and updating said database based on said broadcast message; and

logic code for sending a broadcast response to said gateway or said remote server.

20. The computer program product of claim 19 , wherein said logic code for accessing and updating include:

logic code for selectively marking at least one set of files as out-of-date.

21. The computer program product of claim 13 , wherein said logic code for performing a status check or update includes:

logic code for opening a communications session with a gateway or a remote server;

logic code for sending a status check or update request to said gateway or said remote server;

logic code for receiving a status check or update response from said gateway or said remote server;

logic code for closing said communications session; and

logic code for updating a local file system and a database if at least one difference file is included in said status check or update response.

22. The computer program product of claim 21 , wherein said logic code for updating a local file system includes:

logic code for loading said at least one difference file into a random access memory;

logic code for loading a copy of said set of files into said random access memory;

logic code for applying said at least one difference file on said set of files in said random access memory to obtain an updated set of files;

logic code for copying said updated set of files into said local file system;

logic code for removing said set of files from said local file system;

logic code for updating said database based on said updated set of files; and

logic code for removing said at least one difference file and said set of files from said random access memory.

23. The computer program product of claim 22 , wherein said logic code for applying said at least one difference file includes:

logic code for parsing said at least one difference file to determine whether to add, modify, or delete a file in said set of files; and

logic code for updating said local file system and said database based on said parsing.

24. The computer program product of claim 21 , further comprising:

logic code for parsing said status check or update response for a broadcast message;

logic code for selectively marking at least one set of files as out-of-date based on said broadcast message; and

logic code for sending a broadcast response to said gateway or said remote server.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2016
From: QUALCOMM TECHNOLOGIES, INC.
To: QUALCOMM INCORPORATED
Reel/Frame 039900/0760 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2016
From: INNOPATH SOFTWARE, INC.
To: QUALCOMM TECHNOLOGIES, INC.
Reel/Frame 038943/0852 →
RELEASE OF SECURITY INTEREST Recorded Apr 4, 2016
From: SILICON VALLEY BANK
To: INNOPATH SOFTWARE INC.
Reel/Frame 038335/0886 →
SECURITY AGREEMENT Recorded Mar 7, 2006
From: INNOPATH SOFTWARE, INC.
To: SILICON VALLEY BANK
Reel/Frame 017262/0479 →
CHANGE OF NAME Recorded Aug 25, 2004
From: DOONGO TECHNOLOGIES, INC.
To: INNOPATH SOFTWARE, INC.
Reel/Frame 015083/0148 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2001
From: PENG, LUOSHENG
To: DOONGO TECHNOLOGIES, INC.
Reel/Frame 011737/0022 →
Continuity (1)
Related Publication 20020152229A1 · Oct 17, 2002