IP Library Granted Patent US 8,520,653
Granted Patent B2
US 8,520,653 · App. 13/616,203 · Granted Aug 27, 2013

Packet-based communication system and method

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,520,653
App. No.
13/616,203
Granted
Aug 27, 2013
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 (37)

1. A computing device for processing packets received from a host system, wherein the device comprises a processor configured to:

notify each of a plurality of applications on the device when a packet is received at the device from the host system, wherein each of the plurality of applications is registered as a packet listener to receive notifications when packets are received at the device from the host system;

in response to notifying each of the plurality of applications when the packet is received at the device from the host system, receive a request, from one of the plurality of applications, for the packet while the application is expecting to receive at least one packet from the host system;

allow the application access to the packet in response to the request; and

receive, from the application in response to a successful verification by the application that the packet is intended for the application, a notification that the packet is in use.

2. The device of claim 1 , wherein in response to receiving the notification that the packet is in use, the processor is configured to make the packet unavailable to the plurality of applications on the device.

3. The device of claim 2 , further comprising a store in which the packet is stored, wherein the processor is configured to make the packet unavailable to the plurality of applications on the device by removing the packet from the store.

4. The device of claim 3 , wherein a different identifier is associated with each packet in the store, and wherein the processor is configured to make the packet unavailable to the plurality of applications on the device by releasing the identifier associated with the packet.

5. The device of claim 1 , wherein the processor is configured to send an outgoing packet to the host system on behalf of the application, and wherein the application expects to receive at least one packet from the host system in response to the outgoing packet being sent to the host system.

6. The device of claim 1 , wherein the packet comprises headers and sequence numbers, for use by the application to verify that the packet is intended for the application.

7. The device of claim 1 , wherein each of the plurality of applications connects to the host system via a separate connection of a plurality of connections.

8. The device of claim 7 , wherein each connection to the host system is governed by different security parameters.

9. The device of claim 1 , wherein each of the plurality of applications connects to the host system is different ports on the device.

10. The device of claim 1 , wherein at least a subset of the plurality of applications connects to the host system via a shared port on the device.

11. The device of claim 1 , wherein the device comprises a mobile device.

12. A method of processing packets received at a computing device from a host system, the method comprising:

registering each of a plurality of applications as a packet listener to receive notifications when packets are received at the device from the host system;

notifying each of the plurality of applications on the device when a packet is received at the device from the host system;

in response to notifying each of the plurality of applications when the packet is received at the device from the host system, receiving a request, from one of the plurality of applications, for the packet while the application is expecting to receive at least one packet from the host system;

allowing the application access to the packet in response to the request; and

receiving, from the application in response to a successful verification by the application that the packet is intended for the application, a notification that the packet is in use.

13. The method of claim 12 , further comprising making the packet unavailable to the plurality of applications on the device in response to receiving the notification that the packet is in use.

14. The method of claim 13 , further comprising making the packet unavailable to the plurality of applications on the device by removing the packet from a store on the device in which the packet is stored.

15. The method of claim 14 , wherein a different identifier is associated with each packet in the store, and wherein the method further comprises making the packet unavailable to the plurality of applications on the device by releasing the identifier associated with the packet.

16. The method of claim 12 , further comprising sending, prior to the notifying, an outgoing packet to the host system on behalf of the application, wherein the application expects to receive a packet from the host system in response to the outgoing packet being sent to the host system.

17. The method of claim 12 , wherein the packet comprises headers and sequence numbers, for use by the application to verify that the packet is intended for the application.

18. The method of claim 12 , wherein each of the plurality of applications connects to the host system via a separate connection of a plurality of connections.

19. The method of claim 18 , wherein each connection to the host system is governed by different security parameters.

20. The method of claim 12 , wherein each of the plurality of applications connects to the host system via different ports on the device.

21. The method of claim 12 , wherein at least a subset of the plurality of applications connects to the host system via a shared port on the device.

22. The method of claim 12 , wherein the device comprises a mobile device.

23. A non-transitory computer-readable medium, upon which instructions executable by a computing device are stored, the instructions for a method of processing packets received at the computing device from a host system, the method comprising:

registering each of a plurality of applications as a packet listener to receive notifications when packets are received at the device from the host system;

in response to notifying each of the plurality of applications when the packet is received at the device from the host system, notifying each of the plurality of applications on the device when a packet is received at the device from the host system;

receiving a request, from one of the plurality of applications, for the packet while the application is expecting to receive at least one packet from the host system;

allowing the application access to the packet in response to the request; and

receiving, from the application in response to a successful verification by the application that the packet is intended for the application, a notification that the packet is in use.

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 Jul 25, 2013
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 030889/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2012
From: HAMMELL, JONATHAN F.; BROWN, MICHAEL K.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 028962/0737 →