IP Library Granted Patent US 11,064,039
Granted Patent B2
US 11,064,039 · App. 16/190,222 · Granted Jul 13, 2021

Systems and methods for push notification service for SaaS applications

Inventor: Abhishek Chauhan (Santa Clara, CA)
Assignee: Citrix Systems, Inc.
H04L67/26H04L41/5096H04L67/02H04L67/141
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 11,064,039
App. No.
16/190,222
Granted
Jul 13, 2021
Kind
B2
Abstract

Embodiments described include systems and methods for receiving push notifications for Software-as-a-Service (SaaS) applications. Push notifications may be received by an agent or notification listener provided by a client application of a client device. The listener may receive and display notifications for a large plurality of SaaS applications, regardless of whether the SaaS applications are currently active in a browser of the client device. The listener agent may be lightweight, consuming very little memory or processor resources, while being able to handle very large numbers of notifications. This may free up resources on the client device, consume less battery for mobile devices, and provide notification functionality for SaaS applications using native notification techniques without requiring the SaaS application developers to rewrite notification systems or switch to an operating system-provided notification system.

Claims (32)

1. A method for providing push notifications to a plurality of network applications via an embedded browser, the method comprising:

(a) establishing, by a client application on a client device, a plurality of sessions of a user with a plurality of network applications via an embedded browser within the client application;

(b) establishing the client application as a service worker by registering the client application with the plurality of network applications to listen for notifications pushed by one or more servers of the plurality of network applications;

(c) displaying, by the embedded browser, a first network application of the plurality of network applications corresponding to a first session of the plurality of sessions of the user;

(d) receiving, by the client application while the first network application is being displayed in the embedded browser, a notification from a server of the one or more servers pushing notifications for a second network application of the plurality of network applications corresponding to a second session of the plurality of sessions of the user; and

(e) displaying, by the client application, the notification for the second network application to the user while the first network application is being displayed in the embedded browser.

2. The method of claim 1 , wherein (b) further comprises registering the client application as the service worker for each notification server of the one or more servers of each of the plurality of network applications.

3. The method of claim 1 , wherein (b) further comprises executing, by the client application, a service worker executable on the client device in a background for receiving notifications pushed from the one or more servers pushing notifications for each of the plurality of network applications.

4. The method of claim 1 , wherein (b) further comprises communicating by the client application with each of the one or more servers pushing notifications for each of the plurality of network applications to indicate to each of the one or more servers that each of the plurality of network applications are one of active in the embedded browser or currently being accessed by the user via the embedded browser.

5. The method of claim 1 , wherein (c) further comprises the second network application not being accessed by the user in the embedded browser while the user is interacting with the first network application.

6. The method of claim 1 , wherein (d) further comprises receiving the notification for the second network application while the second network application is one of not being accessed by the user or not being displayed in the embedded browser.

7. The method of claim 1 , wherein (e) further comprises displaying the notification for the second network application with the first network application being displayed in the embedded browser.

8. The method of claim 1 , wherein (e) further comprises storing the notification for the second network application to be displayed with the second network application responsive to the user switching to accessing the second network application in the embedded browser.

9. The method of claim 1 , further comprising receiving, by the client application, notifications from each of the plurality of network applications regardless of whether any one of the plurality of network applications is one of active in the embedded browser or currently being accessed by the user via the embedded browser.

10. The method of claim 9 , further comprising storing, by the client application, the notifications on the client device and managing delivery of the notifications to the user responsive to one or more policies.

11. A system for providing push notifications to a plurality of network applications via client application with an embedded browser, the system comprising:

one or more processors of a client device configured to execute a client application, wherein the client application is configured to:

establish a plurality of sessions of a user with a plurality of network applications via an embedded browser within the client application, and

establish the client application as a service worker by registering the client application with the plurality of network applications to listen for notifications pushed by one or more servers of the plurality of network applications;

wherein the embedded browser is configured to display a first network application of the plurality of network applications corresponding to a first session of the plurality of sessions of the user;

wherein the client application is further configured to:

receive, while the first network application is being displayed in the embedded browser, a notification from a server of the one or more servers pushing notifications for a second network application of the plurality of network applications corresponding to a second session of the plurality of sessions of the user, and

display the notification for the second network application to the user while the first network application is being displayed in the embedded browser.

12. The system of claim 11 , wherein the client application is further configured to register as the service worker for each notification server of the one or more servers of each of the plurality of network applications.

13. The system of claim 11 , further comprising a service worker executable of the client application configured to execute in a background of the client device for receiving notifications pushed from the one or more servers pushing notifications for each of the plurality of network applications.

14. The system of claim 11 , wherein the client application is further configured to communicate with each of the one or more servers pushing notifications for each of the plurality of network applications to indicate to each of the one or more servers that each of the plurality of network applications are one of active in the embedded browser or currently being accessed by the user via the embedded browser.

15. The system of claim 11 , wherein the client application is further configured to receive the notification for the second network application while the second network application is one of not being accessed by the user or not being displayed in the embedded browser.

16. The system of claim 11 , wherein the client application is further configured to display the notification for the second network application with the first network application being displayed in the embedded browser.

17. The system of claim 11 , wherein the client application is further configured to store the notification for the second network application to be displayed with the second network application responsive to the user switching to accessing the second network application in the embedded browser.

18. The system of claim 11 , wherein the client application is further configured to receive notifications from each of the plurality of network applications regardless of whether any one of the plurality of network applications is one of active in the embedded browser or currently being accessed by the user via the embedded browser.

19. The system of claim 18 , further wherein the client application is further configured to store the notifications and managing delivery of the notifications to the user responsive to one or more policies.

20. The system of claim 19 , wherein the client application is further configured to deliver the notifications to a second device of the user.

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 Mar 6, 2019
From: CHAUHAN, ABHISHEK
To: CITRIX SYSTEMS, INC.
Reel/Frame 048520/0090 →
Continuity (1)
Related Publication 20200153920A1 · May 14, 2020
Cited By (1)
US 12,238,101