IP Library › Granted Patent US 10,715,510
Granted Patent B2
US 10,715,510 · App. 15/406,976 · Granted Jul 14, 2020

Secure device notifications from remote applications

Inventors: Mukund Ingale (Pompano Beach, FL); Georgy Momchilov (Parkland, FL); Kireeti Valicherla (Coral Springs, FL); Joseph Carson (Plantation, FL)
Assignee: Citrix Systems, Inc.
H04L63/062H04L63/0428H04L67/10H04L67/26H04W12/04H04L67/42
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,715,510
App. No.
15/406,976
Filed
Jan 16, 2017
Granted
Jul 14, 2020
Kind
B2
Art Unit
2434
USPC
726/6
Abstract

Methods and systems for securely delivering notifications from remote applications to client devices are described herein. A computing device may listen for notifications from a remote application and receive notification data from the remote application. The computing device may select a notification service for delivery of the notification data to the client device. The computing device may send, to the selected notification service, at least a portion of the notification data for delivery to the client device. At least a portion of the notification data may be encrypted prior to sending to the selected notification service.

Claims (50)

1. A method comprising:

initiating a remote connection between a server and a client agent application running on a client device;

receiving, by the server, from the client device, and via the remote connection, an encryption key and a device token, wherein the device token uniquely identifies the client device;

receiving notification data from a remote application executing on the server, wherein the remote application is accessible by the client device via the client agent application;

selecting, by the server and based on an operating system of the client device, a notification service, from a plurality of notification services, for delivery of the notification data to the client device, wherein a first notification service of the plurality of notification services corresponds to a first operating system, and a second notification service of the plurality of notification services corresponds to a second operating system different from the first operating system;

encrypting, by the server and using the encryption key, at least a portion of the notification data received from the remote application to generate encrypted notification data;

determining, by the server, whether the client agent application is running as a foreground process on the client device; and

sending, to the selected notification service and based on a determination that the client agent application is not running as the foreground process on the client device, the encrypted notification data for delivery to the client device.

2. The method of claim 1 , further comprising:

after initiating the remote connection between the server and the client device and before receiving notification data from the remote application, disconnecting the remote connection between the server and the client device.

3. The method of claim 1 , wherein selecting the notification service for delivery of the notification data to the client device is based on a device type of the client device.

4. The method of claim 1 , wherein receiving the encryption key and the device token comprises receiving the encryption key, the device token, and a device type of the client device, and wherein selecting the notification service is based on the device type of the client device.

5. The method of claim 1 , wherein the remote application is configured to be hosted by the server.

6. The method of claim 1 , wherein the determination that the client agent application is not running as the foreground process comprises determining that the client agent application is inactive or that the client agent application is running as a background process on the client device.

7. The method of claim 1 , wherein the server comprises a gateway server in communication with a cloud service.

8. The method of claim 1 , wherein the notification data received from the remote application comprises a notification display string and application context information.

9. The method of claim 8 , wherein encrypting at least the portion of the notification data comprises encrypting the application context information and leaving unencrypted the notification display string.

10. A method comprising:

initiating a remote connection between a server and a client agent application running on a client device;

receiving, by the client device and from a notification service, a device token uniquely identifying the client device;

sending, to the server and via the remote connection, an encryption key and the device token received from the notification service;

sending, by the client device and to the server, an indication that the client agent application will run as a background process;

receiving, by the client device, from the notification service, and while the client agent application is not running as a foreground process on the client device, notification data based on the indication, the notification data comprising a notification display string and application context information; and

generating, for display on a display of the client device, a notification based at least in part on the received notification data, wherein the notification comprises at least the notification display string; and

after generating the notification, invoking the client agent application to run as the foreground process on the client device.

11. The method of claim 10 , further comprising:

after initiating the remote connection between the server and the client device and before receiving the notification data from the notification service, disconnecting the remote connection between the server and the client device.

12. The method of claim 10 , wherein the notification service comprises a push notification service.

13. The method of claim 10 , wherein sending the encryption key and the device token comprises sending the encryption key, the device token, an identifier associated with the encryption key, and a device type of the client device.

14. The method of claim 10 , wherein the application context information comprises one or more action ID or one or more trigger ID.

15. The method of claim 10 , wherein the notification display string received by the client device is not encrypted with the encryption key, and wherein the application context information received by the client device is encrypted with the encryption key.

16. The method of claim 10 , wherein receiving the notification data is performed by an operating system agent different from the client agent application.

17. The method of claim 10 , further comprising:

receiving, by the client device, a selection of the notification;

in response to receiving the selection of the notification, re-initiating the remote connection between the server and the client device.

18. The method of claim 10 , further comprising:

receiving, by the client device, a selection of the notification;

in response to receiving the selection of the notification, decrypting, using the encryption key, the application context information; and

launching, using the decrypted application context information, a remote application associated with the notification data.

19. A computing device comprising:

a processor; and

memory storing executable instructions that, when executed by the processor, cause the computing device to:

initiate a remote connection between the computing device and a client agent application running on a mobile device;

receive, from the mobile device and via the remote connection, an encryption key and a device token, wherein the device token uniquely identifies the mobile device;

receive notification data from an application hosted on the computing device, wherein the application is accessible by the mobile device via the client agent application;

select, based on an operating system of the mobile device, a notification service, from a plurality of notification services, for delivery of the notification data to the mobile device, wherein a first notification service of the plurality of notification services corresponds to a first operating system, and a second notification service of the plurality of notification services corresponds to a second operating system different from the first operating system;

encrypt, using the encryption key, at least a portion of the notification data received from the application to generate encrypted notification data;

determine whether the client agent application is running as a foreground process on the mobile device; and

send, to the selected notification service and based on a determination that the client agent application is not running as the foreground process on the mobile device, the encrypted notification data for delivery to the mobile device.

20. The computing device of claim 19 , wherein the determination that the client agent application is not running as the foreground process comprises determining that the client agent application is inactive or that the client agent application is running as a background process on the mobile device.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2017
From: INGALE, MUKUND; MOMCHILOV, GEORGY; VALICHERLA, KIREETI; CARSON, JOSEPH
To: CITRIX SYSTEMS, INC.
Reel/Frame 041053/0419 →
Continuity (1)
Related Publication 20180205715A1 · Jul 19, 2018
Cited By (1)
US 12,238,101