IP Library Granted Patent US 10,785,313
Granted Patent B2
US 10,785,313 · App. 15/713,360 · Granted Sep 22, 2020

Quick relay traffic management for cloud messaging

Inventors: Yan Yang (San Jose, CA); Joe S. Abuan (Cupertino, CA); Thuy Park (San Jose, CA); Jin Hyung Park (Cupertino, CA); Berkat S. Tung (San Jose, CA); Pierre J. De Filippis (San Jose, CA); Nicholas J. Circosta (Mountain View, CA); Daniel B. Pollack (San Jose, CA)
Assignee: Apple Inc.
H04L67/141H04L67/28H04W40/12H04W48/02H04W76/10H04W4/80H04W84/12
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 10,785,313
App. No.
15/713,360
Granted
Sep 22, 2020
Kind
B2
Abstract

A quick relay communication protocol is used by an initiating communication device (such as a wearable electronic device, e.g., a smart watch) and/or a recipient communication device (such as a companion electronic device to the wearable electronic device, e.g., a smart phone, a tablet computer or a laptop computer) to selectively communicate messages via different communication channels. Based on available connections and a communication constraint associated with a message, a processor executing a program module in an application layer in the initiating communication device provides transmission instructions to an interface circuit in the initiating communication device, which transmits a message to the recipient communication device based on the transmission instructions. When there are currently no available connections and the message is eligible to be communicated through a cloud-based relay server, the processor establishes a cloud-based connection with the recipient communication device via the relay server.

Claims (36)

1. An initiating communication device, comprising:

one or more nodes configured to communicatively couple to an antenna; and

an interface circuit, communicatively coupled to the one or more nodes, configured to communicate with a recipient communication device, a relay server and an access point;

a processor, communicatively coupled to the interface circuit and memory, configured to execute a program module in an application layer; and

the memory configured to store the program module, the program module comprising instructions for:

receiving a notification from a link layer separate from the application layer, wherein the notification includes a plurality of link-status flags including at least a first flag indicating whether a local connection is connected and a second flag indicating whether a cloud-based connection is connected;

receiving a message from a queue, wherein the message is marked by a message flag being set, the message flag pertaining to a communication constraint that includes whether the message is eligible to be communicated through the relay server;

determining, based on the plurality of link-status flags, connections available to the interface circuit and the communication constraint associated with the message; and

providing transmission instructions to the interface circuit based on the available connections and the communication constraint, the interface circuit transmitting the message to the recipient communication device based on the transmission instructions.

2. The initiating communication device of claim 1 , wherein, when the message is not eligible to be communicated through the cloud-based connection via the relay server, the message is transmitted to the recipient communication device using a different connection than via the relay server.

3. The initiating communication device of claim 1 , wherein the available connections include at least one of a Bluetooth connection with the recipient communication device, a Wi-Fi connection with the recipient communication device via the access point, or the cloud-based connection with the recipient communication device via the relay server.

4. The initiating communication device of claim 1 , wherein the program module further comprises instructions for, when there are currently no available connections and the message is eligible to be communicated through the relay server, establishing the cloud-based connection with the recipient communication device via the relay server.

5. The initiating communication device of claim 1 , wherein, when a Wi-Fi connection with the recipient communication device via the access point is available, a Bluetooth connection with the recipient communication device is unavailable, and the cloud-based connection to the recipient communication device via the relay server is unavailable, the message is transmitted using the Wi-Fi connection.

6. The initiating communication device of claim 1 , wherein, when a Bluetooth connection with the recipient communication device is available, the message may be transmitted using the Bluetooth connection.

7. The initiating communication device of claim 1 , wherein the program module further comprises instructions for, when the message is eligible to be communicated through the relay server and there is no currently available cloud-based connection with the recipient communication device via the relay server, establishing the cloud-based connection with the recipient communication device via the relay server.

8. The initiating communication device of claim 1 , wherein, when the message includes control traffic for a cloud-based connection with the recipient communication device via the relay server, the message is transmitted using a Wi-Fi connection with the recipient communication device via the access point.

