IP Library Granted Patent US 6,959,436
Granted Patent B2
US 6,959,436 · App. 09/737,927 · Granted Oct 25, 2005

Apparatus and methods for intelligently providing applications and data on a mobile device system

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,959,436
App. No.
09/737,927
Granted
Oct 25, 2005
Kind
B2
Abstract

An exemplary method for intelligently providing application and data in a mobile device system comprises the steps of collecting user operation history of at least one user, generating user and application registration information, selectively caching application or data at a mobile device and a gateway based on the user operation history, differentially updating the application or data at the mobile device and the gateway, and synchronizing the user operation history and user and application registration information among a plurality of gateways.

Claims (173)

1. A computerized method for intelligently providing application and data in a mobile device system, comprising the steps of:

collecting user operation history from at least one user; generating user and application registration information;

generating a list of frequently accessed information based on said user operation history;

selectively caching information at a mobile device and a gateway based on said list of frequently accessed information, said information including application or data;

updating said information at said mobile device and said gateway; and

synchronizing said user operation history and said user and application registration information among a plurality of gateways

wherein said selectively caching includes the steps of:

caching a first set of frequently accessed information of each user at a respective mobile device; and

caching a second set of frequently accessed information at said gateway.

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

receiving a broadcast about a new version of said information;

checking a local cache for an old version of said information;

comparing said new version and said old version; and

differentially updating portions of said information based on said comparing in response to a user event.

3. The method of claim 2 , wherein said user event includes a user request to execute or access said old version.

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

performing a status check with a server;

downloading a new version from said server if said new version exists; and

replacing an old version with said new version.

5. The method of claim 4 , wherein said performing step includes the step of:

triggering said status check in response to a user event.

6. The method of claim 4 , wherein said performing step includes the step of:

automatically triggering said status check in accordance with an estimated update interval.

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

receiving a broadcast about a new version of said information;

checking a local cache at said gateway for an old version of said information;

comparing said new version and said old version;

generating a differential file based on said comparing; and

sending said differential file to said mobile device.

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

downloading a new version of said information from a server; and

checking a local cache at said gateway for an old version of said information:

if said local cache includes said old version,

comparing said old version and said new version;

generating a differential file based on said comparing; and

sending said differential file to said mobile device; and

if said local cache does not include said old version,

sending said new version to said mobile device.

9. The method of claim 8 , wherein said downloading step includes the step of:

triggering said downloading in response to a schedule.

10. The method of claim 8 , wherein said downloading step includes the step of:

automatically triggering said downloading in accordance with an estimated update interval.

11. The method of claim 1 , wherein said step of synchronizing said information includes the steps of:

inquiring a plurality of potential slave gateways about their availability for a synchronization process;

receiving responses from said plurality of potential slave gateways;

initiating said synchronization process if all of said plurality of potential slave gateways are available; and

repeating said inquiring if not all of said plurality of potential slave gateways are available.

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

monitoring activity at said mobile device and said gateway; and

automatically routing said mobile device to another gateway when said gateway is overloaded, when said gateway crashed, or when a user at said mobile device moved out of an area serviced by said gateway.

13. The method of claim 12 , wherein said automatically routing includes the step of:

routing said mobile device to a geographically nearest functional gateway.

14. The method of claim 1 , further comprising the steps of:

saving local information from said mobile device in a temporary cache of said gateway;

saving a list of uniform resource locators in a database of said gateway; and

transferring said local information and a copy of said list to a new mobile device upon receiving an initiation request from said new mobile device.

15. The method of claim 14 , further comprising the steps of:

checking a local cache at said gateway for an application or data corresponding to items on said list of uniform resource locators;

if said application or data is found in said local cache:

sending said application or data to said new mobile device;

if said application or data is not found in said local cache:

downloading said application or data from a server; and

sending said application or data from said server to said new mobile device.

16. The method of claim 1 , further comprising the steps of:

receiving a request to search for an application or data, said request including keywords;

searching said information at said mobile device and said gateway based on said keywords; and

generating a result based on said searching.

17. A computerized method for processing requests at a gateway, comprising the steps of:

parsing a request, said request including user operation history;

building a first intelligent strategy based on said parsing, said first intelligent strategy including at least one database access request;

accessing a gateway database based on said first intelligent strategy;

constructing a response based on said accessing; and

sending said response to said mobile device;

wherein said step of accessing a gateway database includes the steps of:

determining whether a requested application or data is located in said gateway; and

determining whether said requested application or data is current;

sending said request to a server if said requested application or data is not located in said gateway or said requested application or data is not current;

receiving a server response from said server;

building a second intelligent strategy based on said server response; and

caching or updating said requested application or data in said gateway in accordance with said second intelligent strategy;

wherein said step of sending said request to a server includes the steps of:

opening a logical session;

opening or reusing a physical session for connection to said server; and

sending said request to said server via said logical and physical sessions.

18. The method of claim 17 , further comprising the steps of: parsing said server response; and sending an acknowledgment to said server if said server response includes any broadcast message.

19. A computer program product for intelligently providing application and data in a mobile device system, comprising:

logic code for collecting user operation history from at least one user;

logic code for generating user and application registration information;

logic code for generating a list of frequently accessed information based on said user operation history;

