IP Library Granted Patent US 8,665,853
Granted Patent B2
US 8,665,853 · App. 12/118,285 · Granted Mar 4, 2014

Packet-based communication system and method

Inventors: Jonathan F. Hammell (Dobbinton, CA); Michael K. Brown (Kitchener, CA)
Assignee: BlackBerry Limited
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,665,853
App. No.
12/118,285
Granted
Mar 4, 2014
Kind
B2
Abstract

A system and method for facilitating communication of packets between one or more applications residing on a first computing device and at least one second computing device. The system comprises a connection manager adapted to receive packets from the at least one second computing device, and a packet cache for storing packets received by the connection manager. The connection manager, upon receiving a packet from a second computing device, transmits the packet to the packet cache for storage and notifies each of the applications of receipt of the packet. Subsequently, the packet is retrievable from the packet cache by a notified application, and verification that the packet is intended for communication to the notified application is made.

Claims (46)

1. A system for facilitating communication of packets between multiple components of one or more applications residing on a first computing device and at least one second computing device, the system comprising:

a connection manager adapted to receive packets from the at least one second computing device; and

a packet cache, coupled to the connection manager, for storing packets received by the connection manager;

wherein the connection manager is adapted to, for each packet, notify each of the multiple components of the one or more applications of receipt of the packet;

wherein the packet is retrievable from the packet cache by a notified component for verification that the packet is intended for communication to the notified component;

wherein each notified component is adapted to determine if it is expecting to receive the packet from the at least one second computing device; and

wherein retrieval of the packet and verification that the packet is intended for communication to the notified component are made if the notified component determines that it is expecting to receive the packet from the at least one second computing device.

2. The system of claim 1 , wherein the first computing device and the at least one second computing device are adapted to communicate with each other within a virtual private network.

3. The system of claim 1 , wherein each of the multiple components is one of the one or more applications or a thread thereof that is executing and resides on the first computing device.

4. The system of claim 1 , wherein if the packet is successfully verified by the notified component, the notified component informs the packet cache that the packet is being used, such that the packet cache removes the packet from storage.

5. The system of claim 1 , wherein an identifier is assigned to each packet stored in the packet cache; wherein in notifying each of the multiple components of the one or more applications of receipt of the packet, the identifier associated therewith is employed; wherein the identifier of the packet facilitates the retrieval thereof from the packet cache by the notified component; and wherein if the packet is successfully verified by the notified component, the notified component informs the packet cache that the packet is being used, such that the packet cache removes the packet from storage and releases the identifier associated with the packet.

6. The system of claim 1 , wherein verification that the packet is intended for communication to the notified component is performed by checking headers and sequence numbers contained in the packet.

7. A method of facilitating communication of packets between multiple components of one or more applications residing on a first computing device and at least one second computing device, the method comprising:

receiving a packet from the at least one second computing device;

storing the received packet in a packet cache;

notifying each of the multiple components of the one or more applications of receipt of the received packet;

for a notified component, determining if the notified component is expecting to receive the packet from the at least one second computing device; and

retrieving the received packet from the packet cache; and

verifying that the received packet is intended for communication to the notified component if the notified component determines that it is expecting to receive the packet from the at least one second computing device.

8. The method of claim 7 , wherein the first computing device and the at least one second computing device are adapted to communicate with each other within a virtual private network.

9. The method of claim 7 , wherein each of the multiple components is one of the one or more applications or a thread thereof that is executing and resides on the first computing device.

10. The method of claim 7 , wherein the method further comprises assigning an identifier to the received packet stored in the packet cache; wherein in the notifying of each of the multiple components, the identifier associated with the received packet is employed; wherein the identifier is used to facilitate the retrieval of the received packet from the packet cache; and wherein if the packet is successfully verified by the notified component, the notified component informs the packet cache that the packet is being used, such that the packet cache removes the packet from storage and releases the identifier associated with the packet.

11. The method of claim 7 , wherein the verification of the received packet is made by the notified component, and wherein if the packet is successfully verified by the notified component, the notified component informs the packet cache that the packet is being used, such that the packet cache removes the packet from storage.

12. A non-transitory computer-readable medium comprising a plurality of instructions executable on a mobile device, wherein the instructions, when executed, perform a method of facilitating communication of packets between multiple components of one or more applications residing on the mobile device and at least one remote computing device, the method comprising:

receiving a packet from the at least one remote computing device;

storing the received packet in a packet cache;

notifying each of the multiple components of the one or more applications of receipt of the received packet;

for a notified component, determining if the notified component is expecting to receive the packet from the at least one remote computing device; and

retrieving the received packet from the packet cache and verifying that the received packet is intended for communication to the notified component if the notified component determines that it is expecting to receive the packet from the at least one remote computing device.

13. The medium of claim 12 , wherein the first computing device and the at least one second computing device are adapted to communicate with each other within a virtual private network

14. The medium of claim 12 , wherein each of the multiple components is one of the one or more applications or a thread thereof that is executing and resides on the first computing device.

15. The medium of claim 12 , wherein the verification of the received packet is made by the notified component, and wherein if the packet is successfully verified by the notified component, the notified component informs the packet cache that the packet is being used, such that the packet cache removes the packet from storage.

16. The medium of claim 12 , wherein the method further comprises assigning an identifier to the received packet stored in the packet cache; wherein in the notifying of each of the multiple components, the identifier associated with the received packet is employed; wherein the identifier is used to facilitate the retrieval of the received packet from the packet cache; and wherein if the packet is successfully verified by the notified component, the notified component informs the packet cache that the packet is being used, such that the packet cache removes the packet from storage and releases the identifier associated with the packet

17. A mobile device coupled to at least one remote computing device, the mobile device comprising:

a connection manager adapted to receive packets from the at least one remote computing device; and

a packet cache, coupled to the connection manager, for storing packets received by the connection manager;

wherein the connection manager is adapted to, for each packet, notify each of the multiple components of one or more applications residing on the mobile device of receipt of the packet;

wherein the packet is retrievable from the packet cache by a notified component for verification that the packet is intended for communication to the notified component is made;

wherein each notified component is adapted to determine if it is expecting to receive the packet from the at least one remote computing device; and

wherein retrieval of the packet and verification that the packet is intended for communication to the notified component are made if the notified component determines that it is expecting to receive the packet from the at least one remote computing device.

18. The mobile device of claim 17 , wherein the mobile device and the at least one remote computing device are adapted to communicate with each other within a virtual private network.

19. The mobile device of claim 17 , wherein each of the multiple components is one of the one or more applications or a thread thereof that is executing and resides on the mobile device.

20. The mobile device of claim 17 , wherein if the packet is successfully verified by the notified component, the notified component informs the packet cache that the packet is being used, such that the packet cache removes the packet from storage.

21. The mobile device of claim 17 , wherein an identifier is assigned to each packet stored in the packet cache; wherein in notifying each of the multiple components of one or more applications of receipt of the packet, the identifier associated therewith is employed; wherein the identifier of the packet facilitates the retrieval thereof from the packet cache by the notified component; and

wherein if the packet is successfully verified by the notified component, the notified component informs the packet cache that the packet is being used, such that the packet cache removes the packet from storage and releases the identifier associated with the packet.

22. The mobile device of claim 17 , wherein verification that the packet is intended for communication to the notified component is performed by checking headers and sequence numbers contained in the packet.

Assignments (4)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Jan 1, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 031896/0305 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2008
From: HAMMELL, JONATHAN F.; BROWN, MICHAEL K.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 020932/0654 →
Continuity (2)
Continuation 10887877 · Jul 12, 2004
Related Publication 20110058568A1 · Mar 10, 2011