9. The initiating communication device of claim 8 , wherein the message is transmitted using the Wi-Fi connection with the recipient communication device via the access point and the cloud-based connection.

10. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor included in an initiating communication device, cause the initiating communication device to selectively communicate messages via different communication channels to a recipient communication device, by carrying out one or more operations that comprise:

receiving a notification from a link layer separate from an application layer, wherein the notification includes a plurality of link-status flags including at least a first flag indicating whether a local connection is connected and a second flag indicating whether a cloud-based connection is connected;

receiving a message from a queue, wherein the message is marked by a message flag being set, the message flag pertaining to a communication constraint that includes whether the message is eligible to be communicated through a relay server;

determining, based on the plurality of link-status flags, connections available to an interface circuit in the initiating communication device and the communication constraint associated with the message; and

providing transmission instructions to the interface circuit based on the available connections and the communication constraint, the interface circuit transmitting the message to the recipient communication device based on the transmission instructions, wherein, when the message is not eligible to be communicated through a cloud-based connection via the relay server, the message is transmitted to the recipient communication device using a different connection than via the relay server.

11. The non-transitory computer-readable storage medium of claim 10 , wherein the available connections include at least one of a Bluetooth connection with the recipient communication device, a Wi-Fi connection with the recipient communication device via an access point, or the cloud-based connection with the recipient communication device via the relay server.

12. The non-transitory computer-readable storage medium of claim 10 , wherein the operations further comprise, when there are currently no available connections and the message is eligible to be communicated through the relay server, establishing the cloud-based connection with the recipient communication device via the relay server.

13. The non-transitory computer-readable storage medium of claim 10 , wherein, when a Wi-Fi connection with the recipient communication device via an access point is available, a Bluetooth connection with the recipient communication device is unavailable, and the cloud-based connection to the recipient communication device via the relay server is unavailable, the message is transmitted using the Wi-Fi connection.

14. The non-transitory computer-readable storage medium of claim 10 , wherein, when a Bluetooth connection with the recipient communication device is available, the message may be transmitted using the Bluetooth connection.

15. The non-transitory computer-readable storage medium of claim 10 , wherein the operations further comprise, when the message is eligible to be communicated through the relay server and there is no currently available cloud-based connection with the recipient communication device via the relay server, establishing the cloud-based connection with the recipient communication device via the relay server.

16. The non-transitory computer-readable storage medium of claim 10 , wherein, when the message includes control traffic for the cloud-based connection with the recipient communication device via the relay server, the message is transmitted using a Wi-Fi connection with the recipient communication device via an access point.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the message is transmitted using the Wi-Fi connection with the recipient communication device via the access point and the cloud-based connection.

18. A method for selectively communicating messages via different communication channels to a recipient communication device, comprising:

by an initiating communication device:

receiving a notification from a link layer separate from an application layer, wherein the notification includes a plurality of link-status flags including at least a first flag indicating whether a local connection is connected and a second flag indicating whether a cloud-based connection is connected;

receiving a message from a queue, wherein the message is marked by a message flag being set, the message flag pertaining to a communication constraint that includes whether the message is eligible to be communicated through a relay server;

determining, based on the plurality of link-status flags, connections available to an interface circuit in the initiating communication device and the communication constraint associated with the message;

establishing a cloud-based connection with the recipient communication device via the relay server when there are currently no available connections and the message is eligible to be communicated through the relay server; and

providing transmission instructions to the interface circuit based on the available connections and the communication constraint, the interface circuit transmitting the message to the recipient communication device based on the transmission instructions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2018
From: YANG, YAN; ABUAN, JOE S.; PARK, THUY; PARK, JIN HYUNG; TUNG, BERKAT S.; DE FILIPPIS, PIERRE J.; CIRCOSTA, NICHOLAS J.; POLLACK, DANIEL B.
To: APPLE INC.
Reel/Frame 045038/0477 →
Continuity (4)
Provisional Application 62399162 · Sep 23, 2016
Provisional Application 62399159 · Sep 23, 2016
Provisional Application 62399163 · Sep 23, 2016
Related Publication 20180091601A1 · Mar 29, 2018
Cited By (1)
US 12,581,279