IP Library Granted Patent US 7,006,512
Granted Patent B2
US 7,006,512 · App. 09/781,591 · Granted Feb 28, 2006

Apparatus and methods for managing queues 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 7,006,512
App. No.
09/781,591
Granted
Feb 28, 2006
Kind
B2
Abstract

An exemplary method for managing requests in a mobile device system comprises the steps of assigning a priority to each queue in a set of priority queues, inputting requests into the set of priority queues based on a priority associated with each request, merging multiple requests in the set of priority queues into a merged request based on priorities associated with the multiple requests and a destination for the multiple requests, and sending the merged request to a request queue for a connection in a connection pool for the destination.

Claims (70)

1. A method for managing requests in a mobile device system, comprising the steps of:

assigning a priority to each queue in a set of priority queues;

inputting requests into said set of priority queues based on a priority associated with each request;

merging multiple requests in said set of priority queues into a merged request based on priorities associated with said multiple requests and a destination for said multiple requests; and

sending said merged request to a request queue for a connection in a connection pool for said destination, wherein said sending includes sending a dummy request to extend the connection duration with said destination.

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

assigning a high priority to a request if the request is user initiated; and

assigning a low priority to a request if the request is not user initiated.

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

multiplexing said multiple requests; and

selectively building said merged request based on said multiplexing.

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

calculating a total processing time of each request queue for each connection in said connection pool; and

sending a next request into a request queue having the lowest total processing time in said connection pool.

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

initiating a sampling process to sample all requests;

compiling a first list of frequently requested destinations based on said sampling process;

assigning a set of connections to each destination on said first list; and

dynamically updating said first list and said set of connections assigned to each destination.

6. The method of claim 5 , wherein said step of assigning a set of connections includes the steps of:

ranking destinations in said first list from a most frequently requested destination to a least frequently requested destination; and

assigning a set of request queues for a set of connections to each destination on said first list in accordance with said destination's position on said first list.

7. The method of claim 5 , wherein said step of dynamically updating includes the steps of:

initiating a next sampling process to sample all requests;

compiling a new list of frequently requested destinations based on said next sampling process;

comparing said first list to said new list;

updating said first list based on said comparing step; and

reassigning said set of connections to each destination on said first list based on said updating step.

8. The method of claim 1 , wherein a destination is a server identified by a domain name.

9. The method of claim 1 , wherein a destination is a database.

10. A computer program product for managing requests in a mobile device system, comprising:

logic code for assigning a priority to each queue in a set of priority queues;

logic code for inputting requests into said set of priority queues based on a priority associated with each request;

logic code for merging multiple requests in said set of priority queues into a merged request based on priorities associated with said multiple requests and a destination for said multiple requests; and

logic code for sending said merged request to a request queue for a connection in a connection pool for said destination, wherein said logic code for sending includes logic code for sending a dummy request to extend the connection duration with said destination.

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

logic code for assigning a high priority to a request if the request is user initiated; and

logic code for assigning a low priority to a request if the request is not user initiated.

12. The computer program product of claim 10 , wherein said logic code for merging includes:

logic code for multiplexing said multiple requests; and

logic code for selectively building said merged request based on said multiplexing.

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

logic code for calculating a total processing time of each request queue for each connection in said connection pool; and

logic code for sending a next request into a request queue having the lowest total processing time in said connection pool.

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

logic code for initiating a sampling process to sample all requests;

logic code for compiling a first list of frequently requested destinations based on said sampling process;

logic code for assigning a set of connections to each destination on said first list; and

logic code for dynamically updating said first list and said set of connections assigned to each destination.

15. The computer program product of claim 14 , wherein said logic code for assigning a set of connections includes:

logic code for ranking destinations in said first list from a most frequently requested destination to a least frequently requested destination; and

logic code for assigning a set of request queues for a set of connections to each destination on said first list in accordance with said destination's position on said first list.

16. The computer program product of claim 14 , wherein said logic code for dynamically updating includes:

logic code for initiating a next sampling process to sample all requests;

logic code for compiling a new list of frequently requested destinations based on said next sampling process;

logic code for comparing said first list to said new list;

logic code for updating said first list based on said comparing; and

logic code for reassigning said set of connections to each destination on said first list based on said updating.

17. An apparatus for managing data in a mobile device system, comprising:

a request receiver for receiving requests;

a set of priority queues for storing said requests;

a dispatch manager for dispatching said requests from said set of priority queues; and

a set of request queues, each request queue being assigned to a connection;

wherein said requests are stored into said priority queue based on priorities associated with each request and said dispatch manager sends each of said requests into a request queue for a connection based on a destination of each request; and wherein said dispatch manager merges multiple requests into a merged request before sending said merged request to a request queue for a connection in a connection pool, wherein said sending includes sending dummy request to extend the connection duration with said destination.

18. An apparatus for managing data in a mobile device system, comprising:

a request receiver for receiving requests;

a set of priority queues for storing said requests;

a dispatch manager for dispatching said requests from said set of priority queues; and

a set of request queues, each request queue being assigned to a connection;

wherein said requests are stored into said priority queue based on priorities associated with each request and said dispatch manager sends each of said requests into a request queue for a connection based on a destination of each request; and wherein said dispatch manager includes multiplexers for multiplexing said multiple requests into said merged request based on priorities assigned to said multiple requests when said multiple requests are destined to a destination, wherein said sends includes sends a dummy request to extend the connection duration with said destination.

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 Feb 9, 2001
From: YANG, SHUOWEN; PENG, LUOSHENG
To: DOONGO TECHNOLOGIES, INC.
Reel/Frame 011581/0277 →
Continuity (1)
Related Publication 20020105924A1 · Aug 8, 2002