IP Library Granted Patent US 8,645,960
Granted Patent B2
US 8,645,960 · App. 11/781,820 · Granted Feb 4, 2014

Method and apparatus for data processing using queuing

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 8,645,960
App. No.
11/781,820
Granted
Feb 4, 2014
Kind
B2
Abstract

A computing device is provided having a central processing unit, random access memory, and read only memory interconnected by a bus. The central processing unit is configured to execute a plurality of programming instructions representing a plurality of software objects. The software objects comprise a read queue for storing unprocessed packets and a write queue for storing processed packets. The software objects include a reader thread for reading packets from the read queue and a lock free queue for receiving packets received via the reader thread. The software objects also include at least one processor thread for performing an operation on the packets in the lock free queue. The software objects include a writer thread for writing packets that have been processed by the at least one processor thread to the write queue.

Claims (24)

1. A computing device comprising:

a central processing unit interconnected with a random access memory and a read only memory by a bus;

said central processing unit configured to execute a plurality of programming instructions representing a plurality of software objects comprising a read queue for storing unprocessed packets originating from a mobile handset and destined for a destination server, and a write queue for storing processed packets;

said software objects including a reader thread for reading said unprocessed packets from said read queue and a lock free queue for receiving every one of said unprocessed packets via said reader thread if said lock free queue is not full;

said software objects including at least one processor thread for performing an operation on at least one of said unprocessed packets in said lock free queue, said operation including:

determining a type of service associated with said one unprocessed packet;

determining, based on said type of service, whether said one unprocessed packet is authorized according to an agreement with a subscriber operating said mobile handset, said agreement indicating that certain services are permitted while other services are not permitted;

when said one unprocessed packet is determined to be authorized, indicating that said one unprocessed packet should be forwarded for delivery to said destination server; and

when said one unprocessed packet is not authorized, indicating that said one unprocessed packet should be dropped;

said at least one processor thread configured, following the performance of said operation, to set a flag in said lock free queue indicating that said unprocessed packet has been processed;

said software objects further including a writer thread for dequeueing said processed packets from said lock free queue and enqueueing said processed packets to said write queue, said writer thread further configured to write said indication of said operation into said write queue; and

said software objects further including a timer, said writer thread configured, when said at least one processor thread fails to process said one unprocessed packet according to a defined time-out criterion, to assume that said indication of said operation is that said one unprocessed packet should be forwarded, and to enqueue said one unprocessed packet to said write queue for delivery to said destination server.

2. In a computing device having a central processing unit, random access memory, and read only memory interconnected by a bus, said central processing unit configured to execute a plurality of programming instructions representing a plurality of software objects comprising a read queue for storing unprocessed packets, a write queue for storing processed packets, and a timer having a defined time-out criterion; a method for processing said unprocessed packets comprising:

storing said unprocessed packets in said read queue, said unprocessed packets originating from a mobile handset and destined for a destination server;

reading, via a reader thread, said unprocessed packets from said read queue and for every one of said unprocessed packets from said read queue, enqueuing said unprocessed packets in a lock free queue if said lock free queue is not full;

performing an operation on at least one of said unprocessed packets in said lock free queue via at least one processor thread, said operation including:

determining a type of service associated with said one unprocessed packet;

determining, based on said type of service, whether said one unprocessed packet is authorized according to an agreement with a subscriber operating said mobile handset, said agreement indicating that certain services are permitted while other services are not permitted;

when said one unprocessed packet is determined to be authorized, indicating that said one unprocessed packet should be forwarded for delivery to said destination server; and

when said one unprocessed packet is not authorized, indicating that said one unprocessed packet should be dropped;

following the performance of said operation, setting a flag in said lock free queue indicating that said at least one unprocessed packet has been processed;

dequeueing, via a writer thread, processed packets from said lock free queue and enqueueing said processed packets to said write queue;

writing, via said writer thread, said indication of said operation into said write queue; and

when said at least one processor thread fails to process said one unprocessed packet according to said defined time-out criterion, assuming that said indication of said operation is that said one unprocessed packet should be forwarded, and enqueuing said one unprocessed packet to said write queue for delivery to said destination server.

Assignments (2)
SECURITY AGREEMENT Recorded Oct 29, 2012
From: REDKNEE INC.
To: WELLS FARGO CAPITAL FINANCE CORPORATION CANADA
Reel/Frame 029207/0433 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2007
From: YUEN, JOHN; LI, ZHE
To: REDKNEE INC.
Reel/Frame 019898/0031 →