logic code for selectively caching information at a mobile device and a gateway based on said list of frequently accessed information, said information including application or data;

logic code for updating said information at said mobile device and said gateway; and

logic code for synchronizing said user operation history and said user and

application registration information among a plurality of gateways;

wherein said logic code for selectively caching includes the step of:

logic code for caching a first set of frequently accessed information of each user at a respective mobile device; and

logic code for caching a second set of frequently accessed information at said gateway.

20. The computer program product of claim 19 , wherein said logic code for updating said information includes:

logic code for receiving a broadcast about a new version of said information;

logic code for checking a local cache for an old version of said information;

logic code for comparing said new version and said old version; and

logic code for differentially updating portions of said information based on said comparing in response to a user event.

21. The computer program product of claim 20 , wherein said user event includes a user request to execute or access said old version.

22. The computer program product of claim 19 , wherein said logic code for updating said information includes:

logic code for performing a status check with a server;

logic code for downloading a new version from said server if said new version exists; and

logic code for replacing an old version with said new version.

23. The computer program product of claim 22 , wherein said logic code for performing includes:

logic code for triggering said status check in response to a user event.

24. The computer program product of claim 22 , wherein said logic code for performing includes:

logic code for automatically triggering said status check in accordance with an estimated update interval.

25. The computer program product of claim 19 , wherein said logic code for updating said information includes:

logic code for receiving a broadcast about a new version of said information;

logic code for checking a local cache at said gateway for an old version of said information;

logic code for comparing said new version and said old version;

logic code for generating a differential file based on said comparing; and

logic code for sending said differential file to said mobile device.

26. The computer program product of claim 19 , wherein said logic code for updating said information includes:

logic code for downloading a new version of said information from a server; and

logic code for checking a local cache at said gateway for an old version of said information:

if said local cache includes said old version,

logic code for comparing said old version and said new version;

logic code for generating a differential file based on said comparing; and

logic code for sending said differential file to said mobile device; and

if said local cache does not include said old version,

logic code for sending said new version to said mobile device.

27. The computer program product of claim 26 , wherein said logic code for downloading includes:

logic code for triggering said downloading in response to a schedule.

28. The computer program product of claim 26 , wherein said logic code for downloading includes:

logic code for automatically triggering said downloading in accordance with an estimated update interval.

29. The computer program product of claim 19 , wherein said logic code for synchronizing said information includes:

logic code for inquiring a plurality of potential slave gateways about their availability for a synchronization process;

logic code for receiving responses from said plurality of potential slave gateways;

logic code for initiating said synchronization process if all of said plurality of potential slave gateways are available; and

logic code for repeating said inquiring if not all of said plurality of potential slave gateways are available.

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

logic code for monitoring activity at said mobile device and said gateway; and

logic code for automatically routing said mobile device to another gateway when said gateway is overloaded, when said gateway crashed, or when a user at said mobile device moved out of an area serviced by said gateway.

31. The computer program product of claim 30 , wherein said logic code for automatically routing includes:

logic code for routing said mobile device to a geographically nearest functional gateway.

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

logic code for saving local information from said mobile device in a temporary cache of said gateway;

logic code for saving a list of uniform resource locators in a database of said gateway; and

logic code for transferring said local information and a copy of said list to a new mobile device upon receiving an initiation request from said new mobile device.

33. The computer program product of claim 32 , further comprising:

logic code for checking a local cache at said gateway for an application or data corresponding to items on said list of uniform resource locators;

if said application or data is found in said local cache:

logic code for sending said application or data to said new mobile device;

if said application or data is not found in said local cache:

logic code for downloading said application or data from a server; and

logic code for sending said application or data from said server to said new mobile device.

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

logic code for receiving a request to search for an application or data, said request including keywords;

logic code for searching said information at said mobile device and said gateway based on said keywords; and

logic code for generating a result based on said searching.

35. A computer executable program product for processing requests at a gateway, comprising:

logic code for parsing a request, said request including user operation history;

logic code for building a first intelligent strategy based on said parsing, said first intelligent strategy including at least one database access request;

logic code for accessing a gateway database based on said first intelligent strategy;

logic code for constructing a response based on said accessing; and

logic code for sending said response to a mobile device;

wherein said logic code for accessing a gateway database includes:

logic code for determining whether a requested application or data is located in said gateway; and

logic code for determining whether said requested application or data is current;

logic code for sending said request to a server if said requested application or data is not located in said gateway or said requested application or data is not current;

logic code for receiving a server response from said server;

logic code for building a second intelligent strategy based on said server response; and

logic code for caching or updating said requested application or data in said gateway in accordance with said second intelligent strategy;

wherein said logic code for sending said request to a server includes:

logic code for opening a logical session;

logic code for opening or reusing a physical session for connection to said server; and

logic code for sending said request to said server via said logical and physical sessions.

36. The computer program product of claim 35 , further comprising: logic code for parsing said server response; and

logic code for sending an acknowledgment to said server if said server response includes any broadcast message.

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 Dec 15, 2000
From: PENG, LUOSHENG
To: DOONGO TECHNOLOGIES, INC.
Reel/Frame 011395/0948 →
Continuity (1)
Related Publication 20020078209A1 · Jun 20, 2002